From 5abb7866d8538054dcb3ecb6b790c80c27a9c689 Mon Sep 17 00:00:00 2001 From: Marius Date: Tue, 2 Jun 2020 18:24:44 +0300 Subject: [PATCH] - maintenance_1 --- AppGUI/ColumnarFlowLayout.py | 181 - AppGUI/preferences/OptionUI.py | 327 - AppGUI/preferences/OptionsGroupUI.py | 77 - AppGUI/preferences/PreferencesSectionUI.py | 41 - .../general/GeneralAppSettingsGroupUI.py | 302 - .../gerber/GerberOptPrefGroupUI.py | 100 - .../tools/ToolsCornersPrefGroupUI.py | 81 - .../preferences/tools/ToolsISOPrefGroupUI.py | 320 - AppObjects/AppObject.py | 394 - AppTools/ToolCorners.py | 440 - AppTools/ToolEtchCompensation.py | 455 - AppTools/ToolIsolation.py | 3018 -- AppTools/ToolPDF.py | 361 - AppTools/__init__.py | 45 - CHANGELOG.md | 235 +- FlatCAM.py | 4 +- App_Main.py => FlatCAMApp.py | 1906 +- Bookmark.py => FlatCAMBookmark.py | 12 +- Common.py => FlatCAMCommon.py | 407 +- AppDatabase.py => FlatCAMDB.py | 242 +- AppPool.py => FlatCAMPool.py | 0 AppPreProcessor.py => FlatCAMPostProc.py | 8 +- AppProcess.py => FlatCAMProcess.py | 4 +- AppTool.py => FlatCAMTool.py | 41 +- AppTranslation.py => FlatCAMTranslation.py | 4 - AppWorker.py => FlatCAMWorker.py | 0 AppWorkerStack.py => FlatCAMWorkerStack.py | 2 +- Utils/vispy_example.py | 195 - assets/resources/axis16.png | Bin 404 -> 0 bytes assets/resources/clear_line16.png | Bin 556 -> 0 bytes assets/resources/contribute256.png | Bin 9823 -> 0 bytes assets/resources/corners_32.png | Bin 349 -> 0 bytes assets/resources/dark_resources/axis16.png | Bin 174 -> 0 bytes .../resources/dark_resources/clear_line16.png | Bin 556 -> 0 bytes .../dark_resources/contribute256.png | Bin 19944 -> 0 bytes .../resources/dark_resources/corners_32.png | Bin 325 -> 0 bytes .../resources/dark_resources/edit_file16.png | Bin 386 -> 510 bytes .../resources/dark_resources/edit_file32.png | Bin 546 -> 716 bytes assets/resources/dark_resources/etch_32.png | Bin 18526 -> 0 bytes assets/resources/dark_resources/hud16.png | Bin 137 -> 0 bytes assets/resources/dark_resources/hud_32.png | Bin 224 -> 0 bytes assets/resources/dark_resources/iso_16.png | Bin 156 -> 0 bytes .../resources/dark_resources/panelize32.png | Bin 425 -> 554 bytes .../resources/dark_resources/settings18.png | Bin 738 -> 0 bytes assets/resources/dark_resources/shell20.png | Bin 163 -> 0 bytes assets/resources/edit_file16.png | Bin 386 -> 504 bytes assets/resources/edit_file32.png | Bin 541 -> 700 bytes assets/resources/etch_32.png | Bin 9517 -> 0 bytes assets/resources/grid32.png | Bin 898 -> 904 bytes assets/resources/grid_lines32.png | Bin 901 -> 0 bytes assets/resources/hud16.png | Bin 382 -> 0 bytes assets/resources/hud_32.png | Bin 631 -> 0 bytes assets/resources/iso_16.png | Bin 156 -> 0 bytes assets/resources/panelize32.png | Bin 420 -> 553 bytes assets/resources/settings18.png | Bin 597 -> 0 bytes assets/resources/shell20.png | Bin 492 -> 0 bytes camlib.py | 620 +- defaults.py | 62 +- .../FlatCAMExcEditor.py | 77 +- .../FlatCAMGeoEditor.py | 138 +- .../FlatCAMGrbEditor.py | 244 +- .../FlatCAMTextEditor.py | 8 +- {AppEditors => flatcamEditors}/__init__.py | 0 AppGUI/MainGUI.py => flatcamGUI/FlatCAMGUI.py | 4946 ++- {AppGUI => flatcamGUI}/GUIElements.py | 405 +- {AppGUI => flatcamGUI}/ObjectUI.py | 506 +- {AppGUI => flatcamGUI}/PlotCanvas.py | 166 +- {AppGUI => flatcamGUI}/PlotCanvasLegacy.py | 242 +- {AppGUI => flatcamGUI}/VisPyCanvas.py | 1 - .../VisPyData/data/fonts/opensans-regular.ttf | Bin .../VisPyData/data/freetype/freetype253.dll | Bin .../data/freetype/freetype253_x64.dll | Bin {AppGUI => flatcamGUI}/VisPyPatches.py | 0 {AppGUI => flatcamGUI}/VisPyTesselators.py | 0 {AppGUI => flatcamGUI}/VisPyVisuals.py | 2 +- {AppGUI => flatcamGUI}/__init__.py | 0 flatcamGUI/preferences/OptionsGroupUI.py | 19 + .../preferences/PreferencesUIManager.py | 398 +- .../preferences/__init__.py | 4 +- .../cncjob/CNCJobAdvOptPrefGroupUI.py | 43 +- .../cncjob/CNCJobGenPrefGroupUI.py | 165 +- .../cncjob/CNCJobOptPrefGroupUI.py | 6 +- .../preferences/cncjob/CNCJobPreferencesUI.py | 6 +- .../preferences/cncjob/__init__.py | 0 .../excellon/ExcellonAdvOptPrefGroupUI.py | 10 +- .../excellon/ExcellonEditorPrefGroupUI.py | 6 +- .../excellon/ExcellonExpPrefGroupUI.py | 6 +- .../excellon/ExcellonGenPrefGroupUI.py | 223 +- .../excellon/ExcellonOptPrefGroupUI.py | 12 +- .../excellon/ExcellonPreferencesUI.py | 14 +- .../preferences/excellon/__init__.py | 0 .../general/GeneralAPPSetGroupUI.py | 82 +- .../general/GeneralAppPrefGroupUI.py | 11 +- .../general/GeneralGUIPrefGroupUI.py | 376 +- .../general/GeneralPreferencesUI.py | 8 +- .../preferences/general/__init__.py | 0 .../geometry/GeometryAdvOptPrefGroupUI.py | 32 +- .../geometry/GeometryEditorPrefGroupUI.py | 6 +- .../geometry/GeometryGenPrefGroupUI.py | 50 +- .../geometry/GeometryOptPrefGroupUI.py | 11 +- .../geometry/GeometryPreferencesUI.py | 10 +- .../preferences/geometry/__init__.py | 0 .../gerber/GerberAdvOptPrefGroupUI.py | 85 +- .../gerber/GerberEditorPrefGroupUI.py | 9 +- .../gerber/GerberExpPrefGroupUI.py | 6 +- .../gerber/GerberGenPrefGroupUI.py | 142 +- .../gerber/GerberOptPrefGroupUI.py | 187 + .../preferences/gerber/GerberPreferencesUI.py | 13 +- .../preferences/gerber/__init__.py | 0 .../tools/Tools2CThievingPrefGroupUI.py | 6 +- .../preferences/tools/Tools2CalPrefGroupUI.py | 8 +- .../tools/Tools2EDrillsPrefGroupUI.py | 6 +- .../tools/Tools2FiducialsPrefGroupUI.py | 6 +- .../tools/Tools2InvertPrefGroupUI.py | 6 +- .../tools/Tools2OptimalPrefGroupUI.py | 6 +- .../preferences/tools/Tools2PreferencesUI.py | 20 +- .../tools/Tools2PunchGerberPrefGroupUI.py | 6 +- .../tools/Tools2QRCodePrefGroupUI.py | 48 +- .../tools/Tools2RulesCheckPrefGroupUI.py | 6 +- .../tools/Tools2sidedPrefGroupUI.py | 6 +- .../tools/ToolsCalculatorsPrefGroupUI.py | 6 +- .../tools/ToolsCutoutPrefGroupUI.py | 8 +- .../preferences/tools/ToolsFilmPrefGroupUI.py | 31 +- .../preferences/tools/ToolsNCCPrefGroupUI.py | 24 +- .../tools/ToolsPaintPrefGroupUI.py | 24 +- .../tools/ToolsPanelizePrefGroupUI.py | 6 +- .../preferences/tools/ToolsPreferencesUI.py | 35 +- .../tools/ToolsSolderpastePrefGroupUI.py | 10 +- .../preferences/tools/ToolsSubPrefGroupUI.py | 6 +- .../tools/ToolsTransformPrefGroupUI.py | 10 +- .../preferences/tools/__init__.py | 0 .../utilities/AutoCompletePrefGroupUI.py | 6 +- .../preferences/utilities/FAExcPrefGroupUI.py | 6 +- .../preferences/utilities/FAGcoPrefGroupUI.py | 6 +- .../preferences/utilities/FAGrbPrefGroupUI.py | 6 +- .../utilities/UtilPreferencesUI.py | 8 +- .../preferences/utilities/__init__.py | 0 .../FlatCAMCNCJob.py | 37 +- .../FlatCAMDocument.py | 27 +- .../FlatCAMExcellon.py | 223 +- .../FlatCAMGeometry.py | 161 +- .../FlatCAMGerber.py | 500 +- {AppObjects => flatcamObjects}/FlatCAMObj.py | 45 +- .../FlatCAMScript.py | 40 +- .../ObjectCollection.py | 232 +- {AppObjects => flatcamObjects}/__init__.py | 0 {AppParsers => flatcamParsers}/ParseDXF.py | 4 +- .../ParseDXF_Spline.py | 0 .../ParseExcellon.py | 31 +- {AppParsers => flatcamParsers}/ParseFont.py | 2 +- {AppParsers => flatcamParsers}/ParseGerber.py | 13 +- {AppParsers => flatcamParsers}/ParseHPGL2.py | 5 +- {AppParsers => flatcamParsers}/ParseSVG.py | 2 +- {AppParsers => flatcamParsers}/__init__.py | 0 .../ToolAlignObjects.py | 32 +- {AppTools => flatcamTools}/ToolCalculators.py | 14 +- {AppTools => flatcamTools}/ToolCalibration.py | 28 +- .../ToolCopperThieving.py | 42 +- {AppTools => flatcamTools}/ToolCutOut.py | 72 +- {AppTools => flatcamTools}/ToolDblSided.py | 22 +- {AppTools => flatcamTools}/ToolDistance.py | 103 +- {AppTools => flatcamTools}/ToolDistanceMin.py | 17 +- .../ToolExtractDrills.py | 16 +- {AppTools => flatcamTools}/ToolFiducials.py | 44 +- {AppTools => flatcamTools}/ToolFilm.py | 99 +- {AppTools => flatcamTools}/ToolImage.py | 16 +- .../ToolInvertGerber.py | 29 +- {AppTools => flatcamTools}/ToolMove.py | 14 +- {AppTools => flatcamTools}/ToolNCC.py | 597 +- {AppTools => flatcamTools}/ToolOptimal.py | 24 +- .../ParsePDF.py => flatcamTools/ToolPDF.py | 381 +- {AppTools => flatcamTools}/ToolPaint.py | 87 +- {AppTools => flatcamTools}/ToolPanelize.py | 43 +- {AppTools => flatcamTools}/ToolPcbWizard.py | 16 +- {AppTools => flatcamTools}/ToolProperties.py | 14 +- {AppTools => flatcamTools}/ToolPunchGerber.py | 65 +- {AppTools => flatcamTools}/ToolQRCode.py | 69 +- {AppTools => flatcamTools}/ToolRulesCheck.py | 34 +- {AppTools => flatcamTools}/ToolShell.py | 51 +- {AppTools => flatcamTools}/ToolSolderPaste.py | 80 +- {AppTools => flatcamTools}/ToolSub.py | 275 +- {AppTools => flatcamTools}/ToolTransform.py | 26 +- flatcamTools/__init__.py | 43 + locale/de/LC_MESSAGES/strings.mo | Bin 392875 -> 384453 bytes locale/de/LC_MESSAGES/strings.po | 35059 ++++++++------- locale/en/LC_MESSAGES/strings.mo | Bin 361574 -> 353706 bytes locale/en/LC_MESSAGES/strings.po | 35941 ++++++++-------- locale/es/LC_MESSAGES/strings.mo | Bin 395155 -> 386610 bytes locale/es/LC_MESSAGES/strings.po | 35000 ++++++++------- locale/fr/LC_MESSAGES/strings.mo | Bin 396242 -> 389375 bytes locale/fr/LC_MESSAGES/strings.po | 15783 ++++--- locale/hu/LC_MESSAGES/strings.mo | Bin 361574 -> 353706 bytes locale/hu/LC_MESSAGES/strings.po | 35941 ++++++++-------- locale/it/LC_MESSAGES/strings.mo | Bin 361348 -> 371344 bytes locale/it/LC_MESSAGES/strings.po | 34864 ++++++++------- locale/pt_BR/LC_MESSAGES/strings.mo | Bin 362310 -> 372242 bytes locale/pt_BR/LC_MESSAGES/strings.po | 34813 ++++++++------- locale/ro/LC_MESSAGES/strings.mo | Bin 390867 -> 382456 bytes locale/ro/LC_MESSAGES/strings.po | 35021 ++++++++------- locale/ru/LC_MESSAGES/strings.mo | Bin 480026 -> 490574 bytes locale/ru/LC_MESSAGES/strings.po | 15442 ++++--- locale_template/strings.pot | 13484 +++--- make_freezed.py | 2 +- preprocessors/Berta_CNC.py | 6 +- preprocessors/GRBL_laser.py | 4 +- preprocessors/ISEL_CNC.py | 4 +- preprocessors/ISEL_ICP_CNC.py | 4 +- preprocessors/Marlin.py | 4 +- preprocessors/Marlin_laser_FAN_pin.py | 4 +- preprocessors/Marlin_laser_Spindle_pin.py | 4 +- preprocessors/Paste_1.py | 4 +- preprocessors/Repetier.py | 4 +- preprocessors/Roland_MDX_20.py | 4 +- preprocessors/Toolchange_Custom.py | 4 +- preprocessors/Toolchange_Manual.py | 4 +- preprocessors/Toolchange_Probe_MACH3.py | 8 +- preprocessors/default.py | 4 +- preprocessors/grbl_11.py | 4 +- preprocessors/hpgl.py | 4 +- preprocessors/line_xyz.py | 4 +- tclCommands/TclCommand.py | 4 +- tclCommands/TclCommandAlignDrill.py | 4 +- tclCommands/TclCommandAlignDrillGrid.py | 2 +- tclCommands/TclCommandBbox.py | 4 +- tclCommands/TclCommandBounds.py | 2 +- tclCommands/TclCommandCncjob.py | 72 +- tclCommands/TclCommandCopperClear.py | 8 +- tclCommands/TclCommandCutout.py | 2 +- tclCommands/TclCommandDrillcncjob.py | 84 +- tclCommands/TclCommandExteriors.py | 2 +- tclCommands/TclCommandGeoCutout.py | 9 +- tclCommands/TclCommandGetNames.py | 2 +- tclCommands/TclCommandGetPath.py | 2 +- tclCommands/TclCommandHelp.py | 2 +- tclCommands/TclCommandImportSvg.py | 2 +- tclCommands/TclCommandInteriors.py | 2 +- tclCommands/TclCommandIsolate.py | 2 +- tclCommands/TclCommandJoinExcellon.py | 4 +- tclCommands/TclCommandJoinGeometry.py | 4 +- tclCommands/TclCommandNewExcellon.py | 2 +- tclCommands/TclCommandNewGeometry.py | 2 +- tclCommands/TclCommandNewGerber.py | 2 +- tclCommands/TclCommandNregions.py | 4 +- tclCommands/TclCommandOpenDXF.py | 4 +- tclCommands/TclCommandOpenSVG.py | 4 +- tclCommands/TclCommandPaint.py | 46 +- tclCommands/TclCommandPanelize.py | 12 +- tclCommands/TclCommandPlotAll.py | 4 +- tclCommands/TclCommandPlotObjects.py | 4 +- tclCommands/TclCommandScale.py | 2 +- tclCommands/TclCommandSetActive.py | 2 +- tclCommands/TclCommandSetOrigin.py | 8 +- tclCommands/TclCommandSetPath.py | 15 +- tclCommands/TclCommandSubtractRectangle.py | 2 +- tclCommands/TclCommandWriteGCode.py | 6 +- 255 files changed, 152017 insertions(+), 162289 deletions(-) delete mode 100644 AppGUI/ColumnarFlowLayout.py delete mode 100644 AppGUI/preferences/OptionUI.py delete mode 100644 AppGUI/preferences/OptionsGroupUI.py delete mode 100644 AppGUI/preferences/PreferencesSectionUI.py delete mode 100644 AppGUI/preferences/general/GeneralAppSettingsGroupUI.py delete mode 100644 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py delete mode 100644 AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py delete mode 100644 AppGUI/preferences/tools/ToolsISOPrefGroupUI.py delete mode 100644 AppObjects/AppObject.py delete mode 100644 AppTools/ToolCorners.py delete mode 100644 AppTools/ToolEtchCompensation.py delete mode 100644 AppTools/ToolIsolation.py delete mode 100644 AppTools/ToolPDF.py delete mode 100644 AppTools/__init__.py rename App_Main.py => FlatCAMApp.py (87%) rename Bookmark.py => FlatCAMBookmark.py (97%) rename Common.py => FlatCAMCommon.py (56%) rename AppDatabase.py => FlatCAMDB.py (91%) rename AppPool.py => FlatCAMPool.py (100%) rename AppPreProcessor.py => FlatCAMPostProc.py (93%) rename AppProcess.py => FlatCAMProcess.py (98%) rename AppTool.py => FlatCAMTool.py (85%) rename AppTranslation.py => FlatCAMTranslation.py (98%) rename AppWorker.py => FlatCAMWorker.py (100%) rename AppWorkerStack.py => FlatCAMWorkerStack.py (97%) delete mode 100644 Utils/vispy_example.py delete mode 100644 assets/resources/axis16.png delete mode 100644 assets/resources/clear_line16.png delete mode 100644 assets/resources/contribute256.png delete mode 100644 assets/resources/corners_32.png delete mode 100644 assets/resources/dark_resources/axis16.png delete mode 100644 assets/resources/dark_resources/clear_line16.png delete mode 100644 assets/resources/dark_resources/contribute256.png delete mode 100644 assets/resources/dark_resources/corners_32.png delete mode 100644 assets/resources/dark_resources/etch_32.png delete mode 100644 assets/resources/dark_resources/hud16.png delete mode 100644 assets/resources/dark_resources/hud_32.png delete mode 100644 assets/resources/dark_resources/iso_16.png delete mode 100644 assets/resources/dark_resources/settings18.png delete mode 100644 assets/resources/dark_resources/shell20.png delete mode 100644 assets/resources/etch_32.png delete mode 100644 assets/resources/grid_lines32.png delete mode 100644 assets/resources/hud16.png delete mode 100644 assets/resources/hud_32.png delete mode 100644 assets/resources/iso_16.png delete mode 100644 assets/resources/settings18.png delete mode 100644 assets/resources/shell20.png rename {AppEditors => flatcamEditors}/FlatCAMExcEditor.py (98%) rename {AppEditors => flatcamEditors}/FlatCAMGeoEditor.py (98%) rename {AppEditors => flatcamEditors}/FlatCAMGrbEditor.py (98%) rename {AppEditors => flatcamEditors}/FlatCAMTextEditor.py (98%) rename {AppEditors => flatcamEditors}/__init__.py (100%) rename AppGUI/MainGUI.py => flatcamGUI/FlatCAMGUI.py (89%) rename {AppGUI => flatcamGUI}/GUIElements.py (87%) rename {AppGUI => flatcamGUI}/ObjectUI.py (86%) rename {AppGUI => flatcamGUI}/PlotCanvas.py (69%) rename {AppGUI => flatcamGUI}/PlotCanvasLegacy.py (84%) rename {AppGUI => flatcamGUI}/VisPyCanvas.py (99%) rename {AppGUI => flatcamGUI}/VisPyData/data/fonts/opensans-regular.ttf (100%) rename {AppGUI => flatcamGUI}/VisPyData/data/freetype/freetype253.dll (100%) rename {AppGUI => flatcamGUI}/VisPyData/data/freetype/freetype253_x64.dll (100%) rename {AppGUI => flatcamGUI}/VisPyPatches.py (100%) rename {AppGUI => flatcamGUI}/VisPyTesselators.py (100%) rename {AppGUI => flatcamGUI}/VisPyVisuals.py (99%) rename {AppGUI => flatcamGUI}/__init__.py (100%) create mode 100644 flatcamGUI/preferences/OptionsGroupUI.py rename {AppGUI => flatcamGUI}/preferences/PreferencesUIManager.py (76%) rename {AppGUI => flatcamGUI}/preferences/__init__.py (79%) rename {AppGUI => flatcamGUI}/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py (81%) rename {AppGUI => flatcamGUI}/preferences/cncjob/CNCJobGenPrefGroupUI.py (60%) rename {AppGUI => flatcamGUI}/preferences/cncjob/CNCJobOptPrefGroupUI.py (94%) rename {AppGUI => flatcamGUI}/preferences/cncjob/CNCJobPreferencesUI.py (77%) rename {AppGUI => flatcamGUI}/preferences/cncjob/__init__.py (100%) rename {AppGUI => flatcamGUI}/preferences/excellon/ExcellonAdvOptPrefGroupUI.py (94%) rename {AppGUI => flatcamGUI}/preferences/excellon/ExcellonEditorPrefGroupUI.py (98%) rename {AppGUI => flatcamGUI}/preferences/excellon/ExcellonExpPrefGroupUI.py (97%) rename {AppGUI => flatcamGUI}/preferences/excellon/ExcellonGenPrefGroupUI.py (70%) rename {AppGUI => flatcamGUI}/preferences/excellon/ExcellonOptPrefGroupUI.py (96%) rename {AppGUI => flatcamGUI}/preferences/excellon/ExcellonPreferencesUI.py (75%) rename {AppGUI => flatcamGUI}/preferences/excellon/__init__.py (100%) rename {AppGUI => flatcamGUI}/preferences/general/GeneralAPPSetGroupUI.py (87%) rename {AppGUI => flatcamGUI}/preferences/general/GeneralAppPrefGroupUI.py (97%) rename {AppGUI => flatcamGUI}/preferences/general/GeneralGUIPrefGroupUI.py (57%) rename {AppGUI => flatcamGUI}/preferences/general/GeneralPreferencesUI.py (80%) rename {AppGUI => flatcamGUI}/preferences/general/__init__.py (100%) rename {AppGUI => flatcamGUI}/preferences/geometry/GeometryAdvOptPrefGroupUI.py (90%) rename {AppGUI => flatcamGUI}/preferences/geometry/GeometryEditorPrefGroupUI.py (93%) rename {AppGUI => flatcamGUI}/preferences/geometry/GeometryGenPrefGroupUI.py (67%) rename {AppGUI => flatcamGUI}/preferences/geometry/GeometryOptPrefGroupUI.py (96%) rename {AppGUI => flatcamGUI}/preferences/geometry/GeometryPreferencesUI.py (77%) rename {AppGUI => flatcamGUI}/preferences/geometry/__init__.py (100%) rename {AppGUI => flatcamGUI}/preferences/gerber/GerberAdvOptPrefGroupUI.py (52%) rename {AppGUI => flatcamGUI}/preferences/gerber/GerberEditorPrefGroupUI.py (97%) rename {AppGUI => flatcamGUI}/preferences/gerber/GerberExpPrefGroupUI.py (96%) rename {AppGUI => flatcamGUI}/preferences/gerber/GerberGenPrefGroupUI.py (57%) create mode 100644 flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py rename {AppGUI => flatcamGUI}/preferences/gerber/GerberPreferencesUI.py (77%) rename {AppGUI => flatcamGUI}/preferences/gerber/__init__.py (100%) rename {AppGUI => flatcamGUI}/preferences/tools/Tools2CThievingPrefGroupUI.py (98%) rename {AppGUI => flatcamGUI}/preferences/tools/Tools2CalPrefGroupUI.py (94%) rename {AppGUI => flatcamGUI}/preferences/tools/Tools2EDrillsPrefGroupUI.py (97%) rename {AppGUI => flatcamGUI}/preferences/tools/Tools2FiducialsPrefGroupUI.py (96%) rename {AppGUI => flatcamGUI}/preferences/tools/Tools2InvertPrefGroupUI.py (93%) rename {AppGUI => flatcamGUI}/preferences/tools/Tools2OptimalPrefGroupUI.py (91%) rename {AppGUI => flatcamGUI}/preferences/tools/Tools2PreferencesUI.py (76%) rename {AppGUI => flatcamGUI}/preferences/tools/Tools2PunchGerberPrefGroupUI.py (97%) rename {AppGUI => flatcamGUI}/preferences/tools/Tools2QRCodePrefGroupUI.py (83%) rename {AppGUI => flatcamGUI}/preferences/tools/Tools2RulesCheckPrefGroupUI.py (98%) rename {AppGUI => flatcamGUI}/preferences/tools/Tools2sidedPrefGroupUI.py (95%) rename {AppGUI => flatcamGUI}/preferences/tools/ToolsCalculatorsPrefGroupUI.py (97%) rename {AppGUI => flatcamGUI}/preferences/tools/ToolsCutoutPrefGroupUI.py (96%) rename {AppGUI => flatcamGUI}/preferences/tools/ToolsFilmPrefGroupUI.py (92%) rename {AppGUI => flatcamGUI}/preferences/tools/ToolsNCCPrefGroupUI.py (94%) rename {AppGUI => flatcamGUI}/preferences/tools/ToolsPaintPrefGroupUI.py (95%) rename {AppGUI => flatcamGUI}/preferences/tools/ToolsPanelizePrefGroupUI.py (96%) rename {AppGUI => flatcamGUI}/preferences/tools/ToolsPreferencesUI.py (66%) rename {AppGUI => flatcamGUI}/preferences/tools/ToolsSolderpastePrefGroupUI.py (96%) rename {AppGUI => flatcamGUI}/preferences/tools/ToolsSubPrefGroupUI.py (88%) rename {AppGUI => flatcamGUI}/preferences/tools/ToolsTransformPrefGroupUI.py (96%) rename {AppGUI => flatcamGUI}/preferences/tools/__init__.py (100%) rename {AppGUI => flatcamGUI}/preferences/utilities/AutoCompletePrefGroupUI.py (94%) rename {AppGUI => flatcamGUI}/preferences/utilities/FAExcPrefGroupUI.py (95%) rename {AppGUI => flatcamGUI}/preferences/utilities/FAGcoPrefGroupUI.py (94%) rename {AppGUI => flatcamGUI}/preferences/utilities/FAGrbPrefGroupUI.py (94%) rename {AppGUI => flatcamGUI}/preferences/utilities/UtilPreferencesUI.py (76%) rename {AppGUI => flatcamGUI}/preferences/utilities/__init__.py (100%) rename {AppObjects => flatcamObjects}/FlatCAMCNCJob.py (97%) rename {AppObjects => flatcamObjects}/FlatCAMDocument.py (95%) rename {AppObjects => flatcamObjects}/FlatCAMExcellon.py (90%) rename {AppObjects => flatcamObjects}/FlatCAMGeometry.py (96%) rename {AppObjects => flatcamObjects}/FlatCAMGerber.py (76%) rename {AppObjects => flatcamObjects}/FlatCAMObj.py (92%) rename {AppObjects => flatcamObjects}/FlatCAMScript.py (90%) rename {AppObjects => flatcamObjects}/ObjectCollection.py (79%) rename {AppObjects => flatcamObjects}/__init__.py (100%) rename {AppParsers => flatcamParsers}/ParseDXF.py (99%) rename {AppParsers => flatcamParsers}/ParseDXF_Spline.py (100%) rename {AppParsers => flatcamParsers}/ParseExcellon.py (98%) rename {AppParsers => flatcamParsers}/ParseFont.py (99%) rename {AppParsers => flatcamParsers}/ParseGerber.py (99%) rename {AppParsers => flatcamParsers}/ParseHPGL2.py (99%) rename {AppParsers => flatcamParsers}/ParseSVG.py (99%) rename {AppParsers => flatcamParsers}/__init__.py (100%) rename {AppTools => flatcamTools}/ToolAlignObjects.py (98%) rename {AppTools => flatcamTools}/ToolCalculators.py (98%) rename {AppTools => flatcamTools}/ToolCalibration.py (98%) rename {AppTools => flatcamTools}/ToolCopperThieving.py (97%) rename {AppTools => flatcamTools}/ToolCutOut.py (95%) rename {AppTools => flatcamTools}/ToolDblSided.py (98%) rename {AppTools => flatcamTools}/ToolDistance.py (89%) rename {AppTools => flatcamTools}/ToolDistanceMin.py (97%) rename {AppTools => flatcamTools}/ToolExtractDrills.py (98%) rename {AppTools => flatcamTools}/ToolFiducials.py (97%) rename {AppTools => flatcamTools}/ToolFilm.py (94%) rename {AppTools => flatcamTools}/ToolImage.py (96%) rename {AppTools => flatcamTools}/ToolInvertGerber.py (93%) rename {AppTools => flatcamTools}/ToolMove.py (97%) rename {AppTools => flatcamTools}/ToolNCC.py (90%) rename {AppTools => flatcamTools}/ToolOptimal.py (97%) rename AppParsers/ParsePDF.py => flatcamTools/ToolPDF.py (77%) rename {AppTools => flatcamTools}/ToolPaint.py (98%) rename {AppTools => flatcamTools}/ToolPanelize.py (96%) rename {AppTools => flatcamTools}/ToolPcbWizard.py (97%) rename {AppTools => flatcamTools}/ToolProperties.py (98%) rename {AppTools => flatcamTools}/ToolPunchGerber.py (94%) rename {AppTools => flatcamTools}/ToolQRCode.py (95%) rename {AppTools => flatcamTools}/ToolRulesCheck.py (98%) rename {AppTools => flatcamTools}/ToolShell.py (92%) rename {AppTools => flatcamTools}/ToolSolderPaste.py (96%) rename {AppTools => flatcamTools}/ToolSub.py (77%) rename {AppTools => flatcamTools}/ToolTransform.py (98%) create mode 100644 flatcamTools/__init__.py diff --git a/AppGUI/ColumnarFlowLayout.py b/AppGUI/ColumnarFlowLayout.py deleted file mode 100644 index 3c92efd0..00000000 --- a/AppGUI/ColumnarFlowLayout.py +++ /dev/null @@ -1,181 +0,0 @@ -# ########################################################## -# FlatCAM: 2D Post-processing for Manufacturing # -# File by: David Robertson (c) # -# Date: 5/2020 # -# License: MIT Licence # -# ########################################################## - -import sys - -from PyQt5.QtCore import QPoint, QRect, QSize, Qt -from PyQt5.QtWidgets import QLayout, QSizePolicy -import math - - -class ColumnarFlowLayout(QLayout): - def __init__(self, parent=None, margin=0, spacing=-1): - super().__init__(parent) - - if parent is not None: - self.setContentsMargins(margin, margin, margin, margin) - - self.setSpacing(spacing) - self.itemList = [] - - def __del__(self): - del_item = self.takeAt(0) - while del_item: - del_item = self.takeAt(0) - - def addItem(self, item): - self.itemList.append(item) - - def count(self): - return len(self.itemList) - - def itemAt(self, index): - if 0 <= index < len(self.itemList): - return self.itemList[index] - return None - - def takeAt(self, index): - if 0 <= index < len(self.itemList): - return self.itemList.pop(index) - return None - - def expandingDirections(self): - return Qt.Orientations(Qt.Orientation(0)) - - def hasHeightForWidth(self): - return True - - def heightForWidth(self, width): - height = self.doLayout(QRect(0, 0, width, 0), True) - return height - - def setGeometry(self, rect): - super().setGeometry(rect) - self.doLayout(rect, False) - - def sizeHint(self): - return self.minimumSize() - - def minimumSize(self): - size = QSize() - - for item in self.itemList: - size = size.expandedTo(item.minimumSize()) - - margin, _, _, _ = self.getContentsMargins() - - size += QSize(2 * margin, 2 * margin) - return size - - def doLayout(self, rect: QRect, testOnly: bool) -> int: - spacing = self.spacing() - x = rect.x() - y = rect.y() - - # Determine width of widest item - widest = 0 - for item in self.itemList: - widest = max(widest, item.sizeHint().width()) - - # Determine how many equal-width columns we can get, and how wide each one should be - column_count = math.floor(rect.width() / (widest + spacing)) - column_count = min(column_count, len(self.itemList)) - column_count = max(1, column_count) - column_width = math.floor((rect.width() - (column_count-1)*spacing - 1) / column_count) - - # Get the heights for all of our items - item_heights = {} - for item in self.itemList: - height = item.heightForWidth(column_width) if item.hasHeightForWidth() else item.sizeHint().height() - item_heights[item] = height - - # Prepare our column representation - column_contents = [] - column_heights = [] - for column_index in range(column_count): - column_contents.append([]) - column_heights.append(0) - - def add_to_column(column: int, item): - column_contents[column].append(item) - column_heights[column] += (item_heights[item] + spacing) - - def shove_one(from_column: int) -> bool: - if len(column_contents[from_column]) >= 1: - item = column_contents[from_column].pop(0) - column_heights[from_column] -= (item_heights[item] + spacing) - add_to_column(from_column-1, item) - return True - return False - - def shove_cascade_consider(from_column: int) -> bool: - changed_item = False - - if len(column_contents[from_column]) > 1: - item = column_contents[from_column][0] - item_height = item_heights[item] - if column_heights[from_column-1] + item_height < max(column_heights): - changed_item = shove_one(from_column) or changed_item - - if from_column+1 < column_count: - changed_item = shove_cascade_consider(from_column+1) or changed_item - - return changed_item - - def shove_cascade() -> bool: - if column_count < 2: - return False - changed_item = True - while changed_item: - changed_item = shove_cascade_consider(1) - return changed_item - - def pick_best_shoving_position() -> int: - best_pos = 1 - best_height = sys.maxsize - for column_idx in range(1, column_count): - if len(column_contents[column_idx]) == 0: - continue - item = column_contents[column_idx][0] - height_after_shove = column_heights[column_idx-1] + item_heights[item] - if height_after_shove < best_height: - best_height = height_after_shove - best_pos = column_idx - return best_pos - - # Calculate the best layout - column_index = 0 - for item in self.itemList: - item_height = item_heights[item] - if column_heights[column_index] != 0 and (column_heights[column_index] + item_height) > max(column_heights): - column_index += 1 - if column_index >= column_count: - # Run out of room, need to shove more stuff in each column - if column_count >= 2: - changed = shove_cascade() - if not changed: - shoving_pos = pick_best_shoving_position() - shove_one(shoving_pos) - shove_cascade() - column_index = column_count-1 - - add_to_column(column_index, item) - - shove_cascade() - - # Set geometry according to the layout we have calculated - if not testOnly: - for column_index, items in enumerate(column_contents): - x = column_index * (column_width + spacing) - y = 0 - for item in items: - height = item_heights[item] - item.setGeometry(QRect(x, y, column_width, height)) - y += (height + spacing) - - # Return the overall height - return max(column_heights) diff --git a/AppGUI/preferences/OptionUI.py b/AppGUI/preferences/OptionUI.py deleted file mode 100644 index d05691d5..00000000 --- a/AppGUI/preferences/OptionUI.py +++ /dev/null @@ -1,327 +0,0 @@ -from typing import Union, Sequence, List - -from PyQt5 import QtWidgets, QtGui -from PyQt5.QtCore import QSettings - -from AppGUI.GUIElements import RadioSet, FCCheckBox, FCButton, FCComboBox, FCEntry, FCSpinner, FCColorEntry, \ - FCSliderWithSpinner, FCDoubleSpinner, FloatEntry, FCTextArea - -import gettext -import AppTranslation as fcTranslate -import builtins - -fcTranslate.apply_language('strings') -if '_' not in builtins.__dict__: - _ = gettext.gettext - - -class OptionUI: - - def __init__(self, option: str): - self.option = option - - def add_to_grid(self, grid: QtWidgets.QGridLayout, row: int) -> int: - """ - Adds the necessary widget to the grid, starting at the supplied row. - Returns the number of rows used (normally 1) - """ - raise NotImplementedError() - - def get_field(self): - raise NotImplementedError() - - -class BasicOptionUI(OptionUI): - """Abstract OptionUI that has a label on the left then some other widget on the right""" - def __init__(self, option: str, label_text: str, label_tooltip: Union[str, None] = None, - label_bold: bool = False, label_color: Union[str, None] = None): - super().__init__(option=option) - self.label_text = label_text - self.label_tooltip = label_tooltip - self.label_bold = label_bold - self.label_color = label_color - self.label_widget = self.build_label_widget() - self.entry_widget = self.build_entry_widget() - - def build_label_widget(self) -> QtWidgets.QLabel: - fmt = "%s:" - if self.label_bold: - fmt = "%s" % fmt - if self.label_color: - fmt = "%s" % (self.label_color, fmt) - label_widget = QtWidgets.QLabel(fmt % _(self.label_text)) - if self.label_tooltip is not None: - label_widget.setToolTip(_(self.label_tooltip)) - return label_widget - - def build_entry_widget(self) -> QtWidgets.QWidget: - raise NotImplementedError() - - def add_to_grid(self, grid: QtWidgets.QGridLayout, row: int) -> int: - grid.addWidget(self.label_widget, row, 0) - grid.addWidget(self.entry_widget, row, 1) - return 1 - - def get_field(self): - return self.entry_widget - - -class LineEntryOptionUI(BasicOptionUI): - def build_entry_widget(self) -> QtWidgets.QWidget: - return FCEntry() - - -# Not sure why this is needed over DoubleSpinnerOptionUI -class FloatEntryOptionUI(BasicOptionUI): - def build_entry_widget(self) -> QtWidgets.QWidget: - return FloatEntry() - - -class RadioSetOptionUI(BasicOptionUI): - - def __init__(self, option: str, label_text: str, choices: list, orientation='horizontal', **kwargs): - self.choices = choices - self.orientation = orientation - super().__init__(option=option, label_text=label_text, **kwargs) - - def build_entry_widget(self) -> QtWidgets.QWidget: - return RadioSet(choices=self.choices, orientation=self.orientation) - - -class TextAreaOptionUI(OptionUI): - - def __init__(self, option: str, label_text: str, label_tooltip: str): - super().__init__(option=option) - self.label_text = label_text - self.label_tooltip = label_tooltip - self.label_widget = self.build_label_widget() - self.textarea_widget = self.build_textarea_widget() - - def build_label_widget(self): - label = QtWidgets.QLabel("%s:" % _(self.label_text)) - label.setToolTip(_(self.label_tooltip)) - return label - - def build_textarea_widget(self): - textarea = FCTextArea() - textarea.setPlaceholderText(_(self.label_tooltip)) - - qsettings = QSettings("Open Source", "FlatCAM") - if qsettings.contains("textbox_font_size"): - tb_fsize = qsettings.value('textbox_font_size', type=int) - else: - tb_fsize = 10 - font = QtGui.QFont() - font.setPointSize(tb_fsize) - textarea.setFont(font) - - return textarea - - def get_field(self): - return self.textarea_widget - - def add_to_grid(self, grid: QtWidgets.QGridLayout, row: int) -> int: - grid.addWidget(self.label_widget, row, 0, 1, 3) - grid.addWidget(self.textarea_widget, row+1, 0, 1, 3) - return 2 - - -class CheckboxOptionUI(OptionUI): - - def __init__(self, option: str, label_text: str, label_tooltip: str): - super().__init__(option=option) - self.label_text = label_text - self.label_tooltip = label_tooltip - self.checkbox_widget = self.build_checkbox_widget() - - def build_checkbox_widget(self): - checkbox = FCCheckBox('%s' % _(self.label_text)) - checkbox.setToolTip(_(self.label_tooltip)) - return checkbox - - def add_to_grid(self, grid: QtWidgets.QGridLayout, row: int) -> int: - grid.addWidget(self.checkbox_widget, row, 0, 1, 3) - return 1 - - def get_field(self): - return self.checkbox_widget - - -class ComboboxOptionUI(BasicOptionUI): - - def __init__(self, option: str, label_text: str, choices: Sequence, **kwargs): - self.choices = choices - super().__init__(option=option, label_text=label_text, **kwargs) - - def build_entry_widget(self): - combo = FCComboBox() - for choice in self.choices: - # don't translate the QCombo items as they are used in QSettings and identified by name - combo.addItem(choice) - return combo - - -class ColorOptionUI(BasicOptionUI): - def build_entry_widget(self) -> QtWidgets.QWidget: - entry = FCColorEntry() - return entry - - -class SliderWithSpinnerOptionUI(BasicOptionUI): - def __init__(self, option: str, label_text: str, min_value=0, max_value=100, step=1, **kwargs): - self.min_value = min_value - self.max_value = max_value - self.step = step - super().__init__(option=option, label_text=label_text, **kwargs) - - def build_entry_widget(self) -> QtWidgets.QWidget: - entry = FCSliderWithSpinner(min=self.min_value, max=self.max_value, step=self.step) - return entry - - -class ColorAlphaSliderOptionUI(SliderWithSpinnerOptionUI): - def __init__(self, applies_to: List[str], group, label_text: str, **kwargs): - self.applies_to = applies_to - self.group = group - super().__init__(option="__color_alpha_slider", label_text=label_text, min_value=0, max_value=255, step=1, - **kwargs) - self.get_field().valueChanged.connect(self._on_alpha_change) - - def add_to_grid(self, grid: QtWidgets.QGridLayout, row: int) -> int: - for index, field in enumerate(self._get_target_fields()): - field.entry.textChanged.connect(lambda value, i=index: self._on_target_change(target_index=i)) - return super().add_to_grid(grid, row) - - def _get_target_fields(self): - return list(map(lambda n: self.group.option_dict()[n].get_field(), self.applies_to)) - - def _on_target_change(self, target_index: int): - field = self._get_target_fields()[target_index] - color = field.get_value() - alpha_part = color[7:] - if len(alpha_part) != 2: - return - alpha = int(alpha_part, 16) - if alpha < 0 or alpha > 255 or self.get_field().get_value() == alpha: - return - self.get_field().set_value(alpha) - - def _on_alpha_change(self): - alpha = self.get_field().get_value() - for field in self._get_target_fields(): - old_value = field.get_value() - new_value = self._modify_color_alpha(old_value, alpha=alpha) - field.set_value(new_value) - - @staticmethod - def _modify_color_alpha(color: str, alpha: int): - color_without_alpha = color[:7] - if alpha > 255: - return color_without_alpha + "FF" - elif alpha < 0: - return color_without_alpha + "00" - else: - hexalpha = hex(alpha)[2:] - if len(hexalpha) == 1: - hexalpha = "0" + hexalpha - return color_without_alpha + hexalpha - - -class SpinnerOptionUI(BasicOptionUI): - def __init__(self, option: str, label_text: str, min_value: int, max_value: int, step: int = 1, **kwargs): - self.min_value = min_value - self.max_value = max_value - self.step = step - super().__init__(option=option, label_text=label_text, **kwargs) - - def build_entry_widget(self) -> QtWidgets.QWidget: - entry = FCSpinner() - entry.set_range(self.min_value, self.max_value) - entry.set_step(self.step) - entry.setWrapping(True) - return entry - - -class DoubleSpinnerOptionUI(BasicOptionUI): - def __init__(self, option: str, label_text: str, step: float, decimals: int, min_value=None, max_value=None, - suffix=None, **kwargs): - self.min_value = min_value - self.max_value = max_value - self.step = step - self.suffix = suffix - self.decimals = decimals - super().__init__(option=option, label_text=label_text, **kwargs) - - def build_entry_widget(self) -> QtWidgets.QWidget: - entry = FCDoubleSpinner(suffix=self.suffix) - entry.set_precision(self.decimals) - entry.setSingleStep(self.step) - if self.min_value is None: - self.min_value = entry.minimum() - else: - entry.setMinimum(self.min_value) - if self.max_value is None: - self.max_value = entry.maximum() - else: - entry.setMaximum(self.max_value) - return entry - - -class HeadingOptionUI(OptionUI): - def __init__(self, label_text: str, label_tooltip: Union[str, None] = None): - super().__init__(option="__heading") - self.label_text = label_text - self.label_tooltip = label_tooltip - - def build_heading_widget(self): - heading = QtWidgets.QLabel('%s' % _(self.label_text)) - heading.setToolTip(_(self.label_tooltip)) - return heading - - def add_to_grid(self, grid: QtWidgets.QGridLayout, row: int) -> int: - grid.addWidget(self.build_heading_widget(), row, 0, 1, 2) - return 1 - - def get_field(self): - return None - - -class SeparatorOptionUI(OptionUI): - - def __init__(self): - super().__init__(option="__separator") - - @staticmethod - def build_separator_widget(): - separator = QtWidgets.QFrame() - separator.setFrameShape(QtWidgets.QFrame.HLine) - separator.setFrameShadow(QtWidgets.QFrame.Sunken) - return separator - - def add_to_grid(self, grid: QtWidgets.QGridLayout, row: int) -> int: - grid.addWidget(self.build_separator_widget(), row, 0, 1, 2) - return 1 - - def get_field(self): - return None - - -class FullWidthButtonOptionUI(OptionUI): - def __init__(self, option: str, label_text: str, label_tooltip: Union[str, None]): - super().__init__(option=option) - self.label_text = label_text - self.label_tooltip = label_tooltip - self.button_widget = self.build_button_widget() - - def build_button_widget(self): - button = FCButton(_(self.label_text)) - if self.label_tooltip is not None: - button.setToolTip(_(self.label_tooltip)) - return button - - def add_to_grid(self, grid: QtWidgets.QGridLayout, row: int) -> int: - grid.addWidget(self.button_widget, row, 0, 1, 3) - return 1 - - def get_field(self): - return self.button_widget diff --git a/AppGUI/preferences/OptionsGroupUI.py b/AppGUI/preferences/OptionsGroupUI.py deleted file mode 100644 index 22eede6a..00000000 --- a/AppGUI/preferences/OptionsGroupUI.py +++ /dev/null @@ -1,77 +0,0 @@ -# ########################################################## -# FlatCAM: 2D Post-processing for Manufacturing # -# File by: David Robertson (c) # -# Date: 5/2020 # -# License: MIT Licence # -# ########################################################## - -from typing import Dict - -from PyQt5 import QtWidgets -from PyQt5.QtCore import QSettings - -import gettext -import AppTranslation as fcTranslate -import builtins - -from AppGUI.preferences.OptionUI import OptionUI - -fcTranslate.apply_language('strings') -if '_' not in builtins.__dict__: - _ = gettext.gettext - -settings = QSettings("Open Source", "FlatCAM") -if settings.contains("machinist"): - machinist_setting = settings.value('machinist', type=int) -else: - machinist_setting = 0 - - -class OptionsGroupUI(QtWidgets.QGroupBox): - app = None - - def __init__(self, title, parent=None): - # QtGui.QGroupBox.__init__(self, title, parent=parent) - super(OptionsGroupUI, self).__init__() - self.setStyleSheet(""" - QGroupBox - { - font-size: 16px; - font-weight: bold; - } - """) - - self.layout = QtWidgets.QVBoxLayout() - self.setLayout(self.layout) - - def option_dict(self) -> Dict[str, OptionUI]: - # FIXME! - return {} - - -class OptionsGroupUI2(OptionsGroupUI): - - def __init__(self, **kwargs): - super().__init__(**kwargs) - - self.grid = QtWidgets.QGridLayout() - self.layout.addLayout(self.grid) - self.grid.setColumnStretch(0, 0) - self.grid.setColumnStretch(1, 1) - - self.options = self.build_options() - - row = 0 - for option in self.options: - row += option.add_to_grid(grid=self.grid, row=row) - - self.layout.addStretch() - - def build_options(self) -> [OptionUI]: - return [] - - def option_dict(self) -> Dict[str, OptionUI]: - result = {} - for optionui in self.options: - result[optionui.option] = optionui - return result diff --git a/AppGUI/preferences/PreferencesSectionUI.py b/AppGUI/preferences/PreferencesSectionUI.py deleted file mode 100644 index 6daae820..00000000 --- a/AppGUI/preferences/PreferencesSectionUI.py +++ /dev/null @@ -1,41 +0,0 @@ -from typing import Dict -from PyQt5 import QtWidgets, QtCore - -from AppGUI.ColumnarFlowLayout import ColumnarFlowLayout -from AppGUI.preferences.OptionUI import OptionUI -from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI - - -class PreferencesSectionUI(QtWidgets.QWidget): - - def __init__(self, **kwargs): - super().__init__(**kwargs) - self.layout = ColumnarFlowLayout() # QtWidgets.QHBoxLayout() - self.setLayout(self.layout) - - self.groups = self.build_groups() - for group in self.groups: - group.setMinimumWidth(250) - self.layout.addWidget(group) - - def build_groups(self) -> [OptionsGroupUI]: - return [] - - def option_dict(self) -> Dict[str, OptionUI]: - result = {} - for group in self.groups: - groupoptions = group.option_dict() - result.update(groupoptions) - return result - - def build_tab(self): - scroll_area = QtWidgets.QScrollArea() - scroll_area.setWidget(self) - scroll_area.setWidgetResizable(True) - return scroll_area - - def get_tab_id(self) -> str: - raise NotImplementedError - - def get_tab_label(self) -> str: - raise NotImplementedError diff --git a/AppGUI/preferences/general/GeneralAppSettingsGroupUI.py b/AppGUI/preferences/general/GeneralAppSettingsGroupUI.py deleted file mode 100644 index a35c247a..00000000 --- a/AppGUI/preferences/general/GeneralAppSettingsGroupUI.py +++ /dev/null @@ -1,302 +0,0 @@ - -from PyQt5 import QtCore -from PyQt5.QtCore import QSettings -from AppGUI.GUIElements import OptionalInputSection -from AppGUI.preferences import settings -from AppGUI.preferences.OptionUI import * -from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI2 - -import gettext -import AppTranslation as fcTranslate -import builtins -fcTranslate.apply_language('strings') -if '_' not in builtins.__dict__: - _ = gettext.gettext - - -class GeneralAppSettingsGroupUI(OptionsGroupUI2): - def __init__(self, decimals=4, **kwargs): - self.decimals = decimals - self.pagesize = {} - self.pagesize.update( - { - 'A0': (841, 1189), - 'A1': (594, 841), - 'A2': (420, 594), - 'A3': (297, 420), - 'A4': (210, 297), - 'A5': (148, 210), - 'A6': (105, 148), - 'A7': (74, 105), - 'A8': (52, 74), - 'A9': (37, 52), - 'A10': (26, 37), - - 'B0': (1000, 1414), - 'B1': (707, 1000), - 'B2': (500, 707), - 'B3': (353, 500), - 'B4': (250, 353), - 'B5': (176, 250), - 'B6': (125, 176), - 'B7': (88, 125), - 'B8': (62, 88), - 'B9': (44, 62), - 'B10': (31, 44), - - 'C0': (917, 1297), - 'C1': (648, 917), - 'C2': (458, 648), - 'C3': (324, 458), - 'C4': (229, 324), - 'C5': (162, 229), - 'C6': (114, 162), - 'C7': (81, 114), - 'C8': (57, 81), - 'C9': (40, 57), - 'C10': (28, 40), - - # American paper sizes - 'LETTER': (8.5, 11), - 'LEGAL': (8.5, 14), - 'ELEVENSEVENTEEN': (11, 17), - - # From https://en.wikipedia.org/wiki/Paper_size - 'JUNIOR_LEGAL': (5, 8), - 'HALF_LETTER': (5.5, 8), - 'GOV_LETTER': (8, 10.5), - 'GOV_LEGAL': (8.5, 13), - 'LEDGER': (17, 11), - } - ) - super().__init__(**kwargs) - - self.setTitle(str(_("App Settings"))) - - qsettings = QSettings("Open Source", "FlatCAM") - - self.notebook_font_size_field = self.option_dict()["notebook_font_size"].get_field() - if qsettings.contains("notebook_font_size"): - self.notebook_font_size_field.set_value(qsettings.value('notebook_font_size', type=int)) - else: - self.notebook_font_size_field.set_value(12) - - self.axis_font_size_field = self.option_dict()["axis_font_size"].get_field() - if qsettings.contains("axis_font_size"): - self.axis_font_size_field.set_value(qsettings.value('axis_font_size', type=int)) - else: - self.axis_font_size_field.set_value(8) - - self.textbox_font_size_field = self.option_dict()["textbox_font_size"].get_field() - if qsettings.contains("textbox_font_size"): - self.textbox_font_size_field.set_value(settings.value('textbox_font_size', type=int)) - else: - self.textbox_font_size_field.set_value(10) - - self.workspace_enabled_field = self.option_dict()["global_workspace"].get_field() - self.workspace_type_field = self.option_dict()["global_workspaceT"].get_field() - self.workspace_type_label = self.option_dict()["global_workspaceT"].label_widget - self.workspace_orientation_field = self.option_dict()["global_workspace_orientation"].get_field() - self.workspace_orientation_label = self.option_dict()["global_workspace_orientation"].label_widget - self.wks = OptionalInputSection(self.workspace_enabled_field, [self.workspace_type_label, self.workspace_type_field, self.workspace_orientation_label, self.workspace_orientation_field]) - - self.mouse_cursor_color_enabled_field = self.option_dict()["global_cursor_color_enabled"].get_field() - self.mouse_cursor_color_field = self.option_dict()["global_cursor_color"].get_field() - self.mouse_cursor_color_label = self.option_dict()["global_cursor_color"].label_widget - self.mois = OptionalInputSection(self.mouse_cursor_color_enabled_field, [self.mouse_cursor_color_label, self.mouse_cursor_color_field]) - self.mouse_cursor_color_enabled_field.stateChanged.connect(self.on_mouse_cursor_color_enable) - self.mouse_cursor_color_field.entry.editingFinished.connect(self.on_mouse_cursor_entry) - - def build_options(self) -> [OptionUI]: - return [ - HeadingOptionUI(label_text="Grid Settings", label_tooltip=None), - DoubleSpinnerOptionUI( - option="global_gridx", - label_text="X value", - label_tooltip="This is the Grid snap value on X axis.", - step=0.1, - decimals=self.decimals - ), - DoubleSpinnerOptionUI( - option="global_gridy", - label_text='Y value', - label_tooltip="This is the Grid snap value on Y axis.", - step=0.1, - decimals=self.decimals - ), - DoubleSpinnerOptionUI( - option="global_snap_max", - label_text="Snap Max", - label_tooltip="Max. magnet distance", - step=0.1, - decimals=self.decimals - ), - SeparatorOptionUI(), - - HeadingOptionUI(label_text="Workspace Settings", label_tooltip=None), - CheckboxOptionUI( - option="global_workspace", - label_text="Active", - label_tooltip="Draw a delimiting rectangle on canvas.\n" - "The purpose is to illustrate the limits for our work." - ), - ComboboxOptionUI( - option="global_workspaceT", - label_text="Size", - label_tooltip="Select the type of rectangle to be used on canvas,\nas valid workspace.", - choices=list(self.pagesize.keys()) - ), - RadioSetOptionUI( - option="global_workspace_orientation", - label_text="Orientation", - label_tooltip="Can be:\n- Portrait\n- Landscape", - choices=[ - {'label': _('Portrait'), 'value': 'p'}, - {'label': _('Landscape'), 'value': 'l'}, - ] - ), - # FIXME enabling OptionalInputSection ?? - SeparatorOptionUI(), - - HeadingOptionUI(label_text="Font Size", label_tooltip=None), - SpinnerOptionUI( - option="notebook_font_size", - label_text="Notebook", - label_tooltip="This sets the font size for the elements found in the Notebook.\n" - "The notebook is the collapsible area in the left side of the GUI,\n" - "and include the Project, Selected and Tool tabs.", - min_value=8, max_value=40, step=1 - ), - SpinnerOptionUI( - option="axis_font_size", - label_text="Axis", - label_tooltip="This sets the font size for canvas axis.", - min_value=8, max_value=40, step=1 - ), - SpinnerOptionUI( - option="textbox_font_size", - label_text="Textbox", - label_tooltip="This sets the font size for the Textbox GUI\n" - "elements that are used in the application.", - min_value=8, max_value=40, step=1 - ), - SeparatorOptionUI(), - - HeadingOptionUI(label_text="Mouse Settings", label_tooltip=None), - RadioSetOptionUI( - option="global_cursor_type", - label_text="Cursor Shape", - label_tooltip="Choose a mouse cursor shape.\n" - "- Small -> with a customizable size.\n" - "- Big -> Infinite lines", - choices=[ - {"label": _("Small"), "value": "small"}, - {"label": _("Big"), "value": "big"} - ] - ), - SpinnerOptionUI( - option="global_cursor_size", - label_text="Cursor Size", - label_tooltip="Set the size of the mouse cursor, in pixels.", - min_value=10, max_value=70, step=1 - ), - SpinnerOptionUI( - option="global_cursor_width", - label_text="Cursor Width", - label_tooltip="Set the line width of the mouse cursor, in pixels.", - min_value=1, max_value=10, step=1 - ), - CheckboxOptionUI( - option="global_cursor_color_enabled", - label_text="Cursor Color", - label_tooltip="Check this box to color mouse cursor." - ), - ColorOptionUI( - option="global_cursor_color", - label_text="Cursor Color", - label_tooltip="Set the color of the mouse cursor." - ), - # FIXME enabling of cursor color - RadioSetOptionUI( - option="global_pan_button", - label_text="Pan Button", - label_tooltip="Select the mouse button to use for panning:\n" - "- MMB --> Middle Mouse Button\n" - "- RMB --> Right Mouse Button", - choices=[{'label': _('MMB'), 'value': '3'}, - {'label': _('RMB'), 'value': '2'}] - ), - RadioSetOptionUI( - option="global_mselect_key", - label_text="Multiple Selection", - label_tooltip="Select the key used for multiple selection.", - choices=[{'label': _('CTRL'), 'value': 'Control'}, - {'label': _('SHIFT'), 'value': 'Shift'}] - ), - SeparatorOptionUI(), - - CheckboxOptionUI( - option="global_delete_confirmation", - label_text="Delete object confirmation", - label_tooltip="When checked the application will ask for user confirmation\n" - "whenever the Delete object(s) event is triggered, either by\n" - "menu shortcut or key shortcut." - ), - CheckboxOptionUI( - option="global_open_style", - label_text='"Open" behavior', - label_tooltip="When checked the path for the last saved file is used when saving files,\n" - "and the path for the last opened file is used when opening files.\n\n" - "When unchecked the path for opening files is the one used last: either the\n" - "path for saving files or the path for opening files." - ), - CheckboxOptionUI( - option="global_toggle_tooltips", - label_text="Enable ToolTips", - label_tooltip="Check this box if you want to have toolTips displayed\n" - "when hovering with mouse over items throughout the App." - ), - CheckboxOptionUI( - option="global_machinist_setting", - label_text="Allow Machinist Unsafe Settings", - label_tooltip="If checked, some of the application settings will be allowed\n" - "to have values that are usually unsafe to use.\n" - "Like Z travel negative values or Z Cut positive values.\n" - "It will applied at the next application start.\n" - "<>: Don't change this unless you know what you are doing !!!" - ), - SpinnerOptionUI( - option="global_bookmarks_limit", - label_text="Bookmarks limit", - label_tooltip="The maximum number of bookmarks that may be installed in the menu.\n" - "The number of bookmarks in the bookmark manager may be greater\n" - "but the menu will hold only so much.", - min_value=0, max_value=9999, step=1 - ), - ComboboxOptionUI( - option="global_activity_icon", - label_text="Activity Icon", - label_tooltip="Select the GIF that show activity when FlatCAM is active.", - choices=['Ball black', 'Ball green', 'Arrow green', 'Eclipse green'] - ) - - ] - - def on_mouse_cursor_color_enable(self, val): - if val: - self.app.cursor_color_3D = self.app.defaults["global_cursor_color"] - else: - theme_settings = QtCore.QSettings("Open Source", "FlatCAM") - if theme_settings.contains("theme"): - theme = theme_settings.value('theme', type=str) - else: - theme = 'white' - - if theme == 'white': - self.app.cursor_color_3D = 'black' - else: - self.app.cursor_color_3D = 'gray' - - def on_mouse_cursor_entry(self): - self.app.defaults['global_cursor_color'] = self.mouse_cursor_color_field.get_value() - self.app.cursor_color_3D = self.app.defaults["global_cursor_color"] diff --git a/AppGUI/preferences/gerber/GerberOptPrefGroupUI.py b/AppGUI/preferences/gerber/GerberOptPrefGroupUI.py deleted file mode 100644 index c619a3c1..00000000 --- a/AppGUI/preferences/gerber/GerberOptPrefGroupUI.py +++ /dev/null @@ -1,100 +0,0 @@ -from PyQt5 import QtWidgets -from PyQt5.QtCore import QSettings - -from AppGUI.GUIElements import FCDoubleSpinner, FCSpinner, RadioSet, FCCheckBox, FCComboBox -from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI - -import gettext -import AppTranslation as fcTranslate -import builtins - -fcTranslate.apply_language('strings') -if '_' not in builtins.__dict__: - _ = gettext.gettext - -settings = QSettings("Open Source", "FlatCAM") -if settings.contains("machinist"): - machinist_setting = settings.value('machinist', type=int) -else: - machinist_setting = 0 - - -class GerberOptPrefGroupUI(OptionsGroupUI): - def __init__(self, decimals=4, parent=None): - # OptionsGroupUI.__init__(self, "Gerber Options Preferences", parent=parent) - super(GerberOptPrefGroupUI, self).__init__(self, parent=parent) - - self.decimals = decimals - - self.setTitle(str(_("Gerber Options"))) - - # ## Clear non-copper regions - self.clearcopper_label = QtWidgets.QLabel("%s:" % _("Non-copper regions")) - self.clearcopper_label.setToolTip( - _("Create polygons covering the\n" - "areas without copper on the PCB.\n" - "Equivalent to the inverse of this\n" - "object. Can be used to remove all\n" - "copper from a specified region.") - ) - self.layout.addWidget(self.clearcopper_label) - - grid1 = QtWidgets.QGridLayout() - self.layout.addLayout(grid1) - - # Margin - bmlabel = QtWidgets.QLabel('%s:' % _('Boundary Margin')) - bmlabel.setToolTip( - _("Specify the edge of the PCB\n" - "by drawing a box around all\n" - "objects with this minimum\n" - "distance.") - ) - grid1.addWidget(bmlabel, 0, 0) - self.noncopper_margin_entry = FCDoubleSpinner() - self.noncopper_margin_entry.set_precision(self.decimals) - self.noncopper_margin_entry.setSingleStep(0.1) - self.noncopper_margin_entry.set_range(-9999, 9999) - grid1.addWidget(self.noncopper_margin_entry, 0, 1) - - # Rounded corners - self.noncopper_rounded_cb = FCCheckBox(label=_("Rounded Geo")) - self.noncopper_rounded_cb.setToolTip( - _("Resulting geometry will have rounded corners.") - ) - grid1.addWidget(self.noncopper_rounded_cb, 1, 0, 1, 2) - - separator_line = QtWidgets.QFrame() - separator_line.setFrameShape(QtWidgets.QFrame.HLine) - separator_line.setFrameShadow(QtWidgets.QFrame.Sunken) - grid1.addWidget(separator_line, 2, 0, 1, 2) - - # ## Bounding box - self.boundingbox_label = QtWidgets.QLabel('%s:' % _('Bounding Box')) - self.layout.addWidget(self.boundingbox_label) - - grid2 = QtWidgets.QGridLayout() - self.layout.addLayout(grid2) - - bbmargin = QtWidgets.QLabel('%s:' % _('Boundary Margin')) - bbmargin.setToolTip( - _("Distance of the edges of the box\n" - "to the nearest polygon.") - ) - self.bbmargin_entry = FCDoubleSpinner() - self.bbmargin_entry.set_precision(self.decimals) - self.bbmargin_entry.setSingleStep(0.1) - self.bbmargin_entry.set_range(-9999, 9999) - - grid2.addWidget(bbmargin, 0, 0) - grid2.addWidget(self.bbmargin_entry, 0, 1) - - self.bbrounded_cb = FCCheckBox(label='%s' % _("Rounded Geo")) - self.bbrounded_cb.setToolTip( - _("If the bounding box is \n" - "to have rounded corners\n" - "their radius is equal to\n" - "the margin.") - ) - grid2.addWidget(self.bbrounded_cb, 1, 0, 1, 2) - self.layout.addStretch() diff --git a/AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py b/AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py deleted file mode 100644 index 559eea86..00000000 --- a/AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py +++ /dev/null @@ -1,81 +0,0 @@ -from PyQt5 import QtWidgets -from PyQt5.QtCore import QSettings - -from AppGUI.GUIElements import FCDoubleSpinner -from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI - -import gettext -import AppTranslation as fcTranslate -import builtins - -fcTranslate.apply_language('strings') -if '_' not in builtins.__dict__: - _ = gettext.gettext - -settings = QSettings("Open Source", "FlatCAM") -if settings.contains("machinist"): - machinist_setting = settings.value('machinist', type=int) -else: - machinist_setting = 0 - - -class ToolsCornersPrefGroupUI(OptionsGroupUI): - def __init__(self, decimals=4, parent=None): - # OptionsGroupUI.__init__(self, "Calculators Tool Options", parent=parent) - super(ToolsCornersPrefGroupUI, self).__init__(self, parent=parent) - - self.setTitle(str(_("Corner Markers Options"))) - self.decimals = decimals - - grid0 = QtWidgets.QGridLayout() - grid0.setColumnStretch(0, 0) - grid0.setColumnStretch(1, 1) - self.layout.addLayout(grid0) - - self.param_label = QtWidgets.QLabel('%s:' % _('Parameters')) - self.param_label.setToolTip( - _("Parameters used for this tool.") - ) - grid0.addWidget(self.param_label, 0, 0, 1, 2) - - # Thickness # - self.thick_label = QtWidgets.QLabel('%s:' % _("Thickness")) - self.thick_label.setToolTip( - _("The thickness of the line that makes the corner marker.") - ) - self.thick_entry = FCDoubleSpinner() - self.thick_entry.set_range(0.0000, 9.9999) - self.thick_entry.set_precision(self.decimals) - self.thick_entry.setWrapping(True) - self.thick_entry.setSingleStep(10 ** -self.decimals) - - grid0.addWidget(self.thick_label, 1, 0) - grid0.addWidget(self.thick_entry, 1, 1) - - # Length # - self.l_label = QtWidgets.QLabel('%s:' % _("Length")) - self.l_label.setToolTip( - _("The length of the line that makes the corner marker.") - ) - self.l_entry = FCDoubleSpinner() - self.l_entry.set_range(-9999.9999, 9999.9999) - self.l_entry.set_precision(self.decimals) - self.l_entry.setSingleStep(10 ** -self.decimals) - - # Margin # - self.margin_label = QtWidgets.QLabel('%s:' % _("Margin")) - self.margin_label.setToolTip( - _("Bounding box margin.") - ) - self.margin_entry = FCDoubleSpinner() - self.margin_entry.set_range(-9999.9999, 9999.9999) - self.margin_entry.set_precision(self.decimals) - self.margin_entry.setSingleStep(0.1) - - grid0.addWidget(self.margin_label, 2, 0) - grid0.addWidget(self.margin_entry, 2, 1) - - grid0.addWidget(self.l_label, 4, 0) - grid0.addWidget(self.l_entry, 4, 1) - - self.layout.addStretch() diff --git a/AppGUI/preferences/tools/ToolsISOPrefGroupUI.py b/AppGUI/preferences/tools/ToolsISOPrefGroupUI.py deleted file mode 100644 index 0b9b68a5..00000000 --- a/AppGUI/preferences/tools/ToolsISOPrefGroupUI.py +++ /dev/null @@ -1,320 +0,0 @@ -from PyQt5 import QtWidgets -from PyQt5.QtCore import QSettings - -from AppGUI.GUIElements import RadioSet, FCDoubleSpinner, FCComboBox, FCCheckBox, FCSpinner, NumericalEvalTupleEntry -from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI - -import gettext -import AppTranslation as fcTranslate -import builtins - -fcTranslate.apply_language('strings') -if '_' not in builtins.__dict__: - _ = gettext.gettext - -settings = QSettings("Open Source", "FlatCAM") -if settings.contains("machinist"): - machinist_setting = settings.value('machinist', type=int) -else: - machinist_setting = 0 - - -class ToolsISOPrefGroupUI(OptionsGroupUI): - def __init__(self, decimals=4, parent=None): - super(ToolsISOPrefGroupUI, self).__init__(self, parent=parent) - - self.setTitle(str(_("Isolation Tool Options"))) - self.decimals = decimals - - # ## Clear non-copper regions - self.iso_label = QtWidgets.QLabel("%s:" % _("Parameters")) - self.iso_label.setToolTip( - _("Create a Geometry object with\n" - "toolpaths to cut around polygons.") - ) - self.layout.addWidget(self.iso_label) - - grid0 = QtWidgets.QGridLayout() - self.layout.addLayout(grid0) - - # Tool Dias - isotdlabel = QtWidgets.QLabel('%s:' % _('Tools Dia')) - isotdlabel.setToolTip( - _("Diameters of the tools, separated by comma.\n" - "The value of the diameter has to use the dot decimals separator.\n" - "Valid values: 0.3, 1.0") - ) - self.tool_dia_entry = NumericalEvalTupleEntry(border_color='#0069A9') - self.tool_dia_entry.setPlaceholderText(_("Comma separated values")) - - grid0.addWidget(isotdlabel, 0, 0) - grid0.addWidget(self.tool_dia_entry, 0, 1, 1, 2) - - # Tool order Radio Button - self.order_label = QtWidgets.QLabel('%s:' % _('Tool order')) - self.order_label.setToolTip(_("This set the way that the tools in the tools table are used.\n" - "'No' --> means that the used order is the one in the tool table\n" - "'Forward' --> means that the tools will be ordered from small to big\n" - "'Reverse' --> means that the tools will ordered from big to small\n\n" - "WARNING: using rest machining will automatically set the order\n" - "in reverse and disable this control.")) - - self.order_radio = RadioSet([{'label': _('No'), 'value': 'no'}, - {'label': _('Forward'), 'value': 'fwd'}, - {'label': _('Reverse'), 'value': 'rev'}]) - - grid0.addWidget(self.order_label, 1, 0) - grid0.addWidget(self.order_radio, 1, 1, 1, 2) - - # Tool Type Radio Button - self.tool_type_label = QtWidgets.QLabel('%s:' % _('Tool Type')) - self.tool_type_label.setToolTip( - _("Default tool type:\n" - "- 'V-shape'\n" - "- Circular") - ) - - self.tool_type_radio = RadioSet([{'label': _('V-shape'), 'value': 'V'}, - {'label': _('Circular'), 'value': 'C1'}]) - self.tool_type_radio.setToolTip( - _("Default tool type:\n" - "- 'V-shape'\n" - "- Circular") - ) - - grid0.addWidget(self.tool_type_label, 2, 0) - grid0.addWidget(self.tool_type_radio, 2, 1, 1, 2) - - # Tip Dia - self.tipdialabel = QtWidgets.QLabel('%s:' % _('V-Tip Dia')) - self.tipdialabel.setToolTip( - _("The tip diameter for V-Shape Tool")) - self.tipdia_entry = FCDoubleSpinner() - self.tipdia_entry.set_precision(self.decimals) - self.tipdia_entry.set_range(0, 1000) - self.tipdia_entry.setSingleStep(0.1) - - grid0.addWidget(self.tipdialabel, 3, 0) - grid0.addWidget(self.tipdia_entry, 3, 1, 1, 2) - - # Tip Angle - self.tipanglelabel = QtWidgets.QLabel('%s:' % _('V-Tip Angle')) - self.tipanglelabel.setToolTip( - _("The tip angle for V-Shape Tool.\n" - "In degrees.")) - self.tipangle_entry = FCDoubleSpinner() - self.tipangle_entry.set_precision(self.decimals) - self.tipangle_entry.set_range(1, 180) - self.tipangle_entry.setSingleStep(5) - self.tipangle_entry.setWrapping(True) - - grid0.addWidget(self.tipanglelabel, 4, 0) - grid0.addWidget(self.tipangle_entry, 4, 1, 1, 2) - - # Cut Z entry - cutzlabel = QtWidgets.QLabel('%s:' % _('Cut Z')) - cutzlabel.setToolTip( - _("Depth of cut into material. Negative value.\n" - "In FlatCAM units.") - ) - self.cutz_entry = FCDoubleSpinner() - self.cutz_entry.set_precision(self.decimals) - self.cutz_entry.set_range(-9999.9999, 0.0000) - self.cutz_entry.setSingleStep(0.1) - - self.cutz_entry.setToolTip( - _("Depth of cut into material. Negative value.\n" - "In FlatCAM units.") - ) - - grid0.addWidget(cutzlabel, 5, 0) - grid0.addWidget(self.cutz_entry, 5, 1, 1, 2) - - # New Diameter - self.newdialabel = QtWidgets.QLabel('%s:' % _('New Dia')) - self.newdialabel.setToolTip( - _("Diameter for the new tool to add in the Tool Table.\n" - "If the tool is V-shape type then this value is automatically\n" - "calculated from the other parameters.") - ) - self.newdia_entry = FCDoubleSpinner() - self.newdia_entry.set_precision(self.decimals) - self.newdia_entry.set_range(0.0001, 9999.9999) - self.newdia_entry.setSingleStep(0.1) - - grid0.addWidget(self.newdialabel, 6, 0) - grid0.addWidget(self.newdia_entry, 6, 1, 1, 2) - - separator_line = QtWidgets.QFrame() - separator_line.setFrameShape(QtWidgets.QFrame.HLine) - separator_line.setFrameShadow(QtWidgets.QFrame.Sunken) - grid0.addWidget(separator_line, 7, 0, 1, 3) - - # Passes - passlabel = QtWidgets.QLabel('%s:' % _('Passes')) - passlabel.setToolTip( - _("Width of the isolation gap in\n" - "number (integer) of tool widths.") - ) - self.passes_entry = FCSpinner() - self.passes_entry.set_range(1, 999) - self.passes_entry.setObjectName("i_passes") - - grid0.addWidget(passlabel, 8, 0) - grid0.addWidget(self.passes_entry, 8, 1, 1, 2) - - # Overlap Entry - overlabel = QtWidgets.QLabel('%s:' % _('Overlap')) - overlabel.setToolTip( - _("How much (percentage) of the tool width to overlap each tool pass.") - ) - self.overlap_entry = FCDoubleSpinner(suffix='%') - self.overlap_entry.set_precision(self.decimals) - self.overlap_entry.setWrapping(True) - self.overlap_entry.set_range(0.0000, 99.9999) - self.overlap_entry.setSingleStep(0.1) - self.overlap_entry.setObjectName("i_overlap") - - grid0.addWidget(overlabel, 9, 0) - grid0.addWidget(self.overlap_entry, 9, 1, 1, 2) - - # Milling Type Radio Button - self.milling_type_label = QtWidgets.QLabel('%s:' % _('Milling Type')) - self.milling_type_label.setToolTip( - _("Milling type when the selected tool is of type: 'iso_op':\n" - "- climb / best for precision milling and to reduce tool usage\n" - "- conventional / useful when there is no backlash compensation") - ) - - self.milling_type_radio = RadioSet([{'label': _('Climb'), 'value': 'cl'}, - {'label': _('Conventional'), 'value': 'cv'}]) - self.milling_type_radio.setToolTip( - _("Milling type when the selected tool is of type: 'iso_op':\n" - "- climb / best for precision milling and to reduce tool usage\n" - "- conventional / useful when there is no backlash compensation") - ) - - grid0.addWidget(self.milling_type_label, 10, 0) - grid0.addWidget(self.milling_type_radio, 10, 1, 1, 2) - - # Follow - self.follow_label = QtWidgets.QLabel('%s:' % _('Follow')) - self.follow_label.setToolTip( - _("Generate a 'Follow' geometry.\n" - "This means that it will cut through\n" - "the middle of the trace.") - ) - - self.follow_cb = FCCheckBox() - self.follow_cb.setToolTip(_("Generate a 'Follow' geometry.\n" - "This means that it will cut through\n" - "the middle of the trace.")) - self.follow_cb.setObjectName("i_follow") - - grid0.addWidget(self.follow_label, 11, 0) - grid0.addWidget(self.follow_cb, 11, 1, 1, 2) - - # Isolation Type - self.iso_type_label = QtWidgets.QLabel('%s:' % _('Isolation Type')) - self.iso_type_label.setToolTip( - _("Choose how the isolation will be executed:\n" - "- 'Full' -> complete isolation of polygons\n" - "- 'Ext' -> will isolate only on the outside\n" - "- 'Int' -> will isolate only on the inside\n" - "'Exterior' isolation is almost always possible\n" - "(with the right tool) but 'Interior'\n" - "isolation can be done only when there is an opening\n" - "inside of the polygon (e.g polygon is a 'doughnut' shape).") - ) - self.iso_type_radio = RadioSet([{'label': _('Full'), 'value': 'full'}, - {'label': _('Ext'), 'value': 'ext'}, - {'label': _('Int'), 'value': 'int'}]) - self.iso_type_radio.setObjectName("i_type") - - grid0.addWidget(self.iso_type_label, 12, 0) - grid0.addWidget(self.iso_type_radio, 12, 1, 1, 2) - - separator_line = QtWidgets.QFrame() - separator_line.setFrameShape(QtWidgets.QFrame.HLine) - separator_line.setFrameShadow(QtWidgets.QFrame.Sunken) - grid0.addWidget(separator_line, 13, 0, 1, 3) - - # Rest machining CheckBox - self.rest_cb = FCCheckBox('%s' % _("Rest")) - self.rest_cb.setObjectName("i_rest_machining") - self.rest_cb.setToolTip( - _("If checked, use 'rest machining'.\n" - "Basically it will isolate outside PCB features,\n" - "using the biggest tool and continue with the next tools,\n" - "from bigger to smaller, to isolate the copper features that\n" - "could not be cleared by previous tool, until there is\n" - "no more copper features to isolate or there are no more tools.\n" - "If not checked, use the standard algorithm.") - ) - - grid0.addWidget(self.rest_cb, 17, 0) - - # Combine All Passes - self.combine_passes_cb = FCCheckBox(label=_('Combine')) - self.combine_passes_cb.setToolTip( - _("Combine all passes into one object") - ) - self.combine_passes_cb.setObjectName("i_combine") - - grid0.addWidget(self.combine_passes_cb, 17, 1) - - # Exception Areas - self.except_cb = FCCheckBox(label=_('Except')) - self.except_cb.setToolTip(_("When the isolation geometry is generated,\n" - "by checking this, the area of the object below\n" - "will be subtracted from the isolation geometry.")) - self.except_cb.setObjectName("i_except") - grid0.addWidget(self.except_cb, 17, 2) - - # Isolation Scope - self.select_label = QtWidgets.QLabel('%s:' % _("Selection")) - self.select_label.setToolTip( - _("Isolation scope. Choose what to isolate:\n" - "- 'All' -> Isolate all the polygons in the object\n" - "- 'Area Selection' -> Isolate polygons within a selection area.\n" - "- 'Polygon Selection' -> Isolate a selection of polygons.\n" - "- 'Reference Object' - will process the area specified by another object.") - ) - self.select_combo = FCComboBox() - self.select_combo.addItems( - [_("All"), _("Area Selection"), _("Polygon Selection"), _("Reference Object")] - ) - self.select_combo.setObjectName("i_selection") - - grid0.addWidget(self.select_label, 20, 0) - grid0.addWidget(self.select_combo, 20, 1, 1, 2) - - # Area Shape - self.area_shape_label = QtWidgets.QLabel('%s:' % _("Shape")) - self.area_shape_label.setToolTip( - _("The kind of selection shape used for area selection.") - ) - - self.area_shape_radio = RadioSet([{'label': _("Square"), 'value': 'square'}, - {'label': _("Polygon"), 'value': 'polygon'}]) - - grid0.addWidget(self.area_shape_label, 21, 0) - grid0.addWidget(self.area_shape_radio, 21, 1, 1, 2) - - separator_line = QtWidgets.QFrame() - separator_line.setFrameShape(QtWidgets.QFrame.HLine) - separator_line.setFrameShadow(QtWidgets.QFrame.Sunken) - grid0.addWidget(separator_line, 22, 0, 1, 3) - - # ## Plotting type - self.plotting_radio = RadioSet([{'label': _('Normal'), 'value': 'normal'}, - {"label": _("Progressive"), "value": "progressive"}]) - plotting_label = QtWidgets.QLabel('%s:' % _("Plotting")) - plotting_label.setToolTip( - _("- 'Normal' - normal plotting, done at the end of the job\n" - "- 'Progressive' - each shape is plotted after it is generated") - ) - grid0.addWidget(plotting_label, 23, 0) - grid0.addWidget(self.plotting_radio, 23, 1, 1, 2) - - self.layout.addStretch() diff --git a/AppObjects/AppObject.py b/AppObjects/AppObject.py deleted file mode 100644 index 05fcbfa0..00000000 --- a/AppObjects/AppObject.py +++ /dev/null @@ -1,394 +0,0 @@ -# ########################################################### -# FlatCAM: 2D Post-processing for Manufacturing # -# http://flatcam.org # -# Author: Juan Pablo Caram (c) # -# Date: 2/5/2014 # -# MIT Licence # -# Modified by Marius Stanciu (2020) # -# ########################################################### - -from PyQt5 import QtCore -from AppObjects.ObjectCollection import * -from AppObjects.FlatCAMCNCJob import CNCJobObject -from AppObjects.FlatCAMDocument import DocumentObject -from AppObjects.FlatCAMExcellon import ExcellonObject -from AppObjects.FlatCAMGeometry import GeometryObject -from AppObjects.FlatCAMGerber import GerberObject -from AppObjects.FlatCAMScript import ScriptObject - -import time -import traceback - -# FlatCAM Translation -import gettext -import AppTranslation as fcTranslate -import builtins - -fcTranslate.apply_language('strings') -if '_' not in builtins.__dict__: - _ = gettext.gettext - - -class AppObject(QtCore.QObject): - - # Emitted by app_obj.new_object() and passes the new object as argument, plot flag. - # on_object_created() adds the object to the collection, plots on appropriate flag - # and emits app_obj.new_object_available. - object_created = QtCore.pyqtSignal(object, bool, bool) - - # Emitted when a object has been changed (like scaled, mirrored) - object_changed = QtCore.pyqtSignal(object) - - # Emitted after object has been plotted. - # Calls 'on_zoom_fit' method to fit object in scene view in main thread to prevent drawing glitches. - object_plotted = QtCore.pyqtSignal(object) - - plots_updated = QtCore.pyqtSignal() - - def __init__(self, app): - super(AppObject, self).__init__() - self.app = app - self.inform = app.inform - - # signals that are emitted when object state changes - self.object_created.connect(self.on_object_created) - self.object_changed.connect(self.on_object_changed) - self.object_plotted.connect(self.on_object_plotted) - self.plots_updated.connect(self.app.on_plots_updated) - - def new_object(self, kind, name, initialize, plot=True, autoselected=True): - """ - Creates a new specialized FlatCAMObj and attaches it to the application, - this is, updates the GUI accordingly, any other records and plots it. - This method is thread-safe. - - Notes: - * If the name is in use, the self.collection will modify it - when appending it to the collection. There is no need to handle - name conflicts here. - - :param kind: The kind of object to create. One of 'gerber', 'excellon', 'cncjob' and 'geometry'. - :type kind: str - :param name: Name for the object. - :type name: str - :param initialize: Function to run after creation of the object but before it is attached to the application. - The function is called with 2 parameters: the new object and the App instance. - :type initialize: function - :param plot: If to plot the resulting object - :param autoselected: if the resulting object is autoselected in the Project tab and therefore in the - self.collection - :return: None - :rtype: None - """ - - log.debug("AppObject.new_object()") - obj_plot = plot - obj_autoselected = autoselected - - t0 = time.time() # Debug - - # ## Create object - classdict = { - "gerber": GerberObject, - "excellon": ExcellonObject, - "cncjob": CNCJobObject, - "geometry": GeometryObject, - "script": ScriptObject, - "document": DocumentObject - } - - log.debug("Calling object constructor...") - - # Object creation/instantiation - obj = classdict[kind](name) - - obj.units = self.app.options["units"] - - # IMPORTANT - # The key names in defaults and options dictionary's are not random: - # they have to have in name first the type of the object (geometry, excellon, cncjob and gerber) or how it's - # called here, the 'kind' followed by an underline. Above the App default values from self.defaults are - # copied to self.options. After that, below, depending on the type of - # object that is created, it will strip the name of the object and the underline (if the original key was - # let's say "excellon_toolchange", it will strip the excellon_) and to the obj.options the key will become - # "toolchange" - - for option in self.app.options: - if option.find(kind + "_") == 0: - oname = option[len(kind) + 1:] - obj.options[oname] = self.app.options[option] - - obj.isHovering = False - obj.notHovering = True - - # Initialize as per user request - # User must take care to implement initialize - # in a thread-safe way as is is likely that we - # have been invoked in a separate thread. - t1 = time.time() - log.debug("%f seconds before initialize()." % (t1 - t0)) - try: - return_value = initialize(obj, self.app) - except Exception as e: - msg = '[ERROR_NOTCL] %s' % _("An internal error has occurred. See shell.\n") - msg += _("Object ({kind}) failed because: {error} \n\n").format(kind=kind, error=str(e)) - msg += traceback.format_exc() - self.app.inform.emit(msg) - return "fail" - - t2 = time.time() - log.debug("%f seconds executing initialize()." % (t2 - t1)) - - if return_value == 'fail': - log.debug("Object (%s) parsing and/or geometry creation failed." % kind) - return "fail" - - # Check units and convert if necessary - # This condition CAN be true because initialize() can change obj.units - if self.app.options["units"].upper() != obj.units.upper(): - self.app.inform.emit('%s: %s' % (_("Converting units to "), self.app.options["units"])) - obj.convert_units(self.app.options["units"]) - t3 = time.time() - log.debug("%f seconds converting units." % (t3 - t2)) - - # Create the bounding box for the object and then add the results to the obj.options - # But not for Scripts or for Documents - if kind != 'document' and kind != 'script': - try: - xmin, ymin, xmax, ymax = obj.bounds() - obj.options['xmin'] = xmin - obj.options['ymin'] = ymin - obj.options['xmax'] = xmax - obj.options['ymax'] = ymax - except Exception as e: - log.warning("AppObject.new_object() -> The object has no bounds properties. %s" % str(e)) - return "fail" - - try: - if kind == 'excellon': - obj.fill_color = self.app.defaults["excellon_plot_fill"] - obj.outline_color = self.app.defaults["excellon_plot_line"] - - if kind == 'gerber': - obj.fill_color = self.app.defaults["gerber_plot_fill"] - obj.outline_color = self.app.defaults["gerber_plot_line"] - except Exception as e: - log.warning("AppObject.new_object() -> setting colors error. %s" % str(e)) - - # update the KeyWords list with the name of the file - self.app.myKeywords.append(obj.options['name']) - - log.debug("Moving new object back to main thread.") - - # Move the object to the main thread and let the app know that it is available. - obj.moveToThread(self.app.main_thread) - self.object_created.emit(obj, obj_plot, obj_autoselected) - - return obj - - def new_excellon_object(self): - """ - Creates a new, blank Excellon object. - - :return: None - """ - - self.new_object('excellon', 'new_exc', lambda x, y: None, plot=False) - - def new_geometry_object(self): - """ - Creates a new, blank and single-tool Geometry object. - - :return: None - """ - - def initialize(obj, app): - obj.multitool = False - - self.new_object('geometry', 'new_geo', initialize, plot=False) - - def new_gerber_object(self): - """ - Creates a new, blank Gerber object. - - :return: None - """ - - def initialize(grb_obj, app): - grb_obj.multitool = False - grb_obj.source_file = [] - grb_obj.multigeo = False - grb_obj.follow = False - grb_obj.apertures = {} - grb_obj.solid_geometry = [] - - try: - grb_obj.options['xmin'] = 0 - grb_obj.options['ymin'] = 0 - grb_obj.options['xmax'] = 0 - grb_obj.options['ymax'] = 0 - except KeyError: - pass - - self.new_object('gerber', 'new_grb', initialize, plot=False) - - def new_script_object(self): - """ - Creates a new, blank TCL Script object. - - :return: None - """ - - # commands_list = "# AddCircle, AddPolygon, AddPolyline, AddRectangle, AlignDrill, " \ - # "AlignDrillGrid, Bbox, Bounds, ClearShell, CopperClear,\n" \ - # "# Cncjob, Cutout, Delete, Drillcncjob, ExportDXF, ExportExcellon, ExportGcode,\n" \ - # "# ExportGerber, ExportSVG, Exteriors, Follow, GeoCutout, GeoUnion, GetNames,\n" \ - # "# GetSys, ImportSvg, Interiors, Isolate, JoinExcellon, JoinGeometry, " \ - # "ListSys, MillDrills,\n" \ - # "# MillSlots, Mirror, New, NewExcellon, NewGeometry, NewGerber, Nregions, " \ - # "Offset, OpenExcellon, OpenGCode, OpenGerber, OpenProject,\n" \ - # "# Options, Paint, Panelize, PlotAl, PlotObjects, SaveProject, " \ - # "SaveSys, Scale, SetActive, SetSys, SetOrigin, Skew, SubtractPoly,\n" \ - # "# SubtractRectangle, Version, WriteGCode\n" - - new_source_file = '# %s\n' % _('CREATE A NEW FLATCAM TCL SCRIPT') + \ - '# %s:\n' % _('TCL Tutorial is here') + \ - '# https://www.tcl.tk/man/tcl8.5/tutorial/tcltutorial.html\n' + '\n\n' + \ - '# %s:\n' % _("FlatCAM commands list") - new_source_file += '# %s\n\n' % _("Type >help< followed by Run Code for a list of FlatCAM Tcl Commands " - "(displayed in Tcl Shell).") - - def initialize(obj, app): - obj.source_file = deepcopy(new_source_file) - - outname = 'new_script' - self.new_object('script', outname, initialize, plot=False) - - def new_document_object(self): - """ - Creates a new, blank Document object. - - :return: None - """ - - def initialize(obj, app): - obj.source_file = "" - - self.new_object('document', 'new_document', initialize, plot=False) - - def on_object_created(self, obj, plot, auto_select): - """ - Event callback for object creation. - It will add the new object to the collection. After that it will plot the object in a threaded way - - :param obj: The newly created FlatCAM object. - :param plot: if the newly create object t obe plotted - :param auto_select: if the newly created object to be autoselected after creation - :return: None - """ - t0 = time.time() # DEBUG - log.debug("on_object_created()") - - # The Collection might change the name if there is a collision - self.app.collection.append(obj) - - # after adding the object to the collection always update the list of objects that are in the collection - self.app.all_objects_list = self.app.collection.get_list() - - # self.app.inform.emit('[selected] %s created & selected: %s' % - # (str(obj.kind).capitalize(), str(obj.options['name']))) - if obj.kind == 'gerber': - self.app.inform.emit('[selected] {kind} {tx}: {name}'.format( - kind=obj.kind.capitalize(), - color='green', - name=str(obj.options['name']), tx=_("created/selected")) - ) - elif obj.kind == 'excellon': - self.app.inform.emit('[selected] {kind} {tx}: {name}'.format( - kind=obj.kind.capitalize(), - color='brown', - name=str(obj.options['name']), tx=_("created/selected")) - ) - elif obj.kind == 'cncjob': - self.app.inform.emit('[selected] {kind} {tx}: {name}'.format( - kind=obj.kind.capitalize(), - color='blue', - name=str(obj.options['name']), tx=_("created/selected")) - ) - elif obj.kind == 'geometry': - self.app.inform.emit('[selected] {kind} {tx}: {name}'.format( - kind=obj.kind.capitalize(), - color='red', - name=str(obj.options['name']), tx=_("created/selected")) - ) - elif obj.kind == 'script': - self.app.inform.emit('[selected] {kind} {tx}: {name}'.format( - kind=obj.kind.capitalize(), - color='orange', - name=str(obj.options['name']), tx=_("created/selected")) - ) - elif obj.kind == 'document': - self.app.inform.emit('[selected] {kind} {tx}: {name}'.format( - kind=obj.kind.capitalize(), - color='darkCyan', - name=str(obj.options['name']), tx=_("created/selected")) - ) - - # update the SHELL auto-completer model with the name of the new object - self.app.shell._edit.set_model_data(self.app.myKeywords) - - if auto_select: - # select the just opened object but deselect the previous ones - self.app.collection.set_all_inactive() - self.app.collection.set_active(obj.options["name"]) - else: - self.app.collection.set_all_inactive() - - # here it is done the object plotting - def task(t_obj): - with self.app.proc_container.new(_("Plotting")): - if t_obj.kind == 'cncjob': - t_obj.plot(kind=self.app.defaults["cncjob_plot_kind"]) - else: - t_obj.plot() - - t1 = time.time() # DEBUG - log.debug("%f seconds adding object and plotting." % (t1 - t0)) - self.object_plotted.emit(t_obj) - - # Send to worker - # self.worker.add_task(worker_task, [self]) - if plot is True: - self.app.worker_task.emit({'fcn': task, 'params': [obj]}) - - def on_object_changed(self, obj): - """ - Called whenever the geometry of the object was changed in some way. - This require the update of it's bounding values so it can be the selected on canvas. - Update the bounding box data from obj.options - - :param obj: the object that was changed - :return: None - """ - - try: - xmin, ymin, xmax, ymax = obj.bounds() - except TypeError: - return - obj.options['xmin'] = xmin - obj.options['ymin'] = ymin - obj.options['xmax'] = xmax - obj.options['ymax'] = ymax - - log.debug("Object changed, updating the bounding box data on self.options") - # delete the old selection shape - self.app.delete_selection_shape() - self.app.should_we_save = True - - def on_object_plotted(self): - """ - Callback called whenever the plotted object needs to be fit into the viewport (canvas) - - :return: None - """ - self.app.on_zoom_fit() diff --git a/AppTools/ToolCorners.py b/AppTools/ToolCorners.py deleted file mode 100644 index 53ea72b0..00000000 --- a/AppTools/ToolCorners.py +++ /dev/null @@ -1,440 +0,0 @@ -# ########################################################## -# FlatCAM: 2D Post-processing for Manufacturing # -# File Author: Marius Adrian Stanciu (c) # -# Date: 5/17/2020 # -# MIT Licence # -# ########################################################## - -from PyQt5 import QtWidgets, QtCore - -from AppTool import AppTool -from AppGUI.GUIElements import FCDoubleSpinner, FCCheckBox, FCComboBox, FCButton - -from shapely.geometry import MultiPolygon, LineString - -from copy import deepcopy -import logging - -import gettext -import AppTranslation as fcTranslate -import builtins - -fcTranslate.apply_language('strings') -if '_' not in builtins.__dict__: - _ = gettext.gettext - -log = logging.getLogger('base') - - -class ToolCorners(AppTool): - - toolName = _("Corner Markers Tool") - - def __init__(self, app): - AppTool.__init__(self, app) - - self.app = app - self.canvas = self.app.plotcanvas - - self.decimals = self.app.decimals - self.units = '' - - # ## Title - title_label = QtWidgets.QLabel("%s" % self.toolName) - title_label.setStyleSheet(""" - QLabel - { - font-size: 16px; - font-weight: bold; - } - """) - self.layout.addWidget(title_label) - self.layout.addWidget(QtWidgets.QLabel('')) - - # Gerber object # - self.object_label = QtWidgets.QLabel('%s:' % _("GERBER")) - self.object_label.setToolTip( - _("The Gerber object to which will be added corner markers.") - ) - self.object_combo = FCComboBox() - self.object_combo.setModel(self.app.collection) - self.object_combo.setRootModelIndex(self.app.collection.index(0, 0, QtCore.QModelIndex())) - self.object_combo.is_last = True - self.object_combo.obj_type = "Gerber" - - self.layout.addWidget(self.object_label) - self.layout.addWidget(self.object_combo) - - separator_line = QtWidgets.QFrame() - separator_line.setFrameShape(QtWidgets.QFrame.HLine) - separator_line.setFrameShadow(QtWidgets.QFrame.Sunken) - self.layout.addWidget(separator_line) - - self.points_label = QtWidgets.QLabel('%s:' % _('Locations')) - self.points_label.setToolTip( - _("Locations where to place corner markers.") - ) - self.layout.addWidget(self.points_label) - - # BOTTOM LEFT - self.bl_cb = FCCheckBox(_("Bottom Left")) - self.layout.addWidget(self.bl_cb) - - # BOTTOM RIGHT - self.br_cb = FCCheckBox(_("Bottom Right")) - self.layout.addWidget(self.br_cb) - - # TOP LEFT - self.tl_cb = FCCheckBox(_("Top Left")) - self.layout.addWidget(self.tl_cb) - - # TOP RIGHT - self.tr_cb = FCCheckBox(_("Top Right")) - self.layout.addWidget(self.tr_cb) - - separator_line = QtWidgets.QFrame() - separator_line.setFrameShape(QtWidgets.QFrame.HLine) - separator_line.setFrameShadow(QtWidgets.QFrame.Sunken) - self.layout.addWidget(separator_line) - - # Toggle ALL - self.toggle_all_cb = FCCheckBox(_("Toggle ALL")) - self.layout.addWidget(self.toggle_all_cb) - - separator_line = QtWidgets.QFrame() - separator_line.setFrameShape(QtWidgets.QFrame.HLine) - separator_line.setFrameShadow(QtWidgets.QFrame.Sunken) - self.layout.addWidget(separator_line) - - # ## Grid Layout - grid_lay = QtWidgets.QGridLayout() - self.layout.addLayout(grid_lay) - grid_lay.setColumnStretch(0, 0) - grid_lay.setColumnStretch(1, 1) - - self.param_label = QtWidgets.QLabel('%s:' % _('Parameters')) - self.param_label.setToolTip( - _("Parameters used for this tool.") - ) - grid_lay.addWidget(self.param_label, 0, 0, 1, 2) - - # Thickness # - self.thick_label = QtWidgets.QLabel('%s:' % _("Thickness")) - self.thick_label.setToolTip( - _("The thickness of the line that makes the corner marker.") - ) - self.thick_entry = FCDoubleSpinner(callback=self.confirmation_message) - self.thick_entry.set_range(0.0000, 9.9999) - self.thick_entry.set_precision(self.decimals) - self.thick_entry.setWrapping(True) - self.thick_entry.setSingleStep(10 ** -self.decimals) - - grid_lay.addWidget(self.thick_label, 1, 0) - grid_lay.addWidget(self.thick_entry, 1, 1) - - # Length # - self.l_label = QtWidgets.QLabel('%s:' % _("Length")) - self.l_label.setToolTip( - _("The length of the line that makes the corner marker.") - ) - self.l_entry = FCDoubleSpinner(callback=self.confirmation_message) - self.l_entry.set_range(-9999.9999, 9999.9999) - self.l_entry.set_precision(self.decimals) - self.l_entry.setSingleStep(10 ** -self.decimals) - - grid_lay.addWidget(self.l_label, 2, 0) - grid_lay.addWidget(self.l_entry, 2, 1) - - # Margin # - self.margin_label = QtWidgets.QLabel('%s:' % _("Margin")) - self.margin_label.setToolTip( - _("Bounding box margin.") - ) - self.margin_entry = FCDoubleSpinner(callback=self.confirmation_message) - self.margin_entry.set_range(-9999.9999, 9999.9999) - self.margin_entry.set_precision(self.decimals) - self.margin_entry.setSingleStep(0.1) - - grid_lay.addWidget(self.margin_label, 3, 0) - grid_lay.addWidget(self.margin_entry, 3, 1) - - separator_line_2 = QtWidgets.QFrame() - separator_line_2.setFrameShape(QtWidgets.QFrame.HLine) - separator_line_2.setFrameShadow(QtWidgets.QFrame.Sunken) - grid_lay.addWidget(separator_line_2, 4, 0, 1, 2) - - # ## Insert Corner Marker - self.add_marker_button = FCButton(_("Add Marker")) - self.add_marker_button.setToolTip( - _("Will add corner markers to the selected Gerber file.") - ) - self.add_marker_button.setStyleSheet(""" - QPushButton - { - font-weight: bold; - } - """) - grid_lay.addWidget(self.add_marker_button, 11, 0, 1, 2) - - self.layout.addStretch() - - # ## Reset Tool - self.reset_button = QtWidgets.QPushButton(_("Reset Tool")) - self.reset_button.setToolTip( - _("Will reset the tool parameters.") - ) - self.reset_button.setStyleSheet(""" - QPushButton - { - font-weight: bold; - } - """) - self.layout.addWidget(self.reset_button) - - # Objects involved in Copper thieving - self.grb_object = None - - # store the flattened geometry here: - self.flat_geometry = [] - - # Tool properties - self.fid_dia = None - - self.grb_steps_per_circle = self.app.defaults["gerber_circle_steps"] - - # SIGNALS - self.add_marker_button.clicked.connect(self.add_markers) - self.toggle_all_cb.toggled.connect(self.on_toggle_all) - - def run(self, toggle=True): - self.app.defaults.report_usage("ToolCorners()") - - 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: - # if tab is populated with the tool but it does not have the focus, focus on it - if not self.app.ui.notebook.currentWidget() is self.app.ui.tool_tab: - # focus on Tool Tab - self.app.ui.notebook.setCurrentWidget(self.app.ui.tool_tab) - else: - self.app.ui.splitter.setSizes([0, 1]) - except AttributeError: - pass - else: - if self.app.ui.splitter.sizes()[0] == 0: - self.app.ui.splitter.setSizes([1, 1]) - - AppTool.run(self) - - self.set_tool_ui() - - self.app.ui.notebook.setTabText(2, _("Corners Tool")) - - def install(self, icon=None, separator=None, **kwargs): - AppTool.install(self, icon, separator, shortcut='Alt+M', **kwargs) - - def set_tool_ui(self): - self.units = self.app.defaults['units'] - self.thick_entry.set_value(self.app.defaults["tools_corners_thickness"]) - self.l_entry.set_value(float(self.app.defaults["tools_corners_length"])) - self.margin_entry.set_value(float(self.app.defaults["tools_corners_margin"])) - self.toggle_all_cb.set_value(False) - - def on_toggle_all(self, val): - self.bl_cb.set_value(val) - self.br_cb.set_value(val) - self.tl_cb.set_value(val) - self.tr_cb.set_value(val) - - def add_markers(self): - self.app.call_source = "corners_tool" - tl_state = self.tl_cb.get_value() - tr_state = self.tr_cb.get_value() - bl_state = self.bl_cb.get_value() - br_state = self.br_cb.get_value() - - # get the Gerber object on which the corner marker will be inserted - selection_index = self.object_combo.currentIndex() - model_index = self.app.collection.index(selection_index, 0, self.object_combo.rootModelIndex()) - - try: - self.grb_object = model_index.internalPointer().obj - except Exception as e: - log.debug("ToolCorners.add_markers() --> %s" % str(e)) - self.app.inform.emit('[WARNING_NOTCL] %s' % _("There is no Gerber object loaded ...")) - return - - xmin, ymin, xmax, ymax = self.grb_object.bounds() - points = {} - if tl_state: - points['tl'] = (xmin, ymax) - if tr_state: - points['tr'] = (xmax, ymax) - if bl_state: - points['bl'] = (xmin, ymin) - if br_state: - points['br'] = (xmax, ymin) - - self.add_corners_geo(points, g_obj=self.grb_object) - - self.grb_object.source_file = self.app.export_gerber(obj_name=self.grb_object.options['name'], - filename=None, - local_use=self.grb_object, use_thread=False) - self.on_exit() - - def add_corners_geo(self, points_storage, g_obj): - """ - Add geometry to the solid_geometry of the copper Gerber object - - :param points_storage: a dictionary holding the points where to add corners - :param g_obj: the Gerber object where to add the geometry - :return: None - """ - - line_thickness = self.thick_entry.get_value() - line_length = self.l_entry.get_value() - margin = self.margin_entry.get_value() - - geo_list = [] - - if not points_storage: - self.app.inform.emit("[ERROR_NOTCL] %s." % _("Please select at least a location")) - return - - for key in points_storage: - if key == 'tl': - pt = points_storage[key] - x = pt[0] - margin - line_thickness / 2.0 - y = pt[1] + margin + line_thickness / 2.0 - line_geo_hor = LineString([ - (x, y), (x + line_length, y) - ]) - line_geo_vert = LineString([ - (x, y), (x, y - line_length) - ]) - geo_list.append(line_geo_hor) - geo_list.append(line_geo_vert) - if key == 'tr': - pt = points_storage[key] - x = pt[0] + margin + line_thickness / 2.0 - y = pt[1] + margin + line_thickness / 2.0 - line_geo_hor = LineString([ - (x, y), (x - line_length, y) - ]) - line_geo_vert = LineString([ - (x, y), (x, y - line_length) - ]) - geo_list.append(line_geo_hor) - geo_list.append(line_geo_vert) - if key == 'bl': - pt = points_storage[key] - x = pt[0] - margin - line_thickness / 2.0 - y = pt[1] - margin - line_thickness / 2.0 - line_geo_hor = LineString([ - (x, y), (x + line_length, y) - ]) - line_geo_vert = LineString([ - (x, y), (x, y + line_length) - ]) - geo_list.append(line_geo_hor) - geo_list.append(line_geo_vert) - if key == 'br': - pt = points_storage[key] - x = pt[0] + margin + line_thickness / 2.0 - y = pt[1] - margin - line_thickness / 2.0 - line_geo_hor = LineString([ - (x, y), (x - line_length, y) - ]) - line_geo_vert = LineString([ - (x, y), (x, y + line_length) - ]) - geo_list.append(line_geo_hor) - geo_list.append(line_geo_vert) - - aperture_found = None - for ap_id, ap_val in g_obj.apertures.items(): - if ap_val['type'] == 'C' and ap_val['size'] == line_thickness: - aperture_found = ap_id - break - - geo_buff_list = [] - if aperture_found: - for geo in geo_list: - geo_buff = geo.buffer(line_thickness / 2.0, resolution=self.grb_steps_per_circle, join_style=2) - geo_buff_list.append(geo_buff) - - dict_el = {} - dict_el['follow'] = geo - dict_el['solid'] = geo_buff - g_obj.apertures[aperture_found]['geometry'].append(deepcopy(dict_el)) - else: - ap_keys = list(g_obj.apertures.keys()) - if ap_keys: - new_apid = str(int(max(ap_keys)) + 1) - else: - new_apid = '10' - - g_obj.apertures[new_apid] = {} - g_obj.apertures[new_apid]['type'] = 'C' - g_obj.apertures[new_apid]['size'] = line_thickness - g_obj.apertures[new_apid]['geometry'] = [] - - for geo in geo_list: - geo_buff = geo.buffer(line_thickness / 2.0, resolution=self.grb_steps_per_circle, join_style=3) - geo_buff_list.append(geo_buff) - - dict_el = {} - dict_el['follow'] = geo - dict_el['solid'] = geo_buff - g_obj.apertures[new_apid]['geometry'].append(deepcopy(dict_el)) - - s_list = [] - if g_obj.solid_geometry: - try: - for poly in g_obj.solid_geometry: - s_list.append(poly) - except TypeError: - s_list.append(g_obj.solid_geometry) - - geo_buff_list = MultiPolygon(geo_buff_list) - geo_buff_list = geo_buff_list.buffer(0) - for poly in geo_buff_list: - s_list.append(poly) - g_obj.solid_geometry = MultiPolygon(s_list) - - def replot(self, obj, run_thread=True): - def worker_task(): - with self.app.proc_container.new('%s...' % _("Plotting")): - obj.plot() - - if run_thread: - self.app.worker_task.emit({'fcn': worker_task, 'params': []}) - else: - worker_task() - - def on_exit(self): - # plot the object - try: - self.replot(obj=self.grb_object) - except (AttributeError, TypeError): - return - - # update the bounding box values - try: - a, b, c, d = self.grb_object.bounds() - self.grb_object.options['xmin'] = a - self.grb_object.options['ymin'] = b - self.grb_object.options['xmax'] = c - self.grb_object.options['ymax'] = d - except Exception as e: - log.debug("ToolCorners.on_exit() copper_obj bounds error --> %s" % str(e)) - - # reset the variables - self.grb_object = None - - self.app.call_source = "app" - self.app.inform.emit('[success] %s' % _("Corners Tool exit.")) diff --git a/AppTools/ToolEtchCompensation.py b/AppTools/ToolEtchCompensation.py deleted file mode 100644 index ac49a539..00000000 --- a/AppTools/ToolEtchCompensation.py +++ /dev/null @@ -1,455 +0,0 @@ -# ########################################################## -# FlatCAM: 2D Post-processing for Manufacturing # -# File Author: Marius Adrian Stanciu (c) # -# Date: 2/14/2020 # -# MIT Licence # -# ########################################################## - -from PyQt5 import QtWidgets, QtCore - -from AppTool import AppTool -from AppGUI.GUIElements import FCButton, FCDoubleSpinner, RadioSet, FCComboBox, NumericalEvalEntry, FCEntry - -from shapely.ops import unary_union - -from copy import deepcopy -import math - -import logging -import gettext -import AppTranslation as fcTranslate -import builtins - -fcTranslate.apply_language('strings') -if '_' not in builtins.__dict__: - _ = gettext.gettext - -log = logging.getLogger('base') - - -class ToolEtchCompensation(AppTool): - - toolName = _("Etch Compensation Tool") - - def __init__(self, app): - self.app = app - self.decimals = self.app.decimals - - AppTool.__init__(self, app) - - self.tools_frame = QtWidgets.QFrame() - self.tools_frame.setContentsMargins(0, 0, 0, 0) - self.layout.addWidget(self.tools_frame) - self.tools_box = QtWidgets.QVBoxLayout() - self.tools_box.setContentsMargins(0, 0, 0, 0) - self.tools_frame.setLayout(self.tools_box) - - # Title - title_label = QtWidgets.QLabel("%s" % self.toolName) - title_label.setStyleSheet(""" - QLabel - { - font-size: 16px; - font-weight: bold; - } - """) - self.tools_box.addWidget(title_label) - - # Grid Layout - grid0 = QtWidgets.QGridLayout() - grid0.setColumnStretch(0, 0) - grid0.setColumnStretch(1, 1) - self.tools_box.addLayout(grid0) - - grid0.addWidget(QtWidgets.QLabel(''), 0, 0, 1, 2) - - # Target Gerber Object - self.gerber_combo = FCComboBox() - self.gerber_combo.setModel(self.app.collection) - self.gerber_combo.setRootModelIndex(self.app.collection.index(0, 0, QtCore.QModelIndex())) - self.gerber_combo.is_last = True - self.gerber_combo.obj_type = "Gerber" - - self.gerber_label = QtWidgets.QLabel('%s:' % _("GERBER")) - self.gerber_label.setToolTip( - _("Gerber object that will be inverted.") - ) - - grid0.addWidget(self.gerber_label, 1, 0, 1, 2) - grid0.addWidget(self.gerber_combo, 2, 0, 1, 2) - - separator_line = QtWidgets.QFrame() - separator_line.setFrameShape(QtWidgets.QFrame.HLine) - separator_line.setFrameShadow(QtWidgets.QFrame.Sunken) - grid0.addWidget(separator_line, 3, 0, 1, 2) - - self.util_label = QtWidgets.QLabel("%s:" % _("Utilities")) - self.util_label.setToolTip('%s.' % _("Conversion utilities")) - - grid0.addWidget(self.util_label, 4, 0, 1, 2) - - # Oz to um conversion - self.oz_um_label = QtWidgets.QLabel('%s:' % _('Oz to Microns')) - self.oz_um_label.setToolTip( - _("Will convert from oz thickness to microns [um].\n" - "Can use formulas with operators: /, *, +, -, %, .\n" - "The real numbers use the dot decimals separator.") - ) - grid0.addWidget(self.oz_um_label, 5, 0, 1, 2) - - hlay_1 = QtWidgets.QHBoxLayout() - - self.oz_entry = NumericalEvalEntry(border_color='#0069A9') - self.oz_entry.setPlaceholderText(_("Oz value")) - self.oz_to_um_entry = FCEntry() - self.oz_to_um_entry.setPlaceholderText(_("Microns value")) - self.oz_to_um_entry.setReadOnly(True) - - hlay_1.addWidget(self.oz_entry) - hlay_1.addWidget(self.oz_to_um_entry) - grid0.addLayout(hlay_1, 6, 0, 1, 2) - - # Mils to um conversion - self.mils_um_label = QtWidgets.QLabel('%s:' % _('Mils to Microns')) - self.mils_um_label.setToolTip( - _("Will convert from mils to microns [um].\n" - "Can use formulas with operators: /, *, +, -, %, .\n" - "The real numbers use the dot decimals separator.") - ) - grid0.addWidget(self.mils_um_label, 7, 0, 1, 2) - - hlay_2 = QtWidgets.QHBoxLayout() - - self.mils_entry = NumericalEvalEntry(border_color='#0069A9') - self.mils_entry.setPlaceholderText(_("Mils value")) - self.mils_to_um_entry = FCEntry() - self.mils_to_um_entry.setPlaceholderText(_("Microns value")) - self.mils_to_um_entry.setReadOnly(True) - - hlay_2.addWidget(self.mils_entry) - hlay_2.addWidget(self.mils_to_um_entry) - grid0.addLayout(hlay_2, 8, 0, 1, 2) - - separator_line = QtWidgets.QFrame() - separator_line.setFrameShape(QtWidgets.QFrame.HLine) - separator_line.setFrameShadow(QtWidgets.QFrame.Sunken) - grid0.addWidget(separator_line, 9, 0, 1, 2) - - self.param_label = QtWidgets.QLabel("%s:" % _("Parameters")) - self.param_label.setToolTip('%s.' % _("Parameters for this tool")) - - grid0.addWidget(self.param_label, 10, 0, 1, 2) - - # Thickness - self.thick_label = QtWidgets.QLabel('%s:' % _('Copper Thickness')) - self.thick_label.setToolTip( - _("The thickness of the copper foil.\n" - "In microns [um].") - ) - self.thick_entry = FCDoubleSpinner(callback=self.confirmation_message) - self.thick_entry.set_precision(self.decimals) - self.thick_entry.set_range(0.0000, 9999.9999) - self.thick_entry.setObjectName(_("Thickness")) - - grid0.addWidget(self.thick_label, 12, 0) - grid0.addWidget(self.thick_entry, 12, 1) - - self.ratio_label = QtWidgets.QLabel('%s:' % _("Ratio")) - self.ratio_label.setToolTip( - _("The ratio of lateral etch versus depth etch.\n" - "Can be:\n" - "- custom -> the user will enter a custom value\n" - "- preselection -> value which depends on a selection of etchants") - ) - self.ratio_radio = RadioSet([ - {'label': _('Etch Factor'), 'value': 'factor'}, - {'label': _('Etchants list'), 'value': 'etch_list'}, - {'label': _('Manual offset'), 'value': 'manual'} - ], orientation='vertical', stretch=False) - - grid0.addWidget(self.ratio_label, 14, 0, 1, 2) - grid0.addWidget(self.ratio_radio, 16, 0, 1, 2) - - # Etchants - self.etchants_label = QtWidgets.QLabel('%s:' % _('Etchants')) - self.etchants_label.setToolTip( - _("A list of etchants.") - ) - self.etchants_combo = FCComboBox(callback=self.confirmation_message) - self.etchants_combo.setObjectName(_("Etchants")) - self.etchants_combo.addItems(["CuCl2", "Fe3Cl", _("Alkaline baths")]) - - grid0.addWidget(self.etchants_label, 18, 0) - grid0.addWidget(self.etchants_combo, 18, 1) - - # Etch Factor - self.factor_label = QtWidgets.QLabel('%s:' % _('Etch factor')) - self.factor_label.setToolTip( - _("The ratio between depth etch and lateral etch .\n" - "Accepts real numbers and formulas using the operators: /,*,+,-,%") - ) - self.factor_entry = NumericalEvalEntry(border_color='#0069A9') - self.factor_entry.setPlaceholderText(_("Real number or formula")) - self.factor_entry.setObjectName(_("Etch_factor")) - - grid0.addWidget(self.factor_label, 19, 0) - grid0.addWidget(self.factor_entry, 19, 1) - - # Manual Offset - self.offset_label = QtWidgets.QLabel('%s:' % _('Offset')) - self.offset_label.setToolTip( - _("Value with which to increase or decrease (buffer)\n" - "the copper features. In microns [um].") - ) - self.offset_entry = FCDoubleSpinner(callback=self.confirmation_message) - self.offset_entry.set_precision(self.decimals) - self.offset_entry.set_range(-9999.9999, 9999.9999) - self.offset_entry.setObjectName(_("Offset")) - - grid0.addWidget(self.offset_label, 20, 0) - grid0.addWidget(self.offset_entry, 20, 1) - - # Hide the Etchants and Etch factor - self.etchants_label.hide() - self.etchants_combo.hide() - self.factor_label.hide() - self.factor_entry.hide() - self.offset_label.hide() - self.offset_entry.hide() - - separator_line = QtWidgets.QFrame() - separator_line.setFrameShape(QtWidgets.QFrame.HLine) - separator_line.setFrameShadow(QtWidgets.QFrame.Sunken) - grid0.addWidget(separator_line, 22, 0, 1, 2) - - self.compensate_btn = FCButton(_('Compensate')) - self.compensate_btn.setToolTip( - _("Will increase the copper features thickness to compensate the lateral etch.") - ) - self.compensate_btn.setStyleSheet(""" - QPushButton - { - font-weight: bold; - } - """) - grid0.addWidget(self.compensate_btn, 24, 0, 1, 2) - - self.tools_box.addStretch() - - # ## Reset Tool - self.reset_button = QtWidgets.QPushButton(_("Reset Tool")) - self.reset_button.setToolTip( - _("Will reset the tool parameters.") - ) - self.reset_button.setStyleSheet(""" - QPushButton - { - font-weight: bold; - } - """) - self.tools_box.addWidget(self.reset_button) - - self.compensate_btn.clicked.connect(self.on_compensate) - self.reset_button.clicked.connect(self.set_tool_ui) - self.ratio_radio.activated_custom.connect(self.on_ratio_change) - - self.oz_entry.textChanged.connect(self.on_oz_conversion) - self.mils_entry.textChanged.connect(self.on_mils_conversion) - - def install(self, icon=None, separator=None, **kwargs): - AppTool.install(self, icon, separator, shortcut='', **kwargs) - - def run(self, toggle=True): - self.app.defaults.report_usage("ToolEtchCompensation()") - log.debug("ToolEtchCompensation() is running ...") - - 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: - # if tab is populated with the tool but it does not have the focus, focus on it - if not self.app.ui.notebook.currentWidget() is self.app.ui.tool_tab: - # focus on Tool Tab - self.app.ui.notebook.setCurrentWidget(self.app.ui.tool_tab) - else: - self.app.ui.splitter.setSizes([0, 1]) - except AttributeError: - pass - else: - if self.app.ui.splitter.sizes()[0] == 0: - self.app.ui.splitter.setSizes([1, 1]) - - AppTool.run(self) - self.set_tool_ui() - - self.app.ui.notebook.setTabText(2, _("Etch Compensation Tool")) - - def set_tool_ui(self): - self.thick_entry.set_value(18.0) - self.ratio_radio.set_value('factor') - - def on_ratio_change(self, val): - """ - Called on activated_custom signal of the RadioSet GUI element self.radio_ratio - - :param val: 'c' or 'p': 'c' means custom factor and 'p' means preselected etchants - :type val: str - :return: None - :rtype: - """ - if val == 'factor': - self.etchants_label.hide() - self.etchants_combo.hide() - self.factor_label.show() - self.factor_entry.show() - self.offset_label.hide() - self.offset_entry.hide() - elif val == 'etch_list': - self.etchants_label.show() - self.etchants_combo.show() - self.factor_label.hide() - self.factor_entry.hide() - self.offset_label.hide() - self.offset_entry.hide() - else: - self.etchants_label.hide() - self.etchants_combo.hide() - self.factor_label.hide() - self.factor_entry.hide() - self.offset_label.show() - self.offset_entry.show() - - def on_oz_conversion(self, txt): - try: - val = eval(txt) - # oz thickness to mils by multiplying with 1.37 - # mils to microns by multiplying with 25.4 - val *= 34.798 - except Exception: - self.oz_to_um_entry.set_value('') - return - self.oz_to_um_entry.set_value(val, self.decimals) - - def on_mils_conversion(self, txt): - try: - val = eval(txt) - val *= 25.4 - except Exception: - self.mils_to_um_entry.set_value('') - return - self.mils_to_um_entry.set_value(val, self.decimals) - - def on_compensate(self): - log.debug("ToolEtchCompensation.on_compensate()") - - ratio_type = self.ratio_radio.get_value() - thickness = self.thick_entry.get_value() / 1000 # in microns - - grb_circle_steps = int(self.app.defaults["gerber_circle_steps"]) - obj_name = self.gerber_combo.currentText() - - outname = obj_name + "_comp" - - # Get source object. - try: - grb_obj = self.app.collection.get_by_name(obj_name) - except Exception as e: - self.app.inform.emit('[ERROR_NOTCL] %s: %s' % (_("Could not retrieve object"), str(obj_name))) - return "Could not retrieve object: %s with error: %s" % (obj_name, str(e)) - - if grb_obj is None: - if obj_name == '': - obj_name = 'None' - self.app.inform.emit('[ERROR_NOTCL] %s: %s' % (_("Object not found"), str(obj_name))) - return - - if ratio_type == 'factor': - etch_factor = 1 / self.factor_entry.get_value() - offset = thickness / etch_factor - elif ratio_type == 'etch_list': - etchant = self.etchants_combo.get_value() - if etchant == "CuCl2": - etch_factor = 0.33 - else: - etch_factor = 0.25 - offset = thickness / etch_factor - else: - offset = self.offset_entry.get_value() / 1000 # in microns - - try: - __ = iter(grb_obj.solid_geometry) - except TypeError: - grb_obj.solid_geometry = list(grb_obj.solid_geometry) - - new_solid_geometry = [] - - for poly in grb_obj.solid_geometry: - new_solid_geometry.append(poly.buffer(offset, int(grb_circle_steps))) - new_solid_geometry = unary_union(new_solid_geometry) - - new_options = {} - for opt in grb_obj.options: - new_options[opt] = deepcopy(grb_obj.options[opt]) - - new_apertures = deepcopy(grb_obj.apertures) - - # update the apertures attributes (keys in the apertures dict) - for ap in new_apertures: - type = new_apertures[ap]['type'] - for k in new_apertures[ap]: - if type == 'R' or type == 'O': - if k == 'width' or k == 'height': - new_apertures[ap][k] += offset - else: - if k == 'size' or k == 'width' or k == 'height': - new_apertures[ap][k] += offset - - if k == 'geometry': - for geo_el in new_apertures[ap][k]: - if 'solid' in geo_el: - geo_el['solid'] = geo_el['solid'].buffer(offset, int(grb_circle_steps)) - - # in case of 'R' or 'O' aperture type we need to update the aperture 'size' after - # the 'width' and 'height' keys were updated - for ap in new_apertures: - type = new_apertures[ap]['type'] - for k in new_apertures[ap]: - if type == 'R' or type == 'O': - if k == 'size': - new_apertures[ap][k] = math.sqrt( - new_apertures[ap]['width'] ** 2 + new_apertures[ap]['height'] ** 2) - - def init_func(new_obj, app_obj): - """ - Init a new object in FlatCAM Object collection - - :param new_obj: New object - :type new_obj: ObjectCollection - :param app_obj: App - :type app_obj: App_Main.App - :return: None - :rtype: - """ - new_obj.options.update(new_options) - new_obj.options['name'] = outname - new_obj.fill_color = deepcopy(grb_obj.fill_color) - new_obj.outline_color = deepcopy(grb_obj.outline_color) - - new_obj.apertures = deepcopy(new_apertures) - - new_obj.solid_geometry = deepcopy(new_solid_geometry) - new_obj.source_file = self.app.export_gerber(obj_name=outname, filename=None, - local_use=new_obj, use_thread=False) - - self.app.app_obj.new_object('gerber', outname, init_func) - - def reset_fields(self): - self.gerber_combo.setRootModelIndex(self.app.collection.index(0, 0, QtCore.QModelIndex())) - - @staticmethod - def poly2rings(poly): - return [poly.exterior] + [interior for interior in poly.interiors] -# end of file diff --git a/AppTools/ToolIsolation.py b/AppTools/ToolIsolation.py deleted file mode 100644 index 34938fd7..00000000 --- a/AppTools/ToolIsolation.py +++ /dev/null @@ -1,3018 +0,0 @@ -# ########################################################## -# FlatCAM: 2D Post-processing for Manufacturing # -# File by: Marius Adrian Stanciu (c) # -# Date: 5/25/2020 # -# License: MIT Licence # -# ########################################################## - -from PyQt5 import QtWidgets, QtCore, QtGui - -from AppTool import AppTool -from AppGUI.GUIElements import FCCheckBox, FCDoubleSpinner, RadioSet, FCTable, FCInputDialog, FCButton, \ - FCComboBox, OptionalInputSection, FCSpinner -from AppParsers.ParseGerber import Gerber - -from copy import deepcopy - -import numpy as np -import math - -from shapely.ops import cascaded_union -from shapely.geometry import MultiPolygon, Polygon, MultiLineString, LineString, LinearRing - -from matplotlib.backend_bases import KeyEvent as mpl_key_event - -import logging -import gettext -import AppTranslation as fcTranslate -import builtins - -fcTranslate.apply_language('strings') -if '_' not in builtins.__dict__: - _ = gettext.gettext - -log = logging.getLogger('base') - - -class ToolIsolation(AppTool, Gerber): - toolName = _("Isolation Tool") - - def __init__(self, app): - self.app = app - self.decimals = self.app.decimals - - AppTool.__init__(self, app) - Gerber.__init__(self, steps_per_circle=self.app.defaults["gerber_circle_steps"]) - - self.tools_frame = QtWidgets.QFrame() - self.tools_frame.setContentsMargins(0, 0, 0, 0) - self.layout.addWidget(self.tools_frame) - self.tools_box = QtWidgets.QVBoxLayout() - self.tools_box.setContentsMargins(0, 0, 0, 0) - self.tools_frame.setLayout(self.tools_box) - - self.title_box = QtWidgets.QHBoxLayout() - self.tools_box.addLayout(self.title_box) - - # ## Title - title_label = QtWidgets.QLabel("%s" % self.toolName) - title_label.setStyleSheet(""" - QLabel - { - font-size: 16px; - font-weight: bold; - } - """) - title_label.setToolTip( - _("Create a Geometry object with\n" - "toolpaths to cut around polygons.") - ) - - self.title_box.addWidget(title_label) - - # App Level label - self.level = QtWidgets.QLabel("") - self.level.setToolTip( - _( - "BASIC is suitable for a beginner. Many parameters\n" - "are hidden from the user in this mode.\n" - "ADVANCED mode will make available all parameters.\n\n" - "To change the application LEVEL, go to:\n" - "Edit -> Preferences -> General and check:\n" - "'APP. LEVEL' radio button." - ) - ) - self.level.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignVCenter) - self.title_box.addWidget(self.level) - - # Grid Layout - grid0 = QtWidgets.QGridLayout() - grid0.setColumnStretch(0, 0) - grid0.setColumnStretch(1, 1) - self.tools_box.addLayout(grid0) - - self.obj_combo_label = QtWidgets.QLabel('%s:' % _("GERBER")) - self.obj_combo_label.setToolTip( - _("Gerber object for isolation routing.") - ) - - grid0.addWidget(self.obj_combo_label, 0, 0, 1, 2) - - # ################################################ - # ##### The object to be copper cleaned ########## - # ################################################ - self.object_combo = FCComboBox() - self.object_combo.setModel(self.app.collection) - self.object_combo.setRootModelIndex(self.app.collection.index(0, 0, QtCore.QModelIndex())) - # self.object_combo.setCurrentIndex(1) - self.object_combo.is_last = True - - grid0.addWidget(self.object_combo, 1, 0, 1, 2) - - separator_line = QtWidgets.QFrame() - separator_line.setFrameShape(QtWidgets.QFrame.HLine) - separator_line.setFrameShadow(QtWidgets.QFrame.Sunken) - grid0.addWidget(separator_line, 2, 0, 1, 2) - - # ### Tools ## ## - self.tools_table_label = QtWidgets.QLabel('%s' % _('Tools Table')) - self.tools_table_label.setToolTip( - _("Tools pool from which the algorithm\n" - "will pick the ones used for copper clearing.") - ) - grid0.addWidget(self.tools_table_label, 3, 0, 1, 2) - - self.tools_table = FCTable() - grid0.addWidget(self.tools_table, 4, 0, 1, 2) - - self.tools_table.setColumnCount(4) - # 3rd column is reserved (and hidden) for the tool ID - self.tools_table.setHorizontalHeaderLabels(['#', _('Diameter'), _('TT'), '']) - self.tools_table.setColumnHidden(3, True) - self.tools_table.setSortingEnabled(False) - # self.tools_table.setSelectionBehavior(QtWidgets.QAbstractItemView.SelectRows) - - self.tools_table.horizontalHeaderItem(0).setToolTip( - _("This is the Tool Number.\n" - "Isolation routing will start with the tool with the biggest \n" - "diameter, continuing until there are no more tools.\n" - "Only tools that create Isolation geometry will still be present\n" - "in the resulting geometry. This is because with some tools\n" - "this function will not be able to create routing geometry.") - ) - self.tools_table.horizontalHeaderItem(1).setToolTip( - _("Tool Diameter. It's value (in current FlatCAM units)\n" - "is the cut width into the material.")) - - self.tools_table.horizontalHeaderItem(2).setToolTip( - _("The Tool Type (TT) can be:\n" - "- Circular with 1 ... 4 teeth -> it is informative only. Being circular,\n" - "the cut width in material is exactly the tool diameter.\n" - "- Ball -> informative only and make reference to the Ball type endmill.\n" - "- V-Shape -> it will disable Z-Cut parameter in the resulting geometry UI form\n" - "and enable two additional UI form fields in the resulting geometry: V-Tip Dia and\n" - "V-Tip Angle. Adjusting those two values will adjust the Z-Cut parameter such\n" - "as the cut width into material will be equal with the value in the Tool Diameter\n" - "column of this table.\n" - "Choosing the 'V-Shape' Tool Type automatically will select the Operation Type\n" - "in the resulting geometry as Isolation.")) - - grid1 = QtWidgets.QGridLayout() - grid1.setColumnStretch(0, 0) - grid1.setColumnStretch(1, 1) - self.tools_box.addLayout(grid1) - - # Tool order - self.order_label = QtWidgets.QLabel('%s:' % _('Tool order')) - self.order_label.setToolTip(_("This set the way that the tools in the tools table are used.\n" - "'No' --> means that the used order is the one in the tool table\n" - "'Forward' --> means that the tools will be ordered from small to big\n" - "'Reverse' --> means that the tools will ordered from big to small\n\n" - "WARNING: using rest machining will automatically set the order\n" - "in reverse and disable this control.")) - - self.order_radio = RadioSet([{'label': _('No'), 'value': 'no'}, - {'label': _('Forward'), 'value': 'fwd'}, - {'label': _('Reverse'), 'value': 'rev'}]) - - grid1.addWidget(self.order_label, 1, 0) - grid1.addWidget(self.order_radio, 1, 1) - - separator_line = QtWidgets.QFrame() - separator_line.setFrameShape(QtWidgets.QFrame.HLine) - separator_line.setFrameShadow(QtWidgets.QFrame.Sunken) - grid1.addWidget(separator_line, 2, 0, 1, 2) - - # ############################################################# - # ############### Tool selection ############################## - # ############################################################# - - self.grid3 = QtWidgets.QGridLayout() - self.grid3.setColumnStretch(0, 0) - self.grid3.setColumnStretch(1, 1) - self.tools_box.addLayout(self.grid3) - - self.tool_sel_label = QtWidgets.QLabel('%s' % _("New Tool")) - self.grid3.addWidget(self.tool_sel_label, 1, 0, 1, 2) - - # Tool Type Radio Button - self.tool_type_label = QtWidgets.QLabel('%s:' % _('Tool Type')) - self.tool_type_label.setToolTip( - _("Default tool type:\n" - "- 'V-shape'\n" - "- Circular") - ) - - self.tool_type_radio = RadioSet([{'label': _('V-shape'), 'value': 'V'}, - {'label': _('Circular'), 'value': 'C1'}]) - self.tool_type_radio.setToolTip( - _("Default tool type:\n" - "- 'V-shape'\n" - "- Circular") - ) - self.tool_type_radio.setObjectName("i_tool_type") - - self.grid3.addWidget(self.tool_type_label, 2, 0) - self.grid3.addWidget(self.tool_type_radio, 2, 1) - - # Tip Dia - self.tipdialabel = QtWidgets.QLabel('%s:' % _('V-Tip Dia')) - self.tipdialabel.setToolTip( - _("The tip diameter for V-Shape Tool")) - self.tipdia_entry = FCDoubleSpinner(callback=self.confirmation_message) - self.tipdia_entry.set_precision(self.decimals) - self.tipdia_entry.set_range(0.0000, 9999.9999) - self.tipdia_entry.setSingleStep(0.1) - self.tipdia_entry.setObjectName("i_vtipdia") - - self.grid3.addWidget(self.tipdialabel, 3, 0) - self.grid3.addWidget(self.tipdia_entry, 3, 1) - - # Tip Angle - self.tipanglelabel = QtWidgets.QLabel('%s:' % _('V-Tip Angle')) - self.tipanglelabel.setToolTip( - _("The tip angle for V-Shape Tool.\n" - "In degree.")) - self.tipangle_entry = FCDoubleSpinner(callback=self.confirmation_message) - self.tipangle_entry.set_precision(self.decimals) - self.tipangle_entry.set_range(0.0000, 180.0000) - self.tipangle_entry.setSingleStep(5) - self.tipangle_entry.setObjectName("i_vtipangle") - - self.grid3.addWidget(self.tipanglelabel, 4, 0) - self.grid3.addWidget(self.tipangle_entry, 4, 1) - - # Cut Z entry - cutzlabel = QtWidgets.QLabel('%s:' % _('Cut Z')) - cutzlabel.setToolTip( - _("Depth of cut into material. Negative value.\n" - "In FlatCAM units.") - ) - self.cutz_entry = FCDoubleSpinner(callback=self.confirmation_message) - self.cutz_entry.set_precision(self.decimals) - self.cutz_entry.set_range(-99999.9999, 0.0000) - self.cutz_entry.setObjectName("i_vcutz") - - self.grid3.addWidget(cutzlabel, 5, 0) - self.grid3.addWidget(self.cutz_entry, 5, 1) - - # ### Tool Diameter #### - self.addtool_entry_lbl = QtWidgets.QLabel('%s:' % _('Tool Dia')) - self.addtool_entry_lbl.setToolTip( - _("Diameter for the new tool to add in the Tool Table.\n" - "If the tool is V-shape type then this value is automatically\n" - "calculated from the other parameters.") - ) - self.addtool_entry = FCDoubleSpinner(callback=self.confirmation_message) - self.addtool_entry.set_precision(self.decimals) - self.addtool_entry.set_range(0.000, 9999.9999) - self.addtool_entry.setObjectName("i_new_tooldia") - - self.grid3.addWidget(self.addtool_entry_lbl, 6, 0) - self.grid3.addWidget(self.addtool_entry, 6, 1) - - bhlay = QtWidgets.QHBoxLayout() - - self.addtool_btn = QtWidgets.QPushButton(_('Add')) - self.addtool_btn.setToolTip( - _("Add a new tool to the Tool Table\n" - "with the diameter specified above.") - ) - - self.addtool_from_db_btn = QtWidgets.QPushButton(_('Add from DB')) - self.addtool_from_db_btn.setToolTip( - _("Add a new tool to the Tool Table\n" - "from the Tool DataBase.") - ) - - bhlay.addWidget(self.addtool_btn) - bhlay.addWidget(self.addtool_from_db_btn) - - self.grid3.addLayout(bhlay, 7, 0, 1, 2) - - separator_line = QtWidgets.QFrame() - separator_line.setFrameShape(QtWidgets.QFrame.HLine) - separator_line.setFrameShadow(QtWidgets.QFrame.Sunken) - self.grid3.addWidget(separator_line, 8, 0, 1, 2) - - self.deltool_btn = QtWidgets.QPushButton(_('Delete')) - self.deltool_btn.setToolTip( - _("Delete a selection of tools in the Tool Table\n" - "by first selecting a row(s) in the Tool Table.") - ) - self.grid3.addWidget(self.deltool_btn, 9, 0, 1, 2) - - # self.grid3.addWidget(QtWidgets.QLabel(''), 10, 0, 1, 2) - - separator_line = QtWidgets.QFrame() - separator_line.setFrameShape(QtWidgets.QFrame.HLine) - separator_line.setFrameShadow(QtWidgets.QFrame.Sunken) - self.grid3.addWidget(separator_line, 11, 0, 1, 2) - - self.tool_data_label = QtWidgets.QLabel( - "%s: %s %d" % (_('Parameters for'), _("Tool"), int(1))) - self.tool_data_label.setToolTip( - _( - "The data used for creating GCode.\n" - "Each tool store it's own set of such data." - ) - ) - self.grid3.addWidget(self.tool_data_label, 12, 0, 1, 2) - - # Passes - passlabel = QtWidgets.QLabel('%s:' % _('Passes')) - passlabel.setToolTip( - _("Width of the isolation gap in\n" - "number (integer) of tool widths.") - ) - self.passes_entry = FCSpinner(callback=self.confirmation_message_int) - self.passes_entry.set_range(1, 999) - self.passes_entry.setObjectName("i_passes") - - self.grid3.addWidget(passlabel, 13, 0) - self.grid3.addWidget(self.passes_entry, 13, 1) - - # Overlap Entry - overlabel = QtWidgets.QLabel('%s:' % _('Overlap')) - overlabel.setToolTip( - _("How much (percentage) of the tool width to overlap each tool pass.") - ) - self.iso_overlap_entry = FCDoubleSpinner(suffix='%', callback=self.confirmation_message) - self.iso_overlap_entry.set_precision(self.decimals) - self.iso_overlap_entry.setWrapping(True) - self.iso_overlap_entry.set_range(0.0000, 99.9999) - self.iso_overlap_entry.setSingleStep(0.1) - self.iso_overlap_entry.setObjectName("i_overlap") - - self.grid3.addWidget(overlabel, 14, 0) - self.grid3.addWidget(self.iso_overlap_entry, 14, 1) - - # Milling Type Radio Button - self.milling_type_label = QtWidgets.QLabel('%s:' % _('Milling Type')) - self.milling_type_label.setToolTip( - _("Milling type when the selected tool is of type: 'iso_op':\n" - "- climb / best for precision milling and to reduce tool usage\n" - "- conventional / useful when there is no backlash compensation") - ) - - self.milling_type_radio = RadioSet([{'label': _('Climb'), 'value': 'cl'}, - {'label': _('Conventional'), 'value': 'cv'}]) - self.milling_type_radio.setToolTip( - _("Milling type when the selected tool is of type: 'iso_op':\n" - "- climb / best for precision milling and to reduce tool usage\n" - "- conventional / useful when there is no backlash compensation") - ) - self.milling_type_radio.setObjectName("i_milling_type") - - self.grid3.addWidget(self.milling_type_label, 15, 0) - self.grid3.addWidget(self.milling_type_radio, 15, 1) - - # Follow - self.follow_label = QtWidgets.QLabel('%s:' % _('Follow')) - self.follow_label.setToolTip( - _("Generate a 'Follow' geometry.\n" - "This means that it will cut through\n" - "the middle of the trace.") - ) - - self.follow_cb = FCCheckBox() - self.follow_cb.setToolTip(_("Generate a 'Follow' geometry.\n" - "This means that it will cut through\n" - "the middle of the trace.")) - self.follow_cb.setObjectName("i_follow") - - self.grid3.addWidget(self.follow_label, 16, 0) - self.grid3.addWidget(self.follow_cb, 16, 1) - - # Isolation Type - self.iso_type_label = QtWidgets.QLabel('%s:' % _('Isolation Type')) - self.iso_type_label.setToolTip( - _("Choose how the isolation will be executed:\n" - "- 'Full' -> complete isolation of polygons\n" - "- 'Ext' -> will isolate only on the outside\n" - "- 'Int' -> will isolate only on the inside\n" - "'Exterior' isolation is almost always possible\n" - "(with the right tool) but 'Interior'\n" - "isolation can be done only when there is an opening\n" - "inside of the polygon (e.g polygon is a 'doughnut' shape).") - ) - self.iso_type_radio = RadioSet([{'label': _('Full'), 'value': 'full'}, - {'label': _('Ext'), 'value': 'ext'}, - {'label': _('Int'), 'value': 'int'}]) - self.iso_type_radio.setObjectName("i_iso_type") - - self.grid3.addWidget(self.iso_type_label, 17, 0) - self.grid3.addWidget(self.iso_type_radio, 17, 1) - - separator_line = QtWidgets.QFrame() - separator_line.setFrameShape(QtWidgets.QFrame.HLine) - separator_line.setFrameShadow(QtWidgets.QFrame.Sunken) - self.grid3.addWidget(separator_line, 18, 0, 1, 2) - - self.apply_param_to_all = FCButton(_("Apply parameters to all tools")) - self.apply_param_to_all.setToolTip( - _("The parameters in the current form will be applied\n" - "on all the tools from the Tool Table.") - ) - self.grid3.addWidget(self.apply_param_to_all, 22, 0, 1, 2) - - separator_line = QtWidgets.QFrame() - separator_line.setFrameShape(QtWidgets.QFrame.HLine) - separator_line.setFrameShadow(QtWidgets.QFrame.Sunken) - self.grid3.addWidget(separator_line, 23, 0, 1, 2) - - # General Parameters - self.gen_param_label = QtWidgets.QLabel('%s' % _("Common Parameters")) - self.gen_param_label.setToolTip( - _("Parameters that are common for all tools.") - ) - self.grid3.addWidget(self.gen_param_label, 24, 0, 1, 2) - - # Rest Machining - self.rest_cb = FCCheckBox('%s' % _("Rest")) - self.rest_cb.setObjectName("i_rest") - self.rest_cb.setToolTip( - _("If checked, use 'rest machining'.\n" - "Basically it will isolate outside PCB features,\n" - "using the biggest tool and continue with the next tools,\n" - "from bigger to smaller, to isolate the copper features that\n" - "could not be cleared by previous tool, until there is\n" - "no more copper features to isolate or there are no more tools.\n" - "If not checked, use the standard algorithm.") - ) - - self.grid3.addWidget(self.rest_cb, 25, 0) - - # Combine All Passes - self.combine_passes_cb = FCCheckBox(label=_('Combine')) - self.combine_passes_cb.setToolTip( - _("Combine all passes into one object") - ) - self.combine_passes_cb.setObjectName("i_combine") - - self.grid3.addWidget(self.combine_passes_cb, 25, 1) - - # Exception Areas - self.except_cb = FCCheckBox(label=_('Except')) - self.except_cb.setToolTip(_("When the isolation geometry is generated,\n" - "by checking this, the area of the object below\n" - "will be subtracted from the isolation geometry.")) - self.except_cb.setObjectName("i_except") - self.grid3.addWidget(self.except_cb, 27, 0) - - # Type of object to be excepted - self.type_excobj_radio = RadioSet([{'label': _("Geometry"), 'value': 'geometry'}, - {'label': _("Gerber"), 'value': 'gerber'}]) - self.type_excobj_radio.setToolTip( - _("Specify the type of object to be excepted from isolation.\n" - "It can be of type: Gerber or Geometry.\n" - "What is selected here will dictate the kind\n" - "of objects that will populate the 'Object' combobox.") - ) - - self.grid3.addWidget(self.type_excobj_radio, 27, 1) - - # The object to be excepted - self.exc_obj_combo = FCComboBox() - self.exc_obj_combo.setToolTip(_("Object whose area will be removed from isolation geometry.")) - - # set the model for the Area Exception comboboxes - self.exc_obj_combo.setModel(self.app.collection) - self.exc_obj_combo.setRootModelIndex(self.app.collection.index(0, 0, QtCore.QModelIndex())) - self.exc_obj_combo.is_last = True - self.exc_obj_combo.obj_type = self.type_excobj_radio.get_value() - - self.grid3.addWidget(self.exc_obj_combo, 29, 0, 1, 2) - - self.e_ois = OptionalInputSection(self.except_cb, - [ - self.type_excobj_radio, - self.exc_obj_combo - ]) - - # Isolation Scope - self.select_label = QtWidgets.QLabel('%s:' % _("Selection")) - self.select_label.setToolTip( - _("Isolation scope. Choose what to isolate:\n" - "- 'All' -> Isolate all the polygons in the object\n" - "- 'Area Selection' -> Isolate polygons within a selection area.\n" - "- 'Polygon Selection' -> Isolate a selection of polygons.\n" - "- 'Reference Object' - will process the area specified by another object.") - ) - self.select_combo = FCComboBox() - self.select_combo.addItems( - [_("All"), _("Area Selection"), _("Polygon Selection"), _("Reference Object")] - ) - self.select_combo.setObjectName("i_selection") - - self.grid3.addWidget(self.select_label, 30, 0) - self.grid3.addWidget(self.select_combo, 30, 1) - - self.reference_combo_type_label = QtWidgets.QLabel('%s:' % _("Ref. Type")) - self.reference_combo_type_label.setToolTip( - _("The type of FlatCAM object to be used as non copper clearing reference.\n" - "It can be Gerber, Excellon or Geometry.") - ) - self.reference_combo_type = FCComboBox() - self.reference_combo_type.addItems([_("Gerber"), _("Excellon"), _("Geometry")]) - - self.grid3.addWidget(self.reference_combo_type_label, 31, 0) - self.grid3.addWidget(self.reference_combo_type, 31, 1) - - self.reference_combo_label = QtWidgets.QLabel('%s:' % _("Ref. Object")) - self.reference_combo_label.setToolTip( - _("The FlatCAM object to be used as non copper clearing reference.") - ) - self.reference_combo = FCComboBox() - self.reference_combo.setModel(self.app.collection) - self.reference_combo.setRootModelIndex(self.app.collection.index(0, 0, QtCore.QModelIndex())) - self.reference_combo.is_last = True - - self.grid3.addWidget(self.reference_combo_label, 32, 0) - self.grid3.addWidget(self.reference_combo, 32, 1) - - self.reference_combo.hide() - self.reference_combo_label.hide() - self.reference_combo_type.hide() - self.reference_combo_type_label.hide() - - # Area Selection shape - self.area_shape_label = QtWidgets.QLabel('%s:' % _("Shape")) - self.area_shape_label.setToolTip( - _("The kind of selection shape used for area selection.") - ) - - self.area_shape_radio = RadioSet([{'label': _("Square"), 'value': 'square'}, - {'label': _("Polygon"), 'value': 'polygon'}]) - - self.grid3.addWidget(self.area_shape_label, 33, 0) - self.grid3.addWidget(self.area_shape_radio, 33, 1) - - self.area_shape_label.hide() - self.area_shape_radio.hide() - - separator_line = QtWidgets.QFrame() - separator_line.setFrameShape(QtWidgets.QFrame.HLine) - separator_line.setFrameShadow(QtWidgets.QFrame.Sunken) - self.grid3.addWidget(separator_line, 34, 0, 1, 2) - - self.generate_iso_button = QtWidgets.QPushButton("%s" % _("Generate Isolation Geometry")) - self.generate_iso_button.setStyleSheet(""" - QPushButton - { - font-weight: bold; - } - """) - self.generate_iso_button.setToolTip( - _("Create a Geometry object with toolpaths to cut \n" - "isolation outside, inside or on both sides of the\n" - "object. For a Gerber object outside means outside\n" - "of the Gerber feature and inside means inside of\n" - "the Gerber feature, if possible at all. This means\n" - "that only if the Gerber feature has openings inside, they\n" - "will be isolated. If what is wanted is to cut isolation\n" - "inside the actual Gerber feature, use a negative tool\n" - "diameter above.") - ) - self.tools_box.addWidget(self.generate_iso_button) - - self.create_buffer_button = QtWidgets.QPushButton(_('Buffer Solid Geometry')) - self.create_buffer_button.setToolTip( - _("This button is shown only when the Gerber file\n" - "is loaded without buffering.\n" - "Clicking this will create the buffered geometry\n" - "required for isolation.") - ) - self.tools_box.addWidget(self.create_buffer_button) - - self.tools_box.addStretch() - - # ## Reset Tool - self.reset_button = QtWidgets.QPushButton(_("Reset Tool")) - self.reset_button.setToolTip( - _("Will reset the tool parameters.") - ) - self.reset_button.setStyleSheet(""" - QPushButton - { - font-weight: bold; - } - """) - self.tools_box.addWidget(self.reset_button) - # ############################ FINSIHED GUI ################################### - # ############################################################################# - - # ############################################################################# - # ###################### Setup CONTEXT MENU ################################### - # ############################################################################# - self.tools_table.setupContextMenu() - self.tools_table.addContextMenu( - _("Add"), self.on_add_tool_by_key, icon=QtGui.QIcon(self.app.resource_location + "/plus16.png") - ) - self.tools_table.addContextMenu( - _("Add from DB"), self.on_add_tool_by_key, icon=QtGui.QIcon(self.app.resource_location + "/plus16.png") - ) - self.tools_table.addContextMenu( - _("Delete"), lambda: - self.on_tool_delete(rows_to_delete=None, all_tools=None), - icon=QtGui.QIcon(self.app.resource_location + "/delete32.png") - ) - - # ############################################################################# - # ########################## VARIABLES ######################################## - # ############################################################################# - self.units = '' - self.iso_tools = {} - self.tooluid = 0 - - # store here the default data for Geometry Data - self.default_data = {} - - self.obj_name = "" - self.grb_obj = None - - self.sel_rect = [] - - self.first_click = False - self.cursor_pos = None - self.mouse_is_dragging = False - - # store here the points for the "Polygon" area selection shape - self.points = [] - - # set this as True when in middle of drawing a "Polygon" area selection shape - # it is made False by first click to signify that the shape is complete - self.poly_drawn = False - - self.mm = None - self.mr = None - self.kp = None - - # store geometry from Polygon selection - self.poly_dict = {} - - self.grid_status_memory = self.app.ui.grid_snap_btn.isChecked() - - # store here the state of the combine_cb GUI element - # used when the rest machining is toggled - self.old_combine_state = None - - # store here solid_geometry when there are tool with isolation job - self.solid_geometry = [] - - self.tool_type_item_options = [] - - self.grb_circle_steps = int(self.app.defaults["gerber_circle_steps"]) - - self.tooldia = None - - # multiprocessing - self.pool = self.app.pool - self.results = [] - - # disconnect flags - self.area_sel_disconnect_flag = False - self.poly_sel_disconnect_flag = False - - self.form_fields = { - "tools_iso_passes": self.passes_entry, - "tools_iso_overlap": self.iso_overlap_entry, - "tools_iso_milling_type": self.milling_type_radio, - "tools_iso_combine": self.combine_passes_cb, - "tools_iso_follow": self.follow_cb, - "tools_iso_isotype": self.iso_type_radio - } - - self.name2option = { - "i_passes": "tools_iso_passes", - "i_overlap": "tools_iso_overlap", - "i_milling_type": "tools_iso_milling_type", - "i_combine": "tools_iso_combine", - "i_follow": "tools_iso_follow", - "i_iso_type": "tools_iso_isotype" - } - - self.old_tool_dia = None - - # ############################################################################# - # ############################ SIGNALS ######################################## - # ############################################################################# - self.addtool_btn.clicked.connect(self.on_tool_add) - self.addtool_entry.returnPressed.connect(self.on_tooldia_updated) - self.deltool_btn.clicked.connect(self.on_tool_delete) - - self.tipdia_entry.returnPressed.connect(self.on_calculate_tooldia) - self.tipangle_entry.returnPressed.connect(self.on_calculate_tooldia) - self.cutz_entry.returnPressed.connect(self.on_calculate_tooldia) - - self.reference_combo_type.currentIndexChanged.connect(self.on_reference_combo_changed) - self.select_combo.currentIndexChanged.connect(self.on_toggle_reference) - - self.rest_cb.stateChanged.connect(self.on_rest_machining_check) - self.order_radio.activated_custom[str].connect(self.on_order_changed) - - self.type_excobj_radio.activated_custom.connect(self.on_type_excobj_index_changed) - self.apply_param_to_all.clicked.connect(self.on_apply_param_to_all_clicked) - self.addtool_from_db_btn.clicked.connect(self.on_tool_add_from_db_clicked) - - self.generate_iso_button.clicked.connect(self.on_iso_button_click) - self.reset_button.clicked.connect(self.set_tool_ui) - - # Cleanup on Graceful exit (CTRL+ALT+X combo key) - self.app.cleanup.connect(self.reset_usage) - - def on_type_excobj_index_changed(self, val): - obj_type = 0 if val == 'gerber' else 2 - self.exc_obj_combo.setRootModelIndex(self.app.collection.index(obj_type, 0, QtCore.QModelIndex())) - self.exc_obj_combo.setCurrentIndex(0) - self.exc_obj_combo.obj_type = { - "gerber": "Gerber", "geometry": "Geometry" - }[self.type_excobj_radio.get_value()] - - def install(self, icon=None, separator=None, **kwargs): - AppTool.install(self, icon, separator, shortcut='Alt+I', **kwargs) - - def run(self, toggle=True): - self.app.defaults.report_usage("ToolIsolation()") - log.debug("ToolIsolation().run() was launched ...") - - 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: - # if tab is populated with the tool but it does not have the focus, focus on it - if not self.app.ui.notebook.currentWidget() is self.app.ui.tool_tab: - # focus on Tool Tab - self.app.ui.notebook.setCurrentWidget(self.app.ui.tool_tab) - else: - self.app.ui.splitter.setSizes([0, 1]) - except AttributeError: - pass - else: - if self.app.ui.splitter.sizes()[0] == 0: - self.app.ui.splitter.setSizes([1, 1]) - - AppTool.run(self) - self.set_tool_ui() - - # reset those objects on a new run - self.grb_obj = None - self.obj_name = '' - - self.build_ui() - self.app.ui.notebook.setTabText(2, _("Isolation Tool")) - - def set_tool_ui(self): - self.units = self.app.defaults['units'].upper() - self.old_tool_dia = self.app.defaults["tools_iso_newdia"] - - # try to select in the Gerber combobox the active object - try: - selected_obj = self.app.collection.get_active() - if selected_obj.kind == 'gerber': - current_name = selected_obj.options['name'] - self.object_combo.set_value(current_name) - except Exception: - pass - - app_mode = self.app.defaults["global_app_level"] - - # Show/Hide Advanced Options - if app_mode == 'b': - self.level.setText('%s' % _('Basic')) - - # override the Preferences Value; in Basic mode the Tool Type is always Circular ('C1') - self.tool_type_radio.set_value('C1') - self.tool_type_label.hide() - self.tool_type_radio.hide() - - self.milling_type_label.hide() - self.milling_type_radio.hide() - - self.iso_type_label.hide() - self.iso_type_radio.set_value('full') - self.iso_type_radio.hide() - - self.follow_cb.set_value(False) - self.follow_cb.hide() - self.follow_label.hide() - - self.rest_cb.set_value(False) - self.rest_cb.hide() - - self.except_cb.set_value(False) - self.except_cb.hide() - - self.type_excobj_radio.hide() - self.exc_obj_combo.hide() - - self.select_combo.setCurrentIndex(0) - self.select_combo.hide() - self.select_label.hide() - else: - self.level.setText('%s' % _('Advanced')) - - self.tool_type_radio.set_value(self.app.defaults["tools_iso_tool_type"]) - self.tool_type_label.show() - self.tool_type_radio.show() - - self.milling_type_label.show() - self.milling_type_radio.show() - - self.iso_type_label.show() - self.iso_type_radio.set_value(self.app.defaults["tools_iso_isotype"]) - self.iso_type_radio.show() - - self.follow_cb.set_value(self.app.defaults["tools_iso_follow"]) - self.follow_cb.show() - self.follow_label.show() - - self.rest_cb.set_value(self.app.defaults["tools_iso_rest"]) - self.rest_cb.show() - - self.except_cb.set_value(self.app.defaults["tools_iso_isoexcept"]) - self.except_cb.show() - - self.select_combo.set_value(self.app.defaults["tools_iso_selection"]) - self.select_combo.show() - self.select_label.show() - - if self.app.defaults["gerber_buffering"] == 'no': - self.create_buffer_button.show() - try: - self.create_buffer_button.clicked.disconnect(self.on_generate_buffer) - except TypeError: - pass - self.create_buffer_button.clicked.connect(self.on_generate_buffer) - else: - self.create_buffer_button.hide() - - self.tools_frame.show() - - self.type_excobj_radio.set_value('gerber') - - # run those once so the obj_type attribute is updated for the FCComboboxes - # so the last loaded object is displayed - self.on_type_excobj_index_changed(val="gerber") - self.on_reference_combo_changed() - - self.order_radio.set_value(self.app.defaults["tools_iso_order"]) - self.passes_entry.set_value(self.app.defaults["tools_iso_passes"]) - self.iso_overlap_entry.set_value(self.app.defaults["tools_iso_overlap"]) - self.milling_type_radio.set_value(self.app.defaults["tools_iso_milling_type"]) - self.combine_passes_cb.set_value(self.app.defaults["tools_iso_combine_passes"]) - self.area_shape_radio.set_value(self.app.defaults["tools_iso_area_shape"]) - - self.cutz_entry.set_value(self.app.defaults["tools_iso_tool_cutz"]) - self.tool_type_radio.set_value(self.app.defaults["tools_iso_tool_type"]) - self.tipdia_entry.set_value(self.app.defaults["tools_iso_tool_vtipdia"]) - self.tipangle_entry.set_value(self.app.defaults["tools_iso_tool_vtipangle"]) - self.addtool_entry.set_value(self.app.defaults["tools_iso_newdia"]) - - self.on_tool_type(val=self.tool_type_radio.get_value()) - - loaded_obj = self.app.collection.get_by_name(self.object_combo.get_value()) - if loaded_obj: - outname = loaded_obj.options['name'] - else: - outname = '' - - # init the working variables - self.default_data.clear() - self.default_data = { - "name": outname + '_iso', - "plot": self.app.defaults["geometry_plot"], - "cutz": float(self.cutz_entry.get_value()), - "vtipdia": float(self.tipdia_entry.get_value()), - "vtipangle": float(self.tipangle_entry.get_value()), - "travelz": self.app.defaults["geometry_travelz"], - "feedrate": self.app.defaults["geometry_feedrate"], - "feedrate_z": self.app.defaults["geometry_feedrate_z"], - "feedrate_rapid": self.app.defaults["geometry_feedrate_rapid"], - "dwell": self.app.defaults["geometry_dwell"], - "dwelltime": self.app.defaults["geometry_dwelltime"], - "multidepth": self.app.defaults["geometry_multidepth"], - "ppname_g": self.app.defaults["geometry_ppname_g"], - "depthperpass": self.app.defaults["geometry_depthperpass"], - "extracut": self.app.defaults["geometry_extracut"], - "extracut_length": self.app.defaults["geometry_extracut_length"], - "toolchange": self.app.defaults["geometry_toolchange"], - "toolchangez": self.app.defaults["geometry_toolchangez"], - "endz": self.app.defaults["geometry_endz"], - "endxy": self.app.defaults["geometry_endxy"], - - "spindlespeed": self.app.defaults["geometry_spindlespeed"], - "toolchangexy": self.app.defaults["geometry_toolchangexy"], - "startz": self.app.defaults["geometry_startz"], - - "area_exclusion": self.app.defaults["geometry_area_exclusion"], - "area_shape": self.app.defaults["geometry_area_shape"], - "area_strategy": self.app.defaults["geometry_area_strategy"], - "area_overz": float(self.app.defaults["geometry_area_overz"]), - - "tools_iso_passes": self.app.defaults["tools_iso_passes"], - "tools_iso_overlap": self.app.defaults["tools_iso_overlap"], - "tools_iso_milling_type": self.app.defaults["tools_iso_milling_type"], - "tools_iso_follow": self.app.defaults["tools_iso_follow"], - "tools_iso_isotype": self.app.defaults["tools_iso_isotype"], - - "tools_iso_rest": self.app.defaults["tools_iso_rest"], - "tools_iso_combine_passes": self.app.defaults["tools_iso_combine_passes"], - "tools_iso_isoexcept": self.app.defaults["tools_iso_isoexcept"], - "tools_iso_selection": self.app.defaults["tools_iso_selection"], - "tools_iso_area_shape": self.app.defaults["tools_iso_area_shape"] - } - - try: - dias = [float(self.app.defaults["tools_iso_tooldia"])] - except (ValueError, TypeError): - dias = [float(eval(dia)) for dia in self.app.defaults["tools_iso_tooldia"].split(",") if dia != ''] - - if not dias: - log.error("At least one tool diameter needed. Verify in Edit -> Preferences -> TOOLS -> Isolation Tools.") - return - - self.tooluid = 0 - - self.iso_tools.clear() - for tool_dia in dias: - self.tooluid += 1 - self.iso_tools.update({ - int(self.tooluid): { - 'tooldia': float('%.*f' % (self.decimals, tool_dia)), - 'offset': 'Path', - 'offset_value': 0.0, - 'type': 'Iso', - 'tool_type': self.tool_type_radio.get_value(), - 'data': deepcopy(self.default_data), - 'solid_geometry': [] - } - }) - - self.obj_name = "" - self.grb_obj = None - - self.tool_type_item_options = ["C1", "C2", "C3", "C4", "B", "V"] - self.units = self.app.defaults['units'].upper() - - def build_ui(self): - self.ui_disconnect() - - # updated units - self.units = self.app.defaults['units'].upper() - - sorted_tools = [] - for k, v in self.iso_tools.items(): - sorted_tools.append(float('%.*f' % (self.decimals, float(v['tooldia'])))) - - order = self.order_radio.get_value() - if order == 'fwd': - sorted_tools.sort(reverse=False) - elif order == 'rev': - sorted_tools.sort(reverse=True) - else: - pass - - n = len(sorted_tools) - self.tools_table.setRowCount(n) - tool_id = 0 - - for tool_sorted in sorted_tools: - for tooluid_key, tooluid_value in self.iso_tools.items(): - if float('%.*f' % (self.decimals, tooluid_value['tooldia'])) == tool_sorted: - tool_id += 1 - id_ = QtWidgets.QTableWidgetItem('%d' % int(tool_id)) - id_.setFlags(QtCore.Qt.ItemIsSelectable | QtCore.Qt.ItemIsEnabled) - row_no = tool_id - 1 - self.tools_table.setItem(row_no, 0, id_) # Tool name/id - - # Make sure that the drill diameter when in MM is with no more than 2 decimals - # There are no drill bits in MM with more than 2 decimals diameter - # For INCH the decimals should be no more than 4. There are no drills under 10mils - dia = QtWidgets.QTableWidgetItem('%.*f' % (self.decimals, tooluid_value['tooldia'])) - - dia.setFlags(QtCore.Qt.ItemIsEnabled) - - tool_type_item = FCComboBox() - tool_type_item.addItems(self.tool_type_item_options) - - # tool_type_item.setStyleSheet('background-color: rgb(255,255,255)') - idx = tool_type_item.findText(tooluid_value['tool_type']) - tool_type_item.setCurrentIndex(idx) - - tool_uid_item = QtWidgets.QTableWidgetItem(str(int(tooluid_key))) - - self.tools_table.setItem(row_no, 1, dia) # Diameter - self.tools_table.setCellWidget(row_no, 2, tool_type_item) - - # ## REMEMBER: THIS COLUMN IS HIDDEN IN OBJECTUI.PY # ## - self.tools_table.setItem(row_no, 3, tool_uid_item) # Tool unique ID - - # make the diameter column editable - for row in range(tool_id): - self.tools_table.item(row, 1).setFlags( - QtCore.Qt.ItemIsEditable | QtCore.Qt.ItemIsSelectable | QtCore.Qt.ItemIsEnabled) - - # all the tools are selected by default - self.tools_table.selectColumn(0) - # - self.tools_table.resizeColumnsToContents() - self.tools_table.resizeRowsToContents() - - vertical_header = self.tools_table.verticalHeader() - vertical_header.hide() - self.tools_table.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff) - - horizontal_header = self.tools_table.horizontalHeader() - horizontal_header.setMinimumSectionSize(10) - horizontal_header.setSectionResizeMode(0, QtWidgets.QHeaderView.Fixed) - horizontal_header.resizeSection(0, 20) - horizontal_header.setSectionResizeMode(1, QtWidgets.QHeaderView.Stretch) - - # self.tools_table.setSortingEnabled(True) - # sort by tool diameter - # self.tools_table.sortItems(1) - - self.tools_table.setMinimumHeight(self.tools_table.getHeight()) - self.tools_table.setMaximumHeight(self.tools_table.getHeight()) - - self.ui_connect() - - # set the text on tool_data_label after loading the object - sel_rows = [] - sel_items = self.tools_table.selectedItems() - for it in sel_items: - sel_rows.append(it.row()) - if len(sel_rows) > 1: - self.tool_data_label.setText( - "%s: %s" % (_('Parameters for'), _("Multiple Tools")) - ) - - def ui_connect(self): - self.tools_table.itemChanged.connect(self.on_tool_edit) - - # rows selected - self.tools_table.clicked.connect(self.on_row_selection_change) - self.tools_table.horizontalHeader().sectionClicked.connect(self.on_row_selection_change) - - for row in range(self.tools_table.rowCount()): - try: - self.tools_table.cellWidget(row, 2).currentIndexChanged.connect(self.on_tooltable_cellwidget_change) - except AttributeError: - pass - - self.tool_type_radio.activated_custom.connect(self.on_tool_type) - - for opt in self.form_fields: - current_widget = self.form_fields[opt] - if isinstance(current_widget, FCCheckBox): - current_widget.stateChanged.connect(self.form_to_storage) - if isinstance(current_widget, RadioSet): - current_widget.activated_custom.connect(self.form_to_storage) - elif isinstance(current_widget, FCDoubleSpinner) or isinstance(current_widget, FCSpinner): - current_widget.returnPressed.connect(self.form_to_storage) - elif isinstance(current_widget, FCComboBox): - current_widget.currentIndexChanged.connect(self.form_to_storage) - - self.rest_cb.stateChanged.connect(self.on_rest_machining_check) - self.order_radio.activated_custom[str].connect(self.on_order_changed) - - def ui_disconnect(self): - - try: - # if connected, disconnect the signal from the slot on item_changed as it creates issues - self.tools_table.itemChanged.disconnect() - except (TypeError, AttributeError): - pass - - try: - # if connected, disconnect the signal from the slot on item_changed as it creates issues - self.tool_type_radio.activated_custom.disconnect() - except (TypeError, AttributeError): - pass - - for row in range(self.tools_table.rowCount()): - - try: - self.tools_table.cellWidget(row, 2).currentIndexChanged.disconnect() - except (TypeError, AttributeError): - pass - - for opt in self.form_fields: - current_widget = self.form_fields[opt] - if isinstance(current_widget, FCCheckBox): - try: - current_widget.stateChanged.disconnect(self.form_to_storage) - except (TypeError, ValueError): - pass - if isinstance(current_widget, RadioSet): - try: - current_widget.activated_custom.disconnect(self.form_to_storage) - except (TypeError, ValueError): - pass - elif isinstance(current_widget, FCDoubleSpinner) or isinstance(current_widget, FCSpinner): - try: - current_widget.returnPressed.disconnect(self.form_to_storage) - except (TypeError, ValueError): - pass - elif isinstance(current_widget, FCComboBox): - try: - current_widget.currentIndexChanged.disconnect(self.form_to_storage) - except (TypeError, ValueError): - pass - - try: - self.rest_cb.stateChanged.disconnect() - except (TypeError, ValueError): - pass - try: - self.order_radio.activated_custom[str].disconnect() - except (TypeError, ValueError): - pass - - # rows selected - try: - self.tools_table.clicked.disconnect() - except (TypeError, AttributeError): - pass - try: - self.tools_table.horizontalHeader().sectionClicked.disconnect() - except (TypeError, AttributeError): - pass - - def on_row_selection_change(self): - self.blockSignals(True) - - sel_rows = [it.row() for it in self.tools_table.selectedItems()] - # sel_rows = sorted(set(index.row() for index in self.tools_table.selectedIndexes())) - - if not sel_rows: - sel_rows = [0] - - for current_row in sel_rows: - # populate the form with the data from the tool associated with the row parameter - try: - item = self.tools_table.item(current_row, 3) - if item is not None: - tooluid = int(item.text()) - else: - return - except Exception as e: - log.debug("Tool missing. Add a tool in the Tool Table. %s" % str(e)) - return - - # update the QLabel that shows for which Tool we have the parameters in the UI form - if len(sel_rows) == 1: - cr = current_row + 1 - self.tool_data_label.setText( - "%s: %s %d" % (_('Parameters for'), _("Tool"), cr) - ) - try: - # set the form with data from the newly selected tool - for tooluid_key, tooluid_value in list(self.iso_tools.items()): - if int(tooluid_key) == tooluid: - for key, value in tooluid_value.items(): - if key == 'data': - form_value_storage = tooluid_value[key] - self.storage_to_form(form_value_storage) - except Exception as e: - log.debug("ToolIsolation ---> update_ui() " + str(e)) - else: - self.tool_data_label.setText( - "%s: %s" % (_('Parameters for'), _("Multiple Tools")) - ) - - self.blockSignals(False) - - def storage_to_form(self, dict_storage): - for form_key in self.form_fields: - for storage_key in dict_storage: - if form_key == storage_key: - try: - self.form_fields[form_key].set_value(dict_storage[form_key]) - except Exception as e: - log.debug("ToolIsolation.storage_to_form() --> %s" % str(e)) - pass - - def form_to_storage(self): - if self.tools_table.rowCount() == 0: - # there is no tool in tool table so we can't save the GUI elements values to storage - return - - self.blockSignals(True) - - widget_changed = self.sender() - wdg_objname = widget_changed.objectName() - option_changed = self.name2option[wdg_objname] - - # row = self.tools_table.currentRow() - rows = sorted(set(index.row() for index in self.tools_table.selectedIndexes())) - for row in rows: - if row < 0: - row = 0 - tooluid_item = int(self.tools_table.item(row, 3).text()) - - for tooluid_key, tooluid_val in self.iso_tools.items(): - if int(tooluid_key) == tooluid_item: - new_option_value = self.form_fields[option_changed].get_value() - if option_changed in tooluid_val: - tooluid_val[option_changed] = new_option_value - if option_changed in tooluid_val['data']: - tooluid_val['data'][option_changed] = new_option_value - - self.blockSignals(False) - - def on_apply_param_to_all_clicked(self): - if self.tools_table.rowCount() == 0: - # there is no tool in tool table so we can't save the GUI elements values to storage - log.debug("ToolIsolation.on_apply_param_to_all_clicked() --> no tool in Tools Table, aborting.") - return - - self.blockSignals(True) - - row = self.tools_table.currentRow() - if row < 0: - row = 0 - - tooluid_item = int(self.tools_table.item(row, 3).text()) - temp_tool_data = {} - - for tooluid_key, tooluid_val in self.iso_tools.items(): - if int(tooluid_key) == tooluid_item: - # this will hold the 'data' key of the self.tools[tool] dictionary that corresponds to - # the current row in the tool table - temp_tool_data = tooluid_val['data'] - break - - for tooluid_key, tooluid_val in self.iso_tools.items(): - tooluid_val['data'] = deepcopy(temp_tool_data) - - self.app.inform.emit('[success] %s' % _("Current Tool parameters were applied to all tools.")) - self.blockSignals(False) - - def on_add_tool_by_key(self): - tool_add_popup = FCInputDialog(title='%s...' % _("New Tool"), - text='%s:' % _('Enter a Tool Diameter'), - min=0.0001, max=9999.9999, decimals=self.decimals) - tool_add_popup.setWindowIcon(QtGui.QIcon(self.app.resource_location + '/letter_t_32.png')) - - val, ok = tool_add_popup.get_value() - if ok: - if float(val) == 0: - self.app.inform.emit('[WARNING_NOTCL] %s' % - _("Please enter a tool diameter with non-zero value, in Float format.")) - return - self.on_tool_add(dia=float(val)) - else: - self.app.inform.emit('[WARNING_NOTCL] %s...' % _("Adding Tool cancelled")) - - def on_tooldia_updated(self): - if self.tool_type_radio.get_value() == 'C1': - self.old_tool_dia = self.addtool_entry.get_value() - - def on_reference_combo_changed(self): - obj_type = self.reference_combo_type.currentIndex() - self.reference_combo.setRootModelIndex(self.app.collection.index(obj_type, 0, QtCore.QModelIndex())) - self.reference_combo.setCurrentIndex(0) - self.reference_combo.obj_type = { - _("Gerber"): "Gerber", _("Excellon"): "Excellon", _("Geometry"): "Geometry" - }[self.reference_combo_type.get_value()] - - def on_toggle_reference(self): - val = self.select_combo.get_value() - - if val == _("All"): - self.reference_combo.hide() - self.reference_combo_label.hide() - self.reference_combo_type.hide() - self.reference_combo_type_label.hide() - self.area_shape_label.hide() - self.area_shape_radio.hide() - - # disable rest-machining for area painting - self.rest_cb.setDisabled(False) - elif val == _("Area Selection"): - self.reference_combo.hide() - self.reference_combo_label.hide() - self.reference_combo_type.hide() - self.reference_combo_type_label.hide() - self.area_shape_label.show() - self.area_shape_radio.show() - - # disable rest-machining for area isolation - self.rest_cb.set_value(False) - self.rest_cb.setDisabled(True) - elif val == _("Polygon Selection"): - self.reference_combo.hide() - self.reference_combo_label.hide() - self.reference_combo_type.hide() - self.reference_combo_type_label.hide() - self.area_shape_label.hide() - self.area_shape_radio.hide() - else: - self.reference_combo.show() - self.reference_combo_label.show() - self.reference_combo_type.show() - self.reference_combo_type_label.show() - self.area_shape_label.hide() - self.area_shape_radio.hide() - - # disable rest-machining for area painting - self.rest_cb.setDisabled(False) - - def on_order_changed(self, order): - if order != 'no': - self.build_ui() - - def on_rest_machining_check(self, state): - if state: - self.order_radio.set_value('rev') - self.order_label.setDisabled(True) - self.order_radio.setDisabled(True) - - self.old_combine_state = self.combine_passes_cb.get_value() - self.combine_passes_cb.set_value(True) - self.combine_passes_cb.setDisabled(True) - else: - self.order_label.setDisabled(False) - self.order_radio.setDisabled(False) - - self.combine_passes_cb.set_value(self.old_combine_state) - self.combine_passes_cb.setDisabled(False) - - def on_tooltable_cellwidget_change(self): - cw = self.sender() - assert isinstance(cw, QtWidgets.QComboBox), \ - "Expected a QtWidgets.QComboBox, got %s" % isinstance(cw, QtWidgets.QComboBox) - - cw_index = self.tools_table.indexAt(cw.pos()) - cw_row = cw_index.row() - cw_col = cw_index.column() - - current_uid = int(self.tools_table.item(cw_row, 3).text()) - - # if the sender is in the column with index 2 then we update the tool_type key - if cw_col == 2: - tt = cw.currentText() - typ = 'Iso' if tt == 'V' else "Rough" - - self.iso_tools[current_uid].update({ - 'type': typ, - 'tool_type': tt, - }) - - def on_tool_type(self, val): - if val == 'V': - self.addtool_entry_lbl.setDisabled(True) - self.addtool_entry.setDisabled(True) - self.tipdialabel.show() - self.tipdia_entry.show() - self.tipanglelabel.show() - self.tipangle_entry.show() - - self.on_calculate_tooldia() - else: - self.addtool_entry_lbl.setDisabled(False) - self.addtool_entry.setDisabled(False) - self.tipdialabel.hide() - self.tipdia_entry.hide() - self.tipanglelabel.hide() - self.tipangle_entry.hide() - - self.addtool_entry.set_value(self.old_tool_dia) - - def on_calculate_tooldia(self): - if self.tool_type_radio.get_value() == 'V': - tip_dia = float(self.tipdia_entry.get_value()) - tip_angle = float(self.tipangle_entry.get_value()) / 2.0 - cut_z = float(self.cutz_entry.get_value()) - cut_z = -cut_z if cut_z < 0 else cut_z - - # calculated tool diameter so the cut_z parameter is obeyed - tool_dia = tip_dia + (2 * cut_z * math.tan(math.radians(tip_angle))) - - # update the default_data so it is used in the iso_tools dict - self.default_data.update({ - "vtipdia": tip_dia, - "vtipangle": (tip_angle * 2), - }) - - self.addtool_entry.set_value(tool_dia) - - return tool_dia - else: - return float(self.addtool_entry.get_value()) - - def on_tool_add(self, dia=None, muted=None): - self.blockSignals(True) - - self.units = self.app.defaults['units'].upper() - - if dia: - tool_dia = dia - else: - tool_dia = self.on_calculate_tooldia() - if tool_dia is None: - self.build_ui() - self.app.inform.emit('[WARNING_NOTCL] %s' % _("Please enter a tool diameter to add, in Float format.")) - return - - tool_dia = float('%.*f' % (self.decimals, tool_dia)) - - if tool_dia == 0: - self.app.inform.emit('[WARNING_NOTCL] %s' % _("Please enter a tool diameter with non-zero value, " - "in Float format.")) - return - - # construct a list of all 'tooluid' in the self.tools - tool_uid_list = [] - for tooluid_key in self.iso_tools: - tool_uid_item = int(tooluid_key) - tool_uid_list.append(tool_uid_item) - - # find maximum from the temp_uid, add 1 and this is the new 'tooluid' - if not tool_uid_list: - max_uid = 0 - else: - max_uid = max(tool_uid_list) - self.tooluid = int(max_uid + 1) - - tool_dias = [] - for k, v in self.iso_tools.items(): - for tool_v in v.keys(): - if tool_v == 'tooldia': - tool_dias.append(float('%.*f' % (self.decimals, (v[tool_v])))) - - if float('%.*f' % (self.decimals, tool_dia)) in tool_dias: - if muted is None: - self.app.inform.emit('[WARNING_NOTCL] %s' % _("Cancelled. Tool already in Tool Table.")) - # self.tools_table.itemChanged.connect(self.on_tool_edit) - self.blockSignals(False) - - return - else: - if muted is None: - self.app.inform.emit('[success] %s' % _("New tool added to Tool Table.")) - self.iso_tools.update({ - int(self.tooluid): { - 'tooldia': float('%.*f' % (self.decimals, tool_dia)), - 'offset': 'Path', - 'offset_value': 0.0, - 'type': 'Iso', - 'tool_type': self.tool_type_radio.get_value(), - 'data': deepcopy(self.default_data), - 'solid_geometry': [] - } - }) - - self.blockSignals(False) - self.build_ui() - - def on_tool_edit(self): - self.blockSignals(True) - - old_tool_dia = '' - tool_dias = [] - for k, v in self.iso_tools.items(): - for tool_v in v.keys(): - if tool_v == 'tooldia': - tool_dias.append(float('%.*f' % (self.decimals, v[tool_v]))) - - for row in range(self.tools_table.rowCount()): - - try: - new_tool_dia = float(self.tools_table.item(row, 1).text()) - except ValueError: - # try to convert comma to decimal point. if it's still not working error message and return - try: - new_tool_dia = float(self.tools_table.item(row, 1).text().replace(',', '.')) - except ValueError: - self.app.inform.emit('[ERROR_NOTCL] %s' % _("Wrong value format entered, use a number.")) - self.blockSignals(False) - return - - tooluid = int(self.tools_table.item(row, 3).text()) - - # identify the tool that was edited and get it's tooluid - if new_tool_dia not in tool_dias: - self.iso_tools[tooluid]['tooldia'] = new_tool_dia - self.app.inform.emit('[success] %s' % _("Tool from Tool Table was edited.")) - self.blockSignals(False) - self.build_ui() - return - else: - # identify the old tool_dia and restore the text in tool table - for k, v in self.iso_tools.items(): - if k == tooluid: - old_tool_dia = v['tooldia'] - break - restore_dia_item = self.tools_table.item(row, 1) - restore_dia_item.setText(str(old_tool_dia)) - self.app.inform.emit('[WARNING_NOTCL] %s' % _("Cancelled. " - "New diameter value is already in the Tool Table.")) - self.blockSignals(False) - self.build_ui() - - def on_tool_delete(self, rows_to_delete=None, all_tools=None): - """ - Will delete a tool in the tool table - - :param rows_to_delete: which rows to delete; can be a list - :param all_tools: delete all tools in the tool table - :return: - """ - self.blockSignals(True) - - deleted_tools_list = [] - - if all_tools: - self.iso_tools.clear() - self.blockSignals(False) - self.build_ui() - return - - if rows_to_delete: - try: - for row in rows_to_delete: - tooluid_del = int(self.tools_table.item(row, 3).text()) - deleted_tools_list.append(tooluid_del) - except TypeError: - tooluid_del = int(self.tools_table.item(rows_to_delete, 3).text()) - deleted_tools_list.append(tooluid_del) - - for t in deleted_tools_list: - self.iso_tools.pop(t, None) - - self.blockSignals(False) - self.build_ui() - return - - try: - if self.tools_table.selectedItems(): - for row_sel in self.tools_table.selectedItems(): - row = row_sel.row() - if row < 0: - continue - tooluid_del = int(self.tools_table.item(row, 3).text()) - deleted_tools_list.append(tooluid_del) - - for t in deleted_tools_list: - self.iso_tools.pop(t, None) - - except AttributeError: - self.app.inform.emit('[WARNING_NOTCL] %s' % _("Delete failed. Select a tool to delete.")) - self.blockSignals(False) - return - except Exception as e: - log.debug(str(e)) - - self.app.inform.emit('[success] %s' % _("Tool(s) deleted from Tool Table.")) - self.blockSignals(False) - self.build_ui() - - def on_generate_buffer(self): - self.app.inform.emit('[WARNING_NOTCL] %s...' % _("Buffering solid geometry")) - - self.obj_name = self.object_combo.currentText() - - # Get source object. - try: - self.grb_obj = self.app.collection.get_by_name(self.obj_name) - except Exception as e: - self.app.inform.emit('[ERROR_NOTCL] %s: %s' % (_("Could not retrieve object"), str(self.obj_name))) - return "Could not retrieve object: %s with error: %s" % (self.obj_name, str(e)) - - if self.grb_obj is None: - self.app.inform.emit('[ERROR_NOTCL] %s: %s' % (_("Object not found"), str(self.obj_name))) - return - - def buffer_task(): - with self.app.proc_container.new('%s...' % _("Buffering")): - if isinstance(self.grb_obj.solid_geometry, list): - self.grb_obj.solid_geometry = MultiPolygon(self.grb_obj.solid_geometry) - - self.grb_obj.solid_geometry = self.grb_obj.solid_geometry.buffer(0.0000001) - self.grb_obj.solid_geometry = self.grb_obj.solid_geometry.buffer(-0.0000001) - self.app.inform.emit('[success] %s.' % _("Done")) - self.grb_obj.plot_single_object.emit() - - self.app.worker_task.emit({'fcn': buffer_task, 'params': []}) - - def on_iso_button_click(self): - - self.obj_name = self.object_combo.currentText() - - # Get source object. - try: - self.grb_obj = self.app.collection.get_by_name(self.obj_name) - except Exception as e: - self.app.inform.emit('[ERROR_NOTCL] %s: %s' % (_("Could not retrieve object"), str(self.obj_name))) - return "Could not retrieve object: %s with error: %s" % (self.obj_name, str(e)) - - if self.grb_obj is None: - self.app.inform.emit('[ERROR_NOTCL] %s: %s' % (_("Object not found"), str(self.obj_name))) - return - - def worker_task(iso_obj): - with self.app.proc_container.new(_("Isolating...")): - self.isolate_handler(iso_obj) - - self.app.worker_task.emit({'fcn': worker_task, 'params': [self.grb_obj]}) - - def follow_geo(self, followed_obj, outname): - """ - Creates a geometry object "following" the gerber paths. - - :param followed_obj: Gerber object for which to generate the follow geometry - :type followed_obj: AppObjects.FlatCAMGerber.GerberObject - :param outname: Nme of the resulting Geometry object - :type outname: str - :return: None - """ - - def follow_init(follow_obj, app_obj): - # Propagate options - follow_obj.options["cnctooldia"] = str(tooldia) - follow_obj.solid_geometry = self.grb_obj.follow_geometry - - # in the end toggle the visibility of the origin object so we can see the generated Geometry - followed_obj.ui.plot_cb.set_value(False) - follow_name = outname - - for tool in self.iso_tools: - tooldia = self.iso_tools[tool]['tooldia'] - new_name = "%s_%.*f" % (follow_name, self.decimals, tooldia) - - follow_state = self.iso_tools[tool]['data']['tools_iso_follow'] - if follow_state: - ret = self.app.app_obj.new_object("geometry", new_name, follow_init) - if ret == 'fail': - self.app.inform.emit("[ERROR_NOTCL] %s: %.*f" % ( - _("Failed to create Follow Geometry with tool diameter"), self.decimals, tooldia)) - else: - self.app.inform.emit("[success] %s: %.*f" % ( - _("Follow Geometry was created with tool diameter"), self.decimals, tooldia)) - - def isolate_handler(self, isolated_obj): - """ - Creates a geometry object with paths around the gerber features. - - :param isolated_obj: Gerber object for which to generate the isolating routing geometry - :type isolated_obj: AppObjects.FlatCAMGerber.GerberObject - :return: None - """ - selection = self.select_combo.get_value() - - if selection == _("All"): - self.isolate(isolated_obj=isolated_obj) - elif selection == _("Area Selection"): - self.app.inform.emit('[WARNING_NOTCL] %s' % _("Click the start point of the area.")) - - if self.app.is_legacy is False: - self.app.plotcanvas.graph_event_disconnect('mouse_press', self.app.on_mouse_click_over_plot) - self.app.plotcanvas.graph_event_disconnect('mouse_move', self.app.on_mouse_move_over_plot) - self.app.plotcanvas.graph_event_disconnect('mouse_release', self.app.on_mouse_click_release_over_plot) - else: - self.app.plotcanvas.graph_event_disconnect(self.app.mp) - self.app.plotcanvas.graph_event_disconnect(self.app.mm) - self.app.plotcanvas.graph_event_disconnect(self.app.mr) - - self.mr = self.app.plotcanvas.graph_event_connect('mouse_release', self.on_mouse_release) - self.mm = self.app.plotcanvas.graph_event_connect('mouse_move', self.on_mouse_move) - self.kp = self.app.plotcanvas.graph_event_connect('key_press', self.on_key_press) - - # disconnect flags - self.area_sel_disconnect_flag = True - - elif selection == _("Polygon Selection"): - # disengage the grid snapping since it may be hard to click on polygons with grid snapping on - if self.app.ui.grid_snap_btn.isChecked(): - self.grid_status_memory = True - self.app.ui.grid_snap_btn.trigger() - else: - self.grid_status_memory = False - - self.app.inform.emit('[WARNING_NOTCL] %s' % _("Click on a polygon to isolate it.")) - self.mr = self.app.plotcanvas.graph_event_connect('mouse_release', self.on_poly_mouse_click_release) - self.kp = self.app.plotcanvas.graph_event_connect('key_press', self.on_key_press) - - if self.app.is_legacy is False: - self.app.plotcanvas.graph_event_disconnect('mouse_release', - self.app.on_mouse_click_release_over_plot) - else: - self.app.plotcanvas.graph_event_disconnect(self.app.mr) - - # disconnect flags - self.poly_sel_disconnect_flag = True - - elif selection == _("Reference Object"): - ref_obj = self.app.collection.get_by_name(self.reference_combo.get_value()) - ref_geo = cascaded_union(ref_obj.solid_geometry) - use_geo = cascaded_union(isolated_obj.solid_geometry).difference(ref_geo) - self.isolate(isolated_obj=isolated_obj, geometry=use_geo) - - def isolate(self, isolated_obj, geometry=None, limited_area=None, plot=True): - """ - Creates an isolation routing geometry object in the project. - - :param isolated_obj: Gerber object for which to generate the isolating routing geometry - :type isolated_obj: AppObjects.FlatCAMGerber.GerberObject - :param geometry: specific geometry to isolate - :type geometry: List of Shapely polygon - :param limited_area: if not None isolate only this area - :type limited_area: Shapely Polygon or a list of them - :param plot: if to plot the resulting geometry object - :type plot: bool - :return: None - """ - - combine = self.combine_passes_cb.get_value() - tools_storage = self.iso_tools - - # update the Common Parameters valuse in the self.iso_tools - for tool_iso in self.iso_tools: - for key in self.iso_tools[tool_iso]: - if key == 'data': - self.iso_tools[tool_iso][key]["tools_iso_rest"] = self.rest_cb.get_value() - self.iso_tools[tool_iso][key]["tools_iso_combine_passes"] = combine - self.iso_tools[tool_iso][key]["tools_iso_isoexcept"] = self.except_cb.get_value() - self.iso_tools[tool_iso][key]["tools_iso_selection"] = self.select_combo.get_value() - self.iso_tools[tool_iso][key]["tools_iso_area_shape"] = self.area_shape_radio.get_value() - - if combine: - if self.rest_cb.get_value(): - self.combined_rest(iso_obj=isolated_obj, iso2geo=geometry, tools_storage=tools_storage, - lim_area=limited_area, plot=plot) - else: - self.combined_normal(iso_obj=isolated_obj, iso2geo=geometry, tools_storage=tools_storage, - lim_area=limited_area, plot=plot) - - else: - prog_plot = self.app.defaults["tools_iso_plotting"] - - for tool in tools_storage: - tool_data = tools_storage[tool]['data'] - to_follow = tool_data['tools_iso_follow'] - - work_geo = geometry - if work_geo is None: - work_geo = isolated_obj.follow_geometry if to_follow else isolated_obj.solid_geometry - - iso_t = { - 'ext': 0, - 'int': 1, - 'full': 2 - }[tool_data['tools_iso_isotype']] - - passes = tool_data['tools_iso_passes'] - overlap = tool_data['tools_iso_overlap'] - overlap /= 100.0 - - milling_type = tool_data['tools_iso_milling_type'] - - iso_except = self.except_cb.get_value() - - for i in range(passes): - tool_dia = tools_storage[tool]['tooldia'] - tool_type = tools_storage[tool]['tool_type'] - - iso_offset = tool_dia * ((2 * i + 1) / 2.0000001) - (i * overlap * tool_dia) - outname = "%s_%.*f" % (isolated_obj.options["name"], self.decimals, float(tool_dia)) - - if passes > 1: - iso_name = outname + "_iso" + str(i + 1) - if iso_t == 0: - iso_name = outname + "_ext_iso" + str(i + 1) - elif iso_t == 1: - iso_name = outname + "_int_iso" + str(i + 1) - else: - iso_name = outname + "_iso" - if iso_t == 0: - iso_name = outname + "_ext_iso" - elif iso_t == 1: - iso_name = outname + "_int_iso" - - # if milling type is climb then the move is counter-clockwise around features - mill_dir = 1 if milling_type == 'cl' else 0 - - iso_geo = self.generate_envelope(iso_offset, mill_dir, geometry=work_geo, env_iso_type=iso_t, - follow=to_follow, nr_passes=i, prog_plot=prog_plot) - if iso_geo == 'fail': - self.app.inform.emit( - '[ERROR_NOTCL] %s' % _("Isolation geometry could not be generated.")) - continue - - # ############################################################ - # ########## AREA SUBTRACTION ################################ - # ############################################################ - if iso_except: - self.app.proc_container.update_view_text(' %s' % _("Subtracting Geo")) - iso_geo = self.area_subtraction(iso_geo) - - if limited_area: - self.app.proc_container.update_view_text(' %s' % _("Intersecting Geo")) - iso_geo = self.area_intersection(iso_geo, intersection_geo=limited_area) - - tool_data.update({ - "name": iso_name, - }) - - def iso_init(geo_obj, fc_obj): - # Propagate options - geo_obj.options["cnctooldia"] = str(tool_dia) - geo_obj.solid_geometry = deepcopy(iso_geo) - - # ############################################################ - # ########## AREA SUBTRACTION ################################ - # ############################################################ - if self.except_cb.get_value(): - self.app.proc_container.update_view_text(' %s' % _("Subtracting Geo")) - geo_obj.solid_geometry = self.area_subtraction(geo_obj.solid_geometry) - - geo_obj.tools = {} - geo_obj.tools['1'] = {} - geo_obj.tools.update({ - '1': { - 'tooldia': float(tool_dia), - 'offset': 'Path', - 'offset_value': 0.0, - 'type': _('Rough'), - 'tool_type': tool_type, - 'data': tool_data, - 'solid_geometry': geo_obj.solid_geometry - } - }) - - # detect if solid_geometry is empty and this require list flattening which is "heavy" - # or just looking in the lists (they are one level depth) and if any is not empty - # proceed with object creation, if there are empty and the number of them is the length - # of the list then we have an empty solid_geometry which should raise a Custom Exception - empty_cnt = 0 - if not isinstance(geo_obj.solid_geometry, list): - geo_obj.solid_geometry = [geo_obj.solid_geometry] - - for g in geo_obj.solid_geometry: - if g: - break - else: - empty_cnt += 1 - - if empty_cnt == len(geo_obj.solid_geometry): - fc_obj.inform.emit('[ERROR_NOTCL] %s: %s' % ( - _("Empty Geometry in"), geo_obj.options["name"])) - return 'fail' - else: - fc_obj.inform.emit('[success] %s: %s' % - (_("Isolation geometry created"), geo_obj.options["name"])) - geo_obj.multigeo = False - - self.app.app_obj.new_object("geometry", iso_name, iso_init, plot=plot) - - # clean the progressive plotted shapes if it was used - - if prog_plot == 'progressive': - self.temp_shapes.clear(update=True) - - # Switch notebook to Selected page - self.app.ui.notebook.setCurrentWidget(self.app.ui.selected_tab) - - def combined_rest(self, iso_obj, iso2geo, tools_storage, lim_area, plot=True): - """ - Isolate the provided Gerber object using "rest machining" strategy - - :param iso_obj: the isolated Gerber object - :type iso_obj: AppObjects.FlatCAMGerber.GerberObject - :param iso2geo: specific geometry to isolate - :type iso2geo: list of Shapely Polygon - :param tools_storage: a dictionary that holds the tools and geometry - :type tools_storage: dict - :param lim_area: if not None restrict isolation to this area - :type lim_area: Shapely Polygon or a list of them - :param plot: if to plot the resulting geometry object - :type plot: bool - :return: Isolated solid geometry - :rtype: - """ - - log.debug("ToolIsolation.combine_rest()") - - total_solid_geometry = [] - - iso_name = iso_obj.options["name"] + '_iso_rest' - work_geo = iso_obj.solid_geometry if iso2geo is None else iso2geo - - sorted_tools = [] - for k, v in self.iso_tools.items(): - sorted_tools.append(float('%.*f' % (self.decimals, float(v['tooldia'])))) - - order = self.order_radio.get_value() - if order == 'fwd': - sorted_tools.sort(reverse=False) - elif order == 'rev': - sorted_tools.sort(reverse=True) - else: - pass - - # decide to use "progressive" or "normal" plotting - prog_plot = self.app.defaults["tools_iso_plotting"] - - for sorted_tool in sorted_tools: - for tool in tools_storage: - if float('%.*f' % (self.decimals, tools_storage[tool]['tooldia'])) == sorted_tool: - - tool_dia = tools_storage[tool]['tooldia'] - tool_type = tools_storage[tool]['tool_type'] - tool_data = tools_storage[tool]['data'] - - iso_t = { - 'ext': 0, - 'int': 1, - 'full': 2 - }[tool_data['tools_iso_isotype']] - - passes = tool_data['tools_iso_passes'] - overlap = tool_data['tools_iso_overlap'] - overlap /= 100.0 - - milling_type = tool_data['tools_iso_milling_type'] - # if milling type is climb then the move is counter-clockwise around features - mill_dir = True if milling_type == 'cl' else False - - iso_except = self.except_cb.get_value() - - outname = "%s_%.*f" % (iso_obj.options["name"], self.decimals, float(tool_dia)) - - internal_name = outname + "_iso" - if iso_t == 0: - internal_name = outname + "_ext_iso" - elif iso_t == 1: - internal_name = outname + "_int_iso" - - tool_data.update({ - "name": internal_name, - }) - - solid_geo, work_geo = self.generate_rest_geometry(geometry=work_geo, tooldia=tool_dia, - passes=passes, overlap=overlap, invert=mill_dir, - env_iso_type=iso_t, prog_plot=prog_plot, - prog_plot_handler=self.plot_temp_shapes) - - # ############################################################ - # ########## AREA SUBTRACTION ################################ - # ############################################################ - if iso_except: - self.app.proc_container.update_view_text(' %s' % _("Subtracting Geo")) - solid_geo = self.area_subtraction(solid_geo) - - if lim_area: - self.app.proc_container.update_view_text(' %s' % _("Intersecting Geo")) - solid_geo = self.area_intersection(solid_geo, intersection_geo=lim_area) - - tools_storage.update({ - tool: { - 'tooldia': float(tool_dia), - 'offset': 'Path', - 'offset_value': 0.0, - 'type': _('Rough'), - 'tool_type': tool_type, - 'data': tool_data, - 'solid_geometry': deepcopy(solid_geo) - } - }) - - total_solid_geometry += solid_geo - - # if the geometry is all isolated - if not work_geo: - break - - # clean the progressive plotted shapes if it was used - if self.app.defaults["tools_iso_plotting"] == 'progressive': - self.temp_shapes.clear(update=True) - - def iso_init(geo_obj, app_obj): - geo_obj.options["cnctooldia"] = str(tool_dia) - - geo_obj.tools = dict(tools_storage) - geo_obj.solid_geometry = total_solid_geometry - # even if combine is checked, one pass is still single-geo - - # remove the tools that have no geometry - for geo_tool in list(geo_obj.tools.keys()): - if not geo_obj.tools[geo_tool]['solid_geometry']: - geo_obj.tools.pop(geo_tool, None) - - if len(tools_storage) > 1: - geo_obj.multigeo = True - else: - for ky in tools_storage.keys(): - passes_no = float(tools_storage[ky]['data']['tools_iso_passes']) - geo_obj.multigeo = True if passes_no > 1 else False - break - - # detect if solid_geometry is empty and this require list flattening which is "heavy" - # or just looking in the lists (they are one level depth) and if any is not empty - # proceed with object creation, if there are empty and the number of them is the length - # of the list then we have an empty solid_geometry which should raise a Custom Exception - empty_cnt = 0 - if not isinstance(geo_obj.solid_geometry, list) and \ - not isinstance(geo_obj.solid_geometry, MultiPolygon): - geo_obj.solid_geometry = [geo_obj.solid_geometry] - - for g in geo_obj.solid_geometry: - if g: - break - else: - empty_cnt += 1 - - if empty_cnt == len(geo_obj.solid_geometry): - app_obj.inform.emit('[ERROR_NOTCL] %s: %s' % (_("Empty Geometry in"), geo_obj.options["name"])) - return 'fail' - else: - app_obj.inform.emit('[success] %s: %s' % (_("Isolation geometry created"), geo_obj.options["name"])) - - self.app.app_obj.new_object("geometry", iso_name, iso_init, plot=plot) - - # the tools are finished but the isolation is not finished therefore it failed - if work_geo: - self.app.inform.emit("[WARNING] %s" % _("Partial failure. The geometry was processed with all tools.\n" - "But there are still not-isolated geometry elements. " - "Try to include a tool with smaller diameter.")) - self.app.shell_message(msg=_("The following are coordinates for the copper features " - "that could not be isolated:")) - msg = '' - for geo in work_geo: - pt = geo.representative_point() - coords = '(%s, %s), ' % (str(pt.x), str(pt.y)) - msg += coords - self.app.shell_message(msg=msg) - - def combined_normal(self, iso_obj, iso2geo, tools_storage, lim_area, plot=True): - """ - - :param iso_obj: the isolated Gerber object - :type iso_obj: AppObjects.FlatCAMGerber.GerberObject - :param iso2geo: specific geometry to isolate - :type iso2geo: list of Shapely Polygon - :param tools_storage: a dictionary that holds the tools and geometry - :type tools_storage: dict - :param lim_area: if not None restrict isolation to this area - :type lim_area: Shapely Polygon or a list of them - :param plot: if to plot the resulting geometry object - :type plot: bool - :return: Isolated solid geometry - :rtype: - """ - log.debug("ToolIsolation.combined_normal()") - - total_solid_geometry = [] - - iso_name = iso_obj.options["name"] + '_iso_combined' - geometry = iso2geo - prog_plot = self.app.defaults["tools_iso_plotting"] - - for tool in tools_storage: - tool_dia = tools_storage[tool]['tooldia'] - tool_type = tools_storage[tool]['tool_type'] - tool_data = tools_storage[tool]['data'] - - to_follow = tool_data['tools_iso_follow'] - - # TODO what to do when the iso2geo param is not None but the Follow cb is checked - # for the case when limited area is used .... the follow geo should be clipped too - work_geo = geometry - if work_geo is None: - work_geo = iso_obj.follow_geometry if to_follow else iso_obj.solid_geometry - - iso_t = { - 'ext': 0, - 'int': 1, - 'full': 2 - }[tool_data['tools_iso_isotype']] - - passes = tool_data['tools_iso_passes'] - overlap = tool_data['tools_iso_overlap'] - overlap /= 100.0 - - milling_type = tool_data['tools_iso_milling_type'] - - iso_except = self.except_cb.get_value() - - outname = "%s_%.*f" % (iso_obj.options["name"], self.decimals, float(tool_dia)) - - internal_name = outname + "_iso" - if iso_t == 0: - internal_name = outname + "_ext_iso" - elif iso_t == 1: - internal_name = outname + "_int_iso" - - tool_data.update({ - "name": internal_name, - }) - - solid_geo = [] - for nr_pass in range(passes): - iso_offset = tool_dia * ((2 * nr_pass + 1) / 2.0000001) - (nr_pass * overlap * tool_dia) - - # if milling type is climb then the move is counter-clockwise around features - mill_dir = 1 if milling_type == 'cl' else 0 - - iso_geo = self.generate_envelope(iso_offset, mill_dir, geometry=work_geo, env_iso_type=iso_t, - follow=to_follow, nr_passes=nr_pass, prog_plot=prog_plot) - if iso_geo == 'fail': - self.app.inform.emit('[ERROR_NOTCL] %s' % _("Isolation geometry could not be generated.")) - continue - try: - for geo in iso_geo: - solid_geo.append(geo) - except TypeError: - solid_geo.append(iso_geo) - - # ############################################################ - # ########## AREA SUBTRACTION ################################ - # ############################################################ - if iso_except: - self.app.proc_container.update_view_text(' %s' % _("Subtracting Geo")) - solid_geo = self.area_subtraction(solid_geo) - - if lim_area: - self.app.proc_container.update_view_text(' %s' % _("Intersecting Geo")) - solid_geo = self.area_intersection(solid_geo, intersection_geo=lim_area) - - tools_storage.update({ - tool: { - 'tooldia': float(tool_dia), - 'offset': 'Path', - 'offset_value': 0.0, - 'type': _('Rough'), - 'tool_type': tool_type, - 'data': tool_data, - 'solid_geometry': deepcopy(solid_geo) - } - }) - - total_solid_geometry += solid_geo - - # clean the progressive plotted shapes if it was used - if prog_plot == 'progressive': - self.temp_shapes.clear(update=True) - - def iso_init(geo_obj, app_obj): - geo_obj.options["cnctooldia"] = str(tool_dia) - - geo_obj.tools = dict(tools_storage) - geo_obj.solid_geometry = total_solid_geometry - # even if combine is checked, one pass is still single-geo - - if len(tools_storage) > 1: - geo_obj.multigeo = True - else: - if to_follow: - geo_obj.multigeo = False - else: - passes_no = 1 - for ky in tools_storage.keys(): - passes_no = float(tools_storage[ky]['data']['tools_iso_passes']) - geo_obj.multigeo = True if passes_no > 1 else False - break - geo_obj.multigeo = True if passes_no > 1 else False - - # detect if solid_geometry is empty and this require list flattening which is "heavy" - # or just looking in the lists (they are one level depth) and if any is not empty - # proceed with object creation, if there are empty and the number of them is the length - # of the list then we have an empty solid_geometry which should raise a Custom Exception - empty_cnt = 0 - if not isinstance(geo_obj.solid_geometry, list) and \ - not isinstance(geo_obj.solid_geometry, MultiPolygon): - geo_obj.solid_geometry = [geo_obj.solid_geometry] - - for g in geo_obj.solid_geometry: - if g: - break - else: - empty_cnt += 1 - - if empty_cnt == len(geo_obj.solid_geometry): - app_obj.inform.emit('[ERROR_NOTCL] %s: %s' % (_("Empty Geometry in"), geo_obj.options["name"])) - return 'fail' - else: - app_obj.inform.emit('[success] %s: %s' % (_("Isolation geometry created"), geo_obj.options["name"])) - - self.app.app_obj.new_object("geometry", iso_name, iso_init, plot=plot) - - def area_subtraction(self, geo, subtraction_geo=None): - """ - Subtracts the subtraction_geo (if present else self.solid_geometry) from the geo - - :param geo: target geometry from which to subtract - :param subtraction_geo: geometry that acts as subtraction geo - :return: - """ - new_geometry = [] - target_geo = geo - - if subtraction_geo: - sub_union = cascaded_union(subtraction_geo) - else: - name = self.exc_obj_combo.currentText() - subtractor_obj = self.app.collection.get_by_name(name) - sub_union = cascaded_union(subtractor_obj.solid_geometry) - - try: - for geo_elem in target_geo: - if isinstance(geo_elem, Polygon): - for ring in self.poly2rings(geo_elem): - new_geo = ring.difference(sub_union) - if new_geo and not new_geo.is_empty: - new_geometry.append(new_geo) - elif isinstance(geo_elem, MultiPolygon): - for poly in geo_elem: - for ring in self.poly2rings(poly): - new_geo = ring.difference(sub_union) - if new_geo and not new_geo.is_empty: - new_geometry.append(new_geo) - elif isinstance(geo_elem, LineString) or isinstance(geo_elem, LinearRing): - new_geo = geo_elem.difference(sub_union) - if new_geo: - if not new_geo.is_empty: - new_geometry.append(new_geo) - elif isinstance(geo_elem, MultiLineString): - for line_elem in geo_elem: - new_geo = line_elem.difference(sub_union) - if new_geo and not new_geo.is_empty: - new_geometry.append(new_geo) - except TypeError: - if isinstance(target_geo, Polygon): - for ring in self.poly2rings(target_geo): - new_geo = ring.difference(sub_union) - if new_geo: - if not new_geo.is_empty: - new_geometry.append(new_geo) - elif isinstance(target_geo, LineString) or isinstance(target_geo, LinearRing): - new_geo = target_geo.difference(sub_union) - if new_geo and not new_geo.is_empty: - new_geometry.append(new_geo) - elif isinstance(target_geo, MultiLineString): - for line_elem in target_geo: - new_geo = line_elem.difference(sub_union) - if new_geo and not new_geo.is_empty: - new_geometry.append(new_geo) - return new_geometry - - def area_intersection(self, geo, intersection_geo=None): - """ - Return the intersection geometry between geo and intersection_geo - - :param geo: target geometry - :param intersection_geo: second geometry - :return: - """ - new_geometry = [] - target_geo = geo - - intersect_union = cascaded_union(intersection_geo) - - try: - for geo_elem in target_geo: - if isinstance(geo_elem, Polygon): - for ring in self.poly2rings(geo_elem): - new_geo = ring.intersection(intersect_union) - if new_geo and not new_geo.is_empty: - new_geometry.append(new_geo) - elif isinstance(geo_elem, MultiPolygon): - for poly in geo_elem: - for ring in self.poly2rings(poly): - new_geo = ring.intersection(intersect_union) - if new_geo and not new_geo.is_empty: - new_geometry.append(new_geo) - elif isinstance(geo_elem, LineString) or isinstance(geo_elem, LinearRing): - new_geo = geo_elem.intersection(intersect_union) - if new_geo: - if not new_geo.is_empty: - new_geometry.append(new_geo) - elif isinstance(geo_elem, MultiLineString): - for line_elem in geo_elem: - new_geo = line_elem.intersection(intersect_union) - if new_geo and not new_geo.is_empty: - new_geometry.append(new_geo) - except TypeError: - if isinstance(target_geo, Polygon): - for ring in self.poly2rings(target_geo): - new_geo = ring.intersection(intersect_union) - if new_geo: - if not new_geo.is_empty: - new_geometry.append(new_geo) - elif isinstance(target_geo, LineString) or isinstance(target_geo, LinearRing): - new_geo = target_geo.intersection(intersect_union) - if new_geo and not new_geo.is_empty: - new_geometry.append(new_geo) - elif isinstance(target_geo, MultiLineString): - for line_elem in target_geo: - new_geo = line_elem.intersection(intersect_union) - if new_geo and not new_geo.is_empty: - new_geometry.append(new_geo) - return new_geometry - - def on_poly_mouse_click_release(self, event): - if self.app.is_legacy is False: - event_pos = event.pos - right_button = 2 - self.app.event_is_dragging = self.app.event_is_dragging - else: - event_pos = (event.xdata, event.ydata) - right_button = 3 - self.app.event_is_dragging = self.app.ui.popMenu.mouse_is_panning - - try: - x = float(event_pos[0]) - y = float(event_pos[1]) - except TypeError: - return - - event_pos = (x, y) - curr_pos = self.app.plotcanvas.translate_coords(event_pos) - if self.app.grid_status(): - curr_pos = self.app.geo_editor.snap(curr_pos[0], curr_pos[1]) - else: - curr_pos = (curr_pos[0], curr_pos[1]) - - if event.button == 1: - clicked_poly = self.find_polygon(point=(curr_pos[0], curr_pos[1]), geoset=self.grb_obj.solid_geometry) - - if self.app.selection_type is not None: - self.selection_area_handler(self.app.pos, curr_pos, self.app.selection_type) - self.app.selection_type = None - elif clicked_poly: - if clicked_poly not in self.poly_dict.values(): - shape_id = self.app.tool_shapes.add(tolerance=self.drawing_tolerance, layer=0, shape=clicked_poly, - color=self.app.defaults['global_sel_draw_color'] + 'AF', - face_color=self.app.defaults['global_sel_draw_color'] + 'AF', - visible=True) - self.poly_dict[shape_id] = clicked_poly - self.app.inform.emit( - '%s: %d. %s' % (_("Added polygon"), int(len(self.poly_dict)), - _("Click to add next polygon or right click to start isolation.")) - ) - else: - try: - for k, v in list(self.poly_dict.items()): - if v == clicked_poly: - self.app.tool_shapes.remove(k) - self.poly_dict.pop(k) - break - except TypeError: - return - self.app.inform.emit( - '%s. %s' % (_("Removed polygon"), - _("Click to add/remove next polygon or right click to start isolation.")) - ) - - self.app.tool_shapes.redraw() - else: - self.app.inform.emit(_("No polygon detected under click position.")) - elif event.button == right_button and self.app.event_is_dragging is False: - # restore the Grid snapping if it was active before - if self.grid_status_memory is True: - self.app.ui.grid_snap_btn.trigger() - - if self.app.is_legacy is False: - self.app.plotcanvas.graph_event_disconnect('mouse_release', self.on_poly_mouse_click_release) - self.app.plotcanvas.graph_event_disconnect('key_press', self.on_key_pres) - else: - self.app.plotcanvas.graph_event_disconnect(self.mr) - self.app.plotcanvas.graph_event_disconnect(self.kp) - - self.app.mr = self.app.plotcanvas.graph_event_connect('mouse_release', - self.app.on_mouse_click_release_over_plot) - - # disconnect flags - self.poly_sel_disconnect_flag = False - - self.app.tool_shapes.clear(update=True) - - if self.poly_dict: - poly_list = deepcopy(list(self.poly_dict.values())) - self.isolate(isolated_obj=self.grb_obj, geometry=poly_list) - self.poly_dict.clear() - else: - self.app.inform.emit('[ERROR_NOTCL] %s' % _("List of single polygons is empty. Aborting.")) - - def selection_area_handler(self, start_pos, end_pos, sel_type): - """ - :param start_pos: mouse position when the selection LMB click was done - :param end_pos: mouse position when the left mouse button is released - :param sel_type: if True it's a left to right selection (enclosure), if False it's a 'touch' selection - :return: - """ - poly_selection = Polygon([start_pos, (end_pos[0], start_pos[1]), end_pos, (start_pos[0], end_pos[1])]) - - # delete previous selection shape - self.app.delete_selection_shape() - - added_poly_count = 0 - try: - for geo in self.solid_geometry: - if geo not in self.poly_dict.values(): - if sel_type is True: - if geo.within(poly_selection): - shape_id = self.app.tool_shapes.add(tolerance=self.drawing_tolerance, layer=0, - shape=geo, - color=self.app.defaults['global_sel_draw_color'] + 'AF', - face_color=self.app.defaults[ - 'global_sel_draw_color'] + 'AF', - visible=True) - self.poly_dict[shape_id] = geo - added_poly_count += 1 - else: - if poly_selection.intersects(geo): - shape_id = self.app.tool_shapes.add(tolerance=self.drawing_tolerance, layer=0, - shape=geo, - color=self.app.defaults['global_sel_draw_color'] + 'AF', - face_color=self.app.defaults[ - 'global_sel_draw_color'] + 'AF', - visible=True) - self.poly_dict[shape_id] = geo - added_poly_count += 1 - except TypeError: - if self.solid_geometry not in self.poly_dict.values(): - if sel_type is True: - if self.solid_geometry.within(poly_selection): - shape_id = self.app.tool_shapes.add(tolerance=self.drawing_tolerance, layer=0, - shape=self.solid_geometry, - color=self.app.defaults['global_sel_draw_color'] + 'AF', - face_color=self.app.defaults[ - 'global_sel_draw_color'] + 'AF', - visible=True) - self.poly_dict[shape_id] = self.solid_geometry - added_poly_count += 1 - else: - if poly_selection.intersects(self.solid_geometry): - shape_id = self.app.tool_shapes.add(tolerance=self.drawing_tolerance, layer=0, - shape=self.solid_geometry, - color=self.app.defaults['global_sel_draw_color'] + 'AF', - face_color=self.app.defaults[ - 'global_sel_draw_color'] + 'AF', - visible=True) - self.poly_dict[shape_id] = self.solid_geometry - added_poly_count += 1 - - if added_poly_count > 0: - self.app.tool_shapes.redraw() - self.app.inform.emit( - '%s: %d. %s' % (_("Added polygon"), - int(added_poly_count), - _("Click to add next polygon or right click to start isolation.")) - ) - else: - self.app.inform.emit(_("No polygon in selection.")) - - # To be called after clicking on the plot. - def on_mouse_release(self, event): - if self.app.is_legacy is False: - event_pos = event.pos - # event_is_dragging = event.is_dragging - right_button = 2 - else: - event_pos = (event.xdata, event.ydata) - # event_is_dragging = self.app.plotcanvas.is_dragging - right_button = 3 - - event_pos = self.app.plotcanvas.translate_coords(event_pos) - if self.app.grid_status(): - curr_pos = self.app.geo_editor.snap(event_pos[0], event_pos[1]) - else: - curr_pos = (event_pos[0], event_pos[1]) - - x1, y1 = curr_pos[0], curr_pos[1] - - shape_type = self.area_shape_radio.get_value() - - # do clear area only for left mouse clicks - if event.button == 1: - if shape_type == "square": - if self.first_click is False: - self.first_click = True - self.app.inform.emit('[WARNING_NOTCL] %s' % _("Click the end point of the paint area.")) - - self.cursor_pos = self.app.plotcanvas.translate_coords(event_pos) - if self.app.grid_status(): - self.cursor_pos = self.app.geo_editor.snap(event_pos[0], event_pos[1]) - else: - self.app.inform.emit(_("Zone added. Click to start adding next zone or right click to finish.")) - self.app.delete_selection_shape() - - x0, y0 = self.cursor_pos[0], self.cursor_pos[1] - - pt1 = (x0, y0) - pt2 = (x1, y0) - pt3 = (x1, y1) - pt4 = (x0, y1) - - new_rectangle = Polygon([pt1, pt2, pt3, pt4]) - self.sel_rect.append(new_rectangle) - - # add a temporary shape on canvas - self.draw_tool_selection_shape(old_coords=(x0, y0), coords=(x1, y1)) - - self.first_click = False - return - else: - self.points.append((x1, y1)) - - if len(self.points) > 1: - self.poly_drawn = True - self.app.inform.emit(_("Click on next Point or click right mouse button to complete ...")) - - return "" - elif event.button == right_button and self.mouse_is_dragging is False: - - shape_type = self.area_shape_radio.get_value() - - if shape_type == "square": - self.first_click = False - else: - # if we finish to add a polygon - if self.poly_drawn is True: - try: - # try to add the point where we last clicked if it is not already in the self.points - last_pt = (x1, y1) - if last_pt != self.points[-1]: - self.points.append(last_pt) - except IndexError: - pass - - # we need to add a Polygon and a Polygon can be made only from at least 3 points - if len(self.points) > 2: - self.delete_moving_selection_shape() - pol = Polygon(self.points) - # do not add invalid polygons even if they are drawn by utility geometry - if pol.is_valid: - self.sel_rect.append(pol) - self.draw_selection_shape_polygon(points=self.points) - self.app.inform.emit( - _("Zone added. Click to start adding next zone or right click to finish.")) - - self.points = [] - self.poly_drawn = False - return - - self.delete_tool_selection_shape() - - if self.app.is_legacy is False: - self.app.plotcanvas.graph_event_disconnect('mouse_release', self.on_mouse_release) - self.app.plotcanvas.graph_event_disconnect('mouse_move', self.on_mouse_move) - self.app.plotcanvas.graph_event_disconnect('key_press', self.on_key_press) - else: - self.app.plotcanvas.graph_event_disconnect(self.mr) - self.app.plotcanvas.graph_event_disconnect(self.mm) - self.app.plotcanvas.graph_event_disconnect(self.kp) - - self.app.mp = self.app.plotcanvas.graph_event_connect('mouse_press', - self.app.on_mouse_click_over_plot) - self.app.mm = self.app.plotcanvas.graph_event_connect('mouse_move', - self.app.on_mouse_move_over_plot) - self.app.mr = self.app.plotcanvas.graph_event_connect('mouse_release', - self.app.on_mouse_click_release_over_plot) - - # disconnect flags - self.area_sel_disconnect_flag = False - - if len(self.sel_rect) == 0: - return - - self.sel_rect = cascaded_union(self.sel_rect) - self.isolate(isolated_obj=self.grb_obj, limited_area=self.sel_rect, plot=True) - self.sel_rect = [] - - # called on mouse move - def on_mouse_move(self, event): - shape_type = self.area_shape_radio.get_value() - - if self.app.is_legacy is False: - event_pos = event.pos - event_is_dragging = event.is_dragging - # right_button = 2 - else: - event_pos = (event.xdata, event.ydata) - event_is_dragging = self.app.plotcanvas.is_dragging - # right_button = 3 - - curr_pos = self.app.plotcanvas.translate_coords(event_pos) - - # detect mouse dragging motion - if event_is_dragging is True: - self.mouse_is_dragging = True - else: - self.mouse_is_dragging = False - - # update the cursor position - if self.app.grid_status(): - # Update cursor - curr_pos = self.app.geo_editor.snap(curr_pos[0], curr_pos[1]) - - self.app.app_cursor.set_data(np.asarray([(curr_pos[0], curr_pos[1])]), - symbol='++', edge_color=self.app.cursor_color_3D, - edge_width=self.app.defaults["global_cursor_width"], - size=self.app.defaults["global_cursor_size"]) - - if self.cursor_pos is None: - self.cursor_pos = (0, 0) - - self.app.dx = curr_pos[0] - float(self.cursor_pos[0]) - self.app.dy = curr_pos[1] - float(self.cursor_pos[1]) - - # # update the positions on status bar - self.app.ui.position_label.setText(" X: %.4f   " - "Y: %.4f " % (curr_pos[0], curr_pos[1])) - # self.app.ui.rel_position_label.setText("Dx: %.4f   Dy: " - # "%.4f    " % (self.app.dx, self.app.dy)) - - units = self.app.defaults["units"].lower() - self.app.plotcanvas.text_hud.text = \ - 'Dx:\t{:<.4f} [{:s}]\nDy:\t{:<.4f} [{:s}]\n\nX: \t{:<.4f} [{:s}]\nY: \t{:<.4f} [{:s}]'.format( - self.app.dx, units, self.app.dy, units, curr_pos[0], units, curr_pos[1], units) - - # draw the utility geometry - if shape_type == "square": - if self.first_click: - self.app.delete_selection_shape() - self.app.draw_moving_selection_shape(old_coords=(self.cursor_pos[0], self.cursor_pos[1]), - coords=(curr_pos[0], curr_pos[1])) - else: - self.delete_moving_selection_shape() - self.draw_moving_selection_shape_poly(points=self.points, data=(curr_pos[0], curr_pos[1])) - - def on_key_press(self, event): - # modifiers = QtWidgets.QApplication.keyboardModifiers() - # matplotlib_key_flag = False - - # events out of the self.app.collection view (it's about Project Tab) are of type int - if type(event) is int: - key = event - # events from the GUI are of type QKeyEvent - elif type(event) == QtGui.QKeyEvent: - key = event.key() - elif isinstance(event, mpl_key_event): # MatPlotLib key events are trickier to interpret than the rest - # matplotlib_key_flag = True - - key = event.key - key = QtGui.QKeySequence(key) - - # check for modifiers - key_string = key.toString().lower() - if '+' in key_string: - mod, __, key_text = key_string.rpartition('+') - if mod.lower() == 'ctrl': - # modifiers = QtCore.Qt.ControlModifier - pass - elif mod.lower() == 'alt': - # modifiers = QtCore.Qt.AltModifier - pass - elif mod.lower() == 'shift': - # modifiers = QtCore.Qt.ShiftModifier - pass - else: - # modifiers = QtCore.Qt.NoModifier - pass - key = QtGui.QKeySequence(key_text) - - # events from Vispy are of type KeyEvent - else: - key = event.key - - if key == QtCore.Qt.Key_Escape or key == 'Escape': - - if self.area_sel_disconnect_flag is True: - if self.app.is_legacy is False: - self.app.plotcanvas.graph_event_disconnect('mouse_release', self.on_mouse_release) - self.app.plotcanvas.graph_event_disconnect('mouse_move', self.on_mouse_move) - self.app.plotcanvas.graph_event_disconnect('key_press', self.on_key_press) - else: - self.app.plotcanvas.graph_event_disconnect(self.mr) - self.app.plotcanvas.graph_event_disconnect(self.mm) - self.app.plotcanvas.graph_event_disconnect(self.kp) - - self.app.mp = self.app.plotcanvas.graph_event_connect('mouse_press', - self.app.on_mouse_click_over_plot) - self.app.mm = self.app.plotcanvas.graph_event_connect('mouse_move', - self.app.on_mouse_move_over_plot) - self.app.mr = self.app.plotcanvas.graph_event_connect('mouse_release', - self.app.on_mouse_click_release_over_plot) - - if self.poly_sel_disconnect_flag is False: - # restore the Grid snapping if it was active before - if self.grid_status_memory is True: - self.app.ui.grid_snap_btn.trigger() - - if self.app.is_legacy is False: - self.app.plotcanvas.graph_event_disconnect('mouse_release', self.on_poly_mouse_click_release) - self.app.plotcanvas.graph_event_disconnect('key_press', self.on_key_pres) - else: - self.app.plotcanvas.graph_event_disconnect(self.mr) - self.app.plotcanvas.graph_event_disconnect(self.kp) - - self.app.mr = self.app.plotcanvas.graph_event_connect('mouse_release', - self.app.on_mouse_click_release_over_plot) - - self.points = [] - self.poly_drawn = False - self.delete_moving_selection_shape() - self.delete_tool_selection_shape() - - @staticmethod - def poly2rings(poly): - return [poly.exterior] + [interior for interior in poly.interiors] - - @staticmethod - def poly2ext(poly): - return [poly.exterior] - - @staticmethod - def poly2ints(poly): - return [interior for interior in poly.interiors] - - def generate_envelope(self, offset, invert, geometry=None, env_iso_type=2, follow=None, nr_passes=0, - prog_plot=False): - """ - Isolation_geometry produces an envelope that is going on the left of the geometry - (the copper features). To leave the least amount of burrs on the features - the tool needs to travel on the right side of the features (this is called conventional milling) - the first pass is the one cutting all of the features, so it needs to be reversed - the other passes overlap preceding ones and cut the left over copper. It is better for them - to cut on the right side of the left over copper i.e on the left side of the features. - - :param offset: Offset distance to be passed to the obj.isolation_geometry() method - :type offset: float - :param invert: If to invert the direction of geometry (CW to CCW or reverse) - :type invert: int - :param geometry: Shapely Geometry for which t ogenerate envelope - :type geometry: - :param env_iso_type: type of isolation, can be 0 = exteriors or 1 = interiors or 2 = both (complete) - :type env_iso_type: int - :param follow: If the kind of isolation is a "follow" one - :type follow: bool - :param nr_passes: Number of passes - :type nr_passes: int - :param prog_plot: Type of plotting: "normal" or "progressive" - :type prog_plot: str - :return: The buffered geometry - :rtype: MultiPolygon or Polygon - """ - - if follow: - geom = self.grb_obj.isolation_geometry(offset, geometry=geometry, follow=follow, prog_plot=prog_plot) - return geom - else: - try: - geom = self.grb_obj.isolation_geometry(offset, geometry=geometry, iso_type=env_iso_type, - passes=nr_passes, prog_plot=prog_plot) - except Exception as e: - log.debug('ToolIsolation.generate_envelope() --> %s' % str(e)) - return 'fail' - - if invert: - try: - pl = [] - for p in geom: - if p is not None: - if isinstance(p, Polygon): - pl.append(Polygon(p.exterior.coords[::-1], p.interiors)) - elif isinstance(p, LinearRing): - pl.append(Polygon(p.coords[::-1])) - geom = MultiPolygon(pl) - except TypeError: - if isinstance(geom, Polygon) and geom is not None: - geom = Polygon(geom.exterior.coords[::-1], geom.interiors) - elif isinstance(geom, LinearRing) and geom is not None: - geom = Polygon(geom.coords[::-1]) - else: - log.debug("ToolIsolation.generate_envelope() Error --> Unexpected Geometry %s" % - type(geom)) - except Exception as e: - log.debug("ToolIsolation.generate_envelope() Error --> %s" % str(e)) - return 'fail' - return geom - - @staticmethod - def generate_rest_geometry(geometry, tooldia, passes, overlap, invert, env_iso_type=2, - prog_plot="normal", prog_plot_handler=None): - """ - Will try to isolate the geometry and return a tuple made of list of paths made through isolation - and a list of Shapely Polygons that could not be isolated - - :param geometry: A list of Shapely Polygons to be isolated - :type geometry: list - :param tooldia: The tool diameter used to do the isolation - :type tooldia: float - :param passes: Number of passes that will made the isolation - :type passes: int - :param overlap: How much to overlap the previous pass; in percentage [0.00, 99.99]% - :type overlap: float - :param invert: If to invert the direction of the resulting isolated geometries - :type invert: bool - :param env_iso_type: can be either 0 = keep exteriors or 1 = keep interiors or 2 = keep all paths - :type env_iso_type: int - :param prog_plot: kind of plotting: "progressive" or "normal" - :type prog_plot: str - :param prog_plot_handler: method used to plot shapes if plot_prog is "proggressive" - :type prog_plot_handler: - :return: Tuple made from list of isolating paths and list of not isolated Polygons - :rtype: tuple - """ - - isolated_geo = [] - not_isolated_geo = [] - - work_geo = [] - - for idx, geo in enumerate(geometry): - good_pass_iso = [] - start_idx = idx + 1 - - for nr_pass in range(passes): - iso_offset = tooldia * ((2 * nr_pass + 1) / 2.0) - (nr_pass * overlap * tooldia) - buf_chek = iso_offset * 2 - check_geo = geo.buffer(buf_chek) - - intersect_flag = False - # find if current pass for current geo is valid (no intersection with other geos)) - for geo_search_idx in range(idx): - if check_geo.intersects(geometry[geo_search_idx]): - intersect_flag = True - break - - if intersect_flag is False: - for geo_search_idx in range(start_idx, len(geometry)): - if check_geo.intersects(geometry[geo_search_idx]): - intersect_flag = True - break - - # if we had an intersection do nothing, else add the geo to the good pass isolations - if intersect_flag is False: - temp_geo = geo.buffer(iso_offset) - good_pass_iso.append(temp_geo) - if prog_plot == 'progressive': - prog_plot_handler(temp_geo) - - if good_pass_iso: - work_geo += good_pass_iso - else: - not_isolated_geo.append(geo) - - if invert: - try: - pl = [] - for p in work_geo: - if p is not None: - if isinstance(p, Polygon): - pl.append(Polygon(p.exterior.coords[::-1], p.interiors)) - elif isinstance(p, LinearRing): - pl.append(Polygon(p.coords[::-1])) - work_geo = MultiPolygon(pl) - except TypeError: - if isinstance(work_geo, Polygon) and work_geo is not None: - work_geo = [Polygon(work_geo.exterior.coords[::-1], work_geo.interiors)] - elif isinstance(work_geo, LinearRing) and work_geo is not None: - work_geo = [Polygon(work_geo.coords[::-1])] - else: - log.debug("ToolIsolation.generate_rest_geometry() Error --> Unexpected Geometry %s" % - type(work_geo)) - except Exception as e: - log.debug("ToolIsolation.generate_rest_geometry() Error --> %s" % str(e)) - return 'fail', 'fail' - - if env_iso_type == 0: # exterior - for geo in work_geo: - isolated_geo.append(geo.exterior) - elif env_iso_type == 1: # interiors - for geo in work_geo: - isolated_geo += [interior for interior in geo.interiors] - else: # exterior + interiors - for geo in work_geo: - isolated_geo += [geo.exterior] + [interior for interior in geo.interiors] - - return isolated_geo, not_isolated_geo - - def on_iso_tool_add_from_db_executed(self, tool): - """ - Here add the tool from DB in the selected geometry object - :return: - """ - tool_from_db = deepcopy(tool) - - res = self.on_tool_from_db_inserted(tool=tool_from_db) - - for idx in range(self.app.ui.plot_tab_area.count()): - if self.app.ui.plot_tab_area.tabText(idx) == _("Tools Database"): - wdg = self.app.ui.plot_tab_area.widget(idx) - wdg.deleteLater() - self.app.ui.plot_tab_area.removeTab(idx) - - if res == 'fail': - return - self.app.inform.emit('[success] %s' % _("Tool from DB added in Tool Table.")) - - # select last tool added - toolid = res - for row in range(self.tools_table.rowCount()): - if int(self.tools_table.item(row, 3).text()) == toolid: - self.tools_table.selectRow(row) - self.on_row_selection_change() - - def on_tool_from_db_inserted(self, tool): - """ - Called from the Tools DB object through a App method when adding a tool from Tools Database - :param tool: a dict with the tool data - :return: None - """ - - self.ui_disconnect() - self.units = self.app.defaults['units'].upper() - - tooldia = float(tool['tooldia']) - - # construct a list of all 'tooluid' in the self.tools - tool_uid_list = [] - for tooluid_key in self.iso_tools: - tool_uid_item = int(tooluid_key) - tool_uid_list.append(tool_uid_item) - - # find maximum from the temp_uid, add 1 and this is the new 'tooluid' - if not tool_uid_list: - max_uid = 0 - else: - max_uid = max(tool_uid_list) - tooluid = max_uid + 1 - - tooldia = float('%.*f' % (self.decimals, tooldia)) - - tool_dias = [] - for k, v in self.iso_tools.items(): - for tool_v in v.keys(): - if tool_v == 'tooldia': - tool_dias.append(float('%.*f' % (self.decimals, (v[tool_v])))) - - if float('%.*f' % (self.decimals, tooldia)) in tool_dias: - self.app.inform.emit('[WARNING_NOTCL] %s' % _("Cancelled. Tool already in Tool Table.")) - self.ui_connect() - return 'fail' - - self.iso_tools.update({ - tooluid: { - 'tooldia': float('%.*f' % (self.decimals, tooldia)), - 'offset': tool['offset'], - 'offset_value': tool['offset_value'], - 'type': tool['type'], - 'tool_type': tool['tool_type'], - 'data': deepcopy(tool['data']), - 'solid_geometry': [] - } - }) - - self.iso_tools[tooluid]['data']['name'] = '_iso' - - self.app.inform.emit('[success] %s' % _("New tool added to Tool Table.")) - - self.ui_connect() - self.build_ui() - - # if self.tools_table.rowCount() != 0: - # self.param_frame.setDisabled(False) - - def on_tool_add_from_db_clicked(self): - """ - Called when the user wants to add a new tool from Tools Database. It will create the Tools Database object - and display the Tools Database tab in the form needed for the Tool adding - :return: None - """ - - # if the Tools Database is already opened focus on it - for idx in range(self.app.ui.plot_tab_area.count()): - if self.app.ui.plot_tab_area.tabText(idx) == _("Tools Database"): - self.app.ui.plot_tab_area.setCurrentWidget(self.app.tools_db_tab) - break - self.app.on_tools_database(source='iso') - self.app.tools_db_tab.ok_to_add = True - self.app.tools_db_tab.buttons_frame.hide() - self.app.tools_db_tab.add_tool_from_db.show() - self.app.tools_db_tab.cancel_tool_from_db.show() - - def reset_fields(self): - self.object_combo.setRootModelIndex(self.app.collection.index(0, 0, QtCore.QModelIndex())) - - def reset_usage(self): - self.obj_name = "" - self.grb_obj = None - - self.first_click = False - self.cursor_pos = None - self.mouse_is_dragging = False - - prog_plot = True if self.app.defaults["tools_iso_plotting"] == 'progressive' else False - if prog_plot: - self.temp_shapes.clear(update=True) - - self.sel_rect = [] diff --git a/AppTools/ToolPDF.py b/AppTools/ToolPDF.py deleted file mode 100644 index 59f4f7a6..00000000 --- a/AppTools/ToolPDF.py +++ /dev/null @@ -1,361 +0,0 @@ -# ########################################################## -# FlatCAM: 2D Post-processing for Manufacturing # -# File Author: Marius Adrian Stanciu (c) # -# Date: 4/23/2019 # -# MIT Licence # -# ########################################################## - -from PyQt5 import QtWidgets, QtCore - -from AppTool import AppTool - -from AppParsers.ParsePDF import PdfParser, grace -from shapely.geometry import Point, MultiPolygon -from shapely.ops import unary_union - -from copy import deepcopy - -import zlib -import re -import time -import logging -import traceback - -import gettext -import AppTranslation as fcTranslate -import builtins - -fcTranslate.apply_language('strings') -if '_' not in builtins.__dict__: - _ = gettext.gettext - -log = logging.getLogger('base') - - -class ToolPDF(AppTool): - """ - Parse a PDF file. - Reference here: https://www.adobe.com/content/dam/acom/en/devnet/pdf/pdfs/pdf_reference_archives/PDFReference.pdf - Return a list of geometries - """ - toolName = _("PDF Import Tool") - - def __init__(self, app): - AppTool.__init__(self, app) - self.app = app - self.decimals = self.app.decimals - - self.stream_re = re.compile(b'.*?FlateDecode.*?stream(.*?)endstream', re.S) - - self.pdf_decompressed = {} - - # key = file name and extension - # value is a dict to store the parsed content of the PDF - self.pdf_parsed = {} - - # QTimer for periodic check - self.check_thread = QtCore.QTimer() - - # Every time a parser is started we add a promise; every time a parser finished we remove a promise - # when empty we start the layer rendering - self.parsing_promises = [] - - self.parser = PdfParser(app=self.app) - - def run(self, toggle=True): - self.app.defaults.report_usage("ToolPDF()") - - self.set_tool_ui() - self.on_open_pdf_click() - - def install(self, icon=None, separator=None, **kwargs): - AppTool.install(self, icon, separator, shortcut='Ctrl+Q', **kwargs) - - def set_tool_ui(self): - pass - - def on_open_pdf_click(self): - """ - File menu callback for opening an PDF file. - - :return: None - """ - - self.app.defaults.report_usage("ToolPDF.on_open_pdf_click()") - self.app.log.debug("ToolPDF.on_open_pdf_click()") - - _filter_ = "Adobe PDF Files (*.pdf);;" \ - "All Files (*.*)" - - try: - filenames, _f = QtWidgets.QFileDialog.getOpenFileNames(caption=_("Open PDF"), - directory=self.app.get_last_folder(), - filter=_filter_) - except TypeError: - filenames, _f = QtWidgets.QFileDialog.getOpenFileNames(caption=_("Open PDF"), filter=_filter_) - - if len(filenames) == 0: - self.app.inform.emit('[WARNING_NOTCL] %s.' % _("Open PDF cancelled")) - else: - # start the parsing timer with a period of 1 second - self.periodic_check(1000) - - for filename in filenames: - if filename != '': - self.app.worker_task.emit({'fcn': self.open_pdf, - 'params': [filename]}) - - def open_pdf(self, filename): - short_name = filename.split('/')[-1].split('\\')[-1] - self.parsing_promises.append(short_name) - - self.pdf_parsed[short_name] = {} - self.pdf_parsed[short_name]['pdf'] = {} - self.pdf_parsed[short_name]['filename'] = filename - - self.pdf_decompressed[short_name] = '' - - if self.app.abort_flag: - # graceful abort requested by the user - raise grace - - with self.app.proc_container.new(_("Parsing PDF file ...")): - with open(filename, "rb") as f: - pdf = f.read() - - stream_nr = 0 - for s in re.findall(self.stream_re, pdf): - if self.app.abort_flag: - # graceful abort requested by the user - raise grace - - stream_nr += 1 - log.debug("PDF STREAM: %d\n" % stream_nr) - s = s.strip(b'\r\n') - try: - self.pdf_decompressed[short_name] += (zlib.decompress(s).decode('UTF-8') + '\r\n') - except Exception as e: - self.app.inform.emit('[ERROR_NOTCL] %s: %s\n%s' % (_("Failed to open"), str(filename), str(e))) - log.debug("ToolPDF.open_pdf().obj_init() --> %s" % str(e)) - return - - self.pdf_parsed[short_name]['pdf'] = self.parser.parse_pdf(pdf_content=self.pdf_decompressed[short_name]) - # we used it, now we delete it - self.pdf_decompressed[short_name] = '' - - # removal from list is done in a multithreaded way therefore not always the removal can be done - # try to remove until it's done - try: - while True: - self.parsing_promises.remove(short_name) - time.sleep(0.1) - except Exception as e: - log.debug("ToolPDF.open_pdf() --> %s" % str(e)) - self.app.inform.emit('[success] %s: %s' % (_("Opened"), str(filename))) - - def layer_rendering_as_excellon(self, filename, ap_dict, layer_nr): - outname = filename.split('/')[-1].split('\\')[-1] + "_%s" % str(layer_nr) - - # store the points here until reconstitution: - # keys are diameters and values are list of (x,y) coords - points = {} - - def obj_init(exc_obj, app_obj): - clear_geo = [geo_el['clear'] for geo_el in ap_dict['0']['geometry']] - - for geo in clear_geo: - xmin, ymin, xmax, ymax = geo.bounds - center = (((xmax - xmin) / 2) + xmin, ((ymax - ymin) / 2) + ymin) - - # for drill bits, even in INCH, it's enough 3 decimals - correction_factor = 0.974 - dia = (xmax - xmin) * correction_factor - dia = round(dia, 3) - if dia in points: - points[dia].append(center) - else: - points[dia] = [center] - - sorted_dia = sorted(points.keys()) - - name_tool = 0 - for dia in sorted_dia: - name_tool += 1 - - # create tools dictionary - spec = {"C": dia, 'solid_geometry': []} - exc_obj.tools[str(name_tool)] = spec - - # create drill list of dictionaries - for dia_points in points: - if dia == dia_points: - for pt in points[dia_points]: - exc_obj.drills.append({'point': Point(pt), 'tool': str(name_tool)}) - break - - ret = exc_obj.create_geometry() - if ret == 'fail': - log.debug("Could not create geometry for Excellon object.") - return "fail" - for tool in exc_obj.tools: - if exc_obj.tools[tool]['solid_geometry']: - return - app_obj.inform.emit('[ERROR_NOTCL] %s: %s' % (_("No geometry found in file"), outname)) - return "fail" - - with self.app.proc_container.new(_("Rendering PDF layer #%d ...") % int(layer_nr)): - - ret_val = self.app.app_obj.new_object("excellon", outname, obj_init, autoselected=False) - if ret_val == 'fail': - self.app.inform.emit('[ERROR_NOTCL] %s' % _('Open PDF file failed.')) - return - # Register recent file - self.app.file_opened.emit("excellon", filename) - # GUI feedback - self.app.inform.emit('[success] %s: %s' % (_("Rendered"), outname)) - - def layer_rendering_as_gerber(self, filename, ap_dict, layer_nr): - outname = filename.split('/')[-1].split('\\')[-1] + "_%s" % str(layer_nr) - - def obj_init(grb_obj, app_obj): - - grb_obj.apertures = ap_dict - - poly_buff = [] - follow_buf = [] - for ap in grb_obj.apertures: - for k in grb_obj.apertures[ap]: - if k == 'geometry': - for geo_el in ap_dict[ap][k]: - if 'solid' in geo_el: - poly_buff.append(geo_el['solid']) - if 'follow' in geo_el: - follow_buf.append(geo_el['follow']) - poly_buff = unary_union(poly_buff) - - if '0' in grb_obj.apertures: - global_clear_geo = [] - if 'geometry' in grb_obj.apertures['0']: - for geo_el in ap_dict['0']['geometry']: - if 'clear' in geo_el: - global_clear_geo.append(geo_el['clear']) - - if global_clear_geo: - solid = [] - for apid in grb_obj.apertures: - if 'geometry' in grb_obj.apertures[apid]: - for elem in grb_obj.apertures[apid]['geometry']: - if 'solid' in elem: - solid_geo = deepcopy(elem['solid']) - for clear_geo in global_clear_geo: - # Make sure that the clear_geo is within the solid_geo otherwise we loose - # the solid_geometry. We want for clear_geometry just to cut into solid_geometry - # not to delete it - if clear_geo.within(solid_geo): - solid_geo = solid_geo.difference(clear_geo) - if solid_geo.is_empty: - solid_geo = elem['solid'] - try: - for poly in solid_geo: - solid.append(poly) - except TypeError: - solid.append(solid_geo) - poly_buff = deepcopy(MultiPolygon(solid)) - - follow_buf = unary_union(follow_buf) - - try: - poly_buff = poly_buff.buffer(0.0000001) - except ValueError: - pass - try: - poly_buff = poly_buff.buffer(-0.0000001) - except ValueError: - pass - - grb_obj.solid_geometry = deepcopy(poly_buff) - grb_obj.follow_geometry = deepcopy(follow_buf) - - with self.app.proc_container.new(_("Rendering PDF layer #%d ...") % int(layer_nr)): - - ret = self.app.app_obj.new_object('gerber', outname, obj_init, autoselected=False) - if ret == 'fail': - self.app.inform.emit('[ERROR_NOTCL] %s' % _('Open PDF file failed.')) - return - # Register recent file - self.app.file_opened.emit('gerber', filename) - # GUI feedback - self.app.inform.emit('[success] %s: %s' % (_("Rendered"), outname)) - - def periodic_check(self, check_period): - """ - This function starts an QTimer and it will periodically check if parsing was done - - :param check_period: time at which to check periodically if all plots finished to be plotted - :return: - """ - - # self.plot_thread = threading.Thread(target=lambda: self.check_plot_finished(check_period)) - # self.plot_thread.start() - log.debug("ToolPDF --> Periodic Check started.") - - try: - self.check_thread.stop() - except TypeError: - pass - - self.check_thread.setInterval(check_period) - try: - self.check_thread.timeout.disconnect(self.periodic_check_handler) - except (TypeError, AttributeError): - pass - - self.check_thread.timeout.connect(self.periodic_check_handler) - self.check_thread.start(QtCore.QThread.HighPriority) - - def periodic_check_handler(self): - """ - If the parsing worker finished then start multithreaded rendering - :return: - """ - # log.debug("checking parsing --> %s" % str(self.parsing_promises)) - - try: - if not self.parsing_promises: - self.check_thread.stop() - log.debug("PDF --> start rendering") - # parsing finished start the layer rendering - if self.pdf_parsed: - obj_to_delete = [] - for object_name in self.pdf_parsed: - if self.app.abort_flag: - # graceful abort requested by the user - raise grace - - filename = deepcopy(self.pdf_parsed[object_name]['filename']) - pdf_content = deepcopy(self.pdf_parsed[object_name]['pdf']) - obj_to_delete.append(object_name) - for k in pdf_content: - if self.app.abort_flag: - # graceful abort requested by the user - raise grace - - ap_dict = pdf_content[k] - print(k, ap_dict) - if ap_dict: - layer_nr = k - if k == 0: - self.app.worker_task.emit({'fcn': self.layer_rendering_as_excellon, - 'params': [filename, ap_dict, layer_nr]}) - else: - self.app.worker_task.emit({'fcn': self.layer_rendering_as_gerber, - 'params': [filename, ap_dict, layer_nr]}) - # delete the object already processed so it will not be processed again for other objects - # that were opened at the same time; like in drag & drop on AppGUI - for obj_name in obj_to_delete: - if obj_name in self.pdf_parsed: - self.pdf_parsed.pop(obj_name) - - log.debug("ToolPDF --> Periodic check finished.") - except Exception: - traceback.print_exc() diff --git a/AppTools/__init__.py b/AppTools/__init__.py deleted file mode 100644 index e2699a42..00000000 --- a/AppTools/__init__.py +++ /dev/null @@ -1,45 +0,0 @@ - -from AppTools.ToolCalculators import ToolCalculator -from AppTools.ToolCalibration import ToolCalibration - -from AppTools.ToolDblSided import DblSidedTool -from AppTools.ToolExtractDrills import ToolExtractDrills -from AppTools.ToolAlignObjects import AlignObjects - -from AppTools.ToolFilm import Film - -from AppTools.ToolImage import ToolImage - -from AppTools.ToolDistance import Distance -from AppTools.ToolDistanceMin import DistanceMin - -from AppTools.ToolMove import ToolMove - -from AppTools.ToolCutOut import CutOut -from AppTools.ToolNCC import NonCopperClear -from AppTools.ToolPaint import ToolPaint -from AppTools.ToolIsolation import ToolIsolation - -from AppTools.ToolOptimal import ToolOptimal - -from AppTools.ToolPanelize import Panelize -from AppTools.ToolPcbWizard import PcbWizard -from AppTools.ToolPDF import ToolPDF -from AppTools.ToolProperties import Properties - -from AppTools.ToolQRCode import QRCode -from AppTools.ToolRulesCheck import RulesCheck - -from AppTools.ToolCopperThieving import ToolCopperThieving -from AppTools.ToolFiducials import ToolFiducials - -from AppTools.ToolShell import FCShell -from AppTools.ToolSolderPaste import SolderPaste -from AppTools.ToolSub import ToolSub - -from AppTools.ToolTransform import ToolTransform -from AppTools.ToolPunchGerber import ToolPunchGerber - -from AppTools.ToolInvertGerber import ToolInvertGerber -from AppTools.ToolCorners import ToolCorners -from AppTools.ToolEtchCompensation import ToolEtchCompensation \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 31d045ac..7770a326 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,229 +7,6 @@ CHANGELOG for FlatCAM beta ================================================= -2.06.2020 - -- Tcl Shell - added a button to delete the content of the active line -- Tcl Command Isolate - fixed to work in the new configuration -- Tcl Command Follow - fixed to work in the new configuration -- Etch Compensation Tool - added a new etchant: alkaline baths -- fixed spacing in the status toolbar icons -- updated the translation files to the latest changes -- modified behavior of object comboboxes in Paint, NCC and CutOut Tools: now if an object is selected in Project Tab and is of the supported kind in the Tool, it will be auto-selected -- fixed some more strings -- updated the Google-translations for the German, Spanish, French -- updated the Romanian translation -- replaced the icon for the Editor in Toolbar (both for the normal icons and for icons in dark theme) - -1.06.2020 - -- made the Distance Tool display the angle in values between 0 and 359.9999 degrees -- changed some strings -- fixed the warning that old preferences found even for new installation -- in Paint Tool fixed the message to select a polygon when using the Selection: Single Polygon being overwritten by the "Grid disabled" message -- more changes in strings throughout the app -- made some minor changes in the GUI of the FlatCAM Tools -- in Tools Database made sure that each new tool added has a unique name -- in AppTool made some methods to be class methods -- reverted the class methods in AppTool -- added a button for Transformations Tool in the lower side (common) of the Object UI -- some other UI changes -- after using Isolation Tool it will switch automatically to the Geometry UI -- in Preferences replaced some widgets with a new one that combine a Slider with a Spinner (from David Robertson) -- in Preferences replaced the widgets that sets colors with a compound one (from David Robertson) -- made Progressive plotting work in Isolation Tool -- fix an issue with progressive plotted shapes not being deleted on the end of the job -- some fixed due of recent changes and some strings changed -- added a validator for the FCColorEntry GUI element such that only the valid chars are accepted -- changed the status bar label to have an icon instead of text -- added a label in status bar that will toggle the Preferences tab -- made some changes such that that the label in status bar for toggling the Preferences Tab will be updated in various cases of closing the tab -- changed colors for the status bar labels and added some of the new icons in the gray version -- remade visibility as threaded - it seems that I can't really squeeze more performance from this - -31.05.2020 - -- structural changes in Preferences from David Robertson -- made last filter selected for open file to be used next time when opening files (for Excellon, GCode and Gerber files, for now) - -30.05.2020 - -- made confirmation messages for the values that are modified not to be printed in the Shell -- Isolation Tool: working on the Rest machining: almost there, perhaps I will use multiprocessing -- Isolation Tool: removed the tools that have empty geometry in case of rest machining -- Isolation Tool: solved some naming issues -- Isolation Tool: updated the tools dict with the common parameters value on isolating -- Fixed a recent change that made the edited Geometry objects in the Geometry Editor not to be plotted after saving changes -- modified the Tool Database such that when a tool shape is selected as 'V' any change in the Vdia or Vangle or CutZ parameters will update the tool diameter value -- In Tool Isolation made sure that the use of ESC key while some processes are active will disconnect the mouse events that may be connected, correctly -- optimized the Gerber UI -- added a Multi-color checkbox for the Geometry UI (will color differently tool geometry when the geometry is multitool) -- added a Multi-color checkbox for the Excellon UI (this way colors for each tool are easier to differentiate especially when the diameter is close) -- made the Shell Dock always show docked -- fixed NCC Tool behavior when selecting tools for Isolation operation - -29.05.2020 - -- fixed the Tool Isolation when using the 'follow' parameter -- in Isolation Tool when the Rest machining is checked the combine parameter is set True automatically because the rest machining concept make sense only when all tools are used together -- some changes in the UI; added in the status bar an icon to control the Shell Dock -- clicking on the activity icon will replot all objects -- optimized UI in Tool Isolation -- overloaded the App inform signal to allow not printing to shell if a second bool parameter is given; modified some GUI messages to use this feature -- fixed the shell status label status on shell dock close from close button -- refactored some methods from App class and moved them to plotcanvas (plotcanvaslegacy) class -- added an label with icon in the status bar, clicking it will toggle (show status) of the X-Y axis on cavnas -- optimized the UI, added to status bar an icon to toggle the axis -- updated the Etch Compensation Tool by adding a new possibility to compensate the lateral etch (manual value) -- updated the Etch Compensation Tool such that the resulting Gerber object will have the apertures attributes ('size', 'width', 'height') updated to the changes - -28.05.2020 - -- made the visibility change (when using the Spacebar key in Project Tab) to be not threaded and to use the enabled property of the ShapesCollection which should be faster -- updated the Tool Database class to have the Isolation Tool data -- Isolation Tool - made to work the adding of tools from database -- fixed some issues related to using the new Numerical... GUI elements -- fixed issues in the Tool Subtract -- remade Tool Subtract to use multiprocessing when processing geometry -- the resulting Gerber file from Tool Subtract has now the attribute source_file populated - -27.05.2020 - -- working on Isolation Tool: made to work the Isolation with multiple tools without rest machining - -26.05.2020 - -- working on Isolation Tool: made to work the tool parameters data to GUI and GUI to data -- Isolation Tool: reworked the GUI -- if there is a Gerber object selected then in Isolation Tool the Gerber object combobox will show that object name as current -- made the Project Tree items not editable by clicking on selected Tree items (the object rename can still be done in the Selected tab) -- working on Isolation Tool: added a Preferences section in Edit -> Preferences and updated their usage within the Isolation tool -- fixed milling drills not plotting the resulting Geometry object -- all tuple entries in the Preferences UI are now protected against letter entry -- all entries in the Preferences UI that have numerical entry are protected now against letters -- cleaned the Preferences UI in the Gerber area -- minor UI changes - -25.05.2020 - -- updated the GUI fields for the Scale and Offset in the Object UI to allow only numeric values and operators in the list [/,*,+,-], spaces, dots and comma -- modified the Etch Compensation Tool and added conversion utilities from Oz thickenss and mils to microns -- added a Toggle All checkbox to Corner Markers Tool -- added an Icon to the MessageBox that asks for saving if the user try to close the app and there is some unsaved work -- changed and added some icons -- fixed the Shortcuts Tab to reflect the actual current shortcut keys -- started to work on moving the Isolation Routing from the Gerber Object UI to it's own tool -- created a new tool: Isolation Routing Tool: work in progress -- some fixes in NCC Tool -- added a dialog in Menu -> Help -> ReadMe? - -24.05.2020 - -- changes some icons -- added a new GUI element which is a evaluated LineEdit that accepts only float numbers and /,*,+,-,% chars -- finished the Etch Compensation Tool -- fixed unreliable work of Gerber Editor and optimized the App.editor2object() method -- updated the Gerber parser such that it will parse correctly Gerber files that have only one solid polygon inside with multiple clear polygons (like those generated by the Invert Tool) -- fixed a small bug in the Geometry UI that made updating the storage from GUI not to work -- some small changes in Gerber Editor - -23.05.2020 - -- fixed a issue when testing for Exclusion areas overlap over the Geometry object solid_geometry - -22.05.2020 - -- fixed the algorithm for calculating closest points in the Exclusion areas -- added the Exclusion zones processing to Geometry GCode generation - -21.05.2020 - -- added the Exclusion zones processing to Excellon GCode generation -- fixed a non frequent plotting problem for CNCJob objects made out of Excellon objects - -19.05.2020 - -- updated the Italian language (translation incomplete) -- updated all the language strings to the latest changes; updated the POT file -- fixed a possible malfunction in Tool Punch Gerber - -18.05.2020 - -- fixed the PDF Tool when importing as Gerber objects -- moved all the parsing out of the PDF Tool to a new file ParsePDF in the flatcamParsers folder -- trying to fix the pixmap load crash when running a FlatCAMScript -- made the workspace label in the status bar clickable and also added a status bar message on status toggle for workspace -- modified the GUI for Film and Panelize Tools -- moved some of the GUI related methods from FlatCAMApp.App to the flatcamGUI.MainGUI class -- moved Shortcuts Tab creation in it's own class -- renamed classes to have shorter names and grouped -- removed reference to postprocessors and replaced it with preprocessors -- more refactoring class names -- moved some of the methods from the App class to the ObjectCollection class -- moved all the new_object related methods in their own class AppObjects.AppObject -- more refactoring; solved some issues introduced by the refactoring -- solved a circular import -- updated the language translation files to the latest changes (no translation) -- working on a new Tool: Etch Compensation Tool -> installed the tool and created the GUI and class template -- moved more methods out of App_Main class -- added confirmation messages for toggle of HUD, Grid, Grid Snap, Axis -- added icon in status bar for HUD; clicking on it will toggle the HUD (heads up display) -- fixes due of recent changes -- fixed issue #417 - -17.05.2020 - -- added new FlatCAM Tool: Corner Markers Tool which will add line markers in the selected corners of the bounding box of the targeted Gerber object -- added a menu entry in Menu -> View for Toggle HUD -- solved the issue with the GUI in the Notebook being expanded too much in width due of the FCDoubleSpinner and FCSpinner sizeHint by setting the sizePolicy to Ignored value -- fixed the workspace being always A4 -- added a label in the status bar to show if the workplace is active and what size it is -- now the Edit command (either from Menu Edit ->Edit Object) or through the shortcut key (E key) or project tab context menu works also for the CNCJob objects (will open a text Editor with the GCode) -- fixed the object collection methods that return a list of objects or names of objects such that they have a parameter now to allow adding to those lists (or not) for the objects of type Script or Document. Thus fixing some of the Tcl commands such Set Origin -- reverted the previous changes to object collection; it is better to create empty methods in FlatCAMScript and FlatCAMDocument objects - -16.05.2020 - -- worked on the NCC Tool; added a new clear method named 'Combo' which will go through all methods until the clear is done -- added a Preferences parameter for font size used in HUD - -13.05.2020 - -- updated the French translation strings, made by @micmac (Michel) - -12.05.2020 - -- fixed recent issues introduced in Tcl command Drillcncjob -- updated the Cncjob to use the 'endxy' parameter which dictates the x,y position at the end of the job -- now the Tcl commands Drillcncjob and Cncjob can use the toolchangexy and endxy parameters with or without parenthesis (but no spaces allowed) -- modified the Tcl command Paint "single" parameter. Now it's value is a tuple with the x,y coordinates of the single polygon to be painted. -- the HUD display state is now persistent between app restarts -- updated the Distance Tool such that the right click of the mouse will cancel the tool unless it was a panning move -- modified the PlotCanvasLegacy to decide if there is a mouse drag based on the distance between the press event position and the release event position. If the distance is smaller than a delta distance then it is not a drag move. - -11.05.2020 - -- removed the labels in status bar that display X,Y positions and replaced it with a HUD display on canvas (combo key SHIFT+H) will toggle the display of the HUD -- made the HUD work in Legacy2D mode -- fixed situation when the mouse cursor is outside of the canvas and no therefore returning None values -- remade the Snap Toolbar presence; now it is always active and situated in the Status Bar -- Snap Toolbar is now visible in Fullscreen -- in Fullscreen now the Notebook is available but it will be hidden on Fullscreen launch -- fixed some minor issues (in the HUD added a separating line, missing an icon in toolbars on first launch) -- made sure that the corner snap buttons are shown only in Editors -- changed the HUD color when using Dark theme -- fix issue in Legacy2D graphic mode where the snap function was not accessible when the PlotCanvasLegacy class was created -- modified the HUD in Legacy2D when using Dark Theme to use different colors -- modified how the graphic engine change act in Preferences: now only by clicking Apply(or Save) the change will happen. And there is also a message asking for confirmation -- re-added the position labels in the status bar; they will be useful if HUD is Off (Altium does the same :) so learn from the best) -- fixed the Tcl command Cncjob: there was a problem reported as issue #416. The command did not work due of the dpp parameter -- modified the Tcl command Cncjob such that if some of the parameters are not used then the default values will be used (set with set_sys) -- modified the Tcl command Drillcncjob to use the defaults when some of the parameters are not used - -10.05.2020 - -- fixed the problem with using comma as decimal separator in Grid Snap fields - 9.05.2020 - modified the GUI for Exclusion areas; now the shapes are displayed in a Table where they can be selected and deleted. Modification applied for Geometry Objects only (for now). @@ -285,7 +62,7 @@ CHANGELOG for FlatCAM beta 2.05.2020 - changed the icons for the grid snap in the status bar -- moved some of the methods from FlatCAMApp.App to flatcamGUI.MainGUI class +- moved some of the methods from FlatCAMApp.App to flatcamGUI.FlatCAMGUI class - fixed bug in Gerber Editor in which the units conversion wasn't calculated correct - fixed bug in Gerber Editor in which the QThread that is started on object edit was not stopped at clean up stage - fixed bug in Gerber Editor that kept all the apertures (including the geometry) of a previously edited object that was not saved after edit @@ -1553,7 +1330,7 @@ CHANGELOG for FlatCAM beta - optimized Rules Check Tool so it runs faster when doing Copper 2 Copper rule - small GUI changes in Optimal Tool and in Film Tool - some PEP8 corrections -- some code annotations to make it easier to navigate in the MainGUI.py +- some code annotations to make it easier to navigate in the FlatCAMGUI.py - fixed exit FullScreen with Escape key - added a new menu category in the MenuBar named 'Objects'. It will hold the objects found in the Project tab. Useful when working in FullScreen - disabled a log.debug in ObjectColection.get_by_name() @@ -2992,7 +2769,7 @@ CHANGELOG for FlatCAM beta - fix for issue #262: when doing Edit-> Save & Close Editor on a Geometry that is not generated through first entering into an Editor, the geometry disappear - finished preparing for internationalization for the files: camlib and objectCollection - fixed tools shortcuts not working anymore due of the new toggle parameter for the .run(). -- finished preparing for internationalization for the files: FlatCAMEditor, MainGUI +- finished preparing for internationalization for the files: FlatCAMEditor, FlatCAMGUI - finished preparing for internationalization for the files: FlatCAMObj, ObjectUI - sorted the languages in the Preferences combobox @@ -3314,7 +3091,7 @@ CHANGELOG for FlatCAM beta - fixed the name self-insert in save dialog file for GCode; added protection in case the save path is None - fixed FlatCAM crash when trying to make drills GCode out of a file that have only slots. - changed the messages for Units Conversion -- all key shortcuts work across the entire application; moved all the shortcuts definitions in MainGUI.keyPressEvent() +- all key shortcuts work across the entire application; moved all the shortcuts definitions in FlatCAMGUI.keyPressEvent() - renamed the theme to layout because it is really a layout change - added plot kind for CNC Job in the App Preferences - combined the geocutout and cutout_any TCL commands - work in progress @@ -3835,7 +3612,7 @@ For now they are used only for Excellon objects who do have toolchange events - fixed a reported bug generated by a typo for feedrate_z object in camlib.py. Because of that, the project could not be saved. - fixed a G01 usage (should be G1) in Marlin preprocessor. -- changed the position of the Tool Dia entry in the Object UI and in MainGUI +- changed the position of the Tool Dia entry in the Object UI and in FlatCAMGUI - fixed issues in the installer 30.10.2018 @@ -4395,7 +4172,7 @@ still copper leftovers. - modified generate_milling method which had issues from the Python3 port (it could not sort the tools due of dict to dict comparison no longer possible). - modified the 'default' preprocessor in order to include a space between the value of Xcoord and the following Y - made optional the using of threads for the milling command; by default it is OFF (False) because in the current configuration it creates issues when it is using threads -- modified the Panelize function and Tcl command Panelize. It was having issues due to multithreading (kept trying to modify a dictionary in redraw() method)and automatically selecting the last created object (feature introduced by me). I've added a parameter to the app_obj.new_object method, named autoselected (by default it is True) and in the panelize method I initialized it with False. +- modified the Panelize function and Tcl command Panelize. It was having issues due to multithreading (kept trying to modify a dictionary in redraw() method)and automatically selecting the last created object (feature introduced by me). I've added a parameter to the new_object method, named autoselected (by default it is True) and in the panelize method I initialized it with False. By initializing the plot parameter with False for the temporary objects, I have increased dramatically the generation speed of the panel because now the temporary object are no longer ploted which consumed time. - replaced log.warn() with log.warning() in camlib.py. Reason: deprecated - fixed the issue that the "Defaults" button was having no effect when clicked and Options Combo was in Project Options diff --git a/FlatCAM.py b/FlatCAM.py index 17b56c29..3875f0f3 100644 --- a/FlatCAM.py +++ b/FlatCAM.py @@ -3,8 +3,8 @@ import os from PyQt5 import QtWidgets from PyQt5.QtCore import QSettings, Qt -from App_Main import App -from AppGUI import VisPyPatches +from FlatCAMApp import App +from flatcamGUI import VisPyPatches from multiprocessing import freeze_support # import copyreg diff --git a/App_Main.py b/FlatCAMApp.py similarity index 87% rename from App_Main.py rename to FlatCAMApp.py index 7ba782ab..4641420d 100644 --- a/App_Main.py +++ b/FlatCAMApp.py @@ -4,7 +4,6 @@ # Author: Juan Pablo Caram (c) # # Date: 2/5/2014 # # MIT Licence # -# Modified by Marius Stanciu (2019) # # ########################################################### import urllib.request @@ -14,13 +13,14 @@ import urllib.error import getopt import random import simplejson as json -import shutil import lzma +import shutil from datetime import datetime import time import ctypes import traceback +from PyQt5.QtCore import pyqtSlot, Qt from shapely.geometry import Point, MultiPolygon from io import StringIO @@ -42,58 +42,58 @@ import socket # ################################### Imports part of FlatCAM ############################################# # #################################################################################################################### -# Various -from Common import LoudDict -from Common import color_variant -from Common import ExclusionAreas - -from Bookmark import BookmarkManager -from AppDatabase import ToolsDB2 +# Diverse +from FlatCAMCommon import LoudDict, color_variant, ExclusionAreas +from FlatCAMBookmark import BookmarkManager +from FlatCAMDB import ToolsDB2 from vispy.gloo.util import _screenshot from vispy.io import write_png -# FlatCAM defaults (preferences) -from defaults import FlatCAMDefaults - # FlatCAM Objects -from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI -from AppGUI.preferences.PreferencesUIManager import PreferencesUIManager -from AppObjects.ObjectCollection import * -from AppObjects.FlatCAMObj import FlatCAMObj -from AppObjects.AppObject import AppObject +from defaults import FlatCAMDefaults +from flatcamGUI.preferences.OptionsGroupUI import OptionsGroupUI +from flatcamGUI.preferences.PreferencesUIManager import PreferencesUIManager +from flatcamObjects.ObjectCollection import * +from flatcamObjects.FlatCAMObj import FlatCAMObj +from flatcamObjects.FlatCAMCNCJob import CNCJobObject +from flatcamObjects.FlatCAMDocument import DocumentObject +from flatcamObjects.FlatCAMExcellon import ExcellonObject +from flatcamObjects.FlatCAMGeometry import GeometryObject +from flatcamObjects.FlatCAMGerber import GerberObject +from flatcamObjects.FlatCAMScript import ScriptObject # FlatCAM Parsing files -from AppParsers.ParseExcellon import Excellon -from AppParsers.ParseGerber import Gerber +from flatcamParsers.ParseExcellon import Excellon +from flatcamParsers.ParseGerber import Gerber from camlib import to_dict, dict2obj, ET, ParseError, Geometry, CNCjob -# FlatCAM AppGUI -from AppGUI.PlotCanvas import * -from AppGUI.PlotCanvasLegacy import * -from AppGUI.MainGUI import * -from AppGUI.GUIElements import FCFileSaveDialog, message_dialog, FlatCAMSystemTray +# FlatCAM GUI +from flatcamGUI.PlotCanvas import * +from flatcamGUI.PlotCanvasLegacy import * +from flatcamGUI.FlatCAMGUI import * +from flatcamGUI.GUIElements import FCFileSaveDialog # FlatCAM Pre-processors -from AppPreProcessor import load_preprocessors +from FlatCAMPostProc import load_preprocessors -# FlatCAM AppEditors -from AppEditors.FlatCAMGeoEditor import FlatCAMGeoEditor -from AppEditors.FlatCAMExcEditor import FlatCAMExcEditor -from AppEditors.FlatCAMGrbEditor import FlatCAMGrbEditor -from AppEditors.FlatCAMTextEditor import TextEditor -from AppParsers.ParseHPGL2 import HPGL2 +# FlatCAM Editors +from flatcamEditors.FlatCAMGeoEditor import FlatCAMGeoEditor +from flatcamEditors.FlatCAMExcEditor import FlatCAMExcEditor +from flatcamEditors.FlatCAMGrbEditor import FlatCAMGrbEditor +from flatcamEditors.FlatCAMTextEditor import TextEditor +from flatcamParsers.ParseHPGL2 import HPGL2 # FlatCAM Workers -from AppProcess import * -from AppWorkerStack import WorkerStack +from FlatCAMProcess import * +from FlatCAMWorkerStack import WorkerStack # FlatCAM Tools -from AppTools import * +from flatcamTools import * # FlatCAM Translation import gettext -import AppTranslation as fcTranslate +import FlatCAMTranslation as fcTranslate import builtins if sys.platform == 'win32': @@ -107,7 +107,7 @@ if '_' not in builtins.__dict__: class App(QtCore.QObject): """ - The main application class. The constructor starts the GUI and all other classes used by the program. + The main application class. The constructor starts the GUI. """ # ############################################################################################################### @@ -163,7 +163,7 @@ class App(QtCore.QObject): # ################################### Version and VERSION DATE ################################################## # ############################################################################################################### version = 8.993 - version_date = "2020/06/05" + version_date = "2020/08/01" beta = True engine = '3D' @@ -204,7 +204,7 @@ class App(QtCore.QObject): # Inform the user # Handled by: # * App.info() --> Print on the status bar - inform = QtCore.pyqtSignal([str], [str, bool]) + inform = QtCore.pyqtSignal(str) app_quit = QtCore.pyqtSignal() @@ -227,6 +227,20 @@ class App(QtCore.QObject): # Percentage of progress progress = QtCore.pyqtSignal(int) + plots_updated = QtCore.pyqtSignal() + + # Emitted by new_object() and passes the new object as argument, plot flag. + # on_object_created() adds the object to the collection, plots on appropriate flag + # and emits new_object_available. + object_created = QtCore.pyqtSignal(object, bool, bool) + + # Emitted when a object has been changed (like scaled, mirrored) + object_changed = QtCore.pyqtSignal(object) + + # Emitted after object has been plotted. + # Calls 'on_zoom_fit' method to fit object in scene view in main thread to prevent drawing glitches. + object_plotted = QtCore.pyqtSignal(object) + # Emitted when a new object has been added or deleted from/to the collection object_status_changed = QtCore.pyqtSignal(object, str, str) @@ -271,8 +285,6 @@ class App(QtCore.QObject): :rtype: App """ - super().__init__() - App.log.info("FlatCAM Starting...") self.main_thread = QtWidgets.QApplication.instance().thread() @@ -291,7 +303,7 @@ class App(QtCore.QObject): self.new_launch.start.emit() # ############################################################################################################ - # ########################################## OS-specific ##################################################### + # # ######################################## OS-specific ##################################################### # ############################################################################################################ portable = False @@ -381,7 +393,7 @@ class App(QtCore.QObject): f.close() # Write factory_defaults.FlatConfig file to disk - FlatCAMDefaults.save_factory_defaults(os.path.join(self.data_path, "factory_defaults.FlatConfig"), self.version) + FlatCAMDefaults.save_factory_defaults(os.path.join(self.data_path, "factory_defaults.FlatConfig")) # create a recent files json file if there is none try: @@ -403,12 +415,13 @@ class App(QtCore.QObject): json.dump([], fp) fp.close() - # Application directory. CHDIR to it. Otherwise, trying to load GUI icons will fail as their path is relative. + # Application directory. CHDIR to it. Otherwise, trying to load + # GUI icons will fail as their path is relative. # This will fail under cx_freeze ... self.app_home = os.path.dirname(os.path.realpath(__file__)) - log.debug("Application path is " + self.app_home) - log.debug("Started in " + os.getcwd()) + App.log.debug("Application path is " + self.app_home) + App.log.debug("Started in " + os.getcwd()) # cx_freeze workaround if os.path.isfile(self.app_home): @@ -452,6 +465,7 @@ class App(QtCore.QObject): # ########################################################################################################### # ###################################### Setting the Splash Screen ########################################## # ########################################################################################################### + splash_settings = QSettings("Open Source", "FlatCAM") if splash_settings.contains("splash_screen"): show_splash = splash_settings.value("splash_screen") @@ -490,6 +504,10 @@ class App(QtCore.QObject): self.FC_light_blue = '#a5a5ffbf' self.FC_dark_blue = '#0000ffbf' + QtCore.QObject.__init__(self) + + self.ui = FlatCAMGUI(self) + theme_settings = QtCore.QSettings("Open Source", "FlatCAM") if theme_settings.contains("theme"): theme = theme_settings.value('theme', type=str) @@ -507,7 +525,14 @@ class App(QtCore.QObject): # update the defaults dict with the setting in QSetting self.defaults['global_theme'] = theme - self.ui = MainGUI(self) + self.ui.geom_update[int, int, int, int, int].connect(self.save_geometry) + self.ui.final_save.connect(self.final_save) + + # restore the toolbar view + self.restore_toolbar_view() + + # restore the GUI geometry + self.restore_main_win_geom() # set FlatCAM units in the Status bar self.set_screen_units(self.defaults['units']) @@ -656,11 +681,9 @@ class App(QtCore.QObject): # #################################### SETUP OBJECT COLLECTION ############################################## # ########################################################################################################### - self.collection = ObjectCollection(app=self) + self.collection = ObjectCollection(self) self.ui.project_tab_layout.addWidget(self.collection.view) - self.app_obj = AppObject(app=self) - # ### Adjust tabs width ## ## # self.collection.view.setMinimumWidth(self.ui.options_scroll_area.widget().sizeHint().width() + # self.ui.options_scroll_area.verticalScrollBar().sizeHint().width()) @@ -757,14 +780,18 @@ class App(QtCore.QObject): # ########################################## Custom signals ################################################ # signal for displaying messages in status bar - self.inform[str].connect(self.info) - self.inform[str, bool].connect(self.info) - + self.inform.connect(self.info) # signal to be called when the app is quiting self.app_quit.connect(self.quit_application, type=Qt.QueuedConnection) - self.message.connect(lambda: message_dialog(parent=self.ui)) + self.message.connect(self.message_dialog) # self.progress.connect(self.set_progress_bar) + # signals that are emitted when object state changes + self.object_created.connect(self.on_object_created) + self.object_changed.connect(self.on_object_changed) + self.object_plotted.connect(self.on_object_plotted) + self.plots_updated.connect(self.on_plots_updated) + # signals emitted when file state change self.file_opened.connect(self.register_recent) self.file_opened.connect(lambda kind, filename: self.register_folder(filename)) @@ -773,10 +800,10 @@ class App(QtCore.QObject): # ########################################## Standard signals ############################################### # ### Menu self.ui.menufilenewproject.triggered.connect(self.on_file_new_click) - self.ui.menufilenewgeo.triggered.connect(self.app_obj.new_geometry_object) - self.ui.menufilenewgrb.triggered.connect(self.app_obj.new_gerber_object) - self.ui.menufilenewexc.triggered.connect(self.app_obj.new_excellon_object) - self.ui.menufilenewdoc.triggered.connect(self.app_obj.new_document_object) + self.ui.menufilenewgeo.triggered.connect(self.new_geometry_object) + self.ui.menufilenewgrb.triggered.connect(self.new_gerber_object) + self.ui.menufilenewexc.triggered.connect(self.new_excellon_object) + self.ui.menufilenewdoc.triggered.connect(self.new_document_object) self.ui.menufileopengerber.triggered.connect(self.on_fileopengerber) self.ui.menufileopenexcellon.triggered.connect(self.on_fileopenexcellon) @@ -868,21 +895,18 @@ class App(QtCore.QObject): self.ui.menuview_replot.triggered.connect(self.plot_all) self.ui.menuview_toggle_code_editor.triggered.connect(self.on_toggle_code_editor) - self.ui.menuview_toggle_fscreen.triggered.connect(self.ui.on_fullscreen) - self.ui.menuview_toggle_parea.triggered.connect(self.ui.on_toggle_plotarea) - self.ui.menuview_toggle_notebook.triggered.connect(self.ui.on_toggle_notebook) - self.ui.menu_toggle_nb.triggered.connect(self.ui.on_toggle_notebook) - self.ui.menuview_toggle_grid.triggered.connect(self.ui.on_toggle_grid) + self.ui.menuview_toggle_fscreen.triggered.connect(self.on_fullscreen) + self.ui.menuview_toggle_parea.triggered.connect(self.on_toggle_plotarea) + self.ui.menuview_toggle_notebook.triggered.connect(self.on_toggle_notebook) + self.ui.menu_toggle_nb.triggered.connect(self.on_toggle_notebook) + self.ui.menuview_toggle_grid.triggered.connect(self.on_toggle_grid) + self.ui.menuview_toggle_grid_lines.triggered.connect(self.on_toggle_grid_lines) + self.ui.menuview_toggle_axis.triggered.connect(self.on_toggle_axis) self.ui.menuview_toggle_workspace.triggered.connect(self.on_workspace_toggle) - self.ui.menuview_toggle_grid_lines.triggered.connect(self.plotcanvas.on_toggle_grid_lines) - self.ui.menuview_toggle_axis.triggered.connect(self.plotcanvas.on_toggle_axis) - self.ui.menuview_toggle_hud.triggered.connect(self.plotcanvas.on_toggle_hud) - - self.ui.menutoolshell.triggered.connect(self.ui.toggle_shell_ui) + self.ui.menutoolshell.triggered.connect(self.toggle_shell) self.ui.menuhelp_about.triggered.connect(self.on_about) - self.ui.menuhelp_readme.triggered.connect(self.on_readme) self.ui.menuhelp_manual.triggered.connect(lambda: webbrowser.open(self.manual_url)) self.ui.menuhelp_report_bug.triggered.connect(lambda: webbrowser.open(self.bug_report_url)) self.ui.menuhelp_exc_spec.triggered.connect(lambda: webbrowser.open(self.excellon_spec_url)) @@ -915,11 +939,11 @@ class App(QtCore.QObject): # Context Menu self.ui.popmenu_disable.triggered.connect(lambda: self.toggle_plots(self.collection.get_selected())) - self.ui.popmenu_panel_toggle.triggered.connect(self.ui.on_toggle_notebook) + self.ui.popmenu_panel_toggle.triggered.connect(self.on_toggle_notebook) - self.ui.popmenu_new_geo.triggered.connect(self.app_obj.new_geometry_object) - self.ui.popmenu_new_grb.triggered.connect(self.app_obj.new_gerber_object) - self.ui.popmenu_new_exc.triggered.connect(self.app_obj.new_excellon_object) + self.ui.popmenu_new_geo.triggered.connect(self.new_geometry_object) + self.ui.popmenu_new_grb.triggered.connect(self.new_gerber_object) + self.ui.popmenu_new_exc.triggered.connect(self.new_excellon_object) self.ui.popmenu_new_prj.triggered.connect(self.on_file_new) self.ui.zoomfit.triggered.connect(self.on_zoom_fit) @@ -957,15 +981,43 @@ class App(QtCore.QObject): # ########################################################################################################### # ######################################## GUI SETTINGS SIGNALS ############################################# # ########################################################################################################### + self.ui.general_defaults_form.general_app_group.ge_radio.activated_custom.connect(self.on_app_restart) self.ui.general_defaults_form.general_app_set_group.cursor_radio.activated_custom.connect(self.on_cursor_type) # ######################################## Tools related signals ############################################ + # Film Tool + self.ui.tools_defaults_form.tools_film_group.film_color_entry.editingFinished.connect( + self.on_film_color_entry) + self.ui.tools_defaults_form.tools_film_group.film_color_button.clicked.connect( + self.on_film_color_button) + + # QRCode Tool + self.ui.tools2_defaults_form.tools2_qrcode_group.fill_color_entry.editingFinished.connect( + self.on_qrcode_fill_color_entry) + self.ui.tools2_defaults_form.tools2_qrcode_group.fill_color_button.clicked.connect( + self.on_qrcode_fill_color_button) + self.ui.tools2_defaults_form.tools2_qrcode_group.back_color_entry.editingFinished.connect( + self.on_qrcode_back_color_entry) + self.ui.tools2_defaults_form.tools2_qrcode_group.back_color_button.clicked.connect( + self.on_qrcode_back_color_button) # portability changed signal self.ui.general_defaults_form.general_app_group.portability_cb.stateChanged.connect(self.on_portable_checked) # Object list - self.object_status_changed.connect(self.collection.on_collection_updated) + self.collection.view.activated.connect(self.on_row_activated) + self.collection.item_selected.connect(self.on_row_selected) + + self.object_status_changed.connect(self.on_collection_updated) + + # Make sure that when the Excellon loading parameters are changed, the change is reflected in the + # Export Excellon parameters. + self.ui.excellon_defaults_form.excellon_gen_group.update_excellon_cb.stateChanged.connect( + self.on_update_exc_export + ) + + # call it once to make sure it is updated at startup + self.on_update_exc_export(state=self.defaults["excellon_update"]) # when there are arguments at application startup this get launched self.args_at_startup[list].connect(self.on_startup_args) @@ -1022,16 +1074,6 @@ class App(QtCore.QObject): self.ui.util_defaults_form.kw_group.del_btn.clicked.connect( lambda: self.del_extension(ext_type='keyword')) - # ########################################################################################################### - # ########################################### GUI SIGNALS ################################################### - # ########################################################################################################### - self.ui.hud_label.clicked.connect(self.plotcanvas.on_toggle_hud) - self.ui.axis_status_label.clicked.connect(self.plotcanvas.on_toggle_axis) - self.ui.pref_status_label.clicked.connect(self.on_toggle_preferences) - - # ########################################################################################################### - # ####################################### VARIOUS SIGNALS ################################################### - # ########################################################################################################### # connect the abort_all_tasks related slots to the related signals self.proc_container.idle_flag.connect(self.app_is_idle) @@ -1051,7 +1093,7 @@ class App(QtCore.QObject): # ########################################## Other setups ################################################### # ########################################################################################################### - # to use for tools like Distance tool who depends on the event sources who are changed inside the AppEditors + # to use for tools like Distance tool who depends on the event sources who are changed inside the Editors # depending on from where those tools are called different actions can be done self.call_source = 'app' @@ -1329,13 +1371,10 @@ class App(QtCore.QObject): self.rules_tool = None self.sub_tool = None self.move_tool = None - self.cutout_tool = None self.ncclear_tool = None - self.paint_tool = None - self.isolation_tool = None - self.optimal_tool = None + self.paint_tool = None self.transform_tool = None self.properties_tool = None self.pdf_tool = None @@ -1349,14 +1388,12 @@ class App(QtCore.QObject): self.align_objects_tool = None self.punch_tool = None self.invert_tool = None - self.corners_tool = None - self.etch_tool = None # always install tools only after the shell is initialized because the self.inform.emit() depends on shell try: self.install_tools() except AttributeError as e: - log.debug("App.__init__() install_tools() --> %s" % str(e)) + log.debug("App.__init__() install tools() --> %s" % str(e)) # ########################################################################################################### # ############################################ SETUP RECENT ITEMS ########################################### @@ -1452,6 +1489,15 @@ class App(QtCore.QObject): # holds the key modifier if pressed (CTRL, SHIFT or ALT) self.key_modifiers = None + # Variable to hold the status of the axis + self.toggle_axis = True + + # Variable to hold the status of the grid lines + self.toggle_grid_lines = True + + # Variable to store the status of the fullscreen event + self.toggle_fscreen = False + # Variable to store the status of the code editor self.toggle_codeeditor = False @@ -1489,11 +1535,6 @@ class App(QtCore.QObject): self.prj_list = ['flatprj'] self.conf_list = ['flatconfig'] - # last used filters - self.last_op_gerber_filter = None - self.last_op_excellon_filter = None - self.last_op_gcode_filter = None - # global variable used by NCC Tool to signal that some polygons could not be cleared, if True # flag for polygons not cleared self.poly_not_cleared = False @@ -1527,7 +1568,7 @@ class App(QtCore.QObject): except AttributeError: self.tool_shapes = None else: - from AppGUI.PlotCanvasLegacy import ShapeCollectionLegacy + from flatcamGUI.PlotCanvasLegacy import ShapeCollectionLegacy self.tool_shapes = ShapeCollectionLegacy(obj=self, app=self, name="tool") # used in the delayed shutdown self.start_delayed_quit() method @@ -1682,7 +1723,7 @@ class App(QtCore.QObject): try: shutil.copytree(from_path, to_path) except FileNotFoundError: - from_new_path = os.path.dirname(os.path.realpath(__file__)) + '\\AppGUI\\VisPyData\\data' + from_new_path = os.path.dirname(os.path.realpath(__file__)) + '\\flatcamGUI\\VisPyData\\data' shutil.copytree(from_new_path, to_path) def on_startup_args(self, args, silent=False): @@ -1917,10 +1958,6 @@ class App(QtCore.QObject): self.paint_tool.install(icon=QtGui.QIcon(self.resource_location + '/paint16.png'), pos=self.ui.menutool, before=self.sub_tool.menuAction, separator=True) - self.isolation_tool = ToolIsolation(self) - self.isolation_tool.install(icon=QtGui.QIcon(self.resource_location + '/iso_16.png'), pos=self.ui.menutool, - before=self.sub_tool.menuAction, separator=True) - self.copper_thieving_tool = ToolCopperThieving(self) self.copper_thieving_tool.install(icon=QtGui.QIcon(self.resource_location + '/copperfill32.png'), pos=self.ui.menutool) @@ -1939,12 +1976,6 @@ class App(QtCore.QObject): self.invert_tool = ToolInvertGerber(self) self.invert_tool.install(icon=QtGui.QIcon(self.resource_location + '/invert32.png'), pos=self.ui.menutool) - self.corners_tool = ToolCorners(self) - self.corners_tool.install(icon=QtGui.QIcon(self.resource_location + '/corners_32.png'), pos=self.ui.menutool) - - self.etch_tool = ToolEtchCompensation(self) - self.etch_tool.install(icon=QtGui.QIcon(self.resource_location + '/etch_32.png'), pos=self.ui.menutool) - self.transform_tool = ToolTransform(self) self.transform_tool.install(icon=QtGui.QIcon(self.resource_location + '/transform.png'), pos=self.ui.menuoptions, separator=True) @@ -2010,7 +2041,7 @@ class App(QtCore.QObject): # re-add the TCL Shell action to the Tools menu and reconnect it to ist slot function self.ui.menutoolshell = self.ui.menutool.addAction(QtGui.QIcon(self.resource_location + '/shell16.png'), '&Command Line\tS') - self.ui.menutoolshell.triggered.connect(self.ui.toggle_shell_ui) + self.ui.menutoolshell.triggered.connect(self.toggle_shell) # third install all of them try: @@ -2033,22 +2064,21 @@ class App(QtCore.QObject): """ # Toolbar - - # File Toolbar Signals # self.ui.file_new_btn.triggered.connect(self.on_file_new) self.ui.file_open_btn.triggered.connect(self.on_file_openproject) self.ui.file_save_btn.triggered.connect(self.on_file_saveproject) self.ui.file_open_gerber_btn.triggered.connect(self.on_fileopengerber) self.ui.file_open_excellon_btn.triggered.connect(self.on_fileopenexcellon) - # View Toolbar Signals self.ui.clear_plot_btn.triggered.connect(self.clear_plots) self.ui.replot_btn.triggered.connect(self.plot_all) self.ui.zoom_fit_btn.triggered.connect(self.on_zoom_fit) self.ui.zoom_in_btn.triggered.connect(lambda: self.plotcanvas.zoom(1 / 1.5)) self.ui.zoom_out_btn.triggered.connect(lambda: self.plotcanvas.zoom(1.5)) - # Edit Toolbar Signals + self.ui.newgeo_btn.triggered.connect(self.new_geometry_object) + self.ui.newgrb_btn.triggered.connect(self.new_gerber_object) + self.ui.newexc_btn.triggered.connect(self.new_excellon_object) self.ui.editgeo_btn.triggered.connect(self.object2editor) self.ui.update_obj_btn.triggered.connect(lambda: self.editor2object()) self.ui.copy_btn.triggered.connect(self.on_copy_command) @@ -2062,8 +2092,7 @@ class App(QtCore.QObject): self.ui.jmp_btn.triggered.connect(self.on_jump_to) self.ui.locate_btn.triggered.connect(lambda: self.on_locate(obj=self.collection.get_active())) - # Scripting Toolbar Signals - self.ui.shell_btn.triggered.connect(self.ui.toggle_shell_ui) + self.ui.shell_btn.triggered.connect(self.toggle_shell) self.ui.new_script_btn.triggered.connect(self.on_filenewscript) self.ui.open_script_btn.triggered.connect(self.on_fileopenscript) self.ui.run_script_btn.triggered.connect(self.on_filerunscript) @@ -2077,7 +2106,6 @@ class App(QtCore.QObject): self.ui.cutout_btn.triggered.connect(lambda: self.cutout_tool.run(toggle=True)) self.ui.ncc_btn.triggered.connect(lambda: self.ncclear_tool.run(toggle=True)) self.ui.paint_btn.triggered.connect(lambda: self.paint_tool.run(toggle=True)) - self.ui.isolation_btn.triggered.connect(lambda: self.isolation_tool.run(toggle=True)) self.ui.panelize_btn.triggered.connect(lambda: self.panelize_tool.run(toggle=True)) self.ui.film_btn.triggered.connect(lambda: self.film_tool.run(toggle=True)) @@ -2093,27 +2121,25 @@ class App(QtCore.QObject): self.ui.fiducials_btn.triggered.connect(lambda: self.fiducial_tool.run(toggle=True)) self.ui.punch_btn.triggered.connect(lambda: self.punch_tool.run(toggle=True)) self.ui.invert_btn.triggered.connect(lambda: self.invert_tool.run(toggle=True)) - self.ui.corners_tool_btn.triggered.connect(lambda: self.corners_tool.run(toggle=True)) - self.ui.etch_btn.triggered.connect(lambda: self.etch_tool.run(toggle=True)) def object2editor(self): """ - Send the current Geometry, Gerber, Excellon object or CNCJob (if any) into the it's editor. + Send the current Geometry or Excellon object (if any) into the it's editor. :return: None """ self.defaults.report_usage("object2editor()") - # disable the objects menu as it may interfere with the AppEditors + # disable the objects menu as it may interfere with the Editors self.ui.menuobjects.setDisabled(True) edited_object = self.collection.get_active() if isinstance(edited_object, GerberObject) or isinstance(edited_object, GeometryObject) or \ - isinstance(edited_object, ExcellonObject) or isinstance(edited_object, CNCJobObject): + isinstance(edited_object, ExcellonObject): pass else: - self.inform.emit('[WARNING_NOTCL] %s' % _("Select a Geometry, Gerber, Excellon or CNCJob Object to edit.")) + self.inform.emit('[WARNING_NOTCL] %s' % _("Select a Geometry, Gerber or Excellon Object to edit.")) return if isinstance(edited_object, GeometryObject): @@ -2177,14 +2203,6 @@ class App(QtCore.QObject): edited_object.ui_build = False edited_object.build_aperture_storage = False - elif isinstance(edited_object, CNCJobObject): - - if self.ui.splitter.sizes()[0] == 0: - self.ui.splitter.setSizes([1, 1]) - - edited_object.on_edit_code_click() - return - # make sure that we can't select another object while in Editor Mode: # self.collection.view.setSelectionMode(QtWidgets.QAbstractItemView.NoSelection) self.ui.project_frame.setDisabled(True) @@ -2218,7 +2236,6 @@ class App(QtCore.QObject): msgbox.setText(_("Do you want to save the edited object?")) msgbox.setWindowTitle(_("Close Editor")) msgbox.setWindowIcon(QtGui.QIcon(self.resource_location + '/save_as.png')) - msgbox.setIcon(QtWidgets.QMessageBox.Question) bt_yes = msgbox.addButton(_('Yes'), QtWidgets.QMessageBox.YesRole) bt_no = msgbox.addButton(_('No'), QtWidgets.QMessageBox.NoRole) @@ -2236,11 +2253,14 @@ class App(QtCore.QObject): if isinstance(edited_obj, GeometryObject): obj_type = "Geometry" - self.geo_editor.update_fcgeometry(edited_obj) - # self.geo_editor.update_options(edited_obj) + if cleanup is None: + self.geo_editor.update_fcgeometry(edited_obj) + # self.geo_editor.update_options(edited_obj) + + self.geo_editor.deactivate() # restore GUI to the Selected TAB - # Remove anything else in the AppGUI + # Remove anything else in the GUI self.ui.tool_scroll_area.takeWidget() # update the geo object options so it is including the bounding box values @@ -2255,19 +2275,21 @@ class App(QtCore.QObject): log.debug("App.editor2object() --> Geometry --> %s" % str(e)) edited_obj.build_ui() - edited_obj.plot() self.inform.emit('[success] %s' % _("Editor exited. Editor content saved.")) elif isinstance(edited_obj, GerberObject): obj_type = "Gerber" - self.grb_editor.update_fcgerber() - # self.grb_editor.update_options(edited_obj) + if cleanup is None: + self.grb_editor.update_fcgerber() + self.grb_editor.update_options(edited_obj) + self.grb_editor.deactivate_grb_editor() # delete the old object (the source object) if it was an empty one try: if len(edited_obj.solid_geometry) == 0: old_name = edited_obj.options['name'] - self.collection.delete_by_name(old_name) + self.collection.set_active(old_name) + self.collection.delete_active() except TypeError: # if the solid_geometry is a single Polygon the len() will not work # in any case, falling here means that we have something in the solid_geometry, even if only @@ -2277,16 +2299,19 @@ class App(QtCore.QObject): self.inform.emit('[success] %s' % _("Editor exited. Editor content saved.")) # restore GUI to the Selected TAB - # Remove anything else in the AppGUI + # Remove anything else in the GUI self.ui.selected_scroll_area.takeWidget() elif isinstance(edited_obj, ExcellonObject): obj_type = "Excellon" - self.exc_editor.update_fcexcellon(edited_obj) - # self.exc_editor.update_options(edited_obj) + if cleanup is None: + self.exc_editor.update_fcexcellon(edited_obj) + # self.exc_editor.update_options(edited_obj) + + self.exc_editor.deactivate() # restore GUI to the Selected TAB - # Remove anything else in the AppGUI + # Remove anything else in the GUI self.ui.tool_scroll_area.takeWidget() # delete the old object (the source object) if it was an empty one @@ -2312,7 +2337,6 @@ class App(QtCore.QObject): if isinstance(edited_obj, GeometryObject): self.geo_editor.deactivate() edited_obj.build_ui() - edited_obj.plot() elif isinstance(edited_obj, GerberObject): self.grb_editor.deactivate_grb_editor() edited_obj.build_ui() @@ -2329,7 +2353,7 @@ class App(QtCore.QObject): # edited_obj.set_ui(edited_obj.ui_type(decimals=self.decimals)) # edited_obj.build_ui() # Switch notebook to Selected page - # self.ui.notebook.setCurrentWidget(self.ui.selected_tab) + self.ui.notebook.setCurrentWidget(self.ui.selected_tab) else: if isinstance(edited_obj, GeometryObject): self.geo_editor.deactivate() @@ -2349,7 +2373,7 @@ class App(QtCore.QObject): # restore the call_source to app self.call_source = 'app' - # edited_obj.plot() + edited_obj.plot() self.ui.plot_tab_area.setTabText(0, "Plot Area") self.ui.plot_tab_area.protectTab(0) @@ -2376,17 +2400,12 @@ class App(QtCore.QObject): loc = os.path.dirname(__file__) return loc - @QtCore.pyqtSlot(str) - @QtCore.pyqtSlot(str, bool) - def info(self, msg, shell_echo=True): + def info(self, msg): """ Informs the user. Normally on the status bar, optionally also on the shell. - :param msg: Text to write. - :type msg: str - :param shell_echo: Control if to display the message msg in the Shell - :type shell_echo: bool + :param msg: Text to write. :return: None """ @@ -2397,35 +2416,88 @@ class App(QtCore.QObject): msg_ = match.group(2) self.ui.fcinfo.set_status(str(msg_), level=level) - if shell_echo is True: - if level.lower() == "error": - self.shell_message(msg, error=True, show=True) - elif level.lower() == "warning": - self.shell_message(msg, warning=True, show=True) + if level.lower() == "error": + self.shell_message(msg, error=True, show=True) + elif level.lower() == "warning": + self.shell_message(msg, warning=True, show=True) - elif level.lower() == "error_notcl": - self.shell_message(msg, error=True, show=False) + elif level.lower() == "error_notcl": + self.shell_message(msg, error=True, show=False) - elif level.lower() == "warning_notcl": - self.shell_message(msg, warning=True, show=False) + elif level.lower() == "warning_notcl": + self.shell_message(msg, warning=True, show=False) - elif level.lower() == "success": - self.shell_message(msg, success=True, show=False) + elif level.lower() == "success": + self.shell_message(msg, success=True, show=False) - elif level.lower() == "selected": - self.shell_message(msg, selected=True, show=False) + elif level.lower() == "selected": + self.shell_message(msg, selected=True, show=False) - else: - self.shell_message(msg, show=False) + else: + self.shell_message(msg, show=False) else: self.ui.fcinfo.set_status(str(msg), level="info") # make sure that if the message is to clear the infobar with a space # is not printed over and over on the shell - if msg != '' and shell_echo is True: + if msg != '': self.shell_message(msg) + def restore_toolbar_view(self): + """ + Some toolbars may be hidden by user and here we restore the state of the toolbars visibility that + was saved in the defaults dictionary. + + :return: None + """ + tb = self.defaults["global_toolbar_view"] + + if tb & 1: + self.ui.toolbarfile.setVisible(True) + else: + self.ui.toolbarfile.setVisible(False) + + if tb & 2: + self.ui.toolbargeo.setVisible(True) + else: + self.ui.toolbargeo.setVisible(False) + + if tb & 4: + self.ui.toolbarview.setVisible(True) + else: + self.ui.toolbarview.setVisible(False) + + if tb & 8: + self.ui.toolbartools.setVisible(True) + else: + self.ui.toolbartools.setVisible(False) + + if tb & 16: + self.ui.exc_edit_toolbar.setVisible(True) + else: + self.ui.exc_edit_toolbar.setVisible(False) + + if tb & 32: + self.ui.geo_edit_toolbar.setVisible(True) + else: + self.ui.geo_edit_toolbar.setVisible(False) + + if tb & 64: + self.ui.grb_edit_toolbar.setVisible(True) + else: + self.ui.grb_edit_toolbar.setVisible(False) + + if tb & 128: + self.ui.snap_toolbar.setVisible(True) + else: + self.ui.snap_toolbar.setVisible(False) + + if tb & 256: + self.ui.toolbarshell.setVisible(True) + else: + self.ui.toolbarshell.setVisible(False) + def on_import_preferences(self): """ Loads the application default settings from a saved file into @@ -2477,11 +2549,10 @@ class App(QtCore.QObject): filename, _f = FCFileSaveDialog.get_saved_filename( caption=_("Export FlatCAM Preferences"), directory=self.data_path + '/preferences_' + date, - ext_filter=filter__ + filter=filter__ ) except TypeError: - filename, _f = FCFileSaveDialog.get_saved_filename( - caption=_("Export FlatCAM Preferences"), ext_filter=filter__) + filename, _f = FCFileSaveDialog.get_saved_filename(caption=_("Export FlatCAM Preferences"), filter=filter__) filename = str(filename) if filename == "": self.inform.emit('[WARNING_NOTCL] %s' % _("Cancelled.")) @@ -2523,10 +2594,10 @@ class App(QtCore.QObject): filename, _f = FCFileSaveDialog.get_saved_filename( caption=_("Save to file"), directory=path_to_save + '/file_' + self.date, - ext_filter=filter__ + filter=filter__ ) except TypeError: - filename, _f = FCFileSaveDialog.get_saved_filename(caption=_("Save to file"), ext_filter=filter__) + filename, _f = FCFileSaveDialog.get_saved_filename(caption=_("Save to file"), filter=filter__) filename = str(filename) @@ -2568,6 +2639,52 @@ class App(QtCore.QObject): self.inform.emit('[success] %s: %s' % (_("Exported file to"), filename)) + def save_geometry(self, x, y, width, height, notebook_width): + """ + Will save the application geometry and positions in the defaults discitionary to be restored at the next + launch of the application. + + :param x: X position of the main window + :param y: Y position of the main window + :param width: width of the main window + :param height: height of the main window + :param notebook_width: the notebook width is adjustable so it get saved here, too. + + :return: None + """ + self.defaults["global_def_win_x"] = x + self.defaults["global_def_win_y"] = y + self.defaults["global_def_win_w"] = width + self.defaults["global_def_win_h"] = height + self.defaults["global_def_notebook_width"] = notebook_width + self.preferencesUiManager.save_defaults() + + def restore_main_win_geom(self): + try: + self.ui.setGeometry(self.defaults["global_def_win_x"], + self.defaults["global_def_win_y"], + self.defaults["global_def_win_w"], + self.defaults["global_def_win_h"]) + self.ui.splitter.setSizes([self.defaults["global_def_notebook_width"], 0]) + except KeyError as e: + log.debug("App.restore_main_win_geom() --> %s" % str(e)) + + def message_dialog(self, title, message, kind="info"): + """ + Builds and show a custom QMessageBox to be used in FlatCAM. + + :param title: title of the QMessageBox + :param message: message to be displayed + :param kind: type of QMessageBox; will display a specific icon. + :return: + """ + icon = {"info": QtWidgets.QMessageBox.Information, + "warning": QtWidgets.QMessageBox.Warning, + "error": QtWidgets.QMessageBox.Critical}[str(kind)] + dlg = QtWidgets.QMessageBox(icon, title, message, parent=self.ui) + dlg.setText(message) + dlg.exec_() + def register_recent(self, kind, filename): """ Will register the files opened into record dictionaries. The FlatCAM projects has it's own @@ -2623,6 +2740,344 @@ class App(QtCore.QObject): # Re-build the recent items menu self.setup_recent_items() + def new_object(self, kind, name, initialize, plot=True, autoselected=True): + """ + Creates a new specialized FlatCAMObj and attaches it to the application, + this is, updates the GUI accordingly, any other records and plots it. + This method is thread-safe. + + Notes: + * If the name is in use, the self.collection will modify it + when appending it to the collection. There is no need to handle + name conflicts here. + + :param kind: The kind of object to create. One of 'gerber', 'excellon', 'cncjob' and 'geometry'. + :type kind: str + :param name: Name for the object. + :type name: str + :param initialize: Function to run after creation of the object but before it is attached to the application. + The function is called with 2 parameters: the new object and the App instance. + :type initialize: function + :param plot: If to plot the resulting object + :param autoselected: if the resulting object is autoselected in the Project tab and therefore in the + self.collection + :return: None + :rtype: None + """ + + App.log.debug("new_object()") + obj_plot = plot + obj_autoselected = autoselected + + t0 = time.time() # Debug + + # ## Create object + classdict = { + "gerber": GerberObject, + "excellon": ExcellonObject, + "cncjob": CNCJobObject, + "geometry": GeometryObject, + "script": ScriptObject, + "document": DocumentObject + } + + App.log.debug("Calling object constructor...") + + # Object creation/instantiation + obj = classdict[kind](name) + + obj.units = self.options["units"] + + # IMPORTANT + # The key names in defaults and options dictionary's are not random: + # they have to have in name first the type of the object (geometry, excellon, cncjob and gerber) or how it's + # called here, the 'kind' followed by an underline. Above the App default values from self.defaults are + # copied to self.options. After that, below, depending on the type of + # object that is created, it will strip the name of the object and the underline (if the original key was + # let's say "excellon_toolchange", it will strip the excellon_) and to the obj.options the key will become + # "toolchange" + + for option in self.options: + if option.find(kind + "_") == 0: + oname = option[len(kind) + 1:] + obj.options[oname] = self.options[option] + + obj.isHovering = False + obj.notHovering = True + + # Initialize as per user request + # User must take care to implement initialize + # in a thread-safe way as is is likely that we + # have been invoked in a separate thread. + t1 = time.time() + self.log.debug("%f seconds before initialize()." % (t1 - t0)) + try: + return_value = initialize(obj, self) + except Exception as e: + msg = '[ERROR_NOTCL] %s' % _("An internal error has occurred. See shell.\n") + msg += _("Object ({kind}) failed because: {error} \n\n").format(kind=kind, error=str(e)) + msg += traceback.format_exc() + self.inform.emit(msg) + return "fail" + + t2 = time.time() + self.log.debug("%f seconds executing initialize()." % (t2 - t1)) + + if return_value == 'fail': + log.debug("Object (%s) parsing and/or geometry creation failed." % kind) + return "fail" + + # Check units and convert if necessary + # This condition CAN be true because initialize() can change obj.units + if self.options["units"].upper() != obj.units.upper(): + self.inform.emit('%s: %s' % (_("Converting units to "), self.options["units"])) + obj.convert_units(self.options["units"]) + t3 = time.time() + self.log.debug("%f seconds converting units." % (t3 - t2)) + + # Create the bounding box for the object and then add the results to the obj.options + # But not for Scripts or for Documents + if kind != 'document' and kind != 'script': + try: + xmin, ymin, xmax, ymax = obj.bounds() + obj.options['xmin'] = xmin + obj.options['ymin'] = ymin + obj.options['xmax'] = xmax + obj.options['ymax'] = ymax + except Exception as e: + log.warning("App.new_object() -> The object has no bounds properties. %s" % str(e)) + return "fail" + + try: + if kind == 'excellon': + obj.fill_color = self.defaults["excellon_plot_fill"] + obj.outline_color = self.defaults["excellon_plot_line"] + + if kind == 'gerber': + obj.fill_color = self.defaults["gerber_plot_fill"] + obj.outline_color = self.defaults["gerber_plot_line"] + except Exception as e: + log.warning("App.new_object() -> setting colors error. %s" % str(e)) + + # update the KeyWords list with the name of the file + self.myKeywords.append(obj.options['name']) + + log.debug("Moving new object back to main thread.") + + # Move the object to the main thread and let the app know that it is available. + obj.moveToThread(self.main_thread) + self.object_created.emit(obj, obj_plot, obj_autoselected) + + return obj + + def new_excellon_object(self): + """ + Creates a new, blank Excellon object. + + :return: None + """ + self.defaults.report_usage("new_excellon_object()") + + self.new_object('excellon', 'new_exc', lambda x, y: None, plot=False) + + def new_geometry_object(self): + """ + Creates a new, blank and single-tool Geometry object. + + :return: None + """ + self.defaults.report_usage("new_geometry_object()") + + def initialize(obj, app): + obj.multitool = False + + self.new_object('geometry', 'new_geo', initialize, plot=False) + + def new_gerber_object(self): + """ + Creates a new, blank Gerber object. + + :return: None + """ + self.defaults.report_usage("new_gerber_object()") + + def initialize(grb_obj, app): + grb_obj.multitool = False + grb_obj.source_file = [] + grb_obj.multigeo = False + grb_obj.follow = False + grb_obj.apertures = {} + grb_obj.solid_geometry = [] + + try: + grb_obj.options['xmin'] = 0 + grb_obj.options['ymin'] = 0 + grb_obj.options['xmax'] = 0 + grb_obj.options['ymax'] = 0 + except KeyError: + pass + + self.new_object('gerber', 'new_grb', initialize, plot=False) + + def new_script_object(self): + """ + Creates a new, blank TCL Script object. + + :return: None + """ + self.defaults.report_usage("new_script_object()") + + # commands_list = "# AddCircle, AddPolygon, AddPolyline, AddRectangle, AlignDrill, " \ + # "AlignDrillGrid, Bbox, Bounds, ClearShell, CopperClear,\n" \ + # "# Cncjob, Cutout, Delete, Drillcncjob, ExportDXF, ExportExcellon, ExportGcode,\n" \ + # "# ExportGerber, ExportSVG, Exteriors, Follow, GeoCutout, GeoUnion, GetNames,\n" \ + # "# GetSys, ImportSvg, Interiors, Isolate, JoinExcellon, JoinGeometry, " \ + # "ListSys, MillDrills,\n" \ + # "# MillSlots, Mirror, New, NewExcellon, NewGeometry, NewGerber, Nregions, " \ + # "Offset, OpenExcellon, OpenGCode, OpenGerber, OpenProject,\n" \ + # "# Options, Paint, Panelize, PlotAl, PlotObjects, SaveProject, " \ + # "SaveSys, Scale, SetActive, SetSys, SetOrigin, Skew, SubtractPoly,\n" \ + # "# SubtractRectangle, Version, WriteGCode\n" + + new_source_file = '# %s\n' % _('CREATE A NEW FLATCAM TCL SCRIPT') + \ + '# %s:\n' % _('TCL Tutorial is here') + \ + '# https://www.tcl.tk/man/tcl8.5/tutorial/tcltutorial.html\n' + '\n\n' + \ + '# %s:\n' % _("FlatCAM commands list") + new_source_file += '# %s\n\n' % _("Type >help< followed by Run Code for a list of FlatCAM Tcl Commands " + "(displayed in Tcl Shell).") + + def initialize(obj, app): + obj.source_file = deepcopy(new_source_file) + + outname = 'new_script' + self.new_object('script', outname, initialize, plot=False) + + def new_document_object(self): + """ + Creates a new, blank Document object. + + :return: None + """ + self.defaults.report_usage("new_document_object()") + + def initialize(obj, app): + obj.source_file = "" + + self.new_object('document', 'new_document', initialize, plot=False) + + def on_object_created(self, obj, plot, auto_select): + """ + Event callback for object creation. + It will add the new object to the collection. After that it will plot the object in a threaded way + + :param obj: The newly created FlatCAM object. + :param plot: if the newly create object t obe plotted + :param auto_select: if the newly created object to be autoselected after creation + :return: None + """ + t0 = time.time() # DEBUG + self.log.debug("on_object_created()") + + # The Collection might change the name if there is a collision + self.collection.append(obj) + + # after adding the object to the collection always update the list of objects that are in the collection + self.all_objects_list = self.collection.get_list() + + # self.inform.emit('[selected] %s created & selected: %s' % + # (str(obj.kind).capitalize(), str(obj.options['name']))) + if obj.kind == 'gerber': + self.inform.emit('[selected] {kind} {tx}: {name}'.format( + kind=obj.kind.capitalize(), + color='green', + name=str(obj.options['name']), tx=_("created/selected")) + ) + elif obj.kind == 'excellon': + self.inform.emit('[selected] {kind} {tx}: {name}'.format( + kind=obj.kind.capitalize(), + color='brown', + name=str(obj.options['name']), tx=_("created/selected")) + ) + elif obj.kind == 'cncjob': + self.inform.emit('[selected] {kind} {tx}: {name}'.format( + kind=obj.kind.capitalize(), + color='blue', + name=str(obj.options['name']), tx=_("created/selected")) + ) + elif obj.kind == 'geometry': + self.inform.emit('[selected] {kind} {tx}: {name}'.format( + kind=obj.kind.capitalize(), + color='red', + name=str(obj.options['name']), tx=_("created/selected")) + ) + elif obj.kind == 'script': + self.inform.emit('[selected] {kind} {tx}: {name}'.format( + kind=obj.kind.capitalize(), + color='orange', + name=str(obj.options['name']), tx=_("created/selected")) + ) + elif obj.kind == 'document': + self.inform.emit('[selected] {kind} {tx}: {name}'.format( + kind=obj.kind.capitalize(), + color='darkCyan', + name=str(obj.options['name']), tx=_("created/selected")) + ) + + # update the SHELL auto-completer model with the name of the new object + self.shell._edit.set_model_data(self.myKeywords) + + if auto_select: + # select the just opened object but deselect the previous ones + self.collection.set_all_inactive() + self.collection.set_active(obj.options["name"]) + else: + self.collection.set_all_inactive() + + # here it is done the object plotting + def worker_task(t_obj): + with self.proc_container.new(_("Plotting")): + if isinstance(t_obj, CNCJobObject): + t_obj.plot(kind=self.defaults["cncjob_plot_kind"]) + else: + t_obj.plot() + t1 = time.time() # DEBUG + self.log.debug("%f seconds adding object and plotting." % (t1 - t0)) + self.object_plotted.emit(t_obj) + + # Send to worker + # self.worker.add_task(worker_task, [self]) + if plot is True: + self.worker_task.emit({'fcn': worker_task, 'params': [obj]}) + + def on_object_changed(self, obj): + """ + Called whenever the geometry of the object was changed in some way. + This require the update of it's bounding values so it can be the selected on canvas. + Update the bounding box data from obj.options + + :param obj: the object that was changed + :return: None + """ + + xmin, ymin, xmax, ymax = obj.bounds() + obj.options['xmin'] = xmin + obj.options['ymin'] = ymin + obj.options['xmax'] = xmax + obj.options['ymax'] = ymax + + log.debug("Object changed, updating the bounding box data on self.options") + # delete the old selection shape + self.delete_selection_shape() + self.should_we_save = True + + def on_object_plotted(self): + """ + Callback called whenever the plotted object needs to be fit into the viewport (canvas) + + :return: None + """ + self.on_zoom_fit(None) + def on_about(self): """ Displays the "about" dialog found in the Menu --> Help. @@ -2728,9 +3183,6 @@ class App(QtCore.QObject): 'title="Flaticon">www.flaticon.com' '
Icons by Icons8
' 'Icons by oNline Web Fonts' - '
Icons by Pixel perfect from www.flaticon.com
' ) ) attributions_label.setOpenExternalLinks(True) @@ -2943,83 +3395,6 @@ class App(QtCore.QObject): AboutDialog(app=self, parent=self.ui).exec_() - def on_readme(self): - class AboutDialog(QtWidgets.QDialog): - def __init__(self, app, parent=None): - QtWidgets.QDialog.__init__(self, parent) - - self.app = app - - open_source_link = "Open Source" - new_features_link = "new features" - - bugs_link = "report bugs" - donation_link = "donation" - - # Icon and title - self.setWindowIcon(parent.app_icon) - self.setWindowTitle(_("Important Information's")) - self.resize(720, 330) - - logo = QtWidgets.QLabel() - logo.setPixmap(QtGui.QPixmap(self.app.resource_location + '/contribute256.png')) - - content = QtWidgets.QLabel( - "This program is %s and free in a very wide meaning of the word.
" - "Yet it cannot evolve without contributions.

" - "If you want to see this application evolve and grow, or if you make money with it,
" - "you can contribute to the development yourself by:
" - "" - "There are no strings attached.
" - "You don't have to make a %s, and it is totally optional but:" - "" % - (open_source_link, new_features_link, bugs_link, donation_link, donation_link) - ) - content.setOpenExternalLinks(True) - closebtn = QtWidgets.QPushButton(_("Close")) - - # layouts - layout1 = QtWidgets.QVBoxLayout() - self.setLayout(layout1) - - pal = QtGui.QPalette() - pal.setColor(QtGui.QPalette.Background, Qt.white) - - self.grid_lay = QtWidgets.QGridLayout() - self.grid_lay.setHorizontalSpacing(20) - self.grid_lay.setColumnStretch(0, 0) - self.grid_lay.setColumnStretch(1, 1) - - content_widget = QtWidgets.QWidget() - content_widget.setLayout(self.grid_lay) - scroll_area = QtWidgets.QScrollArea() - scroll_area.setWidget(content_widget) - scroll_area.setWidgetResizable(True) - scroll_area.setFrameShape(QtWidgets.QFrame.NoFrame) - scroll_area.setPalette(pal) - - self.grid_lay.addWidget(logo, 0, 0) - self.grid_lay.addWidget(content, 0, 1) - layout1.addWidget(scroll_area) - - layout2 = QtWidgets.QHBoxLayout() - layout1.addLayout(layout2) - layout2.addStretch() - layout2.addWidget(closebtn) - - closebtn.clicked.connect(self.accept) - - AboutDialog(app=self, parent=self.ui).exec_() - def install_bookmarks(self, book_dict=None): """ Install the bookmarks actions in the Help menu -> Bookmarks @@ -3101,7 +3476,7 @@ class App(QtCore.QObject): # delete the absolute and relative position and messages in the infobar self.ui.position_label.setText("") - # self.ui.rel_position_label.setText("") + self.ui.rel_position_label.setText("") # Switch plot_area to preferences page self.ui.plot_tab_area.setCurrentWidget(self.book_dialog_tab) @@ -3117,8 +3492,6 @@ class App(QtCore.QObject): msgbox.setWindowTitle(_("Alternative website")) msgbox.setWindowIcon(QtGui.QIcon(self.resource_location + '/globe16.png')) - msgbox.setIcon(QtWidgets.QMessageBox.Question) - bt_yes = msgbox.addButton(_('Close'), QtWidgets.QMessageBox.YesRole) msgbox.setDefaultButton(bt_yes) @@ -3153,8 +3526,6 @@ class App(QtCore.QObject): "Do you want to Save the project?")) msgbox.setWindowTitle(_("Save changes")) msgbox.setWindowIcon(QtGui.QIcon(self.resource_location + '/save_as.png')) - msgbox.setIcon(QtWidgets.QMessageBox.Question) - bt_yes = msgbox.addButton(_('Yes'), QtWidgets.QMessageBox.YesRole) bt_no = msgbox.addButton(_('No'), QtWidgets.QMessageBox.NoRole) bt_cancel = msgbox.addButton(_('Cancel'), QtWidgets.QMessageBox.RejectRole) @@ -3214,11 +3585,6 @@ class App(QtCore.QObject): 'textbox_font_size', self.ui.general_defaults_form.general_app_set_group.textbox_font_size_spinner.get_value() ) - stgs.setValue( - 'hud_font_size', - self.ui.general_defaults_form.general_app_set_group.hud_font_size_spinner.get_value() - ) - stgs.setValue('toolbar_lock', self.ui.lock_action.isChecked()) stgs.setValue( 'machinist', @@ -3677,7 +4043,7 @@ class App(QtCore.QObject): for v in geo_obj.tools.values(): v['data']['name'] = obj_name_multi - self.app_obj.new_object("geometry", obj_name_multi, initialize) + self.new_object("geometry", obj_name_multi, initialize) else: def initialize(geo_obj, app): GeometryObject.merge(geo_list=objs, geo_final=geo_obj, multigeo=False) @@ -3687,7 +4053,7 @@ class App(QtCore.QObject): for v in geo_obj.tools.values(): v['data']['name'] = obj_name_single - self.app_obj.new_object("geometry", obj_name_single, initialize) + self.new_object("geometry", obj_name_single, initialize) self.should_we_save = True @@ -3716,7 +4082,7 @@ class App(QtCore.QObject): ExcellonObject.merge(exc_list=objs, exc_final=exc_obj, decimals=self.decimals) app.inform.emit('[success] %s.' % _("Excellon merging finished")) - self.app_obj.new_object("excellon", 'Combo_Excellon', initialize) + self.new_object("excellon", 'Combo_Excellon', initialize) self.should_we_save = True def on_edit_join_grb(self): @@ -3744,7 +4110,7 @@ class App(QtCore.QObject): GerberObject.merge(grb_list=objs, grb_final=grb_obj) app.inform.emit('[success] %s.' % _("Gerber merging finished")) - self.app_obj.new_object("gerber", 'Combo_Gerber', initialize) + self.new_object("gerber", 'Combo_Gerber', initialize) self.should_we_save = True def on_convert_singlegeo_to_multigeo(self): @@ -3882,10 +4248,9 @@ class App(QtCore.QObject): return # Keys in self.defaults for which to scale their values - dimensions = ['tools_iso_tooldia', 'gerber_noncoppermargin', 'gerber_bboxmargin', - "gerber_editor_newsize", "gerber_editor_lin_pitch", "gerber_editor_buff_f", - "tools_iso_tool_vtipdia", - "tools_iso_tool_cutz", "gerber_editor_newdim", "gerber_editor_ma_low", + dimensions = ['gerber_isotooldia', 'gerber_noncoppermargin', 'gerber_bboxmargin', + "gerber_editor_newsize", "gerber_editor_lin_pitch", "gerber_editor_buff_f", "gerber_vtipdia", + "gerber_vcutz", "gerber_editor_newdim", "gerber_editor_ma_low", "gerber_editor_ma_high", 'excellon_cutz', 'excellon_travelz', "excellon_toolchangexy", 'excellon_offset', @@ -4028,8 +4393,6 @@ class App(QtCore.QObject): msgbox = QtWidgets.QMessageBox() msgbox.setWindowTitle(_("Toggle Units")) msgbox.setWindowIcon(QtGui.QIcon(self.resource_location + '/toggle_units32.png')) - msgbox.setIcon(QtWidgets.QMessageBox.Question) - msgbox.setText(_("Changing the units of the project\n" "will scale all objects.\n\n" "Do you want to continue?")) @@ -4056,7 +4419,7 @@ class App(QtCore.QObject): obj.convert_units(new_units) # make that the properties stored in the object are also updated - self.app_obj.object_changed.emit(obj) + self.object_changed.emit(obj) # rebuild the object UI obj.build_ui() @@ -4097,7 +4460,7 @@ class App(QtCore.QObject): val_x = float(self.defaults['global_gridx']) val_y = float(self.defaults['global_gridy']) - self.inform.emit('[WARNING_NOTCL] %s' % _("Cancelled.")) + self.inform.emit('[WARNING_NOTCL]%s' % _("Cancelled.")) self.preferencesUiManager.defaults_read_form() @@ -4109,6 +4472,373 @@ class App(QtCore.QObject): self.ui.grid_gap_x_entry.set_value(val_x, decimals=self.decimals) self.ui.grid_gap_y_entry.set_value(val_y, decimals=self.decimals) + def on_fullscreen(self, disable=False): + self.defaults.report_usage("on_fullscreen()") + + flags = self.ui.windowFlags() + if self.toggle_fscreen is False and disable is False: + # self.ui.showFullScreen() + self.ui.setWindowFlags(flags | Qt.FramelessWindowHint) + a = self.ui.geometry() + self.x_pos = a.x() + self.y_pos = a.y() + self.width = a.width() + self.height = a.height() + + # set new geometry to full desktop rect + # Subtracting and adding the pixels below it's hack to bypass a bug in Qt5 and OpenGL that made that a + # window drawn with OpenGL in fullscreen will not show any other windows on top which means that menus and + # everything else will not work without this hack. This happen in Windows. + # https://bugreports.qt.io/browse/QTBUG-41309 + desktop = QtWidgets.QApplication.desktop() + screen = desktop.screenNumber(QtGui.QCursor.pos()) + + rec = desktop.screenGeometry(screen) + x = rec.x() - 1 + y = rec.y() - 1 + h = rec.height() + 2 + w = rec.width() + 2 + self.ui.setGeometry(x, y, w, h) + self.ui.show() + + for tb in self.ui.findChildren(QtWidgets.QToolBar): + tb.setVisible(False) + self.ui.splitter_left.setVisible(False) + self.toggle_fscreen = True + elif self.toggle_fscreen is True or disable is True: + self.ui.setWindowFlags(flags & ~Qt.FramelessWindowHint) + self.ui.setGeometry(self.x_pos, self.y_pos, self.width, self.height) + self.ui.showNormal() + self.restore_toolbar_view() + self.ui.splitter_left.setVisible(True) + self.toggle_fscreen = False + + def on_toggle_plotarea(self): + self.defaults.report_usage("on_toggle_plotarea()") + + try: + name = self.ui.plot_tab_area.widget(0).objectName() + except AttributeError: + self.ui.plot_tab_area.addTab(self.ui.plot_tab, "Plot Area") + # remove the close button from the Plot Area tab (first tab index = 0) as this one will always be ON + self.ui.plot_tab_area.protectTab(0) + return + + if name != 'plotarea_tab': + self.ui.plot_tab_area.insertTab(0, self.ui.plot_tab, "Plot Area") + # remove the close button from the Plot Area tab (first tab index = 0) as this one will always be ON + self.ui.plot_tab_area.protectTab(0) + else: + self.ui.plot_tab_area.closeTab(0) + + def on_toggle_notebook(self): + if self.ui.splitter.sizes()[0] == 0: + self.ui.splitter.setSizes([1, 1]) + self.ui.menu_toggle_nb.setChecked(True) + else: + self.ui.splitter.setSizes([0, 1]) + self.ui.menu_toggle_nb.setChecked(False) + + def on_toggle_axis(self): + self.defaults.report_usage("on_toggle_axis()") + + if self.toggle_axis is False: + if self.is_legacy is False: + self.plotcanvas.v_line = InfiniteLine(pos=0, color=(0.70, 0.3, 0.3, 1.0), vertical=True, + parent=self.plotcanvas.view.scene) + + self.plotcanvas.h_line = InfiniteLine(pos=0, color=(0.70, 0.3, 0.3, 1.0), vertical=False, + parent=self.plotcanvas.view.scene) + else: + if self.plotcanvas.h_line not in self.plotcanvas.axes.lines and \ + self.plotcanvas.v_line not in self.plotcanvas.axes.lines: + self.plotcanvas.h_line = self.plotcanvas.axes.axhline(color=(0.70, 0.3, 0.3), linewidth=2) + self.plotcanvas.v_line = self.plotcanvas.axes.axvline(color=(0.70, 0.3, 0.3), linewidth=2) + self.plotcanvas.canvas.draw() + + self.toggle_axis = True + else: + if self.is_legacy is False: + self.plotcanvas.v_line.parent = None + self.plotcanvas.h_line.parent = None + else: + if self.plotcanvas.h_line in self.plotcanvas.axes.lines and \ + self.plotcanvas.v_line in self.plotcanvas.axes.lines: + self.plotcanvas.axes.lines.remove(self.plotcanvas.h_line) + self.plotcanvas.axes.lines.remove(self.plotcanvas.v_line) + self.plotcanvas.canvas.draw() + self.toggle_axis = False + + def on_toggle_grid(self): + self.defaults.report_usage("on_toggle_grid()") + + self.ui.grid_snap_btn.trigger() + self.ui.on_grid_snap_triggered(state=True) + + def on_toggle_grid_lines(self): + self.defaults.report_usage("on_toggle_grd_lines()") + + tt_settings = QtCore.QSettings("Open Source", "FlatCAM") + if tt_settings.contains("theme"): + theme = tt_settings.value('theme', type=str) + else: + theme = 'white' + + if self.toggle_grid_lines is False: + if self.is_legacy is False: + if theme == 'white': + self.plotcanvas.grid._grid_color_fn['color'] = Color('dimgray').rgba + else: + self.plotcanvas.grid._grid_color_fn['color'] = Color('#dededeff').rgba + else: + self.plotcanvas.axes.grid(True) + try: + self.plotcanvas.canvas.draw() + except IndexError: + pass + pass + self.toggle_grid_lines = True + else: + if self.is_legacy is False: + if theme == 'white': + self.plotcanvas.grid._grid_color_fn['color'] = Color('#ffffffff').rgba + else: + self.plotcanvas.grid._grid_color_fn['color'] = Color('#000000FF').rgba + else: + self.plotcanvas.axes.grid(False) + try: + self.plotcanvas.canvas.draw() + except IndexError: + pass + self.toggle_grid_lines = False + + if self.is_legacy is False: + # HACK: enabling/disabling the cursor seams to somehow update the shapes on screen + # - perhaps is a bug in VisPy implementation + if self.grid_status() is True: + self.app_cursor.enabled = False + self.app_cursor.enabled = True + else: + self.app_cursor.enabled = True + self.app_cursor.enabled = False + + def on_update_exc_export(self, state): + """ + This is handling the update of Excellon Export parameters based on the ones in the Excellon General but only + if the update_excellon_cb checkbox is checked + + :param state: state of the checkbox whose signals is tied to his slot + :return: + """ + if state: + # first try to disconnect + try: + self.ui.excellon_defaults_form.excellon_gen_group.excellon_format_upper_in_entry.returnPressed. \ + disconnect(self.on_excellon_format_changed) + except TypeError: + pass + try: + self.ui.excellon_defaults_form.excellon_gen_group.excellon_format_lower_in_entry.returnPressed. \ + disconnect(self.on_excellon_format_changed) + except TypeError: + pass + try: + self.ui.excellon_defaults_form.excellon_gen_group.excellon_format_upper_mm_entry.returnPressed. \ + disconnect(self.on_excellon_format_changed) + except TypeError: + pass + try: + self.ui.excellon_defaults_form.excellon_gen_group.excellon_format_lower_mm_entry.returnPressed. \ + disconnect(self.on_excellon_format_changed) + except TypeError: + pass + + try: + self.ui.excellon_defaults_form.excellon_gen_group.excellon_zeros_radio.activated_custom. \ + disconnect(self.on_excellon_zeros_changed) + except TypeError: + pass + try: + self.ui.excellon_defaults_form.excellon_gen_group.excellon_units_radio.activated_custom. \ + disconnect(self.on_excellon_zeros_changed) + except TypeError: + pass + + # the connect them + self.ui.excellon_defaults_form.excellon_gen_group.excellon_format_upper_in_entry.returnPressed.connect( + self.on_excellon_format_changed) + self.ui.excellon_defaults_form.excellon_gen_group.excellon_format_lower_in_entry.returnPressed.connect( + self.on_excellon_format_changed) + self.ui.excellon_defaults_form.excellon_gen_group.excellon_format_upper_mm_entry.returnPressed.connect( + self.on_excellon_format_changed) + self.ui.excellon_defaults_form.excellon_gen_group.excellon_format_lower_mm_entry.returnPressed.connect( + self.on_excellon_format_changed) + self.ui.excellon_defaults_form.excellon_gen_group.excellon_zeros_radio.activated_custom.connect( + self.on_excellon_zeros_changed) + self.ui.excellon_defaults_form.excellon_gen_group.excellon_units_radio.activated_custom.connect( + self.on_excellon_units_changed) + else: + # disconnect the signals + try: + self.ui.excellon_defaults_form.excellon_gen_group.excellon_format_upper_in_entry.returnPressed. \ + disconnect(self.on_excellon_format_changed) + except TypeError: + pass + try: + self.ui.excellon_defaults_form.excellon_gen_group.excellon_format_lower_in_entry.returnPressed. \ + disconnect(self.on_excellon_format_changed) + except TypeError: + pass + try: + self.ui.excellon_defaults_form.excellon_gen_group.excellon_format_upper_mm_entry.returnPressed. \ + disconnect(self.on_excellon_format_changed) + except TypeError: + pass + try: + self.ui.excellon_defaults_form.excellon_gen_group.excellon_format_lower_mm_entry.returnPressed. \ + disconnect(self.on_excellon_format_changed) + except TypeError: + pass + + try: + self.ui.excellon_defaults_form.excellon_gen_group.excellon_zeros_radio.activated_custom. \ + disconnect(self.on_excellon_zeros_changed) + except TypeError: + pass + try: + self.ui.excellon_defaults_form.excellon_gen_group.excellon_units_radio.activated_custom. \ + disconnect(self.on_excellon_zeros_changed) + except TypeError: + pass + + def on_excellon_format_changed(self): + """ + Slot activated when the user changes the Excellon format values in Preferences -> Excellon -> Excellon General + :return: None + """ + if self.ui.excellon_defaults_form.excellon_gen_group.excellon_units_radio.get_value().upper() == 'METRIC': + self.ui.excellon_defaults_form.excellon_exp_group.format_whole_entry.set_value( + self.ui.excellon_defaults_form.excellon_gen_group.excellon_format_upper_mm_entry.get_value() + ) + self.ui.excellon_defaults_form.excellon_exp_group.format_dec_entry.set_value( + self.ui.excellon_defaults_form.excellon_gen_group.excellon_format_lower_mm_entry.get_value() + ) + else: + self.ui.excellon_defaults_form.excellon_exp_group.format_whole_entry.set_value( + self.ui.excellon_defaults_form.excellon_gen_group.excellon_format_upper_in_entry.get_value() + ) + self.ui.excellon_defaults_form.excellon_exp_group.format_dec_entry.set_value( + self.ui.excellon_defaults_form.excellon_gen_group.excellon_format_lower_in_entry.get_value() + ) + + def on_excellon_zeros_changed(self): + """ + Slot activated when the user changes the Excellon zeros values in Preferences -> Excellon -> Excellon General + :return: None + """ + self.ui.excellon_defaults_form.excellon_exp_group.zeros_radio.set_value( + self.ui.excellon_defaults_form.excellon_gen_group.excellon_zeros_radio.get_value() + 'Z' + ) + + def on_excellon_units_changed(self): + """ + Slot activated when the user changes the Excellon unit values in Preferences -> Excellon -> Excellon General + :return: None + """ + self.ui.excellon_defaults_form.excellon_exp_group.excellon_units_radio.set_value( + self.ui.excellon_defaults_form.excellon_gen_group.excellon_units_radio.get_value() + ) + self.on_excellon_format_changed() + + def on_film_color_entry(self): + self.defaults['tools_film_color'] = \ + self.ui.tools_defaults_form.tools_film_group.film_color_entry.get_value() + self.ui.tools_defaults_form.tools_film_group.film_color_button.setStyleSheet( + "background-color:%s;" + "border-color: dimgray" % str(self.defaults['tools_film_color']) + ) + + def on_film_color_button(self): + current_color = QtGui.QColor(self.defaults['tools_film_color']) + + c_dialog = QtWidgets.QColorDialog() + film_color = c_dialog.getColor(initial=current_color) + + if film_color.isValid() is False: + return + + # if new color is different then mark that the Preferences are changed + if film_color != current_color: + self.preferencesUiManager.on_preferences_edited() + + self.ui.tools_defaults_form.tools_film_group.film_color_button.setStyleSheet( + "background-color:%s;" + "border-color: dimgray" % str(film_color.name()) + ) + new_val_sel = str(film_color.name()) + self.ui.tools_defaults_form.tools_film_group.film_color_entry.set_value(new_val_sel) + self.defaults['tools_film_color'] = new_val_sel + + def on_qrcode_fill_color_entry(self): + self.defaults['tools_qrcode_fill_color'] = \ + self.ui.tools2_defaults_form.tools2_qrcode_group.fill_color_entry.get_value() + self.ui.tools2_defaults_form.tools2_qrcode_group.fill_color_button.setStyleSheet( + "background-color:%s;" + "border-color: dimgray" % str(self.defaults['tools_qrcode_fill_color']) + ) + + def on_qrcode_fill_color_button(self): + current_color = QtGui.QColor(self.defaults['tools_qrcode_fill_color']) + + c_dialog = QtWidgets.QColorDialog() + fill_color = c_dialog.getColor(initial=current_color) + + if fill_color.isValid() is False: + return + + # if new color is different then mark that the Preferences are changed + if fill_color != current_color: + self.preferencesUiManager.on_preferences_edited() + + self.ui.tools2_defaults_form.tools2_qrcode_group.fill_color_button.setStyleSheet( + "background-color:%s;" + "border-color: dimgray" % str(fill_color.name()) + ) + + new_val_sel = str(fill_color.name()) + self.ui.tools2_defaults_form.tools2_qrcode_group.fill_color_entry.set_value(new_val_sel) + self.defaults['tools_qrcode_fill_color'] = new_val_sel + + def on_qrcode_back_color_entry(self): + self.defaults['tools_qrcode_back_color'] = \ + self.ui.tools2_defaults_form.tools2_qrcode_group.back_color_entry.get_value() + self.ui.tools2_defaults_form.tools2_qrcode_group.back_color_button.setStyleSheet( + "background-color:%s;" + "border-color: dimgray" % str(self.defaults['tools_qrcode_back_color']) + ) + + def on_qrcode_back_color_button(self): + current_color = QtGui.QColor(self.defaults['tools_qrcode_back_color']) + + c_dialog = QtWidgets.QColorDialog() + back_color = c_dialog.getColor(initial=current_color) + + if back_color.isValid() is False: + return + + # if new color is different then mark that the Preferences are changed + if back_color != current_color: + self.preferencesUiManager.on_preferences_edited() + + self.ui.tools2_defaults_form.tools2_qrcode_group.back_color_button.setStyleSheet( + "background-color:%s;" + "border-color: dimgray" % str(back_color.name()) + ) + + new_val_sel = str(back_color.name()) + self.ui.tools2_defaults_form.tools2_qrcode_group.back_color_entry.set_value(new_val_sel) + self.defaults['tools_qrcode_back_color'] = new_val_sel + def on_tab_rmb_click(self, checked): self.ui.notebook.set_detachable(val=checked) self.defaults["global_tabs_detachable"] = checked @@ -4139,18 +4869,16 @@ class App(QtCore.QObject): def on_workspace_modified(self): # self.save_defaults(silent=True) - - self.plotcanvas.delete_workspace() + if self.is_legacy is True: + self.plotcanvas.delete_workspace() self.preferencesUiManager.defaults_read_form() self.plotcanvas.draw_workspace(workspace_size=self.defaults['global_workspaceT']) def on_workspace(self): if self.ui.general_defaults_form.general_app_set_group.workspace_cb.get_value(): self.plotcanvas.draw_workspace(workspace_size=self.defaults['global_workspaceT']) - self.inform[str, bool].emit(_("Workspace enabled."), False) else: self.plotcanvas.delete_workspace() - self.inform[str, bool].emit(_("Workspace disabled."), False) self.preferencesUiManager.defaults_read_form() # self.save_defaults(silent=True) @@ -4160,7 +4888,6 @@ class App(QtCore.QObject): self.ui.general_defaults_form.general_app_set_group.workspace_cb.stateChanged.disconnect(self.on_workspace) except TypeError: pass - self.ui.general_defaults_form.general_app_set_group.workspace_cb.set_value(state) self.ui.general_defaults_form.general_app_set_group.workspace_cb.stateChanged.connect(self.on_workspace) self.on_workspace() @@ -4218,8 +4945,6 @@ class App(QtCore.QObject): "Go to Preferences -> General - Show Advanced Options.")) msgbox.setWindowTitle("Tool adding ...") msgbox.setWindowIcon(QtGui.QIcon(self.resource_location + '/warning.png')) - msgbox.setIcon(QtWidgets.QMessageBox.Warning) - bt_ok = msgbox.addButton(_('Ok'), QtWidgets.QMessageBox.AcceptRole) msgbox.setDefaultButton(bt_ok) @@ -4266,10 +4991,6 @@ class App(QtCore.QObject): # and only if the tool is Solder Paste Dispensing Tool elif tool_widget == self.paste_tool.toolName: self.paste_tool.on_tool_delete() - - # and only if the tool is Isolation Tool - elif tool_widget == self.isolation_tool.toolName: - self.isolation_tool.on_tool_delete() else: self.on_delete() @@ -4298,8 +5019,6 @@ class App(QtCore.QObject): msgbox = QtWidgets.QMessageBox() msgbox.setWindowTitle(_("Delete objects")) msgbox.setWindowIcon(QtGui.QIcon(self.resource_location + '/deleteshape32.png')) - msgbox.setIcon(QtWidgets.QMessageBox.Question) - # msgbox.setText("%s" % _("Change project units ...")) msgbox.setText(_("Are you sure you want to permanently delete\n" "the selected objects?")) @@ -4325,7 +5044,7 @@ class App(QtCore.QObject): obj_active.mark_shapes[el].enabled = False # obj_active.mark_shapes[el] = None del el - elif obj_active.kind == 'cncjob': + elif isinstance(obj_active, CNCJobObject): try: obj_active.text_col.enabled = False del obj_active.text_col @@ -4339,13 +5058,13 @@ class App(QtCore.QObject): while self.collection.get_selected(): self.delete_first_selected() + self.inform.emit('%s...' % _("Object(s) deleted")) # make sure that the selection shape is deleted, too self.delete_selection_shape() # if there are no longer objects delete also the exclusion areas shapes if not self.collection.get_list(): self.exc_areas.clear_shapes() - self.inform.emit('%s...' % _("Object(s) deleted")) else: self.inform.emit('[ERROR_NOTCL] %s' % _("Failed. No object(s) selected...")) else: @@ -4432,7 +5151,7 @@ class App(QtCore.QObject): for obj in obj_list: obj.offset((x, y)) - self.app_obj.object_changed.emit(obj) + self.object_changed.emit(obj) # Update the object bounding box options a, b, c, d = obj.bounds() @@ -4469,7 +5188,7 @@ class App(QtCore.QObject): self.should_we_save = True return - if event is not None and event.button == 1: + if event.button == 1: if self.is_legacy is False: event_pos = event.pos else: @@ -4520,7 +5239,7 @@ class App(QtCore.QObject): for obj in obj_list: obj.offset((-x, -y)) - self.app_obj.object_changed.emit(obj) + self.object_changed.emit(obj) # Update the object bounding box options a, b, c, d = obj.bounds() @@ -4659,20 +5378,14 @@ class App(QtCore.QObject): edge_width=self.defaults["global_cursor_width"], size=self.defaults["global_cursor_size"]) + # Set the position label + self.ui.position_label.setText("    X: %.4f   " + "Y: %.4f" % (location[0], location[1])) # Set the relative position label dx = location[0] - float(self.rel_point1[0]) dy = location[1] - float(self.rel_point1[1]) - self.ui.position_label.setText(" X: %.4f   " - "Y: %.4f " % (location[0], location[1])) - # # Set the position label - # - # self.ui.rel_position_label.setText("Dx: %.4f   Dy: " - # "%.4f    " % (dx, dy)) - - units = self.defaults["units"].lower() - self.plotcanvas.text_hud.text = \ - 'Dx:\t{:<.4f} [{:s}]\nDy:\t{:<.4f} [{:s}]\n\nX: \t{:<.4f} [{:s}]\nY: \t{:<.4f} [{:s}]'.format( - dx, units, dy, units, location[0], units, location[1], units) + self.ui.rel_position_label.setText("Dx: %.4f   Dy: " + "%.4f    " % (dx, dy)) self.inform.emit('[success] %s' % _("Done.")) return location @@ -4814,19 +5527,14 @@ class App(QtCore.QObject): edge_width=self.defaults["global_cursor_width"], size=self.defaults["global_cursor_size"]) + # Set the position label + self.ui.position_label.setText("    X: %.4f   " + "Y: %.4f" % (location[0], location[1])) # Set the relative position label self.dx = location[0] - float(self.rel_point1[0]) self.dy = location[1] - float(self.rel_point1[1]) - # Set the position label - self.ui.position_label.setText(" X: %.4f   " - "Y: %.4f " % (location[0], location[1])) - # self.ui.rel_position_label.setText("Dx: %.4f   Dy: " - # "%.4f    " % (self.dx, self.dy)) - - units = self.defaults["units"].lower() - self.plotcanvas.text_hud.text = \ - 'Dx:\t{:<.4f} [{:s}]\nDy:\t{:<.4f} [{:s}]\n\nX: \t{:<.4f} [{:s}]\nY: \t{:<.4f} [{:s}]'.format( - self.dx, units, self.dy, units, location[0], units, location[1], units) + self.ui.rel_position_label.setText("Dx: %.4f   Dy: " + "%.4f    " % (self.dx, self.dy)) self.inform.emit('[success] %s' % _("Done.")) return location @@ -4839,16 +5547,6 @@ class App(QtCore.QObject): self.defaults.report_usage("on_copy_command()") def initialize(obj_init, app): - """ - - :param obj_init: the new object - :type obj_init: class - :param app: An instance of the App class - :type app: App - :return: None - :rtype: - """ - obj_init.solid_geometry = deepcopy(obj.solid_geometry) try: obj_init.follow_geometry = deepcopy(obj.follow_geometry) @@ -4893,15 +5591,15 @@ class App(QtCore.QObject): try: if isinstance(obj, ExcellonObject): - self.app_obj.new_object("excellon", str(obj_name) + "_copy", initialize_excellon) + self.new_object("excellon", str(obj_name) + "_copy", initialize_excellon) elif isinstance(obj, GerberObject): - self.app_obj.new_object("gerber", str(obj_name) + "_copy", initialize) + self.new_object("gerber", str(obj_name) + "_copy", initialize) elif isinstance(obj, GeometryObject): - self.app_obj.new_object("geometry", str(obj_name) + "_copy", initialize) + self.new_object("geometry", str(obj_name) + "_copy", initialize) elif isinstance(obj, ScriptObject): - self.app_obj.new_object("script", str(obj_name) + "_copy", initialize_script) + self.new_object("script", str(obj_name) + "_copy", initialize_script) elif isinstance(obj, DocumentObject): - self.app_obj.new_object("document", str(obj_name) + "_copy", initialize_document) + self.new_object("document", str(obj_name) + "_copy", initialize_document) except Exception as e: return "Operation failed: %s" % str(e) @@ -4942,11 +5640,11 @@ class App(QtCore.QObject): obj_name = obj.options["name"] try: if isinstance(obj, ExcellonObject): - self.app_obj.new_object("excellon", str(obj_name) + custom_name, initialize_excellon) + self.new_object("excellon", str(obj_name) + custom_name, initialize_excellon) elif isinstance(obj, GerberObject): - self.app_obj.new_object("gerber", str(obj_name) + custom_name, initialize_gerber) + self.new_object("gerber", str(obj_name) + custom_name, initialize_gerber) elif isinstance(obj, GeometryObject): - self.app_obj.new_object("geometry", str(obj_name) + custom_name, initialize_geometry) + self.new_object("geometry", str(obj_name) + custom_name, initialize_geometry) except Exception as er: return "Operation failed: %s" % str(er) @@ -5013,9 +5711,9 @@ class App(QtCore.QObject): try: if isinstance(obj, ExcellonObject): - self.app_obj.new_object("geometry", str(obj_name) + "_conv", initialize_excellon) + self.new_object("geometry", str(obj_name) + "_conv", initialize_excellon) else: - self.app_obj.new_object("geometry", str(obj_name) + "_conv", initialize) + self.new_object("geometry", str(obj_name) + "_conv", initialize) except Exception as e: return "Operation failed: %s" % str(e) @@ -5091,9 +5789,9 @@ class App(QtCore.QObject): try: if isinstance(obj, ExcellonObject): - self.app_obj.new_object("gerber", str(obj_name) + "_conv", initialize_excellon) + self.new_object("gerber", str(obj_name) + "_conv", initialize_excellon) elif isinstance(obj, GeometryObject): - self.app_obj.new_object("gerber", str(obj_name) + "_conv", initialize_geometry) + self.new_object("gerber", str(obj_name) + "_conv", initialize_geometry) else: log.warning("App.convert_any2gerber --> This is no vaild object for conversion.") @@ -5134,29 +5832,6 @@ class App(QtCore.QObject): if self.defaults['global_selection_shape'] is True: self.draw_selection_shape(curr_sel_obj) - def on_toggle_preferences(self): - pref_open = False - for idx in range(self.ui.plot_tab_area.count()): - if self.ui.plot_tab_area.tabText(idx) == _("Preferences"): - pref_open = True - - if pref_open: - for idx in range(self.ui.plot_tab_area.count()): - if self.ui.plot_tab_area.tabText(idx) == _("Preferences"): - self.ui.plot_tab_area.removeTab(idx) - break - self.ui.pref_status_label.setStyleSheet("") - else: - self.on_preferences() - self.ui.pref_status_label.setStyleSheet(""" - QLabel - { - color: black; - background-color: lightseagreen; - } - """ - ) - def on_preferences(self): """ Adds the Preferences in a Tab in Plot Area @@ -5169,7 +5844,7 @@ class App(QtCore.QObject): # delete the absolute and relative position and messages in the infobar self.ui.position_label.setText("") - # self.ui.rel_position_label.setText("") + self.ui.rel_position_label.setText("") # Switch plot_area to preferences page self.ui.plot_tab_area.setCurrentWidget(self.ui.preferences_tab) @@ -5255,13 +5930,7 @@ class App(QtCore.QObject): callback_on_edited=self.on_tools_db_edited, callback_on_tool_request=self.paint_tool.on_paint_tool_add_from_db_executed ) - elif source == 'iso': - self.tools_db_tab = ToolsDB2( - app=self, - parent=self.ui, - callback_on_edited=self.on_tools_db_edited, - callback_on_tool_request=self.isolation_tool.on_iso_tool_add_from_db_executed - ) + # add the tab if it was closed try: self.ui.plot_tab_area.addTab(self.tools_db_tab, _("Tools Database")) @@ -5272,7 +5941,7 @@ class App(QtCore.QObject): # delete the absolute and relative position and messages in the infobar self.ui.position_label.setText("") - # self.ui.rel_position_label.setText("") + self.ui.rel_position_label.setText("") # Switch plot_area to preferences page self.ui.plot_tab_area.setCurrentWidget(self.tools_db_tab) @@ -5288,7 +5957,7 @@ class App(QtCore.QObject): :return: """ - self.inform[str, bool].emit('[WARNING_NOTCL] %s' % _("Tools in Tools Database edited but not saved."), False) + self.inform.emit('[WARNING_NOTCL] %s' % _("Tools in Tools Database edited but not saved.")) for idx in range(self.ui.plot_tab_area.count()): if self.ui.plot_tab_area.tabText(idx) == _("Tools Database"): @@ -5306,19 +5975,9 @@ class App(QtCore.QObject): tool_from_db = deepcopy(tool) obj = self.collection.get_active() - if obj.kind == 'geometry': + if isinstance(obj, GeometryObject): obj.on_tool_from_db_inserted(tool=tool_from_db) - # close the tab and delete it - for idx in range(self.ui.plot_tab_area.count()): - if self.ui.plot_tab_area.tabText(idx) == _("Tools Database"): - wdg = self.ui.plot_tab_area.widget(idx) - wdg.deleteLater() - self.ui.plot_tab_area.removeTab(idx) - self.inform.emit('[success] %s' % _("Tool from DB added in Tool Table.")) - elif obj.kind == 'gerber': - self.isolation_tool.on_tool_from_db_inserted(tool=tool_from_db) - # close the tab and delete it for idx in range(self.ui.plot_tab_area.count()): if self.ui.plot_tab_area.tabText(idx) == _("Tools Database"): @@ -5349,7 +6008,6 @@ class App(QtCore.QObject): "Do you want to update the Tools Database?")) msgbox.setWindowTitle(_("Save Tools Database")) msgbox.setWindowIcon(QtGui.QIcon(self.resource_location + '/save_as.png')) - msgbox.setIcon(QtWidgets.QMessageBox.Question) bt_yes = msgbox.addButton(_('Yes'), QtWidgets.QMessageBox.YesRole) msgbox.addButton(_('No'), QtWidgets.QMessageBox.NoRole) @@ -5425,7 +6083,7 @@ class App(QtCore.QObject): for obj in obj_list: obj.mirror('X', [px, py]) obj.plot() - self.app_obj.object_changed.emit(obj) + self.object_changed.emit(obj) self.inform.emit('[success] %s' % _("Flip on Y axis done.")) except Exception as e: @@ -5473,7 +6131,7 @@ class App(QtCore.QObject): for obj in obj_list: obj.mirror('Y', [px, py]) obj.plot() - self.app_obj.object_changed.emit(obj) + self.object_changed.emit(obj) self.inform.emit('[success] %s' % _("Flip on X axis done.")) except Exception as e: @@ -5529,8 +6187,9 @@ class App(QtCore.QObject): for sel_obj in obj_list: sel_obj.rotate(-float(num), point=(px, py)) sel_obj.plot() - self.app_obj.object_changed.emit(sel_obj) - self.inform.emit('[success] %s' % _("Rotation done.")) + self.object_changed.emit(sel_obj) + self.inform.emit('[success] %s' % + _("Rotation done.")) except Exception as e: self.inform.emit('[ERROR_NOTCL] %s: %s' % (_("Rotation movement was not executed."), str(e))) return @@ -5549,7 +6208,8 @@ class App(QtCore.QObject): yminlist = [] if not obj_list: - self.inform.emit('[WARNING_NOTCL] %s' % _("No object selected to Skew/Shear on X axis.")) + self.inform.emit('[WARNING_NOTCL] %s' % + _("No object selected to Skew/Shear on X axis.")) else: skewxbox = FCInputDialog(title=_("Transform"), text=_("Enter the Angle value:"), min=-360, max=360, decimals=4, @@ -5569,8 +6229,9 @@ class App(QtCore.QObject): for obj in obj_list: obj.skew(num, 0, point=(xminimal, yminimal)) obj.plot() - self.app_obj.object_changed.emit(obj) - self.inform.emit('[success] %s' % _("Skew on X axis done.")) + self.object_changed.emit(obj) + self.inform.emit('[success] %s' % + _("Skew on X axis done.")) def on_skewy(self): """ @@ -5586,7 +6247,8 @@ class App(QtCore.QObject): yminlist = [] if not obj_list: - self.inform.emit('[WARNING_NOTCL] %s' % _("No object selected to Skew/Shear on Y axis.")) + self.inform.emit('[WARNING_NOTCL] %s' % + _("No object selected to Skew/Shear on Y axis.")) else: skewybox = FCInputDialog(title=_("Transform"), text=_("Enter the Angle value:"), min=-360, max=360, decimals=4, @@ -5606,8 +6268,9 @@ class App(QtCore.QObject): for obj in obj_list: obj.skew(0, num, point=(xminimal, yminimal)) obj.plot() - self.app_obj.object_changed.emit(obj) - self.inform.emit('[success] %s' % _("Skew on Y axis done.")) + self.object_changed.emit(obj) + self.inform.emit('[success] %s' % + _("Skew on Y axis done.")) def on_plots_updated(self): """ @@ -5621,7 +6284,7 @@ class App(QtCore.QObject): else: self.plotcanvas.auto_adjust_axes() - self.on_zoom_fit() + self.on_zoom_fit(None) self.collection.update_view() # self.inform.emit(_("Plots updated ...")) @@ -5632,6 +6295,7 @@ class App(QtCore.QObject): :return: None """ + self.defaults.report_usage("on_toolbar_replot") self.log.debug("on_toolbar_replot()") try: @@ -5642,8 +6306,207 @@ class App(QtCore.QObject): self.plot_all() + def on_row_activated(self, index): + if index.isValid(): + if index.internalPointer().parent_item != self.collection.root_item: + self.ui.notebook.setCurrentWidget(self.ui.selected_tab) + self.collection.on_item_activated(index) + + def on_row_selected(self, obj_name): + """ + This is a special string; when received it will make all Menu -> Objects entries unchecked + It mean we clicked outside of the items and deselected all + + :param obj_name: + :return: + """ + if obj_name == 'none': + for act in self.ui.menuobjects.actions(): + act.setChecked(False) + return + + # get the name of the selected objects and add them to a list + name_list = [] + for obj in self.collection.get_selected(): + name_list.append(obj.options['name']) + + # set all actions as unchecked but the ones selected make them checked + for act in self.ui.menuobjects.actions(): + act.setChecked(False) + if act.text() in name_list: + act.setChecked(True) + + def on_collection_updated(self, obj, state, old_name): + """ + Create a menu from the object loaded in the collection. + + :param obj: object that was changed (added, deleted, renamed) + :param state: what was done with the object. Can be: added, deleted, delete_all, renamed + :param old_name: the old name of the object before the action that triggered this slot happened + :return: None + """ + icon_files = { + "gerber": self.resource_location + "/flatcam_icon16.png", + "excellon": self.resource_location + "/drill16.png", + "cncjob": self.resource_location + "/cnc16.png", + "geometry": self.resource_location + "/geometry16.png", + "script": self.resource_location + "/script_new16.png", + "document": self.resource_location + "/notes16_1.png" + } + + if state == 'append': + for act in self.ui.menuobjects.actions(): + try: + act.triggered.disconnect() + except TypeError: + pass + self.ui.menuobjects.clear() + + gerber_list = [] + exc_list = [] + cncjob_list = [] + geo_list = [] + script_list = [] + doc_list = [] + + for name in self.collection.get_names(): + obj_named = self.collection.get_by_name(name) + if obj_named.kind == 'gerber': + gerber_list.append(name) + elif obj_named.kind == 'excellon': + exc_list.append(name) + elif obj_named.kind == 'cncjob': + cncjob_list.append(name) + elif obj_named.kind == 'geometry': + geo_list.append(name) + elif obj_named.kind == 'script': + script_list.append(name) + elif obj_named.kind == 'document': + doc_list.append(name) + + def add_act(o_name): + obj_for_icon = self.collection.get_by_name(o_name) + add_action = QtWidgets.QAction(parent=self.ui.menuobjects) + add_action.setCheckable(True) + add_action.setText(o_name) + add_action.setIcon(QtGui.QIcon(icon_files[obj_for_icon.kind])) + add_action.triggered.connect( + lambda: self.collection.set_active(o_name) if add_action.isChecked() is True else + self.collection.set_inactive(o_name)) + self.ui.menuobjects.addAction(add_action) + + for name in gerber_list: + add_act(name) + self.ui.menuobjects.addSeparator() + + for name in exc_list: + add_act(name) + self.ui.menuobjects.addSeparator() + + for name in cncjob_list: + add_act(name) + self.ui.menuobjects.addSeparator() + + for name in geo_list: + add_act(name) + self.ui.menuobjects.addSeparator() + + for name in script_list: + add_act(name) + self.ui.menuobjects.addSeparator() + + for name in doc_list: + add_act(name) + + self.ui.menuobjects.addSeparator() + self.ui.menuobjects_selall = self.ui.menuobjects.addAction( + QtGui.QIcon(self.resource_location + '/select_all.png'), + _('Select All') + ) + self.ui.menuobjects_unselall = self.ui.menuobjects.addAction( + QtGui.QIcon(self.resource_location + '/deselect_all32.png'), + _('Deselect All') + ) + self.ui.menuobjects_selall.triggered.connect(lambda: self.on_objects_selection(True)) + self.ui.menuobjects_unselall.triggered.connect(lambda: self.on_objects_selection(False)) + + elif state == 'delete': + for act in self.ui.menuobjects.actions(): + if act.text() == obj.options['name']: + try: + act.triggered.disconnect() + except TypeError: + pass + self.ui.menuobjects.removeAction(act) + break + elif state == 'rename': + for act in self.ui.menuobjects.actions(): + if act.text() == old_name: + add_action = QtWidgets.QAction(parent=self.ui.menuobjects) + add_action.setText(obj.options['name']) + add_action.setIcon(QtGui.QIcon(icon_files[obj.kind])) + add_action.triggered.connect( + lambda: self.collection.set_active(obj.options['name']) if add_action.isChecked() is True else + self.collection.set_inactive(obj.options['name'])) + + self.ui.menuobjects.insertAction(act, add_action) + + try: + act.triggered.disconnect() + except TypeError: + pass + self.ui.menuobjects.removeAction(act) + break + elif state == 'delete_all': + for act in self.ui.menuobjects.actions(): + try: + act.triggered.disconnect() + except TypeError: + pass + self.ui.menuobjects.clear() + + self.ui.menuobjects.addSeparator() + self.ui.menuobjects_selall = self.ui.menuobjects.addAction( + QtGui.QIcon(self.resource_location + '/select_all.png'), + _('Select All') + ) + self.ui.menuobjects_unselall = self.ui.menuobjects.addAction( + QtGui.QIcon(self.resource_location + '/deselect_all32.png'), + _('Deselect All') + ) + self.ui.menuobjects_selall.triggered.connect(lambda: self.on_objects_selection(True)) + self.ui.menuobjects_unselall.triggered.connect(lambda: self.on_objects_selection(False)) + + def on_objects_selection(self, on_off): + obj_list = self.collection.get_names() + + if on_off is True: + self.collection.set_all_active() + for act in self.ui.menuobjects.actions(): + try: + act.setChecked(True) + except Exception: + pass + if obj_list: + self.inform.emit('[selected] %s' % _("All objects are selected.")) + else: + self.collection.set_all_inactive() + for act in self.ui.menuobjects.actions(): + try: + act.setChecked(False) + except Exception: + pass + + if obj_list: + self.inform.emit('%s' % _("Objects selection is cleared.")) + else: + self.inform.emit('') + def grid_status(self): - return True if self.ui.grid_snap_btn.isChecked() else False + if self.ui.grid_snap_btn.isChecked(): + return True + else: + return False def populate_cmenu_grids(self): units = self.defaults['units'].lower() @@ -5699,11 +6562,14 @@ class App(QtCore.QObject): else: if val not in self.defaults["global_grid_context_menu"][str(units)]: self.defaults["global_grid_context_menu"][str(units)].append(val) - self.inform.emit('[success] %s...' % _("New Grid added")) + self.inform.emit('[success] %s...' % + _("New Grid added")) else: - self.inform.emit('[WARNING_NOTCL] %s...' % _("Grid already exists")) + self.inform.emit('[WARNING_NOTCL] %s...' % + _("Grid already exists")) else: - self.inform.emit('[WARNING_NOTCL] %s...' % _("Adding New Grid cancelled")) + self.inform.emit('[WARNING_NOTCL] %s...' % + _("Adding New Grid cancelled")) def on_grid_delete(self): # ## Current application units in lower Case @@ -5724,11 +6590,14 @@ class App(QtCore.QObject): try: self.defaults["global_grid_context_menu"][str(units)].remove(val) except ValueError: - self.inform.emit('[ERROR_NOTCL]%s...' % _(" Grid Value does not exist")) + self.inform.emit('[ERROR_NOTCL]%s...' % + _(" Grid Value does not exist")) return - self.inform.emit('[success] %s...' % _("Grid Value deleted")) + self.inform.emit('[success] %s...' % + _("Grid Value deleted")) else: - self.inform.emit('[WARNING_NOTCL] %s...' % _("Delete Grid value cancelled")) + self.inform.emit('[WARNING_NOTCL] %s...' % + _("Delete Grid value cancelled")) def on_shortcut_list(self): self.defaults.report_usage("on_shortcut_list()") @@ -5738,7 +6607,7 @@ class App(QtCore.QObject): # delete the absolute and relative position and messages in the infobar self.ui.position_label.setText("") - # self.ui.rel_position_label.setText("") + self.ui.rel_position_label.setText("") # Switch plot_area to preferences page self.ui.plot_tab_area.setCurrentWidget(self.ui.shortcuts_tab) @@ -5767,7 +6636,7 @@ class App(QtCore.QObject): name = obj.options["name"] except AttributeError: log.debug("on_copy_name() --> No object selected to copy it's name") - self.inform.emit('[WARNING_NOTCL] %s' % + self.inform.emit('[WARNING_NOTCL]%s' % _(" No object selected to copy it's name")) return @@ -5869,9 +6738,6 @@ class App(QtCore.QObject): try: # May fail in case mouse not within axes pos_canvas = self.plotcanvas.translate_coords(event_pos) - if pos_canvas[0] is None or pos_canvas[1] is None: - return - if self.grid_status(): pos = self.geo_editor.snap(pos_canvas[0], pos_canvas[1]) @@ -5883,19 +6749,13 @@ class App(QtCore.QObject): else: pos = (pos_canvas[0], pos_canvas[1]) + self.ui.position_label.setText("    X: %.4f   " + "Y: %.4f" % (pos[0], pos[1])) + self.dx = pos[0] - float(self.rel_point1[0]) self.dy = pos[1] - float(self.rel_point1[1]) - - self.ui.position_label.setText(" X: %.4f   " - "Y: %.4f " % (pos[0], pos[1])) - # self.ui.rel_position_label.setText("Dx: %.4f   Dy: " - # "%.4f    " % (self.dx, self.dy)) - - units = self.defaults["units"].lower() - self.plotcanvas.text_hud.text = \ - 'Dx:\t{:<.4f} [{:s}]\nDy:\t{:<.4f} [{:s}]\n\nX: \t{:<.4f} [{:s}]\nY: \t{:<.4f} [{:s}]'.format( - self.dx, units, self.dy, units, pos[0], units, pos[1], units) - + self.ui.rel_position_label.setText("Dx: %.4f   Dy: " + "%.4f    " % (self.dx, self.dy)) self.mouse = [pos[0], pos[1]] # if the mouse is moved and the LMB is clicked then the action is a selection @@ -5913,7 +6773,7 @@ class App(QtCore.QObject): else: self.selection_type = None - # hover effect - enabled in Preferences -> General -> AppGUI Settings + # hover effect - enabled in Preferences -> General -> GUI Settings if self.defaults['global_hover']: for obj in self.collection.get_list(): try: @@ -5944,10 +6804,9 @@ class App(QtCore.QObject): # In this case poly_obj creation (see above) will fail pass - except Exception as e: - log.debug("App.on_mouse_move_over_plot() - rel_point1 is not None -> %s" % str(e)) + except Exception: self.ui.position_label.setText("") - # self.ui.rel_position_label.setText("") + self.ui.rel_position_label.setText("") self.mouse = None def on_mouse_click_release_over_plot(self, event): @@ -6112,7 +6971,7 @@ class App(QtCore.QObject): for obj in self.all_objects_list: # ScriptObject and DocumentObject objects can't be selected - if obj.kind == 'script' or obj.kind == 'document': + if isinstance(obj, ScriptObject) or isinstance(obj, DocumentObject): continue if key == 'multisel' and obj.options['name'] in self.objects_under_the_click_list: @@ -6141,7 +7000,7 @@ class App(QtCore.QObject): curr_sel_obj.selection_shape_drawn = True elif curr_sel_obj.options['name'] not in self.objects_under_the_click_list: - self.collection.on_objects_selection(False) + self.on_objects_selection(False) self.delete_selection_shape() curr_sel_obj.selection_shape_drawn = False @@ -6159,7 +7018,7 @@ class App(QtCore.QObject): self.draw_selection_shape(curr_sel_obj) curr_sel_obj.selection_shape_drawn = True else: - self.collection.on_objects_selection(False) + self.on_objects_selection(False) self.delete_selection_shape() if self.call_source != 'app': @@ -6201,7 +7060,7 @@ class App(QtCore.QObject): else: # deselect everything - self.collection.on_objects_selection(False) + self.on_objects_selection(False) # delete the possible selection box around a possible selected object self.delete_selection_shape() @@ -6410,8 +7269,6 @@ class App(QtCore.QObject): "Do you want to Save the project?")) msgbox.setWindowTitle(_("Save changes")) msgbox.setWindowIcon(QtGui.QIcon(self.resource_location + '/save_as.png')) - msgbox.setIcon(QtWidgets.QMessageBox.Question) - bt_yes = msgbox.addButton(_('Yes'), QtWidgets.QMessageBox.YesRole) bt_no = msgbox.addButton(_('No'), QtWidgets.QMessageBox.NoRole) bt_cancel = msgbox.addButton(_('Cancel'), QtWidgets.QMessageBox.RejectRole) @@ -6502,7 +7359,7 @@ class App(QtCore.QObject): # Init FlatCAMTools self.init_tools() - # Try to close all tabs in the PlotArea but only if the AppGUI is active (CLI is None) + # Try to close all tabs in the PlotArea but only if the GUI is active (CLI is None) if cli is None: # we need to go in reverse because once we remove a tab then the index changes # meaning that removing the first tab (idx = 0) then the tab at former idx = 1 will assume idx = 0 @@ -6591,13 +7448,11 @@ class App(QtCore.QObject): try: filenames, _f = QtWidgets.QFileDialog.getOpenFileNames(caption=_("Open Gerber"), directory=self.get_last_folder(), - filter=_filter_, - initialFilter=self.last_op_gerber_filter) + filter=_filter_) except TypeError: filenames, _f = QtWidgets.QFileDialog.getOpenFileNames(caption=_("Open Gerber"), filter=_filter_) filenames = [str(filename) for filename in filenames] - self.last_op_gerber_filter = _f else: filenames = [name] self.splash.showMessage('%s: %ssec\n%s' % (_("Canvas initialization started.\n" @@ -6631,12 +7486,10 @@ class App(QtCore.QObject): try: filenames, _f = QtWidgets.QFileDialog.getOpenFileNames(caption=_("Open Excellon"), directory=self.get_last_folder(), - filter=_filter_, - initialFilter=self.last_op_excellon_filter) + filter=_filter_) except TypeError: filenames, _f = QtWidgets.QFileDialog.getOpenFileNames(caption=_("Open Excellon"), filter=_filter_) filenames = [str(filename) for filename in filenames] - self.last_op_excellon_filter = _f else: filenames = [str(name)] self.splash.showMessage('%s: %ssec\n%s' % (_("Canvas initialization started.\n" @@ -6646,7 +7499,7 @@ class App(QtCore.QObject): color=QtGui.QColor("gray")) if len(filenames) == 0: - self.inform.emit('[WARNING_NOTCL] %s' % _("Cancelled.")) + self.inform.emit('[WARNING_NOTCL]%s' % _("Cancelled.")) else: for filename in filenames: if filename != '': @@ -6674,13 +7527,11 @@ class App(QtCore.QObject): try: filenames, _f = QtWidgets.QFileDialog.getOpenFileNames(caption=_("Open G-Code"), directory=self.get_last_folder(), - filter=_filter_, - initialFilter=self.last_op_gcode_filter) + filter=_filter_) except TypeError: filenames, _f = QtWidgets.QFileDialog.getOpenFileNames(caption=_("Open G-Code"), filter=_filter_) filenames = [str(filename) for filename in filenames] - self.last_op_gcode_filter = _f else: filenames = [name] self.splash.showMessage('%s: %ssec\n%s' % (_("Canvas initialization started.\n" @@ -6803,8 +7654,6 @@ class App(QtCore.QObject): self.inform.emit('[WARNING_NOTCL] %s' % _("No object selected.")) msg = _("Please Select a Geometry object to export") msgbox = QtWidgets.QMessageBox() - msgbox.setIcon(QtWidgets.QMessageBox.Warning) - msgbox.setInformativeText(msg) bt_ok = msgbox.addButton(_('Ok'), QtWidgets.QMessageBox.AcceptRole) msgbox.setDefaultButton(bt_ok) @@ -6819,8 +7668,6 @@ class App(QtCore.QObject): msg = '[ERROR_NOTCL] %s' % \ _("Only Geometry, Gerber and CNCJob objects can be used.") msgbox = QtWidgets.QMessageBox() - msgbox.setIcon(QtWidgets.QMessageBox.Warning) - msgbox.setInformativeText(msg) bt_ok = msgbox.addButton(_('Ok'), QtWidgets.QMessageBox.AcceptRole) msgbox.setDefaultButton(bt_ok) @@ -6834,14 +7681,14 @@ class App(QtCore.QObject): filename, _f = FCFileSaveDialog.get_saved_filename( caption=_("Export SVG"), directory=self.get_last_save_folder() + '/' + str(name) + '_svg', - ext_filter=_filter) + filter=_filter) except TypeError: - filename, _f = FCFileSaveDialog.get_saved_filename(caption=_("Export SVG"), ext_filter=_filter) + filename, _f = FCFileSaveDialog.get_saved_filename(caption=_("Export SVG"), filter=_filter) filename = str(filename) if filename == "": - self.inform.emit('[WARNING_NOTCL] %s' % _("Cancelled.")) + self.inform.emit('[WARNING_NOTCL]%s' % _("Cancelled.")) return else: self.export_svg(name, filename) @@ -6857,9 +7704,8 @@ class App(QtCore.QObject): self.date = ''.join(c for c in self.date if c not in ':-') self.date = self.date.replace(' ', '_') - data = None if self.is_legacy is False: - image = _screenshot(alpha=False) + image = _screenshot() data = np.asarray(image) if not data.ndim == 3 and data.shape[-1] in (3, 4): self.inform.emit('[[WARNING_NOTCL]] %s' % _('Data must be a 3D array with last dimension 3 or 4')) @@ -6870,9 +7716,9 @@ class App(QtCore.QObject): filename, _f = FCFileSaveDialog.get_saved_filename( caption=_("Export PNG Image"), directory=self.get_last_save_folder() + '/png_' + self.date, - ext_filter=filter_) + filter=filter_) except TypeError: - filename, _f = FCFileSaveDialog.get_saved_filename(caption=_("Export PNG Image"), ext_filter=filter_) + filename, _f = FCFileSaveDialog.get_saved_filename(caption=_("Export PNG Image"), filter=filter_) filename = str(filename) @@ -6915,9 +7761,9 @@ class App(QtCore.QObject): filename, _f = FCFileSaveDialog.get_saved_filename( caption="Save Gerber source file", directory=self.get_last_save_folder() + '/' + name, - ext_filter=_filter) + filter=_filter) except TypeError: - filename, _f = FCFileSaveDialog.get_saved_filename(caption=_("Save Gerber source file"), ext_filter=_filter) + filename, _f = FCFileSaveDialog.get_saved_filename(caption=_("Save Gerber source file"), filter=_filter) filename = str(filename) @@ -6956,9 +7802,9 @@ class App(QtCore.QObject): filename, _f = FCFileSaveDialog.get_saved_filename( caption="Save Script source file", directory=self.get_last_save_folder() + '/' + name, - ext_filter=_filter) + filter=_filter) except TypeError: - filename, _f = FCFileSaveDialog.get_saved_filename(caption=_("Save Script source file"), ext_filter=_filter) + filename, _f = FCFileSaveDialog.get_saved_filename(caption=_("Save Script source file"), filter=_filter) filename = str(filename) @@ -6997,10 +7843,9 @@ class App(QtCore.QObject): filename, _f = FCFileSaveDialog.get_saved_filename( caption="Save Document source file", directory=self.get_last_save_folder() + '/' + name, - ext_filter=_filter) + filter=_filter) except TypeError: - filename, _f = FCFileSaveDialog.get_saved_filename(caption=_("Save Document source file"), - ext_filter=_filter) + filename, _f = FCFileSaveDialog.get_saved_filename(caption=_("Save Document source file"), filter=_filter) filename = str(filename) @@ -7039,10 +7884,9 @@ class App(QtCore.QObject): filename, _f = FCFileSaveDialog.get_saved_filename( caption=_("Save Excellon source file"), directory=self.get_last_save_folder() + '/' + name, - ext_filter=_filter) + filter=_filter) except TypeError: - filename, _f = FCFileSaveDialog.get_saved_filename( - caption=_("Save Excellon source file"), ext_filter=_filter) + filename, _f = FCFileSaveDialog.get_saved_filename(caption=_("Save Excellon source file"), filter=_filter) filename = str(filename) @@ -7081,9 +7925,9 @@ class App(QtCore.QObject): filename, _f = FCFileSaveDialog.get_saved_filename( caption=_("Export Excellon"), directory=self.get_last_save_folder() + '/' + name, - ext_filter=_filter) + filter=_filter) except TypeError: - filename, _f = FCFileSaveDialog.get_saved_filename(caption=_("Export Excellon"), ext_filter=_filter) + filename, _f = FCFileSaveDialog.get_saved_filename(caption=_("Export Excellon"), filter=_filter) filename = str(filename) @@ -7125,9 +7969,9 @@ class App(QtCore.QObject): filename, _f = FCFileSaveDialog.get_saved_filename( caption=_("Export Gerber"), directory=self.get_last_save_folder() + '/' + name, - ext_filter=_filter_) + filter=_filter_) except TypeError: - filename, _f = FCFileSaveDialog.get_saved_filename(caption=_("Export Gerber"), ext_filter=_filter_) + filename, _f = FCFileSaveDialog.get_saved_filename(caption=_("Export Gerber"), filter=_filter_) filename = str(filename) @@ -7157,8 +8001,6 @@ class App(QtCore.QObject): self.inform.emit('[WARNING_NOTCL] %s' % _("No object selected.")) msg = _("Please Select a Geometry object to export") msgbox = QtWidgets.QMessageBox() - msgbox.setIcon(QtWidgets.QMessageBox.Warning) - msgbox.setInformativeText(msg) bt_ok = msgbox.addButton(_('Ok'), QtWidgets.QMessageBox.AcceptRole) msgbox.setDefaultButton(bt_ok) @@ -7169,8 +8011,6 @@ class App(QtCore.QObject): if not isinstance(obj, GeometryObject): msg = '[ERROR_NOTCL] %s' % _("Only Geometry objects can be used.") msgbox = QtWidgets.QMessageBox() - msgbox.setIcon(QtWidgets.QMessageBox.Warning) - msgbox.setInformativeText(msg) bt_ok = msgbox.addButton(_('Ok'), QtWidgets.QMessageBox.AcceptRole) msgbox.setDefaultButton(bt_ok) @@ -7185,9 +8025,9 @@ class App(QtCore.QObject): filename, _f = FCFileSaveDialog.get_saved_filename( caption=_("Export DXF"), directory=self.get_last_save_folder() + '/' + name, - ext_filter=_filter_) + filter=_filter_) except TypeError: - filename, _f = FCFileSaveDialog.get_saved_filename(caption=_("Export DXF"), ext_filter=_filter_) + filename, _f = FCFileSaveDialog.get_saved_filename(caption=_("Export DXF"), filter=_filter_) filename = str(filename) @@ -7276,7 +8116,7 @@ class App(QtCore.QObject): # delete the absolute and relative position and messages in the infobar self.ui.position_label.setText("") - # self.ui.rel_position_label.setText("") + self.ui.rel_position_label.setText("") # first clear previous text in text editor (if any) self.text_editor_tab.code_editor.clear() @@ -7327,7 +8167,7 @@ class App(QtCore.QObject): # delete the absolute and relative position and messages in the infobar self.ui.position_label.setText("") - # self.ui.rel_position_label.setText("") + self.ui.rel_position_label.setText("") # first clear previous text in text editor (if any) self.source_editor_tab.code_editor.clear() @@ -7442,6 +8282,8 @@ class App(QtCore.QObject): Will create a new script file and open it in the Code Editor :param silent: if True will not display status messages + :param name: if specified will be the name of the new script + :param text: pass a source file to the newly created script to be loaded in it :return: None """ if silent is False: @@ -7449,9 +8291,9 @@ class App(QtCore.QObject): # delete the absolute and relative position and messages in the infobar self.ui.position_label.setText("") - # self.ui.rel_position_label.setText("") + self.ui.rel_position_label.setText("") - self.app_obj.new_script_object() + self.new_script_object() # script_text = script_obj.source_file # @@ -7637,10 +8479,10 @@ class App(QtCore.QObject): caption=_("Save Project As ..."), directory='{l_save}/{proj}_{date}'.format(l_save=str(self.get_last_save_folder()), date=self.date, proj=_("Project")), - ext_filter=filter_ + filter=filter_ ) except TypeError: - filename, _f = FCFileSaveDialog.get_saved_filename(caption=_("Save Project As ..."), ext_filter=filter_) + filename, _f = FCFileSaveDialog.get_saved_filename(caption=_("Save Project As ..."), filter=filter_) filename = str(filename) @@ -7692,10 +8534,10 @@ class App(QtCore.QObject): directory='{l_save}/{obj_name}_{date}'.format(l_save=str(self.get_last_save_folder()), obj_name=obj_name, date=self.date), - ext_filter=filter_ + filter=filter_ ) except TypeError: - filename, _f = FCFileSaveDialog.get_saved_filename(caption=_("Save Object as PDF ..."), ext_filter=filter_) + filename, _f = FCFileSaveDialog.get_saved_filename(caption=_("Save Object as PDF ..."), filter=filter_) filename = str(filename) @@ -8372,7 +9214,7 @@ class App(QtCore.QObject): # Object name name = outname or filename.split('/')[-1].split('\\')[-1] - ret = self.app_obj.new_object(obj_type, name, obj_init, autoselected=False, plot=plot) + ret = self.new_object(obj_type, name, obj_init, autoselected=False, plot=plot) if ret == 'fail': self.inform.emit('[ERROR_NOTCL]%s' % _('Import failed.')) @@ -8381,7 +9223,7 @@ class App(QtCore.QObject): # Register recent file self.file_opened.emit("svg", filename) - # AppGUI feedback + # GUI feedback self.inform.emit('[success] %s: %s' % (_("Opened"), filename)) def import_dxf(self, filename, geo_type='geometry', outname=None, plot=True): @@ -8418,7 +9260,7 @@ class App(QtCore.QObject): # Object name name = outname or filename.split('/')[-1].split('\\')[-1] - ret = self.app_obj.new_object(obj_type, name, obj_init, autoselected=False, plot=plot) + ret = self.new_object(obj_type, name, obj_init, autoselected=False, plot=plot) if ret == 'fail': self.inform.emit('[ERROR_NOTCL]%s' % _('Import failed.')) @@ -8427,7 +9269,7 @@ class App(QtCore.QObject): # Register recent file self.file_opened.emit("dxf", filename) - # AppGUI feedback + # GUI feedback self.inform.emit('[success] %s: %s' % (_("Opened"), filename)) def open_gerber(self, filename, outname=None, plot=True, from_tcl=False): @@ -8479,11 +9321,11 @@ class App(QtCore.QObject): name = outname or filename.split('/')[-1].split('\\')[-1] # # ## Object creation # ## - ret_val = self.app_obj.new_object("gerber", name, obj_init, autoselected=False, plot=plot) + ret_val = self.new_object("gerber", name, obj_init, autoselected=False, plot=plot) if ret_val == 'fail': if from_tcl: filename = self.defaults['global_tcl_path'] + '/' + name - ret_val = self.app_obj.new_object("gerber", name, obj_init, autoselected=False, plot=plot) + ret_val = self.new_object("gerber", name, obj_init, autoselected=False, plot=plot) if ret_val == 'fail': self.inform.emit('[ERROR_NOTCL]%s' % _('Open Gerber failed. Probable not a Gerber file.')) return 'fail' @@ -8491,7 +9333,7 @@ class App(QtCore.QObject): # Register recent file self.file_opened.emit("gerber", filename) - # AppGUI feedback + # GUI feedback self.inform.emit('[success] %s: %s' % (_("Opened"), filename)) def open_excellon(self, filename, outname=None, plot=True, from_tcl=False): @@ -8545,11 +9387,11 @@ class App(QtCore.QObject): with self.proc_container.new(_("Opening Excellon.")): # Object name name = outname or filename.split('/')[-1].split('\\')[-1] - ret_val = self.app_obj.new_object("excellon", name, obj_init, autoselected=False, plot=plot) + ret_val = self.new_object("excellon", name, obj_init, autoselected=False, plot=plot) if ret_val == 'fail': if from_tcl: filename = self.defaults['global_tcl_path'] + '/' + name - ret_val = self.app_obj.new_object("excellon", name, obj_init, autoselected=False, plot=plot) + ret_val = self.new_object("excellon", name, obj_init, autoselected=False, plot=plot) if ret_val == 'fail': self.inform.emit('[ERROR_NOTCL] %s' % _('Open Excellon file failed. Probable not an Excellon file.')) @@ -8558,7 +9400,7 @@ class App(QtCore.QObject): # Register recent file self.file_opened.emit("excellon", filename) - # AppGUI feedback + # GUI feedback self.inform.emit('[success] %s: %s' % (_("Opened"), filename)) def open_gcode(self, filename, outname=None, force_parsing=None, plot=True, from_tcl=False): @@ -8608,11 +9450,11 @@ class App(QtCore.QObject): name = outname or filename.split('/')[-1].split('\\')[-1] # New object creation and file processing - ret_val = self.app_obj.new_object("cncjob", name, obj_init, autoselected=False, plot=plot) + ret_val = self.new_object("cncjob", name, obj_init, autoselected=False, plot=plot) if ret_val == 'fail': if from_tcl: filename = self.defaults['global_tcl_path'] + '/' + name - ret_val = self.app_obj.new_object("cncjob", name, obj_init, autoselected=False, plot=plot) + ret_val = self.new_object("cncjob", name, obj_init, autoselected=False, plot=plot) if ret_val == 'fail': self.inform.emit('[ERROR_NOTCL] %s' % _("Failed to create CNCJob Object. Probable not a GCode file. " @@ -8624,7 +9466,7 @@ class App(QtCore.QObject): # Register recent file self.file_opened.emit("cncjob", filename) - # AppGUI feedback + # GUI feedback self.inform.emit('[success] %s: %s' % (_("Opened"), filename)) def open_hpgl2(self, filename, outname=None): @@ -8681,7 +9523,7 @@ class App(QtCore.QObject): name = outname or filename.split('/')[-1].split('\\')[-1] # # ## Object creation # ## - ret = self.app_obj.new_object("geometry", name, obj_init, autoselected=False) + ret = self.new_object("geometry", name, obj_init, autoselected=False) if ret == 'fail': self.inform.emit('[ERROR_NOTCL]%s' % _(' Open HPGL2 failed. Probable not a HPGL2 file.')) return 'fail' @@ -8689,7 +9531,7 @@ class App(QtCore.QObject): # Register recent file self.file_opened.emit("geometry", filename) - # AppGUI feedback + # GUI feedback self.inform.emit('[success] %s: %s' % (_("Opened"), filename)) def open_script(self, filename, outname=None, silent=False): @@ -8735,10 +9577,10 @@ class App(QtCore.QObject): script_name = outname or filename.split('/')[-1].split('\\')[-1] # Object creation - ret_val = self.app_obj.new_object("script", script_name, obj_init, autoselected=False, plot=False) + ret_val = self.new_object("script", script_name, obj_init, autoselected=False, plot=False) if ret_val == 'fail': filename = self.defaults['global_tcl_path'] + '/' + script_name - ret_val = self.app_obj.new_object("script", script_name, obj_init, autoselected=False, plot=False) + ret_val = self.new_object("script", script_name, obj_init, autoselected=False, plot=False) if ret_val == 'fail': self.inform.emit('[ERROR_NOTCL]%s' % _('Failed to open TCL Script.')) return 'fail' @@ -8746,7 +9588,7 @@ class App(QtCore.QObject): # Register recent file self.file_opened.emit("script", filename) - # AppGUI feedback + # GUI feedback self.inform.emit('[success] %s: %s' % (_("Opened"), filename)) def open_config_file(self, filename, run_from_arg=None): @@ -8801,7 +9643,7 @@ class App(QtCore.QObject): 2) Registers the file as recently opened. 3) Calls on_file_new() 4) Updates options - 5) Calls app_obj.new_object() with the object's from_dict() as init method. + 5) Calls new_object() with the object's from_dict() as init method. 6) Calls plot_all() if plot=True :param filename: Name of the file from which to load. @@ -8903,7 +9745,7 @@ class App(QtCore.QObject): ) ) - self.app_obj.new_object(obj['kind'], obj['options']['name'], obj_init, plot=plot) + self.new_object(obj['kind'], obj['options']['name'], obj_init, plot=plot) except Exception as e: print('App.open_project() --> ' + str(e)) @@ -8922,25 +9764,23 @@ class App(QtCore.QObject): App.log.debug(" **************** Finished PROJECT loading... **************** ") - def plot_all(self, fit_view=True, muted=False, use_thread=True): + def plot_all(self, fit_view=True, use_thread=True): """ Re-generates all plots from all objects. :param fit_view: if True will plot the objects and will adjust the zoom to fit all plotted objects into view - :param muted: if True don't print messages :param use_thread: if True will use threading for plotting the objects :return: None """ self.log.debug("Plot_all()") - if muted is not True: - self.inform[str, bool].emit('%s...' % _("Redrawing all objects"), False) + self.inform.emit('[success] %s...' % _("Redrawing all objects")) for plot_obj in self.collection.get_list(): def worker_task(obj): with self.proc_container.new("Plotting"): obj.plot(kind=self.defaults["cncjob_plot_kind"]) if fit_view is True: - self.app_obj.object_plotted.emit(obj) + self.object_plotted.emit(obj) if use_thread is True: # Send to worker @@ -9175,11 +10015,11 @@ class App(QtCore.QObject): #
  • Loat/Import a Gerber, Excellon, Gcode, DXF, Raster Image or SVG # file into # FlatCAM using either the menu's, toolbars, key shortcuts or - # even dragging and dropping the files on the AppGUI.
    + # even dragging and dropping the files on the GUI.
    #
    # You can also load a FlatCAM project by double clicking on the project file, drag & # drop of the - # file into the FLATCAM AppGUI or through the menu/toolbar links offered within the app.

    + # file into the FLATCAM GUI or through the menu/toolbar links offered within the app.
    #  
  • #
  • Once an object is available in the Project Tab, by selecting it # and then @@ -9235,12 +10075,12 @@ class App(QtCore.QObject): title=_("Selected Tab - Choose an Item from Project Tab"), subtitle=_("Details"), - s1=_("The normal flow when working with the application is the following:"), - s2=_("Load/Import a Gerber, Excellon, Gcode, DXF, Raster Image or SVG file into the application " + s1=_("The normal flow when working in FlatCAM is the following:"), + s2=_("Load/Import a Gerber, Excellon, Gcode, DXF, Raster Image or SVG file into FlatCAM " "using either the toolbars, key shortcuts or even dragging and dropping the " - "files on the AppGUI."), - s3=_("You can also load a project by double clicking on the project file, " - "drag and drop of the file into the AppGUI or through the menu (or toolbar) " + "files on the GUI."), + s3=_("You can also load a FlatCAM project by double clicking on the project file, " + "drag and drop of the file into the FLATCAM GUI or through the menu (or toolbar) " "actions offered within the app."), s4=_("Once an object is available in the Project Tab, by selecting it and then focusing " "on SELECTED TAB (more simpler is to double click the object name in the Project Tab, " @@ -9309,8 +10149,8 @@ class App(QtCore.QObject): # no_stats dict; just so it won't break things on website no_ststs_dict = {} no_ststs_dict["global_ststs"] = {} - full_url = App.version_url + "?s=" + str(self.defaults['global_serial']) + "&v=" + str(self.version) - full_url += "&os=" + str(self.os) + "&" + urllib.parse.urlencode(no_ststs_dict["global_ststs"]) + full_url = App.version_url + "?s=" + str(self.defaults['global_serial']) + "&v=" + str(self.version) + \ + "&os=" + str(self.os) + "&" + urllib.parse.urlencode(no_ststs_dict["global_ststs"]) App.log.debug("Checking for updates @ %s" % full_url) # ## Get the data @@ -9413,12 +10253,13 @@ class App(QtCore.QObject): # will use the default Matplotlib axes self.hover_shapes = ShapeCollectionLegacy(obj=self, app=self, name='hover') - def on_zoom_fit(self): + def on_zoom_fit(self, event): """ Callback for zoom-fit request. This can be either from the corresponding toolbar button or the '1' key when the canvas is focused. Calls ``self.adjust_axes()`` with axes limits from the geometry bounds of all objects. + :param event: Ignored. :return: None """ if self.is_legacy is False: @@ -9524,6 +10365,8 @@ class App(QtCore.QObject): self.worker_task.emit({'fcn': worker_task, 'params': [objects]}) + # self.plots_updated.emit() + def disable_plots(self, objects): """ Disables plots @@ -9562,6 +10405,7 @@ class App(QtCore.QObject): except Exception as e: log.debug("App.disable_plots() --> %s" % str(e)) + # self.plots_updated.emit() def worker_task(objs): with self.proc_container.new(_("Disabling plots ...")): for plot_obj in objs: @@ -9592,7 +10436,7 @@ class App(QtCore.QObject): obj.options['plot'] = True else: obj.options['plot'] = False - self.app_obj.plots_updated.emit() + self.plots_updated.emit() def clear_plots(self): """ @@ -9895,16 +10739,44 @@ class App(QtCore.QObject): self.preferencesUiManager.defaults_read_form() self.options.update(self.defaults) + def toggle_shell(self): + """ + Toggle shell: if is visible close it, if it is closed then open it + :return: None + """ + + self.defaults.report_usage("toggle_shell()") + + if self.ui.shell_dock.isVisible(): + self.ui.shell_dock.hide() + self.plotcanvas.native.setFocus() + else: + self.ui.shell_dock.show() + + # I want to take the focus and give it to the Tcl Shell when the Tcl Shell is run + # self.shell._edit.setFocus() + QtCore.QTimer.singleShot(0, lambda: self.ui.shell_dock.widget()._edit.setFocus()) + + # HACK - simulate a mouse click - alternative + # no_km = QtCore.Qt.KeyboardModifier(QtCore.Qt.NoModifier) # no KB modifier + # pos = QtCore.QPoint((self.shell._edit.width() - 40), (self.shell._edit.height() - 2)) + # e = QtGui.QMouseEvent(QtCore.QEvent.MouseButtonPress, pos, QtCore.Qt.LeftButton, QtCore.Qt.LeftButton, + # no_km) + # QtWidgets.qApp.sendEvent(self.shell._edit, e) + # f = QtGui.QMouseEvent(QtCore.QEvent.MouseButtonRelease, pos, QtCore.Qt.LeftButton, QtCore.Qt.LeftButton, + # no_km) + # QtWidgets.qApp.sendEvent(self.shell._edit, f) + def shell_message(self, msg, show=False, error=False, warning=False, success=False, selected=False): """ Shows a message on the FlatCAM Shell - :param msg: Message to display. - :param show: Opens the shell. - :param error: Shows the message as an error. - :param warning: Shows the message as an warning. - :param success: Shows the message as an success. - :param selected: Indicate that something was selected on canvas + :param msg: Message to display. + :param show: Opens the shell. + :param error: Shows the message as an error. + :param warning: Shows the message as an warning. + :param success: Shows the message as an success. + :param selected: Indicate that something was selected on canvas :return: None """ if show: diff --git a/Bookmark.py b/FlatCAMBookmark.py similarity index 97% rename from Bookmark.py rename to FlatCAMBookmark.py index e9234322..b9884fe2 100644 --- a/Bookmark.py +++ b/FlatCAMBookmark.py @@ -1,5 +1,5 @@ from PyQt5 import QtGui, QtCore, QtWidgets -from AppGUI.GUIElements import FCTable, FCEntry, FCButton, FCFileSaveDialog +from flatcamGUI.GUIElements import FCTable, FCEntry, FCButton, FCFileSaveDialog import sys import webbrowser @@ -7,7 +7,7 @@ import webbrowser from copy import deepcopy from datetime import datetime import gettext -import AppTranslation as fcTranslate +import FlatCAMTranslation as fcTranslate import builtins fcTranslate.apply_language('strings') @@ -287,12 +287,12 @@ class BookmarkManager(QtWidgets.QWidget): date = date.replace(' ', '_') filter__ = "Text File (*.TXT);;All Files (*.*)" - filename, _f = FCFileSaveDialog.get_saved_filename(caption=_("Export Bookmarks"), - directory='{l_save}/{n}_{date}'.format( + filename, _f = FCFileSaveDialog.get_saved_filename(caption=_("Export FlatCAM Bookmarks"), + directory='{l_save}/FlatCAM_{n}_{date}'.format( l_save=str(self.app.get_last_save_folder()), n=_("Bookmarks"), date=date), - ext_filter=filter__) + filter=filter__) filename = str(filename) @@ -334,7 +334,7 @@ class BookmarkManager(QtWidgets.QWidget): self.app.log.debug("on_import_bookmarks()") filter_ = "Text File (*.txt);;All Files (*.*)" - filename, _f = QtWidgets.QFileDialog.getOpenFileName(caption=_("Import Bookmarks"), filter=filter_) + filename, _f = QtWidgets.QFileDialog.getOpenFileName(caption=_("Import FlatCAM Bookmarks"), filter=filter_) filename = str(filename) diff --git a/Common.py b/FlatCAMCommon.py similarity index 56% rename from Common.py rename to FlatCAMCommon.py index 90050a33..b95091aa 100644 --- a/Common.py +++ b/FlatCAMCommon.py @@ -12,18 +12,15 @@ # ########################################################## from PyQt5 import QtCore -from shapely.geometry import Polygon, Point, LineString -from shapely.ops import unary_union +from shapely.geometry import Polygon, MultiPolygon -from AppGUI.VisPyVisuals import ShapeCollection -from AppTool import AppTool - -from copy import deepcopy +from flatcamGUI.VisPyVisuals import ShapeCollection +from FlatCAMTool import FlatCAMTool import numpy as np import gettext -import AppTranslation as fcTranslate +import FlatCAMTranslation as fcTranslate import builtins fcTranslate.apply_language('strings') @@ -32,9 +29,7 @@ if '_' not in builtins.__dict__: class GracefulException(Exception): - """ - Graceful Exception raised when the user is requesting to cancel the current threaded task - """ + # Graceful Exception raised when the user is requesting to cancel the current threaded task def __init__(self): super().__init__() @@ -109,11 +104,8 @@ def color_variant(hex_color, bright_factor=1): Takes a color in HEX format #FF00FF and produces a lighter or darker variant :param hex_color: color to change - :type hex_color: str - :param bright_factor: factor to change the color brightness [0 ... 1] - :type bright_factor: float - :return: Modified color - :rtype: str + :param bright_factor: factor to change the color brightness [0 ... 1] + :return: modified color """ if len(hex_color) != 7: @@ -138,9 +130,7 @@ def color_variant(hex_color, bright_factor=1): class ExclusionAreas(QtCore.QObject): - """ - Functionality for adding Exclusion Areas for the Excellon and Geometry FlatCAM Objects - """ + e_shape_modified = QtCore.pyqtSignal() def __init__(self, app): @@ -156,7 +146,7 @@ class ExclusionAreas(QtCore.QObject): except AttributeError: self.exclusion_shapes = None else: - from AppGUI.PlotCanvasLegacy import ShapeCollectionLegacy + from flatcamGUI.PlotCanvasLegacy import ShapeCollectionLegacy self.exclusion_shapes = ShapeCollectionLegacy(obj=self, app=self.app, name="exclusion") # Event signals disconnect id holders @@ -177,8 +167,8 @@ class ExclusionAreas(QtCore.QObject): { "obj_type": string ("excellon" or "geometry") <- self.obj_type "shape": Shapely polygon - "strategy": string ("over" or "around") <- self.strategy_button - "overz": float <- self.over_z_button + "strategy": string ("over" or "around") <- self.strategy + "overz": float <- self.over_z } ''' self.exclusion_areas_storage = [] @@ -188,9 +178,9 @@ class ExclusionAreas(QtCore.QObject): self.solid_geometry = [] self.obj_type = None - self.shape_type_button = None - self.over_z_button = None - self.strategy_button = None + self.shape_type = 'square' # TODO use the self.app.defaults when made general (not in Geo object Pref UI) + self.over_z = 0.1 + self.strategy = None self.cnc_button = None def on_add_area_click(self, shape_button, overz_button, strategy_radio, cnc_button, solid_geo, obj_type): @@ -198,22 +188,21 @@ class ExclusionAreas(QtCore.QObject): :param shape_button: a FCButton that has the value for the shape :param overz_button: a FCDoubleSpinner that holds the Over Z value - :param strategy_radio: a RadioSet button with the strategy_button value + :param strategy_radio: a RadioSet button with the strategy value :param cnc_button: a FCButton in Object UI that when clicked the CNCJob is created We have a reference here so we can change the color signifying that exclusion areas are available. :param solid_geo: reference to the object solid geometry for which we add exclusion areas - :param obj_type: Type of FlatCAM object that called this method. String: "excellon" or "geometry" - :type obj_type: str - :return: None + :param obj_type: Type of FlatCAM object that called this method + :type obj_type: String: "excellon" or "geometry" + :return: """ self.app.inform.emit('[WARNING_NOTCL] %s' % _("Click the start point of the area.")) self.app.call_source = 'geometry' - self.shape_type_button = shape_button - - self.over_z_button = overz_button - self.strategy_button = strategy_radio + self.shape_type = shape_button.get_value() + self.over_z = overz_button.get_value() + self.strategy = strategy_radio.get_value() self.cnc_button = cnc_button self.solid_geometry = solid_geo @@ -234,14 +223,6 @@ class ExclusionAreas(QtCore.QObject): # To be called after clicking on the plot. def on_mouse_release(self, event): - """ - Called on mouse click release. - - :param event: Mouse event - :type event: - :return: None - :rtype: - """ if self.app.is_legacy is False: event_pos = event.pos # event_is_dragging = event.is_dragging @@ -259,11 +240,11 @@ class ExclusionAreas(QtCore.QObject): x1, y1 = curr_pos[0], curr_pos[1] - # shape_type_button = self.ui.area_shape_radio.get_value() + # shape_type = self.ui.area_shape_radio.get_value() # do clear area only for left mouse clicks if event.button == 1: - if self.shape_type_button.get_value() == "square": + if self.shape_type == "square": if self.first_click is False: self.first_click = True self.app.inform.emit('[WARNING_NOTCL] %s' % _("Click the end point of the area.")) @@ -287,14 +268,14 @@ class ExclusionAreas(QtCore.QObject): # { # "obj_type": string("excellon" or "geometry") < - self.obj_type # "shape": Shapely polygon - # "strategy_button": string("over" or "around") < - self.strategy_button - # "overz": float < - self.over_z_button + # "strategy": string("over" or "around") < - self.strategy + # "overz": float < - self.over_z # } new_el = { "obj_type": self.obj_type, "shape": new_rectangle, - "strategy": self.strategy_button.get_value(), - "overz": self.over_z_button.get_value() + "strategy": self.strategy, + "overz": self.over_z } self.exclusion_areas_storage.append(new_el) @@ -306,7 +287,7 @@ class ExclusionAreas(QtCore.QObject): face_color = "#FF7400BF" # add a temporary shape on canvas - AppTool.draw_tool_selection_shape( + FlatCAMTool.draw_tool_selection_shape( self, old_coords=(x0, y0), coords=(x1, y1), color=color, face_color=face_color, @@ -324,7 +305,7 @@ class ExclusionAreas(QtCore.QObject): return "" elif event.button == right_button and self.mouse_is_dragging is False: - shape_type = self.shape_type_button.get_value() + shape_type = self.shape_type if shape_type == "square": self.first_click = False @@ -341,23 +322,21 @@ class ExclusionAreas(QtCore.QObject): # we need to add a Polygon and a Polygon can be made only from at least 3 points if len(self.points) > 2: - AppTool.delete_moving_selection_shape(self) + FlatCAMTool.delete_moving_selection_shape(self) pol = Polygon(self.points) # do not add invalid polygons even if they are drawn by utility geometry if pol.is_valid: - """ - { - "obj_type": string("excellon" or "geometry") < - self.obj_type - "shape": Shapely polygon - "strategy": string("over" or "around") < - self.strategy_button - "overz": float < - self.over_z_button - } - """ + # { + # "obj_type": string("excellon" or "geometry") < - self.obj_type + # "shape": Shapely polygon + # "strategy": string("over" or "around") < - self.strategy + # "overz": float < - self.over_z + # } new_el = { "obj_type": self.obj_type, "shape": pol, - "strategy": self.strategy_button.get_value(), - "overz": self.over_z_button.get_value() + "strategy": self.strategy, + "overz": self.over_z } self.exclusion_areas_storage.append(new_el) @@ -368,7 +347,7 @@ class ExclusionAreas(QtCore.QObject): color = "#098a8f" face_color = "#FF7400BF" - AppTool.draw_selection_shape_polygon( + FlatCAMTool.draw_selection_shape_polygon( self, points=self.points, color=color, face_color=face_color, @@ -380,7 +359,7 @@ class ExclusionAreas(QtCore.QObject): self.poly_drawn = False return - # AppTool.delete_tool_selection_shape(self, shapes_storage=self.exclusion_shapes) + # FlatCAMTool.delete_tool_selection_shape(self, shapes_storage=self.exclusion_shapes) if self.app.is_legacy is False: self.app.plotcanvas.graph_event_disconnect('mouse_release', self.on_mouse_release) @@ -403,11 +382,11 @@ class ExclusionAreas(QtCore.QObject): if len(self.exclusion_areas_storage) == 0: return - # since the exclusion areas should apply to all objects in the app collection, this check is limited to - # only the current object therefore it will not guarantee success - self.app.inform.emit("%s" % _("Exclusion areas added. Checking overlap with the object geometry ...")) + self.app.inform.emit( + "[success] %s" % _("Exclusion areas added. Checking overlap with the object geometry ...")) + for el in self.exclusion_areas_storage: - if el["shape"].intersects(unary_union(self.solid_geometry)): + if el["shape"].intersects(MultiPolygon(self.solid_geometry)): self.on_clear_area_click() self.app.inform.emit( "[ERROR_NOTCL] %s" % _("Failed. Exclusion areas intersects the object geometry ...")) @@ -427,15 +406,10 @@ class ExclusionAreas(QtCore.QObject): ) self.e_shape_modified.emit() + for k in self.exclusion_areas_storage: + print(k) def area_disconnect(self): - """ - Will do the cleanup. Will disconnect the mouse events for the custom handlers in this class and initialize - certain class attributes. - - :return: None - :rtype: - """ if self.app.is_legacy is False: self.app.plotcanvas.graph_event_disconnect('mouse_release', self.on_mouse_release) self.app.plotcanvas.graph_event_disconnect('mouse_move', self.on_mouse_move) @@ -454,22 +428,15 @@ class ExclusionAreas(QtCore.QObject): self.poly_drawn = False self.exclusion_areas_storage = [] - AppTool.delete_moving_selection_shape(self) - # AppTool.delete_tool_selection_shape(self, shapes_storage=self.exclusion_shapes) + FlatCAMTool.delete_moving_selection_shape(self) + # FlatCAMTool.delete_tool_selection_shape(self, shapes_storage=self.exclusion_shapes) self.app.call_source = "app" self.app.inform.emit("[WARNING_NOTCL] %s" % _("Cancelled. Area exclusion drawing was interrupted.")) + # called on mouse move def on_mouse_move(self, event): - """ - Called on mouse move - - :param event: mouse event - :type event: - :return: None - :rtype: - """ - shape_type = self.shape_type_button.get_value() + shape_type = self.shape_type if self.app.is_legacy is False: event_pos = event.pos @@ -499,20 +466,15 @@ class ExclusionAreas(QtCore.QObject): size=self.app.defaults["global_cursor_size"]) # update the positions on status bar + self.app.ui.position_label.setText("    X: %.4f   " + "Y: %.4f" % (curr_pos[0], curr_pos[1])) if self.cursor_pos is None: self.cursor_pos = (0, 0) self.app.dx = curr_pos[0] - float(self.cursor_pos[0]) self.app.dy = curr_pos[1] - float(self.cursor_pos[1]) - self.app.ui.position_label.setText(" X: %.4f   " - "Y: %.4f " % (curr_pos[0], curr_pos[1])) - # self.app.ui.rel_position_label.setText("Dx: %.4f   Dy: " - # "%.4f    " % (self.app.dx, self.app.dy)) - - units = self.app.defaults["units"].lower() - self.app.plotcanvas.text_hud.text = \ - 'Dx:\t{:<.4f} [{:s}]\nDy:\t{:<.4f} [{:s}]\n\nX: \t{:<.4f} [{:s}]\nY: \t{:<.4f} [{:s}]'.format( - self.app.dx, units, self.app.dy, units, curr_pos[0], units, curr_pos[1], units) + self.app.ui.rel_position_label.setText("Dx: %.4f   Dy: " + "%.4f    " % (self.app.dx, self.app.dy)) if self.obj_type == 'excellon': color = "#FF7400" @@ -531,20 +493,14 @@ class ExclusionAreas(QtCore.QObject): face_color=face_color, coords=(curr_pos[0], curr_pos[1])) else: - AppTool.delete_moving_selection_shape(self) - AppTool.draw_moving_selection_shape_poly( + FlatCAMTool.delete_moving_selection_shape(self) + FlatCAMTool.draw_moving_selection_shape_poly( self, points=self.points, color=color, face_color=face_color, data=(curr_pos[0], curr_pos[1])) def on_clear_area_click(self): - """ - Slot for clicking the button for Deleting all the Exclusion areas. - - :return: None - :rtype: - """ self.clear_shapes() # restore the default StyleSheet @@ -559,28 +515,21 @@ class ExclusionAreas(QtCore.QObject): self.cnc_button.setToolTip('%s' % _("Generate the CNC Job object.")) def clear_shapes(self): - """ - Will delete all the Exclusion areas; will delete on canvas any possible selection box for the Exclusion areas. - - :return: None - :rtype: - """ self.exclusion_areas_storage.clear() - AppTool.delete_moving_selection_shape(self) + FlatCAMTool.delete_moving_selection_shape(self) self.app.delete_selection_shape() - AppTool.delete_tool_selection_shape(self, shapes_storage=self.exclusion_shapes) - self.app.inform.emit('%s' % _("All exclusion zones deleted.")) + FlatCAMTool.delete_tool_selection_shape(self, shapes_storage=self.exclusion_shapes) + self.app.inform.emit('[success] %s' % _("All exclusion zones deleted.")) def delete_sel_shapes(self, idxs): """ - :param idxs: list of indexes in self.exclusion_areas_storage list to be deleted - :type idxs: list - :return: None + :param idxs: list of indexes in self.exclusion_areas_storage list to be deleted + :return: """ # delete all plotted shapes - AppTool.delete_tool_selection_shape(self, shapes_storage=self.exclusion_shapes) + FlatCAMTool.delete_tool_selection_shape(self, shapes_storage=self.exclusion_shapes) # delete shapes for idx in sorted(idxs, reverse=True): @@ -618,234 +567,4 @@ class ExclusionAreas(QtCore.QObject): """) self.cnc_button.setToolTip('%s' % _("Generate the CNC Job object.")) - self.app.inform.emit('%s' % _("All exclusion zones deleted.")) - - def travel_coordinates(self, start_point, end_point, tooldia): - """ - WIll create a path the go around the exclusion areas on the shortest path when travelling (at a Z above the - material). - - :param start_point: X,Y coordinates for the start point of the travel line - :type start_point: tuple - :param end_point: X,Y coordinates for the destination point of the travel line - :type end_point: tuple - :param tooldia: THe tool diameter used and which generates the travel lines - :type tooldia float - :return: A list of x,y tuples that describe the avoiding path - :rtype: list - """ - - ret_list = [] - - # Travel lines: rapids. Should not pass through Exclusion areas - travel_line = LineString([start_point, end_point]) - origin_point = Point(start_point) - - buffered_storage = [] - # add a little something to the half diameter, to make sure that we really don't enter in the exclusion zones - buffered_distance = (tooldia / 2.0) + (0.1 if self.app.defaults['units'] == 'MM' else 0.00393701) - - for area in self.exclusion_areas_storage: - new_area = deepcopy(area) - new_area['shape'] = area['shape'].buffer(buffered_distance, join_style=2) - buffered_storage.append(new_area) - - # sort the Exclusion areas from the closest to the start_point to the farthest - tmp = [] - for area in buffered_storage: - dist = Point(start_point).distance(area['shape']) - tmp.append((dist, area)) - tmp.sort(key=lambda k: k[0]) - - sorted_area_storage = [k[1] for k in tmp] - - # process the ordered exclusion areas list - for area in sorted_area_storage: - outline = area['shape'].exterior - if travel_line.intersects(outline): - intersection_pts = travel_line.intersection(outline) - - if isinstance(intersection_pts, Point): - # it's just a touch, continue - continue - - entry_pt = nearest_point(origin_point, intersection_pts) - exit_pt = farthest_point(origin_point, intersection_pts) - - if area['strategy'] == 'around': - full_vertex_points = [Point(x) for x in list(outline.coords)] - - # the last coordinate in outline, a LinearRing, is the closing one - # therefore a duplicate of the first one; discard it - vertex_points = full_vertex_points[:-1] - - # dist_from_entry = [(entry_pt.distance(vt), vertex_points.index(vt)) for vt in vertex_points] - # closest_point_entry = nsmallest(1, dist_from_entry, key=lambda x: x[0]) - # start_idx = closest_point_entry[0][1] - # - # dist_from_exit = [(exit_pt.distance(vt), vertex_points.index(vt)) for vt in vertex_points] - # closest_point_exit = nsmallest(1, dist_from_exit, key=lambda x: x[0]) - # end_idx = closest_point_exit[0][1] - - # pts_line_entry = None - # pts_line_exit = None - # for i in range(len(full_vertex_points)): - # try: - # line = LineString( - # [ - # (full_vertex_points[i].x, full_vertex_points[i].y), - # (full_vertex_points[i + 1].x, full_vertex_points[i + 1].y) - # ] - # ) - # except IndexError: - # continue - # - # if entry_pt.within(line) or entry_pt.equals(Point(line.coords[0])) or \ - # entry_pt.equals(Point(line.coords[1])): - # pts_line_entry = [Point(x) for x in line.coords] - # - # if exit_pt.within(line) or exit_pt.equals(Point(line.coords[0])) or \ - # exit_pt.equals(Point(line.coords[1])): - # pts_line_exit = [Point(x) for x in line.coords] - # - # closest_point_entry = nearest_point(entry_pt, pts_line_entry) - # start_idx = vertex_points.index(closest_point_entry) - # - # closest_point_exit = nearest_point(exit_pt, pts_line_exit) - # end_idx = vertex_points.index(closest_point_exit) - - # find all vertexes for which a line from start_point does not cross the Exclusion area polygon - # the same for end_point - # we don't need closest points for which the path leads to crosses of the Exclusion area - - close_start_points = [] - close_end_points = [] - for i in range(len(vertex_points)): - try: - start_line = LineString( - [ - start_point, - (vertex_points[i].x, vertex_points[i].y) - ] - ) - end_line = LineString( - [ - end_point, - (vertex_points[i].x, vertex_points[i].y) - ] - ) - except IndexError: - continue - - if not start_line.crosses(area['shape']): - close_start_points.append(vertex_points[i]) - if not end_line.crosses(area['shape']): - close_end_points.append(vertex_points[i]) - - closest_point_entry = nearest_point(entry_pt, close_start_points) - closest_point_exit = nearest_point(exit_pt, close_end_points) - - start_idx = vertex_points.index(closest_point_entry) - end_idx = vertex_points.index(closest_point_exit) - - # calculate possible paths: one clockwise the other counterclockwise on the exterior of the - # exclusion area outline (Polygon.exterior) - vp_len = len(vertex_points) - if end_idx > start_idx: - path_1 = vertex_points[start_idx:(end_idx + 1)] - path_2 = [vertex_points[start_idx]] - idx = start_idx - for __ in range(vp_len): - idx = idx - 1 if idx > 0 else (vp_len - 1) - path_2.append(vertex_points[idx]) - if idx == end_idx: - break - else: - path_1 = vertex_points[end_idx:(start_idx + 1)] - path_2 = [vertex_points[end_idx]] - idx = end_idx - for __ in range(vp_len): - idx = idx - 1 if idx > 0 else (vp_len - 1) - path_2.append(vertex_points[idx]) - if idx == start_idx: - break - path_1.reverse() - path_2.reverse() - - # choose the one with the lesser length - length_path_1 = 0 - for i in range(len(path_1)): - try: - length_path_1 += path_1[i].distance(path_1[i + 1]) - except IndexError: - pass - - length_path_2 = 0 - for i in range(len(path_2)): - try: - length_path_2 += path_2[i].distance(path_2[i + 1]) - except IndexError: - pass - - path = path_1 if length_path_1 < length_path_2 else path_2 - - # transform the list of Points into a list of Points coordinates - path_coords = [[None, (p.x, p.y)] for p in path] - ret_list += path_coords - - else: - path_coords = [[float(area['overz']), (entry_pt.x, entry_pt.y)], [None, (exit_pt.x, exit_pt.y)]] - ret_list += path_coords - - # create a new LineString to test again for possible other Exclusion zones - last_pt_in_path = path_coords[-1][1] - travel_line = LineString([last_pt_in_path, end_point]) - - ret_list.append([None, end_point]) - return ret_list - - -def farthest_point(origin, points_list): - """ - Calculate the farthest Point in a list from another Point - - :param origin: Reference Point - :type origin: Point - :param points_list: List of Points or a MultiPoint - :type points_list: list - :return: Farthest Point - :rtype: Point - """ - old_dist = 0 - fartherst_pt = None - - for pt in points_list: - dist = abs(origin.distance(pt)) - if dist >= old_dist: - fartherst_pt = pt - old_dist = dist - - return fartherst_pt - - -def nearest_point(origin, points_list): - """ - Calculate the nearest Point in a list from another Point - - :param origin: Reference Point - :type origin: Point - :param points_list: List of Points or a MultiPoint - :type points_list: list - :return: Nearest Point - :rtype: Point - """ - old_dist = np.Inf - nearest_pt = None - - for pt in points_list: - dist = abs(origin.distance(pt)) - if dist <= old_dist: - nearest_pt = pt - old_dist = dist - - return nearest_pt + self.app.inform.emit('[success] %s' % _("All exclusion zones deleted.")) diff --git a/AppDatabase.py b/FlatCAMDB.py similarity index 91% rename from AppDatabase.py rename to FlatCAMDB.py index b6836b0f..eb270ee3 100644 --- a/AppDatabase.py +++ b/FlatCAMDB.py @@ -1,5 +1,5 @@ from PyQt5 import QtGui, QtCore, QtWidgets -from AppGUI.GUIElements import FCTable, FCEntry, FCButton, FCDoubleSpinner, FCComboBox, FCCheckBox, FCSpinner, \ +from flatcamGUI.GUIElements import FCTable, FCEntry, FCButton, FCDoubleSpinner, FCComboBox, FCCheckBox, FCSpinner, \ FCTree, RadioSet, FCFileSaveDialog from camlib import to_dict @@ -8,10 +8,8 @@ import json from copy import deepcopy from datetime import datetime -import math - import gettext -import AppTranslation as fcTranslate +import FlatCAMTranslation as fcTranslate import builtins fcTranslate.apply_language('strings') @@ -119,7 +117,7 @@ class ToolsDB(QtWidgets.QWidget): ) self.buttons_box.addWidget(import_db_btn) - self.add_tool_from_db = FCButton(_("Transfer the Tool")) + self.add_tool_from_db = FCButton(_("Add Tool from Tools DB")) self.add_tool_from_db.setToolTip( _("Add a new tool in the Tools Table of the\n" "active Geometry object after selecting a tool\n" @@ -315,7 +313,7 @@ class ToolsDB(QtWidgets.QWidget): self.app.inform.emit('[ERROR] %s' % _("Failed to parse Tools DB file.")) return - self.app.inform.emit('[success] %s: %s' % (_("Loaded Tools DB from"), filename)) + self.app.inform.emit('[success] %s: %s' % (_("Loaded FlatCAM Tools DB from"), filename)) self.build_db_ui() @@ -657,7 +655,7 @@ class ToolsDB(QtWidgets.QWidget): l_save=str(self.app.get_last_save_folder()), n=_("Tools_Database"), date=date), - ext_filter=filter__) + filter=filter__) filename = str(filename) @@ -726,7 +724,7 @@ class ToolsDB(QtWidgets.QWidget): self.app.inform.emit('[ERROR] %s' % _("Failed to parse Tools DB file.")) return - self.app.inform.emit('[success] %s: %s' % (_("Loaded Tools DB from"), filename)) + self.app.inform.emit('[success] %s: %s' % (_("Loaded FlatCAM Tools DB from"), filename)) self.build_db_ui() self.callback_on_edited() @@ -1032,7 +1030,6 @@ class ToolsDB2(QtWidgets.QWidget): self.advanced_box.setTitle(_("Advanced Geo Parameters")) self.advanced_box.setFixedWidth(250) - # NCC TOOL BOX self.ncc_box = QtWidgets.QGroupBox() self.ncc_box.setStyleSheet(""" QGroupBox @@ -1045,7 +1042,6 @@ class ToolsDB2(QtWidgets.QWidget): self.ncc_box.setTitle(_("NCC Parameters")) self.ncc_box.setFixedWidth(250) - # PAINT TOOL BOX self.paint_box = QtWidgets.QGroupBox() self.paint_box.setStyleSheet(""" QGroupBox @@ -1058,24 +1054,10 @@ class ToolsDB2(QtWidgets.QWidget): self.paint_box.setTitle(_("Paint Parameters")) self.paint_box.setFixedWidth(250) - # ISOLATION TOOL BOX - self.iso_box = QtWidgets.QGroupBox() - self.iso_box.setStyleSheet(""" - QGroupBox - { - font-size: 16px; - font-weight: bold; - } - """) - self.iso_vlay = QtWidgets.QVBoxLayout() - self.iso_box.setTitle(_("Isolation Parameters")) - self.iso_box.setFixedWidth(250) - self.basic_box.setLayout(self.basic_vlay) self.advanced_box.setLayout(self.advanced_vlay) self.ncc_box.setLayout(self.ncc_vlay) self.paint_box.setLayout(self.paint_vlay) - self.iso_box.setLayout(self.iso_vlay) geo_vlay = QtWidgets.QVBoxLayout() geo_vlay.addWidget(self.basic_box) @@ -1085,7 +1067,6 @@ class ToolsDB2(QtWidgets.QWidget): tools_vlay = QtWidgets.QVBoxLayout() tools_vlay.addWidget(self.ncc_box) tools_vlay.addWidget(self.paint_box) - tools_vlay.addWidget(self.iso_box) tools_vlay.addStretch() param_hlay.addLayout(geo_vlay) @@ -1497,7 +1478,7 @@ class ToolsDB2(QtWidgets.QWidget): self.ncc_method_combo = FCComboBox() self.ncc_method_combo.addItems( - [_("Standard"), _("Seed"), _("Lines"), _("Combo")] + [_("Standard"), _("Seed"), _("Lines")] ) self.ncc_method_combo.setObjectName("gdb_n_method") @@ -1640,101 +1621,6 @@ class ToolsDB2(QtWidgets.QWidget): self.grid3.addWidget(self.pathconnect_cb, 10, 0) self.grid3.addWidget(self.paintcontour_cb, 10, 1) - # ########################################################################### - # ############### Paint UI form ############################################# - # ########################################################################### - - self.grid4 = QtWidgets.QGridLayout() - self.iso_vlay.addLayout(self.grid4) - self.grid4.setColumnStretch(0, 0) - self.grid4.setColumnStretch(1, 1) - self.iso_vlay.addStretch() - - # Passes - passlabel = QtWidgets.QLabel('%s:' % _('Passes')) - passlabel.setToolTip( - _("Width of the isolation gap in\n" - "number (integer) of tool widths.") - ) - self.passes_entry = FCSpinner() - self.passes_entry.set_range(1, 999) - self.passes_entry.setObjectName("gdb_i_passes") - - self.grid4.addWidget(passlabel, 0, 0) - self.grid4.addWidget(self.passes_entry, 0, 1) - - # Overlap Entry - overlabel = QtWidgets.QLabel('%s:' % _('Overlap')) - overlabel.setToolTip( - _("How much (percentage) of the tool width to overlap each tool pass.") - ) - self.iso_overlap_entry = FCDoubleSpinner(suffix='%') - self.iso_overlap_entry.set_precision(self.decimals) - self.iso_overlap_entry.setWrapping(True) - self.iso_overlap_entry.set_range(0.0000, 99.9999) - self.iso_overlap_entry.setSingleStep(0.1) - self.iso_overlap_entry.setObjectName("gdb_i_overlap") - - self.grid4.addWidget(overlabel, 2, 0) - self.grid4.addWidget(self.iso_overlap_entry, 2, 1) - - # Milling Type Radio Button - self.milling_type_label = QtWidgets.QLabel('%s:' % _('Milling Type')) - self.milling_type_label.setToolTip( - _("Milling type when the selected tool is of type: 'iso_op':\n" - "- climb / best for precision milling and to reduce tool usage\n" - "- conventional / useful when there is no backlash compensation") - ) - - self.milling_type_radio = RadioSet([{'label': _('Climb'), 'value': 'cl'}, - {'label': _('Conventional'), 'value': 'cv'}]) - self.milling_type_radio.setToolTip( - _("Milling type when the selected tool is of type: 'iso_op':\n" - "- climb / best for precision milling and to reduce tool usage\n" - "- conventional / useful when there is no backlash compensation") - ) - self.milling_type_radio.setObjectName("gdb_i_milling_type") - - self.grid4.addWidget(self.milling_type_label, 4, 0) - self.grid4.addWidget(self.milling_type_radio, 4, 1) - - # Follow - self.follow_label = QtWidgets.QLabel('%s:' % _('Follow')) - self.follow_label.setToolTip( - _("Generate a 'Follow' geometry.\n" - "This means that it will cut through\n" - "the middle of the trace.") - ) - - self.follow_cb = FCCheckBox() - self.follow_cb.setToolTip(_("Generate a 'Follow' geometry.\n" - "This means that it will cut through\n" - "the middle of the trace.")) - self.follow_cb.setObjectName("gdb_i_follow") - - self.grid4.addWidget(self.follow_label, 6, 0) - self.grid4.addWidget(self.follow_cb, 6, 1) - - # Isolation Type - self.iso_type_label = QtWidgets.QLabel('%s:' % _('Isolation Type')) - self.iso_type_label.setToolTip( - _("Choose how the isolation will be executed:\n" - "- 'Full' -> complete isolation of polygons\n" - "- 'Ext' -> will isolate only on the outside\n" - "- 'Int' -> will isolate only on the inside\n" - "'Exterior' isolation is almost always possible\n" - "(with the right tool) but 'Interior'\n" - "isolation can be done only when there is an opening\n" - "inside of the polygon (e.g polygon is a 'doughnut' shape).") - ) - self.iso_type_radio = RadioSet([{'label': _('Full'), 'value': 'full'}, - {'label': _('Ext'), 'value': 'ext'}, - {'label': _('Int'), 'value': 'int'}]) - self.iso_type_radio.setObjectName("gdb_i_iso_type") - - self.grid4.addWidget(self.iso_type_label, 8, 0) - self.grid4.addWidget(self.iso_type_radio, 8, 1) - # #################################################################### # #################################################################### # GUI for the lower part of the window @@ -1792,19 +1678,12 @@ class ToolsDB2(QtWidgets.QWidget): ) self.buttons_box.addWidget(self.save_db_btn) - self.add_tool_from_db = FCButton(_("Transfer the Tool")) + self.add_tool_from_db = FCButton(_("Add Tool from Tools DB")) self.add_tool_from_db.setToolTip( - _("Insert a new tool in the Tools Table of the\n" - "object/application tool after selecting a tool\n" + _("Add a new tool in the Tools Table of the\n" + "active Geometry object after selecting a tool\n" "in the Tools Database.") ) - self.add_tool_from_db.setStyleSheet(""" - QPushButton - { - font-weight: bold; - color: green; - } - """) self.add_tool_from_db.hide() self.cancel_tool_from_db = FCButton(_("Cancel")) @@ -1814,7 +1693,7 @@ class ToolsDB2(QtWidgets.QWidget): tree_layout.addLayout(hlay) hlay.addWidget(self.add_tool_from_db) hlay.addWidget(self.cancel_tool_from_db) - # hlay.addStretch() + hlay.addStretch() # ############################################################################## # ############################################################################## @@ -1864,13 +1743,6 @@ class ToolsDB2(QtWidgets.QWidget): "tools_paintmethod": self.paintmethod_combo, "tools_pathconnect": self.pathconnect_cb, "tools_paintcontour": self.paintcontour_cb, - - # Isolation - "tools_iso_passes": self.passes_entry, - "tools_iso_overlap": self.iso_overlap_entry, - "tools_iso_milling_type": self.milling_type_radio, - "tools_iso_follow": self.follow_cb, - "tools_iso_isotype": self.iso_type_radio } self.name2option = { @@ -1915,13 +1787,6 @@ class ToolsDB2(QtWidgets.QWidget): 'gdb_p_method': "tools_paintmethod", 'gdb_p_connect': "tools_pathconnect", 'gdb_p_contour': "tools_paintcontour", - - # Isolation - "gdb_i_passes": "tools_iso_passes", - "gdb_i_overlap": "tools_iso_overlap", - "gdb_i_milling_type": "tools_iso_milling_type", - "gdb_i_follow": "tools_iso_follow", - "gdb_i_iso_type": "tools_iso_isotype" } self.current_toolid = None @@ -2022,7 +1887,7 @@ class ToolsDB2(QtWidgets.QWidget): self.blockSignals(False) def setup_db_ui(self): - filename = self.app.data_path + '\geo_tools_db.FlatDB' + filename = self.app.data_path + '/geo_tools_db.FlatDB' # load the database tools from the file try: @@ -2041,7 +1906,7 @@ class ToolsDB2(QtWidgets.QWidget): self.app.inform.emit('[ERROR] %s' % _("Failed to parse Tools DB file.")) return - self.app.inform.emit('[success] %s: %s' % (_("Loaded Tools DB from"), filename)) + self.app.inform.emit('[success] %s: %s' % (_("Loaded FlatCAM Tools DB from"), filename)) self.build_db_ui() @@ -2074,23 +1939,21 @@ class ToolsDB2(QtWidgets.QWidget): if self.db_tool_dict: self.storage_to_form(self.db_tool_dict['1']) - # Enable AppGUI + # Enable GUI self.basic_box.setEnabled(True) self.advanced_box.setEnabled(True) self.ncc_box.setEnabled(True) self.paint_box.setEnabled(True) - self.iso_box.setEnabled(True) self.tree_widget.setCurrentItem(self.tree_widget.topLevelItem(0)) # self.tree_widget.setFocus() else: - # Disable AppGUI + # Disable GUI self.basic_box.setEnabled(False) self.advanced_box.setEnabled(False) self.ncc_box.setEnabled(False) self.paint_box.setEnabled(False) - self.iso_box.setEnabled(False) else: self.storage_to_form(self.db_tool_dict[str(self.current_toolid)]) @@ -2143,27 +2006,10 @@ class ToolsDB2(QtWidgets.QWidget): "tools_paintmethod": self.app.defaults["tools_paintmethod"], "tools_pathconnect": self.app.defaults["tools_pathconnect"], "tools_paintcontour": self.app.defaults["tools_paintcontour"], - - # Isolation - "tools_iso_passes": int(self.app.defaults["tools_iso_passes"]), - "tools_iso_overlap": float(self.app.defaults["tools_iso_overlap"]), - "tools_iso_milling_type": self.app.defaults["tools_iso_milling_type"], - "tools_iso_follow": self.app.defaults["tools_iso_follow"], - "tools_iso_isotype": self.app.defaults["tools_iso_isotype"], }) - temp = [] - for k, v in self.db_tool_dict.items(): - if "new_tool_" in v['name']: - temp.append(float(v['name'].rpartition('_')[2])) - - if temp: - new_name = "new_tool_%d" % int(max(temp) + 1) - else: - new_name = "new_tool_1" - dict_elem = {} - dict_elem['name'] = new_name + dict_elem['name'] = 'new_tool' if type(self.app.defaults["geometry_cnctooldia"]) == float: dict_elem['tooldia'] = self.app.defaults["geometry_cnctooldia"] else: @@ -2271,7 +2117,7 @@ class ToolsDB2(QtWidgets.QWidget): l_save=str(self.app.get_last_save_folder()), n=_("Tools_Database"), date=date), - ext_filter=filter__) + filter=filter__) filename = str(filename) @@ -2340,7 +2186,7 @@ class ToolsDB2(QtWidgets.QWidget): self.app.inform.emit('[ERROR] %s' % _("Failed to parse Tools DB file.")) return - self.app.inform.emit('[success] %s: %s' % (_("Loaded Tools DB from"), filename)) + self.app.inform.emit('[success] %s: %s' % (_("Loaded FlatCAM Tools DB from"), filename)) self.build_db_ui() self.update_storage() @@ -2372,18 +2218,6 @@ class ToolsDB2(QtWidgets.QWidget): self.app.tools_db_changed_flag = False self.on_save_tools_db() - def on_calculate_tooldia(self): - if self.shape_combo.get_value() == 'V': - tip_dia = float(self.vdia_entry.get_value()) - half_tip_angle = float(self.vangle_entry.get_value()) / 2.0 - cut_z = float(self.cutz_entry.get_value()) - cut_z = -cut_z if cut_z < 0 else cut_z - - # calculated tool diameter so the cut_z parameter is obeyed - tool_dia = tip_dia + (2 * cut_z * math.tan(math.radians(half_tip_angle))) - - self.dia_entry.set_value(tool_dia) - def ui_connect(self): # make sure that we don't make multiple connections to the widgets self.ui_disconnect() @@ -2413,40 +2247,12 @@ class ToolsDB2(QtWidgets.QWidget): if isinstance(wdg, FCSpinner) or isinstance(wdg, FCDoubleSpinner): wdg.valueChanged.connect(self.update_storage) - # connect the calculate tooldia method to the controls - # if the tool shape is 'V' the tool dia will be calculated to obey Cut Z parameter - self.shape_combo.currentIndexChanged.connect(self.on_calculate_tooldia) - self.cutz_entry.valueChanged.connect(self.on_calculate_tooldia) - self.vdia_entry.valueChanged.connect(self.on_calculate_tooldia) - self.vangle_entry.valueChanged.connect(self.on_calculate_tooldia) - - def ui_disconnect(self): try: self.name_entry.editingFinished.disconnect(self.update_tree_name) except (TypeError, AttributeError): pass - try: - self.shape_combo.currentIndexChanged.disconnect(self.on_calculate_tooldia) - except (TypeError, AttributeError): - pass - - try: - self.cutz_entry.valueChanged.disconnect(self.on_calculate_tooldia) - except (TypeError, AttributeError): - pass - - try: - self.vdia_entry.valueChanged.disconnect(self.on_calculate_tooldia) - except (TypeError, AttributeError): - pass - - try: - self.vangle_entry.valueChanged.disconnect(self.on_calculate_tooldia) - except (TypeError, AttributeError): - pass - for key in self.form_fields: wdg = self.form_fields[key] @@ -2592,18 +2398,6 @@ class ToolsDB2(QtWidgets.QWidget): elif wdg_name == "gdb_p_contour": self.db_tool_dict[tool_id]['data']['tools_paintcontour'] = val - # Isolation Tool - elif wdg_name == "gdb_i_passes": - self.db_tool_dict[tool_id]['data']['tools_iso_passes'] = val - elif wdg_name == "gdb_i_overlap": - self.db_tool_dict[tool_id]['data']['tools_iso_overlap'] = val - elif wdg_name == "gdb_i_milling_type": - self.db_tool_dict[tool_id]['data']['tools_iso_milling_type'] = val - elif wdg_name == "gdb_i_follow": - self.db_tool_dict[tool_id]['data']['tools_iso_follow'] = val - elif wdg_name == "gdb_i_iso_type": - self.db_tool_dict[tool_id]['data']['tools_iso_isotype'] = val - self.callback_app() def on_tool_requested_from_app(self): diff --git a/AppPool.py b/FlatCAMPool.py similarity index 100% rename from AppPool.py rename to FlatCAMPool.py diff --git a/AppPreProcessor.py b/FlatCAMPostProc.py similarity index 93% rename from AppPreProcessor.py rename to FlatCAMPostProc.py index 4ae297f7..15991d80 100644 --- a/AppPreProcessor.py +++ b/FlatCAMPostProc.py @@ -19,10 +19,10 @@ log = logging.getLogger('base') preprocessors = {} -class ABCPreProcRegister(ABCMeta): +class ABCPostProcRegister(ABCMeta): # handles preprocessors registration on instantiation def __new__(cls, clsname, bases, attrs): - newclass = super(ABCPreProcRegister, cls).__new__(cls, clsname, bases, attrs) + newclass = super(ABCPostProcRegister, cls).__new__(cls, clsname, bases, attrs) if object not in bases: if newclass.__name__ in preprocessors: log.warning('Preprocessor %s has been overriden' % newclass.__name__) @@ -30,7 +30,7 @@ class ABCPreProcRegister(ABCMeta): return newclass -class PreProc(object, metaclass=ABCPreProcRegister): +class FlatCAMPostProc(object, metaclass=ABCPostProcRegister): @abstractmethod def start_code(self, p): pass @@ -76,7 +76,7 @@ class PreProc(object, metaclass=ABCPreProcRegister): pass -class AppPreProcTools(object, metaclass=ABCPreProcRegister): +class FlatCAMPostProc_Tools(object, metaclass=ABCPostProcRegister): @abstractmethod def start_code(self, p): pass diff --git a/AppProcess.py b/FlatCAMProcess.py similarity index 98% rename from AppProcess.py rename to FlatCAMProcess.py index 313e8581..e225f83e 100644 --- a/AppProcess.py +++ b/FlatCAMProcess.py @@ -6,12 +6,12 @@ # MIT Licence # # ########################################################## -from AppGUI.GUIElements import FlatCAMActivityView +from flatcamGUI.FlatCAMGUI import FlatCAMActivityView from PyQt5 import QtCore import weakref import gettext -import AppTranslation as fcTranslate +import FlatCAMTranslation as fcTranslate import builtins fcTranslate.apply_language('strings') diff --git a/AppTool.py b/FlatCAMTool.py similarity index 85% rename from AppTool.py rename to FlatCAMTool.py index f288cdf0..470a484a 100644 --- a/AppTool.py +++ b/FlatCAMTool.py @@ -6,12 +6,13 @@ # MIT Licence # # ########################################################## ## -from PyQt5 import QtCore, QtWidgets +from PyQt5 import QtGui, QtCore, QtWidgets, QtWidgets +from PyQt5.QtCore import Qt from shapely.geometry import Polygon, LineString import gettext -import AppTranslation as fcTranslate +import FlatCAMTranslation as fcTranslate import builtins fcTranslate.apply_language('strings') @@ -19,23 +20,22 @@ if '_' not in builtins.__dict__: _ = gettext.gettext -class AppTool(QtWidgets.QWidget): +class FlatCAMTool(QtWidgets.QWidget): toolName = "FlatCAM Generic Tool" def __init__(self, app, parent=None): """ - :param app: The application this tool will run in. - :type app: App_Main.App - :param parent: Qt Parent - :return: AppTool + :param app: The application this tool will run in. + :type app: App + :param parent: Qt Parent + :return: FlatCAMTool """ - QtWidgets.QWidget.__init__(self, parent) - self.app = app - self.decimals = self.app.decimals + self.decimals = app.decimals + QtWidgets.QWidget.__init__(self, parent) # self.setSizePolicy(QtWidgets.QSizePolicy.Maximum, QtWidgets.QSizePolicy.Maximum) self.layout = QtWidgets.QVBoxLayout() @@ -87,10 +87,10 @@ class AppTool(QtWidgets.QWidget): if self.app.tool_tab_locked is True: return - # Remove anything else in the AppGUI + # Remove anything else in the GUI self.app.ui.tool_scroll_area.takeWidget() - # Put ourself in the AppGUI + # Put ourself in the GUI self.app.ui.tool_scroll_area.setWidget(self) # Switch notebook to tool page @@ -277,25 +277,22 @@ class AppTool(QtWidgets.QWidget): def confirmation_message(self, accepted, minval, maxval): if accepted is False: - self.app.inform[str, bool].emit('[WARNING_NOTCL] %s: [%.*f, %.*f]' % (_("Edited value is out of range"), - self.decimals, - minval, - self.decimals, - maxval), False) + self.app.inform.emit('[WARNING_NOTCL] %s: [%.*f, %.*f]' % + (_("Edited value is out of range"), self.decimals, minval, self.decimals, maxval)) else: - self.app.inform[str, bool].emit('[success] %s' % _("Edited value is within limits."), False) + self.app.inform.emit('[success] %s' % _("Edited value is within limits.")) def confirmation_message_int(self, accepted, minval, maxval): if accepted is False: - self.app.inform[str, bool].emit('[WARNING_NOTCL] %s: [%d, %d]' % - (_("Edited value is out of range"), minval, maxval), False) + self.app.inform.emit('[WARNING_NOTCL] %s: [%d, %d]' % + (_("Edited value is out of range"), minval, maxval)) else: - self.app.inform[str, bool].emit('[success] %s' % _("Edited value is within limits."), False) + self.app.inform.emit('[success] %s' % _("Edited value is within limits.")) def sizeHint(self): """ I've overloaded this just in case I will need to make changes in the future to enforce dimensions :return: """ - default_hint_size = super(AppTool, self).sizeHint() + default_hint_size = super(FlatCAMTool, self).sizeHint() return QtCore.QSize(default_hint_size.width(), default_hint_size.height()) diff --git a/AppTranslation.py b/FlatCAMTranslation.py similarity index 98% rename from AppTranslation.py rename to FlatCAMTranslation.py index 8101d72e..82a8ac33 100644 --- a/AppTranslation.py +++ b/FlatCAMTranslation.py @@ -106,8 +106,6 @@ def on_language_apply_click(app, restart=False): (_("Are you sure do you want to change the current language to"), name.capitalize())) msgbox.setWindowTitle(_("Apply Language ...")) msgbox.setWindowIcon(QtGui.QIcon(resource_loc + '/language32.png')) - msgbox.setIcon(QtWidgets.QMessageBox.Question) - bt_yes = msgbox.addButton(_("Yes"), QtWidgets.QMessageBox.YesRole) bt_no = msgbox.addButton(_("No"), QtWidgets.QMessageBox.NoRole) @@ -205,8 +203,6 @@ def restart_program(app, ask=None): "Do you want to Save the project?")) msgbox.setWindowTitle(_("Save changes")) msgbox.setWindowIcon(QtGui.QIcon(resource_loc + '/save_as.png')) - msgbox.setIcon(QtWidgets.QMessageBox.Question) - bt_yes = msgbox.addButton(_('Yes'), QtWidgets.QMessageBox.YesRole) bt_no = msgbox.addButton(_('No'), QtWidgets.QMessageBox.NoRole) diff --git a/AppWorker.py b/FlatCAMWorker.py similarity index 100% rename from AppWorker.py rename to FlatCAMWorker.py diff --git a/AppWorkerStack.py b/FlatCAMWorkerStack.py similarity index 97% rename from AppWorkerStack.py rename to FlatCAMWorkerStack.py index fc8cd6d2..3ce56011 100644 --- a/AppWorkerStack.py +++ b/FlatCAMWorkerStack.py @@ -1,5 +1,5 @@ from PyQt5 import QtCore -from AppWorker import Worker +from FlatCAMWorker import Worker import multiprocessing diff --git a/Utils/vispy_example.py b/Utils/vispy_example.py deleted file mode 100644 index 980d2b10..00000000 --- a/Utils/vispy_example.py +++ /dev/null @@ -1,195 +0,0 @@ -from PyQt5.QtGui import QPalette -from PyQt5 import QtCore, QtWidgets - -import vispy.scene as scene -from vispy.scene.visuals import Rectangle, Text -from vispy.color import Color - -import sys - - -class VisPyCanvas(scene.SceneCanvas): - - def __init__(self, config=None): - super().__init__(config=config, keys=None) - - self.unfreeze() - - # Colors used by the Scene - theme_color = Color('#FFFFFF') - tick_color = Color('#000000') - back_color = str(QPalette().color(QPalette.Window).name()) - - # Central Widget Colors - self.central_widget.bgcolor = back_color - self.central_widget.border_color = back_color - - self.grid_widget = self.central_widget.add_grid(margin=10) - self.grid_widget.spacing = 0 - - # TOP Padding - top_padding = self.grid_widget.add_widget(row=0, col=0, col_span=2) - top_padding.height_max = 0 - - # RIGHT Padding - right_padding = self.grid_widget.add_widget(row=0, col=2, row_span=2) - right_padding.width_max = 0 - - # X Axis - self.xaxis = scene.AxisWidget( - orientation='bottom', axis_color=tick_color, text_color=tick_color, - font_size=8, axis_width=1, - anchors=['center', 'bottom'] - ) - self.xaxis.height_max = 30 - self.grid_widget.add_widget(self.xaxis, row=2, col=1) - - # Y Axis - self.yaxis = scene.AxisWidget( - orientation='left', axis_color=tick_color, text_color=tick_color, - font_size=8, axis_width=1 - ) - self.yaxis.width_max = 55 - self.grid_widget.add_widget(self.yaxis, row=1, col=0) - - # View & Camera - self.view = self.grid_widget.add_view(row=1, col=1, border_color=tick_color, - bgcolor=theme_color) - self.view.camera = scene.PanZoomCamera(aspect=1, rect=(-25, -25, 150, 150)) - - self.xaxis.link_view(self.view) - self.yaxis.link_view(self.view) - - self.grid = scene.GridLines(parent=self.view.scene, color='dimgray') - self.grid.set_gl_state(depth_test=False) - - self.rect = Rectangle(center=(65,30), color=Color('#0000FF10'), border_color=Color('#0000FF10'), - width=120, height=50, radius=[5, 5, 5, 5], parent=self.view) - self.rect.set_gl_state(depth_test=False) - - self.text = Text('', parent=self.view, color='black', pos=(5, 30), method='gpu', anchor_x='left') - self.text.font_size = 8 - self.text.text = 'Coordinates:\nX: %s\nY: %s' % ('0.0000', '0.0000') - - self.freeze() - - # self.measure_fps() - - -class PlotCanvas(QtCore.QObject): - - def __init__(self, container, my_app): - """ - The constructor configures the VisPy figure that - will contain all plots, creates the base axes and connects - events to the plotting area. - - :param container: The parent container in which to draw plots. - :rtype: PlotCanvas - """ - - super().__init__() - - # VisPyCanvas instance - self.vispy_canvas = VisPyCanvas() - - self.vispy_canvas.unfreeze() - - self.my_app = my_app - - # Parent container - self.container = container - - # - self.vispy_canvas.create_native() - self.vispy_canvas.native.setParent(self.my_app.ui) - - # - self.container.addWidget(self.vispy_canvas.native) - - # add two Infinite Lines to act as markers for the X,Y axis - self.v_line = scene.visuals.InfiniteLine( - pos=0, color=(0.0, 0.0, 1.0, 0.3), vertical=True, - parent=self.vispy_canvas.view.scene) - - self.h_line = scene.visuals.InfiniteLine( - pos=0, color=(0.00, 0.0, 1.0, 0.3), vertical=False, - parent=self.vispy_canvas.view.scene) - - self.vispy_canvas.freeze() - - def event_connect(self, event, callback): - getattr(self.vispy_canvas.events, event).connect(callback) - - def event_disconnect(self, event, callback): - getattr(self.vispy_canvas.events, event).disconnect(callback) - - def translate_coords(self, pos): - """ - Translate pixels to canvas units. - """ - tr = self.vispy_canvas.grid.get_transform('canvas', 'visual') - return tr.map(pos) - - -class MyGui(QtWidgets.QMainWindow): - - def __init__(self): - super().__init__() - - self.setWindowTitle("VisPy Test") - - # add Menubar - self.menu = self.menuBar() - self.menufile = self.menu.addMenu("File") - self.menuedit = self.menu.addMenu("Edit") - self.menufhelp = self.menu.addMenu("Help") - - # add a Toolbar - self.file_toolbar = QtWidgets.QToolBar("File Toolbar") - self.addToolBar(self.file_toolbar) - self.button = self.file_toolbar.addAction("Open") - - # add Central Widget - self.c_widget = QtWidgets.QWidget() - self.central_layout = QtWidgets.QVBoxLayout() - self.c_widget.setLayout(self.central_layout) - self.setCentralWidget(self.c_widget) - - # add InfoBar - # self.infobar = self.statusBar() - # self.position_label = QtWidgets.QLabel("Position: X: 0.0000\tY: 0.0000") - # self.infobar.addWidget(self.position_label) - - -class MyApp(QtCore.QObject): - - def __init__(self): - super().__init__() - - self.ui = MyGui() - self.plot = PlotCanvas(container=self.ui.central_layout, my_app=self) - - self.ui.show() - - self.plot.event_connect(event="mouse_move", callback=self.on_mouse_move) - - def on_mouse_move(self, event): - cursor_pos = event.pos - - pos_canvas = self.plot.translate_coords(cursor_pos) - - # we don't need all the info in the tuple returned by the translate_coords() - # only first 2 elements - pos_canvas = [pos_canvas[0], pos_canvas[1]] - self.ui.position_label.setText("Position: X: %.4f\tY: %.4f" % (pos_canvas[0], pos_canvas[1])) - # pos_text = 'Coordinates: \nX: {:<7.4f}\nY: {:<7.4f}'.format(pos_canvas[0], pos_canvas[1]) - pos_text = 'Coordinates: \nX: {:<.4f}\nY: {:<.4f}'.format(pos_canvas[0], pos_canvas[1]) - self.plot.vispy_canvas.text.text = pos_text - - -if __name__ == '__main__': - app = QtWidgets.QApplication(sys.argv) - - m_app = MyApp() - sys.exit(app.exec_()) diff --git a/assets/resources/axis16.png b/assets/resources/axis16.png deleted file mode 100644 index 56aef4330163f695a951dd469f52703722873648..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 404 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJV{wqX6XVU3I`u#fXMsm#F#`kN z5fEmas?8@26l@Rh32_C|g8_U`(pChzL$@TzFPM>)oq8utQtt^|rOM|7>#U0&2|lba4!+m=k;EI#ZJY59@_14LpHn zd?C{|{r~@)LE7V^-Pd_4tOD#;CNTfHXt37yhI%@G#kBL?uLXaYaLX`xNgUNuxqkca zLWfCqKZCal7fj#q?Yi~vgJ$Quix}^%x4SQywJ+bL`$75N1CoLt^o5U3IYSZ@ Na-Ob!F6*2UngHplT=4(^ diff --git a/assets/resources/clear_line16.png b/assets/resources/clear_line16.png deleted file mode 100644 index 3656229f8d725ee9480cc24dc2ff418508b993ea..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 556 zcmV+{0@MA8P)Ok3a0C#YeON-6w^+wi%COfl8Sm(^X}Yp-#O=T zMFySQH?Aty9nc&w-7g=3?U}PzrN-xP!~Ht{u!V9VYEP^gb{FungZqdjHvGwORrOYP zFu)edg|HpG2X0A5f=iaE#yeYpaLW&p^UHPOowwt%xa=8Z`TqjT0Y88%DRb4uf$YRWVkh2u zlcDoHhpd5VFhIVKtKHAY7Or-W-n;E|4$=p8W@pOs^p*d4Ms&?9ef-pt*hncGO?ynu zo|T&WhaP}G8Lnb9$AokNv=`Ylw4VagbbvEM&(J-`GYVIEn_x}b|Or|uWMX!bc00006 diff --git a/assets/resources/contribute256.png b/assets/resources/contribute256.png deleted file mode 100644 index dd1bc4792becdef044cdf1b1990f2cd3161b2c19..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9823 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 F{{^zGhKT?G diff --git a/assets/resources/corners_32.png b/assets/resources/corners_32.png deleted file mode 100644 index b9f872610010dde9de48da2d47ad4540dcf10431..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 349 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabR7dyjKx9jPK-BC>eK@{oCO|{#S9F5 zM?jcysy3fAP|!8NC&U#ig-zoUogY}54V`OSk;&rRau^kvkMDyEAexP zaQ2#=Oam(E^K@|xshION_#$7k0?!*wCE2{Zu7CfR_c?4*Sem~}U0-GC-o>h!-e1HS zUQ~5NxSaMh*t%e1*@pc;I4t_6rM}FOZ}@uA%J+cqkDp5OOd0puZ#nX3pUO<%mou+k zJ70Ul>G6AWzlQ58C-mJmz2~!Y?W+SlKb3wIE%GSYEmEMRC>&t>?VX3*_eHDSLFjJw0k^Tly5O})!xvXlEoi^4q)(f^>bP0l+XkK>Z?68 diff --git a/assets/resources/dark_resources/clear_line16.png b/assets/resources/dark_resources/clear_line16.png deleted file mode 100644 index 3656229f8d725ee9480cc24dc2ff418508b993ea..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 556 zcmV+{0@MA8P)Ok3a0C#YeON-6w^+wi%COfl8Sm(^X}Yp-#O=T zMFySQH?Aty9nc&w-7g=3?U}PzrN-xP!~Ht{u!V9VYEP^gb{FungZqdjHvGwORrOYP zFu)edg|HpG2X0A5f=iaE#yeYpaLW&p^UHPOowwt%xa=8Z`TqjT0Y88%DRb4uf$YRWVkh2u zlcDoHhpd5VFhIVKtKHAY7Or-W-n;E|4$=p8W@pOs^p*d4Ms&?9ef-pt*hncGO?ynu zo|T&WhaP}G8Lnb9$AokNv=`Ylw4VagbbvEM&(J-`GYVIEn_x}b|Or|uWMX!bc00006 diff --git a/assets/resources/dark_resources/contribute256.png b/assets/resources/dark_resources/contribute256.png deleted file mode 100644 index ab1739ddc3f1039328d3d3f5b115affd4e30cca6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19944 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 nEojlu3xf~5NT)A{H@`$pZg=XXL ziDIw;rv6h!9%e<2UfYCv0<4+evdikRZr*?l-$G}_!NMxC9(9eBuUWO=t$=Aqg3wLg7X>0;0Qo-SSF#O_^ zBa9#i`-44>eSQqtHb6xU(^X;~t;Kx#i9AraYXH&jX^E@sYaArE?^aZ9oYRc`fm=$9 z7eR)YW6g`Gr!U{MBUY;|ED~r{Q891Ih+vU zjPd&wduZ(-eG!z6C=X(ecAswuX7n24#Dm80Fe2BPK}w%HGsidHdx}V&dzBx|i1gd- zVY{E=n}S!op~>YUb0pIwu33pw>xn25!H~pm-!;qfa(Qh8>PEx3Lqo;!j+{@QHR?Uc<=;vom8L!>3Ckcz%}d%iDK0+y&YFf;SRUMSF-0349qW$c$_ zVV2cP7AdTKw%TugZn>TbFBS2uL&s|aL!pnhC*00HVb0^uZ>=qkxgov4@^;AgqHbv}c412e(?C40ENnFR26AoE0j)KGz zD-6J?2QeZAB5*;gC; zEQ=`IitU4l1$dd@th$pLtS|XWa+GzctS?I?b_a|u(geG+98L;KZb&P=PC>rB=+2Ew zdgJvXi;c%qoIfiuybK?O#e9JlRN$L(@`=g4pVmyIN0pu5d>NEn#$hrd{7%V?GDESa zEqcQCmcUpGVQOwZsT$uJ+>UV;Nn^1LO88wT3hcDBfz1pr`}`4<(%>s&Z4Qb;dPy-k zE$N8sDZb2vmH14jY_40p_^2U>Na$G$7_&YggRsc8piw*Pj^?{qj-F^kf3_Yp|M%Tr zc5hYK^ecKz_E{Htwze>3A3q0Jiyj#0qFmqt$}5o&1f32$j}P;33-i=<5Ag&SNFAk) zQbCfJ5ai+Gb@P7@=xX#Ng8@R!8SH|*!Xn&4 lJfVn)2vwgzzfgC#U{BSc5W=GsJz;PYWOm*XTX)Vi?!Tn3s8Ij_ diff --git a/assets/resources/dark_resources/corners_32.png b/assets/resources/dark_resources/corners_32.png deleted file mode 100644 index c5ad0f0073eb6eae23c6d5fcea52b6e7490f93be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 325 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabR7dyjKx9jPK-BC>eK@{oCO|{#S9F5 zM?jcysy3fAP|zm8C&U#POMr8)Fx6A(`4OOioMc7^GAgeT;SP-Cw3M(W^Y`>d(U0X5kgT z``HsxPqn6&b%v)$A8pJ`KJ=qxQA4Szopr06no?iU0rr diff --git a/assets/resources/dark_resources/edit_file16.png b/assets/resources/dark_resources/edit_file16.png index 75077c4cb4d63361b163a8fed644346d64e81834..05185539e394ed3e1edf4460d29e07d144622e4d 100644 GIT binary patch literal 510 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YDR+uenMVO6iP5s=4O z;1OBOz`%C|gc+x5^GO2**-JcqUD=NXVC61PYz;ba4#PIA3~Uqh52O$gz*| z@k_gBXDn)-v8z<1TDg#0MU9jB&;vOaj`(V3vCU`obY|$3vfd4SC1H2-9X@%&=pBc)h)}&!smXn^U_sKd02pOPEXimz}J|IrTY`zc%IHw%{+> zvgW4eTdRWCS7*Qfbv0O_q~^t|e@k6uB`gC~y8GQUFO*HLtdOo_n8?)FK#IZ0z{o(?z(m*3B*ehL%FxWpz(Uu+*vi15_k-hc6b-rgDVb@N zxHbG)`?DITK@wy`aDG}zd16s2LwR|*US?i)adKios$PCk`s{Z$Qb0uvp00i_>zopr E0G@QNEC2ui literal 386 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJV{wqX6XVU3I`u#fXMsm#F#`kN z5fEmas?8@26l@Rh32_C|k6*qWaJ1YjQw-=7-I5@`Ur+x2?8qiMGv! zbt?`E%0!$9QJ(!Q<-XMmSJO*-r)+$EEJI+H?B10Z{{l5ed%8G=RLrS8Zz|N_Ai{h> z=iR$^b^kvHewr@n@jXcOK=}-XPt#Ib&3vvdnB3;smU*yDZudO-mO!7mOC;ah{3`lr zbZXVJo@H;VUM0?{nkw;mQ{Hb!v-zLCewNt5cykZi`Am-A-9T#?JYD@<);T3K0RV_5 B*-QWc diff --git a/assets/resources/dark_resources/edit_file32.png b/assets/resources/dark_resources/edit_file32.png index 77ce0e1de7f41843cdf1d07b5862b0728546dd6e..98f49fde3a1a904d23d925b0b9d439c9fc1d2213 100644 GIT binary patch delta 682 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 WvrF1g1e^>(x7F{c72L3V@qYm6wh|ox diff --git a/assets/resources/dark_resources/hud16.png b/assets/resources/dark_resources/hud16.png deleted file mode 100644 index 5006f6e6eb7bb98a21b834608e88aa03e7bf751d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 137 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`0iG_7Ar}70DG3P)J8FJ@su%Fp zx^VSsYD!BcTcL*`!!rIHhLy7t#TvgPNi>{xy>WznC*uw#5z9RvsuCaYI`rRCl;BRO kZoKlxp)zfei8V7r@7*m6{XQ=W1Deg?>FVdQ&MBb@0R0v(4*&oF diff --git a/assets/resources/dark_resources/hud_32.png b/assets/resources/dark_resources/hud_32.png deleted file mode 100644 index 85f44019834c1947dd23b423b3f81465184076bd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 224 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=ffJ<(@8%ArbCxrzi3?C~&lXcDVOn zL1x9W*}Vl^TM~Eft&7}y@VRp2lIB>Kl25-^l%BKPdZTos*2X&lj4v51Vq2JNHj6sg zb$Dncf0|?N@a3GlKs7_fsg$c`b6+*sC`PSZQ^jzgu~zm&*{O>wE8j9O*p)NP72rG2 z_>}L&{WAUoKG}Ik?;T6N%DkX>LB#T_*R$3ytL9O=*YCrzopr0Eq8g-v9sr diff --git a/assets/resources/dark_resources/iso_16.png b/assets/resources/dark_resources/iso_16.png deleted file mode 100644 index 6d0ee71f43804984133da452bc9af5a293b78366..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 156 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!D3?x-;bCrM;V{wqX6XVU3I`u#fXMsm#F#`kN z5fEmas?8@26l4qV32}Y-@+FWdH9uk|kYXwc@(cdY@N~O@7m%mu>EaktF(>)K|MLtk up93%QunNrj$$(9IGkCiCxvXa@a2CEqi4B`cIb_Lo1C76=D-CYYz8j!Qd_DSy(2 zYS#n>h3vL>FFj_>YdD_Cpka4u#pFpT&l)viw|S`Dnqk2hPAyP%UwdC`m~yNwrEYN(E93Mg~R(x&|h?h9)5f23Cfq zR;HG^2F6wf1|0$aMNl;4=BH$)RpQq0lh=I(P=h4U2Cb6d{Irtt#G+J&^73-M%)IR4 ceK@{oCO|{#S9F5 zM?jcysy3fAP%t^bC&U#<|EC^!`SK;EVP~JqBm=EcED7=pW?(TgHe?nE6|{P|>XGTm zj$=`_OIBKhb+tzS7qT{UaIxntQNIUNyvftWF{EP7+R3l^4k_@oCi0aRUf$U~eV6b3 z|C*^QLt5Ateg31U8t->nQS{OONhgnKgjQ@l+fx)P`t;n2Re~qJv4<323B5fr(*8lE z)qXv_>kJI?3=9?w4UZo%1+t6(sB3$my~y&(lqbI7i>E$OkvRD?@5=<456wE~BdeBP z3%MBb^aQWvmy~N;?-+|SOs-~5s28(Z!@5UIpip3=nB0SH2{KHUSHdQ-Znw}{8tW~x dyXy597Ec37>m6)`UO?9~c)I$ztaD0e0ssJ2*dqV{ diff --git a/assets/resources/dark_resources/settings18.png b/assets/resources/dark_resources/settings18.png deleted file mode 100644 index 5143f21aadd22ce716f241c421b1e6ac634bc1f4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 738 zcmeAS@N?(olHy`uVBq!ia0vp^LLkh+3?vf;>QaFeV{wqX6XVU3I`u#fXMsm#F#`kN z5fEmas?8@2R3I4O6XFV#y#4m=lb3HFzkK`j#oO1fUq5>F4#)-~px_fA`xS`&_$5#f zDh`tcO1%SVdT#oNnJ=)QqR0g#c^30 z^A<RWttAhpX9!n z6Sr$hS#?>wFdN6Zpgk#D?_{^+-C3ymak1f@dxb_7CMQf5%AL6L*STYgyh-hx#zVHY z&Ps<@g)RSWG;`lMaqp?IYZ+5nFK(&UtDU_+pXqmQ#Oi>RjkaIXx_xDs7Oc2Fw@#q+ z=fj#;yLSXMXG~hO!tSRo%Q11WA2!FiD$?H^m*}af-}-mExRmi3t9c)!y)P^AtcdrF Q0fst*r>mdKI;Vst0Cmu%p#T5? diff --git a/assets/resources/dark_resources/shell20.png b/assets/resources/dark_resources/shell20.png deleted file mode 100644 index 33f7719c361b737710af10b2ea0a19b5fe50fd77..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 163 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1|)ksWqE;AmZytjh=qT0$^xT=C7UXF5}5Vl z_x+h4)LdFxdN3{Utiyyv1?QL93TLE$G%;K5=qOTDbZ%eRc;gVirG&>fqoZt(Hp$*h zm=xoo5q2@w=fdd_^9hq|d_xYY9c8*D>CvUlv2v*|qxXrhpeKxXtx`nUOlBSh+REVR L>gTe~DWM4f=o~ll diff --git a/assets/resources/edit_file16.png b/assets/resources/edit_file16.png index bf01744c047b08b0c1ae32153ab9a650a7e21695..b8bedd050980f690290d7cebb5579d8e9ad5ee5b 100644 GIT binary patch literal 504 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YDR+uenMVO6iP5s=4O z;1OBOz`%C|gc+x5^GO2**-JcqUD+RVi3nCo)5S4F<9z7_Lq8`+k=BR& z@@;Lt6C4uPywKpaRV?J55HT}Dk&XLXf=`d#jfUQ>bN3!(TbWV7`Xz~>TivL?XZfz; zbN1zzkO5sXN5HuXWMiG zjLMjW)bD+r^2l4xEA;NWo=0(i5;9(9q_^^RT06(<#U7Vtd$uq3MZ~ejU0um{4bCz9 z+xe{h9G&0TyUU-qcmFnDxri6uP2KroiUFS`e!i0W!?5d(25W(ZgdWgGswJ)wB`Jv| zsaDBFsX&Us$iUE2*U&)M$RNbf+{(nj%E(yTz{JYH;H2}4sVEw9^HVa@DsgMrAt#^- x)F276Aviy+q&%@Gm7%=6TrV>(yEr+qAXP8FD1G)j8!4b722WQ%mvv4FO#s`Zr!N2i literal 386 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJV{wqX6XVU3I`u#fXMsm#F#`kN z5fEmas?8@26l@Rh32_C|g8_U`(pChzL$@TzFPK5?ki@mb^G_$+>20fRTcT}qVcm*@ zf-(^&LX>AeOSy0L!qxQB-YFYjAIlJ!CA)X!#lJv}(Vi}jAr*6K&zlN0IEXM`(0TXn zUETlBfuE*JdVCL3Jy1SF;nTE~Rx_Wg3nsUDwq+hHliNK{z9rCS?h?uOHouBK8l778 xtY_KVs#l3~s-{YO-jw&-(QN*wub(A$Fy7q5c0QBicQ+`UJYD@<);T3K0RSyDVYL7N diff --git a/assets/resources/edit_file32.png b/assets/resources/edit_file32.png index 1aa4896d2ebf94c01c9040bfee1ba989ff416fa6..8d340239d6451de5cd6f29a324b8fb8cd31844be 100644 GIT binary patch delta 666 zcmbQsvWInoWDpAj1H;YYP4z&ECEd~2k%3`jKlh(RRv=#?*(1o8fuTx`fuW&=f#DZW zsNn?zL#Y7+!>a@a2CEqi4B`cIb_Lo1C76=D-CY9Q75RcT5sPA;=7hxuCal>dA#kj7K0|6{X(4xM zoMlqqf{C$H6!KDxy%HSfa%MTqoAqGZ-ugmkCXG!^;XwflHQ28#eZSa|n=#FI7gJUH zvGdihz07m%`8GB0I5%JA2QcbXOI#yLQW8s2t&)pUffR$0fuW_Yp@FWEL5QKbm5G6s zk+HUciIsuDN#_+)Q8eV{r(~v8VrsC3>DVDBpb69=39=$MKdq!Zu_%?Hyu4g5GcUV1 bIk6yBFTW^#_B$IXpdtoOS3j3^P6eK@{oCO|{#S9F5 zM?jcysy3fAP;hU6Plzj!9=hQ5rQ$O{*V~r_`2{nyr2N}^l~?r6&;M0Y#|1ygJP2gj z^|p)uJ(K3|>L+WgSIyK~aR0CI3ypP?3ch>1yLpeb|E#C>%cJRvJqg`WVz;bTTLFz) z=jq}YQZeW3+2cY@4g#(hk2zjx*XUq0NOU-3x%~fsop#&HIy$RsZWphf{lfink)$3= zbcWOU;?|PI2SjFRNV&Xn5>}nDMDNMpO-Dse)~^bge5lMt_wHRQDTB!TZ8{Zmev53W zeE$Cb%5tMQyI$;^^ZlVh${aR{z5^D$ix0>vmW0|dK3b`h#}b+ z4m_OkPJNE;gQC4ljW5bN)!)#XTD|XHPu+fg@pd8A`^pxFKvC%F>gTe~DWM4fOKFmU diff --git a/assets/resources/etch_32.png b/assets/resources/etch_32.png deleted file mode 100644 index dd70dd742a63ccac0c336e32a701e8b87c44e9eb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9517 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 ho7eB?S6_2@`d`aH2POaj diff --git a/assets/resources/grid32.png b/assets/resources/grid32.png index b2d7ca1b18ccb0946f98044becb89dc6244bf59a..9cb197bf23644ea29bc7babff76d9a53c301f5d2 100644 GIT binary patch literal 904 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-G$+Qd;gjJKptm- zM`SSr16wo*Gj6g|ZU+jomw5WRvOnhJ7gAPyBD$~(s42|T#WBR=_}$6A9wC7eZS#xM zpJ|;lxo0H1c7>+XslX1ghf0o39cvu!JjvlY)!MCbOF}4dM@PoPMXgs?HKuKH-6FZc z)xNu+jUD4xXw7p!4F+lFKXV!HY<}Qv4d;u?J+eF^`zEOO^lZsQn z%GeIX8`hP$)_h@XxS4t7dC8>MElRU)dB0w=)3^BY-L~>seOIq|epWo&xL#Gb@0{)b zu&Fb%t~5Mb#@JGah(1?SuF99kmKmH%2iq{V-X{wLoiH)9mbE zR^z?lenO$z;tEaA`)l7n+9@j|t8+H^;62-8(yHH#t}gE@U_W4YHZ9qnVfE8(GA6$k zSWS2_(=vUU;~sH^q?sS=?(hqE8?1a89DKyexnSL=59tdej!180 zuu)s5^HcOucSOPBAMLNr*}lhbx0v2NYv=xFGo07$;Qn!7f~?Hh>nj$9)S}MdSF9~&JzM@O&67`?(rYuhtv+paJ8J;hm7vdRn(?Z2ZdAD-rlA^DE(%Vi&Gm42_yC#)VJ^h()^Xp@# zZ|^i-Da-h#wl~=Fu1@p*xOa){>B|ICPTTvupKLS7_}G83C8`M@gjKp#j_GM~OaUf3 z)e_f;l9a@fRIB8oR3OD*WMF8iYhbBsXc}T@VP$M;Wo)c%U}9xpP@mKM0YyV@eoAIq zC2kFThSokn4U!-mg7ec#$`gxH8OqDc^)mCai<1)zQuXqS(r3T3kpe1W@O1TaS?83{ F1OSt5cANkJ literal 898 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabR7dyjKx9jPK-BC>eK@{oCO|{#S9E= zejv>?pn~!MpAc7|Bm^)rGIDTmFf%i=u&}VQvcd(~+1X)A7&tjOB_t%o#l`vg z`T6+xgoK2EvOvMg%1T>X+lYvWpr9ZxFR%Rkd>|XBOjuZW{`~n%mo8nlY}pbpSiXGu z;>C-#w6s)IR6IO97A{-}6b6a_)j$*g89;7ybhMI^(t-sGjE#+f?(y;QS+r;o#1Obq z5Jr4_yt1;gjg1Y&B8VZrzP@T|YCyd}$3Qd!jRk_ZxHx%vd7#UICPPHfNNa0rU?5mp zTEcY!ZGotPFoJ`Ffgvz$+O(-tr_Pu$W6G2%K=$0ZbAeoSb#~Aq3kwTwFaUZ49+KxKo7Dn2wIxA*!3=RPUjBIZ;nSO!Z+B+=uV^{+^5?`&zkZ7T zFWdK6H|gycf&T$BPAE7$e4S!x;ZnB#N?=yli~s-sdTDByX0N#D9B2PbO+I?wY56D2 zje+euZt}hU`|`!h_uqcKe)sM7j;e}=MJFD0&RYCI@PFvMGfFOx-w5dT-TvfM|Lx~P zg#gR5DT&>{v>@&2;uumf=jw%2e`iAp)&~!7bszq)?!7^jUmr_4J#+8|kPF9c9|PQalrFHmsf!6)eXmzMY3L}*qVB1O3!vM-s*AlR+?CZ^}JFcIGFcSp_GA>zIFURZL2p@mcUw;W_u?49Pv8KXw)<-z-;acJuS) zmOsm(nD(4uUF(eaANMB;?yo958MjRI_O|fr2dr{$e0w%6^2WW3ySFUgde5Gry=2MP zk0@fCe}w=5 diff --git a/assets/resources/grid_lines32.png b/assets/resources/grid_lines32.png deleted file mode 100644 index d2be39cdd6047ccf23259c4514ddc59cc901d70d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 901 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabR7dyjKx9jPK-BC>eK@{oCO|{#S9E= zejv>?pn`?~pAc7|Bm^)rGIDTmFf%i=u&}VQvcd(~+1X)A7&tjOB_t%o#l`vg z`T6+xgoK2EvOvMg%1T>X+lYvWpr9ZxFR%Rkd>|XBOjuZW{`~n%mo8nlY}pbpSiXGu z;>C-#w6s)IR6IO97A{-}6b6a_)j$*g89;7ybhMI^(t-sGjE#+f?(y;QS+r;o#1Obq z5Jr4_yt1;gjg1Y&B8VYC5~$wS*H=wV4d@<-UZBZ90MrE}i5109pYSMklPT zt%0FoX=w@93(*KSAvib~7!=c{O`AG(>WmpPrc9XvWY3*D7syptR|h&C7-&XDMnH#Y zXlMZKa&>jJu(03;1E7!KLFzwe#T_80p(MyJm?7@P%OCGPe0uZp?aqw<6)lHe{+zh! z*H6*^W&0lMCcXV4@IPS22?d9TuTv~7T*}s83Cs$6@&Er{FHH^8>=hTC+{Eq%p94$IY~wqSt?4zIgfm+ppK}zWv@&Rnf5M#G}qxi$4hd51n^L$>s4I0o}ga zpPcHy{d}kpVA(UvkRO;XggjjwLn`K6z2NHa>?qOtu={n4OxJnyh{OWLLR z#INr^mw1_HiRa}O-}8@7>fAdzed8LB$Pg1TVQKcq!gcpLJryif1(q1y-gY^{>dXn2 zNFC{CPox-6e13Ac$tmE8W}E8L{mgz$)223at!fF4Q(m!d;?@xLrEBsTdatOY7I#Z- z2>Z2rTbc2T7a_4%)=qi#lC}2A`YQ((n9q@RVsoCuKe@ly&WP(+#+=WcCpYxXnI&d7 zOVH`exyH&UfuzEh_5D1OI_oV~Z+T{M?ibsQCA!CN-ZN~zYrEH!t5+GS}2Foqxl+Z{JLN$(;9%4;~x8*tf>xruob$|KKfs Rw>E*I&C}J-Wt~$(69A*$eC7ZE diff --git a/assets/resources/hud16.png b/assets/resources/hud16.png deleted file mode 100644 index f216018b88da14f64b52b45eb8c8a7541f33ed14..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 382 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJV{wqX6XVU3I`u#fXMsm#F#`kN z5fEmas?8@26s!pF32_C|0|G=(cys_Q)+h<`3ub7W)jF@(H9BcUd(-mm$?Nxi`abuo z=8ykrzcxO2-POS-D#N*MSy|B9Lb1g$Kt0)>E{-7;b862W=W9?9ak+T#UiJIC|NlG7 zy9k#&jP-e-!@&?dqw2VcYy#U7A8xL=n*|xM{qz4esEG(1m6`N~ebXE*6%AJ*717ZD zdq1`=dwSt36WguAM+W*P+FQO~H-E9L=05*{P3M=FS{E=1&13&l{&ez5P#Af-`njxg HN@xNAkf>oi diff --git a/assets/resources/hud_32.png b/assets/resources/hud_32.png deleted file mode 100644 index 5ea627f7b9124a8bc7de0f5af53e0e89ac6d694f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 631 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z;^_M8K-LVNdpDhOFVsD*`KfqGBU7rK5gE^z`*G0>EamTas2L8Yd`5gk@k=G zBQzET~@7V4&0C zX{I+BGtXYQG22r2{^Qf-MO%({^#wgSF(FEiQ9a5;=Xp-L>)r>8-I&(@O4JJdb8_BQ zmetaVE5009rSM~>&>tZdW7{=KB0;Um2{uRFe}CTcU}`0MQ=|G1c5cm2S_dbb-fq;q zoW(crk;(mA!vB^l*hI_6iT$~HG_>o#+x7W%=e(MHqK)UQ(*BiZbx?~b_v#(y6&|+a4U+nS5Px`s*dLT&+Lm z^#m6!m{+;?`rG5vp9}t*U$7#*@1!9xj8#iqBT7;dOH!?pi&B9UgOP!efv$n6uAzB| zfuWUwft7)oHi$I%#&2>EMMG|WN@iLmZVl~0J+(j$k{}y`^V3So6N^$A%FE03GV`*F clM@S4_413-XTP(N0xDwgboFyt=akR{0C9@zIRF3v diff --git a/assets/resources/iso_16.png b/assets/resources/iso_16.png deleted file mode 100644 index 48db1e658d04f8cad50b8aa088bf2a81f75aff09..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 156 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!D3?x-;bCrM;V{wqX6XVU3I`u#fXMsm#F#`kN z5fEmas?8@26l4qV32_C|K(I7@=XoH-R1)MD{GZ|Jb^|XUPtnuGF{ENn@`L~98C*UG rUgTjFnDvvTC2fVl8FpnpRs|-8ryB(IuRPXu0~z7z>gTe~DWM4f<-;dW diff --git a/assets/resources/panelize32.png b/assets/resources/panelize32.png index 5445781ca1317300dea01b6403e1ae015a2e24cf..ea74ef362efaa640773137b2d47cd8f96028a57a 100644 GIT binary patch delta 518 zcmZ3&ypm;tWDpAj1H;YYP4z&ECEd~2k%3`jKlh(RRv=#?*(1o8fuTx`fuW&=f#DZW zsNn?zL#Y7+!>a@a2CEqi4B`cIb_Lo1C76=D-CY?EK_2)b2AaS%l_olVy^pHQ%mW-V)GKUYbs)*&xb>JvuQEK`j z&Mox3fFU<>i|Sb(t*IVIqR&3ryXWV=neS5{+zw#MPC|K;-)A${M;uo;H({!RXFwX` zk{4c&V^SXPZ8|k+lETX!!HeuVHouyn_|g0aCv*A)ok^1psAcS4V{^{;gIi?1^Ykl4 ziTy{r*T4O}gX!Be08#IIS(@M${i&7cN%ggmL^RkPR b6AM!H@{7`Ezq647s$%eT^>bP0l+XkKpb@=_ literal 420 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabR7dyjKx9jPK-BC>eK@{oCO|{#S9F5 zM?jcysy3fAP%t^bC&U#<(;B2@l-vW_p;!{+7tFw7WNgSR5GrW(aMdHzlO4yRY?rLG z2qhZnSf# zO})qT$@;mTQ-9f8MOp?m`@cRj@%AbW^S)JXinrfQ_w^n+cSQO?-ZB&#^st;%$5;to|o6R`&oNEb?-^tk|pxQ8D!IBn_2(z@extkvF9bZzC-I?g0FUh~LUSj8t!{R4F OA?fMr=d#Wzp$PzQRCf*l diff --git a/assets/resources/settings18.png b/assets/resources/settings18.png deleted file mode 100644 index 3e578907b2f6e035def7cdf827bd2e679c36ad9b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 597 zcmeAS@N?(olHy`uVBq!ia0vp^LLkh+3?vf;>QaFeV{wqX6XVU3I`u#fXMsm#F#`kN z5fEmas?8@26g&{%6XFV_hcw`}))xSJz@a3_FPMQz)k%a=e)-ZSwOrSY!6BPmoKyF& z-4Y>GxpmD1W^rLLw&rXWi*!ZZ$s6hpO;VTCGw)JyT$Wa^5I<2+gC`}&^{a~+(5y$E zE{-7;b3!NFtZFh4XkE_fxN?&VPm4#);-IE&dPigL|6j}HVPBG$_H6$Q%jXOsUmFd~ zIQC4tnYCSa^G$o}9og3F+^g+YdEQTQJW;8_R`~y<)ijyDQwJsdmu==sG-EN1*O|s8 z)OI>vjo0m!_EoFsm0K6gVaTdfJaakUsqPYQ%e^x8-|^F(*Kzv>JwI?a;eQw3KVivf zvImX4my~Q$?tC+uaf#J_udj;Mryu=Uy5*{Lk7I7pe~oNGhB_P1Yp&|opNQShb`Dn4 za(;7PU;+EGd5>?2+z%9HyU$g)YtK{HGT)Z^^XX!qU)mFYfTG^h)z4*}Q$iB}>};3R diff --git a/assets/resources/shell20.png b/assets/resources/shell20.png deleted file mode 100644 index 299cabf4c79befdff6314965a1942476ce5dc3a2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 492 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc3?z4jzqJQajKx9jPK-BC>eK@{oCO|{#S9E= zejv>?py2iZpAc6dJrqII)A`OociWZ(`2{nuD(I+&{`>vszhQ!_O~yA50Y5!v zt1qGpFXT(`sBe2aef|5%Ti#`LPHX35l-Yk|m%ox6hq!adUrVvDaPCPv88mFXYqs^Rn>TMC4r{2)3mTV8V7E*wJ03pVwm-f-`M8RLQuRic)I$ztaD0e F0sup$aufgn diff --git a/camlib.py b/camlib.py index 10e7d49f..e7070fa4 100644 --- a/camlib.py +++ b/camlib.py @@ -39,20 +39,21 @@ from shapely.geometry import shape from descartes.patch import PolygonPatch # --------------------------------------- +import collections from collections import Iterable import rasterio from rasterio.features import shapes import ezdxf -from Common import GracefulException as grace +from FlatCAMCommon import GracefulException as grace -# Commented for FlatCAM packaging with cx_freeze +# TODO: Commented for FlatCAM packaging with cx_freeze # from scipy.spatial import KDTree, Delaunay # from scipy.spatial import Delaunay -from AppParsers.ParseSVG import * -from AppParsers.ParseDXF import * +from flatcamParsers.ParseSVG import * +from flatcamParsers.ParseDXF import * if platform.architecture()[0] == '64bit': from ortools.constraint_solver import pywrapcp @@ -61,7 +62,7 @@ if platform.architecture()[0] == '64bit': import logging import gettext -import AppTranslation as fcTranslate +import FlatCAMTranslation as fcTranslate import builtins fcTranslate.apply_language('strings') @@ -499,9 +500,9 @@ class Geometry(object): self.el_count = 0 if self.app.is_legacy is False: - self.temp_shapes = self.app.plotcanvas.new_shape_collection(layers=1) + self.temp_shapes = self.app.plotcanvas.new_shape_group() else: - from AppGUI.PlotCanvasLegacy import ShapeCollectionLegacy + from flatcamGUI.PlotCanvasLegacy import ShapeCollectionLegacy self.temp_shapes = ShapeCollectionLegacy(obj=self, app=self.app, name='camlib.geometry') def plot_temp_shapes(self, element, color='red'): @@ -586,8 +587,7 @@ class Geometry(object): return def is_empty(self): - if isinstance(self.solid_geometry, BaseGeometry) or isinstance(self.solid_geometry, Polygon) or \ - isinstance(self.solid_geometry, MultiPolygon): + if isinstance(self.solid_geometry, BaseGeometry): return self.solid_geometry.is_empty if isinstance(self.solid_geometry, list): @@ -915,8 +915,7 @@ class Geometry(object): # # return self.flat_geometry, self.flat_geometry_rtree - def isolation_geometry(self, offset, geometry=None, iso_type=2, corner=None, follow=None, passes=0, - prog_plot=False): + def isolation_geometry(self, offset, geometry=None, iso_type=2, corner=None, follow=None, passes=0): """ Creates contours around geometry at a given offset distance. @@ -929,7 +928,6 @@ class Geometry(object): 0 = round; 1 = square; 2= beveled (line that connects the ends) :param follow: whether the geometry to be isolated is a follow_geometry :param passes: current pass out of possible multiple passes for which the isolation is done - :param prog_plot: type of plotting: "normal" or "progressive" :return: The buffered geometry. :rtype: Shapely.MultiPolygon or Shapely.Polygon """ @@ -962,16 +960,11 @@ class Geometry(object): # graceful abort requested by the user raise grace if offset == 0: - temp_geo = pol + geo_iso.append(pol) else: corner_type = 1 if corner is None else corner - temp_geo = pol.buffer(offset, int(self.geo_steps_per_circle), join_style=corner_type) - - geo_iso.append(temp_geo) - + geo_iso.append(pol.buffer(offset, int(self.geo_steps_per_circle), join_style=corner_type)) pol_nr += 1 - - # activity view update disp_number = int(np.interp(pol_nr, [0, geo_len], [0, 100])) if old_disp_number < disp_number <= 100: @@ -982,12 +975,10 @@ class Geometry(object): # taking care of the case when the self.solid_geometry is just a single Polygon, not a list or a # MultiPolygon (not an iterable) if offset == 0: - temp_geo = working_geo + geo_iso.append(working_geo) else: corner_type = 1 if corner is None else corner - temp_geo = working_geo.buffer(offset, int(self.geo_steps_per_circle), join_style=corner_type) - - geo_iso.append(temp_geo) + geo_iso.append(working_geo.buffer(offset, int(self.geo_steps_per_circle), join_style=corner_type)) self.app.proc_container.update_view_text(' %s' % _("Buffering")) geo_iso = unary_union(geo_iso) @@ -996,23 +987,17 @@ class Geometry(object): # end of replaced block if iso_type == 2: - ret_geo = geo_iso + return geo_iso elif iso_type == 0: self.app.proc_container.update_view_text(' %s' % _("Get Exteriors")) - ret_geo = self.get_exteriors(geo_iso) + return self.get_exteriors(geo_iso) elif iso_type == 1: self.app.proc_container.update_view_text(' %s' % _("Get Interiors")) - ret_geo = self.get_interiors(geo_iso) + return self.get_interiors(geo_iso) else: log.debug("Geometry.isolation_geometry() --> Type of isolation not supported") return "fail" - if prog_plot == 'progressive': - for elem in ret_geo: - self.plot_temp_shapes(elem) - - return ret_geo - def flatten_list(self, obj_list): for item in obj_list: if isinstance(item, Iterable) and not isinstance(item, (str, bytes)): @@ -1119,17 +1104,15 @@ class Geometry(object): """ Imports shapes from an IMAGE file into the object's geometry. - :param filename: Path to the IMAGE file. - :type filename: str - :param flip: Flip the object vertically. - :type flip: bool - :param units: FlatCAM units - :type units: str - :param dpi: dots per inch on the imported image - :param mode: how to import the image: as 'black' or 'color' - :type mode: str - :param mask: level of detail for the import - :return: None + :param filename: Path to the IMAGE file. + :type filename: str + :param flip: Flip the object vertically. + :type flip: bool + :param units: FlatCAM units + :param dpi: dots per inch on the imported image + :param mode: how to import the image: as 'black' or 'color' + :param mask: level of detail for the import + :return: None """ if mask is None: mask = [128, 128, 128, 128] @@ -2003,7 +1986,7 @@ class Geometry(object): it again in descendents. :param obj_units: "IN" or "MM" - :type obj_units: str + :type units: str :return: Scaling factor resulting from unit change. :rtype: float """ @@ -2568,23 +2551,9 @@ class CNCjob(Geometry): @property def postdata(self): - """ - This will return all the attributes of the class in the form of a dictionary - - :return: Class attributes - :rtype: dict - """ return self.__dict__ def convert_units(self, units): - """ - Will convert the parameters in the class that are relevant, from metric to imperial and reverse - - :param units: FlatCAM units - :type units: str - :return: conversion factor - :rtype: float - """ log.debug("camlib.CNCJob.convert_units()") factor = Geometry.convert_units(self, units) @@ -2605,17 +2574,6 @@ class CNCjob(Geometry): return self.doformat2(fun, **kwargs) + "\n" def doformat2(self, fun, **kwargs): - """ - This method will call one of the current preprocessor methods having as parameters all the attributes of - current class to which will add the kwargs parameters - - :param fun: One of the methods inside the preprocessor classes which get loaded here in the 'p' object - :type fun: class 'function' - :param kwargs: keyword args which will update attributes of the current class - :type kwargs: dict - :return: Gcode line - :rtype: str - """ attributes = AttrDict() attributes.update(self.postdata) attributes.update(kwargs) @@ -2627,16 +2585,6 @@ class CNCjob(Geometry): return '' def parse_custom_toolchange_code(self, data): - """ - Will parse a text and get a toolchange sequence in text format suitable to be included in a Gcode file. - The '%' symbol is used to surround class variables name and must be removed in the returned string. - After that, the class variables (attributes) are replaced with the current values. The result is returned. - - :param data: Toolchange sequence - :type data: str - :return: Processed toolchange sequence - :rtype: str - """ text = data match_list = self.re_toolchange_custom.findall(text) @@ -2668,13 +2616,6 @@ class CNCjob(Geometry): [2, 3], [2, 4], [3, 4], [3, 3], [3, 2], [3, 1], [3, 0], [4, 0], [4, 1], [4, 2], [4, 3], [4, 4]] >>> optimized_travelling_salesman([[0,0],[10,0],[6,0]]) [[0, 0], [6, 0], [10, 0]] - - :param points: List of tuples with x, y coordinates - :type points: list - :param start: a tuple with a x,y coordinates of the start point - :type start: tuple - :return: List of points ordered in a optimized way - :rtype: list """ if start is None: @@ -2690,17 +2631,16 @@ class CNCjob(Geometry): def generate_from_excellon_by_tool(self, exobj, tools="all", use_ui=False): """ - Creates Gcode for this object from an Excellon object + Creates gcode for this object from an Excellon object for the specified tools. - :param exobj: Excellon object to process - :type exobj: Excellon - :param tools: Comma separated tool names - :type tools: str - :param use_ui: if True the method will use parameters set in UI - :type use_ui: bool - :return: None - :rtype: None + :param exobj: Excellon object to process + :type exobj: Excellon + :param tools: Comma separated tool names + :type: tools: str + :param use_ui: Bool, if True the method will use parameters set in UI + :return: None + :rtype: None """ # create a local copy of the exobj.drills so it can be used for creating drill CCode geometry @@ -2736,7 +2676,7 @@ class CNCjob(Geometry): if self.xy_toolchange and self.xy_toolchange != '': self.xy_toolchange = [float(eval(a)) for a in self.xy_toolchange.split(",")] - if self.xy_toolchange and len(self.xy_toolchange) != 2: + if self.xy_toolchange and len(self.xy_toolchange) < 2: self.app.inform.emit('[ERROR]%s' % _("The Toolchange X,Y field in Edit -> Preferences has to be " "in the format (x, y) \nbut now there is only one value, not two. ")) @@ -2841,7 +2781,7 @@ class CNCjob(Geometry): self.app.inform.emit(_("Creating a list of points to drill...")) - # Points (Group by tool): a dictionary of shapely Point geo elements grouped by tool number + # Points (Group by tool) points = {} for drill in exobj.drills: if self.app.abort_flag: @@ -2856,17 +2796,6 @@ class CNCjob(Geometry): # log.debug("Found %d drills." % len(points)) - # check if there are drill points in the exclusion areas. - # If we find any within the exclusion areas return 'fail' - for tool in points: - for pt in points[tool]: - for area in self.app.exc_areas.exclusion_areas_storage: - pt_buf = pt.buffer(exobj.tools[tool]['C'] / 2.0) - if pt_buf.within(area['shape']) or pt_buf.intersects(area['shape']): - self.app.inform.emit("[ERROR_NOTCL] %s" % _("Failed. Drill points inside the exclusion zones.")) - return 'fail' - - # this holds the resulting GCode self.gcode = [] self.f_plunge = self.app.defaults["excellon_f_plunge"] @@ -3087,7 +3016,7 @@ class CNCjob(Geometry): ) # !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - # APPLY Offset only when using the AppGUI, for TclCommand this will create an error + # APPLY Offset only when using the GUI, for TclCommand this will create an error # because the values for Z offset are created in build_ui() # !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! try: @@ -3114,41 +3043,7 @@ class CNCjob(Geometry): locx = locations[k][0] locy = locations[k][1] - travels = self.app.exc_areas.travel_coordinates(start_point=(self.oldx, self.oldy), - end_point=(locx, locy), - tooldia=current_tooldia) - prev_z = None - for travel in travels: - locx = travel[1][0] - locy = travel[1][1] - - if travel[0] is not None: - # move to next point - gcode += self.doformat(p.rapid_code, x=locx, y=locy) - - # raise to safe Z (travel[0]) each time because safe Z may be different - self.z_move = travel[0] - gcode += self.doformat(p.lift_code, x=locx, y=locy) - - # restore z_move - self.z_move = exobj.tools[tool]['data']['travelz'] - else: - if prev_z is not None: - # move to next point - gcode += self.doformat(p.rapid_code, x=locx, y=locy) - - # we assume that previously the z_move was altered therefore raise to - # the travel_z (z_move) - self.z_move = exobj.tools[tool]['data']['travelz'] - gcode += self.doformat(p.lift_code, x=locx, y=locy) - else: - # move to next point - gcode += self.doformat(p.rapid_code, x=locx, y=locy) - - # store prev_z - prev_z = travel[0] - - # gcode += self.doformat(p.rapid_code, x=locx, y=locy) + gcode += self.doformat(p.rapid_code, x=locx, y=locy) if self.multidepth and abs(self.z_cut) > abs(self.z_depthpercut): doc = deepcopy(self.z_cut) @@ -3340,7 +3235,7 @@ class CNCjob(Geometry): ) # !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - # APPLY Offset only when using the AppGUI, for TclCommand this will create an error + # APPLY Offset only when using the GUI, for TclCommand this will create an error # because the values for Z offset are created in build_ui() # !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! try: @@ -3366,41 +3261,7 @@ class CNCjob(Geometry): locx = locations[k][0] locy = locations[k][1] - travels = self.app.exc_areas.travel_coordinates(start_point=(self.oldx, self.oldy), - end_point=(locx, locy), - tooldia=current_tooldia) - prev_z = None - for travel in travels: - locx = travel[1][0] - locy = travel[1][1] - - if travel[0] is not None: - # move to next point - gcode += self.doformat(p.rapid_code, x=locx, y=locy) - - # raise to safe Z (travel[0]) each time because safe Z may be different - self.z_move = travel[0] - gcode += self.doformat(p.lift_code, x=locx, y=locy) - - # restore z_move - self.z_move = exobj.tools[tool]['data']['travelz'] - else: - if prev_z is not None: - # move to next point - gcode += self.doformat(p.rapid_code, x=locx, y=locy) - - # we assume that previously the z_move was altered therefore raise to - # the travel_z (z_move) - self.z_move = exobj.tools[tool]['data']['travelz'] - gcode += self.doformat(p.lift_code, x=locx, y=locy) - else: - # move to next point - gcode += self.doformat(p.rapid_code, x=locx, y=locy) - - # store prev_z - prev_z = travel[0] - - # gcode += self.doformat(p.rapid_code, x=locx, y=locy) + gcode += self.doformat(p.rapid_code, x=locx, y=locy) if self.multidepth and abs(self.z_cut) > abs(self.z_depthpercut): doc = deepcopy(self.z_cut) @@ -3538,7 +3399,7 @@ class CNCjob(Geometry): ) # !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - # APPLY Offset only when using the AppGUI, for TclCommand this will create an error + # APPLY Offset only when using the GUI, for TclCommand this will create an error # because the values for Z offset are created in build_ui() # !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! try: @@ -3569,41 +3430,7 @@ class CNCjob(Geometry): locx = point[0] locy = point[1] - travels = self.app.exc_areas.travel_coordinates(start_point=(self.oldx, self.oldy), - end_point=(locx, locy), - tooldia=current_tooldia) - prev_z = None - for travel in travels: - locx = travel[1][0] - locy = travel[1][1] - - if travel[0] is not None: - # move to next point - gcode += self.doformat(p.rapid_code, x=locx, y=locy) - - # raise to safe Z (travel[0]) each time because safe Z may be different - self.z_move = travel[0] - gcode += self.doformat(p.lift_code, x=locx, y=locy) - - # restore z_move - self.z_move = exobj.tools[tool]['data']['travelz'] - else: - if prev_z is not None: - # move to next point - gcode += self.doformat(p.rapid_code, x=locx, y=locy) - - # we assume that previously the z_move was altered therefore raise to - # the travel_z (z_move) - self.z_move = exobj.tools[tool]['data']['travelz'] - gcode += self.doformat(p.lift_code, x=locx, y=locy) - else: - # move to next point - gcode += self.doformat(p.rapid_code, x=locx, y=locy) - - # store prev_z - prev_z = travel[0] - - # gcode += self.doformat(p.rapid_code, x=locx, y=locy) + gcode += self.doformat(p.rapid_code, x=locx, y=locy) if self.multidepth and abs(self.z_cut) > abs(self.z_depthpercut): doc = deepcopy(self.z_cut) @@ -3959,9 +3786,7 @@ class CNCjob(Geometry): # calculate the cut distance total_cut = total_cut + geo.length - self.gcode += self.create_gcode_single_pass(geo, current_tooldia, extracut, extracut_length, - tolerance, - z_move=z_move, postproc=p, + self.gcode += self.create_gcode_single_pass(geo, extracut, extracut_length, tolerance, old_point=current_pt) # --------- Multi-pass --------- @@ -3976,10 +3801,8 @@ class CNCjob(Geometry): total_cut += (geo.length * nr_cuts) - self.gcode += self.create_gcode_multi_pass(geo, current_tooldia, extracut, extracut_length, - tolerance, - z_move=z_move, postproc=p, - old_point=current_pt) + self.gcode += self.create_gcode_multi_pass(geo, extracut, extracut_length, tolerance, + postproc=p, old_point=current_pt) # calculate the total distance total_travel = total_travel + abs(distance(pt1=current_pt, pt2=pt)) @@ -4156,8 +3979,7 @@ class CNCjob(Geometry): self.dwell = dwell self.dwelltime = float(dwelltime) if dwelltime is not None else self.app.defaults["geometry_dwelltime"] - self.startz = float(startz) if startz is not None and startz != '' else self.app.defaults["geometry_startz"] - + self.startz = float(startz) if startz is not None else self.app.defaults["geometry_startz"] self.z_end = float(endz) if endz is not None else self.app.defaults["geometry_endz"] self.xy_end = endxy if endxy != '' and endxy else self.app.defaults["geometry_endxy"] @@ -4281,24 +4103,20 @@ class CNCjob(Geometry): # this is the tool diameter, it is used as such to accommodate the preprocessor who need the tool diameter # given under the name 'toolC' - # this is a fancy way of adding a class attribute (which should be added in the __init__ method) without doing - # it there :) self.postdata['toolC'] = self.tooldia # Initial G-Code self.pp_geometry = self.app.preprocessors[self.pp_geometry_name] - - # the 'p' local attribute is a reference to the current preprocessor class p = self.pp_geometry self.oldx = 0.0 self.oldy = 0.0 self.gcode = self.doformat(p.start_code) + self.gcode += self.doformat(p.feedrate_code) # sets the feed rate if toolchange is False: - # all the x and y parameters in self.doformat() are used only by some preprocessors not by all self.gcode += self.doformat(p.lift_code, x=self.oldx, y=self.oldy) # Move (up) to travel height self.gcode += self.doformat(p.startz_code, x=self.oldx, y=self.oldy) @@ -4346,9 +4164,6 @@ class CNCjob(Geometry): path_count = 0 current_pt = (0, 0) pt, geo = storage.nearest(current_pt) - - # when nothing is left in the storage a StopIteration exception will be raised therefore stopping - # the whole process including the infinite loop while True below. try: while True: if self.app.abort_flag: @@ -4369,9 +4184,7 @@ class CNCjob(Geometry): if not multidepth: # calculate the cut distance total_cut += geo.length - self.gcode += self.create_gcode_single_pass(geo, current_tooldia, extracut, self.extracut_length, - tolerance, - z_move=z_move, postproc=p, + self.gcode += self.create_gcode_single_pass(geo, extracut, self.extracut_length, tolerance, old_point=current_pt) # --------- Multi-pass --------- @@ -4386,10 +4199,8 @@ class CNCjob(Geometry): total_cut += (geo.length * nr_cuts) - self.gcode += self.create_gcode_multi_pass(geo, current_tooldia, extracut, self.extracut_length, - tolerance, - z_move=z_move, postproc=p, - old_point=current_pt) + self.gcode += self.create_gcode_multi_pass(geo, extracut, self.extracut_length, tolerance, + postproc=p, old_point=current_pt) # calculate the travel distance total_travel += abs(distance(pt1=current_pt, pt2=pt)) @@ -4397,7 +4208,6 @@ class CNCjob(Geometry): pt, geo = storage.nearest(current_pt) # Next - # update the activity counter (lower left side of the app, status bar) disp_number = int(np.interp(path_count, [0, geo_len], [0, 100])) if old_disp_number < disp_number <= 100: self.app.proc_container.update_view_text(' %d%%' % disp_number) @@ -4612,76 +4422,27 @@ class CNCjob(Geometry): gcode += self.doformat(p.lift_code) return gcode - def create_gcode_single_pass(self, geometry, cdia, extracut, extracut_length, tolerance, z_move, postproc, - old_point=(0, 0)): - """ + def create_gcode_single_pass(self, geometry, extracut, extracut_length, tolerance, old_point=(0, 0)): # G-code. Note: self.linear2gcode() and self.point2gcode() will lower and raise the tool every time. - :param geometry: A Shapely Geometry (LineString or LinearRing) which is the path to be cut - :type geometry: LineString, LinearRing - :param cdia: Tool diameter - :type cdia: float - :param extracut: Will add an extra cut over the point where start of the cut is met with the end cut - :type extracut: bool - :param extracut_length: The length of the extra cut: half before the meeting point, half after - :type extracut_length: float - :param tolerance: Tolerance used to simplify the paths (making them mre rough) - :type tolerance: float - :param z_move: Travel Z - :type z_move: float - :param postproc: Preprocessor class - :type postproc: class - :param old_point: Previous point - :type old_point: tuple - :return: Gcode - :rtype: str - """ - # p = postproc - if type(geometry) == LineString or type(geometry) == LinearRing: if extracut is False: - gcode_single_pass = self.linear2gcode(geometry, z_move=z_move, dia=cdia, tolerance=tolerance, - old_point=old_point) + gcode_single_pass = self.linear2gcode(geometry, tolerance=tolerance, old_point=old_point) else: if geometry.is_ring: gcode_single_pass = self.linear2gcode_extra(geometry, extracut_length, tolerance=tolerance, - z_move=z_move, dia=cdia, old_point=old_point) else: - gcode_single_pass = self.linear2gcode(geometry, tolerance=tolerance, z_move=z_move, dia=cdia, - old_point=old_point) + gcode_single_pass = self.linear2gcode(geometry, tolerance=tolerance, old_point=old_point) elif type(geometry) == Point: - gcode_single_pass = self.point2gcode(geometry, dia=cdia, z_move=z_move, old_point=old_point) + gcode_single_pass = self.point2gcode(geometry) else: log.warning("G-code generation not implemented for %s" % (str(type(geometry)))) return return gcode_single_pass - def create_gcode_multi_pass(self, geometry, cdia, extracut, extracut_length, tolerance, postproc, z_move, - old_point=(0, 0)): - """ - - :param geometry: A Shapely Geometry (LineString or LinearRing) which is the path to be cut - :type geometry: LineString, LinearRing - :param cdia: Tool diameter - :type cdia: float - :param extracut: Will add an extra cut over the point where start of the cut is met with the end cut - :type extracut: bool - :param extracut_length: The length of the extra cut: half before the meeting point, half after - :type extracut_length: float - :param tolerance: Tolerance used to simplify the paths (making them mre rough) - :type tolerance: float - :param postproc: Preprocessor class - :type postproc: class - :param z_move: Travel Z - :type z_move: float - :param old_point: Previous point - :type old_point: tuple - :return: Gcode - :rtype: str - """ - p = postproc + def create_gcode_multi_pass(self, geometry, extracut, extracut_length, tolerance, postproc, old_point=(0, 0)): gcode_multi_pass = '' @@ -4711,20 +4472,18 @@ class CNCjob(Geometry): if type(geometry) == LineString or type(geometry) == LinearRing: if extracut is False: gcode_multi_pass += self.linear2gcode(geometry, tolerance=tolerance, z_cut=depth, up=False, - z_move=z_move, dia=cdia, old_point=old_point) + old_point=old_point) else: if geometry.is_ring: gcode_multi_pass += self.linear2gcode_extra(geometry, extracut_length, tolerance=tolerance, - dia=cdia, z_move=z_move, z_cut=depth, up=False, - old_point=old_point) + z_cut=depth, up=False, old_point=old_point) else: gcode_multi_pass += self.linear2gcode(geometry, tolerance=tolerance, z_cut=depth, up=False, - dia=cdia, z_move=z_move, old_point=old_point) # Ignore multi-pass for points. elif type(geometry) == Point: - gcode_multi_pass += self.point2gcode(geometry, dia=cdia, z_move=z_move, old_point=old_point) + gcode_multi_pass += self.point2gcode(geometry, old_point=old_point) break # Ignoring ... else: log.warning("G-code generation not implemented for %s" % (str(type(geometry)))) @@ -4740,7 +4499,7 @@ class CNCjob(Geometry): geometry.coords = list(geometry.coords)[::-1] # Lift the tool - gcode_multi_pass += self.doformat(p.lift_code, x=old_point[0], y=old_point[1]) + gcode_multi_pass += self.doformat(postproc.lift_code, x=old_point[0], y=old_point[1]) return gcode_multi_pass def codes_split(self, gline): @@ -4748,10 +4507,8 @@ class CNCjob(Geometry): Parses a line of G-Code such as "G01 X1234 Y987" into a dictionary: {'G': 1.0, 'X': 1234.0, 'Y': 987.0} - :param gline: G-Code line string - :type gline: str - :return: Dictionary with parsed line. - :rtype: dict + :param gline: G-Code line string + :return: Dictionary with parsed line. """ command = {} @@ -4820,18 +4577,6 @@ class CNCjob(Geometry): G-Code parser (from self.gcode). Generates dictionary with single-segment LineString's and "kind" indicating cut or travel, fast or feedrate speed. - - Will return a dict in the format: - { - "geom": LineString(path), - "kind": kind - } - where kind can be either ["C", "F"] # T=travel, C=cut, F=fast, S=slow - - :param force_parsing: - :type force_parsing: - :return: - :rtype: dict """ kind = ["C", "F"] # T=travel, C=cut, F=fast, S=slow @@ -4845,25 +4590,15 @@ class CNCjob(Geometry): # Current path: temporary storage until tool is # lifted or lowered. if self.toolchange_xy_type == "excellon": - if self.app.defaults["excellon_toolchangexy"] == '' or self.app.defaults["excellon_toolchangexy"] is None: + if self.app.defaults["excellon_toolchangexy"] == '': pos_xy = (0, 0) else: - pos_xy = self.app.defaults["excellon_toolchangexy"] - try: - pos_xy = [float(eval(a)) for a in pos_xy.split(",")] - except Exception: - if len(pos_xy) != 2: - pos_xy = (0, 0) + pos_xy = [float(eval(a)) for a in self.app.defaults["excellon_toolchangexy"].split(",")] else: - if self.app.defaults["geometry_toolchangexy"] == '' or self.app.defaults["geometry_toolchangexy"] is None: + if self.app.defaults["geometry_toolchangexy"] == '': pos_xy = (0, 0) else: - pos_xy = self.app.defaults["geometry_toolchangexy"] - try: - pos_xy = [float(eval(a)) for a in pos_xy.split(",")] - except Exception: - if len(pos_xy) != 2: - pos_xy = (0, 0) + pos_xy = [float(eval(a)) for a in self.app.defaults["geometry_toolchangexy"].split(",")] path = [pos_xy] # path = [(0, 0)] @@ -5031,28 +4766,16 @@ class CNCjob(Geometry): """ Plots the G-code job onto the given axes. - :param tooldia: Tool diameter. - :type tooldia: float - :param dpi: Not used! - :type dpi: float - :param margin: Not used! - :type margin: float - :param gcode_parsed: Parsed Gcode - :type gcode_parsed: str - :param color: Color specification. - :type color: str - :param alpha: Transparency specification. - :type alpha: dict - :param tool_tolerance: Tolerance when drawing the toolshape. - :type tool_tolerance: float - :param obj: The object for whih to plot - :type obj: class - :param visible: Visibility status - :type visible: bool - :param kind: Can be: "travel", "cut", "all" - :type kind: str - :return: None - :rtype: + :param tooldia: Tool diameter. + :param dpi: Not used! + :param margin: Not used! + :param color: Color specification. + :param alpha: Transparency specification. + :param tool_tolerance: Tolerance when drawing the toolshape. + :param obj + :param visible + :param kind + :return: None """ # units = self.app.ui.general_defaults_form.general_app_group.units_radio.get_value().upper() @@ -5105,27 +4828,14 @@ class CNCjob(Geometry): # plot the geometry of Excellon objects if self.origin_kind == 'excellon': try: - if geo['kind'][0] == 'T': - # if the geos are travel lines it will enter into Exception - poly = geo['geom'].buffer(distance=(tooldia / 1.99999999), - resolution=self.steps_per_circle) - else: - poly = Polygon(geo['geom']) - + poly = Polygon(geo['geom']) + except ValueError: + # if the geos are travel lines it will enter into Exception + poly = geo['geom'].buffer(distance=(tooldia / 1.99999999), resolution=self.steps_per_circle) poly = poly.simplify(tool_tolerance) except Exception: # deal here with unexpected plot errors due of LineStrings not valid continue - - # try: - # poly = Polygon(geo['geom']) - # except ValueError: - # # if the geos are travel lines it will enter into Exception - # poly = geo['geom'].buffer(distance=(tooldia / 1.99999999), resolution=self.steps_per_circle) - # poly = poly.simplify(tool_tolerance) - # except Exception: - # # deal here with unexpected plot errors due of LineStrings not valid - # continue else: # plot the geometry of any objects other than Excellon poly = geo['geom'].buffer(distance=(tooldia / 1.99999999), resolution=self.steps_per_circle) @@ -5209,17 +4919,9 @@ class CNCjob(Geometry): log.debug("CNCJob.plot2() --> annotations --> %s" % str(e)) def create_geometry(self): - """ - It is used by the Excellon objects. Will create the solid_geometry which will be an attribute of the - Excellon object class. - - :return: List of Shapely geometry elements - :rtype: list - """ - + self.app.inform.emit('%s: %s' % (_("Unifying Geometry from parsed Geometry segments"), + str(len(self.gcode_parsed)))) # TODO: This takes forever. Too much data? - # self.app.inform.emit('%s: %s' % (_("Unifying Geometry from parsed Geometry segments"), - # str(len(self.gcode_parsed)))) # self.solid_geometry = cascaded_union([geo['geom'] for geo in self.gcode_parsed]) # This is much faster but not so nice to look at as you can see different segments of the geometry @@ -5227,15 +4929,10 @@ class CNCjob(Geometry): return self.solid_geometry + # code snippet added by Lei Zheng in a rejected pull request on FlatCAM https://bitbucket.org/realthunder/ def segment(self, coords): """ - Break long linear lines to make it more auto level friendly. - Code snippet added by Lei Zheng in a rejected pull request on FlatCAM https://bitbucket.org/realthunder/ - - :param coords: List of coordinates tuples - :type coords: list - :return: A path; list with the multiple coordinates breaking a line. - :rtype: list + break long linear lines to make it more auto level friendly """ if len(coords) < 2 or self.segx <= 0 and self.segy <= 0: @@ -5287,7 +4984,7 @@ class CNCjob(Geometry): return path - def linear2gcode(self, linear, dia, tolerance=0, down=True, up=True, z_cut=None, z_move=None, zdownrate=None, + def linear2gcode(self, linear, tolerance=0, down=True, up=True, z_cut=None, z_move=None, zdownrate=None, feedrate=None, feedrate_z=None, feedrate_rapid=None, cont=False, old_point=(0, 0)): """ @@ -5295,8 +4992,6 @@ class CNCjob(Geometry): :param linear: The path to cut along. :type: Shapely.LinearRing or Shapely.Linear String - :param dia: The tool diameter that is going on the path - :type dia: float :param tolerance: All points in the simplified object will be within the tolerance distance of the original geometry. :type tolerance: float @@ -5356,42 +5051,7 @@ class CNCjob(Geometry): # Move fast to 1st point if not cont: - current_tooldia = dia - travels = self.app.exc_areas.travel_coordinates(start_point=(old_point[0], old_point[1]), - end_point=(first_x, first_y), - tooldia=current_tooldia) - prev_z = None - for travel in travels: - locx = travel[1][0] - locy = travel[1][1] - - if travel[0] is not None: - # move to next point - gcode += self.doformat(p.rapid_code, x=locx, y=locy) - - # raise to safe Z (travel[0]) each time because safe Z may be different - self.z_move = travel[0] - gcode += self.doformat(p.lift_code, x=locx, y=locy) - - # restore z_move - self.z_move = z_move - else: - if prev_z is not None: - # move to next point - gcode += self.doformat(p.rapid_code, x=locx, y=locy) - - # we assume that previously the z_move was altered therefore raise to - # the travel_z (z_move) - self.z_move = z_move - gcode += self.doformat(p.lift_code, x=locx, y=locy) - else: - # move to next point - gcode += self.doformat(p.rapid_code, x=locx, y=locy) - - # store prev_z - prev_z = travel[0] - - # gcode += self.doformat(p.rapid_code, x=first_x, y=first_y) # Move to first point + gcode += self.doformat(p.rapid_code, x=first_x, y=first_y) # Move to first point # Move down to cutting depth if down: @@ -5430,7 +5090,7 @@ class CNCjob(Geometry): gcode += self.doformat(p.lift_code, x=prev_x, y=prev_y, z_move=z_move) # Stop cutting return gcode - def linear2gcode_extra(self, linear, dia, extracut_length, tolerance=0, down=True, up=True, + def linear2gcode_extra(self, linear, extracut_length, tolerance=0, down=True, up=True, z_cut=None, z_move=None, zdownrate=None, feedrate=None, feedrate_z=None, feedrate_rapid=None, cont=False, old_point=(0, 0)): """ @@ -5439,8 +5099,6 @@ class CNCjob(Geometry): :param linear: The path to cut along. :type: Shapely.LinearRing or Shapely.Linear String - :param dia: The tool diameter that is going on the path - :type dia: float :param extracut_length: how much to cut extra over the first point at the end of the path :param tolerance: All points in the simplified object will be within the tolerance distance of the original geometry. @@ -5500,42 +5158,7 @@ class CNCjob(Geometry): # Move fast to 1st point if not cont: - current_tooldia = dia - travels = self.app.exc_areas.travel_coordinates(start_point=(old_point[0], old_point[1]), - end_point=(first_x, first_y), - tooldia=current_tooldia) - prev_z = None - for travel in travels: - locx = travel[1][0] - locy = travel[1][1] - - if travel[0] is not None: - # move to next point - gcode += self.doformat(p.rapid_code, x=locx, y=locy) - - # raise to safe Z (travel[0]) each time because safe Z may be different - self.z_move = travel[0] - gcode += self.doformat(p.lift_code, x=locx, y=locy) - - # restore z_move - self.z_move = z_move - else: - if prev_z is not None: - # move to next point - gcode += self.doformat(p.rapid_code, x=locx, y=locy) - - # we assume that previously the z_move was altered therefore raise to - # the travel_z (z_move) - self.z_move = z_move - gcode += self.doformat(p.lift_code, x=locx, y=locy) - else: - # move to next point - gcode += self.doformat(p.rapid_code, x=locx, y=locy) - - # store prev_z - prev_z = travel[0] - - # gcode += self.doformat(p.rapid_code, x=first_x, y=first_y) # Move to first point + gcode += self.doformat(p.rapid_code, x=first_x, y=first_y) # Move to first point # Move down to cutting depth if down: @@ -5701,20 +5324,7 @@ class CNCjob(Geometry): return gcode - def point2gcode(self, point, dia, z_move=None, old_point=(0, 0)): - """ - - :param point: A Shapely Point - :type point: Point - :param dia: The tool diameter that is going on the path - :type dia: float - :param z_move: Travel Z - :type z_move: float - :param old_point: Old point coordinates from which we moved to the 'point' - :type old_point: tuple - :return: G-code to cut on the Point feature. - :rtype: str - """ + def point2gcode(self, point, old_point=(0, 0)): gcode = "" if self.app.abort_flag: @@ -5738,42 +5348,7 @@ class CNCjob(Geometry): first_x = path[0][0] first_y = path[0][1] - current_tooldia = dia - travels = self.app.exc_areas.travel_coordinates(start_point=(old_point[0], old_point[1]), - end_point=(first_x, first_y), - tooldia=current_tooldia) - prev_z = None - for travel in travels: - locx = travel[1][0] - locy = travel[1][1] - - if travel[0] is not None: - # move to next point - gcode += self.doformat(p.rapid_code, x=locx, y=locy) - - # raise to safe Z (travel[0]) each time because safe Z may be different - self.z_move = travel[0] - gcode += self.doformat(p.lift_code, x=locx, y=locy) - - # restore z_move - self.z_move = z_move - else: - if prev_z is not None: - # move to next point - gcode += self.doformat(p.rapid_code, x=locx, y=locy) - - # we assume that previously the z_move was altered therefore raise to - # the travel_z (z_move) - self.z_move = z_move - gcode += self.doformat(p.lift_code, x=locx, y=locy) - else: - # move to next point - gcode += self.doformat(p.rapid_code, x=locx, y=locy) - - # store prev_z - prev_z = travel[0] - - # gcode += self.doformat(p.linear_code, x=first_x, y=first_y) # Move to first point + gcode += self.doformat(p.linear_code, x=first_x, y=first_y) # Move to first point if self.z_feedrate is not None: gcode += self.doformat(p.z_feedrate_code) @@ -5789,10 +5364,8 @@ class CNCjob(Geometry): """ Exports the CNC Job as a SVG Element - :param scale_stroke_factor: A factor to scale the SVG geometry - :type scale_stroke_factor: float - :return: SVG Element string - :rtype: str + :scale_factor: float + :return: SVG Element string """ # scale_factor is a multiplication factor for the SVG stroke-width used within shapely's svg export # If not specified then try and use the tool diameter @@ -5812,9 +5385,6 @@ class CNCjob(Geometry): # This way we can add different formatting / colors to both cuts = [] travels = [] - cutsgeom = '' - travelsgeom = '' - for g in self.gcode_parsed: if self.app.abort_flag: # graceful abort requested by the user @@ -5852,12 +5422,10 @@ class CNCjob(Geometry): def bounds(self, flatten=None): """ - Returns coordinates of rectangular bounds of geometry: (xmin, ymin, xmax, ymax). + Returns coordinates of rectangular bounds + of geometry: (xmin, ymin, xmax, ymax). :param flatten: Not used, it is here for compatibility with base class method - :type flatten: bool - :return: Bounding values in format (xmin, ymin, xmax, ymax) - :rtype: tuple """ log.debug("camlib.CNCJob.bounds()") diff --git a/defaults.py b/defaults.py index 2c99fd77..b446a39a 100644 --- a/defaults.py +++ b/defaults.py @@ -2,16 +2,16 @@ import os import stat import sys from copy import deepcopy -from Common import LoudDict +from FlatCAMCommon import LoudDict from camlib import to_dict, CNCjob, Geometry import simplejson import logging import gettext -import AppTranslation as fcTranslate +import FlatCAMTranslation as fcTranslate import builtins -from AppParsers.ParseExcellon import Excellon -from AppParsers.ParseGerber import Gerber +from flatcamParsers.ParseExcellon import Excellon +from flatcamParsers.ParseGerber import Gerber fcTranslate.apply_language('strings') if '_' not in builtins.__dict__: @@ -43,7 +43,6 @@ class FlatCAMDefaults: # General "global_graphic_engine": '3D', - "global_hud": True, "global_app_level": 'b', "global_portable": False, "global_language": 'English', @@ -172,6 +171,12 @@ class FlatCAMDefaults: "All Files (*.*)", # Gerber Options + "gerber_isotooldia": 0.1, + "gerber_isopasses": 1, + "gerber_isooverlap": 10, + "gerber_milling_type": "cl", + "gerber_combine_passes": False, + "gerber_iso_scope": 'all', "gerber_noncoppermargin": 0.1, "gerber_noncopperrounded": False, "gerber_bboxmargin": 0.1, @@ -182,6 +187,11 @@ class FlatCAMDefaults: "gerber_aperture_scale_factor": 1.0, "gerber_aperture_buffer_factor": 0.0, "gerber_follow": False, + "gerber_tool_type": 'circular', + "gerber_vtipdia": 0.1, + "gerber_vtipangle": 30, + "gerber_vcutz": -0.05, + "gerber_iso_type": "full", "gerber_buffering": "full", "gerber_simplification": False, "gerber_simp_tolerance": 0.0005, @@ -212,7 +222,6 @@ class FlatCAMDefaults: # Excellon General "excellon_plot": True, "excellon_solid": True, - "excellon_multicolored": False, "excellon_format_upper_in": 2, "excellon_format_lower_in": 4, "excellon_format_upper_mm": 3, @@ -301,7 +310,6 @@ class FlatCAMDefaults: # Geometry General "geometry_plot": True, - "geometry_multicolored": False, "geometry_circle_steps": 64, "geometry_cnctooldia": "2.4", "geometry_plot_line": "#FF0000", @@ -382,28 +390,6 @@ class FlatCAMDefaults: "cncjob_annotation_fontsize": 9, "cncjob_annotation_fontcolor": '#990000', - # Isolation Routing Tool - "tools_iso_tooldia": "0.1", - "tools_iso_order": 'rev', - "tools_iso_tool_type": 'C1', - "tools_iso_tool_vtipdia": 0.1, - "tools_iso_tool_vtipangle": 30, - "tools_iso_tool_cutz": -0.05, - "tools_iso_newdia": 0.1, - - "tools_iso_passes": 1, - "tools_iso_overlap": 10, - "tools_iso_milling_type": "cl", - "tools_iso_follow": False, - "tools_iso_isotype": "full", - - "tools_iso_rest": False, - "tools_iso_combine_passes": False, - "tools_iso_isoexcept": False, - "tools_iso_selection": _("All"), - "tools_iso_area_shape": "square", - "tools_iso_plotting": 'normal', - # NCC Tool "tools_ncctools": "1.0, 0.5", "tools_nccorder": 'rev', @@ -418,13 +404,13 @@ class FlatCAMDefaults: "tools_ncc_offset_value": 0.0000, "tools_nccref": _('Itself'), "tools_ncc_area_shape": "square", + "tools_ncc_plotting": 'normal', "tools_nccmilling_type": 'cl', "tools_ncctool_type": 'C1', "tools_ncccutz": -0.05, "tools_ncctipdia": 0.1, "tools_ncctipangle": 30, "tools_nccnewdia": 0.1, - "tools_ncc_plotting": 'normal', # Cutout Tool "tools_cutouttooldia": 2.4, @@ -443,7 +429,7 @@ class FlatCAMDefaults: "tools_paintoverlap": 20, "tools_paintmargin": 0.0, "tools_paintmethod": _("Seed"), - "tools_selectmethod": _("All"), + "tools_selectmethod": _("All Polygons"), "tools_paint_area_shape": "square", "tools_pathconnect": True, "tools_paintcontour": True, @@ -538,12 +524,6 @@ class FlatCAMDefaults: # Distance Tool "tools_dist_snap_center": False, - # Corner Markers Tool - - "tools_corners_thickness": 0.1, - "tools_corners_length": 3.0, - "tools_corners_margin": 0.0, - # ######################################################################################################## # ################################ TOOLS 2 ############################################################### # ######################################################################################################## @@ -697,15 +677,13 @@ class FlatCAMDefaults: } @classmethod - def save_factory_defaults(cls, file_path: str, version: float): + def save_factory_defaults(cls, file_path: str): """Writes the factory defaults to a file at the given path, overwriting any existing file.""" # Delete any existing factory defaults file if os.path.isfile(file_path): os.chmod(file_path, stat.S_IRWXO | stat.S_IWRITE | stat.S_IWGRP) os.remove(file_path) - cls.factory_defaults['version'] = version - try: # recreate a new factory defaults file and save the factory defaults data into it f_f_def_s = open(file_path, "w") @@ -786,8 +764,8 @@ class FlatCAMDefaults: if defaults is None: return - # Perform migration if necessary but only if the defaults dict is not empty - if self.__is_old_defaults(defaults) and defaults: + # Perform migration if necessary + if self.__is_old_defaults(defaults): self.old_defaults_found = True defaults = self.__migrate_old_defaults(defaults=defaults) else: diff --git a/AppEditors/FlatCAMExcEditor.py b/flatcamEditors/FlatCAMExcEditor.py similarity index 98% rename from AppEditors/FlatCAMExcEditor.py rename to flatcamEditors/FlatCAMExcEditor.py index c5d56218..49dc5eb5 100644 --- a/AppEditors/FlatCAMExcEditor.py +++ b/flatcamEditors/FlatCAMExcEditor.py @@ -9,9 +9,9 @@ from PyQt5 import QtGui, QtCore, QtWidgets from PyQt5.QtCore import Qt, QSettings from camlib import distance, arc, FlatCAMRTreeStorage -from AppGUI.GUIElements import FCEntry, FCComboBox, FCTable, FCDoubleSpinner, RadioSet, FCSpinner -from AppEditors.FlatCAMGeoEditor import FCShapeTool, DrawTool, DrawToolShape, DrawToolUtilityShape, FlatCAMGeoEditor -from AppParsers.ParseExcellon import Excellon +from flatcamGUI.GUIElements import FCEntry, FCComboBox, FCTable, FCDoubleSpinner, RadioSet, FCSpinner +from flatcamEditors.FlatCAMGeoEditor import FCShapeTool, DrawTool, DrawToolShape, DrawToolUtilityShape, FlatCAMGeoEditor +from flatcamParsers.ParseExcellon import Excellon from shapely.geometry import LineString, LinearRing, MultiLineString, Polygon, MultiPolygon, Point import shapely.affinity as affinity @@ -26,7 +26,7 @@ import logging from copy import deepcopy import gettext -import AppTranslation as fcTranslate +import FlatCAMTranslation as fcTranslate import builtins fcTranslate.apply_language('strings') @@ -2123,7 +2123,7 @@ class FlatCAMExcEditor(QtCore.QObject): else: self.tool_shape = self.app.plotcanvas.new_shape_collection(layers=1) else: - from AppGUI.PlotCanvasLegacy import ShapeCollectionLegacy + from flatcamGUI.PlotCanvasLegacy import ShapeCollectionLegacy self.shapes = ShapeCollectionLegacy(obj=self, app=self.app, name='shapes_exc_editor') self.tool_shape = ShapeCollectionLegacy(obj=self, app=self.app, name='tool_shapes_exc_editor') @@ -2239,7 +2239,7 @@ class FlatCAMExcEditor(QtCore.QObject): # store the status of the editor so the Delete at object level will not work until the edit is finished self.editor_active = False - log.debug("Initialization of the Excellon Editor is finished ...") + log.debug("Initialization of the FlatCAM Excellon Editor is finished ...") def pool_recreated(self, pool): self.shapes.pool = pool @@ -2312,7 +2312,7 @@ class FlatCAMExcEditor(QtCore.QObject): tool_dia = float('%.*f' % (self.decimals, v['C'])) self.tool2tooldia[int(k)] = tool_dia - # Init AppGUI + # Init GUI self.addtool_entry.set_value(float(self.app.defaults['excellon_editor_newdia'])) self.drill_array_size_entry.set_value(int(self.app.defaults['excellon_editor_array_size'])) self.drill_axis_radio.set_value(self.app.defaults['excellon_editor_lin_dir']) @@ -2819,8 +2819,10 @@ class FlatCAMExcEditor(QtCore.QObject): self.tool_shape.enabled = True # self.app.app_cursor.enabled = True - self.app.ui.corner_snap_btn.setVisible(True) + self.app.ui.snap_max_dist_entry.setEnabled(True) + self.app.ui.corner_snap_btn.setEnabled(True) self.app.ui.snap_magnet.setVisible(True) + self.app.ui.corner_snap_btn.setVisible(True) self.app.ui.exc_editor_menu.setDisabled(False) self.app.ui.exc_editor_menu.menuAction().setVisible(True) @@ -2830,11 +2832,12 @@ class FlatCAMExcEditor(QtCore.QObject): self.app.ui.exc_edit_toolbar.setDisabled(False) self.app.ui.exc_edit_toolbar.setVisible(True) - # self.app.ui.status_toolbar.setDisabled(False) + # self.app.ui.snap_toolbar.setDisabled(False) # start with GRID toolbar activated if self.app.ui.grid_snap_btn.isChecked() is False: self.app.ui.grid_snap_btn.trigger() + self.app.ui.on_grid_snap_triggered(state=True) self.app.ui.popmenu_disable.setVisible(False) self.app.ui.cmenu_newmenu.menuAction().setVisible(False) @@ -2866,8 +2869,30 @@ class FlatCAMExcEditor(QtCore.QObject): self.clear() self.app.ui.exc_edit_toolbar.setDisabled(True) - self.app.ui.corner_snap_btn.setVisible(False) - self.app.ui.snap_magnet.setVisible(False) + settings = QSettings("Open Source", "FlatCAM") + if settings.contains("layout"): + layout = settings.value('layout', type=str) + if layout == 'standard': + # self.app.ui.exc_edit_toolbar.setVisible(False) + + self.app.ui.snap_max_dist_entry.setEnabled(False) + self.app.ui.corner_snap_btn.setEnabled(False) + self.app.ui.snap_magnet.setVisible(False) + self.app.ui.corner_snap_btn.setVisible(False) + else: + # self.app.ui.exc_edit_toolbar.setVisible(True) + + self.app.ui.snap_max_dist_entry.setEnabled(False) + self.app.ui.corner_snap_btn.setEnabled(False) + self.app.ui.snap_magnet.setVisible(True) + self.app.ui.corner_snap_btn.setVisible(True) + else: + # self.app.ui.exc_edit_toolbar.setVisible(False) + + self.app.ui.snap_max_dist_entry.setEnabled(False) + self.app.ui.corner_snap_btn.setEnabled(False) + self.app.ui.snap_magnet.setVisible(False) + self.app.ui.corner_snap_btn.setVisible(False) # set the Editor Toolbar visibility to what was before entering in the Editor self.app.ui.exc_edit_toolbar.setVisible(False) if self.toolbar_old_state is False \ @@ -3043,7 +3068,7 @@ class FlatCAMExcEditor(QtCore.QObject): self.set_ui() - # now that we hava data, create the AppGUI interface and add it to the Tool Tab + # now that we hava data, create the GUI interface and add it to the Tool Tab self.build_ui(first_run=True) # we activate this after the initial build as we don't need to see the tool been populated @@ -3336,17 +3361,15 @@ class FlatCAMExcEditor(QtCore.QObject): with self.app.proc_container.new(_("Creating Excellon.")): try: - edited_obj = self.app.app_obj.new_object("excellon", outname, obj_init) + edited_obj = self.app.new_object("excellon", outname, obj_init) edited_obj.source_file = self.app.export_excellon(obj_name=edited_obj.options['name'], local_use=edited_obj, filename=None, use_thread=False) except Exception as e: - self.deactivate() log.error("Error on Edited object creation: %s" % str(e)) return - self.deactivate() self.app.inform.emit('[success] %s' % _("Excellon editing finished.")) def on_tool_select(self, tool): @@ -3440,8 +3463,8 @@ class FlatCAMExcEditor(QtCore.QObject): self.pos = (self.pos[0], self.pos[1]) if event.button == 1: - # self.app.ui.rel_position_label.setText("Dx: %.4f   Dy: " - # "%.4f    " % (0, 0)) + self.app.ui.rel_position_label.setText("Dx: %.4f   Dy: " + "%.4f    " % (0, 0)) # Selection with left mouse button if self.active_tool is not None and event.button == 1: @@ -3778,22 +3801,18 @@ class FlatCAMExcEditor(QtCore.QObject): self.snap_x = x self.snap_y = y + # update the position label in the infobar since the APP mouse event handlers are disconnected + self.app.ui.position_label.setText("    X: %.4f   " + "Y: %.4f" % (x, y)) + if self.pos is None: self.pos = (0, 0) self.app.dx = x - self.pos[0] self.app.dy = y - self.pos[1] - # # update the position label in the infobar since the APP mouse event handlers are disconnected - self.app.ui.position_label.setText(" X: %.4f   " - "Y: %.4f " % (x, y)) - # # update the reference position label in the infobar since the APP mouse event handlers are disconnected - # self.app.ui.rel_position_label.setText("Dx: %.4f   Dy: " - # "%.4f    " % (self.app.dx, self.app.dy)) - - units = self.app.defaults["units"].lower() - self.app.plotcanvas.text_hud.text = \ - 'Dx:\t{:<.4f} [{:s}]\nDy:\t{:<.4f} [{:s}]\n\nX: \t{:<.4f} [{:s}]\nY: \t{:<.4f} [{:s}]'.format( - self.app.dx, units, self.app.dy, units, x, units, y, units) + # update the reference position label in the infobar since the APP mouse event handlers are disconnected + self.app.ui.rel_position_label.setText("Dx: %.4f   Dy: " + "%.4f    " % (self.app.dx, self.app.dy)) # ## Utility geometry (animated) self.update_utility_geometry(data=(x, y)) @@ -4026,7 +4045,7 @@ class FlatCAMExcEditor(QtCore.QObject): def select_tool(self, toolname): """ - Selects a drawing tool. Impacts the object and AppGUI. + Selects a drawing tool. Impacts the object and GUI. :param toolname: Name of the tool. :return: None diff --git a/AppEditors/FlatCAMGeoEditor.py b/flatcamEditors/FlatCAMGeoEditor.py similarity index 98% rename from AppEditors/FlatCAMGeoEditor.py rename to flatcamEditors/FlatCAMGeoEditor.py index 51bb53a6..ccf67ce4 100644 --- a/AppEditors/FlatCAMGeoEditor.py +++ b/flatcamEditors/FlatCAMGeoEditor.py @@ -15,10 +15,11 @@ from PyQt5 import QtGui, QtCore, QtWidgets from PyQt5.QtCore import Qt, QSettings from camlib import distance, arc, three_point_circle, Geometry, FlatCAMRTreeStorage -from AppTool import AppTool -from AppGUI.GUIElements import OptionalInputSection, FCCheckBox, FCEntry, FCComboBox, FCTextAreaRich, \ - FCDoubleSpinner, FCButton, FCInputDialog, FCTree -from AppParsers.ParseFont import * +from FlatCAMTool import FlatCAMTool +from flatcamGUI.ObjectUI import RadioSet +from flatcamGUI.GUIElements import OptionalInputSection, FCCheckBox, FCEntry, FCComboBox, FCTextAreaRich, \ + FCTable, FCDoubleSpinner, FCButton, EvalEntry2, FCInputDialog, FCTree +from flatcamParsers.ParseFont import * from shapely.geometry import LineString, LinearRing, MultiLineString, Polygon, MultiPolygon from shapely.ops import cascaded_union, unary_union, linemerge @@ -33,7 +34,7 @@ from rtree import index as rtindex from copy import deepcopy # from vispy.io import read_png import gettext -import AppTranslation as fcTranslate +import FlatCAMTranslation as fcTranslate import builtins fcTranslate.apply_language('strings') @@ -41,7 +42,7 @@ if '_' not in builtins.__dict__: _ = gettext.gettext -class BufferSelectionTool(AppTool): +class BufferSelectionTool(FlatCAMTool): """ Simple input for buffer distance. """ @@ -49,7 +50,7 @@ class BufferSelectionTool(AppTool): toolName = "Buffer Selection" def __init__(self, app, draw_app): - AppTool.__init__(self, app) + FlatCAMTool.__init__(self, app) self.draw_app = draw_app self.decimals = app.decimals @@ -117,12 +118,12 @@ class BufferSelectionTool(AppTool): self.buffer_int_button.clicked.connect(self.on_buffer_int) self.buffer_ext_button.clicked.connect(self.on_buffer_ext) - # Init AppGUI + # Init GUI self.buffer_distance_entry.set_value(0.01) def run(self): self.app.defaults.report_usage("Geo Editor ToolBuffer()") - AppTool.run(self) + FlatCAMTool.run(self) # if the splitter us hidden, display it if self.app.ui.splitter.sizes()[0] == 0: @@ -186,7 +187,7 @@ class BufferSelectionTool(AppTool): self.app.ui.notebook.setCurrentWidget(self.app.ui.project_tab) -class TextInputTool(AppTool): +class TextInputTool(FlatCAMTool): """ Simple input for buffer distance. """ @@ -194,7 +195,7 @@ class TextInputTool(AppTool): toolName = "Text Input Tool" def __init__(self, app): - AppTool.__init__(self, app) + FlatCAMTool.__init__(self, app) self.app = app self.text_path = [] @@ -339,7 +340,7 @@ class TextInputTool(AppTool): def run(self): self.app.defaults.report_usage("Geo Editor TextInputTool()") - AppTool.run(self) + FlatCAMTool.run(self) # if the splitter us hidden, display it if self.app.ui.splitter.sizes()[0] == 0: @@ -404,7 +405,7 @@ class TextInputTool(AppTool): self.app.ui.notebook.setTabText(2, _("Tool")) -class PaintOptionsTool(AppTool): +class PaintOptionsTool(FlatCAMTool): """ Inputs to specify how to paint the selected polygons. """ @@ -412,7 +413,7 @@ class PaintOptionsTool(AppTool): toolName = "Paint Tool" def __init__(self, app, fcdraw): - AppTool.__init__(self, app) + FlatCAMTool.__init__(self, app) self.app = app self.fcdraw = fcdraw @@ -537,7 +538,7 @@ class PaintOptionsTool(AppTool): def run(self): self.app.defaults.report_usage("Geo Editor ToolPaint()") - AppTool.run(self) + FlatCAMTool.run(self) # if the splitter us hidden, display it if self.app.ui.splitter.sizes()[0] == 0: @@ -546,7 +547,7 @@ class PaintOptionsTool(AppTool): self.app.ui.notebook.setTabText(2, _("Paint Tool")) def set_tool_ui(self): - # Init AppGUI + # Init GUI if self.app.defaults["tools_painttooldia"]: self.painttooldia_entry.set_value(self.app.defaults["tools_painttooldia"]) else: @@ -598,7 +599,7 @@ class PaintOptionsTool(AppTool): self.app.ui.splitter.setSizes([0, 1]) -class TransformEditorTool(AppTool): +class TransformEditorTool(FlatCAMTool): """ Inputs to specify how to paint the selected polygons. """ @@ -611,7 +612,7 @@ class TransformEditorTool(AppTool): offsetName = _("Offset") def __init__(self, app, draw_app): - AppTool.__init__(self, app) + FlatCAMTool.__init__(self, app) self.app = app self.draw_app = draw_app @@ -980,7 +981,7 @@ class TransformEditorTool(AppTool): def run(self): self.app.defaults.report_usage("Geo Editor Transform Tool()") - AppTool.run(self) + FlatCAMTool.run(self) self.set_tool_ui() # if the splitter us hidden, display it @@ -990,7 +991,7 @@ class TransformEditorTool(AppTool): self.app.ui.notebook.setTabText(2, _("Transform Tool")) def install(self, icon=None, separator=None, **kwargs): - AppTool.install(self, icon, separator, shortcut='Alt+T', **kwargs) + FlatCAMTool.install(self, icon, separator, shortcut='Alt+T', **kwargs) def set_tool_ui(self): # Initialize form @@ -3382,7 +3383,7 @@ class FlatCAMGeoEditor(QtCore.QObject): self.shapes = self.app.plotcanvas.new_shape_collection(layers=1) self.tool_shape = self.app.plotcanvas.new_shape_collection(layers=1) else: - from AppGUI.PlotCanvasLegacy import ShapeCollectionLegacy + from flatcamGUI.PlotCanvasLegacy import ShapeCollectionLegacy self.shapes = ShapeCollectionLegacy(obj=self, app=self.app, name='shapes_geo_editor') self.tool_shape = ShapeCollectionLegacy(obj=self, app=self.app, name='tool_shapes_geo_editor') @@ -3466,32 +3467,22 @@ class FlatCAMGeoEditor(QtCore.QObject): :return: """ try: - text_value = entry.text() - if ',' in text_value: - text_value = text_value.replace(',', '.') - self.options[opt] = float(text_value) + self.options[opt] = float(entry.text()) except Exception as e: - entry.set_value(self.app.defaults[opt]) log.debug("FlatCAMGeoEditor.__init__().entry2option() --> %s" % str(e)) return - def grid_changed(goption, gentry): + def gridx_changed(goption, gentry): """ - :param goption: String. Can be either 'global_gridx' or 'global_gridy' - :param gentry: A GUI element which text value is read and used + :param goption: String. Can be either 'global_gridx' or 'global_gridy' + :param gentry: A GUI element which text value is read and used :return: """ - if goption not in ['global_gridx', 'global_gridy']: - return - entry2option(opt=goption, entry=gentry) # if the grid link is checked copy the value in the GridX field to GridY try: - text_value = gentry.text() - if ',' in text_value: - text_value = text_value.replace(',', '.') - val = float(text_value) + val = float(gentry.get_value()) except ValueError: return @@ -3500,7 +3491,7 @@ class FlatCAMGeoEditor(QtCore.QObject): self.app.ui.grid_gap_x_entry.setValidator(QtGui.QDoubleValidator()) self.app.ui.grid_gap_x_entry.textChanged.connect( - lambda: grid_changed("global_gridx", self.app.ui.grid_gap_x_entry)) + lambda: gridx_changed("global_gridx", self.app.ui.grid_gap_x_entry)) self.app.ui.grid_gap_y_entry.setValidator(QtGui.QDoubleValidator()) self.app.ui.grid_gap_y_entry.textChanged.connect( @@ -3551,7 +3542,7 @@ class FlatCAMGeoEditor(QtCore.QObject): # store the status of the editor so the Delete at object level will not work until the edit is finished self.editor_active = False - log.debug("Initialization of the Geometry Editor is finished ...") + log.debug("Initialization of the FlatCAM Geometry Editor is finished ...") def pool_recreated(self, pool): self.shapes.pool = pool @@ -3568,14 +3559,14 @@ class FlatCAMGeoEditor(QtCore.QObject): # Remove anything else in the GUI Selected Tab self.app.ui.selected_scroll_area.takeWidget() - # Put ourselves in the AppGUI Selected Tab + # Put ourselves in the GUI Selected Tab self.app.ui.selected_scroll_area.setWidget(self.geo_edit_widget) # Switch notebook to Selected page self.app.ui.notebook.setCurrentWidget(self.app.ui.selected_tab) def build_ui(self): """ - Build the AppGUI in the Selected Tab for this editor + Build the GUI in the Selected Tab for this editor :return: """ @@ -3653,8 +3644,10 @@ class FlatCAMGeoEditor(QtCore.QObject): self.tool_shape.enabled = True self.app.app_cursor.enabled = True - self.app.ui.corner_snap_btn.setVisible(True) + self.app.ui.snap_max_dist_entry.setEnabled(True) + self.app.ui.corner_snap_btn.setEnabled(True) self.app.ui.snap_magnet.setVisible(True) + self.app.ui.corner_snap_btn.setVisible(True) self.app.ui.geo_editor_menu.setDisabled(False) self.app.ui.geo_editor_menu.menuAction().setVisible(True) @@ -3665,7 +3658,7 @@ class FlatCAMGeoEditor(QtCore.QObject): self.app.ui.geo_edit_toolbar.setDisabled(False) self.app.ui.geo_edit_toolbar.setVisible(True) - self.app.ui.status_toolbar.setDisabled(False) + self.app.ui.snap_toolbar.setDisabled(False) self.app.ui.popmenu_disable.setVisible(False) self.app.ui.cmenu_newmenu.menuAction().setVisible(False) @@ -3682,7 +3675,7 @@ class FlatCAMGeoEditor(QtCore.QObject): self.item_selected.connect(self.on_geo_elem_selected) - # ## AppGUI Events + # ## GUI Events self.tw.itemSelectionChanged.connect(self.on_tree_selection_change) # self.tw.keyPressed.connect(self.app.ui.keyPressEvent) # self.tw.customContextMenuRequested.connect(self.on_menu_request) @@ -3710,8 +3703,27 @@ class FlatCAMGeoEditor(QtCore.QObject): self.app.ui.geo_edit_toolbar.setDisabled(True) settings = QSettings("Open Source", "FlatCAM") - self.app.ui.corner_snap_btn.setVisible(False) - self.app.ui.snap_magnet.setVisible(False) + if settings.contains("layout"): + layout = settings.value('layout', type=str) + if layout == 'standard': + # self.app.ui.geo_edit_toolbar.setVisible(False) + + self.app.ui.snap_max_dist_entry.setEnabled(False) + self.app.ui.corner_snap_btn.setEnabled(False) + self.app.ui.snap_magnet.setVisible(False) + self.app.ui.corner_snap_btn.setVisible(False) + else: + # self.app.ui.geo_edit_toolbar.setVisible(True) + + self.app.ui.snap_max_dist_entry.setEnabled(False) + self.app.ui.corner_snap_btn.setEnabled(False) + else: + # self.app.ui.geo_edit_toolbar.setVisible(False) + + self.app.ui.snap_magnet.setVisible(False) + self.app.ui.corner_snap_btn.setVisible(False) + self.app.ui.snap_max_dist_entry.setEnabled(False) + self.app.ui.corner_snap_btn.setEnabled(False) # set the Editor Toolbar visibility to what was before entering in the Editor self.app.ui.geo_edit_toolbar.setVisible(False) if self.toolbar_old_state is False \ @@ -3745,7 +3757,7 @@ class FlatCAMGeoEditor(QtCore.QObject): pass try: - # ## AppGUI Events + # ## GUI Events self.tw.itemSelectionChanged.disconnect(self.on_tree_selection_change) # self.tw.keyPressed.connect(self.app.ui.keyPressEvent) # self.tw.customContextMenuRequested.connect(self.on_menu_request) @@ -4088,6 +4100,7 @@ class FlatCAMGeoEditor(QtCore.QObject): # start with GRID toolbar activated if self.app.ui.grid_snap_btn.isChecked() is False: self.app.ui.grid_snap_btn.trigger() + self.app.ui.on_grid_snap_triggered(state=True) def on_buffer_tool(self): buff_tool = BufferSelectionTool(self.app, self) @@ -4135,11 +4148,9 @@ class FlatCAMGeoEditor(QtCore.QObject): # make sure that the cursor shape is enabled/disabled, too if self.options['grid_snap'] is True: - self.app.inform[str, bool].emit(_("Grid Snap enabled."), False) self.app.app_cursor.enabled = True else: self.app.app_cursor.enabled = False - self.app.inform[str, bool].emit(_("Grid Snap disabled."), False) def on_canvas_click(self, event): """ @@ -4162,8 +4173,8 @@ class FlatCAMGeoEditor(QtCore.QObject): self.pos = (self.pos[0], self.pos[1]) if event.button == 1: - # self.app.ui.rel_position_label.setText("Dx: %.4f   Dy: " - # "%.4f    " % (0, 0)) + self.app.ui.rel_position_label.setText("Dx: %.4f   Dy: " + "%.4f    " % (0, 0)) modifiers = QtWidgets.QApplication.keyboardModifiers() # If the SHIFT key is pressed when LMB is clicked then the coordinates are copied to clipboard @@ -4250,23 +4261,18 @@ class FlatCAMGeoEditor(QtCore.QObject): self.snap_y = y self.app.mouse = [x, y] + # update the position label in the infobar since the APP mouse event handlers are disconnected + self.app.ui.position_label.setText("    X: %.4f   " + "Y: %.4f" % (x, y)) + if self.pos is None: self.pos = (0, 0) self.app.dx = x - self.pos[0] self.app.dy = y - self.pos[1] - # # update the position label in the infobar since the APP mouse event handlers are disconnected - self.app.ui.position_label.setText(" X: %.4f   " - "Y: %.4f " % (x, y)) - # - # # update the reference position label in the infobar since the APP mouse event handlers are disconnected - # self.app.ui.rel_position_label.setText("Dx: %.4f   Dy: " - # "%.4f    " % (self.app.dx, self.app.dy)) - - units = self.app.defaults["units"].lower() - self.app.plotcanvas.text_hud.text = \ - 'Dx:\t{:<.4f} [{:s}]\nDy:\t{:<.4f} [{:s}]\n\nX: \t{:<.4f} [{:s}]\nY: \t{:<.4f} [{:s}]'.format( - self.app.dx, units, self.app.dy, units, x, units, y, units) + # update the reference position label in the infobar since the APP mouse event handlers are disconnected + self.app.ui.rel_position_label.setText("Dx: %.4f   Dy: " + "%.4f    " % (self.app.dx, self.app.dy)) if event.button == 1 and event_is_dragging and isinstance(self.active_tool, FCEraser): pass @@ -4659,7 +4665,7 @@ class FlatCAMGeoEditor(QtCore.QObject): def select_tool(self, toolname): """ - Selects a drawing tool. Impacts the object and AppGUI. + Selects a drawing tool. Impacts the object and GUI. :param toolname: Name of the tool. :return: None @@ -4744,8 +4750,8 @@ class FlatCAMGeoEditor(QtCore.QObject): Transfers the geometry tool shape buffer to the selected geometry object. The geometry already in the object are removed. - :param fcgeometry: GeometryObject - :return: None + :param fcgeometry: GeometryObject + :return: None """ if self.multigeo_tool: fcgeometry.tools[self.multigeo_tool]['solid_geometry'] = [] @@ -4770,8 +4776,6 @@ class FlatCAMGeoEditor(QtCore.QObject): new_geo = linemerge(new_geo) fcgeometry.solid_geometry.append(new_geo) - self.deactivate() - def update_options(self, obj): if self.paint_tooldia: obj.options['cnctooldia'] = deepcopy(str(self.paint_tooldia)) diff --git a/AppEditors/FlatCAMGrbEditor.py b/flatcamEditors/FlatCAMGrbEditor.py similarity index 98% rename from AppEditors/FlatCAMGrbEditor.py rename to flatcamEditors/FlatCAMGrbEditor.py index 3ce13f5b..3362c5ba 100644 --- a/AppEditors/FlatCAMGrbEditor.py +++ b/flatcamEditors/FlatCAMGrbEditor.py @@ -14,13 +14,15 @@ import shapely.affinity as affinity from vispy.geometry import Rect +import threading +import time from copy import copy, deepcopy import logging from camlib import distance, arc, three_point_circle -from AppGUI.GUIElements import FCEntry, FCComboBox, FCTable, FCDoubleSpinner, FCSpinner, RadioSet, \ +from flatcamGUI.GUIElements import FCEntry, FCComboBox, FCTable, FCDoubleSpinner, FCSpinner, RadioSet, \ EvalEntry2, FCInputDialog, FCButton, OptionalInputSection, FCCheckBox -from AppTool import AppTool +from FlatCAMTool import FlatCAMTool import numpy as np from numpy.linalg import norm as numpy_norm @@ -30,7 +32,7 @@ import math # import pngcanvas import traceback import gettext -import AppTranslation as fcTranslate +import FlatCAMTranslation as fcTranslate import builtins fcTranslate.apply_language('strings') @@ -1084,6 +1086,15 @@ class FCRegion(FCShapeTool): self.draw_app.app.inform.emit('[success] %s' % _("Done.")) + def clean_up(self): + self.draw_app.selected = [] + self.draw_app.apertures_table.clearSelection() + self.draw_app.plot_all() + try: + self.draw_app.app.jump_signal.disconnect() + except (TypeError, AttributeError): + pass + def on_key(self, key): # Jump to coords if key == QtCore.Qt.Key_J or key == 'J': @@ -1149,36 +1160,16 @@ class FCRegion(FCShapeTool): return msg - def clean_up(self): - self.draw_app.selected = [] - self.draw_app.apertures_table.clearSelection() - self.draw_app.plot_all() - try: - self.draw_app.app.jump_signal.disconnect() - except (TypeError, AttributeError): - pass - -class FCTrack(FCShapeTool): +class FCTrack(FCRegion): """ Resulting type: Polygon """ def __init__(self, draw_app): - DrawTool.__init__(self, draw_app) + FCRegion.__init__(self, draw_app) self.name = 'track' self.draw_app = draw_app - self.steps_per_circle = self.draw_app.app.defaults["gerber_circle_steps"] - - size_ap = float(self.draw_app.storage_dict[self.draw_app.last_aperture_selected]['size']) - self.buf_val = (size_ap / 2) if size_ap > 0 else 0.0000001 - - self.gridx_size = float(self.draw_app.app.ui.grid_gap_x_entry.get_value()) - self.gridy_size = float(self.draw_app.app.ui.grid_gap_y_entry.get_value()) - - self.temp_points = [] - - self. final_click = False try: QtGui.QGuiApplication.restoreOverrideCursor() except Exception as e: @@ -1192,23 +1183,52 @@ class FCTrack(FCShapeTool): self.draw_app.app.inform.emit(_('Track Mode 1: 45 degrees ...')) + def make(self): + new_geo_el = {} + if len(self.temp_points) == 1: + new_geo_el['solid'] = Point(self.temp_points).buffer(self.buf_val, + resolution=int(self.steps_per_circle / 4)) + new_geo_el['follow'] = Point(self.temp_points) + else: + new_geo_el['solid'] = (LineString(self.temp_points).buffer( + self.buf_val, resolution=int(self.steps_per_circle / 4))).buffer(0) + new_geo_el['follow'] = LineString(self.temp_points) + + self.geometry = DrawToolShape(new_geo_el) + + self.draw_app.in_action = False + self.complete = True + + self.draw_app.app.jump_signal.disconnect() + + self.draw_app.app.inform.emit('[success] %s' % _("Done.")) + + def clean_up(self): + self.draw_app.selected = [] + self.draw_app.apertures_table.clearSelection() + self.draw_app.plot_all() + try: + self.draw_app.app.jump_signal.disconnect() + except (TypeError, AttributeError): + pass + def click(self, point): self.draw_app.in_action = True - - if not self.points: + try: + if point != self.points[-1]: + self.points.append(point) + except IndexError: self.points.append(point) - elif point != self.points[-1]: - self.points.append(point) - else: - return new_geo_el = {} if len(self.temp_points) == 1: - new_geo_el['solid'] = Point(self.temp_points).buffer(self.buf_val, int(self.steps_per_circle)) + new_geo_el['solid'] = Point(self.temp_points).buffer(self.buf_val, + resolution=int(self.steps_per_circle / 4)) new_geo_el['follow'] = Point(self.temp_points) else: - new_geo_el['solid'] = LineString(self.temp_points).buffer(self.buf_val, int(self.steps_per_circle)) + new_geo_el['solid'] = LineString(self.temp_points).buffer(self.buf_val, + resolution=int(self.steps_per_circle / 4)) new_geo_el['follow'] = LineString(self.temp_points) self.draw_app.add_gerber_shape(DrawToolShape(new_geo_el), @@ -1221,25 +1241,23 @@ class FCTrack(FCShapeTool): return "" - def update_grid_info(self): - self.gridx_size = float(self.draw_app.app.ui.grid_gap_x_entry.get_value()) - self.gridy_size = float(self.draw_app.app.ui.grid_gap_y_entry.get_value()) - def utility_geometry(self, data=None): self.update_grid_info() new_geo_el = {} - if not self.points: - new_geo_el['solid'] = Point(data).buffer(self.buf_val, int(self.steps_per_circle)) + if len(self.points) == 0: + new_geo_el['solid'] = Point(data).buffer(self.buf_val, + resolution=int(self.steps_per_circle / 4)) + return DrawToolUtilityShape(new_geo_el) - else: + elif len(self.points) > 0: + + self.temp_points = [self.points[-1]] old_x = self.points[-1][0] old_y = self.points[-1][1] x = data[0] y = data[1] - self.temp_points = [self.points[-1]] - mx = abs(round((x - old_x) / self.gridx_size)) my = abs(round((y - old_y) / self.gridy_size)) @@ -1287,30 +1305,14 @@ class FCTrack(FCShapeTool): self.temp_points.append(data) if len(self.temp_points) == 1: - new_geo_el['solid'] = Point(self.temp_points).buffer(self.buf_val, int(self.steps_per_circle)) + new_geo_el['solid'] = Point(self.temp_points).buffer(self.buf_val, + resolution=int(self.steps_per_circle / 4)) return DrawToolUtilityShape(new_geo_el) - new_geo_el['solid'] = LineString(self.temp_points).buffer(self.buf_val, int(self.steps_per_circle)) + new_geo_el['solid'] = LineString(self.temp_points).buffer(self.buf_val, + resolution=int(self.steps_per_circle / 4)) return DrawToolUtilityShape(new_geo_el) - def make(self): - new_geo_el = {} - if len(self.temp_points) == 1: - new_geo_el['solid'] = Point(self.temp_points).buffer(self.buf_val, int(self.steps_per_circle)) - new_geo_el['follow'] = Point(self.temp_points) - else: - new_geo_el['solid'] = LineString(self.temp_points).buffer(self.buf_val, int(self.steps_per_circle)) - new_geo_el['solid'] = new_geo_el['solid'].buffer(0) # try to clean the geometry - new_geo_el['follow'] = LineString(self.temp_points) - - self.geometry = DrawToolShape(new_geo_el) - - self.draw_app.in_action = False - self.complete = True - - self.draw_app.app.jump_signal.disconnect() - self.draw_app.app.inform.emit('[success] %s' % _("Done.")) - def on_key(self, key): if key == 'Backspace' or key == QtCore.Qt.Key_Backspace: if len(self.points) > 0: @@ -1403,15 +1405,6 @@ class FCTrack(FCShapeTool): return msg - def clean_up(self): - self.draw_app.selected = [] - self.draw_app.apertures_table.clearSelection() - self.draw_app.plot_all() - try: - self.draw_app.app.jump_signal.disconnect() - except (TypeError, AttributeError): - pass - class FCDisc(FCShapeTool): """ @@ -2962,7 +2955,7 @@ class FlatCAMGrbEditor(QtCore.QObject): # this var will store the state of the toolbar before starting the editor self.toolbar_old_state = False - # Init AppGUI + # Init GUI self.apdim_lbl.hide() self.apdim_entry.hide() self.gerber_obj = None @@ -2974,7 +2967,7 @@ class FlatCAMGrbEditor(QtCore.QObject): self.tool_shape = self.canvas.new_shape_collection(layers=1) self.ma_annotation = self.canvas.new_text_group() else: - from AppGUI.PlotCanvasLegacy import ShapeCollectionLegacy + from flatcamGUI.PlotCanvasLegacy import ShapeCollectionLegacy self.shapes = ShapeCollectionLegacy(obj=self, app=self.app, name='shapes_grb_editor') self.tool_shape = ShapeCollectionLegacy(obj=self, app=self.app, name='tool_shapes_grb_editor') self.ma_annotation = ShapeCollectionLegacy( @@ -3117,7 +3110,7 @@ class FlatCAMGrbEditor(QtCore.QObject): self.complete = True self.set_ui() - log.debug("Initialization of the Gerber Editor is finished ...") + log.debug("Initialization of the FlatCAM Gerber Editor is finished ...") def pool_recreated(self, pool): self.shapes.pool = pool @@ -3146,7 +3139,7 @@ class FlatCAMGrbEditor(QtCore.QObject): tt_aperture = self.sorted_apcode[i] self.tid2apcode[i + 1] = tt_aperture - # Init AppGUI + # Init GUI self.buffer_distance_entry.set_value(self.app.defaults["gerber_editor_buff_f"]) self.scale_factor_entry.set_value(self.app.defaults["gerber_editor_scale_f"]) @@ -3435,7 +3428,7 @@ class FlatCAMGrbEditor(QtCore.QObject): else: # deleted_tool_dia = float(self.apertures_table.item(self.apertures_table.currentRow(), 1).text()) if len(self.apertures_table.selectionModel().selectedRows()) == 0: - self.app.inform.emit('[WARNING_NOTCL] %s' % _(" Select an aperture in Aperture Table")) + self.app.inform.emit('[WARNING_NOTCL]%s' % _(" Select an aperture in Aperture Table")) return deleted_apcode_list = [] @@ -3692,8 +3685,10 @@ class FlatCAMGrbEditor(QtCore.QObject): self.shapes.enabled = True self.tool_shape.enabled = True - self.app.ui.corner_snap_btn.setVisible(True) + self.app.ui.snap_max_dist_entry.setEnabled(True) + self.app.ui.corner_snap_btn.setEnabled(True) self.app.ui.snap_magnet.setVisible(True) + self.app.ui.corner_snap_btn.setVisible(True) self.app.ui.grb_editor_menu.setDisabled(False) self.app.ui.grb_editor_menu.menuAction().setVisible(True) @@ -3703,11 +3698,12 @@ class FlatCAMGrbEditor(QtCore.QObject): self.app.ui.grb_edit_toolbar.setDisabled(False) self.app.ui.grb_edit_toolbar.setVisible(True) - # self.app.ui.status_toolbar.setDisabled(False) + # self.app.ui.snap_toolbar.setDisabled(False) # start with GRID toolbar activated if self.app.ui.grid_snap_btn.isChecked() is False: self.app.ui.grid_snap_btn.trigger() + self.app.ui.on_grid_snap_triggered(state=True) # adjust the visibility of some of the canvas context menu self.app.ui.popmenu_edit.setVisible(False) @@ -3740,8 +3736,29 @@ class FlatCAMGrbEditor(QtCore.QObject): self.app.ui.grb_edit_toolbar.setDisabled(True) settings = QSettings("Open Source", "FlatCAM") - self.app.ui.corner_snap_btn.setVisible(False) - self.app.ui.snap_magnet.setVisible(False) + if settings.contains("layout"): + layout = settings.value('layout', type=str) + if layout == 'standard': + # self.app.ui.exc_edit_toolbar.setVisible(False) + + self.app.ui.snap_max_dist_entry.setEnabled(False) + self.app.ui.corner_snap_btn.setEnabled(False) + self.app.ui.snap_magnet.setVisible(False) + self.app.ui.corner_snap_btn.setVisible(False) + else: + # self.app.ui.exc_edit_toolbar.setVisible(True) + + self.app.ui.snap_max_dist_entry.setEnabled(False) + self.app.ui.corner_snap_btn.setEnabled(False) + self.app.ui.snap_magnet.setVisible(True) + self.app.ui.corner_snap_btn.setVisible(True) + else: + # self.app.ui.exc_edit_toolbar.setVisible(False) + + self.app.ui.snap_max_dist_entry.setEnabled(False) + self.app.ui.corner_snap_btn.setEnabled(False) + self.app.ui.snap_magnet.setVisible(False) + self.app.ui.corner_snap_btn.setVisible(False) # set the Editor Toolbar visibility to what was before entering in the Editor self.app.ui.grb_edit_toolbar.setVisible(False) if self.toolbar_old_state is False \ @@ -4193,7 +4210,7 @@ class FlatCAMGrbEditor(QtCore.QObject): def on_multiprocessing_finished(self): self.app.proc_container.update_view_text(' %s' % _("Setting up the UI")) - self.app.inform.emit('[success] %s.' % _("Adding geometry finished. Preparing the AppGUI")) + self.app.inform.emit('[success] %s.' % _("Adding geometry finished. Preparing the GUI")) self.set_ui() self.build_ui(first_run=True) self.plot_all() @@ -4228,7 +4245,6 @@ class FlatCAMGrbEditor(QtCore.QObject): new_grb_name = self.edited_obj_name + "_edit" self.app.worker_task.emit({'fcn': self.new_edited_gerber, 'params': [new_grb_name, self.storage_dict]}) - # self.new_edited_gerber(new_grb_name, self.storage_dict) @staticmethod def update_options(obj): @@ -4250,10 +4266,9 @@ class FlatCAMGrbEditor(QtCore.QObject): """ Creates a new Gerber object for the edited Gerber. Thread-safe. - :param outname: Name of the resulting object. None causes the name to be that of the file. - :type outname: str - :param aperture_storage: a dictionary that holds all the objects geometry - :type aperture_storage: dict + :param outname: Name of the resulting object. None causes the name to be that of the file. + :type outname: str + :param aperture_storage: a dictionary that holds all the objects geometry :return: None """ @@ -4345,27 +4360,26 @@ class FlatCAMGrbEditor(QtCore.QObject): self.app.inform.emit('[ERROR_NOTCL] %s' % _("There are no Aperture definitions in the file. Aborting Gerber creation.")) except Exception: - msg = '[ERROR] %s' % _("An internal error has occurred. See shell.\n") + msg = '[ERROR] %s' % \ + _("An internal error has occurred. See shell.\n") msg += traceback.format_exc() app_obj.inform.emit(msg) raise - grb_obj.source_file = self.app.export_gerber(obj_name=out_name, filename=None, local_use=grb_obj, use_thread=False) with self.app.proc_container.new(_("Creating Gerber.")): try: - self.app.app_obj.new_object("gerber", outname, obj_init) + self.app.new_object("gerber", outname, obj_init) except Exception as e: log.error("Error on Edited object creation: %s" % str(e)) # make sure to clean the previous results self.results = [] return + self.app.inform.emit('[success] %s' % _("Done. Gerber editing finished.")) # make sure to clean the previous results self.results = [] - self.deactivate_grb_editor() - self.app.inform.emit('[success] %s' % _("Done. Gerber editing finished.")) def on_tool_select(self, tool): """ @@ -4523,8 +4537,8 @@ class FlatCAMGrbEditor(QtCore.QObject): self.pos = (self.pos[0], self.pos[1]) if event.button == 1: - # self.app.ui.rel_position_label.setText("Dx: %.4f   Dy: " - # "%.4f    " % (0, 0)) + self.app.ui.rel_position_label.setText("Dx: %.4f   Dy: " + "%.4f    " % (0, 0)) # Selection with left mouse button if self.active_tool is not None: @@ -4536,7 +4550,8 @@ class FlatCAMGrbEditor(QtCore.QObject): self.app.defaults["global_point_clipboard_format"] % (self.decimals, self.pos[0], self.decimals, self.pos[1]) ) - self.app.inform.emit('[success] %s' % _("Coordinates copied to clipboard.")) + self.app.inform.emit('[success] %s' % + _("Coordinates copied to clipboard.")) return # Dispatch event to active_tool @@ -4547,7 +4562,6 @@ class FlatCAMGrbEditor(QtCore.QObject): if self.current_storage is not None: self.on_grb_shape_complete(self.current_storage) self.build_ui() - # MS: always return to the Select Tool if modifier key is not pressed # else return to the current tool key_modifier = QtWidgets.QApplication.keyboardModifiers() @@ -4555,7 +4569,6 @@ class FlatCAMGrbEditor(QtCore.QObject): modifier_to_use = Qt.ControlModifier else: modifier_to_use = Qt.ShiftModifier - # if modifier key is pressed then we add to the selected list the current shape but if it's already # in the selected list, we removed it. Therefore first click selects, second deselects. if key_modifier == modifier_to_use: @@ -4616,14 +4629,12 @@ class FlatCAMGrbEditor(QtCore.QObject): # if right click on canvas and the active tool need to be finished (like Path or Polygon) # right mouse click will finish the action if isinstance(self.active_tool, FCShapeTool): - if isinstance(self.active_tool, FCTrack): - self.active_tool.make() - else: - self.active_tool.click(self.app.geo_editor.snap(self.x, self.y)) - self.active_tool.make() + self.active_tool.click(self.app.geo_editor.snap(self.x, self.y)) + self.active_tool.make() if self.active_tool.complete: self.on_grb_shape_complete() - self.app.inform.emit('[success] %s' % _("Done.")) + self.app.inform.emit('[success] %s' % + _("Done.")) # MS: always return to the Select Tool if modifier key is not pressed # else return to the current tool but not for FCTrack @@ -4763,23 +4774,18 @@ class FlatCAMGrbEditor(QtCore.QObject): self.app.mouse = [x, y] + # update the position label in the infobar since the APP mouse event handlers are disconnected + self.app.ui.position_label.setText("    X: %.4f   " + "Y: %.4f" % (x, y)) + if self.pos is None: self.pos = (0, 0) self.app.dx = x - self.pos[0] self.app.dy = y - self.pos[1] - # # update the position label in the infobar since the APP mouse event handlers are disconnected - self.app.ui.position_label.setText(" X: %.4f   " - "Y: %.4f " % (x, y)) - # - # # update the reference position label in the infobar since the APP mouse event handlers are disconnected - # self.app.ui.rel_position_label.setText("Dx: %.4f   Dy: " - # "%.4f    " % (self.app.dx, self.app.dy)) - - units = self.app.defaults["units"].lower() - self.app.plotcanvas.text_hud.text = \ - 'Dx:\t{:<.4f} [{:s}]\nDy:\t{:<.4f} [{:s}]\n\nX: \t{:<.4f} [{:s}]\nY: \t{:<.4f} [{:s}]'.format( - self.app.dx, units, self.app.dy, units, x, units, y, units) + # update the reference position label in the infobar since the APP mouse event handlers are disconnected + self.app.ui.rel_position_label.setText("Dx: %.4f   Dy: " + "%.4f    " % (self.app.dx, self.app.dy)) self.update_utility_geometry(data=(x, y)) @@ -5026,7 +5032,7 @@ class FlatCAMGrbEditor(QtCore.QObject): def select_tool(self, toolname): """ - Selects a drawing tool. Impacts the object and AppGUI. + Selects a drawing tool. Impacts the object and GUI. :param toolname: Name of the tool. :return: None @@ -5292,7 +5298,7 @@ class FlatCAMGrbEditor(QtCore.QObject): self.app.ui.notebook.setCurrentWidget(self.app.ui.selected_tab) -class TransformEditorTool(AppTool): +class TransformEditorTool(FlatCAMTool): """ Inputs to specify how to paint the selected polygons. """ @@ -5305,7 +5311,7 @@ class TransformEditorTool(AppTool): offsetName = _("Offset") def __init__(self, app, draw_app): - AppTool.__init__(self, app) + FlatCAMTool.__init__(self, app) self.app = app self.draw_app = draw_app @@ -5691,13 +5697,13 @@ class TransformEditorTool(AppTool): except AttributeError: pass - AppTool.run(self) + FlatCAMTool.run(self) self.set_tool_ui() self.app.ui.notebook.setTabText(2, _("Transform Tool")) def install(self, icon=None, separator=None, **kwargs): - AppTool.install(self, icon, separator, shortcut='Alt+T', **kwargs) + FlatCAMTool.install(self, icon, separator, shortcut='Alt+T', **kwargs) def set_tool_ui(self): # Initialize form diff --git a/AppEditors/FlatCAMTextEditor.py b/flatcamEditors/FlatCAMTextEditor.py similarity index 98% rename from AppEditors/FlatCAMTextEditor.py rename to flatcamEditors/FlatCAMTextEditor.py index 21c8aa7e..92641258 100644 --- a/AppEditors/FlatCAMTextEditor.py +++ b/flatcamEditors/FlatCAMTextEditor.py @@ -5,7 +5,7 @@ # MIT Licence # # ########################################################## -from AppGUI.GUIElements import FCFileSaveDialog, FCEntry, FCTextAreaExtended, FCTextAreaLineNumber +from flatcamGUI.GUIElements import FCFileSaveDialog, FCEntry, FCTextAreaExtended, FCTextAreaLineNumber from PyQt5 import QtPrintSupport, QtWidgets, QtCore, QtGui from reportlab.platypus import SimpleDocTemplate, Paragraph @@ -15,7 +15,7 @@ from reportlab.lib.units import inch, mm # from io import StringIO import gettext -import AppTranslation as fcTranslate +import FlatCAMTranslation as fcTranslate import builtins fcTranslate.apply_language('strings') @@ -214,10 +214,10 @@ class TextEditor(QtWidgets.QWidget): filename = str(FCFileSaveDialog.get_saved_filename( caption=_("Export Code ..."), directory=self.app.defaults["global_last_folder"] + '/' + str(obj_name), - ext_filter=_filter_ + filter=_filter_ )[0]) except TypeError: - filename = str(FCFileSaveDialog.get_saved_filename(caption=_("Export Code ..."), ext_filter=_filter_)[0]) + filename = str(FCFileSaveDialog.get_saved_filename(caption=_("Export Code ..."), filter=_filter_)[0]) if filename == "": self.app.inform.emit('[WARNING_NOTCL] %s' % _("Cancelled.")) diff --git a/AppEditors/__init__.py b/flatcamEditors/__init__.py similarity index 100% rename from AppEditors/__init__.py rename to flatcamEditors/__init__.py diff --git a/AppGUI/MainGUI.py b/flatcamGUI/FlatCAMGUI.py similarity index 89% rename from AppGUI/MainGUI.py rename to flatcamGUI/FlatCAMGUI.py index 84982e72..09d7383b 100644 --- a/AppGUI/MainGUI.py +++ b/flatcamGUI/FlatCAMGUI.py @@ -12,28 +12,28 @@ # ########################################################## import platform -from AppGUI.GUIElements import * -from AppGUI.preferences import settings -from AppGUI.preferences.cncjob.CNCJobPreferencesUI import CNCJobPreferencesUI -from AppGUI.preferences.excellon.ExcellonPreferencesUI import ExcellonPreferencesUI -from AppGUI.preferences.general.GeneralPreferencesUI import GeneralPreferencesUI -from AppGUI.preferences.geometry.GeometryPreferencesUI import GeometryPreferencesUI -from AppGUI.preferences.gerber.GerberPreferencesUI import GerberPreferencesUI -from AppEditors.FlatCAMGeoEditor import FCShapeTool +from flatcamGUI.GUIElements import * +from flatcamGUI.preferences import settings +from flatcamGUI.preferences.cncjob.CNCJobPreferencesUI import CNCJobPreferencesUI +from flatcamGUI.preferences.excellon.ExcellonPreferencesUI import ExcellonPreferencesUI +from flatcamGUI.preferences.general.GeneralPreferencesUI import GeneralPreferencesUI +from flatcamGUI.preferences.geometry.GeometryPreferencesUI import GeometryPreferencesUI +from flatcamGUI.preferences.gerber.GerberPreferencesUI import GerberPreferencesUI +from flatcamEditors.FlatCAMGeoEditor import FCShapeTool from matplotlib.backend_bases import KeyEvent as mpl_key_event import webbrowser -from AppGUI.preferences.tools.Tools2PreferencesUI import Tools2PreferencesUI -from AppGUI.preferences.tools.ToolsPreferencesUI import ToolsPreferencesUI -from AppGUI.preferences.utilities.UtilPreferencesUI import UtilPreferencesUI -from AppObjects.ObjectCollection import KeySensitiveListView +from flatcamGUI.preferences.tools.Tools2PreferencesUI import Tools2PreferencesUI +from flatcamGUI.preferences.tools.ToolsPreferencesUI import ToolsPreferencesUI +from flatcamGUI.preferences.utilities.UtilPreferencesUI import UtilPreferencesUI +from flatcamObjects.ObjectCollection import KeySensitiveListView import subprocess import os import sys import gettext -import AppTranslation as fcTranslate +import FlatCAMTranslation as fcTranslate import builtins fcTranslate.apply_language('strings') @@ -41,13 +41,13 @@ if '_' not in builtins.__dict__: _ = gettext.gettext -class MainGUI(QtWidgets.QMainWindow): +class FlatCAMGUI(QtWidgets.QMainWindow): # Emitted when persistent window geometry needs to be retained geom_update = QtCore.pyqtSignal(int, int, int, int, int, name='geomUpdate') final_save = QtCore.pyqtSignal(name='saveBeforeExit') def __init__(self, app): - super(MainGUI, self).__init__() + super(FlatCAMGUI, self).__init__() self.app = app self.decimals = self.app.decimals @@ -58,6 +58,17 @@ class MainGUI(QtWidgets.QMainWindow): # ############ BUILDING THE GUI IS EXECUTED HERE ######################## # ####################################################################### + # ####################################################################### + # ####################### TCL Shell DOCK ################################ + # ####################################################################### + self.shell_dock = QtWidgets.QDockWidget("FlatCAM TCL Shell") + self.shell_dock.setObjectName('Shell_DockWidget') + self.shell_dock.setAllowedAreas(QtCore.Qt.AllDockWidgetAreas) + self.shell_dock.setFeatures(QtWidgets.QDockWidget.DockWidgetMovable | + QtWidgets.QDockWidget.DockWidgetFloatable | + QtWidgets.QDockWidget.DockWidgetClosable) + self.addDockWidget(QtCore.Qt.BottomDockWidgetArea, self.shell_dock) + # ####################################################################### # ###################### Menu BUILDING ################################## # ####################################################################### @@ -189,9 +200,9 @@ class MainGUI(QtWidgets.QMainWindow): self.menufilerunscript = QtWidgets.QAction( QtGui.QIcon(self.app.resource_location + '/script16.png'), '%s\tShift+S' % _('Run Script ...'), self) self.menufilerunscript.setToolTip( - _("Will run the opened Tcl Script thus\n" - "enabling the automation of certain\n" - "functions of FlatCAM.") + _("Will run the opened Tcl Script thus\n" + "enabling the automation of certain\n" + "functions of FlatCAM.") ) self.menufile_scripting.addAction(self.menufilenewscript) self.menufile_scripting.addAction(self.menufileopenscript) @@ -254,9 +265,9 @@ class MainGUI(QtWidgets.QMainWindow): self.menufileexportexcellon = QtWidgets.QAction( QtGui.QIcon(self.app.resource_location + '/drill32.png'), _('Export &Excellon ...'), self) self.menufileexportexcellon.setToolTip( - _("Will export an Excellon Object as Excellon file,\n" - "the coordinates format, the file units and zeros\n" - "are set in Preferences -> Excellon Export.") + _("Will export an Excellon Object as Excellon file,\n" + "the coordinates format, the file units and zeros\n" + "are set in Preferences -> Excellon Export.") ) self.menufileexport.addAction(self.menufileexportexcellon) @@ -333,16 +344,16 @@ class MainGUI(QtWidgets.QMainWindow): self.menuedit_convertjoin = self.menuedit_convert.addAction( QtGui.QIcon(self.app.resource_location + '/join16.png'), _('&Join Geo/Gerber/Exc -> Geo')) self.menuedit_convertjoin.setToolTip( - _("Merge a selection of objects, which can be of type:\n" - "- Gerber\n" - "- Excellon\n" - "- Geometry\n" - "into a new combo Geometry object.") + _("Merge a selection of objects, which can be of type:\n" + "- Gerber\n" + "- Excellon\n" + "- Geometry\n" + "into a new combo Geometry object.") ) self.menuedit_convertjoinexc = self.menuedit_convert.addAction( QtGui.QIcon(self.app.resource_location + '/join16.png'), _('Join Excellon(s) -> Excellon')) self.menuedit_convertjoinexc.setToolTip( - _("Merge a selection of Excellon objects into a new combo Excellon object.") + _("Merge a selection of Excellon objects into a new combo Excellon object.") ) self.menuedit_convertjoingrb = self.menuedit_convert.addAction( QtGui.QIcon(self.app.resource_location + '/join16.png'), _('Join Gerber(s) -> Gerber')) @@ -354,14 +365,14 @@ class MainGUI(QtWidgets.QMainWindow): self.menuedit_convert_sg2mg = self.menuedit_convert.addAction( QtGui.QIcon(self.app.resource_location + '/convert24.png'), _('Convert Single to MultiGeo')) self.menuedit_convert_sg2mg.setToolTip( - _("Will convert a Geometry object from single_geometry type\n" - "to a multi_geometry type.") + _("Will convert a Geometry object from single_geometry type\n" + "to a multi_geometry type.") ) self.menuedit_convert_mg2sg = self.menuedit_convert.addAction( QtGui.QIcon(self.app.resource_location + '/convert24.png'), _('Convert Multi to SingleGeo')) self.menuedit_convert_mg2sg.setToolTip( - _("Will convert a Geometry object from multi_geometry type\n" - "to a single_geometry type.") + _("Will convert a Geometry object from multi_geometry type\n" + "to a single_geometry type.") ) # Separator self.menuedit_convert.addSeparator() @@ -477,13 +488,11 @@ class MainGUI(QtWidgets.QMainWindow): self.menuview_toggle_grid = self.menuview.addAction( QtGui.QIcon(self.app.resource_location + '/grid32.png'), _("&Toggle Grid Snap\tG")) self.menuview_toggle_grid_lines = self.menuview.addAction( - QtGui.QIcon(self.app.resource_location + '/grid_lines32.png'), _("&Toggle Grid Lines\tAlt+G")) + QtGui.QIcon(self.app.resource_location + '/grid32.png'), _("&Toggle Grid Lines\tAlt+G")) self.menuview_toggle_axis = self.menuview.addAction( QtGui.QIcon(self.app.resource_location + '/axis32.png'), _("&Toggle Axis\tShift+G")) self.menuview_toggle_workspace = self.menuview.addAction( QtGui.QIcon(self.app.resource_location + '/workspace24.png'), _("Toggle Workspace\tShift+W")) - self.menuview_toggle_hud = self.menuview.addAction( - QtGui.QIcon(self.app.resource_location + '/hud_32.png'), _("Toggle HUD\tAlt+H")) # ######################################################################## # ########################## Objects # ################################### @@ -532,12 +541,6 @@ class MainGUI(QtWidgets.QMainWindow): QtGui.QIcon(self.app.resource_location + '/shortcuts24.png'), _('Shortcuts List\tF3')) self.menuhelp_videohelp = self.menuhelp.addAction( QtGui.QIcon(self.app.resource_location + '/youtube32.png'), _('YouTube Channel\tF4')) - - self.menuhelp.addSeparator() - - self.menuhelp_readme = self.menuhelp.addAction( - QtGui.QIcon(self.app.resource_location + '/warning.png'), _('ReadMe?')) - self.menuhelp_about = self.menuhelp.addAction( QtGui.QIcon(self.app.resource_location + '/about32.png'), _('About FlatCAM')) @@ -784,9 +787,9 @@ class MainGUI(QtWidgets.QMainWindow): self.toolbarfile.setObjectName('File_TB') self.addToolBar(self.toolbarfile) - self.toolbaredit = QtWidgets.QToolBar(_('Edit Toolbar')) - self.toolbaredit.setObjectName('Edit_TB') - self.addToolBar(self.toolbaredit) + self.toolbargeo = QtWidgets.QToolBar(_('Edit Toolbar')) + self.toolbargeo.setObjectName('Edit_TB') + self.addToolBar(self.toolbargeo) self.toolbarview = QtWidgets.QToolBar(_('View Toolbar')) self.toolbarview.setObjectName('View_TB') @@ -814,15 +817,17 @@ class MainGUI(QtWidgets.QMainWindow): self.grb_edit_toolbar.setObjectName('GrbEditor_TB') self.addToolBar(self.grb_edit_toolbar) - self.status_toolbar = QtWidgets.QToolBar(_('Grid Toolbar')) - self.status_toolbar.setObjectName('Snap_TB') - # self.addToolBar(self.status_toolbar) - self.status_toolbar.setStyleSheet( - """ - QToolBar { padding: 0; } - QToolBar QToolButton { padding: -2; margin: -2; } - """ - ) + self.snap_toolbar = QtWidgets.QToolBar(_('Grid Toolbar')) + self.snap_toolbar.setObjectName('Snap_TB') + self.addToolBar(self.snap_toolbar) + + flat_settings = QSettings("Open Source", "FlatCAM") + if flat_settings.contains("layout"): + layout = flat_settings.value('layout', type=str) + if layout == 'compact': + self.removeToolBar(self.snap_toolbar) + self.snap_toolbar.setMaximumHeight(30) + self.splitter_left.addWidget(self.snap_toolbar) # ######################################################################## # ########################## File Toolbar# ############################### @@ -840,30 +845,37 @@ class MainGUI(QtWidgets.QMainWindow): # ######################################################################## # ########################## Edit Toolbar# ############################### # ######################################################################## - self.editgeo_btn = self.toolbaredit.addAction( + self.newgeo_btn = self.toolbargeo.addAction( + QtGui.QIcon(self.app.resource_location + '/new_file_geo32.png'), _("New Blank Geometry")) + self.newgrb_btn = self.toolbargeo.addAction( + QtGui.QIcon(self.app.resource_location + '/new_file_grb32.png'), _("New Blank Gerber")) + self.newexc_btn = self.toolbargeo.addAction( + QtGui.QIcon(self.app.resource_location + '/new_file_exc32.png'), _("New Blank Excellon")) + self.toolbargeo.addSeparator() + self.editgeo_btn = self.toolbargeo.addAction( QtGui.QIcon(self.app.resource_location + '/edit_file32.png'), _("Editor")) - self.update_obj_btn = self.toolbaredit.addAction( + self.update_obj_btn = self.toolbargeo.addAction( QtGui.QIcon(self.app.resource_location + '/close_edit_file32.png'), _("Save Object and close the Editor") ) - self.toolbaredit.addSeparator() - self.copy_btn = self.toolbaredit.addAction( + self.toolbargeo.addSeparator() + self.copy_btn = self.toolbargeo.addAction( QtGui.QIcon(self.app.resource_location + '/copy_file32.png'), _("Copy")) - self.delete_btn = self.toolbaredit.addAction( - QtGui.QIcon(self.app.resource_location + '/trash32.png'), _("&Delete")) - self.toolbaredit.addSeparator() - self.distance_btn = self.toolbaredit.addAction( + self.delete_btn = self.toolbargeo.addAction( + QtGui.QIcon(self.app.resource_location + '/delete_file32.png'), _("&Delete")) + self.toolbargeo.addSeparator() + self.distance_btn = self.toolbargeo.addAction( QtGui.QIcon(self.app.resource_location + '/distance32.png'), _("Distance Tool")) - self.distance_min_btn = self.toolbaredit.addAction( + self.distance_min_btn = self.toolbargeo.addAction( QtGui.QIcon(self.app.resource_location + '/distance_min32.png'), _("Distance Min Tool")) - self.origin_btn = self.toolbaredit.addAction( + self.origin_btn = self.toolbargeo.addAction( QtGui.QIcon(self.app.resource_location + '/origin32.png'), _('Set Origin')) - self.move2origin_btn = self.toolbaredit.addAction( + self.move2origin_btn = self.toolbargeo.addAction( QtGui.QIcon(self.app.resource_location + '/origin2_32.png'), _('Move to Origin')) - self.jmp_btn = self.toolbaredit.addAction( + self.jmp_btn = self.toolbargeo.addAction( QtGui.QIcon(self.app.resource_location + '/jump_to16.png'), _('Jump to Location')) - self.locate_btn = self.toolbaredit.addAction( + self.locate_btn = self.toolbargeo.addAction( QtGui.QIcon(self.app.resource_location + '/locate32.png'), _('Locate in Object')) # ######################################################################## @@ -910,8 +922,6 @@ class MainGUI(QtWidgets.QMainWindow): QtGui.QIcon(self.app.resource_location + '/ncc16.png'), _("NCC Tool")) self.paint_btn = self.toolbartools.addAction( QtGui.QIcon(self.app.resource_location + '/paint20_1.png'), _("Paint Tool")) - self.isolation_btn = self.toolbartools.addAction( - QtGui.QIcon(self.app.resource_location + '/iso_16.png'), _("Isolation Tool")) self.toolbartools.addSeparator() self.panelize_btn = self.toolbartools.addAction( @@ -946,10 +956,6 @@ class MainGUI(QtWidgets.QMainWindow): QtGui.QIcon(self.app.resource_location + '/punch32.png'), _("Punch Gerber Tool")) self.invert_btn = self.toolbartools.addAction( QtGui.QIcon(self.app.resource_location + '/invert32.png'), _("Invert Gerber Tool")) - self.corners_tool_btn = self.toolbartools.addAction( - QtGui.QIcon(self.app.resource_location + '/corners_32.png'), _("Corner Markers Tool")) - self.etch_btn = self.toolbartools.addAction( - QtGui.QIcon(self.app.resource_location + '/etch_32.png'), _("Etch Compensation Tool")) # ######################################################################## # ########################## Excellon Editor Toolbar# #################### @@ -1077,81 +1083,34 @@ class MainGUI(QtWidgets.QMainWindow): # ######################################################################## # Snap GRID toolbar is always active to facilitate usage of measurements done on GRID - self.grid_snap_btn = self.status_toolbar.addAction( + self.grid_snap_btn = self.snap_toolbar.addAction( QtGui.QIcon(self.app.resource_location + '/grid32.png'), _('Snap to grid')) self.grid_gap_x_entry = FCEntry2() self.grid_gap_x_entry.setMaximumWidth(70) self.grid_gap_x_entry.setToolTip(_("Grid X snapping distance")) - self.status_toolbar.addWidget(self.grid_gap_x_entry) - - self.status_toolbar.addWidget(QtWidgets.QLabel(" ")) - self.grid_gap_link_cb = FCCheckBox() - self.grid_gap_link_cb.setToolTip(_("When active, value on Grid_X\n" - "is copied to the Grid_Y value.")) - self.status_toolbar.addWidget(self.grid_gap_link_cb) - self.status_toolbar.addWidget(QtWidgets.QLabel(" ")) + self.snap_toolbar.addWidget(self.grid_gap_x_entry) self.grid_gap_y_entry = FCEntry2() self.grid_gap_y_entry.setMaximumWidth(70) self.grid_gap_y_entry.setToolTip(_("Grid Y snapping distance")) - self.status_toolbar.addWidget(self.grid_gap_y_entry) - self.status_toolbar.addWidget(QtWidgets.QLabel(" ")) + self.snap_toolbar.addWidget(self.grid_gap_y_entry) - self.axis_status_label = FCLabel() - self.axis_status_label.setToolTip(_("Toggle the display of axis on canvas")) - self.axis_status_label.setPixmap(QtGui.QPixmap(self.app.resource_location + '/axis16.png')) - self.status_toolbar.addWidget(self.axis_status_label) - self.status_toolbar.addWidget(QtWidgets.QLabel(" ")) - - self.pref_status_label = FCLabel() - self.pref_status_label.setToolTip(_("Preferences")) - self.pref_status_label.setPixmap(QtGui.QPixmap(self.app.resource_location + '/settings18.png')) - self.status_toolbar.addWidget(self.pref_status_label) - self.status_toolbar.addWidget(QtWidgets.QLabel(" ")) - - self.shell_status_label = FCLabel() - self.shell_status_label.setToolTip(_("Command Line")) - self.shell_status_label.setPixmap(QtGui.QPixmap(self.app.resource_location + '/shell20.png')) - self.status_toolbar.addWidget(self.shell_status_label) - self.status_toolbar.addWidget(QtWidgets.QLabel(" ")) - - self.hud_label = FCLabel() - self.hud_label.setToolTip(_("HUD (Heads up display)")) - self.hud_label.setPixmap(QtGui.QPixmap(self.app.resource_location + '/hud16.png')) - self.status_toolbar.addWidget(self.hud_label) - self.status_toolbar.addWidget(QtWidgets.QLabel(" ")) - - self.wplace_label = FCLabel("A4") - self.wplace_label.setToolTip(_("Draw a delimiting rectangle on canvas.\n" - "The purpose is to illustrate the limits for our work.") - ) - self.wplace_label.setMargin(2) - self.status_toolbar.addWidget(self.wplace_label) - self.status_toolbar.addWidget(QtWidgets.QLabel(" ")) + self.grid_space_label = QtWidgets.QLabel(" ") + self.snap_toolbar.addWidget(self.grid_space_label) + self.grid_gap_link_cb = FCCheckBox() + self.grid_gap_link_cb.setToolTip(_("When active, value on Grid_X\n" + "is copied to the Grid_Y value.")) + self.snap_toolbar.addWidget(self.grid_gap_link_cb) self.ois_grid = OptionalInputSection(self.grid_gap_link_cb, [self.grid_gap_y_entry], logic=False) - self.corner_snap_btn = self.status_toolbar.addAction( + self.corner_snap_btn = self.snap_toolbar.addAction( QtGui.QIcon(self.app.resource_location + '/corner32.png'), _('Snap to corner')) self.snap_max_dist_entry = FCEntry() self.snap_max_dist_entry.setMaximumWidth(70) self.snap_max_dist_entry.setToolTip(_("Max. magnet distance")) - self.snap_magnet = self.status_toolbar.addWidget(self.snap_max_dist_entry) - - self.corner_snap_btn.setVisible(False) - self.snap_magnet.setVisible(False) - - # ####################################################################### - # ####################### TCL Shell DOCK ################################ - # ####################################################################### - self.shell_dock = FCDock("TCL Shell", close_callback=self.toggle_shell_ui) - self.shell_dock.setObjectName('Shell_DockWidget') - self.shell_dock.setAllowedAreas(QtCore.Qt.AllDockWidgetAreas) - self.shell_dock.setFeatures(QtWidgets.QDockWidget.DockWidgetMovable | - QtWidgets.QDockWidget.DockWidgetFloatable | - QtWidgets.QDockWidget.DockWidgetClosable) - self.addDockWidget(QtCore.Qt.BottomDockWidgetArea, self.shell_dock) + self.snap_magnet = self.snap_toolbar.addWidget(self.snap_max_dist_entry) # ######################################################################## # ########################## Notebook # ################################## @@ -1394,2320 +1353,17 @@ class MainGUI(QtWidgets.QMainWindow): # ######################################################################## # #################### SHORTCUT LIST AREA Tab # ########################## # ######################################################################## - self.shortcuts_tab = ShortcutsTab() - - # ######################################################################## - # ########################## PLOT AREA CONTEXT MENU # ################### - # ######################################################################## - self.popMenu = FCMenu() - - self.popmenu_disable = self.popMenu.addAction( - QtGui.QIcon(self.app.resource_location + '/disable32.png'), _("Toggle Visibility")) - self.popmenu_panel_toggle = self.popMenu.addAction( - QtGui.QIcon(self.app.resource_location + '/notebook16.png'), _("Toggle Panel")) - - self.popMenu.addSeparator() - self.cmenu_newmenu = self.popMenu.addMenu( - QtGui.QIcon(self.app.resource_location + '/file32.png'), _("New")) - self.popmenu_new_geo = self.cmenu_newmenu.addAction( - QtGui.QIcon(self.app.resource_location + '/new_file_geo16.png'), _("Geometry")) - self.popmenu_new_grb = self.cmenu_newmenu.addAction( - QtGui.QIcon(self.app.resource_location + '/new_file_grb16.png'), "Gerber") - self.popmenu_new_exc = self.cmenu_newmenu.addAction( - QtGui.QIcon(self.app.resource_location + '/new_file_exc16.png'), _("Excellon")) - self.cmenu_newmenu.addSeparator() - self.popmenu_new_prj = self.cmenu_newmenu.addAction( - QtGui.QIcon(self.app.resource_location + '/file16.png'), _("Project")) - self.popMenu.addSeparator() - - self.cmenu_gridmenu = self.popMenu.addMenu( - QtGui.QIcon(self.app.resource_location + '/grid32_menu.png'), _("Grids")) - - self.cmenu_viewmenu = self.popMenu.addMenu( - QtGui.QIcon(self.app.resource_location + '/view64.png'), _("View")) - self.zoomfit = self.cmenu_viewmenu.addAction( - QtGui.QIcon(self.app.resource_location + '/zoom_fit32.png'), _("Zoom Fit")) - self.clearplot = self.cmenu_viewmenu.addAction( - QtGui.QIcon(self.app.resource_location + '/clear_plot32.png'), _("Clear Plot")) - self.replot = self.cmenu_viewmenu.addAction( - QtGui.QIcon(self.app.resource_location + '/replot32.png'), _("Replot")) - self.popMenu.addSeparator() - - self.g_editor_cmenu = self.popMenu.addMenu( - QtGui.QIcon(self.app.resource_location + '/draw32.png'), _("Geo Editor")) - self.draw_line = self.g_editor_cmenu.addAction( - QtGui.QIcon(self.app.resource_location + '/path32.png'), _("Path")) - self.draw_rect = self.g_editor_cmenu.addAction( - QtGui.QIcon(self.app.resource_location + '/rectangle32.png'), _("Rectangle")) - self.g_editor_cmenu.addSeparator() - self.draw_circle = self.g_editor_cmenu.addAction( - QtGui.QIcon(self.app.resource_location + '/circle32.png'), _("Circle")) - self.draw_poly = self.g_editor_cmenu.addAction( - QtGui.QIcon(self.app.resource_location + '/polygon32.png'), _("Polygon")) - self.draw_arc = self.g_editor_cmenu.addAction( - QtGui.QIcon(self.app.resource_location + '/arc32.png'), _("Arc")) - self.g_editor_cmenu.addSeparator() - - self.draw_text = self.g_editor_cmenu.addAction( - QtGui.QIcon(self.app.resource_location + '/text32.png'), _("Text")) - self.draw_buffer = self.g_editor_cmenu.addAction( - QtGui.QIcon(self.app.resource_location + '/buffer16-2.png'), _("Buffer")) - self.draw_paint = self.g_editor_cmenu.addAction( - QtGui.QIcon(self.app.resource_location + '/paint20_1.png'), _("Paint")) - self.draw_eraser = self.g_editor_cmenu.addAction( - QtGui.QIcon(self.app.resource_location + '/eraser26.png'), _("Eraser")) - self.g_editor_cmenu.addSeparator() - - self.draw_union = self.g_editor_cmenu.addAction( - QtGui.QIcon(self.app.resource_location + '/union32.png'), _("Union")) - self.draw_intersect = self.g_editor_cmenu.addAction( - QtGui.QIcon(self.app.resource_location + '/intersection32.png'), _("Intersection")) - self.draw_substract = self.g_editor_cmenu.addAction( - QtGui.QIcon(self.app.resource_location + '/subtract32.png'), _("Subtraction")) - self.draw_cut = self.g_editor_cmenu.addAction( - QtGui.QIcon(self.app.resource_location + '/cutpath32.png'), _("Cut")) - self.draw_transform = self.g_editor_cmenu.addAction( - QtGui.QIcon(self.app.resource_location + '/transform.png'), _("Transformations")) - - self.g_editor_cmenu.addSeparator() - self.draw_move = self.g_editor_cmenu.addAction( - QtGui.QIcon(self.app.resource_location + '/move32.png'), _("Move")) - - self.grb_editor_cmenu = self.popMenu.addMenu( - QtGui.QIcon(self.app.resource_location + '/draw32.png'), _("Gerber Editor")) - self.grb_draw_pad = self.grb_editor_cmenu.addAction( - QtGui.QIcon(self.app.resource_location + '/aperture32.png'), _("Pad")) - self.grb_draw_pad_array = self.grb_editor_cmenu.addAction( - QtGui.QIcon(self.app.resource_location + '/padarray32.png'), _("Pad Array")) - self.grb_editor_cmenu.addSeparator() - - self.grb_draw_track = self.grb_editor_cmenu.addAction( - QtGui.QIcon(self.app.resource_location + '/track32.png'), _("Track")) - self.grb_draw_region = self.grb_editor_cmenu.addAction( - QtGui.QIcon(self.app.resource_location + '/polygon32.png'), _("Region")) - self.grb_draw_poligonize = self.grb_editor_cmenu.addAction( - QtGui.QIcon(self.app.resource_location + '/poligonize32.png'), _("Poligonize")) - self.grb_draw_semidisc = self.grb_editor_cmenu.addAction( - QtGui.QIcon(self.app.resource_location + '/semidisc32.png'), _("SemiDisc")) - self.grb_draw_disc = self.grb_editor_cmenu.addAction( - QtGui.QIcon(self.app.resource_location + '/disc32.png'), _("Disc")) - self.grb_editor_cmenu.addSeparator() - - self.grb_draw_buffer = self.grb_editor_cmenu.addAction( - QtGui.QIcon(self.app.resource_location + '/buffer16-2.png'), _("Buffer")) - self.grb_draw_scale = self.grb_editor_cmenu.addAction( - QtGui.QIcon(self.app.resource_location + '/scale32.png'), _("Scale")) - self.grb_draw_markarea = self.grb_editor_cmenu.addAction( - QtGui.QIcon(self.app.resource_location + '/markarea32.png'), _("Mark Area")) - self.grb_draw_eraser = self.grb_editor_cmenu.addAction( - QtGui.QIcon(self.app.resource_location + '/eraser26.png'), _("Eraser")) - self.grb_editor_cmenu.addSeparator() - - self.grb_draw_transformations = self.grb_editor_cmenu.addAction( - QtGui.QIcon(self.app.resource_location + '/transform.png'), _("Transformations")) - - self.e_editor_cmenu = self.popMenu.addMenu( - QtGui.QIcon(self.app.resource_location + '/drill32.png'), _("Exc Editor")) - self.drill = self.e_editor_cmenu.addAction( - QtGui.QIcon(self.app.resource_location + '/drill32.png'), _("Add Drill")) - self.drill_array = self.e_editor_cmenu.addAction( - QtGui.QIcon(self.app.resource_location + '/addarray32.png'), _("Add Drill Array")) - self.e_editor_cmenu.addSeparator() - self.slot = self.e_editor_cmenu.addAction( - QtGui.QIcon(self.app.resource_location + '/slot26.png'), _("Add Slot")) - self.slot_array = self.e_editor_cmenu.addAction( - QtGui.QIcon(self.app.resource_location + '/slot_array26.png'), _("Add Slot Array")) - self.e_editor_cmenu.addSeparator() - self.drill_resize = self.e_editor_cmenu.addAction( - QtGui.QIcon(self.app.resource_location + '/resize16.png'), _("Resize Drill")) - - self.popMenu.addSeparator() - self.popmenu_copy = self.popMenu.addAction(QtGui.QIcon(self.app.resource_location + '/copy32.png'), _("Copy")) - self.popmenu_delete = self.popMenu.addAction( - QtGui.QIcon(self.app.resource_location + '/delete32.png'), _("Delete")) - self.popmenu_edit = self.popMenu.addAction( - QtGui.QIcon(self.app.resource_location + '/edit32.png'), _("Edit")) - self.popmenu_save = self.popMenu.addAction( - QtGui.QIcon(self.app.resource_location + '/floppy32.png'), _("Close Editor")) - self.popmenu_save.setVisible(False) - self.popMenu.addSeparator() - - self.popmenu_move = self.popMenu.addAction( - QtGui.QIcon(self.app.resource_location + '/move32.png'), _("Move")) - self.popmenu_properties = self.popMenu.addAction( - QtGui.QIcon(self.app.resource_location + '/properties32.png'), _("Properties")) - - # ######################################################################## - # ########################## INFO BAR # ################################## - # ######################################################################## - self.infobar = self.statusBar() - self.fcinfo = FlatCAMInfoBar(app=self.app) - self.infobar.addWidget(self.fcinfo, stretch=1) - - # self.rel_position_label = QtWidgets.QLabel( - # "Dx: 0.0000   Dy: 0.0000    ") - # self.rel_position_label.setMinimumWidth(110) - # self.rel_position_label.setToolTip(_("Relative measurement.\nReference is last click position")) - # self.infobar.addWidget(self.rel_position_label) - # - self.position_label = QtWidgets.QLabel(" X: 0.0000   Y: 0.0000 ") - self.position_label.setMinimumWidth(110) - self.position_label.setToolTip(_("Absolute measurement.\n" - "Reference is (X=0, Y= 0) position")) - self.infobar.addWidget(self.position_label) - - self.status_toolbar.setMaximumHeight(24) - self.infobar.addWidget(self.status_toolbar) - - self.units_label = QtWidgets.QLabel("[mm]") - self.units_label.setToolTip(_("Application units")) - self.units_label.setMargin(2) - self.infobar.addWidget(self.units_label) - - # disabled - # self.progress_bar = QtWidgets.QProgressBar() - # self.progress_bar.setMinimum(0) - # self.progress_bar.setMaximum(100) - # infobar.addWidget(self.progress_bar) - - # ######################################################################## - # ########################## SET GUI Elements # ########################## - # ######################################################################## - self.app_icon = QtGui.QIcon() - self.app_icon.addFile(self.app.resource_location + '/flatcam_icon16.png', QtCore.QSize(16, 16)) - self.app_icon.addFile(self.app.resource_location + '/flatcam_icon24.png', QtCore.QSize(24, 24)) - self.app_icon.addFile(self.app.resource_location + '/flatcam_icon32.png', QtCore.QSize(32, 32)) - self.app_icon.addFile(self.app.resource_location + '/flatcam_icon48.png', QtCore.QSize(48, 48)) - self.app_icon.addFile(self.app.resource_location + '/flatcam_icon128.png', QtCore.QSize(128, 128)) - self.app_icon.addFile(self.app.resource_location + '/flatcam_icon256.png', QtCore.QSize(256, 256)) - self.setWindowIcon(self.app_icon) - - self.setGeometry(100, 100, 1024, 650) - self.setWindowTitle('FlatCAM %s %s - %s' % - (self.app.version, - ('BETA' if self.app.beta else ''), - platform.architecture()[0]) - ) - - self.filename = "" - self.units = "" - self.setAcceptDrops(True) - - # ######################################################################## - # ########################## Build GUI # ################################# - # ######################################################################## - self.grid_snap_btn.setCheckable(True) - self.corner_snap_btn.setCheckable(True) - self.update_obj_btn.setEnabled(False) - # start with GRID activated - self.grid_snap_btn.trigger() - - self.g_editor_cmenu.menuAction().setVisible(False) - self.grb_editor_cmenu.menuAction().setVisible(False) - self.e_editor_cmenu.menuAction().setVisible(False) - - # ######################################################################## - # ######################## BUILD PREFERENCES ############################# - # ######################################################################## - self.general_defaults_form = GeneralPreferencesUI(decimals=self.decimals) - self.gerber_defaults_form = GerberPreferencesUI(decimals=self.decimals) - self.excellon_defaults_form = ExcellonPreferencesUI(decimals=self.decimals) - self.geometry_defaults_form = GeometryPreferencesUI(decimals=self.decimals) - self.cncjob_defaults_form = CNCJobPreferencesUI(decimals=self.decimals) - self.tools_defaults_form = ToolsPreferencesUI(decimals=self.decimals) - self.tools2_defaults_form = Tools2PreferencesUI(decimals=self.decimals) - self.util_defaults_form = UtilPreferencesUI(decimals=self.decimals) - - QtWidgets.qApp.installEventFilter(self) - - # ######################################################################## - # ################## RESTORE THE TOOLBAR STATE from file ################# - # ######################################################################## - flat_settings = QSettings("Open Source", "FlatCAM") - if flat_settings.contains("saved_gui_state"): - saved_gui_state = flat_settings.value('saved_gui_state') - self.restoreState(saved_gui_state) - log.debug("MainGUI.__init__() --> UI state restored from QSettings.") - - self.corner_snap_btn.setVisible(False) - self.snap_magnet.setVisible(False) - - if flat_settings.contains("layout"): - layout = flat_settings.value('layout', type=str) - self.exc_edit_toolbar.setDisabled(True) - self.geo_edit_toolbar.setDisabled(True) - self.grb_edit_toolbar.setDisabled(True) - - log.debug("MainGUI.__init__() --> UI layout restored from QSettings. Layout = %s" % str(layout)) - else: - self.exc_edit_toolbar.setDisabled(True) - self.geo_edit_toolbar.setDisabled(True) - self.grb_edit_toolbar.setDisabled(True) - - flat_settings.setValue('layout', "standard") - # This will write the setting to the platform specific storage. - del flat_settings - log.debug("MainGUI.__init__() --> UI layout restored from defaults. QSettings set to 'standard'") - - # construct the Toolbar Lock menu entry to the context menu of the QMainWindow - self.lock_action = QtWidgets.QAction() - self.lock_action.setText(_("Lock Toolbars")) - self.lock_action.setCheckable(True) - - qsettings = QSettings("Open Source", "FlatCAM") - if qsettings.contains("toolbar_lock"): - lock_val = settings.value('toolbar_lock') - if lock_val == 'true': - lock_state = True - self.lock_action.setChecked(True) - else: - - lock_state = False - self.lock_action.setChecked(False) - else: - lock_state = False - qsettings.setValue('toolbar_lock', lock_state) - - # This will write the setting to the platform specific storage. - del qsettings - - self.lock_toolbar(lock=lock_state) - - self.lock_action.triggered[bool].connect(self.lock_toolbar) - - self.pref_open_button.clicked.connect(self.on_preferences_open_folder) - self.clear_btn.clicked.connect(self.on_gui_clear) - - self.wplace_label.clicked.connect(self.app.on_workspace_toggle) - self.shell_status_label.clicked.connect(self.toggle_shell_ui) - - # to be used in the future - # self.plot_tab_area.tab_attached.connect(lambda x: print(x)) - # self.plot_tab_area.tab_detached.connect(lambda x: print(x)) - - # restore the toolbar view - self.restore_toolbar_view() - - # restore the GUI geometry - self.restore_main_win_geom() - - # %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - # %%%%%%%%%%%%%%%%% GUI Building FINISHED %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - # %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - # Variable to store the status of the fullscreen event - self.toggle_fscreen = False - self.x_pos = None - self.y_pos = None - self.width = None - self.height = None - - self.geom_update[int, int, int, int, int].connect(self.save_geometry) - self.final_save.connect(self.app.final_save) - - def save_geometry(self, x, y, width, height, notebook_width): - """ - Will save the application geometry and positions in the defaults dicitionary to be restored at the next - launch of the application. - - :param x: X position of the main window - :param y: Y position of the main window - :param width: width of the main window - :param height: height of the main window - :param notebook_width: the notebook width is adjustable so it get saved here, too. - - :return: None - """ - self.app.defaults["global_def_win_x"] = x - self.app.defaults["global_def_win_y"] = y - self.app.defaults["global_def_win_w"] = width - self.app.defaults["global_def_win_h"] = height - self.app.defaults["global_def_notebook_width"] = notebook_width - self.app.preferencesUiManager.save_defaults() - - def restore_main_win_geom(self): - try: - self.setGeometry(self.app.defaults["global_def_win_x"], - self.app.defaults["global_def_win_y"], - self.app.defaults["global_def_win_w"], - self.app.defaults["global_def_win_h"]) - self.splitter.setSizes([self.app.defaults["global_def_notebook_width"], 0]) - except KeyError as e: - log.debug("AppGUI.MainGUI.restore_main_win_geom() --> %s" % str(e)) - - def restore_toolbar_view(self): - """ - Some toolbars may be hidden by user and here we restore the state of the toolbars visibility that - was saved in the defaults dictionary. - - :return: None - """ - tb = self.app.defaults["global_toolbar_view"] - - if tb & 1: - self.toolbarfile.setVisible(True) - else: - self.toolbarfile.setVisible(False) - - if tb & 2: - self.toolbaredit.setVisible(True) - else: - self.toolbaredit.setVisible(False) - - if tb & 4: - self.toolbarview.setVisible(True) - else: - self.toolbarview.setVisible(False) - - if tb & 8: - self.toolbartools.setVisible(True) - else: - self.toolbartools.setVisible(False) - - if tb & 16: - self.exc_edit_toolbar.setVisible(True) - else: - self.exc_edit_toolbar.setVisible(False) - - if tb & 32: - self.geo_edit_toolbar.setVisible(True) - else: - self.geo_edit_toolbar.setVisible(False) - - if tb & 64: - self.grb_edit_toolbar.setVisible(True) - else: - self.grb_edit_toolbar.setVisible(False) - - # if tb & 128: - # self.ui.status_toolbar.setVisible(True) - # else: - # self.ui.status_toolbar.setVisible(False) - - # Grid Toolbar is always active now - self.status_toolbar.setVisible(True) - - if tb & 256: - self.toolbarshell.setVisible(True) - else: - self.toolbarshell.setVisible(False) - - def eventFilter(self, obj, event): - """ - Filter the ToolTips display based on a Preferences setting - - :param obj: - :param event: QT event to filter - :return: - """ - if self.app.defaults["global_toggle_tooltips"] is False: - if event.type() == QtCore.QEvent.ToolTip: - return True - else: - return False - - return False - - def on_preferences_open_folder(self): - """ - Will open an Explorer window set to the folder path where the FlatCAM preferences files are usually saved. - - :return: None - """ - - if sys.platform == 'win32': - subprocess.Popen('explorer %s' % self.app.data_path) - elif sys.platform == 'darwin': - os.system('open "%s"' % self.app.data_path) - else: - subprocess.Popen(['xdg-open', self.app.data_path]) - self.app.inform.emit('[success] %s' % _("FlatCAM Preferences Folder opened.")) - - def on_gui_clear(self): - theme_settings = QtCore.QSettings("Open Source", "FlatCAM") - theme_settings.setValue('theme', 'white') - - del theme_settings - - resource_loc = self.app.resource_location - - msgbox = QtWidgets.QMessageBox() - msgbox.setText(_("Are you sure you want to delete the GUI Settings? \n")) - msgbox.setWindowTitle(_("Clear GUI Settings")) - msgbox.setWindowIcon(QtGui.QIcon(resource_loc + '/trash32.png')) - msgbox.setIcon(QtWidgets.QMessageBox.Question) - - bt_yes = msgbox.addButton(_('Yes'), QtWidgets.QMessageBox.YesRole) - bt_no = msgbox.addButton(_('No'), QtWidgets.QMessageBox.NoRole) - - msgbox.setDefaultButton(bt_no) - msgbox.exec_() - response = msgbox.clickedButton() - - if response == bt_yes: - qsettings = QSettings("Open Source", "FlatCAM") - for key in qsettings.allKeys(): - qsettings.remove(key) - # This will write the setting to the platform specific storage. - del qsettings - - def populate_toolbars(self): - """ - Will populate the App Toolbars with their actions - - :return: None - """ - - # ######################################################################## - # ## File Toolbar # ## - # ######################################################################## - self.file_open_gerber_btn = self.toolbarfile.addAction( - QtGui.QIcon(self.app.resource_location + '/flatcam_icon32.png'), _("Open Gerber")) - self.file_open_excellon_btn = self.toolbarfile.addAction( - QtGui.QIcon(self.app.resource_location + '/drill32.png'), _("Open Excellon")) - self.toolbarfile.addSeparator() - self.file_open_btn = self.toolbarfile.addAction( - QtGui.QIcon(self.app.resource_location + '/folder32.png'), _("Open project")) - self.file_save_btn = self.toolbarfile.addAction( - QtGui.QIcon(self.app.resource_location + '/project_save32.png'), _("Save project")) - - # ######################################################################## - # ## Edit Toolbar # ## - # ######################################################################## - self.editgeo_btn = self.toolbaredit.addAction( - QtGui.QIcon(self.app.resource_location + '/edit32.png'), _("Editor")) - self.update_obj_btn = self.toolbaredit.addAction( - QtGui.QIcon(self.app.resource_location + '/close_edit_file32.png'), - _("Save Object and close the Editor") - ) - - self.toolbaredit.addSeparator() - self.copy_btn = self.toolbaredit.addAction( - QtGui.QIcon(self.app.resource_location + '/copy_file32.png'), _("Copy")) - self.delete_btn = self.toolbaredit.addAction( - QtGui.QIcon(self.app.resource_location + '/trash32.png'), _("&Delete")) - self.toolbaredit.addSeparator() - self.distance_btn = self.toolbaredit.addAction( - QtGui.QIcon(self.app.resource_location + '/distance32.png'), _("Distance Tool")) - self.distance_min_btn = self.toolbaredit.addAction( - QtGui.QIcon(self.app.resource_location + '/distance_min32.png'), _("Distance Min Tool")) - self.origin_btn = self.toolbaredit.addAction( - QtGui.QIcon(self.app.resource_location + '/origin32.png'), _('Set Origin')) - self.move2origin_btn = self.toolbaredit.addAction( - QtGui.QIcon(self.app.resource_location + '/origin2_32.png'), _('Move to Origin')) - self.jmp_btn = self.toolbaredit.addAction( - QtGui.QIcon(self.app.resource_location + '/jump_to16.png'), _('Jump to Location')) - self.locate_btn = self.toolbaredit.addAction( - QtGui.QIcon(self.app.resource_location + '/locate32.png'), _('Locate in Object')) - - # ######################################################################## - # ########################## View Toolbar# ############################### - # ######################################################################## - self.replot_btn = self.toolbarview.addAction( - QtGui.QIcon(self.app.resource_location + '/replot32.png'), _("&Replot")) - self.clear_plot_btn = self.toolbarview.addAction( - QtGui.QIcon(self.app.resource_location + '/clear_plot32.png'), _("&Clear plot")) - self.zoom_in_btn = self.toolbarview.addAction( - QtGui.QIcon(self.app.resource_location + '/zoom_in32.png'), _("Zoom In")) - self.zoom_out_btn = self.toolbarview.addAction( - QtGui.QIcon(self.app.resource_location + '/zoom_out32.png'), _("Zoom Out")) - self.zoom_fit_btn = self.toolbarview.addAction( - QtGui.QIcon(self.app.resource_location + '/zoom_fit32.png'), _("Zoom Fit")) - - # ######################################################################## - # ########################## Shell Toolbar# ############################## - # ######################################################################## - self.shell_btn = self.toolbarshell.addAction( - QtGui.QIcon(self.app.resource_location + '/shell32.png'), _("&Command Line")) - self.new_script_btn = self.toolbarshell.addAction( - QtGui.QIcon(self.app.resource_location + '/script_new24.png'), _('New Script ...')) - self.open_script_btn = self.toolbarshell.addAction( - QtGui.QIcon(self.app.resource_location + '/open_script32.png'), _('Open Script ...')) - self.run_script_btn = self.toolbarshell.addAction( - QtGui.QIcon(self.app.resource_location + '/script16.png'), _('Run Script ...')) - - # ######################################################################### - # ######################### Tools Toolbar ################################# - # ######################################################################### - self.dblsided_btn = self.toolbartools.addAction( - QtGui.QIcon(self.app.resource_location + '/doubleside32.png'), _("2Sided Tool")) - self.align_btn = self.toolbartools.addAction( - QtGui.QIcon(self.app.resource_location + '/align32.png'), _("Align Objects Tool")) - self.extract_btn = self.toolbartools.addAction( - QtGui.QIcon(self.app.resource_location + '/extract_drill32.png'), _("Extract Drills Tool")) - - self.cutout_btn = self.toolbartools.addAction( - QtGui.QIcon(self.app.resource_location + '/cut16_bis.png'), _("&Cutout Tool")) - self.ncc_btn = self.toolbartools.addAction( - QtGui.QIcon(self.app.resource_location + '/ncc16.png'), _("NCC Tool")) - self.paint_btn = self.toolbartools.addAction( - QtGui.QIcon(self.app.resource_location + '/paint20_1.png'), _("Paint Tool")) - self.isolation_btn = self.toolbartools.addAction( - QtGui.QIcon(self.app.resource_location + '/iso_16.png'), _("Isolation Tool")) - self.toolbartools.addSeparator() - - self.panelize_btn = self.toolbartools.addAction( - QtGui.QIcon(self.app.resource_location + '/panelize32.png'), _("Panel Tool")) - self.film_btn = self.toolbartools.addAction( - QtGui.QIcon(self.app.resource_location + '/film16.png'), _("Film Tool")) - self.solder_btn = self.toolbartools.addAction( - QtGui.QIcon(self.app.resource_location + '/solderpastebis32.png'), _("SolderPaste Tool")) - self.sub_btn = self.toolbartools.addAction( - QtGui.QIcon(self.app.resource_location + '/sub32.png'), _("Subtract Tool")) - self.rules_btn = self.toolbartools.addAction( - QtGui.QIcon(self.app.resource_location + '/rules32.png'), _("Rules Tool")) - self.optimal_btn = self.toolbartools.addAction( - QtGui.QIcon(self.app.resource_location + '/open_excellon32.png'), _("Optimal Tool")) - - self.toolbartools.addSeparator() - - self.calculators_btn = self.toolbartools.addAction( - QtGui.QIcon(self.app.resource_location + '/calculator24.png'), _("Calculators Tool")) - self.transform_btn = self.toolbartools.addAction( - QtGui.QIcon(self.app.resource_location + '/transform.png'), _("Transform Tool")) - self.qrcode_btn = self.toolbartools.addAction( - QtGui.QIcon(self.app.resource_location + '/qrcode32.png'), _("QRCode Tool")) - self.copperfill_btn = self.toolbartools.addAction( - QtGui.QIcon(self.app.resource_location + '/copperfill32.png'), _("Copper Thieving Tool")) - - self.fiducials_btn = self.toolbartools.addAction( - QtGui.QIcon(self.app.resource_location + '/fiducials_32.png'), _("Fiducials Tool")) - self.cal_btn = self.toolbartools.addAction( - QtGui.QIcon(self.app.resource_location + '/calibrate_32.png'), _("Calibration Tool")) - self.punch_btn = self.toolbartools.addAction( - QtGui.QIcon(self.app.resource_location + '/punch32.png'), _("Punch Gerber Tool")) - self.invert_btn = self.toolbartools.addAction( - QtGui.QIcon(self.app.resource_location + '/invert32.png'), _("Invert Gerber Tool")) - self.corners_tool_btn = self.toolbartools.addAction( - QtGui.QIcon(self.app.resource_location + '/corners_32.png'), _("Corner Markers Tool")) - self.etch_btn = self.toolbartools.addAction( - QtGui.QIcon(self.app.resource_location + '/etch_32.png'), _("Etch Compensation Tool")) - - # ######################################################################## - # ## Excellon Editor Toolbar # ## - # ######################################################################## - self.select_drill_btn = self.exc_edit_toolbar.addAction( - QtGui.QIcon(self.app.resource_location + '/pointer32.png'), _("Select")) - self.add_drill_btn = self.exc_edit_toolbar.addAction( - QtGui.QIcon(self.app.resource_location + '/plus16.png'), _('Add Drill Hole')) - self.add_drill_array_btn = self.exc_edit_toolbar.addAction( - QtGui.QIcon(self.app.resource_location + '/addarray16.png'), _('Add Drill Hole Array')) - self.resize_drill_btn = self.exc_edit_toolbar.addAction( - QtGui.QIcon(self.app.resource_location + '/resize16.png'), _('Resize Drill')) - self.add_slot_btn = self.exc_edit_toolbar.addAction( - QtGui.QIcon(self.app.resource_location + '/slot26.png'), _('Add Slot')) - self.add_slot_array_btn = self.exc_edit_toolbar.addAction( - QtGui.QIcon(self.app.resource_location + '/slot_array26.png'), _('Add Slot Array')) - self.exc_edit_toolbar.addSeparator() - - self.copy_drill_btn = self.exc_edit_toolbar.addAction( - QtGui.QIcon(self.app.resource_location + '/copy32.png'), _('Copy Drill')) - self.delete_drill_btn = self.exc_edit_toolbar.addAction( - QtGui.QIcon(self.app.resource_location + '/trash32.png'), _("Delete Drill")) - - self.exc_edit_toolbar.addSeparator() - self.move_drill_btn = self.exc_edit_toolbar.addAction( - QtGui.QIcon(self.app.resource_location + '/move32.png'), _("Move Drill")) - - # ######################################################################## - # ## Geometry Editor Toolbar # ## - # ######################################################################## - self.geo_select_btn = self.geo_edit_toolbar.addAction( - QtGui.QIcon(self.app.resource_location + '/pointer32.png'), _("Select 'Esc'")) - self.geo_add_circle_btn = self.geo_edit_toolbar.addAction( - QtGui.QIcon(self.app.resource_location + '/circle32.png'), _('Add Circle')) - self.geo_add_arc_btn = self.geo_edit_toolbar.addAction( - QtGui.QIcon(self.app.resource_location + '/arc32.png'), _('Add Arc')) - self.geo_add_rectangle_btn = self.geo_edit_toolbar.addAction( - QtGui.QIcon(self.app.resource_location + '/rectangle32.png'), _('Add Rectangle')) - - self.geo_edit_toolbar.addSeparator() - self.geo_add_path_btn = self.geo_edit_toolbar.addAction( - QtGui.QIcon(self.app.resource_location + '/path32.png'), _('Add Path')) - self.geo_add_polygon_btn = self.geo_edit_toolbar.addAction( - QtGui.QIcon(self.app.resource_location + '/polygon32.png'), _('Add Polygon')) - self.geo_edit_toolbar.addSeparator() - self.geo_add_text_btn = self.geo_edit_toolbar.addAction( - QtGui.QIcon(self.app.resource_location + '/text32.png'), _('Add Text')) - self.geo_add_buffer_btn = self.geo_edit_toolbar.addAction( - QtGui.QIcon(self.app.resource_location + '/buffer16-2.png'), _('Add Buffer')) - self.geo_add_paint_btn = self.geo_edit_toolbar.addAction( - QtGui.QIcon(self.app.resource_location + '/paint20_1.png'), _('Paint Shape')) - self.geo_eraser_btn = self.geo_edit_toolbar.addAction( - QtGui.QIcon(self.app.resource_location + '/eraser26.png'), _('Eraser')) - - self.geo_edit_toolbar.addSeparator() - self.geo_union_btn = self.geo_edit_toolbar.addAction( - QtGui.QIcon(self.app.resource_location + '/union32.png'), _('Polygon Union')) - self.geo_explode_btn = self.geo_edit_toolbar.addAction( - QtGui.QIcon(self.app.resource_location + '/explode32.png'), _('Polygon Explode')) - - self.geo_intersection_btn = self.geo_edit_toolbar.addAction( - QtGui.QIcon(self.app.resource_location + '/intersection32.png'), _('Polygon Intersection')) - self.geo_subtract_btn = self.geo_edit_toolbar.addAction( - QtGui.QIcon(self.app.resource_location + '/subtract32.png'), _('Polygon Subtraction')) - - self.geo_edit_toolbar.addSeparator() - self.geo_cutpath_btn = self.geo_edit_toolbar.addAction( - QtGui.QIcon(self.app.resource_location + '/cutpath32.png'), _('Cut Path')) - self.geo_copy_btn = self.geo_edit_toolbar.addAction( - QtGui.QIcon(self.app.resource_location + '/copy32.png'), _("Copy Objects")) - self.geo_delete_btn = self.geo_edit_toolbar.addAction( - QtGui.QIcon(self.app.resource_location + '/trash32.png'), _("Delete Shape")) - self.geo_transform_btn = self.geo_edit_toolbar.addAction( - QtGui.QIcon(self.app.resource_location + '/transform.png'), _("Transformations")) - - self.geo_edit_toolbar.addSeparator() - self.geo_move_btn = self.geo_edit_toolbar.addAction( - QtGui.QIcon(self.app.resource_location + '/move32.png'), _("Move Objects")) - - # ######################################################################## - # ## Gerber Editor Toolbar # ## - # ######################################################################## - self.grb_select_btn = self.grb_edit_toolbar.addAction( - QtGui.QIcon(self.app.resource_location + '/pointer32.png'), _("Select")) - self.grb_add_pad_btn = self.grb_edit_toolbar.addAction( - QtGui.QIcon(self.app.resource_location + '/aperture32.png'), _("Add Pad")) - self.add_pad_ar_btn = self.grb_edit_toolbar.addAction( - QtGui.QIcon(self.app.resource_location + '/padarray32.png'), _('Add Pad Array')) - self.grb_add_track_btn = self.grb_edit_toolbar.addAction( - QtGui.QIcon(self.app.resource_location + '/track32.png'), _("Add Track")) - self.grb_add_region_btn = self.grb_edit_toolbar.addAction( - QtGui.QIcon(self.app.resource_location + '/polygon32.png'), _("Add Region")) - self.grb_convert_poly_btn = self.grb_edit_toolbar.addAction( - QtGui.QIcon(self.app.resource_location + '/poligonize32.png'), _("Poligonize")) - - self.grb_add_semidisc_btn = self.grb_edit_toolbar.addAction( - QtGui.QIcon(self.app.resource_location + '/semidisc32.png'), _("SemiDisc")) - self.grb_add_disc_btn = self.grb_edit_toolbar.addAction( - QtGui.QIcon(self.app.resource_location + '/disc32.png'), _("Disc")) - self.grb_edit_toolbar.addSeparator() - - self.aperture_buffer_btn = self.grb_edit_toolbar.addAction( - QtGui.QIcon(self.app.resource_location + '/buffer16-2.png'), _('Buffer')) - self.aperture_scale_btn = self.grb_edit_toolbar.addAction( - QtGui.QIcon(self.app.resource_location + '/scale32.png'), _('Scale')) - self.aperture_markarea_btn = self.grb_edit_toolbar.addAction( - QtGui.QIcon(self.app.resource_location + '/markarea32.png'), _('Mark Area')) - self.aperture_eraser_btn = self.grb_edit_toolbar.addAction( - QtGui.QIcon(self.app.resource_location + '/eraser26.png'), _('Eraser')) - - self.grb_edit_toolbar.addSeparator() - self.aperture_copy_btn = self.grb_edit_toolbar.addAction( - QtGui.QIcon(self.app.resource_location + '/copy32.png'), _("Copy")) - self.aperture_delete_btn = self.grb_edit_toolbar.addAction( - QtGui.QIcon(self.app.resource_location + '/trash32.png'), _("Delete")) - self.grb_transform_btn = self.grb_edit_toolbar.addAction( - QtGui.QIcon(self.app.resource_location + '/transform.png'), _("Transformations")) - self.grb_edit_toolbar.addSeparator() - self.aperture_move_btn = self.grb_edit_toolbar.addAction( - QtGui.QIcon(self.app.resource_location + '/move32.png'), _("Move")) - - self.corner_snap_btn.setVisible(False) - self.snap_magnet.setVisible(False) - - qsettings = QSettings("Open Source", "FlatCAM") - if qsettings.contains("layout"): - layout = qsettings.value('layout', type=str) - - # on 'minimal' layout only some toolbars are active - if layout != 'minimal': - self.exc_edit_toolbar.setVisible(True) - self.exc_edit_toolbar.setDisabled(True) - self.geo_edit_toolbar.setVisible(True) - self.geo_edit_toolbar.setDisabled(True) - self.grb_edit_toolbar.setVisible(True) - self.grb_edit_toolbar.setDisabled(True) - - def keyPressEvent(self, event): - """ - Key event handler for the entire app. - Some of the key events are also treated locally in the FlatCAM editors - - :param event: QT event - :return: - """ - modifiers = QtWidgets.QApplication.keyboardModifiers() - active = self.app.collection.get_active() - selected = self.app.collection.get_selected() - names_list = self.app.collection.get_names() - - matplotlib_key_flag = False - - # events out of the self.app.collection view (it's about Project Tab) are of type int - if type(event) is int: - key = event - # events from the GUI are of type QKeyEvent - elif type(event) == QtGui.QKeyEvent: - key = event.key() - elif isinstance(event, mpl_key_event): # MatPlotLib key events are trickier to interpret than the rest - matplotlib_key_flag = True - - key = event.key - key = QtGui.QKeySequence(key) - - # check for modifiers - key_string = key.toString().lower() - if '+' in key_string: - mod, __, key_text = key_string.rpartition('+') - if mod.lower() == 'ctrl': - modifiers = QtCore.Qt.ControlModifier - elif mod.lower() == 'alt': - modifiers = QtCore.Qt.AltModifier - elif mod.lower() == 'shift': - modifiers = QtCore.Qt.ShiftModifier - else: - modifiers = QtCore.Qt.NoModifier - key = QtGui.QKeySequence(key_text) - - # events from Vispy are of type KeyEvent - else: - key = event.key - - if self.app.call_source == 'app': - # CTRL + ALT - if modifiers == QtCore.Qt.ControlModifier | QtCore.Qt.AltModifier: - if key == QtCore.Qt.Key_X: - self.app.abort_all_tasks() - return - # CTRL + SHIFT - if modifiers == QtCore.Qt.ControlModifier | QtCore.Qt.ShiftModifier: - if key == QtCore.Qt.Key_S: - self.app.on_file_saveprojectas() - return - # CTRL - elif modifiers == QtCore.Qt.ControlModifier: - # Select All - if key == QtCore.Qt.Key_A: - self.app.on_selectall() - - # Copy an FlatCAM object - if key == QtCore.Qt.Key_C: - widget_name = self.plot_tab_area.currentWidget().objectName() - if widget_name == 'database_tab': - # Tools DB saved, update flag - self.app.tools_db_changed_flag = True - self.app.tools_db_tab.on_tool_copy() - return - - self.app.on_copy_command() - - # Copy an FlatCAM object - if key == QtCore.Qt.Key_D: - self.app.on_tools_database() - - # Open Excellon file - if key == QtCore.Qt.Key_E: - self.app.on_fileopenexcellon(signal=None) - - # Open Gerber file - if key == QtCore.Qt.Key_G: - widget_name = self.plot_tab_area.currentWidget().objectName() - if 'editor' in widget_name.lower(): - self.app.goto_text_line() - else: - self.app.on_fileopengerber(signal=None) - - # Distance Tool - if key == QtCore.Qt.Key_M: - self.app.distance_tool.run() - - # Create New Project - if key == QtCore.Qt.Key_N: - self.app.on_file_new_click() - - # Open Project - if key == QtCore.Qt.Key_O: - self.app.on_file_openproject(signal=None) - - # Open Project - if key == QtCore.Qt.Key_P: - self.app.on_file_save_objects_pdf(use_thread=True) - - # PDF Import - if key == QtCore.Qt.Key_Q: - self.app.pdf_tool.run() - - # Save Project - if key == QtCore.Qt.Key_S: - widget_name = self.plot_tab_area.currentWidget().objectName() - if widget_name == 'preferences_tab': - self.app.preferencesUiManager.on_save_button(save_to_file=False) - return - - if widget_name == 'database_tab': - # Tools DB saved, update flag - self.app.tools_db_changed_flag = False - self.app.tools_db_tab.on_save_tools_db() - return - - self.app.on_file_saveproject() - - # Toggle Plot Area - if key == QtCore.Qt.Key_F10 or key == 'F10': - self.on_toggle_plotarea() - - return - # SHIFT - elif modifiers == QtCore.Qt.ShiftModifier: - - # Copy Object Name - if key == QtCore.Qt.Key_C: - self.app.on_copy_name() - - # Toggle Code Editor - if key == QtCore.Qt.Key_E: - self.app.on_toggle_code_editor() - - # Toggle axis - if key == QtCore.Qt.Key_G: - self.app.plotcanvas.on_toggle_axis() - - # Toggle HUD (Heads-Up Display) - if key == QtCore.Qt.Key_H: - self.app.plotcanvas.on_toggle_hud() - # Locate in Object - if key == QtCore.Qt.Key_J: - self.app.on_locate(obj=self.app.collection.get_active()) - - # Run Distance Minimum Tool - if key == QtCore.Qt.Key_M: - self.app.distance_min_tool.run() - return - - # Open Preferences Window - if key == QtCore.Qt.Key_P: - self.app.on_preferences() - return - - # Rotate Object by 90 degree CCW - if key == QtCore.Qt.Key_R: - self.app.on_rotate(silent=True, preset=-float(self.app.defaults['tools_transform_rotate'])) - return - - # Run a Script - if key == QtCore.Qt.Key_S: - self.app.on_filerunscript() - return - - # Toggle Workspace - if key == QtCore.Qt.Key_W: - self.app.on_workspace_toggle() - return - - # Skew on X axis - if key == QtCore.Qt.Key_X: - self.app.on_skewx() - return - - # Skew on Y axis - if key == QtCore.Qt.Key_Y: - self.app.on_skewy() - return - # ALT - elif modifiers == QtCore.Qt.AltModifier: - # Eanble all plots - if key == Qt.Key_1: - self.app.enable_all_plots() - - # Disable all plots - if key == Qt.Key_2: - self.app.disable_all_plots() - - # Disable all other plots - if key == Qt.Key_3: - self.app.disable_other_plots() - - # Align in Object Tool - if key == QtCore.Qt.Key_A: - self.app.align_objects_tool.run(toggle=True) - - # Calculator Tool - if key == QtCore.Qt.Key_C: - self.app.calculator_tool.run(toggle=True) - - # 2-Sided PCB Tool - if key == QtCore.Qt.Key_D: - self.app.dblsidedtool.run(toggle=True) - return - - # Extract Drills Tool - if key == QtCore.Qt.Key_E: - # self.app.cal_exc_tool.run(toggle=True) - self.app.edrills_tool.run(toggle=True) - return - - # Fiducials Tool - if key == QtCore.Qt.Key_F: - self.app.fiducial_tool.run(toggle=True) - return - - # Toggle Grid lines - if key == QtCore.Qt.Key_G: - self.app.plotcanvas.on_toggle_grid_lines() - return - - # Punch Gerber Tool - if key == QtCore.Qt.Key_H: - self.app.punch_tool.run(toggle=True) - - # Isolation Tool - if key == QtCore.Qt.Key_I: - self.app.isolation_tool.run(toggle=True) - - # Copper Thieving Tool - if key == QtCore.Qt.Key_J: - self.app.copper_thieving_tool.run(toggle=True) - return - - # Solder Paste Dispensing Tool - if key == QtCore.Qt.Key_K: - self.app.paste_tool.run(toggle=True) - return - - # Film Tool - if key == QtCore.Qt.Key_L: - self.app.film_tool.run(toggle=True) - return - - # Corner Markers Tool - if key == QtCore.Qt.Key_M: - self.app.corners_tool.run(toggle=True) - return - - # Non-Copper Clear Tool - if key == QtCore.Qt.Key_N: - self.app.ncclear_tool.run(toggle=True) - return - - # Optimal Tool - if key == QtCore.Qt.Key_O: - self.app.optimal_tool.run(toggle=True) - return - - # Paint Tool - if key == QtCore.Qt.Key_P: - self.app.paint_tool.run(toggle=True) - return - - # QRCode Tool - if key == QtCore.Qt.Key_Q: - self.app.qrcode_tool.run() - return - - # Rules Tool - if key == QtCore.Qt.Key_R: - self.app.rules_tool.run(toggle=True) - return - - # View Source Object Content - if key == QtCore.Qt.Key_S: - self.app.on_view_source() - return - - # Transformation Tool - if key == QtCore.Qt.Key_T: - self.app.transform_tool.run(toggle=True) - return - - # Substract Tool - if key == QtCore.Qt.Key_W: - self.app.sub_tool.run(toggle=True) - return - - # Cutout Tool - if key == QtCore.Qt.Key_X: - self.app.cutout_tool.run(toggle=True) - return - - # Panelize Tool - if key == QtCore.Qt.Key_Z: - self.app.panelize_tool.run(toggle=True) - return - - # Toggle Fullscreen - if key == QtCore.Qt.Key_F10 or key == 'F10': - self.on_fullscreen() - return - # NO MODIFIER - elif modifiers == QtCore.Qt.NoModifier: - # Open Manual - if key == QtCore.Qt.Key_F1 or key == 'F1': - webbrowser.open(self.app.manual_url) - - # Show shortcut list - if key == QtCore.Qt.Key_F3 or key == 'F3': - self.app.on_shortcut_list() - - # Open Video Help - if key == QtCore.Qt.Key_F4 or key == 'F4': - webbrowser.open(self.app.video_url) - - # Open Video Help - if key == QtCore.Qt.Key_F5 or key == 'F5': - self.app.plot_all() - - # Switch to Project Tab - if key == QtCore.Qt.Key_1: - self.app.on_select_tab('project') - - # Switch to Selected Tab - if key == QtCore.Qt.Key_2: - self.app.on_select_tab('selected') - - # Switch to Tool Tab - if key == QtCore.Qt.Key_3: - self.app.on_select_tab('tool') - - # Delete from PyQt - # It's meant to make a difference between delete objects and delete tools in - # Geometry Selected tool table - if key == QtCore.Qt.Key_Delete and matplotlib_key_flag is False: - widget_name = self.plot_tab_area.currentWidget().objectName() - if widget_name == 'database_tab': - # Tools DB saved, update flag - self.app.tools_db_changed_flag = True - self.app.tools_db_tab.on_tool_delete() - return - - self.app.on_delete_keypress() - - # Delete from canvas - if key == 'Delete': - # Delete via the application to - # ensure cleanup of the AppGUI - if active: - active.app.on_delete() - - # Escape = Deselect All - if key == QtCore.Qt.Key_Escape or key == 'Escape': - self.app.on_deselect_all() - - # if in full screen, exit to normal view - if self.toggle_fscreen is True: - self.on_fullscreen(disable=True) - - # try to disconnect the slot from Set Origin - try: - self.app.plotcanvas.graph_event_disconnect('mouse_press', self.app.on_set_zero_click) - except TypeError: - pass - self.app.inform.emit("") - - # Space = Toggle Active/Inactive - if key == QtCore.Qt.Key_Space: - for select in selected: - select.ui.plot_cb.toggle() - QtWidgets.QApplication.processEvents() - self.app.collection.update_view() - self.app.delete_selection_shape() - - # Select the object in the Tree above the current one - if key == QtCore.Qt.Key_Up: - # make sure it works only for the Project Tab who is an instance of KeySensitiveListView - focused_wdg = QtWidgets.QApplication.focusWidget() - if isinstance(focused_wdg, KeySensitiveListView): - self.app.collection.set_all_inactive() - if active is None: - return - active_name = active.options['name'] - active_index = names_list.index(active_name) - if active_index == 0: - self.app.collection.set_active(names_list[-1]) - else: - self.app.collection.set_active(names_list[active_index - 1]) - - # Select the object in the Tree below the current one - if key == QtCore.Qt.Key_Down: - # make sure it works only for the Project Tab who is an instance of KeySensitiveListView - focused_wdg = QtWidgets.QApplication.focusWidget() - if isinstance(focused_wdg, KeySensitiveListView): - self.app.collection.set_all_inactive() - if active is None: - return - active_name = active.options['name'] - active_index = names_list.index(active_name) - if active_index == len(names_list) - 1: - self.app.collection.set_active(names_list[0]) - else: - self.app.collection.set_active(names_list[active_index + 1]) - - # New Geometry - if key == QtCore.Qt.Key_B: - self.app.app_obj.new_gerber_object() - - # New Geometry - if key == QtCore.Qt.Key_D: - self.app.new_document_object() - - # Copy Object Name - if key == QtCore.Qt.Key_E: - self.app.object2editor() - - # Grid toggle - if key == QtCore.Qt.Key_G: - self.app.ui.grid_snap_btn.trigger() - - # Jump to coords - if key == QtCore.Qt.Key_J: - self.app.on_jump_to() - - # New Excellon - if key == QtCore.Qt.Key_L: - self.app.app_obj.new_excellon_object() - - # Move tool toggle - if key == QtCore.Qt.Key_M: - self.app.move_tool.toggle() - - # New Geometry - if key == QtCore.Qt.Key_N: - self.app.app_obj.new_geometry_object() - - # Set Origin - if key == QtCore.Qt.Key_O: - self.app.on_set_origin() - return - - # Properties Tool - if key == QtCore.Qt.Key_P: - self.app.properties_tool.run() - return - - # Change Units - if key == QtCore.Qt.Key_Q: - # if self.app.defaults["units"] == 'MM': - # self.app.ui.general_defaults_form.general_app_group.units_radio.set_value("IN") - # else: - # self.app.ui.general_defaults_form.general_app_group.units_radio.set_value("MM") - # self.app.on_toggle_units(no_pref=True) - self.app.on_toggle_units_click() - - # Rotate Object by 90 degree CW - if key == QtCore.Qt.Key_R: - self.app.on_rotate(silent=True, preset=self.app.defaults['tools_transform_rotate']) - - # Shell toggle - if key == QtCore.Qt.Key_S: - self.toggle_shell_ui() - - # Add a Tool from shortcut - if key == QtCore.Qt.Key_T: - widget_name = self.plot_tab_area.currentWidget().objectName() - if widget_name == 'database_tab': - # Tools DB saved, update flag - self.app.tools_db_changed_flag = True - self.app.tools_db_tab.on_tool_add() - return - - self.app.on_tool_add_keypress() - - # Zoom Fit - if key == QtCore.Qt.Key_V: - self.app.on_zoom_fit() - - # Mirror on X the selected object(s) - if key == QtCore.Qt.Key_X: - self.app.on_flipx() - - # Mirror on Y the selected object(s) - if key == QtCore.Qt.Key_Y: - self.app.on_flipy() - - # Zoom In - if key == QtCore.Qt.Key_Equal: - self.app.plotcanvas.zoom(1 / self.app.defaults['global_zoom_ratio'], self.app.mouse) - - # Zoom Out - if key == QtCore.Qt.Key_Minus: - self.app.plotcanvas.zoom(self.app.defaults['global_zoom_ratio'], self.app.mouse) - - # toggle display of Notebook area - if key == QtCore.Qt.Key_QuoteLeft: - self.on_toggle_notebook() - - return - elif self.app.call_source == 'geo_editor': - # CTRL - if modifiers == QtCore.Qt.ControlModifier: - # save (update) the current geometry and return to the App - if key == QtCore.Qt.Key_S or key == 'S': - self.app.editor2object() - return - - # toggle the measurement tool - if key == QtCore.Qt.Key_M or key == 'M': - self.app.distance_tool.run() - return - - # Cut Action Tool - if key == QtCore.Qt.Key_X or key == 'X': - if self.app.geo_editor.get_selected() is not None: - self.app.geo_editor.cutpath() - else: - msg = _('Please first select a geometry item to be cutted\n' - 'then select the geometry item that will be cutted\n' - 'out of the first item. In the end press ~X~ key or\n' - 'the toolbar button.') - - messagebox = QtWidgets.QMessageBox() - messagebox.setText(msg) - messagebox.setWindowTitle(_("Warning")) - messagebox.setWindowIcon(QtGui.QIcon(self.app.resource_location + '/warning.png')) - messagebox.setIcon(QtWidgets.QMessageBox.Question) - - messagebox.setStandardButtons(QtWidgets.QMessageBox.Ok) - messagebox.setDefaultButton(QtWidgets.QMessageBox.Ok) - messagebox.exec_() - return - # SHIFT - elif modifiers == QtCore.Qt.ShiftModifier: - # Run Distance Minimum Tool - if key == QtCore.Qt.Key_M or key == 'M': - self.app.distance_min_tool.run() - return - - # Skew on X axis - if key == QtCore.Qt.Key_X or key == 'X': - self.app.geo_editor.transform_tool.on_skewx_key() - return - - # Skew on Y axis - if key == QtCore.Qt.Key_Y or key == 'Y': - self.app.geo_editor.transform_tool.on_skewy_key() - return - # ALT - elif modifiers == QtCore.Qt.AltModifier: - - # Transformation Tool - if key == QtCore.Qt.Key_R or key == 'R': - self.app.geo_editor.select_tool('transform') - return - - # Offset on X axis - if key == QtCore.Qt.Key_X or key == 'X': - self.app.geo_editor.transform_tool.on_offx_key() - return - - # Offset on Y axis - if key == QtCore.Qt.Key_Y or key == 'Y': - self.app.geo_editor.transform_tool.on_offy_key() - return - # NO MODIFIER - elif modifiers == QtCore.Qt.NoModifier: - # toggle display of Notebook area - if key == QtCore.Qt.Key_QuoteLeft or key == '`': - self.on_toggle_notebook() - - # Finish the current action. Use with tools that do not - # complete automatically, like a polygon or path. - if key == QtCore.Qt.Key_Enter or key == 'Enter': - if isinstance(self.app.geo_editor.active_tool, FCShapeTool): - if self.app.geo_editor.active_tool.name == 'rotate': - self.app.geo_editor.active_tool.make() - - if self.app.geo_editor.active_tool.complete: - self.app.geo_editor.on_shape_complete() - self.app.inform.emit('[success] %s' % _("Done.")) - # automatically make the selection tool active after completing current action - self.app.geo_editor.select_tool('select') - return - else: - self.app.geo_editor.active_tool.click( - self.app.geo_editor.snap(self.app.geo_editor.x, self.app.geo_editor.y)) - - self.app.geo_editor.active_tool.make() - - if self.app.geo_editor.active_tool.complete: - self.app.geo_editor.on_shape_complete() - self.app.inform.emit('[success] %s' % _("Done.")) - # automatically make the selection tool active after completing current action - self.app.geo_editor.select_tool('select') - - # Abort the current action - if key == QtCore.Qt.Key_Escape or key == 'Escape': - # self.on_tool_select("select") - self.app.inform.emit('[WARNING_NOTCL] %s' % _("Cancelled.")) - - self.app.geo_editor.delete_utility_geometry() - - self.app.geo_editor.active_tool.clean_up() - - self.app.geo_editor.select_tool('select') - - # hide the notebook - self.app.ui.splitter.setSizes([0, 1]) - return - - # Delete selected object - if key == QtCore.Qt.Key_Delete or key == 'Delete': - self.app.geo_editor.delete_selected() - self.app.geo_editor.replot() - - # Rotate - if key == QtCore.Qt.Key_Space or key == 'Space': - self.app.geo_editor.transform_tool.on_rotate_key() - - # Zoom Out - if key == QtCore.Qt.Key_Minus or key == '-': - self.app.plotcanvas.zoom(1 / self.app.defaults['global_zoom_ratio'], - [self.app.geo_editor.snap_x, self.app.geo_editor.snap_y]) - - # Zoom In - if key == QtCore.Qt.Key_Equal or key == '=': - self.app.plotcanvas.zoom(self.app.defaults['global_zoom_ratio'], - [self.app.geo_editor.snap_x, self.app.geo_editor.snap_y]) - - # Switch to Project Tab - if key == QtCore.Qt.Key_1 or key == '1': - self.app.on_select_tab('project') - - # Switch to Selected Tab - if key == QtCore.Qt.Key_2 or key == '2': - self.app.on_select_tab('selected') - - # Switch to Tool Tab - if key == QtCore.Qt.Key_3 or key == '3': - self.app.on_select_tab('tool') - - # Grid Snap - if key == QtCore.Qt.Key_G or key == 'G': - self.app.ui.grid_snap_btn.trigger() - - # make sure that the cursor shape is enabled/disabled, too - if self.app.geo_editor.options['grid_snap'] is True: - self.app.app_cursor.enabled = True - else: - self.app.app_cursor.enabled = False - - # Corner Snap - if key == QtCore.Qt.Key_K or key == 'K': - self.app.geo_editor.on_corner_snap() - - if key == QtCore.Qt.Key_V or key == 'V': - self.app.on_zoom_fit() - - # we do this so we can reuse the following keys while inside a Tool - # the above keys are general enough so were left outside - if self.app.geo_editor.active_tool is not None and self.geo_select_btn.isChecked() is False: - response = self.app.geo_editor.active_tool.on_key(key=key) - if response is not None: - self.app.inform.emit(response) - else: - # Arc Tool - if key == QtCore.Qt.Key_A or key == 'A': - self.app.geo_editor.select_tool('arc') - - # Buffer - if key == QtCore.Qt.Key_B or key == 'B': - self.app.geo_editor.select_tool('buffer') - - # Copy - if key == QtCore.Qt.Key_C or key == 'C': - self.app.geo_editor.on_copy_click() - - # Substract Tool - if key == QtCore.Qt.Key_E or key == 'E': - if self.app.geo_editor.get_selected() is not None: - self.app.geo_editor.intersection() - else: - msg = _("Please select geometry items \n" - "on which to perform Intersection Tool.") - - messagebox = QtWidgets.QMessageBox() - messagebox.setText(msg) - messagebox.setWindowTitle(_("Warning")) - messagebox.setWindowIcon(QtGui.QIcon(self.app.resource_location + '/warning.png')) - messagebox.setIcon(QtWidgets.QMessageBox.Warning) - - messagebox.setStandardButtons(QtWidgets.QMessageBox.Ok) - messagebox.setDefaultButton(QtWidgets.QMessageBox.Ok) - messagebox.exec_() - - # Paint - if key == QtCore.Qt.Key_I or key == 'I': - self.app.geo_editor.select_tool('paint') - - # Jump to coords - if key == QtCore.Qt.Key_J or key == 'J': - self.app.on_jump_to() - - # Move - if key == QtCore.Qt.Key_M or key == 'M': - self.app.geo_editor.on_move_click() - - # Polygon Tool - if key == QtCore.Qt.Key_N or key == 'N': - self.app.geo_editor.select_tool('polygon') - - # Circle Tool - if key == QtCore.Qt.Key_O or key == 'O': - self.app.geo_editor.select_tool('circle') - - # Path Tool - if key == QtCore.Qt.Key_P or key == 'P': - self.app.geo_editor.select_tool('path') - - # Rectangle Tool - if key == QtCore.Qt.Key_R or key == 'R': - self.app.geo_editor.select_tool('rectangle') - - # Substract Tool - if key == QtCore.Qt.Key_S or key == 'S': - if self.app.geo_editor.get_selected() is not None: - self.app.geo_editor.subtract() - else: - msg = _( - "Please select geometry items \n" - "on which to perform Substraction Tool.") - - messagebox = QtWidgets.QMessageBox() - messagebox.setText(msg) - messagebox.setWindowTitle(_("Warning")) - messagebox.setWindowIcon(QtGui.QIcon(self.app.resource_location + '/warning.png')) - messagebox.setIcon(QtWidgets.QMessageBox.Warning) - - messagebox.setStandardButtons(QtWidgets.QMessageBox.Ok) - messagebox.setDefaultButton(QtWidgets.QMessageBox.Ok) - messagebox.exec_() - - # Add Text Tool - if key == QtCore.Qt.Key_T or key == 'T': - self.app.geo_editor.select_tool('text') - - # Substract Tool - if key == QtCore.Qt.Key_U or key == 'U': - if self.app.geo_editor.get_selected() is not None: - self.app.geo_editor.union() - else: - msg = _("Please select geometry items \n" - "on which to perform union.") - - messagebox = QtWidgets.QMessageBox() - messagebox.setText(msg) - messagebox.setWindowTitle(_("Warning")) - messagebox.setWindowIcon(QtGui.QIcon(self.app.resource_location + '/warning.png')) - messagebox.setIcon(QtWidgets.QMessageBox.Warning) - - messagebox.setStandardButtons(QtWidgets.QMessageBox.Ok) - messagebox.setDefaultButton(QtWidgets.QMessageBox.Ok) - messagebox.exec_() - - # Flip on X axis - if key == QtCore.Qt.Key_X or key == 'X': - self.app.geo_editor.transform_tool.on_flipx() - return - - # Flip on Y axis - if key == QtCore.Qt.Key_Y or key == 'Y': - self.app.geo_editor.transform_tool.on_flipy() - return - - # Show Shortcut list - if key == 'F3': - self.app.on_shortcut_list() - elif self.app.call_source == 'grb_editor': - # CTRL - if modifiers == QtCore.Qt.ControlModifier: - # Eraser Tool - if key == QtCore.Qt.Key_E or key == 'E': - self.app.grb_editor.on_eraser() - return - - # save (update) the current geometry and return to the App - if key == QtCore.Qt.Key_S or key == 'S': - self.app.editor2object() - return - - # toggle the measurement tool - if key == QtCore.Qt.Key_M or key == 'M': - self.app.distance_tool.run() - return - # SHIFT - elif modifiers == QtCore.Qt.ShiftModifier: - # Run Distance Minimum Tool - if key == QtCore.Qt.Key_M or key == 'M': - self.app.distance_min_tool.run() - return - # ALT - elif modifiers == QtCore.Qt.AltModifier: - # Mark Area Tool - if key == QtCore.Qt.Key_A or key == 'A': - self.app.grb_editor.on_markarea() - return - - # Poligonize Tool - if key == QtCore.Qt.Key_N or key == 'N': - self.app.grb_editor.on_poligonize() - return - # Transformation Tool - if key == QtCore.Qt.Key_R or key == 'R': - self.app.grb_editor.on_transform() - return - # NO MODIFIER - elif modifiers == QtCore.Qt.NoModifier: - # Abort the current action - if key == QtCore.Qt.Key_Escape or key == 'Escape': - # self.on_tool_select("select") - self.app.inform.emit('[WARNING_NOTCL] %s' % _("Cancelled.")) - - self.app.grb_editor.delete_utility_geometry() - - # self.app.grb_editor.plot_all() - self.app.grb_editor.active_tool.clean_up() - self.app.grb_editor.select_tool('select') - return - - # Delete selected object if delete key event comes out of canvas - if key == 'Delete': - self.app.grb_editor.launched_from_shortcuts = True - if self.app.grb_editor.selected: - self.app.grb_editor.delete_selected() - self.app.grb_editor.plot_all() - else: - self.app.inform.emit('[WARNING_NOTCL] %s' % _("Cancelled. Nothing selected to delete.")) - return - - # Delete aperture in apertures table if delete key event comes from the Selected Tab - if key == QtCore.Qt.Key_Delete: - self.app.grb_editor.launched_from_shortcuts = True - self.app.grb_editor.on_aperture_delete() - return - - if key == QtCore.Qt.Key_Minus or key == '-': - self.app.grb_editor.launched_from_shortcuts = True - self.app.plotcanvas.zoom(1 / self.app.defaults['global_zoom_ratio'], - [self.app.grb_editor.snap_x, self.app.grb_editor.snap_y]) - return - - if key == QtCore.Qt.Key_Equal or key == '=': - self.app.grb_editor.launched_from_shortcuts = True - self.app.plotcanvas.zoom(self.app.defaults['global_zoom_ratio'], - [self.app.grb_editor.snap_x, self.app.grb_editor.snap_y]) - return - - # toggle display of Notebook area - if key == QtCore.Qt.Key_QuoteLeft or key == '`': - self.app.grb_editor.launched_from_shortcuts = True - self.on_toggle_notebook() - return - - # Rotate - if key == QtCore.Qt.Key_Space or key == 'Space': - self.app.grb_editor.transform_tool.on_rotate_key() - - # Switch to Project Tab - if key == QtCore.Qt.Key_1 or key == '1': - self.app.grb_editor.launched_from_shortcuts = True - self.app.on_select_tab('project') - return - - # Switch to Selected Tab - if key == QtCore.Qt.Key_2 or key == '2': - self.app.grb_editor.launched_from_shortcuts = True - self.app.on_select_tab('selected') - return - - # Switch to Tool Tab - if key == QtCore.Qt.Key_3 or key == '3': - self.app.grb_editor.launched_from_shortcuts = True - self.app.on_select_tab('tool') - return - - # we do this so we can reuse the following keys while inside a Tool - # the above keys are general enough so were left outside - if self.app.grb_editor.active_tool is not None and self.grb_select_btn.isChecked() is False: - response = self.app.grb_editor.active_tool.on_key(key=key) - if response is not None: - self.app.inform.emit(response) - else: - # Add Array of pads - if key == QtCore.Qt.Key_A or key == 'A': - self.app.grb_editor.launched_from_shortcuts = True - self.app.inform.emit("Click on target point.") - self.app.ui.add_pad_ar_btn.setChecked(True) - - self.app.grb_editor.x = self.app.mouse[0] - self.app.grb_editor.y = self.app.mouse[1] - - self.app.grb_editor.select_tool('array') - return - - # Scale Tool - if key == QtCore.Qt.Key_B or key == 'B': - self.app.grb_editor.launched_from_shortcuts = True - self.app.grb_editor.select_tool('buffer') - return - - # Copy - if key == QtCore.Qt.Key_C or key == 'C': - self.app.grb_editor.launched_from_shortcuts = True - if self.app.grb_editor.selected: - self.app.inform.emit(_("Click on target point.")) - self.app.ui.aperture_copy_btn.setChecked(True) - self.app.grb_editor.on_tool_select('copy') - self.app.grb_editor.active_tool.set_origin( - (self.app.grb_editor.snap_x, self.app.grb_editor.snap_y)) - else: - self.app.inform.emit('[WARNING_NOTCL] %s' % _("Cancelled. Nothing selected to copy.")) - return - - # Add Disc Tool - if key == QtCore.Qt.Key_D or key == 'D': - self.app.grb_editor.launched_from_shortcuts = True - self.app.grb_editor.select_tool('disc') - return - - # Add SemiDisc Tool - if key == QtCore.Qt.Key_E or key == 'E': - self.app.grb_editor.launched_from_shortcuts = True - self.app.grb_editor.select_tool('semidisc') - return - - # Grid Snap - if key == QtCore.Qt.Key_G or key == 'G': - self.app.grb_editor.launched_from_shortcuts = True - # make sure that the cursor shape is enabled/disabled, too - if self.app.grb_editor.options['grid_snap'] is True: - self.app.app_cursor.enabled = False - else: - self.app.app_cursor.enabled = True - self.app.ui.grid_snap_btn.trigger() - return - - # Jump to coords - if key == QtCore.Qt.Key_J or key == 'J': - self.app.on_jump_to() - - # Corner Snap - if key == QtCore.Qt.Key_K or key == 'K': - self.app.grb_editor.launched_from_shortcuts = True - self.app.ui.corner_snap_btn.trigger() - return - - # Move - if key == QtCore.Qt.Key_M or key == 'M': - self.app.grb_editor.launched_from_shortcuts = True - if self.app.grb_editor.selected: - self.app.inform.emit(_("Click on target point.")) - self.app.ui.aperture_move_btn.setChecked(True) - self.app.grb_editor.on_tool_select('move') - self.app.grb_editor.active_tool.set_origin( - (self.app.grb_editor.snap_x, self.app.grb_editor.snap_y)) - else: - self.app.inform.emit('[WARNING_NOTCL] %s' % _("Cancelled. Nothing selected to move.")) - return - - # Add Region Tool - if key == QtCore.Qt.Key_N or key == 'N': - self.app.grb_editor.launched_from_shortcuts = True - self.app.grb_editor.select_tool('region') - return - - # Add Pad Tool - if key == QtCore.Qt.Key_P or key == 'P': - self.app.grb_editor.launched_from_shortcuts = True - self.app.inform.emit(_("Click on target point.")) - self.app.ui.add_pad_ar_btn.setChecked(True) - - self.app.grb_editor.x = self.app.mouse[0] - self.app.grb_editor.y = self.app.mouse[1] - - self.app.grb_editor.select_tool('pad') - return - - # Scale Tool - if key == QtCore.Qt.Key_S or key == 'S': - self.app.grb_editor.launched_from_shortcuts = True - self.app.grb_editor.select_tool('scale') - return - - # Add Track - if key == QtCore.Qt.Key_T or key == 'T': - self.app.grb_editor.launched_from_shortcuts = True - # ## Current application units in Upper Case - self.app.grb_editor.select_tool('track') - return - - # Zoom fit - if key == QtCore.Qt.Key_V or key == 'V': - self.app.grb_editor.launched_from_shortcuts = True - self.app.grb_editor.on_zoom_fit() - return - - # Show Shortcut list - if key == QtCore.Qt.Key_F3 or key == 'F3': - self.app.on_shortcut_list() - return - elif self.app.call_source == 'exc_editor': - # CTRL - if modifiers == QtCore.Qt.ControlModifier: - # save (update) the current geometry and return to the App - if key == QtCore.Qt.Key_S or key == 'S': - self.app.editor2object() - return - - # toggle the measurement tool - if key == QtCore.Qt.Key_M or key == 'M': - self.app.distance_tool.run() - return - # SHIFT - elif modifiers == QtCore.Qt.ShiftModifier: - # Run Distance Minimum Tool - if key == QtCore.Qt.Key_M or key == 'M': - self.app.distance_min_tool.run() - return - # ALT - elif modifiers == QtCore.Qt.AltModifier: - pass - # NO MODIFIER - elif modifiers == QtCore.Qt.NoModifier: - # Abort the current action - if key == QtCore.Qt.Key_Escape or key == 'Escape': - self.app.inform.emit('[WARNING_NOTCL] %s' % _("Cancelled.")) - - self.app.exc_editor.delete_utility_geometry() - - self.app.exc_editor.active_tool.clean_up() - - self.app.exc_editor.select_tool('drill_select') - return - - # Delete selected object if delete key event comes out of canvas - if key == 'Delete': - self.app.exc_editor.launched_from_shortcuts = True - if self.app.exc_editor.selected: - self.app.exc_editor.delete_selected() - self.app.exc_editor.replot() - else: - self.app.inform.emit('[WARNING_NOTCL] %s' % _("Cancelled. Nothing selected to delete.")) - return - - # Delete tools in tools table if delete key event comes from the Selected Tab - if key == QtCore.Qt.Key_Delete: - self.app.exc_editor.launched_from_shortcuts = True - self.app.exc_editor.on_tool_delete() - return - - if key == QtCore.Qt.Key_Minus or key == '-': - self.app.exc_editor.launched_from_shortcuts = True - self.app.plotcanvas.zoom(1 / self.app.defaults['global_zoom_ratio'], - [self.app.exc_editor.snap_x, self.app.exc_editor.snap_y]) - return - - if key == QtCore.Qt.Key_Equal or key == '=': - self.app.exc_editor.launched_from_shortcuts = True - self.app.plotcanvas.zoom(self.app.defaults['global_zoom_ratio'], - [self.app.exc_editor.snap_x, self.app.exc_editor.snap_y]) - return - - # toggle display of Notebook area - if key == QtCore.Qt.Key_QuoteLeft or key == '`': - self.app.exc_editor.launched_from_shortcuts = True - self.on_toggle_notebook() - return - - # Switch to Project Tab - if key == QtCore.Qt.Key_1 or key == '1': - self.app.exc_editor.launched_from_shortcuts = True - self.app.on_select_tab('project') - return - - # Switch to Selected Tab - if key == QtCore.Qt.Key_2 or key == '2': - self.app.exc_editor.launched_from_shortcuts = True - self.app.on_select_tab('selected') - return - - # Switch to Tool Tab - if key == QtCore.Qt.Key_3 or key == '3': - self.app.exc_editor.launched_from_shortcuts = True - self.app.on_select_tab('tool') - return - - # Grid Snap - if key == QtCore.Qt.Key_G or key == 'G': - self.app.exc_editor.launched_from_shortcuts = True - # make sure that the cursor shape is enabled/disabled, too - if self.app.exc_editor.options['grid_snap'] is True: - self.app.app_cursor.enabled = False - else: - self.app.app_cursor.enabled = True - self.app.ui.grid_snap_btn.trigger() - return - - # Corner Snap - if key == QtCore.Qt.Key_K or key == 'K': - self.app.exc_editor.launched_from_shortcuts = True - self.app.ui.corner_snap_btn.trigger() - return - - # Zoom Fit - if key == QtCore.Qt.Key_V or key == 'V': - self.app.exc_editor.launched_from_shortcuts = True - self.app.on_zoom_fit() - return - - # Add Slot Hole Tool - if key == QtCore.Qt.Key_W or key == 'W': - self.app.exc_editor.launched_from_shortcuts = True - self.app.inform.emit(_("Click on target point.")) - self.app.ui.add_slot_btn.setChecked(True) - - self.app.exc_editor.x = self.app.mouse[0] - self.app.exc_editor.y = self.app.mouse[1] - - self.app.exc_editor.select_tool('slot_add') - return - - # Propagate to tool - - # Show Shortcut list - if key == QtCore.Qt.Key_F3 or key == 'F3': - self.app.on_shortcut_list() - return - - # we do this so we can reuse the following keys while inside a Tool - # the above keys are general enough so were left outside - if self.app.exc_editor.active_tool is not None and self.select_drill_btn.isChecked() is False: - response = self.app.exc_editor.active_tool.on_key(key=key) - if response is not None: - self.app.inform.emit(response) - else: - # Add Array of Drill Hole Tool - if key == QtCore.Qt.Key_A or key == 'A': - self.app.exc_editor.launched_from_shortcuts = True - self.app.inform.emit("Click on target point.") - self.app.ui.add_drill_array_btn.setChecked(True) - - self.app.exc_editor.x = self.app.mouse[0] - self.app.exc_editor.y = self.app.mouse[1] - - self.app.exc_editor.select_tool('drill_array') - return - - # Copy - if key == QtCore.Qt.Key_C or key == 'C': - self.app.exc_editor.launched_from_shortcuts = True - if self.app.exc_editor.selected: - self.app.inform.emit(_("Click on target point.")) - self.app.ui.copy_drill_btn.setChecked(True) - self.app.exc_editor.on_tool_select('drill_copy') - self.app.exc_editor.active_tool.set_origin( - (self.app.exc_editor.snap_x, self.app.exc_editor.snap_y)) - else: - self.app.inform.emit('[WARNING_NOTCL] %s' % _("Cancelled. Nothing selected to copy.")) - return - - # Add Drill Hole Tool - if key == QtCore.Qt.Key_D or key == 'D': - self.app.exc_editor.launched_from_shortcuts = True - self.app.inform.emit(_("Click on target point.")) - self.app.ui.add_drill_btn.setChecked(True) - - self.app.exc_editor.x = self.app.mouse[0] - self.app.exc_editor.y = self.app.mouse[1] - - self.app.exc_editor.select_tool('drill_add') - return - - # Jump to coords - if key == QtCore.Qt.Key_J or key == 'J': - self.app.on_jump_to() - - # Move - if key == QtCore.Qt.Key_M or key == 'M': - self.app.exc_editor.launched_from_shortcuts = True - if self.app.exc_editor.selected: - self.app.inform.emit(_("Click on target point.")) - self.app.ui.move_drill_btn.setChecked(True) - self.app.exc_editor.on_tool_select('drill_move') - self.app.exc_editor.active_tool.set_origin( - (self.app.exc_editor.snap_x, self.app.exc_editor.snap_y)) - else: - self.app.inform.emit('[WARNING_NOTCL] %s' % _("Cancelled. Nothing selected to move.")) - return - - # Add Array of Slots Hole Tool - if key == QtCore.Qt.Key_Q or key == 'Q': - self.app.exc_editor.launched_from_shortcuts = True - self.app.inform.emit("Click on target point.") - self.app.ui.add_slot_array_btn.setChecked(True) - - self.app.exc_editor.x = self.app.mouse[0] - self.app.exc_editor.y = self.app.mouse[1] - - self.app.exc_editor.select_tool('slot_array') - return - - # Resize Tool - if key == QtCore.Qt.Key_R or key == 'R': - self.app.exc_editor.launched_from_shortcuts = True - self.app.exc_editor.select_tool('drill_resize') - return - - # Add Tool - if key == QtCore.Qt.Key_T or key == 'T': - self.app.exc_editor.launched_from_shortcuts = True - # ## Current application units in Upper Case - self.units = self.general_defaults_form.general_app_group.units_radio.get_value().upper() - tool_add_popup = FCInputDialog(title=_("New Tool ..."), - text='%s:' % _('Enter a Tool Diameter'), - min=0.0000, max=99.9999, decimals=4) - tool_add_popup.setWindowIcon(QtGui.QIcon(self.app.resource_location + '/letter_t_32.png')) - - val, ok = tool_add_popup.get_value() - if ok: - self.app.exc_editor.on_tool_add(tooldia=val) - formated_val = '%.*f' % (self.decimals, float(val)) - self.app.inform.emit( - '[success] %s: %s %s' % (_("Added new tool with dia"), formated_val, str(self.units)) - ) - else: - self.app.inform.emit('[WARNING_NOTCL] %s' % _("Adding Tool cancelled ...")) - return - elif self.app.call_source == 'measurement': - if modifiers == QtCore.Qt.ControlModifier: - pass - elif modifiers == QtCore.Qt.AltModifier: - pass - elif modifiers == QtCore.Qt.ShiftModifier: - pass - # NO MODIFIER - elif modifiers == QtCore.Qt.NoModifier: - if key == QtCore.Qt.Key_Escape or key == 'Escape': - # abort the measurement action - self.app.distance_tool.deactivate_measure_tool() - self.app.inform.emit(_("Distance Tool exit...")) - return - - if key == QtCore.Qt.Key_G or key == 'G': - self.app.ui.grid_snap_btn.trigger() - return - - # Jump to coords - if key == QtCore.Qt.Key_J or key == 'J': - self.app.on_jump_to() - elif self.app.call_source == 'qrcode_tool': - # CTRL + ALT - if modifiers == QtCore.Qt.ControlModifier | QtCore.Qt.AltModifier: - if key == QtCore.Qt.Key_X: - self.app.abort_all_tasks() - return - - elif modifiers == QtCore.Qt.ControlModifier: - pass - elif modifiers == QtCore.Qt.ShiftModifier: - pass - elif modifiers == QtCore.Qt.AltModifier: - pass - # NO MODIFIER - elif modifiers == QtCore.Qt.NoModifier: - # Escape = Deselect All - if key == QtCore.Qt.Key_Escape or key == 'Escape': - self.app.qrcode_tool.on_exit() - - # Grid toggle - if key == QtCore.Qt.Key_G: - self.app.ui.grid_snap_btn.trigger() - - # Jump to coords - if key == QtCore.Qt.Key_J: - self.app.on_jump_to() - elif self.app.call_source == 'copper_thieving_tool': - # CTRL + ALT - if modifiers == QtCore.Qt.ControlModifier | QtCore.Qt.AltModifier: - if key == QtCore.Qt.Key_X: - self.app.abort_all_tasks() - return - elif modifiers == QtCore.Qt.ControlModifier: - pass - elif modifiers == QtCore.Qt.ShiftModifier: - pass - elif modifiers == QtCore.Qt.AltModifier: - pass - # NO MODIFIER - elif modifiers == QtCore.Qt.NoModifier: - # Escape = Deselect All - if key == QtCore.Qt.Key_Escape or key == 'Escape': - self.app.copperfill_tool.on_exit() - - # Grid toggle - if key == QtCore.Qt.Key_G: - self.app.ui.grid_snap_btn.trigger() - - # Jump to coords - if key == QtCore.Qt.Key_J: - self.app.on_jump_to() - elif self.app.call_source == 'geometry': - if modifiers == QtCore.Qt.ControlModifier: - pass - elif modifiers == QtCore.Qt.AltModifier: - pass - elif modifiers == QtCore.Qt.ShiftModifier: - pass - # NO MODIFIER - elif modifiers == QtCore.Qt.NoModifier: - if key == QtCore.Qt.Key_Escape or key == 'Escape': - sel_obj = self.app.collection.get_active() - assert sel_obj.kind == 'geometry' or sel_obj.kind == 'excellon', \ - "Expected a Geometry or Excellon Object, got %s" % type(sel_obj) - - sel_obj.area_disconnect() - return - - if key == QtCore.Qt.Key_G or key == 'G': - self.app.ui.grid_snap_btn.trigger() - return - - # Jump to coords - if key == QtCore.Qt.Key_J or key == 'J': - self.app.on_jump_to() - - def createPopupMenu(self): - menu = super().createPopupMenu() - - menu.addSeparator() - menu.addAction(self.lock_action) - return menu - - def lock_toolbar(self, lock=False): - """ - Used to (un)lock the toolbars of the app. - - :param lock: boolean, will lock all toolbars in place when set True - :return: None - """ - - if lock: - for widget in self.children(): - if isinstance(widget, QtWidgets.QToolBar): - widget.setMovable(False) - else: - for widget in self.children(): - if isinstance(widget, QtWidgets.QToolBar): - widget.setMovable(True) - - def dragEnterEvent(self, event): - if event.mimeData().hasUrls: - event.accept() - else: - event.ignore() - - def dragMoveEvent(self, event): - if event.mimeData().hasUrls: - event.accept() - else: - event.ignore() - - def dropEvent(self, event): - if event.mimeData().hasUrls: - event.setDropAction(QtCore.Qt.CopyAction) - event.accept() - for url in event.mimeData().urls(): - self.filename = str(url.toLocalFile()) - - if self.filename == "": - self.app.inform.emit("Cancelled.") - else: - extension = self.filename.lower().rpartition('.')[-1] - - if extension in self.app.grb_list: - self.app.worker_task.emit({'fcn': self.app.open_gerber, - 'params': [self.filename]}) - else: - event.ignore() - - if extension in self.app.exc_list: - self.app.worker_task.emit({'fcn': self.app.open_excellon, - 'params': [self.filename]}) - else: - event.ignore() - - if extension in self.app.gcode_list: - self.app.worker_task.emit({'fcn': self.app.open_gcode, - 'params': [self.filename]}) - else: - event.ignore() - - if extension in self.app.svg_list: - object_type = 'geometry' - self.app.worker_task.emit({'fcn': self.app.import_svg, - 'params': [self.filename, object_type, None]}) - - if extension in self.app.dxf_list: - object_type = 'geometry' - self.app.worker_task.emit({'fcn': self.app.import_dxf, - 'params': [self.filename, object_type, None]}) - - if extension in self.app.pdf_list: - self.app.pdf_tool.periodic_check(1000) - self.app.worker_task.emit({'fcn': self.app.pdf_tool.open_pdf, - 'params': [self.filename]}) - - if extension in self.app.prj_list: - # self.app.open_project() is not Thread Safe - self.app.open_project(self.filename) - - if extension in self.app.conf_list: - self.app.open_config_file(self.filename) - else: - event.ignore() - else: - event.ignore() - - def closeEvent(self, event): - if self.app.save_in_progress: - self.app.inform.emit('[WARNING_NOTCL] %s' % _("Application is saving the project. Please wait ...")) - else: - grect = self.geometry() - - # self.splitter.sizes()[0] is actually the size of the "notebook" - if not self.isMaximized(): - self.geom_update.emit(grect.x(), grect.y(), grect.width(), grect.height(), self.splitter.sizes()[0]) - - self.final_save.emit() - event.ignore() - - def on_fullscreen(self, disable=False): - """ - - :param disable: - :return: - """ - flags = self.windowFlags() - if self.toggle_fscreen is False and disable is False: - # self.ui.showFullScreen() - self.setWindowFlags(flags | Qt.FramelessWindowHint) - a = self.geometry() - self.x_pos = a.x() - self.y_pos = a.y() - self.width = a.width() - self.height = a.height() - - # set new geometry to full desktop rect - # Subtracting and adding the pixels below it's hack to bypass a bug in Qt5 and OpenGL that made that a - # window drawn with OpenGL in fullscreen will not show any other windows on top which means that menus and - # everything else will not work without this hack. This happen in Windows. - # https://bugreports.qt.io/browse/QTBUG-41309 - desktop = QtWidgets.QApplication.desktop() - screen = desktop.screenNumber(QtGui.QCursor.pos()) - - rec = desktop.screenGeometry(screen) - x = rec.x() - 1 - y = rec.y() - 1 - h = rec.height() + 2 - w = rec.width() + 2 - self.setGeometry(x, y, w, h) - self.show() - - # hide all Toolbars - for tb in self.findChildren(QtWidgets.QToolBar): - tb.setVisible(False) - self.status_toolbar.setVisible(True) # This Toolbar is always visible so restore it - - self.splitter.setSizes([0, 1]) - self.toggle_fscreen = True - elif self.toggle_fscreen is True or disable is True: - self.setWindowFlags(flags & ~Qt.FramelessWindowHint) - self.setGeometry(self.x_pos, self.y_pos, self.width, self.height) - self.showNormal() - self.restore_toolbar_view() - self.toggle_fscreen = False - - def on_toggle_plotarea(self): - """ - - :return: - """ - try: - name = self.plot_tab_area.widget(0).objectName() - except AttributeError: - self.plot_tab_area.addTab(self.plot_tab, "Plot Area") - # remove the close button from the Plot Area tab (first tab index = 0) as this one will always be ON - self.plot_tab_area.protectTab(0) - return - - if name != 'plotarea_tab': - self.plot_tab_area.insertTab(0, self.plot_tab, "Plot Area") - # remove the close button from the Plot Area tab (first tab index = 0) as this one will always be ON - self.plot_tab_area.protectTab(0) - else: - self.plot_tab_area.closeTab(0) - - def on_toggle_notebook(self): - """ - - :return: - """ - if self.splitter.sizes()[0] == 0: - self.splitter.setSizes([1, 1]) - self.menu_toggle_nb.setChecked(True) - else: - self.splitter.setSizes([0, 1]) - self.menu_toggle_nb.setChecked(False) - - def on_toggle_grid(self): - """ - - :return: - """ - self.grid_snap_btn.trigger() - - def toggle_shell_ui(self): - """ - Toggle shell dock: if is visible close it, if it is closed then open it - - :return: None - """ - - if self.shell_dock.isVisible(): - self.shell_dock.hide() - self.app.plotcanvas.native.setFocus() - self.shell_status_label.setStyleSheet("") - self.app.inform[str, bool].emit(_("Shell disabled."), False) - else: - self.shell_dock.show() - self.shell_status_label.setStyleSheet(""" - QLabel - { - color: black; - background-color: lightcoral; - } - """) - self.app.inform[str, bool].emit(_("Shell enabled."), False) - - # I want to take the focus and give it to the Tcl Shell when the Tcl Shell is run - # self.shell._edit.setFocus() - QtCore.QTimer.singleShot(0, lambda: self.shell_dock.widget()._edit.setFocus()) - - # HACK - simulate a mouse click - alternative - # no_km = QtCore.Qt.KeyboardModifier(QtCore.Qt.NoModifier) # no KB modifier - # pos = QtCore.QPoint((self.shell._edit.width() - 40), (self.shell._edit.height() - 2)) - # e = QtGui.QMouseEvent(QtCore.QEvent.MouseButtonPress, pos, QtCore.Qt.LeftButton, QtCore.Qt.LeftButton, - # no_km) - # QtWidgets.qApp.sendEvent(self.shell._edit, e) - # f = QtGui.QMouseEvent(QtCore.QEvent.MouseButtonRelease, pos, QtCore.Qt.LeftButton, QtCore.Qt.LeftButton, - # no_km) - # QtWidgets.qApp.sendEvent(self.shell._edit, f) - - -class ShortcutsTab(QtWidgets.QWidget): - - def __init__(self): - super(ShortcutsTab, self).__init__() - + self.shortcuts_tab = QtWidgets.QWidget() self.sh_tab_layout = QtWidgets.QVBoxLayout() self.sh_tab_layout.setContentsMargins(2, 2, 2, 2) - self.setLayout(self.sh_tab_layout) + self.shortcuts_tab.setLayout(self.sh_tab_layout) self.sh_hlay = QtWidgets.QHBoxLayout() - - self.sh_title = QtWidgets.QTextEdit(_('Shortcut Key List')) + self.sh_title = QtWidgets.QTextEdit( + _('Shortcut Key List')) self.sh_title.setTextInteractionFlags(QtCore.Qt.NoTextInteraction) self.sh_title.setFrameStyle(QtWidgets.QFrame.NoFrame) self.sh_title.setMaximumHeight(30) - font = self.sh_title.font() font.setPointSize(12) self.sh_title.setFont(font) @@ -3716,7 +1372,7 @@ class ShortcutsTab(QtWidgets.QWidget): self.sh_tab_layout.addLayout(self.sh_hlay) self.app_sh_msg = ( - '''%s
    + '''%s
    @@ -3935,16 +1591,6 @@ class ShortcutsTab(QtWidgets.QWidget): - - - - - - - - - - @@ -3965,10 +1611,6 @@ class ShortcutsTab(QtWidgets.QWidget): - - - - @@ -3994,19 +1636,7 @@ class ShortcutsTab(QtWidgets.QWidget): - - - - - - - - - - - - - + @@ -4085,53 +1715,51 @@ class ShortcutsTab(QtWidgets.QWidget):
    Alt+E  %s
    Alt+F %s
    Alt+G %s
    Alt+H  %sAlt+L  %s
    Alt+M %s
    Alt+N  %s %s
    Alt+T %s
    Alt+W %s
    Alt+X %s
    Alt+ZAlt+U  %s
    ''' % - ( - _("General Shortcut list"), - _("SHOW SHORTCUT LIST"), _("Switch to Project Tab"), _("Switch to Selected Tab"), - _("Switch to Tool Tab"), - _("New Gerber"), _("Edit Object (if selected)"), _("Grid On/Off"), _("Jump to Coordinates"), - _("New Excellon"), _("Move Obj"), _("New Geometry"), _("Set Origin"), _("Change Units"), - _("Open Properties Tool"), _("Rotate by 90 degree CW"), _("Shell Toggle"), - _("Add a Tool (when in Geometry Selected Tab or in Tools NCC or Tools Paint)"), _("Zoom Fit"), - _("Flip on X_axis"), _("Flip on Y_axis"), _("Zoom Out"), _("Zoom In"), + ( + _("General Shortcut list"), + _("SHOW SHORTCUT LIST"), _("Switch to Project Tab"), _("Switch to Selected Tab"), + _("Switch to Tool Tab"), + _("New Gerber"), _("Edit Object (if selected)"), _("Grid On/Off"), _("Jump to Coordinates"), + _("New Excellon"), _("Move Obj"), _("New Geometry"), _("Set Origin"), _("Change Units"), + _("Open Properties Tool"), _("Rotate by 90 degree CW"), _("Shell Toggle"), + _("Add a Tool (when in Geometry Selected Tab or in Tools NCC or Tools Paint)"), _("Zoom Fit"), + _("Flip on X_axis"), _("Flip on Y_axis"), _("Zoom Out"), _("Zoom In"), - # CTRL section - _("Select All"), _("Copy Obj"), _("Open Tools Database"), - _("Open Excellon File"), _("Open Gerber File"), _("Distance Tool"), _("New Project"), - _("Open Project"), _("Print (PDF)"), _("PDF Import Tool"), _("Save Project"), _("Toggle Plot Area"), + # CTRL section + _("Select All"), _("Copy Obj"), _("Open Tools Database"), + _("Open Excellon File"), _("Open Gerber File"), _("Distance Tool"), _("New Project"), + _("Open Project"), _("Print (PDF)"), _("PDF Import Tool"), _("Save Project"), _("Toggle Plot Area"), - # SHIFT section - _("Copy Obj_Name"), - _("Toggle Code Editor"), _("Toggle the axis"), _("Locate in Object"), _("Distance Minimum Tool"), - _("Open Preferences Window"), - _("Rotate by 90 degree CCW"), _("Run a Script"), _("Toggle the workspace"), _("Skew on X axis"), - _("Skew on Y axis"), + # SHIFT section + _("Copy Obj_Name"), + _("Toggle Code Editor"), _("Toggle the axis"), _("Locate in Object"), _("Distance Minimum Tool"), + _("Open Preferences Window"), + _("Rotate by 90 degree CCW"), _("Run a Script"), _("Toggle the workspace"), _("Skew on X axis"), + _("Skew on Y axis"), - # ALT section - _("Align Objects Tool"), _("Calculators Tool"), _("2-Sided PCB Tool"), _("Extract Drills Tool"), - _("Fiducials Tool"), _("Toggle Grid Lines"), - _("Punch Gerber Tool"), _("Isolation Tool"), _("Copper Thieving Tool"), - _("Solder Paste Dispensing Tool"), - _("Film PCB Tool"), _("Corner Markers Tool"), _("Non-Copper Clearing Tool"), _("Optimal Tool"), - _("Paint Area Tool"), _("QRCode Tool"), _("Rules Check Tool"), - _("View File Source"), _("Transformations Tool"), - _("Subtract Tool"), _("Cutout PCB Tool"), _("Panelize PCB"), - _("Enable all Plots"), _("Disable all Plots"), _("Disable Non-selected Plots"), - _("Toggle Full Screen"), + # ALT section + _("Align Objects Tool"), _("Calculators Tool"), _("2-Sided PCB Tool"), _("Transformations Tool"), + _("Punch Gerber Tool"), _("Extract Drills Tool"), _("Fiducials Tool"), + _("Solder Paste Dispensing Tool"), + _("Film PCB Tool"), _("Non-Copper Clearing Tool"), _("Optimal Tool"), + _("Paint Area Tool"), _("QRCode Tool"), _("Rules Check Tool"), + _("View File Source"), + _("Cutout PCB Tool"), _("Enable all Plots"), _("Disable all Plots"), _("Disable Non-selected Plots"), + _("Toggle Full Screen"), - # CTRL + ALT section - _("Abort current task (gracefully)"), + # CTRL + ALT section + _("Abort current task (gracefully)"), - # CTRL + SHIFT section - _("Save Project As"), - _("Paste Special. Will convert a Windows path style to the one required in Tcl Shell"), + # CTRL + SHIFT section + _("Save Project As"), + _("Paste Special. Will convert a Windows path style to the one required in Tcl Shell"), - # F keys section - _("Open Online Manual"), - _("Open Online Tutorials"), _("Refresh Plots"), _("Delete Object"), _("Alternate: Delete Tool"), - _("(left to Key_1)Toggle Notebook Area (Left Side)"), _("En(Dis)able Obj Plot"), - _("Deselects all objects") - ) + # F keys section + _("Open Online Manual"), + _("Open Online Tutorials"), _("Refresh Plots"), _("Delete Object"), _("Alternate: Delete Tool"), + _("(left to Key_1)Toggle Notebook Area (Left Side)"), _("En(Dis)able Obj Plot"), + _("Deselects all objects") + ) ) self.sh_app = QtWidgets.QTextEdit() @@ -4525,4 +2153,2312 @@ class ShortcutsTab(QtWidgets.QWidget): self.sh_editor.setSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding) self.sh_hlay.addWidget(self.sh_editor) + # ######################################################################## + # ########################## PLOT AREA CONTEXT MENU # ################### + # ######################################################################## + self.popMenu = FCMenu() + + self.popmenu_disable = self.popMenu.addAction( + QtGui.QIcon(self.app.resource_location + '/disable32.png'), _("Toggle Visibility")) + self.popmenu_panel_toggle = self.popMenu.addAction( + QtGui.QIcon(self.app.resource_location + '/notebook16.png'), _("Toggle Panel")) + + self.popMenu.addSeparator() + self.cmenu_newmenu = self.popMenu.addMenu( + QtGui.QIcon(self.app.resource_location + '/file32.png'), _("New")) + self.popmenu_new_geo = self.cmenu_newmenu.addAction( + QtGui.QIcon(self.app.resource_location + '/new_geo32_bis.png'), _("Geometry")) + self.popmenu_new_grb = self.cmenu_newmenu.addAction( + QtGui.QIcon(self.app.resource_location + '/flatcam_icon32.png'), "Gerber") + self.popmenu_new_exc = self.cmenu_newmenu.addAction( + QtGui.QIcon(self.app.resource_location + '/new_exc32.png'), _("Excellon")) + self.cmenu_newmenu.addSeparator() + self.popmenu_new_prj = self.cmenu_newmenu.addAction( + QtGui.QIcon(self.app.resource_location + '/file16.png'), _("Project")) + self.popMenu.addSeparator() + + self.cmenu_gridmenu = self.popMenu.addMenu( + QtGui.QIcon(self.app.resource_location + '/grid32_menu.png'), _("Grids")) + + self.cmenu_viewmenu = self.popMenu.addMenu( + QtGui.QIcon(self.app.resource_location + '/view64.png'), _("View")) + self.zoomfit = self.cmenu_viewmenu.addAction( + QtGui.QIcon(self.app.resource_location + '/zoom_fit32.png'), _("Zoom Fit")) + self.clearplot = self.cmenu_viewmenu.addAction( + QtGui.QIcon(self.app.resource_location + '/clear_plot32.png'), _("Clear Plot")) + self.replot = self.cmenu_viewmenu.addAction( + QtGui.QIcon(self.app.resource_location + '/replot32.png'), _("Replot")) + self.popMenu.addSeparator() + + self.g_editor_cmenu = self.popMenu.addMenu( + QtGui.QIcon(self.app.resource_location + '/draw32.png'), _("Geo Editor")) + self.draw_line = self.g_editor_cmenu.addAction( + QtGui.QIcon(self.app.resource_location + '/path32.png'), _("Path")) + self.draw_rect = self.g_editor_cmenu.addAction( + QtGui.QIcon(self.app.resource_location + '/rectangle32.png'), _("Rectangle")) + self.g_editor_cmenu.addSeparator() + self.draw_circle = self.g_editor_cmenu.addAction( + QtGui.QIcon(self.app.resource_location + '/circle32.png'), _("Circle")) + self.draw_poly = self.g_editor_cmenu.addAction( + QtGui.QIcon(self.app.resource_location + '/polygon32.png'), _("Polygon")) + self.draw_arc = self.g_editor_cmenu.addAction( + QtGui.QIcon(self.app.resource_location + '/arc32.png'), _("Arc")) + self.g_editor_cmenu.addSeparator() + + self.draw_text = self.g_editor_cmenu.addAction( + QtGui.QIcon(self.app.resource_location + '/text32.png'), _("Text")) + self.draw_buffer = self.g_editor_cmenu.addAction( + QtGui.QIcon(self.app.resource_location + '/buffer16-2.png'), _("Buffer")) + self.draw_paint = self.g_editor_cmenu.addAction( + QtGui.QIcon(self.app.resource_location + '/paint20_1.png'), _("Paint")) + self.draw_eraser = self.g_editor_cmenu.addAction( + QtGui.QIcon(self.app.resource_location + '/eraser26.png'), _("Eraser")) + self.g_editor_cmenu.addSeparator() + + self.draw_union = self.g_editor_cmenu.addAction( + QtGui.QIcon(self.app.resource_location + '/union32.png'), _("Union")) + self.draw_intersect = self.g_editor_cmenu.addAction( + QtGui.QIcon(self.app.resource_location + '/intersection32.png'), _("Intersection")) + self.draw_substract = self.g_editor_cmenu.addAction( + QtGui.QIcon(self.app.resource_location + '/subtract32.png'), _("Subtraction")) + self.draw_cut = self.g_editor_cmenu.addAction( + QtGui.QIcon(self.app.resource_location + '/cutpath32.png'), _("Cut")) + self.draw_transform = self.g_editor_cmenu.addAction( + QtGui.QIcon(self.app.resource_location + '/transform.png'), _("Transformations")) + + self.g_editor_cmenu.addSeparator() + self.draw_move = self.g_editor_cmenu.addAction( + QtGui.QIcon(self.app.resource_location + '/move32.png'), _("Move")) + + self.grb_editor_cmenu = self.popMenu.addMenu( + QtGui.QIcon(self.app.resource_location + '/draw32.png'), _("Gerber Editor")) + self.grb_draw_pad = self.grb_editor_cmenu.addAction( + QtGui.QIcon(self.app.resource_location + '/aperture32.png'), _("Pad")) + self.grb_draw_pad_array = self.grb_editor_cmenu.addAction( + QtGui.QIcon(self.app.resource_location + '/padarray32.png'), _("Pad Array")) + self.grb_editor_cmenu.addSeparator() + + self.grb_draw_track = self.grb_editor_cmenu.addAction( + QtGui.QIcon(self.app.resource_location + '/track32.png'), _("Track")) + self.grb_draw_region = self.grb_editor_cmenu.addAction( + QtGui.QIcon(self.app.resource_location + '/polygon32.png'), _("Region")) + self.grb_draw_poligonize = self.grb_editor_cmenu.addAction( + QtGui.QIcon(self.app.resource_location + '/poligonize32.png'), _("Poligonize")) + self.grb_draw_semidisc = self.grb_editor_cmenu.addAction( + QtGui.QIcon(self.app.resource_location + '/semidisc32.png'), _("SemiDisc")) + self.grb_draw_disc = self.grb_editor_cmenu.addAction( + QtGui.QIcon(self.app.resource_location + '/disc32.png'), _("Disc")) + self.grb_editor_cmenu.addSeparator() + + self.grb_draw_buffer = self.grb_editor_cmenu.addAction( + QtGui.QIcon(self.app.resource_location + '/buffer16-2.png'), _("Buffer")) + self.grb_draw_scale = self.grb_editor_cmenu.addAction( + QtGui.QIcon(self.app.resource_location + '/scale32.png'), _("Scale")) + self.grb_draw_markarea = self.grb_editor_cmenu.addAction( + QtGui.QIcon(self.app.resource_location + '/markarea32.png'), _("Mark Area")) + self.grb_draw_eraser = self.grb_editor_cmenu.addAction( + QtGui.QIcon(self.app.resource_location + '/eraser26.png'), _("Eraser")) + self.grb_editor_cmenu.addSeparator() + + self.grb_draw_transformations = self.grb_editor_cmenu.addAction( + QtGui.QIcon(self.app.resource_location + '/transform.png'), _("Transformations")) + + self.e_editor_cmenu = self.popMenu.addMenu( + QtGui.QIcon(self.app.resource_location + '/drill32.png'), _("Exc Editor")) + self.drill = self.e_editor_cmenu.addAction( + QtGui.QIcon(self.app.resource_location + '/drill32.png'), _("Add Drill")) + self.drill_array = self.e_editor_cmenu.addAction( + QtGui.QIcon(self.app.resource_location + '/addarray32.png'), _("Add Drill Array")) + self.e_editor_cmenu.addSeparator() + self.slot = self.e_editor_cmenu.addAction( + QtGui.QIcon(self.app.resource_location + '/slot26.png'), _("Add Slot")) + self.slot_array = self.e_editor_cmenu.addAction( + QtGui.QIcon(self.app.resource_location + '/slot_array26.png'), _("Add Slot Array")) + self.e_editor_cmenu.addSeparator() + self.drill_resize = self.e_editor_cmenu.addAction( + QtGui.QIcon(self.app.resource_location + '/resize16.png'), _("Resize Drill")) + + self.popMenu.addSeparator() + self.popmenu_copy = self.popMenu.addAction( + QtGui.QIcon(self.app.resource_location + '/copy32.png'), _("Copy")) + self.popmenu_delete = self.popMenu.addAction( + QtGui.QIcon(self.app.resource_location + '/delete32.png'), _("Delete")) + self.popmenu_edit = self.popMenu.addAction( + QtGui.QIcon(self.app.resource_location + '/edit32.png'), _("Edit")) + self.popmenu_save = self.popMenu.addAction( + QtGui.QIcon(self.app.resource_location + '/floppy32.png'), _("Close Editor")) + self.popmenu_save.setVisible(False) + self.popMenu.addSeparator() + + self.popmenu_move = self.popMenu.addAction( + QtGui.QIcon(self.app.resource_location + '/move32.png'), _("Move")) + self.popmenu_properties = self.popMenu.addAction( + QtGui.QIcon(self.app.resource_location + '/properties32.png'), _("Properties")) + + # ######################################################################## + # ########################## INFO BAR # ################################## + # ######################################################################## + self.infobar = self.statusBar() + self.fcinfo = FlatCAMInfoBar(app=self.app) + self.infobar.addWidget(self.fcinfo, stretch=1) + + self.snap_infobar_label = FCLabel() + self.snap_infobar_label.setPixmap(QtGui.QPixmap(self.app.resource_location + '/snap_16.png')) + self.infobar.addWidget(self.snap_infobar_label) + + self.rel_position_label = QtWidgets.QLabel( + "Dx: 0.0000   Dy: 0.0000    ") + self.rel_position_label.setMinimumWidth(110) + self.rel_position_label.setToolTip(_("Relative measurement.\nReference is last click position")) + self.infobar.addWidget(self.rel_position_label) + + self.position_label = QtWidgets.QLabel( + "    X: 0.0000   Y: 0.0000") + self.position_label.setMinimumWidth(110) + self.position_label.setToolTip(_("Absolute measurement.\nReference is (X=0, Y= 0) position")) + self.infobar.addWidget(self.position_label) + + self.units_label = QtWidgets.QLabel("[in]") + self.units_label.setMargin(2) + self.infobar.addWidget(self.units_label) + + # disabled + # self.progress_bar = QtWidgets.QProgressBar() + # self.progress_bar.setMinimum(0) + # self.progress_bar.setMaximum(100) + # infobar.addWidget(self.progress_bar) + + # ######################################################################## + # ########################## SET GUI Elements # ########################## + # ######################################################################## + self.app_icon = QtGui.QIcon() + self.app_icon.addFile(self.app.resource_location + '/flatcam_icon16.png', QtCore.QSize(16, 16)) + self.app_icon.addFile(self.app.resource_location + '/flatcam_icon24.png', QtCore.QSize(24, 24)) + self.app_icon.addFile(self.app.resource_location + '/flatcam_icon32.png', QtCore.QSize(32, 32)) + self.app_icon.addFile(self.app.resource_location + '/flatcam_icon48.png', QtCore.QSize(48, 48)) + self.app_icon.addFile(self.app.resource_location + '/flatcam_icon128.png', QtCore.QSize(128, 128)) + self.app_icon.addFile(self.app.resource_location + '/flatcam_icon256.png', QtCore.QSize(256, 256)) + self.setWindowIcon(self.app_icon) + + self.setGeometry(100, 100, 1024, 650) + self.setWindowTitle('FlatCAM %s %s - %s' % + (self.app.version, + ('BETA' if self.app.beta else ''), + platform.architecture()[0]) + ) + + self.filename = "" + self.units = "" + self.setAcceptDrops(True) + + # ######################################################################## + # ########################## Build GUI # ################################# + # ######################################################################## + self.grid_snap_btn.setCheckable(True) + self.corner_snap_btn.setCheckable(True) + self.update_obj_btn.setEnabled(False) + # start with GRID activated + self.grid_snap_btn.trigger() + + self.g_editor_cmenu.menuAction().setVisible(False) + self.grb_editor_cmenu.menuAction().setVisible(False) + self.e_editor_cmenu.menuAction().setVisible(False) + + # ######################################################################## + # ######################## BUILD PREFERENCES ############################# + # ######################################################################## + self.general_defaults_form = GeneralPreferencesUI(decimals=self.decimals) + self.gerber_defaults_form = GerberPreferencesUI(decimals=self.decimals) + self.excellon_defaults_form = ExcellonPreferencesUI(decimals=self.decimals) + self.geometry_defaults_form = GeometryPreferencesUI(decimals=self.decimals) + self.cncjob_defaults_form = CNCJobPreferencesUI(decimals=self.decimals) + self.tools_defaults_form = ToolsPreferencesUI(decimals=self.decimals) + self.tools2_defaults_form = Tools2PreferencesUI(decimals=self.decimals) + self.util_defaults_form = UtilPreferencesUI(decimals=self.decimals) + + QtWidgets.qApp.installEventFilter(self) + + # ######################################################################## + # ################## RESTORE THE TOOLBAR STATE from file ################# + # ######################################################################## + flat_settings = QSettings("Open Source", "FlatCAM") + if flat_settings.contains("saved_gui_state"): + saved_gui_state = flat_settings.value('saved_gui_state') + self.restoreState(saved_gui_state) + log.debug("FlatCAMGUI.__init__() --> UI state restored from QSettings.") + + if flat_settings.contains("layout"): + layout = flat_settings.value('layout', type=str) + self.exc_edit_toolbar.setDisabled(True) + self.geo_edit_toolbar.setDisabled(True) + self.grb_edit_toolbar.setDisabled(True) + + if layout == 'standard': + self.corner_snap_btn.setVisible(False) + self.snap_magnet.setVisible(False) + else: + self.snap_magnet.setVisible(True) + self.corner_snap_btn.setVisible(True) + self.snap_magnet.setDisabled(True) + self.corner_snap_btn.setDisabled(True) + log.debug("FlatCAMGUI.__init__() --> UI layout restored from QSettings. Layout = %s" % str(layout)) + else: + self.exc_edit_toolbar.setDisabled(True) + self.geo_edit_toolbar.setDisabled(True) + self.grb_edit_toolbar.setDisabled(True) + + self.corner_snap_btn.setVisible(False) + self.snap_magnet.setVisible(False) + + flat_settings.setValue('layout', "standard") + # This will write the setting to the platform specific storage. + del flat_settings + log.debug("FlatCAMGUI.__init__() --> UI layout restored from defaults. QSettings set to 'standard'") + + # construct the Toolbar Lock menu entry to the context menu of the QMainWindow + self.lock_action = QtWidgets.QAction() + self.lock_action.setText(_("Lock Toolbars")) + self.lock_action.setCheckable(True) + + qsettings = QSettings("Open Source", "FlatCAM") + if qsettings.contains("toolbar_lock"): + lock_val = settings.value('toolbar_lock') + if lock_val == 'true': + lock_state = True + self.lock_action.setChecked(True) + else: + + lock_state = False + self.lock_action.setChecked(False) + else: + lock_state = False + qsettings.setValue('toolbar_lock', lock_state) + + # This will write the setting to the platform specific storage. + del qsettings + + self.lock_toolbar(lock=lock_state) + self.on_grid_snap_triggered(state=True) + + self.lock_action.triggered[bool].connect(self.lock_toolbar) + + self.pref_open_button.clicked.connect(self.on_preferences_open_folder) + self.clear_btn.clicked.connect(self.on_gui_clear) + self.grid_snap_btn.triggered.connect(self.on_grid_snap_triggered) + self.snap_infobar_label.clicked.connect(self.on_grid_icon_snap_clicked) + + # to be used in the future + # self.plot_tab_area.tab_attached.connect(lambda x: print(x)) + # self.plot_tab_area.tab_detached.connect(lambda x: print(x)) + + # %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + # %%%%%%%%%%%%%%%%% GUI Building FINISHED %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + # %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + def on_grid_snap_triggered(self, state): + """ + + :param state: A parameter with the state of the grid, boolean + + :return: + """ + if state: + self.snap_infobar_label.setPixmap(QtGui.QPixmap(self.app.resource_location + '/snap_filled_16.png')) + else: + self.snap_infobar_label.setPixmap(QtGui.QPixmap(self.app.resource_location + '/snap_16.png')) + + self.snap_infobar_label.clicked_state = state + + def on_grid_icon_snap_clicked(self): + """ + Slot called by clicking a GUI element, in this case a FCLabel + + :return: + """ + if isinstance(self.sender(), FCLabel): + self.grid_snap_btn.trigger() + + def eventFilter(self, obj, event): + """ + Filter the ToolTips display based on a Preferences setting + + :param obj: + :param event: QT event to filter + :return: + """ + if self.app.defaults["global_toggle_tooltips"] is False: + if event.type() == QtCore.QEvent.ToolTip: + return True + else: + return False + + return False + + def on_preferences_open_folder(self): + """ + Will open an Explorer window set to the folder path where the FlatCAM preferences files are usually saved. + + :return: None + """ + + if sys.platform == 'win32': + subprocess.Popen('explorer %s' % self.app.data_path) + elif sys.platform == 'darwin': + os.system('open "%s"' % self.app.data_path) + else: + subprocess.Popen(['xdg-open', self.app.data_path]) + self.app.inform.emit('[success] %s' % _("FlatCAM Preferences Folder opened.")) + + def on_gui_clear(self): + theme_settings = QtCore.QSettings("Open Source", "FlatCAM") + theme_settings.setValue('theme', 'white') + + del theme_settings + + resource_loc = self.app.resource_location + + msgbox = QtWidgets.QMessageBox() + msgbox.setText(_("Are you sure you want to delete the GUI Settings? \n")) + msgbox.setWindowTitle(_("Clear GUI Settings")) + msgbox.setWindowIcon(QtGui.QIcon(resource_loc + '/trash32.png')) + bt_yes = msgbox.addButton(_('Yes'), QtWidgets.QMessageBox.YesRole) + bt_no = msgbox.addButton(_('No'), QtWidgets.QMessageBox.NoRole) + + msgbox.setDefaultButton(bt_no) + msgbox.exec_() + response = msgbox.clickedButton() + + if response == bt_yes: + qsettings = QSettings("Open Source", "FlatCAM") + for key in qsettings.allKeys(): + qsettings.remove(key) + # This will write the setting to the platform specific storage. + del qsettings + + def populate_toolbars(self): + """ + Will populate the App Toolbars with their actions + + :return: None + """ + + # ######################################################################## + # ## File Toolbar # ## + # ######################################################################## + self.file_open_gerber_btn = self.toolbarfile.addAction( + QtGui.QIcon(self.app.resource_location + '/flatcam_icon32.png'), _("Open Gerber")) + self.file_open_excellon_btn = self.toolbarfile.addAction( + QtGui.QIcon(self.app.resource_location + '/drill32.png'), _("Open Excellon")) + self.toolbarfile.addSeparator() + self.file_open_btn = self.toolbarfile.addAction( + QtGui.QIcon(self.app.resource_location + '/folder32.png'), _("Open project")) + self.file_save_btn = self.toolbarfile.addAction( + QtGui.QIcon(self.app.resource_location + '/project_save32.png'), _("Save project")) + + # ######################################################################## + # ## Edit Toolbar # ## + # ######################################################################## + self.newgeo_btn = self.toolbargeo.addAction( + QtGui.QIcon(self.app.resource_location + '/new_file_geo32.png'), _("New Blank Geometry")) + self.newgrb_btn = self.toolbargeo.addAction( + QtGui.QIcon(self.app.resource_location + '/new_file_grb32.png'), _("New Blank Gerber")) + self.newexc_btn = self.toolbargeo.addAction( + QtGui.QIcon(self.app.resource_location + '/new_file_exc32.png'), _("New Blank Excellon")) + self.toolbargeo.addSeparator() + self.editgeo_btn = self.toolbargeo.addAction( + QtGui.QIcon(self.app.resource_location + '/edit32.png'), _("Editor")) + self.update_obj_btn = self.toolbargeo.addAction( + QtGui.QIcon(self.app.resource_location + '/close_edit_file32.png'), + _("Save Object and close the Editor") + ) + + self.toolbargeo.addSeparator() + self.copy_btn = self.toolbargeo.addAction( + QtGui.QIcon(self.app.resource_location + '/copy_file32.png'), _("Copy")) + self.delete_btn = self.toolbargeo.addAction( + QtGui.QIcon(self.app.resource_location + '/delete_file32.png'), _("&Delete")) + self.toolbargeo.addSeparator() + self.distance_btn = self.toolbargeo.addAction( + QtGui.QIcon(self.app.resource_location + '/distance32.png'), _("Distance Tool")) + self.distance_min_btn = self.toolbargeo.addAction( + QtGui.QIcon(self.app.resource_location + '/distance_min32.png'), _("Distance Min Tool")) + self.origin_btn = self.toolbargeo.addAction( + QtGui.QIcon(self.app.resource_location + '/origin32.png'), _('Set Origin')) + self.jmp_btn = self.toolbargeo.addAction( + QtGui.QIcon(self.app.resource_location + '/jump_to16.png'), _('Jump to Location')) + self.locate_btn = self.toolbargeo.addAction( + QtGui.QIcon(self.app.resource_location + '/locate32.png'), _('Locate in Object')) + + # ######################################################################## + # ########################## View Toolbar# ############################### + # ######################################################################## + self.replot_btn = self.toolbarview.addAction( + QtGui.QIcon(self.app.resource_location + '/replot32.png'), _("&Replot")) + self.clear_plot_btn = self.toolbarview.addAction( + QtGui.QIcon(self.app.resource_location + '/clear_plot32.png'), _("&Clear plot")) + self.zoom_in_btn = self.toolbarview.addAction( + QtGui.QIcon(self.app.resource_location + '/zoom_in32.png'), _("Zoom In")) + self.zoom_out_btn = self.toolbarview.addAction( + QtGui.QIcon(self.app.resource_location + '/zoom_out32.png'), _("Zoom Out")) + self.zoom_fit_btn = self.toolbarview.addAction( + QtGui.QIcon(self.app.resource_location + '/zoom_fit32.png'), _("Zoom Fit")) + + # ######################################################################## + # ########################## Shell Toolbar# ############################## + # ######################################################################## + self.shell_btn = self.toolbarshell.addAction( + QtGui.QIcon(self.app.resource_location + '/shell32.png'), _("&Command Line")) + self.new_script_btn = self.toolbarshell.addAction( + QtGui.QIcon(self.app.resource_location + '/script_new24.png'), _('New Script ...')) + self.open_script_btn = self.toolbarshell.addAction( + QtGui.QIcon(self.app.resource_location + '/open_script32.png'), _('Open Script ...')) + self.run_script_btn = self.toolbarshell.addAction( + QtGui.QIcon(self.app.resource_location + '/script16.png'), _('Run Script ...')) + + # ######################################################################### + # ######################### Tools Toolbar ################################# + # ######################################################################### + self.dblsided_btn = self.toolbartools.addAction( + QtGui.QIcon(self.app.resource_location + '/doubleside32.png'), _("2Sided Tool")) + self.align_btn = self.toolbartools.addAction( + QtGui.QIcon(self.app.resource_location + '/align32.png'), _("Align Objects Tool")) + self.extract_btn = self.toolbartools.addAction( + QtGui.QIcon(self.app.resource_location + '/extract_drill32.png'), _("Extract Drills Tool")) + + self.cutout_btn = self.toolbartools.addAction( + QtGui.QIcon(self.app.resource_location + '/cut16_bis.png'), _("&Cutout Tool")) + self.ncc_btn = self.toolbartools.addAction( + QtGui.QIcon(self.app.resource_location + '/ncc16.png'), _("NCC Tool")) + self.paint_btn = self.toolbartools.addAction( + QtGui.QIcon(self.app.resource_location + '/paint20_1.png'), _("Paint Tool")) + self.toolbartools.addSeparator() + + self.panelize_btn = self.toolbartools.addAction( + QtGui.QIcon(self.app.resource_location + '/panelize32.png'), _("Panel Tool")) + self.film_btn = self.toolbartools.addAction( + QtGui.QIcon(self.app.resource_location + '/film16.png'), _("Film Tool")) + self.solder_btn = self.toolbartools.addAction( + QtGui.QIcon(self.app.resource_location + '/solderpastebis32.png'), _("SolderPaste Tool")) + self.sub_btn = self.toolbartools.addAction( + QtGui.QIcon(self.app.resource_location + '/sub32.png'), _("Subtract Tool")) + self.rules_btn = self.toolbartools.addAction( + QtGui.QIcon(self.app.resource_location + '/rules32.png'), _("Rules Tool")) + self.optimal_btn = self.toolbartools.addAction( + QtGui.QIcon(self.app.resource_location + '/open_excellon32.png'), _("Optimal Tool")) + + self.toolbartools.addSeparator() + + self.calculators_btn = self.toolbartools.addAction( + QtGui.QIcon(self.app.resource_location + '/calculator24.png'), _("Calculators Tool")) + self.transform_btn = self.toolbartools.addAction( + QtGui.QIcon(self.app.resource_location + '/transform.png'), _("Transform Tool")) + self.qrcode_btn = self.toolbartools.addAction( + QtGui.QIcon(self.app.resource_location + '/qrcode32.png'), _("QRCode Tool")) + self.copperfill_btn = self.toolbartools.addAction( + QtGui.QIcon(self.app.resource_location + '/copperfill32.png'), _("Copper Thieving Tool")) + + self.fiducials_btn = self.toolbartools.addAction( + QtGui.QIcon(self.app.resource_location + '/fiducials_32.png'), _("Fiducials Tool")) + self.cal_btn = self.toolbartools.addAction( + QtGui.QIcon(self.app.resource_location + '/calibrate_32.png'), _("Calibration Tool")) + self.punch_btn = self.toolbartools.addAction( + QtGui.QIcon(self.app.resource_location + '/punch32.png'), _("Punch Gerber Tool")) + self.invert_btn = self.toolbartools.addAction( + QtGui.QIcon(self.app.resource_location + '/invert32.png'), _("Invert Gerber Tool")) + + # ######################################################################## + # ## Excellon Editor Toolbar # ## + # ######################################################################## + self.select_drill_btn = self.exc_edit_toolbar.addAction( + QtGui.QIcon(self.app.resource_location + '/pointer32.png'), _("Select")) + self.add_drill_btn = self.exc_edit_toolbar.addAction( + QtGui.QIcon(self.app.resource_location + '/plus16.png'), _('Add Drill Hole')) + self.add_drill_array_btn = self.exc_edit_toolbar.addAction( + QtGui.QIcon(self.app.resource_location + '/addarray16.png'), _('Add Drill Hole Array')) + self.resize_drill_btn = self.exc_edit_toolbar.addAction( + QtGui.QIcon(self.app.resource_location + '/resize16.png'), _('Resize Drill')) + self.add_slot_btn = self.exc_edit_toolbar.addAction( + QtGui.QIcon(self.app.resource_location + '/slot26.png'), _('Add Slot')) + self.add_slot_array_btn = self.exc_edit_toolbar.addAction( + QtGui.QIcon(self.app.resource_location + '/slot_array26.png'), _('Add Slot Array')) + self.exc_edit_toolbar.addSeparator() + + self.copy_drill_btn = self.exc_edit_toolbar.addAction( + QtGui.QIcon(self.app.resource_location + '/copy32.png'), _('Copy Drill')) + self.delete_drill_btn = self.exc_edit_toolbar.addAction( + QtGui.QIcon(self.app.resource_location + '/trash32.png'), _("Delete Drill")) + + self.exc_edit_toolbar.addSeparator() + self.move_drill_btn = self.exc_edit_toolbar.addAction( + QtGui.QIcon(self.app.resource_location + '/move32.png'), _("Move Drill")) + + # ######################################################################## + # ## Geometry Editor Toolbar # ## + # ######################################################################## + self.geo_select_btn = self.geo_edit_toolbar.addAction( + QtGui.QIcon(self.app.resource_location + '/pointer32.png'), _("Select 'Esc'")) + self.geo_add_circle_btn = self.geo_edit_toolbar.addAction( + QtGui.QIcon(self.app.resource_location + '/circle32.png'), _('Add Circle')) + self.geo_add_arc_btn = self.geo_edit_toolbar.addAction( + QtGui.QIcon(self.app.resource_location + '/arc32.png'), _('Add Arc')) + self.geo_add_rectangle_btn = self.geo_edit_toolbar.addAction( + QtGui.QIcon(self.app.resource_location + '/rectangle32.png'), _('Add Rectangle')) + + self.geo_edit_toolbar.addSeparator() + self.geo_add_path_btn = self.geo_edit_toolbar.addAction( + QtGui.QIcon(self.app.resource_location + '/path32.png'), _('Add Path')) + self.geo_add_polygon_btn = self.geo_edit_toolbar.addAction( + QtGui.QIcon(self.app.resource_location + '/polygon32.png'), _('Add Polygon')) + self.geo_edit_toolbar.addSeparator() + self.geo_add_text_btn = self.geo_edit_toolbar.addAction( + QtGui.QIcon(self.app.resource_location + '/text32.png'), _('Add Text')) + self.geo_add_buffer_btn = self.geo_edit_toolbar.addAction( + QtGui.QIcon(self.app.resource_location + '/buffer16-2.png'), _('Add Buffer')) + self.geo_add_paint_btn = self.geo_edit_toolbar.addAction( + QtGui.QIcon(self.app.resource_location + '/paint20_1.png'), _('Paint Shape')) + self.geo_eraser_btn = self.geo_edit_toolbar.addAction( + QtGui.QIcon(self.app.resource_location + '/eraser26.png'), _('Eraser')) + + self.geo_edit_toolbar.addSeparator() + self.geo_union_btn = self.geo_edit_toolbar.addAction( + QtGui.QIcon(self.app.resource_location + '/union32.png'), _('Polygon Union')) + self.geo_explode_btn = self.geo_edit_toolbar.addAction( + QtGui.QIcon(self.app.resource_location + '/explode32.png'), _('Polygon Explode')) + + self.geo_intersection_btn = self.geo_edit_toolbar.addAction( + QtGui.QIcon(self.app.resource_location + '/intersection32.png'), _('Polygon Intersection')) + self.geo_subtract_btn = self.geo_edit_toolbar.addAction( + QtGui.QIcon(self.app.resource_location + '/subtract32.png'), _('Polygon Subtraction')) + + self.geo_edit_toolbar.addSeparator() + self.geo_cutpath_btn = self.geo_edit_toolbar.addAction( + QtGui.QIcon(self.app.resource_location + '/cutpath32.png'), _('Cut Path')) + self.geo_copy_btn = self.geo_edit_toolbar.addAction( + QtGui.QIcon(self.app.resource_location + '/copy32.png'), _("Copy Objects")) + self.geo_delete_btn = self.geo_edit_toolbar.addAction( + QtGui.QIcon(self.app.resource_location + '/trash32.png'), _("Delete Shape")) + self.geo_transform_btn = self.geo_edit_toolbar.addAction( + QtGui.QIcon(self.app.resource_location + '/transform.png'), _("Transformations")) + + self.geo_edit_toolbar.addSeparator() + self.geo_move_btn = self.geo_edit_toolbar.addAction( + QtGui.QIcon(self.app.resource_location + '/move32.png'), _("Move Objects")) + + # ######################################################################## + # ## Gerber Editor Toolbar # ## + # ######################################################################## + self.grb_select_btn = self.grb_edit_toolbar.addAction( + QtGui.QIcon(self.app.resource_location + '/pointer32.png'), _("Select")) + self.grb_add_pad_btn = self.grb_edit_toolbar.addAction( + QtGui.QIcon(self.app.resource_location + '/aperture32.png'), _("Add Pad")) + self.add_pad_ar_btn = self.grb_edit_toolbar.addAction( + QtGui.QIcon(self.app.resource_location + '/padarray32.png'), _('Add Pad Array')) + self.grb_add_track_btn = self.grb_edit_toolbar.addAction( + QtGui.QIcon(self.app.resource_location + '/track32.png'), _("Add Track")) + self.grb_add_region_btn = self.grb_edit_toolbar.addAction( + QtGui.QIcon(self.app.resource_location + '/polygon32.png'), _("Add Region")) + self.grb_convert_poly_btn = self.grb_edit_toolbar.addAction( + QtGui.QIcon(self.app.resource_location + '/poligonize32.png'), _("Poligonize")) + + self.grb_add_semidisc_btn = self.grb_edit_toolbar.addAction( + QtGui.QIcon(self.app.resource_location + '/semidisc32.png'), _("SemiDisc")) + self.grb_add_disc_btn = self.grb_edit_toolbar.addAction( + QtGui.QIcon(self.app.resource_location + '/disc32.png'), _("Disc")) + self.grb_edit_toolbar.addSeparator() + + self.aperture_buffer_btn = self.grb_edit_toolbar.addAction( + QtGui.QIcon(self.app.resource_location + '/buffer16-2.png'), _('Buffer')) + self.aperture_scale_btn = self.grb_edit_toolbar.addAction( + QtGui.QIcon(self.app.resource_location + '/scale32.png'), _('Scale')) + self.aperture_markarea_btn = self.grb_edit_toolbar.addAction( + QtGui.QIcon(self.app.resource_location + '/markarea32.png'), _('Mark Area')) + self.aperture_eraser_btn = self.grb_edit_toolbar.addAction( + QtGui.QIcon(self.app.resource_location + '/eraser26.png'), _('Eraser')) + + self.grb_edit_toolbar.addSeparator() + self.aperture_copy_btn = self.grb_edit_toolbar.addAction( + QtGui.QIcon(self.app.resource_location + '/copy32.png'), _("Copy")) + self.aperture_delete_btn = self.grb_edit_toolbar.addAction( + QtGui.QIcon(self.app.resource_location + '/trash32.png'), _("Delete")) + self.grb_transform_btn = self.grb_edit_toolbar.addAction( + QtGui.QIcon(self.app.resource_location + '/transform.png'), _("Transformations")) + self.grb_edit_toolbar.addSeparator() + self.aperture_move_btn = self.grb_edit_toolbar.addAction( + QtGui.QIcon(self.app.resource_location + '/move32.png'), _("Move")) + + # ######################################################################## + # ## Snap Toolbar # ## + # ######################################################################## + + # Snap GRID toolbar is always active to facilitate usage of measurements done on GRID + # self.addToolBar(self.snap_toolbar) + self.grid_snap_btn = self.snap_toolbar.addAction( + QtGui.QIcon(self.app.resource_location + '/grid32.png'), _('Snap to grid')) + self.grid_gap_x_entry = FCEntry2() + self.grid_gap_x_entry.setMaximumWidth(70) + self.grid_gap_x_entry.setToolTip(_("Grid X snapping distance")) + self.snap_toolbar.addWidget(self.grid_gap_x_entry) + + self.grid_gap_y_entry = FCEntry2() + self.grid_gap_y_entry.setMaximumWidth(70) + self.grid_gap_y_entry.setToolTip(_("Grid Y snapping distance")) + self.snap_toolbar.addWidget(self.grid_gap_y_entry) + + self.grid_space_label = QtWidgets.QLabel(" ") + self.snap_toolbar.addWidget(self.grid_space_label) + self.grid_gap_link_cb = FCCheckBox() + self.grid_gap_link_cb.setToolTip(_("When active, value on Grid_X\n" + "is copied to the Grid_Y value.")) + self.snap_toolbar.addWidget(self.grid_gap_link_cb) + + self.ois_grid = OptionalInputSection(self.grid_gap_link_cb, [self.grid_gap_y_entry], logic=False) + + self.corner_snap_btn = self.snap_toolbar.addAction( + QtGui.QIcon(self.app.resource_location + '/corner32.png'), _('Snap to corner')) + + self.snap_max_dist_entry = FCEntry() + self.snap_max_dist_entry.setMaximumWidth(70) + self.snap_max_dist_entry.setToolTip(_("Max. magnet distance")) + self.snap_magnet = self.snap_toolbar.addWidget(self.snap_max_dist_entry) + + self.grid_snap_btn.setCheckable(True) + self.corner_snap_btn.setCheckable(True) + self.update_obj_btn.setEnabled(False) + # start with GRID activated + self.grid_snap_btn.trigger() + + qsettings = QSettings("Open Source", "FlatCAM") + if qsettings.contains("layout"): + layout = qsettings.value('layout', type=str) + + if layout == 'standard': + self.corner_snap_btn.setVisible(False) + self.snap_magnet.setVisible(False) + else: + self.corner_snap_btn.setVisible(True) + self.snap_magnet.setVisible(True) + self.corner_snap_btn.setDisabled(True) + self.snap_magnet.setDisabled(True) + + # on 'minimal' layout only some toolbars are active + if layout != 'minimal': + self.exc_edit_toolbar.setVisible(True) + self.exc_edit_toolbar.setDisabled(True) + self.geo_edit_toolbar.setVisible(True) + self.geo_edit_toolbar.setDisabled(True) + self.grb_edit_toolbar.setVisible(True) + self.grb_edit_toolbar.setDisabled(True) + + def keyPressEvent(self, event): + """ + Key event handler for the entire app. + Some of the key events are also treated locally in the FlatCAM editors + + :param event: QT event + :return: + """ + modifiers = QtWidgets.QApplication.keyboardModifiers() + active = self.app.collection.get_active() + selected = self.app.collection.get_selected() + names_list = self.app.collection.get_names() + + matplotlib_key_flag = False + + # events out of the self.app.collection view (it's about Project Tab) are of type int + if type(event) is int: + key = event + # events from the GUI are of type QKeyEvent + elif type(event) == QtGui.QKeyEvent: + key = event.key() + elif isinstance(event, mpl_key_event): # MatPlotLib key events are trickier to interpret than the rest + matplotlib_key_flag = True + + key = event.key + key = QtGui.QKeySequence(key) + + # check for modifiers + key_string = key.toString().lower() + if '+' in key_string: + mod, __, key_text = key_string.rpartition('+') + if mod.lower() == 'ctrl': + modifiers = QtCore.Qt.ControlModifier + elif mod.lower() == 'alt': + modifiers = QtCore.Qt.AltModifier + elif mod.lower() == 'shift': + modifiers = QtCore.Qt.ShiftModifier + else: + modifiers = QtCore.Qt.NoModifier + key = QtGui.QKeySequence(key_text) + + # events from Vispy are of type KeyEvent + else: + key = event.key + + if self.app.call_source == 'app': + # CTRL + ALT + if modifiers == QtCore.Qt.ControlModifier | QtCore.Qt.AltModifier: + if key == QtCore.Qt.Key_X: + self.app.abort_all_tasks() + return + # CTRL + SHIFT + if modifiers == QtCore.Qt.ControlModifier | QtCore.Qt.ShiftModifier: + if key == QtCore.Qt.Key_S: + self.app.on_file_saveprojectas() + return + # CTRL + elif modifiers == QtCore.Qt.ControlModifier: + # Select All + if key == QtCore.Qt.Key_A: + self.app.on_selectall() + + # Copy an FlatCAM object + if key == QtCore.Qt.Key_C: + widget_name = self.plot_tab_area.currentWidget().objectName() + if widget_name == 'database_tab': + # Tools DB saved, update flag + self.app.tools_db_changed_flag = True + self.app.tools_db_tab.on_tool_copy() + return + + self.app.on_copy_command() + + # Copy an FlatCAM object + if key == QtCore.Qt.Key_D: + self.app.on_tools_database() + + # Open Excellon file + if key == QtCore.Qt.Key_E: + self.app.on_fileopenexcellon(signal=None) + + # Open Gerber file + if key == QtCore.Qt.Key_G: + widget_name = self.plot_tab_area.currentWidget().objectName() + if 'editor' in widget_name.lower(): + self.app.goto_text_line() + else: + self.app.on_fileopengerber(signal=None) + + # Distance Tool + if key == QtCore.Qt.Key_M: + self.app.distance_tool.run() + + # Create New Project + if key == QtCore.Qt.Key_N: + self.app.on_file_new_click() + + # Open Project + if key == QtCore.Qt.Key_O: + self.app.on_file_openproject() + + # Open Project + if key == QtCore.Qt.Key_P: + self.app.on_file_save_objects_pdf(use_thread=True) + + # PDF Import + if key == QtCore.Qt.Key_Q: + self.app.pdf_tool.run() + + # Save Project + if key == QtCore.Qt.Key_S: + widget_name = self.plot_tab_area.currentWidget().objectName() + if widget_name == 'preferences_tab': + self.app.preferencesUiManager.on_save_button(save_to_file=False) + return + + if widget_name == 'database_tab': + # Tools DB saved, update flag + self.app.tools_db_changed_flag = False + self.app.tools_db_tab.on_save_tools_db() + return + + self.app.on_file_saveproject() + + # Toggle Plot Area + if key == QtCore.Qt.Key_F10 or key == 'F10': + self.app.on_toggle_plotarea() + + return + # SHIFT + elif modifiers == QtCore.Qt.ShiftModifier: + + # Copy Object Name + if key == QtCore.Qt.Key_C: + self.app.on_copy_name() + + # Toggle Code Editor + if key == QtCore.Qt.Key_E: + self.app.on_toggle_code_editor() + + # Toggle axis + if key == QtCore.Qt.Key_G: + self.app.on_toggle_axis() + + # Locate in Object + if key == QtCore.Qt.Key_J: + self.app.on_locate(obj=self.app.collection.get_active()) + + # Run Distance Minimum Tool + if key == QtCore.Qt.Key_M: + self.app.distance_min_tool.run() + return + + # Open Preferences Window + if key == QtCore.Qt.Key_P: + self.app.on_preferences() + return + + # Rotate Object by 90 degree CCW + if key == QtCore.Qt.Key_R: + self.app.on_rotate(silent=True, preset=-float(self.app.defaults['tools_transform_rotate'])) + return + + # Run a Script + if key == QtCore.Qt.Key_S: + self.app.on_filerunscript() + return + + # Toggle Workspace + if key == QtCore.Qt.Key_W: + self.app.on_workspace_toggle() + return + + # Skew on X axis + if key == QtCore.Qt.Key_X: + self.app.on_skewx() + return + + # Skew on Y axis + if key == QtCore.Qt.Key_Y: + self.app.on_skewy() + return + # ALT + elif modifiers == QtCore.Qt.AltModifier: + # Eanble all plots + if key == Qt.Key_1: + self.app.enable_all_plots() + + # Disable all plots + if key == Qt.Key_2: + self.app.disable_all_plots() + + # Disable all other plots + if key == Qt.Key_3: + self.app.disable_other_plots() + + # Align in Object Tool + if key == QtCore.Qt.Key_A: + self.app.align_objects_tool.run(toggle=True) + + # Calculator Tool + if key == QtCore.Qt.Key_C: + self.app.calculator_tool.run(toggle=True) + + # 2-Sided PCB Tool + if key == QtCore.Qt.Key_D: + self.app.dblsidedtool.run(toggle=True) + return + + # Calibration Tool + if key == QtCore.Qt.Key_E: + self.app.cal_exc_tool.run(toggle=True) + return + + # Copper Thieving Tool + if key == QtCore.Qt.Key_F: + self.app.copper_thieving_tool.run(toggle=True) + return + + # Toggle Grid lines + if key == QtCore.Qt.Key_G: + self.app.on_toggle_grid_lines() + return + + # Align in Object Tool + if key == QtCore.Qt.Key_H: + self.app.punch_tool.run(toggle=True) + + # Extract Drills Tool + if key == QtCore.Qt.Key_I: + self.app.edrills_tool.run(toggle=True) + + # Fiducials Tool + if key == QtCore.Qt.Key_J: + self.app.fiducial_tool.run(toggle=True) + return + + # Solder Paste Dispensing Tool + if key == QtCore.Qt.Key_K: + self.app.paste_tool.run(toggle=True) + return + + # Film Tool + if key == QtCore.Qt.Key_L: + self.app.film_tool.run(toggle=True) + return + + # Non-Copper Clear Tool + if key == QtCore.Qt.Key_N: + self.app.ncclear_tool.run(toggle=True) + return + + # Optimal Tool + if key == QtCore.Qt.Key_O: + self.app.optimal_tool.run(toggle=True) + return + + # Paint Tool + if key == QtCore.Qt.Key_P: + self.app.paint_tool.run(toggle=True) + return + + # QRCode Tool + if key == QtCore.Qt.Key_Q: + self.app.qrcode_tool.run() + return + + # Rules Tool + if key == QtCore.Qt.Key_R: + self.app.rules_tool.run(toggle=True) + return + + # View Source Object Content + if key == QtCore.Qt.Key_S: + self.app.on_view_source() + return + + # Transformation Tool + if key == QtCore.Qt.Key_T: + self.app.transform_tool.run(toggle=True) + return + + # Substract Tool + if key == QtCore.Qt.Key_W: + self.app.sub_tool.run(toggle=True) + return + + # Cutout Tool + if key == QtCore.Qt.Key_X: + self.app.cutout_tool.run(toggle=True) + return + + # Panelize Tool + if key == QtCore.Qt.Key_Z: + self.app.panelize_tool.run(toggle=True) + return + + # Toggle Fullscreen + if key == QtCore.Qt.Key_F10 or key == 'F10': + self.app.on_fullscreen() + return + # NO MODIFIER + elif modifiers == QtCore.Qt.NoModifier: + # Open Manual + if key == QtCore.Qt.Key_F1 or key == 'F1': + webbrowser.open(self.app.manual_url) + + # Show shortcut list + if key == QtCore.Qt.Key_F3 or key == 'F3': + self.app.on_shortcut_list() + + # Open Video Help + if key == QtCore.Qt.Key_F4 or key == 'F4': + webbrowser.open(self.app.video_url) + + # Open Video Help + if key == QtCore.Qt.Key_F5 or key == 'F5': + self.app.plot_all() + + # Switch to Project Tab + if key == QtCore.Qt.Key_1: + self.app.on_select_tab('project') + + # Switch to Selected Tab + if key == QtCore.Qt.Key_2: + self.app.on_select_tab('selected') + + # Switch to Tool Tab + if key == QtCore.Qt.Key_3: + self.app.on_select_tab('tool') + + # Delete from PyQt + # It's meant to make a difference between delete objects and delete tools in + # Geometry Selected tool table + if key == QtCore.Qt.Key_Delete and matplotlib_key_flag is False: + widget_name = self.plot_tab_area.currentWidget().objectName() + if widget_name == 'database_tab': + # Tools DB saved, update flag + self.app.tools_db_changed_flag = True + self.app.tools_db_tab.on_tool_delete() + return + + self.app.on_delete_keypress() + + # Delete from canvas + if key == 'Delete': + # Delete via the application to + # ensure cleanup of the GUI + if active: + active.app.on_delete() + + # Escape = Deselect All + if key == QtCore.Qt.Key_Escape or key == 'Escape': + self.app.on_deselect_all() + + # if in full screen, exit to normal view + if self.app.toggle_fscreen is True: + self.app.on_fullscreen(disable=True) + + # try to disconnect the slot from Set Origin + try: + self.app.plotcanvas.graph_event_disconnect('mouse_press', self.app.on_set_zero_click) + except TypeError: + pass + self.app.inform.emit("") + + # Space = Toggle Active/Inactive + if key == QtCore.Qt.Key_Space: + for select in selected: + select.ui.plot_cb.toggle() + self.app.collection.update_view() + self.app.delete_selection_shape() + + # Select the object in the Tree above the current one + if key == QtCore.Qt.Key_Up: + # make sure it works only for the Project Tab who is an instance of KeySensitiveListView + focused_wdg = QtWidgets.QApplication.focusWidget() + if isinstance(focused_wdg, KeySensitiveListView): + self.app.collection.set_all_inactive() + if active is None: + return + active_name = active.options['name'] + active_index = names_list.index(active_name) + if active_index == 0: + self.app.collection.set_active(names_list[-1]) + else: + self.app.collection.set_active(names_list[active_index-1]) + + # Select the object in the Tree below the current one + if key == QtCore.Qt.Key_Down: + # make sure it works only for the Project Tab who is an instance of KeySensitiveListView + focused_wdg = QtWidgets.QApplication.focusWidget() + if isinstance(focused_wdg, KeySensitiveListView): + self.app.collection.set_all_inactive() + if active is None: + return + active_name = active.options['name'] + active_index = names_list.index(active_name) + if active_index == len(names_list) - 1: + self.app.collection.set_active(names_list[0]) + else: + self.app.collection.set_active(names_list[active_index+1]) + + # New Geometry + if key == QtCore.Qt.Key_B: + self.app.new_gerber_object() + + # New Geometry + if key == QtCore.Qt.Key_D: + self.app.new_document_object() + + # Copy Object Name + if key == QtCore.Qt.Key_E: + self.app.object2editor() + + # Grid toggle + if key == QtCore.Qt.Key_G: + self.app.ui.grid_snap_btn.trigger() + + # Jump to coords + if key == QtCore.Qt.Key_J: + self.app.on_jump_to() + + # New Excellon + if key == QtCore.Qt.Key_L: + self.app.new_excellon_object() + + # Move tool toggle + if key == QtCore.Qt.Key_M: + self.app.move_tool.toggle() + + # New Geometry + if key == QtCore.Qt.Key_N: + self.app.new_geometry_object() + + # Set Origin + if key == QtCore.Qt.Key_O: + self.app.on_set_origin() + return + + # Properties Tool + if key == QtCore.Qt.Key_P: + self.app.properties_tool.run() + return + + # Change Units + if key == QtCore.Qt.Key_Q: + # if self.app.defaults["units"] == 'MM': + # self.app.ui.general_defaults_form.general_app_group.units_radio.set_value("IN") + # else: + # self.app.ui.general_defaults_form.general_app_group.units_radio.set_value("MM") + # self.app.on_toggle_units(no_pref=True) + self.app.on_toggle_units_click() + + # Rotate Object by 90 degree CW + if key == QtCore.Qt.Key_R: + self.app.on_rotate(silent=True, preset=self.app.defaults['tools_transform_rotate']) + + # Shell toggle + if key == QtCore.Qt.Key_S: + self.app.toggle_shell() + + # Add a Tool from shortcut + if key == QtCore.Qt.Key_T: + widget_name = self.plot_tab_area.currentWidget().objectName() + if widget_name == 'database_tab': + # Tools DB saved, update flag + self.app.tools_db_changed_flag = True + self.app.tools_db_tab.on_tool_add() + return + + self.app.on_tool_add_keypress() + + # Zoom Fit + if key == QtCore.Qt.Key_V: + self.app.on_zoom_fit(None) + + # Mirror on X the selected object(s) + if key == QtCore.Qt.Key_X: + self.app.on_flipx() + + # Mirror on Y the selected object(s) + if key == QtCore.Qt.Key_Y: + self.app.on_flipy() + + # Zoom In + if key == QtCore.Qt.Key_Equal: + self.app.plotcanvas.zoom(1 / self.app.defaults['global_zoom_ratio'], self.app.mouse) + + # Zoom Out + if key == QtCore.Qt.Key_Minus: + self.app.plotcanvas.zoom(self.app.defaults['global_zoom_ratio'], self.app.mouse) + + # toggle display of Notebook area + if key == QtCore.Qt.Key_QuoteLeft: + self.app.on_toggle_notebook() + + return + elif self.app.call_source == 'geo_editor': + # CTRL + if modifiers == QtCore.Qt.ControlModifier: + # save (update) the current geometry and return to the App + if key == QtCore.Qt.Key_S or key == 'S': + self.app.editor2object() + return + + # toggle the measurement tool + if key == QtCore.Qt.Key_M or key == 'M': + self.app.distance_tool.run() + return + + # Cut Action Tool + if key == QtCore.Qt.Key_X or key == 'X': + if self.app.geo_editor.get_selected() is not None: + self.app.geo_editor.cutpath() + else: + msg = _('Please first select a geometry item to be cutted\n' + 'then select the geometry item that will be cutted\n' + 'out of the first item. In the end press ~X~ key or\n' + 'the toolbar button.') + + messagebox = QtWidgets.QMessageBox() + messagebox.setText(msg) + messagebox.setWindowTitle(_("Warning")) + messagebox.setWindowIcon(QtGui.QIcon(self.app.resource_location + '/warning.png')) + messagebox.setStandardButtons(QtWidgets.QMessageBox.Ok) + messagebox.setDefaultButton(QtWidgets.QMessageBox.Ok) + messagebox.exec_() + return + # SHIFT + elif modifiers == QtCore.Qt.ShiftModifier: + # Run Distance Minimum Tool + if key == QtCore.Qt.Key_M or key == 'M': + self.app.distance_min_tool.run() + return + + # Skew on X axis + if key == QtCore.Qt.Key_X or key == 'X': + self.app.geo_editor.transform_tool.on_skewx_key() + return + + # Skew on Y axis + if key == QtCore.Qt.Key_Y or key == 'Y': + self.app.geo_editor.transform_tool.on_skewy_key() + return + # ALT + elif modifiers == QtCore.Qt.AltModifier: + + # Transformation Tool + if key == QtCore.Qt.Key_R or key == 'R': + self.app.geo_editor.select_tool('transform') + return + + # Offset on X axis + if key == QtCore.Qt.Key_X or key == 'X': + self.app.geo_editor.transform_tool.on_offx_key() + return + + # Offset on Y axis + if key == QtCore.Qt.Key_Y or key == 'Y': + self.app.geo_editor.transform_tool.on_offy_key() + return + # NO MODIFIER + elif modifiers == QtCore.Qt.NoModifier: + # toggle display of Notebook area + if key == QtCore.Qt.Key_QuoteLeft or key == '`': + self.app.on_toggle_notebook() + + # Finish the current action. Use with tools that do not + # complete automatically, like a polygon or path. + if key == QtCore.Qt.Key_Enter or key == 'Enter': + if isinstance(self.app.geo_editor.active_tool, FCShapeTool): + if self.app.geo_editor.active_tool.name == 'rotate': + self.app.geo_editor.active_tool.make() + + if self.app.geo_editor.active_tool.complete: + self.app.geo_editor.on_shape_complete() + self.app.inform.emit('[success] %s' % _("Done.")) + # automatically make the selection tool active after completing current action + self.app.geo_editor.select_tool('select') + return + else: + self.app.geo_editor.active_tool.click( + self.app.geo_editor.snap(self.app.geo_editor.x, self.app.geo_editor.y)) + + self.app.geo_editor.active_tool.make() + + if self.app.geo_editor.active_tool.complete: + self.app.geo_editor.on_shape_complete() + self.app.inform.emit('[success] %s' % _("Done.")) + # automatically make the selection tool active after completing current action + self.app.geo_editor.select_tool('select') + + # Abort the current action + if key == QtCore.Qt.Key_Escape or key == 'Escape': + # self.on_tool_select("select") + self.app.inform.emit('[WARNING_NOTCL] %s' % _("Cancelled.")) + + self.app.geo_editor.delete_utility_geometry() + + self.app.geo_editor.active_tool.clean_up() + + self.app.geo_editor.select_tool('select') + + # hide the notebook + self.app.ui.splitter.setSizes([0, 1]) + return + + # Delete selected object + if key == QtCore.Qt.Key_Delete or key == 'Delete': + self.app.geo_editor.delete_selected() + self.app.geo_editor.replot() + + # Rotate + if key == QtCore.Qt.Key_Space or key == 'Space': + self.app.geo_editor.transform_tool.on_rotate_key() + + # Zoom Out + if key == QtCore.Qt.Key_Minus or key == '-': + self.app.plotcanvas.zoom(1 / self.app.defaults['global_zoom_ratio'], + [self.app.geo_editor.snap_x, self.app.geo_editor.snap_y]) + + # Zoom In + if key == QtCore.Qt.Key_Equal or key == '=': + self.app.plotcanvas.zoom(self.app.defaults['global_zoom_ratio'], + [self.app.geo_editor.snap_x, self.app.geo_editor.snap_y]) + + # Switch to Project Tab + if key == QtCore.Qt.Key_1 or key == '1': + self.app.on_select_tab('project') + + # Switch to Selected Tab + if key == QtCore.Qt.Key_2 or key == '2': + self.app.on_select_tab('selected') + + # Switch to Tool Tab + if key == QtCore.Qt.Key_3 or key == '3': + self.app.on_select_tab('tool') + + # Grid Snap + if key == QtCore.Qt.Key_G or key == 'G': + self.app.ui.grid_snap_btn.trigger() + + # make sure that the cursor shape is enabled/disabled, too + if self.app.geo_editor.options['grid_snap'] is True: + self.app.app_cursor.enabled = True + else: + self.app.app_cursor.enabled = False + + # Corner Snap + if key == QtCore.Qt.Key_K or key == 'K': + self.app.geo_editor.on_corner_snap() + + if key == QtCore.Qt.Key_V or key == 'V': + self.app.on_zoom_fit(None) + + # we do this so we can reuse the following keys while inside a Tool + # the above keys are general enough so were left outside + if self.app.geo_editor.active_tool is not None and self.geo_select_btn.isChecked() is False: + response = self.app.geo_editor.active_tool.on_key(key=key) + if response is not None: + self.app.inform.emit(response) + else: + # Arc Tool + if key == QtCore.Qt.Key_A or key == 'A': + self.app.geo_editor.select_tool('arc') + + # Buffer + if key == QtCore.Qt.Key_B or key == 'B': + self.app.geo_editor.select_tool('buffer') + + # Copy + if key == QtCore.Qt.Key_C or key == 'C': + self.app.geo_editor.on_copy_click() + + # Substract Tool + if key == QtCore.Qt.Key_E or key == 'E': + if self.app.geo_editor.get_selected() is not None: + self.app.geo_editor.intersection() + else: + msg = _("Please select geometry items \n" + "on which to perform Intersection Tool.") + + messagebox = QtWidgets.QMessageBox() + messagebox.setText(msg) + messagebox.setWindowTitle(_("Warning")) + messagebox.setWindowIcon(QtGui.QIcon(self.app.resource_location + '/warning.png')) + messagebox.setStandardButtons(QtWidgets.QMessageBox.Ok) + messagebox.setDefaultButton(QtWidgets.QMessageBox.Ok) + messagebox.exec_() + + # Paint + if key == QtCore.Qt.Key_I or key == 'I': + self.app.geo_editor.select_tool('paint') + + # Jump to coords + if key == QtCore.Qt.Key_J or key == 'J': + self.app.on_jump_to() + + # Move + if key == QtCore.Qt.Key_M or key == 'M': + self.app.geo_editor.on_move_click() + + # Polygon Tool + if key == QtCore.Qt.Key_N or key == 'N': + self.app.geo_editor.select_tool('polygon') + + # Circle Tool + if key == QtCore.Qt.Key_O or key == 'O': + self.app.geo_editor.select_tool('circle') + + # Path Tool + if key == QtCore.Qt.Key_P or key == 'P': + self.app.geo_editor.select_tool('path') + + # Rectangle Tool + if key == QtCore.Qt.Key_R or key == 'R': + self.app.geo_editor.select_tool('rectangle') + + # Substract Tool + if key == QtCore.Qt.Key_S or key == 'S': + if self.app.geo_editor.get_selected() is not None: + self.app.geo_editor.subtract() + else: + msg = _( + "Please select geometry items \n" + "on which to perform Substraction Tool.") + + messagebox = QtWidgets.QMessageBox() + messagebox.setText(msg) + messagebox.setWindowTitle(_("Warning")) + messagebox.setWindowIcon(QtGui.QIcon(self.app.resource_location + '/warning.png')) + messagebox.setStandardButtons(QtWidgets.QMessageBox.Ok) + messagebox.setDefaultButton(QtWidgets.QMessageBox.Ok) + messagebox.exec_() + + # Add Text Tool + if key == QtCore.Qt.Key_T or key == 'T': + self.app.geo_editor.select_tool('text') + + # Substract Tool + if key == QtCore.Qt.Key_U or key == 'U': + if self.app.geo_editor.get_selected() is not None: + self.app.geo_editor.union() + else: + msg = _("Please select geometry items \n" + "on which to perform union.") + + messagebox = QtWidgets.QMessageBox() + messagebox.setText(msg) + messagebox.setWindowTitle(_("Warning")) + messagebox.setWindowIcon(QtGui.QIcon(self.app.resource_location + '/warning.png')) + messagebox.setStandardButtons(QtWidgets.QMessageBox.Ok) + messagebox.setDefaultButton(QtWidgets.QMessageBox.Ok) + messagebox.exec_() + + # Flip on X axis + if key == QtCore.Qt.Key_X or key == 'X': + self.app.geo_editor.transform_tool.on_flipx() + return + + # Flip on Y axis + if key == QtCore.Qt.Key_Y or key == 'Y': + self.app.geo_editor.transform_tool.on_flipy() + return + + # Show Shortcut list + if key == 'F3': + self.app.on_shortcut_list() + elif self.app.call_source == 'grb_editor': + # CTRL + if modifiers == QtCore.Qt.ControlModifier: + # Eraser Tool + if key == QtCore.Qt.Key_E or key == 'E': + self.app.grb_editor.on_eraser() + return + + # save (update) the current geometry and return to the App + if key == QtCore.Qt.Key_S or key == 'S': + self.app.editor2object() + return + + # toggle the measurement tool + if key == QtCore.Qt.Key_M or key == 'M': + self.app.distance_tool.run() + return + # SHIFT + elif modifiers == QtCore.Qt.ShiftModifier: + # Run Distance Minimum Tool + if key == QtCore.Qt.Key_M or key == 'M': + self.app.distance_min_tool.run() + return + # ALT + elif modifiers == QtCore.Qt.AltModifier: + # Mark Area Tool + if key == QtCore.Qt.Key_A or key == 'A': + self.app.grb_editor.on_markarea() + return + + # Poligonize Tool + if key == QtCore.Qt.Key_N or key == 'N': + self.app.grb_editor.on_poligonize() + return + # Transformation Tool + if key == QtCore.Qt.Key_R or key == 'R': + self.app.grb_editor.on_transform() + return + # NO MODIFIER + elif modifiers == QtCore.Qt.NoModifier: + # Abort the current action + if key == QtCore.Qt.Key_Escape or key == 'Escape': + # self.on_tool_select("select") + self.app.inform.emit('[WARNING_NOTCL] %s' % _("Cancelled.")) + + self.app.grb_editor.delete_utility_geometry() + + # self.app.grb_editor.plot_all() + self.app.grb_editor.active_tool.clean_up() + self.app.grb_editor.select_tool('select') + return + + # Delete selected object if delete key event comes out of canvas + if key == 'Delete': + self.app.grb_editor.launched_from_shortcuts = True + if self.app.grb_editor.selected: + self.app.grb_editor.delete_selected() + self.app.grb_editor.plot_all() + else: + self.app.inform.emit('[WARNING_NOTCL] %s' % _("Cancelled. Nothing selected to delete.")) + return + + # Delete aperture in apertures table if delete key event comes from the Selected Tab + if key == QtCore.Qt.Key_Delete: + self.app.grb_editor.launched_from_shortcuts = True + self.app.grb_editor.on_aperture_delete() + return + + if key == QtCore.Qt.Key_Minus or key == '-': + self.app.grb_editor.launched_from_shortcuts = True + self.app.plotcanvas.zoom(1 / self.app.defaults['global_zoom_ratio'], + [self.app.grb_editor.snap_x, self.app.grb_editor.snap_y]) + return + + if key == QtCore.Qt.Key_Equal or key == '=': + self.app.grb_editor.launched_from_shortcuts = True + self.app.plotcanvas.zoom(self.app.defaults['global_zoom_ratio'], + [self.app.grb_editor.snap_x, self.app.grb_editor.snap_y]) + return + + # toggle display of Notebook area + if key == QtCore.Qt.Key_QuoteLeft or key == '`': + self.app.grb_editor.launched_from_shortcuts = True + self.app.on_toggle_notebook() + return + + # Rotate + if key == QtCore.Qt.Key_Space or key == 'Space': + self.app.grb_editor.transform_tool.on_rotate_key() + + # Switch to Project Tab + if key == QtCore.Qt.Key_1 or key == '1': + self.app.grb_editor.launched_from_shortcuts = True + self.app.on_select_tab('project') + return + + # Switch to Selected Tab + if key == QtCore.Qt.Key_2 or key == '2': + self.app.grb_editor.launched_from_shortcuts = True + self.app.on_select_tab('selected') + return + + # Switch to Tool Tab + if key == QtCore.Qt.Key_3 or key == '3': + self.app.grb_editor.launched_from_shortcuts = True + self.app.on_select_tab('tool') + return + + # we do this so we can reuse the following keys while inside a Tool + # the above keys are general enough so were left outside + if self.app.grb_editor.active_tool is not None and self.grb_select_btn.isChecked() is False: + response = self.app.grb_editor.active_tool.on_key(key=key) + if response is not None: + self.app.inform.emit(response) + else: + # Add Array of pads + if key == QtCore.Qt.Key_A or key == 'A': + self.app.grb_editor.launched_from_shortcuts = True + self.app.inform.emit("Click on target point.") + self.app.ui.add_pad_ar_btn.setChecked(True) + + self.app.grb_editor.x = self.app.mouse[0] + self.app.grb_editor.y = self.app.mouse[1] + + self.app.grb_editor.select_tool('array') + return + + # Scale Tool + if key == QtCore.Qt.Key_B or key == 'B': + self.app.grb_editor.launched_from_shortcuts = True + self.app.grb_editor.select_tool('buffer') + return + + # Copy + if key == QtCore.Qt.Key_C or key == 'C': + self.app.grb_editor.launched_from_shortcuts = True + if self.app.grb_editor.selected: + self.app.inform.emit(_("Click on target point.")) + self.app.ui.aperture_copy_btn.setChecked(True) + self.app.grb_editor.on_tool_select('copy') + self.app.grb_editor.active_tool.set_origin( + (self.app.grb_editor.snap_x, self.app.grb_editor.snap_y)) + else: + self.app.inform.emit('[WARNING_NOTCL] %s' % _("Cancelled. Nothing selected to copy.")) + return + + # Add Disc Tool + if key == QtCore.Qt.Key_D or key == 'D': + self.app.grb_editor.launched_from_shortcuts = True + self.app.grb_editor.select_tool('disc') + return + + # Add SemiDisc Tool + if key == QtCore.Qt.Key_E or key == 'E': + self.app.grb_editor.launched_from_shortcuts = True + self.app.grb_editor.select_tool('semidisc') + return + + # Grid Snap + if key == QtCore.Qt.Key_G or key == 'G': + self.app.grb_editor.launched_from_shortcuts = True + # make sure that the cursor shape is enabled/disabled, too + if self.app.grb_editor.options['grid_snap'] is True: + self.app.app_cursor.enabled = False + else: + self.app.app_cursor.enabled = True + self.app.ui.grid_snap_btn.trigger() + return + + # Jump to coords + if key == QtCore.Qt.Key_J or key == 'J': + self.app.on_jump_to() + + # Corner Snap + if key == QtCore.Qt.Key_K or key == 'K': + self.app.grb_editor.launched_from_shortcuts = True + self.app.ui.corner_snap_btn.trigger() + return + + # Move + if key == QtCore.Qt.Key_M or key == 'M': + self.app.grb_editor.launched_from_shortcuts = True + if self.app.grb_editor.selected: + self.app.inform.emit(_("Click on target point.")) + self.app.ui.aperture_move_btn.setChecked(True) + self.app.grb_editor.on_tool_select('move') + self.app.grb_editor.active_tool.set_origin( + (self.app.grb_editor.snap_x, self.app.grb_editor.snap_y)) + else: + self.app.inform.emit('[WARNING_NOTCL] %s' % _("Cancelled. Nothing selected to move.")) + return + + # Add Region Tool + if key == QtCore.Qt.Key_N or key == 'N': + self.app.grb_editor.launched_from_shortcuts = True + self.app.grb_editor.select_tool('region') + return + + # Add Pad Tool + if key == QtCore.Qt.Key_P or key == 'P': + self.app.grb_editor.launched_from_shortcuts = True + self.app.inform.emit(_("Click on target point.")) + self.app.ui.add_pad_ar_btn.setChecked(True) + + self.app.grb_editor.x = self.app.mouse[0] + self.app.grb_editor.y = self.app.mouse[1] + + self.app.grb_editor.select_tool('pad') + return + + # Scale Tool + if key == QtCore.Qt.Key_S or key == 'S': + self.app.grb_editor.launched_from_shortcuts = True + self.app.grb_editor.select_tool('scale') + return + + # Add Track + if key == QtCore.Qt.Key_T or key == 'T': + self.app.grb_editor.launched_from_shortcuts = True + # ## Current application units in Upper Case + self.app.grb_editor.select_tool('track') + return + + # Zoom fit + if key == QtCore.Qt.Key_V or key == 'V': + self.app.grb_editor.launched_from_shortcuts = True + self.app.grb_editor.on_zoom_fit() + return + + # Show Shortcut list + if key == QtCore.Qt.Key_F3 or key == 'F3': + self.app.on_shortcut_list() + return + elif self.app.call_source == 'exc_editor': + # CTRL + if modifiers == QtCore.Qt.ControlModifier: + # save (update) the current geometry and return to the App + if key == QtCore.Qt.Key_S or key == 'S': + self.app.editor2object() + return + + # toggle the measurement tool + if key == QtCore.Qt.Key_M or key == 'M': + self.app.distance_tool.run() + return + # SHIFT + elif modifiers == QtCore.Qt.ShiftModifier: + # Run Distance Minimum Tool + if key == QtCore.Qt.Key_M or key == 'M': + self.app.distance_min_tool.run() + return + # ALT + elif modifiers == QtCore.Qt.AltModifier: + pass + # NO MODIFIER + elif modifiers == QtCore.Qt.NoModifier: + # Abort the current action + if key == QtCore.Qt.Key_Escape or key == 'Escape': + self.app.inform.emit('[WARNING_NOTCL] %s' % _("Cancelled.")) + + self.app.exc_editor.delete_utility_geometry() + + self.app.exc_editor.active_tool.clean_up() + + self.app.exc_editor.select_tool('drill_select') + return + + # Delete selected object if delete key event comes out of canvas + if key == 'Delete': + self.app.exc_editor.launched_from_shortcuts = True + if self.app.exc_editor.selected: + self.app.exc_editor.delete_selected() + self.app.exc_editor.replot() + else: + self.app.inform.emit('[WARNING_NOTCL] %s' % _("Cancelled. Nothing selected to delete.")) + return + + # Delete tools in tools table if delete key event comes from the Selected Tab + if key == QtCore.Qt.Key_Delete: + self.app.exc_editor.launched_from_shortcuts = True + self.app.exc_editor.on_tool_delete() + return + + if key == QtCore.Qt.Key_Minus or key == '-': + self.app.exc_editor.launched_from_shortcuts = True + self.app.plotcanvas.zoom(1 / self.app.defaults['global_zoom_ratio'], + [self.app.exc_editor.snap_x, self.app.exc_editor.snap_y]) + return + + if key == QtCore.Qt.Key_Equal or key == '=': + self.app.exc_editor.launched_from_shortcuts = True + self.app.plotcanvas.zoom(self.app.defaults['global_zoom_ratio'], + [self.app.exc_editor.snap_x, self.app.exc_editor.snap_y]) + return + + # toggle display of Notebook area + if key == QtCore.Qt.Key_QuoteLeft or key == '`': + self.app.exc_editor.launched_from_shortcuts = True + self.app.on_toggle_notebook() + return + + # Switch to Project Tab + if key == QtCore.Qt.Key_1 or key == '1': + self.app.exc_editor.launched_from_shortcuts = True + self.app.on_select_tab('project') + return + + # Switch to Selected Tab + if key == QtCore.Qt.Key_2 or key == '2': + self.app.exc_editor.launched_from_shortcuts = True + self.app.on_select_tab('selected') + return + + # Switch to Tool Tab + if key == QtCore.Qt.Key_3 or key == '3': + self.app.exc_editor.launched_from_shortcuts = True + self.app.on_select_tab('tool') + return + + # Grid Snap + if key == QtCore.Qt.Key_G or key == 'G': + self.app.exc_editor.launched_from_shortcuts = True + # make sure that the cursor shape is enabled/disabled, too + if self.app.exc_editor.options['grid_snap'] is True: + self.app.app_cursor.enabled = False + else: + self.app.app_cursor.enabled = True + self.app.ui.grid_snap_btn.trigger() + return + + # Corner Snap + if key == QtCore.Qt.Key_K or key == 'K': + self.app.exc_editor.launched_from_shortcuts = True + self.app.ui.corner_snap_btn.trigger() + return + + # Zoom Fit + if key == QtCore.Qt.Key_V or key == 'V': + self.app.exc_editor.launched_from_shortcuts = True + self.app.on_zoom_fit(None) + return + + # Add Slot Hole Tool + if key == QtCore.Qt.Key_W or key == 'W': + self.app.exc_editor.launched_from_shortcuts = True + self.app.inform.emit(_("Click on target point.")) + self.app.ui.add_slot_btn.setChecked(True) + + self.app.exc_editor.x = self.app.mouse[0] + self.app.exc_editor.y = self.app.mouse[1] + + self.app.exc_editor.select_tool('slot_add') + return + + # Propagate to tool + + # Show Shortcut list + if key == QtCore.Qt.Key_F3 or key == 'F3': + self.app.on_shortcut_list() + return + + # we do this so we can reuse the following keys while inside a Tool + # the above keys are general enough so were left outside + if self.app.exc_editor.active_tool is not None and self.select_drill_btn.isChecked() is False: + response = self.app.exc_editor.active_tool.on_key(key=key) + if response is not None: + self.app.inform.emit(response) + else: + # Add Array of Drill Hole Tool + if key == QtCore.Qt.Key_A or key == 'A': + self.app.exc_editor.launched_from_shortcuts = True + self.app.inform.emit("Click on target point.") + self.app.ui.add_drill_array_btn.setChecked(True) + + self.app.exc_editor.x = self.app.mouse[0] + self.app.exc_editor.y = self.app.mouse[1] + + self.app.exc_editor.select_tool('drill_array') + return + + # Copy + if key == QtCore.Qt.Key_C or key == 'C': + self.app.exc_editor.launched_from_shortcuts = True + if self.app.exc_editor.selected: + self.app.inform.emit(_("Click on target point.")) + self.app.ui.copy_drill_btn.setChecked(True) + self.app.exc_editor.on_tool_select('drill_copy') + self.app.exc_editor.active_tool.set_origin( + (self.app.exc_editor.snap_x, self.app.exc_editor.snap_y)) + else: + self.app.inform.emit('[WARNING_NOTCL] %s' % _("Cancelled. Nothing selected to copy.")) + return + + # Add Drill Hole Tool + if key == QtCore.Qt.Key_D or key == 'D': + self.app.exc_editor.launched_from_shortcuts = True + self.app.inform.emit(_("Click on target point.")) + self.app.ui.add_drill_btn.setChecked(True) + + self.app.exc_editor.x = self.app.mouse[0] + self.app.exc_editor.y = self.app.mouse[1] + + self.app.exc_editor.select_tool('drill_add') + return + + # Jump to coords + if key == QtCore.Qt.Key_J or key == 'J': + self.app.on_jump_to() + + # Move + if key == QtCore.Qt.Key_M or key == 'M': + self.app.exc_editor.launched_from_shortcuts = True + if self.app.exc_editor.selected: + self.app.inform.emit(_("Click on target point.")) + self.app.ui.move_drill_btn.setChecked(True) + self.app.exc_editor.on_tool_select('drill_move') + self.app.exc_editor.active_tool.set_origin( + (self.app.exc_editor.snap_x, self.app.exc_editor.snap_y)) + else: + self.app.inform.emit('[WARNING_NOTCL] %s' % _("Cancelled. Nothing selected to move.")) + return + + # Add Array of Slots Hole Tool + if key == QtCore.Qt.Key_Q or key == 'Q': + self.app.exc_editor.launched_from_shortcuts = True + self.app.inform.emit("Click on target point.") + self.app.ui.add_slot_array_btn.setChecked(True) + + self.app.exc_editor.x = self.app.mouse[0] + self.app.exc_editor.y = self.app.mouse[1] + + self.app.exc_editor.select_tool('slot_array') + return + + # Resize Tool + if key == QtCore.Qt.Key_R or key == 'R': + self.app.exc_editor.launched_from_shortcuts = True + self.app.exc_editor.select_tool('drill_resize') + return + + # Add Tool + if key == QtCore.Qt.Key_T or key == 'T': + self.app.exc_editor.launched_from_shortcuts = True + # ## Current application units in Upper Case + self.units = self.general_defaults_form.general_app_group.units_radio.get_value().upper() + tool_add_popup = FCInputDialog(title=_("New Tool ..."), + text='%s:' % _('Enter a Tool Diameter'), + min=0.0000, max=99.9999, decimals=4) + tool_add_popup.setWindowIcon(QtGui.QIcon(self.app.resource_location + '/letter_t_32.png')) + + val, ok = tool_add_popup.get_value() + if ok: + self.app.exc_editor.on_tool_add(tooldia=val) + formated_val = '%.*f' % (self.decimals, float(val)) + self.app.inform.emit( + '[success] %s: %s %s' % (_("Added new tool with dia"), formated_val, str(self.units)) + ) + else: + self.app.inform.emit('[WARNING_NOTCL] %s' % _("Adding Tool cancelled ...")) + return + elif self.app.call_source == 'measurement': + if modifiers == QtCore.Qt.ControlModifier: + pass + elif modifiers == QtCore.Qt.AltModifier: + pass + elif modifiers == QtCore.Qt.ShiftModifier: + pass + # NO MODIFIER + elif modifiers == QtCore.Qt.NoModifier: + if key == QtCore.Qt.Key_Escape or key == 'Escape': + # abort the measurement action + self.app.distance_tool.deactivate_measure_tool() + self.app.inform.emit(_("Distance Tool exit...")) + return + + if key == QtCore.Qt.Key_G or key == 'G': + self.app.ui.grid_snap_btn.trigger() + return + + # Jump to coords + if key == QtCore.Qt.Key_J or key == 'J': + self.app.on_jump_to() + elif self.app.call_source == 'qrcode_tool': + # CTRL + ALT + if modifiers == QtCore.Qt.ControlModifier | QtCore.Qt.AltModifier: + if key == QtCore.Qt.Key_X: + self.app.abort_all_tasks() + return + + elif modifiers == QtCore.Qt.ControlModifier: + pass + elif modifiers == QtCore.Qt.ShiftModifier: + pass + elif modifiers == QtCore.Qt.AltModifier: + pass + # NO MODIFIER + elif modifiers == QtCore.Qt.NoModifier: + # Escape = Deselect All + if key == QtCore.Qt.Key_Escape or key == 'Escape': + self.app.qrcode_tool.on_exit() + + # Grid toggle + if key == QtCore.Qt.Key_G: + self.app.ui.grid_snap_btn.trigger() + + # Jump to coords + if key == QtCore.Qt.Key_J: + self.app.on_jump_to() + elif self.app.call_source == 'copper_thieving_tool': + # CTRL + ALT + if modifiers == QtCore.Qt.ControlModifier | QtCore.Qt.AltModifier: + if key == QtCore.Qt.Key_X: + self.app.abort_all_tasks() + return + elif modifiers == QtCore.Qt.ControlModifier: + pass + elif modifiers == QtCore.Qt.ShiftModifier: + pass + elif modifiers == QtCore.Qt.AltModifier: + pass + # NO MODIFIER + elif modifiers == QtCore.Qt.NoModifier: + # Escape = Deselect All + if key == QtCore.Qt.Key_Escape or key == 'Escape': + self.app.copperfill_tool.on_exit() + + # Grid toggle + if key == QtCore.Qt.Key_G: + self.app.ui.grid_snap_btn.trigger() + + # Jump to coords + if key == QtCore.Qt.Key_J: + self.app.on_jump_to() + elif self.app.call_source == 'geometry': + if modifiers == QtCore.Qt.ControlModifier: + pass + elif modifiers == QtCore.Qt.AltModifier: + pass + elif modifiers == QtCore.Qt.ShiftModifier: + pass + # NO MODIFIER + elif modifiers == QtCore.Qt.NoModifier: + if key == QtCore.Qt.Key_Escape or key == 'Escape': + sel_obj = self.app.collection.get_active() + assert sel_obj.kind == 'geometry', "Expected a Geometry Object, got %s" % type(sel_obj) + + sel_obj.area_disconnect() + return + + if key == QtCore.Qt.Key_G or key == 'G': + self.app.ui.grid_snap_btn.trigger() + return + + # Jump to coords + if key == QtCore.Qt.Key_J or key == 'J': + self.app.on_jump_to() + + def createPopupMenu(self): + menu = super().createPopupMenu() + + menu.addSeparator() + menu.addAction(self.lock_action) + return menu + + def lock_toolbar(self, lock=False): + """ + Used to (un)lock the toolbars of the app. + + :param lock: boolean, will lock all toolbars in place when set True + :return: None + """ + + if lock: + for widget in self.children(): + if isinstance(widget, QtWidgets.QToolBar): + widget.setMovable(False) + else: + for widget in self.children(): + if isinstance(widget, QtWidgets.QToolBar): + widget.setMovable(True) + + def dragEnterEvent(self, event): + if event.mimeData().hasUrls: + event.accept() + else: + event.ignore() + + def dragMoveEvent(self, event): + if event.mimeData().hasUrls: + event.accept() + else: + event.ignore() + + def dropEvent(self, event): + if event.mimeData().hasUrls: + event.setDropAction(QtCore.Qt.CopyAction) + event.accept() + for url in event.mimeData().urls(): + self.filename = str(url.toLocalFile()) + + if self.filename == "": + self.app.inform.emit("Cancelled.") + else: + extension = self.filename.lower().rpartition('.')[-1] + + if extension in self.app.grb_list: + self.app.worker_task.emit({'fcn': self.app.open_gerber, + 'params': [self.filename]}) + else: + event.ignore() + + if extension in self.app.exc_list: + self.app.worker_task.emit({'fcn': self.app.open_excellon, + 'params': [self.filename]}) + else: + event.ignore() + + if extension in self.app.gcode_list: + self.app.worker_task.emit({'fcn': self.app.open_gcode, + 'params': [self.filename]}) + else: + event.ignore() + + if extension in self.app.svg_list: + object_type = 'geometry' + self.app.worker_task.emit({'fcn': self.app.import_svg, + 'params': [self.filename, object_type, None]}) + + if extension in self.app.dxf_list: + object_type = 'geometry' + self.app.worker_task.emit({'fcn': self.app.import_dxf, + 'params': [self.filename, object_type, None]}) + + if extension in self.app.pdf_list: + self.app.pdf_tool.periodic_check(1000) + self.app.worker_task.emit({'fcn': self.app.pdf_tool.open_pdf, + 'params': [self.filename]}) + + if extension in self.app.prj_list: + # self.app.open_project() is not Thread Safe + self.app.open_project(self.filename) + + if extension in self.app.conf_list: + self.app.open_config_file(self.filename) + else: + event.ignore() + else: + event.ignore() + + def closeEvent(self, event): + if self.app.save_in_progress: + self.app.inform.emit('[WARNING_NOTCL] %s' % _("Application is saving the project. Please wait ...")) + else: + grect = self.geometry() + + # self.splitter.sizes()[0] is actually the size of the "notebook" + if not self.isMaximized(): + self.geom_update.emit(grect.x(), grect.y(), grect.width(), grect.height(), self.splitter.sizes()[0]) + + self.final_save.emit() + event.ignore() + + +class FlatCAMActivityView(QtWidgets.QWidget): + """ + This class create and control the activity icon displayed in the App status bar + """ + + def __init__(self, app, parent=None): + super().__init__(parent=parent) + + self.app = app + + if self.app.defaults["global_activity_icon"] == "Ball green": + icon = self.app.resource_location + '/active_2_static.png' + movie = self.app.resource_location + "/active_2.gif" + elif self.app.defaults["global_activity_icon"] == "Ball black": + icon = self.app.resource_location + '/active_static.png' + movie = self.app.resource_location + "/active.gif" + elif self.app.defaults["global_activity_icon"] == "Arrow green": + icon = self.app.resource_location + '/active_3_static.png' + movie = self.app.resource_location + "/active_3.gif" + elif self.app.defaults["global_activity_icon"] == "Eclipse green": + icon = self.app.resource_location + '/active_4_static.png' + movie = self.app.resource_location + "/active_4.gif" + else: + icon = self.app.resource_location + '/active_static.png' + movie = self.app.resource_location + "/active.gif" + + self.setMinimumWidth(200) + self.movie_path = movie + self.icon_path = icon + + self.icon = QtWidgets.QLabel(self) + self.icon.setGeometry(0, 0, 16, 12) + self.movie = QtGui.QMovie(self.movie_path) + + self.icon.setMovie(self.movie) + # self.movie.start() + + layout = QtWidgets.QHBoxLayout() + layout.setContentsMargins(5, 0, 5, 0) + layout.setAlignment(QtCore.Qt.AlignLeft) + self.setLayout(layout) + + layout.addWidget(self.icon) + self.text = QtWidgets.QLabel(self) + self.text.setText(_("Idle.")) + self.icon.setPixmap(QtGui.QPixmap(self.icon_path)) + + layout.addWidget(self.text) + + def set_idle(self): + self.movie.stop() + self.text.setText(_("Idle.")) + + def set_busy(self, msg, no_movie=None): + if no_movie is not True: + self.icon.setMovie(self.movie) + self.movie.start() + self.text.setText(msg) + + +class FlatCAMInfoBar(QtWidgets.QWidget): + """ + This class create a place to display the App messages in the Status Bar + """ + + def __init__(self, parent=None, app=None): + super(FlatCAMInfoBar, self).__init__(parent=parent) + + self.app = app + + self.icon = QtWidgets.QLabel(self) + self.icon.setGeometry(0, 0, 12, 12) + self.pmap = QtGui.QPixmap(self.app.resource_location + '/graylight12.png') + self.icon.setPixmap(self.pmap) + + layout = QtWidgets.QHBoxLayout() + layout.setContentsMargins(5, 0, 5, 0) + self.setLayout(layout) + + layout.addWidget(self.icon) + + self.text = QtWidgets.QLabel(self) + self.text.setText(_("Application started ...")) + self.text.setToolTip(_("Hello!")) + + layout.addWidget(self.text) + + layout.addStretch() + + def set_text_(self, text, color=None): + self.text.setText(text) + self.text.setToolTip(text) + if color: + self.text.setStyleSheet('color: %s' % str(color)) + + def set_status(self, text, level="info"): + level = str(level) + + self.pmap.fill() + if level == "ERROR" or level == "ERROR_NOTCL": + self.pmap = QtGui.QPixmap(self.app.resource_location + '/redlight12.png') + elif level.lower() == "success": + self.pmap = QtGui.QPixmap(self.app.resource_location + '/greenlight12.png') + elif level == "WARNING" or level == "WARNING_NOTCL": + self.pmap = QtGui.QPixmap(self.app.resource_location + '/yellowlight12.png') + elif level.lower() == "selected": + self.pmap = QtGui.QPixmap(self.app.resource_location + '/bluelight12.png') + else: + self.pmap = QtGui.QPixmap(self.app.resource_location + '/graylight12.png') + + try: + self.set_text_(text) + self.icon.setPixmap(self.pmap) + except Exception as e: + log.debug("FlatCAMInfoBar.set_status() --> %s" % str(e)) + + +class FlatCAMSystemTray(QtWidgets.QSystemTrayIcon): + """ + This class create the Sys Tray icon for the app + """ + + def __init__(self, app, icon, headless=None, parent=None): + # QtWidgets.QSystemTrayIcon.__init__(self, icon, parent) + super().__init__(icon, parent=parent) + self.app = app + + menu = QtWidgets.QMenu(parent) + + menu_runscript = QtWidgets.QAction(QtGui.QIcon(self.app.resource_location + '/script14.png'), + '%s' % _('Run Script ...'), self) + menu_runscript.setToolTip( + _("Will run the opened Tcl Script thus\n" + "enabling the automation of certain\n" + "functions of FlatCAM.") + ) + menu.addAction(menu_runscript) + + menu.addSeparator() + + if headless is None: + self.menu_open = menu.addMenu(QtGui.QIcon(self.app.resource_location + '/folder32_bis.png'), _('Open')) + + # Open Project ... + menu_openproject = QtWidgets.QAction(QtGui.QIcon(self.app.resource_location + '/folder16.png'), + _('Open Project ...'), self) + self.menu_open.addAction(menu_openproject) + self.menu_open.addSeparator() + + # Open Gerber ... + menu_opengerber = QtWidgets.QAction(QtGui.QIcon(self.app.resource_location + '/flatcam_icon24.png'), + _('Open &Gerber ...\tCtrl+G'), self) + self.menu_open.addAction(menu_opengerber) + + # Open Excellon ... + menu_openexcellon = QtWidgets.QAction(QtGui.QIcon(self.app.resource_location + '/open_excellon32.png'), + _('Open &Excellon ...\tCtrl+E'), self) + self.menu_open.addAction(menu_openexcellon) + + # Open G-Code ... + menu_opengcode = QtWidgets.QAction(QtGui.QIcon(self.app.resource_location + '/code.png'), + _('Open G-&Code ...'), self) + self.menu_open.addAction(menu_opengcode) + + self.menu_open.addSeparator() + + menu_openproject.triggered.connect(self.app.on_file_openproject) + menu_opengerber.triggered.connect(self.app.on_fileopengerber) + menu_openexcellon.triggered.connect(self.app.on_fileopenexcellon) + menu_opengcode.triggered.connect(self.app.on_fileopengcode) + + exitAction = menu.addAction(_("Exit")) + exitAction.setIcon(QtGui.QIcon(self.app.resource_location + '/power16.png')) + self.setContextMenu(menu) + + menu_runscript.triggered.connect(lambda: self.app.on_filerunscript( + silent=True if self.app.cmd_line_headless == 1 else False)) + + exitAction.triggered.connect(self.app.final_save) + # end of file diff --git a/AppGUI/GUIElements.py b/flatcamGUI/GUIElements.py similarity index 87% rename from AppGUI/GUIElements.py rename to flatcamGUI/GUIElements.py index 1f07acde..7b9b38f4 100644 --- a/AppGUI/GUIElements.py +++ b/flatcamGUI/GUIElements.py @@ -23,7 +23,7 @@ import html import sys import gettext -import AppTranslation as fcTranslate +import FlatCAMTranslation as fcTranslate import builtins log = logging.getLogger('base') @@ -570,13 +570,9 @@ class FCEntry3(FCEntry): class EvalEntry(QtWidgets.QLineEdit): - def __init__(self, border_color=None, parent=None): + def __init__(self, parent=None): super(EvalEntry, self).__init__(parent) self.readyToEdit = True - - if border_color: - self.setStyleSheet("QLineEdit {border: 1px solid %s;}" % border_color) - self.editingFinished.connect(self.on_edit_finished) def on_edit_finished(self): @@ -603,6 +599,7 @@ class EvalEntry(QtWidgets.QLineEdit): def get_value(self): raw = str(self.text()).strip(' ') + evaled = 0.0 try: evaled = eval(raw) except Exception as e: @@ -642,7 +639,7 @@ class EvalEntry2(QtWidgets.QLineEdit): def get_value(self): raw = str(self.text()).strip(' ') - + evaled = 0.0 try: evaled = eval(raw) except Exception as e: @@ -659,132 +656,6 @@ class EvalEntry2(QtWidgets.QLineEdit): return QtCore.QSize(EDIT_SIZE_HINT, default_hint_size.height()) -class NumericalEvalEntry(EvalEntry): - """ - Will evaluate the input and return a value. Accepts only float numbers and formulas using the operators: /,*,+,-,% - """ - def __init__(self, border_color=None): - super().__init__(border_color=border_color) - - regex = QtCore.QRegExp("[0-9\/\*\+\-\%\.\s]*") - validator = QtGui.QRegExpValidator(regex, self) - self.setValidator(validator) - - -class NumericalEvalTupleEntry(FCEntry): - """ - Will evaluate the input and return a value. Accepts only float numbers and formulas using the operators: /,*,+,-,% - """ - def __init__(self, border_color=None): - super().__init__(border_color=border_color) - - regex = QtCore.QRegExp("[0-9\/\*\+\-\%\.\s\,]*") - validator = QtGui.QRegExpValidator(regex, self) - self.setValidator(validator) - - -class FCColorEntry(QtWidgets.QFrame): - - def __init__(self, **kwargs): - super().__init__(**kwargs) - - self.entry = FCEntry() - regex = QtCore.QRegExp("[#A-Fa-f0-9]*") - validator = QtGui.QRegExpValidator(regex, self.entry) - self.entry.setValidator(validator) - - self.button = QtWidgets.QPushButton() - self.button.setFixedSize(15, 15) - self.button.setStyleSheet("border-color: dimgray;") - - self.layout = QtWidgets.QHBoxLayout() - self.layout.setAlignment(QtCore.Qt.AlignLeft | QtCore.Qt.AlignVCenter) - self.layout.setContentsMargins(0, 0, 0, 0) - self.layout.addWidget(self.entry) - self.layout.addWidget(self.button) - self.setLayout(self.layout) - - self.entry.editingFinished.connect(self._sync_button_color) - self.button.clicked.connect(self._on_button_clicked) - - self.editingFinished = self.entry.editingFinished - - def get_value(self) -> str: - return self.entry.get_value() - - def set_value(self, value: str): - self.entry.set_value(value) - self._sync_button_color() - - def _sync_button_color(self): - value = self.get_value() - self.button.setStyleSheet("background-color:%s;" % self._extract_color(value)) - - def _on_button_clicked(self): - value = self.entry.get_value() - current_color = QtGui.QColor(self._extract_color(value)) - - color_dialog = QtWidgets.QColorDialog() - selected_color = color_dialog.getColor(initial=current_color, options=QtWidgets.QColorDialog.ShowAlphaChannel) - - if selected_color.isValid() is False: - return - - new_value = str(selected_color.name()) + self._extract_alpha(value) - self.set_value(new_value) - - def _extract_color(self, value: str) -> str: - return value[:7] - - def _extract_alpha(self, value: str) -> str: - return value[7:9] - - -class FCSliderWithSpinner(QtWidgets.QFrame): - - def __init__(self, min=0, max=100, step=1, **kwargs): - super().__init__(**kwargs) - - self.slider = QtWidgets.QSlider(QtCore.Qt.Horizontal) - self.slider.setMinimum(min) - self.slider.setMaximum(max) - self.slider.setSingleStep(step) - - self.spinner = FCSpinner() - self.spinner.set_range(min, max) - self.spinner.set_step(step) - self.spinner.setMinimumWidth(70) - - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) - self.spinner.setSizePolicy(sizePolicy) - - self.layout = QtWidgets.QHBoxLayout() - self.layout.setAlignment(QtCore.Qt.AlignLeft | QtCore.Qt.AlignVCenter) - self.layout.setContentsMargins(0, 0, 0, 0) - self.layout.addWidget(self.slider) - self.layout.addWidget(self.spinner) - self.setLayout(self.layout) - - self.slider.valueChanged.connect(self._on_slider) - self.spinner.valueChanged.connect(self._on_spinner) - - self.valueChanged = self.spinner.valueChanged - - def get_value(self) -> int: - return self.spinner.get_value() - - def set_value(self, value: int): - self.spinner.set_value(value) - - def _on_spinner(self): - spinner_value = self.spinner.value() - self.slider.setValue(spinner_value) - - def _on_slider(self): - slider_value = self.slider.value() - self.spinner.set_value(slider_value) - - class FCSpinner(QtWidgets.QSpinBox): returnPressed = QtCore.pyqtSignal() @@ -813,8 +684,6 @@ class FCSpinner(QtWidgets.QSpinBox): self.setAlignment(align_val) self.prev_readyToEdit = True - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Ignored, QtWidgets.QSizePolicy.Preferred) - self.setSizePolicy(sizePolicy) def eventFilter(self, object, event): if event.type() == QtCore.QEvent.MouseButtonPress and self.prev_readyToEdit is True: @@ -947,8 +816,6 @@ class FCDoubleSpinner(QtWidgets.QDoubleSpinBox): self.setAlignment(align_val) self.prev_readyToEdit = True - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Ignored, QtWidgets.QSizePolicy.Preferred) - self.setSizePolicy(sizePolicy) def on_edit_finished(self): self.clearFocus() @@ -2231,24 +2098,6 @@ class FCDetachableTab2(FCDetachableTab): def __init__(self, protect=None, protect_by_name=None, parent=None): super(FCDetachableTab2, self).__init__(protect=protect, protect_by_name=protect_by_name, parent=parent) - try: - self.tabBar.onCloseTabSignal.disconnect() - except TypeError: - pass - - self.tabBar.onCloseTabSignal.connect(self.on_closetab_middle_button) - - def on_closetab_middle_button(self, current_index): - """ - - :param current_index: - :return: - """ - - # if tab is protected don't delete it - if self.tabBar.tabButton(current_index, QtWidgets.QTabBar.RightSide) is not None: - self.closeTab(current_index) - def closeTab(self, currentIndex): """ Slot connected to the tabCloseRequested signal @@ -2347,14 +2196,11 @@ class OptionalHideInputSection: """ Associates the a checkbox with a set of inputs. - :param cb: Checkbox that enables the optional inputs. - :type cb: QtWidgets.QCheckBox - :param optinputs: List of widgets that are optional. - :type optinputs: list - :param logic: When True the logic is normal, when False the logic is in reverse - It means that for logic=True, when the checkbox is checked the widgets are Enabled, and - for logic=False, when the checkbox is checked the widgets are Disabled - :type logic: bool + :param cb: Checkbox that enables the optional inputs. + :param optinputs: List of widgets that are optional. + :param logic: When True the logic is normal, when False the logic is in reverse + It means that for logic=True, when the checkbox is checked the widgets are Enabled, and + for logic=False, when the checkbox is checked the widgets are Disabled :return: """ assert isinstance(cb, FCCheckBox), \ @@ -2625,8 +2471,7 @@ class SpinBoxDelegate(QtWidgets.QItemDelegate): def updateEditorGeometry(self, editor, option, index): editor.setGeometry(option.rect) - @staticmethod - def setDecimals(spinbox, digits): + def setDecimals(self, spinbox, digits): spinbox.setDecimals(digits) @@ -2674,7 +2519,7 @@ class DialogBoxRadio(QtWidgets.QDialog): :param title: string with the window title :param label: string with the message inside the dialog box """ - super(DialogBoxRadio, self).__init__(parent=parent) + super(DialogBoxRadio, self).__init__() if initial_text is None: self.location = str((0, 0)) else: @@ -2917,12 +2762,9 @@ class MyCompleter(QCompleter): insertText = QtCore.pyqtSignal(str) def __init__(self, parent=None): - QCompleter.__init__(self, parent=parent) + QCompleter.__init__(self) self.setCompletionMode(QCompleter.PopupCompletion) self.highlighted.connect(self.setHighlighted) - - self.lastSelected = '' - # self.popup().installEventFilter(self) # def eventFilter(self, obj, event): @@ -3078,9 +2920,9 @@ class FCFileSaveDialog(QtWidgets.QFileDialog): super(FCFileSaveDialog, self).__init__(*args) @staticmethod - def get_saved_filename(parent=None, caption='', directory='', ext_filter='', initialFilter=''): + def get_saved_filename(parent=None, caption='', directory='', filter='', initialFilter=''): filename, _filter = QtWidgets.QFileDialog.getSaveFileName(parent=parent, caption=caption, - directory=directory, filter=ext_filter, + directory=directory, filter=filter, initialFilter=initialFilter) filename = str(filename) @@ -3096,225 +2938,6 @@ class FCFileSaveDialog(QtWidgets.QFileDialog): return filename, _filter -class FCDock(QtWidgets.QDockWidget): - - def __init__(self, *args, **kwargs): - super(FCDock, self).__init__(*args) - self.close_callback = kwargs["close_callback"] if "close_callback" in kwargs else None - - def closeEvent(self, event: QtGui.QCloseEvent) -> None: - self.close_callback() - super().closeEvent(event) - - def show(self) -> None: - if self.isFloating(): - self.setFloating(False) - super().show() - - -class FlatCAMActivityView(QtWidgets.QWidget): - """ - This class create and control the activity icon displayed in the App status bar - """ - - def __init__(self, app, parent=None): - super().__init__(parent=parent) - - self.app = app - - if self.app.defaults["global_activity_icon"] == "Ball green": - icon = self.app.resource_location + '/active_2_static.png' - movie = self.app.resource_location + "/active_2.gif" - elif self.app.defaults["global_activity_icon"] == "Ball black": - icon = self.app.resource_location + '/active_static.png' - movie = self.app.resource_location + "/active.gif" - elif self.app.defaults["global_activity_icon"] == "Arrow green": - icon = self.app.resource_location + '/active_3_static.png' - movie = self.app.resource_location + "/active_3.gif" - elif self.app.defaults["global_activity_icon"] == "Eclipse green": - icon = self.app.resource_location + '/active_4_static.png' - movie = self.app.resource_location + "/active_4.gif" - else: - icon = self.app.resource_location + '/active_static.png' - movie = self.app.resource_location + "/active.gif" - - self.setMinimumWidth(200) - self.movie_path = movie - self.icon_path = icon - - self.icon = FCLabel(self) - self.icon.setGeometry(0, 0, 16, 12) - self.movie = QtGui.QMovie(self.movie_path) - - self.icon.setMovie(self.movie) - # self.movie.start() - - layout = QtWidgets.QHBoxLayout() - layout.setContentsMargins(5, 0, 5, 0) - layout.setAlignment(QtCore.Qt.AlignLeft) - self.setLayout(layout) - - layout.addWidget(self.icon) - self.text = QtWidgets.QLabel(self) - self.text.setText(_("Idle.")) - self.icon.setPixmap(QtGui.QPixmap(self.icon_path)) - - layout.addWidget(self.text) - - self.icon.clicked.connect(self.app.on_toolbar_replot) - - def set_idle(self): - self.movie.stop() - self.text.setText(_("Idle.")) - - def set_busy(self, msg, no_movie=None): - if no_movie is not True: - self.icon.setMovie(self.movie) - self.movie.start() - self.text.setText(msg) - - -class FlatCAMInfoBar(QtWidgets.QWidget): - """ - This class create a place to display the App messages in the Status Bar - """ - - def __init__(self, parent=None, app=None): - super(FlatCAMInfoBar, self).__init__(parent=parent) - - self.app = app - - self.icon = QtWidgets.QLabel(self) - self.icon.setGeometry(0, 0, 12, 12) - self.pmap = QtGui.QPixmap(self.app.resource_location + '/graylight12.png') - self.icon.setPixmap(self.pmap) - - self.lock_pmaps = False - - layout = QtWidgets.QHBoxLayout() - layout.setContentsMargins(5, 0, 5, 0) - self.setLayout(layout) - - layout.addWidget(self.icon) - - self.text = QtWidgets.QLabel(self) - self.text.setText(_("Application started ...")) - self.text.setToolTip(_("Hello!")) - - layout.addWidget(self.text) - layout.addStretch() - - def set_text_(self, text, color=None): - self.text.setText(text) - self.text.setToolTip(text) - if color: - self.text.setStyleSheet('color: %s' % str(color)) - - def set_status(self, text, level="info"): - level = str(level) - - if self.lock_pmaps is not True: - self.pmap.fill() - if level == "ERROR" or level == "ERROR_NOTCL": - self.pmap = QtGui.QPixmap(self.app.resource_location + '/redlight12.png') - elif level.lower() == "success": - self.pmap = QtGui.QPixmap(self.app.resource_location + '/greenlight12.png') - elif level == "WARNING" or level == "WARNING_NOTCL": - self.pmap = QtGui.QPixmap(self.app.resource_location + '/yellowlight12.png') - elif level.lower() == "selected": - self.pmap = QtGui.QPixmap(self.app.resource_location + '/bluelight12.png') - else: - self.pmap = QtGui.QPixmap(self.app.resource_location + '/graylight12.png') - - try: - self.set_text_(text) - self.icon.setPixmap(self.pmap) - except Exception as e: - log.debug("FlatCAMInfoBar.set_status() --> %s" % str(e)) - - -class FlatCAMSystemTray(QtWidgets.QSystemTrayIcon): - """ - This class create the Sys Tray icon for the app - """ - - def __init__(self, app, icon, headless=None, parent=None): - # QtWidgets.QSystemTrayIcon.__init__(self, icon, parent) - super().__init__(icon, parent=parent) - self.app = app - - menu = QtWidgets.QMenu(parent) - - menu_runscript = QtWidgets.QAction(QtGui.QIcon(self.app.resource_location + '/script14.png'), - '%s' % _('Run Script ...'), self) - menu_runscript.setToolTip( - _("Will run the opened Tcl Script thus\n" - "enabling the automation of certain\n" - "functions of FlatCAM.") - ) - menu.addAction(menu_runscript) - - menu.addSeparator() - - if headless is None: - self.menu_open = menu.addMenu(QtGui.QIcon(self.app.resource_location + '/folder32_bis.png'), _('Open')) - - # Open Project ... - menu_openproject = QtWidgets.QAction(QtGui.QIcon(self.app.resource_location + '/folder16.png'), - _('Open Project ...'), self) - self.menu_open.addAction(menu_openproject) - self.menu_open.addSeparator() - - # Open Gerber ... - menu_opengerber = QtWidgets.QAction(QtGui.QIcon(self.app.resource_location + '/flatcam_icon24.png'), - _('Open &Gerber ...\tCtrl+G'), self) - self.menu_open.addAction(menu_opengerber) - - # Open Excellon ... - menu_openexcellon = QtWidgets.QAction(QtGui.QIcon(self.app.resource_location + '/open_excellon32.png'), - _('Open &Excellon ...\tCtrl+E'), self) - self.menu_open.addAction(menu_openexcellon) - - # Open G-Code ... - menu_opengcode = QtWidgets.QAction(QtGui.QIcon(self.app.resource_location + '/code.png'), - _('Open G-&Code ...'), self) - self.menu_open.addAction(menu_opengcode) - - self.menu_open.addSeparator() - - menu_openproject.triggered.connect(self.app.on_file_openproject) - menu_opengerber.triggered.connect(self.app.on_fileopengerber) - menu_openexcellon.triggered.connect(self.app.on_fileopenexcellon) - menu_opengcode.triggered.connect(self.app.on_fileopengcode) - - exitAction = menu.addAction(_("Exit")) - exitAction.setIcon(QtGui.QIcon(self.app.resource_location + '/power16.png')) - self.setContextMenu(menu) - - menu_runscript.triggered.connect(lambda: self.app.on_filerunscript( - silent=True if self.app.cmd_line_headless == 1 else False)) - - exitAction.triggered.connect(self.app.final_save) - - -def message_dialog(title, message, kind="info", parent=None): - """ - Builds and show a custom QMessageBox to be used in FlatCAM. - - :param title: title of the QMessageBox - :param message: message to be displayed - :param kind: type of QMessageBox; will display a specific icon. - :param parent: parent - :return: None - """ - icon = {"info": QtWidgets.QMessageBox.Information, - "warning": QtWidgets.QMessageBox.Warning, - "error": QtWidgets.QMessageBox.Critical}[str(kind)] - dlg = QtWidgets.QMessageBox(icon, title, message, parent=parent) - dlg.setText(message) - dlg.exec_() - - def rreplace(s, old, new, occurrence): """ Credits go here: diff --git a/AppGUI/ObjectUI.py b/flatcamGUI/ObjectUI.py similarity index 86% rename from AppGUI/ObjectUI.py rename to flatcamGUI/ObjectUI.py index fed12b35..6cdb71a7 100644 --- a/AppGUI/ObjectUI.py +++ b/flatcamGUI/ObjectUI.py @@ -11,11 +11,11 @@ # Date: 3/10/2019 # # ########################################################## -from AppGUI.GUIElements import * +from flatcamGUI.GUIElements import * import sys import gettext -import AppTranslation as fcTranslate +import FlatCAMTranslation as fcTranslate import builtins fcTranslate.apply_language('strings') @@ -35,7 +35,7 @@ class ObjectUI(QtWidgets.QWidget): put UI elements in ObjectUI.custom_box (QtWidgets.QLayout). """ - def __init__(self, app, icon_file='assets/resources/flatcam_icon32.png', title=_('App Object'), + def __init__(self, app, icon_file='assets/resources/flatcam_icon32.png', title=_('FlatCAM Object'), parent=None, common=True): QtWidgets.QWidget.__init__(self, parent=parent) @@ -114,7 +114,7 @@ class ObjectUI(QtWidgets.QWidget): self.common_grid.addWidget(self.transform_label, 2, 0, 1, 2) # ### Scale #### - self.scale_entry = NumericalEvalEntry(border_color='#0069A9') + self.scale_entry = FCEntry() self.scale_entry.set_value(1.0) self.scale_entry.setToolTip( _("Factor by which to multiply\n" @@ -132,7 +132,7 @@ class ObjectUI(QtWidgets.QWidget): self.common_grid.addWidget(self.scale_button, 3, 1) # ### Offset #### - self.offsetvector_entry = NumericalEvalTupleEntry(border_color='#0069A9') + self.offsetvector_entry = EvalEntry2() self.offsetvector_entry.setText("(0.0, 0.0)") self.offsetvector_entry.setToolTip( _("Amount by which to move the object\n" @@ -149,30 +149,21 @@ class ObjectUI(QtWidgets.QWidget): self.common_grid.addWidget(self.offsetvector_entry, 4, 0) self.common_grid.addWidget(self.offset_button, 4, 1) - self.transformations_button = QtWidgets.QPushButton(_('Transformations')) - self.transformations_button.setToolTip( - _("Geometrical transformations of the current object.") - ) - self.common_grid.addWidget(self.transformations_button, 5, 0, 1, 2) - layout.addStretch() def confirmation_message(self, accepted, minval, maxval): if accepted is False: - self.app.inform[str, bool].emit('[WARNING_NOTCL] %s: [%.*f, %.*f]' % (_("Edited value is out of range"), - self.decimals, - minval, - self.decimals, - maxval), False) + self.app.inform.emit('[WARNING_NOTCL] %s: [%.*f, %.*f]' % + (_("Edited value is out of range"), self.decimals, minval, self.decimals, maxval)) else: - self.app.inform[str, bool].emit('[success] %s' % _("Edited value is within limits."), False) + self.app.inform.emit('[success] %s' % _("Edited value is within limits.")) def confirmation_message_int(self, accepted, minval, maxval): if accepted is False: - self.app.inform[str, bool].emit('[WARNING_NOTCL] %s: [%d, %d]' % - (_("Edited value is out of range"), minval, maxval), False) + self.app.inform.emit('[WARNING_NOTCL] %s: [%d, %d]' % + (_("Edited value is out of range"), minval, maxval)) else: - self.app.inform[str, bool].emit('[success] %s' % _("Edited value is within limits."), False) + self.app.inform.emit('[success] %s' % _("Edited value is within limits.")) class GerberObjectUI(ObjectUI): @@ -214,37 +205,27 @@ class GerberObjectUI(ObjectUI): self.multicolored_cb.setMinimumWidth(55) grid0.addWidget(self.multicolored_cb, 0, 2) + # Plot CB + self.plot_cb = FCCheckBox('%s' % _("Plot")) + # self.plot_cb.setLayoutDirection(QtCore.Qt.RightToLeft) + self.plot_cb.setToolTip(_("Plot (show) this object.")) + + grid0.addWidget(self.plot_cb, 1, 0, 1, 2) + # ## Object name self.name_hlay = QtWidgets.QHBoxLayout() - grid0.addLayout(self.name_hlay, 1, 0, 1, 3) - + self.custom_box.addLayout(self.name_hlay) name_label = QtWidgets.QLabel("%s:" % _("Name")) self.name_entry = FCEntry() self.name_entry.setFocusPolicy(QtCore.Qt.StrongFocus) self.name_hlay.addWidget(name_label) self.name_hlay.addWidget(self.name_entry) - # Plot CB - self.plot_lbl = FCLabel('%s:' % _("Plot")) - self.plot_lbl.setToolTip(_("Plot (show) this object.")) - self.plot_cb = FCCheckBox() - - grid0.addWidget(self.plot_lbl, 2, 0) - grid0.addWidget(self.plot_cb, 2, 1) - - # generate follow - self.follow_cb = FCCheckBox('%s' % _("Follow")) - self.follow_cb.setToolTip(_("Generate a 'Follow' geometry.\n" - "This means that it will cut through\n" - "the middle of the trace.")) - self.follow_cb.setMinimumWidth(55) - grid0.addWidget(self.follow_cb, 2, 2) - hlay_plot = QtWidgets.QHBoxLayout() self.custom_box.addLayout(hlay_plot) # ### Gerber Apertures #### - self.apertures_table_label = QtWidgets.QLabel('%s:' % _('Apertures')) + self.apertures_table_label = QtWidgets.QLabel('%s:' % _('Apertures')) self.apertures_table_label.setToolTip( _("Apertures Table for the Gerber Object.") ) @@ -301,7 +282,254 @@ class GerberObjectUI(ObjectUI): # start with apertures table hidden self.apertures_table.setVisible(False) - # Buffer Geometry + separator_line = QtWidgets.QFrame() + separator_line.setFrameShape(QtWidgets.QFrame.HLine) + separator_line.setFrameShadow(QtWidgets.QFrame.Sunken) + self.custom_box.addWidget(separator_line) + + # Isolation Routing + self.isolation_routing_label = QtWidgets.QLabel("%s" % _("Isolation Routing")) + self.isolation_routing_label.setToolTip( + _("Create a Geometry object with\n" + "toolpaths to cut outside polygons.") + ) + self.custom_box.addWidget(self.isolation_routing_label) + + # ########################################### + # ########## NEW GRID ####################### + # ########################################### + + grid1 = QtWidgets.QGridLayout() + self.custom_box.addLayout(grid1) + grid1.setColumnStretch(0, 0) + grid1.setColumnStretch(1, 1) + grid1.setColumnStretch(2, 1) + + # Tool Type + self.tool_type_label = QtWidgets.QLabel('%s:' % _('Tool Type')) + self.tool_type_label.setToolTip( + _("Choose which tool to use for Gerber isolation:\n" + "'Circular' or 'V-shape'.\n" + "When the 'V-shape' is selected then the tool\n" + "diameter will depend on the chosen cut depth.") + ) + self.tool_type_radio = RadioSet([{'label': _('Circular'), 'value': 'circular'}, + {'label': _('V-Shape'), 'value': 'v'}]) + + grid1.addWidget(self.tool_type_label, 0, 0) + grid1.addWidget(self.tool_type_radio, 0, 1, 1, 2) + + # Tip Dia + self.tipdialabel = QtWidgets.QLabel('%s:' % _('V-Tip Dia')) + self.tipdialabel.setToolTip( + _("The tip diameter for V-Shape Tool") + ) + self.tipdia_spinner = FCDoubleSpinner(callback=self.confirmation_message) + self.tipdia_spinner.set_range(-99.9999, 99.9999) + self.tipdia_spinner.set_precision(self.decimals) + self.tipdia_spinner.setSingleStep(0.1) + self.tipdia_spinner.setWrapping(True) + grid1.addWidget(self.tipdialabel, 1, 0) + grid1.addWidget(self.tipdia_spinner, 1, 1, 1, 2) + + # Tip Angle + self.tipanglelabel = QtWidgets.QLabel('%s:' % _('V-Tip Angle')) + self.tipanglelabel.setToolTip( + _("The tip angle for V-Shape Tool.\n" + "In degree.") + ) + self.tipangle_spinner = FCDoubleSpinner(callback=self.confirmation_message) + self.tipangle_spinner.set_range(1, 180) + self.tipangle_spinner.set_precision(self.decimals) + self.tipangle_spinner.setSingleStep(5) + self.tipangle_spinner.setWrapping(True) + grid1.addWidget(self.tipanglelabel, 2, 0) + grid1.addWidget(self.tipangle_spinner, 2, 1, 1, 2) + + # Cut Z + self.cutzlabel = QtWidgets.QLabel('%s:' % _('Cut Z')) + self.cutzlabel.setToolTip( + _("Cutting depth (negative)\n" + "below the copper surface.") + ) + self.cutz_spinner = FCDoubleSpinner(callback=self.confirmation_message) + self.cutz_spinner.set_range(-9999.9999, 0.0000) + self.cutz_spinner.set_precision(self.decimals) + self.cutz_spinner.setSingleStep(0.1) + self.cutz_spinner.setWrapping(True) + grid1.addWidget(self.cutzlabel, 3, 0) + grid1.addWidget(self.cutz_spinner, 3, 1, 1, 2) + + # Tool diameter + tdlabel = QtWidgets.QLabel('%s:' % _('Tool dia')) + tdlabel.setToolTip( + _("Diameter of the cutting tool.\n" + "If you want to have an isolation path\n" + "inside the actual shape of the Gerber\n" + "feature, use a negative value for\n" + "this parameter.") + ) + tdlabel.setMinimumWidth(90) + self.iso_tool_dia_entry = FCDoubleSpinner(callback=self.confirmation_message) + self.iso_tool_dia_entry.set_range(-9999.9999, 9999.9999) + self.iso_tool_dia_entry.set_precision(self.decimals) + self.iso_tool_dia_entry.setSingleStep(0.1) + + grid1.addWidget(tdlabel, 4, 0) + grid1.addWidget(self.iso_tool_dia_entry, 4, 1, 1, 2) + + # Number of Passes + passlabel = QtWidgets.QLabel('%s:' % _('# Passes')) + passlabel.setToolTip( + _("Width of the isolation gap in\n" + "number (integer) of tool widths.") + ) + passlabel.setMinimumWidth(90) + self.iso_width_entry = FCSpinner(callback=self.confirmation_message_int) + self.iso_width_entry.set_range(1, 999) + + grid1.addWidget(passlabel, 5, 0) + grid1.addWidget(self.iso_width_entry, 5, 1, 1, 2) + + # Pass overlap + overlabel = QtWidgets.QLabel('%s:' % _('Pass overlap')) + overlabel.setToolTip( + _("How much (percentage) of the tool width to overlap each tool pass.") + ) + overlabel.setMinimumWidth(90) + self.iso_overlap_entry = FCDoubleSpinner(suffix='%', callback=self.confirmation_message) + self.iso_overlap_entry.set_precision(self.decimals) + self.iso_overlap_entry.setWrapping(True) + self.iso_overlap_entry.set_range(0.0000, 99.9999) + self.iso_overlap_entry.setSingleStep(0.1) + grid1.addWidget(overlabel, 6, 0) + grid1.addWidget(self.iso_overlap_entry, 6, 1, 1, 2) + + # Milling Type Radio Button + self.milling_type_label = QtWidgets.QLabel('%s:' % _('Milling Type')) + self.milling_type_label.setToolTip( + _("Milling type:\n" + "- climb / best for precision milling and to reduce tool usage\n" + "- conventional / useful when there is no backlash compensation") + ) + self.milling_type_radio = RadioSet([{'label': _('Climb'), 'value': 'cl'}, + {'label': _('Conventional'), 'value': 'cv'}]) + grid1.addWidget(self.milling_type_label, 7, 0) + grid1.addWidget(self.milling_type_radio, 7, 1, 1, 2) + + # combine all passes CB + self.combine_passes_cb = FCCheckBox(label=_('Combine')) + self.combine_passes_cb.setToolTip( + _("Combine all passes into one object") + ) + + # generate follow + self.follow_cb = FCCheckBox(label=_('"Follow"')) + self.follow_cb.setToolTip(_("Generate a 'Follow' geometry.\n" + "This means that it will cut through\n" + "the middle of the trace.")) + grid1.addWidget(self.combine_passes_cb, 8, 0) + + # avoid an area from isolation + self.except_cb = FCCheckBox(label=_('Except')) + grid1.addWidget(self.follow_cb, 8, 1) + + self.except_cb.setToolTip(_("When the isolation geometry is generated,\n" + "by checking this, the area of the object below\n" + "will be subtracted from the isolation geometry.")) + grid1.addWidget(self.except_cb, 8, 2) + + # ## Form Layout + form_layout = QtWidgets.QFormLayout() + grid1.addLayout(form_layout, 9, 0, 1, 3) + + # ################################################ + # ##### Type of object to be excepted ############ + # ################################################ + self.type_obj_combo = FCComboBox() + self.type_obj_combo.addItems([_("Gerber"), _("Geometry")]) + + # we get rid of item1 ("Excellon") as it is not suitable + # self.type_obj_combo.view().setRowHidden(1, True) + self.type_obj_combo.setItemIcon(0, QtGui.QIcon(self.resource_loc + "/flatcam_icon16.png")) + self.type_obj_combo.setItemIcon(1, QtGui.QIcon(self.resource_loc + "/geometry16.png")) + + self.type_obj_combo_label = QtWidgets.QLabel('%s:' % _("Obj Type")) + self.type_obj_combo_label.setToolTip( + _("Specify the type of object to be excepted from isolation.\n" + "It can be of type: Gerber or Geometry.\n" + "What is selected here will dictate the kind\n" + "of objects that will populate the 'Object' combobox.") + ) + # self.type_obj_combo_label.setMinimumWidth(60) + form_layout.addRow(self.type_obj_combo_label, self.type_obj_combo) + + # ################################################ + # ##### The object to be excepted ################ + # ################################################ + self.obj_combo = FCComboBox() + + self.obj_label = QtWidgets.QLabel('%s:' % _("Object")) + self.obj_label.setToolTip(_("Object whose area will be removed from isolation geometry.")) + + form_layout.addRow(self.obj_label, self.obj_combo) + + # ---------------------------------------------- # + # --------- Isolation scope -------------------- # + # ---------------------------------------------- # + self.iso_scope_label = QtWidgets.QLabel('%s:' % _('Scope')) + self.iso_scope_label.setToolTip( + _("Isolation scope. Choose what to isolate:\n" + "- 'All' -> Isolate all the polygons in the object\n" + "- 'Selection' -> Isolate a selection of polygons.") + ) + self.iso_scope_radio = RadioSet([{'label': _('All'), 'value': 'all'}, + {'label': _('Selection'), 'value': 'single'}]) + + grid1.addWidget(self.iso_scope_label, 10, 0) + grid1.addWidget(self.iso_scope_radio, 10, 1, 1, 2) + + # ---------------------------------------------- # + # --------- Isolation type -------------------- # + # ---------------------------------------------- # + self.iso_type_label = QtWidgets.QLabel('%s:' % _('Isolation Type')) + self.iso_type_label.setToolTip( + _("Choose how the isolation will be executed:\n" + "- 'Full' -> complete isolation of polygons\n" + "- 'Ext' -> will isolate only on the outside\n" + "- 'Int' -> will isolate only on the inside\n" + "'Exterior' isolation is almost always possible\n" + "(with the right tool) but 'Interior'\n" + "isolation can be done only when there is an opening\n" + "inside of the polygon (e.g polygon is a 'doughnut' shape).") + ) + self.iso_type_radio = RadioSet([{'label': _('Full'), 'value': 'full'}, + {'label': _('Ext'), 'value': 'ext'}, + {'label': _('Int'), 'value': 'int'}]) + + grid1.addWidget(self.iso_type_label, 11, 0) + grid1.addWidget(self.iso_type_radio, 11, 1, 1, 2) + + self.generate_iso_button = QtWidgets.QPushButton("%s" % _("Generate Isolation Geometry")) + self.generate_iso_button.setStyleSheet(""" + QPushButton + { + font-weight: bold; + } + """) + self.generate_iso_button.setToolTip( + _("Create a Geometry object with toolpaths to cut \n" + "isolation outside, inside or on both sides of the\n" + "object. For a Gerber object outside means outside\n" + "of the Gerber feature and inside means inside of\n" + "the Gerber feature, if possible at all. This means\n" + "that only if the Gerber feature has openings inside, they\n" + "will be isolated. If what is wanted is to cut isolation\n" + "inside the actual Gerber feature, use a negative tool\n" + "diameter above.") + ) + grid1.addWidget(self.generate_iso_button, 12, 0, 1, 3) + self.create_buffer_button = QtWidgets.QPushButton(_('Buffer Solid Geometry')) self.create_buffer_button.setToolTip( _("This button is shown only when the Gerber file\n" @@ -309,12 +537,19 @@ class GerberObjectUI(ObjectUI): "Clicking this will create the buffered geometry\n" "required for isolation.") ) - self.custom_box.addWidget(self.create_buffer_button) + grid1.addWidget(self.create_buffer_button, 13, 0, 1, 3) - separator_line = QtWidgets.QFrame() - separator_line.setFrameShape(QtWidgets.QFrame.HLine) - separator_line.setFrameShadow(QtWidgets.QFrame.Sunken) - self.custom_box.addWidget(separator_line) + self.ohis_iso = OptionalHideInputSection( + self.except_cb, + [self.type_obj_combo, self.type_obj_combo_label, self.obj_combo, self.obj_label], + logic=True + ) + + separator_line2 = QtWidgets.QFrame() + separator_line2.setFrameShape(QtWidgets.QFrame.HLine) + separator_line2.setFrameShadow(QtWidgets.QFrame.Sunken) + grid1.addWidget(separator_line2, 14, 0, 1, 3) + # grid1.addWidget(QtWidgets.QLabel(''), 15, 0) # ########################################### # ########## NEW GRID ####################### @@ -328,21 +563,14 @@ class GerberObjectUI(ObjectUI): self.tool_lbl = QtWidgets.QLabel('%s' % _("TOOLS")) grid2.addWidget(self.tool_lbl, 0, 0, 1, 2) - # Isolation Tool - will create isolation paths around the copper features - self.iso_button = QtWidgets.QPushButton(_('Isolation Routing')) - self.iso_button.setToolTip( - _("Create a Geometry object with\n" - "toolpaths to cut around polygons.") - ) - self.iso_button.setStyleSheet(""" - QPushButton - { - font-weight: bold; - } - """) - grid2.addWidget(self.iso_button, 1, 0, 1, 2) - # ## Clear non-copper regions + self.clearcopper_label = QtWidgets.QLabel("%s" % _("Clear N-copper")) + self.clearcopper_label.setToolTip( + _("Create a Geometry object with\n" + "toolpaths to cut all non-copper regions.") + ) + self.clearcopper_label.setMinimumWidth(90) + self.generate_ncc_button = QtWidgets.QPushButton(_('NCC Tool')) self.generate_ncc_button.setToolTip( _("Create the Geometry Object\n" @@ -354,9 +582,17 @@ class GerberObjectUI(ObjectUI): font-weight: bold; } """) - grid2.addWidget(self.generate_ncc_button, 2, 0, 1, 2) + grid2.addWidget(self.clearcopper_label, 1, 0) + grid2.addWidget(self.generate_ncc_button, 1, 1) # ## Board cutout + self.board_cutout_label = QtWidgets.QLabel("%s" % _("Board cutout")) + self.board_cutout_label.setToolTip( + _("Create toolpaths to cut around\n" + "the PCB and separate it from\n" + "the original board.") + ) + self.generate_cutout_button = QtWidgets.QPushButton(_('Cutout Tool')) self.generate_cutout_button.setToolTip( _("Generate the geometry for\n" @@ -368,12 +604,13 @@ class GerberObjectUI(ObjectUI): font-weight: bold; } """) - grid2.addWidget(self.generate_cutout_button, 3, 0, 1, 2) + grid2.addWidget(self.board_cutout_label, 2, 0) + grid2.addWidget(self.generate_cutout_button, 2, 1) separator_line = QtWidgets.QFrame() separator_line.setFrameShape(QtWidgets.QFrame.HLine) separator_line.setFrameShadow(QtWidgets.QFrame.Sunken) - grid2.addWidget(separator_line, 4, 0, 1, 2) + grid2.addWidget(separator_line, 3, 0, 1, 2) # ## Non-copper regions self.noncopper_label = QtWidgets.QLabel("%s" % _("Non-copper regions")) @@ -385,7 +622,7 @@ class GerberObjectUI(ObjectUI): "copper from a specified region.") ) - grid2.addWidget(self.noncopper_label, 5, 0, 1, 2) + grid2.addWidget(self.noncopper_label, 4, 0, 1, 2) # Margin bmlabel = QtWidgets.QLabel('%s:' % _('Boundary Margin')) @@ -401,8 +638,8 @@ class GerberObjectUI(ObjectUI): self.noncopper_margin_entry.set_precision(self.decimals) self.noncopper_margin_entry.setSingleStep(0.1) - grid2.addWidget(bmlabel, 6, 0) - grid2.addWidget(self.noncopper_margin_entry, 6, 1) + grid2.addWidget(bmlabel, 5, 0) + grid2.addWidget(self.noncopper_margin_entry, 5, 1) # Rounded corners self.noncopper_rounded_cb = FCCheckBox(label=_("Rounded Geo")) @@ -412,13 +649,13 @@ class GerberObjectUI(ObjectUI): self.noncopper_rounded_cb.setMinimumWidth(90) self.generate_noncopper_button = QtWidgets.QPushButton(_('Generate Geo')) - grid2.addWidget(self.noncopper_rounded_cb, 7, 0) - grid2.addWidget(self.generate_noncopper_button, 7, 1) + grid2.addWidget(self.noncopper_rounded_cb, 6, 0) + grid2.addWidget(self.generate_noncopper_button, 6, 1) separator_line1 = QtWidgets.QFrame() separator_line1.setFrameShape(QtWidgets.QFrame.HLine) separator_line1.setFrameShadow(QtWidgets.QFrame.Sunken) - grid2.addWidget(separator_line1, 8, 0, 1, 2) + grid2.addWidget(separator_line1, 7, 0, 1, 2) # ## Bounding box self.boundingbox_label = QtWidgets.QLabel('%s' % _('Bounding Box')) @@ -427,7 +664,7 @@ class GerberObjectUI(ObjectUI): "Square shape.") ) - grid2.addWidget(self.boundingbox_label, 9, 0, 1, 2) + grid2.addWidget(self.boundingbox_label, 8, 0, 1, 2) bbmargin = QtWidgets.QLabel('%s:' % _('Boundary Margin')) bbmargin.setToolTip( @@ -440,8 +677,8 @@ class GerberObjectUI(ObjectUI): self.bbmargin_entry.set_precision(self.decimals) self.bbmargin_entry.setSingleStep(0.1) - grid2.addWidget(bbmargin, 10, 0) - grid2.addWidget(self.bbmargin_entry, 10, 1) + grid2.addWidget(bbmargin, 9, 0) + grid2.addWidget(self.bbmargin_entry, 9, 1) self.bbrounded_cb = FCCheckBox(label=_("Rounded Geo")) self.bbrounded_cb.setToolTip( @@ -456,8 +693,8 @@ class GerberObjectUI(ObjectUI): self.generate_bb_button.setToolTip( _("Generate the Geometry object.") ) - grid2.addWidget(self.bbrounded_cb, 11, 0) - grid2.addWidget(self.generate_bb_button, 11, 1) + grid2.addWidget(self.bbrounded_cb, 10, 0) + grid2.addWidget(self.generate_bb_button, 10, 1) class ExcellonObjectUI(ObjectUI): @@ -486,38 +723,22 @@ class ExcellonObjectUI(ObjectUI): parent=parent, app=self.app) - # Plot options - grid_h = QtWidgets.QGridLayout() - grid_h.setAlignment(QtCore.Qt.AlignLeft | QtCore.Qt.AlignVCenter) - self.custom_box.addLayout(grid_h) - grid_h.setColumnStretch(0, 0) - grid_h.setColumnStretch(1, 1) + # ### Plot options #### + hlay_plot = QtWidgets.QHBoxLayout() + self.custom_box.addLayout(hlay_plot) self.plot_options_label = QtWidgets.QLabel("%s:" % _("Plot Options")) - self.plot_options_label.setMinimumWidth(90) - - grid_h.addWidget(self.plot_options_label, 0, 0) - - # Solid CB self.solid_cb = FCCheckBox(label=_('Solid')) self.solid_cb.setToolTip( _("Solid circles.") ) - self.solid_cb.setMinimumWidth(50) - grid_h.addWidget(self.solid_cb, 0, 1) - - # Multicolored CB - self.multicolored_cb = FCCheckBox(label=_('Multi-Color')) - self.multicolored_cb.setToolTip( - _("Draw polygons in different colors.") - ) - self.multicolored_cb.setMinimumWidth(55) - grid_h.addWidget(self.multicolored_cb, 0, 2) + hlay_plot.addWidget(self.plot_options_label) + hlay_plot.addStretch() + hlay_plot.addWidget(self.solid_cb) # ## Object name self.name_hlay = QtWidgets.QHBoxLayout() - grid_h.addLayout(self.name_hlay, 1, 0, 1, 3) - + self.custom_box.addLayout(self.name_hlay) name_label = QtWidgets.QLabel("%s:" % _("Name")) self.name_entry = FCEntry() self.name_entry.setFocusPolicy(QtCore.Qt.StrongFocus) @@ -1304,28 +1525,12 @@ class GeometryObjectUI(ObjectUI): ) # Plot options - grid_header = QtWidgets.QGridLayout() - grid_header.setAlignment(QtCore.Qt.AlignLeft | QtCore.Qt.AlignVCenter) - self.custom_box.addLayout(grid_header) - grid_header.setColumnStretch(0, 0) - grid_header.setColumnStretch(1, 1) - self.plot_options_label = QtWidgets.QLabel("%s:" % _("Plot Options")) - self.plot_options_label.setMinimumWidth(90) - - grid_header.addWidget(self.plot_options_label, 0, 0) - - # Multicolored CB - self.multicolored_cb = FCCheckBox(label=_('Multi-Color')) - self.multicolored_cb.setToolTip( - _("Draw polygons in different colors.") - ) - self.multicolored_cb.setMinimumWidth(55) - grid_header.addWidget(self.multicolored_cb, 0, 2) + self.custom_box.addWidget(self.plot_options_label) # ## Object name self.name_hlay = QtWidgets.QHBoxLayout() - grid_header.addLayout(self.name_hlay, 1, 0, 1, 3) + self.custom_box.addLayout(self.name_hlay) name_label = QtWidgets.QLabel("%s:" % _("Name")) self.name_entry = FCEntry() @@ -1489,24 +1694,19 @@ class GeometryObjectUI(ObjectUI): grid1.addWidget(self.addtool_entry_lbl, 3, 0) grid1.addWidget(self.addtool_entry, 3, 1) - bhlay = QtWidgets.QHBoxLayout() - self.addtool_btn = QtWidgets.QPushButton(_('Add')) self.addtool_btn.setToolTip( _("Add a new tool to the Tool Table\n" - "with the diameter specified above.") + "with the specified diameter.") ) + grid1.addWidget(self.addtool_btn, 4, 0, 1, 2) self.addtool_from_db_btn = QtWidgets.QPushButton(_('Add from DB')) self.addtool_from_db_btn.setToolTip( _("Add a new tool to the Tool Table\n" "from the Tool DataBase.") ) - - bhlay.addWidget(self.addtool_btn) - bhlay.addWidget(self.addtool_from_db_btn) - - grid1.addLayout(bhlay, 5, 0, 1, 2) + grid1.addWidget(self.addtool_from_db_btn, 7, 0, 1, 2) separator_line = QtWidgets.QFrame() separator_line.setFrameShape(QtWidgets.QFrame.HLine) @@ -1554,10 +1754,10 @@ class GeometryObjectUI(ObjectUI): # ################# GRID LAYOUT 3 ############################### # ################################################################# - self.grid3 = QtWidgets.QGridLayout() - self.grid3.setColumnStretch(0, 0) - self.grid3.setColumnStretch(1, 1) - self.geo_param_box.addLayout(self.grid3) + grid3 = QtWidgets.QGridLayout() + grid3.setColumnStretch(0, 0) + grid3.setColumnStretch(1, 1) + self.geo_param_box.addLayout(grid3) # ### Tools Data ## ## self.tool_data_label = QtWidgets.QLabel( @@ -1568,7 +1768,7 @@ class GeometryObjectUI(ObjectUI): "Each tool store it's own set of such data." ) ) - self.grid3.addWidget(self.tool_data_label, 0, 0, 1, 2) + grid3.addWidget(self.tool_data_label, 0, 0, 1, 2) # Tip Dia self.tipdialabel = QtWidgets.QLabel('%s:' % _('V-Tip Dia')) @@ -1582,8 +1782,8 @@ class GeometryObjectUI(ObjectUI): self.tipdia_entry.set_range(0.00001, 9999.9999) self.tipdia_entry.setSingleStep(0.1) - self.grid3.addWidget(self.tipdialabel, 1, 0) - self.grid3.addWidget(self.tipdia_entry, 1, 1) + grid3.addWidget(self.tipdialabel, 1, 0) + grid3.addWidget(self.tipdia_entry, 1, 1) # Tip Angle self.tipanglelabel = QtWidgets.QLabel('%s:' % _('V-Tip Angle')) @@ -1598,8 +1798,8 @@ class GeometryObjectUI(ObjectUI): self.tipangle_entry.set_range(1.0, 180.0) self.tipangle_entry.setSingleStep(1) - self.grid3.addWidget(self.tipanglelabel, 2, 0) - self.grid3.addWidget(self.tipangle_entry, 2, 1) + grid3.addWidget(self.tipanglelabel, 2, 0) + grid3.addWidget(self.tipangle_entry, 2, 1) # Cut Z self.cutzlabel = QtWidgets.QLabel('%s:' % _('Cut Z')) @@ -1619,8 +1819,8 @@ class GeometryObjectUI(ObjectUI): self.cutz_entry.setSingleStep(0.1) - self.grid3.addWidget(self.cutzlabel, 3, 0) - self.grid3.addWidget(self.cutz_entry, 3, 1) + grid3.addWidget(self.cutzlabel, 3, 0) + grid3.addWidget(self.cutz_entry, 3, 1) # Multi-pass self.mpass_cb = FCCheckBox('%s:' % _("Multi-Depth")) @@ -1645,8 +1845,8 @@ class GeometryObjectUI(ObjectUI): ) self.ois_mpass_geo = OptionalInputSection(self.mpass_cb, [self.maxdepth_entry]) - self.grid3.addWidget(self.mpass_cb, 4, 0) - self.grid3.addWidget(self.maxdepth_entry, 4, 1) + grid3.addWidget(self.mpass_cb, 4, 0) + grid3.addWidget(self.maxdepth_entry, 4, 1) # Travel Z self.travelzlabel = QtWidgets.QLabel('%s:' % _('Travel Z')) @@ -1664,8 +1864,8 @@ class GeometryObjectUI(ObjectUI): self.travelz_entry.setSingleStep(0.1) - self.grid3.addWidget(self.travelzlabel, 5, 0) - self.grid3.addWidget(self.travelz_entry, 5, 1) + grid3.addWidget(self.travelzlabel, 5, 0) + grid3.addWidget(self.travelz_entry, 5, 1) # Feedrate X-Y self.frlabel = QtWidgets.QLabel('%s:' % _('Feedrate X-Y')) @@ -1678,8 +1878,8 @@ class GeometryObjectUI(ObjectUI): self.cncfeedrate_entry.set_range(0, 99999.9999) self.cncfeedrate_entry.setSingleStep(0.1) - self.grid3.addWidget(self.frlabel, 10, 0) - self.grid3.addWidget(self.cncfeedrate_entry, 10, 1) + grid3.addWidget(self.frlabel, 10, 0) + grid3.addWidget(self.cncfeedrate_entry, 10, 1) # Feedrate Z (Plunge) self.frzlabel = QtWidgets.QLabel('%s:' % _('Feedrate Z')) @@ -1693,8 +1893,8 @@ class GeometryObjectUI(ObjectUI): self.feedrate_z_entry.set_range(0, 99999.9999) self.feedrate_z_entry.setSingleStep(0.1) - self.grid3.addWidget(self.frzlabel, 11, 0) - self.grid3.addWidget(self.feedrate_z_entry, 11, 1) + grid3.addWidget(self.frzlabel, 11, 0) + grid3.addWidget(self.feedrate_z_entry, 11, 1) # Feedrate rapids self.fr_rapidlabel = QtWidgets.QLabel('%s:' % _('Feedrate Rapids')) @@ -1710,8 +1910,8 @@ class GeometryObjectUI(ObjectUI): self.feedrate_rapid_entry.set_range(0, 99999.9999) self.feedrate_rapid_entry.setSingleStep(0.1) - self.grid3.addWidget(self.fr_rapidlabel, 12, 0) - self.grid3.addWidget(self.feedrate_rapid_entry, 12, 1) + grid3.addWidget(self.fr_rapidlabel, 12, 0) + grid3.addWidget(self.feedrate_rapid_entry, 12, 1) # default values is to hide self.fr_rapidlabel.hide() self.feedrate_rapid_entry.hide() @@ -1736,8 +1936,8 @@ class GeometryObjectUI(ObjectUI): "meet with last cut, we generate an\n" "extended cut over the first cut section.") ) - self.grid3.addWidget(self.extracut_cb, 13, 0) - self.grid3.addWidget(self.e_cut_entry, 13, 1) + grid3.addWidget(self.extracut_cb, 13, 0) + grid3.addWidget(self.e_cut_entry, 13, 1) # Spindlespeed self.spindle_label = QtWidgets.QLabel('%s:' % _('Spindle speed')) @@ -1752,8 +1952,8 @@ class GeometryObjectUI(ObjectUI): self.cncspindlespeed_entry.set_range(0, 1000000) self.cncspindlespeed_entry.set_step(100) - self.grid3.addWidget(self.spindle_label, 14, 0) - self.grid3.addWidget(self.cncspindlespeed_entry, 14, 1) + grid3.addWidget(self.spindle_label, 14, 0) + grid3.addWidget(self.cncspindlespeed_entry, 14, 1) # Dwell self.dwell_cb = FCCheckBox('%s:' % _('Dwell')) @@ -1773,8 +1973,8 @@ class GeometryObjectUI(ObjectUI): ) self.ois_dwell_geo = OptionalInputSection(self.dwell_cb, [self.dwelltime_entry]) - self.grid3.addWidget(self.dwell_cb, 15, 0) - self.grid3.addWidget(self.dwelltime_entry, 15, 1) + grid3.addWidget(self.dwell_cb, 15, 0) + grid3.addWidget(self.dwelltime_entry, 15, 1) # Probe depth self.pdepth_label = QtWidgets.QLabel('%s:' % _("Probe Z depth")) @@ -1787,8 +1987,8 @@ class GeometryObjectUI(ObjectUI): self.pdepth_entry.set_range(-9999.9999, 9999.9999) self.pdepth_entry.setSingleStep(0.1) - self.grid3.addWidget(self.pdepth_label, 17, 0) - self.grid3.addWidget(self.pdepth_entry, 17, 1) + grid3.addWidget(self.pdepth_label, 17, 0) + grid3.addWidget(self.pdepth_entry, 17, 1) self.pdepth_label.hide() self.pdepth_entry.setVisible(False) @@ -1803,8 +2003,8 @@ class GeometryObjectUI(ObjectUI): self.feedrate_probe_entry.set_range(0.0, 9999.9999) self.feedrate_probe_entry.setSingleStep(0.1) - self.grid3.addWidget(self.feedrate_probe_label, 18, 0) - self.grid3.addWidget(self.feedrate_probe_entry, 18, 1) + grid3.addWidget(self.feedrate_probe_label, 18, 0) + grid3.addWidget(self.feedrate_probe_entry, 18, 1) self.feedrate_probe_label.hide() self.feedrate_probe_entry.setVisible(False) diff --git a/AppGUI/PlotCanvas.py b/flatcamGUI/PlotCanvas.py similarity index 69% rename from AppGUI/PlotCanvas.py rename to flatcamGUI/PlotCanvas.py index 61730cd2..44af74d0 100644 --- a/AppGUI/PlotCanvas.py +++ b/flatcamGUI/PlotCanvas.py @@ -8,21 +8,13 @@ from PyQt5 import QtCore import logging -from AppGUI.VisPyCanvas import VisPyCanvas, Color -from AppGUI.VisPyVisuals import ShapeGroup, ShapeCollection, TextCollection, TextGroup, Cursor -from vispy.scene.visuals import InfiniteLine, Line, Rectangle, Text - -import gettext -import AppTranslation as fcTranslate -import builtins +from flatcamGUI.VisPyCanvas import VisPyCanvas, Color +from flatcamGUI.VisPyVisuals import ShapeGroup, ShapeCollection, TextCollection, TextGroup, Cursor +from vispy.scene.visuals import InfiniteLine, Line import numpy as np from vispy.geometry import Rect -fcTranslate.apply_language('strings') -if '_' not in builtins.__dict__: - _ = gettext.gettext - log = logging.getLogger('base') @@ -62,12 +54,8 @@ class PlotCanvas(QtCore.QObject, VisPyCanvas): if theme == 'white': self.line_color = (0.3, 0.0, 0.0, 1.0) - self.rect_hud_color = Color('#0000FF10') - self.text_hud_color = 'black' else: self.line_color = (0.4, 0.4, 0.4, 1.0) - self.rect_hud_color = Color('#80808040') - self.text_hud_color = 'white' # workspace lines; I didn't use the rectangle because I didn't want to add another VisPy Node, # which might decrease performance @@ -141,6 +129,11 @@ class PlotCanvas(QtCore.QObject, VisPyCanvas): self.h_line = InfiniteLine(pos=0, color=(0.70, 0.3, 0.3, 0.8), vertical=False, parent=self.view.scene) + # draw a rectangle made out of 4 lines on the canvas to serve as a hint for the work area + # all CNC have a limited workspace + if self.fcapp.defaults['global_workspace'] is True: + self.draw_workspace(workspace_size=self.fcapp.defaults["global_workspaceT"]) + self.line_parent = None if self.fcapp.defaults["global_cursor_color_enabled"]: c_color = Color(self.fcapp.defaults["global_cursor_color"]).rgba @@ -153,61 +146,13 @@ class PlotCanvas(QtCore.QObject, VisPyCanvas): self.cursor_h_line = InfiniteLine(pos=None, color=c_color, vertical=False, parent=self.line_parent) - # font size - qsettings = QtCore.QSettings("Open Source", "FlatCAM") - if qsettings.contains("hud_font_size"): - fsize = qsettings.value('hud_font_size', type=int) - else: - fsize = 8 - - # units - units = self.fcapp.defaults["units"].lower() - - # coordinates and anchors - height = fsize * 11 # 90. Constant 11 is something that works - width = height * 2 # width is double the height = it is something that works - center_x = (width / 2) + 5 - center_y = (height / 2) + 5 - - # text - self.text_hud = Text('', color=self.text_hud_color, pos=(10, center_y), method='gpu', anchor_x='left', - parent=None) - self.text_hud.font_size = fsize - self.text_hud.text = 'Dx:\t%s [%s]\nDy:\t%s [%s]\n\nX: \t%s [%s]\nY: \t%s [%s]' % \ - ('0.0000', units, '0.0000', units, '0.0000', units, '0.0000', units) - - # rectangle - self.rect_hud = Rectangle(center=(center_x, center_y), width=width, height=height, radius=[5, 5, 5, 5], - border_color=self.rect_hud_color, color=self.rect_hud_color, parent=None) - self.rect_hud.set_gl_state(depth_test=False) - - # draw a rectangle made out of 4 lines on the canvas to serve as a hint for the work area - # all CNC have a limited workspace - if self.fcapp.defaults['global_workspace'] is True: - self.draw_workspace(workspace_size=self.fcapp.defaults["global_workspaceT"]) - - # HUD Display - self.hud_enabled = False - - # enable the HUD if it is activated in FlatCAM Preferences - if self.fcapp.defaults['global_hud'] is True: - self.on_toggle_hud(state=True) - - # Axis Display - self.axis_enabled = True - - # enable Axis - self.on_toggle_axis(state=True) - - # enable Grid lines - self.grid_lines_enabled = True - self.shape_collections = [] self.shape_collection = self.new_shape_collection() self.fcapp.pool_recreated.connect(self.on_pool_recreated) self.text_collection = self.new_text_collection() + # TODO: Should be setting to show/hide CNC job annotations (global or per object) self.text_collection.enabled = True self.c = None @@ -218,76 +163,6 @@ class PlotCanvas(QtCore.QObject, VisPyCanvas): self.graph_event_connect('mouse_wheel', self.on_mouse_scroll) - def on_toggle_axis(self, signal=None, state=None): - if state is None: - state = not self.axis_enabled - - if state: - self.axis_enabled = True - self.v_line.parent = self.view.scene - self.h_line.parent = self.view.scene - self.fcapp.ui.axis_status_label.setStyleSheet(""" - QLabel - { - color: black; - background-color: orange; - } - """) - self.fcapp.inform[str, bool].emit(_("Axis enabled."), False) - else: - self.axis_enabled = False - self.v_line.parent = None - self.h_line.parent = None - self.fcapp.ui.axis_status_label.setStyleSheet("") - self.fcapp.inform[str, bool].emit(_("Axis disabled."), False) - - def on_toggle_hud(self, signal=None, state=None): - if state is None: - state = not self.hud_enabled - - if state: - self.hud_enabled = True - self.rect_hud.parent = self.view - self.text_hud.parent = self.view - self.fcapp.defaults['global_hud'] = True - self.fcapp.ui.hud_label.setStyleSheet(""" - QLabel - { - color: black; - background-color: mediumpurple; - } - """) - self.fcapp.inform[str, bool].emit(_("HUD enabled."), False) - - else: - self.hud_enabled = False - self.rect_hud.parent = None - self.text_hud.parent = None - self.fcapp.defaults['global_hud'] = False - self.fcapp.ui.hud_label.setStyleSheet("") - self.fcapp.inform[str, bool].emit(_("HUD disabled."), False) - - def on_toggle_grid_lines(self): - state = not self.grid_lines_enabled - - if state: - self.grid_lines_enabled = True - self.grid.parent = self.view.scene - self.fcapp.inform[str, bool].emit(_("Grid enabled."), False) - else: - self.grid_lines_enabled = False - self.grid.parent = None - self.fcapp.inform[str, bool].emit(_("Grid disabled."), False) - - # HACK: enabling/disabling the cursor seams to somehow update the shapes on screen - # - perhaps is a bug in VisPy implementation - if self.fcapp.grid_status(): - self.fcapp.app_cursor.enabled = False - self.fcapp.app_cursor.enabled = True - else: - self.fcapp.app_cursor.enabled = True - self.fcapp.app_cursor.enabled = False - def draw_workspace(self, workspace_size): """ Draw a rectangular shape on canvas to specify our valid workspace. @@ -308,30 +183,17 @@ class PlotCanvas(QtCore.QObject, VisPyCanvas): a = np.array([(0, 0), (dims[0], 0), (dims[0], dims[1]), (0, dims[1])]) - # if not self.workspace_line: - # self.workspace_line = Line(pos=np.array((a[0], a[1], a[2], a[3], a[0])), color=(0.70, 0.3, 0.3, 0.7), - # antialias=True, method='agg', parent=self.view.scene) - # else: - # self.workspace_line.parent = self.view.scene - self.workspace_line = Line(pos=np.array((a[0], a[1], a[2], a[3], a[0])), color=(0.70, 0.3, 0.3, 0.7), - antialias=True, method='agg', parent=self.view.scene) - - self.fcapp.ui.wplace_label.set_value(workspace_size[:3]) - self.fcapp.ui.wplace_label.setToolTip(workspace_size) - self.fcapp.ui.wplace_label.setStyleSheet(""" - QLabel - { - color: black; - background-color: olivedrab; - } - """) + if not self.workspace_line: + self.workspace_line = Line(pos=np.array((a[0], a[1], a[2], a[3], a[0])), color=(0.70, 0.3, 0.3, 0.7), + antialias=True, method='agg', parent=self.view.scene) + else: + self.workspace_line.parent = self.view.scene def delete_workspace(self): try: self.workspace_line.parent = None except Exception: pass - self.fcapp.ui.wplace_label.setStyleSheet("") # redraw the workspace lines on the plot by re adding them to the parent view.scene def restore_workspace(self): diff --git a/AppGUI/PlotCanvasLegacy.py b/flatcamGUI/PlotCanvasLegacy.py similarity index 84% rename from AppGUI/PlotCanvasLegacy.py rename to flatcamGUI/PlotCanvasLegacy.py index ba614642..a9a6216f 100644 --- a/AppGUI/PlotCanvasLegacy.py +++ b/flatcamGUI/PlotCanvasLegacy.py @@ -19,10 +19,8 @@ from shapely.geometry import Polygon, LineString, LinearRing from copy import deepcopy import logging -import numpy as np - import gettext -import AppTranslation as fcTranslate +import FlatCAMTranslation as fcTranslate import builtins # Prevent conflict with Qt5 and above. @@ -31,13 +29,13 @@ mpl_use("Qt5Agg") from matplotlib.figure import Figure from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvas from matplotlib.lines import Line2D -from matplotlib.offsetbox import AnchoredText # from matplotlib.widgets import Cursor fcTranslate.apply_language('strings') if '_' not in builtins.__dict__: _ = gettext.gettext + log = logging.getLogger('base') @@ -47,9 +45,9 @@ class CanvasCache(QtCore.QObject): Case story #1: 1) No objects in the project. - 2) Object is created (app_obj.new_object() emits object_created(obj)). + 2) Object is created (new_object() emits object_created(obj)). on_object_created() adds (i) object to collection and emits - (ii) app_obj.new_object_available() then calls (iii) object.plot() + (ii) new_object_available() then calls (iii) object.plot() 3) object.plot() creates axes if necessary on app.collection.figure. Then plots on it. 4) Plots on a cache-size canvas (in background). @@ -115,7 +113,7 @@ class CanvasCache(QtCore.QObject): # Continue to update the cache. - # def on_app_obj.new_object_available(self): + # def on_new_object_available(self): # # log.debug("A new object is available. Should plot it!") @@ -149,13 +147,9 @@ class PlotCanvasLegacy(QtCore.QObject): if self.app.defaults['global_theme'] == 'white': theme_color = '#FFFFFF' tick_color = '#000000' - self.rect_hud_color = '#0000FF10' - self.text_hud_color = '#000000' else: theme_color = '#000000' tick_color = '#FFFFFF' - self.rect_hud_color = '#80808040' - self.text_hud_color = '#FFFFFF' # workspace lines; I didn't use the rectangle because I didn't want to add another VisPy Node, # which might decrease performance @@ -301,163 +295,14 @@ class PlotCanvasLegacy(QtCore.QObject): # signal is the mouse is dragging self.is_dragging = False - self.mouse_press_pos = None - # signal if there is a doubleclick self.is_dblclk = False - self.hud_enabled = False - self.text_hud = self.Thud(plotcanvas=self) - - # enable Grid lines - self.grid_lines_enabled = True - # draw a rectangle made out of 4 lines on the canvas to serve as a hint for the work area # all CNC have a limited workspace if self.app.defaults['global_workspace'] is True: self.draw_workspace(workspace_size=self.app.defaults["global_workspaceT"]) - if self.app.defaults['global_hud'] is True: - self.on_toggle_hud(state=True) - - # Axis Display - self.axis_enabled = True - - # enable Axis - self.on_toggle_axis(state=True) - - def on_toggle_axis(self, signal=None, state=None): - if state is None: - state = not self.axis_enabled - - if state: - self.axis_enabled = True - if self.h_line not in self.axes.lines and self.v_line not in self.axes.lines: - self.h_line = self.axes.axhline(color=(0.70, 0.3, 0.3), linewidth=2) - self.v_line = self.axes.axvline(color=(0.70, 0.3, 0.3), linewidth=2) - self.app.ui.axis_status_label.setStyleSheet(""" - QLabel - { - color: black; - background-color: orange; - } - """) - self.app.inform[str, bool].emit(_("Axis enabled."), False) - else: - self.axis_enabled = False - if self.h_line in self.axes.lines and self.v_line in self.axes.lines: - self.axes.lines.remove(self.h_line) - self.axes.lines.remove(self.v_line) - self.app.ui.axis_status_label.setStyleSheet("") - self.app.inform[str, bool].emit(_("Axis disabled."), False) - - self.canvas.draw() - - def on_toggle_hud(self, signal=None, state=None): - if state is None: - state = not self.hud_enabled - - if state: - self.hud_enabled = True - self.text_hud.add_artist() - self.app.defaults['global_hud'] = True - - self.app.ui.hud_label.setStyleSheet(""" - QLabel - { - color: black; - background-color: mediumpurple; - } - """) - self.app.inform[str, bool].emit(_("HUD enabled."), False) - else: - self.hud_enabled = False - self.text_hud.remove_artist() - self.app.defaults['global_hud'] = False - self.app.ui.hud_label.setStyleSheet("") - self.app.inform[str, bool].emit(_("HUD disabled."), False) - - self.canvas.draw() - - class Thud(QtCore.QObject): - text_changed = QtCore.pyqtSignal(str) - - def __init__(self, plotcanvas): - super().__init__() - - self.p = plotcanvas - units = self.p.app.defaults['units'] - self._text = 'Dx: %s [%s]\nDy: %s [%s]\n\nX: %s [%s]\nY: %s [%s]' % \ - ('0.0000', units, '0.0000', units, '0.0000', units, '0.0000', units) - - # set font size - qsettings = QtCore.QSettings("Open Source", "FlatCAM") - if qsettings.contains("hud_font_size"): - # I multiply with 2.5 because this seems to be the difference between the value taken by the VisPy (3D) - # and Matplotlib (Legacy2D FlatCAM graphic engine) - fsize = int(qsettings.value('hud_font_size', type=int) * 2.5) - else: - fsize = 20 - - self.hud_holder = AnchoredText(self._text, prop=dict(size=fsize), frameon=True, loc='upper left') - self.hud_holder.patch.set_boxstyle("round,pad=0.,rounding_size=0.2") - - fc_color = self.p.rect_hud_color[:-2] - fc_alpha = int(self.p.rect_hud_color[-2:], 16) / 255 - text_color = self.p.text_hud_color - - self.hud_holder.patch.set_facecolor(fc_color) - self.hud_holder.patch.set_alpha(fc_alpha) - self.hud_holder.patch.set_edgecolor((0, 0, 0, 0)) - - self. hud_holder.txt._text.set_color(color=text_color) - self.text_changed.connect(self.on_text_changed) - - @property - def text(self): - return self._text - - @text.setter - def text(self, val): - self.text_changed.emit(val) - self._text = val - - def on_text_changed(self, txt): - try: - txt = txt.replace('\t', ' ') - self.hud_holder.txt.set_text(txt) - self.p.canvas.draw() - except Exception: - pass - - def add_artist(self): - if self.hud_holder not in self.p.axes.artists: - self.p.axes.add_artist(self.hud_holder) - - def remove_artist(self): - if self.hud_holder in self.p.axes.artists: - self.p.axes.artists.remove(self.hud_holder) - - def on_toggle_grid_lines(self): - state = not self.grid_lines_enabled - - if state: - self.grid_lines_enabled = True - self.axes.grid(True) - try: - self.canvas.draw() - except IndexError: - pass - self.app.inform[str, bool].emit(_("Grid enabled."), False) - else: - self.grid_lines_enabled = False - self.axes.grid(False) - try: - self.canvas.draw() - except IndexError: - pass - self.app.inform[str, bool].emit(_("Grid disabled."), False) - def draw_workspace(self, workspace_size): """ Draw a rectangular shape on canvas to specify our valid workspace. @@ -484,23 +329,12 @@ class PlotCanvasLegacy(QtCore.QObject): self.axes.add_line(self.workspace_line) self.canvas.draw() - self.app.ui.wplace_label.set_value(workspace_size[:3]) - self.app.ui.wplace_label.setToolTip(workspace_size) - self.fcapp.ui.wplace_label.setStyleSheet(""" - QLabel - { - color: black; - background-color: olivedrab; - } - """) - def delete_workspace(self): try: self.axes.lines.remove(self.workspace_line) self.canvas.draw() except Exception: pass - self.fcapp.ui.wplace_label.setStyleSheet("") def graph_event_connect(self, event_name, callback): """ @@ -589,7 +423,7 @@ class PlotCanvasLegacy(QtCore.QObject): if self.big_cursor is False: try: - x, y = self.snap(x_pos, y_pos) + x, y = self.app.geo_editor.snap(x_pos, y_pos) # Pointer (snapped) # The size of the cursor is multiplied by 1.65 because that value made the cursor similar with the @@ -622,7 +456,7 @@ class PlotCanvasLegacy(QtCore.QObject): pass self.canvas.draw_idle() - self.canvas.blit(self.axes.bbox) + self.canvas.blit(self.axes.bbox) def clear_cursor(self, state): if state is True: @@ -947,7 +781,6 @@ class PlotCanvasLegacy(QtCore.QObject): def on_mouse_press(self, event): self.is_dragging = True - self.mouse_press_pos = (event.x, event.y) # Check for middle mouse button press if self.app.defaults["global_pan_button"] == '2': @@ -973,11 +806,7 @@ class PlotCanvasLegacy(QtCore.QObject): def on_mouse_release(self, event): - mouse_release_pos = (event.x, event.y) - delta = 0.05 - - if abs(self.distance(self.mouse_press_pos, mouse_release_pos)) < delta: - self.is_dragging = False + self.is_dragging = False # Check for middle mouse button release to complete pan procedure # Check for middle mouse button press @@ -1029,7 +858,7 @@ class PlotCanvasLegacy(QtCore.QObject): self.canvas.draw_idle() # #### Temporary place-holder for cached update ##### - # self.update_screen_request.emit([0, 0, 0, 0, 0]) + self.update_screen_request.emit([0, 0, 0, 0, 0]) if self.app.defaults["global_cursor_color_enabled"] is True: self.draw_cursor(x_pos=x, y_pos=y, color=self.app.cursor_color_3D) @@ -1081,59 +910,6 @@ class PlotCanvasLegacy(QtCore.QObject): return width / xpx, height / ypx - def snap(self, x, y): - """ - Adjusts coordinates to snap settings. - - :param x: Input coordinate X - :param y: Input coordinate Y - :return: Snapped (x, y) - """ - - snap_x, snap_y = (x, y) - snap_distance = np.Inf - - # ### Grid snap - if self.app.grid_status(): - if self.app.defaults["global_gridx"] != 0: - try: - snap_x_ = round(x / float(self.app.defaults["global_gridx"])) * \ - float(self.app.defaults["global_gridx"]) - except TypeError: - snap_x_ = x - else: - snap_x_ = x - - # If the Grid_gap_linked on Grid Toolbar is checked then the snap distance on GridY entry will be ignored - # and it will use the snap distance from GridX entry - if self.app.ui.grid_gap_link_cb.isChecked(): - if self.app.defaults["global_gridx"] != 0: - try: - snap_y_ = round(y / float(self.app.defaults["global_gridx"])) * \ - float(self.app.defaults["global_gridx"]) - except TypeError: - snap_y_ = y - else: - snap_y_ = y - else: - if self.app.defaults["global_gridy"] != 0: - try: - snap_y_ = round(y / float(self.app.defaults["global_gridy"])) * \ - float(self.app.defaults["global_gridy"]) - except TypeError: - snap_y_ = y - else: - snap_y_ = y - nearest_grid_distance = self.distance((x, y), (snap_x_, snap_y_)) - if nearest_grid_distance < snap_distance: - snap_x, snap_y = (snap_x_, snap_y_) - - return snap_x, snap_y - - @staticmethod - def distance(pt1, pt2): - return np.sqrt((pt1[0] - pt2[0]) ** 2 + (pt1[1] - pt2[1]) ** 2) - class FakeCursor(QtCore.QObject): """ diff --git a/AppGUI/VisPyCanvas.py b/flatcamGUI/VisPyCanvas.py similarity index 99% rename from AppGUI/VisPyCanvas.py rename to flatcamGUI/VisPyCanvas.py index aa55675f..7d7efe13 100644 --- a/AppGUI/VisPyCanvas.py +++ b/flatcamGUI/VisPyCanvas.py @@ -13,7 +13,6 @@ import numpy as np import vispy.scene as scene from vispy.scene.cameras.base_camera import BaseCamera -# from vispy.scene.widgets import Widget as VisPyWidget from vispy.color import Color import time diff --git a/AppGUI/VisPyData/data/fonts/opensans-regular.ttf b/flatcamGUI/VisPyData/data/fonts/opensans-regular.ttf similarity index 100% rename from AppGUI/VisPyData/data/fonts/opensans-regular.ttf rename to flatcamGUI/VisPyData/data/fonts/opensans-regular.ttf diff --git a/AppGUI/VisPyData/data/freetype/freetype253.dll b/flatcamGUI/VisPyData/data/freetype/freetype253.dll similarity index 100% rename from AppGUI/VisPyData/data/freetype/freetype253.dll rename to flatcamGUI/VisPyData/data/freetype/freetype253.dll diff --git a/AppGUI/VisPyData/data/freetype/freetype253_x64.dll b/flatcamGUI/VisPyData/data/freetype/freetype253_x64.dll similarity index 100% rename from AppGUI/VisPyData/data/freetype/freetype253_x64.dll rename to flatcamGUI/VisPyData/data/freetype/freetype253_x64.dll diff --git a/AppGUI/VisPyPatches.py b/flatcamGUI/VisPyPatches.py similarity index 100% rename from AppGUI/VisPyPatches.py rename to flatcamGUI/VisPyPatches.py diff --git a/AppGUI/VisPyTesselators.py b/flatcamGUI/VisPyTesselators.py similarity index 100% rename from AppGUI/VisPyTesselators.py rename to flatcamGUI/VisPyTesselators.py diff --git a/AppGUI/VisPyVisuals.py b/flatcamGUI/VisPyVisuals.py similarity index 99% rename from AppGUI/VisPyVisuals.py rename to flatcamGUI/VisPyVisuals.py index 3796f759..9cf81e54 100644 --- a/AppGUI/VisPyVisuals.py +++ b/flatcamGUI/VisPyVisuals.py @@ -13,7 +13,7 @@ from vispy.color import Color from shapely.geometry import Polygon, LineString, LinearRing import threading import numpy as np -from AppGUI.VisPyTesselators import GLUTess +from flatcamGUI.VisPyTesselators import GLUTess class FlatCAMLineVisual(LineVisual): diff --git a/AppGUI/__init__.py b/flatcamGUI/__init__.py similarity index 100% rename from AppGUI/__init__.py rename to flatcamGUI/__init__.py diff --git a/flatcamGUI/preferences/OptionsGroupUI.py b/flatcamGUI/preferences/OptionsGroupUI.py new file mode 100644 index 00000000..98780004 --- /dev/null +++ b/flatcamGUI/preferences/OptionsGroupUI.py @@ -0,0 +1,19 @@ +from PyQt5 import QtWidgets + + +class OptionsGroupUI(QtWidgets.QGroupBox): + app = None + + def __init__(self, title, parent=None): + # QtGui.QGroupBox.__init__(self, title, parent=parent) + super(OptionsGroupUI, self).__init__() + self.setStyleSheet(""" + QGroupBox + { + font-size: 16px; + font-weight: bold; + } + """) + + self.layout = QtWidgets.QVBoxLayout() + self.setLayout(self.layout) \ No newline at end of file diff --git a/AppGUI/preferences/PreferencesUIManager.py b/flatcamGUI/preferences/PreferencesUIManager.py similarity index 76% rename from AppGUI/preferences/PreferencesUIManager.py rename to flatcamGUI/preferences/PreferencesUIManager.py index 0d6fe6c9..c49841ba 100644 --- a/AppGUI/preferences/PreferencesUIManager.py +++ b/flatcamGUI/preferences/PreferencesUIManager.py @@ -5,7 +5,7 @@ from defaults import FlatCAMDefaults import logging import gettext -import AppTranslation as fcTranslate +import FlatCAMTranslation as fcTranslate import builtins fcTranslate.apply_language('strings') @@ -29,7 +29,7 @@ class PreferencesUIManager: :param defaults: a dictionary storage where all the application settings are stored :param data_path: a path to the file where all the preferences are stored for persistence - :param ui: reference to the MainGUI class which constructs the UI + :param ui: reference to the FlatCAMGUI class which constructs the UI :param inform: a pyqtSignal used to display information's in the StatusBar of the GUI """ @@ -43,7 +43,7 @@ class PreferencesUIManager: self.preferences_changed_flag = False # when adding entries here read the comments in the method found below named: - # def app_obj.new_object(self, kind, name, initialize, active=True, fit=True, plot=True) + # def new_object(self, kind, name, initialize, active=True, fit=True, plot=True) self.defaults_form_fields = { # General App "decimals_inch": self.ui.general_defaults_form.general_app_group.precision_inch_entry, @@ -123,10 +123,16 @@ class PreferencesUIManager: "gerber_def_zeros": self.ui.gerber_defaults_form.gerber_gen_group.gerber_zeros_radio, "gerber_clean_apertures": self.ui.gerber_defaults_form.gerber_gen_group.gerber_clean_cb, "gerber_extra_buffering": self.ui.gerber_defaults_form.gerber_gen_group.gerber_extra_buffering, - "gerber_plot_fill": self.ui.gerber_defaults_form.gerber_gen_group.fill_color_entry, - "gerber_plot_line": self.ui.gerber_defaults_form.gerber_gen_group.line_color_entry, + "gerber_plot_fill": self.ui.gerber_defaults_form.gerber_gen_group.pf_color_entry, + "gerber_plot_line": self.ui.gerber_defaults_form.gerber_gen_group.pl_color_entry, # Gerber Options + "gerber_isotooldia": self.ui.gerber_defaults_form.gerber_opt_group.iso_tool_dia_entry, + "gerber_isopasses": self.ui.gerber_defaults_form.gerber_opt_group.iso_width_entry, + "gerber_isooverlap": self.ui.gerber_defaults_form.gerber_opt_group.iso_overlap_entry, + "gerber_combine_passes": self.ui.gerber_defaults_form.gerber_opt_group.combine_passes_cb, + "gerber_iso_scope": self.ui.gerber_defaults_form.gerber_opt_group.iso_scope_radio, + "gerber_milling_type": self.ui.gerber_defaults_form.gerber_opt_group.milling_type_radio, "gerber_noncoppermargin": self.ui.gerber_defaults_form.gerber_opt_group.noncopper_margin_entry, "gerber_noncopperrounded": self.ui.gerber_defaults_form.gerber_opt_group.noncopper_rounded_cb, "gerber_bboxmargin": self.ui.gerber_defaults_form.gerber_opt_group.bbmargin_entry, @@ -137,6 +143,12 @@ class PreferencesUIManager: # "gerber_aperture_scale_factor": self.ui.gerber_defaults_form.gerber_adv_opt_group.scale_aperture_entry, # "gerber_aperture_buffer_factor": self.ui.gerber_defaults_form.gerber_adv_opt_group.buffer_aperture_entry, "gerber_follow": self.ui.gerber_defaults_form.gerber_adv_opt_group.follow_cb, + "gerber_tool_type": self.ui.gerber_defaults_form.gerber_adv_opt_group.tool_type_radio, + "gerber_vtipdia": self.ui.gerber_defaults_form.gerber_adv_opt_group.tipdia_spinner, + "gerber_vtipangle": self.ui.gerber_defaults_form.gerber_adv_opt_group.tipangle_spinner, + "gerber_vcutz": self.ui.gerber_defaults_form.gerber_adv_opt_group.cutz_spinner, + "gerber_iso_type": self.ui.gerber_defaults_form.gerber_adv_opt_group.iso_type_radio, + "gerber_buffering": self.ui.gerber_defaults_form.gerber_adv_opt_group.buffering_radio, "gerber_simplification": self.ui.gerber_defaults_form.gerber_adv_opt_group.simplify_cb, "gerber_simp_tolerance": self.ui.gerber_defaults_form.gerber_adv_opt_group.simplification_tol_spinner, @@ -168,7 +180,6 @@ class PreferencesUIManager: # Excellon General "excellon_plot": self.ui.excellon_defaults_form.excellon_gen_group.plot_cb, "excellon_solid": self.ui.excellon_defaults_form.excellon_gen_group.solid_cb, - "excellon_multicolored": self.ui.excellon_defaults_form.excellon_gen_group.multicolored_cb, "excellon_format_upper_in": self.ui.excellon_defaults_form.excellon_gen_group.excellon_format_upper_in_entry, "excellon_format_lower_in": @@ -210,31 +221,31 @@ class PreferencesUIManager: "excellon_gcode_type": self.ui.excellon_defaults_form.excellon_opt_group.excellon_gcode_type_radio, # Excellon Advanced Options - "excellon_offset": self.ui.excellon_defaults_form.excellon_adv_opt_group.offset_entry, - "excellon_toolchangexy": self.ui.excellon_defaults_form.excellon_adv_opt_group.toolchangexy_entry, - "excellon_startz": self.ui.excellon_defaults_form.excellon_adv_opt_group.estartz_entry, - "excellon_feedrate_rapid": self.ui.excellon_defaults_form.excellon_adv_opt_group.feedrate_rapid_entry, - "excellon_z_pdepth": self.ui.excellon_defaults_form.excellon_adv_opt_group.pdepth_entry, - "excellon_feedrate_probe": self.ui.excellon_defaults_form.excellon_adv_opt_group.feedrate_probe_entry, - "excellon_spindledir": self.ui.excellon_defaults_form.excellon_adv_opt_group.spindledir_radio, - "excellon_f_plunge": self.ui.excellon_defaults_form.excellon_adv_opt_group.fplunge_cb, - "excellon_f_retract": self.ui.excellon_defaults_form.excellon_adv_opt_group.fretract_cb, + "excellon_offset": self.ui.excellon_defaults_form.excellon_adv_opt_group.offset_entry, + "excellon_toolchangexy": self.ui.excellon_defaults_form.excellon_adv_opt_group.toolchangexy_entry, + "excellon_startz": self.ui.excellon_defaults_form.excellon_adv_opt_group.estartz_entry, + "excellon_feedrate_rapid": self.ui.excellon_defaults_form.excellon_adv_opt_group.feedrate_rapid_entry, + "excellon_z_pdepth": self.ui.excellon_defaults_form.excellon_adv_opt_group.pdepth_entry, + "excellon_feedrate_probe": self.ui.excellon_defaults_form.excellon_adv_opt_group.feedrate_probe_entry, + "excellon_spindledir": self.ui.excellon_defaults_form.excellon_adv_opt_group.spindledir_radio, + "excellon_f_plunge": self.ui.excellon_defaults_form.excellon_adv_opt_group.fplunge_cb, + "excellon_f_retract": self.ui.excellon_defaults_form.excellon_adv_opt_group.fretract_cb, # Excellon Export - "excellon_exp_units": self.ui.excellon_defaults_form.excellon_exp_group.excellon_units_radio, - "excellon_exp_format": self.ui.excellon_defaults_form.excellon_exp_group.format_radio, - "excellon_exp_integer": self.ui.excellon_defaults_form.excellon_exp_group.format_whole_entry, - "excellon_exp_decimals": self.ui.excellon_defaults_form.excellon_exp_group.format_dec_entry, - "excellon_exp_zeros": self.ui.excellon_defaults_form.excellon_exp_group.zeros_radio, - "excellon_exp_slot_type": self.ui.excellon_defaults_form.excellon_exp_group.slot_type_radio, + "excellon_exp_units": self.ui.excellon_defaults_form.excellon_exp_group.excellon_units_radio, + "excellon_exp_format": self.ui.excellon_defaults_form.excellon_exp_group.format_radio, + "excellon_exp_integer": self.ui.excellon_defaults_form.excellon_exp_group.format_whole_entry, + "excellon_exp_decimals": self.ui.excellon_defaults_form.excellon_exp_group.format_dec_entry, + "excellon_exp_zeros": self.ui.excellon_defaults_form.excellon_exp_group.zeros_radio, + "excellon_exp_slot_type": self.ui.excellon_defaults_form.excellon_exp_group.slot_type_radio, # Excellon Editor - "excellon_editor_sel_limit": self.ui.excellon_defaults_form.excellon_editor_group.sel_limit_entry, - "excellon_editor_newdia": self.ui.excellon_defaults_form.excellon_editor_group.addtool_entry, - "excellon_editor_array_size": self.ui.excellon_defaults_form.excellon_editor_group.drill_array_size_entry, - "excellon_editor_lin_dir": self.ui.excellon_defaults_form.excellon_editor_group.drill_axis_radio, - "excellon_editor_lin_pitch": self.ui.excellon_defaults_form.excellon_editor_group.drill_pitch_entry, - "excellon_editor_lin_angle": self.ui.excellon_defaults_form.excellon_editor_group.drill_angle_entry, + "excellon_editor_sel_limit": self.ui.excellon_defaults_form.excellon_editor_group.sel_limit_entry, + "excellon_editor_newdia": self.ui.excellon_defaults_form.excellon_editor_group.addtool_entry, + "excellon_editor_array_size": self.ui.excellon_defaults_form.excellon_editor_group.drill_array_size_entry, + "excellon_editor_lin_dir": self.ui.excellon_defaults_form.excellon_editor_group.drill_axis_radio, + "excellon_editor_lin_pitch": self.ui.excellon_defaults_form.excellon_editor_group.drill_pitch_entry, + "excellon_editor_lin_angle": self.ui.excellon_defaults_form.excellon_editor_group.drill_angle_entry, "excellon_editor_circ_dir": self.ui.excellon_defaults_form.excellon_editor_group.drill_circular_dir_radio, "excellon_editor_circ_angle": self.ui.excellon_defaults_form.excellon_editor_group.drill_circular_angle_entry, @@ -259,117 +270,94 @@ class PreferencesUIManager: self.ui.excellon_defaults_form.excellon_editor_group.slot_array_circular_angle_entry, # Geometry General - "geometry_plot": self.ui.geometry_defaults_form.geometry_gen_group.plot_cb, - "geometry_multicolored": self.ui.geometry_defaults_form.geometry_gen_group.multicolored_cb, - "geometry_circle_steps": self.ui.geometry_defaults_form.geometry_gen_group.circle_steps_entry, - "geometry_cnctooldia": self.ui.geometry_defaults_form.geometry_gen_group.cnctooldia_entry, - "geometry_plot_line": self.ui.geometry_defaults_form.geometry_gen_group.line_color_entry, + "geometry_plot": self.ui.geometry_defaults_form.geometry_gen_group.plot_cb, + "geometry_circle_steps": self.ui.geometry_defaults_form.geometry_gen_group.circle_steps_entry, + "geometry_cnctooldia": self.ui.geometry_defaults_form.geometry_gen_group.cnctooldia_entry, + "geometry_plot_line": self.ui.geometry_defaults_form.geometry_gen_group.line_color_entry, # Geometry Options - "geometry_cutz": self.ui.geometry_defaults_form.geometry_opt_group.cutz_entry, - "geometry_travelz": self.ui.geometry_defaults_form.geometry_opt_group.travelz_entry, - "geometry_feedrate": self.ui.geometry_defaults_form.geometry_opt_group.cncfeedrate_entry, - "geometry_feedrate_z": self.ui.geometry_defaults_form.geometry_opt_group.feedrate_z_entry, - "geometry_spindlespeed": self.ui.geometry_defaults_form.geometry_opt_group.cncspindlespeed_entry, - "geometry_dwell": self.ui.geometry_defaults_form.geometry_opt_group.dwell_cb, - "geometry_dwelltime": self.ui.geometry_defaults_form.geometry_opt_group.dwelltime_entry, - "geometry_ppname_g": self.ui.geometry_defaults_form.geometry_opt_group.pp_geometry_name_cb, - "geometry_toolchange": self.ui.geometry_defaults_form.geometry_opt_group.toolchange_cb, - "geometry_toolchangez": self.ui.geometry_defaults_form.geometry_opt_group.toolchangez_entry, - "geometry_endz": self.ui.geometry_defaults_form.geometry_opt_group.endz_entry, - "geometry_endxy": self.ui.geometry_defaults_form.geometry_opt_group.endxy_entry, - "geometry_depthperpass": self.ui.geometry_defaults_form.geometry_opt_group.depthperpass_entry, - "geometry_multidepth": self.ui.geometry_defaults_form.geometry_opt_group.multidepth_cb, + "geometry_cutz": self.ui.geometry_defaults_form.geometry_opt_group.cutz_entry, + "geometry_travelz": self.ui.geometry_defaults_form.geometry_opt_group.travelz_entry, + "geometry_feedrate": self.ui.geometry_defaults_form.geometry_opt_group.cncfeedrate_entry, + "geometry_feedrate_z": self.ui.geometry_defaults_form.geometry_opt_group.feedrate_z_entry, + "geometry_spindlespeed": self.ui.geometry_defaults_form.geometry_opt_group.cncspindlespeed_entry, + "geometry_dwell": self.ui.geometry_defaults_form.geometry_opt_group.dwell_cb, + "geometry_dwelltime": self.ui.geometry_defaults_form.geometry_opt_group.dwelltime_entry, + "geometry_ppname_g": self.ui.geometry_defaults_form.geometry_opt_group.pp_geometry_name_cb, + "geometry_toolchange": self.ui.geometry_defaults_form.geometry_opt_group.toolchange_cb, + "geometry_toolchangez": self.ui.geometry_defaults_form.geometry_opt_group.toolchangez_entry, + "geometry_endz": self.ui.geometry_defaults_form.geometry_opt_group.endz_entry, + "geometry_endxy": self.ui.geometry_defaults_form.geometry_opt_group.endxy_entry, + "geometry_depthperpass": self.ui.geometry_defaults_form.geometry_opt_group.depthperpass_entry, + "geometry_multidepth": self.ui.geometry_defaults_form.geometry_opt_group.multidepth_cb, # Geometry Advanced Options - "geometry_toolchangexy": self.ui.geometry_defaults_form.geometry_adv_opt_group.toolchangexy_entry, - "geometry_startz": self.ui.geometry_defaults_form.geometry_adv_opt_group.gstartz_entry, - "geometry_feedrate_rapid": self.ui.geometry_defaults_form.geometry_adv_opt_group.feedrate_rapid_entry, - "geometry_extracut": self.ui.geometry_defaults_form.geometry_adv_opt_group.extracut_cb, + "geometry_toolchangexy": self.ui.geometry_defaults_form.geometry_adv_opt_group.toolchangexy_entry, + "geometry_startz": self.ui.geometry_defaults_form.geometry_adv_opt_group.gstartz_entry, + "geometry_feedrate_rapid": self.ui.geometry_defaults_form.geometry_adv_opt_group.feedrate_rapid_entry, + "geometry_extracut": self.ui.geometry_defaults_form.geometry_adv_opt_group.extracut_cb, "geometry_extracut_length": self.ui.geometry_defaults_form.geometry_adv_opt_group.e_cut_entry, - "geometry_z_pdepth": self.ui.geometry_defaults_form.geometry_adv_opt_group.pdepth_entry, - "geometry_feedrate_probe": self.ui.geometry_defaults_form.geometry_adv_opt_group.feedrate_probe_entry, - "geometry_spindledir": self.ui.geometry_defaults_form.geometry_adv_opt_group.spindledir_radio, - "geometry_f_plunge": self.ui.geometry_defaults_form.geometry_adv_opt_group.fplunge_cb, - "geometry_segx": self.ui.geometry_defaults_form.geometry_adv_opt_group.segx_entry, - "geometry_segy": self.ui.geometry_defaults_form.geometry_adv_opt_group.segy_entry, - "geometry_area_exclusion": self.ui.geometry_defaults_form.geometry_adv_opt_group.exclusion_cb, - "geometry_area_shape": self.ui.geometry_defaults_form.geometry_adv_opt_group.area_shape_radio, - "geometry_area_strategy": self.ui.geometry_defaults_form.geometry_adv_opt_group.strategy_radio, - "geometry_area_overz": self.ui.geometry_defaults_form.geometry_adv_opt_group.over_z_entry, + "geometry_z_pdepth": self.ui.geometry_defaults_form.geometry_adv_opt_group.pdepth_entry, + "geometry_feedrate_probe": self.ui.geometry_defaults_form.geometry_adv_opt_group.feedrate_probe_entry, + "geometry_spindledir": self.ui.geometry_defaults_form.geometry_adv_opt_group.spindledir_radio, + "geometry_f_plunge": self.ui.geometry_defaults_form.geometry_adv_opt_group.fplunge_cb, + "geometry_segx": self.ui.geometry_defaults_form.geometry_adv_opt_group.segx_entry, + "geometry_segy": self.ui.geometry_defaults_form.geometry_adv_opt_group.segy_entry, + "geometry_area_exclusion": self.ui.geometry_defaults_form.geometry_adv_opt_group.exclusion_cb, + "geometry_area_shape": self.ui.geometry_defaults_form.geometry_adv_opt_group.area_shape_radio, + "geometry_area_strategy": self.ui.geometry_defaults_form.geometry_adv_opt_group.strategy_radio, + "geometry_area_overz": self.ui.geometry_defaults_form.geometry_adv_opt_group.over_z_entry, # Geometry Editor - "geometry_editor_sel_limit": self.ui.geometry_defaults_form.geometry_editor_group.sel_limit_entry, - "geometry_editor_milling_type": self.ui.geometry_defaults_form.geometry_editor_group.milling_type_radio, + "geometry_editor_sel_limit": self.ui.geometry_defaults_form.geometry_editor_group.sel_limit_entry, + "geometry_editor_milling_type": self.ui.geometry_defaults_form.geometry_editor_group.milling_type_radio, # CNCJob General - "cncjob_plot": self.ui.cncjob_defaults_form.cncjob_gen_group.plot_cb, - "cncjob_plot_kind": self.ui.cncjob_defaults_form.cncjob_gen_group.cncplot_method_radio, - "cncjob_annotation": self.ui.cncjob_defaults_form.cncjob_gen_group.annotation_cb, + "cncjob_plot": self.ui.cncjob_defaults_form.cncjob_gen_group.plot_cb, + "cncjob_plot_kind": self.ui.cncjob_defaults_form.cncjob_gen_group.cncplot_method_radio, + "cncjob_annotation": self.ui.cncjob_defaults_form.cncjob_gen_group.annotation_cb, - "cncjob_tooldia": self.ui.cncjob_defaults_form.cncjob_gen_group.tooldia_entry, - "cncjob_coords_type": self.ui.cncjob_defaults_form.cncjob_gen_group.coords_type_radio, - "cncjob_coords_decimals": self.ui.cncjob_defaults_form.cncjob_gen_group.coords_dec_entry, - "cncjob_fr_decimals": self.ui.cncjob_defaults_form.cncjob_gen_group.fr_dec_entry, - "cncjob_steps_per_circle": self.ui.cncjob_defaults_form.cncjob_gen_group.steps_per_circle_entry, - "cncjob_line_ending": self.ui.cncjob_defaults_form.cncjob_gen_group.line_ending_cb, - "cncjob_plot_line": self.ui.cncjob_defaults_form.cncjob_gen_group.line_color_entry, - "cncjob_plot_fill": self.ui.cncjob_defaults_form.cncjob_gen_group.fill_color_entry, - "cncjob_travel_line": self.ui.cncjob_defaults_form.cncjob_gen_group.tline_color_entry, - "cncjob_travel_fill": self.ui.cncjob_defaults_form.cncjob_gen_group.tfill_color_entry, + "cncjob_tooldia": self.ui.cncjob_defaults_form.cncjob_gen_group.tooldia_entry, + "cncjob_coords_type": self.ui.cncjob_defaults_form.cncjob_gen_group.coords_type_radio, + "cncjob_coords_decimals": self.ui.cncjob_defaults_form.cncjob_gen_group.coords_dec_entry, + "cncjob_fr_decimals": self.ui.cncjob_defaults_form.cncjob_gen_group.fr_dec_entry, + "cncjob_steps_per_circle": self.ui.cncjob_defaults_form.cncjob_gen_group.steps_per_circle_entry, + "cncjob_line_ending": self.ui.cncjob_defaults_form.cncjob_gen_group.line_ending_cb, + "cncjob_plot_line": self.ui.cncjob_defaults_form.cncjob_gen_group.line_color_entry, + "cncjob_plot_fill": self.ui.cncjob_defaults_form.cncjob_gen_group.fill_color_entry, + "cncjob_travel_line": self.ui.cncjob_defaults_form.cncjob_gen_group.tline_color_entry, + "cncjob_travel_fill": self.ui.cncjob_defaults_form.cncjob_gen_group.tfill_color_entry, # CNC Job Options - "cncjob_prepend": self.ui.cncjob_defaults_form.cncjob_opt_group.prepend_text, - "cncjob_append": self.ui.cncjob_defaults_form.cncjob_opt_group.append_text, + "cncjob_prepend": self.ui.cncjob_defaults_form.cncjob_opt_group.prepend_text, + "cncjob_append": self.ui.cncjob_defaults_form.cncjob_opt_group.append_text, # CNC Job Advanced Options - "cncjob_toolchange_macro": self.ui.cncjob_defaults_form.cncjob_adv_opt_group.toolchange_text, - "cncjob_toolchange_macro_enable": self.ui.cncjob_defaults_form.cncjob_adv_opt_group.toolchange_cb, - "cncjob_annotation_fontsize": self.ui.cncjob_defaults_form.cncjob_adv_opt_group.annotation_fontsize_sp, + "cncjob_toolchange_macro": self.ui.cncjob_defaults_form.cncjob_adv_opt_group.toolchange_text, + "cncjob_toolchange_macro_enable": self.ui.cncjob_defaults_form.cncjob_adv_opt_group.toolchange_cb, + "cncjob_annotation_fontsize": self.ui.cncjob_defaults_form.cncjob_adv_opt_group.annotation_fontsize_sp, "cncjob_annotation_fontcolor": self.ui.cncjob_defaults_form.cncjob_adv_opt_group.annotation_fontcolor_entry, - # Isolation Routing Tool - "tools_iso_tooldia": self.ui.tools_defaults_form.tools_iso_group.tool_dia_entry, - "tools_iso_order": self.ui.tools_defaults_form.tools_iso_group.order_radio, - "tools_iso_tool_type": self.ui.tools_defaults_form.tools_iso_group.tool_type_radio, - "tools_iso_tool_vtipdia": self.ui.tools_defaults_form.tools_iso_group.tipdia_entry, - "tools_iso_tool_vtipangle": self.ui.tools_defaults_form.tools_iso_group.tipangle_entry, - "tools_iso_tool_cutz": self.ui.tools_defaults_form.tools_iso_group.cutz_entry, - "tools_iso_newdia": self.ui.tools_defaults_form.tools_iso_group.newdia_entry, - - "tools_iso_passes": self.ui.tools_defaults_form.tools_iso_group.passes_entry, - "tools_iso_overlap": self.ui.tools_defaults_form.tools_iso_group.overlap_entry, - "tools_iso_milling_type": self.ui.tools_defaults_form.tools_iso_group.milling_type_radio, - "tools_iso_follow": self.ui.tools_defaults_form.tools_iso_group.follow_cb, - "tools_iso_isotype": self.ui.tools_defaults_form.tools_iso_group.iso_type_radio, - - "tools_iso_rest": self.ui.tools_defaults_form.tools_iso_group.rest_cb, - "tools_iso_combine_passes": self.ui.tools_defaults_form.tools_iso_group.combine_passes_cb, - "tools_iso_isoexcept": self.ui.tools_defaults_form.tools_iso_group.except_cb, - "tools_iso_selection": self.ui.tools_defaults_form.tools_iso_group.select_combo, - "tools_iso_area_shape": self.ui.tools_defaults_form.tools_iso_group.area_shape_radio, - "tools_iso_plotting": self.ui.tools_defaults_form.tools_iso_group.plotting_radio, - # NCC Tool - "tools_ncctools": self.ui.tools_defaults_form.tools_ncc_group.ncc_tool_dia_entry, - "tools_nccorder": self.ui.tools_defaults_form.tools_ncc_group.ncc_order_radio, - "tools_nccoverlap": self.ui.tools_defaults_form.tools_ncc_group.ncc_overlap_entry, - "tools_nccmargin": self.ui.tools_defaults_form.tools_ncc_group.ncc_margin_entry, - "tools_nccmethod": self.ui.tools_defaults_form.tools_ncc_group.ncc_method_combo, - "tools_nccconnect": self.ui.tools_defaults_form.tools_ncc_group.ncc_connect_cb, - "tools_ncccontour": self.ui.tools_defaults_form.tools_ncc_group.ncc_contour_cb, - "tools_nccrest": self.ui.tools_defaults_form.tools_ncc_group.ncc_rest_cb, - "tools_ncc_offset_choice": self.ui.tools_defaults_form.tools_ncc_group.ncc_choice_offset_cb, - "tools_ncc_offset_value": self.ui.tools_defaults_form.tools_ncc_group.ncc_offset_spinner, - "tools_nccref": self.ui.tools_defaults_form.tools_ncc_group.select_combo, - "tools_ncc_area_shape": self.ui.tools_defaults_form.tools_ncc_group.area_shape_radio, - "tools_nccmilling_type": self.ui.tools_defaults_form.tools_ncc_group.milling_type_radio, - "tools_ncctool_type": self.ui.tools_defaults_form.tools_ncc_group.tool_type_radio, - "tools_ncccutz": self.ui.tools_defaults_form.tools_ncc_group.cutz_entry, - "tools_ncctipdia": self.ui.tools_defaults_form.tools_ncc_group.tipdia_entry, - "tools_ncctipangle": self.ui.tools_defaults_form.tools_ncc_group.tipangle_entry, - "tools_nccnewdia": self.ui.tools_defaults_form.tools_ncc_group.newdia_entry, - "tools_ncc_plotting": self.ui.tools_defaults_form.tools_ncc_group.plotting_radio, + "tools_ncctools": self.ui.tools_defaults_form.tools_ncc_group.ncc_tool_dia_entry, + "tools_nccorder": self.ui.tools_defaults_form.tools_ncc_group.ncc_order_radio, + "tools_nccoverlap": self.ui.tools_defaults_form.tools_ncc_group.ncc_overlap_entry, + "tools_nccmargin": self.ui.tools_defaults_form.tools_ncc_group.ncc_margin_entry, + "tools_nccmethod": self.ui.tools_defaults_form.tools_ncc_group.ncc_method_combo, + "tools_nccconnect": self.ui.tools_defaults_form.tools_ncc_group.ncc_connect_cb, + "tools_ncccontour": self.ui.tools_defaults_form.tools_ncc_group.ncc_contour_cb, + "tools_nccrest": self.ui.tools_defaults_form.tools_ncc_group.ncc_rest_cb, + "tools_ncc_offset_choice": self.ui.tools_defaults_form.tools_ncc_group.ncc_choice_offset_cb, + "tools_ncc_offset_value": self.ui.tools_defaults_form.tools_ncc_group.ncc_offset_spinner, + "tools_nccref": self.ui.tools_defaults_form.tools_ncc_group.select_combo, + "tools_ncc_area_shape": self.ui.tools_defaults_form.tools_ncc_group.area_shape_radio, + "tools_ncc_plotting": self.ui.tools_defaults_form.tools_ncc_group.ncc_plotting_radio, + "tools_nccmilling_type": self.ui.tools_defaults_form.tools_ncc_group.milling_type_radio, + "tools_ncctool_type": self.ui.tools_defaults_form.tools_ncc_group.tool_type_radio, + "tools_ncccutz": self.ui.tools_defaults_form.tools_ncc_group.cutz_entry, + "tools_ncctipdia": self.ui.tools_defaults_form.tools_ncc_group.tipdia_entry, + "tools_ncctipangle": self.ui.tools_defaults_form.tools_ncc_group.tipangle_entry, + "tools_nccnewdia": self.ui.tools_defaults_form.tools_ncc_group.newdia_entry, # CutOut Tool "tools_cutouttooldia": self.ui.tools_defaults_form.tools_cutout_group.cutout_tooldia_entry, @@ -479,12 +467,6 @@ class PreferencesUIManager: "tools_solderpaste_pp": self.ui.tools_defaults_form.tools_solderpaste_group.pp_combo, "tools_sub_close_paths": self.ui.tools_defaults_form.tools_sub_group.close_paths_cb, - # Corner Markers Tool - - "tools_corners_thickness": self.ui.tools_defaults_form.tools_corners_group.thick_entry, - "tools_corners_length": self.ui.tools_defaults_form.tools_corners_group.l_entry, - "tools_corners_margin": self.ui.tools_defaults_form.tools_corners_group.margin_entry, - # ####################################################################################################### # ########################################## TOOLS 2 #################################################### # ####################################################################################################### @@ -668,7 +650,7 @@ class PreferencesUIManager: def show_preferences_gui(self): """ - Called to initialize and show the Preferences AppGUI + Called to initialize and show the Preferences GUI :return: None """ @@ -737,7 +719,7 @@ class PreferencesUIManager: self.ui.fa_scroll_area.setWidget(fa_form) fa_form.show() - # Initialize the color box's color in Preferences -> Global -> Colors + # Initialize the color box's color in Preferences -> Global -> Colo self.__init_color_pickers() # Button handlers @@ -750,90 +732,167 @@ class PreferencesUIManager: def __init_color_pickers(self): # Init Gerber Plot Colors - self.ui.gerber_defaults_form.gerber_gen_group.fill_color_entry.set_value(self.defaults['gerber_plot_fill']) - self.ui.gerber_defaults_form.gerber_gen_group.line_color_entry.set_value(self.defaults['gerber_plot_line']) + self.ui.gerber_defaults_form.gerber_gen_group.pf_color_entry.set_value(self.defaults['gerber_plot_fill']) + self.ui.gerber_defaults_form.gerber_gen_group.pf_color_button.setStyleSheet( + "background-color:%s;" + "border-color: dimgray" % str(self.defaults['gerber_plot_fill'])[:7]) + self.ui.gerber_defaults_form.gerber_gen_group.pf_color_alpha_spinner.set_value( + int(self.defaults['gerber_plot_fill'][7:9], 16)) + self.ui.gerber_defaults_form.gerber_gen_group.pf_color_alpha_slider.setValue( + int(self.defaults['gerber_plot_fill'][7:9], 16)) - self.ui.gerber_defaults_form.gerber_gen_group.gerber_alpha_entry.set_value( - int(self.defaults['gerber_plot_fill'][7:9], 16)) # alpha + self.ui.gerber_defaults_form.gerber_gen_group.pl_color_entry.set_value(self.defaults['gerber_plot_line']) + self.ui.gerber_defaults_form.gerber_gen_group.pl_color_button.setStyleSheet( + "background-color:%s;" + "border-color: dimgray" % str(self.defaults['gerber_plot_line'])[:7]) # Init Excellon Plot Colors self.ui.excellon_defaults_form.excellon_gen_group.fill_color_entry.set_value( self.defaults['excellon_plot_fill']) + self.ui.excellon_defaults_form.excellon_gen_group.fill_color_button.setStyleSheet( + "background-color:%s;" + "border-color: dimgray" % str(self.defaults['excellon_plot_fill'])[:7]) + self.ui.excellon_defaults_form.excellon_gen_group.color_alpha_spinner.set_value( + int(self.defaults['excellon_plot_fill'][7:9], 16)) + self.ui.excellon_defaults_form.excellon_gen_group.color_alpha_slider.setValue( + int(self.defaults['excellon_plot_fill'][7:9], 16)) + self.ui.excellon_defaults_form.excellon_gen_group.line_color_entry.set_value( self.defaults['excellon_plot_line']) - - self.ui.excellon_defaults_form.excellon_gen_group.excellon_alpha_entry.set_value( - int(self.defaults['excellon_plot_fill'][7:9], 16)) + self.ui.excellon_defaults_form.excellon_gen_group.line_color_button.setStyleSheet( + "background-color:%s;" + "border-color: dimgray" % str(self.defaults['excellon_plot_line'])[:7]) # Init Geometry Plot Colors self.ui.geometry_defaults_form.geometry_gen_group.line_color_entry.set_value( self.defaults['geometry_plot_line']) + self.ui.geometry_defaults_form.geometry_gen_group.line_color_button.setStyleSheet( + "background-color:%s;" + "border-color: dimgray" % str(self.defaults['geometry_plot_line'])[:7]) # Init CNCJob Travel Line Colors self.ui.cncjob_defaults_form.cncjob_gen_group.tfill_color_entry.set_value( self.defaults['cncjob_travel_fill']) + self.ui.cncjob_defaults_form.cncjob_gen_group.tfill_color_button.setStyleSheet( + "background-color:%s;" + "border-color: dimgray" % str(self.defaults['cncjob_travel_fill'])[:7]) + self.ui.cncjob_defaults_form.cncjob_gen_group.tcolor_alpha_spinner.set_value( + int(self.defaults['cncjob_travel_fill'][7:9], 16)) + self.ui.cncjob_defaults_form.cncjob_gen_group.tcolor_alpha_slider.setValue( + int(self.defaults['cncjob_travel_fill'][7:9], 16)) + self.ui.cncjob_defaults_form.cncjob_gen_group.tline_color_entry.set_value( self.defaults['cncjob_travel_line']) - - self.ui.cncjob_defaults_form.cncjob_gen_group.cncjob_alpha_entry.set_value( - int(self.defaults['cncjob_travel_fill'][7:9], 16)) # alpha + self.ui.cncjob_defaults_form.cncjob_gen_group.tline_color_button.setStyleSheet( + "background-color:%s;" + "border-color: dimgray" % str(self.defaults['cncjob_travel_line'])[:7]) # Init CNCJob Plot Colors self.ui.cncjob_defaults_form.cncjob_gen_group.fill_color_entry.set_value( self.defaults['cncjob_plot_fill']) + self.ui.cncjob_defaults_form.cncjob_gen_group.fill_color_button.setStyleSheet( + "background-color:%s;" + "border-color: dimgray" % str(self.defaults['cncjob_plot_fill'])[:7]) self.ui.cncjob_defaults_form.cncjob_gen_group.line_color_entry.set_value( self.defaults['cncjob_plot_line']) + self.ui.cncjob_defaults_form.cncjob_gen_group.line_color_button.setStyleSheet( + "background-color:%s;" + "border-color: dimgray" % str(self.defaults['cncjob_plot_line'])[:7]) # Init Left-Right Selection colors self.ui.general_defaults_form.general_gui_group.sf_color_entry.set_value(self.defaults['global_sel_fill']) - self.ui.general_defaults_form.general_gui_group.sl_color_entry.set_value(self.defaults['global_sel_line']) - - self.ui.general_defaults_form.general_gui_group.left_right_alpha_entry.set_value( + self.ui.general_defaults_form.general_gui_group.sf_color_button.setStyleSheet( + "background-color:%s;" + "border-color: dimgray" % str(self.defaults['global_sel_fill'])[:7]) + self.ui.general_defaults_form.general_gui_group.sf_color_alpha_spinner.set_value( int(self.defaults['global_sel_fill'][7:9], 16)) + self.ui.general_defaults_form.general_gui_group.sf_color_alpha_slider.setValue( + int(self.defaults['global_sel_fill'][7:9], 16)) + + self.ui.general_defaults_form.general_gui_group.sl_color_entry.set_value(self.defaults['global_sel_line']) + self.ui.general_defaults_form.general_gui_group.sl_color_button.setStyleSheet( + "background-color:%s;" + "border-color: dimgray" % str(self.defaults['global_sel_line'])[:7]) # Init Right-Left Selection colors self.ui.general_defaults_form.general_gui_group.alt_sf_color_entry.set_value( self.defaults['global_alt_sel_fill']) + self.ui.general_defaults_form.general_gui_group.alt_sf_color_button.setStyleSheet( + "background-color:%s;" + "border-color: dimgray" % str(self.defaults['global_alt_sel_fill'])[:7]) + self.ui.general_defaults_form.general_gui_group.alt_sf_color_alpha_spinner.set_value( + int(self.defaults['global_sel_fill'][7:9], 16)) + self.ui.general_defaults_form.general_gui_group.alt_sf_color_alpha_slider.setValue( + int(self.defaults['global_sel_fill'][7:9], 16)) + self.ui.general_defaults_form.general_gui_group.alt_sl_color_entry.set_value( self.defaults['global_alt_sel_line']) - - self.ui.general_defaults_form.general_gui_group.right_left_alpha_entry.set_value( - int(self.defaults['global_sel_fill'][7:9], 16)) + self.ui.general_defaults_form.general_gui_group.alt_sl_color_button.setStyleSheet( + "background-color:%s;" + "border-color: dimgray" % str(self.defaults['global_alt_sel_line'])[:7]) # Init Draw color and Selection Draw Color self.ui.general_defaults_form.general_gui_group.draw_color_entry.set_value( self.defaults['global_draw_color']) + self.ui.general_defaults_form.general_gui_group.draw_color_button.setStyleSheet( + "background-color:%s;" + "border-color: dimgray" % str(self.defaults['global_draw_color'])[:7]) self.ui.general_defaults_form.general_gui_group.sel_draw_color_entry.set_value( self.defaults['global_sel_draw_color']) + self.ui.general_defaults_form.general_gui_group.sel_draw_color_button.setStyleSheet( + "background-color:%s;" + "border-color: dimgray" % str(self.defaults['global_sel_draw_color'])[:7]) # Init Project Items color self.ui.general_defaults_form.general_gui_group.proj_color_entry.set_value( self.defaults['global_proj_item_color']) + self.ui.general_defaults_form.general_gui_group.proj_color_button.setStyleSheet( + "background-color:%s;" + "border-color: dimgray" % str(self.defaults['global_proj_item_color'])[:7]) # Init Project Disabled Items color self.ui.general_defaults_form.general_gui_group.proj_color_dis_entry.set_value( self.defaults['global_proj_item_dis_color']) + self.ui.general_defaults_form.general_gui_group.proj_color_dis_button.setStyleSheet( + "background-color:%s;" + "border-color: dimgray" % str(self.defaults['global_proj_item_dis_color'])[:7]) - # Init Mouse Cursor color + # Init Project Disabled Items color self.ui.general_defaults_form.general_app_set_group.mouse_cursor_entry.set_value( self.defaults['global_cursor_color']) + self.ui.general_defaults_form.general_app_set_group.mouse_cursor_button.setStyleSheet( + "background-color:%s;" + "border-color: dimgray" % str(self.defaults['global_cursor_color'])[:7]) # Init the Annotation CNC Job color self.ui.cncjob_defaults_form.cncjob_adv_opt_group.annotation_fontcolor_entry.set_value( self.defaults['cncjob_annotation_fontcolor']) + self.ui.cncjob_defaults_form.cncjob_adv_opt_group.annotation_fontcolor_button.setStyleSheet( + "background-color:%s;" + "border-color: dimgray" % str(self.defaults['cncjob_annotation_fontcolor'])[:7]) # Init the Tool Film color self.ui.tools_defaults_form.tools_film_group.film_color_entry.set_value( self.defaults['tools_film_color']) + self.ui.tools_defaults_form.tools_film_group.film_color_button.setStyleSheet( + "background-color:%s;" + "border-color: dimgray" % str(self.defaults['tools_film_color'])[:7] + ) # Init the Tool QRCode colors self.ui.tools2_defaults_form.tools2_qrcode_group.fill_color_entry.set_value( self.defaults['tools_qrcode_fill_color']) + self.ui.tools2_defaults_form.tools2_qrcode_group.fill_color_button.setStyleSheet( + "background-color:%s;" + "border-color: dimgray" % str(self.defaults['tools_qrcode_fill_color'])[:7]) self.ui.tools2_defaults_form.tools2_qrcode_group.back_color_entry.set_value( self.defaults['tools_qrcode_back_color']) + self.ui.tools2_defaults_form.tools2_qrcode_group.back_color_button.setStyleSheet( + "background-color:%s;" + "border-color: dimgray" % str(self.defaults['tools_qrcode_back_color'])[:7]) def on_save_button(self, save_to_file=True): log.debug("on_save_button() --> Applying preferences to file.") @@ -862,17 +921,12 @@ class PreferencesUIManager: theme = 'white' should_restart = False - theme_new_val = self.ui.general_defaults_form.general_gui_group.theme_radio.get_value() - - ge = self.defaults["global_graphic_engine"] - ge_val = self.ui.general_defaults_form.general_app_group.ge_radio.get_value() - - if theme_new_val != theme or ge != ge_val: + val = self.ui.general_defaults_form.general_gui_group.theme_radio.get_value() + if val != theme: msgbox = QtWidgets.QMessageBox() msgbox.setText(_("Are you sure you want to continue?")) - msgbox.setWindowTitle(_("Application will restart")) + msgbox.setWindowTitle(_("Application restart")) msgbox.setWindowIcon(QtGui.QIcon(self.ui.app.resource_location + '/warning.png')) - msgbox.setIcon(QtWidgets.QMessageBox.Question) bt_yes = msgbox.addButton(_('Yes'), QtWidgets.QMessageBox.YesRole) msgbox.addButton(_('Cancel'), QtWidgets.QMessageBox.NoRole) @@ -881,22 +935,15 @@ class PreferencesUIManager: msgbox.exec_() response = msgbox.clickedButton() - if theme_new_val != theme: - if response == bt_yes: - theme_settings.setValue('theme', theme_new_val) + if response == bt_yes: + theme_settings.setValue('theme', val) - # This will write the setting to the platform specific storage. - del theme_settings + # This will write the setting to the platform specific storage. + del theme_settings - should_restart = True - else: - self.ui.general_defaults_form.general_gui_group.theme_radio.set_value(theme) + should_restart = True else: - if response == bt_yes: - self.defaults["global_graphic_engine"] = ge_val - should_restart = True - else: - self.ui.general_defaults_form.general_app_group.ge_radio.set_value(ge) + self.ui.general_defaults_form.general_gui_group.theme_radio.set_value(theme) if save_to_file or should_restart is True: self.save_defaults(silent=False) @@ -920,10 +967,6 @@ class PreferencesUIManager: tb_fsize = self.ui.general_defaults_form.general_app_set_group.textbox_font_size_spinner.get_value() settgs.setValue('textbox_font_size', tb_fsize) - # save the HUD font size - hud_fsize = self.ui.general_defaults_form.general_app_set_group.hud_font_size_spinner.get_value() - settgs.setValue('hud_font_size', hud_fsize) - settgs.setValue( 'machinist', 1 if self.ui.general_defaults_form.general_app_set_group.machinist_cb.get_value() else 0 @@ -948,14 +991,10 @@ class PreferencesUIManager: self.preferences_changed_flag = False self.ignore_tab_close_event = True - # restore stylesheet to default for the statusBar icon - self.ui.pref_status_label.setStyleSheet("") - try: self.ui.general_defaults_form.general_app_group.units_radio.activated_custom.disconnect() except (TypeError, AttributeError): pass - self.defaults_write_form(source_dict=self.defaults.current_defaults) self.ui.general_defaults_form.general_app_group.units_radio.activated_custom.connect( lambda: self.ui.app.on_toggle_units(no_pref=False)) @@ -996,7 +1035,6 @@ class PreferencesUIManager: :return: None """ self.defaults.report_usage("save_defaults") - log.debug("App.PreferencesUIManager.save_defaults()") if data_path is None: data_path = self.data_path @@ -1033,7 +1071,7 @@ class PreferencesUIManager: if self.ui.toolbarfile.isVisible(): tb_status += 1 - if self.ui.toolbaredit.isVisible(): + if self.ui.toolbargeo.isVisible(): tb_status += 2 if self.ui.toolbarview.isVisible(): @@ -1051,7 +1089,7 @@ class PreferencesUIManager: if self.ui.grb_edit_toolbar.isVisible(): tb_status += 64 - if self.ui.status_toolbar.isVisible(): + if self.ui.snap_toolbar.isVisible(): tb_status += 128 if self.ui.toolbarshell.isVisible(): @@ -1080,9 +1118,6 @@ class PreferencesUIManager: if self.ignore_tab_close_event: return - # restore stylesheet to default for the statusBar icon - self.ui.pref_status_label.setStyleSheet("") - # disconnect for idx in range(self.ui.pref_tab_area.count()): for tb in self.ui.pref_tab_area.widget(idx).findChildren(QtCore.QObject): @@ -1118,7 +1153,6 @@ class PreferencesUIManager: "Do you want to save the Preferences?")) msgbox.setWindowTitle(_("Save Preferences")) msgbox.setWindowIcon(QtGui.QIcon(self.ui.app.resource_location + '/save_as.png')) - msgbox.setIcon(QtWidgets.QMessageBox.Question) bt_yes = msgbox.addButton(_('Yes'), QtWidgets.QMessageBox.YesRole) msgbox.addButton(_('No'), QtWidgets.QMessageBox.NoRole) diff --git a/AppGUI/preferences/__init__.py b/flatcamGUI/preferences/__init__.py similarity index 79% rename from AppGUI/preferences/__init__.py rename to flatcamGUI/preferences/__init__.py index 193fef34..620fbb59 100644 --- a/AppGUI/preferences/__init__.py +++ b/flatcamGUI/preferences/__init__.py @@ -1,6 +1,6 @@ -from AppGUI.GUIElements import * +from flatcamGUI.GUIElements import * import gettext -import AppTranslation as fcTranslate +import FlatCAMTranslation as fcTranslate import builtins diff --git a/AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py b/flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py similarity index 81% rename from AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py rename to flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py index 53f7e0ae..8d7a1cf0 100644 --- a/AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py +++ b/flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py @@ -1,10 +1,10 @@ -from PyQt5 import QtWidgets, QtGui +from PyQt5 import QtWidgets, QtGui, QtCore from PyQt5.QtCore import QSettings, Qt -from AppGUI.GUIElements import FCTextArea, FCCheckBox, FCComboBox, FCSpinner, FCColorEntry -from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI +from flatcamGUI.GUIElements import FCTextArea, FCCheckBox, FCComboBox, FCSpinner, FCEntry +from flatcamGUI.preferences.OptionsGroupUI import OptionsGroupUI import gettext -import AppTranslation as fcTranslate +import FlatCAMTranslation as fcTranslate import builtins fcTranslate.apply_language('strings') @@ -158,16 +158,28 @@ class CNCJobAdvOptPrefGroupUI(OptionsGroupUI): self.annotation_color_label.setToolTip( _("Set the font color for the annotation texts.") ) - self.annotation_fontcolor_entry = FCColorEntry() + self.annotation_fontcolor_entry = FCEntry() + self.annotation_fontcolor_button = QtWidgets.QPushButton() + self.annotation_fontcolor_button.setFixedSize(15, 15) + self.form_box_child = QtWidgets.QHBoxLayout() + self.form_box_child.setContentsMargins(0, 0, 0, 0) + self.form_box_child.addWidget(self.annotation_fontcolor_entry) + self.form_box_child.addWidget(self.annotation_fontcolor_button, alignment=Qt.AlignRight) + self.form_box_child.setAlignment(QtCore.Qt.AlignLeft | QtCore.Qt.AlignVCenter) + + color_widget = QtWidgets.QWidget() + color_widget.setLayout(self.form_box_child) grid0.addWidget(self.annotation_color_label, 3, 0) - grid0.addWidget(self.annotation_fontcolor_entry, 3, 1) - + grid0.addWidget(color_widget, 3, 1) grid0.addWidget(QtWidgets.QLabel(''), 3, 2) + self.layout.addStretch() self.tc_variable_combo.currentIndexChanged[str].connect(self.on_cnc_custom_parameters) + self.annotation_fontcolor_entry.editingFinished.connect(self.on_annotation_fontcolor_entry) + self.annotation_fontcolor_button.clicked.connect(self.on_annotation_fontcolor_button) def on_cnc_custom_parameters(self, signal_text): if signal_text == 'Parameters': @@ -177,3 +189,20 @@ class CNCJobAdvOptPrefGroupUI(OptionsGroupUI): def on_annotation_fontcolor_entry(self): self.app.defaults['cncjob_annotation_fontcolor'] = self.annotation_fontcolor_entry.get_value() + self.annotation_fontcolor_button.setStyleSheet( + "background-color:%s" % str(self.app.defaults['cncjob_annotation_fontcolor'])) + + def on_annotation_fontcolor_button(self): + current_color = QtGui.QColor(self.app.defaults['cncjob_annotation_fontcolor']) + + c_dialog = QtWidgets.QColorDialog() + annotation_color = c_dialog.getColor(initial=current_color) + + if annotation_color.isValid() is False: + return + + self.annotation_fontcolor_button.setStyleSheet("background-color:%s" % str(annotation_color.name())) + + new_val_sel = str(annotation_color.name()) + self.annotation_fontcolor_entry.set_value(new_val_sel) + self.app.defaults['cncjob_annotation_fontcolor'] = new_val_sel diff --git a/AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py b/flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py similarity index 60% rename from AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py rename to flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py index 11a88763..66276e23 100644 --- a/AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py +++ b/flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py @@ -1,10 +1,10 @@ from PyQt5 import QtWidgets, QtCore, QtGui from PyQt5.QtCore import QSettings -from AppGUI.GUIElements import FCCheckBox, RadioSet, FCSpinner, FCDoubleSpinner, FCSliderWithSpinner, FCColorEntry -from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI +from flatcamGUI.GUIElements import FCCheckBox, RadioSet, FCSpinner, FCDoubleSpinner, FCEntry +from flatcamGUI.preferences.OptionsGroupUI import OptionsGroupUI import gettext -import AppTranslation as fcTranslate +import FlatCAMTranslation as fcTranslate import builtins fcTranslate.apply_language('strings') @@ -170,10 +170,17 @@ class CNCJobGenPrefGroupUI(OptionsGroupUI): self.tline_color_label.setToolTip( _("Set the travel line color for plotted objects.") ) - self.tline_color_entry = FCColorEntry() + self.tline_color_entry = FCEntry() + self.tline_color_button = QtWidgets.QPushButton() + self.tline_color_button.setFixedSize(15, 15) + + self.form_box_child_2 = QtWidgets.QHBoxLayout() + self.form_box_child_2.addWidget(self.tline_color_entry) + self.form_box_child_2.addWidget(self.tline_color_button) + self.form_box_child_2.setAlignment(QtCore.Qt.AlignLeft | QtCore.Qt.AlignVCenter) grid0.addWidget(self.tline_color_label, 14, 0) - grid0.addWidget(self.tline_color_entry, 14, 1) + grid0.addLayout(self.form_box_child_2, 14, 1) # Plot Fill Color self.tfill_color_label = QtWidgets.QLabel('%s:' % _('Fill')) @@ -182,20 +189,38 @@ class CNCJobGenPrefGroupUI(OptionsGroupUI): "First 6 digits are the color and the last 2\n" "digits are for alpha (transparency) level.") ) - self.tfill_color_entry = FCColorEntry() + self.tfill_color_entry = FCEntry() + self.tfill_color_button = QtWidgets.QPushButton() + self.tfill_color_button.setFixedSize(15, 15) + + self.form_box_child_1 = QtWidgets.QHBoxLayout() + self.form_box_child_1.addWidget(self.tfill_color_entry) + self.form_box_child_1.addWidget(self.tfill_color_button) + self.form_box_child_1.setAlignment(QtCore.Qt.AlignLeft | QtCore.Qt.AlignVCenter) grid0.addWidget(self.tfill_color_label, 15, 0) - grid0.addWidget(self.tfill_color_entry, 15, 1) + grid0.addLayout(self.form_box_child_1, 15, 1) # Plot Fill Transparency Level - self.cncjob_alpha_label = QtWidgets.QLabel('%s:' % _('Alpha')) - self.cncjob_alpha_label.setToolTip( + self.alpha_label = QtWidgets.QLabel('%s:' % _('Alpha')) + self.alpha_label.setToolTip( _("Set the fill transparency for plotted objects.") ) - self.cncjob_alpha_entry = FCSliderWithSpinner(0, 255, 1) + self.tcolor_alpha_slider = QtWidgets.QSlider(QtCore.Qt.Horizontal) + self.tcolor_alpha_slider.setMinimum(0) + self.tcolor_alpha_slider.setMaximum(255) + self.tcolor_alpha_slider.setSingleStep(1) - grid0.addWidget(self.cncjob_alpha_label, 16, 0) - grid0.addWidget(self.cncjob_alpha_entry, 16, 1) + self.tcolor_alpha_spinner = FCSpinner() + self.tcolor_alpha_spinner.setMinimumWidth(70) + self.tcolor_alpha_spinner.set_range(0, 255) + + self.form_box_child_3 = QtWidgets.QHBoxLayout() + self.form_box_child_3.addWidget(self.tcolor_alpha_slider) + self.form_box_child_3.addWidget(self.tcolor_alpha_spinner) + + grid0.addWidget(self.alpha_label, 16, 0) + grid0.addLayout(self.form_box_child_3, 16, 1) separator_line = QtWidgets.QFrame() separator_line.setFrameShape(QtWidgets.QFrame.HLine) @@ -203,7 +228,7 @@ class CNCJobGenPrefGroupUI(OptionsGroupUI): grid0.addWidget(separator_line, 17, 0, 1, 2) # CNCJob Object Color - self.cnc_color_label = QtWidgets.QLabel('%s' % _('Object Color')) + self.cnc_color_label = QtWidgets.QLabel('%s' % _('CNCJob Object Color')) grid0.addWidget(self.cnc_color_label, 18, 0, 1, 2) # Plot Line Color @@ -211,10 +236,17 @@ class CNCJobGenPrefGroupUI(OptionsGroupUI): self.line_color_label.setToolTip( _("Set the color for plotted objects.") ) - self.line_color_entry = FCColorEntry() + self.line_color_entry = FCEntry() + self.line_color_button = QtWidgets.QPushButton() + self.line_color_button.setFixedSize(15, 15) + + self.form_box_child_2 = QtWidgets.QHBoxLayout() + self.form_box_child_2.addWidget(self.line_color_entry) + self.form_box_child_2.addWidget(self.line_color_button) + self.form_box_child_2.setAlignment(QtCore.Qt.AlignLeft | QtCore.Qt.AlignVCenter) grid0.addWidget(self.line_color_label, 19, 0) - grid0.addWidget(self.line_color_entry, 19, 1) + grid0.addLayout(self.form_box_child_2, 19, 1) # Plot Fill Color self.fill_color_label = QtWidgets.QLabel('%s:' % _('Fill')) @@ -223,21 +255,32 @@ class CNCJobGenPrefGroupUI(OptionsGroupUI): "First 6 digits are the color and the last 2\n" "digits are for alpha (transparency) level.") ) - self.fill_color_entry = FCColorEntry() + self.fill_color_entry = FCEntry() + self.fill_color_button = QtWidgets.QPushButton() + self.fill_color_button.setFixedSize(15, 15) + + self.form_box_child_1 = QtWidgets.QHBoxLayout() + self.form_box_child_1.addWidget(self.fill_color_entry) + self.form_box_child_1.addWidget(self.fill_color_button) + self.form_box_child_1.setAlignment(QtCore.Qt.AlignLeft | QtCore.Qt.AlignVCenter) grid0.addWidget(self.fill_color_label, 20, 0) - grid0.addWidget(self.fill_color_entry, 20, 1) + grid0.addLayout(self.form_box_child_1, 20, 1) self.layout.addStretch() # Setting plot colors signals self.tline_color_entry.editingFinished.connect(self.on_tline_color_entry) + self.tline_color_button.clicked.connect(self.on_tline_color_button) self.tfill_color_entry.editingFinished.connect(self.on_tfill_color_entry) - - self.cncjob_alpha_entry.valueChanged.connect(self.on_cncjob_alpha_changed) # alpha + self.tfill_color_button.clicked.connect(self.on_tfill_color_button) + self.tcolor_alpha_spinner.valueChanged.connect(self.on_tcolor_spinner) + self.tcolor_alpha_slider.valueChanged.connect(self.on_tcolor_slider) self.line_color_entry.editingFinished.connect(self.on_line_color_entry) + self.line_color_button.clicked.connect(self.on_line_color_button) self.fill_color_entry.editingFinished.connect(self.on_fill_color_entry) + self.fill_color_button.clicked.connect(self.on_fill_color_button) # ------------------------------------------------------ # Setting travel colors handlers @@ -245,12 +288,27 @@ class CNCJobGenPrefGroupUI(OptionsGroupUI): def on_tfill_color_entry(self): self.app.defaults['cncjob_travel_fill'] = self.tfill_color_entry.get_value()[:7] + \ self.app.defaults['cncjob_travel_fill'][7:9] + self.tfill_color_button.setStyleSheet( + "background-color:%s" % str(self.app.defaults['cncjob_travel_fill'])[:7]) - def on_tline_color_entry(self): - self.app.defaults['cncjob_travel_line'] = self.tline_color_entry.get_value()[:7] + \ - self.app.defaults['cncjob_travel_line'][7:9] + def on_tfill_color_button(self): + current_color = QtGui.QColor(self.app.defaults['cncjob_travel_fill'][:7]) - def on_cncjob_alpha_changed(self, spinner_value): + c_dialog = QtWidgets.QColorDialog() + plot_fill_color = c_dialog.getColor(initial=current_color) + + if plot_fill_color.isValid() is False: + return + + self.tfill_color_button.setStyleSheet("background-color:%s" % str(plot_fill_color.name())) + + new_val = str(plot_fill_color.name()) + str(self.app.defaults['cncjob_travel_fill'][7:9]) + self.tfill_color_entry.set_value(new_val) + self.app.defaults['cncjob_travel_fill'] = new_val + + def on_tcolor_spinner(self): + spinner_value = self.tcolor_alpha_spinner.value() + self.tcolor_alpha_slider.setValue(spinner_value) self.app.defaults['cncjob_travel_fill'] = \ self.app.defaults['cncjob_travel_fill'][:7] + \ (hex(spinner_value)[2:] if int(hex(spinner_value)[2:], 16) > 0 else '00') @@ -258,13 +316,74 @@ class CNCJobGenPrefGroupUI(OptionsGroupUI): self.app.defaults['cncjob_travel_line'][:7] + \ (hex(spinner_value)[2:] if int(hex(spinner_value)[2:], 16) > 0 else '00') + def on_tcolor_slider(self): + slider_value = self.tcolor_alpha_slider.value() + self.tcolor_alpha_spinner.setValue(slider_value) + + def on_tline_color_entry(self): + self.app.defaults['cncjob_travel_line'] = self.tline_color_entry.get_value()[:7] + \ + self.app.defaults['cncjob_travel_line'][7:9] + self.tline_color_button.setStyleSheet( + "background-color:%s" % str(self.app.defaults['cncjob_travel_line'])[:7]) + + def on_tline_color_button(self): + current_color = QtGui.QColor(self.app.defaults['cncjob_travel_line'][:7]) + # print(current_color) + + c_dialog = QtWidgets.QColorDialog() + plot_line_color = c_dialog.getColor(initial=current_color) + + if plot_line_color.isValid() is False: + return + + self.tline_color_button.setStyleSheet("background-color:%s" % str(plot_line_color.name())) + + new_val_line = str(plot_line_color.name()) + str(self.app.defaults['cncjob_travel_line'][7:9]) + self.tline_color_entry.set_value(new_val_line) + self.app.defaults['cncjob_travel_line'] = new_val_line + # ------------------------------------------------------ # Setting plot colors handlers # ------------------------------------------------------ def on_fill_color_entry(self): self.app.defaults['cncjob_plot_fill'] = self.fill_color_entry.get_value()[:7] + \ self.app.defaults['cncjob_plot_fill'][7:9] + self.fill_color_button.setStyleSheet( + "background-color:%s" % str(self.app.defaults['cncjob_plot_fill'])[:7]) + + def on_fill_color_button(self): + current_color = QtGui.QColor(self.app.defaults['cncjob_plot_fill'][:7]) + + c_dialog = QtWidgets.QColorDialog() + plot_fill_color = c_dialog.getColor(initial=current_color) + + if plot_fill_color.isValid() is False: + return + + self.fill_color_button.setStyleSheet("background-color:%s" % str(plot_fill_color.name())) + + new_val = str(plot_fill_color.name()) + str(self.app.defaults['cncjob_plot_fill'][7:9]) + self.fill_color_entry.set_value(new_val) + self.app.defaults['cncjob_plot_fill'] = new_val def on_line_color_entry(self): self.app.defaults['cncjob_plot_line'] = self.line_color_entry.get_value()[:7] + \ self.app.defaults['cncjob_plot_line'][7:9] + self.line_color_button.setStyleSheet( + "background-color:%s" % str(self.app.defaults['cncjob_plot_line'])[:7]) + + def on_line_color_button(self): + current_color = QtGui.QColor(self.app.defaults['cncjob_plot_line'][:7]) + # print(current_color) + + c_dialog = QtWidgets.QColorDialog() + plot_line_color = c_dialog.getColor(initial=current_color) + + if plot_line_color.isValid() is False: + return + + self.line_color_button.setStyleSheet("background-color:%s" % str(plot_line_color.name())) + + new_val_line = str(plot_line_color.name()) + str(self.app.defaults['cncjob_plot_line'][7:9]) + self.line_color_entry.set_value(new_val_line) + self.app.defaults['cncjob_plot_line'] = new_val_line diff --git a/AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py b/flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py similarity index 94% rename from AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py rename to flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py index 5dab3cff..c8eb7e66 100644 --- a/AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py +++ b/flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py @@ -1,11 +1,11 @@ from PyQt5 import QtWidgets, QtGui from PyQt5.QtCore import QSettings -from AppGUI.GUIElements import FCTextArea -from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI +from flatcamGUI.GUIElements import FCTextArea +from flatcamGUI.preferences.OptionsGroupUI import OptionsGroupUI import gettext -import AppTranslation as fcTranslate +import FlatCAMTranslation as fcTranslate import builtins fcTranslate.apply_language('strings') diff --git a/AppGUI/preferences/cncjob/CNCJobPreferencesUI.py b/flatcamGUI/preferences/cncjob/CNCJobPreferencesUI.py similarity index 77% rename from AppGUI/preferences/cncjob/CNCJobPreferencesUI.py rename to flatcamGUI/preferences/cncjob/CNCJobPreferencesUI.py index 79760423..cc9a7e32 100644 --- a/AppGUI/preferences/cncjob/CNCJobPreferencesUI.py +++ b/flatcamGUI/preferences/cncjob/CNCJobPreferencesUI.py @@ -1,8 +1,8 @@ from PyQt5 import QtWidgets -from AppGUI.preferences.cncjob.CNCJobAdvOptPrefGroupUI import CNCJobAdvOptPrefGroupUI -from AppGUI.preferences.cncjob.CNCJobOptPrefGroupUI import CNCJobOptPrefGroupUI -from AppGUI.preferences.cncjob.CNCJobGenPrefGroupUI import CNCJobGenPrefGroupUI +from flatcamGUI.preferences.cncjob.CNCJobAdvOptPrefGroupUI import CNCJobAdvOptPrefGroupUI +from flatcamGUI.preferences.cncjob.CNCJobOptPrefGroupUI import CNCJobOptPrefGroupUI +from flatcamGUI.preferences.cncjob.CNCJobGenPrefGroupUI import CNCJobGenPrefGroupUI class CNCJobPreferencesUI(QtWidgets.QWidget): diff --git a/AppGUI/preferences/cncjob/__init__.py b/flatcamGUI/preferences/cncjob/__init__.py similarity index 100% rename from AppGUI/preferences/cncjob/__init__.py rename to flatcamGUI/preferences/cncjob/__init__.py diff --git a/AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py b/flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py similarity index 94% rename from AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py rename to flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py index dd267816..a63998f9 100644 --- a/AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py +++ b/flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py @@ -1,10 +1,10 @@ from PyQt5 import QtWidgets from PyQt5.QtCore import QSettings -from AppGUI.GUIElements import FCDoubleSpinner, RadioSet, FCCheckBox, NumericalEvalTupleEntry, NumericalEvalEntry -from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI +from flatcamGUI.GUIElements import FCDoubleSpinner, FCEntry, FloatEntry, RadioSet, FCCheckBox +from flatcamGUI.preferences.OptionsGroupUI import OptionsGroupUI import gettext -import AppTranslation as fcTranslate +import FlatCAMTranslation as fcTranslate import builtins fcTranslate.apply_language('strings') @@ -60,7 +60,7 @@ class ExcellonAdvOptPrefGroupUI(OptionsGroupUI): toolchange_xy_label.setToolTip( _("Toolchange X,Y position.") ) - self.toolchangexy_entry = NumericalEvalTupleEntry(border_color='#0069A9') + self.toolchangexy_entry = FCEntry() grid1.addWidget(toolchange_xy_label, 1, 0) grid1.addWidget(self.toolchangexy_entry, 1, 1) @@ -71,7 +71,7 @@ class ExcellonAdvOptPrefGroupUI(OptionsGroupUI): _("Height of the tool just after start.\n" "Delete the value if you don't need this feature.") ) - self.estartz_entry = NumericalEvalEntry(border_color='#0069A9') + self.estartz_entry = FloatEntry() grid1.addWidget(startzlabel, 2, 0) grid1.addWidget(self.estartz_entry, 2, 1) diff --git a/AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py b/flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py similarity index 98% rename from AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py rename to flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py index 25f38aea..5b04cf2f 100644 --- a/AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py +++ b/flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py @@ -1,11 +1,11 @@ from PyQt5 import QtWidgets from PyQt5.QtCore import QSettings -from AppGUI.GUIElements import FCSpinner, FCDoubleSpinner, RadioSet -from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI +from flatcamGUI.GUIElements import FCSpinner, FCDoubleSpinner, RadioSet +from flatcamGUI.preferences.OptionsGroupUI import OptionsGroupUI import gettext -import AppTranslation as fcTranslate +import FlatCAMTranslation as fcTranslate import builtins fcTranslate.apply_language('strings') diff --git a/AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py b/flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py similarity index 97% rename from AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py rename to flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py index 4cab1c6e..db2e922a 100644 --- a/AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py +++ b/flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py @@ -1,10 +1,10 @@ from PyQt5 import QtWidgets, QtCore from PyQt5.QtCore import QSettings -from AppGUI.GUIElements import RadioSet, FCSpinner -from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI +from flatcamGUI.GUIElements import RadioSet, FCSpinner +from flatcamGUI.preferences.OptionsGroupUI import OptionsGroupUI import gettext -import AppTranslation as fcTranslate +import FlatCAMTranslation as fcTranslate import builtins fcTranslate.apply_language('strings') diff --git a/AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py b/flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py similarity index 70% rename from AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py rename to flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py index 93d4e9a4..06d4dfc7 100644 --- a/AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py +++ b/flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py @@ -3,10 +3,10 @@ import platform from PyQt5 import QtWidgets, QtCore, QtGui from PyQt5.QtCore import QSettings -from AppGUI.GUIElements import FCCheckBox, FCSpinner, RadioSet, FCEntry, FCSliderWithSpinner, FCColorEntry -from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI +from flatcamGUI.GUIElements import FCCheckBox, FCSpinner, RadioSet, FCEntry +from flatcamGUI.preferences.OptionsGroupUI import OptionsGroupUI import gettext -import AppTranslation as fcTranslate +import FlatCAMTranslation as fcTranslate import builtins fcTranslate.apply_language('strings') @@ -36,31 +36,22 @@ class ExcellonGenPrefGroupUI(OptionsGroupUI): grid1 = QtWidgets.QGridLayout() self.layout.addLayout(grid1) - # Plot CB self.plot_cb = FCCheckBox(label=_('Plot')) self.plot_cb.setToolTip( "Plot (show) this object." ) grid1.addWidget(self.plot_cb, 0, 0) - # Solid CB self.solid_cb = FCCheckBox(label=_('Solid')) self.solid_cb.setToolTip( "Plot as solid circles." ) grid1.addWidget(self.solid_cb, 0, 1) - # Multicolored CB - self.multicolored_cb = FCCheckBox(label='%s' % _('M-Color')) - self.multicolored_cb.setToolTip( - _("Draw polygons in different colors.") - ) - grid1.addWidget(self.multicolored_cb, 0, 2) - separator_line = QtWidgets.QFrame() separator_line.setFrameShape(QtWidgets.QFrame.HLine) separator_line.setFrameShadow(QtWidgets.QFrame.Sunken) - grid1.addWidget(separator_line, 1, 0, 1, 3) + grid1.addWidget(separator_line, 1, 0, 1, 2) grid2 = QtWidgets.QGridLayout() self.layout.addLayout(grid2) @@ -264,7 +255,7 @@ class ExcellonGenPrefGroupUI(OptionsGroupUI): grid2.addWidget(separator_line, 11, 0, 1, 2) # Excellon Object Color - self.gerber_color_label = QtWidgets.QLabel('%s' % _('Object Color')) + self.gerber_color_label = QtWidgets.QLabel('%s' % _('Excellon Object Color')) grid2.addWidget(self.gerber_color_label, 12, 0, 1, 2) # Plot Line Color @@ -272,10 +263,17 @@ class ExcellonGenPrefGroupUI(OptionsGroupUI): self.line_color_label.setToolTip( _("Set the line color for plotted objects.") ) - self.line_color_entry = FCColorEntry() + self.line_color_entry = FCEntry() + self.line_color_button = QtWidgets.QPushButton() + self.line_color_button.setFixedSize(15, 15) + + self.form_box_child_2 = QtWidgets.QHBoxLayout() + self.form_box_child_2.addWidget(self.line_color_entry) + self.form_box_child_2.addWidget(self.line_color_button) + self.form_box_child_2.setAlignment(QtCore.Qt.AlignLeft | QtCore.Qt.AlignVCenter) grid2.addWidget(self.line_color_label, 13, 0) - grid2.addWidget(self.line_color_entry, 13, 1) + grid2.addLayout(self.form_box_child_2, 13, 1) # Plot Fill Color self.fill_color_label = QtWidgets.QLabel('%s:' % _('Fill')) @@ -284,20 +282,38 @@ class ExcellonGenPrefGroupUI(OptionsGroupUI): "First 6 digits are the color and the last 2\n" "digits are for alpha (transparency) level.") ) - self.fill_color_entry = FCColorEntry() + self.fill_color_entry = FCEntry() + self.fill_color_button = QtWidgets.QPushButton() + self.fill_color_button.setFixedSize(15, 15) + + self.form_box_child_1 = QtWidgets.QHBoxLayout() + self.form_box_child_1.addWidget(self.fill_color_entry) + self.form_box_child_1.addWidget(self.fill_color_button) + self.form_box_child_1.setAlignment(QtCore.Qt.AlignLeft | QtCore.Qt.AlignVCenter) grid2.addWidget(self.fill_color_label, 14, 0) - grid2.addWidget(self.fill_color_entry, 14, 1) + grid2.addLayout(self.form_box_child_1, 14, 1) # Plot Fill Transparency Level - self.excellon_alpha_label = QtWidgets.QLabel('%s:' % _('Alpha')) - self.excellon_alpha_label.setToolTip( + self.alpha_label = QtWidgets.QLabel('%s:' % _('Alpha')) + self.alpha_label.setToolTip( _("Set the fill transparency for plotted objects.") ) - self.excellon_alpha_entry = FCSliderWithSpinner(0, 255, 1) + self.color_alpha_slider = QtWidgets.QSlider(QtCore.Qt.Horizontal) + self.color_alpha_slider.setMinimum(0) + self.color_alpha_slider.setMaximum(255) + self.color_alpha_slider.setSingleStep(1) - grid2.addWidget(self.excellon_alpha_label, 15, 0) - grid2.addWidget(self.excellon_alpha_entry, 15, 1) + self.color_alpha_spinner = FCSpinner() + self.color_alpha_spinner.setMinimumWidth(70) + self.color_alpha_spinner.set_range(0, 255) + + self.form_box_child_3 = QtWidgets.QHBoxLayout() + self.form_box_child_3.addWidget(self.color_alpha_slider) + self.form_box_child_3.addWidget(self.color_alpha_spinner) + + grid2.addWidget(self.alpha_label, 15, 0) + grid2.addLayout(self.form_box_child_3, 15, 1) self.layout.addStretch() @@ -317,18 +333,14 @@ class ExcellonGenPrefGroupUI(OptionsGroupUI): # Setting plot colors signals self.line_color_entry.editingFinished.connect(self.on_line_color_entry) + self.line_color_button.clicked.connect(self.on_line_color_button) self.fill_color_entry.editingFinished.connect(self.on_fill_color_entry) - - self.excellon_alpha_entry.valueChanged.connect(self.on_excellon_alpha_changed) # alpha + self.fill_color_button.clicked.connect(self.on_fill_color_button) + self.color_alpha_spinner.valueChanged.connect(self.on_color_spinner) + self.color_alpha_slider.valueChanged.connect(self.on_color_slider) # Load the defaults values into the Excellon Format and Excellon Zeros fields self.excellon_defaults_button.clicked.connect(self.on_excellon_defaults_button) - # Make sure that when the Excellon loading parameters are changed, the change is reflected in the - # Export Excellon parameters. - self.update_excellon_cb.stateChanged.connect(self.on_update_exc_export) - - # call it once to make sure it is updated at startup - self.on_update_exc_export(state=self.app.defaults["excellon_update"]) def optimization_selection(self): if self.excellon_optimization_radio.get_value() == 'M': @@ -342,12 +354,26 @@ class ExcellonGenPrefGroupUI(OptionsGroupUI): def on_fill_color_entry(self): self.app.defaults['excellon_plot_fill'] = self.fill_color_entry.get_value()[:7] + \ self.app.defaults['excellon_plot_fill'][7:9] + self.fill_color_button.setStyleSheet("background-color:%s" % str(self.app.defaults['excellon_plot_fill'])[:7]) - def on_line_color_entry(self): - self.app.defaults['excellon_plot_line'] = self.line_color_entry.get_value()[:7] + \ - self.app.defaults['excellon_plot_line'][7:9] + def on_fill_color_button(self): + current_color = QtGui.QColor(self.app.defaults['excellon_plot_fill'][:7]) - def on_excellon_alpha_changed(self, spinner_value): + c_dialog = QtWidgets.QColorDialog() + plot_fill_color = c_dialog.getColor(initial=current_color) + + if plot_fill_color.isValid() is False: + return + + self.fill_color_button.setStyleSheet("background-color:%s" % str(plot_fill_color.name())) + + new_val = str(plot_fill_color.name()) + str(self.app.defaults['excellon_plot_fill'][7:9]) + self.fill_color_entry.set_value(new_val) + self.app.defaults['excellon_plot_fill'] = new_val + + def on_color_spinner(self): + spinner_value = self.color_alpha_spinner.value() + self.color_alpha_slider.setValue(spinner_value) self.app.defaults['excellon_plot_fill'] = \ self.app.defaults['excellon_plot_fill'][:7] + \ (hex(spinner_value)[2:] if int(hex(spinner_value)[2:], 16) > 0 else '00') @@ -355,6 +381,31 @@ class ExcellonGenPrefGroupUI(OptionsGroupUI): self.app.defaults['excellon_plot_line'][:7] + \ (hex(spinner_value)[2:] if int(hex(spinner_value)[2:], 16) > 0 else '00') + def on_color_slider(self): + slider_value = self.color_alpha_slider.value() + self.color_alpha_spinner.setValue(slider_value) + + def on_line_color_entry(self): + self.app.defaults['excellon_plot_line'] = self.line_color_entry.get_value()[:7] + \ + self.app.defaults['excellon_plot_line'][7:9] + self.line_color_button.setStyleSheet("background-color:%s" % str(self.app.defaults['excellon_plot_line'])[:7]) + + def on_line_color_button(self): + current_color = QtGui.QColor(self.app.defaults['excellon_plot_line'][:7]) + # print(current_color) + + c_dialog = QtWidgets.QColorDialog() + plot_line_color = c_dialog.getColor(initial=current_color) + + if plot_line_color.isValid() is False: + return + + self.line_color_button.setStyleSheet("background-color:%s" % str(plot_line_color.name())) + + new_val_line = str(plot_line_color.name()) + str(self.app.defaults['excellon_plot_line'][7:9]) + self.line_color_entry.set_value(new_val_line) + self.app.defaults['excellon_plot_line'] = new_val_line + def on_excellon_defaults_button(self): self.app.preferencesUiManager.defaults_form_fields["excellon_format_lower_in"].set_value('4') self.app.preferencesUiManager.defaults_form_fields["excellon_format_upper_in"].set_value('2') @@ -362,105 +413,3 @@ class ExcellonGenPrefGroupUI(OptionsGroupUI): self.app.preferencesUiManager.defaults_form_fields["excellon_format_upper_mm"].set_value('3') self.app.preferencesUiManager.defaults_form_fields["excellon_zeros"].set_value('L') self.app.preferencesUiManager.defaults_form_fields["excellon_units"].set_value('INCH') - - def on_update_exc_export(self, state): - """ - This is handling the update of Excellon Export parameters based on the ones in the Excellon General but only - if the update_excellon_cb checkbox is checked - - :param state: state of the checkbox whose signals is tied to his slot - :return: - """ - if state: - # first try to disconnect - try: - self.excellon_format_upper_in_entry.returnPressed.disconnect(self.on_excellon_format_changed) - except TypeError: - pass - try: - self.excellon_format_lower_in_entry.returnPressed.disconnect(self.on_excellon_format_changed) - except TypeError: - pass - try: - self.excellon_format_upper_mm_entry.returnPressed.disconnect(self.on_excellon_format_changed) - except TypeError: - pass - try: - self.excellon_format_lower_mm_entry.returnPressed.disconnect(self.on_excellon_format_changed) - except TypeError: - pass - - try: - self.excellon_zeros_radio.activated_custom.disconnect(self.on_excellon_zeros_changed) - except TypeError: - pass - try: - self.excellon_units_radio.activated_custom.disconnect(self.on_excellon_zeros_changed) - except TypeError: - pass - - # the connect them - self.excellon_format_upper_in_entry.returnPressed.connect(self.on_excellon_format_changed) - self.excellon_format_lower_in_entry.returnPressed.connect(self.on_excellon_format_changed) - self.excellon_format_upper_mm_entry.returnPressed.connect(self.on_excellon_format_changed) - self.excellon_format_lower_mm_entry.returnPressed.connect(self.on_excellon_format_changed) - self.excellon_zeros_radio.activated_custom.connect(self.on_excellon_zeros_changed) - self.excellon_units_radio.activated_custom.connect(self.on_excellon_units_changed) - else: - # disconnect the signals - try: - self.excellon_format_upper_in_entry.returnPressed.disconnect(self.on_excellon_format_changed) - except TypeError: - pass - try: - self.excellon_format_lower_in_entry.returnPressed.disconnect(self.on_excellon_format_changed) - except TypeError: - pass - try: - self.excellon_format_upper_mm_entry.returnPressed.disconnect(self.on_excellon_format_changed) - except TypeError: - pass - try: - self.excellon_format_lower_mm_entry.returnPressed.disconnect(self.on_excellon_format_changed) - except TypeError: - pass - - try: - self.excellon_zeros_radio.activated_custom.disconnect(self.on_excellon_zeros_changed) - except TypeError: - pass - try: - self.excellon_units_radio.activated_custom.disconnect(self.on_excellon_zeros_changed) - except TypeError: - pass - - def on_excellon_format_changed(self): - """ - Slot activated when the user changes the Excellon format values in Preferences -> Excellon -> Excellon General - :return: None - """ - if self.excellon_units_radio.get_value().upper() == 'METRIC': - self.app.ui.excellon_defaults_form.excellon_exp_group.format_whole_entry.set_value( - self.excellon_format_upper_mm_entry.get_value()) - self.app.ui.excellon_defaults_form.excellon_exp_group.format_dec_entry.set_value( - self.excellon_format_lower_mm_entry.get_value()) - else: - self.app.ui.excellon_defaults_form.excellon_exp_group.format_whole_entry.set_value( - self.excellon_format_upper_in_entry.get_value()) - self.app.ui.excellon_defaults_form.excellon_exp_group.format_dec_entry.set_value( - self.excellon_format_lower_in_entry.get_value()) - - def on_excellon_zeros_changed(self, val): - """ - Slot activated when the user changes the Excellon zeros values in Preferences -> Excellon -> Excellon General - :return: None - """ - self.app.ui.excellon_defaults_form.excellon_exp_group.zeros_radio.set_value(val + 'Z') - - def on_excellon_units_changed(self, val): - """ - Slot activated when the user changes the Excellon unit values in Preferences -> Excellon -> Excellon General - :return: None - """ - self.app.ui.excellon_defaults_form.excellon_exp_group.excellon_units_radio.set_value(val) - self.on_excellon_format_changed() diff --git a/AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py b/flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py similarity index 96% rename from AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py rename to flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py index 93aec0b3..cdc6ce5e 100644 --- a/AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py +++ b/flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py @@ -1,12 +1,12 @@ from PyQt5 import QtWidgets from PyQt5.QtCore import Qt, QSettings -from AppGUI.GUIElements import RadioSet, FCDoubleSpinner, FCCheckBox, FCEntry, FCSpinner, OptionalInputSection, \ - FCComboBox, NumericalEvalTupleEntry -from AppGUI.preferences import machinist_setting -from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI +from flatcamGUI.GUIElements import RadioSet, FCDoubleSpinner, FCCheckBox, FCEntry, FCSpinner, OptionalInputSection, \ + FCComboBox +from flatcamGUI.preferences import machinist_setting +from flatcamGUI.preferences.OptionsGroupUI import OptionsGroupUI import gettext -import AppTranslation as fcTranslate +import FlatCAMTranslation as fcTranslate import builtins fcTranslate.apply_language('strings') @@ -198,7 +198,7 @@ class ExcellonOptPrefGroupUI(OptionsGroupUI): "If no value is entered then there is no move\n" "on X,Y plane at the end of the job.") ) - self.endxy_entry = NumericalEvalTupleEntry(border_color='#0069A9') + self.endxy_entry = FCEntry() grid2.addWidget(endmove_xy_label, 9, 0) grid2.addWidget(self.endxy_entry, 9, 1) diff --git a/AppGUI/preferences/excellon/ExcellonPreferencesUI.py b/flatcamGUI/preferences/excellon/ExcellonPreferencesUI.py similarity index 75% rename from AppGUI/preferences/excellon/ExcellonPreferencesUI.py rename to flatcamGUI/preferences/excellon/ExcellonPreferencesUI.py index dd1305d9..b3d6d165 100644 --- a/AppGUI/preferences/excellon/ExcellonPreferencesUI.py +++ b/flatcamGUI/preferences/excellon/ExcellonPreferencesUI.py @@ -1,14 +1,14 @@ from PyQt5 import QtWidgets from PyQt5.QtCore import QSettings -from AppGUI.preferences.excellon.ExcellonEditorPrefGroupUI import ExcellonEditorPrefGroupUI -from AppGUI.preferences.excellon.ExcellonExpPrefGroupUI import ExcellonExpPrefGroupUI -from AppGUI.preferences.excellon.ExcellonAdvOptPrefGroupUI import ExcellonAdvOptPrefGroupUI -from AppGUI.preferences.excellon.ExcellonOptPrefGroupUI import ExcellonOptPrefGroupUI -from AppGUI.preferences.excellon.ExcellonGenPrefGroupUI import ExcellonGenPrefGroupUI +from flatcamGUI.preferences.excellon.ExcellonEditorPrefGroupUI import ExcellonEditorPrefGroupUI +from flatcamGUI.preferences.excellon.ExcellonExpPrefGroupUI import ExcellonExpPrefGroupUI +from flatcamGUI.preferences.excellon.ExcellonAdvOptPrefGroupUI import ExcellonAdvOptPrefGroupUI +from flatcamGUI.preferences.excellon.ExcellonOptPrefGroupUI import ExcellonOptPrefGroupUI +from flatcamGUI.preferences.excellon.ExcellonGenPrefGroupUI import ExcellonGenPrefGroupUI import gettext -import AppTranslation as fcTranslate +import FlatCAMTranslation as fcTranslate import builtins fcTranslate.apply_language('strings') @@ -31,7 +31,7 @@ class ExcellonPreferencesUI(QtWidgets.QWidget): self.decimals = decimals self.excellon_gen_group = ExcellonGenPrefGroupUI(decimals=self.decimals) - self.excellon_gen_group.setMinimumWidth(240) + self.excellon_gen_group.setMinimumWidth(220) self.excellon_opt_group = ExcellonOptPrefGroupUI(decimals=self.decimals) self.excellon_opt_group.setMinimumWidth(290) self.excellon_exp_group = ExcellonExpPrefGroupUI(decimals=self.decimals) diff --git a/AppGUI/preferences/excellon/__init__.py b/flatcamGUI/preferences/excellon/__init__.py similarity index 100% rename from AppGUI/preferences/excellon/__init__.py rename to flatcamGUI/preferences/excellon/__init__.py diff --git a/AppGUI/preferences/general/GeneralAPPSetGroupUI.py b/flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py similarity index 87% rename from AppGUI/preferences/general/GeneralAPPSetGroupUI.py rename to flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py index b73db634..3daff809 100644 --- a/AppGUI/preferences/general/GeneralAPPSetGroupUI.py +++ b/flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py @@ -1,13 +1,13 @@ -from PyQt5 import QtCore, QtWidgets +from PyQt5 import QtCore, QtWidgets, QtGui from PyQt5.QtCore import QSettings -from AppGUI.GUIElements import FCDoubleSpinner, FCCheckBox, FCComboBox, RadioSet, OptionalInputSection, FCSpinner, \ - FCColorEntry -from AppGUI.preferences import settings -from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI +from flatcamGUI.GUIElements import FCDoubleSpinner, FCCheckBox, FCComboBox, RadioSet, OptionalInputSection, FCSpinner, \ + FCEntry +from flatcamGUI.preferences import settings +from flatcamGUI.preferences.OptionsGroupUI import OptionsGroupUI import gettext -import AppTranslation as fcTranslate +import FlatCAMTranslation as fcTranslate import builtins fcTranslate.apply_language('strings') @@ -177,6 +177,14 @@ class GeneralAPPSetGroupUI(OptionsGroupUI): {'label': _('Landscape'), 'value': 'l'}, ], stretch=False) + self.wks = OptionalInputSection(self.workspace_cb, + [ + self.workspace_type_lbl, + self.wk_cb, + self.wk_orientation_label, + self.wk_orientation_radio + ]) + grid0.addWidget(self.wk_orientation_label, 8, 0) grid0.addWidget(self.wk_orientation_radio, 8, 1) @@ -193,7 +201,7 @@ class GeneralAPPSetGroupUI(OptionsGroupUI): self.notebook_font_size_label = QtWidgets.QLabel('%s:' % _('Notebook')) self.notebook_font_size_label.setToolTip( _("This sets the font size for the elements found in the Notebook.\n" - "The notebook is the collapsible area in the left side of the AppGUI,\n" + "The notebook is the collapsible area in the left side of the GUI,\n" "and include the Project, Selected and Tool tabs.") ) @@ -232,8 +240,8 @@ class GeneralAPPSetGroupUI(OptionsGroupUI): # TextBox Font Size self.textbox_font_size_label = QtWidgets.QLabel('%s:' % _('Textbox')) self.textbox_font_size_label.setToolTip( - _("This sets the font size for the Textbox AppGUI\n" - "elements that are used in the application.") + _("This sets the font size for the Textbox GUI\n" + "elements that are used in FlatCAM.") ) self.textbox_font_size_spinner = FCSpinner() @@ -249,29 +257,10 @@ class GeneralAPPSetGroupUI(OptionsGroupUI): grid0.addWidget(self.textbox_font_size_label, 13, 0) grid0.addWidget(self.textbox_font_size_spinner, 13, 1) - # HUD Font Size - self.hud_font_size_label = QtWidgets.QLabel('%s:' % _('HUD')) - self.hud_font_size_label.setToolTip( - _("This sets the font size for the Heads Up Display.") - ) - - self.hud_font_size_spinner = FCSpinner() - self.hud_font_size_spinner.set_range(8, 40) - self.hud_font_size_spinner.setWrapping(True) - - qsettings = QSettings("Open Source", "FlatCAM") - if qsettings.contains("hud_font_size"): - self.hud_font_size_spinner.set_value(settings.value('hud_font_size', type=int)) - else: - self.hud_font_size_spinner.set_value(8) - - grid0.addWidget(self.hud_font_size_label, 14, 0) - grid0.addWidget(self.hud_font_size_spinner, 14, 1) - separator_line = QtWidgets.QFrame() separator_line.setFrameShape(QtWidgets.QFrame.HLine) separator_line.setFrameShadow(QtWidgets.QFrame.Sunken) - grid0.addWidget(separator_line, 16, 0, 1, 2) + grid0.addWidget(separator_line, 14, 0, 1, 2) # ----------------------------------------------------------- # -------------- MOUSE SETTINGS ----------------------------- @@ -334,16 +323,24 @@ class GeneralAPPSetGroupUI(OptionsGroupUI): self.mouse_color_label.setToolTip( _("Set the color of the mouse cursor.") ) - self.mouse_cursor_entry = FCColorEntry() + self.mouse_cursor_entry = FCEntry() + self.mouse_cursor_button = QtWidgets.QPushButton() + self.mouse_cursor_button.setFixedSize(15, 15) + + self.form_box_child_1 = QtWidgets.QHBoxLayout() + self.form_box_child_1.addWidget(self.mouse_cursor_entry) + self.form_box_child_1.addWidget(self.mouse_cursor_button) + self.form_box_child_1.setAlignment(QtCore.Qt.AlignLeft | QtCore.Qt.AlignVCenter) grid0.addWidget(self.mouse_color_label, 26, 0) - grid0.addWidget(self.mouse_cursor_entry, 26, 1) + grid0.addLayout(self.form_box_child_1, 26, 1) self.mois = OptionalInputSection( self.mouse_cursor_color_cb, [ self.mouse_color_label, - self.mouse_cursor_entry + self.mouse_cursor_entry, + self.mouse_cursor_button ] ) # Select mouse pan button @@ -443,7 +440,9 @@ class GeneralAPPSetGroupUI(OptionsGroupUI): self.layout.addStretch() self.mouse_cursor_color_cb.stateChanged.connect(self.on_mouse_cursor_color_enable) + self.mouse_cursor_entry.editingFinished.connect(self.on_mouse_cursor_entry) + self.mouse_cursor_button.clicked.connect(self.on_mouse_cursor_button) def on_mouse_cursor_color_enable(self, val): if val: @@ -462,4 +461,23 @@ class GeneralAPPSetGroupUI(OptionsGroupUI): def on_mouse_cursor_entry(self): self.app.defaults['global_cursor_color'] = self.mouse_cursor_entry.get_value() + self.mouse_cursor_button.setStyleSheet("background-color:%s" % str(self.app.defaults['global_cursor_color'])) + + self.app.cursor_color_3D = self.app.defaults["global_cursor_color"] + + def on_mouse_cursor_button(self): + current_color = QtGui.QColor(self.app.defaults['global_cursor_color']) + + c_dialog = QtWidgets.QColorDialog() + proj_color = c_dialog.getColor(initial=current_color) + + if proj_color.isValid() is False: + return + + self.mouse_cursor_button.setStyleSheet("background-color:%s" % str(proj_color.name())) + + new_val_sel = str(proj_color.name()) + self.mouse_cursor_entry.set_value(new_val_sel) + self.app.defaults['global_cursor_color'] = new_val_sel + self.app.cursor_color_3D = self.app.defaults["global_cursor_color"] diff --git a/AppGUI/preferences/general/GeneralAppPrefGroupUI.py b/flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py similarity index 97% rename from AppGUI/preferences/general/GeneralAppPrefGroupUI.py rename to flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py index 81d99b7d..7f238b5f 100644 --- a/AppGUI/preferences/general/GeneralAppPrefGroupUI.py +++ b/flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py @@ -3,12 +3,12 @@ import sys from PyQt5 import QtWidgets from PyQt5.QtCore import QSettings -from AppGUI.GUIElements import RadioSet, FCSpinner, FCCheckBox, FCComboBox, FCButton, OptionalInputSection, \ +from flatcamGUI.GUIElements import RadioSet, FCSpinner, FCCheckBox, FCComboBox, FCButton, OptionalInputSection, \ FCDoubleSpinner -from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI +from flatcamGUI.preferences.OptionsGroupUI import OptionsGroupUI import gettext -import AppTranslation as fcTranslate +import FlatCAMTranslation as fcTranslate import builtins fcTranslate.apply_language('strings') @@ -380,11 +380,12 @@ class GeneralAppPrefGroupUI(OptionsGroupUI): def on_toggle_shell_from_settings(self, state): """ - Toggle shell ui: if is visible close it, if it is closed then open it - + Toggle shell: if is visible close it, if it is closed then open it :return: None """ + self.app.defaults.report_usage("on_toggle_shell_from_settings()") + if state is True: if not self.app.ui.shell_dock.isVisible(): self.app.ui.shell_dock.show() diff --git a/AppGUI/preferences/general/GeneralGUIPrefGroupUI.py b/flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py similarity index 57% rename from AppGUI/preferences/general/GeneralGUIPrefGroupUI.py rename to flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py index 7339b9cc..baedacc7 100644 --- a/AppGUI/preferences/general/GeneralGUIPrefGroupUI.py +++ b/flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py @@ -1,11 +1,11 @@ from PyQt5 import QtWidgets, QtCore, QtGui from PyQt5.QtCore import QSettings, Qt -from AppGUI.GUIElements import RadioSet, FCCheckBox, FCComboBox, FCSliderWithSpinner, FCColorEntry -from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI +from flatcamGUI.GUIElements import RadioSet, FCCheckBox, FCButton, FCComboBox, FCEntry, FCSpinner +from flatcamGUI.preferences.OptionsGroupUI import OptionsGroupUI import gettext -import AppTranslation as fcTranslate +import FlatCAMTranslation as fcTranslate import builtins fcTranslate.apply_language('strings') @@ -35,7 +35,7 @@ class GeneralGUIPrefGroupUI(OptionsGroupUI): # Theme selection self.theme_label = QtWidgets.QLabel('%s:' % _('Theme')) self.theme_label.setToolTip( - _("Select a theme for the application.\n" + _("Select a theme for FlatCAM.\n" "It will theme the plot area.") ) @@ -72,7 +72,7 @@ class GeneralGUIPrefGroupUI(OptionsGroupUI): # Layout selection self.layout_label = QtWidgets.QLabel('%s:' % _('Layout')) self.layout_label.setToolTip( - _("Select a layout for the application.\n" + _("Select an layout for FlatCAM.\n" "It is applied immediately.") ) self.layout_combo = FCComboBox() @@ -94,7 +94,7 @@ class GeneralGUIPrefGroupUI(OptionsGroupUI): # Style selection self.style_label = QtWidgets.QLabel('%s:' % _('Style')) self.style_label.setToolTip( - _("Select a style for the application.\n" + _("Select an style for FlatCAM.\n" "It will be applied at the next app start.") ) self.style_combo = FCComboBox() @@ -110,7 +110,7 @@ class GeneralGUIPrefGroupUI(OptionsGroupUI): # Enable High DPI Support self.hdpi_cb = FCCheckBox('%s' % _('Activate HDPI Support')) self.hdpi_cb.setToolTip( - _("Enable High DPI support for the application.\n" + _("Enable High DPI support for FlatCAM.\n" "It will be applied at the next app start.") ) @@ -126,7 +126,7 @@ class GeneralGUIPrefGroupUI(OptionsGroupUI): # Enable Hover box self.hover_cb = FCCheckBox('%s' % _('Display Hover Shape')) self.hover_cb.setToolTip( - _("Enable display of a hover shape for the application objects.\n" + _("Enable display of a hover shape for FlatCAM objects.\n" "It is displayed whenever the mouse cursor is hovering\n" "over any kind of not-selected object.") ) @@ -135,7 +135,7 @@ class GeneralGUIPrefGroupUI(OptionsGroupUI): # Enable Selection box self.selection_cb = FCCheckBox('%s' % _('Display Selection Shape')) self.selection_cb.setToolTip( - _("Enable the display of a selection shape for the application objects.\n" + _("Enable the display of a selection shape for FlatCAM objects.\n" "It is displayed whenever the mouse selects an object\n" "either by clicking or dragging mouse from left to right or\n" "right to left.") @@ -155,10 +155,17 @@ class GeneralGUIPrefGroupUI(OptionsGroupUI): self.sl_color_label.setToolTip( _("Set the line color for the 'left to right' selection box.") ) - self.sl_color_entry = FCColorEntry() + self.sl_color_entry = FCEntry() + self.sl_color_button = QtWidgets.QPushButton() + self.sl_color_button.setFixedSize(15, 15) + + self.form_box_child_4 = QtWidgets.QHBoxLayout() + self.form_box_child_4.addWidget(self.sl_color_entry) + self.form_box_child_4.addWidget(self.sl_color_button) + self.form_box_child_4.setAlignment(QtCore.Qt.AlignLeft | QtCore.Qt.AlignVCenter) grid0.addWidget(self.sl_color_label, 16, 0) - grid0.addWidget(self.sl_color_entry, 16, 1) + grid0.addLayout(self.form_box_child_4, 16, 1) self.sf_color_label = QtWidgets.QLabel('%s:' % _('Fill')) self.sf_color_label.setToolTip( @@ -167,20 +174,38 @@ class GeneralGUIPrefGroupUI(OptionsGroupUI): "First 6 digits are the color and the last 2\n" "digits are for alpha (transparency) level.") ) - self.sf_color_entry = FCColorEntry() + self.sf_color_entry = FCEntry() + self.sf_color_button = QtWidgets.QPushButton() + self.sf_color_button.setFixedSize(15, 15) + + self.form_box_child_5 = QtWidgets.QHBoxLayout() + self.form_box_child_5.addWidget(self.sf_color_entry) + self.form_box_child_5.addWidget(self.sf_color_button) + self.form_box_child_5.setAlignment(QtCore.Qt.AlignLeft | QtCore.Qt.AlignVCenter) grid0.addWidget(self.sf_color_label, 17, 0) - grid0.addWidget(self.sf_color_entry, 17, 1) + grid0.addLayout(self.form_box_child_5, 17, 1) # Plot Selection (left - right) Fill Transparency Level - self.left_right_alpha_label = QtWidgets.QLabel('%s:' % _('Alpha')) - self.left_right_alpha_label.setToolTip( + self.sf_alpha_label = QtWidgets.QLabel('%s:' % _('Alpha')) + self.sf_alpha_label.setToolTip( _("Set the fill transparency for the 'left to right' selection box.") ) - self.left_right_alpha_entry = FCSliderWithSpinner(0, 255, 1) + self.sf_color_alpha_slider = QtWidgets.QSlider(QtCore.Qt.Horizontal) + self.sf_color_alpha_slider.setMinimum(0) + self.sf_color_alpha_slider.setMaximum(255) + self.sf_color_alpha_slider.setSingleStep(1) - grid0.addWidget(self.left_right_alpha_label, 18, 0) - grid0.addWidget(self.left_right_alpha_entry, 18, 1) + self.sf_color_alpha_spinner = FCSpinner() + self.sf_color_alpha_spinner.setMinimumWidth(70) + self.sf_color_alpha_spinner.set_range(0, 255) + + self.form_box_child_6 = QtWidgets.QHBoxLayout() + self.form_box_child_6.addWidget(self.sf_color_alpha_slider) + self.form_box_child_6.addWidget(self.sf_color_alpha_spinner) + + grid0.addWidget(self.sf_alpha_label, 18, 0) + grid0.addLayout(self.form_box_child_6, 18, 1) separator_line = QtWidgets.QFrame() separator_line.setFrameShape(QtWidgets.QFrame.HLine) @@ -196,10 +221,17 @@ class GeneralGUIPrefGroupUI(OptionsGroupUI): self.alt_sl_color_label.setToolTip( _("Set the line color for the 'right to left' selection box.") ) - self.alt_sl_color_entry = FCColorEntry() + self.alt_sl_color_entry = FCEntry() + self.alt_sl_color_button = QtWidgets.QPushButton() + self.alt_sl_color_button.setFixedSize(15, 15) + + self.form_box_child_7 = QtWidgets.QHBoxLayout() + self.form_box_child_7.addWidget(self.alt_sl_color_entry) + self.form_box_child_7.addWidget(self.alt_sl_color_button) + self.form_box_child_7.setAlignment(QtCore.Qt.AlignLeft | QtCore.Qt.AlignVCenter) grid0.addWidget(self.alt_sl_color_label, 21, 0) - grid0.addWidget(self.alt_sl_color_entry, 21, 1) + grid0.addLayout(self.form_box_child_7, 21, 1) # Plot Selection (right - left) Fill Color self.alt_sf_color_label = QtWidgets.QLabel('%s:' % _('Fill')) @@ -209,20 +241,38 @@ class GeneralGUIPrefGroupUI(OptionsGroupUI): "First 6 digits are the color and the last 2\n" "digits are for alpha (transparency) level.") ) - self.alt_sf_color_entry = FCColorEntry() + self.alt_sf_color_entry = FCEntry() + self.alt_sf_color_button = QtWidgets.QPushButton() + self.alt_sf_color_button.setFixedSize(15, 15) + + self.form_box_child_8 = QtWidgets.QHBoxLayout() + self.form_box_child_8.addWidget(self.alt_sf_color_entry) + self.form_box_child_8.addWidget(self.alt_sf_color_button) + self.form_box_child_8.setAlignment(QtCore.Qt.AlignLeft | QtCore.Qt.AlignVCenter) grid0.addWidget(self.alt_sf_color_label, 22, 0) - grid0.addWidget(self.alt_sf_color_entry, 22, 1) + grid0.addLayout(self.form_box_child_8, 22, 1) # Plot Selection (right - left) Fill Transparency Level - self.right_left_alpha_label = QtWidgets.QLabel('%s:' % _('Alpha')) - self.right_left_alpha_label.setToolTip( + self.alt_sf_alpha_label = QtWidgets.QLabel('%s:' % _('Alpha')) + self.alt_sf_alpha_label.setToolTip( _("Set the fill transparency for selection 'right to left' box.") ) - self.right_left_alpha_entry = FCSliderWithSpinner(0, 255, 1) + self.alt_sf_color_alpha_slider = QtWidgets.QSlider(QtCore.Qt.Horizontal) + self.alt_sf_color_alpha_slider.setMinimum(0) + self.alt_sf_color_alpha_slider.setMaximum(255) + self.alt_sf_color_alpha_slider.setSingleStep(1) - grid0.addWidget(self.right_left_alpha_label, 23, 0) - grid0.addWidget(self.right_left_alpha_entry, 23, 1) + self.alt_sf_color_alpha_spinner = FCSpinner() + self.alt_sf_color_alpha_spinner.setMinimumWidth(70) + self.alt_sf_color_alpha_spinner.set_range(0, 255) + + self.form_box_child_9 = QtWidgets.QHBoxLayout() + self.form_box_child_9.addWidget(self.alt_sf_color_alpha_slider) + self.form_box_child_9.addWidget(self.alt_sf_color_alpha_spinner) + + grid0.addWidget(self.alt_sf_alpha_label, 23, 0) + grid0.addLayout(self.form_box_child_9, 23, 1) separator_line = QtWidgets.QFrame() separator_line.setFrameShape(QtWidgets.QFrame.HLine) @@ -241,20 +291,34 @@ class GeneralGUIPrefGroupUI(OptionsGroupUI): self.alt_sf_color_label.setToolTip( _("Set the color for the shape.") ) - self.draw_color_entry = FCColorEntry() + self.draw_color_entry = FCEntry() + self.draw_color_button = QtWidgets.QPushButton() + self.draw_color_button.setFixedSize(15, 15) + + self.form_box_child_10 = QtWidgets.QHBoxLayout() + self.form_box_child_10.addWidget(self.draw_color_entry) + self.form_box_child_10.addWidget(self.draw_color_button) + self.form_box_child_10.setAlignment(QtCore.Qt.AlignLeft | QtCore.Qt.AlignVCenter) grid0.addWidget(self.draw_color_label, 26, 0) - grid0.addWidget(self.draw_color_entry, 26, 1) + grid0.addLayout(self.form_box_child_10, 26, 1) # Editor Draw Selection Color self.sel_draw_color_label = QtWidgets.QLabel('%s:' % _('Selection')) self.sel_draw_color_label.setToolTip( _("Set the color of the shape when selected.") ) - self.sel_draw_color_entry = FCColorEntry() + self.sel_draw_color_entry = FCEntry() + self.sel_draw_color_button = QtWidgets.QPushButton() + self.sel_draw_color_button.setFixedSize(15, 15) + + self.form_box_child_11 = QtWidgets.QHBoxLayout() + self.form_box_child_11.addWidget(self.sel_draw_color_entry) + self.form_box_child_11.addWidget(self.sel_draw_color_button) + self.form_box_child_11.setAlignment(QtCore.Qt.AlignLeft | QtCore.Qt.AlignVCenter) grid0.addWidget(self.sel_draw_color_label, 27, 0) - grid0.addWidget(self.sel_draw_color_entry, 27, 1) + grid0.addLayout(self.form_box_child_11, 27, 1) separator_line = QtWidgets.QFrame() separator_line.setFrameShape(QtWidgets.QFrame.HLine) @@ -273,20 +337,34 @@ class GeneralGUIPrefGroupUI(OptionsGroupUI): self.proj_color_label.setToolTip( _("Set the color of the items in Project Tab Tree.") ) - self.proj_color_entry = FCColorEntry() + self.proj_color_entry = FCEntry() + self.proj_color_button = QtWidgets.QPushButton() + self.proj_color_button.setFixedSize(15, 15) + + self.form_box_child_12 = QtWidgets.QHBoxLayout() + self.form_box_child_12.addWidget(self.proj_color_entry) + self.form_box_child_12.addWidget(self.proj_color_button) + self.form_box_child_12.setAlignment(QtCore.Qt.AlignLeft | QtCore.Qt.AlignVCenter) grid0.addWidget(self.proj_color_label, 30, 0) - grid0.addWidget(self.proj_color_entry, 30, 1) + grid0.addLayout(self.form_box_child_12, 30, 1) self.proj_color_dis_label = QtWidgets.QLabel('%s:' % _('Disabled')) self.proj_color_dis_label.setToolTip( _("Set the color of the items in Project Tab Tree,\n" "for the case when the items are disabled.") ) - self.proj_color_dis_entry = FCColorEntry() + self.proj_color_dis_entry = FCEntry() + self.proj_color_dis_button = QtWidgets.QPushButton() + self.proj_color_dis_button.setFixedSize(15, 15) + + self.form_box_child_13 = QtWidgets.QHBoxLayout() + self.form_box_child_13.addWidget(self.proj_color_dis_entry) + self.form_box_child_13.addWidget(self.proj_color_dis_button) + self.form_box_child_13.setAlignment(QtCore.Qt.AlignLeft | QtCore.Qt.AlignVCenter) grid0.addWidget(self.proj_color_dis_label, 31, 0) - grid0.addWidget(self.proj_color_dis_entry, 31, 1) + grid0.addLayout(self.form_box_child_13, 31, 1) # Project autohide CB self.project_autohide_cb = FCCheckBox(label=_('Project AutoHide')) @@ -309,22 +387,32 @@ class GeneralGUIPrefGroupUI(OptionsGroupUI): # Setting selection (left - right) colors signals self.sf_color_entry.editingFinished.connect(self.on_sf_color_entry) + self.sf_color_button.clicked.connect(self.on_sf_color_button) + self.sf_color_alpha_spinner.valueChanged.connect(self.on_sf_color_spinner) + self.sf_color_alpha_slider.valueChanged.connect(self.on_sf_color_slider) self.sl_color_entry.editingFinished.connect(self.on_sl_color_entry) - - self.left_right_alpha_entry.valueChanged.connect(self.on_left_right_alpha_changed) # alpha + self.sl_color_button.clicked.connect(self.on_sl_color_button) # Setting selection (right - left) colors signals self.alt_sf_color_entry.editingFinished.connect(self.on_alt_sf_color_entry) + self.alt_sf_color_button.clicked.connect(self.on_alt_sf_color_button) + self.alt_sf_color_alpha_spinner.valueChanged.connect(self.on_alt_sf_color_spinner) + self.alt_sf_color_alpha_slider.valueChanged.connect(self.on_alt_sf_color_slider) self.alt_sl_color_entry.editingFinished.connect(self.on_alt_sl_color_entry) - - self.right_left_alpha_entry.valueChanged.connect(self.on_right_left_alpha_changed) # alpha + self.alt_sl_color_button.clicked.connect(self.on_alt_sl_color_button) # Setting Editor Draw colors signals self.draw_color_entry.editingFinished.connect(self.on_draw_color_entry) + self.draw_color_button.clicked.connect(self.on_draw_color_button) + self.sel_draw_color_entry.editingFinished.connect(self.on_sel_draw_color_entry) + self.sel_draw_color_button.clicked.connect(self.on_sel_draw_color_button) self.proj_color_entry.editingFinished.connect(self.on_proj_color_entry) + self.proj_color_button.clicked.connect(self.on_proj_color_button) + self.proj_color_dis_entry.editingFinished.connect(self.on_proj_color_dis_entry) + self.proj_color_dis_button.clicked.connect(self.on_proj_color_dis_button) self.layout_combo.activated.connect(self.on_layout) @@ -349,64 +437,191 @@ class GeneralGUIPrefGroupUI(OptionsGroupUI): # Setting selection colors (left - right) handlers def on_sf_color_entry(self): self.app.defaults['global_sel_fill'] = self.app.defaults['global_sel_fill'][7:9] + self.sf_color_button.setStyleSheet("background-color:%s" % str(self.app.defaults['global_sel_fill'])[:7]) - def on_sl_color_entry(self): - self.app.defaults['global_sel_line'] = self.sl_color_entry.get_value()[:7] + \ - self.app.defaults['global_sel_line'][7:9] + def on_sf_color_button(self): + current_color = QtGui.QColor(self.app.defaults['global_sel_fill'][:7]) - def on_left_right_alpha_changed(self, spinner_value): - """ - Change the alpha level for the color of the selection box when selection is done left to right. - Called on valueChanged of a FCSliderWithSpinner. + c_dialog = QtWidgets.QColorDialog() + plot_fill_color = c_dialog.getColor(initial=current_color) - :param spinner_value: passed value within [0, 255] - :type spinner_value: int - :return: None - :rtype: - """ + if plot_fill_color.isValid() is False: + return + self.sf_color_button.setStyleSheet("background-color:%s" % str(plot_fill_color.name())) + + new_val = str(plot_fill_color.name()) + str(self.app.defaults['global_sel_fill'][7:9]) + self.sf_color_entry.set_value(new_val) + self.app.defaults['global_sel_fill'] = new_val + + def on_sf_color_spinner(self): + spinner_value = self.sf_color_alpha_spinner.value() + self.sf_color_alpha_slider.setValue(spinner_value) self.app.defaults['global_sel_fill'] = self.app.defaults['global_sel_fill'][:7] + \ (hex(spinner_value)[2:] if int(hex(spinner_value)[2:], 16) > 0 else '00') self.app.defaults['global_sel_line'] = self.app.defaults['global_sel_line'][:7] + \ (hex(spinner_value)[2:] if int(hex(spinner_value)[2:], 16) > 0 else '00') + def on_sf_color_slider(self): + slider_value = self.sf_color_alpha_slider.value() + self.sf_color_alpha_spinner.setValue(slider_value) + + def on_sl_color_entry(self): + self.app.defaults['global_sel_line'] = self.sl_color_entry.get_value()[:7] + \ + self.app.defaults['global_sel_line'][7:9] + self.sl_color_button.setStyleSheet("background-color:%s" % str(self.app.defaults['global_sel_line'])[:7]) + + def on_sl_color_button(self): + current_color = QtGui.QColor(self.app.defaults['global_sel_line'][:7]) + + c_dialog = QtWidgets.QColorDialog() + plot_line_color = c_dialog.getColor(initial=current_color) + + if plot_line_color.isValid() is False: + return + + self.sl_color_button.setStyleSheet("background-color:%s" % str(plot_line_color.name())) + + new_val_line = str(plot_line_color.name()) + str(self.app.defaults['global_sel_line'][7:9]) + self.sl_color_entry.set_value(new_val_line) + self.app.defaults['global_sel_line'] = new_val_line + # Setting selection colors (right - left) handlers def on_alt_sf_color_entry(self): self.app.defaults['global_alt_sel_fill'] = self.alt_sf_color_entry.get_value()[:7] + \ self.app.defaults['global_alt_sel_fill'][7:9] + self.alt_sf_color_button.setStyleSheet( + "background-color:%s" % str(self.app.defaults['global_alt_sel_fill'])[:7] + ) - def on_alt_sl_color_entry(self): - self.app.defaults['global_alt_sel_line'] = self.alt_sl_color_entry.get_value()[:7] + \ - self.app.defaults['global_alt_sel_line'][7:9] + def on_alt_sf_color_button(self): + current_color = QtGui.QColor(self.app.defaults['global_alt_sel_fill'][:7]) - def on_right_left_alpha_changed(self, spinner_value): - """ - Change the alpha level for the color of the selection box when selection is done right to left. - Called on valueChanged of a FCSliderWithSpinner. + c_dialog = QtWidgets.QColorDialog() + plot_fill_color = c_dialog.getColor(initial=current_color) - :param spinner_value: passed value within [0, 255] - :type spinner_value: int - :return: None - :rtype: - """ + if plot_fill_color.isValid() is False: + return + self.alt_sf_color_button.setStyleSheet("background-color:%s" % str(plot_fill_color.name())) + + new_val = str(plot_fill_color.name()) + str(self.app.defaults['global_alt_sel_fill'][7:9]) + self.alt_sf_color_entry.set_value(new_val) + self.app.defaults['global_alt_sel_fill'] = new_val + + def on_alt_sf_color_spinner(self): + spinner_value = self.alt_sf_color_alpha_spinner.value() + self.alt_sf_color_alpha_slider.setValue(spinner_value) self.app.defaults['global_alt_sel_fill'] = self.app.defaults['global_alt_sel_fill'][:7] + \ (hex(spinner_value)[2:] if int(hex(spinner_value)[2:], 16) > 0 else '00') self.app.defaults['global_alt_sel_line'] = self.app.defaults['global_alt_sel_line'][:7] + \ (hex(spinner_value)[2:] if int(hex(spinner_value)[2:], 16) > 0 else '00') + def on_alt_sf_color_slider(self): + slider_value = self.alt_sf_color_alpha_slider.value() + self.alt_sf_color_alpha_spinner.setValue(slider_value) + + def on_alt_sl_color_entry(self): + self.app.defaults['global_alt_sel_line'] = self.alt_sl_color_entry.get_value()[:7] + \ + self.app.defaults['global_alt_sel_line'][7:9] + self.alt_sl_color_button.setStyleSheet( + "background-color:%s" % str(self.app.defaults['global_alt_sel_line'])[:7] + ) + + def on_alt_sl_color_button(self): + current_color = QtGui.QColor(self.app.defaults['global_alt_sel_line'][:7]) + + c_dialog = QtWidgets.QColorDialog() + plot_line_color = c_dialog.getColor(initial=current_color) + + if plot_line_color.isValid() is False: + return + + self.alt_sl_color_button.setStyleSheet("background-color:%s" % str(plot_line_color.name())) + + new_val_line = str(plot_line_color.name()) + str(self.app.defaults['global_alt_sel_line'][7:9]) + self.alt_sl_color_entry.set_value(new_val_line) + self.app.defaults['global_alt_sel_line'] = new_val_line + # Setting Editor colors def on_draw_color_entry(self): self.app.defaults['global_draw_color'] = self.draw_color_entry.get_value() + self.draw_color_button.setStyleSheet("background-color:%s" % str(self.app.defaults['global_draw_color'])) + + def on_draw_color_button(self): + current_color = QtGui.QColor(self.app.defaults['global_draw_color']) + + c_dialog = QtWidgets.QColorDialog() + draw_color = c_dialog.getColor(initial=current_color) + + if draw_color.isValid() is False: + return + + self.draw_color_button.setStyleSheet("background-color:%s" % str(draw_color.name())) + + new_val = str(draw_color.name()) + self.draw_color_entry.set_value(new_val) + self.app.defaults['global_draw_color'] = new_val def on_sel_draw_color_entry(self): self.app.defaults['global_sel_draw_color'] = self.sel_draw_color_entry.get_value() + self.sel_draw_color_button.setStyleSheet( + "background-color:%s" % str(self.app.defaults['global_sel_draw_color'])) + + def on_sel_draw_color_button(self): + current_color = QtGui.QColor(self.app.defaults['global_sel_draw_color']) + + c_dialog = QtWidgets.QColorDialog() + sel_draw_color = c_dialog.getColor(initial=current_color) + + if sel_draw_color.isValid() is False: + return + + self.sel_draw_color_button.setStyleSheet("background-color:%s" % str(sel_draw_color.name())) + + new_val_sel = str(sel_draw_color.name()) + self.sel_draw_color_entry.set_value(new_val_sel) + self.app.defaults['global_sel_draw_color'] = new_val_sel def on_proj_color_entry(self): self.app.defaults['global_proj_item_color'] = self.proj_color_entry.get_value() + self.proj_color_button.setStyleSheet( + "background-color:%s" % str(self.app.defaults['global_proj_item_color'])) + + def on_proj_color_button(self): + current_color = QtGui.QColor(self.app.defaults['global_proj_item_color']) + + c_dialog = QtWidgets.QColorDialog() + proj_color = c_dialog.getColor(initial=current_color) + + if proj_color.isValid() is False: + return + + self.proj_color_button.setStyleSheet("background-color:%s" % str(proj_color.name())) + + new_val_sel = str(proj_color.name()) + self.proj_color_entry.set_value(new_val_sel) + self.app.defaults['global_proj_item_color'] = new_val_sel def on_proj_color_dis_entry(self): self.app.defaults['global_proj_item_dis_color'] = self.proj_color_dis_entry.get_value() + self.proj_color_dis_button.setStyleSheet( + "background-color:%s" % str(self.app.defaults['global_proj_item_dis_color'])) + + def on_proj_color_dis_button(self): + current_color = QtGui.QColor(self.app.defaults['global_proj_item_dis_color']) + + c_dialog = QtWidgets.QColorDialog() + proj_color = c_dialog.getColor(initial=current_color) + + if proj_color.isValid() is False: + return + + self.proj_color_dis_button.setStyleSheet("background-color:%s" % str(proj_color.name())) + + new_val_sel = str(proj_color.name()) + self.proj_color_dis_entry.set_value(new_val_sel) + self.app.defaults['global_proj_item_dis_color'] = new_val_sel def on_layout(self, index=None, lay=None): """ @@ -432,13 +647,14 @@ class GeneralGUIPrefGroupUI(OptionsGroupUI): # first remove the toolbars: try: self.app.ui.removeToolBar(self.app.ui.toolbarfile) - self.app.ui.removeToolBar(self.app.ui.toolbaredit) + self.app.ui.removeToolBar(self.app.ui.toolbargeo) self.app.ui.removeToolBar(self.app.ui.toolbarview) self.app.ui.removeToolBar(self.app.ui.toolbarshell) self.app.ui.removeToolBar(self.app.ui.toolbartools) self.app.ui.removeToolBar(self.app.ui.exc_edit_toolbar) self.app.ui.removeToolBar(self.app.ui.geo_edit_toolbar) self.app.ui.removeToolBar(self.app.ui.grb_edit_toolbar) + self.app.ui.removeToolBar(self.app.ui.snap_toolbar) self.app.ui.removeToolBar(self.app.ui.toolbarshell) except Exception: pass @@ -449,9 +665,9 @@ class GeneralGUIPrefGroupUI(OptionsGroupUI): self.app.ui.toolbarfile.setObjectName('File_TB') self.app.ui.addToolBar(Qt.LeftToolBarArea, self.app.ui.toolbarfile) - self.app.ui.toolbaredit = QtWidgets.QToolBar('Edit Toolbar') - self.app.ui.toolbaredit.setObjectName('Edit_TB') - self.app.ui.addToolBar(Qt.LeftToolBarArea, self.app.ui.toolbaredit) + self.app.ui.toolbargeo = QtWidgets.QToolBar('Edit Toolbar') + self.app.ui.toolbargeo.setObjectName('Edit_TB') + self.app.ui.addToolBar(Qt.LeftToolBarArea, self.app.ui.toolbargeo) self.app.ui.toolbarshell = QtWidgets.QToolBar('Shell Toolbar') self.app.ui.toolbarshell.setObjectName('Shell_TB') @@ -481,15 +697,22 @@ class GeneralGUIPrefGroupUI(OptionsGroupUI): self.app.ui.exc_edit_toolbar.setObjectName('ExcEditor_TB') self.app.ui.addToolBar(Qt.RightToolBarArea, self.app.ui.exc_edit_toolbar) + self.app.ui.snap_toolbar = QtWidgets.QToolBar('Grid Toolbar') + self.app.ui.snap_toolbar.setObjectName('Snap_TB') + self.app.ui.snap_toolbar.setMaximumHeight(30) + self.app.ui.splitter_left.addWidget(self.app.ui.snap_toolbar) + + self.app.ui.corner_snap_btn.setVisible(True) + self.app.ui.snap_magnet.setVisible(True) else: # ## TOOLBAR INSTALLATION # ## self.app.ui.toolbarfile = QtWidgets.QToolBar('File Toolbar') self.app.ui.toolbarfile.setObjectName('File_TB') self.app.ui.addToolBar(self.app.ui.toolbarfile) - self.app.ui.toolbaredit = QtWidgets.QToolBar('Edit Toolbar') - self.app.ui.toolbaredit.setObjectName('Edit_TB') - self.app.ui.addToolBar(self.app.ui.toolbaredit) + self.app.ui.toolbargeo = QtWidgets.QToolBar('Edit Toolbar') + self.app.ui.toolbargeo.setObjectName('Edit_TB') + self.app.ui.addToolBar(self.app.ui.toolbargeo) self.app.ui.toolbarview = QtWidgets.QToolBar('View Toolbar') self.app.ui.toolbarview.setObjectName('View_TB') @@ -520,9 +743,18 @@ class GeneralGUIPrefGroupUI(OptionsGroupUI): self.app.ui.grb_edit_toolbar.setObjectName('GrbEditor_TB') self.app.ui.addToolBar(self.app.ui.grb_edit_toolbar) + self.app.ui.snap_toolbar = QtWidgets.QToolBar('Grid Toolbar') + self.app.ui.snap_toolbar.setObjectName('Snap_TB') + # self.app.ui.snap_toolbar.setMaximumHeight(30) + self.app.ui.addToolBar(self.app.ui.snap_toolbar) + + self.app.ui.corner_snap_btn.setVisible(False) + self.app.ui.snap_magnet.setVisible(False) + if current_layout == 'minimal': self.app.ui.toolbarview.setVisible(False) self.app.ui.toolbarshell.setVisible(False) + self.app.ui.snap_toolbar.setVisible(False) self.app.ui.geo_edit_toolbar.setVisible(False) self.app.ui.grb_edit_toolbar.setVisible(False) self.app.ui.exc_edit_toolbar.setVisible(False) @@ -535,9 +767,7 @@ class GeneralGUIPrefGroupUI(OptionsGroupUI): self.app.connect_toolbar_signals() self.app.ui.grid_snap_btn.setChecked(True) - - self.app.ui.corner_snap_btn.setVisible(False) - self.app.ui.snap_magnet.setVisible(False) + self.app.ui.on_grid_snap_triggered(state=True) self.app.ui.grid_gap_x_entry.setText(str(self.app.defaults["global_gridx"])) self.app.ui.grid_gap_y_entry.setText(str(self.app.defaults["global_gridy"])) diff --git a/AppGUI/preferences/general/GeneralPreferencesUI.py b/flatcamGUI/preferences/general/GeneralPreferencesUI.py similarity index 80% rename from AppGUI/preferences/general/GeneralPreferencesUI.py rename to flatcamGUI/preferences/general/GeneralPreferencesUI.py index 45ccf191..46636438 100644 --- a/AppGUI/preferences/general/GeneralPreferencesUI.py +++ b/flatcamGUI/preferences/general/GeneralPreferencesUI.py @@ -1,12 +1,12 @@ from PyQt5 import QtWidgets from PyQt5.QtCore import QSettings -from AppGUI.preferences.general.GeneralAppPrefGroupUI import GeneralAppPrefGroupUI -from AppGUI.preferences.general.GeneralAPPSetGroupUI import GeneralAPPSetGroupUI -from AppGUI.preferences.general.GeneralGUIPrefGroupUI import GeneralGUIPrefGroupUI +from flatcamGUI.preferences.general.GeneralAppPrefGroupUI import GeneralAppPrefGroupUI +from flatcamGUI.preferences.general.GeneralAPPSetGroupUI import GeneralAPPSetGroupUI +from flatcamGUI.preferences.general.GeneralGUIPrefGroupUI import GeneralGUIPrefGroupUI import gettext -import AppTranslation as fcTranslate +import FlatCAMTranslation as fcTranslate import builtins fcTranslate.apply_language('strings') diff --git a/AppGUI/preferences/general/__init__.py b/flatcamGUI/preferences/general/__init__.py similarity index 100% rename from AppGUI/preferences/general/__init__.py rename to flatcamGUI/preferences/general/__init__.py diff --git a/AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py b/flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py similarity index 90% rename from AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py rename to flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py index f122186c..7ade9b90 100644 --- a/AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py +++ b/flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py @@ -1,12 +1,11 @@ from PyQt5 import QtWidgets from PyQt5.QtCore import QSettings -from AppGUI.GUIElements import FCDoubleSpinner, FCCheckBox, RadioSet, FCLabel, NumericalEvalTupleEntry, \ - NumericalEvalEntry -from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI +from flatcamGUI.GUIElements import FCEntry, FloatEntry, FCDoubleSpinner, FCCheckBox, RadioSet, FCLabel +from flatcamGUI.preferences.OptionsGroupUI import OptionsGroupUI import gettext -import AppTranslation as fcTranslate +import FlatCAMTranslation as fcTranslate import builtins fcTranslate.apply_language('strings') @@ -47,9 +46,8 @@ class GeometryAdvOptPrefGroupUI(OptionsGroupUI): toolchange_xy_label.setToolTip( _("Toolchange X,Y position.") ) - self.toolchangexy_entry = NumericalEvalTupleEntry(border_color='#0069A9') - grid1.addWidget(toolchange_xy_label, 1, 0) + self.toolchangexy_entry = FCEntry() grid1.addWidget(self.toolchangexy_entry, 1, 1) # Start move Z @@ -58,9 +56,8 @@ class GeometryAdvOptPrefGroupUI(OptionsGroupUI): _("Height of the tool just after starting the work.\n" "Delete the value if you don't need this feature.") ) - self.gstartz_entry = NumericalEvalEntry(border_color='#0069A9') - grid1.addWidget(startzlabel, 2, 0) + self.gstartz_entry = FloatEntry() grid1.addWidget(self.gstartz_entry, 2, 1) # Feedrate rapids @@ -189,11 +186,6 @@ class GeometryAdvOptPrefGroupUI(OptionsGroupUI): grid1.addWidget(segy_label, 11, 0) grid1.addWidget(self.segy_entry, 11, 1) - separator_line = QtWidgets.QFrame() - separator_line.setFrameShape(QtWidgets.QFrame.HLine) - separator_line.setFrameShadow(QtWidgets.QFrame.Sunken) - grid1.addWidget(separator_line, 12, 0, 1, 2) - # ----------------------------- # --- Area Exclusion ---------- # ----------------------------- @@ -203,10 +195,10 @@ class GeometryAdvOptPrefGroupUI(OptionsGroupUI): "Those parameters are available only for\n" "Advanced App. Level.") ) - grid1.addWidget(self.adv_label, 13, 0, 1, 2) + grid1.addWidget(self.adv_label, 12, 0, 1, 2) # Exclusion Area CB - self.exclusion_cb = FCCheckBox('%s' % _("Exclusion areas")) + self.exclusion_cb = FCCheckBox('%s:' % _("Exclusion areas")) self.exclusion_cb.setToolTip( _( "Include exclusion areas.\n" @@ -214,7 +206,7 @@ class GeometryAdvOptPrefGroupUI(OptionsGroupUI): "is forbidden." ) ) - grid1.addWidget(self.exclusion_cb, 14, 0, 1, 2) + grid1.addWidget(self.exclusion_cb, 13, 0, 1, 2) # Area Selection shape self.area_shape_label = QtWidgets.QLabel('%s:' % _("Shape")) @@ -225,8 +217,8 @@ class GeometryAdvOptPrefGroupUI(OptionsGroupUI): self.area_shape_radio = RadioSet([{'label': _("Square"), 'value': 'square'}, {'label': _("Polygon"), 'value': 'polygon'}]) - grid1.addWidget(self.area_shape_label, 15, 0) - grid1.addWidget(self.area_shape_radio, 15, 1) + grid1.addWidget(self.area_shape_label, 14, 0) + grid1.addWidget(self.area_shape_radio, 14, 1) # Chose Strategy self.strategy_label = FCLabel('%s:' % _("Strategy")) @@ -237,8 +229,8 @@ class GeometryAdvOptPrefGroupUI(OptionsGroupUI): self.strategy_radio = RadioSet([{'label': _('Over'), 'value': 'over'}, {'label': _('Around'), 'value': 'around'}]) - grid1.addWidget(self.strategy_label, 16, 0) - grid1.addWidget(self.strategy_radio, 16, 1) + grid1.addWidget(self.strategy_label, 15, 0) + grid1.addWidget(self.strategy_radio, 15, 1) # Over Z self.over_z_label = FCLabel('%s:' % _("Over Z")) diff --git a/AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py b/flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py similarity index 93% rename from AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py rename to flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py index 1ac42f42..9c5204ab 100644 --- a/AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py +++ b/flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py @@ -1,11 +1,11 @@ from PyQt5 import QtWidgets from PyQt5.QtCore import QSettings -from AppGUI.GUIElements import FCSpinner, RadioSet -from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI +from flatcamGUI.GUIElements import FCSpinner, RadioSet +from flatcamGUI.preferences.OptionsGroupUI import OptionsGroupUI import gettext -import AppTranslation as fcTranslate +import FlatCAMTranslation as fcTranslate import builtins fcTranslate.apply_language('strings') diff --git a/AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py b/flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py similarity index 67% rename from AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py rename to flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py index b958fca1..60479236 100644 --- a/AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py +++ b/flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py @@ -1,11 +1,11 @@ -from PyQt5 import QtWidgets +from PyQt5 import QtWidgets, QtCore, QtGui from PyQt5.QtCore import QSettings -from AppGUI.GUIElements import FCCheckBox, FCSpinner, FCEntry, FCColorEntry -from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI +from flatcamGUI.GUIElements import FCCheckBox, FCSpinner, FCEntry +from flatcamGUI.preferences.OptionsGroupUI import OptionsGroupUI import gettext -import AppTranslation as fcTranslate +import FlatCAMTranslation as fcTranslate import builtins fcTranslate.apply_language('strings') @@ -31,22 +31,12 @@ class GeometryGenPrefGroupUI(OptionsGroupUI): self.plot_options_label = QtWidgets.QLabel("%s:" % _("Plot Options")) self.layout.addWidget(self.plot_options_label) - plot_hlay = QtWidgets.QHBoxLayout() - self.layout.addLayout(plot_hlay) - # Plot CB self.plot_cb = FCCheckBox(label=_('Plot')) self.plot_cb.setToolTip( _("Plot (show) this object.") ) - plot_hlay.addWidget(self.plot_cb) - - # Multicolored CB - self.multicolored_cb = FCCheckBox(label=_('M-Color')) - self.multicolored_cb.setToolTip( - _("Draw polygons in different colors.") - ) - plot_hlay.addWidget(self.multicolored_cb) + self.layout.addWidget(self.plot_cb) grid0 = QtWidgets.QGridLayout() self.layout.addLayout(grid0) @@ -87,7 +77,7 @@ class GeometryGenPrefGroupUI(OptionsGroupUI): grid0.addWidget(separator_line, 9, 0, 1, 2) # Geometry Object Color - self.gerber_color_label = QtWidgets.QLabel('%s' % _('Object Color')) + self.gerber_color_label = QtWidgets.QLabel('%s' % _('Geometry Object Color')) grid0.addWidget(self.gerber_color_label, 10, 0, 1, 2) # Plot Line Color @@ -95,15 +85,39 @@ class GeometryGenPrefGroupUI(OptionsGroupUI): self.line_color_label.setToolTip( _("Set the line color for plotted objects.") ) - self.line_color_entry = FCColorEntry() + self.line_color_entry = FCEntry() + self.line_color_button = QtWidgets.QPushButton() + self.line_color_button.setFixedSize(15, 15) + + self.form_box_child_2 = QtWidgets.QHBoxLayout() + self.form_box_child_2.addWidget(self.line_color_entry) + self.form_box_child_2.addWidget(self.line_color_button) + self.form_box_child_2.setAlignment(QtCore.Qt.AlignLeft | QtCore.Qt.AlignVCenter) grid0.addWidget(self.line_color_label, 11, 0) - grid0.addWidget(self.line_color_entry, 11, 1) + grid0.addLayout(self.form_box_child_2, 11, 1) self.layout.addStretch() # Setting plot colors signals self.line_color_entry.editingFinished.connect(self.on_line_color_entry) + self.line_color_button.clicked.connect(self.on_line_color_button) def on_line_color_entry(self): self.app.defaults['geometry_plot_line'] = self.line_color_entry.get_value()[:7] + 'FF' + self.line_color_button.setStyleSheet("background-color:%s" % str(self.app.defaults['geometry_plot_line'])[:7]) + + def on_line_color_button(self): + current_color = QtGui.QColor(self.app.defaults['geometry_plot_line'][:7]) + # print(current_color) + + c_dialog = QtWidgets.QColorDialog() + plot_line_color = c_dialog.getColor(initial=current_color) + + if plot_line_color.isValid() is False: + return + + self.line_color_button.setStyleSheet("background-color:%s" % str(plot_line_color.name())) + + new_val_line = str(plot_line_color.name()) + str(self.app.defaults['geometry_plot_line'][7:9]) + self.line_color_entry.set_value(new_val_line) diff --git a/AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py b/flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py similarity index 96% rename from AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py rename to flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py index ebbe0c34..c2e0f6e2 100644 --- a/AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py +++ b/flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py @@ -1,13 +1,12 @@ from PyQt5 import QtWidgets from PyQt5.QtCore import Qt, QSettings -from AppGUI.GUIElements import FCDoubleSpinner, FCCheckBox, OptionalInputSection, FCSpinner, FCComboBox, \ - NumericalEvalTupleEntry -from AppGUI.preferences import machinist_setting -from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI +from flatcamGUI.GUIElements import FCDoubleSpinner, FCCheckBox, OptionalInputSection, FCEntry, FCSpinner, FCComboBox +from flatcamGUI.preferences import machinist_setting +from flatcamGUI.preferences.OptionsGroupUI import OptionsGroupUI import gettext -import AppTranslation as fcTranslate +import FlatCAMTranslation as fcTranslate import builtins fcTranslate.apply_language('strings') @@ -177,7 +176,7 @@ class GeometryOptPrefGroupUI(OptionsGroupUI): "If no value is entered then there is no move\n" "on X,Y plane at the end of the job.") ) - self.endxy_entry = NumericalEvalTupleEntry(border_color='#0069A9') + self.endxy_entry = FCEntry() grid1.addWidget(endmove_xy_label, 7, 0) grid1.addWidget(self.endxy_entry, 7, 1) diff --git a/AppGUI/preferences/geometry/GeometryPreferencesUI.py b/flatcamGUI/preferences/geometry/GeometryPreferencesUI.py similarity index 77% rename from AppGUI/preferences/geometry/GeometryPreferencesUI.py rename to flatcamGUI/preferences/geometry/GeometryPreferencesUI.py index fd1709ef..cf906d61 100644 --- a/AppGUI/preferences/geometry/GeometryPreferencesUI.py +++ b/flatcamGUI/preferences/geometry/GeometryPreferencesUI.py @@ -1,13 +1,13 @@ from PyQt5 import QtWidgets from PyQt5.QtCore import QSettings -from AppGUI.preferences.geometry.GeometryEditorPrefGroupUI import GeometryEditorPrefGroupUI -from AppGUI.preferences.geometry.GeometryAdvOptPrefGroupUI import GeometryAdvOptPrefGroupUI -from AppGUI.preferences.geometry.GeometryOptPrefGroupUI import GeometryOptPrefGroupUI -from AppGUI.preferences.geometry.GeometryGenPrefGroupUI import GeometryGenPrefGroupUI +from flatcamGUI.preferences.geometry.GeometryEditorPrefGroupUI import GeometryEditorPrefGroupUI +from flatcamGUI.preferences.geometry.GeometryAdvOptPrefGroupUI import GeometryAdvOptPrefGroupUI +from flatcamGUI.preferences.geometry.GeometryOptPrefGroupUI import GeometryOptPrefGroupUI +from flatcamGUI.preferences.geometry.GeometryGenPrefGroupUI import GeometryGenPrefGroupUI import gettext -import AppTranslation as fcTranslate +import FlatCAMTranslation as fcTranslate import builtins fcTranslate.apply_language('strings') diff --git a/AppGUI/preferences/geometry/__init__.py b/flatcamGUI/preferences/geometry/__init__.py similarity index 100% rename from AppGUI/preferences/geometry/__init__.py rename to flatcamGUI/preferences/geometry/__init__.py diff --git a/AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py b/flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py similarity index 52% rename from AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py rename to flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py index 7080b81d..20376bfd 100644 --- a/AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py +++ b/flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py @@ -1,11 +1,11 @@ from PyQt5 import QtWidgets from PyQt5.QtCore import QSettings -from AppGUI.GUIElements import FCCheckBox, RadioSet, FCDoubleSpinner, FCSpinner, OptionalInputSection -from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI +from flatcamGUI.GUIElements import FCCheckBox, RadioSet, FCDoubleSpinner, FCSpinner, OptionalInputSection +from flatcamGUI.preferences.OptionsGroupUI import OptionsGroupUI import gettext -import AppTranslation as fcTranslate +import FlatCAMTranslation as fcTranslate import builtins fcTranslate.apply_language('strings') @@ -63,6 +63,85 @@ class GerberAdvOptPrefGroupUI(OptionsGroupUI): separator_line.setFrameShadow(QtWidgets.QFrame.Sunken) grid0.addWidget(separator_line, 2, 0, 1, 2) + # Tool Type + self.tool_type_label = QtWidgets.QLabel('%s' % _('Tool Type')) + self.tool_type_label.setToolTip( + _("Choose which tool to use for Gerber isolation:\n" + "'Circular' or 'V-shape'.\n" + "When the 'V-shape' is selected then the tool\n" + "diameter will depend on the chosen cut depth.") + ) + self.tool_type_radio = RadioSet([{'label': 'Circular', 'value': 'circular'}, + {'label': 'V-Shape', 'value': 'v'}]) + + grid0.addWidget(self.tool_type_label, 3, 0) + grid0.addWidget(self.tool_type_radio, 3, 1, 1, 2) + + # Tip Dia + self.tipdialabel = QtWidgets.QLabel('%s:' % _('V-Tip Dia')) + self.tipdialabel.setToolTip( + _("The tip diameter for V-Shape Tool") + ) + self.tipdia_spinner = FCDoubleSpinner() + self.tipdia_spinner.set_precision(self.decimals) + self.tipdia_spinner.set_range(-99.9999, 99.9999) + self.tipdia_spinner.setSingleStep(0.1) + self.tipdia_spinner.setWrapping(True) + grid0.addWidget(self.tipdialabel, 4, 0) + grid0.addWidget(self.tipdia_spinner, 4, 1, 1, 2) + + # Tip Angle + self.tipanglelabel = QtWidgets.QLabel('%s:' % _('V-Tip Angle')) + self.tipanglelabel.setToolTip( + _("The tip angle for V-Shape Tool.\n" + "In degree.") + ) + self.tipangle_spinner = FCSpinner() + self.tipangle_spinner.set_range(1, 180) + self.tipangle_spinner.set_step(5) + self.tipangle_spinner.setWrapping(True) + grid0.addWidget(self.tipanglelabel, 5, 0) + grid0.addWidget(self.tipangle_spinner, 5, 1, 1, 2) + + # Cut Z + self.cutzlabel = QtWidgets.QLabel('%s:' % _('Cut Z')) + self.cutzlabel.setToolTip( + _("Cutting depth (negative)\n" + "below the copper surface.") + ) + self.cutz_spinner = FCDoubleSpinner() + self.cutz_spinner.set_precision(self.decimals) + self.cutz_spinner.set_range(-99.9999, 0.0000) + self.cutz_spinner.setSingleStep(0.1) + self.cutz_spinner.setWrapping(True) + + grid0.addWidget(self.cutzlabel, 6, 0) + grid0.addWidget(self.cutz_spinner, 6, 1, 1, 2) + + # Isolation Type + self.iso_type_label = QtWidgets.QLabel('%s:' % _('Isolation Type')) + self.iso_type_label.setToolTip( + _("Choose how the isolation will be executed:\n" + "- 'Full' -> complete isolation of polygons\n" + "- 'Ext' -> will isolate only on the outside\n" + "- 'Int' -> will isolate only on the inside\n" + "'Exterior' isolation is almost always possible\n" + "(with the right tool) but 'Interior'\n" + "isolation can be done only when there is an opening\n" + "inside of the polygon (e.g polygon is a 'doughnut' shape).") + ) + self.iso_type_radio = RadioSet([{'label': _('Full'), 'value': 'full'}, + {'label': _('Exterior'), 'value': 'ext'}, + {'label': _('Interior'), 'value': 'int'}]) + + grid0.addWidget(self.iso_type_label, 7, 0,) + grid0.addWidget(self.iso_type_radio, 7, 1, 1, 2) + + separator_line = QtWidgets.QFrame() + separator_line.setFrameShape(QtWidgets.QFrame.HLine) + separator_line.setFrameShadow(QtWidgets.QFrame.Sunken) + grid0.addWidget(separator_line, 8, 0, 1, 2) + # Buffering Type buffering_label = QtWidgets.QLabel('%s:' % _('Buffering')) buffering_label.setToolTip( diff --git a/AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py b/flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py similarity index 97% rename from AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py rename to flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py index aee22e96..3ba0da99 100644 --- a/AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py +++ b/flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py @@ -1,11 +1,11 @@ from PyQt5 import QtWidgets from PyQt5.QtCore import QSettings -from AppGUI.GUIElements import FCSpinner, FCDoubleSpinner, FCComboBox, FCEntry, RadioSet, NumericalEvalTupleEntry -from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI +from flatcamGUI.GUIElements import FCSpinner, FCDoubleSpinner, FCComboBox, FCEntry, RadioSet +from flatcamGUI.preferences.OptionsGroupUI import OptionsGroupUI import gettext -import AppTranslation as fcTranslate +import FlatCAMTranslation as fcTranslate import builtins fcTranslate.apply_language('strings') @@ -109,9 +109,8 @@ class GerberEditorPrefGroupUI(OptionsGroupUI): "The value of the diameter has to use the dot decimals separator.\n" "Valid values: 0.3, 1.0") ) - self.adddim_entry = NumericalEvalTupleEntry(border_color='#0069A9') - grid0.addWidget(self.adddim_label, 5, 0) + self.adddim_entry = FCEntry() grid0.addWidget(self.adddim_entry, 5, 1) self.grb_array_linear_label = QtWidgets.QLabel('%s:' % _('Linear Pad Array')) diff --git a/AppGUI/preferences/gerber/GerberExpPrefGroupUI.py b/flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py similarity index 96% rename from AppGUI/preferences/gerber/GerberExpPrefGroupUI.py rename to flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py index edd41b45..01729dc5 100644 --- a/AppGUI/preferences/gerber/GerberExpPrefGroupUI.py +++ b/flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py @@ -1,11 +1,11 @@ from PyQt5 import QtWidgets, QtCore from PyQt5.QtCore import QSettings -from AppGUI.GUIElements import RadioSet, FCSpinner -from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI +from flatcamGUI.GUIElements import RadioSet, FCSpinner +from flatcamGUI.preferences.OptionsGroupUI import OptionsGroupUI import gettext -import AppTranslation as fcTranslate +import FlatCAMTranslation as fcTranslate import builtins fcTranslate.apply_language('strings') diff --git a/AppGUI/preferences/gerber/GerberGenPrefGroupUI.py b/flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py similarity index 57% rename from AppGUI/preferences/gerber/GerberGenPrefGroupUI.py rename to flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py index da893c53..6f52fe45 100644 --- a/AppGUI/preferences/gerber/GerberGenPrefGroupUI.py +++ b/flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py @@ -1,11 +1,11 @@ from PyQt5 import QtWidgets, QtCore, QtGui from PyQt5.QtCore import QSettings -from AppGUI.GUIElements import FCCheckBox, FCSpinner, RadioSet, FCEntry, FCSliderWithSpinner, FCColorEntry -from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI +from flatcamGUI.GUIElements import FCCheckBox, FCSpinner, RadioSet, FCEntry +from flatcamGUI.preferences.OptionsGroupUI import OptionsGroupUI import gettext -import AppTranslation as fcTranslate +import FlatCAMTranslation as fcTranslate import builtins fcTranslate.apply_language('strings') @@ -34,26 +34,26 @@ class GerberGenPrefGroupUI(OptionsGroupUI): grid0 = QtWidgets.QGridLayout() self.layout.addLayout(grid0) - # Plot CB - self.plot_cb = FCCheckBox(label='%s' % _('Plot')) - self.plot_options_label.setToolTip( - _("Plot (show) this object.") - ) - grid0.addWidget(self.plot_cb, 0, 0) - # Solid CB self.solid_cb = FCCheckBox(label='%s' % _('Solid')) self.solid_cb.setToolTip( _("Solid color polygons.") ) - grid0.addWidget(self.solid_cb, 0, 1) + grid0.addWidget(self.solid_cb, 0, 0) # Multicolored CB self.multicolored_cb = FCCheckBox(label='%s' % _('M-Color')) self.multicolored_cb.setToolTip( _("Draw polygons in different colors.") ) - grid0.addWidget(self.multicolored_cb, 0, 2) + grid0.addWidget(self.multicolored_cb, 0, 1) + + # Plot CB + self.plot_cb = FCCheckBox(label='%s' % _('Plot')) + self.plot_options_label.setToolTip( + _("Plot (show) this object.") + ) + grid0.addWidget(self.plot_cb, 0, 2) # Number of circle steps for circular aperture linear approximation self.circle_steps_label = QtWidgets.QLabel('%s:' % _("Circle Steps")) @@ -146,55 +146,100 @@ class GerberGenPrefGroupUI(OptionsGroupUI): grid0.addWidget(separator_line, 9, 0, 1, 3) # Gerber Object Color - self.gerber_color_label = QtWidgets.QLabel('%s' % _('Object Color')) + self.gerber_color_label = QtWidgets.QLabel('%s' % _('Gerber Object Color')) grid0.addWidget(self.gerber_color_label, 10, 0, 1, 3) # Plot Line Color - self.line_color_label = QtWidgets.QLabel('%s:' % _('Outline')) - self.line_color_label.setToolTip( + self.pl_color_label = QtWidgets.QLabel('%s:' % _('Outline')) + self.pl_color_label.setToolTip( _("Set the line color for plotted objects.") ) - self.line_color_entry = FCColorEntry() + self.pl_color_entry = FCEntry() + self.pl_color_button = QtWidgets.QPushButton() + self.pl_color_button.setFixedSize(15, 15) - grid0.addWidget(self.line_color_label, 11, 0) - grid0.addWidget(self.line_color_entry, 11, 1, 1, 2) + self.form_box_child_2 = QtWidgets.QHBoxLayout() + self.form_box_child_2.addWidget(self.pl_color_entry) + self.form_box_child_2.addWidget(self.pl_color_button) + self.form_box_child_2.setAlignment(QtCore.Qt.AlignLeft | QtCore.Qt.AlignVCenter) + + grid0.addWidget(self.pl_color_label, 11, 0) + grid0.addLayout(self.form_box_child_2, 11, 1, 1, 2) # Plot Fill Color - self.fill_color_label = QtWidgets.QLabel('%s:' % _('Fill')) - self.fill_color_label.setToolTip( + self.pf_color_label = QtWidgets.QLabel('%s:' % _('Fill')) + self.pf_color_label.setToolTip( _("Set the fill color for plotted objects.\n" "First 6 digits are the color and the last 2\n" "digits are for alpha (transparency) level.") ) - self.fill_color_entry = FCColorEntry() + self.pf_color_entry = FCEntry() + self.pf_color_button = QtWidgets.QPushButton() + self.pf_color_button.setFixedSize(15, 15) - grid0.addWidget(self.fill_color_label, 12, 0) - grid0.addWidget(self.fill_color_entry, 12, 1, 1, 2) + self.form_box_child_1 = QtWidgets.QHBoxLayout() + self.form_box_child_1.addWidget(self.pf_color_entry) + self.form_box_child_1.addWidget(self.pf_color_button) + self.form_box_child_1.setAlignment(QtCore.Qt.AlignLeft | QtCore.Qt.AlignVCenter) + + grid0.addWidget(self.pf_color_label, 12, 0) + grid0.addLayout(self.form_box_child_1, 12, 1, 1, 2) # Plot Fill Transparency Level - self.gerber_alpha_label = QtWidgets.QLabel('%s:' % _('Alpha')) - self.gerber_alpha_label.setToolTip( + self.pf_alpha_label = QtWidgets.QLabel('%s:' % _('Alpha')) + self.pf_alpha_label.setToolTip( _("Set the fill transparency for plotted objects.") ) - self.gerber_alpha_entry = FCSliderWithSpinner(0, 255, 1) + self.pf_color_alpha_slider = QtWidgets.QSlider(QtCore.Qt.Horizontal) + self.pf_color_alpha_slider.setMinimum(0) + self.pf_color_alpha_slider.setMaximum(255) + self.pf_color_alpha_slider.setSingleStep(1) - grid0.addWidget(self.gerber_alpha_label, 13, 0) - grid0.addWidget(self.gerber_alpha_entry, 13, 1, 1, 2) + self.pf_color_alpha_spinner = FCSpinner() + self.pf_color_alpha_spinner.setMinimumWidth(70) + self.pf_color_alpha_spinner.set_range(0, 255) + + self.form_box_child_3 = QtWidgets.QHBoxLayout() + self.form_box_child_3.addWidget(self.pf_color_alpha_slider) + self.form_box_child_3.addWidget(self.pf_color_alpha_spinner) + + grid0.addWidget(self.pf_alpha_label, 13, 0) + grid0.addLayout(self.form_box_child_3, 13, 1, 1, 2) self.layout.addStretch() # Setting plot colors signals - self.line_color_entry.editingFinished.connect(self.on_line_color_changed) - self.fill_color_entry.editingFinished.connect(self.on_fill_color_changed) - - self.gerber_alpha_entry.valueChanged.connect(self.on_gerber_alpha_changed) # alpha + self.pl_color_entry.editingFinished.connect(self.on_pl_color_entry) + self.pl_color_button.clicked.connect(self.on_pl_color_button) + self.pf_color_entry.editingFinished.connect(self.on_pf_color_entry) + self.pf_color_button.clicked.connect(self.on_pf_color_button) + self.pf_color_alpha_spinner.valueChanged.connect(self.on_pf_color_spinner) + self.pf_color_alpha_slider.valueChanged.connect(self.on_pf_color_slider) # Setting plot colors handlers - def on_fill_color_changed(self): - self.app.defaults['gerber_plot_fill'] = self.fill_color_entry.get_value()[:7] + \ - self.app.defaults['gerber_plot_fill'][7:9] + def on_pf_color_entry(self): + self.app.defaults['gerber_plot_fill'] = self.pf_color_entry.get_value()[:7] + \ + self.app.defaults['gerber_plot_fill'][7:9] + self.pf_color_button.setStyleSheet("background-color:%s" % str(self.app.defaults['gerber_plot_fill'])[:7]) - def on_gerber_alpha_changed(self, spinner_value): + def on_pf_color_button(self): + current_color = QtGui.QColor(self.app.defaults['gerber_plot_fill'][:7]) + + c_dialog = QtWidgets.QColorDialog() + plot_fill_color = c_dialog.getColor(initial=current_color) + + if plot_fill_color.isValid() is False: + return + + self.pf_color_button.setStyleSheet("background-color:%s" % str(plot_fill_color.name())) + + new_val = str(plot_fill_color.name()) + str(self.app.defaults['gerber_plot_fill'][7:9]) + self.pf_color_entry.set_value(new_val) + self.app.defaults['gerber_plot_fill'] = new_val + + def on_pf_color_spinner(self): + spinner_value = self.pf_color_alpha_spinner.value() + self.pf_color_alpha_slider.setValue(spinner_value) self.app.defaults['gerber_plot_fill'] = \ self.app.defaults['gerber_plot_fill'][:7] + \ (hex(spinner_value)[2:] if int(hex(spinner_value)[2:], 16) > 0 else '00') @@ -202,6 +247,27 @@ class GerberGenPrefGroupUI(OptionsGroupUI): self.app.defaults['gerber_plot_line'][:7] + \ (hex(spinner_value)[2:] if int(hex(spinner_value)[2:], 16) > 0 else '00') - def on_line_color_changed(self): - self.app.defaults['gerber_plot_line'] = self.line_color_entry.get_value()[:7] + \ + def on_pf_color_slider(self): + slider_value = self.pf_color_alpha_slider.value() + self.pf_color_alpha_spinner.setValue(slider_value) + + def on_pl_color_entry(self): + self.app.defaults['gerber_plot_line'] = self.pl_color_entry.get_value()[:7] + \ self.app.defaults['gerber_plot_line'][7:9] + self.pl_color_button.setStyleSheet("background-color:%s" % str(self.app.defaults['gerber_plot_line'])[:7]) + + def on_pl_color_button(self): + current_color = QtGui.QColor(self.app.defaults['gerber_plot_line'][:7]) + # print(current_color) + + c_dialog = QtWidgets.QColorDialog() + plot_line_color = c_dialog.getColor(initial=current_color) + + if plot_line_color.isValid() is False: + return + + self.pl_color_button.setStyleSheet("background-color:%s" % str(plot_line_color.name())) + + new_val_line = str(plot_line_color.name()) + str(self.app.defaults['gerber_plot_line'][7:9]) + self.pl_color_entry.set_value(new_val_line) + self.app.defaults['gerber_plot_line'] = new_val_line diff --git a/flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py b/flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py new file mode 100644 index 00000000..404f17ba --- /dev/null +++ b/flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py @@ -0,0 +1,187 @@ +from PyQt5 import QtWidgets +from PyQt5.QtCore import QSettings + +from flatcamGUI.GUIElements import FCDoubleSpinner, FCSpinner, RadioSet, FCCheckBox +from flatcamGUI.preferences.OptionsGroupUI import OptionsGroupUI + +import gettext +import FlatCAMTranslation as fcTranslate +import builtins + +fcTranslate.apply_language('strings') +if '_' not in builtins.__dict__: + _ = gettext.gettext + +settings = QSettings("Open Source", "FlatCAM") +if settings.contains("machinist"): + machinist_setting = settings.value('machinist', type=int) +else: + machinist_setting = 0 + + +class GerberOptPrefGroupUI(OptionsGroupUI): + def __init__(self, decimals=4, parent=None): + # OptionsGroupUI.__init__(self, "Gerber Options Preferences", parent=parent) + super(GerberOptPrefGroupUI, self).__init__(self, parent=parent) + + self.decimals = decimals + + self.setTitle(str(_("Gerber Options"))) + + # ## Isolation Routing + self.isolation_routing_label = QtWidgets.QLabel("%s:" % _("Isolation Routing")) + self.isolation_routing_label.setToolTip( + _("Create a Geometry object with\n" + "toolpaths to cut outside polygons.") + ) + self.layout.addWidget(self.isolation_routing_label) + + # Cutting Tool Diameter + grid0 = QtWidgets.QGridLayout() + self.layout.addLayout(grid0) + + tdlabel = QtWidgets.QLabel('%s:' % _('Tool dia')) + tdlabel.setToolTip( + _("Diameter of the cutting tool.") + ) + grid0.addWidget(tdlabel, 0, 0) + self.iso_tool_dia_entry = FCDoubleSpinner() + self.iso_tool_dia_entry.set_precision(self.decimals) + self.iso_tool_dia_entry.setSingleStep(0.1) + self.iso_tool_dia_entry.set_range(-9999, 9999) + + grid0.addWidget(self.iso_tool_dia_entry, 0, 1) + + # Nr of passes + passlabel = QtWidgets.QLabel('%s:' % _('# Passes')) + passlabel.setToolTip( + _("Width of the isolation gap in\n" + "number (integer) of tool widths.") + ) + self.iso_width_entry = FCSpinner() + self.iso_width_entry.set_range(1, 999) + + grid0.addWidget(passlabel, 1, 0) + grid0.addWidget(self.iso_width_entry, 1, 1) + + # Pass overlap + overlabel = QtWidgets.QLabel('%s:' % _('Pass overlap')) + overlabel.setToolTip( + _("How much (percentage) of the tool width to overlap each tool pass.") + ) + self.iso_overlap_entry = FCDoubleSpinner(suffix='%') + self.iso_overlap_entry.set_precision(self.decimals) + self.iso_overlap_entry.setWrapping(True) + self.iso_overlap_entry.setRange(0.0000, 99.9999) + self.iso_overlap_entry.setSingleStep(0.1) + + grid0.addWidget(overlabel, 2, 0) + grid0.addWidget(self.iso_overlap_entry, 2, 1) + + # Isolation Scope + self.iso_scope_label = QtWidgets.QLabel('%s:' % _('Scope')) + self.iso_scope_label.setToolTip( + _("Isolation scope. Choose what to isolate:\n" + "- 'All' -> Isolate all the polygons in the object\n" + "- 'Selection' -> Isolate a selection of polygons.") + ) + self.iso_scope_radio = RadioSet([{'label': _('All'), 'value': 'all'}, + {'label': _('Selection'), 'value': 'single'}]) + + grid0.addWidget(self.iso_scope_label, 3, 0) + grid0.addWidget(self.iso_scope_radio, 3, 1, 1, 2) + + # Milling Type + milling_type_label = QtWidgets.QLabel('%s:' % _('Milling Type')) + milling_type_label.setToolTip( + _("Milling type:\n" + "- climb / best for precision milling and to reduce tool usage\n" + "- conventional / useful when there is no backlash compensation") + ) + grid0.addWidget(milling_type_label, 4, 0) + self.milling_type_radio = RadioSet([{'label': _('Climb'), 'value': 'cl'}, + {'label': _('Conventional'), 'value': 'cv'}]) + grid0.addWidget(self.milling_type_radio, 4, 1) + + # Combine passes + self.combine_passes_cb = FCCheckBox(label=_('Combine Passes')) + self.combine_passes_cb.setToolTip( + _("Combine all passes into one object") + ) + grid0.addWidget(self.combine_passes_cb, 5, 0, 1, 2) + + separator_line = QtWidgets.QFrame() + separator_line.setFrameShape(QtWidgets.QFrame.HLine) + separator_line.setFrameShadow(QtWidgets.QFrame.Sunken) + grid0.addWidget(separator_line, 6, 0, 1, 2) + + # ## Clear non-copper regions + self.clearcopper_label = QtWidgets.QLabel("%s:" % _("Non-copper regions")) + self.clearcopper_label.setToolTip( + _("Create polygons covering the\n" + "areas without copper on the PCB.\n" + "Equivalent to the inverse of this\n" + "object. Can be used to remove all\n" + "copper from a specified region.") + ) + self.layout.addWidget(self.clearcopper_label) + + grid1 = QtWidgets.QGridLayout() + self.layout.addLayout(grid1) + + # Margin + bmlabel = QtWidgets.QLabel('%s:' % _('Boundary Margin')) + bmlabel.setToolTip( + _("Specify the edge of the PCB\n" + "by drawing a box around all\n" + "objects with this minimum\n" + "distance.") + ) + grid1.addWidget(bmlabel, 0, 0) + self.noncopper_margin_entry = FCDoubleSpinner() + self.noncopper_margin_entry.set_precision(self.decimals) + self.noncopper_margin_entry.setSingleStep(0.1) + self.noncopper_margin_entry.set_range(-9999, 9999) + grid1.addWidget(self.noncopper_margin_entry, 0, 1) + + # Rounded corners + self.noncopper_rounded_cb = FCCheckBox(label=_("Rounded Geo")) + self.noncopper_rounded_cb.setToolTip( + _("Resulting geometry will have rounded corners.") + ) + grid1.addWidget(self.noncopper_rounded_cb, 1, 0, 1, 2) + + separator_line = QtWidgets.QFrame() + separator_line.setFrameShape(QtWidgets.QFrame.HLine) + separator_line.setFrameShadow(QtWidgets.QFrame.Sunken) + grid1.addWidget(separator_line, 2, 0, 1, 2) + + # ## Bounding box + self.boundingbox_label = QtWidgets.QLabel('%s:' % _('Bounding Box')) + self.layout.addWidget(self.boundingbox_label) + + grid2 = QtWidgets.QGridLayout() + self.layout.addLayout(grid2) + + bbmargin = QtWidgets.QLabel('%s:' % _('Boundary Margin')) + bbmargin.setToolTip( + _("Distance of the edges of the box\n" + "to the nearest polygon.") + ) + self.bbmargin_entry = FCDoubleSpinner() + self.bbmargin_entry.set_precision(self.decimals) + self.bbmargin_entry.setSingleStep(0.1) + self.bbmargin_entry.set_range(-9999, 9999) + + grid2.addWidget(bbmargin, 0, 0) + grid2.addWidget(self.bbmargin_entry, 0, 1) + + self.bbrounded_cb = FCCheckBox(label='%s' % _("Rounded Geo")) + self.bbrounded_cb.setToolTip( + _("If the bounding box is \n" + "to have rounded corners\n" + "their radius is equal to\n" + "the margin.") + ) + grid2.addWidget(self.bbrounded_cb, 1, 0, 1, 2) + self.layout.addStretch() diff --git a/AppGUI/preferences/gerber/GerberPreferencesUI.py b/flatcamGUI/preferences/gerber/GerberPreferencesUI.py similarity index 77% rename from AppGUI/preferences/gerber/GerberPreferencesUI.py rename to flatcamGUI/preferences/gerber/GerberPreferencesUI.py index cee2a54c..f9d9f8aa 100644 --- a/AppGUI/preferences/gerber/GerberPreferencesUI.py +++ b/flatcamGUI/preferences/gerber/GerberPreferencesUI.py @@ -1,14 +1,14 @@ from PyQt5 import QtWidgets from PyQt5.QtCore import QSettings -from AppGUI.preferences.gerber.GerberEditorPrefGroupUI import GerberEditorPrefGroupUI -from AppGUI.preferences.gerber.GerberExpPrefGroupUI import GerberExpPrefGroupUI -from AppGUI.preferences.gerber.GerberAdvOptPrefGroupUI import GerberAdvOptPrefGroupUI -from AppGUI.preferences.gerber.GerberOptPrefGroupUI import GerberOptPrefGroupUI -from AppGUI.preferences.gerber.GerberGenPrefGroupUI import GerberGenPrefGroupUI +from flatcamGUI.preferences.gerber.GerberEditorPrefGroupUI import GerberEditorPrefGroupUI +from flatcamGUI.preferences.gerber.GerberExpPrefGroupUI import GerberExpPrefGroupUI +from flatcamGUI.preferences.gerber.GerberAdvOptPrefGroupUI import GerberAdvOptPrefGroupUI +from flatcamGUI.preferences.gerber.GerberOptPrefGroupUI import GerberOptPrefGroupUI +from flatcamGUI.preferences.gerber.GerberGenPrefGroupUI import GerberGenPrefGroupUI import gettext -import AppTranslation as fcTranslate +import FlatCAMTranslation as fcTranslate import builtins fcTranslate.apply_language('strings') @@ -44,7 +44,6 @@ class GerberPreferencesUI(QtWidgets.QWidget): self.vlay = QtWidgets.QVBoxLayout() self.vlay.addWidget(self.gerber_opt_group) self.vlay.addWidget(self.gerber_exp_group) - self.vlay.addStretch() self.layout.addWidget(self.gerber_gen_group) self.layout.addLayout(self.vlay) diff --git a/AppGUI/preferences/gerber/__init__.py b/flatcamGUI/preferences/gerber/__init__.py similarity index 100% rename from AppGUI/preferences/gerber/__init__.py rename to flatcamGUI/preferences/gerber/__init__.py diff --git a/AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py b/flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py similarity index 98% rename from AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py rename to flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py index 7ec00a3c..a3b6c0c2 100644 --- a/AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py +++ b/flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py @@ -1,11 +1,11 @@ from PyQt5 import QtWidgets from PyQt5.QtCore import QSettings -from AppGUI.GUIElements import FCSpinner, FCDoubleSpinner, RadioSet -from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI +from flatcamGUI.GUIElements import FCSpinner, FCDoubleSpinner, RadioSet +from flatcamGUI.preferences.OptionsGroupUI import OptionsGroupUI import gettext -import AppTranslation as fcTranslate +import FlatCAMTranslation as fcTranslate import builtins fcTranslate.apply_language('strings') diff --git a/AppGUI/preferences/tools/Tools2CalPrefGroupUI.py b/flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py similarity index 94% rename from AppGUI/preferences/tools/Tools2CalPrefGroupUI.py rename to flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py index 04d54387..35b6fb1d 100644 --- a/AppGUI/preferences/tools/Tools2CalPrefGroupUI.py +++ b/flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py @@ -1,11 +1,11 @@ from PyQt5 import QtWidgets from PyQt5.QtCore import QSettings -from AppGUI.GUIElements import RadioSet, FCDoubleSpinner, FCCheckBox, NumericalEvalTupleEntry -from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI +from flatcamGUI.GUIElements import RadioSet, FCDoubleSpinner, FCCheckBox, FCEntry +from flatcamGUI.preferences.OptionsGroupUI import OptionsGroupUI import gettext -import AppTranslation as fcTranslate +import FlatCAMTranslation as fcTranslate import builtins fcTranslate.apply_language('strings') @@ -116,7 +116,7 @@ class Tools2CalPrefGroupUI(OptionsGroupUI): "(x, y) point will be used,") ) - self.toolchange_xy_entry = NumericalEvalTupleEntry(border_color='#0069A9') + self.toolchange_xy_entry = FCEntry() grid_lay.addWidget(toolchangexy_lbl, 7, 0) grid_lay.addWidget(self.toolchange_xy_entry, 7, 1, 1, 2) diff --git a/AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py b/flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py similarity index 97% rename from AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py rename to flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py index 410bb655..89a104ea 100644 --- a/AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py +++ b/flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py @@ -1,11 +1,11 @@ from PyQt5 import QtWidgets from PyQt5.QtCore import QSettings -from AppGUI.GUIElements import FCCheckBox, RadioSet, FCDoubleSpinner -from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI +from flatcamGUI.GUIElements import FCCheckBox, RadioSet, FCDoubleSpinner +from flatcamGUI.preferences.OptionsGroupUI import OptionsGroupUI import gettext -import AppTranslation as fcTranslate +import FlatCAMTranslation as fcTranslate import builtins fcTranslate.apply_language('strings') diff --git a/AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py b/flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py similarity index 96% rename from AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py rename to flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py index 77ff939c..32b5fdfe 100644 --- a/AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py +++ b/flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py @@ -1,11 +1,11 @@ from PyQt5 import QtWidgets from PyQt5.QtCore import QSettings -from AppGUI.GUIElements import FCDoubleSpinner, RadioSet -from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI +from flatcamGUI.GUIElements import FCDoubleSpinner, RadioSet +from flatcamGUI.preferences.OptionsGroupUI import OptionsGroupUI import gettext -import AppTranslation as fcTranslate +import FlatCAMTranslation as fcTranslate import builtins fcTranslate.apply_language('strings') diff --git a/AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py b/flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py similarity index 93% rename from AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py rename to flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py index f7bb9f17..a063fb32 100644 --- a/AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py +++ b/flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py @@ -1,11 +1,11 @@ from PyQt5 import QtWidgets from PyQt5.QtCore import QSettings -from AppGUI.GUIElements import FCDoubleSpinner, RadioSet -from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI +from flatcamGUI.GUIElements import FCDoubleSpinner, RadioSet +from flatcamGUI.preferences.OptionsGroupUI import OptionsGroupUI import gettext -import AppTranslation as fcTranslate +import FlatCAMTranslation as fcTranslate import builtins fcTranslate.apply_language('strings') diff --git a/AppGUI/preferences/tools/Tools2OptimalPrefGroupUI.py b/flatcamGUI/preferences/tools/Tools2OptimalPrefGroupUI.py similarity index 91% rename from AppGUI/preferences/tools/Tools2OptimalPrefGroupUI.py rename to flatcamGUI/preferences/tools/Tools2OptimalPrefGroupUI.py index 6524d439..283ddf2e 100644 --- a/AppGUI/preferences/tools/Tools2OptimalPrefGroupUI.py +++ b/flatcamGUI/preferences/tools/Tools2OptimalPrefGroupUI.py @@ -1,11 +1,11 @@ from PyQt5 import QtWidgets from PyQt5.QtCore import QSettings -from AppGUI.GUIElements import FCSpinner -from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI +from flatcamGUI.GUIElements import FCSpinner +from flatcamGUI.preferences.OptionsGroupUI import OptionsGroupUI import gettext -import AppTranslation as fcTranslate +import FlatCAMTranslation as fcTranslate import builtins fcTranslate.apply_language('strings') diff --git a/AppGUI/preferences/tools/Tools2PreferencesUI.py b/flatcamGUI/preferences/tools/Tools2PreferencesUI.py similarity index 76% rename from AppGUI/preferences/tools/Tools2PreferencesUI.py rename to flatcamGUI/preferences/tools/Tools2PreferencesUI.py index 5101fc37..01ed4def 100644 --- a/AppGUI/preferences/tools/Tools2PreferencesUI.py +++ b/flatcamGUI/preferences/tools/Tools2PreferencesUI.py @@ -1,18 +1,18 @@ from PyQt5 import QtWidgets from PyQt5.QtCore import QSettings -from AppGUI.preferences.tools.Tools2InvertPrefGroupUI import Tools2InvertPrefGroupUI -from AppGUI.preferences.tools.Tools2PunchGerberPrefGroupUI import Tools2PunchGerberPrefGroupUI -from AppGUI.preferences.tools.Tools2EDrillsPrefGroupUI import Tools2EDrillsPrefGroupUI -from AppGUI.preferences.tools.Tools2CalPrefGroupUI import Tools2CalPrefGroupUI -from AppGUI.preferences.tools.Tools2FiducialsPrefGroupUI import Tools2FiducialsPrefGroupUI -from AppGUI.preferences.tools.Tools2CThievingPrefGroupUI import Tools2CThievingPrefGroupUI -from AppGUI.preferences.tools.Tools2QRCodePrefGroupUI import Tools2QRCodePrefGroupUI -from AppGUI.preferences.tools.Tools2OptimalPrefGroupUI import Tools2OptimalPrefGroupUI -from AppGUI.preferences.tools.Tools2RulesCheckPrefGroupUI import Tools2RulesCheckPrefGroupUI +from flatcamGUI.preferences.tools.Tools2InvertPrefGroupUI import Tools2InvertPrefGroupUI +from flatcamGUI.preferences.tools.Tools2PunchGerberPrefGroupUI import Tools2PunchGerberPrefGroupUI +from flatcamGUI.preferences.tools.Tools2EDrillsPrefGroupUI import Tools2EDrillsPrefGroupUI +from flatcamGUI.preferences.tools.Tools2CalPrefGroupUI import Tools2CalPrefGroupUI +from flatcamGUI.preferences.tools.Tools2FiducialsPrefGroupUI import Tools2FiducialsPrefGroupUI +from flatcamGUI.preferences.tools.Tools2CThievingPrefGroupUI import Tools2CThievingPrefGroupUI +from flatcamGUI.preferences.tools.Tools2QRCodePrefGroupUI import Tools2QRCodePrefGroupUI +from flatcamGUI.preferences.tools.Tools2OptimalPrefGroupUI import Tools2OptimalPrefGroupUI +from flatcamGUI.preferences.tools.Tools2RulesCheckPrefGroupUI import Tools2RulesCheckPrefGroupUI import gettext -import AppTranslation as fcTranslate +import FlatCAMTranslation as fcTranslate import builtins fcTranslate.apply_language('strings') diff --git a/AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py b/flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py similarity index 97% rename from AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py rename to flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py index 073d4a68..a9a3a304 100644 --- a/AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py +++ b/flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py @@ -1,11 +1,11 @@ from PyQt5 import QtWidgets from PyQt5.QtCore import QSettings -from AppGUI.GUIElements import FCCheckBox, RadioSet, FCDoubleSpinner -from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI +from flatcamGUI.GUIElements import FCCheckBox, RadioSet, FCDoubleSpinner +from flatcamGUI.preferences.OptionsGroupUI import OptionsGroupUI import gettext -import AppTranslation as fcTranslate +import FlatCAMTranslation as fcTranslate import builtins fcTranslate.apply_language('strings') diff --git a/AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py b/flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py similarity index 83% rename from AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py rename to flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py index 6a0efb4a..5c22863b 100644 --- a/AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py +++ b/flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py @@ -1,11 +1,11 @@ -from PyQt5 import QtWidgets, QtCore, QtGui +from PyQt5 import QtWidgets, QtCore from PyQt5.QtCore import Qt, QSettings -from AppGUI.GUIElements import FCSpinner, RadioSet, FCTextArea, FCEntry, FCColorEntry -from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI +from flatcamGUI.GUIElements import FCSpinner, RadioSet, FCTextArea, FCEntry +from flatcamGUI.preferences.OptionsGroupUI import OptionsGroupUI import gettext -import AppTranslation as fcTranslate +import FlatCAMTranslation as fcTranslate import builtins fcTranslate.apply_language('strings') @@ -153,20 +153,42 @@ class Tools2QRCodePrefGroupUI(OptionsGroupUI): self.fill_color_label.setToolTip( _("Set the QRCode fill color (squares color).") ) - self.fill_color_entry = FCColorEntry() + self.fill_color_entry = FCEntry() + self.fill_color_button = QtWidgets.QPushButton() + self.fill_color_button.setFixedSize(15, 15) + + fill_lay_child = QtWidgets.QHBoxLayout() + fill_lay_child.setContentsMargins(0, 0, 0, 0) + fill_lay_child.addWidget(self.fill_color_entry) + fill_lay_child.addWidget(self.fill_color_button, alignment=Qt.AlignRight) + fill_lay_child.setAlignment(QtCore.Qt.AlignLeft | QtCore.Qt.AlignVCenter) + + fill_color_widget = QtWidgets.QWidget() + fill_color_widget.setLayout(fill_lay_child) grid_lay.addWidget(self.fill_color_label, 9, 0) - grid_lay.addWidget(self.fill_color_entry, 9, 1) + grid_lay.addWidget(fill_color_widget, 9, 1) # BACK COLOR # self.back_color_label = QtWidgets.QLabel('%s:' % _('Back Color')) self.back_color_label.setToolTip( _("Set the QRCode background color.") ) - self.back_color_entry = FCColorEntry() + self.back_color_entry = FCEntry() + self.back_color_button = QtWidgets.QPushButton() + self.back_color_button.setFixedSize(15, 15) + + back_lay_child = QtWidgets.QHBoxLayout() + back_lay_child.setContentsMargins(0, 0, 0, 0) + back_lay_child.addWidget(self.back_color_entry) + back_lay_child.addWidget(self.back_color_button, alignment=Qt.AlignRight) + back_lay_child.setAlignment(QtCore.Qt.AlignLeft | QtCore.Qt.AlignVCenter) + + back_color_widget = QtWidgets.QWidget() + back_color_widget.setLayout(back_lay_child) grid_lay.addWidget(self.back_color_label, 10, 0) - grid_lay.addWidget(self.back_color_entry, 10, 1) + grid_lay.addWidget(back_color_widget, 10, 1) # Selection Limit self.sel_limit_label = QtWidgets.QLabel('%s:' % _("Selection limit")) @@ -183,13 +205,3 @@ class Tools2QRCodePrefGroupUI(OptionsGroupUI): grid_lay.addWidget(self.sel_limit_label, 11, 0) grid_lay.addWidget(self.sel_limit_entry, 11, 1) # self.layout.addStretch() - - # QRCode Tool - self.fill_color_entry.editingFinished.connect(self.on_qrcode_fill_color_entry) - self.back_color_entry.editingFinished.connect(self.on_qrcode_back_color_entry) - - def on_qrcode_fill_color_entry(self): - self.app.defaults['tools_qrcode_fill_color'] = self.fill_color_entry.get_value() - - def on_qrcode_back_color_entry(self): - self.app.defaults['tools_qrcode_back_color'] = self.back_color_entry.get_value() diff --git a/AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py b/flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py similarity index 98% rename from AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py rename to flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py index cc049d41..4aba7caa 100644 --- a/AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py +++ b/flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py @@ -1,11 +1,11 @@ from PyQt5 import QtWidgets from PyQt5.QtCore import QSettings -from AppGUI.GUIElements import FCCheckBox, FCDoubleSpinner -from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI +from flatcamGUI.GUIElements import FCCheckBox, FCDoubleSpinner +from flatcamGUI.preferences.OptionsGroupUI import OptionsGroupUI import gettext -import AppTranslation as fcTranslate +import FlatCAMTranslation as fcTranslate import builtins fcTranslate.apply_language('strings') diff --git a/AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py b/flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py similarity index 95% rename from AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py rename to flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py index 4f9174f8..c7e17bc7 100644 --- a/AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py +++ b/flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py @@ -1,11 +1,11 @@ from PyQt5 import QtWidgets from PyQt5.QtCore import QSettings -from AppGUI.GUIElements import FCDoubleSpinner, RadioSet -from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI +from flatcamGUI.GUIElements import FCDoubleSpinner, RadioSet +from flatcamGUI.preferences.OptionsGroupUI import OptionsGroupUI import gettext -import AppTranslation as fcTranslate +import FlatCAMTranslation as fcTranslate import builtins fcTranslate.apply_language('strings') diff --git a/AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py b/flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py similarity index 97% rename from AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py rename to flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py index f1d8cec9..df9a31fd 100644 --- a/AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py +++ b/flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py @@ -1,11 +1,11 @@ from PyQt5 import QtWidgets from PyQt5.QtCore import QSettings -from AppGUI.GUIElements import FCDoubleSpinner -from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI +from flatcamGUI.GUIElements import FCDoubleSpinner +from flatcamGUI.preferences.OptionsGroupUI import OptionsGroupUI import gettext -import AppTranslation as fcTranslate +import FlatCAMTranslation as fcTranslate import builtins fcTranslate.apply_language('strings') diff --git a/AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py b/flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py similarity index 96% rename from AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py rename to flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py index 4e690474..308c74c4 100644 --- a/AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py +++ b/flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py @@ -1,12 +1,12 @@ from PyQt5 import QtWidgets from PyQt5.QtCore import QSettings -from AppGUI.GUIElements import FCDoubleSpinner, FCCheckBox, RadioSet, FCComboBox -from AppGUI.preferences import machinist_setting -from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI +from flatcamGUI.GUIElements import FCDoubleSpinner, FCCheckBox, RadioSet, FCComboBox +from flatcamGUI.preferences import machinist_setting +from flatcamGUI.preferences.OptionsGroupUI import OptionsGroupUI import gettext -import AppTranslation as fcTranslate +import FlatCAMTranslation as fcTranslate import builtins fcTranslate.apply_language('strings') diff --git a/AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py b/flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py similarity index 92% rename from AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py rename to flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py index f2e2a528..17e994c5 100644 --- a/AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py +++ b/flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py @@ -1,11 +1,11 @@ -from PyQt5 import QtWidgets, QtCore, QtGui +from PyQt5 import QtWidgets, QtCore from PyQt5.QtCore import Qt, QSettings -from AppGUI.GUIElements import RadioSet, FCEntry, FCDoubleSpinner, FCCheckBox, FCComboBox, FCColorEntry -from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI +from flatcamGUI.GUIElements import RadioSet, FCEntry, FCDoubleSpinner, FCCheckBox, FCComboBox +from flatcamGUI.preferences.OptionsGroupUI import OptionsGroupUI import gettext -import AppTranslation as fcTranslate +import FlatCAMTranslation as fcTranslate import builtins fcTranslate.apply_language('strings') @@ -30,7 +30,8 @@ class ToolsFilmPrefGroupUI(OptionsGroupUI): # ## Parameters self.film_label = QtWidgets.QLabel("%s:" % _("Parameters")) self.film_label.setToolTip( - _("Create a PCB film from a Gerber or Geometry object.\n" + _("Create a PCB film from a Gerber or Geometry\n" + "FlatCAM object.\n" "The file is saved in SVG format.") ) self.layout.addWidget(self.film_label) @@ -57,10 +58,20 @@ class ToolsFilmPrefGroupUI(OptionsGroupUI): self.film_color_label.setToolTip( _("Set the film color when positive film is selected.") ) - self.film_color_entry = FCColorEntry() + self.film_color_entry = FCEntry() + self.film_color_button = QtWidgets.QPushButton() + self.film_color_button.setFixedSize(15, 15) + self.form_box_child = QtWidgets.QHBoxLayout() + self.form_box_child.setContentsMargins(0, 0, 0, 0) + self.form_box_child.addWidget(self.film_color_entry) + self.form_box_child.addWidget(self.film_color_button, alignment=Qt.AlignRight) + self.form_box_child.setAlignment(QtCore.Qt.AlignLeft | QtCore.Qt.AlignVCenter) + + film_color_widget = QtWidgets.QWidget() + film_color_widget.setLayout(self.form_box_child) grid0.addWidget(self.film_color_label, 1, 0) - grid0.addWidget(self.film_color_entry, 1, 1) + grid0.addWidget(film_color_widget, 1, 1) # Film Border self.film_boundary_entry = FCDoubleSpinner() @@ -303,9 +314,3 @@ class ToolsFilmPrefGroupUI(OptionsGroupUI): grid0.addWidget(self.pagesize_combo, 17, 1) self.layout.addStretch() - - # Film Tool - self.film_color_entry.editingFinished.connect(self.on_film_color_entry) - - def on_film_color_entry(self): - self.app.defaults['tools_film_color'] = self.film_color_entry.get_value() diff --git a/AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py b/flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py similarity index 94% rename from AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py rename to flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py index 28c300da..00ec96cb 100644 --- a/AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py +++ b/flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py @@ -1,11 +1,11 @@ from PyQt5 import QtWidgets from PyQt5.QtCore import QSettings -from AppGUI.GUIElements import RadioSet, FCDoubleSpinner, FCComboBox, FCCheckBox, NumericalEvalTupleEntry -from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI +from flatcamGUI.GUIElements import FCEntry, RadioSet, FCDoubleSpinner, FCComboBox, FCCheckBox +from flatcamGUI.preferences.OptionsGroupUI import OptionsGroupUI import gettext -import AppTranslation as fcTranslate +import FlatCAMTranslation as fcTranslate import builtins fcTranslate.apply_language('strings') @@ -45,7 +45,7 @@ class ToolsNCCPrefGroupUI(OptionsGroupUI): "Valid values: 0.3, 1.0") ) grid0.addWidget(ncctdlabel, 0, 0) - self.ncc_tool_dia_entry = NumericalEvalTupleEntry(border_color='#0069A9') + self.ncc_tool_dia_entry = FCEntry(border_color='#0069A9') self.ncc_tool_dia_entry.setPlaceholderText(_("Comma separated values")) grid0.addWidget(self.ncc_tool_dia_entry, 0, 1) @@ -227,7 +227,7 @@ class ToolsNCCPrefGroupUI(OptionsGroupUI): # ], orientation='vertical', stretch=False) self.ncc_method_combo = FCComboBox() self.ncc_method_combo.addItems( - [_("Standard"), _("Seed"), _("Lines"), _("Combo")] + [_("Standard"), _("Seed"), _("Lines")] ) grid0.addWidget(methodlabel, 12, 0) @@ -285,7 +285,7 @@ class ToolsNCCPrefGroupUI(OptionsGroupUI): grid0.addWidget(separator_line, 16, 0, 1, 2) # Rest machining CheckBox - self.ncc_rest_cb = FCCheckBox('%s' % _("Rest")) + self.ncc_rest_cb = FCCheckBox('%s' % _("Rest Machining")) self.ncc_rest_cb.setToolTip( _("If checked, use 'rest machining'.\n" "Basically it will clear copper outside PCB features,\n" @@ -336,14 +336,14 @@ class ToolsNCCPrefGroupUI(OptionsGroupUI): grid0.addWidget(separator_line, 20, 0, 1, 2) # ## Plotting type - self.plotting_radio = RadioSet([{'label': _('Normal'), 'value': 'normal'}, - {"label": _("Progressive"), "value": "progressive"}]) - plotting_label = QtWidgets.QLabel('%s:' % _("Plotting")) + self.ncc_plotting_radio = RadioSet([{'label': _('Normal'), 'value': 'normal'}, + {"label": _("Progressive"), "value": "progressive"}]) + plotting_label = QtWidgets.QLabel('%s:' % _("NCC Plotting")) plotting_label.setToolTip( - _("- 'Normal' - normal plotting, done at the end of the job\n" - "- 'Progressive' - each shape is plotted after it is generated") + _("- 'Normal' - normal plotting, done at the end of the NCC job\n" + "- 'Progressive' - after each shape is generated it will be plotted.") ) grid0.addWidget(plotting_label, 21, 0) - grid0.addWidget(self.plotting_radio, 21, 1) + grid0.addWidget(self.ncc_plotting_radio, 21, 1) self.layout.addStretch() diff --git a/AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py b/flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py similarity index 95% rename from AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py rename to flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py index b69d0106..a86b270b 100644 --- a/AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py +++ b/flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py @@ -1,11 +1,11 @@ from PyQt5 import QtWidgets from PyQt5.QtCore import QSettings -from AppGUI.GUIElements import RadioSet, FCDoubleSpinner, FCComboBox, FCCheckBox, NumericalEvalTupleEntry -from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI +from flatcamGUI.GUIElements import FCEntry, RadioSet, FCDoubleSpinner, FCComboBox, FCCheckBox +from flatcamGUI.preferences.OptionsGroupUI import OptionsGroupUI import gettext -import AppTranslation as fcTranslate +import FlatCAMTranslation as fcTranslate import builtins fcTranslate.apply_language('strings') @@ -53,7 +53,7 @@ class ToolsPaintPrefGroupUI(OptionsGroupUI): ) grid0.addWidget(ptdlabel, 0, 0) - self.painttooldia_entry = NumericalEvalTupleEntry(border_color='#0069A9') + self.painttooldia_entry = FCEntry(border_color='#0069A9') self.painttooldia_entry.setPlaceholderText(_("Comma separated values")) grid0.addWidget(self.painttooldia_entry, 0, 1) @@ -105,7 +105,7 @@ class ToolsPaintPrefGroupUI(OptionsGroupUI): cutzlabel = QtWidgets.QLabel('%s:' % _('Cut Z')) cutzlabel.setToolTip( _("Depth of cut into material. Negative value.\n" - "In application units.") + "In FlatCAM units.") ) self.cutz_entry = FCDoubleSpinner() self.cutz_entry.set_precision(self.decimals) @@ -114,7 +114,7 @@ class ToolsPaintPrefGroupUI(OptionsGroupUI): self.cutz_entry.setToolTip( _("Depth of cut into material. Negative value.\n" - "In application units.") + "In FlatCAM units.") ) grid0.addWidget(cutzlabel, 4, 0) grid0.addWidget(self.cutz_entry, 4, 1) @@ -241,8 +241,8 @@ class ToolsPaintPrefGroupUI(OptionsGroupUI): separator_line.setFrameShadow(QtWidgets.QFrame.Sunken) grid0.addWidget(separator_line, 13, 0, 1, 2) - self.rest_cb = FCCheckBox('%s' % _("Rest")) - self.rest_cb.setObjectName(_("Rest")) + self.rest_cb = FCCheckBox('%s' % _("Rest Machining")) + self.rest_cb.setObjectName(_("Rest Machining")) self.rest_cb.setToolTip( _("If checked, use 'rest machining'.\n" "Basically it will clear copper outside PCB features,\n" @@ -277,7 +277,7 @@ class ToolsPaintPrefGroupUI(OptionsGroupUI): # ) self.selectmethod_combo = FCComboBox() self.selectmethod_combo.addItems( - [_("Polygon Selection"), _("Area Selection"), _("All"), _("Reference Object")] + [_("Polygon Selection"), _("Area Selection"), _("All Polygons"), _("Reference Object")] ) grid0.addWidget(selectlabel, 15, 0) @@ -302,10 +302,10 @@ class ToolsPaintPrefGroupUI(OptionsGroupUI): # ## Plotting type self.paint_plotting_radio = RadioSet([{'label': _('Normal'), 'value': 'normal'}, {"label": _("Progressive"), "value": "progressive"}]) - plotting_label = QtWidgets.QLabel('%s:' % _("Plotting")) + plotting_label = QtWidgets.QLabel('%s:' % _("Paint Plotting")) plotting_label.setToolTip( - _("- 'Normal' - normal plotting, done at the end of the job\n" - "- 'Progressive' - each shape is plotted after it is generated") + _("- 'Normal' - normal plotting, done at the end of the Paint job\n" + "- 'Progressive' - after each shape is generated it will be plotted.") ) grid0.addWidget(plotting_label, 20, 0) grid0.addWidget(self.paint_plotting_radio, 20, 1) diff --git a/AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py b/flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py similarity index 96% rename from AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py rename to flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py index f217ec00..df791742 100644 --- a/AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py +++ b/flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py @@ -1,11 +1,11 @@ from PyQt5 import QtWidgets from PyQt5.QtCore import QSettings -from AppGUI.GUIElements import FCDoubleSpinner, FCSpinner, RadioSet, FCCheckBox -from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI +from flatcamGUI.GUIElements import FCDoubleSpinner, FCSpinner, RadioSet, FCCheckBox +from flatcamGUI.preferences.OptionsGroupUI import OptionsGroupUI import gettext -import AppTranslation as fcTranslate +import FlatCAMTranslation as fcTranslate import builtins fcTranslate.apply_language('strings') diff --git a/AppGUI/preferences/tools/ToolsPreferencesUI.py b/flatcamGUI/preferences/tools/ToolsPreferencesUI.py similarity index 66% rename from AppGUI/preferences/tools/ToolsPreferencesUI.py rename to flatcamGUI/preferences/tools/ToolsPreferencesUI.py index 9d30c9b9..dc3061a8 100644 --- a/AppGUI/preferences/tools/ToolsPreferencesUI.py +++ b/flatcamGUI/preferences/tools/ToolsPreferencesUI.py @@ -1,22 +1,19 @@ from PyQt5 import QtWidgets from PyQt5.QtCore import QSettings -from AppGUI.preferences.tools.ToolsSubPrefGroupUI import ToolsSubPrefGroupUI -from AppGUI.preferences.tools.ToolsSolderpastePrefGroupUI import ToolsSolderpastePrefGroupUI -from AppGUI.preferences.tools.ToolsCornersPrefGroupUI import ToolsCornersPrefGroupUI -from AppGUI.preferences.tools.ToolsTransformPrefGroupUI import ToolsTransformPrefGroupUI -from AppGUI.preferences.tools.ToolsCalculatorsPrefGroupUI import ToolsCalculatorsPrefGroupUI -from AppGUI.preferences.tools.ToolsPanelizePrefGroupUI import ToolsPanelizePrefGroupUI -from AppGUI.preferences.tools.ToolsFilmPrefGroupUI import ToolsFilmPrefGroupUI -from AppGUI.preferences.tools.Tools2sidedPrefGroupUI import Tools2sidedPrefGroupUI - -from AppGUI.preferences.tools.ToolsCutoutPrefGroupUI import ToolsCutoutPrefGroupUI -from AppGUI.preferences.tools.ToolsNCCPrefGroupUI import ToolsNCCPrefGroupUI -from AppGUI.preferences.tools.ToolsPaintPrefGroupUI import ToolsPaintPrefGroupUI -from AppGUI.preferences.tools.ToolsISOPrefGroupUI import ToolsISOPrefGroupUI +from flatcamGUI.preferences.tools.ToolsSubPrefGroupUI import ToolsSubPrefGroupUI +from flatcamGUI.preferences.tools.ToolsSolderpastePrefGroupUI import ToolsSolderpastePrefGroupUI +from flatcamGUI.preferences.tools.ToolsTransformPrefGroupUI import ToolsTransformPrefGroupUI +from flatcamGUI.preferences.tools.ToolsCalculatorsPrefGroupUI import ToolsCalculatorsPrefGroupUI +from flatcamGUI.preferences.tools.ToolsPanelizePrefGroupUI import ToolsPanelizePrefGroupUI +from flatcamGUI.preferences.tools.ToolsFilmPrefGroupUI import ToolsFilmPrefGroupUI +from flatcamGUI.preferences.tools.ToolsPaintPrefGroupUI import ToolsPaintPrefGroupUI +from flatcamGUI.preferences.tools.Tools2sidedPrefGroupUI import Tools2sidedPrefGroupUI +from flatcamGUI.preferences.tools.ToolsCutoutPrefGroupUI import ToolsCutoutPrefGroupUI +from flatcamGUI.preferences.tools.ToolsNCCPrefGroupUI import ToolsNCCPrefGroupUI import gettext -import AppTranslation as fcTranslate +import FlatCAMTranslation as fcTranslate import builtins fcTranslate.apply_language('strings') @@ -38,9 +35,6 @@ class ToolsPreferencesUI(QtWidgets.QWidget): self.setLayout(self.layout) self.decimals = decimals - self.tools_iso_group = ToolsISOPrefGroupUI(decimals=self.decimals) - self.tools_iso_group.setMinimumWidth(220) - self.tools_ncc_group = ToolsNCCPrefGroupUI(decimals=self.decimals) self.tools_ncc_group.setMinimumWidth(220) @@ -68,9 +62,6 @@ class ToolsPreferencesUI(QtWidgets.QWidget): self.tools_solderpaste_group = ToolsSolderpastePrefGroupUI(decimals=self.decimals) self.tools_solderpaste_group.setMinimumWidth(200) - self.tools_corners_group = ToolsCornersPrefGroupUI(decimals=self.decimals) - self.tools_corners_group.setMinimumWidth(200) - self.tools_sub_group = ToolsSubPrefGroupUI(decimals=self.decimals) self.tools_sub_group.setMinimumWidth(200) @@ -80,7 +71,7 @@ class ToolsPreferencesUI(QtWidgets.QWidget): self.vlay1 = QtWidgets.QVBoxLayout() self.vlay1.addWidget(self.tools_paint_group) - self.vlay1.addWidget(self.tools_iso_group) + self.vlay1.addWidget(self.tools_panelize_group) self.vlay2 = QtWidgets.QVBoxLayout() self.vlay2.addWidget(self.tools_transform_group) @@ -93,8 +84,6 @@ class ToolsPreferencesUI(QtWidgets.QWidget): self.vlay4 = QtWidgets.QVBoxLayout() self.vlay4.addWidget(self.tools_solderpaste_group) - self.vlay4.addWidget(self.tools_corners_group) - self.vlay4.addWidget(self.tools_panelize_group) self.layout.addLayout(self.vlay) self.layout.addLayout(self.vlay1) diff --git a/AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py b/flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py similarity index 96% rename from AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py rename to flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py index 832b76d9..c1f60821 100644 --- a/AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py +++ b/flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py @@ -1,11 +1,11 @@ from PyQt5 import QtWidgets from PyQt5.QtCore import QSettings -from AppGUI.GUIElements import FCDoubleSpinner, FCSpinner, FCComboBox, NumericalEvalTupleEntry -from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI +from flatcamGUI.GUIElements import FCEntry, FCDoubleSpinner, FCSpinner, FCComboBox +from flatcamGUI.preferences.OptionsGroupUI import OptionsGroupUI import gettext -import AppTranslation as fcTranslate +import FlatCAMTranslation as fcTranslate import builtins fcTranslate.apply_language('strings') @@ -45,7 +45,7 @@ class ToolsSolderpastePrefGroupUI(OptionsGroupUI): "The value of the diameter has to use the dot decimals separator.\n" "Valid values: 0.3, 1.0") ) - self.nozzle_tool_dia_entry = NumericalEvalTupleEntry(border_color='#0069A9') + self.nozzle_tool_dia_entry = FCEntry() grid0.addWidget(nozzletdlabel, 0, 0) grid0.addWidget(self.nozzle_tool_dia_entry, 0, 1) @@ -130,7 +130,7 @@ class ToolsSolderpastePrefGroupUI(OptionsGroupUI): grid0.addWidget(self.z_toolchange_entry, 6, 1) # X,Y Toolchange location - self.xy_toolchange_entry = NumericalEvalTupleEntry(border_color='#0069A9') + self.xy_toolchange_entry = FCEntry() self.xy_toolchange_label = QtWidgets.QLabel('%s:' % _("Toolchange X-Y")) self.xy_toolchange_label.setToolTip( _("The X,Y location for tool (nozzle) change.\n" diff --git a/AppGUI/preferences/tools/ToolsSubPrefGroupUI.py b/flatcamGUI/preferences/tools/ToolsSubPrefGroupUI.py similarity index 88% rename from AppGUI/preferences/tools/ToolsSubPrefGroupUI.py rename to flatcamGUI/preferences/tools/ToolsSubPrefGroupUI.py index 2cc78d87..ff9430e1 100644 --- a/AppGUI/preferences/tools/ToolsSubPrefGroupUI.py +++ b/flatcamGUI/preferences/tools/ToolsSubPrefGroupUI.py @@ -1,11 +1,11 @@ from PyQt5 import QtWidgets from PyQt5.QtCore import QSettings -from AppGUI.GUIElements import FCCheckBox -from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI +from flatcamGUI.GUIElements import FCCheckBox +from flatcamGUI.preferences.OptionsGroupUI import OptionsGroupUI import gettext -import AppTranslation as fcTranslate +import FlatCAMTranslation as fcTranslate import builtins fcTranslate.apply_language('strings') diff --git a/AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py b/flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py similarity index 96% rename from AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py rename to flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py index b0c438f0..c3bffec1 100644 --- a/AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py +++ b/flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py @@ -1,11 +1,11 @@ from PyQt5 import QtWidgets from PyQt5.QtCore import QSettings -from AppGUI.GUIElements import FCDoubleSpinner, FCCheckBox, NumericalEvalTupleEntry -from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI +from flatcamGUI.GUIElements import FCDoubleSpinner, FCCheckBox, FCEntry +from flatcamGUI.preferences.OptionsGroupUI import OptionsGroupUI import gettext -import AppTranslation as fcTranslate +import FlatCAMTranslation as fcTranslate import builtins fcTranslate.apply_language('strings') @@ -31,7 +31,7 @@ class ToolsTransformPrefGroupUI(OptionsGroupUI): self.transform_label = QtWidgets.QLabel("%s:" % _("Parameters")) self.transform_label.setToolTip( _("Various transformations that can be applied\n" - "on a application object.") + "on a FlatCAM object.") ) self.layout.addWidget(self.transform_label) @@ -191,7 +191,7 @@ class ToolsTransformPrefGroupUI(OptionsGroupUI): "The 'x' in (x, y) will be used when using Flip on X and\n" "the 'y' in (x, y) will be used when using Flip on Y and") ) - self.flip_ref_entry = NumericalEvalTupleEntry(border_color='#0069A9') + self.flip_ref_entry = FCEntry() grid0.addWidget(self.flip_ref_label, 14, 0, 1, 2) grid0.addWidget(self.flip_ref_entry, 15, 0, 1, 2) diff --git a/AppGUI/preferences/tools/__init__.py b/flatcamGUI/preferences/tools/__init__.py similarity index 100% rename from AppGUI/preferences/tools/__init__.py rename to flatcamGUI/preferences/tools/__init__.py diff --git a/AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py b/flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py similarity index 94% rename from AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py rename to flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py index 4f491f49..fd138091 100644 --- a/AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py +++ b/flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py @@ -1,11 +1,11 @@ from PyQt5 import QtWidgets, QtGui from PyQt5.QtCore import QSettings -from AppGUI.GUIElements import FCButton, FCTextArea, FCEntry -from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI +from flatcamGUI.GUIElements import FCButton, FCTextArea, FCEntry +from flatcamGUI.preferences.OptionsGroupUI import OptionsGroupUI import gettext -import AppTranslation as fcTranslate +import FlatCAMTranslation as fcTranslate import builtins fcTranslate.apply_language('strings') diff --git a/AppGUI/preferences/utilities/FAExcPrefGroupUI.py b/flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py similarity index 95% rename from AppGUI/preferences/utilities/FAExcPrefGroupUI.py rename to flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py index 4cdd89f7..18a3b971 100644 --- a/AppGUI/preferences/utilities/FAExcPrefGroupUI.py +++ b/flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py @@ -1,11 +1,11 @@ from PyQt5 import QtWidgets, QtGui from PyQt5.QtCore import QSettings -from AppGUI.GUIElements import VerticalScrollArea, FCButton, FCTextArea, FCEntry -from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI +from flatcamGUI.GUIElements import VerticalScrollArea, FCButton, FCTextArea, FCEntry +from flatcamGUI.preferences.OptionsGroupUI import OptionsGroupUI import gettext -import AppTranslation as fcTranslate +import FlatCAMTranslation as fcTranslate import builtins fcTranslate.apply_language('strings') diff --git a/AppGUI/preferences/utilities/FAGcoPrefGroupUI.py b/flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py similarity index 94% rename from AppGUI/preferences/utilities/FAGcoPrefGroupUI.py rename to flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py index 9c367ed5..2ac1a1b9 100644 --- a/AppGUI/preferences/utilities/FAGcoPrefGroupUI.py +++ b/flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py @@ -1,11 +1,11 @@ from PyQt5 import QtWidgets, QtGui from PyQt5.QtCore import QSettings -from AppGUI.GUIElements import FCButton, FCTextArea, FCEntry -from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI +from flatcamGUI.GUIElements import FCButton, FCTextArea, FCEntry +from flatcamGUI.preferences.OptionsGroupUI import OptionsGroupUI import gettext -import AppTranslation as fcTranslate +import FlatCAMTranslation as fcTranslate import builtins fcTranslate.apply_language('strings') diff --git a/AppGUI/preferences/utilities/FAGrbPrefGroupUI.py b/flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py similarity index 94% rename from AppGUI/preferences/utilities/FAGrbPrefGroupUI.py rename to flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py index 70e0aa78..480fdb39 100644 --- a/AppGUI/preferences/utilities/FAGrbPrefGroupUI.py +++ b/flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py @@ -1,11 +1,11 @@ from PyQt5 import QtWidgets, QtGui from PyQt5.QtCore import QSettings -from AppGUI.GUIElements import FCButton, FCTextArea, FCEntry -from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI +from flatcamGUI.GUIElements import FCButton, FCTextArea, FCEntry +from flatcamGUI.preferences.OptionsGroupUI import OptionsGroupUI import gettext -import AppTranslation as fcTranslate +import FlatCAMTranslation as fcTranslate import builtins fcTranslate.apply_language('strings') diff --git a/AppGUI/preferences/utilities/UtilPreferencesUI.py b/flatcamGUI/preferences/utilities/UtilPreferencesUI.py similarity index 76% rename from AppGUI/preferences/utilities/UtilPreferencesUI.py rename to flatcamGUI/preferences/utilities/UtilPreferencesUI.py index e227c924..ae9e2110 100644 --- a/AppGUI/preferences/utilities/UtilPreferencesUI.py +++ b/flatcamGUI/preferences/utilities/UtilPreferencesUI.py @@ -1,9 +1,9 @@ from PyQt5 import QtWidgets -from AppGUI.preferences.utilities.AutoCompletePrefGroupUI import AutoCompletePrefGroupUI -from AppGUI.preferences.utilities.FAGrbPrefGroupUI import FAGrbPrefGroupUI -from AppGUI.preferences.utilities.FAGcoPrefGroupUI import FAGcoPrefGroupUI -from AppGUI.preferences.utilities.FAExcPrefGroupUI import FAExcPrefGroupUI +from flatcamGUI.preferences.utilities.AutoCompletePrefGroupUI import AutoCompletePrefGroupUI +from flatcamGUI.preferences.utilities.FAGrbPrefGroupUI import FAGrbPrefGroupUI +from flatcamGUI.preferences.utilities.FAGcoPrefGroupUI import FAGcoPrefGroupUI +from flatcamGUI.preferences.utilities.FAExcPrefGroupUI import FAExcPrefGroupUI class UtilPreferencesUI(QtWidgets.QWidget): diff --git a/AppGUI/preferences/utilities/__init__.py b/flatcamGUI/preferences/utilities/__init__.py similarity index 100% rename from AppGUI/preferences/utilities/__init__.py rename to flatcamGUI/preferences/utilities/__init__.py diff --git a/AppObjects/FlatCAMCNCJob.py b/flatcamObjects/FlatCAMCNCJob.py similarity index 97% rename from AppObjects/FlatCAMCNCJob.py rename to flatcamObjects/FlatCAMCNCJob.py index 7f506e0f..c9a47076 100644 --- a/AppObjects/FlatCAMCNCJob.py +++ b/flatcamObjects/FlatCAMCNCJob.py @@ -14,8 +14,8 @@ from copy import deepcopy from io import StringIO from datetime import datetime -from AppEditors.FlatCAMTextEditor import TextEditor -from AppObjects.FlatCAMObj import * +from flatcamEditors.FlatCAMTextEditor import TextEditor +from flatcamObjects.FlatCAMObj import * from camlib import CNCjob @@ -24,7 +24,7 @@ import sys import math import gettext -import AppTranslation as fcTranslate +import FlatCAMTranslation as fcTranslate import builtins fcTranslate.apply_language('strings') @@ -504,17 +504,17 @@ class CNCJobObject(FlatCAMObj, CNCjob): try: dir_file_to_save = self.app.get_last_save_folder() + '/' + str(name) filename, _f = FCFileSaveDialog.get_saved_filename( - caption=_("Export Code ..."), + caption=_("Export Machine Code ..."), directory=dir_file_to_save, - ext_filter=_filter_ + filter=_filter_ ) except TypeError: - filename, _f = FCFileSaveDialog.get_saved_filename(caption=_("Export Code ..."), ext_filter=_filter_) + filename, _f = FCFileSaveDialog.get_saved_filename(caption=_("Export Machine Code ..."), filter=_filter_) filename = str(filename) if filename == '': - self.app.inform.emit('[WARNING_NOTCL] %s' % _("Export cancelled ...")) + self.app.inform.emit('[WARNING_NOTCL] %s' % _("Export Machine Code cancelled ...")) return else: if save_gcode is True: @@ -535,7 +535,7 @@ class CNCJobObject(FlatCAMObj, CNCjob): if self.app.defaults["global_open_style"] is False: self.app.file_opened.emit("gcode", filename) self.app.file_saved.emit("gcode", filename) - self.app.inform.emit('[success] %s: %s' % (_("File saved to"), filename)) + self.app.inform.emit('[success] %s: %s' % (_("Machine Code file saved to"), filename)) def on_edit_code_click(self, *args): """ @@ -564,7 +564,7 @@ class CNCJobObject(FlatCAMObj, CNCjob): # delete the absolute and relative position and messages in the infobar self.app.ui.position_label.setText("") - # self.app.ui.rel_position_label.setText("") + self.app.ui.rel_position_label.setText("") # first clear previous text in text editor (if any) self.gcode_editor_tab.code_editor.clear() @@ -989,6 +989,7 @@ class CNCJobObject(FlatCAMObj, CNCjob): for key in self.cnc_tools: ppg = self.cnc_tools[key]['data']['ppname_g'] if 'toolchange_custom' not in str(ppg).lower(): + print(ppg) if self.ui.toolchange_cb.get_value(): self.ui.toolchange_cb.set_value(False) self.app.inform.emit('[WARNING_NOTCL] %s' % @@ -1106,7 +1107,7 @@ class CNCJobObject(FlatCAMObj, CNCjob): except ValueError: # we may have a tuple with only one element and a comma dia_plot = [float(el) for el in self.options["tooldia"].split(',') if el != ''][0] - self.plot2(tooldia=dia_plot, obj=self, visible=visible, kind=kind) + self.plot2(dia_plot, obj=self, visible=visible, kind=kind) else: # multiple tools usage if self.cnc_tools: @@ -1116,16 +1117,12 @@ class CNCJobObject(FlatCAMObj, CNCjob): self.plot2(tooldia=tooldia, obj=self, visible=visible, gcode_parsed=gcode_parsed, kind=kind) # TODO: until the gcode parsed will be stored on each Excellon tool this will not get executed - # I do this so the travel lines thickness will reflect the tool diameter - # may work only for objects created within the app and not Gcode imported from elsewhere for which we - # don't know the origin - if self.origin_kind == "excellon": - if self.exc_cnc_tools: - for tooldia_key in self.exc_cnc_tools: - tooldia = float('%.*f' % (self.decimals, float(tooldia_key))) - # gcode_parsed = self.exc_cnc_tools[tooldia_key]['gcode_parsed'] - gcode_parsed = self.gcode_parsed - self.plot2(tooldia=tooldia, obj=self, visible=visible, gcode_parsed=gcode_parsed, kind=kind) + if self.exc_cnc_tools: + for tooldia_key in self.exc_cnc_tools: + tooldia = float('%.*f' % (self.decimals, float(tooldia_key))) + # gcode_parsed = self.cnc_tools[tooldia_key]['gcode_parsed'] + gcode_parsed = self.gcode_parsed + self.plot2(tooldia=tooldia, obj=self, visible=visible, gcode_parsed=gcode_parsed, kind=kind) self.shapes.redraw() except (ObjectDeleted, AttributeError): diff --git a/AppObjects/FlatCAMDocument.py b/flatcamObjects/FlatCAMDocument.py similarity index 95% rename from AppObjects/FlatCAMDocument.py rename to flatcamObjects/FlatCAMDocument.py index c9aadca9..5f33b73a 100644 --- a/AppObjects/FlatCAMDocument.py +++ b/flatcamObjects/FlatCAMDocument.py @@ -10,11 +10,11 @@ # File modified by: Marius Stanciu # # ########################################################## -from AppEditors.FlatCAMTextEditor import TextEditor -from AppObjects.FlatCAMObj import * +from flatcamEditors.FlatCAMTextEditor import TextEditor +from flatcamObjects.FlatCAMObj import * import gettext -import AppTranslation as fcTranslate +import FlatCAMTranslation as fcTranslate import builtins fcTranslate.apply_language('strings') @@ -284,27 +284,6 @@ class DocumentObject(FlatCAMObj): self.ui.sel_color_entry.set_value(new_val) self.app.defaults['document_sel_color'] = new_val - def mirror(self, axis, point): - pass - - def offset(self, vect): - pass - - def rotate(self, angle, point): - pass - - def scale(self, xfactor, yfactor=None, point=None): - pass - - def skew(self, angle_x, angle_y, point): - pass - - def buffer(self, distance, join, factor=None): - pass - - def bounds(self, flatten=False): - return None, None, None, None - def to_dict(self): """ Returns a representation of the object as a dictionary. diff --git a/AppObjects/FlatCAMExcellon.py b/flatcamObjects/FlatCAMExcellon.py similarity index 90% rename from AppObjects/FlatCAMExcellon.py rename to flatcamObjects/FlatCAMExcellon.py index 71ce705c..2e97db1e 100644 --- a/AppObjects/FlatCAMExcellon.py +++ b/flatcamObjects/FlatCAMExcellon.py @@ -15,14 +15,13 @@ from shapely.geometry import Point, LineString from copy import deepcopy -from AppParsers.ParseExcellon import Excellon -from AppObjects.FlatCAMObj import * +from flatcamParsers.ParseExcellon import Excellon +from flatcamObjects.FlatCAMObj import * import itertools -import numpy as np import gettext -import AppTranslation as fcTranslate +import FlatCAMTranslation as fcTranslate import builtins fcTranslate.apply_language('strings') @@ -32,7 +31,7 @@ if '_' not in builtins.__dict__: class ExcellonObject(FlatCAMObj, Excellon): """ - Represents Excellon/Drill code. An object stored in the FlatCAM objects collection (a dict) + Represents Excellon/Drill code. """ ui_type = ExcellonObjectUI @@ -51,7 +50,6 @@ class ExcellonObject(FlatCAMObj, Excellon): self.options.update({ "plot": True, "solid": False, - "multicolored": False, "operation": "drill", "milling_type": "drills", @@ -148,11 +146,9 @@ class ExcellonObject(FlatCAMObj, Excellon): If only one object is in exc_list parameter then this function will copy that object in the exc_final - :param exc_list: List or one object of ExcellonObject Objects to join. - :type exc_list: list - :param exc_final: Destination ExcellonObject object. - :type exc_final: class - :return: None + :param exc_list: List or one object of ExcellonObject Objects to join. + :param exc_final: Destination ExcellonObject object. + :return: None """ if decimals is None: @@ -320,12 +316,6 @@ class ExcellonObject(FlatCAMObj, Excellon): exc_final.create_geometry() def build_ui(self): - """ - Will (re)build the Excellon UI updating it (the tool table) - - :return: None - :rtype: - """ FlatCAMObj.build_ui(self) # Area Exception - exclusion shape added signal @@ -596,9 +586,9 @@ class ExcellonObject(FlatCAMObj, Excellon): Configures the user interface for this object. Connects options to form fields. - :param ui: User interface object. - :type ui: ExcellonObjectUI - :return: None + :param ui: User interface object. + :type ui: ExcellonObjectUI + :return: None """ FlatCAMObj.set_ui(self, ui) @@ -609,7 +599,6 @@ class ExcellonObject(FlatCAMObj, Excellon): self.form_fields.update({ "plot": self.ui.plot_cb, "solid": self.ui.solid_cb, - "multicolored": self.ui.multicolored_cb, "operation": self.ui.operation_radio, "milling_type": self.ui.milling_type_radio, @@ -711,8 +700,6 @@ class ExcellonObject(FlatCAMObj, Excellon): self.ui.plot_cb.stateChanged.connect(self.on_plot_cb_click) self.ui.solid_cb.stateChanged.connect(self.on_solid_cb_click) - self.ui.multicolored_cb.stateChanged.connect(self.on_multicolored_cb_click) - self.ui.generate_cnc_button.clicked.connect(self.on_create_cncjob_button_click) self.ui.generate_milling_button.clicked.connect(self.on_generate_milling_button_click) self.ui.generate_milling_slots_button.clicked.connect(self.on_generate_milling_slots_button_click) @@ -742,12 +729,6 @@ class ExcellonObject(FlatCAMObj, Excellon): self.ui.operation_radio.setEnabled(False) def ui_connect(self): - """ - Will connect all signals in the Excellon UI that needs to be connected - - :return: None - :rtype: - """ # selective plotting for row in range(self.ui.tools_table.rowCount() - 2): @@ -770,12 +751,6 @@ class ExcellonObject(FlatCAMObj, Excellon): current_widget.returnPressed.connect(self.form_to_storage) def ui_disconnect(self): - """ - Will disconnect all signals in the Excellon UI that needs to be disconnected - - :return: None - :rtype: - """ # selective plotting for row in range(self.ui.tools_table.rowCount()): try: @@ -818,12 +793,6 @@ class ExcellonObject(FlatCAMObj, Excellon): pass def on_row_selection_change(self): - """ - Called when the user clicks on a row in Tools Table - - :return: None - :rtype: - """ self.ui_disconnect() sel_rows = [] @@ -874,14 +843,6 @@ class ExcellonObject(FlatCAMObj, Excellon): self.ui_connect() def storage_to_form(self, dict_storage): - """ - Will update the GUI with data from the "storage" in this case the dict self.tools - - :param dict_storage: A dictionary holding the data relevant for gnerating Gcode from Excellon - :type dict_storage: dict - :return: None - :rtype: - """ for form_key in self.form_fields: for storage_key in dict_storage: if form_key == storage_key and form_key not in \ @@ -893,12 +854,6 @@ class ExcellonObject(FlatCAMObj, Excellon): pass def form_to_storage(self): - """ - Will update the 'storage' attribute which is the dict self.tools with data collected from GUI - - :return: None - :rtype: - """ if self.ui.tools_table.rowCount() == 0: # there is no tool in tool table so we can't save the GUI elements values to storage return @@ -927,14 +882,6 @@ class ExcellonObject(FlatCAMObj, Excellon): self.ui_connect() def on_operation_type(self, val): - """ - Called by a RadioSet activated_custom signal - - :param val: Parameter passes by the signal that called this method - :type val: str - :return: None - :rtype: - """ if val == 'mill': self.ui.mill_type_label.show() self.ui.milling_type_radio.show() @@ -963,10 +910,10 @@ class ExcellonObject(FlatCAMObj, Excellon): def get_selected_tools_list(self): """ Returns the keys to the self.tools dictionary corresponding - to the selections on the tool list in the AppGUI. + to the selections on the tool list in the GUI. - :return: List of tools. - :rtype: list + :return: List of tools. + :rtype: list """ return [str(x.text()) for x in self.ui.tools_table.selectedItems()] @@ -975,8 +922,8 @@ class ExcellonObject(FlatCAMObj, Excellon): """ Returns a list of lists, each list in the list is made out of row elements - :return: List of table_tools items. - :rtype: list + :return: List of table_tools items. + :rtype: list """ table_tools_items = [] for x in self.ui.tools_table.selectedItems(): @@ -1004,21 +951,7 @@ class ExcellonObject(FlatCAMObj, Excellon): def export_excellon(self, whole, fract, e_zeros=None, form='dec', factor=1, slot_type='routing'): """ Returns two values, first is a boolean , if 1 then the file has slots and second contain the Excellon code - - :param whole: Integer part digits - :type whole: int - :param fract: Fractional part digits - :type fract: int - :param e_zeros: Excellon zeros suppression: LZ or TZ - :type e_zeros: str - :param form: Excellon format: 'dec', - :type form: str - :param factor: Conversion factor - :type factor: float - :param slot_type: How to treat slots: "routing" or "drilling" - :type slot_type: str - :return: A tuple: (has_slots, Excellon_code) -> (bool, str) - :rtype: tuple + :return: has_slots and Excellon_code """ excellon_code = '' @@ -1185,25 +1118,13 @@ class ExcellonObject(FlatCAMObj, Excellon): def generate_milling_drills(self, tools=None, outname=None, tooldia=None, plot=False, use_thread=False): """ - Will generate an Geometry Object allowing to cut a drill hole instead of drilling it. - Note: This method is a good template for generic operations as it takes it's options from parameters or otherwise from the object's options and returns a (success, msg) tuple as feedback for shell operations. - :param tools: A list of tools where the drills are to be milled or a string: "all" - :type tools: - :param outname: the name of the resulting Geometry object - :type outname: str - :param tooldia: the tool diameter to be used in creation of the milling path (Geometry Object) - :type tooldia: float - :param plot: if to plot the resulting object - :type plot: bool - :param use_thread: if to use threading for creation of the Geometry object - :type use_thread: bool - :return: Success/failure condition tuple (bool, str). - :rtype: tuple + :return: Success/failure condition tuple (bool, str). + :rtype: tuple """ # Get the tools from the list. These are keys @@ -1246,15 +1167,6 @@ class ExcellonObject(FlatCAMObj, Excellon): return False, "Error: Milling tool is larger than hole." def geo_init(geo_obj, app_obj): - """ - - :param geo_obj: New object - :type geo_obj: GeometryObject - :param app_obj: App - :type app_obj: FlatCAMApp.App - :return: - :rtype: - """ assert geo_obj.kind == 'geometry', "Initializer expected a GeometryObject, got %s" % type(geo_obj) # ## Add properties to the object @@ -1267,7 +1179,7 @@ class ExcellonObject(FlatCAMObj, Excellon): geo_obj.options['Tools_in_use'] = tool_table_items geo_obj.options['type'] = 'Excellon Geometry' geo_obj.options["cnctooldia"] = str(tooldia) - geo_obj.options["multidepth"] = self.options["multidepth"] + geo_obj.solid_geometry = [] # in case that the tool used has the same diameter with the hole, and since the maximum resolution @@ -1284,8 +1196,8 @@ class ExcellonObject(FlatCAMObj, Excellon): Point(hole['point']).buffer(buffer_value).exterior) if use_thread: - def geo_thread(a_obj): - a_obj.app_obj.new_object("geometry", outname, geo_init, plot=plot) + def geo_thread(app_obj): + app_obj.new_object("geometry", outname, geo_init, plot=plot) # Create a promise with the new name self.app.collection.promise(outname) @@ -1293,31 +1205,19 @@ class ExcellonObject(FlatCAMObj, Excellon): # Send to worker self.app.worker_task.emit({'fcn': geo_thread, 'params': [self.app]}) else: - self.app.app_obj.new_object("geometry", outname, geo_init, plot=plot) + self.app.new_object("geometry", outname, geo_init, plot=plot) return True, "" - def generate_milling_slots(self, tools=None, outname=None, tooldia=None, plot=False, use_thread=False): + def generate_milling_slots(self, tools=None, outname=None, tooldia=None, plot=True, use_thread=False): """ - Will generate an Geometry Object allowing to cut/mill a slot hole. - Note: This method is a good template for generic operations as it takes it's options from parameters or otherwise from the object's options and returns a (success, msg) tuple as feedback for shell operations. - :param tools: A list of tools where the drills are to be milled or a string: "all" - :type tools: - :param outname: the name of the resulting Geometry object - :type outname: str - :param tooldia: the tool diameter to be used in creation of the milling path (Geometry Object) - :type tooldia: float - :param plot: if to plot the resulting object - :type plot: bool - :param use_thread: if to use threading for creation of the Geometry object - :type use_thread: bool - :return: Success/failure condition tuple (bool, str). - :rtype: tuple + :return: Success/failure condition tuple (bool, str). + :rtype: tuple """ # Get the tools from the list. These are keys @@ -1358,7 +1258,7 @@ class ExcellonObject(FlatCAMObj, Excellon): return False, "Error: Milling tool is larger than hole." def geo_init(geo_obj, app_obj): - assert geo_obj.kind == 'geometry', "Initializer expected a GeometryObject, got %s" % type(geo_obj) + assert geo_obj.kind == 'geometry' "Initializer expected a GeometryObject, got %s" % type(geo_obj) # ## Add properties to the object @@ -1370,7 +1270,7 @@ class ExcellonObject(FlatCAMObj, Excellon): geo_obj.options['Tools_in_use'] = tool_table_items geo_obj.options['type'] = 'Excellon Geometry' geo_obj.options["cnctooldia"] = str(tooldia) - geo_obj.options["multidepth"] = self.options["multidepth"] + geo_obj.solid_geometry = [] # in case that the tool used has the same diameter with the hole, and since the maximum resolution @@ -1400,8 +1300,8 @@ class ExcellonObject(FlatCAMObj, Excellon): geo_obj.solid_geometry.append(poly) if use_thread: - def geo_thread(a_obj): - a_obj.app_obj.new_object("geometry", outname + '_slot', geo_init, plot=plot) + def geo_thread(app_obj): + app_obj.new_object("geometry", outname + '_slot', geo_init, plot=plot) # Create a promise with the new name self.app.collection.promise(outname) @@ -1409,7 +1309,7 @@ class ExcellonObject(FlatCAMObj, Excellon): # Send to worker self.app.worker_task.emit({'fcn': geo_thread, 'params': [self.app]}) else: - self.app.app_obj.new_object("geometry", outname + '_slot', geo_init, plot=plot) + self.app.new_object("geometry", outname + '_slot', geo_init, plot=plot) return True, "" @@ -1417,13 +1317,13 @@ class ExcellonObject(FlatCAMObj, Excellon): self.app.defaults.report_usage("excellon_on_create_milling_drills button") self.read_form() - self.generate_milling_drills(use_thread=False, plot=True) + self.generate_milling_drills(use_thread=False) def on_generate_milling_slots_button_click(self, *args): self.app.defaults.report_usage("excellon_on_create_milling_slots_button") self.read_form() - self.generate_milling_slots(use_thread=False, plot=True) + self.generate_milling_slots(use_thread=False) def on_pp_changed(self): current_pp = self.ui.pp_excellon_name_cb.get_value() @@ -1543,7 +1443,7 @@ class ExcellonObject(FlatCAMObj, Excellon): job_name = self.options["name"] + "_cnc" pp_excellon_name = self.options["ppname_e"] - # Object initialization function for app.app_obj.new_object() + # Object initialization function for app.new_object() def job_init(job_obj, app_obj): assert job_obj.kind == 'cncjob', "Initializer expected a CNCJobObject, got %s" % type(job_obj) @@ -1606,9 +1506,9 @@ class ExcellonObject(FlatCAMObj, Excellon): job_obj.create_geometry() # To be run in separate thread - def job_thread(a_obj): + def job_thread(app_obj): with self.app.proc_container.new(_("Generating CNC Code")): - a_obj.app_obj.new_object("cncjob", job_name, job_init) + app_obj.new_object("cncjob", job_name, job_init) # Create promise for the new name. self.app.collection.promise(job_name) @@ -1756,12 +1656,6 @@ class ExcellonObject(FlatCAMObj, Excellon): self.read_form_item('solid') self.plot() - def on_multicolored_cb_click(self, *args): - if self.muted_ui: - return - self.read_form_item('multicolored') - self.plot() - def on_plot_cb_click(self, *args): if self.muted_ui: return @@ -1835,27 +1729,6 @@ class ExcellonObject(FlatCAMObj, Excellon): if not FlatCAMObj.plot(self): return - if self.app.is_legacy is False: - def random_color(): - r_color = np.random.rand(4) - r_color[3] = 1 - return r_color - else: - def random_color(): - while True: - r_color = np.random.rand(4) - r_color[3] = 1 - - new_color = '#' - for idx in range(len(r_color)): - new_color += '%x' % int(r_color[idx] * 255) - # do it until a valid color is generated - # a valid color has the # symbol, another 6 chars for the color and the last 2 chars for alpha - # for a total of 9 chars - if len(new_color) == 9: - break - return new_color - # try: # # Plot Excellon (All polygons?) # if self.options["solid"]: @@ -1887,26 +1760,12 @@ class ExcellonObject(FlatCAMObj, Excellon): try: # Plot Excellon (All polygons?) if self.options["solid"]: - # for geo in self.solid_geometry: - # self.add_shape(shape=geo, - # color=self.outline_color, - # face_color=random_color() if self.options['multicolored'] else self.fill_color, - # visible=visible, - # layer=2) - - # plot polygons for each tool separately - for tool in self.tools: - # set the color here so we have one color for each tool - geo_color = random_color() - - # tool is a dict also - for geo in self.tools[tool]["solid_geometry"]: - self.add_shape(shape=geo, - color=geo_color if self.options['multicolored'] else self.outline_color, - face_color=geo_color if self.options['multicolored'] else self.fill_color, - visible=visible, - layer=2) - + for geo in self.solid_geometry: + self.add_shape(shape=geo, + color=self.outline_color, + face_color=self.fill_color, + visible=visible, + layer=2) else: for geo in self.solid_geometry: self.add_shape(shape=geo.exterior, color='red', visible=visible) diff --git a/AppObjects/FlatCAMGeometry.py b/flatcamObjects/FlatCAMGeometry.py similarity index 96% rename from AppObjects/FlatCAMGeometry.py rename to flatcamObjects/FlatCAMGeometry.py index cdb4b9ad..dfde372f 100644 --- a/AppObjects/FlatCAMGeometry.py +++ b/flatcamObjects/FlatCAMGeometry.py @@ -15,7 +15,7 @@ import shapely.affinity as affinity from camlib import Geometry -from AppObjects.FlatCAMObj import * +from flatcamObjects.FlatCAMObj import * import ezdxf import math @@ -24,7 +24,7 @@ from copy import deepcopy import traceback import gettext -import AppTranslation as fcTranslate +import FlatCAMTranslation as fcTranslate import builtins fcTranslate.apply_language('strings') @@ -52,7 +52,6 @@ class GeometryObject(FlatCAMObj, Geometry): self.options.update({ "plot": True, - "multicolored": False, "cutz": -0.002, "vtipdia": 0.1, "vtipangle": 30, @@ -305,9 +304,25 @@ class GeometryObject(FlatCAMObj, Geometry): self.set_tool_offset_visibility(selected_row) - # ----------------------------- + # HACK: for whatever reasons the name in Selected tab is reverted to the original one after a successful rename + # done in the collection view but only for Geometry objects. Perhaps some references remains. Should be fixed. + self.ui.name_entry.set_value(self.options['name']) + self.ui_connect() + + self.ui.e_cut_entry.setDisabled(False) if self.ui.extracut_cb.get_value() else \ + self.ui.e_cut_entry.setDisabled(True) + + # set the text on tool_data_label after loading the object + sel_rows = [] + sel_items = self.ui.geo_tools_table.selectedItems() + for it in sel_items: + sel_rows.append(it.row()) + if len(sel_rows) > 1: + self.ui.tool_data_label.setText( + "%s: %s" % (_('Parameters for'), _("Multiple Tools")) + ) + # Build Exclusion Areas section - # ----------------------------- e_len = len(self.app.exc_areas.exclusion_areas_storage) self.ui.exclusion_table.setRowCount(e_len) @@ -359,27 +374,6 @@ class GeometryObject(FlatCAMObj, Geometry): self.ui.exclusion_table.setMinimumHeight(self.ui.exclusion_table.getHeight()) self.ui.exclusion_table.setMaximumHeight(self.ui.exclusion_table.getHeight()) - # End Build Exclusion Areas - # ----------------------------- - - # HACK: for whatever reasons the name in Selected tab is reverted to the original one after a successful rename - # done in the collection view but only for Geometry objects. Perhaps some references remains. Should be fixed. - self.ui.name_entry.set_value(self.options['name']) - self.ui_connect() - - self.ui.e_cut_entry.setDisabled(False) if self.ui.extracut_cb.get_value() else \ - self.ui.e_cut_entry.setDisabled(True) - - # set the text on tool_data_label after loading the object - sel_rows = [] - sel_items = self.ui.geo_tools_table.selectedItems() - for it in sel_items: - sel_rows.append(it.row()) - if len(sel_rows) > 1: - self.ui.tool_data_label.setText( - "%s: %s" % (_('Parameters for'), _("Multiple Tools")) - ) - def set_ui(self, ui): FlatCAMObj.set_ui(self, ui) @@ -397,7 +391,6 @@ class GeometryObject(FlatCAMObj, Geometry): self.form_fields.update({ "plot": self.ui.plot_cb, - "multicolored": self.ui.multicolored_cb, "cutz": self.ui.cutz_entry, "vtipdia": self.ui.tipdia_entry, "vtipangle": self.ui.tipangle_entry, @@ -593,8 +586,6 @@ class GeometryObject(FlatCAMObj, Geometry): self.ui.extracut_cb.toggled.connect(lambda state: self.ui.e_cut_entry.setDisabled(not state)) self.ui.plot_cb.stateChanged.connect(self.on_plot_cb_click) - self.ui.multicolored_cb.stateChanged.connect(self.on_multicolored_cb_click) - self.ui.generate_cnc_button.clicked.connect(self.on_generatecnc_button_click) self.ui.paint_tool_button.clicked.connect(lambda: self.app.paint_tool.run(toggle=False)) self.ui.generate_ncc_button.clicked.connect(lambda: self.app.ncclear_tool.run(toggle=False)) @@ -661,7 +652,8 @@ class GeometryObject(FlatCAMObj, Geometry): self.ui.tool_offset_entry.get_value().replace(',', '.') ) except ValueError: - self.app.inform.emit('[ERROR_NOTCL] %s' % _("Wrong value format entered, use a number.")) + self.app.inform.emit('[ERROR_NOTCL] %s' % + _("Wrong value format entered, use a number.")) return def ui_connect(self): @@ -669,7 +661,6 @@ class GeometryObject(FlatCAMObj, Geometry): # changes in geometry UI for i in self.param_fields: current_widget = self.param_fields[i] - if isinstance(current_widget, FCCheckBox): current_widget.stateChanged.connect(self.gui_form_to_storage) elif isinstance(current_widget, FCComboBox): @@ -940,7 +931,7 @@ class GeometryObject(FlatCAMObj, Geometry): self.ui_connect() self.build_ui() - # if there is no tool left in the Tools Table, enable the parameters AppGUI + # if there is no tool left in the Tools Table, enable the parameters GUI if self.ui.geo_tools_table.rowCount() != 0: self.ui.geo_param_frame.setDisabled(False) @@ -1016,7 +1007,7 @@ class GeometryObject(FlatCAMObj, Geometry): self.ui_connect() self.build_ui() - # if there is no tool left in the Tools Table, enable the parameters AppGUI + # if there is no tool left in the Tools Table, enable the parameters GUI if self.ui.geo_tools_table.rowCount() != 0: self.ui.geo_param_frame.setDisabled(False) @@ -1197,7 +1188,7 @@ class GeometryObject(FlatCAMObj, Geometry): obj_active.options['xmax'] = 0 obj_active.options['ymax'] = 0 - # if there is no tool left in the Tools Table, disable the parameters AppGUI + # if there is no tool left in the Tools Table, disable the parameters GUI if self.ui.geo_tools_table.rowCount() == 0: self.ui.geo_param_frame.setDisabled(True) @@ -1391,18 +1382,16 @@ class GeometryObject(FlatCAMObj, Geometry): self.ui_connect() def gui_form_to_storage(self): - self.ui_disconnect() - if self.ui.geo_tools_table.rowCount() == 0: # there is no tool in tool table so we can't save the GUI elements values to storage log.debug("GeometryObject.gui_form_to_storage() --> no tool in Tools Table, aborting.") return + self.ui_disconnect() widget_changed = self.sender() try: widget_idx = self.ui.grid3.indexOf(widget_changed) - except Exception as e: - log.debug("GeometryObject.gui_form_to_storage() -- wdg index -> %s" % str(e)) + except Exception: return # those are the indexes for the V-Tip Dia and V-Tip Angle, if edited calculate the new Cut Z @@ -1759,7 +1748,7 @@ class GeometryObject(FlatCAMObj, Geometry): :param tools_dict: a dictionary that holds the whole data needed to create the Gcode (including the solid_geometry) :param tools_in_use: the tools that are used, needed by some preprocessors - :type tools_in_use list of lists, each list in the list is made out of row elements of tools table from AppGUI + :type tools_in_use list of lists, each list in the list is made out of row elements of tools table from GUI :param segx: number of segments on the X axis, for auto-levelling :param segy: number of segments on the Y axis, for auto-levelling :param plot: if True the generated object will be plotted; if False will not be plotted @@ -1789,7 +1778,7 @@ class GeometryObject(FlatCAMObj, Geometry): self.app.inform.emit(msg) return - # Object initialization function for app.app_obj.new_object() + # Object initialization function for app.new_object() # RUNNING ON SEPARATE THREAD! def job_init_single_geometry(job_obj, app_obj): log.debug("Creating a CNCJob out of a single-geometry") @@ -1929,7 +1918,7 @@ class GeometryObject(FlatCAMObj, Geometry): }) dia_cnc_dict.clear() - # Object initialization function for app.app_obj.new_object() + # Object initialization function for app.new_object() # RUNNING ON SEPARATE THREAD! def job_init_multi_geometry(job_obj, app_obj): log.debug("Creating a CNCJob out of a multi-geometry") @@ -2083,15 +2072,15 @@ class GeometryObject(FlatCAMObj, Geometry): if use_thread: # To be run in separate thread - def job_thread(a_obj): + def job_thread(app_obj): if self.multigeo is False: with self.app.proc_container.new(_("Generating CNC Code")): - if a_obj.app_obj.new_object("cncjob", outname, job_init_single_geometry, plot=plot) != 'fail': - a_obj.inform.emit('[success] %s: %s' % (_("CNCjob created"), outname)) + if app_obj.new_object("cncjob", outname, job_init_single_geometry, plot=plot) != 'fail': + app_obj.inform.emit('[success] %s: %s' % (_("CNCjob created"), outname)) else: with self.app.proc_container.new(_("Generating CNC Code")): - if a_obj.app_obj.new_object("cncjob", outname, job_init_multi_geometry) != 'fail': - a_obj.inform.emit('[success] %s: %s' % (_("CNCjob created"), outname)) + if app_obj.new_object("cncjob", outname, job_init_multi_geometry) != 'fail': + app_obj.inform.emit('[success] %s: %s' % (_("CNCjob created"), outname)) # Create a promise with the name self.app.collection.promise(outname) @@ -2099,15 +2088,23 @@ class GeometryObject(FlatCAMObj, Geometry): self.app.worker_task.emit({'fcn': job_thread, 'params': [self.app]}) else: if self.solid_geometry: - self.app.app_obj.new_object("cncjob", outname, job_init_single_geometry, plot=plot) + self.app.new_object("cncjob", outname, job_init_single_geometry, plot=plot) else: - self.app.app_obj.new_object("cncjob", outname, job_init_multi_geometry, plot=plot) + self.app.new_object("cncjob", outname, job_init_multi_geometry, plot=plot) - def generatecncjob(self, outname=None, dia=None, offset=None, z_cut=None, z_move=None, - feedrate=None, feedrate_z=None, feedrate_rapid=None, spindlespeed=None, dwell=None, dwelltime=None, - multidepth=None, dpp=None, toolchange=None, toolchangez=None, toolchangexy=None, - extracut=None, extracut_length=None, startz=None, endz=None, endxy=None, pp=None, segx=None, segy=None, - use_thread=True, plot=True): + def generatecncjob( + self, outname=None, + dia=None, offset=None, + z_cut=None, z_move=None, + feedrate=None, feedrate_z=None, feedrate_rapid=None, + spindlespeed=None, dwell=None, dwelltime=None, + multidepth=None, depthperpass=None, + toolchange=None, toolchangez=None, toolchangexy=None, + extracut=None, extracut_length=None, startz=None, endz=None, + pp=None, + segx=None, segy=None, + use_thread=True, + plot=True): """ Only used by the TCL Command Cncjob. Creates a CNCJob out of this Geometry object. The actual @@ -2126,17 +2123,14 @@ class GeometryObject(FlatCAMObj, Geometry): :param dwell: :param dwelltime: :param multidepth: - :param dpp: Depth for each pass when multidepth parameter is True + :param depthperpass: :param toolchange: :param toolchangez: - :param toolchangexy: A sequence ox X,Y coordinates: a 2-length tuple or a string. - Coordinates in X,Y plane for the Toolchange event + :param toolchangexy: :param extracut: :param extracut_length: :param startz: :param endz: - :param endxy: A sequence ox X,Y coordinates: a 2-length tuple or a string. - Coordinates in X, Y plane for the last move after ending the job. :param pp: Name of the preprocessor :param segx: :param segy: @@ -2156,7 +2150,7 @@ class GeometryObject(FlatCAMObj, Geometry): feedrate_rapid = feedrate_rapid if feedrate_rapid is not None else float(self.options["feedrate_rapid"]) multidepth = multidepth if multidepth is not None else self.options["multidepth"] - depthperpass = dpp if dpp is not None else float(self.options["depthperpass"]) + depthperpass = depthperpass if depthperpass is not None else float(self.options["depthperpass"]) segx = segx if segx is not None else float(self.app.defaults['geometry_segx']) segy = segy if segy is not None else float(self.app.defaults['geometry_segy']) @@ -2166,21 +2160,10 @@ class GeometryObject(FlatCAMObj, Geometry): startz = startz if startz is not None else self.options["startz"] endz = endz if endz is not None else float(self.options["endz"]) - - endxy = endxy if endxy else self.options["endxy"] - if isinstance(endxy, str): - endxy = re.sub('[()\[\]]', '', endxy) - if endxy and endxy != '': - endxy = [float(eval(a)) for a in endxy.split(",")] + endxy = self.options["endxy"] toolchangez = toolchangez if toolchangez else float(self.options["toolchangez"]) - toolchangexy = toolchangexy if toolchangexy else self.options["toolchangexy"] - if isinstance(toolchangexy, str): - toolchangexy = re.sub('[()\[\]]', '', toolchangexy) - if toolchangexy and toolchangexy != '': - toolchangexy = [float(eval(a)) for a in toolchangexy.split(",")] - toolchange = toolchange if toolchange else self.options["toolchange"] offset = offset if offset else 0.0 @@ -2192,7 +2175,7 @@ class GeometryObject(FlatCAMObj, Geometry): ppname_g = pp if pp else self.options["ppname_g"] - # Object initialization function for app.app_obj.new_object() + # Object initialization function for app.new_object() # RUNNING ON SEPARATE THREAD! def job_init(job_obj, app_obj): assert job_obj.kind == 'cncjob', "Initializer expected a CNCJobObject, got %s" % type(job_obj) @@ -2241,7 +2224,7 @@ class GeometryObject(FlatCAMObj, Geometry): # To be run in separate thread def job_thread(app_obj): with self.app.proc_container.new(_("Generating CNC Code")): - app_obj.app_obj.new_object("cncjob", outname, job_init, plot=plot) + app_obj.new_object("cncjob", outname, job_init, plot=plot) app_obj.inform.emit('[success] %s: %s' % (_("CNCjob created")), outname) # Create a promise with the name @@ -2249,7 +2232,7 @@ class GeometryObject(FlatCAMObj, Geometry): # Send to worker self.app.worker_task.emit({'fcn': job_thread, 'params': [self.app]}) else: - self.app.app_obj.new_object("cncjob", outname, job_init, plot=plot) + self.app.new_object("cncjob", outname, job_init, plot=plot) # def on_plot_cb_click(self, *args): # if self.muted_ui: @@ -2669,27 +2652,6 @@ class GeometryObject(FlatCAMObj, Geometry): if not FlatCAMObj.plot(self): return - if self.app.is_legacy is False: - def random_color(): - r_color = np.random.rand(4) - r_color[3] = 1 - return r_color - else: - def random_color(): - while True: - r_color = np.random.rand(4) - r_color[3] = 1 - - new_color = '#' - for idx in range(len(r_color)): - new_color += '%x' % int(r_color[idx] * 255) - # do it until a valid color is generated - # a valid color has the # symbol, another 6 chars for the color and the last 2 chars for alpha - # for a total of 9 chars - if len(new_color) == 9: - break - return new_color - try: # plot solid geometries found as members of self.tools attribute dict # for MultiGeo @@ -2697,8 +2659,7 @@ class GeometryObject(FlatCAMObj, Geometry): for tooluid_key in self.tools: solid_geometry = self.tools[tooluid_key]['solid_geometry'] self.plot_element(solid_geometry, visible=visible, - color=random_color() if self.options['multicolored'] - else self.app.defaults["geometry_plot_line"]) + color=self.app.defaults["geometry_plot_line"]) else: # plot solid geometry that may be an direct attribute of the geometry object # for SingleGeo @@ -2766,12 +2727,6 @@ class GeometryObject(FlatCAMObj, Geometry): self.ui.plot_cb.setChecked(True) self.ui_connect() - def on_multicolored_cb_click(self, *args): - if self.muted_ui: - return - self.read_form_item('multicolored') - self.plot() - @staticmethod def merge(geo_list, geo_final, multigeo=None): """ diff --git a/AppObjects/FlatCAMGerber.py b/flatcamObjects/FlatCAMGerber.py similarity index 76% rename from AppObjects/FlatCAMGerber.py rename to flatcamObjects/FlatCAMGerber.py index b2a56112..e3c80f71 100644 --- a/AppObjects/FlatCAMGerber.py +++ b/flatcamObjects/FlatCAMGerber.py @@ -14,15 +14,15 @@ from shapely.geometry import Point, Polygon, MultiPolygon, MultiLineString, LineString, LinearRing from shapely.ops import cascaded_union -from AppParsers.ParseGerber import Gerber -from AppObjects.FlatCAMObj import * +from flatcamParsers.ParseGerber import Gerber +from flatcamObjects.FlatCAMObj import * import math import numpy as np from copy import deepcopy import gettext -import AppTranslation as fcTranslate +import FlatCAMTranslation as fcTranslate import builtins fcTranslate.apply_language('strings') @@ -115,13 +115,23 @@ class GerberObject(FlatCAMObj, Gerber): "plot": True, "multicolored": False, "solid": False, + "tool_type": 'circular', + "vtipdia": 0.1, + "vtipangle": 30, + "vcutz": -0.05, + "isotooldia": 0.016, + "isopasses": 1, + "isooverlap": 15, + "milling_type": "cl", + "combine_passes": True, "noncoppermargin": 0.0, "noncopperrounded": False, "bboxmargin": 0.0, "bboxrounded": False, "aperture_display": False, "follow": False, - "milling_type": 'cl', + "iso_scope": 'all', + "iso_type": 'full' }) # type of isolation: 0 = exteriors, 1 = interiors, 2 = complete isolation (both interiors and exteriors) @@ -187,44 +197,88 @@ class GerberObject(FlatCAMObj, Gerber): "plot": self.ui.plot_cb, "multicolored": self.ui.multicolored_cb, "solid": self.ui.solid_cb, + "tool_type": self.ui.tool_type_radio, + "vtipdia": self.ui.tipdia_spinner, + "vtipangle": self.ui.tipangle_spinner, + "vcutz": self.ui.cutz_spinner, + "isotooldia": self.ui.iso_tool_dia_entry, + "isopasses": self.ui.iso_width_entry, + "isooverlap": self.ui.iso_overlap_entry, + "milling_type": self.ui.milling_type_radio, + "combine_passes": self.ui.combine_passes_cb, "noncoppermargin": self.ui.noncopper_margin_entry, "noncopperrounded": self.ui.noncopper_rounded_cb, "bboxmargin": self.ui.bbmargin_entry, "bboxrounded": self.ui.bbrounded_cb, "aperture_display": self.ui.aperture_table_visibility_cb, - "follow": self.ui.follow_cb + "follow": self.ui.follow_cb, + "iso_scope": self.ui.iso_scope_radio, + "iso_type": self.ui.iso_type_radio }) # Fill form fields only on object create self.to_form() assert isinstance(self.ui, GerberObjectUI) - self.ui.plot_cb.stateChanged.connect(self.on_plot_cb_click) self.ui.solid_cb.stateChanged.connect(self.on_solid_cb_click) self.ui.multicolored_cb.stateChanged.connect(self.on_multicolored_cb_click) - - # Tools - self.ui.iso_button.clicked.connect(self.app.isolation_tool.run) + self.ui.generate_iso_button.clicked.connect(self.on_iso_button_click) self.ui.generate_ncc_button.clicked.connect(self.app.ncclear_tool.run) self.ui.generate_cutout_button.clicked.connect(self.app.cutout_tool.run) - self.ui.generate_bb_button.clicked.connect(self.on_generatebb_button_click) self.ui.generate_noncopper_button.clicked.connect(self.on_generatenoncopper_button_click) self.ui.aperture_table_visibility_cb.stateChanged.connect(self.on_aperture_table_visibility_change) self.ui.follow_cb.stateChanged.connect(self.on_follow_cb_click) + # set the model for the Area Exception comboboxes + self.ui.obj_combo.setModel(self.app.collection) + self.ui.obj_combo.setRootModelIndex(self.app.collection.index(0, 0, QtCore.QModelIndex())) + self.ui.obj_combo.is_last = True + self.ui.obj_combo.obj_type = { + _("Gerber"): "Gerber", _("Geometry"): "Geometry" + }[self.ui.type_obj_combo.get_value()] + self.on_type_obj_index_changed() + + self.ui.type_obj_combo.currentIndexChanged.connect(self.on_type_obj_index_changed) + + self.ui.tool_type_radio.activated_custom.connect(self.on_tool_type_change) + # establish visibility for the GUI elements found in the slot function + self.ui.tool_type_radio.activated_custom.emit(self.options['tool_type']) + # Show/Hide Advanced Options if self.app.defaults["global_app_level"] == 'b': self.ui.level.setText('%s' % _('Basic')) + self.options['tool_type'] = 'circular' + + self.ui.tool_type_label.hide() + self.ui.tool_type_radio.hide() + + # override the Preferences Value; in Basic mode the Tool Type is always Circular ('C1') + self.ui.tool_type_radio.set_value('circular') + + self.ui.tipdialabel.hide() + self.ui.tipdia_spinner.hide() + self.ui.tipanglelabel.hide() + self.ui.tipangle_spinner.hide() + self.ui.cutzlabel.hide() + self.ui.cutz_spinner.hide() self.ui.apertures_table_label.hide() self.ui.aperture_table_visibility_cb.hide() + self.ui.milling_type_label.hide() + self.ui.milling_type_radio.hide() + self.ui.iso_type_label.hide() + self.ui.iso_type_radio.hide() self.ui.follow_cb.hide() - + self.ui.except_cb.setChecked(False) + self.ui.except_cb.hide() else: self.ui.level.setText('%s' % _('Advanced')) + self.ui.tipdia_spinner.valueChanged.connect(self.on_calculate_tooldia) + self.ui.tipangle_spinner.valueChanged.connect(self.on_calculate_tooldia) + self.ui.cutz_spinner.valueChanged.connect(self.on_calculate_tooldia) if self.app.defaults["gerber_buffering"] == 'no': self.ui.create_buffer_button.show() @@ -242,6 +296,58 @@ class GerberObject(FlatCAMObj, Gerber): self.build_ui() self.units_found = self.app.defaults['units'] + def on_calculate_tooldia(self): + try: + tdia = float(self.ui.tipdia_spinner.get_value()) + except Exception: + return + try: + dang = float(self.ui.tipangle_spinner.get_value()) + except Exception: + return + try: + cutz = float(self.ui.cutz_spinner.get_value()) + except Exception: + return + + cutz *= -1 + if cutz < 0: + cutz *= -1 + + half_tip_angle = dang / 2 + + tool_diameter = tdia + (2 * cutz * math.tan(math.radians(half_tip_angle))) + self.ui.iso_tool_dia_entry.set_value(tool_diameter) + + def on_type_obj_index_changed(self): + val = self.ui.type_obj_combo.get_value() + obj_type = {"Gerber": 0, "Geometry": 2}[val] + self.ui.obj_combo.setRootModelIndex(self.app.collection.index(obj_type, 0, QtCore.QModelIndex())) + self.ui.obj_combo.setCurrentIndex(0) + self.ui.obj_combo.obj_type = {_("Gerber"): "Gerber", _("Geometry"): "Geometry"}[val] + + def on_tool_type_change(self, state): + if state == 'circular': + self.ui.tipdialabel.hide() + self.ui.tipdia_spinner.hide() + self.ui.tipanglelabel.hide() + self.ui.tipangle_spinner.hide() + self.ui.cutzlabel.hide() + self.ui.cutz_spinner.hide() + self.ui.iso_tool_dia_entry.setDisabled(False) + # update the value in the self.iso_tool_dia_entry once this is selected + self.ui.iso_tool_dia_entry.set_value(self.options['isotooldia']) + else: + self.ui.tipdialabel.show() + self.ui.tipdia_spinner.show() + self.ui.tipanglelabel.show() + self.ui.tipangle_spinner.show() + self.ui.cutzlabel.show() + self.ui.cutz_spinner.show() + self.ui.iso_tool_dia_entry.setDisabled(True) + # update the value in the self.iso_tool_dia_entry once this is selected + self.on_calculate_tooldia() + def build_ui(self): FlatCAMObj.build_ui(self) @@ -424,7 +530,7 @@ class GerberObject(FlatCAMObj, Gerber): return "fail" geo_obj.solid_geometry = non_copper - self.app.app_obj.new_object("geometry", name, geo_init) + self.app.new_object("geometry", name, geo_init) def on_generatebb_button_click(self, *args): self.app.defaults.report_usage("gerber_on_generatebb_button") @@ -450,24 +556,244 @@ class GerberObject(FlatCAMObj, Gerber): return "fail" geo_obj.solid_geometry = bounding_box - self.app.app_obj.new_object("geometry", name, geo_init) + self.app.new_object("geometry", name, geo_init) + + def on_iso_button_click(self, *args): + + obj = self.app.collection.get_active() + + self.iso_type = 2 + if self.ui.iso_type_radio.get_value() == 'ext': + self.iso_type = 0 + if self.ui.iso_type_radio.get_value() == 'int': + self.iso_type = 1 + + def worker_task(iso_obj, app_obj): + with self.app.proc_container.new(_("Isolating...")): + if self.ui.follow_cb.get_value() is True: + iso_obj.follow_geo() + # in the end toggle the visibility of the origin object so we can see the generated Geometry + iso_obj.ui.plot_cb.toggle() + else: + app_obj.defaults.report_usage("gerber_on_iso_button") + self.read_form() + + iso_scope = 'all' if self.ui.iso_scope_radio.get_value() == 'all' else 'single' + self.isolate_handler(iso_type=self.iso_type, iso_scope=iso_scope) + + self.app.worker_task.emit({'fcn': worker_task, 'params': [obj, self.app]}) + + def follow_geo(self, outname=None): + """ + Creates a geometry object "following" the gerber paths. + + :return: None + """ + + # default_name = self.options["name"] + "_follow" + # follow_name = outname or default_name + + if outname is None: + follow_name = self.options["name"] + "_follow" + else: + follow_name = outname + + def follow_init(follow_obj, app): + # Propagate options + follow_obj.options["cnctooldia"] = str(self.options["isotooldia"]) + follow_obj.solid_geometry = self.follow_geometry + + # TODO: Do something if this is None. Offer changing name? + try: + self.app.new_object("geometry", follow_name, follow_init) + except Exception as e: + return "Operation failed: %s" % str(e) + + def isolate_handler(self, iso_type, iso_scope): + + if iso_scope == 'all': + self.isolate(iso_type=iso_type) + else: + # disengage the grid snapping since it may be hard to click on polygons with grid snapping on + if self.app.ui.grid_snap_btn.isChecked(): + self.grid_status_memory = True + self.app.ui.grid_snap_btn.trigger() + else: + self.grid_status_memory = False + + self.mr = self.app.plotcanvas.graph_event_connect('mouse_release', self.on_mouse_click_release) + + if self.app.is_legacy is False: + self.app.plotcanvas.graph_event_disconnect('mouse_release', self.app.on_mouse_click_release_over_plot) + else: + self.app.plotcanvas.graph_event_disconnect(self.app.mr) + + self.app.inform.emit('[WARNING_NOTCL] %s' % _("Click on a polygon to isolate it.")) + + def on_mouse_click_release(self, event): + if self.app.is_legacy is False: + event_pos = event.pos + right_button = 2 + self.app.event_is_dragging = self.app.event_is_dragging + else: + event_pos = (event.xdata, event.ydata) + right_button = 3 + self.app.event_is_dragging = self.app.ui.popMenu.mouse_is_panning + + try: + x = float(event_pos[0]) + y = float(event_pos[1]) + except TypeError: + return + + event_pos = (x, y) + curr_pos = self.app.plotcanvas.translate_coords(event_pos) + if self.app.grid_status(): + curr_pos = self.app.geo_editor.snap(curr_pos[0], curr_pos[1]) + else: + curr_pos = (curr_pos[0], curr_pos[1]) + + if event.button == 1: + clicked_poly = self.find_polygon(point=(curr_pos[0], curr_pos[1])) + + if self.app.selection_type is not None: + self.selection_area_handler(self.app.pos, curr_pos, self.app.selection_type) + self.app.selection_type = None + elif clicked_poly: + if clicked_poly not in self.poly_dict.values(): + shape_id = self.app.tool_shapes.add(tolerance=self.drawing_tolerance, layer=0, shape=clicked_poly, + color=self.app.defaults['global_sel_draw_color'] + 'AF', + face_color=self.app.defaults['global_sel_draw_color'] + 'AF', + visible=True) + self.poly_dict[shape_id] = clicked_poly + self.app.inform.emit( + '%s: %d. %s' % (_("Added polygon"), int(len(self.poly_dict)), + _("Click to add next polygon or right click to start isolation.")) + ) + else: + try: + for k, v in list(self.poly_dict.items()): + if v == clicked_poly: + self.app.tool_shapes.remove(k) + self.poly_dict.pop(k) + break + except TypeError: + return + self.app.inform.emit( + '%s. %s' % (_("Removed polygon"), + _("Click to add/remove next polygon or right click to start isolation.")) + ) + + self.app.tool_shapes.redraw() + else: + self.app.inform.emit(_("No polygon detected under click position.")) + elif event.button == right_button and self.app.event_is_dragging is False: + # restore the Grid snapping if it was active before + if self.grid_status_memory is True: + self.app.ui.grid_snap_btn.trigger() + + if self.app.is_legacy is False: + self.app.plotcanvas.graph_event_disconnect('mouse_release', self.on_mouse_click_release) + else: + self.app.plotcanvas.graph_event_disconnect(self.mr) + + self.app.mr = self.app.plotcanvas.graph_event_connect('mouse_release', + self.app.on_mouse_click_release_over_plot) + + self.app.tool_shapes.clear(update=True) + + if self.poly_dict: + poly_list = deepcopy(list(self.poly_dict.values())) + self.isolate(iso_type=self.iso_type, geometry=poly_list) + self.poly_dict.clear() + else: + self.app.inform.emit('[ERROR_NOTCL] %s' % _("List of single polygons is empty. Aborting.")) + + def selection_area_handler(self, start_pos, end_pos, sel_type): + """ + :param start_pos: mouse position when the selection LMB click was done + :param end_pos: mouse position when the left mouse button is released + :param sel_type: if True it's a left to right selection (enclosure), if False it's a 'touch' selection + :return: + """ + poly_selection = Polygon([start_pos, (end_pos[0], start_pos[1]), end_pos, (start_pos[0], end_pos[1])]) + + # delete previous selection shape + self.app.delete_selection_shape() + + added_poly_count = 0 + try: + for geo in self.solid_geometry: + if geo not in self.poly_dict.values(): + if sel_type is True: + if geo.within(poly_selection): + shape_id = self.app.tool_shapes.add(tolerance=self.drawing_tolerance, layer=0, + shape=geo, + color=self.app.defaults['global_sel_draw_color'] + 'AF', + face_color=self.app.defaults[ + 'global_sel_draw_color'] + 'AF', + visible=True) + self.poly_dict[shape_id] = geo + added_poly_count += 1 + else: + if poly_selection.intersects(geo): + shape_id = self.app.tool_shapes.add(tolerance=self.drawing_tolerance, layer=0, + shape=geo, + color=self.app.defaults['global_sel_draw_color'] + 'AF', + face_color=self.app.defaults[ + 'global_sel_draw_color'] + 'AF', + visible=True) + self.poly_dict[shape_id] = geo + added_poly_count += 1 + except TypeError: + if self.solid_geometry not in self.poly_dict.values(): + if sel_type is True: + if self.solid_geometry.within(poly_selection): + shape_id = self.app.tool_shapes.add(tolerance=self.drawing_tolerance, layer=0, + shape=self.solid_geometry, + color=self.app.defaults['global_sel_draw_color'] + 'AF', + face_color=self.app.defaults[ + 'global_sel_draw_color'] + 'AF', + visible=True) + self.poly_dict[shape_id] = self.solid_geometry + added_poly_count += 1 + else: + if poly_selection.intersects(self.solid_geometry): + shape_id = self.app.tool_shapes.add(tolerance=self.drawing_tolerance, layer=0, + shape=self.solid_geometry, + color=self.app.defaults['global_sel_draw_color'] + 'AF', + face_color=self.app.defaults[ + 'global_sel_draw_color'] + 'AF', + visible=True) + self.poly_dict[shape_id] = self.solid_geometry + added_poly_count += 1 + + if added_poly_count > 0: + self.app.tool_shapes.redraw() + self.app.inform.emit( + '%s: %d. %s' % (_("Added polygon"), + int(added_poly_count), + _("Click to add next polygon or right click to start isolation.")) + ) + else: + self.app.inform.emit(_("No polygon in selection.")) def isolate(self, iso_type=None, geometry=None, dia=None, passes=None, overlap=None, outname=None, combine=None, milling_type=None, follow=None, plot=True): """ Creates an isolation routing geometry object in the project. - :param iso_type: type of isolation to be done: 0 = exteriors, 1 = interiors and 2 = both - :param geometry: specific geometry to isolate - :param dia: Tool diameter - :param passes: Number of tool widths to cut - :param overlap: Overlap between passes in fraction of tool diameter - :param outname: Base name of the output object - :param combine: Boolean: if to combine passes in one resulting object in case of multiple passes - :param milling_type: type of milling: conventional or climbing + :param iso_type: type of isolation to be done: 0 = exteriors, 1 = interiors and 2 = both + :param geometry: specific geometry to isolate + :param dia: Tool diameter + :param passes: Number of tool widths to cut + :param overlap: Overlap between passes in fraction of tool diameter + :param outname: Base name of the output object + :param combine: Boolean: if to combine passes in one resulting object in case of multiple passes + :param milling_type: type of milling: conventional or climbing :param follow: Boolean: if to generate a 'follow' geometry - :param plot: Boolean: if to plot the resulting geometry object - :return: None + :param plot: Boolean: if to plot the resulting geometry object + :return: None """ if geometry is None: @@ -476,20 +802,20 @@ class GerberObject(FlatCAMObj, Gerber): work_geo = geometry if dia is None: - dia = float(self.app.defaults["tools_iso_tooldia"]) + dia = float(self.options["isotooldia"]) if passes is None: - passes = int(self.app.defaults["tools_iso_passes"]) + passes = int(self.options["isopasses"]) if overlap is None: - overlap = float(self.app.defaults["tools_iso_overlap"]) + overlap = float(self.options["isooverlap"]) overlap /= 100.0 - combine = self.app.defaults["tools_iso_combine_passes"] if combine is None else bool(combine) + combine = self.options["combine_passes"] if combine is None else bool(combine) if milling_type is None: - milling_type = self.app.defaults["tools_iso_milling_type"] + milling_type = self.options["milling_type"] if iso_type is None: iso_t = 2 @@ -511,16 +837,16 @@ class GerberObject(FlatCAMObj, Gerber): def iso_init(geo_obj, app_obj): # Propagate options - geo_obj.options["cnctooldia"] = str(dia) - geo_obj.tool_type = self.app.defaults["tools_iso_tool_type"] + geo_obj.options["cnctooldia"] = str(self.options["isotooldia"]) + geo_obj.tool_type = self.ui.tool_type_radio.get_value().upper() geo_obj.solid_geometry = [] # transfer the Cut Z and Vtip and VAngle values in case that we use the V-Shape tool in Gerber UI - if geo_obj.tool_type.lower() == 'v': - new_cutz = self.app.defaults["tools_iso_tool_cutz"] - new_vtipdia = self.app.defaults["tools_iso_tool_vtipdia"] - new_vtipangle = self.app.defaults["tools_iso_tool_vtipangle"] + if self.ui.tool_type_radio.get_value() == 'v': + new_cutz = self.ui.cutz_spinner.get_value() + new_vtipdia = self.ui.tipdia_spinner.get_value() + new_vtipangle = self.ui.tipangle_spinner.get_value() tool_type = 'V' else: new_cutz = self.app.defaults['geometry_cutz'] @@ -559,7 +885,7 @@ class GerberObject(FlatCAMObj, Gerber): geo_obj.tools['1'] = {} geo_obj.tools.update({ '1': { - 'tooldia': dia, + 'tooldia': float(self.options["isotooldia"]), 'offset': 'Path', 'offset_value': 0.0, 'type': _('Rough'), @@ -611,11 +937,12 @@ class GerberObject(FlatCAMObj, Gerber): # ############################################################ # ########## AREA SUBTRACTION ################################ # ############################################################ - # if self.app.defaults["tools_iso_except"]: - # self.app.proc_container.update_view_text(' %s' % _("Subtracting Geo")) - # geo_obj.solid_geometry = self.area_subtraction(geo_obj.solid_geometry) + if self.ui.except_cb.get_value(): + self.app.proc_container.update_view_text(' %s' % _("Subtracting Geo")) + geo_obj.solid_geometry = self.area_subtraction(geo_obj.solid_geometry) - self.app.app_obj.new_object("geometry", iso_name, iso_init, plot=plot) + # TODO: Do something if this is None. Offer changing name? + self.app.new_object("geometry", iso_name, iso_init, plot=plot) else: for i in range(passes): @@ -643,13 +970,17 @@ class GerberObject(FlatCAMObj, Gerber): def iso_init(geo_obj, app_obj): # Propagate options - geo_obj.options["cnctooldia"] = str(dia) - geo_obj.tool_type = self.app.defaults["tools_iso_tool_type"] + geo_obj.options["cnctooldia"] = str(self.options["isotooldia"]) + if self.ui.tool_type_radio.get_value() == 'v': + geo_obj.tool_type = 'V' + else: + geo_obj.tool_type = 'C1' # if milling type is climb then the move is counter-clockwise around features mill_dir = 1 if milling_type == 'cl' else 0 geom = self.generate_envelope(offset, mill_dir, geometry=work_geo, env_iso_type=iso_t, - follow=follow, nr_passes=i) + follow=follow, + nr_passes=i) if geom == 'fail': app_obj.inform.emit('[ERROR_NOTCL] %s' % _("Isolation geometry could not be generated.")) @@ -660,10 +991,10 @@ class GerberObject(FlatCAMObj, Gerber): # transfer the Cut Z and Vtip and VAngle values in case that we use the V-Shape tool in Gerber UI # even if the resulting geometry is not multigeo we add the tools dict which will hold the data # required to be transfered to the Geometry object - if self.app.defaults["tools_iso_tool_type"].lower() == 'v': - new_cutz = self.app.defaults["tools_iso_tool_cutz"] - new_vtipdia = self.app.defaults["tools_iso_tool_vtipdia"] - new_vtipangle = self.app.defaults["tools_iso_tool_vtipangle"] + if self.ui.tool_type_radio.get_value() == 'v': + new_cutz = self.ui.cutz_spinner.get_value() + new_vtipdia = self.ui.tipdia_spinner.get_value() + new_vtipangle = self.ui.tipangle_spinner.get_value() tool_type = 'V' else: new_cutz = self.app.defaults['geometry_cutz'] @@ -702,7 +1033,7 @@ class GerberObject(FlatCAMObj, Gerber): geo_obj.tools['1'] = {} geo_obj.tools.update({ '1': { - 'tooldia': dia, + 'tooldia': float(self.options["isotooldia"]), 'offset': 'Path', 'offset_value': 0.0, 'type': _('Rough'), @@ -736,11 +1067,12 @@ class GerberObject(FlatCAMObj, Gerber): # ############################################################ # ########## AREA SUBTRACTION ################################ # ############################################################ - # if self.app.defaults["tools_iso_except"]: - # self.app.proc_container.update_view_text(' %s' % _("Subtracting Geo")) - # geo_obj.solid_geometry = self.area_subtraction(geo_obj.solid_geometry) + if self.ui.except_cb.get_value(): + self.app.proc_container.update_view_text(' %s' % _("Subtracting Geo")) + geo_obj.solid_geometry = self.area_subtraction(geo_obj.solid_geometry) - self.app.app_obj.new_object("geometry", iso_name, iso_init, plot=plot) + # TODO: Do something if this is None. Offer changing name? + self.app.new_object("geometry", iso_name, iso_init, plot=plot) def generate_envelope(self, offset, invert, geometry=None, env_iso_type=2, follow=None, nr_passes=0): # isolation_geometry produces an envelope that is going on the left of the geometry @@ -782,28 +1114,64 @@ class GerberObject(FlatCAMObj, Gerber): return 'fail' return geom - def follow_geo(self, outname=None): + def area_subtraction(self, geo, subtractor_geo=None): """ - Creates a geometry object "following" the gerber paths. + Subtracts the subtractor_geo (if present else self.solid_geometry) from the geo - :return: None + :param geo: target geometry from which to subtract + :param subtractor_geo: geometry that acts as subtractor + :return: """ + new_geometry = [] + target_geo = geo - if outname is None: - follow_name = self.options["name"] + "_follow" + if subtractor_geo: + sub_union = cascaded_union(subtractor_geo) else: - follow_name = outname + name = self.ui.obj_combo.currentText() + subtractor_obj = self.app.collection.get_by_name(name) + sub_union = cascaded_union(subtractor_obj.solid_geometry) - def follow_init(follow_obj, app): - # Propagate options - follow_obj.options["cnctooldia"] = str(self.app.defaults["tools_iso_tooldia"]) - follow_obj.solid_geometry = self.follow_geometry - - # TODO: Do something if this is None. Offer changing name? try: - self.app.app_obj.new_object("geometry", follow_name, follow_init) - except Exception as e: - return "Operation failed: %s" % str(e) + for geo_elem in target_geo: + if isinstance(geo_elem, Polygon): + for ring in self.poly2rings(geo_elem): + new_geo = ring.difference(sub_union) + if new_geo and not new_geo.is_empty: + new_geometry.append(new_geo) + elif isinstance(geo_elem, MultiPolygon): + for poly in geo_elem: + for ring in self.poly2rings(poly): + new_geo = ring.difference(sub_union) + if new_geo and not new_geo.is_empty: + new_geometry.append(new_geo) + elif isinstance(geo_elem, LineString): + new_geo = geo_elem.difference(sub_union) + if new_geo: + if not new_geo.is_empty: + new_geometry.append(new_geo) + elif isinstance(geo_elem, MultiLineString): + for line_elem in geo_elem: + new_geo = line_elem.difference(sub_union) + if new_geo and not new_geo.is_empty: + new_geometry.append(new_geo) + except TypeError: + if isinstance(target_geo, Polygon): + for ring in self.poly2rings(target_geo): + new_geo = ring.difference(sub_union) + if new_geo: + if not new_geo.is_empty: + new_geometry.append(new_geo) + elif isinstance(target_geo, LineString): + new_geo = target_geo.difference(sub_union) + if new_geo and not new_geo.is_empty: + new_geometry.append(new_geo) + elif isinstance(target_geo, MultiLineString): + for line_elem in target_geo: + new_geo = line_elem.difference(sub_union) + if new_geo and not new_geo.is_empty: + new_geometry.append(new_geo) + return new_geometry def on_plot_cb_click(self, *args): if self.muted_ui: diff --git a/AppObjects/FlatCAMObj.py b/flatcamObjects/FlatCAMObj.py similarity index 92% rename from AppObjects/FlatCAMObj.py rename to flatcamObjects/FlatCAMObj.py index b2cf95d8..22a12117 100644 --- a/AppObjects/FlatCAMObj.py +++ b/flatcamObjects/FlatCAMObj.py @@ -12,15 +12,15 @@ import inspect # TODO: For debugging only. -from AppGUI.ObjectUI import * +from flatcamGUI.ObjectUI import * -from Common import LoudDict -from AppGUI.PlotCanvasLegacy import ShapeCollectionLegacy +from FlatCAMCommon import LoudDict +from flatcamGUI.PlotCanvasLegacy import ShapeCollectionLegacy import sys import gettext -import AppTranslation as fcTranslate +import FlatCAMTranslation as fcTranslate import builtins fcTranslate.apply_language('strings') @@ -43,7 +43,7 @@ class ValidationError(Exception): class FlatCAMObj(QtCore.QObject): """ Base type of objects handled in FlatCAM. These become interactive - in the AppGUI, can be plotted, and their options can be modified + in the GUI, can be plotted, and their options can be modified by the user in their respective forms. """ @@ -139,7 +139,7 @@ class FlatCAMObj(QtCore.QObject): except KeyError: log.debug("FlatCAMObj.from_dict() --> KeyError: %s. " "Means that we are loading an old project that don't" - "have all attributes in the latest application version." % str(attr)) + "have all attributes in the latest FlatCAM." % str(attr)) pass def on_options_change(self, key): @@ -182,11 +182,6 @@ class FlatCAMObj(QtCore.QObject): except (TypeError, AttributeError): pass - try: - self.ui.transformations_button.clicked.connect(self.app.transform_tool.run) - except (TypeError, AttributeError): - pass - # self.ui.skew_button.clicked.connect(self.on_skew_button_click) def build_ui(self): @@ -250,14 +245,14 @@ class FlatCAMObj(QtCore.QObject): self.app.proc_container.update_view_text('') with self.app.proc_container.new('%s...' % _("Plotting")): self.plot() - self.app.app_obj.object_changed.emit(self) + self.app.object_changed.emit(self) self.app.worker_task.emit({'fcn': worker_task, 'params': []}) def on_scale_button_click(self): self.read_form() try: - factor = float(self.ui.scale_entry.get_value()) + factor = float(eval(self.ui.scale_entry.get_value())) except Exception as e: self.app.inform.emit('[ERROR_NOTCL] %s' % _("Scaling could not be executed.")) log.debug("FlatCAMObj.on_scale_button_click() -- %s" % str(e)) @@ -281,7 +276,7 @@ class FlatCAMObj(QtCore.QObject): self.app.proc_container.update_view_text('') with self.app.proc_container.new('%s...' % _("Plotting")): self.plot() - self.app.app_obj.object_changed.emit(self) + self.app.object_changed.emit(self) self.app.worker_task.emit({'fcn': worker_task, 'params': []}) @@ -297,7 +292,7 @@ class FlatCAMObj(QtCore.QObject): self.app.proc_container.update_view_text('') with self.app.proc_container.new('%s...' % _("Plotting")): self.plot() - self.app.app_obj.object_changed.emit(self) + self.app.object_changed.emit(self) self.app.worker_task.emit({'fcn': worker_task, 'params': []}) @@ -377,7 +372,7 @@ class FlatCAMObj(QtCore.QObject): def plot_task(): with self.app.proc_container.new('%s...' % _("Plotting")): self.plot() - self.app.app_obj.object_changed.emit(self) + self.app.object_changed.emit(self) self.app.worker_task.emit({'fcn': plot_task, 'params': []}) @@ -464,16 +459,8 @@ class FlatCAMObj(QtCore.QObject): def visible(self, value, threaded=True): log.debug("FlatCAMObj.visible()") - current_visibility = self.shapes.visible - # self.shapes.visible = value # maybe this is slower in VisPy? use enabled property? - - def task(current_visibility): - if current_visibility is True: - if value is False: - self.shapes.visible = False - else: - if value is True: - self.shapes.visible = True + def worker_task(app_obj): + self.shapes.visible = value if self.app.is_legacy is False: # Not all object types has annotations @@ -482,10 +469,10 @@ class FlatCAMObj(QtCore.QObject): except Exception: pass - if threaded: - self.app.worker_task.emit({'fcn': task, 'params': [current_visibility]}) + if threaded is False: + worker_task(app_obj=self.app) else: - task(current_visibility) + self.app.worker_task.emit({'fcn': worker_task, 'params': [self]}) @property def drawing_tolerance(self): diff --git a/AppObjects/FlatCAMScript.py b/flatcamObjects/FlatCAMScript.py similarity index 90% rename from AppObjects/FlatCAMScript.py rename to flatcamObjects/FlatCAMScript.py index 93892715..946f578f 100644 --- a/AppObjects/FlatCAMScript.py +++ b/flatcamObjects/FlatCAMScript.py @@ -10,16 +10,16 @@ # File modified by: Marius Stanciu # # ########################################################## -from AppEditors.FlatCAMTextEditor import TextEditor -from AppObjects.FlatCAMObj import * -from AppGUI.ObjectUI import * +from flatcamEditors.FlatCAMTextEditor import TextEditor +from flatcamObjects.FlatCAMObj import * +from flatcamGUI.ObjectUI import * import tkinter as tk import sys from copy import deepcopy import gettext -import AppTranslation as fcTranslate +import FlatCAMTranslation as fcTranslate import builtins fcTranslate.apply_language('strings') @@ -183,13 +183,7 @@ class ScriptObject(FlatCAMObj): if self.app.ui.shell_dock.isHidden(): self.app.ui.shell_dock.show() - self.app.shell.open_processing() # Disables input box. - - # make sure that the pixmaps are not updated when running this as they will crash - # TODO find why the pixmaps load crash when run from this object (perhaps another thread?) - self.app.ui.fcinfo.lock_pmaps = True - - self.script_code = self.script_editor_tab.code_editor.toPlainText() + self.script_code = deepcopy(self.script_editor_tab.code_editor.toPlainText()) old_line = '' for tcl_command_line in self.script_code.splitlines(): @@ -208,6 +202,8 @@ class ScriptObject(FlatCAMObj): # execute the actual Tcl command try: + self.app.shell.open_processing() # Disables input box. + result = self.app.shell.tcl.eval(str(new_command)) if result != 'None': self.app.shell.append_output(result + '\n') @@ -224,7 +220,6 @@ class ScriptObject(FlatCAMObj): log.error("Exec command Exception: %s\n" % result) self.app.shell.append_error('ERROR: %s\n '% result) - self.app.ui.fcinfo.lock_pmaps = False self.app.shell.close_processing() def on_autocomplete_changed(self, state): @@ -233,27 +228,6 @@ class ScriptObject(FlatCAMObj): else: self.script_editor_tab.code_editor.completer_enable = False - def mirror(self, axis, point): - pass - - def offset(self, vect): - pass - - def rotate(self, angle, point): - pass - - def scale(self, xfactor, yfactor=None, point=None): - pass - - def skew(self, angle_x, angle_y, point): - pass - - def buffer(self, distance, join, factor=None): - pass - - def bounds(self, flatten=False): - return None, None, None, None - def to_dict(self): """ Returns a representation of the object as a dictionary. diff --git a/AppObjects/ObjectCollection.py b/flatcamObjects/ObjectCollection.py similarity index 79% rename from AppObjects/ObjectCollection.py rename to flatcamObjects/ObjectCollection.py index 477eb0e6..ee1cf933 100644 --- a/AppObjects/ObjectCollection.py +++ b/flatcamObjects/ObjectCollection.py @@ -16,13 +16,13 @@ from PyQt5.QtCore import Qt, QSettings from PyQt5.QtGui import QColor # from PyQt5.QtCore import QModelIndex -from AppObjects.FlatCAMObj import FlatCAMObj -from AppObjects.FlatCAMCNCJob import CNCJobObject -from AppObjects.FlatCAMDocument import DocumentObject -from AppObjects.FlatCAMExcellon import ExcellonObject -from AppObjects.FlatCAMGeometry import GeometryObject -from AppObjects.FlatCAMGerber import GerberObject -from AppObjects.FlatCAMScript import ScriptObject +from flatcamObjects.FlatCAMObj import FlatCAMObj +from flatcamObjects.FlatCAMCNCJob import CNCJobObject +from flatcamObjects.FlatCAMDocument import DocumentObject +from flatcamObjects.FlatCAMExcellon import ExcellonObject +from flatcamObjects.FlatCAMGeometry import GeometryObject +from flatcamObjects.FlatCAMGerber import GerberObject +from flatcamObjects.FlatCAMScript import ScriptObject import inspect # TODO: Remove @@ -32,7 +32,7 @@ from copy import deepcopy from numpy import Inf import gettext -import AppTranslation as fcTranslate +import FlatCAMTranslation as fcTranslate import builtins fcTranslate.apply_language('strings') @@ -50,13 +50,12 @@ class KeySensitiveListView(QtWidgets.QTreeView): def __init__(self, app, parent=None): super(KeySensitiveListView, self).__init__(parent) self.setHeaderHidden(True) - # self.setEditTriggers(QtWidgets.QTreeView.SelectedClicked) # allow Edit on Tree - self.setEditTriggers(QtWidgets.QTreeView.NoEditTriggers) + self.setEditTriggers(QtWidgets.QTreeView.SelectedClicked) # self.setRootIsDecorated(False) # self.setExpandsOnDoubleClick(False) - # Enable dragging and dropping onto the AppGUI + # Enable dragging and dropping onto the GUI self.setAcceptDrops(True) self.filename = "" self.app = app @@ -335,8 +334,6 @@ class ObjectCollection(QtCore.QAbstractItemModel): self.click_modifier = None self.update_list_signal.connect(self.on_update_list_signal) - self.view.activated.connect(self.on_row_activated) - self.item_selected.connect(self.on_row_selected) def promise(self, obj_name): log.debug("Object %s has been promised." % obj_name) @@ -385,9 +382,8 @@ class ObjectCollection(QtCore.QAbstractItemModel): if type(obj) != GeometryObject: self.app.ui.menuprojectgeneratecnc.setVisible(False) - # if type(obj) != GeometryObject and type(obj) != ExcellonObject and type(obj) != GerberObject or \ - # type(obj) != CNCJobObject: - # self.app.ui.menuprojectedit.setVisible(False) + if type(obj) != GeometryObject and type(obj) != ExcellonObject and type(obj) != GerberObject: + self.app.ui.menuprojectedit.setVisible(False) if type(obj) != GerberObject and type(obj) != ExcellonObject and type(obj) != CNCJobObject: self.app.ui.menuprojectviewsource.setVisible(False) if type(obj) != GerberObject and type(obj) != GeometryObject and type(obj) != ExcellonObject and \ @@ -554,7 +550,7 @@ class ObjectCollection(QtCore.QAbstractItemModel): while name in self.get_names(): # ## Create a new name # Ends with number? - log.debug("app_obj.new_object(): Object name (%s) exists, changing." % name) + log.debug("new_object(): Object name (%s) exists, changing." % name) match = re.search(r'(.*[^\d])?(\d+)$', name) if match: # Yes: Increment the number! base = match.group(1) or '' @@ -600,8 +596,8 @@ class ObjectCollection(QtCore.QAbstractItemModel): """ Gets a list of the names of all objects in the collection. - :return: List of names. - :rtype: list + :return: List of names. + :rtype: list """ # log.debug(str(inspect.stack()[1][3]) + " --> OC.get_names()") @@ -989,7 +985,7 @@ class ObjectCollection(QtCore.QAbstractItemModel): def get_list(self): """ - Will return a list of all objects currently opened. Except FlatCAMScript and FlatCAMDocuments + Will return a list of all objects currently opened. :return: """ @@ -1002,199 +998,3 @@ class ObjectCollection(QtCore.QAbstractItemModel): def update_view(self): self.dataChanged.emit(QtCore.QModelIndex(), QtCore.QModelIndex()) - - def on_row_activated(self, index): - if index.isValid(): - if index.internalPointer().parent_item != self.root_item: - self.app.ui.notebook.setCurrentWidget(self.app.ui.selected_tab) - self.on_item_activated(index) - - def on_row_selected(self, obj_name): - """ - This is a special string; when received it will make all Menu -> Objects entries unchecked - It mean we clicked outside of the items and deselected all - - :param obj_name: - :return: - """ - if obj_name == 'none': - for act in self.app.ui.menuobjects.actions(): - act.setChecked(False) - return - - # get the name of the selected objects and add them to a list - name_list = [] - for obj in self.get_selected(): - name_list.append(obj.options['name']) - - # set all actions as unchecked but the ones selected make them checked - for act in self.app.ui.menuobjects.actions(): - act.setChecked(False) - if act.text() in name_list: - act.setChecked(True) - - def on_collection_updated(self, obj, state, old_name): - """ - Create a menu from the object loaded in the collection. - - :param obj: object that was changed (added, deleted, renamed) - :param state: what was done with the object. Can be: added, deleted, delete_all, renamed - :param old_name: the old name of the object before the action that triggered this slot happened - :return: None - """ - icon_files = { - "gerber": self.app.resource_location + "/flatcam_icon16.png", - "excellon": self.app.resource_location + "/drill16.png", - "cncjob": self.app.resource_location + "/cnc16.png", - "geometry": self.app.resource_location + "/geometry16.png", - "script": self.app.resource_location + "/script_new16.png", - "document": self.app.resource_location + "/notes16_1.png" - } - - if state == 'append': - for act in self.app.ui.menuobjects.actions(): - try: - act.triggered.disconnect() - except TypeError: - pass - self.app.ui.menuobjects.clear() - - gerber_list = [] - exc_list = [] - cncjob_list = [] - geo_list = [] - script_list = [] - doc_list = [] - - for name in self.get_names(): - obj_named = self.get_by_name(name) - if obj_named.kind == 'gerber': - gerber_list.append(name) - elif obj_named.kind == 'excellon': - exc_list.append(name) - elif obj_named.kind == 'cncjob': - cncjob_list.append(name) - elif obj_named.kind == 'geometry': - geo_list.append(name) - elif obj_named.kind == 'script': - script_list.append(name) - elif obj_named.kind == 'document': - doc_list.append(name) - - def add_act(o_name): - obj_for_icon = self.get_by_name(o_name) - add_action = QtWidgets.QAction(parent=self.app.ui.menuobjects) - add_action.setCheckable(True) - add_action.setText(o_name) - add_action.setIcon(QtGui.QIcon(icon_files[obj_for_icon.kind])) - add_action.triggered.connect( - lambda: self.set_active(o_name) if add_action.isChecked() is True else - self.set_inactive(o_name)) - self.app.ui.menuobjects.addAction(add_action) - - for name in gerber_list: - add_act(name) - self.app.ui.menuobjects.addSeparator() - - for name in exc_list: - add_act(name) - self.app.ui.menuobjects.addSeparator() - - for name in cncjob_list: - add_act(name) - self.app.ui.menuobjects.addSeparator() - - for name in geo_list: - add_act(name) - self.app.ui.menuobjects.addSeparator() - - for name in script_list: - add_act(name) - self.app.ui.menuobjects.addSeparator() - - for name in doc_list: - add_act(name) - - self.app.ui.menuobjects.addSeparator() - self.app.ui.menuobjects_selall = self.app.ui.menuobjects.addAction( - QtGui.QIcon(self.app.resource_location + '/select_all.png'), - _('Select All') - ) - self.app.ui.menuobjects_unselall = self.app.ui.menuobjects.addAction( - QtGui.QIcon(self.app.resource_location + '/deselect_all32.png'), - _('Deselect All') - ) - self.app.ui.menuobjects_selall.triggered.connect(lambda: self.on_objects_selection(True)) - self.app.ui.menuobjects_unselall.triggered.connect(lambda: self.on_objects_selection(False)) - - elif state == 'delete': - for act in self.app.ui.menuobjects.actions(): - if act.text() == obj.options['name']: - try: - act.triggered.disconnect() - except TypeError: - pass - self.app.ui.menuobjects.removeAction(act) - break - elif state == 'rename': - for act in self.app.ui.menuobjects.actions(): - if act.text() == old_name: - add_action = QtWidgets.QAction(parent=self.app.ui.menuobjects) - add_action.setText(obj.options['name']) - add_action.setIcon(QtGui.QIcon(icon_files[obj.kind])) - add_action.triggered.connect( - lambda: self.set_active(obj.options['name']) if add_action.isChecked() is True else - self.set_inactive(obj.options['name'])) - - self.app.ui.menuobjects.insertAction(act, add_action) - - try: - act.triggered.disconnect() - except TypeError: - pass - self.app.ui.menuobjects.removeAction(act) - break - elif state == 'delete_all': - for act in self.app.ui.menuobjects.actions(): - try: - act.triggered.disconnect() - except TypeError: - pass - self.app.ui.menuobjects.clear() - - self.app.ui.menuobjects.addSeparator() - self.app.ui.menuobjects_selall = self.app.ui.menuobjects.addAction( - QtGui.QIcon(self.app.resource_location + '/select_all.png'), - _('Select All') - ) - self.app.ui.menuobjects_unselall = self.app.ui.menuobjects.addAction( - QtGui.QIcon(self.app.resource_location + '/deselect_all32.png'), - _('Deselect All') - ) - self.app.ui.menuobjects_selall.triggered.connect(lambda: self.on_objects_selection(True)) - self.app.ui.menuobjects_unselall.triggered.connect(lambda: self.on_objects_selection(False)) - - def on_objects_selection(self, on_off): - obj_list = self.get_names() - - if on_off is True: - self.set_all_active() - for act in self.app.ui.menuobjects.actions(): - try: - act.setChecked(True) - except Exception: - pass - if obj_list: - self.app.inform[str, bool].emit('[selected] %s' % _("All objects are selected."), False) - else: - self.set_all_inactive() - for act in self.app.ui.menuobjects.actions(): - try: - act.setChecked(False) - except Exception: - pass - - if obj_list: - self.app.inform[str, bool].emit('%s' % _("Objects selection is cleared."), False) - else: - self.app.inform[str, bool].emit('', False) diff --git a/AppObjects/__init__.py b/flatcamObjects/__init__.py similarity index 100% rename from AppObjects/__init__.py rename to flatcamObjects/__init__.py diff --git a/AppParsers/ParseDXF.py b/flatcamParsers/ParseDXF.py similarity index 99% rename from AppParsers/ParseDXF.py rename to flatcamParsers/ParseDXF.py index 698e87b8..d3d482fd 100644 --- a/AppParsers/ParseDXF.py +++ b/flatcamParsers/ParseDXF.py @@ -12,8 +12,8 @@ import logging log = logging.getLogger('base2') -from AppParsers.ParseFont import * -from AppParsers.ParseDXF_Spline import * +from flatcamParsers.ParseFont import * +from flatcamParsers.ParseDXF_Spline import * def distance(pt1, pt2): diff --git a/AppParsers/ParseDXF_Spline.py b/flatcamParsers/ParseDXF_Spline.py similarity index 100% rename from AppParsers/ParseDXF_Spline.py rename to flatcamParsers/ParseDXF_Spline.py diff --git a/AppParsers/ParseExcellon.py b/flatcamParsers/ParseExcellon.py similarity index 98% rename from AppParsers/ParseExcellon.py rename to flatcamParsers/ParseExcellon.py index fbf1bb6f..07930005 100644 --- a/AppParsers/ParseExcellon.py +++ b/flatcamParsers/ParseExcellon.py @@ -6,7 +6,7 @@ # MIT Licence # # ########################################################## ## -from camlib import Geometry, grace +from camlib import Geometry import shapely.affinity as affinity from shapely.geometry import Point, LineString @@ -17,7 +17,8 @@ import logging import traceback from copy import deepcopy -# import AppTranslation as fcTranslate +import FlatCAMTranslation as fcTranslate +from FlatCAMCommon import GracefulException as grace import gettext import builtins @@ -966,7 +967,7 @@ class Excellon(Geometry): :return: None """ - log.debug("AppParsers.ParseExcellon.Excellon.create_geometry()") + log.debug("flatcamParsers.ParseExcellon.Excellon.create_geometry()") self.solid_geometry = [] try: # clear the solid_geometry in self.tools @@ -981,7 +982,7 @@ class Excellon(Geometry): _("Excellon.create_geometry() -> a drill location was skipped " "due of not having a tool associated.\n" "Check the resulting GCode.")) - log.debug("AppParsers.ParseExcellon.Excellon.create_geometry() -> a drill location was skipped " + log.debug("flatcamParsers.ParseExcellon.Excellon.create_geometry() -> a drill location was skipped " "due of not having a tool associated") continue tooldia = self.tools[drill['tool']]['C'] @@ -1005,7 +1006,7 @@ class Excellon(Geometry): self.tools[tool_in_slots]['solid_geometry'].append(poly) self.tools[tool_in_slots]['data'] = deepcopy(self.default_data) except Exception as e: - log.debug("AppParsers.ParseExcellon.Excellon.create_geometry() -> " + log.debug("flatcamParsers.ParseExcellon.Excellon.create_geometry() -> " "Excellon geometry creation failed due of ERROR: %s" % str(e)) return "fail" @@ -1017,10 +1018,10 @@ class Excellon(Geometry): :param flatten: No used """ - log.debug("AppParsers.ParseExcellon.Excellon.bounds()") + log.debug("flatcamParsers.ParseExcellon.Excellon.bounds()") if self.solid_geometry is None or not self.tools: - log.debug("AppParsers.ParseExcellon.Excellon -> solid_geometry is None") + log.debug("flatcamParsers.ParseExcellon.Excellon -> solid_geometry is None") return 0, 0, 0, 0 def bounds_rec(obj): @@ -1068,7 +1069,7 @@ class Excellon(Geometry): This function first convert to the the units found in the Excellon file but it converts tools that are not there yet so it has no effect other than it signal that the units are the ones in the file. - On object creation, in app_obj.new_object(), true conversion is done because this is done at the end of the + On object creation, in new_object(), true conversion is done because this is done at the end of the Excellon file parsing, the tools are inside and self.tools is really converted from the units found inside the file to the FlatCAM units. @@ -1091,7 +1092,7 @@ class Excellon(Geometry): else: log.error("Unsupported units: %s" % str(obj_units)) factor = 1.0 - log.debug("AppParsers.ParseExcellon.Excellon.convert_units() --> Factor: %s" % str(factor)) + log.debug("flatcamParsers.ParseExcellon.Excellon.convert_units() --> Factor: %s" % str(factor)) self.units = obj_units self.scale(factor, factor) @@ -1117,7 +1118,7 @@ class Excellon(Geometry): :return: None :rtype: None """ - log.debug("AppParsers.ParseExcellon.Excellon.scale()") + log.debug("flatcamParsers.ParseExcellon.Excellon.scale()") if yfactor is None: yfactor = xfactor @@ -1182,7 +1183,7 @@ class Excellon(Geometry): :type vect: tuple :return: None """ - log.debug("AppParsers.ParseExcellon.Excellon.offset()") + log.debug("flatcamParsers.ParseExcellon.Excellon.offset()") dx, dy = vect @@ -1242,7 +1243,7 @@ class Excellon(Geometry): :type point: list :return: None """ - log.debug("AppParsers.ParseExcellon.Excellon.mirror()") + log.debug("flatcamParsers.ParseExcellon.Excellon.mirror()") px, py = point xscale, yscale = {"X": (1.0, -1.0), "Y": (-1.0, 1.0)}[axis] @@ -1308,7 +1309,7 @@ class Excellon(Geometry): See shapely manual for more information: http://toblerity.org/shapely/manual.html#affine-transformations """ - log.debug("AppParsers.ParseExcellon.Excellon.skew()") + log.debug("flatcamParsers.ParseExcellon.Excellon.skew()") if angle_x is None: angle_x = 0.0 @@ -1395,7 +1396,7 @@ class Excellon(Geometry): :param point: tuple of coordinates (x, y) :return: None """ - log.debug("AppParsers.ParseExcellon.Excellon.rotate()") + log.debug("flatcamParsers.ParseExcellon.Excellon.rotate()") if angle == 0: return @@ -1478,7 +1479,7 @@ class Excellon(Geometry): :param join: The type of line joint used by the shapely buffer method: round, square, bevel :return: None """ - log.debug("AppParsers.ParseExcellon.Excellon.buffer()") + log.debug("flatcamParsers.ParseExcellon.Excellon.buffer()") if distance == 0: return diff --git a/AppParsers/ParseFont.py b/flatcamParsers/ParseFont.py similarity index 99% rename from AppParsers/ParseFont.py rename to flatcamParsers/ParseFont.py index 7fa2b0d0..cb09a862 100644 --- a/AppParsers/ParseFont.py +++ b/flatcamParsers/ParseFont.py @@ -22,7 +22,7 @@ from fontTools import ttLib import logging import gettext -import AppTranslation as fcTranslate +import FlatCAMTranslation as fcTranslate import builtins fcTranslate.apply_language('strings') diff --git a/AppParsers/ParseGerber.py b/flatcamParsers/ParseGerber.py similarity index 99% rename from AppParsers/ParseGerber.py rename to flatcamParsers/ParseGerber.py index 73e0b939..57ba4d49 100644 --- a/AppParsers/ParseGerber.py +++ b/flatcamParsers/ParseGerber.py @@ -1,5 +1,5 @@ from PyQt5 import QtWidgets -from camlib import Geometry, arc, arc_angle, ApertureMacro, grace +from camlib import Geometry, arc, arc_angle, ApertureMacro import numpy as np import re @@ -14,8 +14,9 @@ import shapely.affinity as affinity from shapely.geometry import box as shply_box, Polygon, LineString, Point, MultiPolygon from lxml import etree as ET -from AppParsers.ParseSVG import svgparselength, getsvggeo -import AppTranslation as fcTranslate +from flatcamParsers.ParseSVG import svgparselength, getsvggeo +from FlatCAMCommon import GracefulException as grace +import FlatCAMTranslation as fcTranslate import gettext import builtins @@ -1476,7 +1477,7 @@ class Gerber(Geometry): sol_geo_length = 1 try: - if buff_length == 0 and sol_geo_length in [0, 1] and self.solid_geometry.area == 0: + if buff_length == 0 and sol_geo_length in [0, 1]: log.error("Object is not Gerber file or empty. Aborting Object creation.") return 'fail' except TypeError as e: @@ -1762,7 +1763,7 @@ class Gerber(Geometry): :return: None """ - log.debug("AppParsers.ParseGerber.Gerber.import_svg()") + log.debug("flatcamParsers.ParseGerber.Gerber.import_svg()") # Parse into list of shapely objects svg_tree = ET.parse(filename) @@ -2388,7 +2389,7 @@ class Gerber(Geometry): geo_p = shply_box(minx, miny, maxx, maxy) new_geo_el['solid'] = geo_p else: - log.debug("AppParsers.ParseGerber.Gerber.buffer() --> " + log.debug("flatcamParsers.ParseGerber.Gerber.buffer() --> " "ap type not supported") else: new_geo_el['solid'] = geo_el['follow'].buffer( diff --git a/AppParsers/ParseHPGL2.py b/flatcamParsers/ParseHPGL2.py similarity index 99% rename from AppParsers/ParseHPGL2.py rename to flatcamParsers/ParseHPGL2.py index 200453b0..a90a3184 100644 --- a/AppParsers/ParseHPGL2.py +++ b/flatcamParsers/ParseHPGL2.py @@ -6,7 +6,7 @@ # MIT Licence # # ############################################################ -from camlib import arc, three_point_circle, grace +from camlib import arc, three_point_circle import numpy as np import re @@ -18,7 +18,8 @@ import sys from shapely.ops import unary_union from shapely.geometry import LineString, Point -# import AppTranslation as fcTranslate +from FlatCAMCommon import GracefulException as grace +import FlatCAMTranslation as fcTranslate import gettext import builtins diff --git a/AppParsers/ParseSVG.py b/flatcamParsers/ParseSVG.py similarity index 99% rename from AppParsers/ParseSVG.py rename to flatcamParsers/ParseSVG.py index 713d50f1..a36e4770 100644 --- a/AppParsers/ParseSVG.py +++ b/flatcamParsers/ParseSVG.py @@ -27,7 +27,7 @@ from shapely.geometry import LineString, LinearRing, MultiLineString from shapely.affinity import skew, affine_transform, rotate import numpy as np -from AppParsers.ParseFont import * +from flatcamParsers.ParseFont import * log = logging.getLogger('base2') diff --git a/AppParsers/__init__.py b/flatcamParsers/__init__.py similarity index 100% rename from AppParsers/__init__.py rename to flatcamParsers/__init__.py diff --git a/AppTools/ToolAlignObjects.py b/flatcamTools/ToolAlignObjects.py similarity index 98% rename from AppTools/ToolAlignObjects.py rename to flatcamTools/ToolAlignObjects.py index 4c4249ae..33b9611c 100644 --- a/AppTools/ToolAlignObjects.py +++ b/flatcamTools/ToolAlignObjects.py @@ -5,10 +5,10 @@ # MIT Licence # # ########################################################## -from PyQt5 import QtWidgets, QtCore -from AppTool import AppTool +from PyQt5 import QtWidgets, QtGui, QtCore +from FlatCAMTool import FlatCAMTool -from AppGUI.GUIElements import FCComboBox, RadioSet +from flatcamGUI.GUIElements import FCComboBox, RadioSet import math @@ -16,7 +16,7 @@ from shapely.geometry import Point from shapely.affinity import translate import gettext -import AppTranslation as fcTranslate +import FlatCAMTranslation as fcTranslate import builtins import logging @@ -27,12 +27,12 @@ if '_' not in builtins.__dict__: log = logging.getLogger('base') -class AlignObjects(AppTool): +class AlignObjects(FlatCAMTool): toolName = _("Align Objects") def __init__(self, app): - AppTool.__init__(self, app) + FlatCAMTool.__init__(self, app) self.app = app self.decimals = app.decimals @@ -238,13 +238,13 @@ class AlignObjects(AppTool): if self.app.ui.splitter.sizes()[0] == 0: self.app.ui.splitter.setSizes([1, 1]) - AppTool.run(self) + FlatCAMTool.run(self) self.set_tool_ui() self.app.ui.notebook.setTabText(2, _("Align Tool")) def install(self, icon=None, separator=None, **kwargs): - AppTool.install(self, icon, separator, shortcut='Alt+A', **kwargs) + FlatCAMTool.install(self, icon, separator, shortcut='Alt+A', **kwargs) def set_tool_ui(self): self.reset_fields() @@ -308,6 +308,13 @@ class AlignObjects(AppTool): else: self.grid_status_memory = False + self.mr = self.canvas.graph_event_connect('mouse_release', self.on_mouse_click_release) + + if self.app.is_legacy is False: + self.canvas.graph_event_disconnect('mouse_release', self.app.on_mouse_click_release_over_plot) + else: + self.canvas.graph_event_disconnect(self.app.mr) + self.local_connected = True self.aligner_old_fill_color = self.aligner_obj.fill_color @@ -315,17 +322,10 @@ class AlignObjects(AppTool): self.aligned_old_fill_color = self.aligned_obj.fill_color self.aligned_old_line_color = self.aligned_obj.outline_color + self.app.inform.emit('%s: %s' % (_("First Point"), _("Click on the START point."))) self.target_obj = self.aligned_obj self.set_color() - self.app.inform.emit('%s: %s' % (_("First Point"), _("Click on the START point."))) - self.mr = self.canvas.graph_event_connect('mouse_release', self.on_mouse_click_release) - - if self.app.is_legacy is False: - self.canvas.graph_event_disconnect('mouse_release', self.app.on_mouse_click_release_over_plot) - else: - self.canvas.graph_event_disconnect(self.app.mr) - def on_mouse_click_release(self, event): if self.app.is_legacy is False: event_pos = event.pos diff --git a/AppTools/ToolCalculators.py b/flatcamTools/ToolCalculators.py similarity index 98% rename from AppTools/ToolCalculators.py rename to flatcamTools/ToolCalculators.py index 08edc27d..4b1bbbb1 100644 --- a/AppTools/ToolCalculators.py +++ b/flatcamTools/ToolCalculators.py @@ -6,12 +6,12 @@ # ########################################################## from PyQt5 import QtWidgets -from AppTool import AppTool -from AppGUI.GUIElements import FCSpinner, FCDoubleSpinner, FCEntry +from FlatCAMTool import FlatCAMTool +from flatcamGUI.GUIElements import FCSpinner, FCDoubleSpinner, FCEntry import math import gettext -import AppTranslation as fcTranslate +import FlatCAMTranslation as fcTranslate import builtins fcTranslate.apply_language('strings') @@ -19,7 +19,7 @@ if '_' not in builtins.__dict__: _ = gettext.gettext -class ToolCalculator(AppTool): +class ToolCalculator(FlatCAMTool): toolName = _("Calculators") v_shapeName = _("V-Shape Tool Calculator") @@ -27,7 +27,7 @@ class ToolCalculator(AppTool): eplateName = _("ElectroPlating Calculator") def __init__(self, app): - AppTool.__init__(self, app) + FlatCAMTool.__init__(self, app) self.app = app self.decimals = self.app.decimals @@ -292,14 +292,14 @@ class ToolCalculator(AppTool): if self.app.ui.splitter.sizes()[0] == 0: self.app.ui.splitter.setSizes([1, 1]) - AppTool.run(self) + FlatCAMTool.run(self) self.set_tool_ui() self.app.ui.notebook.setTabText(2, _("Calc. Tool")) def install(self, icon=None, separator=None, **kwargs): - AppTool.install(self, icon, separator, shortcut='Alt+C', **kwargs) + FlatCAMTool.install(self, icon, separator, shortcut='Alt+C', **kwargs) def set_tool_ui(self): self.units = self.app.defaults['units'].upper() diff --git a/AppTools/ToolCalibration.py b/flatcamTools/ToolCalibration.py similarity index 98% rename from AppTools/ToolCalibration.py rename to flatcamTools/ToolCalibration.py index 456674bf..98b487cf 100644 --- a/AppTools/ToolCalibration.py +++ b/flatcamTools/ToolCalibration.py @@ -7,10 +7,10 @@ from PyQt5 import QtWidgets, QtCore, QtGui -from AppTool import AppTool -from AppGUI.GUIElements import FCDoubleSpinner, EvalEntry, FCCheckBox, OptionalInputSection, FCEntry -from AppGUI.GUIElements import FCTable, FCComboBox, RadioSet -from AppEditors.FlatCAMTextEditor import TextEditor +from FlatCAMTool import FlatCAMTool +from flatcamGUI.GUIElements import FCDoubleSpinner, EvalEntry, FCCheckBox, OptionalInputSection, FCEntry +from flatcamGUI.GUIElements import FCTable, FCComboBox, RadioSet +from flatcamEditors.FlatCAMTextEditor import TextEditor from shapely.geometry import Point from shapely.geometry.base import * @@ -22,7 +22,7 @@ import logging from copy import deepcopy import gettext -import AppTranslation as fcTranslate +import FlatCAMTranslation as fcTranslate import builtins fcTranslate.apply_language('strings') @@ -32,12 +32,12 @@ if '_' not in builtins.__dict__: log = logging.getLogger('base') -class ToolCalibration(AppTool): +class ToolCalibration(FlatCAMTool): toolName = _("Calibration Tool") def __init__(self, app): - AppTool.__init__(self, app) + FlatCAMTool.__init__(self, app) self.app = app self.canvas = self.app.plotcanvas @@ -64,7 +64,7 @@ class ToolCalibration(AppTool): grid_lay.setColumnStretch(1, 1) grid_lay.setColumnStretch(2, 0) - self.gcode_title_label = QtWidgets.QLabel('%s:' % _('Parameters')) + self.gcode_title_label = QtWidgets.QLabel('%s' % _('GCode Parameters')) self.gcode_title_label.setToolTip( _("Parameters used when creating the GCode in this tool.") ) @@ -752,14 +752,14 @@ class ToolCalibration(AppTool): if self.app.ui.splitter.sizes()[0] == 0: self.app.ui.splitter.setSizes([1, 1]) - AppTool.run(self) + FlatCAMTool.run(self) self.set_tool_ui() self.app.ui.notebook.setTabText(2, _("Calibration Tool")) def install(self, icon=None, separator=None, **kwargs): - AppTool.install(self, icon, separator, shortcut='Alt+E', **kwargs) + FlatCAMTool.install(self, icon, separator, shortcut='Alt+E', **kwargs) def set_tool_ui(self): self.units = self.app.defaults['units'].upper() @@ -1069,7 +1069,7 @@ class ToolCalibration(AppTool): # delete the absolute and relative position and messages in the infobar self.app.ui.position_label.setText("") - # self.app.ui.rel_position_label.setText("") + self.app.ui.rel_position_label.setText("") # first clear previous text in text editor (if any) self.gcode_editor_tab.code_editor.clear() @@ -1352,11 +1352,11 @@ class ToolCalibration(AppTool): try: if obj.kind.lower() == 'excellon': - self.app.app_obj.new_object("excellon", str(obj_name), initialize_excellon) + self.app.new_object("excellon", str(obj_name), initialize_excellon) elif obj.kind.lower() == 'gerber': - self.app.app_obj.new_object("gerber", str(obj_name), initialize_gerber) + self.app.new_object("gerber", str(obj_name), initialize_gerber) elif obj.kind.lower() == 'geometry': - self.app.app_obj.new_object("geometry", str(obj_name), initialize_geometry) + self.app.new_object("geometry", str(obj_name), initialize_geometry) except Exception as e: log.debug("ToolCalibration.new_calibrated_object() --> %s" % str(e)) return "Operation failed: %s" % str(e) diff --git a/AppTools/ToolCopperThieving.py b/flatcamTools/ToolCopperThieving.py similarity index 97% rename from AppTools/ToolCopperThieving.py rename to flatcamTools/ToolCopperThieving.py index 79362948..d6fd310a 100644 --- a/AppTools/ToolCopperThieving.py +++ b/flatcamTools/ToolCopperThieving.py @@ -7,9 +7,9 @@ from PyQt5 import QtWidgets, QtCore -from camlib import grace -from AppTool import AppTool -from AppGUI.GUIElements import FCDoubleSpinner, RadioSet, FCEntry, FCComboBox +from FlatCAMCommon import GracefulException as grace +from FlatCAMTool import FlatCAMTool +from flatcamGUI.GUIElements import FCDoubleSpinner, RadioSet, FCEntry, FCComboBox import shapely.geometry.base as base from shapely.ops import cascaded_union, unary_union @@ -23,7 +23,7 @@ import numpy as np from collections import Iterable import gettext -import AppTranslation as fcTranslate +import FlatCAMTranslation as fcTranslate import builtins fcTranslate.apply_language('strings') @@ -33,13 +33,13 @@ if '_' not in builtins.__dict__: log = logging.getLogger('base') -class ToolCopperThieving(AppTool): +class ToolCopperThieving(FlatCAMTool): work_finished = QtCore.pyqtSignal() toolName = _("Copper Thieving Tool") def __init__(self, app): - AppTool.__init__(self, app) + FlatCAMTool.__init__(self, app) self.app = app self.canvas = self.app.plotcanvas @@ -77,12 +77,8 @@ class ToolCopperThieving(AppTool): ) i_grid_lay.addWidget(self.grbobj_label, 0, 0) - i_grid_lay.addWidget(self.grb_object_combo, 1, 0, 1, 2) - - separator_line = QtWidgets.QFrame() - separator_line.setFrameShape(QtWidgets.QFrame.HLine) - separator_line.setFrameShadow(QtWidgets.QFrame.Sunken) - i_grid_lay.addWidget(separator_line, 2, 0, 1, 2) + i_grid_lay.addWidget(self.grb_object_combo, 0, 1, 1, 2) + i_grid_lay.addWidget(QtWidgets.QLabel(''), 1, 0) # ## Grid Layout grid_lay = QtWidgets.QGridLayout() @@ -565,14 +561,14 @@ class ToolCopperThieving(AppTool): if self.app.ui.splitter.sizes()[0] == 0: self.app.ui.splitter.setSizes([1, 1]) - AppTool.run(self) + FlatCAMTool.run(self) self.set_tool_ui() self.app.ui.notebook.setTabText(2, _("Copper Thieving Tool")) def install(self, icon=None, separator=None, **kwargs): - AppTool.install(self, icon, separator, shortcut='Alt+J', **kwargs) + FlatCAMTool.install(self, icon, separator, shortcut='Alt+F', **kwargs) def set_tool_ui(self): self.units = self.app.defaults['units'] @@ -914,22 +910,16 @@ class ToolCopperThieving(AppTool): edge_width=self.app.defaults["global_cursor_width"], size=self.app.defaults["global_cursor_size"]) + # update the positions on status bar + self.app.ui.position_label.setText("    X: %.4f   " + "Y: %.4f" % (curr_pos[0], curr_pos[1])) if self.cursor_pos is None: self.cursor_pos = (0, 0) self.app.dx = curr_pos[0] - float(self.cursor_pos[0]) self.app.dy = curr_pos[1] - float(self.cursor_pos[1]) - - # # update the positions on status bar - self.app.ui.position_label.setText(" X: %.4f   " - "Y: %.4f " % (curr_pos[0], curr_pos[1])) - # self.app.ui.rel_position_label.setText("Dx: %.4f   Dy: " - # "%.4f    " % (self.app.dx, self.app.dy)) - - units = self.app.defaults["units"].lower() - self.app.plotcanvas.text_hud.text = \ - 'Dx:\t{:<.4f} [{:s}]\nDy:\t{:<.4f} [{:s}]\n\nX: \t{:<.4f} [{:s}]\nY: \t{:<.4f} [{:s}]'.format( - self.app.dx, units, self.app.dy, units, curr_pos[0], units, curr_pos[1], units) + self.app.ui.rel_position_label.setText("Dx: %.4f   Dy: " + "%.4f    " % (self.app.dx, self.app.dy)) # draw the utility geometry if self.first_click: @@ -1478,7 +1468,7 @@ class ToolCopperThieving(AppTool): obj_name, separatpr, obj_extension = self.sm_object.options['name'].rpartition('.') name = '%s_%s.%s' % (obj_name, 'plating_mask', obj_extension) - self.app.app_obj.new_object('gerber', name, obj_init, autoselected=False) + self.app.new_object('gerber', name, obj_init, autoselected=False) # Register recent file self.app.file_opened.emit("gerber", name) diff --git a/AppTools/ToolCutOut.py b/flatcamTools/ToolCutOut.py similarity index 95% rename from AppTools/ToolCutOut.py rename to flatcamTools/ToolCutOut.py index 990daf55..67295b90 100644 --- a/AppTools/ToolCutOut.py +++ b/flatcamTools/ToolCutOut.py @@ -6,8 +6,8 @@ # ########################################################## from PyQt5 import QtWidgets, QtGui, QtCore -from AppTool import AppTool -from AppGUI.GUIElements import FCDoubleSpinner, FCCheckBox, RadioSet, FCComboBox, OptionalInputSection, FCButton +from FlatCAMTool import FlatCAMTool +from flatcamGUI.GUIElements import FCDoubleSpinner, FCCheckBox, RadioSet, FCComboBox, OptionalInputSection, FCButton from shapely.geometry import box, MultiPolygon, Polygon, LineString, LinearRing from shapely.ops import cascaded_union, unary_union @@ -20,7 +20,7 @@ from copy import deepcopy import math import logging import gettext -import AppTranslation as fcTranslate +import FlatCAMTranslation as fcTranslate import builtins fcTranslate.apply_language('strings') @@ -36,12 +36,12 @@ else: machinist_setting = 0 -class CutOut(AppTool): +class CutOut(FlatCAMTool): toolName = _("Cutout PCB") def __init__(self, app): - AppTool.__init__(self, app) + FlatCAMTool.__init__(self, app) self.app = app self.canvas = app.plotcanvas @@ -434,13 +434,13 @@ class CutOut(AppTool): if self.app.ui.splitter.sizes()[0] == 0: self.app.ui.splitter.setSizes([1, 1]) - AppTool.run(self) + FlatCAMTool.run(self) self.set_tool_ui() self.app.ui.notebook.setTabText(2, _("Cutout Tool")) def install(self, icon=None, separator=None, **kwargs): - AppTool.install(self, icon, separator, shortcut='Alt+X', **kwargs) + FlatCAMTool.install(self, icon, separator, shortcut='Alt+X', **kwargs) def set_tool_ui(self): self.reset_fields() @@ -455,37 +455,7 @@ class CutOut(AppTool): self.gapsize.set_value(float(self.app.defaults["tools_cutoutgapsize"])) self.gaps.set_value(self.app.defaults["tools_gaps_ff"]) self.convex_box.set_value(self.app.defaults['tools_cutout_convexshape']) - - # use the current selected object and make it visible in the Paint object combobox - sel_list = self.app.collection.get_selected() - if len(sel_list) == 1: - active = self.app.collection.get_active() - kind = active.kind - if kind == 'gerber': - self.type_obj_radio.set_value('grb') - else: - self.type_obj_radio.set_value('geo') - - # run those once so the obj_type attribute is updated for the FCComboboxes - # so the last loaded object is displayed - if kind == 'gerber': - self.on_type_obj_changed(val='grb') - else: - self.on_type_obj_changed(val='geo') - - self.obj_combo.set_value(active.options['name']) - else: - kind = 'gerber' - self.type_obj_radio.set_value('grb') - - # run those once so the obj_type attribute is updated for the FCComboboxes - # so the last loaded object is displayed - if kind == 'gerber': - self.on_type_obj_changed(val='grb') - else: - self.on_type_obj_changed(val='geo') - - # self.type_obj_radio.set_value('grb') + self.type_obj_radio.set_value('grb') self.default_data.update({ "plot": True, @@ -531,13 +501,6 @@ class CutOut(AppTool): "tools_paintmethod": self.app.defaults["tools_paintmethod"], "tools_pathconnect": self.app.defaults["tools_pathconnect"], "tools_paintcontour": self.app.defaults["tools_paintcontour"], - - # Isolation Tool - "tools_iso_passes": self.app.defaults["tools_iso_passes"], - "tools_iso_overlap": self.app.defaults["tools_iso_overlap"], - "tools_iso_milling_type": self.app.defaults["tools_iso_milling_type"], - "tools_iso_follow": self.app.defaults["tools_iso_follow"], - "tools_iso_isotype": self.app.defaults["tools_iso_isotype"], }) def on_freeform_cutout(self): @@ -737,7 +700,7 @@ class CutOut(AppTool): geo_obj.tools[1]['data']['depthperpass'] = self.maxdepth_entry.get_value() outname = cutout_obj.options["name"] + "_cutout" - self.app.app_obj.new_object('geometry', outname, geo_init) + self.app.new_object('geometry', outname, geo_init) cutout_obj.plot() self.app.inform.emit('[success] %s' % _("Any form CutOut operation finished.")) @@ -933,7 +896,7 @@ class CutOut(AppTool): geo_obj.tools[1]['data']['depthperpass'] = self.maxdepth_entry.get_value() outname = cutout_obj.options["name"] + "_cutout" - ret = self.app.app_obj.new_object('geometry', outname, geo_init) + ret = self.app.new_object('geometry', outname, geo_init) if ret != 'fail': # cutout_obj.plot() @@ -949,7 +912,7 @@ class CutOut(AppTool): if 0 in {self.cutting_dia}: self.app.inform.emit('[ERROR_NOTCL] %s' % _("Tool Diameter is zero value. Change it to a positive real number.")) - return + return "Tool Diameter is zero value. Change it to a positive real number." self.cutting_gapsize = float(self.gapsize.get_value()) @@ -960,7 +923,7 @@ class CutOut(AppTool): except Exception as e: log.debug("CutOut.on_manual_cutout() --> %s" % str(e)) self.app.inform.emit('[ERROR_NOTCL] %s: %s' % (_("Could not retrieve Geometry object"), name)) - return + return "Could not retrieve object: %s" % name if self.app.is_legacy is False: self.app.plotcanvas.graph_event_disconnect('key_press', self.app.ui.keyPressEvent) @@ -1093,7 +1056,7 @@ class CutOut(AppTool): geo_obj.tools[1]['data']['depthperpass'] = self.maxdepth_entry.get_value() outname = cutout_obj.options["name"] + "_cutout" - self.app.app_obj.new_object('geometry', outname, geo_init) + self.app.new_object('geometry', outname, geo_init) def cutting_geo(self, pos): self.cutting_dia = float(self.dia.get_value()) @@ -1343,10 +1306,10 @@ class CutOut(AppTool): This only operates on the paths in the original geometry, i.e. it converts polygons into paths. - :param x0: x coord for lower left vertex of the polygon. - :param y0: y coord for lower left vertex of the polygon. - :param x1: x coord for upper right vertex of the polygon. - :param y1: y coord for upper right vertex of the polygon. + :param x0: x coord for lower left vertice of the polygon. + :param y0: y coord for lower left vertice of the polygon. + :param x1: x coord for upper right vertice of the polygon. + :param y1: y coord for upper right vertice of the polygon. :param solid_geo: Geometry from which to substract. If none, use the solid_geomety property of the object :return: none @@ -1404,7 +1367,6 @@ def flatten(geometry): def recursive_bounds(geometry): """ - Return the bounds of the biggest bounding box in geometry, one that include all. :param geometry: a iterable object that holds geometry :return: Returns coordinates of rectangular bounds of geometry: (xmin, ymin, xmax, ymax). diff --git a/AppTools/ToolDblSided.py b/flatcamTools/ToolDblSided.py similarity index 98% rename from AppTools/ToolDblSided.py rename to flatcamTools/ToolDblSided.py index 23bb781f..2aed9a3f 100644 --- a/AppTools/ToolDblSided.py +++ b/flatcamTools/ToolDblSided.py @@ -1,8 +1,8 @@ from PyQt5 import QtWidgets, QtCore -from AppTool import AppTool -from AppGUI.GUIElements import RadioSet, FCDoubleSpinner, EvalEntry, FCEntry, FCButton, FCComboBox +from FlatCAMTool import FlatCAMTool +from flatcamGUI.GUIElements import RadioSet, FCDoubleSpinner, EvalEntry, FCEntry, FCButton, FCComboBox from numpy import Inf @@ -11,7 +11,7 @@ from shapely import affinity import logging import gettext -import AppTranslation as fcTranslate +import FlatCAMTranslation as fcTranslate import builtins fcTranslate.apply_language('strings') @@ -21,12 +21,12 @@ if '_' not in builtins.__dict__: log = logging.getLogger('base') -class DblSidedTool(AppTool): +class DblSidedTool(FlatCAMTool): toolName = _("2-Sided PCB") def __init__(self, app): - AppTool.__init__(self, app) + FlatCAMTool.__init__(self, app) self.decimals = self.app.decimals # ## Title @@ -511,7 +511,7 @@ class DblSidedTool(AppTool): self.drill_values = "" def install(self, icon=None, separator=None, **kwargs): - AppTool.install(self, icon, separator, shortcut='Alt+D', **kwargs) + FlatCAMTool.install(self, icon, separator, shortcut='Alt+D', **kwargs) def run(self, toggle=True): self.app.defaults.report_usage("Tool2Sided()") @@ -535,7 +535,7 @@ class DblSidedTool(AppTool): if self.app.ui.splitter.sizes()[0] == 0: self.app.ui.splitter.setSizes([1, 1]) - AppTool.run(self) + FlatCAMTool.run(self) self.set_tool_ui() self.app.ui.notebook.setTabText(2, _("2-Sided Tool")) @@ -643,7 +643,7 @@ class DblSidedTool(AppTool): obj_inst.source_file = app_inst.export_excellon(obj_name=obj_inst.options['name'], local_use=obj_inst, filename=None, use_thread=False) - self.app.app_obj.new_object("excellon", "Alignment Drills", obj_init) + self.app.new_object("excellon", "Alignment Drills", obj_init) self.drill_values = '' self.app.inform.emit('[success] %s' % _("Excellon object with alignment drills created...")) @@ -686,7 +686,7 @@ class DblSidedTool(AppTool): py = 0.5 * (ymin + ymax) fcobj.mirror(axis, [px, py]) - self.app.app_obj.object_changed.emit(fcobj) + self.app.object_changed.emit(fcobj) fcobj.plot() self.app.inform.emit('[success] Gerber %s %s...' % (str(fcobj.options['name']), _("was mirrored"))) @@ -730,7 +730,7 @@ class DblSidedTool(AppTool): py = 0.5 * (ymin + ymax) fcobj.mirror(axis, [px, py]) - self.app.app_obj.object_changed.emit(fcobj) + self.app.object_changed.emit(fcobj) fcobj.plot() self.app.inform.emit('[success] Excellon %s %s...' % (str(fcobj.options['name']), _("was mirrored"))) @@ -767,7 +767,7 @@ class DblSidedTool(AppTool): py = 0.5 * (ymin + ymax) fcobj.mirror(axis, [px, py]) - self.app.app_obj.object_changed.emit(fcobj) + self.app.object_changed.emit(fcobj) fcobj.plot() self.app.inform.emit('[success] Geometry %s %s...' % (str(fcobj.options['name']), _("was mirrored"))) diff --git a/AppTools/ToolDistance.py b/flatcamTools/ToolDistance.py similarity index 89% rename from AppTools/ToolDistance.py rename to flatcamTools/ToolDistance.py index 58c51c1f..ea62c64e 100644 --- a/AppTools/ToolDistance.py +++ b/flatcamTools/ToolDistance.py @@ -7,15 +7,15 @@ from PyQt5 import QtWidgets, QtCore -from AppTool import AppTool -from AppGUI.VisPyVisuals import * -from AppGUI.GUIElements import FCEntry, FCButton, FCCheckBox +from FlatCAMTool import FlatCAMTool +from flatcamGUI.VisPyVisuals import * +from flatcamGUI.GUIElements import FCEntry, FCButton, FCCheckBox from shapely.geometry import Point, MultiLineString, Polygon -import AppTranslation as fcTranslate +import FlatCAMTranslation as fcTranslate from camlib import FlatCAMRTreeStorage -from AppEditors.FlatCAMGeoEditor import DrawToolShape +from flatcamEditors.FlatCAMGeoEditor import DrawToolShape from copy import copy import math @@ -30,12 +30,12 @@ if '_' not in builtins.__dict__: log = logging.getLogger('base') -class Distance(AppTool): +class Distance(FlatCAMTool): toolName = _("Distance Tool") def __init__(self, app): - AppTool.__init__(self, app) + FlatCAMTool.__init__(self, app) self.app = app self.decimals = self.app.decimals @@ -170,13 +170,11 @@ class Distance(AppTool): # store here if the snap button was clicked self.snap_toggled = None - self.mouse_is_dragging = False - # VisPy visuals if self.app.is_legacy is False: self.sel_shapes = ShapeCollection(parent=self.app.plotcanvas.view.scene, layers=1) else: - from AppGUI.PlotCanvasLegacy import ShapeCollectionLegacy + from flatcamGUI.PlotCanvasLegacy import ShapeCollectionLegacy self.sel_shapes = ShapeCollectionLegacy(obj=self, app=self.app, name='measurement') self.measure_btn.clicked.connect(self.activate_measure_tool) @@ -208,13 +206,13 @@ class Distance(AppTool): self.deactivate_measure_tool() def install(self, icon=None, separator=None, **kwargs): - AppTool.install(self, icon, separator, shortcut='Ctrl+M', **kwargs) + FlatCAMTool.install(self, icon, separator, shortcut='Ctrl+M', **kwargs) def set_tool_ui(self): - # Remove anything else in the AppGUI + # Remove anything else in the GUI self.app.ui.tool_scroll_area.takeWidget() - # Put ourselves in the AppGUI + # Put ourselves in the GUI self.app.ui.tool_scroll_area.setWidget(self) # Switch notebook to tool page @@ -394,16 +392,12 @@ class Distance(AppTool): # are used for panning on the canvas log.debug("Distance Tool --> mouse click release") - if self.app.is_legacy is False: - event_pos = event.pos - right_button = 2 - event_is_dragging = self.mouse_is_dragging - else: - event_pos = (event.xdata, event.ydata) - right_button = 3 - event_is_dragging = self.app.plotcanvas.is_dragging - if event.button == 1: + if self.app.is_legacy is False: + event_pos = event.pos + else: + event_pos = (event.xdata, event.ydata) + pos_canvas = self.canvas.translate_coords(event_pos) if self.snap_center_cb.get_value() is False: @@ -475,18 +469,15 @@ class Distance(AppTool): # Reset here the relative coordinates so there is a new reference on the click position if self.rel_point1 is None: - # self.app.ui.rel_position_label.setText("Dx: %.*f   Dy: " - # "%.*f    " % - # (self.decimals, 0.0, self.decimals, 0.0)) + self.app.ui.rel_position_label.setText("Dx: %.*f   Dy: " + "%.*f    " % + (self.decimals, 0.0, self.decimals, 0.0)) self.rel_point1 = pos else: self.rel_point2 = copy(self.rel_point1) self.rel_point1 = pos self.calculate_distance(pos=pos) - elif event.button == right_button and event_is_dragging is False: - self.deactivate_measure_tool() - self.app.inform.emit(_("Distance Tool cancelled.")) def calculate_distance(self, pos): if len(self.points) == 1: @@ -511,20 +502,19 @@ class Distance(AppTool): self.distance_x_entry.set_value('%.*f' % (self.decimals, abs(dx))) self.distance_y_entry.set_value('%.*f' % (self.decimals, abs(dy))) - try: - angle = math.degrees(math.atan2(dy, dx)) - if angle < 0: - angle += 360 - self.angle_entry.set_value('%.*f' % (self.decimals, angle)) - except Exception: - pass + if dx != 0.0: + try: + angle = math.degrees(math.atan(dy / dx)) + self.angle_entry.set_value('%.*f' % (self.decimals, angle)) + except Exception: + pass self.total_distance_entry.set_value('%.*f' % (self.decimals, abs(d))) - # self.app.ui.rel_position_label.setText( - # "Dx: {}   Dy: {}    ".format( - # '%.*f' % (self.decimals, pos[0]), '%.*f' % (self.decimals, pos[1]) - # ) - # ) + self.app.ui.rel_position_label.setText( + "Dx: {}   Dy: {}    ".format( + '%.*f' % (self.decimals, pos[0]), '%.*f' % (self.decimals, pos[1]) + ) + ) self.tool_done = True self.deactivate_measure_tool() @@ -532,7 +522,6 @@ class Distance(AppTool): try: # May fail in case mouse not within axes if self.app.is_legacy is False: event_pos = event.pos - self.mouse_is_dragging = event.is_dragging else: event_pos = (event.xdata, event.ydata) @@ -561,11 +550,6 @@ class Distance(AppTool): ) ) - units = self.app.defaults["units"].lower() - self.app.plotcanvas.text_hud.text = \ - 'Dx:\t{:<.4f} [{:s}]\nDy:\t{:<.4f} [{:s}]\n\nX: \t{:<.4f} [{:s}]\nY: \t{:<.4f} [{:s}]'.format( - 0.0000, units, 0.0000, units, pos[0], units, pos[1], units) - if self.rel_point1 is not None: dx = pos[0] - float(self.rel_point1[0]) dy = pos[1] - float(self.rel_point1[1]) @@ -573,29 +557,28 @@ class Distance(AppTool): dx = pos[0] dy = pos[1] - # self.app.ui.rel_position_label.setText( - # "Dx: {}   Dy: {}    ".format( - # '%.*f' % (self.decimals, dx), '%.*f' % (self.decimals, dy) - # ) - # ) + self.app.ui.rel_position_label.setText( + "Dx: {}   Dy: {}    ".format( + '%.*f' % (self.decimals, dx), '%.*f' % (self.decimals, dy) + ) + ) # update utility geometry if len(self.points) == 1: self.utility_geometry(pos=pos) # and display the temporary angle - try: - angle = math.degrees(math.atan2(dy, dx)) - if angle < 0: - angle += 360 - self.angle_entry.set_value('%.*f' % (self.decimals, angle)) - except Exception as e: - log.debug("Distance.on_mouse_move_meas() -> update utility geometry -> %s" % str(e)) - pass + if dx != 0.0: + try: + angle = math.degrees(math.atan(dy / dx)) + self.angle_entry.set_value('%.*f' % (self.decimals, angle)) + except Exception as e: + log.debug("Distance.on_mouse_move_meas() -> update utility geometry -> %s" % str(e)) + pass except Exception as e: log.debug("Distance.on_mouse_move_meas() --> %s" % str(e)) self.app.ui.position_label.setText("") - # self.app.ui.rel_position_label.setText("") + self.app.ui.rel_position_label.setText("") def utility_geometry(self, pos): # first delete old shape diff --git a/AppTools/ToolDistanceMin.py b/flatcamTools/ToolDistanceMin.py similarity index 97% rename from AppTools/ToolDistanceMin.py rename to flatcamTools/ToolDistanceMin.py index 0e932863..dc4369ea 100644 --- a/AppTools/ToolDistanceMin.py +++ b/flatcamTools/ToolDistanceMin.py @@ -6,8 +6,9 @@ # ########################################################## from PyQt5 import QtWidgets, QtCore -from AppTool import AppTool -from AppGUI.GUIElements import FCEntry +from FlatCAMTool import FlatCAMTool +from flatcamGUI.VisPyVisuals import * +from flatcamGUI.GUIElements import FCEntry from shapely.ops import nearest_points from shapely.geometry import Point, MultiPolygon @@ -16,7 +17,7 @@ from shapely.ops import cascaded_union import math import logging import gettext -import AppTranslation as fcTranslate +import FlatCAMTranslation as fcTranslate import builtins fcTranslate.apply_language('strings') @@ -26,12 +27,12 @@ if '_' not in builtins.__dict__: log = logging.getLogger('base') -class DistanceMin(AppTool): +class DistanceMin(FlatCAMTool): toolName = _("Minimum Distance Tool") def __init__(self, app): - AppTool.__init__(self, app) + FlatCAMTool.__init__(self, app) self.app = app self.canvas = self.app.plotcanvas @@ -154,13 +155,13 @@ class DistanceMin(AppTool): _("Select two objects and no more, to measure the distance between them ...")) def install(self, icon=None, separator=None, **kwargs): - AppTool.install(self, icon, separator, shortcut='Shift+M', **kwargs) + FlatCAMTool.install(self, icon, separator, shortcut='Shift+M', **kwargs) def set_tool_ui(self): - # Remove anything else in the AppGUI + # Remove anything else in the GUI self.app.ui.tool_scroll_area.takeWidget() - # Put oneself in the AppGUI + # Put oneself in the GUI self.app.ui.tool_scroll_area.setWidget(self) # Switch notebook to tool page diff --git a/AppTools/ToolExtractDrills.py b/flatcamTools/ToolExtractDrills.py similarity index 98% rename from AppTools/ToolExtractDrills.py rename to flatcamTools/ToolExtractDrills.py index 71e8fb41..2c127c2b 100644 --- a/AppTools/ToolExtractDrills.py +++ b/flatcamTools/ToolExtractDrills.py @@ -7,14 +7,14 @@ from PyQt5 import QtWidgets, QtCore -from AppTool import AppTool -from AppGUI.GUIElements import RadioSet, FCDoubleSpinner, FCCheckBox, FCComboBox +from FlatCAMTool import FlatCAMTool +from flatcamGUI.GUIElements import RadioSet, FCDoubleSpinner, FCCheckBox, FCComboBox from shapely.geometry import Point import logging import gettext -import AppTranslation as fcTranslate +import FlatCAMTranslation as fcTranslate import builtins fcTranslate.apply_language('strings') @@ -24,12 +24,12 @@ if '_' not in builtins.__dict__: log = logging.getLogger('base') -class ToolExtractDrills(AppTool): +class ToolExtractDrills(FlatCAMTool): toolName = _("Extract Drills") def __init__(self, app): - AppTool.__init__(self, app) + FlatCAMTool.__init__(self, app) self.decimals = self.app.decimals # ## Title @@ -363,7 +363,7 @@ class ToolExtractDrills(AppTool): ) def install(self, icon=None, separator=None, **kwargs): - AppTool.install(self, icon, separator, shortcut='Alt+I', **kwargs) + FlatCAMTool.install(self, icon, separator, shortcut='Alt+I', **kwargs) def run(self, toggle=True): self.app.defaults.report_usage("Extract Drills()") @@ -387,7 +387,7 @@ class ToolExtractDrills(AppTool): if self.app.ui.splitter.sizes()[0] == 0: self.app.ui.splitter.setSizes([1, 1]) - AppTool.run(self) + FlatCAMTool.run(self) self.set_tool_ui() self.app.ui.notebook.setTabText(2, _("Extract Drills Tool")) @@ -655,7 +655,7 @@ class ToolExtractDrills(AppTool): obj_inst.source_file = self.app.export_excellon(obj_name=outname, local_use=obj_inst, filename=None, use_thread=False) - self.app.app_obj.new_object("excellon", outname, obj_init) + self.app.new_object("excellon", outname, obj_init) def on_hole_size_toggle(self, val): if val == "fixed": diff --git a/AppTools/ToolFiducials.py b/flatcamTools/ToolFiducials.py similarity index 97% rename from AppTools/ToolFiducials.py rename to flatcamTools/ToolFiducials.py index 4aa8598a..1b3513d4 100644 --- a/AppTools/ToolFiducials.py +++ b/flatcamTools/ToolFiducials.py @@ -7,8 +7,8 @@ from PyQt5 import QtWidgets, QtCore -from AppTool import AppTool -from AppGUI.GUIElements import FCDoubleSpinner, RadioSet, EvalEntry, FCTable, FCComboBox +from FlatCAMTool import FlatCAMTool +from flatcamGUI.GUIElements import FCDoubleSpinner, RadioSet, EvalEntry, FCTable, FCComboBox from shapely.geometry import Point, Polygon, MultiPolygon, LineString from shapely.geometry import box as box @@ -18,7 +18,7 @@ import logging from copy import deepcopy import gettext -import AppTranslation as fcTranslate +import FlatCAMTranslation as fcTranslate import builtins fcTranslate.apply_language('strings') @@ -28,12 +28,12 @@ if '_' not in builtins.__dict__: log = logging.getLogger('base') -class ToolFiducials(AppTool): +class ToolFiducials(FlatCAMTool): toolName = _("Fiducials Tool") def __init__(self, app): - AppTool.__init__(self, app) + FlatCAMTool.__init__(self, app) self.app = app self.canvas = self.app.plotcanvas @@ -63,6 +63,9 @@ class ToolFiducials(AppTool): self.points_table = FCTable() self.points_table.setSelectionBehavior(QtWidgets.QAbstractItemView.SelectRows) + self.layout.addWidget(self.points_table) + self.layout.addWidget(QtWidgets.QLabel('')) + self.points_table.setColumnCount(3) self.points_table.setHorizontalHeaderLabels( [ @@ -73,6 +76,7 @@ class ToolFiducials(AppTool): ) self.points_table.setRowCount(3) row = 0 + flags = QtCore.Qt.ItemIsEnabled # BOTTOM LEFT @@ -136,13 +140,6 @@ class ToolFiducials(AppTool): for row in range(self.points_table.rowCount()): self.points_table.cellWidget(row, 2).setFrame(False) - self.layout.addWidget(self.points_table) - - separator_line = QtWidgets.QFrame() - separator_line.setFrameShape(QtWidgets.QFrame.HLine) - separator_line.setFrameShadow(QtWidgets.QFrame.Sunken) - self.layout.addWidget(separator_line) - # ## Grid Layout grid_lay = QtWidgets.QGridLayout() self.layout.addLayout(grid_lay) @@ -237,7 +234,7 @@ class ToolFiducials(AppTool): # Line Thickness # self.line_thickness_label = QtWidgets.QLabel('%s:' % _("Line thickness")) self.line_thickness_label.setToolTip( - _("Thickness of the line that makes the fiducial.") + _("Bounding box margin.") ) self.line_thickness_entry = FCDoubleSpinner(callback=self.confirmation_message) self.line_thickness_entry.set_range(0.00001, 9999.9999) @@ -259,7 +256,7 @@ class ToolFiducials(AppTool): self.grb_object_combo.is_last = True self.grb_object_combo.obj_type = "Gerber" - self.grbobj_label = QtWidgets.QLabel("%s:" % _("GERBER")) + self.grbobj_label = QtWidgets.QLabel("%s:" % _("Copper Gerber")) self.grbobj_label.setToolTip( _("Gerber Object to which will be added a copper thieving.") ) @@ -356,8 +353,7 @@ class ToolFiducials(AppTool): self.margin_val = None self.sec_position = None - - self.grb_steps_per_circle = self.app.defaults["gerber_circle_steps"] + self.geo_steps_per_circle = 128 self.click_points = [] @@ -392,14 +388,14 @@ class ToolFiducials(AppTool): if self.app.ui.splitter.sizes()[0] == 0: self.app.ui.splitter.setSizes([1, 1]) - AppTool.run(self) + FlatCAMTool.run(self) self.set_tool_ui() self.app.ui.notebook.setTabText(2, _("Fiducials Tool")) def install(self, icon=None, separator=None, **kwargs): - AppTool.install(self, icon, separator, shortcut='Alt+F', **kwargs) + FlatCAMTool.install(self, icon, separator, shortcut='Alt+J', **kwargs) def set_tool_ui(self): self.units = self.app.defaults['units'] @@ -475,7 +471,7 @@ class ToolFiducials(AppTool): if self.mode_method == 'auto': xmin, ymin, xmax, ymax = self.grb_object.bounds() bbox = box(xmin, ymin, xmax, ymax) - buf_bbox = bbox.buffer(self.margin_val, self.grb_steps_per_circle, join_style=2) + buf_bbox = bbox.buffer(self.margin_val, join_style=2) x0, y0, x1, y1 = buf_bbox.bounds self.click_points.append( @@ -543,7 +539,7 @@ class ToolFiducials(AppTool): radius = fid_size / 2.0 if fid_type == 'circular': - geo_list = [Point(pt).buffer(radius, self.grb_steps_per_circle) for pt in points_list] + geo_list = [Point(pt).buffer(radius) for pt in points_list] aperture_found = None for ap_id, ap_val in g_obj.apertures.items(): @@ -608,8 +604,8 @@ class ToolFiducials(AppTool): geo_buff_list = [] if aperture_found: for geo in geo_list: - geo_buff_h = geo[0].buffer(line_thickness / 2.0, self.grb_steps_per_circle) - geo_buff_v = geo[1].buffer(line_thickness / 2.0, self.grb_steps_per_circle) + geo_buff_h = geo[0].buffer(line_thickness / 2.0) + geo_buff_v = geo[1].buffer(line_thickness / 2.0) geo_buff_list.append(geo_buff_h) geo_buff_list.append(geo_buff_v) @@ -633,8 +629,8 @@ class ToolFiducials(AppTool): g_obj.apertures[new_apid]['geometry'] = [] for geo in geo_list: - geo_buff_h = geo[0].buffer(line_thickness / 2.0, self.grb_steps_per_circle) - geo_buff_v = geo[1].buffer(line_thickness / 2.0, self.grb_steps_per_circle) + geo_buff_h = geo[0].buffer(line_thickness / 2.0) + geo_buff_v = geo[1].buffer(line_thickness / 2.0) geo_buff_list.append(geo_buff_h) geo_buff_list.append(geo_buff_v) diff --git a/AppTools/ToolFilm.py b/flatcamTools/ToolFilm.py similarity index 94% rename from AppTools/ToolFilm.py rename to flatcamTools/ToolFilm.py index 9da564da..f386f0e8 100644 --- a/AppTools/ToolFilm.py +++ b/flatcamTools/ToolFilm.py @@ -5,10 +5,10 @@ # MIT Licence # # ########################################################## -from PyQt5 import QtCore, QtWidgets +from PyQt5 import QtGui, QtCore, QtWidgets -from AppTool import AppTool -from AppGUI.GUIElements import RadioSet, FCDoubleSpinner, FCCheckBox, \ +from FlatCAMTool import FlatCAMTool +from flatcamGUI.GUIElements import RadioSet, FCDoubleSpinner, FCCheckBox, \ OptionalHideInputSection, OptionalInputSection, FCComboBox, FCFileSaveDialog from copy import deepcopy @@ -27,7 +27,7 @@ from lxml import etree as ET from io import StringIO import gettext -import AppTranslation as fcTranslate +import FlatCAMTranslation as fcTranslate import builtins fcTranslate.apply_language('strings') @@ -37,12 +37,12 @@ if '_' not in builtins.__dict__: log = logging.getLogger('base') -class Film(AppTool): +class Film(FlatCAMTool): toolName = _("Film PCB") def __init__(self, app): - AppTool.__init__(self, app) + FlatCAMTool.__init__(self, app) self.decimals = self.app.decimals @@ -65,8 +65,13 @@ class Film(AppTool): grid0.setColumnStretch(1, 1) # Type of object for which to create the film - self.tf_type_obj_combo = RadioSet([{'label': _('Gerber'), 'value': 'grb'}, - {'label': _('Geometry'), 'value': 'geo'}]) + self.tf_type_obj_combo = FCComboBox() + self.tf_type_obj_combo.addItems([_("Gerber"), _("Geometry")]) + + # we get rid of item1 ("Excellon") as it is not suitable for creating film + # self.tf_type_obj_combo.view().setRowHidden(1, True) + self.tf_type_obj_combo.setItemIcon(0, QtGui.QIcon(self.app.resource_location + "/flatcam_icon16.png")) + self.tf_type_obj_combo.setItemIcon(1, QtGui.QIcon(self.app.resource_location + "/geometry16.png")) self.tf_type_obj_combo_label = QtWidgets.QLabel('%s:' % _("Object Type")) self.tf_type_obj_combo_label.setToolTip( @@ -84,12 +89,26 @@ class Film(AppTool): self.tf_object_combo.setRootModelIndex(self.app.collection.index(0, 0, QtCore.QModelIndex())) self.tf_object_combo.is_last = True - grid0.addWidget(self.tf_object_combo, 1, 0, 1, 2) + self.tf_object_label = QtWidgets.QLabel('%s:' % _("Film Object")) + self.tf_object_label.setToolTip( + _("Object for which to create the film.") + ) + grid0.addWidget(self.tf_object_label, 1, 0) + grid0.addWidget(self.tf_object_combo, 1, 1) # Type of Box Object to be used as an envelope for film creation # Within this we can create negative - self.tf_type_box_combo = RadioSet([{'label': _('Gerber'), 'value': 'grb'}, - {'label': _('Geometry'), 'value': 'geo'}]) + self.tf_type_box_combo = FCComboBox() + self.tf_type_box_combo.addItems([_("Gerber"), _("Geometry")]) + + # self.tf_type_box_combo.addItem("Gerber") + # self.tf_type_box_combo.addItem("Excellon") + # self.tf_type_box_combo.addItem("Geometry") + + # we get rid of item1 ("Excellon") as it is not suitable for box when creating film + # self.tf_type_box_combo.view().setRowHidden(1, True) + self.tf_type_box_combo.setItemIcon(0, QtGui.QIcon(self.app.resource_location + "/flatcam_icon16.png")) + self.tf_type_box_combo.setItemIcon(1, QtGui.QIcon(self.app.resource_location + "/geometry16.png")) self.tf_type_box_combo_label = QtWidgets.QLabel(_("Box Type:")) self.tf_type_box_combo_label.setToolTip( @@ -107,19 +126,17 @@ class Film(AppTool): self.tf_box_combo.setRootModelIndex(self.app.collection.index(0, 0, QtCore.QModelIndex())) self.tf_box_combo.is_last = True - # self.tf_box_combo_label = QtWidgets.QLabel('%s:' % _("Box Object")) - # self.tf_box_combo_label.setToolTip( - # _("The actual object that is used as container for the\n " - # "selected object for which we create the film.\n" - # "Usually it is the PCB outline but it can be also the\n" - # "same object for which the film is created.") - # ) - grid0.addWidget(self.tf_box_combo, 3, 0, 1, 2) + self.tf_box_combo_label = QtWidgets.QLabel('%s:' % _("Box Object")) + self.tf_box_combo_label.setToolTip( + _("The actual object that is used as container for the\n " + "selected object for which we create the film.\n" + "Usually it is the PCB outline but it can be also the\n" + "same object for which the film is created.") + ) + grid0.addWidget(self.tf_box_combo_label, 3, 0) + grid0.addWidget(self.tf_box_combo, 3, 1) - separator_line = QtWidgets.QFrame() - separator_line.setFrameShape(QtWidgets.QFrame.HLine) - separator_line.setFrameShadow(QtWidgets.QFrame.Sunken) - grid0.addWidget(separator_line, 4, 0, 1, 2) + grid0.addWidget(QtWidgets.QLabel(''), 4, 0) self.film_adj_label = QtWidgets.QLabel('%s' % _("Film Adjustments")) self.film_adj_label.setToolTip( @@ -516,28 +533,28 @@ class Film(AppTool): # ## Signals self.film_object_button.clicked.connect(self.on_film_creation) - self.tf_type_obj_combo.activated_custom.connect(self.on_type_obj_index_changed) - self.tf_type_box_combo.activated_custom.connect(self.on_type_box_index_changed) + self.tf_type_obj_combo.currentIndexChanged.connect(self.on_type_obj_index_changed) + self.tf_type_box_combo.currentIndexChanged.connect(self.on_type_box_index_changed) self.film_type.activated_custom.connect(self.on_film_type) self.source_punch.activated_custom.connect(self.on_punch_source) self.file_type_radio.activated_custom.connect(self.on_file_type) self.reset_button.clicked.connect(self.set_tool_ui) - def on_type_obj_index_changed(self, val): - obj_type = 2 if val == 'geo' else 0 + def on_type_obj_index_changed(self): + obj_type = self.tf_type_obj_combo.currentIndex() self.tf_object_combo.setRootModelIndex(self.app.collection.index(obj_type, 0, QtCore.QModelIndex())) self.tf_object_combo.setCurrentIndex(0) self.tf_object_combo.obj_type = { - "grb": "gerber", "geo": "geometry" + _("Gerber"): "Gerber", _("Geometry"): "Geometry" }[self.tf_type_obj_combo.get_value()] - def on_type_box_index_changed(self, val): - obj_type = 2 if val == 'geo' else 0 + def on_type_box_index_changed(self): + obj_type = self.tf_type_box_combo.currentIndex() self.tf_box_combo.setRootModelIndex(self.app.collection.index(obj_type, 0, QtCore.QModelIndex())) self.tf_box_combo.setCurrentIndex(0) self.tf_box_combo.obj_type = { - "grb": "gerber", "geo": "geometry" + _("Gerber"): "Gerber", _("Geometry"): "Geometry" }[self.tf_type_obj_combo.get_value()] def run(self, toggle=True): @@ -562,14 +579,14 @@ class Film(AppTool): if self.app.ui.splitter.sizes()[0] == 0: self.app.ui.splitter.setSizes([1, 1]) - AppTool.run(self) + FlatCAMTool.run(self) self.set_tool_ui() self.app.ui.notebook.setTabText(2, _("Film Tool")) def install(self, icon=None, separator=None, **kwargs): - AppTool.install(self, icon, separator, shortcut='Alt+L', **kwargs) + FlatCAMTool.install(self, icon, separator, shortcut='Alt+L', **kwargs) def set_tool_ui(self): self.reset_fields() @@ -601,11 +618,9 @@ class Film(AppTool): self.orientation_radio.set_value(self.app.defaults["tools_film_orientation"]) self.pagesize_combo.set_value(self.app.defaults["tools_film_pagesize"]) - self.tf_type_obj_combo.set_value('grb') - self.tf_type_box_combo.set_value('grb') # run once to update the obj_type attribute in the FCCombobox so the last object is showed in cb - self.on_type_obj_index_changed(val='grb') - self.on_type_box_index_changed(val='grb') + self.on_type_obj_index_changed() + self.on_type_box_index_changed() def on_film_type(self, val): type_of_film = val @@ -644,7 +659,7 @@ class Film(AppTool): self.exc_label.show() self.exc_combo.show() - if val == 'pad' and self.tf_type_obj_combo.get_value() == 'geo': + if val == 'pad' and self.tf_type_obj_combo.currentText() == 'Geometry': self.source_punch.set_value('exc') self.app.inform.emit('[WARNING_NOTCL] %s' % _("Using the Pad center does not work on Geometry objects. " "Only a Gerber object has pads.")) @@ -729,7 +744,7 @@ class Film(AppTool): filename, _f = FCFileSaveDialog.get_saved_filename( caption=_("Export positive film"), directory=self.app.get_last_save_folder() + '/' + name + '_film', - ext_filter=filter_ext) + filter=filter_ext) except TypeError: filename, _f = FCFileSaveDialog.get_saved_filename(caption=_("Export positive film")) @@ -775,7 +790,7 @@ class Film(AppTool): new_obj.solid_geometry = deepcopy(punched_solid_geometry) outname = name + "_punched" - self.app.app_obj.new_object('gerber', outname, init_func) + self.app.new_object('gerber', outname, init_func) self.generate_positive_normal_film(outname, boxname, factor=factor, ftype=ftype) else: @@ -826,7 +841,7 @@ class Film(AppTool): new_obj.solid_geometry = deepcopy(punched_solid_geometry) outname = name + "_punched" - self.app.app_obj.new_object('gerber', outname, init_func) + self.app.new_object('gerber', outname, init_func) self.generate_positive_normal_film(outname, boxname, factor=factor, ftype=ftype) @@ -875,7 +890,7 @@ class Film(AppTool): filename, _f = FCFileSaveDialog.get_saved_filename( caption=_("Export negative film"), directory=self.app.get_last_save_folder() + '/' + name + '_film', - ext_filter=filter_ext) + filter=filter_ext) except TypeError: filename, _f = FCFileSaveDialog.get_saved_filename(caption=_("Export negative film")) diff --git a/AppTools/ToolImage.py b/flatcamTools/ToolImage.py similarity index 96% rename from AppTools/ToolImage.py rename to flatcamTools/ToolImage.py index 5d520c78..6a077a0d 100644 --- a/AppTools/ToolImage.py +++ b/flatcamTools/ToolImage.py @@ -7,11 +7,11 @@ from PyQt5 import QtGui, QtWidgets -from AppTool import AppTool -from AppGUI.GUIElements import RadioSet, FCComboBox, FCSpinner +from FlatCAMTool import FlatCAMTool +from flatcamGUI.GUIElements import RadioSet, FCComboBox, FCSpinner import gettext -import AppTranslation as fcTranslate +import FlatCAMTranslation as fcTranslate import builtins fcTranslate.apply_language('strings') @@ -19,12 +19,12 @@ if '_' not in builtins.__dict__: _ = gettext.gettext -class ToolImage(AppTool): +class ToolImage(FlatCAMTool): toolName = _("Image as Object") def __init__(self, app): - AppTool.__init__(self, app) + FlatCAMTool.__init__(self, app) self.app = app self.decimals = self.app.decimals @@ -176,13 +176,13 @@ class ToolImage(AppTool): if self.app.ui.splitter.sizes()[0] == 0: self.app.ui.splitter.setSizes([1, 1]) - AppTool.run(self) + FlatCAMTool.run(self) self.set_tool_ui() self.app.ui.notebook.setTabText(2, _("Image Tool")) def install(self, icon=None, separator=None, **kwargs): - AppTool.install(self, icon, separator, **kwargs) + FlatCAMTool.install(self, icon, separator, **kwargs) def set_tool_ui(self): # ## Initialize form @@ -288,7 +288,7 @@ class ToolImage(AppTool): name = outname or filename.split('/')[-1].split('\\')[-1] units = self.app.defaults['units'] - self.app.app_obj.new_object(obj_type, name, obj_init) + self.app.new_object(obj_type, name, obj_init) # Register recent file self.app.file_opened.emit("image", filename) diff --git a/AppTools/ToolInvertGerber.py b/flatcamTools/ToolInvertGerber.py similarity index 93% rename from AppTools/ToolInvertGerber.py rename to flatcamTools/ToolInvertGerber.py index 96e771b4..b1329882 100644 --- a/AppTools/ToolInvertGerber.py +++ b/flatcamTools/ToolInvertGerber.py @@ -7,8 +7,8 @@ from PyQt5 import QtWidgets, QtCore -from AppTool import AppTool -from AppGUI.GUIElements import FCButton, FCDoubleSpinner, RadioSet, FCComboBox +from FlatCAMTool import FlatCAMTool +from flatcamGUI.GUIElements import FCButton, FCDoubleSpinner, RadioSet, FCComboBox from shapely.geometry import box @@ -16,7 +16,7 @@ from copy import deepcopy import logging import gettext -import AppTranslation as fcTranslate +import FlatCAMTranslation as fcTranslate import builtins fcTranslate.apply_language('strings') @@ -26,7 +26,7 @@ if '_' not in builtins.__dict__: log = logging.getLogger('base') -class ToolInvertGerber(AppTool): +class ToolInvertGerber(FlatCAMTool): toolName = _("Invert Gerber Tool") @@ -34,7 +34,7 @@ class ToolInvertGerber(AppTool): self.app = app self.decimals = self.app.decimals - AppTool.__init__(self, app) + FlatCAMTool.__init__(self, app) self.tools_frame = QtWidgets.QFrame() self.tools_frame.setContentsMargins(0, 0, 0, 0) @@ -77,10 +77,7 @@ class ToolInvertGerber(AppTool): grid0.addWidget(self.gerber_label, 1, 0, 1, 2) grid0.addWidget(self.gerber_combo, 2, 0, 1, 2) - separator_line = QtWidgets.QFrame() - separator_line.setFrameShape(QtWidgets.QFrame.HLine) - separator_line.setFrameShadow(QtWidgets.QFrame.Sunken) - grid0.addWidget(separator_line, 3, 0, 1, 2) + grid0.addWidget(QtWidgets.QLabel(""), 3, 0, 1, 2) self.param_label = QtWidgets.QLabel("%s:" % _("Parameters")) self.param_label.setToolTip('%s.' % _("Parameters for this tool")) @@ -156,7 +153,7 @@ class ToolInvertGerber(AppTool): self.reset_button.clicked.connect(self.set_tool_ui) def install(self, icon=None, separator=None, **kwargs): - AppTool.install(self, icon, separator, shortcut='', **kwargs) + FlatCAMTool.install(self, icon, separator, shortcut='', **kwargs) def run(self, toggle=True): self.app.defaults.report_usage("ToolInvertGerber()") @@ -181,7 +178,7 @@ class ToolInvertGerber(AppTool): if self.app.ui.splitter.sizes()[0] == 0: self.app.ui.splitter.setSizes([1, 1]) - AppTool.run(self) + FlatCAMTool.run(self) self.set_tool_ui() self.app.ui.notebook.setTabText(2, _("Invert Tool")) @@ -231,11 +228,6 @@ class ToolInvertGerber(AppTool): for poly in grb_obj.solid_geometry: new_solid_geometry = new_solid_geometry.difference(poly) - try: - __ = iter(new_solid_geometry) - except TypeError: - new_solid_geometry = [new_solid_geometry] - new_options = {} for opt in grb_obj.options: new_options[opt] = deepcopy(grb_obj.options[opt]) @@ -286,6 +278,9 @@ class ToolInvertGerber(AppTool): new_el['follow'] = new_solid_geometry.exterior new_apertures['0']['geometry'].append(new_el) + for td in new_apertures: + print(td, new_apertures[td]) + def init_func(new_obj, app_obj): new_obj.options.update(new_options) new_obj.options['name'] = outname @@ -298,7 +293,7 @@ class ToolInvertGerber(AppTool): new_obj.source_file = self.app.export_gerber(obj_name=outname, filename=None, local_use=new_obj, use_thread=False) - self.app.app_obj.new_object('gerber', outname, init_func) + self.app.new_object('gerber', outname, init_func) def reset_fields(self): self.gerber_combo.setRootModelIndex(self.app.collection.index(0, 0, QtCore.QModelIndex())) diff --git a/AppTools/ToolMove.py b/flatcamTools/ToolMove.py similarity index 97% rename from AppTools/ToolMove.py rename to flatcamTools/ToolMove.py index e02fed57..18d6a6e0 100644 --- a/AppTools/ToolMove.py +++ b/flatcamTools/ToolMove.py @@ -6,13 +6,13 @@ # ########################################################## from PyQt5 import QtWidgets, QtCore -from AppTool import AppTool -from AppGUI.VisPyVisuals import * +from FlatCAMTool import FlatCAMTool +from flatcamGUI.VisPyVisuals import * from copy import copy import logging import gettext -import AppTranslation as fcTranslate +import FlatCAMTranslation as fcTranslate import builtins fcTranslate.apply_language('strings') @@ -22,13 +22,13 @@ if '_' not in builtins.__dict__: log = logging.getLogger('base') -class ToolMove(AppTool): +class ToolMove(FlatCAMTool): toolName = _("Move") replot_signal = QtCore.pyqtSignal(list) def __init__(self, app): - AppTool.__init__(self, app) + FlatCAMTool.__init__(self, app) self.app = app self.decimals = self.app.decimals @@ -50,7 +50,7 @@ class ToolMove(AppTool): if self.app.is_legacy is False: self.sel_shapes = ShapeCollection(parent=self.app.plotcanvas.view.scene, layers=1) else: - from AppGUI.PlotCanvasLegacy import ShapeCollectionLegacy + from flatcamGUI.PlotCanvasLegacy import ShapeCollectionLegacy self.sel_shapes = ShapeCollectionLegacy(obj=self, app=self.app, name="move") self.mm = None @@ -60,7 +60,7 @@ class ToolMove(AppTool): self.replot_signal[list].connect(self.replot) def install(self, icon=None, separator=None, **kwargs): - AppTool.install(self, icon, separator, shortcut='M', **kwargs) + FlatCAMTool.install(self, icon, separator, shortcut='M', **kwargs) def run(self, toggle): self.app.defaults.report_usage("ToolMove()") diff --git a/AppTools/ToolNCC.py b/flatcamTools/ToolNCC.py similarity index 90% rename from AppTools/ToolNCC.py rename to flatcamTools/ToolNCC.py index b49acaa9..0b80c735 100644 --- a/AppTools/ToolNCC.py +++ b/flatcamTools/ToolNCC.py @@ -7,12 +7,12 @@ from PyQt5 import QtWidgets, QtCore, QtGui -from AppTool import AppTool -from AppGUI.GUIElements import FCCheckBox, FCDoubleSpinner, RadioSet, FCTable, FCInputDialog, FCButton,\ +from FlatCAMTool import FlatCAMTool +from flatcamGUI.GUIElements import FCCheckBox, FCDoubleSpinner, RadioSet, FCTable, FCInputDialog, FCButton,\ FCComboBox, OptionalInputSection -from AppParsers.ParseGerber import Gerber +from flatcamParsers.ParseGerber import Gerber -from camlib import grace +from FlatCAMCommon import GracefulException as grace from copy import deepcopy @@ -27,7 +27,7 @@ from matplotlib.backend_bases import KeyEvent as mpl_key_event import logging import traceback import gettext -import AppTranslation as fcTranslate +import FlatCAMTranslation as fcTranslate import builtins fcTranslate.apply_language('strings') @@ -37,7 +37,7 @@ if '_' not in builtins.__dict__: log = logging.getLogger('base') -class NonCopperClear(AppTool, Gerber): +class NonCopperClear(FlatCAMTool, Gerber): toolName = _("Non-Copper Clearing") @@ -45,7 +45,7 @@ class NonCopperClear(AppTool, Gerber): self.app = app self.decimals = self.app.decimals - AppTool.__init__(self, app) + FlatCAMTool.__init__(self, app) Gerber.__init__(self, steps_per_circle=self.app.defaults["gerber_circle_steps"]) self.tools_frame = QtWidgets.QFrame() @@ -428,7 +428,7 @@ class NonCopperClear(AppTool, Gerber): self.ncc_method_combo = FCComboBox() self.ncc_method_combo.addItems( - [_("Standard"), _("Seed"), _("Lines"), _("Combo")] + [_("Standard"), _("Seed"), _("Lines")] ) self.ncc_method_combo.setObjectName("n_method") @@ -509,7 +509,7 @@ class NonCopperClear(AppTool, Gerber): self.grid3.addWidget(self.gen_param_label, 24, 0, 1, 2) # Rest Machining - self.ncc_rest_cb = FCCheckBox('%s' % _("Rest")) + self.ncc_rest_cb = FCCheckBox('%s' % _("Rest Machining")) self.ncc_rest_cb.setObjectName("n_rest_machining") self.ncc_rest_cb.setToolTip( @@ -936,7 +936,7 @@ class NonCopperClear(AppTool, Gerber): self.app.inform.emit('[WARNING_NOTCL] %s...' % _("Adding Tool cancelled")) def install(self, icon=None, separator=None, **kwargs): - AppTool.install(self, icon, separator, shortcut='Alt+N', **kwargs) + FlatCAMTool.install(self, icon, separator, shortcut='Alt+N', **kwargs) def run(self, toggle=True): self.app.defaults.report_usage("ToolNonCopperClear()") @@ -961,7 +961,7 @@ class NonCopperClear(AppTool, Gerber): if self.app.ui.splitter.sizes()[0] == 0: self.app.ui.splitter.setSizes([1, 1]) - AppTool.run(self) + FlatCAMTool.run(self) self.set_tool_ui() # reset those objects on a new run @@ -979,30 +979,12 @@ class NonCopperClear(AppTool, Gerber): self.tools_frame.show() - # use the current selected object and make it visible in the NCC object combobox - sel_list = self.app.collection.get_selected() - if len(sel_list) == 1: - active = self.app.collection.get_active() - kind = active.kind - if kind == 'gerber': - self.type_obj_radio.set_value('gerber') - else: - self.type_obj_radio.set_value('geometry') + self.type_obj_radio.set_value('gerber') - # run those once so the obj_type attribute is updated for the FCComboboxes - # so the last loaded object is displayed - self.on_type_obj_index_changed(val=kind) - self.on_reference_combo_changed() - - self.object_combo.set_value(active.options['name']) - else: - kind = 'gerber' - self.type_obj_radio.set_value('gerber') - - # run those once so the obj_type attribute is updated for the FCComboboxes - # so the last loaded object is displayed - self.on_type_obj_index_changed(val=kind) - self.on_reference_combo_changed() + # run those once so the obj_type attribute is updated for the FCComboboxes + # so the last loaded object is displayed + self.on_type_obj_index_changed(val="gerber") + self.on_reference_combo_changed() self.op_radio.set_value(self.app.defaults["tools_nccoperation"]) self.ncc_order_radio.set_value(self.app.defaults["tools_nccorder"]) @@ -1621,11 +1603,10 @@ class NonCopperClear(AppTool, Gerber): self.app.inform.emit('[ERROR_NOTCL] %s: %s' % (_("Object not found"), str(self.obj_name))) return - # use the selected tools in the tool table; get diameters for isolation + # use the selected tools in the tool table; get diameters for non-copper clear self.iso_dia_list = [] # use the selected tools in the tool table; get diameters for non-copper clear self.ncc_dia_list = [] - if self.tools_table.selectedItems(): for x in self.tools_table.selectedItems(): try: @@ -1639,12 +1620,10 @@ class NonCopperClear(AppTool, Gerber): "use a number.")) continue - for uid_k, uid_v in self.ncc_tools.items(): - if round(uid_v['tooldia'], self.decimals) == round(self.tooldia, self.decimals): - if uid_v['data']['tools_nccoperation'] == "iso": - self.iso_dia_list.append(self.tooldia) - else: - self.ncc_dia_list.append(self.tooldia) + if self.op_radio.get_value() == _("Isolation"): + self.iso_dia_list.append(self.tooldia) + else: + self.ncc_dia_list.append(self.tooldia) else: self.app.inform.emit('[ERROR_NOTCL] %s' % _("No selected tools in Tool Table.")) return @@ -1846,22 +1825,16 @@ class NonCopperClear(AppTool, Gerber): edge_width=self.app.defaults["global_cursor_width"], size=self.app.defaults["global_cursor_size"]) + # update the positions on status bar + self.app.ui.position_label.setText("    X: %.4f   " + "Y: %.4f" % (curr_pos[0], curr_pos[1])) if self.cursor_pos is None: self.cursor_pos = (0, 0) self.app.dx = curr_pos[0] - float(self.cursor_pos[0]) self.app.dy = curr_pos[1] - float(self.cursor_pos[1]) - - # # update the positions on status bar - self.app.ui.position_label.setText(" X: %.4f   " - "Y: %.4f " % (curr_pos[0], curr_pos[1])) - # self.app.ui.rel_position_label.setText("Dx: %.4f   Dy: " - # "%.4f    " % (self.app.dx, self.app.dy)) - - units = self.app.defaults["units"].lower() - self.app.plotcanvas.text_hud.text = \ - 'Dx:\t{:<.4f} [{:s}]\nDy:\t{:<.4f} [{:s}]\n\nX: \t{:<.4f} [{:s}]\nY: \t{:<.4f} [{:s}]'.format( - self.app.dx, units, self.app.dy, units, curr_pos[0], units, curr_pos[1], units) + self.app.ui.rel_position_label.setText("Dx: %.4f   Dy: " + "%.4f    " % (self.app.dx, self.app.dy)) # draw the utility geometry if shape_type == "square": @@ -1932,15 +1905,13 @@ class NonCopperClear(AppTool, Gerber): self.delete_moving_selection_shape() self.delete_tool_selection_shape() - def calculate_bounding_box(self, ncc_obj, ncc_select, box_obj=None): + def envelope_object(self, ncc_obj, ncc_select, box_obj=None): """ - Will return a geometry that dictate the total extent of the area to be copper cleared - :param ncc_obj: The object to be copper cleared - :param box_obj: The object whose geometry will be used as delimitation for copper clearing - if selected - :param ncc_select: String that choose what kind of reference to be used for copper clearing extent - :return: The geometry that surrounds the area to be cleared and the kind of object from which the - geometry originated (string: "gerber", "geometry" or None) + :param ncc_obj: + :param box_obj: + :param ncc_select: + :return: """ box_kind = box_obj.kind if box_obj is not None else None @@ -1958,7 +1929,7 @@ class NonCopperClear(AppTool, Gerber): env_obj = cascaded_union(geo_n) env_obj = env_obj.convex_hull except Exception as e: - log.debug("NonCopperClear.calculate_bounding_box() 'itself' --> %s" % str(e)) + log.debug("NonCopperClear.envelope_object() 'itself' --> %s" % str(e)) self.app.inform.emit('[ERROR_NOTCL] %s' % _("No object available.")) return None elif ncc_select == _("Area Selection"): @@ -1989,12 +1960,12 @@ class NonCopperClear(AppTool, Gerber): return env_obj, box_kind - def apply_margin_to_bounding_box(self, bbox, box_kind, ncc_select, ncc_margin): + def envelope_object_to_tool_bounding_box(self, env_obj, box_kind, ncc_select, ncc_margin): """ Prepare non-copper polygons. - Apply a margin to the bounding box area from which the copper features will be subtracted + Create the bounding box area from which the copper features will be subtracted - :param bbox: the Geometry to be used as bounding box after applying the ncc_margin + :param env_obj: the Geometry to be used as bounding box after applying the ncc_margin :param box_kind: "geometry" or "gerber" :param ncc_select: the kind of area to be copper cleared :param ncc_margin: the margin around the area to be copper cleared @@ -2004,44 +1975,44 @@ class NonCopperClear(AppTool, Gerber): log.debug("NCC Tool. Preparing non-copper polygons.") self.app.inform.emit(_("NCC Tool. Preparing non-copper polygons.")) - if bbox is None: - log.debug("NonCopperClear.apply_margin_to_bounding_box() --> The object is None") + if env_obj is None: + log.debug("NonCopperClear.envelope_object_to_tool_bounding_box() --> The object is None") return 'fail' - new_bounding_box = None + bounding_box = None if ncc_select == _('Itself'): try: - new_bounding_box = bbox.buffer(distance=ncc_margin, join_style=base.JOIN_STYLE.mitre) + bounding_box = env_obj.buffer(distance=ncc_margin, join_style=base.JOIN_STYLE.mitre) except Exception as e: - log.debug("NonCopperClear.apply_margin_to_bounding_box() 'itself' --> %s" % str(e)) + log.debug("NonCopperClear.envelope_object_to_tool_bounding_box() 'itself' --> %s" % str(e)) self.app.inform.emit('[ERROR_NOTCL] %s' % _("No object available.")) return 'fail' elif ncc_select == _("Area Selection"): geo_buff_list = [] - for poly in bbox: + for poly in env_obj: if self.app.abort_flag: # graceful abort requested by the user raise grace geo_buff_list.append(poly.buffer(distance=ncc_margin, join_style=base.JOIN_STYLE.mitre)) - new_bounding_box = cascaded_union(geo_buff_list) + bounding_box = cascaded_union(geo_buff_list) elif ncc_select == _("Reference Object"): if box_kind == 'geometry': geo_buff_list = [] - for poly in bbox: + for poly in env_obj: if self.app.abort_flag: # graceful abort requested by the user raise grace geo_buff_list.append(poly.buffer(distance=ncc_margin, join_style=base.JOIN_STYLE.mitre)) - new_bounding_box = cascaded_union(geo_buff_list) + bounding_box = cascaded_union(geo_buff_list) elif box_kind == 'gerber': - new_bounding_box = bbox.buffer(distance=ncc_margin, join_style=base.JOIN_STYLE.mitre) + bounding_box = env_obj.buffer(distance=ncc_margin, join_style=base.JOIN_STYLE.mitre) else: self.app.inform.emit('[ERROR_NOTCL] %s' % _("The reference object type is not supported.")) return 'fail' log.debug("NCC Tool. Finished non-copper polygons.") - return new_bounding_box + return bounding_box def get_tool_empty_area(self, name, ncc_obj, geo_obj, isotooldia, has_offset, ncc_offset, ncc_margin, bounding_box, tools_storage): @@ -2113,77 +2084,75 @@ class NonCopperClear(AppTool, Gerber): isolated_geo = self.generate_envelope(tool_iso / 2, 0) if isolated_geo == 'fail': - self.app.inform.emit('[ERROR_NOTCL] %s %s' % - (_("Isolation geometry could not be generated."), str(tool_iso))) - continue + self.app.inform.emit('[ERROR_NOTCL] %s' % _("Isolation geometry could not be generated.")) + else: + if ncc_margin < tool_iso: + self.app.inform.emit('[WARNING_NOTCL] %s' % _("Isolation geometry is broken. Margin is less " + "than isolation tool diameter.")) + try: + for geo_elem in isolated_geo: + # provide the app with a way to process the GUI events when in a blocking loop + QtWidgets.QApplication.processEvents() - if ncc_margin < tool_iso: - self.app.inform.emit('[WARNING_NOTCL] %s' % _("Isolation geometry is broken. Margin is less " - "than isolation tool diameter.")) - try: - for geo_elem in isolated_geo: - # provide the app with a way to process the GUI events when in a blocking loop - QtWidgets.QApplication.processEvents() + if self.app.abort_flag: + # graceful abort requested by the user + raise grace - if self.app.abort_flag: - # graceful abort requested by the user - raise grace - - if isinstance(geo_elem, Polygon): - for ring in self.poly2rings(geo_elem): - new_geo = ring.intersection(bounding_box) - if new_geo and not new_geo.is_empty: - new_geometry.append(new_geo) - elif isinstance(geo_elem, MultiPolygon): - for poly in geo_elem: - for ring in self.poly2rings(poly): + if isinstance(geo_elem, Polygon): + for ring in self.poly2rings(geo_elem): new_geo = ring.intersection(bounding_box) if new_geo and not new_geo.is_empty: new_geometry.append(new_geo) - elif isinstance(geo_elem, LineString): - new_geo = geo_elem.intersection(bounding_box) - if new_geo: - if not new_geo.is_empty: - new_geometry.append(new_geo) - elif isinstance(geo_elem, MultiLineString): - for line_elem in geo_elem: + elif isinstance(geo_elem, MultiPolygon): + for poly in geo_elem: + for ring in self.poly2rings(poly): + new_geo = ring.intersection(bounding_box) + if new_geo and not new_geo.is_empty: + new_geometry.append(new_geo) + elif isinstance(geo_elem, LineString): + new_geo = geo_elem.intersection(bounding_box) + if new_geo: + if not new_geo.is_empty: + new_geometry.append(new_geo) + elif isinstance(geo_elem, MultiLineString): + for line_elem in geo_elem: + new_geo = line_elem.intersection(bounding_box) + if new_geo and not new_geo.is_empty: + new_geometry.append(new_geo) + except TypeError: + if isinstance(isolated_geo, Polygon): + for ring in self.poly2rings(isolated_geo): + new_geo = ring.intersection(bounding_box) + if new_geo: + if not new_geo.is_empty: + new_geometry.append(new_geo) + elif isinstance(isolated_geo, LineString): + new_geo = isolated_geo.intersection(bounding_box) + if new_geo and not new_geo.is_empty: + new_geometry.append(new_geo) + elif isinstance(isolated_geo, MultiLineString): + for line_elem in isolated_geo: new_geo = line_elem.intersection(bounding_box) if new_geo and not new_geo.is_empty: new_geometry.append(new_geo) - except TypeError: - if isinstance(isolated_geo, Polygon): - for ring in self.poly2rings(isolated_geo): - new_geo = ring.intersection(bounding_box) - if new_geo: - if not new_geo.is_empty: - new_geometry.append(new_geo) - elif isinstance(isolated_geo, LineString): - new_geo = isolated_geo.intersection(bounding_box) - if new_geo and not new_geo.is_empty: - new_geometry.append(new_geo) - elif isinstance(isolated_geo, MultiLineString): - for line_elem in isolated_geo: - new_geo = line_elem.intersection(bounding_box) - if new_geo and not new_geo.is_empty: - new_geometry.append(new_geo) - # a MultiLineString geometry element will show that the isolation is broken for this tool - for geo_e in new_geometry: - if type(geo_e) == MultiLineString: - warning_flag += 1 - break + # a MultiLineString geometry element will show that the isolation is broken for this tool + for geo_e in new_geometry: + if type(geo_e) == MultiLineString: + warning_flag += 1 + break - current_uid = 0 - for k, v in tools_storage.items(): - if float('%.*f' % (self.decimals, v['tooldia'])) == float('%.*f' % (self.decimals, - tool_iso)): - current_uid = int(k) - # add the solid_geometry to the current too in self.paint_tools dictionary - # and then reset the temporary list that stored that solid_geometry - v['solid_geometry'] = deepcopy(new_geometry) - v['data']['name'] = name - break - geo_obj.tools[current_uid] = dict(tools_storage[current_uid]) + current_uid = 0 + for k, v in tools_storage.items(): + if float('%.*f' % (self.decimals, v['tooldia'])) == float('%.*f' % (self.decimals, + tool_iso)): + current_uid = int(k) + # add the solid_geometry to the current too in self.paint_tools dictionary + # and then reset the temporary list that stored that solid_geometry + v['solid_geometry'] = deepcopy(new_geometry) + v['data']['name'] = name + break + geo_obj.tools[current_uid] = dict(tools_storage[current_uid]) sol_geo = cascaded_union(isolated_geo) if has_offset is True: @@ -2225,83 +2194,14 @@ class NonCopperClear(AppTool, Gerber): return empty, warning_flag - def clear_polygon_worker(self, pol, tooldia, ncc_method, ncc_overlap, ncc_connect, ncc_contour, prog_plot): - - cp = None - - if ncc_method == _("Standard"): - try: - cp = self.clear_polygon(pol, tooldia, - steps_per_circle=self.grb_circle_steps, - overlap=ncc_overlap, contour=ncc_contour, - connect=ncc_connect, - prog_plot=prog_plot) - except grace: - return "fail" - except Exception as ee: - log.debug("NonCopperClear.clear_polygon_worker() Standard --> %s" % str(ee)) - elif ncc_method == _("Seed"): - try: - cp = self.clear_polygon2(pol, tooldia, - steps_per_circle=self.grb_circle_steps, - overlap=ncc_overlap, contour=ncc_contour, - connect=ncc_connect, - prog_plot=prog_plot) - except grace: - return "fail" - except Exception as ee: - log.debug("NonCopperClear.clear_polygon_worker() Seed --> %s" % str(ee)) - elif ncc_method == _("Lines"): - try: - cp = self.clear_polygon3(pol, tooldia, - steps_per_circle=self.grb_circle_steps, - overlap=ncc_overlap, contour=ncc_contour, - connect=ncc_connect, - prog_plot=prog_plot) - except grace: - return "fail" - except Exception as ee: - log.debug("NonCopperClear.clear_polygon_worker() Lines --> %s" % str(ee)) - elif ncc_method == _("Combo"): - try: - self.app.inform.emit(_("Clearing the polygon with the method: lines.")) - cp = self.clear_polygon3(pol, tooldia, - steps_per_circle=self.grb_circle_steps, - overlap=ncc_overlap, contour=ncc_contour, - connect=ncc_connect, - prog_plot=prog_plot) - - if cp and cp.objects: - pass - else: - self.app.inform.emit(_("Failed. Clearing the polygon with the method: seed.")) - cp = self.clear_polygon2(pol, tooldia, - steps_per_circle=self.grb_circle_steps, - overlap=ncc_overlap, contour=ncc_contour, - connect=ncc_connect, - prog_plot=prog_plot) - if cp and cp.objects: - pass - else: - self.app.inform.emit(_("Failed. Clearing the polygon with the method: standard.")) - cp = self.clear_polygon(pol, tooldia, - steps_per_circle=self.grb_circle_steps, - overlap=ncc_overlap, contour=ncc_contour, - connect=ncc_connect, - prog_plot=prog_plot) - except grace: - return "fail" - except Exception as ee: - log.debug("NonCopperClear.clear_polygon_worker() Combo --> %s" % str(ee)) - - if cp and cp.objects: - return list(cp.get_objects()) - else: - self.app.inform.emit('[ERROR_NOTCL] %s' % _('Geometry could not be cleared completely')) - return None - - def clear_copper(self, ncc_obj, sel_obj=None, ncctooldia=None, isotooldia=None, outname=None, order=None, - tools_storage=None, run_threaded=True): + def clear_copper(self, ncc_obj, + sel_obj=None, + ncctooldia=None, + isotooldia=None, + outname=None, + order=None, + tools_storage=None, + run_threaded=True): """ Clear the excess copper from the entire object. @@ -2315,8 +2215,8 @@ class NonCopperClear(AppTool, Gerber): Usage of the different one is related to when this function is called from a TcL command. - :param run_threaded: If True the method will be run in a threaded way suitable for GUI usage; if False - it will run non-threaded for TclShell usage + :param run_threaded: If True the method will be run in a threaded way suitable for GUI usage; if False it will + run non-threaded for TclShell usage :return: """ log.debug("Executing the handler ...") @@ -2327,9 +2227,9 @@ class NonCopperClear(AppTool, Gerber): self.app.proc_container.view.set_busy(_("Non-Copper clearing ...")) QtWidgets.QApplication.processEvents() - # ###################################################################################################### - # ######################### Read the parameters ######################################################## - # ###################################################################################################### + # ##################################################################### + # ####### Read the parameters ######################################### + # ##################################################################### units = self.app.defaults['units'] order = order if order else self.ncc_order_radio.get_value() @@ -2343,25 +2243,22 @@ class NonCopperClear(AppTool, Gerber): # ###################################################################################################### # # Read the tooldia parameter and create a sorted list out them - they may be more than one diameter ## # ###################################################################################################### - sorted_clear_tools = [] + sorted_tools = [] if ncctooldia is not None: try: - sorted_clear_tools = [float(eval(dia)) for dia in ncctooldia.split(",") if dia != ''] + sorted_tools = [float(eval(dia)) for dia in ncctooldia.split(",") if dia != ''] except AttributeError: if not isinstance(ncctooldia, list): - sorted_clear_tools = [float(ncctooldia)] + sorted_tools = [float(ncctooldia)] else: - sorted_clear_tools = ncctooldia + sorted_tools = ncctooldia else: # for row in range(self.tools_table.rowCount()): # if self.tools_table.cellWidget(row, 1).currentText() == 'clear_op': - # sorted_clear_tools.append(float(self.tools_table.item(row, 1).text())) + # sorted_tools.append(float(self.tools_table.item(row, 1).text())) for tooluid in self.ncc_tools: if self.ncc_tools[tooluid]['data']['tools_nccoperation'] == 'clear': - sorted_clear_tools.append(self.ncc_tools[tooluid]['tooldia']) - - if not sorted_clear_tools: - return 'fail' + sorted_tools.append(self.ncc_tools[tooluid]['tooldia']) # ######################################################################################################## # set the name for the future Geometry object @@ -2369,75 +2266,76 @@ class NonCopperClear(AppTool, Gerber): # ######################################################################################################## name = outname if outname is not None else self.obj_name + "_ncc" - # ######################################################################################################## - # ######### #####Initializes the new geometry object ##################################################### - # ######################################################################################################## + # ########################################################################################## + # Initializes the new geometry object ###################################################### + # ########################################################################################## def gen_clear_area(geo_obj, app_obj): - log.debug("NCC Tool. Normal copper clearing task started.") - self.app.inform.emit(_("NCC Tool. Finished non-copper polygons. Normal copper clearing task started.")) + assert geo_obj.kind == 'geometry', \ + "Initializer expected a GeometryObject, got %s" % type(geo_obj) # provide the app with a way to process the GUI events when in a blocking loop if not run_threaded: QtWidgets.QApplication.processEvents() + log.debug("NCC Tool. Normal copper clearing task started.") + self.app.inform.emit(_("NCC Tool. Finished non-copper polygons. Normal copper clearing task started.")) + # a flag to signal that the isolation is broken by the bounding box in 'area' and 'box' cases # will store the number of tools for which the isolation is broken warning_flag = 0 - tool = None - if order == 'fwd': - sorted_clear_tools.sort(reverse=False) + sorted_tools.sort(reverse=False) elif order == 'rev': - sorted_clear_tools.sort(reverse=True) + sorted_tools.sort(reverse=True) else: pass cleared_geo = [] - cleared = MultiPolygon() # Already cleared area - app_obj.poly_not_cleared = False # flag for polygons not cleared + # Already cleared area + cleared = MultiPolygon() + + # flag for polygons not cleared + app_obj.poly_not_cleared = False # Generate area for each tool - offset = sum(sorted_clear_tools) + offset = sum(sorted_tools) current_uid = int(1) - # try: - # tool = eval(self.app.defaults["tools_ncctools"])[0] - # except TypeError: - # tool = eval(self.app.defaults["tools_ncctools"]) + try: + tool = eval(self.app.defaults["tools_ncctools"])[0] + except TypeError: + tool = eval(self.app.defaults["tools_ncctools"]) if ncc_select == _("Reference Object"): - bbox_geo, bbox_kind = self.calculate_bounding_box( - ncc_obj=ncc_obj, box_obj=sel_obj, ncc_select=ncc_select) + env_obj, box_obj_kind = self.envelope_object(ncc_obj=ncc_obj, box_obj=sel_obj, ncc_select=ncc_select) else: - bbox_geo, bbox_kind = self.calculate_bounding_box(ncc_obj=ncc_obj, ncc_select=ncc_select) + env_obj, box_obj_kind = self.envelope_object(ncc_obj=ncc_obj, ncc_select=ncc_select) - if bbox_geo is None and bbox_kind is None: + if env_obj is None and box_obj_kind is None: self.app.inform.emit("[ERROR_NOTCL] %s" % _("NCC Tool failed creating bounding box.")) return "fail" - # COPPER CLEARING with tools marked for CLEAR# - for tool in sorted_clear_tools: + # COPPER CLEARING # + for tool in sorted_tools: log.debug("Starting geometry processing for tool: %s" % str(tool)) if self.app.abort_flag: # graceful abort requested by the user raise grace # provide the app with a way to process the GUI events when in a blocking loop - if not run_threaded: - QtWidgets.QApplication.processEvents() + QtWidgets.QApplication.processEvents() app_obj.inform.emit('[success] %s = %s%s %s' % ( _('NCC Tool clearing with tool diameter'), str(tool), units.lower(), _('started.')) ) app_obj.proc_container.update_view_text(' %d%%' % 0) - tool_uid = 0 # find the current tool_uid + tool_uid = 0 for k, v in self.ncc_tools.items(): if float('%.*f' % (self.decimals, v['tooldia'])) == float('%.*f' % (self.decimals, tool)): tool_uid = int(k) break - # parameters that are particular to the current tool ncc_overlap = float(self.ncc_tools[tool_uid]["data"]["tools_nccoverlap"]) / 100.0 ncc_margin = float(self.ncc_tools[tool_uid]["data"]["tools_nccmargin"]) ncc_method = self.ncc_tools[tool_uid]["data"]["tools_nccmethod"] @@ -2446,18 +2344,21 @@ class NonCopperClear(AppTool, Gerber): has_offset = self.ncc_tools[tool_uid]["data"]["tools_ncc_offset_choice"] ncc_offset = float(self.ncc_tools[tool_uid]["data"]["tools_ncc_offset_value"]) + cleared_geo[:] = [] + # Get remaining tools offset offset -= (tool - 1e-12) # Bounding box for current tool - bbox = self.apply_margin_to_bounding_box(bbox=bbox_geo, box_kind=bbox_kind, - ncc_select=ncc_select, ncc_margin=ncc_margin) + bbox = self.envelope_object_to_tool_bounding_box(env_obj=env_obj, box_kind=box_obj_kind, + ncc_select=ncc_select, ncc_margin=ncc_margin) # Area to clear empty, warning_flag = self.get_tool_empty_area(name=name, ncc_obj=ncc_obj, geo_obj=geo_obj, - isotooldia=isotooldia, ncc_margin=ncc_margin, + isotooldia=isotooldia, has_offset=has_offset, ncc_offset=ncc_offset, - tools_storage=tools_storage, bounding_box=bbox) + ncc_margin=ncc_margin, tools_storage=tools_storage, + bounding_box=bbox) area = empty.buffer(-offset) try: @@ -2466,7 +2367,7 @@ class NonCopperClear(AppTool, Gerber): continue # Transform area to MultiPolygon - if isinstance(area, Polygon): + if type(area) is Polygon: area = MultiPolygon([area]) # variables to display the percentage of work done @@ -2475,14 +2376,12 @@ class NonCopperClear(AppTool, Gerber): old_disp_number = 0 log.warning("Total number of polygons to be cleared. %s" % str(geo_len)) - cleared_geo[:] = [] if area.geoms: if len(area.geoms) > 0: pol_nr = 0 for p in area.geoms: # provide the app with a way to process the GUI events when in a blocking loop - if not run_threaded: - QtWidgets.QApplication.processEvents() + QtWidgets.QApplication.processEvents() if self.app.abort_flag: # graceful abort requested by the user @@ -2492,40 +2391,72 @@ class NonCopperClear(AppTool, Gerber): p = p.buffer(0) if p is not None and p.is_valid: - poly_failed = 0 + poly_processed = [] try: for pol in p: if pol is not None and isinstance(pol, Polygon): - res = self.clear_polygon_worker(pol=pol, tooldia=tool, - ncc_method=ncc_method, - ncc_overlap=ncc_overlap, - ncc_connect=ncc_connect, - ncc_contour=ncc_contour, - prog_plot=prog_plot) - if res is not None: - cleared_geo += res + if ncc_method == _("Standard"): + cp = self.clear_polygon(pol, tool, + self.grb_circle_steps, + overlap=ncc_overlap, contour=ncc_contour, + connect=ncc_connect, + prog_plot=prog_plot) + elif ncc_method == _("Seed"): + cp = self.clear_polygon2(pol, tool, + self.grb_circle_steps, + overlap=ncc_overlap, contour=ncc_contour, + connect=ncc_connect, + prog_plot=prog_plot) else: - poly_failed += 1 + cp = self.clear_polygon3(pol, tool, + self.grb_circle_steps, + overlap=ncc_overlap, contour=ncc_contour, + connect=ncc_connect, + prog_plot=prog_plot) + if cp: + cleared_geo += list(cp.get_objects()) + poly_processed.append(True) + else: + poly_processed.append(False) + log.warning("Polygon in MultiPolygon can not be cleared.") else: - log.warning("Expected geo is a Polygon. Instead got a %s" % str(type(pol))) + log.warning("Geo in Iterable can not be cleared because it is not Polygon. " + "It is: %s" % str(type(pol))) except TypeError: if isinstance(p, Polygon): - res = self.clear_polygon_worker(pol=p, tooldia=tool, - ncc_method=ncc_method, - ncc_overlap=ncc_overlap, - ncc_connect=ncc_connect, - ncc_contour=ncc_contour, - prog_plot=prog_plot) - if res is not None: - cleared_geo += res + if ncc_method == _("Standard"): + cp = self.clear_polygon(p, tool, self.grb_circle_steps, + overlap=ncc_overlap, contour=ncc_contour, + connect=ncc_connect, + prog_plot=prog_plot) + elif ncc_method == _("Seed"): + cp = self.clear_polygon2(p, tool, self.grb_circle_steps, + overlap=ncc_overlap, contour=ncc_contour, + connect=ncc_connect, + prog_plot=prog_plot) else: - poly_failed += 1 + cp = self.clear_polygon3(p, tool, self.grb_circle_steps, + overlap=ncc_overlap, contour=ncc_contour, + connect=ncc_connect, + prog_plot=prog_plot) + if cp: + cleared_geo += list(cp.get_objects()) + poly_processed.append(True) + else: + poly_processed.append(False) + log.warning("Polygon can not be cleared.") else: - log.warning("Expected geo is a Polygon. Instead got a %s" % str(type(p))) + log.warning("Geo can not be cleared because it is: %s" % str(type(p))) - if poly_failed > 0: + p_cleared = poly_processed.count(True) + p_not_cleared = poly_processed.count(False) + + if p_not_cleared: app_obj.poly_not_cleared = True + if p_cleared == 0: + continue + pol_nr += 1 disp_number = int(np.interp(pol_nr, [0, geo_len], [0, 100])) # log.debug("Polygons cleared: %d" % pol_nr) @@ -2535,10 +2466,11 @@ class NonCopperClear(AppTool, Gerber): old_disp_number = disp_number # log.debug("Polygons cleared: %d. Percentage done: %d%%" % (pol_nr, disp_number)) - # check if there is a geometry at all in the cleared geometry + # check if there is a geometry at all in the cleared geometry if cleared_geo: - cleared = empty.buffer(-offset * (1 + ncc_overlap)) # Overall cleared area - cleared = cleared.buffer(-tool / 1.999999).buffer(tool / 1.999999) + # Overall cleared area + cleared = empty.buffer(-offset * (1 + ncc_overlap)).buffer(-tool / 1.999999).buffer( + tool / 1.999999) # clean-up cleared geo cleared = cleared.buffer(0) @@ -2558,6 +2490,7 @@ class NonCopperClear(AppTool, Gerber): geo_obj.tools[current_uid] = dict(tools_storage[current_uid]) else: log.debug("There are no geometries in the cleared polygon.") + # clean the progressive plotted shapes if it was used if self.app.defaults["tools_ncc_plotting"] == 'progressive': self.temp_shapes.clear(update=True) @@ -2639,7 +2572,7 @@ class NonCopperClear(AppTool, Gerber): # will store the number of tools for which the isolation is broken warning_flag = 0 - sorted_clear_tools.sort(reverse=True) + sorted_tools.sort(reverse=True) cleared_geo = [] cleared_by_last_tool = [] @@ -2654,10 +2587,9 @@ class NonCopperClear(AppTool, Gerber): app_obj.poly_not_cleared = True if ncc_select == _("Reference Object"): - env_obj, box_obj_kind = self.calculate_bounding_box( - ncc_obj=ncc_obj, box_obj=sel_obj, ncc_select=ncc_select) + env_obj, box_obj_kind = self.envelope_object(ncc_obj=ncc_obj, box_obj=sel_obj, ncc_select=ncc_select) else: - env_obj, box_obj_kind = self.calculate_bounding_box(ncc_obj=ncc_obj, ncc_select=ncc_select) + env_obj, box_obj_kind = self.envelope_object(ncc_obj=ncc_obj, ncc_select=ncc_select) if env_obj is None and box_obj_kind is None: self.app.inform.emit("[ERROR_NOTCL] %s" % _("NCC Tool failed creating bounding box.")) @@ -2667,7 +2599,7 @@ class NonCopperClear(AppTool, Gerber): app_obj.inform.emit("NCC Tool. Calculate 'empty' area.") # Generate area for each tool - while sorted_clear_tools: + while sorted_tools: log.debug("Starting geometry processing for tool: %s" % str(tool)) if self.app.abort_flag: # graceful abort requested by the user @@ -2681,7 +2613,7 @@ class NonCopperClear(AppTool, Gerber): ) app_obj.proc_container.update_view_text(' %d%%' % 0) - tool = sorted_clear_tools.pop(0) + tool = sorted_tools.pop(0) tool_uid = 0 for k, v in self.ncc_tools.items(): @@ -2701,8 +2633,8 @@ class NonCopperClear(AppTool, Gerber): cleared_geo[:] = [] # Bounding box for current tool - bbox = self.apply_margin_to_bounding_box(bbox=env_obj, box_kind=box_obj_kind, - ncc_select=ncc_select, ncc_margin=ncc_margin) + bbox = self.envelope_object_to_tool_bounding_box(env_obj=env_obj, box_kind=box_obj_kind, + ncc_select=ncc_select, ncc_margin=ncc_margin) # Area to clear empty, warning_flag = self.get_tool_empty_area(name=name, ncc_obj=ncc_obj, geo_obj=geo_obj, @@ -2906,12 +2838,12 @@ class NonCopperClear(AppTool, Gerber): # ########################################################################################### # Create the Job function and send it to the worker to be processed in another thread ####### # ########################################################################################### - def job_thread(a_obj): + def job_thread(app_obj): try: if rest_machining_choice is True: - a_obj.app_obj.new_object("geometry", name, gen_clear_area_rest) + app_obj.new_object("geometry", name, gen_clear_area_rest) else: - a_obj.app_obj.new_object("geometry", name, gen_clear_area) + app_obj.new_object("geometry", name, gen_clear_area) except grace: if run_threaded: proc.done() @@ -2925,7 +2857,7 @@ class NonCopperClear(AppTool, Gerber): if run_threaded: proc.done() else: - a_obj.proc_container.view.set_idle() + app_obj.proc_container.view.set_idle() # focus on Selected Tab self.app.ui.notebook.setCurrentWidget(self.app.ui.selected_tab) @@ -2939,34 +2871,48 @@ class NonCopperClear(AppTool, Gerber): else: job_thread(app_obj=self.app) - def clear_copper_tcl(self, ncc_obj, sel_obj=None, ncctooldia=None, isotooldia=None, margin=None, has_offset=None, - offset=None, select_method=None, outname=None, overlap=None, connect=None, contour=None, - order=None, method=None, rest=None, tools_storage=None, plot=True, run_threaded=False): + def clear_copper_tcl(self, ncc_obj, + sel_obj=None, + ncctooldia=None, + isotooldia=None, + margin=None, + has_offset=None, + offset=None, + select_method=None, + outname=None, + overlap=None, + connect=None, + contour=None, + order=None, + method=None, + rest=None, + tools_storage=None, + plot=True, + run_threaded=False): """ Clear the excess copper from the entire object. To be used only in a TCL command. - :param ncc_obj: ncc cleared object + :param ncc_obj: ncc cleared object :param sel_obj: - :param ncctooldia: a tuple or single element made out of diameters of the tools to be used to ncc clear - :param isotooldia: a tuple or single element made out of diameters of the tools to be used for isolation - :param overlap: value by which the paths will overlap - :param order: if the tools are ordered and how - :param select_method: if to do ncc on the whole object, on an defined area or on an area defined by - another object - :param has_offset: True if an offset is needed - :param offset: distance from the copper features where the copper clearing is stopping - :param margin: a border around cleared area - :param outname: name of the resulting object - :param connect: Connect lines to avoid tool lifts. - :param contour: Clear around the edges. - :param method: choice out of 'seed', 'normal', 'lines' - :param rest: True if to use rest-machining - :param tools_storage: whether to use the current tools_storage self.ncc_tools or a different one. - Usage of the different one is related to when this function is called from a - TcL command. - :param plot: if True after the job is finished the result will be plotted, else it will not. - :param run_threaded: If True the method will be run in a threaded way suitable for GUI usage; - if False it will run non-threaded for TclShell usage + :param ncctooldia: a tuple or single element made out of diameters of the tools to be used to ncc clear + :param isotooldia: a tuple or single element made out of diameters of the tools to be used for isolation + :param overlap: value by which the paths will overlap + :param order: if the tools are ordered and how + :param select_method: if to do ncc on the whole object, on an defined area or on an area defined by + another object + :param has_offset: True if an offset is needed + :param offset: distance from the copper features where the copper clearing is stopping + :param margin: a border around cleared area + :param outname: name of the resulting object + :param connect: Connect lines to avoid tool lifts. + :param contour: Paint around the edges. + :param method: choice out of 'seed', 'normal', 'lines' + :param rest: True if to use rest-machining + :param tools_storage: whether to use the current tools_storage self.ncc_tools or a different one. + Usage of the different one is related to when this function is called from a TcL command. + :param plot: if True after the job is finished the result will be plotted, else it will not. + :param run_threaded: If True the method will be run in a threaded way suitable for GUI usage; if False it will + run non-threaded for TclShell usage :return: """ if run_threaded: @@ -3014,9 +2960,6 @@ class NonCopperClear(AppTool, Gerber): else: sorted_tools = ncctooldia - if not sorted_tools: - return 'fail' - # ############################################################################################################## # Prepare non-copper polygons. Create the bounding box area from which the copper features will be subtracted ## # ############################################################################################################## @@ -3895,9 +3838,9 @@ class NonCopperClear(AppTool, Gerber): def job_thread(app_obj): try: if rest_machining_choice is True: - app_obj.app_obj.new_object("geometry", name, gen_clear_area_rest, plot=plot) + app_obj.new_object("geometry", name, gen_clear_area_rest, plot=plot) else: - app_obj.app_obj.new_object("geometry", name, gen_clear_area, plot=plot) + app_obj.new_object("geometry", name, gen_clear_area, plot=plot) except grace: if run_threaded: proc.done() diff --git a/AppTools/ToolOptimal.py b/flatcamTools/ToolOptimal.py similarity index 97% rename from AppTools/ToolOptimal.py rename to flatcamTools/ToolOptimal.py index 234ec2e7..de46045e 100644 --- a/AppTools/ToolOptimal.py +++ b/flatcamTools/ToolOptimal.py @@ -7,9 +7,9 @@ from PyQt5 import QtWidgets, QtCore, QtGui -from AppTool import AppTool -from AppGUI.GUIElements import OptionalHideInputSection, FCTextArea, FCEntry, FCSpinner, FCCheckBox, FCComboBox -from camlib import grace +from FlatCAMTool import FlatCAMTool +from flatcamGUI.GUIElements import OptionalHideInputSection, FCTextArea, FCEntry, FCSpinner, FCCheckBox, FCComboBox +from FlatCAMCommon import GracefulException as grace from shapely.geometry import MultiPolygon from shapely.ops import nearest_points @@ -18,7 +18,7 @@ import numpy as np import logging import gettext -import AppTranslation as fcTranslate +import FlatCAMTranslation as fcTranslate import builtins fcTranslate.apply_language('strings') @@ -28,7 +28,7 @@ if '_' not in builtins.__dict__: log = logging.getLogger('base') -class ToolOptimal(AppTool): +class ToolOptimal(FlatCAMTool): toolName = _("Optimal Tool") @@ -36,7 +36,7 @@ class ToolOptimal(AppTool): update_sec_distances = QtCore.pyqtSignal(dict) def __init__(self, app): - AppTool.__init__(self, app) + FlatCAMTool.__init__(self, app) self.units = self.app.defaults['units'].upper() self.decimals = self.app.decimals @@ -72,13 +72,7 @@ class ToolOptimal(AppTool): self.gerber_object_label.setToolTip( "Gerber object for which to find the minimum distance between copper features." ) - form_lay.addRow(self.gerber_object_label) - form_lay.addRow(self.gerber_object_combo) - - separator_line = QtWidgets.QFrame() - separator_line.setFrameShape(QtWidgets.QFrame.HLine) - separator_line.setFrameShadow(QtWidgets.QFrame.Sunken) - form_lay.addRow(separator_line) + form_lay.addRow(self.gerber_object_label, self.gerber_object_combo) # Precision = nr of decimals self.precision_label = QtWidgets.QLabel('%s:' % _("Precision")) @@ -283,7 +277,7 @@ class ToolOptimal(AppTool): self.reset_button.clicked.connect(self.set_tool_ui) def install(self, icon=None, separator=None, **kwargs): - AppTool.install(self, icon, separator, shortcut='Alt+O', **kwargs) + FlatCAMTool.install(self, icon, separator, shortcut='Alt+O', **kwargs) def run(self, toggle=True): self.app.defaults.report_usage("ToolOptimal()") @@ -307,7 +301,7 @@ class ToolOptimal(AppTool): if self.app.ui.splitter.sizes()[0] == 0: self.app.ui.splitter.setSizes([1, 1]) - AppTool.run(self) + FlatCAMTool.run(self) self.set_tool_ui() self.app.ui.notebook.setTabText(2, _("Optimal Tool")) diff --git a/AppParsers/ParsePDF.py b/flatcamTools/ToolPDF.py similarity index 77% rename from AppParsers/ParsePDF.py rename to flatcamTools/ToolPDF.py index 3022e519..a21e0f7a 100644 --- a/AppParsers/ParsePDF.py +++ b/flatcamTools/ToolPDF.py @@ -5,27 +5,50 @@ # MIT Licence # # ########################################################## -from PyQt5 import QtCore +from PyQt5 import QtWidgets, QtCore -from Common import GracefulException as grace +from FlatCAMTool import FlatCAMTool +from FlatCAMCommon import GracefulException as grace -from shapely.geometry import Polygon, LineString, MultiPolygon +from shapely.geometry import Point, Polygon, LineString, MultiPolygon +from shapely.ops import unary_union from copy import copy, deepcopy import numpy as np + +import zlib import re +import time import logging +import traceback + +import gettext +import FlatCAMTranslation as fcTranslate +import builtins + +fcTranslate.apply_language('strings') +if '_' not in builtins.__dict__: + _ = gettext.gettext log = logging.getLogger('base') -class PdfParser(QtCore.QObject): +class ToolPDF(FlatCAMTool): + """ + Parse a PDF file. + Reference here: https://www.adobe.com/content/dam/acom/en/devnet/pdf/pdfs/pdf_reference_archives/PDFReference.pdf + Return a list of geometries + """ + toolName = _("PDF Import Tool") def __init__(self, app): - super().__init__() + FlatCAMTool.__init__(self, app) self.app = app + self.decimals = self.app.decimals self.step_per_circles = self.app.defaults["gerber_circle_steps"] + self.stream_re = re.compile(b'.*?FlateDecode.*?stream(.*?)endstream', re.S) + # detect stroke color change; it means a new object to be created self.stroke_color_re = re.compile(r'^\s*(\d+\.?\d*) (\d+\.?\d*) (\d+\.?\d*)\s*RG$') @@ -87,12 +110,75 @@ class PdfParser(QtCore.QObject): # (each sublist has 2 lists each having 2 elements: first is offset like: # offset_geo = [off_x, off_y], second element is scale list with 2 elements, like: scale_geo = [sc_x, sc_yy]) self.gs['transform'] = [] - self.gs['line_width'] = [] # each element is a float + self.gs['line_width'] = [] # each element is a float + + self.pdf_decompressed = {} + + # key = file name and extension + # value is a dict to store the parsed content of the PDF + self.pdf_parsed = {} + + # QTimer for periodic check + self.check_thread = QtCore.QTimer() + + # Every time a parser is started we add a promise; every time a parser finished we remove a promise + # when empty we start the layer rendering + self.parsing_promises = [] # conversion factor to INCH self.point_to_unit_factor = 0.01388888888 - def parse_pdf(self, pdf_content): + def run(self, toggle=True): + self.app.defaults.report_usage("ToolPDF()") + + self.set_tool_ui() + self.on_open_pdf_click() + + def install(self, icon=None, separator=None, **kwargs): + FlatCAMTool.install(self, icon, separator, shortcut='Ctrl+Q', **kwargs) + + def set_tool_ui(self): + pass + + def on_open_pdf_click(self): + """ + File menu callback for opening an PDF file. + + :return: None + """ + + self.app.defaults.report_usage("ToolPDF.on_open_pdf_click()") + self.app.log.debug("ToolPDF.on_open_pdf_click()") + + _filter_ = "Adobe PDF Files (*.pdf);;" \ + "All Files (*.*)" + + try: + filenames, _f = QtWidgets.QFileDialog.getOpenFileNames(caption=_("Open PDF"), + directory=self.app.get_last_folder(), + filter=_filter_) + except TypeError: + filenames, _f = QtWidgets.QFileDialog.getOpenFileNames(caption=_("Open PDF"), filter=_filter_) + + if len(filenames) == 0: + self.app.inform.emit('[WARNING_NOTCL] %s.' % _("Open PDF cancelled")) + else: + # start the parsing timer with a period of 1 second + self.periodic_check(1000) + + for filename in filenames: + if filename != '': + self.app.worker_task.emit({'fcn': self.open_pdf, + 'params': [filename]}) + + def open_pdf(self, filename): + short_name = filename.split('/')[-1].split('\\')[-1] + self.parsing_promises.append(short_name) + self.pdf_parsed[short_name] = {} + self.pdf_parsed[short_name]['pdf'] = {} + self.pdf_parsed[short_name]['filename'] = filename + + self.pdf_decompressed[short_name] = '' # the UNITS in PDF files are points and here we set the factor to convert them to real units (either MM or INCH) if self.app.defaults['units'].upper() == 'MM': @@ -102,14 +188,260 @@ class PdfParser(QtCore.QObject): # 1 inch = 72 points => 1 point = 1 / 72 = 0.01388888888 inch self.point_to_unit_factor = 1 / 72 + if self.app.abort_flag: + # graceful abort requested by the user + raise grace + + with self.app.proc_container.new(_("Parsing PDF file ...")): + with open(filename, "rb") as f: + pdf = f.read() + + stream_nr = 0 + for s in re.findall(self.stream_re, pdf): + if self.app.abort_flag: + # graceful abort requested by the user + raise grace + + stream_nr += 1 + log.debug(" PDF STREAM: %d\n" % stream_nr) + s = s.strip(b'\r\n') + try: + self.pdf_decompressed[short_name] += (zlib.decompress(s).decode('UTF-8') + '\r\n') + except Exception as e: + log.debug("ToolPDF.open_pdf().obj_init() --> %s" % str(e)) + + self.pdf_parsed[short_name]['pdf'] = self.parse_pdf(pdf_content=self.pdf_decompressed[short_name]) + # we used it, now we delete it + self.pdf_decompressed[short_name] = '' + + # removal from list is done in a multithreaded way therefore not always the removal can be done + # try to remove until it's done + try: + while True: + self.parsing_promises.remove(short_name) + time.sleep(0.1) + except Exception as e: + log.debug("ToolPDF.open_pdf() --> %s" % str(e)) + self.app.inform.emit('[success] %s: %s' % (_("Opened"), str(filename))) + + def layer_rendering_as_excellon(self, filename, ap_dict, layer_nr): + outname = filename.split('/')[-1].split('\\')[-1] + "_%s" % str(layer_nr) + + # store the points here until reconstitution: + # keys are diameters and values are list of (x,y) coords + points = {} + + def obj_init(exc_obj, app_obj): + clear_geo = [geo_el['clear'] for geo_el in ap_dict['0']['geometry']] + + for geo in clear_geo: + xmin, ymin, xmax, ymax = geo.bounds + center = (((xmax - xmin) / 2) + xmin, ((ymax - ymin) / 2) + ymin) + + # for drill bits, even in INCH, it's enough 3 decimals + correction_factor = 0.974 + dia = (xmax - xmin) * correction_factor + dia = round(dia, 3) + if dia in points: + points[dia].append(center) + else: + points[dia] = [center] + + sorted_dia = sorted(points.keys()) + + name_tool = 0 + for dia in sorted_dia: + name_tool += 1 + + # create tools dictionary + spec = {"C": dia, 'solid_geometry': []} + exc_obj.tools[str(name_tool)] = spec + + # create drill list of dictionaries + for dia_points in points: + if dia == dia_points: + for pt in points[dia_points]: + exc_obj.drills.append({'point': Point(pt), 'tool': str(name_tool)}) + break + + ret = exc_obj.create_geometry() + if ret == 'fail': + log.debug("Could not create geometry for Excellon object.") + return "fail" + for tool in exc_obj.tools: + if exc_obj.tools[tool]['solid_geometry']: + return + app_obj.inform.emit('[ERROR_NOTCL] %s: %s' % + (_("No geometry found in file"), outname)) + return "fail" + + with self.app.proc_container.new(_("Rendering PDF layer #%d ...") % int(layer_nr)): + + ret_val = self.app.new_object("excellon", outname, obj_init, autoselected=False) + if ret_val == 'fail': + self.app.inform.emit('[ERROR_NOTCL] %s' % + _('Open PDF file failed.')) + return + # Register recent file + self.app.file_opened.emit("excellon", filename) + # GUI feedback + self.app.inform.emit('[success] %s: %s' % + (_("Rendered"), outname)) + + def layer_rendering_as_gerber(self, filename, ap_dict, layer_nr): + outname = filename.split('/')[-1].split('\\')[-1] + "_%s" % str(layer_nr) + + def obj_init(grb_obj): + + grb_obj.apertures = ap_dict + + poly_buff = [] + follow_buf = [] + for ap in grb_obj.apertures: + for k in grb_obj.apertures[ap]: + if k == 'geometry': + for geo_el in ap_dict[ap][k]: + if 'solid' in geo_el: + poly_buff.append(geo_el['solid']) + if 'follow' in geo_el: + follow_buf.append(geo_el['follow']) + poly_buff = unary_union(poly_buff) + + if '0' in grb_obj.apertures: + global_clear_geo = [] + if 'geometry' in grb_obj.apertures['0']: + for geo_el in ap_dict['0']['geometry']: + if 'clear' in geo_el: + global_clear_geo.append(geo_el['clear']) + + if global_clear_geo: + solid = [] + for apid in grb_obj.apertures: + if 'geometry' in grb_obj.apertures[apid]: + for elem in grb_obj.apertures[apid]['geometry']: + if 'solid' in elem: + solid_geo = deepcopy(elem['solid']) + for clear_geo in global_clear_geo: + # Make sure that the clear_geo is within the solid_geo otherwise we loose + # the solid_geometry. We want for clear_geometry just to cut into solid_geometry + # not to delete it + if clear_geo.within(solid_geo): + solid_geo = solid_geo.difference(clear_geo) + if solid_geo.is_empty: + solid_geo = elem['solid'] + try: + for poly in solid_geo: + solid.append(poly) + except TypeError: + solid.append(solid_geo) + poly_buff = deepcopy(MultiPolygon(solid)) + + follow_buf = unary_union(follow_buf) + + try: + poly_buff = poly_buff.buffer(0.0000001) + except ValueError: + pass + try: + poly_buff = poly_buff.buffer(-0.0000001) + except ValueError: + pass + + grb_obj.solid_geometry = deepcopy(poly_buff) + grb_obj.follow_geometry = deepcopy(follow_buf) + + with self.app.proc_container.new(_("Rendering PDF layer #%d ...") % int(layer_nr)): + + ret = self.app.new_object('gerber', outname, obj_init, autoselected=False) + if ret == 'fail': + self.app.inform.emit('[ERROR_NOTCL] %s' % + _('Open PDF file failed.')) + return + # Register recent file + self.app.file_opened.emit('gerber', filename) + # GUI feedback + self.app.inform.emit('[success] %s: %s' % (_("Rendered"), outname)) + + def periodic_check(self, check_period): + """ + This function starts an QTimer and it will periodically check if parsing was done + + :param check_period: time at which to check periodically if all plots finished to be plotted + :return: + """ + + # self.plot_thread = threading.Thread(target=lambda: self.check_plot_finished(check_period)) + # self.plot_thread.start() + log.debug("ToolPDF --> Periodic Check started.") + + try: + self.check_thread.stop() + except TypeError: + pass + + self.check_thread.setInterval(check_period) + try: + self.check_thread.timeout.disconnect(self.periodic_check_handler) + except (TypeError, AttributeError): + pass + + self.check_thread.timeout.connect(self.periodic_check_handler) + self.check_thread.start(QtCore.QThread.HighPriority) + + def periodic_check_handler(self): + """ + If the parsing worker finished then start multithreaded rendering + :return: + """ + # log.debug("checking parsing --> %s" % str(self.parsing_promises)) + + try: + if not self.parsing_promises: + self.check_thread.stop() + # parsing finished start the layer rendering + if self.pdf_parsed: + obj_to_delete = [] + for object_name in self.pdf_parsed: + if self.app.abort_flag: + # graceful abort requested by the user + raise grace + + filename = deepcopy(self.pdf_parsed[object_name]['filename']) + pdf_content = deepcopy(self.pdf_parsed[object_name]['pdf']) + obj_to_delete.append(object_name) + for k in pdf_content: + if self.app.abort_flag: + # graceful abort requested by the user + raise grace + + ap_dict = pdf_content[k] + if ap_dict: + layer_nr = k + if k == 0: + self.app.worker_task.emit({'fcn': self.layer_rendering_as_excellon, + 'params': [filename, ap_dict, layer_nr]}) + else: + self.app.worker_task.emit({'fcn': self.layer_rendering_as_gerber, + 'params': [filename, ap_dict, layer_nr]}) + # delete the object already processed so it will not be processed again for other objects + # that were opened at the same time; like in drag & drop on GUI + for obj_name in obj_to_delete: + if obj_name in self.pdf_parsed: + self.pdf_parsed.pop(obj_name) + + log.debug("ToolPDF --> Periodic check finished.") + except Exception: + traceback.print_exc() + + def parse_pdf(self, pdf_content): path = {} - path['lines'] = [] # it's a list of lines subpaths - path['bezier'] = [] # it's a list of bezier arcs subpaths + path['lines'] = [] # it's a list of lines subpaths + path['bezier'] = [] # it's a list of bezier arcs subpaths path['rectangle'] = [] # it's a list of rectangle subpaths subpath = {} - subpath['lines'] = [] # it's a list of points - subpath['bezier'] = [] # it's a list of sublists each like this [start, c1, c2, stop] + subpath['lines'] = [] # it's a list of points + subpath['bezier'] = [] # it's a list of sublists each like this [start, c1, c2, stop] subpath['rectangle'] = [] # it's a list of sublists of points # store the start point (when 'm' command is encountered) @@ -171,7 +503,7 @@ class PdfParser(QtCore.QObject): if match: color = [float(match.group(1)), float(match.group(2)), float(match.group(3))] log.debug( - "parse_pdf() --> STROKE Color change on line: %s --> RED=%f GREEN=%f BLUE=%f" % + "ToolPDF.parse_pdf() --> STROKE Color change on line: %s --> RED=%f GREEN=%f BLUE=%f" % (line_nr, color[0], color[1], color[2])) if color[0] == old_color[0] and color[1] == old_color[1] and color[2] == old_color[2]: @@ -194,7 +526,7 @@ class PdfParser(QtCore.QObject): if match: fill_color = [float(match.group(1)), float(match.group(2)), float(match.group(3))] log.debug( - "parse_pdf() --> FILL Color change on line: %s --> RED=%f GREEN=%f BLUE=%f" % + "ToolPDF.parse_pdf() --> FILL Color change on line: %s --> RED=%f GREEN=%f BLUE=%f" % (line_nr, fill_color[0], fill_color[1], fill_color[2])) # if the color is white we are seeing 'clear_geometry' that can't be seen. It may be that those # geometries are actually holes from which we can make an Excellon file @@ -213,7 +545,7 @@ class PdfParser(QtCore.QObject): # sometimes they combine save_to_graphics_stack with the transformation on the same line if match.group(1) == 'q': log.debug( - "parse_pdf() --> Save to GS found on line: %s --> offset=[%f, %f] ||| scale=[%f, %f]" % + "ToolPDF.parse_pdf() --> Save to GS found on line: %s --> offset=[%f, %f] ||| scale=[%f, %f]" % (line_nr, offset_geo[0], offset_geo[1], scale_geo[0], scale_geo[1])) self.gs['transform'].append(deepcopy([offset_geo, scale_geo])) @@ -223,7 +555,7 @@ class PdfParser(QtCore.QObject): if (float(match.group(3)) == 0 and float(match.group(4)) == 0) and \ (float(match.group(6)) != 0 or float(match.group(7)) != 0): log.debug( - "parse_pdf() --> OFFSET transformation found on line: %s --> %s" % (line_nr, pline)) + "ToolPDF.parse_pdf() --> OFFSET transformation found on line: %s --> %s" % (line_nr, pline)) offset_geo[0] += float(match.group(6)) offset_geo[1] += float(match.group(7)) @@ -232,7 +564,7 @@ class PdfParser(QtCore.QObject): # transformation = SCALING if float(match.group(2)) != 1 and float(match.group(5)) != 1: log.debug( - "parse_pdf() --> SCALE transformation found on line: %s --> %s" % (line_nr, pline)) + "ToolPDF.parse_pdf() --> SCALE transformation found on line: %s --> %s" % (line_nr, pline)) scale_geo[0] *= float(match.group(2)) scale_geo[1] *= float(match.group(5)) @@ -244,7 +576,7 @@ class PdfParser(QtCore.QObject): match = self.save_gs_re.search(pline) if match: log.debug( - "parse_pdf() --> Save to GS found on line: %s --> offset=[%f, %f] ||| scale=[%f, %f]" % + "ToolPDF.parse_pdf() --> Save to GS found on line: %s --> offset=[%f, %f] ||| scale=[%f, %f]" % (line_nr, offset_geo[0], offset_geo[1], scale_geo[0], scale_geo[1])) self.gs['transform'].append(deepcopy([offset_geo, scale_geo])) self.gs['line_width'].append(deepcopy(size)) @@ -258,18 +590,18 @@ class PdfParser(QtCore.QObject): scale_geo = restored_transform[1] except IndexError: # nothing to remove - log.debug("parse_pdf() --> Nothing to restore") + log.debug("ToolPDF.parse_pdf() --> Nothing to restore") pass try: size = self.gs['line_width'].pop(-1) except IndexError: - log.debug("parse_pdf() --> Nothing to restore") + log.debug("ToolPDF.parse_pdf() --> Nothing to restore") # nothing to remove pass log.debug( - "parse_pdf() --> Restore from GS found on line: %s --> " + "ToolPDF.parse_pdf() --> Restore from GS found on line: %s --> " "restored_offset=[%f, %f] ||| restored_scale=[%f, %f]" % (line_nr, offset_geo[0], offset_geo[1], scale_geo[0], scale_geo[1])) # log.debug("Restored Offset= [%f, %f]" % (offset_geo[0], offset_geo[1])) @@ -380,9 +712,9 @@ class PdfParser(QtCore.QObject): width = (float(match.group(3)) + offset_geo[0]) * self.point_to_unit_factor * scale_geo[0] height = (float(match.group(4)) + offset_geo[1]) * self.point_to_unit_factor * scale_geo[1] pt1 = (x, y) - pt2 = (x + width, y) - pt3 = (x + width, y + height) - pt4 = (x, y + height) + pt2 = (x+width, y) + pt3 = (x+width, y+height) + pt4 = (x, y+height) subpath['rectangle'] += [pt1, pt2, pt3, pt4, pt1] current_point = pt1 continue @@ -616,8 +948,7 @@ class PdfParser(QtCore.QObject): geo += self.bezier_to_points(start=b[0], c1=b[1], c2=b[2], stop=b[3]) # close the subpath if it was not closed already if close_subpath is False: - new_g = geo[0] - geo.append(new_g) + geo.append(geo[0]) try: geo_el = Polygon(geo).buffer(0.0000001, resolution=self.step_per_circles) path_geo.append(geo_el) diff --git a/AppTools/ToolPaint.py b/flatcamTools/ToolPaint.py similarity index 98% rename from AppTools/ToolPaint.py rename to flatcamTools/ToolPaint.py index 775b36e5..4dda2d36 100644 --- a/AppTools/ToolPaint.py +++ b/flatcamTools/ToolPaint.py @@ -8,12 +8,13 @@ from PyQt5 import QtWidgets, QtGui, QtCore from PyQt5.QtCore import Qt -from AppTool import AppTool +from FlatCAMTool import FlatCAMTool from copy import deepcopy # from ObjectCollection import * -from AppParsers.ParseGerber import Gerber -from camlib import Geometry, FlatCAMRTreeStorage, grace -from AppGUI.GUIElements import FCTable, FCDoubleSpinner, FCCheckBox, FCInputDialog, RadioSet, FCButton, FCComboBox +from flatcamParsers.ParseGerber import Gerber +from camlib import Geometry, FlatCAMRTreeStorage +from flatcamGUI.GUIElements import FCTable, FCDoubleSpinner, FCCheckBox, FCInputDialog, RadioSet, FCButton, FCComboBox +from FlatCAMCommon import GracefulException as grace from shapely.geometry import base, Polygon, MultiPolygon, LinearRing, Point from shapely.ops import cascaded_union, unary_union, linemerge @@ -27,7 +28,7 @@ import traceback import logging import gettext -import AppTranslation as fcTranslate +import FlatCAMTranslation as fcTranslate import builtins fcTranslate.apply_language('strings') @@ -37,7 +38,7 @@ if '_' not in builtins.__dict__: log = logging.getLogger('base') -class ToolPaint(AppTool, Gerber): +class ToolPaint(FlatCAMTool, Gerber): toolName = _("Paint Tool") @@ -45,7 +46,7 @@ class ToolPaint(AppTool, Gerber): self.app = app self.decimals = self.app.decimals - AppTool.__init__(self, app) + FlatCAMTool.__init__(self, app) Geometry.__init__(self, geo_steps_per_circle=self.app.defaults["geometry_circle_steps"]) # ## Title @@ -438,7 +439,7 @@ class ToolPaint(AppTool, Gerber): ) grid4.addWidget(self.gen_param_label, 15, 0, 1, 2) - self.rest_cb = FCCheckBox('%s' % _("Rest")) + self.rest_cb = FCCheckBox('%s' % _("Rest Machining")) self.rest_cb.setObjectName('p_rest_machining') self.rest_cb.setToolTip( _("If checked, use 'rest machining'.\n" @@ -482,7 +483,7 @@ class ToolPaint(AppTool, Gerber): self.selectmethod_combo = FCComboBox() self.selectmethod_combo.addItems( - [_("Polygon Selection"), _("Area Selection"), _("All"), _("Reference Object")] + [_("Polygon Selection"), _("Area Selection"), _("All Polygons"), _("Reference Object")] ) self.selectmethod_combo.setObjectName('p_selection') @@ -706,7 +707,7 @@ class ToolPaint(AppTool, Gerber): }[self.reference_type_combo.get_value()] def install(self, icon=None, separator=None, **kwargs): - AppTool.install(self, icon, separator, shortcut='Alt+P', **kwargs) + FlatCAMTool.install(self, icon, separator, shortcut='Alt+P', **kwargs) def run(self, toggle=True): self.app.defaults.report_usage("ToolPaint()") @@ -731,7 +732,7 @@ class ToolPaint(AppTool, Gerber): if self.app.ui.splitter.sizes()[0] == 0: self.app.ui.splitter.setSizes([1, 1]) - AppTool.run(self) + FlatCAMTool.run(self) self.set_tool_ui() self.app.ui.notebook.setTabText(2, _("Paint Tool")) @@ -1046,33 +1047,13 @@ class ToolPaint(AppTool, Gerber): self.on_tool_type(val=self.tool_type_radio.get_value()) - # # make the default object type, "Geometry" - # self.type_obj_combo.set_value("geometry") + # make the default object type, "Geometry" + self.type_obj_combo.set_value("geometry") - # use the current selected object and make it visible in the Paint object combobox - sel_list = self.app.collection.get_selected() - if len(sel_list) == 1: - active = self.app.collection.get_active() - kind = active.kind - if kind == 'gerber': - self.type_obj_radio.set_value('gerber') - else: - self.type_obj_radio.set_value('geometry') - - # run those once so the obj_type attribute is updated in the FCComboBoxes - # to make sure that the last loaded object is displayed in the combobox - self.on_type_obj_changed(val=kind) - self.on_reference_combo_changed() - - self.object_combo.set_value(active.options['name']) - else: - kind = 'geometry' - self.type_obj_radio.set_value('geometry') - - # run those once so the obj_type attribute is updated in the FCComboBoxes - # to make sure that the last loaded object is displayed in the combobox - self.on_type_obj_changed(val=kind) - self.on_reference_combo_changed() + # run those once so the obj_type attribute is updated in the FCComboBoxes + # to make sure that the last loaded object is displayed in the combobox + self.on_type_obj_changed(val="geometry") + self.on_reference_combo_changed() try: diameters = [float(self.app.defaults["tools_painttooldia"])] @@ -1443,12 +1424,14 @@ class ToolPaint(AppTool, Gerber): self.app.inform.emit('[ERROR_NOTCL] %s' % _("No selected tools in Tool Table.")) return - if self.select_method == _("All"): + if self.select_method == _("All Polygons"): self.paint_poly_all(self.paint_obj, tooldia=self.tooldia_list, outname=self.o_name) elif self.select_method == _("Polygon Selection"): + self.app.inform.emit('[WARNING_NOTCL] %s' % _("Click on a polygon to paint it.")) + # disengage the grid snapping since it may be hard to click on polygons with grid snapping on if self.app.ui.grid_snap_btn.isChecked(): self.grid_status_memory = True @@ -1456,8 +1439,6 @@ class ToolPaint(AppTool, Gerber): else: self.grid_status_memory = False - self.app.inform.emit('[WARNING_NOTCL] %s' % _("Click on a polygon to paint it.")) - self.mr = self.app.plotcanvas.graph_event_connect('mouse_release', self.on_single_poly_mouse_release) self.kp = self.app.plotcanvas.graph_event_connect('key_press', self.on_key_press) @@ -1743,22 +1724,16 @@ class ToolPaint(AppTool, Gerber): edge_width=self.app.defaults["global_cursor_width"], size=self.app.defaults["global_cursor_size"]) + # update the positions on status bar + self.app.ui.position_label.setText("    X: %.4f   " + "Y: %.4f" % (curr_pos[0], curr_pos[1])) if self.cursor_pos is None: self.cursor_pos = (0, 0) self.app.dx = curr_pos[0] - float(self.cursor_pos[0]) self.app.dy = curr_pos[1] - float(self.cursor_pos[1]) - - # # update the positions on status bar - self.app.ui.position_label.setText(" X: %.4f   " - "Y: %.4f " % (curr_pos[0], curr_pos[1])) - # self.app.ui.rel_position_label.setText("Dx: %.4f   Dy: " - # "%.4f    " % (self.app.dx, self.app.dy)) - - units = self.app.defaults["units"].lower() - self.app.plotcanvas.text_hud.text = \ - 'Dx:\t{:<.4f} [{:s}]\nDy:\t{:<.4f} [{:s}]\n\nX: \t{:<.4f} [{:s}]\nY: \t{:<.4f} [{:s}]'.format( - self.app.dx, units, self.app.dy, units, curr_pos[0], units, curr_pos[1], units) + self.app.ui.rel_position_label.setText("Dx: %.4f   Dy: " + "%.4f    " % (self.app.dx, self.app.dy)) # draw the utility geometry if shape_type == "square": @@ -2334,7 +2309,7 @@ class ToolPaint(AppTool, Gerber): def job_thread(app_obj): try: - ret = app_obj.app_obj.new_object("geometry", name, job_init, plot=plot) + ret = app_obj.new_object("geometry", name, job_init, plot=plot) except grace: proc.done() return @@ -2842,9 +2817,9 @@ class ToolPaint(AppTool, Gerber): def job_thread(app_obj): try: if self.rest_cb.isChecked(): - ret = app_obj.app_obj.new_object("geometry", name, gen_paintarea_rest_machining, plot=plot) + ret = app_obj.new_object("geometry", name, gen_paintarea_rest_machining, plot=plot) else: - ret = app_obj.app_obj.new_object("geometry", name, gen_paintarea, plot=plot) + ret = app_obj.new_object("geometry", name, gen_paintarea, plot=plot) except grace: proc.done() return @@ -3339,9 +3314,9 @@ class ToolPaint(AppTool, Gerber): def job_thread(app_obj): try: if self.rest_cb.isChecked(): - ret = app_obj.app_obj.new_object("geometry", name, gen_paintarea_rest_machining, plot=plot) + ret = app_obj.new_object("geometry", name, gen_paintarea_rest_machining, plot=plot) else: - ret = app_obj.app_obj.new_object("geometry", name, gen_paintarea, plot=plot) + ret = app_obj.new_object("geometry", name, gen_paintarea, plot=plot) except grace: proc.done() return diff --git a/AppTools/ToolPanelize.py b/flatcamTools/ToolPanelize.py similarity index 96% rename from AppTools/ToolPanelize.py rename to flatcamTools/ToolPanelize.py index 7c2325e1..8995da05 100644 --- a/AppTools/ToolPanelize.py +++ b/flatcamTools/ToolPanelize.py @@ -6,11 +6,10 @@ # ########################################################## from PyQt5 import QtWidgets, QtGui, QtCore -from AppTool import AppTool - -from AppGUI.GUIElements import FCSpinner, FCDoubleSpinner, RadioSet, FCCheckBox, OptionalInputSection, FCComboBox -from camlib import grace +from FlatCAMTool import FlatCAMTool +from flatcamGUI.GUIElements import FCSpinner, FCDoubleSpinner, RadioSet, FCCheckBox, OptionalInputSection, FCComboBox +from FlatCAMCommon import GracefulException as grace from copy import deepcopy import numpy as np @@ -19,7 +18,7 @@ from shapely.ops import unary_union from shapely.geometry import LineString import gettext -import AppTranslation as fcTranslate +import FlatCAMTranslation as fcTranslate import builtins import logging @@ -30,14 +29,14 @@ if '_' not in builtins.__dict__: log = logging.getLogger('base') -class Panelize(AppTool): +class Panelize(FlatCAMTool): toolName = _("Panelize PCB") def __init__(self, app): self.decimals = app.decimals - AppTool.__init__(self, app) + FlatCAMTool.__init__(self, app) # ## Title title_label = QtWidgets.QLabel("%s" % self.toolName) @@ -50,6 +49,8 @@ class Panelize(AppTool): """) self.layout.addWidget(title_label) + self.layout.addWidget(QtWidgets.QLabel('')) + self.object_label = QtWidgets.QLabel('%s:' % _("Source Object")) self.object_label.setToolTip( _("Specify the type of object to be panelized\n" @@ -89,6 +90,7 @@ class Panelize(AppTool): "be duplicated in an array of rows and columns.") ) form_layout_0.addRow(self.object_combo) + form_layout_0.addRow(QtWidgets.QLabel("")) # Form Layout form_layout = QtWidgets.QFormLayout() @@ -140,11 +142,7 @@ class Panelize(AppTool): "selected object that is to be panelized.") ) form_layout.addRow(self.box_combo) - - separator_line = QtWidgets.QFrame() - separator_line.setFrameShape(QtWidgets.QFrame.HLine) - separator_line.setFrameShadow(QtWidgets.QFrame.Sunken) - form_layout.addRow(separator_line) + form_layout.addRow(QtWidgets.QLabel("")) panel_data_label = QtWidgets.QLabel("%s:" % _("Panel Data")) panel_data_label.setToolTip( @@ -200,11 +198,7 @@ class Panelize(AppTool): _("Number of rows of the desired panel") ) form_layout.addRow(self.rows_label, self.rows) - - separator_line = QtWidgets.QFrame() - separator_line.setFrameShape(QtWidgets.QFrame.HLine) - separator_line.setFrameShadow(QtWidgets.QFrame.Sunken) - form_layout.addRow(separator_line) + form_layout.addRow(QtWidgets.QLabel("")) # Type of resulting Panel object self.panel_type_radio = RadioSet([{'label': _('Gerber'), 'value': 'gerber'}, @@ -254,11 +248,6 @@ class Panelize(AppTool): self.constrain_sel = OptionalInputSection( self.constrain_cb, [self.x_width_lbl, self.x_width_entry, self.y_height_lbl, self.y_height_entry]) - separator_line = QtWidgets.QFrame() - separator_line.setFrameShape(QtWidgets.QFrame.HLine) - separator_line.setFrameShadow(QtWidgets.QFrame.Sunken) - form_layout.addRow(separator_line) - # Buttons self.panelize_object_button = QtWidgets.QPushButton(_("Panelize Object")) self.panelize_object_button.setToolTip( @@ -327,13 +316,13 @@ class Panelize(AppTool): if self.app.ui.splitter.sizes()[0] == 0: self.app.ui.splitter.setSizes([1, 1]) - AppTool.run(self) + FlatCAMTool.run(self) self.set_tool_ui() self.app.ui.notebook.setTabText(2, _("Panel. Tool")) def install(self, icon=None, separator=None, **kwargs): - AppTool.install(self, icon, separator, shortcut='Alt+Z', **kwargs) + FlatCAMTool.install(self, icon, separator, shortcut='Alt+Z', **kwargs) def set_tool_ui(self): self.reset_fields() @@ -438,7 +427,7 @@ class Panelize(AppTool): return "Could not retrieve object: %s" % boxname if box is None: - self.app.inform.emit('[WARNING_NOTCL] %s: %s' % (_("No object Box. Using instead"), panel_source_obj)) + self.app.inform.emit('[WARNING_NOTCL]%s: %s' % (_("No object Box. Using instead"), panel_source_obj)) self.reference_radio.set_value('bbox') if self.reference_radio.get_value() == 'bbox': @@ -795,9 +784,9 @@ class Panelize(AppTool): self.app.inform.emit('%s: %d' % (_("Generating panel... Spawning copies"), (int(rows * columns)))) if panel_source_obj.kind == 'excellon': - self.app.app_obj.new_object("excellon", self.outname, job_init_excellon, plot=True, autoselected=True) + self.app.new_object("excellon", self.outname, job_init_excellon, plot=True, autoselected=True) else: - self.app.app_obj.new_object(panel_type, self.outname, job_init_geometry, plot=True, autoselected=True) + self.app.new_object(panel_type, self.outname, job_init_geometry, plot=True, autoselected=True) if self.constrain_flag is False: self.app.inform.emit('[success] %s' % _("Panel done...")) diff --git a/AppTools/ToolPcbWizard.py b/flatcamTools/ToolPcbWizard.py similarity index 97% rename from AppTools/ToolPcbWizard.py rename to flatcamTools/ToolPcbWizard.py index a9fc6075..47d3a196 100644 --- a/AppTools/ToolPcbWizard.py +++ b/flatcamTools/ToolPcbWizard.py @@ -7,8 +7,8 @@ from PyQt5 import QtWidgets, QtCore -from AppTool import AppTool -from AppGUI.GUIElements import RadioSet, FCSpinner, FCButton, FCTable +from FlatCAMTool import FlatCAMTool +from flatcamGUI.GUIElements import RadioSet, FCSpinner, FCButton, FCTable import re import os @@ -16,7 +16,7 @@ from datetime import datetime from io import StringIO import gettext -import AppTranslation as fcTranslate +import FlatCAMTranslation as fcTranslate import builtins fcTranslate.apply_language('strings') @@ -24,14 +24,14 @@ if '_' not in builtins.__dict__: _ = gettext.gettext -class PcbWizard(AppTool): +class PcbWizard(FlatCAMTool): file_loaded = QtCore.pyqtSignal(str, str) toolName = _("PcbWizard Import Tool") def __init__(self, app): - AppTool.__init__(self, app) + FlatCAMTool.__init__(self, app) self.app = app self.decimals = self.app.decimals @@ -191,13 +191,13 @@ class PcbWizard(AppTool): if self.app.ui.splitter.sizes()[0] == 0: self.app.ui.splitter.setSizes([1, 1]) - AppTool.run(self) + FlatCAMTool.run(self) self.set_tool_ui() self.app.ui.notebook.setTabText(2, _("PCBWizard Tool")) def install(self, icon=None, separator=None, **kwargs): - AppTool.install(self, icon, separator, **kwargs) + FlatCAMTool.install(self, icon, separator, **kwargs) def set_tool_ui(self): self.units = 'INCH' @@ -452,7 +452,7 @@ class PcbWizard(AppTool): # Object name name = self.outname - ret_val = self.app.app_obj.new_object("excellon", name, obj_init, autoselected=False) + ret_val = self.app.new_object("excellon", name, obj_init, autoselected=False) if ret_val == 'fail': self.app.inform.emit('[ERROR_NOTCL] %s' % _('Import Excellon file failed.')) return diff --git a/AppTools/ToolProperties.py b/flatcamTools/ToolProperties.py similarity index 98% rename from AppTools/ToolProperties.py rename to flatcamTools/ToolProperties.py index 59d73a8c..e1cc1c25 100644 --- a/AppTools/ToolProperties.py +++ b/flatcamTools/ToolProperties.py @@ -6,8 +6,8 @@ # ########################################################## from PyQt5 import QtGui, QtCore, QtWidgets -from AppTool import AppTool -from AppGUI.GUIElements import FCTree +from FlatCAMTool import FlatCAMTool +from flatcamGUI.GUIElements import FCTree from shapely.geometry import MultiPolygon, Polygon from shapely.ops import cascaded_union @@ -17,7 +17,7 @@ import math import logging import gettext -import AppTranslation as fcTranslate +import FlatCAMTranslation as fcTranslate import builtins fcTranslate.apply_language('strings') @@ -27,13 +27,13 @@ if '_' not in builtins.__dict__: log = logging.getLogger('base') -class Properties(AppTool): +class Properties(FlatCAMTool): toolName = _("Properties") calculations_finished = QtCore.pyqtSignal(float, float, float, float, float, object) def __init__(self, app): - AppTool.__init__(self, app) + FlatCAMTool.__init__(self, app) self.setSizePolicy(QtWidgets.QSizePolicy.Ignored, QtWidgets.QSizePolicy.Ignored) @@ -97,13 +97,13 @@ class Properties(AppTool): if self.app.ui.splitter.sizes()[0] == 0: self.app.ui.splitter.setSizes([1, 1]) - AppTool.run(self) + FlatCAMTool.run(self) self.set_tool_ui() self.properties() def install(self, icon=None, separator=None, **kwargs): - AppTool.install(self, icon, separator, shortcut='P', **kwargs) + FlatCAMTool.install(self, icon, separator, shortcut='P', **kwargs) def set_tool_ui(self): # this reset the TreeWidget diff --git a/AppTools/ToolPunchGerber.py b/flatcamTools/ToolPunchGerber.py similarity index 94% rename from AppTools/ToolPunchGerber.py rename to flatcamTools/ToolPunchGerber.py index 819d9407..f0c6a9e3 100644 --- a/AppTools/ToolPunchGerber.py +++ b/flatcamTools/ToolPunchGerber.py @@ -7,15 +7,15 @@ from PyQt5 import QtCore, QtWidgets -from AppTool import AppTool -from AppGUI.GUIElements import RadioSet, FCDoubleSpinner, FCCheckBox, FCComboBox +from FlatCAMTool import FlatCAMTool +from flatcamGUI.GUIElements import RadioSet, FCDoubleSpinner, FCCheckBox, FCComboBox from copy import deepcopy import logging from shapely.geometry import MultiPolygon, Point import gettext -import AppTranslation as fcTranslate +import FlatCAMTranslation as fcTranslate import builtins fcTranslate.apply_language('strings') @@ -25,12 +25,12 @@ if '_' not in builtins.__dict__: log = logging.getLogger('base') -class ToolPunchGerber(AppTool): +class ToolPunchGerber(FlatCAMTool): toolName = _("Punch Gerber") def __init__(self, app): - AppTool.__init__(self, app) + FlatCAMTool.__init__(self, app) self.decimals = self.app.decimals @@ -418,14 +418,14 @@ class ToolPunchGerber(AppTool): if self.app.ui.splitter.sizes()[0] == 0: self.app.ui.splitter.setSizes([1, 1]) - AppTool.run(self) + FlatCAMTool.run(self) self.set_tool_ui() self.app.ui.notebook.setTabText(2, _("Punch Tool")) def install(self, icon=None, separator=None, **kwargs): - AppTool.install(self, icon, separator, shortcut='Alt+H', **kwargs) + FlatCAMTool.install(self, icon, separator, shortcut='Alt+H', **kwargs) def set_tool_ui(self): self.reset_fields() @@ -591,7 +591,7 @@ class ToolPunchGerber(AppTool): new_obj.source_file = self.app.export_gerber(obj_name=outname, filename=None, local_use=new_obj, use_thread=False) - self.app.app_obj.new_object('gerber', outname, init_func) + self.app.new_object('gerber', outname, init_func) elif punch_method == 'fixed': punch_size = float(self.dia_entry.get_value()) @@ -599,31 +599,32 @@ class ToolPunchGerber(AppTool): self.app.inform.emit('[WARNING_NOTCL] %s' % _("The value of the fixed diameter is 0.0. Aborting.")) return 'fail' - fail_msg = _("Could not generate punched hole Gerber because the punch hole size is bigger than" - " some of the apertures in the Gerber object.") - punching_geo = [] for apid in grb_obj.apertures: if grb_obj.apertures[apid]['type'] == 'C' and self.circular_cb.get_value(): - for elem in grb_obj.apertures[apid]['geometry']: - if 'follow' in elem: - if isinstance(elem['follow'], Point): - if punch_size >= float(grb_obj.apertures[apid]['size']): - self.app.inform.emit('[ERROR_NOTCL] %s' % fail_msg) - return 'fail' - punching_geo.append(elem['follow'].buffer(punch_size / 2)) + if punch_size >= float(grb_obj.apertures[apid]['size']): + self.app.inform.emit('[ERROR_NOTCL] %s' % + _("Could not generate punched hole Gerber because the punch hole size" + " is bigger than some of the apertures in the Gerber object.")) + return 'fail' + else: + for elem in grb_obj.apertures[apid]['geometry']: + if 'follow' in elem: + if isinstance(elem['follow'], Point): + punching_geo.append(elem['follow'].buffer(punch_size / 2)) elif grb_obj.apertures[apid]['type'] == 'R': - - if round(float(grb_obj.apertures[apid]['width']), self.decimals) == \ + if punch_size >= float(grb_obj.apertures[apid]['width']) or \ + punch_size >= float(grb_obj.apertures[apid]['height']): + self.app.inform.emit('[ERROR_NOTCL] %s' % + _("Could not generate punched hole Gerber because the punch hole size" + " is bigger than some of the apertures in the Gerber object.")) + return 'fail' + elif round(float(grb_obj.apertures[apid]['width']), self.decimals) == \ round(float(grb_obj.apertures[apid]['height']), self.decimals) and \ self.square_cb.get_value(): for elem in grb_obj.apertures[apid]['geometry']: if 'follow' in elem: if isinstance(elem['follow'], Point): - if punch_size >= float(grb_obj.apertures[apid]['width']) or \ - punch_size >= float(grb_obj.apertures[apid]['height']): - self.app.inform.emit('[ERROR_NOTCL] %s' % fail_msg) - return 'fail' punching_geo.append(elem['follow'].buffer(punch_size / 2)) elif round(float(grb_obj.apertures[apid]['width']), self.decimals) != \ round(float(grb_obj.apertures[apid]['height']), self.decimals) and \ @@ -631,26 +632,16 @@ class ToolPunchGerber(AppTool): for elem in grb_obj.apertures[apid]['geometry']: if 'follow' in elem: if isinstance(elem['follow'], Point): - if punch_size >= float(grb_obj.apertures[apid]['width']) or \ - punch_size >= float(grb_obj.apertures[apid]['height']): - self.app.inform.emit('[ERROR_NOTCL] %s' % fail_msg) - return 'fail' punching_geo.append(elem['follow'].buffer(punch_size / 2)) elif grb_obj.apertures[apid]['type'] == 'O' and self.oblong_cb.get_value(): for elem in grb_obj.apertures[apid]['geometry']: if 'follow' in elem: if isinstance(elem['follow'], Point): - if punch_size >= float(grb_obj.apertures[apid]['size']): - self.app.inform.emit('[ERROR_NOTCL] %s' % fail_msg) - return 'fail' punching_geo.append(elem['follow'].buffer(punch_size / 2)) elif grb_obj.apertures[apid]['type'] not in ['C', 'R', 'O'] and self.other_cb.get_value(): for elem in grb_obj.apertures[apid]['geometry']: if 'follow' in elem: if isinstance(elem['follow'], Point): - if punch_size >= float(grb_obj.apertures[apid]['size']): - self.app.inform.emit('[ERROR_NOTCL] %s' % fail_msg) - return 'fail' punching_geo.append(elem['follow'].buffer(punch_size / 2)) punching_geo = MultiPolygon(punching_geo) @@ -714,7 +705,7 @@ class ToolPunchGerber(AppTool): new_obj.source_file = self.app.export_gerber(obj_name=outname, filename=None, local_use=new_obj, use_thread=False) - self.app.app_obj.new_object('gerber', outname, init_func) + self.app.new_object('gerber', outname, init_func) elif punch_method == 'ring': circ_r_val = self.circular_ring_entry.get_value() oblong_r_val = self.oblong_ring_entry.get_value() @@ -856,7 +847,7 @@ class ToolPunchGerber(AppTool): new_obj.source_file = self.app.export_gerber(obj_name=outname, filename=None, local_use=new_obj, use_thread=False) - self.app.app_obj.new_object('gerber', outname, init_func) + self.app.new_object('gerber', outname, init_func) elif punch_method == 'prop': prop_factor = self.factor_entry.get_value() / 100.0 @@ -995,7 +986,7 @@ class ToolPunchGerber(AppTool): new_obj.source_file = self.app.export_gerber(obj_name=outname, filename=None, local_use=new_obj, use_thread=False) - self.app.app_obj.new_object('gerber', outname, init_func) + self.app.new_object('gerber', outname, init_func) def reset_fields(self): self.gerber_object_combo.setRootModelIndex(self.app.collection.index(0, 0, QtCore.QModelIndex())) diff --git a/AppTools/ToolQRCode.py b/flatcamTools/ToolQRCode.py similarity index 95% rename from AppTools/ToolQRCode.py rename to flatcamTools/ToolQRCode.py index f9d5c894..8d54fedd 100644 --- a/AppTools/ToolQRCode.py +++ b/flatcamTools/ToolQRCode.py @@ -8,9 +8,9 @@ from PyQt5 import QtWidgets, QtCore, QtGui from PyQt5.QtCore import Qt -from AppTool import AppTool -from AppGUI.GUIElements import RadioSet, FCTextArea, FCSpinner, FCEntry, FCCheckBox, FCComboBox, FCFileSaveDialog -from AppParsers.ParseSVG import * +from FlatCAMTool import FlatCAMTool +from flatcamGUI.GUIElements import RadioSet, FCTextArea, FCSpinner, FCEntry, FCCheckBox, FCComboBox, FCFileSaveDialog +from flatcamParsers.ParseSVG import * from shapely.geometry.base import * from shapely.ops import unary_union @@ -28,7 +28,7 @@ import qrcode.image.pil from lxml import etree as ET import gettext -import AppTranslation as fcTranslate +import FlatCAMTranslation as fcTranslate import builtins fcTranslate.apply_language('strings') @@ -38,12 +38,12 @@ if '_' not in builtins.__dict__: log = logging.getLogger('base') -class QRCode(AppTool): +class QRCode(FlatCAMTool): toolName = _("QRCode Tool") def __init__(self, app): - AppTool.__init__(self, app) + FlatCAMTool.__init__(self, app) self.app = app self.canvas = self.app.plotcanvas @@ -75,35 +75,14 @@ class QRCode(AppTool): self.grb_object_combo.is_last = True self.grb_object_combo.obj_type = "Gerber" - self.grbobj_label = QtWidgets.QLabel("%s:" % _("GERBER")) + self.grbobj_label = QtWidgets.QLabel("%s:" % _("Object")) self.grbobj_label.setToolTip( _("Gerber Object to which the QRCode will be added.") ) i_grid_lay.addWidget(self.grbobj_label, 0, 0) - i_grid_lay.addWidget(self.grb_object_combo, 1, 0, 1, 2) - - separator_line = QtWidgets.QFrame() - separator_line.setFrameShape(QtWidgets.QFrame.HLine) - separator_line.setFrameShadow(QtWidgets.QFrame.Sunken) - i_grid_lay.addWidget(separator_line, 2, 0, 1, 2) - - # Text box - self.text_label = QtWidgets.QLabel('%s:' % _("QRCode Data")) - self.text_label.setToolTip( - _("QRCode Data. Alphanumeric text to be encoded in the QRCode.") - ) - self.text_data = FCTextArea() - self.text_data.setPlaceholderText( - _("Add here the text to be included in the QRCode...") - ) - i_grid_lay.addWidget(self.text_label, 5, 0) - i_grid_lay.addWidget(self.text_data, 6, 0, 1, 2) - - separator_line = QtWidgets.QFrame() - separator_line.setFrameShape(QtWidgets.QFrame.HLine) - separator_line.setFrameShadow(QtWidgets.QFrame.Sunken) - i_grid_lay.addWidget(separator_line, 7, 0, 1, 2) + i_grid_lay.addWidget(self.grb_object_combo, 0, 1, 1, 2) + i_grid_lay.addWidget(QtWidgets.QLabel(''), 1, 0) # ## Grid Layout grid_lay = QtWidgets.QGridLayout() @@ -111,7 +90,7 @@ class QRCode(AppTool): grid_lay.setColumnStretch(0, 0) grid_lay.setColumnStretch(1, 1) - self.qrcode_label = QtWidgets.QLabel('%s' % _('Parameters')) + self.qrcode_label = QtWidgets.QLabel('%s' % _('QRCode Parameters')) self.qrcode_label.setToolTip( _("The parameters used to shape the QRCode.") ) @@ -179,6 +158,18 @@ class QRCode(AppTool): grid_lay.addWidget(self.border_size_label, 4, 0) grid_lay.addWidget(self.border_size_entry, 4, 1) + # Text box + self.text_label = QtWidgets.QLabel('%s:' % _("QRCode Data")) + self.text_label.setToolTip( + _("QRCode Data. Alphanumeric text to be encoded in the QRCode.") + ) + self.text_data = FCTextArea() + self.text_data.setPlaceholderText( + _("Add here the text to be included in the QRCode...") + ) + grid_lay.addWidget(self.text_label, 5, 0) + grid_lay.addWidget(self.text_data, 6, 0, 1, 2) + # POLARITY CHOICE # self.pol_label = QtWidgets.QLabel('%s:' % _("Polarity")) self.pol_label.setToolTip( @@ -384,14 +375,14 @@ class QRCode(AppTool): if self.app.ui.splitter.sizes()[0] == 0: self.app.ui.splitter.setSizes([1, 1]) - AppTool.run(self) + FlatCAMTool.run(self) self.set_tool_ui() self.app.ui.notebook.setTabText(2, _("QRCode Tool")) def install(self, icon=None, separator=None, **kwargs): - AppTool.install(self, icon, separator, shortcut='Alt+Q', **kwargs) + FlatCAMTool.install(self, icon, separator, shortcut='Alt+Q', **kwargs) def set_tool_ui(self): self.units = self.app.defaults['units'] @@ -790,14 +781,14 @@ class QRCode(AppTool): filename, _f = FCFileSaveDialog.get_saved_filename( caption=_("Export PNG"), directory=self.app.get_last_save_folder() + '/' + str(name) + '_png', - ext_filter=_filter) + filter=_filter) except TypeError: - filename, _f = FCFileSaveDialog.get_saved_filename(caption=_("Export PNG"), ext_filter=_filter) + filename, _f = FCFileSaveDialog.get_saved_filename(caption=_("Export PNG"), filter=_filter) filename = str(filename) if filename == "": - self.app.inform.emit('[WARNING_NOTCL] %s' % _("Cancelled.")) + self.app.inform.emit('[WARNING_NOTCL]%s' % _("Cancelled.")) return else: self.app.worker_task.emit({'fcn': job_thread_qr_png, 'params': [self.app, filename]}) @@ -837,14 +828,14 @@ class QRCode(AppTool): filename, _f = FCFileSaveDialog.get_saved_filename( caption=_("Export SVG"), directory=self.app.get_last_save_folder() + '/' + str(name) + '_svg', - ext_filter=_filter) + filter=_filter) except TypeError: - filename, _f = FCFileSaveDialog.get_saved_filename(caption=_("Export SVG"), ext_filter=_filter) + filename, _f = FCFileSaveDialog.get_saved_filename(caption=_("Export SVG"), filter=_filter) filename = str(filename) if filename == "": - self.app.inform.emit('[WARNING_NOTCL] %s' % _("Cancelled.")) + self.app.inform.emit('[WARNING_NOTCL]%s' % _("Cancelled.")) return else: self.app.worker_task.emit({'fcn': job_thread_qr_svg, 'params': [self.app, filename]}) diff --git a/AppTools/ToolRulesCheck.py b/flatcamTools/ToolRulesCheck.py similarity index 98% rename from AppTools/ToolRulesCheck.py rename to flatcamTools/ToolRulesCheck.py index 2761e1a9..fe07b683 100644 --- a/AppTools/ToolRulesCheck.py +++ b/flatcamTools/ToolRulesCheck.py @@ -7,18 +7,18 @@ from PyQt5 import QtWidgets -from AppTool import AppTool -from AppGUI.GUIElements import FCDoubleSpinner, FCCheckBox, OptionalInputSection, FCComboBox +from FlatCAMTool import FlatCAMTool +from flatcamGUI.GUIElements import FCDoubleSpinner, FCCheckBox, OptionalInputSection, FCComboBox from copy import deepcopy -from AppPool import * +from FlatCAMPool import * # from os import getpid from shapely.ops import nearest_points from shapely.geometry import MultiPolygon, Polygon import logging import gettext -import AppTranslation as fcTranslate +import FlatCAMTranslation as fcTranslate import builtins fcTranslate.apply_language('strings') @@ -28,7 +28,7 @@ if '_' not in builtins.__dict__: log = logging.getLogger('base') -class RulesCheck(AppTool): +class RulesCheck(FlatCAMTool): toolName = _("Check Rules") @@ -37,7 +37,7 @@ class RulesCheck(AppTool): def __init__(self, app): self.decimals = app.decimals - AppTool.__init__(self, app) + FlatCAMTool.__init__(self, app) # ## Title title_label = QtWidgets.QLabel("%s" % self.toolName) @@ -58,7 +58,7 @@ class RulesCheck(AppTool): self.grid_layout.setColumnStretch(1, 3) self.grid_layout.setColumnStretch(2, 0) - self.gerber_title_lbl = QtWidgets.QLabel('%s:' % _("GERBER")) + self.gerber_title_lbl = QtWidgets.QLabel('%s:' % _("Gerber Files")) self.gerber_title_lbl.setToolTip( _("Gerber objects for which to check rules.") ) @@ -196,7 +196,7 @@ class RulesCheck(AppTool): self.grid_layout.addWidget(QtWidgets.QLabel(""), 8, 0, 1, 3) - self.excellon_title_lbl = QtWidgets.QLabel('%s:' % _("EXCELLON")) + self.excellon_title_lbl = QtWidgets.QLabel('%s:' % _("Excellon Objects")) self.excellon_title_lbl.setToolTip( _("Excellon objects for which to check rules.") ) @@ -610,13 +610,13 @@ class RulesCheck(AppTool): if self.app.ui.splitter.sizes()[0] == 0: self.app.ui.splitter.setSizes([1, 1]) - AppTool.run(self) + FlatCAMTool.run(self) self.set_tool_ui() self.app.ui.notebook.setTabText(2, _("Rules Tool")) def install(self, icon=None, separator=None, **kwargs): - AppTool.install(self, icon, separator, shortcut='Alt+R', **kwargs) + FlatCAMTool.install(self, icon, separator, shortcut='Alt+R', **kwargs) def set_tool_ui(self): @@ -951,7 +951,7 @@ class RulesCheck(AppTool): geo = geo_el['solid'] pt = geo.representative_point() points_list.append((pt.x, pt.y)) - except Exception: + except Exception as e: # An exception will be raised for the 'size' key in case of apertures of type AM (macro) which does # not have the size key pass @@ -1137,7 +1137,7 @@ class RulesCheck(AppTool): copper_list.append(elem_dict) copper_name_2 = self.copper_b_object.currentText() - if copper_name_2 != '' and self.copper_b_cb.get_value(): + if copper_name_2 !='' and self.copper_b_cb.get_value(): elem_dict = {} elem_dict['name'] = deepcopy(copper_name_2) elem_dict['apertures'] = deepcopy(self.app.collection.get_by_name(copper_name_2).apertures) @@ -1363,12 +1363,12 @@ class RulesCheck(AppTool): top_dict['apertures'] = deepcopy(self.app.collection.get_by_name(silk_top).apertures) silk_bottom = self.ss_b_object.currentText() - if silk_bottom != '' and self.ss_b_cb.get_value(): + if silk_bottom != '' and self.ss_b_cb.get_value(): bottom_dict['name'] = deepcopy(silk_bottom) bottom_dict['apertures'] = deepcopy(self.app.collection.get_by_name(silk_bottom).apertures) copper_outline = self.outline_object.currentText() - if copper_outline != '' and self.out_cb.get_value(): + if copper_outline != '' and self.out_cb.get_value(): outline_dict['name'] = deepcopy(copper_outline) outline_dict['apertures'] = deepcopy(self.app.collection.get_by_name(copper_outline).apertures) @@ -1421,7 +1421,7 @@ class RulesCheck(AppTool): if self.sm_t_cb.get_value(): solder_obj = self.sm_t_object.currentText() - if solder_obj != '': + if solder_obj != '': sm_dict['name'] = deepcopy(solder_obj) sm_dict['apertures'] = deepcopy(self.app.collection.get_by_name(solder_obj).apertures) @@ -1431,7 +1431,7 @@ class RulesCheck(AppTool): _("TOP -> Minimum Solder Mask Sliver")))) if self.sm_b_cb.get_value(): solder_obj = self.sm_b_object.currentText() - if solder_obj != '': + if solder_obj != '': sm_dict['name'] = deepcopy(solder_obj) sm_dict['apertures'] = deepcopy(self.app.collection.get_by_name(solder_obj).apertures) @@ -1625,7 +1625,7 @@ class RulesCheck(AppTool): new_obj.source_file = txt new_obj.read_only = True - self.app.app_obj.new_object('document', name='Rules_check_results', initialize=init, plot=False) + self.app.new_object('document', name='Rules Check results', initialize=init, plot=False) def reset_fields(self): # self.object_combo.setRootModelIndex(self.app.collection.index(0, 0, QtCore.QModelIndex())) diff --git a/AppTools/ToolShell.py b/flatcamTools/ToolShell.py similarity index 92% rename from AppTools/ToolShell.py rename to flatcamTools/ToolShell.py index aa5a5e87..f68a9da4 100644 --- a/AppTools/ToolShell.py +++ b/flatcamTools/ToolShell.py @@ -8,9 +8,9 @@ from PyQt5.QtCore import Qt -from PyQt5.QtGui import QTextCursor, QPixmap -from PyQt5.QtWidgets import QVBoxLayout, QWidget, QHBoxLayout, QLabel -from AppGUI.GUIElements import _BrowserTextEdit, _ExpandableTextEdit, FCLabel +from PyQt5.QtGui import QTextCursor +from PyQt5.QtWidgets import QVBoxLayout, QWidget +from flatcamGUI.GUIElements import _BrowserTextEdit, _ExpandableTextEdit import html import sys import traceback @@ -19,7 +19,7 @@ import tkinter as tk import tclCommands import gettext -import AppTranslation as fcTranslate +import FlatCAMTranslation as fcTranslate import builtins fcTranslate.apply_language('strings') @@ -38,8 +38,6 @@ class TermWidget(QWidget): def __init__(self, version, app, *args): QWidget.__init__(self, *args) - self.app = app - self._browser = _BrowserTextEdit(version=version, app=app) self._browser.setStyleSheet("font: 9pt \"Courier\";") self._browser.setReadOnly(True) @@ -53,30 +51,15 @@ class TermWidget(QWidget): self._edit.setFocus() self.setFocusProxy(self._edit) - self._delete_line = FCLabel() - self._delete_line.setPixmap(QPixmap(self.app.resource_location + '/clear_line16.png')) - self._delete_line.setMargin(3) - self._delete_line.setToolTip(_("Clear the text.")) - layout = QVBoxLayout(self) layout.setSpacing(0) layout.setContentsMargins(0, 0, 0, 0) layout.addWidget(self._browser) - - hlay = QHBoxLayout() - hlay.addWidget(self._delete_line) - hlay.addWidget(QLabel(" ")) - hlay.addWidget(self._edit) - layout.addLayout(hlay) + layout.addWidget(self._edit) self._history = [''] # current empty line self._historyIndex = 0 - self._delete_line.clicked.connect(self.on_delete_line_clicked) - - def on_delete_line_clicked(self): - self._edit.clear() - def open_processing(self, detail=None): """ Open processing and disable using shell commands again until all commands are finished @@ -284,7 +267,6 @@ class FCShell(TermWidget): self.app = app self.tcl_commands_storage = {} - self.tcl = None self.init_tcl() @@ -363,11 +345,11 @@ class FCShell(TermWidget): def is_command_complete(self, text): - # def skipQuotes(txt): - # quote = txt[0] - # text_val = txt[1:] - # endIndex = str(text_val).index(quote) - # return text[endIndex:] + def skipQuotes(txt): + quote = txt[0] + text_val = txt[1:] + endIndex = str(text_val).index(quote) + return text[endIndex:] # I'm disabling this because I need to be able to load paths that have spaces by # enclosing them in quotes --- Marius Stanciu @@ -389,10 +371,10 @@ class FCShell(TermWidget): Handles input from the shell. See FlatCAMApp.setup_shell for shell commands. Also handles execution in separated threads - :param text: FlatCAM TclCommand with parameters - :param no_echo: If True it will not try to print to the Shell because most likely the shell is hidden and it - will create crashes of the _Expandable_Edit widget - :return: output if there was any + :param text: FlatCAM TclCommand with parameters + :param no_echo: If True it will not try to print to the Shell because most likely the shell is hidden and it + will create crashes of the _Expandable_Edit widget + :return: output if there was any """ self.app.defaults.report_usage('exec_command') @@ -422,11 +404,12 @@ class FCShell(TermWidget): self.append_output(result + '\n') except tk.TclError as e: + # This will display more precise answer if something in TCL shell fails result = self.tcl.eval("set errorInfo") - self.app.log.error("Exception on Tcl Command execution: %s" % (result + '\n')) + self.app.log.error("Exec command Exception: %s" % (result + '\n')) if no_echo is False: - self.append_error('ERROR Report: ' + result + '\n') + self.append_error('ERROR: ' + result + '\n') # Show error in console and just return or in test raise exception if reraise: raise e diff --git a/AppTools/ToolSolderPaste.py b/flatcamTools/ToolSolderPaste.py similarity index 96% rename from AppTools/ToolSolderPaste.py rename to flatcamTools/ToolSolderPaste.py index 85bf636b..93cb4744 100644 --- a/AppTools/ToolSolderPaste.py +++ b/flatcamTools/ToolSolderPaste.py @@ -5,13 +5,13 @@ # MIT Licence # # ########################################################## -from AppTool import AppTool -from Common import LoudDict -from AppGUI.GUIElements import FCComboBox, FCEntry, FCTable, \ +from FlatCAMTool import FlatCAMTool +from FlatCAMCommon import LoudDict +from flatcamGUI.GUIElements import FCComboBox, FCEntry, FCTable, \ FCInputDialog, FCDoubleSpinner, FCSpinner, FCFileSaveDialog -from App_Main import log +from FlatCAMApp import log from camlib import distance -from AppEditors.FlatCAMTextEditor import TextEditor +from flatcamEditors.FlatCAMTextEditor import TextEditor from PyQt5 import QtGui, QtCore, QtWidgets from PyQt5.QtCore import Qt @@ -25,7 +25,7 @@ import traceback from io import StringIO import gettext -import AppTranslation as fcTranslate +import FlatCAMTranslation as fcTranslate import builtins fcTranslate.apply_language('strings') @@ -33,11 +33,11 @@ if '_' not in builtins.__dict__: _ = gettext.gettext -class SolderPaste(AppTool): +class SolderPaste(FlatCAMTool): toolName = _("Solder Paste Tool") def __init__(self, app): - AppTool.__init__(self, app) + FlatCAMTool.__init__(self, app) # Number of decimals to be used for tools/nozzles in this FlatCAM Tool self.decimals = self.app.decimals @@ -64,16 +64,11 @@ class SolderPaste(AppTool): self.obj_combo.is_last = True self.obj_combo.obj_type = "Gerber" - self.object_label = QtWidgets.QLabel('%s:'% _("GERBER")) - self.object_label.setToolTip(_("Gerber Solderpaste object.") + self.object_label = QtWidgets.QLabel("Gerber: ") + self.object_label.setToolTip( + _("Gerber Solder paste object. ") ) - obj_form_layout.addRow(self.object_label) - obj_form_layout.addRow(self.obj_combo) - - separator_line = QtWidgets.QFrame() - separator_line.setFrameShape(QtWidgets.QFrame.HLine) - separator_line.setFrameShadow(QtWidgets.QFrame.Sunken) - obj_form_layout.addRow(separator_line) + obj_form_layout.addRow(self.object_label, self.obj_combo) # ### Tools ## ## self.tools_table_label = QtWidgets.QLabel('%s' % _('Tools Table')) @@ -136,13 +131,22 @@ class SolderPaste(AppTool): "by first selecting a row(s) in the Tool Table.") ) + self.soldergeo_btn = QtWidgets.QPushButton(_("Generate Geo")) + self.soldergeo_btn.setToolTip( + _("Generate solder paste dispensing geometry.") + ) + self.soldergeo_btn.setStyleSheet(""" + QPushButton + { + font-weight: bold; + } + """) + grid0.addWidget(self.addtool_btn, 0, 0) + # grid2.addWidget(self.copytool_btn, 0, 1) grid0.addWidget(self.deltool_btn, 0, 2) - separator_line = QtWidgets.QFrame() - separator_line.setFrameShape(QtWidgets.QFrame.HLine) - separator_line.setFrameShadow(QtWidgets.QFrame.Sunken) - grid0.addWidget(separator_line, 1, 0, 1, 3) + self.layout.addSpacing(10) # ## Buttons grid0_1 = QtWidgets.QGridLayout() @@ -369,18 +373,6 @@ class SolderPaste(AppTool): _("Second step is to create a solder paste dispensing\n" "geometry out of an Solder Paste Mask Gerber file.") ) - - self.soldergeo_btn = QtWidgets.QPushButton(_("Generate Geo")) - self.soldergeo_btn.setToolTip( - _("Generate solder paste dispensing geometry.") - ) - self.soldergeo_btn.setStyleSheet(""" - QPushButton - { - font-weight: bold; - } - """) - grid2.addWidget(step2_lbl, 0, 0) grid2.addWidget(self.soldergeo_btn, 0, 2) @@ -554,14 +546,14 @@ class SolderPaste(AppTool): if self.app.ui.splitter.sizes()[0] == 0: self.app.ui.splitter.setSizes([1, 1]) - AppTool.run(self) + FlatCAMTool.run(self) self.set_tool_ui() self.build_ui() self.app.ui.notebook.setTabText(2, _("SolderPaste Tool")) def install(self, icon=None, separator=None, **kwargs): - AppTool.install(self, icon, separator, shortcut='Alt+K', **kwargs) + FlatCAMTool.install(self, icon, separator, shortcut='Alt+K', **kwargs) def on_add_tool_by_key(self): tool_add_popup = FCInputDialog(title='%s...' % _("New Tool"), @@ -1265,7 +1257,7 @@ class SolderPaste(AppTool): if use_thread: def job_thread(app_obj): try: - app_obj.app_obj.new_object("geometry", name + "_solderpaste", geo_init) + app_obj.new_object("geometry", name + "_solderpaste", geo_init) except Exception as e: log.error("SolderPaste.on_create_geo() --> %s" % str(e)) proc.done() @@ -1279,7 +1271,7 @@ class SolderPaste(AppTool): # Background self.app.worker_task.emit({'fcn': job_thread, 'params': [self.app]}) else: - self.app.app_obj.new_object("geometry", name + "_solderpaste", geo_init) + self.app.new_object("geometry", name + "_solderpaste", geo_init) def on_create_gcode_click(self, signal): """ @@ -1339,7 +1331,7 @@ class SolderPaste(AppTool): self.app.inform.emit(msg) return - # Object initialization function for app.app_obj.new_object() + # Object initialization function for app.new_object() # RUNNING ON SEPARATE THREAD! def job_init(job_obj): assert job_obj.kind == 'cncjob', \ @@ -1396,7 +1388,7 @@ class SolderPaste(AppTool): # To be run in separate thread def job_thread(app_obj): with self.app.proc_container.new("Generating CNC Code"): - if app_obj.app_obj.new_object("cncjob", name, job_init) != 'fail': + if app_obj.new_object("cncjob", name, job_init) != 'fail': app_obj.inform.emit('[success] [success] %s: %s' % (_("ToolSolderPaste CNCjob created"), name)) # Create a promise with the name @@ -1404,7 +1396,7 @@ class SolderPaste(AppTool): # Send to worker self.app.worker_task.emit({'fcn': job_thread, 'params': [self.app]}) else: - self.app.app_obj.new_object("cncjob", name, job_init) + self.app.new_object("cncjob", name, job_init) def on_view_gcode(self): """ @@ -1501,14 +1493,14 @@ class SolderPaste(AppTool): filename, _f = FCFileSaveDialog.get_saved_filename( caption=_("Export GCode ..."), directory=dir_file_to_save, - ext_filter=_filter_ + filter=_filter_ ) except TypeError: - filename, _f = FCFileSaveDialog.get_saved_filename( - caption=_("Export Code ..."), ext_filter=_filter_) + filename, _f = FCFileSaveDialog.get_saved_filename(caption=_("Export Machine Code ..."), filter=_filter_) if filename == '': - self.app.inform.emit('[WARNING_NOTCL] %s' % _("Export cancelled ...")) + self.app.inform.emit('[WARNING_NOTCL] %s' % + _("Export Machine Code cancelled ...")) return gcode = '(G-CODE GENERATED BY FLATCAM v%s - www.flatcam.org - Version Date: %s)\n' % \ diff --git a/AppTools/ToolSub.py b/flatcamTools/ToolSub.py similarity index 77% rename from AppTools/ToolSub.py rename to flatcamTools/ToolSub.py index c2072bfd..5409fa76 100644 --- a/AppTools/ToolSub.py +++ b/flatcamTools/ToolSub.py @@ -7,8 +7,8 @@ from PyQt5 import QtWidgets, QtCore -from AppTool import AppTool -from AppGUI.GUIElements import FCCheckBox, FCButton, FCComboBox +from FlatCAMTool import FlatCAMTool +from flatcamGUI.GUIElements import FCCheckBox, FCButton, FCComboBox from shapely.geometry import Polygon, MultiPolygon, MultiLineString, LineString from shapely.ops import cascaded_union @@ -18,7 +18,7 @@ from copy import deepcopy import time import logging import gettext -import AppTranslation as fcTranslate +import FlatCAMTranslation as fcTranslate import builtins fcTranslate.apply_language('strings') @@ -28,22 +28,17 @@ if '_' not in builtins.__dict__: log = logging.getLogger('base') -class ToolSub(AppTool): +class ToolSub(FlatCAMTool): job_finished = QtCore.pyqtSignal(bool) - # the string param is the outname and the list is a list of tuples each being formed from the new_aperture_geometry - # list and the second element is also a list with possible geometry that needs to be added to the '0' aperture - # meaning geometry that was deformed - aperture_processing_finished = QtCore.pyqtSignal(str, list) - toolName = _("Subtract Tool") def __init__(self, app): self.app = app self.decimals = self.app.decimals - AppTool.__init__(self, app) + FlatCAMTool.__init__(self, app) self.tools_frame = QtWidgets.QFrame() self.tools_frame.setContentsMargins(0, 0, 0, 0) @@ -67,7 +62,7 @@ class ToolSub(AppTool): form_layout = QtWidgets.QFormLayout() self.tools_box.addLayout(form_layout) - self.gerber_title = QtWidgets.QLabel("%s" % _("GERBER")) + self.gerber_title = QtWidgets.QLabel("%s" % _("Gerber Objects")) form_layout.addRow(self.gerber_title) # Target Gerber Object @@ -122,7 +117,7 @@ class ToolSub(AppTool): form_geo_layout = QtWidgets.QFormLayout() self.tools_box.addLayout(form_geo_layout) - self.geo_title = QtWidgets.QLabel("%s" % _("GEOMETRY")) + self.geo_title = QtWidgets.QLabel("%s" % _("Geometry Objects")) form_geo_layout.addRow(self.geo_title) # Target Geometry Object @@ -223,18 +218,22 @@ class ToolSub(AppTool): self.sub_union = [] - # multiprocessing - self.pool = self.app.pool - self.results = [] - + try: + self.intersect_btn.clicked.disconnect(self.on_grb_intersection_click) + except (TypeError, AttributeError): + pass self.intersect_btn.clicked.connect(self.on_grb_intersection_click) + + try: + self.intersect_geo_btn.clicked.disconnect() + except (TypeError, AttributeError): + pass self.intersect_geo_btn.clicked.connect(self.on_geo_intersection_click) self.job_finished.connect(self.on_job_finished) - self.aperture_processing_finished.connect(self.new_gerber_object) self.reset_button.clicked.connect(self.set_tool_ui) def install(self, icon=None, separator=None, **kwargs): - AppTool.install(self, icon, separator, shortcut='Alt+W', **kwargs) + FlatCAMTool.install(self, icon, separator, shortcut='Alt+W', **kwargs) def run(self, toggle=True): self.app.defaults.report_usage("ToolSub()") @@ -258,7 +257,7 @@ class ToolSub(AppTool): if self.app.ui.splitter.sizes()[0] == 0: self.app.ui.splitter.setSizes([1, 1]) - AppTool.run(self) + FlatCAMTool.run(self) self.set_tool_ui() self.app.ui.notebook.setTabText(2, _("Sub Tool")) @@ -311,141 +310,138 @@ class ToolSub(AppTool): # crate the new_apertures dict structure for apid in self.target_grb_obj.apertures: self.new_apertures[apid] = {} - for key in self.target_grb_obj.apertures[apid]: - if key == 'geometry': - self.new_apertures[apid]['geometry'] = [] - else: - self.new_apertures[apid][key] = self.target_grb_obj.apertures[apid][key] + self.new_apertures[apid]['type'] = 'C' + self.new_apertures[apid]['size'] = self.target_grb_obj.apertures[apid]['size'] + self.new_apertures[apid]['geometry'] = [] - def worker_job(app_obj): - for apid in self.target_grb_obj.apertures: - target_geo = self.target_grb_obj.apertures[apid]['geometry'] + geo_solid_union_list = [] + geo_follow_union_list = [] + geo_clear_union_list = [] - sub_geometry = {} - sub_geometry['solid'] = [] - sub_geometry['clear'] = [] - for s_apid in self.sub_grb_obj.apertures: - for s_el in self.sub_grb_obj.apertures[s_apid]['geometry']: - if "solid" in s_el: - sub_geometry['solid'].append(s_el["solid"]) - if "clear" in s_el: - sub_geometry['clear'].append(s_el["clear"]) + for apid1 in self.sub_grb_obj.apertures: + if 'geometry' in self.sub_grb_obj.apertures[apid1]: + for elem in self.sub_grb_obj.apertures[apid1]['geometry']: + if 'solid' in elem: + geo_solid_union_list.append(elem['solid']) + if 'follow' in elem: + geo_follow_union_list.append(elem['follow']) + if 'clear' in elem: + geo_clear_union_list.append(elem['clear']) - self.results.append( - self.pool.apply_async(self.aperture_intersection, args=(apid, target_geo, sub_geometry)) - ) + self.app.inform.emit('%s' % _("Processing geometry from Subtractor Gerber object.")) + self.sub_solid_union = cascaded_union(geo_solid_union_list) + self.sub_follow_union = cascaded_union(geo_follow_union_list) + self.sub_clear_union = cascaded_union(geo_clear_union_list) - output = [] - for p in self.results: - res = p.get() - output.append(res) - app_obj.inform.emit('%s: %s...' % (_("Finished parsing geometry for aperture"), str(res[0]))) + # add the promises + for apid in self.target_grb_obj.apertures: + self.promises.append(apid) - app_obj.inform.emit("%s" % _("Subtraction aperture processing finished.")) + # start the QTimer to check for promises with 0.5 second period check + self.periodic_check(500, reset=True) - outname = self.target_gerber_combo.currentText() + '_sub' - self.aperture_processing_finished.emit(outname, output) + for apid in self.target_grb_obj.apertures: + geo = self.target_grb_obj.apertures[apid]['geometry'] + self.app.worker_task.emit({'fcn': self.aperture_intersection, 'params': [apid, geo]}) - self.app.worker_task.emit({'fcn': worker_job, 'params': [self.app]}) + def aperture_intersection(self, apid, geo): + new_geometry = [] - @staticmethod - def aperture_intersection(apid, target_geo, sub_geometry): - """ + log.debug("Working on promise: %s" % str(apid)) - :param apid: the aperture id for which we process geometry - :type apid: str - :param target_geo: the geometry list that holds the geometry from which we subtract - :type target_geo: list - :param sub_geometry: the apertures dict that holds all the geometry that is subtracted - :type sub_geometry: dict - :return: (apid, unaffected_geometry lsit, affected_geometry list) - :rtype: tuple - """ + with self.app.proc_container.new('%s: %s...' % (_("Parsing geometry for aperture"), str(apid))): - unafected_geo = [] - affected_geo = [] + for geo_el in geo: + new_el = {} - is_modified = False - for geo_el in target_geo: - new_geo_el = {} - if "solid" in geo_el: - for sub_solid_geo in sub_geometry["solid"]: - if geo_el["solid"].intersects(sub_solid_geo): - new_geo = geo_el["solid"].difference(sub_solid_geo) - if not new_geo.is_empty: - geo_el["solid"] = new_geo - is_modified = True + if 'solid' in geo_el: + work_geo = geo_el['solid'] + if self.sub_solid_union: + if work_geo.intersects(self.sub_solid_union): + new_geo = work_geo.difference(self.sub_solid_union) + new_geo = new_geo.buffer(0) + if new_geo: + if not new_geo.is_empty: + new_el['solid'] = new_geo + else: + new_el['solid'] = work_geo + else: + new_el['solid'] = work_geo + else: + new_el['solid'] = work_geo + else: + new_el['solid'] = work_geo - new_geo_el["solid"] = deepcopy(geo_el["solid"]) + if 'follow' in geo_el: + work_geo = geo_el['follow'] + if self.sub_follow_union: + if work_geo.intersects(self.sub_follow_union): + new_geo = work_geo.difference(self.sub_follow_union) + new_geo = new_geo.buffer(0) + if new_geo: + if not new_geo.is_empty: + new_el['follow'] = new_geo + else: + new_el['follow'] = work_geo + else: + new_el['follow'] = work_geo + else: + new_el['follow'] = work_geo + else: + new_el['follow'] = work_geo - if "clear" in geo_el: - for sub_solid_geo in sub_geometry["clear"]: - if geo_el["clear"].intersects(sub_solid_geo): - new_geo = geo_el["clear"].difference(sub_solid_geo) - if not new_geo.is_empty: - geo_el["clear"] = new_geo - is_modified = True + if 'clear' in geo_el: + work_geo = geo_el['clear'] + if self.sub_clear_union: + if work_geo.intersects(self.sub_clear_union): + new_geo = work_geo.difference(self.sub_clear_union) + new_geo = new_geo.buffer(0) + if new_geo: + if not new_geo.is_empty: + new_el['clear'] = new_geo + else: + new_el['clear'] = work_geo + else: + new_el['clear'] = work_geo + else: + new_el['clear'] = work_geo + else: + new_el['clear'] = work_geo - new_geo_el["clear"] = deepcopy(geo_el["clear"]) + new_geometry.append(deepcopy(new_el)) - if is_modified: - affected_geo.append(new_geo_el) - else: - unafected_geo.append(geo_el) + self.app.inform.emit('%s: %s...' % (_("Finished parsing geometry for aperture"), str(apid))) - return apid, unafected_geo, affected_geo + if new_geometry: + while not self.new_apertures[apid]['geometry']: + self.new_apertures[apid]['geometry'] = deepcopy(new_geometry) + time.sleep(0.5) - def new_gerber_object(self, outname, output): - """ + while True: + # removal from list is done in a multithreaded way therefore not always the removal can be done + # so we keep trying until it's done + if apid not in self.promises: + break - :param outname: name for the new Gerber object - :type outname: str - :param output: a list made of tuples in format: - (aperture id in the target Gerber, unaffected_geometry list, affected_geometry list) - :type output: list - :return: - :rtype: - """ + self.promises.remove(apid) + time.sleep(0.5) + + log.debug("Promise fulfilled: %s" % str(apid)) + + def new_gerber_object(self, outname): def obj_init(grb_obj, app_obj): grb_obj.apertures = deepcopy(self.new_apertures) - if '0' not in grb_obj.apertures: - grb_obj.apertures['0'] = {} - grb_obj.apertures['0']['type'] = 'REG' - grb_obj.apertures['0']['size'] = 0.0 - grb_obj.apertures['0']['geometry'] = [] - - for apid, apid_val in list(grb_obj.apertures.items()): - for t in output: - new_apid = t[0] - if apid == new_apid: - surving_geo = t[1] - modified_geo = t[2] - if surving_geo: - apid_val['geometry'] = deepcopy(surving_geo) - else: - grb_obj.apertures.pop(apid, None) - - if modified_geo: - grb_obj.apertures['0']['geometry'] += modified_geo - - # delete the '0' aperture if it has no geometry - if not grb_obj.apertures['0']['geometry']: - grb_obj.apertures.pop('0', None) - poly_buff = [] follow_buff = [] - for ap in grb_obj.apertures: - for elem in grb_obj.apertures[ap]['geometry']: - if 'solid' in elem: - solid_geo = elem['solid'] - poly_buff.append(solid_geo) - if 'follow' in elem: - follow_buff.append(elem['follow']) + for ap in self.new_apertures: + for elem in self.new_apertures[ap]['geometry']: + poly_buff.append(elem['solid']) + follow_buff.append(elem['follow']) - work_poly_buff = MultiPolygon(poly_buff) + work_poly_buff = cascaded_union(poly_buff) try: poly_buff = work_poly_buff.buffer(0.0000001) except ValueError: @@ -458,22 +454,25 @@ class ToolSub(AppTool): grb_obj.solid_geometry = deepcopy(poly_buff) grb_obj.follow_geometry = deepcopy(follow_buff) - grb_obj.source_file = self.app.export_gerber(obj_name=outname, filename=None, - local_use=grb_obj, use_thread=False) with self.app.proc_container.new(_("Generating new object ...")): - ret = self.app.app_obj.new_object('gerber', outname, obj_init, autoselected=False) + ret = self.app.new_object('gerber', outname, obj_init, autoselected=False) if ret == 'fail': - self.app.inform.emit('[ERROR_NOTCL] %s' % _('Generating new object failed.')) + self.app.inform.emit('[ERROR_NOTCL] %s' % + _('Generating new object failed.')) return # GUI feedback - self.app.inform.emit('[success] %s: %s' % (_("Created"), outname)) + self.app.inform.emit('[success] %s: %s' % + (_("Created"), outname)) # cleanup self.new_apertures.clear() self.new_solid_geometry[:] = [] - self.results = [] + try: + self.sub_union[:] = [] + except TypeError: + self.sub_union = [] def on_geo_intersection_click(self): # reset previous values @@ -660,7 +659,7 @@ class ToolSub(AppTool): geo_obj.multigeo = False with self.app.proc_container.new(_("Generating new object ...")): - ret = self.app.app_obj.new_object('geometry', outname, obj_init, autoselected=False) + ret = self.app.new_object('geometry', outname, obj_init, autoselected=False) if ret == 'fail': self.app.inform.emit('[ERROR_NOTCL] %s' % _('Generating new object failed.')) @@ -740,9 +739,11 @@ class ToolSub(AppTool): outname = self.target_geo_combo.currentText() + '_sub' # intersection jobs finished, start the creation of solid_geometry - self.app.worker_task.emit({'fcn': self.new_geo_object, 'params': [outname]}) + self.app.worker_task.emit({'fcn': self.new_geo_object, + 'params': [outname]}) else: - self.app.inform.emit('[ERROR_NOTCL] %s' % _('Generating new object failed.')) + self.app.inform.emit('[ERROR_NOTCL] %s' % + _('Generating new object failed.')) def reset_fields(self): self.target_gerber_combo.setRootModelIndex(self.app.collection.index(0, 0, QtCore.QModelIndex())) diff --git a/AppTools/ToolTransform.py b/flatcamTools/ToolTransform.py similarity index 98% rename from AppTools/ToolTransform.py rename to flatcamTools/ToolTransform.py index 41e6ff91..25a9b5f6 100644 --- a/AppTools/ToolTransform.py +++ b/flatcamTools/ToolTransform.py @@ -6,11 +6,11 @@ # ########################################################## from PyQt5 import QtWidgets -from AppTool import AppTool -from AppGUI.GUIElements import FCDoubleSpinner, FCCheckBox, FCButton, OptionalInputSection, FCEntry +from FlatCAMTool import FlatCAMTool +from flatcamGUI.GUIElements import FCDoubleSpinner, FCCheckBox, FCButton, OptionalInputSection, FCEntry import gettext -import AppTranslation as fcTranslate +import FlatCAMTranslation as fcTranslate import builtins fcTranslate.apply_language('strings') @@ -18,7 +18,7 @@ if '_' not in builtins.__dict__: _ = gettext.gettext -class ToolTransform(AppTool): +class ToolTransform(FlatCAMTool): toolName = _("Object Transform") rotateName = _("Rotate") @@ -29,7 +29,7 @@ class ToolTransform(AppTool): bufferName = _("Buffer") def __init__(self, app): - AppTool.__init__(self, app) + FlatCAMTool.__init__(self, app) self.decimals = self.app.decimals # ## Title @@ -454,13 +454,13 @@ class ToolTransform(AppTool): if self.app.ui.splitter.sizes()[0] == 0: self.app.ui.splitter.setSizes([1, 1]) - AppTool.run(self) + FlatCAMTool.run(self) self.set_tool_ui() self.app.ui.notebook.setTabText(2, _("Transform Tool")) def install(self, icon=None, separator=None, **kwargs): - AppTool.install(self, icon, separator, shortcut='Alt+T', **kwargs) + FlatCAMTool.install(self, icon, separator, shortcut='Alt+T', **kwargs) def set_tool_ui(self): self.rotate_button.set_value(_("Rotate")) @@ -702,7 +702,7 @@ class ToolTransform(AppTool): self.app.inform.emit(_("CNCJob objects can't be rotated.")) else: sel_obj.rotate(-num, point=(px, py)) - self.app.app_obj.object_changed.emit(sel_obj) + self.app.object_changed.emit(sel_obj) # add information to the object that it was changed and how much sel_obj.options['rotate'] = num @@ -776,7 +776,7 @@ class ToolTransform(AppTool): else: sel_obj.options['mirror_x'] = True self.app.inform.emit('[success] %s...' % _('Flip on the X axis done')) - self.app.app_obj.object_changed.emit(sel_obj) + self.app.object_changed.emit(sel_obj) sel_obj.plot() except Exception as e: self.app.inform.emit('[ERROR_NOTCL] %s %s, %s.' % @@ -825,7 +825,7 @@ class ToolTransform(AppTool): sel_obj.skew(0, num, point=(xminimal, yminimal)) # add information to the object that it was changed and how much sel_obj.options['skew_y'] = num - self.app.app_obj.object_changed.emit(sel_obj) + self.app.object_changed.emit(sel_obj) sel_obj.plot() self.app.inform.emit('[success] %s %s %s...' % (_('Skew on the'), str(axis), _("axis done"))) except Exception as e: @@ -878,7 +878,7 @@ class ToolTransform(AppTool): # add information to the object that it was changed and how much sel_obj.options['scale_x'] = xfactor sel_obj.options['scale_y'] = yfactor - self.app.app_obj.object_changed.emit(sel_obj) + self.app.object_changed.emit(sel_obj) sel_obj.plot() self.app.inform.emit('[success] %s %s %s...' % (_('Scale on the'), str(axis), _('axis done'))) @@ -908,7 +908,7 @@ class ToolTransform(AppTool): sel_obj.offset((0, num)) # add information to the object that it was changed and how much sel_obj.options['offset_y'] = num - self.app.app_obj.object_changed.emit(sel_obj) + self.app.object_changed.emit(sel_obj) sel_obj.plot() self.app.inform.emit('[success] %s %s %s...' % (_('Offset on the'), str(axis), _('axis done'))) @@ -942,7 +942,7 @@ class ToolTransform(AppTool): elif sel_obj.kind.lower() == 'geometry': sel_obj.buffer(value, join, factor) - self.app.app_obj.object_changed.emit(sel_obj) + self.app.object_changed.emit(sel_obj) sel_obj.plot() self.app.inform.emit('[success] %s...' % _('Buffer done')) diff --git a/flatcamTools/__init__.py b/flatcamTools/__init__.py new file mode 100644 index 00000000..bdd7e58b --- /dev/null +++ b/flatcamTools/__init__.py @@ -0,0 +1,43 @@ +import sys + +from flatcamTools.ToolCalculators import ToolCalculator +from flatcamTools.ToolCalibration import ToolCalibration +from flatcamTools.ToolCutOut import CutOut + +from flatcamTools.ToolDblSided import DblSidedTool +from flatcamTools.ToolExtractDrills import ToolExtractDrills +from flatcamTools.ToolAlignObjects import AlignObjects + +from flatcamTools.ToolFilm import Film + +from flatcamTools.ToolImage import ToolImage + +from flatcamTools.ToolDistance import Distance +from flatcamTools.ToolDistanceMin import DistanceMin + +from flatcamTools.ToolMove import ToolMove + +from flatcamTools.ToolNCC import NonCopperClear +from flatcamTools.ToolPaint import ToolPaint + +from flatcamTools.ToolOptimal import ToolOptimal + +from flatcamTools.ToolPanelize import Panelize +from flatcamTools.ToolPcbWizard import PcbWizard +from flatcamTools.ToolPDF import ToolPDF +from flatcamTools.ToolProperties import Properties + +from flatcamTools.ToolQRCode import QRCode +from flatcamTools.ToolRulesCheck import RulesCheck + +from flatcamTools.ToolCopperThieving import ToolCopperThieving +from flatcamTools.ToolFiducials import ToolFiducials + +from flatcamTools.ToolShell import FCShell +from flatcamTools.ToolSolderPaste import SolderPaste +from flatcamTools.ToolSub import ToolSub + +from flatcamTools.ToolTransform import ToolTransform +from flatcamTools.ToolPunchGerber import ToolPunchGerber + +from flatcamTools.ToolInvertGerber import ToolInvertGerber diff --git a/locale/de/LC_MESSAGES/strings.mo b/locale/de/LC_MESSAGES/strings.mo index 3a8c5e1ca6a6e359d9eeb7e4491544519e8bf9d8..22400a33f94f282b8ecdf500a26f396aa13e0ce6 100644 GIT binary patch delta 72996 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 yFFjTZ^l$#gm=}7(BES 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%0AI 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 TJ;Qupq#b&tMx1i)&hh^MBwITQ diff --git a/locale/de/LC_MESSAGES/strings.po b/locale/de/LC_MESSAGES/strings.po index 9ff491fd..17d6af72 100644 --- a/locale/de/LC_MESSAGES/strings.po +++ b/locale/de/LC_MESSAGES/strings.po @@ -1,15 +1,15 @@ msgid "" msgstr "" "Project-Id-Version: \n" -"POT-Creation-Date: 2020-06-02 17:35+0300\n" -"PO-Revision-Date: 2020-06-02 17:35+0300\n" +"POT-Creation-Date: 2020-05-03 15:59+0300\n" +"PO-Revision-Date: 2020-05-03 16:02+0300\n" "Last-Translator: \n" "Language-Team: \n" "Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.3.1\n" +"X-Generator: Poedit 2.2.4\n" "X-Poedit-Basepath: ../../..\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Poedit-SearchPath-0: .\n" @@ -17,17115 +17,17 @@ msgstr "" "X-Poedit-SearchPathExcluded-1: doc\n" "X-Poedit-SearchPathExcluded-2: tests\n" -#: AppDatabase.py:88 -msgid "Add Geometry Tool in DB" -msgstr "Geometriewerkzeug in DB hinzufügen" - -#: AppDatabase.py:90 AppDatabase.py:1757 -msgid "" -"Add a new tool in the Tools Database.\n" -"It will be used in the Geometry UI.\n" -"You can edit it after it is added." -msgstr "" -"Fügen Sie der Werkzeugdatenbank ein neues Werkzeug hinzu\n" -"Es wird in der Geometrie-Benutzeroberfläche verwendet.\n" -"Danach können Sie es modifizieren." - -#: AppDatabase.py:104 AppDatabase.py:1771 -msgid "Delete Tool from DB" -msgstr "Werkzeug aus DB löschen" - -#: AppDatabase.py:106 AppDatabase.py:1773 -msgid "Remove a selection of tools in the Tools Database." -msgstr "Eine Auswahl von Werkzeugen aus der Werkzeugdatenbank entfernen." - -#: AppDatabase.py:110 AppDatabase.py:1777 -msgid "Export DB" -msgstr "DB exportieren" - -#: AppDatabase.py:112 AppDatabase.py:1779 -msgid "Save the Tools Database to a custom text file." -msgstr "Werkzeugdatenbank als Textdatei speichern." - -#: AppDatabase.py:116 AppDatabase.py:1783 -msgid "Import DB" -msgstr "Importieren Sie DB" - -#: AppDatabase.py:118 AppDatabase.py:1785 -msgid "Load the Tools Database information's from a custom text file." -msgstr "Werkzeugdatenbank aus einer Textdatei importieren." - -#: AppDatabase.py:122 AppDatabase.py:1795 -msgid "Transfer the Tool" -msgstr "Übertragen Sie das Werkzeug" - -#: AppDatabase.py:124 -msgid "" -"Add a new tool in the Tools Table of the\n" -"active Geometry object after selecting a tool\n" -"in the Tools Database." -msgstr "" -"Fügen Sie ein neues Werkzeug in die Werkzeugtabelle der\n" -"aktiven Geometrie hinzu, nachdem Sie das Werkzeug in\n" -"der Werkzeugdatenbank ausgewählt haben." - -#: AppDatabase.py:130 AppDatabase.py:1810 AppGUI/MainGUI.py:1388 -#: AppGUI/preferences/PreferencesUIManager.py:878 App_Main.py:2225 -#: App_Main.py:3160 App_Main.py:4037 App_Main.py:4307 App_Main.py:6417 -msgid "Cancel" -msgstr "Abbrechen" - -#: AppDatabase.py:160 AppDatabase.py:835 AppDatabase.py:1106 -msgid "Tool Name" -msgstr "Werkzeugname" - -#: AppDatabase.py:161 AppDatabase.py:837 AppDatabase.py:1119 -#: AppEditors/FlatCAMExcEditor.py:1604 AppGUI/ObjectUI.py:1226 -#: AppGUI/ObjectUI.py:1480 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:132 -#: AppTools/ToolIsolation.py:260 AppTools/ToolNCC.py:278 -#: AppTools/ToolNCC.py:287 AppTools/ToolPaint.py:260 -msgid "Tool Dia" -msgstr "Werkzeugdurchm" - -#: AppDatabase.py:162 AppDatabase.py:839 AppDatabase.py:1300 -#: AppGUI/ObjectUI.py:1455 -msgid "Tool Offset" -msgstr "Werkzeugversatz" - -#: AppDatabase.py:163 AppDatabase.py:841 AppDatabase.py:1317 -msgid "Custom Offset" -msgstr "Selbstdefinierter Werkzeugversatz" - -#: AppDatabase.py:164 AppDatabase.py:843 AppDatabase.py:1284 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:70 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:53 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:62 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:72 -#: AppTools/ToolIsolation.py:199 AppTools/ToolNCC.py:213 -#: AppTools/ToolNCC.py:227 AppTools/ToolPaint.py:195 -msgid "Tool Type" -msgstr "Werkzeugtyp" - -#: AppDatabase.py:165 AppDatabase.py:845 AppDatabase.py:1132 -msgid "Tool Shape" -msgstr "Werkzeugform" - -#: AppDatabase.py:166 AppDatabase.py:848 AppDatabase.py:1148 -#: AppGUI/ObjectUI.py:679 AppGUI/ObjectUI.py:1605 AppGUI/ObjectUI.py:2266 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:93 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:49 -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:78 -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:58 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:115 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:98 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:105 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:113 -#: AppTools/ToolCalculators.py:114 AppTools/ToolCutOut.py:138 -#: AppTools/ToolIsolation.py:246 AppTools/ToolNCC.py:260 -#: AppTools/ToolNCC.py:268 AppTools/ToolPaint.py:242 -msgid "Cut Z" -msgstr "Schnitttiefe Z" - -#: AppDatabase.py:167 AppDatabase.py:850 AppDatabase.py:1162 -msgid "MultiDepth" -msgstr "Mehrfache Durchgänge" - -# Abbrev. unclear: Depth Per Pass? -# Perhaps better not translate -#: AppDatabase.py:168 AppDatabase.py:852 AppDatabase.py:1175 -msgid "DPP" -msgstr "DPP" - -#: AppDatabase.py:169 AppDatabase.py:854 AppDatabase.py:1331 -msgid "V-Dia" -msgstr "V-Durchmesser" - -#: AppDatabase.py:170 AppDatabase.py:856 AppDatabase.py:1345 -msgid "V-Angle" -msgstr "Winkel der V-Form" - -#: AppDatabase.py:171 AppDatabase.py:858 AppDatabase.py:1189 -#: AppGUI/ObjectUI.py:725 AppGUI/ObjectUI.py:1652 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:134 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:102 -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:61 -#: AppObjects/FlatCAMExcellon.py:1496 AppObjects/FlatCAMGeometry.py:1671 -#: AppTools/ToolCalibration.py:74 -msgid "Travel Z" -msgstr "Bewegungshöhe Z (Travel)" - -# I think this is FeedRate XY -#: AppDatabase.py:172 AppDatabase.py:860 -msgid "FR" -msgstr "Vorschub (XY)" - -#: AppDatabase.py:173 AppDatabase.py:862 -msgid "FR Z" -msgstr "Vorschub (Z)" - -#: AppDatabase.py:174 AppDatabase.py:864 AppDatabase.py:1359 -msgid "FR Rapids" -msgstr "Vorschub ohne Last" - -#: AppDatabase.py:175 AppDatabase.py:866 AppDatabase.py:1232 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:222 -msgid "Spindle Speed" -msgstr "Drehgeschwindigkeit" - -#: AppDatabase.py:176 AppDatabase.py:868 AppDatabase.py:1247 -#: AppGUI/ObjectUI.py:843 AppGUI/ObjectUI.py:1759 -msgid "Dwell" -msgstr "Warten zum Beschleunigen" - -#: AppDatabase.py:177 AppDatabase.py:870 AppDatabase.py:1260 -msgid "Dwelltime" -msgstr "Wartezeit zum Beschleunigen" - -#: AppDatabase.py:178 AppDatabase.py:872 AppGUI/ObjectUI.py:1916 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:257 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:255 -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:237 -#: AppTools/ToolSolderPaste.py:331 -msgid "Preprocessor" -msgstr "Postprozessor" - -#: AppDatabase.py:179 AppDatabase.py:874 AppDatabase.py:1375 -msgid "ExtraCut" -msgstr "Zusätzlicher Schnitt" - -#: AppDatabase.py:180 AppDatabase.py:876 AppDatabase.py:1390 -msgid "E-Cut Length" -msgstr "Extra Schnittlänge" - -#: AppDatabase.py:181 AppDatabase.py:878 -msgid "Toolchange" -msgstr "Werkzeugwechsel" - -#: AppDatabase.py:182 AppDatabase.py:880 -msgid "Toolchange XY" -msgstr "Werkzeugwechsel XY" - -#: AppDatabase.py:183 AppDatabase.py:882 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:160 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:132 -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:98 -#: AppTools/ToolCalibration.py:111 -msgid "Toolchange Z" -msgstr "Werkzeugwechsel Z" - -#: AppDatabase.py:184 AppDatabase.py:884 AppGUI/ObjectUI.py:972 -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:69 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:56 -msgid "Start Z" -msgstr "Start Z" - -#: AppDatabase.py:185 AppDatabase.py:887 -msgid "End Z" -msgstr "Ende Z" - -#: AppDatabase.py:189 -msgid "Tool Index." -msgstr "Werkzeugverzeichnis." - -#: AppDatabase.py:191 AppDatabase.py:1108 -msgid "" -"Tool name.\n" -"This is not used in the app, it's function\n" -"is to serve as a note for the user." -msgstr "" -"Werkzeugname\n" -"Wird in der App nicht verwendet,\n" -"sondern dient als Kommentar für den Nutzer." - -#: AppDatabase.py:195 AppDatabase.py:1121 -msgid "Tool Diameter." -msgstr "Werkzeugdurchmesser." - -#: AppDatabase.py:197 AppDatabase.py:1302 -msgid "" -"Tool Offset.\n" -"Can be of a few types:\n" -"Path = zero offset\n" -"In = offset inside by half of tool diameter\n" -"Out = offset outside by half of tool diameter\n" -"Custom = custom offset using the Custom Offset value" -msgstr "" -"Werkzeug Offest.\n" -"Folgende Typen sind erlaubt:\n" -"Path: kein Offset\n" -"In: Offset einen halben Werkzeugdurchmesser innerhalb.\n" -"Out: Offset einen halben Werkzeugdurchmesser ausserhalb\n" -"Custom: selbstdefinierter Wert im Feld \"Selbstdefinierter Offset\"" - -#: AppDatabase.py:204 AppDatabase.py:1319 -msgid "" -"Custom Offset.\n" -"A value to be used as offset from the current path." -msgstr "" -"Selbstdefinierter Offset.\n" -"Ein Wert der als Offset zum aktellen Pfad hinzugefügt wird." - -#: AppDatabase.py:207 AppDatabase.py:1286 -msgid "" -"Tool Type.\n" -"Can be:\n" -"Iso = isolation cut\n" -"Rough = rough cut, low feedrate, multiple passes\n" -"Finish = finishing cut, high feedrate" -msgstr "" -"Werkzeugart.\n" -"Erlaubt sind:\n" -"Iso: Isolationsschnitte\n" -"Rough: Roughen, um viel Material abzutragen, geringer Vorschub, viele " -"Durchgänge\n" -"Finish: Finishing, hoher Vorschub" - -#: AppDatabase.py:213 AppDatabase.py:1134 -msgid "" -"Tool Shape. \n" -"Can be:\n" -"C1 ... C4 = circular tool with x flutes\n" -"B = ball tip milling tool\n" -"V = v-shape milling tool" -msgstr "" -"Werkzeugform.\n" -"Erlaubt sind:\n" -"C1 … C4: Runde Form mit x Schneiden\n" -"B: Kugelförmig\n" -"V: V-Förmig" - -#: AppDatabase.py:219 AppDatabase.py:1150 -msgid "" -"Cutting Depth.\n" -"The depth at which to cut into material." -msgstr "" -"Schneidtiefe.\n" -"Eindringtiefe in das Material." - -# MultiDepth is hard to translate, cause it is somewhat artificial. If you need to abbreviate perhaps "MehrfDurchg" could suffice, but stays ugly. -#: AppDatabase.py:222 AppDatabase.py:1164 -msgid "" -"Multi Depth.\n" -"Selecting this will allow cutting in multiple passes,\n" -"each pass adding a DPP parameter depth." -msgstr "" -"Mehrfache Durchgänge.\n" -"Wenn ausgewählt wird der Schnitt in mehreren Stufen\n" -"durchgeführt. Die Schnitttiefe jedes Schnittes ist in DPP angegeben." - -#: AppDatabase.py:226 AppDatabase.py:1177 -msgid "" -"DPP. Depth per Pass.\n" -"The value used to cut into material on each pass." -msgstr "" -"DPP: Tiefe pro Schnitt. Definiert die einzelne Schnitttiefe in mehrfachen " -"Durchgängen." - -#: AppDatabase.py:229 AppDatabase.py:1333 -msgid "" -"V-Dia.\n" -"Diameter of the tip for V-Shape Tools." -msgstr "" -"V-Durchmesser.\n" -"Durchmesser der Spitze eines V-Förmigen Werkzeugs." - -# Typo in english? V-Angle, missing n? -#: AppDatabase.py:232 AppDatabase.py:1347 -msgid "" -"V-Agle.\n" -"Angle at the tip for the V-Shape Tools." -msgstr "" -"V-Winkel.\n" -"Öffnungswinkel an der Spitze eine V-Förmigen Werkzeugs." - -#: AppDatabase.py:235 AppDatabase.py:1191 -msgid "" -"Clearance Height.\n" -"Height at which the milling bit will travel between cuts,\n" -"above the surface of the material, avoiding all fixtures." -msgstr "" -"Freilauf Höhe.\n" -"Die Höhe in der das Fräswerkzeug sich zwischen den Schnitten \n" -"frei bewegen kann ohne auf Hindernisse zu stossen." - -#: AppDatabase.py:239 -msgid "" -"FR. Feedrate\n" -"The speed on XY plane used while cutting into material." -msgstr "" -"FR: Feedrate\n" -"Geschwindkeit beim fräsen. Angegeben in cm pro Minute." - -#: AppDatabase.py:242 -msgid "" -"FR Z. Feedrate Z\n" -"The speed on Z plane." -msgstr "" -"FR Z: Feedrate Z:\n" -"Geschwindigkeit beim Fräsen in Z-Richtung." - -#: AppDatabase.py:245 AppDatabase.py:1361 -msgid "" -"FR Rapids. Feedrate Rapids\n" -"Speed used while moving as fast as possible.\n" -"This is used only by some devices that can't use\n" -"the G0 g-code command. Mostly 3D printers." -msgstr "" -"FR Rapids: Feedrate ohne Last\n" -"Geschwindigkeit die ohne Last gefahren werden kann.\n" -"Wird benutzt bei Geräten die das G0 Kommando nicht \n" -"unterstützen (oft 3D Drucker)." - -#: AppDatabase.py:250 AppDatabase.py:1234 -msgid "" -"Spindle Speed.\n" -"If it's left empty it will not be used.\n" -"The speed of the spindle in RPM." -msgstr "" -"Drehzahl.\n" -"Drehzahl des Fräsmotors in U/min.\n" -"Wird nicht benutzt, wenn leer." - -#: AppDatabase.py:254 AppDatabase.py:1249 -msgid "" -"Dwell.\n" -"Check this if a delay is needed to allow\n" -"the spindle motor to reach it's set speed." -msgstr "" -"Verweilen.\n" -"Überprüfen Sie dies, wenn eine Verzögerung erforderlich ist\n" -"Der Spindelmotor erreicht die eingestellte Drehzahl." - -#: AppDatabase.py:258 AppDatabase.py:1262 -msgid "" -"Dwell Time.\n" -"A delay used to allow the motor spindle reach it's set speed." -msgstr "" -"Verweilzeit.\n" -"Eine Verzögerung, mit der die Motorspindel ihre eingestellte Drehzahl " -"erreicht." - -#: AppDatabase.py:261 -msgid "" -"Preprocessor.\n" -"A selection of files that will alter the generated G-code\n" -"to fit for a number of use cases." -msgstr "" -"Präprozessor.\n" -"Diese Dateien werden den erzeugten G-Code modifizieren\n" -"um eine große Anzahl Anwendungsmöglichkeiten zu unterstützen." - -#: AppDatabase.py:265 AppDatabase.py:1377 -msgid "" -"Extra Cut.\n" -"If checked, after a isolation is finished an extra cut\n" -"will be added where the start and end of isolation meet\n" -"such as that this point is covered by this extra cut to\n" -"ensure a complete isolation." -msgstr "" -"Zusatzschnitt.\n" -"Wenn gewählt, wird nach dem Isolationsschnitt ein Zusatzschnitt\n" -"durchgeführt, um Start und Endpunkt definitiv zu verbinden und \n" -"so eine vollständige Isolation zu gewährleisten." - -#: AppDatabase.py:271 AppDatabase.py:1392 -msgid "" -"Extra Cut length.\n" -"If checked, after a isolation is finished an extra cut\n" -"will be added where the start and end of isolation meet\n" -"such as that this point is covered by this extra cut to\n" -"ensure a complete isolation. This is the length of\n" -"the extra cut." -msgstr "" -"Zusatzschnitt.\n" -"Wenn gewählt, wird nach dem Isolationsschnitt ein Zusatzschnitt\n" -"durchgeführt, um Start und Endpunkt definitiv zu verbinden und \n" -"so eine vollständige Isolation zu gewährleisten." - -#: AppDatabase.py:278 -msgid "" -"Toolchange.\n" -"It will create a toolchange event.\n" -"The kind of toolchange is determined by\n" -"the preprocessor file." -msgstr "" -"Werkzeugwechsel.\n" -"Löst ein Werkzeugwechselereignis aus.\n" -"Die Art wie der Werkzeugwechsel durchgeführt wird\n" -"hängt vom gewählten Präprozessor ab." - -#: AppDatabase.py:283 -msgid "" -"Toolchange XY.\n" -"A set of coordinates in the format (x, y).\n" -"Will determine the cartesian position of the point\n" -"where the tool change event take place." -msgstr "" -"Werkzeugwechsel XY\n" -"Ein Satz von Koordinaten im Format (x,y).\n" -"An der Position dieses Punktes wird ein \n" -"Werkzeugwechselereignis ausgelöst." - -# Is this really the height of where a toolchange event takes place or is it the position of where to go to for being able to change the tool? -#: AppDatabase.py:288 -msgid "" -"Toolchange Z.\n" -"The position on Z plane where the tool change event take place." -msgstr "" -"Werkzeugwechsel Z.\n" -"Die Position in der Z Ebene an der ein Werkzeugwechselereignis ausgelöst " -"wird." - -#: AppDatabase.py:291 -msgid "" -"Start Z.\n" -"If it's left empty it will not be used.\n" -"A position on Z plane to move immediately after job start." -msgstr "" -"Start Z.\n" -"Nicht benutzt wenn leer.\n" -"Die Z-Position die zum Start angefahren wird." - -#: AppDatabase.py:295 -msgid "" -"End Z.\n" -"A position on Z plane to move immediately after job stop." -msgstr "" -"End Z.\n" -"Die Z-Position die bei Beendigung des Jobs angefahren wird." - -#: AppDatabase.py:307 AppDatabase.py:684 AppDatabase.py:718 AppDatabase.py:2033 -#: AppDatabase.py:2298 AppDatabase.py:2332 -msgid "Could not load Tools DB file." -msgstr "Werkzeugdatenbank konnte nicht geladen werden." - -#: AppDatabase.py:315 AppDatabase.py:726 AppDatabase.py:2041 -#: AppDatabase.py:2340 -msgid "Failed to parse Tools DB file." -msgstr "Formatfehler beim Einlesen der Werkzeugdatenbank." - -#: AppDatabase.py:318 AppDatabase.py:729 AppDatabase.py:2044 -#: AppDatabase.py:2343 -msgid "Loaded Tools DB from" -msgstr "Geladene Werkzeugdatenbank von" - -#: AppDatabase.py:324 AppDatabase.py:1958 -msgid "Add to DB" -msgstr "Hinzufügen" - -#: AppDatabase.py:326 AppDatabase.py:1961 -msgid "Copy from DB" -msgstr "Von Datenbank kopieren" - -#: AppDatabase.py:328 AppDatabase.py:1964 -msgid "Delete from DB" -msgstr "Aus Datenbank löschen" - -#: AppDatabase.py:605 AppDatabase.py:2198 -msgid "Tool added to DB." -msgstr "Werkzeug wurde zur Werkzeugdatenbank hinzugefügt." - -#: AppDatabase.py:626 AppDatabase.py:2231 -msgid "Tool copied from Tools DB." -msgstr "Das Werkzeug wurde aus der Werkzeugdatenbank kopiert." - -#: AppDatabase.py:644 AppDatabase.py:2258 -msgid "Tool removed from Tools DB." -msgstr "Werkzeug wurde aus der Werkzeugdatenbank gelöscht." - -#: AppDatabase.py:655 AppDatabase.py:2269 -msgid "Export Tools Database" -msgstr "Werkzeugdatenbank exportieren" - -#: AppDatabase.py:658 AppDatabase.py:2272 -msgid "Tools_Database" -msgstr "Werkzeugdatenbank" - -#: AppDatabase.py:665 AppDatabase.py:711 AppDatabase.py:2279 -#: AppDatabase.py:2325 AppEditors/FlatCAMExcEditor.py:1023 -#: AppEditors/FlatCAMExcEditor.py:1091 AppEditors/FlatCAMTextEditor.py:223 -#: AppGUI/MainGUI.py:2730 AppGUI/MainGUI.py:2952 AppGUI/MainGUI.py:3167 -#: AppObjects/ObjectCollection.py:127 AppTools/ToolFilm.py:739 -#: AppTools/ToolFilm.py:885 AppTools/ToolImage.py:247 AppTools/ToolMove.py:269 -#: AppTools/ToolPcbWizard.py:301 AppTools/ToolPcbWizard.py:324 -#: AppTools/ToolQRCode.py:800 AppTools/ToolQRCode.py:847 App_Main.py:1710 -#: App_Main.py:2451 App_Main.py:2487 App_Main.py:2534 App_Main.py:4100 -#: App_Main.py:6610 App_Main.py:6649 App_Main.py:6693 App_Main.py:6722 -#: App_Main.py:6763 App_Main.py:6788 App_Main.py:6844 App_Main.py:6880 -#: App_Main.py:6925 App_Main.py:6966 App_Main.py:7008 App_Main.py:7050 -#: App_Main.py:7091 App_Main.py:7135 App_Main.py:7195 App_Main.py:7227 -#: App_Main.py:7259 App_Main.py:7490 App_Main.py:7528 App_Main.py:7571 -#: App_Main.py:7648 App_Main.py:7703 Bookmark.py:300 Bookmark.py:342 -msgid "Cancelled." -msgstr "Abgebrochen." - -#: AppDatabase.py:673 AppDatabase.py:2287 AppEditors/FlatCAMTextEditor.py:276 -#: AppObjects/FlatCAMCNCJob.py:959 AppTools/ToolFilm.py:1016 -#: AppTools/ToolFilm.py:1197 AppTools/ToolSolderPaste.py:1542 App_Main.py:2542 -#: App_Main.py:7947 App_Main.py:7995 App_Main.py:8120 App_Main.py:8256 -#: Bookmark.py:308 -msgid "" -"Permission denied, saving not possible.\n" -"Most likely another app is holding the file open and not accessible." -msgstr "" -"Berechtigung verweigert, Speichern nicht möglich.\n" -"Wahrscheinlich hält eine andere App die Datei offen oder ist geschützt." - -#: AppDatabase.py:695 AppDatabase.py:698 AppDatabase.py:750 AppDatabase.py:2309 -#: AppDatabase.py:2312 AppDatabase.py:2365 -msgid "Failed to write Tools DB to file." -msgstr "Fehler beim Schreiben der Werkzeugdatenbank in eine Datei." - -#: AppDatabase.py:701 AppDatabase.py:2315 -msgid "Exported Tools DB to" -msgstr "Werkzeugdatenbank wurde exportiert nach" - -#: AppDatabase.py:708 AppDatabase.py:2322 -msgid "Import FlatCAM Tools DB" -msgstr "Import der FlatCAM-Werkzeugdatenbank" - -#: AppDatabase.py:740 AppDatabase.py:915 AppDatabase.py:2354 -#: AppDatabase.py:2624 AppObjects/FlatCAMGeometry.py:956 -#: AppTools/ToolIsolation.py:2909 AppTools/ToolIsolation.py:2994 -#: AppTools/ToolNCC.py:4029 AppTools/ToolNCC.py:4113 AppTools/ToolPaint.py:3578 -#: AppTools/ToolPaint.py:3663 App_Main.py:5233 App_Main.py:5267 -#: App_Main.py:5294 App_Main.py:5314 App_Main.py:5324 -msgid "Tools Database" -msgstr "Werkzeugdatenbank" - -#: AppDatabase.py:754 AppDatabase.py:2369 -msgid "Saved Tools DB." -msgstr "Datenbank der gespeicherten Werkzeuge." - -#: AppDatabase.py:901 AppDatabase.py:2611 -msgid "No Tool/row selected in the Tools Database table" -msgstr "" -"Gescheitert. Kein Werkzeug (keine Spalte) in der Werkzeugtabelle ausgewählt" - -#: AppDatabase.py:919 AppDatabase.py:2628 -msgid "Cancelled adding tool from DB." -msgstr "Hinzufügen aus der Datenbank wurde abgebrochen." - -#: AppDatabase.py:1020 -msgid "Basic Geo Parameters" -msgstr "Grundlegende Geoparameter" - -#: AppDatabase.py:1032 -msgid "Advanced Geo Parameters" -msgstr "Erweiterte Geoparameter" - -#: AppDatabase.py:1045 -msgid "NCC Parameters" -msgstr "NCC-Parameter" - -#: AppDatabase.py:1058 -msgid "Paint Parameters" -msgstr "Lackparameter" - -#: AppDatabase.py:1071 -msgid "Isolation Parameters" -msgstr "Isolationsparameter" - -#: AppDatabase.py:1204 AppGUI/ObjectUI.py:746 AppGUI/ObjectUI.py:1671 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:186 -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:148 -#: AppTools/ToolSolderPaste.py:249 -msgid "Feedrate X-Y" -msgstr "Vorschub X-Y" - -#: AppDatabase.py:1206 -msgid "" -"Feedrate X-Y. Feedrate\n" -"The speed on XY plane used while cutting into material." -msgstr "" -"Vorschub X-Y. Vorschubgeschwindigkeit\n" -"Die Geschwindigkeit in der XY-Ebene, die beim Schneiden in Material " -"verwendet wird." - -#: AppDatabase.py:1218 AppGUI/ObjectUI.py:761 AppGUI/ObjectUI.py:1685 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:207 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:201 -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:161 -#: AppTools/ToolSolderPaste.py:261 -msgid "Feedrate Z" -msgstr "Vorschub Z" - -#: AppDatabase.py:1220 -msgid "" -"Feedrate Z\n" -"The speed on Z plane." -msgstr "" -"Vorschub Z.\n" -"Die Geschwindigkeit in der Z-Ebene." - -#: AppDatabase.py:1418 AppGUI/ObjectUI.py:624 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:46 -#: AppTools/ToolNCC.py:341 -msgid "Operation" -msgstr "Operation" - -#: AppDatabase.py:1420 AppTools/ToolNCC.py:343 -msgid "" -"The 'Operation' can be:\n" -"- Isolation -> will ensure that the non-copper clearing is always complete.\n" -"If it's not successful then the non-copper clearing will fail, too.\n" -"- Clear -> the regular non-copper clearing." -msgstr "" -"Die 'Operation' kann sein:\n" -"- Isolierung-> stellt sicher, dass das Löschen ohne Kupfer immer " -"abgeschlossen ist.\n" -"Wenn dies nicht erfolgreich ist, schlägt auch das Löschen ohne Kupfer fehl.\n" -"- Klären-> das reguläre Nicht-Kupfer-löschen." - -#: AppDatabase.py:1427 AppEditors/FlatCAMGrbEditor.py:2749 -#: AppGUI/GUIElements.py:2754 AppTools/ToolNCC.py:350 -msgid "Clear" -msgstr "Klären" - -#: AppDatabase.py:1428 AppTools/ToolNCC.py:351 -msgid "Isolation" -msgstr "Isolation" - -#: AppDatabase.py:1436 AppDatabase.py:1682 AppGUI/ObjectUI.py:646 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:62 -#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:56 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:182 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:137 -#: AppTools/ToolIsolation.py:351 AppTools/ToolNCC.py:359 -msgid "Milling Type" -msgstr "Fräsart" - -#: AppDatabase.py:1438 AppDatabase.py:1446 AppDatabase.py:1684 -#: AppDatabase.py:1692 AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:184 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:192 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:139 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:147 -#: AppTools/ToolIsolation.py:353 AppTools/ToolIsolation.py:361 -#: AppTools/ToolNCC.py:361 AppTools/ToolNCC.py:369 -msgid "" -"Milling type when the selected tool is of type: 'iso_op':\n" -"- climb / best for precision milling and to reduce tool usage\n" -"- conventional / useful when there is no backlash compensation" -msgstr "" -"Frästyp, wenn das ausgewählte Werkzeug vom Typ 'iso_op' ist:\n" -"- Besteigung / am besten zum Präzisionsfräsen und zur Reduzierung des " -"Werkzeugverbrauchs\n" -"- konventionell / nützlich, wenn kein Spielausgleich vorhanden ist" - -#: AppDatabase.py:1443 AppDatabase.py:1689 -#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:62 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:189 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:144 -#: AppTools/ToolIsolation.py:358 AppTools/ToolNCC.py:366 -msgid "Climb" -msgstr "Steigen" - -# Cannot translate without context. -#: AppDatabase.py:1444 AppDatabase.py:1690 -#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:63 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:190 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:145 -#: AppTools/ToolIsolation.py:359 AppTools/ToolNCC.py:367 -msgid "Conventional" -msgstr "Konventionell" - -#: AppDatabase.py:1456 AppDatabase.py:1565 AppDatabase.py:1667 -#: AppEditors/FlatCAMGeoEditor.py:450 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:167 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:182 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:163 -#: AppTools/ToolIsolation.py:336 AppTools/ToolNCC.py:382 -#: AppTools/ToolPaint.py:328 -msgid "Overlap" -msgstr "Überlappung" - -# Double -#: AppDatabase.py:1458 AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:184 -#: AppTools/ToolNCC.py:384 -msgid "" -"How much (percentage) of the tool width to overlap each tool pass.\n" -"Adjust the value starting with lower values\n" -"and increasing it if areas that should be cleared are still \n" -"not cleared.\n" -"Lower values = faster processing, faster execution on CNC.\n" -"Higher values = slow processing and slow execution on CNC\n" -"due of too many paths." -msgstr "" -"Wie viel (Prozent) der Werkzeugbreite, um jeden Werkzeugdurchlauf zu " -"überlappen.\n" -"Passen Sie den Wert beginnend mit niedrigeren Werten an\n" -"und es zu erhöhen, wenn noch Bereiche sind, die geräumt werden sollen\n" -"ungeklärt.\n" -"Niedrigere Werte = schnellere Verarbeitung, schnellere Ausführung auf CNC.\n" -"Höhere Werte = langsame Verarbeitung und langsame Ausführung auf CNC\n" -"wegen zu vieler Wege." - -#: AppDatabase.py:1477 AppDatabase.py:1586 AppEditors/FlatCAMGeoEditor.py:470 -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:72 -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:229 -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:59 -#: AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py:45 -#: AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py:53 -#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:66 -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:115 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:202 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:183 -#: AppTools/ToolCopperThieving.py:115 AppTools/ToolCopperThieving.py:366 -#: AppTools/ToolCorners.py:149 AppTools/ToolCutOut.py:190 -#: AppTools/ToolFiducials.py:175 AppTools/ToolInvertGerber.py:91 -#: AppTools/ToolInvertGerber.py:99 AppTools/ToolNCC.py:403 -#: AppTools/ToolPaint.py:349 -msgid "Margin" -msgstr "Marge" - -#: AppDatabase.py:1479 -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:74 -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:61 -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:125 -#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:68 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:204 -#: AppTools/ToolCopperThieving.py:117 AppTools/ToolCorners.py:151 -#: AppTools/ToolFiducials.py:177 AppTools/ToolNCC.py:405 -msgid "Bounding box margin." -msgstr "Begrenzungsrahmenrand." - -#: AppDatabase.py:1490 AppDatabase.py:1601 AppEditors/FlatCAMGeoEditor.py:484 -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:105 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:106 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:215 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:198 -#: AppTools/ToolExtractDrills.py:128 AppTools/ToolNCC.py:416 -#: AppTools/ToolPaint.py:364 AppTools/ToolPunchGerber.py:139 -msgid "Method" -msgstr "Methode" - -#: AppDatabase.py:1492 AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:217 -#: AppTools/ToolNCC.py:418 -msgid "" -"Algorithm for copper clearing:\n" -"- Standard: Fixed step inwards.\n" -"- Seed-based: Outwards from seed.\n" -"- Line-based: Parallel lines." -msgstr "" -"Algorithmus zur Kupferreinigung:\n" -"- Standard: Schritt nach innen behoben.\n" -"- Samenbasiert: Aus dem Samen heraus.\n" -"- Linienbasiert: Parallele Linien." - -#: AppDatabase.py:1500 AppDatabase.py:1615 AppEditors/FlatCAMGeoEditor.py:498 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:230 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217 -#: AppTools/ToolNCC.py:431 AppTools/ToolNCC.py:2232 AppTools/ToolNCC.py:2764 -#: AppTools/ToolNCC.py:2796 AppTools/ToolPaint.py:389 -#: AppTools/ToolPaint.py:1859 tclCommands/TclCommandCopperClear.py:126 -#: tclCommands/TclCommandCopperClear.py:134 tclCommands/TclCommandPaint.py:125 -msgid "Standard" -msgstr "Standard" - -#: AppDatabase.py:1500 AppDatabase.py:1615 AppEditors/FlatCAMGeoEditor.py:498 -#: AppEditors/FlatCAMGeoEditor.py:568 AppEditors/FlatCAMGeoEditor.py:5148 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:230 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217 -#: AppTools/ToolNCC.py:431 AppTools/ToolNCC.py:2243 AppTools/ToolNCC.py:2770 -#: AppTools/ToolNCC.py:2802 AppTools/ToolPaint.py:389 -#: AppTools/ToolPaint.py:1873 defaults.py:413 defaults.py:445 -#: tclCommands/TclCommandCopperClear.py:128 -#: tclCommands/TclCommandCopperClear.py:136 tclCommands/TclCommandPaint.py:127 -msgid "Seed" -msgstr "Keim" - -#: AppDatabase.py:1500 AppDatabase.py:1615 AppEditors/FlatCAMGeoEditor.py:498 -#: AppEditors/FlatCAMGeoEditor.py:5152 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:230 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217 -#: AppTools/ToolNCC.py:431 AppTools/ToolNCC.py:2254 AppTools/ToolPaint.py:389 -#: AppTools/ToolPaint.py:698 AppTools/ToolPaint.py:1887 -#: tclCommands/TclCommandCopperClear.py:130 tclCommands/TclCommandPaint.py:129 -msgid "Lines" -msgstr "Linien" - -#: AppDatabase.py:1500 AppDatabase.py:1615 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:230 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217 -#: AppTools/ToolNCC.py:431 AppTools/ToolNCC.py:2265 AppTools/ToolPaint.py:389 -#: AppTools/ToolPaint.py:2052 tclCommands/TclCommandPaint.py:133 -msgid "Combo" -msgstr "Combo" - -#: AppDatabase.py:1508 AppDatabase.py:1626 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:237 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:224 -#: AppTools/ToolNCC.py:439 AppTools/ToolPaint.py:400 -msgid "Connect" -msgstr "Verbinden" - -#: AppDatabase.py:1512 AppDatabase.py:1629 AppEditors/FlatCAMGeoEditor.py:507 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:239 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:226 -#: AppTools/ToolNCC.py:443 AppTools/ToolPaint.py:403 -msgid "" -"Draw lines between resulting\n" -"segments to minimize tool lifts." -msgstr "" -"Zeichnen Sie Linien zwischen den Ergebnissen\n" -"Segmente, um Werkzeuglifte zu minimieren." - -#: AppDatabase.py:1518 AppDatabase.py:1633 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:246 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:232 -#: AppTools/ToolNCC.py:449 AppTools/ToolPaint.py:407 -msgid "Contour" -msgstr "Kontur" - -#: AppDatabase.py:1522 AppDatabase.py:1636 AppEditors/FlatCAMGeoEditor.py:517 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:248 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:234 -#: AppTools/ToolNCC.py:453 AppTools/ToolPaint.py:410 -msgid "" -"Cut around the perimeter of the polygon\n" -"to trim rough edges." -msgstr "" -"Schneiden Sie um den Umfang des Polygons herum\n" -"Ecken und Kanten schneiden." - -#: AppDatabase.py:1528 AppEditors/FlatCAMGeoEditor.py:611 -#: AppEditors/FlatCAMGrbEditor.py:5305 AppGUI/ObjectUI.py:143 -#: AppGUI/ObjectUI.py:1394 AppGUI/ObjectUI.py:2256 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:255 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:142 -#: AppTools/ToolEtchCompensation.py:199 AppTools/ToolEtchCompensation.py:207 -#: AppTools/ToolNCC.py:459 AppTools/ToolTransform.py:28 -msgid "Offset" -msgstr "Versatz" - -#: AppDatabase.py:1532 AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:257 -#: AppTools/ToolNCC.py:463 -msgid "" -"If used, it will add an offset to the copper features.\n" -"The copper clearing will finish to a distance\n" -"from the copper features.\n" -"The value can be between 0 and 10 FlatCAM units." -msgstr "" -"Bei Verwendung wird den Kupferelementen ein Offset hinzugefügt.\n" -"Die Kupferreinigung wird bis zu einer gewissen Entfernung enden\n" -"von den Kupfermerkmalen.\n" -"Der Wert kann zwischen 0 und 10 FlatCAM-Einheiten liegen." - -# 3rd Time -#: AppDatabase.py:1567 AppEditors/FlatCAMGeoEditor.py:452 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:165 -#: AppTools/ToolPaint.py:330 -msgid "" -"How much (percentage) of the tool width to overlap each tool pass.\n" -"Adjust the value starting with lower values\n" -"and increasing it if areas that should be painted are still \n" -"not painted.\n" -"Lower values = faster processing, faster execution on CNC.\n" -"Higher values = slow processing and slow execution on CNC\n" -"due of too many paths." -msgstr "" -"Wie viel (Prozent) der Werkzeugbreite, um jeden Werkzeugdurchlauf zu " -"überlappen.\n" -"Passen Sie den Wert beginnend mit niedrigeren Werten an\n" -"und erhöhen, wenn Bereiche, die gestrichen werden sollen, noch vorhanden " -"sind\n" -"nicht gemalt.\n" -"Niedrigere Werte = schnellere Verarbeitung, schnellere Ausführung auf CNC.\n" -"Höhere Werte = langsame Verarbeitung und langsame Ausführung auf CNC\n" -"wegen zu vieler Wege." - -#: AppDatabase.py:1588 AppEditors/FlatCAMGeoEditor.py:472 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:185 -#: AppTools/ToolPaint.py:351 -msgid "" -"Distance by which to avoid\n" -"the edges of the polygon to\n" -"be painted." -msgstr "" -"Entfernung, um die es zu vermeiden ist\n" -"die Kanten des Polygons bis\n" -"gemalt werden." - -#: AppDatabase.py:1603 AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:200 -#: AppTools/ToolPaint.py:366 -msgid "" -"Algorithm for painting:\n" -"- Standard: Fixed step inwards.\n" -"- Seed-based: Outwards from seed.\n" -"- Line-based: Parallel lines.\n" -"- Laser-lines: Active only for Gerber objects.\n" -"Will create lines that follow the traces.\n" -"- Combo: In case of failure a new method will be picked from the above\n" -"in the order specified." -msgstr "" -"Algorithmus zum Malen:\n" -"- Standard: Schritt nach innen behoben.\n" -"- Samenbasiert: Aus dem Samen heraus.\n" -"- Linienbasiert: Parallele Linien.\n" -"- Laserlinien: Nur für Gerber-Objekte aktiv.\n" -"Erstellt Linien, die den Spuren folgen.\n" -"- Combo: Im Fehlerfall wird eine neue Methode aus den oben genannten " -"ausgewählt\n" -"in der angegebenen Reihenfolge." - -#: AppDatabase.py:1615 AppDatabase.py:1617 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217 -#: AppTools/ToolPaint.py:389 AppTools/ToolPaint.py:391 -#: AppTools/ToolPaint.py:692 AppTools/ToolPaint.py:697 -#: AppTools/ToolPaint.py:1901 tclCommands/TclCommandPaint.py:131 -msgid "Laser_lines" -msgstr "LaserlinienLinien" - -#: AppDatabase.py:1654 AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:154 -#: AppTools/ToolIsolation.py:323 -msgid "Passes" -msgstr "Geht herum" - -#: AppDatabase.py:1656 AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:156 -#: AppTools/ToolIsolation.py:325 -msgid "" -"Width of the isolation gap in\n" -"number (integer) of tool widths." -msgstr "" -"Breite der Isolationslücke in\n" -"Anzahl (Ganzzahl) der Werkzeugbreiten." - -#: AppDatabase.py:1669 AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:169 -#: AppTools/ToolIsolation.py:338 -msgid "How much (percentage) of the tool width to overlap each tool pass." -msgstr "" -"Wie viel (Prozent) der Werkzeugbreite, um jeden Werkzeugdurchlauf zu " -"überlappen." - -#: AppDatabase.py:1702 AppGUI/ObjectUI.py:236 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:201 -#: AppTools/ToolIsolation.py:371 -msgid "Follow" -msgstr "Folgen" - -#: AppDatabase.py:1704 AppDatabase.py:1710 AppGUI/ObjectUI.py:237 -#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:45 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:203 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:209 -#: AppTools/ToolIsolation.py:373 AppTools/ToolIsolation.py:379 -msgid "" -"Generate a 'Follow' geometry.\n" -"This means that it will cut through\n" -"the middle of the trace." -msgstr "" -"Erzeugen Sie eine 'Follow'-Geometrie.\n" -"Dies bedeutet, dass es durchschneiden wird\n" -"die Mitte der Spur." - -#: AppDatabase.py:1719 AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:218 -#: AppTools/ToolIsolation.py:388 -msgid "Isolation Type" -msgstr "Isolierungsart" - -#: AppDatabase.py:1721 AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:220 -#: AppTools/ToolIsolation.py:390 -msgid "" -"Choose how the isolation will be executed:\n" -"- 'Full' -> complete isolation of polygons\n" -"- 'Ext' -> will isolate only on the outside\n" -"- 'Int' -> will isolate only on the inside\n" -"'Exterior' isolation is almost always possible\n" -"(with the right tool) but 'Interior'\n" -"isolation can be done only when there is an opening\n" -"inside of the polygon (e.g polygon is a 'doughnut' shape)." -msgstr "" -"Wählen Sie, wie die Isolation ausgeführt wird:\n" -"- Vollständig: Es werden alle Polygone isoliert\n" -"- Ext: Die ausserhalb liegenden Polygone werden isoliert\n" -"- Int: Die innerhalb liegenden Polygone werden isoliert\n" -"Achtung Ext ist fast immer möglich (mit dem richtigen Werkzeug)\n" -"wohingegen \"Int\" Isolation nur möglich ist, wenn es ein Loch \n" -"innerhalb des Polygons gibt (also z.B. ein Torus)" - -#: AppDatabase.py:1730 AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:75 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:229 -#: AppTools/ToolIsolation.py:399 -msgid "Full" -msgstr "Voll" - -#: AppDatabase.py:1731 AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:230 -#: AppTools/ToolIsolation.py:400 -msgid "Ext" -msgstr "Ausserhalb" - -#: AppDatabase.py:1732 AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:231 -#: AppTools/ToolIsolation.py:401 -msgid "Int" -msgstr "Innerhalb" - -#: AppDatabase.py:1755 -msgid "Add Tool in DB" -msgstr "Werkzeug in DB hinzufügen" - -#: AppDatabase.py:1789 -msgid "Save DB" -msgstr "Speichern DB" - -#: AppDatabase.py:1791 -msgid "Save the Tools Database information's." -msgstr "Speichern Sie die Tools-Datenbankinformationen." - -#: AppDatabase.py:1797 -msgid "" -"Insert a new tool in the Tools Table of the\n" -"object/application tool after selecting a tool\n" -"in the Tools Database." -msgstr "" -"Fügen Sie ein neues Werkzeug in die Werkzeugtabelle des ein\n" -"Objekt / Anwendungswerkzeug nach Auswahl eines Werkzeugs\n" -"in der Werkzeugdatenbank." - -#: AppEditors/FlatCAMExcEditor.py:50 AppEditors/FlatCAMExcEditor.py:74 -#: AppEditors/FlatCAMExcEditor.py:168 AppEditors/FlatCAMExcEditor.py:385 -#: AppEditors/FlatCAMExcEditor.py:589 AppEditors/FlatCAMGrbEditor.py:241 -#: AppEditors/FlatCAMGrbEditor.py:248 -msgid "Click to place ..." -msgstr "Klicken um zu platzieren ..." - -#: AppEditors/FlatCAMExcEditor.py:58 -msgid "To add a drill first select a tool" -msgstr "Um einen Bohrer hinzuzufügen, wählen Sie zuerst ein Werkzeug aus" - -#: AppEditors/FlatCAMExcEditor.py:122 -msgid "Done. Drill added." -msgstr "Erledigt. Bohrer hinzugefügt." - -#: AppEditors/FlatCAMExcEditor.py:176 -msgid "To add an Drill Array first select a tool in Tool Table" -msgstr "" -"Um ein Bohr-Array hinzuzufügen, wählen Sie zunächst ein Werkzeug in der " -"Werkzeugtabelle aus" - -#: AppEditors/FlatCAMExcEditor.py:192 AppEditors/FlatCAMExcEditor.py:415 -#: AppEditors/FlatCAMExcEditor.py:636 AppEditors/FlatCAMExcEditor.py:1151 -#: AppEditors/FlatCAMExcEditor.py:1178 AppEditors/FlatCAMGrbEditor.py:471 -#: AppEditors/FlatCAMGrbEditor.py:1944 AppEditors/FlatCAMGrbEditor.py:1974 -msgid "Click on target location ..." -msgstr "Klicken Sie auf den Zielort ..." - -#: AppEditors/FlatCAMExcEditor.py:211 -msgid "Click on the Drill Circular Array Start position" -msgstr "Klicken Sie auf die Startposition des Bohrkreis-Arrays" - -#: AppEditors/FlatCAMExcEditor.py:233 AppEditors/FlatCAMExcEditor.py:677 -#: AppEditors/FlatCAMGrbEditor.py:516 -msgid "The value is not Float. Check for comma instead of dot separator." -msgstr "" -"Der Wert ist nicht Real. Überprüfen Sie das Komma anstelle des Trennzeichens." - -#: AppEditors/FlatCAMExcEditor.py:237 -msgid "The value is mistyped. Check the value" -msgstr "Der Wert ist falsch geschrieben. Überprüfen Sie den Wert" - -#: AppEditors/FlatCAMExcEditor.py:336 -msgid "Too many drills for the selected spacing angle." -msgstr "Zu viele Bohrer für den ausgewählten Abstandswinkel." - -#: AppEditors/FlatCAMExcEditor.py:354 -msgid "Done. Drill Array added." -msgstr "Erledigt. Bohrfeld hinzugefügt." - -#: AppEditors/FlatCAMExcEditor.py:394 -msgid "To add a slot first select a tool" -msgstr "Um einen Steckplatz hinzuzufügen, wählen Sie zunächst ein Werkzeug aus" - -#: AppEditors/FlatCAMExcEditor.py:454 AppEditors/FlatCAMExcEditor.py:461 -#: AppEditors/FlatCAMExcEditor.py:742 AppEditors/FlatCAMExcEditor.py:749 -msgid "Value is missing or wrong format. Add it and retry." -msgstr "" -"Wert fehlt oder falsches Format. Fügen Sie es hinzu und versuchen Sie es " -"erneut." - -#: AppEditors/FlatCAMExcEditor.py:559 -msgid "Done. Adding Slot completed." -msgstr "Erledigt. Das Hinzufügen des Slots ist abgeschlossen." - -#: AppEditors/FlatCAMExcEditor.py:597 -msgid "To add an Slot Array first select a tool in Tool Table" -msgstr "" -"Um ein Schlitze-Array hinzuzufügen, wählen Sie zunächst ein Werkzeug in der " -"Werkzeugtabelle aus" - -#: AppEditors/FlatCAMExcEditor.py:655 -msgid "Click on the Slot Circular Array Start position" -msgstr "Klicken Sie auf die kreisförmige Startposition des Arrays" - -#: AppEditors/FlatCAMExcEditor.py:680 AppEditors/FlatCAMGrbEditor.py:519 -msgid "The value is mistyped. Check the value." -msgstr "Der Wert ist falsch geschrieben. Überprüfen Sie den Wert." - -#: AppEditors/FlatCAMExcEditor.py:859 -msgid "Too many Slots for the selected spacing angle." -msgstr "Zu viele Slots für den ausgewählten Abstandswinkel." - -#: AppEditors/FlatCAMExcEditor.py:882 -msgid "Done. Slot Array added." -msgstr "Erledigt. Schlitze Array hinzugefügt." - -#: AppEditors/FlatCAMExcEditor.py:904 -msgid "Click on the Drill(s) to resize ..." -msgstr "Klicken Sie auf die Bohrer, um die Größe zu ändern ..." - -#: AppEditors/FlatCAMExcEditor.py:934 -msgid "Resize drill(s) failed. Please enter a diameter for resize." -msgstr "" -"Die Größe der Bohrer ist fehlgeschlagen. Bitte geben Sie einen Durchmesser " -"für die Größenänderung ein." - -#: AppEditors/FlatCAMExcEditor.py:1112 -msgid "Done. Drill/Slot Resize completed." -msgstr "Getan. Bohrer / Schlitz Größenänderung abgeschlossen." - -#: AppEditors/FlatCAMExcEditor.py:1115 -msgid "Cancelled. No drills/slots selected for resize ..." -msgstr "Abgebrochen. Keine Bohrer / Schlitze für Größenänderung ausgewählt ..." - -#: AppEditors/FlatCAMExcEditor.py:1153 AppEditors/FlatCAMGrbEditor.py:1946 -msgid "Click on reference location ..." -msgstr "Klicken Sie auf die Referenzposition ..." - -#: AppEditors/FlatCAMExcEditor.py:1210 -msgid "Done. Drill(s) Move completed." -msgstr "Erledigt. Bohrer Bewegen abgeschlossen." - -#: AppEditors/FlatCAMExcEditor.py:1318 -msgid "Done. Drill(s) copied." -msgstr "Erledigt. Bohrer kopiert." - -#: AppEditors/FlatCAMExcEditor.py:1557 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:26 -msgid "Excellon Editor" -msgstr "Excellon Editor" - -#: AppEditors/FlatCAMExcEditor.py:1564 AppEditors/FlatCAMGrbEditor.py:2469 -msgid "Name:" -msgstr "Name:" - -#: AppEditors/FlatCAMExcEditor.py:1570 AppGUI/ObjectUI.py:540 -#: AppGUI/ObjectUI.py:1362 AppTools/ToolIsolation.py:118 -#: AppTools/ToolNCC.py:120 AppTools/ToolPaint.py:114 -#: AppTools/ToolSolderPaste.py:79 -msgid "Tools Table" -msgstr "Werkzeugtabelle" - -#: AppEditors/FlatCAMExcEditor.py:1572 AppGUI/ObjectUI.py:542 -msgid "" -"Tools in this Excellon object\n" -"when are used for drilling." -msgstr "" -"Werkzeuge in diesem Excellon-Objekt\n" -"Wann werden zum Bohren verwendet." - -#: AppEditors/FlatCAMExcEditor.py:1584 AppEditors/FlatCAMExcEditor.py:3041 -#: AppGUI/ObjectUI.py:560 AppObjects/FlatCAMExcellon.py:1265 -#: AppObjects/FlatCAMExcellon.py:1368 AppObjects/FlatCAMExcellon.py:1553 -#: AppTools/ToolIsolation.py:130 AppTools/ToolNCC.py:132 -#: AppTools/ToolPaint.py:127 AppTools/ToolPcbWizard.py:76 -#: AppTools/ToolProperties.py:416 AppTools/ToolProperties.py:476 -#: AppTools/ToolSolderPaste.py:90 tclCommands/TclCommandDrillcncjob.py:195 -msgid "Diameter" -msgstr "Durchmesser" - -#: AppEditors/FlatCAMExcEditor.py:1592 -msgid "Add/Delete Tool" -msgstr "Werkzeug hinzufügen / löschen" - -#: AppEditors/FlatCAMExcEditor.py:1594 -msgid "" -"Add/Delete a tool to the tool list\n" -"for this Excellon object." -msgstr "" -"Werkzeug zur Werkzeugliste hinzufügen / löschen\n" -"für dieses Excellon-Objekt." - -#: AppEditors/FlatCAMExcEditor.py:1606 AppGUI/ObjectUI.py:1482 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:57 -msgid "Diameter for the new tool" -msgstr "Durchmesser für das neue Werkzeug" - -#: AppEditors/FlatCAMExcEditor.py:1616 -msgid "Add Tool" -msgstr "Werkzeug hinzufügen" - -#: AppEditors/FlatCAMExcEditor.py:1618 -msgid "" -"Add a new tool to the tool list\n" -"with the diameter specified above." -msgstr "" -"Fügen Sie der Werkzeugliste ein neues Werkzeug hinzu\n" -"mit dem oben angegebenen Durchmesser." - -#: AppEditors/FlatCAMExcEditor.py:1630 -msgid "Delete Tool" -msgstr "Werkzeug löschen" - -#: AppEditors/FlatCAMExcEditor.py:1632 -msgid "" -"Delete a tool in the tool list\n" -"by selecting a row in the tool table." -msgstr "" -"Löschen Sie ein Werkzeug in der Werkzeugliste\n" -"indem Sie eine Zeile in der Werkzeugtabelle auswählen." - -#: AppEditors/FlatCAMExcEditor.py:1650 AppGUI/MainGUI.py:4392 -msgid "Resize Drill(s)" -msgstr "Größe der Bohrer ändern" - -#: AppEditors/FlatCAMExcEditor.py:1652 -msgid "Resize a drill or a selection of drills." -msgstr "Ändern Sie die Größe eines Bohrers oder einer Auswahl von Bohrern." - -#: AppEditors/FlatCAMExcEditor.py:1659 -msgid "Resize Dia" -msgstr "Durchmesser ändern" - -#: AppEditors/FlatCAMExcEditor.py:1661 -msgid "Diameter to resize to." -msgstr "Durchmesser zur Größenänderung." - -#: AppEditors/FlatCAMExcEditor.py:1672 -msgid "Resize" -msgstr "Größe ändern" - -#: AppEditors/FlatCAMExcEditor.py:1674 -msgid "Resize drill(s)" -msgstr "Bohrer verkleinern" - -#: AppEditors/FlatCAMExcEditor.py:1699 AppGUI/MainGUI.py:1514 -#: AppGUI/MainGUI.py:4391 -msgid "Add Drill Array" -msgstr "Bohrer-Array hinzufügen" - -#: AppEditors/FlatCAMExcEditor.py:1701 -msgid "Add an array of drills (linear or circular array)" -msgstr "" -"Hinzufügen eines Arrays von Bohrern (lineares oder kreisförmiges Array)" - -#: AppEditors/FlatCAMExcEditor.py:1707 -msgid "" -"Select the type of drills array to create.\n" -"It can be Linear X(Y) or Circular" -msgstr "" -"Wählen Sie den Typ des zu erstellenden Bohrfelds aus.\n" -"Es kann lineares X (Y) oder rund sein" - -#: AppEditors/FlatCAMExcEditor.py:1710 AppEditors/FlatCAMExcEditor.py:1924 -#: AppEditors/FlatCAMGrbEditor.py:2782 -msgid "Linear" -msgstr "Linear" - -#: AppEditors/FlatCAMExcEditor.py:1711 AppEditors/FlatCAMExcEditor.py:1925 -#: AppEditors/FlatCAMGrbEditor.py:2783 -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:52 -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:149 -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:107 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:52 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:151 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:78 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:61 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:70 -#: AppTools/ToolExtractDrills.py:78 AppTools/ToolExtractDrills.py:201 -#: AppTools/ToolFiducials.py:223 AppTools/ToolIsolation.py:207 -#: AppTools/ToolNCC.py:221 AppTools/ToolPaint.py:203 -#: AppTools/ToolPunchGerber.py:89 AppTools/ToolPunchGerber.py:229 -msgid "Circular" -msgstr "Kreisförmig" - -#: AppEditors/FlatCAMExcEditor.py:1719 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:68 -msgid "Nr of drills" -msgstr "Anzahl der Bohrer" - -#: AppEditors/FlatCAMExcEditor.py:1720 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:70 -msgid "Specify how many drills to be in the array." -msgstr "Geben Sie an, wie viele Drills im Array enthalten sein sollen." - -#: AppEditors/FlatCAMExcEditor.py:1738 AppEditors/FlatCAMExcEditor.py:1788 -#: AppEditors/FlatCAMExcEditor.py:1860 AppEditors/FlatCAMExcEditor.py:1953 -#: AppEditors/FlatCAMExcEditor.py:2004 AppEditors/FlatCAMGrbEditor.py:1580 -#: AppEditors/FlatCAMGrbEditor.py:2811 AppEditors/FlatCAMGrbEditor.py:2860 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:178 -msgid "Direction" -msgstr "Richtung" - -#: AppEditors/FlatCAMExcEditor.py:1740 AppEditors/FlatCAMExcEditor.py:1955 -#: AppEditors/FlatCAMGrbEditor.py:2813 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:86 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:234 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:123 -msgid "" -"Direction on which the linear array is oriented:\n" -"- 'X' - horizontal axis \n" -"- 'Y' - vertical axis or \n" -"- 'Angle' - a custom angle for the array inclination" -msgstr "" -"Richtung, auf die das lineare Array ausgerichtet ist:\n" -"- 'X' - horizontale Achse\n" -"- 'Y' - vertikale Achse oder\n" -"- 'Winkel' - ein benutzerdefinierter Winkel für die Neigung des Arrays" - -#: AppEditors/FlatCAMExcEditor.py:1747 AppEditors/FlatCAMExcEditor.py:1869 -#: AppEditors/FlatCAMExcEditor.py:1962 AppEditors/FlatCAMGrbEditor.py:2820 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:92 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:187 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:240 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:129 -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:197 -#: AppTools/ToolFilm.py:239 -msgid "X" -msgstr "X" - -#: AppEditors/FlatCAMExcEditor.py:1748 AppEditors/FlatCAMExcEditor.py:1870 -#: AppEditors/FlatCAMExcEditor.py:1963 AppEditors/FlatCAMGrbEditor.py:2821 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:93 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:188 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:241 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:130 -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:198 -#: AppTools/ToolFilm.py:240 -msgid "Y" -msgstr "Y" - -#: AppEditors/FlatCAMExcEditor.py:1749 AppEditors/FlatCAMExcEditor.py:1766 -#: AppEditors/FlatCAMExcEditor.py:1800 AppEditors/FlatCAMExcEditor.py:1871 -#: AppEditors/FlatCAMExcEditor.py:1875 AppEditors/FlatCAMExcEditor.py:1964 -#: AppEditors/FlatCAMExcEditor.py:1982 AppEditors/FlatCAMExcEditor.py:2016 -#: AppEditors/FlatCAMGrbEditor.py:2822 AppEditors/FlatCAMGrbEditor.py:2839 -#: AppEditors/FlatCAMGrbEditor.py:2875 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:94 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:113 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:189 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:194 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:242 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:263 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:131 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:149 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:53 -#: AppTools/ToolDistance.py:120 AppTools/ToolDistanceMin.py:68 -#: AppTools/ToolTransform.py:60 -msgid "Angle" -msgstr "Winkel" - -#: AppEditors/FlatCAMExcEditor.py:1753 AppEditors/FlatCAMExcEditor.py:1968 -#: AppEditors/FlatCAMGrbEditor.py:2826 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:100 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:248 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:137 -msgid "Pitch" -msgstr "Abstand" - -#: AppEditors/FlatCAMExcEditor.py:1755 AppEditors/FlatCAMExcEditor.py:1970 -#: AppEditors/FlatCAMGrbEditor.py:2828 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:102 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:250 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:139 -msgid "Pitch = Distance between elements of the array." -msgstr "Abstand = Abstand zwischen Elementen des Arrays." - -#: AppEditors/FlatCAMExcEditor.py:1768 AppEditors/FlatCAMExcEditor.py:1984 -msgid "" -"Angle at which the linear array is placed.\n" -"The precision is of max 2 decimals.\n" -"Min value is: -360 degrees.\n" -"Max value is: 360.00 degrees." -msgstr "" -"Winkel, bei dem das lineare Feld platziert wird.\n" -"Die Genauigkeit beträgt maximal 2 Dezimalstellen.\n" -"Der Mindestwert beträgt -360 Grad.\n" -"Maximalwert ist: 360.00 Grad." - -#: AppEditors/FlatCAMExcEditor.py:1789 AppEditors/FlatCAMExcEditor.py:2005 -#: AppEditors/FlatCAMGrbEditor.py:2862 -msgid "" -"Direction for circular array.Can be CW = clockwise or CCW = counter " -"clockwise." -msgstr "" -"Richtung für kreisförmige Anordnung. Kann CW = Uhrzeigersinn oder CCW = " -"Gegenuhrzeigersinn sein." - -#: AppEditors/FlatCAMExcEditor.py:1796 AppEditors/FlatCAMExcEditor.py:2012 -#: AppEditors/FlatCAMGrbEditor.py:2870 -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:129 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:136 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:286 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:145 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:171 -msgid "CW" -msgstr "CW" - -#: AppEditors/FlatCAMExcEditor.py:1797 AppEditors/FlatCAMExcEditor.py:2013 -#: AppEditors/FlatCAMGrbEditor.py:2871 -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:130 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:137 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:287 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:146 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:172 -msgid "CCW" -msgstr "CCW" - -#: AppEditors/FlatCAMExcEditor.py:1801 AppEditors/FlatCAMExcEditor.py:2017 -#: AppEditors/FlatCAMGrbEditor.py:2877 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:115 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:145 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:265 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:295 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:151 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:180 -msgid "Angle at which each element in circular array is placed." -msgstr "" -"Winkel, um den jedes Element in einer kreisförmigen Anordnung platziert wird." - -#: AppEditors/FlatCAMExcEditor.py:1835 -msgid "Slot Parameters" -msgstr "Schlitze-Parameter" - -#: AppEditors/FlatCAMExcEditor.py:1837 -msgid "" -"Parameters for adding a slot (hole with oval shape)\n" -"either single or as an part of an array." -msgstr "" -"Parameter zum Hinzufügen eines Schlitzes (Loch mit ovaler Form)\n" -"entweder einzeln oder als Teil eines Arrays." - -#: AppEditors/FlatCAMExcEditor.py:1846 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:162 -#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:56 -#: AppTools/ToolCorners.py:136 AppTools/ToolProperties.py:559 -msgid "Length" -msgstr "Länge" - -#: AppEditors/FlatCAMExcEditor.py:1848 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:164 -msgid "Length = The length of the slot." -msgstr "Länge = Die Länge des Schlitzes." - -#: AppEditors/FlatCAMExcEditor.py:1862 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:180 -msgid "" -"Direction on which the slot is oriented:\n" -"- 'X' - horizontal axis \n" -"- 'Y' - vertical axis or \n" -"- 'Angle' - a custom angle for the slot inclination" -msgstr "" -"Richtung, in die der Steckplatz ausgerichtet ist:\n" -"- 'X' - horizontale Achse\n" -"- 'Y' - vertikale Achse oder\n" -"- 'Winkel' - Ein benutzerdefinierter Winkel für die Schlitzneigung" - -#: AppEditors/FlatCAMExcEditor.py:1877 -msgid "" -"Angle at which the slot is placed.\n" -"The precision is of max 2 decimals.\n" -"Min value is: -360 degrees.\n" -"Max value is: 360.00 degrees." -msgstr "" -"Winkel, in dem der Schlitz platziert ist.\n" -"Die Genauigkeit beträgt maximal 2 Dezimalstellen.\n" -"Der Mindestwert beträgt: -360 Grad.\n" -"Maximaler Wert ist: 360.00 Grad." - -#: AppEditors/FlatCAMExcEditor.py:1910 -msgid "Slot Array Parameters" -msgstr "Schlitzes Array-Parameter" - -#: AppEditors/FlatCAMExcEditor.py:1912 -msgid "Parameters for the array of slots (linear or circular array)" -msgstr "" -"Parameter für das Array von Schlitzes (lineares oder kreisförmiges Array)" - -#: AppEditors/FlatCAMExcEditor.py:1921 -msgid "" -"Select the type of slot array to create.\n" -"It can be Linear X(Y) or Circular" -msgstr "" -"Wählen Sie den Typ des zu erstellenden Slot-Arrays.\n" -"Es kann ein lineares X (Y) oder ein kreisförmiges sein" - -#: AppEditors/FlatCAMExcEditor.py:1933 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:219 -msgid "Nr of slots" -msgstr "Anzahl der Slots" - -#: AppEditors/FlatCAMExcEditor.py:1934 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:221 -msgid "Specify how many slots to be in the array." -msgstr "Geben Sie an, wie viele Steckplätze sich im Array befinden sollen." - -#: AppEditors/FlatCAMExcEditor.py:2452 AppObjects/FlatCAMExcellon.py:433 -msgid "Total Drills" -msgstr "Bohrungen insgesamt" - -#: AppEditors/FlatCAMExcEditor.py:2484 AppObjects/FlatCAMExcellon.py:464 -msgid "Total Slots" -msgstr "Schlitz insgesamt" - -#: AppEditors/FlatCAMExcEditor.py:2559 AppEditors/FlatCAMGeoEditor.py:1075 -#: AppEditors/FlatCAMGeoEditor.py:1116 AppEditors/FlatCAMGeoEditor.py:1144 -#: AppEditors/FlatCAMGeoEditor.py:1172 AppEditors/FlatCAMGeoEditor.py:1216 -#: AppEditors/FlatCAMGeoEditor.py:1251 AppEditors/FlatCAMGeoEditor.py:1279 -#: AppObjects/FlatCAMGeometry.py:664 AppObjects/FlatCAMGeometry.py:1099 -#: AppObjects/FlatCAMGeometry.py:1841 AppObjects/FlatCAMGeometry.py:2491 -#: AppTools/ToolIsolation.py:1493 AppTools/ToolNCC.py:1516 -#: AppTools/ToolPaint.py:1268 AppTools/ToolPaint.py:1439 -#: AppTools/ToolSolderPaste.py:891 AppTools/ToolSolderPaste.py:964 -msgid "Wrong value format entered, use a number." -msgstr "Falsches Wertformat eingegeben, eine Zahl verwenden." - -#: AppEditors/FlatCAMExcEditor.py:2570 -msgid "" -"Tool already in the original or actual tool list.\n" -"Save and reedit Excellon if you need to add this tool. " -msgstr "" -"Werkzeug bereits in der ursprünglichen oder tatsächlichen Werkzeugliste.\n" -"Speichern Sie Excellon und bearbeiten Sie es erneut, wenn Sie dieses Tool " -"hinzufügen müssen. " - -#: AppEditors/FlatCAMExcEditor.py:2579 AppGUI/MainGUI.py:3364 -msgid "Added new tool with dia" -msgstr "Neues Werkzeug mit Durchmesser hinzugefügt" - -#: AppEditors/FlatCAMExcEditor.py:2612 -msgid "Select a tool in Tool Table" -msgstr "Wählen Sie ein Werkzeug in der Werkzeugtabelle aus" - -#: AppEditors/FlatCAMExcEditor.py:2642 -msgid "Deleted tool with diameter" -msgstr "Gelöschtes Werkzeug mit Durchmesser" - -#: AppEditors/FlatCAMExcEditor.py:2790 -msgid "Done. Tool edit completed." -msgstr "Erledigt. Werkzeugbearbeitung abgeschlossen." - -#: AppEditors/FlatCAMExcEditor.py:3327 -msgid "There are no Tools definitions in the file. Aborting Excellon creation." -msgstr "" -"Die Datei enthält keine Werkzeugdefinitionen. Abbruch der Excellon-" -"Erstellung." - -#: AppEditors/FlatCAMExcEditor.py:3331 -msgid "An internal error has ocurred. See Shell.\n" -msgstr "" -"Ein interner Fehler ist aufgetreten. Siehe Shell.\n" -"\n" - -#: AppEditors/FlatCAMExcEditor.py:3336 -msgid "Creating Excellon." -msgstr "Excellon erstellen." - -#: AppEditors/FlatCAMExcEditor.py:3350 -msgid "Excellon editing finished." -msgstr "Excellon-Bearbeitung abgeschlossen." - -#: AppEditors/FlatCAMExcEditor.py:3367 -msgid "Cancelled. There is no Tool/Drill selected" -msgstr "Abgebrochen. Es ist kein Werkzeug / Bohrer ausgewählt" - -#: AppEditors/FlatCAMExcEditor.py:3601 AppEditors/FlatCAMExcEditor.py:3609 -#: AppEditors/FlatCAMGeoEditor.py:4343 AppEditors/FlatCAMGeoEditor.py:4357 -#: AppEditors/FlatCAMGrbEditor.py:1085 AppEditors/FlatCAMGrbEditor.py:1312 -#: AppEditors/FlatCAMGrbEditor.py:1497 AppEditors/FlatCAMGrbEditor.py:1766 -#: AppEditors/FlatCAMGrbEditor.py:4609 AppEditors/FlatCAMGrbEditor.py:4626 -#: AppGUI/MainGUI.py:2711 AppGUI/MainGUI.py:2723 -#: AppTools/ToolAlignObjects.py:393 AppTools/ToolAlignObjects.py:415 -#: App_Main.py:4677 App_Main.py:4831 -msgid "Done." -msgstr "Fertig." - -#: AppEditors/FlatCAMExcEditor.py:3984 -msgid "Done. Drill(s) deleted." -msgstr "Erledigt. Bohrer gelöscht." - -#: AppEditors/FlatCAMExcEditor.py:4057 AppEditors/FlatCAMExcEditor.py:4067 -#: AppEditors/FlatCAMGrbEditor.py:5057 -msgid "Click on the circular array Center position" -msgstr "Klicken Sie auf die kreisförmige Anordnung in der Mitte" - -#: AppEditors/FlatCAMGeoEditor.py:84 -msgid "Buffer distance:" -msgstr "Pufferabstand:" - -#: AppEditors/FlatCAMGeoEditor.py:85 -msgid "Buffer corner:" -msgstr "Pufferecke:" - -#: AppEditors/FlatCAMGeoEditor.py:87 -msgid "" -"There are 3 types of corners:\n" -" - 'Round': the corner is rounded for exterior buffer.\n" -" - 'Square': the corner is met in a sharp angle for exterior buffer.\n" -" - 'Beveled': the corner is a line that directly connects the features " -"meeting in the corner" -msgstr "" -"Es gibt 3 Arten von Ecken:\n" -"- 'Rund': Die Ecke wird für den Außenpuffer abgerundet.\n" -"- 'Quadrat:' Die Ecke wird für den äußeren Puffer in einem spitzen Winkel " -"getroffen.\n" -"- 'Abgeschrägt:' Die Ecke ist eine Linie, die die Features, die sich in der " -"Ecke treffen, direkt verbindet" - -#: AppEditors/FlatCAMGeoEditor.py:93 AppEditors/FlatCAMGrbEditor.py:2638 -msgid "Round" -msgstr "Runden" - -#: AppEditors/FlatCAMGeoEditor.py:94 AppEditors/FlatCAMGrbEditor.py:2639 -#: AppGUI/ObjectUI.py:1149 AppGUI/ObjectUI.py:2004 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:225 -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:68 -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:175 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:68 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:177 -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:143 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:298 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:327 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:291 -#: AppTools/ToolExtractDrills.py:94 AppTools/ToolExtractDrills.py:227 -#: AppTools/ToolIsolation.py:545 AppTools/ToolNCC.py:583 -#: AppTools/ToolPaint.py:526 AppTools/ToolPunchGerber.py:105 -#: AppTools/ToolPunchGerber.py:255 AppTools/ToolQRCode.py:207 -msgid "Square" -msgstr "Quadrat" - -#: AppEditors/FlatCAMGeoEditor.py:95 AppEditors/FlatCAMGrbEditor.py:2640 -msgid "Beveled" -msgstr "Abgeschrägt" - -#: AppEditors/FlatCAMGeoEditor.py:102 -msgid "Buffer Interior" -msgstr "Pufferinnenraum" - -#: AppEditors/FlatCAMGeoEditor.py:104 -msgid "Buffer Exterior" -msgstr "Puffer außen" - -#: AppEditors/FlatCAMGeoEditor.py:110 -msgid "Full Buffer" -msgstr "Voller Puffer" - -#: AppEditors/FlatCAMGeoEditor.py:131 AppEditors/FlatCAMGeoEditor.py:3016 -#: AppGUI/MainGUI.py:4301 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:191 -msgid "Buffer Tool" -msgstr "Pufferwerkzeug" - -#: AppEditors/FlatCAMGeoEditor.py:143 AppEditors/FlatCAMGeoEditor.py:160 -#: AppEditors/FlatCAMGeoEditor.py:177 AppEditors/FlatCAMGeoEditor.py:3035 -#: AppEditors/FlatCAMGeoEditor.py:3063 AppEditors/FlatCAMGeoEditor.py:3091 -#: AppEditors/FlatCAMGrbEditor.py:5110 -msgid "Buffer distance value is missing or wrong format. Add it and retry." -msgstr "" -"Pufferabstandswert fehlt oder falsches Format. Fügen Sie es hinzu und " -"versuchen Sie es erneut." - -#: AppEditors/FlatCAMGeoEditor.py:241 -msgid "Font" -msgstr "Schrift" - -#: AppEditors/FlatCAMGeoEditor.py:322 AppGUI/MainGUI.py:1452 -msgid "Text" -msgstr "Text" - -#: AppEditors/FlatCAMGeoEditor.py:348 -msgid "Text Tool" -msgstr "Textwerkzeug" - -#: AppEditors/FlatCAMGeoEditor.py:404 AppGUI/MainGUI.py:502 -#: AppGUI/MainGUI.py:1199 AppGUI/ObjectUI.py:597 AppGUI/ObjectUI.py:1564 -#: AppObjects/FlatCAMExcellon.py:852 AppObjects/FlatCAMExcellon.py:1242 -#: AppObjects/FlatCAMGeometry.py:825 AppTools/ToolIsolation.py:313 -#: AppTools/ToolIsolation.py:1171 AppTools/ToolNCC.py:331 -#: AppTools/ToolNCC.py:797 AppTools/ToolPaint.py:313 AppTools/ToolPaint.py:766 -msgid "Tool" -msgstr "Werkzeug" - -#: AppEditors/FlatCAMGeoEditor.py:438 -msgid "Tool dia" -msgstr "Werkzeugdurchmesser" - -#: AppEditors/FlatCAMGeoEditor.py:440 -msgid "Diameter of the tool to be used in the operation." -msgstr "Durchmesser des im Betrieb zu verwendenden Werkzeugs." - -#: AppEditors/FlatCAMGeoEditor.py:486 -msgid "" -"Algorithm to paint the polygons:\n" -"- Standard: Fixed step inwards.\n" -"- Seed-based: Outwards from seed.\n" -"- Line-based: Parallel lines." -msgstr "" -"Algorithmus zum Malen der Polygone:\n" -"- Standard: Schritt nach innen behoben.\n" -"- Samenbasiert: Aus dem Samen heraus.\n" -"- Linienbasiert: Parallele Linien." - -#: AppEditors/FlatCAMGeoEditor.py:505 -msgid "Connect:" -msgstr "Verbinden:" - -#: AppEditors/FlatCAMGeoEditor.py:515 -msgid "Contour:" -msgstr "Kontur:" - -#: AppEditors/FlatCAMGeoEditor.py:528 AppGUI/MainGUI.py:1456 -msgid "Paint" -msgstr "Malen" - -#: AppEditors/FlatCAMGeoEditor.py:546 AppGUI/MainGUI.py:912 -#: AppGUI/MainGUI.py:1944 AppGUI/ObjectUI.py:2069 AppTools/ToolPaint.py:42 -#: AppTools/ToolPaint.py:737 -msgid "Paint Tool" -msgstr "Werkzeug Malen" - -#: AppEditors/FlatCAMGeoEditor.py:582 AppEditors/FlatCAMGeoEditor.py:1054 -#: AppEditors/FlatCAMGeoEditor.py:3023 AppEditors/FlatCAMGeoEditor.py:3051 -#: AppEditors/FlatCAMGeoEditor.py:3079 AppEditors/FlatCAMGeoEditor.py:4496 -#: AppEditors/FlatCAMGrbEditor.py:5761 -msgid "Cancelled. No shape selected." -msgstr "Abgebrochen. Keine Form ausgewählt." - -#: AppEditors/FlatCAMGeoEditor.py:595 AppEditors/FlatCAMGeoEditor.py:3041 -#: AppEditors/FlatCAMGeoEditor.py:3069 AppEditors/FlatCAMGeoEditor.py:3097 -#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:69 -#: AppTools/ToolProperties.py:117 AppTools/ToolProperties.py:162 -msgid "Tools" -msgstr "Werkzeuge" - -#: AppEditors/FlatCAMGeoEditor.py:606 AppEditors/FlatCAMGeoEditor.py:990 -#: AppEditors/FlatCAMGrbEditor.py:5300 AppEditors/FlatCAMGrbEditor.py:5697 -#: AppGUI/MainGUI.py:935 AppGUI/MainGUI.py:1967 AppTools/ToolTransform.py:460 -msgid "Transform Tool" -msgstr "Werkzeug Umwandeln" - -#: AppEditors/FlatCAMGeoEditor.py:607 AppEditors/FlatCAMGeoEditor.py:672 -#: AppEditors/FlatCAMGrbEditor.py:5301 AppEditors/FlatCAMGrbEditor.py:5366 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:45 -#: AppTools/ToolTransform.py:24 AppTools/ToolTransform.py:466 -msgid "Rotate" -msgstr "Drehen" - -#: AppEditors/FlatCAMGeoEditor.py:608 AppEditors/FlatCAMGrbEditor.py:5302 -#: AppTools/ToolTransform.py:25 -msgid "Skew/Shear" -msgstr "Neigung/Schere" - -#: AppEditors/FlatCAMGeoEditor.py:609 AppEditors/FlatCAMGrbEditor.py:2687 -#: AppEditors/FlatCAMGrbEditor.py:5303 AppGUI/MainGUI.py:1057 -#: AppGUI/MainGUI.py:1499 AppGUI/MainGUI.py:2089 AppGUI/MainGUI.py:4513 -#: AppGUI/ObjectUI.py:125 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:95 -#: AppTools/ToolTransform.py:26 -msgid "Scale" -msgstr "Skalieren" - -#: AppEditors/FlatCAMGeoEditor.py:610 AppEditors/FlatCAMGrbEditor.py:5304 -#: AppTools/ToolTransform.py:27 -msgid "Mirror (Flip)" -msgstr "Spiegeln (Flip)" - -#: AppEditors/FlatCAMGeoEditor.py:624 AppEditors/FlatCAMGrbEditor.py:5318 -#: AppGUI/MainGUI.py:844 AppGUI/MainGUI.py:1878 -msgid "Editor" -msgstr "Editor" - -#: AppEditors/FlatCAMGeoEditor.py:656 AppEditors/FlatCAMGrbEditor.py:5350 -msgid "Angle:" -msgstr "Winkel:" - -#: AppEditors/FlatCAMGeoEditor.py:658 AppEditors/FlatCAMGrbEditor.py:5352 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:55 -#: AppTools/ToolTransform.py:62 -msgid "" -"Angle for Rotation action, in degrees.\n" -"Float number between -360 and 359.\n" -"Positive numbers for CW motion.\n" -"Negative numbers for CCW motion." -msgstr "" -"Drehwinkel in Grad.\n" -"Float-Nummer zwischen -360 und 359.\n" -"Positive Zahlen für CW-Bewegung.\n" -"Negative Zahlen für CCW-Bewegung." - -#: AppEditors/FlatCAMGeoEditor.py:674 AppEditors/FlatCAMGrbEditor.py:5368 -msgid "" -"Rotate the selected shape(s).\n" -"The point of reference is the middle of\n" -"the bounding box for all selected shapes." -msgstr "" -"Die ausgewählten Formen drehen.\n" -"Der Bezugspunkt ist die Mitte von\n" -"der Begrenzungsrahmen für alle ausgewählten Formen." - -#: AppEditors/FlatCAMGeoEditor.py:697 AppEditors/FlatCAMGrbEditor.py:5391 -msgid "Angle X:" -msgstr "Winkel X:" - -#: AppEditors/FlatCAMGeoEditor.py:699 AppEditors/FlatCAMGeoEditor.py:719 -#: AppEditors/FlatCAMGrbEditor.py:5393 AppEditors/FlatCAMGrbEditor.py:5413 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:74 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:88 -#: AppTools/ToolCalibration.py:505 AppTools/ToolCalibration.py:518 -msgid "" -"Angle for Skew action, in degrees.\n" -"Float number between -360 and 359." -msgstr "" -"Winkel für die Schräglage in Grad.\n" -"Float-Nummer zwischen -360 und 359." - -#: AppEditors/FlatCAMGeoEditor.py:710 AppEditors/FlatCAMGrbEditor.py:5404 -#: AppTools/ToolTransform.py:467 -msgid "Skew X" -msgstr "Neigung X" - -#: AppEditors/FlatCAMGeoEditor.py:712 AppEditors/FlatCAMGeoEditor.py:732 -#: AppEditors/FlatCAMGrbEditor.py:5406 AppEditors/FlatCAMGrbEditor.py:5426 -msgid "" -"Skew/shear the selected shape(s).\n" -"The point of reference is the middle of\n" -"the bounding box for all selected shapes." -msgstr "" -"Schrägstellung/Scherung der ausgewählten Form(en).\n" -"Der Bezugspunkt ist die Mitte von\n" -"der Begrenzungsrahmen für alle ausgewählten Formen." - -#: AppEditors/FlatCAMGeoEditor.py:717 AppEditors/FlatCAMGrbEditor.py:5411 -msgid "Angle Y:" -msgstr "Winkel Y:" - -#: AppEditors/FlatCAMGeoEditor.py:730 AppEditors/FlatCAMGrbEditor.py:5424 -#: AppTools/ToolTransform.py:468 -msgid "Skew Y" -msgstr "Neigung Y" - -#: AppEditors/FlatCAMGeoEditor.py:758 AppEditors/FlatCAMGrbEditor.py:5452 -msgid "Factor X:" -msgstr "Faktor X:" - -#: AppEditors/FlatCAMGeoEditor.py:760 AppEditors/FlatCAMGrbEditor.py:5454 -#: AppTools/ToolCalibration.py:469 -msgid "Factor for Scale action over X axis." -msgstr "Faktor für die Skalierungsaktion über der X-Achse." - -#: AppEditors/FlatCAMGeoEditor.py:770 AppEditors/FlatCAMGrbEditor.py:5464 -#: AppTools/ToolTransform.py:469 -msgid "Scale X" -msgstr "Maßstab X" - -#: AppEditors/FlatCAMGeoEditor.py:772 AppEditors/FlatCAMGeoEditor.py:791 -#: AppEditors/FlatCAMGrbEditor.py:5466 AppEditors/FlatCAMGrbEditor.py:5485 -msgid "" -"Scale the selected shape(s).\n" -"The point of reference depends on \n" -"the Scale reference checkbox state." -msgstr "" -"Skalieren Sie die ausgewählten Formen.\n" -"Der Bezugspunkt hängt von ab\n" -"das Kontrollkästchen Skalenreferenz." - -#: AppEditors/FlatCAMGeoEditor.py:777 AppEditors/FlatCAMGrbEditor.py:5471 -msgid "Factor Y:" -msgstr "Faktor Y:" - -#: AppEditors/FlatCAMGeoEditor.py:779 AppEditors/FlatCAMGrbEditor.py:5473 -#: AppTools/ToolCalibration.py:481 -msgid "Factor for Scale action over Y axis." -msgstr "Faktor für die Skalierungsaktion über der Y-Achse." - -#: AppEditors/FlatCAMGeoEditor.py:789 AppEditors/FlatCAMGrbEditor.py:5483 -#: AppTools/ToolTransform.py:470 -msgid "Scale Y" -msgstr "Maßstab Y" - -#: AppEditors/FlatCAMGeoEditor.py:798 AppEditors/FlatCAMGrbEditor.py:5492 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:124 -#: AppTools/ToolTransform.py:189 -msgid "Link" -msgstr "Verknüpfung" - -#: AppEditors/FlatCAMGeoEditor.py:800 AppEditors/FlatCAMGrbEditor.py:5494 -msgid "" -"Scale the selected shape(s)\n" -"using the Scale Factor X for both axis." -msgstr "" -"Skalieren der ausgewählten Form (en)\n" -"Verwenden des Skalierungsfaktors X für beide Achsen." - -#: AppEditors/FlatCAMGeoEditor.py:806 AppEditors/FlatCAMGrbEditor.py:5500 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:132 -#: AppTools/ToolTransform.py:196 -msgid "Scale Reference" -msgstr "Skalenreferenz" - -#: AppEditors/FlatCAMGeoEditor.py:808 AppEditors/FlatCAMGrbEditor.py:5502 -msgid "" -"Scale the selected shape(s)\n" -"using the origin reference when checked,\n" -"and the center of the biggest bounding box\n" -"of the selected shapes when unchecked." -msgstr "" -"Skalieren der ausgewählten Form (en)\n" -"unter Verwendung der Ursprungsreferenz, wenn geprüft\n" -"und die Mitte der größten Begrenzungsbox\n" -"der ausgewählten Formen, wenn nicht markiert." - -#: AppEditors/FlatCAMGeoEditor.py:836 AppEditors/FlatCAMGrbEditor.py:5531 -msgid "Value X:" -msgstr "Wert X:" - -#: AppEditors/FlatCAMGeoEditor.py:838 AppEditors/FlatCAMGrbEditor.py:5533 -msgid "Value for Offset action on X axis." -msgstr "Wert für die Offset-Aktion auf der X-Achse." - -#: AppEditors/FlatCAMGeoEditor.py:848 AppEditors/FlatCAMGrbEditor.py:5543 -#: AppTools/ToolTransform.py:473 -msgid "Offset X" -msgstr "Versatz X" - -#: AppEditors/FlatCAMGeoEditor.py:850 AppEditors/FlatCAMGeoEditor.py:870 -#: AppEditors/FlatCAMGrbEditor.py:5545 AppEditors/FlatCAMGrbEditor.py:5565 -msgid "" -"Offset the selected shape(s).\n" -"The point of reference is the middle of\n" -"the bounding box for all selected shapes.\n" -msgstr "" -"Versetzt die ausgewählten Formen.\n" -"Der Bezugspunkt ist die Mitte von\n" -"der Begrenzungsrahmen für alle ausgewählten Formen.\n" - -#: AppEditors/FlatCAMGeoEditor.py:856 AppEditors/FlatCAMGrbEditor.py:5551 -msgid "Value Y:" -msgstr "Wert Y:" - -#: AppEditors/FlatCAMGeoEditor.py:858 AppEditors/FlatCAMGrbEditor.py:5553 -msgid "Value for Offset action on Y axis." -msgstr "Wert für die Offset-Aktion auf der Y-Achse." - -#: AppEditors/FlatCAMGeoEditor.py:868 AppEditors/FlatCAMGrbEditor.py:5563 -#: AppTools/ToolTransform.py:474 -msgid "Offset Y" -msgstr "Versatz Y" - -#: AppEditors/FlatCAMGeoEditor.py:899 AppEditors/FlatCAMGrbEditor.py:5594 -#: AppTools/ToolTransform.py:475 -msgid "Flip on X" -msgstr "Flip auf X" - -#: AppEditors/FlatCAMGeoEditor.py:901 AppEditors/FlatCAMGeoEditor.py:908 -#: AppEditors/FlatCAMGrbEditor.py:5596 AppEditors/FlatCAMGrbEditor.py:5603 -msgid "" -"Flip the selected shape(s) over the X axis.\n" -"Does not create a new shape." -msgstr "" -"Kippen Sie die ausgewählte Form (en) über die X-Achse.\n" -"Erzeugt keine neue Form." - -#: AppEditors/FlatCAMGeoEditor.py:906 AppEditors/FlatCAMGrbEditor.py:5601 -#: AppTools/ToolTransform.py:476 -msgid "Flip on Y" -msgstr "Flip auf Y" - -#: AppEditors/FlatCAMGeoEditor.py:914 AppEditors/FlatCAMGrbEditor.py:5609 -msgid "Ref Pt" -msgstr "Ref. Pt" - -#: AppEditors/FlatCAMGeoEditor.py:916 AppEditors/FlatCAMGrbEditor.py:5611 -msgid "" -"Flip the selected shape(s)\n" -"around the point in Point Entry Field.\n" -"\n" -"The point coordinates can be captured by\n" -"left click on canvas together with pressing\n" -"SHIFT key. \n" -"Then click Add button to insert coordinates.\n" -"Or enter the coords in format (x, y) in the\n" -"Point Entry field and click Flip on X(Y)" -msgstr "" -"Die ausgewählten Formen umdrehen\n" -"um den Punkt im Eingabefeld.\n" -"\n" -"Die Punktkoordinaten können mit erfasst werden\n" -"Klicken Sie mit der linken Maustaste auf die Leinwand\n" -"Shift Taste.\n" -"Klicken Sie dann auf die Schaltfläche Hinzufügen, um die Koordinaten " -"einzufügen.\n" -"Oder geben Sie die Koordinaten im Format (x, y) in ein\n" -"Punkt-Eingabefeld und klicken Sie auf X (Y) drehen" - -#: AppEditors/FlatCAMGeoEditor.py:928 AppEditors/FlatCAMGrbEditor.py:5623 -msgid "Point:" -msgstr "Punkt:" - -#: AppEditors/FlatCAMGeoEditor.py:930 AppEditors/FlatCAMGrbEditor.py:5625 -#: AppTools/ToolTransform.py:299 -msgid "" -"Coordinates in format (x, y) used as reference for mirroring.\n" -"The 'x' in (x, y) will be used when using Flip on X and\n" -"the 'y' in (x, y) will be used when using Flip on Y." -msgstr "" -"Koordinaten im Format (x, y), die als Referenz für die Spiegelung verwendet " -"werden.\n" -"Das 'x' in (x, y) wird verwendet, wenn Sie bei X und\n" -"Das 'y' in (x, y) wird verwendet, wenn Flip auf Y verwendet wird." - -#: AppEditors/FlatCAMGeoEditor.py:938 AppEditors/FlatCAMGrbEditor.py:2590 -#: AppEditors/FlatCAMGrbEditor.py:5635 AppGUI/ObjectUI.py:1494 -#: AppTools/ToolDblSided.py:192 AppTools/ToolDblSided.py:425 -#: AppTools/ToolIsolation.py:276 AppTools/ToolIsolation.py:610 -#: AppTools/ToolNCC.py:294 AppTools/ToolNCC.py:631 AppTools/ToolPaint.py:276 -#: AppTools/ToolPaint.py:675 AppTools/ToolSolderPaste.py:127 -#: AppTools/ToolSolderPaste.py:605 AppTools/ToolTransform.py:478 -#: App_Main.py:5670 -msgid "Add" -msgstr "Hinzufügen" - -#: AppEditors/FlatCAMGeoEditor.py:940 AppEditors/FlatCAMGrbEditor.py:5637 -#: AppTools/ToolTransform.py:309 -msgid "" -"The point coordinates can be captured by\n" -"left click on canvas together with pressing\n" -"SHIFT key. Then click Add button to insert." -msgstr "" -"Die Punktkoordinaten können mit erfasst werden\n" -"Klicken Sie mit der linken Maustaste auf die Leinwand\n" -"Shift Taste. Klicken Sie dann auf die Schaltfläche Hinzufügen, um sie " -"einzufügen." - -#: AppEditors/FlatCAMGeoEditor.py:1303 AppEditors/FlatCAMGrbEditor.py:5945 -msgid "No shape selected. Please Select a shape to rotate!" -msgstr "Keine Form ausgewählt Bitte wählen Sie eine Form zum Drehen aus!" - -#: AppEditors/FlatCAMGeoEditor.py:1306 AppEditors/FlatCAMGrbEditor.py:5948 -#: AppTools/ToolTransform.py:679 -msgid "Appying Rotate" -msgstr "Anwenden Drehen" - -#: AppEditors/FlatCAMGeoEditor.py:1332 AppEditors/FlatCAMGrbEditor.py:5980 -msgid "Done. Rotate completed." -msgstr "Erledigt. Drehen abgeschlossen." - -#: AppEditors/FlatCAMGeoEditor.py:1334 -msgid "Rotation action was not executed" -msgstr "Rotationsaktion wurde nicht ausgeführt" - -#: AppEditors/FlatCAMGeoEditor.py:1353 AppEditors/FlatCAMGrbEditor.py:5999 -msgid "No shape selected. Please Select a shape to flip!" -msgstr "Keine Form ausgewählt. Bitte wählen Sie eine Form zum Kippen!" - -#: AppEditors/FlatCAMGeoEditor.py:1356 AppEditors/FlatCAMGrbEditor.py:6002 -#: AppTools/ToolTransform.py:728 -msgid "Applying Flip" -msgstr "Flip anwenden" - -#: AppEditors/FlatCAMGeoEditor.py:1385 AppEditors/FlatCAMGrbEditor.py:6040 -#: AppTools/ToolTransform.py:769 -msgid "Flip on the Y axis done" -msgstr "Spiegeln Sie die Y-Achse bereit" - -#: AppEditors/FlatCAMGeoEditor.py:1389 AppEditors/FlatCAMGrbEditor.py:6049 -#: AppTools/ToolTransform.py:778 -msgid "Flip on the X axis done" -msgstr "Spiegeln Sie die X-Achse bereit" - -#: AppEditors/FlatCAMGeoEditor.py:1397 -msgid "Flip action was not executed" -msgstr "Spiegeln-Aktion wurde nicht ausgeführt" - -#: AppEditors/FlatCAMGeoEditor.py:1415 AppEditors/FlatCAMGrbEditor.py:6069 -msgid "No shape selected. Please Select a shape to shear/skew!" -msgstr "" -"Keine Form ausgewählt. Bitte wählen Sie eine Form zum Scheren / " -"Schrägstellen!" - -#: AppEditors/FlatCAMGeoEditor.py:1418 AppEditors/FlatCAMGrbEditor.py:6072 -#: AppTools/ToolTransform.py:801 -msgid "Applying Skew" -msgstr "Schräglauf anwenden" - -#: AppEditors/FlatCAMGeoEditor.py:1441 AppEditors/FlatCAMGrbEditor.py:6106 -msgid "Skew on the X axis done" -msgstr "Schrägstellung auf der X-Achse erfolgt" - -#: AppEditors/FlatCAMGeoEditor.py:1443 AppEditors/FlatCAMGrbEditor.py:6108 -msgid "Skew on the Y axis done" -msgstr "Schrägstellung auf der Y-Achse erfolgt" - -#: AppEditors/FlatCAMGeoEditor.py:1446 -msgid "Skew action was not executed" -msgstr "Die Versatzaktion wurde nicht ausgeführt" - -#: AppEditors/FlatCAMGeoEditor.py:1468 AppEditors/FlatCAMGrbEditor.py:6130 -msgid "No shape selected. Please Select a shape to scale!" -msgstr "Keine Form ausgewählt. Bitte wählen Sie eine zu skalierende Form!" - -#: AppEditors/FlatCAMGeoEditor.py:1471 AppEditors/FlatCAMGrbEditor.py:6133 -#: AppTools/ToolTransform.py:847 -msgid "Applying Scale" -msgstr "Maßstab anwenden" - -#: AppEditors/FlatCAMGeoEditor.py:1503 AppEditors/FlatCAMGrbEditor.py:6170 -msgid "Scale on the X axis done" -msgstr "Skalieren auf der X-Achse erledigt" - -#: AppEditors/FlatCAMGeoEditor.py:1505 AppEditors/FlatCAMGrbEditor.py:6172 -msgid "Scale on the Y axis done" -msgstr "Skalieren auf der Y-Achse erledigt" - -#: AppEditors/FlatCAMGeoEditor.py:1507 -msgid "Scale action was not executed" -msgstr "Skalierungsaktion wurde nicht ausgeführt" - -#: AppEditors/FlatCAMGeoEditor.py:1522 AppEditors/FlatCAMGrbEditor.py:6189 -msgid "No shape selected. Please Select a shape to offset!" -msgstr "Keine Form ausgewählt. Bitte wählen Sie eine zu versetzende Form!" - -#: AppEditors/FlatCAMGeoEditor.py:1525 AppEditors/FlatCAMGrbEditor.py:6192 -#: AppTools/ToolTransform.py:897 -msgid "Applying Offset" -msgstr "Offsetdruck anwenden" - -#: AppEditors/FlatCAMGeoEditor.py:1535 AppEditors/FlatCAMGrbEditor.py:6213 -msgid "Offset on the X axis done" -msgstr "Versatz auf der X-Achse erfolgt" - -#: AppEditors/FlatCAMGeoEditor.py:1537 AppEditors/FlatCAMGrbEditor.py:6215 -msgid "Offset on the Y axis done" -msgstr "Versatz auf der Y-Achse erfolgt" - -#: AppEditors/FlatCAMGeoEditor.py:1540 -msgid "Offset action was not executed" -msgstr "Offsetaktion wurde nicht ausgeführt" - -#: AppEditors/FlatCAMGeoEditor.py:1544 AppEditors/FlatCAMGrbEditor.py:6222 -msgid "Rotate ..." -msgstr "Drehen ..." - -#: AppEditors/FlatCAMGeoEditor.py:1545 AppEditors/FlatCAMGeoEditor.py:1600 -#: AppEditors/FlatCAMGeoEditor.py:1617 AppEditors/FlatCAMGrbEditor.py:6223 -#: AppEditors/FlatCAMGrbEditor.py:6272 AppEditors/FlatCAMGrbEditor.py:6287 -msgid "Enter an Angle Value (degrees)" -msgstr "Geben Sie einen Winkelwert (Grad) ein" - -#: AppEditors/FlatCAMGeoEditor.py:1554 AppEditors/FlatCAMGrbEditor.py:6231 -msgid "Geometry shape rotate done" -msgstr "Geometrieform drehen fertig" - -#: AppEditors/FlatCAMGeoEditor.py:1558 AppEditors/FlatCAMGrbEditor.py:6234 -msgid "Geometry shape rotate cancelled" -msgstr "Geometrieform drehen abgebrochen" - -#: AppEditors/FlatCAMGeoEditor.py:1563 AppEditors/FlatCAMGrbEditor.py:6239 -msgid "Offset on X axis ..." -msgstr "Versatz auf der X-Achse ..." - -#: AppEditors/FlatCAMGeoEditor.py:1564 AppEditors/FlatCAMGeoEditor.py:1583 -#: AppEditors/FlatCAMGrbEditor.py:6240 AppEditors/FlatCAMGrbEditor.py:6257 -msgid "Enter a distance Value" -msgstr "Geben Sie einen Abstandswert ein" - -#: AppEditors/FlatCAMGeoEditor.py:1573 AppEditors/FlatCAMGrbEditor.py:6248 -msgid "Geometry shape offset on X axis done" -msgstr "Geometrieformversatz auf der X-Achse erfolgt" - -#: AppEditors/FlatCAMGeoEditor.py:1577 AppEditors/FlatCAMGrbEditor.py:6251 -msgid "Geometry shape offset X cancelled" -msgstr "[WARNING_NOTCL] Geometrieformversatz X abgebrochen" - -#: AppEditors/FlatCAMGeoEditor.py:1582 AppEditors/FlatCAMGrbEditor.py:6256 -msgid "Offset on Y axis ..." -msgstr "Versatz auf der Y-Achse ..." - -#: AppEditors/FlatCAMGeoEditor.py:1592 AppEditors/FlatCAMGrbEditor.py:6265 -msgid "Geometry shape offset on Y axis done" -msgstr "Geometrieformversatz auf Y-Achse erfolgt" - -#: AppEditors/FlatCAMGeoEditor.py:1596 -msgid "Geometry shape offset on Y axis canceled" -msgstr "Geometrieformversatz auf Y-Achse erfolgt" - -#: AppEditors/FlatCAMGeoEditor.py:1599 AppEditors/FlatCAMGrbEditor.py:6271 -msgid "Skew on X axis ..." -msgstr "Neigung auf der X-Achse ..." - -#: AppEditors/FlatCAMGeoEditor.py:1609 AppEditors/FlatCAMGrbEditor.py:6280 -msgid "Geometry shape skew on X axis done" -msgstr "Geometrieformversatz auf X-Achse" - -#: AppEditors/FlatCAMGeoEditor.py:1613 -msgid "Geometry shape skew on X axis canceled" -msgstr "Geometrieformversatz auf X-Achse" - -#: AppEditors/FlatCAMGeoEditor.py:1616 AppEditors/FlatCAMGrbEditor.py:6286 -msgid "Skew on Y axis ..." -msgstr "Neigung auf der Y-Achse ..." - -#: AppEditors/FlatCAMGeoEditor.py:1626 AppEditors/FlatCAMGrbEditor.py:6295 -msgid "Geometry shape skew on Y axis done" -msgstr "Geometrieformversatz auf Y-Achse erfolgt" - -#: AppEditors/FlatCAMGeoEditor.py:1630 -msgid "Geometry shape skew on Y axis canceled" -msgstr "Geometrieformversatz auf Y-Achse erfolgt" - -#: AppEditors/FlatCAMGeoEditor.py:2007 AppEditors/FlatCAMGeoEditor.py:2078 -#: AppEditors/FlatCAMGrbEditor.py:1444 AppEditors/FlatCAMGrbEditor.py:1522 -msgid "Click on Center point ..." -msgstr "Klicken Sie auf Mittelpunkt." - -#: AppEditors/FlatCAMGeoEditor.py:2020 AppEditors/FlatCAMGrbEditor.py:1454 -msgid "Click on Perimeter point to complete ..." -msgstr "Klicken Sie auf Umfangspunkt, um den Vorgang abzuschließen." - -#: AppEditors/FlatCAMGeoEditor.py:2052 -msgid "Done. Adding Circle completed." -msgstr "Erledigt. Hinzufügen des Kreises abgeschlossen." - -#: AppEditors/FlatCAMGeoEditor.py:2106 AppEditors/FlatCAMGrbEditor.py:1555 -msgid "Click on Start point ..." -msgstr "Klicken Sie auf Startpunkt ..." - -#: AppEditors/FlatCAMGeoEditor.py:2108 AppEditors/FlatCAMGrbEditor.py:1557 -msgid "Click on Point3 ..." -msgstr "Klicken Sie auf Punkt3 ..." - -#: AppEditors/FlatCAMGeoEditor.py:2110 AppEditors/FlatCAMGrbEditor.py:1559 -msgid "Click on Stop point ..." -msgstr "Klicken Sie auf Haltepunkt ..." - -#: AppEditors/FlatCAMGeoEditor.py:2115 AppEditors/FlatCAMGrbEditor.py:1564 -msgid "Click on Stop point to complete ..." -msgstr "Klicken Sie auf Stopp, um den Vorgang abzuschließen." - -#: AppEditors/FlatCAMGeoEditor.py:2117 AppEditors/FlatCAMGrbEditor.py:1566 -msgid "Click on Point2 to complete ..." -msgstr "Klicken Sie auf Punkt2, um den Vorgang abzuschließen." - -#: AppEditors/FlatCAMGeoEditor.py:2119 AppEditors/FlatCAMGrbEditor.py:1568 -msgid "Click on Center point to complete ..." -msgstr "Klicken Sie auf Mittelpunkt, um den Vorgang abzuschließen." - -#: AppEditors/FlatCAMGeoEditor.py:2131 -#, python-format -msgid "Direction: %s" -msgstr "Richtung: %s" - -#: AppEditors/FlatCAMGeoEditor.py:2145 AppEditors/FlatCAMGrbEditor.py:1594 -msgid "Mode: Start -> Stop -> Center. Click on Start point ..." -msgstr "Modus: Start -> Stopp -> Zentrieren. Klicken Sie auf Startpunkt ..." - -#: AppEditors/FlatCAMGeoEditor.py:2148 AppEditors/FlatCAMGrbEditor.py:1597 -msgid "Mode: Point1 -> Point3 -> Point2. Click on Point1 ..." -msgstr "Modus: Punkt 1 -> Punkt 3 -> Punkt 2. Klicken Sie auf Punkt1 ..." - -#: AppEditors/FlatCAMGeoEditor.py:2151 AppEditors/FlatCAMGrbEditor.py:1600 -msgid "Mode: Center -> Start -> Stop. Click on Center point ..." -msgstr "Modus: Mitte -> Start -> Stopp. Klicken Sie auf Mittelpunkt." - -#: AppEditors/FlatCAMGeoEditor.py:2292 -msgid "Done. Arc completed." -msgstr "Erledigt. Arc abgeschlossen." - -#: AppEditors/FlatCAMGeoEditor.py:2323 AppEditors/FlatCAMGeoEditor.py:2396 -msgid "Click on 1st corner ..." -msgstr "Klicken Sie auf die 1. Ecke ..." - -#: AppEditors/FlatCAMGeoEditor.py:2335 -msgid "Click on opposite corner to complete ..." -msgstr "" -"Klicken Sie auf die gegenüberliegende Ecke, um den Vorgang abzuschließen." - -#: AppEditors/FlatCAMGeoEditor.py:2365 -msgid "Done. Rectangle completed." -msgstr "Erledigt. Rechteck fertiggestellt." - -#: AppEditors/FlatCAMGeoEditor.py:2409 AppTools/ToolIsolation.py:2527 -#: AppTools/ToolNCC.py:1754 AppTools/ToolPaint.py:1647 Common.py:322 -msgid "Click on next Point or click right mouse button to complete ..." -msgstr "" -"Klicken Sie auf den nächsten Punkt oder klicken Sie mit der rechten " -"Maustaste, um den Vorgang abzuschließen." - -#: AppEditors/FlatCAMGeoEditor.py:2440 -msgid "Done. Polygon completed." -msgstr "Erledigt. Polygon fertiggestellt." - -#: AppEditors/FlatCAMGeoEditor.py:2454 AppEditors/FlatCAMGeoEditor.py:2519 -#: AppEditors/FlatCAMGrbEditor.py:1102 AppEditors/FlatCAMGrbEditor.py:1322 -msgid "Backtracked one point ..." -msgstr "Einen Punkt zurückverfolgt ..." - -#: AppEditors/FlatCAMGeoEditor.py:2497 -msgid "Done. Path completed." -msgstr "Getan. Pfad abgeschlossen." - -#: AppEditors/FlatCAMGeoEditor.py:2656 -msgid "No shape selected. Select a shape to explode" -msgstr "Keine Form ausgewählt. Wählen Sie eine Form zum Auflösen aus" - -#: AppEditors/FlatCAMGeoEditor.py:2689 -msgid "Done. Polygons exploded into lines." -msgstr "Getan. Polygone explodierten in Linien." - -#: AppEditors/FlatCAMGeoEditor.py:2721 -msgid "MOVE: No shape selected. Select a shape to move" -msgstr "Bewegen: Keine Form ausgewählt. Wähle eine Form zum Bewegen aus" - -#: AppEditors/FlatCAMGeoEditor.py:2724 AppEditors/FlatCAMGeoEditor.py:2744 -msgid " MOVE: Click on reference point ..." -msgstr " Bewegen: Referenzpunkt anklicken ..." - -#: AppEditors/FlatCAMGeoEditor.py:2729 -msgid " Click on destination point ..." -msgstr " Klicken Sie auf den Zielpunkt ..." - -#: AppEditors/FlatCAMGeoEditor.py:2769 -msgid "Done. Geometry(s) Move completed." -msgstr "Erledigt. Geometrie(n) Bewegung abgeschlossen." - -#: AppEditors/FlatCAMGeoEditor.py:2902 -msgid "Done. Geometry(s) Copy completed." -msgstr "Erledigt. Geometrie(n) Kopieren abgeschlossen." - -#: AppEditors/FlatCAMGeoEditor.py:2933 AppEditors/FlatCAMGrbEditor.py:897 -msgid "Click on 1st point ..." -msgstr "Klicken Sie auf den 1. Punkt ..." - -#: AppEditors/FlatCAMGeoEditor.py:2957 -msgid "" -"Font not supported. Only Regular, Bold, Italic and BoldItalic are supported. " -"Error" -msgstr "" -"Schrift wird nicht unterstützt. Es werden nur Regular, Bold, Italic und " -"BoldItalic unterstützt. Error" - -#: AppEditors/FlatCAMGeoEditor.py:2965 -msgid "No text to add." -msgstr "Kein Text zum Hinzufügen." - -#: AppEditors/FlatCAMGeoEditor.py:2975 -msgid " Done. Adding Text completed." -msgstr " Erledigt. Hinzufügen von Text abgeschlossen." - -#: AppEditors/FlatCAMGeoEditor.py:3012 -msgid "Create buffer geometry ..." -msgstr "Puffergeometrie erstellen ..." - -#: AppEditors/FlatCAMGeoEditor.py:3047 AppEditors/FlatCAMGrbEditor.py:5154 -msgid "Done. Buffer Tool completed." -msgstr "Erledigt. Pufferwerkzeug abgeschlossen." - -#: AppEditors/FlatCAMGeoEditor.py:3075 -msgid "Done. Buffer Int Tool completed." -msgstr "Erledigt. Innenpufferwerkzeug abgeschlossen." - -#: AppEditors/FlatCAMGeoEditor.py:3103 -msgid "Done. Buffer Ext Tool completed." -msgstr "Erledigt. Außenpufferwerkzeug abgeschlossen." - -#: AppEditors/FlatCAMGeoEditor.py:3152 AppEditors/FlatCAMGrbEditor.py:2160 -msgid "Select a shape to act as deletion area ..." -msgstr "Wählen Sie eine Form als Löschbereich aus ..." - -#: AppEditors/FlatCAMGeoEditor.py:3154 AppEditors/FlatCAMGeoEditor.py:3180 -#: AppEditors/FlatCAMGeoEditor.py:3186 AppEditors/FlatCAMGrbEditor.py:2162 -msgid "Click to pick-up the erase shape..." -msgstr "Klicken Sie, um die Löschform aufzunehmen ..." - -#: AppEditors/FlatCAMGeoEditor.py:3190 AppEditors/FlatCAMGrbEditor.py:2221 -msgid "Click to erase ..." -msgstr "Klicken zum Löschen ..." - -#: AppEditors/FlatCAMGeoEditor.py:3219 AppEditors/FlatCAMGrbEditor.py:2254 -msgid "Done. Eraser tool action completed." -msgstr "Erledigt. Radiergummi-Aktion abgeschlossen." - -#: AppEditors/FlatCAMGeoEditor.py:3269 -msgid "Create Paint geometry ..." -msgstr "Malen geometrie erstellen ..." - -#: AppEditors/FlatCAMGeoEditor.py:3282 AppEditors/FlatCAMGrbEditor.py:2417 -msgid "Shape transformations ..." -msgstr "Formtransformationen ..." - -#: AppEditors/FlatCAMGeoEditor.py:3338 -#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:27 -msgid "Geometry Editor" -msgstr "Geo-Editor" - -#: AppEditors/FlatCAMGeoEditor.py:3344 AppEditors/FlatCAMGrbEditor.py:2495 -#: AppEditors/FlatCAMGrbEditor.py:3952 AppGUI/ObjectUI.py:282 -#: AppGUI/ObjectUI.py:1394 AppGUI/ObjectUI.py:2256 AppTools/ToolCutOut.py:95 -msgid "Type" -msgstr "Typ" - -#: AppEditors/FlatCAMGeoEditor.py:3344 AppGUI/ObjectUI.py:221 -#: AppGUI/ObjectUI.py:521 AppGUI/ObjectUI.py:1330 AppGUI/ObjectUI.py:2165 -#: AppGUI/ObjectUI.py:2469 AppGUI/ObjectUI.py:2536 -#: AppTools/ToolCalibration.py:234 AppTools/ToolFiducials.py:70 -msgid "Name" -msgstr "Name" - -#: AppEditors/FlatCAMGeoEditor.py:3596 -msgid "Ring" -msgstr "Ring" - -#: AppEditors/FlatCAMGeoEditor.py:3598 -msgid "Line" -msgstr "Linie" - -#: AppEditors/FlatCAMGeoEditor.py:3600 AppGUI/MainGUI.py:1446 -#: AppGUI/ObjectUI.py:1150 AppGUI/ObjectUI.py:2005 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:226 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:299 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:328 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:292 -#: AppTools/ToolIsolation.py:546 AppTools/ToolNCC.py:584 -#: AppTools/ToolPaint.py:527 -msgid "Polygon" -msgstr "Polygon" - -#: AppEditors/FlatCAMGeoEditor.py:3602 -msgid "Multi-Line" -msgstr "Mehrzeilig" - -#: AppEditors/FlatCAMGeoEditor.py:3604 -msgid "Multi-Polygon" -msgstr "Multi-Polygon" - -#: AppEditors/FlatCAMGeoEditor.py:3611 -msgid "Geo Elem" -msgstr "Geoelement" - -#: AppEditors/FlatCAMGeoEditor.py:4064 -msgid "Editing MultiGeo Geometry, tool" -msgstr "Bearbeiten von MultiGeo Geometry, Werkzeug" - -#: AppEditors/FlatCAMGeoEditor.py:4066 -msgid "with diameter" -msgstr "mit Durchmesser" - -#: AppEditors/FlatCAMGeoEditor.py:4138 -msgid "Grid Snap enabled." -msgstr "Rasterfang aktiviert." - -#: AppEditors/FlatCAMGeoEditor.py:4142 -msgid "Grid Snap disabled." -msgstr "Rasterfang deaktiviert." - -#: AppEditors/FlatCAMGeoEditor.py:4503 AppGUI/MainGUI.py:3046 -#: AppGUI/MainGUI.py:3092 AppGUI/MainGUI.py:3110 AppGUI/MainGUI.py:3254 -#: AppGUI/MainGUI.py:3293 AppGUI/MainGUI.py:3305 AppGUI/MainGUI.py:3322 -msgid "Click on target point." -msgstr "Klicken Sie auf den Zielpunkt." - -#: AppEditors/FlatCAMGeoEditor.py:4819 AppEditors/FlatCAMGeoEditor.py:4854 -msgid "A selection of at least 2 geo items is required to do Intersection." -msgstr "" -"Eine Auswahl von mindestens 2 Geo-Elementen ist erforderlich, um die " -"Kreuzung durchzuführen." - -#: AppEditors/FlatCAMGeoEditor.py:4940 AppEditors/FlatCAMGeoEditor.py:5044 -msgid "" -"Negative buffer value is not accepted. Use Buffer interior to generate an " -"'inside' shape" -msgstr "" -"Negativer Pufferwert wird nicht akzeptiert. Verwenden Sie den " -"Pufferinnenraum, um eine Innenform zu erzeugen" - -#: AppEditors/FlatCAMGeoEditor.py:4950 AppEditors/FlatCAMGeoEditor.py:5003 -#: AppEditors/FlatCAMGeoEditor.py:5053 -msgid "Nothing selected for buffering." -msgstr "Nichts ist für die Pufferung ausgewählt." - -#: AppEditors/FlatCAMGeoEditor.py:4955 AppEditors/FlatCAMGeoEditor.py:5007 -#: AppEditors/FlatCAMGeoEditor.py:5058 -msgid "Invalid distance for buffering." -msgstr "Ungültige Entfernung zum Puffern." - -#: AppEditors/FlatCAMGeoEditor.py:4979 AppEditors/FlatCAMGeoEditor.py:5078 -msgid "Failed, the result is empty. Choose a different buffer value." -msgstr "" -"Fehlgeschlagen, das Ergebnis ist leer. Wählen Sie einen anderen Pufferwert." - -#: AppEditors/FlatCAMGeoEditor.py:4990 -msgid "Full buffer geometry created." -msgstr "Volle Puffergeometrie erstellt." - -#: AppEditors/FlatCAMGeoEditor.py:4996 -msgid "Negative buffer value is not accepted." -msgstr "Negativer Pufferwert wird nicht akzeptiert." - -#: AppEditors/FlatCAMGeoEditor.py:5027 -msgid "Failed, the result is empty. Choose a smaller buffer value." -msgstr "" -"Fehlgeschlagen, das Ergebnis ist leer. Wählen Sie einen kleineren Pufferwert." - -#: AppEditors/FlatCAMGeoEditor.py:5037 -msgid "Interior buffer geometry created." -msgstr "Innere Puffergeometrie erstellt." - -#: AppEditors/FlatCAMGeoEditor.py:5088 -msgid "Exterior buffer geometry created." -msgstr "Außenpuffergeometrie erstellt." - -#: AppEditors/FlatCAMGeoEditor.py:5094 -#, python-format -msgid "Could not do Paint. Overlap value has to be less than 100%%." -msgstr "Konnte nicht Malen. Der Überlappungswert muss kleiner als 100 %% sein." - -#: AppEditors/FlatCAMGeoEditor.py:5101 -msgid "Nothing selected for painting." -msgstr "Nichts zum Malen ausgewählt." - -#: AppEditors/FlatCAMGeoEditor.py:5107 -msgid "Invalid value for" -msgstr "Ungültiger Wert für" - -#: AppEditors/FlatCAMGeoEditor.py:5166 -msgid "" -"Could not do Paint. Try a different combination of parameters. Or a " -"different method of Paint" -msgstr "" -"Konnte nicht malen. Probieren Sie eine andere Kombination von Parametern " -"aus. Oder eine andere Malmethode" - -#: AppEditors/FlatCAMGeoEditor.py:5177 -msgid "Paint done." -msgstr "Malen fertig." - -#: AppEditors/FlatCAMGrbEditor.py:211 -msgid "To add an Pad first select a aperture in Aperture Table" -msgstr "" -"Um ein Pad hinzuzufügen, wählen Sie zunächst eine Blende in der Aperture " -"Table aus" - -#: AppEditors/FlatCAMGrbEditor.py:218 AppEditors/FlatCAMGrbEditor.py:418 -msgid "Aperture size is zero. It needs to be greater than zero." -msgstr "Die Größe der Blende ist Null. Es muss größer als Null sein." - -#: AppEditors/FlatCAMGrbEditor.py:371 AppEditors/FlatCAMGrbEditor.py:684 -msgid "" -"Incompatible aperture type. Select an aperture with type 'C', 'R' or 'O'." -msgstr "" -"Inkompatibler Blendentyp. Wählen Sie eine Blende mit dem Typ 'C', 'R' oder " -"'O'." - -#: AppEditors/FlatCAMGrbEditor.py:383 -msgid "Done. Adding Pad completed." -msgstr "Erledigt. Hinzufügen von Pad abgeschlossen." - -#: AppEditors/FlatCAMGrbEditor.py:410 -msgid "To add an Pad Array first select a aperture in Aperture Table" -msgstr "" -"Um ein Pad-Array hinzuzufügen, wählen Sie zunächst eine Blende in der " -"Aperture-Tabelle aus" - -#: AppEditors/FlatCAMGrbEditor.py:490 -msgid "Click on the Pad Circular Array Start position" -msgstr "Klicken Sie auf die Startposition des Pad-Kreis-Arrays" - -#: AppEditors/FlatCAMGrbEditor.py:710 -msgid "Too many Pads for the selected spacing angle." -msgstr "Zu viele Pad für den ausgewählten Abstandswinkel." - -#: AppEditors/FlatCAMGrbEditor.py:733 -msgid "Done. Pad Array added." -msgstr "Erledigt. Pad Array hinzugefügt." - -#: AppEditors/FlatCAMGrbEditor.py:758 -msgid "Select shape(s) and then click ..." -msgstr "Wählen Sie die Form (en) aus und klicken Sie dann auf ..." - -#: AppEditors/FlatCAMGrbEditor.py:770 -msgid "Failed. Nothing selected." -msgstr "Gescheitert. Nichts ausgewählt." - -#: AppEditors/FlatCAMGrbEditor.py:786 -msgid "" -"Failed. Poligonize works only on geometries belonging to the same aperture." -msgstr "" -"Gescheitert. Poligonize funktioniert nur bei Geometrien, die zur selben " -"Apertur gehören." - -#: AppEditors/FlatCAMGrbEditor.py:840 -msgid "Done. Poligonize completed." -msgstr "Erledigt. Poligonize abgeschlossen." - -#: AppEditors/FlatCAMGrbEditor.py:895 AppEditors/FlatCAMGrbEditor.py:1119 -#: AppEditors/FlatCAMGrbEditor.py:1143 -msgid "Corner Mode 1: 45 degrees ..." -msgstr "Eckmodus 1: 45 Grad ..." - -#: AppEditors/FlatCAMGrbEditor.py:907 AppEditors/FlatCAMGrbEditor.py:1219 -msgid "Click on next Point or click Right mouse button to complete ..." -msgstr "" -"Klicken Sie auf den nächsten Punkt oder klicken Sie mit der rechten " -"Maustaste, um den Vorgang abzuschließen." - -#: AppEditors/FlatCAMGrbEditor.py:1107 AppEditors/FlatCAMGrbEditor.py:1140 -msgid "Corner Mode 2: Reverse 45 degrees ..." -msgstr "Eckmodus 2: 45 Grad umkehren ..." - -#: AppEditors/FlatCAMGrbEditor.py:1110 AppEditors/FlatCAMGrbEditor.py:1137 -msgid "Corner Mode 3: 90 degrees ..." -msgstr "Eckmodus 3: 90 Grad ..." - -#: AppEditors/FlatCAMGrbEditor.py:1113 AppEditors/FlatCAMGrbEditor.py:1134 -msgid "Corner Mode 4: Reverse 90 degrees ..." -msgstr "Eckmodus 4: Um 90 Grad umkehren ..." - -#: AppEditors/FlatCAMGrbEditor.py:1116 AppEditors/FlatCAMGrbEditor.py:1131 -msgid "Corner Mode 5: Free angle ..." -msgstr "Eckmodus 5: Freiwinkel ..." - -#: AppEditors/FlatCAMGrbEditor.py:1193 AppEditors/FlatCAMGrbEditor.py:1358 -#: AppEditors/FlatCAMGrbEditor.py:1397 -msgid "Track Mode 1: 45 degrees ..." -msgstr "Spurmodus 1: 45 Grad ..." - -#: AppEditors/FlatCAMGrbEditor.py:1338 AppEditors/FlatCAMGrbEditor.py:1392 -msgid "Track Mode 2: Reverse 45 degrees ..." -msgstr "Spurmodus 2: 45 Grad umkehren ..." - -#: AppEditors/FlatCAMGrbEditor.py:1343 AppEditors/FlatCAMGrbEditor.py:1387 -msgid "Track Mode 3: 90 degrees ..." -msgstr "Spurmodus 3: 90 Grad ..." - -#: AppEditors/FlatCAMGrbEditor.py:1348 AppEditors/FlatCAMGrbEditor.py:1382 -msgid "Track Mode 4: Reverse 90 degrees ..." -msgstr "Spurmodus 4: Um 90 Grad umkehren ..." - -#: AppEditors/FlatCAMGrbEditor.py:1353 AppEditors/FlatCAMGrbEditor.py:1377 -msgid "Track Mode 5: Free angle ..." -msgstr "Spurmodus 5: Freiwinkel ..." - -#: AppEditors/FlatCAMGrbEditor.py:1787 -msgid "Scale the selected Gerber apertures ..." -msgstr "Skalieren Sie die ausgewählten Gerber-Öffnungen ..." - -#: AppEditors/FlatCAMGrbEditor.py:1829 -msgid "Buffer the selected apertures ..." -msgstr "Die ausgewählten Öffnungen puffern ..." - -#: AppEditors/FlatCAMGrbEditor.py:1871 -msgid "Mark polygon areas in the edited Gerber ..." -msgstr "Markiere Polygonbereiche im bearbeiteten Gerber ..." - -#: AppEditors/FlatCAMGrbEditor.py:1937 -msgid "Nothing selected to move" -msgstr "Nichts zum Bewegen ausgewählt" - -#: AppEditors/FlatCAMGrbEditor.py:2062 -msgid "Done. Apertures Move completed." -msgstr "Erledigt. Öffnungsbewegung abgeschlossen." - -#: AppEditors/FlatCAMGrbEditor.py:2144 -msgid "Done. Apertures copied." -msgstr "Erledigt. Blende kopiert." - -#: AppEditors/FlatCAMGrbEditor.py:2462 AppGUI/MainGUI.py:1477 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:27 -msgid "Gerber Editor" -msgstr "Gerber-Editor" - -#: AppEditors/FlatCAMGrbEditor.py:2482 AppGUI/ObjectUI.py:247 -#: AppTools/ToolProperties.py:159 -msgid "Apertures" -msgstr "Öffnungen" - -#: AppEditors/FlatCAMGrbEditor.py:2484 AppGUI/ObjectUI.py:249 -msgid "Apertures Table for the Gerber Object." -msgstr "Blendentabelle für das Gerberobjekt." - -#: AppEditors/FlatCAMGrbEditor.py:2495 AppEditors/FlatCAMGrbEditor.py:3952 -#: AppGUI/ObjectUI.py:282 -msgid "Code" -msgstr "Code" - -#: AppEditors/FlatCAMGrbEditor.py:2495 AppEditors/FlatCAMGrbEditor.py:3952 -#: AppGUI/ObjectUI.py:282 -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:103 -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:167 -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:196 -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:43 -#: AppTools/ToolCopperThieving.py:265 AppTools/ToolCopperThieving.py:305 -#: AppTools/ToolFiducials.py:159 -msgid "Size" -msgstr "Größe" - -#: AppEditors/FlatCAMGrbEditor.py:2495 AppEditors/FlatCAMGrbEditor.py:3952 -#: AppGUI/ObjectUI.py:282 -msgid "Dim" -msgstr "Maße" - -#: AppEditors/FlatCAMGrbEditor.py:2500 AppGUI/ObjectUI.py:286 -msgid "Index" -msgstr "Index" - -#: AppEditors/FlatCAMGrbEditor.py:2502 AppEditors/FlatCAMGrbEditor.py:2531 -#: AppGUI/ObjectUI.py:288 -msgid "Aperture Code" -msgstr "Öffnungscode" - -#: AppEditors/FlatCAMGrbEditor.py:2504 AppGUI/ObjectUI.py:290 -msgid "Type of aperture: circular, rectangle, macros etc" -msgstr "Öffnungsart: kreisförmig, rechteckig, Makros usw" - -#: AppEditors/FlatCAMGrbEditor.py:2506 AppGUI/ObjectUI.py:292 -msgid "Aperture Size:" -msgstr "Öffnungsgröße:" - -#: AppEditors/FlatCAMGrbEditor.py:2508 AppGUI/ObjectUI.py:294 -msgid "" -"Aperture Dimensions:\n" -" - (width, height) for R, O type.\n" -" - (dia, nVertices) for P type" -msgstr "" -"Blendenmaße:\n" -"  - (Breite, Höhe) für R, O-Typ.\n" -"  - (dia, nVertices) für P-Typ" - -#: AppEditors/FlatCAMGrbEditor.py:2532 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:58 -msgid "Code for the new aperture" -msgstr "Code für die neue Blende" - -#: AppEditors/FlatCAMGrbEditor.py:2541 -msgid "Aperture Size" -msgstr "Öffnungsgröße" - -#: AppEditors/FlatCAMGrbEditor.py:2543 -msgid "" -"Size for the new aperture.\n" -"If aperture type is 'R' or 'O' then\n" -"this value is automatically\n" -"calculated as:\n" -"sqrt(width**2 + height**2)" -msgstr "" -"Größe für die neue Blende.\n" -"Wenn der Blendentyp 'R' oder 'O' ist, dann\n" -"Dieser Wert wird automatisch übernommen\n" -"berechnet als:\n" -"Quadrat (Breite ** 2 + Höhe ** 2)" - -#: AppEditors/FlatCAMGrbEditor.py:2557 -msgid "Aperture Type" -msgstr "Blendentyp" - -#: AppEditors/FlatCAMGrbEditor.py:2559 -msgid "" -"Select the type of new aperture. Can be:\n" -"C = circular\n" -"R = rectangular\n" -"O = oblong" -msgstr "" -"Wählen Sie den Typ der neuen Blende. Kann sein:\n" -"C = kreisförmig\n" -"R = rechteckig\n" -"O = länglich" - -#: AppEditors/FlatCAMGrbEditor.py:2570 -msgid "Aperture Dim" -msgstr "Öffnungsmaße" - -#: AppEditors/FlatCAMGrbEditor.py:2572 -msgid "" -"Dimensions for the new aperture.\n" -"Active only for rectangular apertures (type R).\n" -"The format is (width, height)" -msgstr "" -"Abmessungen für die neue Blende.\n" -"Aktiv nur für rechteckige Öffnungen (Typ R).\n" -"Das Format ist (Breite, Höhe)" - -#: AppEditors/FlatCAMGrbEditor.py:2581 -msgid "Add/Delete Aperture" -msgstr "Blende hinzufügen / löschen" - -#: AppEditors/FlatCAMGrbEditor.py:2583 -msgid "Add/Delete an aperture in the aperture table" -msgstr "Eine Blende in der Blendentabelle hinzufügen / löschen" - -#: AppEditors/FlatCAMGrbEditor.py:2592 -msgid "Add a new aperture to the aperture list." -msgstr "Fügen Sie der Blendenliste eine neue Blende hinzu." - -#: AppEditors/FlatCAMGrbEditor.py:2595 AppEditors/FlatCAMGrbEditor.py:2743 -#: AppGUI/MainGUI.py:748 AppGUI/MainGUI.py:1068 AppGUI/MainGUI.py:1527 -#: AppGUI/MainGUI.py:2099 AppGUI/MainGUI.py:4514 AppGUI/ObjectUI.py:1525 -#: AppObjects/FlatCAMGeometry.py:563 AppTools/ToolIsolation.py:298 -#: AppTools/ToolIsolation.py:616 AppTools/ToolNCC.py:316 -#: AppTools/ToolNCC.py:637 AppTools/ToolPaint.py:298 AppTools/ToolPaint.py:681 -#: AppTools/ToolSolderPaste.py:133 AppTools/ToolSolderPaste.py:608 -#: App_Main.py:5672 -msgid "Delete" -msgstr "Löschen" - -#: AppEditors/FlatCAMGrbEditor.py:2597 -msgid "Delete a aperture in the aperture list" -msgstr "Löschen Sie eine Blende in der Blendenliste" - -#: AppEditors/FlatCAMGrbEditor.py:2614 -msgid "Buffer Aperture" -msgstr "Pufferblende" - -#: AppEditors/FlatCAMGrbEditor.py:2616 -msgid "Buffer a aperture in the aperture list" -msgstr "Puffern Sie eine Blende in der Blendenliste" - -#: AppEditors/FlatCAMGrbEditor.py:2629 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:195 -msgid "Buffer distance" -msgstr "Pufferabstand" - -#: AppEditors/FlatCAMGrbEditor.py:2630 -msgid "Buffer corner" -msgstr "Pufferecke" - -#: AppEditors/FlatCAMGrbEditor.py:2632 -msgid "" -"There are 3 types of corners:\n" -" - 'Round': the corner is rounded.\n" -" - 'Square': the corner is met in a sharp angle.\n" -" - 'Beveled': the corner is a line that directly connects the features " -"meeting in the corner" -msgstr "" -"Es gibt 3 Arten von Ecken:\n" -"- 'Kreis': Die Ecke ist abgerundet.\n" -"- 'Quadrat:' Die Ecke wird in einem spitzen Winkel getroffen.\n" -"- 'Abgeschrägt:' Die Ecke ist eine Linie, die die Features, die sich in der " -"Ecke treffen, direkt verbindet" - -#: AppEditors/FlatCAMGrbEditor.py:2647 AppGUI/MainGUI.py:1055 -#: AppGUI/MainGUI.py:1454 AppGUI/MainGUI.py:1497 AppGUI/MainGUI.py:2087 -#: AppGUI/MainGUI.py:4511 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:200 -#: AppTools/ToolTransform.py:29 -msgid "Buffer" -msgstr "Puffer" - -#: AppEditors/FlatCAMGrbEditor.py:2662 -msgid "Scale Aperture" -msgstr "Skalenöffnung" - -#: AppEditors/FlatCAMGrbEditor.py:2664 -msgid "Scale a aperture in the aperture list" -msgstr "Skalieren Sie eine Blende in der Blendenliste" - -#: AppEditors/FlatCAMGrbEditor.py:2672 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:210 -msgid "Scale factor" -msgstr "Skalierungsfaktor" - -#: AppEditors/FlatCAMGrbEditor.py:2674 -msgid "" -"The factor by which to scale the selected aperture.\n" -"Values can be between 0.0000 and 999.9999" -msgstr "" -"Der Faktor, um den die ausgewählte Blende skaliert werden soll.\n" -"Die Werte können zwischen 0,0000 und 999,9999 liegen" - -#: AppEditors/FlatCAMGrbEditor.py:2702 -msgid "Mark polygons" -msgstr "Polygone markieren" - -#: AppEditors/FlatCAMGrbEditor.py:2704 -msgid "Mark the polygon areas." -msgstr "Markieren Sie die Polygonbereiche." - -#: AppEditors/FlatCAMGrbEditor.py:2712 -msgid "Area UPPER threshold" -msgstr "Flächenobergrenze" - -#: AppEditors/FlatCAMGrbEditor.py:2714 -msgid "" -"The threshold value, all areas less than this are marked.\n" -"Can have a value between 0.0000 and 9999.9999" -msgstr "" -"Der Schwellenwert, alle Bereiche, die darunter liegen, sind markiert.\n" -"Kann einen Wert zwischen 0,0000 und 9999,9999 haben" - -#: AppEditors/FlatCAMGrbEditor.py:2721 -msgid "Area LOWER threshold" -msgstr "Bereichsuntergrenze" - -#: AppEditors/FlatCAMGrbEditor.py:2723 -msgid "" -"The threshold value, all areas more than this are marked.\n" -"Can have a value between 0.0000 and 9999.9999" -msgstr "" -"Mit dem Schwellwert sind alle Bereiche gekennzeichnet, die darüber " -"hinausgehen.\n" -"Kann einen Wert zwischen 0,0000 und 9999,9999 haben" - -#: AppEditors/FlatCAMGrbEditor.py:2737 -msgid "Mark" -msgstr "Kennzeichen" - -#: AppEditors/FlatCAMGrbEditor.py:2739 -msgid "Mark the polygons that fit within limits." -msgstr "Markieren Sie die Polygone, die in Grenzen passen." - -#: AppEditors/FlatCAMGrbEditor.py:2745 -msgid "Delete all the marked polygons." -msgstr "Löschen Sie alle markierten Polygone." - -#: AppEditors/FlatCAMGrbEditor.py:2751 -msgid "Clear all the markings." -msgstr "Alle Markierungen entfernen." - -#: AppEditors/FlatCAMGrbEditor.py:2771 AppGUI/MainGUI.py:1040 -#: AppGUI/MainGUI.py:2072 AppGUI/MainGUI.py:4511 -msgid "Add Pad Array" -msgstr "Pad-Array hinzufügen" - -#: AppEditors/FlatCAMGrbEditor.py:2773 -msgid "Add an array of pads (linear or circular array)" -msgstr "Hinzufügen eines Arrays von Pads (lineares oder kreisförmiges Array)" - -#: AppEditors/FlatCAMGrbEditor.py:2779 -msgid "" -"Select the type of pads array to create.\n" -"It can be Linear X(Y) or Circular" -msgstr "" -"Wählen Sie den zu erstellenden Pad-Array-Typ aus.\n" -"Es kann lineares X (Y) oder rund sein" - -#: AppEditors/FlatCAMGrbEditor.py:2790 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:95 -msgid "Nr of pads" -msgstr "Anzahl der Pads" - -#: AppEditors/FlatCAMGrbEditor.py:2792 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:97 -msgid "Specify how many pads to be in the array." -msgstr "Geben Sie an, wie viele Pads sich im Array befinden sollen." - -#: AppEditors/FlatCAMGrbEditor.py:2841 -msgid "" -"Angle at which the linear array is placed.\n" -"The precision is of max 2 decimals.\n" -"Min value is: -359.99 degrees.\n" -"Max value is: 360.00 degrees." -msgstr "" -"Winkel, bei dem das lineare Array platziert wird.\n" -"Die Genauigkeit beträgt maximal 2 Dezimalstellen.\n" -"Der Mindestwert beträgt -359,99 Grad.\n" -"Maximalwert ist: 360.00 Grad." - -#: AppEditors/FlatCAMGrbEditor.py:3335 AppEditors/FlatCAMGrbEditor.py:3339 -msgid "Aperture code value is missing or wrong format. Add it and retry." -msgstr "" -"Blendencodewert fehlt oder falsches Format. Fügen Sie es hinzu und versuchen " -"Sie es erneut." - -#: AppEditors/FlatCAMGrbEditor.py:3375 -msgid "" -"Aperture dimensions value is missing or wrong format. Add it in format " -"(width, height) and retry." -msgstr "" -"Wert für Blendenmaße fehlt oder falsches Format. Fügen Sie es im Format " -"(Breite, Höhe) hinzu und versuchen Sie es erneut." - -#: AppEditors/FlatCAMGrbEditor.py:3388 -msgid "Aperture size value is missing or wrong format. Add it and retry." -msgstr "" -"Der Wert für die Blendengröße fehlt oder das Format ist falsch. Fügen Sie es " -"hinzu und versuchen Sie es erneut." - -#: AppEditors/FlatCAMGrbEditor.py:3399 -msgid "Aperture already in the aperture table." -msgstr "Blende bereits in der Blendentabelle." - -#: AppEditors/FlatCAMGrbEditor.py:3406 -msgid "Added new aperture with code" -msgstr "Neue Blende mit Code hinzugefügt" - -#: AppEditors/FlatCAMGrbEditor.py:3438 -msgid " Select an aperture in Aperture Table" -msgstr " Wählen Sie in Blende Table eine Blende aus" - -#: AppEditors/FlatCAMGrbEditor.py:3446 -msgid "Select an aperture in Aperture Table -->" -msgstr "Wählen Sie in Blende Table eine Blende aus -->" - -#: AppEditors/FlatCAMGrbEditor.py:3460 -msgid "Deleted aperture with code" -msgstr "Blende mit Code gelöscht" - -#: AppEditors/FlatCAMGrbEditor.py:3528 -msgid "Dimensions need two float values separated by comma." -msgstr "Bemaßungen benötigen zwei durch Komma getrennte Gleitkommawerte." - -#: AppEditors/FlatCAMGrbEditor.py:3537 -msgid "Dimensions edited." -msgstr "Abmessungen bearbeitet." - -#: AppEditors/FlatCAMGrbEditor.py:4067 -msgid "Loading Gerber into Editor" -msgstr "Gerber File wird in den Editor geladen" - -#: AppEditors/FlatCAMGrbEditor.py:4195 -msgid "Setting up the UI" -msgstr "UI wird initialisiert" - -#: AppEditors/FlatCAMGrbEditor.py:4196 -msgid "Adding geometry finished. Preparing the AppGUI" -msgstr "Geometrie hinzufügen fertig. AppGUI vorbereiten" - -#: AppEditors/FlatCAMGrbEditor.py:4205 -msgid "Finished loading the Gerber object into the editor." -msgstr "Gerber-Objekte wurde in den Editor geladen." - -#: AppEditors/FlatCAMGrbEditor.py:4346 -msgid "" -"There are no Aperture definitions in the file. Aborting Gerber creation." -msgstr "" -"Die Datei enthält keine Aperture-Definitionen. Abbruch der Gerber-Erstellung." - -#: AppEditors/FlatCAMGrbEditor.py:4348 AppObjects/AppObject.py:133 -#: AppObjects/FlatCAMGeometry.py:1786 AppParsers/ParseExcellon.py:896 -#: AppTools/ToolPcbWizard.py:432 App_Main.py:8465 App_Main.py:8529 -#: App_Main.py:8660 App_Main.py:8725 App_Main.py:9377 -msgid "An internal error has occurred. See shell.\n" -msgstr "Ein interner Fehler ist aufgetreten. Siehe Shell.\n" - -#: AppEditors/FlatCAMGrbEditor.py:4356 -msgid "Creating Gerber." -msgstr "Gerber erstellen." - -#: AppEditors/FlatCAMGrbEditor.py:4368 -msgid "Done. Gerber editing finished." -msgstr "Erledigt. Gerber-Bearbeitung beendet." - -#: AppEditors/FlatCAMGrbEditor.py:4384 -msgid "Cancelled. No aperture is selected" -msgstr "Abgebrochen. Es ist keine Blende ausgewählt" - -#: AppEditors/FlatCAMGrbEditor.py:4539 App_Main.py:5998 -msgid "Coordinates copied to clipboard." -msgstr "Koordinaten in die Zwischenablage kopiert." - -#: AppEditors/FlatCAMGrbEditor.py:4986 -msgid "Failed. No aperture geometry is selected." -msgstr "Gescheitert. Es ist keine Aperturgeometrie ausgewählt." - -#: AppEditors/FlatCAMGrbEditor.py:4995 AppEditors/FlatCAMGrbEditor.py:5266 -msgid "Done. Apertures geometry deleted." -msgstr "Fertig. Blendengeometrie gelöscht." - -#: AppEditors/FlatCAMGrbEditor.py:5138 -msgid "No aperture to buffer. Select at least one aperture and try again." -msgstr "" -"Keine Blende zum Puffern Wählen Sie mindestens eine Blende und versuchen Sie " -"es erneut." - -#: AppEditors/FlatCAMGrbEditor.py:5150 -msgid "Failed." -msgstr "Gescheitert." - -#: AppEditors/FlatCAMGrbEditor.py:5169 -msgid "Scale factor value is missing or wrong format. Add it and retry." -msgstr "" -"Der Skalierungsfaktor ist nicht vorhanden oder das Format ist falsch. Fügen " -"Sie es hinzu und versuchen Sie es erneut." - -#: AppEditors/FlatCAMGrbEditor.py:5201 -msgid "No aperture to scale. Select at least one aperture and try again." -msgstr "" -"Keine zu skalierende Blende Wählen Sie mindestens eine Blende und versuchen " -"Sie es erneut." - -#: AppEditors/FlatCAMGrbEditor.py:5217 -msgid "Done. Scale Tool completed." -msgstr "Erledigt. Skalierungswerkzeug abgeschlossen." - -#: AppEditors/FlatCAMGrbEditor.py:5255 -msgid "Polygons marked." -msgstr "Polygone markiert." - -#: AppEditors/FlatCAMGrbEditor.py:5258 -msgid "No polygons were marked. None fit within the limits." -msgstr "Es wurden keine Polygone markiert. Keiner passt in die Grenzen." - -#: AppEditors/FlatCAMGrbEditor.py:5982 -msgid "Rotation action was not executed." -msgstr "Rotationsaktion wurde nicht ausgeführt." - -#: AppEditors/FlatCAMGrbEditor.py:6053 App_Main.py:5432 App_Main.py:5480 -msgid "Flip action was not executed." -msgstr "Flip-Aktion wurde nicht ausgeführt." - -#: AppEditors/FlatCAMGrbEditor.py:6110 -msgid "Skew action was not executed." -msgstr "Die Versatzaktion wurde nicht ausgeführt." - -#: AppEditors/FlatCAMGrbEditor.py:6175 -msgid "Scale action was not executed." -msgstr "Skalierungsaktion wurde nicht ausgeführt." - -#: AppEditors/FlatCAMGrbEditor.py:6218 -msgid "Offset action was not executed." -msgstr "Offsetaktion wurde nicht ausgeführt." - -#: AppEditors/FlatCAMGrbEditor.py:6268 -msgid "Geometry shape offset Y cancelled" -msgstr "Geometrieform-Versatz Y abgebrochen" - -#: AppEditors/FlatCAMGrbEditor.py:6283 -msgid "Geometry shape skew X cancelled" -msgstr "Geometrieformverzerren X abgebrochen" - -#: AppEditors/FlatCAMGrbEditor.py:6298 -msgid "Geometry shape skew Y cancelled" -msgstr "Geometrieformverzerren Y abgebrochen" - -#: AppEditors/FlatCAMTextEditor.py:74 -msgid "Print Preview" -msgstr "Druckvorschau" - -#: AppEditors/FlatCAMTextEditor.py:75 -msgid "Open a OS standard Preview Print window." -msgstr "" -"Öffnen Sie ein Standardfenster für die Druckvorschau des Betriebssystems." - -#: AppEditors/FlatCAMTextEditor.py:78 -msgid "Print Code" -msgstr "Code drucken" - -#: AppEditors/FlatCAMTextEditor.py:79 -msgid "Open a OS standard Print window." -msgstr "Öffnen Sie ein Betriebssystem-Standard-Druckfenster." - -#: AppEditors/FlatCAMTextEditor.py:81 -msgid "Find in Code" -msgstr "Im Code suchen" - -#: AppEditors/FlatCAMTextEditor.py:82 -msgid "Will search and highlight in yellow the string in the Find box." -msgstr "Sucht und hebt die Zeichenfolge im Feld Suchen gelb hervor." - -#: AppEditors/FlatCAMTextEditor.py:86 -msgid "Find box. Enter here the strings to be searched in the text." -msgstr "" -"Suchfeld. Geben Sie hier die Zeichenfolgen ein, nach denen im Text gesucht " -"werden soll." - -#: AppEditors/FlatCAMTextEditor.py:88 -msgid "Replace With" -msgstr "Ersetzen mit" - -#: AppEditors/FlatCAMTextEditor.py:89 -msgid "" -"Will replace the string from the Find box with the one in the Replace box." -msgstr "" -"Ersetzt die Zeichenfolge aus dem Feld Suchen durch die Zeichenfolge aus dem " -"Feld Ersetzen." - -#: AppEditors/FlatCAMTextEditor.py:93 -msgid "String to replace the one in the Find box throughout the text." -msgstr "" -"Zeichenfolge, die die Zeichenfolge im Feld Suchen im gesamten Text ersetzt." - -#: AppEditors/FlatCAMTextEditor.py:95 AppGUI/ObjectUI.py:2149 -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:54 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:285 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280 -#: AppTools/ToolIsolation.py:504 AppTools/ToolIsolation.py:1287 -#: AppTools/ToolIsolation.py:1669 AppTools/ToolPaint.py:485 -#: AppTools/ToolPaint.py:1446 defaults.py:403 defaults.py:446 -#: tclCommands/TclCommandPaint.py:162 -msgid "All" -msgstr "Alles" - -#: AppEditors/FlatCAMTextEditor.py:96 -msgid "" -"When checked it will replace all instances in the 'Find' box\n" -"with the text in the 'Replace' box.." -msgstr "" -"Wenn diese Option aktiviert ist, werden alle Instanzen im Feld \"Suchen\" " -"ersetzt\n" -"mit dem Text im Feld \"Ersetzen\" .." - -#: AppEditors/FlatCAMTextEditor.py:99 -msgid "Copy All" -msgstr "Kopiere alles" - -#: AppEditors/FlatCAMTextEditor.py:100 -msgid "Will copy all the text in the Code Editor to the clipboard." -msgstr "Kopiert den gesamten Text im Code-Editor in die Zwischenablage." - -#: AppEditors/FlatCAMTextEditor.py:103 -msgid "Open Code" -msgstr "Code öffnen" - -#: AppEditors/FlatCAMTextEditor.py:104 -msgid "Will open a text file in the editor." -msgstr "Öffnet eine Textdatei im Editor." - -#: AppEditors/FlatCAMTextEditor.py:106 -msgid "Save Code" -msgstr "Code speichern" - -#: AppEditors/FlatCAMTextEditor.py:107 -msgid "Will save the text in the editor into a file." -msgstr "Speichert den Text im Editor in einer Datei." - -#: AppEditors/FlatCAMTextEditor.py:109 -msgid "Run Code" -msgstr "Code ausführen" - -#: AppEditors/FlatCAMTextEditor.py:110 -msgid "Will run the TCL commands found in the text file, one by one." -msgstr "Führt die in der Textdatei enthaltenen TCL-Befehle nacheinander aus." - -#: AppEditors/FlatCAMTextEditor.py:184 -msgid "Open file" -msgstr "Datei öffnen" - -#: AppEditors/FlatCAMTextEditor.py:215 AppEditors/FlatCAMTextEditor.py:220 -#: AppObjects/FlatCAMCNCJob.py:507 AppObjects/FlatCAMCNCJob.py:512 -#: AppTools/ToolSolderPaste.py:1508 -msgid "Export Code ..." -msgstr "Code exportieren ..." - -#: AppEditors/FlatCAMTextEditor.py:272 AppObjects/FlatCAMCNCJob.py:955 -#: AppTools/ToolSolderPaste.py:1538 -msgid "No such file or directory" -msgstr "Keine solche Datei oder Ordner" - -#: AppEditors/FlatCAMTextEditor.py:284 AppObjects/FlatCAMCNCJob.py:969 -msgid "Saved to" -msgstr "Gespeichert in" - -#: AppEditors/FlatCAMTextEditor.py:334 -msgid "Code Editor content copied to clipboard ..." -msgstr "Code Editor Inhalt in die Zwischenablage kopiert ..." - -#: AppGUI/GUIElements.py:2690 -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:169 -#: AppTools/ToolDblSided.py:173 AppTools/ToolDblSided.py:388 -#: AppTools/ToolFilm.py:202 -msgid "Reference" -msgstr "Referenz" - -#: AppGUI/GUIElements.py:2692 -msgid "" -"The reference can be:\n" -"- Absolute -> the reference point is point (0,0)\n" -"- Relative -> the reference point is the mouse position before Jump" -msgstr "" -"Die Referenz kann sein:\n" -"- Absolut -> Der Bezugspunkt ist Punkt (0,0)\n" -"- Relativ -> Der Referenzpunkt ist die Mausposition vor dem Sprung" - -#: AppGUI/GUIElements.py:2697 -msgid "Abs" -msgstr "Abs" - -#: AppGUI/GUIElements.py:2698 -msgid "Relative" -msgstr "Relativ" - -#: AppGUI/GUIElements.py:2708 -msgid "Location" -msgstr "Ort" - -#: AppGUI/GUIElements.py:2710 -msgid "" -"The Location value is a tuple (x,y).\n" -"If the reference is Absolute then the Jump will be at the position (x,y).\n" -"If the reference is Relative then the Jump will be at the (x,y) distance\n" -"from the current mouse location point." -msgstr "" -"Der Standortwert ist ein Tupel (x, y).\n" -"Wenn die Referenz Absolut ist, befindet sich der Sprung an der Position (x, " -"y).\n" -"Wenn die Referenz relativ ist, befindet sich der Sprung in der Entfernung " -"(x, y)\n" -"vom aktuellen Mausstandort aus." - -#: AppGUI/GUIElements.py:2750 -msgid "Save Log" -msgstr "Protokoll speichern" - -#: AppGUI/GUIElements.py:2760 App_Main.py:2679 App_Main.py:2988 -#: App_Main.py:3122 -msgid "Close" -msgstr "Schließen" - -#: AppGUI/GUIElements.py:2769 AppTools/ToolShell.py:296 -msgid "Type >help< to get started" -msgstr "Geben Sie> help Excellon Export." -msgstr "" -"Exportieren Exportiert ein Excellon-Objekt als Excellon-Datei.\n" -"Das Koordinatenformat, die Dateieinheiten und Nullen\n" -"werden in den Einstellungen -> Excellon Export.Excellon eingestellt ..." - -#: AppGUI/MainGUI.py:264 -msgid "Export &Gerber ..." -msgstr "Gerber exportieren ..." - -#: AppGUI/MainGUI.py:266 -msgid "" -"Will export an Gerber Object as Gerber file,\n" -"the coordinates format, the file units and zeros\n" -"are set in Preferences -> Gerber Export." -msgstr "" -"Exportiert ein Gerber-Objekt als Gerber-Datei.\n" -"das Koordinatenformat, die Dateieinheiten und Nullen\n" -"werden in den Einstellungen -> Gerber Export eingestellt." - -#: AppGUI/MainGUI.py:276 -msgid "Backup" -msgstr "Sicherungskopie" - -#: AppGUI/MainGUI.py:281 -msgid "Import Preferences from file ..." -msgstr "Einstellungen aus Datei importieren ..." - -#: AppGUI/MainGUI.py:287 -msgid "Export Preferences to file ..." -msgstr "Einstellungen in Datei exportieren ..." - -#: AppGUI/MainGUI.py:295 AppGUI/preferences/PreferencesUIManager.py:1119 -msgid "Save Preferences" -msgstr "Einstellungen speichern" - -#: AppGUI/MainGUI.py:301 AppGUI/MainGUI.py:4101 -msgid "Print (PDF)" -msgstr "Drucken (PDF)" - -#: AppGUI/MainGUI.py:309 -msgid "E&xit" -msgstr "Ausgang" - -#: AppGUI/MainGUI.py:317 AppGUI/MainGUI.py:744 AppGUI/MainGUI.py:1529 -msgid "Edit" -msgstr "Bearbeiten" - -#: AppGUI/MainGUI.py:321 -msgid "Edit Object\tE" -msgstr "Objekt bearbeiten\tE" - -#: AppGUI/MainGUI.py:323 -msgid "Close Editor\tCtrl+S" -msgstr "Schließen Sie Editor\tSTRG+S" - -#: AppGUI/MainGUI.py:332 -msgid "Conversion" -msgstr "Umwandlung" - -#: AppGUI/MainGUI.py:334 -msgid "&Join Geo/Gerber/Exc -> Geo" -msgstr "Geo/Gerber/Exc -> Geo zusammenfassen" - -#: AppGUI/MainGUI.py:336 -msgid "" -"Merge a selection of objects, which can be of type:\n" -"- Gerber\n" -"- Excellon\n" -"- Geometry\n" -"into a new combo Geometry object." -msgstr "" -"Zusammenführen einer Auswahl von Objekten, die vom Typ sein können:\n" -"- Gerber\n" -"- Excellon\n" -"- Geometrie\n" -"in ein neues Geometrieobjekt kombinieren." - -#: AppGUI/MainGUI.py:343 -msgid "Join Excellon(s) -> Excellon" -msgstr "Excellon(s) -> Excellon zusammenfassen" - -#: AppGUI/MainGUI.py:345 -msgid "Merge a selection of Excellon objects into a new combo Excellon object." -msgstr "" -"Fassen Sie eine Auswahl von Excellon-Objekten in einem neuen Excellon-Objekt " -"zusammen." - -#: AppGUI/MainGUI.py:348 -msgid "Join Gerber(s) -> Gerber" -msgstr "Gerber(s) -> Gerber zusammenfassen" - -#: AppGUI/MainGUI.py:350 -msgid "Merge a selection of Gerber objects into a new combo Gerber object." -msgstr "" -"Mischen Sie eine Auswahl von Gerber-Objekten in ein neues Gerber-" -"Kombinationsobjekt." - -#: AppGUI/MainGUI.py:355 -msgid "Convert Single to MultiGeo" -msgstr "Konvertieren Sie Single in MultiGeo" - -#: AppGUI/MainGUI.py:357 -msgid "" -"Will convert a Geometry object from single_geometry type\n" -"to a multi_geometry type." -msgstr "" -"Konvertiert ein Geometrieobjekt vom Typ single_geometry\n" -"zu einem multi_geometry-Typ." - -#: AppGUI/MainGUI.py:361 -msgid "Convert Multi to SingleGeo" -msgstr "Konvertieren Sie Multi in SingleGeo" - -#: AppGUI/MainGUI.py:363 -msgid "" -"Will convert a Geometry object from multi_geometry type\n" -"to a single_geometry type." -msgstr "" -"Konvertiert ein Geometrieobjekt vom Typ multi_geometry\n" -"zu einem single_geometry-Typ." - -#: AppGUI/MainGUI.py:370 -msgid "Convert Any to Geo" -msgstr "Konvertieren Sie Any zu Geo" - -#: AppGUI/MainGUI.py:373 -msgid "Convert Any to Gerber" -msgstr "Konvertieren Sie Any zu Gerber" - -#: AppGUI/MainGUI.py:379 -msgid "&Copy\tCtrl+C" -msgstr "Kopieren\tSTRG+C" - -#: AppGUI/MainGUI.py:384 -msgid "&Delete\tDEL" -msgstr "Löschen\tDEL" - -#: AppGUI/MainGUI.py:389 -msgid "Se&t Origin\tO" -msgstr "Ursprung festlegen\tO" - -#: AppGUI/MainGUI.py:391 -msgid "Move to Origin\tShift+O" -msgstr "Zum Ursprung wechseln\tShift+O" - -#: AppGUI/MainGUI.py:394 -msgid "Jump to Location\tJ" -msgstr "Zum Ort springen\tJ" - -#: AppGUI/MainGUI.py:396 -msgid "Locate in Object\tShift+J" -msgstr "Suchen Sie im Objekt\tShift+J" - -#: AppGUI/MainGUI.py:401 -msgid "Toggle Units\tQ" -msgstr "Einheiten umschalten\tQ" - -#: AppGUI/MainGUI.py:403 -msgid "&Select All\tCtrl+A" -msgstr "Alles auswählen\tSTRG+A" - -#: AppGUI/MainGUI.py:408 -msgid "&Preferences\tShift+P" -msgstr "Einstellungen\tShift+P" - -#: AppGUI/MainGUI.py:414 AppTools/ToolProperties.py:155 -msgid "Options" -msgstr "Optionen" - -#: AppGUI/MainGUI.py:416 -msgid "&Rotate Selection\tShift+(R)" -msgstr "Auswahl drehen\tShift+(R)" - -#: AppGUI/MainGUI.py:421 -msgid "&Skew on X axis\tShift+X" -msgstr "Neigung auf der X-Achse\tShift+X" - -#: AppGUI/MainGUI.py:423 -msgid "S&kew on Y axis\tShift+Y" -msgstr "Neigung auf der Y-Achse\tShift+Y" - -#: AppGUI/MainGUI.py:428 -msgid "Flip on &X axis\tX" -msgstr "X-Achse kippen\tX" - -#: AppGUI/MainGUI.py:430 -msgid "Flip on &Y axis\tY" -msgstr "Y-Achse kippen\tY" - -#: AppGUI/MainGUI.py:435 -msgid "View source\tAlt+S" -msgstr "Quelltext anzeigen\tAlt+S" - -#: AppGUI/MainGUI.py:437 -msgid "Tools DataBase\tCtrl+D" -msgstr "Werkzeugdatenbank\tSTRG+D" - -#: AppGUI/MainGUI.py:444 AppGUI/MainGUI.py:1427 -msgid "View" -msgstr "Aussicht" - -#: AppGUI/MainGUI.py:446 -msgid "Enable all plots\tAlt+1" -msgstr "Alle Diagramme aktivieren\tAlt+1" - -#: AppGUI/MainGUI.py:448 -msgid "Disable all plots\tAlt+2" -msgstr "Alle Diagramme deaktivieren\tAlt+2" - -#: AppGUI/MainGUI.py:450 -msgid "Disable non-selected\tAlt+3" -msgstr "Nicht ausgewählte Diagramme deaktivieren\tAlt+3" - -#: AppGUI/MainGUI.py:454 -msgid "&Zoom Fit\tV" -msgstr "Passed zoomen\tV" - -#: AppGUI/MainGUI.py:456 -msgid "&Zoom In\t=" -msgstr "Hineinzoomen\t=" - -#: AppGUI/MainGUI.py:458 -msgid "&Zoom Out\t-" -msgstr "Rauszoomen\t-" - -#: AppGUI/MainGUI.py:463 -msgid "Redraw All\tF5" -msgstr "Alles neu zeichnen\tF5" - -#: AppGUI/MainGUI.py:467 -msgid "Toggle Code Editor\tShift+E" -msgstr "Code-Editor umschalten\tShift+E" - -#: AppGUI/MainGUI.py:470 -msgid "&Toggle FullScreen\tAlt+F10" -msgstr "FullScreen umschalten\tAlt+F10" - -#: AppGUI/MainGUI.py:472 -msgid "&Toggle Plot Area\tCtrl+F10" -msgstr "Plotbereich umschalten\tSTRG+F10" - -#: AppGUI/MainGUI.py:474 -msgid "&Toggle Project/Sel/Tool\t`" -msgstr "Projekt/Auswahl/Werkzeug umschalten\t`" - -#: AppGUI/MainGUI.py:478 -msgid "&Toggle Grid Snap\tG" -msgstr "Schaltet den Rasterfang ein\tG" - -#: AppGUI/MainGUI.py:480 -msgid "&Toggle Grid Lines\tAlt+G" -msgstr "Gitterlinien umschalten\tAlt+G" - -#: AppGUI/MainGUI.py:482 -msgid "&Toggle Axis\tShift+G" -msgstr "Achse umschalten\tShift+G" - -#: AppGUI/MainGUI.py:484 -msgid "Toggle Workspace\tShift+W" -msgstr "Arbeitsbereich umschalten\tShift+W" - -#: AppGUI/MainGUI.py:486 -msgid "Toggle HUD\tAlt+H" -msgstr "Umschalten HUD\tAlt+H" - -#: AppGUI/MainGUI.py:491 -msgid "Objects" -msgstr "Objekte" - -#: AppGUI/MainGUI.py:494 AppGUI/MainGUI.py:4099 -#: AppObjects/ObjectCollection.py:1121 AppObjects/ObjectCollection.py:1168 -msgid "Select All" -msgstr "Select All" - -#: AppGUI/MainGUI.py:496 AppObjects/ObjectCollection.py:1125 -#: AppObjects/ObjectCollection.py:1172 -msgid "Deselect All" -msgstr "Alle abwählen" - -#: AppGUI/MainGUI.py:505 -msgid "&Command Line\tS" -msgstr "Befehlszeile\tS" - -#: AppGUI/MainGUI.py:510 -msgid "Help" -msgstr "Hilfe" - -#: AppGUI/MainGUI.py:512 -msgid "Online Help\tF1" -msgstr "Onlinehilfe\tF1" - -#: AppGUI/MainGUI.py:515 Bookmark.py:293 -msgid "Bookmarks" -msgstr "Lesezeichen" - -#: AppGUI/MainGUI.py:518 App_Main.py:3091 App_Main.py:3100 -msgid "Bookmarks Manager" -msgstr "Lesezeichen verwalten" - -#: AppGUI/MainGUI.py:522 -msgid "Report a bug" -msgstr "Einen Fehler melden" - -#: AppGUI/MainGUI.py:525 -msgid "Excellon Specification" -msgstr "Excellon-Spezifikation" - -#: AppGUI/MainGUI.py:527 -msgid "Gerber Specification" -msgstr "Gerber-Spezifikation" - -#: AppGUI/MainGUI.py:532 -msgid "Shortcuts List\tF3" -msgstr "Tastenkürzel Liste\tF3" - -#: AppGUI/MainGUI.py:534 -msgid "YouTube Channel\tF4" -msgstr "Youtube Kanal\tF4" - -#: AppGUI/MainGUI.py:539 -msgid "ReadMe?" -msgstr "Liesmich?" - -#: AppGUI/MainGUI.py:542 App_Main.py:2646 -msgid "About FlatCAM" -msgstr "Über FlatCAM" - -#: AppGUI/MainGUI.py:551 -msgid "Add Circle\tO" -msgstr "Kreis hinzufügen\tO" - -#: AppGUI/MainGUI.py:554 -msgid "Add Arc\tA" -msgstr "Bogen hinzufügen\tA" - -#: AppGUI/MainGUI.py:557 -msgid "Add Rectangle\tR" -msgstr "Rechteck hinzufügen\tR" - -#: AppGUI/MainGUI.py:560 -msgid "Add Polygon\tN" -msgstr "Polygon hinzufügen\tN" - -#: AppGUI/MainGUI.py:563 -msgid "Add Path\tP" -msgstr "Pfad hinzufügen\tP" - -#: AppGUI/MainGUI.py:566 -msgid "Add Text\tT" -msgstr "Text hinzufügen\tT" - -#: AppGUI/MainGUI.py:569 -msgid "Polygon Union\tU" -msgstr "Polygon-Vereinigung\tU" - -#: AppGUI/MainGUI.py:571 -msgid "Polygon Intersection\tE" -msgstr "Polygonschnitt\tE" - -#: AppGUI/MainGUI.py:573 -msgid "Polygon Subtraction\tS" -msgstr "Polygon-Subtraktion\tS" - -#: AppGUI/MainGUI.py:577 -msgid "Cut Path\tX" -msgstr "Pfad ausschneiden\tX" - -#: AppGUI/MainGUI.py:581 -msgid "Copy Geom\tC" -msgstr "Geometrie kopieren\tC" - -#: AppGUI/MainGUI.py:583 -msgid "Delete Shape\tDEL" -msgstr "Form löschen\tDEL" - -#: AppGUI/MainGUI.py:587 AppGUI/MainGUI.py:674 -msgid "Move\tM" -msgstr "Bewegung\tM" - -#: AppGUI/MainGUI.py:589 -msgid "Buffer Tool\tB" -msgstr "Pufferwerkzeug\tB" - -#: AppGUI/MainGUI.py:592 -msgid "Paint Tool\tI" -msgstr "Malenwerkzeug\tI" - -#: AppGUI/MainGUI.py:595 -msgid "Transform Tool\tAlt+R" -msgstr "Transformationswerkzeug\tAlt+R" - -#: AppGUI/MainGUI.py:599 -msgid "Toggle Corner Snap\tK" -msgstr "Eckfang umschalten\tK" - -#: AppGUI/MainGUI.py:605 -msgid ">Excellon Editor<" -msgstr ">Excellon Editor<" - -#: AppGUI/MainGUI.py:609 -msgid "Add Drill Array\tA" -msgstr "Bohrfeld hinzufügen\tA" - -#: AppGUI/MainGUI.py:611 -msgid "Add Drill\tD" -msgstr "Bohrer hinzufügen\tD" - -#: AppGUI/MainGUI.py:615 -msgid "Add Slot Array\tQ" -msgstr "Steckplatz-Array hinzufügen\tQ" - -#: AppGUI/MainGUI.py:617 -msgid "Add Slot\tW" -msgstr "Slot hinzufügen\tW" - -#: AppGUI/MainGUI.py:621 -msgid "Resize Drill(S)\tR" -msgstr "Bohrer verkleinern\tR" - -#: AppGUI/MainGUI.py:624 AppGUI/MainGUI.py:668 -msgid "Copy\tC" -msgstr "Kopieren\tC" - -#: AppGUI/MainGUI.py:626 AppGUI/MainGUI.py:670 -msgid "Delete\tDEL" -msgstr "Löschen\tDEL" - -#: AppGUI/MainGUI.py:631 -msgid "Move Drill(s)\tM" -msgstr "Bohrer verschieben\tM" - -#: AppGUI/MainGUI.py:636 -msgid ">Gerber Editor<" -msgstr ">Gerber-Editor<" - -#: AppGUI/MainGUI.py:640 -msgid "Add Pad\tP" -msgstr "Pad hinzufügen\tP" - -#: AppGUI/MainGUI.py:642 -msgid "Add Pad Array\tA" -msgstr "Pad-Array hinzufügen\tA" - -#: AppGUI/MainGUI.py:644 -msgid "Add Track\tT" -msgstr "Track hinzufügen\tA" - -#: AppGUI/MainGUI.py:646 -msgid "Add Region\tN" -msgstr "Region hinzufügen\tN" - -#: AppGUI/MainGUI.py:650 -msgid "Poligonize\tAlt+N" -msgstr "Polygonisieren\tAlt+N" - -#: AppGUI/MainGUI.py:652 -msgid "Add SemiDisc\tE" -msgstr "Halbschibe hinzufügen\tE" - -#: AppGUI/MainGUI.py:654 -msgid "Add Disc\tD" -msgstr "Schibe hinzufügen\tD" - -#: AppGUI/MainGUI.py:656 -msgid "Buffer\tB" -msgstr "Puffer\tB" - -#: AppGUI/MainGUI.py:658 -msgid "Scale\tS" -msgstr "Skalieren\tS" - -#: AppGUI/MainGUI.py:660 -msgid "Mark Area\tAlt+A" -msgstr "Bereich markieren\tAlt+A" - -#: AppGUI/MainGUI.py:662 -msgid "Eraser\tCtrl+E" -msgstr "Radiergummi\tSTRG+E" - -#: AppGUI/MainGUI.py:664 -msgid "Transform\tAlt+R" -msgstr "Transformationswerkzeug\tSTRG+R" - -#: AppGUI/MainGUI.py:691 -msgid "Enable Plot" -msgstr "Diagramm aktivieren" - -#: AppGUI/MainGUI.py:693 -msgid "Disable Plot" -msgstr "Diagramm deaktivieren" - -#: AppGUI/MainGUI.py:697 -msgid "Set Color" -msgstr "Farbsatz" - -#: AppGUI/MainGUI.py:700 App_Main.py:9644 -msgid "Red" -msgstr "Rote" - -#: AppGUI/MainGUI.py:703 App_Main.py:9646 -msgid "Blue" -msgstr "Blau" - -#: AppGUI/MainGUI.py:706 App_Main.py:9649 -msgid "Yellow" -msgstr "Gelb" - -#: AppGUI/MainGUI.py:709 App_Main.py:9651 -msgid "Green" -msgstr "Grün" - -#: AppGUI/MainGUI.py:712 App_Main.py:9653 -msgid "Purple" -msgstr "Lila" - -#: AppGUI/MainGUI.py:715 App_Main.py:9655 -msgid "Brown" -msgstr "Braun" - -#: AppGUI/MainGUI.py:718 App_Main.py:9657 App_Main.py:9713 -msgid "White" -msgstr "Weiß" - -#: AppGUI/MainGUI.py:721 App_Main.py:9659 -msgid "Black" -msgstr "Schwarz" - -#: AppGUI/MainGUI.py:726 App_Main.py:9662 -msgid "Custom" -msgstr "Benutzerdefiniert" - -#: AppGUI/MainGUI.py:731 App_Main.py:9696 -msgid "Opacity" -msgstr "Opazität" - -#: AppGUI/MainGUI.py:734 App_Main.py:9672 -msgid "Default" -msgstr "Standard" - -#: AppGUI/MainGUI.py:739 -msgid "Generate CNC" -msgstr "CNC generieren" - -#: AppGUI/MainGUI.py:741 -msgid "View Source" -msgstr "Quelltext anzeigen" - -#: AppGUI/MainGUI.py:746 AppGUI/MainGUI.py:851 AppGUI/MainGUI.py:1066 -#: AppGUI/MainGUI.py:1525 AppGUI/MainGUI.py:1886 AppGUI/MainGUI.py:2097 -#: AppGUI/MainGUI.py:4511 AppGUI/ObjectUI.py:1519 -#: AppObjects/FlatCAMGeometry.py:560 AppTools/ToolPanelize.py:551 -#: AppTools/ToolPanelize.py:578 AppTools/ToolPanelize.py:671 -#: AppTools/ToolPanelize.py:700 AppTools/ToolPanelize.py:762 -msgid "Copy" -msgstr "Kopieren" - -#: AppGUI/MainGUI.py:754 AppGUI/MainGUI.py:1538 AppTools/ToolProperties.py:31 -msgid "Properties" -msgstr "Eigenschaften" - -#: AppGUI/MainGUI.py:783 -msgid "File Toolbar" -msgstr "Dateisymbolleiste" - -#: AppGUI/MainGUI.py:787 -msgid "Edit Toolbar" -msgstr "Symbolleiste bearbeiten" - -#: AppGUI/MainGUI.py:791 -msgid "View Toolbar" -msgstr "Symbolleiste anzeigen" - -#: AppGUI/MainGUI.py:795 -msgid "Shell Toolbar" -msgstr "Shell-Symbolleiste" - -#: AppGUI/MainGUI.py:799 -msgid "Tools Toolbar" -msgstr "Werkzeugleiste" - -#: AppGUI/MainGUI.py:803 -msgid "Excellon Editor Toolbar" -msgstr "Excellon Editor-Symbolleiste" - -#: AppGUI/MainGUI.py:809 -msgid "Geometry Editor Toolbar" -msgstr "Geometrie Editor-Symbolleiste" - -#: AppGUI/MainGUI.py:813 -msgid "Gerber Editor Toolbar" -msgstr "Gerber Editor-Symbolleiste" - -#: AppGUI/MainGUI.py:817 -msgid "Grid Toolbar" -msgstr "Raster-Symbolleiste" - -#: AppGUI/MainGUI.py:831 AppGUI/MainGUI.py:1865 App_Main.py:6592 -#: App_Main.py:6597 -msgid "Open Gerber" -msgstr "Gerber öffnen" - -#: AppGUI/MainGUI.py:833 AppGUI/MainGUI.py:1867 App_Main.py:6632 -#: App_Main.py:6637 -msgid "Open Excellon" -msgstr "Excellon öffnen" - -#: AppGUI/MainGUI.py:836 AppGUI/MainGUI.py:1870 -msgid "Open project" -msgstr "Projekt öffnen" - -#: AppGUI/MainGUI.py:838 AppGUI/MainGUI.py:1872 -msgid "Save project" -msgstr "Projekt speichern" - -#: AppGUI/MainGUI.py:846 AppGUI/MainGUI.py:1881 -msgid "Save Object and close the Editor" -msgstr "Speichern Sie das Objekt und schließen Sie den Editor" - -#: AppGUI/MainGUI.py:853 AppGUI/MainGUI.py:1888 -msgid "&Delete" -msgstr "&Löschen" - -#: AppGUI/MainGUI.py:856 AppGUI/MainGUI.py:1891 AppGUI/MainGUI.py:4100 -#: AppGUI/MainGUI.py:4308 AppTools/ToolDistance.py:35 -#: AppTools/ToolDistance.py:197 -msgid "Distance Tool" -msgstr "Entfernungswerkzeug" - -#: AppGUI/MainGUI.py:858 AppGUI/MainGUI.py:1893 -msgid "Distance Min Tool" -msgstr "Werkzeug für Mindestabstand" - -#: AppGUI/MainGUI.py:860 AppGUI/MainGUI.py:1895 AppGUI/MainGUI.py:4093 -msgid "Set Origin" -msgstr "Nullpunkt festlegen" - -#: AppGUI/MainGUI.py:862 AppGUI/MainGUI.py:1897 -msgid "Move to Origin" -msgstr "Zum Ursprung wechseln" - -#: AppGUI/MainGUI.py:865 AppGUI/MainGUI.py:1899 -msgid "Jump to Location" -msgstr "Zur Position springen\tJ" - -#: AppGUI/MainGUI.py:867 AppGUI/MainGUI.py:1901 AppGUI/MainGUI.py:4105 -msgid "Locate in Object" -msgstr "Suchen Sie im Objekt" - -#: AppGUI/MainGUI.py:873 AppGUI/MainGUI.py:1907 -msgid "&Replot" -msgstr "Neuzeichnen &R" - -#: AppGUI/MainGUI.py:875 AppGUI/MainGUI.py:1909 -msgid "&Clear plot" -msgstr "Darstellung löschen &C" - -#: AppGUI/MainGUI.py:877 AppGUI/MainGUI.py:1911 AppGUI/MainGUI.py:4096 -msgid "Zoom In" -msgstr "Hineinzoomen" - -#: AppGUI/MainGUI.py:879 AppGUI/MainGUI.py:1913 AppGUI/MainGUI.py:4096 -msgid "Zoom Out" -msgstr "Rauszoomen" - -#: AppGUI/MainGUI.py:881 AppGUI/MainGUI.py:1429 AppGUI/MainGUI.py:1915 -#: AppGUI/MainGUI.py:4095 -msgid "Zoom Fit" -msgstr "Passend zoomen" - -#: AppGUI/MainGUI.py:889 AppGUI/MainGUI.py:1921 -msgid "&Command Line" -msgstr "Befehlszeile" - -#: AppGUI/MainGUI.py:901 AppGUI/MainGUI.py:1933 -msgid "2Sided Tool" -msgstr "2Seitiges Werkzeug" - -#: AppGUI/MainGUI.py:903 AppGUI/MainGUI.py:1935 AppGUI/MainGUI.py:4111 -msgid "Align Objects Tool" -msgstr "Werkzeug \"Objekte ausrichten\"" - -#: AppGUI/MainGUI.py:905 AppGUI/MainGUI.py:1937 AppGUI/MainGUI.py:4111 -#: AppTools/ToolExtractDrills.py:393 -msgid "Extract Drills Tool" -msgstr "Bohrer Extrahieren Werkzeug" - -#: AppGUI/MainGUI.py:908 AppGUI/ObjectUI.py:360 AppTools/ToolCutOut.py:440 -msgid "Cutout Tool" -msgstr "Ausschnittwerkzeug" - -#: AppGUI/MainGUI.py:910 AppGUI/MainGUI.py:1942 AppGUI/ObjectUI.py:346 -#: AppGUI/ObjectUI.py:2087 AppTools/ToolNCC.py:974 -msgid "NCC Tool" -msgstr "NCC Werkzeug" - -#: AppGUI/MainGUI.py:914 AppGUI/MainGUI.py:1946 AppGUI/MainGUI.py:4113 -#: AppTools/ToolIsolation.py:38 AppTools/ToolIsolation.py:766 -msgid "Isolation Tool" -msgstr "Isolationswerkzeug" - -#: AppGUI/MainGUI.py:918 AppGUI/MainGUI.py:1950 -msgid "Panel Tool" -msgstr "Platte Werkzeug" - -#: AppGUI/MainGUI.py:920 AppGUI/MainGUI.py:1952 AppTools/ToolFilm.py:569 -msgid "Film Tool" -msgstr "Filmwerkzeug" - -#: AppGUI/MainGUI.py:922 AppGUI/MainGUI.py:1954 AppTools/ToolSolderPaste.py:561 -msgid "SolderPaste Tool" -msgstr "Lötpaste-Werkzeug" - -#: AppGUI/MainGUI.py:924 AppGUI/MainGUI.py:1956 AppGUI/MainGUI.py:4118 -#: AppTools/ToolSub.py:40 -msgid "Subtract Tool" -msgstr "Subtraktionswerkzeug" - -#: AppGUI/MainGUI.py:926 AppGUI/MainGUI.py:1958 AppTools/ToolRulesCheck.py:616 -msgid "Rules Tool" -msgstr "Regelwerkzeug" - -#: AppGUI/MainGUI.py:928 AppGUI/MainGUI.py:1960 AppGUI/MainGUI.py:4115 -#: AppTools/ToolOptimal.py:33 AppTools/ToolOptimal.py:313 -msgid "Optimal Tool" -msgstr "Optimierungswerkzeug" - -#: AppGUI/MainGUI.py:933 AppGUI/MainGUI.py:1965 AppGUI/MainGUI.py:4111 -msgid "Calculators Tool" -msgstr "Rechnerwerkzeug" - -#: AppGUI/MainGUI.py:937 AppGUI/MainGUI.py:1969 AppGUI/MainGUI.py:4116 -#: AppTools/ToolQRCode.py:43 AppTools/ToolQRCode.py:391 -msgid "QRCode Tool" -msgstr "QRCode Werkzeug" - -# Really don't know -#: AppGUI/MainGUI.py:939 AppGUI/MainGUI.py:1971 AppGUI/MainGUI.py:4113 -#: AppTools/ToolCopperThieving.py:39 AppTools/ToolCopperThieving.py:572 -msgid "Copper Thieving Tool" -msgstr "Copper Thieving Werkzeug" - -# Really don't know -#: AppGUI/MainGUI.py:942 AppGUI/MainGUI.py:1974 AppGUI/MainGUI.py:4112 -#: AppTools/ToolFiducials.py:33 AppTools/ToolFiducials.py:399 -msgid "Fiducials Tool" -msgstr "Passermarken-Tool" - -#: AppGUI/MainGUI.py:944 AppGUI/MainGUI.py:1976 AppTools/ToolCalibration.py:37 -#: AppTools/ToolCalibration.py:759 -msgid "Calibration Tool" -msgstr "Kalibierungswerkzeug" - -#: AppGUI/MainGUI.py:946 AppGUI/MainGUI.py:1978 AppGUI/MainGUI.py:4113 -msgid "Punch Gerber Tool" -msgstr "Stanzen Sie das Gerber-Werkzeug" - -#: AppGUI/MainGUI.py:948 AppGUI/MainGUI.py:1980 AppTools/ToolInvertGerber.py:31 -msgid "Invert Gerber Tool" -msgstr "Invertieren Sie das Gerber-Werkzeug" - -#: AppGUI/MainGUI.py:950 AppGUI/MainGUI.py:1982 AppGUI/MainGUI.py:4115 -#: AppTools/ToolCorners.py:31 -msgid "Corner Markers Tool" -msgstr "Eckmarkierungswerkzeug" - -#: AppGUI/MainGUI.py:952 AppGUI/MainGUI.py:1984 -#: AppTools/ToolEtchCompensation.py:32 AppTools/ToolEtchCompensation.py:288 -msgid "Etch Compensation Tool" -msgstr "Ätzkompensationswerkzeug" - -#: AppGUI/MainGUI.py:958 AppGUI/MainGUI.py:984 AppGUI/MainGUI.py:1036 -#: AppGUI/MainGUI.py:1990 AppGUI/MainGUI.py:2068 -msgid "Select" -msgstr "Wählen" - -#: AppGUI/MainGUI.py:960 AppGUI/MainGUI.py:1992 -msgid "Add Drill Hole" -msgstr "Bohrloch hinzufügen" - -#: AppGUI/MainGUI.py:962 AppGUI/MainGUI.py:1994 -msgid "Add Drill Hole Array" -msgstr "Bohrlochfeld hinzufügen" - -#: AppGUI/MainGUI.py:964 AppGUI/MainGUI.py:1517 AppGUI/MainGUI.py:1998 -#: AppGUI/MainGUI.py:4393 -msgid "Add Slot" -msgstr "Steckplatz hinzufügen" - -#: AppGUI/MainGUI.py:966 AppGUI/MainGUI.py:1519 AppGUI/MainGUI.py:2000 -#: AppGUI/MainGUI.py:4392 -msgid "Add Slot Array" -msgstr "Steckplatz-Array hinzufügen" - -#: AppGUI/MainGUI.py:968 AppGUI/MainGUI.py:1522 AppGUI/MainGUI.py:1996 -msgid "Resize Drill" -msgstr "Bohrergröße ändern" - -#: AppGUI/MainGUI.py:972 AppGUI/MainGUI.py:2004 -msgid "Copy Drill" -msgstr "Bohrer kopieren" - -#: AppGUI/MainGUI.py:974 AppGUI/MainGUI.py:2006 -msgid "Delete Drill" -msgstr "Bohrer löschen" - -#: AppGUI/MainGUI.py:978 AppGUI/MainGUI.py:2010 -msgid "Move Drill" -msgstr "Bohrer bewegen" - -#: AppGUI/MainGUI.py:986 AppGUI/MainGUI.py:2018 -msgid "Add Circle" -msgstr "Kreis hinzufügen" - -#: AppGUI/MainGUI.py:988 AppGUI/MainGUI.py:2020 -msgid "Add Arc" -msgstr "Bogen hinzufügen" - -#: AppGUI/MainGUI.py:990 AppGUI/MainGUI.py:2022 -msgid "Add Rectangle" -msgstr "Rechteck hinzufügen" - -#: AppGUI/MainGUI.py:994 AppGUI/MainGUI.py:2026 -msgid "Add Path" -msgstr "Pfad hinzufügen" - -#: AppGUI/MainGUI.py:996 AppGUI/MainGUI.py:2028 -msgid "Add Polygon" -msgstr "Polygon hinzufügen" - -#: AppGUI/MainGUI.py:999 AppGUI/MainGUI.py:2031 -msgid "Add Text" -msgstr "Text hinzufügen" - -#: AppGUI/MainGUI.py:1001 AppGUI/MainGUI.py:2033 -msgid "Add Buffer" -msgstr "Puffer hinzufügen" - -#: AppGUI/MainGUI.py:1003 AppGUI/MainGUI.py:2035 -msgid "Paint Shape" -msgstr "Malen Form" - -#: AppGUI/MainGUI.py:1005 AppGUI/MainGUI.py:1062 AppGUI/MainGUI.py:1458 -#: AppGUI/MainGUI.py:1503 AppGUI/MainGUI.py:2037 AppGUI/MainGUI.py:2093 -msgid "Eraser" -msgstr "Radiergummi" - -#: AppGUI/MainGUI.py:1009 AppGUI/MainGUI.py:2041 -msgid "Polygon Union" -msgstr "Polygon-Vereinigung" - -#: AppGUI/MainGUI.py:1011 AppGUI/MainGUI.py:2043 -msgid "Polygon Explode" -msgstr "Polygon explodieren" - -#: AppGUI/MainGUI.py:1014 AppGUI/MainGUI.py:2046 -msgid "Polygon Intersection" -msgstr "Polygonschnitt" - -#: AppGUI/MainGUI.py:1016 AppGUI/MainGUI.py:2048 -msgid "Polygon Subtraction" -msgstr "Polygon-Subtraktion" - -#: AppGUI/MainGUI.py:1020 AppGUI/MainGUI.py:2052 -msgid "Cut Path" -msgstr "Pfad ausschneiden" - -#: AppGUI/MainGUI.py:1022 -msgid "Copy Shape(s)" -msgstr "Form kopieren" - -#: AppGUI/MainGUI.py:1025 -msgid "Delete Shape '-'" -msgstr "Form löschen" - -#: AppGUI/MainGUI.py:1027 AppGUI/MainGUI.py:1070 AppGUI/MainGUI.py:1470 -#: AppGUI/MainGUI.py:1507 AppGUI/MainGUI.py:2058 AppGUI/MainGUI.py:2101 -#: AppGUI/ObjectUI.py:109 AppGUI/ObjectUI.py:152 -msgid "Transformations" -msgstr "Transformationen" - -#: AppGUI/MainGUI.py:1030 -msgid "Move Objects " -msgstr "Objekte verschieben " - -#: AppGUI/MainGUI.py:1038 AppGUI/MainGUI.py:2070 AppGUI/MainGUI.py:4512 -msgid "Add Pad" -msgstr "Pad hinzufügen" - -#: AppGUI/MainGUI.py:1042 AppGUI/MainGUI.py:2074 AppGUI/MainGUI.py:4513 -msgid "Add Track" -msgstr "Track hinzufügen" - -#: AppGUI/MainGUI.py:1044 AppGUI/MainGUI.py:2076 AppGUI/MainGUI.py:4512 -msgid "Add Region" -msgstr "Region hinzufügen" - -#: AppGUI/MainGUI.py:1046 AppGUI/MainGUI.py:1489 AppGUI/MainGUI.py:2078 -msgid "Poligonize" -msgstr "Polygonisieren" - -#: AppGUI/MainGUI.py:1049 AppGUI/MainGUI.py:1491 AppGUI/MainGUI.py:2081 -msgid "SemiDisc" -msgstr "Halbscheibe" - -#: AppGUI/MainGUI.py:1051 AppGUI/MainGUI.py:1493 AppGUI/MainGUI.py:2083 -msgid "Disc" -msgstr "Scheibe" - -#: AppGUI/MainGUI.py:1059 AppGUI/MainGUI.py:1501 AppGUI/MainGUI.py:2091 -msgid "Mark Area" -msgstr "Bereich markieren" - -#: AppGUI/MainGUI.py:1073 AppGUI/MainGUI.py:1474 AppGUI/MainGUI.py:1536 -#: AppGUI/MainGUI.py:2104 AppGUI/MainGUI.py:4512 AppTools/ToolMove.py:27 -msgid "Move" -msgstr "Bewegung" - -#: AppGUI/MainGUI.py:1081 -msgid "Snap to grid" -msgstr "Am Raster ausrichten" - -#: AppGUI/MainGUI.py:1084 -msgid "Grid X snapping distance" -msgstr "Raster X Fangdistanz" - -#: AppGUI/MainGUI.py:1089 -msgid "" -"When active, value on Grid_X\n" -"is copied to the Grid_Y value." -msgstr "" -"Wenn aktiv, Wert auf Grid_X\n" -"wird in den Wert von Grid_Y kopiert." - -#: AppGUI/MainGUI.py:1096 -msgid "Grid Y snapping distance" -msgstr "Raster Y Fangdistanz" - -#: AppGUI/MainGUI.py:1101 -msgid "Toggle the display of axis on canvas" -msgstr "Schalten Sie die Anzeige der Achse auf der Leinwand um" - -#: AppGUI/MainGUI.py:1107 AppGUI/preferences/PreferencesUIManager.py:846 -#: AppGUI/preferences/PreferencesUIManager.py:938 -#: AppGUI/preferences/PreferencesUIManager.py:966 -#: AppGUI/preferences/PreferencesUIManager.py:1072 App_Main.py:5140 -#: App_Main.py:5145 App_Main.py:5168 -msgid "Preferences" -msgstr "Einstellungen" - -#: AppGUI/MainGUI.py:1113 -msgid "Command Line" -msgstr "Befehlszeile" - -#: AppGUI/MainGUI.py:1119 -msgid "HUD (Heads up display)" -msgstr "HUD (Heads-up-Display)" - -#: AppGUI/MainGUI.py:1125 AppGUI/preferences/general/GeneralAPPSetGroupUI.py:97 -msgid "" -"Draw a delimiting rectangle on canvas.\n" -"The purpose is to illustrate the limits for our work." -msgstr "" -"Zeichnen Sie ein begrenzendes Rechteck auf die Leinwand.\n" -"Ziel ist es, die Grenzen unserer Arbeit aufzuzeigen." - -#: AppGUI/MainGUI.py:1135 -msgid "Snap to corner" -msgstr "In der Ecke ausrichten" - -#: AppGUI/MainGUI.py:1139 AppGUI/preferences/general/GeneralAPPSetGroupUI.py:78 -msgid "Max. magnet distance" -msgstr "Max. Magnetabstand" - -#: AppGUI/MainGUI.py:1175 AppGUI/MainGUI.py:1420 App_Main.py:7639 -msgid "Project" -msgstr "Projekt" - -#: AppGUI/MainGUI.py:1190 -msgid "Selected" -msgstr "Ausgewählt" - -#: AppGUI/MainGUI.py:1218 AppGUI/MainGUI.py:1226 -msgid "Plot Area" -msgstr "Grundstücksfläche" - -#: AppGUI/MainGUI.py:1253 -msgid "General" -msgstr "Allgemeines" - -#: AppGUI/MainGUI.py:1268 AppTools/ToolCopperThieving.py:74 -#: AppTools/ToolCorners.py:55 AppTools/ToolDblSided.py:64 -#: AppTools/ToolEtchCompensation.py:73 AppTools/ToolExtractDrills.py:61 -#: AppTools/ToolFiducials.py:262 AppTools/ToolInvertGerber.py:72 -#: AppTools/ToolIsolation.py:94 AppTools/ToolOptimal.py:71 -#: AppTools/ToolPunchGerber.py:64 AppTools/ToolQRCode.py:78 -#: AppTools/ToolRulesCheck.py:61 AppTools/ToolSolderPaste.py:67 -#: AppTools/ToolSub.py:70 -msgid "GERBER" -msgstr "GERBER" - -#: AppGUI/MainGUI.py:1278 AppTools/ToolDblSided.py:92 -#: AppTools/ToolRulesCheck.py:199 -msgid "EXCELLON" -msgstr "EXCELLON" - -#: AppGUI/MainGUI.py:1288 AppTools/ToolDblSided.py:120 AppTools/ToolSub.py:125 -msgid "GEOMETRY" -msgstr "GEOMETRY" - -#: AppGUI/MainGUI.py:1298 -msgid "CNC-JOB" -msgstr "CNC-Auftrag" - -#: AppGUI/MainGUI.py:1307 AppGUI/ObjectUI.py:328 AppGUI/ObjectUI.py:2062 -msgid "TOOLS" -msgstr "WERKZEUGE" - -#: AppGUI/MainGUI.py:1316 -msgid "TOOLS 2" -msgstr "WERKZEUGE 2" - -#: AppGUI/MainGUI.py:1326 -msgid "UTILITIES" -msgstr "NUTZEN" - -#: AppGUI/MainGUI.py:1343 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:201 -msgid "Restore Defaults" -msgstr "Standard wiederherstellen" - -#: AppGUI/MainGUI.py:1346 -msgid "" -"Restore the entire set of default values\n" -"to the initial values loaded after first launch." -msgstr "" -"Stellen Sie den gesamten Satz von Standardwerten wieder her\n" -"auf die nach dem ersten Start geladenen Anfangswerte." - -#: AppGUI/MainGUI.py:1351 -msgid "Open Pref Folder" -msgstr "Öffnen Sie den Einstellungsordner" - -#: AppGUI/MainGUI.py:1354 -msgid "Open the folder where FlatCAM save the preferences files." -msgstr "" -"Öffnen Sie den Ordner, in dem FlatCAM die Voreinstellungsdateien speichert." - -#: AppGUI/MainGUI.py:1358 AppGUI/MainGUI.py:1836 -msgid "Clear GUI Settings" -msgstr "Löschen Sie die GUI-Einstellungen" - -#: AppGUI/MainGUI.py:1362 -msgid "" -"Clear the GUI settings for FlatCAM,\n" -"such as: layout, gui state, style, hdpi support etc." -msgstr "" -"Löschen Sie die GUI-Einstellungen für FlatCAM.\n" -"wie zum Beispiel: Layout, GUI-Status, Stil, HDPI-Unterstützung usw." - -#: AppGUI/MainGUI.py:1373 -msgid "Apply" -msgstr "Anwenden" - -#: AppGUI/MainGUI.py:1376 -msgid "Apply the current preferences without saving to a file." -msgstr "Anwenden ohne zu speichern." - -#: AppGUI/MainGUI.py:1383 -msgid "" -"Save the current settings in the 'current_defaults' file\n" -"which is the file storing the working default preferences." -msgstr "" -"Speichern Sie die aktuellen Einstellungen in der Datei 'current_defaults'\n" -"Dies ist die Datei, in der die Arbeitseinstellungen gespeichert sind." - -#: AppGUI/MainGUI.py:1391 -msgid "Will not save the changes and will close the preferences window." -msgstr "Einstellungen werden geschlossen ohne die Änderungen zu speichern." - -#: AppGUI/MainGUI.py:1405 -msgid "Toggle Visibility" -msgstr "Sichtbarkeit umschalten" - -#: AppGUI/MainGUI.py:1411 -msgid "New" -msgstr "Neu" - -#: AppGUI/MainGUI.py:1413 AppTools/ToolCalibration.py:631 -#: AppTools/ToolCalibration.py:648 AppTools/ToolCalibration.py:815 -#: AppTools/ToolCopperThieving.py:148 AppTools/ToolCopperThieving.py:162 -#: AppTools/ToolCopperThieving.py:608 AppTools/ToolCutOut.py:92 -#: AppTools/ToolDblSided.py:226 AppTools/ToolFilm.py:69 AppTools/ToolFilm.py:92 -#: AppTools/ToolImage.py:49 AppTools/ToolImage.py:271 -#: AppTools/ToolIsolation.py:464 AppTools/ToolIsolation.py:517 -#: AppTools/ToolIsolation.py:1281 AppTools/ToolNCC.py:95 -#: AppTools/ToolNCC.py:558 AppTools/ToolNCC.py:1318 AppTools/ToolPaint.py:501 -#: AppTools/ToolPaint.py:705 AppTools/ToolPanelize.py:116 -#: AppTools/ToolPanelize.py:385 AppTools/ToolPanelize.py:402 -msgid "Geometry" -msgstr "Geometrie" - -#: AppGUI/MainGUI.py:1417 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:99 -#: AppTools/ToolAlignObjects.py:74 AppTools/ToolAlignObjects.py:110 -#: AppTools/ToolCalibration.py:197 AppTools/ToolCalibration.py:631 -#: AppTools/ToolCalibration.py:648 AppTools/ToolCalibration.py:807 -#: AppTools/ToolCalibration.py:815 AppTools/ToolCopperThieving.py:148 -#: AppTools/ToolCopperThieving.py:162 AppTools/ToolCopperThieving.py:608 -#: AppTools/ToolDblSided.py:225 AppTools/ToolFilm.py:342 -#: AppTools/ToolIsolation.py:517 AppTools/ToolIsolation.py:1281 -#: AppTools/ToolNCC.py:558 AppTools/ToolNCC.py:1318 AppTools/ToolPaint.py:501 -#: AppTools/ToolPaint.py:705 AppTools/ToolPanelize.py:385 -#: AppTools/ToolPunchGerber.py:149 AppTools/ToolPunchGerber.py:164 -msgid "Excellon" -msgstr "Excellon" - -#: AppGUI/MainGUI.py:1424 -msgid "Grids" -msgstr "Raster" - -#: AppGUI/MainGUI.py:1431 -msgid "Clear Plot" -msgstr "Plot klar löschen" - -#: AppGUI/MainGUI.py:1433 -msgid "Replot" -msgstr "Replotieren" - -#: AppGUI/MainGUI.py:1437 -msgid "Geo Editor" -msgstr "Geo-Editor" - -#: AppGUI/MainGUI.py:1439 -msgid "Path" -msgstr "Pfad" - -#: AppGUI/MainGUI.py:1441 -msgid "Rectangle" -msgstr "Rechteck" - -#: AppGUI/MainGUI.py:1444 -msgid "Circle" -msgstr "Kreis" - -#: AppGUI/MainGUI.py:1448 -msgid "Arc" -msgstr "Bogen" - -#: AppGUI/MainGUI.py:1462 -msgid "Union" -msgstr "Vereinigung" - -#: AppGUI/MainGUI.py:1464 -msgid "Intersection" -msgstr "Überschneidung" - -#: AppGUI/MainGUI.py:1466 -msgid "Subtraction" -msgstr "Subtraktion" - -#: AppGUI/MainGUI.py:1468 AppGUI/ObjectUI.py:2151 -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:56 -msgid "Cut" -msgstr "Schnitt" - -#: AppGUI/MainGUI.py:1479 -msgid "Pad" -msgstr "Pad" - -#: AppGUI/MainGUI.py:1481 -msgid "Pad Array" -msgstr "Pad-Array" - -#: AppGUI/MainGUI.py:1485 -msgid "Track" -msgstr "Track" - -#: AppGUI/MainGUI.py:1487 -msgid "Region" -msgstr "Region" - -#: AppGUI/MainGUI.py:1510 -msgid "Exc Editor" -msgstr "Exc-Editor" - -#: AppGUI/MainGUI.py:1512 AppGUI/MainGUI.py:4391 -msgid "Add Drill" -msgstr "Bohrer hinzufügen" - -#: AppGUI/MainGUI.py:1531 App_Main.py:2219 -msgid "Close Editor" -msgstr "Editor schließen" - -#: AppGUI/MainGUI.py:1555 -msgid "" -"Absolute measurement.\n" -"Reference is (X=0, Y= 0) position" -msgstr "" -"Absolute Messung.\n" -"Referenz ist (X = 0, Y = 0)" - -#: AppGUI/MainGUI.py:1563 -msgid "Application units" -msgstr "Anwendungseinheiten" - -#: AppGUI/MainGUI.py:1654 -msgid "Lock Toolbars" -msgstr "Symbolleisten sperren" - -#: AppGUI/MainGUI.py:1824 -msgid "FlatCAM Preferences Folder opened." -msgstr "FlatCAM-Einstellungsordner geöffnet." - -#: AppGUI/MainGUI.py:1835 -msgid "Are you sure you want to delete the GUI Settings? \n" -msgstr "Möchten Sie die GUI-Einstellungen wirklich löschen?\n" - -#: AppGUI/MainGUI.py:1840 AppGUI/preferences/PreferencesUIManager.py:877 -#: AppGUI/preferences/PreferencesUIManager.py:1123 AppTranslation.py:111 -#: AppTranslation.py:210 App_Main.py:2223 App_Main.py:3158 App_Main.py:5354 -#: App_Main.py:6415 -msgid "Yes" -msgstr "Ja" - -#: AppGUI/MainGUI.py:1841 AppGUI/preferences/PreferencesUIManager.py:1124 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:62 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:164 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:150 -#: AppTools/ToolIsolation.py:174 AppTools/ToolNCC.py:182 -#: AppTools/ToolPaint.py:165 AppTranslation.py:112 AppTranslation.py:211 -#: App_Main.py:2224 App_Main.py:3159 App_Main.py:5355 App_Main.py:6416 -msgid "No" -msgstr "Nein" - -#: AppGUI/MainGUI.py:1940 -msgid "&Cutout Tool" -msgstr "Ausschnittwerkzeug" - -#: AppGUI/MainGUI.py:2016 -msgid "Select 'Esc'" -msgstr "Wählen" - -#: AppGUI/MainGUI.py:2054 -msgid "Copy Objects" -msgstr "Objekte kopieren" - -#: AppGUI/MainGUI.py:2056 AppGUI/MainGUI.py:4311 -msgid "Delete Shape" -msgstr "Form löschen" - -#: AppGUI/MainGUI.py:2062 -msgid "Move Objects" -msgstr "Objekte verschieben" - -#: AppGUI/MainGUI.py:2648 -msgid "" -"Please first select a geometry item to be cutted\n" -"then select the geometry item that will be cutted\n" -"out of the first item. In the end press ~X~ key or\n" -"the toolbar button." -msgstr "" -"Bitte wählen Sie zuerst ein zu schneidendes Geometrieelement aus\n" -"Wählen Sie dann das Geometrieelement aus, das geschnitten werden soll\n" -"aus dem ersten Artikel. Zum Schluss drücken Sie die Taste ~ X ~ oder\n" -"die Symbolleisten-Schaltfläche." - -#: AppGUI/MainGUI.py:2655 AppGUI/MainGUI.py:2819 AppGUI/MainGUI.py:2866 -#: AppGUI/MainGUI.py:2888 -msgid "Warning" -msgstr "Warnung" - -#: AppGUI/MainGUI.py:2814 -msgid "" -"Please select geometry items \n" -"on which to perform Intersection Tool." -msgstr "" -"Bitte wählen Sie Geometrieelemente aus\n" -"auf dem das Verschneidungswerkzeug ausgeführt werden soll." - -#: AppGUI/MainGUI.py:2861 -msgid "" -"Please select geometry items \n" -"on which to perform Substraction Tool." -msgstr "" -"Bitte wählen Sie Geometrieelemente aus\n" -"auf dem das Subtraktionswerkzeug ausgeführt werden soll." - -#: AppGUI/MainGUI.py:2883 -msgid "" -"Please select geometry items \n" -"on which to perform union." -msgstr "" -"Bitte wählen Sie Geometrieelemente aus\n" -"auf dem die Polygonverbindung ausgeführt werden soll." - -#: AppGUI/MainGUI.py:2968 AppGUI/MainGUI.py:3183 -msgid "Cancelled. Nothing selected to delete." -msgstr "Abgebrochen. Nichts zum Löschen ausgewählt." - -#: AppGUI/MainGUI.py:3052 AppGUI/MainGUI.py:3299 -msgid "Cancelled. Nothing selected to copy." -msgstr "Abgebrochen. Nichts zum Kopieren ausgewählt." - -#: AppGUI/MainGUI.py:3098 AppGUI/MainGUI.py:3328 -msgid "Cancelled. Nothing selected to move." -msgstr "Abgebrochen. Nichts ausgewählt, um sich zu bewegen." - -#: AppGUI/MainGUI.py:3354 -msgid "New Tool ..." -msgstr "Neues Werkzeug ..." - -#: AppGUI/MainGUI.py:3355 AppTools/ToolIsolation.py:1258 -#: AppTools/ToolNCC.py:924 AppTools/ToolPaint.py:849 -#: AppTools/ToolSolderPaste.py:568 -msgid "Enter a Tool Diameter" -msgstr "Geben Sie einen Werkzeugdurchmesser ein" - -#: AppGUI/MainGUI.py:3367 -msgid "Adding Tool cancelled ..." -msgstr "Tool wird hinzugefügt abgebrochen ..." - -#: AppGUI/MainGUI.py:3381 -msgid "Distance Tool exit..." -msgstr "Entfernungstool beenden ..." - -#: AppGUI/MainGUI.py:3561 App_Main.py:3146 -msgid "Application is saving the project. Please wait ..." -msgstr "Anwendung speichert das Projekt. Warten Sie mal ..." - -#: AppGUI/MainGUI.py:3668 -msgid "Shell disabled." -msgstr "Shell deaktiviert." - -#: AppGUI/MainGUI.py:3678 -msgid "Shell enabled." -msgstr "Shell aktiviert." - -#: AppGUI/MainGUI.py:3706 App_Main.py:9155 -msgid "Shortcut Key List" -msgstr " Liste der Tastenkombinationen " - -#: AppGUI/MainGUI.py:4089 -msgid "General Shortcut list" -msgstr "Tastenkürzel Liste" - -#: AppGUI/MainGUI.py:4090 -msgid "SHOW SHORTCUT LIST" -msgstr "Verknüpfungsliste anzeigen" - -#: AppGUI/MainGUI.py:4090 -msgid "Switch to Project Tab" -msgstr "Wechseln Sie zur Registerkarte Projekt" - -#: AppGUI/MainGUI.py:4090 -msgid "Switch to Selected Tab" -msgstr "Wechseln Sie zur ausgewählten Registerkarte" - -#: AppGUI/MainGUI.py:4091 -msgid "Switch to Tool Tab" -msgstr "Wechseln Sie zur Werkzeugregisterkarte" - -#: AppGUI/MainGUI.py:4092 -msgid "New Gerber" -msgstr "Neuer Gerber" - -#: AppGUI/MainGUI.py:4092 -msgid "Edit Object (if selected)" -msgstr "Objekt bearbeiten (falls ausgewählt)" - -#: AppGUI/MainGUI.py:4092 App_Main.py:5658 -msgid "Grid On/Off" -msgstr "Raster ein/aus" - -#: AppGUI/MainGUI.py:4092 -msgid "Jump to Coordinates" -msgstr "Springe zu den Koordinaten" - -#: AppGUI/MainGUI.py:4093 -msgid "New Excellon" -msgstr "Neuer Excellon" - -#: AppGUI/MainGUI.py:4093 -msgid "Move Obj" -msgstr "Objekt verschieben" - -#: AppGUI/MainGUI.py:4093 -msgid "New Geometry" -msgstr "Neue Geometrie" - -#: AppGUI/MainGUI.py:4093 -msgid "Change Units" -msgstr "Einheiten ändern" - -#: AppGUI/MainGUI.py:4094 -msgid "Open Properties Tool" -msgstr "Öffnen Sie das Eigenschaften-Tool" - -#: AppGUI/MainGUI.py:4094 -msgid "Rotate by 90 degree CW" -msgstr "Um 90 Grad im Uhrzeigersinn drehen" - -#: AppGUI/MainGUI.py:4094 -msgid "Shell Toggle" -msgstr "Shell umschalten" - -#: AppGUI/MainGUI.py:4095 -msgid "" -"Add a Tool (when in Geometry Selected Tab or in Tools NCC or Tools Paint)" -msgstr "" -"Hinzufügen eines Werkzeugs (auf der Registerkarte \"Geometrie ausgewählt\" " -"oder unter \"Werkzeuge\", \"NCC\" oder \"Werkzeuge\", \"Malen\")" - -#: AppGUI/MainGUI.py:4096 -msgid "Flip on X_axis" -msgstr "Auf X-Achse spiegeln" - -#: AppGUI/MainGUI.py:4096 -msgid "Flip on Y_axis" -msgstr "Auf Y-Achse spiegeln" - -#: AppGUI/MainGUI.py:4099 -msgid "Copy Obj" -msgstr "Objekt kopieren" - -#: AppGUI/MainGUI.py:4099 -msgid "Open Tools Database" -msgstr "Werkzeugdatenbank öffnen" - -#: AppGUI/MainGUI.py:4100 -msgid "Open Excellon File" -msgstr "Öffnen Sie die Excellon-Datei" - -#: AppGUI/MainGUI.py:4100 -msgid "Open Gerber File" -msgstr "Öffnen Sie die Gerber-Datei" - -#: AppGUI/MainGUI.py:4100 -msgid "New Project" -msgstr "Neues Projekt" - -#: AppGUI/MainGUI.py:4101 App_Main.py:6711 App_Main.py:6714 -msgid "Open Project" -msgstr "Projekt öffnen" - -#: AppGUI/MainGUI.py:4101 AppTools/ToolPDF.py:41 -msgid "PDF Import Tool" -msgstr "PDF-Importwerkzeug" - -#: AppGUI/MainGUI.py:4101 -msgid "Save Project" -msgstr "Projekt speichern" - -#: AppGUI/MainGUI.py:4101 -msgid "Toggle Plot Area" -msgstr "Zeichenbereich umschalten0" - -#: AppGUI/MainGUI.py:4104 -msgid "Copy Obj_Name" -msgstr "Kopieren Sie den Namen des Objekts" - -#: AppGUI/MainGUI.py:4105 -msgid "Toggle Code Editor" -msgstr "Code-Editor umschalten" - -#: AppGUI/MainGUI.py:4105 -msgid "Toggle the axis" -msgstr "Achse umschalten" - -#: AppGUI/MainGUI.py:4105 AppGUI/MainGUI.py:4306 AppGUI/MainGUI.py:4393 -#: AppGUI/MainGUI.py:4515 -msgid "Distance Minimum Tool" -msgstr "Mindestabstand Werkzeug" - -#: AppGUI/MainGUI.py:4106 -msgid "Open Preferences Window" -msgstr "Öffnen Sie das Einstellungsfenster" - -#: AppGUI/MainGUI.py:4107 -msgid "Rotate by 90 degree CCW" -msgstr "Um 90 Grad gegen den Uhrzeigersinn drehen" - -#: AppGUI/MainGUI.py:4107 -msgid "Run a Script" -msgstr "Führen Sie ein Skript aus" - -#: AppGUI/MainGUI.py:4107 -msgid "Toggle the workspace" -msgstr "Arbeitsbereich umschalten" - -#: AppGUI/MainGUI.py:4107 -msgid "Skew on X axis" -msgstr "Neigung auf der X-Achse" - -#: AppGUI/MainGUI.py:4108 -msgid "Skew on Y axis" -msgstr "Neigung auf der Y-Achse" - -#: AppGUI/MainGUI.py:4111 -msgid "2-Sided PCB Tool" -msgstr "2-seitiges PCB Werkzeug" - -#: AppGUI/MainGUI.py:4112 -msgid "Toggle Grid Lines" -msgstr "Rasterlinien umschalten" - -#: AppGUI/MainGUI.py:4114 -msgid "Solder Paste Dispensing Tool" -msgstr "Lotpasten-Dosierwerkzeug" - -#: AppGUI/MainGUI.py:4115 -msgid "Film PCB Tool" -msgstr "Film PCB Werkzeug" - -#: AppGUI/MainGUI.py:4115 -msgid "Non-Copper Clearing Tool" -msgstr "Nicht-Kupfer-Räumwerkzeug" - -#: AppGUI/MainGUI.py:4116 -msgid "Paint Area Tool" -msgstr "Malbereichswerkzeug" - -#: AppGUI/MainGUI.py:4116 -msgid "Rules Check Tool" -msgstr "Regelprüfwerkzeug" - -#: AppGUI/MainGUI.py:4117 -msgid "View File Source" -msgstr "Dateiquelle anzeigen" - -#: AppGUI/MainGUI.py:4117 -msgid "Transformations Tool" -msgstr "Transformations-Tool" - -#: AppGUI/MainGUI.py:4118 -msgid "Cutout PCB Tool" -msgstr "Ausschnitt PCB Tool" - -#: AppGUI/MainGUI.py:4118 AppTools/ToolPanelize.py:35 -msgid "Panelize PCB" -msgstr "Panelisierung PCB" - -#: AppGUI/MainGUI.py:4119 -msgid "Enable all Plots" -msgstr "Alle Zeichnungen aktivieren" - -#: AppGUI/MainGUI.py:4119 -msgid "Disable all Plots" -msgstr "Alle Zeichnungen deaktivieren" - -#: AppGUI/MainGUI.py:4119 -msgid "Disable Non-selected Plots" -msgstr "Nicht ausgewählte Zeichnungen deaktiv" - -#: AppGUI/MainGUI.py:4120 -msgid "Toggle Full Screen" -msgstr "Vollbild umschalten" - -#: AppGUI/MainGUI.py:4123 -msgid "Abort current task (gracefully)" -msgstr "Aktuelle Aufgabe abbrechen (ordnungsgemäß)" - -#: AppGUI/MainGUI.py:4126 -msgid "Save Project As" -msgstr "Projekt speichern als" - -#: AppGUI/MainGUI.py:4127 -msgid "" -"Paste Special. Will convert a Windows path style to the one required in Tcl " -"Shell" -msgstr "" -"Paste Special. Konvertiert einen Windows-Pfadstil in den in Tcl Shell " -"erforderlichen" - -#: AppGUI/MainGUI.py:4130 -msgid "Open Online Manual" -msgstr "Online-Handbuch öffnen" - -#: AppGUI/MainGUI.py:4131 -msgid "Open Online Tutorials" -msgstr "Öffnen Sie Online-Tutorials" - -#: AppGUI/MainGUI.py:4131 -msgid "Refresh Plots" -msgstr "Zeichnungen aktualisieren" - -#: AppGUI/MainGUI.py:4131 AppTools/ToolSolderPaste.py:517 -msgid "Delete Object" -msgstr "Objekt löschen" - -#: AppGUI/MainGUI.py:4131 -msgid "Alternate: Delete Tool" -msgstr "Alternative: Werkzeug löschen" - -#: AppGUI/MainGUI.py:4132 -msgid "(left to Key_1)Toggle Notebook Area (Left Side)" -msgstr "(links neben Taste_1) Notebook-Bereich umschalten (linke Seite)" - -#: AppGUI/MainGUI.py:4132 -msgid "En(Dis)able Obj Plot" -msgstr "Objektzeichnung (de)aktivieren" - -#: AppGUI/MainGUI.py:4133 -msgid "Deselects all objects" -msgstr "Hebt die Auswahl aller Objekte auf" - -#: AppGUI/MainGUI.py:4147 -msgid "Editor Shortcut list" -msgstr "Editor-Verknüpfungsliste" - -#: AppGUI/MainGUI.py:4301 -msgid "GEOMETRY EDITOR" -msgstr "GEOMETRIE-EDITOR" - -#: AppGUI/MainGUI.py:4301 -msgid "Draw an Arc" -msgstr "Zeichnen Sie einen Bogen" - -#: AppGUI/MainGUI.py:4301 -msgid "Copy Geo Item" -msgstr "Geo-Objekt kopieren" - -#: AppGUI/MainGUI.py:4302 -msgid "Within Add Arc will toogle the ARC direction: CW or CCW" -msgstr "" -"Innerhalb von Bogen hinzufügen wird die ARC-Richtung getippt: CW oder CCW" - -#: AppGUI/MainGUI.py:4302 -msgid "Polygon Intersection Tool" -msgstr "Werkzeug Polygonschnitt" - -#: AppGUI/MainGUI.py:4303 -msgid "Geo Paint Tool" -msgstr "Geo-Malwerkzeug" - -#: AppGUI/MainGUI.py:4303 AppGUI/MainGUI.py:4392 AppGUI/MainGUI.py:4512 -msgid "Jump to Location (x, y)" -msgstr "Zum Standort springen (x, y)" - -#: AppGUI/MainGUI.py:4303 -msgid "Toggle Corner Snap" -msgstr "Eckfang umschalten" - -#: AppGUI/MainGUI.py:4303 -msgid "Move Geo Item" -msgstr "Geo-Objekt verschieben" - -#: AppGUI/MainGUI.py:4304 -msgid "Within Add Arc will cycle through the ARC modes" -msgstr "Innerhalb von Bogen hinzufügen werden die ARC-Modi durchlaufen" - -#: AppGUI/MainGUI.py:4304 -msgid "Draw a Polygon" -msgstr "Zeichnen Sie ein Polygon" - -#: AppGUI/MainGUI.py:4304 -msgid "Draw a Circle" -msgstr "Zeichne einen Kreis" - -#: AppGUI/MainGUI.py:4305 -msgid "Draw a Path" -msgstr "Zeichne einen Pfad" - -#: AppGUI/MainGUI.py:4305 -msgid "Draw Rectangle" -msgstr "Rechteck zeichnen" - -#: AppGUI/MainGUI.py:4305 -msgid "Polygon Subtraction Tool" -msgstr "Polygon-Subtraktionswerkzeug" - -#: AppGUI/MainGUI.py:4305 -msgid "Add Text Tool" -msgstr "Textwerkzeug hinzufügen" - -#: AppGUI/MainGUI.py:4306 -msgid "Polygon Union Tool" -msgstr "Polygonverbindungswerkzeug" - -#: AppGUI/MainGUI.py:4306 -msgid "Flip shape on X axis" -msgstr "Form auf der X-Achse spiegeln" - -#: AppGUI/MainGUI.py:4306 -msgid "Flip shape on Y axis" -msgstr "Form auf der Y-Achse spiegeln" - -#: AppGUI/MainGUI.py:4307 -msgid "Skew shape on X axis" -msgstr "Neigung auf der X-Achse" - -#: AppGUI/MainGUI.py:4307 -msgid "Skew shape on Y axis" -msgstr "Neigung auf der Y-Achse" - -#: AppGUI/MainGUI.py:4307 -msgid "Editor Transformation Tool" -msgstr "Editor-Transformationstool" - -#: AppGUI/MainGUI.py:4308 -msgid "Offset shape on X axis" -msgstr "Versetzte Form auf der X-Achse" - -#: AppGUI/MainGUI.py:4308 -msgid "Offset shape on Y axis" -msgstr "Versetzte Form auf der Y-Achse" - -#: AppGUI/MainGUI.py:4309 AppGUI/MainGUI.py:4395 AppGUI/MainGUI.py:4517 -msgid "Save Object and Exit Editor" -msgstr "Objekt speichern und Editor beenden" - -#: AppGUI/MainGUI.py:4309 -msgid "Polygon Cut Tool" -msgstr "Polygon-Schneidewerkzeug" - -#: AppGUI/MainGUI.py:4310 -msgid "Rotate Geometry" -msgstr "Geometrie drehen" - -#: AppGUI/MainGUI.py:4310 -msgid "Finish drawing for certain tools" -msgstr "Beenden Sie das Zeichnen für bestimmte Werkzeuge" - -#: AppGUI/MainGUI.py:4310 AppGUI/MainGUI.py:4395 AppGUI/MainGUI.py:4515 -msgid "Abort and return to Select" -msgstr "Abbrechen und zurück zu Auswählen" - -#: AppGUI/MainGUI.py:4391 -msgid "EXCELLON EDITOR" -msgstr "EXCELLON EDITOR" - -#: AppGUI/MainGUI.py:4391 -msgid "Copy Drill(s)" -msgstr "Bohrer kopieren" - -#: AppGUI/MainGUI.py:4392 -msgid "Move Drill(s)" -msgstr "Bohrer verschieben" - -#: AppGUI/MainGUI.py:4393 -msgid "Add a new Tool" -msgstr "Fügen Sie ein neues Werkzeug hinzu" - -#: AppGUI/MainGUI.py:4394 -msgid "Delete Drill(s)" -msgstr "Bohrer löschen" - -#: AppGUI/MainGUI.py:4394 -msgid "Alternate: Delete Tool(s)" -msgstr "Alternative: Werkzeug (e) löschen" - -#: AppGUI/MainGUI.py:4511 -msgid "GERBER EDITOR" -msgstr "GERBER EDITOR" - -#: AppGUI/MainGUI.py:4511 -msgid "Add Disc" -msgstr "Fügen Sie eine Scheiben hinzu" - -#: AppGUI/MainGUI.py:4511 -msgid "Add SemiDisc" -msgstr "Halbschibe hinzufügen" - -#: AppGUI/MainGUI.py:4513 -msgid "Within Track & Region Tools will cycle in REVERSE the bend modes" -msgstr "" -"Innerhalb von Track- und Region-Werkzeugen werden die Biegemodi umgekehrt" - -#: AppGUI/MainGUI.py:4514 -msgid "Within Track & Region Tools will cycle FORWARD the bend modes" -msgstr "" -"Innerhalb von Track und Region werden mit Tools die Biegemodi vorwärts " -"durchlaufen" - -#: AppGUI/MainGUI.py:4515 -msgid "Alternate: Delete Apertures" -msgstr "Alternative: Löschen Sie die Blenden" - -#: AppGUI/MainGUI.py:4516 -msgid "Eraser Tool" -msgstr "Radiergummi" - -#: AppGUI/MainGUI.py:4517 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:221 -msgid "Mark Area Tool" -msgstr "Bereich markieren Werkzeug" - -#: AppGUI/MainGUI.py:4517 -msgid "Poligonize Tool" -msgstr "Werkzeug Polygonisieren" - -#: AppGUI/MainGUI.py:4517 -msgid "Transformation Tool" -msgstr "Transformationswerkzeug" - -#: AppGUI/ObjectUI.py:38 -msgid "App Object" -msgstr "Objekt" - -#: AppGUI/ObjectUI.py:78 AppTools/ToolIsolation.py:77 -msgid "" -"BASIC is suitable for a beginner. Many parameters\n" -"are hidden from the user in this mode.\n" -"ADVANCED mode will make available all parameters.\n" -"\n" -"To change the application LEVEL, go to:\n" -"Edit -> Preferences -> General and check:\n" -"'APP. LEVEL' radio button." -msgstr "" -"BASIC ist für Anfänger geeignet. Viele Parameter\n" -"werden in diesem Modus für den Benutzer ausgeblendet.\n" -"Im ADVANCED-Modus werden alle Parameter verfügbar.\n" -"\n" -"Um die Anwendung LEVEL zu ändern, gehen Sie zu:\n" -"Bearbeiten -> Einstellungen -> Allgemein und überprüfen Sie:\n" -"Optionsfeld \"Anwendungsebene\"." - -#: AppGUI/ObjectUI.py:111 AppGUI/ObjectUI.py:154 -msgid "Geometrical transformations of the current object." -msgstr "Geometrische Transformationen des aktuellen Objekts." - -#: AppGUI/ObjectUI.py:120 -msgid "" -"Factor by which to multiply\n" -"geometric features of this object.\n" -"Expressions are allowed. E.g: 1/25.4" -msgstr "" -"Faktor, mit dem sich multiplizieren soll\n" -"geometrische Merkmale dieses Objekts.\n" -"Ausdrücke sind erlaubt. Zum Beispiel: 1 / 25.4" - -#: AppGUI/ObjectUI.py:127 -msgid "Perform scaling operation." -msgstr "Führen Sie die Skalierung durch." - -#: AppGUI/ObjectUI.py:138 -msgid "" -"Amount by which to move the object\n" -"in the x and y axes in (x, y) format.\n" -"Expressions are allowed. E.g: (1/3.2, 0.5*3)" -msgstr "" -"Betrag, um den das Objekt verschoben werden soll\n" -"in der x- und y-Achse im (x, y) -Format.\n" -"Ausdrücke sind erlaubt. Zum Beispiel: (1/3.2, 0.5*3)" - -#: AppGUI/ObjectUI.py:145 -msgid "Perform the offset operation." -msgstr "Führen Sie den Versatzvorgang aus." - -#: AppGUI/ObjectUI.py:162 AppGUI/ObjectUI.py:173 AppTool.py:280 AppTool.py:291 -msgid "Edited value is out of range" -msgstr "Der bearbeitete Wert liegt außerhalb des Bereichs" - -#: AppGUI/ObjectUI.py:168 AppGUI/ObjectUI.py:175 AppTool.py:286 AppTool.py:293 -msgid "Edited value is within limits." -msgstr "Der bearbeitete Wert liegt innerhalb der Grenzen." - -#: AppGUI/ObjectUI.py:187 -msgid "Gerber Object" -msgstr "Gerber-Objekt" - -#: AppGUI/ObjectUI.py:196 AppGUI/ObjectUI.py:496 AppGUI/ObjectUI.py:1313 -#: AppGUI/ObjectUI.py:2135 AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:30 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:33 -#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:31 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:31 -msgid "Plot Options" -msgstr "Diagrammoptionen" - -#: AppGUI/ObjectUI.py:202 AppGUI/ObjectUI.py:502 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:47 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:45 -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:119 -#: AppTools/ToolCopperThieving.py:195 -msgid "Solid" -msgstr "Solide" - -#: AppGUI/ObjectUI.py:204 AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:47 -msgid "Solid color polygons." -msgstr "Einfarbige Polygone." - -#: AppGUI/ObjectUI.py:210 AppGUI/ObjectUI.py:510 AppGUI/ObjectUI.py:1319 -msgid "Multi-Color" -msgstr "M-farbig" - -#: AppGUI/ObjectUI.py:212 AppGUI/ObjectUI.py:512 AppGUI/ObjectUI.py:1321 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:56 -#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:47 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:54 -msgid "Draw polygons in different colors." -msgstr "Zeichnen Sie Polygone in verschiedenen Farben." - -#: AppGUI/ObjectUI.py:228 AppGUI/ObjectUI.py:548 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:40 -#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:38 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:38 -msgid "Plot" -msgstr "Zeichn" - -#: AppGUI/ObjectUI.py:229 AppGUI/ObjectUI.py:550 AppGUI/ObjectUI.py:1383 -#: AppGUI/ObjectUI.py:2245 AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:41 -#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:40 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:40 -msgid "Plot (show) this object." -msgstr "Plotten (zeigen) dieses Objekt." - -#: AppGUI/ObjectUI.py:258 -msgid "" -"Toggle the display of the Gerber Apertures Table.\n" -"When unchecked, it will delete all mark shapes\n" -"that are drawn on canvas." -msgstr "" -"Schaltet die Anzeige der Gerber-Apertur-Tabelle um.\n" -"Wenn das Kontrollkästchen deaktiviert ist, werden alle Markierungsformen " -"gelöscht\n" -"das sind auf leinwand gezeichnet." - -#: AppGUI/ObjectUI.py:268 -msgid "Mark All" -msgstr "Alles mark" - -#: AppGUI/ObjectUI.py:270 -msgid "" -"When checked it will display all the apertures.\n" -"When unchecked, it will delete all mark shapes\n" -"that are drawn on canvas." -msgstr "" -"Wenn diese Option aktiviert ist, werden alle Öffnungen angezeigt.\n" -"Wenn das Kontrollkästchen deaktiviert ist, werden alle Markierungsformen " -"gelöscht\n" -"das sind auf leinwand gezeichnet." - -#: AppGUI/ObjectUI.py:298 -msgid "Mark the aperture instances on canvas." -msgstr "Markieren Sie die Blendeninstanzen auf der Leinwand." - -#: AppGUI/ObjectUI.py:305 AppTools/ToolIsolation.py:579 -msgid "Buffer Solid Geometry" -msgstr "Festkörpergeometrie puffern" - -#: AppGUI/ObjectUI.py:307 AppTools/ToolIsolation.py:581 -msgid "" -"This button is shown only when the Gerber file\n" -"is loaded without buffering.\n" -"Clicking this will create the buffered geometry\n" -"required for isolation." -msgstr "" -"Diese Schaltfläche wird nur bei der Gerber-Datei angezeigt\n" -"wird ohne Pufferung geladen.\n" -"Durch Klicken auf diese Schaltfläche wird die gepufferte Geometrie erstellt\n" -"für die Isolierung erforderlich." - -#: AppGUI/ObjectUI.py:332 -msgid "Isolation Routing" -msgstr "Isolierungsrouting" - -#: AppGUI/ObjectUI.py:334 AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:32 -#: AppTools/ToolIsolation.py:67 -msgid "" -"Create a Geometry object with\n" -"toolpaths to cut around polygons." -msgstr "" -"Erstellen Sie ein Geometrieobjekt mit\n" -"Werkzeugwege zum Schneiden um Polygonen." - -#: AppGUI/ObjectUI.py:348 AppGUI/ObjectUI.py:2089 AppTools/ToolNCC.py:599 -msgid "" -"Create the Geometry Object\n" -"for non-copper routing." -msgstr "" -"Erstellen Sie das Geometrieobjekt\n" -"für kupferfreies Routing." - -#: AppGUI/ObjectUI.py:362 -msgid "" -"Generate the geometry for\n" -"the board cutout." -msgstr "" -"Generieren Sie die Geometrie für\n" -"der Brettausschnitt." - -#: AppGUI/ObjectUI.py:379 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:32 -msgid "Non-copper regions" -msgstr "Regionen ohne Kupfer" - -#: AppGUI/ObjectUI.py:381 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:34 -msgid "" -"Create polygons covering the\n" -"areas without copper on the PCB.\n" -"Equivalent to the inverse of this\n" -"object. Can be used to remove all\n" -"copper from a specified region." -msgstr "" -"Erstellen Sie Polygone für die\n" -"Bereiche ohne Kupfer auf der Leiterplatte.\n" -"Entspricht der Umkehrung davon\n" -"Objekt. Kann verwendet werden, um alle zu entfernen\n" -"Kupfer aus einer bestimmten Region." - -#: AppGUI/ObjectUI.py:391 AppGUI/ObjectUI.py:432 -#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:46 -#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:79 -msgid "Boundary Margin" -msgstr "Grenzmarge" - -#: AppGUI/ObjectUI.py:393 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:48 -msgid "" -"Specify the edge of the PCB\n" -"by drawing a box around all\n" -"objects with this minimum\n" -"distance." -msgstr "" -"Bestimmen Sie den Rand der Leiterplatte\n" -"indem Sie eine Box um alle ziehen\n" -"Objekte mit diesem Minimum\n" -"Entfernung." - -#: AppGUI/ObjectUI.py:408 AppGUI/ObjectUI.py:446 -#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:61 -#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:92 -msgid "Rounded Geo" -msgstr "Abgerundete Geo" - -#: AppGUI/ObjectUI.py:410 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:63 -msgid "Resulting geometry will have rounded corners." -msgstr "Die resultierende Geometrie hat abgerundete Ecken." - -#: AppGUI/ObjectUI.py:414 AppGUI/ObjectUI.py:455 -#: AppTools/ToolSolderPaste.py:373 -msgid "Generate Geo" -msgstr "Geo erzeugen" - -#: AppGUI/ObjectUI.py:424 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:73 -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:137 -#: AppTools/ToolPanelize.py:99 AppTools/ToolQRCode.py:201 -msgid "Bounding Box" -msgstr "Begrenzungsrahmen" - -#: AppGUI/ObjectUI.py:426 -msgid "" -"Create a geometry surrounding the Gerber object.\n" -"Square shape." -msgstr "" -"Erstellen Sie eine Geometrie, die das Gerber-Objekt umgibt.\n" -"Quadratische Form." - -#: AppGUI/ObjectUI.py:434 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:81 -msgid "" -"Distance of the edges of the box\n" -"to the nearest polygon." -msgstr "" -"Abstand der Kanten der Box\n" -"zum nächsten Polygon." - -#: AppGUI/ObjectUI.py:448 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:94 -msgid "" -"If the bounding box is \n" -"to have rounded corners\n" -"their radius is equal to\n" -"the margin." -msgstr "" -"Wenn der Begrenzungsrahmen ist\n" -"abgerundete Ecken haben\n" -"ihr Radius ist gleich\n" -"der Abstand." - -#: AppGUI/ObjectUI.py:457 -msgid "Generate the Geometry object." -msgstr "Generieren Sie das Geometrieobjekt." - -#: AppGUI/ObjectUI.py:484 -msgid "Excellon Object" -msgstr "Excellon-Objekt" - -#: AppGUI/ObjectUI.py:504 -msgid "Solid circles." -msgstr "Feste Kreise." - -#: AppGUI/ObjectUI.py:560 AppGUI/ObjectUI.py:655 AppGUI/ObjectUI.py:2266 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:71 -#: AppTools/ToolProperties.py:166 -msgid "Drills" -msgstr "Bohrer" - -#: AppGUI/ObjectUI.py:560 AppGUI/ObjectUI.py:656 AppGUI/ObjectUI.py:2266 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:158 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:72 -#: AppTools/ToolProperties.py:168 -msgid "Slots" -msgstr "Schlüssel" - -#: AppGUI/ObjectUI.py:565 -msgid "" -"This is the Tool Number.\n" -"When ToolChange is checked, on toolchange event this value\n" -"will be showed as a T1, T2 ... Tn in the Machine Code.\n" -"\n" -"Here the tools are selected for G-code generation." -msgstr "" -"Dies ist die Werkzeugnummer.\n" -"Wenn Werkzeugwechsel aktiviert ist, wird dieser Wert beim\n" -"Werkzeugwechselereignis angegeben\n" -"wird als T1, T2 ... Tn im Maschinencode angezeigt.\n" -"\n" -"Hier werden die Werkzeuge zur G-Code-Generierung ausgewählt." - -#: AppGUI/ObjectUI.py:570 AppGUI/ObjectUI.py:1407 AppTools/ToolPaint.py:141 -msgid "" -"Tool Diameter. It's value (in current FlatCAM units) \n" -"is the cut width into the material." -msgstr "" -"Werkzeugdurchmesser Der Wert (in aktuellen FlatCAM-Einheiten)\n" -"ist die Schnittbreite in das Material." - -#: AppGUI/ObjectUI.py:573 -msgid "" -"The number of Drill holes. Holes that are drilled with\n" -"a drill bit." -msgstr "" -"Die Anzahl der Bohrlöcher. Löcher, mit denen gebohrt wird\n" -"ein Bohrer." - -#: AppGUI/ObjectUI.py:576 -msgid "" -"The number of Slot holes. Holes that are created by\n" -"milling them with an endmill bit." -msgstr "" -"Die Anzahl der Langlöcher. Löcher, die von erstellt werden\n" -"Fräsen mit einem Schaftfräser." - -#: AppGUI/ObjectUI.py:579 -msgid "" -"Toggle display of the drills for the current tool.\n" -"This does not select the tools for G-code generation." -msgstr "" -"Anzeige der Bohrer für das aktuelle Werkzeug umschalten.\n" -"Hiermit werden die Tools für die G-Code-Generierung nicht ausgewählt." - -#: AppGUI/ObjectUI.py:597 AppGUI/ObjectUI.py:1564 -#: AppObjects/FlatCAMExcellon.py:537 AppObjects/FlatCAMExcellon.py:836 -#: AppObjects/FlatCAMExcellon.py:852 AppObjects/FlatCAMExcellon.py:856 -#: AppObjects/FlatCAMGeometry.py:380 AppObjects/FlatCAMGeometry.py:825 -#: AppObjects/FlatCAMGeometry.py:861 AppTools/ToolIsolation.py:313 -#: AppTools/ToolIsolation.py:1051 AppTools/ToolIsolation.py:1171 -#: AppTools/ToolIsolation.py:1185 AppTools/ToolNCC.py:331 -#: AppTools/ToolNCC.py:797 AppTools/ToolNCC.py:811 AppTools/ToolNCC.py:1214 -#: AppTools/ToolPaint.py:313 AppTools/ToolPaint.py:766 -#: AppTools/ToolPaint.py:778 AppTools/ToolPaint.py:1190 -msgid "Parameters for" -msgstr "Parameter für" - -#: AppGUI/ObjectUI.py:600 AppGUI/ObjectUI.py:1567 AppTools/ToolIsolation.py:316 -#: AppTools/ToolNCC.py:334 AppTools/ToolPaint.py:316 -msgid "" -"The data used for creating GCode.\n" -"Each tool store it's own set of such data." -msgstr "" -"Die Daten, die zum Erstellen von GCode verwendet werden.\n" -"Jedes Werkzeug speichert seinen eigenen Satz solcher Daten." - -#: AppGUI/ObjectUI.py:626 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:48 -msgid "" -"Operation type:\n" -"- Drilling -> will drill the drills/slots associated with this tool\n" -"- Milling -> will mill the drills/slots" -msgstr "" -"Betriebsart:\n" -"- Bohren -> bohrt die mit diesem Werkzeug verbundenen Bohrer / Schlitze\n" -"- Fräsen -> fräst die Bohrer / Schlitze" - -#: AppGUI/ObjectUI.py:632 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:54 -msgid "Drilling" -msgstr "Bohren" - -#: AppGUI/ObjectUI.py:633 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:55 -msgid "Milling" -msgstr "Fräsprozess" - -#: AppGUI/ObjectUI.py:648 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:64 -msgid "" -"Milling type:\n" -"- Drills -> will mill the drills associated with this tool\n" -"- Slots -> will mill the slots associated with this tool\n" -"- Both -> will mill both drills and mills or whatever is available" -msgstr "" -"Frästyp:\n" -"- Bohrer -> fräst die mit diesem Werkzeug verbundenen Bohrer\n" -"- Schlüssel-> fräst die diesem Tool zugeordneten Slots\n" -"- Beide -> fräsen sowohl Bohrer als auch Fräser oder was auch immer " -"verfügbar ist" - -#: AppGUI/ObjectUI.py:657 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:73 -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:199 -#: AppTools/ToolFilm.py:241 -msgid "Both" -msgstr "Both" - -#: AppGUI/ObjectUI.py:665 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:80 -msgid "Milling Diameter" -msgstr "Fräsdurchmesser" - -#: AppGUI/ObjectUI.py:667 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:82 -msgid "The diameter of the tool who will do the milling" -msgstr "Der Durchmesser des Werkzeugs, das das Fräsen übernimmt" - -#: AppGUI/ObjectUI.py:681 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:95 -msgid "" -"Drill depth (negative)\n" -"below the copper surface." -msgstr "" -"Bohrtiefe (negativ)\n" -"unter der Kupferoberfläche." - -#: AppGUI/ObjectUI.py:700 AppGUI/ObjectUI.py:1626 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:113 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:69 -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:79 -#: AppTools/ToolCutOut.py:159 -msgid "Multi-Depth" -msgstr "Mehrfache Tiefe" - -#: AppGUI/ObjectUI.py:703 AppGUI/ObjectUI.py:1629 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:116 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:72 -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:82 -#: AppTools/ToolCutOut.py:162 -msgid "" -"Use multiple passes to limit\n" -"the cut depth in each pass. Will\n" -"cut multiple times until Cut Z is\n" -"reached." -msgstr "" -"Verwenden Sie zum Begrenzen mehrere Durchgänge\n" -"die Schnitttiefe in jedem Durchgang. Wille\n" -"mehrmals schneiden, bis Schnitttiefe Z\n" -"erreicht ist." - -#: AppGUI/ObjectUI.py:716 AppGUI/ObjectUI.py:1643 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:128 -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:94 -#: AppTools/ToolCutOut.py:176 -msgid "Depth of each pass (positive)." -msgstr "Tiefe jedes Durchgangs (positiv)." - -#: AppGUI/ObjectUI.py:727 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:136 -msgid "" -"Tool height when travelling\n" -"across the XY plane." -msgstr "" -"Werkzeughöhe auf Reisen\n" -"über die XY-Ebene." - -#: AppGUI/ObjectUI.py:748 AppGUI/ObjectUI.py:1673 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:188 -msgid "" -"Cutting speed in the XY\n" -"plane in units per minute" -msgstr "" -"Schnittgeschwindigkeit im XY\n" -"Flugzeug in Einheiten pro Minute" - -#: AppGUI/ObjectUI.py:763 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:209 -msgid "" -"Tool speed while drilling\n" -"(in units per minute).\n" -"So called 'Plunge' feedrate.\n" -"This is for linear move G01." -msgstr "" -"Werkzeuggeschwindigkeit beim Bohren\n" -"(in Einheiten pro Minute).\n" -"Sogenannter Eintauchvorschub.\n" -"Dies ist für die lineare Bewegung G01." - -#: AppGUI/ObjectUI.py:778 AppGUI/ObjectUI.py:1700 -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:80 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:67 -msgid "Feedrate Rapids" -msgstr "Vorschubgeschwindigkeit" - -#: AppGUI/ObjectUI.py:780 -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:82 -msgid "" -"Tool speed while drilling\n" -"(in units per minute).\n" -"This is for the rapid move G00.\n" -"It is useful only for Marlin,\n" -"ignore for any other cases." -msgstr "" -"Werkzeuggeschwindigkeit beim Bohren\n" -"(in Einheiten pro Minute).\n" -"Dies ist für die schnelle Bewegung G00.\n" -"Es ist nur für Marlin nützlich,\n" -"für andere Fälle ignorieren." - -#: AppGUI/ObjectUI.py:800 AppGUI/ObjectUI.py:1720 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:85 -msgid "Re-cut" -msgstr "Nachschneiden" - -#: AppGUI/ObjectUI.py:802 AppGUI/ObjectUI.py:815 AppGUI/ObjectUI.py:1722 -#: AppGUI/ObjectUI.py:1734 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:87 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:99 -msgid "" -"In order to remove possible\n" -"copper leftovers where first cut\n" -"meet with last cut, we generate an\n" -"extended cut over the first cut section." -msgstr "" -"Um zu entfernen möglich\n" -"Kupferreste wurden zuerst geschnitten\n" -"Beim letzten Schnitt treffen wir einen\n" -"verlängerter Schnitt über dem ersten Schnittabschnitt." - -#: AppGUI/ObjectUI.py:828 AppGUI/ObjectUI.py:1743 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:217 -#: AppObjects/FlatCAMExcellon.py:1512 AppObjects/FlatCAMGeometry.py:1687 -msgid "Spindle speed" -msgstr "Spulengeschwindigkeit" - -#: AppGUI/ObjectUI.py:830 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:224 -msgid "" -"Speed of the spindle\n" -"in RPM (optional)" -msgstr "" -"Geschwindigkeit der Spindel\n" -"in RPM (optional)" - -#: AppGUI/ObjectUI.py:845 AppGUI/ObjectUI.py:1762 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:238 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:235 -msgid "" -"Pause to allow the spindle to reach its\n" -"speed before cutting." -msgstr "" -"Pause, damit die Spindel ihre erreichen kann\n" -"Geschwindigkeit vor dem Schneiden." - -#: AppGUI/ObjectUI.py:856 AppGUI/ObjectUI.py:1772 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:246 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:240 -msgid "Number of time units for spindle to dwell." -msgstr "Anzahl der Zeiteinheiten, in denen die Spindel verweilen soll." - -#: AppGUI/ObjectUI.py:866 -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:46 -msgid "Offset Z" -msgstr "Versatz Z" - -#: AppGUI/ObjectUI.py:868 -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:48 -msgid "" -"Some drill bits (the larger ones) need to drill deeper\n" -"to create the desired exit hole diameter due of the tip shape.\n" -"The value here can compensate the Cut Z parameter." -msgstr "" -"Einige Bohrer (die größeren) müssen tiefer bohren\n" -"um den gewünschten Austrittslochdurchmesser aufgrund der Spitzenform zu " -"erzeugen.\n" -"Der Wert hier kann den Parameter Cut Z ausgleichen." - -#: AppGUI/ObjectUI.py:928 AppGUI/ObjectUI.py:1826 AppTools/ToolIsolation.py:412 -#: AppTools/ToolNCC.py:492 AppTools/ToolPaint.py:422 -msgid "Apply parameters to all tools" -msgstr "Parameter auf alle Werkzeuge anwenden" - -#: AppGUI/ObjectUI.py:930 AppGUI/ObjectUI.py:1828 AppTools/ToolIsolation.py:414 -#: AppTools/ToolNCC.py:494 AppTools/ToolPaint.py:424 -msgid "" -"The parameters in the current form will be applied\n" -"on all the tools from the Tool Table." -msgstr "" -"Die aktuell angegebenen Parameter werden allen Werkzeugen der " -"Werkzeugtabelle zugeordnet." - -#: AppGUI/ObjectUI.py:941 AppGUI/ObjectUI.py:1839 AppTools/ToolIsolation.py:425 -#: AppTools/ToolNCC.py:505 AppTools/ToolPaint.py:435 -msgid "Common Parameters" -msgstr "Allgemeine Parameter" - -#: AppGUI/ObjectUI.py:943 AppGUI/ObjectUI.py:1841 AppTools/ToolIsolation.py:427 -#: AppTools/ToolNCC.py:507 AppTools/ToolPaint.py:437 -msgid "Parameters that are common for all tools." -msgstr "Parameter, die allen Werkzeugen gemeinsam sind." - -#: AppGUI/ObjectUI.py:948 AppGUI/ObjectUI.py:1846 -msgid "Tool change Z" -msgstr "Werkzeugwechsel Z" - -#: AppGUI/ObjectUI.py:950 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:154 -msgid "" -"Include tool-change sequence\n" -"in G-Code (Pause for tool change)." -msgstr "" -"Werkzeugwechselfolge einbeziehen\n" -"im G-Code (Pause für Werkzeugwechsel)." - -#: AppGUI/ObjectUI.py:957 AppGUI/ObjectUI.py:1857 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:162 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:135 -msgid "" -"Z-axis position (height) for\n" -"tool change." -msgstr "" -"Z-Achsenposition (Höhe) für\n" -"Werkzeugwechsel." - -#: AppGUI/ObjectUI.py:974 -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:71 -msgid "" -"Height of the tool just after start.\n" -"Delete the value if you don't need this feature." -msgstr "" -"Höhe des Werkzeugs gleich nach dem Start.\n" -"Löschen Sie den Wert, wenn Sie diese Funktion nicht benötigen." - -#: AppGUI/ObjectUI.py:983 AppGUI/ObjectUI.py:1885 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:178 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:154 -msgid "End move Z" -msgstr "Bewegung beenden Z" - -#: AppGUI/ObjectUI.py:985 AppGUI/ObjectUI.py:1887 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:180 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:156 -msgid "" -"Height of the tool after\n" -"the last move at the end of the job." -msgstr "" -"Höhe des Werkzeugs nach\n" -"die letzte Bewegung am Ende des Jobs." - -#: AppGUI/ObjectUI.py:1002 AppGUI/ObjectUI.py:1904 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:195 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:174 -msgid "End move X,Y" -msgstr "Bewegung beenden X, Y" - -#: AppGUI/ObjectUI.py:1004 AppGUI/ObjectUI.py:1906 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:197 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:176 -msgid "" -"End move X,Y position. In format (x,y).\n" -"If no value is entered then there is no move\n" -"on X,Y plane at the end of the job." -msgstr "" -"Beenden Sie die X-, Y-Position. Im Format (x, y).\n" -"Wenn kein Wert eingegeben wird, erfolgt keine Bewegung\n" -"auf der X, Y-Ebene am Ende des Jobs." - -#: AppGUI/ObjectUI.py:1014 AppGUI/ObjectUI.py:1780 -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:96 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:108 -msgid "Probe Z depth" -msgstr "Sonde Z Tiefe" - -#: AppGUI/ObjectUI.py:1016 AppGUI/ObjectUI.py:1782 -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:98 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:110 -msgid "" -"The maximum depth that the probe is allowed\n" -"to probe. Negative value, in current units." -msgstr "" -"Die maximale Tiefe, in der die Sonde zulässig ist\n" -"zu untersuchen. Negativer Wert in aktuellen Einheiten." - -#: AppGUI/ObjectUI.py:1033 AppGUI/ObjectUI.py:1797 -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:109 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:123 -msgid "Feedrate Probe" -msgstr "Vorschubsonde" - -#: AppGUI/ObjectUI.py:1035 AppGUI/ObjectUI.py:1799 -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:111 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:125 -msgid "The feedrate used while the probe is probing." -msgstr "Der Vorschub während der Sondenmessung." - -#: AppGUI/ObjectUI.py:1051 -msgid "Preprocessor E" -msgstr "Postprozessor E" - -#: AppGUI/ObjectUI.py:1053 -msgid "" -"The preprocessor JSON file that dictates\n" -"Gcode output for Excellon Objects." -msgstr "" -"Die diktierende Präprozessor-JSON-Datei\n" -"Gcode-Ausgabe für Excellon-Objekte." - -#: AppGUI/ObjectUI.py:1063 -msgid "Preprocessor G" -msgstr "Postprozessor G" - -#: AppGUI/ObjectUI.py:1065 -msgid "" -"The preprocessor JSON file that dictates\n" -"Gcode output for Geometry (Milling) Objects." -msgstr "" -"Die diktierende Präprozessor-JSON-Datei\n" -"Gcode-Ausgabe für Geometrieobjekte (Fräsen)." - -#: AppGUI/ObjectUI.py:1079 AppGUI/ObjectUI.py:1934 -msgid "Add exclusion areas" -msgstr "Ausschlussbereiche hinzufügen" - -#: AppGUI/ObjectUI.py:1082 AppGUI/ObjectUI.py:1937 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:212 -msgid "" -"Include exclusion areas.\n" -"In those areas the travel of the tools\n" -"is forbidden." -msgstr "" -"Ausschlussbereiche einschließen.\n" -"In diesen Bereichen die Reise der Werkzeuge\n" -"ist verboten." - -#: AppGUI/ObjectUI.py:1103 AppGUI/ObjectUI.py:1958 -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:48 -#: AppTools/ToolCalibration.py:186 AppTools/ToolNCC.py:109 -#: AppTools/ToolPaint.py:102 AppTools/ToolPanelize.py:98 -msgid "Object" -msgstr "Objekt" - -#: AppGUI/ObjectUI.py:1103 AppGUI/ObjectUI.py:1122 AppGUI/ObjectUI.py:1958 -#: AppGUI/ObjectUI.py:1977 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:232 -msgid "Strategy" -msgstr "Strategie" - -#: AppGUI/ObjectUI.py:1103 AppGUI/ObjectUI.py:1134 AppGUI/ObjectUI.py:1958 -#: AppGUI/ObjectUI.py:1989 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:244 -msgid "Over Z" -msgstr "Über Z" - -#: AppGUI/ObjectUI.py:1105 AppGUI/ObjectUI.py:1960 -msgid "This is the Area ID." -msgstr "Dies ist die Bereichs-ID." - -#: AppGUI/ObjectUI.py:1107 AppGUI/ObjectUI.py:1962 -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:1109 AppGUI/ObjectUI.py:1964 -msgid "" -"The strategy used for exclusion area. Go around the exclusion areas or over " -"it." -msgstr "" -"Die Strategie für den Ausschlussbereich. Gehen Sie um die Ausschlussbereiche " -"herum oder darüber." - -#: AppGUI/ObjectUI.py:1111 AppGUI/ObjectUI.py:1966 -msgid "" -"If the strategy is to go over the area then this is the height at which the " -"tool will go to avoid the exclusion area." -msgstr "" -"Wenn die Strategie darin besteht, über den Bereich zu gehen, ist dies die " -"Höhe, in der sich das Werkzeug bewegt, um den Ausschlussbereich zu vermeiden." - -#: AppGUI/ObjectUI.py:1123 AppGUI/ObjectUI.py:1978 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:233 -msgid "" -"The strategy followed when encountering an exclusion area.\n" -"Can be:\n" -"- Over -> when encountering the area, the tool will go to a set height\n" -"- Around -> will avoid the exclusion area by going around the area" -msgstr "" -"Die Strategie wurde verfolgt, wenn auf einen Ausschlussbereich gestoßen " -"wurde.\n" -"Kann sein:\n" -"- Über -> Wenn Sie auf den Bereich stoßen, erreicht das Werkzeug eine " -"festgelegte Höhe\n" -"- Vermeiden -> vermeidet den Ausschlussbereich, indem Sie den Bereich umgehen" - -#: AppGUI/ObjectUI.py:1127 AppGUI/ObjectUI.py:1982 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:237 -msgid "Over" -msgstr "Über" - -#: AppGUI/ObjectUI.py:1128 AppGUI/ObjectUI.py:1983 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:238 -msgid "Around" -msgstr "Vermeiden" - -#: AppGUI/ObjectUI.py:1135 AppGUI/ObjectUI.py:1990 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:245 -msgid "" -"The height Z to which the tool will rise in order to avoid\n" -"an interdiction area." -msgstr "" -"Die Höhe Z, auf die das Werkzeug ansteigt, um dies zu vermeiden\n" -"ein Verbotsbereich." - -#: AppGUI/ObjectUI.py:1145 AppGUI/ObjectUI.py:2000 -msgid "Add area:" -msgstr "Bereich hinzufügen:" - -#: AppGUI/ObjectUI.py:1146 AppGUI/ObjectUI.py:2001 -msgid "Add an Exclusion Area." -msgstr "Fügen Sie einen Ausschlussbereich hinzu." - -#: AppGUI/ObjectUI.py:1152 AppGUI/ObjectUI.py:2007 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:222 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:295 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:324 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:288 -#: AppTools/ToolIsolation.py:542 AppTools/ToolNCC.py:580 -#: AppTools/ToolPaint.py:523 -msgid "The kind of selection shape used for area selection." -msgstr "Die Art der Auswahlform, die für die Bereichsauswahl verwendet wird." - -#: AppGUI/ObjectUI.py:1162 AppGUI/ObjectUI.py:2017 -#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:32 -#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:42 -#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:32 -#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:32 -msgid "Delete All" -msgstr "Alles löschen" - -#: AppGUI/ObjectUI.py:1163 AppGUI/ObjectUI.py:2018 -msgid "Delete all exclusion areas." -msgstr "Löschen Sie alle Ausschlussbereiche." - -#: AppGUI/ObjectUI.py:1166 AppGUI/ObjectUI.py:2021 -msgid "Delete Selected" -msgstr "Ausgewählte löschen" - -#: AppGUI/ObjectUI.py:1167 AppGUI/ObjectUI.py:2022 -msgid "Delete all exclusion areas that are selected in the table." -msgstr "Löschen Sie alle in der Tabelle ausgewählten Ausschlussbereiche." - -#: AppGUI/ObjectUI.py:1191 AppGUI/ObjectUI.py:2038 -msgid "" -"Add / Select at least one tool in the tool-table.\n" -"Click the # header to select all, or Ctrl + LMB\n" -"for custom selection of tools." -msgstr "" -"Hinzufügen / Auswählen mindestens eines Werkzeugs in der Werkzeugtabelle.\n" -"Klicken Sie auf die Überschrift #, um alle auszuwählen, oder auf Strg + LMB\n" -"zur benutzerdefinierten Auswahl von Werkzeugen." - -#: AppGUI/ObjectUI.py:1199 AppGUI/ObjectUI.py:2045 -msgid "Generate CNCJob object" -msgstr "Generieren des CNC-Job-Objekts" - -#: AppGUI/ObjectUI.py:1201 -msgid "" -"Generate the CNC Job.\n" -"If milling then an additional Geometry object will be created" -msgstr "" -"Generieren Sie den CNC-Auftrag.\n" -"Beim Fräsen wird ein zusätzliches Geometrieobjekt erstellt" - -#: AppGUI/ObjectUI.py:1218 -msgid "Milling Geometry" -msgstr "Fräsgeometrie" - -#: AppGUI/ObjectUI.py:1220 -msgid "" -"Create Geometry for milling holes.\n" -"Select from the Tools Table above the hole dias to be\n" -"milled. Use the # column to make the selection." -msgstr "" -"Erzeugen Sie eine Geometrie um Löcher zu bohren.\n" -"Wählen Sie aus der Werkzeugtabelle oben die Durchmesser\n" -"die gefräst werden sollen. Verwenden Sie die Spalte #, um die Auswahl zu " -"treffen." - -#: AppGUI/ObjectUI.py:1228 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:296 -msgid "Diameter of the cutting tool." -msgstr "Durchmesser des Schneidewerkzeugs." - -#: AppGUI/ObjectUI.py:1238 -msgid "Mill Drills" -msgstr "Mühlenbohrer" - -#: AppGUI/ObjectUI.py:1240 -msgid "" -"Create the Geometry Object\n" -"for milling DRILLS toolpaths." -msgstr "" -"Erstellen Sie das Geometrieobjekt\n" -"zum Fräsen von BOHRER-Werkzeugwegen." - -#: AppGUI/ObjectUI.py:1258 -msgid "Mill Slots" -msgstr "Mühlenschlitze" - -#: AppGUI/ObjectUI.py:1260 -msgid "" -"Create the Geometry Object\n" -"for milling SLOTS toolpaths." -msgstr "" -"Erstellen Sie das Geometrieobjekt\n" -"zum Fräsen von Werkzeugwegen." - -#: AppGUI/ObjectUI.py:1302 AppTools/ToolCutOut.py:319 -msgid "Geometry Object" -msgstr "Geometrieobjekt" - -#: AppGUI/ObjectUI.py:1364 -msgid "" -"Tools in this Geometry object used for cutting.\n" -"The 'Offset' entry will set an offset for the cut.\n" -"'Offset' can be inside, outside, on path (none) and custom.\n" -"'Type' entry is only informative and it allow to know the \n" -"intent of using the current tool. \n" -"It can be Rough(ing), Finish(ing) or Iso(lation).\n" -"The 'Tool type'(TT) can be circular with 1 to 4 teeths(C1..C4),\n" -"ball(B), or V-Shaped(V). \n" -"When V-shaped is selected the 'Type' entry is automatically \n" -"set to Isolation, the CutZ parameter in the UI form is\n" -"grayed out and Cut Z is automatically calculated from the newly \n" -"showed UI form entries named V-Tip Dia and V-Tip Angle." -msgstr "" -"Werkzeuge in diesem Geometrieobjekt, die zum Schneiden verwendet werden.\n" -"Der Eintrag 'Versatz' legt einen Versatz für den Schnitt fest.\n" -"'Versatz' kann innen, außen, auf Pfad (keine) und benutzerdefiniert sein.\n" -"Der Eintrag \"Typ\" ist nur informativ und ermöglicht die Kenntnis der\n" -"Absicht, das aktuelle Werkzeug zu verwenden.\n" -"Es kann Rough, Finish oder ISO sein.\n" -"Der 'Werkzeugtyp' (TT) kann kreisförmig mit 1 bis 4 Zähnen (C1..C4) sein.\n" -"Kugel (B) oder V-Form (V).\n" -"Wenn V-förmig ausgewählt ist, wird der Eintrag \"Typ\" automatisch " -"angezeigt\n" -"Auf Isolation eingestellt ist der Parameter CutZ im UI-Formular\n" -"ausgegraut und Cut Z wird automatisch aus dem neuen berechnet\n" -"Zeigt UI-Formulareinträge mit den Namen V-Tip Dia und V-Tip Angle an." - -#: AppGUI/ObjectUI.py:1381 AppGUI/ObjectUI.py:2243 -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:40 -msgid "Plot Object" -msgstr "Plotobjekt" - -#: AppGUI/ObjectUI.py:1394 AppGUI/ObjectUI.py:2256 AppGUI/ObjectUI.py:2266 -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:138 -#: AppTools/ToolCopperThieving.py:225 -msgid "Dia" -msgstr "Durchm" - -#: AppGUI/ObjectUI.py:1394 AppGUI/ObjectUI.py:2256 -#: AppTools/ToolIsolation.py:130 AppTools/ToolNCC.py:132 -#: AppTools/ToolPaint.py:127 -msgid "TT" -msgstr "TT" - -#: AppGUI/ObjectUI.py:1401 -msgid "" -"This is the Tool Number.\n" -"When ToolChange is checked, on toolchange event this value\n" -"will be showed as a T1, T2 ... Tn" -msgstr "" -"Dies ist die Werkzeugnummer.\n" -"Wenn der Werkzeugwechsel aktiviert ist, wird dieser Wert beim " -"Werkzeugwechselereignis angezeigt\n" -"wird als T1, T2 ... Tn angezeigt" - -#: AppGUI/ObjectUI.py:1412 -msgid "" -"The value for the Offset can be:\n" -"- Path -> There is no offset, the tool cut will be done through the geometry " -"line.\n" -"- In(side) -> The tool cut will follow the geometry inside. It will create a " -"'pocket'.\n" -"- Out(side) -> The tool cut will follow the geometry line on the outside." -msgstr "" -"Der Wert für den Offset kann sein:\n" -"- Pfad -> Es gibt keinen Versatz, der Werkzeugschnitt erfolgt durch die " -"Geometrielinie.\n" -"- In (Seite) -> Der Werkzeugschnitt folgt der Innengeometrie. Es wird eine " -"\"Tasche\" erstellt.\n" -"- Out (Seite) -> Der Werkzeugschnitt folgt der Geometrielinie an der " -"Außenseite." - -#: AppGUI/ObjectUI.py:1419 -msgid "" -"The (Operation) Type has only informative value. Usually the UI form " -"values \n" -"are choose based on the operation type and this will serve as a reminder.\n" -"Can be 'Roughing', 'Finishing' or 'Isolation'.\n" -"For Roughing we may choose a lower Feedrate and multiDepth cut.\n" -"For Finishing we may choose a higher Feedrate, without multiDepth.\n" -"For Isolation we need a lower Feedrate as it use a milling bit with a fine " -"tip." -msgstr "" -"Der Typ (Operation) hat nur informativen Wert. Normalerweise bilden die " -"Benutzeroberflächen Werte\n" -"Die Auswahl richtet sich nach der Art des Vorgangs und dient als " -"Erinnerung.\n" -"Kann \"Schruppen\", \"Fertigstellen\" oder \"Isolieren\" sein.\n" -"Für das Schruppen können wir einen niedrigeren Vorschub und einen Schnitt " -"mit mehreren Tiefen wählen.\n" -"Für das Finishing können wir eine höhere Vorschubgeschwindigkeit ohne " -"Mehrfachtiefe wählen.\n" -"Für die Isolierung benötigen wir einen niedrigeren Vorschub, da ein Fräser " -"mit einer feinen Spitze verwendet wird." - -#: AppGUI/ObjectUI.py:1428 -msgid "" -"The Tool Type (TT) can be:\n" -"- Circular with 1 ... 4 teeth -> it is informative only. Being circular the " -"cut width in material\n" -"is exactly the tool diameter.\n" -"- Ball -> informative only and make reference to the Ball type endmill.\n" -"- V-Shape -> it will disable Z-Cut parameter in the UI form and enable two " -"additional UI form\n" -"fields: V-Tip Dia and V-Tip Angle. Adjusting those two values will adjust " -"the Z-Cut parameter such\n" -"as the cut width into material will be equal with the value in the Tool " -"Diameter column of this table.\n" -"Choosing the V-Shape Tool Type automatically will select the Operation Type " -"as Isolation." -msgstr "" -"Der Werkzeugtyp (TT) kann sein:\n" -"- Rundschreiben mit 1 ... 4 Zähnen -> nur informativ. Kreisförmig ist die " -"Schnittbreite im Material\n" -"ist genau der Werkzeugdurchmesser.\n" -"- Ball -> nur informativ und auf den Ball-Schaftfräser verweisen.\n" -"- V-Form -> Deaktiviert den Z-Cut-Parameter im UI-Formular und aktiviert " -"zwei zusätzliche UI-Formulare\n" -"Felder: V-Tip Dia und V-Tip Angle. Durch Anpassen dieser beiden Werte wird " -"der Z-Cut-Parameter wie z\n" -"da die Schnittbreite in Material gleich dem Wert in der Spalte " -"Werkzeugdurchmesser dieser Tabelle ist.\n" -"Wenn Sie den V-Form-Werkzeugtyp automatisch auswählen, wird der " -"Operationstyp als Isolation ausgewählt." - -#: AppGUI/ObjectUI.py:1440 -msgid "" -"Plot column. It is visible only for MultiGeo geometries, meaning geometries " -"that holds the geometry\n" -"data into the tools. For those geometries, deleting the tool will delete the " -"geometry data also,\n" -"so be WARNED. From the checkboxes on each row it can be enabled/disabled the " -"plot on canvas\n" -"for the corresponding tool." -msgstr "" -"Plotspalte Sie ist nur für MultiGeo-Geometrien sichtbar. Dies bedeutet, dass " -"Geometrien die Geometrie enthalten\n" -"Daten in die Werkzeuge. Durch das Löschen des Werkzeugs werden für diese " -"Geometrien auch die Geometriedaten gelöscht.\n" -"also sei WARNUNG. Über die Kontrollkästchen in jeder Zeile kann der Plot auf " -"der Leinwand aktiviert / deaktiviert werden\n" -"für das entsprechende Werkzeug." - -#: AppGUI/ObjectUI.py:1458 -msgid "" -"The value to offset the cut when \n" -"the Offset type selected is 'Offset'.\n" -"The value can be positive for 'outside'\n" -"cut and negative for 'inside' cut." -msgstr "" -"Der Wert, mit dem der Schnitt versetzt werden soll\n" -"Der ausgewählte Versatztyp ist 'Versatz'.\n" -"Der Wert kann für \"außerhalb\" positiv sein\n" -"Cut und Negativ für \"Inside\" Cut." - -#: AppGUI/ObjectUI.py:1477 AppTools/ToolIsolation.py:195 -#: AppTools/ToolIsolation.py:1257 AppTools/ToolNCC.py:209 -#: AppTools/ToolNCC.py:923 AppTools/ToolPaint.py:191 AppTools/ToolPaint.py:848 -#: AppTools/ToolSolderPaste.py:567 -msgid "New Tool" -msgstr "Neues Werkzeug" - -#: AppGUI/ObjectUI.py:1496 AppTools/ToolIsolation.py:278 -#: AppTools/ToolNCC.py:296 AppTools/ToolPaint.py:278 -msgid "" -"Add a new tool to the Tool Table\n" -"with the diameter specified above." -msgstr "" -"Fügen Sie der Werkzeugtabelle ein neues Werkzeug hinzu\n" -"mit dem oben angegebenen Durchmesser." - -#: AppGUI/ObjectUI.py:1500 AppTools/ToolIsolation.py:282 -#: AppTools/ToolIsolation.py:613 AppTools/ToolNCC.py:300 -#: AppTools/ToolNCC.py:634 AppTools/ToolPaint.py:282 AppTools/ToolPaint.py:678 -msgid "Add from DB" -msgstr "Aus DB hinzufügen" - -#: AppGUI/ObjectUI.py:1502 AppTools/ToolIsolation.py:284 -#: AppTools/ToolNCC.py:302 AppTools/ToolPaint.py:284 -msgid "" -"Add a new tool to the Tool Table\n" -"from the Tool DataBase." -msgstr "" -"Fügen Sie der Werkzeugtabelle ein neues Werkzeug aus der\n" -"aus der Werkzeugdatenbank hinzu." - -#: AppGUI/ObjectUI.py:1521 -msgid "" -"Copy a selection of tools in the Tool Table\n" -"by first selecting a row in the Tool Table." -msgstr "" -"Kopieren Sie eine Auswahl von Werkzeugen in die Werkzeugtabelle\n" -"indem Sie zuerst eine Zeile in der Werkzeugtabelle auswählen." - -#: AppGUI/ObjectUI.py:1527 -msgid "" -"Delete a selection of tools in the Tool Table\n" -"by first selecting a row in the Tool Table." -msgstr "" -"Löschen Sie eine Auswahl von Werkzeugen in der Werkzeugtabelle\n" -"indem Sie zuerst eine Zeile in der Werkzeugtabelle auswählen." - -#: AppGUI/ObjectUI.py:1574 AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:89 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:72 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:78 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:85 -#: AppTools/ToolIsolation.py:219 AppTools/ToolNCC.py:233 -#: AppTools/ToolNCC.py:240 AppTools/ToolPaint.py:215 -msgid "V-Tip Dia" -msgstr "Stichelspitzen-Durchm" - -#: AppGUI/ObjectUI.py:1577 AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:91 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:74 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:80 -#: AppTools/ToolIsolation.py:221 AppTools/ToolNCC.py:235 -#: AppTools/ToolPaint.py:217 -msgid "The tip diameter for V-Shape Tool" -msgstr "Der Spitzendurchmesser für das V-Shape-Werkzeug" - -#: AppGUI/ObjectUI.py:1589 AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:101 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:84 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:91 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:99 -#: AppTools/ToolIsolation.py:232 AppTools/ToolNCC.py:246 -#: AppTools/ToolNCC.py:254 AppTools/ToolPaint.py:228 -msgid "V-Tip Angle" -msgstr "Stichel-Winkel" - -#: AppGUI/ObjectUI.py:1592 AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:86 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:93 -#: AppTools/ToolIsolation.py:234 AppTools/ToolNCC.py:248 -#: AppTools/ToolPaint.py:230 -msgid "" -"The tip angle for V-Shape Tool.\n" -"In degree." -msgstr "" -"Der Spitzenwinkel für das Stichel-Werkzeug.\n" -"In grad." - -#: AppGUI/ObjectUI.py:1608 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:51 -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:61 -#: AppObjects/FlatCAMGeometry.py:1238 AppTools/ToolCutOut.py:141 -msgid "" -"Cutting depth (negative)\n" -"below the copper surface." -msgstr "" -"Schnitttiefe (negativ)\n" -"unter der Kupferoberfläche." - -#: AppGUI/ObjectUI.py:1654 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:104 -msgid "" -"Height of the tool when\n" -"moving without cutting." -msgstr "" -"Höhe des Werkzeugs bei\n" -"Bewegen ohne zu schneiden." - -#: AppGUI/ObjectUI.py:1687 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:203 -msgid "" -"Cutting speed in the XY\n" -"plane in units per minute.\n" -"It is called also Plunge." -msgstr "" -"Schnittgeschwindigkeit im XY\n" -"Flugzeug in Einheiten pro Minute.\n" -"Es heißt auch Sturz." - -#: AppGUI/ObjectUI.py:1702 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:69 -msgid "" -"Cutting speed in the XY plane\n" -"(in units per minute).\n" -"This is for the rapid move G00.\n" -"It is useful only for Marlin,\n" -"ignore for any other cases." -msgstr "" -"Schnittgeschwindigkeit in der XY-Ebene\n" -"(in Einheiten pro Minute).\n" -"Dies ist für die schnelle Bewegung G00.\n" -"Es ist nur für Marlin nützlich,\n" -"für andere Fälle ignorieren." - -#: AppGUI/ObjectUI.py:1746 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:220 -msgid "" -"Speed of the spindle in RPM (optional).\n" -"If LASER preprocessor is used,\n" -"this value is the power of laser." -msgstr "" -"Drehzahl der Spindel in U / min (optional).\n" -"Wenn LASER-Postprozessor verwendet wird,\n" -"Dieser Wert ist die Leistung des Lasers." - -#: AppGUI/ObjectUI.py:1849 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:125 -msgid "" -"Include tool-change sequence\n" -"in the Machine Code (Pause for tool change)." -msgstr "" -"Werkzeugwechselfolge einbeziehen\n" -"im Maschinencode (Pause für Werkzeugwechsel)." - -#: AppGUI/ObjectUI.py:1918 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:257 -msgid "" -"The Preprocessor file that dictates\n" -"the Machine Code (like GCode, RML, HPGL) output." -msgstr "" -"Die Postprozessor-Datei, die diktiert\n" -"den Maschinencode (wie GCode, RML, HPGL)." - -#: AppGUI/ObjectUI.py:2047 Common.py:426 Common.py:559 Common.py:619 -msgid "Generate the CNC Job object." -msgstr "Generieren Sie das CNC-Job-Objekt." - -#: AppGUI/ObjectUI.py:2064 -msgid "Launch Paint Tool in Tools Tab." -msgstr "Starten Sie das Paint Werkzeug in der Registerkarte \"Tools\"." - -#: AppGUI/ObjectUI.py:2072 AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:35 -msgid "" -"Creates tool paths to cover the\n" -"whole area of a polygon (remove\n" -"all copper). You will be asked\n" -"to click on the desired polygon." -msgstr "" -"Erzeugt Werkzeugpfade zur Abdeckung\n" -"gesamte Fläche eines Polygons (entfernen\n" -"alles Kupfer). Du wirst gefragt\n" -"Klicken Sie auf das gewünschte Polygon." - -#: AppGUI/ObjectUI.py:2127 -msgid "CNC Job Object" -msgstr "CNC-Auftragsobjekt" - -#: AppGUI/ObjectUI.py:2138 AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:45 -msgid "Plot kind" -msgstr "Darstellungsart" - -#: AppGUI/ObjectUI.py:2141 AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:47 -msgid "" -"This selects the kind of geometries on the canvas to plot.\n" -"Those can be either of type 'Travel' which means the moves\n" -"above the work piece or it can be of type 'Cut',\n" -"which means the moves that cut into the material." -msgstr "" -"Dadurch wird die Art der Geometrien auf der zu plottenden Leinwand " -"ausgewählt.\n" -"Dies kann entweder vom Typ 'Reise' sein, was die Bewegungen bedeutet\n" -"über dem Werkstück oder es kann vom Typ 'Ausschneiden' sein,\n" -"was bedeutet, dass die Bewegungen, die in das Material geschnitten werden." - -#: AppGUI/ObjectUI.py:2150 AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:55 -msgid "Travel" -msgstr "Reise" - -#: AppGUI/ObjectUI.py:2154 AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:64 -msgid "Display Annotation" -msgstr "Anmerkung anzeigen" - -#: AppGUI/ObjectUI.py:2156 AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:66 -msgid "" -"This selects if to display text annotation on the plot.\n" -"When checked it will display numbers in order for each end\n" -"of a travel line." -msgstr "" -"Hiermit wird ausgewählt, ob Textanmerkungen auf dem Plot angezeigt werden " -"sollen.\n" -"Wenn diese Option aktiviert ist, werden die Nummern für jedes Ende in der " -"richtigen Reihenfolge angezeigt\n" -"einer Reiseleitung." - -#: AppGUI/ObjectUI.py:2171 -msgid "Travelled dist." -msgstr "Zurückgelegte Strecke." - -#: AppGUI/ObjectUI.py:2173 AppGUI/ObjectUI.py:2178 -msgid "" -"This is the total travelled distance on X-Y plane.\n" -"In current units." -msgstr "" -"Dies ist die Gesamtstrecke auf der X-Y-Ebene.\n" -"In aktuellen Einheiten." - -#: AppGUI/ObjectUI.py:2183 -msgid "Estimated time" -msgstr "Geschätzte Zeit" - -#: AppGUI/ObjectUI.py:2185 AppGUI/ObjectUI.py:2190 -msgid "" -"This is the estimated time to do the routing/drilling,\n" -"without the time spent in ToolChange events." -msgstr "" -"Dies ist die geschätzte Zeit für das Fräsen / Bohren.\n" -"ohne die Zeit, die in Werkzeugwechselereignissen verbracht wird." - -#: AppGUI/ObjectUI.py:2225 -msgid "CNC Tools Table" -msgstr "CNC Werkzeugtabelle" - -#: AppGUI/ObjectUI.py:2228 -msgid "" -"Tools in this CNCJob object used for cutting.\n" -"The tool diameter is used for plotting on canvas.\n" -"The 'Offset' entry will set an offset for the cut.\n" -"'Offset' can be inside, outside, on path (none) and custom.\n" -"'Type' entry is only informative and it allow to know the \n" -"intent of using the current tool. \n" -"It can be Rough(ing), Finish(ing) or Iso(lation).\n" -"The 'Tool type'(TT) can be circular with 1 to 4 teeths(C1..C4),\n" -"ball(B), or V-Shaped(V)." -msgstr "" -"Werkzeuge in diesem CNCJob-Objekt, die zum Schneiden verwendet werden.\n" -"Der Werkzeugdurchmesser wird zum Plotten auf Leinwand verwendet.\n" -"Der Eintrag 'Versatz' legt einen Versatz für den Schnitt fest.\n" -"'Versatz' kann innen, außen, auf Pfad (keine) und benutzerdefiniert sein.\n" -"Der Eintrag \"Typ\" ist nur informativ und ermöglicht die Kenntnis der\n" -"Absicht, das aktuelle Werkzeug zu verwenden.\n" -"Es kann Schruppen, Schlichten oder Isolieren sein.\n" -"Der 'Werkzeugtyp' (TT) kann kreisförmig mit 1 bis 4 Zähnen (C1..C4) sein.\n" -"Kugel (B) oder V-Form (V)." - -#: AppGUI/ObjectUI.py:2256 AppGUI/ObjectUI.py:2267 -msgid "P" -msgstr "P" - -#: AppGUI/ObjectUI.py:2277 -msgid "Update Plot" -msgstr "Plot aktualisieren" - -#: AppGUI/ObjectUI.py:2279 -msgid "Update the plot." -msgstr "Aktualisieren Sie die Darstellung." - -#: AppGUI/ObjectUI.py:2286 -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:30 -msgid "Export CNC Code" -msgstr "CNC-Code exportieren" - -#: AppGUI/ObjectUI.py:2288 -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:32 -#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:33 -msgid "" -"Export and save G-Code to\n" -"make this object to a file." -msgstr "" -"Exportieren und speichern Sie den G-Code nach\n" -"Machen Sie dieses Objekt in eine Datei." - -#: AppGUI/ObjectUI.py:2294 -msgid "Prepend to CNC Code" -msgstr "CNC-Code voranstellen" - -#: AppGUI/ObjectUI.py:2296 AppGUI/ObjectUI.py:2303 -#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:49 -msgid "" -"Type here any G-Code commands you would\n" -"like to add at the beginning of the G-Code file." -msgstr "" -"Geben Sie hier alle G-Code-Befehle ein\n" -"die Sie am Anfang der G-Code-Datei hinzufügen möchten." - -#: AppGUI/ObjectUI.py:2309 -msgid "Append to CNC Code" -msgstr "An CNC Code anhängen" - -#: AppGUI/ObjectUI.py:2311 AppGUI/ObjectUI.py:2319 -#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:65 -msgid "" -"Type here any G-Code commands you would\n" -"like to append to the generated file.\n" -"I.e.: M2 (End of program)" -msgstr "" -"Geben Sie hier alle G-Code-Befehle ein\n" -"die Sie an die generierte Datei anhängen möchten.\n" -"z.B.: M2 (Programmende)" - -#: AppGUI/ObjectUI.py:2333 -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:38 -msgid "Toolchange G-Code" -msgstr "Werkzeugwechsel G-Code" - -#: AppGUI/ObjectUI.py:2336 -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:41 -msgid "" -"Type here any G-Code commands you would\n" -"like to be executed when Toolchange event is encountered.\n" -"This will constitute a Custom Toolchange GCode,\n" -"or a Toolchange Macro.\n" -"The FlatCAM variables are surrounded by '%' symbol.\n" -"\n" -"WARNING: it can be used only with a preprocessor file\n" -"that has 'toolchange_custom' in it's name and this is built\n" -"having as template the 'Toolchange Custom' posprocessor file." -msgstr "" -"Geben Sie hier alle G-Code-Befehle ein\n" -"Wird ausgeführt, wenn ein Werkzeugwechselereignis auftritt.\n" -"Dies stellt einen benutzerdefinierten Werkzeugwechsel-GCode dar.\n" -"oder ein Werkzeugwechsel-Makro.\n" -"Die FlatCAM-Variablen sind vom '%'-Symbol umgeben.\n" -"\n" -"WARNUNG: Es kann nur mit einer Postprozessor-Datei verwendet werden\n" -"das hat \"toolchange_custom\" im Namen und das ist gebaut\n" -"mit der \"Toolchange Custom\" -Prozessordatei als Vorlage." - -#: AppGUI/ObjectUI.py:2351 -msgid "" -"Type here any G-Code commands you would\n" -"like to be executed when Toolchange event is encountered.\n" -"This will constitute a Custom Toolchange GCode,\n" -"or a Toolchange Macro.\n" -"The FlatCAM variables are surrounded by '%' symbol.\n" -"WARNING: it can be used only with a preprocessor file\n" -"that has 'toolchange_custom' in it's name." -msgstr "" -"Geben Sie hier G-Code-Befehle ein\n" -"die ausgeführt werden, wenn ein Werkzeugwechselereignis auftritt.\n" -"So kann ein benutzerdefinierter Werkzeugwechsel in GCode definiert werden.\n" -"Die FlatCAM-Variablen sind vom '%'-Symbol umgeben.\n" -"\n" -"WARNUNG: Ein Werkzeugwechselereignis kann nur mit einer Präprozessor-Datei " -"verwendet werden\n" -"die das Präfix \"toolchange_custom\" im Namen hat und nach Vorlage der \n" -" \n" -"\"Toolchange Custom\" -Prozessordatei erzeugt wurde." - -#: AppGUI/ObjectUI.py:2366 -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:80 -msgid "Use Toolchange Macro" -msgstr "Benutze das Werkzeugwechselmakro" - -#: AppGUI/ObjectUI.py:2368 -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:82 -msgid "" -"Check this box if you want to use\n" -"a Custom Toolchange GCode (macro)." -msgstr "" -"Aktivieren Sie dieses Kontrollkästchen, wenn Sie verwenden möchten\n" -"ein benutzerdefiniertes Werkzeug ändert GCode (Makro)." - -#: AppGUI/ObjectUI.py:2376 -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:94 -msgid "" -"A list of the FlatCAM variables that can be used\n" -"in the Toolchange event.\n" -"They have to be surrounded by the '%' symbol" -msgstr "" -"Eine Liste der FlatCAM-Variablen, die verwendet werden können\n" -"im Werkzeugwechselereignis.\n" -"Sie müssen mit dem \"%\" -Symbol umgeben sein" - -#: AppGUI/ObjectUI.py:2383 -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:101 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:30 -#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:31 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:31 -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:37 -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:36 -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:36 -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:36 -#: AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py:31 -#: AppGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:31 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:36 -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:31 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:30 -#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:31 -#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:35 -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:32 -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:31 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:30 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:31 -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:31 -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:31 -#: AppGUI/preferences/tools/ToolsSubPrefGroupUI.py:31 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:31 -#: AppTools/ToolCalibration.py:67 AppTools/ToolCopperThieving.py:93 -#: AppTools/ToolCorners.py:115 AppTools/ToolEtchCompensation.py:138 -#: AppTools/ToolFiducials.py:152 AppTools/ToolInvertGerber.py:85 -#: AppTools/ToolQRCode.py:114 -msgid "Parameters" -msgstr "Parameters" - -#: AppGUI/ObjectUI.py:2386 -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:106 -msgid "FlatCAM CNC parameters" -msgstr "FlatCAM CNC-Parameter" - -#: AppGUI/ObjectUI.py:2387 -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:111 -msgid "tool number" -msgstr "Werkzeugnummer" - -#: AppGUI/ObjectUI.py:2388 -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:112 -msgid "tool diameter" -msgstr "Werkzeugdurchmesser" - -#: AppGUI/ObjectUI.py:2389 -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:113 -msgid "for Excellon, total number of drills" -msgstr "für Excellon die Gesamtzahl der Bohrer" - -#: AppGUI/ObjectUI.py:2391 -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:115 -msgid "X coord for Toolchange" -msgstr "X-Koordinate für Werkzeugwechsel" - -#: AppGUI/ObjectUI.py:2392 -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:116 -msgid "Y coord for Toolchange" -msgstr "Y-Koordinate für Werkzeugwechsel" - -#: AppGUI/ObjectUI.py:2393 -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:118 -msgid "Z coord for Toolchange" -msgstr "Z-Koordinate für Werkzeugwechsel" - -#: AppGUI/ObjectUI.py:2394 -msgid "depth where to cut" -msgstr "tiefe wo zu schneiden" - -#: AppGUI/ObjectUI.py:2395 -msgid "height where to travel" -msgstr "Höhe, wohin man reist" - -#: AppGUI/ObjectUI.py:2396 -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:121 -msgid "the step value for multidepth cut" -msgstr "der Schrittwert für den mehrstufigen Schnitt" - -#: AppGUI/ObjectUI.py:2398 -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:123 -msgid "the value for the spindle speed" -msgstr "der Wert für die Spindeldrehzahl" - -#: AppGUI/ObjectUI.py:2400 -msgid "time to dwell to allow the spindle to reach it's set RPM" -msgstr "" -"Zeit zum Verweilen, damit die Spindel die eingestellte Drehzahl erreicht" - -#: AppGUI/ObjectUI.py:2416 -msgid "View CNC Code" -msgstr "CNC-Code anzeigen" - -#: AppGUI/ObjectUI.py:2418 -msgid "" -"Opens TAB to view/modify/print G-Code\n" -"file." -msgstr "" -"Öffnet die Registerkarte zum Anzeigen / Ändern / Drucken von G-Code\n" -"Datei." - -#: AppGUI/ObjectUI.py:2423 -msgid "Save CNC Code" -msgstr "CNC-Code speichern" - -#: AppGUI/ObjectUI.py:2425 -msgid "" -"Opens dialog to save G-Code\n" -"file." -msgstr "" -"Öffnet den Dialog zum Speichern des G-Codes\n" -"Datei." - -#: AppGUI/ObjectUI.py:2459 -msgid "Script Object" -msgstr "Skriptobjekt" - -#: AppGUI/ObjectUI.py:2479 AppGUI/ObjectUI.py:2553 -msgid "Auto Completer" -msgstr "Auto-Vervollständiger" - -#: AppGUI/ObjectUI.py:2481 -msgid "This selects if the auto completer is enabled in the Script Editor." -msgstr "" -"Hiermit wird ausgewählt, ob der automatische Vervollständiger im Skript-" -"Editor aktiviert ist." - -#: AppGUI/ObjectUI.py:2526 -msgid "Document Object" -msgstr "Dokumentobjekt" - -#: AppGUI/ObjectUI.py:2555 -msgid "This selects if the auto completer is enabled in the Document Editor." -msgstr "" -"Hiermit wird ausgewählt, ob der automatische Vervollständiger im " -"Dokumenteditor aktiviert ist." - -#: AppGUI/ObjectUI.py:2573 -msgid "Font Type" -msgstr "Schriftart" - -#: AppGUI/ObjectUI.py:2590 -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:189 -msgid "Font Size" -msgstr "Schriftgröße" - -#: AppGUI/ObjectUI.py:2626 -msgid "Alignment" -msgstr "Ausrichtung" - -#: AppGUI/ObjectUI.py:2631 -msgid "Align Left" -msgstr "Linksbündig" - -#: AppGUI/ObjectUI.py:2636 App_Main.py:4715 -msgid "Center" -msgstr "Center" - -#: AppGUI/ObjectUI.py:2641 -msgid "Align Right" -msgstr "Rechts ausrichten" - -#: AppGUI/ObjectUI.py:2646 -msgid "Justify" -msgstr "Rechtfertigen" - -#: AppGUI/ObjectUI.py:2653 -msgid "Font Color" -msgstr "Schriftfarbe" - -#: AppGUI/ObjectUI.py:2655 -msgid "Set the font color for the selected text" -msgstr "Stellen Sie die Schriftfarbe für den ausgewählten Text ein" - -#: AppGUI/ObjectUI.py:2669 -msgid "Selection Color" -msgstr "Auswahlfarbe" - -#: AppGUI/ObjectUI.py:2671 -msgid "Set the selection color when doing text selection." -msgstr "Stellen Sie die Auswahlfarbe bei der Textauswahl ein." - -#: AppGUI/ObjectUI.py:2685 -msgid "Tab Size" -msgstr "Tab-Größe" - -#: AppGUI/ObjectUI.py:2687 -msgid "Set the tab size. In pixels. Default value is 80 pixels." -msgstr "" -"Stellen Sie die Größe der Registerkarte ein. In Pixeln. Der Standardwert " -"beträgt 80 Pixel." - -#: AppGUI/PlotCanvas.py:236 AppGUI/PlotCanvasLegacy.py:345 -msgid "Axis enabled." -msgstr "Achse aktiviert." - -#: AppGUI/PlotCanvas.py:242 AppGUI/PlotCanvasLegacy.py:352 -msgid "Axis disabled." -msgstr "Achse deaktiviert." - -#: AppGUI/PlotCanvas.py:260 AppGUI/PlotCanvasLegacy.py:372 -msgid "HUD enabled." -msgstr "HUD aktiviert." - -#: AppGUI/PlotCanvas.py:268 AppGUI/PlotCanvasLegacy.py:378 -msgid "HUD disabled." -msgstr "HUD deaktiviert." - -#: AppGUI/PlotCanvas.py:276 AppGUI/PlotCanvasLegacy.py:451 -msgid "Grid enabled." -msgstr "Raster aktiviert." - -#: AppGUI/PlotCanvas.py:280 AppGUI/PlotCanvasLegacy.py:459 -msgid "Grid disabled." -msgstr "Raster deaktiviert." - -#: AppGUI/PlotCanvasLegacy.py:1523 -msgid "" -"Could not annotate due of a difference between the number of text elements " -"and the number of text positions." -msgstr "" -"Aufgrund eines Unterschieds zwischen der Anzahl der Textelemente und der " -"Anzahl der Textpositionen konnten keine Anmerkungen erstellt werden." - -#: AppGUI/preferences/PreferencesUIManager.py:852 -msgid "Preferences applied." -msgstr "Einstellungen werden angewendet." - -#: AppGUI/preferences/PreferencesUIManager.py:872 -msgid "Are you sure you want to continue?" -msgstr "Sind Sie sicher, dass Sie fortfahren wollen?" - -#: AppGUI/preferences/PreferencesUIManager.py:873 -msgid "Application will restart" -msgstr "Die Anwendung wird neu gestartet" - -#: AppGUI/preferences/PreferencesUIManager.py:971 -msgid "Preferences closed without saving." -msgstr "Einstellungen geschlossen ohne zu speichern." - -#: AppGUI/preferences/PreferencesUIManager.py:983 -msgid "Preferences default values are restored." -msgstr "Die Standardeinstellungen werden wiederhergestellt." - -#: AppGUI/preferences/PreferencesUIManager.py:1015 App_Main.py:2498 -#: App_Main.py:2566 -msgid "Failed to write defaults to file." -msgstr "Fehler beim Schreiben der Voreinstellungen in die Datei." - -#: AppGUI/preferences/PreferencesUIManager.py:1019 -#: AppGUI/preferences/PreferencesUIManager.py:1132 -msgid "Preferences saved." -msgstr "Einstellungen gespeichert." - -#: AppGUI/preferences/PreferencesUIManager.py:1069 -msgid "Preferences edited but not saved." -msgstr "Einstellungen bearbeitet, aber nicht gespeichert." - -#: AppGUI/preferences/PreferencesUIManager.py:1117 -msgid "" -"One or more values are changed.\n" -"Do you want to save the Preferences?" -msgstr "" -"Ein oder mehrere Werte werden geändert.\n" -"Möchten Sie die Einstellungen speichern?" - -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:27 -msgid "CNC Job Adv. Options" -msgstr "Erw. CNC-Joboptionen" - -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:64 -msgid "" -"Type here any G-Code commands you would like to be executed when Toolchange " -"event is encountered.\n" -"This will constitute a Custom Toolchange GCode, or a Toolchange Macro.\n" -"The FlatCAM variables are surrounded by '%' symbol.\n" -"WARNING: it can be used only with a preprocessor file that has " -"'toolchange_custom' in it's name." -msgstr "" -"Geben Sie hier G-Code-Befehle ein, die ausgeführt werden, wenn ein " -"Werkzeugwechselereignis auftritt.\n" -"So kann ein benutzerdefinierter Werkzeugwechsel in GCode definiert werden.\n" -"Die FlatCAM-Variablen sind vom '%'-Symbol umgeben.\n" -"\n" -"WARNUNG: Ein Werkzeugwechselereignis kann nur mit einer Präprozessor-Datei " -"verwendet warden, die das Präfix \"toolchange_custom\" im Namen hat und nach " -"Vorlage der \"Toolchange Custom\" -Prozessordatei erzeugt wurde." - -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:119 -msgid "Z depth for the cut" -msgstr "Z Tiefe für den Schnitt" - -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:120 -msgid "Z height for travel" -msgstr "Z Höhe für die Reise" - -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:126 -msgid "dwelltime = time to dwell to allow the spindle to reach it's set RPM" -msgstr "" -"dwelltime = Zeit zum Verweilen, damit die Spindel ihre eingestellte Drehzahl " -"erreicht" - -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:145 -msgid "Annotation Size" -msgstr "Anmerkungsgröße" - -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:147 -msgid "The font size of the annotation text. In pixels." -msgstr "Die Schriftgröße des Anmerkungstextes. In Pixeln." - -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:157 -msgid "Annotation Color" -msgstr "Anmerkungsfarbe" - -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:159 -msgid "Set the font color for the annotation texts." -msgstr "Legen Sie die Schriftfarbe für die Anmerkungstexte fest." - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:26 -msgid "CNC Job General" -msgstr "CNC-Job Allgemein" - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:77 -#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:57 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:59 -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:45 -msgid "Circle Steps" -msgstr "Kreisschritte" - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:79 -msgid "" -"The number of circle steps for GCode \n" -"circle and arc shapes linear approximation." -msgstr "" -"Die Anzahl der Kreisschritte für GCode\n" -"Kreis- und Bogenformen lineare Annäherung." - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:88 -msgid "Travel dia" -msgstr "Verfahrdurchm" - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:90 -msgid "" -"The width of the travel lines to be\n" -"rendered in the plot." -msgstr "" -"Die Breite der Fahrlinien soll sein\n" -"in der Handlung gerendert." - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:103 -msgid "G-code Decimals" -msgstr "G-Code-Dezimalstellen" - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:106 -#: AppTools/ToolFiducials.py:71 -msgid "Coordinates" -msgstr "Koordinaten" - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:108 -msgid "" -"The number of decimals to be used for \n" -"the X, Y, Z coordinates in CNC code (GCODE, etc.)" -msgstr "" -"Die Anzahl der Dezimalstellen, für die verwendet werden soll\n" -"die X-, Y-, Z-Koordinaten im CNC-Code (GCODE usw.)" - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:119 -#: AppTools/ToolProperties.py:519 -msgid "Feedrate" -msgstr "Vorschubgeschwindigkeit" - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:121 -msgid "" -"The number of decimals to be used for \n" -"the Feedrate parameter in CNC code (GCODE, etc.)" -msgstr "" -"Die Anzahl der Dezimalstellen, für die verwendet werden soll\n" -"der Vorschubparameter im CNC-Code (GCODE usw.)" - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:132 -msgid "Coordinates type" -msgstr "Koordinaten eingeben" - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:134 -msgid "" -"The type of coordinates to be used in Gcode.\n" -"Can be:\n" -"- Absolute G90 -> the reference is the origin x=0, y=0\n" -"- Incremental G91 -> the reference is the previous position" -msgstr "" -"Der in Gcode zu verwendende Koordinatentyp.\n" -"Kann sein:\n" -"- Absolut G90 -> die Referenz ist der Ursprung x = 0, y = 0\n" -"- Inkrementell G91 -> Die Referenz ist die vorherige Position" - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:140 -msgid "Absolute G90" -msgstr "Absolut G90" - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:141 -msgid "Incremental G91" -msgstr "Inkrementelles G91" - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:151 -msgid "Force Windows style line-ending" -msgstr "Windows Zeilenendemarkierung erzwingen" - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:153 -msgid "" -"When checked will force a Windows style line-ending\n" -"(\\r\\n) on non-Windows OS's." -msgstr "" -"Wenn ausgewählt werden Zeilenendungsmarkierungen von Windows (CRLF) auch auf " -"anderen Betriebssystemen geschrieben." - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:165 -msgid "Travel Line Color" -msgstr "Reiselinienfarbe" - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:169 -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:210 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:271 -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:154 -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:195 -#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:94 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:153 -#: AppTools/ToolRulesCheck.py:186 -msgid "Outline" -msgstr "Gliederung" - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:171 -msgid "Set the travel line color for plotted objects." -msgstr "Legen Sie die Reiselinienfarbe für geplottete Objekte fest." - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:179 -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:220 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:281 -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:163 -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:205 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:163 -msgid "Fill" -msgstr "Füll" - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:181 -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:222 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:283 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:165 -msgid "" -"Set the fill color for plotted objects.\n" -"First 6 digits are the color and the last 2\n" -"digits are for alpha (transparency) level." -msgstr "" -"Legen Sie die Füllfarbe für geplottete Objekte fest.\n" -"Die ersten 6 Ziffern sind die Farbe und die letzten 2\n" -"Ziffern sind für Alpha (Transparenz)." - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:191 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:293 -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:176 -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:218 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:175 -msgid "Alpha" -msgstr "Alpha" - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:193 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:295 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:177 -msgid "Set the fill transparency for plotted objects." -msgstr "Legen Sie die Füllungstransparenz für geplottete Objekte fest." - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:206 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:267 -#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:90 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:149 -msgid "Object Color" -msgstr "Objektfarbe" - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:212 -msgid "Set the color for plotted objects." -msgstr "Legen Sie die Farbe für geplottete Objekte fest." - -#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:27 -msgid "CNC Job Options" -msgstr "CNC-Auftragsoptionen" - -#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:31 -msgid "Export G-Code" -msgstr "G-Code exportieren" - -#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:47 -msgid "Prepend to G-Code" -msgstr "Voranstellen an G-Code" - -#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:56 -msgid "" -"Type here any G-Code commands you would like to add at the beginning of the " -"G-Code file." -msgstr "" -"Geben Sie hier alle G-Code-Befehle ein\n" -"die Sie zum Anfang der G-Code-Datei hinzufügen möchten." - -#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:63 -msgid "Append to G-Code" -msgstr "An G-Code anhängen" - -#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:73 -msgid "" -"Type here any G-Code commands you would like to append to the generated " -"file.\n" -"I.e.: M2 (End of program)" -msgstr "" -"Geben Sie hier alle G-Code-Befehle ein, die Sie an die generierte Datei " -"anhängen möchten.\n" -"Zum Beispiel: M2 (Programmende)" - -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:27 -msgid "Excellon Adv. Options" -msgstr "Excellon erweiterte Optionen" - -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:34 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:34 -#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:31 -msgid "Advanced Options" -msgstr "Erweiterte Optionen" - -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:36 -msgid "" -"A list of Excellon advanced parameters.\n" -"Those parameters are available only for\n" -"Advanced App. Level." -msgstr "" -"Eine Liste der erweiterten Excellon-Parameter.\n" -"Diese Parameter sind nur für verfügbar\n" -"Erweiterte App. Niveau." - -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:59 -msgid "Toolchange X,Y" -msgstr "Werkzeugwechsel X, Y" - -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:61 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:48 -msgid "Toolchange X,Y position." -msgstr "Werkzeugwechsel X, Y Position." - -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:121 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:137 -msgid "Spindle direction" -msgstr "Drehrichtung" - -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:123 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:139 -msgid "" -"This sets the direction that the spindle is rotating.\n" -"It can be either:\n" -"- CW = clockwise or\n" -"- CCW = counter clockwise" -msgstr "" -"Hiermit wird die Drehrichtung der Spindel eingestellt.\n" -"Es kann entweder sein:\n" -"- CW = im Uhrzeigersinn oder\n" -"- CCW = gegen den Uhrzeigersinn" - -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:134 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:151 -msgid "Fast Plunge" -msgstr "Schneller Sprung" - -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:136 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:153 -msgid "" -"By checking this, the vertical move from\n" -"Z_Toolchange to Z_move is done with G0,\n" -"meaning the fastest speed available.\n" -"WARNING: the move is done at Toolchange X,Y coords." -msgstr "" -"Wenn Sie dies überprüfen, bewegen Sie sich vertikal\n" -"Z_Toolchange zu Z_move erfolgt mit G0,\n" -"Das bedeutet die schnellste verfügbare Geschwindigkeit.\n" -"WARNUNG: Die Verschiebung erfolgt bei Toolchange X, Y-Koordinaten." - -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:143 -msgid "Fast Retract" -msgstr "Schneller Rückzug" - -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:145 -msgid "" -"Exit hole strategy.\n" -" - When uncheked, while exiting the drilled hole the drill bit\n" -"will travel slow, with set feedrate (G1), up to zero depth and then\n" -"travel as fast as possible (G0) to the Z Move (travel height).\n" -" - When checked the travel from Z cut (cut depth) to Z_move\n" -"(travel height) is done as fast as possible (G0) in one move." -msgstr "" -"Verlassen Sie die Lochstrategie.\n" -"  - Ungeprüft, beim Verlassen des Bohrlochs der Bohrer\n" -"fährt langsam, mit eingestelltem Vorschub (G1), bis zur Nulltiefe und dann\n" -"Fahren Sie so schnell wie möglich (G0) bis Z Move (Fahrhöhe).\n" -"  - Wenn Sie den Weg von Z-Schnitt (Schnitttiefe) nach Z_Move prüfen\n" -"(Fahrhöhe) erfolgt so schnell wie möglich (G0) in einem Zug." - -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:32 -msgid "A list of Excellon Editor parameters." -msgstr "Eine Liste der Excellon Editor-Parameter." - -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:40 -#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:41 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:41 -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:172 -msgid "Selection limit" -msgstr "Auswahllimit" - -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:42 -msgid "" -"Set the number of selected Excellon geometry\n" -"items above which the utility geometry\n" -"becomes just a selection rectangle.\n" -"Increases the performance when moving a\n" -"large number of geometric elements." -msgstr "" -"Stellen Sie die Anzahl der ausgewählten Excellon-Geometrien ein\n" -"Elemente, über denen die Nutzgeometrie\n" -"wird nur ein Auswahlrechteck.\n" -"Erhöht die Leistung beim Bewegen von a\n" -"große Anzahl von geometrischen Elementen." - -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:55 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:134 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:117 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:123 -msgid "New Dia" -msgstr "Neuer Durchmesser" - -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:80 -msgid "Linear Drill Array" -msgstr "Linearbohrer-Array" - -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:84 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:232 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:121 -msgid "Linear Direction" -msgstr "Lineare Richtung" - -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:126 -msgid "Circular Drill Array" -msgstr "Rundbohrer-Array" - -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:130 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:280 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:165 -msgid "Circular Direction" -msgstr "Kreisrichtung" - -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:132 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:282 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:167 -msgid "" -"Direction for circular array.\n" -"Can be CW = clockwise or CCW = counter clockwise." -msgstr "" -"Richtung für kreisförmige Anordnung. \n" -"Kann CW = Uhrzeigersinn oder CCW = Gegenuhrzeigersinn sein." - -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:143 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:293 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:178 -msgid "Circular Angle" -msgstr "Kreiswinkel" - -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:196 -msgid "" -"Angle at which the slot is placed.\n" -"The precision is of max 2 decimals.\n" -"Min value is: -359.99 degrees.\n" -"Max value is: 360.00 degrees." -msgstr "" -"Winkel, in dem der Schlitz platziert ist.\n" -"Die Genauigkeit beträgt maximal 2 Dezimalstellen.\n" -"Der Mindestwert beträgt: -359,99 Grad.\n" -"Maximaler Wert ist: 360.00 Grad." - -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:215 -msgid "Linear Slot Array" -msgstr "Lineare Schlitzanordnung" - -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:276 -msgid "Circular Slot Array" -msgstr "Kreisschlitz-Array" - -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:26 -msgid "Excellon Export" -msgstr "Excellon Export" - -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:30 -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:31 -msgid "Export Options" -msgstr "Exportoptionen" - -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:32 -msgid "" -"The parameters set here are used in the file exported\n" -"when using the File -> Export -> Export Excellon menu entry." -msgstr "" -"Die hier eingestellten Parameter werden in der exportierten Datei verwendet\n" -"bei Verwendung des Menüeintrags Datei -> Exportieren -> Exportieren von " -"Excellon." - -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:41 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:172 -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:39 -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:42 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:82 -#: AppTools/ToolDistance.py:56 AppTools/ToolDistanceMin.py:49 -#: AppTools/ToolPcbWizard.py:127 AppTools/ToolProperties.py:154 -msgid "Units" -msgstr "Einheiten" - -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:43 -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:49 -msgid "The units used in the Excellon file." -msgstr "Die in der Excellon-Datei verwendeten Einheiten." - -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:46 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:96 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:182 -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:47 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:87 -#: AppTools/ToolCalculators.py:61 AppTools/ToolPcbWizard.py:125 -msgid "INCH" -msgstr "ZOLL" - -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:47 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:183 -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:43 -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:48 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:88 -#: AppTools/ToolCalculators.py:62 AppTools/ToolPcbWizard.py:126 -msgid "MM" -msgstr "MM" - -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:55 -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:56 -msgid "Int/Decimals" -msgstr "Ganzzahl / Dezimalzahl" - -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:57 -msgid "" -"The NC drill files, usually named Excellon files\n" -"are files that can be found in different formats.\n" -"Here we set the format used when the provided\n" -"coordinates are not using period." -msgstr "" -"Die NC-Bohrdateien, normalerweise Excellon-Dateien genannt\n" -"sind Dateien, die in verschiedenen Formaten vorliegen.\n" -"Hier legen wir das verwendete Format fest\n" -"Koordinaten verwenden keine Periode." - -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:69 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:104 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:133 -msgid "" -"This numbers signify the number of digits in\n" -"the whole part of Excellon coordinates." -msgstr "" -"Diese Zahlen geben die Anzahl der Ziffern in an\n" -"der gesamte Teil der Excellon-Koordinaten." - -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:82 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:117 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:146 -msgid "" -"This numbers signify the number of digits in\n" -"the decimal part of Excellon coordinates." -msgstr "" -"Diese Zahlen geben die Anzahl der Ziffern in an\n" -"der Dezimalteil der Excellon-Koordinaten." - -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:91 -msgid "Format" -msgstr "Format" - -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:93 -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:103 -msgid "" -"Select the kind of coordinates format used.\n" -"Coordinates can be saved with decimal point or without.\n" -"When there is no decimal point, it is required to specify\n" -"the number of digits for integer part and the number of decimals.\n" -"Also it will have to be specified if LZ = leading zeros are kept\n" -"or TZ = trailing zeros are kept." -msgstr "" -"Wählen Sie das verwendete Koordinatenformat aus.\n" -"Koordinaten können mit oder ohne Dezimalpunkt gespeichert werden.\n" -"Wenn kein Dezimalzeichen vorhanden ist, muss dies angegeben werden\n" -"Die Anzahl der Ziffern für den ganzzahligen Teil und die Anzahl der " -"Dezimalstellen.\n" -"Es muss auch angegeben werden, wenn LZ = führende Nullen beibehalten werden\n" -"oder TZ = nachfolgende Nullen bleiben erhalten." - -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:100 -msgid "Decimal" -msgstr "Dezimal" - -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:101 -msgid "No-Decimal" -msgstr "Keine Dezimalzahl" - -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:114 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:154 -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:96 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:97 -msgid "Zeros" -msgstr "Nullen" - -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:117 -msgid "" -"This sets the type of Excellon zeros.\n" -"If LZ then Leading Zeros are kept and\n" -"Trailing Zeros are removed.\n" -"If TZ is checked then Trailing Zeros are kept\n" -"and Leading Zeros are removed." -msgstr "" -"Hiermit wird der Typ der Excellon-Nullen festgelegt.\n" -"Wenn LZ, dann werden führende Nullen beibehalten und\n" -"Nachgestellte Nullen werden entfernt.\n" -"Wenn TZ aktiviert ist, werden nachfolgende Nullen beibehalten\n" -"und führende Nullen werden entfernt." - -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:124 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:167 -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:106 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:107 -#: AppTools/ToolPcbWizard.py:111 -msgid "LZ" -msgstr "LZ" - -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:125 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:168 -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:107 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:108 -#: AppTools/ToolPcbWizard.py:112 -msgid "TZ" -msgstr "TZ" - -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:127 -msgid "" -"This sets the default type of Excellon zeros.\n" -"If LZ then Leading Zeros are kept and\n" -"Trailing Zeros are removed.\n" -"If TZ is checked then Trailing Zeros are kept\n" -"and Leading Zeros are removed." -msgstr "" -"Hiermit wird der Standardtyp von Excellon-Nullen festgelegt.\n" -"Wenn LZ, dann werden führende Nullen beibehalten und\n" -"Nachgestellte Nullen werden entfernt.\n" -"Wenn TZ aktiviert ist, werden nachfolgende Nullen beibehalten\n" -"und führende Nullen werden entfernt." - -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:137 -msgid "Slot type" -msgstr "Schlitze-Typ" - -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:140 -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:150 -msgid "" -"This sets how the slots will be exported.\n" -"If ROUTED then the slots will be routed\n" -"using M15/M16 commands.\n" -"If DRILLED(G85) the slots will be exported\n" -"using the Drilled slot command (G85)." -msgstr "" -"Hier legen Sie fest, wie die Slots exportiert werden.\n" -"Wenn geroutet, werden die Slots geroutet\n" -"mit M15 / M16 Befehlen.\n" -"Beim Bohren (G85) werden die Steckplätze exportiert\n" -"Verwenden Sie den Befehl Bohrschlitz (G85)." - -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:147 -msgid "Routed" -msgstr "Geroutet" - -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:148 -msgid "Drilled(G85)" -msgstr "Gebohrt (G85)" - -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:29 -msgid "Excellon General" -msgstr "Excellon Allgemeines" - -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:54 -#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:45 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:52 -msgid "M-Color" -msgstr "M-farbig" - -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:71 -msgid "Excellon Format" -msgstr "Excellon Format" - -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:73 -msgid "" -"The NC drill files, usually named Excellon files\n" -"are files that can be found in different formats.\n" -"Here we set the format used when the provided\n" -"coordinates are not using period.\n" -"\n" -"Possible presets:\n" -"\n" -"PROTEUS 3:3 MM LZ\n" -"DipTrace 5:2 MM TZ\n" -"DipTrace 4:3 MM LZ\n" -"\n" -"EAGLE 3:3 MM TZ\n" -"EAGLE 4:3 MM TZ\n" -"EAGLE 2:5 INCH TZ\n" -"EAGLE 3:5 INCH TZ\n" -"\n" -"ALTIUM 2:4 INCH LZ\n" -"Sprint Layout 2:4 INCH LZ\n" -"KiCAD 3:5 INCH TZ" -msgstr "" -"Die NC-Bohrdateien, normalerweise Excellon-Dateien genannt\n" -"sind Dateien, die in verschiedenen Formaten vorliegen.\n" -"Hier legen wir das verwendete Format fest\n" -"Koordinaten verwenden keine Periode.\n" -"\n" -"Mögliche Voreinstellungen:\n" -"\n" -"PROTEUS 3: 3 MM LZ\n" -"DipTrace 5: 2 MM TZ\n" -"DipTrace 4: 3 MM LZ\n" -"\n" -"Eagle 3: 3 MM TZ\n" -"Eagle 4: 3 MM TZ\n" -"Eagle 2: 5 ZOLL TZ\n" -"Eagle 3: 5 ZOLL TZ\n" -"\n" -"ALTIUM 2: 4 ZOLL LZ\n" -"Sprint-Layout 2: 4 ZOLL LZ\n" -"KiCAD 3: 5 ZOLL TZ" - -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:97 -msgid "Default values for INCH are 2:4" -msgstr "Die Standardwerte für ZOLL sind 2: 4" - -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:125 -msgid "METRIC" -msgstr "METRISCH" - -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:126 -msgid "Default values for METRIC are 3:3" -msgstr "Die Standardwerte für METRISCH sind 3: 3" - -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:157 -msgid "" -"This sets the type of Excellon zeros.\n" -"If LZ then Leading Zeros are kept and\n" -"Trailing Zeros are removed.\n" -"If TZ is checked then Trailing Zeros are kept\n" -"and Leading Zeros are removed.\n" -"\n" -"This is used when there is no information\n" -"stored in the Excellon file." -msgstr "" -"Hiermit wird der Typ der Excellon-Nullen festgelegt.\n" -"Wenn LZ, dann werden führende Nullen beibehalten und\n" -"Nachgestellte Nullen werden entfernt.\n" -"Wenn TZ aktiviert ist, werden nachfolgende Nullen beibehalten\n" -"und führende Nullen werden entfernt.\n" -"\n" -"Dies wird verwendet, wenn keine Informationen vorliegen\n" -"in der Excellon-Datei gespeichert." - -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:175 -msgid "" -"This sets the default units of Excellon files.\n" -"If it is not detected in the parsed file the value here\n" -"will be used.Some Excellon files don't have an header\n" -"therefore this parameter will be used." -msgstr "" -"Dadurch werden die Standardeinheiten von Excellon-Dateien festgelegt.\n" -"Wird in der geparsten Datei der Wert hier nicht gefunden\n" -"wird verwendet. Einige Excellon-Dateien haben keinen Header\n" -"Daher wird dieser Parameter verwendet." - -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:185 -msgid "" -"This sets the units of Excellon files.\n" -"Some Excellon files don't have an header\n" -"therefore this parameter will be used." -msgstr "" -"Damit werden die Einheiten von Excellon-Dateien festgelegt.\n" -"Einige Excellon-Dateien haben keinen Header\n" -"Daher wird dieser Parameter verwendet." - -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:193 -msgid "Update Export settings" -msgstr "Exporteinstellungen aktual" - -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:210 -msgid "Excellon Optimization" -msgstr "Optimierung der Excellons" - -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:213 -msgid "Algorithm:" -msgstr "Algorithmus:" - -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:215 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:231 -msgid "" -"This sets the optimization type for the Excellon drill path.\n" -"If <> is checked then Google OR-Tools algorithm with\n" -"MetaHeuristic Guided Local Path is used. Default search time is 3sec.\n" -"If <> is checked then Google OR-Tools Basic algorithm is used.\n" -"If <> is checked then Travelling Salesman algorithm is used for\n" -"drill path optimization.\n" -"\n" -"If this control is disabled, then FlatCAM works in 32bit mode and it uses\n" -"Travelling Salesman algorithm for path optimization." -msgstr "" -"Hiermit wird der Optimierungstyp für den Excellon-Bohrpfad festgelegt.\n" -"Wenn << MetaHeuristic >> aktiviert ist, verwenden Sie den Google OR-Tools-" -"Algorithmus\n" -"Es wird ein metaHeuristisch geführter lokaler Pfad verwendet. Die " -"Standardsuchzeit beträgt 3 Sekunden.\n" -"Wenn << Basic >> aktiviert ist, wird der Google OR-Tools Basic-Algorithmus " -"verwendet.\n" -"Wenn << TSA >> markiert ist, wird der Traveling Salesman-Algorithmus für " -"verwendet\n" -"Bohrpfadoptimierung.\n" -"\n" -"Wenn dieses Steuerelement deaktiviert ist, arbeitet FlatCAM im 32-Bit-Modus " -"und verwendet\n" -"Travelling Salesman-Algorithmus zur Pfadoptimierung." - -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:226 -msgid "MetaHeuristic" -msgstr "MetaHeuristic" - -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:227 -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:104 -#: AppObjects/FlatCAMExcellon.py:694 AppObjects/FlatCAMGeometry.py:568 -#: AppObjects/FlatCAMGerber.py:219 AppTools/ToolIsolation.py:785 -msgid "Basic" -msgstr "Basis" - -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:228 -msgid "TSA" -msgstr "TSA" - -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:245 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:245 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:238 -msgid "Duration" -msgstr "Dauer" - -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:248 -msgid "" -"When OR-Tools Metaheuristic (MH) is enabled there is a\n" -"maximum threshold for how much time is spent doing the\n" -"path optimization. This max duration is set here.\n" -"In seconds." -msgstr "" -"Wenn OR-Tools Metaheuristic (MH) aktiviert ist, wird ein angezeigt\n" -"maximale Schwelle für die Zeit, die das\n" -"Pfadoptimierung. Diese maximale Dauer wird hier eingestellt.\n" -"In Sekunden." - -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:273 -#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:96 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:155 -msgid "Set the line color for plotted objects." -msgstr "Legen Sie die Linienfarbe für geplottete Objekte fest." - -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:29 -msgid "Excellon Options" -msgstr "Excellon-Optionen" - -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:33 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:35 -msgid "Create CNC Job" -msgstr "CNC-Job erstellen" - -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:35 -msgid "" -"Parameters used to create a CNC Job object\n" -"for this drill object." -msgstr "" -"Parameter, die zum Erstellen eines CNC-Auftragsobjekts verwendet werden\n" -"für dieses Bohrobjekt." - -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:152 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:122 -msgid "Tool change" -msgstr "Werkzeugwechsel" - -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:236 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:233 -msgid "Enable Dwell" -msgstr "Verweilzeit aktivieren" - -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:259 -msgid "" -"The preprocessor JSON file that dictates\n" -"Gcode output." -msgstr "" -"Die Postprozessor-JSON-Datei, die diktiert\n" -"Gcode-Ausgabe." - -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:270 -msgid "Gcode" -msgstr "Gcode" - -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:272 -msgid "" -"Choose what to use for GCode generation:\n" -"'Drills', 'Slots' or 'Both'.\n" -"When choosing 'Slots' or 'Both', slots will be\n" -"converted to drills." -msgstr "" -"Wählen Sie aus, was für die GCode-Generierung verwendet werden soll:\n" -"'Bohrer', 'Schlüssel' oder 'Beide'.\n" -"Wenn Sie \"Schlüssel\" oder \"Beide\" wählen, werden die Schlüssel " -"angezeigt\n" -"in Bohrer umgewandelt." - -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:288 -msgid "Mill Holes" -msgstr "Löcher bohren" - -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:290 -msgid "Create Geometry for milling holes." -msgstr "Erstellen Sie Geometrie zum Fräsen von Löchern." - -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:294 -msgid "Drill Tool dia" -msgstr "Bohrwerkzeugs Durchm" - -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:305 -msgid "Slot Tool dia" -msgstr "Schlitzwerkzeug Durchmesser" - -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:307 -msgid "" -"Diameter of the cutting tool\n" -"when milling slots." -msgstr "" -"Durchmesser des Schneidewerkzeugs\n" -"beim Fräsen von Schlitzen." - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:28 -#: AppGUI/preferences/general/GeneralAppSettingsGroupUI.py:74 -msgid "App Settings" -msgstr "App Einstellungen" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:49 -msgid "Grid Settings" -msgstr "Rastereinstellungen" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:53 -msgid "X value" -msgstr "X-Wert" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:55 -msgid "This is the Grid snap value on X axis." -msgstr "Dies ist der Rasterfangwert auf der X-Achse." - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:65 -msgid "Y value" -msgstr "Y-Wert" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:67 -msgid "This is the Grid snap value on Y axis." -msgstr "Dies ist der Rasterfangwert auf der Y-Achse." - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:77 -msgid "Snap Max" -msgstr "Fang Max" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:92 -msgid "Workspace Settings" -msgstr "Arbeitsbereichseinstellungen" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:95 -msgid "Active" -msgstr "Aktiv" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:105 -msgid "" -"Select the type of rectangle to be used on canvas,\n" -"as valid workspace." -msgstr "" -"Wählen Sie den Typ des Rechtecks für die Leinwand aus.\n" -"als gültiger Arbeitsbereich." - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:171 -msgid "Orientation" -msgstr "Orientierung" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:172 -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:228 -#: AppTools/ToolFilm.py:405 -msgid "" -"Can be:\n" -"- Portrait\n" -"- Landscape" -msgstr "" -"Eines von\n" -"- Hochformat\n" -"- Querformat" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:176 -#: AppGUI/preferences/general/GeneralAppSettingsGroupUI.py:154 -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:232 -#: AppTools/ToolFilm.py:409 -msgid "Portrait" -msgstr "Hochformat" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:177 -#: AppGUI/preferences/general/GeneralAppSettingsGroupUI.py:155 -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:233 -#: AppTools/ToolFilm.py:410 -msgid "Landscape" -msgstr "Querformat" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:193 -msgid "Notebook" -msgstr "Notizbuch" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:195 -msgid "" -"This sets the font size for the elements found in the Notebook.\n" -"The notebook is the collapsible area in the left side of the AppGUI,\n" -"and include the Project, Selected and Tool tabs." -msgstr "" -"Hiermit wird die Schriftgröße für die im Notizbuch gefundenen Elemente " -"festgelegt.\n" -"Das Notizbuch ist der zusammenklappbare Bereich auf der linken Seite der " -"AppGUI.\n" -"und schließen Sie die Registerkarten Projekt, Ausgewählt und Werkzeug ein." - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:214 -msgid "Axis" -msgstr "Achse" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:216 -msgid "This sets the font size for canvas axis." -msgstr "Hiermit wird die Schriftgröße für die Zeichenbereichsachse festgelegt." - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:233 -msgid "Textbox" -msgstr "Textfeld" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:235 -msgid "" -"This sets the font size for the Textbox AppGUI\n" -"elements that are used in the application." -msgstr "" -"Hiermit wird die Schriftgröße für die Textbox AppGUI festgelegt\n" -"Elemente, die in der Anwendung verwendet werden." - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:253 -msgid "HUD" -msgstr "HUD" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:255 -msgid "This sets the font size for the Heads Up Display." -msgstr "Hiermit wird die Schriftgröße für das Heads-Up-Display festgelegt." - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:280 -msgid "Mouse Settings" -msgstr "Mauseinstellungen" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:284 -msgid "Cursor Shape" -msgstr "Mauszeiger Form" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:286 -msgid "" -"Choose a mouse cursor shape.\n" -"- Small -> with a customizable size.\n" -"- Big -> Infinite lines" -msgstr "" -"Wählen Sie eine Mauszeigerform.\n" -"- Klein -> mit einer anpassbaren Größe.\n" -"- Groß -> Unendliche Linien" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:292 -#: AppGUI/preferences/general/GeneralAppSettingsGroupUI.py:193 -msgid "Small" -msgstr "Klein" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:293 -#: AppGUI/preferences/general/GeneralAppSettingsGroupUI.py:194 -msgid "Big" -msgstr "Groß" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:300 -msgid "Cursor Size" -msgstr "Mauszeigergröße" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:302 -msgid "Set the size of the mouse cursor, in pixels." -msgstr "Stellen Sie die Größe des Mauszeigers in Pixel ein." - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:313 -msgid "Cursor Width" -msgstr "Mauszeiger Breite" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:315 -msgid "Set the line width of the mouse cursor, in pixels." -msgstr "Legen Sie die Linienbreite des Mauszeigers in Pixel fest." - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:326 -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:333 -msgid "Cursor Color" -msgstr "Mauszeigerfarbe" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:328 -msgid "Check this box to color mouse cursor." -msgstr "Aktivieren Sie dieses Kontrollkästchen, um den Mauszeiger einzufärben." - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:335 -msgid "Set the color of the mouse cursor." -msgstr "Stellen Sie die Farbe des Mauszeigers ein." - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:350 -msgid "Pan Button" -msgstr "Pan-Taste" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:352 -msgid "" -"Select the mouse button to use for panning:\n" -"- MMB --> Middle Mouse Button\n" -"- RMB --> Right Mouse Button" -msgstr "" -"Wählen Sie die Maustaste aus, die Sie zum Verschieben verwenden möchten:\n" -"- MMB -> Mittlere Maustaste\n" -"- RMB -> Rechte Maustaste" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:356 -#: AppGUI/preferences/general/GeneralAppSettingsGroupUI.py:226 -msgid "MMB" -msgstr "MMB" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:357 -#: AppGUI/preferences/general/GeneralAppSettingsGroupUI.py:227 -msgid "RMB" -msgstr "RMB" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:363 -msgid "Multiple Selection" -msgstr "Mehrfachauswahl" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:365 -msgid "Select the key used for multiple selection." -msgstr "Wählen Sie den Schlüssel für die Mehrfachauswahl aus." - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:367 -#: AppGUI/preferences/general/GeneralAppSettingsGroupUI.py:233 -msgid "CTRL" -msgstr "STRG" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:368 -#: AppGUI/preferences/general/GeneralAppSettingsGroupUI.py:234 -msgid "SHIFT" -msgstr "SHIFT" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:379 -msgid "Delete object confirmation" -msgstr "Objektbestätigung löschen" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:381 -msgid "" -"When checked the application will ask for user confirmation\n" -"whenever the Delete object(s) event is triggered, either by\n" -"menu shortcut or key shortcut." -msgstr "" -"Wenn diese Option aktiviert ist, werden Sie von der Anwendung um eine\n" -"Bestätigung des Benutzers gebeten Jedes Mal, wenn das Ereignis Objekt (e)\n" -"löschen ausgelöst wird, entweder durch\n" -"Menüverknüpfung oder Tastenkombination." - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:388 -msgid "\"Open\" behavior" -msgstr "\"Offen\" -Verhalten" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:390 -msgid "" -"When checked the path for the last saved file is used when saving files,\n" -"and the path for the last opened file is used when opening files.\n" -"\n" -"When unchecked the path for opening files is the one used last: either the\n" -"path for saving files or the path for opening files." -msgstr "" -"Wenn diese Option aktiviert ist, wird beim Speichern der Dateien der Pfad " -"für die zuletzt gespeicherte Datei verwendet.\n" -"und der Pfad für die zuletzt geöffnete Datei wird beim Öffnen von Dateien " -"verwendet.\n" -"\n" -"Wenn das Kontrollkästchen deaktiviert ist, wird der Pfad zum Öffnen der " -"Dateien zuletzt verwendet: entweder der Pfad\n" -"Pfad zum Speichern von Dateien oder Pfad zum Öffnen von Dateien." - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:399 -msgid "Enable ToolTips" -msgstr "QuickInfos aktivieren" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:401 -msgid "" -"Check this box if you want to have toolTips displayed\n" -"when hovering with mouse over items throughout the App." -msgstr "" -"Aktivieren Sie dieses Kontrollkästchen, wenn QuickInfos angezeigt werden " -"sollen\n" -"wenn Sie mit der Maus über Elemente in der App fahren." - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:408 -msgid "Allow Machinist Unsafe Settings" -msgstr "Unsichere Maschineneinstellungen erlauben" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:410 -msgid "" -"If checked, some of the application settings will be allowed\n" -"to have values that are usually unsafe to use.\n" -"Like Z travel negative values or Z Cut positive values.\n" -"It will applied at the next application start.\n" -"<>: Don't change this unless you know what you are doing !!!" -msgstr "" -"Wenn gewählt werden Applikationseinstellungen erlaubt,\n" -"die im normalen Betrieb als unsicher gelten.\n" -"Zum Beispiel negative Werte für schnelle Z Bewegungen, oder \n" -"Positive Z-Werte bei schneidvorgängen.\n" -"Wird beim Nächsten Programmstart wirksam\n" -" << ACHTUNG>>: Ändern Sie das nicht, wenn Sie nicht wissen was Sie tun!" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:422 -msgid "Bookmarks limit" -msgstr "Lesezeichenlimit" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:424 -msgid "" -"The maximum number of bookmarks that may be installed in the menu.\n" -"The number of bookmarks in the bookmark manager may be greater\n" -"but the menu will hold only so much." -msgstr "" -"Die maximale Anzahl von Lesezeichen, die im Menü installiert werden dürfen.\n" -"Die Anzahl der Lesezeichen im Lesezeichen-Manager ist möglicherweise größer\n" -"Aber das Menü wird nur so viel enthalten." - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:433 -msgid "Activity Icon" -msgstr "Aktivitätssymbol" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:435 -msgid "Select the GIF that show activity when FlatCAM is active." -msgstr "" -"Wählen Sie das GIF aus, das die Aktivität anzeigt, wenn FlatCAM aktiv ist." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:29 -msgid "App Preferences" -msgstr "App-Einstellungen" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:40 -msgid "" -"The default value for FlatCAM units.\n" -"Whatever is selected here is set every time\n" -"FlatCAM is started." -msgstr "" -"Der Standardwert für FlatCAM-Einheiten.\n" -"Was hier ausgewählt wird, wird jedes Mal eingestellt\n" -"FLatCAM wird gestartet." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:44 -msgid "IN" -msgstr "ZOLL" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:50 -msgid "Precision MM" -msgstr "Präzision in mm" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:52 -msgid "" -"The number of decimals used throughout the application\n" -"when the set units are in METRIC system.\n" -"Any change here require an application restart." -msgstr "" -"Die Anzahl der Nachkommastellen die in der gesamten Applikation verwendet " -"werden\n" -"wenn das Metrische Einheitensystem verwendet wird.\n" -"Jede Änderung erfordert einen Neustart der Applikation." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:64 -msgid "Precision INCH" -msgstr "Präzision (Zoll)" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:66 -msgid "" -"The number of decimals used throughout the application\n" -"when the set units are in INCH system.\n" -"Any change here require an application restart." -msgstr "" -"Die Anzahl der Nachkommastellen die in der gesamten Applikation verwendet " -"werden\n" -"wenn das Imperiale (Inches) Einheitensystem verwendet wird.\n" -"Jede Änderung erfordert einen Neustart der Applikation." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:78 -msgid "Graphic Engine" -msgstr "Grafik-Engine" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:79 -msgid "" -"Choose what graphic engine to use in FlatCAM.\n" -"Legacy(2D) -> reduced functionality, slow performance but enhanced " -"compatibility.\n" -"OpenGL(3D) -> full functionality, high performance\n" -"Some graphic cards are too old and do not work in OpenGL(3D) mode, like:\n" -"Intel HD3000 or older. In this case the plot area will be black therefore\n" -"use the Legacy(2D) mode." -msgstr "" -"Wählen Sie aus, welche Grafik-Engine in FlatCAM verwendet werden soll.\n" -"Legacy (2D) -> reduzierte Funktionalität, langsame Leistung, aber " -"verbesserte Kompatibilität.\n" -"OpenGL (3D) -> volle Funktionalität, hohe Leistung\n" -"Einige Grafikkarten sind zu alt und funktionieren nicht im OpenGL (3D) -" -"Modus. Beispiel:\n" -"Intel HD3000 oder älter. In diesem Fall ist der Plotbereich daher schwarz\n" -"Verwenden Sie den Legacy (2D) -Modus." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:85 -msgid "Legacy(2D)" -msgstr "Legacy (2D)" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:86 -msgid "OpenGL(3D)" -msgstr "OpenGL (3D)" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:98 -msgid "APP. LEVEL" -msgstr "Darstellung" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:99 -msgid "" -"Choose the default level of usage for FlatCAM.\n" -"BASIC level -> reduced functionality, best for beginner's.\n" -"ADVANCED level -> full functionality.\n" -"\n" -"The choice here will influence the parameters in\n" -"the Selected Tab for all kinds of FlatCAM objects." -msgstr "" -"Wählen Sie die Standardbenutzungsstufe für FlatCAM.\n" -"BASIC-Level -> reduzierte Funktionalität, am besten für Anfänger.\n" -"ERWEITERTE Stufe -> volle Funktionalität.\n" -"\n" -"Die Auswahl hier beeinflusst die Parameter in\n" -"Die Registerkarte Ausgewählt für alle Arten von FlatCAM-Objekten." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:105 -#: AppObjects/FlatCAMExcellon.py:707 AppObjects/FlatCAMGeometry.py:589 -#: AppObjects/FlatCAMGerber.py:227 AppTools/ToolIsolation.py:816 -msgid "Advanced" -msgstr "Erweitert" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:111 -msgid "Portable app" -msgstr "Portable Anwendung" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:112 -msgid "" -"Choose if the application should run as portable.\n" -"\n" -"If Checked the application will run portable,\n" -"which means that the preferences files will be saved\n" -"in the application folder, in the lib\\config subfolder." -msgstr "" -"Wählen Sie aus, ob die Anwendung als portabel ausgeführt werden soll.\n" -"\n" -"Wenn diese Option aktiviert ist, wird die Anwendung portabel ausgeführt.\n" -"Dies bedeutet, dass die Voreinstellungsdateien gespeichert werden\n" -"Im Anwendungsordner, im Unterordner lib \\ config." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:125 -msgid "Languages" -msgstr "Sprachen" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:126 -msgid "Set the language used throughout FlatCAM." -msgstr "Stellen Sie die Sprache ein, die in FlatCAM verwendet wird." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:132 -msgid "Apply Language" -msgstr "Sprache anwend" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:133 -msgid "" -"Set the language used throughout FlatCAM.\n" -"The app will restart after click." -msgstr "" -"Stellen Sie die in FlatCAM verwendete Sprache ein.\n" -"Die App wird nach dem Klicken neu gestartet." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:147 -msgid "Startup Settings" -msgstr "Starteinstellungen" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:151 -msgid "Splash Screen" -msgstr "Begrüßungsbildschirm" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:153 -msgid "Enable display of the splash screen at application startup." -msgstr "" -"Aktivieren Sie die Anzeige des Begrüßungsbildschirms beim Start der " -"Anwendung." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:165 -msgid "Sys Tray Icon" -msgstr "Systray-Symbol" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:167 -msgid "Enable display of FlatCAM icon in Sys Tray." -msgstr "Anzeige des FlatCAM-Symbols in Systray aktivieren." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:172 -msgid "Show Shell" -msgstr "Shell anzeigen" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:174 -msgid "" -"Check this box if you want the shell to\n" -"start automatically at startup." -msgstr "" -"Aktivieren Sie dieses Kontrollkästchen, wenn Sie die Shell verwenden " -"möchten\n" -"Beim Start automatisch starten." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:181 -msgid "Show Project" -msgstr "Projekt anzeigen" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:183 -msgid "" -"Check this box if you want the project/selected/tool tab area to\n" -"to be shown automatically at startup." -msgstr "" -"Aktivieren Sie dieses Kontrollkästchen, wenn der\n" -"Bereich Projekt / Ausgewähltes / Werkzeugregister\n" -"angezeigt werden soll\n" -"beim Start automatisch angezeigt werden." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:189 -msgid "Version Check" -msgstr "Versionsprüfung" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:191 -msgid "" -"Check this box if you want to check\n" -"for a new version automatically at startup." -msgstr "" -"Aktivieren Sie dieses Kontrollkästchen,\n" -"wenn Sie das Kontrollkästchen aktivieren möchten\n" -"für eine neue Version automatisch beim Start." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:198 -msgid "Send Statistics" -msgstr "Statistiken senden" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:200 -msgid "" -"Check this box if you agree to send anonymous\n" -"stats automatically at startup, to help improve FlatCAM." -msgstr "" -"Aktivieren Sie dieses Kontrollkästchen, wenn Sie der anonymen Nachricht " -"zustimmen\n" -"wird beim Start automatisch aktualisiert, um FlatCAM zu verbessern." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:214 -msgid "Workers number" -msgstr "Thread Anzahl" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:216 -msgid "" -"The number of Qthreads made available to the App.\n" -"A bigger number may finish the jobs more quickly but\n" -"depending on your computer speed, may make the App\n" -"unresponsive. Can have a value between 2 and 16.\n" -"Default value is 2.\n" -"After change, it will be applied at next App start." -msgstr "" -"Die Anzahl der für die App verfügbaren Qthreads.\n" -"Eine größere Anzahl kann die Jobs, \n" -"anhängig von der Geschwindigkeit Ihres Computers, schneller ausführen.\n" -"Kann einen Wert zwischen 2 und 16 haben.\n" -"Der Standardwert ist 2.\n" -"Nach dem Ändern wird es beim nächsten Start der App angewendet." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:230 -msgid "Geo Tolerance" -msgstr "Geo-Toleranz" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:232 -msgid "" -"This value can counter the effect of the Circle Steps\n" -"parameter. Default value is 0.005.\n" -"A lower value will increase the detail both in image\n" -"and in Gcode for the circles, with a higher cost in\n" -"performance. Higher value will provide more\n" -"performance at the expense of level of detail." -msgstr "" -"This value can counter the effect of the Circle Steps\n" -"parameter. Default value is 0.005.\n" -"A lower value will increase the detail both in image\n" -"and in Gcode for the circles, with a higher cost in\n" -"performance. Higher value will provide more\n" -"performance at the expense of level of detail." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:252 -msgid "Save Settings" -msgstr "Einstellungen speichern" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:256 -msgid "Save Compressed Project" -msgstr "Speichern Sie das komprimierte Projekt" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:258 -msgid "" -"Whether to save a compressed or uncompressed project.\n" -"When checked it will save a compressed FlatCAM project." -msgstr "" -"Gibt an, ob ein komprimiertes oder unkomprimiertes Projekt gespeichert " -"werden soll.\n" -"Wenn diese Option aktiviert ist, wird ein komprimiertes FlatCAM-Projekt " -"gespeichert." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:267 -msgid "Compression" -msgstr "Kompression" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:269 -msgid "" -"The level of compression used when saving\n" -"a FlatCAM project. Higher value means better compression\n" -"but require more RAM usage and more processing time." -msgstr "" -"Die beim Speichern verwendete Komprimierungsstufe\n" -"ein FlatCAM-Projekt. Ein höherer Wert bedeutet eine bessere Komprimierung\n" -"erfordern jedoch mehr RAM-Auslastung und mehr Verarbeitungszeit." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:280 -msgid "Enable Auto Save" -msgstr "Aktiv. Sie die auto Speicherung" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:282 -msgid "" -"Check to enable the autosave feature.\n" -"When enabled, the application will try to save a project\n" -"at the set interval." -msgstr "" -"Aktivieren Sie diese Option, um die automatische Speicherfunktion zu " -"aktivieren.\n" -"Wenn diese Option aktiviert ist, versucht die Anwendung, ein Projekt zu " -"speichern\n" -"im eingestellten Intervall." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:292 -msgid "Interval" -msgstr "Intervall" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:294 -msgid "" -"Time interval for autosaving. In milliseconds.\n" -"The application will try to save periodically but only\n" -"if the project was saved manually at least once.\n" -"While active, some operations may block this feature." -msgstr "" -"Zeitintervall für die automatische Speicherung. In Millisekunden.\n" -"Die Anwendung versucht regelmäßig, aber nur zu speichern\n" -"wenn das Projekt mindestens einmal manuell gespeichert wurde.\n" -"Während der Aktivierung können einige Vorgänge diese Funktion blockieren." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:310 -msgid "Text to PDF parameters" -msgstr "Text zu PDF-Parametern" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:312 -msgid "Used when saving text in Code Editor or in FlatCAM Document objects." -msgstr "" -"Wird beim Speichern von Text im Code-Editor oder in FlatCAM-Dokumentobjekten " -"verwendet." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:321 -msgid "Top Margin" -msgstr "Oberer Rand" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:323 -msgid "Distance between text body and the top of the PDF file." -msgstr "Abstand zwischen Textkörper und dem oberen Rand der PDF-Datei." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:334 -msgid "Bottom Margin" -msgstr "Unterer Rand" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:336 -msgid "Distance between text body and the bottom of the PDF file." -msgstr "Abstand zwischen Textkörper und dem unteren Rand der PDF-Datei." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:347 -msgid "Left Margin" -msgstr "Linker Rand" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:349 -msgid "Distance between text body and the left of the PDF file." -msgstr "Abstand zwischen Textkörper und der linken Seite der PDF-Datei." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:360 -msgid "Right Margin" -msgstr "Rechter Rand" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:362 -msgid "Distance between text body and the right of the PDF file." -msgstr "Abstand zwischen Textkörper und der rechten Seite der PDF-Datei." - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:26 -msgid "GUI Preferences" -msgstr "GUI-Einstellungen" - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:36 -msgid "Theme" -msgstr "Thema" - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:38 -msgid "" -"Select a theme for the application.\n" -"It will theme the plot area." -msgstr "" -"Wählen Sie ein Thema für die Anwendung.\n" -"Es wird den Handlungsbereich thematisieren." - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:43 -msgid "Light" -msgstr "Licht" - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:44 -msgid "Dark" -msgstr "Dunkel" - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:51 -msgid "Use Gray Icons" -msgstr "Verwenden Sie graue Symbole" - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:53 -msgid "" -"Check this box to use a set of icons with\n" -"a lighter (gray) color. To be used when a\n" -"full dark theme is applied." -msgstr "" -"Aktivieren Sie dieses Kontrollkästchen, um eine Reihe von Symbolen mit zu " -"verwenden\n" -"eine hellere (graue) Farbe. Zu verwenden, wenn a\n" -"Volldunkles Thema wird angewendet." - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:73 -msgid "Layout" -msgstr "Layout" - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:75 -msgid "" -"Select a layout for the application.\n" -"It is applied immediately." -msgstr "" -"Wählen Sie ein Layout für die Anwendung.\n" -"Es wird sofort angewendet." - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:95 -msgid "Style" -msgstr "Stil" - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:97 -msgid "" -"Select a style for the application.\n" -"It will be applied at the next app start." -msgstr "" -"Wählen Sie einen Stil für die Anwendung.\n" -"Es wird beim nächsten App-Start angewendet." - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:111 -msgid "Activate HDPI Support" -msgstr "Aktivieren Sie die HDPI-Unterstützung" - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:113 -msgid "" -"Enable High DPI support for the application.\n" -"It will be applied at the next app start." -msgstr "" -"Aktivieren Sie die Unterstützung für hohe DPI für die Anwendung.\n" -"Es wird beim nächsten App-Start angewendet." - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:127 -msgid "Display Hover Shape" -msgstr "Schwebeflugform anzeigen" - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:129 -msgid "" -"Enable display of a hover shape for the application objects.\n" -"It is displayed whenever the mouse cursor is hovering\n" -"over any kind of not-selected object." -msgstr "" -"Aktivieren Sie die Anzeige einer Schwebeform für die Anwendungsobjekte.\n" -"Es wird angezeigt, wenn der Mauszeiger schwebt\n" -"über jede Art von nicht ausgewähltem Objekt." - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:136 -msgid "Display Selection Shape" -msgstr "Auswahlform anzeigen" - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:138 -msgid "" -"Enable the display of a selection shape for the application objects.\n" -"It is displayed whenever the mouse selects an object\n" -"either by clicking or dragging mouse from left to right or\n" -"right to left." -msgstr "" -"Aktivieren Sie die Anzeige einer Auswahlform für die Anwendungsobjekte.\n" -"Es wird angezeigt, wenn die Maus ein Objekt auswählt\n" -"entweder durch Klicken oder Ziehen der Maus von links nach rechts oder\n" -"rechts nach links." - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:151 -msgid "Left-Right Selection Color" -msgstr "Links-Rechts-Auswahlfarbe" - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:156 -msgid "Set the line color for the 'left to right' selection box." -msgstr "" -"Legen Sie die Linienfarbe für das Auswahlfeld \"von links nach rechts\" fest." - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:165 -msgid "" -"Set the fill color for the selection box\n" -"in case that the selection is done from left to right.\n" -"First 6 digits are the color and the last 2\n" -"digits are for alpha (transparency) level." -msgstr "" -"Legen Sie die Füllfarbe für das Auswahlfeld fest\n" -"falls die Auswahl von links nach rechts erfolgt.\n" -"Die ersten 6 Ziffern sind die Farbe und die letzten 2\n" -"Ziffern sind für Alpha (Transparenz)." - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:178 -msgid "Set the fill transparency for the 'left to right' selection box." -msgstr "" -"Legen Sie die Füllungstransparenz für das Auswahlfeld \"von links nach rechts" -"\" fest." - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:191 -msgid "Right-Left Selection Color" -msgstr "Rechts-Links-Auswahlfarbe" - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:197 -msgid "Set the line color for the 'right to left' selection box." -msgstr "" -"Legen Sie die Linienfarbe für das Auswahlfeld 'von rechts nach links' fest." - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:207 -msgid "" -"Set the fill color for the selection box\n" -"in case that the selection is done from right to left.\n" -"First 6 digits are the color and the last 2\n" -"digits are for alpha (transparency) level." -msgstr "" -"Legen Sie die Füllfarbe für das Auswahlfeld fest\n" -"falls die Auswahl von rechts nach links erfolgt.\n" -"Die ersten 6 Ziffern sind die Farbe und die letzten 2\n" -"Ziffern sind für Alpha (Transparenz)." - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:220 -msgid "Set the fill transparency for selection 'right to left' box." -msgstr "" -"Legen Sie die Füllungstransparenz für die Auswahl von rechts nach links fest." - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:236 -msgid "Editor Color" -msgstr "Editorfarbe" - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:240 -msgid "Drawing" -msgstr "Zeichnung" - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:242 -msgid "Set the color for the shape." -msgstr "Legen Sie die Farbe für die Form fest." - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:250 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:275 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:311 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:258 -#: AppTools/ToolIsolation.py:494 AppTools/ToolNCC.py:539 -#: AppTools/ToolPaint.py:455 -msgid "Selection" -msgstr "Auswahl" - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:252 -msgid "Set the color of the shape when selected." -msgstr "Legt die Farbe der Form fest, wenn sie ausgewählt wird." - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:268 -msgid "Project Items Color" -msgstr "Projektelemente Farbe" - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:272 -msgid "Enabled" -msgstr "Aktiviert" - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:274 -msgid "Set the color of the items in Project Tab Tree." -msgstr "Legen Sie die Farbe der Elemente im Projektregisterbaum fest." - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:281 -msgid "Disabled" -msgstr "Deaktiviert" - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:283 -msgid "" -"Set the color of the items in Project Tab Tree,\n" -"for the case when the items are disabled." -msgstr "" -"Legen Sie die Farbe der Elemente in der Projektregisterkarte fest.\n" -"für den Fall, wenn die Elemente deaktiviert sind." - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:292 -msgid "Project AutoHide" -msgstr "Projekt autoausblenden" - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:294 -msgid "" -"Check this box if you want the project/selected/tool tab area to\n" -"hide automatically when there are no objects loaded and\n" -"to show whenever a new object is created." -msgstr "" -"Aktivieren Sie dieses Kontrollkästchen, wenn \n" -"der Bereich Projekt / Ausgewähltes / Werkzeugregister \n" -"angezeigt werden soll automatisch ausblenden, wenn \n" -"keine Objekte geladen sind und anzeigen, wenn ein \n" -"neues Objekt erstellt wird." - -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:28 -msgid "Geometry Adv. Options" -msgstr "Geometrie Erw. Optionen" - -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:36 -msgid "" -"A list of Geometry advanced parameters.\n" -"Those parameters are available only for\n" -"Advanced App. Level." -msgstr "" -"Eine Liste der erweiterten Geometrieparameter.\n" -"Diese Parameter sind nur für verfügbar\n" -"Erweiterte App. Niveau." - -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:46 -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:112 -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:134 -#: AppTools/ToolCalibration.py:125 AppTools/ToolSolderPaste.py:236 -msgid "Toolchange X-Y" -msgstr "Werkzeugwechsel X, Y" - -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:58 -msgid "" -"Height of the tool just after starting the work.\n" -"Delete the value if you don't need this feature." -msgstr "" -"Höhe des Werkzeugs unmittelbar nach Beginn der Arbeit.\n" -"Löschen Sie den Wert, wenn Sie diese Funktion nicht benötigen." - -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:161 -msgid "Segment X size" -msgstr "Segment X Größe" - -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:163 -msgid "" -"The size of the trace segment on the X axis.\n" -"Useful for auto-leveling.\n" -"A value of 0 means no segmentation on the X axis." -msgstr "" -"Die Größe des Trace-Segments auf der X-Achse.\n" -"Nützlich für die automatische Nivellierung.\n" -"Ein Wert von 0 bedeutet keine Segmentierung auf der X-Achse." - -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:177 -msgid "Segment Y size" -msgstr "Segment Y Größe" - -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:179 -msgid "" -"The size of the trace segment on the Y axis.\n" -"Useful for auto-leveling.\n" -"A value of 0 means no segmentation on the Y axis." -msgstr "" -"Die Größe des Trace-Segments auf der Y-Achse.\n" -"Nützlich für die automatische Nivellierung.\n" -"Ein Wert von 0 bedeutet keine Segmentierung auf der Y-Achse." - -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:200 -msgid "Area Exclusion" -msgstr "Gebietsausschluss" - -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:202 -msgid "" -"Area exclusion parameters.\n" -"Those parameters are available only for\n" -"Advanced App. Level." -msgstr "" -"Bereichsausschlussparameter.\n" -"Diese Parameter sind nur für verfügbar\n" -"Erweiterte App. Niveau." - -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:209 -msgid "Exclusion areas" -msgstr "Ausschlussbereiche" - -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:220 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:293 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:322 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:286 -#: AppTools/ToolIsolation.py:540 AppTools/ToolNCC.py:578 -#: AppTools/ToolPaint.py:521 -msgid "Shape" -msgstr "Form" - -#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:33 -msgid "A list of Geometry Editor parameters." -msgstr "Eine Liste der Geometry Editor-Parameter." - -#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:43 -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:174 -msgid "" -"Set the number of selected geometry\n" -"items above which the utility geometry\n" -"becomes just a selection rectangle.\n" -"Increases the performance when moving a\n" -"large number of geometric elements." -msgstr "" -"Legen Sie die Anzahl der ausgewählten Geometrien fest\n" -"Elemente, über denen die Nutzgeometrie\n" -"wird nur ein Auswahlrechteck.\n" -"Erhöht die Leistung beim Bewegen von a\n" -"große Anzahl von geometrischen Elementen." - -#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:58 -msgid "" -"Milling type:\n" -"- climb / best for precision milling and to reduce tool usage\n" -"- conventional / useful when there is no backlash compensation" -msgstr "" -"Fräsart:\n" -"- Besteigung für präzises Fräsen und zur Verringerung des " -"Werkzeugverbrauchs\n" -"- konventionell / nützlich, wenn kein Spielausgleich vorliegt" - -#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:27 -msgid "Geometry General" -msgstr "Geometrie Allgemein" - -#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:59 -msgid "" -"The number of circle steps for Geometry \n" -"circle and arc shapes linear approximation." -msgstr "" -"Die Anzahl der Kreisschritte für die Geometrie\n" -"Kreis- und Bogenformen lineare Annäherung." - -#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:73 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:41 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:41 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:48 -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:42 -msgid "Tools Dia" -msgstr "Werkzeugdurchmesser" - -#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:75 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:108 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:43 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:43 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:50 -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:44 -msgid "" -"Diameters of the tools, separated by comma.\n" -"The value of the diameter has to use the dot decimals separator.\n" -"Valid values: 0.3, 1.0" -msgstr "" -"Durchmesser der Werkzeuge, durch Komma getrennt.\n" -"Der Wert des Durchmessers muss das Punkt-Dezimal-Trennzeichen verwenden.\n" -"Gültige Werte: 0.3, 1.0" - -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:29 -msgid "Geometry Options" -msgstr "Geometrieoptionen" - -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:37 -msgid "" -"Create a CNC Job object\n" -"tracing the contours of this\n" -"Geometry object." -msgstr "" -"Erstellen Sie ein CNC-Auftragsobjekt\n" -"die Konturen davon nachzeichnen\n" -"Geometrieobjekt." - -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:81 -msgid "Depth/Pass" -msgstr "Tiefe / Pass" - -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:83 -msgid "" -"The depth to cut on each pass,\n" -"when multidepth is enabled.\n" -"It has positive value although\n" -"it is a fraction from the depth\n" -"which has negative value." -msgstr "" -"Die Tiefe, die bei jedem Durchlauf geschnitten werden muss,\n" -"Wenn Mehrere Tiefe aktiviert ist.\n" -"Es hat zwar einen positiven Wert\n" -"es ist ein Bruch aus der Tiefe\n" -"was einen negativen Wert hat." - -#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:27 -msgid "Gerber Adv. Options" -msgstr "Erweiterte Optionen von Gerber" - -#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:33 -msgid "" -"A list of Gerber advanced parameters.\n" -"Those parameters are available only for\n" -"Advanced App. Level." -msgstr "" -"Eine Liste der erweiterten Gerber-Parameter.\n" -"Diese Parameter sind nur für verfügbar\n" -"Fortgeschrittene Anwendungsebene." - -#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:43 -msgid "\"Follow\"" -msgstr "\"Folgen\"" - -#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:52 -msgid "Table Show/Hide" -msgstr "Tabelle anzeigen / ausblenden" - -#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:54 -msgid "" -"Toggle the display of the Gerber Apertures Table.\n" -"Also, on hide, it will delete all mark shapes\n" -"that are drawn on canvas." -msgstr "" -"Anzeige der Gerber-Blendentabelle umschalten.\n" -"Beim Ausblenden werden auch alle Markierungsformen gelöscht\n" -"das sind auf leinwand gezeichnet." - -#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:67 -#: AppObjects/FlatCAMGerber.py:391 AppTools/ToolCopperThieving.py:1026 -#: AppTools/ToolCopperThieving.py:1215 AppTools/ToolCopperThieving.py:1227 -#: AppTools/ToolIsolation.py:1593 AppTools/ToolNCC.py:2079 -#: AppTools/ToolNCC.py:2190 AppTools/ToolNCC.py:2205 AppTools/ToolNCC.py:3163 -#: AppTools/ToolNCC.py:3268 AppTools/ToolNCC.py:3283 AppTools/ToolNCC.py:3549 -#: AppTools/ToolNCC.py:3650 AppTools/ToolNCC.py:3665 camlib.py:992 -msgid "Buffering" -msgstr "Pufferung" - -#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:69 -msgid "" -"Buffering type:\n" -"- None --> best performance, fast file loading but no so good display\n" -"- Full --> slow file loading but good visuals. This is the default.\n" -"<>: Don't change this unless you know what you are doing !!!" -msgstr "" -"Puffertyp:\n" -"- Keine -> beste Leistung, schnelles Laden von Dateien, aber keine so gute " -"Anzeige\n" -"- Voll -> langsames Laden von Dateien, aber gute Grafik. Dies ist die " -"Standardeinstellung.\n" -"<< WARNUNG >>: Ändern Sie dies nur, wenn Sie wissen, was Sie tun !!!" - -#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:74 -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:88 -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:196 -#: AppTools/ToolFiducials.py:204 AppTools/ToolFilm.py:238 -#: AppTools/ToolProperties.py:452 AppTools/ToolProperties.py:455 -#: AppTools/ToolProperties.py:458 AppTools/ToolProperties.py:483 -msgid "None" -msgstr "Keiner" - -#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:80 -msgid "Simplify" -msgstr "Vereinfachen" - -#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:82 -msgid "" -"When checked all the Gerber polygons will be\n" -"loaded with simplification having a set tolerance.\n" -"<>: Don't change this unless you know what you are doing !!!" -msgstr "" -"Wenn diese Option aktiviert ist, werden alle Gerber-Polygone angezeigt\n" -"geladen mit Vereinfachung mit einer festgelegten Toleranz.\n" -"<< WARNUNG >>: Ändern Sie dies nur, wenn Sie wissen, was Sie tun !!!" - -#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:89 -msgid "Tolerance" -msgstr "Toleranz" - -#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:90 -msgid "Tolerance for polygon simplification." -msgstr "Toleranz für Polygonvereinfachung." - -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:33 -msgid "A list of Gerber Editor parameters." -msgstr "Eine Liste der Gerber-Editor-Parameter." - -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:43 -msgid "" -"Set the number of selected Gerber geometry\n" -"items above which the utility geometry\n" -"becomes just a selection rectangle.\n" -"Increases the performance when moving a\n" -"large number of geometric elements." -msgstr "" -"Stellen Sie die Anzahl der ausgewählten Gerber-Geometrie ein\n" -"Elemente, über denen die Nutzgeometrie\n" -"wird nur ein Auswahlrechteck.\n" -"Erhöht die Leistung beim Bewegen von a\n" -"große Anzahl von geometrischen Elementen." - -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:56 -msgid "New Aperture code" -msgstr "Neuer Blendencode" - -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:69 -msgid "New Aperture size" -msgstr "Standard Blendenöffnung" - -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:71 -msgid "Size for the new aperture" -msgstr "Wert für die neue Blende" - -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:82 -msgid "New Aperture type" -msgstr "Neuer Blendentyp" - -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:84 -msgid "" -"Type for the new aperture.\n" -"Can be 'C', 'R' or 'O'." -msgstr "" -"Geben Sie für die neue Blende ein.\n" -"Kann \"C\", \"R\" oder \"O\" sein." - -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:106 -msgid "Aperture Dimensions" -msgstr "Öffnungsmaße" - -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:117 -msgid "Linear Pad Array" -msgstr "Lineares Pad-Array" - -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:161 -msgid "Circular Pad Array" -msgstr "Kreisschlitz-Array" - -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:197 -msgid "Distance at which to buffer the Gerber element." -msgstr "Abstand, in dem das Gerber-Element gepuffert werden soll." - -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:206 -msgid "Scale Tool" -msgstr "Skalierungswerk" - -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:212 -msgid "Factor to scale the Gerber element." -msgstr "Faktor zum Skalieren des Gerber-Elements." - -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:225 -msgid "Threshold low" -msgstr "Schwelle niedrig" - -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:227 -msgid "Threshold value under which the apertures are not marked." -msgstr "Schwellenwert, unter dem die Blenden nicht markiert sind." - -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:237 -msgid "Threshold high" -msgstr "Schwelle hoch" - -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:239 -msgid "Threshold value over which the apertures are not marked." -msgstr "Schwellenwert, über dem die Blenden nicht markiert sind." - -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:27 -msgid "Gerber Export" -msgstr "Gerber Export" - -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:33 -msgid "" -"The parameters set here are used in the file exported\n" -"when using the File -> Export -> Export Gerber menu entry." -msgstr "" -"Die hier eingestellten Parameter werden in der exportierten Datei verwendet\n" -"bei Verwendung des Menüeintrags Datei -> Exportieren -> Gerber exportieren." - -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:44 -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:50 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:84 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:90 -msgid "The units used in the Gerber file." -msgstr "Die in der Gerber-Datei verwendeten Einheiten." - -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:58 -msgid "" -"The number of digits in the whole part of the number\n" -"and in the fractional part of the number." -msgstr "" -"Die Anzahl der Ziffern im gesamten Teil der Nummer\n" -"und im Bruchteil der Zahl." - -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:71 -msgid "" -"This numbers signify the number of digits in\n" -"the whole part of Gerber coordinates." -msgstr "" -"Diese Zahlen geben die Anzahl der Ziffern in an\n" -"der ganze Teil von Gerber koordiniert." - -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:87 -msgid "" -"This numbers signify the number of digits in\n" -"the decimal part of Gerber coordinates." -msgstr "" -"Diese Zahlen geben die Anzahl der Ziffern in an\n" -"Der Dezimalteil der Gerber-Koordinaten." - -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:99 -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:109 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:100 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:110 -msgid "" -"This sets the type of Gerber zeros.\n" -"If LZ then Leading Zeros are removed and\n" -"Trailing Zeros are kept.\n" -"If TZ is checked then Trailing Zeros are removed\n" -"and Leading Zeros are kept." -msgstr "" -"Dies legt den Typ der Gerber-Nullen fest.\n" -"Wenn LZ, werden Leading Zeros und entfernt\n" -"Nachgestellte Nullen werden beibehalten.\n" -"Wenn TZ aktiviert ist, werden nachfolgende Nullen entfernt\n" -"und führende Nullen werden beibehalten." - -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:27 -msgid "Gerber General" -msgstr "Geometrie Allgemein" - -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:61 -msgid "" -"The number of circle steps for Gerber \n" -"circular aperture linear approximation." -msgstr "" -"Die Anzahl der Kreisschritte für Gerber\n" -"lineare Approximation mit kreisförmiger Apertur." - -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:73 -msgid "Default Values" -msgstr "Standardwerte" - -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:75 -msgid "" -"Those values will be used as fallback values\n" -"in case that they are not found in the Gerber file." -msgstr "" -"Diese Werte werden als Ersatzwerte verwendet\n" -"für den Fall, dass sie nicht in der Gerber-Datei gefunden werden." - -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:126 -msgid "Clean Apertures" -msgstr "Reinigen Sie die Öffnungen" - -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:128 -msgid "" -"Will remove apertures that do not have geometry\n" -"thus lowering the number of apertures in the Gerber object." -msgstr "" -"Entfernt Öffnungen ohne Geometrie\n" -"Dadurch wird die Anzahl der Öffnungen im Gerber-Objekt verringert." - -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:134 -msgid "Polarity change buffer" -msgstr "Polaritätswechselpuffer" - -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:136 -msgid "" -"Will apply extra buffering for the\n" -"solid geometry when we have polarity changes.\n" -"May help loading Gerber files that otherwise\n" -"do not load correctly." -msgstr "" -"Wendet zusätzliche Pufferung für das an\n" -"Festkörpergeometrie, wenn sich die Polarität ändert.\n" -"Kann helfen, Gerber-Dateien zu laden, die sonst\n" -"nicht richtig laden." - -#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:29 -msgid "Gerber Options" -msgstr "Gerber-Optionen" - -# Don´t know Copper Thieving -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:27 -msgid "Copper Thieving Tool Options" -msgstr "Copper Thieving Tool Optionen" - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:39 -msgid "" -"A tool to generate a Copper Thieving that can be added\n" -"to a selected Gerber file." -msgstr "" -"Ein Werkzeug um Copper Thieving durchzuführen, das auf\n" -"ein ausgewähltes Gerber File angewendet werden kann." - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:47 -msgid "Number of steps (lines) used to interpolate circles." -msgstr "Anzahl der Schritte (Linien) um Kreise zu interpolieren." - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:57 -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:261 -#: AppTools/ToolCopperThieving.py:100 AppTools/ToolCopperThieving.py:435 -msgid "Clearance" -msgstr "Freistellung" - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:59 -msgid "" -"This set the distance between the copper Thieving components\n" -"(the polygon fill may be split in multiple polygons)\n" -"and the copper traces in the Gerber file." -msgstr "" -"Diese Auswahl definiert den Abstand zwischen den \"Copper Thieving\" " -"Komponenten.\n" -"und den Kupferverbindungen im Gerber File (möglicherweise wird hierbei ein " -"Polygon\n" -"in mehrere aufgeteilt." - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:86 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309 -#: AppTools/ToolCopperThieving.py:129 AppTools/ToolNCC.py:535 -#: AppTools/ToolNCC.py:1324 AppTools/ToolNCC.py:1655 AppTools/ToolNCC.py:1948 -#: AppTools/ToolNCC.py:2012 AppTools/ToolNCC.py:3027 AppTools/ToolNCC.py:3036 -#: defaults.py:419 tclCommands/TclCommandCopperClear.py:190 -msgid "Itself" -msgstr "Selbst" - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:87 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:285 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280 -#: AppTools/ToolCopperThieving.py:130 AppTools/ToolIsolation.py:504 -#: AppTools/ToolIsolation.py:1297 AppTools/ToolIsolation.py:1671 -#: AppTools/ToolNCC.py:535 AppTools/ToolNCC.py:1334 AppTools/ToolNCC.py:1668 -#: AppTools/ToolNCC.py:1964 AppTools/ToolNCC.py:2019 AppTools/ToolPaint.py:485 -#: AppTools/ToolPaint.py:945 AppTools/ToolPaint.py:1471 -msgid "Area Selection" -msgstr "Bereichsauswahl" - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:88 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:285 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280 -#: AppTools/ToolCopperThieving.py:131 AppTools/ToolDblSided.py:216 -#: AppTools/ToolIsolation.py:504 AppTools/ToolIsolation.py:1711 -#: AppTools/ToolNCC.py:535 AppTools/ToolNCC.py:1684 AppTools/ToolNCC.py:1970 -#: AppTools/ToolNCC.py:2027 AppTools/ToolNCC.py:2408 AppTools/ToolNCC.py:2656 -#: AppTools/ToolNCC.py:3072 AppTools/ToolPaint.py:485 AppTools/ToolPaint.py:930 -#: AppTools/ToolPaint.py:1487 tclCommands/TclCommandCopperClear.py:192 -#: tclCommands/TclCommandPaint.py:166 -msgid "Reference Object" -msgstr "Ref. Objekt" - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:90 -#: AppTools/ToolCopperThieving.py:133 -msgid "Reference:" -msgstr "Referenz:" - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:92 -msgid "" -"- 'Itself' - the copper Thieving extent is based on the object extent.\n" -"- 'Area Selection' - left mouse click to start selection of the area to be " -"filled.\n" -"- 'Reference Object' - will do copper thieving within the area specified by " -"another object." -msgstr "" -"- 'Selbst' - die 'Copper Thieving' basiert auf der Objektausdehnung.\n" -"- 'Bereichsauswahl' - Klicken Sie mit der linken Maustaste, um den zu " -"füllenden Bereich auszuwählen.\n" -"- 'Referenzobjekt' - 'Copper Thieving' innerhalb des von einem anderen " -"Objekt angegebenen Bereichs." - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:101 -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:76 -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:188 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:76 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:190 -#: AppTools/ToolCopperThieving.py:175 AppTools/ToolExtractDrills.py:102 -#: AppTools/ToolExtractDrills.py:240 AppTools/ToolPunchGerber.py:113 -#: AppTools/ToolPunchGerber.py:268 -msgid "Rectangular" -msgstr "Rechteckig" - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:102 -#: AppTools/ToolCopperThieving.py:176 -msgid "Minimal" -msgstr "Minimal" - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:104 -#: AppTools/ToolCopperThieving.py:178 AppTools/ToolFilm.py:94 -msgid "Box Type:" -msgstr "Box-Typ:" - -# Double -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:106 -#: AppTools/ToolCopperThieving.py:180 -msgid "" -"- 'Rectangular' - the bounding box will be of rectangular shape.\n" -"- 'Minimal' - the bounding box will be the convex hull shape." -msgstr "" -"- 'Rechteckig' - Der Begrenzungsrahmen hat eine rechteckige Form.\n" -"- 'Minimal' - Der Begrenzungsrahmen ist die konvexe Rumpfform." - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:120 -#: AppTools/ToolCopperThieving.py:196 -msgid "Dots Grid" -msgstr "Punktmuster" - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:121 -#: AppTools/ToolCopperThieving.py:197 -msgid "Squares Grid" -msgstr "Quadratraster" - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:122 -#: AppTools/ToolCopperThieving.py:198 -msgid "Lines Grid" -msgstr "Linienraster" - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:124 -#: AppTools/ToolCopperThieving.py:200 -msgid "Fill Type:" -msgstr "Füllart:" - -# Double -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:126 -#: AppTools/ToolCopperThieving.py:202 -msgid "" -"- 'Solid' - copper thieving will be a solid polygon.\n" -"- 'Dots Grid' - the empty area will be filled with a pattern of dots.\n" -"- 'Squares Grid' - the empty area will be filled with a pattern of squares.\n" -"- 'Lines Grid' - the empty area will be filled with a pattern of lines." -msgstr "" -"- 'Solide' - 'Copper Thieving' wird ein solides Polygon sein.\n" -"- 'Punktraster' - Der leere Bereich wird mit einem Punktmuster gefüllt.\n" -"- 'Quadratraster ' - Der leere Bereich wird mit einem Quadratmuster " -"gefüllt.\n" -"- 'Linienraster' - Der leere Bereich wird mit einem Linienmuster gefüllt." - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:134 -#: AppTools/ToolCopperThieving.py:221 -msgid "Dots Grid Parameters" -msgstr "Punktmuster Parameter" - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:140 -#: AppTools/ToolCopperThieving.py:227 -msgid "Dot diameter in Dots Grid." -msgstr "Punktdurchmesser im Punktmuster." - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:151 -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:180 -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:209 -#: AppTools/ToolCopperThieving.py:238 AppTools/ToolCopperThieving.py:278 -#: AppTools/ToolCopperThieving.py:318 -msgid "Spacing" -msgstr "Abstand" - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:153 -#: AppTools/ToolCopperThieving.py:240 -msgid "Distance between each two dots in Dots Grid." -msgstr "Abstand zwischen zwei Punkten im Punktmuster." - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:163 -#: AppTools/ToolCopperThieving.py:261 -msgid "Squares Grid Parameters" -msgstr "Quadratraster Parameter" - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:169 -#: AppTools/ToolCopperThieving.py:267 -msgid "Square side size in Squares Grid." -msgstr "Quadratlängen im Quadratraster." - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:182 -#: AppTools/ToolCopperThieving.py:280 -msgid "Distance between each two squares in Squares Grid." -msgstr "Abstand zwischen zwei Quadraten im Quadratraster." - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:192 -#: AppTools/ToolCopperThieving.py:301 -msgid "Lines Grid Parameters" -msgstr "Schraffurparameter" - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:198 -#: AppTools/ToolCopperThieving.py:307 -msgid "Line thickness size in Lines Grid." -msgstr "Liniendicke." - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:211 -#: AppTools/ToolCopperThieving.py:320 -msgid "Distance between each two lines in Lines Grid." -msgstr "Linienabstand." - -# What is a Robber Bar? -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:221 -#: AppTools/ToolCopperThieving.py:358 -msgid "Robber Bar Parameters" -msgstr "Robber Bar-Parameter" - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:223 -#: AppTools/ToolCopperThieving.py:360 -msgid "" -"Parameters used for the robber bar.\n" -"Robber bar = copper border to help in pattern hole plating." -msgstr "" -"Parameter für die Robber Bar\n" -"Eine Robber Bar ist ein Kupferrand bei Lochmustern." - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:231 -#: AppTools/ToolCopperThieving.py:368 -msgid "Bounding box margin for robber bar." -msgstr "Begrenzungsrahmenrand der Robber Bar." - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:242 -#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:42 -#: AppTools/ToolCopperThieving.py:379 AppTools/ToolCorners.py:122 -#: AppTools/ToolEtchCompensation.py:152 -msgid "Thickness" -msgstr "Dicke" - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:244 -#: AppTools/ToolCopperThieving.py:381 -msgid "The robber bar thickness." -msgstr "Dicke der Robber Bar." - -# What is pattern plating? -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:254 -#: AppTools/ToolCopperThieving.py:412 -msgid "Pattern Plating Mask" -msgstr "Musterbeschichtungsmaske" - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:256 -#: AppTools/ToolCopperThieving.py:414 -msgid "Generate a mask for pattern plating." -msgstr "Erzeugen Sie eine Maske für die Musterbeschichtung." - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:263 -#: AppTools/ToolCopperThieving.py:437 -msgid "" -"The distance between the possible copper thieving elements\n" -"and/or robber bar and the actual openings in the mask." -msgstr "" -"Der Abstand zwischen den Copper Thieving Elementen \n" -"und/oder der Robber Bar und den tatsächlichen Öffnungen in der Maske." - -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:27 -msgid "Calibration Tool Options" -msgstr "Kalibirierungs-Tool-Optionen" - -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:38 -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:38 -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:38 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:38 -#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:37 -#: AppTools/ToolCopperThieving.py:95 AppTools/ToolCorners.py:117 -#: AppTools/ToolFiducials.py:154 -msgid "Parameters used for this tool." -msgstr "Parameter für dieses Werkzeug." - -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:43 -#: AppTools/ToolCalibration.py:181 -msgid "Source Type" -msgstr "Quellenart" - -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:44 -#: AppTools/ToolCalibration.py:182 -msgid "" -"The source of calibration points.\n" -"It can be:\n" -"- Object -> click a hole geo for Excellon or a pad for Gerber\n" -"- Free -> click freely on canvas to acquire the calibration points" -msgstr "" -"Die Quelle für Kalibrierungspunkte\n" -"Das können sein:\n" -"- \"Objekt\" klicken Sie auf eine Lochgeometrie oder ein Pad im Gerber\n" -"- \"Frei\" klicken Sie frei auf der Leinwand um einen Kalibierungspunkt zu " -"setzen" - -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:49 -#: AppTools/ToolCalibration.py:187 -msgid "Free" -msgstr "Frei" - -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:63 -#: AppTools/ToolCalibration.py:76 -msgid "Height (Z) for travelling between the points." -msgstr "Die Höhe (Z) für den Weg zwischen Pads." - -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:75 -#: AppTools/ToolCalibration.py:88 -msgid "Verification Z" -msgstr "Z Überprüfung" - -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:77 -#: AppTools/ToolCalibration.py:90 -msgid "Height (Z) for checking the point." -msgstr "Höhe (Z) um den Punkt zu prüfen." - -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:89 -#: AppTools/ToolCalibration.py:102 -msgid "Zero Z tool" -msgstr "Z Höhen Werkzeug" - -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:91 -#: AppTools/ToolCalibration.py:104 -msgid "" -"Include a sequence to zero the height (Z)\n" -"of the verification tool." -msgstr "" -"Fügen sie eine Sequenz ein um die Höhe (Z)\n" -"des Überprüfungswerkzeugs zu nullen." - -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:100 -#: AppTools/ToolCalibration.py:113 -msgid "Height (Z) for mounting the verification probe." -msgstr "Höhe (Z) zur Installation der Überprüfungssonde." - -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:114 -#: AppTools/ToolCalibration.py:127 -msgid "" -"Toolchange X,Y position.\n" -"If no value is entered then the current\n" -"(x, y) point will be used," -msgstr "" -"Werkzeugwechsel X, Y Position.\n" -"Wenn kein Wert eingegeben wird, wird der Strom angezeigt\n" -"(x, y) Punkt wird verwendet," - -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:125 -#: AppTools/ToolCalibration.py:153 -msgid "Second point" -msgstr "Zweiter Punkt" - -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:127 -#: AppTools/ToolCalibration.py:155 -msgid "" -"Second point in the Gcode verification can be:\n" -"- top-left -> the user will align the PCB vertically\n" -"- bottom-right -> the user will align the PCB horizontally" -msgstr "" -"Der zweite Punkt bei der Gcode-Überprüfung kann sein:\n" -"- oben links -> Der Benutzer richtet die Leiterplatte vertikal aus\n" -"- rechts unten -> Der Benutzer richtet die Leiterplatte horizontal aus" - -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:131 -#: AppTools/ToolCalibration.py:159 App_Main.py:4712 -msgid "Top-Left" -msgstr "Oben links" - -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:132 -#: AppTools/ToolCalibration.py:160 App_Main.py:4713 -msgid "Bottom-Right" -msgstr "Unten rechts" - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:27 -msgid "Extract Drills Options" -msgstr "Optionen für Bohrer extrahieren" - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:42 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:42 -#: AppTools/ToolExtractDrills.py:68 AppTools/ToolPunchGerber.py:75 -msgid "Processed Pads Type" -msgstr "Verarbeitete Pads Typ" - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:44 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:44 -#: AppTools/ToolExtractDrills.py:70 AppTools/ToolPunchGerber.py:77 -msgid "" -"The type of pads shape to be processed.\n" -"If the PCB has many SMD pads with rectangular pads,\n" -"disable the Rectangular aperture." -msgstr "" -"Die Art der zu verarbeitenden Pads.\n" -"Wenn die Leiterplatte viele SMD-Pads mit rechteckigen Pads hat,\n" -"Deaktivieren Sie die rechteckige Öffnung." - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:54 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:54 -#: AppTools/ToolExtractDrills.py:80 AppTools/ToolPunchGerber.py:91 -msgid "Process Circular Pads." -msgstr "Prozessrunde Pads." - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:60 -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:162 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:60 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:164 -#: AppTools/ToolExtractDrills.py:86 AppTools/ToolExtractDrills.py:214 -#: AppTools/ToolPunchGerber.py:97 AppTools/ToolPunchGerber.py:242 -msgid "Oblong" -msgstr "Länglich" - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:62 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:62 -#: AppTools/ToolExtractDrills.py:88 AppTools/ToolPunchGerber.py:99 -msgid "Process Oblong Pads." -msgstr "Längliche Pads verarbeiten." - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:70 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:70 -#: AppTools/ToolExtractDrills.py:96 AppTools/ToolPunchGerber.py:107 -msgid "Process Square Pads." -msgstr "Quadratische Pads verarbeiten." - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:78 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:78 -#: AppTools/ToolExtractDrills.py:104 AppTools/ToolPunchGerber.py:115 -msgid "Process Rectangular Pads." -msgstr "Rechteckige Pads verarbeiten." - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:84 -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:201 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:84 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:203 -#: AppTools/ToolExtractDrills.py:110 AppTools/ToolExtractDrills.py:253 -#: AppTools/ToolProperties.py:172 AppTools/ToolPunchGerber.py:121 -#: AppTools/ToolPunchGerber.py:281 -msgid "Others" -msgstr "Andere" - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:86 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:86 -#: AppTools/ToolExtractDrills.py:112 AppTools/ToolPunchGerber.py:123 -msgid "Process pads not in the categories above." -msgstr "Prozess-Pads nicht in den oben genannten Kategorien." - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:99 -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:123 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:100 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:125 -#: AppTools/ToolExtractDrills.py:139 AppTools/ToolExtractDrills.py:156 -#: AppTools/ToolPunchGerber.py:150 AppTools/ToolPunchGerber.py:184 -msgid "Fixed Diameter" -msgstr "Fester Durchmesser" - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:100 -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:140 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:101 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:142 -#: AppTools/ToolExtractDrills.py:140 AppTools/ToolExtractDrills.py:192 -#: AppTools/ToolPunchGerber.py:151 AppTools/ToolPunchGerber.py:214 -msgid "Fixed Annular Ring" -msgstr "Fester Ring" - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:101 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:102 -#: AppTools/ToolExtractDrills.py:141 AppTools/ToolPunchGerber.py:152 -msgid "Proportional" -msgstr "Proportional" - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:107 -#: AppTools/ToolExtractDrills.py:130 -msgid "" -"The method for processing pads. Can be:\n" -"- Fixed Diameter -> all holes will have a set size\n" -"- Fixed Annular Ring -> all holes will have a set annular ring\n" -"- Proportional -> each hole size will be a fraction of the pad size" -msgstr "" -"Die Methode zur Verarbeitung von Pads. Kann sein:\n" -"- Fester Durchmesser -> Alle Löcher haben eine festgelegte Größe\n" -"- Fester Ring -> Alle Löcher haben einen festen Ring\n" -"- Proportional -> Jede Lochgröße ist ein Bruchteil der Padgröße" - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:131 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:133 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:220 -#: AppTools/ToolExtractDrills.py:164 AppTools/ToolExtractDrills.py:285 -#: AppTools/ToolPunchGerber.py:192 AppTools/ToolPunchGerber.py:308 -#: AppTools/ToolTransform.py:357 App_Main.py:9698 -msgid "Value" -msgstr "Wert" - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:133 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:135 -#: AppTools/ToolExtractDrills.py:166 AppTools/ToolPunchGerber.py:194 -msgid "Fixed hole diameter." -msgstr "Fester Lochdurchmesser." - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:142 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:144 -#: AppTools/ToolExtractDrills.py:194 AppTools/ToolPunchGerber.py:216 -msgid "" -"The size of annular ring.\n" -"The copper sliver between the hole exterior\n" -"and the margin of the copper pad." -msgstr "" -"Die Größe des Ringes.\n" -"Das Kupfersplitter zwischen dem Loch außen\n" -"und der Rand des Kupferkissens." - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:151 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:153 -#: AppTools/ToolExtractDrills.py:203 AppTools/ToolPunchGerber.py:231 -msgid "The size of annular ring for circular pads." -msgstr "Die Größe des Ringes für kreisförmige Pads." - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:164 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:166 -#: AppTools/ToolExtractDrills.py:216 AppTools/ToolPunchGerber.py:244 -msgid "The size of annular ring for oblong pads." -msgstr "Die Größe des Ringes für längliche Pads." - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:177 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:179 -#: AppTools/ToolExtractDrills.py:229 AppTools/ToolPunchGerber.py:257 -msgid "The size of annular ring for square pads." -msgstr "Die Größe des Ringes für quadratische Pads." - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:190 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:192 -#: AppTools/ToolExtractDrills.py:242 AppTools/ToolPunchGerber.py:270 -msgid "The size of annular ring for rectangular pads." -msgstr "Die Größe des Ringes für rechteckige Pads." - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:203 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:205 -#: AppTools/ToolExtractDrills.py:255 AppTools/ToolPunchGerber.py:283 -msgid "The size of annular ring for other pads." -msgstr "Die Größe des Ringes für andere Pads." - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:213 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:215 -#: AppTools/ToolExtractDrills.py:276 AppTools/ToolPunchGerber.py:299 -msgid "Proportional Diameter" -msgstr "Proportionaler Durchmesser" - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:222 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:224 -msgid "Factor" -msgstr "Faktor" - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:224 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:226 -#: AppTools/ToolExtractDrills.py:287 AppTools/ToolPunchGerber.py:310 -msgid "" -"Proportional Diameter.\n" -"The hole diameter will be a fraction of the pad size." -msgstr "" -"Proportionaler Durchmesser.\n" -"Der Lochdurchmesser beträgt einen Bruchteil der Padgröße." - -# I have no clue -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:27 -msgid "Fiducials Tool Options" -msgstr "Passermarken-Werkzeugoptionen" - -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:45 -#: AppTools/ToolFiducials.py:161 -msgid "" -"This set the fiducial diameter if fiducial type is circular,\n" -"otherwise is the size of the fiducial.\n" -"The soldermask opening is double than that." -msgstr "" -"Dies setzt den Durchmesser der Bezugsmarke wenn die Art \n" -"des Bezugspunktes kreisförmig ist, ansonsten die Größe des Bezugspunktes.\n" -"Der Ausschnitt der Lötmaske ist doppelt so groß." - -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:73 -#: AppTools/ToolFiducials.py:189 -msgid "Auto" -msgstr "Auto" - -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:74 -#: AppTools/ToolFiducials.py:190 -msgid "Manual" -msgstr "Manuell" - -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:76 -#: AppTools/ToolFiducials.py:192 -msgid "Mode:" -msgstr "Modus:" - -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:78 -msgid "" -"- 'Auto' - automatic placement of fiducials in the corners of the bounding " -"box.\n" -"- 'Manual' - manual placement of fiducials." -msgstr "" -"- \"Auto\" Die Bezugspunkte werden automatisch in den Ecken des Umrisses " -"platziert.\n" -"- \"Manuell\" Die Bezugspunkte werden manuell platziert." - -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:86 -#: AppTools/ToolFiducials.py:202 -msgid "Up" -msgstr "Hoch" - -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:87 -#: AppTools/ToolFiducials.py:203 -msgid "Down" -msgstr "Runter" - -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:90 -#: AppTools/ToolFiducials.py:206 -msgid "Second fiducial" -msgstr "Zweiter Bezugspunkt" - -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:92 -#: AppTools/ToolFiducials.py:208 -msgid "" -"The position for the second fiducial.\n" -"- 'Up' - the order is: bottom-left, top-left, top-right.\n" -"- 'Down' - the order is: bottom-left, bottom-right, top-right.\n" -"- 'None' - there is no second fiducial. The order is: bottom-left, top-right." -msgstr "" -"Die Position des zweiten Bezugspunktes\n" -"- \"Hoch\" Die Reihenfolge ist Unten-Links, Oben-Links, Oben-Rechts\n" -"- \"Runter\" Die Reihenfolge ist Untern-Links, Unten-Rechts, Oben-Rechts\n" -"- \"Keine\" Es gibt keinen zweiten Bezugspunkt, die Reihenfolge ist: Unten-" -"Links, Oben-Rechts." - -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:108 -#: AppTools/ToolFiducials.py:224 -msgid "Cross" -msgstr "Kreuzförmig" - -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:109 -#: AppTools/ToolFiducials.py:225 -msgid "Chess" -msgstr "Schachbrett" - -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:112 -#: AppTools/ToolFiducials.py:227 -msgid "Fiducial Type" -msgstr "Bezugspunktart" - -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:114 -#: AppTools/ToolFiducials.py:229 -msgid "" -"The type of fiducial.\n" -"- 'Circular' - this is the regular fiducial.\n" -"- 'Cross' - cross lines fiducial.\n" -"- 'Chess' - chess pattern fiducial." -msgstr "" -"Die Art der Bezugspunkte\n" -"\"Kreisförmig\" Der normale Bezugspunkt\n" -"\"Kreuzförmig\" Kreuzlinienbezugspunkte\n" -"\"Schachbrett\" Schachbrettförmige Bezugspunkte." - -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:123 -#: AppTools/ToolFiducials.py:238 -msgid "Line thickness" -msgstr "Liniendicke" - -#: AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py:27 -msgid "Invert Gerber Tool Options" -msgstr "Invert. Sie die Gerber-Werkzeugoptionen" - -#: AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py:33 -msgid "" -"A tool to invert Gerber geometry from positive to negative\n" -"and in revers." -msgstr "" -"Ein Werkzeug zum Konvertieren der Gerber-Geometrie von positiv nach negativ\n" -"und umgekehrt." - -#: AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py:47 -#: AppTools/ToolInvertGerber.py:93 -msgid "" -"Distance by which to avoid\n" -"the edges of the Gerber object." -msgstr "" -"Entfernung, um die vermieden werden muss\n" -"die Kanten des Gerber-Objekts." - -#: AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py:58 -#: AppTools/ToolInvertGerber.py:104 -msgid "Lines Join Style" -msgstr "Linien verbinden Stil" - -#: AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py:60 -#: AppTools/ToolInvertGerber.py:106 -msgid "" -"The way that the lines in the object outline will be joined.\n" -"Can be:\n" -"- rounded -> an arc is added between two joining lines\n" -"- square -> the lines meet in 90 degrees angle\n" -"- bevel -> the lines are joined by a third line" -msgstr "" -"Die Art und Weise, wie die Linien in der Objektkontur verbunden werden.\n" -"Kann sein:\n" -"- gerundet -> zwischen zwei Verbindungslinien wird ein Bogen eingefügt\n" -"- Quadrat -> Die Linien treffen sich in einem Winkel von 90 Grad\n" -"- Abschrägung -> Die Linien werden durch eine dritte Linie verbunden" - -#: AppGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:27 -msgid "Optimal Tool Options" -msgstr "\"Optimale\" Werkzeugoptionen" - -#: AppGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:33 -msgid "" -"A tool to find the minimum distance between\n" -"every two Gerber geometric elements" -msgstr "" -"Ein Werkzeug, um den Mindestabstand zwischen zu finden\n" -"jeweils zwei Gerber geometrische Elemente" - -#: AppGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:48 -#: AppTools/ToolOptimal.py:84 -msgid "Precision" -msgstr "Präzision" - -#: AppGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:50 -msgid "Number of decimals for the distances and coordinates in this tool." -msgstr "" -"Anzahl der Dezimalstellen für die Abstände und Koordinaten in diesem " -"Werkzeug." - -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:27 -msgid "Punch Gerber Options" -msgstr "Stanzen Sie die Gerber-Optionen" - -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:108 -#: AppTools/ToolPunchGerber.py:141 -msgid "" -"The punch hole source can be:\n" -"- Excellon Object-> the Excellon object drills center will serve as " -"reference.\n" -"- Fixed Diameter -> will try to use the pads center as reference adding " -"fixed diameter holes.\n" -"- Fixed Annular Ring -> will try to keep a set annular ring.\n" -"- Proportional -> will make a Gerber punch hole having the diameter a " -"percentage of the pad diameter." -msgstr "" -"Die Stanzlochquelle kann sein:\n" -"- Excellon-Objekt-> Das Excellon-Objektbohrzentrum dient als Referenz.\n" -"- Fester Durchmesser -> versucht, die Mitte der Pads als Referenz für Löcher " -"mit festem Durchmesser zu verwenden.\n" -"- Fixed Annular Ring -> versucht, einen festgelegten Ring zu behalten.\n" -"- Proportional -> macht ein Gerber-Stanzloch mit dem Durchmesser zu einem " -"Prozentsatz des Pad-Durchmessers." - -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:27 -msgid "QRCode Tool Options" -msgstr "QR Code-Tooloptionen" - -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:33 -msgid "" -"A tool to create a QRCode that can be inserted\n" -"into a selected Gerber file, or it can be exported as a file." -msgstr "" -"Ein Werkzeug um QR Codes zu erzeugen, um diese\n" -"in Gerber Dateien einzufügen oder als Datei zu exportieren." - -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:45 -#: AppTools/ToolQRCode.py:121 -msgid "Version" -msgstr "Version" - -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:47 -#: AppTools/ToolQRCode.py:123 -msgid "" -"QRCode version can have values from 1 (21x21 boxes)\n" -"to 40 (177x177 boxes)." -msgstr "" -"Je nach QRCode Version kann 1 (21x21 Quadrate)\n" -" bis 40 (177x177 Quadrate) angegeben werden." - -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:58 -#: AppTools/ToolQRCode.py:134 -msgid "Error correction" -msgstr "Fehlerausgleich" - -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:60 -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:71 -#: AppTools/ToolQRCode.py:136 AppTools/ToolQRCode.py:147 -#, python-format -msgid "" -"Parameter that controls the error correction used for the QR Code.\n" -"L = maximum 7%% errors can be corrected\n" -"M = maximum 15%% errors can be corrected\n" -"Q = maximum 25%% errors can be corrected\n" -"H = maximum 30%% errors can be corrected." -msgstr "" -"Dieser Parameter kontrolliert die Fehlertoleranz:\n" -"L : max. 7%% Fehler können ausgeglichen werden\n" -"M : max. 15%% Fehler können ausgeglichen werden\n" -"Q: max. 25%% Fehler können ausgeglichen werden\n" -"H : max. 30%% Fehler können ausgeglichen warden." - -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:81 -#: AppTools/ToolQRCode.py:157 -msgid "Box Size" -msgstr "Quadratgröße" - -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:83 -#: AppTools/ToolQRCode.py:159 -msgid "" -"Box size control the overall size of the QRcode\n" -"by adjusting the size of each box in the code." -msgstr "" -"Über die Quadratgröße wird die Geamtgröße\n" -"des QRCodes beeinflusst, da sie die Größe jedes einzelnen Quadrats " -"spezifiziert." - -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:94 -#: AppTools/ToolQRCode.py:170 -msgid "Border Size" -msgstr "Randdicke" - -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:96 -#: AppTools/ToolQRCode.py:172 -msgid "" -"Size of the QRCode border. How many boxes thick is the border.\n" -"Default value is 4. The width of the clearance around the QRCode." -msgstr "" -"Dicke des Rands des QRCodes in Anzahl von Boxen.\n" -"Standardwert is 4. Die Breite gibt den Raum der Freistellung um den QRCode " -"an." - -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:107 -#: AppTools/ToolQRCode.py:92 -msgid "QRCode Data" -msgstr "QRCode Daten" - -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:109 -#: AppTools/ToolQRCode.py:94 -msgid "QRCode Data. Alphanumeric text to be encoded in the QRCode." -msgstr "Beliebiger Text der in den QRCode umgerechnet werden soll." - -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:113 -#: AppTools/ToolQRCode.py:98 -msgid "Add here the text to be included in the QRCode..." -msgstr "Geben Sie hier den Text in Ihrem QRCode an." - -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:119 -#: AppTools/ToolQRCode.py:183 -msgid "Polarity" -msgstr "Polarität" - -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:121 -#: AppTools/ToolQRCode.py:185 -msgid "" -"Choose the polarity of the QRCode.\n" -"It can be drawn in a negative way (squares are clear)\n" -"or in a positive way (squares are opaque)." -msgstr "" -"Geben Sie die Polarität des QRCodes an\n" -"Es kann entweder Negativ sein (die Boxen sind durchsichtig)\n" -"oder Positiv (die Boxen sind undurchsichtig)." - -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:125 -#: AppTools/ToolFilm.py:279 AppTools/ToolQRCode.py:189 -msgid "Negative" -msgstr "Negativ" - -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:126 -#: AppTools/ToolFilm.py:278 AppTools/ToolQRCode.py:190 -msgid "Positive" -msgstr "Positiv" - -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:128 -#: AppTools/ToolQRCode.py:192 -msgid "" -"Choose the type of QRCode to be created.\n" -"If added on a Silkscreen Gerber file the QRCode may\n" -"be added as positive. If it is added to a Copper Gerber\n" -"file then perhaps the QRCode can be added as negative." -msgstr "" -"Wählen Sie die Art des zu erzeugenden QRCodes.\n" -"Wenn er zu ein Silkscreen Gerber file hinzugefügt werden soll\n" -"sollte er \"Positiv\" sein, wenn sie ihn zum Copper File hinzufügen\n" -"wollen sollte er möglichst \"Negativ\" sein." - -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:139 -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:145 -#: AppTools/ToolQRCode.py:203 AppTools/ToolQRCode.py:209 -msgid "" -"The bounding box, meaning the empty space that surrounds\n" -"the QRCode geometry, can have a rounded or a square shape." -msgstr "" -"Der Umriss um den QRCode, der die Freistellungsfläche definiert\n" -"kann abgerundete oder scharfe Ecken haben." - -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:142 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:239 -#: AppTools/ToolQRCode.py:206 AppTools/ToolTransform.py:383 -msgid "Rounded" -msgstr "Agberundet" - -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:152 -#: AppTools/ToolQRCode.py:237 -msgid "Fill Color" -msgstr "Boxfarbe" - -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:154 -#: AppTools/ToolQRCode.py:239 -msgid "Set the QRCode fill color (squares color)." -msgstr "Wählen Sie die Farbe der Boxen." - -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:162 -#: AppTools/ToolQRCode.py:261 -msgid "Back Color" -msgstr "Hintergrundfarbe" - -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:164 -#: AppTools/ToolQRCode.py:263 -msgid "Set the QRCode background color." -msgstr "Wählen Sie die Farbe im QRCode, die nicht von einer Box bedeckt ist." - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:27 -msgid "Check Rules Tool Options" -msgstr "Optionen des Werkzeugs 'Regeln prüfen'" - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:32 -msgid "" -"A tool to check if Gerber files are within a set\n" -"of Manufacturing Rules." -msgstr "" -"Ein Tool zum Überprüfen, ob sich Gerber-Dateien innerhalb eines Satzes " -"befinden\n" -"von Herstellungsregeln." - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:42 -#: AppTools/ToolRulesCheck.py:265 AppTools/ToolRulesCheck.py:929 -msgid "Trace Size" -msgstr "Spurengröße" - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:44 -#: AppTools/ToolRulesCheck.py:267 -msgid "This checks if the minimum size for traces is met." -msgstr "Hiermit wird überprüft, ob die Mindestgröße für Traces erfüllt ist." - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:54 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:74 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:94 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:114 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:134 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:154 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:174 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:194 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:216 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:236 -#: AppTools/ToolRulesCheck.py:277 AppTools/ToolRulesCheck.py:299 -#: AppTools/ToolRulesCheck.py:322 AppTools/ToolRulesCheck.py:345 -#: AppTools/ToolRulesCheck.py:368 AppTools/ToolRulesCheck.py:391 -#: AppTools/ToolRulesCheck.py:414 AppTools/ToolRulesCheck.py:437 -#: AppTools/ToolRulesCheck.py:462 AppTools/ToolRulesCheck.py:485 -msgid "Min value" -msgstr "Min. Wert" - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:56 -#: AppTools/ToolRulesCheck.py:279 -msgid "Minimum acceptable trace size." -msgstr "Minimale akzeptable Trace-Größe." - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:61 -#: AppTools/ToolRulesCheck.py:286 AppTools/ToolRulesCheck.py:1157 -#: AppTools/ToolRulesCheck.py:1187 -msgid "Copper to Copper clearance" -msgstr "Mininalabstand Kupfer zu Kupfer" - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:63 -#: AppTools/ToolRulesCheck.py:288 -msgid "" -"This checks if the minimum clearance between copper\n" -"features is met." -msgstr "" -"Dies überprüft, ob der Mindestabstand zwischen Kupfer\n" -"Spuren ist erfüllt." - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:76 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:96 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:116 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:136 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:156 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:176 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:238 -#: AppTools/ToolRulesCheck.py:301 AppTools/ToolRulesCheck.py:324 -#: AppTools/ToolRulesCheck.py:347 AppTools/ToolRulesCheck.py:370 -#: AppTools/ToolRulesCheck.py:393 AppTools/ToolRulesCheck.py:416 -#: AppTools/ToolRulesCheck.py:464 -msgid "Minimum acceptable clearance value." -msgstr "Minimaler akzeptabler Abstandswert." - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:81 -#: AppTools/ToolRulesCheck.py:309 AppTools/ToolRulesCheck.py:1217 -#: AppTools/ToolRulesCheck.py:1223 AppTools/ToolRulesCheck.py:1236 -#: AppTools/ToolRulesCheck.py:1243 -msgid "Copper to Outline clearance" -msgstr "Mininalabstand Kupfer zum Rahmen" - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:83 -#: AppTools/ToolRulesCheck.py:311 -msgid "" -"This checks if the minimum clearance between copper\n" -"features and the outline is met." -msgstr "Überprüft den Minimalabstand zwischen Kupfer und Rand." - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:101 -#: AppTools/ToolRulesCheck.py:332 -msgid "Silk to Silk Clearance" -msgstr "Siebdruck zu siebdruck Abstand" - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:103 -#: AppTools/ToolRulesCheck.py:334 -msgid "" -"This checks if the minimum clearance between silkscreen\n" -"features and silkscreen features is met." -msgstr "" -"Dies prüft, ob der Mindestabstand zwischen Siebdruck\n" -"Objekte und Silkscreen-Objekte erfüllt ist." - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:121 -#: AppTools/ToolRulesCheck.py:355 AppTools/ToolRulesCheck.py:1326 -#: AppTools/ToolRulesCheck.py:1332 AppTools/ToolRulesCheck.py:1350 -msgid "Silk to Solder Mask Clearance" -msgstr "Siebdruck auf Lötmaske Clearance" - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:123 -#: AppTools/ToolRulesCheck.py:357 -msgid "" -"This checks if the minimum clearance between silkscreen\n" -"features and soldermask features is met." -msgstr "" -"Dies prüft, ob der Mindestabstand zwischen Siebdruck\n" -"Spuren und Lötmaskenspuren werden eingehalten." - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:141 -#: AppTools/ToolRulesCheck.py:378 AppTools/ToolRulesCheck.py:1380 -#: AppTools/ToolRulesCheck.py:1386 AppTools/ToolRulesCheck.py:1400 -#: AppTools/ToolRulesCheck.py:1407 -msgid "Silk to Outline Clearance" -msgstr "Siebdruck zur Gliederung Clearance" - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:143 -#: AppTools/ToolRulesCheck.py:380 -msgid "" -"This checks if the minimum clearance between silk\n" -"features and the outline is met." -msgstr "" -"Dies prüft, ob der Mindestabstand zwischen Siebdruck\n" -"Spuren und der Umriss ist erfüllt." - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:161 -#: AppTools/ToolRulesCheck.py:401 AppTools/ToolRulesCheck.py:1418 -#: AppTools/ToolRulesCheck.py:1445 -msgid "Minimum Solder Mask Sliver" -msgstr "Minimum Lötmaskenband" - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:163 -#: AppTools/ToolRulesCheck.py:403 -msgid "" -"This checks if the minimum clearance between soldermask\n" -"features and soldermask features is met." -msgstr "" -"Hiermit wird geprüft, ob der Mindestabstand zwischen den Lötmasken " -"eingehalten wird\n" -"Spuren und Soldermask-Merkmale sind erfüllt." - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:181 -#: AppTools/ToolRulesCheck.py:424 AppTools/ToolRulesCheck.py:1483 -#: AppTools/ToolRulesCheck.py:1489 AppTools/ToolRulesCheck.py:1505 -#: AppTools/ToolRulesCheck.py:1512 -msgid "Minimum Annular Ring" -msgstr "Minimaler Ring" - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:183 -#: AppTools/ToolRulesCheck.py:426 -msgid "" -"This checks if the minimum copper ring left by drilling\n" -"a hole into a pad is met." -msgstr "" -"Dies überprüft, ob der minimale Kupferring durch Bohren übrig bleibt\n" -"Ein Loch in einem Pad ist getroffen." - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:196 -#: AppTools/ToolRulesCheck.py:439 -msgid "Minimum acceptable ring value." -msgstr "Minimaler akzeptabler Ringwert." - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:203 -#: AppTools/ToolRulesCheck.py:449 AppTools/ToolRulesCheck.py:873 -msgid "Hole to Hole Clearance" -msgstr "Loch zu Loch Abstand" - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:205 -#: AppTools/ToolRulesCheck.py:451 -msgid "" -"This checks if the minimum clearance between a drill hole\n" -"and another drill hole is met." -msgstr "" -"Dies überprüft, ob der Mindestabstand zwischen einem Bohrloch ist\n" -"und ein weiteres Bohrloch ist getroffen." - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:218 -#: AppTools/ToolRulesCheck.py:487 -msgid "Minimum acceptable drill size." -msgstr "Minimale zulässige Bohrergröße." - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:223 -#: AppTools/ToolRulesCheck.py:472 AppTools/ToolRulesCheck.py:847 -msgid "Hole Size" -msgstr "Lochgröße" - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:225 -#: AppTools/ToolRulesCheck.py:474 -msgid "" -"This checks if the drill holes\n" -"sizes are above the threshold." -msgstr "" -"Dadurch wird geprüft, ob die Bohrlöcher vorhanden sind\n" -"Größen liegen über der Schwelle." - -#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:27 -msgid "2Sided Tool Options" -msgstr "2Seitige Werkzeugoptionen" - -#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:33 -msgid "" -"A tool to help in creating a double sided\n" -"PCB using alignment holes." -msgstr "" -"Ein Werkzeug, das beim Erstellen eines doppelseitigen Dokuments hilft\n" -"PCB mit Ausrichtungslöchern." - -#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:47 -msgid "Drill dia" -msgstr "Bohrdurchmesser" - -#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:49 -#: AppTools/ToolDblSided.py:363 AppTools/ToolDblSided.py:368 -msgid "Diameter of the drill for the alignment holes." -msgstr "Durchmesser des Bohrers für die Ausrichtungslöcher." - -#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:56 -#: AppTools/ToolDblSided.py:377 -msgid "Align Axis" -msgstr "Achse ausrichten" - -#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:58 -#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:71 -#: AppTools/ToolDblSided.py:165 AppTools/ToolDblSided.py:379 -msgid "Mirror vertically (X) or horizontally (Y)." -msgstr "Vertikal spiegeln (X) oder horizontal (Y)." - -#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:69 -msgid "Mirror Axis:" -msgstr "Spiegelachse:" - -#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:80 -#: AppTools/ToolDblSided.py:181 -msgid "Point" -msgstr "Punkt" - -#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:81 -#: AppTools/ToolDblSided.py:182 -msgid "Box" -msgstr "Box" - -#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:82 -msgid "Axis Ref" -msgstr "Achsenreferenz" - -#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:84 -msgid "" -"The axis should pass through a point or cut\n" -" a specified box (in a FlatCAM object) through \n" -"the center." -msgstr "" -"Die Achse sollte einen Punkt durchlaufen oder schneiden\n" -"eine angegebene Box (in einem FlatCAM-Objekt) durch\n" -"das Zentrum." - -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:27 -msgid "Calculators Tool Options" -msgstr "Rechner-Tool-Optionen" - -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:31 -#: AppTools/ToolCalculators.py:25 -msgid "V-Shape Tool Calculator" -msgstr "V-Shape-Werkzeugrechner" - -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:33 -msgid "" -"Calculate the tool diameter for a given V-shape tool,\n" -"having the tip diameter, tip angle and\n" -"depth-of-cut as parameters." -msgstr "" -"Berechnen Sie den Werkzeugdurchmesser für ein gegebenes V-förmiges " -"Werkzeug.\n" -"mit dem Spitzendurchmesser, Spitzenwinkel und\n" -"Schnitttiefe als Parameter." - -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:50 -#: AppTools/ToolCalculators.py:94 -msgid "Tip Diameter" -msgstr "Spitzendurchmesser" - -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:52 -#: AppTools/ToolCalculators.py:102 -msgid "" -"This is the tool tip diameter.\n" -"It is specified by manufacturer." -msgstr "" -"Dies ist der Werkzeugspitzendurchmesser.\n" -"Es wird vom Hersteller angegeben." - -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:64 -#: AppTools/ToolCalculators.py:105 -msgid "Tip Angle" -msgstr "Spitzenwinkel" - -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:66 -msgid "" -"This is the angle on the tip of the tool.\n" -"It is specified by manufacturer." -msgstr "" -"Dies ist der Winkel an der Spitze des Werkzeugs.\n" -"Es wird vom Hersteller angegeben." - -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:80 -msgid "" -"This is depth to cut into material.\n" -"In the CNCJob object it is the CutZ parameter." -msgstr "" -"Dies ist die Tiefe zum Schneiden in Material.\n" -"Im CNCJob-Objekt ist dies der Parameter CutZ." - -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:87 -#: AppTools/ToolCalculators.py:27 -msgid "ElectroPlating Calculator" -msgstr "Galvanikrechner" - -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:89 -#: AppTools/ToolCalculators.py:158 -msgid "" -"This calculator is useful for those who plate the via/pad/drill holes,\n" -"using a method like graphite ink or calcium hypophosphite ink or palladium " -"chloride." -msgstr "" -"Dieser Rechner ist nützlich für diejenigen, die die Durchgangslöcher / " -"Bohrungen / Bohrungen\n" -"unter Verwendung einer Methode wie Grahit-Tinte oder Calcium-Hypophosphit-" -"Tinte oder Palladiumchlorid." - -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:100 -#: AppTools/ToolCalculators.py:167 -msgid "Board Length" -msgstr "PCB Länge" - -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:102 -#: AppTools/ToolCalculators.py:173 -msgid "This is the board length. In centimeters." -msgstr "Dies ist die Boardlänge. In Zentimeter." - -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:112 -#: AppTools/ToolCalculators.py:175 -msgid "Board Width" -msgstr "PCB Breite" - -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:114 -#: AppTools/ToolCalculators.py:181 -msgid "This is the board width.In centimeters." -msgstr "Dies ist die Breite der Platte in Zentimetern." - -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:119 -#: AppTools/ToolCalculators.py:183 -msgid "Current Density" -msgstr "Stromdichte" - -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:125 -#: AppTools/ToolCalculators.py:190 -msgid "" -"Current density to pass through the board. \n" -"In Amps per Square Feet ASF." -msgstr "" -"Stromdichte durch die Platine.\n" -"In Ampere pro Quadratfuß ASF." - -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:131 -#: AppTools/ToolCalculators.py:193 -msgid "Copper Growth" -msgstr "Kupferwachstum" - -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:137 -#: AppTools/ToolCalculators.py:200 -msgid "" -"How thick the copper growth is intended to be.\n" -"In microns." -msgstr "" -"Wie dick soll das Kupferwachstum sein.\n" -"In Mikrometern." - -#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:27 -msgid "Corner Markers Options" -msgstr "Optionen für Eckmarkierungen" - -#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:44 -#: AppTools/ToolCorners.py:124 -msgid "The thickness of the line that makes the corner marker." -msgstr "Die Dicke der Linie, die die Eckmarkierung bildet." - -#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:58 -#: AppTools/ToolCorners.py:138 -msgid "The length of the line that makes the corner marker." -msgstr "Die Länge der Linie, die die Eckmarkierung bildet." - -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:28 -msgid "Cutout Tool Options" -msgstr "Ausschnittwerkzeug-Optionen" - -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:34 -msgid "" -"Create toolpaths to cut around\n" -"the PCB and separate it from\n" -"the original board." -msgstr "" -"Erstellen Sie Werkzeugwege zum Schneiden\n" -"die PCB und trennen Sie es von\n" -"das ursprüngliche Brett." - -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:43 -#: AppTools/ToolCalculators.py:123 AppTools/ToolCutOut.py:129 -msgid "Tool Diameter" -msgstr "Werkzeugdurchm" - -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:45 -#: AppTools/ToolCutOut.py:131 -msgid "" -"Diameter of the tool used to cutout\n" -"the PCB shape out of the surrounding material." -msgstr "" -"Durchmesser des zum Ausschneiden verwendeten Werkzeugs\n" -"die PCB-Form aus dem umgebenden Material." - -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:100 -msgid "Object kind" -msgstr "Objektart" - -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:102 -#: AppTools/ToolCutOut.py:77 -msgid "" -"Choice of what kind the object we want to cutout is.
    - Single: " -"contain a single PCB Gerber outline object.
    - Panel: a panel PCB " -"Gerber object, which is made\n" -"out of many individual PCB outlines." -msgstr "" -"Auswahl, welche Art von Objekt ausgeschnitten werden soll.
    - Einfach " -": Enthält ein einzelnes PCB-Gerber-Umrissobjekt.
    - Panel : " -"Ein Panel-PCB-Gerber Objekt, dass\n" -"aus vielen einzelnen PCB-Konturen zusammengesetzt ist." - -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:109 -#: AppTools/ToolCutOut.py:83 -msgid "Single" -msgstr "Einzeln" - -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:110 -#: AppTools/ToolCutOut.py:84 -msgid "Panel" -msgstr "Platte" - -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:117 -#: AppTools/ToolCutOut.py:192 -msgid "" -"Margin over bounds. A positive value here\n" -"will make the cutout of the PCB further from\n" -"the actual PCB border" -msgstr "" -"Marge über Grenzen. Ein positiver Wert hier\n" -"macht den Ausschnitt der Leiterplatte weiter aus\n" -"die tatsächliche PCB-Grenze" - -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:130 -#: AppTools/ToolCutOut.py:203 -msgid "Gap size" -msgstr "Spaltgröße" - -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:132 -#: AppTools/ToolCutOut.py:205 -msgid "" -"The size of the bridge gaps in the cutout\n" -"used to keep the board connected to\n" -"the surrounding material (the one \n" -"from which the PCB is cutout)." -msgstr "" -"Die Größe der Brückenlücken im Ausschnitt\n" -"verwendet, um die Platine verbunden zu halten\n" -"das umgebende Material (das eine\n" -"von denen die Leiterplatte ausgeschnitten ist)." - -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:146 -#: AppTools/ToolCutOut.py:245 -msgid "Gaps" -msgstr "Spalt" - -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:148 -msgid "" -"Number of gaps used for the cutout.\n" -"There can be maximum 8 bridges/gaps.\n" -"The choices are:\n" -"- None - no gaps\n" -"- lr - left + right\n" -"- tb - top + bottom\n" -"- 4 - left + right +top + bottom\n" -"- 2lr - 2*left + 2*right\n" -"- 2tb - 2*top + 2*bottom\n" -"- 8 - 2*left + 2*right +2*top + 2*bottom" -msgstr "" -"Anzahl der für den Ausschnitt verwendeten Brückenlücken.\n" -"Es können maximal 8 Brücken / Lücken vorhanden sein.\n" -"Die Wahlmöglichkeiten sind:\n" -"- Keine - keine Lücken\n" -"- lr \t- links + rechts\n" -"- tb \t- oben + unten\n" -"- 4 \t- links + rechts + oben + unten\n" -"- 2lr \t- 2 * links + 2 * rechts\n" -"- 2 tb \t- 2 * oben + 2 * unten\n" -"- 8 \t- 2 * links + 2 * rechts + 2 * oben + 2 * unten" - -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:170 -#: AppTools/ToolCutOut.py:222 -msgid "Convex Shape" -msgstr "Konvexe Form" - -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:172 -#: AppTools/ToolCutOut.py:225 -msgid "" -"Create a convex shape surrounding the entire PCB.\n" -"Used only if the source object type is Gerber." -msgstr "" -"Erstellen Sie eine konvexe Form, die die gesamte Leiterplatte umgibt.\n" -"Wird nur verwendet, wenn der Quellobjekttyp Gerber ist." - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:27 -msgid "Film Tool Options" -msgstr "Filmwerkzeugoptionen" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:33 -msgid "" -"Create a PCB film from a Gerber or Geometry object.\n" -"The file is saved in SVG format." -msgstr "" -"Erstellen Sie einen PCB-Film aus einem Gerber- oder Geometrieobjekt.\n" -"Die Datei wird im SVG-Format gespeichert." - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:43 -msgid "Film Type" -msgstr "Filmtyp" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:45 AppTools/ToolFilm.py:283 -msgid "" -"Generate a Positive black film or a Negative film.\n" -"Positive means that it will print the features\n" -"with black on a white canvas.\n" -"Negative means that it will print the features\n" -"with white on a black canvas.\n" -"The Film format is SVG." -msgstr "" -"Erzeugen Sie einen positiven schwarzen Film oder einen Negativfilm.\n" -"Positiv bedeutet, dass die Funktionen gedruckt werden\n" -"mit schwarz auf einer weißen leinwand.\n" -"Negativ bedeutet, dass die Features gedruckt werden\n" -"mit weiß auf einer schwarzen leinwand.\n" -"Das Filmformat ist SVG." - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:56 -msgid "Film Color" -msgstr "Filmfarbe" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:58 -msgid "Set the film color when positive film is selected." -msgstr "Stellen Sie die Filmfarbe ein, wenn Positivfilm ausgewählt ist." - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:71 AppTools/ToolFilm.py:299 -msgid "Border" -msgstr "Rand" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:73 AppTools/ToolFilm.py:301 -msgid "" -"Specify a border around the object.\n" -"Only for negative film.\n" -"It helps if we use as a Box Object the same \n" -"object as in Film Object. It will create a thick\n" -"black bar around the actual print allowing for a\n" -"better delimitation of the outline features which are of\n" -"white color like the rest and which may confound with the\n" -"surroundings if not for this border." -msgstr "" -"Geben Sie einen Rahmen um das Objekt an.\n" -"Nur für Negativfilm.\n" -"Es hilft, wenn wir als Boxobjekt das gleiche verwenden\n" -"Objekt wie in Filmobjekt. Es wird ein dickes schaffen\n" -"schwarzer Balken um den tatsächlichen Druck, so dass a\n" -"bessere Abgrenzung der Gliederungsmerkmale von\n" -"weiße Farbe wie der Rest und die mit der verwechseln kann\n" -"Umgebung, wenn nicht für diese Grenze." - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:90 AppTools/ToolFilm.py:266 -msgid "Scale Stroke" -msgstr "Skalierungshub" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:92 AppTools/ToolFilm.py:268 -msgid "" -"Scale the line stroke thickness of each feature in the SVG file.\n" -"It means that the line that envelope each SVG feature will be thicker or " -"thinner,\n" -"therefore the fine features may be more affected by this parameter." -msgstr "" -"Skalieren Sie die Strichstärke der einzelnen Features in der SVG-Datei.\n" -"Dies bedeutet, dass die Linie, die jedes SVG-Feature einhüllt, dicker oder " -"dünner ist.\n" -"Daher können die Feinheiten von diesem Parameter stärker beeinflusst werden." - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:99 AppTools/ToolFilm.py:124 -msgid "Film Adjustments" -msgstr "Filmeinstellungen" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:101 -#: AppTools/ToolFilm.py:126 -msgid "" -"Sometime the printers will distort the print shape, especially the Laser " -"types.\n" -"This section provide the tools to compensate for the print distortions." -msgstr "" -"Manchmal verzerren die Drucker die Druckform, insbesondere die Lasertypen.\n" -"In diesem Abschnitt finden Sie die Tools zum Ausgleichen der " -"Druckverzerrungen." - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:108 -#: AppTools/ToolFilm.py:133 -msgid "Scale Film geometry" -msgstr "Filmgeometrie skalieren" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:110 -#: AppTools/ToolFilm.py:135 -msgid "" -"A value greater than 1 will stretch the film\n" -"while a value less than 1 will jolt it." -msgstr "" -"Ein Wert größer als 1 streckt den Film\n" -"Ein Wert unter 1 ruckelt." - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:120 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:103 -#: AppTools/ToolFilm.py:145 AppTools/ToolTransform.py:148 -msgid "X factor" -msgstr "X Faktor" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:129 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:116 -#: AppTools/ToolFilm.py:154 AppTools/ToolTransform.py:168 -msgid "Y factor" -msgstr "Y Faktor" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:139 -#: AppTools/ToolFilm.py:172 -msgid "Skew Film geometry" -msgstr "Verzerren Sie die Filmgeometrie" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:141 -#: AppTools/ToolFilm.py:174 -msgid "" -"Positive values will skew to the right\n" -"while negative values will skew to the left." -msgstr "" -"Positive Werte werden nach rechts verschoben\n" -"negative Werte werden nach links verschoben." - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:151 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:72 -#: AppTools/ToolFilm.py:184 AppTools/ToolTransform.py:97 -msgid "X angle" -msgstr "X Winkel" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:160 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:86 -#: AppTools/ToolFilm.py:193 AppTools/ToolTransform.py:118 -msgid "Y angle" -msgstr "Y Winkel" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:171 -#: AppTools/ToolFilm.py:204 -msgid "" -"The reference point to be used as origin for the skew.\n" -"It can be one of the four points of the geometry bounding box." -msgstr "" -"Der Referenzpunkt, der als Ursprung für den Versatz verwendet werden soll.\n" -"Dies kann einer der vier Punkte des Geometrie-Begrenzungsrahmens sein." - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:174 -#: AppTools/ToolCorners.py:80 AppTools/ToolFiducials.py:83 -#: AppTools/ToolFilm.py:207 -msgid "Bottom Left" -msgstr "Unten links" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:175 -#: AppTools/ToolCorners.py:88 AppTools/ToolFilm.py:208 -msgid "Top Left" -msgstr "Oben links" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:176 -#: AppTools/ToolCorners.py:84 AppTools/ToolFilm.py:209 -msgid "Bottom Right" -msgstr "Unten rechts" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:177 -#: AppTools/ToolFilm.py:210 -msgid "Top right" -msgstr "Oben rechts" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:185 -#: AppTools/ToolFilm.py:227 -msgid "Mirror Film geometry" -msgstr "Spiegeln Sie die Filmgeometrie" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:187 -#: AppTools/ToolFilm.py:229 -msgid "Mirror the film geometry on the selected axis or on both." -msgstr "" -"Spiegeln Sie die Filmgeometrie auf der ausgewählten Achse oder auf beiden." - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:201 -#: AppTools/ToolFilm.py:243 -msgid "Mirror axis" -msgstr "Achse spiegeln" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:211 -#: AppTools/ToolFilm.py:388 -msgid "SVG" -msgstr "SVG" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:212 -#: AppTools/ToolFilm.py:389 -msgid "PNG" -msgstr "PNG" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:213 -#: AppTools/ToolFilm.py:390 -msgid "PDF" -msgstr "PDF" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:216 -#: AppTools/ToolFilm.py:281 AppTools/ToolFilm.py:393 -msgid "Film Type:" -msgstr "Filmtyp:" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:218 -#: AppTools/ToolFilm.py:395 -msgid "" -"The file type of the saved film. Can be:\n" -"- 'SVG' -> open-source vectorial format\n" -"- 'PNG' -> raster image\n" -"- 'PDF' -> portable document format" -msgstr "" -"Der Dateityp in dem gespeichert werden soll:\n" -"- 'SVG' -> open-source vectorial format\n" -"- 'PNG' -> raster image\n" -"- 'PDF' -> portable document format" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:227 -#: AppTools/ToolFilm.py:404 -msgid "Page Orientation" -msgstr "Seitenausrichtung" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:240 -#: AppTools/ToolFilm.py:417 -msgid "Page Size" -msgstr "Seitengröße" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:241 -#: AppTools/ToolFilm.py:418 -msgid "A selection of standard ISO 216 page sizes." -msgstr "Eine Auswahl von Standard ISO 216 Seitengrößen." - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:26 -msgid "Isolation Tool Options" -msgstr "Optionen für das Isolationswerkzeug" - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:48 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:49 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:57 -msgid "Comma separated values" -msgstr "Komma-getrennte Werte" - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:54 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:156 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:142 -#: AppTools/ToolIsolation.py:166 AppTools/ToolNCC.py:174 -#: AppTools/ToolPaint.py:157 -msgid "Tool order" -msgstr "Werkzeugbestellung" - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:55 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:157 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:167 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:143 -#: AppTools/ToolIsolation.py:167 AppTools/ToolNCC.py:175 -#: AppTools/ToolNCC.py:185 AppTools/ToolPaint.py:158 AppTools/ToolPaint.py:168 -msgid "" -"This set the way that the tools in the tools table are used.\n" -"'No' --> means that the used order is the one in the tool table\n" -"'Forward' --> means that the tools will be ordered from small to big\n" -"'Reverse' --> means that the tools will ordered from big to small\n" -"\n" -"WARNING: using rest machining will automatically set the order\n" -"in reverse and disable this control." -msgstr "" -"Hiermit wird festgelegt, wie die Werkzeuge in der Werkzeugtabelle verwendet " -"werden.\n" -"'Nein' -> bedeutet, dass die verwendete Reihenfolge die in der " -"Werkzeugtabelle ist\n" -"'Weiter' -> bedeutet, dass die Werkzeuge von klein nach groß sortiert " -"werden\n" -"'Rückwärts' -> Menus, die die Werkzeuge von groß nach klein ordnen\n" -"\n" -"WARNUNG: Bei Verwendung der Restbearbeitung wird die Reihenfolge automatisch " -"festgelegt\n" -"in umgekehrter Richtung und deaktivieren Sie diese Steuerung." - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:63 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:165 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:151 -#: AppTools/ToolIsolation.py:175 AppTools/ToolNCC.py:183 -#: AppTools/ToolPaint.py:166 -msgid "Forward" -msgstr "Vorwärts" - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:64 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:166 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:152 -#: AppTools/ToolIsolation.py:176 AppTools/ToolNCC.py:184 -#: AppTools/ToolPaint.py:167 -msgid "Reverse" -msgstr "Rückwärts" - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:72 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:80 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:55 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:63 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:64 -#: AppTools/ToolIsolation.py:201 AppTools/ToolIsolation.py:209 -#: AppTools/ToolNCC.py:215 AppTools/ToolNCC.py:223 AppTools/ToolPaint.py:197 -#: AppTools/ToolPaint.py:205 -msgid "" -"Default tool type:\n" -"- 'V-shape'\n" -"- Circular" -msgstr "" -"Standardwerkzeugtyp:\n" -"- \"V-Form\"\n" -"- Rundschreiben" - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:77 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:60 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:69 -#: AppTools/ToolIsolation.py:206 AppTools/ToolNCC.py:220 -#: AppTools/ToolPaint.py:202 -msgid "V-shape" -msgstr "V-Form" - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:103 -msgid "" -"The tip angle for V-Shape Tool.\n" -"In degrees." -msgstr "" -"Der Spitzenwinkel für das V-Form-Werkzeug.\n" -"In Grad." - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:117 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:126 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:100 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:109 -#: AppTools/ToolIsolation.py:248 AppTools/ToolNCC.py:262 -#: AppTools/ToolNCC.py:271 AppTools/ToolPaint.py:244 AppTools/ToolPaint.py:253 -msgid "" -"Depth of cut into material. Negative value.\n" -"In FlatCAM units." -msgstr "" -"Schnitttiefe in Material. Negativer Wert.\n" -"In FlatCAM-Einheiten." - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:136 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:119 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:125 -#: AppTools/ToolIsolation.py:262 AppTools/ToolNCC.py:280 -#: AppTools/ToolPaint.py:262 -msgid "" -"Diameter for the new tool to add in the Tool Table.\n" -"If the tool is V-shape type then this value is automatically\n" -"calculated from the other parameters." -msgstr "" -"Durchmesser des neuen Werkzeugs das in die Werkzeugtabelle\n" -"aufgenommen werden soll. Wenn das Tool V-Förmig ist, wird dieser\n" -"Wert aus den anderen Parametern berechnet." - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:243 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:288 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:244 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:245 -#: AppTools/ToolIsolation.py:432 AppTools/ToolNCC.py:512 -#: AppTools/ToolPaint.py:441 -msgid "Rest" -msgstr "Rest" - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:246 -#: AppTools/ToolIsolation.py:435 -msgid "" -"If checked, use 'rest machining'.\n" -"Basically it will isolate outside PCB features,\n" -"using the biggest tool and continue with the next tools,\n" -"from bigger to smaller, to isolate the copper features that\n" -"could not be cleared by previous tool, until there is\n" -"no more copper features to isolate or there are no more tools.\n" -"If not checked, use the standard algorithm." -msgstr "" -"Wenn aktiviert, verwenden Sie \"Restbearbeitung\".\n" -"Grundsätzlich werden externe Leiterplattenmerkmale isoliert.\n" -"Verwenden Sie das größte Tool und fahren Sie mit den nächsten Tools fort.\n" -"von größer zu kleiner, um die Kupfermerkmale zu isolieren, die\n" -"konnte nicht mit dem vorherigen Tool gelöscht werden, bis es gibt\n" -"Keine Kupferelemente mehr zu isolieren oder es gibt keine Werkzeuge mehr.\n" -"Wenn nicht aktiviert, verwenden Sie den Standardalgorithmus." - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:258 -#: AppTools/ToolIsolation.py:447 -msgid "Combine" -msgstr "Kombinieren" - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:260 -#: AppTools/ToolIsolation.py:449 -msgid "Combine all passes into one object" -msgstr "Kombinieren Sie alle Durchgänge in einem Objekt" - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:267 -#: AppTools/ToolIsolation.py:456 -msgid "Except" -msgstr "Außer" - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:268 -#: AppTools/ToolIsolation.py:457 -msgid "" -"When the isolation geometry is generated,\n" -"by checking this, the area of the object below\n" -"will be subtracted from the isolation geometry." -msgstr "" -"Wenn die Isolationsgeometrie generiert wird,\n" -"indem Sie dies überprüfen, wird der Bereich des Objekts unten\n" -"wird von der Isolationsgeometrie abgezogen." - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:277 -#: AppTools/ToolIsolation.py:496 -msgid "" -"Isolation scope. Choose what to isolate:\n" -"- 'All' -> Isolate all the polygons in the object\n" -"- 'Area Selection' -> Isolate polygons within a selection area.\n" -"- 'Polygon Selection' -> Isolate a selection of polygons.\n" -"- 'Reference Object' - will process the area specified by another object." -msgstr "" -"Isolationsbereich. Wählen Sie aus, was isoliert werden soll:\n" -"- 'Alle' -> Isolieren Sie alle Polygone im Objekt\n" -"- 'Bereichsauswahl' -> Polygone innerhalb eines Auswahlbereichs isolieren.\n" -"- 'Polygonauswahl' -> Isolieren Sie eine Auswahl von Polygonen.\n" -"- 'Referenzobjekt' - verarbeitet den von einem anderen Objekt angegebenen " -"Bereich." - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:285 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280 -#: AppTools/ToolIsolation.py:504 AppTools/ToolIsolation.py:1308 -#: AppTools/ToolIsolation.py:1690 AppTools/ToolPaint.py:485 -#: AppTools/ToolPaint.py:941 AppTools/ToolPaint.py:1451 -#: tclCommands/TclCommandPaint.py:164 -msgid "Polygon Selection" -msgstr "Polygon auswahl" - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:310 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:339 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:303 -msgid "Normal" -msgstr "NormalFormat" - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:311 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:340 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:304 -msgid "Progressive" -msgstr "Progressiv" - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:312 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:341 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:305 -#: AppObjects/AppObject.py:349 AppObjects/FlatCAMObj.py:251 -#: AppObjects/FlatCAMObj.py:282 AppObjects/FlatCAMObj.py:298 -#: AppObjects/FlatCAMObj.py:378 AppTools/ToolCopperThieving.py:1491 -#: AppTools/ToolCorners.py:411 AppTools/ToolFiducials.py:813 -#: AppTools/ToolMove.py:229 AppTools/ToolQRCode.py:737 App_Main.py:4397 -msgid "Plotting" -msgstr "Plotten" - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:314 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:343 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:307 -msgid "" -"- 'Normal' - normal plotting, done at the end of the job\n" -"- 'Progressive' - each shape is plotted after it is generated" -msgstr "" -"- 'Normal' - normales Plotten am Ende des Auftrags\n" -"- 'Progressiv' - Jede Form wird nach ihrer Erzeugung geplottet" - -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:27 -msgid "NCC Tool Options" -msgstr "NCC-Tooloptionen" - -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:33 -msgid "" -"Create a Geometry object with\n" -"toolpaths to cut all non-copper regions." -msgstr "" -"Erstellen Sie ein Geometrieobjekt mit\n" -"Werkzeugwege, um alle Nicht-Kupfer-Bereiche zu schneiden." - -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:266 -msgid "Offset value" -msgstr "Offsetwert" - -# What the hack is a FlatCAM unit?? -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:268 -msgid "" -"If used, it will add an offset to the copper features.\n" -"The copper clearing will finish to a distance\n" -"from the copper features.\n" -"The value can be between 0.0 and 9999.9 FlatCAM units." -msgstr "" -"Bei Verwendung wird den Kupferelementen ein Offset hinzugefügt.\n" -"Die Kupferreinigung wird bei einer gewissen Entfernung\n" -"zu den Kupferflächen enden.\n" -"Der Wert kann zwischen 0 und 10 FlatCAM-Einheiten liegen." - -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:290 AppTools/ToolNCC.py:516 -msgid "" -"If checked, use 'rest machining'.\n" -"Basically it will clear copper outside PCB features,\n" -"using the biggest tool and continue with the next tools,\n" -"from bigger to smaller, to clear areas of copper that\n" -"could not be cleared by previous tool, until there is\n" -"no more copper to clear or there are no more tools.\n" -"If not checked, use the standard algorithm." -msgstr "" -"Wenn aktiviert, verwenden Sie \"Restbearbeitung\".\n" -"Grundsätzlich wird Kupfer außerhalb der PCB-Merkmale gelöscht.\n" -"das größte Werkzeug verwenden und mit den nächsten Werkzeugen fortfahren,\n" -"von größeren zu kleineren, um Kupferbereiche zu reinigen\n" -"konnte nicht durch vorheriges Werkzeug gelöscht werden, bis es gibt\n" -"kein kupfer mehr zum löschen oder es gibt keine werkzeuge mehr.\n" -"Wenn nicht aktiviert, verwenden Sie den Standardalgorithmus." - -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:313 AppTools/ToolNCC.py:541 -msgid "" -"Selection of area to be processed.\n" -"- 'Itself' - the processing extent is based on the object that is " -"processed.\n" -" - 'Area Selection' - left mouse click to start selection of the area to be " -"processed.\n" -"- 'Reference Object' - will process the area specified by another object." -msgstr "" -"Auswahl des zu verarbeitenden Bereichs.\n" -"- 'Selbst' - Der Verarbeitungsumfang basiert auf dem Objekt, das verarbeitet " -"wird.\n" -"- 'Bereichsauswahl' - Klicken Sie mit der linken Maustaste, um die Auswahl " -"des zu verarbeitenden Bereichs zu starten.\n" -"- 'Referenzobjekt' - verarbeitet den von einem anderen Objekt angegebenen " -"Bereich." - -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:27 -msgid "Paint Tool Options" -msgstr "Paint werkzeug-Optionen" - -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:33 -msgid "Parameters:" -msgstr "Parameter:" - -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:107 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:116 -msgid "" -"Depth of cut into material. Negative value.\n" -"In application units." -msgstr "" -"Schnitttiefe in Material. Negativer Wert.\n" -"In Anwendungseinheiten." - -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:247 -#: AppTools/ToolPaint.py:444 -msgid "" -"If checked, use 'rest machining'.\n" -"Basically it will clear copper outside PCB features,\n" -"using the biggest tool and continue with the next tools,\n" -"from bigger to smaller, to clear areas of copper that\n" -"could not be cleared by previous tool, until there is\n" -"no more copper to clear or there are no more tools.\n" -"\n" -"If not checked, use the standard algorithm." -msgstr "" -"Wenn aktiviert, verwenden Sie \"Restbearbeitung\".\n" -"Grundsätzlich wird Kupfer außerhalb der PCB-Merkmale gelöscht.\n" -"das größte Werkzeug verwenden und mit den nächsten Werkzeugen fortfahren,\n" -"von größeren zu kleineren, um Kupferbereiche zu reinigen\n" -"konnte nicht durch vorheriges Werkzeug gelöscht werden, bis es gibt\n" -"kein kupfer mehr zum löschen oder es gibt keine werkzeuge mehr.\n" -"\n" -"Wenn nicht aktiviert, verwenden Sie den Standardalgorithmus." - -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:260 -#: AppTools/ToolPaint.py:457 -msgid "" -"Selection of area to be processed.\n" -"- 'Polygon Selection' - left mouse click to add/remove polygons to be " -"processed.\n" -"- 'Area Selection' - left mouse click to start selection of the area to be " -"processed.\n" -"Keeping a modifier key pressed (CTRL or SHIFT) will allow to add multiple " -"areas.\n" -"- 'All Polygons' - the process will start after click.\n" -"- 'Reference Object' - will process the area specified by another object." -msgstr "" -"Auswahl des zu verarbeitenden Bereichs.\n" -"- 'Polygonauswahl' - Klicken Sie mit der linken Maustaste, um zu " -"verarbeitende Polygone hinzuzufügen / zu entfernen.\n" -"- 'Bereichsauswahl' - Klicken Sie mit der linken Maustaste, um die Auswahl " -"des zu verarbeitenden Bereichs zu starten.\n" -"Wenn Sie eine Modifizierertaste gedrückt halten (STRG oder SHIFT), können " -"Sie mehrere Bereiche hinzufügen.\n" -"- 'Alle Polygone' - Der Vorgang wird nach dem Klicken gestartet.\n" -"- 'Referenzobjekt' - verarbeitet den von einem anderen Objekt angegebenen " -"Bereich." - -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:27 -msgid "Panelize Tool Options" -msgstr "Panelize Werkzeugoptionen" - -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:33 -msgid "" -"Create an object that contains an array of (x, y) elements,\n" -"each element is a copy of the source object spaced\n" -"at a X distance, Y distance of each other." -msgstr "" -"Erstellen Sie ein Objekt, das ein Array von (x, y) Elementen enthält.\n" -"Jedes Element ist eine Kopie des Quellobjekts\n" -"in einem X-Abstand, Y-Abstand voneinander." - -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:50 -#: AppTools/ToolPanelize.py:165 -msgid "Spacing cols" -msgstr "Abstandspalten" - -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:52 -#: AppTools/ToolPanelize.py:167 -msgid "" -"Spacing between columns of the desired panel.\n" -"In current units." -msgstr "" -"Abstand zwischen den Spalten des gewünschten Bereichs.\n" -"In aktuellen Einheiten." - -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:64 -#: AppTools/ToolPanelize.py:177 -msgid "Spacing rows" -msgstr "Abstand Reihen" - -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:66 -#: AppTools/ToolPanelize.py:179 -msgid "" -"Spacing between rows of the desired panel.\n" -"In current units." -msgstr "" -"Abstand zwischen den Reihen des gewünschten Feldes.\n" -"In aktuellen Einheiten." - -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:77 -#: AppTools/ToolPanelize.py:188 -msgid "Columns" -msgstr "Säulen" - -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:79 -#: AppTools/ToolPanelize.py:190 -msgid "Number of columns of the desired panel" -msgstr "Anzahl der Spalten des gewünschten Bereichs" - -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:89 -#: AppTools/ToolPanelize.py:198 -msgid "Rows" -msgstr "Reihen" - -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:91 -#: AppTools/ToolPanelize.py:200 -msgid "Number of rows of the desired panel" -msgstr "Anzahl der Zeilen des gewünschten Panels" - -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:97 -#: AppTools/ToolAlignObjects.py:73 AppTools/ToolAlignObjects.py:109 -#: AppTools/ToolCalibration.py:196 AppTools/ToolCalibration.py:631 -#: AppTools/ToolCalibration.py:648 AppTools/ToolCalibration.py:807 -#: AppTools/ToolCalibration.py:815 AppTools/ToolCopperThieving.py:148 -#: AppTools/ToolCopperThieving.py:162 AppTools/ToolCopperThieving.py:608 -#: AppTools/ToolCutOut.py:91 AppTools/ToolDblSided.py:224 -#: AppTools/ToolFilm.py:68 AppTools/ToolFilm.py:91 AppTools/ToolImage.py:49 -#: AppTools/ToolImage.py:252 AppTools/ToolImage.py:273 -#: AppTools/ToolIsolation.py:465 AppTools/ToolIsolation.py:517 -#: AppTools/ToolIsolation.py:1281 AppTools/ToolNCC.py:96 -#: AppTools/ToolNCC.py:558 AppTools/ToolNCC.py:1318 AppTools/ToolPaint.py:501 -#: AppTools/ToolPaint.py:705 AppTools/ToolPanelize.py:116 -#: AppTools/ToolPanelize.py:210 AppTools/ToolPanelize.py:385 -#: AppTools/ToolPanelize.py:402 -msgid "Gerber" -msgstr "Gerber" - -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:98 -#: AppTools/ToolPanelize.py:211 -msgid "Geo" -msgstr "Geo" - -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:99 -#: AppTools/ToolPanelize.py:212 -msgid "Panel Type" -msgstr "Panel-Typ" - -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:101 -msgid "" -"Choose the type of object for the panel object:\n" -"- Gerber\n" -"- Geometry" -msgstr "" -"Wählen Sie den Objekttyp für das Panel-Objekt:\n" -"- Gerber\n" -"- Geometrie" - -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:110 -msgid "Constrain within" -msgstr "Beschränkung innerhalb" - -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:112 -#: AppTools/ToolPanelize.py:224 -msgid "" -"Area define by DX and DY within to constrain the panel.\n" -"DX and DY values are in current units.\n" -"Regardless of how many columns and rows are desired,\n" -"the final panel will have as many columns and rows as\n" -"they fit completely within selected area." -msgstr "" -"Bereich definieren durch DX und DY innerhalb des Panels.\n" -"DX- und DY-Werte sind in aktuellen Einheiten angegeben.\n" -"Unabhängig davon, wie viele Spalten und Zeilen gewünscht werden,\n" -"Das letzte Panel enthält so viele Spalten und Zeilen wie\n" -"Sie passen vollständig in den ausgewählten Bereich." - -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:125 -#: AppTools/ToolPanelize.py:236 -msgid "Width (DX)" -msgstr "Breite (DX)" - -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:127 -#: AppTools/ToolPanelize.py:238 -msgid "" -"The width (DX) within which the panel must fit.\n" -"In current units." -msgstr "" -"Die Breite (DX), in die das Panel passen muss.\n" -"In aktuellen Einheiten." - -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:138 -#: AppTools/ToolPanelize.py:247 -msgid "Height (DY)" -msgstr "Höhe (DY)" - -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:140 -#: AppTools/ToolPanelize.py:249 -msgid "" -"The height (DY)within which the panel must fit.\n" -"In current units." -msgstr "" -"Die Höhe (DY), in die die Platte passen muss.\n" -"In aktuellen Einheiten." - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:27 -msgid "SolderPaste Tool Options" -msgstr "Lötpaste-Werkzeug-Optionen" - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:33 -msgid "" -"A tool to create GCode for dispensing\n" -"solder paste onto a PCB." -msgstr "" -"Ein Werkzeug zum Erstellen von GCode für die Ausgabe\n" -"Lotpaste auf eine Leiterplatte." - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:54 -msgid "New Nozzle Dia" -msgstr "Neuer Düsendurchmesser" - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:56 -#: AppTools/ToolSolderPaste.py:112 -msgid "Diameter for the new Nozzle tool to add in the Tool Table" -msgstr "" -"Durchmesser für das neue Düsenwerkzeug, das in die Werkzeugtabelle eingefügt " -"werden soll" - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:72 -#: AppTools/ToolSolderPaste.py:179 -msgid "Z Dispense Start" -msgstr "Z Dosierbeginn" - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:74 -#: AppTools/ToolSolderPaste.py:181 -msgid "The height (Z) when solder paste dispensing starts." -msgstr "Die Höhe (Z) bei der Lotpastendosierung." - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:85 -#: AppTools/ToolSolderPaste.py:191 -msgid "Z Dispense" -msgstr "Z-Abgabe" - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:87 -#: AppTools/ToolSolderPaste.py:193 -msgid "The height (Z) when doing solder paste dispensing." -msgstr "Die Höhe (Z) bei der Lotpastendosierung." - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:98 -#: AppTools/ToolSolderPaste.py:203 -msgid "Z Dispense Stop" -msgstr "Z Abgabestopp" - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:100 -#: AppTools/ToolSolderPaste.py:205 -msgid "The height (Z) when solder paste dispensing stops." -msgstr "Die Höhe (Z) bei der Lotpastendosierung stoppt." - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:111 -#: AppTools/ToolSolderPaste.py:215 -msgid "Z Travel" -msgstr "Z Reise" - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:113 -#: AppTools/ToolSolderPaste.py:217 -msgid "" -"The height (Z) for travel between pads\n" -"(without dispensing solder paste)." -msgstr "" -"Die Höhe (Z) für den Weg zwischen Pads\n" -"(ohne Lotpaste zu dosieren)." - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:125 -#: AppTools/ToolSolderPaste.py:228 -msgid "Z Toolchange" -msgstr "Z Werkzeugwechsel" - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:127 -#: AppTools/ToolSolderPaste.py:230 -msgid "The height (Z) for tool (nozzle) change." -msgstr "Die Höhe (Z) für Werkzeug (Düse) ändert sich." - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:136 -#: AppTools/ToolSolderPaste.py:238 -msgid "" -"The X,Y location for tool (nozzle) change.\n" -"The format is (x, y) where x and y are real numbers." -msgstr "" -"Die X, Y-Position für Werkzeug (Düse) ändert sich.\n" -"Das Format ist (x, y), wobei x und y reelle Zahlen sind." - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:150 -#: AppTools/ToolSolderPaste.py:251 -msgid "Feedrate (speed) while moving on the X-Y plane." -msgstr "Vorschub (Geschwindigkeit) während der Bewegung auf der X-Y-Ebene." - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:163 -#: AppTools/ToolSolderPaste.py:263 -msgid "" -"Feedrate (speed) while moving vertically\n" -"(on Z plane)." -msgstr "" -"Vorschub (Geschwindigkeit) bei vertikaler Bewegung\n" -"(auf der Z-Ebene)." - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:175 -#: AppTools/ToolSolderPaste.py:274 -msgid "Feedrate Z Dispense" -msgstr "Vorschub Z Dosierung" - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:177 -msgid "" -"Feedrate (speed) while moving up vertically\n" -"to Dispense position (on Z plane)." -msgstr "" -"Vorschub (Geschwindigkeit) bei vertikaler Aufwärtsbewegung\n" -"in Ausgabeposition (in der Z-Ebene)." - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:188 -#: AppTools/ToolSolderPaste.py:286 -msgid "Spindle Speed FWD" -msgstr "Spindeldrehzahl FWD" - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:190 -#: AppTools/ToolSolderPaste.py:288 -msgid "" -"The dispenser speed while pushing solder paste\n" -"through the dispenser nozzle." -msgstr "" -"Die Spendergeschwindigkeit beim Schieben der Lötpaste\n" -"durch die Spenderdüse." - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:202 -#: AppTools/ToolSolderPaste.py:299 -msgid "Dwell FWD" -msgstr "Verweilzeit FWD" - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:204 -#: AppTools/ToolSolderPaste.py:301 -msgid "Pause after solder dispensing." -msgstr "Pause nach dem Löten." - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:214 -#: AppTools/ToolSolderPaste.py:310 -msgid "Spindle Speed REV" -msgstr "Spindeldrehzahl REV" - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:216 -#: AppTools/ToolSolderPaste.py:312 -msgid "" -"The dispenser speed while retracting solder paste\n" -"through the dispenser nozzle." -msgstr "" -"Die Spendergeschwindigkeit beim Einfahren der Lötpaste\n" -"durch die Spenderdüse." - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:228 -#: AppTools/ToolSolderPaste.py:323 -msgid "Dwell REV" -msgstr "Verweilen REV" - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:230 -#: AppTools/ToolSolderPaste.py:325 -msgid "" -"Pause after solder paste dispenser retracted,\n" -"to allow pressure equilibrium." -msgstr "" -"Pause nachdem Lotpastendispenser eingefahren wurde,\n" -"das Druckgleichgewicht zu ermöglichen." - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:239 -#: AppTools/ToolSolderPaste.py:333 -msgid "Files that control the GCode generation." -msgstr "Dateien, die die GCode-Generierung steuern." - -#: AppGUI/preferences/tools/ToolsSubPrefGroupUI.py:27 -msgid "Substractor Tool Options" -msgstr "Substractor-Werkzeug-Optionen" - -#: AppGUI/preferences/tools/ToolsSubPrefGroupUI.py:33 -msgid "" -"A tool to substract one Gerber or Geometry object\n" -"from another of the same type." -msgstr "" -"Ein Werkzeug zum Subtrahieren eines Gerber- oder Geometrieobjekts\n" -"von einem anderen des gleichen Typs." - -#: AppGUI/preferences/tools/ToolsSubPrefGroupUI.py:38 AppTools/ToolSub.py:160 -msgid "Close paths" -msgstr "Wege schließen" - -#: AppGUI/preferences/tools/ToolsSubPrefGroupUI.py:39 -msgid "" -"Checking this will close the paths cut by the Geometry substractor object." -msgstr "" -"Wenn Sie dies aktivieren, werden die vom Geometry-Substractor-Objekt " -"geschnittenen Pfade geschlossen." - -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:27 -msgid "Transform Tool Options" -msgstr "Umwandlungswerkzeug-Optionen" - -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:33 -msgid "" -"Various transformations that can be applied\n" -"on a application object." -msgstr "" -"Verschiedene Transformationen, die angewendet werden können\n" -"auf einem Anwendungsobjekt." - -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:64 -msgid "Skew" -msgstr "Neigung" - -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:105 -#: AppTools/ToolTransform.py:150 -msgid "Factor for scaling on X axis." -msgstr "Faktor für die Skalierung auf der X-Achse." - -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:118 -#: AppTools/ToolTransform.py:170 -msgid "Factor for scaling on Y axis." -msgstr "Faktor für die Skalierung auf der Y-Achse." - -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:126 -#: AppTools/ToolTransform.py:191 -msgid "" -"Scale the selected object(s)\n" -"using the Scale_X factor for both axis." -msgstr "" -"Skalieren Sie die ausgewählten Objekte\n" -"Verwenden des Skalierungsfaktors X für beide Achsen." - -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:134 -#: AppTools/ToolTransform.py:198 -msgid "" -"Scale the selected object(s)\n" -"using the origin reference when checked,\n" -"and the center of the biggest bounding box\n" -"of the selected objects when unchecked." -msgstr "" -"Skalieren Sie die ausgewählten Objekte\n" -"unter Verwendung der Ursprungsreferenz, wenn geprüft\n" -"und die Mitte der größten Begrenzungsbox\n" -"der ausgewählten Objekte, wenn sie nicht markiert sind." - -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:150 -#: AppTools/ToolTransform.py:217 -msgid "X val" -msgstr "X-Wert" - -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:152 -#: AppTools/ToolTransform.py:219 -msgid "Distance to offset on X axis. In current units." -msgstr "Abstand zum Offset auf der X-Achse. In aktuellen Einheiten." - -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:163 -#: AppTools/ToolTransform.py:237 -msgid "Y val" -msgstr "Y-Wert" - -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:165 -#: AppTools/ToolTransform.py:239 -msgid "Distance to offset on Y axis. In current units." -msgstr "Abstand zum Offset auf der Y-Achse. In aktuellen Einheiten." - -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:171 -#: AppTools/ToolDblSided.py:67 AppTools/ToolDblSided.py:95 -#: AppTools/ToolDblSided.py:125 -msgid "Mirror" -msgstr "Spiegeln" - -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:175 -#: AppTools/ToolTransform.py:283 -msgid "Mirror Reference" -msgstr "Spiegelreferenz" - -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:177 -#: AppTools/ToolTransform.py:285 -msgid "" -"Flip the selected object(s)\n" -"around the point in Point Entry Field.\n" -"\n" -"The point coordinates can be captured by\n" -"left click on canvas together with pressing\n" -"SHIFT key. \n" -"Then click Add button to insert coordinates.\n" -"Or enter the coords in format (x, y) in the\n" -"Point Entry field and click Flip on X(Y)" -msgstr "" -"Die ausgewählten Objekte kippen\n" -"um den Punkt im Eingabefeld.\n" -"\n" -"Die Punktkoordinaten können mit erfasst werden\n" -"Klicken Sie mit der linken Maustaste auf die Leinwand\n" -"Shift Taste.\n" -"Klicken Sie dann auf die Schaltfläche Hinzufügen, um die Koordinaten " -"einzufügen.\n" -"Oder geben Sie die Koordinaten im Format (x, y) in ein\n" -"Punkt-Eingabefeld und klicken Sie auf X (Y) drehen" - -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:188 -msgid "Mirror Reference point" -msgstr "Referenzpunkt spiegeln" - -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:190 -msgid "" -"Coordinates in format (x, y) used as reference for mirroring.\n" -"The 'x' in (x, y) will be used when using Flip on X and\n" -"the 'y' in (x, y) will be used when using Flip on Y and" -msgstr "" -"Koordinaten im Format (x, y), die als Referenz für die Spiegelung verwendet " -"werden.\n" -"Das 'x' in (x, y) wird verwendet, wenn Sie bei X und\n" -"Das 'y' in (x, y) wird verwendet, wenn Flip auf Y und verwendet wird" - -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:203 -#: AppTools/ToolDistance.py:505 AppTools/ToolDistanceMin.py:286 -#: AppTools/ToolTransform.py:332 -msgid "Distance" -msgstr "Entfernung" - -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:205 -#: AppTools/ToolTransform.py:334 -msgid "" -"A positive value will create the effect of dilation,\n" -"while a negative value will create the effect of erosion.\n" -"Each geometry element of the object will be increased\n" -"or decreased with the 'distance'." -msgstr "" -"Ein positiver Wert führt zu einem Dilatationseffekt.\n" -"während ein negativer Wert den Effekt der Abnutzung verursacht.\n" -"Jedes Geometrieelement des Objekts wird vergrößert\n" -"oder mit der \"Entfernung\" verringert." - -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:222 -#: AppTools/ToolTransform.py:359 -msgid "" -"A positive value will create the effect of dilation,\n" -"while a negative value will create the effect of erosion.\n" -"Each geometry element of the object will be increased\n" -"or decreased to fit the 'Value'. Value is a percentage\n" -"of the initial dimension." -msgstr "" -"Ein positiver Wert erzeugt den Effekt der Dilatation.\n" -"während ein negativer Wert den Effekt der Erosion erzeugt.\n" -"Jedes Geometrieelement des Objekts wird vergrößert\n" -"oder verringert, um dem 'Wert' zu entsprechen. Wert ist ein Prozentsatz\n" -"der ursprünglichen Dimension." - -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:241 -#: AppTools/ToolTransform.py:385 -msgid "" -"If checked then the buffer will surround the buffered shape,\n" -"every corner will be rounded.\n" -"If not checked then the buffer will follow the exact geometry\n" -"of the buffered shape." -msgstr "" -"Wenn diese Option aktiviert ist, umgibt der Puffer die gepufferte Form.\n" -"Jede Ecke wird abgerundet.\n" -"Wenn nicht markiert, folgt der Puffer der exakten Geometrie\n" -"der gepufferten Form." - -#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:27 -msgid "Autocompleter Keywords" -msgstr "Autocompleter-Schlüsselwörter" - -#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:30 -#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:40 -#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:30 -#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:30 -msgid "Restore" -msgstr "Wiederherstellen" - -#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:31 -msgid "Restore the autocompleter keywords list to the default state." -msgstr "" -"Stellen Sie den Standardzustand der Autocompleter-Schlüsselwortliste wieder " -"her." - -#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:33 -msgid "Delete all autocompleter keywords from the list." -msgstr "Löschen Sie alle Autocompleter-Schlüsselwörter aus der Liste." - -#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:41 -msgid "Keywords list" -msgstr "Liste der Stichwörter" - -#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:43 -msgid "" -"List of keywords used by\n" -"the autocompleter in FlatCAM.\n" -"The autocompleter is installed\n" -"in the Code Editor and for the Tcl Shell." -msgstr "" -"Liste der von verwendeten Schlüsselwörter\n" -"der Autocompleter in FlatCAM.\n" -"Der Autocompleter ist installiert\n" -"im Code-Editor und für die Tcl-Shell." - -#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:64 -#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:73 -#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:63 -#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:62 -msgid "Extension" -msgstr "Erweiterung" - -#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:65 -msgid "A keyword to be added or deleted to the list." -msgstr "" -"Ein Schlüsselwort, das der Liste hinzugefügt oder gelöscht werden soll." - -#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:73 -msgid "Add keyword" -msgstr "Keyword hinzufügen" - -#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:74 -msgid "Add a keyword to the list" -msgstr "Fügen Sie der Liste ein Schlüsselwort hinzu" - -#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:75 -msgid "Delete keyword" -msgstr "Stichwort löschen" - -#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:76 -msgid "Delete a keyword from the list" -msgstr "Löschen Sie ein Schlüsselwort aus der Liste" - -#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:27 -msgid "Excellon File associations" -msgstr "Excellon-Dateizuordnungen" - -#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:41 -#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:31 -#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:31 -msgid "Restore the extension list to the default state." -msgstr "Stellen Sie den Standardzustand der Erweiterungsliste wieder her." - -#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:43 -#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:33 -#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:33 -msgid "Delete all extensions from the list." -msgstr "Löschen Sie alle Erweiterungen aus der Liste." - -#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:51 -#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:41 -#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:41 -msgid "Extensions list" -msgstr "Erweiterungsliste" - -#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:53 -#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:43 -#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:43 -msgid "" -"List of file extensions to be\n" -"associated with FlatCAM." -msgstr "" -"Liste der zu verwendenden Dateierweiterungen\n" -"im Zusammenhang mit FlatCAM." - -#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:74 -#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:64 -#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:63 -msgid "A file extension to be added or deleted to the list." -msgstr "A file extension to be added or deleted to the list." - -#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:82 -#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:72 -#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:71 -msgid "Add Extension" -msgstr "Erweiterung hinzufügen" - -#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:83 -#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:73 -#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:72 -msgid "Add a file extension to the list" -msgstr "Fügen Sie der Liste eine Dateierweiterung hinzu" - -#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:84 -#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:74 -#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:73 -msgid "Delete Extension" -msgstr "Erweiterung löschen" - -#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:85 -#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:75 -#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:74 -msgid "Delete a file extension from the list" -msgstr "Löschen Sie eine Dateierweiterung aus der Liste" - -#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:92 -#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:82 -#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:81 -msgid "Apply Association" -msgstr "Assoziation anwenden" - -#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:93 -#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:83 -#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:82 -msgid "" -"Apply the file associations between\n" -"FlatCAM and the files with above extensions.\n" -"They will be active after next logon.\n" -"This work only in Windows." -msgstr "" -"Wenden Sie die Dateizuordnungen zwischen an\n" -"FlatCAM und die Dateien mit den oben genannten Erweiterungen.\n" -"Sie sind nach der nächsten Anmeldung aktiv.\n" -"Dies funktioniert nur unter Windows." - -#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:27 -msgid "GCode File associations" -msgstr "GCode-Dateizuordnungen" - -#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:27 -msgid "Gerber File associations" -msgstr "Gerber Dateizuordnungen" - -#: AppObjects/AppObject.py:134 -#, python-brace-format -msgid "" -"Object ({kind}) failed because: {error} \n" -"\n" -msgstr "" -"Objekt ({kind}) gescheitert weil: {error} \n" -"\n" - -#: AppObjects/AppObject.py:149 -msgid "Converting units to " -msgstr "Einheiten umrechnen in " - -#: AppObjects/AppObject.py:254 -msgid "CREATE A NEW FLATCAM TCL SCRIPT" -msgstr "NEUES FLATCAL TCL SCRIPT ERZEUGEN" - -#: AppObjects/AppObject.py:255 -msgid "TCL Tutorial is here" -msgstr "Das TCL Tutorial ist hier" - -#: AppObjects/AppObject.py:257 -msgid "FlatCAM commands list" -msgstr "FlatCAM Befehlsliste" - -#: AppObjects/AppObject.py:258 -msgid "" -"Type >help< followed by Run Code for a list of FlatCAM Tcl Commands " -"(displayed in Tcl Shell)." -msgstr "" -"Geben Sie >help< gefolgt von Run Code ein, um eine Liste der FlatCAM Tcl-" -"Befehle anzuzeigen (angezeigt in der Tcl-Shell)." - -#: AppObjects/AppObject.py:304 AppObjects/AppObject.py:310 -#: AppObjects/AppObject.py:316 AppObjects/AppObject.py:322 -#: AppObjects/AppObject.py:328 AppObjects/AppObject.py:334 -msgid "created/selected" -msgstr "erstellt / ausgewählt" - -#: AppObjects/FlatCAMCNCJob.py:429 AppObjects/FlatCAMDocument.py:71 -#: AppObjects/FlatCAMScript.py:82 -msgid "Basic" -msgstr "Basic" - -#: AppObjects/FlatCAMCNCJob.py:435 AppObjects/FlatCAMDocument.py:75 -#: AppObjects/FlatCAMScript.py:86 -msgid "Advanced" -msgstr "Erweitert" - -#: AppObjects/FlatCAMCNCJob.py:478 -msgid "Plotting..." -msgstr "Zeichnung..." - -#: AppObjects/FlatCAMCNCJob.py:517 AppTools/ToolSolderPaste.py:1511 -msgid "Export cancelled ..." -msgstr "Export abgebrochen ..." - -#: AppObjects/FlatCAMCNCJob.py:538 -msgid "File saved to" -msgstr "Datei gespeichert in" - -#: AppObjects/FlatCAMCNCJob.py:548 AppObjects/FlatCAMScript.py:134 -#: App_Main.py:7301 -msgid "Loading..." -msgstr "Wird geladen..." - -#: AppObjects/FlatCAMCNCJob.py:562 App_Main.py:7398 -msgid "Code Editor" -msgstr "Code-Editor" - -#: AppObjects/FlatCAMCNCJob.py:599 AppTools/ToolCalibration.py:1097 -msgid "Loaded Machine Code into Code Editor" -msgstr "Maschinencode in den Code-Editor geladen" - -#: AppObjects/FlatCAMCNCJob.py:740 -msgid "This CNCJob object can't be processed because it is a" -msgstr "Dieses CNCJob-Objekt kann nicht verarbeitet werden, da es sich um ein" - -#: AppObjects/FlatCAMCNCJob.py:742 -msgid "CNCJob object" -msgstr "CNCJob-Objekt" - -#: AppObjects/FlatCAMCNCJob.py:922 -msgid "" -"G-code does not have a G94 code and we will not include the code in the " -"'Prepend to GCode' text box" -msgstr "" -"G-Code hat keinen G94-Code und wir werden den Code nicht in das Textfeld " -"\"Vor dem GCode\" aufnehmen" - -#: AppObjects/FlatCAMCNCJob.py:933 -msgid "Cancelled. The Toolchange Custom code is enabled but it's empty." -msgstr "" -"Abgebrochen. Der benutzerdefinierte Code zum Ändern des Werkzeugs ist " -"aktiviert, aber er ist leer." - -#: AppObjects/FlatCAMCNCJob.py:938 -msgid "Toolchange G-code was replaced by a custom code." -msgstr "" -"Der Werkzeugwechsel-G-Code wurde durch einen benutzerdefinierten Code " -"ersetzt." - -#: AppObjects/FlatCAMCNCJob.py:986 AppObjects/FlatCAMCNCJob.py:995 -msgid "" -"The used preprocessor file has to have in it's name: 'toolchange_custom'" -msgstr "" -"Die verwendete Postprozessor-Datei muss im Namen enthalten sein: " -"'toolchange_custom'" - -#: AppObjects/FlatCAMCNCJob.py:998 -msgid "There is no preprocessor file." -msgstr "Es gibt keine Postprozessor-Datei." - -#: AppObjects/FlatCAMDocument.py:175 -msgid "Document Editor" -msgstr "Dokumenteditor" - -#: AppObjects/FlatCAMExcellon.py:537 AppObjects/FlatCAMExcellon.py:856 -#: AppObjects/FlatCAMGeometry.py:380 AppObjects/FlatCAMGeometry.py:861 -#: AppTools/ToolIsolation.py:1051 AppTools/ToolIsolation.py:1185 -#: AppTools/ToolNCC.py:811 AppTools/ToolNCC.py:1214 AppTools/ToolPaint.py:778 -#: AppTools/ToolPaint.py:1190 -msgid "Multiple Tools" -msgstr "Mehrere Werkzeuge" - -#: AppObjects/FlatCAMExcellon.py:836 -msgid "No Tool Selected" -msgstr "Kein Werkzeug ausgewählt" - -#: AppObjects/FlatCAMExcellon.py:1234 AppObjects/FlatCAMExcellon.py:1348 -#: AppObjects/FlatCAMExcellon.py:1535 -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:1241 -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:1265 AppObjects/FlatCAMExcellon.py:1368 -#: AppObjects/FlatCAMExcellon.py:1553 tclCommands/TclCommandDrillcncjob.py:195 -msgid "Tool_nr" -msgstr "Werkzeugnummer" - -#: AppObjects/FlatCAMExcellon.py:1265 AppObjects/FlatCAMExcellon.py:1368 -#: AppObjects/FlatCAMExcellon.py:1553 tclCommands/TclCommandDrillcncjob.py:195 -msgid "Drills_Nr" -msgstr "Bohrnummer" - -#: AppObjects/FlatCAMExcellon.py:1265 AppObjects/FlatCAMExcellon.py:1368 -#: AppObjects/FlatCAMExcellon.py:1553 tclCommands/TclCommandDrillcncjob.py:195 -msgid "Slots_Nr" -msgstr "Schlitznummer" - -#: AppObjects/FlatCAMExcellon.py:1357 -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." - -#: AppObjects/FlatCAMExcellon.py:1461 AppObjects/FlatCAMGeometry.py:1636 -msgid "Focus Z" -msgstr "Fokus Z" - -#: AppObjects/FlatCAMExcellon.py:1480 AppObjects/FlatCAMGeometry.py:1655 -msgid "Laser Power" -msgstr "Laserleistung" - -#: AppObjects/FlatCAMExcellon.py:1610 AppObjects/FlatCAMGeometry.py:2088 -#: AppObjects/FlatCAMGeometry.py:2092 AppObjects/FlatCAMGeometry.py:2243 -msgid "Generating CNC Code" -msgstr "CNC-Code generieren" - -#: AppObjects/FlatCAMExcellon.py:1663 AppObjects/FlatCAMGeometry.py:2553 -msgid "Delete failed. There are no exclusion areas to delete." -msgstr "Löschen fehlgeschlagen. Es sind keine Ausschlussbereiche zu löschen." - -#: AppObjects/FlatCAMExcellon.py:1680 AppObjects/FlatCAMGeometry.py:2570 -msgid "Delete failed. Nothing is selected." -msgstr "Löschen fehlgeschlagen. Es ist nichts ausgewählt." - -#: AppObjects/FlatCAMExcellon.py:1945 AppTools/ToolIsolation.py:1253 -#: AppTools/ToolNCC.py:918 AppTools/ToolPaint.py:843 -msgid "Current Tool parameters were applied to all tools." -msgstr "Aktuelle Werkzeugparameter wurden auf alle Werkzeuge angewendet." - -#: AppObjects/FlatCAMGeometry.py:124 AppObjects/FlatCAMGeometry.py:1298 -#: AppObjects/FlatCAMGeometry.py:1299 AppObjects/FlatCAMGeometry.py:1308 -msgid "Iso" -msgstr "Iso" - -#: AppObjects/FlatCAMGeometry.py:124 AppObjects/FlatCAMGeometry.py:522 -#: AppObjects/FlatCAMGeometry.py:920 AppObjects/FlatCAMGerber.py:565 -#: AppObjects/FlatCAMGerber.py:708 AppTools/ToolCutOut.py:727 -#: AppTools/ToolCutOut.py:923 AppTools/ToolCutOut.py:1083 -#: AppTools/ToolIsolation.py:1842 AppTools/ToolIsolation.py:1979 -#: AppTools/ToolIsolation.py:2150 -msgid "Rough" -msgstr "Rau" - -#: AppObjects/FlatCAMGeometry.py:124 -msgid "Finish" -msgstr "Oberfläche" - -#: AppObjects/FlatCAMGeometry.py:557 -msgid "Add from Tool DB" -msgstr "Werkzeug aus Werkzeugdatenbank hinzufügen" - -#: AppObjects/FlatCAMGeometry.py:939 -msgid "Tool added in Tool Table." -msgstr "Werkzeug in der Werkzeugtabelle hinzugefügt." - -#: AppObjects/FlatCAMGeometry.py:1048 AppObjects/FlatCAMGeometry.py:1057 -msgid "Failed. Select a tool to copy." -msgstr "Fehlgeschlagen. Wählen Sie ein Werkzeug zum Kopieren aus." - -#: AppObjects/FlatCAMGeometry.py:1086 -msgid "Tool was copied in Tool Table." -msgstr "Das Werkzeug wurde in die Werkzeugtabelle kopiert." - -#: AppObjects/FlatCAMGeometry.py:1113 -msgid "Tool was edited in Tool Table." -msgstr "Das Werkzeug wurde in der Werkzeugtabelle bearbeitet." - -#: AppObjects/FlatCAMGeometry.py:1142 AppObjects/FlatCAMGeometry.py:1151 -msgid "Failed. Select a tool to delete." -msgstr "Gescheitert. Wählen Sie ein Werkzeug zum Löschen aus." - -#: AppObjects/FlatCAMGeometry.py:1175 -msgid "Tool was deleted in Tool Table." -msgstr "Werkzeug wurde in der Werkzeugtabelle gelöscht." - -#: AppObjects/FlatCAMGeometry.py:1212 AppObjects/FlatCAMGeometry.py:1221 -msgid "" -"Disabled because the tool is V-shape.\n" -"For V-shape tools the depth of cut is\n" -"calculated from other parameters like:\n" -"- 'V-tip Angle' -> angle at the tip of the tool\n" -"- 'V-tip Dia' -> diameter at the tip of the tool \n" -"- Tool Dia -> 'Dia' column found in the Tool Table\n" -"NB: a value of zero means that Tool Dia = 'V-tip Dia'" -msgstr "" -"Deaktiviert, da das Werkzeug V-förmig ist.\n" -"Bei V-förmigen Werkzeugen beträgt die Schnitttiefe\n" -"berechnet aus anderen Parametern wie:\n" -"- 'V-Spitzenwinkel' -> Winkel an der Spitze des Werkzeugs\n" -"- 'V-Spitze Durchmesser' -> Durchmesser an der Spitze des Werkzeugs\n" -"- Werkzeugdurchmesser -> Spalte 'Durchmesser' in der Werkzeugtabelle\n" -"NB: Ein Wert von Null bedeutet, dass Werkzeugdurchmesser = 'V-Spitze " -"Durchmesser'" - -#: AppObjects/FlatCAMGeometry.py:1708 -msgid "This Geometry can't be processed because it is" -msgstr "Diese Geometrie kann nicht verarbeitet werden, da dies der Fall ist" - -#: AppObjects/FlatCAMGeometry.py:1708 -msgid "geometry" -msgstr "geometrie" - -#: AppObjects/FlatCAMGeometry.py:1749 -msgid "Failed. No tool selected in the tool table ..." -msgstr "Gescheitert. Kein Werkzeug in der Werkzeugtabelle ausgewählt ..." - -#: AppObjects/FlatCAMGeometry.py:1847 AppObjects/FlatCAMGeometry.py:1997 -msgid "" -"Tool Offset is selected in Tool Table but no value is provided.\n" -"Add a Tool Offset or change the Offset Type." -msgstr "" -"Werkzeugversatz ist in der Werkzeugtabelle ausgewählt, es wird jedoch kein " -"Wert angegeben.\n" -"Fügen Sie einen Werkzeugversatz hinzu oder ändern Sie den Versatztyp." - -#: AppObjects/FlatCAMGeometry.py:1913 AppObjects/FlatCAMGeometry.py:2059 -msgid "G-Code parsing in progress..." -msgstr "G-Code-Analyse läuft ..." - -#: AppObjects/FlatCAMGeometry.py:1915 AppObjects/FlatCAMGeometry.py:2061 -msgid "G-Code parsing finished..." -msgstr "G-Code-Analyse beendet ..." - -#: AppObjects/FlatCAMGeometry.py:1923 -msgid "Finished G-Code processing" -msgstr "G-Code-Verarbeitung abgeschlossen" - -#: AppObjects/FlatCAMGeometry.py:1925 AppObjects/FlatCAMGeometry.py:2073 -msgid "G-Code processing failed with error" -msgstr "G-Code-Verarbeitung fehlgeschlagen mit Fehler" - -#: AppObjects/FlatCAMGeometry.py:1967 AppTools/ToolSolderPaste.py:1309 -msgid "Cancelled. Empty file, it has no geometry" -msgstr "Abgebrochen. Leere Datei hat keine Geometrie" - -#: AppObjects/FlatCAMGeometry.py:2071 AppObjects/FlatCAMGeometry.py:2238 -msgid "Finished G-Code processing..." -msgstr "Fertige G-Code Verarbeitung ..." - -#: AppObjects/FlatCAMGeometry.py:2090 AppObjects/FlatCAMGeometry.py:2094 -#: AppObjects/FlatCAMGeometry.py:2245 -msgid "CNCjob created" -msgstr "CNCjob erstellt" - -#: AppObjects/FlatCAMGeometry.py:2276 AppObjects/FlatCAMGeometry.py:2285 -#: AppParsers/ParseGerber.py:1866 AppParsers/ParseGerber.py:1876 -msgid "Scale factor has to be a number: integer or float." -msgstr "" -"Der Skalierungsfaktor muss eine Zahl sein: Ganzzahl oder Fließkommazahl." - -#: AppObjects/FlatCAMGeometry.py:2348 -msgid "Geometry Scale done." -msgstr "Geometrie Skalierung fertig." - -#: AppObjects/FlatCAMGeometry.py:2365 AppParsers/ParseGerber.py:1992 -msgid "" -"An (x,y) pair of values are needed. Probable you entered only one value in " -"the Offset field." -msgstr "" -"Ein (x, y) Wertepaar wird benötigt. Wahrscheinlich haben Sie im Feld Offset " -"nur einen Wert eingegeben." - -#: AppObjects/FlatCAMGeometry.py:2421 -msgid "Geometry Offset done." -msgstr "Geometrie Offset fertig." - -#: AppObjects/FlatCAMGeometry.py:2450 -msgid "" -"The Toolchange X,Y field in Edit -> Preferences has to be in the format (x, " -"y)\n" -"but now there is only one value, not two." -msgstr "" -"Das Werkzeugwechsel X, Y Feld in Bearbeiten -> Einstellungen muss im Format " -"(x, y) sein\n" -"Aber jetzt gibt es nur einen Wert, nicht zwei." - -#: AppObjects/FlatCAMGerber.py:388 AppTools/ToolIsolation.py:1577 -msgid "Buffering solid geometry" -msgstr "Festkörpergeometrie puffern" - -#: AppObjects/FlatCAMGerber.py:397 AppTools/ToolIsolation.py:1599 -msgid "Done" -msgstr "Fertig" - -#: AppObjects/FlatCAMGerber.py:423 AppObjects/FlatCAMGerber.py:449 -msgid "Operation could not be done." -msgstr "Operation konnte nicht durchgeführt werden." - -#: AppObjects/FlatCAMGerber.py:581 AppObjects/FlatCAMGerber.py:655 -#: AppTools/ToolIsolation.py:1805 AppTools/ToolIsolation.py:2126 -#: AppTools/ToolNCC.py:2117 AppTools/ToolNCC.py:3197 AppTools/ToolNCC.py:3576 -msgid "Isolation geometry could not be generated." -msgstr "Isolationsgeometrie konnte nicht generiert werden." - -#: AppObjects/FlatCAMGerber.py:606 AppObjects/FlatCAMGerber.py:733 -#: AppTools/ToolIsolation.py:1869 AppTools/ToolIsolation.py:2035 -#: AppTools/ToolIsolation.py:2202 -msgid "Isolation geometry created" -msgstr "Isolationsgeometrie erstellt" - -#: AppObjects/FlatCAMGerber.py:1028 -msgid "Plotting Apertures" -msgstr "Plotten Apertures" - -#: AppObjects/FlatCAMObj.py:237 -msgid "Name changed from" -msgstr "Name geändert von" - -#: AppObjects/FlatCAMObj.py:237 -msgid "to" -msgstr "zu" - -#: AppObjects/FlatCAMObj.py:248 -msgid "Offsetting..." -msgstr "Offset hinzufügen ..." - -#: AppObjects/FlatCAMObj.py:262 AppObjects/FlatCAMObj.py:267 -msgid "Scaling could not be executed." -msgstr "Skalierungsaktion wurde nicht ausgeführt." - -#: AppObjects/FlatCAMObj.py:271 AppObjects/FlatCAMObj.py:279 -msgid "Scale done." -msgstr "Skalieren Sie fertig." - -#: AppObjects/FlatCAMObj.py:277 -msgid "Scaling..." -msgstr "Skalierung ..." - -#: AppObjects/FlatCAMObj.py:295 -msgid "Skewing..." -msgstr "Verziehen..." - -#: AppObjects/FlatCAMScript.py:163 -msgid "Script Editor" -msgstr "Script Editor" - -#: AppObjects/ObjectCollection.py:514 -#, python-brace-format -msgid "Object renamed from {old} to {new}" -msgstr "Objekt umbenannt von {old} zu {new}" - -#: AppObjects/ObjectCollection.py:926 AppObjects/ObjectCollection.py:932 -#: AppObjects/ObjectCollection.py:938 AppObjects/ObjectCollection.py:944 -#: AppObjects/ObjectCollection.py:950 AppObjects/ObjectCollection.py:956 -#: App_Main.py:6235 App_Main.py:6241 App_Main.py:6247 App_Main.py:6253 -msgid "selected" -msgstr "ausgewählt" - -#: AppObjects/ObjectCollection.py:987 -msgid "Cause of error" -msgstr "Fehlerursache" - -#: AppObjects/ObjectCollection.py:1188 -msgid "All objects are selected." -msgstr "Alle Objekte werden ausgewählt." - -#: AppObjects/ObjectCollection.py:1198 -msgid "Objects selection is cleared." -msgstr "Die Objektauswahl wird gelöscht." - -#: AppParsers/ParseExcellon.py:315 -msgid "This is GCODE mark" -msgstr "Dies ist die GCODE-Marke" - -#: AppParsers/ParseExcellon.py:432 -msgid "" -"No tool diameter info's. See shell.\n" -"A tool change event: T" -msgstr "" -"Keine Angaben zum Werkzeugdurchmesser. Siehe Shell.\n" -"Ein Werkzeugwechselereignis: T" - -#: AppParsers/ParseExcellon.py:435 -msgid "" -"was found but the Excellon file have no informations regarding the tool " -"diameters therefore the application will try to load it by using some 'fake' " -"diameters.\n" -"The user needs to edit the resulting Excellon object and change the " -"diameters to reflect the real diameters." -msgstr "" -"wurde gefunden, aber die Excellon-Datei enthält keine Informationen zu den " -"Werkzeugdurchmessern. Daher wird die Anwendung versuchen, diese mit Hilfe " -"einiger gefälschter Durchmesser zu laden.\n" -"Der Benutzer muss das resultierende Excellon-Objekt bearbeiten und die " -"Durchmesser so ändern, dass sie den tatsächlichen Durchmessern entsprechen." - -#: AppParsers/ParseExcellon.py:899 -msgid "" -"Excellon Parser error.\n" -"Parsing Failed. Line" -msgstr "" -"Excellon-Parser-Fehler.\n" -"Analyse fehlgeschlagen. Linie" - -#: AppParsers/ParseExcellon.py:981 -msgid "" -"Excellon.create_geometry() -> a drill location was skipped due of not having " -"a tool associated.\n" -"Check the resulting GCode." -msgstr "" -"Excellon.create_geometry () -> Eine Bohrposition wurde übersprungen, da kein " -"Werkzeug zugeordnet ist.\n" -"Überprüfen Sie den resultierenden GCode." - -#: AppParsers/ParseFont.py:303 -msgid "Font not supported, try another one." -msgstr "Schriftart wird nicht unterstützt, versuchen Sie es mit einer anderen." - -#: AppParsers/ParseGerber.py:425 -msgid "Gerber processing. Parsing" -msgstr "Gerber-Verarbeitung. Parsing" - -#: AppParsers/ParseGerber.py:425 AppParsers/ParseHPGL2.py:181 -msgid "lines" -msgstr "Linien" - -#: AppParsers/ParseGerber.py:1001 AppParsers/ParseGerber.py:1101 -#: AppParsers/ParseHPGL2.py:274 AppParsers/ParseHPGL2.py:288 -#: AppParsers/ParseHPGL2.py:307 AppParsers/ParseHPGL2.py:331 -#: AppParsers/ParseHPGL2.py:366 -msgid "Coordinates missing, line ignored" -msgstr "Koordinaten fehlen, Zeile wird ignoriert" - -#: AppParsers/ParseGerber.py:1003 AppParsers/ParseGerber.py:1103 -msgid "GERBER file might be CORRUPT. Check the file !!!" -msgstr "Die GERBER-Datei könnte CORRUPT sein. Überprüfen Sie die Datei !!!" - -#: AppParsers/ParseGerber.py:1057 -msgid "" -"Region does not have enough points. File will be processed but there are " -"parser errors. Line number" -msgstr "" -"Region hat nicht genug Punkte. Die Datei wird verarbeitet, es treten jedoch " -"Parserfehler auf. Linien Nummer" - -#: AppParsers/ParseGerber.py:1487 AppParsers/ParseHPGL2.py:401 -msgid "Gerber processing. Joining polygons" -msgstr "Gerber-Verarbeitung. Polygone verbinden" - -#: AppParsers/ParseGerber.py:1504 -msgid "Gerber processing. Applying Gerber polarity." -msgstr "Gerber-Verarbeitung. Anwenden der Gerber-Polarität." - -#: AppParsers/ParseGerber.py:1564 -msgid "Gerber Line" -msgstr "Gerber Linie" - -#: AppParsers/ParseGerber.py:1564 -msgid "Gerber Line Content" -msgstr "Gerber-Zeileninhalt" - -#: AppParsers/ParseGerber.py:1566 -msgid "Gerber Parser ERROR" -msgstr "Gerber-Parser FEHLER" - -#: AppParsers/ParseGerber.py:1956 -msgid "Gerber Scale done." -msgstr "Gerber-Skalierung erfolgt." - -#: AppParsers/ParseGerber.py:2048 -msgid "Gerber Offset done." -msgstr "Gerber Offset fertig." - -#: AppParsers/ParseGerber.py:2124 -msgid "Gerber Mirror done." -msgstr "Gerber Spiegel fertig." - -#: AppParsers/ParseGerber.py:2198 -msgid "Gerber Skew done." -msgstr "Gerber-Versatz fertig." - -#: AppParsers/ParseGerber.py:2260 -msgid "Gerber Rotate done." -msgstr "Gerber drehen fertig." - -#: AppParsers/ParseGerber.py:2417 -msgid "Gerber Buffer done." -msgstr "Gerber Buffer fertig." - -#: AppParsers/ParseHPGL2.py:181 -msgid "HPGL2 processing. Parsing" -msgstr "HPGL2 -Verarbeitung. Parsing" - -#: AppParsers/ParseHPGL2.py:413 -msgid "HPGL2 Line" -msgstr "HPGL2-Linie" - -#: AppParsers/ParseHPGL2.py:413 -msgid "HPGL2 Line Content" -msgstr "HPGL2-Zeileninhalt" - -#: AppParsers/ParseHPGL2.py:414 -msgid "HPGL2 Parser ERROR" -msgstr "HPGL2 -Parser FEHLER" - -#: AppProcess.py:172 -msgid "processes running." -msgstr "laufende Prozesse." - -#: AppTools/ToolAlignObjects.py:32 -msgid "Align Objects" -msgstr "Objekte ausrichten" - -#: AppTools/ToolAlignObjects.py:61 -msgid "MOVING object" -msgstr "BEWEGLICHES Objekt" - -#: AppTools/ToolAlignObjects.py:65 -msgid "" -"Specify the type of object to be aligned.\n" -"It can be of type: Gerber or Excellon.\n" -"The selection here decide the type of objects that will be\n" -"in the Object combobox." -msgstr "" -"Geben Sie den Objekttyp an, der ausgerichtet werden soll.\n" -"Es kann vom Typ sein: Gerber oder Excellon.\n" -"Die Auswahl hier entscheidet über die Art der Objekte, die sein werden\n" -"in der Objekt-Combobox." - -#: AppTools/ToolAlignObjects.py:86 -msgid "Object to be aligned." -msgstr "Zu ausrichtendes Objekt." - -#: AppTools/ToolAlignObjects.py:98 -msgid "TARGET object" -msgstr "ZIEL-Objekt" - -#: AppTools/ToolAlignObjects.py:100 -msgid "" -"Specify the type of object to be aligned to.\n" -"It can be of type: Gerber or Excellon.\n" -"The selection here decide the type of objects that will be\n" -"in the Object combobox." -msgstr "" -"Geben Sie den Objekttyp an, an dem ausgerichtet werden soll.\n" -"Es kann vom Typ sein: Gerber oder Excellon.\n" -"Die Auswahl hier entscheidet über die Art der Objekte, die sein werden\n" -"in der Objekt-Combobox." - -#: AppTools/ToolAlignObjects.py:122 -msgid "Object to be aligned to. Aligner." -msgstr "Objekt, an dem ausgerichtet werden soll. Aligner." - -#: AppTools/ToolAlignObjects.py:135 -msgid "Alignment Type" -msgstr "AusrichtungstypAusrichtung" - -#: AppTools/ToolAlignObjects.py:137 -msgid "" -"The type of alignment can be:\n" -"- Single Point -> it require a single point of sync, the action will be a " -"translation\n" -"- Dual Point -> it require two points of sync, the action will be " -"translation followed by rotation" -msgstr "" -"Die Art der Ausrichtung kann sein:\n" -"- Einzelpunkt -> Es ist ein einzelner Synchronisierungspunkt erforderlich. " -"Die Aktion ist eine Übersetzung\n" -"- Doppelpunkt -> Es sind zwei Synchronisierungspunkte erforderlich. Die " -"Aktion wird verschoben und anschließend gedreht" - -#: AppTools/ToolAlignObjects.py:143 -msgid "Single Point" -msgstr "Einziger Punkt" - -#: AppTools/ToolAlignObjects.py:144 -msgid "Dual Point" -msgstr "Doppelpunkt" - -#: AppTools/ToolAlignObjects.py:159 -msgid "Align Object" -msgstr "Objekt ausrichten" - -#: AppTools/ToolAlignObjects.py:161 -msgid "" -"Align the specified object to the aligner object.\n" -"If only one point is used then it assumes translation.\n" -"If tho points are used it assume translation and rotation." -msgstr "" -"Richten Sie das angegebene Objekt am Aligner-Objekt aus.\n" -"Wenn nur ein Punkt verwendet wird, wird eine Übersetzung vorausgesetzt.\n" -"Wenn diese Punkte verwendet werden, wird eine Translation und Rotation " -"angenommen." - -#: AppTools/ToolAlignObjects.py:176 AppTools/ToolCalculators.py:246 -#: AppTools/ToolCalibration.py:683 AppTools/ToolCopperThieving.py:488 -#: AppTools/ToolCorners.py:182 AppTools/ToolCutOut.py:362 -#: AppTools/ToolDblSided.py:471 AppTools/ToolEtchCompensation.py:240 -#: AppTools/ToolExtractDrills.py:310 AppTools/ToolFiducials.py:321 -#: AppTools/ToolFilm.py:503 AppTools/ToolInvertGerber.py:143 -#: AppTools/ToolIsolation.py:591 AppTools/ToolNCC.py:612 -#: AppTools/ToolOptimal.py:243 AppTools/ToolPaint.py:555 -#: AppTools/ToolPanelize.py:280 AppTools/ToolPunchGerber.py:339 -#: AppTools/ToolQRCode.py:323 AppTools/ToolRulesCheck.py:516 -#: AppTools/ToolSolderPaste.py:481 AppTools/ToolSub.py:181 -#: AppTools/ToolTransform.py:398 -msgid "Reset Tool" -msgstr "Reset Werkzeug" - -#: AppTools/ToolAlignObjects.py:178 AppTools/ToolCalculators.py:248 -#: AppTools/ToolCalibration.py:685 AppTools/ToolCopperThieving.py:490 -#: AppTools/ToolCorners.py:184 AppTools/ToolCutOut.py:364 -#: AppTools/ToolDblSided.py:473 AppTools/ToolEtchCompensation.py:242 -#: AppTools/ToolExtractDrills.py:312 AppTools/ToolFiducials.py:323 -#: AppTools/ToolFilm.py:505 AppTools/ToolInvertGerber.py:145 -#: AppTools/ToolIsolation.py:593 AppTools/ToolNCC.py:614 -#: AppTools/ToolOptimal.py:245 AppTools/ToolPaint.py:557 -#: AppTools/ToolPanelize.py:282 AppTools/ToolPunchGerber.py:341 -#: AppTools/ToolQRCode.py:325 AppTools/ToolRulesCheck.py:518 -#: AppTools/ToolSolderPaste.py:483 AppTools/ToolSub.py:183 -#: AppTools/ToolTransform.py:400 -msgid "Will reset the tool parameters." -msgstr "Wird die Werkzeugeinstellungen zurücksetzen." - -#: AppTools/ToolAlignObjects.py:244 -msgid "Align Tool" -msgstr "Ausrichten Werkzeug" - -#: AppTools/ToolAlignObjects.py:289 -msgid "There is no aligned FlatCAM object selected..." -msgstr "Es ist kein ausgerichtetes FlatCAM-Objekt ausgewählt ..." - -#: AppTools/ToolAlignObjects.py:299 -msgid "There is no aligner FlatCAM object selected..." -msgstr "Es ist kein Aligner FlatCAM-Objekt ausgewählt ..." - -#: AppTools/ToolAlignObjects.py:321 AppTools/ToolAlignObjects.py:385 -msgid "First Point" -msgstr "Erster Punkt" - -#: AppTools/ToolAlignObjects.py:321 AppTools/ToolAlignObjects.py:400 -msgid "Click on the START point." -msgstr "Klicken Sie auf den START-Punkt." - -#: AppTools/ToolAlignObjects.py:380 AppTools/ToolCalibration.py:920 -msgid "Cancelled by user request." -msgstr "Auf Benutzerwunsch storniert." - -#: AppTools/ToolAlignObjects.py:385 AppTools/ToolAlignObjects.py:407 -msgid "Click on the DESTINATION point." -msgstr "Klicken Sie auf den Punkt ZIEL." - -#: AppTools/ToolAlignObjects.py:385 AppTools/ToolAlignObjects.py:400 -#: AppTools/ToolAlignObjects.py:407 -msgid "Or right click to cancel." -msgstr "Oder klicken Sie mit der rechten Maustaste, um abzubrechen." - -#: AppTools/ToolAlignObjects.py:400 AppTools/ToolAlignObjects.py:407 -#: AppTools/ToolFiducials.py:107 -msgid "Second Point" -msgstr "Zweiter Punkt" - -#: AppTools/ToolCalculators.py:24 -msgid "Calculators" -msgstr "Rechner" - -#: AppTools/ToolCalculators.py:26 -msgid "Units Calculator" -msgstr "Einheitenrechner" - -#: AppTools/ToolCalculators.py:70 -msgid "Here you enter the value to be converted from INCH to MM" -msgstr "" -"Hier geben Sie den Wert ein, der von Zoll in Metrik konvertiert werden soll" - -#: AppTools/ToolCalculators.py:75 -msgid "Here you enter the value to be converted from MM to INCH" -msgstr "" -"Hier geben Sie den Wert ein, der von Metrik in Zoll konvertiert werden soll" - -#: AppTools/ToolCalculators.py:111 -msgid "" -"This is the angle of the tip of the tool.\n" -"It is specified by manufacturer." -msgstr "" -"Dies ist der Winkel der Werkzeugspitze.\n" -"Es wird vom Hersteller angegeben." - -#: AppTools/ToolCalculators.py:120 -msgid "" -"This is the depth to cut into the material.\n" -"In the CNCJob is the CutZ parameter." -msgstr "" -"Dies ist die Tiefe, in die das Material geschnitten werden soll.\n" -"Im CNCJob befindet sich der Parameter CutZ." - -#: AppTools/ToolCalculators.py:128 -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 "" -"Dies ist der Werkzeugdurchmesser, in den eingegeben werden soll\n" -"FlatCAM-Gerber-Bereich.\n" -"Im CNCJob-Bereich heißt es >Werkzeugdurchmesser<." - -#: AppTools/ToolCalculators.py:139 AppTools/ToolCalculators.py:235 -msgid "Calculate" -msgstr "Berechnung" - -#: AppTools/ToolCalculators.py:142 -msgid "" -"Calculate either the Cut Z or the effective tool diameter,\n" -" depending on which is desired and which is known. " -msgstr "" -"Berechnen Sie entweder die Schnitttiefe Z oder den effektiven " -"Werkzeugdurchmesser.\n" -" je nachdem was gewünscht wird und was bekannt ist. " - -#: AppTools/ToolCalculators.py:205 -msgid "Current Value" -msgstr "Aktueller Wert" - -#: AppTools/ToolCalculators.py:212 -msgid "" -"This is the current intensity value\n" -"to be set on the Power Supply. In Amps." -msgstr "" -"Dies ist der aktuelle Intensitätswert\n" -"am Netzteil einstellen. In Ampere." - -#: AppTools/ToolCalculators.py:216 -msgid "Time" -msgstr "Zeit" - -#: AppTools/ToolCalculators.py:223 -msgid "" -"This is the calculated time required for the procedure.\n" -"In minutes." -msgstr "" -"Dies ist die berechnete Zeit, die für das Verfahren benötigt wird.\n" -"In Minuten." - -#: AppTools/ToolCalculators.py:238 -msgid "" -"Calculate the current intensity value and the procedure time,\n" -"depending on the parameters above" -msgstr "" -"Berechnen Sie den aktuellen Intensitätswert und die Eingriffszeit,\n" -"abhängig von den obigen Parametern" - -#: AppTools/ToolCalculators.py:299 -msgid "Calc. Tool" -msgstr "Rechner-Tool" - -#: AppTools/ToolCalibration.py:69 -msgid "Parameters used when creating the GCode in this tool." -msgstr "Verwendete Parameter zum Erzeugen des GCodes mit diesem Wwerkzeug." - -#: AppTools/ToolCalibration.py:173 -msgid "STEP 1: Acquire Calibration Points" -msgstr "Schritt 1: Kalibrierungspunkte erzeugen" - -#: AppTools/ToolCalibration.py:175 -msgid "" -"Pick four points by clicking on canvas.\n" -"Those four points should be in the four\n" -"(as much as possible) corners of the object." -msgstr "" -"Wählen Sie vier Punkte aus, indem Sie auf die Leinwand klicken.\n" -"Diese vier Punkte sollten in den vier sein\n" -"(so viel wie möglich) Ecken des Objekts." - -#: AppTools/ToolCalibration.py:193 AppTools/ToolFilm.py:71 -#: AppTools/ToolImage.py:54 AppTools/ToolPanelize.py:77 -#: AppTools/ToolProperties.py:177 -msgid "Object Type" -msgstr "Objekttyp" - -#: AppTools/ToolCalibration.py:210 -msgid "Source object selection" -msgstr "Auswahl des Quellobjekts" - -#: AppTools/ToolCalibration.py:212 -msgid "FlatCAM Object to be used as a source for reference points." -msgstr "Das FlatCAM-Objekt, das als Referenzpunkt verwendet werden soll." - -#: AppTools/ToolCalibration.py:218 -msgid "Calibration Points" -msgstr "Kalibrierungspunkte" - -#: AppTools/ToolCalibration.py:220 -msgid "" -"Contain the expected calibration points and the\n" -"ones measured." -msgstr "" -"Enthalten die erwarteten Kalibrierungspunkte sowie\n" -"die gemessenen." - -#: AppTools/ToolCalibration.py:235 AppTools/ToolSub.py:81 -#: AppTools/ToolSub.py:136 -msgid "Target" -msgstr "Ziel" - -#: AppTools/ToolCalibration.py:236 -msgid "Found Delta" -msgstr "Gefundener Unterschied" - -#: AppTools/ToolCalibration.py:248 -msgid "Bot Left X" -msgstr "Unten links X" - -#: AppTools/ToolCalibration.py:257 -msgid "Bot Left Y" -msgstr "Unten links Y" - -#: AppTools/ToolCalibration.py:275 -msgid "Bot Right X" -msgstr "Unten rechts X" - -#: AppTools/ToolCalibration.py:285 -msgid "Bot Right Y" -msgstr "Unten rechts Y" - -#: AppTools/ToolCalibration.py:300 -msgid "Top Left X" -msgstr "Oben links X" - -#: AppTools/ToolCalibration.py:309 -msgid "Top Left Y" -msgstr "Oben links Y" - -#: AppTools/ToolCalibration.py:324 -msgid "Top Right X" -msgstr "Oben rechts X" - -#: AppTools/ToolCalibration.py:334 -msgid "Top Right Y" -msgstr "Oben rechts Y" - -#: AppTools/ToolCalibration.py:367 -msgid "Get Points" -msgstr "Punkte einholen" - -#: AppTools/ToolCalibration.py:369 -msgid "" -"Pick four points by clicking on canvas if the source choice\n" -"is 'free' or inside the object geometry if the source is 'object'.\n" -"Those four points should be in the four squares of\n" -"the object." -msgstr "" -"Wählen Sie vier Punkte indem Sie auf die Leinwand klicken (Freier Modus).\n" -"Oder wählen Sie ein Objekt (Objekt Modus)\n" -"Diese vier Punkte sollten in vier unterschiedlichen Quadranten des Objektes " -"sein." - -#: AppTools/ToolCalibration.py:390 -msgid "STEP 2: Verification GCode" -msgstr "Schritt 2: Überprüfung des GCodes" - -#: AppTools/ToolCalibration.py:392 AppTools/ToolCalibration.py:405 -msgid "" -"Generate GCode file to locate and align the PCB by using\n" -"the four points acquired above.\n" -"The points sequence is:\n" -"- first point -> set the origin\n" -"- second point -> alignment point. Can be: top-left or bottom-right.\n" -"- third point -> check point. Can be: top-left or bottom-right.\n" -"- forth point -> final verification point. Just for evaluation." -msgstr "" -"Erstellen Sie eine GCode-Datei, um die Leiterplatte mithilfe von zu " -"lokalisieren und auszurichten\n" -"die vier oben erworbenen Punkte.\n" -"Die Punktesequenz ist:\n" -"- erster Punkt -> Ursprung einstellen\n" -"- zweiter Punkt -> Ausrichtungspunkt. Kann sein: oben links oder unten " -"rechts.\n" -"- dritter Punkt -> Kontrollpunkt. Kann sein: oben links oder unten rechts.\n" -"- vierter Punkt -> letzter Verifizierungspunkt. Nur zur Bewertung." - -#: AppTools/ToolCalibration.py:403 AppTools/ToolSolderPaste.py:344 -msgid "Generate GCode" -msgstr "GCode generieren" - -#: AppTools/ToolCalibration.py:429 -msgid "STEP 3: Adjustments" -msgstr "Schritt 3: Anpassungen" - -#: AppTools/ToolCalibration.py:431 AppTools/ToolCalibration.py:440 -msgid "" -"Calculate Scale and Skew factors based on the differences (delta)\n" -"found when checking the PCB pattern. The differences must be filled\n" -"in the fields Found (Delta)." -msgstr "" -"Berechne die Skalierungs und Verzerrungsfaktoren basierend auf dem Delta\n" -"das bei der Platinenüberprüfung gefunden wurde. Dieses Delta muss den " -"Feldern\n" -"eingetragen warden." - -#: AppTools/ToolCalibration.py:438 -msgid "Calculate Factors" -msgstr "Berechne Faktoren" - -#: AppTools/ToolCalibration.py:460 -msgid "STEP 4: Adjusted GCode" -msgstr "Schritt 4 Angepasster GCode" - -#: AppTools/ToolCalibration.py:462 -msgid "" -"Generate verification GCode file adjusted with\n" -"the factors above." -msgstr "" -"Erzeuge den GCode mit den zuvor gefundenen\n" -"Faktoren." - -#: AppTools/ToolCalibration.py:467 -msgid "Scale Factor X:" -msgstr "Skalierungsfaktor X:" - -#: AppTools/ToolCalibration.py:479 -msgid "Scale Factor Y:" -msgstr "Skalierungsfaktor Y:" - -#: AppTools/ToolCalibration.py:491 -msgid "Apply Scale Factors" -msgstr "Skalierungen anwenden" - -#: AppTools/ToolCalibration.py:493 -msgid "Apply Scale factors on the calibration points." -msgstr "Anwenden der Skalierungsfaktoren auf die Kalibrierungspunkte." - -#: AppTools/ToolCalibration.py:503 -msgid "Skew Angle X:" -msgstr "Verzerrungs-Winkel X:" - -#: AppTools/ToolCalibration.py:516 -msgid "Skew Angle Y:" -msgstr "Verzerrungs-Winkel Y:" - -#: AppTools/ToolCalibration.py:529 -msgid "Apply Skew Factors" -msgstr "Schrägstellung anwenden" - -#: AppTools/ToolCalibration.py:531 -msgid "Apply Skew factors on the calibration points." -msgstr "Anwenden der Verzerrungswinkel auf die Bezugspunkte." - -#: AppTools/ToolCalibration.py:600 -msgid "Generate Adjusted GCode" -msgstr "Angepassten Überprüfungs-GCode generieren" - -#: AppTools/ToolCalibration.py:602 -msgid "" -"Generate verification GCode file adjusted with\n" -"the factors set above.\n" -"The GCode parameters can be readjusted\n" -"before clicking this button." -msgstr "" -"Bestätigungs-GCode-Datei erstellen angepasst mit\n" -"die oben genannten Faktoren.\n" -"Die GCode-Parameter können neu eingestellt werden\n" -"bevor Sie auf diese Schaltfläche klicken." - -#: AppTools/ToolCalibration.py:623 -msgid "STEP 5: Calibrate FlatCAM Objects" -msgstr "Schritt 5: Kalibrieren der FlatCAM Objekte" - -#: AppTools/ToolCalibration.py:625 -msgid "" -"Adjust the FlatCAM objects\n" -"with the factors determined and verified above." -msgstr "" -"Anpassen der FlatCAM Objekte\n" -"mit den zuvor bestimmten und überprüften Faktoren." - -#: AppTools/ToolCalibration.py:637 -msgid "Adjusted object type" -msgstr "Angepasster Objekttyp" - -#: AppTools/ToolCalibration.py:638 -msgid "Type of the FlatCAM Object to be adjusted." -msgstr "Art des FlatCAM Objektes das angepasst wird." - -#: AppTools/ToolCalibration.py:651 -msgid "Adjusted object selection" -msgstr "Objektauswahl angepasst" - -#: AppTools/ToolCalibration.py:653 -msgid "The FlatCAM Object to be adjusted." -msgstr "Das FlatCAM Objekt das angepasst werden muss." - -#: AppTools/ToolCalibration.py:660 -msgid "Calibrate" -msgstr "Kalibrieren" - -#: AppTools/ToolCalibration.py:662 -msgid "" -"Adjust (scale and/or skew) the objects\n" -"with the factors determined above." -msgstr "" -"Anpassen (Skalieren und/oder Verzerren) der Objekte\n" -"anhand der zuvor gefundenen Faktoren." - -#: AppTools/ToolCalibration.py:770 AppTools/ToolCalibration.py:771 -msgid "Origin" -msgstr "Ursprung" - -#: AppTools/ToolCalibration.py:800 -msgid "Tool initialized" -msgstr "Werkzeug eingerichtet" - -#: AppTools/ToolCalibration.py:838 -msgid "There is no source FlatCAM object selected..." -msgstr "Es is kein FlatCAM Objekt ausgewählt." - -#: AppTools/ToolCalibration.py:859 -msgid "Get First calibration point. Bottom Left..." -msgstr "Lese ersten Kalibrierungspunkt (Unten Links)" - -#: AppTools/ToolCalibration.py:926 -msgid "Get Second calibration point. Bottom Right (Top Left)..." -msgstr "Zweiter Kalibrierungspunkt abrufen. Unten rechts (oben links) ..." - -#: AppTools/ToolCalibration.py:930 -msgid "Get Third calibration point. Top Left (Bottom Right)..." -msgstr "" -"Holen Sie sich den dritten Kalibrierungspunkt. Oben links unten rechts)..." - -#: AppTools/ToolCalibration.py:934 -msgid "Get Forth calibration point. Top Right..." -msgstr "Lese vierten Kalibrierungspunkt (Oben Rechts)" - -#: AppTools/ToolCalibration.py:938 -msgid "Done. All four points have been acquired." -msgstr "Erledigt, alle vier Punkte wurden gelesen." - -#: AppTools/ToolCalibration.py:969 -msgid "Verification GCode for FlatCAM Calibration Tool" -msgstr "Überprüfungs GCode des FlatCAM Kalibrierungstools" - -#: AppTools/ToolCalibration.py:981 AppTools/ToolCalibration.py:1067 -msgid "Gcode Viewer" -msgstr "GCode Anzeige" - -#: AppTools/ToolCalibration.py:997 -msgid "Cancelled. Four points are needed for GCode generation." -msgstr "Abgebrochen. Es werden vier Punkte zur GCode Erzeugung benötigt." - -#: AppTools/ToolCalibration.py:1253 AppTools/ToolCalibration.py:1349 -msgid "There is no FlatCAM object selected..." -msgstr "Es ist kein FlatCAM Objekt ausgewählt." - -#: AppTools/ToolCopperThieving.py:76 AppTools/ToolFiducials.py:264 -msgid "Gerber Object to which will be added a copper thieving." -msgstr "Dem Gerber Objekt wird ein Copper Thieving hinzugefügt." - -# Double -#: AppTools/ToolCopperThieving.py:102 -msgid "" -"This set the distance between the copper thieving components\n" -"(the polygon fill may be split in multiple polygons)\n" -"and the copper traces in the Gerber file." -msgstr "" -"Diese Auswahl definiert den Abstand zwischen den \"Copper Thieving\" " -"Komponenten.\n" -"und den Kupferverbindungen im Gerber File (möglicherweise wird hierbei ein " -"Polygon\n" -"in mehrere aufgeteilt." - -# Double -#: AppTools/ToolCopperThieving.py:135 -msgid "" -"- 'Itself' - the copper thieving extent is based on the object extent.\n" -"- 'Area Selection' - left mouse click to start selection of the area to be " -"filled.\n" -"- 'Reference Object' - will do copper thieving within the area specified by " -"another object." -msgstr "" -"- 'Selbst' - die 'Copper Thieving' Ausdehnung basiert auf der " -"Objektausdehnung.\n" -"- 'Bereichsauswahl' - Klicken Sie mit der linken Maustaste, um den zu " -"füllenden Bereich auszuwählen.\n" -"- 'Referenzobjekt' - 'Copper Thieving' innerhalb des von einem anderen " -"Objekt angegebenen Bereichs." - -#: AppTools/ToolCopperThieving.py:142 AppTools/ToolIsolation.py:511 -#: AppTools/ToolNCC.py:552 AppTools/ToolPaint.py:495 -msgid "Ref. Type" -msgstr "Ref. Typ" - -#: AppTools/ToolCopperThieving.py:144 -msgid "" -"The type of FlatCAM object to be used as copper thieving reference.\n" -"It can be Gerber, Excellon or Geometry." -msgstr "" -"Der Typ des FlatCAM-Objekts, das Copper Thieving-Referenz verwendet werden " -"soll.\n" -"Es kann Gerber, Excellon oder Geometry sein." - -#: AppTools/ToolCopperThieving.py:153 AppTools/ToolIsolation.py:522 -#: AppTools/ToolNCC.py:562 AppTools/ToolPaint.py:505 -msgid "Ref. Object" -msgstr "Ref. Objekt" - -#: AppTools/ToolCopperThieving.py:155 AppTools/ToolIsolation.py:524 -#: AppTools/ToolNCC.py:564 AppTools/ToolPaint.py:507 -msgid "The FlatCAM object to be used as non copper clearing reference." -msgstr "" -"Das FlatCAM-Objekt, das als Nicht-Kupfer-Clearing-Referenz verwendet werden " -"soll." - -# Double -#: AppTools/ToolCopperThieving.py:331 -msgid "Insert Copper thieving" -msgstr "'Coper Thieving' einsetzen" - -# Double -#: AppTools/ToolCopperThieving.py:333 -msgid "" -"Will add a polygon (may be split in multiple parts)\n" -"that will surround the actual Gerber traces at a certain distance." -msgstr "" -"Fügt ein Polygon hinzu (kann in mehrere Teile geteilt werden)\n" -"das wird die eigentlichen Gerber-Spuren in einem gewissen Abstand umgeben." - -# Double -#: AppTools/ToolCopperThieving.py:392 -msgid "Insert Robber Bar" -msgstr "'Robber Bar' einsetzen" - -# Double -#: AppTools/ToolCopperThieving.py:394 -msgid "" -"Will add a polygon with a defined thickness\n" -"that will surround the actual Gerber object\n" -"at a certain distance.\n" -"Required when doing holes pattern plating." -msgstr "" -"Fügt ein Polygon mit einer definierten Dicke hinzu\n" -"das wird das eigentliche Gerber-Objekt umgeben\n" -"in einem bestimmten Abstand.\n" -"Erforderlich für die Lochmusterbeschichtung." - -#: AppTools/ToolCopperThieving.py:418 -msgid "Select Soldermask object" -msgstr "Lötmaskenobjekt auswählen" - -#: AppTools/ToolCopperThieving.py:420 -msgid "" -"Gerber Object with the soldermask.\n" -"It will be used as a base for\n" -"the pattern plating mask." -msgstr "" -"Das Gerber Objekt mit der Lötmaske\n" -"Wird als Basis verwendet." - -#: AppTools/ToolCopperThieving.py:449 -msgid "Plated area" -msgstr "Beschichtetes Areal" - -#: AppTools/ToolCopperThieving.py:451 -msgid "" -"The area to be plated by pattern plating.\n" -"Basically is made from the openings in the plating mask.\n" -"\n" -"<> - the calculated area is actually a bit larger\n" -"due of the fact that the soldermask openings are by design\n" -"a bit larger than the copper pads, and this area is\n" -"calculated from the soldermask openings." -msgstr "" -"Das zu beschichtende Areal.\n" -"Generell wird es durch die Öffnungen in der Beschichtungsmaske erzeugt.\n" -"\n" -"ACHTUNG: das berechnete Areal ist etwas größer da die Lötmaskenöffnungen\n" -"etwas größer als die Pads sind, und dieses Areal aus der Lötmaske berechnet " -"wird." - -#: AppTools/ToolCopperThieving.py:462 -msgid "mm" -msgstr "mm" - -#: AppTools/ToolCopperThieving.py:464 -msgid "in" -msgstr "in" - -#: AppTools/ToolCopperThieving.py:471 -msgid "Generate pattern plating mask" -msgstr "Generieren der Beschichtungsmaske" - -#: AppTools/ToolCopperThieving.py:473 -msgid "" -"Will add to the soldermask gerber geometry\n" -"the geometries of the copper thieving and/or\n" -"the robber bar if those were generated." -msgstr "" -"Wird die Lötmaske des Copper Thivings und/oder der \n" -"Robber Bar zu der Gerber Geometrie hinzufügen, sofern\n" -"diese erzeugt worden sind." - -#: AppTools/ToolCopperThieving.py:629 AppTools/ToolCopperThieving.py:654 -msgid "Lines Grid works only for 'itself' reference ..." -msgstr "Schraffur geht nur bei \"Selbst\" Referenz ..." - -#: AppTools/ToolCopperThieving.py:640 -msgid "Solid fill selected." -msgstr "Vollständige Füllung gewählt." - -#: AppTools/ToolCopperThieving.py:645 -msgid "Dots grid fill selected." -msgstr "Punktmusterfüllung gewählt." - -#: AppTools/ToolCopperThieving.py:650 -msgid "Squares grid fill selected." -msgstr "Quadratfüllung gewählt." - -#: AppTools/ToolCopperThieving.py:671 AppTools/ToolCopperThieving.py:753 -#: AppTools/ToolCopperThieving.py:1355 AppTools/ToolCorners.py:268 -#: AppTools/ToolDblSided.py:657 AppTools/ToolExtractDrills.py:436 -#: AppTools/ToolFiducials.py:470 AppTools/ToolFiducials.py:747 -#: AppTools/ToolOptimal.py:348 AppTools/ToolPunchGerber.py:512 -#: AppTools/ToolQRCode.py:435 -msgid "There is no Gerber object loaded ..." -msgstr "Es ist kein Gerber-Objekt geladen ..." - -#: AppTools/ToolCopperThieving.py:684 AppTools/ToolCopperThieving.py:1283 -msgid "Append geometry" -msgstr "Geometrie angehängt" - -#: AppTools/ToolCopperThieving.py:728 AppTools/ToolCopperThieving.py:1316 -#: AppTools/ToolCopperThieving.py:1469 -msgid "Append source file" -msgstr "Fügen Sie die Quelldatei an" - -# Don`t know what a Copper Thieving Tool would do hence hard to translate -#: AppTools/ToolCopperThieving.py:736 AppTools/ToolCopperThieving.py:1324 -msgid "Copper Thieving Tool done." -msgstr "'Copper Thieving' Werkzeug fertig." - -#: AppTools/ToolCopperThieving.py:763 AppTools/ToolCopperThieving.py:796 -#: AppTools/ToolCutOut.py:556 AppTools/ToolCutOut.py:761 -#: AppTools/ToolEtchCompensation.py:360 AppTools/ToolInvertGerber.py:211 -#: AppTools/ToolIsolation.py:1585 AppTools/ToolIsolation.py:1612 -#: AppTools/ToolNCC.py:1617 AppTools/ToolNCC.py:1661 AppTools/ToolNCC.py:1690 -#: AppTools/ToolPaint.py:1493 AppTools/ToolPanelize.py:423 -#: AppTools/ToolPanelize.py:437 AppTools/ToolSub.py:295 AppTools/ToolSub.py:308 -#: AppTools/ToolSub.py:499 AppTools/ToolSub.py:514 -#: tclCommands/TclCommandCopperClear.py:97 tclCommands/TclCommandPaint.py:99 -msgid "Could not retrieve object" -msgstr "Objekt konnte nicht abgerufen werden" - -#: AppTools/ToolCopperThieving.py:773 AppTools/ToolIsolation.py:1672 -#: AppTools/ToolNCC.py:1669 Common.py:210 -msgid "Click the start point of the area." -msgstr "Klicken Sie auf den Startpunkt des Bereichs." - -#: AppTools/ToolCopperThieving.py:824 -msgid "Click the end point of the filling area." -msgstr "Klicken Sie auf den Endpunkt des Ausfüllbereichs." - -#: AppTools/ToolCopperThieving.py:830 AppTools/ToolIsolation.py:2504 -#: AppTools/ToolIsolation.py:2556 AppTools/ToolNCC.py:1731 -#: AppTools/ToolNCC.py:1783 AppTools/ToolPaint.py:1625 -#: AppTools/ToolPaint.py:1676 Common.py:275 Common.py:377 -msgid "Zone added. Click to start adding next zone or right click to finish." -msgstr "" -"Zone hinzugefügt. Klicken Sie, um die nächste Zone hinzuzufügen, oder " -"klicken Sie mit der rechten Maustaste, um den Vorgang abzuschließen." - -#: AppTools/ToolCopperThieving.py:952 AppTools/ToolCopperThieving.py:956 -#: AppTools/ToolCopperThieving.py:1017 -msgid "Thieving" -msgstr "Diebstahl" - -#: AppTools/ToolCopperThieving.py:963 -msgid "Copper Thieving Tool started. Reading parameters." -msgstr "Copper Thieving Tool gestartet. Parameter lesen." - -#: AppTools/ToolCopperThieving.py:988 -msgid "Copper Thieving Tool. Preparing isolation polygons." -msgstr "Copper Thieving-Tool. Vorbereitung von isolierenden Polygonen." - -#: AppTools/ToolCopperThieving.py:1033 -msgid "Copper Thieving Tool. Preparing areas to fill with copper." -msgstr "Copper Thieving Tool: Areale zur Kupferfüllung vorbereiten." - -#: AppTools/ToolCopperThieving.py:1044 AppTools/ToolOptimal.py:355 -#: AppTools/ToolPanelize.py:810 AppTools/ToolRulesCheck.py:1127 -msgid "Working..." -msgstr "Arbeiten..." - -#: AppTools/ToolCopperThieving.py:1071 -msgid "Geometry not supported for bounding box" -msgstr "Geometrie für Umriss nicht unterstützt" - -#: AppTools/ToolCopperThieving.py:1077 AppTools/ToolNCC.py:1962 -#: AppTools/ToolNCC.py:2017 AppTools/ToolNCC.py:3052 AppTools/ToolPaint.py:3405 -msgid "No object available." -msgstr "Kein Objekt vorhanden." - -#: AppTools/ToolCopperThieving.py:1114 AppTools/ToolNCC.py:1987 -#: AppTools/ToolNCC.py:2040 AppTools/ToolNCC.py:3094 -msgid "The reference object type is not supported." -msgstr "Der Referenzobjekttyp wird nicht unterstützt." - -#: AppTools/ToolCopperThieving.py:1119 -msgid "Copper Thieving Tool. Appending new geometry and buffering." -msgstr "Copper Thieving Tool. Füge neue Geometrie an und puffere sie." - -#: AppTools/ToolCopperThieving.py:1135 -msgid "Create geometry" -msgstr "Geometrie erstellen" - -#: AppTools/ToolCopperThieving.py:1335 AppTools/ToolCopperThieving.py:1339 -msgid "P-Plating Mask" -msgstr "P-Beschichtungsmaske" - -#: AppTools/ToolCopperThieving.py:1361 -msgid "Append PP-M geometry" -msgstr "PPM Geometrie hinzufügen" - -#: AppTools/ToolCopperThieving.py:1487 -msgid "Generating Pattern Plating Mask done." -msgstr "Erzeugen der PPM abgeschlossen." - -#: AppTools/ToolCopperThieving.py:1559 -msgid "Copper Thieving Tool exit." -msgstr "Copper Thieving Tool verlassen." - -#: AppTools/ToolCorners.py:57 -msgid "The Gerber object to which will be added corner markers." -msgstr "Das Gerber-Objekt, dem Eckmarkierungen hinzugefügt werden." - -#: AppTools/ToolCorners.py:73 -msgid "Locations" -msgstr "Standorte" - -#: AppTools/ToolCorners.py:75 -msgid "Locations where to place corner markers." -msgstr "Orte, an denen Eckmarkierungen platziert werden sollen." - -#: AppTools/ToolCorners.py:92 AppTools/ToolFiducials.py:95 -msgid "Top Right" -msgstr "Oben rechts" - -#: AppTools/ToolCorners.py:101 -msgid "Toggle ALL" -msgstr "ALLE umschalten" - -#: AppTools/ToolCorners.py:167 -msgid "Add Marker" -msgstr "Marker hinzufügen" - -#: AppTools/ToolCorners.py:169 -msgid "Will add corner markers to the selected Gerber file." -msgstr "Fügt der ausgewählten Gerber-Datei Eckmarkierungen hinzu." - -#: AppTools/ToolCorners.py:235 -msgid "Corners Tool" -msgstr "Ecken Werkzeug" - -#: AppTools/ToolCorners.py:305 -msgid "Please select at least a location" -msgstr "Bitte wählen Sie mindestens einen Ort aus" - -#: AppTools/ToolCorners.py:440 -msgid "Corners Tool exit." -msgstr "Ecken Werkzeugausgang." - -#: AppTools/ToolCutOut.py:41 -msgid "Cutout PCB" -msgstr "Ausschnitt PCB" - -#: AppTools/ToolCutOut.py:69 AppTools/ToolPanelize.py:53 -msgid "Source Object" -msgstr "Quellobjekt" - -#: AppTools/ToolCutOut.py:70 -msgid "Object to be cutout" -msgstr "Auszuschneidendes Objekt" - -#: AppTools/ToolCutOut.py:75 -msgid "Kind" -msgstr "Typ" - -#: AppTools/ToolCutOut.py:97 -msgid "" -"Specify the type of object to be cutout.\n" -"It can be of type: Gerber or Geometry.\n" -"What is selected here will dictate the kind\n" -"of objects that will populate the 'Object' combobox." -msgstr "" -"Geben Sie den Objekttyp an, der ausgeschnitten werden soll.\n" -"Es kann vom Typ sein: Gerber oder Geometrie.\n" -"Was hier ausgewählt wird, bestimmt die Art\n" -"von Objekten, die die Combobox 'Object' füllen." - -#: AppTools/ToolCutOut.py:121 -msgid "Tool Parameters" -msgstr "Werkzeugparameter" - -#: AppTools/ToolCutOut.py:238 -msgid "A. Automatic Bridge Gaps" -msgstr "A. Automatische Brückenlücken" - -#: AppTools/ToolCutOut.py:240 -msgid "This section handle creation of automatic bridge gaps." -msgstr "Dieser Abschnitt behandelt die Erstellung automatischer Brückenlücken." - -#: AppTools/ToolCutOut.py:247 -msgid "" -"Number of gaps used for the Automatic cutout.\n" -"There can be maximum 8 bridges/gaps.\n" -"The choices are:\n" -"- None - no gaps\n" -"- lr - left + right\n" -"- tb - top + bottom\n" -"- 4 - left + right +top + bottom\n" -"- 2lr - 2*left + 2*right\n" -"- 2tb - 2*top + 2*bottom\n" -"- 8 - 2*left + 2*right +2*top + 2*bottom" -msgstr "" -"Anzahl der Lücken, die für den automatischen Ausschnitt verwendet werden.\n" -"Es können maximal 8 Brücken / Lücken vorhanden sein.\n" -"Die Wahlmöglichkeiten sind:\n" -"- Keine - keine Lücken\n" -"- lr \t- links + rechts\n" -"- tb \t- oben + unten\n" -"- 4 \t- links + rechts + oben + unten\n" -"- 2lr \t- 2 * links + 2 * rechts\n" -"- 2 tb \t- 2 * oben + 2 * unten\n" -"- 8 \t- 2 * links + 2 * rechts + 2 * oben + 2 * unten" - -#: AppTools/ToolCutOut.py:269 -msgid "Generate Freeform Geometry" -msgstr "Freiform Geometrie erzeugen" - -#: AppTools/ToolCutOut.py:271 -msgid "" -"Cutout the selected object.\n" -"The cutout shape can be of any shape.\n" -"Useful when the PCB has a non-rectangular shape." -msgstr "" -"Schneiden Sie das ausgewählte Objekt aus.\n" -"Die Ausschnittform kann eine beliebige Form haben.\n" -"Nützlich, wenn die Leiterplatte eine nicht rechteckige Form hat." - -#: AppTools/ToolCutOut.py:283 -msgid "Generate Rectangular Geometry" -msgstr "Rechteck Geometrie erzeugen" - -#: AppTools/ToolCutOut.py:285 -msgid "" -"Cutout the selected object.\n" -"The resulting cutout shape is\n" -"always a rectangle shape and it will be\n" -"the bounding box of the Object." -msgstr "" -"Schneiden Sie das ausgewählte Objekt aus.\n" -"Die resultierende Ausschnittform ist\n" -"immer eine rechteckige Form und es wird sein\n" -"der Begrenzungsrahmen des Objekts." - -#: AppTools/ToolCutOut.py:304 -msgid "B. Manual Bridge Gaps" -msgstr "B. Manuelle Brückenlücken" - -#: AppTools/ToolCutOut.py:306 -msgid "" -"This section handle creation of manual bridge gaps.\n" -"This is done by mouse clicking on the perimeter of the\n" -"Geometry object that is used as a cutout object. " -msgstr "" -"In diesem Abschnitt wird die Erstellung manueller Brückenlücken behandelt.\n" -"Dies geschieht durch einen Mausklick auf den Umfang des\n" -"Geometrieobjekt, das als Ausschnittobjekt verwendet wird. " - -#: AppTools/ToolCutOut.py:321 -msgid "Geometry object used to create the manual cutout." -msgstr "Geometrieobjekt zum Erstellen des manuellen Ausschnitts." - -#: AppTools/ToolCutOut.py:328 -msgid "Generate Manual Geometry" -msgstr "Manuelle Geometrie erzeugen" - -#: AppTools/ToolCutOut.py:330 -msgid "" -"If the object to be cutout is a Gerber\n" -"first create a Geometry that surrounds it,\n" -"to be used as the cutout, if one doesn't exist yet.\n" -"Select the source Gerber file in the top object combobox." -msgstr "" -"Wenn das auszuschneidende Objekt ein Gerber ist\n" -"erstelle eine Geometrie, die sie umgibt,\n" -"als Ausschnitt verwendet werden, falls noch nicht vorhanden.\n" -"Wählen Sie in der oberen Objekt-Combobox die Quell-Gerber-Datei aus." - -#: AppTools/ToolCutOut.py:343 -msgid "Manual Add Bridge Gaps" -msgstr "Manuelles Hinzufügen von Brückenlücken" - -#: AppTools/ToolCutOut.py:345 -msgid "" -"Use the left mouse button (LMB) click\n" -"to create a bridge gap to separate the PCB from\n" -"the surrounding material.\n" -"The LMB click has to be done on the perimeter of\n" -"the Geometry object used as a cutout geometry." -msgstr "" -"Klicken Sie mit der linken Maustaste (LMB)\n" -"Erstellen einer Brückenlücke, um die Leiterplatte von zu trennen\n" -"das umgebende Material.\n" -"Der LMB-Klick muss am Umfang von erfolgen\n" -"das Geometrieobjekt, das als Ausschnittsgeometrie verwendet wird." - -#: AppTools/ToolCutOut.py:561 -msgid "" -"There is no object selected for Cutout.\n" -"Select one and try again." -msgstr "" -"Es ist kein Objekt für den Ausschnitt ausgewählt.\n" -"Wählen Sie eine aus und versuchen Sie es erneut." - -#: AppTools/ToolCutOut.py:567 AppTools/ToolCutOut.py:770 -#: AppTools/ToolCutOut.py:951 AppTools/ToolCutOut.py:1033 -#: tclCommands/TclCommandGeoCutout.py:184 -msgid "Tool Diameter is zero value. Change it to a positive real number." -msgstr "" -"Werkzeugdurchmesser ist Nullwert. Ändern Sie es in eine positive reelle Zahl." - -#: AppTools/ToolCutOut.py:581 AppTools/ToolCutOut.py:785 -msgid "Number of gaps value is missing. Add it and retry." -msgstr "" -"Der Wert für die Anzahl der Lücken fehlt. Fügen Sie es hinzu und versuchen " -"Sie es erneut." - -#: AppTools/ToolCutOut.py:586 AppTools/ToolCutOut.py:789 -msgid "" -"Gaps value can be only one of: 'None', 'lr', 'tb', '2lr', '2tb', 4 or 8. " -"Fill in a correct value and retry. " -msgstr "" -"Der Lückenwert kann nur einer der folgenden Werte sein: \"Keine\", \"lr\", " -"\"tb\", \"2lr\", \"2tb\", 4 oder 8. Geben Sie einen korrekten Wert ein und " -"wiederholen Sie den Vorgang. " - -#: AppTools/ToolCutOut.py:591 AppTools/ToolCutOut.py:795 -msgid "" -"Cutout operation cannot be done on a multi-geo Geometry.\n" -"Optionally, this Multi-geo Geometry can be converted to Single-geo " -"Geometry,\n" -"and after that perform Cutout." -msgstr "" -"Bei einer Multi-Geo-Geometrie können keine Ausschnitte vorgenommen werden.\n" -"Optional kann diese Multi-Geo-Geometrie in Single-Geo-Geometrie konvertiert " -"werden.\n" -"und danach Cutout durchführen." - -#: AppTools/ToolCutOut.py:743 AppTools/ToolCutOut.py:940 -msgid "Any form CutOut operation finished." -msgstr "Jede Form CutOut-Operation ist abgeschlossen." - -#: AppTools/ToolCutOut.py:765 AppTools/ToolEtchCompensation.py:366 -#: AppTools/ToolInvertGerber.py:217 AppTools/ToolIsolation.py:1589 -#: AppTools/ToolIsolation.py:1616 AppTools/ToolNCC.py:1621 -#: AppTools/ToolPaint.py:1416 AppTools/ToolPanelize.py:428 -#: tclCommands/TclCommandBbox.py:71 tclCommands/TclCommandNregions.py:71 -msgid "Object not found" -msgstr "Objekt nicht gefunden" - -#: AppTools/ToolCutOut.py:909 -msgid "Rectangular cutout with negative margin is not possible." -msgstr "Ein rechteckiger Ausschnitt mit negativem Rand ist nicht möglich." - -#: AppTools/ToolCutOut.py:945 -msgid "" -"Click on the selected geometry object perimeter to create a bridge gap ..." -msgstr "" -"Klicken Sie auf den ausgewählten Umfang des Geometrieobjekts, um eine " -"Brückenlücke zu erstellen ..." - -#: AppTools/ToolCutOut.py:962 AppTools/ToolCutOut.py:988 -msgid "Could not retrieve Geometry object" -msgstr "Geometrieobjekt konnte nicht abgerufen werden" - -#: AppTools/ToolCutOut.py:993 -msgid "Geometry object for manual cutout not found" -msgstr "Geometrieobjekt für manuellen Ausschnitt nicht gefunden" - -#: AppTools/ToolCutOut.py:1003 -msgid "Added manual Bridge Gap." -msgstr "Manuelle Brückenlücke hinzugefügt." - -#: AppTools/ToolCutOut.py:1015 -msgid "Could not retrieve Gerber object" -msgstr "Gerber-Objekt konnte nicht abgerufen werden" - -#: AppTools/ToolCutOut.py:1020 -msgid "" -"There is no Gerber object selected for Cutout.\n" -"Select one and try again." -msgstr "" -"Es ist kein Gerber-Objekt für den Ausschnitt ausgewählt.\n" -"Wählen Sie eine aus und versuchen Sie es erneut." - -#: AppTools/ToolCutOut.py:1026 -msgid "" -"The selected object has to be of Gerber type.\n" -"Select a Gerber file and try again." -msgstr "" -"Das ausgewählte Objekt muss vom Typ Gerber sein.\n" -"Wählen Sie eine Gerber-Datei aus und versuchen Sie es erneut." - -#: AppTools/ToolCutOut.py:1061 -msgid "Geometry not supported for cutout" -msgstr "Geometrie für Ausschnitt nicht unterstützt" - -#: AppTools/ToolCutOut.py:1136 -msgid "Making manual bridge gap..." -msgstr "Manuelle Brückenlücke herstellen ..." - -#: AppTools/ToolDblSided.py:26 -msgid "2-Sided PCB" -msgstr "2-seitige PCB" - -#: AppTools/ToolDblSided.py:52 -msgid "Mirror Operation" -msgstr "Spiegelbetrieb" - -#: AppTools/ToolDblSided.py:53 -msgid "Objects to be mirrored" -msgstr "Zu spiegelnde Objekte" - -#: AppTools/ToolDblSided.py:65 -msgid "Gerber to be mirrored" -msgstr "Zu spiegelndes Gerber" - -#: AppTools/ToolDblSided.py:69 AppTools/ToolDblSided.py:97 -#: AppTools/ToolDblSided.py:127 -msgid "" -"Mirrors (flips) the specified object around \n" -"the specified axis. Does not create a new \n" -"object, but modifies it." -msgstr "" -"Spiegelt das angegebene Objekt um\n" -"die angegebene Achse. Erstellt kein neues\n" -"Objekt, ändert es aber." - -#: AppTools/ToolDblSided.py:93 -msgid "Excellon Object to be mirrored." -msgstr "Zu spiegelndes Excellon-Objekt." - -#: AppTools/ToolDblSided.py:122 -msgid "Geometry Obj to be mirrored." -msgstr "Geometrie-Objekt, das gespiegelt werden soll." - -#: AppTools/ToolDblSided.py:158 -msgid "Mirror Parameters" -msgstr "Spiegelparameter" - -#: AppTools/ToolDblSided.py:159 -msgid "Parameters for the mirror operation" -msgstr "Parameter für die Spiegeloperation" - -#: AppTools/ToolDblSided.py:164 -msgid "Mirror Axis" -msgstr "Spiegelachse" - -#: AppTools/ToolDblSided.py:175 -msgid "" -"The coordinates used as reference for the mirror operation.\n" -"Can be:\n" -"- Point -> a set of coordinates (x,y) around which the object is mirrored\n" -"- Box -> a set of coordinates (x, y) obtained from the center of the\n" -"bounding box of another object selected below" -msgstr "" -"Die Koordinaten, die als Referenz für die Spiegeloperation verwendet " -"werden.\n" -"Kann sein:\n" -"- Punkt -> eine Reihe von Koordinaten (x, y), um die das Objekt gespiegelt " -"wird\n" -"- Box -> ein Satz von Koordinaten (x, y), die aus der Mitte des erhalten " -"werden\n" -"Begrenzungsrahmen eines anderen unten ausgewählten Objekts" - -#: AppTools/ToolDblSided.py:189 -msgid "Point coordinates" -msgstr "Punktkoordinaten" - -#: AppTools/ToolDblSided.py:194 -msgid "" -"Add the coordinates in format (x, y) through which the mirroring " -"axis\n" -" selected in 'MIRROR AXIS' pass.\n" -"The (x, y) coordinates are captured by pressing SHIFT key\n" -"and left mouse button click on canvas or you can enter the coordinates " -"manually." -msgstr "" -"Fügen Sie die Koordinaten im Format (x, y) hinzu, durch die die " -"Spiegelungsachse verläuft\n" -"ausgewählt im Pass 'Spiegelachse'.\n" -"Die (x, y) -Koordinaten werden durch Drücken der SHIFT erfasst\n" -"und klicken Sie mit der linken Maustaste auf die Leinwand oder Sie können " -"die Koordinaten manuell eingeben." - -#: AppTools/ToolDblSided.py:218 -msgid "" -"It can be of type: Gerber or Excellon or Geometry.\n" -"The coordinates of the center of the bounding box are used\n" -"as reference for mirror operation." -msgstr "" -"Es kann vom Typ sein: Gerber oder Excellon oder Geometrie.\n" -"Die Koordinaten der Mitte des Begrenzungsrahmens werden verwendet\n" -"als Referenz für den Spiegelbetrieb." - -#: AppTools/ToolDblSided.py:252 -msgid "Bounds Values" -msgstr "Grenzen Werte" - -#: AppTools/ToolDblSided.py:254 -msgid "" -"Select on canvas the object(s)\n" -"for which to calculate bounds values." -msgstr "" -"Wählen Sie auf der Leinwand die Objekte aus.\n" -"für die Grenzwerte berechnet werden sollen." - -#: AppTools/ToolDblSided.py:264 -msgid "X min" -msgstr "X min" - -#: AppTools/ToolDblSided.py:266 AppTools/ToolDblSided.py:280 -msgid "Minimum location." -msgstr "Mindeststandort." - -#: AppTools/ToolDblSided.py:278 -msgid "Y min" -msgstr "Y min" - -#: AppTools/ToolDblSided.py:292 -msgid "X max" -msgstr "X max" - -#: AppTools/ToolDblSided.py:294 AppTools/ToolDblSided.py:308 -msgid "Maximum location." -msgstr "Maximaler Standort." - -#: AppTools/ToolDblSided.py:306 -msgid "Y max" -msgstr "Y max" - -#: AppTools/ToolDblSided.py:317 -msgid "Center point coordinates" -msgstr "Mittelpunktskoordinaten" - -#: AppTools/ToolDblSided.py:319 -msgid "Centroid" -msgstr "Schwerpunkt" - -#: AppTools/ToolDblSided.py:321 -msgid "" -"The center point location for the rectangular\n" -"bounding shape. Centroid. Format is (x, y)." -msgstr "" -"Die Mittelpunktposition für das Rechteck\n" -"begrenzende Form. Centroid. Das Format ist (x, y)." - -#: AppTools/ToolDblSided.py:330 -msgid "Calculate Bounds Values" -msgstr "Berechnen Sie Grenzwerte" - -#: AppTools/ToolDblSided.py:332 -msgid "" -"Calculate the enveloping rectangular shape coordinates,\n" -"for the selection of objects.\n" -"The envelope shape is parallel with the X, Y axis." -msgstr "" -"Berechnen Sie die einhüllenden rechteckigen Formkoordinaten,\n" -"zur Auswahl von Objekten.\n" -"Die Hüllkurvenform verläuft parallel zur X- und Y-Achse." - -#: AppTools/ToolDblSided.py:352 -msgid "PCB Alignment" -msgstr "PCB-Ausrichtung" - -#: AppTools/ToolDblSided.py:354 AppTools/ToolDblSided.py:456 -msgid "" -"Creates an Excellon Object containing the\n" -"specified alignment holes and their mirror\n" -"images." -msgstr "" -"Erstellt ein Excellon-Objekt, das das enthält\n" -"spezifizierte Ausrichtungslöcher und deren Spiegel\n" -"Bilder." - -#: AppTools/ToolDblSided.py:361 -msgid "Drill Diameter" -msgstr "Bohrdurchmesser" - -#: AppTools/ToolDblSided.py:390 AppTools/ToolDblSided.py:397 -msgid "" -"The reference point used to create the second alignment drill\n" -"from the first alignment drill, by doing mirror.\n" -"It can be modified in the Mirror Parameters -> Reference section" -msgstr "" -"Der Referenzpunkt, der zum Erstellen des zweiten Ausrichtungsbohrers " -"verwendet wird\n" -"vom ersten Ausrichtungsbohrer durch Spiegeln.\n" -"Sie kann im Abschnitt Spiegelparameter -> Referenz geändert werden" - -#: AppTools/ToolDblSided.py:410 -msgid "Alignment Drill Coordinates" -msgstr "Ausrichtungsbohrkoordinaten" - -#: AppTools/ToolDblSided.py:412 -msgid "" -"Alignment holes (x1, y1), (x2, y2), ... on one side of the mirror axis. For " -"each set of (x, y) coordinates\n" -"entered here, a pair of drills will be created:\n" -"\n" -"- one drill at the coordinates from the field\n" -"- one drill in mirror position over the axis selected above in the 'Align " -"Axis'." -msgstr "" -"Ausrichtungslöcher (x1, y1), (x2, y2), ... auf einer Seite der Spiegelachse. " -"Für jeden Satz von (x, y) Koordinaten\n" -"Hier wird ein Paar Bohrer erstellt:\n" -"\n" -"- Ein Bohrer an den Koordinaten vom Feld\n" -"- Ein Bohrer in Spiegelposition über der oben in 'Achse ausrichten' " -"ausgewählten Achse." - -#: AppTools/ToolDblSided.py:420 -msgid "Drill coordinates" -msgstr "Bohrkoordinaten" - -#: AppTools/ToolDblSided.py:427 -msgid "" -"Add alignment drill holes coordinates in the format: (x1, y1), (x2, " -"y2), ... \n" -"on one side of the alignment axis.\n" -"\n" -"The coordinates set can be obtained:\n" -"- press SHIFT key and left mouse clicking on canvas. Then click Add.\n" -"- press SHIFT key and left mouse clicking on canvas. Then Ctrl+V in the " -"field.\n" -"- press SHIFT key and left mouse clicking on canvas. Then RMB click in the " -"field and click Paste.\n" -"- by entering the coords manually in the format: (x1, y1), (x2, y2), ..." -msgstr "" -"Fügen Sie Koordinaten für Ausrichtungsbohrungen im folgenden Format hinzu: " -"(x1, y1), (x2, y2), ...\n" -"auf einer Seite der Ausrichtungsachse.\n" -"\n" -"Die eingestellten Koordinaten erhalten Sie:\n" -"- Drücken Sie die SHIFT-taste und klicken Sie mit der linken Maustaste auf " -"die Leinwand. Klicken Sie dann auf Hinzufügen.\n" -"- Drücken Sie die SHIFT-tasteund klicken Sie mit der linken Maustaste auf " -"die Leinwand. Dann Strg + V im Feld.\n" -"- Drücken Sie die SHIFT-tasteund klicken Sie mit der linken Maustaste auf " -"die Leinwand. Klicken Sie dann in das Feld und dann auf Einfügen.\n" -"- durch manuelle Eingabe der Koordinaten im Format: (x1, y1), (x2, y2), ..." - -#: AppTools/ToolDblSided.py:442 -msgid "Delete Last" -msgstr "Letzte löschen" - -#: AppTools/ToolDblSided.py:444 -msgid "Delete the last coordinates tuple in the list." -msgstr "Delete the last coordinates tuple in the list." - -#: AppTools/ToolDblSided.py:454 -msgid "Create Excellon Object" -msgstr "Excellon-Objekt erstellen" - -#: AppTools/ToolDblSided.py:541 -msgid "2-Sided Tool" -msgstr "2-seitiges Werkzeug" - -#: AppTools/ToolDblSided.py:581 -msgid "" -"'Point' reference is selected and 'Point' coordinates are missing. Add them " -"and retry." -msgstr "" -"'Point'-Referenz ist ausgewählt und' Point'-Koordinaten fehlen. Fügen Sie " -"sie hinzu und versuchen Sie es erneut." - -#: AppTools/ToolDblSided.py:600 -msgid "There is no Box reference object loaded. Load one and retry." -msgstr "" -"Es ist kein Box-Referenzobjekt geladen. Laden Sie einen und versuchen Sie es " -"erneut." - -#: AppTools/ToolDblSided.py:612 -msgid "No value or wrong format in Drill Dia entry. Add it and retry." -msgstr "" -"Kein Wert oder falsches Format im Eintrag Bohrdurchmesser. Fügen Sie es " -"hinzu und versuchen Sie es erneut." - -#: AppTools/ToolDblSided.py:623 -msgid "There are no Alignment Drill Coordinates to use. Add them and retry." -msgstr "" -"Es sind keine Ausrichtungsbohrkoordinaten vorhanden. Fügen Sie sie hinzu und " -"versuchen Sie es erneut." - -#: AppTools/ToolDblSided.py:648 -msgid "Excellon object with alignment drills created..." -msgstr "Excellon-Objekt mit Ausrichtungsbohrern erstellt ..." - -#: AppTools/ToolDblSided.py:661 AppTools/ToolDblSided.py:704 -#: AppTools/ToolDblSided.py:748 -msgid "Only Gerber, Excellon and Geometry objects can be mirrored." -msgstr "Nur Gerber-, Excellon- und Geometrie-Objekte können gespiegelt werden." - -#: AppTools/ToolDblSided.py:671 AppTools/ToolDblSided.py:715 -msgid "" -"There are no Point coordinates in the Point field. Add coords and try " -"again ..." -msgstr "" -"Das Punktfeld enthält keine Punktkoordinaten. Fügen Sie Coords hinzu und " -"versuchen Sie es erneut ..." - -#: AppTools/ToolDblSided.py:681 AppTools/ToolDblSided.py:725 -#: AppTools/ToolDblSided.py:762 -msgid "There is no Box object loaded ..." -msgstr "Es ist kein Box-Objekt geladen ..." - -#: AppTools/ToolDblSided.py:691 AppTools/ToolDblSided.py:735 -#: AppTools/ToolDblSided.py:772 -msgid "was mirrored" -msgstr "wurde gespiegelt" - -#: AppTools/ToolDblSided.py:700 AppTools/ToolPunchGerber.py:533 -msgid "There is no Excellon object loaded ..." -msgstr "Es ist kein Excellon-Objekt geladen ..." - -#: AppTools/ToolDblSided.py:744 -msgid "There is no Geometry object loaded ..." -msgstr "Es wurde kein Geometrieobjekt geladen ..." - -#: AppTools/ToolDblSided.py:818 App_Main.py:4350 App_Main.py:4505 -msgid "Failed. No object(s) selected..." -msgstr "Gescheitert. Kein Objekt ausgewählt ..." - -#: AppTools/ToolDistance.py:57 AppTools/ToolDistanceMin.py:50 -msgid "Those are the units in which the distance is measured." -msgstr "Dies sind die Einheiten, in denen die Entfernung gemessen wird." - -#: AppTools/ToolDistance.py:58 AppTools/ToolDistanceMin.py:51 -msgid "METRIC (mm)" -msgstr "METRISCH (mm)" - -#: AppTools/ToolDistance.py:58 AppTools/ToolDistanceMin.py:51 -msgid "INCH (in)" -msgstr "ZOLL (in)" - -#: AppTools/ToolDistance.py:64 -msgid "Snap to center" -msgstr "Zur Mitte einrasten" - -#: AppTools/ToolDistance.py:66 -msgid "" -"Mouse cursor will snap to the center of the pad/drill\n" -"when it is hovering over the geometry of the pad/drill." -msgstr "" -"Der Mauszeiger rastet in der Mitte des Pads / Bohrers ein\n" -"wenn es über der Geometrie des Pads / Bohrers schwebt." - -#: AppTools/ToolDistance.py:76 -msgid "Start Coords" -msgstr "Starten Sie Koords" - -#: AppTools/ToolDistance.py:77 AppTools/ToolDistance.py:82 -msgid "This is measuring Start point coordinates." -msgstr "Dies ist das Messen von Startpunktkoordinaten." - -#: AppTools/ToolDistance.py:87 -msgid "Stop Coords" -msgstr "Stoppen Sie Koords" - -#: AppTools/ToolDistance.py:88 AppTools/ToolDistance.py:93 -msgid "This is the measuring Stop point coordinates." -msgstr "Dies ist die Messpunkt-Koordinate." - -#: AppTools/ToolDistance.py:98 AppTools/ToolDistanceMin.py:62 -msgid "Dx" -msgstr "Dx" - -#: AppTools/ToolDistance.py:99 AppTools/ToolDistance.py:104 -#: AppTools/ToolDistanceMin.py:63 AppTools/ToolDistanceMin.py:92 -msgid "This is the distance measured over the X axis." -msgstr "Dies ist der Abstand, der über die X-Achse gemessen wird." - -#: AppTools/ToolDistance.py:109 AppTools/ToolDistanceMin.py:65 -msgid "Dy" -msgstr "Dy" - -#: AppTools/ToolDistance.py:110 AppTools/ToolDistance.py:115 -#: AppTools/ToolDistanceMin.py:66 AppTools/ToolDistanceMin.py:97 -msgid "This is the distance measured over the Y axis." -msgstr "Dies ist die über die Y-Achse gemessene Entfernung." - -#: AppTools/ToolDistance.py:121 AppTools/ToolDistance.py:126 -#: AppTools/ToolDistanceMin.py:69 AppTools/ToolDistanceMin.py:102 -msgid "This is orientation angle of the measuring line." -msgstr "Dies ist der Orientierungswinkel der Messlinie." - -#: AppTools/ToolDistance.py:131 AppTools/ToolDistanceMin.py:71 -msgid "DISTANCE" -msgstr "ENTFERNUNG" - -#: AppTools/ToolDistance.py:132 AppTools/ToolDistance.py:137 -msgid "This is the point to point Euclidian distance." -msgstr "Dies ist die Punkt-zu-Punkt-Euklidische Entfernung." - -#: AppTools/ToolDistance.py:142 AppTools/ToolDistance.py:339 -#: AppTools/ToolDistanceMin.py:114 -msgid "Measure" -msgstr "Messen" - -#: AppTools/ToolDistance.py:274 -msgid "Working" -msgstr "Arbeiten" - -#: AppTools/ToolDistance.py:279 -msgid "MEASURING: Click on the Start point ..." -msgstr "MESSEN: Klicken Sie auf den Startpunkt ..." - -#: AppTools/ToolDistance.py:389 -msgid "Distance Tool finished." -msgstr "Distanzwerkzeug fertig." - -#: AppTools/ToolDistance.py:461 -msgid "Pads overlapped. Aborting." -msgstr "Pads überlappen sich. Abbruch." - -#: AppTools/ToolDistance.py:489 -msgid "Distance Tool cancelled." -msgstr "Distanzwerkzeug abgebrochen." - -#: AppTools/ToolDistance.py:494 -msgid "MEASURING: Click on the Destination point ..." -msgstr "MESSEN: Klicken Sie auf den Zielpunkt ..." - -#: AppTools/ToolDistance.py:503 AppTools/ToolDistanceMin.py:284 -msgid "MEASURING" -msgstr "MESSUNG" - -#: AppTools/ToolDistance.py:504 AppTools/ToolDistanceMin.py:285 -msgid "Result" -msgstr "Ergebnis" - -#: AppTools/ToolDistanceMin.py:31 AppTools/ToolDistanceMin.py:143 -msgid "Minimum Distance Tool" -msgstr "Werkzeug für minimalen Abstand" - -#: AppTools/ToolDistanceMin.py:54 -msgid "First object point" -msgstr "Erster Objektpunkt" - -#: AppTools/ToolDistanceMin.py:55 AppTools/ToolDistanceMin.py:80 -msgid "" -"This is first object point coordinates.\n" -"This is the start point for measuring distance." -msgstr "" -"Dies sind erste Objektpunktkoordinaten.\n" -"Dies ist der Startpunkt für die Entfernungsmessung." - -#: AppTools/ToolDistanceMin.py:58 -msgid "Second object point" -msgstr "Zweiter Objektpunkt" - -#: AppTools/ToolDistanceMin.py:59 AppTools/ToolDistanceMin.py:86 -msgid "" -"This is second object point coordinates.\n" -"This is the end point for measuring distance." -msgstr "" -"Dies sind die Koordinaten des zweiten Objektpunkts.\n" -"Dies ist der Endpunkt für die Entfernungsmessung." - -#: AppTools/ToolDistanceMin.py:72 AppTools/ToolDistanceMin.py:107 -msgid "This is the point to point Euclidean distance." -msgstr "Dies ist die euklidische Distanz von Punkt zu Punkt." - -#: AppTools/ToolDistanceMin.py:74 -msgid "Half Point" -msgstr "Halber Punkt" - -#: AppTools/ToolDistanceMin.py:75 AppTools/ToolDistanceMin.py:112 -msgid "This is the middle point of the point to point Euclidean distance." -msgstr "Dies ist der Mittelpunkt der euklidischen Distanz von Punkt zu Punkt." - -#: AppTools/ToolDistanceMin.py:117 -msgid "Jump to Half Point" -msgstr "Springe zum halben Punkt" - -#: AppTools/ToolDistanceMin.py:154 -msgid "" -"Select two objects and no more, to measure the distance between them ..." -msgstr "" -"Wählen Sie zwei und nicht mehr Objekte aus, um den Abstand zwischen ihnen zu " -"messen ..." - -#: AppTools/ToolDistanceMin.py:195 AppTools/ToolDistanceMin.py:216 -#: AppTools/ToolDistanceMin.py:225 AppTools/ToolDistanceMin.py:246 -msgid "Select two objects and no more. Currently the selection has objects: " -msgstr "" -"Wählen Sie zwei Objekte und nicht mehr. Derzeit hat die Auswahl Objekte: " - -#: AppTools/ToolDistanceMin.py:293 -msgid "Objects intersects or touch at" -msgstr "Objekte schneiden sich oder berühren sich" - -#: AppTools/ToolDistanceMin.py:299 -msgid "Jumped to the half point between the two selected objects" -msgstr "Sprang zum halben Punkt zwischen den beiden ausgewählten Objekten" - -#: AppTools/ToolEtchCompensation.py:75 AppTools/ToolInvertGerber.py:74 -msgid "Gerber object that will be inverted." -msgstr "Gerber-Objekt, das invertiert wird." - -#: AppTools/ToolEtchCompensation.py:86 -msgid "Utilities" -msgstr "Dienstprogramme" - -#: AppTools/ToolEtchCompensation.py:87 -msgid "Conversion utilities" -msgstr "Konvertierungsdienstprogramme" - -#: AppTools/ToolEtchCompensation.py:92 -msgid "Oz to Microns" -msgstr "Oz zu Mikron" - -#: AppTools/ToolEtchCompensation.py:94 -msgid "" -"Will convert from oz thickness to microns [um].\n" -"Can use formulas with operators: /, *, +, -, %, .\n" -"The real numbers use the dot decimals separator." -msgstr "" -"Konvertiert von Unzen Dicke in Mikrometer [um].\n" -"Kann Formeln mit Operatoren verwenden: /, *, +, -,% ,.\n" -"Die reellen Zahlen verwenden das Punkt-Dezimal-Trennzeichen." - -#: AppTools/ToolEtchCompensation.py:103 -msgid "Oz value" -msgstr "Oz Wert" - -#: AppTools/ToolEtchCompensation.py:105 AppTools/ToolEtchCompensation.py:126 -msgid "Microns value" -msgstr "Mikronwert" - -#: AppTools/ToolEtchCompensation.py:113 -msgid "Mils to Microns" -msgstr "Mils zu Mikron" - -#: AppTools/ToolEtchCompensation.py:115 -msgid "" -"Will convert from mils to microns [um].\n" -"Can use formulas with operators: /, *, +, -, %, .\n" -"The real numbers use the dot decimals separator." -msgstr "" -"Konvertiert von mil in Mikrometer [um].\n" -"Kann Formeln mit Operatoren verwenden: /, *, +, -,% ,.\n" -"Die reellen Zahlen verwenden das Punkt-Dezimal-Trennzeichen." - -#: AppTools/ToolEtchCompensation.py:124 -msgid "Mils value" -msgstr "Mils Wert" - -#: AppTools/ToolEtchCompensation.py:139 AppTools/ToolInvertGerber.py:86 -msgid "Parameters for this tool" -msgstr "Parameter für dieses Werkzeug" - -#: AppTools/ToolEtchCompensation.py:144 -msgid "Copper Thickness" -msgstr "Kupferdicke" - -#: AppTools/ToolEtchCompensation.py:146 -msgid "" -"The thickness of the copper foil.\n" -"In microns [um]." -msgstr "" -"Die Dicke der Kupferfolie.\n" -"In Mikrometern [um]." - -#: AppTools/ToolEtchCompensation.py:157 -msgid "Ratio" -msgstr "Verhältnis" - -#: AppTools/ToolEtchCompensation.py:159 -msgid "" -"The ratio of lateral etch versus depth etch.\n" -"Can be:\n" -"- custom -> the user will enter a custom value\n" -"- preselection -> value which depends on a selection of etchants" -msgstr "" -"Das Verhältnis von seitlichem Ätzen zu Tiefenätzen.\n" -"Kann sein:\n" -"- custom -> Der Benutzer gibt einen benutzerdefinierten Wert ein\n" -"- vorausgewählt -> Wert, der von einer Auswahl der Ätzmittel abhängt" - -#: AppTools/ToolEtchCompensation.py:165 -msgid "Etch Factor" -msgstr "Ätzfaktor" - -#: AppTools/ToolEtchCompensation.py:166 -msgid "Etchants list" -msgstr "Ätzliste" - -#: AppTools/ToolEtchCompensation.py:167 -msgid "Manual offset" -msgstr "Manueller Versatz" - -#: AppTools/ToolEtchCompensation.py:174 AppTools/ToolEtchCompensation.py:179 -msgid "Etchants" -msgstr "Ätzmittel" - -#: AppTools/ToolEtchCompensation.py:176 -msgid "A list of etchants." -msgstr "Eine Liste von Ätzmitteln." - -#: AppTools/ToolEtchCompensation.py:180 -msgid "Alkaline baths" -msgstr "Alkalische Bäder" - -#: AppTools/ToolEtchCompensation.py:186 -msgid "Etch factor" -msgstr "Ätzfaktor" - -#: AppTools/ToolEtchCompensation.py:188 -msgid "" -"The ratio between depth etch and lateral etch .\n" -"Accepts real numbers and formulas using the operators: /,*,+,-,%" -msgstr "" -"Das Verhältnis zwischen Tiefenätzen und seitlichem Ätzen.\n" -"Akzeptiert reelle Zahlen und Formeln mit den Operatoren: /, *, +, -,%" - -#: AppTools/ToolEtchCompensation.py:192 -msgid "Real number or formula" -msgstr "Reelle Zahl oder Formel" - -#: AppTools/ToolEtchCompensation.py:193 -msgid "Etch_factor" -msgstr "Ätzfaktor" - -#: AppTools/ToolEtchCompensation.py:201 -msgid "" -"Value with which to increase or decrease (buffer)\n" -"the copper features. In microns [um]." -msgstr "" -"Wert, mit dem erhöht oder verringert werden soll (Puffer)\n" -"die Kupfermerkmale. In Mikrometern [um]." - -#: AppTools/ToolEtchCompensation.py:225 -msgid "Compensate" -msgstr "Kompensieren" - -#: AppTools/ToolEtchCompensation.py:227 -msgid "" -"Will increase the copper features thickness to compensate the lateral etch." -msgstr "" -"Erhöht die Dicke der Kupfermerkmale, um das seitliche Ätzen zu kompensieren." - -#: AppTools/ToolExtractDrills.py:29 AppTools/ToolExtractDrills.py:295 -msgid "Extract Drills" -msgstr "Bohrer extrahieren" - -#: AppTools/ToolExtractDrills.py:62 -msgid "Gerber from which to extract drill holes" -msgstr "Gerber, aus dem Bohrlöcher gezogen werden sollen" - -#: AppTools/ToolExtractDrills.py:297 -msgid "Extract drills from a given Gerber file." -msgstr "Extrahieren Sie Bohrer aus einer bestimmten Gerber-Datei." - -#: AppTools/ToolExtractDrills.py:478 AppTools/ToolExtractDrills.py:563 -#: AppTools/ToolExtractDrills.py:648 -msgid "No drills extracted. Try different parameters." -msgstr "Keine Bohrer extrahiert. Probieren Sie verschiedene Parameter aus." - -#: AppTools/ToolFiducials.py:56 -msgid "Fiducials Coordinates" -msgstr "Bezugspunktkoordinaten" - -#: AppTools/ToolFiducials.py:58 -msgid "" -"A table with the fiducial points coordinates,\n" -"in the format (x, y)." -msgstr "" -"Eine Tabelle der Bezugspunkte mit Koordinaten \n" -"im Format (x,z)" - -#: AppTools/ToolFiducials.py:194 -msgid "" -"- 'Auto' - automatic placement of fiducials in the corners of the bounding " -"box.\n" -" - 'Manual' - manual placement of fiducials." -msgstr "" -"\"Auto\" Die Bezugspunkte werden automatisch in den Ecken des Umrisses " -"platziert.\n" -"\"Manuell\" Die Bezugspunkte werden manuell platziert." - -#: AppTools/ToolFiducials.py:240 -msgid "Thickness of the line that makes the fiducial." -msgstr "Dicke der Linie, die den Bezugspunkt macht." - -#: AppTools/ToolFiducials.py:271 -msgid "Add Fiducial" -msgstr "Bezugspunkt hinzufügen" - -#: AppTools/ToolFiducials.py:273 -msgid "Will add a polygon on the copper layer to serve as fiducial." -msgstr "Fügt ein Polygon auf die Kupferschicht als Bezugspunkt hinzu." - -#: AppTools/ToolFiducials.py:289 -msgid "Soldermask Gerber" -msgstr "Lötpastenmaske Gerber" - -#: AppTools/ToolFiducials.py:291 -msgid "The Soldermask Gerber object." -msgstr "Lötpastenmaske Gerber-Objekt." - -#: AppTools/ToolFiducials.py:303 -msgid "Add Soldermask Opening" -msgstr "Lotpastenmaske Öffnung hinzufügen" - -#: AppTools/ToolFiducials.py:305 -msgid "" -"Will add a polygon on the soldermask layer\n" -"to serve as fiducial opening.\n" -"The diameter is always double of the diameter\n" -"for the copper fiducial." -msgstr "" -"Fügt ein Polygon zur Lötpastenschicht hinzu, \n" -"welches als Öffnungs-Bezugspunkt dient.\n" -"Der Durchmesser ist immer doppelt so groß\n" -"wie der Kupfer Bezugspunkt." - -#: AppTools/ToolFiducials.py:520 -msgid "Click to add first Fiducial. Bottom Left..." -msgstr "Klicken um den ersten Bezugspunkt unten links hinzuzufügen..." - -#: AppTools/ToolFiducials.py:784 -msgid "Click to add the last fiducial. Top Right..." -msgstr "Klicken um den letzten Bezugspunkt oben rechts hinzuzufügen..." - -#: AppTools/ToolFiducials.py:789 -msgid "Click to add the second fiducial. Top Left or Bottom Right..." -msgstr "" -"Klicken um den zweiten Bezugspunkt oben links oder unten rechts " -"hinzuzufügen..." - -#: AppTools/ToolFiducials.py:792 AppTools/ToolFiducials.py:801 -msgid "Done. All fiducials have been added." -msgstr "Fertig. Alle Bezugspunkte hinzugefügt." - -#: AppTools/ToolFiducials.py:878 -msgid "Fiducials Tool exit." -msgstr "Bezugspunkttool beenden." - -#: AppTools/ToolFilm.py:42 -msgid "Film PCB" -msgstr "Film PCB" - -#: AppTools/ToolFilm.py:73 -msgid "" -"Specify the type of object for which to create the film.\n" -"The object can be of type: Gerber or Geometry.\n" -"The selection here decide the type of objects that will be\n" -"in the Film Object combobox." -msgstr "" -"Geben Sie den Objekttyp an, für den der Film erstellt werden soll.\n" -"Das Objekt kann vom Typ sein: Gerber oder Geometrie.\n" -"Die Auswahl hier bestimmt den Objekttyp\n" -"im Filmobjekt-Kombinationsfeld." - -#: AppTools/ToolFilm.py:96 -msgid "" -"Specify the type of object to be used as an container for\n" -"film creation. It can be: Gerber or Geometry type.The selection here decide " -"the type of objects that will be\n" -"in the Box Object combobox." -msgstr "" -"Geben Sie den Objekttyp an, für den ein Container verwendet werden soll\n" -"Filmschaffung. Es kann sein: Gerber- oder Geometrietyp. Die Auswahl hier " -"bestimmt den Objekttyp\n" -"im Kombinationsfeld Box-Objekt." - -#: AppTools/ToolFilm.py:256 -msgid "Film Parameters" -msgstr "Film-Parameter" - -#: AppTools/ToolFilm.py:317 -msgid "Punch drill holes" -msgstr "Löcher stanzen" - -#: AppTools/ToolFilm.py:318 -msgid "" -"When checked the generated film will have holes in pads when\n" -"the generated film is positive. This is done to help drilling,\n" -"when done manually." -msgstr "" -"Wenn diese Option aktiviert ist, weist der erzeugte Film Löcher in den Pads " -"auf\n" -"Der erzeugte Film ist positiv. Dies geschieht, um das Bohren zu " -"erleichtern.\n" -"wenn manuell erledigt." - -#: AppTools/ToolFilm.py:336 -msgid "Source" -msgstr "Quelle" - -#: AppTools/ToolFilm.py:338 -msgid "" -"The punch hole source can be:\n" -"- Excellon -> an Excellon holes center will serve as reference.\n" -"- Pad Center -> will try to use the pads center as reference." -msgstr "" -"Die Stanzlochquelle kann sein:\n" -"- Excellon -> Ein Excellon-Lochzentrum dient als Referenz.\n" -"- Pad-Mitte -> wird versuchen, die Pad-Mitte als Referenz zu verwenden." - -#: AppTools/ToolFilm.py:343 -msgid "Pad center" -msgstr "Pad-Mitte" - -#: AppTools/ToolFilm.py:348 -msgid "Excellon Obj" -msgstr "Excellon-Objekt" - -#: AppTools/ToolFilm.py:350 -msgid "" -"Remove the geometry of Excellon from the Film to create the holes in pads." -msgstr "" -"Entfernen Sie die Geometrie von Excellon aus dem Film, um die Löcher in den " -"Pads zu erzeugen." - -#: AppTools/ToolFilm.py:364 -msgid "Punch Size" -msgstr "Lochergröße" - -#: AppTools/ToolFilm.py:365 -msgid "The value here will control how big is the punch hole in the pads." -msgstr "Der Wert hier bestimmt, wie groß das Loch in den Pads ist." - -#: AppTools/ToolFilm.py:485 -msgid "Save Film" -msgstr "Film speichern" - -#: AppTools/ToolFilm.py:487 -msgid "" -"Create a Film for the selected object, within\n" -"the specified box. Does not create a new \n" -" FlatCAM object, but directly save it in the\n" -"selected format." -msgstr "" -"Erstellen Sie einen Film für das ausgewählte Objekt\n" -"die angegebene Box Erstellt kein neues\n" -"  FlatCAM-Objekt, speichern Sie es jedoch direkt im \n" -"gewähltem Format." - -#: AppTools/ToolFilm.py:649 -msgid "" -"Using the Pad center does not work on Geometry objects. Only a Gerber object " -"has pads." -msgstr "" -"Die Verwendung der Pad-Mitte funktioniert nicht bei Geometrieobjekten. Nur " -"ein Gerber-Objekt hat Pads." - -#: AppTools/ToolFilm.py:659 -msgid "No FlatCAM object selected. Load an object for Film and retry." -msgstr "" -"Kein FlatCAM-Objekt ausgewählt. Laden Sie ein Objekt für Film und versuchen " -"Sie es erneut." - -#: AppTools/ToolFilm.py:666 -msgid "No FlatCAM object selected. Load an object for Box and retry." -msgstr "" -"Kein FlatCAM-Objekt ausgewählt. Laden Sie ein Objekt für Box und versuchen " -"Sie es erneut." - -#: AppTools/ToolFilm.py:670 -msgid "No FlatCAM object selected." -msgstr "Kein FlatCAM-Objekt ausgewählt." - -#: AppTools/ToolFilm.py:681 -msgid "Generating Film ..." -msgstr "Film wird erstellt ..." - -#: AppTools/ToolFilm.py:730 AppTools/ToolFilm.py:734 -msgid "Export positive film" -msgstr "Film positiv exportieren" - -#: AppTools/ToolFilm.py:767 -msgid "" -"No Excellon object selected. Load an object for punching reference and retry." -msgstr "" -"Kein Excellon-Objekt ausgewählt. Laden Sie ein Objekt zum Stanzen der " -"Referenz und versuchen Sie es erneut." - -#: AppTools/ToolFilm.py:791 -msgid "" -" Could not generate punched hole film because the punch hole sizeis bigger " -"than some of the apertures in the Gerber object." -msgstr "" -" Es konnte kein Lochfilm erzeugt werden, da die Lochgröße größer ist als " -"einige der Öffnungen im Gerber-Objekt." - -#: AppTools/ToolFilm.py:803 -msgid "" -"Could not generate punched hole film because the punch hole sizeis bigger " -"than some of the apertures in the Gerber object." -msgstr "" -"Es konnte kein Lochfilm erzeugt werden, da die Lochgröße größer ist als " -"einige der Öffnungen im Gerber-Objekt." - -#: AppTools/ToolFilm.py:821 -msgid "" -"Could not generate punched hole film because the newly created object " -"geometry is the same as the one in the source object geometry..." -msgstr "" -"Lochfolie konnte nicht generiert werden, da die neu erstellte " -"Objektgeometrie mit der in der Quellobjektgeometrie übereinstimmt ..." - -#: AppTools/ToolFilm.py:876 AppTools/ToolFilm.py:880 -msgid "Export negative film" -msgstr "Exportieren negativ Film" - -#: AppTools/ToolFilm.py:941 AppTools/ToolFilm.py:1124 -#: AppTools/ToolPanelize.py:441 -msgid "No object Box. Using instead" -msgstr "Keine Objektbox. Verwenden Sie stattdessen" - -#: AppTools/ToolFilm.py:1057 AppTools/ToolFilm.py:1237 -msgid "Film file exported to" -msgstr "Film-Datei exportiert nach" - -#: AppTools/ToolFilm.py:1060 AppTools/ToolFilm.py:1240 -msgid "Generating Film ... Please wait." -msgstr "Film wird erstellt ... Bitte warten Sie." - -#: AppTools/ToolImage.py:24 -msgid "Image as Object" -msgstr "Bild als Objekt" - -#: AppTools/ToolImage.py:33 -msgid "Image to PCB" -msgstr "Bild auf PCB" - -#: AppTools/ToolImage.py:56 -msgid "" -"Specify the type of object to create from the image.\n" -"It can be of type: Gerber or Geometry." -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:65 -msgid "DPI value" -msgstr "DPI-Wert" - -#: AppTools/ToolImage.py:66 -msgid "Specify a DPI value for the image." -msgstr "Geben Sie einen DPI-Wert für das Bild an." - -#: AppTools/ToolImage.py:72 -msgid "Level of detail" -msgstr "Detaillierungsgrad" - -#: AppTools/ToolImage.py:81 -msgid "Image type" -msgstr "Bildtyp" - -#: AppTools/ToolImage.py:83 -msgid "" -"Choose a method for the image interpretation.\n" -"B/W means a black & white image. Color means a colored image." -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:92 AppTools/ToolImage.py:107 AppTools/ToolImage.py:120 -#: AppTools/ToolImage.py:133 -msgid "Mask value" -msgstr "Maskenwert" - -#: AppTools/ToolImage.py:94 -msgid "" -"Mask for monochrome image.\n" -"Takes values between [0 ... 255].\n" -"Decides the level of details to include\n" -"in the resulting geometry.\n" -"0 means no detail and 255 means everything \n" -"(which is totally black)." -msgstr "" -"Maske für ein Schwarzweißbild.\n" -"Nimmt Werte zwischen [0 ... 255] an.\n" -"Legt fest, wie viel Details enthalten sind\n" -"in der resultierenden Geometrie.\n" -"0 bedeutet kein Detail und 255 bedeutet alles\n" -"(das ist total schwarz)." - -#: AppTools/ToolImage.py:109 -msgid "" -"Mask for RED color.\n" -"Takes values between [0 ... 255].\n" -"Decides the level of details to include\n" -"in the resulting geometry." -msgstr "" -"Maske für rote Farbe.\n" -"Nimmt Werte zwischen [0 ... 255] an.\n" -"Legt fest, wie viel Details enthalten sind\n" -"in der resultierenden Geometrie." - -#: AppTools/ToolImage.py:122 -msgid "" -"Mask for GREEN color.\n" -"Takes values between [0 ... 255].\n" -"Decides the level of details to include\n" -"in the resulting geometry." -msgstr "" -"Maske für GRÜNE Farbe.\n" -"Nimmt Werte zwischen [0 ... 255] an.\n" -"Legt fest, wie viel Details enthalten sind\n" -"in der resultierenden Geometrie." - -#: AppTools/ToolImage.py:135 -msgid "" -"Mask for BLUE color.\n" -"Takes values between [0 ... 255].\n" -"Decides the level of details to include\n" -"in the resulting geometry." -msgstr "" -"Maske für BLAUE Farbe.\n" -"Nimmt Werte zwischen [0 ... 255] an.\n" -"Legt fest, wie viel Details enthalten sind\n" -"in der resultierenden Geometrie." - -#: AppTools/ToolImage.py:143 -msgid "Import image" -msgstr "Bild importieren" - -#: AppTools/ToolImage.py:145 -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." - -#: AppTools/ToolImage.py:182 -msgid "Image Tool" -msgstr "Bildwerkzeug" - -#: AppTools/ToolImage.py:234 AppTools/ToolImage.py:237 -msgid "Import IMAGE" -msgstr "BILD importieren" - -#: AppTools/ToolImage.py:277 App_Main.py:8360 App_Main.py:8407 -msgid "" -"Not supported type is picked as parameter. Only Geometry and Gerber are " -"supported" -msgstr "" -"Nicht unterstützte Art wird als Parameter ausgewählt. Nur Geometrie und " -"Gerber werden unterstützt" - -#: AppTools/ToolImage.py:285 -msgid "Importing Image" -msgstr "Bild importieren" - -#: AppTools/ToolImage.py:297 AppTools/ToolPDF.py:154 App_Main.py:8385 -#: App_Main.py:8431 App_Main.py:8495 App_Main.py:8562 App_Main.py:8628 -#: App_Main.py:8693 App_Main.py:8750 -msgid "Opened" -msgstr "Geöffnet" - -#: AppTools/ToolInvertGerber.py:126 -msgid "Invert Gerber" -msgstr "Gerber umkehren" - -#: AppTools/ToolInvertGerber.py:128 -msgid "" -"Will invert the Gerber object: areas that have copper\n" -"will be empty of copper and previous empty area will be\n" -"filled with copper." -msgstr "" -"Invertiert das Gerber-Objekt: Bereiche mit Kupfer\n" -"wird leer von Kupfer sein und der vorherige leere Bereich wird leer sein\n" -"mit Kupfer gefüllt." - -#: AppTools/ToolInvertGerber.py:187 -msgid "Invert Tool" -msgstr "Invertiert Werkzeug" - -#: AppTools/ToolIsolation.py:96 -msgid "Gerber object for isolation routing." -msgstr "Gerber-Objekt für Isolationsrouting." - -#: AppTools/ToolIsolation.py:120 AppTools/ToolNCC.py:122 -msgid "" -"Tools pool from which the algorithm\n" -"will pick the ones used for copper clearing." -msgstr "" -"Toolspool aus dem der Algorithmus\n" -"wählt die für die Kupferreinigung verwendeten aus." - -#: AppTools/ToolIsolation.py:136 -msgid "" -"This is the Tool Number.\n" -"Isolation routing will start with the tool with the biggest \n" -"diameter, continuing until there are no more tools.\n" -"Only tools that create Isolation geometry will still be present\n" -"in the resulting geometry. This is because with some tools\n" -"this function will not be able to create routing geometry." -msgstr "" -"Dies ist die Werkzeugnummer.\n" -"Das Isolationsrouting beginnt mit dem Tool mit dem größten\n" -"Durchmesser, so lange, bis keine Werkzeuge mehr vorhanden sind.\n" -"Es sind nur noch Werkzeuge vorhanden, die eine Isolationsgeometrie " -"erstellen\n" -"in der resultierenden Geometrie. Dies liegt daran, dass mit einigen " -"Werkzeugen\n" -"Diese Funktion kann keine Routing-Geometrie erstellen." - -#: AppTools/ToolIsolation.py:144 AppTools/ToolNCC.py:146 -msgid "" -"Tool Diameter. It's value (in current FlatCAM units)\n" -"is the cut width into the material." -msgstr "" -"Werkzeugdurchmesser. Wert (in aktuellen FlatCAM-Einheiten)\n" -"ist die Schnittbreite in das Material." - -#: AppTools/ToolIsolation.py:148 AppTools/ToolNCC.py:150 -msgid "" -"The Tool Type (TT) can be:\n" -"- Circular with 1 ... 4 teeth -> it is informative only. Being circular,\n" -"the cut width in material is exactly the tool diameter.\n" -"- Ball -> informative only and make reference to the Ball type endmill.\n" -"- V-Shape -> it will disable Z-Cut parameter in the resulting geometry UI " -"form\n" -"and enable two additional UI form fields in the resulting geometry: V-Tip " -"Dia and\n" -"V-Tip Angle. Adjusting those two values will adjust the Z-Cut parameter " -"such\n" -"as the cut width into material will be equal with the value in the Tool " -"Diameter\n" -"column of this table.\n" -"Choosing the 'V-Shape' Tool Type automatically will select the Operation " -"Type\n" -"in the resulting geometry as Isolation." -msgstr "" -"Der Werkzeugtyp (TT) kann sein:\n" -"- Rundschreiben mit 1 ... 4 Zähnen -> nur informativ. Rundschreiben,\n" -"Die Schnittbreite im Material entspricht genau dem Werkzeugdurchmesser.\n" -"- Ball -> nur informativ und auf den Ball-Schaftfräser verweisen.\n" -"- V-Form -> Deaktiviert den Z-Cut-Parameter in der resultierenden Geometrie-" -"UI-Form\n" -"und aktivieren Sie zwei zusätzliche UI-Formularfelder in der resultierenden " -"Geometrie: V-Tip Dia und\n" -"V-Tip-Winkel. Durch Anpassen dieser beiden Werte wird der Z-Cut-Parameter " -"wie z\n" -"da die Schnittbreite in Material gleich dem Wert im Werkzeugdurchmesser ist\n" -"Spalte dieser Tabelle.\n" -"Durch automatische Auswahl des Werkzeugtyps \"V-Form\" wird der " -"Operationstyp ausgewählt\n" -"in der resultierenden Geometrie als Isolation." - -#: AppTools/ToolIsolation.py:300 AppTools/ToolNCC.py:318 -#: AppTools/ToolPaint.py:300 AppTools/ToolSolderPaste.py:135 -msgid "" -"Delete a selection of tools in the Tool Table\n" -"by first selecting a row(s) in the Tool Table." -msgstr "" -"Löschen Sie eine Auswahl von Werkzeugen in der Werkzeugtabelle\n" -"indem Sie zuerst eine oder mehrere Zeilen in der Werkzeugtabelle auswählen." - -#: AppTools/ToolIsolation.py:467 -msgid "" -"Specify the type of object to be excepted from isolation.\n" -"It can be of type: Gerber or Geometry.\n" -"What is selected here will dictate the kind\n" -"of objects that will populate the 'Object' combobox." -msgstr "" -"Geben Sie den Objekttyp an, der von der Isolation ausgenommen werden soll.\n" -"Es kann vom Typ Gerber oder Geometrie sein.\n" -"Was hier ausgewählt wird, bestimmt die Art\n" -"von Objekten, die das Kombinationsfeld \"Objekt\" füllen." - -#: AppTools/ToolIsolation.py:477 -msgid "Object whose area will be removed from isolation geometry." -msgstr "Objekt, dessen Bereich aus der Isolationsgeometrie entfernt wird." - -#: AppTools/ToolIsolation.py:513 AppTools/ToolNCC.py:554 -msgid "" -"The type of FlatCAM object to be used as non copper clearing reference.\n" -"It can be Gerber, Excellon or Geometry." -msgstr "" -"Der Typ des FlatCAM-Objekts, das als nicht aus Kupfer stammende Clearing-" -"Referenz verwendet werden soll.\n" -"Es kann Gerber, Excellon oder Geometry sein." - -#: AppTools/ToolIsolation.py:559 -msgid "Generate Isolation Geometry" -msgstr "Isolationsgeometrie erzeugen" - -#: AppTools/ToolIsolation.py:567 -msgid "" -"Create a Geometry object with toolpaths to cut \n" -"isolation outside, inside or on both sides of the\n" -"object. For a Gerber object outside means outside\n" -"of the Gerber feature and inside means inside of\n" -"the Gerber feature, if possible at all. This means\n" -"that only if the Gerber feature has openings inside, they\n" -"will be isolated. If what is wanted is to cut isolation\n" -"inside the actual Gerber feature, use a negative tool\n" -"diameter above." -msgstr "" -"Erstellen Sie ein Geometrieobjekt mit zu schneidenden Werkzeugwegen\n" -"Isolierung außen, innen oder auf beiden Seiten des\n" -"Objekt. Für ein Gerber-Objekt bedeutet draußen außerhalb\n" -"der Gerber-Funktion und inside bedeutet inside\n" -"die Gerber-Funktion, wenn überhaupt möglich. Das heisst\n" -"Nur wenn das Gerber-Feature Öffnungen enthält, können sie\n" -"wird isoliert werden. Wenn es darum geht, die Isolation abzuschneiden\n" -"Verwenden Sie in der Gerber-Funktion ein negatives Werkzeug\n" -"Durchmesser oben." - -#: AppTools/ToolIsolation.py:1266 AppTools/ToolIsolation.py:1426 -#: AppTools/ToolNCC.py:932 AppTools/ToolNCC.py:1449 AppTools/ToolPaint.py:857 -#: AppTools/ToolSolderPaste.py:576 AppTools/ToolSolderPaste.py:901 -#: App_Main.py:4210 -msgid "Please enter a tool diameter with non-zero value, in Float format." -msgstr "" -"Bitte geben Sie einen Werkzeugdurchmesser ungleich Null im Float-Format ein." - -#: AppTools/ToolIsolation.py:1270 AppTools/ToolNCC.py:936 -#: AppTools/ToolPaint.py:861 AppTools/ToolSolderPaste.py:580 App_Main.py:4214 -msgid "Adding Tool cancelled" -msgstr "Addierwerkzeug abgebrochen" - -#: AppTools/ToolIsolation.py:1420 AppTools/ToolNCC.py:1443 -#: AppTools/ToolPaint.py:1203 AppTools/ToolSolderPaste.py:896 -msgid "Please enter a tool diameter to add, in Float format." -msgstr "" -"Bitte geben Sie einen hinzuzufügenden Werkzeugdurchmesser im Float-Format " -"ein." - -#: AppTools/ToolIsolation.py:1451 AppTools/ToolIsolation.py:2959 -#: AppTools/ToolNCC.py:1474 AppTools/ToolNCC.py:4079 AppTools/ToolPaint.py:1227 -#: AppTools/ToolPaint.py:3628 AppTools/ToolSolderPaste.py:925 -msgid "Cancelled. Tool already in Tool Table." -msgstr "Abgebrochen. Werkzeug bereits in der Werkzeugtabelle." - -#: AppTools/ToolIsolation.py:1458 AppTools/ToolIsolation.py:2977 -#: AppTools/ToolNCC.py:1481 AppTools/ToolNCC.py:4096 AppTools/ToolPaint.py:1232 -#: AppTools/ToolPaint.py:3645 -msgid "New tool added to Tool Table." -msgstr "Neues Werkzeug zur Werkzeugtabelle hinzugefügt." - -#: AppTools/ToolIsolation.py:1502 AppTools/ToolNCC.py:1525 -#: AppTools/ToolPaint.py:1276 -msgid "Tool from Tool Table was edited." -msgstr "Werkzeug aus Werkzeugtabelle wurde bearbeitet." - -#: AppTools/ToolIsolation.py:1514 AppTools/ToolNCC.py:1537 -#: AppTools/ToolPaint.py:1288 AppTools/ToolSolderPaste.py:986 -msgid "Cancelled. New diameter value is already in the Tool Table." -msgstr "" -"Abgebrochen. Der neue Durchmesserwert befindet sich bereits in der " -"Werkzeugtabelle." - -#: AppTools/ToolIsolation.py:1566 AppTools/ToolNCC.py:1589 -#: AppTools/ToolPaint.py:1386 -msgid "Delete failed. Select a tool to delete." -msgstr "Löschen fehlgeschlagen. Wählen Sie ein Werkzeug zum Löschen aus." - -#: AppTools/ToolIsolation.py:1572 AppTools/ToolNCC.py:1595 -#: AppTools/ToolPaint.py:1392 -msgid "Tool(s) deleted from Tool Table." -msgstr "Werkzeug(e) aus der Werkzeugtabelle gelöscht." - -#: AppTools/ToolIsolation.py:1620 -msgid "Isolating..." -msgstr "Isolieren ..." - -#: AppTools/ToolIsolation.py:1654 -msgid "Failed to create Follow Geometry with tool diameter" -msgstr "Fehler beim Erstellen der folgenden Geometrie mit Werkzeugdurchmesser" - -#: AppTools/ToolIsolation.py:1657 -msgid "Follow Geometry was created with tool diameter" -msgstr "Die folgende Geometrie wurde mit dem Werkzeugdurchmesser erstellt" - -#: AppTools/ToolIsolation.py:1698 -msgid "Click on a polygon to isolate it." -msgstr "Klicken Sie auf ein Plozgon um es zu isolieren." - -#: AppTools/ToolIsolation.py:1812 AppTools/ToolIsolation.py:1832 -#: AppTools/ToolIsolation.py:1967 AppTools/ToolIsolation.py:2138 -msgid "Subtracting Geo" -msgstr "Geo subtrahieren" - -#: AppTools/ToolIsolation.py:1816 AppTools/ToolIsolation.py:1971 -#: AppTools/ToolIsolation.py:2142 -msgid "Intersecting Geo" -msgstr "Sich überschneidende Geometrie" - -#: AppTools/ToolIsolation.py:1865 AppTools/ToolIsolation.py:2032 -#: AppTools/ToolIsolation.py:2199 -msgid "Empty Geometry in" -msgstr "Leere Geometrie in" - -#: AppTools/ToolIsolation.py:2041 -msgid "" -"Partial failure. The geometry was processed with all tools.\n" -"But there are still not-isolated geometry elements. Try to include a tool " -"with smaller diameter." -msgstr "" -"Teilversagen. Die Geometrie wurde mit allen Werkzeugen verarbeitet.\n" -"Es gibt jedoch immer noch nicht isolierte Geometrieelemente. Versuchen Sie, " -"ein Werkzeug mit kleinerem Durchmesser einzuschließen." - -#: AppTools/ToolIsolation.py:2044 -msgid "" -"The following are coordinates for the copper features that could not be " -"isolated:" -msgstr "" -"Die folgenden Koordinaten für die Kupfermerkmale konnten nicht isoliert " -"werden:" - -#: AppTools/ToolIsolation.py:2356 AppTools/ToolIsolation.py:2465 -#: AppTools/ToolPaint.py:1535 -msgid "Added polygon" -msgstr "Polygon hinzugefügt" - -#: AppTools/ToolIsolation.py:2357 AppTools/ToolIsolation.py:2467 -msgid "Click to add next polygon or right click to start isolation." -msgstr "" -"Klicken Sie, um das nächste Polygon hinzuzufügen, oder klicken Sie mit der " -"rechten Maustaste, um den Isolationsvorgang zu beginnen." - -#: AppTools/ToolIsolation.py:2369 AppTools/ToolPaint.py:1549 -msgid "Removed polygon" -msgstr "Polygon entfernt" - -# nearly the same as before? What good is this? -#: AppTools/ToolIsolation.py:2370 -msgid "Click to add/remove next polygon or right click to start isolation." -msgstr "" -"Klicken Sie, um das nächste Polygon hinzuzufügen oder zu entfernen, oder " -"klicken Sie mit der rechten Maustaste, um den Isolationsvorgang zu beginnen." - -#: AppTools/ToolIsolation.py:2375 AppTools/ToolPaint.py:1555 -msgid "No polygon detected under click position." -msgstr "Kein Polygon an der Stelle an die geklickt wurde." - -#: AppTools/ToolIsolation.py:2401 AppTools/ToolPaint.py:1584 -msgid "List of single polygons is empty. Aborting." -msgstr "Liste der Einzelpolygone ist leer. Vorgang wird abgebrochen." - -#: AppTools/ToolIsolation.py:2470 -msgid "No polygon in selection." -msgstr "Kein Polygon in der Auswahl." - -#: AppTools/ToolIsolation.py:2498 AppTools/ToolNCC.py:1725 -#: AppTools/ToolPaint.py:1619 -msgid "Click the end point of the paint area." -msgstr "Klicken Sie auf den Endpunkt des Malbereichs." - -#: AppTools/ToolIsolation.py:2916 AppTools/ToolNCC.py:4036 -#: AppTools/ToolPaint.py:3585 App_Main.py:5318 App_Main.py:5328 -msgid "Tool from DB added in Tool Table." -msgstr "Werkzeug aus Werkzeugdatenbank zur Werkzeugtabelle hinzugefügt." - -#: AppTools/ToolMove.py:102 -msgid "MOVE: Click on the Start point ..." -msgstr "Verschieben: Klicke auf den Startpunkt ..." - -#: AppTools/ToolMove.py:113 -msgid "Cancelled. No object(s) to move." -msgstr "Abgebrochen. Keine Objekte zum Bewegen." - -#: AppTools/ToolMove.py:140 -msgid "MOVE: Click on the Destination point ..." -msgstr "Verschieben: Klicken Sie auf den Zielpunkt ..." - -#: AppTools/ToolMove.py:163 -msgid "Moving..." -msgstr "Ziehen um..." - -#: AppTools/ToolMove.py:166 -msgid "No object(s) selected." -msgstr "Keine Objekte ausgewählt." - -#: AppTools/ToolMove.py:221 -msgid "Error when mouse left click." -msgstr "Fehler beim Klicken mit der linken Maustaste." - -#: AppTools/ToolNCC.py:42 -msgid "Non-Copper Clearing" -msgstr "Nicht-Kupfer-Clearing" - -#: AppTools/ToolNCC.py:86 AppTools/ToolPaint.py:79 -msgid "Obj Type" -msgstr "Obj-Typ" - -#: AppTools/ToolNCC.py:88 -msgid "" -"Specify the type of object to be cleared of excess copper.\n" -"It can be of type: Gerber or Geometry.\n" -"What is selected here will dictate the kind\n" -"of objects that will populate the 'Object' combobox." -msgstr "" -"Geben Sie den Objekttyp an, der von überschüssigem Kupfer befreit werden " -"soll.\n" -"Es kann vom Typ Gerber oder Geometrie sein.\n" -"Was hier ausgewählt wird, bestimmt die Art\n" -"von Objekten, die das Kombinationsfeld \"Objekt\" füllen." - -#: AppTools/ToolNCC.py:110 -msgid "Object to be cleared of excess copper." -msgstr "Objekt, das von überschüssigem Kupfer befreit werden soll." - -#: AppTools/ToolNCC.py:138 -msgid "" -"This is the Tool Number.\n" -"Non copper clearing will start with the tool with the biggest \n" -"diameter, continuing until there are no more tools.\n" -"Only tools that create NCC clearing geometry will still be present\n" -"in the resulting geometry. This is because with some tools\n" -"this function will not be able to create painting geometry." -msgstr "" -"Dies ist die Werkzeugnummer.\n" -"Das Nicht-Kupfer-Clearing beginnt mit dem Werkzeug mit dem größten\n" -"Durchmesser, weiter, bis keine Werkzeuge mehr vorhanden sind.\n" -"Es sind nur noch Werkzeuge vorhanden, die eine NCC-Clearing-Geometrie " -"erstellen\n" -"in der resultierenden Geometrie. Dies liegt daran, dass mit einigen Tools\n" -"Diese Funktion kann keine Malgeometrie erstellen." - -#: AppTools/ToolNCC.py:597 AppTools/ToolPaint.py:536 -msgid "Generate Geometry" -msgstr "Geometrie erzeugen" - -#: AppTools/ToolNCC.py:1638 -msgid "Wrong Tool Dia value format entered, use a number." -msgstr "Falsches Werkzeug Dia-Wertformat eingegeben, verwenden Sie eine Zahl." - -#: AppTools/ToolNCC.py:1649 AppTools/ToolPaint.py:1443 -msgid "No selected tools in Tool Table." -msgstr "Keine ausgewählten Werkzeuge in der Werkzeugtabelle." - -#: AppTools/ToolNCC.py:2005 AppTools/ToolNCC.py:3024 -msgid "NCC Tool. Preparing non-copper polygons." -msgstr "NCC-Tool. Vorbereitung von kupferfreien Polygonen." - -#: AppTools/ToolNCC.py:2064 AppTools/ToolNCC.py:3152 -msgid "NCC Tool. Calculate 'empty' area." -msgstr "NCC-Tool. Berechnen Sie die \"leere\" Fläche." - -#: AppTools/ToolNCC.py:2083 AppTools/ToolNCC.py:2192 AppTools/ToolNCC.py:2207 -#: AppTools/ToolNCC.py:3165 AppTools/ToolNCC.py:3270 AppTools/ToolNCC.py:3285 -#: AppTools/ToolNCC.py:3551 AppTools/ToolNCC.py:3652 AppTools/ToolNCC.py:3667 -msgid "Buffering finished" -msgstr "Pufferung beendet" - -#: AppTools/ToolNCC.py:2091 AppTools/ToolNCC.py:2214 AppTools/ToolNCC.py:3173 -#: AppTools/ToolNCC.py:3292 AppTools/ToolNCC.py:3558 AppTools/ToolNCC.py:3674 -msgid "Could not get the extent of the area to be non copper cleared." -msgstr "" -"Die Ausdehnung des nicht kupferhaltigen Bereichs konnte nicht gelöscht " -"werden." - -#: AppTools/ToolNCC.py:2121 AppTools/ToolNCC.py:2200 AppTools/ToolNCC.py:3200 -#: AppTools/ToolNCC.py:3277 AppTools/ToolNCC.py:3578 AppTools/ToolNCC.py:3659 -msgid "" -"Isolation geometry is broken. Margin is less than isolation tool diameter." -msgstr "" -"Die Isolationsgeometrie ist gebrochen. Der Rand ist kleiner als der " -"Durchmesser des Isolationswerkzeugs." - -#: AppTools/ToolNCC.py:2217 AppTools/ToolNCC.py:3296 AppTools/ToolNCC.py:3677 -msgid "The selected object is not suitable for copper clearing." -msgstr "Das ausgewählte Objekt ist nicht zum Löschen von Kupfer geeignet." - -#: AppTools/ToolNCC.py:2224 AppTools/ToolNCC.py:3303 -msgid "NCC Tool. Finished calculation of 'empty' area." -msgstr "NCC-Tool. Berechnung der 'leeren' Fläche beendet." - -#: AppTools/ToolNCC.py:2267 -msgid "Clearing the polygon with the method: lines." -msgstr "Löschen des Polygons mit der Methode: Linien." - -#: AppTools/ToolNCC.py:2277 -msgid "Failed. Clearing the polygon with the method: seed." -msgstr "Gescheitert. Löschen des Polygons mit der Methode: seed." - -#: AppTools/ToolNCC.py:2286 -msgid "Failed. Clearing the polygon with the method: standard." -msgstr "Gescheitert. Löschen des Polygons mit der Methode: Standard." - -#: AppTools/ToolNCC.py:2300 -msgid "Geometry could not be cleared completely" -msgstr "Die Geometrie konnte nicht vollständig gelöscht werden" - -#: AppTools/ToolNCC.py:2325 AppTools/ToolNCC.py:2327 AppTools/ToolNCC.py:2973 -#: AppTools/ToolNCC.py:2975 -msgid "Non-Copper clearing ..." -msgstr "Nicht-Kupfer-Clearing ..." - -#: AppTools/ToolNCC.py:2377 AppTools/ToolNCC.py:3120 -msgid "" -"NCC Tool. Finished non-copper polygons. Normal copper clearing task started." -msgstr "" -"NCC-Tool. Fertige kupferfreie Polygone. Normale Kupferentfernungsaufgabe " -"gestartet." - -#: AppTools/ToolNCC.py:2415 AppTools/ToolNCC.py:2663 -msgid "NCC Tool failed creating bounding box." -msgstr "Das NCC-Tool konnte keinen Begrenzungsrahmen erstellen." - -#: AppTools/ToolNCC.py:2430 AppTools/ToolNCC.py:2680 AppTools/ToolNCC.py:3316 -#: AppTools/ToolNCC.py:3702 -msgid "NCC Tool clearing with tool diameter" -msgstr "Das NCC-Werkzeug wird mit dem Werkzeugdurchmesser gelöscht" - -#: AppTools/ToolNCC.py:2430 AppTools/ToolNCC.py:2680 AppTools/ToolNCC.py:3316 -#: AppTools/ToolNCC.py:3702 -msgid "started." -msgstr "gestartet." - -#: AppTools/ToolNCC.py:2588 AppTools/ToolNCC.py:3477 -msgid "" -"There is no NCC Geometry in the file.\n" -"Usually it means that the tool diameter is too big for the painted " -"geometry.\n" -"Change the painting parameters and try again." -msgstr "" -"Die Datei enthält keine NCC-Geometrie.\n" -"In der Regel bedeutet dies, dass der Werkzeugdurchmesser für die lackierte " -"Geometrie zu groß ist.\n" -"Ändern Sie die Malparameter und versuchen Sie es erneut." - -#: AppTools/ToolNCC.py:2597 AppTools/ToolNCC.py:3486 -msgid "NCC Tool clear all done." -msgstr "NCC Tool löschen alles erledigt." - -#: AppTools/ToolNCC.py:2600 AppTools/ToolNCC.py:3489 -msgid "NCC Tool clear all done but the copper features isolation is broken for" -msgstr "" -"Das NCC-Tool löscht alles, aber die Isolierung der Kupfermerkmale ist " -"unterbrochen" - -#: AppTools/ToolNCC.py:2602 AppTools/ToolNCC.py:2888 AppTools/ToolNCC.py:3491 -#: AppTools/ToolNCC.py:3874 -msgid "tools" -msgstr "Werkzeuge" - -#: AppTools/ToolNCC.py:2884 AppTools/ToolNCC.py:3870 -msgid "NCC Tool Rest Machining clear all done." -msgstr "Die Bearbeitung der NCC-Werkzeugablagen ist abgeschlossen." - -#: AppTools/ToolNCC.py:2887 AppTools/ToolNCC.py:3873 -msgid "" -"NCC Tool Rest Machining clear all done but the copper features isolation is " -"broken for" -msgstr "" -"Die Bearbeitung der NCC-Werkzeugablagen ist abgeschlossen, die Isolierung " -"der Kupferelemente ist jedoch unterbrochen" - -#: AppTools/ToolNCC.py:2985 -msgid "NCC Tool started. Reading parameters." -msgstr "NCC Tool gestartet. Parameter lesen." - -#: AppTools/ToolNCC.py:3972 -msgid "" -"Try to use the Buffering Type = Full in Preferences -> Gerber General. " -"Reload the Gerber file after this change." -msgstr "" -"Versuchen Sie, den Puffertyp = Voll in Einstellungen -> Allgemein zu " -"verwenden. Laden Sie die Gerber-Datei nach dieser Änderung neu." - -#: AppTools/ToolOptimal.py:85 -msgid "Number of decimals kept for found distances." -msgstr "Anzahl der Dezimalstellen für gefundene Entfernungen." - -#: AppTools/ToolOptimal.py:93 -msgid "Minimum distance" -msgstr "Mindestabstand" - -#: AppTools/ToolOptimal.py:94 -msgid "Display minimum distance between copper features." -msgstr "Zeigt den Mindestabstand zwischen Kupferelementen an." - -#: AppTools/ToolOptimal.py:98 -msgid "Determined" -msgstr "Entschlossen" - -#: AppTools/ToolOptimal.py:112 -msgid "Occurring" -msgstr "Vorkommen" - -#: AppTools/ToolOptimal.py:113 -msgid "How many times this minimum is found." -msgstr "Wie oft wird dieses Minimum gefunden." - -#: AppTools/ToolOptimal.py:119 -msgid "Minimum points coordinates" -msgstr "Minimale Punktkoordinaten" - -#: AppTools/ToolOptimal.py:120 AppTools/ToolOptimal.py:126 -msgid "Coordinates for points where minimum distance was found." -msgstr "Koordinaten für Punkte, an denen der Mindestabstand gefunden wurde." - -#: AppTools/ToolOptimal.py:139 AppTools/ToolOptimal.py:215 -msgid "Jump to selected position" -msgstr "Zur ausgewählten Position springen" - -#: AppTools/ToolOptimal.py:141 AppTools/ToolOptimal.py:217 -msgid "" -"Select a position in the Locations text box and then\n" -"click this button." -msgstr "" -"Wählen Sie eine Position im Textfeld Standorte und dann\n" -"Klicken Sie auf diese Schaltfläche." - -#: AppTools/ToolOptimal.py:149 -msgid "Other distances" -msgstr "Andere Entfernungen" - -#: AppTools/ToolOptimal.py:150 -msgid "" -"Will display other distances in the Gerber file ordered from\n" -"the minimum to the maximum, not including the absolute minimum." -msgstr "" -"Zeigt andere Entfernungen in der von bestellten Gerber-Datei an\n" -"das Minimum bis zum Maximum, ohne das absolute Minimum." - -#: AppTools/ToolOptimal.py:155 -msgid "Other distances points coordinates" -msgstr "Andere Entfernungen Punkte Koordinaten" - -#: AppTools/ToolOptimal.py:156 AppTools/ToolOptimal.py:170 -#: AppTools/ToolOptimal.py:177 AppTools/ToolOptimal.py:194 -#: AppTools/ToolOptimal.py:201 -msgid "" -"Other distances and the coordinates for points\n" -"where the distance was found." -msgstr "" -"Andere Entfernungen und die Koordinaten für Punkte\n" -"wo die Entfernung gefunden wurde." - -#: AppTools/ToolOptimal.py:169 -msgid "Gerber distances" -msgstr "Gerber Entfernungen" - -#: AppTools/ToolOptimal.py:193 -msgid "Points coordinates" -msgstr "Punktkoordinaten" - -#: AppTools/ToolOptimal.py:225 -msgid "Find Minimum" -msgstr "Minimum finden" - -#: AppTools/ToolOptimal.py:227 -msgid "" -"Calculate the minimum distance between copper features,\n" -"this will allow the determination of the right tool to\n" -"use for isolation or copper clearing." -msgstr "" -"Berechnen Sie den Mindestabstand zwischen Kupferelementen.\n" -"Dies ermöglicht die Bestimmung des richtigen Werkzeugs\n" -"Verwendung zur Isolierung oder zum Löschen von Kupfer." - -#: AppTools/ToolOptimal.py:352 -msgid "Only Gerber objects can be evaluated." -msgstr "Es können nur Gerber-Objekte ausgewertet werden." - -#: AppTools/ToolOptimal.py:358 -msgid "" -"Optimal Tool. Started to search for the minimum distance between copper " -"features." -msgstr "Optimierer. Sucht Minimalabstand zwischen Kupferbereichen." - -#: AppTools/ToolOptimal.py:368 -msgid "Optimal Tool. Parsing geometry for aperture" -msgstr "Optimales Werkzeug. Analysegeometrie für Blende" - -#: AppTools/ToolOptimal.py:379 -msgid "Optimal Tool. Creating a buffer for the object geometry." -msgstr "Optimales Werkzeug. Erstellen eines Puffers für die Objektgeometrie." - -#: AppTools/ToolOptimal.py:389 -msgid "" -"The Gerber object has one Polygon as geometry.\n" -"There are no distances between geometry elements to be found." -msgstr "" -"Das Gerber-Objekt hat ein Polygon als Geometrie.\n" -"Es sind keine Abstände zwischen Geometrieelementen zu finden." - -#: AppTools/ToolOptimal.py:394 -msgid "" -"Optimal Tool. Finding the distances between each two elements. Iterations" -msgstr "" -"Optimales Werkzeug. Finden der Abstände zwischen jeweils zwei Elementen. " -"Iterationen" - -#: AppTools/ToolOptimal.py:429 -msgid "Optimal Tool. Finding the minimum distance." -msgstr "Optimales Werkzeug. Den Mindestabstand finden." - -#: AppTools/ToolOptimal.py:445 -msgid "Optimal Tool. Finished successfully." -msgstr "Optimales Werkzeug. Erfolgreich beendet." - -#: AppTools/ToolPDF.py:91 AppTools/ToolPDF.py:95 -msgid "Open PDF" -msgstr "PDF öffnen" - -#: AppTools/ToolPDF.py:98 -msgid "Open PDF cancelled" -msgstr "PDF öffnen abgebrochen" - -#: AppTools/ToolPDF.py:122 -msgid "Parsing PDF file ..." -msgstr "PDF-Datei wird analysiert ..." - -#: AppTools/ToolPDF.py:138 App_Main.py:8593 -msgid "Failed to open" -msgstr "Gescheitert zu öffnen" - -#: AppTools/ToolPDF.py:203 AppTools/ToolPcbWizard.py:445 App_Main.py:8542 -msgid "No geometry found in file" -msgstr "Keine Geometrie in der Datei gefunden" - -#: AppTools/ToolPDF.py:206 AppTools/ToolPDF.py:279 -#, python-format -msgid "Rendering PDF layer #%d ..." -msgstr "PDF-Ebene rendern #%d ..." - -#: AppTools/ToolPDF.py:210 AppTools/ToolPDF.py:283 -msgid "Open PDF file failed." -msgstr "Öffnen der PDF-Datei fehlgeschlagen." - -#: AppTools/ToolPDF.py:215 AppTools/ToolPDF.py:288 -msgid "Rendered" -msgstr "Gerendert" - -#: AppTools/ToolPaint.py:81 -msgid "" -"Specify the type of object to be painted.\n" -"It can be of type: Gerber or Geometry.\n" -"What is selected here will dictate the kind\n" -"of objects that will populate the 'Object' combobox." -msgstr "" -"Geben Sie den Objekttyp an, der gemalt werden soll.\n" -"Es kann vom Typ Gerber oder Geometrie sein.\n" -"Was hier ausgewählt wird, bestimmt die Art\n" -"von Objekten, die das Kombinationsfeld \"Objekt\" füllen." - -#: AppTools/ToolPaint.py:103 -msgid "Object to be painted." -msgstr "Gegenstand gemalt werden." - -#: AppTools/ToolPaint.py:116 -msgid "" -"Tools pool from which the algorithm\n" -"will pick the ones used for painting." -msgstr "" -"Toolspool aus dem der Algorithmus\n" -"wählt die zum Malen verwendeten aus." - -#: AppTools/ToolPaint.py:133 -msgid "" -"This is the Tool Number.\n" -"Painting will start with the tool with the biggest diameter,\n" -"continuing until there are no more tools.\n" -"Only tools that create painting geometry will still be present\n" -"in the resulting geometry. This is because with some tools\n" -"this function will not be able to create painting geometry." -msgstr "" -"Dies ist die Werkzeugnummer.\n" -"Das Malen beginnt mit dem Werkzeug mit dem größten Durchmesser.\n" -"fortsetzen, bis es keine Werkzeuge mehr gibt.\n" -"Es sind nur noch Werkzeuge vorhanden, die eine Malgeometrie erstellen\n" -"in der resultierenden Geometrie. Dies liegt daran, dass mit einigen Tools\n" -"Diese Funktion kann keine Malgeometrie erstellen." - -#: AppTools/ToolPaint.py:145 -msgid "" -"The Tool Type (TT) can be:\n" -"- Circular -> it is informative only. Being circular,\n" -"the cut width in material is exactly the tool diameter.\n" -"- Ball -> informative only and make reference to the Ball type endmill.\n" -"- V-Shape -> it will disable Z-Cut parameter in the resulting geometry UI " -"form\n" -"and enable two additional UI form fields in the resulting geometry: V-Tip " -"Dia and\n" -"V-Tip Angle. Adjusting those two values will adjust the Z-Cut parameter " -"such\n" -"as the cut width into material will be equal with the value in the Tool " -"Diameter\n" -"column of this table.\n" -"Choosing the 'V-Shape' Tool Type automatically will select the Operation " -"Type\n" -"in the resulting geometry as Isolation." -msgstr "" -"Der Werkzeugtyp (TT) kann sein:\n" -"- Rundschreiben mit 1 ... 4 Zähnen -> nur informativ. Rundschreiben,\n" -"Die Schnittbreite im Material entspricht genau dem Werkzeugdurchmesser.\n" -"- Ball -> nur informativ und auf den Ball-Schaftfräser verweisen.\n" -"- V-Form -> Deaktiviert den Z-Cut-Parameter in der resultierenden Geometrie-" -"UI-Form\n" -"und aktivieren Sie zwei zusätzliche UI-Formularfelder in der resultierenden " -"Geometrie: V-Tip Dia und\n" -"V-Tip-Winkel. Durch Anpassen dieser beiden Werte wird der Z-Cut-Parameter " -"wie z\n" -"da die Schnittbreite in Material gleich dem Wert im Werkzeugdurchmesser ist\n" -"Spalte dieser Tabelle.\n" -"Durch automatische Auswahl des Werkzeugtyps \"V-Form\" wird der " -"Operationstyp ausgewählt\n" -"in der resultierenden Geometrie als Isolation." - -#: AppTools/ToolPaint.py:497 -msgid "" -"The type of FlatCAM object to be used as paint reference.\n" -"It can be Gerber, Excellon or Geometry." -msgstr "" -"Der Typ des FlatCAM-Objekts, das als Malreferenz verwendet werden soll.\n" -"Es kann Gerber, Excellon oder Geometry sein." - -#: AppTools/ToolPaint.py:538 -msgid "" -"- 'Area Selection' - left mouse click to start selection of the area to be " -"painted.\n" -"Keeping a modifier key pressed (CTRL or SHIFT) will allow to add multiple " -"areas.\n" -"- 'All Polygons' - the Paint will start after click.\n" -"- 'Reference Object' - will do non copper clearing within the area\n" -"specified by another object." -msgstr "" -"- 'Bereichsauswahl' - Klicken Sie mit der linken Maustaste, um den Bereich " -"auszuwählen, der gemalt werden soll.\n" -"Wenn Sie eine Änderungstaste gedrückt halten (STRG oder UMSCHALTTASTE), " -"können Sie mehrere Bereiche hinzufügen.\n" -"- 'Alle Polygone' - Der Malvorgang wird nach dem Klicken gestartet.\n" -"- 'Referenzobjekt' - löscht nicht kupferne Objekte innerhalb des Bereichs\n" -"von einem anderen Objekt angegeben." - -#: AppTools/ToolPaint.py:1412 -#, python-format -msgid "Could not retrieve object: %s" -msgstr "Objekt konnte nicht abgerufen werden: %s" - -#: AppTools/ToolPaint.py:1422 -msgid "Can't do Paint on MultiGeo geometries" -msgstr "Auf MultiGeo-Geometrien kann nicht gemalt werden" - -#: AppTools/ToolPaint.py:1459 -msgid "Click on a polygon to paint it." -msgstr "Klicken Sie auf ein Polygon um es auszufüllen." - -#: AppTools/ToolPaint.py:1472 -msgid "Click the start point of the paint area." -msgstr "Klicken Sie auf den Startpunkt des Malbereichs." - -#: AppTools/ToolPaint.py:1537 -msgid "Click to add next polygon or right click to start painting." -msgstr "" -"Klicken Sie, um die nächste Zone hinzuzufügen, oder klicken Sie mit der " -"rechten Maustaste um mit dem Ausfüllen zu beginnen." - -#: AppTools/ToolPaint.py:1550 -msgid "Click to add/remove next polygon or right click to start painting." -msgstr "" -"Klicken Sie, um die nächste Zone hinzuzufügen oder zu löschen, oder klicken " -"Sie mit der rechten Maustaste, um den Vorgang abzuschließen." - -#: AppTools/ToolPaint.py:2054 -msgid "Painting polygon with method: lines." -msgstr "Polygon mit Methode malen: Linien." - -#: AppTools/ToolPaint.py:2066 -msgid "Failed. Painting polygon with method: seed." -msgstr "Gescheitert. Polygon mit Methode malen: Same." - -#: AppTools/ToolPaint.py:2077 -msgid "Failed. Painting polygon with method: standard." -msgstr "Gescheitert. Polygon mit Methode malen: Standard." - -#: AppTools/ToolPaint.py:2093 -msgid "Geometry could not be painted completely" -msgstr "Geometrie konnte nicht vollständig gemalt werden" - -#: AppTools/ToolPaint.py:2122 AppTools/ToolPaint.py:2125 -#: AppTools/ToolPaint.py:2133 AppTools/ToolPaint.py:2436 -#: AppTools/ToolPaint.py:2439 AppTools/ToolPaint.py:2447 -#: AppTools/ToolPaint.py:2935 AppTools/ToolPaint.py:2938 -#: AppTools/ToolPaint.py:2944 -msgid "Paint Tool." -msgstr "Malwerkzeug." - -#: AppTools/ToolPaint.py:2122 AppTools/ToolPaint.py:2125 -#: AppTools/ToolPaint.py:2133 -msgid "Normal painting polygon task started." -msgstr "Normale Zeichenpolygonaufgabe gestartet." - -#: AppTools/ToolPaint.py:2123 AppTools/ToolPaint.py:2437 -#: AppTools/ToolPaint.py:2936 -msgid "Buffering geometry..." -msgstr "Geometrie puffern..." - -#: AppTools/ToolPaint.py:2145 AppTools/ToolPaint.py:2454 -#: AppTools/ToolPaint.py:2952 -msgid "No polygon found." -msgstr "Kein Polygon gefunden." - -#: AppTools/ToolPaint.py:2175 -msgid "Painting polygon..." -msgstr "Polygon malen ..." - -#: AppTools/ToolPaint.py:2185 AppTools/ToolPaint.py:2500 -#: AppTools/ToolPaint.py:2690 AppTools/ToolPaint.py:2998 -#: AppTools/ToolPaint.py:3177 -msgid "Painting with tool diameter = " -msgstr "Lackieren mit Werkzeugdurchmesser = " - -#: AppTools/ToolPaint.py:2186 AppTools/ToolPaint.py:2501 -#: AppTools/ToolPaint.py:2691 AppTools/ToolPaint.py:2999 -#: AppTools/ToolPaint.py:3178 -msgid "started" -msgstr "gestartet" - -#: AppTools/ToolPaint.py:2211 AppTools/ToolPaint.py:2527 -#: AppTools/ToolPaint.py:2717 AppTools/ToolPaint.py:3025 -#: AppTools/ToolPaint.py:3204 -msgid "Margin parameter too big. Tool is not used" -msgstr "Randparameter zu groß. Werkzeug wird nicht verwendet" - -#: AppTools/ToolPaint.py:2269 AppTools/ToolPaint.py:2596 -#: AppTools/ToolPaint.py:2774 AppTools/ToolPaint.py:3088 -#: AppTools/ToolPaint.py:3266 -msgid "" -"Could not do Paint. Try a different combination of parameters. Or a " -"different strategy of paint" -msgstr "" -"Konnte nicht malen. Probieren Sie eine andere Kombination von Parametern " -"aus. Oder eine andere Strategie der Farbe" - -#: AppTools/ToolPaint.py:2326 AppTools/ToolPaint.py:2662 -#: AppTools/ToolPaint.py:2831 AppTools/ToolPaint.py:3149 -#: AppTools/ToolPaint.py:3328 -msgid "" -"There is no Painting Geometry in the file.\n" -"Usually it means that the tool diameter is too big for the painted " -"geometry.\n" -"Change the painting parameters and try again." -msgstr "" -"Die Datei enthält keine Malgeometrie.\n" -"Normalerweise bedeutet dies, dass der Werkzeugdurchmesser für die lackierte " -"Geometrie zu groß ist.\n" -"Ändern Sie die Malparameter und versuchen Sie es erneut." - -#: AppTools/ToolPaint.py:2349 -msgid "Paint Single failed." -msgstr "Das Malen eines einzelnen Polygons ist fehlgeschlagen." - -#: AppTools/ToolPaint.py:2355 -msgid "Paint Single Done." -msgstr "Malen Sie Single Done." - -#: AppTools/ToolPaint.py:2357 AppTools/ToolPaint.py:2867 -#: AppTools/ToolPaint.py:3364 -msgid "Polygon Paint started ..." -msgstr "Polygonfarbe gestartet ..." - -#: AppTools/ToolPaint.py:2436 AppTools/ToolPaint.py:2439 -#: AppTools/ToolPaint.py:2447 -msgid "Paint all polygons task started." -msgstr "Malen Sie alle Polygone Aufgabe gestartet." - -#: AppTools/ToolPaint.py:2478 AppTools/ToolPaint.py:2976 -msgid "Painting polygons..." -msgstr "Polygone malen ..." - -#: AppTools/ToolPaint.py:2671 -msgid "Paint All Done." -msgstr "Malen Sie alles fertig." - -#: AppTools/ToolPaint.py:2840 AppTools/ToolPaint.py:3337 -msgid "Paint All with Rest-Machining done." -msgstr "Malen Sie alles mit Restbearbeitung." - -#: AppTools/ToolPaint.py:2859 -msgid "Paint All failed." -msgstr "Malen Alle Polygone sind fehlgeschlagen." - -#: AppTools/ToolPaint.py:2865 -msgid "Paint Poly All Done." -msgstr "Malen Sie alle Polygone fertig." - -#: AppTools/ToolPaint.py:2935 AppTools/ToolPaint.py:2938 -#: AppTools/ToolPaint.py:2944 -msgid "Painting area task started." -msgstr "Malbereichsaufgabe gestartet." - -#: AppTools/ToolPaint.py:3158 -msgid "Paint Area Done." -msgstr "Lackierbereich fertig." - -#: AppTools/ToolPaint.py:3356 -msgid "Paint Area failed." -msgstr "Lackierbereich fehlgeschlagen." - -#: AppTools/ToolPaint.py:3362 -msgid "Paint Poly Area Done." -msgstr "Lackierbereich fertig." - -#: AppTools/ToolPanelize.py:55 -msgid "" -"Specify the type of object to be panelized\n" -"It can be of type: Gerber, Excellon or Geometry.\n" -"The selection here decide the type of objects that will be\n" -"in the Object combobox." -msgstr "" -"Geben Sie den Typ des Objekts an, für das ein Panel erstellt werden soll\n" -"Es kann vom Typ sein: Gerber, Excellon oder Geometrie.\n" -"Die Auswahl hier bestimmt den Objekttyp\n" -"im Objekt-Kombinationsfeld." - -#: AppTools/ToolPanelize.py:88 -msgid "" -"Object to be panelized. This means that it will\n" -"be duplicated in an array of rows and columns." -msgstr "" -"Objekt, das in Panels gesetzt werden soll. Dies bedeutet, dass es wird\n" -"in einem Array von Zeilen und Spalten dupliziert werden." - -#: AppTools/ToolPanelize.py:100 -msgid "Penelization Reference" -msgstr "Penelisierungshinweis" - -#: AppTools/ToolPanelize.py:102 -msgid "" -"Choose the reference for panelization:\n" -"- Object = the bounding box of a different object\n" -"- Bounding Box = the bounding box of the object to be panelized\n" -"\n" -"The reference is useful when doing panelization for more than one\n" -"object. The spacings (really offsets) will be applied in reference\n" -"to this reference object therefore maintaining the panelized\n" -"objects in sync." -msgstr "" -"Wählen Sie die Referenz für die Panelisierung:\n" -"- Objekt = der Begrenzungsrahmen eines anderen Objekts\n" -"- Begrenzungsrahmen = Der Begrenzungsrahmen des zu verkleidenden Objekts\n" -"\n" -"Diese Referenz ist nützlich, wenn Sie Panels für mehr als einen erstellen\n" -"Objekt. Die Abstände (wirklich Versätze) werden als Referenz angewendet\n" -"Zu diesem Referenzobjekt gehört daher die Beibehaltung der getäfelten\n" -"Objekte synchronisieren." - -#: AppTools/ToolPanelize.py:123 -msgid "Box Type" -msgstr "Box-Typ" - -#: AppTools/ToolPanelize.py:125 -msgid "" -"Specify the type of object to be used as an container for\n" -"panelization. It can be: Gerber or Geometry type.\n" -"The selection here decide the type of objects that will be\n" -"in the Box Object combobox." -msgstr "" -"Geben Sie den Objekttyp an, für den ein Container verwendet werden soll\n" -"Panelisierung. Es kann sein: Gerber oder Geometrietyp.\n" -"Die Auswahl hier bestimmt den Objekttyp\n" -"im Kombinationsfeld Box-Objekt." - -#: AppTools/ToolPanelize.py:139 -msgid "" -"The actual object that is used as container for the\n" -" selected object that is to be panelized." -msgstr "" -"Das eigentliche Objekt, für das ein Container verwendet wird\n" -"ausgewähltes Objekt, das in Panelisiert werden soll." - -#: AppTools/ToolPanelize.py:149 -msgid "Panel Data" -msgstr "Paneldaten" - -#: AppTools/ToolPanelize.py:151 -msgid "" -"This informations will shape the resulting panel.\n" -"The number of rows and columns will set how many\n" -"duplicates of the original geometry will be generated.\n" -"\n" -"The spacings will set the distance between any two\n" -"elements of the panel array." -msgstr "" -"Diese Informationen formen das resultierende Panel.\n" -"Die Anzahl der Zeilen und Spalten legt fest, wie viele\n" -"Duplikate der ursprünglichen Geometrie werden generiert.\n" -"\n" -"Die Abstände bestimmen den Abstand zwischen zwei Elementen\n" -"Elemente des Panel-Arrays." - -#: AppTools/ToolPanelize.py:214 -msgid "" -"Choose the type of object for the panel object:\n" -"- Geometry\n" -"- Gerber" -msgstr "" -"Wählen Sie den Objekttyp für das Panel-Objekt:\n" -"- Geometrie\n" -"- Gerber" - -#: AppTools/ToolPanelize.py:222 -msgid "Constrain panel within" -msgstr "Panel einschränken innerhalb" - -#: AppTools/ToolPanelize.py:263 -msgid "Panelize Object" -msgstr "Panelize Objekt" - -#: AppTools/ToolPanelize.py:265 AppTools/ToolRulesCheck.py:501 -msgid "" -"Panelize the specified object around the specified box.\n" -"In other words it creates multiple copies of the source object,\n" -"arranged in a 2D array of rows and columns." -msgstr "" -"Das angegebene Objekt um das angegebene Feld einteilen.\n" -"Mit anderen Worten, es erstellt mehrere Kopien des Quellobjekts,\n" -"in einem 2D-Array von Zeilen und Spalten angeordnet." - -#: AppTools/ToolPanelize.py:333 -msgid "Panel. Tool" -msgstr "Platte Werkzeug" - -#: AppTools/ToolPanelize.py:468 -msgid "Columns or Rows are zero value. Change them to a positive integer." -msgstr "" -"Spalten oder Zeilen haben den Wert Null. Ändern Sie sie in eine positive " -"Ganzzahl." - -#: AppTools/ToolPanelize.py:505 -msgid "Generating panel ... " -msgstr "Panel wird erstellt ... " - -#: AppTools/ToolPanelize.py:788 -msgid "Generating panel ... Adding the Gerber code." -msgstr "Panel wird generiert ... Hinzufügen des Gerber-Codes." - -#: AppTools/ToolPanelize.py:796 -msgid "Generating panel... Spawning copies" -msgstr "Panel wird erstellt ... Kopien werden erstellt" - -#: AppTools/ToolPanelize.py:803 -msgid "Panel done..." -msgstr "Panel fertig ..." - -#: AppTools/ToolPanelize.py:806 -#, python-brace-format -msgid "" -"{text} Too big for the constrain area. Final panel has {col} columns and " -"{row} rows" -msgstr "" -"{text} Zu groß für den Einschränkungsbereich. Das letzte Panel enthält {col} " -"Spalten und {row} Zeilen" - -#: AppTools/ToolPanelize.py:815 -msgid "Panel created successfully." -msgstr "Panel erfolgreich erstellt." - -#: AppTools/ToolPcbWizard.py:31 -msgid "PcbWizard Import Tool" -msgstr "PCBWizard Werkzeug importieren" - -#: AppTools/ToolPcbWizard.py:40 -msgid "Import 2-file Excellon" -msgstr "Importieren Sie 2-Datei-Excellon" - -#: AppTools/ToolPcbWizard.py:51 -msgid "Load files" -msgstr "Dateien laden" - -#: AppTools/ToolPcbWizard.py:57 -msgid "Excellon file" -msgstr "Excellon-Datei" - -#: AppTools/ToolPcbWizard.py:59 -msgid "" -"Load the Excellon file.\n" -"Usually it has a .DRL extension" -msgstr "" -"Laden Sie die Excellon-Datei.\n" -"Normalerweise hat es die Erweiterung .DRL" - -#: AppTools/ToolPcbWizard.py:65 -msgid "INF file" -msgstr "INF-Datei" - -#: AppTools/ToolPcbWizard.py:67 -msgid "Load the INF file." -msgstr "Laden Sie die INF-Datei." - -#: AppTools/ToolPcbWizard.py:79 -msgid "Tool Number" -msgstr "Werkzeugnummer" - -#: AppTools/ToolPcbWizard.py:81 -msgid "Tool diameter in file units." -msgstr "Werkzeugdurchmesser in Feileneinheiten." - -#: AppTools/ToolPcbWizard.py:87 -msgid "Excellon format" -msgstr "Excellon format" - -#: AppTools/ToolPcbWizard.py:95 -msgid "Int. digits" -msgstr "Ganzzahlige Ziffern" - -#: AppTools/ToolPcbWizard.py:97 -msgid "The number of digits for the integral part of the coordinates." -msgstr "Die Anzahl der Ziffern für den integralen Teil der Koordinaten." - -#: AppTools/ToolPcbWizard.py:104 -msgid "Frac. digits" -msgstr "Nachkommastellen" - -#: AppTools/ToolPcbWizard.py:106 -msgid "The number of digits for the fractional part of the coordinates." -msgstr "Die Anzahl der Stellen für den gebrochenen Teil der Koordinaten." - -#: AppTools/ToolPcbWizard.py:113 -msgid "No Suppression" -msgstr "Keine Unterdrück" - -#: AppTools/ToolPcbWizard.py:114 -msgid "Zeros supp." -msgstr "Nullunterdrück." - -#: AppTools/ToolPcbWizard.py:116 -msgid "" -"The type of zeros suppression used.\n" -"Can be of type:\n" -"- LZ = leading zeros are kept\n" -"- TZ = trailing zeros are kept\n" -"- No Suppression = no zero suppression" -msgstr "" -"Die Art der Unterdrückung von Nullen.\n" -"Kann vom Typ sein:\n" -"- LZ = führende Nullen werden beibehalten\n" -"- TZ = nachfolgende Nullen bleiben erhalten\n" -"- Keine Unterdrückung = keine Nullunterdrückung" - -#: AppTools/ToolPcbWizard.py:129 -msgid "" -"The type of units that the coordinates and tool\n" -"diameters are using. Can be INCH or MM." -msgstr "" -"Die Art der Einheiten, die die Koordinaten und das Werkzeug haben\n" -"Durchmesser verwenden. Kann INCH oder MM sein." - -#: AppTools/ToolPcbWizard.py:136 -msgid "Import Excellon" -msgstr "Excellon importieren" - -#: AppTools/ToolPcbWizard.py:138 -msgid "" -"Import in FlatCAM an Excellon file\n" -"that store it's information's in 2 files.\n" -"One usually has .DRL extension while\n" -"the other has .INF extension." -msgstr "" -"Importieren Sie in FlatCAM eine Excellon-Datei\n" -"das speichert seine Informationen in 2 Dateien.\n" -"Normalerweise hat man eine .DRL-Erweiterung\n" -"der andere hat die Erweiterung .INF." - -#: AppTools/ToolPcbWizard.py:197 -msgid "PCBWizard Tool" -msgstr "PCBWizard Werkzeug" - -#: AppTools/ToolPcbWizard.py:291 AppTools/ToolPcbWizard.py:295 -msgid "Load PcbWizard Excellon file" -msgstr "PcbWizard Excellon-Datei laden" - -#: AppTools/ToolPcbWizard.py:314 AppTools/ToolPcbWizard.py:318 -msgid "Load PcbWizard INF file" -msgstr "Laden Sie die PcbWizard INF-Datei" - -#: AppTools/ToolPcbWizard.py:366 -msgid "" -"The INF file does not contain the tool table.\n" -"Try to open the Excellon file from File -> Open -> Excellon\n" -"and edit the drill diameters manually." -msgstr "" -"Die INF-Datei enthält keine Werkzeugtabelle.\n" -"Versuchen Sie, die Excellon-Datei über Datei -> Öffnen -> Excellon zu " -"öffnen\n" -"und bearbeiten Sie die Bohrerdurchmesser manuell." - -#: AppTools/ToolPcbWizard.py:387 -msgid "PcbWizard .INF file loaded." -msgstr "PcbWizard-INF-Datei wurde geladen." - -#: AppTools/ToolPcbWizard.py:392 -msgid "Main PcbWizard Excellon file loaded." -msgstr "Haupt-PcbWizard Excellon-Datei geladen." - -#: AppTools/ToolPcbWizard.py:424 App_Main.py:8520 -msgid "This is not Excellon file." -msgstr "Dies ist keine Excellon-Datei." - -#: AppTools/ToolPcbWizard.py:427 -msgid "Cannot parse file" -msgstr "Datei kann nicht analysiert werden" - -#: AppTools/ToolPcbWizard.py:450 -msgid "Importing Excellon." -msgstr "Excellon importieren." - -#: AppTools/ToolPcbWizard.py:457 -msgid "Import Excellon file failed." -msgstr "Import der Excellon-Datei ist fehlgeschlagen." - -#: AppTools/ToolPcbWizard.py:464 -msgid "Imported" -msgstr "Importiert" - -#: AppTools/ToolPcbWizard.py:467 -msgid "Excellon merging is in progress. Please wait..." -msgstr "Das Zusammenführen von Excellons ist im Gange. Warten Sie mal..." - -#: AppTools/ToolPcbWizard.py:469 -msgid "The imported Excellon file is empty." -msgstr "Die importierte Excellon-Datei ist Keine." - -#: AppTools/ToolProperties.py:116 App_Main.py:4692 App_Main.py:6803 -#: App_Main.py:6903 App_Main.py:6944 App_Main.py:6985 App_Main.py:7027 -#: App_Main.py:7069 App_Main.py:7113 App_Main.py:7157 App_Main.py:7681 -#: App_Main.py:7685 -msgid "No object selected." -msgstr "Kein Objekt ausgewählt." - -#: AppTools/ToolProperties.py:131 -msgid "Object Properties are displayed." -msgstr "Objekteigenschaften werden angezeigt." - -#: AppTools/ToolProperties.py:136 -msgid "Properties Tool" -msgstr "Eigenschaftenwerkzeug" - -#: AppTools/ToolProperties.py:150 -msgid "TYPE" -msgstr "TYP" - -#: AppTools/ToolProperties.py:151 -msgid "NAME" -msgstr "NAME" - -#: AppTools/ToolProperties.py:153 -msgid "Dimensions" -msgstr "Dimensionen" - -#: AppTools/ToolProperties.py:181 -msgid "Geo Type" -msgstr "Geo-Typ" - -#: AppTools/ToolProperties.py:184 -msgid "Single-Geo" -msgstr "Einzehln Geo" - -#: AppTools/ToolProperties.py:185 -msgid "Multi-Geo" -msgstr "Mehrfache Geo" - -#: AppTools/ToolProperties.py:196 -msgid "Calculating dimensions ... Please wait." -msgstr "Bemaßung wird berechnet ... Bitte warten." - -#: AppTools/ToolProperties.py:339 AppTools/ToolProperties.py:343 -#: AppTools/ToolProperties.py:345 -msgid "Inch" -msgstr "Zoll" - -#: AppTools/ToolProperties.py:339 AppTools/ToolProperties.py:344 -#: AppTools/ToolProperties.py:346 -msgid "Metric" -msgstr "Metrisch" - -#: AppTools/ToolProperties.py:421 AppTools/ToolProperties.py:486 -msgid "Drills number" -msgstr "Bohrernummer" - -#: AppTools/ToolProperties.py:422 AppTools/ToolProperties.py:488 -msgid "Slots number" -msgstr "Slotnummer" - -#: AppTools/ToolProperties.py:424 -msgid "Drills total number:" -msgstr "Gesamtzahl Bohrer:" - -#: AppTools/ToolProperties.py:425 -msgid "Slots total number:" -msgstr "Gesamtzahl der slots:" - -#: AppTools/ToolProperties.py:452 AppTools/ToolProperties.py:455 -#: AppTools/ToolProperties.py:458 AppTools/ToolProperties.py:483 -msgid "Present" -msgstr "Vorhanden" - -#: AppTools/ToolProperties.py:453 AppTools/ToolProperties.py:484 -msgid "Solid Geometry" -msgstr "Festkörpergeometrie" - -#: AppTools/ToolProperties.py:456 -msgid "GCode Text" -msgstr "GCode Text" - -#: AppTools/ToolProperties.py:459 -msgid "GCode Geometry" -msgstr "GCode Geometrie" - -#: AppTools/ToolProperties.py:462 -msgid "Data" -msgstr "Daten" - -#: AppTools/ToolProperties.py:495 -msgid "Depth of Cut" -msgstr "Tiefe des Schnitts" - -#: AppTools/ToolProperties.py:507 -msgid "Clearance Height" -msgstr "Freilaufhöhe" - -#: AppTools/ToolProperties.py:539 -msgid "Routing time" -msgstr "Berechnungszeit" - -#: AppTools/ToolProperties.py:546 -msgid "Travelled distance" -msgstr "Zurückgelegte Strecke" - -#: AppTools/ToolProperties.py:564 -msgid "Width" -msgstr "Breite" - -#: AppTools/ToolProperties.py:570 AppTools/ToolProperties.py:578 -msgid "Box Area" -msgstr "Feld Bereich" - -#: AppTools/ToolProperties.py:573 AppTools/ToolProperties.py:581 -msgid "Convex_Hull Area" -msgstr "Konvexer Rumpfbereich" - -#: AppTools/ToolProperties.py:588 AppTools/ToolProperties.py:591 -msgid "Copper Area" -msgstr "Kupferareal" - -#: AppTools/ToolPunchGerber.py:30 AppTools/ToolPunchGerber.py:323 -msgid "Punch Gerber" -msgstr "Schlag Gerber" - -#: AppTools/ToolPunchGerber.py:65 -msgid "Gerber into which to punch holes" -msgstr "Gerber, in den Löcher gestanzt werden können" - -#: AppTools/ToolPunchGerber.py:85 -msgid "ALL" -msgstr "ALLE" - -#: AppTools/ToolPunchGerber.py:166 -msgid "" -"Remove the geometry of Excellon from the Gerber to create the holes in pads." -msgstr "" -"Entfernen Sie die Geometrie von Excellon aus dem Gerber, um die Löcher in " -"den Pads zu erstellen." - -#: AppTools/ToolPunchGerber.py:325 -msgid "" -"Create a Gerber object from the selected object, within\n" -"the specified box." -msgstr "" -"Erstellen Sie innerhalb des ausgewählten Objekts ein Gerber-Objekt\n" -"das angegebene Feld." - -#: AppTools/ToolPunchGerber.py:425 -msgid "Punch Tool" -msgstr "Stanzwerkzeug" - -#: AppTools/ToolPunchGerber.py:599 -msgid "The value of the fixed diameter is 0.0. Aborting." -msgstr "Der Wert des festen Durchmessers beträgt 0,0. Abbruch." - -#: AppTools/ToolPunchGerber.py:602 -msgid "" -"Could not generate punched hole Gerber because the punch hole size is bigger " -"than some of the apertures in the Gerber object." -msgstr "" -"Stanzloch Gerber konnte nicht generiert werden, da die Stanzlochgröße größer " -"ist als einige der Öffnungen im Gerber-Objekt." - -#: AppTools/ToolPunchGerber.py:665 -msgid "" -"Could not generate punched hole Gerber because the newly created object " -"geometry is the same as the one in the source object geometry..." -msgstr "" -"Stanzloch Gerber konnte nicht generiert werden, da die neu erstellte " -"Objektgeometrie mit der in der Quellobjektgeometrie übereinstimmt ..." - -#: AppTools/ToolQRCode.py:80 -msgid "Gerber Object to which the QRCode will be added." -msgstr "Gerber-Objekt zu dem der QRCode hinzugefügt wird." - -#: AppTools/ToolQRCode.py:116 -msgid "The parameters used to shape the QRCode." -msgstr "Parameter zum Aussehen des QRCodes." - -#: AppTools/ToolQRCode.py:216 -msgid "Export QRCode" -msgstr "QRCode exportieren" - -#: AppTools/ToolQRCode.py:218 -msgid "" -"Show a set of controls allowing to export the QRCode\n" -"to a SVG file or an PNG file." -msgstr "" -"Zeigt einen Satz von Bedienelementen um den QRCode\n" -"in eine SVG oder ein PNG File zu exportieren." - -#: AppTools/ToolQRCode.py:257 -msgid "Transparent back color" -msgstr "Transparente Hintergrundfarbe" - -#: AppTools/ToolQRCode.py:282 -msgid "Export QRCode SVG" -msgstr "QRCode als SVG exportieren" - -#: AppTools/ToolQRCode.py:284 -msgid "Export a SVG file with the QRCode content." -msgstr "Export als SVG Code mit dem QRCode Inhalt." - -#: AppTools/ToolQRCode.py:295 -msgid "Export QRCode PNG" -msgstr "G-Code als PNG exportieren" - -#: AppTools/ToolQRCode.py:297 -msgid "Export a PNG image file with the QRCode content." -msgstr "Exportiert den QRCode als PNG Datei." - -#: AppTools/ToolQRCode.py:308 -msgid "Insert QRCode" -msgstr "QRCode einfügen" - -#: AppTools/ToolQRCode.py:310 -msgid "Create the QRCode object." -msgstr "Erzeugen des QRCode Objektes." - -#: AppTools/ToolQRCode.py:424 AppTools/ToolQRCode.py:759 -#: AppTools/ToolQRCode.py:808 -msgid "Cancelled. There is no QRCode Data in the text box." -msgstr "Abgebrochen. Es befindet sich kein QRCode im Feld." - -#: AppTools/ToolQRCode.py:443 -msgid "Generating QRCode geometry" -msgstr "QRCode Geometrie erzeugen" - -#: AppTools/ToolQRCode.py:483 -msgid "Click on the Destination point ..." -msgstr "Klicken Sie auf den Zielpunkt ..." - -#: AppTools/ToolQRCode.py:598 -msgid "QRCode Tool done." -msgstr "QRCode Tool fertig." - -#: AppTools/ToolQRCode.py:791 AppTools/ToolQRCode.py:795 -msgid "Export PNG" -msgstr "PNG exportieren" - -#: AppTools/ToolQRCode.py:838 AppTools/ToolQRCode.py:842 App_Main.py:6835 -#: App_Main.py:6839 -msgid "Export SVG" -msgstr "SVG exportieren" - -#: AppTools/ToolRulesCheck.py:33 -msgid "Check Rules" -msgstr "Überprüfen Sie die Regeln" - -#: AppTools/ToolRulesCheck.py:63 -msgid "Gerber objects for which to check rules." -msgstr "Gerber-Objekte, für die Regeln überprüft werden sollen." - -#: AppTools/ToolRulesCheck.py:78 -msgid "Top" -msgstr "Oberst" - -#: AppTools/ToolRulesCheck.py:80 -msgid "The Top Gerber Copper object for which rules are checked." -msgstr "Das Top Gerber Copper-Objekt, für das Regeln überprüft werden." - -#: AppTools/ToolRulesCheck.py:96 -msgid "Bottom" -msgstr "Unterseite" - -#: AppTools/ToolRulesCheck.py:98 -msgid "The Bottom Gerber Copper object for which rules are checked." -msgstr "Das untere Gerber Copper-Objekt, für das Regeln überprüft werden." - -#: AppTools/ToolRulesCheck.py:114 -msgid "SM Top" -msgstr "SM Oberst" - -#: AppTools/ToolRulesCheck.py:116 -msgid "The Top Gerber Solder Mask object for which rules are checked." -msgstr "Das oberste Gerber-Lötmaskenobjekt, für das Regeln überprüft werden." - -#: AppTools/ToolRulesCheck.py:132 -msgid "SM Bottom" -msgstr "SM unten" - -#: AppTools/ToolRulesCheck.py:134 -msgid "The Bottom Gerber Solder Mask object for which rules are checked." -msgstr "Das untere Gerber-Lötmaskenobjekt, für das Regeln überprüft werden." - -#: AppTools/ToolRulesCheck.py:150 -msgid "Silk Top" -msgstr "Siebdruck Oben" - -#: AppTools/ToolRulesCheck.py:152 -msgid "The Top Gerber Silkscreen object for which rules are checked." -msgstr "Das oberste Gerber-Siebdruck-Objekt, für das Regeln überprüft werden." - -#: AppTools/ToolRulesCheck.py:168 -msgid "Silk Bottom" -msgstr "Siebdruck unten" - -#: AppTools/ToolRulesCheck.py:170 -msgid "The Bottom Gerber Silkscreen object for which rules are checked." -msgstr "Das untere Gerber-Siebdruck-Objekt, für das Regeln überprüft werden." - -#: AppTools/ToolRulesCheck.py:188 -msgid "The Gerber Outline (Cutout) object for which rules are checked." -msgstr "" -"Das Gerber-Gliederungsobjekt (Ausschnitt), für das Regeln überprüft werden." - -#: AppTools/ToolRulesCheck.py:201 -msgid "Excellon objects for which to check rules." -msgstr "Excellon-Objekte, für die Regeln überprüft werden sollen." - -#: AppTools/ToolRulesCheck.py:213 -msgid "Excellon 1" -msgstr "Excellon 1" - -#: AppTools/ToolRulesCheck.py:215 -msgid "" -"Excellon object for which to check rules.\n" -"Holds the plated holes or a general Excellon file content." -msgstr "" -"Excellon-Objekt, für das Regeln überprüft werden sollen.\n" -"Enthält die plattierten Löcher oder einen allgemeinen Excellon-Dateiinhalt." - -#: AppTools/ToolRulesCheck.py:232 -msgid "Excellon 2" -msgstr "Excellon 2" - -#: AppTools/ToolRulesCheck.py:234 -msgid "" -"Excellon object for which to check rules.\n" -"Holds the non-plated holes." -msgstr "" -"Excellon-Objekt, für das Regeln überprüft werden sollen.\n" -"Hält die nicht plattierten Löcher." - -#: AppTools/ToolRulesCheck.py:247 -msgid "All Rules" -msgstr "Alle Regeln" - -#: AppTools/ToolRulesCheck.py:249 -msgid "This check/uncheck all the rules below." -msgstr "" -"Hiermit können Sie alle unten aufgeführten Regeln aktivieren / deaktivieren." - -#: AppTools/ToolRulesCheck.py:499 -msgid "Run Rules Check" -msgstr "Führen Sie die Regelprüfung durch" - -#: AppTools/ToolRulesCheck.py:1158 AppTools/ToolRulesCheck.py:1218 -#: AppTools/ToolRulesCheck.py:1255 AppTools/ToolRulesCheck.py:1327 -#: AppTools/ToolRulesCheck.py:1381 AppTools/ToolRulesCheck.py:1419 -#: AppTools/ToolRulesCheck.py:1484 -msgid "Value is not valid." -msgstr "Wert ist ungültig." - -#: AppTools/ToolRulesCheck.py:1172 -msgid "TOP -> Copper to Copper clearance" -msgstr "TOP -> Kupfer zu Kupfer Abstand" - -#: AppTools/ToolRulesCheck.py:1183 -msgid "BOTTOM -> Copper to Copper clearance" -msgstr "UNTEN -> Kupfer zu Kupfer Abstand" - -#: AppTools/ToolRulesCheck.py:1188 AppTools/ToolRulesCheck.py:1282 -#: AppTools/ToolRulesCheck.py:1446 -msgid "" -"At least one Gerber object has to be selected for this rule but none is " -"selected." -msgstr "" -"Für diese Regel muss mindestens ein Gerber-Objekt ausgewählt sein, aber " -"keines." - -#: AppTools/ToolRulesCheck.py:1224 -msgid "" -"One of the copper Gerber objects or the Outline Gerber object is not valid." -msgstr "" -"Eines der Kupfer-Gerber-Objekte oder das Umriss-Gerber-Objekt ist ungültig." - -#: AppTools/ToolRulesCheck.py:1237 AppTools/ToolRulesCheck.py:1401 -msgid "" -"Outline Gerber object presence is mandatory for this rule but it is not " -"selected." -msgstr "" -"Das Vorhandensein von Gerber-Objekten ist für diese Regel obligatorisch, " -"jedoch nicht ausgewählt." - -#: AppTools/ToolRulesCheck.py:1254 AppTools/ToolRulesCheck.py:1281 -msgid "Silk to Silk clearance" -msgstr "Siebdruck zu siebdruck freiheit" - -#: AppTools/ToolRulesCheck.py:1267 -msgid "TOP -> Silk to Silk clearance" -msgstr "TOP -> Siebdruck zu Siebdruck Abstand" - -#: AppTools/ToolRulesCheck.py:1277 -msgid "BOTTOM -> Silk to Silk clearance" -msgstr "UNTEN -> Abstand von Siebdruck zu Siebdruck" - -#: AppTools/ToolRulesCheck.py:1333 -msgid "One or more of the Gerber objects is not valid." -msgstr "Eines oder mehrere der Gerber-Objekte sind ungültig." - -#: AppTools/ToolRulesCheck.py:1341 -msgid "TOP -> Silk to Solder Mask Clearance" -msgstr "TOP -> Abstand von Siebdruck zu Lötmaske" - -#: AppTools/ToolRulesCheck.py:1347 -msgid "BOTTOM -> Silk to Solder Mask Clearance" -msgstr "UNTEN -> Abstand von Siebdruck zu Lötmaske" - -#: AppTools/ToolRulesCheck.py:1351 -msgid "" -"Both Silk and Solder Mask Gerber objects has to be either both Top or both " -"Bottom." -msgstr "" -"Sowohl Siebdruck- als auch Lötmasken-Gerber-Objekte müssen entweder beide " -"oben oder beide unten sein." - -#: AppTools/ToolRulesCheck.py:1387 -msgid "" -"One of the Silk Gerber objects or the Outline Gerber object is not valid." -msgstr "" -"Eines der Siebdruck-Gerber-Objekte oder das Gliederung-Gerber-Objekt ist " -"ungültig." - -#: AppTools/ToolRulesCheck.py:1431 -msgid "TOP -> Minimum Solder Mask Sliver" -msgstr "TOP -> Minimum Lötmaskenband" - -#: AppTools/ToolRulesCheck.py:1441 -msgid "BOTTOM -> Minimum Solder Mask Sliver" -msgstr "UNTEN-> Minimum Lötmaskenband" - -#: AppTools/ToolRulesCheck.py:1490 -msgid "One of the Copper Gerber objects or the Excellon objects is not valid." -msgstr "" -"Eines der Kupfer-Gerber-Objekte oder der Excellon-Objekte ist ungültig." - -#: AppTools/ToolRulesCheck.py:1506 -msgid "" -"Excellon object presence is mandatory for this rule but none is selected." -msgstr "" -"Das Vorhandensein von Excellon-Objekten ist für diese Regel obligatorisch, " -"es ist jedoch keine ausgewählt." - -#: AppTools/ToolRulesCheck.py:1579 AppTools/ToolRulesCheck.py:1592 -#: AppTools/ToolRulesCheck.py:1603 AppTools/ToolRulesCheck.py:1616 -msgid "STATUS" -msgstr "STATUS" - -#: AppTools/ToolRulesCheck.py:1582 AppTools/ToolRulesCheck.py:1606 -msgid "FAILED" -msgstr "GESCHEITERT" - -#: AppTools/ToolRulesCheck.py:1595 AppTools/ToolRulesCheck.py:1619 -msgid "PASSED" -msgstr "BESTANDEN" - -#: AppTools/ToolRulesCheck.py:1596 AppTools/ToolRulesCheck.py:1620 -msgid "Violations: There are no violations for the current rule." -msgstr "Verstöße: Für die aktuelle Regel gibt es keine Verstöße." - -#: AppTools/ToolShell.py:59 -msgid "Clear the text." -msgstr "Löschen Sie den Text." - -#: AppTools/ToolShell.py:91 AppTools/ToolShell.py:93 -msgid "...processing..." -msgstr "...wird bearbeitet..." - -#: AppTools/ToolSolderPaste.py:37 -msgid "Solder Paste Tool" -msgstr "Lötpaste-Werkzeug" - -#: AppTools/ToolSolderPaste.py:68 -msgid "Gerber Solderpaste object." -msgstr "Gerber Lötpastenobjekt." - -#: AppTools/ToolSolderPaste.py:81 -msgid "" -"Tools pool from which the algorithm\n" -"will pick the ones used for dispensing solder paste." -msgstr "" -"Toolspool aus dem der Algorithmus\n" -"wählt die für die Lotpaste verwendeten aus." - -#: AppTools/ToolSolderPaste.py:96 -msgid "" -"This is the Tool Number.\n" -"The solder dispensing will start with the tool with the biggest \n" -"diameter, continuing until there are no more Nozzle tools.\n" -"If there are no longer tools but there are still pads not covered\n" -" with solder paste, the app will issue a warning message box." -msgstr "" -"Dies ist die Werkzeugnummer.\n" -"Die Lotdosierung beginnt mit dem Werkzeug mit dem größten\n" -"Durchmesser, weiter, bis keine Düsenwerkzeuge mehr vorhanden sind.\n" -"Wenn keine Werkzeuge mehr vorhanden sind, sind aber noch keine Pads " -"vorhanden\n" -"Mit Lötpaste gibt die App eine Warnmeldung aus." - -#: AppTools/ToolSolderPaste.py:103 -msgid "" -"Nozzle tool Diameter. It's value (in current FlatCAM units)\n" -"is the width of the solder paste dispensed." -msgstr "" -"Düsenwerkzeug Durchmesser. Der Wert (in aktuellen FlatCAM-Einheiten)\n" -"ist die Breite der Lotpaste." - -#: AppTools/ToolSolderPaste.py:110 -msgid "New Nozzle Tool" -msgstr "Neues Düsenwerkzeug" - -#: AppTools/ToolSolderPaste.py:129 -msgid "" -"Add a new nozzle tool to the Tool Table\n" -"with the diameter specified above." -msgstr "" -"Fügen Sie der Werkzeugtabelle ein neues Düsenwerkzeug hinzu\n" -"mit dem oben angegebenen Durchmesser." - -#: AppTools/ToolSolderPaste.py:151 -msgid "STEP 1" -msgstr "SCHRITT 1" - -#: AppTools/ToolSolderPaste.py:153 -msgid "" -"First step is to select a number of nozzle tools for usage\n" -"and then optionally modify the GCode parameters below." -msgstr "" -"Zunächst müssen Sie eine Reihe von Düsenwerkzeugen auswählen\n" -"und ändern Sie dann optional die GCode-Parameter." - -#: AppTools/ToolSolderPaste.py:156 -msgid "" -"Select tools.\n" -"Modify parameters." -msgstr "" -"Werkzeuge auswählen.\n" -"Parameter ändern." - -#: AppTools/ToolSolderPaste.py:276 -msgid "" -"Feedrate (speed) while moving up vertically\n" -" to Dispense position (on Z plane)." -msgstr "" -"Vorschub (Geschwindigkeit) bei vertikaler Bewegung\n" -"  zur Ausgabeposition (auf der Z-Ebene)." - -#: AppTools/ToolSolderPaste.py:346 -msgid "" -"Generate GCode for Solder Paste dispensing\n" -"on PCB pads." -msgstr "" -"Generieren Sie GCode für die Lotpastendosierung\n" -"auf PCB-Pads." - -#: AppTools/ToolSolderPaste.py:367 -msgid "STEP 2" -msgstr "SCHRITT 2" - -#: AppTools/ToolSolderPaste.py:369 -msgid "" -"Second step is to create a solder paste dispensing\n" -"geometry out of an Solder Paste Mask Gerber file." -msgstr "" -"Der zweite Schritt ist das Erstellen einer Lotpastendispensierung\n" -"Geometrie aus einer Lotpastenmaske-Gerber-Datei." - -#: AppTools/ToolSolderPaste.py:375 -msgid "Generate solder paste dispensing geometry." -msgstr "Generieren Sie Lotpastendispensiergeometrie." - -#: AppTools/ToolSolderPaste.py:398 -msgid "Geo Result" -msgstr "Geo-Ergebnis" - -#: AppTools/ToolSolderPaste.py:400 -msgid "" -"Geometry Solder Paste object.\n" -"The name of the object has to end in:\n" -"'_solderpaste' as a protection." -msgstr "" -"Geometrie Lötpaste Objekt einfügen.\n" -"Der Name des Objekts muss auf enden:\n" -"'_solderpaste' als Schutz." - -#: AppTools/ToolSolderPaste.py:409 -msgid "STEP 3" -msgstr "SCHRITT 3" - -#: AppTools/ToolSolderPaste.py:411 -msgid "" -"Third step is to select a solder paste dispensing geometry,\n" -"and then generate a CNCJob object.\n" -"\n" -"REMEMBER: if you want to create a CNCJob with new parameters,\n" -"first you need to generate a geometry with those new params,\n" -"and only after that you can generate an updated CNCJob." -msgstr "" -"Der dritte Schritt ist die Auswahl einer Lotpastendosiergeometrie.\n" -"und generieren Sie dann ein CNCJob-Objekt.\n" -"\n" -"HINWEIS: Wenn Sie einen CNCJob mit neuen Parametern erstellen möchten,\n" -"Zuerst müssen Sie eine Geometrie mit diesen neuen Parametern generieren.\n" -"und erst danach können Sie einen aktualisierten CNCJob erstellen." - -#: AppTools/ToolSolderPaste.py:432 -msgid "CNC Result" -msgstr "CNC-Ergebnis" - -#: AppTools/ToolSolderPaste.py:434 -msgid "" -"CNCJob Solder paste object.\n" -"In order to enable the GCode save section,\n" -"the name of the object has to end in:\n" -"'_solderpaste' as a protection." -msgstr "" -"CNCJob Lotpastenobjekt.\n" -"Um den GCode-Speicherbereich zu aktivieren,\n" -"Der Name des Objekts muss auf enden:\n" -"'_solderpaste' als Schutz." - -#: AppTools/ToolSolderPaste.py:444 -msgid "View GCode" -msgstr "GCode anzeigen" - -#: AppTools/ToolSolderPaste.py:446 -msgid "" -"View the generated GCode for Solder Paste dispensing\n" -"on PCB pads." -msgstr "" -"Zeigen Sie den generierten GCode für die Lotpastendosierung an\n" -"auf PCB-Pads." - -#: AppTools/ToolSolderPaste.py:456 -msgid "Save GCode" -msgstr "Speichern Sie GCode" - -#: AppTools/ToolSolderPaste.py:458 -msgid "" -"Save the generated GCode for Solder Paste dispensing\n" -"on PCB pads, to a file." -msgstr "" -"Speichern Sie den generierten GCode für die Lotpastendosierung\n" -"auf PCB-Pads zu einer Datei." - -#: AppTools/ToolSolderPaste.py:468 -msgid "STEP 4" -msgstr "SCHRITT 4" - -#: AppTools/ToolSolderPaste.py:470 -msgid "" -"Fourth step (and last) is to select a CNCJob made from \n" -"a solder paste dispensing geometry, and then view/save it's GCode." -msgstr "" -"Vierter Schritt (und letzter Schritt) ist die Auswahl eines CNCJobs aus\n" -"eine Lotpastendispensiergeometrie und dann den GCode anzeigen / speichern." - -#: AppTools/ToolSolderPaste.py:930 -msgid "New Nozzle tool added to Tool Table." -msgstr "Neues Düsenwerkzeug zur Werkzeugtabelle hinzugefügt." - -#: AppTools/ToolSolderPaste.py:973 -msgid "Nozzle tool from Tool Table was edited." -msgstr "Das Düsenwerkzeug aus der Werkzeugtabelle wurde bearbeitet." - -#: AppTools/ToolSolderPaste.py:1032 -msgid "Delete failed. Select a Nozzle tool to delete." -msgstr "Löschen fehlgeschlagen. Wählen Sie ein Düsenwerkzeug zum Löschen aus." - -#: AppTools/ToolSolderPaste.py:1038 -msgid "Nozzle tool(s) deleted from Tool Table." -msgstr "Düsenwerkzeug (e) aus der Werkzeugtabelle gelöscht." - -#: AppTools/ToolSolderPaste.py:1094 -msgid "No SolderPaste mask Gerber object loaded." -msgstr "Keine Lötpastenmaske Gerber-Objekt geladen." - -#: AppTools/ToolSolderPaste.py:1112 -msgid "Creating Solder Paste dispensing geometry." -msgstr "Erstellen einer Lotpastenspendergeometrie." - -#: AppTools/ToolSolderPaste.py:1125 -msgid "No Nozzle tools in the tool table." -msgstr "Nein Düsenwerkzeuge in der Werkzeugtabelle." - -#: AppTools/ToolSolderPaste.py:1251 -msgid "Cancelled. Empty file, it has no geometry..." -msgstr "Abgebrochen. Leere Datei hat keine Geometrie ..." - -#: AppTools/ToolSolderPaste.py:1254 -msgid "Solder Paste geometry generated successfully" -msgstr "Lotpastengeometrie erfolgreich generiert" - -#: AppTools/ToolSolderPaste.py:1261 -msgid "Some or all pads have no solder due of inadequate nozzle diameters..." -msgstr "" -"Einige oder alle Pads haben wegen unzureichender Düsendurchmesser keine " -"Lötstellen ..." - -#: AppTools/ToolSolderPaste.py:1275 -msgid "Generating Solder Paste dispensing geometry..." -msgstr "Lötpasten-Dosiergeometrie erzeugen ..." - -#: AppTools/ToolSolderPaste.py:1295 -msgid "There is no Geometry object available." -msgstr "Es ist kein Geometrieobjekt verfügbar." - -#: AppTools/ToolSolderPaste.py:1300 -msgid "This Geometry can't be processed. NOT a solder_paste_tool geometry." -msgstr "" -"Diese Geometrie kann nicht verarbeitet werden. KEINE Geometrie " -"\"Lötpaste_Tool\"." - -#: AppTools/ToolSolderPaste.py:1336 -msgid "An internal error has ocurred. See shell.\n" -msgstr "Ein interner Fehler ist aufgetreten. Siehe Konsole.\n" - -#: AppTools/ToolSolderPaste.py:1401 -msgid "ToolSolderPaste CNCjob created" -msgstr "Werkzeuglötpaste CNC-Auftrag erstellt" - -#: AppTools/ToolSolderPaste.py:1420 -msgid "SP GCode Editor" -msgstr "SP GCode-Editor" - -#: AppTools/ToolSolderPaste.py:1432 AppTools/ToolSolderPaste.py:1437 -#: AppTools/ToolSolderPaste.py:1492 -msgid "" -"This CNCJob object can't be processed. NOT a solder_paste_tool CNCJob object." -msgstr "" -"Dieses CNCJob-Objekt kann nicht verarbeitet werden. KEIN lot_paste_tool " -"CNCJob Objekt." - -#: AppTools/ToolSolderPaste.py:1462 -msgid "No Gcode in the object" -msgstr "Kein Gcode im Objekt" - -#: AppTools/ToolSolderPaste.py:1502 -msgid "Export GCode ..." -msgstr "GCode exportieren ..." - -#: AppTools/ToolSolderPaste.py:1550 -msgid "Solder paste dispenser GCode file saved to" -msgstr "Lotpastenspender GCode-Datei gespeichert in" - -#: AppTools/ToolSub.py:83 -msgid "" -"Gerber object from which to subtract\n" -"the subtractor Gerber object." -msgstr "" -"Gerber-Objekt, von dem subtrahiert werden soll\n" -"der Subtrahierer Gerber Objekt." - -#: AppTools/ToolSub.py:96 AppTools/ToolSub.py:151 -msgid "Subtractor" -msgstr "Subtraktor" - -#: AppTools/ToolSub.py:98 -msgid "" -"Gerber object that will be subtracted\n" -"from the target Gerber object." -msgstr "" -"Gerber-Objekt, das abgezogen wird\n" -"vom Zielobjekt Gerber." - -#: AppTools/ToolSub.py:105 -msgid "Subtract Gerber" -msgstr "Gerber abziehen" - -#: AppTools/ToolSub.py:107 -msgid "" -"Will remove the area occupied by the subtractor\n" -"Gerber from the Target Gerber.\n" -"Can be used to remove the overlapping silkscreen\n" -"over the soldermask." -msgstr "" -"Entfernt den vom Subtrahierer belegten Bereich\n" -"Gerber vom Target Gerber.\n" -"Kann verwendet werden, um den überlappenden Siebdruck zu entfernen\n" -"über der Lötmaske." - -#: AppTools/ToolSub.py:138 -msgid "" -"Geometry object from which to subtract\n" -"the subtractor Geometry object." -msgstr "" -"Geometrieobjekt, von dem subtrahiert werden soll\n" -"das Subtrahierer-Geometrieobjekt." - -#: AppTools/ToolSub.py:153 -msgid "" -"Geometry object that will be subtracted\n" -"from the target Geometry object." -msgstr "" -"Geometrieobjekt, das subtrahiert wird\n" -"aus dem Zielobjekt Geometrie." - -#: AppTools/ToolSub.py:161 -msgid "" -"Checking this will close the paths cut by the Geometry subtractor object." -msgstr "" -"Wenn Sie dies aktivieren, werden die vom Geometrie-Subtrahierer-Objekt " -"geschnittenen Pfade geschlossen." - -#: AppTools/ToolSub.py:164 -msgid "Subtract Geometry" -msgstr "Geometrie subtrahieren" - -#: AppTools/ToolSub.py:166 -msgid "" -"Will remove the area occupied by the subtractor\n" -"Geometry from the Target Geometry." -msgstr "" -"Entfernt den vom Subtrahierer belegten Bereich\n" -"Geometrie aus der Zielgeometrie." - -#: AppTools/ToolSub.py:264 -msgid "Sub Tool" -msgstr "Sub. Werkzeug" - -#: AppTools/ToolSub.py:285 AppTools/ToolSub.py:490 -msgid "No Target object loaded." -msgstr "Kein Zielobjekt geladen." - -#: AppTools/ToolSub.py:288 -msgid "Loading geometry from Gerber objects." -msgstr "Lade Geometrien aus Gerber Objekten." - -#: AppTools/ToolSub.py:300 AppTools/ToolSub.py:505 -msgid "No Subtractor object loaded." -msgstr "Es wurde kein Subtrahiererobjekt geladen." - -# whatever aperture means here.... -#: AppTools/ToolSub.py:342 -msgid "Finished parsing geometry for aperture" -msgstr "Einlesen der aperture Geometrie fertiggestellt" - -#: AppTools/ToolSub.py:344 -msgid "Subtraction aperture processing finished." -msgstr "Die Verarbeitung der Subtraktionsapertur ist beendet." - -#: AppTools/ToolSub.py:464 AppTools/ToolSub.py:662 -msgid "Generating new object ..." -msgstr "Neues Objekt erzeugen ..." - -#: AppTools/ToolSub.py:467 AppTools/ToolSub.py:666 AppTools/ToolSub.py:745 -msgid "Generating new object failed." -msgstr "Das Generieren eines neuen Objekts ist fehlgeschlagen." - -#: AppTools/ToolSub.py:471 AppTools/ToolSub.py:672 -msgid "Created" -msgstr "Erstellt" - -#: AppTools/ToolSub.py:519 -msgid "Currently, the Subtractor geometry cannot be of type Multigeo." -msgstr "Derzeit kann die Subtrahierergeometrie nicht vom Typ Multi-Geo sein." - -#: AppTools/ToolSub.py:564 -msgid "Parsing solid_geometry ..." -msgstr "Analyse von solid_geometry ..." - -#: AppTools/ToolSub.py:566 -msgid "Parsing solid_geometry for tool" -msgstr "Analysieren der solid_geometry für das Werkzeug" - -#: AppTools/ToolTransform.py:23 -msgid "Object Transform" -msgstr "Objekttransformation" - -#: AppTools/ToolTransform.py:78 -msgid "" -"Rotate the selected object(s).\n" -"The point of reference is the middle of\n" -"the bounding box for all selected objects." -msgstr "" -"Drehen Sie die ausgewählten Objekte.\n" -"Der Bezugspunkt ist die Mitte von\n" -"der Begrenzungsrahmen für alle ausgewählten Objekte." - -#: AppTools/ToolTransform.py:99 AppTools/ToolTransform.py:120 -msgid "" -"Angle for Skew action, in degrees.\n" -"Float number between -360 and 360." -msgstr "" -"Winkel für Schrägstellung in Grad.\n" -"Gleitkommazahl zwischen -360 und 360." - -#: AppTools/ToolTransform.py:109 AppTools/ToolTransform.py:130 -msgid "" -"Skew/shear the selected object(s).\n" -"The point of reference is the middle of\n" -"the bounding box for all selected objects." -msgstr "" -"Schrägstellung / Scherung der ausgewählten Objekte.\n" -"Der Bezugspunkt ist die Mitte von\n" -"der Begrenzungsrahmen für alle ausgewählten Objekte." - -#: AppTools/ToolTransform.py:159 AppTools/ToolTransform.py:179 -msgid "" -"Scale the selected object(s).\n" -"The point of reference depends on \n" -"the Scale reference checkbox state." -msgstr "" -"Skalieren Sie die ausgewählten Objekte.\n" -"Der Bezugspunkt hängt von ab\n" -"das Kontrollkästchen Skalenreferenz." - -#: AppTools/ToolTransform.py:228 AppTools/ToolTransform.py:248 -msgid "" -"Offset the selected object(s).\n" -"The point of reference is the middle of\n" -"the bounding box for all selected objects.\n" -msgstr "" -"Versetzt die ausgewählten Objekte.\n" -"Der Bezugspunkt ist die Mitte von\n" -"der Begrenzungsrahmen für alle ausgewählten Objekte.\n" - -#: AppTools/ToolTransform.py:268 AppTools/ToolTransform.py:273 -msgid "Flip the selected object(s) over the X axis." -msgstr "Drehen Sie die ausgewählten Objekte über die X-Achse." - -#: AppTools/ToolTransform.py:297 -msgid "Ref. Point" -msgstr "Anhaltspunkt" - -#: AppTools/ToolTransform.py:348 -msgid "" -"Create the buffer effect on each geometry,\n" -"element from the selected object, using the distance." -msgstr "" -"Erstellen Sie den Puffereffekt für jede Geometrie.\n" -"Element aus dem ausgewählten Objekt unter Verwendung des Abstands." - -#: AppTools/ToolTransform.py:374 -msgid "" -"Create the buffer effect on each geometry,\n" -"element from the selected object, using the factor." -msgstr "" -"Erstellen Sie den Puffereffekt für jede Geometrie.\n" -"Element aus dem ausgewählten Objekt unter Verwendung des Faktors." - -#: AppTools/ToolTransform.py:479 -msgid "Buffer D" -msgstr "Puffer E" - -#: AppTools/ToolTransform.py:480 -msgid "Buffer F" -msgstr "Puffer F" - -#: AppTools/ToolTransform.py:557 -msgid "Rotate transformation can not be done for a value of 0." -msgstr "" -"Bei einem Wert von 0 kann keine Rotationstransformation durchgeführt werden." - -#: AppTools/ToolTransform.py:596 AppTools/ToolTransform.py:619 -msgid "Scale transformation can not be done for a factor of 0 or 1." -msgstr "" -"Eine Skalentransformation kann für einen Faktor von 0 oder 1 nicht " -"durchgeführt werden." - -#: AppTools/ToolTransform.py:634 AppTools/ToolTransform.py:644 -msgid "Offset transformation can not be done for a value of 0." -msgstr "" -"Bei einem Wert von 0 kann keine Offset-Transformation durchgeführt werden." - -#: AppTools/ToolTransform.py:676 -msgid "No object selected. Please Select an object to rotate!" -msgstr "Kein Objekt ausgewählt. Bitte wählen Sie ein Objekt zum Drehen aus!" - -#: AppTools/ToolTransform.py:702 -msgid "CNCJob objects can't be rotated." -msgstr "CNCJob-Objekte können nicht gedreht werden." - -#: AppTools/ToolTransform.py:710 -msgid "Rotate done" -msgstr "Fertig drehen" - -#: AppTools/ToolTransform.py:713 AppTools/ToolTransform.py:783 -#: AppTools/ToolTransform.py:833 AppTools/ToolTransform.py:887 -#: AppTools/ToolTransform.py:917 AppTools/ToolTransform.py:953 -msgid "Due of" -msgstr "Aufgrund von" - -#: AppTools/ToolTransform.py:713 AppTools/ToolTransform.py:783 -#: AppTools/ToolTransform.py:833 AppTools/ToolTransform.py:887 -#: AppTools/ToolTransform.py:917 AppTools/ToolTransform.py:953 -msgid "action was not executed." -msgstr "Aktion wurde nicht ausgeführt." - -#: AppTools/ToolTransform.py:725 -msgid "No object selected. Please Select an object to flip" -msgstr "Kein Objekt ausgewählt. Bitte wählen Sie ein Objekt aus" - -#: AppTools/ToolTransform.py:758 -msgid "CNCJob objects can't be mirrored/flipped." -msgstr "CNCJob-Objekte können nicht gespiegelt / gespiegelt werden." - -#: AppTools/ToolTransform.py:793 -msgid "Skew transformation can not be done for 0, 90 and 180 degrees." -msgstr "" -"Die Neigungstransformation kann nicht für 0, 90 und 180 Grad durchgeführt " -"werden." - -#: AppTools/ToolTransform.py:798 -msgid "No object selected. Please Select an object to shear/skew!" -msgstr "" -"Kein Objekt ausgewählt. Bitte wählen Sie ein Objekt zum Scheren / Schrägen!" - -#: AppTools/ToolTransform.py:818 -msgid "CNCJob objects can't be skewed." -msgstr "CNCJob-Objekte können nicht verzerrt werden." - -#: AppTools/ToolTransform.py:830 -msgid "Skew on the" -msgstr "Schräg auf die" - -#: AppTools/ToolTransform.py:830 AppTools/ToolTransform.py:884 -#: AppTools/ToolTransform.py:914 -msgid "axis done" -msgstr "Achse fertig" - -#: AppTools/ToolTransform.py:844 -msgid "No object selected. Please Select an object to scale!" -msgstr "Kein Objekt ausgewählt. Bitte wählen Sie ein Objekt zum Skalieren!" - -#: AppTools/ToolTransform.py:875 -msgid "CNCJob objects can't be scaled." -msgstr "CNCJob-Objekte können nicht skaliert werden." - -#: AppTools/ToolTransform.py:884 -msgid "Scale on the" -msgstr "Skalieren Sie auf der" - -#: AppTools/ToolTransform.py:894 -msgid "No object selected. Please Select an object to offset!" -msgstr "Kein Objekt ausgewählt. Bitte wählen Sie ein Objekt zum Versetzen aus!" - -#: AppTools/ToolTransform.py:901 -msgid "CNCJob objects can't be offset." -msgstr "CNCJob-Objekte können nicht versetzt werden." - -#: AppTools/ToolTransform.py:914 -msgid "Offset on the" -msgstr "Offset auf dem" - -#: AppTools/ToolTransform.py:924 -msgid "No object selected. Please Select an object to buffer!" -msgstr "Kein Objekt ausgewählt. Bitte wählen Sie ein Objekt zum Puffern aus!" - -#: AppTools/ToolTransform.py:927 -msgid "Applying Buffer" -msgstr "Anwenden von Puffer" - -#: AppTools/ToolTransform.py:931 -msgid "CNCJob objects can't be buffered." -msgstr "CNCJob-Objekte können nicht gepuffert werden." - -#: AppTools/ToolTransform.py:948 -msgid "Buffer done" -msgstr "Puffer fertig" - -#: AppTranslation.py:104 -msgid "The application will restart." -msgstr "Die Anwendung wird neu gestartet." - -#: AppTranslation.py:106 -msgid "Are you sure do you want to change the current language to" -msgstr "Möchten Sie die aktuelle Sprache wirklich in ändern" - -#: AppTranslation.py:107 -msgid "Apply Language ..." -msgstr "Sprache anwenden ..." - -#: AppTranslation.py:203 App_Main.py:3151 -msgid "" -"There are files/objects modified in FlatCAM. \n" -"Do you want to Save the project?" -msgstr "" -"In FlatCAM wurden Dateien / Objekte geändert.\n" -"Möchten Sie das Projekt speichern?" - -#: AppTranslation.py:206 App_Main.py:3154 App_Main.py:6411 -msgid "Save changes" -msgstr "Änderungen speichern" - -#: App_Main.py:477 +#: FlatCAMApp.py:491 msgid "FlatCAM is initializing ..." msgstr "FlatCAM wird initialisiert ..." -#: App_Main.py:620 +#: FlatCAMApp.py:639 msgid "Could not find the Language files. The App strings are missing." msgstr "" "Die Sprachdateien konnten nicht gefunden werden. Die App-Zeichenfolgen " "fehlen." -#: App_Main.py:692 +#: FlatCAMApp.py:709 msgid "" "FlatCAM is initializing ...\n" "Canvas initialization started." @@ -17133,7 +35,7 @@ msgstr "" "FlatCAM wird initialisiert ...\n" "Die Canvas-Initialisierung wurde gestartet." -#: App_Main.py:712 +#: FlatCAMApp.py:729 msgid "" "FlatCAM is initializing ...\n" "Canvas initialization started.\n" @@ -17143,44 +45,64 @@ msgstr "" "Die Canvas-Initialisierung wurde gestartet.\n" "Canvas-Initialisierung abgeschlossen in" -#: App_Main.py:1558 App_Main.py:6524 +#: FlatCAMApp.py:1593 FlatCAMApp.py:7451 msgid "New Project - Not saved" msgstr "Neues Projekt - Nicht gespeichert" -#: App_Main.py:1659 +#: FlatCAMApp.py:1689 msgid "" "Found old default preferences files. Please reboot the application to update." msgstr "" "Alte Einstellungsdatei gefunden. Bitte starten Sie Flatcam neu um die " "Einstellungen zu aktualisieren." -#: App_Main.py:1726 +#: FlatCAMApp.py:1740 FlatCAMApp.py:2512 FlatCAMApp.py:2547 FlatCAMApp.py:2594 +#: FlatCAMApp.py:4540 FlatCAMApp.py:7535 FlatCAMApp.py:7572 FlatCAMApp.py:7614 +#: FlatCAMApp.py:7643 FlatCAMApp.py:7684 FlatCAMApp.py:7709 FlatCAMApp.py:7761 +#: FlatCAMApp.py:7796 FlatCAMApp.py:7841 FlatCAMApp.py:7882 FlatCAMApp.py:7923 +#: FlatCAMApp.py:7964 FlatCAMApp.py:8005 FlatCAMApp.py:8049 FlatCAMApp.py:8105 +#: FlatCAMApp.py:8137 FlatCAMApp.py:8169 FlatCAMApp.py:8402 FlatCAMApp.py:8440 +#: FlatCAMApp.py:8483 FlatCAMApp.py:8560 FlatCAMApp.py:8615 +#: FlatCAMBookmark.py:300 FlatCAMBookmark.py:342 FlatCAMDB.py:663 +#: FlatCAMDB.py:709 FlatCAMDB.py:2125 FlatCAMDB.py:2171 +#: flatcamEditors/FlatCAMExcEditor.py:1023 +#: flatcamEditors/FlatCAMExcEditor.py:1091 +#: flatcamEditors/FlatCAMTextEditor.py:223 flatcamGUI/FlatCAMGUI.py:3443 +#: flatcamGUI/FlatCAMGUI.py:3659 flatcamGUI/FlatCAMGUI.py:3874 +#: flatcamObjects/ObjectCollection.py:126 flatcamTools/ToolFilm.py:754 +#: flatcamTools/ToolFilm.py:900 flatcamTools/ToolImage.py:247 +#: flatcamTools/ToolMove.py:269 flatcamTools/ToolPcbWizard.py:301 +#: flatcamTools/ToolPcbWizard.py:324 flatcamTools/ToolQRCode.py:791 +#: flatcamTools/ToolQRCode.py:838 +msgid "Cancelled." +msgstr "Abgebrochen." + +#: FlatCAMApp.py:1756 msgid "Open Config file failed." msgstr "Öffnen der Config-Datei ist fehlgeschlagen." -#: App_Main.py:1741 +#: FlatCAMApp.py:1771 msgid "Open Script file failed." msgstr "Open Script-Datei ist fehlgeschlagen." -#: App_Main.py:1767 +#: FlatCAMApp.py:1797 msgid "Open Excellon file failed." msgstr "Öffnen der Excellon-Datei fehlgeschlagen." -#: App_Main.py:1780 +#: FlatCAMApp.py:1810 msgid "Open GCode file failed." msgstr "Öffnen der GCode-Datei fehlgeschlagen." -#: App_Main.py:1793 +#: FlatCAMApp.py:1823 msgid "Open Gerber file failed." msgstr "Öffnen der Gerber-Datei fehlgeschlagen." -#: App_Main.py:2116 -msgid "Select a Geometry, Gerber, Excellon or CNCJob Object to edit." +#: FlatCAMApp.py:2131 +msgid "Select a Geometry, Gerber or Excellon Object to edit." msgstr "" -"Wählen Sie ein zu bearbeitendes Geometrie-, Gerber-, Excellon- oder CNCJob-" -"Objekt aus." +"Wählen Sie ein zu bearbeitendes Geometrie-, Gerber- oder Excellon-Objekt aus." -#: App_Main.py:2131 +#: FlatCAMApp.py:2146 msgid "" "Simultaneous editing of tools geometry in a MultiGeo Geometry is not " "possible.\n" @@ -17190,93 +112,199 @@ msgstr "" "Geometrie ist nicht möglich.\n" "Bearbeiten Sie jeweils nur eine Geometrie." -#: App_Main.py:2197 +#: FlatCAMApp.py:2204 msgid "Editor is activated ..." msgstr "Editor wurde aktiviert ..." -#: App_Main.py:2218 +#: FlatCAMApp.py:2225 msgid "Do you want to save the edited object?" msgstr "Möchten Sie das bearbeitete Objekt speichern?" -#: App_Main.py:2254 +#: FlatCAMApp.py:2226 flatcamGUI/FlatCAMGUI.py:2288 +msgid "Close Editor" +msgstr "Editor schließen" + +#: FlatCAMApp.py:2229 FlatCAMApp.py:3518 FlatCAMApp.py:6085 FlatCAMApp.py:7345 +#: FlatCAMTranslation.py:109 FlatCAMTranslation.py:207 +#: flatcamGUI/FlatCAMGUI.py:2519 +#: flatcamGUI/preferences/PreferencesUIManager.py:1122 +msgid "Yes" +msgstr "Ja" + +#: FlatCAMApp.py:2230 FlatCAMApp.py:3519 FlatCAMApp.py:6086 FlatCAMApp.py:7346 +#: FlatCAMTranslation.py:110 FlatCAMTranslation.py:208 +#: flatcamGUI/FlatCAMGUI.py:2520 +#: flatcamGUI/preferences/PreferencesUIManager.py:1123 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:164 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:150 +#: flatcamTools/ToolNCC.py:182 flatcamTools/ToolPaint.py:166 +msgid "No" +msgstr "Nein" + +#: FlatCAMApp.py:2231 FlatCAMApp.py:3520 FlatCAMApp.py:4478 FlatCAMApp.py:5103 +#: FlatCAMApp.py:7347 FlatCAMDB.py:128 FlatCAMDB.py:1689 +#: flatcamGUI/FlatCAMGUI.py:1347 +msgid "Cancel" +msgstr "Abbrechen" + +#: FlatCAMApp.py:2263 msgid "Object empty after edit." msgstr "Das Objekt ist nach der Bearbeitung leer." -#: App_Main.py:2259 App_Main.py:2277 App_Main.py:2296 +#: FlatCAMApp.py:2267 FlatCAMApp.py:2288 FlatCAMApp.py:2310 msgid "Editor exited. Editor content saved." msgstr "Editor beendet. Editorinhalt gespeichert." -#: App_Main.py:2300 App_Main.py:2324 App_Main.py:2342 +#: FlatCAMApp.py:2314 FlatCAMApp.py:2337 FlatCAMApp.py:2355 msgid "Select a Gerber, Geometry or Excellon Object to update." msgstr "" "Wählen Sie ein Gerber-, Geometrie- oder Excellon-Objekt zum Aktualisieren " "aus." -#: App_Main.py:2303 +#: FlatCAMApp.py:2317 msgid "is updated, returning to App..." msgstr "wurde aktualisiert..." -#: App_Main.py:2310 +#: FlatCAMApp.py:2324 msgid "Editor exited. Editor content was not saved." msgstr "Editor beendet. Der Inhalt des Editors wurde nicht gespeichert." -#: App_Main.py:2443 App_Main.py:2447 +#: FlatCAMApp.py:2504 FlatCAMApp.py:2508 msgid "Import FlatCAM Preferences" msgstr "FlatCAM-Voreinstellungen importieren" -#: App_Main.py:2458 +#: FlatCAMApp.py:2519 msgid "Imported Defaults from" msgstr "Voreinstellungen wurden importiert von" -#: App_Main.py:2478 App_Main.py:2484 +#: FlatCAMApp.py:2539 FlatCAMApp.py:2544 msgid "Export FlatCAM Preferences" msgstr "FlatCAM-Voreinstellungen exportieren" -#: App_Main.py:2504 +#: FlatCAMApp.py:2558 FlatCAMApp.py:2626 +#: flatcamGUI/preferences/PreferencesUIManager.py:1018 +msgid "Failed to write defaults to file." +msgstr "Fehler beim Schreiben der Voreinstellungen in die Datei." + +#: FlatCAMApp.py:2564 msgid "Exported preferences to" msgstr "Exportierte Einstellungen nach" -#: App_Main.py:2524 App_Main.py:2529 +#: FlatCAMApp.py:2584 FlatCAMApp.py:2589 msgid "Save to file" msgstr "Speichern unter" -#: App_Main.py:2553 +#: FlatCAMApp.py:2602 FlatCAMApp.py:8859 FlatCAMApp.py:8907 FlatCAMApp.py:9032 +#: FlatCAMApp.py:9168 FlatCAMBookmark.py:308 FlatCAMDB.py:671 FlatCAMDB.py:2133 +#: flatcamEditors/FlatCAMTextEditor.py:276 flatcamObjects/FlatCAMCNCJob.py:959 +#: flatcamTools/ToolFilm.py:1031 flatcamTools/ToolFilm.py:1212 +#: flatcamTools/ToolSolderPaste.py:1534 +msgid "" +"Permission denied, saving not possible.\n" +"Most likely another app is holding the file open and not accessible." +msgstr "" +"Berechtigung verweigert, Speichern nicht möglich.\n" +"Wahrscheinlich hält eine andere App die Datei offen oder ist geschützt." + +#: FlatCAMApp.py:2613 msgid "Could not load the file." msgstr "Die Datei konnte nicht geladen werden." -#: App_Main.py:2569 +#: FlatCAMApp.py:2629 msgid "Exported file to" msgstr "Exportierte Datei nach" -#: App_Main.py:2606 +#: FlatCAMApp.py:2712 msgid "Failed to open recent files file for writing." msgstr "Fehler beim Öffnen der zuletzt geöffneten Datei zum Schreiben." -#: App_Main.py:2617 +#: FlatCAMApp.py:2723 msgid "Failed to open recent projects file for writing." msgstr "Fehler beim Öffnen der letzten Projektdatei zum Schreiben." -#: App_Main.py:2672 +#: FlatCAMApp.py:2806 FlatCAMApp.py:9377 FlatCAMApp.py:9441 FlatCAMApp.py:9572 +#: FlatCAMApp.py:9637 FlatCAMApp.py:10287 +#: flatcamEditors/FlatCAMGrbEditor.py:4364 +#: flatcamObjects/FlatCAMGeometry.py:1725 flatcamParsers/ParseExcellon.py:897 +#: flatcamTools/ToolPcbWizard.py:432 +msgid "An internal error has occurred. See shell.\n" +msgstr "Ein interner Fehler ist aufgetreten. Siehe Shell.\n" + +#: FlatCAMApp.py:2807 +#, python-brace-format +msgid "" +"Object ({kind}) failed because: {error} \n" +"\n" +msgstr "" +"Objekt ({kind}) gescheitert weil: {error} \n" +"\n" + +#: FlatCAMApp.py:2822 +msgid "Converting units to " +msgstr "Einheiten umrechnen in " + +#: FlatCAMApp.py:2931 +msgid "CREATE A NEW FLATCAM TCL SCRIPT" +msgstr "NEUES FLATCAL TCL SCRIPT ERZEUGEN" + +#: FlatCAMApp.py:2932 +msgid "TCL Tutorial is here" +msgstr "Das TCL Tutorial ist hier" + +#: FlatCAMApp.py:2934 +msgid "FlatCAM commands list" +msgstr "FlatCAM Befehlsliste" + +#: FlatCAMApp.py:2935 +msgid "" +"Type >help< followed by Run Code for a list of FlatCAM Tcl Commands " +"(displayed in Tcl Shell)." +msgstr "" +"Geben Sie >help< gefolgt von Run Code ein, um eine Liste der FlatCAM Tcl-" +"Befehle anzuzeigen (angezeigt in der Tcl-Shell)." + +#: FlatCAMApp.py:2982 FlatCAMApp.py:2988 FlatCAMApp.py:2994 FlatCAMApp.py:3000 +#: FlatCAMApp.py:3006 FlatCAMApp.py:3012 +msgid "created/selected" +msgstr "erstellt / ausgewählt" + +#: FlatCAMApp.py:3027 FlatCAMApp.py:5189 flatcamObjects/FlatCAMObj.py:248 +#: flatcamObjects/FlatCAMObj.py:279 flatcamObjects/FlatCAMObj.py:295 +#: flatcamObjects/FlatCAMObj.py:375 flatcamTools/ToolCopperThieving.py:1481 +#: flatcamTools/ToolFiducials.py:809 flatcamTools/ToolMove.py:229 +#: flatcamTools/ToolQRCode.py:728 +msgid "Plotting" +msgstr "Plotten" + +#: FlatCAMApp.py:3090 flatcamGUI/FlatCAMGUI.py:545 +msgid "About FlatCAM" +msgstr "Über FlatCAM" + +#: FlatCAMApp.py:3116 msgid "2D Computer-Aided Printed Circuit Board Manufacturing" msgstr "2D-Computer-Aided-Printed-Circuit-Board-Herstellung" -#: App_Main.py:2673 +#: FlatCAMApp.py:3117 msgid "Development" msgstr "Entwicklung" -#: App_Main.py:2674 +#: FlatCAMApp.py:3118 msgid "DOWNLOAD" msgstr "HERUNTERLADEN" -#: App_Main.py:2675 +#: FlatCAMApp.py:3119 msgid "Issue tracker" msgstr "Problem Tracker" -#: App_Main.py:2694 +#: FlatCAMApp.py:3123 FlatCAMApp.py:3484 flatcamGUI/GUIElements.py:2583 +msgid "Close" +msgstr "Schließen" + +#: FlatCAMApp.py:3138 msgid "Licensed under the MIT license" msgstr "Lizenziert unter der MIT-Lizenz" -#: App_Main.py:2703 +#: FlatCAMApp.py:3147 msgid "" "Permission is hereby granted, free of charge, to any person obtaining a " "copy\n" @@ -17331,17 +359,14 @@ msgstr "" "ZUSAMMENHANG MIT DER\n" " SOFTWARE ODER SONSTIGER VERWENDUNG DER SOFTWARE ENTSTANDEN." -#: App_Main.py:2725 +#: FlatCAMApp.py:3169 msgid "" "Some of the icons used are from the following sources:
    Icons by Icons8
    Icons by oNline Web Fonts" +"onlinewebfonts.com\">oNline Web Fonts" msgstr "" "Einige der verwendeten Symbole stammen aus folgenden Quellen:
    " "Icons durch www.flaticon.com
    Icons durch Icons8
    Icons durch " "oNline Web FontsoNline Web Fonts
    Icons durchPixel perfect erstellt wurden von www.flaticon.com
    " +"\"http://www.onlinewebfonts.com\">oNline Web Fonts" -#: App_Main.py:2761 +#: FlatCAMApp.py:3202 msgid "Splash" msgstr "Begrüßungsbildschirm" -#: App_Main.py:2767 +#: FlatCAMApp.py:3208 msgid "Programmers" msgstr "Programmierer" -#: App_Main.py:2773 +#: FlatCAMApp.py:3214 msgid "Translators" msgstr "Übersetzer" -#: App_Main.py:2779 +#: FlatCAMApp.py:3220 msgid "License" msgstr "Lizenz" -#: App_Main.py:2785 +#: FlatCAMApp.py:3226 msgid "Attributions" msgstr "Zuschreibungen" -#: App_Main.py:2808 +#: FlatCAMApp.py:3249 msgid "Programmer" msgstr "Programmierer" -#: App_Main.py:2809 +#: FlatCAMApp.py:3250 msgid "Status" msgstr "Status" -#: App_Main.py:2810 App_Main.py:2890 +#: FlatCAMApp.py:3251 FlatCAMApp.py:3331 msgid "E-mail" msgstr "Email" -#: App_Main.py:2813 -msgid "Program Author" -msgstr "Programmautor" - -#: App_Main.py:2818 +#: FlatCAMApp.py:3259 msgid "BETA Maintainer >= 2019" msgstr "Betreuer >= 2019" -#: App_Main.py:2887 +#: FlatCAMApp.py:3328 msgid "Language" msgstr "Sprache" -#: App_Main.py:2888 +#: FlatCAMApp.py:3329 msgid "Translator" msgstr "Übersetzer" -#: App_Main.py:2889 +#: FlatCAMApp.py:3330 msgid "Corrections" msgstr "Korrekturen" -#: App_Main.py:2963 -msgid "Important Information's" -msgstr "Important Information's" +#: FlatCAMApp.py:3455 FlatCAMApp.py:3464 flatcamGUI/FlatCAMGUI.py:527 +msgid "Bookmarks Manager" +msgstr "Lesezeichen verwalten" -#: App_Main.py:3111 +#: FlatCAMApp.py:3475 msgid "" "This entry will resolve to another website if:\n" "\n" @@ -17430,32 +448,48 @@ msgstr "" "Wenn Sie keine Informationen zu FlatCAM beta erhalten können\n" "Verwenden Sie den Link zum YouTube-Kanal im Menü Hilfe." -#: App_Main.py:3118 +#: FlatCAMApp.py:3482 msgid "Alternative website" msgstr "Alternative Website" -#: App_Main.py:3421 +#: FlatCAMApp.py:3508 flatcamGUI/FlatCAMGUI.py:4267 +msgid "Application is saving the project. Please wait ..." +msgstr "Anwendung speichert das Projekt. Warten Sie mal ..." + +#: FlatCAMApp.py:3513 FlatCAMTranslation.py:202 +msgid "" +"There are files/objects modified in FlatCAM. \n" +"Do you want to Save the project?" +msgstr "" +"In FlatCAM wurden Dateien / Objekte geändert.\n" +"Möchten Sie das Projekt speichern?" + +#: FlatCAMApp.py:3516 FlatCAMApp.py:7343 FlatCAMTranslation.py:205 +msgid "Save changes" +msgstr "Änderungen speichern" + +#: FlatCAMApp.py:3778 msgid "Selected Excellon file extensions registered with FlatCAM." msgstr "" "Ausgewählte Excellon-Dateierweiterungen, die bei FlatCAM registriert sind." -#: App_Main.py:3443 +#: FlatCAMApp.py:3800 msgid "Selected GCode file extensions registered with FlatCAM." msgstr "" "Ausgewählte GCode-Dateierweiterungen, die bei FlatCAM registriert sind." -#: App_Main.py:3465 +#: FlatCAMApp.py:3822 msgid "Selected Gerber file extensions registered with FlatCAM." msgstr "" "Ausgewählte Gerber-Dateierweiterungen, die bei FlatCAM registriert sind." -#: App_Main.py:3653 App_Main.py:3712 App_Main.py:3740 +#: FlatCAMApp.py:4010 FlatCAMApp.py:4069 FlatCAMApp.py:4097 msgid "At least two objects are required for join. Objects currently selected" msgstr "" "Zum Verbinden sind mindestens zwei Objekte erforderlich. Derzeit ausgewählte " "Objekte" -#: App_Main.py:3662 +#: FlatCAMApp.py:4019 msgid "" "Failed join. The Geometry objects are of different types.\n" "At least one is MultiGeo type and the other is SingleGeo type. A possibility " @@ -17473,52 +507,52 @@ msgstr "" "und das Ergebnis entspricht möglicherweise nicht dem, was erwartet wurde.\n" "Überprüfen Sie den generierten GCODE." -#: App_Main.py:3674 App_Main.py:3684 +#: FlatCAMApp.py:4031 FlatCAMApp.py:4041 msgid "Geometry merging finished" msgstr "Zusammenführung der Geometrien beendet" -#: App_Main.py:3707 +#: FlatCAMApp.py:4064 msgid "Failed. Excellon joining works only on Excellon objects." msgstr "" "Gescheitert. Die Zusammenfügung von Excellon funktioniert nur bei Excellon-" "Objekten." -#: App_Main.py:3717 +#: FlatCAMApp.py:4074 msgid "Excellon merging finished" msgstr "Excellon-Bearbeitung abgeschlossen" -#: App_Main.py:3735 +#: FlatCAMApp.py:4092 msgid "Failed. Gerber joining works only on Gerber objects." msgstr "" "Gescheitert. Das Zusammenfügen für Gerber-Objekte funktioniert nur bei " "Gerber-Objekten." -#: App_Main.py:3745 +#: FlatCAMApp.py:4102 msgid "Gerber merging finished" msgstr "Erledigt. Gerber-Bearbeitung beendet" -#: App_Main.py:3765 App_Main.py:3802 +#: FlatCAMApp.py:4122 FlatCAMApp.py:4159 msgid "Failed. Select a Geometry Object and try again." msgstr "" "Gescheitert. Wählen Sie ein Geometrieobjekt aus und versuchen Sie es erneut." -#: App_Main.py:3769 App_Main.py:3807 +#: FlatCAMApp.py:4126 FlatCAMApp.py:4164 msgid "Expected a GeometryObject, got" msgstr "Erwartet ein GeometryObject, bekam" -#: App_Main.py:3784 +#: FlatCAMApp.py:4141 msgid "A Geometry object was converted to MultiGeo type." msgstr "Ein Geometrieobjekt wurde in den MultiGeo-Typ konvertiert." -#: App_Main.py:3822 +#: FlatCAMApp.py:4179 msgid "A Geometry object was converted to SingleGeo type." msgstr "Ein Geometrieobjekt wurde in den SingleGeo-Typ konvertiert." -#: App_Main.py:4029 +#: FlatCAMApp.py:4472 msgid "Toggle Units" msgstr "Einheiten wechseln" -#: App_Main.py:4033 +#: FlatCAMApp.py:4474 msgid "" "Changing the units of the project\n" "will scale all objects.\n" @@ -17530,28 +564,32 @@ msgstr "" "aller Objekte entsprechend skaliert.\n" "Wollen Sie Fortsetzen?" -#: App_Main.py:4036 App_Main.py:4223 App_Main.py:4306 App_Main.py:6809 -#: App_Main.py:6825 App_Main.py:7163 App_Main.py:7175 +#: FlatCAMApp.py:4477 FlatCAMApp.py:5025 FlatCAMApp.py:5102 FlatCAMApp.py:7728 +#: FlatCAMApp.py:7742 FlatCAMApp.py:8075 FlatCAMApp.py:8085 msgid "Ok" msgstr "Ok" -#: App_Main.py:4086 +#: FlatCAMApp.py:4526 msgid "Converted units to" msgstr "Einheiten wurden umgerechnet in" -#: App_Main.py:4121 +#: FlatCAMApp.py:4928 msgid "Detachable Tabs" msgstr "Abnehmbare Laschen" -#: App_Main.py:4150 -msgid "Workspace enabled." -msgstr "Arbeitsbereich aktiviert." +#: FlatCAMApp.py:5014 flatcamTools/ToolNCC.py:932 flatcamTools/ToolNCC.py:1431 +#: flatcamTools/ToolPaint.py:858 flatcamTools/ToolSolderPaste.py:568 +#: flatcamTools/ToolSolderPaste.py:893 +msgid "Please enter a tool diameter with non-zero value, in Float format." +msgstr "" +"Bitte geben Sie einen Werkzeugdurchmesser ungleich Null im Float-Format ein." -#: App_Main.py:4153 -msgid "Workspace disabled." -msgstr "Arbeitsbereich deaktiviert." +#: FlatCAMApp.py:5018 flatcamTools/ToolNCC.py:936 flatcamTools/ToolPaint.py:862 +#: flatcamTools/ToolSolderPaste.py:572 +msgid "Adding Tool cancelled" +msgstr "Addierwerkzeug abgebrochen" -#: App_Main.py:4217 +#: FlatCAMApp.py:5021 msgid "" "Adding Tool works only when Advanced is checked.\n" "Go to Preferences -> General - Show Advanced Options." @@ -17560,11 +598,11 @@ msgstr "" "ist.\n" "Gehen Sie zu Einstellungen -> Allgemein - Erweiterte Optionen anzeigen." -#: App_Main.py:4299 +#: FlatCAMApp.py:5097 msgid "Delete objects" msgstr "Objekte löschen" -#: App_Main.py:4304 +#: FlatCAMApp.py:5100 msgid "" "Are you sure you want to permanently delete\n" "the selected objects?" @@ -17572,92 +610,153 @@ msgstr "" "Möchten Sie die ausgewählten Objekte\n" "wirklich dauerhaft löschen?" -#: App_Main.py:4348 +#: FlatCAMApp.py:5138 msgid "Object(s) deleted" msgstr "Objekt (e) gelöscht" -#: App_Main.py:4352 +#: FlatCAMApp.py:5142 FlatCAMApp.py:5297 flatcamTools/ToolDblSided.py:818 +msgid "Failed. No object(s) selected..." +msgstr "Gescheitert. Kein Objekt ausgewählt ..." + +#: FlatCAMApp.py:5144 msgid "Save the work in Editor and try again ..." msgstr "Speichern Sie den Editor und versuchen Sie es erneut ..." -#: App_Main.py:4381 +#: FlatCAMApp.py:5173 msgid "Object deleted" msgstr "Objekt (e) gelöscht" -#: App_Main.py:4408 +#: FlatCAMApp.py:5200 msgid "Click to set the origin ..." msgstr "Klicken Sie hier, um den Ursprung festzulegen ..." -#: App_Main.py:4430 +#: FlatCAMApp.py:5222 msgid "Setting Origin..." msgstr "Ursprung setzten ..." -#: App_Main.py:4443 App_Main.py:4545 +#: FlatCAMApp.py:5235 FlatCAMApp.py:5337 msgid "Origin set" msgstr "Ursprung gesetzt" -#: App_Main.py:4460 +#: FlatCAMApp.py:5252 msgid "Origin coordinates specified but incomplete." msgstr "Ursprungskoordinaten angegeben, aber unvollständig." -#: App_Main.py:4501 +#: FlatCAMApp.py:5293 msgid "Moving to Origin..." msgstr "Umzug zum Ursprung ..." -#: App_Main.py:4582 +#: FlatCAMApp.py:5374 msgid "Jump to ..." msgstr "Springen zu ..." -#: App_Main.py:4583 +#: FlatCAMApp.py:5375 msgid "Enter the coordinates in format X,Y:" msgstr "Geben Sie die Koordinaten im Format X, Y ein:" -#: App_Main.py:4593 +#: FlatCAMApp.py:5385 msgid "Wrong coordinates. Enter coordinates in format: X,Y" msgstr "Falsche Koordinaten. Koordinaten im Format eingeben: X, Y" -#: App_Main.py:4711 +#: FlatCAMApp.py:5463 FlatCAMApp.py:5612 +#: flatcamEditors/FlatCAMExcEditor.py:3624 +#: flatcamEditors/FlatCAMExcEditor.py:3632 +#: flatcamEditors/FlatCAMGeoEditor.py:4349 +#: flatcamEditors/FlatCAMGeoEditor.py:4363 +#: flatcamEditors/FlatCAMGrbEditor.py:1087 +#: flatcamEditors/FlatCAMGrbEditor.py:1204 +#: flatcamEditors/FlatCAMGrbEditor.py:1490 +#: flatcamEditors/FlatCAMGrbEditor.py:1759 +#: flatcamEditors/FlatCAMGrbEditor.py:4622 +#: flatcamEditors/FlatCAMGrbEditor.py:4637 flatcamGUI/FlatCAMGUI.py:3424 +#: flatcamGUI/FlatCAMGUI.py:3436 flatcamTools/ToolAlignObjects.py:393 +#: flatcamTools/ToolAlignObjects.py:415 +msgid "Done." +msgstr "Fertig." + +#: FlatCAMApp.py:5478 FlatCAMApp.py:7724 FlatCAMApp.py:7819 FlatCAMApp.py:7860 +#: FlatCAMApp.py:7901 FlatCAMApp.py:7942 FlatCAMApp.py:7983 FlatCAMApp.py:8027 +#: FlatCAMApp.py:8071 FlatCAMApp.py:8593 FlatCAMApp.py:8597 +#: flatcamTools/ToolProperties.py:116 +msgid "No object selected." +msgstr "Kein Objekt ausgewählt." + +#: FlatCAMApp.py:5497 msgid "Bottom-Left" msgstr "Unten links" -#: App_Main.py:4714 +#: FlatCAMApp.py:5498 flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:131 +#: flatcamTools/ToolCalibration.py:159 +msgid "Top-Left" +msgstr "Oben links" + +#: FlatCAMApp.py:5499 flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:132 +#: flatcamTools/ToolCalibration.py:160 +msgid "Bottom-Right" +msgstr "Unten rechts" + +#: FlatCAMApp.py:5500 msgid "Top-Right" msgstr "Oben rechts" -#: App_Main.py:4735 +#: FlatCAMApp.py:5501 flatcamGUI/ObjectUI.py:2706 +msgid "Center" +msgstr "Center" + +#: FlatCAMApp.py:5521 msgid "Locate ..." msgstr "Lokalisieren ..." -#: App_Main.py:5008 App_Main.py:5085 +#: FlatCAMApp.py:5779 FlatCAMApp.py:5856 msgid "No object is selected. Select an object and try again." msgstr "" "Es ist kein Objekt ausgewählt. Wählen Sie ein Objekt und versuchen Sie es " "erneut." -#: App_Main.py:5111 +#: FlatCAMApp.py:5882 msgid "" "Aborting. The current task will be gracefully closed as soon as possible..." msgstr "" "Abbrechen. Die aktuelle Aufgabe wird so schnell wie möglich ordnungsgemäß " "abgeschlossen ..." -#: App_Main.py:5117 +#: FlatCAMApp.py:5888 msgid "The current task was gracefully closed on user request..." msgstr "" "Die aktuelle Aufgabe wurde auf Benutzeranforderung ordnungsgemäß " "geschlossen ..." -#: App_Main.py:5291 +#: FlatCAMApp.py:5916 flatcamGUI/preferences/PreferencesUIManager.py:905 +#: flatcamGUI/preferences/PreferencesUIManager.py:949 +#: flatcamGUI/preferences/PreferencesUIManager.py:970 +#: flatcamGUI/preferences/PreferencesUIManager.py:1075 +msgid "Preferences" +msgstr "Einstellungen" + +#: FlatCAMApp.py:5981 FlatCAMApp.py:6009 FlatCAMApp.py:6036 FlatCAMApp.py:6056 +#: FlatCAMDB.py:738 FlatCAMDB.py:913 FlatCAMDB.py:2200 FlatCAMDB.py:2418 +#: flatcamObjects/FlatCAMGeometry.py:890 flatcamTools/ToolNCC.py:3963 +#: flatcamTools/ToolNCC.py:4047 flatcamTools/ToolPaint.py:3553 +#: flatcamTools/ToolPaint.py:3638 +msgid "Tools Database" +msgstr "Werkzeugdatenbank" + +#: FlatCAMApp.py:6033 msgid "Tools in Tools Database edited but not saved." msgstr "Werkzeugdatenbank geschlossen ohne zu speichern." -#: App_Main.py:5330 +#: FlatCAMApp.py:6060 flatcamTools/ToolNCC.py:3970 +#: flatcamTools/ToolPaint.py:3560 +msgid "Tool from DB added in Tool Table." +msgstr "Werkzeug aus Werkzeugdatenbank zur Werkzeugtabelle hinzugefügt." + +#: FlatCAMApp.py:6062 msgid "Adding tool from DB is not allowed for this object." msgstr "" "Das Hinzufügen von Werkzeugen aus der Datenbank ist für dieses Objekt nicht " "zulässig." -#: App_Main.py:5348 +#: FlatCAMApp.py:6080 msgid "" "One or more Tools are edited.\n" "Do you want to update the Tools Database?" @@ -17665,113 +764,175 @@ msgstr "" "Ein oder mehrere Werkzeuge wurden geändert.\n" "Möchten Sie die Werkzeugdatenbank aktualisieren?" -#: App_Main.py:5350 +#: FlatCAMApp.py:6082 msgid "Save Tools Database" msgstr "Werkzeugdatenbank speichern" -#: App_Main.py:5404 +#: FlatCAMApp.py:6135 msgid "No object selected to Flip on Y axis." msgstr "Kein Objekt ausgewählt, um auf der Y-Achse zu spiegeln." -#: App_Main.py:5430 +#: FlatCAMApp.py:6161 msgid "Flip on Y axis done." msgstr "Y-Achse spiegeln fertig." -#: App_Main.py:5452 +#: FlatCAMApp.py:6163 FlatCAMApp.py:6211 +#: flatcamEditors/FlatCAMGrbEditor.py:6059 +msgid "Flip action was not executed." +msgstr "Flip-Aktion wurde nicht ausgeführt." + +#: FlatCAMApp.py:6183 msgid "No object selected to Flip on X axis." msgstr "Es wurde kein Objekt zum Spiegeln auf der X-Achse ausgewählt." -#: App_Main.py:5478 +#: FlatCAMApp.py:6209 msgid "Flip on X axis done." msgstr "Flip on X axis done." -#: App_Main.py:5500 +#: FlatCAMApp.py:6231 msgid "No object selected to Rotate." msgstr "Es wurde kein Objekt zum Drehen ausgewählt." -#: App_Main.py:5503 App_Main.py:5554 App_Main.py:5591 +#: FlatCAMApp.py:6234 FlatCAMApp.py:6287 FlatCAMApp.py:6326 msgid "Transform" msgstr "Verwandeln" -#: App_Main.py:5503 App_Main.py:5554 App_Main.py:5591 +#: FlatCAMApp.py:6234 FlatCAMApp.py:6287 FlatCAMApp.py:6326 msgid "Enter the Angle value:" msgstr "Geben Sie den Winkelwert ein:" -#: App_Main.py:5533 +#: FlatCAMApp.py:6265 msgid "Rotation done." msgstr "Rotation abgeschlossen." -#: App_Main.py:5535 +#: FlatCAMApp.py:6267 msgid "Rotation movement was not executed." msgstr "Drehbewegung wurde nicht ausgeführt." -#: App_Main.py:5552 +#: FlatCAMApp.py:6285 msgid "No object selected to Skew/Shear on X axis." msgstr "Auf der X-Achse wurde kein Objekt zum Neigen / Schneiden ausgewählt." -#: App_Main.py:5573 +#: FlatCAMApp.py:6307 msgid "Skew on X axis done." msgstr "Neigung auf der X-Achse." -#: App_Main.py:5589 +#: FlatCAMApp.py:6324 msgid "No object selected to Skew/Shear on Y axis." msgstr "Kein Objekt für Neigung / Schneiden auf der Y-Achse ausgewählt." -#: App_Main.py:5610 +#: FlatCAMApp.py:6346 msgid "Skew on Y axis done." msgstr "Neigung auf der Y-Achse." -#: App_Main.py:5688 +#: FlatCAMApp.py:6497 FlatCAMApp.py:6544 flatcamGUI/FlatCAMGUI.py:503 +#: flatcamGUI/FlatCAMGUI.py:1728 +msgid "Select All" +msgstr "Select All" + +#: FlatCAMApp.py:6501 FlatCAMApp.py:6548 flatcamGUI/FlatCAMGUI.py:505 +msgid "Deselect All" +msgstr "Alle abwählen" + +#: FlatCAMApp.py:6564 +msgid "All objects are selected." +msgstr "Alle Objekte werden ausgewählt." + +#: FlatCAMApp.py:6574 +msgid "Objects selection is cleared." +msgstr "Die Objektauswahl wird gelöscht." + +#: FlatCAMApp.py:6594 flatcamGUI/FlatCAMGUI.py:1721 +msgid "Grid On/Off" +msgstr "Raster ein/aus" + +#: FlatCAMApp.py:6606 flatcamEditors/FlatCAMGeoEditor.py:939 +#: flatcamEditors/FlatCAMGrbEditor.py:2583 +#: flatcamEditors/FlatCAMGrbEditor.py:5641 flatcamGUI/ObjectUI.py:1595 +#: flatcamTools/ToolDblSided.py:192 flatcamTools/ToolDblSided.py:425 +#: flatcamTools/ToolNCC.py:294 flatcamTools/ToolNCC.py:631 +#: flatcamTools/ToolPaint.py:277 flatcamTools/ToolPaint.py:676 +#: flatcamTools/ToolSolderPaste.py:122 flatcamTools/ToolSolderPaste.py:597 +#: flatcamTools/ToolTransform.py:478 +msgid "Add" +msgstr "Hinzufügen" + +#: FlatCAMApp.py:6608 flatcamEditors/FlatCAMGrbEditor.py:2588 +#: flatcamEditors/FlatCAMGrbEditor.py:2736 flatcamGUI/FlatCAMGUI.py:751 +#: flatcamGUI/FlatCAMGUI.py:1074 flatcamGUI/FlatCAMGUI.py:2141 +#: flatcamGUI/FlatCAMGUI.py:2284 flatcamGUI/FlatCAMGUI.py:2777 +#: flatcamGUI/ObjectUI.py:1623 flatcamObjects/FlatCAMGeometry.py:505 +#: flatcamTools/ToolNCC.py:316 flatcamTools/ToolNCC.py:637 +#: flatcamTools/ToolPaint.py:299 flatcamTools/ToolPaint.py:682 +#: flatcamTools/ToolSolderPaste.py:128 flatcamTools/ToolSolderPaste.py:600 +msgid "Delete" +msgstr "Löschen" + +#: FlatCAMApp.py:6624 msgid "New Grid ..." msgstr "Neues Raster ..." -#: App_Main.py:5689 +#: FlatCAMApp.py:6625 msgid "Enter a Grid Value:" msgstr "Geben Sie einen Rasterwert ein:" -#: App_Main.py:5697 App_Main.py:5721 +#: FlatCAMApp.py:6633 FlatCAMApp.py:6660 msgid "Please enter a grid value with non-zero value, in Float format." msgstr "" "Bitte geben Sie im Float-Format einen Rasterwert mit einem Wert ungleich " "Null ein." -#: App_Main.py:5702 +#: FlatCAMApp.py:6639 msgid "New Grid added" msgstr "Neues Raster" -#: App_Main.py:5704 +#: FlatCAMApp.py:6642 msgid "Grid already exists" msgstr "Netz existiert bereits" -#: App_Main.py:5706 +#: FlatCAMApp.py:6645 msgid "Adding New Grid cancelled" msgstr "Neues Netz wurde abgebrochen" -#: App_Main.py:5727 +#: FlatCAMApp.py:6667 msgid " Grid Value does not exist" msgstr " Rasterwert existiert nicht" -#: App_Main.py:5729 +#: FlatCAMApp.py:6670 msgid "Grid Value deleted" msgstr "Rasterwert gelöscht" -#: App_Main.py:5731 +#: FlatCAMApp.py:6673 msgid "Delete Grid value cancelled" msgstr "Rasterwert löschen abgebrochen" -#: App_Main.py:5737 +#: FlatCAMApp.py:6679 msgid "Key Shortcut List" msgstr "Tastenkürzel Liste" -#: App_Main.py:5771 +#: FlatCAMApp.py:6713 msgid " No object selected to copy it's name" msgstr " Kein Objekt zum Kopieren des Namens ausgewählt" -#: App_Main.py:5775 +#: FlatCAMApp.py:6717 msgid "Name copied on clipboard ..." msgstr "Name in Zwischenablage kopiert ..." -#: App_Main.py:6408 +#: FlatCAMApp.py:6930 flatcamEditors/FlatCAMGrbEditor.py:4554 +msgid "Coordinates copied to clipboard." +msgstr "Koordinaten in die Zwischenablage kopiert." + +#: FlatCAMApp.py:7167 FlatCAMApp.py:7173 FlatCAMApp.py:7179 FlatCAMApp.py:7185 +#: flatcamObjects/ObjectCollection.py:922 +#: flatcamObjects/ObjectCollection.py:928 +#: flatcamObjects/ObjectCollection.py:934 +#: flatcamObjects/ObjectCollection.py:940 +#: flatcamObjects/ObjectCollection.py:946 +#: flatcamObjects/ObjectCollection.py:952 +msgid "selected" +msgstr "ausgewählt" + +#: FlatCAMApp.py:7340 msgid "" "There are files/objects opened in FlatCAM.\n" "Creating a New project will delete them.\n" @@ -17781,12 +942,17 @@ msgstr "" "Wenn Sie ein neues Projekt erstellen, werden diese gelöscht.\n" "Möchten Sie das Projekt speichern?" -#: App_Main.py:6431 +#: FlatCAMApp.py:7361 msgid "New Project created" msgstr "Neues Projekt erstellt" -#: App_Main.py:6603 App_Main.py:6642 App_Main.py:6686 App_Main.py:6756 -#: App_Main.py:7550 App_Main.py:8763 App_Main.py:8825 +#: FlatCAMApp.py:7519 FlatCAMApp.py:7523 flatcamGUI/FlatCAMGUI.py:836 +#: flatcamGUI/FlatCAMGUI.py:2544 +msgid "Open Gerber" +msgstr "Gerber öffnen" + +#: FlatCAMApp.py:7528 FlatCAMApp.py:7565 FlatCAMApp.py:7607 FlatCAMApp.py:7677 +#: FlatCAMApp.py:8462 FlatCAMApp.py:9675 FlatCAMApp.py:9737 msgid "" "Canvas initialization started.\n" "Canvas initialization finished in" @@ -17794,296 +960,351 @@ msgstr "" "Die Canvas-Initialisierung wurde gestartet.\n" "Canvas-Initialisierung abgeschlossen in" -#: App_Main.py:6605 +#: FlatCAMApp.py:7530 msgid "Opening Gerber file." msgstr "Gerber-Datei öffnen." -#: App_Main.py:6644 +#: FlatCAMApp.py:7557 FlatCAMApp.py:7561 flatcamGUI/FlatCAMGUI.py:838 +#: flatcamGUI/FlatCAMGUI.py:2546 +msgid "Open Excellon" +msgstr "Excellon öffnen" + +#: FlatCAMApp.py:7567 msgid "Opening Excellon file." msgstr "Excellon-Datei öffnen." -#: App_Main.py:6675 App_Main.py:6680 +#: FlatCAMApp.py:7598 FlatCAMApp.py:7602 msgid "Open G-Code" msgstr "G-Code öffnen" -#: App_Main.py:6688 +#: FlatCAMApp.py:7609 msgid "Opening G-Code file." msgstr "Öffnen der G-Code-Datei." -#: App_Main.py:6747 App_Main.py:6751 +#: FlatCAMApp.py:7632 FlatCAMApp.py:7635 flatcamGUI/FlatCAMGUI.py:1730 +msgid "Open Project" +msgstr "Projekt öffnen" + +#: FlatCAMApp.py:7668 FlatCAMApp.py:7672 msgid "Open HPGL2" msgstr "HPGL2 öffnen" -#: App_Main.py:6758 +#: FlatCAMApp.py:7679 msgid "Opening HPGL2 file." msgstr "HPGL2-Datei öffnen." -#: App_Main.py:6781 App_Main.py:6784 +#: FlatCAMApp.py:7702 FlatCAMApp.py:7705 msgid "Open Configuration File" msgstr "Einstellungsdatei öffne" -#: App_Main.py:6804 App_Main.py:7158 +#: FlatCAMApp.py:7725 FlatCAMApp.py:8072 msgid "Please Select a Geometry object to export" msgstr "Bitte wählen Sie ein Geometrieobjekt zum Exportieren aus" -#: App_Main.py:6820 +#: FlatCAMApp.py:7739 msgid "Only Geometry, Gerber and CNCJob objects can be used." msgstr "Es können nur Geometrie-, Gerber- und CNCJob-Objekte verwendet werden." -#: App_Main.py:6865 +#: FlatCAMApp.py:7752 FlatCAMApp.py:7756 flatcamTools/ToolQRCode.py:829 +#: flatcamTools/ToolQRCode.py:833 +msgid "Export SVG" +msgstr "SVG exportieren" + +#: FlatCAMApp.py:7781 msgid "Data must be a 3D array with last dimension 3 or 4" msgstr "Daten müssen ein 3D-Array mit der letzten Dimension 3 oder 4 sein" -#: App_Main.py:6871 App_Main.py:6875 +#: FlatCAMApp.py:7787 FlatCAMApp.py:7791 msgid "Export PNG Image" msgstr "PNG-Bild exportieren" -#: App_Main.py:6908 App_Main.py:7118 +#: FlatCAMApp.py:7824 FlatCAMApp.py:8032 msgid "Failed. Only Gerber objects can be saved as Gerber files..." msgstr "" "Fehlgeschlagen. Nur Gerber-Objekte können als Gerber-Dateien gespeichert " "werden ..." -#: App_Main.py:6920 +#: FlatCAMApp.py:7836 msgid "Save Gerber source file" msgstr "Gerber-Quelldatei speichern" -#: App_Main.py:6949 +#: FlatCAMApp.py:7865 msgid "Failed. Only Script objects can be saved as TCL Script files..." msgstr "" "Gescheitert. Nur Skriptobjekte können als TCL-Skriptdateien gespeichert " "werden ..." -#: App_Main.py:6961 +#: FlatCAMApp.py:7877 msgid "Save Script source file" msgstr "Speichern Sie die Quelldatei des Skripts" -#: App_Main.py:6990 +#: FlatCAMApp.py:7906 msgid "Failed. Only Document objects can be saved as Document files..." msgstr "" "Gescheitert. Nur Dokumentobjekte können als Dokumentdateien gespeichert " "werden ..." -#: App_Main.py:7002 +#: FlatCAMApp.py:7918 msgid "Save Document source file" msgstr "Speichern Sie die Quelldatei des Dokuments" -#: App_Main.py:7032 App_Main.py:7074 App_Main.py:8033 +#: FlatCAMApp.py:7947 FlatCAMApp.py:7988 FlatCAMApp.py:8945 msgid "Failed. Only Excellon objects can be saved as Excellon files..." msgstr "" "Fehlgeschlagen. Nur Excellon-Objekte können als Excellon-Dateien gespeichert " "werden ..." -#: App_Main.py:7040 App_Main.py:7045 +#: FlatCAMApp.py:7955 FlatCAMApp.py:7959 msgid "Save Excellon source file" msgstr "Speichern Sie die Excellon-Quelldatei" -#: App_Main.py:7082 App_Main.py:7086 +#: FlatCAMApp.py:7996 FlatCAMApp.py:8000 msgid "Export Excellon" msgstr "Excellon exportieren" -#: App_Main.py:7126 App_Main.py:7130 +#: FlatCAMApp.py:8040 FlatCAMApp.py:8044 msgid "Export Gerber" msgstr "Gerber exportieren" -#: App_Main.py:7170 +#: FlatCAMApp.py:8082 msgid "Only Geometry objects can be used." msgstr "Es können nur Geometrieobjekte verwendet werden." -#: App_Main.py:7186 App_Main.py:7190 +#: FlatCAMApp.py:8096 FlatCAMApp.py:8100 msgid "Export DXF" msgstr "DXF exportieren" -#: App_Main.py:7215 App_Main.py:7218 +#: FlatCAMApp.py:8125 FlatCAMApp.py:8128 msgid "Import SVG" msgstr "SVG importieren" -#: App_Main.py:7246 App_Main.py:7250 +#: FlatCAMApp.py:8156 FlatCAMApp.py:8160 msgid "Import DXF" msgstr "Importieren Sie DXF" -#: App_Main.py:7300 +#: FlatCAMApp.py:8210 msgid "Viewing the source code of the selected object." msgstr "Anzeigen des Quellcodes des ausgewählten Objekts." -#: App_Main.py:7307 App_Main.py:7311 +#: FlatCAMApp.py:8211 flatcamObjects/FlatCAMCNCJob.py:548 +#: flatcamObjects/FlatCAMScript.py:134 +msgid "Loading..." +msgstr "Wird geladen..." + +#: FlatCAMApp.py:8217 FlatCAMApp.py:8221 msgid "Select an Gerber or Excellon file to view it's source file." msgstr "" "Wählen Sie eine Gerber- oder Excellon-Datei aus, um die Quelldatei " "anzuzeigen." -#: App_Main.py:7325 +#: FlatCAMApp.py:8235 msgid "Source Editor" msgstr "Quelleditor" -#: App_Main.py:7365 App_Main.py:7372 +#: FlatCAMApp.py:8275 FlatCAMApp.py:8282 msgid "There is no selected object for which to see it's source file code." msgstr "" "Es gibt kein ausgewähltes Objekt, für das man seinen Quelldateien sehen kann." -#: App_Main.py:7384 +#: FlatCAMApp.py:8294 msgid "Failed to load the source code for the selected object" msgstr "Fehler beim Laden des Quellcodes für das ausgewählte Objekt" -#: App_Main.py:7420 +#: FlatCAMApp.py:8308 flatcamObjects/FlatCAMCNCJob.py:562 +msgid "Code Editor" +msgstr "Code-Editor" + +#: FlatCAMApp.py:8330 msgid "Go to Line ..." msgstr "Gehe zur Linie ..." -#: App_Main.py:7421 +#: FlatCAMApp.py:8331 msgid "Line:" msgstr "Linie:" -#: App_Main.py:7448 +#: FlatCAMApp.py:8360 msgid "New TCL script file created in Code Editor." msgstr "Neue TCL-Skriptdatei, die im Code-Editor erstellt wurde." -#: App_Main.py:7484 App_Main.py:7486 App_Main.py:7522 App_Main.py:7524 +#: FlatCAMApp.py:8396 FlatCAMApp.py:8398 FlatCAMApp.py:8434 FlatCAMApp.py:8436 msgid "Open TCL script" msgstr "Öffnen Sie das TCL-Skript" -#: App_Main.py:7552 +#: FlatCAMApp.py:8464 msgid "Executing ScriptObject file." msgstr "Ausführen der ScriptObject-Datei." -#: App_Main.py:7560 App_Main.py:7563 +#: FlatCAMApp.py:8472 FlatCAMApp.py:8475 msgid "Run TCL script" msgstr "Führen Sie das TCL-Skript aus" -#: App_Main.py:7586 +#: FlatCAMApp.py:8498 msgid "TCL script file opened in Code Editor and executed." msgstr "TCL-Skriptdatei im Code-Editor geöffnet und ausgeführt." -#: App_Main.py:7637 App_Main.py:7643 +#: FlatCAMApp.py:8549 FlatCAMApp.py:8555 msgid "Save Project As ..." msgstr "Projekt speichern als ..." -#: App_Main.py:7678 +#: FlatCAMApp.py:8551 flatcamGUI/FlatCAMGUI.py:1134 +#: flatcamGUI/FlatCAMGUI.py:2176 +msgid "Project" +msgstr "Projekt" + +#: FlatCAMApp.py:8590 msgid "FlatCAM objects print" msgstr "FlatCAM-Objekte werden gedruckt" -#: App_Main.py:7691 App_Main.py:7698 +#: FlatCAMApp.py:8603 FlatCAMApp.py:8610 msgid "Save Object as PDF ..." msgstr "Objekt als PDF speichern ..." -#: App_Main.py:7707 +#: FlatCAMApp.py:8619 msgid "Printing PDF ... Please wait." msgstr "PDF wird gedruckt ... Bitte warten." -#: App_Main.py:7886 +#: FlatCAMApp.py:8798 msgid "PDF file saved to" msgstr "PDF-Datei gespeichert in" -#: App_Main.py:7911 +#: FlatCAMApp.py:8823 msgid "Exporting SVG" msgstr "SVG exportieren" -#: App_Main.py:7954 +#: FlatCAMApp.py:8866 msgid "SVG file exported to" msgstr "SVG-Datei exportiert nach" -#: App_Main.py:7980 +#: FlatCAMApp.py:8892 msgid "" "Save cancelled because source file is empty. Try to export the Gerber file." msgstr "" "Speichern abgebrochen, da die Quelldatei leer ist. Versuchen Sie einen " "Export der Gerber Datei." -#: App_Main.py:8127 +#: FlatCAMApp.py:9039 msgid "Excellon file exported to" msgstr "Excellon-Datei exportiert nach" -#: App_Main.py:8136 +#: FlatCAMApp.py:9048 msgid "Exporting Excellon" msgstr "Excellon exportieren" -#: App_Main.py:8141 App_Main.py:8148 +#: FlatCAMApp.py:9053 FlatCAMApp.py:9060 msgid "Could not export Excellon file." msgstr "Excellon-Datei konnte nicht exportiert werden." -#: App_Main.py:8263 +#: FlatCAMApp.py:9175 msgid "Gerber file exported to" msgstr "Gerberdatei exportiert nach" -#: App_Main.py:8271 +#: FlatCAMApp.py:9183 msgid "Exporting Gerber" msgstr "Gerber exportieren" -#: App_Main.py:8276 App_Main.py:8283 +#: FlatCAMApp.py:9188 FlatCAMApp.py:9195 msgid "Could not export Gerber file." msgstr "Gerber-Datei konnte nicht exportiert werden." -#: App_Main.py:8318 +#: FlatCAMApp.py:9230 msgid "DXF file exported to" msgstr "DXF-Datei exportiert nach" -#: App_Main.py:8324 +#: FlatCAMApp.py:9236 msgid "Exporting DXF" msgstr "DXF exportieren" -#: App_Main.py:8329 App_Main.py:8336 +#: FlatCAMApp.py:9241 FlatCAMApp.py:9248 msgid "Could not export DXF file." msgstr "DXF-Datei konnte nicht exportiert werden." -#: App_Main.py:8370 +#: FlatCAMApp.py:9272 FlatCAMApp.py:9319 flatcamTools/ToolImage.py:277 +msgid "" +"Not supported type is picked as parameter. Only Geometry and Gerber are " +"supported" +msgstr "" +"Nicht unterstützte Art wird als Parameter ausgewählt. Nur Geometrie und " +"Gerber werden unterstützt" + +#: FlatCAMApp.py:9282 msgid "Importing SVG" msgstr "SVG importieren" -#: App_Main.py:8378 App_Main.py:8424 +#: FlatCAMApp.py:9290 FlatCAMApp.py:9336 msgid "Import failed." msgstr "Import fehlgeschlagen." -#: App_Main.py:8416 +#: FlatCAMApp.py:9297 FlatCAMApp.py:9343 FlatCAMApp.py:9407 FlatCAMApp.py:9474 +#: FlatCAMApp.py:9540 FlatCAMApp.py:9605 FlatCAMApp.py:9662 +#: flatcamTools/ToolImage.py:297 flatcamTools/ToolPDF.py:225 +msgid "Opened" +msgstr "Geöffnet" + +#: FlatCAMApp.py:9328 msgid "Importing DXF" msgstr "DXF importieren" -#: App_Main.py:8457 App_Main.py:8652 App_Main.py:8717 +#: FlatCAMApp.py:9369 FlatCAMApp.py:9564 FlatCAMApp.py:9629 msgid "Failed to open file" msgstr "Datei konnte nicht geöffnet werden" -#: App_Main.py:8460 App_Main.py:8655 App_Main.py:8720 +#: FlatCAMApp.py:9372 FlatCAMApp.py:9567 FlatCAMApp.py:9632 msgid "Failed to parse file" msgstr "Datei konnte nicht analysiert werden" -#: App_Main.py:8472 +#: FlatCAMApp.py:9384 msgid "Object is not Gerber file or empty. Aborting object creation." msgstr "" "Objekt ist keine Gerberdatei oder leer. Objekterstellung wird abgebrochen." -#: App_Main.py:8477 +#: FlatCAMApp.py:9389 msgid "Opening Gerber" msgstr "Gerber öffnen" -#: App_Main.py:8488 +#: FlatCAMApp.py:9400 msgid "Open Gerber failed. Probable not a Gerber file." msgstr "Open Gerber ist fehlgeschlagen. Wahrscheinlich keine Gerber-Datei." -#: App_Main.py:8524 +#: FlatCAMApp.py:9432 flatcamTools/ToolPcbWizard.py:424 +msgid "This is not Excellon file." +msgstr "Dies ist keine Excellon-Datei." + +#: FlatCAMApp.py:9436 msgid "Cannot open file" msgstr "Kann Datei nicht öffnen" -#: App_Main.py:8545 +#: FlatCAMApp.py:9454 flatcamTools/ToolPDF.py:275 +#: flatcamTools/ToolPcbWizard.py:445 +msgid "No geometry found in file" +msgstr "Keine Geometrie in der Datei gefunden" + +#: FlatCAMApp.py:9457 msgid "Opening Excellon." msgstr "Eröffnung Excellon." -#: App_Main.py:8555 +#: FlatCAMApp.py:9467 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:8587 +#: FlatCAMApp.py:9499 msgid "Reading GCode file" msgstr "GCode-Datei wird gelesen" -#: App_Main.py:8600 +#: FlatCAMApp.py:9505 +msgid "Failed to open" +msgstr "Gescheitert zu öffnen" + +#: FlatCAMApp.py:9512 msgid "This is not GCODE" msgstr "Dies ist kein GCODE" -#: App_Main.py:8605 +#: FlatCAMApp.py:9517 msgid "Opening G-Code." msgstr "G-Code öffnen." -#: App_Main.py:8618 +#: FlatCAMApp.py:9530 msgid "" "Failed to create CNCJob Object. Probable not a GCode file. Try to load it " "from File menu.\n" @@ -18095,123 +1316,127 @@ msgstr "" "Der Versuch, ein FlatCAM CNCJob-Objekt aus einer G-Code-Datei zu erstellen, " "ist während der Verarbeitung fehlgeschlagen" -#: App_Main.py:8674 +#: FlatCAMApp.py:9586 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:8679 +#: FlatCAMApp.py:9591 msgid "Opening HPGL2" msgstr "HPGL2 öffnen" -#: App_Main.py:8686 +#: FlatCAMApp.py:9598 msgid " Open HPGL2 failed. Probable not a HPGL2 file." msgstr " HPGL2 öffnen ist fehlgeschlagen. Wahrscheinlich keine HPGL2-Datei." -#: App_Main.py:8712 +#: FlatCAMApp.py:9624 msgid "TCL script file opened in Code Editor." msgstr "TCL-Skriptdatei im Code-Editor geöffnet." -#: App_Main.py:8732 +#: FlatCAMApp.py:9644 msgid "Opening TCL Script..." msgstr "TCL-Skript wird geöffnet ..." -#: App_Main.py:8743 +#: FlatCAMApp.py:9655 msgid "Failed to open TCL Script." msgstr "TCL-Skript konnte nicht geöffnet werden." -#: App_Main.py:8765 +#: FlatCAMApp.py:9677 msgid "Opening FlatCAM Config file." msgstr "Öffnen der FlatCAM Config-Datei." -#: App_Main.py:8793 +#: FlatCAMApp.py:9705 msgid "Failed to open config file" msgstr "Fehler beim Öffnen der Konfigurationsdatei" -#: App_Main.py:8822 +#: FlatCAMApp.py:9734 msgid "Loading Project ... Please Wait ..." msgstr "Projekt wird geladen ... Bitte warten ..." -#: App_Main.py:8827 +#: FlatCAMApp.py:9739 msgid "Opening FlatCAM Project file." msgstr "Öffnen der FlatCAM-Projektdatei." -#: App_Main.py:8842 App_Main.py:8846 App_Main.py:8863 +#: FlatCAMApp.py:9754 FlatCAMApp.py:9758 FlatCAMApp.py:9775 msgid "Failed to open project file" msgstr "Projektdatei konnte nicht geöffnet werden" -#: App_Main.py:8900 +#: FlatCAMApp.py:9812 msgid "Loading Project ... restoring" msgstr "Projekt wird geladen ... wird wiederhergestellt" -#: App_Main.py:8910 +#: FlatCAMApp.py:9822 msgid "Project loaded from" msgstr "Projekt geladen von" -#: App_Main.py:8936 +#: FlatCAMApp.py:9846 msgid "Redrawing all objects" msgstr "Alle Objekte neu zeichnen" -#: App_Main.py:9024 +#: FlatCAMApp.py:9934 msgid "Failed to load recent item list." msgstr "Fehler beim Laden der letzten Elementliste." -#: App_Main.py:9031 +#: FlatCAMApp.py:9941 msgid "Failed to parse recent item list." msgstr "Liste der letzten Artikel konnte nicht analysiert werden." -#: App_Main.py:9041 +#: FlatCAMApp.py:9951 msgid "Failed to load recent projects item list." msgstr "Fehler beim Laden der Artikelliste der letzten Projekte." -#: App_Main.py:9048 +#: FlatCAMApp.py:9958 msgid "Failed to parse recent project item list." msgstr "" "Fehler beim Analysieren der Liste der zuletzt verwendeten Projektelemente." -#: App_Main.py:9109 +#: FlatCAMApp.py:10019 msgid "Clear Recent projects" msgstr "Letzte Projekte löschen" -#: App_Main.py:9133 +#: FlatCAMApp.py:10043 msgid "Clear Recent files" msgstr "Letzte Dateien löschen" -#: App_Main.py:9235 +#: FlatCAMApp.py:10065 flatcamGUI/FlatCAMGUI.py:1363 +msgid "Shortcut Key List" +msgstr " Liste der Tastenkombinationen " + +#: FlatCAMApp.py:10145 msgid "Selected Tab - Choose an Item from Project Tab" msgstr "" "Ausgewählte Registerkarte - Wählen Sie ein Element auf der Registerkarte " "\"Projekt\" aus" -#: App_Main.py:9236 +#: FlatCAMApp.py:10146 msgid "Details" msgstr "Einzelheiten" -#: App_Main.py:9238 -msgid "The normal flow when working with the application is the following:" -msgstr "Der normale Ablauf bei der Arbeit mit der Anwendung ist folgender:" +#: FlatCAMApp.py:10148 +msgid "The normal flow when working in FlatCAM is the following:" +msgstr "Der normale Ablauf beim Arbeiten in FlatCAM ist der folgende:" -#: App_Main.py:9239 +#: FlatCAMApp.py:10149 msgid "" "Load/Import a Gerber, Excellon, Gcode, DXF, Raster Image or SVG file into " -"the application using either the toolbars, key shortcuts or even dragging " -"and dropping the files on the AppGUI." +"FlatCAM using either the toolbars, key shortcuts or even dragging and " +"dropping the files on the GUI." msgstr "" -"Laden / Importieren einer Gerber-, Excellon-, Gcode-, DXF-, Rasterbild- oder " -"SVG-Datei in die Anwendung mithilfe der Symbolleisten, Tastenkombinationen " -"oder sogar Ziehen und Ablegen der Dateien auf der AppGUI." +"Laden / Importieren Sie eine Gerber-, Excellon-, Gcode-, DXF-, Rasterbild- " +"oder SVG-Datei mithilfe der Symbolleisten, Tastenkombinationen oder durch " +"Ziehen und Ablegen der Dateien auf der GUI in FlatCAM." -#: App_Main.py:9242 +#: FlatCAMApp.py:10152 msgid "" -"You can also load a project by double clicking on the project file, drag and " -"drop of the file into the AppGUI or through the menu (or toolbar) actions " -"offered within the app." +"You can also load a FlatCAM project by double clicking on the project file, " +"drag and drop of the file into the FLATCAM GUI or through the menu (or " +"toolbar) actions offered within the app." msgstr "" -"Sie können ein Projekt auch laden, indem Sie auf die Projektdatei " -"doppelklicken, die Datei per Drag & Drop in die AppGUI ziehen oder über die " -"in der App angebotenen Menü- (oder Symbolleisten-) Aktionen." +"Sie können ein FlatCAM-Projekt auch laden, indem Sie auf die Projektdatei " +"doppelklicken, sie per Drag & Drop in die FLATCAM-Benutzeroberfläche ziehen " +"oder über die in der App angebotenen Menü- (oder Symbolleisten-) Aktionen." -#: App_Main.py:9245 +#: FlatCAMApp.py:10155 msgid "" "Once an object is available in the Project Tab, by selecting it and then " "focusing on SELECTED TAB (more simpler is to double click the object name in " @@ -18224,7 +1449,7 @@ msgstr "" "AUSGEWÄHLTES TAB mit den Objekteigenschaften entsprechend der Art " "aktualisiert: Gerber, Excellon-, Geometrie- oder CNCJob-Objekt." -#: App_Main.py:9249 +#: FlatCAMApp.py:10159 msgid "" "If the selection of the object is done on the canvas by single click " "instead, and the SELECTED TAB is in focus, again the object properties will " @@ -18239,7 +1464,7 @@ msgstr "" "doppelklicken, um das Ausgewählte Registerkarte zu öffnen und es zu füllen, " "selbst wenn es unscharf war." -#: App_Main.py:9253 +#: FlatCAMApp.py:10163 msgid "" "You can change the parameters in this screen and the flow direction is like " "this:" @@ -18247,7 +1472,7 @@ msgstr "" "Sie können die Parameter in diesem Bildschirm ändern und die Flussrichtung " "ist wie folgt:" -#: App_Main.py:9254 +#: FlatCAMApp.py:10164 msgid "" "Gerber/Excellon Object --> Change Parameter --> Generate Geometry --> " "Geometry Object --> Add tools (change param in Selected Tab) --> Generate " @@ -18260,7 +1485,7 @@ msgstr "" "überprüfen (über CNC bearbeiten) Code) und / oder GCode anhängen / " "voranstellen (ebenfalls in Ausgewählte Registerkarte) -> GCode speichern." -#: App_Main.py:9258 +#: FlatCAMApp.py:10168 msgid "" "A list of key shortcuts is available through an menu entry in Help --> " "Shortcuts List or through its own key shortcut: F3." @@ -18269,33 +1494,33 @@ msgstr "" "der Hilfe -> Liste der Tastenkombinationen oder über eine eigene " "Tastenkombination: F3." -#: App_Main.py:9322 +#: FlatCAMApp.py:10232 msgid "Failed checking for latest version. Could not connect." msgstr "" "Fehler bei der Suche nach der neuesten Version. Konnte keine Verbindung " "herstellen." -#: App_Main.py:9329 +#: FlatCAMApp.py:10239 msgid "Could not parse information about latest version." msgstr "Informationen zur neuesten Version konnten nicht analysiert werden." -#: App_Main.py:9339 +#: FlatCAMApp.py:10249 msgid "FlatCAM is up to date!" msgstr "FlatCAM ist auf dem neuesten Version!" -#: App_Main.py:9344 +#: FlatCAMApp.py:10254 msgid "Newer Version Available" msgstr "Neuere Version verfügbar" -#: App_Main.py:9346 +#: FlatCAMApp.py:10256 msgid "There is a newer version of FlatCAM available for download:" msgstr "Es gibt eine neuere Version von FlatCAM zum Download:" -#: App_Main.py:9350 +#: FlatCAMApp.py:10260 msgid "info" msgstr "Info" -#: App_Main.py:9378 +#: FlatCAMApp.py:10288 msgid "" "OpenGL canvas initialization failed. HW or HW configuration not supported." "Change the graphic engine to Legacy(2D) in Edit -> Preferences -> General " @@ -18307,75 +1532,129 @@ msgstr "" "Einstellungen -> Registerkarte Allgemein in Legacy (2D).\n" "\n" -#: App_Main.py:9456 +#: FlatCAMApp.py:10367 msgid "All plots disabled." msgstr "Alle Diagramme sind deaktiviert." -#: App_Main.py:9463 +#: FlatCAMApp.py:10374 msgid "All non selected plots disabled." msgstr "Alle nicht ausgewählten Diagramme sind deaktiviert." -#: App_Main.py:9470 +#: FlatCAMApp.py:10381 msgid "All plots enabled." msgstr "Alle Diagramme aktiviert." -#: App_Main.py:9476 +#: FlatCAMApp.py:10387 msgid "Selected plots enabled..." msgstr "Ausgewählte Diagramme aktiviert ..." -#: App_Main.py:9484 +#: FlatCAMApp.py:10395 msgid "Selected plots disabled..." msgstr "Ausgewählte Diagramme deaktiviert ..." -#: App_Main.py:9517 +#: FlatCAMApp.py:10428 msgid "Enabling plots ..." msgstr "Diagramm aktivieren..." -#: App_Main.py:9566 +#: FlatCAMApp.py:10480 msgid "Disabling plots ..." msgstr "Diagramm deaktivieren..." -#: App_Main.py:9589 +#: FlatCAMApp.py:10503 msgid "Working ..." msgstr "Arbeiten ..." -#: App_Main.py:9698 +#: FlatCAMApp.py:10558 flatcamGUI/FlatCAMGUI.py:703 +msgid "Red" +msgstr "Rote" + +#: FlatCAMApp.py:10560 flatcamGUI/FlatCAMGUI.py:706 +msgid "Blue" +msgstr "Blau" + +#: FlatCAMApp.py:10563 flatcamGUI/FlatCAMGUI.py:709 +msgid "Yellow" +msgstr "Gelb" + +#: FlatCAMApp.py:10565 flatcamGUI/FlatCAMGUI.py:712 +msgid "Green" +msgstr "Grün" + +#: FlatCAMApp.py:10567 flatcamGUI/FlatCAMGUI.py:715 +msgid "Purple" +msgstr "Lila" + +#: FlatCAMApp.py:10569 flatcamGUI/FlatCAMGUI.py:718 +msgid "Brown" +msgstr "Braun" + +#: FlatCAMApp.py:10571 FlatCAMApp.py:10627 flatcamGUI/FlatCAMGUI.py:721 +msgid "White" +msgstr "Weiß" + +#: FlatCAMApp.py:10573 flatcamGUI/FlatCAMGUI.py:724 +msgid "Black" +msgstr "Schwarz" + +#: FlatCAMApp.py:10576 flatcamGUI/FlatCAMGUI.py:729 +msgid "Custom" +msgstr "Maßgeschn." + +#: FlatCAMApp.py:10586 flatcamGUI/FlatCAMGUI.py:737 +msgid "Default" +msgstr "Standard" + +#: FlatCAMApp.py:10610 flatcamGUI/FlatCAMGUI.py:734 +msgid "Opacity" +msgstr "Opazität" + +#: FlatCAMApp.py:10612 msgid "Set alpha level ..." msgstr "Alpha-Level einstellen ..." -#: App_Main.py:9752 +#: FlatCAMApp.py:10612 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:131 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:133 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:220 +#: flatcamTools/ToolExtractDrills.py:164 flatcamTools/ToolExtractDrills.py:285 +#: flatcamTools/ToolPunchGerber.py:192 flatcamTools/ToolPunchGerber.py:308 +#: flatcamTools/ToolTransform.py:357 +msgid "Value" +msgstr "Wert" + +#: FlatCAMApp.py:10666 msgid "Saving FlatCAM Project" msgstr "FlatCAM-Projekt speichern" -#: App_Main.py:9773 App_Main.py:9809 +#: FlatCAMApp.py:10687 FlatCAMApp.py:10723 msgid "Project saved to" msgstr "Projekt gespeichert in" -#: App_Main.py:9780 +#: FlatCAMApp.py:10694 msgid "The object is used by another application." msgstr "Das Objekt wird von einer anderen Anwendung verwendet." -#: App_Main.py:9794 +#: FlatCAMApp.py:10708 msgid "Failed to verify project file" msgstr "Fehler beim Überprüfen der Projektdatei" -#: App_Main.py:9794 App_Main.py:9802 App_Main.py:9812 +#: FlatCAMApp.py:10708 FlatCAMApp.py:10716 FlatCAMApp.py:10726 msgid "Retry to save it." msgstr "Versuchen Sie erneut, es zu speichern." -#: App_Main.py:9802 App_Main.py:9812 +#: FlatCAMApp.py:10716 FlatCAMApp.py:10726 msgid "Failed to parse saved project file" msgstr "Fehler beim Parsen der Projektdatei" -#: Bookmark.py:57 Bookmark.py:84 +#: FlatCAMBookmark.py:57 FlatCAMBookmark.py:84 msgid "Title" msgstr "Titel" -#: Bookmark.py:58 Bookmark.py:88 +#: FlatCAMBookmark.py:58 FlatCAMBookmark.py:88 msgid "Web Link" msgstr "Weblink" -#: Bookmark.py:62 +#: FlatCAMBookmark.py:62 msgid "" "Index.\n" "The rows in gray color will populate the Bookmarks menu.\n" @@ -18385,7 +1664,7 @@ msgstr "" "Die grauen Zeilen füllen das Lesezeichen-Menü.\n" "Die Anzahl der grauen Zeilen wird in den Einstellungen festgelegt." -#: Bookmark.py:66 +#: FlatCAMBookmark.py:66 msgid "" "Description of the link that is set as an menu action.\n" "Try to keep it short because it is installed as a menu item." @@ -18393,123 +1672,1038 @@ msgstr "" "Beschreibung des Links, der als Menüaktion festgelegt wird.\n" "Versuchen Sie es kurz zu halten, da es als Menüelement installiert ist." -#: Bookmark.py:69 +#: FlatCAMBookmark.py:69 msgid "Web Link. E.g: https://your_website.org " msgstr "Weblink. ZB: https://your_website.org " -#: Bookmark.py:78 +#: FlatCAMBookmark.py:78 msgid "New Bookmark" msgstr "Neues Lesezeichen" -#: Bookmark.py:97 +#: FlatCAMBookmark.py:97 msgid "Add Entry" msgstr "Eintrag hinzufügen" -#: Bookmark.py:98 +#: FlatCAMBookmark.py:98 msgid "Remove Entry" msgstr "Eintrag entfernen" -#: Bookmark.py:99 +#: FlatCAMBookmark.py:99 msgid "Export List" msgstr "Liste exportieren" -#: Bookmark.py:100 +#: FlatCAMBookmark.py:100 msgid "Import List" msgstr "Liste importieren" -#: Bookmark.py:190 +#: FlatCAMBookmark.py:190 msgid "Title entry is empty." msgstr "Kein Titel eingegeben." -#: Bookmark.py:199 +#: FlatCAMBookmark.py:199 msgid "Web link entry is empty." msgstr "Keine Internetadresse angegeben." -#: Bookmark.py:207 +#: FlatCAMBookmark.py:207 msgid "Either the Title or the Weblink already in the table." msgstr "" "Entweder Titel oder Internetadresse sind bereits in der Tabelle vorhanden." -#: Bookmark.py:227 +#: FlatCAMBookmark.py:227 msgid "Bookmark added." msgstr "Lesezeichen verwalten." -#: Bookmark.py:244 +#: FlatCAMBookmark.py:244 msgid "This bookmark can not be removed" msgstr "Dieses Lesezeichen kann nicht entfernt werden" -#: Bookmark.py:275 +#: FlatCAMBookmark.py:275 msgid "Bookmark removed." msgstr "Lesezeichen entfernt." -#: Bookmark.py:290 -msgid "Export Bookmarks" -msgstr "Lesezeichen exportieren" +#: FlatCAMBookmark.py:290 +msgid "Export FlatCAM Bookmarks" +msgstr "Export der FlatCAM-Lesezeichen" -#: Bookmark.py:319 Bookmark.py:349 +#: FlatCAMBookmark.py:293 flatcamGUI/FlatCAMGUI.py:524 +msgid "Bookmarks" +msgstr "Lesezeichen" + +#: FlatCAMBookmark.py:319 FlatCAMBookmark.py:349 msgid "Could not load bookmarks file." msgstr "Die Lesezeichen-Datei konnte nicht geladen werden." -#: Bookmark.py:329 +#: FlatCAMBookmark.py:329 msgid "Failed to write bookmarks to file." msgstr "Fehler beim Schreiben der Lesezeichen in die Datei." -#: Bookmark.py:331 +#: FlatCAMBookmark.py:331 msgid "Exported bookmarks to" msgstr "Exportierte Lesezeichen nach" -#: Bookmark.py:337 -msgid "Import Bookmarks" -msgstr "Lesezeichen importieren" +#: FlatCAMBookmark.py:337 +msgid "Import FlatCAM Bookmarks" +msgstr "Importieren Sie FlatCAM-Lesezeichen" -#: Bookmark.py:356 +#: FlatCAMBookmark.py:356 msgid "Imported Bookmarks from" msgstr "Importierte Lesezeichen von" -#: Common.py:42 +#: FlatCAMCommon.py:29 msgid "The user requested a graceful exit of the current task." msgstr "" "Der Benutzer hat einen ordnungsgemäßen Abschluss der aktuellen Aufgabe " "angefordert." -#: Common.py:269 -msgid "Click the end point of the area." -msgstr "Klicken Sie auf den Endpunkt des Bereichs." +#: FlatCAMDB.py:86 +msgid "Add Geometry Tool in DB" +msgstr "Geometriewerkzeug in DB hinzufügen" -#: Common.py:408 -msgid "Exclusion areas added. Checking overlap with the object geometry ..." +#: FlatCAMDB.py:88 FlatCAMDB.py:1643 +msgid "" +"Add a new tool in the Tools Database.\n" +"It will be used in the Geometry UI.\n" +"You can edit it after it is added." msgstr "" -"Ausschlussbereiche hinzugefügt. Überlappung mit der Objektgeometrie " -"prüfen ..." +"Fügen Sie der Werkzeugdatenbank ein neues Werkzeug hinzu\n" +"Es wird in der Geometrie-Benutzeroberfläche verwendet.\n" +"Danach können Sie es modifizieren." -#: Common.py:413 -msgid "Failed. Exclusion areas intersects the object geometry ..." -msgstr "Gescheitert. Ausschlussbereiche schneiden die Objektgeometrie ..." +#: FlatCAMDB.py:102 FlatCAMDB.py:1657 +msgid "Delete Tool from DB" +msgstr "Werkzeug aus DB löschen" -#: Common.py:417 -msgid "Exclusion areas added." -msgstr "Ausschlussbereiche hinzugefügt." +#: FlatCAMDB.py:104 FlatCAMDB.py:1659 +msgid "Remove a selection of tools in the Tools Database." +msgstr "Eine Auswahl von Werkzeugen aus der Werkzeugdatenbank entfernen." -#: Common.py:426 -msgid "With Exclusion areas." -msgstr "Mit Ausschlussbereichen." +#: FlatCAMDB.py:108 FlatCAMDB.py:1663 +msgid "Export DB" +msgstr "DB exportieren" -#: Common.py:461 -msgid "Cancelled. Area exclusion drawing was interrupted." -msgstr "Abgebrochen. Die Bereichsausschlusszeichnung wurde unterbrochen." +#: FlatCAMDB.py:110 FlatCAMDB.py:1665 +msgid "Save the Tools Database to a custom text file." +msgstr "Werkzeugdatenbank als Textdatei speichern." -#: Common.py:572 Common.py:621 -msgid "All exclusion zones deleted." -msgstr "Alle Ausschlusszonen gelöscht." +#: FlatCAMDB.py:114 FlatCAMDB.py:1669 +msgid "Import DB" +msgstr "Importieren Sie DB" -#: Common.py:608 -msgid "Selected exclusion zones deleted." -msgstr "Ausgewählte Ausschlusszonen gelöscht." +#: FlatCAMDB.py:116 FlatCAMDB.py:1671 +msgid "Load the Tools Database information's from a custom text file." +msgstr "Werkzeugdatenbank aus einer Textdatei importieren." + +#: FlatCAMDB.py:120 FlatCAMDB.py:1681 +msgid "Add Tool from Tools DB" +msgstr "Werkzeug aus Werkzeugdatenbank hinzufügen" + +#: FlatCAMDB.py:122 FlatCAMDB.py:1683 +msgid "" +"Add a new tool in the Tools Table of the\n" +"active Geometry object after selecting a tool\n" +"in the Tools Database." +msgstr "" +"Fügen Sie ein neues Werkzeug in die Werkzeugtabelle der\n" +"aktiven Geometrie hinzu, nachdem Sie das Werkzeug in\n" +"der Werkzeugdatenbank ausgewählt haben." + +#: FlatCAMDB.py:158 FlatCAMDB.py:833 FlatCAMDB.py:1087 +msgid "Tool Name" +msgstr "Werkzeugname" + +#: FlatCAMDB.py:159 FlatCAMDB.py:835 FlatCAMDB.py:1100 +#: flatcamEditors/FlatCAMExcEditor.py:1604 flatcamGUI/ObjectUI.py:1345 +#: flatcamGUI/ObjectUI.py:1583 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:132 +#: flatcamTools/ToolNCC.py:278 flatcamTools/ToolNCC.py:287 +#: flatcamTools/ToolPaint.py:261 +msgid "Tool Dia" +msgstr "Werkzeugdurchm" + +#: FlatCAMDB.py:160 FlatCAMDB.py:837 FlatCAMDB.py:1281 +#: flatcamGUI/ObjectUI.py:1558 +msgid "Tool Offset" +msgstr "Werkzeugversatz" + +#: FlatCAMDB.py:161 FlatCAMDB.py:839 FlatCAMDB.py:1298 +msgid "Custom Offset" +msgstr "Selbstdefinierter Werkzeugversatz" + +#: FlatCAMDB.py:162 FlatCAMDB.py:841 FlatCAMDB.py:1265 +#: flatcamGUI/ObjectUI.py:309 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:67 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:53 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:62 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:72 +#: flatcamTools/ToolNCC.py:213 flatcamTools/ToolNCC.py:227 +#: flatcamTools/ToolPaint.py:196 +msgid "Tool Type" +msgstr "Werkzeugtyp" + +#: FlatCAMDB.py:163 FlatCAMDB.py:843 FlatCAMDB.py:1113 +msgid "Tool Shape" +msgstr "Werkzeugform" + +#: FlatCAMDB.py:164 FlatCAMDB.py:846 FlatCAMDB.py:1129 +#: flatcamGUI/ObjectUI.py:350 flatcamGUI/ObjectUI.py:900 +#: flatcamGUI/ObjectUI.py:1703 flatcamGUI/ObjectUI.py:2336 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:93 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:48 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:107 +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:78 +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:58 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:98 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:105 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:113 +#: flatcamTools/ToolCalculators.py:114 flatcamTools/ToolCutOut.py:138 +#: flatcamTools/ToolNCC.py:260 flatcamTools/ToolNCC.py:268 +#: flatcamTools/ToolPaint.py:243 +msgid "Cut Z" +msgstr "Schnitttiefe Z" + +#: FlatCAMDB.py:165 FlatCAMDB.py:848 FlatCAMDB.py:1143 +msgid "MultiDepth" +msgstr "Mehrfache Durchgänge" + +# Abbrev. unclear: Depth Per Pass? +# Perhaps better not translate +#: FlatCAMDB.py:166 FlatCAMDB.py:850 FlatCAMDB.py:1156 +msgid "DPP" +msgstr "DPP" + +#: FlatCAMDB.py:167 FlatCAMDB.py:852 FlatCAMDB.py:1312 +msgid "V-Dia" +msgstr "V-Durchm." + +#: FlatCAMDB.py:168 FlatCAMDB.py:854 FlatCAMDB.py:1326 +msgid "V-Angle" +msgstr "Winkel der V-Form" + +#: FlatCAMDB.py:169 FlatCAMDB.py:856 FlatCAMDB.py:1170 +#: flatcamGUI/ObjectUI.py:946 flatcamGUI/ObjectUI.py:1750 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:134 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:101 +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:61 +#: flatcamObjects/FlatCAMExcellon.py:1316 +#: flatcamObjects/FlatCAMGeometry.py:1606 flatcamTools/ToolCalibration.py:74 +msgid "Travel Z" +msgstr "Bewegungshöhe Z (Travel)" + +# I think this is FeedRate XY +#: FlatCAMDB.py:170 FlatCAMDB.py:858 +msgid "FR" +msgstr "Vorschub (XY)" + +#: FlatCAMDB.py:171 FlatCAMDB.py:860 +msgid "FR Z" +msgstr "Vorschub (Z)" + +#: FlatCAMDB.py:172 FlatCAMDB.py:862 FlatCAMDB.py:1340 +msgid "FR Rapids" +msgstr "Vorschub ohne Last" + +#: FlatCAMDB.py:173 FlatCAMDB.py:864 FlatCAMDB.py:1213 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:222 +msgid "Spindle Speed" +msgstr "Drehgeschwindigkeit" + +#: FlatCAMDB.py:174 FlatCAMDB.py:866 FlatCAMDB.py:1228 +#: flatcamGUI/ObjectUI.py:1064 flatcamGUI/ObjectUI.py:1857 +msgid "Dwell" +msgstr "Warten zum Beschleunigen" + +#: FlatCAMDB.py:175 FlatCAMDB.py:868 FlatCAMDB.py:1241 +msgid "Dwelltime" +msgstr "Wartezeit zum Beschleunigen" + +#: FlatCAMDB.py:176 FlatCAMDB.py:870 flatcamGUI/ObjectUI.py:2014 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:257 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:254 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:237 +#: flatcamTools/ToolSolderPaste.py:335 +msgid "Preprocessor" +msgstr "Postprozessor" + +#: FlatCAMDB.py:177 FlatCAMDB.py:872 FlatCAMDB.py:1356 +msgid "ExtraCut" +msgstr "Zusätzlicher Schnitt" + +#: FlatCAMDB.py:178 FlatCAMDB.py:874 FlatCAMDB.py:1371 +msgid "E-Cut Length" +msgstr "Extra Schnittlänge" + +#: FlatCAMDB.py:179 FlatCAMDB.py:876 +msgid "Toolchange" +msgstr "Werkzeugwechsel" + +#: FlatCAMDB.py:180 FlatCAMDB.py:878 +msgid "Toolchange XY" +msgstr "Werkzeugwechsel XY" + +#: FlatCAMDB.py:181 FlatCAMDB.py:880 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:160 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:131 +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:98 +#: flatcamTools/ToolCalibration.py:111 +msgid "Toolchange Z" +msgstr "Werkzeugwechsel Z" + +#: FlatCAMDB.py:182 FlatCAMDB.py:882 flatcamGUI/ObjectUI.py:1193 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:69 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:54 +msgid "Start Z" +msgstr "Start Z" + +#: FlatCAMDB.py:183 FlatCAMDB.py:885 +msgid "End Z" +msgstr "Ende Z" + +#: FlatCAMDB.py:187 +msgid "Tool Index." +msgstr "Werkzeugverzeichnis." + +#: FlatCAMDB.py:189 FlatCAMDB.py:1089 +msgid "" +"Tool name.\n" +"This is not used in the app, it's function\n" +"is to serve as a note for the user." +msgstr "" +"Werkzeugname\n" +"Wird in der App nicht verwendet,\n" +"sondern dient als Kommentar für den Nutzer." + +#: FlatCAMDB.py:193 FlatCAMDB.py:1102 +msgid "Tool Diameter." +msgstr "Werkzeugdurchmesser." + +#: FlatCAMDB.py:195 FlatCAMDB.py:1283 +msgid "" +"Tool Offset.\n" +"Can be of a few types:\n" +"Path = zero offset\n" +"In = offset inside by half of tool diameter\n" +"Out = offset outside by half of tool diameter\n" +"Custom = custom offset using the Custom Offset value" +msgstr "" +"Werkzeug Offest.\n" +"Folgende Typen sind erlaubt:\n" +"Path: kein Offset\n" +"In: Offset einen halben Werkzeugdurchmesser innerhalb.\n" +"Out: Offset einen halben Werkzeugdurchmesser ausserhalb\n" +"Custom: selbstdefinierter Wert im Feld \"Selbstdefinierter Offset\"" + +#: FlatCAMDB.py:202 FlatCAMDB.py:1300 +msgid "" +"Custom Offset.\n" +"A value to be used as offset from the current path." +msgstr "" +"Selbstdefinierter Offset.\n" +"Ein Wert der als Offset zum aktellen Pfad hinzugefügt wird." + +#: FlatCAMDB.py:205 FlatCAMDB.py:1267 +msgid "" +"Tool Type.\n" +"Can be:\n" +"Iso = isolation cut\n" +"Rough = rough cut, low feedrate, multiple passes\n" +"Finish = finishing cut, high feedrate" +msgstr "" +"Werkzeugart.\n" +"Erlaubt sind:\n" +"Iso: Isolationsschnitte\n" +"Rough: Roughen, um viel Material abzutragen, geringer Vorschub, viele " +"Durchgänge\n" +"Finish: Finishing, hoher Vorschub" + +#: FlatCAMDB.py:211 FlatCAMDB.py:1115 +msgid "" +"Tool Shape. \n" +"Can be:\n" +"C1 ... C4 = circular tool with x flutes\n" +"B = ball tip milling tool\n" +"V = v-shape milling tool" +msgstr "" +"Werkzeugform.\n" +"Erlaubt sind:\n" +"C1 … C4: Runde Form mit x Schneiden\n" +"B: Kugelförmig\n" +"V: V-Förmig" + +#: FlatCAMDB.py:217 FlatCAMDB.py:1131 +msgid "" +"Cutting Depth.\n" +"The depth at which to cut into material." +msgstr "" +"Schneidtiefe.\n" +"Eindringtiefe in das Material." + +# MultiDepth is hard to translate, cause it is somewhat artificial. If you need to abbreviate perhaps "MehrfDurchg" could suffice, but stays ugly. +#: FlatCAMDB.py:220 FlatCAMDB.py:1145 +msgid "" +"Multi Depth.\n" +"Selecting this will allow cutting in multiple passes,\n" +"each pass adding a DPP parameter depth." +msgstr "" +"Mehrfache Durchgänge.\n" +"Wenn ausgewählt wird der Schnitt in mehreren Stufen\n" +"durchgeführt. Die Schnitttiefe jedes Schnittes ist in DPP angegeben." + +#: FlatCAMDB.py:224 FlatCAMDB.py:1158 +msgid "" +"DPP. Depth per Pass.\n" +"The value used to cut into material on each pass." +msgstr "" +"DPP: Tiefe pro Schnitt. Definiert die einzelne Schnitttiefe in mehrfachen " +"Durchgängen." + +#: FlatCAMDB.py:227 FlatCAMDB.py:1314 +msgid "" +"V-Dia.\n" +"Diameter of the tip for V-Shape Tools." +msgstr "" +"V-Durchmesser.\n" +"Durchmesser der Spitze eines V-Förmigen Werkzeugs." + +# Typo in english? V-Angle, missing n? +#: FlatCAMDB.py:230 FlatCAMDB.py:1328 +msgid "" +"V-Agle.\n" +"Angle at the tip for the V-Shape Tools." +msgstr "" +"V-Winkel.\n" +"Öffnungswinkel an der Spitze eine V-Förmigen Werkzeugs." + +#: FlatCAMDB.py:233 FlatCAMDB.py:1172 +msgid "" +"Clearance Height.\n" +"Height at which the milling bit will travel between cuts,\n" +"above the surface of the material, avoiding all fixtures." +msgstr "" +"Freilauf Höhe.\n" +"Die Höhe in der das Fräswerkzeug sich zwischen den Schnitten \n" +"frei bewegen kann ohne auf Hindernisse zu stossen." + +#: FlatCAMDB.py:237 +msgid "" +"FR. Feedrate\n" +"The speed on XY plane used while cutting into material." +msgstr "" +"FR: Feedrate\n" +"Geschwindkeit beim fräsen. Angegeben in cm pro Minute." + +#: FlatCAMDB.py:240 +msgid "" +"FR Z. Feedrate Z\n" +"The speed on Z plane." +msgstr "" +"FR Z: Feedrate Z:\n" +"Geschwindigkeit beim Fräsen in Z-Richtung." + +#: FlatCAMDB.py:243 FlatCAMDB.py:1342 +msgid "" +"FR Rapids. Feedrate Rapids\n" +"Speed used while moving as fast as possible.\n" +"This is used only by some devices that can't use\n" +"the G0 g-code command. Mostly 3D printers." +msgstr "" +"FR Rapids: Feedrate ohne Last\n" +"Geschwindigkeit die ohne Last gefahren werden kann.\n" +"Wird benutzt bei Geräten die das G0 Kommando nicht \n" +"unterstützen (oft 3D Drucker)." + +#: FlatCAMDB.py:248 FlatCAMDB.py:1215 +msgid "" +"Spindle Speed.\n" +"If it's left empty it will not be used.\n" +"The speed of the spindle in RPM." +msgstr "" +"Drehzahl.\n" +"Drehzahl des Fräsmotors in U/min.\n" +"Wird nicht benutzt, wenn leer." + +#: FlatCAMDB.py:252 FlatCAMDB.py:1230 +msgid "" +"Dwell.\n" +"Check this if a delay is needed to allow\n" +"the spindle motor to reach it's set speed." +msgstr "" +"Verweilen.\n" +"Überprüfen Sie dies, wenn eine Verzögerung erforderlich ist\n" +"Der Spindelmotor erreicht die eingestellte Drehzahl." + +#: FlatCAMDB.py:256 FlatCAMDB.py:1243 +msgid "" +"Dwell Time.\n" +"A delay used to allow the motor spindle reach it's set speed." +msgstr "" +"Verweilzeit.\n" +"Eine Verzögerung, mit der die Motorspindel ihre eingestellte Drehzahl " +"erreicht." + +#: FlatCAMDB.py:259 +msgid "" +"Preprocessor.\n" +"A selection of files that will alter the generated G-code\n" +"to fit for a number of use cases." +msgstr "" +"Präprozessor.\n" +"Diese Dateien werden den erzeugten G-Code modifizieren\n" +"um eine große Anzahl Anwendungsmöglichkeiten zu unterstützen." + +#: FlatCAMDB.py:263 FlatCAMDB.py:1358 +msgid "" +"Extra Cut.\n" +"If checked, after a isolation is finished an extra cut\n" +"will be added where the start and end of isolation meet\n" +"such as that this point is covered by this extra cut to\n" +"ensure a complete isolation." +msgstr "" +"Zusatzschnitt.\n" +"Wenn gewählt, wird nach dem Isolationsschnitt ein Zusatzschnitt\n" +"durchgeführt, um Start und Endpunkt definitiv zu verbinden und \n" +"so eine vollständige Isolation zu gewährleisten." + +#: FlatCAMDB.py:269 FlatCAMDB.py:1373 +msgid "" +"Extra Cut length.\n" +"If checked, after a isolation is finished an extra cut\n" +"will be added where the start and end of isolation meet\n" +"such as that this point is covered by this extra cut to\n" +"ensure a complete isolation. This is the length of\n" +"the extra cut." +msgstr "" +"Zusatzschnitt.\n" +"Wenn gewählt, wird nach dem Isolationsschnitt ein Zusatzschnitt\n" +"durchgeführt, um Start und Endpunkt definitiv zu verbinden und \n" +"so eine vollständige Isolation zu gewährleisten." + +#: FlatCAMDB.py:276 +msgid "" +"Toolchange.\n" +"It will create a toolchange event.\n" +"The kind of toolchange is determined by\n" +"the preprocessor file." +msgstr "" +"Werkzeugwechsel.\n" +"Löst ein Werkzeugwechselereignis aus.\n" +"Die Art wie der Werkzeugwechsel durchgeführt wird\n" +"hängt vom gewählten Präprozessor ab." + +#: FlatCAMDB.py:281 +msgid "" +"Toolchange XY.\n" +"A set of coordinates in the format (x, y).\n" +"Will determine the cartesian position of the point\n" +"where the tool change event take place." +msgstr "" +"Werkzeugwechsel XY\n" +"Ein Satz von Koordinaten im Format (x,y).\n" +"An der Position dieses Punktes wird ein \n" +"Werkzeugwechselereignis ausgelöst." + +# Is this really the height of where a toolchange event takes place or is it the position of where to go to for being able to change the tool? +#: FlatCAMDB.py:286 +msgid "" +"Toolchange Z.\n" +"The position on Z plane where the tool change event take place." +msgstr "" +"Werkzeugwechsel Z.\n" +"Die Position in der Z Ebene an der ein Werkzeugwechselereignis ausgelöst " +"wird." + +#: FlatCAMDB.py:289 +msgid "" +"Start Z.\n" +"If it's left empty it will not be used.\n" +"A position on Z plane to move immediately after job start." +msgstr "" +"Start Z.\n" +"Nicht benutzt wenn leer.\n" +"Die Z-Position die zum Start angefahren wird." + +#: FlatCAMDB.py:293 +msgid "" +"End Z.\n" +"A position on Z plane to move immediately after job stop." +msgstr "" +"End Z.\n" +"Die Z-Position die bei Beendigung des Jobs angefahren wird." + +#: FlatCAMDB.py:305 FlatCAMDB.py:682 FlatCAMDB.py:716 FlatCAMDB.py:1898 +#: FlatCAMDB.py:2144 FlatCAMDB.py:2178 +msgid "Could not load Tools DB file." +msgstr "Werkzeugdatenbank konnte nicht geladen werden." + +#: FlatCAMDB.py:313 FlatCAMDB.py:724 FlatCAMDB.py:1906 FlatCAMDB.py:2186 +msgid "Failed to parse Tools DB file." +msgstr "Formatfehler beim Einlesen der Werkzeugdatenbank." + +#: FlatCAMDB.py:316 FlatCAMDB.py:727 FlatCAMDB.py:1909 FlatCAMDB.py:2189 +msgid "Loaded FlatCAM Tools DB from" +msgstr "Geladene FlatCAM Tools DB von" + +#: FlatCAMDB.py:322 FlatCAMDB.py:1823 +msgid "Add to DB" +msgstr "Hinzufügen" + +#: FlatCAMDB.py:324 FlatCAMDB.py:1826 +msgid "Copy from DB" +msgstr "Von Datenbank kopieren" + +#: FlatCAMDB.py:326 FlatCAMDB.py:1829 +msgid "Delete from DB" +msgstr "Aus Datenbank löschen" + +#: FlatCAMDB.py:603 FlatCAMDB.py:2044 +msgid "Tool added to DB." +msgstr "Werkzeug wurde zur Werkzeugdatenbank hinzugefügt." + +#: FlatCAMDB.py:624 FlatCAMDB.py:2077 +msgid "Tool copied from Tools DB." +msgstr "Das Werkzeug wurde aus der Werkzeugdatenbank kopiert." + +#: FlatCAMDB.py:642 FlatCAMDB.py:2104 +msgid "Tool removed from Tools DB." +msgstr "Werkzeug wurde aus der Werkzeugdatenbank gelöscht." + +#: FlatCAMDB.py:653 FlatCAMDB.py:2115 +msgid "Export Tools Database" +msgstr "Werkzeugdatenbank exportieren" + +#: FlatCAMDB.py:656 FlatCAMDB.py:2118 +msgid "Tools_Database" +msgstr "Werkzeugdatenbank" + +#: FlatCAMDB.py:693 FlatCAMDB.py:696 FlatCAMDB.py:748 FlatCAMDB.py:2155 +#: FlatCAMDB.py:2158 FlatCAMDB.py:2211 +msgid "Failed to write Tools DB to file." +msgstr "Fehler beim Schreiben der Werkzeugdatenbank in eine Datei." + +#: FlatCAMDB.py:699 FlatCAMDB.py:2161 +msgid "Exported Tools DB to" +msgstr "Werkzeugdatenbank wurde exportiert nach" + +#: FlatCAMDB.py:706 FlatCAMDB.py:2168 +msgid "Import FlatCAM Tools DB" +msgstr "Import der FlatCAM-Werkzeugdatenbank" + +#: FlatCAMDB.py:752 FlatCAMDB.py:2215 +msgid "Saved Tools DB." +msgstr "Datenbank der gespeicherten Werkzeuge." + +#: FlatCAMDB.py:899 FlatCAMDB.py:2405 +msgid "No Tool/row selected in the Tools Database table" +msgstr "" +"Gescheitert. Kein Werkzeug (keine Spalte) in der Werkzeugtabelle ausgewählt" + +#: FlatCAMDB.py:917 FlatCAMDB.py:2422 +msgid "Cancelled adding tool from DB." +msgstr "Hinzufügen aus der Datenbank wurde abgebrochen." + +#: FlatCAMDB.py:1018 +msgid "Basic Geo Parameters" +msgstr "Grundlegende Geoparameter" + +#: FlatCAMDB.py:1030 +msgid "Advanced Geo Parameters" +msgstr "Erweiterte Geoparameter" + +#: FlatCAMDB.py:1042 +msgid "NCC Parameters" +msgstr "NCC-Parameter" + +#: FlatCAMDB.py:1054 +msgid "Paint Parameters" +msgstr "Lackparameter" + +#: FlatCAMDB.py:1185 flatcamGUI/ObjectUI.py:967 flatcamGUI/ObjectUI.py:1769 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:185 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:148 +#: flatcamTools/ToolSolderPaste.py:253 +msgid "Feedrate X-Y" +msgstr "Vorschub X-Y" + +#: FlatCAMDB.py:1187 +msgid "" +"Feedrate X-Y. Feedrate\n" +"The speed on XY plane used while cutting into material." +msgstr "" +"Vorschub X-Y. Vorschubgeschwindigkeit\n" +"Die Geschwindigkeit in der XY-Ebene, die beim Schneiden in Material " +"verwendet wird." + +#: FlatCAMDB.py:1199 flatcamGUI/ObjectUI.py:982 flatcamGUI/ObjectUI.py:1783 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:207 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:200 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:161 +#: flatcamTools/ToolSolderPaste.py:265 +msgid "Feedrate Z" +msgstr "Vorschub Z" + +#: FlatCAMDB.py:1201 +msgid "" +"Feedrate Z\n" +"The speed on Z plane." +msgstr "" +"Vorschub Z.\n" +"Die Geschwindigkeit in der Z-Ebene." + +#: FlatCAMDB.py:1399 flatcamGUI/ObjectUI.py:845 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:46 +#: flatcamTools/ToolNCC.py:341 +msgid "Operation" +msgstr "Operation" + +#: FlatCAMDB.py:1401 flatcamTools/ToolNCC.py:343 +msgid "" +"The 'Operation' can be:\n" +"- Isolation -> will ensure that the non-copper clearing is always complete.\n" +"If it's not successful then the non-copper clearing will fail, too.\n" +"- Clear -> the regular non-copper clearing." +msgstr "" +"Die 'Operation' kann sein:\n" +"- Isolierung-> stellt sicher, dass das Löschen ohne Kupfer immer " +"abgeschlossen ist.\n" +"Wenn dies nicht erfolgreich ist, schlägt auch das Löschen ohne Kupfer fehl.\n" +"- Klären-> das reguläre Nicht-Kupfer-löschen." + +#: FlatCAMDB.py:1408 flatcamEditors/FlatCAMGrbEditor.py:2742 +#: flatcamGUI/GUIElements.py:2577 flatcamTools/ToolNCC.py:350 +msgid "Clear" +msgstr "Klären" + +#: FlatCAMDB.py:1409 flatcamTools/ToolNCC.py:351 flatcamTools/ToolNCC.py:1623 +msgid "Isolation" +msgstr "Isolation" + +#: FlatCAMDB.py:1417 flatcamGUI/ObjectUI.py:409 flatcamGUI/ObjectUI.py:867 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:62 +#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:56 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:95 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:137 +#: flatcamTools/ToolNCC.py:359 +msgid "Milling Type" +msgstr "Fräsart" + +#: FlatCAMDB.py:1419 FlatCAMDB.py:1427 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:139 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:147 +#: flatcamTools/ToolNCC.py:361 flatcamTools/ToolNCC.py:369 +msgid "" +"Milling type when the selected tool is of type: 'iso_op':\n" +"- climb / best for precision milling and to reduce tool usage\n" +"- conventional / useful when there is no backlash compensation" +msgstr "" +"Frästyp, wenn das ausgewählte Werkzeug vom Typ 'iso_op' ist:\n" +"- Besteigung / am besten zum Präzisionsfräsen und zur Reduzierung des " +"Werkzeugverbrauchs\n" +"- konventionell / nützlich, wenn kein Spielausgleich vorhanden ist" + +#: FlatCAMDB.py:1424 flatcamGUI/ObjectUI.py:415 +#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:62 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:102 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:144 +#: flatcamTools/ToolNCC.py:366 +msgid "Climb" +msgstr "Steigen" + +# Cannot translate without context. +#: FlatCAMDB.py:1425 flatcamGUI/ObjectUI.py:416 +#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:63 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:103 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:145 +#: flatcamTools/ToolNCC.py:367 +msgid "Conventional" +msgstr "Konventionell" + +#: FlatCAMDB.py:1437 FlatCAMDB.py:1546 flatcamEditors/FlatCAMGeoEditor.py:451 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:182 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:163 +#: flatcamTools/ToolNCC.py:382 flatcamTools/ToolPaint.py:329 +msgid "Overlap" +msgstr "Überlappung" + +# Double +#: FlatCAMDB.py:1439 flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:184 +#: flatcamTools/ToolNCC.py:384 +msgid "" +"How much (percentage) of the tool width to overlap each tool pass.\n" +"Adjust the value starting with lower values\n" +"and increasing it if areas that should be cleared are still \n" +"not cleared.\n" +"Lower values = faster processing, faster execution on CNC.\n" +"Higher values = slow processing and slow execution on CNC\n" +"due of too many paths." +msgstr "" +"Wie viel (Prozent) der Werkzeugbreite, um jeden Werkzeugdurchlauf zu " +"überlappen.\n" +"Passen Sie den Wert beginnend mit niedrigeren Werten an\n" +"und es zu erhöhen, wenn noch Bereiche sind, die geräumt werden sollen\n" +"ungeklärt.\n" +"Niedrigere Werte = schnellere Verarbeitung, schnellere Ausführung auf CNC.\n" +"Höhere Werte = langsame Verarbeitung und langsame Ausführung auf CNC\n" +"wegen zu vieler Wege." + +#: FlatCAMDB.py:1458 FlatCAMDB.py:1567 flatcamEditors/FlatCAMGeoEditor.py:471 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:72 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:229 +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:59 +#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:45 +#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:53 +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:115 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:202 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:183 +#: flatcamTools/ToolCopperThieving.py:111 +#: flatcamTools/ToolCopperThieving.py:362 flatcamTools/ToolCutOut.py:190 +#: flatcamTools/ToolFiducials.py:172 flatcamTools/ToolInvertGerber.py:88 +#: flatcamTools/ToolInvertGerber.py:96 flatcamTools/ToolNCC.py:403 +#: flatcamTools/ToolPaint.py:350 +msgid "Margin" +msgstr "Marge" + +#: FlatCAMDB.py:1460 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:74 +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:61 +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:125 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:204 +#: flatcamTools/ToolCopperThieving.py:113 flatcamTools/ToolFiducials.py:174 +#: flatcamTools/ToolFiducials.py:237 flatcamTools/ToolNCC.py:405 +msgid "Bounding box margin." +msgstr "Begrenzungsrahmenrand." + +#: FlatCAMDB.py:1471 FlatCAMDB.py:1582 flatcamEditors/FlatCAMGeoEditor.py:485 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:105 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:106 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:215 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:198 +#: flatcamTools/ToolExtractDrills.py:128 flatcamTools/ToolNCC.py:416 +#: flatcamTools/ToolPaint.py:365 flatcamTools/ToolPunchGerber.py:139 +msgid "Method" +msgstr "Methode" + +#: FlatCAMDB.py:1473 flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:217 +#: flatcamTools/ToolNCC.py:418 +msgid "" +"Algorithm for copper clearing:\n" +"- Standard: Fixed step inwards.\n" +"- Seed-based: Outwards from seed.\n" +"- Line-based: Parallel lines." +msgstr "" +"Algorithmus zur Kupferreinigung:\n" +"- Standard: Schritt nach innen behoben.\n" +"- Samenbasiert: Aus dem Samen heraus.\n" +"- Linienbasiert: Parallele Linien." + +#: FlatCAMDB.py:1481 FlatCAMDB.py:1596 flatcamEditors/FlatCAMGeoEditor.py:499 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:230 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217 +#: flatcamTools/ToolNCC.py:431 flatcamTools/ToolNCC.py:2395 +#: flatcamTools/ToolNCC.py:2424 flatcamTools/ToolNCC.py:2693 +#: flatcamTools/ToolNCC.py:2725 flatcamTools/ToolPaint.py:390 +#: flatcamTools/ToolPaint.py:1834 tclCommands/TclCommandCopperClear.py:126 +#: tclCommands/TclCommandCopperClear.py:134 tclCommands/TclCommandPaint.py:125 +msgid "Standard" +msgstr "Standard" + +#: FlatCAMDB.py:1481 FlatCAMDB.py:1596 defaults.py:395 defaults.py:427 +#: flatcamEditors/FlatCAMGeoEditor.py:499 +#: flatcamEditors/FlatCAMGeoEditor.py:569 +#: flatcamEditors/FlatCAMGeoEditor.py:5152 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:230 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217 +#: flatcamTools/ToolNCC.py:431 flatcamTools/ToolNCC.py:2401 +#: flatcamTools/ToolNCC.py:2429 flatcamTools/ToolNCC.py:2699 +#: flatcamTools/ToolNCC.py:2731 flatcamTools/ToolPaint.py:390 +#: flatcamTools/ToolPaint.py:1848 tclCommands/TclCommandCopperClear.py:128 +#: tclCommands/TclCommandCopperClear.py:136 tclCommands/TclCommandPaint.py:127 +msgid "Seed" +msgstr "Keim" + +#: FlatCAMDB.py:1481 FlatCAMDB.py:1596 flatcamEditors/FlatCAMGeoEditor.py:499 +#: flatcamEditors/FlatCAMGeoEditor.py:5156 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:230 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217 +#: flatcamTools/ToolNCC.py:431 flatcamTools/ToolPaint.py:390 +#: flatcamTools/ToolPaint.py:699 flatcamTools/ToolPaint.py:1862 +#: tclCommands/TclCommandCopperClear.py:130 tclCommands/TclCommandPaint.py:129 +msgid "Lines" +msgstr "Linien" + +#: FlatCAMDB.py:1489 FlatCAMDB.py:1607 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:237 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:224 +#: flatcamTools/ToolNCC.py:439 flatcamTools/ToolPaint.py:401 +msgid "Connect" +msgstr "Verbinden" + +#: FlatCAMDB.py:1493 FlatCAMDB.py:1610 flatcamEditors/FlatCAMGeoEditor.py:508 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:239 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:226 +#: flatcamTools/ToolNCC.py:443 flatcamTools/ToolPaint.py:404 +msgid "" +"Draw lines between resulting\n" +"segments to minimize tool lifts." +msgstr "" +"Zeichnen Sie Linien zwischen den Ergebnissen\n" +"Segmente, um Werkzeuglifte zu minimieren." + +#: FlatCAMDB.py:1499 FlatCAMDB.py:1614 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:246 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:232 +#: flatcamTools/ToolNCC.py:449 flatcamTools/ToolPaint.py:408 +msgid "Contour" +msgstr "Kontur" + +#: FlatCAMDB.py:1503 FlatCAMDB.py:1617 flatcamEditors/FlatCAMGeoEditor.py:518 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:248 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:234 +#: flatcamTools/ToolNCC.py:453 flatcamTools/ToolPaint.py:411 +msgid "" +"Cut around the perimeter of the polygon\n" +"to trim rough edges." +msgstr "" +"Schneiden Sie um den Umfang des Polygons herum\n" +"Ecken und Kanten schneiden." + +#: FlatCAMDB.py:1509 flatcamEditors/FlatCAMGeoEditor.py:612 +#: flatcamEditors/FlatCAMGrbEditor.py:5311 flatcamGUI/ObjectUI.py:143 +#: flatcamGUI/ObjectUI.py:1497 flatcamGUI/ObjectUI.py:2326 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:255 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:142 +#: flatcamTools/ToolNCC.py:459 flatcamTools/ToolTransform.py:28 +msgid "Offset" +msgstr "Versatz" + +#: FlatCAMDB.py:1513 flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:257 +#: flatcamTools/ToolNCC.py:463 +msgid "" +"If used, it will add an offset to the copper features.\n" +"The copper clearing will finish to a distance\n" +"from the copper features.\n" +"The value can be between 0 and 10 FlatCAM units." +msgstr "" +"Bei Verwendung wird den Kupferelementen ein Offset hinzugefügt.\n" +"Die Kupferreinigung wird bis zu einer gewissen Entfernung enden\n" +"von den Kupfermerkmalen.\n" +"Der Wert kann zwischen 0 und 10 FlatCAM-Einheiten liegen." + +# 3rd Time +#: FlatCAMDB.py:1548 flatcamEditors/FlatCAMGeoEditor.py:453 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:165 +#: flatcamTools/ToolPaint.py:331 +msgid "" +"How much (percentage) of the tool width to overlap each tool pass.\n" +"Adjust the value starting with lower values\n" +"and increasing it if areas that should be painted are still \n" +"not painted.\n" +"Lower values = faster processing, faster execution on CNC.\n" +"Higher values = slow processing and slow execution on CNC\n" +"due of too many paths." +msgstr "" +"Wie viel (Prozent) der Werkzeugbreite, um jeden Werkzeugdurchlauf zu " +"überlappen.\n" +"Passen Sie den Wert beginnend mit niedrigeren Werten an\n" +"und erhöhen, wenn Bereiche, die gestrichen werden sollen, noch vorhanden " +"sind\n" +"nicht gemalt.\n" +"Niedrigere Werte = schnellere Verarbeitung, schnellere Ausführung auf CNC.\n" +"Höhere Werte = langsame Verarbeitung und langsame Ausführung auf CNC\n" +"wegen zu vieler Wege." + +#: FlatCAMDB.py:1569 flatcamEditors/FlatCAMGeoEditor.py:473 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:185 +#: flatcamTools/ToolPaint.py:352 +msgid "" +"Distance by which to avoid\n" +"the edges of the polygon to\n" +"be painted." +msgstr "" +"Entfernung, um die es zu vermeiden ist\n" +"die Kanten des Polygons bis\n" +"gemalt werden." + +#: FlatCAMDB.py:1584 flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:200 +#: flatcamTools/ToolPaint.py:367 +msgid "" +"Algorithm for painting:\n" +"- Standard: Fixed step inwards.\n" +"- Seed-based: Outwards from seed.\n" +"- Line-based: Parallel lines.\n" +"- Laser-lines: Active only for Gerber objects.\n" +"Will create lines that follow the traces.\n" +"- Combo: In case of failure a new method will be picked from the above\n" +"in the order specified." +msgstr "" +"Algorithmus zum Malen:\n" +"- Standard: Schritt nach innen behoben.\n" +"- Samenbasiert: Aus dem Samen heraus.\n" +"- Linienbasiert: Parallele Linien.\n" +"- Laserlinien: Nur für Gerber-Objekte aktiv.\n" +"Erstellt Linien, die den Spuren folgen.\n" +"- Combo: Im Fehlerfall wird eine neue Methode aus den oben genannten " +"ausgewählt\n" +"in der angegebenen Reihenfolge." + +#: FlatCAMDB.py:1596 FlatCAMDB.py:1598 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217 +#: flatcamTools/ToolPaint.py:390 flatcamTools/ToolPaint.py:392 +#: flatcamTools/ToolPaint.py:693 flatcamTools/ToolPaint.py:698 +#: flatcamTools/ToolPaint.py:1876 tclCommands/TclCommandPaint.py:131 +msgid "Laser_lines" +msgstr "LaserlinienLinien" + +#: FlatCAMDB.py:1596 flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217 +#: flatcamTools/ToolPaint.py:390 flatcamTools/ToolPaint.py:2027 +#: tclCommands/TclCommandPaint.py:133 +msgid "Combo" +msgstr "Combo" + +#: FlatCAMDB.py:1641 +msgid "Add Tool in DB" +msgstr "Werkzeug in DB hinzufügen" + +#: FlatCAMDB.py:1675 +msgid "Save DB" +msgstr "Speichern DB" + +#: FlatCAMDB.py:1677 +msgid "Save the Tools Database information's." +msgstr "Speichern Sie die Tools-Datenbankinformationen." + +#: FlatCAMProcess.py:172 +msgid "processes running." +msgstr "laufende Prozesse." + +#: FlatCAMTool.py:245 FlatCAMTool.py:252 flatcamGUI/ObjectUI.py:157 +#: flatcamGUI/ObjectUI.py:164 +msgid "Edited value is out of range" +msgstr "Der bearbeitete Wert liegt außerhalb des Bereichs" + +#: FlatCAMTool.py:247 FlatCAMTool.py:254 flatcamGUI/ObjectUI.py:159 +#: flatcamGUI/ObjectUI.py:166 +msgid "Edited value is within limits." +msgstr "Der bearbeitete Wert liegt innerhalb der Grenzen." + +#: FlatCAMTranslation.py:104 +msgid "The application will restart." +msgstr "Die Anwendung wird neu gestartet." + +#: FlatCAMTranslation.py:106 +msgid "Are you sure do you want to change the current language to" +msgstr "Möchten Sie die aktuelle Sprache wirklich in ändern" + +#: FlatCAMTranslation.py:107 +msgid "Apply Language ..." +msgstr "Sprache anwenden ..." #: assets/linux/flatcam-beta.desktop:3 msgid "FlatCAM Beta" msgstr "FlatCAM Beta" +#: assets/linux/flatcam-beta.desktop:7 +msgid "./assets/icon.png" +msgstr "./assets/icon.png" + #: assets/linux/flatcam-beta.desktop:8 msgid "G-Code from GERBERS" msgstr "G-Code von GERBERS" @@ -18518,55 +2712,66 @@ msgstr "G-Code von GERBERS" msgid "self.solid_geometry is neither BaseGeometry or list." msgstr "self.solid_geometry ist weder BaseGeometry noch eine Liste." -#: camlib.py:979 +#: camlib.py:970 msgid "Pass" msgstr "Pass" -#: camlib.py:1001 +#: camlib.py:981 flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:146 +#: flatcamObjects/FlatCAMGerber.py:497 flatcamTools/ToolCopperThieving.py:1016 +#: flatcamTools/ToolCopperThieving.py:1205 +#: flatcamTools/ToolCopperThieving.py:1217 flatcamTools/ToolNCC.py:2050 +#: flatcamTools/ToolNCC.py:2158 flatcamTools/ToolNCC.py:2172 +#: flatcamTools/ToolNCC.py:3103 flatcamTools/ToolNCC.py:3208 +#: flatcamTools/ToolNCC.py:3223 flatcamTools/ToolNCC.py:3489 +#: flatcamTools/ToolNCC.py:3590 flatcamTools/ToolNCC.py:3605 +msgid "Buffering" +msgstr "Pufferung" + +#: camlib.py:990 msgid "Get Exteriors" msgstr "Holen Sie sich das Äußere" -#: camlib.py:1004 +#: camlib.py:993 msgid "Get Interiors" msgstr "Holen Sie sich Innenräume" -#: camlib.py:2192 +#: camlib.py:2172 msgid "Object was mirrored" msgstr "Objekt wurde gespiegelt" -#: camlib.py:2194 +#: camlib.py:2174 msgid "Failed to mirror. No object selected" msgstr "Spiegelung fehlgeschlagen Kein Objekt ausgewählt" -#: camlib.py:2259 +#: camlib.py:2239 msgid "Object was rotated" msgstr "Objekt wurde gedreht" -#: camlib.py:2261 +#: camlib.py:2241 msgid "Failed to rotate. No object selected" msgstr "Fehler beim Drehen. Kein Objekt ausgewählt" -#: camlib.py:2327 +#: camlib.py:2307 msgid "Object was skewed" msgstr "Objekt war schief" -#: camlib.py:2329 +#: camlib.py:2309 msgid "Failed to skew. No object selected" msgstr "Fehler beim Neigen Kein Objekt ausgewählt" -#: camlib.py:2405 +#: camlib.py:2385 msgid "Object was buffered" msgstr "Objekt wurde gepuffert" -#: camlib.py:2407 +#: camlib.py:2387 msgid "Failed to buffer. No object selected" msgstr "Fehler beim Puffern. Kein Objekt ausgewählt" -#: camlib.py:2650 +#: camlib.py:2594 msgid "There is no such parameter" msgstr "Es gibt keinen solchen Parameter" -#: camlib.py:2718 camlib.py:2970 camlib.py:3233 camlib.py:3489 +#: camlib.py:2654 camlib.py:2887 camlib.py:3116 camlib.py:3338 msgid "" "The Cut Z parameter has positive value. It is the depth value to drill into " "material.\n" @@ -18581,14 +2786,14 @@ msgstr "" "einen negativen Wert. \n" "Überprüfen Sie den resultierenden CNC-Code (Gcode usw.)." -#: camlib.py:2726 camlib.py:2980 camlib.py:3243 camlib.py:3499 camlib.py:3824 -#: camlib.py:4224 +#: camlib.py:2662 camlib.py:2897 camlib.py:3126 camlib.py:3348 camlib.py:3631 +#: camlib.py:4017 msgid "The Cut Z parameter is zero. There will be no cut, skipping file" msgstr "" "Der Parameter Cut Z ist Null. Es wird kein Schnitt ausgeführt, und die Datei " "wird übersprungen" -#: camlib.py:2741 camlib.py:4192 +#: camlib.py:2673 camlib.py:3985 msgid "" "The Toolchange X,Y field in Edit -> Preferences has to be in the format (x, " "y) \n" @@ -18598,7 +2803,7 @@ msgstr "" "(x, y) sein\n" "Aber jetzt gibt es nur einen Wert, nicht zwei. " -#: camlib.py:2754 camlib.py:3771 camlib.py:4170 +#: camlib.py:2682 camlib.py:3582 camlib.py:3967 msgid "" "The End Move X,Y field in Edit -> Preferences has to be in the format (x, y) " "but now there is only one value, not two." @@ -18606,35 +2811,31 @@ msgstr "" "Das Feld Endverschiebung X, Y unter Bearbeiten -> Einstellungen muss das " "Format (x, y) haben, aber jetzt gibt es nur einen Wert, nicht zwei." -#: camlib.py:2842 +#: camlib.py:2770 msgid "Creating a list of points to drill..." msgstr "Erstellen einer Liste von Punkten zum Bohren ..." -#: camlib.py:2866 -msgid "Failed. Drill points inside the exclusion zones." -msgstr "Gescheitert. Bohrpunkte innerhalb der Sperrzonen." - -#: camlib.py:2943 camlib.py:3922 camlib.py:4332 +#: camlib.py:2860 camlib.py:3729 camlib.py:4121 msgid "Starting G-Code" msgstr "G-Code starten" -#: camlib.py:3084 camlib.py:3337 camlib.py:3535 camlib.py:3935 camlib.py:4343 +#: camlib.py:3001 camlib.py:3220 camlib.py:3384 camlib.py:3742 camlib.py:4132 msgid "Starting G-Code for tool with diameter" msgstr "Start-G-Code für Werkzeug mit Durchmesser" -#: camlib.py:3201 camlib.py:3453 camlib.py:3655 +#: camlib.py:3084 camlib.py:3302 camlib.py:3470 msgid "G91 coordinates not implemented" msgstr "G91 Koordinaten nicht implementiert" -#: camlib.py:3207 camlib.py:3460 camlib.py:3660 +#: camlib.py:3090 camlib.py:3309 camlib.py:3475 msgid "The loaded Excellon file has no drills" msgstr "Die geladene Excellon-Datei hat keine Bohrer" -#: camlib.py:3683 +#: camlib.py:3498 msgid "Finished G-Code generation..." msgstr "Fertige G-Code-Generierung ..." -#: camlib.py:3793 +#: camlib.py:3600 msgid "" "The Toolchange X,Y field in Edit -> Preferences has to be in the format (x, " "y) \n" @@ -18644,7 +2845,7 @@ msgstr "" "das Format (x, y) haben.\n" "Aber jetzt gibt es nur einen Wert, nicht zwei." -#: camlib.py:3807 camlib.py:4207 +#: camlib.py:3614 camlib.py:4000 msgid "" "Cut_Z parameter is None or zero. Most likely a bad combinations of other " "parameters." @@ -18652,7 +2853,7 @@ msgstr "" "Der Parameter Cut_Z ist None oder Null. Höchstwahrscheinlich eine schlechte " "Kombination anderer Parameter." -#: camlib.py:3816 camlib.py:4216 +#: camlib.py:3623 camlib.py:4009 msgid "" "The Cut Z parameter has positive value. It is the depth value to cut into " "material.\n" @@ -18667,11 +2868,11 @@ msgstr "" "einen negativen Wert. \n" "Überprüfen Sie den resultierenden CNC-Code (Gcode usw.)." -#: camlib.py:3829 camlib.py:4230 +#: camlib.py:3636 camlib.py:4023 msgid "Travel Z parameter is None or zero." msgstr "Der Parameter für den Travel Z ist Kein oder Null." -#: camlib.py:3834 camlib.py:4235 +#: camlib.py:3641 camlib.py:4028 msgid "" "The Travel Z parameter has negative value. It is the height value to travel " "between cuts.\n" @@ -18685,36 +2886,36 @@ msgstr "" "einen Tippfehler handelt, konvertiert die App den Wert in einen positiven " "Wert. Überprüfen Sie den resultierenden CNC-Code (Gcode usw.)." -#: camlib.py:3842 camlib.py:4243 +#: camlib.py:3649 camlib.py:4036 msgid "The Z Travel parameter is zero. This is dangerous, skipping file" msgstr "" "Der Parameter Z-Weg ist Null. Dies ist gefährlich, da die %s Datei " "übersprungen wird" -#: camlib.py:3861 camlib.py:4266 +#: camlib.py:3668 camlib.py:4059 msgid "Indexing geometry before generating G-Code..." msgstr "Indizierung der Geometrie vor dem Generieren von G-Code ..." -#: camlib.py:4009 camlib.py:4420 +#: camlib.py:3812 camlib.py:4201 msgid "Finished G-Code generation" msgstr "Fertige G-Code-Generierung" -#: camlib.py:4009 +#: camlib.py:3812 msgid "paths traced" msgstr "Pfade verfolgt" -#: camlib.py:4059 +#: camlib.py:3862 msgid "Expected a Geometry, got" msgstr "Erwartet eine Geometrie, erhalten" -#: camlib.py:4066 +#: camlib.py:3869 msgid "" "Trying to generate a CNC Job from a Geometry object without solid_geometry." msgstr "" "Der Versuch, einen CNC-Auftrag aus einem Geometrieobjekt ohne solid_geometry " "zu generieren." -#: camlib.py:4107 +#: camlib.py:3910 msgid "" "The Tool Offset value is too negative to use for the current_geometry.\n" "Raise the value (in module) and try again." @@ -18723,42 +2924,15709 @@ msgstr "" "Geometrie verwendet zu werden.\n" "Erhöhen Sie den Wert (im Modul) und versuchen Sie es erneut." -#: camlib.py:4420 +#: camlib.py:4201 msgid " paths traced." msgstr " Pfade verfolgt." -#: camlib.py:4448 +#: camlib.py:4229 msgid "There is no tool data in the SolderPaste geometry." msgstr "In der SolderPaste-Geometrie sind keine Werkzeugdaten vorhanden." -#: camlib.py:4537 +#: camlib.py:4318 msgid "Finished SolderPaste G-Code generation" msgstr "Fertige G-Code-Generierung für Lötpaste" -#: camlib.py:4537 +#: camlib.py:4318 msgid "paths traced." msgstr "paths traced." -#: camlib.py:4872 +#: camlib.py:4578 msgid "Parsing GCode file. Number of lines" msgstr "Analysieren der GCode-Datei. Anzahl der Zeilen" -#: camlib.py:4979 +#: camlib.py:4685 msgid "Creating Geometry from the parsed GCode file. " msgstr "Erstellen von Geometrie aus der analysierten GCode-Datei. " -#: camlib.py:5147 camlib.py:5420 camlib.py:5568 camlib.py:5737 +#: camlib.py:4828 camlib.py:5118 camlib.py:5229 camlib.py:5385 msgid "G91 coordinates not implemented ..." msgstr "G91 Koordinaten nicht implementiert ..." -#: defaults.py:771 +#: camlib.py:4960 +msgid "Unifying Geometry from parsed Geometry segments" +msgstr "Vereinheitlichen von Geometrie aus analysierten Geometriesegmenten" + +#: defaults.py:401 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:86 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309 +#: flatcamTools/ToolCopperThieving.py:125 flatcamTools/ToolNCC.py:535 +#: flatcamTools/ToolNCC.py:1306 flatcamTools/ToolNCC.py:1634 +#: flatcamTools/ToolNCC.py:1919 flatcamTools/ToolNCC.py:1983 +#: flatcamTools/ToolNCC.py:2967 flatcamTools/ToolNCC.py:2976 +#: tclCommands/TclCommandCopperClear.py:190 +msgid "Itself" +msgstr "Selbst" + +#: defaults.py:428 flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280 +#: flatcamTools/ToolPaint.py:486 flatcamTools/ToolPaint.py:1427 +#: tclCommands/TclCommandPaint.py:162 +msgid "All Polygons" +msgstr "Alle Polygone" + +#: defaults.py:739 msgid "Could not load defaults file." msgstr "Voreinstellungen konnte nicht geladen werden." -#: defaults.py:784 +#: defaults.py:752 msgid "Failed to parse defaults file." msgstr "Fehler beim Einlesen der Voreinstellungen." +#: flatcamEditors/FlatCAMExcEditor.py:50 flatcamEditors/FlatCAMExcEditor.py:74 +#: flatcamEditors/FlatCAMExcEditor.py:168 +#: flatcamEditors/FlatCAMExcEditor.py:385 +#: flatcamEditors/FlatCAMExcEditor.py:589 +#: flatcamEditors/FlatCAMGrbEditor.py:243 +#: flatcamEditors/FlatCAMGrbEditor.py:250 +msgid "Click to place ..." +msgstr "Klicken um zu platzieren ..." + +#: flatcamEditors/FlatCAMExcEditor.py:58 +msgid "To add a drill first select a tool" +msgstr "Um einen Bohrer hinzuzufügen, wählen Sie zuerst ein Werkzeug aus" + +#: flatcamEditors/FlatCAMExcEditor.py:122 +msgid "Done. Drill added." +msgstr "Erledigt. Bohrer hinzugefügt." + +#: flatcamEditors/FlatCAMExcEditor.py:176 +msgid "To add an Drill Array first select a tool in Tool Table" +msgstr "" +"Um ein Bohr-Array hinzuzufügen, wählen Sie zunächst ein Werkzeug in der " +"Werkzeugtabelle aus" + +#: flatcamEditors/FlatCAMExcEditor.py:192 +#: flatcamEditors/FlatCAMExcEditor.py:415 +#: flatcamEditors/FlatCAMExcEditor.py:636 +#: flatcamEditors/FlatCAMExcEditor.py:1151 +#: flatcamEditors/FlatCAMExcEditor.py:1178 +#: flatcamEditors/FlatCAMGrbEditor.py:473 +#: flatcamEditors/FlatCAMGrbEditor.py:1937 +#: flatcamEditors/FlatCAMGrbEditor.py:1967 +msgid "Click on target location ..." +msgstr "Klicken Sie auf den Zielort ..." + +#: flatcamEditors/FlatCAMExcEditor.py:211 +msgid "Click on the Drill Circular Array Start position" +msgstr "Klicken Sie auf die Startposition des Bohrkreis-Arrays" + +#: flatcamEditors/FlatCAMExcEditor.py:233 +#: flatcamEditors/FlatCAMExcEditor.py:677 +#: flatcamEditors/FlatCAMGrbEditor.py:518 +msgid "The value is not Float. Check for comma instead of dot separator." +msgstr "" +"Der Wert ist nicht Real. Überprüfen Sie das Komma anstelle des Trennzeichens." + +#: flatcamEditors/FlatCAMExcEditor.py:237 +msgid "The value is mistyped. Check the value" +msgstr "Der Wert ist falsch geschrieben. Überprüfen Sie den Wert" + +#: flatcamEditors/FlatCAMExcEditor.py:336 +msgid "Too many drills for the selected spacing angle." +msgstr "Zu viele Bohrer für den ausgewählten Abstandswinkel." + +#: flatcamEditors/FlatCAMExcEditor.py:354 +msgid "Done. Drill Array added." +msgstr "Erledigt. Bohrfeld hinzugefügt." + +#: flatcamEditors/FlatCAMExcEditor.py:394 +msgid "To add a slot first select a tool" +msgstr "Um einen Steckplatz hinzuzufügen, wählen Sie zunächst ein Werkzeug aus" + +#: flatcamEditors/FlatCAMExcEditor.py:454 +#: flatcamEditors/FlatCAMExcEditor.py:461 +#: flatcamEditors/FlatCAMExcEditor.py:742 +#: flatcamEditors/FlatCAMExcEditor.py:749 +msgid "Value is missing or wrong format. Add it and retry." +msgstr "" +"Wert fehlt oder falsches Format. Fügen Sie es hinzu und versuchen Sie es " +"erneut." + +#: flatcamEditors/FlatCAMExcEditor.py:559 +msgid "Done. Adding Slot completed." +msgstr "Erledigt. Das Hinzufügen des Slots ist abgeschlossen." + +#: flatcamEditors/FlatCAMExcEditor.py:597 +msgid "To add an Slot Array first select a tool in Tool Table" +msgstr "" +"Um ein Schlitze-Array hinzuzufügen, wählen Sie zunächst ein Werkzeug in der " +"Werkzeugtabelle aus" + +#: flatcamEditors/FlatCAMExcEditor.py:655 +msgid "Click on the Slot Circular Array Start position" +msgstr "Klicken Sie auf die kreisförmige Startposition des Arrays" + +#: flatcamEditors/FlatCAMExcEditor.py:680 +#: flatcamEditors/FlatCAMGrbEditor.py:521 +msgid "The value is mistyped. Check the value." +msgstr "Der Wert ist falsch geschrieben. Überprüfen Sie den Wert." + +#: flatcamEditors/FlatCAMExcEditor.py:859 +msgid "Too many Slots for the selected spacing angle." +msgstr "Zu viele Slots für den ausgewählten Abstandswinkel." + +#: flatcamEditors/FlatCAMExcEditor.py:882 +msgid "Done. Slot Array added." +msgstr "Erledigt. Schlitze Array hinzugefügt." + +#: flatcamEditors/FlatCAMExcEditor.py:904 +msgid "Click on the Drill(s) to resize ..." +msgstr "Klicken Sie auf die Bohrer, um die Größe zu ändern ..." + +#: flatcamEditors/FlatCAMExcEditor.py:934 +msgid "Resize drill(s) failed. Please enter a diameter for resize." +msgstr "" +"Die Größe der Bohrer ist fehlgeschlagen. Bitte geben Sie einen Durchmesser " +"für die Größenänderung ein." + +#: flatcamEditors/FlatCAMExcEditor.py:1112 +msgid "Done. Drill/Slot Resize completed." +msgstr "Getan. Bohrer / Schlitz Größenänderung abgeschlossen." + +#: flatcamEditors/FlatCAMExcEditor.py:1115 +msgid "Cancelled. No drills/slots selected for resize ..." +msgstr "Abgebrochen. Keine Bohrer / Schlitze für Größenänderung ausgewählt ..." + +#: flatcamEditors/FlatCAMExcEditor.py:1153 +#: flatcamEditors/FlatCAMGrbEditor.py:1939 +msgid "Click on reference location ..." +msgstr "Klicken Sie auf die Referenzposition ..." + +#: flatcamEditors/FlatCAMExcEditor.py:1210 +msgid "Done. Drill(s) Move completed." +msgstr "Erledigt. Bohrer Bewegen abgeschlossen." + +#: flatcamEditors/FlatCAMExcEditor.py:1318 +msgid "Done. Drill(s) copied." +msgstr "Erledigt. Bohrer kopiert." + +#: flatcamEditors/FlatCAMExcEditor.py:1557 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:26 +msgid "Excellon Editor" +msgstr "Excellon Editor" + +#: flatcamEditors/FlatCAMExcEditor.py:1564 +#: flatcamEditors/FlatCAMGrbEditor.py:2462 +msgid "Name:" +msgstr "Name:" + +#: flatcamEditors/FlatCAMExcEditor.py:1570 flatcamGUI/ObjectUI.py:761 +#: flatcamGUI/ObjectUI.py:1465 flatcamTools/ToolNCC.py:120 +#: flatcamTools/ToolPaint.py:115 flatcamTools/ToolSolderPaste.py:74 +msgid "Tools Table" +msgstr "Werkzeugtabelle" + +#: flatcamEditors/FlatCAMExcEditor.py:1572 flatcamGUI/ObjectUI.py:763 +msgid "" +"Tools in this Excellon object\n" +"when are used for drilling." +msgstr "" +"Werkzeuge in diesem Excellon-Objekt\n" +"Wann werden zum Bohren verwendet." + +#: flatcamEditors/FlatCAMExcEditor.py:1584 +#: flatcamEditors/FlatCAMExcEditor.py:3066 flatcamGUI/ObjectUI.py:781 +#: flatcamObjects/FlatCAMExcellon.py:1098 +#: flatcamObjects/FlatCAMExcellon.py:1188 +#: flatcamObjects/FlatCAMExcellon.py:1373 flatcamTools/ToolNCC.py:132 +#: flatcamTools/ToolPaint.py:128 flatcamTools/ToolPcbWizard.py:76 +#: flatcamTools/ToolProperties.py:416 flatcamTools/ToolProperties.py:476 +#: flatcamTools/ToolSolderPaste.py:85 tclCommands/TclCommandDrillcncjob.py:193 +msgid "Diameter" +msgstr "Durchmesser" + +#: flatcamEditors/FlatCAMExcEditor.py:1592 +msgid "Add/Delete Tool" +msgstr "Werkzeug hinzufügen / löschen" + +#: flatcamEditors/FlatCAMExcEditor.py:1594 +msgid "" +"Add/Delete a tool to the tool list\n" +"for this Excellon object." +msgstr "" +"Werkzeug zur Werkzeugliste hinzufügen / löschen\n" +"für dieses Excellon-Objekt." + +#: flatcamEditors/FlatCAMExcEditor.py:1606 flatcamGUI/ObjectUI.py:1585 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:57 +msgid "Diameter for the new tool" +msgstr "Durchmesser für das neue Werkzeug" + +#: flatcamEditors/FlatCAMExcEditor.py:1616 +msgid "Add Tool" +msgstr "Werkzeug hinzufügen" + +#: flatcamEditors/FlatCAMExcEditor.py:1618 +msgid "" +"Add a new tool to the tool list\n" +"with the diameter specified above." +msgstr "" +"Fügen Sie der Werkzeugliste ein neues Werkzeug hinzu\n" +"mit dem oben angegebenen Durchmesser." + +#: flatcamEditors/FlatCAMExcEditor.py:1630 +msgid "Delete Tool" +msgstr "Werkzeug löschen" + +#: flatcamEditors/FlatCAMExcEditor.py:1632 +msgid "" +"Delete a tool in the tool list\n" +"by selecting a row in the tool table." +msgstr "" +"Löschen Sie ein Werkzeug in der Werkzeugliste\n" +"indem Sie eine Zeile in der Werkzeugtabelle auswählen." + +#: flatcamEditors/FlatCAMExcEditor.py:1650 flatcamGUI/FlatCAMGUI.py:2019 +msgid "Resize Drill(s)" +msgstr "Größe der Bohrer ändern" + +#: flatcamEditors/FlatCAMExcEditor.py:1652 +msgid "Resize a drill or a selection of drills." +msgstr "Ändern Sie die Größe eines Bohrers oder einer Auswahl von Bohrern." + +#: flatcamEditors/FlatCAMExcEditor.py:1659 +msgid "Resize Dia" +msgstr "Durchmesser ändern" + +#: flatcamEditors/FlatCAMExcEditor.py:1661 +msgid "Diameter to resize to." +msgstr "Durchmesser zur Größenänderung." + +#: flatcamEditors/FlatCAMExcEditor.py:1672 +msgid "Resize" +msgstr "Größe ändern" + +#: flatcamEditors/FlatCAMExcEditor.py:1674 +msgid "Resize drill(s)" +msgstr "Bohrer verkleinern" + +#: flatcamEditors/FlatCAMExcEditor.py:1699 flatcamGUI/FlatCAMGUI.py:2018 +#: flatcamGUI/FlatCAMGUI.py:2270 +msgid "Add Drill Array" +msgstr "Bohrer-Array hinzufügen" + +#: flatcamEditors/FlatCAMExcEditor.py:1701 +msgid "Add an array of drills (linear or circular array)" +msgstr "" +"Hinzufügen eines Arrays von Bohrern (lineares oder kreisförmiges Array)" + +#: flatcamEditors/FlatCAMExcEditor.py:1707 +msgid "" +"Select the type of drills array to create.\n" +"It can be Linear X(Y) or Circular" +msgstr "" +"Wählen Sie den Typ des zu erstellenden Bohrfelds aus.\n" +"Es kann lineares X (Y) oder rund sein" + +#: flatcamEditors/FlatCAMExcEditor.py:1710 +#: flatcamEditors/FlatCAMExcEditor.py:1924 +#: flatcamEditors/FlatCAMGrbEditor.py:2775 +msgid "Linear" +msgstr "Linear" + +#: flatcamEditors/FlatCAMExcEditor.py:1711 +#: flatcamEditors/FlatCAMExcEditor.py:1925 +#: flatcamEditors/FlatCAMGrbEditor.py:2776 flatcamGUI/ObjectUI.py:316 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:52 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:149 +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:107 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:52 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:151 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:61 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:70 +#: flatcamTools/ToolExtractDrills.py:78 flatcamTools/ToolExtractDrills.py:201 +#: flatcamTools/ToolFiducials.py:220 flatcamTools/ToolNCC.py:221 +#: flatcamTools/ToolPaint.py:204 flatcamTools/ToolPunchGerber.py:89 +#: flatcamTools/ToolPunchGerber.py:229 +msgid "Circular" +msgstr "Kreisförmig" + +#: flatcamEditors/FlatCAMExcEditor.py:1719 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:68 +msgid "Nr of drills" +msgstr "Anzahl der Bohrer" + +#: flatcamEditors/FlatCAMExcEditor.py:1720 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:70 +msgid "Specify how many drills to be in the array." +msgstr "Geben Sie an, wie viele Drills im Array enthalten sein sollen." + +#: flatcamEditors/FlatCAMExcEditor.py:1738 +#: flatcamEditors/FlatCAMExcEditor.py:1788 +#: flatcamEditors/FlatCAMExcEditor.py:1860 +#: flatcamEditors/FlatCAMExcEditor.py:1953 +#: flatcamEditors/FlatCAMExcEditor.py:2004 +#: flatcamEditors/FlatCAMGrbEditor.py:1573 +#: flatcamEditors/FlatCAMGrbEditor.py:2804 +#: flatcamEditors/FlatCAMGrbEditor.py:2853 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:178 +msgid "Direction" +msgstr "Richtung" + +#: flatcamEditors/FlatCAMExcEditor.py:1740 +#: flatcamEditors/FlatCAMExcEditor.py:1955 +#: flatcamEditors/FlatCAMGrbEditor.py:2806 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:86 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:234 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:122 +msgid "" +"Direction on which the linear array is oriented:\n" +"- 'X' - horizontal axis \n" +"- 'Y' - vertical axis or \n" +"- 'Angle' - a custom angle for the array inclination" +msgstr "" +"Richtung, auf die das lineare Array ausgerichtet ist:\n" +"- 'X' - horizontale Achse\n" +"- 'Y' - vertikale Achse oder\n" +"- 'Winkel' - ein benutzerdefinierter Winkel für die Neigung des Arrays" + +#: flatcamEditors/FlatCAMExcEditor.py:1747 +#: flatcamEditors/FlatCAMExcEditor.py:1869 +#: flatcamEditors/FlatCAMExcEditor.py:1962 +#: flatcamEditors/FlatCAMGrbEditor.py:2813 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:92 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:187 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:240 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:128 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:208 +#: flatcamTools/ToolFilm.py:256 +msgid "X" +msgstr "X" + +#: flatcamEditors/FlatCAMExcEditor.py:1748 +#: flatcamEditors/FlatCAMExcEditor.py:1870 +#: flatcamEditors/FlatCAMExcEditor.py:1963 +#: flatcamEditors/FlatCAMGrbEditor.py:2814 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:93 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:188 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:241 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:129 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:209 +#: flatcamTools/ToolFilm.py:257 +msgid "Y" +msgstr "Y" + +#: flatcamEditors/FlatCAMExcEditor.py:1749 +#: flatcamEditors/FlatCAMExcEditor.py:1766 +#: flatcamEditors/FlatCAMExcEditor.py:1800 +#: flatcamEditors/FlatCAMExcEditor.py:1871 +#: flatcamEditors/FlatCAMExcEditor.py:1875 +#: flatcamEditors/FlatCAMExcEditor.py:1964 +#: flatcamEditors/FlatCAMExcEditor.py:1982 +#: flatcamEditors/FlatCAMExcEditor.py:2016 +#: flatcamEditors/FlatCAMGrbEditor.py:2815 +#: flatcamEditors/FlatCAMGrbEditor.py:2832 +#: flatcamEditors/FlatCAMGrbEditor.py:2868 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:94 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:113 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:189 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:194 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:242 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:263 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:130 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:148 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:53 +#: flatcamTools/ToolDistance.py:120 flatcamTools/ToolDistanceMin.py:69 +#: flatcamTools/ToolTransform.py:60 +msgid "Angle" +msgstr "Winkel" + +#: flatcamEditors/FlatCAMExcEditor.py:1753 +#: flatcamEditors/FlatCAMExcEditor.py:1968 +#: flatcamEditors/FlatCAMGrbEditor.py:2819 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:100 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:248 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:136 +msgid "Pitch" +msgstr "Abstand" + +#: flatcamEditors/FlatCAMExcEditor.py:1755 +#: flatcamEditors/FlatCAMExcEditor.py:1970 +#: flatcamEditors/FlatCAMGrbEditor.py:2821 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:102 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:250 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:138 +msgid "Pitch = Distance between elements of the array." +msgstr "Abstand = Abstand zwischen Elementen des Arrays." + +#: flatcamEditors/FlatCAMExcEditor.py:1768 +#: flatcamEditors/FlatCAMExcEditor.py:1984 +msgid "" +"Angle at which the linear array is placed.\n" +"The precision is of max 2 decimals.\n" +"Min value is: -360 degrees.\n" +"Max value is: 360.00 degrees." +msgstr "" +"Winkel, bei dem das lineare Feld platziert wird.\n" +"Die Genauigkeit beträgt maximal 2 Dezimalstellen.\n" +"Der Mindestwert beträgt -360 Grad.\n" +"Maximalwert ist: 360.00 Grad." + +#: flatcamEditors/FlatCAMExcEditor.py:1789 +#: flatcamEditors/FlatCAMExcEditor.py:2005 +#: flatcamEditors/FlatCAMGrbEditor.py:2855 +msgid "" +"Direction for circular array.Can be CW = clockwise or CCW = counter " +"clockwise." +msgstr "" +"Richtung für kreisförmige Anordnung. Kann CW = Uhrzeigersinn oder CCW = " +"Gegenuhrzeigersinn sein." + +#: flatcamEditors/FlatCAMExcEditor.py:1796 +#: flatcamEditors/FlatCAMExcEditor.py:2012 +#: flatcamEditors/FlatCAMGrbEditor.py:2863 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:129 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:136 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:286 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:142 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:170 +msgid "CW" +msgstr "CW" + +#: flatcamEditors/FlatCAMExcEditor.py:1797 +#: flatcamEditors/FlatCAMExcEditor.py:2013 +#: flatcamEditors/FlatCAMGrbEditor.py:2864 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:130 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:137 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:287 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:143 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:171 +msgid "CCW" +msgstr "CCW" + +#: flatcamEditors/FlatCAMExcEditor.py:1801 +#: flatcamEditors/FlatCAMExcEditor.py:2017 +#: flatcamEditors/FlatCAMGrbEditor.py:2870 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:115 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:145 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:265 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:295 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:150 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:179 +msgid "Angle at which each element in circular array is placed." +msgstr "" +"Winkel, um den jedes Element in einer kreisförmigen Anordnung platziert wird." + +#: flatcamEditors/FlatCAMExcEditor.py:1835 +msgid "Slot Parameters" +msgstr "Schlitze-Parameter" + +#: flatcamEditors/FlatCAMExcEditor.py:1837 +msgid "" +"Parameters for adding a slot (hole with oval shape)\n" +"either single or as an part of an array." +msgstr "" +"Parameter zum Hinzufügen eines Schlitzes (Loch mit ovaler Form)\n" +"entweder einzeln oder als Teil eines Arrays." + +#: flatcamEditors/FlatCAMExcEditor.py:1846 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:162 +#: flatcamTools/ToolProperties.py:559 +msgid "Length" +msgstr "Länge" + +#: flatcamEditors/FlatCAMExcEditor.py:1848 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:164 +msgid "Length = The length of the slot." +msgstr "Länge = Die Länge des Schlitzes." + +#: flatcamEditors/FlatCAMExcEditor.py:1862 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:180 +msgid "" +"Direction on which the slot is oriented:\n" +"- 'X' - horizontal axis \n" +"- 'Y' - vertical axis or \n" +"- 'Angle' - a custom angle for the slot inclination" +msgstr "" +"Richtung, in die der Steckplatz ausgerichtet ist:\n" +"- 'X' - horizontale Achse\n" +"- 'Y' - vertikale Achse oder\n" +"- 'Winkel' - Ein benutzerdefinierter Winkel für die Schlitzneigung" + +#: flatcamEditors/FlatCAMExcEditor.py:1877 +msgid "" +"Angle at which the slot is placed.\n" +"The precision is of max 2 decimals.\n" +"Min value is: -360 degrees.\n" +"Max value is: 360.00 degrees." +msgstr "" +"Winkel, in dem der Schlitz platziert ist.\n" +"Die Genauigkeit beträgt maximal 2 Dezimalstellen.\n" +"Der Mindestwert beträgt: -360 Grad.\n" +"Maximaler Wert ist: 360.00 Grad." + +#: flatcamEditors/FlatCAMExcEditor.py:1910 +msgid "Slot Array Parameters" +msgstr "Schlitzes Array-Parameter" + +#: flatcamEditors/FlatCAMExcEditor.py:1912 +msgid "Parameters for the array of slots (linear or circular array)" +msgstr "" +"Parameter für das Array von Schlitzes (lineares oder kreisförmiges Array)" + +#: flatcamEditors/FlatCAMExcEditor.py:1921 +msgid "" +"Select the type of slot array to create.\n" +"It can be Linear X(Y) or Circular" +msgstr "" +"Wählen Sie den Typ des zu erstellenden Slot-Arrays.\n" +"Es kann ein lineares X (Y) oder ein kreisförmiges sein" + +#: flatcamEditors/FlatCAMExcEditor.py:1933 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:219 +msgid "Nr of slots" +msgstr "Anzahl der Slots" + +#: flatcamEditors/FlatCAMExcEditor.py:1934 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:221 +msgid "Specify how many slots to be in the array." +msgstr "Geben Sie an, wie viele Steckplätze sich im Array befinden sollen." + +#: flatcamEditors/FlatCAMExcEditor.py:2452 +#: flatcamObjects/FlatCAMExcellon.py:410 +msgid "Total Drills" +msgstr "Bohrungen insgesamt" + +#: flatcamEditors/FlatCAMExcEditor.py:2484 +#: flatcamObjects/FlatCAMExcellon.py:441 +msgid "Total Slots" +msgstr "Schlitz insgesamt" + +#: flatcamEditors/FlatCAMExcEditor.py:2559 +#: flatcamEditors/FlatCAMGeoEditor.py:1076 +#: flatcamEditors/FlatCAMGeoEditor.py:1117 +#: flatcamEditors/FlatCAMGeoEditor.py:1145 +#: flatcamEditors/FlatCAMGeoEditor.py:1173 +#: flatcamEditors/FlatCAMGeoEditor.py:1217 +#: flatcamEditors/FlatCAMGeoEditor.py:1252 +#: flatcamEditors/FlatCAMGeoEditor.py:1280 +#: flatcamObjects/FlatCAMGeometry.py:599 flatcamObjects/FlatCAMGeometry.py:1033 +#: flatcamObjects/FlatCAMGeometry.py:1780 +#: flatcamObjects/FlatCAMGeometry.py:2424 flatcamTools/ToolNCC.py:1498 +#: flatcamTools/ToolPaint.py:1249 flatcamTools/ToolPaint.py:1420 +#: flatcamTools/ToolSolderPaste.py:883 flatcamTools/ToolSolderPaste.py:956 +msgid "Wrong value format entered, use a number." +msgstr "Falsches Wertformat eingegeben, eine Zahl verwenden." + +#: flatcamEditors/FlatCAMExcEditor.py:2570 +msgid "" +"Tool already in the original or actual tool list.\n" +"Save and reedit Excellon if you need to add this tool. " +msgstr "" +"Werkzeug bereits in der ursprünglichen oder tatsächlichen Werkzeugliste.\n" +"Speichern Sie Excellon und bearbeiten Sie es erneut, wenn Sie dieses Tool " +"hinzufügen müssen. " + +#: flatcamEditors/FlatCAMExcEditor.py:2579 flatcamGUI/FlatCAMGUI.py:4071 +msgid "Added new tool with dia" +msgstr "Neues Werkzeug mit Durchmesser hinzugefügt" + +#: flatcamEditors/FlatCAMExcEditor.py:2612 +msgid "Select a tool in Tool Table" +msgstr "Wählen Sie ein Werkzeug in der Werkzeugtabelle aus" + +#: flatcamEditors/FlatCAMExcEditor.py:2642 +msgid "Deleted tool with diameter" +msgstr "Gelöschtes Werkzeug mit Durchmesser" + +#: flatcamEditors/FlatCAMExcEditor.py:2790 +msgid "Done. Tool edit completed." +msgstr "Erledigt. Werkzeugbearbeitung abgeschlossen." + +#: flatcamEditors/FlatCAMExcEditor.py:3352 +msgid "There are no Tools definitions in the file. Aborting Excellon creation." +msgstr "" +"Die Datei enthält keine Werkzeugdefinitionen. Abbruch der Excellon-" +"Erstellung." + +#: flatcamEditors/FlatCAMExcEditor.py:3356 +msgid "An internal error has ocurred. See Shell.\n" +msgstr "" +"Ein interner Fehler ist aufgetreten. Siehe Shell.\n" +"\n" + +#: flatcamEditors/FlatCAMExcEditor.py:3361 +msgid "Creating Excellon." +msgstr "Excellon erstellen." + +#: flatcamEditors/FlatCAMExcEditor.py:3373 +msgid "Excellon editing finished." +msgstr "Excellon-Bearbeitung abgeschlossen." + +#: flatcamEditors/FlatCAMExcEditor.py:3390 +msgid "Cancelled. There is no Tool/Drill selected" +msgstr "Abgebrochen. Es ist kein Werkzeug / Bohrer ausgewählt" + +#: flatcamEditors/FlatCAMExcEditor.py:4003 +msgid "Done. Drill(s) deleted." +msgstr "Erledigt. Bohrer gelöscht." + +#: flatcamEditors/FlatCAMExcEditor.py:4076 +#: flatcamEditors/FlatCAMExcEditor.py:4086 +#: flatcamEditors/FlatCAMGrbEditor.py:5063 +msgid "Click on the circular array Center position" +msgstr "Klicken Sie auf die kreisförmige Anordnung in der Mitte" + +#: flatcamEditors/FlatCAMGeoEditor.py:85 +msgid "Buffer distance:" +msgstr "Pufferabstand:" + +#: flatcamEditors/FlatCAMGeoEditor.py:86 +msgid "Buffer corner:" +msgstr "Pufferecke:" + +#: flatcamEditors/FlatCAMGeoEditor.py:88 +msgid "" +"There are 3 types of corners:\n" +" - 'Round': the corner is rounded for exterior buffer.\n" +" - 'Square': the corner is met in a sharp angle for exterior buffer.\n" +" - 'Beveled': the corner is a line that directly connects the features " +"meeting in the corner" +msgstr "" +"Es gibt 3 Arten von Ecken:\n" +"- 'Rund': Die Ecke wird für den Außenpuffer abgerundet.\n" +"- 'Quadrat:' Die Ecke wird für den äußeren Puffer in einem spitzen Winkel " +"getroffen.\n" +"- 'Abgeschrägt:' Die Ecke ist eine Linie, die die Features, die sich in der " +"Ecke treffen, direkt verbindet" + +#: flatcamEditors/FlatCAMGeoEditor.py:94 +#: flatcamEditors/FlatCAMGrbEditor.py:2631 +msgid "Round" +msgstr "Runden" + +#: flatcamEditors/FlatCAMGeoEditor.py:95 +#: flatcamEditors/FlatCAMGrbEditor.py:2632 flatcamGUI/ObjectUI.py:2073 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:217 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:68 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:175 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:68 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:177 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:143 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:327 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:291 +#: flatcamTools/ToolExtractDrills.py:94 flatcamTools/ToolExtractDrills.py:227 +#: flatcamTools/ToolNCC.py:583 flatcamTools/ToolPaint.py:527 +#: flatcamTools/ToolPunchGerber.py:105 flatcamTools/ToolPunchGerber.py:255 +#: flatcamTools/ToolQRCode.py:198 +msgid "Square" +msgstr "Quadrat" + +#: flatcamEditors/FlatCAMGeoEditor.py:96 +#: flatcamEditors/FlatCAMGrbEditor.py:2633 +msgid "Beveled" +msgstr "Abgeschrägt" + +#: flatcamEditors/FlatCAMGeoEditor.py:103 +msgid "Buffer Interior" +msgstr "Pufferinnenraum" + +#: flatcamEditors/FlatCAMGeoEditor.py:105 +msgid "Buffer Exterior" +msgstr "Puffer außen" + +#: flatcamEditors/FlatCAMGeoEditor.py:111 +msgid "Full Buffer" +msgstr "Voller Puffer" + +#: flatcamEditors/FlatCAMGeoEditor.py:132 +#: flatcamEditors/FlatCAMGeoEditor.py:3017 flatcamGUI/FlatCAMGUI.py:1928 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:190 +msgid "Buffer Tool" +msgstr "Pufferwerkzeug" + +#: flatcamEditors/FlatCAMGeoEditor.py:144 +#: flatcamEditors/FlatCAMGeoEditor.py:161 +#: flatcamEditors/FlatCAMGeoEditor.py:178 +#: flatcamEditors/FlatCAMGeoEditor.py:3036 +#: flatcamEditors/FlatCAMGeoEditor.py:3064 +#: flatcamEditors/FlatCAMGeoEditor.py:3092 +#: flatcamEditors/FlatCAMGrbEditor.py:5116 +msgid "Buffer distance value is missing or wrong format. Add it and retry." +msgstr "" +"Pufferabstandswert fehlt oder falsches Format. Fügen Sie es hinzu und " +"versuchen Sie es erneut." + +#: flatcamEditors/FlatCAMGeoEditor.py:242 +msgid "Font" +msgstr "Schrift" + +#: flatcamEditors/FlatCAMGeoEditor.py:323 flatcamGUI/FlatCAMGUI.py:2208 +msgid "Text" +msgstr "Text" + +#: flatcamEditors/FlatCAMGeoEditor.py:349 +msgid "Text Tool" +msgstr "Textwerkzeug" + +#: flatcamEditors/FlatCAMGeoEditor.py:405 flatcamGUI/FlatCAMGUI.py:511 +#: flatcamGUI/FlatCAMGUI.py:1158 flatcamGUI/ObjectUI.py:818 +#: flatcamGUI/ObjectUI.py:1662 flatcamObjects/FlatCAMExcellon.py:742 +#: flatcamObjects/FlatCAMExcellon.py:1084 flatcamObjects/FlatCAMGeometry.py:759 +#: flatcamTools/ToolNCC.py:331 flatcamTools/ToolNCC.py:797 +#: flatcamTools/ToolPaint.py:314 flatcamTools/ToolPaint.py:767 +msgid "Tool" +msgstr "Werkzeug" + +#: flatcamEditors/FlatCAMGeoEditor.py:439 flatcamGUI/ObjectUI.py:364 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:43 +msgid "Tool dia" +msgstr "Werkzeugdurchmesser" + +#: flatcamEditors/FlatCAMGeoEditor.py:441 +msgid "Diameter of the tool to be used in the operation." +msgstr "Durchmesser des im Betrieb zu verwendenden Werkzeugs." + +#: flatcamEditors/FlatCAMGeoEditor.py:487 +msgid "" +"Algorithm to paint the polygons:\n" +"- Standard: Fixed step inwards.\n" +"- Seed-based: Outwards from seed.\n" +"- Line-based: Parallel lines." +msgstr "" +"Algorithmus zum Malen der Polygone:\n" +"- Standard: Schritt nach innen behoben.\n" +"- Samenbasiert: Aus dem Samen heraus.\n" +"- Linienbasiert: Parallele Linien." + +#: flatcamEditors/FlatCAMGeoEditor.py:506 +msgid "Connect:" +msgstr "Verbinden:" + +#: flatcamEditors/FlatCAMGeoEditor.py:516 +msgid "Contour:" +msgstr "Kontur:" + +#: flatcamEditors/FlatCAMGeoEditor.py:529 flatcamGUI/FlatCAMGUI.py:2212 +msgid "Paint" +msgstr "Malen" + +#: flatcamEditors/FlatCAMGeoEditor.py:547 flatcamGUI/FlatCAMGUI.py:924 +#: flatcamGUI/FlatCAMGUI.py:2628 flatcamGUI/ObjectUI.py:2139 +#: flatcamTools/ToolPaint.py:43 flatcamTools/ToolPaint.py:738 +msgid "Paint Tool" +msgstr "Werkzeug Malen" + +#: flatcamEditors/FlatCAMGeoEditor.py:583 +#: flatcamEditors/FlatCAMGeoEditor.py:1055 +#: flatcamEditors/FlatCAMGeoEditor.py:3024 +#: flatcamEditors/FlatCAMGeoEditor.py:3052 +#: flatcamEditors/FlatCAMGeoEditor.py:3080 +#: flatcamEditors/FlatCAMGeoEditor.py:4502 +#: flatcamEditors/FlatCAMGrbEditor.py:5767 +msgid "Cancelled. No shape selected." +msgstr "Abgebrochen. Keine Form ausgewählt." + +#: flatcamEditors/FlatCAMGeoEditor.py:596 +#: flatcamEditors/FlatCAMGeoEditor.py:3042 +#: flatcamEditors/FlatCAMGeoEditor.py:3070 +#: flatcamEditors/FlatCAMGeoEditor.py:3098 +#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:59 +#: flatcamTools/ToolProperties.py:117 flatcamTools/ToolProperties.py:162 +msgid "Tools" +msgstr "Werkzeuge" + +#: flatcamEditors/FlatCAMGeoEditor.py:607 +#: flatcamEditors/FlatCAMGeoEditor.py:991 +#: flatcamEditors/FlatCAMGrbEditor.py:5306 +#: flatcamEditors/FlatCAMGrbEditor.py:5703 flatcamGUI/FlatCAMGUI.py:945 +#: flatcamGUI/FlatCAMGUI.py:2649 flatcamTools/ToolTransform.py:460 +msgid "Transform Tool" +msgstr "Werkzeug Umwandeln" + +#: flatcamEditors/FlatCAMGeoEditor.py:608 +#: flatcamEditors/FlatCAMGeoEditor.py:673 +#: flatcamEditors/FlatCAMGrbEditor.py:5307 +#: flatcamEditors/FlatCAMGrbEditor.py:5372 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:45 +#: flatcamTools/ToolTransform.py:24 flatcamTools/ToolTransform.py:466 +msgid "Rotate" +msgstr "Drehen" + +#: flatcamEditors/FlatCAMGeoEditor.py:609 +#: flatcamEditors/FlatCAMGrbEditor.py:5308 flatcamTools/ToolTransform.py:25 +msgid "Skew/Shear" +msgstr "Neigung/Schere" + +#: flatcamEditors/FlatCAMGeoEditor.py:610 +#: flatcamEditors/FlatCAMGrbEditor.py:2680 +#: flatcamEditors/FlatCAMGrbEditor.py:5309 flatcamGUI/FlatCAMGUI.py:1063 +#: flatcamGUI/FlatCAMGUI.py:2140 flatcamGUI/FlatCAMGUI.py:2255 +#: flatcamGUI/FlatCAMGUI.py:2767 flatcamGUI/ObjectUI.py:125 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:95 +#: flatcamTools/ToolTransform.py:26 +msgid "Scale" +msgstr "Skalieren" + +#: flatcamEditors/FlatCAMGeoEditor.py:611 +#: flatcamEditors/FlatCAMGrbEditor.py:5310 flatcamTools/ToolTransform.py:27 +msgid "Mirror (Flip)" +msgstr "Spiegeln (Flip)" + +#: flatcamEditors/FlatCAMGeoEditor.py:625 +#: flatcamEditors/FlatCAMGrbEditor.py:5324 flatcamGUI/FlatCAMGUI.py:856 +#: flatcamGUI/FlatCAMGUI.py:2564 +msgid "Editor" +msgstr "Editor" + +#: flatcamEditors/FlatCAMGeoEditor.py:657 +#: flatcamEditors/FlatCAMGrbEditor.py:5356 +msgid "Angle:" +msgstr "Winkel:" + +#: flatcamEditors/FlatCAMGeoEditor.py:659 +#: flatcamEditors/FlatCAMGrbEditor.py:5358 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:55 +#: flatcamTools/ToolTransform.py:62 +msgid "" +"Angle for Rotation action, in degrees.\n" +"Float number between -360 and 359.\n" +"Positive numbers for CW motion.\n" +"Negative numbers for CCW motion." +msgstr "" +"Drehwinkel in Grad.\n" +"Float-Nummer zwischen -360 und 359.\n" +"Positive Zahlen für CW-Bewegung.\n" +"Negative Zahlen für CCW-Bewegung." + +#: flatcamEditors/FlatCAMGeoEditor.py:675 +#: flatcamEditors/FlatCAMGrbEditor.py:5374 +msgid "" +"Rotate the selected shape(s).\n" +"The point of reference is the middle of\n" +"the bounding box for all selected shapes." +msgstr "" +"Die ausgewählten Formen drehen.\n" +"Der Bezugspunkt ist die Mitte von\n" +"der Begrenzungsrahmen für alle ausgewählten Formen." + +#: flatcamEditors/FlatCAMGeoEditor.py:698 +#: flatcamEditors/FlatCAMGrbEditor.py:5397 +msgid "Angle X:" +msgstr "Winkel X:" + +#: flatcamEditors/FlatCAMGeoEditor.py:700 +#: flatcamEditors/FlatCAMGeoEditor.py:720 +#: flatcamEditors/FlatCAMGrbEditor.py:5399 +#: flatcamEditors/FlatCAMGrbEditor.py:5419 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:74 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:88 +#: flatcamTools/ToolCalibration.py:505 flatcamTools/ToolCalibration.py:518 +msgid "" +"Angle for Skew action, in degrees.\n" +"Float number between -360 and 359." +msgstr "" +"Winkel für die Schräglage in Grad.\n" +"Float-Nummer zwischen -360 und 359." + +#: flatcamEditors/FlatCAMGeoEditor.py:711 +#: flatcamEditors/FlatCAMGrbEditor.py:5410 flatcamTools/ToolTransform.py:467 +msgid "Skew X" +msgstr "Neigung X" + +#: flatcamEditors/FlatCAMGeoEditor.py:713 +#: flatcamEditors/FlatCAMGeoEditor.py:733 +#: flatcamEditors/FlatCAMGrbEditor.py:5412 +#: flatcamEditors/FlatCAMGrbEditor.py:5432 +msgid "" +"Skew/shear the selected shape(s).\n" +"The point of reference is the middle of\n" +"the bounding box for all selected shapes." +msgstr "" +"Schrägstellung/Scherung der ausgewählten Form(en).\n" +"Der Bezugspunkt ist die Mitte von\n" +"der Begrenzungsrahmen für alle ausgewählten Formen." + +#: flatcamEditors/FlatCAMGeoEditor.py:718 +#: flatcamEditors/FlatCAMGrbEditor.py:5417 +msgid "Angle Y:" +msgstr "Winkel Y:" + +#: flatcamEditors/FlatCAMGeoEditor.py:731 +#: flatcamEditors/FlatCAMGrbEditor.py:5430 flatcamTools/ToolTransform.py:468 +msgid "Skew Y" +msgstr "Neigung Y" + +#: flatcamEditors/FlatCAMGeoEditor.py:759 +#: flatcamEditors/FlatCAMGrbEditor.py:5458 +msgid "Factor X:" +msgstr "Faktor X:" + +#: flatcamEditors/FlatCAMGeoEditor.py:761 +#: flatcamEditors/FlatCAMGrbEditor.py:5460 flatcamTools/ToolCalibration.py:469 +msgid "Factor for Scale action over X axis." +msgstr "Faktor für die Skalierungsaktion über der X-Achse." + +#: flatcamEditors/FlatCAMGeoEditor.py:771 +#: flatcamEditors/FlatCAMGrbEditor.py:5470 flatcamTools/ToolTransform.py:469 +msgid "Scale X" +msgstr "Maßstab X" + +#: flatcamEditors/FlatCAMGeoEditor.py:773 +#: flatcamEditors/FlatCAMGeoEditor.py:792 +#: flatcamEditors/FlatCAMGrbEditor.py:5472 +#: flatcamEditors/FlatCAMGrbEditor.py:5491 +msgid "" +"Scale the selected shape(s).\n" +"The point of reference depends on \n" +"the Scale reference checkbox state." +msgstr "" +"Skalieren Sie die ausgewählten Formen.\n" +"Der Bezugspunkt hängt von ab\n" +"das Kontrollkästchen Skalenreferenz." + +#: flatcamEditors/FlatCAMGeoEditor.py:778 +#: flatcamEditors/FlatCAMGrbEditor.py:5477 +msgid "Factor Y:" +msgstr "Faktor Y:" + +#: flatcamEditors/FlatCAMGeoEditor.py:780 +#: flatcamEditors/FlatCAMGrbEditor.py:5479 flatcamTools/ToolCalibration.py:481 +msgid "Factor for Scale action over Y axis." +msgstr "Faktor für die Skalierungsaktion über der Y-Achse." + +#: flatcamEditors/FlatCAMGeoEditor.py:790 +#: flatcamEditors/FlatCAMGrbEditor.py:5489 flatcamTools/ToolTransform.py:470 +msgid "Scale Y" +msgstr "Maßstab Y" + +#: flatcamEditors/FlatCAMGeoEditor.py:799 +#: flatcamEditors/FlatCAMGrbEditor.py:5498 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:124 +#: flatcamTools/ToolTransform.py:189 +msgid "Link" +msgstr "Verknüpfung" + +#: flatcamEditors/FlatCAMGeoEditor.py:801 +#: flatcamEditors/FlatCAMGrbEditor.py:5500 +msgid "" +"Scale the selected shape(s)\n" +"using the Scale Factor X for both axis." +msgstr "" +"Skalieren der ausgewählten Form (en)\n" +"Verwenden des Skalierungsfaktors X für beide Achsen." + +#: flatcamEditors/FlatCAMGeoEditor.py:807 +#: flatcamEditors/FlatCAMGrbEditor.py:5506 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:132 +#: flatcamTools/ToolTransform.py:196 +msgid "Scale Reference" +msgstr "Skalenreferenz" + +#: flatcamEditors/FlatCAMGeoEditor.py:809 +#: flatcamEditors/FlatCAMGrbEditor.py:5508 +msgid "" +"Scale the selected shape(s)\n" +"using the origin reference when checked,\n" +"and the center of the biggest bounding box\n" +"of the selected shapes when unchecked." +msgstr "" +"Skalieren der ausgewählten Form (en)\n" +"unter Verwendung der Ursprungsreferenz, wenn geprüft\n" +"und die Mitte der größten Begrenzungsbox\n" +"der ausgewählten Formen, wenn nicht markiert." + +#: flatcamEditors/FlatCAMGeoEditor.py:837 +#: flatcamEditors/FlatCAMGrbEditor.py:5537 +msgid "Value X:" +msgstr "Wert X:" + +#: flatcamEditors/FlatCAMGeoEditor.py:839 +#: flatcamEditors/FlatCAMGrbEditor.py:5539 +msgid "Value for Offset action on X axis." +msgstr "Wert für die Offset-Aktion auf der X-Achse." + +#: flatcamEditors/FlatCAMGeoEditor.py:849 +#: flatcamEditors/FlatCAMGrbEditor.py:5549 flatcamTools/ToolTransform.py:473 +msgid "Offset X" +msgstr "Versatz X" + +#: flatcamEditors/FlatCAMGeoEditor.py:851 +#: flatcamEditors/FlatCAMGeoEditor.py:871 +#: flatcamEditors/FlatCAMGrbEditor.py:5551 +#: flatcamEditors/FlatCAMGrbEditor.py:5571 +msgid "" +"Offset the selected shape(s).\n" +"The point of reference is the middle of\n" +"the bounding box for all selected shapes.\n" +msgstr "" +"Versetzt die ausgewählten Formen.\n" +"Der Bezugspunkt ist die Mitte von\n" +"der Begrenzungsrahmen für alle ausgewählten Formen.\n" + +#: flatcamEditors/FlatCAMGeoEditor.py:857 +#: flatcamEditors/FlatCAMGrbEditor.py:5557 +msgid "Value Y:" +msgstr "Wert Y:" + +#: flatcamEditors/FlatCAMGeoEditor.py:859 +#: flatcamEditors/FlatCAMGrbEditor.py:5559 +msgid "Value for Offset action on Y axis." +msgstr "Wert für die Offset-Aktion auf der Y-Achse." + +#: flatcamEditors/FlatCAMGeoEditor.py:869 +#: flatcamEditors/FlatCAMGrbEditor.py:5569 flatcamTools/ToolTransform.py:474 +msgid "Offset Y" +msgstr "Versatz Y" + +#: flatcamEditors/FlatCAMGeoEditor.py:900 +#: flatcamEditors/FlatCAMGrbEditor.py:5600 flatcamTools/ToolTransform.py:475 +msgid "Flip on X" +msgstr "Flip auf X" + +#: flatcamEditors/FlatCAMGeoEditor.py:902 +#: flatcamEditors/FlatCAMGeoEditor.py:909 +#: flatcamEditors/FlatCAMGrbEditor.py:5602 +#: flatcamEditors/FlatCAMGrbEditor.py:5609 +msgid "" +"Flip the selected shape(s) over the X axis.\n" +"Does not create a new shape." +msgstr "" +"Kippen Sie die ausgewählte Form (en) über die X-Achse.\n" +"Erzeugt keine neue Form." + +#: flatcamEditors/FlatCAMGeoEditor.py:907 +#: flatcamEditors/FlatCAMGrbEditor.py:5607 flatcamTools/ToolTransform.py:476 +msgid "Flip on Y" +msgstr "Flip auf Y" + +#: flatcamEditors/FlatCAMGeoEditor.py:915 +#: flatcamEditors/FlatCAMGrbEditor.py:5615 +msgid "Ref Pt" +msgstr "Ref. Pt" + +#: flatcamEditors/FlatCAMGeoEditor.py:917 +#: flatcamEditors/FlatCAMGrbEditor.py:5617 +msgid "" +"Flip the selected shape(s)\n" +"around the point in Point Entry Field.\n" +"\n" +"The point coordinates can be captured by\n" +"left click on canvas together with pressing\n" +"SHIFT key. \n" +"Then click Add button to insert coordinates.\n" +"Or enter the coords in format (x, y) in the\n" +"Point Entry field and click Flip on X(Y)" +msgstr "" +"Die ausgewählten Formen umdrehen\n" +"um den Punkt im Eingabefeld.\n" +"\n" +"Die Punktkoordinaten können mit erfasst werden\n" +"Klicken Sie mit der linken Maustaste auf die Leinwand\n" +"Shift Taste.\n" +"Klicken Sie dann auf die Schaltfläche Hinzufügen, um die Koordinaten " +"einzufügen.\n" +"Oder geben Sie die Koordinaten im Format (x, y) in ein\n" +"Punkt-Eingabefeld und klicken Sie auf X (Y) drehen" + +#: flatcamEditors/FlatCAMGeoEditor.py:929 +#: flatcamEditors/FlatCAMGrbEditor.py:5629 +msgid "Point:" +msgstr "Punkt:" + +#: flatcamEditors/FlatCAMGeoEditor.py:931 +#: flatcamEditors/FlatCAMGrbEditor.py:5631 flatcamTools/ToolTransform.py:299 +msgid "" +"Coordinates in format (x, y) used as reference for mirroring.\n" +"The 'x' in (x, y) will be used when using Flip on X and\n" +"the 'y' in (x, y) will be used when using Flip on Y." +msgstr "" +"Koordinaten im Format (x, y), die als Referenz für die Spiegelung verwendet " +"werden.\n" +"Das 'x' in (x, y) wird verwendet, wenn Sie bei X und\n" +"Das 'y' in (x, y) wird verwendet, wenn Flip auf Y verwendet wird." + +#: flatcamEditors/FlatCAMGeoEditor.py:941 +#: flatcamEditors/FlatCAMGrbEditor.py:5643 flatcamTools/ToolTransform.py:309 +msgid "" +"The point coordinates can be captured by\n" +"left click on canvas together with pressing\n" +"SHIFT key. Then click Add button to insert." +msgstr "" +"Die Punktkoordinaten können mit erfasst werden\n" +"Klicken Sie mit der linken Maustaste auf die Leinwand\n" +"Shift Taste. Klicken Sie dann auf die Schaltfläche Hinzufügen, um sie " +"einzufügen." + +#: flatcamEditors/FlatCAMGeoEditor.py:1304 +#: flatcamEditors/FlatCAMGrbEditor.py:5951 +msgid "No shape selected. Please Select a shape to rotate!" +msgstr "Keine Form ausgewählt Bitte wählen Sie eine Form zum Drehen aus!" + +#: flatcamEditors/FlatCAMGeoEditor.py:1307 +#: flatcamEditors/FlatCAMGrbEditor.py:5954 flatcamTools/ToolTransform.py:679 +msgid "Appying Rotate" +msgstr "Anwenden Drehen" + +#: flatcamEditors/FlatCAMGeoEditor.py:1333 +#: flatcamEditors/FlatCAMGrbEditor.py:5986 +msgid "Done. Rotate completed." +msgstr "Erledigt. Drehen abgeschlossen." + +#: flatcamEditors/FlatCAMGeoEditor.py:1335 +msgid "Rotation action was not executed" +msgstr "Rotationsaktion wurde nicht ausgeführt" + +#: flatcamEditors/FlatCAMGeoEditor.py:1354 +#: flatcamEditors/FlatCAMGrbEditor.py:6005 +msgid "No shape selected. Please Select a shape to flip!" +msgstr "Keine Form ausgewählt. Bitte wählen Sie eine Form zum Kippen!" + +#: flatcamEditors/FlatCAMGeoEditor.py:1357 +#: flatcamEditors/FlatCAMGrbEditor.py:6008 flatcamTools/ToolTransform.py:728 +msgid "Applying Flip" +msgstr "Flip anwenden" + +#: flatcamEditors/FlatCAMGeoEditor.py:1386 +#: flatcamEditors/FlatCAMGrbEditor.py:6046 flatcamTools/ToolTransform.py:769 +msgid "Flip on the Y axis done" +msgstr "Spiegeln Sie die Y-Achse bereit" + +#: flatcamEditors/FlatCAMGeoEditor.py:1390 +#: flatcamEditors/FlatCAMGrbEditor.py:6055 flatcamTools/ToolTransform.py:778 +msgid "Flip on the X axis done" +msgstr "Spiegeln Sie die X-Achse bereit" + +#: flatcamEditors/FlatCAMGeoEditor.py:1398 +msgid "Flip action was not executed" +msgstr "Spiegeln-Aktion wurde nicht ausgeführt" + +#: flatcamEditors/FlatCAMGeoEditor.py:1416 +#: flatcamEditors/FlatCAMGrbEditor.py:6075 +msgid "No shape selected. Please Select a shape to shear/skew!" +msgstr "" +"Keine Form ausgewählt. Bitte wählen Sie eine Form zum Scheren / " +"Schrägstellen!" + +#: flatcamEditors/FlatCAMGeoEditor.py:1419 +#: flatcamEditors/FlatCAMGrbEditor.py:6078 flatcamTools/ToolTransform.py:801 +msgid "Applying Skew" +msgstr "Schräglauf anwenden" + +#: flatcamEditors/FlatCAMGeoEditor.py:1442 +#: flatcamEditors/FlatCAMGrbEditor.py:6112 +msgid "Skew on the X axis done" +msgstr "Schrägstellung auf der X-Achse erfolgt" + +#: flatcamEditors/FlatCAMGeoEditor.py:1444 +#: flatcamEditors/FlatCAMGrbEditor.py:6114 +msgid "Skew on the Y axis done" +msgstr "Schrägstellung auf der Y-Achse erfolgt" + +#: flatcamEditors/FlatCAMGeoEditor.py:1447 +msgid "Skew action was not executed" +msgstr "Die Versatzaktion wurde nicht ausgeführt" + +#: flatcamEditors/FlatCAMGeoEditor.py:1469 +#: flatcamEditors/FlatCAMGrbEditor.py:6136 +msgid "No shape selected. Please Select a shape to scale!" +msgstr "Keine Form ausgewählt. Bitte wählen Sie eine zu skalierende Form!" + +#: flatcamEditors/FlatCAMGeoEditor.py:1472 +#: flatcamEditors/FlatCAMGrbEditor.py:6139 flatcamTools/ToolTransform.py:847 +msgid "Applying Scale" +msgstr "Maßstab anwenden" + +#: flatcamEditors/FlatCAMGeoEditor.py:1504 +#: flatcamEditors/FlatCAMGrbEditor.py:6176 +msgid "Scale on the X axis done" +msgstr "Skalieren auf der X-Achse erledigt" + +#: flatcamEditors/FlatCAMGeoEditor.py:1506 +#: flatcamEditors/FlatCAMGrbEditor.py:6178 +msgid "Scale on the Y axis done" +msgstr "Skalieren auf der Y-Achse erledigt" + +#: flatcamEditors/FlatCAMGeoEditor.py:1508 +msgid "Scale action was not executed" +msgstr "Skalierungsaktion wurde nicht ausgeführt" + +#: flatcamEditors/FlatCAMGeoEditor.py:1523 +#: flatcamEditors/FlatCAMGrbEditor.py:6195 +msgid "No shape selected. Please Select a shape to offset!" +msgstr "Keine Form ausgewählt. Bitte wählen Sie eine zu versetzende Form!" + +#: flatcamEditors/FlatCAMGeoEditor.py:1526 +#: flatcamEditors/FlatCAMGrbEditor.py:6198 flatcamTools/ToolTransform.py:897 +msgid "Applying Offset" +msgstr "Offsetdruck anwenden" + +#: flatcamEditors/FlatCAMGeoEditor.py:1536 +#: flatcamEditors/FlatCAMGrbEditor.py:6219 +msgid "Offset on the X axis done" +msgstr "Versatz auf der X-Achse erfolgt" + +#: flatcamEditors/FlatCAMGeoEditor.py:1538 +#: flatcamEditors/FlatCAMGrbEditor.py:6221 +msgid "Offset on the Y axis done" +msgstr "Versatz auf der Y-Achse erfolgt" + +#: flatcamEditors/FlatCAMGeoEditor.py:1541 +msgid "Offset action was not executed" +msgstr "Offsetaktion wurde nicht ausgeführt" + +#: flatcamEditors/FlatCAMGeoEditor.py:1545 +#: flatcamEditors/FlatCAMGrbEditor.py:6228 +msgid "Rotate ..." +msgstr "Drehen ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:1546 +#: flatcamEditors/FlatCAMGeoEditor.py:1601 +#: flatcamEditors/FlatCAMGeoEditor.py:1618 +#: flatcamEditors/FlatCAMGrbEditor.py:6229 +#: flatcamEditors/FlatCAMGrbEditor.py:6278 +#: flatcamEditors/FlatCAMGrbEditor.py:6293 +msgid "Enter an Angle Value (degrees)" +msgstr "Geben Sie einen Winkelwert (Grad) ein" + +#: flatcamEditors/FlatCAMGeoEditor.py:1555 +#: flatcamEditors/FlatCAMGrbEditor.py:6237 +msgid "Geometry shape rotate done" +msgstr "Geometrieform drehen fertig" + +#: flatcamEditors/FlatCAMGeoEditor.py:1559 +#: flatcamEditors/FlatCAMGrbEditor.py:6240 +msgid "Geometry shape rotate cancelled" +msgstr "Geometrieform drehen abgebrochen" + +#: flatcamEditors/FlatCAMGeoEditor.py:1564 +#: flatcamEditors/FlatCAMGrbEditor.py:6245 +msgid "Offset on X axis ..." +msgstr "Versatz auf der X-Achse ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:1565 +#: flatcamEditors/FlatCAMGeoEditor.py:1584 +#: flatcamEditors/FlatCAMGrbEditor.py:6246 +#: flatcamEditors/FlatCAMGrbEditor.py:6263 +msgid "Enter a distance Value" +msgstr "Geben Sie einen Abstandswert ein" + +#: flatcamEditors/FlatCAMGeoEditor.py:1574 +#: flatcamEditors/FlatCAMGrbEditor.py:6254 +msgid "Geometry shape offset on X axis done" +msgstr "Geometrieformversatz auf der X-Achse erfolgt" + +#: flatcamEditors/FlatCAMGeoEditor.py:1578 +#: flatcamEditors/FlatCAMGrbEditor.py:6257 +msgid "Geometry shape offset X cancelled" +msgstr "[WARNING_NOTCL] Geometrieformversatz X abgebrochen" + +#: flatcamEditors/FlatCAMGeoEditor.py:1583 +#: flatcamEditors/FlatCAMGrbEditor.py:6262 +msgid "Offset on Y axis ..." +msgstr "Versatz auf der Y-Achse ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:1593 +#: flatcamEditors/FlatCAMGrbEditor.py:6271 +msgid "Geometry shape offset on Y axis done" +msgstr "Geometrieformversatz auf Y-Achse erfolgt" + +#: flatcamEditors/FlatCAMGeoEditor.py:1597 +msgid "Geometry shape offset on Y axis canceled" +msgstr "Geometrieformversatz auf Y-Achse erfolgt" + +#: flatcamEditors/FlatCAMGeoEditor.py:1600 +#: flatcamEditors/FlatCAMGrbEditor.py:6277 +msgid "Skew on X axis ..." +msgstr "Neigung auf der X-Achse ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:1610 +#: flatcamEditors/FlatCAMGrbEditor.py:6286 +msgid "Geometry shape skew on X axis done" +msgstr "Geometrieformversatz auf X-Achse" + +#: flatcamEditors/FlatCAMGeoEditor.py:1614 +msgid "Geometry shape skew on X axis canceled" +msgstr "Geometrieformversatz auf X-Achse" + +#: flatcamEditors/FlatCAMGeoEditor.py:1617 +#: flatcamEditors/FlatCAMGrbEditor.py:6292 +msgid "Skew on Y axis ..." +msgstr "Neigung auf der Y-Achse ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:1627 +#: flatcamEditors/FlatCAMGrbEditor.py:6301 +msgid "Geometry shape skew on Y axis done" +msgstr "Geometrieformversatz auf Y-Achse erfolgt" + +#: flatcamEditors/FlatCAMGeoEditor.py:1631 +msgid "Geometry shape skew on Y axis canceled" +msgstr "Geometrieformversatz auf Y-Achse erfolgt" + +#: flatcamEditors/FlatCAMGeoEditor.py:2008 +#: flatcamEditors/FlatCAMGeoEditor.py:2079 +#: flatcamEditors/FlatCAMGrbEditor.py:1437 +#: flatcamEditors/FlatCAMGrbEditor.py:1515 +msgid "Click on Center point ..." +msgstr "Klicken Sie auf Mittelpunkt." + +#: flatcamEditors/FlatCAMGeoEditor.py:2021 +#: flatcamEditors/FlatCAMGrbEditor.py:1447 +msgid "Click on Perimeter point to complete ..." +msgstr "Klicken Sie auf Umfangspunkt, um den Vorgang abzuschließen." + +#: flatcamEditors/FlatCAMGeoEditor.py:2053 +msgid "Done. Adding Circle completed." +msgstr "Erledigt. Hinzufügen des Kreises abgeschlossen." + +#: flatcamEditors/FlatCAMGeoEditor.py:2107 +#: flatcamEditors/FlatCAMGrbEditor.py:1548 +msgid "Click on Start point ..." +msgstr "Klicken Sie auf Startpunkt ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:2109 +#: flatcamEditors/FlatCAMGrbEditor.py:1550 +msgid "Click on Point3 ..." +msgstr "Klicken Sie auf Punkt3 ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:2111 +#: flatcamEditors/FlatCAMGrbEditor.py:1552 +msgid "Click on Stop point ..." +msgstr "Klicken Sie auf Haltepunkt ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:2116 +#: flatcamEditors/FlatCAMGrbEditor.py:1557 +msgid "Click on Stop point to complete ..." +msgstr "Klicken Sie auf Stopp, um den Vorgang abzuschließen." + +#: flatcamEditors/FlatCAMGeoEditor.py:2118 +#: flatcamEditors/FlatCAMGrbEditor.py:1559 +msgid "Click on Point2 to complete ..." +msgstr "Klicken Sie auf Punkt2, um den Vorgang abzuschließen." + +#: flatcamEditors/FlatCAMGeoEditor.py:2120 +#: flatcamEditors/FlatCAMGrbEditor.py:1561 +msgid "Click on Center point to complete ..." +msgstr "Klicken Sie auf Mittelpunkt, um den Vorgang abzuschließen." + +#: flatcamEditors/FlatCAMGeoEditor.py:2132 +#, python-format +msgid "Direction: %s" +msgstr "Richtung: %s" + +#: flatcamEditors/FlatCAMGeoEditor.py:2146 +#: flatcamEditors/FlatCAMGrbEditor.py:1587 +msgid "Mode: Start -> Stop -> Center. Click on Start point ..." +msgstr "Modus: Start -> Stopp -> Zentrieren. Klicken Sie auf Startpunkt ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:2149 +#: flatcamEditors/FlatCAMGrbEditor.py:1590 +msgid "Mode: Point1 -> Point3 -> Point2. Click on Point1 ..." +msgstr "Modus: Punkt 1 -> Punkt 3 -> Punkt 2. Klicken Sie auf Punkt1 ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:2152 +#: flatcamEditors/FlatCAMGrbEditor.py:1593 +msgid "Mode: Center -> Start -> Stop. Click on Center point ..." +msgstr "Modus: Mitte -> Start -> Stopp. Klicken Sie auf Mittelpunkt." + +#: flatcamEditors/FlatCAMGeoEditor.py:2293 +msgid "Done. Arc completed." +msgstr "Erledigt. Arc abgeschlossen." + +#: flatcamEditors/FlatCAMGeoEditor.py:2324 +#: flatcamEditors/FlatCAMGeoEditor.py:2397 +msgid "Click on 1st corner ..." +msgstr "Klicken Sie auf die 1. Ecke ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:2336 +msgid "Click on opposite corner to complete ..." +msgstr "" +"Klicken Sie auf die gegenüberliegende Ecke, um den Vorgang abzuschließen." + +#: flatcamEditors/FlatCAMGeoEditor.py:2366 +msgid "Done. Rectangle completed." +msgstr "Erledigt. Rechteck fertiggestellt." + +#: flatcamEditors/FlatCAMGeoEditor.py:2410 +#: flatcamObjects/FlatCAMGeometry.py:2648 flatcamTools/ToolNCC.py:1733 +#: flatcamTools/ToolPaint.py:1628 +msgid "Click on next Point or click right mouse button to complete ..." +msgstr "" +"Klicken Sie auf den nächsten Punkt oder klicken Sie mit der rechten " +"Maustaste, um den Vorgang abzuschließen." + +#: flatcamEditors/FlatCAMGeoEditor.py:2441 +msgid "Done. Polygon completed." +msgstr "Erledigt. Polygon fertiggestellt." + +#: flatcamEditors/FlatCAMGeoEditor.py:2455 +#: flatcamEditors/FlatCAMGeoEditor.py:2520 +#: flatcamEditors/FlatCAMGrbEditor.py:1113 +#: flatcamEditors/FlatCAMGrbEditor.py:1324 +msgid "Backtracked one point ..." +msgstr "Einen Punkt zurückverfolgt ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:2498 +msgid "Done. Path completed." +msgstr "Getan. Pfad abgeschlossen." + +#: flatcamEditors/FlatCAMGeoEditor.py:2657 +msgid "No shape selected. Select a shape to explode" +msgstr "Keine Form ausgewählt. Wählen Sie eine Form zum Auflösen aus" + +#: flatcamEditors/FlatCAMGeoEditor.py:2690 +msgid "Done. Polygons exploded into lines." +msgstr "Getan. Polygone explodierten in Linien." + +#: flatcamEditors/FlatCAMGeoEditor.py:2722 +msgid "MOVE: No shape selected. Select a shape to move" +msgstr "Bewegen: Keine Form ausgewählt. Wähle eine Form zum Bewegen aus" + +#: flatcamEditors/FlatCAMGeoEditor.py:2725 +#: flatcamEditors/FlatCAMGeoEditor.py:2745 +msgid " MOVE: Click on reference point ..." +msgstr " Bewegen: Referenzpunkt anklicken ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:2730 +msgid " Click on destination point ..." +msgstr " Klicken Sie auf den Zielpunkt ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:2770 +msgid "Done. Geometry(s) Move completed." +msgstr "Erledigt. Geometrie(n) Bewegung abgeschlossen." + +#: flatcamEditors/FlatCAMGeoEditor.py:2903 +msgid "Done. Geometry(s) Copy completed." +msgstr "Erledigt. Geometrie(n) Kopieren abgeschlossen." + +#: flatcamEditors/FlatCAMGeoEditor.py:2934 +#: flatcamEditors/FlatCAMGrbEditor.py:899 +msgid "Click on 1st point ..." +msgstr "Klicken Sie auf den 1. Punkt ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:2958 +msgid "" +"Font not supported. Only Regular, Bold, Italic and BoldItalic are supported. " +"Error" +msgstr "" +"Schrift wird nicht unterstützt. Es werden nur Regular, Bold, Italic und " +"BoldItalic unterstützt. Error" + +#: flatcamEditors/FlatCAMGeoEditor.py:2966 +msgid "No text to add." +msgstr "Kein Text zum Hinzufügen." + +#: flatcamEditors/FlatCAMGeoEditor.py:2976 +msgid " Done. Adding Text completed." +msgstr " Erledigt. Hinzufügen von Text abgeschlossen." + +#: flatcamEditors/FlatCAMGeoEditor.py:3013 +msgid "Create buffer geometry ..." +msgstr "Puffergeometrie erstellen ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:3048 +#: flatcamEditors/FlatCAMGrbEditor.py:5160 +msgid "Done. Buffer Tool completed." +msgstr "Erledigt. Pufferwerkzeug abgeschlossen." + +#: flatcamEditors/FlatCAMGeoEditor.py:3076 +msgid "Done. Buffer Int Tool completed." +msgstr "Erledigt. Innenpufferwerkzeug abgeschlossen." + +#: flatcamEditors/FlatCAMGeoEditor.py:3104 +msgid "Done. Buffer Ext Tool completed." +msgstr "Erledigt. Außenpufferwerkzeug abgeschlossen." + +#: flatcamEditors/FlatCAMGeoEditor.py:3153 +#: flatcamEditors/FlatCAMGrbEditor.py:2153 +msgid "Select a shape to act as deletion area ..." +msgstr "Wählen Sie eine Form als Löschbereich aus ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:3155 +#: flatcamEditors/FlatCAMGeoEditor.py:3181 +#: flatcamEditors/FlatCAMGeoEditor.py:3187 +#: flatcamEditors/FlatCAMGrbEditor.py:2155 +msgid "Click to pick-up the erase shape..." +msgstr "Klicken Sie, um die Löschform aufzunehmen ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:3191 +#: flatcamEditors/FlatCAMGrbEditor.py:2214 +msgid "Click to erase ..." +msgstr "Klicken zum Löschen ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:3220 +#: flatcamEditors/FlatCAMGrbEditor.py:2247 +msgid "Done. Eraser tool action completed." +msgstr "Erledigt. Radiergummi-Aktion abgeschlossen." + +#: flatcamEditors/FlatCAMGeoEditor.py:3270 +msgid "Create Paint geometry ..." +msgstr "Malen geometrie erstellen ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:3283 +#: flatcamEditors/FlatCAMGrbEditor.py:2410 +msgid "Shape transformations ..." +msgstr "Formtransformationen ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:3339 +#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:27 +msgid "Geometry Editor" +msgstr "Geo-Editor" + +#: flatcamEditors/FlatCAMGeoEditor.py:3345 +#: flatcamEditors/FlatCAMGrbEditor.py:2488 +#: flatcamEditors/FlatCAMGrbEditor.py:3969 flatcamGUI/ObjectUI.py:263 +#: flatcamGUI/ObjectUI.py:1497 flatcamGUI/ObjectUI.py:2326 +#: flatcamTools/ToolCutOut.py:95 +msgid "Type" +msgstr "Typ" + +#: flatcamEditors/FlatCAMGeoEditor.py:3345 flatcamGUI/ObjectUI.py:218 +#: flatcamGUI/ObjectUI.py:742 flatcamGUI/ObjectUI.py:1433 +#: flatcamGUI/ObjectUI.py:2235 flatcamGUI/ObjectUI.py:2539 +#: flatcamGUI/ObjectUI.py:2606 flatcamTools/ToolCalibration.py:234 +#: flatcamTools/ToolFiducials.py:73 +msgid "Name" +msgstr "Name" + +#: flatcamEditors/FlatCAMGeoEditor.py:3587 +msgid "Ring" +msgstr "Ring" + +#: flatcamEditors/FlatCAMGeoEditor.py:3589 +msgid "Line" +msgstr "Linie" + +#: flatcamEditors/FlatCAMGeoEditor.py:3591 flatcamGUI/FlatCAMGUI.py:2202 +#: flatcamGUI/ObjectUI.py:2074 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:218 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:328 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:292 +#: flatcamTools/ToolNCC.py:584 flatcamTools/ToolPaint.py:528 +msgid "Polygon" +msgstr "Polygon" + +#: flatcamEditors/FlatCAMGeoEditor.py:3593 +msgid "Multi-Line" +msgstr "Mehrzeilig" + +#: flatcamEditors/FlatCAMGeoEditor.py:3595 +msgid "Multi-Polygon" +msgstr "Multi-Polygon" + +#: flatcamEditors/FlatCAMGeoEditor.py:3602 +msgid "Geo Elem" +msgstr "Geoelement" + +#: flatcamEditors/FlatCAMGeoEditor.py:4076 +msgid "Editing MultiGeo Geometry, tool" +msgstr "Bearbeiten von MultiGeo Geometry, Werkzeug" + +#: flatcamEditors/FlatCAMGeoEditor.py:4078 +msgid "with diameter" +msgstr "mit Durchmesser" + +#: flatcamEditors/FlatCAMGeoEditor.py:4509 flatcamGUI/FlatCAMGUI.py:3753 +#: flatcamGUI/FlatCAMGUI.py:3799 flatcamGUI/FlatCAMGUI.py:3817 +#: flatcamGUI/FlatCAMGUI.py:3961 flatcamGUI/FlatCAMGUI.py:4000 +#: flatcamGUI/FlatCAMGUI.py:4012 flatcamGUI/FlatCAMGUI.py:4029 +msgid "Click on target point." +msgstr "Klicken Sie auf den Zielpunkt." + +#: flatcamEditors/FlatCAMGeoEditor.py:4823 +#: flatcamEditors/FlatCAMGeoEditor.py:4858 +msgid "A selection of at least 2 geo items is required to do Intersection." +msgstr "" +"Eine Auswahl von mindestens 2 Geo-Elementen ist erforderlich, um die " +"Kreuzung durchzuführen." + +#: flatcamEditors/FlatCAMGeoEditor.py:4944 +#: flatcamEditors/FlatCAMGeoEditor.py:5048 +msgid "" +"Negative buffer value is not accepted. Use Buffer interior to generate an " +"'inside' shape" +msgstr "" +"Negativer Pufferwert wird nicht akzeptiert. Verwenden Sie den " +"Pufferinnenraum, um eine Innenform zu erzeugen" + +#: flatcamEditors/FlatCAMGeoEditor.py:4954 +#: flatcamEditors/FlatCAMGeoEditor.py:5007 +#: flatcamEditors/FlatCAMGeoEditor.py:5057 +msgid "Nothing selected for buffering." +msgstr "Nichts ist für die Pufferung ausgewählt." + +#: flatcamEditors/FlatCAMGeoEditor.py:4959 +#: flatcamEditors/FlatCAMGeoEditor.py:5011 +#: flatcamEditors/FlatCAMGeoEditor.py:5062 +msgid "Invalid distance for buffering." +msgstr "Ungültige Entfernung zum Puffern." + +#: flatcamEditors/FlatCAMGeoEditor.py:4983 +#: flatcamEditors/FlatCAMGeoEditor.py:5082 +msgid "Failed, the result is empty. Choose a different buffer value." +msgstr "" +"Fehlgeschlagen, das Ergebnis ist leer. Wählen Sie einen anderen Pufferwert." + +#: flatcamEditors/FlatCAMGeoEditor.py:4994 +msgid "Full buffer geometry created." +msgstr "Volle Puffergeometrie erstellt." + +#: flatcamEditors/FlatCAMGeoEditor.py:5000 +msgid "Negative buffer value is not accepted." +msgstr "Negativer Pufferwert wird nicht akzeptiert." + +#: flatcamEditors/FlatCAMGeoEditor.py:5031 +msgid "Failed, the result is empty. Choose a smaller buffer value." +msgstr "" +"Fehlgeschlagen, das Ergebnis ist leer. Wählen Sie einen kleineren Pufferwert." + +#: flatcamEditors/FlatCAMGeoEditor.py:5041 +msgid "Interior buffer geometry created." +msgstr "Innere Puffergeometrie erstellt." + +#: flatcamEditors/FlatCAMGeoEditor.py:5092 +msgid "Exterior buffer geometry created." +msgstr "Außenpuffergeometrie erstellt." + +#: flatcamEditors/FlatCAMGeoEditor.py:5098 +#, python-format +msgid "Could not do Paint. Overlap value has to be less than 100%%." +msgstr "Konnte nicht Malen. Der Überlappungswert muss kleiner als 100 %% sein." + +#: flatcamEditors/FlatCAMGeoEditor.py:5105 +msgid "Nothing selected for painting." +msgstr "Nichts zum Malen ausgewählt." + +#: flatcamEditors/FlatCAMGeoEditor.py:5111 +msgid "Invalid value for" +msgstr "Ungültiger Wert für" + +#: flatcamEditors/FlatCAMGeoEditor.py:5170 +msgid "" +"Could not do Paint. Try a different combination of parameters. Or a " +"different method of Paint" +msgstr "" +"Konnte nicht malen. Probieren Sie eine andere Kombination von Parametern " +"aus. Oder eine andere Malmethode" + +#: flatcamEditors/FlatCAMGeoEditor.py:5181 +msgid "Paint done." +msgstr "Malen fertig." + +#: flatcamEditors/FlatCAMGrbEditor.py:213 +msgid "To add an Pad first select a aperture in Aperture Table" +msgstr "" +"Um ein Pad hinzuzufügen, wählen Sie zunächst eine Blende in der Aperture " +"Table aus" + +#: flatcamEditors/FlatCAMGrbEditor.py:220 +#: flatcamEditors/FlatCAMGrbEditor.py:420 +msgid "Aperture size is zero. It needs to be greater than zero." +msgstr "Die Größe der Blende ist Null. Es muss größer als Null sein." + +#: flatcamEditors/FlatCAMGrbEditor.py:373 +#: flatcamEditors/FlatCAMGrbEditor.py:686 +msgid "" +"Incompatible aperture type. Select an aperture with type 'C', 'R' or 'O'." +msgstr "" +"Inkompatibler Blendentyp. Wählen Sie eine Blende mit dem Typ 'C', 'R' oder " +"'O'." + +#: flatcamEditors/FlatCAMGrbEditor.py:385 +msgid "Done. Adding Pad completed." +msgstr "Erledigt. Hinzufügen von Pad abgeschlossen." + +#: flatcamEditors/FlatCAMGrbEditor.py:412 +msgid "To add an Pad Array first select a aperture in Aperture Table" +msgstr "" +"Um ein Pad-Array hinzuzufügen, wählen Sie zunächst eine Blende in der " +"Aperture-Tabelle aus" + +#: flatcamEditors/FlatCAMGrbEditor.py:492 +msgid "Click on the Pad Circular Array Start position" +msgstr "Klicken Sie auf die Startposition des Pad-Kreis-Arrays" + +#: flatcamEditors/FlatCAMGrbEditor.py:712 +msgid "Too many Pads for the selected spacing angle." +msgstr "Zu viele Pad für den ausgewählten Abstandswinkel." + +#: flatcamEditors/FlatCAMGrbEditor.py:735 +msgid "Done. Pad Array added." +msgstr "Erledigt. Pad Array hinzugefügt." + +#: flatcamEditors/FlatCAMGrbEditor.py:760 +msgid "Select shape(s) and then click ..." +msgstr "Wählen Sie die Form (en) aus und klicken Sie dann auf ..." + +#: flatcamEditors/FlatCAMGrbEditor.py:772 +msgid "Failed. Nothing selected." +msgstr "Gescheitert. Nichts ausgewählt." + +#: flatcamEditors/FlatCAMGrbEditor.py:788 +msgid "" +"Failed. Poligonize works only on geometries belonging to the same aperture." +msgstr "" +"Gescheitert. Poligonize funktioniert nur bei Geometrien, die zur selben " +"Apertur gehören." + +#: flatcamEditors/FlatCAMGrbEditor.py:842 +msgid "Done. Poligonize completed." +msgstr "Erledigt. Poligonize abgeschlossen." + +#: flatcamEditors/FlatCAMGrbEditor.py:897 +#: flatcamEditors/FlatCAMGrbEditor.py:1130 +#: flatcamEditors/FlatCAMGrbEditor.py:1154 +msgid "Corner Mode 1: 45 degrees ..." +msgstr "Eckmodus 1: 45 Grad ..." + +#: flatcamEditors/FlatCAMGrbEditor.py:909 +#: flatcamEditors/FlatCAMGrbEditor.py:1239 +msgid "Click on next Point or click Right mouse button to complete ..." +msgstr "" +"Klicken Sie auf den nächsten Punkt oder klicken Sie mit der rechten " +"Maustaste, um den Vorgang abzuschließen." + +#: flatcamEditors/FlatCAMGrbEditor.py:1118 +#: flatcamEditors/FlatCAMGrbEditor.py:1151 +msgid "Corner Mode 2: Reverse 45 degrees ..." +msgstr "Eckmodus 2: 45 Grad umkehren ..." + +#: flatcamEditors/FlatCAMGrbEditor.py:1121 +#: flatcamEditors/FlatCAMGrbEditor.py:1148 +msgid "Corner Mode 3: 90 degrees ..." +msgstr "Eckmodus 3: 90 Grad ..." + +#: flatcamEditors/FlatCAMGrbEditor.py:1124 +#: flatcamEditors/FlatCAMGrbEditor.py:1145 +msgid "Corner Mode 4: Reverse 90 degrees ..." +msgstr "Eckmodus 4: Um 90 Grad umkehren ..." + +#: flatcamEditors/FlatCAMGrbEditor.py:1127 +#: flatcamEditors/FlatCAMGrbEditor.py:1142 +msgid "Corner Mode 5: Free angle ..." +msgstr "Eckmodus 5: Freiwinkel ..." + +#: flatcamEditors/FlatCAMGrbEditor.py:1184 +#: flatcamEditors/FlatCAMGrbEditor.py:1360 +#: flatcamEditors/FlatCAMGrbEditor.py:1399 +msgid "Track Mode 1: 45 degrees ..." +msgstr "Spurmodus 1: 45 Grad ..." + +#: flatcamEditors/FlatCAMGrbEditor.py:1340 +#: flatcamEditors/FlatCAMGrbEditor.py:1394 +msgid "Track Mode 2: Reverse 45 degrees ..." +msgstr "Spurmodus 2: 45 Grad umkehren ..." + +#: flatcamEditors/FlatCAMGrbEditor.py:1345 +#: flatcamEditors/FlatCAMGrbEditor.py:1389 +msgid "Track Mode 3: 90 degrees ..." +msgstr "Spurmodus 3: 90 Grad ..." + +#: flatcamEditors/FlatCAMGrbEditor.py:1350 +#: flatcamEditors/FlatCAMGrbEditor.py:1384 +msgid "Track Mode 4: Reverse 90 degrees ..." +msgstr "Spurmodus 4: Um 90 Grad umkehren ..." + +#: flatcamEditors/FlatCAMGrbEditor.py:1355 +#: flatcamEditors/FlatCAMGrbEditor.py:1379 +msgid "Track Mode 5: Free angle ..." +msgstr "Spurmodus 5: Freiwinkel ..." + +#: flatcamEditors/FlatCAMGrbEditor.py:1780 +msgid "Scale the selected Gerber apertures ..." +msgstr "Skalieren Sie die ausgewählten Gerber-Öffnungen ..." + +#: flatcamEditors/FlatCAMGrbEditor.py:1822 +msgid "Buffer the selected apertures ..." +msgstr "Die ausgewählten Öffnungen puffern ..." + +#: flatcamEditors/FlatCAMGrbEditor.py:1864 +msgid "Mark polygon areas in the edited Gerber ..." +msgstr "Markiere Polygonbereiche im bearbeiteten Gerber ..." + +#: flatcamEditors/FlatCAMGrbEditor.py:1930 +msgid "Nothing selected to move" +msgstr "Nichts zum Bewegen ausgewählt" + +#: flatcamEditors/FlatCAMGrbEditor.py:2055 +msgid "Done. Apertures Move completed." +msgstr "Erledigt. Öffnungsbewegung abgeschlossen." + +#: flatcamEditors/FlatCAMGrbEditor.py:2137 +msgid "Done. Apertures copied." +msgstr "Erledigt. Blende kopiert." + +#: flatcamEditors/FlatCAMGrbEditor.py:2455 flatcamGUI/FlatCAMGUI.py:2233 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:27 +msgid "Gerber Editor" +msgstr "Gerber-Editor" + +#: flatcamEditors/FlatCAMGrbEditor.py:2475 flatcamGUI/ObjectUI.py:228 +#: flatcamTools/ToolProperties.py:159 +msgid "Apertures" +msgstr "Öffnungen" + +#: flatcamEditors/FlatCAMGrbEditor.py:2477 flatcamGUI/ObjectUI.py:230 +msgid "Apertures Table for the Gerber Object." +msgstr "Blendentabelle für das Gerberobjekt." + +#: flatcamEditors/FlatCAMGrbEditor.py:2488 +#: flatcamEditors/FlatCAMGrbEditor.py:3969 flatcamGUI/ObjectUI.py:263 +msgid "Code" +msgstr "Code" + +#: flatcamEditors/FlatCAMGrbEditor.py:2488 +#: flatcamEditors/FlatCAMGrbEditor.py:3969 flatcamGUI/ObjectUI.py:263 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:103 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:167 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:196 +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:43 +#: flatcamTools/ToolCopperThieving.py:261 +#: flatcamTools/ToolCopperThieving.py:301 flatcamTools/ToolFiducials.py:156 +msgid "Size" +msgstr "Größe" + +#: flatcamEditors/FlatCAMGrbEditor.py:2488 +#: flatcamEditors/FlatCAMGrbEditor.py:3969 flatcamGUI/ObjectUI.py:263 +msgid "Dim" +msgstr "Maße" + +#: flatcamEditors/FlatCAMGrbEditor.py:2493 flatcamGUI/ObjectUI.py:267 +msgid "Index" +msgstr "Index" + +#: flatcamEditors/FlatCAMGrbEditor.py:2495 +#: flatcamEditors/FlatCAMGrbEditor.py:2524 flatcamGUI/ObjectUI.py:269 +msgid "Aperture Code" +msgstr "Öffnungscode" + +#: flatcamEditors/FlatCAMGrbEditor.py:2497 flatcamGUI/ObjectUI.py:271 +msgid "Type of aperture: circular, rectangle, macros etc" +msgstr "Öffnungsart: kreisförmig, rechteckig, Makros usw" + +#: flatcamEditors/FlatCAMGrbEditor.py:2499 flatcamGUI/ObjectUI.py:273 +msgid "Aperture Size:" +msgstr "Öffnungsgröße:" + +#: flatcamEditors/FlatCAMGrbEditor.py:2501 flatcamGUI/ObjectUI.py:275 +msgid "" +"Aperture Dimensions:\n" +" - (width, height) for R, O type.\n" +" - (dia, nVertices) for P type" +msgstr "" +"Blendenmaße:\n" +"  - (Breite, Höhe) für R, O-Typ.\n" +"  - (dia, nVertices) für P-Typ" + +#: flatcamEditors/FlatCAMGrbEditor.py:2525 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:58 +msgid "Code for the new aperture" +msgstr "Code für die neue Blende" + +#: flatcamEditors/FlatCAMGrbEditor.py:2534 +msgid "Aperture Size" +msgstr "Öffnungsgröße" + +#: flatcamEditors/FlatCAMGrbEditor.py:2536 +msgid "" +"Size for the new aperture.\n" +"If aperture type is 'R' or 'O' then\n" +"this value is automatically\n" +"calculated as:\n" +"sqrt(width**2 + height**2)" +msgstr "" +"Größe für die neue Blende.\n" +"Wenn der Blendentyp 'R' oder 'O' ist, dann\n" +"Dieser Wert wird automatisch übernommen\n" +"berechnet als:\n" +"Quadrat (Breite ** 2 + Höhe ** 2)" + +#: flatcamEditors/FlatCAMGrbEditor.py:2550 +msgid "Aperture Type" +msgstr "Blendentyp" + +#: flatcamEditors/FlatCAMGrbEditor.py:2552 +msgid "" +"Select the type of new aperture. Can be:\n" +"C = circular\n" +"R = rectangular\n" +"O = oblong" +msgstr "" +"Wählen Sie den Typ der neuen Blende. Kann sein:\n" +"C = kreisförmig\n" +"R = rechteckig\n" +"O = länglich" + +#: flatcamEditors/FlatCAMGrbEditor.py:2563 +msgid "Aperture Dim" +msgstr "Öffnungsmaße" + +#: flatcamEditors/FlatCAMGrbEditor.py:2565 +msgid "" +"Dimensions for the new aperture.\n" +"Active only for rectangular apertures (type R).\n" +"The format is (width, height)" +msgstr "" +"Abmessungen für die neue Blende.\n" +"Aktiv nur für rechteckige Öffnungen (Typ R).\n" +"Das Format ist (Breite, Höhe)" + +#: flatcamEditors/FlatCAMGrbEditor.py:2574 +msgid "Add/Delete Aperture" +msgstr "Blende hinzufügen / löschen" + +#: flatcamEditors/FlatCAMGrbEditor.py:2576 +msgid "Add/Delete an aperture in the aperture table" +msgstr "Eine Blende in der Blendentabelle hinzufügen / löschen" + +#: flatcamEditors/FlatCAMGrbEditor.py:2585 +msgid "Add a new aperture to the aperture list." +msgstr "Fügen Sie der Blendenliste eine neue Blende hinzu." + +#: flatcamEditors/FlatCAMGrbEditor.py:2590 +msgid "Delete a aperture in the aperture list" +msgstr "Löschen Sie eine Blende in der Blendenliste" + +#: flatcamEditors/FlatCAMGrbEditor.py:2607 +msgid "Buffer Aperture" +msgstr "Pufferblende" + +#: flatcamEditors/FlatCAMGrbEditor.py:2609 +msgid "Buffer a aperture in the aperture list" +msgstr "Puffern Sie eine Blende in der Blendenliste" + +#: flatcamEditors/FlatCAMGrbEditor.py:2622 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:194 +msgid "Buffer distance" +msgstr "Pufferabstand" + +#: flatcamEditors/FlatCAMGrbEditor.py:2623 +msgid "Buffer corner" +msgstr "Pufferecke" + +#: flatcamEditors/FlatCAMGrbEditor.py:2625 +msgid "" +"There are 3 types of corners:\n" +" - 'Round': the corner is rounded.\n" +" - 'Square': the corner is met in a sharp angle.\n" +" - 'Beveled': the corner is a line that directly connects the features " +"meeting in the corner" +msgstr "" +"Es gibt 3 Arten von Ecken:\n" +"- 'Kreis': Die Ecke ist abgerundet.\n" +"- 'Quadrat:' Die Ecke wird in einem spitzen Winkel getroffen.\n" +"- 'Abgeschrägt:' Die Ecke ist eine Linie, die die Features, die sich in der " +"Ecke treffen, direkt verbindet" + +#: flatcamEditors/FlatCAMGrbEditor.py:2640 flatcamGUI/FlatCAMGUI.py:1061 +#: flatcamGUI/FlatCAMGUI.py:2138 flatcamGUI/FlatCAMGUI.py:2210 +#: flatcamGUI/FlatCAMGUI.py:2253 flatcamGUI/FlatCAMGUI.py:2765 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:200 +#: flatcamTools/ToolTransform.py:29 +msgid "Buffer" +msgstr "Puffer" + +#: flatcamEditors/FlatCAMGrbEditor.py:2655 +msgid "Scale Aperture" +msgstr "Skalenöffnung" + +#: flatcamEditors/FlatCAMGrbEditor.py:2657 +msgid "Scale a aperture in the aperture list" +msgstr "Skalieren Sie eine Blende in der Blendenliste" + +#: flatcamEditors/FlatCAMGrbEditor.py:2665 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:209 +msgid "Scale factor" +msgstr "Skalierungsfaktor" + +#: flatcamEditors/FlatCAMGrbEditor.py:2667 +msgid "" +"The factor by which to scale the selected aperture.\n" +"Values can be between 0.0000 and 999.9999" +msgstr "" +"Der Faktor, um den die ausgewählte Blende skaliert werden soll.\n" +"Die Werte können zwischen 0,0000 und 999,9999 liegen" + +#: flatcamEditors/FlatCAMGrbEditor.py:2695 +msgid "Mark polygons" +msgstr "Polygone markieren" + +#: flatcamEditors/FlatCAMGrbEditor.py:2697 +msgid "Mark the polygon areas." +msgstr "Markieren Sie die Polygonbereiche." + +#: flatcamEditors/FlatCAMGrbEditor.py:2705 +msgid "Area UPPER threshold" +msgstr "Flächenobergrenze" + +#: flatcamEditors/FlatCAMGrbEditor.py:2707 +msgid "" +"The threshold value, all areas less than this are marked.\n" +"Can have a value between 0.0000 and 9999.9999" +msgstr "" +"Der Schwellenwert, alle Bereiche, die darunter liegen, sind markiert.\n" +"Kann einen Wert zwischen 0,0000 und 9999,9999 haben" + +#: flatcamEditors/FlatCAMGrbEditor.py:2714 +msgid "Area LOWER threshold" +msgstr "Bereichsuntergrenze" + +#: flatcamEditors/FlatCAMGrbEditor.py:2716 +msgid "" +"The threshold value, all areas more than this are marked.\n" +"Can have a value between 0.0000 and 9999.9999" +msgstr "" +"Mit dem Schwellwert sind alle Bereiche gekennzeichnet, die darüber " +"hinausgehen.\n" +"Kann einen Wert zwischen 0,0000 und 9999,9999 haben" + +#: flatcamEditors/FlatCAMGrbEditor.py:2730 +msgid "Mark" +msgstr "Kennzeichen" + +#: flatcamEditors/FlatCAMGrbEditor.py:2732 +msgid "Mark the polygons that fit within limits." +msgstr "Markieren Sie die Polygone, die in Grenzen passen." + +#: flatcamEditors/FlatCAMGrbEditor.py:2738 +msgid "Delete all the marked polygons." +msgstr "Löschen Sie alle markierten Polygone." + +#: flatcamEditors/FlatCAMGrbEditor.py:2744 +msgid "Clear all the markings." +msgstr "Alle Markierungen entfernen." + +#: flatcamEditors/FlatCAMGrbEditor.py:2764 flatcamGUI/FlatCAMGUI.py:1046 +#: flatcamGUI/FlatCAMGUI.py:2138 flatcamGUI/FlatCAMGUI.py:2750 +msgid "Add Pad Array" +msgstr "Pad-Array hinzufügen" + +#: flatcamEditors/FlatCAMGrbEditor.py:2766 +msgid "Add an array of pads (linear or circular array)" +msgstr "Hinzufügen eines Arrays von Pads (lineares oder kreisförmiges Array)" + +#: flatcamEditors/FlatCAMGrbEditor.py:2772 +msgid "" +"Select the type of pads array to create.\n" +"It can be Linear X(Y) or Circular" +msgstr "" +"Wählen Sie den zu erstellenden Pad-Array-Typ aus.\n" +"Es kann lineares X (Y) oder rund sein" + +#: flatcamEditors/FlatCAMGrbEditor.py:2783 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:95 +msgid "Nr of pads" +msgstr "Anzahl der Pads" + +#: flatcamEditors/FlatCAMGrbEditor.py:2785 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:97 +msgid "Specify how many pads to be in the array." +msgstr "Geben Sie an, wie viele Pads sich im Array befinden sollen." + +#: flatcamEditors/FlatCAMGrbEditor.py:2834 +msgid "" +"Angle at which the linear array is placed.\n" +"The precision is of max 2 decimals.\n" +"Min value is: -359.99 degrees.\n" +"Max value is: 360.00 degrees." +msgstr "" +"Winkel, bei dem das lineare Array platziert wird.\n" +"Die Genauigkeit beträgt maximal 2 Dezimalstellen.\n" +"Der Mindestwert beträgt -359,99 Grad.\n" +"Maximalwert ist: 360.00 Grad." + +#: flatcamEditors/FlatCAMGrbEditor.py:3328 +#: flatcamEditors/FlatCAMGrbEditor.py:3332 +msgid "Aperture code value is missing or wrong format. Add it and retry." +msgstr "" +"Blendencodewert fehlt oder falsches Format. Fügen Sie es hinzu und versuchen " +"Sie es erneut." + +#: flatcamEditors/FlatCAMGrbEditor.py:3368 +msgid "" +"Aperture dimensions value is missing or wrong format. Add it in format " +"(width, height) and retry." +msgstr "" +"Wert für Blendenmaße fehlt oder falsches Format. Fügen Sie es im Format " +"(Breite, Höhe) hinzu und versuchen Sie es erneut." + +#: flatcamEditors/FlatCAMGrbEditor.py:3381 +msgid "Aperture size value is missing or wrong format. Add it and retry." +msgstr "" +"Der Wert für die Blendengröße fehlt oder das Format ist falsch. Fügen Sie es " +"hinzu und versuchen Sie es erneut." + +#: flatcamEditors/FlatCAMGrbEditor.py:3392 +msgid "Aperture already in the aperture table." +msgstr "Blende bereits in der Blendentabelle." + +#: flatcamEditors/FlatCAMGrbEditor.py:3399 +msgid "Added new aperture with code" +msgstr "Neue Blende mit Code hinzugefügt" + +#: flatcamEditors/FlatCAMGrbEditor.py:3431 +msgid " Select an aperture in Aperture Table" +msgstr " Wählen Sie in Blende Table eine Blende aus" + +#: flatcamEditors/FlatCAMGrbEditor.py:3439 +msgid "Select an aperture in Aperture Table -->" +msgstr "Wählen Sie in Blende Table eine Blende aus -->" + +#: flatcamEditors/FlatCAMGrbEditor.py:3453 +msgid "Deleted aperture with code" +msgstr "Blende mit Code gelöscht" + +#: flatcamEditors/FlatCAMGrbEditor.py:3521 +msgid "Dimensions need two float values separated by comma." +msgstr "Bemaßungen benötigen zwei durch Komma getrennte Gleitkommawerte." + +#: flatcamEditors/FlatCAMGrbEditor.py:3530 +msgid "Dimensions edited." +msgstr "Abmessungen bearbeitet." + +#: flatcamEditors/FlatCAMGrbEditor.py:4084 +msgid "Loading Gerber into Editor" +msgstr "Gerber File wird in den Editor geladen" + +#: flatcamEditors/FlatCAMGrbEditor.py:4212 +msgid "Setting up the UI" +msgstr "UI wird initialisiert" + +#: flatcamEditors/FlatCAMGrbEditor.py:4213 +msgid "Adding geometry finished. Preparing the GUI" +msgstr "Geometrie wurde hinzugefügt. User Interface wird vorbereitet" + +#: flatcamEditors/FlatCAMGrbEditor.py:4222 +msgid "Finished loading the Gerber object into the editor." +msgstr "Gerber-Objekte wurde in den Editor geladen." + +#: flatcamEditors/FlatCAMGrbEditor.py:4361 +msgid "" +"There are no Aperture definitions in the file. Aborting Gerber creation." +msgstr "" +"Die Datei enthält keine Aperture-Definitionen. Abbruch der Gerber-Erstellung." + +#: flatcamEditors/FlatCAMGrbEditor.py:4371 +msgid "Creating Gerber." +msgstr "Gerber erstellen." + +#: flatcamEditors/FlatCAMGrbEditor.py:4380 +msgid "Done. Gerber editing finished." +msgstr "Erledigt. Gerber-Bearbeitung beendet." + +#: flatcamEditors/FlatCAMGrbEditor.py:4398 +msgid "Cancelled. No aperture is selected" +msgstr "Abgebrochen. Es ist keine Blende ausgewählt" + +#: flatcamEditors/FlatCAMGrbEditor.py:4992 +msgid "Failed. No aperture geometry is selected." +msgstr "Gescheitert. Es ist keine Aperturgeometrie ausgewählt." + +#: flatcamEditors/FlatCAMGrbEditor.py:5001 +#: flatcamEditors/FlatCAMGrbEditor.py:5272 +msgid "Done. Apertures geometry deleted." +msgstr "Fertig. Blendengeometrie gelöscht." + +#: flatcamEditors/FlatCAMGrbEditor.py:5144 +msgid "No aperture to buffer. Select at least one aperture and try again." +msgstr "" +"Keine Blende zum Puffern Wählen Sie mindestens eine Blende und versuchen Sie " +"es erneut." + +#: flatcamEditors/FlatCAMGrbEditor.py:5156 +msgid "Failed." +msgstr "Gescheitert." + +#: flatcamEditors/FlatCAMGrbEditor.py:5175 +msgid "Scale factor value is missing or wrong format. Add it and retry." +msgstr "" +"Der Skalierungsfaktor ist nicht vorhanden oder das Format ist falsch. Fügen " +"Sie es hinzu und versuchen Sie es erneut." + +#: flatcamEditors/FlatCAMGrbEditor.py:5207 +msgid "No aperture to scale. Select at least one aperture and try again." +msgstr "" +"Keine zu skalierende Blende Wählen Sie mindestens eine Blende und versuchen " +"Sie es erneut." + +#: flatcamEditors/FlatCAMGrbEditor.py:5223 +msgid "Done. Scale Tool completed." +msgstr "Erledigt. Skalierungswerkzeug abgeschlossen." + +#: flatcamEditors/FlatCAMGrbEditor.py:5261 +msgid "Polygons marked." +msgstr "Polygone markiert." + +#: flatcamEditors/FlatCAMGrbEditor.py:5264 +msgid "No polygons were marked. None fit within the limits." +msgstr "Es wurden keine Polygone markiert. Keiner passt in die Grenzen." + +#: flatcamEditors/FlatCAMGrbEditor.py:5988 +msgid "Rotation action was not executed." +msgstr "Rotationsaktion wurde nicht ausgeführt." + +#: flatcamEditors/FlatCAMGrbEditor.py:6116 +msgid "Skew action was not executed." +msgstr "Die Versatzaktion wurde nicht ausgeführt." + +#: flatcamEditors/FlatCAMGrbEditor.py:6181 +msgid "Scale action was not executed." +msgstr "Skalierungsaktion wurde nicht ausgeführt." + +#: flatcamEditors/FlatCAMGrbEditor.py:6224 +msgid "Offset action was not executed." +msgstr "Offsetaktion wurde nicht ausgeführt." + +#: flatcamEditors/FlatCAMGrbEditor.py:6274 +msgid "Geometry shape offset Y cancelled" +msgstr "Geometrieform-Versatz Y abgebrochen" + +#: flatcamEditors/FlatCAMGrbEditor.py:6289 +msgid "Geometry shape skew X cancelled" +msgstr "Geometrieformverzerren X abgebrochen" + +#: flatcamEditors/FlatCAMGrbEditor.py:6304 +msgid "Geometry shape skew Y cancelled" +msgstr "Geometrieformverzerren Y abgebrochen" + +#: flatcamEditors/FlatCAMTextEditor.py:74 +msgid "Print Preview" +msgstr "Druckvorschau" + +#: flatcamEditors/FlatCAMTextEditor.py:75 +msgid "Open a OS standard Preview Print window." +msgstr "" +"Öffnen Sie ein Standardfenster für die Druckvorschau des Betriebssystems." + +#: flatcamEditors/FlatCAMTextEditor.py:78 +msgid "Print Code" +msgstr "Code drucken" + +#: flatcamEditors/FlatCAMTextEditor.py:79 +msgid "Open a OS standard Print window." +msgstr "Öffnen Sie ein Betriebssystem-Standard-Druckfenster." + +#: flatcamEditors/FlatCAMTextEditor.py:81 +msgid "Find in Code" +msgstr "Im Code suchen" + +#: flatcamEditors/FlatCAMTextEditor.py:82 +msgid "Will search and highlight in yellow the string in the Find box." +msgstr "Sucht und hebt die Zeichenfolge im Feld Suchen gelb hervor." + +#: flatcamEditors/FlatCAMTextEditor.py:86 +msgid "Find box. Enter here the strings to be searched in the text." +msgstr "" +"Suchfeld. Geben Sie hier die Zeichenfolgen ein, nach denen im Text gesucht " +"werden soll." + +#: flatcamEditors/FlatCAMTextEditor.py:88 +msgid "Replace With" +msgstr "Ersetzen mit" + +#: flatcamEditors/FlatCAMTextEditor.py:89 +msgid "" +"Will replace the string from the Find box with the one in the Replace box." +msgstr "" +"Ersetzt die Zeichenfolge aus dem Feld Suchen durch die Zeichenfolge aus dem " +"Feld Ersetzen." + +#: flatcamEditors/FlatCAMTextEditor.py:93 +msgid "String to replace the one in the Find box throughout the text." +msgstr "" +"Zeichenfolge, die die Zeichenfolge im Feld Suchen im gesamten Text ersetzt." + +#: flatcamEditors/FlatCAMTextEditor.py:95 flatcamGUI/ObjectUI.py:486 +#: flatcamGUI/ObjectUI.py:2219 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:54 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:88 +msgid "All" +msgstr "Alles" + +#: flatcamEditors/FlatCAMTextEditor.py:96 +msgid "" +"When checked it will replace all instances in the 'Find' box\n" +"with the text in the 'Replace' box.." +msgstr "" +"Wenn diese Option aktiviert ist, werden alle Instanzen im Feld \"Suchen\" " +"ersetzt\n" +"mit dem Text im Feld \"Ersetzen\" .." + +#: flatcamEditors/FlatCAMTextEditor.py:99 +msgid "Copy All" +msgstr "Kopiere alles" + +#: flatcamEditors/FlatCAMTextEditor.py:100 +msgid "Will copy all the text in the Code Editor to the clipboard." +msgstr "Kopiert den gesamten Text im Code-Editor in die Zwischenablage." + +#: flatcamEditors/FlatCAMTextEditor.py:103 +msgid "Open Code" +msgstr "Code öffnen" + +#: flatcamEditors/FlatCAMTextEditor.py:104 +msgid "Will open a text file in the editor." +msgstr "Öffnet eine Textdatei im Editor." + +#: flatcamEditors/FlatCAMTextEditor.py:106 +msgid "Save Code" +msgstr "Code speichern" + +#: flatcamEditors/FlatCAMTextEditor.py:107 +msgid "Will save the text in the editor into a file." +msgstr "Speichert den Text im Editor in einer Datei." + +#: flatcamEditors/FlatCAMTextEditor.py:109 +msgid "Run Code" +msgstr "Code ausführen" + +#: flatcamEditors/FlatCAMTextEditor.py:110 +msgid "Will run the TCL commands found in the text file, one by one." +msgstr "Führt die in der Textdatei enthaltenen TCL-Befehle nacheinander aus." + +#: flatcamEditors/FlatCAMTextEditor.py:184 +msgid "Open file" +msgstr "Datei öffnen" + +#: flatcamEditors/FlatCAMTextEditor.py:215 +#: flatcamEditors/FlatCAMTextEditor.py:220 +msgid "Export Code ..." +msgstr "Code exportieren ..." + +#: flatcamEditors/FlatCAMTextEditor.py:272 flatcamObjects/FlatCAMCNCJob.py:955 +#: flatcamTools/ToolSolderPaste.py:1530 +msgid "No such file or directory" +msgstr "Keine solche Datei oder Ordner" + +#: flatcamEditors/FlatCAMTextEditor.py:284 flatcamObjects/FlatCAMCNCJob.py:969 +msgid "Saved to" +msgstr "Gespeichert in" + +#: flatcamEditors/FlatCAMTextEditor.py:334 +msgid "Code Editor content copied to clipboard ..." +msgstr "Code Editor Inhalt in die Zwischenablage kopiert ..." + +#: flatcamGUI/FlatCAMGUI.py:78 flatcamGUI/FlatCAMGUI.py:80 +#: flatcamGUI/FlatCAMGUI.py:2163 +msgid "Toggle Panel" +msgstr "Panel umschalten" + +#: flatcamGUI/FlatCAMGUI.py:90 +msgid "File" +msgstr "Datei" + +#: flatcamGUI/FlatCAMGUI.py:95 +msgid "&New Project ...\tCtrl+N" +msgstr "&Neues Projekt ...\\STRG+N" + +#: flatcamGUI/FlatCAMGUI.py:97 +msgid "Will create a new, blank project" +msgstr "Erzeugt ein neues leeres Projekt" + +#: flatcamGUI/FlatCAMGUI.py:102 +msgid "&New" +msgstr "&Neu" + +#: flatcamGUI/FlatCAMGUI.py:106 +msgid "Geometry\tN" +msgstr "Geometrie\tN" + +#: flatcamGUI/FlatCAMGUI.py:108 +msgid "Will create a new, empty Geometry Object." +msgstr "Erzeugt ein neues, leeres Geometrieobjekt." + +#: flatcamGUI/FlatCAMGUI.py:111 +msgid "Gerber\tB" +msgstr "Gerber\tB" + +#: flatcamGUI/FlatCAMGUI.py:113 +msgid "Will create a new, empty Gerber Object." +msgstr "Erzeugt ein neues, leeres Gerber-Objekt." + +#: flatcamGUI/FlatCAMGUI.py:116 +msgid "Excellon\tL" +msgstr "Excellon\tL" + +#: flatcamGUI/FlatCAMGUI.py:118 +msgid "Will create a new, empty Excellon Object." +msgstr "Erzeugt ein neues, leeres Excellon-Objekt." + +#: flatcamGUI/FlatCAMGUI.py:123 +msgid "Document\tD" +msgstr "Dokumentieren\tD" + +#: flatcamGUI/FlatCAMGUI.py:125 +msgid "Will create a new, empty Document Object." +msgstr "Erstellt ein neues, leeres Dokumentobjekt." + +#: flatcamGUI/FlatCAMGUI.py:129 flatcamGUI/FlatCAMGUI.py:4420 +#: flatcamTools/ToolPcbWizard.py:62 flatcamTools/ToolPcbWizard.py:69 +msgid "Open" +msgstr "Öffnen" + +#: flatcamGUI/FlatCAMGUI.py:134 +msgid "Open &Project ..." +msgstr "&Projekt öffnen..." + +#: flatcamGUI/FlatCAMGUI.py:140 flatcamGUI/FlatCAMGUI.py:4430 +msgid "Open &Gerber ...\tCtrl+G" +msgstr "&Gerber öffnen...\\STRG+G" + +#: flatcamGUI/FlatCAMGUI.py:145 flatcamGUI/FlatCAMGUI.py:4435 +msgid "Open &Excellon ...\tCtrl+E" +msgstr "&Excellon öffnen...\\STRG+E" + +#: flatcamGUI/FlatCAMGUI.py:150 flatcamGUI/FlatCAMGUI.py:4440 +msgid "Open G-&Code ..." +msgstr "G-&Code öffnen..." + +#: flatcamGUI/FlatCAMGUI.py:157 +msgid "Open Config ..." +msgstr "Config öffnen..." + +#: flatcamGUI/FlatCAMGUI.py:162 +msgid "Recent projects" +msgstr "Letzte Projekte" + +#: flatcamGUI/FlatCAMGUI.py:164 +msgid "Recent files" +msgstr "Neueste Dateien" + +#: flatcamGUI/FlatCAMGUI.py:167 flatcamGUI/FlatCAMGUI.py:753 +#: flatcamGUI/FlatCAMGUI.py:1339 +msgid "Save" +msgstr "Speichern" + +#: flatcamGUI/FlatCAMGUI.py:171 +msgid "&Save Project ...\tCtrl+S" +msgstr "Projekt speichern ...\\STRG+S" + +#: flatcamGUI/FlatCAMGUI.py:176 +msgid "Save Project &As ...\tCtrl+Shift+S" +msgstr "Projekt speichern als ...\\STRG+Shift+S" + +#: flatcamGUI/FlatCAMGUI.py:191 +msgid "Scripting" +msgstr "Scripting" + +#: flatcamGUI/FlatCAMGUI.py:195 flatcamGUI/FlatCAMGUI.py:903 +#: flatcamGUI/FlatCAMGUI.py:2607 +msgid "New Script ..." +msgstr "Neues Skript ..." + +#: flatcamGUI/FlatCAMGUI.py:197 flatcamGUI/FlatCAMGUI.py:905 +#: flatcamGUI/FlatCAMGUI.py:2609 +msgid "Open Script ..." +msgstr "Skript öffnen ..." + +#: flatcamGUI/FlatCAMGUI.py:199 +msgid "Open Example ..." +msgstr "Beispiel öffnen ..." + +#: flatcamGUI/FlatCAMGUI.py:201 flatcamGUI/FlatCAMGUI.py:907 +#: flatcamGUI/FlatCAMGUI.py:2611 flatcamGUI/FlatCAMGUI.py:4409 +msgid "Run Script ..." +msgstr "Skript ausführen ..." + +#: flatcamGUI/FlatCAMGUI.py:203 flatcamGUI/FlatCAMGUI.py:4411 +msgid "" +"Will run the opened Tcl Script thus\n" +"enabling the automation of certain\n" +"functions of FlatCAM." +msgstr "" +"Das geöffnete Tcl-Skript wird ausgeführt.\n" +"Ermöglichung der Automatisierung bestimmter\n" +"Funktionen von FlatCAM." + +#: flatcamGUI/FlatCAMGUI.py:218 +msgid "Import" +msgstr "Importieren" + +#: flatcamGUI/FlatCAMGUI.py:220 +msgid "&SVG as Geometry Object ..." +msgstr "&SVG als Geometrieobjekt ..." + +#: flatcamGUI/FlatCAMGUI.py:223 +msgid "&SVG as Gerber Object ..." +msgstr "&SVG als Gerberobjekt ..." + +#: flatcamGUI/FlatCAMGUI.py:228 +msgid "&DXF as Geometry Object ..." +msgstr "&DXF als Geometrieobjekt ..." + +#: flatcamGUI/FlatCAMGUI.py:231 +msgid "&DXF as Gerber Object ..." +msgstr "&DXF als Gerberobjekt ..." + +#: flatcamGUI/FlatCAMGUI.py:235 +msgid "HPGL2 as Geometry Object ..." +msgstr "HPGL2 als Geometrieobjekt ..." + +#: flatcamGUI/FlatCAMGUI.py:241 +msgid "Export" +msgstr "Exportieren" + +#: flatcamGUI/FlatCAMGUI.py:245 +msgid "Export &SVG ..." +msgstr "SVG exportieren ..." + +#: flatcamGUI/FlatCAMGUI.py:249 +msgid "Export DXF ..." +msgstr "DXF exportieren ..." + +#: flatcamGUI/FlatCAMGUI.py:255 +msgid "Export &PNG ..." +msgstr "PNG exportieren ..." + +#: flatcamGUI/FlatCAMGUI.py:257 +msgid "" +"Will export an image in PNG format,\n" +"the saved image will contain the visual \n" +"information currently in FlatCAM Plot Area." +msgstr "" +"Exportiert ein Bild im PNG-Format,\n" +"Das gespeicherte Bild enthält die\n" +"Bildinformationen des FlatCAM-Plotbereiches." + +#: flatcamGUI/FlatCAMGUI.py:266 +msgid "Export &Excellon ..." +msgstr "Excellon exportieren ..." + +#: flatcamGUI/FlatCAMGUI.py:268 +msgid "" +"Will export an Excellon Object as Excellon file,\n" +"the coordinates format, the file units and zeros\n" +"are set in Preferences -> Excellon Export." +msgstr "" +"Exportieren Exportiert ein Excellon-Objekt als Excellon-Datei.\n" +"Das Koordinatenformat, die Dateieinheiten und Nullen\n" +"werden in den Einstellungen -> Excellon Export.Excellon eingestellt ..." + +#: flatcamGUI/FlatCAMGUI.py:275 +msgid "Export &Gerber ..." +msgstr "Gerber exportieren ..." + +#: flatcamGUI/FlatCAMGUI.py:277 +msgid "" +"Will export an Gerber Object as Gerber file,\n" +"the coordinates format, the file units and zeros\n" +"are set in Preferences -> Gerber Export." +msgstr "" +"Exportiert ein Gerber-Objekt als Gerber-Datei.\n" +"das Koordinatenformat, die Dateieinheiten und Nullen\n" +"werden in den Einstellungen -> Gerber Export eingestellt." + +#: flatcamGUI/FlatCAMGUI.py:287 +msgid "Backup" +msgstr "Sicherungskopie" + +#: flatcamGUI/FlatCAMGUI.py:292 +msgid "Import Preferences from file ..." +msgstr "Einstellungen aus Datei importieren ..." + +#: flatcamGUI/FlatCAMGUI.py:298 +msgid "Export Preferences to file ..." +msgstr "Einstellungen in Datei exportieren ..." + +#: flatcamGUI/FlatCAMGUI.py:306 +#: flatcamGUI/preferences/PreferencesUIManager.py:1119 +msgid "Save Preferences" +msgstr "Einstellungen speichern" + +#: flatcamGUI/FlatCAMGUI.py:312 flatcamGUI/FlatCAMGUI.py:1730 +msgid "Print (PDF)" +msgstr "Drucken (PDF)" + +#: flatcamGUI/FlatCAMGUI.py:320 +msgid "E&xit" +msgstr "Ausgang" + +#: flatcamGUI/FlatCAMGUI.py:328 flatcamGUI/FlatCAMGUI.py:747 +#: flatcamGUI/FlatCAMGUI.py:2286 +msgid "Edit" +msgstr "Bearbeiten" + +#: flatcamGUI/FlatCAMGUI.py:332 +msgid "Edit Object\tE" +msgstr "Objekt bearbeiten\tE" + +#: flatcamGUI/FlatCAMGUI.py:334 +msgid "Close Editor\tCtrl+S" +msgstr "Schließen Sie Editor\tSTRG+S" + +#: flatcamGUI/FlatCAMGUI.py:343 +msgid "Conversion" +msgstr "Umwandlung" + +#: flatcamGUI/FlatCAMGUI.py:345 +msgid "&Join Geo/Gerber/Exc -> Geo" +msgstr "Geo/Gerber/Exc -> Geo zusammenfassen" + +#: flatcamGUI/FlatCAMGUI.py:347 +msgid "" +"Merge a selection of objects, which can be of type:\n" +"- Gerber\n" +"- Excellon\n" +"- Geometry\n" +"into a new combo Geometry object." +msgstr "" +"Zusammenführen einer Auswahl von Objekten, die vom Typ sein können:\n" +"- Gerber\n" +"- Excellon\n" +"- Geometrie\n" +"in ein neues Geometrieobjekt kombinieren." + +#: flatcamGUI/FlatCAMGUI.py:354 +msgid "Join Excellon(s) -> Excellon" +msgstr "Excellon(s) -> Excellon zusammenfassen" + +#: flatcamGUI/FlatCAMGUI.py:356 +msgid "Merge a selection of Excellon objects into a new combo Excellon object." +msgstr "" +"Fassen Sie eine Auswahl von Excellon-Objekten in einem neuen Excellon-Objekt " +"zusammen." + +#: flatcamGUI/FlatCAMGUI.py:359 +msgid "Join Gerber(s) -> Gerber" +msgstr "Gerber(s) -> Gerber zusammenfassen" + +#: flatcamGUI/FlatCAMGUI.py:361 +msgid "Merge a selection of Gerber objects into a new combo Gerber object." +msgstr "" +"Mischen Sie eine Auswahl von Gerber-Objekten in ein neues Gerber-" +"Kombinationsobjekt." + +#: flatcamGUI/FlatCAMGUI.py:366 +msgid "Convert Single to MultiGeo" +msgstr "Konvertieren Sie Single in MultiGeo" + +#: flatcamGUI/FlatCAMGUI.py:368 +msgid "" +"Will convert a Geometry object from single_geometry type\n" +"to a multi_geometry type." +msgstr "" +"Konvertiert ein Geometrieobjekt vom Typ single_geometry\n" +"zu einem multi_geometry-Typ." + +#: flatcamGUI/FlatCAMGUI.py:372 +msgid "Convert Multi to SingleGeo" +msgstr "Konvertieren Sie Multi in SingleGeo" + +#: flatcamGUI/FlatCAMGUI.py:374 +msgid "" +"Will convert a Geometry object from multi_geometry type\n" +"to a single_geometry type." +msgstr "" +"Konvertiert ein Geometrieobjekt vom Typ multi_geometry\n" +"zu einem single_geometry-Typ." + +#: flatcamGUI/FlatCAMGUI.py:381 +msgid "Convert Any to Geo" +msgstr "Konvertieren Sie Any zu Geo" + +#: flatcamGUI/FlatCAMGUI.py:384 +msgid "Convert Any to Gerber" +msgstr "Konvertieren Sie Any zu Gerber" + +#: flatcamGUI/FlatCAMGUI.py:390 +msgid "&Copy\tCtrl+C" +msgstr "Kopieren\tSTRG+C" + +#: flatcamGUI/FlatCAMGUI.py:395 +msgid "&Delete\tDEL" +msgstr "Löschen\tDEL" + +#: flatcamGUI/FlatCAMGUI.py:400 +msgid "Se&t Origin\tO" +msgstr "Ursprung festlegen\tO" + +#: flatcamGUI/FlatCAMGUI.py:402 +msgid "Move to Origin\tShift+O" +msgstr "Zum Ursprung wechseln\tShift+O" + +#: flatcamGUI/FlatCAMGUI.py:405 +msgid "Jump to Location\tJ" +msgstr "Zum Ort springen\tJ" + +#: flatcamGUI/FlatCAMGUI.py:407 +msgid "Locate in Object\tShift+J" +msgstr "Suchen Sie im Objekt\tShift+J" + +#: flatcamGUI/FlatCAMGUI.py:412 +msgid "Toggle Units\tQ" +msgstr "Einheiten umschalten\tQ" + +#: flatcamGUI/FlatCAMGUI.py:414 +msgid "&Select All\tCtrl+A" +msgstr "Alles auswählen\tSTRG+A" + +#: flatcamGUI/FlatCAMGUI.py:419 +msgid "&Preferences\tShift+P" +msgstr "Einstellungen\tShift+P" + +#: flatcamGUI/FlatCAMGUI.py:425 flatcamTools/ToolProperties.py:155 +msgid "Options" +msgstr "Optionen" + +#: flatcamGUI/FlatCAMGUI.py:427 +msgid "&Rotate Selection\tShift+(R)" +msgstr "Auswahl drehen\tShift+(R)" + +#: flatcamGUI/FlatCAMGUI.py:432 +msgid "&Skew on X axis\tShift+X" +msgstr "Neigung auf der X-Achse\tShift+X" + +#: flatcamGUI/FlatCAMGUI.py:434 +msgid "S&kew on Y axis\tShift+Y" +msgstr "Neigung auf der Y-Achse\tShift+Y" + +#: flatcamGUI/FlatCAMGUI.py:439 +msgid "Flip on &X axis\tX" +msgstr "X-Achse kippen\tX" + +#: flatcamGUI/FlatCAMGUI.py:441 +msgid "Flip on &Y axis\tY" +msgstr "Y-Achse kippen\tY" + +#: flatcamGUI/FlatCAMGUI.py:446 +msgid "View source\tAlt+S" +msgstr "Quelltext anzeigen\tAlt+S" + +#: flatcamGUI/FlatCAMGUI.py:448 +msgid "Tools DataBase\tCtrl+D" +msgstr "Werkzeugdatenbank\tSTRG+D" + +#: flatcamGUI/FlatCAMGUI.py:455 flatcamGUI/FlatCAMGUI.py:2183 +msgid "View" +msgstr "Aussicht" + +#: flatcamGUI/FlatCAMGUI.py:457 +msgid "Enable all plots\tAlt+1" +msgstr "Alle Diagramme aktivieren\tAlt+1" + +#: flatcamGUI/FlatCAMGUI.py:459 +msgid "Disable all plots\tAlt+2" +msgstr "Alle Diagramme deaktivieren\tAlt+2" + +#: flatcamGUI/FlatCAMGUI.py:461 +msgid "Disable non-selected\tAlt+3" +msgstr "Nicht ausgewählte Diagramme deaktivieren\tAlt+3" + +#: flatcamGUI/FlatCAMGUI.py:465 +msgid "&Zoom Fit\tV" +msgstr "Passed zoomen\tV" + +#: flatcamGUI/FlatCAMGUI.py:467 +msgid "&Zoom In\t=" +msgstr "Hineinzoomen\t=" + +#: flatcamGUI/FlatCAMGUI.py:469 +msgid "&Zoom Out\t-" +msgstr "Rauszoomen\t-" + +#: flatcamGUI/FlatCAMGUI.py:474 +msgid "Redraw All\tF5" +msgstr "Alles neu zeichnen\tF5" + +#: flatcamGUI/FlatCAMGUI.py:478 +msgid "Toggle Code Editor\tShift+E" +msgstr "Code-Editor umschalten\tShift+E" + +#: flatcamGUI/FlatCAMGUI.py:481 +msgid "&Toggle FullScreen\tAlt+F10" +msgstr "FullScreen umschalten\tAlt+F10" + +#: flatcamGUI/FlatCAMGUI.py:483 +msgid "&Toggle Plot Area\tCtrl+F10" +msgstr "Plotbereich umschalten\tSTRG+F10" + +#: flatcamGUI/FlatCAMGUI.py:485 +msgid "&Toggle Project/Sel/Tool\t`" +msgstr "Projekt/Auswahl/Werkzeug umschalten\t`" + +#: flatcamGUI/FlatCAMGUI.py:489 +msgid "&Toggle Grid Snap\tG" +msgstr "Schaltet den Rasterfang ein\tG" + +#: flatcamGUI/FlatCAMGUI.py:491 +msgid "&Toggle Grid Lines\tAlt+G" +msgstr "Gitterlinien umschalten\tAlt+G" + +#: flatcamGUI/FlatCAMGUI.py:493 +msgid "&Toggle Axis\tShift+G" +msgstr "Achse umschalten\tShift+G" + +#: flatcamGUI/FlatCAMGUI.py:495 +msgid "Toggle Workspace\tShift+W" +msgstr "Arbeitsbereich umschalten\tShift+W" + +#: flatcamGUI/FlatCAMGUI.py:500 +msgid "Objects" +msgstr "Objekte" + +#: flatcamGUI/FlatCAMGUI.py:514 +msgid "&Command Line\tS" +msgstr "Befehlszeile\tS" + +#: flatcamGUI/FlatCAMGUI.py:519 +msgid "Help" +msgstr "Hilfe" + +#: flatcamGUI/FlatCAMGUI.py:521 +msgid "Online Help\tF1" +msgstr "Onlinehilfe\tF1" + +#: flatcamGUI/FlatCAMGUI.py:531 +msgid "Report a bug" +msgstr "Einen Fehler melden" + +#: flatcamGUI/FlatCAMGUI.py:534 +msgid "Excellon Specification" +msgstr "Excellon-Spezifikation" + +#: flatcamGUI/FlatCAMGUI.py:536 +msgid "Gerber Specification" +msgstr "Gerber-Spezifikation" + +#: flatcamGUI/FlatCAMGUI.py:541 +msgid "Shortcuts List\tF3" +msgstr "Tastenkürzel Liste\tF3" + +#: flatcamGUI/FlatCAMGUI.py:543 +msgid "YouTube Channel\tF4" +msgstr "Youtube Kanal\tF4" + +#: flatcamGUI/FlatCAMGUI.py:554 +msgid "Add Circle\tO" +msgstr "Kreis hinzufügen\tO" + +#: flatcamGUI/FlatCAMGUI.py:557 +msgid "Add Arc\tA" +msgstr "Bogen hinzufügen\tA" + +#: flatcamGUI/FlatCAMGUI.py:560 +msgid "Add Rectangle\tR" +msgstr "Rechteck hinzufügen\tR" + +#: flatcamGUI/FlatCAMGUI.py:563 +msgid "Add Polygon\tN" +msgstr "Polygon hinzufügen\tN" + +#: flatcamGUI/FlatCAMGUI.py:566 +msgid "Add Path\tP" +msgstr "Pfad hinzufügen\tP" + +#: flatcamGUI/FlatCAMGUI.py:569 +msgid "Add Text\tT" +msgstr "Text hinzufügen\tT" + +#: flatcamGUI/FlatCAMGUI.py:572 +msgid "Polygon Union\tU" +msgstr "Polygon-Vereinigung\tU" + +#: flatcamGUI/FlatCAMGUI.py:574 +msgid "Polygon Intersection\tE" +msgstr "Polygonschnitt\tE" + +#: flatcamGUI/FlatCAMGUI.py:576 +msgid "Polygon Subtraction\tS" +msgstr "Polygon-Subtraktion\tS" + +#: flatcamGUI/FlatCAMGUI.py:580 +msgid "Cut Path\tX" +msgstr "Pfad ausschneiden\tX" + +#: flatcamGUI/FlatCAMGUI.py:584 +msgid "Copy Geom\tC" +msgstr "Geometrie kopieren\tC" + +#: flatcamGUI/FlatCAMGUI.py:586 +msgid "Delete Shape\tDEL" +msgstr "Form löschen\tDEL" + +#: flatcamGUI/FlatCAMGUI.py:590 flatcamGUI/FlatCAMGUI.py:677 +msgid "Move\tM" +msgstr "Bewegung\tM" + +#: flatcamGUI/FlatCAMGUI.py:592 +msgid "Buffer Tool\tB" +msgstr "Pufferwerkzeug\tB" + +#: flatcamGUI/FlatCAMGUI.py:595 +msgid "Paint Tool\tI" +msgstr "Malenwerkzeug\tI" + +#: flatcamGUI/FlatCAMGUI.py:598 +msgid "Transform Tool\tAlt+R" +msgstr "Transformationswerkzeug\tAlt+R" + +#: flatcamGUI/FlatCAMGUI.py:602 +msgid "Toggle Corner Snap\tK" +msgstr "Eckfang umschalten\tK" + +#: flatcamGUI/FlatCAMGUI.py:608 +msgid ">Excellon Editor<" +msgstr ">Excellon Editor<" + +#: flatcamGUI/FlatCAMGUI.py:612 +msgid "Add Drill Array\tA" +msgstr "Bohrfeld hinzufügen\tA" + +#: flatcamGUI/FlatCAMGUI.py:614 +msgid "Add Drill\tD" +msgstr "Bohrer hinzufügen\tD" + +#: flatcamGUI/FlatCAMGUI.py:618 +msgid "Add Slot Array\tQ" +msgstr "Steckplatz-Array hinzufügen\tQ" + +#: flatcamGUI/FlatCAMGUI.py:620 +msgid "Add Slot\tW" +msgstr "Slot hinzufügen\tW" + +#: flatcamGUI/FlatCAMGUI.py:624 +msgid "Resize Drill(S)\tR" +msgstr "Bohrer verkleinern\tR" + +#: flatcamGUI/FlatCAMGUI.py:627 flatcamGUI/FlatCAMGUI.py:671 +msgid "Copy\tC" +msgstr "Kopieren\tC" + +#: flatcamGUI/FlatCAMGUI.py:629 flatcamGUI/FlatCAMGUI.py:673 +msgid "Delete\tDEL" +msgstr "Löschen\tDEL" + +#: flatcamGUI/FlatCAMGUI.py:634 +msgid "Move Drill(s)\tM" +msgstr "Bohrer verschieben\tM" + +#: flatcamGUI/FlatCAMGUI.py:639 +msgid ">Gerber Editor<" +msgstr ">Gerber-Editor<" + +#: flatcamGUI/FlatCAMGUI.py:643 +msgid "Add Pad\tP" +msgstr "Pad hinzufügen\tP" + +#: flatcamGUI/FlatCAMGUI.py:645 +msgid "Add Pad Array\tA" +msgstr "Pad-Array hinzufügen\tA" + +#: flatcamGUI/FlatCAMGUI.py:647 +msgid "Add Track\tT" +msgstr "Track hinzufügen\tA" + +#: flatcamGUI/FlatCAMGUI.py:649 +msgid "Add Region\tN" +msgstr "Region hinzufügen\tN" + +#: flatcamGUI/FlatCAMGUI.py:653 +msgid "Poligonize\tAlt+N" +msgstr "Polygonisieren\tAlt+N" + +#: flatcamGUI/FlatCAMGUI.py:655 +msgid "Add SemiDisc\tE" +msgstr "Halbschibe hinzufügen\tE" + +#: flatcamGUI/FlatCAMGUI.py:657 +msgid "Add Disc\tD" +msgstr "Schibe hinzufügen\tD" + +#: flatcamGUI/FlatCAMGUI.py:659 +msgid "Buffer\tB" +msgstr "Puffer\tB" + +#: flatcamGUI/FlatCAMGUI.py:661 +msgid "Scale\tS" +msgstr "Skalieren\tS" + +#: flatcamGUI/FlatCAMGUI.py:663 +msgid "Mark Area\tAlt+A" +msgstr "Bereich markieren\tAlt+A" + +#: flatcamGUI/FlatCAMGUI.py:665 +msgid "Eraser\tCtrl+E" +msgstr "Radiergummi\tSTRG+E" + +#: flatcamGUI/FlatCAMGUI.py:667 +msgid "Transform\tAlt+R" +msgstr "Transformationswerkzeug\tSTRG+R" + +#: flatcamGUI/FlatCAMGUI.py:694 +msgid "Enable Plot" +msgstr "Diagramm aktivieren" + +#: flatcamGUI/FlatCAMGUI.py:696 +msgid "Disable Plot" +msgstr "Diagramm deaktivieren" + +#: flatcamGUI/FlatCAMGUI.py:700 +msgid "Set Color" +msgstr "Farbsatz" + +#: flatcamGUI/FlatCAMGUI.py:742 +msgid "Generate CNC" +msgstr "CNC generieren" + +#: flatcamGUI/FlatCAMGUI.py:744 +msgid "View Source" +msgstr "Quelltext anzeigen" + +#: flatcamGUI/FlatCAMGUI.py:749 flatcamGUI/FlatCAMGUI.py:863 +#: flatcamGUI/FlatCAMGUI.py:1072 flatcamGUI/FlatCAMGUI.py:2138 +#: flatcamGUI/FlatCAMGUI.py:2282 flatcamGUI/FlatCAMGUI.py:2572 +#: flatcamGUI/FlatCAMGUI.py:2775 flatcamGUI/ObjectUI.py:1617 +#: flatcamObjects/FlatCAMGeometry.py:502 flatcamTools/ToolPanelize.py:540 +#: flatcamTools/ToolPanelize.py:567 flatcamTools/ToolPanelize.py:660 +#: flatcamTools/ToolPanelize.py:689 flatcamTools/ToolPanelize.py:751 +msgid "Copy" +msgstr "Kopieren" + +#: flatcamGUI/FlatCAMGUI.py:757 flatcamGUI/FlatCAMGUI.py:2295 +#: flatcamTools/ToolProperties.py:31 +msgid "Properties" +msgstr "Eigenschaften" + +#: flatcamGUI/FlatCAMGUI.py:786 +msgid "File Toolbar" +msgstr "Dateisymbolleiste" + +#: flatcamGUI/FlatCAMGUI.py:790 +msgid "Edit Toolbar" +msgstr "Symbolleiste bearbeiten" + +#: flatcamGUI/FlatCAMGUI.py:794 +msgid "View Toolbar" +msgstr "Symbolleiste anzeigen" + +#: flatcamGUI/FlatCAMGUI.py:798 +msgid "Shell Toolbar" +msgstr "Shell-Symbolleiste" + +#: flatcamGUI/FlatCAMGUI.py:802 +msgid "Tools Toolbar" +msgstr "Werkzeugleiste" + +#: flatcamGUI/FlatCAMGUI.py:806 +msgid "Excellon Editor Toolbar" +msgstr "Excellon Editor-Symbolleiste" + +#: flatcamGUI/FlatCAMGUI.py:812 +msgid "Geometry Editor Toolbar" +msgstr "Geometrie Editor-Symbolleiste" + +#: flatcamGUI/FlatCAMGUI.py:816 +msgid "Gerber Editor Toolbar" +msgstr "Gerber Editor-Symbolleiste" + +#: flatcamGUI/FlatCAMGUI.py:820 +msgid "Grid Toolbar" +msgstr "Raster-Symbolleiste" + +#: flatcamGUI/FlatCAMGUI.py:841 flatcamGUI/FlatCAMGUI.py:2549 +msgid "Open project" +msgstr "Projekt öffnen" + +#: flatcamGUI/FlatCAMGUI.py:843 flatcamGUI/FlatCAMGUI.py:2551 +msgid "Save project" +msgstr "Projekt speichern" + +#: flatcamGUI/FlatCAMGUI.py:849 flatcamGUI/FlatCAMGUI.py:2557 +msgid "New Blank Geometry" +msgstr "Neue Geometrie erstellen" + +#: flatcamGUI/FlatCAMGUI.py:851 flatcamGUI/FlatCAMGUI.py:2559 +msgid "New Blank Gerber" +msgstr "Neues Gerber erstellen" + +#: flatcamGUI/FlatCAMGUI.py:853 flatcamGUI/FlatCAMGUI.py:2561 +msgid "New Blank Excellon" +msgstr "Neuen Excellon erstellen" + +#: flatcamGUI/FlatCAMGUI.py:858 flatcamGUI/FlatCAMGUI.py:2567 +msgid "Save Object and close the Editor" +msgstr "Speichern Sie das Objekt und schließen Sie den Editor" + +#: flatcamGUI/FlatCAMGUI.py:865 flatcamGUI/FlatCAMGUI.py:2574 +msgid "&Delete" +msgstr "&Löschen" + +#: flatcamGUI/FlatCAMGUI.py:868 flatcamGUI/FlatCAMGUI.py:1729 +#: flatcamGUI/FlatCAMGUI.py:1935 flatcamGUI/FlatCAMGUI.py:2577 +#: flatcamTools/ToolDistance.py:35 flatcamTools/ToolDistance.py:195 +msgid "Distance Tool" +msgstr "Entfernungswerkzeug" + +#: flatcamGUI/FlatCAMGUI.py:870 flatcamGUI/FlatCAMGUI.py:2579 +msgid "Distance Min Tool" +msgstr "Werkzeug für Mindestabstand" + +#: flatcamGUI/FlatCAMGUI.py:872 flatcamGUI/FlatCAMGUI.py:1722 +#: flatcamGUI/FlatCAMGUI.py:2581 +msgid "Set Origin" +msgstr "Nullpunkt festlegen" + +#: flatcamGUI/FlatCAMGUI.py:874 +msgid "Move to Origin" +msgstr "Zum Ursprung wechseln" + +#: flatcamGUI/FlatCAMGUI.py:877 flatcamGUI/FlatCAMGUI.py:2583 +msgid "Jump to Location" +msgstr "Zur Position springen\tJ" + +#: flatcamGUI/FlatCAMGUI.py:879 flatcamGUI/FlatCAMGUI.py:1734 +#: flatcamGUI/FlatCAMGUI.py:2585 +msgid "Locate in Object" +msgstr "Suchen Sie im Objekt" + +#: flatcamGUI/FlatCAMGUI.py:885 flatcamGUI/FlatCAMGUI.py:2591 +msgid "&Replot" +msgstr "Neuzeichnen &R" + +#: flatcamGUI/FlatCAMGUI.py:887 flatcamGUI/FlatCAMGUI.py:2593 +msgid "&Clear plot" +msgstr "Darstellung löschen &C" + +#: flatcamGUI/FlatCAMGUI.py:889 flatcamGUI/FlatCAMGUI.py:1725 +#: flatcamGUI/FlatCAMGUI.py:2595 +msgid "Zoom In" +msgstr "Hineinzoomen" + +#: flatcamGUI/FlatCAMGUI.py:891 flatcamGUI/FlatCAMGUI.py:1725 +#: flatcamGUI/FlatCAMGUI.py:2597 +msgid "Zoom Out" +msgstr "Rauszoomen" + +#: flatcamGUI/FlatCAMGUI.py:893 flatcamGUI/FlatCAMGUI.py:1724 +#: flatcamGUI/FlatCAMGUI.py:2185 flatcamGUI/FlatCAMGUI.py:2599 +msgid "Zoom Fit" +msgstr "Passend zoomen" + +#: flatcamGUI/FlatCAMGUI.py:901 flatcamGUI/FlatCAMGUI.py:2605 +msgid "&Command Line" +msgstr "Befehlszeile" + +#: flatcamGUI/FlatCAMGUI.py:913 flatcamGUI/FlatCAMGUI.py:2617 +msgid "2Sided Tool" +msgstr "2Seitiges Werkzeug" + +#: flatcamGUI/FlatCAMGUI.py:915 flatcamGUI/FlatCAMGUI.py:1740 +#: flatcamGUI/FlatCAMGUI.py:2619 +msgid "Align Objects Tool" +msgstr "Werkzeug \"Objekte ausrichten\"" + +#: flatcamGUI/FlatCAMGUI.py:917 flatcamGUI/FlatCAMGUI.py:1741 +#: flatcamGUI/FlatCAMGUI.py:2621 flatcamTools/ToolExtractDrills.py:393 +msgid "Extract Drills Tool" +msgstr "Bohrer Extrahieren Werkzeug" + +#: flatcamGUI/FlatCAMGUI.py:920 flatcamGUI/ObjectUI.py:596 +#: flatcamTools/ToolCutOut.py:440 +msgid "Cutout Tool" +msgstr "Ausschnittwerkzeug" + +#: flatcamGUI/FlatCAMGUI.py:922 flatcamGUI/FlatCAMGUI.py:2626 +#: flatcamGUI/ObjectUI.py:574 flatcamGUI/ObjectUI.py:2157 +#: flatcamTools/ToolNCC.py:974 +msgid "NCC Tool" +msgstr "NCC Werkzeug" + +#: flatcamGUI/FlatCAMGUI.py:928 flatcamGUI/FlatCAMGUI.py:2632 +msgid "Panel Tool" +msgstr "Platte Werkzeug" + +#: flatcamGUI/FlatCAMGUI.py:930 flatcamGUI/FlatCAMGUI.py:2634 +#: flatcamTools/ToolFilm.py:586 +msgid "Film Tool" +msgstr "Filmwerkzeug" + +#: flatcamGUI/FlatCAMGUI.py:932 flatcamGUI/FlatCAMGUI.py:2636 +#: flatcamTools/ToolSolderPaste.py:553 +msgid "SolderPaste Tool" +msgstr "Lötpaste-Werkzeug" + +#: flatcamGUI/FlatCAMGUI.py:934 flatcamGUI/FlatCAMGUI.py:2638 +#: flatcamTools/ToolSub.py:35 +msgid "Subtract Tool" +msgstr "Subtraktionswerkzeug" + +#: flatcamGUI/FlatCAMGUI.py:936 flatcamGUI/FlatCAMGUI.py:2640 +#: flatcamTools/ToolRulesCheck.py:616 +msgid "Rules Tool" +msgstr "Regelwerkzeug" + +#: flatcamGUI/FlatCAMGUI.py:938 flatcamGUI/FlatCAMGUI.py:1743 +#: flatcamGUI/FlatCAMGUI.py:2642 flatcamTools/ToolOptimal.py:33 +#: flatcamTools/ToolOptimal.py:307 +msgid "Optimal Tool" +msgstr "Optimierungswerkzeug" + +#: flatcamGUI/FlatCAMGUI.py:943 flatcamGUI/FlatCAMGUI.py:1740 +#: flatcamGUI/FlatCAMGUI.py:2647 +msgid "Calculators Tool" +msgstr "Rechnerwerkzeug" + +#: flatcamGUI/FlatCAMGUI.py:947 flatcamGUI/FlatCAMGUI.py:1744 +#: flatcamGUI/FlatCAMGUI.py:2651 flatcamTools/ToolQRCode.py:43 +#: flatcamTools/ToolQRCode.py:382 +msgid "QRCode Tool" +msgstr "QRCode Werkzeug" + +# Really don't know +#: flatcamGUI/FlatCAMGUI.py:949 flatcamGUI/FlatCAMGUI.py:2653 +#: flatcamTools/ToolCopperThieving.py:39 flatcamTools/ToolCopperThieving.py:568 +msgid "Copper Thieving Tool" +msgstr "Copper Thieving Werkzeug" + +# Really don't know +#: flatcamGUI/FlatCAMGUI.py:952 flatcamGUI/FlatCAMGUI.py:1741 +#: flatcamGUI/FlatCAMGUI.py:2656 flatcamTools/ToolFiducials.py:33 +#: flatcamTools/ToolFiducials.py:395 +msgid "Fiducials Tool" +msgstr "Passermarken-Tool" + +#: flatcamGUI/FlatCAMGUI.py:954 flatcamGUI/FlatCAMGUI.py:2658 +#: flatcamTools/ToolCalibration.py:37 flatcamTools/ToolCalibration.py:759 +msgid "Calibration Tool" +msgstr "Kalibierungswerkzeug" + +#: flatcamGUI/FlatCAMGUI.py:956 flatcamGUI/FlatCAMGUI.py:1741 +#: flatcamGUI/FlatCAMGUI.py:2660 +msgid "Punch Gerber Tool" +msgstr "Stanzen Sie das Gerber-Werkzeug" + +#: flatcamGUI/FlatCAMGUI.py:958 flatcamGUI/FlatCAMGUI.py:2662 +#: flatcamTools/ToolInvertGerber.py:31 +msgid "Invert Gerber Tool" +msgstr "Invertieren Sie das Gerber-Werkzeug" + +#: flatcamGUI/FlatCAMGUI.py:964 flatcamGUI/FlatCAMGUI.py:990 +#: flatcamGUI/FlatCAMGUI.py:1042 flatcamGUI/FlatCAMGUI.py:2668 +#: flatcamGUI/FlatCAMGUI.py:2746 +msgid "Select" +msgstr "Wählen" + +#: flatcamGUI/FlatCAMGUI.py:966 flatcamGUI/FlatCAMGUI.py:2670 +msgid "Add Drill Hole" +msgstr "Bohrloch hinzufügen" + +#: flatcamGUI/FlatCAMGUI.py:968 flatcamGUI/FlatCAMGUI.py:2672 +msgid "Add Drill Hole Array" +msgstr "Bohrlochfeld hinzufügen" + +#: flatcamGUI/FlatCAMGUI.py:970 flatcamGUI/FlatCAMGUI.py:2020 +#: flatcamGUI/FlatCAMGUI.py:2273 flatcamGUI/FlatCAMGUI.py:2676 +msgid "Add Slot" +msgstr "Steckplatz hinzufügen" + +#: flatcamGUI/FlatCAMGUI.py:972 flatcamGUI/FlatCAMGUI.py:2019 +#: flatcamGUI/FlatCAMGUI.py:2275 flatcamGUI/FlatCAMGUI.py:2678 +msgid "Add Slot Array" +msgstr "Steckplatz-Array hinzufügen" + +#: flatcamGUI/FlatCAMGUI.py:974 flatcamGUI/FlatCAMGUI.py:2278 +#: flatcamGUI/FlatCAMGUI.py:2674 +msgid "Resize Drill" +msgstr "Bohrergröße ändern" + +#: flatcamGUI/FlatCAMGUI.py:978 flatcamGUI/FlatCAMGUI.py:2682 +msgid "Copy Drill" +msgstr "Bohrer kopieren" + +#: flatcamGUI/FlatCAMGUI.py:980 flatcamGUI/FlatCAMGUI.py:2684 +msgid "Delete Drill" +msgstr "Bohrer löschen" + +#: flatcamGUI/FlatCAMGUI.py:984 flatcamGUI/FlatCAMGUI.py:2688 +msgid "Move Drill" +msgstr "Bohrer bewegen" + +#: flatcamGUI/FlatCAMGUI.py:992 flatcamGUI/FlatCAMGUI.py:2696 +msgid "Add Circle" +msgstr "Kreis hinzufügen" + +#: flatcamGUI/FlatCAMGUI.py:994 flatcamGUI/FlatCAMGUI.py:2698 +msgid "Add Arc" +msgstr "Bogen hinzufügen" + +#: flatcamGUI/FlatCAMGUI.py:996 flatcamGUI/FlatCAMGUI.py:2700 +msgid "Add Rectangle" +msgstr "Rechteck hinzufügen" + +#: flatcamGUI/FlatCAMGUI.py:1000 flatcamGUI/FlatCAMGUI.py:2704 +msgid "Add Path" +msgstr "Pfad hinzufügen" + +#: flatcamGUI/FlatCAMGUI.py:1002 flatcamGUI/FlatCAMGUI.py:2706 +msgid "Add Polygon" +msgstr "Polygon hinzufügen" + +#: flatcamGUI/FlatCAMGUI.py:1005 flatcamGUI/FlatCAMGUI.py:2709 +msgid "Add Text" +msgstr "Text hinzufügen" + +#: flatcamGUI/FlatCAMGUI.py:1007 flatcamGUI/FlatCAMGUI.py:2711 +msgid "Add Buffer" +msgstr "Puffer hinzufügen" + +#: flatcamGUI/FlatCAMGUI.py:1009 flatcamGUI/FlatCAMGUI.py:2713 +msgid "Paint Shape" +msgstr "Malen Form" + +#: flatcamGUI/FlatCAMGUI.py:1011 flatcamGUI/FlatCAMGUI.py:1068 +#: flatcamGUI/FlatCAMGUI.py:2214 flatcamGUI/FlatCAMGUI.py:2259 +#: flatcamGUI/FlatCAMGUI.py:2715 flatcamGUI/FlatCAMGUI.py:2771 +msgid "Eraser" +msgstr "Radiergummi" + +#: flatcamGUI/FlatCAMGUI.py:1015 flatcamGUI/FlatCAMGUI.py:2719 +msgid "Polygon Union" +msgstr "Polygon-Vereinigung" + +#: flatcamGUI/FlatCAMGUI.py:1017 flatcamGUI/FlatCAMGUI.py:2721 +msgid "Polygon Explode" +msgstr "Polygon explodieren" + +#: flatcamGUI/FlatCAMGUI.py:1020 flatcamGUI/FlatCAMGUI.py:2724 +msgid "Polygon Intersection" +msgstr "Polygonschnitt" + +#: flatcamGUI/FlatCAMGUI.py:1022 flatcamGUI/FlatCAMGUI.py:2726 +msgid "Polygon Subtraction" +msgstr "Polygon-Subtraktion" + +#: flatcamGUI/FlatCAMGUI.py:1026 flatcamGUI/FlatCAMGUI.py:2730 +msgid "Cut Path" +msgstr "Pfad ausschneiden" + +#: flatcamGUI/FlatCAMGUI.py:1028 +msgid "Copy Shape(s)" +msgstr "Form kopieren" + +#: flatcamGUI/FlatCAMGUI.py:1031 +msgid "Delete Shape '-'" +msgstr "Form löschen" + +#: flatcamGUI/FlatCAMGUI.py:1033 flatcamGUI/FlatCAMGUI.py:1076 +#: flatcamGUI/FlatCAMGUI.py:2226 flatcamGUI/FlatCAMGUI.py:2263 +#: flatcamGUI/FlatCAMGUI.py:2736 flatcamGUI/FlatCAMGUI.py:2779 +#: flatcamGUI/ObjectUI.py:109 +msgid "Transformations" +msgstr "Transformationen" + +#: flatcamGUI/FlatCAMGUI.py:1036 +msgid "Move Objects " +msgstr "Objekte verschieben " + +#: flatcamGUI/FlatCAMGUI.py:1044 flatcamGUI/FlatCAMGUI.py:2139 +#: flatcamGUI/FlatCAMGUI.py:2748 +msgid "Add Pad" +msgstr "Pad hinzufügen" + +#: flatcamGUI/FlatCAMGUI.py:1048 flatcamGUI/FlatCAMGUI.py:2140 +#: flatcamGUI/FlatCAMGUI.py:2752 +msgid "Add Track" +msgstr "Track hinzufügen" + +#: flatcamGUI/FlatCAMGUI.py:1050 flatcamGUI/FlatCAMGUI.py:2139 +#: flatcamGUI/FlatCAMGUI.py:2754 +msgid "Add Region" +msgstr "Region hinzufügen" + +#: flatcamGUI/FlatCAMGUI.py:1052 flatcamGUI/FlatCAMGUI.py:2245 +#: flatcamGUI/FlatCAMGUI.py:2756 +msgid "Poligonize" +msgstr "Polygonisieren" + +#: flatcamGUI/FlatCAMGUI.py:1055 flatcamGUI/FlatCAMGUI.py:2247 +#: flatcamGUI/FlatCAMGUI.py:2759 +msgid "SemiDisc" +msgstr "Halbscheibe" + +#: flatcamGUI/FlatCAMGUI.py:1057 flatcamGUI/FlatCAMGUI.py:2249 +#: flatcamGUI/FlatCAMGUI.py:2761 +msgid "Disc" +msgstr "Scheibe" + +#: flatcamGUI/FlatCAMGUI.py:1065 flatcamGUI/FlatCAMGUI.py:2257 +#: flatcamGUI/FlatCAMGUI.py:2769 +msgid "Mark Area" +msgstr "Bereich markieren" + +#: flatcamGUI/FlatCAMGUI.py:1079 flatcamGUI/FlatCAMGUI.py:2139 +#: flatcamGUI/FlatCAMGUI.py:2230 flatcamGUI/FlatCAMGUI.py:2293 +#: flatcamGUI/FlatCAMGUI.py:2782 flatcamTools/ToolMove.py:27 +msgid "Move" +msgstr "Bewegung" + +#: flatcamGUI/FlatCAMGUI.py:1087 flatcamGUI/FlatCAMGUI.py:2791 +msgid "Snap to grid" +msgstr "Am Raster ausrichten" + +#: flatcamGUI/FlatCAMGUI.py:1090 flatcamGUI/FlatCAMGUI.py:2794 +msgid "Grid X snapping distance" +msgstr "Raster X Fangdistanz" + +#: flatcamGUI/FlatCAMGUI.py:1095 flatcamGUI/FlatCAMGUI.py:2799 +msgid "Grid Y snapping distance" +msgstr "Raster Y Fangdistanz" + +#: flatcamGUI/FlatCAMGUI.py:1101 flatcamGUI/FlatCAMGUI.py:2805 +msgid "" +"When active, value on Grid_X\n" +"is copied to the Grid_Y value." +msgstr "" +"Wenn aktiv, Wert auf Grid_X\n" +"wird in den Wert von Grid_Y kopiert." + +#: flatcamGUI/FlatCAMGUI.py:1108 flatcamGUI/FlatCAMGUI.py:2812 +msgid "Snap to corner" +msgstr "In der Ecke ausrichten" + +#: flatcamGUI/FlatCAMGUI.py:1112 flatcamGUI/FlatCAMGUI.py:2816 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:78 +msgid "Max. magnet distance" +msgstr "Max. Magnetabstand" + +#: flatcamGUI/FlatCAMGUI.py:1149 +msgid "Selected" +msgstr "Ausgewählt" + +#: flatcamGUI/FlatCAMGUI.py:1177 flatcamGUI/FlatCAMGUI.py:1185 +msgid "Plot Area" +msgstr "Grundstücksfläche" + +#: flatcamGUI/FlatCAMGUI.py:1212 +msgid "General" +msgstr "Allgemeines" + +#: flatcamGUI/FlatCAMGUI.py:1227 flatcamTools/ToolCopperThieving.py:74 +#: flatcamTools/ToolDblSided.py:64 flatcamTools/ToolExtractDrills.py:61 +#: flatcamTools/ToolInvertGerber.py:72 flatcamTools/ToolOptimal.py:71 +#: flatcamTools/ToolPunchGerber.py:64 +msgid "GERBER" +msgstr "GERBER" + +#: flatcamGUI/FlatCAMGUI.py:1237 flatcamTools/ToolDblSided.py:92 +msgid "EXCELLON" +msgstr "EXCELLON" + +#: flatcamGUI/FlatCAMGUI.py:1247 flatcamTools/ToolDblSided.py:120 +msgid "GEOMETRY" +msgstr "GEOMETRY" + +#: flatcamGUI/FlatCAMGUI.py:1257 +msgid "CNC-JOB" +msgstr "CNC-Auftrag" + +#: flatcamGUI/FlatCAMGUI.py:1266 flatcamGUI/ObjectUI.py:563 +#: flatcamGUI/ObjectUI.py:2132 +msgid "TOOLS" +msgstr "WERKZEUGE" + +#: flatcamGUI/FlatCAMGUI.py:1275 +msgid "TOOLS 2" +msgstr "WERKZEUGE 2" + +#: flatcamGUI/FlatCAMGUI.py:1285 +msgid "UTILITIES" +msgstr "NUTZEN" + +#: flatcamGUI/FlatCAMGUI.py:1302 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:192 +msgid "Restore Defaults" +msgstr "Standard wiederherstellen" + +#: flatcamGUI/FlatCAMGUI.py:1305 +msgid "" +"Restore the entire set of default values\n" +"to the initial values loaded after first launch." +msgstr "" +"Stellen Sie den gesamten Satz von Standardwerten wieder her\n" +"auf die nach dem ersten Start geladenen Anfangswerte." + +#: flatcamGUI/FlatCAMGUI.py:1310 +msgid "Open Pref Folder" +msgstr "Öffnen Sie den Einstellungsordner" + +#: flatcamGUI/FlatCAMGUI.py:1313 +msgid "Open the folder where FlatCAM save the preferences files." +msgstr "" +"Öffnen Sie den Ordner, in dem FlatCAM die Voreinstellungsdateien speichert." + +#: flatcamGUI/FlatCAMGUI.py:1317 flatcamGUI/FlatCAMGUI.py:2517 +msgid "Clear GUI Settings" +msgstr "Löschen Sie die GUI-Einstellungen" + +#: flatcamGUI/FlatCAMGUI.py:1321 +msgid "" +"Clear the GUI settings for FlatCAM,\n" +"such as: layout, gui state, style, hdpi support etc." +msgstr "" +"Löschen Sie die GUI-Einstellungen für FlatCAM.\n" +"wie zum Beispiel: Layout, GUI-Status, Stil, HDPI-Unterstützung usw." + +#: flatcamGUI/FlatCAMGUI.py:1332 +msgid "Apply" +msgstr "Anwenden" + +#: flatcamGUI/FlatCAMGUI.py:1335 +msgid "Apply the current preferences without saving to a file." +msgstr "Anwenden ohne zu speichern." + +#: flatcamGUI/FlatCAMGUI.py:1342 +msgid "" +"Save the current settings in the 'current_defaults' file\n" +"which is the file storing the working default preferences." +msgstr "" +"Speichern Sie die aktuellen Einstellungen in der Datei 'current_defaults'\n" +"Dies ist die Datei, in der die Arbeitseinstellungen gespeichert sind." + +#: flatcamGUI/FlatCAMGUI.py:1350 +msgid "Will not save the changes and will close the preferences window." +msgstr "Einstellungen werden geschlossen ohne die Änderungen zu speichern." + +#: flatcamGUI/FlatCAMGUI.py:1719 +msgid "SHOW SHORTCUT LIST" +msgstr "Verknüpfungsliste anzeigen" + +#: flatcamGUI/FlatCAMGUI.py:1719 +msgid "Switch to Project Tab" +msgstr "Wechseln Sie zur Registerkarte Projekt" + +#: flatcamGUI/FlatCAMGUI.py:1719 +msgid "Switch to Selected Tab" +msgstr "Wechseln Sie zur ausgewählten Registerkarte" + +#: flatcamGUI/FlatCAMGUI.py:1720 +msgid "Switch to Tool Tab" +msgstr "Wechseln Sie zur Werkzeugregisterkarte" + +#: flatcamGUI/FlatCAMGUI.py:1721 +msgid "New Gerber" +msgstr "Neuer Gerber" + +#: flatcamGUI/FlatCAMGUI.py:1721 +msgid "Edit Object (if selected)" +msgstr "Objekt bearbeiten (falls ausgewählt)" + +#: flatcamGUI/FlatCAMGUI.py:1721 +msgid "Jump to Coordinates" +msgstr "Springe zu den Koordinaten" + +#: flatcamGUI/FlatCAMGUI.py:1722 +msgid "New Excellon" +msgstr "Neuer Excellon" + +#: flatcamGUI/FlatCAMGUI.py:1722 +msgid "Move Obj" +msgstr "Objekt verschieben" + +#: flatcamGUI/FlatCAMGUI.py:1722 +msgid "New Geometry" +msgstr "Neue Geometrie" + +#: flatcamGUI/FlatCAMGUI.py:1722 +msgid "Change Units" +msgstr "Einheiten ändern" + +#: flatcamGUI/FlatCAMGUI.py:1723 +msgid "Open Properties Tool" +msgstr "Öffnen Sie das Eigenschaften-Tool" + +#: flatcamGUI/FlatCAMGUI.py:1723 +msgid "Rotate by 90 degree CW" +msgstr "Um 90 Grad im Uhrzeigersinn drehen" + +#: flatcamGUI/FlatCAMGUI.py:1723 +msgid "Shell Toggle" +msgstr "Shell umschalten" + +#: flatcamGUI/FlatCAMGUI.py:1724 +msgid "" +"Add a Tool (when in Geometry Selected Tab or in Tools NCC or Tools Paint)" +msgstr "" +"Hinzufügen eines Werkzeugs (auf der Registerkarte \"Geometrie ausgewählt\" " +"oder unter \"Werkzeuge\", \"NCC\" oder \"Werkzeuge\", \"Malen\")" + +#: flatcamGUI/FlatCAMGUI.py:1725 +msgid "Flip on X_axis" +msgstr "Auf X-Achse spiegeln" + +#: flatcamGUI/FlatCAMGUI.py:1725 +msgid "Flip on Y_axis" +msgstr "Auf Y-Achse spiegeln" + +#: flatcamGUI/FlatCAMGUI.py:1728 +msgid "Copy Obj" +msgstr "Objekt kopieren" + +#: flatcamGUI/FlatCAMGUI.py:1728 +msgid "Open Tools Database" +msgstr "Werkzeugdatenbank öffnen" + +#: flatcamGUI/FlatCAMGUI.py:1729 +msgid "Open Excellon File" +msgstr "Öffnen Sie die Excellon-Datei" + +#: flatcamGUI/FlatCAMGUI.py:1729 +msgid "Open Gerber File" +msgstr "Öffnen Sie die Gerber-Datei" + +#: flatcamGUI/FlatCAMGUI.py:1729 +msgid "New Project" +msgstr "Neues Projekt" + +#: flatcamGUI/FlatCAMGUI.py:1730 flatcamTools/ToolPDF.py:42 +msgid "PDF Import Tool" +msgstr "PDF-Importwerkzeug" + +#: flatcamGUI/FlatCAMGUI.py:1730 +msgid "Save Project" +msgstr "Projekt speichern" + +#: flatcamGUI/FlatCAMGUI.py:1730 +msgid "Toggle Plot Area" +msgstr "Zeichenbereich umschalten0" + +#: flatcamGUI/FlatCAMGUI.py:1733 +msgid "Copy Obj_Name" +msgstr "Kopieren Sie den Namen des Objekts" + +#: flatcamGUI/FlatCAMGUI.py:1734 +msgid "Toggle Code Editor" +msgstr "Code-Editor umschalten" + +#: flatcamGUI/FlatCAMGUI.py:1734 +msgid "Toggle the axis" +msgstr "Achse umschalten" + +#: flatcamGUI/FlatCAMGUI.py:1734 flatcamGUI/FlatCAMGUI.py:1933 +#: flatcamGUI/FlatCAMGUI.py:2020 flatcamGUI/FlatCAMGUI.py:2142 +msgid "Distance Minimum Tool" +msgstr "Mindestabstand Werkzeug" + +#: flatcamGUI/FlatCAMGUI.py:1735 +msgid "Open Preferences Window" +msgstr "Öffnen Sie das Einstellungsfenster" + +#: flatcamGUI/FlatCAMGUI.py:1736 +msgid "Rotate by 90 degree CCW" +msgstr "Um 90 Grad gegen den Uhrzeigersinn drehen" + +#: flatcamGUI/FlatCAMGUI.py:1736 +msgid "Run a Script" +msgstr "Führen Sie ein Skript aus" + +#: flatcamGUI/FlatCAMGUI.py:1736 +msgid "Toggle the workspace" +msgstr "Arbeitsbereich umschalten" + +#: flatcamGUI/FlatCAMGUI.py:1736 +msgid "Skew on X axis" +msgstr "Neigung auf der X-Achse" + +#: flatcamGUI/FlatCAMGUI.py:1737 +msgid "Skew on Y axis" +msgstr "Neigung auf der Y-Achse" + +#: flatcamGUI/FlatCAMGUI.py:1740 +msgid "2-Sided PCB Tool" +msgstr "2-seitiges PCB Werkzeug" + +#: flatcamGUI/FlatCAMGUI.py:1740 +msgid "Transformations Tool" +msgstr "Transformations-Tool" + +#: flatcamGUI/FlatCAMGUI.py:1742 +msgid "Solder Paste Dispensing Tool" +msgstr "Lotpasten-Dosierwerkzeug" + +#: flatcamGUI/FlatCAMGUI.py:1743 +msgid "Film PCB Tool" +msgstr "Film PCB Werkzeug" + +#: flatcamGUI/FlatCAMGUI.py:1743 +msgid "Non-Copper Clearing Tool" +msgstr "Nicht-Kupfer-Räumwerkzeug" + +#: flatcamGUI/FlatCAMGUI.py:1744 +msgid "Paint Area Tool" +msgstr "Malbereichswerkzeug" + +#: flatcamGUI/FlatCAMGUI.py:1744 +msgid "Rules Check Tool" +msgstr "Regelprüfwerkzeug" + +#: flatcamGUI/FlatCAMGUI.py:1745 +msgid "View File Source" +msgstr "Dateiquelle anzeigen" + +#: flatcamGUI/FlatCAMGUI.py:1746 +msgid "Cutout PCB Tool" +msgstr "Ausschnitt PCB Tool" + +#: flatcamGUI/FlatCAMGUI.py:1746 +msgid "Enable all Plots" +msgstr "Alle Zeichnungen aktivieren" + +#: flatcamGUI/FlatCAMGUI.py:1746 +msgid "Disable all Plots" +msgstr "Alle Zeichnungen deaktivieren" + +#: flatcamGUI/FlatCAMGUI.py:1746 +msgid "Disable Non-selected Plots" +msgstr "Nicht ausgewählte Zeichnungen deaktiv" + +#: flatcamGUI/FlatCAMGUI.py:1747 +msgid "Toggle Full Screen" +msgstr "Vollbild umschalten" + +#: flatcamGUI/FlatCAMGUI.py:1750 +msgid "Abort current task (gracefully)" +msgstr "Aktuelle Aufgabe abbrechen (ordnungsgemäß)" + +#: flatcamGUI/FlatCAMGUI.py:1753 +msgid "Save Project As" +msgstr "Projekt speichern als" + +#: flatcamGUI/FlatCAMGUI.py:1754 +msgid "" +"Paste Special. Will convert a Windows path style to the one required in Tcl " +"Shell" +msgstr "" +"Paste Special. Konvertiert einen Windows-Pfadstil in den in Tcl Shell " +"erforderlichen" + +#: flatcamGUI/FlatCAMGUI.py:1757 +msgid "Open Online Manual" +msgstr "Online-Handbuch öffnen" + +#: flatcamGUI/FlatCAMGUI.py:1758 +msgid "Open Online Tutorials" +msgstr "Öffnen Sie Online-Tutorials" + +#: flatcamGUI/FlatCAMGUI.py:1758 +msgid "Refresh Plots" +msgstr "Zeichnungen aktualisieren" + +#: flatcamGUI/FlatCAMGUI.py:1758 flatcamTools/ToolSolderPaste.py:509 +msgid "Delete Object" +msgstr "Objekt löschen" + +#: flatcamGUI/FlatCAMGUI.py:1758 +msgid "Alternate: Delete Tool" +msgstr "Alternative: Werkzeug löschen" + +#: flatcamGUI/FlatCAMGUI.py:1759 +msgid "(left to Key_1)Toggle Notebook Area (Left Side)" +msgstr "(links neben Taste_1) Notebook-Bereich umschalten (linke Seite)" + +#: flatcamGUI/FlatCAMGUI.py:1759 +msgid "En(Dis)able Obj Plot" +msgstr "Objektzeichnung (de)aktivieren" + +#: flatcamGUI/FlatCAMGUI.py:1760 +msgid "Deselects all objects" +msgstr "Hebt die Auswahl aller Objekte auf" + +#: flatcamGUI/FlatCAMGUI.py:1774 +msgid "Editor Shortcut list" +msgstr "Editor-Verknüpfungsliste" + +#: flatcamGUI/FlatCAMGUI.py:1928 +msgid "GEOMETRY EDITOR" +msgstr "GEOMETRIE-EDITOR" + +#: flatcamGUI/FlatCAMGUI.py:1928 +msgid "Draw an Arc" +msgstr "Zeichnen Sie einen Bogen" + +#: flatcamGUI/FlatCAMGUI.py:1928 +msgid "Copy Geo Item" +msgstr "Geo-Objekt kopieren" + +#: flatcamGUI/FlatCAMGUI.py:1929 +msgid "Within Add Arc will toogle the ARC direction: CW or CCW" +msgstr "" +"Innerhalb von Bogen hinzufügen wird die ARC-Richtung getippt: CW oder CCW" + +#: flatcamGUI/FlatCAMGUI.py:1929 +msgid "Polygon Intersection Tool" +msgstr "Werkzeug Polygonschnitt" + +#: flatcamGUI/FlatCAMGUI.py:1930 +msgid "Geo Paint Tool" +msgstr "Geo-Malwerkzeug" + +#: flatcamGUI/FlatCAMGUI.py:1930 flatcamGUI/FlatCAMGUI.py:2019 +#: flatcamGUI/FlatCAMGUI.py:2139 +msgid "Jump to Location (x, y)" +msgstr "Zum Standort springen (x, y)" + +#: flatcamGUI/FlatCAMGUI.py:1930 +msgid "Toggle Corner Snap" +msgstr "Eckfang umschalten" + +#: flatcamGUI/FlatCAMGUI.py:1930 +msgid "Move Geo Item" +msgstr "Geo-Objekt verschieben" + +#: flatcamGUI/FlatCAMGUI.py:1931 +msgid "Within Add Arc will cycle through the ARC modes" +msgstr "Innerhalb von Bogen hinzufügen werden die ARC-Modi durchlaufen" + +#: flatcamGUI/FlatCAMGUI.py:1931 +msgid "Draw a Polygon" +msgstr "Zeichnen Sie ein Polygon" + +#: flatcamGUI/FlatCAMGUI.py:1931 +msgid "Draw a Circle" +msgstr "Zeichne einen Kreis" + +#: flatcamGUI/FlatCAMGUI.py:1932 +msgid "Draw a Path" +msgstr "Zeichne einen Pfad" + +#: flatcamGUI/FlatCAMGUI.py:1932 +msgid "Draw Rectangle" +msgstr "Rechteck zeichnen" + +#: flatcamGUI/FlatCAMGUI.py:1932 +msgid "Polygon Subtraction Tool" +msgstr "Polygon-Subtraktionswerkzeug" + +#: flatcamGUI/FlatCAMGUI.py:1932 +msgid "Add Text Tool" +msgstr "Textwerkzeug hinzufügen" + +#: flatcamGUI/FlatCAMGUI.py:1933 +msgid "Polygon Union Tool" +msgstr "Polygonverbindungswerkzeug" + +#: flatcamGUI/FlatCAMGUI.py:1933 +msgid "Flip shape on X axis" +msgstr "Form auf der X-Achse spiegeln" + +#: flatcamGUI/FlatCAMGUI.py:1933 +msgid "Flip shape on Y axis" +msgstr "Form auf der Y-Achse spiegeln" + +#: flatcamGUI/FlatCAMGUI.py:1934 +msgid "Skew shape on X axis" +msgstr "Neigung auf der X-Achse" + +#: flatcamGUI/FlatCAMGUI.py:1934 +msgid "Skew shape on Y axis" +msgstr "Neigung auf der Y-Achse" + +#: flatcamGUI/FlatCAMGUI.py:1934 +msgid "Editor Transformation Tool" +msgstr "Editor-Transformationstool" + +#: flatcamGUI/FlatCAMGUI.py:1935 +msgid "Offset shape on X axis" +msgstr "Versetzte Form auf der X-Achse" + +#: flatcamGUI/FlatCAMGUI.py:1935 +msgid "Offset shape on Y axis" +msgstr "Versetzte Form auf der Y-Achse" + +#: flatcamGUI/FlatCAMGUI.py:1936 flatcamGUI/FlatCAMGUI.py:2022 +#: flatcamGUI/FlatCAMGUI.py:2144 +msgid "Save Object and Exit Editor" +msgstr "Objekt speichern und Editor beenden" + +#: flatcamGUI/FlatCAMGUI.py:1936 +msgid "Polygon Cut Tool" +msgstr "Polygon-Schneidewerkzeug" + +#: flatcamGUI/FlatCAMGUI.py:1937 +msgid "Rotate Geometry" +msgstr "Geometrie drehen" + +#: flatcamGUI/FlatCAMGUI.py:1937 +msgid "Finish drawing for certain tools" +msgstr "Beenden Sie das Zeichnen für bestimmte Werkzeuge" + +#: flatcamGUI/FlatCAMGUI.py:1937 flatcamGUI/FlatCAMGUI.py:2022 +#: flatcamGUI/FlatCAMGUI.py:2142 +msgid "Abort and return to Select" +msgstr "Abbrechen und zurück zu Auswählen" + +#: flatcamGUI/FlatCAMGUI.py:1938 flatcamGUI/FlatCAMGUI.py:2734 +msgid "Delete Shape" +msgstr "Form löschen" + +#: flatcamGUI/FlatCAMGUI.py:2018 +msgid "EXCELLON EDITOR" +msgstr "EXCELLON EDITOR" + +#: flatcamGUI/FlatCAMGUI.py:2018 +msgid "Copy Drill(s)" +msgstr "Bohrer kopieren" + +#: flatcamGUI/FlatCAMGUI.py:2018 flatcamGUI/FlatCAMGUI.py:2268 +msgid "Add Drill" +msgstr "Bohrer hinzufügen" + +#: flatcamGUI/FlatCAMGUI.py:2019 +msgid "Move Drill(s)" +msgstr "Bohrer verschieben" + +#: flatcamGUI/FlatCAMGUI.py:2020 +msgid "Add a new Tool" +msgstr "Fügen Sie ein neues Werkzeug hinzu" + +#: flatcamGUI/FlatCAMGUI.py:2021 +msgid "Delete Drill(s)" +msgstr "Bohrer löschen" + +#: flatcamGUI/FlatCAMGUI.py:2021 +msgid "Alternate: Delete Tool(s)" +msgstr "Alternative: Werkzeug (e) löschen" + +#: flatcamGUI/FlatCAMGUI.py:2138 +msgid "GERBER EDITOR" +msgstr "GERBER EDITOR" + +#: flatcamGUI/FlatCAMGUI.py:2138 +msgid "Add Disc" +msgstr "Fügen Sie eine Scheiben hinzu" + +#: flatcamGUI/FlatCAMGUI.py:2138 +msgid "Add SemiDisc" +msgstr "Halbschibe hinzufügen" + +#: flatcamGUI/FlatCAMGUI.py:2140 +msgid "Within Track & Region Tools will cycle in REVERSE the bend modes" +msgstr "" +"Innerhalb von Track- und Region-Werkzeugen werden die Biegemodi umgekehrt" + +#: flatcamGUI/FlatCAMGUI.py:2141 +msgid "Within Track & Region Tools will cycle FORWARD the bend modes" +msgstr "" +"Innerhalb von Track und Region werden mit Tools die Biegemodi vorwärts " +"durchlaufen" + +#: flatcamGUI/FlatCAMGUI.py:2142 +msgid "Alternate: Delete Apertures" +msgstr "Alternative: Löschen Sie die Blenden" + +#: flatcamGUI/FlatCAMGUI.py:2143 +msgid "Eraser Tool" +msgstr "Radiergummi" + +#: flatcamGUI/FlatCAMGUI.py:2144 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:220 +msgid "Mark Area Tool" +msgstr "Bereich markieren Werkzeug" + +#: flatcamGUI/FlatCAMGUI.py:2144 +msgid "Poligonize Tool" +msgstr "Werkzeug Polygonisieren" + +#: flatcamGUI/FlatCAMGUI.py:2144 +msgid "Transformation Tool" +msgstr "Transformationswerkzeug" + +#: flatcamGUI/FlatCAMGUI.py:2161 +msgid "Toggle Visibility" +msgstr "Sichtbarkeit umschalten" + +#: flatcamGUI/FlatCAMGUI.py:2167 +msgid "New" +msgstr "Neu" + +#: flatcamGUI/FlatCAMGUI.py:2169 flatcamGUI/ObjectUI.py:450 +#: flatcamObjects/FlatCAMGerber.py:239 flatcamObjects/FlatCAMGerber.py:327 +#: flatcamTools/ToolCalibration.py:631 flatcamTools/ToolCalibration.py:648 +#: flatcamTools/ToolCalibration.py:815 flatcamTools/ToolCopperThieving.py:144 +#: flatcamTools/ToolCopperThieving.py:158 +#: flatcamTools/ToolCopperThieving.py:604 flatcamTools/ToolCutOut.py:92 +#: flatcamTools/ToolDblSided.py:226 flatcamTools/ToolFilm.py:69 +#: flatcamTools/ToolFilm.py:102 flatcamTools/ToolFilm.py:549 +#: flatcamTools/ToolFilm.py:557 flatcamTools/ToolImage.py:49 +#: flatcamTools/ToolImage.py:271 flatcamTools/ToolNCC.py:95 +#: flatcamTools/ToolNCC.py:558 flatcamTools/ToolNCC.py:1300 +#: flatcamTools/ToolPaint.py:502 flatcamTools/ToolPaint.py:706 +#: flatcamTools/ToolPanelize.py:118 flatcamTools/ToolPanelize.py:374 +#: flatcamTools/ToolPanelize.py:391 +msgid "Geometry" +msgstr "Geometrie" + +#: flatcamGUI/FlatCAMGUI.py:2173 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:99 +#: flatcamTools/ToolAlignObjects.py:74 flatcamTools/ToolAlignObjects.py:110 +#: flatcamTools/ToolCalibration.py:197 flatcamTools/ToolCalibration.py:631 +#: flatcamTools/ToolCalibration.py:648 flatcamTools/ToolCalibration.py:807 +#: flatcamTools/ToolCalibration.py:815 flatcamTools/ToolCopperThieving.py:144 +#: flatcamTools/ToolCopperThieving.py:158 +#: flatcamTools/ToolCopperThieving.py:604 flatcamTools/ToolDblSided.py:225 +#: flatcamTools/ToolFilm.py:359 flatcamTools/ToolNCC.py:558 +#: flatcamTools/ToolNCC.py:1300 flatcamTools/ToolPaint.py:502 +#: flatcamTools/ToolPaint.py:706 flatcamTools/ToolPanelize.py:374 +#: flatcamTools/ToolPunchGerber.py:149 flatcamTools/ToolPunchGerber.py:164 +msgid "Excellon" +msgstr "Excellon" + +#: flatcamGUI/FlatCAMGUI.py:2180 +msgid "Grids" +msgstr "Raster" + +#: flatcamGUI/FlatCAMGUI.py:2187 +msgid "Clear Plot" +msgstr "Plot klar löschen" + +#: flatcamGUI/FlatCAMGUI.py:2189 +msgid "Replot" +msgstr "Replotieren" + +#: flatcamGUI/FlatCAMGUI.py:2193 +msgid "Geo Editor" +msgstr "Geo-Editor" + +#: flatcamGUI/FlatCAMGUI.py:2195 +msgid "Path" +msgstr "Pfad" + +#: flatcamGUI/FlatCAMGUI.py:2197 +msgid "Rectangle" +msgstr "Rechteck" + +#: flatcamGUI/FlatCAMGUI.py:2200 +msgid "Circle" +msgstr "Kreis" + +#: flatcamGUI/FlatCAMGUI.py:2204 +msgid "Arc" +msgstr "Bogen" + +#: flatcamGUI/FlatCAMGUI.py:2218 +msgid "Union" +msgstr "Vereinigung" + +#: flatcamGUI/FlatCAMGUI.py:2220 +msgid "Intersection" +msgstr "Überschneidung" + +#: flatcamGUI/FlatCAMGUI.py:2222 +msgid "Subtraction" +msgstr "Subtraktion" + +#: flatcamGUI/FlatCAMGUI.py:2224 flatcamGUI/ObjectUI.py:2221 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:56 +msgid "Cut" +msgstr "Schnitt" + +#: flatcamGUI/FlatCAMGUI.py:2235 +msgid "Pad" +msgstr "Pad" + +#: flatcamGUI/FlatCAMGUI.py:2237 +msgid "Pad Array" +msgstr "Pad-Array" + +#: flatcamGUI/FlatCAMGUI.py:2241 +msgid "Track" +msgstr "Track" + +#: flatcamGUI/FlatCAMGUI.py:2243 +msgid "Region" +msgstr "Region" + +#: flatcamGUI/FlatCAMGUI.py:2266 +msgid "Exc Editor" +msgstr "Exc-Editor" + +#: flatcamGUI/FlatCAMGUI.py:2311 +msgid "" +"Relative measurement.\n" +"Reference is last click position" +msgstr "" +"Relative Messung\n" +"Referenz ist Position des letzten Klicks" + +#: flatcamGUI/FlatCAMGUI.py:2317 +msgid "" +"Absolute measurement.\n" +"Reference is (X=0, Y= 0) position" +msgstr "" +"Absolute Messung.\n" +"Referenz ist (X = 0, Y = 0)" + +#: flatcamGUI/FlatCAMGUI.py:2419 +msgid "Lock Toolbars" +msgstr "Symbolleisten sperren" + +#: flatcamGUI/FlatCAMGUI.py:2505 +msgid "FlatCAM Preferences Folder opened." +msgstr "FlatCAM-Einstellungsordner geöffnet." + +#: flatcamGUI/FlatCAMGUI.py:2516 +msgid "Are you sure you want to delete the GUI Settings? \n" +msgstr "Möchten Sie die GUI-Einstellungen wirklich löschen?\n" + +#: flatcamGUI/FlatCAMGUI.py:2624 +msgid "&Cutout Tool" +msgstr "Ausschnittwerkzeug" + +#: flatcamGUI/FlatCAMGUI.py:2694 +msgid "Select 'Esc'" +msgstr "Wählen" + +#: flatcamGUI/FlatCAMGUI.py:2732 +msgid "Copy Objects" +msgstr "Objekte kopieren" + +#: flatcamGUI/FlatCAMGUI.py:2740 +msgid "Move Objects" +msgstr "Objekte verschieben" + +#: flatcamGUI/FlatCAMGUI.py:3363 +msgid "" +"Please first select a geometry item to be cutted\n" +"then select the geometry item that will be cutted\n" +"out of the first item. In the end press ~X~ key or\n" +"the toolbar button." +msgstr "" +"Bitte wählen Sie zuerst ein zu schneidendes Geometrieelement aus\n" +"Wählen Sie dann das Geometrieelement aus, das geschnitten werden soll\n" +"aus dem ersten Artikel. Zum Schluss drücken Sie die Taste ~ X ~ oder\n" +"die Symbolleisten-Schaltfläche." + +#: flatcamGUI/FlatCAMGUI.py:3370 flatcamGUI/FlatCAMGUI.py:3532 +#: flatcamGUI/FlatCAMGUI.py:3577 flatcamGUI/FlatCAMGUI.py:3597 +msgid "Warning" +msgstr "Warnung" + +#: flatcamGUI/FlatCAMGUI.py:3527 +msgid "" +"Please select geometry items \n" +"on which to perform Intersection Tool." +msgstr "" +"Bitte wählen Sie Geometrieelemente aus\n" +"auf dem das Verschneidungswerkzeug ausgeführt werden soll." + +#: flatcamGUI/FlatCAMGUI.py:3572 +msgid "" +"Please select geometry items \n" +"on which to perform Substraction Tool." +msgstr "" +"Bitte wählen Sie Geometrieelemente aus\n" +"auf dem das Subtraktionswerkzeug ausgeführt werden soll." + +#: flatcamGUI/FlatCAMGUI.py:3592 +msgid "" +"Please select geometry items \n" +"on which to perform union." +msgstr "" +"Bitte wählen Sie Geometrieelemente aus\n" +"auf dem die Polygonverbindung ausgeführt werden soll." + +#: flatcamGUI/FlatCAMGUI.py:3675 flatcamGUI/FlatCAMGUI.py:3890 +msgid "Cancelled. Nothing selected to delete." +msgstr "Abgebrochen. Nichts zum Löschen ausgewählt." + +#: flatcamGUI/FlatCAMGUI.py:3759 flatcamGUI/FlatCAMGUI.py:4006 +msgid "Cancelled. Nothing selected to copy." +msgstr "Abgebrochen. Nichts zum Kopieren ausgewählt." + +#: flatcamGUI/FlatCAMGUI.py:3805 flatcamGUI/FlatCAMGUI.py:4035 +msgid "Cancelled. Nothing selected to move." +msgstr "Abgebrochen. Nichts ausgewählt, um sich zu bewegen." + +#: flatcamGUI/FlatCAMGUI.py:4061 +msgid "New Tool ..." +msgstr "Neues Werkzeug ..." + +#: flatcamGUI/FlatCAMGUI.py:4062 flatcamTools/ToolNCC.py:924 +#: flatcamTools/ToolPaint.py:850 flatcamTools/ToolSolderPaste.py:560 +msgid "Enter a Tool Diameter" +msgstr "Geben Sie einen Werkzeugdurchmesser ein" + +#: flatcamGUI/FlatCAMGUI.py:4074 +msgid "Adding Tool cancelled ..." +msgstr "Tool wird hinzugefügt abgebrochen ..." + +#: flatcamGUI/FlatCAMGUI.py:4088 +msgid "Distance Tool exit..." +msgstr "Entfernungstool beenden ..." + +#: flatcamGUI/FlatCAMGUI.py:4323 flatcamGUI/FlatCAMGUI.py:4330 +msgid "Idle." +msgstr "Untätig." + +#: flatcamGUI/FlatCAMGUI.py:4361 +msgid "Application started ..." +msgstr "Bewerbung gestartet ..." + +#: flatcamGUI/FlatCAMGUI.py:4362 +msgid "Hello!" +msgstr "Hello!" + +#: flatcamGUI/FlatCAMGUI.py:4424 +msgid "Open Project ..." +msgstr "Offenes Projekt ..." + +#: flatcamGUI/FlatCAMGUI.py:4450 +msgid "Exit" +msgstr "Ausgang" + +#: flatcamGUI/GUIElements.py:2513 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:180 +#: flatcamTools/ToolDblSided.py:173 flatcamTools/ToolDblSided.py:388 +#: flatcamTools/ToolFilm.py:219 +msgid "Reference" +msgstr "Referenz" + +#: flatcamGUI/GUIElements.py:2515 +msgid "" +"The reference can be:\n" +"- Absolute -> the reference point is point (0,0)\n" +"- Relative -> the reference point is the mouse position before Jump" +msgstr "" +"Die Referenz kann sein:\n" +"- Absolut -> Der Bezugspunkt ist Punkt (0,0)\n" +"- Relativ -> Der Referenzpunkt ist die Mausposition vor dem Sprung" + +#: flatcamGUI/GUIElements.py:2520 +msgid "Abs" +msgstr "Abs" + +#: flatcamGUI/GUIElements.py:2521 +msgid "Relative" +msgstr "Relativ" + +#: flatcamGUI/GUIElements.py:2531 +msgid "Location" +msgstr "Ort" + +#: flatcamGUI/GUIElements.py:2533 +msgid "" +"The Location value is a tuple (x,y).\n" +"If the reference is Absolute then the Jump will be at the position (x,y).\n" +"If the reference is Relative then the Jump will be at the (x,y) distance\n" +"from the current mouse location point." +msgstr "" +"Der Standortwert ist ein Tupel (x, y).\n" +"Wenn die Referenz Absolut ist, befindet sich der Sprung an der Position (x, " +"y).\n" +"Wenn die Referenz relativ ist, befindet sich der Sprung in der Entfernung " +"(x, y)\n" +"vom aktuellen Mausstandort aus." + +#: flatcamGUI/GUIElements.py:2573 +msgid "Save Log" +msgstr "Protokoll speichern" + +#: flatcamGUI/GUIElements.py:2592 flatcamTools/ToolShell.py:278 +msgid "Type >help< to get started" +msgstr "Geben Sie> help
    " -msgstr "Basic" - -#: AppObjects/FlatCAMCNCJob.py:435 AppObjects/FlatCAMDocument.py:75 -#: AppObjects/FlatCAMScript.py:86 -msgid "Advanced" -msgstr "Avanzado" - -#: AppObjects/FlatCAMCNCJob.py:478 -msgid "Plotting..." -msgstr "Trazando ..." - -#: AppObjects/FlatCAMCNCJob.py:517 AppTools/ToolSolderPaste.py:1511 -msgid "Export cancelled ..." -msgstr "Exportación cancelada ..." - -#: AppObjects/FlatCAMCNCJob.py:538 -msgid "File saved to" -msgstr "Archivo guardado en" - -#: AppObjects/FlatCAMCNCJob.py:548 AppObjects/FlatCAMScript.py:134 -#: App_Main.py:7301 -msgid "Loading..." -msgstr "Cargando..." - -#: AppObjects/FlatCAMCNCJob.py:562 App_Main.py:7398 -msgid "Code Editor" -msgstr "Editor de código" - -#: AppObjects/FlatCAMCNCJob.py:599 AppTools/ToolCalibration.py:1097 -msgid "Loaded Machine Code into Code Editor" -msgstr "Código de máquina cargado en el editor de código" - -#: AppObjects/FlatCAMCNCJob.py:740 -msgid "This CNCJob object can't be processed because it is a" -msgstr "Este objeto CNCJob no se puede procesar porque es un" - -#: AppObjects/FlatCAMCNCJob.py:742 -msgid "CNCJob object" -msgstr "Objeto CNCJob" - -#: AppObjects/FlatCAMCNCJob.py:922 -msgid "" -"G-code does not have a G94 code and we will not include the code in the " -"'Prepend to GCode' text box" -msgstr "" -"El código G no tiene un código G94 y no incluiremos el código en el cuadro " -"de texto 'Anteponer al código GC'" - -#: AppObjects/FlatCAMCNCJob.py:933 -msgid "Cancelled. The Toolchange Custom code is enabled but it's empty." -msgstr "" -"Cancelado. El código personalizado de Toolchange está habilitado pero está " -"vacío." - -#: AppObjects/FlatCAMCNCJob.py:938 -msgid "Toolchange G-code was replaced by a custom code." -msgstr "El código G de Toolchange fue reemplazado por un código personalizado." - -#: AppObjects/FlatCAMCNCJob.py:986 AppObjects/FlatCAMCNCJob.py:995 -msgid "" -"The used preprocessor file has to have in it's name: 'toolchange_custom'" -msgstr "" -"El archivo de postprocesador usado debe tener su nombre: 'toolchange_custom'" - -#: AppObjects/FlatCAMCNCJob.py:998 -msgid "There is no preprocessor file." -msgstr "No hay archivo de postprocesador." - -#: AppObjects/FlatCAMDocument.py:175 -msgid "Document Editor" -msgstr "Editor de Documentos" - -#: AppObjects/FlatCAMExcellon.py:537 AppObjects/FlatCAMExcellon.py:856 -#: AppObjects/FlatCAMGeometry.py:380 AppObjects/FlatCAMGeometry.py:861 -#: AppTools/ToolIsolation.py:1051 AppTools/ToolIsolation.py:1185 -#: AppTools/ToolNCC.py:811 AppTools/ToolNCC.py:1214 AppTools/ToolPaint.py:778 -#: AppTools/ToolPaint.py:1190 -msgid "Multiple Tools" -msgstr "Herramientas múltiples" - -#: AppObjects/FlatCAMExcellon.py:836 -msgid "No Tool Selected" -msgstr "Ninguna herramienta seleccionada" - -#: AppObjects/FlatCAMExcellon.py:1234 AppObjects/FlatCAMExcellon.py:1348 -#: AppObjects/FlatCAMExcellon.py:1535 -msgid "Please select one or more tools from the list and try again." -msgstr "" -"Por favor seleccione una o más herramientas de la lista e intente nuevamente." - -#: AppObjects/FlatCAMExcellon.py:1241 -msgid "Milling tool for DRILLS is larger than hole size. Cancelled." -msgstr "" -"La herramienta de fresado para TALADRO es más grande que el tamaño del " -"orificio. Cancelado." - -#: AppObjects/FlatCAMExcellon.py:1265 AppObjects/FlatCAMExcellon.py:1368 -#: AppObjects/FlatCAMExcellon.py:1553 tclCommands/TclCommandDrillcncjob.py:195 -msgid "Tool_nr" -msgstr "Herramienta_nu" - -#: AppObjects/FlatCAMExcellon.py:1265 AppObjects/FlatCAMExcellon.py:1368 -#: AppObjects/FlatCAMExcellon.py:1553 tclCommands/TclCommandDrillcncjob.py:195 -msgid "Drills_Nr" -msgstr "Taladros_nu" - -#: AppObjects/FlatCAMExcellon.py:1265 AppObjects/FlatCAMExcellon.py:1368 -#: AppObjects/FlatCAMExcellon.py:1553 tclCommands/TclCommandDrillcncjob.py:195 -msgid "Slots_Nr" -msgstr "Ranuras_nu" - -#: AppObjects/FlatCAMExcellon.py:1357 -msgid "Milling tool for SLOTS is larger than hole size. Cancelled." -msgstr "" -"La herramienta de fresado para SLOTS es más grande que el tamaño del " -"orificio. Cancelado." - -#: AppObjects/FlatCAMExcellon.py:1461 AppObjects/FlatCAMGeometry.py:1636 -msgid "Focus Z" -msgstr "Enfoque Z" - -#: AppObjects/FlatCAMExcellon.py:1480 AppObjects/FlatCAMGeometry.py:1655 -msgid "Laser Power" -msgstr "Poder del laser" - -#: AppObjects/FlatCAMExcellon.py:1610 AppObjects/FlatCAMGeometry.py:2088 -#: AppObjects/FlatCAMGeometry.py:2092 AppObjects/FlatCAMGeometry.py:2243 -msgid "Generating CNC Code" -msgstr "Generando Código CNC" - -#: AppObjects/FlatCAMExcellon.py:1663 AppObjects/FlatCAMGeometry.py:2553 -msgid "Delete failed. There are no exclusion areas to delete." -msgstr "Eliminar falló. No hay áreas de exclusión para eliminar." - -#: AppObjects/FlatCAMExcellon.py:1680 AppObjects/FlatCAMGeometry.py:2570 -msgid "Delete failed. Nothing is selected." -msgstr "Eliminar falló. Nada es seleccionado." - -#: AppObjects/FlatCAMExcellon.py:1945 AppTools/ToolIsolation.py:1253 -#: AppTools/ToolNCC.py:918 AppTools/ToolPaint.py:843 -msgid "Current Tool parameters were applied to all tools." -msgstr "" -"Los parámetros actuales de la herramienta se aplicaron a todas las " -"herramientas." - -#: AppObjects/FlatCAMGeometry.py:124 AppObjects/FlatCAMGeometry.py:1298 -#: AppObjects/FlatCAMGeometry.py:1299 AppObjects/FlatCAMGeometry.py:1308 -msgid "Iso" -msgstr "Aisl" - -#: AppObjects/FlatCAMGeometry.py:124 AppObjects/FlatCAMGeometry.py:522 -#: AppObjects/FlatCAMGeometry.py:920 AppObjects/FlatCAMGerber.py:565 -#: AppObjects/FlatCAMGerber.py:708 AppTools/ToolCutOut.py:727 -#: AppTools/ToolCutOut.py:923 AppTools/ToolCutOut.py:1083 -#: AppTools/ToolIsolation.py:1842 AppTools/ToolIsolation.py:1979 -#: AppTools/ToolIsolation.py:2150 -msgid "Rough" -msgstr "Áspero" - -#: AppObjects/FlatCAMGeometry.py:124 -msgid "Finish" -msgstr "Terminar" - -#: AppObjects/FlatCAMGeometry.py:557 -msgid "Add from Tool DB" -msgstr "Agregar desde la DB de herramientas" - -#: AppObjects/FlatCAMGeometry.py:939 -msgid "Tool added in Tool Table." -msgstr "Herramienta añadida en la tabla de herramientas." - -#: AppObjects/FlatCAMGeometry.py:1048 AppObjects/FlatCAMGeometry.py:1057 -msgid "Failed. Select a tool to copy." -msgstr "Ha fallado. Seleccione una herramienta para copiar." - -#: AppObjects/FlatCAMGeometry.py:1086 -msgid "Tool was copied in Tool Table." -msgstr "La herramienta se copió en la tabla de herramientas." - -#: AppObjects/FlatCAMGeometry.py:1113 -msgid "Tool was edited in Tool Table." -msgstr "La herramienta fue editada en la tabla de herramientas." - -#: AppObjects/FlatCAMGeometry.py:1142 AppObjects/FlatCAMGeometry.py:1151 -msgid "Failed. Select a tool to delete." -msgstr "Ha fallado. Seleccione una herramienta para eliminar." - -#: AppObjects/FlatCAMGeometry.py:1175 -msgid "Tool was deleted in Tool Table." -msgstr "La herramienta se eliminó en la tabla de herramientas." - -#: AppObjects/FlatCAMGeometry.py:1212 AppObjects/FlatCAMGeometry.py:1221 -msgid "" -"Disabled because the tool is V-shape.\n" -"For V-shape tools the depth of cut is\n" -"calculated from other parameters like:\n" -"- 'V-tip Angle' -> angle at the tip of the tool\n" -"- 'V-tip Dia' -> diameter at the tip of the tool \n" -"- Tool Dia -> 'Dia' column found in the Tool Table\n" -"NB: a value of zero means that Tool Dia = 'V-tip Dia'" -msgstr "" -"Deshabilitado porque la herramienta tiene forma de V.\n" -"Para herramientas en forma de V, la profundidad de corte es\n" -"calculado a partir de otros parámetros como:\n" -"- 'Ángulo de punta en V' -> ángulo en la punta de la herramienta\n" -"- 'Diámetro de punta en V' -> diámetro en la punta de la herramienta\n" -"- Herramienta Dia -> columna 'Dia' encontrada en la tabla de herramientas\n" -"NB: un valor de cero significa que Tool Dia = 'V-tip Dia'" - -#: AppObjects/FlatCAMGeometry.py:1708 -msgid "This Geometry can't be processed because it is" -msgstr "Esta geometría no se puede procesar porque es" - -#: AppObjects/FlatCAMGeometry.py:1708 -msgid "geometry" -msgstr "geometría" - -#: AppObjects/FlatCAMGeometry.py:1749 -msgid "Failed. No tool selected in the tool table ..." -msgstr "" -"Ha fallado. Ninguna herramienta seleccionada en la tabla de herramientas ..." - -#: AppObjects/FlatCAMGeometry.py:1847 AppObjects/FlatCAMGeometry.py:1997 -msgid "" -"Tool Offset is selected in Tool Table but no value is provided.\n" -"Add a Tool Offset or change the Offset Type." -msgstr "" -"La Herramienta de desplazamiento se selecciona en la Tabla de herramientas " -"pero no se proporciona ningún valor.\n" -"Agregue una Herramienta de compensación o cambie el Tipo de compensación." - -#: AppObjects/FlatCAMGeometry.py:1913 AppObjects/FlatCAMGeometry.py:2059 -msgid "G-Code parsing in progress..." -msgstr "Análisis de código G en progreso ..." - -#: AppObjects/FlatCAMGeometry.py:1915 AppObjects/FlatCAMGeometry.py:2061 -msgid "G-Code parsing finished..." -msgstr "Análisis de código G terminado ..." - -#: AppObjects/FlatCAMGeometry.py:1923 -msgid "Finished G-Code processing" -msgstr "Procesamiento de código G terminado" - -#: AppObjects/FlatCAMGeometry.py:1925 AppObjects/FlatCAMGeometry.py:2073 -msgid "G-Code processing failed with error" -msgstr "El procesamiento del código G falló con error" - -#: AppObjects/FlatCAMGeometry.py:1967 AppTools/ToolSolderPaste.py:1309 -msgid "Cancelled. Empty file, it has no geometry" -msgstr "Cancelado. Archivo vacío, no tiene geometría" - -#: AppObjects/FlatCAMGeometry.py:2071 AppObjects/FlatCAMGeometry.py:2238 -msgid "Finished G-Code processing..." -msgstr "Procesamiento de código G terminado ..." - -#: AppObjects/FlatCAMGeometry.py:2090 AppObjects/FlatCAMGeometry.py:2094 -#: AppObjects/FlatCAMGeometry.py:2245 -msgid "CNCjob created" -msgstr "CNCjob creado" - -#: AppObjects/FlatCAMGeometry.py:2276 AppObjects/FlatCAMGeometry.py:2285 -#: AppParsers/ParseGerber.py:1866 AppParsers/ParseGerber.py:1876 -msgid "Scale factor has to be a number: integer or float." -msgstr "El factor de escala debe ser un número: entero o Real." - -#: AppObjects/FlatCAMGeometry.py:2348 -msgid "Geometry Scale done." -msgstr "Escala de geometría realizada." - -#: AppObjects/FlatCAMGeometry.py:2365 AppParsers/ParseGerber.py:1992 -msgid "" -"An (x,y) pair of values are needed. Probable you entered only one value in " -"the Offset field." -msgstr "" -"Se necesita un par de valores (x, y). Probablemente haya ingresado un solo " -"valor en el campo Desplazamiento." - -#: AppObjects/FlatCAMGeometry.py:2421 -msgid "Geometry Offset done." -msgstr "Desplazamiento de geometría realizado." - -#: AppObjects/FlatCAMGeometry.py:2450 -msgid "" -"The Toolchange X,Y field in Edit -> Preferences has to be in the format (x, " -"y)\n" -"but now there is only one value, not two." -msgstr "" -"El campo Toolchange X, Y en Editar -> Preferencias tiene que estar en el " -"formato (x, y)\n" -"pero ahora solo hay un valor, no dos." - -#: AppObjects/FlatCAMGerber.py:388 AppTools/ToolIsolation.py:1577 -msgid "Buffering solid geometry" -msgstr "Amortiguación de geometría sólida" - -#: AppObjects/FlatCAMGerber.py:397 AppTools/ToolIsolation.py:1599 -msgid "Done" -msgstr "Hecho" - -#: AppObjects/FlatCAMGerber.py:423 AppObjects/FlatCAMGerber.py:449 -msgid "Operation could not be done." -msgstr "La operación no se pudo hacer." - -#: AppObjects/FlatCAMGerber.py:581 AppObjects/FlatCAMGerber.py:655 -#: AppTools/ToolIsolation.py:1805 AppTools/ToolIsolation.py:2126 -#: AppTools/ToolNCC.py:2117 AppTools/ToolNCC.py:3197 AppTools/ToolNCC.py:3576 -msgid "Isolation geometry could not be generated." -msgstr "La geometría de aislamiento no se pudo generar." - -#: AppObjects/FlatCAMGerber.py:606 AppObjects/FlatCAMGerber.py:733 -#: AppTools/ToolIsolation.py:1869 AppTools/ToolIsolation.py:2035 -#: AppTools/ToolIsolation.py:2202 -msgid "Isolation geometry created" -msgstr "Geometría de aislamiento creada" - -#: AppObjects/FlatCAMGerber.py:1028 -msgid "Plotting Apertures" -msgstr "Aperturas de trazado" - -#: AppObjects/FlatCAMObj.py:237 -msgid "Name changed from" -msgstr "Nombre cambiado de" - -#: AppObjects/FlatCAMObj.py:237 -msgid "to" -msgstr "a" - -#: AppObjects/FlatCAMObj.py:248 -msgid "Offsetting..." -msgstr "Compensación ..." - -#: AppObjects/FlatCAMObj.py:262 AppObjects/FlatCAMObj.py:267 -msgid "Scaling could not be executed." -msgstr "No se pudo ejecutar el escalado." - -#: AppObjects/FlatCAMObj.py:271 AppObjects/FlatCAMObj.py:279 -msgid "Scale done." -msgstr "Escala hecha." - -#: AppObjects/FlatCAMObj.py:277 -msgid "Scaling..." -msgstr "Escalando..." - -#: AppObjects/FlatCAMObj.py:295 -msgid "Skewing..." -msgstr "Sesgar..." - -#: AppObjects/FlatCAMScript.py:163 -msgid "Script Editor" -msgstr "Editor de guiones" - -#: AppObjects/ObjectCollection.py:514 -#, python-brace-format -msgid "Object renamed from {old} to {new}" -msgstr "Objeto renombrado de {old} a {new}" - -#: AppObjects/ObjectCollection.py:926 AppObjects/ObjectCollection.py:932 -#: AppObjects/ObjectCollection.py:938 AppObjects/ObjectCollection.py:944 -#: AppObjects/ObjectCollection.py:950 AppObjects/ObjectCollection.py:956 -#: App_Main.py:6235 App_Main.py:6241 App_Main.py:6247 App_Main.py:6253 -msgid "selected" -msgstr "seleccionado" - -#: AppObjects/ObjectCollection.py:987 -msgid "Cause of error" -msgstr "Causa del error" - -#: AppObjects/ObjectCollection.py:1188 -msgid "All objects are selected." -msgstr "Todos los objetos están seleccionados." - -#: AppObjects/ObjectCollection.py:1198 -msgid "Objects selection is cleared." -msgstr "La selección de objetos se borra." - -#: AppParsers/ParseExcellon.py:315 -msgid "This is GCODE mark" -msgstr "Esta es la marca GCODE" - -#: AppParsers/ParseExcellon.py:432 -msgid "" -"No tool diameter info's. See shell.\n" -"A tool change event: T" -msgstr "" -"No hay información de diámetro de herramienta. Ver caparazón.\n" -"Un evento de cambio de herramienta: T" - -#: AppParsers/ParseExcellon.py:435 -msgid "" -"was found but the Excellon file have no informations regarding the tool " -"diameters therefore the application will try to load it by using some 'fake' " -"diameters.\n" -"The user needs to edit the resulting Excellon object and change the " -"diameters to reflect the real diameters." -msgstr "" -"se encontró pero el archivo Excellon no tiene información sobre los " -"diámetros de la herramienta, por lo tanto, la aplicación intentará cargarlo " -"utilizando algunos diámetros 'falsos'.\n" -"El usuario necesita editar el objeto Excellon resultante y cambiar los " -"diámetros para reflejar los diámetros reales." - -#: AppParsers/ParseExcellon.py:899 -msgid "" -"Excellon Parser error.\n" -"Parsing Failed. Line" -msgstr "" -"Error del analizador Excellon.\n" -"El análisis falló. Línea" - -#: AppParsers/ParseExcellon.py:981 -msgid "" -"Excellon.create_geometry() -> a drill location was skipped due of not having " -"a tool associated.\n" -"Check the resulting GCode." -msgstr "" -"Excellon.create_geometry() -> se omitió la ubicación de un taladro por no " -"tener una herramienta asociada.\n" -"Compruebe el GCode resultante." - -#: AppParsers/ParseFont.py:303 -msgid "Font not supported, try another one." -msgstr "Fuente no compatible, prueba con otra." - -#: AppParsers/ParseGerber.py:425 -msgid "Gerber processing. Parsing" -msgstr "Procesamiento de Gerber. Analizando" - -#: AppParsers/ParseGerber.py:425 AppParsers/ParseHPGL2.py:181 -msgid "lines" -msgstr "líneas" - -#: AppParsers/ParseGerber.py:1001 AppParsers/ParseGerber.py:1101 -#: AppParsers/ParseHPGL2.py:274 AppParsers/ParseHPGL2.py:288 -#: AppParsers/ParseHPGL2.py:307 AppParsers/ParseHPGL2.py:331 -#: AppParsers/ParseHPGL2.py:366 -msgid "Coordinates missing, line ignored" -msgstr "Coordenadas faltantes, línea ignorada" - -#: AppParsers/ParseGerber.py:1003 AppParsers/ParseGerber.py:1103 -msgid "GERBER file might be CORRUPT. Check the file !!!" -msgstr "GERBER archivo podría ser Dañado. Revisa el archivo !!!" - -#: AppParsers/ParseGerber.py:1057 -msgid "" -"Region does not have enough points. File will be processed but there are " -"parser errors. Line number" -msgstr "" -"Región no tiene suficientes puntos. El archivo será procesado pero hay " -"errores del analizador. Línea de números: %s" - -#: AppParsers/ParseGerber.py:1487 AppParsers/ParseHPGL2.py:401 -msgid "Gerber processing. Joining polygons" -msgstr "Procesamiento de Gerber. Unir polígonos" - -#: AppParsers/ParseGerber.py:1504 -msgid "Gerber processing. Applying Gerber polarity." -msgstr "Procesamiento de Gerber. Aplicando la polaridad de Gerber." - -#: AppParsers/ParseGerber.py:1564 -msgid "Gerber Line" -msgstr "Linea Gerber" - -#: AppParsers/ParseGerber.py:1564 -msgid "Gerber Line Content" -msgstr "Contenido de la línea Gerber" - -#: AppParsers/ParseGerber.py:1566 -msgid "Gerber Parser ERROR" -msgstr "Analizador Gerber ERROR" - -#: AppParsers/ParseGerber.py:1956 -msgid "Gerber Scale done." -msgstr "Escala de Gerber hecha." - -#: AppParsers/ParseGerber.py:2048 -msgid "Gerber Offset done." -msgstr "Gerber Offset hecho." - -#: AppParsers/ParseGerber.py:2124 -msgid "Gerber Mirror done." -msgstr "Espejo Gerber hecho." - -#: AppParsers/ParseGerber.py:2198 -msgid "Gerber Skew done." -msgstr "Gerber Sesgo hecho." - -#: AppParsers/ParseGerber.py:2260 -msgid "Gerber Rotate done." -msgstr "Rotar Gerber hecho." - -#: AppParsers/ParseGerber.py:2417 -msgid "Gerber Buffer done." -msgstr "Gerber Buffer hecho." - -#: AppParsers/ParseHPGL2.py:181 -msgid "HPGL2 processing. Parsing" -msgstr "Procesamiento de HPGL2 . Analizando" - -#: AppParsers/ParseHPGL2.py:413 -msgid "HPGL2 Line" -msgstr "Línea HPGL2" - -#: AppParsers/ParseHPGL2.py:413 -msgid "HPGL2 Line Content" -msgstr "Contenido de línea HPGL2" - -#: AppParsers/ParseHPGL2.py:414 -msgid "HPGL2 Parser ERROR" -msgstr "Analizador HPGL2 ERROR" - -#: AppProcess.py:172 -msgid "processes running." -msgstr "procesos en ejecución." - -#: AppTools/ToolAlignObjects.py:32 -msgid "Align Objects" -msgstr "Alinear objetos" - -#: AppTools/ToolAlignObjects.py:61 -msgid "MOVING object" -msgstr "Objeto en movimiento" - -#: AppTools/ToolAlignObjects.py:65 -msgid "" -"Specify the type of object to be aligned.\n" -"It can be of type: Gerber or Excellon.\n" -"The selection here decide the type of objects that will be\n" -"in the Object combobox." -msgstr "" -"Especifique el tipo de objeto a alinear.\n" -"Puede ser de tipo: Gerber o Excellon.\n" -"La selección aquí decide el tipo de objetos que serán\n" -"en el cuadro combinado Objeto." - -#: AppTools/ToolAlignObjects.py:86 -msgid "Object to be aligned." -msgstr "Objeto a alinear." - -#: AppTools/ToolAlignObjects.py:98 -msgid "TARGET object" -msgstr "Objeto OBJETIVO" - -#: AppTools/ToolAlignObjects.py:100 -msgid "" -"Specify the type of object to be aligned to.\n" -"It can be of type: Gerber or Excellon.\n" -"The selection here decide the type of objects that will be\n" -"in the Object combobox." -msgstr "" -"Especifique el tipo de objeto a alinear.\n" -"Puede ser de tipo: Gerber o Excellon.\n" -"La selección aquí decide el tipo de objetos que serán\n" -"en el cuadro combinado Objeto." - -#: AppTools/ToolAlignObjects.py:122 -msgid "Object to be aligned to. Aligner." -msgstr "Objeto a alinear. Alineador." - -#: AppTools/ToolAlignObjects.py:135 -msgid "Alignment Type" -msgstr "Tipo de alineación" - -#: AppTools/ToolAlignObjects.py:137 -msgid "" -"The type of alignment can be:\n" -"- Single Point -> it require a single point of sync, the action will be a " -"translation\n" -"- Dual Point -> it require two points of sync, the action will be " -"translation followed by rotation" -msgstr "" -"El tipo de alineación puede ser:\n" -"- Punto único -> requiere un único punto de sincronización, la acción será " -"una traducción\n" -"- Punto doble -> requiere dos puntos de sincronización, la acción será " -"traslación seguida de rotación" - -#: AppTools/ToolAlignObjects.py:143 -msgid "Single Point" -msgstr "Punto único" - -#: AppTools/ToolAlignObjects.py:144 -msgid "Dual Point" -msgstr "Punto doble" - -#: AppTools/ToolAlignObjects.py:159 -msgid "Align Object" -msgstr "Alinear objeto" - -#: AppTools/ToolAlignObjects.py:161 -msgid "" -"Align the specified object to the aligner object.\n" -"If only one point is used then it assumes translation.\n" -"If tho points are used it assume translation and rotation." -msgstr "" -"Alinee el objeto especificado con el objeto alineador.\n" -"Si solo se utiliza un punto, se supone que se traduce.\n" -"Si se utilizan estos puntos, se supone traslación y rotación." - -#: AppTools/ToolAlignObjects.py:176 AppTools/ToolCalculators.py:246 -#: AppTools/ToolCalibration.py:683 AppTools/ToolCopperThieving.py:488 -#: AppTools/ToolCorners.py:182 AppTools/ToolCutOut.py:362 -#: AppTools/ToolDblSided.py:471 AppTools/ToolEtchCompensation.py:240 -#: AppTools/ToolExtractDrills.py:310 AppTools/ToolFiducials.py:321 -#: AppTools/ToolFilm.py:503 AppTools/ToolInvertGerber.py:143 -#: AppTools/ToolIsolation.py:591 AppTools/ToolNCC.py:612 -#: AppTools/ToolOptimal.py:243 AppTools/ToolPaint.py:555 -#: AppTools/ToolPanelize.py:280 AppTools/ToolPunchGerber.py:339 -#: AppTools/ToolQRCode.py:323 AppTools/ToolRulesCheck.py:516 -#: AppTools/ToolSolderPaste.py:481 AppTools/ToolSub.py:181 -#: AppTools/ToolTransform.py:398 -msgid "Reset Tool" -msgstr "Restablecer la Herramienta" - -#: AppTools/ToolAlignObjects.py:178 AppTools/ToolCalculators.py:248 -#: AppTools/ToolCalibration.py:685 AppTools/ToolCopperThieving.py:490 -#: AppTools/ToolCorners.py:184 AppTools/ToolCutOut.py:364 -#: AppTools/ToolDblSided.py:473 AppTools/ToolEtchCompensation.py:242 -#: AppTools/ToolExtractDrills.py:312 AppTools/ToolFiducials.py:323 -#: AppTools/ToolFilm.py:505 AppTools/ToolInvertGerber.py:145 -#: AppTools/ToolIsolation.py:593 AppTools/ToolNCC.py:614 -#: AppTools/ToolOptimal.py:245 AppTools/ToolPaint.py:557 -#: AppTools/ToolPanelize.py:282 AppTools/ToolPunchGerber.py:341 -#: AppTools/ToolQRCode.py:325 AppTools/ToolRulesCheck.py:518 -#: AppTools/ToolSolderPaste.py:483 AppTools/ToolSub.py:183 -#: AppTools/ToolTransform.py:400 -msgid "Will reset the tool parameters." -msgstr "Restablecerá los parámetros de la herramienta." - -#: AppTools/ToolAlignObjects.py:244 -msgid "Align Tool" -msgstr "Herram. de Alineación" - -#: AppTools/ToolAlignObjects.py:289 -msgid "There is no aligned FlatCAM object selected..." -msgstr "No hay ningún objeto FlatCAM alineado seleccionado ..." - -#: AppTools/ToolAlignObjects.py:299 -msgid "There is no aligner FlatCAM object selected..." -msgstr "No hay ningún objeto FlatCAM alineador seleccionado ..." - -#: AppTools/ToolAlignObjects.py:321 AppTools/ToolAlignObjects.py:385 -msgid "First Point" -msgstr "Primer Punto" - -#: AppTools/ToolAlignObjects.py:321 AppTools/ToolAlignObjects.py:400 -msgid "Click on the START point." -msgstr "Haga clic en el punto de INICIO." - -#: AppTools/ToolAlignObjects.py:380 AppTools/ToolCalibration.py:920 -msgid "Cancelled by user request." -msgstr "Cancelado por solicitud del usuario." - -#: AppTools/ToolAlignObjects.py:385 AppTools/ToolAlignObjects.py:407 -msgid "Click on the DESTINATION point." -msgstr "Haga clic en el punto DESTINO." - -#: AppTools/ToolAlignObjects.py:385 AppTools/ToolAlignObjects.py:400 -#: AppTools/ToolAlignObjects.py:407 -msgid "Or right click to cancel." -msgstr "O haga clic derecho para cancelar." - -#: AppTools/ToolAlignObjects.py:400 AppTools/ToolAlignObjects.py:407 -#: AppTools/ToolFiducials.py:107 -msgid "Second Point" -msgstr "Segundo punto" - -#: AppTools/ToolCalculators.py:24 -msgid "Calculators" -msgstr "Calculadoras" - -#: AppTools/ToolCalculators.py:26 -msgid "Units Calculator" -msgstr "Calculadora de unidades" - -#: AppTools/ToolCalculators.py:70 -msgid "Here you enter the value to be converted from INCH to MM" -msgstr "Aquí ingresa el valor a convertir de PULGADAS a MM" - -#: AppTools/ToolCalculators.py:75 -msgid "Here you enter the value to be converted from MM to INCH" -msgstr "Aquí ingresa el valor a convertir de MM a PULGADA" - -#: AppTools/ToolCalculators.py:111 -msgid "" -"This is the angle of the tip of the tool.\n" -"It is specified by manufacturer." -msgstr "" -"Este es el ángulo de la punta de la herramienta.\n" -"Está especificado por el fabricante." - -#: AppTools/ToolCalculators.py:120 -msgid "" -"This is the depth to cut into the material.\n" -"In the CNCJob is the CutZ parameter." -msgstr "" -"Esta es la profundidad para cortar el material.\n" -"En el CNCJob se encuentra el parámetro CutZ." - -#: AppTools/ToolCalculators.py:128 -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 "" -"Este es el diámetro de la herramienta a ingresar\n" -"Sección FlatCAM Gerber.\n" -"En la sección CNCJob se llama >diá. de herra.<." - -#: AppTools/ToolCalculators.py:139 AppTools/ToolCalculators.py:235 -msgid "Calculate" -msgstr "Calcular" - -#: AppTools/ToolCalculators.py:142 -msgid "" -"Calculate either the Cut Z or the effective tool diameter,\n" -" depending on which is desired and which is known. " -msgstr "" -"Calcule el corte Z o el diámetro efectivo de la herramienta,\n" -"dependiendo de cuál se desee y cuál se conozca. " - -#: AppTools/ToolCalculators.py:205 -msgid "Current Value" -msgstr "Valor actual" - -#: AppTools/ToolCalculators.py:212 -msgid "" -"This is the current intensity value\n" -"to be set on the Power Supply. In Amps." -msgstr "" -"Este es el valor de intensidad actual\n" -"para configurar en la fuente de alimentación. En amperios." - -#: AppTools/ToolCalculators.py:216 -msgid "Time" -msgstr "Hora" - -#: AppTools/ToolCalculators.py:223 -msgid "" -"This is the calculated time required for the procedure.\n" -"In minutes." -msgstr "" -"Este es el tiempo calculado requerido para el procedimiento.\n" -"En minutos." - -#: AppTools/ToolCalculators.py:238 -msgid "" -"Calculate the current intensity value and the procedure time,\n" -"depending on the parameters above" -msgstr "" -"Calcule el valor de intensidad actual y el tiempo del procedimiento,\n" -"dependiendo de los parámetros anteriores" - -#: AppTools/ToolCalculators.py:299 -msgid "Calc. Tool" -msgstr "Calc. Herramienta" - -#: AppTools/ToolCalibration.py:69 -msgid "Parameters used when creating the GCode in this tool." -msgstr "Parámetros utilizados al crear el GCode en esta herramienta." - -#: AppTools/ToolCalibration.py:173 -msgid "STEP 1: Acquire Calibration Points" -msgstr "PASO 1: Adquiera puntos de calibración" - -#: AppTools/ToolCalibration.py:175 -msgid "" -"Pick four points by clicking on canvas.\n" -"Those four points should be in the four\n" -"(as much as possible) corners of the object." -msgstr "" -"Elija cuatro puntos haciendo clic en el lienzo.\n" -"Esos cuatro puntos deberían estar en los cuatro\n" -"(tanto como sea posible) esquinas del objeto." - -#: AppTools/ToolCalibration.py:193 AppTools/ToolFilm.py:71 -#: AppTools/ToolImage.py:54 AppTools/ToolPanelize.py:77 -#: AppTools/ToolProperties.py:177 -msgid "Object Type" -msgstr "Tipo de objeto" - -#: AppTools/ToolCalibration.py:210 -msgid "Source object selection" -msgstr "Selección de objeto de origen" - -#: AppTools/ToolCalibration.py:212 -msgid "FlatCAM Object to be used as a source for reference points." -msgstr "Objeto FlatCAM que se utilizará como fuente de puntos de referencia." - -#: AppTools/ToolCalibration.py:218 -msgid "Calibration Points" -msgstr "Puntos de calibración" - -#: AppTools/ToolCalibration.py:220 -msgid "" -"Contain the expected calibration points and the\n" -"ones measured." -msgstr "" -"Contiene los puntos de calibración esperados y el\n" -"los medidos." - -#: AppTools/ToolCalibration.py:235 AppTools/ToolSub.py:81 -#: AppTools/ToolSub.py:136 -msgid "Target" -msgstr "Objetivo" - -#: AppTools/ToolCalibration.py:236 -msgid "Found Delta" -msgstr "Delta encontrado" - -#: AppTools/ToolCalibration.py:248 -msgid "Bot Left X" -msgstr "Abajo a la izquierda X" - -#: AppTools/ToolCalibration.py:257 -msgid "Bot Left Y" -msgstr "Abajo a la izquierda Y" - -#: AppTools/ToolCalibration.py:275 -msgid "Bot Right X" -msgstr "Abajo a la derecho X" - -#: AppTools/ToolCalibration.py:285 -msgid "Bot Right Y" -msgstr "Abajo a la derecho Y" - -#: AppTools/ToolCalibration.py:300 -msgid "Top Left X" -msgstr "Arriba a la izquierda X" - -#: AppTools/ToolCalibration.py:309 -msgid "Top Left Y" -msgstr "Arriba a la izquierda Y" - -#: AppTools/ToolCalibration.py:324 -msgid "Top Right X" -msgstr "Arriba a la derecho X" - -#: AppTools/ToolCalibration.py:334 -msgid "Top Right Y" -msgstr "Arriba a la derecho Y" - -#: AppTools/ToolCalibration.py:367 -msgid "Get Points" -msgstr "Obtener puntos" - -#: AppTools/ToolCalibration.py:369 -msgid "" -"Pick four points by clicking on canvas if the source choice\n" -"is 'free' or inside the object geometry if the source is 'object'.\n" -"Those four points should be in the four squares of\n" -"the object." -msgstr "" -"Elija cuatro puntos haciendo clic en el lienzo si la opción de origen\n" -"es 'libre' o está dentro de la geometría del objeto si la fuente es " -"'objeto'.\n" -"Esos cuatro puntos deben estar en los cuatro cuadrados de\n" -"el objeto." - -#: AppTools/ToolCalibration.py:390 -msgid "STEP 2: Verification GCode" -msgstr "PASO 2: Verificación GCode" - -#: AppTools/ToolCalibration.py:392 AppTools/ToolCalibration.py:405 -msgid "" -"Generate GCode file to locate and align the PCB by using\n" -"the four points acquired above.\n" -"The points sequence is:\n" -"- first point -> set the origin\n" -"- second point -> alignment point. Can be: top-left or bottom-right.\n" -"- third point -> check point. Can be: top-left or bottom-right.\n" -"- forth point -> final verification point. Just for evaluation." -msgstr "" -"Genere un archivo GCode para localizar y alinear la PCB utilizando\n" -"Los cuatro puntos adquiridos anteriormente.\n" -"La secuencia de puntos es:\n" -"- primer punto -> establecer el origen\n" -"- segundo punto -> punto de alineación. Puede ser: arriba a la izquierda o " -"abajo a la derecha.\n" -"- tercer punto -> punto de control. Puede ser: arriba a la izquierda o abajo " -"a la derecha.\n" -"- cuarto punto -> punto de verificación final. Solo para evaluación." - -#: AppTools/ToolCalibration.py:403 AppTools/ToolSolderPaste.py:344 -msgid "Generate GCode" -msgstr "Generar GCode" - -#: AppTools/ToolCalibration.py:429 -msgid "STEP 3: Adjustments" -msgstr "PASO 3: Ajustes" - -#: AppTools/ToolCalibration.py:431 AppTools/ToolCalibration.py:440 -msgid "" -"Calculate Scale and Skew factors based on the differences (delta)\n" -"found when checking the PCB pattern. The differences must be filled\n" -"in the fields Found (Delta)." -msgstr "" -"Calcular factores de escala y sesgo basados en las diferencias (delta)\n" -"encontrado al verificar el patrón de PCB. Las diferencias deben llenarse\n" -"en los campos encontrados (Delta)." - -#: AppTools/ToolCalibration.py:438 -msgid "Calculate Factors" -msgstr "Calcular factores" - -#: AppTools/ToolCalibration.py:460 -msgid "STEP 4: Adjusted GCode" -msgstr "PASO 4: Código GC ajustado" - -#: AppTools/ToolCalibration.py:462 -msgid "" -"Generate verification GCode file adjusted with\n" -"the factors above." -msgstr "" -"Generar un archivo GCode de verificación ajustado con\n" -"Los factores anteriores." - -#: AppTools/ToolCalibration.py:467 -msgid "Scale Factor X:" -msgstr "Factor de escala X:" - -#: AppTools/ToolCalibration.py:479 -msgid "Scale Factor Y:" -msgstr "Factor de escala Y:" - -#: AppTools/ToolCalibration.py:491 -msgid "Apply Scale Factors" -msgstr "Aplicar factores de escala" - -#: AppTools/ToolCalibration.py:493 -msgid "Apply Scale factors on the calibration points." -msgstr "Aplicar factores de escala en los puntos de calibración." - -#: AppTools/ToolCalibration.py:503 -msgid "Skew Angle X:" -msgstr "Ángulo de Sesgar X:" - -#: AppTools/ToolCalibration.py:516 -msgid "Skew Angle Y:" -msgstr "Ángulo de Sesgar Y:" - -#: AppTools/ToolCalibration.py:529 -msgid "Apply Skew Factors" -msgstr "Aplicar factores Sesgados" - -#: AppTools/ToolCalibration.py:531 -msgid "Apply Skew factors on the calibration points." -msgstr "Aplicar factores de inclinación en los puntos de calibración." - -#: AppTools/ToolCalibration.py:600 -msgid "Generate Adjusted GCode" -msgstr "Generar código GC ajustado" - -#: AppTools/ToolCalibration.py:602 -msgid "" -"Generate verification GCode file adjusted with\n" -"the factors set above.\n" -"The GCode parameters can be readjusted\n" -"before clicking this button." -msgstr "" -"Generar un archivo GCode de verificación ajustado con\n" -"Los factores establecidos anteriormente.\n" -"Los parámetros GCode se pueden reajustar\n" -"antes de hacer clic en este botón." - -#: AppTools/ToolCalibration.py:623 -msgid "STEP 5: Calibrate FlatCAM Objects" -msgstr "PASO 5: Calibrar objetos FlatCAM" - -#: AppTools/ToolCalibration.py:625 -msgid "" -"Adjust the FlatCAM objects\n" -"with the factors determined and verified above." -msgstr "" -"Ajuste los objetos FlatCAM\n" -"con los factores determinados y verificados anteriormente." - -#: AppTools/ToolCalibration.py:637 -msgid "Adjusted object type" -msgstr "Tipo de objeto ajustado" - -#: AppTools/ToolCalibration.py:638 -msgid "Type of the FlatCAM Object to be adjusted." -msgstr "Tipo del objeto FlatCAM que se ajustará." - -#: AppTools/ToolCalibration.py:651 -msgid "Adjusted object selection" -msgstr "Selección de objeto ajustada" - -#: AppTools/ToolCalibration.py:653 -msgid "The FlatCAM Object to be adjusted." -msgstr "El objeto FlatCAM a ajustar." - -#: AppTools/ToolCalibration.py:660 -msgid "Calibrate" -msgstr "Calibrar" - -#: AppTools/ToolCalibration.py:662 -msgid "" -"Adjust (scale and/or skew) the objects\n" -"with the factors determined above." -msgstr "" -"Ajustar (escalar y / o sesgar) los objetos\n" -"con los factores determinados anteriormente." - -#: AppTools/ToolCalibration.py:770 AppTools/ToolCalibration.py:771 -msgid "Origin" -msgstr "Origen" - -#: AppTools/ToolCalibration.py:800 -msgid "Tool initialized" -msgstr "Herramienta inicializada" - -#: AppTools/ToolCalibration.py:838 -msgid "There is no source FlatCAM object selected..." -msgstr "No hay ningún objeto FlatCAM de origen seleccionado ..." - -#: AppTools/ToolCalibration.py:859 -msgid "Get First calibration point. Bottom Left..." -msgstr "Obtenga el primer punto de calibración. Abajo a la izquierda ..." - -#: AppTools/ToolCalibration.py:926 -msgid "Get Second calibration point. Bottom Right (Top Left)..." -msgstr "" -"Obtenga el segundo punto de calibración. Abajo a la derecha (arriba a la " -"izquierda) ..." - -#: AppTools/ToolCalibration.py:930 -msgid "Get Third calibration point. Top Left (Bottom Right)..." -msgstr "" -"Obtenga el tercer punto de calibración. Arriba a la izquierda, abajo a la " -"derecha)..." - -#: AppTools/ToolCalibration.py:934 -msgid "Get Forth calibration point. Top Right..." -msgstr "Obtenga el punto de calibración Forth. Parte superior derecha..." - -#: AppTools/ToolCalibration.py:938 -msgid "Done. All four points have been acquired." -msgstr "Hecho. Los cuatro puntos han sido adquiridos." - -#: AppTools/ToolCalibration.py:969 -msgid "Verification GCode for FlatCAM Calibration Tool" -msgstr "Verificación GCode para la herramienta de calibración FlatCAM" - -#: AppTools/ToolCalibration.py:981 AppTools/ToolCalibration.py:1067 -msgid "Gcode Viewer" -msgstr "Visor de Gcode" - -#: AppTools/ToolCalibration.py:997 -msgid "Cancelled. Four points are needed for GCode generation." -msgstr "Cancelado. Se necesitan cuatro puntos para la generación de GCode." - -#: AppTools/ToolCalibration.py:1253 AppTools/ToolCalibration.py:1349 -msgid "There is no FlatCAM object selected..." -msgstr "No hay ningún objeto FlatCAM seleccionado ..." - -#: AppTools/ToolCopperThieving.py:76 AppTools/ToolFiducials.py:264 -msgid "Gerber Object to which will be added a copper thieving." -msgstr "Gerber Objeto al que se agregará un Copper Thieving." - -#: AppTools/ToolCopperThieving.py:102 -msgid "" -"This set the distance between the copper thieving components\n" -"(the polygon fill may be split in multiple polygons)\n" -"and the copper traces in the Gerber file." -msgstr "" -"Esto establece la distancia entre los componentes de Copper Thieving\n" -"(el relleno de polígono puede dividirse en múltiples polígonos)\n" -"y las rastros de cobre en el archivo Gerber." - -#: AppTools/ToolCopperThieving.py:135 -msgid "" -"- 'Itself' - the copper thieving extent is based on the object extent.\n" -"- 'Area Selection' - left mouse click to start selection of the area to be " -"filled.\n" -"- 'Reference Object' - will do copper thieving within the area specified by " -"another object." -msgstr "" -"- 'Sí mismo': la extensión de Copper Thieving se basa en la extensión del " -"objeto.\n" -"- 'Selección de área': haga clic con el botón izquierdo del mouse para " -"iniciar la selección del área a rellenar.\n" -"- 'Objeto de referencia': 'Copper Thieving' dentro del área especificada por " -"otro objeto." - -#: AppTools/ToolCopperThieving.py:142 AppTools/ToolIsolation.py:511 -#: AppTools/ToolNCC.py:552 AppTools/ToolPaint.py:495 -msgid "Ref. Type" -msgstr "Tipo de Ref" - -#: AppTools/ToolCopperThieving.py:144 -msgid "" -"The type of FlatCAM object to be used as copper thieving reference.\n" -"It can be Gerber, Excellon or Geometry." -msgstr "" -"El tipo de objeto FlatCAM que se utilizará como referencia de 'Copper " -"Thieving'.\n" -"Puede ser Gerber, Excellon o Geometry." - -#: AppTools/ToolCopperThieving.py:153 AppTools/ToolIsolation.py:522 -#: AppTools/ToolNCC.py:562 AppTools/ToolPaint.py:505 -msgid "Ref. Object" -msgstr "Objeto de Ref" - -#: AppTools/ToolCopperThieving.py:155 AppTools/ToolIsolation.py:524 -#: AppTools/ToolNCC.py:564 AppTools/ToolPaint.py:507 -msgid "The FlatCAM object to be used as non copper clearing reference." -msgstr "" -"El objeto FlatCAM que se utilizará como referencia de compensación sin cobre." - -#: AppTools/ToolCopperThieving.py:331 -msgid "Insert Copper thieving" -msgstr "Insertar Copper thieving" - -#: AppTools/ToolCopperThieving.py:333 -msgid "" -"Will add a polygon (may be split in multiple parts)\n" -"that will surround the actual Gerber traces at a certain distance." -msgstr "" -"Agregará un polígono (puede dividirse en varias partes)\n" -"eso rodeará las huellas reales de Gerber a cierta distancia." - -#: AppTools/ToolCopperThieving.py:392 -msgid "Insert Robber Bar" -msgstr "Insertar Robber Bar" - -#: AppTools/ToolCopperThieving.py:394 -msgid "" -"Will add a polygon with a defined thickness\n" -"that will surround the actual Gerber object\n" -"at a certain distance.\n" -"Required when doing holes pattern plating." -msgstr "" -"Agregará un polígono con un grosor definido\n" -"que rodeará el objeto real de Gerber\n" -"a cierta distancia.\n" -"Se requiere cuando se hace un patrón de agujeros." - -#: AppTools/ToolCopperThieving.py:418 -msgid "Select Soldermask object" -msgstr "Seleccionar objeto Soldermask" - -#: AppTools/ToolCopperThieving.py:420 -msgid "" -"Gerber Object with the soldermask.\n" -"It will be used as a base for\n" -"the pattern plating mask." -msgstr "" -"Objeto Gerber con la máscara de soldadura.\n" -"Se utilizará como base para\n" -"El patrón de la máscara de recubrimiento." - -#: AppTools/ToolCopperThieving.py:449 -msgid "Plated area" -msgstr "Área chapada" - -#: AppTools/ToolCopperThieving.py:451 -msgid "" -"The area to be plated by pattern plating.\n" -"Basically is made from the openings in the plating mask.\n" -"\n" -"<> - the calculated area is actually a bit larger\n" -"due of the fact that the soldermask openings are by design\n" -"a bit larger than the copper pads, and this area is\n" -"calculated from the soldermask openings." -msgstr "" -"El área a ser chapada por patrón de chapado.\n" -"Básicamente está hecho de las aberturas en la máscara de recubrimiento.\n" -"\n" -"<> - el área calculada es en realidad un poco más grande\n" -"Debido al hecho de que las aberturas de la máscara de soldadura son por " -"diseño\n" -"un poco más grande que las almohadillas de cobre, y esta área es\n" -"calculado a partir de las aberturas de la máscara de soldadura." - -#: AppTools/ToolCopperThieving.py:462 -msgid "mm" -msgstr "mm" - -#: AppTools/ToolCopperThieving.py:464 -msgid "in" -msgstr "in" - -#: AppTools/ToolCopperThieving.py:471 -msgid "Generate pattern plating mask" -msgstr "Generar máscara de recubrimiento de patrón" - -#: AppTools/ToolCopperThieving.py:473 -msgid "" -"Will add to the soldermask gerber geometry\n" -"the geometries of the copper thieving and/or\n" -"the robber bar if those were generated." -msgstr "" -"Agregará a la máscara de soldadura la geometría gerber\n" -"Las geometrías de Copper Thieving y / o\n" -"la Robber Bar si esos fueron generados." - -#: AppTools/ToolCopperThieving.py:629 AppTools/ToolCopperThieving.py:654 -msgid "Lines Grid works only for 'itself' reference ..." -msgstr "La cuadrícula de líneas funciona solo para referencia 'sí mismo' ..." - -#: AppTools/ToolCopperThieving.py:640 -msgid "Solid fill selected." -msgstr "Relleno sólido seleccionado." - -#: AppTools/ToolCopperThieving.py:645 -msgid "Dots grid fill selected." -msgstr "Relleno de cuadrícula de puntos seleccionado." - -#: AppTools/ToolCopperThieving.py:650 -msgid "Squares grid fill selected." -msgstr "Rellenar cuadrícula de cuadrados seleccionados." - -#: AppTools/ToolCopperThieving.py:671 AppTools/ToolCopperThieving.py:753 -#: AppTools/ToolCopperThieving.py:1355 AppTools/ToolCorners.py:268 -#: AppTools/ToolDblSided.py:657 AppTools/ToolExtractDrills.py:436 -#: AppTools/ToolFiducials.py:470 AppTools/ToolFiducials.py:747 -#: AppTools/ToolOptimal.py:348 AppTools/ToolPunchGerber.py:512 -#: AppTools/ToolQRCode.py:435 -msgid "There is no Gerber object loaded ..." -msgstr "No hay ningún objeto Gerber cargado ..." - -#: AppTools/ToolCopperThieving.py:684 AppTools/ToolCopperThieving.py:1283 -msgid "Append geometry" -msgstr "Añadir geometría" - -#: AppTools/ToolCopperThieving.py:728 AppTools/ToolCopperThieving.py:1316 -#: AppTools/ToolCopperThieving.py:1469 -msgid "Append source file" -msgstr "Agregar archivo fuente" - -#: AppTools/ToolCopperThieving.py:736 AppTools/ToolCopperThieving.py:1324 -msgid "Copper Thieving Tool done." -msgstr "Herramienta Copper Thieving hecha." - -#: AppTools/ToolCopperThieving.py:763 AppTools/ToolCopperThieving.py:796 -#: AppTools/ToolCutOut.py:556 AppTools/ToolCutOut.py:761 -#: AppTools/ToolEtchCompensation.py:360 AppTools/ToolInvertGerber.py:211 -#: AppTools/ToolIsolation.py:1585 AppTools/ToolIsolation.py:1612 -#: AppTools/ToolNCC.py:1617 AppTools/ToolNCC.py:1661 AppTools/ToolNCC.py:1690 -#: AppTools/ToolPaint.py:1493 AppTools/ToolPanelize.py:423 -#: AppTools/ToolPanelize.py:437 AppTools/ToolSub.py:295 AppTools/ToolSub.py:308 -#: AppTools/ToolSub.py:499 AppTools/ToolSub.py:514 -#: tclCommands/TclCommandCopperClear.py:97 tclCommands/TclCommandPaint.py:99 -msgid "Could not retrieve object" -msgstr "No se pudo recuperar el objeto" - -#: AppTools/ToolCopperThieving.py:773 AppTools/ToolIsolation.py:1672 -#: AppTools/ToolNCC.py:1669 Common.py:210 -msgid "Click the start point of the area." -msgstr "Haga clic en el punto de inicio del área." - -#: AppTools/ToolCopperThieving.py:824 -msgid "Click the end point of the filling area." -msgstr "Haga clic en el punto final del área de relleno." - -#: AppTools/ToolCopperThieving.py:830 AppTools/ToolIsolation.py:2504 -#: AppTools/ToolIsolation.py:2556 AppTools/ToolNCC.py:1731 -#: AppTools/ToolNCC.py:1783 AppTools/ToolPaint.py:1625 -#: AppTools/ToolPaint.py:1676 Common.py:275 Common.py:377 -msgid "Zone added. Click to start adding next zone or right click to finish." -msgstr "" -"Zona agregada. Haga clic para comenzar a agregar la siguiente zona o haga " -"clic con el botón derecho para finalizar." - -#: AppTools/ToolCopperThieving.py:952 AppTools/ToolCopperThieving.py:956 -#: AppTools/ToolCopperThieving.py:1017 -msgid "Thieving" -msgstr "Ladrón" - -#: AppTools/ToolCopperThieving.py:963 -msgid "Copper Thieving Tool started. Reading parameters." -msgstr "Herramienta de Copper Thieving iniciada. Parámetros de lectura." - -#: AppTools/ToolCopperThieving.py:988 -msgid "Copper Thieving Tool. Preparing isolation polygons." -msgstr "Herramienta Copper Thieving. Preparación de polígonos de aislamiento." - -#: AppTools/ToolCopperThieving.py:1033 -msgid "Copper Thieving Tool. Preparing areas to fill with copper." -msgstr "" -"Herramienta Copper Thieving. Preparación de áreas para rellenar con cobre." - -#: AppTools/ToolCopperThieving.py:1044 AppTools/ToolOptimal.py:355 -#: AppTools/ToolPanelize.py:810 AppTools/ToolRulesCheck.py:1127 -msgid "Working..." -msgstr "Trabajando..." - -#: AppTools/ToolCopperThieving.py:1071 -msgid "Geometry not supported for bounding box" -msgstr "Geometría no admitida para cuadro delimitador" - -#: AppTools/ToolCopperThieving.py:1077 AppTools/ToolNCC.py:1962 -#: AppTools/ToolNCC.py:2017 AppTools/ToolNCC.py:3052 AppTools/ToolPaint.py:3405 -msgid "No object available." -msgstr "No hay objeto disponible." - -#: AppTools/ToolCopperThieving.py:1114 AppTools/ToolNCC.py:1987 -#: AppTools/ToolNCC.py:2040 AppTools/ToolNCC.py:3094 -msgid "The reference object type is not supported." -msgstr "El tipo de objeto de referencia no es compatible." - -#: AppTools/ToolCopperThieving.py:1119 -msgid "Copper Thieving Tool. Appending new geometry and buffering." -msgstr "" -"Herramienta Coppe Thieving. Anexar nueva geometría y almacenamiento en búfer." - -#: AppTools/ToolCopperThieving.py:1135 -msgid "Create geometry" -msgstr "Crear geometría" - -#: AppTools/ToolCopperThieving.py:1335 AppTools/ToolCopperThieving.py:1339 -msgid "P-Plating Mask" -msgstr "Mascarilla P" - -#: AppTools/ToolCopperThieving.py:1361 -msgid "Append PP-M geometry" -msgstr "Añadir geometría de máscara de recubrimiento P" - -#: AppTools/ToolCopperThieving.py:1487 -msgid "Generating Pattern Plating Mask done." -msgstr "Generando patrón de recubrimiento de máscara hecho." - -#: AppTools/ToolCopperThieving.py:1559 -msgid "Copper Thieving Tool exit." -msgstr "Salida de herramienta de Copper Thieving." - -#: AppTools/ToolCorners.py:57 -msgid "The Gerber object to which will be added corner markers." -msgstr "El objeto Gerber al que se agregarán marcadores de esquina." - -#: AppTools/ToolCorners.py:73 -msgid "Locations" -msgstr "Localizaciones" - -#: AppTools/ToolCorners.py:75 -msgid "Locations where to place corner markers." -msgstr "Lugares donde colocar marcadores de esquina." - -#: AppTools/ToolCorners.py:92 AppTools/ToolFiducials.py:95 -msgid "Top Right" -msgstr "Arriba a la derecha" - -#: AppTools/ToolCorners.py:101 -msgid "Toggle ALL" -msgstr "Alternar Todo" - -#: AppTools/ToolCorners.py:167 -msgid "Add Marker" -msgstr "Agregar Marcador" - -#: AppTools/ToolCorners.py:169 -msgid "Will add corner markers to the selected Gerber file." -msgstr "Agregará marcadores de esquina al archivo Gerber seleccionado." - -#: AppTools/ToolCorners.py:235 -msgid "Corners Tool" -msgstr "Herramienta de Esquinas" - -#: AppTools/ToolCorners.py:305 -msgid "Please select at least a location" -msgstr "Seleccione al menos una ubicación" - -#: AppTools/ToolCorners.py:440 -msgid "Corners Tool exit." -msgstr "Salida de herramienta de Esquinas." - -#: AppTools/ToolCutOut.py:41 -msgid "Cutout PCB" -msgstr "PCB de corte" - -#: AppTools/ToolCutOut.py:69 AppTools/ToolPanelize.py:53 -msgid "Source Object" -msgstr "Objeto fuente" - -#: AppTools/ToolCutOut.py:70 -msgid "Object to be cutout" -msgstr "Objeto a recortar" - -#: AppTools/ToolCutOut.py:75 -msgid "Kind" -msgstr "Tipo" - -#: AppTools/ToolCutOut.py:97 -msgid "" -"Specify the type of object to be cutout.\n" -"It can be of type: Gerber or Geometry.\n" -"What is selected here will dictate the kind\n" -"of objects that will populate the 'Object' combobox." -msgstr "" -"Especifique el tipo de objeto a recortar.\n" -"Puede ser de tipo: Gerber o Geometría.\n" -"Lo que se seleccione aquí dictará el tipo\n" -"de objetos que llenarán el cuadro combinado 'Objeto'." - -#: AppTools/ToolCutOut.py:121 -msgid "Tool Parameters" -msgstr "Parámetros de Herramienta" - -#: AppTools/ToolCutOut.py:238 -msgid "A. Automatic Bridge Gaps" -msgstr "A. Brechas automáticas del puente" - -#: AppTools/ToolCutOut.py:240 -msgid "This section handle creation of automatic bridge gaps." -msgstr "Esta sección maneja la creación de espacios de puente automáticos." - -#: AppTools/ToolCutOut.py:247 -msgid "" -"Number of gaps used for the Automatic cutout.\n" -"There can be maximum 8 bridges/gaps.\n" -"The choices are:\n" -"- None - no gaps\n" -"- lr - left + right\n" -"- tb - top + bottom\n" -"- 4 - left + right +top + bottom\n" -"- 2lr - 2*left + 2*right\n" -"- 2tb - 2*top + 2*bottom\n" -"- 8 - 2*left + 2*right +2*top + 2*bottom" -msgstr "" -"Número de huecos utilizados para el recorte automático.\n" -"Puede haber un máximo de 8 puentes / huecos.\n" -"Las opciones son:\n" -"- Ninguno - sin espacios\n" -"- lr - izquierda + derecha\n" -"- tb - arriba + abajo\n" -"- 4 - izquierda + derecha + arriba + abajo\n" -"- 2lr - 2 * izquierda + 2 * derecha\n" -"- 2tb - 2 * arriba + 2 * abajo\n" -"- 8 - 2 * izquierda + 2 * derecha + 2 * arriba + 2 * abajo" - -#: AppTools/ToolCutOut.py:269 -msgid "Generate Freeform Geometry" -msgstr "Generar geometría de forma libre" - -#: AppTools/ToolCutOut.py:271 -msgid "" -"Cutout the selected object.\n" -"The cutout shape can be of any shape.\n" -"Useful when the PCB has a non-rectangular shape." -msgstr "" -"Recorta el objeto seleccionado.\n" -"La forma recortada puede ser de cualquier forma.\n" -"Útil cuando la PCB tiene una forma no rectangular." - -#: AppTools/ToolCutOut.py:283 -msgid "Generate Rectangular Geometry" -msgstr "Generar geometría rectangular" - -#: AppTools/ToolCutOut.py:285 -msgid "" -"Cutout the selected object.\n" -"The resulting cutout shape is\n" -"always a rectangle shape and it will be\n" -"the bounding box of the Object." -msgstr "" -"Recorta el objeto seleccionado.\n" -"La forma de corte resultante es\n" -"siempre una forma rectangular y será\n" -"El cuadro delimitador del objeto." - -#: AppTools/ToolCutOut.py:304 -msgid "B. Manual Bridge Gaps" -msgstr "B. Brechas manuales del puente" - -#: AppTools/ToolCutOut.py:306 -msgid "" -"This section handle creation of manual bridge gaps.\n" -"This is done by mouse clicking on the perimeter of the\n" -"Geometry object that is used as a cutout object. " -msgstr "" -"Esta sección maneja la creación de espacios de puente manuales.\n" -"Esto se hace haciendo clic con el mouse en el perímetro del\n" -"Objeto de geometría que se utiliza como objeto recortado. " - -#: AppTools/ToolCutOut.py:321 -msgid "Geometry object used to create the manual cutout." -msgstr "Objeto de geometría utilizado para crear el recorte manual." - -#: AppTools/ToolCutOut.py:328 -msgid "Generate Manual Geometry" -msgstr "Generar geometría manual" - -#: AppTools/ToolCutOut.py:330 -msgid "" -"If the object to be cutout is a Gerber\n" -"first create a Geometry that surrounds it,\n" -"to be used as the cutout, if one doesn't exist yet.\n" -"Select the source Gerber file in the top object combobox." -msgstr "" -"Si el objeto a recortar es un Gerber\n" -"primero crea una Geometría que lo rodea,\n" -"para ser utilizado como recorte, si aún no existe.\n" -"Seleccione el archivo fuente de Gerber en el cuadro combinado de objeto " -"superior." - -#: AppTools/ToolCutOut.py:343 -msgid "Manual Add Bridge Gaps" -msgstr "Agregar huecos de puente manuales" - -#: AppTools/ToolCutOut.py:345 -msgid "" -"Use the left mouse button (LMB) click\n" -"to create a bridge gap to separate the PCB from\n" -"the surrounding material.\n" -"The LMB click has to be done on the perimeter of\n" -"the Geometry object used as a cutout geometry." -msgstr "" -"Haga clic con el botón izquierdo del mouse (LMB)\n" -"para crear un espacio de puente para separar la PCB de\n" -"El material circundante.\n" -"El clic LMB debe hacerse en el perímetro de\n" -"El objeto Geometry utilizado como geometría de recorte." - -#: AppTools/ToolCutOut.py:561 -msgid "" -"There is no object selected for Cutout.\n" -"Select one and try again." -msgstr "" -"No hay ningún objeto seleccionado para Recorte.\n" -"Seleccione uno e intente nuevamente." - -#: AppTools/ToolCutOut.py:567 AppTools/ToolCutOut.py:770 -#: AppTools/ToolCutOut.py:951 AppTools/ToolCutOut.py:1033 -#: tclCommands/TclCommandGeoCutout.py:184 -msgid "Tool Diameter is zero value. Change it to a positive real number." -msgstr "Diá. de herramienta es valor cero. Cámbielo a un número real positivo." - -#: AppTools/ToolCutOut.py:581 AppTools/ToolCutOut.py:785 -msgid "Number of gaps value is missing. Add it and retry." -msgstr "Falta el valor del número de huecos. Añádelo y vuelve a intentarlo." - -#: AppTools/ToolCutOut.py:586 AppTools/ToolCutOut.py:789 -msgid "" -"Gaps value can be only one of: 'None', 'lr', 'tb', '2lr', '2tb', 4 or 8. " -"Fill in a correct value and retry. " -msgstr "" -"El valor de las brechas solo puede ser uno de: 'Ninguno', 'lr', 'tb', '2lr', " -"'2tb', 4 u 8. Complete un valor correcto y vuelva a intentarlo. " - -#: AppTools/ToolCutOut.py:591 AppTools/ToolCutOut.py:795 -msgid "" -"Cutout operation cannot be done on a multi-geo Geometry.\n" -"Optionally, this Multi-geo Geometry can be converted to Single-geo " -"Geometry,\n" -"and after that perform Cutout." -msgstr "" -"La operación de recorte no se puede hacer en una Geometría multi-geo.\n" -"Opcionalmente, esta Geometría Multi-Geo se puede convertir a Geometría " -"Single-Geo,\n" -"y después de eso realiza el recorte." - -#: AppTools/ToolCutOut.py:743 AppTools/ToolCutOut.py:940 -msgid "Any form CutOut operation finished." -msgstr "Cualquier forma de operación de corte finalizada." - -#: AppTools/ToolCutOut.py:765 AppTools/ToolEtchCompensation.py:366 -#: AppTools/ToolInvertGerber.py:217 AppTools/ToolIsolation.py:1589 -#: AppTools/ToolIsolation.py:1616 AppTools/ToolNCC.py:1621 -#: AppTools/ToolPaint.py:1416 AppTools/ToolPanelize.py:428 -#: tclCommands/TclCommandBbox.py:71 tclCommands/TclCommandNregions.py:71 -msgid "Object not found" -msgstr "Objeto no encontrado" - -#: AppTools/ToolCutOut.py:909 -msgid "Rectangular cutout with negative margin is not possible." -msgstr "El corte rectangular con margen negativo no es posible." - -#: AppTools/ToolCutOut.py:945 -msgid "" -"Click on the selected geometry object perimeter to create a bridge gap ..." -msgstr "" -"Haga clic en el perímetro del objeto de geometría seleccionado para crear un " -"espacio de puente ..." - -#: AppTools/ToolCutOut.py:962 AppTools/ToolCutOut.py:988 -msgid "Could not retrieve Geometry object" -msgstr "No se pudo recuperar el objeto Geometry" - -#: AppTools/ToolCutOut.py:993 -msgid "Geometry object for manual cutout not found" -msgstr "Objeto de geometría para corte manual no encontrado" - -#: AppTools/ToolCutOut.py:1003 -msgid "Added manual Bridge Gap." -msgstr "Se agregó brecha de puente manual." - -#: AppTools/ToolCutOut.py:1015 -msgid "Could not retrieve Gerber object" -msgstr "No se pudo recuperar el objeto Gerber" - -#: AppTools/ToolCutOut.py:1020 -msgid "" -"There is no Gerber object selected for Cutout.\n" -"Select one and try again." -msgstr "" -"No hay ningún objeto Gerber seleccionado para Recorte.\n" -"Seleccione uno e intente nuevamente." - -#: AppTools/ToolCutOut.py:1026 -msgid "" -"The selected object has to be of Gerber type.\n" -"Select a Gerber file and try again." -msgstr "" -"El objeto seleccionado debe ser del tipo Gerber.\n" -"Seleccione un archivo Gerber e intente nuevamente." - -#: AppTools/ToolCutOut.py:1061 -msgid "Geometry not supported for cutout" -msgstr "Geometría no admitida para recorte" - -#: AppTools/ToolCutOut.py:1136 -msgid "Making manual bridge gap..." -msgstr "Hacer un puente manual ..." - -#: AppTools/ToolDblSided.py:26 -msgid "2-Sided PCB" -msgstr "PCB a 2 caras" - -#: AppTools/ToolDblSided.py:52 -msgid "Mirror Operation" -msgstr "Operación Espejo" - -#: AppTools/ToolDblSided.py:53 -msgid "Objects to be mirrored" -msgstr "Objetos a ser reflejados" - -#: AppTools/ToolDblSided.py:65 -msgid "Gerber to be mirrored" -msgstr "Gerber para ser reflejado" - -#: AppTools/ToolDblSided.py:69 AppTools/ToolDblSided.py:97 -#: AppTools/ToolDblSided.py:127 -msgid "" -"Mirrors (flips) the specified object around \n" -"the specified axis. Does not create a new \n" -"object, but modifies it." -msgstr "" -"Refleja (voltea) el objeto especificado alrededor\n" -"El eje especificado. No crea un nuevo\n" -"objeto, pero lo modifica." - -#: AppTools/ToolDblSided.py:93 -msgid "Excellon Object to be mirrored." -msgstr "Excellon Objeto a ser reflejado." - -#: AppTools/ToolDblSided.py:122 -msgid "Geometry Obj to be mirrored." -msgstr "Obj de geometría para ser reflejado." - -#: AppTools/ToolDblSided.py:158 -msgid "Mirror Parameters" -msgstr "Parámetros de Espejo" - -#: AppTools/ToolDblSided.py:159 -msgid "Parameters for the mirror operation" -msgstr "Parámetros para la operación Reflejar" - -#: AppTools/ToolDblSided.py:164 -msgid "Mirror Axis" -msgstr "Eje espejo" - -#: AppTools/ToolDblSided.py:175 -msgid "" -"The coordinates used as reference for the mirror operation.\n" -"Can be:\n" -"- Point -> a set of coordinates (x,y) around which the object is mirrored\n" -"- Box -> a set of coordinates (x, y) obtained from the center of the\n" -"bounding box of another object selected below" -msgstr "" -"Las coordenadas utilizadas como referencia para la operación espejo.\n" -"Puede ser:\n" -"- Punto -> un conjunto de coordenadas (x, y) alrededor del cual se refleja " -"el objeto\n" -"- Cuadro -> un conjunto de coordenadas (x, y) obtenidas del centro de la\n" -"cuadro delimitador de otro objeto seleccionado a continuación" - -#: AppTools/ToolDblSided.py:189 -msgid "Point coordinates" -msgstr "Coordenadas de puntos" - -#: AppTools/ToolDblSided.py:194 -msgid "" -"Add the coordinates in format (x, y) through which the mirroring " -"axis\n" -" selected in 'MIRROR AXIS' pass.\n" -"The (x, y) coordinates are captured by pressing SHIFT key\n" -"and left mouse button click on canvas or you can enter the coordinates " -"manually." -msgstr "" -"Agregue las coordenadas en formato (x, y) a través del cual el eje " -"de reflejo\n" -"seleccionado en el pase 'EJE DE ESPEJO'.\n" -"Las coordenadas (x, y) se capturan presionando la tecla MAYÚS\n" -"y haga clic con el botón izquierdo del mouse en el lienzo o puede ingresar " -"las coordenadas manualmente." - -#: AppTools/ToolDblSided.py:218 -msgid "" -"It can be of type: Gerber or Excellon or Geometry.\n" -"The coordinates of the center of the bounding box are used\n" -"as reference for mirror operation." -msgstr "" -"Puede ser de tipo: Gerber o Excellon o Geometry.\n" -"Se utilizan las coordenadas del centro del cuadro delimitador.\n" -"como referencia para la operación del espejo." - -#: AppTools/ToolDblSided.py:252 -msgid "Bounds Values" -msgstr "Valores de límites" - -#: AppTools/ToolDblSided.py:254 -msgid "" -"Select on canvas the object(s)\n" -"for which to calculate bounds values." -msgstr "" -"Seleccione en lienzo los objetos\n" -"para el cual calcular valores de límites." - -#: AppTools/ToolDblSided.py:264 -msgid "X min" -msgstr "X min" - -#: AppTools/ToolDblSided.py:266 AppTools/ToolDblSided.py:280 -msgid "Minimum location." -msgstr "Ubicacion minima." - -#: AppTools/ToolDblSided.py:278 -msgid "Y min" -msgstr "Y min" - -#: AppTools/ToolDblSided.py:292 -msgid "X max" -msgstr "X max" - -#: AppTools/ToolDblSided.py:294 AppTools/ToolDblSided.py:308 -msgid "Maximum location." -msgstr "Máxima ubicación." - -#: AppTools/ToolDblSided.py:306 -msgid "Y max" -msgstr "Y max" - -#: AppTools/ToolDblSided.py:317 -msgid "Center point coordinates" -msgstr "Coords del punto central" - -#: AppTools/ToolDblSided.py:319 -msgid "Centroid" -msgstr "Centroide" - -#: AppTools/ToolDblSided.py:321 -msgid "" -"The center point location for the rectangular\n" -"bounding shape. Centroid. Format is (x, y)." -msgstr "" -"La ubicación del punto central para el rectangular\n" -"forma delimitadora. Centroide. El formato es (x, y)." - -#: AppTools/ToolDblSided.py:330 -msgid "Calculate Bounds Values" -msgstr "Calcular valores de límites" - -#: AppTools/ToolDblSided.py:332 -msgid "" -"Calculate the enveloping rectangular shape coordinates,\n" -"for the selection of objects.\n" -"The envelope shape is parallel with the X, Y axis." -msgstr "" -"Calcule las coordenadas de forma rectangular envolvente,\n" -"para la selección de objetos.\n" -"La forma de la envoltura es paralela al eje X, Y." - -#: AppTools/ToolDblSided.py:352 -msgid "PCB Alignment" -msgstr "Alineación de PCB" - -#: AppTools/ToolDblSided.py:354 AppTools/ToolDblSided.py:456 -msgid "" -"Creates an Excellon Object containing the\n" -"specified alignment holes and their mirror\n" -"images." -msgstr "" -"Crea un objeto Excellon que contiene el\n" -"agujeros de alineación especificados y su espejo\n" -"imágenes." - -#: AppTools/ToolDblSided.py:361 -msgid "Drill Diameter" -msgstr "Diá del Taladro" - -#: AppTools/ToolDblSided.py:390 AppTools/ToolDblSided.py:397 -msgid "" -"The reference point used to create the second alignment drill\n" -"from the first alignment drill, by doing mirror.\n" -"It can be modified in the Mirror Parameters -> Reference section" -msgstr "" -"El punto de referencia utilizado para crear el segundo ejercicio de " -"alineación.\n" -"desde el primer ejercicio de alineación, haciendo espejo.\n" -"Se puede modificar en la sección Parámetros Espejo -> Referencia" - -#: AppTools/ToolDblSided.py:410 -msgid "Alignment Drill Coordinates" -msgstr "Taladro de alineación Coords" - -#: AppTools/ToolDblSided.py:412 -msgid "" -"Alignment holes (x1, y1), (x2, y2), ... on one side of the mirror axis. For " -"each set of (x, y) coordinates\n" -"entered here, a pair of drills will be created:\n" -"\n" -"- one drill at the coordinates from the field\n" -"- one drill in mirror position over the axis selected above in the 'Align " -"Axis'." -msgstr "" -"Agujeros de alineación (x1, y1), (x2, y2), ... en un lado del eje del " -"espejo. Para cada conjunto de coordenadas (x, y)\n" -"ingresado aquí, se crearán un par de simulacros:\n" -"\n" -"- un ejercicio en las coordenadas del campo\n" -"- un taladro en posición de espejo sobre el eje seleccionado arriba en " -"'Alinear eje'." - -#: AppTools/ToolDblSided.py:420 -msgid "Drill coordinates" -msgstr "Coords de Perforación" - -#: AppTools/ToolDblSided.py:427 -msgid "" -"Add alignment drill holes coordinates in the format: (x1, y1), (x2, " -"y2), ... \n" -"on one side of the alignment axis.\n" -"\n" -"The coordinates set can be obtained:\n" -"- press SHIFT key and left mouse clicking on canvas. Then click Add.\n" -"- press SHIFT key and left mouse clicking on canvas. Then Ctrl+V in the " -"field.\n" -"- press SHIFT key and left mouse clicking on canvas. Then RMB click in the " -"field and click Paste.\n" -"- by entering the coords manually in the format: (x1, y1), (x2, y2), ..." -msgstr "" -"Agregue coordenadas de taladros de alineación en el formato: (x1, y1), (x2, " -"y2), ...\n" -"en un lado del eje de alineación.\n" -"\n" -"El conjunto de coordenadas se puede obtener:\n" -"- presione la tecla SHIFT y haga clic con el botón izquierdo del mouse en el " -"lienzo. Luego haga clic en Agregar.\n" -"- presione la tecla SHIFT y haga clic con el botón izquierdo en el lienzo " -"Luego Ctrl + V en el campo.\n" -"- presione la tecla SHIFT y haga clic con el botón izquierdo del mouse en el " -"lienzo. Luego, haga clic en RMB en el campo y haga clic en Pegar.\n" -"- ingresando las coordenadas manualmente en el formato: (x1, y1), (x2, " -"y2), ..." - -#: AppTools/ToolDblSided.py:442 -msgid "Delete Last" -msgstr "Eliminar último" - -#: AppTools/ToolDblSided.py:444 -msgid "Delete the last coordinates tuple in the list." -msgstr "Eliminar la última tupla de coordenadas en la lista." - -#: AppTools/ToolDblSided.py:454 -msgid "Create Excellon Object" -msgstr "Crear objeto Excellon" - -#: AppTools/ToolDblSided.py:541 -msgid "2-Sided Tool" -msgstr "Herra. de 2 lados" - -#: AppTools/ToolDblSided.py:581 -msgid "" -"'Point' reference is selected and 'Point' coordinates are missing. Add them " -"and retry." -msgstr "" -"Se selecciona la referencia 'Punto' y faltan las coordenadas 'Punto'. " -"Añádelos y vuelve a intentarlo." - -#: AppTools/ToolDblSided.py:600 -msgid "There is no Box reference object loaded. Load one and retry." -msgstr "" -"No hay ningún objeto de referencia de cuadro cargado. Cargue uno y vuelva a " -"intentarlo." - -#: AppTools/ToolDblSided.py:612 -msgid "No value or wrong format in Drill Dia entry. Add it and retry." -msgstr "" -"Sin valor o formato incorrecto en la entrada de diá. de perforación. Añádelo " -"y vuelve a intentarlo." - -#: AppTools/ToolDblSided.py:623 -msgid "There are no Alignment Drill Coordinates to use. Add them and retry." -msgstr "" -"No hay coordenadas de taladro de alineación para usar. Añádelos y vuelve a " -"intentarlo." - -#: AppTools/ToolDblSided.py:648 -msgid "Excellon object with alignment drills created..." -msgstr "Objeto Excellon con taladros de alineación creados ..." - -#: AppTools/ToolDblSided.py:661 AppTools/ToolDblSided.py:704 -#: AppTools/ToolDblSided.py:748 -msgid "Only Gerber, Excellon and Geometry objects can be mirrored." -msgstr "Solo los objetos Gerber, Excellon y Geometry se pueden reflejar." - -#: AppTools/ToolDblSided.py:671 AppTools/ToolDblSided.py:715 -msgid "" -"There are no Point coordinates in the Point field. Add coords and try " -"again ..." -msgstr "" -"No hay coordenadas de punto en el campo Punto. Agregue coords e intente " -"nuevamente ..." - -#: AppTools/ToolDblSided.py:681 AppTools/ToolDblSided.py:725 -#: AppTools/ToolDblSided.py:762 -msgid "There is no Box object loaded ..." -msgstr "No hay ningún objeto caja cargado ..." - -#: AppTools/ToolDblSided.py:691 AppTools/ToolDblSided.py:735 -#: AppTools/ToolDblSided.py:772 -msgid "was mirrored" -msgstr "fue reflejado" - -#: AppTools/ToolDblSided.py:700 AppTools/ToolPunchGerber.py:533 -msgid "There is no Excellon object loaded ..." -msgstr "No hay ningún objeto Excellon cargado ..." - -#: AppTools/ToolDblSided.py:744 -msgid "There is no Geometry object loaded ..." -msgstr "No hay ningún objeto de geometría cargado ..." - -#: AppTools/ToolDblSided.py:818 App_Main.py:4350 App_Main.py:4505 -msgid "Failed. No object(s) selected..." -msgstr "Ha fallado. Ningún objeto (s) seleccionado ..." - -#: AppTools/ToolDistance.py:57 AppTools/ToolDistanceMin.py:50 -msgid "Those are the units in which the distance is measured." -msgstr "Esas son las unidades en las que se mide la distancia." - -#: AppTools/ToolDistance.py:58 AppTools/ToolDistanceMin.py:51 -msgid "METRIC (mm)" -msgstr "MÉTRICO (mm)" - -#: AppTools/ToolDistance.py:58 AppTools/ToolDistanceMin.py:51 -msgid "INCH (in)" -msgstr "PULGADA (en)" - -#: AppTools/ToolDistance.py:64 -msgid "Snap to center" -msgstr "Ajustar al centro" - -#: AppTools/ToolDistance.py:66 -msgid "" -"Mouse cursor will snap to the center of the pad/drill\n" -"when it is hovering over the geometry of the pad/drill." -msgstr "" -"El cursor del mouse se ajustará al centro de la almohadilla / taladro\n" -"cuando se cierne sobre la geometría de la almohadilla / taladro." - -#: AppTools/ToolDistance.py:76 -msgid "Start Coords" -msgstr "Iniciar coordenadas" - -#: AppTools/ToolDistance.py:77 AppTools/ToolDistance.py:82 -msgid "This is measuring Start point coordinates." -msgstr "Esto mide las coordenadas del punto de inicio." - -#: AppTools/ToolDistance.py:87 -msgid "Stop Coords" -msgstr "Detener coordenadas" - -#: AppTools/ToolDistance.py:88 AppTools/ToolDistance.py:93 -msgid "This is the measuring Stop point coordinates." -msgstr "Estas son las coordenadas del punto de parada de medición." - -#: AppTools/ToolDistance.py:98 AppTools/ToolDistanceMin.py:62 -msgid "Dx" -msgstr "Dx" - -#: AppTools/ToolDistance.py:99 AppTools/ToolDistance.py:104 -#: AppTools/ToolDistanceMin.py:63 AppTools/ToolDistanceMin.py:92 -msgid "This is the distance measured over the X axis." -msgstr "Esta es la distancia medida sobre el eje X." - -#: AppTools/ToolDistance.py:109 AppTools/ToolDistanceMin.py:65 -msgid "Dy" -msgstr "Dy" - -#: AppTools/ToolDistance.py:110 AppTools/ToolDistance.py:115 -#: AppTools/ToolDistanceMin.py:66 AppTools/ToolDistanceMin.py:97 -msgid "This is the distance measured over the Y axis." -msgstr "Esta es la distancia medida sobre el eje Y." - -#: AppTools/ToolDistance.py:121 AppTools/ToolDistance.py:126 -#: AppTools/ToolDistanceMin.py:69 AppTools/ToolDistanceMin.py:102 -msgid "This is orientation angle of the measuring line." -msgstr "Este es el ángulo de orientación de la línea de medición." - -#: AppTools/ToolDistance.py:131 AppTools/ToolDistanceMin.py:71 -msgid "DISTANCE" -msgstr "DISTANCIA" - -#: AppTools/ToolDistance.py:132 AppTools/ToolDistance.py:137 -msgid "This is the point to point Euclidian distance." -msgstr "Este es el punto a punto de la distancia euclidiana." - -#: AppTools/ToolDistance.py:142 AppTools/ToolDistance.py:339 -#: AppTools/ToolDistanceMin.py:114 -msgid "Measure" -msgstr "Medida" - -#: AppTools/ToolDistance.py:274 -msgid "Working" -msgstr "Trabajando" - -#: AppTools/ToolDistance.py:279 -msgid "MEASURING: Click on the Start point ..." -msgstr "MEDICIÓN: haga clic en el punto de inicio ..." - -#: AppTools/ToolDistance.py:389 -msgid "Distance Tool finished." -msgstr "Herramienta de Distancia terminada." - -#: AppTools/ToolDistance.py:461 -msgid "Pads overlapped. Aborting." -msgstr "Almohadillas superpuestas. Abortar." - -#: AppTools/ToolDistance.py:489 -msgid "Distance Tool cancelled." -msgstr "Distancia Herramienta cancelada." - -#: AppTools/ToolDistance.py:494 -msgid "MEASURING: Click on the Destination point ..." -msgstr "MEDICIÓN: haga clic en el punto de destino ..." - -#: AppTools/ToolDistance.py:503 AppTools/ToolDistanceMin.py:284 -msgid "MEASURING" -msgstr "MEDICIÓN" - -#: AppTools/ToolDistance.py:504 AppTools/ToolDistanceMin.py:285 -msgid "Result" -msgstr "Resultado" - -#: AppTools/ToolDistanceMin.py:31 AppTools/ToolDistanceMin.py:143 -msgid "Minimum Distance Tool" -msgstr "Herramienta de Distancia Mínima" - -#: AppTools/ToolDistanceMin.py:54 -msgid "First object point" -msgstr "Primer punto" - -#: AppTools/ToolDistanceMin.py:55 AppTools/ToolDistanceMin.py:80 -msgid "" -"This is first object point coordinates.\n" -"This is the start point for measuring distance." -msgstr "" -"Este es el primer objeto de coordenadas de puntos.\n" -"Este es el punto de partida para medir la distancia." - -#: AppTools/ToolDistanceMin.py:58 -msgid "Second object point" -msgstr "Segundo punto" - -#: AppTools/ToolDistanceMin.py:59 AppTools/ToolDistanceMin.py:86 -msgid "" -"This is second object point coordinates.\n" -"This is the end point for measuring distance." -msgstr "" -"Este es el segundo objeto de coordenadas de puntos.\n" -"Este es el punto final para medir la distancia." - -#: AppTools/ToolDistanceMin.py:72 AppTools/ToolDistanceMin.py:107 -msgid "This is the point to point Euclidean distance." -msgstr "Este es el punto a punto de la distancia euclidiana." - -#: AppTools/ToolDistanceMin.py:74 -msgid "Half Point" -msgstr "Punto Medio" - -#: AppTools/ToolDistanceMin.py:75 AppTools/ToolDistanceMin.py:112 -msgid "This is the middle point of the point to point Euclidean distance." -msgstr "Este es el punto medio de la distancia euclidiana punto a punto." - -#: AppTools/ToolDistanceMin.py:117 -msgid "Jump to Half Point" -msgstr "Saltar a Medio Punto" - -#: AppTools/ToolDistanceMin.py:154 -msgid "" -"Select two objects and no more, to measure the distance between them ..." -msgstr "" -"Seleccione dos objetos y no más, para medir la distancia entre ellos ..." - -#: AppTools/ToolDistanceMin.py:195 AppTools/ToolDistanceMin.py:216 -#: AppTools/ToolDistanceMin.py:225 AppTools/ToolDistanceMin.py:246 -msgid "Select two objects and no more. Currently the selection has objects: " -msgstr "" -"Seleccione dos objetos y no más. Actualmente la selección tiene objetos: " - -#: AppTools/ToolDistanceMin.py:293 -msgid "Objects intersects or touch at" -msgstr "Los objetos se cruzan o tocan" - -#: AppTools/ToolDistanceMin.py:299 -msgid "Jumped to the half point between the two selected objects" -msgstr "Saltó al punto medio entre los dos objetos seleccionados" - -#: AppTools/ToolEtchCompensation.py:75 AppTools/ToolInvertGerber.py:74 -msgid "Gerber object that will be inverted." -msgstr "Objeto de Gerber que se invertirá." - -#: AppTools/ToolEtchCompensation.py:86 -msgid "Utilities" -msgstr "Utilidades" - -#: AppTools/ToolEtchCompensation.py:87 -msgid "Conversion utilities" -msgstr "Utilidades de conversión" - -#: AppTools/ToolEtchCompensation.py:92 -msgid "Oz to Microns" -msgstr "Oz a Micrones" - -#: AppTools/ToolEtchCompensation.py:94 -msgid "" -"Will convert from oz thickness to microns [um].\n" -"Can use formulas with operators: /, *, +, -, %, .\n" -"The real numbers use the dot decimals separator." -msgstr "" -"Se convertirá del grosor de oz a micras [um].\n" -"Puede usar fórmulas con operadores: /, *, +, -,%,.\n" -"Los números reales usan el separador de decimales de punto." - -#: AppTools/ToolEtchCompensation.py:103 -msgid "Oz value" -msgstr "Valor de oz" - -#: AppTools/ToolEtchCompensation.py:105 AppTools/ToolEtchCompensation.py:126 -msgid "Microns value" -msgstr "Valor de micras" - -#: AppTools/ToolEtchCompensation.py:113 -msgid "Mils to Microns" -msgstr "Mils a Micrones" - -#: AppTools/ToolEtchCompensation.py:115 -msgid "" -"Will convert from mils to microns [um].\n" -"Can use formulas with operators: /, *, +, -, %, .\n" -"The real numbers use the dot decimals separator." -msgstr "" -"Se convertirá de milésimas de pulgada a micras [um].\n" -"Puede usar fórmulas con operadores: /, *, +, -,%,.\n" -"Los números reales usan el separador de decimales de punto." - -#: AppTools/ToolEtchCompensation.py:124 -msgid "Mils value" -msgstr "Valor de milésimas" - -#: AppTools/ToolEtchCompensation.py:139 AppTools/ToolInvertGerber.py:86 -msgid "Parameters for this tool" -msgstr "Parám. para esta herramienta" - -#: AppTools/ToolEtchCompensation.py:144 -msgid "Copper Thickness" -msgstr "Espesor de cobre" - -#: AppTools/ToolEtchCompensation.py:146 -msgid "" -"The thickness of the copper foil.\n" -"In microns [um]." -msgstr "" -"El grosor de la lámina de cobre.\n" -"En micras [um]." - -#: AppTools/ToolEtchCompensation.py:157 -msgid "Ratio" -msgstr "Proporción" - -#: AppTools/ToolEtchCompensation.py:159 -msgid "" -"The ratio of lateral etch versus depth etch.\n" -"Can be:\n" -"- custom -> the user will enter a custom value\n" -"- preselection -> value which depends on a selection of etchants" -msgstr "" -"La relación de grabado lateral versus grabado profundo.\n" -"Puede ser:\n" -"- personalizado -> el usuario ingresará un valor personalizado\n" -"- preseleccionado -> valor que depende de una selección de grabadores" - -#: AppTools/ToolEtchCompensation.py:165 -msgid "Etch Factor" -msgstr "Factor de grabado" - -#: AppTools/ToolEtchCompensation.py:166 -msgid "Etchants list" -msgstr "Lista de grabados" - -#: AppTools/ToolEtchCompensation.py:167 -msgid "Manual offset" -msgstr "Desplazamiento manual" - -#: AppTools/ToolEtchCompensation.py:174 AppTools/ToolEtchCompensation.py:179 -msgid "Etchants" -msgstr "Grabadores" - -#: AppTools/ToolEtchCompensation.py:176 -msgid "A list of etchants." -msgstr "Una lista de grabadores." - -#: AppTools/ToolEtchCompensation.py:180 -msgid "Alkaline baths" -msgstr "Baños alcalinos" - -#: AppTools/ToolEtchCompensation.py:186 -msgid "Etch factor" -msgstr "Factor de grabado" - -#: AppTools/ToolEtchCompensation.py:188 -msgid "" -"The ratio between depth etch and lateral etch .\n" -"Accepts real numbers and formulas using the operators: /,*,+,-,%" -msgstr "" -"La relación entre el grabado profundo y el grabado lateral.\n" -"Acepta números reales y fórmulas utilizando los operadores: /, *, +, -,%" - -#: AppTools/ToolEtchCompensation.py:192 -msgid "Real number or formula" -msgstr "Número real o fórmula" - -#: AppTools/ToolEtchCompensation.py:193 -msgid "Etch_factor" -msgstr "Factor de grabado" - -#: AppTools/ToolEtchCompensation.py:201 -msgid "" -"Value with which to increase or decrease (buffer)\n" -"the copper features. In microns [um]." -msgstr "" -"Valor con el que aumentar o disminuir (buffer)\n" -"Las características de cobre. En micras [um]." - -#: AppTools/ToolEtchCompensation.py:225 -msgid "Compensate" -msgstr "Compensar" - -#: AppTools/ToolEtchCompensation.py:227 -msgid "" -"Will increase the copper features thickness to compensate the lateral etch." -msgstr "" -"Aumentará el grosor de las características de cobre para compensar el " -"grabado lateral." - -#: AppTools/ToolExtractDrills.py:29 AppTools/ToolExtractDrills.py:295 -msgid "Extract Drills" -msgstr "Extraer Taladros" - -#: AppTools/ToolExtractDrills.py:62 -msgid "Gerber from which to extract drill holes" -msgstr "Gerber de donde extraer agujeros de perforación" - -#: AppTools/ToolExtractDrills.py:297 -msgid "Extract drills from a given Gerber file." -msgstr "Extraer simulacros de un archivo Gerber dado." - -#: AppTools/ToolExtractDrills.py:478 AppTools/ToolExtractDrills.py:563 -#: AppTools/ToolExtractDrills.py:648 -msgid "No drills extracted. Try different parameters." -msgstr "No se extraen taladros. Prueba diferentes parámetros." - -#: AppTools/ToolFiducials.py:56 -msgid "Fiducials Coordinates" -msgstr "Coordenadas Fiduciales" - -#: AppTools/ToolFiducials.py:58 -msgid "" -"A table with the fiducial points coordinates,\n" -"in the format (x, y)." -msgstr "" -"Una tabla con las coordenadas de los puntos fiduciales,\n" -"en el formato (x, y)." - -#: AppTools/ToolFiducials.py:194 -msgid "" -"- 'Auto' - automatic placement of fiducials in the corners of the bounding " -"box.\n" -" - 'Manual' - manual placement of fiducials." -msgstr "" -"- 'Auto' - colocación automática de fiduciales en las esquinas del cuadro " -"delimitador.\n" -" - 'Manual' - colocación manual de fiduciales." - -#: AppTools/ToolFiducials.py:240 -msgid "Thickness of the line that makes the fiducial." -msgstr "Espesor de la línea que hace al fiducial." - -#: AppTools/ToolFiducials.py:271 -msgid "Add Fiducial" -msgstr "Añadir Fiducial" - -#: AppTools/ToolFiducials.py:273 -msgid "Will add a polygon on the copper layer to serve as fiducial." -msgstr "Agregará un polígono en la capa de cobre para servir como fiducial." - -#: AppTools/ToolFiducials.py:289 -msgid "Soldermask Gerber" -msgstr "Soldermask Gerber" - -#: AppTools/ToolFiducials.py:291 -msgid "The Soldermask Gerber object." -msgstr "El objeto Soldermask Gerber." - -#: AppTools/ToolFiducials.py:303 -msgid "Add Soldermask Opening" -msgstr "Agregar apertura de Soldermask" - -#: AppTools/ToolFiducials.py:305 -msgid "" -"Will add a polygon on the soldermask layer\n" -"to serve as fiducial opening.\n" -"The diameter is always double of the diameter\n" -"for the copper fiducial." -msgstr "" -"Agregará un polígono en la capa de máscara de soldadura\n" -"para servir como apertura fiducial.\n" -"El diámetro siempre es el doble del diámetro.\n" -"para el cobre fiducial." - -#: AppTools/ToolFiducials.py:520 -msgid "Click to add first Fiducial. Bottom Left..." -msgstr "Haga clic para agregar primero Fiducial. Abajo a la izquierda ..." - -#: AppTools/ToolFiducials.py:784 -msgid "Click to add the last fiducial. Top Right..." -msgstr "Haga clic para agregar el último fiducial. Parte superior derecha..." - -#: AppTools/ToolFiducials.py:789 -msgid "Click to add the second fiducial. Top Left or Bottom Right..." -msgstr "" -"Haga clic para agregar el segundo fiducial. Arriba a la izquierda o abajo a " -"la derecha ..." - -#: AppTools/ToolFiducials.py:792 AppTools/ToolFiducials.py:801 -msgid "Done. All fiducials have been added." -msgstr "Hecho. Se han agregado todos los fiduciales." - -#: AppTools/ToolFiducials.py:878 -msgid "Fiducials Tool exit." -msgstr "Herram. Fiduciales de salida." - -#: AppTools/ToolFilm.py:42 -msgid "Film PCB" -msgstr "Película de PCB" - -#: AppTools/ToolFilm.py:73 -msgid "" -"Specify the type of object for which to create the film.\n" -"The object can be of type: Gerber or Geometry.\n" -"The selection here decide the type of objects that will be\n" -"in the Film Object combobox." -msgstr "" -"Especifique el tipo de objeto para el cual crear la película.\n" -"El objeto puede ser de tipo: Gerber o Geometry.\n" -"La selección aquí decide el tipo de objetos que serán\n" -"en el cuadro combinado de objeto de película." - -#: AppTools/ToolFilm.py:96 -msgid "" -"Specify the type of object to be used as an container for\n" -"film creation. It can be: Gerber or Geometry type.The selection here decide " -"the type of objects that will be\n" -"in the Box Object combobox." -msgstr "" -"Especifique el tipo de objeto que se utilizará como contenedor para\n" -"creación cinematográfica. Puede ser: tipo Gerber o Geometría. La selección " -"aquí decide el tipo de objetos que serán\n" -"en el cuadro combinado Objeto de caja." - -#: AppTools/ToolFilm.py:256 -msgid "Film Parameters" -msgstr "Parámetros de la película" - -#: AppTools/ToolFilm.py:317 -msgid "Punch drill holes" -msgstr "Perforar Agujeros" - -#: AppTools/ToolFilm.py:318 -msgid "" -"When checked the generated film will have holes in pads when\n" -"the generated film is positive. This is done to help drilling,\n" -"when done manually." -msgstr "" -"Cuando está marcada, la película generada tendrá agujeros en las " -"almohadillas cuando\n" -"La película generada es positiva. Esto se hace para ayudar a perforar,\n" -"cuando se hace manualmente." - -#: AppTools/ToolFilm.py:336 -msgid "Source" -msgstr "Fuente" - -#: AppTools/ToolFilm.py:338 -msgid "" -"The punch hole source can be:\n" -"- Excellon -> an Excellon holes center will serve as reference.\n" -"- Pad Center -> will try to use the pads center as reference." -msgstr "" -"La fuente del orificio de perforación puede ser:\n" -"- Excellon -> un centro de agujeros Excellon servirá como referencia.\n" -"- Centro de almohadillas -> intentará usar el centro de almohadillas como " -"referencia." - -#: AppTools/ToolFilm.py:343 -msgid "Pad center" -msgstr "Centro de la almohadilla" - -#: AppTools/ToolFilm.py:348 -msgid "Excellon Obj" -msgstr "Objeto Excellon" - -#: AppTools/ToolFilm.py:350 -msgid "" -"Remove the geometry of Excellon from the Film to create the holes in pads." -msgstr "" -"Retire la geometría de Excellon de la película para crear los agujeros en " -"las almohadillas." - -#: AppTools/ToolFilm.py:364 -msgid "Punch Size" -msgstr "Tamaño de perforación" - -#: AppTools/ToolFilm.py:365 -msgid "The value here will control how big is the punch hole in the pads." -msgstr "" -"El valor aquí controlará qué tan grande es el agujero de perforación en los " -"pads." - -#: AppTools/ToolFilm.py:485 -msgid "Save Film" -msgstr "Guardar película" - -#: AppTools/ToolFilm.py:487 -msgid "" -"Create a Film for the selected object, within\n" -"the specified box. Does not create a new \n" -" FlatCAM object, but directly save it in the\n" -"selected format." -msgstr "" -"Crear una Película para el objeto seleccionado, dentro de\n" -"El cuadro especificado. No crea un nuevo\n" -"Objeto FlatCAM, pero guárdelo directamente en el\n" -"formato seleccionado." - -#: AppTools/ToolFilm.py:649 -msgid "" -"Using the Pad center does not work on Geometry objects. Only a Gerber object " -"has pads." -msgstr "" -"El uso del centro de almohadilla no funciona en objetos de geometría. Solo " -"un objeto Gerber tiene almohadillas." - -#: AppTools/ToolFilm.py:659 -msgid "No FlatCAM object selected. Load an object for Film and retry." -msgstr "" -"No se ha seleccionado ningún objeto FlatCAM. Cargue un objeto para Película " -"y vuelva a intentarlo." - -#: AppTools/ToolFilm.py:666 -msgid "No FlatCAM object selected. Load an object for Box and retry." -msgstr "" -"No se ha seleccionado ningún objeto FlatCAM. Cargue un objeto para Box y " -"vuelva a intentarlo." - -#: AppTools/ToolFilm.py:670 -msgid "No FlatCAM object selected." -msgstr "No se ha seleccionado ningún objeto FlatCAM." - -#: AppTools/ToolFilm.py:681 -msgid "Generating Film ..." -msgstr "Generando película ..." - -#: AppTools/ToolFilm.py:730 AppTools/ToolFilm.py:734 -msgid "Export positive film" -msgstr "Exportar película positiva" - -#: AppTools/ToolFilm.py:767 -msgid "" -"No Excellon object selected. Load an object for punching reference and retry." -msgstr "" -"No se seleccionó ningún objeto Excellon. Cargue un objeto para perforar la " -"referencia y vuelva a intentarlo." - -#: AppTools/ToolFilm.py:791 -msgid "" -" Could not generate punched hole film because the punch hole sizeis bigger " -"than some of the apertures in the Gerber object." -msgstr "" -" No se pudo generar una película de agujero perforado porque el tamaño del " -"agujero perforado es más grande que algunas de las aberturas en el objeto " -"Gerber." - -#: AppTools/ToolFilm.py:803 -msgid "" -"Could not generate punched hole film because the punch hole sizeis bigger " -"than some of the apertures in the Gerber object." -msgstr "" -"No se pudo generar una película de agujero perforado porque el tamaño del " -"agujero perforado es más grande que algunas de las aberturas en el objeto " -"Gerber." - -#: AppTools/ToolFilm.py:821 -msgid "" -"Could not generate punched hole film because the newly created object " -"geometry is the same as the one in the source object geometry..." -msgstr "" -"No se pudo generar una película de agujero perforado porque la geometría del " -"objeto recién creada es la misma que la de la geometría del objeto de " -"origen ..." - -#: AppTools/ToolFilm.py:876 AppTools/ToolFilm.py:880 -msgid "Export negative film" -msgstr "Exportar película negativa" - -#: AppTools/ToolFilm.py:941 AppTools/ToolFilm.py:1124 -#: AppTools/ToolPanelize.py:441 -msgid "No object Box. Using instead" -msgstr "Sin objeto Caja. Usando en su lugar" - -#: AppTools/ToolFilm.py:1057 AppTools/ToolFilm.py:1237 -msgid "Film file exported to" -msgstr "Archivo de película exportado a" - -#: AppTools/ToolFilm.py:1060 AppTools/ToolFilm.py:1240 -msgid "Generating Film ... Please wait." -msgstr "Generando Película ... Por favor espere." - -#: AppTools/ToolImage.py:24 -msgid "Image as Object" -msgstr "Imagen como objeto" - -#: AppTools/ToolImage.py:33 -msgid "Image to PCB" -msgstr "Imagen a PCB" - -#: AppTools/ToolImage.py:56 -msgid "" -"Specify the type of object to create from the image.\n" -"It can be of type: Gerber or Geometry." -msgstr "" -"Especifique el tipo de objeto a crear a partir de la imagen.\n" -"Puede ser de tipo: Gerber o Geometría." - -#: AppTools/ToolImage.py:65 -msgid "DPI value" -msgstr "Valor de DPI" - -#: AppTools/ToolImage.py:66 -msgid "Specify a DPI value for the image." -msgstr "Especifique un valor de DPI para la imagen." - -#: AppTools/ToolImage.py:72 -msgid "Level of detail" -msgstr "Nivel de detalle" - -#: AppTools/ToolImage.py:81 -msgid "Image type" -msgstr "Tipo de imagen" - -#: AppTools/ToolImage.py:83 -msgid "" -"Choose a method for the image interpretation.\n" -"B/W means a black & white image. Color means a colored image." -msgstr "" -"Elija un método para la interpretación de la imagen.\n" -"B / N significa una imagen en blanco y negro. Color significa una imagen en " -"color." - -#: AppTools/ToolImage.py:92 AppTools/ToolImage.py:107 AppTools/ToolImage.py:120 -#: AppTools/ToolImage.py:133 -msgid "Mask value" -msgstr "Valor de la máscara" - -#: AppTools/ToolImage.py:94 -msgid "" -"Mask for monochrome image.\n" -"Takes values between [0 ... 255].\n" -"Decides the level of details to include\n" -"in the resulting geometry.\n" -"0 means no detail and 255 means everything \n" -"(which is totally black)." -msgstr "" -"Máscara para imagen monocroma.\n" -"Toma valores entre [0 ... 255].\n" -"Decide el nivel de detalles a incluir\n" -"en la geometría resultante.\n" -"0 significa sin detalles y 255 significa todo\n" -"(que es totalmente negro)" - -#: AppTools/ToolImage.py:109 -msgid "" -"Mask for RED color.\n" -"Takes values between [0 ... 255].\n" -"Decides the level of details to include\n" -"in the resulting geometry." -msgstr "" -"Máscara para color ROJO.\n" -"Toma valores entre [0 ... 255].\n" -"Decide el nivel de detalles a incluir\n" -"en la geometría resultante." - -#: AppTools/ToolImage.py:122 -msgid "" -"Mask for GREEN color.\n" -"Takes values between [0 ... 255].\n" -"Decides the level of details to include\n" -"in the resulting geometry." -msgstr "" -"Máscara para color VERDE.\n" -"Toma valores entre [0 ... 255].\n" -"Decide el nivel de detalles a incluir\n" -"en la geometría resultante." - -#: AppTools/ToolImage.py:135 -msgid "" -"Mask for BLUE color.\n" -"Takes values between [0 ... 255].\n" -"Decides the level of details to include\n" -"in the resulting geometry." -msgstr "" -"Máscara para color AZUL.\n" -"Toma valores entre [0 ... 255].\n" -"Decide el nivel de detalles a incluir\n" -"en la geometría resultante." - -#: AppTools/ToolImage.py:143 -msgid "Import image" -msgstr "Importar imagen" - -#: AppTools/ToolImage.py:145 -msgid "Open a image of raster type and then import it in FlatCAM." -msgstr "Abra una imagen de tipo ráster y luego impórtela en FlatCAM." - -#: AppTools/ToolImage.py:182 -msgid "Image Tool" -msgstr "Herra. de imagen" - -#: AppTools/ToolImage.py:234 AppTools/ToolImage.py:237 -msgid "Import IMAGE" -msgstr "Importar IMAGEN" - -#: AppTools/ToolImage.py:277 App_Main.py:8360 App_Main.py:8407 -msgid "" -"Not supported type is picked as parameter. Only Geometry and Gerber are " -"supported" -msgstr "" -"El tipo no soportado se elige como parámetro. Solo Geometría y Gerber son " -"compatibles" - -#: AppTools/ToolImage.py:285 -msgid "Importing Image" -msgstr "Importando imagen" - -#: AppTools/ToolImage.py:297 AppTools/ToolPDF.py:154 App_Main.py:8385 -#: App_Main.py:8431 App_Main.py:8495 App_Main.py:8562 App_Main.py:8628 -#: App_Main.py:8693 App_Main.py:8750 -msgid "Opened" -msgstr "Abierto" - -#: AppTools/ToolInvertGerber.py:126 -msgid "Invert Gerber" -msgstr "Invertir Gerber" - -#: AppTools/ToolInvertGerber.py:128 -msgid "" -"Will invert the Gerber object: areas that have copper\n" -"will be empty of copper and previous empty area will be\n" -"filled with copper." -msgstr "" -"Invertirá el objeto Gerber: áreas que tienen cobre.\n" -"estará vacío de cobre y el área vacía anterior será\n" -"lleno de cobre." - -#: AppTools/ToolInvertGerber.py:187 -msgid "Invert Tool" -msgstr "Herram. de Inversión" - -#: AppTools/ToolIsolation.py:96 -msgid "Gerber object for isolation routing." -msgstr "Objeto Gerber para enrutamiento de aislamiento." - -#: AppTools/ToolIsolation.py:120 AppTools/ToolNCC.py:122 -msgid "" -"Tools pool from which the algorithm\n" -"will pick the ones used for copper clearing." -msgstr "" -"Conjunto de herramientas desde el cual el algoritmo\n" -"elegirá los utilizados para la limpieza de cobre." - -#: AppTools/ToolIsolation.py:136 -msgid "" -"This is the Tool Number.\n" -"Isolation routing will start with the tool with the biggest \n" -"diameter, continuing until there are no more tools.\n" -"Only tools that create Isolation geometry will still be present\n" -"in the resulting geometry. This is because with some tools\n" -"this function will not be able to create routing geometry." -msgstr "" -"Este es el número de herramienta.\n" -"El enrutamiento de aislamiento comenzará con la herramienta con la mayor\n" -"diámetro, continuando hasta que no haya más herramientas.\n" -"Solo las herramientas que crean geometría de aislamiento seguirán presentes\n" -"en la geometría resultante. Esto es porque con algunas herramientas\n" -"Esta función no podrá crear geometría de enrutamiento." - -#: AppTools/ToolIsolation.py:144 AppTools/ToolNCC.py:146 -msgid "" -"Tool Diameter. It's value (in current FlatCAM units)\n" -"is the cut width into the material." -msgstr "" -"Diámetro de herramienta. Su valor (en unidades actuales de FlatCAM)\n" -"es el ancho de corte en el material." - -#: AppTools/ToolIsolation.py:148 AppTools/ToolNCC.py:150 -msgid "" -"The Tool Type (TT) can be:\n" -"- Circular with 1 ... 4 teeth -> it is informative only. Being circular,\n" -"the cut width in material is exactly the tool diameter.\n" -"- Ball -> informative only and make reference to the Ball type endmill.\n" -"- V-Shape -> it will disable Z-Cut parameter in the resulting geometry UI " -"form\n" -"and enable two additional UI form fields in the resulting geometry: V-Tip " -"Dia and\n" -"V-Tip Angle. Adjusting those two values will adjust the Z-Cut parameter " -"such\n" -"as the cut width into material will be equal with the value in the Tool " -"Diameter\n" -"column of this table.\n" -"Choosing the 'V-Shape' Tool Type automatically will select the Operation " -"Type\n" -"in the resulting geometry as Isolation." -msgstr "" -"El tipo de herramienta (TT) puede ser:\n" -"- Circular con 1 ... 4 dientes -> es solo informativo. Siendo circular,\n" -"El ancho de corte en el material es exactamente el diámetro de la " -"herramienta.\n" -"- Bola -> solo informativo y hacer referencia a la fresa de extremo de " -"bola.\n" -"- Forma V -> deshabilitará el parámetro de corte Z en la forma de interfaz " -"de usuario de geometría resultante\n" -"y habilite dos campos de formulario de UI adicionales en la geometría " -"resultante: V-Tip Dia y\n" -"Ángulo de punta en V. El ajuste de esos dos valores ajustará el parámetro Z-" -"Cut, como\n" -"ya que el ancho de corte en el material será igual al valor en el Diámetro " -"de la herramienta\n" -"columna de esta tabla.\n" -"Al elegir el tipo de herramienta 'Forma de V' automáticamente, se " -"seleccionará el Tipo de operación\n" -"en la geometría resultante como Aislamiento." - -#: AppTools/ToolIsolation.py:300 AppTools/ToolNCC.py:318 -#: AppTools/ToolPaint.py:300 AppTools/ToolSolderPaste.py:135 -msgid "" -"Delete a selection of tools in the Tool Table\n" -"by first selecting a row(s) in the Tool Table." -msgstr "" -"Eliminar una selección de herramientas en la tabla de herramientas\n" -"seleccionando primero una (s) fila (s) en la Tabla de herramientas." - -#: AppTools/ToolIsolation.py:467 -msgid "" -"Specify the type of object to be excepted from isolation.\n" -"It can be of type: Gerber or Geometry.\n" -"What is selected here will dictate the kind\n" -"of objects that will populate the 'Object' combobox." -msgstr "" -"Especifique el tipo de objeto que se excluirá del aislamiento.\n" -"Puede ser de tipo: Gerber o Geometría.\n" -"Lo que se seleccione aquí dictará el tipo\n" -"de objetos que llenarán el cuadro combinado 'Objeto'." - -#: AppTools/ToolIsolation.py:477 -msgid "Object whose area will be removed from isolation geometry." -msgstr "Objeto cuya área se eliminará de la geometría de aislamiento." - -#: AppTools/ToolIsolation.py:513 AppTools/ToolNCC.py:554 -msgid "" -"The type of FlatCAM object to be used as non copper clearing reference.\n" -"It can be Gerber, Excellon or Geometry." -msgstr "" -"El tipo de objeto FlatCAM que se utilizará como referencia de compensación " -"sin cobre.\n" -"Puede ser Gerber, Excellon o Geometry." - -#: AppTools/ToolIsolation.py:559 -msgid "Generate Isolation Geometry" -msgstr "Generar geo. de aislamiento" - -#: AppTools/ToolIsolation.py:567 -msgid "" -"Create a Geometry object with toolpaths to cut \n" -"isolation outside, inside or on both sides of the\n" -"object. For a Gerber object outside means outside\n" -"of the Gerber feature and inside means inside of\n" -"the Gerber feature, if possible at all. This means\n" -"that only if the Gerber feature has openings inside, they\n" -"will be isolated. If what is wanted is to cut isolation\n" -"inside the actual Gerber feature, use a negative tool\n" -"diameter above." -msgstr "" -"Cree un objeto de geometría con trayectorias de herramientas para cortar\n" -"aislamiento afuera, adentro o en ambos lados del\n" -"objeto. Para un objeto Gerber afuera significa afuera\n" -"de la característica de Gerber y dentro significa dentro de\n" -"la característica de Gerber, si es posible. Esto significa\n" -"que solo si la función Gerber tiene aberturas adentro,\n" -"será aislado Si lo que se quiere es cortar el aislamiento\n" -"dentro de la función real de Gerber, use una herramienta negativa\n" -"diámetro arriba." - -#: AppTools/ToolIsolation.py:1266 AppTools/ToolIsolation.py:1426 -#: AppTools/ToolNCC.py:932 AppTools/ToolNCC.py:1449 AppTools/ToolPaint.py:857 -#: AppTools/ToolSolderPaste.py:576 AppTools/ToolSolderPaste.py:901 -#: App_Main.py:4210 -msgid "Please enter a tool diameter with non-zero value, in Float format." -msgstr "" -"Introduzca un diámetro de herramienta con valor distinto de cero, en formato " -"Float." - -#: AppTools/ToolIsolation.py:1270 AppTools/ToolNCC.py:936 -#: AppTools/ToolPaint.py:861 AppTools/ToolSolderPaste.py:580 App_Main.py:4214 -msgid "Adding Tool cancelled" -msgstr "Añadiendo herramienta cancelada" - -#: AppTools/ToolIsolation.py:1420 AppTools/ToolNCC.py:1443 -#: AppTools/ToolPaint.py:1203 AppTools/ToolSolderPaste.py:896 -msgid "Please enter a tool diameter to add, in Float format." -msgstr "Ingrese un diámetro de herramienta para agregar, en formato decimal." - -#: AppTools/ToolIsolation.py:1451 AppTools/ToolIsolation.py:2959 -#: AppTools/ToolNCC.py:1474 AppTools/ToolNCC.py:4079 AppTools/ToolPaint.py:1227 -#: AppTools/ToolPaint.py:3628 AppTools/ToolSolderPaste.py:925 -msgid "Cancelled. Tool already in Tool Table." -msgstr "Cancelado. Herramienta ya en la tabla de herramientas." - -#: AppTools/ToolIsolation.py:1458 AppTools/ToolIsolation.py:2977 -#: AppTools/ToolNCC.py:1481 AppTools/ToolNCC.py:4096 AppTools/ToolPaint.py:1232 -#: AppTools/ToolPaint.py:3645 -msgid "New tool added to Tool Table." -msgstr "Nueva herramienta agregada a la Tabla de herramientas." - -#: AppTools/ToolIsolation.py:1502 AppTools/ToolNCC.py:1525 -#: AppTools/ToolPaint.py:1276 -msgid "Tool from Tool Table was edited." -msgstr "Se editó la herramienta de la tabla de herramientas." - -#: AppTools/ToolIsolation.py:1514 AppTools/ToolNCC.py:1537 -#: AppTools/ToolPaint.py:1288 AppTools/ToolSolderPaste.py:986 -msgid "Cancelled. New diameter value is already in the Tool Table." -msgstr "" -"Cancelado. El nuevo valor del diámetro ya está en la Tabla de herramientas." - -#: AppTools/ToolIsolation.py:1566 AppTools/ToolNCC.py:1589 -#: AppTools/ToolPaint.py:1386 -msgid "Delete failed. Select a tool to delete." -msgstr "Eliminar falló. Seleccione una herramienta para eliminar." - -#: AppTools/ToolIsolation.py:1572 AppTools/ToolNCC.py:1595 -#: AppTools/ToolPaint.py:1392 -msgid "Tool(s) deleted from Tool Table." -msgstr "Herramienta (s) eliminada de la tabla de herramientas." - -#: AppTools/ToolIsolation.py:1620 -msgid "Isolating..." -msgstr "Aislando ..." - -#: AppTools/ToolIsolation.py:1654 -msgid "Failed to create Follow Geometry with tool diameter" -msgstr "Error al crear Seguir Geometría con diámetro de herramienta" - -#: AppTools/ToolIsolation.py:1657 -msgid "Follow Geometry was created with tool diameter" -msgstr "La geometría de seguimiento se creó con el diámetro de la herramienta" - -#: AppTools/ToolIsolation.py:1698 -msgid "Click on a polygon to isolate it." -msgstr "Haga clic en un polígono para aislarlo." - -#: AppTools/ToolIsolation.py:1812 AppTools/ToolIsolation.py:1832 -#: AppTools/ToolIsolation.py:1967 AppTools/ToolIsolation.py:2138 -msgid "Subtracting Geo" -msgstr "Restando Geo" - -#: AppTools/ToolIsolation.py:1816 AppTools/ToolIsolation.py:1971 -#: AppTools/ToolIsolation.py:2142 -msgid "Intersecting Geo" -msgstr "Geo. de intersección" - -#: AppTools/ToolIsolation.py:1865 AppTools/ToolIsolation.py:2032 -#: AppTools/ToolIsolation.py:2199 -msgid "Empty Geometry in" -msgstr "Geometría Vacía en" - -#: AppTools/ToolIsolation.py:2041 -msgid "" -"Partial failure. The geometry was processed with all tools.\n" -"But there are still not-isolated geometry elements. Try to include a tool " -"with smaller diameter." -msgstr "" -"Falla parcial La geometría se procesó con todas las herramientas.\n" -"Pero todavía hay elementos de geometría no aislados. Intente incluir una " -"herramienta con un diámetro más pequeño." - -#: AppTools/ToolIsolation.py:2044 -msgid "" -"The following are coordinates for the copper features that could not be " -"isolated:" -msgstr "" -"Las siguientes son coordenadas para las características de cobre que no se " -"pudieron aislar:" - -#: AppTools/ToolIsolation.py:2356 AppTools/ToolIsolation.py:2465 -#: AppTools/ToolPaint.py:1535 -msgid "Added polygon" -msgstr "Polígono agregado" - -#: AppTools/ToolIsolation.py:2357 AppTools/ToolIsolation.py:2467 -msgid "Click to add next polygon or right click to start isolation." -msgstr "" -"Haga clic para agregar el siguiente polígono o haga clic con el botón " -"derecho para iniciar el aislamiento." - -#: AppTools/ToolIsolation.py:2369 AppTools/ToolPaint.py:1549 -msgid "Removed polygon" -msgstr "Polígono eliminado" - -#: AppTools/ToolIsolation.py:2370 -msgid "Click to add/remove next polygon or right click to start isolation." -msgstr "" -"Haga clic para agregar / eliminar el siguiente polígono o haga clic con el " -"botón derecho para iniciar el aislamiento." - -#: AppTools/ToolIsolation.py:2375 AppTools/ToolPaint.py:1555 -msgid "No polygon detected under click position." -msgstr "No se detectó ningún polígono bajo la posición de clic." - -#: AppTools/ToolIsolation.py:2401 AppTools/ToolPaint.py:1584 -msgid "List of single polygons is empty. Aborting." -msgstr "La lista de polígonos individuales está vacía. Abortar." - -#: AppTools/ToolIsolation.py:2470 -msgid "No polygon in selection." -msgstr "No hay polígono en la selección." - -#: AppTools/ToolIsolation.py:2498 AppTools/ToolNCC.py:1725 -#: AppTools/ToolPaint.py:1619 -msgid "Click the end point of the paint area." -msgstr "Haga clic en el punto final del área de pintura." - -#: AppTools/ToolIsolation.py:2916 AppTools/ToolNCC.py:4036 -#: AppTools/ToolPaint.py:3585 App_Main.py:5318 App_Main.py:5328 -msgid "Tool from DB added in Tool Table." -msgstr "Herramienta de DB agregada en la Tabla de herramientas." - -#: AppTools/ToolMove.py:102 -msgid "MOVE: Click on the Start point ..." -msgstr "MOVER: haga clic en el punto de inicio ..." - -#: AppTools/ToolMove.py:113 -msgid "Cancelled. No object(s) to move." -msgstr "Cancelado. Ningún objeto (s) para mover." - -#: AppTools/ToolMove.py:140 -msgid "MOVE: Click on the Destination point ..." -msgstr "MOVER: haga clic en el punto de destino ..." - -#: AppTools/ToolMove.py:163 -msgid "Moving..." -msgstr "Movedizo..." - -#: AppTools/ToolMove.py:166 -msgid "No object(s) selected." -msgstr "No hay objetos seleccionados." - -#: AppTools/ToolMove.py:221 -msgid "Error when mouse left click." -msgstr "Error al hacer clic con el botón izquierdo del mouse." - -#: AppTools/ToolNCC.py:42 -msgid "Non-Copper Clearing" -msgstr "Compensación sin cobre" - -#: AppTools/ToolNCC.py:86 AppTools/ToolPaint.py:79 -msgid "Obj Type" -msgstr "Tipo de obj" - -#: AppTools/ToolNCC.py:88 -msgid "" -"Specify the type of object to be cleared of excess copper.\n" -"It can be of type: Gerber or Geometry.\n" -"What is selected here will dictate the kind\n" -"of objects that will populate the 'Object' combobox." -msgstr "" -"Especifique el tipo de objeto que se eliminará del exceso de cobre.\n" -"Puede ser de tipo: Gerber o Geometría.\n" -"Lo que se seleccione aquí dictará el tipo\n" -"de objetos que llenarán el cuadro combinado 'Objeto'." - -#: AppTools/ToolNCC.py:110 -msgid "Object to be cleared of excess copper." -msgstr "Objeto a eliminar del exceso de cobre." - -#: AppTools/ToolNCC.py:138 -msgid "" -"This is the Tool Number.\n" -"Non copper clearing will start with the tool with the biggest \n" -"diameter, continuing until there are no more tools.\n" -"Only tools that create NCC clearing geometry will still be present\n" -"in the resulting geometry. This is because with some tools\n" -"this function will not be able to create painting geometry." -msgstr "" -"Este es el número de herramienta.\n" -"La limpieza sin cobre comenzará con la herramienta con la mayor\n" -"diámetro, continuando hasta que no haya más herramientas.\n" -"Solo las herramientas que crean geometría de limpieza NCC seguirán " -"presentes\n" -"en la geometría resultante. Esto es porque con algunas herramientas\n" -"Esta función no podrá crear geometría de pintura." - -#: AppTools/ToolNCC.py:597 AppTools/ToolPaint.py:536 -msgid "Generate Geometry" -msgstr "Generar Geometría" - -#: AppTools/ToolNCC.py:1638 -msgid "Wrong Tool Dia value format entered, use a number." -msgstr "" -"Se ingresó un formato de valor de Diámetro de herramienta incorrecta, use un " -"número." - -#: AppTools/ToolNCC.py:1649 AppTools/ToolPaint.py:1443 -msgid "No selected tools in Tool Table." -msgstr "Seleccione una herramienta en la tabla de herramientas." - -#: AppTools/ToolNCC.py:2005 AppTools/ToolNCC.py:3024 -msgid "NCC Tool. Preparing non-copper polygons." -msgstr "Herramienta NCC. Preparación de polígonos sin cobre." - -#: AppTools/ToolNCC.py:2064 AppTools/ToolNCC.py:3152 -msgid "NCC Tool. Calculate 'empty' area." -msgstr "Herramienta NCC. Calcule el área 'vacía'." - -#: AppTools/ToolNCC.py:2083 AppTools/ToolNCC.py:2192 AppTools/ToolNCC.py:2207 -#: AppTools/ToolNCC.py:3165 AppTools/ToolNCC.py:3270 AppTools/ToolNCC.py:3285 -#: AppTools/ToolNCC.py:3551 AppTools/ToolNCC.py:3652 AppTools/ToolNCC.py:3667 -msgid "Buffering finished" -msgstr "Buffering terminado" - -#: AppTools/ToolNCC.py:2091 AppTools/ToolNCC.py:2214 AppTools/ToolNCC.py:3173 -#: AppTools/ToolNCC.py:3292 AppTools/ToolNCC.py:3558 AppTools/ToolNCC.py:3674 -msgid "Could not get the extent of the area to be non copper cleared." -msgstr "" -"No se pudo obtener la extensión del área que no fue limpiada con cobre." - -#: AppTools/ToolNCC.py:2121 AppTools/ToolNCC.py:2200 AppTools/ToolNCC.py:3200 -#: AppTools/ToolNCC.py:3277 AppTools/ToolNCC.py:3578 AppTools/ToolNCC.py:3659 -msgid "" -"Isolation geometry is broken. Margin is less than isolation tool diameter." -msgstr "" -"La geometría de aislamiento está rota. El margen es menor que el diámetro de " -"la herramienta de aislamiento." - -#: AppTools/ToolNCC.py:2217 AppTools/ToolNCC.py:3296 AppTools/ToolNCC.py:3677 -msgid "The selected object is not suitable for copper clearing." -msgstr "El objeto seleccionado no es adecuado para la limpieza de cobre." - -#: AppTools/ToolNCC.py:2224 AppTools/ToolNCC.py:3303 -msgid "NCC Tool. Finished calculation of 'empty' area." -msgstr "Herramienta NCC. Cálculo finalizado del área 'vacía'." - -#: AppTools/ToolNCC.py:2267 -msgid "Clearing the polygon with the method: lines." -msgstr "Borrar el polígono con el método: líneas." - -#: AppTools/ToolNCC.py:2277 -msgid "Failed. Clearing the polygon with the method: seed." -msgstr "Ha fallado. Borrar el polígono con el método: semilla." - -#: AppTools/ToolNCC.py:2286 -msgid "Failed. Clearing the polygon with the method: standard." -msgstr "Ha fallado. Borrar el polígono con el método: estándar." - -#: AppTools/ToolNCC.py:2300 -msgid "Geometry could not be cleared completely" -msgstr "La geometría no se pudo borrar por completo" - -#: AppTools/ToolNCC.py:2325 AppTools/ToolNCC.py:2327 AppTools/ToolNCC.py:2973 -#: AppTools/ToolNCC.py:2975 -msgid "Non-Copper clearing ..." -msgstr "Limpieza sin cobre ..." - -#: AppTools/ToolNCC.py:2377 AppTools/ToolNCC.py:3120 -msgid "" -"NCC Tool. Finished non-copper polygons. Normal copper clearing task started." -msgstr "" -"Herramienta NCC. Polígonos terminados sin cobre. Se inició la tarea normal " -"de limpieza de cobre." - -#: AppTools/ToolNCC.py:2415 AppTools/ToolNCC.py:2663 -msgid "NCC Tool failed creating bounding box." -msgstr "La herramienta NCC no pudo crear el cuadro delimitador." - -#: AppTools/ToolNCC.py:2430 AppTools/ToolNCC.py:2680 AppTools/ToolNCC.py:3316 -#: AppTools/ToolNCC.py:3702 -msgid "NCC Tool clearing with tool diameter" -msgstr "La Herram. NCC se está limpiando con el diá. de la herramienta" - -#: AppTools/ToolNCC.py:2430 AppTools/ToolNCC.py:2680 AppTools/ToolNCC.py:3316 -#: AppTools/ToolNCC.py:3702 -msgid "started." -msgstr "empezado." - -#: AppTools/ToolNCC.py:2588 AppTools/ToolNCC.py:3477 -msgid "" -"There is no NCC Geometry in the file.\n" -"Usually it means that the tool diameter is too big for the painted " -"geometry.\n" -"Change the painting parameters and try again." -msgstr "" -"No hay geometría NCC en el archivo.\n" -"Por lo general, significa que el diámetro de la herramienta es demasiado " -"grande para la geometría pintada.\n" -"Cambie los parámetros de pintura e intente nuevamente." - -#: AppTools/ToolNCC.py:2597 AppTools/ToolNCC.py:3486 -msgid "NCC Tool clear all done." -msgstr "Herramienta NCC borrar todo hecho." - -#: AppTools/ToolNCC.py:2600 AppTools/ToolNCC.py:3489 -msgid "NCC Tool clear all done but the copper features isolation is broken for" -msgstr "" -"La herramienta NCC borra todo, pero el aislamiento de las características de " -"cobre está roto por" - -#: AppTools/ToolNCC.py:2602 AppTools/ToolNCC.py:2888 AppTools/ToolNCC.py:3491 -#: AppTools/ToolNCC.py:3874 -msgid "tools" -msgstr "herramientas" - -#: AppTools/ToolNCC.py:2884 AppTools/ToolNCC.py:3870 -msgid "NCC Tool Rest Machining clear all done." -msgstr "NCC herramienta de mecanizado de reposo claro todo hecho." - -#: AppTools/ToolNCC.py:2887 AppTools/ToolNCC.py:3873 -msgid "" -"NCC Tool Rest Machining clear all done but the copper features isolation is " -"broken for" -msgstr "" -"El mecanizado de reposo de herramientas NCC está claro, pero el aislamiento " -"de características de cobre está roto por" - -#: AppTools/ToolNCC.py:2985 -msgid "NCC Tool started. Reading parameters." -msgstr "Herramienta NCC iniciada. Parámetros de lectura." - -#: AppTools/ToolNCC.py:3972 -msgid "" -"Try to use the Buffering Type = Full in Preferences -> Gerber General. " -"Reload the Gerber file after this change." -msgstr "" -"Intente utilizar el Tipo de almacenamiento intermedio = Completo en " -"Preferencias -> Gerber General. Vuelva a cargar el archivo Gerber después de " -"este cambio." - -#: AppTools/ToolOptimal.py:85 -msgid "Number of decimals kept for found distances." -msgstr "Número de decimales guardados para distancias encontradas." - -#: AppTools/ToolOptimal.py:93 -msgid "Minimum distance" -msgstr "Distancia minima" - -#: AppTools/ToolOptimal.py:94 -msgid "Display minimum distance between copper features." -msgstr "Mostrar la distancia mínima entre las características de cobre." - -#: AppTools/ToolOptimal.py:98 -msgid "Determined" -msgstr "Determinado" - -#: AppTools/ToolOptimal.py:112 -msgid "Occurring" -msgstr "Ocurriendo" - -#: AppTools/ToolOptimal.py:113 -msgid "How many times this minimum is found." -msgstr "Cuántas veces se encuentra este mínimo." - -#: AppTools/ToolOptimal.py:119 -msgid "Minimum points coordinates" -msgstr "Coordenadas de puntos mínimos" - -#: AppTools/ToolOptimal.py:120 AppTools/ToolOptimal.py:126 -msgid "Coordinates for points where minimum distance was found." -msgstr "Coordenadas para los puntos donde se encontró la distancia mínima." - -#: AppTools/ToolOptimal.py:139 AppTools/ToolOptimal.py:215 -msgid "Jump to selected position" -msgstr "Saltar a la posición seleccionada" - -#: AppTools/ToolOptimal.py:141 AppTools/ToolOptimal.py:217 -msgid "" -"Select a position in the Locations text box and then\n" -"click this button." -msgstr "" -"Seleccione una posición en el cuadro de texto Ubicaciones y luego\n" -"haga clic en este botón." - -#: AppTools/ToolOptimal.py:149 -msgid "Other distances" -msgstr "Otras distancias" - -#: AppTools/ToolOptimal.py:150 -msgid "" -"Will display other distances in the Gerber file ordered from\n" -"the minimum to the maximum, not including the absolute minimum." -msgstr "" -"Mostrará otras distancias en el archivo Gerber ordenado a\n" -"el mínimo al máximo, sin incluir el mínimo absoluto." - -#: AppTools/ToolOptimal.py:155 -msgid "Other distances points coordinates" -msgstr "Otras distancias puntos coordenadas" - -#: AppTools/ToolOptimal.py:156 AppTools/ToolOptimal.py:170 -#: AppTools/ToolOptimal.py:177 AppTools/ToolOptimal.py:194 -#: AppTools/ToolOptimal.py:201 -msgid "" -"Other distances and the coordinates for points\n" -"where the distance was found." -msgstr "" -"Otras distancias y las coordenadas de los puntos.\n" -"donde se encontró la distancia." - -#: AppTools/ToolOptimal.py:169 -msgid "Gerber distances" -msgstr "Distancias de Gerber" - -#: AppTools/ToolOptimal.py:193 -msgid "Points coordinates" -msgstr "Coordenadas de puntos" - -#: AppTools/ToolOptimal.py:225 -msgid "Find Minimum" -msgstr "Encuentra mínimo" - -#: AppTools/ToolOptimal.py:227 -msgid "" -"Calculate the minimum distance between copper features,\n" -"this will allow the determination of the right tool to\n" -"use for isolation or copper clearing." -msgstr "" -"Calcule la distancia mínima entre las características de cobre,\n" -"esto permitirá determinar la herramienta adecuada para\n" -"utilizar para aislamiento o limpieza de cobre." - -#: AppTools/ToolOptimal.py:352 -msgid "Only Gerber objects can be evaluated." -msgstr "Solo se pueden evaluar los objetos de Gerber." - -#: AppTools/ToolOptimal.py:358 -msgid "" -"Optimal Tool. Started to search for the minimum distance between copper " -"features." -msgstr "" -"Herramienta óptima. Comenzó a buscar la distancia mínima entre las " -"características de cobre." - -#: AppTools/ToolOptimal.py:368 -msgid "Optimal Tool. Parsing geometry for aperture" -msgstr "Herramienta óptima. Análisis de geometría para apertura" - -#: AppTools/ToolOptimal.py:379 -msgid "Optimal Tool. Creating a buffer for the object geometry." -msgstr "Herramienta óptima. Crear un búfer para la geometría del objeto." - -#: AppTools/ToolOptimal.py:389 -msgid "" -"The Gerber object has one Polygon as geometry.\n" -"There are no distances between geometry elements to be found." -msgstr "" -"El objeto Gerber tiene un Polígono como geometría.\n" -"No hay distancias entre los elementos de geometría que se encuentran." - -#: AppTools/ToolOptimal.py:394 -msgid "" -"Optimal Tool. Finding the distances between each two elements. Iterations" -msgstr "" -"Herramienta óptima. Encontrar las distancias entre cada dos elementos. " -"Iteraciones" - -#: AppTools/ToolOptimal.py:429 -msgid "Optimal Tool. Finding the minimum distance." -msgstr "Herramienta óptima. Encontrar la distancia mínima." - -#: AppTools/ToolOptimal.py:445 -msgid "Optimal Tool. Finished successfully." -msgstr "Herramienta óptima. Terminado con éxito." - -#: AppTools/ToolPDF.py:91 AppTools/ToolPDF.py:95 -msgid "Open PDF" -msgstr "Abrir PDF" - -#: AppTools/ToolPDF.py:98 -msgid "Open PDF cancelled" -msgstr "Abrir PDF cancelado" - -#: AppTools/ToolPDF.py:122 -msgid "Parsing PDF file ..." -msgstr "Analizando archivo PDF ..." - -#: AppTools/ToolPDF.py:138 App_Main.py:8593 -msgid "Failed to open" -msgstr "Falló al abrir" - -#: AppTools/ToolPDF.py:203 AppTools/ToolPcbWizard.py:445 App_Main.py:8542 -msgid "No geometry found in file" -msgstr "No se encontró geometría en el archivo" - -#: AppTools/ToolPDF.py:206 AppTools/ToolPDF.py:279 -#, python-format -msgid "Rendering PDF layer #%d ..." -msgstr "Renderizando la capa PDF #%d ..." - -#: AppTools/ToolPDF.py:210 AppTools/ToolPDF.py:283 -msgid "Open PDF file failed." -msgstr "El archivo PDF abierto ha fallado." - -#: AppTools/ToolPDF.py:215 AppTools/ToolPDF.py:288 -msgid "Rendered" -msgstr "Rendido" - -#: AppTools/ToolPaint.py:81 -msgid "" -"Specify the type of object to be painted.\n" -"It can be of type: Gerber or Geometry.\n" -"What is selected here will dictate the kind\n" -"of objects that will populate the 'Object' combobox." -msgstr "" -"Especifique el tipo de objeto a pintar.\n" -"Puede ser de tipo: Gerber o Geometría.\n" -"Lo que se seleccione aquí dictará el tipo\n" -"de objetos que llenarán el cuadro combinado 'Objeto'." - -#: AppTools/ToolPaint.py:103 -msgid "Object to be painted." -msgstr "Objeto a pintar." - -#: AppTools/ToolPaint.py:116 -msgid "" -"Tools pool from which the algorithm\n" -"will pick the ones used for painting." -msgstr "" -"Conjunto de herramientas desde el cual el algoritmo\n" -"elegirá los que se usan para pintar." - -#: AppTools/ToolPaint.py:133 -msgid "" -"This is the Tool Number.\n" -"Painting will start with the tool with the biggest diameter,\n" -"continuing until there are no more tools.\n" -"Only tools that create painting geometry will still be present\n" -"in the resulting geometry. This is because with some tools\n" -"this function will not be able to create painting geometry." -msgstr "" -"Este es el número de herramienta.\n" -"La pintura comenzará con la herramienta con el diámetro más grande,\n" -"continuando hasta que no haya más herramientas.\n" -"Solo las herramientas que crean geometría de pintura seguirán presentes\n" -"en la geometría resultante. Esto es porque con algunas herramientas\n" -"Esta función no podrá crear geometría de pintura." - -#: AppTools/ToolPaint.py:145 -msgid "" -"The Tool Type (TT) can be:\n" -"- Circular -> it is informative only. Being circular,\n" -"the cut width in material is exactly the tool diameter.\n" -"- Ball -> informative only and make reference to the Ball type endmill.\n" -"- V-Shape -> it will disable Z-Cut parameter in the resulting geometry UI " -"form\n" -"and enable two additional UI form fields in the resulting geometry: V-Tip " -"Dia and\n" -"V-Tip Angle. Adjusting those two values will adjust the Z-Cut parameter " -"such\n" -"as the cut width into material will be equal with the value in the Tool " -"Diameter\n" -"column of this table.\n" -"Choosing the 'V-Shape' Tool Type automatically will select the Operation " -"Type\n" -"in the resulting geometry as Isolation." -msgstr "" -"El tipo de herramienta (TT) puede ser:\n" -"- Circular -> es solo informativo. Siendo circular,\n" -"El ancho de corte en el material es exactamente el diámetro de la " -"herramienta.\n" -"- Bola -> solo informativo y hacer referencia a la fresa de extremo de " -"bola.\n" -"- Forma V -> deshabilitará el parámetro de corte Z en la forma de interfaz " -"de usuario de geometría resultante\n" -"y habilite dos campos de formulario de UI adicionales en la geometría " -"resultante: V-Tip Dia y\n" -"Ángulo de punta en V. El ajuste de esos dos valores ajustará el parámetro Z-" -"Cut, como\n" -"ya que el ancho de corte en el material será igual al valor en el Diámetro " -"de la herramienta\n" -"columna de esta tabla.\n" -"Al elegir el tipo de herramienta 'Forma de V' automáticamente, se " -"seleccionará el Tipo de operación\n" -"en la geometría resultante como Aislamiento." - -#: AppTools/ToolPaint.py:497 -msgid "" -"The type of FlatCAM object to be used as paint reference.\n" -"It can be Gerber, Excellon or Geometry." -msgstr "" -"El tipo de objeto FlatCAM que se utilizará como referencia de pintura.\n" -"Puede ser Gerber, Excellon o Geometry." - -#: AppTools/ToolPaint.py:538 -msgid "" -"- 'Area Selection' - left mouse click to start selection of the area to be " -"painted.\n" -"Keeping a modifier key pressed (CTRL or SHIFT) will allow to add multiple " -"areas.\n" -"- 'All Polygons' - the Paint will start after click.\n" -"- 'Reference Object' - will do non copper clearing within the area\n" -"specified by another object." -msgstr "" -"- 'Selección de área': haga clic con el botón izquierdo del mouse para " -"iniciar la selección del área a pintar.\n" -"Mantener presionada una tecla modificadora (CTRL o SHIFT) permitirá agregar " -"múltiples áreas.\n" -"- 'Todos los polígonos': la pintura comenzará después de hacer clic.\n" -"- 'Objeto de referencia' - hará una limpieza sin cobre dentro del área\n" -"especificado por otro objeto." - -#: AppTools/ToolPaint.py:1412 -#, python-format -msgid "Could not retrieve object: %s" -msgstr "No se pudo recuperar el objeto: %s" - -#: AppTools/ToolPaint.py:1422 -msgid "Can't do Paint on MultiGeo geometries" -msgstr "No se puede Pintar en geometrías de geo-múltiple" - -#: AppTools/ToolPaint.py:1459 -msgid "Click on a polygon to paint it." -msgstr "Haga clic en un polígono para pintarlo." - -#: AppTools/ToolPaint.py:1472 -msgid "Click the start point of the paint area." -msgstr "Haga clic en el punto de inicio del área de pintura." - -#: AppTools/ToolPaint.py:1537 -msgid "Click to add next polygon or right click to start painting." -msgstr "" -"Haga clic para agregar el siguiente polígono o haga clic con el botón " -"derecho para comenzar a pintar." - -#: AppTools/ToolPaint.py:1550 -msgid "Click to add/remove next polygon or right click to start painting." -msgstr "" -"Haga clic para agregar / eliminar el siguiente polígono o haga clic con el " -"botón derecho para comenzar a pintar." - -#: AppTools/ToolPaint.py:2054 -msgid "Painting polygon with method: lines." -msgstr "Pintura poligonal con método: líneas." - -#: AppTools/ToolPaint.py:2066 -msgid "Failed. Painting polygon with method: seed." -msgstr "Ha fallado. Pintura poligonal con método: semilla." - -#: AppTools/ToolPaint.py:2077 -msgid "Failed. Painting polygon with method: standard." -msgstr "Ha fallado. Pintura poligonal con método: estándar." - -#: AppTools/ToolPaint.py:2093 -msgid "Geometry could not be painted completely" -msgstr "La Geometría no se pudo pintar completamente" - -#: AppTools/ToolPaint.py:2122 AppTools/ToolPaint.py:2125 -#: AppTools/ToolPaint.py:2133 AppTools/ToolPaint.py:2436 -#: AppTools/ToolPaint.py:2439 AppTools/ToolPaint.py:2447 -#: AppTools/ToolPaint.py:2935 AppTools/ToolPaint.py:2938 -#: AppTools/ToolPaint.py:2944 -msgid "Paint Tool." -msgstr "Herramienta de Pintura." - -#: AppTools/ToolPaint.py:2122 AppTools/ToolPaint.py:2125 -#: AppTools/ToolPaint.py:2133 -msgid "Normal painting polygon task started." -msgstr "Se inició la tarea normal de polígono de pintura." - -#: AppTools/ToolPaint.py:2123 AppTools/ToolPaint.py:2437 -#: AppTools/ToolPaint.py:2936 -msgid "Buffering geometry..." -msgstr "Almacenar la geometría ..." - -#: AppTools/ToolPaint.py:2145 AppTools/ToolPaint.py:2454 -#: AppTools/ToolPaint.py:2952 -msgid "No polygon found." -msgstr "No se encontró polígono." - -#: AppTools/ToolPaint.py:2175 -msgid "Painting polygon..." -msgstr "Pintar polígono ..." - -#: AppTools/ToolPaint.py:2185 AppTools/ToolPaint.py:2500 -#: AppTools/ToolPaint.py:2690 AppTools/ToolPaint.py:2998 -#: AppTools/ToolPaint.py:3177 -msgid "Painting with tool diameter = " -msgstr "Pintar con diá de herram. = " - -#: AppTools/ToolPaint.py:2186 AppTools/ToolPaint.py:2501 -#: AppTools/ToolPaint.py:2691 AppTools/ToolPaint.py:2999 -#: AppTools/ToolPaint.py:3178 -msgid "started" -msgstr "empezado" - -#: AppTools/ToolPaint.py:2211 AppTools/ToolPaint.py:2527 -#: AppTools/ToolPaint.py:2717 AppTools/ToolPaint.py:3025 -#: AppTools/ToolPaint.py:3204 -msgid "Margin parameter too big. Tool is not used" -msgstr "El parámetro de margen es demasiado grande. La herramienta no se usa" - -#: AppTools/ToolPaint.py:2269 AppTools/ToolPaint.py:2596 -#: AppTools/ToolPaint.py:2774 AppTools/ToolPaint.py:3088 -#: AppTools/ToolPaint.py:3266 -msgid "" -"Could not do Paint. Try a different combination of parameters. Or a " -"different strategy of paint" -msgstr "" -"No se pudo Pintar. Pruebe con una combinación diferente de parámetros. O una " -"estrategia diferente de pintura" - -#: AppTools/ToolPaint.py:2326 AppTools/ToolPaint.py:2662 -#: AppTools/ToolPaint.py:2831 AppTools/ToolPaint.py:3149 -#: AppTools/ToolPaint.py:3328 -msgid "" -"There is no Painting Geometry in the file.\n" -"Usually it means that the tool diameter is too big for the painted " -"geometry.\n" -"Change the painting parameters and try again." -msgstr "" -"No hay Geometría de pintura en el archivo.\n" -"Por lo general, significa que el diámetro de la herramienta es demasiado " -"grande para la geometría pintada.\n" -"Cambie los parámetros de pintura e intente nuevamente." - -#: AppTools/ToolPaint.py:2349 -msgid "Paint Single failed." -msgstr "La pintura sola falló." - -#: AppTools/ToolPaint.py:2355 -msgid "Paint Single Done." -msgstr "Pintar solo hecho." - -#: AppTools/ToolPaint.py:2357 AppTools/ToolPaint.py:2867 -#: AppTools/ToolPaint.py:3364 -msgid "Polygon Paint started ..." -msgstr "Polygon Pinta comenzó ..." - -#: AppTools/ToolPaint.py:2436 AppTools/ToolPaint.py:2439 -#: AppTools/ToolPaint.py:2447 -msgid "Paint all polygons task started." -msgstr "La tarea de pintar todos los polígonos comenzó." - -#: AppTools/ToolPaint.py:2478 AppTools/ToolPaint.py:2976 -msgid "Painting polygons..." -msgstr "Pintar polígonos ..." - -#: AppTools/ToolPaint.py:2671 -msgid "Paint All Done." -msgstr "Pintar todo listo." - -#: AppTools/ToolPaint.py:2840 AppTools/ToolPaint.py:3337 -msgid "Paint All with Rest-Machining done." -msgstr "Pinte Todo con el mecanizado de descanso hecho." - -#: AppTools/ToolPaint.py:2859 -msgid "Paint All failed." -msgstr "Pintar todo falló." - -#: AppTools/ToolPaint.py:2865 -msgid "Paint Poly All Done." -msgstr "Pintar todos los polígonos está hecho." - -#: AppTools/ToolPaint.py:2935 AppTools/ToolPaint.py:2938 -#: AppTools/ToolPaint.py:2944 -msgid "Painting area task started." -msgstr "La tarea del área de pintura comenzó." - -#: AppTools/ToolPaint.py:3158 -msgid "Paint Area Done." -msgstr "Área de pintura hecha." - -#: AppTools/ToolPaint.py:3356 -msgid "Paint Area failed." -msgstr "Pintar el área falló." - -#: AppTools/ToolPaint.py:3362 -msgid "Paint Poly Area Done." -msgstr "Pintar el área de polígonos está hecho." - -#: AppTools/ToolPanelize.py:55 -msgid "" -"Specify the type of object to be panelized\n" -"It can be of type: Gerber, Excellon or Geometry.\n" -"The selection here decide the type of objects that will be\n" -"in the Object combobox." -msgstr "" -"Especifique el tipo de objeto a ser panelizado\n" -"Puede ser de tipo: Gerber, Excellon o Geometry.\n" -"La selección aquí decide el tipo de objetos que serán\n" -"en el cuadro combinado Objeto." - -#: AppTools/ToolPanelize.py:88 -msgid "" -"Object to be panelized. This means that it will\n" -"be duplicated in an array of rows and columns." -msgstr "" -"Objeto a ser panelizado. Esto significa que lo hará\n" -"ser duplicado en una matriz de filas y columnas." - -#: AppTools/ToolPanelize.py:100 -msgid "Penelization Reference" -msgstr "Ref. de penelización" - -#: AppTools/ToolPanelize.py:102 -msgid "" -"Choose the reference for panelization:\n" -"- Object = the bounding box of a different object\n" -"- Bounding Box = the bounding box of the object to be panelized\n" -"\n" -"The reference is useful when doing panelization for more than one\n" -"object. The spacings (really offsets) will be applied in reference\n" -"to this reference object therefore maintaining the panelized\n" -"objects in sync." -msgstr "" -"Elija la referencia para la panelización:\n" -"- Objeto = el cuadro delimitador de un objeto diferente\n" -"- Cuadro delimitador = el cuadro delimitador del objeto a panelizar\n" -"\n" -"La referencia es útil cuando se hace panelización para más de uno.\n" -"objeto. Los espacios (realmente desplazados) se aplicarán en referencia\n" -"a este objeto de referencia, por lo tanto, manteniendo el panelizado\n" -"objetos sincronizados." - -#: AppTools/ToolPanelize.py:123 -msgid "Box Type" -msgstr "Tipo de caja" - -#: AppTools/ToolPanelize.py:125 -msgid "" -"Specify the type of object to be used as an container for\n" -"panelization. It can be: Gerber or Geometry type.\n" -"The selection here decide the type of objects that will be\n" -"in the Box Object combobox." -msgstr "" -"Especifique el tipo de objeto que se utilizará como contenedor para\n" -"panelización. Puede ser: tipo Gerber o Geometría.\n" -"La selección aquí decide el tipo de objetos que serán\n" -"en el cuadro combinado Objeto de caja." - -#: AppTools/ToolPanelize.py:139 -msgid "" -"The actual object that is used as container for the\n" -" selected object that is to be panelized." -msgstr "" -"El objeto real que se utiliza como contenedor para\n" -" objeto seleccionado que se va a panelizar." - -#: AppTools/ToolPanelize.py:149 -msgid "Panel Data" -msgstr "Datos del panel" - -#: AppTools/ToolPanelize.py:151 -msgid "" -"This informations will shape the resulting panel.\n" -"The number of rows and columns will set how many\n" -"duplicates of the original geometry will be generated.\n" -"\n" -"The spacings will set the distance between any two\n" -"elements of the panel array." -msgstr "" -"Esta información dará forma al panel resultante.\n" -"El número de filas y columnas establecerá cuántos\n" -"Se generarán duplicados de la geometría original.\n" -"\n" -"Los espacios establecerán la distancia entre dos\n" -"elementos de la matriz de paneles." - -#: AppTools/ToolPanelize.py:214 -msgid "" -"Choose the type of object for the panel object:\n" -"- Geometry\n" -"- Gerber" -msgstr "" -"Elija el tipo de objeto para el objeto del panel:\n" -"- Geometría\n" -"- Gerber" - -#: AppTools/ToolPanelize.py:222 -msgid "Constrain panel within" -msgstr "Restrinja el panel dentro de" - -#: AppTools/ToolPanelize.py:263 -msgid "Panelize Object" -msgstr "Panelizar objeto" - -#: AppTools/ToolPanelize.py:265 AppTools/ToolRulesCheck.py:501 -msgid "" -"Panelize the specified object around the specified box.\n" -"In other words it creates multiple copies of the source object,\n" -"arranged in a 2D array of rows and columns." -msgstr "" -"Panelizar el objeto especificado alrededor del cuadro especificado.\n" -"En otras palabras, crea múltiples copias del objeto fuente,\n" -"dispuestos en una matriz 2D de filas y columnas." - -#: AppTools/ToolPanelize.py:333 -msgid "Panel. Tool" -msgstr "Herra. de Panel" - -#: AppTools/ToolPanelize.py:468 -msgid "Columns or Rows are zero value. Change them to a positive integer." -msgstr "" -"Las columnas o filas son de valor cero. Cámbialos a un entero positivo." - -#: AppTools/ToolPanelize.py:505 -msgid "Generating panel ... " -msgstr "Panel generador … " - -#: AppTools/ToolPanelize.py:788 -msgid "Generating panel ... Adding the Gerber code." -msgstr "Generando panel ... Agregando el código Gerber." - -#: AppTools/ToolPanelize.py:796 -msgid "Generating panel... Spawning copies" -msgstr "Generando panel ... Generando copias" - -#: AppTools/ToolPanelize.py:803 -msgid "Panel done..." -msgstr "Panel hecho ..." - -#: AppTools/ToolPanelize.py:806 -#, python-brace-format -msgid "" -"{text} Too big for the constrain area. Final panel has {col} columns and " -"{row} rows" -msgstr "" -"{text} Demasiado grande para el área de restricción. El panel final tiene " -"{col} columnas y {row} filas" - -#: AppTools/ToolPanelize.py:815 -msgid "Panel created successfully." -msgstr "Panel creado con éxito." - -#: AppTools/ToolPcbWizard.py:31 -msgid "PcbWizard Import Tool" -msgstr "Herra. de import. PcbWizard" - -#: AppTools/ToolPcbWizard.py:40 -msgid "Import 2-file Excellon" -msgstr "Importar Excellon de 2 archivos" - -#: AppTools/ToolPcbWizard.py:51 -msgid "Load files" -msgstr "Cargar archivos" - -#: AppTools/ToolPcbWizard.py:57 -msgid "Excellon file" -msgstr "Archivo Excellon" - -#: AppTools/ToolPcbWizard.py:59 -msgid "" -"Load the Excellon file.\n" -"Usually it has a .DRL extension" -msgstr "" -"Cargue el archivo Excellon.\n" -"Por lo general, tiene una extensión .DRL" - -#: AppTools/ToolPcbWizard.py:65 -msgid "INF file" -msgstr "Archivo INF" - -#: AppTools/ToolPcbWizard.py:67 -msgid "Load the INF file." -msgstr "Cargue el archivo INF." - -#: AppTools/ToolPcbWizard.py:79 -msgid "Tool Number" -msgstr "Numero de Herram" - -#: AppTools/ToolPcbWizard.py:81 -msgid "Tool diameter in file units." -msgstr "Diámetro de herramienta en unidades de archivo." - -#: AppTools/ToolPcbWizard.py:87 -msgid "Excellon format" -msgstr "Formato Excellon" - -#: AppTools/ToolPcbWizard.py:95 -msgid "Int. digits" -msgstr "Dígitos enteros" - -#: AppTools/ToolPcbWizard.py:97 -msgid "The number of digits for the integral part of the coordinates." -msgstr "El número de dígitos para la parte integral de las coordenadas." - -#: AppTools/ToolPcbWizard.py:104 -msgid "Frac. digits" -msgstr "Dígitos Fraccio" - -#: AppTools/ToolPcbWizard.py:106 -msgid "The number of digits for the fractional part of the coordinates." -msgstr "El número de dígitos para la parte fraccionaria de las coordenadas." - -#: AppTools/ToolPcbWizard.py:113 -msgid "No Suppression" -msgstr "Sin supresión" - -#: AppTools/ToolPcbWizard.py:114 -msgid "Zeros supp." -msgstr "Supresión de Ceros" - -#: AppTools/ToolPcbWizard.py:116 -msgid "" -"The type of zeros suppression used.\n" -"Can be of type:\n" -"- LZ = leading zeros are kept\n" -"- TZ = trailing zeros are kept\n" -"- No Suppression = no zero suppression" -msgstr "" -"El tipo de supresión de ceros utilizada.\n" -"Puede ser de tipo:\n" -"- LZ = los ceros iniciales se mantienen\n" -"- TZ = los ceros finales se mantienen\n" -"- Sin supresión = sin supresión de cero" - -#: AppTools/ToolPcbWizard.py:129 -msgid "" -"The type of units that the coordinates and tool\n" -"diameters are using. Can be INCH or MM." -msgstr "" -"El tipo de unidades que las coordenadas y la herramienta\n" -"diámetros están utilizando. Puede ser PULGADAS o MM." - -#: AppTools/ToolPcbWizard.py:136 -msgid "Import Excellon" -msgstr "Importar Excellon" - -#: AppTools/ToolPcbWizard.py:138 -msgid "" -"Import in FlatCAM an Excellon file\n" -"that store it's information's in 2 files.\n" -"One usually has .DRL extension while\n" -"the other has .INF extension." -msgstr "" -"Importar en FlatCAM un archivo Excellon\n" -"que almacena su información en 2 archivos.\n" -"Uno generalmente tiene la extensión .DRL mientras\n" -"el otro tiene extensión .INF." - -#: AppTools/ToolPcbWizard.py:197 -msgid "PCBWizard Tool" -msgstr "Herra. PCBWizard" - -#: AppTools/ToolPcbWizard.py:291 AppTools/ToolPcbWizard.py:295 -msgid "Load PcbWizard Excellon file" -msgstr "Cargar archivo PcbWizard Excellon" - -#: AppTools/ToolPcbWizard.py:314 AppTools/ToolPcbWizard.py:318 -msgid "Load PcbWizard INF file" -msgstr "Cargar archivo PcbWizard INF" - -#: AppTools/ToolPcbWizard.py:366 -msgid "" -"The INF file does not contain the tool table.\n" -"Try to open the Excellon file from File -> Open -> Excellon\n" -"and edit the drill diameters manually." -msgstr "" -"El archivo INF no contiene la tabla de herramientas.\n" -"Intente abrir el archivo Excellon desde Archivo -> Abrir -> Excellon\n" -"y edite los diámetros de taladro manualmente." - -#: AppTools/ToolPcbWizard.py:387 -msgid "PcbWizard .INF file loaded." -msgstr "PcbWizard .INF archivo cargado." - -#: AppTools/ToolPcbWizard.py:392 -msgid "Main PcbWizard Excellon file loaded." -msgstr "Archivo PcbWizard Excellon principal cargado." - -#: AppTools/ToolPcbWizard.py:424 App_Main.py:8520 -msgid "This is not Excellon file." -msgstr "Este no es un archivo de Excellon." - -#: AppTools/ToolPcbWizard.py:427 -msgid "Cannot parse file" -msgstr "No se puede analizar el archivo" - -#: AppTools/ToolPcbWizard.py:450 -msgid "Importing Excellon." -msgstr "Importando Excellon." - -#: AppTools/ToolPcbWizard.py:457 -msgid "Import Excellon file failed." -msgstr "Error al importar el archivo Excellon." - -#: AppTools/ToolPcbWizard.py:464 -msgid "Imported" -msgstr "Importado" - -#: AppTools/ToolPcbWizard.py:467 -msgid "Excellon merging is in progress. Please wait..." -msgstr "La fusión de Excellon está en progreso. Por favor espera..." - -#: AppTools/ToolPcbWizard.py:469 -msgid "The imported Excellon file is empty." -msgstr "El archivo Excellon importado es Ninguno." - -#: AppTools/ToolProperties.py:116 App_Main.py:4692 App_Main.py:6803 -#: App_Main.py:6903 App_Main.py:6944 App_Main.py:6985 App_Main.py:7027 -#: App_Main.py:7069 App_Main.py:7113 App_Main.py:7157 App_Main.py:7681 -#: App_Main.py:7685 -msgid "No object selected." -msgstr "Ningún objeto seleccionado." - -#: AppTools/ToolProperties.py:131 -msgid "Object Properties are displayed." -msgstr "Se muestran las propiedades del objeto." - -#: AppTools/ToolProperties.py:136 -msgid "Properties Tool" -msgstr "Herra. de Propiedades" - -#: AppTools/ToolProperties.py:150 -msgid "TYPE" -msgstr "TIPO" - -#: AppTools/ToolProperties.py:151 -msgid "NAME" -msgstr "NOMBRE" - -#: AppTools/ToolProperties.py:153 -msgid "Dimensions" -msgstr "Dimensiones" - -#: AppTools/ToolProperties.py:181 -msgid "Geo Type" -msgstr "Tipo de Geo" - -#: AppTools/ToolProperties.py:184 -msgid "Single-Geo" -msgstr "Geo. individual" - -#: AppTools/ToolProperties.py:185 -msgid "Multi-Geo" -msgstr "Geo. múltiple" - -#: AppTools/ToolProperties.py:196 -msgid "Calculating dimensions ... Please wait." -msgstr "Calculando dimensiones ... Por favor espere." - -#: AppTools/ToolProperties.py:339 AppTools/ToolProperties.py:343 -#: AppTools/ToolProperties.py:345 -msgid "Inch" -msgstr "Pulgada" - -#: AppTools/ToolProperties.py:339 AppTools/ToolProperties.py:344 -#: AppTools/ToolProperties.py:346 -msgid "Metric" -msgstr "Métrico" - -#: AppTools/ToolProperties.py:421 AppTools/ToolProperties.py:486 -msgid "Drills number" -msgstr "Número de taladros" - -#: AppTools/ToolProperties.py:422 AppTools/ToolProperties.py:488 -msgid "Slots number" -msgstr "Número de tragamonedas" - -#: AppTools/ToolProperties.py:424 -msgid "Drills total number:" -msgstr "Número total de taladros:" - -#: AppTools/ToolProperties.py:425 -msgid "Slots total number:" -msgstr "Número total de tragamonedas:" - -#: AppTools/ToolProperties.py:452 AppTools/ToolProperties.py:455 -#: AppTools/ToolProperties.py:458 AppTools/ToolProperties.py:483 -msgid "Present" -msgstr "Presente" - -#: AppTools/ToolProperties.py:453 AppTools/ToolProperties.py:484 -msgid "Solid Geometry" -msgstr "Geometria solida" - -#: AppTools/ToolProperties.py:456 -msgid "GCode Text" -msgstr "GCode texto" - -#: AppTools/ToolProperties.py:459 -msgid "GCode Geometry" -msgstr "Geometría GCode" - -#: AppTools/ToolProperties.py:462 -msgid "Data" -msgstr "Datos" - -#: AppTools/ToolProperties.py:495 -msgid "Depth of Cut" -msgstr "Profundidad del corte" - -#: AppTools/ToolProperties.py:507 -msgid "Clearance Height" -msgstr "Altura libre" - -#: AppTools/ToolProperties.py:539 -msgid "Routing time" -msgstr "Tiempo de enrutamiento" - -#: AppTools/ToolProperties.py:546 -msgid "Travelled distance" -msgstr "Distancia recorrida" - -#: AppTools/ToolProperties.py:564 -msgid "Width" -msgstr "Anchura" - -#: AppTools/ToolProperties.py:570 AppTools/ToolProperties.py:578 -msgid "Box Area" -msgstr "Área de caja" - -#: AppTools/ToolProperties.py:573 AppTools/ToolProperties.py:581 -msgid "Convex_Hull Area" -msgstr "Área de casco convexo" - -#: AppTools/ToolProperties.py:588 AppTools/ToolProperties.py:591 -msgid "Copper Area" -msgstr "Área de cobre" - -#: AppTools/ToolPunchGerber.py:30 AppTools/ToolPunchGerber.py:323 -msgid "Punch Gerber" -msgstr "Gerber Perforadora" - -#: AppTools/ToolPunchGerber.py:65 -msgid "Gerber into which to punch holes" -msgstr "Gerber en el que hacer agujeros" - -#: AppTools/ToolPunchGerber.py:85 -msgid "ALL" -msgstr "TODAS" - -#: AppTools/ToolPunchGerber.py:166 -msgid "" -"Remove the geometry of Excellon from the Gerber to create the holes in pads." -msgstr "" -"Retire la geometría de Excellon del Gerber para crear los agujeros en las " -"almohadillas." - -#: AppTools/ToolPunchGerber.py:325 -msgid "" -"Create a Gerber object from the selected object, within\n" -"the specified box." -msgstr "" -"Cree un objeto Gerber a partir del objeto seleccionado, dentro de\n" -"El cuadro especificado." - -#: AppTools/ToolPunchGerber.py:425 -msgid "Punch Tool" -msgstr "Herram. de Perforación" - -#: AppTools/ToolPunchGerber.py:599 -msgid "The value of the fixed diameter is 0.0. Aborting." -msgstr "El valor del diámetro fijo es 0.0. Abortar." - -#: AppTools/ToolPunchGerber.py:602 -msgid "" -"Could not generate punched hole Gerber because the punch hole size is bigger " -"than some of the apertures in the Gerber object." -msgstr "" -"No se pudo generar el agujero perforado Gerber porque el tamaño del agujero " -"perforado es mayor que algunas de las aberturas en el objeto Gerber." - -#: AppTools/ToolPunchGerber.py:665 -msgid "" -"Could not generate punched hole Gerber because the newly created object " -"geometry is the same as the one in the source object geometry..." -msgstr "" -"No se pudo generar el agujero perforado Gerber porque la geometría del " -"objeto recién creada es la misma que la de la geometría del objeto de " -"origen ..." - -#: AppTools/ToolQRCode.py:80 -msgid "Gerber Object to which the QRCode will be added." -msgstr "Objeto Gerber al que se agregará el QRCode." - -#: AppTools/ToolQRCode.py:116 -msgid "The parameters used to shape the QRCode." -msgstr "Los parámetros utilizados para dar forma al QRCode." - -#: AppTools/ToolQRCode.py:216 -msgid "Export QRCode" -msgstr "Exportar el código QR" - -#: AppTools/ToolQRCode.py:218 -msgid "" -"Show a set of controls allowing to export the QRCode\n" -"to a SVG file or an PNG file." -msgstr "" -"Mostrar un conjunto de controles que permiten exportar el QRCode\n" -"a un archivo SVG o un archivo PNG." - -#: AppTools/ToolQRCode.py:257 -msgid "Transparent back color" -msgstr "Color de fondo transparente" - -#: AppTools/ToolQRCode.py:282 -msgid "Export QRCode SVG" -msgstr "Exportar el QRCode SVG" - -#: AppTools/ToolQRCode.py:284 -msgid "Export a SVG file with the QRCode content." -msgstr "Exporte un archivo SVG con el contenido de QRCode." - -#: AppTools/ToolQRCode.py:295 -msgid "Export QRCode PNG" -msgstr "Exportar el QRCode PNG" - -#: AppTools/ToolQRCode.py:297 -msgid "Export a PNG image file with the QRCode content." -msgstr "Exporte un archivo de imagen PNG con el contenido de QRCode." - -#: AppTools/ToolQRCode.py:308 -msgid "Insert QRCode" -msgstr "Insertar QRCode" - -#: AppTools/ToolQRCode.py:310 -msgid "Create the QRCode object." -msgstr "Crea el objeto QRCode." - -#: AppTools/ToolQRCode.py:424 AppTools/ToolQRCode.py:759 -#: AppTools/ToolQRCode.py:808 -msgid "Cancelled. There is no QRCode Data in the text box." -msgstr "Cancelado. No hay datos de QRCode en el cuadro de texto." - -#: AppTools/ToolQRCode.py:443 -msgid "Generating QRCode geometry" -msgstr "Generando geometría QRCode" - -#: AppTools/ToolQRCode.py:483 -msgid "Click on the Destination point ..." -msgstr "Haga clic en el punto de destino ..." - -#: AppTools/ToolQRCode.py:598 -msgid "QRCode Tool done." -msgstr "Herramienta QRCode hecha." - -#: AppTools/ToolQRCode.py:791 AppTools/ToolQRCode.py:795 -msgid "Export PNG" -msgstr "Exportar PNG" - -#: AppTools/ToolQRCode.py:838 AppTools/ToolQRCode.py:842 App_Main.py:6835 -#: App_Main.py:6839 -msgid "Export SVG" -msgstr "Exportar SVG" - -#: AppTools/ToolRulesCheck.py:33 -msgid "Check Rules" -msgstr "Verificar Reglas" - -#: AppTools/ToolRulesCheck.py:63 -msgid "Gerber objects for which to check rules." -msgstr "Objetos de Gerber para los cuales verificar las reglas." - -#: AppTools/ToolRulesCheck.py:78 -msgid "Top" -msgstr "Top" - -#: AppTools/ToolRulesCheck.py:80 -msgid "The Top Gerber Copper object for which rules are checked." -msgstr "El objeto de cobre Top Gerber para el que se verifican las reglas." - -#: AppTools/ToolRulesCheck.py:96 -msgid "Bottom" -msgstr "Inferior" - -#: AppTools/ToolRulesCheck.py:98 -msgid "The Bottom Gerber Copper object for which rules are checked." -msgstr "" -"El objeto de cobre de Gerber inferior para el que se verifican las reglas." - -#: AppTools/ToolRulesCheck.py:114 -msgid "SM Top" -msgstr "SM Top" - -#: AppTools/ToolRulesCheck.py:116 -msgid "The Top Gerber Solder Mask object for which rules are checked." -msgstr "" -"El objeto Máscara de soldadura de Gerber superior para el que se verifican " -"las reglas." - -#: AppTools/ToolRulesCheck.py:132 -msgid "SM Bottom" -msgstr "SM Inferior" - -#: AppTools/ToolRulesCheck.py:134 -msgid "The Bottom Gerber Solder Mask object for which rules are checked." -msgstr "" -"El objeto de máscara de soldadura de Gerber inferior para el que se " -"verifican las reglas." - -#: AppTools/ToolRulesCheck.py:150 -msgid "Silk Top" -msgstr "Top de serigrafía" - -#: AppTools/ToolRulesCheck.py:152 -msgid "The Top Gerber Silkscreen object for which rules are checked." -msgstr "" -"El objeto de serigrafía Top Gerber para el que se verifican las reglas." - -#: AppTools/ToolRulesCheck.py:168 -msgid "Silk Bottom" -msgstr "Serigrafía Inferior" - -#: AppTools/ToolRulesCheck.py:170 -msgid "The Bottom Gerber Silkscreen object for which rules are checked." -msgstr "" -"El objeto Serigrafía inferior de Gerber para el que se verifican las reglas." - -#: AppTools/ToolRulesCheck.py:188 -msgid "The Gerber Outline (Cutout) object for which rules are checked." -msgstr "" -"El objeto Esquema de Gerber (Recorte) para el que se verifican las reglas." - -#: AppTools/ToolRulesCheck.py:201 -msgid "Excellon objects for which to check rules." -msgstr "Excellon objetos para los cuales verificar las reglas." - -#: AppTools/ToolRulesCheck.py:213 -msgid "Excellon 1" -msgstr "Excellon 1" - -#: AppTools/ToolRulesCheck.py:215 -msgid "" -"Excellon object for which to check rules.\n" -"Holds the plated holes or a general Excellon file content." -msgstr "" -"Objeto Excellon para el cual verificar las reglas.\n" -"Contiene los agujeros chapados o un contenido general del archivo Excellon." - -#: AppTools/ToolRulesCheck.py:232 -msgid "Excellon 2" -msgstr "Excellon 2" - -#: AppTools/ToolRulesCheck.py:234 -msgid "" -"Excellon object for which to check rules.\n" -"Holds the non-plated holes." -msgstr "" -"Objeto Excellon para el cual verificar las reglas.\n" -"Sostiene los agujeros no chapados." - -#: AppTools/ToolRulesCheck.py:247 -msgid "All Rules" -msgstr "Todas las reglas" - -#: AppTools/ToolRulesCheck.py:249 -msgid "This check/uncheck all the rules below." -msgstr "Esto marca / desmarca todas las reglas a continuación." - -#: AppTools/ToolRulesCheck.py:499 -msgid "Run Rules Check" -msgstr "Ejecutar Reglas Verificar" - -#: AppTools/ToolRulesCheck.py:1158 AppTools/ToolRulesCheck.py:1218 -#: AppTools/ToolRulesCheck.py:1255 AppTools/ToolRulesCheck.py:1327 -#: AppTools/ToolRulesCheck.py:1381 AppTools/ToolRulesCheck.py:1419 -#: AppTools/ToolRulesCheck.py:1484 -msgid "Value is not valid." -msgstr "El valor no es valido." - -#: AppTools/ToolRulesCheck.py:1172 -msgid "TOP -> Copper to Copper clearance" -msgstr "ARRIBA -> Separación de Cobre a Cobre" - -#: AppTools/ToolRulesCheck.py:1183 -msgid "BOTTOM -> Copper to Copper clearance" -msgstr "ABAJO -> Separación de Cobre a Cobre" - -#: AppTools/ToolRulesCheck.py:1188 AppTools/ToolRulesCheck.py:1282 -#: AppTools/ToolRulesCheck.py:1446 -msgid "" -"At least one Gerber object has to be selected for this rule but none is " -"selected." -msgstr "" -"Se debe seleccionar al menos un objeto Gerber para esta regla, pero no se " -"selecciona ninguno." - -#: AppTools/ToolRulesCheck.py:1224 -msgid "" -"One of the copper Gerber objects or the Outline Gerber object is not valid." -msgstr "" -"Uno de los objetos de cobre de Gerber o el objeto de contorno de Gerber no " -"es válido." - -#: AppTools/ToolRulesCheck.py:1237 AppTools/ToolRulesCheck.py:1401 -msgid "" -"Outline Gerber object presence is mandatory for this rule but it is not " -"selected." -msgstr "" -"La presencia del objeto Contorno Gerber es obligatoria para esta regla, pero " -"no está seleccionada." - -#: AppTools/ToolRulesCheck.py:1254 AppTools/ToolRulesCheck.py:1281 -msgid "Silk to Silk clearance" -msgstr "Distancia de Serigrafía a Serigrafía" - -#: AppTools/ToolRulesCheck.py:1267 -msgid "TOP -> Silk to Silk clearance" -msgstr "ARRIBA -> Distancia de Serigrafía a Serigrafía" - -#: AppTools/ToolRulesCheck.py:1277 -msgid "BOTTOM -> Silk to Silk clearance" -msgstr "ABAJO -> Distancia de Serigrafía a Serigrafía" - -#: AppTools/ToolRulesCheck.py:1333 -msgid "One or more of the Gerber objects is not valid." -msgstr "Uno o más de los objetos de Gerber no son válidos." - -#: AppTools/ToolRulesCheck.py:1341 -msgid "TOP -> Silk to Solder Mask Clearance" -msgstr "ARRIBA -> Distancia entre la Máscara de Soldadura y la Serigrafía" - -#: AppTools/ToolRulesCheck.py:1347 -msgid "BOTTOM -> Silk to Solder Mask Clearance" -msgstr "ABAJO -> Distancia entre la Máscara de Soldadura y la Serigrafía" - -#: AppTools/ToolRulesCheck.py:1351 -msgid "" -"Both Silk and Solder Mask Gerber objects has to be either both Top or both " -"Bottom." -msgstr "" -"Tanto los objetos de Serigrafía como los de Máscara de soldadura Gerber " -"deben ser tanto Superior como Inferior." - -#: AppTools/ToolRulesCheck.py:1387 -msgid "" -"One of the Silk Gerber objects or the Outline Gerber object is not valid." -msgstr "" -"Uno de los objetos de Serigrafía Gerber o el objeto Contorno Gerber no es " -"válido." - -#: AppTools/ToolRulesCheck.py:1431 -msgid "TOP -> Minimum Solder Mask Sliver" -msgstr "ARRIBA -> Astilla de máscara de soldadura mínima" - -#: AppTools/ToolRulesCheck.py:1441 -msgid "BOTTOM -> Minimum Solder Mask Sliver" -msgstr "ABAJO -> Astilla de máscara de soldadura mínima" - -#: AppTools/ToolRulesCheck.py:1490 -msgid "One of the Copper Gerber objects or the Excellon objects is not valid." -msgstr "Uno de los objetos de Cobre Gerber u objetos de Excellon no es válido." - -#: AppTools/ToolRulesCheck.py:1506 -msgid "" -"Excellon object presence is mandatory for this rule but none is selected." -msgstr "" -"La presencia de objetos Excellon es obligatoria para esta regla, pero no se " -"selecciona ninguna." - -#: AppTools/ToolRulesCheck.py:1579 AppTools/ToolRulesCheck.py:1592 -#: AppTools/ToolRulesCheck.py:1603 AppTools/ToolRulesCheck.py:1616 -msgid "STATUS" -msgstr "ESTADO" - -#: AppTools/ToolRulesCheck.py:1582 AppTools/ToolRulesCheck.py:1606 -msgid "FAILED" -msgstr "HA FALLADO" - -#: AppTools/ToolRulesCheck.py:1595 AppTools/ToolRulesCheck.py:1619 -msgid "PASSED" -msgstr "PASADO" - -#: AppTools/ToolRulesCheck.py:1596 AppTools/ToolRulesCheck.py:1620 -msgid "Violations: There are no violations for the current rule." -msgstr "Infracciones: no hay infracciones para la regla actual." - -#: AppTools/ToolShell.py:59 -msgid "Clear the text." -msgstr "Borrar el texto," - -#: AppTools/ToolShell.py:91 AppTools/ToolShell.py:93 -msgid "...processing..." -msgstr "…procesando..." - -#: AppTools/ToolSolderPaste.py:37 -msgid "Solder Paste Tool" -msgstr "Herra. de Pasta de Soldadura" - -#: AppTools/ToolSolderPaste.py:68 -msgid "Gerber Solderpaste object." -msgstr "Objeto de pasta de soldadura Gerber." - -#: AppTools/ToolSolderPaste.py:81 -msgid "" -"Tools pool from which the algorithm\n" -"will pick the ones used for dispensing solder paste." -msgstr "" -"Conjunto de herramientas desde el cual el algoritmo\n" -"elegirá los que se usan para dispensar pasta de soldadura." - -#: AppTools/ToolSolderPaste.py:96 -msgid "" -"This is the Tool Number.\n" -"The solder dispensing will start with the tool with the biggest \n" -"diameter, continuing until there are no more Nozzle tools.\n" -"If there are no longer tools but there are still pads not covered\n" -" with solder paste, the app will issue a warning message box." -msgstr "" -"Este es el número de herramienta.\n" -"La dispensación de soldadura comenzará con la herramienta con el mayor\n" -"diámetro, continuando hasta que no haya más herramientas de boquilla.\n" -"Si ya no hay herramientas pero todavía hay almohadillas no cubiertas\n" -"  con soldadura en pasta, la aplicación emitirá un cuadro de mensaje de " -"advertencia." - -#: AppTools/ToolSolderPaste.py:103 -msgid "" -"Nozzle tool Diameter. It's value (in current FlatCAM units)\n" -"is the width of the solder paste dispensed." -msgstr "" -"Herramienta de boquilla de diámetro. Su valor (en unidades actuales de " -"FlatCAM)\n" -"es el ancho de la pasta de soldadura dispensada." - -#: AppTools/ToolSolderPaste.py:110 -msgid "New Nozzle Tool" -msgstr "Nueva herra. de boquilla" - -#: AppTools/ToolSolderPaste.py:129 -msgid "" -"Add a new nozzle tool to the Tool Table\n" -"with the diameter specified above." -msgstr "" -"Agregue una nueva herramienta de boquilla a la tabla de herramientas\n" -"con el diámetro especificado anteriormente." - -#: AppTools/ToolSolderPaste.py:151 -msgid "STEP 1" -msgstr "PASO 1" - -#: AppTools/ToolSolderPaste.py:153 -msgid "" -"First step is to select a number of nozzle tools for usage\n" -"and then optionally modify the GCode parameters below." -msgstr "" -"El primer paso es seleccionar una serie de herramientas de boquillas para su " -"uso\n" -"y luego opcionalmente modificar los parámetros GCode a continuación." - -#: AppTools/ToolSolderPaste.py:156 -msgid "" -"Select tools.\n" -"Modify parameters." -msgstr "" -"Seleccionar herramientas.\n" -"Modificar parámetros." - -#: AppTools/ToolSolderPaste.py:276 -msgid "" -"Feedrate (speed) while moving up vertically\n" -" to Dispense position (on Z plane)." -msgstr "" -"Avance (velocidad) mientras se mueve verticalmente\n" -"  para dispensar la posición (en el plano Z)." - -#: AppTools/ToolSolderPaste.py:346 -msgid "" -"Generate GCode for Solder Paste dispensing\n" -"on PCB pads." -msgstr "" -"Generar GCodelo para dispensar pasta de soldadura\n" -"en almohadillas de PCB." - -#: AppTools/ToolSolderPaste.py:367 -msgid "STEP 2" -msgstr "PASO 2" - -#: AppTools/ToolSolderPaste.py:369 -msgid "" -"Second step is to create a solder paste dispensing\n" -"geometry out of an Solder Paste Mask Gerber file." -msgstr "" -"El segundo paso es crear una dispensación de pasta de soldadura\n" -"geometría de un archivo Gerber de máscara de pasta de soldadura." - -#: AppTools/ToolSolderPaste.py:375 -msgid "Generate solder paste dispensing geometry." -msgstr "Generar geometría de dispensación de pasta de soldadura." - -#: AppTools/ToolSolderPaste.py:398 -msgid "Geo Result" -msgstr "Resultado Geo" - -#: AppTools/ToolSolderPaste.py:400 -msgid "" -"Geometry Solder Paste object.\n" -"The name of the object has to end in:\n" -"'_solderpaste' as a protection." -msgstr "" -"Objeto de pasta de soldadura de geometría.\n" -"El nombre del objeto tiene que terminar en:\n" -"'_solderpaste' como protección." - -#: AppTools/ToolSolderPaste.py:409 -msgid "STEP 3" -msgstr "PASO 3" - -#: AppTools/ToolSolderPaste.py:411 -msgid "" -"Third step is to select a solder paste dispensing geometry,\n" -"and then generate a CNCJob object.\n" -"\n" -"REMEMBER: if you want to create a CNCJob with new parameters,\n" -"first you need to generate a geometry with those new params,\n" -"and only after that you can generate an updated CNCJob." -msgstr "" -"El tercer paso es seleccionar una geometría de distribución de pasta de " -"soldadura,\n" -"y luego generar un objeto CNCJob.\n" -"\n" -"RECUERDE: si desea crear un CNCJob con nuevos parámetros,\n" -"primero necesitas generar una geometría con esos nuevos parámetros,\n" -"y solo después de eso puede generar un CNCJob actualizado." - -#: AppTools/ToolSolderPaste.py:432 -msgid "CNC Result" -msgstr "Resultado del CNC" - -#: AppTools/ToolSolderPaste.py:434 -msgid "" -"CNCJob Solder paste object.\n" -"In order to enable the GCode save section,\n" -"the name of the object has to end in:\n" -"'_solderpaste' as a protection." -msgstr "" -"CNCJob soldar pegar objeto.\n" -"Para habilitar la sección de guardar GCode,\n" -"el nombre del objeto debe terminar en:\n" -"'_solderpaste' como protección." - -#: AppTools/ToolSolderPaste.py:444 -msgid "View GCode" -msgstr "Ver GCode" - -#: AppTools/ToolSolderPaste.py:446 -msgid "" -"View the generated GCode for Solder Paste dispensing\n" -"on PCB pads." -msgstr "" -"Ver el GCode generado para la dispensación de pasta de soldadura\n" -"en almohadillas de PCB." - -#: AppTools/ToolSolderPaste.py:456 -msgid "Save GCode" -msgstr "Guardar GCode" - -#: AppTools/ToolSolderPaste.py:458 -msgid "" -"Save the generated GCode for Solder Paste dispensing\n" -"on PCB pads, to a file." -msgstr "" -"Guarde el GCode generado para la dispensación de pasta de soldadura\n" -"en almohadillas de PCB, a un archivo." - -#: AppTools/ToolSolderPaste.py:468 -msgid "STEP 4" -msgstr "PASO 4" - -#: AppTools/ToolSolderPaste.py:470 -msgid "" -"Fourth step (and last) is to select a CNCJob made from \n" -"a solder paste dispensing geometry, and then view/save it's GCode." -msgstr "" -"Cuarto paso (y último) es seleccionar un CNCJob hecho de\n" -"una geometría de dispensación de pasta de soldadura, y luego ver / guardar " -"su código GC." - -#: AppTools/ToolSolderPaste.py:930 -msgid "New Nozzle tool added to Tool Table." -msgstr "Nueva herramienta de boquillas agregada a la tabla de herramientas." - -#: AppTools/ToolSolderPaste.py:973 -msgid "Nozzle tool from Tool Table was edited." -msgstr "Nueva herramienta de boquillas agregada a la tabla de herramientas." - -#: AppTools/ToolSolderPaste.py:1032 -msgid "Delete failed. Select a Nozzle tool to delete." -msgstr "" -"Eliminar falló. Seleccione una herramienta de inyectores para eliminar." - -#: AppTools/ToolSolderPaste.py:1038 -msgid "Nozzle tool(s) deleted from Tool Table." -msgstr "Herramienta de boquilla (s) eliminada de la tabla de herramientas." - -#: AppTools/ToolSolderPaste.py:1094 -msgid "No SolderPaste mask Gerber object loaded." -msgstr "No se ha cargado el objeto Gerber de máscara de pasta de soldadura." - -#: AppTools/ToolSolderPaste.py:1112 -msgid "Creating Solder Paste dispensing geometry." -msgstr "Creación de geometría de dispensación de pasta de soldadura." - -#: AppTools/ToolSolderPaste.py:1125 -msgid "No Nozzle tools in the tool table." -msgstr "No hay herramientas de boquilla en la mesa de herramientas." - -#: AppTools/ToolSolderPaste.py:1251 -msgid "Cancelled. Empty file, it has no geometry..." -msgstr "Cancelado. Archivo vacío, no tiene geometría ..." - -#: AppTools/ToolSolderPaste.py:1254 -msgid "Solder Paste geometry generated successfully" -msgstr "Geometría de pasta de soldadura generada con éxito" - -#: AppTools/ToolSolderPaste.py:1261 -msgid "Some or all pads have no solder due of inadequate nozzle diameters..." -msgstr "" -"Algunas o todas las almohadillas no tienen soldadura debido a los diámetros " -"de boquilla inadecuados ..." - -#: AppTools/ToolSolderPaste.py:1275 -msgid "Generating Solder Paste dispensing geometry..." -msgstr "Generando geometría de dispensación de pasta de soldadura ..." - -#: AppTools/ToolSolderPaste.py:1295 -msgid "There is no Geometry object available." -msgstr "No hay ningún objeto de Geometría disponible." - -#: AppTools/ToolSolderPaste.py:1300 -msgid "This Geometry can't be processed. NOT a solder_paste_tool geometry." -msgstr "" -"Esta Geometría no se puede procesar. NO es una geometría solder_paste_tool." - -#: AppTools/ToolSolderPaste.py:1336 -msgid "An internal error has ocurred. See shell.\n" -msgstr "" -"Ha ocurrido un error interno. Ver caparazón.\n" -"\n" - -#: AppTools/ToolSolderPaste.py:1401 -msgid "ToolSolderPaste CNCjob created" -msgstr "Herramienta soldar pegar CNCjob creado" - -#: AppTools/ToolSolderPaste.py:1420 -msgid "SP GCode Editor" -msgstr "SP GCode editor" - -#: AppTools/ToolSolderPaste.py:1432 AppTools/ToolSolderPaste.py:1437 -#: AppTools/ToolSolderPaste.py:1492 -msgid "" -"This CNCJob object can't be processed. NOT a solder_paste_tool CNCJob object." -msgstr "" -"Este objeto CNCJob no se puede procesar. NO es un objeto CNCJob de " -"herramienta de pasta de soldadura." - -#: AppTools/ToolSolderPaste.py:1462 -msgid "No Gcode in the object" -msgstr "No Gcode en el objeto" - -#: AppTools/ToolSolderPaste.py:1502 -msgid "Export GCode ..." -msgstr "Exportar GCode ..." - -#: AppTools/ToolSolderPaste.py:1550 -msgid "Solder paste dispenser GCode file saved to" -msgstr "Dispensador de pasta de soldadura Archivo GCode guardado en: %s" - -#: AppTools/ToolSub.py:83 -msgid "" -"Gerber object from which to subtract\n" -"the subtractor Gerber object." -msgstr "" -"Objeto de Gerber para restar\n" -"El sustractor del objeto Gerber." - -#: AppTools/ToolSub.py:96 AppTools/ToolSub.py:151 -msgid "Subtractor" -msgstr "Sustractor" - -#: AppTools/ToolSub.py:98 -msgid "" -"Gerber object that will be subtracted\n" -"from the target Gerber object." -msgstr "" -"Objeto de Gerber que se restará\n" -"del objeto objetivo de Gerber." - -#: AppTools/ToolSub.py:105 -msgid "Subtract Gerber" -msgstr "Restar Gerber" - -#: AppTools/ToolSub.py:107 -msgid "" -"Will remove the area occupied by the subtractor\n" -"Gerber from the Target Gerber.\n" -"Can be used to remove the overlapping silkscreen\n" -"over the soldermask." -msgstr "" -"Eliminará el área ocupada por el sustractor\n" -"Gerber del objetivo Gerber.\n" -"Se puede utilizar para eliminar la serigrafía superpuesta\n" -"sobre la máscara de soldadura." - -#: AppTools/ToolSub.py:138 -msgid "" -"Geometry object from which to subtract\n" -"the subtractor Geometry object." -msgstr "" -"Objeto de Geometría del cual restar\n" -"El objeto de Geometría de sustractor." - -#: AppTools/ToolSub.py:153 -msgid "" -"Geometry object that will be subtracted\n" -"from the target Geometry object." -msgstr "" -"Objeto de Geometría que se restará\n" -"del objeto de Geometría de destino." - -#: AppTools/ToolSub.py:161 -msgid "" -"Checking this will close the paths cut by the Geometry subtractor object." -msgstr "" -"Marcar esto cerrará los caminos cortados por el objeto sustrato Geometry." - -#: AppTools/ToolSub.py:164 -msgid "Subtract Geometry" -msgstr "Restar Geometría" - -#: AppTools/ToolSub.py:166 -msgid "" -"Will remove the area occupied by the subtractor\n" -"Geometry from the Target Geometry." -msgstr "" -"Eliminará el área ocupada por el sustractor\n" -"Geometría de la Geometría Objetivo." - -#: AppTools/ToolSub.py:264 -msgid "Sub Tool" -msgstr "Herra. de resta" - -#: AppTools/ToolSub.py:285 AppTools/ToolSub.py:490 -msgid "No Target object loaded." -msgstr "No se ha cargado ningún objeto de destino." - -#: AppTools/ToolSub.py:288 -msgid "Loading geometry from Gerber objects." -msgstr "Cargando geometría de objetos Gerber." - -#: AppTools/ToolSub.py:300 AppTools/ToolSub.py:505 -msgid "No Subtractor object loaded." -msgstr "No se ha cargado ningún objeto Subtractor." - -#: AppTools/ToolSub.py:342 -msgid "Finished parsing geometry for aperture" -msgstr "Geometría de análisis terminada para apertura" - -#: AppTools/ToolSub.py:344 -msgid "Subtraction aperture processing finished." -msgstr "Procesamiento de apertura de sustracción terminado." - -#: AppTools/ToolSub.py:464 AppTools/ToolSub.py:662 -msgid "Generating new object ..." -msgstr "Generando nuevo objeto ..." - -#: AppTools/ToolSub.py:467 AppTools/ToolSub.py:666 AppTools/ToolSub.py:745 -msgid "Generating new object failed." -msgstr "Generando nuevo objeto falló." - -#: AppTools/ToolSub.py:471 AppTools/ToolSub.py:672 -msgid "Created" -msgstr "Creado" - -#: AppTools/ToolSub.py:519 -msgid "Currently, the Subtractor geometry cannot be of type Multigeo." -msgstr "" -"Actualmente, la geometría del sustractor no puede ser del tipo Multigeo." - -#: AppTools/ToolSub.py:564 -msgid "Parsing solid_geometry ..." -msgstr "Analizando solid_geometry ..." - -#: AppTools/ToolSub.py:566 -msgid "Parsing solid_geometry for tool" -msgstr "Análisis de geometría para herramienta" - -#: AppTools/ToolTransform.py:23 -msgid "Object Transform" -msgstr "Transform. de objetos" - -#: AppTools/ToolTransform.py:78 -msgid "" -"Rotate the selected object(s).\n" -"The point of reference is the middle of\n" -"the bounding box for all selected objects." -msgstr "" -"Rotar los objetos seleccionados.\n" -"El punto de referencia es el medio de\n" -"el cuadro delimitador para todos los objetos seleccionados." - -#: AppTools/ToolTransform.py:99 AppTools/ToolTransform.py:120 -msgid "" -"Angle for Skew action, in degrees.\n" -"Float number between -360 and 360." -msgstr "" -"Ángulo para sesgo de acción, en grados.\n" -"Número de flotación entre -360 y 360." - -#: AppTools/ToolTransform.py:109 AppTools/ToolTransform.py:130 -msgid "" -"Skew/shear the selected object(s).\n" -"The point of reference is the middle of\n" -"the bounding box for all selected objects." -msgstr "" -"Incline / corte los objetos seleccionados.\n" -"El punto de referencia es el medio de\n" -"el cuadro delimitador para todos los objetos seleccionados." - -#: AppTools/ToolTransform.py:159 AppTools/ToolTransform.py:179 -msgid "" -"Scale the selected object(s).\n" -"The point of reference depends on \n" -"the Scale reference checkbox state." -msgstr "" -"Escala los objetos seleccionados.\n" -"El punto de referencia depende de\n" -"el estado de la casilla de verificación Escalar referencia." - -#: AppTools/ToolTransform.py:228 AppTools/ToolTransform.py:248 -msgid "" -"Offset the selected object(s).\n" -"The point of reference is the middle of\n" -"the bounding box for all selected objects.\n" -msgstr "" -"Desplazar los objetos seleccionados.\n" -"El punto de referencia es el medio de\n" -"el cuadro delimitador para todos los objetos seleccionados.\n" - -#: AppTools/ToolTransform.py:268 AppTools/ToolTransform.py:273 -msgid "Flip the selected object(s) over the X axis." -msgstr "Voltee los objetos seleccionados sobre el eje X." - -#: AppTools/ToolTransform.py:297 -msgid "Ref. Point" -msgstr "Punto de Ref" - -#: AppTools/ToolTransform.py:348 -msgid "" -"Create the buffer effect on each geometry,\n" -"element from the selected object, using the distance." -msgstr "" -"Crea el efecto de amortiguación en cada geometría,\n" -"elemento del objeto seleccionado, utilizando la distancia." - -#: AppTools/ToolTransform.py:374 -msgid "" -"Create the buffer effect on each geometry,\n" -"element from the selected object, using the factor." -msgstr "" -"Crea el efecto de amortiguación en cada geometría,\n" -"elemento del objeto seleccionado, utilizando el factor." - -#: AppTools/ToolTransform.py:479 -msgid "Buffer D" -msgstr "Buffer D" - -#: AppTools/ToolTransform.py:480 -msgid "Buffer F" -msgstr "Buffer F" - -#: AppTools/ToolTransform.py:557 -msgid "Rotate transformation can not be done for a value of 0." -msgstr "La transformación de rotación no se puede hacer para un valor de 0." - -#: AppTools/ToolTransform.py:596 AppTools/ToolTransform.py:619 -msgid "Scale transformation can not be done for a factor of 0 or 1." -msgstr "La transformación de escala no se puede hacer para un factor de 0 o 1." - -#: AppTools/ToolTransform.py:634 AppTools/ToolTransform.py:644 -msgid "Offset transformation can not be done for a value of 0." -msgstr "" -"La transformación de compensación no se puede hacer para un valor de 0." - -#: AppTools/ToolTransform.py:676 -msgid "No object selected. Please Select an object to rotate!" -msgstr "" -"Ningún objeto seleccionado. Por favor, seleccione un objeto para rotar!" - -#: AppTools/ToolTransform.py:702 -msgid "CNCJob objects can't be rotated." -msgstr "Los objetos de CNCJob no se pueden girar." - -#: AppTools/ToolTransform.py:710 -msgid "Rotate done" -msgstr "Rotar hecho" - -#: AppTools/ToolTransform.py:713 AppTools/ToolTransform.py:783 -#: AppTools/ToolTransform.py:833 AppTools/ToolTransform.py:887 -#: AppTools/ToolTransform.py:917 AppTools/ToolTransform.py:953 -msgid "Due of" -msgstr "Debido a" - -#: AppTools/ToolTransform.py:713 AppTools/ToolTransform.py:783 -#: AppTools/ToolTransform.py:833 AppTools/ToolTransform.py:887 -#: AppTools/ToolTransform.py:917 AppTools/ToolTransform.py:953 -msgid "action was not executed." -msgstr "la acción no se ejecutó." - -#: AppTools/ToolTransform.py:725 -msgid "No object selected. Please Select an object to flip" -msgstr "Ningún objeto seleccionado. Seleccione un objeto para voltear" - -#: AppTools/ToolTransform.py:758 -msgid "CNCJob objects can't be mirrored/flipped." -msgstr "Los objetos de CNCJob no se pueden reflejar / voltear." - -#: AppTools/ToolTransform.py:793 -msgid "Skew transformation can not be done for 0, 90 and 180 degrees." -msgstr "La transformación oblicua no se puede hacer para 0, 90 y 180 grados." - -#: AppTools/ToolTransform.py:798 -msgid "No object selected. Please Select an object to shear/skew!" -msgstr "" -"Ningún objeto seleccionado. ¡Seleccione un objeto para cortar / sesgar!" - -#: AppTools/ToolTransform.py:818 -msgid "CNCJob objects can't be skewed." -msgstr "Los objetos de CNCJob no se pueden sesgar." - -#: AppTools/ToolTransform.py:830 -msgid "Skew on the" -msgstr "Sesgar en el" - -#: AppTools/ToolTransform.py:830 AppTools/ToolTransform.py:884 -#: AppTools/ToolTransform.py:914 -msgid "axis done" -msgstr "eje hecho" - -#: AppTools/ToolTransform.py:844 -msgid "No object selected. Please Select an object to scale!" -msgstr "" -"Ningún objeto seleccionado. Por favor, seleccione un objeto para escalar!" - -#: AppTools/ToolTransform.py:875 -msgid "CNCJob objects can't be scaled." -msgstr "Los objetos de CNCJob no se pueden escalar." - -#: AppTools/ToolTransform.py:884 -msgid "Scale on the" -msgstr "Escala en el" - -#: AppTools/ToolTransform.py:894 -msgid "No object selected. Please Select an object to offset!" -msgstr "" -"Ningún objeto seleccionado. Por favor, seleccione un objeto para compensar!" - -#: AppTools/ToolTransform.py:901 -msgid "CNCJob objects can't be offset." -msgstr "Los objetos CNCJob no se pueden compensar." - -#: AppTools/ToolTransform.py:914 -msgid "Offset on the" -msgstr "Offset en el" - -#: AppTools/ToolTransform.py:924 -msgid "No object selected. Please Select an object to buffer!" -msgstr "" -"Ningún objeto seleccionado. Por favor, seleccione un objeto para almacenar!" - -#: AppTools/ToolTransform.py:927 -msgid "Applying Buffer" -msgstr "Aplicando Tampón" - -#: AppTools/ToolTransform.py:931 -msgid "CNCJob objects can't be buffered." -msgstr "Los objetos CNCJob no se pueden almacenar en búfer." - -#: AppTools/ToolTransform.py:948 -msgid "Buffer done" -msgstr "Tampón hecho" - -#: AppTranslation.py:104 -msgid "The application will restart." -msgstr "La aplicación se reiniciará." - -#: AppTranslation.py:106 -msgid "Are you sure do you want to change the current language to" -msgstr "¿Está seguro de que desea cambiar el idioma actual a" - -#: AppTranslation.py:107 -msgid "Apply Language ..." -msgstr "Aplicar Idioma ..." - -#: AppTranslation.py:203 App_Main.py:3151 -msgid "" -"There are files/objects modified in FlatCAM. \n" -"Do you want to Save the project?" -msgstr "" -"Hay archivos / objetos modificados en FlatCAM.\n" -"¿Quieres guardar el proyecto?" - -#: AppTranslation.py:206 App_Main.py:3154 App_Main.py:6411 -msgid "Save changes" -msgstr "Guardar cambios" - -#: App_Main.py:477 +#: FlatCAMApp.py:491 msgid "FlatCAM is initializing ..." msgstr "FlatCAM se está inicializando ..." -#: App_Main.py:620 +#: FlatCAMApp.py:639 msgid "Could not find the Language files. The App strings are missing." msgstr "" "No se pudieron encontrar los archivos de idioma. Las cadenas de aplicación " "faltan." -#: App_Main.py:692 +#: FlatCAMApp.py:709 msgid "" "FlatCAM is initializing ...\n" "Canvas initialization started." @@ -17109,7 +40,7 @@ msgstr "" "FlatCAM se está inicializando ...\n" "Se inició la inicialización del lienzo." -#: App_Main.py:712 +#: FlatCAMApp.py:729 msgid "" "FlatCAM is initializing ...\n" "Canvas initialization started.\n" @@ -17119,43 +50,63 @@ msgstr "" "Se inició la inicialización del lienzo.\n" "La inicialización del lienzo terminó en" -#: App_Main.py:1558 App_Main.py:6524 +#: FlatCAMApp.py:1593 FlatCAMApp.py:7451 msgid "New Project - Not saved" msgstr "Proyecto nuevo: no guardado" -#: App_Main.py:1659 +#: FlatCAMApp.py:1689 msgid "" "Found old default preferences files. Please reboot the application to update." msgstr "" "Se encontraron archivos de preferencias predeterminados antiguos. Reinicie " "la aplicación para actualizar." -#: App_Main.py:1726 +#: FlatCAMApp.py:1740 FlatCAMApp.py:2512 FlatCAMApp.py:2547 FlatCAMApp.py:2594 +#: FlatCAMApp.py:4540 FlatCAMApp.py:7535 FlatCAMApp.py:7572 FlatCAMApp.py:7614 +#: FlatCAMApp.py:7643 FlatCAMApp.py:7684 FlatCAMApp.py:7709 FlatCAMApp.py:7761 +#: FlatCAMApp.py:7796 FlatCAMApp.py:7841 FlatCAMApp.py:7882 FlatCAMApp.py:7923 +#: FlatCAMApp.py:7964 FlatCAMApp.py:8005 FlatCAMApp.py:8049 FlatCAMApp.py:8105 +#: FlatCAMApp.py:8137 FlatCAMApp.py:8169 FlatCAMApp.py:8402 FlatCAMApp.py:8440 +#: FlatCAMApp.py:8483 FlatCAMApp.py:8560 FlatCAMApp.py:8615 +#: FlatCAMBookmark.py:300 FlatCAMBookmark.py:342 FlatCAMDB.py:663 +#: FlatCAMDB.py:709 FlatCAMDB.py:2125 FlatCAMDB.py:2171 +#: flatcamEditors/FlatCAMExcEditor.py:1023 +#: flatcamEditors/FlatCAMExcEditor.py:1091 +#: flatcamEditors/FlatCAMTextEditor.py:223 flatcamGUI/FlatCAMGUI.py:3443 +#: flatcamGUI/FlatCAMGUI.py:3659 flatcamGUI/FlatCAMGUI.py:3874 +#: flatcamObjects/ObjectCollection.py:126 flatcamTools/ToolFilm.py:754 +#: flatcamTools/ToolFilm.py:900 flatcamTools/ToolImage.py:247 +#: flatcamTools/ToolMove.py:269 flatcamTools/ToolPcbWizard.py:301 +#: flatcamTools/ToolPcbWizard.py:324 flatcamTools/ToolQRCode.py:791 +#: flatcamTools/ToolQRCode.py:838 +msgid "Cancelled." +msgstr "Cancelado." + +#: FlatCAMApp.py:1756 msgid "Open Config file failed." msgstr "El archivo de configuración abierto falló." -#: App_Main.py:1741 +#: FlatCAMApp.py:1771 msgid "Open Script file failed." msgstr "Error al abrir el archivo de script." -#: App_Main.py:1767 +#: FlatCAMApp.py:1797 msgid "Open Excellon file failed." msgstr "Abrir archivo Excellon falló." -#: App_Main.py:1780 +#: FlatCAMApp.py:1810 msgid "Open GCode file failed." msgstr "Error al abrir el archivo GCode." -#: App_Main.py:1793 +#: FlatCAMApp.py:1823 msgid "Open Gerber file failed." msgstr "Error al abrir el archivo Gerber." -#: App_Main.py:2116 -msgid "Select a Geometry, Gerber, Excellon or CNCJob Object to edit." -msgstr "" -"Seleccione un objeto de Geometría, Gerber, Excellon o CNCJob para editar." +#: FlatCAMApp.py:2131 +msgid "Select a Geometry, Gerber or Excellon Object to edit." +msgstr "Seleccione un objeto Geometry, Gerber o Excellon para editar." -#: App_Main.py:2131 +#: FlatCAMApp.py:2146 msgid "" "Simultaneous editing of tools geometry in a MultiGeo Geometry is not " "possible.\n" @@ -17165,91 +116,196 @@ msgstr "" "MultiGeo no es posible.\n" "Edite solo una geometría a la vez." -#: App_Main.py:2197 +#: FlatCAMApp.py:2204 msgid "Editor is activated ..." msgstr "Editor está activado ..." -#: App_Main.py:2218 +#: FlatCAMApp.py:2225 msgid "Do you want to save the edited object?" msgstr "Quieres guardar el objeto editado?" -#: App_Main.py:2254 +#: FlatCAMApp.py:2226 flatcamGUI/FlatCAMGUI.py:2288 +msgid "Close Editor" +msgstr "Cerrar Editor" + +#: FlatCAMApp.py:2229 FlatCAMApp.py:3518 FlatCAMApp.py:6085 FlatCAMApp.py:7345 +#: FlatCAMTranslation.py:109 FlatCAMTranslation.py:207 +#: flatcamGUI/FlatCAMGUI.py:2519 +#: flatcamGUI/preferences/PreferencesUIManager.py:1122 +msgid "Yes" +msgstr "Sí" + +#: FlatCAMApp.py:2230 FlatCAMApp.py:3519 FlatCAMApp.py:6086 FlatCAMApp.py:7346 +#: FlatCAMTranslation.py:110 FlatCAMTranslation.py:208 +#: flatcamGUI/FlatCAMGUI.py:2520 +#: flatcamGUI/preferences/PreferencesUIManager.py:1123 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:164 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:150 +#: flatcamTools/ToolNCC.py:182 flatcamTools/ToolPaint.py:166 +msgid "No" +msgstr "No" + +#: FlatCAMApp.py:2231 FlatCAMApp.py:3520 FlatCAMApp.py:4478 FlatCAMApp.py:5103 +#: FlatCAMApp.py:7347 FlatCAMDB.py:128 FlatCAMDB.py:1689 +#: flatcamGUI/FlatCAMGUI.py:1347 +msgid "Cancel" +msgstr "Cancelar" + +#: FlatCAMApp.py:2263 msgid "Object empty after edit." msgstr "Objeto vacío después de editar." -#: App_Main.py:2259 App_Main.py:2277 App_Main.py:2296 +#: FlatCAMApp.py:2267 FlatCAMApp.py:2288 FlatCAMApp.py:2310 msgid "Editor exited. Editor content saved." msgstr "Editor salido. Contenido del editor guardado." -#: App_Main.py:2300 App_Main.py:2324 App_Main.py:2342 +#: FlatCAMApp.py:2314 FlatCAMApp.py:2337 FlatCAMApp.py:2355 msgid "Select a Gerber, Geometry or Excellon Object to update." msgstr "Seleccione un objeto Gerber, Geometry o Excellon para actualizar." -#: App_Main.py:2303 +#: FlatCAMApp.py:2317 msgid "is updated, returning to App..." msgstr "se actualiza, volviendo a la aplicación ..." -#: App_Main.py:2310 +#: FlatCAMApp.py:2324 msgid "Editor exited. Editor content was not saved." msgstr "Editor salido. El contenido del editor no se guardó." -#: App_Main.py:2443 App_Main.py:2447 +#: FlatCAMApp.py:2504 FlatCAMApp.py:2508 msgid "Import FlatCAM Preferences" msgstr "Importar preferencias de FlatCAM" -#: App_Main.py:2458 +#: FlatCAMApp.py:2519 msgid "Imported Defaults from" msgstr "Valores predeterminados importados de" -#: App_Main.py:2478 App_Main.py:2484 +#: FlatCAMApp.py:2539 FlatCAMApp.py:2544 msgid "Export FlatCAM Preferences" msgstr "Exportar preferencias de FlatCAM" -#: App_Main.py:2504 +#: FlatCAMApp.py:2558 FlatCAMApp.py:2626 +#: flatcamGUI/preferences/PreferencesUIManager.py:1018 +msgid "Failed to write defaults to file." +msgstr "Error al escribir los valores predeterminados en el archivo." + +#: FlatCAMApp.py:2564 msgid "Exported preferences to" msgstr "Preferencias exportadas a" -#: App_Main.py:2524 App_Main.py:2529 +#: FlatCAMApp.py:2584 FlatCAMApp.py:2589 msgid "Save to file" msgstr "Guardar en archivo" -#: App_Main.py:2553 +#: FlatCAMApp.py:2602 FlatCAMApp.py:8859 FlatCAMApp.py:8907 FlatCAMApp.py:9032 +#: FlatCAMApp.py:9168 FlatCAMBookmark.py:308 FlatCAMDB.py:671 FlatCAMDB.py:2133 +#: flatcamEditors/FlatCAMTextEditor.py:276 flatcamObjects/FlatCAMCNCJob.py:959 +#: flatcamTools/ToolFilm.py:1031 flatcamTools/ToolFilm.py:1212 +#: flatcamTools/ToolSolderPaste.py:1534 +msgid "" +"Permission denied, saving not possible.\n" +"Most likely another app is holding the file open and not accessible." +msgstr "" +"Permiso denegado, no es posible guardar.\n" +"Lo más probable es que otra aplicación mantenga el archivo abierto y no " +"accesible." + +#: FlatCAMApp.py:2613 msgid "Could not load the file." msgstr "No se pudo cargar el archivo." -#: App_Main.py:2569 +#: FlatCAMApp.py:2629 msgid "Exported file to" msgstr "Exported file to" -#: App_Main.py:2606 +#: FlatCAMApp.py:2712 msgid "Failed to open recent files file for writing." msgstr "Error al abrir archivos recientes para escritura." -#: App_Main.py:2617 +#: FlatCAMApp.py:2723 msgid "Failed to open recent projects file for writing." msgstr "Error al abrir el archivo de proyectos recientes para escribir." -#: App_Main.py:2672 +#: FlatCAMApp.py:2806 FlatCAMApp.py:9377 FlatCAMApp.py:9441 FlatCAMApp.py:9572 +#: FlatCAMApp.py:9637 FlatCAMApp.py:10287 +#: flatcamEditors/FlatCAMGrbEditor.py:4364 +#: flatcamObjects/FlatCAMGeometry.py:1725 flatcamParsers/ParseExcellon.py:897 +#: flatcamTools/ToolPcbWizard.py:432 +msgid "An internal error has occurred. See shell.\n" +msgstr "Ha ocurrido un error interno. Ver concha\n" + +#: FlatCAMApp.py:2807 +#, python-brace-format +msgid "" +"Object ({kind}) failed because: {error} \n" +"\n" +msgstr "El objeto ({kind}) falló porque: {error}\n" + +#: FlatCAMApp.py:2822 +msgid "Converting units to " +msgstr "Convertir unidades a " + +#: FlatCAMApp.py:2931 +msgid "CREATE A NEW FLATCAM TCL SCRIPT" +msgstr "CREA UN NUEVO SCRIPT FLATCAM TCL" + +#: FlatCAMApp.py:2932 +msgid "TCL Tutorial is here" +msgstr "TCL Tutorial está aquí" + +#: FlatCAMApp.py:2934 +msgid "FlatCAM commands list" +msgstr "Lista de comandos de FlatCAM" + +#: FlatCAMApp.py:2935 +msgid "" +"Type >help< followed by Run Code for a list of FlatCAM Tcl Commands " +"(displayed in Tcl Shell)." +msgstr "" +"Escriba> help
    Icons by Icons8
    Icons by oNline Web Fonts" +"onlinewebfonts.com\">oNline Web Fonts" msgstr "" "Algunos de los iconos utilizados son de las siguientes fuentes:
    Iconos de Icons8
    Iconos de oNline Web Fonts" +"www.onlinewebfonts.com\">oNline Web Fonts" -#: App_Main.py:2761 +#: FlatCAMApp.py:3202 msgid "Splash" msgstr "Pantalla de bienvenida" -#: App_Main.py:2767 +#: FlatCAMApp.py:3208 msgid "Programmers" msgstr "Programadores" -#: App_Main.py:2773 +#: FlatCAMApp.py:3214 msgid "Translators" msgstr "Traductores" -#: App_Main.py:2779 +#: FlatCAMApp.py:3220 msgid "License" msgstr "Licencia" -#: App_Main.py:2785 +#: FlatCAMApp.py:3226 msgid "Attributions" msgstr "Atribuciones" -#: App_Main.py:2808 +#: FlatCAMApp.py:3249 msgid "Programmer" msgstr "Programador" -#: App_Main.py:2809 +#: FlatCAMApp.py:3250 msgid "Status" msgstr "Estado" -#: App_Main.py:2810 App_Main.py:2890 +#: FlatCAMApp.py:3251 FlatCAMApp.py:3331 msgid "E-mail" msgstr "Email" -#: App_Main.py:2813 -msgid "Program Author" -msgstr "Autor del programa" - -#: App_Main.py:2818 +#: FlatCAMApp.py:3259 msgid "BETA Maintainer >= 2019" msgstr "BETA Mantenedor >= 2019" -#: App_Main.py:2887 +#: FlatCAMApp.py:3328 msgid "Language" msgstr "Idioma" -#: App_Main.py:2888 +#: FlatCAMApp.py:3329 msgid "Translator" msgstr "Traductor" -#: App_Main.py:2889 +#: FlatCAMApp.py:3330 msgid "Corrections" msgstr "Correcciones" -#: App_Main.py:2963 -msgid "Important Information's" -msgstr "Información importante" +#: FlatCAMApp.py:3455 FlatCAMApp.py:3464 flatcamGUI/FlatCAMGUI.py:527 +msgid "Bookmarks Manager" +msgstr "Administrador de Marcadores" -#: App_Main.py:3111 +#: FlatCAMApp.py:3475 msgid "" "This entry will resolve to another website if:\n" "\n" @@ -17397,29 +443,45 @@ msgstr "" "Si no puede obtener información sobre FlatCAM beta\n" "use el enlace del canal de YouTube desde el menú Ayuda." -#: App_Main.py:3118 +#: FlatCAMApp.py:3482 msgid "Alternative website" msgstr "Sitio web alternativo" -#: App_Main.py:3421 +#: FlatCAMApp.py:3508 flatcamGUI/FlatCAMGUI.py:4267 +msgid "Application is saving the project. Please wait ..." +msgstr "La aplicación es guardar el proyecto. Por favor espera ..." + +#: FlatCAMApp.py:3513 FlatCAMTranslation.py:202 +msgid "" +"There are files/objects modified in FlatCAM. \n" +"Do you want to Save the project?" +msgstr "" +"Hay archivos / objetos modificados en FlatCAM.\n" +"¿Quieres guardar el proyecto?" + +#: FlatCAMApp.py:3516 FlatCAMApp.py:7343 FlatCAMTranslation.py:205 +msgid "Save changes" +msgstr "Guardar cambios" + +#: FlatCAMApp.py:3778 msgid "Selected Excellon file extensions registered with FlatCAM." msgstr "Extensiones de archivo Excellon seleccionadas registradas con FlatCAM." -#: App_Main.py:3443 +#: FlatCAMApp.py:3800 msgid "Selected GCode file extensions registered with FlatCAM." msgstr "Extensiones de archivo GCode seleccionadas registradas con FlatCAM." -#: App_Main.py:3465 +#: FlatCAMApp.py:3822 msgid "Selected Gerber file extensions registered with FlatCAM." msgstr "Extensiones de archivo Gerber seleccionadas registradas con FlatCAM." -#: App_Main.py:3653 App_Main.py:3712 App_Main.py:3740 +#: FlatCAMApp.py:4010 FlatCAMApp.py:4069 FlatCAMApp.py:4097 msgid "At least two objects are required for join. Objects currently selected" msgstr "" "Se requieren al menos dos objetos para unirse. Objetos actualmente " "seleccionados" -#: App_Main.py:3662 +#: FlatCAMApp.py:4019 msgid "" "Failed join. The Geometry objects are of different types.\n" "At least one is MultiGeo type and the other is SingleGeo type. A possibility " @@ -17435,47 +497,47 @@ msgstr "" "pueden perderse y el resultado puede no ser el esperado.\n" "Compruebe el GCODE generado." -#: App_Main.py:3674 App_Main.py:3684 +#: FlatCAMApp.py:4031 FlatCAMApp.py:4041 msgid "Geometry merging finished" msgstr "Geometría fusionada terminada" -#: App_Main.py:3707 +#: FlatCAMApp.py:4064 msgid "Failed. Excellon joining works only on Excellon objects." msgstr "Ha fallado. La unión de Excellon funciona solo en objetos de Excellon." -#: App_Main.py:3717 +#: FlatCAMApp.py:4074 msgid "Excellon merging finished" msgstr "Excellon fusión finalizada" -#: App_Main.py:3735 +#: FlatCAMApp.py:4092 msgid "Failed. Gerber joining works only on Gerber objects." msgstr "Ha fallado. La unión de Gerber funciona solo en objetos de Gerber." -#: App_Main.py:3745 +#: FlatCAMApp.py:4102 msgid "Gerber merging finished" msgstr "Gerber fusión finalizada" -#: App_Main.py:3765 App_Main.py:3802 +#: FlatCAMApp.py:4122 FlatCAMApp.py:4159 msgid "Failed. Select a Geometry Object and try again." msgstr "Ha fallado. Seleccione un objeto de Geometría y vuelva a intentarlo." -#: App_Main.py:3769 App_Main.py:3807 +#: FlatCAMApp.py:4126 FlatCAMApp.py:4164 msgid "Expected a GeometryObject, got" msgstr "Se esperaba un GeometryObject, se obtuvo" -#: App_Main.py:3784 +#: FlatCAMApp.py:4141 msgid "A Geometry object was converted to MultiGeo type." msgstr "Un objeto Geometry fue convertido al tipo MultiGeo." -#: App_Main.py:3822 +#: FlatCAMApp.py:4179 msgid "A Geometry object was converted to SingleGeo type." msgstr "Un objeto Geometry fue convertido al tipo SingleGeo." -#: App_Main.py:4029 +#: FlatCAMApp.py:4472 msgid "Toggle Units" msgstr "(Escriba ayuda para empezar)" -#: App_Main.py:4033 +#: FlatCAMApp.py:4474 msgid "" "Changing the units of the project\n" "will scale all objects.\n" @@ -17487,28 +549,33 @@ msgstr "" "\n" "¿Quieres continuar?" -#: App_Main.py:4036 App_Main.py:4223 App_Main.py:4306 App_Main.py:6809 -#: App_Main.py:6825 App_Main.py:7163 App_Main.py:7175 +#: FlatCAMApp.py:4477 FlatCAMApp.py:5025 FlatCAMApp.py:5102 FlatCAMApp.py:7728 +#: FlatCAMApp.py:7742 FlatCAMApp.py:8075 FlatCAMApp.py:8085 msgid "Ok" msgstr "De acuerdo" -#: App_Main.py:4086 +#: FlatCAMApp.py:4526 msgid "Converted units to" msgstr "Convertir unidades a" -#: App_Main.py:4121 +#: FlatCAMApp.py:4928 msgid "Detachable Tabs" msgstr "Tabulacion desmontables" -#: App_Main.py:4150 -msgid "Workspace enabled." -msgstr "Espacio de trabajo habilitado." +#: FlatCAMApp.py:5014 flatcamTools/ToolNCC.py:932 flatcamTools/ToolNCC.py:1431 +#: flatcamTools/ToolPaint.py:858 flatcamTools/ToolSolderPaste.py:568 +#: flatcamTools/ToolSolderPaste.py:893 +msgid "Please enter a tool diameter with non-zero value, in Float format." +msgstr "" +"Introduzca un diámetro de herramienta con valor distinto de cero, en formato " +"Float." -#: App_Main.py:4153 -msgid "Workspace disabled." -msgstr "Espacio de trabajo deshabilitado." +#: FlatCAMApp.py:5018 flatcamTools/ToolNCC.py:936 flatcamTools/ToolPaint.py:862 +#: flatcamTools/ToolSolderPaste.py:572 +msgid "Adding Tool cancelled" +msgstr "Añadiendo herramienta cancelada" -#: App_Main.py:4217 +#: FlatCAMApp.py:5021 msgid "" "Adding Tool works only when Advanced is checked.\n" "Go to Preferences -> General - Show Advanced Options." @@ -17516,11 +583,11 @@ msgstr "" "Agregar herramienta solo funciona cuando se selecciona Avanzado.\n" "Vaya a Preferencias -> General - Mostrar opciones avanzadas." -#: App_Main.py:4299 +#: FlatCAMApp.py:5097 msgid "Delete objects" msgstr "Eliminar objetos" -#: App_Main.py:4304 +#: FlatCAMApp.py:5100 msgid "" "Are you sure you want to permanently delete\n" "the selected objects?" @@ -17528,86 +595,147 @@ msgstr "" "¿Estás seguro de que deseas eliminarlo permanentemente?\n" "los objetos seleccionados?" -#: App_Main.py:4348 +#: FlatCAMApp.py:5138 msgid "Object(s) deleted" msgstr "Objeto (s) eliminado" -#: App_Main.py:4352 +#: FlatCAMApp.py:5142 FlatCAMApp.py:5297 flatcamTools/ToolDblSided.py:818 +msgid "Failed. No object(s) selected..." +msgstr "Ha fallado. Ningún objeto (s) seleccionado ..." + +#: FlatCAMApp.py:5144 msgid "Save the work in Editor and try again ..." msgstr "Guarda el trabajo en el Editor y vuelve a intentarlo ..." -#: App_Main.py:4381 +#: FlatCAMApp.py:5173 msgid "Object deleted" msgstr "Objeto eliminado" -#: App_Main.py:4408 +#: FlatCAMApp.py:5200 msgid "Click to set the origin ..." msgstr "Haga clic para establecer el origen ..." -#: App_Main.py:4430 +#: FlatCAMApp.py:5222 msgid "Setting Origin..." msgstr "Establecer Origen ..." -#: App_Main.py:4443 App_Main.py:4545 +#: FlatCAMApp.py:5235 FlatCAMApp.py:5337 msgid "Origin set" msgstr "Conjunto de origen" -#: App_Main.py:4460 +#: FlatCAMApp.py:5252 msgid "Origin coordinates specified but incomplete." msgstr "Origin coordinates specified but incomplete." -#: App_Main.py:4501 +#: FlatCAMApp.py:5293 msgid "Moving to Origin..." msgstr "Mudarse al origen ..." -#: App_Main.py:4582 +#: FlatCAMApp.py:5374 msgid "Jump to ..." msgstr "Salta a ..." -#: App_Main.py:4583 +#: FlatCAMApp.py:5375 msgid "Enter the coordinates in format X,Y:" msgstr "Introduzca las coordenadas en formato X, Y:" -#: App_Main.py:4593 +#: FlatCAMApp.py:5385 msgid "Wrong coordinates. Enter coordinates in format: X,Y" msgstr "Coordenadas erróneas. Introduzca las coordenadas en formato: X, Y" -#: App_Main.py:4711 +#: FlatCAMApp.py:5463 FlatCAMApp.py:5612 +#: flatcamEditors/FlatCAMExcEditor.py:3624 +#: flatcamEditors/FlatCAMExcEditor.py:3632 +#: flatcamEditors/FlatCAMGeoEditor.py:4349 +#: flatcamEditors/FlatCAMGeoEditor.py:4363 +#: flatcamEditors/FlatCAMGrbEditor.py:1087 +#: flatcamEditors/FlatCAMGrbEditor.py:1204 +#: flatcamEditors/FlatCAMGrbEditor.py:1490 +#: flatcamEditors/FlatCAMGrbEditor.py:1759 +#: flatcamEditors/FlatCAMGrbEditor.py:4622 +#: flatcamEditors/FlatCAMGrbEditor.py:4637 flatcamGUI/FlatCAMGUI.py:3424 +#: flatcamGUI/FlatCAMGUI.py:3436 flatcamTools/ToolAlignObjects.py:393 +#: flatcamTools/ToolAlignObjects.py:415 +msgid "Done." +msgstr "Hecho." + +#: FlatCAMApp.py:5478 FlatCAMApp.py:7724 FlatCAMApp.py:7819 FlatCAMApp.py:7860 +#: FlatCAMApp.py:7901 FlatCAMApp.py:7942 FlatCAMApp.py:7983 FlatCAMApp.py:8027 +#: FlatCAMApp.py:8071 FlatCAMApp.py:8593 FlatCAMApp.py:8597 +#: flatcamTools/ToolProperties.py:116 +msgid "No object selected." +msgstr "Ningún objeto seleccionado." + +#: FlatCAMApp.py:5497 msgid "Bottom-Left" msgstr "Abajo-izquierda" -#: App_Main.py:4714 +#: FlatCAMApp.py:5498 flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:131 +#: flatcamTools/ToolCalibration.py:159 +msgid "Top-Left" +msgstr "Arriba a la izquierda" + +#: FlatCAMApp.py:5499 flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:132 +#: flatcamTools/ToolCalibration.py:160 +msgid "Bottom-Right" +msgstr "Abajo a la derecha" + +#: FlatCAMApp.py:5500 msgid "Top-Right" msgstr "Top-Derecha" -#: App_Main.py:4735 +#: FlatCAMApp.py:5501 flatcamGUI/ObjectUI.py:2706 +msgid "Center" +msgstr "Centrar" + +#: FlatCAMApp.py:5521 msgid "Locate ..." msgstr "Localizar ..." -#: App_Main.py:5008 App_Main.py:5085 +#: FlatCAMApp.py:5779 FlatCAMApp.py:5856 msgid "No object is selected. Select an object and try again." msgstr "" "Ningún objeto está seleccionado. Seleccione un objeto y vuelva a intentarlo." -#: App_Main.py:5111 +#: FlatCAMApp.py:5882 msgid "" "Aborting. The current task will be gracefully closed as soon as possible..." msgstr "Abortar La tarea actual se cerrará con gracia lo antes posible ..." -#: App_Main.py:5117 +#: FlatCAMApp.py:5888 msgid "The current task was gracefully closed on user request..." msgstr "La tarea actual se cerró correctamente a petición del usuario ..." -#: App_Main.py:5291 +#: FlatCAMApp.py:5916 flatcamGUI/preferences/PreferencesUIManager.py:905 +#: flatcamGUI/preferences/PreferencesUIManager.py:949 +#: flatcamGUI/preferences/PreferencesUIManager.py:970 +#: flatcamGUI/preferences/PreferencesUIManager.py:1075 +msgid "Preferences" +msgstr "Preferencias" + +#: FlatCAMApp.py:5981 FlatCAMApp.py:6009 FlatCAMApp.py:6036 FlatCAMApp.py:6056 +#: FlatCAMDB.py:738 FlatCAMDB.py:913 FlatCAMDB.py:2200 FlatCAMDB.py:2418 +#: flatcamObjects/FlatCAMGeometry.py:890 flatcamTools/ToolNCC.py:3963 +#: flatcamTools/ToolNCC.py:4047 flatcamTools/ToolPaint.py:3553 +#: flatcamTools/ToolPaint.py:3638 +msgid "Tools Database" +msgstr "Base de Datos de Herramientas" + +#: FlatCAMApp.py:6033 msgid "Tools in Tools Database edited but not saved." msgstr "" "Herramientas en la base de datos de herramientas editadas pero no guardadas." -#: App_Main.py:5330 +#: FlatCAMApp.py:6060 flatcamTools/ToolNCC.py:3970 +#: flatcamTools/ToolPaint.py:3560 +msgid "Tool from DB added in Tool Table." +msgstr "Herramienta de DB agregada en la Tabla de herramientas." + +#: FlatCAMApp.py:6062 msgid "Adding tool from DB is not allowed for this object." msgstr "No se permite agregar herramientas desde DB para este objeto." -#: App_Main.py:5348 +#: FlatCAMApp.py:6080 msgid "" "One or more Tools are edited.\n" "Do you want to update the Tools Database?" @@ -17615,113 +743,175 @@ msgstr "" "Se editan una o más herramientas.\n" "¿Desea actualizar la base de datos de herramientas?" -#: App_Main.py:5350 +#: FlatCAMApp.py:6082 msgid "Save Tools Database" msgstr "Guardar base de datos de herramientas" -#: App_Main.py:5404 +#: FlatCAMApp.py:6135 msgid "No object selected to Flip on Y axis." msgstr "Ningún objeto seleccionado para Voltear en el eje Y." -#: App_Main.py:5430 +#: FlatCAMApp.py:6161 msgid "Flip on Y axis done." msgstr "Voltear sobre el eje Y hecho." -#: App_Main.py:5452 +#: FlatCAMApp.py:6163 FlatCAMApp.py:6211 +#: flatcamEditors/FlatCAMGrbEditor.py:6059 +msgid "Flip action was not executed." +msgstr "La acción de voltear no se ejecutó." + +#: FlatCAMApp.py:6183 msgid "No object selected to Flip on X axis." msgstr "Ningún objeto seleccionado para Voltear en el eje X." -#: App_Main.py:5478 +#: FlatCAMApp.py:6209 msgid "Flip on X axis done." msgstr "Voltear sobre el eje X hecho." -#: App_Main.py:5500 +#: FlatCAMApp.py:6231 msgid "No object selected to Rotate." msgstr "Ningún objeto seleccionado para rotar." -#: App_Main.py:5503 App_Main.py:5554 App_Main.py:5591 +#: FlatCAMApp.py:6234 FlatCAMApp.py:6287 FlatCAMApp.py:6326 msgid "Transform" msgstr "Transformar" -#: App_Main.py:5503 App_Main.py:5554 App_Main.py:5591 +#: FlatCAMApp.py:6234 FlatCAMApp.py:6287 FlatCAMApp.py:6326 msgid "Enter the Angle value:" msgstr "Ingrese el valor del ángulo:" -#: App_Main.py:5533 +#: FlatCAMApp.py:6265 msgid "Rotation done." msgstr "Rotación hecha." -#: App_Main.py:5535 +#: FlatCAMApp.py:6267 msgid "Rotation movement was not executed." msgstr "El movimiento de rotación no se ejecutó." -#: App_Main.py:5552 +#: FlatCAMApp.py:6285 msgid "No object selected to Skew/Shear on X axis." msgstr "Ningún objeto seleccionado para sesgar / cortar en el eje X." -#: App_Main.py:5573 +#: FlatCAMApp.py:6307 msgid "Skew on X axis done." msgstr "Sesgar en el eje X hecho." -#: App_Main.py:5589 +#: FlatCAMApp.py:6324 msgid "No object selected to Skew/Shear on Y axis." msgstr "Ningún objeto seleccionado para sesgar / cortar en el eje Y." -#: App_Main.py:5610 +#: FlatCAMApp.py:6346 msgid "Skew on Y axis done." msgstr "Sesgar en el eje Y hecho." -#: App_Main.py:5688 +#: FlatCAMApp.py:6497 FlatCAMApp.py:6544 flatcamGUI/FlatCAMGUI.py:503 +#: flatcamGUI/FlatCAMGUI.py:1728 +msgid "Select All" +msgstr "Seleccionar todo" + +#: FlatCAMApp.py:6501 FlatCAMApp.py:6548 flatcamGUI/FlatCAMGUI.py:505 +msgid "Deselect All" +msgstr "Deseleccionar todo" + +#: FlatCAMApp.py:6564 +msgid "All objects are selected." +msgstr "Todos los objetos están seleccionados." + +#: FlatCAMApp.py:6574 +msgid "Objects selection is cleared." +msgstr "La selección de objetos se borra." + +#: FlatCAMApp.py:6594 flatcamGUI/FlatCAMGUI.py:1721 +msgid "Grid On/Off" +msgstr "Grid On/Off" + +#: FlatCAMApp.py:6606 flatcamEditors/FlatCAMGeoEditor.py:939 +#: flatcamEditors/FlatCAMGrbEditor.py:2583 +#: flatcamEditors/FlatCAMGrbEditor.py:5641 flatcamGUI/ObjectUI.py:1595 +#: flatcamTools/ToolDblSided.py:192 flatcamTools/ToolDblSided.py:425 +#: flatcamTools/ToolNCC.py:294 flatcamTools/ToolNCC.py:631 +#: flatcamTools/ToolPaint.py:277 flatcamTools/ToolPaint.py:676 +#: flatcamTools/ToolSolderPaste.py:122 flatcamTools/ToolSolderPaste.py:597 +#: flatcamTools/ToolTransform.py:478 +msgid "Add" +msgstr "Añadir" + +#: FlatCAMApp.py:6608 flatcamEditors/FlatCAMGrbEditor.py:2588 +#: flatcamEditors/FlatCAMGrbEditor.py:2736 flatcamGUI/FlatCAMGUI.py:751 +#: flatcamGUI/FlatCAMGUI.py:1074 flatcamGUI/FlatCAMGUI.py:2141 +#: flatcamGUI/FlatCAMGUI.py:2284 flatcamGUI/FlatCAMGUI.py:2777 +#: flatcamGUI/ObjectUI.py:1623 flatcamObjects/FlatCAMGeometry.py:505 +#: flatcamTools/ToolNCC.py:316 flatcamTools/ToolNCC.py:637 +#: flatcamTools/ToolPaint.py:299 flatcamTools/ToolPaint.py:682 +#: flatcamTools/ToolSolderPaste.py:128 flatcamTools/ToolSolderPaste.py:600 +msgid "Delete" +msgstr "Borrar" + +#: FlatCAMApp.py:6624 msgid "New Grid ..." msgstr "Nueva rejilla ..." -#: App_Main.py:5689 +#: FlatCAMApp.py:6625 msgid "Enter a Grid Value:" msgstr "Introduzca un valor de cuadrícula:" -#: App_Main.py:5697 App_Main.py:5721 +#: FlatCAMApp.py:6633 FlatCAMApp.py:6660 msgid "Please enter a grid value with non-zero value, in Float format." msgstr "" "Introduzca un valor de cuadrícula con un valor distinto de cero, en formato " "Float." -#: App_Main.py:5702 +#: FlatCAMApp.py:6639 msgid "New Grid added" msgstr "Nueva rejilla" -#: App_Main.py:5704 +#: FlatCAMApp.py:6642 msgid "Grid already exists" msgstr "La rejilla ya existe" -#: App_Main.py:5706 +#: FlatCAMApp.py:6645 msgid "Adding New Grid cancelled" msgstr "Agregar nueva cuadrícula cancelado" -#: App_Main.py:5727 +#: FlatCAMApp.py:6667 msgid " Grid Value does not exist" msgstr " El valor de cuadrícula no existe" -#: App_Main.py:5729 +#: FlatCAMApp.py:6670 msgid "Grid Value deleted" msgstr "Valor de cuadrícula eliminado" -#: App_Main.py:5731 +#: FlatCAMApp.py:6673 msgid "Delete Grid value cancelled" msgstr "Eliminar el valor de cuadrícula cancelado" -#: App_Main.py:5737 +#: FlatCAMApp.py:6679 msgid "Key Shortcut List" msgstr "Lista de atajos de teclas" -#: App_Main.py:5771 +#: FlatCAMApp.py:6713 msgid " No object selected to copy it's name" msgstr " Ningún objeto seleccionado para copiar su nombre" -#: App_Main.py:5775 +#: FlatCAMApp.py:6717 msgid "Name copied on clipboard ..." msgstr "Nombre copiado en el portapapeles ..." -#: App_Main.py:6408 +#: FlatCAMApp.py:6930 flatcamEditors/FlatCAMGrbEditor.py:4554 +msgid "Coordinates copied to clipboard." +msgstr "Coordenadas copiadas al portapapeles." + +#: FlatCAMApp.py:7167 FlatCAMApp.py:7173 FlatCAMApp.py:7179 FlatCAMApp.py:7185 +#: flatcamObjects/ObjectCollection.py:922 +#: flatcamObjects/ObjectCollection.py:928 +#: flatcamObjects/ObjectCollection.py:934 +#: flatcamObjects/ObjectCollection.py:940 +#: flatcamObjects/ObjectCollection.py:946 +#: flatcamObjects/ObjectCollection.py:952 +msgid "selected" +msgstr "seleccionado" + +#: FlatCAMApp.py:7340 msgid "" "There are files/objects opened in FlatCAM.\n" "Creating a New project will delete them.\n" @@ -17731,12 +921,17 @@ msgstr "" "Crear un nuevo proyecto los borrará.\n" "¿Quieres guardar el proyecto?" -#: App_Main.py:6431 +#: FlatCAMApp.py:7361 msgid "New Project created" msgstr "Nuevo proyecto creado" -#: App_Main.py:6603 App_Main.py:6642 App_Main.py:6686 App_Main.py:6756 -#: App_Main.py:7550 App_Main.py:8763 App_Main.py:8825 +#: FlatCAMApp.py:7519 FlatCAMApp.py:7523 flatcamGUI/FlatCAMGUI.py:836 +#: flatcamGUI/FlatCAMGUI.py:2544 +msgid "Open Gerber" +msgstr "Abrir gerber" + +#: FlatCAMApp.py:7528 FlatCAMApp.py:7565 FlatCAMApp.py:7607 FlatCAMApp.py:7677 +#: FlatCAMApp.py:8462 FlatCAMApp.py:9675 FlatCAMApp.py:9737 msgid "" "Canvas initialization started.\n" "Canvas initialization finished in" @@ -17744,294 +939,349 @@ msgstr "" "Se inició la inicialización del lienzo.\n" "La inicialización del lienzo terminó en" -#: App_Main.py:6605 +#: FlatCAMApp.py:7530 msgid "Opening Gerber file." msgstr "Abriendo el archivo Gerber." -#: App_Main.py:6644 +#: FlatCAMApp.py:7557 FlatCAMApp.py:7561 flatcamGUI/FlatCAMGUI.py:838 +#: flatcamGUI/FlatCAMGUI.py:2546 +msgid "Open Excellon" +msgstr "Abierto Excellon" + +#: FlatCAMApp.py:7567 msgid "Opening Excellon file." msgstr "Abriendo el archivo Excellon." -#: App_Main.py:6675 App_Main.py:6680 +#: FlatCAMApp.py:7598 FlatCAMApp.py:7602 msgid "Open G-Code" msgstr "Código G abierto" -#: App_Main.py:6688 +#: FlatCAMApp.py:7609 msgid "Opening G-Code file." msgstr "Abriendo el archivo G-code." -#: App_Main.py:6747 App_Main.py:6751 +#: FlatCAMApp.py:7632 FlatCAMApp.py:7635 flatcamGUI/FlatCAMGUI.py:1730 +msgid "Open Project" +msgstr "Proyecto abierto" + +#: FlatCAMApp.py:7668 FlatCAMApp.py:7672 msgid "Open HPGL2" msgstr "Abra HPGL2" -#: App_Main.py:6758 +#: FlatCAMApp.py:7679 msgid "Opening HPGL2 file." msgstr "Abrir el archivo HPGL2." -#: App_Main.py:6781 App_Main.py:6784 +#: FlatCAMApp.py:7702 FlatCAMApp.py:7705 msgid "Open Configuration File" msgstr "Abrir archivo de configuración" -#: App_Main.py:6804 App_Main.py:7158 +#: FlatCAMApp.py:7725 FlatCAMApp.py:8072 msgid "Please Select a Geometry object to export" msgstr "Seleccione un objeto de geometría para exportar" -#: App_Main.py:6820 +#: FlatCAMApp.py:7739 msgid "Only Geometry, Gerber and CNCJob objects can be used." msgstr "Solo se pueden utilizar objetos Geometry, Gerber y CNCJob." -#: App_Main.py:6865 +#: FlatCAMApp.py:7752 FlatCAMApp.py:7756 flatcamTools/ToolQRCode.py:829 +#: flatcamTools/ToolQRCode.py:833 +msgid "Export SVG" +msgstr "Exportar SVG" + +#: FlatCAMApp.py:7781 msgid "Data must be a 3D array with last dimension 3 or 4" msgstr "Los datos deben ser una matriz 3D con la última dimensión 3 o 4" -#: App_Main.py:6871 App_Main.py:6875 +#: FlatCAMApp.py:7787 FlatCAMApp.py:7791 msgid "Export PNG Image" msgstr "Exportar imagen PNG" -#: App_Main.py:6908 App_Main.py:7118 +#: FlatCAMApp.py:7824 FlatCAMApp.py:8032 msgid "Failed. Only Gerber objects can be saved as Gerber files..." msgstr "" "Ha fallado. Solo los objetos Gerber se pueden guardar como archivos " "Gerber ..." -#: App_Main.py:6920 +#: FlatCAMApp.py:7836 msgid "Save Gerber source file" msgstr "Guardar el archivo fuente de Gerber" -#: App_Main.py:6949 +#: FlatCAMApp.py:7865 msgid "Failed. Only Script objects can be saved as TCL Script files..." msgstr "" "Ha fallado. Solo los objetos Script se pueden guardar como archivos TCL " "Script ..." -#: App_Main.py:6961 +#: FlatCAMApp.py:7877 msgid "Save Script source file" msgstr "Guardar archivo fuente de script" -#: App_Main.py:6990 +#: FlatCAMApp.py:7906 msgid "Failed. Only Document objects can be saved as Document files..." msgstr "" "Ha fallado. Solo los objetos de documento se pueden guardar como archivos de " "documento ..." -#: App_Main.py:7002 +#: FlatCAMApp.py:7918 msgid "Save Document source file" msgstr "Guardar archivo fuente del Documento" -#: App_Main.py:7032 App_Main.py:7074 App_Main.py:8033 +#: FlatCAMApp.py:7947 FlatCAMApp.py:7988 FlatCAMApp.py:8945 msgid "Failed. Only Excellon objects can be saved as Excellon files..." msgstr "" "Ha fallado. Solo los objetos Excellon se pueden guardar como archivos " "Excellon ..." -#: App_Main.py:7040 App_Main.py:7045 +#: FlatCAMApp.py:7955 FlatCAMApp.py:7959 msgid "Save Excellon source file" msgstr "Guardar el archivo fuente de Excellon" -#: App_Main.py:7082 App_Main.py:7086 +#: FlatCAMApp.py:7996 FlatCAMApp.py:8000 msgid "Export Excellon" msgstr "Exportar Excellon" -#: App_Main.py:7126 App_Main.py:7130 +#: FlatCAMApp.py:8040 FlatCAMApp.py:8044 msgid "Export Gerber" msgstr "Gerber Exportación" -#: App_Main.py:7170 +#: FlatCAMApp.py:8082 msgid "Only Geometry objects can be used." msgstr "Solo se pueden utilizar objetos de Geometría." -#: App_Main.py:7186 App_Main.py:7190 +#: FlatCAMApp.py:8096 FlatCAMApp.py:8100 msgid "Export DXF" msgstr "Exportar DXF" -#: App_Main.py:7215 App_Main.py:7218 +#: FlatCAMApp.py:8125 FlatCAMApp.py:8128 msgid "Import SVG" msgstr "Importar SVG" -#: App_Main.py:7246 App_Main.py:7250 +#: FlatCAMApp.py:8156 FlatCAMApp.py:8160 msgid "Import DXF" msgstr "Importar DXF" -#: App_Main.py:7300 +#: FlatCAMApp.py:8210 msgid "Viewing the source code of the selected object." msgstr "Ver el código fuente del objeto seleccionado." -#: App_Main.py:7307 App_Main.py:7311 +#: FlatCAMApp.py:8211 flatcamObjects/FlatCAMCNCJob.py:548 +#: flatcamObjects/FlatCAMScript.py:134 +msgid "Loading..." +msgstr "Cargando..." + +#: FlatCAMApp.py:8217 FlatCAMApp.py:8221 msgid "Select an Gerber or Excellon file to view it's source file." msgstr "Seleccione un archivo Gerber o Excellon para ver su archivo fuente." -#: App_Main.py:7325 +#: FlatCAMApp.py:8235 msgid "Source Editor" msgstr "Editor de fuente" -#: App_Main.py:7365 App_Main.py:7372 +#: FlatCAMApp.py:8275 FlatCAMApp.py:8282 msgid "There is no selected object for which to see it's source file code." msgstr "No hay ningún objeto seleccionado para el cual ver su código fuente." -#: App_Main.py:7384 +#: FlatCAMApp.py:8294 msgid "Failed to load the source code for the selected object" msgstr "Error al cargar el código fuente para el objeto seleccionado" -#: App_Main.py:7420 +#: FlatCAMApp.py:8308 flatcamObjects/FlatCAMCNCJob.py:562 +msgid "Code Editor" +msgstr "Editor de código" + +#: FlatCAMApp.py:8330 msgid "Go to Line ..." msgstr "Ir a la línea ..." -#: App_Main.py:7421 +#: FlatCAMApp.py:8331 msgid "Line:" msgstr "Línea:" -#: App_Main.py:7448 +#: FlatCAMApp.py:8360 msgid "New TCL script file created in Code Editor." msgstr "Nuevo archivo de script TCL creado en Code Editor." -#: App_Main.py:7484 App_Main.py:7486 App_Main.py:7522 App_Main.py:7524 +#: FlatCAMApp.py:8396 FlatCAMApp.py:8398 FlatCAMApp.py:8434 FlatCAMApp.py:8436 msgid "Open TCL script" msgstr "Abrir script TCL" -#: App_Main.py:7552 +#: FlatCAMApp.py:8464 msgid "Executing ScriptObject file." msgstr "Ejecutando archivo ScriptObject." -#: App_Main.py:7560 App_Main.py:7563 +#: FlatCAMApp.py:8472 FlatCAMApp.py:8475 msgid "Run TCL script" msgstr "Ejecutar script TCL" -#: App_Main.py:7586 +#: FlatCAMApp.py:8498 msgid "TCL script file opened in Code Editor and executed." msgstr "El archivo de script TCL se abrió en el Editor de código y se ejecutó." -#: App_Main.py:7637 App_Main.py:7643 +#: FlatCAMApp.py:8549 FlatCAMApp.py:8555 msgid "Save Project As ..." msgstr "Guardar proyecto como ..." -#: App_Main.py:7678 +#: FlatCAMApp.py:8551 flatcamGUI/FlatCAMGUI.py:1134 +#: flatcamGUI/FlatCAMGUI.py:2176 +msgid "Project" +msgstr "Proyecto" + +#: FlatCAMApp.py:8590 msgid "FlatCAM objects print" msgstr "Impresión de objetos FlatCAM" -#: App_Main.py:7691 App_Main.py:7698 +#: FlatCAMApp.py:8603 FlatCAMApp.py:8610 msgid "Save Object as PDF ..." msgstr "Guardar objeto como PDF ..." -#: App_Main.py:7707 +#: FlatCAMApp.py:8619 msgid "Printing PDF ... Please wait." msgstr "Imprimiendo PDF ... Por favor espere." -#: App_Main.py:7886 +#: FlatCAMApp.py:8798 msgid "PDF file saved to" msgstr "Archivo PDF guardado en" -#: App_Main.py:7911 +#: FlatCAMApp.py:8823 msgid "Exporting SVG" msgstr "Exportando SVG" -#: App_Main.py:7954 +#: FlatCAMApp.py:8866 msgid "SVG file exported to" msgstr "Archivo SVG exportado a" -#: App_Main.py:7980 +#: FlatCAMApp.py:8892 msgid "" "Save cancelled because source file is empty. Try to export the Gerber file." msgstr "" "Guardar cancelado porque el archivo fuente está vacío. Intenta exportar el " "archivo Gerber." -#: App_Main.py:8127 +#: FlatCAMApp.py:9039 msgid "Excellon file exported to" msgstr "Archivo Excellon exportado a" -#: App_Main.py:8136 +#: FlatCAMApp.py:9048 msgid "Exporting Excellon" msgstr "Exportando excellon" -#: App_Main.py:8141 App_Main.py:8148 +#: FlatCAMApp.py:9053 FlatCAMApp.py:9060 msgid "Could not export Excellon file." msgstr "No se pudo exportar el archivo Excellon." -#: App_Main.py:8263 +#: FlatCAMApp.py:9175 msgid "Gerber file exported to" msgstr "Archivo Gerber exportado a" -#: App_Main.py:8271 +#: FlatCAMApp.py:9183 msgid "Exporting Gerber" msgstr "Gerber exportador" -#: App_Main.py:8276 App_Main.py:8283 +#: FlatCAMApp.py:9188 FlatCAMApp.py:9195 msgid "Could not export Gerber file." msgstr "No se pudo exportar el archivo Gerber." -#: App_Main.py:8318 +#: FlatCAMApp.py:9230 msgid "DXF file exported to" msgstr "Archivo DXF exportado a" -#: App_Main.py:8324 +#: FlatCAMApp.py:9236 msgid "Exporting DXF" msgstr "Exportando DXF" -#: App_Main.py:8329 App_Main.py:8336 +#: FlatCAMApp.py:9241 FlatCAMApp.py:9248 msgid "Could not export DXF file." msgstr "No se pudo exportar el archivo DXF." -#: App_Main.py:8370 +#: FlatCAMApp.py:9272 FlatCAMApp.py:9319 flatcamTools/ToolImage.py:277 +msgid "" +"Not supported type is picked as parameter. Only Geometry and Gerber are " +"supported" +msgstr "" +"El tipo no soportado se elige como parámetro. Solo Geometría y Gerber son " +"compatibles" + +#: FlatCAMApp.py:9282 msgid "Importing SVG" msgstr "Importando SVG" -#: App_Main.py:8378 App_Main.py:8424 +#: FlatCAMApp.py:9290 FlatCAMApp.py:9336 msgid "Import failed." msgstr "Importación fallida." -#: App_Main.py:8416 +#: FlatCAMApp.py:9297 FlatCAMApp.py:9343 FlatCAMApp.py:9407 FlatCAMApp.py:9474 +#: FlatCAMApp.py:9540 FlatCAMApp.py:9605 FlatCAMApp.py:9662 +#: flatcamTools/ToolImage.py:297 flatcamTools/ToolPDF.py:225 +msgid "Opened" +msgstr "Abierto" + +#: FlatCAMApp.py:9328 msgid "Importing DXF" msgstr "Importando DXF" -#: App_Main.py:8457 App_Main.py:8652 App_Main.py:8717 +#: FlatCAMApp.py:9369 FlatCAMApp.py:9564 FlatCAMApp.py:9629 msgid "Failed to open file" msgstr "Fallo al abrir el archivo" -#: App_Main.py:8460 App_Main.py:8655 App_Main.py:8720 +#: FlatCAMApp.py:9372 FlatCAMApp.py:9567 FlatCAMApp.py:9632 msgid "Failed to parse file" msgstr "Error al analizar el archivo" -#: App_Main.py:8472 +#: FlatCAMApp.py:9384 msgid "Object is not Gerber file or empty. Aborting object creation." msgstr "" "El objeto no es un archivo Gerber o está vacío. Anulando la creación de " "objetos." -#: App_Main.py:8477 +#: FlatCAMApp.py:9389 msgid "Opening Gerber" msgstr "Apertura de gerber" -#: App_Main.py:8488 +#: FlatCAMApp.py:9400 msgid "Open Gerber failed. Probable not a Gerber file." msgstr "Gerber abierto falló. Probablemente no sea un archivo Gerber." -#: App_Main.py:8524 +#: FlatCAMApp.py:9432 flatcamTools/ToolPcbWizard.py:424 +msgid "This is not Excellon file." +msgstr "Este no es un archivo de Excellon." + +#: FlatCAMApp.py:9436 msgid "Cannot open file" msgstr "No se puede abrir el archivo" -#: App_Main.py:8545 +#: FlatCAMApp.py:9454 flatcamTools/ToolPDF.py:275 +#: flatcamTools/ToolPcbWizard.py:445 +msgid "No geometry found in file" +msgstr "No se encontró geometría en el archivo" + +#: FlatCAMApp.py:9457 msgid "Opening Excellon." msgstr "Apertura Excellon." -#: App_Main.py:8555 +#: FlatCAMApp.py:9467 msgid "Open Excellon file failed. Probable not an Excellon file." msgstr "" "Error al abrir el archivo Excellon. Probablemente no sea un archivo de " "Excellon." -#: App_Main.py:8587 +#: FlatCAMApp.py:9499 msgid "Reading GCode file" msgstr "Lectura de archivo GCode" -#: App_Main.py:8600 +#: FlatCAMApp.py:9505 +msgid "Failed to open" +msgstr "Falló al abrir" + +#: FlatCAMApp.py:9512 msgid "This is not GCODE" msgstr "Esto no es GCODE" -#: App_Main.py:8605 +#: FlatCAMApp.py:9517 msgid "Opening G-Code." msgstr "Apertura del código G." -#: App_Main.py:8618 +#: FlatCAMApp.py:9530 msgid "" "Failed to create CNCJob Object. Probable not a GCode file. Try to load it " "from File menu.\n" @@ -18043,122 +1293,126 @@ msgstr "" "Intento de crear un objeto FlatCAM CNCJob desde el archivo G-Code falló " "durante el procesamiento" -#: App_Main.py:8674 +#: FlatCAMApp.py:9586 msgid "Object is not HPGL2 file or empty. Aborting object creation." msgstr "" "El objeto no es un archivo HPGL2 o está vacío. Anulando la creación de " "objetos." -#: App_Main.py:8679 +#: FlatCAMApp.py:9591 msgid "Opening HPGL2" msgstr "Apertura de HPGL2" -#: App_Main.py:8686 +#: FlatCAMApp.py:9598 msgid " Open HPGL2 failed. Probable not a HPGL2 file." msgstr " Abrir HPGL2 falló. Probablemente no sea un archivo HPGL2." -#: App_Main.py:8712 +#: FlatCAMApp.py:9624 msgid "TCL script file opened in Code Editor." msgstr "Archivo de script TCL abierto en Code Editor." -#: App_Main.py:8732 +#: FlatCAMApp.py:9644 msgid "Opening TCL Script..." msgstr "Abriendo TCL Script ..." -#: App_Main.py:8743 +#: FlatCAMApp.py:9655 msgid "Failed to open TCL Script." msgstr "Error al abrir la secuencia de comandos TCL." -#: App_Main.py:8765 +#: FlatCAMApp.py:9677 msgid "Opening FlatCAM Config file." msgstr "Abrir el archivo de configuración de FlatCAM." -#: App_Main.py:8793 +#: FlatCAMApp.py:9705 msgid "Failed to open config file" msgstr "Error al abrir el archivo de configuración" -#: App_Main.py:8822 +#: FlatCAMApp.py:9734 msgid "Loading Project ... Please Wait ..." msgstr "Cargando proyecto ... Espere ..." -#: App_Main.py:8827 +#: FlatCAMApp.py:9739 msgid "Opening FlatCAM Project file." msgstr "Apertura del archivo del proyecto FlatCAM." -#: App_Main.py:8842 App_Main.py:8846 App_Main.py:8863 +#: FlatCAMApp.py:9754 FlatCAMApp.py:9758 FlatCAMApp.py:9775 msgid "Failed to open project file" msgstr "Error al abrir el archivo del proyecto" -#: App_Main.py:8900 +#: FlatCAMApp.py:9812 msgid "Loading Project ... restoring" msgstr "Cargando Proyecto ... restaurando" -#: App_Main.py:8910 +#: FlatCAMApp.py:9822 msgid "Project loaded from" msgstr "Proyecto cargado desde" -#: App_Main.py:8936 +#: FlatCAMApp.py:9846 msgid "Redrawing all objects" msgstr "Redibujando todos los objetos" -#: App_Main.py:9024 +#: FlatCAMApp.py:9934 msgid "Failed to load recent item list." msgstr "Error al cargar la lista de elementos recientes." -#: App_Main.py:9031 +#: FlatCAMApp.py:9941 msgid "Failed to parse recent item list." msgstr "Error al analizar la lista de elementos recientes." -#: App_Main.py:9041 +#: FlatCAMApp.py:9951 msgid "Failed to load recent projects item list." msgstr "Error al cargar la lista de elementos de proyectos recientes." -#: App_Main.py:9048 +#: FlatCAMApp.py:9958 msgid "Failed to parse recent project item list." msgstr "Error al analizar la lista de elementos del proyecto reciente." -#: App_Main.py:9109 +#: FlatCAMApp.py:10019 msgid "Clear Recent projects" msgstr "Borrar proyectos recientes" -#: App_Main.py:9133 +#: FlatCAMApp.py:10043 msgid "Clear Recent files" msgstr "Borrar archivos recientes" -#: App_Main.py:9235 +#: FlatCAMApp.py:10065 flatcamGUI/FlatCAMGUI.py:1363 +msgid "Shortcut Key List" +msgstr " Lista de teclas de acceso directo " + +#: FlatCAMApp.py:10145 msgid "Selected Tab - Choose an Item from Project Tab" msgstr "Pestaña Seleccionada: elija un elemento de la pestaña Proyecto" -#: App_Main.py:9236 +#: FlatCAMApp.py:10146 msgid "Details" msgstr "Detalles" -#: App_Main.py:9238 -msgid "The normal flow when working with the application is the following:" -msgstr "El flujo normal cuando se trabaja con la aplicación es el siguiente:" +#: FlatCAMApp.py:10148 +msgid "The normal flow when working in FlatCAM is the following:" +msgstr "El flujo normal cuando se trabaja en FlatCAM es el siguiente:" -#: App_Main.py:9239 +#: FlatCAMApp.py:10149 msgid "" "Load/Import a Gerber, Excellon, Gcode, DXF, Raster Image or SVG file into " -"the application using either the toolbars, key shortcuts or even dragging " -"and dropping the files on the AppGUI." +"FlatCAM using either the toolbars, key shortcuts or even dragging and " +"dropping the files on the GUI." msgstr "" "Cargue / importe un archivo Gerber, Excellon, Gcode, DXF, Raster Image o SVG " -"en la aplicación usando las barras de herramientas, atajos de teclado o " -"incluso arrastrando y soltando los archivos en la AppGUI." +"en FlatCAM usando las barras de herramientas, atajos de teclado o incluso " +"arrastrando y soltando los archivos en la GUI." -#: App_Main.py:9242 +#: FlatCAMApp.py:10152 msgid "" -"You can also load a project by double clicking on the project file, drag and " -"drop of the file into the AppGUI or through the menu (or toolbar) actions " -"offered within the app." +"You can also load a FlatCAM project by double clicking on the project file, " +"drag and drop of the file into the FLATCAM GUI or through the menu (or " +"toolbar) actions offered within the app." msgstr "" -"También puede cargar un proyecto haciendo doble clic en el archivo del " -"proyecto, arrastrando y soltando el archivo en la AppGUI o mediante las " -"acciones del menú (o barra de herramientas) ofrecidas dentro de la " -"aplicación." +"También puede cargar un proyecto FlatCAM haciendo doble clic en el archivo " +"del proyecto, arrastrando y soltando el archivo en la GUI de FLATCAM o " +"mediante las acciones del menú (o barra de herramientas) que se ofrecen " +"dentro de la aplicación." -#: App_Main.py:9245 +#: FlatCAMApp.py:10155 msgid "" "Once an object is available in the Project Tab, by selecting it and then " "focusing on SELECTED TAB (more simpler is to double click the object name in " @@ -18171,7 +1425,7 @@ msgstr "" "SELECCIONADA se actualizará con las propiedades del objeto según su tipo: " "Gerber, Objeto Excellon, Geometry o CNCJob." -#: App_Main.py:9249 +#: FlatCAMApp.py:10159 msgid "" "If the selection of the object is done on the canvas by single click " "instead, and the SELECTED TAB is in focus, again the object properties will " @@ -18185,7 +1439,7 @@ msgstr "" "el objeto en el lienzo traerá la PESTAÑA SELECCIONADA y la completará " "incluso si estaba fuera de foco." -#: App_Main.py:9253 +#: FlatCAMApp.py:10163 msgid "" "You can change the parameters in this screen and the flow direction is like " "this:" @@ -18193,7 +1447,7 @@ msgstr "" "Puede cambiar los parámetros en esta pantalla y la dirección del flujo es " "así:" -#: App_Main.py:9254 +#: FlatCAMApp.py:10164 msgid "" "Gerber/Excellon Object --> Change Parameter --> Generate Geometry --> " "Geometry Object --> Add tools (change param in Selected Tab) --> Generate " @@ -18206,7 +1460,7 @@ msgstr "" "(mediante Edit CNC Código) y / o anexar / anteponer a GCode (nuevamente, " "hecho en la PESTAÑA SELECCIONADA) -> Guardar GCode." -#: App_Main.py:9258 +#: FlatCAMApp.py:10168 msgid "" "A list of key shortcuts is available through an menu entry in Help --> " "Shortcuts List or through its own key shortcut: F3." @@ -18215,31 +1469,31 @@ msgstr "" "menú en Ayuda -> Lista de atajos o mediante su propio atajo de teclado: " "F3 ." -#: App_Main.py:9322 +#: FlatCAMApp.py:10232 msgid "Failed checking for latest version. Could not connect." msgstr "Falló la comprobación de la última versión. No pudo conectar." -#: App_Main.py:9329 +#: FlatCAMApp.py:10239 msgid "Could not parse information about latest version." msgstr "No se pudo analizar la información sobre la última versión." -#: App_Main.py:9339 +#: FlatCAMApp.py:10249 msgid "FlatCAM is up to date!" msgstr "FlatCAM está al día!" -#: App_Main.py:9344 +#: FlatCAMApp.py:10254 msgid "Newer Version Available" msgstr "Nueva versión disponible" -#: App_Main.py:9346 +#: FlatCAMApp.py:10256 msgid "There is a newer version of FlatCAM available for download:" msgstr "Hay una versión más nueva de FlatCAM disponible para descargar:" -#: App_Main.py:9350 +#: FlatCAMApp.py:10260 msgid "info" msgstr "info" -#: App_Main.py:9378 +#: FlatCAMApp.py:10288 msgid "" "OpenGL canvas initialization failed. HW or HW configuration not supported." "Change the graphic engine to Legacy(2D) in Edit -> Preferences -> General " @@ -18251,75 +1505,129 @@ msgstr "" "pestaña General.\n" "\n" -#: App_Main.py:9456 +#: FlatCAMApp.py:10367 msgid "All plots disabled." msgstr "Todas las parcelas con discapacidad." -#: App_Main.py:9463 +#: FlatCAMApp.py:10374 msgid "All non selected plots disabled." msgstr "Todas las parcelas no seleccionadas deshabilitadas." -#: App_Main.py:9470 +#: FlatCAMApp.py:10381 msgid "All plots enabled." msgstr "Todas las parcelas habilitadas." -#: App_Main.py:9476 +#: FlatCAMApp.py:10387 msgid "Selected plots enabled..." msgstr "Parcelas seleccionadas habilitadas ..." -#: App_Main.py:9484 +#: FlatCAMApp.py:10395 msgid "Selected plots disabled..." msgstr "Parcelas seleccionadas deshabilitadas ..." -#: App_Main.py:9517 +#: FlatCAMApp.py:10428 msgid "Enabling plots ..." msgstr "Habilitación de parcelas ..." -#: App_Main.py:9566 +#: FlatCAMApp.py:10480 msgid "Disabling plots ..." msgstr "Inhabilitando parcelas ..." -#: App_Main.py:9589 +#: FlatCAMApp.py:10503 msgid "Working ..." msgstr "Trabajando ..." -#: App_Main.py:9698 +#: FlatCAMApp.py:10558 flatcamGUI/FlatCAMGUI.py:703 +msgid "Red" +msgstr "Rojo" + +#: FlatCAMApp.py:10560 flatcamGUI/FlatCAMGUI.py:706 +msgid "Blue" +msgstr "Azul" + +#: FlatCAMApp.py:10563 flatcamGUI/FlatCAMGUI.py:709 +msgid "Yellow" +msgstr "Amarillo" + +#: FlatCAMApp.py:10565 flatcamGUI/FlatCAMGUI.py:712 +msgid "Green" +msgstr "Verde" + +#: FlatCAMApp.py:10567 flatcamGUI/FlatCAMGUI.py:715 +msgid "Purple" +msgstr "Púrpura" + +#: FlatCAMApp.py:10569 flatcamGUI/FlatCAMGUI.py:718 +msgid "Brown" +msgstr "Marrón" + +#: FlatCAMApp.py:10571 FlatCAMApp.py:10627 flatcamGUI/FlatCAMGUI.py:721 +msgid "White" +msgstr "Blanca" + +#: FlatCAMApp.py:10573 flatcamGUI/FlatCAMGUI.py:724 +msgid "Black" +msgstr "Negra" + +#: FlatCAMApp.py:10576 flatcamGUI/FlatCAMGUI.py:729 +msgid "Custom" +msgstr "Personalizado" + +#: FlatCAMApp.py:10586 flatcamGUI/FlatCAMGUI.py:737 +msgid "Default" +msgstr "Predeterminado" + +#: FlatCAMApp.py:10610 flatcamGUI/FlatCAMGUI.py:734 +msgid "Opacity" +msgstr "Opacidad" + +#: FlatCAMApp.py:10612 msgid "Set alpha level ..." msgstr "Establecer nivel alfa ..." -#: App_Main.py:9752 +#: FlatCAMApp.py:10612 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:131 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:133 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:220 +#: flatcamTools/ToolExtractDrills.py:164 flatcamTools/ToolExtractDrills.py:285 +#: flatcamTools/ToolPunchGerber.py:192 flatcamTools/ToolPunchGerber.py:308 +#: flatcamTools/ToolTransform.py:357 +msgid "Value" +msgstr "Valor" + +#: FlatCAMApp.py:10666 msgid "Saving FlatCAM Project" msgstr "Proyecto FlatCAM de ahorro" -#: App_Main.py:9773 App_Main.py:9809 +#: FlatCAMApp.py:10687 FlatCAMApp.py:10723 msgid "Project saved to" msgstr "Proyecto guardado en" -#: App_Main.py:9780 +#: FlatCAMApp.py:10694 msgid "The object is used by another application." msgstr "El objeto es utilizado por otra aplicación." -#: App_Main.py:9794 +#: FlatCAMApp.py:10708 msgid "Failed to verify project file" msgstr "Error al abrir el archivo de proyecto" -#: App_Main.py:9794 App_Main.py:9802 App_Main.py:9812 +#: FlatCAMApp.py:10708 FlatCAMApp.py:10716 FlatCAMApp.py:10726 msgid "Retry to save it." msgstr "Vuelva a intentar guardarlo." -#: App_Main.py:9802 App_Main.py:9812 +#: FlatCAMApp.py:10716 FlatCAMApp.py:10726 msgid "Failed to parse saved project file" msgstr "Error al analizar el archivo por defecto" -#: Bookmark.py:57 Bookmark.py:84 +#: FlatCAMBookmark.py:57 FlatCAMBookmark.py:84 msgid "Title" msgstr "Título" -#: Bookmark.py:58 Bookmark.py:88 +#: FlatCAMBookmark.py:58 FlatCAMBookmark.py:88 msgid "Web Link" msgstr "Enlace Web" -#: Bookmark.py:62 +#: FlatCAMBookmark.py:62 msgid "" "Index.\n" "The rows in gray color will populate the Bookmarks menu.\n" @@ -18329,7 +1637,7 @@ msgstr "" "Las filas en color gris llenarán el menú Marcadores.\n" "El número de filas de color gris se establece en Preferencias." -#: Bookmark.py:66 +#: FlatCAMBookmark.py:66 msgid "" "Description of the link that is set as an menu action.\n" "Try to keep it short because it is installed as a menu item." @@ -18337,121 +1645,1031 @@ msgstr "" "Descripción del enlace que se establece como una acción de menú.\n" "Intenta mantenerlo corto porque está instalado como un elemento del menú." -#: Bookmark.py:69 +#: FlatCAMBookmark.py:69 msgid "Web Link. E.g: https://your_website.org " msgstr "Enlace web. P.ej: https://your_website.org " -#: Bookmark.py:78 +#: FlatCAMBookmark.py:78 msgid "New Bookmark" msgstr "Nuevo Marcador" -#: Bookmark.py:97 +#: FlatCAMBookmark.py:97 msgid "Add Entry" msgstr "Añadir entrada" -#: Bookmark.py:98 +#: FlatCAMBookmark.py:98 msgid "Remove Entry" msgstr "Remueva la entrada" -#: Bookmark.py:99 +#: FlatCAMBookmark.py:99 msgid "Export List" msgstr "Exportar la lista" -#: Bookmark.py:100 +#: FlatCAMBookmark.py:100 msgid "Import List" msgstr "Importar la lista" -#: Bookmark.py:190 +#: FlatCAMBookmark.py:190 msgid "Title entry is empty." msgstr "La entrada del título está vacía." -#: Bookmark.py:199 +#: FlatCAMBookmark.py:199 msgid "Web link entry is empty." msgstr "La entrada del enlace web está vacía." -#: Bookmark.py:207 +#: FlatCAMBookmark.py:207 msgid "Either the Title or the Weblink already in the table." msgstr "Ya sea el Título o el Enlace web ya en la tabla." -#: Bookmark.py:227 +#: FlatCAMBookmark.py:227 msgid "Bookmark added." msgstr "Marcador agregado." -#: Bookmark.py:244 +#: FlatCAMBookmark.py:244 msgid "This bookmark can not be removed" msgstr "Este marcador no se puede eliminar" -#: Bookmark.py:275 +#: FlatCAMBookmark.py:275 msgid "Bookmark removed." msgstr "Marcador eliminado." -#: Bookmark.py:290 -msgid "Export Bookmarks" -msgstr "Exportar marcadores" +#: FlatCAMBookmark.py:290 +msgid "Export FlatCAM Bookmarks" +msgstr "Exportar marcadores de FlatCAM" -#: Bookmark.py:319 Bookmark.py:349 +#: FlatCAMBookmark.py:293 flatcamGUI/FlatCAMGUI.py:524 +msgid "Bookmarks" +msgstr "Marcadores" + +#: FlatCAMBookmark.py:319 FlatCAMBookmark.py:349 msgid "Could not load bookmarks file." msgstr "No se pudo cargar el archivo de marcadores." -#: Bookmark.py:329 +#: FlatCAMBookmark.py:329 msgid "Failed to write bookmarks to file." msgstr "Error al escribir marcadores en el archivo." -#: Bookmark.py:331 +#: FlatCAMBookmark.py:331 msgid "Exported bookmarks to" msgstr "Marcadores exportados a" -#: Bookmark.py:337 -msgid "Import Bookmarks" -msgstr "Importar marcadores" +#: FlatCAMBookmark.py:337 +msgid "Import FlatCAM Bookmarks" +msgstr "Importar marcadores de FlatCAM" -#: Bookmark.py:356 +#: FlatCAMBookmark.py:356 msgid "Imported Bookmarks from" msgstr "Marcadores importados de" -#: Common.py:42 +#: FlatCAMCommon.py:29 msgid "The user requested a graceful exit of the current task." msgstr "El usuario solicitó una salida elegante de la tarea actual." -#: Common.py:269 -msgid "Click the end point of the area." -msgstr "Haga clic en el punto final del área." +#: FlatCAMDB.py:86 +msgid "Add Geometry Tool in DB" +msgstr "Agregar herramienta de geo. en DB" -#: Common.py:408 -msgid "Exclusion areas added. Checking overlap with the object geometry ..." +#: FlatCAMDB.py:88 FlatCAMDB.py:1643 +msgid "" +"Add a new tool in the Tools Database.\n" +"It will be used in the Geometry UI.\n" +"You can edit it after it is added." msgstr "" -"Áreas de exclusión añadidas. Comprobación de superposición con la geometría " -"del objeto ..." +"Agregue una nueva herramienta en la Base de datos de herramientas.\n" +"Se utilizará en la interfaz de usuario de geometría.\n" +"Puede editarlo después de agregarlo." -#: Common.py:413 -msgid "Failed. Exclusion areas intersects the object geometry ..." +#: FlatCAMDB.py:102 FlatCAMDB.py:1657 +msgid "Delete Tool from DB" +msgstr "Eliminar herram. de la BD" + +#: FlatCAMDB.py:104 FlatCAMDB.py:1659 +msgid "Remove a selection of tools in the Tools Database." +msgstr "Eliminar una selección de herramientas en la DB de herramientas." + +#: FlatCAMDB.py:108 FlatCAMDB.py:1663 +msgid "Export DB" +msgstr "Exportar DB" + +#: FlatCAMDB.py:110 FlatCAMDB.py:1665 +msgid "Save the Tools Database to a custom text file." msgstr "" -"Ha fallado. Las áreas de exclusión se cruzan con la geometría del objeto ..." +"Guarde la base de datos de herramientas en un archivo de texto personalizado." -#: Common.py:417 -msgid "Exclusion areas added." -msgstr "Áreas de exclusión añadidas." +#: FlatCAMDB.py:114 FlatCAMDB.py:1669 +msgid "Import DB" +msgstr "Importar DB" -#: Common.py:426 -msgid "With Exclusion areas." -msgstr "Con zonas de exclusión." +#: FlatCAMDB.py:116 FlatCAMDB.py:1671 +msgid "Load the Tools Database information's from a custom text file." +msgstr "" +"Cargue la información de la DB de herramientas desde un archivo de texto " +"personalizado." -#: Common.py:461 -msgid "Cancelled. Area exclusion drawing was interrupted." -msgstr "Cancelado. Se interrumpió el dibujo de exclusión de área." +#: FlatCAMDB.py:120 FlatCAMDB.py:1681 +msgid "Add Tool from Tools DB" +msgstr "Agregar herramienta desde DB de herramientas" -#: Common.py:572 Common.py:621 -msgid "All exclusion zones deleted." -msgstr "Todas las zonas de exclusión eliminadas." +#: FlatCAMDB.py:122 FlatCAMDB.py:1683 +msgid "" +"Add a new tool in the Tools Table of the\n" +"active Geometry object after selecting a tool\n" +"in the Tools Database." +msgstr "" +"Agregue una nueva herramienta en la Tabla de herramientas del\n" +"objeto de geometría activo después de seleccionar una herramienta\n" +"en la base de datos de herramientas." -#: Common.py:608 -msgid "Selected exclusion zones deleted." -msgstr "Zonas de exclusión seleccionadas eliminadas." +#: FlatCAMDB.py:158 FlatCAMDB.py:833 FlatCAMDB.py:1087 +msgid "Tool Name" +msgstr "Nombre de Herram" + +#: FlatCAMDB.py:159 FlatCAMDB.py:835 FlatCAMDB.py:1100 +#: flatcamEditors/FlatCAMExcEditor.py:1604 flatcamGUI/ObjectUI.py:1345 +#: flatcamGUI/ObjectUI.py:1583 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:132 +#: flatcamTools/ToolNCC.py:278 flatcamTools/ToolNCC.py:287 +#: flatcamTools/ToolPaint.py:261 +msgid "Tool Dia" +msgstr "Diá. de Herram" + +#: FlatCAMDB.py:160 FlatCAMDB.py:837 FlatCAMDB.py:1281 +#: flatcamGUI/ObjectUI.py:1558 +msgid "Tool Offset" +msgstr "Offset de Herram" + +#: FlatCAMDB.py:161 FlatCAMDB.py:839 FlatCAMDB.py:1298 +msgid "Custom Offset" +msgstr "Desplazamiento personalizado" + +#: FlatCAMDB.py:162 FlatCAMDB.py:841 FlatCAMDB.py:1265 +#: flatcamGUI/ObjectUI.py:309 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:67 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:53 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:62 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:72 +#: flatcamTools/ToolNCC.py:213 flatcamTools/ToolNCC.py:227 +#: flatcamTools/ToolPaint.py:196 +msgid "Tool Type" +msgstr "Tipo de herram" + +#: FlatCAMDB.py:163 FlatCAMDB.py:843 FlatCAMDB.py:1113 +msgid "Tool Shape" +msgstr "Forma de la herram" + +#: FlatCAMDB.py:164 FlatCAMDB.py:846 FlatCAMDB.py:1129 +#: flatcamGUI/ObjectUI.py:350 flatcamGUI/ObjectUI.py:900 +#: flatcamGUI/ObjectUI.py:1703 flatcamGUI/ObjectUI.py:2336 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:93 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:48 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:107 +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:78 +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:58 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:98 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:105 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:113 +#: flatcamTools/ToolCalculators.py:114 flatcamTools/ToolCutOut.py:138 +#: flatcamTools/ToolNCC.py:260 flatcamTools/ToolNCC.py:268 +#: flatcamTools/ToolPaint.py:243 +msgid "Cut Z" +msgstr "Corte Z" + +#: FlatCAMDB.py:165 FlatCAMDB.py:848 FlatCAMDB.py:1143 +msgid "MultiDepth" +msgstr "Profund. Múlti" + +#: FlatCAMDB.py:166 FlatCAMDB.py:850 FlatCAMDB.py:1156 +msgid "DPP" +msgstr "PPP" + +#: FlatCAMDB.py:167 FlatCAMDB.py:852 FlatCAMDB.py:1312 +msgid "V-Dia" +msgstr "V-Dia" + +#: FlatCAMDB.py:168 FlatCAMDB.py:854 FlatCAMDB.py:1326 +msgid "V-Angle" +msgstr "V-Ángulo" + +#: FlatCAMDB.py:169 FlatCAMDB.py:856 FlatCAMDB.py:1170 +#: flatcamGUI/ObjectUI.py:946 flatcamGUI/ObjectUI.py:1750 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:134 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:101 +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:61 +#: flatcamObjects/FlatCAMExcellon.py:1316 +#: flatcamObjects/FlatCAMGeometry.py:1606 flatcamTools/ToolCalibration.py:74 +msgid "Travel Z" +msgstr "Viaje Z" + +#: FlatCAMDB.py:170 FlatCAMDB.py:858 +msgid "FR" +msgstr "FR" + +#: FlatCAMDB.py:171 FlatCAMDB.py:860 +msgid "FR Z" +msgstr "FR Z" + +#: FlatCAMDB.py:172 FlatCAMDB.py:862 FlatCAMDB.py:1340 +msgid "FR Rapids" +msgstr "Avance rápido" + +#: FlatCAMDB.py:173 FlatCAMDB.py:864 FlatCAMDB.py:1213 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:222 +msgid "Spindle Speed" +msgstr "Eje de velocidad" + +#: FlatCAMDB.py:174 FlatCAMDB.py:866 FlatCAMDB.py:1228 +#: flatcamGUI/ObjectUI.py:1064 flatcamGUI/ObjectUI.py:1857 +msgid "Dwell" +msgstr "Habitar" + +#: FlatCAMDB.py:175 FlatCAMDB.py:868 FlatCAMDB.py:1241 +msgid "Dwelltime" +msgstr "Tiempo de permanencia" + +#: FlatCAMDB.py:176 FlatCAMDB.py:870 flatcamGUI/ObjectUI.py:2014 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:257 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:254 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:237 +#: flatcamTools/ToolSolderPaste.py:335 +msgid "Preprocessor" +msgstr "Postprocesador" + +#: FlatCAMDB.py:177 FlatCAMDB.py:872 FlatCAMDB.py:1356 +msgid "ExtraCut" +msgstr "Corte extra" + +#: FlatCAMDB.py:178 FlatCAMDB.py:874 FlatCAMDB.py:1371 +msgid "E-Cut Length" +msgstr "Longitud de Corte extra" + +#: FlatCAMDB.py:179 FlatCAMDB.py:876 +msgid "Toolchange" +msgstr "Cambio de herram" + +#: FlatCAMDB.py:180 FlatCAMDB.py:878 +msgid "Toolchange XY" +msgstr "Cambio de herra X, Y" + +#: FlatCAMDB.py:181 FlatCAMDB.py:880 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:160 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:131 +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:98 +#: flatcamTools/ToolCalibration.py:111 +msgid "Toolchange Z" +msgstr "Cambio de herramienta Z" + +#: FlatCAMDB.py:182 FlatCAMDB.py:882 flatcamGUI/ObjectUI.py:1193 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:69 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:54 +msgid "Start Z" +msgstr "Comience Z" + +#: FlatCAMDB.py:183 FlatCAMDB.py:885 +msgid "End Z" +msgstr "Fin Z" + +#: FlatCAMDB.py:187 +msgid "Tool Index." +msgstr "Índice de herramientas." + +#: FlatCAMDB.py:189 FlatCAMDB.py:1089 +msgid "" +"Tool name.\n" +"This is not used in the app, it's function\n" +"is to serve as a note for the user." +msgstr "" +"Nombre de la herramienta.\n" +"Esto no se usa en la aplicación, es función\n" +"es servir como una nota para el usuario." + +#: FlatCAMDB.py:193 FlatCAMDB.py:1102 +msgid "Tool Diameter." +msgstr "Diá. de Herram." + +#: FlatCAMDB.py:195 FlatCAMDB.py:1283 +msgid "" +"Tool Offset.\n" +"Can be of a few types:\n" +"Path = zero offset\n" +"In = offset inside by half of tool diameter\n" +"Out = offset outside by half of tool diameter\n" +"Custom = custom offset using the Custom Offset value" +msgstr "" +"Desplazamiento de herramienta.\n" +"Puede ser de algunos tipos:\n" +"Ruta = desplazamiento cero\n" +"In = desplazamiento interior por la mitad del diámetro de la herramienta\n" +"Out = desplazamiento exterior por la mitad del diámetro de la herramienta\n" +"Personalizado = desplazamiento personalizado utilizando el valor de " +"desplazamiento personalizado" + +#: FlatCAMDB.py:202 FlatCAMDB.py:1300 +msgid "" +"Custom Offset.\n" +"A value to be used as offset from the current path." +msgstr "" +"Desplazamiento personalizado.\n" +"Un valor que se utilizará como desplazamiento de la ruta actual." + +#: FlatCAMDB.py:205 FlatCAMDB.py:1267 +msgid "" +"Tool Type.\n" +"Can be:\n" +"Iso = isolation cut\n" +"Rough = rough cut, low feedrate, multiple passes\n" +"Finish = finishing cut, high feedrate" +msgstr "" +"Tipo de herramienta\n" +"Puede ser:\n" +"Iso = corte de aislamiento\n" +"Áspero = corte rugoso, baja velocidad de avance, múltiples pasadas\n" +"Acabado = corte de acabado, alto avance" + +#: FlatCAMDB.py:211 FlatCAMDB.py:1115 +msgid "" +"Tool Shape. \n" +"Can be:\n" +"C1 ... C4 = circular tool with x flutes\n" +"B = ball tip milling tool\n" +"V = v-shape milling tool" +msgstr "" +"Forma de herramienta\n" +"Puede ser:\n" +"C1 ... C4 = herramienta circular con x flautas\n" +"B = herramienta de fresado de punta esférica\n" +"V = herramienta de fresado en forma de V" + +#: FlatCAMDB.py:217 FlatCAMDB.py:1131 +msgid "" +"Cutting Depth.\n" +"The depth at which to cut into material." +msgstr "" +"Profundidad de corte.\n" +"La profundidad a la cual cortar en material." + +#: FlatCAMDB.py:220 FlatCAMDB.py:1145 +msgid "" +"Multi Depth.\n" +"Selecting this will allow cutting in multiple passes,\n" +"each pass adding a DPP parameter depth." +msgstr "" +"Multi Profundidad.\n" +"Seleccionar esto permitirá cortar en múltiples pasadas,\n" +"cada pasada agrega una profundidad de parámetro PPP." + +#: FlatCAMDB.py:224 FlatCAMDB.py:1158 +msgid "" +"DPP. Depth per Pass.\n" +"The value used to cut into material on each pass." +msgstr "" +"PPP. Profundidad por pase.\n" +"El valor utilizado para cortar en material en cada pasada." + +#: FlatCAMDB.py:227 FlatCAMDB.py:1314 +msgid "" +"V-Dia.\n" +"Diameter of the tip for V-Shape Tools." +msgstr "" +"V-Dia.\n" +"Diámetro de la punta para herramientas en forma de V." + +#: FlatCAMDB.py:230 FlatCAMDB.py:1328 +msgid "" +"V-Agle.\n" +"Angle at the tip for the V-Shape Tools." +msgstr "" +"Ángulo en V.\n" +"Ángulo en la punta para las herramientas en forma de V." + +#: FlatCAMDB.py:233 FlatCAMDB.py:1172 +msgid "" +"Clearance Height.\n" +"Height at which the milling bit will travel between cuts,\n" +"above the surface of the material, avoiding all fixtures." +msgstr "" +"Altura libre.\n" +"Altura a la que viajará la broca entre cortes,\n" +"sobre la superficie del material, evitando todos los accesorios." + +#: FlatCAMDB.py:237 +msgid "" +"FR. Feedrate\n" +"The speed on XY plane used while cutting into material." +msgstr "" +"FR. Avance\n" +"La velocidad en el plano XY utilizada al cortar material." + +#: FlatCAMDB.py:240 +msgid "" +"FR Z. Feedrate Z\n" +"The speed on Z plane." +msgstr "" +"FR Z. Avance Z\n" +"La velocidad en el plano Z." + +#: FlatCAMDB.py:243 FlatCAMDB.py:1342 +msgid "" +"FR Rapids. Feedrate Rapids\n" +"Speed used while moving as fast as possible.\n" +"This is used only by some devices that can't use\n" +"the G0 g-code command. Mostly 3D printers." +msgstr "" +"FR Rapids. Avance rápido\n" +"Velocidad utilizada mientras se mueve lo más rápido posible.\n" +"Esto solo lo usan algunos dispositivos que no pueden usar\n" +"el comando G0 g-code. Mayormente impresoras 3D." + +#: FlatCAMDB.py:248 FlatCAMDB.py:1215 +msgid "" +"Spindle Speed.\n" +"If it's left empty it will not be used.\n" +"The speed of the spindle in RPM." +msgstr "" +"Velocidad del motor.\n" +"Si se deja vacío, no se usará.\n" +"La velocidad del husillo en RPM." + +#: FlatCAMDB.py:252 FlatCAMDB.py:1230 +msgid "" +"Dwell.\n" +"Check this if a delay is needed to allow\n" +"the spindle motor to reach it's set speed." +msgstr "" +"Habitar.\n" +"Marque esto si se necesita un retraso para permitir\n" +"el motor del husillo para alcanzar su velocidad establecida." + +#: FlatCAMDB.py:256 FlatCAMDB.py:1243 +msgid "" +"Dwell Time.\n" +"A delay used to allow the motor spindle reach it's set speed." +msgstr "" +"Tiempo de permanencia.\n" +"Un retraso utilizado para permitir que el eje del motor alcance su velocidad " +"establecida." + +#: FlatCAMDB.py:259 +msgid "" +"Preprocessor.\n" +"A selection of files that will alter the generated G-code\n" +"to fit for a number of use cases." +msgstr "" +"Preprocesador\n" +"Una selección de archivos que alterarán el código G generado\n" +"para adaptarse a una serie de casos de uso." + +#: FlatCAMDB.py:263 FlatCAMDB.py:1358 +msgid "" +"Extra Cut.\n" +"If checked, after a isolation is finished an extra cut\n" +"will be added where the start and end of isolation meet\n" +"such as that this point is covered by this extra cut to\n" +"ensure a complete isolation." +msgstr "" +"Corte Extra\n" +"Si está marcada, después de terminar un aislamiento, un corte adicional\n" +"se agregará donde se encuentran el inicio y el final del aislamiento\n" +"como que este punto está cubierto por este corte adicional para\n" +"Garantizar un aislamiento completo." + +#: FlatCAMDB.py:269 FlatCAMDB.py:1373 +msgid "" +"Extra Cut length.\n" +"If checked, after a isolation is finished an extra cut\n" +"will be added where the start and end of isolation meet\n" +"such as that this point is covered by this extra cut to\n" +"ensure a complete isolation. This is the length of\n" +"the extra cut." +msgstr "" +"Longitud de corte extra.\n" +"Si está marcada, después de terminar un aislamiento, un corte adicional\n" +"se agregará donde se encuentran el inicio y el final del aislamiento\n" +"como que este punto está cubierto por este corte adicional para\n" +"Garantizar un aislamiento completo. Esta es la longitud de\n" +"El corte extra." + +#: FlatCAMDB.py:276 +msgid "" +"Toolchange.\n" +"It will create a toolchange event.\n" +"The kind of toolchange is determined by\n" +"the preprocessor file." +msgstr "" +"Cambio de herramienta.\n" +"Creará un evento de cambio de herramienta.\n" +"El tipo de cambio de herramienta está determinado por\n" +"El archivo del preprocesador." + +#: FlatCAMDB.py:281 +msgid "" +"Toolchange XY.\n" +"A set of coordinates in the format (x, y).\n" +"Will determine the cartesian position of the point\n" +"where the tool change event take place." +msgstr "" +"Cambio de herramienta XY.\n" +"Un conjunto de coordenadas en el formato (x, y).\n" +"Determinará la posición cartesiana del punto.\n" +"donde tiene lugar el evento de cambio de herramienta." + +#: FlatCAMDB.py:286 +msgid "" +"Toolchange Z.\n" +"The position on Z plane where the tool change event take place." +msgstr "" +"Cambio de herramientas Z.\n" +"La posición en el plano Z donde tiene lugar el evento de cambio de " +"herramienta." + +#: FlatCAMDB.py:289 +msgid "" +"Start Z.\n" +"If it's left empty it will not be used.\n" +"A position on Z plane to move immediately after job start." +msgstr "" +"Z inicio.\n" +"Si se deja vacío, no se usará.\n" +"Una posición en el plano Z para moverse inmediatamente después del inicio " +"del trabajo." + +#: FlatCAMDB.py:293 +msgid "" +"End Z.\n" +"A position on Z plane to move immediately after job stop." +msgstr "" +"Z final.\n" +"Una posición en el plano Z para moverse inmediatamente después de la " +"detención del trabajo." + +#: FlatCAMDB.py:305 FlatCAMDB.py:682 FlatCAMDB.py:716 FlatCAMDB.py:1898 +#: FlatCAMDB.py:2144 FlatCAMDB.py:2178 +msgid "Could not load Tools DB file." +msgstr "No se pudo cargar el archivo de herramientas DB." + +#: FlatCAMDB.py:313 FlatCAMDB.py:724 FlatCAMDB.py:1906 FlatCAMDB.py:2186 +msgid "Failed to parse Tools DB file." +msgstr "Error al analizar el archivo DB de Herramientas." + +#: FlatCAMDB.py:316 FlatCAMDB.py:727 FlatCAMDB.py:1909 FlatCAMDB.py:2189 +msgid "Loaded FlatCAM Tools DB from" +msgstr "Base de datos de herramientas FlatCAM cargada de" + +#: FlatCAMDB.py:322 FlatCAMDB.py:1823 +msgid "Add to DB" +msgstr "Añadir a DB" + +#: FlatCAMDB.py:324 FlatCAMDB.py:1826 +msgid "Copy from DB" +msgstr "Copiar de DB" + +#: FlatCAMDB.py:326 FlatCAMDB.py:1829 +msgid "Delete from DB" +msgstr "Eliminar de la DB" + +#: FlatCAMDB.py:603 FlatCAMDB.py:2044 +msgid "Tool added to DB." +msgstr "Herramienta agregada a la base de datos." + +#: FlatCAMDB.py:624 FlatCAMDB.py:2077 +msgid "Tool copied from Tools DB." +msgstr "Herramienta copiada de Herramientas DB." + +#: FlatCAMDB.py:642 FlatCAMDB.py:2104 +msgid "Tool removed from Tools DB." +msgstr "Herramienta eliminada de Herramientas DB." + +#: FlatCAMDB.py:653 FlatCAMDB.py:2115 +msgid "Export Tools Database" +msgstr "Exportar la DB de herramientas" + +#: FlatCAMDB.py:656 FlatCAMDB.py:2118 +msgid "Tools_Database" +msgstr "DB de herramientasram" + +#: FlatCAMDB.py:693 FlatCAMDB.py:696 FlatCAMDB.py:748 FlatCAMDB.py:2155 +#: FlatCAMDB.py:2158 FlatCAMDB.py:2211 +msgid "Failed to write Tools DB to file." +msgstr "Error al escribir Herramientas DB en el archivo." + +#: FlatCAMDB.py:699 FlatCAMDB.py:2161 +msgid "Exported Tools DB to" +msgstr "Exportó la base de datos de herramientas a" + +#: FlatCAMDB.py:706 FlatCAMDB.py:2168 +msgid "Import FlatCAM Tools DB" +msgstr "Importe la base de datos de herramientas FlatCAM" + +#: FlatCAMDB.py:752 FlatCAMDB.py:2215 +msgid "Saved Tools DB." +msgstr "Guardado el DB de herramientas." + +#: FlatCAMDB.py:899 FlatCAMDB.py:2405 +msgid "No Tool/row selected in the Tools Database table" +msgstr "" +"No se seleccionó ninguna herramienta / fila en la tabla Base de datos de " +"herramientas" + +#: FlatCAMDB.py:917 FlatCAMDB.py:2422 +msgid "Cancelled adding tool from DB." +msgstr "Se canceló la herramienta de agregar de la DB." + +#: FlatCAMDB.py:1018 +msgid "Basic Geo Parameters" +msgstr "Parámetros básicos de Geo" + +#: FlatCAMDB.py:1030 +msgid "Advanced Geo Parameters" +msgstr "Parámetros avanzados de Geo" + +#: FlatCAMDB.py:1042 +msgid "NCC Parameters" +msgstr "NCC Parameters" + +#: FlatCAMDB.py:1054 +msgid "Paint Parameters" +msgstr "Parámetros de Pintura" + +#: FlatCAMDB.py:1185 flatcamGUI/ObjectUI.py:967 flatcamGUI/ObjectUI.py:1769 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:185 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:148 +#: flatcamTools/ToolSolderPaste.py:253 +msgid "Feedrate X-Y" +msgstr "Avance X-Y" + +#: FlatCAMDB.py:1187 +msgid "" +"Feedrate X-Y. Feedrate\n" +"The speed on XY plane used while cutting into material." +msgstr "" +"Avance X-Y. Avance\n" +"La velocidad en el plano XY utilizada mientras se corta en material." + +#: FlatCAMDB.py:1199 flatcamGUI/ObjectUI.py:982 flatcamGUI/ObjectUI.py:1783 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:207 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:200 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:161 +#: flatcamTools/ToolSolderPaste.py:265 +msgid "Feedrate Z" +msgstr "Avance Z" + +#: FlatCAMDB.py:1201 +msgid "" +"Feedrate Z\n" +"The speed on Z plane." +msgstr "" +"Avance Z\n" +"La velocidad en el plano Z." + +#: FlatCAMDB.py:1399 flatcamGUI/ObjectUI.py:845 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:46 +#: flatcamTools/ToolNCC.py:341 +msgid "Operation" +msgstr "Operación" + +#: FlatCAMDB.py:1401 flatcamTools/ToolNCC.py:343 +msgid "" +"The 'Operation' can be:\n" +"- Isolation -> will ensure that the non-copper clearing is always complete.\n" +"If it's not successful then the non-copper clearing will fail, too.\n" +"- Clear -> the regular non-copper clearing." +msgstr "" +"La 'Operación' puede ser:\n" +"- Aislamiento -> asegurará que la limpieza sin cobre esté siempre completa.\n" +"Si no tiene éxito, la limpieza sin cobre también fallará.\n" +"- Borrar -> la limpieza regular sin cobre." + +#: FlatCAMDB.py:1408 flatcamEditors/FlatCAMGrbEditor.py:2742 +#: flatcamGUI/GUIElements.py:2577 flatcamTools/ToolNCC.py:350 +msgid "Clear" +msgstr "Limpiar" + +#: FlatCAMDB.py:1409 flatcamTools/ToolNCC.py:351 flatcamTools/ToolNCC.py:1623 +msgid "Isolation" +msgstr "Aislamiento" + +#: FlatCAMDB.py:1417 flatcamGUI/ObjectUI.py:409 flatcamGUI/ObjectUI.py:867 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:62 +#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:56 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:95 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:137 +#: flatcamTools/ToolNCC.py:359 +msgid "Milling Type" +msgstr "Tipo de fresado" + +#: FlatCAMDB.py:1419 FlatCAMDB.py:1427 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:139 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:147 +#: flatcamTools/ToolNCC.py:361 flatcamTools/ToolNCC.py:369 +msgid "" +"Milling type when the selected tool is of type: 'iso_op':\n" +"- climb / best for precision milling and to reduce tool usage\n" +"- conventional / useful when there is no backlash compensation" +msgstr "" +"Tipo de fresado cuando la herramienta seleccionada es de tipo: 'iso_op':\n" +"- ascenso / mejor para fresado de precisión y para reducir el uso de " +"herramientas\n" +"- convencional / útil cuando no hay compensación de reacción" + +#: FlatCAMDB.py:1424 flatcamGUI/ObjectUI.py:415 +#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:62 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:102 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:144 +#: flatcamTools/ToolNCC.py:366 +msgid "Climb" +msgstr "Subida" + +#: FlatCAMDB.py:1425 flatcamGUI/ObjectUI.py:416 +#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:63 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:103 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:145 +#: flatcamTools/ToolNCC.py:367 +msgid "Conventional" +msgstr "Convencional" + +#: FlatCAMDB.py:1437 FlatCAMDB.py:1546 flatcamEditors/FlatCAMGeoEditor.py:451 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:182 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:163 +#: flatcamTools/ToolNCC.py:382 flatcamTools/ToolPaint.py:329 +msgid "Overlap" +msgstr "Superposición" + +#: FlatCAMDB.py:1439 flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:184 +#: flatcamTools/ToolNCC.py:384 +msgid "" +"How much (percentage) of the tool width to overlap each tool pass.\n" +"Adjust the value starting with lower values\n" +"and increasing it if areas that should be cleared are still \n" +"not cleared.\n" +"Lower values = faster processing, faster execution on CNC.\n" +"Higher values = slow processing and slow execution on CNC\n" +"due of too many paths." +msgstr "" +"Cuánto (porcentaje) del ancho de la herramienta para superponer cada pasada " +"de herramienta.\n" +"Ajuste el valor comenzando con valores más bajos\n" +"y aumentarlo si las áreas que deberían limpiarse aún están\n" +"no borrado.\n" +"Valores más bajos = procesamiento más rápido, ejecución más rápida en CNC.\n" +"Valores más altos = procesamiento lento y ejecución lenta en CNC\n" +"debido a demasiados caminos." + +#: FlatCAMDB.py:1458 FlatCAMDB.py:1567 flatcamEditors/FlatCAMGeoEditor.py:471 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:72 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:229 +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:59 +#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:45 +#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:53 +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:115 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:202 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:183 +#: flatcamTools/ToolCopperThieving.py:111 +#: flatcamTools/ToolCopperThieving.py:362 flatcamTools/ToolCutOut.py:190 +#: flatcamTools/ToolFiducials.py:172 flatcamTools/ToolInvertGerber.py:88 +#: flatcamTools/ToolInvertGerber.py:96 flatcamTools/ToolNCC.py:403 +#: flatcamTools/ToolPaint.py:350 +msgid "Margin" +msgstr "Margen" + +#: FlatCAMDB.py:1460 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:74 +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:61 +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:125 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:204 +#: flatcamTools/ToolCopperThieving.py:113 flatcamTools/ToolFiducials.py:174 +#: flatcamTools/ToolFiducials.py:237 flatcamTools/ToolNCC.py:405 +msgid "Bounding box margin." +msgstr "Margen de cuadro delimitador." + +#: FlatCAMDB.py:1471 FlatCAMDB.py:1582 flatcamEditors/FlatCAMGeoEditor.py:485 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:105 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:106 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:215 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:198 +#: flatcamTools/ToolExtractDrills.py:128 flatcamTools/ToolNCC.py:416 +#: flatcamTools/ToolPaint.py:365 flatcamTools/ToolPunchGerber.py:139 +msgid "Method" +msgstr "Método" + +#: FlatCAMDB.py:1473 flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:217 +#: flatcamTools/ToolNCC.py:418 +msgid "" +"Algorithm for copper clearing:\n" +"- Standard: Fixed step inwards.\n" +"- Seed-based: Outwards from seed.\n" +"- Line-based: Parallel lines." +msgstr "" +"Algoritmo para la limpieza de cobre:\n" +"- Estándar: paso fijo hacia adentro.\n" +"- Basado en semillas: hacia afuera de la semilla.\n" +"- Basado en líneas: líneas paralelas." + +#: FlatCAMDB.py:1481 FlatCAMDB.py:1596 flatcamEditors/FlatCAMGeoEditor.py:499 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:230 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217 +#: flatcamTools/ToolNCC.py:431 flatcamTools/ToolNCC.py:2395 +#: flatcamTools/ToolNCC.py:2424 flatcamTools/ToolNCC.py:2693 +#: flatcamTools/ToolNCC.py:2725 flatcamTools/ToolPaint.py:390 +#: flatcamTools/ToolPaint.py:1834 tclCommands/TclCommandCopperClear.py:126 +#: tclCommands/TclCommandCopperClear.py:134 tclCommands/TclCommandPaint.py:125 +msgid "Standard" +msgstr "Estándar" + +#: FlatCAMDB.py:1481 FlatCAMDB.py:1596 defaults.py:395 defaults.py:427 +#: flatcamEditors/FlatCAMGeoEditor.py:499 +#: flatcamEditors/FlatCAMGeoEditor.py:569 +#: flatcamEditors/FlatCAMGeoEditor.py:5152 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:230 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217 +#: flatcamTools/ToolNCC.py:431 flatcamTools/ToolNCC.py:2401 +#: flatcamTools/ToolNCC.py:2429 flatcamTools/ToolNCC.py:2699 +#: flatcamTools/ToolNCC.py:2731 flatcamTools/ToolPaint.py:390 +#: flatcamTools/ToolPaint.py:1848 tclCommands/TclCommandCopperClear.py:128 +#: tclCommands/TclCommandCopperClear.py:136 tclCommands/TclCommandPaint.py:127 +msgid "Seed" +msgstr "Semilla" + +#: FlatCAMDB.py:1481 FlatCAMDB.py:1596 flatcamEditors/FlatCAMGeoEditor.py:499 +#: flatcamEditors/FlatCAMGeoEditor.py:5156 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:230 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217 +#: flatcamTools/ToolNCC.py:431 flatcamTools/ToolPaint.py:390 +#: flatcamTools/ToolPaint.py:699 flatcamTools/ToolPaint.py:1862 +#: tclCommands/TclCommandCopperClear.py:130 tclCommands/TclCommandPaint.py:129 +msgid "Lines" +msgstr "Líneas" + +#: FlatCAMDB.py:1489 FlatCAMDB.py:1607 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:237 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:224 +#: flatcamTools/ToolNCC.py:439 flatcamTools/ToolPaint.py:401 +msgid "Connect" +msgstr "Conectar" + +#: FlatCAMDB.py:1493 FlatCAMDB.py:1610 flatcamEditors/FlatCAMGeoEditor.py:508 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:239 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:226 +#: flatcamTools/ToolNCC.py:443 flatcamTools/ToolPaint.py:404 +msgid "" +"Draw lines between resulting\n" +"segments to minimize tool lifts." +msgstr "" +"Dibuja líneas entre el resultado\n" +"Segmentos para minimizar elevaciones de herramientas." + +#: FlatCAMDB.py:1499 FlatCAMDB.py:1614 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:246 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:232 +#: flatcamTools/ToolNCC.py:449 flatcamTools/ToolPaint.py:408 +msgid "Contour" +msgstr "Contorno" + +#: FlatCAMDB.py:1503 FlatCAMDB.py:1617 flatcamEditors/FlatCAMGeoEditor.py:518 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:248 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:234 +#: flatcamTools/ToolNCC.py:453 flatcamTools/ToolPaint.py:411 +msgid "" +"Cut around the perimeter of the polygon\n" +"to trim rough edges." +msgstr "" +"Corta todo el perímetro del polígono.\n" +"Para recortar los bordes ásperos." + +#: FlatCAMDB.py:1509 flatcamEditors/FlatCAMGeoEditor.py:612 +#: flatcamEditors/FlatCAMGrbEditor.py:5311 flatcamGUI/ObjectUI.py:143 +#: flatcamGUI/ObjectUI.py:1497 flatcamGUI/ObjectUI.py:2326 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:255 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:142 +#: flatcamTools/ToolNCC.py:459 flatcamTools/ToolTransform.py:28 +msgid "Offset" +msgstr "Compensar" + +#: FlatCAMDB.py:1513 flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:257 +#: flatcamTools/ToolNCC.py:463 +msgid "" +"If used, it will add an offset to the copper features.\n" +"The copper clearing will finish to a distance\n" +"from the copper features.\n" +"The value can be between 0 and 10 FlatCAM units." +msgstr "" +"Si se usa, agregará un desplazamiento a las características de cobre.\n" +"El claro de cobre terminará a cierta distancia.\n" +"de las características de cobre.\n" +"El valor puede estar entre 0 y 10 unidades FlatCAM." + +#: FlatCAMDB.py:1548 flatcamEditors/FlatCAMGeoEditor.py:453 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:165 +#: flatcamTools/ToolPaint.py:331 +msgid "" +"How much (percentage) of the tool width to overlap each tool pass.\n" +"Adjust the value starting with lower values\n" +"and increasing it if areas that should be painted are still \n" +"not painted.\n" +"Lower values = faster processing, faster execution on CNC.\n" +"Higher values = slow processing and slow execution on CNC\n" +"due of too many paths." +msgstr "" +"Cuánto (porcentaje) del ancho de la herramienta para superponer cada pasada " +"de herramienta.\n" +"Ajuste el valor comenzando con valores más bajos\n" +"y aumentarlo si las áreas que deben pintarse aún están\n" +"No pintado.\n" +"Valores más bajos = procesamiento más rápido, ejecución más rápida en CNC.\n" +"Valores más altos = procesamiento lento y ejecución lenta en CNC\n" +"debido a demasiados caminos." + +#: FlatCAMDB.py:1569 flatcamEditors/FlatCAMGeoEditor.py:473 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:185 +#: flatcamTools/ToolPaint.py:352 +msgid "" +"Distance by which to avoid\n" +"the edges of the polygon to\n" +"be painted." +msgstr "" +"Distancia por la cual evitar\n" +"los bordes del polígono a\n" +"ser pintado." + +#: FlatCAMDB.py:1584 flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:200 +#: flatcamTools/ToolPaint.py:367 +msgid "" +"Algorithm for painting:\n" +"- Standard: Fixed step inwards.\n" +"- Seed-based: Outwards from seed.\n" +"- Line-based: Parallel lines.\n" +"- Laser-lines: Active only for Gerber objects.\n" +"Will create lines that follow the traces.\n" +"- Combo: In case of failure a new method will be picked from the above\n" +"in the order specified." +msgstr "" +"Algoritmo para pintar:\n" +"- Estándar: paso fijo hacia adentro.\n" +"- Basado en semillas: hacia afuera de la semilla.\n" +"- Basado en líneas: líneas paralelas.\n" +"- Líneas láser: activas solo para objetos Gerber.\n" +"Creará líneas que siguen los rastros.\n" +"- Combo: en caso de falla, se elegirá un nuevo método de los anteriores\n" +"en el orden especificado." + +#: FlatCAMDB.py:1596 FlatCAMDB.py:1598 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217 +#: flatcamTools/ToolPaint.py:390 flatcamTools/ToolPaint.py:392 +#: flatcamTools/ToolPaint.py:693 flatcamTools/ToolPaint.py:698 +#: flatcamTools/ToolPaint.py:1876 tclCommands/TclCommandPaint.py:131 +msgid "Laser_lines" +msgstr "Lineas laser" + +#: FlatCAMDB.py:1596 flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217 +#: flatcamTools/ToolPaint.py:390 flatcamTools/ToolPaint.py:2027 +#: tclCommands/TclCommandPaint.py:133 +msgid "Combo" +msgstr "Combo" + +#: FlatCAMDB.py:1641 +msgid "Add Tool in DB" +msgstr "Agregar herramienta en DB" + +#: FlatCAMDB.py:1675 +msgid "Save DB" +msgstr "Salvar DB" + +#: FlatCAMDB.py:1677 +msgid "Save the Tools Database information's." +msgstr "Guarde la información de la base de datos de herramientas." + +#: FlatCAMProcess.py:172 +msgid "processes running." +msgstr "procesos en ejecución." + +#: FlatCAMTool.py:245 FlatCAMTool.py:252 flatcamGUI/ObjectUI.py:157 +#: flatcamGUI/ObjectUI.py:164 +msgid "Edited value is out of range" +msgstr "El valor editado está fuera de rango" + +#: FlatCAMTool.py:247 FlatCAMTool.py:254 flatcamGUI/ObjectUI.py:159 +#: flatcamGUI/ObjectUI.py:166 +msgid "Edited value is within limits." +msgstr "El valor editado está dentro de los límites." + +#: FlatCAMTranslation.py:104 +msgid "The application will restart." +msgstr "La aplicación se reiniciará." + +#: FlatCAMTranslation.py:106 +msgid "Are you sure do you want to change the current language to" +msgstr "¿Está seguro de que desea cambiar el idioma actual a" + +#: FlatCAMTranslation.py:107 +msgid "Apply Language ..." +msgstr "Aplicar Idioma ..." #: assets/linux/flatcam-beta.desktop:3 msgid "FlatCAM Beta" msgstr "FlatCAM Beta" +#: assets/linux/flatcam-beta.desktop:7 +msgid "./assets/icon.png" +msgstr "./assets/icon.png" + #: assets/linux/flatcam-beta.desktop:8 msgid "G-Code from GERBERS" msgstr "Código G de GERBERS" @@ -18460,55 +2678,66 @@ msgstr "Código G de GERBERS" msgid "self.solid_geometry is neither BaseGeometry or list." msgstr "self.solid_geometry no es ni BaseGeometry ni lista." -#: camlib.py:979 +#: camlib.py:970 msgid "Pass" msgstr "Pases" -#: camlib.py:1001 +#: camlib.py:981 flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:146 +#: flatcamObjects/FlatCAMGerber.py:497 flatcamTools/ToolCopperThieving.py:1016 +#: flatcamTools/ToolCopperThieving.py:1205 +#: flatcamTools/ToolCopperThieving.py:1217 flatcamTools/ToolNCC.py:2050 +#: flatcamTools/ToolNCC.py:2158 flatcamTools/ToolNCC.py:2172 +#: flatcamTools/ToolNCC.py:3103 flatcamTools/ToolNCC.py:3208 +#: flatcamTools/ToolNCC.py:3223 flatcamTools/ToolNCC.py:3489 +#: flatcamTools/ToolNCC.py:3590 flatcamTools/ToolNCC.py:3605 +msgid "Buffering" +msgstr "Tamponamiento" + +#: camlib.py:990 msgid "Get Exteriors" msgstr "Obtener exteriores" -#: camlib.py:1004 +#: camlib.py:993 msgid "Get Interiors" msgstr "Obtener interiores" -#: camlib.py:2192 +#: camlib.py:2172 msgid "Object was mirrored" msgstr "El objeto fue reflejado" -#: camlib.py:2194 +#: camlib.py:2174 msgid "Failed to mirror. No object selected" msgstr "No se pudo reflejar. Ningún objeto seleccionado" -#: camlib.py:2259 +#: camlib.py:2239 msgid "Object was rotated" msgstr "El objeto fue girado" -#: camlib.py:2261 +#: camlib.py:2241 msgid "Failed to rotate. No object selected" msgstr "No se pudo rotar. Ningún objeto seleccionado" -#: camlib.py:2327 +#: camlib.py:2307 msgid "Object was skewed" msgstr "El objeto fue sesgado" -#: camlib.py:2329 +#: camlib.py:2309 msgid "Failed to skew. No object selected" msgstr "Error al sesgar. Ningún objeto seleccionado" -#: camlib.py:2405 +#: camlib.py:2385 msgid "Object was buffered" msgstr "El objeto fue almacenado" -#: camlib.py:2407 +#: camlib.py:2387 msgid "Failed to buffer. No object selected" msgstr "Error al almacenar en búfer. Ningún objeto seleccionado" -#: camlib.py:2650 +#: camlib.py:2594 msgid "There is no such parameter" msgstr "No hay tal parámetro" -#: camlib.py:2718 camlib.py:2970 camlib.py:3233 camlib.py:3489 +#: camlib.py:2654 camlib.py:2887 camlib.py:3116 camlib.py:3338 msgid "" "The Cut Z parameter has positive value. It is the depth value to drill into " "material.\n" @@ -18522,12 +2751,12 @@ msgstr "" "tipográfico, por lo tanto, la aplicación convertirá el valor a negativo. " "Compruebe el código CNC resultante (Gcode, etc.)." -#: camlib.py:2726 camlib.py:2980 camlib.py:3243 camlib.py:3499 camlib.py:3824 -#: camlib.py:4224 +#: camlib.py:2662 camlib.py:2897 camlib.py:3126 camlib.py:3348 camlib.py:3631 +#: camlib.py:4017 msgid "The Cut Z parameter is zero. There will be no cut, skipping file" msgstr "El parámetro Cut Z es cero. No habrá corte, saltando archivo" -#: camlib.py:2741 camlib.py:4192 +#: camlib.py:2673 camlib.py:3985 msgid "" "The Toolchange X,Y field in Edit -> Preferences has to be in the format (x, " "y) \n" @@ -18537,7 +2766,7 @@ msgstr "" "formato (x, y)\n" "pero ahora solo hay un valor, no dos. " -#: camlib.py:2754 camlib.py:3771 camlib.py:4170 +#: camlib.py:2682 camlib.py:3582 camlib.py:3967 msgid "" "The End Move X,Y field in Edit -> Preferences has to be in the format (x, y) " "but now there is only one value, not two." @@ -18545,35 +2774,31 @@ msgstr "" "El campo de movimiento final X, Y en Editar -> Preferencias debe estar en el " "formato (x, y) pero ahora solo hay un valor, no dos." -#: camlib.py:2842 +#: camlib.py:2770 msgid "Creating a list of points to drill..." msgstr "Crear una lista de puntos para explorar ..." -#: camlib.py:2866 -msgid "Failed. Drill points inside the exclusion zones." -msgstr "Ha fallado. Puntos de perforación dentro de las zonas de exclusión." - -#: camlib.py:2943 camlib.py:3922 camlib.py:4332 +#: camlib.py:2860 camlib.py:3729 camlib.py:4121 msgid "Starting G-Code" msgstr "Iniciando el código G" -#: camlib.py:3084 camlib.py:3337 camlib.py:3535 camlib.py:3935 camlib.py:4343 +#: camlib.py:3001 camlib.py:3220 camlib.py:3384 camlib.py:3742 camlib.py:4132 msgid "Starting G-Code for tool with diameter" msgstr "Código G inicial para herramienta con diámetro" -#: camlib.py:3201 camlib.py:3453 camlib.py:3655 +#: camlib.py:3084 camlib.py:3302 camlib.py:3470 msgid "G91 coordinates not implemented" msgstr "Coordenadas G91 no implementadas" -#: camlib.py:3207 camlib.py:3460 camlib.py:3660 +#: camlib.py:3090 camlib.py:3309 camlib.py:3475 msgid "The loaded Excellon file has no drills" msgstr "El archivo Excellon cargado no tiene perforaciones" -#: camlib.py:3683 +#: camlib.py:3498 msgid "Finished G-Code generation..." msgstr "Generación de código G finalizada ..." -#: camlib.py:3793 +#: camlib.py:3600 msgid "" "The Toolchange X,Y field in Edit -> Preferences has to be in the format (x, " "y) \n" @@ -18583,7 +2808,7 @@ msgstr "" "formato (x, y)\n" "pero ahora solo hay un valor, no dos." -#: camlib.py:3807 camlib.py:4207 +#: camlib.py:3614 camlib.py:4000 msgid "" "Cut_Z parameter is None or zero. Most likely a bad combinations of other " "parameters." @@ -18591,7 +2816,7 @@ msgstr "" "El parámetro Cut_Z es Ninguno o cero. Lo más probable es una mala " "combinación de otros parámetros." -#: camlib.py:3816 camlib.py:4216 +#: camlib.py:3623 camlib.py:4009 msgid "" "The Cut Z parameter has positive value. It is the depth value to cut into " "material.\n" @@ -18605,11 +2830,11 @@ msgstr "" "tipográfico, por lo tanto, la aplicación convertirá el valor a negativo. " "Verifique el código CNC resultante (Gcode, etc.)." -#: camlib.py:3829 camlib.py:4230 +#: camlib.py:3636 camlib.py:4023 msgid "Travel Z parameter is None or zero." msgstr "El parámetro Travel Z des Ninguno o cero." -#: camlib.py:3834 camlib.py:4235 +#: camlib.py:3641 camlib.py:4028 msgid "" "The Travel Z parameter has negative value. It is the height value to travel " "between cuts.\n" @@ -18623,35 +2848,35 @@ msgstr "" "error tipográfico, por lo tanto, la aplicación convertirá el valor a " "positivo. Verifique el código CNC resultante (Gcode, etc.)." -#: camlib.py:3842 camlib.py:4243 +#: camlib.py:3649 camlib.py:4036 msgid "The Z Travel parameter is zero. This is dangerous, skipping file" msgstr "" "El parámetro Z Travel es cero. Esto es peligroso, saltando el archive %s" -#: camlib.py:3861 camlib.py:4266 +#: camlib.py:3668 camlib.py:4059 msgid "Indexing geometry before generating G-Code..." msgstr "Indexación de la geometría antes de generar código G ..." -#: camlib.py:4009 camlib.py:4420 +#: camlib.py:3812 camlib.py:4201 msgid "Finished G-Code generation" msgstr "Generación de código G terminada" -#: camlib.py:4009 +#: camlib.py:3812 msgid "paths traced" msgstr "caminos trazados" -#: camlib.py:4059 +#: camlib.py:3862 msgid "Expected a Geometry, got" msgstr "Se esperaba una Geometría, se obtuvo" -#: camlib.py:4066 +#: camlib.py:3869 msgid "" "Trying to generate a CNC Job from a Geometry object without solid_geometry." msgstr "" "Intentando generar un trabajo de CNC desde un objeto de geometría sin " "solid_geometry." -#: camlib.py:4107 +#: camlib.py:3910 msgid "" "The Tool Offset value is too negative to use for the current_geometry.\n" "Raise the value (in module) and try again." @@ -18660,42 +2885,15682 @@ msgstr "" "en current_geometry.\n" "Aumente el valor (en el módulo) e intente nuevamente." -#: camlib.py:4420 +#: camlib.py:4201 msgid " paths traced." msgstr " caminos trazados." -#: camlib.py:4448 +#: camlib.py:4229 msgid "There is no tool data in the SolderPaste geometry." msgstr "No hay datos de herramientas en la geometría SolderPaste." -#: camlib.py:4537 +#: camlib.py:4318 msgid "Finished SolderPaste G-Code generation" msgstr "Generación de código G de soldadura soldada terminada" -#: camlib.py:4537 +#: camlib.py:4318 msgid "paths traced." msgstr "caminos trazados." -#: camlib.py:4872 +#: camlib.py:4578 msgid "Parsing GCode file. Number of lines" msgstr "Analizando el archivo GCode. Número de líneas" -#: camlib.py:4979 +#: camlib.py:4685 msgid "Creating Geometry from the parsed GCode file. " msgstr "Crear geometría a partir del archivo GCode analizado. " -#: camlib.py:5147 camlib.py:5420 camlib.py:5568 camlib.py:5737 +#: camlib.py:4828 camlib.py:5118 camlib.py:5229 camlib.py:5385 msgid "G91 coordinates not implemented ..." msgstr "Coordenadas G91 no implementadas ..." -#: defaults.py:771 +#: camlib.py:4960 +msgid "Unifying Geometry from parsed Geometry segments" +msgstr "Geometría unificadora de segmentos de geometría analizados" + +#: defaults.py:401 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:86 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309 +#: flatcamTools/ToolCopperThieving.py:125 flatcamTools/ToolNCC.py:535 +#: flatcamTools/ToolNCC.py:1306 flatcamTools/ToolNCC.py:1634 +#: flatcamTools/ToolNCC.py:1919 flatcamTools/ToolNCC.py:1983 +#: flatcamTools/ToolNCC.py:2967 flatcamTools/ToolNCC.py:2976 +#: tclCommands/TclCommandCopperClear.py:190 +msgid "Itself" +msgstr "Sí mismo" + +#: defaults.py:428 flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280 +#: flatcamTools/ToolPaint.py:486 flatcamTools/ToolPaint.py:1427 +#: tclCommands/TclCommandPaint.py:162 +msgid "All Polygons" +msgstr "Todos los polígonos" + +#: defaults.py:739 msgid "Could not load defaults file." msgstr "No se pudo cargar el archivo predeterminado." -#: defaults.py:784 +#: defaults.py:752 msgid "Failed to parse defaults file." msgstr "Error al analizar el archivo predeterminado." +#: flatcamEditors/FlatCAMExcEditor.py:50 flatcamEditors/FlatCAMExcEditor.py:74 +#: flatcamEditors/FlatCAMExcEditor.py:168 +#: flatcamEditors/FlatCAMExcEditor.py:385 +#: flatcamEditors/FlatCAMExcEditor.py:589 +#: flatcamEditors/FlatCAMGrbEditor.py:243 +#: flatcamEditors/FlatCAMGrbEditor.py:250 +msgid "Click to place ..." +msgstr "Haga clic para colocar ..." + +#: flatcamEditors/FlatCAMExcEditor.py:58 +msgid "To add a drill first select a tool" +msgstr "Para agregar un taladro primero seleccione una herramienta" + +#: flatcamEditors/FlatCAMExcEditor.py:122 +msgid "Done. Drill added." +msgstr "Hecho. Taladro agregado." + +#: flatcamEditors/FlatCAMExcEditor.py:176 +msgid "To add an Drill Array first select a tool in Tool Table" +msgstr "" +"Para agregar una matriz de perforación, primero seleccione una herramienta " +"en la Tabla de herramientas" + +#: flatcamEditors/FlatCAMExcEditor.py:192 +#: flatcamEditors/FlatCAMExcEditor.py:415 +#: flatcamEditors/FlatCAMExcEditor.py:636 +#: flatcamEditors/FlatCAMExcEditor.py:1151 +#: flatcamEditors/FlatCAMExcEditor.py:1178 +#: flatcamEditors/FlatCAMGrbEditor.py:473 +#: flatcamEditors/FlatCAMGrbEditor.py:1937 +#: flatcamEditors/FlatCAMGrbEditor.py:1967 +msgid "Click on target location ..." +msgstr "Haga clic en la ubicación de destino ..." + +#: flatcamEditors/FlatCAMExcEditor.py:211 +msgid "Click on the Drill Circular Array Start position" +msgstr "" +"Haga clic en la posición de inicio de la matriz circular de perforación" + +#: flatcamEditors/FlatCAMExcEditor.py:233 +#: flatcamEditors/FlatCAMExcEditor.py:677 +#: flatcamEditors/FlatCAMGrbEditor.py:518 +msgid "The value is not Float. Check for comma instead of dot separator." +msgstr "" +"El valor no es Real. Compruebe si hay coma en lugar de separador de puntos." + +#: flatcamEditors/FlatCAMExcEditor.py:237 +msgid "The value is mistyped. Check the value" +msgstr "El valor está mal escrito. Comprueba el valor" + +#: flatcamEditors/FlatCAMExcEditor.py:336 +msgid "Too many drills for the selected spacing angle." +msgstr "Demasiados taladros para el ángulo de separación seleccionado." + +#: flatcamEditors/FlatCAMExcEditor.py:354 +msgid "Done. Drill Array added." +msgstr "Hecho. Drill Array agregado." + +#: flatcamEditors/FlatCAMExcEditor.py:394 +msgid "To add a slot first select a tool" +msgstr "Para agregar un espacio primero seleccione una herramienta" + +#: flatcamEditors/FlatCAMExcEditor.py:454 +#: flatcamEditors/FlatCAMExcEditor.py:461 +#: flatcamEditors/FlatCAMExcEditor.py:742 +#: flatcamEditors/FlatCAMExcEditor.py:749 +msgid "Value is missing or wrong format. Add it and retry." +msgstr "" +"Falta el formato del formato o es incorrecto Añádelo y vuelve a intentarlo." + +#: flatcamEditors/FlatCAMExcEditor.py:559 +msgid "Done. Adding Slot completed." +msgstr "Hecho. Agregar de Ranura completado." + +#: flatcamEditors/FlatCAMExcEditor.py:597 +msgid "To add an Slot Array first select a tool in Tool Table" +msgstr "" +"Para agregar una matriz de ranuras, primero seleccione una herramienta en la " +"tabla de herramientas" + +#: flatcamEditors/FlatCAMExcEditor.py:655 +msgid "Click on the Slot Circular Array Start position" +msgstr "Haga clic en la posición de inicio de la matriz circular de ranura" + +#: flatcamEditors/FlatCAMExcEditor.py:680 +#: flatcamEditors/FlatCAMGrbEditor.py:521 +msgid "The value is mistyped. Check the value." +msgstr "El valor está mal escrito. Compruebe el valor." + +#: flatcamEditors/FlatCAMExcEditor.py:859 +msgid "Too many Slots for the selected spacing angle." +msgstr "Demasiadas ranuras para el ángulo de separación seleccionado." + +#: flatcamEditors/FlatCAMExcEditor.py:882 +msgid "Done. Slot Array added." +msgstr "Hecho. Matriz de ranuras agregada." + +#: flatcamEditors/FlatCAMExcEditor.py:904 +msgid "Click on the Drill(s) to resize ..." +msgstr "Haga clic en el taladro(s) para cambiar el tamaño ..." + +#: flatcamEditors/FlatCAMExcEditor.py:934 +msgid "Resize drill(s) failed. Please enter a diameter for resize." +msgstr "" +"Falló el tamaño de los taladros. Por favor, introduzca un diámetro para " +"cambiar el tamaño." + +#: flatcamEditors/FlatCAMExcEditor.py:1112 +msgid "Done. Drill/Slot Resize completed." +msgstr "Hecho. Tamaño de taladro / ranura completado." + +#: flatcamEditors/FlatCAMExcEditor.py:1115 +msgid "Cancelled. No drills/slots selected for resize ..." +msgstr "" +"Cancelado. No hay taladros / ranuras seleccionados para cambiar el tamaño ..." + +#: flatcamEditors/FlatCAMExcEditor.py:1153 +#: flatcamEditors/FlatCAMGrbEditor.py:1939 +msgid "Click on reference location ..." +msgstr "Haga clic en la ubicación de referencia ..." + +#: flatcamEditors/FlatCAMExcEditor.py:1210 +msgid "Done. Drill(s) Move completed." +msgstr "Hecho. Taladro (s) Movimiento completado." + +#: flatcamEditors/FlatCAMExcEditor.py:1318 +msgid "Done. Drill(s) copied." +msgstr "Hecho. Taladro (s) copiado." + +#: flatcamEditors/FlatCAMExcEditor.py:1557 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:26 +msgid "Excellon Editor" +msgstr "Excellon Editor" + +#: flatcamEditors/FlatCAMExcEditor.py:1564 +#: flatcamEditors/FlatCAMGrbEditor.py:2462 +msgid "Name:" +msgstr "Nombre:" + +#: flatcamEditors/FlatCAMExcEditor.py:1570 flatcamGUI/ObjectUI.py:761 +#: flatcamGUI/ObjectUI.py:1465 flatcamTools/ToolNCC.py:120 +#: flatcamTools/ToolPaint.py:115 flatcamTools/ToolSolderPaste.py:74 +msgid "Tools Table" +msgstr "Tabla de herramientas" + +#: flatcamEditors/FlatCAMExcEditor.py:1572 flatcamGUI/ObjectUI.py:763 +msgid "" +"Tools in this Excellon object\n" +"when are used for drilling." +msgstr "" +"Herramientas en este objeto Excellon.\n" +"Cuando se utilizan para la perforación." + +#: flatcamEditors/FlatCAMExcEditor.py:1584 +#: flatcamEditors/FlatCAMExcEditor.py:3066 flatcamGUI/ObjectUI.py:781 +#: flatcamObjects/FlatCAMExcellon.py:1098 +#: flatcamObjects/FlatCAMExcellon.py:1188 +#: flatcamObjects/FlatCAMExcellon.py:1373 flatcamTools/ToolNCC.py:132 +#: flatcamTools/ToolPaint.py:128 flatcamTools/ToolPcbWizard.py:76 +#: flatcamTools/ToolProperties.py:416 flatcamTools/ToolProperties.py:476 +#: flatcamTools/ToolSolderPaste.py:85 tclCommands/TclCommandDrillcncjob.py:193 +msgid "Diameter" +msgstr "Diámetro" + +#: flatcamEditors/FlatCAMExcEditor.py:1592 +msgid "Add/Delete Tool" +msgstr "Añadir / Eliminar herramienta" + +#: flatcamEditors/FlatCAMExcEditor.py:1594 +msgid "" +"Add/Delete a tool to the tool list\n" +"for this Excellon object." +msgstr "" +"Agregar / Eliminar una herramienta a la lista de herramientas\n" +"para este objeto Excellon." + +#: flatcamEditors/FlatCAMExcEditor.py:1606 flatcamGUI/ObjectUI.py:1585 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:57 +msgid "Diameter for the new tool" +msgstr "Diámetro para la nueva herramienta" + +#: flatcamEditors/FlatCAMExcEditor.py:1616 +msgid "Add Tool" +msgstr "Añadir herramienta" + +#: flatcamEditors/FlatCAMExcEditor.py:1618 +msgid "" +"Add a new tool to the tool list\n" +"with the diameter specified above." +msgstr "" +"Agregar una nueva herramienta a la lista de herramientas\n" +"con el diámetro especificado anteriormente." + +#: flatcamEditors/FlatCAMExcEditor.py:1630 +msgid "Delete Tool" +msgstr "Eliminar herramienta" + +#: flatcamEditors/FlatCAMExcEditor.py:1632 +msgid "" +"Delete a tool in the tool list\n" +"by selecting a row in the tool table." +msgstr "" +"Eliminar una herramienta en la lista de herramientas\n" +"seleccionando una fila en la tabla de herramientas." + +#: flatcamEditors/FlatCAMExcEditor.py:1650 flatcamGUI/FlatCAMGUI.py:2019 +msgid "Resize Drill(s)" +msgstr "Cambiar el tamaño de taladro (s)" + +#: flatcamEditors/FlatCAMExcEditor.py:1652 +msgid "Resize a drill or a selection of drills." +msgstr "Cambiar el tamaño de un ejercicio o una selección de ejercicios." + +#: flatcamEditors/FlatCAMExcEditor.py:1659 +msgid "Resize Dia" +msgstr "Cambiar el diá" + +#: flatcamEditors/FlatCAMExcEditor.py:1661 +msgid "Diameter to resize to." +msgstr "Diámetro para redimensionar a." + +#: flatcamEditors/FlatCAMExcEditor.py:1672 +msgid "Resize" +msgstr "Redimensionar" + +#: flatcamEditors/FlatCAMExcEditor.py:1674 +msgid "Resize drill(s)" +msgstr "Cambiar el tamaño de taladro" + +#: flatcamEditors/FlatCAMExcEditor.py:1699 flatcamGUI/FlatCAMGUI.py:2018 +#: flatcamGUI/FlatCAMGUI.py:2270 +msgid "Add Drill Array" +msgstr "Añadir Drill Array" + +#: flatcamEditors/FlatCAMExcEditor.py:1701 +msgid "Add an array of drills (linear or circular array)" +msgstr "Agregar una matriz de taladros (lineal o circular)" + +#: flatcamEditors/FlatCAMExcEditor.py:1707 +msgid "" +"Select the type of drills array to create.\n" +"It can be Linear X(Y) or Circular" +msgstr "" +"Seleccione el tipo de matriz de ejercicios para crear.\n" +"Puede ser lineal X (Y) o circular" + +#: flatcamEditors/FlatCAMExcEditor.py:1710 +#: flatcamEditors/FlatCAMExcEditor.py:1924 +#: flatcamEditors/FlatCAMGrbEditor.py:2775 +msgid "Linear" +msgstr "Lineal" + +#: flatcamEditors/FlatCAMExcEditor.py:1711 +#: flatcamEditors/FlatCAMExcEditor.py:1925 +#: flatcamEditors/FlatCAMGrbEditor.py:2776 flatcamGUI/ObjectUI.py:316 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:52 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:149 +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:107 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:52 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:151 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:61 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:70 +#: flatcamTools/ToolExtractDrills.py:78 flatcamTools/ToolExtractDrills.py:201 +#: flatcamTools/ToolFiducials.py:220 flatcamTools/ToolNCC.py:221 +#: flatcamTools/ToolPaint.py:204 flatcamTools/ToolPunchGerber.py:89 +#: flatcamTools/ToolPunchGerber.py:229 +msgid "Circular" +msgstr "Circular" + +#: flatcamEditors/FlatCAMExcEditor.py:1719 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:68 +msgid "Nr of drills" +msgstr "Nu. de ejercicios" + +#: flatcamEditors/FlatCAMExcEditor.py:1720 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:70 +msgid "Specify how many drills to be in the array." +msgstr "Especifique cuántos ejercicios debe estar en la matriz." + +#: flatcamEditors/FlatCAMExcEditor.py:1738 +#: flatcamEditors/FlatCAMExcEditor.py:1788 +#: flatcamEditors/FlatCAMExcEditor.py:1860 +#: flatcamEditors/FlatCAMExcEditor.py:1953 +#: flatcamEditors/FlatCAMExcEditor.py:2004 +#: flatcamEditors/FlatCAMGrbEditor.py:1573 +#: flatcamEditors/FlatCAMGrbEditor.py:2804 +#: flatcamEditors/FlatCAMGrbEditor.py:2853 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:178 +msgid "Direction" +msgstr "Dirección" + +#: flatcamEditors/FlatCAMExcEditor.py:1740 +#: flatcamEditors/FlatCAMExcEditor.py:1955 +#: flatcamEditors/FlatCAMGrbEditor.py:2806 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:86 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:234 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:122 +msgid "" +"Direction on which the linear array is oriented:\n" +"- 'X' - horizontal axis \n" +"- 'Y' - vertical axis or \n" +"- 'Angle' - a custom angle for the array inclination" +msgstr "" +"Dirección en la que se orienta la matriz lineal:\n" +"- 'X' - eje horizontal\n" +"- 'Y' - eje vertical o\n" +"- 'Ángulo': un ángulo personalizado para la inclinación de la matriz" + +#: flatcamEditors/FlatCAMExcEditor.py:1747 +#: flatcamEditors/FlatCAMExcEditor.py:1869 +#: flatcamEditors/FlatCAMExcEditor.py:1962 +#: flatcamEditors/FlatCAMGrbEditor.py:2813 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:92 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:187 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:240 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:128 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:208 +#: flatcamTools/ToolFilm.py:256 +msgid "X" +msgstr "X" + +#: flatcamEditors/FlatCAMExcEditor.py:1748 +#: flatcamEditors/FlatCAMExcEditor.py:1870 +#: flatcamEditors/FlatCAMExcEditor.py:1963 +#: flatcamEditors/FlatCAMGrbEditor.py:2814 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:93 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:188 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:241 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:129 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:209 +#: flatcamTools/ToolFilm.py:257 +msgid "Y" +msgstr "Y" + +#: flatcamEditors/FlatCAMExcEditor.py:1749 +#: flatcamEditors/FlatCAMExcEditor.py:1766 +#: flatcamEditors/FlatCAMExcEditor.py:1800 +#: flatcamEditors/FlatCAMExcEditor.py:1871 +#: flatcamEditors/FlatCAMExcEditor.py:1875 +#: flatcamEditors/FlatCAMExcEditor.py:1964 +#: flatcamEditors/FlatCAMExcEditor.py:1982 +#: flatcamEditors/FlatCAMExcEditor.py:2016 +#: flatcamEditors/FlatCAMGrbEditor.py:2815 +#: flatcamEditors/FlatCAMGrbEditor.py:2832 +#: flatcamEditors/FlatCAMGrbEditor.py:2868 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:94 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:113 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:189 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:194 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:242 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:263 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:130 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:148 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:53 +#: flatcamTools/ToolDistance.py:120 flatcamTools/ToolDistanceMin.py:69 +#: flatcamTools/ToolTransform.py:60 +msgid "Angle" +msgstr "Ángulo" + +#: flatcamEditors/FlatCAMExcEditor.py:1753 +#: flatcamEditors/FlatCAMExcEditor.py:1968 +#: flatcamEditors/FlatCAMGrbEditor.py:2819 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:100 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:248 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:136 +msgid "Pitch" +msgstr "Paso" + +#: flatcamEditors/FlatCAMExcEditor.py:1755 +#: flatcamEditors/FlatCAMExcEditor.py:1970 +#: flatcamEditors/FlatCAMGrbEditor.py:2821 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:102 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:250 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:138 +msgid "Pitch = Distance between elements of the array." +msgstr "Paso = Distancia entre elementos de la matriz." + +#: flatcamEditors/FlatCAMExcEditor.py:1768 +#: flatcamEditors/FlatCAMExcEditor.py:1984 +msgid "" +"Angle at which the linear array is placed.\n" +"The precision is of max 2 decimals.\n" +"Min value is: -360 degrees.\n" +"Max value is: 360.00 degrees." +msgstr "" +"Ángulo en el que se coloca la matriz lineal.\n" +"La precisión es de max 2 decimales.\n" +"El valor mínimo es: -360 grados.\n" +"El valor máximo es: 360.00 grados." + +#: flatcamEditors/FlatCAMExcEditor.py:1789 +#: flatcamEditors/FlatCAMExcEditor.py:2005 +#: flatcamEditors/FlatCAMGrbEditor.py:2855 +msgid "" +"Direction for circular array.Can be CW = clockwise or CCW = counter " +"clockwise." +msgstr "" +"Dirección de la matriz circular. Puede ser CW = en sentido horario o CCW = " +"en sentido antihorario." + +#: flatcamEditors/FlatCAMExcEditor.py:1796 +#: flatcamEditors/FlatCAMExcEditor.py:2012 +#: flatcamEditors/FlatCAMGrbEditor.py:2863 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:129 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:136 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:286 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:142 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:170 +msgid "CW" +msgstr "CW" + +#: flatcamEditors/FlatCAMExcEditor.py:1797 +#: flatcamEditors/FlatCAMExcEditor.py:2013 +#: flatcamEditors/FlatCAMGrbEditor.py:2864 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:130 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:137 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:287 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:143 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:171 +msgid "CCW" +msgstr "CCW" + +#: flatcamEditors/FlatCAMExcEditor.py:1801 +#: flatcamEditors/FlatCAMExcEditor.py:2017 +#: flatcamEditors/FlatCAMGrbEditor.py:2870 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:115 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:145 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:265 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:295 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:150 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:179 +msgid "Angle at which each element in circular array is placed." +msgstr "Ángulo en el que se coloca cada elemento de la matriz circular." + +#: flatcamEditors/FlatCAMExcEditor.py:1835 +msgid "Slot Parameters" +msgstr "Parámetros de ranura" + +#: flatcamEditors/FlatCAMExcEditor.py:1837 +msgid "" +"Parameters for adding a slot (hole with oval shape)\n" +"either single or as an part of an array." +msgstr "" +"Parámetros para agregar una ranura (agujero con forma ovalada)\n" +"ya sea solo o como parte de una matriz." + +#: flatcamEditors/FlatCAMExcEditor.py:1846 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:162 +#: flatcamTools/ToolProperties.py:559 +msgid "Length" +msgstr "Longitud" + +#: flatcamEditors/FlatCAMExcEditor.py:1848 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:164 +msgid "Length = The length of the slot." +msgstr "Longitud = La longitud de la ranura." + +#: flatcamEditors/FlatCAMExcEditor.py:1862 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:180 +msgid "" +"Direction on which the slot is oriented:\n" +"- 'X' - horizontal axis \n" +"- 'Y' - vertical axis or \n" +"- 'Angle' - a custom angle for the slot inclination" +msgstr "" +"Dirección en la que se orienta la ranura:\n" +"- 'X' - eje horizontal\n" +"- 'Y' - eje vertical o\n" +"- 'Ángulo': un ángulo personalizado para la inclinación de la ranura" + +#: flatcamEditors/FlatCAMExcEditor.py:1877 +msgid "" +"Angle at which the slot is placed.\n" +"The precision is of max 2 decimals.\n" +"Min value is: -360 degrees.\n" +"Max value is: 360.00 degrees." +msgstr "" +"Ángulo en el que se coloca la ranura.\n" +"La precisión es de un máximo de 2 decimales.\n" +"El valor mínimo es: -360 grados.\n" +"El valor máximo es: 360.00 grados." + +#: flatcamEditors/FlatCAMExcEditor.py:1910 +msgid "Slot Array Parameters" +msgstr "Parámetros de matriz de ranuras" + +#: flatcamEditors/FlatCAMExcEditor.py:1912 +msgid "Parameters for the array of slots (linear or circular array)" +msgstr "Parámetros para la matriz de ranuras (matriz lineal o circular)" + +#: flatcamEditors/FlatCAMExcEditor.py:1921 +msgid "" +"Select the type of slot array to create.\n" +"It can be Linear X(Y) or Circular" +msgstr "" +"Seleccione el tipo de matriz de ranuras para crear.\n" +"Puede ser lineal X (Y) o circular" + +#: flatcamEditors/FlatCAMExcEditor.py:1933 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:219 +msgid "Nr of slots" +msgstr "Nro. De ranuras" + +#: flatcamEditors/FlatCAMExcEditor.py:1934 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:221 +msgid "Specify how many slots to be in the array." +msgstr "Especifique cuántas ranuras debe haber en la matriz." + +#: flatcamEditors/FlatCAMExcEditor.py:2452 +#: flatcamObjects/FlatCAMExcellon.py:410 +msgid "Total Drills" +msgstr "Taladros totales" + +#: flatcamEditors/FlatCAMExcEditor.py:2484 +#: flatcamObjects/FlatCAMExcellon.py:441 +msgid "Total Slots" +msgstr "Ranuras totales" + +#: flatcamEditors/FlatCAMExcEditor.py:2559 +#: flatcamEditors/FlatCAMGeoEditor.py:1076 +#: flatcamEditors/FlatCAMGeoEditor.py:1117 +#: flatcamEditors/FlatCAMGeoEditor.py:1145 +#: flatcamEditors/FlatCAMGeoEditor.py:1173 +#: flatcamEditors/FlatCAMGeoEditor.py:1217 +#: flatcamEditors/FlatCAMGeoEditor.py:1252 +#: flatcamEditors/FlatCAMGeoEditor.py:1280 +#: flatcamObjects/FlatCAMGeometry.py:599 flatcamObjects/FlatCAMGeometry.py:1033 +#: flatcamObjects/FlatCAMGeometry.py:1780 +#: flatcamObjects/FlatCAMGeometry.py:2424 flatcamTools/ToolNCC.py:1498 +#: flatcamTools/ToolPaint.py:1249 flatcamTools/ToolPaint.py:1420 +#: flatcamTools/ToolSolderPaste.py:883 flatcamTools/ToolSolderPaste.py:956 +msgid "Wrong value format entered, use a number." +msgstr "Formato de valor incorrecto introducido, use un número." + +#: flatcamEditors/FlatCAMExcEditor.py:2570 +msgid "" +"Tool already in the original or actual tool list.\n" +"Save and reedit Excellon if you need to add this tool. " +msgstr "" +"Herramienta ya en la lista de herramientas original o real.\n" +"Guarde y reedite Excellon si necesita agregar esta herramienta. " + +#: flatcamEditors/FlatCAMExcEditor.py:2579 flatcamGUI/FlatCAMGUI.py:4071 +msgid "Added new tool with dia" +msgstr "Nueva herramienta agregada con dia" + +#: flatcamEditors/FlatCAMExcEditor.py:2612 +msgid "Select a tool in Tool Table" +msgstr "Seleccione una herramienta en la tabla de herramientas" + +#: flatcamEditors/FlatCAMExcEditor.py:2642 +msgid "Deleted tool with diameter" +msgstr "Herramienta eliminada con diámetro" + +#: flatcamEditors/FlatCAMExcEditor.py:2790 +msgid "Done. Tool edit completed." +msgstr "Hecho. Edición de herramienta completada." + +#: flatcamEditors/FlatCAMExcEditor.py:3352 +msgid "There are no Tools definitions in the file. Aborting Excellon creation." +msgstr "" +"No hay definiciones de herramientas en el archivo. Anulando la creación de " +"Excellon." + +#: flatcamEditors/FlatCAMExcEditor.py:3356 +msgid "An internal error has ocurred. See Shell.\n" +msgstr "Ha ocurrido un error interno. Ver concha.\n" + +#: flatcamEditors/FlatCAMExcEditor.py:3361 +msgid "Creating Excellon." +msgstr "Creación de Excellon." + +#: flatcamEditors/FlatCAMExcEditor.py:3373 +msgid "Excellon editing finished." +msgstr "Excelente edición terminada." + +#: flatcamEditors/FlatCAMExcEditor.py:3390 +msgid "Cancelled. There is no Tool/Drill selected" +msgstr "Cancelado. No hay herramienta / taladro seleccionado" + +#: flatcamEditors/FlatCAMExcEditor.py:4003 +msgid "Done. Drill(s) deleted." +msgstr "Hecho. Taladro (s) eliminado (s)." + +#: flatcamEditors/FlatCAMExcEditor.py:4076 +#: flatcamEditors/FlatCAMExcEditor.py:4086 +#: flatcamEditors/FlatCAMGrbEditor.py:5063 +msgid "Click on the circular array Center position" +msgstr "Haga clic en la posición del centro matriz circular" + +#: flatcamEditors/FlatCAMGeoEditor.py:85 +msgid "Buffer distance:" +msgstr "Dist. de amortiguación:" + +#: flatcamEditors/FlatCAMGeoEditor.py:86 +msgid "Buffer corner:" +msgstr "Rincón del búfer:" + +#: flatcamEditors/FlatCAMGeoEditor.py:88 +msgid "" +"There are 3 types of corners:\n" +" - 'Round': the corner is rounded for exterior buffer.\n" +" - 'Square': the corner is met in a sharp angle for exterior buffer.\n" +" - 'Beveled': the corner is a line that directly connects the features " +"meeting in the corner" +msgstr "" +"Hay 3 tipos de esquinas:\n" +" - 'Redondo': la esquina está redondeada para el búfer exterior.\n" +" - 'Cuadrado:' la esquina se encuentra en un ángulo agudo para el búfer " +"exterior.\n" +" - 'Biselado:' la esquina es una línea que conecta directamente las " +"funciones que se encuentran en la esquina" + +#: flatcamEditors/FlatCAMGeoEditor.py:94 +#: flatcamEditors/FlatCAMGrbEditor.py:2631 +msgid "Round" +msgstr "Redondo" + +#: flatcamEditors/FlatCAMGeoEditor.py:95 +#: flatcamEditors/FlatCAMGrbEditor.py:2632 flatcamGUI/ObjectUI.py:2073 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:217 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:68 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:175 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:68 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:177 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:143 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:327 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:291 +#: flatcamTools/ToolExtractDrills.py:94 flatcamTools/ToolExtractDrills.py:227 +#: flatcamTools/ToolNCC.py:583 flatcamTools/ToolPaint.py:527 +#: flatcamTools/ToolPunchGerber.py:105 flatcamTools/ToolPunchGerber.py:255 +#: flatcamTools/ToolQRCode.py:198 +msgid "Square" +msgstr "Cuadrado" + +#: flatcamEditors/FlatCAMGeoEditor.py:96 +#: flatcamEditors/FlatCAMGrbEditor.py:2633 +msgid "Beveled" +msgstr "Biselado" + +#: flatcamEditors/FlatCAMGeoEditor.py:103 +msgid "Buffer Interior" +msgstr "Interior del amortiguador" + +#: flatcamEditors/FlatCAMGeoEditor.py:105 +msgid "Buffer Exterior" +msgstr "Amortiguador exterior" + +#: flatcamEditors/FlatCAMGeoEditor.py:111 +msgid "Full Buffer" +msgstr "Buffer lleno" + +#: flatcamEditors/FlatCAMGeoEditor.py:132 +#: flatcamEditors/FlatCAMGeoEditor.py:3017 flatcamGUI/FlatCAMGUI.py:1928 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:190 +msgid "Buffer Tool" +msgstr "Herramienta Buffer" + +#: flatcamEditors/FlatCAMGeoEditor.py:144 +#: flatcamEditors/FlatCAMGeoEditor.py:161 +#: flatcamEditors/FlatCAMGeoEditor.py:178 +#: flatcamEditors/FlatCAMGeoEditor.py:3036 +#: flatcamEditors/FlatCAMGeoEditor.py:3064 +#: flatcamEditors/FlatCAMGeoEditor.py:3092 +#: flatcamEditors/FlatCAMGrbEditor.py:5116 +msgid "Buffer distance value is missing or wrong format. Add it and retry." +msgstr "" +"Falta el valor de la distancia del búfer o el formato es incorrecto. " +"Agrégalo y vuelve a intentarlo." + +#: flatcamEditors/FlatCAMGeoEditor.py:242 +msgid "Font" +msgstr "Font" + +#: flatcamEditors/FlatCAMGeoEditor.py:323 flatcamGUI/FlatCAMGUI.py:2208 +msgid "Text" +msgstr "Texto" + +#: flatcamEditors/FlatCAMGeoEditor.py:349 +msgid "Text Tool" +msgstr "Herramienta de texto" + +#: flatcamEditors/FlatCAMGeoEditor.py:405 flatcamGUI/FlatCAMGUI.py:511 +#: flatcamGUI/FlatCAMGUI.py:1158 flatcamGUI/ObjectUI.py:818 +#: flatcamGUI/ObjectUI.py:1662 flatcamObjects/FlatCAMExcellon.py:742 +#: flatcamObjects/FlatCAMExcellon.py:1084 flatcamObjects/FlatCAMGeometry.py:759 +#: flatcamTools/ToolNCC.py:331 flatcamTools/ToolNCC.py:797 +#: flatcamTools/ToolPaint.py:314 flatcamTools/ToolPaint.py:767 +msgid "Tool" +msgstr "Herramienta" + +#: flatcamEditors/FlatCAMGeoEditor.py:439 flatcamGUI/ObjectUI.py:364 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:43 +msgid "Tool dia" +msgstr "Diá. de la herramienta" + +#: flatcamEditors/FlatCAMGeoEditor.py:441 +msgid "Diameter of the tool to be used in the operation." +msgstr "Diámetro de la herramienta a utilizar en la operación." + +#: flatcamEditors/FlatCAMGeoEditor.py:487 +msgid "" +"Algorithm to paint the polygons:\n" +"- Standard: Fixed step inwards.\n" +"- Seed-based: Outwards from seed.\n" +"- Line-based: Parallel lines." +msgstr "" +"Algoritmo para pintar los polígonos:\n" +"- Estándar: paso fijo hacia adentro.\n" +"- Basado en semillas: hacia afuera de la semilla.\n" +"- Basado en líneas: líneas paralelas." + +#: flatcamEditors/FlatCAMGeoEditor.py:506 +msgid "Connect:" +msgstr "Conectar:" + +#: flatcamEditors/FlatCAMGeoEditor.py:516 +msgid "Contour:" +msgstr "Contorno:" + +#: flatcamEditors/FlatCAMGeoEditor.py:529 flatcamGUI/FlatCAMGUI.py:2212 +msgid "Paint" +msgstr "Pintar" + +#: flatcamEditors/FlatCAMGeoEditor.py:547 flatcamGUI/FlatCAMGUI.py:924 +#: flatcamGUI/FlatCAMGUI.py:2628 flatcamGUI/ObjectUI.py:2139 +#: flatcamTools/ToolPaint.py:43 flatcamTools/ToolPaint.py:738 +msgid "Paint Tool" +msgstr "Herramienta de pintura" + +#: flatcamEditors/FlatCAMGeoEditor.py:583 +#: flatcamEditors/FlatCAMGeoEditor.py:1055 +#: flatcamEditors/FlatCAMGeoEditor.py:3024 +#: flatcamEditors/FlatCAMGeoEditor.py:3052 +#: flatcamEditors/FlatCAMGeoEditor.py:3080 +#: flatcamEditors/FlatCAMGeoEditor.py:4502 +#: flatcamEditors/FlatCAMGrbEditor.py:5767 +msgid "Cancelled. No shape selected." +msgstr "Cancelado. Ninguna forma seleccionada." + +#: flatcamEditors/FlatCAMGeoEditor.py:596 +#: flatcamEditors/FlatCAMGeoEditor.py:3042 +#: flatcamEditors/FlatCAMGeoEditor.py:3070 +#: flatcamEditors/FlatCAMGeoEditor.py:3098 +#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:59 +#: flatcamTools/ToolProperties.py:117 flatcamTools/ToolProperties.py:162 +msgid "Tools" +msgstr "Herramientas" + +#: flatcamEditors/FlatCAMGeoEditor.py:607 +#: flatcamEditors/FlatCAMGeoEditor.py:991 +#: flatcamEditors/FlatCAMGrbEditor.py:5306 +#: flatcamEditors/FlatCAMGrbEditor.py:5703 flatcamGUI/FlatCAMGUI.py:945 +#: flatcamGUI/FlatCAMGUI.py:2649 flatcamTools/ToolTransform.py:460 +msgid "Transform Tool" +msgstr "Herramienta de transformación" + +#: flatcamEditors/FlatCAMGeoEditor.py:608 +#: flatcamEditors/FlatCAMGeoEditor.py:673 +#: flatcamEditors/FlatCAMGrbEditor.py:5307 +#: flatcamEditors/FlatCAMGrbEditor.py:5372 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:45 +#: flatcamTools/ToolTransform.py:24 flatcamTools/ToolTransform.py:466 +msgid "Rotate" +msgstr "Girar" + +#: flatcamEditors/FlatCAMGeoEditor.py:609 +#: flatcamEditors/FlatCAMGrbEditor.py:5308 flatcamTools/ToolTransform.py:25 +msgid "Skew/Shear" +msgstr "Sesgo / cizalla" + +#: flatcamEditors/FlatCAMGeoEditor.py:610 +#: flatcamEditors/FlatCAMGrbEditor.py:2680 +#: flatcamEditors/FlatCAMGrbEditor.py:5309 flatcamGUI/FlatCAMGUI.py:1063 +#: flatcamGUI/FlatCAMGUI.py:2140 flatcamGUI/FlatCAMGUI.py:2255 +#: flatcamGUI/FlatCAMGUI.py:2767 flatcamGUI/ObjectUI.py:125 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:95 +#: flatcamTools/ToolTransform.py:26 +msgid "Scale" +msgstr "Escala" + +#: flatcamEditors/FlatCAMGeoEditor.py:611 +#: flatcamEditors/FlatCAMGrbEditor.py:5310 flatcamTools/ToolTransform.py:27 +msgid "Mirror (Flip)" +msgstr "Espejo (Flip)" + +#: flatcamEditors/FlatCAMGeoEditor.py:625 +#: flatcamEditors/FlatCAMGrbEditor.py:5324 flatcamGUI/FlatCAMGUI.py:856 +#: flatcamGUI/FlatCAMGUI.py:2564 +msgid "Editor" +msgstr "Editor" + +#: flatcamEditors/FlatCAMGeoEditor.py:657 +#: flatcamEditors/FlatCAMGrbEditor.py:5356 +msgid "Angle:" +msgstr "Ángulo:" + +#: flatcamEditors/FlatCAMGeoEditor.py:659 +#: flatcamEditors/FlatCAMGrbEditor.py:5358 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:55 +#: flatcamTools/ToolTransform.py:62 +msgid "" +"Angle for Rotation action, in degrees.\n" +"Float number between -360 and 359.\n" +"Positive numbers for CW motion.\n" +"Negative numbers for CCW motion." +msgstr "" +"Ángulo para la acción de rotación, en grados.\n" +"Número de flotación entre -360 y 359.\n" +"Números positivos para movimiento CW.\n" +"Números negativos para movimiento CCW." + +#: flatcamEditors/FlatCAMGeoEditor.py:675 +#: flatcamEditors/FlatCAMGrbEditor.py:5374 +msgid "" +"Rotate the selected shape(s).\n" +"The point of reference is the middle of\n" +"the bounding box for all selected shapes." +msgstr "" +"Gire la (s) forma (s) seleccionada (s).\n" +"El punto de referencia es el centro de\n" +"El cuadro delimitador para todas las formas seleccionadas." + +#: flatcamEditors/FlatCAMGeoEditor.py:698 +#: flatcamEditors/FlatCAMGrbEditor.py:5397 +msgid "Angle X:" +msgstr "Ángulo X:" + +#: flatcamEditors/FlatCAMGeoEditor.py:700 +#: flatcamEditors/FlatCAMGeoEditor.py:720 +#: flatcamEditors/FlatCAMGrbEditor.py:5399 +#: flatcamEditors/FlatCAMGrbEditor.py:5419 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:74 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:88 +#: flatcamTools/ToolCalibration.py:505 flatcamTools/ToolCalibration.py:518 +msgid "" +"Angle for Skew action, in degrees.\n" +"Float number between -360 and 359." +msgstr "" +"Ángulo para sesgo de acción, en grados.\n" +"Número de flotación entre -360 y 359." + +#: flatcamEditors/FlatCAMGeoEditor.py:711 +#: flatcamEditors/FlatCAMGrbEditor.py:5410 flatcamTools/ToolTransform.py:467 +msgid "Skew X" +msgstr "Sesgo x" + +#: flatcamEditors/FlatCAMGeoEditor.py:713 +#: flatcamEditors/FlatCAMGeoEditor.py:733 +#: flatcamEditors/FlatCAMGrbEditor.py:5412 +#: flatcamEditors/FlatCAMGrbEditor.py:5432 +msgid "" +"Skew/shear the selected shape(s).\n" +"The point of reference is the middle of\n" +"the bounding box for all selected shapes." +msgstr "" +"Sesgar / cortar la (s) forma (s) seleccionada (s).\n" +"El punto de referencia es el centro de\n" +"El cuadro delimitador para todas las formas seleccionadas." + +#: flatcamEditors/FlatCAMGeoEditor.py:718 +#: flatcamEditors/FlatCAMGrbEditor.py:5417 +msgid "Angle Y:" +msgstr "Ángulo Y:" + +#: flatcamEditors/FlatCAMGeoEditor.py:731 +#: flatcamEditors/FlatCAMGrbEditor.py:5430 flatcamTools/ToolTransform.py:468 +msgid "Skew Y" +msgstr "Sesgo y" + +#: flatcamEditors/FlatCAMGeoEditor.py:759 +#: flatcamEditors/FlatCAMGrbEditor.py:5458 +msgid "Factor X:" +msgstr "Factor X:" + +#: flatcamEditors/FlatCAMGeoEditor.py:761 +#: flatcamEditors/FlatCAMGrbEditor.py:5460 flatcamTools/ToolCalibration.py:469 +msgid "Factor for Scale action over X axis." +msgstr "Factor para la acción de escala sobre el eje X." + +#: flatcamEditors/FlatCAMGeoEditor.py:771 +#: flatcamEditors/FlatCAMGrbEditor.py:5470 flatcamTools/ToolTransform.py:469 +msgid "Scale X" +msgstr "Escala x" + +#: flatcamEditors/FlatCAMGeoEditor.py:773 +#: flatcamEditors/FlatCAMGeoEditor.py:792 +#: flatcamEditors/FlatCAMGrbEditor.py:5472 +#: flatcamEditors/FlatCAMGrbEditor.py:5491 +msgid "" +"Scale the selected shape(s).\n" +"The point of reference depends on \n" +"the Scale reference checkbox state." +msgstr "" +"Escala las formas seleccionadas.\n" +"El punto de referencia depende de\n" +"El estado de la casilla de verificación Escala de referencia." + +#: flatcamEditors/FlatCAMGeoEditor.py:778 +#: flatcamEditors/FlatCAMGrbEditor.py:5477 +msgid "Factor Y:" +msgstr "Factor Y:" + +#: flatcamEditors/FlatCAMGeoEditor.py:780 +#: flatcamEditors/FlatCAMGrbEditor.py:5479 flatcamTools/ToolCalibration.py:481 +msgid "Factor for Scale action over Y axis." +msgstr "Factor de acción de escala sobre eje Y." + +#: flatcamEditors/FlatCAMGeoEditor.py:790 +#: flatcamEditors/FlatCAMGrbEditor.py:5489 flatcamTools/ToolTransform.py:470 +msgid "Scale Y" +msgstr "Escala Y" + +#: flatcamEditors/FlatCAMGeoEditor.py:799 +#: flatcamEditors/FlatCAMGrbEditor.py:5498 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:124 +#: flatcamTools/ToolTransform.py:189 +msgid "Link" +msgstr "Enlazar" + +#: flatcamEditors/FlatCAMGeoEditor.py:801 +#: flatcamEditors/FlatCAMGrbEditor.py:5500 +msgid "" +"Scale the selected shape(s)\n" +"using the Scale Factor X for both axis." +msgstr "" +"Escala las formas seleccionadas\n" +"Utilizando el Scale Factor X para ambos ejes." + +#: flatcamEditors/FlatCAMGeoEditor.py:807 +#: flatcamEditors/FlatCAMGrbEditor.py:5506 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:132 +#: flatcamTools/ToolTransform.py:196 +msgid "Scale Reference" +msgstr "Referencia de escala" + +#: flatcamEditors/FlatCAMGeoEditor.py:809 +#: flatcamEditors/FlatCAMGrbEditor.py:5508 +msgid "" +"Scale the selected shape(s)\n" +"using the origin reference when checked,\n" +"and the center of the biggest bounding box\n" +"of the selected shapes when unchecked." +msgstr "" +"Escala las formas seleccionadas\n" +"usando la referencia de origen cuando está marcada,\n" +"y el centro del cuadro delimitador más grande.\n" +"de las formas seleccionadas cuando no está marcada." + +#: flatcamEditors/FlatCAMGeoEditor.py:837 +#: flatcamEditors/FlatCAMGrbEditor.py:5537 +msgid "Value X:" +msgstr "Valor X:" + +#: flatcamEditors/FlatCAMGeoEditor.py:839 +#: flatcamEditors/FlatCAMGrbEditor.py:5539 +msgid "Value for Offset action on X axis." +msgstr "Valor para la acción Offset en el eje X." + +#: flatcamEditors/FlatCAMGeoEditor.py:849 +#: flatcamEditors/FlatCAMGrbEditor.py:5549 flatcamTools/ToolTransform.py:473 +msgid "Offset X" +msgstr "Offset X" + +#: flatcamEditors/FlatCAMGeoEditor.py:851 +#: flatcamEditors/FlatCAMGeoEditor.py:871 +#: flatcamEditors/FlatCAMGrbEditor.py:5551 +#: flatcamEditors/FlatCAMGrbEditor.py:5571 +msgid "" +"Offset the selected shape(s).\n" +"The point of reference is the middle of\n" +"the bounding box for all selected shapes.\n" +msgstr "" +"Desplazar las formas seleccionadas.\n" +"El punto de referencia es el centro de\n" +"El cuadro delimitador para todas las formas seleccionadas.\n" + +#: flatcamEditors/FlatCAMGeoEditor.py:857 +#: flatcamEditors/FlatCAMGrbEditor.py:5557 +msgid "Value Y:" +msgstr "Valor Y:" + +#: flatcamEditors/FlatCAMGeoEditor.py:859 +#: flatcamEditors/FlatCAMGrbEditor.py:5559 +msgid "Value for Offset action on Y axis." +msgstr "Valor para la acción Offset en el eje Y." + +#: flatcamEditors/FlatCAMGeoEditor.py:869 +#: flatcamEditors/FlatCAMGrbEditor.py:5569 flatcamTools/ToolTransform.py:474 +msgid "Offset Y" +msgstr "Offset Y" + +#: flatcamEditors/FlatCAMGeoEditor.py:900 +#: flatcamEditors/FlatCAMGrbEditor.py:5600 flatcamTools/ToolTransform.py:475 +msgid "Flip on X" +msgstr "Voltear en X" + +#: flatcamEditors/FlatCAMGeoEditor.py:902 +#: flatcamEditors/FlatCAMGeoEditor.py:909 +#: flatcamEditors/FlatCAMGrbEditor.py:5602 +#: flatcamEditors/FlatCAMGrbEditor.py:5609 +msgid "" +"Flip the selected shape(s) over the X axis.\n" +"Does not create a new shape." +msgstr "" +"Voltea la (s) forma (s) seleccionada (s) sobre el eje X.\n" +"No crea una nueva forma." + +#: flatcamEditors/FlatCAMGeoEditor.py:907 +#: flatcamEditors/FlatCAMGrbEditor.py:5607 flatcamTools/ToolTransform.py:476 +msgid "Flip on Y" +msgstr "Voltear en Y" + +#: flatcamEditors/FlatCAMGeoEditor.py:915 +#: flatcamEditors/FlatCAMGrbEditor.py:5615 +msgid "Ref Pt" +msgstr "Punto de Ref" + +#: flatcamEditors/FlatCAMGeoEditor.py:917 +#: flatcamEditors/FlatCAMGrbEditor.py:5617 +msgid "" +"Flip the selected shape(s)\n" +"around the point in Point Entry Field.\n" +"\n" +"The point coordinates can be captured by\n" +"left click on canvas together with pressing\n" +"SHIFT key. \n" +"Then click Add button to insert coordinates.\n" +"Or enter the coords in format (x, y) in the\n" +"Point Entry field and click Flip on X(Y)" +msgstr "" +"Voltear la (s) forma (s) seleccionada (s)\n" +"alrededor del punto en el campo de entrada de puntos.\n" +"\n" +"Las coordenadas del punto pueden ser capturadas por\n" +"Haga clic izquierdo en el lienzo junto con la presión\n" +"Tecla Shift.\n" +"Luego haga clic en el botón Agregar para insertar coordenadas.\n" +"O ingrese las coords en formato (x, y) en el\n" +"Campo de entrada de puntos y haga clic en Girar en X (Y)" + +#: flatcamEditors/FlatCAMGeoEditor.py:929 +#: flatcamEditors/FlatCAMGrbEditor.py:5629 +msgid "Point:" +msgstr "Punto:" + +#: flatcamEditors/FlatCAMGeoEditor.py:931 +#: flatcamEditors/FlatCAMGrbEditor.py:5631 flatcamTools/ToolTransform.py:299 +msgid "" +"Coordinates in format (x, y) used as reference for mirroring.\n" +"The 'x' in (x, y) will be used when using Flip on X and\n" +"the 'y' in (x, y) will be used when using Flip on Y." +msgstr "" +"Coordenadas en formato (x, y) utilizadas como referencia para la " +"duplicación.\n" +"La 'x' en (x, y) se usará cuando se usa Flip en X y\n" +"la 'y' en (x, y) se usará cuando se use Flip en Y." + +#: flatcamEditors/FlatCAMGeoEditor.py:941 +#: flatcamEditors/FlatCAMGrbEditor.py:5643 flatcamTools/ToolTransform.py:309 +msgid "" +"The point coordinates can be captured by\n" +"left click on canvas together with pressing\n" +"SHIFT key. Then click Add button to insert." +msgstr "" +"Las coordenadas del punto pueden ser capturadas por\n" +"Haga clic izquierdo en el lienzo junto con la presión\n" +"Tecla Shift. Luego haga clic en el botón Agregar para insertar." + +#: flatcamEditors/FlatCAMGeoEditor.py:1304 +#: flatcamEditors/FlatCAMGrbEditor.py:5951 +msgid "No shape selected. Please Select a shape to rotate!" +msgstr "" +"Ninguna forma seleccionada. Por favor, seleccione una forma para rotar!" + +#: flatcamEditors/FlatCAMGeoEditor.py:1307 +#: flatcamEditors/FlatCAMGrbEditor.py:5954 flatcamTools/ToolTransform.py:679 +msgid "Appying Rotate" +msgstr "Aplicando rotar" + +#: flatcamEditors/FlatCAMGeoEditor.py:1333 +#: flatcamEditors/FlatCAMGrbEditor.py:5986 +msgid "Done. Rotate completed." +msgstr "Hecho. Rotación completada." + +#: flatcamEditors/FlatCAMGeoEditor.py:1335 +msgid "Rotation action was not executed" +msgstr "La acción de rotación no se ejecutó" + +#: flatcamEditors/FlatCAMGeoEditor.py:1354 +#: flatcamEditors/FlatCAMGrbEditor.py:6005 +msgid "No shape selected. Please Select a shape to flip!" +msgstr "" +"Ninguna forma seleccionada. Por favor, seleccione una forma para voltear!" + +#: flatcamEditors/FlatCAMGeoEditor.py:1357 +#: flatcamEditors/FlatCAMGrbEditor.py:6008 flatcamTools/ToolTransform.py:728 +msgid "Applying Flip" +msgstr "Aplicando Voltear" + +#: flatcamEditors/FlatCAMGeoEditor.py:1386 +#: flatcamEditors/FlatCAMGrbEditor.py:6046 flatcamTools/ToolTransform.py:769 +msgid "Flip on the Y axis done" +msgstr "Voltear sobre el eje Y hecho" + +#: flatcamEditors/FlatCAMGeoEditor.py:1390 +#: flatcamEditors/FlatCAMGrbEditor.py:6055 flatcamTools/ToolTransform.py:778 +msgid "Flip on the X axis done" +msgstr "Voltear en el eje X hecho" + +#: flatcamEditors/FlatCAMGeoEditor.py:1398 +msgid "Flip action was not executed" +msgstr "La acción de voltear no se ejecutó" + +#: flatcamEditors/FlatCAMGeoEditor.py:1416 +#: flatcamEditors/FlatCAMGrbEditor.py:6075 +msgid "No shape selected. Please Select a shape to shear/skew!" +msgstr "" +"Ninguna forma seleccionada. Por favor, seleccione una forma para esquilar / " +"sesgar!" + +#: flatcamEditors/FlatCAMGeoEditor.py:1419 +#: flatcamEditors/FlatCAMGrbEditor.py:6078 flatcamTools/ToolTransform.py:801 +msgid "Applying Skew" +msgstr "Aplicando Sesgo" + +#: flatcamEditors/FlatCAMGeoEditor.py:1442 +#: flatcamEditors/FlatCAMGrbEditor.py:6112 +msgid "Skew on the X axis done" +msgstr "Sesgar sobre el eje X hecho" + +#: flatcamEditors/FlatCAMGeoEditor.py:1444 +#: flatcamEditors/FlatCAMGrbEditor.py:6114 +msgid "Skew on the Y axis done" +msgstr "Sesgar sobre el eje Y hecho" + +#: flatcamEditors/FlatCAMGeoEditor.py:1447 +msgid "Skew action was not executed" +msgstr "La acción sesgada no se ejecutó" + +#: flatcamEditors/FlatCAMGeoEditor.py:1469 +#: flatcamEditors/FlatCAMGrbEditor.py:6136 +msgid "No shape selected. Please Select a shape to scale!" +msgstr "Ninguna forma seleccionada. Por favor, seleccione una forma a escala!" + +#: flatcamEditors/FlatCAMGeoEditor.py:1472 +#: flatcamEditors/FlatCAMGrbEditor.py:6139 flatcamTools/ToolTransform.py:847 +msgid "Applying Scale" +msgstr "Aplicando la escala" + +#: flatcamEditors/FlatCAMGeoEditor.py:1504 +#: flatcamEditors/FlatCAMGrbEditor.py:6176 +msgid "Scale on the X axis done" +msgstr "Escala en el eje X hecho" + +#: flatcamEditors/FlatCAMGeoEditor.py:1506 +#: flatcamEditors/FlatCAMGrbEditor.py:6178 +msgid "Scale on the Y axis done" +msgstr "Escala en el eje Y hecho" + +#: flatcamEditors/FlatCAMGeoEditor.py:1508 +msgid "Scale action was not executed" +msgstr "La acción de escala no se ejecutó" + +#: flatcamEditors/FlatCAMGeoEditor.py:1523 +#: flatcamEditors/FlatCAMGrbEditor.py:6195 +msgid "No shape selected. Please Select a shape to offset!" +msgstr "" +"Ninguna forma seleccionada. Por favor, seleccione una forma para compensar!" + +#: flatcamEditors/FlatCAMGeoEditor.py:1526 +#: flatcamEditors/FlatCAMGrbEditor.py:6198 flatcamTools/ToolTransform.py:897 +msgid "Applying Offset" +msgstr "Aplicando Offset" + +#: flatcamEditors/FlatCAMGeoEditor.py:1536 +#: flatcamEditors/FlatCAMGrbEditor.py:6219 +msgid "Offset on the X axis done" +msgstr "Offset en el eje X hecho" + +#: flatcamEditors/FlatCAMGeoEditor.py:1538 +#: flatcamEditors/FlatCAMGrbEditor.py:6221 +msgid "Offset on the Y axis done" +msgstr "Offset en el eje Y hecho" + +#: flatcamEditors/FlatCAMGeoEditor.py:1541 +msgid "Offset action was not executed" +msgstr "La acción de desplazamiento no se ejecutó" + +#: flatcamEditors/FlatCAMGeoEditor.py:1545 +#: flatcamEditors/FlatCAMGrbEditor.py:6228 +msgid "Rotate ..." +msgstr "Girar ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:1546 +#: flatcamEditors/FlatCAMGeoEditor.py:1601 +#: flatcamEditors/FlatCAMGeoEditor.py:1618 +#: flatcamEditors/FlatCAMGrbEditor.py:6229 +#: flatcamEditors/FlatCAMGrbEditor.py:6278 +#: flatcamEditors/FlatCAMGrbEditor.py:6293 +msgid "Enter an Angle Value (degrees)" +msgstr "Ingrese un valor de ángulo (grados)" + +#: flatcamEditors/FlatCAMGeoEditor.py:1555 +#: flatcamEditors/FlatCAMGrbEditor.py:6237 +msgid "Geometry shape rotate done" +msgstr "Forma de geometría rotar hecho" + +#: flatcamEditors/FlatCAMGeoEditor.py:1559 +#: flatcamEditors/FlatCAMGrbEditor.py:6240 +msgid "Geometry shape rotate cancelled" +msgstr "Rotación de forma de geometría cancelada" + +#: flatcamEditors/FlatCAMGeoEditor.py:1564 +#: flatcamEditors/FlatCAMGrbEditor.py:6245 +msgid "Offset on X axis ..." +msgstr "Offset en el eje X ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:1565 +#: flatcamEditors/FlatCAMGeoEditor.py:1584 +#: flatcamEditors/FlatCAMGrbEditor.py:6246 +#: flatcamEditors/FlatCAMGrbEditor.py:6263 +msgid "Enter a distance Value" +msgstr "Ingrese un valor de distancia" + +#: flatcamEditors/FlatCAMGeoEditor.py:1574 +#: flatcamEditors/FlatCAMGrbEditor.py:6254 +msgid "Geometry shape offset on X axis done" +msgstr "Forma de geometría compensada en el eje X hecho" + +#: flatcamEditors/FlatCAMGeoEditor.py:1578 +#: flatcamEditors/FlatCAMGrbEditor.py:6257 +msgid "Geometry shape offset X cancelled" +msgstr "Desplazamiento de forma de geometría X cancelado" + +#: flatcamEditors/FlatCAMGeoEditor.py:1583 +#: flatcamEditors/FlatCAMGrbEditor.py:6262 +msgid "Offset on Y axis ..." +msgstr "Offset en eje Y ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:1593 +#: flatcamEditors/FlatCAMGrbEditor.py:6271 +msgid "Geometry shape offset on Y axis done" +msgstr "Desplazamiento de forma de geometría en el eje Y hecho" + +#: flatcamEditors/FlatCAMGeoEditor.py:1597 +msgid "Geometry shape offset on Y axis canceled" +msgstr "Desplazamiento de forma de geometría en eje Y cancelado" + +#: flatcamEditors/FlatCAMGeoEditor.py:1600 +#: flatcamEditors/FlatCAMGrbEditor.py:6277 +msgid "Skew on X axis ..." +msgstr "Sesgar en el eje X ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:1610 +#: flatcamEditors/FlatCAMGrbEditor.py:6286 +msgid "Geometry shape skew on X axis done" +msgstr "Forma de geometría sesgada en el eje X hecho" + +#: flatcamEditors/FlatCAMGeoEditor.py:1614 +msgid "Geometry shape skew on X axis canceled" +msgstr "Forma geométrica sesgada en el eje X cancelada" + +#: flatcamEditors/FlatCAMGeoEditor.py:1617 +#: flatcamEditors/FlatCAMGrbEditor.py:6292 +msgid "Skew on Y axis ..." +msgstr "Sesgar en el eje Y ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:1627 +#: flatcamEditors/FlatCAMGrbEditor.py:6301 +msgid "Geometry shape skew on Y axis done" +msgstr "Forma de geometría sesgada en el eje Y hecho" + +#: flatcamEditors/FlatCAMGeoEditor.py:1631 +msgid "Geometry shape skew on Y axis canceled" +msgstr "Forma geométrica sesgada en el eje Y cancelada" + +#: flatcamEditors/FlatCAMGeoEditor.py:2008 +#: flatcamEditors/FlatCAMGeoEditor.py:2079 +#: flatcamEditors/FlatCAMGrbEditor.py:1437 +#: flatcamEditors/FlatCAMGrbEditor.py:1515 +msgid "Click on Center point ..." +msgstr "Haga clic en el punto central ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:2021 +#: flatcamEditors/FlatCAMGrbEditor.py:1447 +msgid "Click on Perimeter point to complete ..." +msgstr "Haga clic en el punto del perímetro para completar ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:2053 +msgid "Done. Adding Circle completed." +msgstr "Hecho. Añadiendo círculo completado." + +#: flatcamEditors/FlatCAMGeoEditor.py:2107 +#: flatcamEditors/FlatCAMGrbEditor.py:1548 +msgid "Click on Start point ..." +msgstr "Haga clic en el punto de inicio ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:2109 +#: flatcamEditors/FlatCAMGrbEditor.py:1550 +msgid "Click on Point3 ..." +msgstr "Haga clic en el punto 3 ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:2111 +#: flatcamEditors/FlatCAMGrbEditor.py:1552 +msgid "Click on Stop point ..." +msgstr "Haga clic en el punto de parada ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:2116 +#: flatcamEditors/FlatCAMGrbEditor.py:1557 +msgid "Click on Stop point to complete ..." +msgstr "Haga clic en el punto de parada para completar ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:2118 +#: flatcamEditors/FlatCAMGrbEditor.py:1559 +msgid "Click on Point2 to complete ..." +msgstr "Haga clic en el punto 2 para completar ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:2120 +#: flatcamEditors/FlatCAMGrbEditor.py:1561 +msgid "Click on Center point to complete ..." +msgstr "Haga clic en el punto central para completar ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:2132 +#, python-format +msgid "Direction: %s" +msgstr "Direccion: %s" + +#: flatcamEditors/FlatCAMGeoEditor.py:2146 +#: flatcamEditors/FlatCAMGrbEditor.py:1587 +msgid "Mode: Start -> Stop -> Center. Click on Start point ..." +msgstr "Modo: Inicio -> Detener -> Centro. Haga clic en el punto de inicio ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:2149 +#: flatcamEditors/FlatCAMGrbEditor.py:1590 +msgid "Mode: Point1 -> Point3 -> Point2. Click on Point1 ..." +msgstr "Modo: Punto1 -> Punto3 -> Punto2. Haga clic en el punto 1 ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:2152 +#: flatcamEditors/FlatCAMGrbEditor.py:1593 +msgid "Mode: Center -> Start -> Stop. Click on Center point ..." +msgstr "Modo: Centro -> Iniciar -> Detener. Haga clic en el punto central ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:2293 +msgid "Done. Arc completed." +msgstr "Hecho. Arco completado." + +#: flatcamEditors/FlatCAMGeoEditor.py:2324 +#: flatcamEditors/FlatCAMGeoEditor.py:2397 +msgid "Click on 1st corner ..." +msgstr "Haga clic en la primera esquina ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:2336 +msgid "Click on opposite corner to complete ..." +msgstr "Haga clic en la esquina opuesta para completar ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:2366 +msgid "Done. Rectangle completed." +msgstr "Hecho. Rectángulo completado." + +#: flatcamEditors/FlatCAMGeoEditor.py:2410 +#: flatcamObjects/FlatCAMGeometry.py:2648 flatcamTools/ToolNCC.py:1733 +#: flatcamTools/ToolPaint.py:1628 +msgid "Click on next Point or click right mouse button to complete ..." +msgstr "" +"Haga clic en el siguiente punto o haga clic con el botón derecho del ratón " +"para completar ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:2441 +msgid "Done. Polygon completed." +msgstr "Hecho. Polígono completado." + +#: flatcamEditors/FlatCAMGeoEditor.py:2455 +#: flatcamEditors/FlatCAMGeoEditor.py:2520 +#: flatcamEditors/FlatCAMGrbEditor.py:1113 +#: flatcamEditors/FlatCAMGrbEditor.py:1324 +msgid "Backtracked one point ..." +msgstr "Retrocedido un punto ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:2498 +msgid "Done. Path completed." +msgstr "Hecho. Camino completado." + +#: flatcamEditors/FlatCAMGeoEditor.py:2657 +msgid "No shape selected. Select a shape to explode" +msgstr "Ninguna forma seleccionada. Selecciona una forma para explotar" + +#: flatcamEditors/FlatCAMGeoEditor.py:2690 +msgid "Done. Polygons exploded into lines." +msgstr "Hecho. Los polígonos explotaron en líneas." + +#: flatcamEditors/FlatCAMGeoEditor.py:2722 +msgid "MOVE: No shape selected. Select a shape to move" +msgstr "MOVER: No se seleccionó la forma. Selecciona una forma para mover" + +#: flatcamEditors/FlatCAMGeoEditor.py:2725 +#: flatcamEditors/FlatCAMGeoEditor.py:2745 +msgid " MOVE: Click on reference point ..." +msgstr " MOVER: haga clic en el punto de referencia ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:2730 +msgid " Click on destination point ..." +msgstr " Haga clic en el punto de destino ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:2770 +msgid "Done. Geometry(s) Move completed." +msgstr "Hecho. Geometría (s) Movimiento completado." + +#: flatcamEditors/FlatCAMGeoEditor.py:2903 +msgid "Done. Geometry(s) Copy completed." +msgstr "Hecho. Geometría (s) Copia completada." + +#: flatcamEditors/FlatCAMGeoEditor.py:2934 +#: flatcamEditors/FlatCAMGrbEditor.py:899 +msgid "Click on 1st point ..." +msgstr "Haga clic en el primer punto ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:2958 +msgid "" +"Font not supported. Only Regular, Bold, Italic and BoldItalic are supported. " +"Error" +msgstr "" +"Fuente no soportada. Solo se admiten las versiones Regular, Bold, Italic y " +"BoldItalic. Error" + +#: flatcamEditors/FlatCAMGeoEditor.py:2966 +msgid "No text to add." +msgstr "No hay texto para agregar." + +#: flatcamEditors/FlatCAMGeoEditor.py:2976 +msgid " Done. Adding Text completed." +msgstr " Hecho. Agregando texto completado." + +#: flatcamEditors/FlatCAMGeoEditor.py:3013 +msgid "Create buffer geometry ..." +msgstr "Crear geometría de búfer ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:3048 +#: flatcamEditors/FlatCAMGrbEditor.py:5160 +msgid "Done. Buffer Tool completed." +msgstr "Hecho. Herramienta de amortiguación completada." + +#: flatcamEditors/FlatCAMGeoEditor.py:3076 +msgid "Done. Buffer Int Tool completed." +msgstr "Hecho. Herramienta interna de búfer completada." + +#: flatcamEditors/FlatCAMGeoEditor.py:3104 +msgid "Done. Buffer Ext Tool completed." +msgstr "Hecho. Herramienta externa de búfer completada." + +#: flatcamEditors/FlatCAMGeoEditor.py:3153 +#: flatcamEditors/FlatCAMGrbEditor.py:2153 +msgid "Select a shape to act as deletion area ..." +msgstr "Seleccione una forma para que actúe como área de eliminación ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:3155 +#: flatcamEditors/FlatCAMGeoEditor.py:3181 +#: flatcamEditors/FlatCAMGeoEditor.py:3187 +#: flatcamEditors/FlatCAMGrbEditor.py:2155 +msgid "Click to pick-up the erase shape..." +msgstr "Haga clic para recoger la forma de borrar ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:3191 +#: flatcamEditors/FlatCAMGrbEditor.py:2214 +msgid "Click to erase ..." +msgstr "Haga clic para borrar ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:3220 +#: flatcamEditors/FlatCAMGrbEditor.py:2247 +msgid "Done. Eraser tool action completed." +msgstr "Hecho. Se ha completado la acción de la herramienta de borrador." + +#: flatcamEditors/FlatCAMGeoEditor.py:3270 +msgid "Create Paint geometry ..." +msgstr "Crear geometría de pintura ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:3283 +#: flatcamEditors/FlatCAMGrbEditor.py:2410 +msgid "Shape transformations ..." +msgstr "Transformaciones de formas ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:3339 +#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:27 +msgid "Geometry Editor" +msgstr "Editor de geometría" + +#: flatcamEditors/FlatCAMGeoEditor.py:3345 +#: flatcamEditors/FlatCAMGrbEditor.py:2488 +#: flatcamEditors/FlatCAMGrbEditor.py:3969 flatcamGUI/ObjectUI.py:263 +#: flatcamGUI/ObjectUI.py:1497 flatcamGUI/ObjectUI.py:2326 +#: flatcamTools/ToolCutOut.py:95 +msgid "Type" +msgstr "Tipo" + +#: flatcamEditors/FlatCAMGeoEditor.py:3345 flatcamGUI/ObjectUI.py:218 +#: flatcamGUI/ObjectUI.py:742 flatcamGUI/ObjectUI.py:1433 +#: flatcamGUI/ObjectUI.py:2235 flatcamGUI/ObjectUI.py:2539 +#: flatcamGUI/ObjectUI.py:2606 flatcamTools/ToolCalibration.py:234 +#: flatcamTools/ToolFiducials.py:73 +msgid "Name" +msgstr "Nombre" + +#: flatcamEditors/FlatCAMGeoEditor.py:3587 +msgid "Ring" +msgstr "Anillo" + +#: flatcamEditors/FlatCAMGeoEditor.py:3589 +msgid "Line" +msgstr "Línea" + +#: flatcamEditors/FlatCAMGeoEditor.py:3591 flatcamGUI/FlatCAMGUI.py:2202 +#: flatcamGUI/ObjectUI.py:2074 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:218 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:328 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:292 +#: flatcamTools/ToolNCC.py:584 flatcamTools/ToolPaint.py:528 +msgid "Polygon" +msgstr "Polígono" + +#: flatcamEditors/FlatCAMGeoEditor.py:3593 +msgid "Multi-Line" +msgstr "Multilínea" + +#: flatcamEditors/FlatCAMGeoEditor.py:3595 +msgid "Multi-Polygon" +msgstr "Multi-polígono" + +#: flatcamEditors/FlatCAMGeoEditor.py:3602 +msgid "Geo Elem" +msgstr "Elemento de Geo" + +#: flatcamEditors/FlatCAMGeoEditor.py:4076 +msgid "Editing MultiGeo Geometry, tool" +msgstr "Edición de Geometría MultiGeo, herramienta" + +#: flatcamEditors/FlatCAMGeoEditor.py:4078 +msgid "with diameter" +msgstr "con diámetro" + +#: flatcamEditors/FlatCAMGeoEditor.py:4509 flatcamGUI/FlatCAMGUI.py:3753 +#: flatcamGUI/FlatCAMGUI.py:3799 flatcamGUI/FlatCAMGUI.py:3817 +#: flatcamGUI/FlatCAMGUI.py:3961 flatcamGUI/FlatCAMGUI.py:4000 +#: flatcamGUI/FlatCAMGUI.py:4012 flatcamGUI/FlatCAMGUI.py:4029 +msgid "Click on target point." +msgstr "Haga clic en el punto de destino." + +#: flatcamEditors/FlatCAMGeoEditor.py:4823 +#: flatcamEditors/FlatCAMGeoEditor.py:4858 +msgid "A selection of at least 2 geo items is required to do Intersection." +msgstr "" +"Se requiere una selección de al menos 2 elementos geo para hacer " +"Intersección." + +#: flatcamEditors/FlatCAMGeoEditor.py:4944 +#: flatcamEditors/FlatCAMGeoEditor.py:5048 +msgid "" +"Negative buffer value is not accepted. Use Buffer interior to generate an " +"'inside' shape" +msgstr "" +"No se acepta el valor de búfer negativo. Usa el interior del amortiguador " +"para generar una forma 'interior'" + +#: flatcamEditors/FlatCAMGeoEditor.py:4954 +#: flatcamEditors/FlatCAMGeoEditor.py:5007 +#: flatcamEditors/FlatCAMGeoEditor.py:5057 +msgid "Nothing selected for buffering." +msgstr "Nada seleccionado para el almacenamiento en búfer." + +#: flatcamEditors/FlatCAMGeoEditor.py:4959 +#: flatcamEditors/FlatCAMGeoEditor.py:5011 +#: flatcamEditors/FlatCAMGeoEditor.py:5062 +msgid "Invalid distance for buffering." +msgstr "Distancia no válida para el almacenamiento en búfer." + +#: flatcamEditors/FlatCAMGeoEditor.py:4983 +#: flatcamEditors/FlatCAMGeoEditor.py:5082 +msgid "Failed, the result is empty. Choose a different buffer value." +msgstr "Falló, el resultado está vacío. Elija un valor de búfer diferente." + +#: flatcamEditors/FlatCAMGeoEditor.py:4994 +msgid "Full buffer geometry created." +msgstr "Geometría de búfer completa creada." + +#: flatcamEditors/FlatCAMGeoEditor.py:5000 +msgid "Negative buffer value is not accepted." +msgstr "No se acepta el valor negativo del búfer." + +#: flatcamEditors/FlatCAMGeoEditor.py:5031 +msgid "Failed, the result is empty. Choose a smaller buffer value." +msgstr "Falló, el resultado está vacío. Elija un valor de búfer más pequeño." + +#: flatcamEditors/FlatCAMGeoEditor.py:5041 +msgid "Interior buffer geometry created." +msgstr "Geometría de búfer interior creada." + +#: flatcamEditors/FlatCAMGeoEditor.py:5092 +msgid "Exterior buffer geometry created." +msgstr "Geometría de búfer exterior creada." + +#: flatcamEditors/FlatCAMGeoEditor.py:5098 +#, python-format +msgid "Could not do Paint. Overlap value has to be less than 100%%." +msgstr "" +"No se pudo pintar. El valor de superposición debe ser inferior al 100 %%." + +#: flatcamEditors/FlatCAMGeoEditor.py:5105 +msgid "Nothing selected for painting." +msgstr "Nada seleccionado para pintar." + +#: flatcamEditors/FlatCAMGeoEditor.py:5111 +msgid "Invalid value for" +msgstr "Valor no válido para" + +#: flatcamEditors/FlatCAMGeoEditor.py:5170 +msgid "" +"Could not do Paint. Try a different combination of parameters. Or a " +"different method of Paint" +msgstr "" +"No se pudo pintar. Pruebe con una combinación diferente de parámetros. O un " +"método diferente de pintura" + +#: flatcamEditors/FlatCAMGeoEditor.py:5181 +msgid "Paint done." +msgstr "Pintura hecha." + +#: flatcamEditors/FlatCAMGrbEditor.py:213 +msgid "To add an Pad first select a aperture in Aperture Table" +msgstr "" +"Para agregar un Pad primero, seleccione una abertura en la Tabla de Aperture" + +#: flatcamEditors/FlatCAMGrbEditor.py:220 +#: flatcamEditors/FlatCAMGrbEditor.py:420 +msgid "Aperture size is zero. It needs to be greater than zero." +msgstr "El tamaño de la abertura es cero. Tiene que ser mayor que cero." + +#: flatcamEditors/FlatCAMGrbEditor.py:373 +#: flatcamEditors/FlatCAMGrbEditor.py:686 +msgid "" +"Incompatible aperture type. Select an aperture with type 'C', 'R' or 'O'." +msgstr "" +"Tipo de apertura incompatible. Seleccione una abertura con el tipo 'C', 'R' " +"o 'O'." + +#: flatcamEditors/FlatCAMGrbEditor.py:385 +msgid "Done. Adding Pad completed." +msgstr "Hecho. Añadiendo Pad completado." + +#: flatcamEditors/FlatCAMGrbEditor.py:412 +msgid "To add an Pad Array first select a aperture in Aperture Table" +msgstr "" +"Para agregar un Pad Array, primero seleccione una abertura en la Tabla de " +"Aperturas" + +#: flatcamEditors/FlatCAMGrbEditor.py:492 +msgid "Click on the Pad Circular Array Start position" +msgstr "Haga clic en la posición de inicio Pad Array Circular" + +#: flatcamEditors/FlatCAMGrbEditor.py:712 +msgid "Too many Pads for the selected spacing angle." +msgstr "Demasiados pads para el ángulo de espaciado seleccionado." + +#: flatcamEditors/FlatCAMGrbEditor.py:735 +msgid "Done. Pad Array added." +msgstr "Hecho. Pad Array añadido." + +#: flatcamEditors/FlatCAMGrbEditor.py:760 +msgid "Select shape(s) and then click ..." +msgstr "Seleccione forma (s) y luego haga clic en ..." + +#: flatcamEditors/FlatCAMGrbEditor.py:772 +msgid "Failed. Nothing selected." +msgstr "Ha fallado. Nada seleccionado." + +#: flatcamEditors/FlatCAMGrbEditor.py:788 +msgid "" +"Failed. Poligonize works only on geometries belonging to the same aperture." +msgstr "" +"Ha fallado. Poligonize funciona solo en geometrías pertenecientes a la misma " +"abertura." + +#: flatcamEditors/FlatCAMGrbEditor.py:842 +msgid "Done. Poligonize completed." +msgstr "Hecho. Poligonize completado." + +#: flatcamEditors/FlatCAMGrbEditor.py:897 +#: flatcamEditors/FlatCAMGrbEditor.py:1130 +#: flatcamEditors/FlatCAMGrbEditor.py:1154 +msgid "Corner Mode 1: 45 degrees ..." +msgstr "Modo esquina 1: 45 grados ..." + +#: flatcamEditors/FlatCAMGrbEditor.py:909 +#: flatcamEditors/FlatCAMGrbEditor.py:1239 +msgid "Click on next Point or click Right mouse button to complete ..." +msgstr "" +"Haga clic en el siguiente punto o haga clic con el botón derecho del mouse " +"para completar ..." + +#: flatcamEditors/FlatCAMGrbEditor.py:1118 +#: flatcamEditors/FlatCAMGrbEditor.py:1151 +msgid "Corner Mode 2: Reverse 45 degrees ..." +msgstr "Modo esquina 2: Invertir 45 grados ..." + +#: flatcamEditors/FlatCAMGrbEditor.py:1121 +#: flatcamEditors/FlatCAMGrbEditor.py:1148 +msgid "Corner Mode 3: 90 degrees ..." +msgstr "Modo esquina 3: 90 grados ..." + +#: flatcamEditors/FlatCAMGrbEditor.py:1124 +#: flatcamEditors/FlatCAMGrbEditor.py:1145 +msgid "Corner Mode 4: Reverse 90 degrees ..." +msgstr "Modo esquina 4: Invertir 90 grados ..." + +#: flatcamEditors/FlatCAMGrbEditor.py:1127 +#: flatcamEditors/FlatCAMGrbEditor.py:1142 +msgid "Corner Mode 5: Free angle ..." +msgstr "Modo esquina 5: ángulo libre ..." + +#: flatcamEditors/FlatCAMGrbEditor.py:1184 +#: flatcamEditors/FlatCAMGrbEditor.py:1360 +#: flatcamEditors/FlatCAMGrbEditor.py:1399 +msgid "Track Mode 1: 45 degrees ..." +msgstr "Modo de pista 1: 45 grados ..." + +#: flatcamEditors/FlatCAMGrbEditor.py:1340 +#: flatcamEditors/FlatCAMGrbEditor.py:1394 +msgid "Track Mode 2: Reverse 45 degrees ..." +msgstr "Modo de pista 2: Invertir 45 grados ..." + +#: flatcamEditors/FlatCAMGrbEditor.py:1345 +#: flatcamEditors/FlatCAMGrbEditor.py:1389 +msgid "Track Mode 3: 90 degrees ..." +msgstr "Modo de pista 3: 90 grados ..." + +#: flatcamEditors/FlatCAMGrbEditor.py:1350 +#: flatcamEditors/FlatCAMGrbEditor.py:1384 +msgid "Track Mode 4: Reverse 90 degrees ..." +msgstr "Modo de pista 4: Invertir 90 grados ..." + +#: flatcamEditors/FlatCAMGrbEditor.py:1355 +#: flatcamEditors/FlatCAMGrbEditor.py:1379 +msgid "Track Mode 5: Free angle ..." +msgstr "Modo de pista 5: ángulo libre ..." + +#: flatcamEditors/FlatCAMGrbEditor.py:1780 +msgid "Scale the selected Gerber apertures ..." +msgstr "Escala las aperturas seleccionadas de Gerber ..." + +#: flatcamEditors/FlatCAMGrbEditor.py:1822 +msgid "Buffer the selected apertures ..." +msgstr "Buffer de las aberturas seleccionadas ..." + +#: flatcamEditors/FlatCAMGrbEditor.py:1864 +msgid "Mark polygon areas in the edited Gerber ..." +msgstr "Marcar áreas de polígono en el Gerber editado ..." + +#: flatcamEditors/FlatCAMGrbEditor.py:1930 +msgid "Nothing selected to move" +msgstr "Nada seleccionado para mover" + +#: flatcamEditors/FlatCAMGrbEditor.py:2055 +msgid "Done. Apertures Move completed." +msgstr "Hecho. Movimiento de aperturas completado." + +#: flatcamEditors/FlatCAMGrbEditor.py:2137 +msgid "Done. Apertures copied." +msgstr "Hecho. Aberturas copiadas." + +#: flatcamEditors/FlatCAMGrbEditor.py:2455 flatcamGUI/FlatCAMGUI.py:2233 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:27 +msgid "Gerber Editor" +msgstr "Gerber Editor" + +#: flatcamEditors/FlatCAMGrbEditor.py:2475 flatcamGUI/ObjectUI.py:228 +#: flatcamTools/ToolProperties.py:159 +msgid "Apertures" +msgstr "Aberturas" + +#: flatcamEditors/FlatCAMGrbEditor.py:2477 flatcamGUI/ObjectUI.py:230 +msgid "Apertures Table for the Gerber Object." +msgstr "Tabla de Aperturas para el Objeto Gerber." + +#: flatcamEditors/FlatCAMGrbEditor.py:2488 +#: flatcamEditors/FlatCAMGrbEditor.py:3969 flatcamGUI/ObjectUI.py:263 +msgid "Code" +msgstr "Código" + +#: flatcamEditors/FlatCAMGrbEditor.py:2488 +#: flatcamEditors/FlatCAMGrbEditor.py:3969 flatcamGUI/ObjectUI.py:263 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:103 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:167 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:196 +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:43 +#: flatcamTools/ToolCopperThieving.py:261 +#: flatcamTools/ToolCopperThieving.py:301 flatcamTools/ToolFiducials.py:156 +msgid "Size" +msgstr "Tamaño" + +#: flatcamEditors/FlatCAMGrbEditor.py:2488 +#: flatcamEditors/FlatCAMGrbEditor.py:3969 flatcamGUI/ObjectUI.py:263 +msgid "Dim" +msgstr "Dim" + +#: flatcamEditors/FlatCAMGrbEditor.py:2493 flatcamGUI/ObjectUI.py:267 +msgid "Index" +msgstr "Índice" + +#: flatcamEditors/FlatCAMGrbEditor.py:2495 +#: flatcamEditors/FlatCAMGrbEditor.py:2524 flatcamGUI/ObjectUI.py:269 +msgid "Aperture Code" +msgstr "Código de apertura" + +#: flatcamEditors/FlatCAMGrbEditor.py:2497 flatcamGUI/ObjectUI.py:271 +msgid "Type of aperture: circular, rectangle, macros etc" +msgstr "Tipo de apertura: circular, rectangular, macros, etc" + +#: flatcamEditors/FlatCAMGrbEditor.py:2499 flatcamGUI/ObjectUI.py:273 +msgid "Aperture Size:" +msgstr "Tamaño de apertura:" + +#: flatcamEditors/FlatCAMGrbEditor.py:2501 flatcamGUI/ObjectUI.py:275 +msgid "" +"Aperture Dimensions:\n" +" - (width, height) for R, O type.\n" +" - (dia, nVertices) for P type" +msgstr "" +"Dimensiones de la abertura:\n" +"  - (ancho, alto) para R, O tipo.\n" +"  - (dia, nVertices) para tipo P" + +#: flatcamEditors/FlatCAMGrbEditor.py:2525 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:58 +msgid "Code for the new aperture" +msgstr "Código para la nueva apertura" + +#: flatcamEditors/FlatCAMGrbEditor.py:2534 +msgid "Aperture Size" +msgstr "Tamaño de apertura" + +#: flatcamEditors/FlatCAMGrbEditor.py:2536 +msgid "" +"Size for the new aperture.\n" +"If aperture type is 'R' or 'O' then\n" +"this value is automatically\n" +"calculated as:\n" +"sqrt(width**2 + height**2)" +msgstr "" +"Tamaño para la nueva apertura.\n" +"Si el tipo de apertura es 'R' o 'O' entonces\n" +"este valor es automáticamente\n" +"calculado como:\n" +"sqrt (ancho ** 2 + altura ** 2)" + +#: flatcamEditors/FlatCAMGrbEditor.py:2550 +msgid "Aperture Type" +msgstr "Tipo de apertura" + +#: flatcamEditors/FlatCAMGrbEditor.py:2552 +msgid "" +"Select the type of new aperture. Can be:\n" +"C = circular\n" +"R = rectangular\n" +"O = oblong" +msgstr "" +"Seleccione el tipo de apertura nueva. Puede ser:\n" +"C = circular\n" +"R = rectangular\n" +"O = oblongo" + +#: flatcamEditors/FlatCAMGrbEditor.py:2563 +msgid "Aperture Dim" +msgstr "Apertura Dim" + +#: flatcamEditors/FlatCAMGrbEditor.py:2565 +msgid "" +"Dimensions for the new aperture.\n" +"Active only for rectangular apertures (type R).\n" +"The format is (width, height)" +msgstr "" +"Dimensiones para la nueva apertura.\n" +"Activo solo para aberturas rectangulares (tipo R).\n" +"El formato es (ancho, alto)." + +#: flatcamEditors/FlatCAMGrbEditor.py:2574 +msgid "Add/Delete Aperture" +msgstr "Añadir / Eliminar Apertura" + +#: flatcamEditors/FlatCAMGrbEditor.py:2576 +msgid "Add/Delete an aperture in the aperture table" +msgstr "Añadir / Eliminar una apertura en la tabla de aperturas" + +#: flatcamEditors/FlatCAMGrbEditor.py:2585 +msgid "Add a new aperture to the aperture list." +msgstr "Agregar una nueva apertura a la lista de apertura." + +#: flatcamEditors/FlatCAMGrbEditor.py:2590 +msgid "Delete a aperture in the aperture list" +msgstr "Eliminar una abertura en la lista de aperturas" + +#: flatcamEditors/FlatCAMGrbEditor.py:2607 +msgid "Buffer Aperture" +msgstr "Apertura del tampón" + +#: flatcamEditors/FlatCAMGrbEditor.py:2609 +msgid "Buffer a aperture in the aperture list" +msgstr "Buffer de apertura en la lista de apertura" + +#: flatcamEditors/FlatCAMGrbEditor.py:2622 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:194 +msgid "Buffer distance" +msgstr "Dist. de buffer" + +#: flatcamEditors/FlatCAMGrbEditor.py:2623 +msgid "Buffer corner" +msgstr "Rincón del búfer" + +#: flatcamEditors/FlatCAMGrbEditor.py:2625 +msgid "" +"There are 3 types of corners:\n" +" - 'Round': the corner is rounded.\n" +" - 'Square': the corner is met in a sharp angle.\n" +" - 'Beveled': the corner is a line that directly connects the features " +"meeting in the corner" +msgstr "" +"Hay 3 tipos de esquinas:\n" +" - 'Redondo': la esquina es redondeada.\n" +" - 'Cuadrado:' la esquina se encuentra en un ángulo agudo.\n" +" - 'Biselado:' la esquina es una línea que conecta directamente las " +"funciones que se encuentran en la esquina" + +#: flatcamEditors/FlatCAMGrbEditor.py:2640 flatcamGUI/FlatCAMGUI.py:1061 +#: flatcamGUI/FlatCAMGUI.py:2138 flatcamGUI/FlatCAMGUI.py:2210 +#: flatcamGUI/FlatCAMGUI.py:2253 flatcamGUI/FlatCAMGUI.py:2765 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:200 +#: flatcamTools/ToolTransform.py:29 +msgid "Buffer" +msgstr "Buffer" + +#: flatcamEditors/FlatCAMGrbEditor.py:2655 +msgid "Scale Aperture" +msgstr "Apertura de la escala" + +#: flatcamEditors/FlatCAMGrbEditor.py:2657 +msgid "Scale a aperture in the aperture list" +msgstr "Escala una abertura en la lista de aperturas" + +#: flatcamEditors/FlatCAMGrbEditor.py:2665 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:209 +msgid "Scale factor" +msgstr "Factor de escala" + +#: flatcamEditors/FlatCAMGrbEditor.py:2667 +msgid "" +"The factor by which to scale the selected aperture.\n" +"Values can be between 0.0000 and 999.9999" +msgstr "" +"El factor por el cual escalar la apertura seleccionada.\n" +"Los valores pueden estar entre 0.0000 y 999.9999" + +#: flatcamEditors/FlatCAMGrbEditor.py:2695 +msgid "Mark polygons" +msgstr "Marcar polígonos" + +#: flatcamEditors/FlatCAMGrbEditor.py:2697 +msgid "Mark the polygon areas." +msgstr "Marca las áreas del polígono." + +#: flatcamEditors/FlatCAMGrbEditor.py:2705 +msgid "Area UPPER threshold" +msgstr "Umbral SUPERIOR área" + +#: flatcamEditors/FlatCAMGrbEditor.py:2707 +msgid "" +"The threshold value, all areas less than this are marked.\n" +"Can have a value between 0.0000 and 9999.9999" +msgstr "" +"El valor de umbral, todas las áreas menos que esto están marcadas.\n" +"Puede tener un valor entre 0.0000 y 9999.9999" + +#: flatcamEditors/FlatCAMGrbEditor.py:2714 +msgid "Area LOWER threshold" +msgstr "Umbral inferior de la zona" + +#: flatcamEditors/FlatCAMGrbEditor.py:2716 +msgid "" +"The threshold value, all areas more than this are marked.\n" +"Can have a value between 0.0000 and 9999.9999" +msgstr "" +"El valor de umbral, todas las áreas más que esto están marcadas.\n" +"Puede tener un valor entre 0.0000 y 9999.9999" + +#: flatcamEditors/FlatCAMGrbEditor.py:2730 +msgid "Mark" +msgstr "Marque" + +#: flatcamEditors/FlatCAMGrbEditor.py:2732 +msgid "Mark the polygons that fit within limits." +msgstr "Marque los polígonos que se ajustan dentro de los límites." + +#: flatcamEditors/FlatCAMGrbEditor.py:2738 +msgid "Delete all the marked polygons." +msgstr "Eliminar todos los polígonos marcados." + +#: flatcamEditors/FlatCAMGrbEditor.py:2744 +msgid "Clear all the markings." +msgstr "Borra todas las marcas." + +#: flatcamEditors/FlatCAMGrbEditor.py:2764 flatcamGUI/FlatCAMGUI.py:1046 +#: flatcamGUI/FlatCAMGUI.py:2138 flatcamGUI/FlatCAMGUI.py:2750 +msgid "Add Pad Array" +msgstr "Agregar matriz de pad" + +#: flatcamEditors/FlatCAMGrbEditor.py:2766 +msgid "Add an array of pads (linear or circular array)" +msgstr "Añadir una matriz de pads (lineal o circular)" + +#: flatcamEditors/FlatCAMGrbEditor.py:2772 +msgid "" +"Select the type of pads array to create.\n" +"It can be Linear X(Y) or Circular" +msgstr "" +"Seleccione el tipo de matriz de pads para crear.\n" +"Puede ser Lineal X (Y) o Circular" + +#: flatcamEditors/FlatCAMGrbEditor.py:2783 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:95 +msgid "Nr of pads" +msgstr "Nº de almohadillas" + +#: flatcamEditors/FlatCAMGrbEditor.py:2785 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:97 +msgid "Specify how many pads to be in the array." +msgstr "Especifique cuántos pads estarán en la matriz." + +#: flatcamEditors/FlatCAMGrbEditor.py:2834 +msgid "" +"Angle at which the linear array is placed.\n" +"The precision is of max 2 decimals.\n" +"Min value is: -359.99 degrees.\n" +"Max value is: 360.00 degrees." +msgstr "" +"Ángulo en el que se coloca la matriz lineal.\n" +"La precisión es de max 2 decimales.\n" +"El valor mínimo es: -359.99 grados.\n" +"El valor máximo es: 360.00 grados." + +#: flatcamEditors/FlatCAMGrbEditor.py:3328 +#: flatcamEditors/FlatCAMGrbEditor.py:3332 +msgid "Aperture code value is missing or wrong format. Add it and retry." +msgstr "" +"Falta el valor del código de apertura o el formato es incorrecto. Agrégalo y " +"vuelve a intentarlo." + +#: flatcamEditors/FlatCAMGrbEditor.py:3368 +msgid "" +"Aperture dimensions value is missing or wrong format. Add it in format " +"(width, height) and retry." +msgstr "" +"Falta el valor de las dimensiones de la abertura o el formato es incorrecto. " +"Agréguelo en formato (ancho, alto) y vuelva a intentarlo." + +#: flatcamEditors/FlatCAMGrbEditor.py:3381 +msgid "Aperture size value is missing or wrong format. Add it and retry." +msgstr "" +"Falta el valor del tamaño de la apertura o el formato es incorrecto. " +"Agrégalo y vuelve a intentarlo." + +#: flatcamEditors/FlatCAMGrbEditor.py:3392 +msgid "Aperture already in the aperture table." +msgstr "Apertura ya en la mesa de apertura." + +#: flatcamEditors/FlatCAMGrbEditor.py:3399 +msgid "Added new aperture with code" +msgstr "Agregada nueva apertura con código" + +#: flatcamEditors/FlatCAMGrbEditor.py:3431 +msgid " Select an aperture in Aperture Table" +msgstr " Seleccione una abertura en la Mesa de Apertura" + +#: flatcamEditors/FlatCAMGrbEditor.py:3439 +msgid "Select an aperture in Aperture Table -->" +msgstr "Seleccione una abertura en la Tabla de Apertura ->" + +#: flatcamEditors/FlatCAMGrbEditor.py:3453 +msgid "Deleted aperture with code" +msgstr "Apertura eliminada con código" + +#: flatcamEditors/FlatCAMGrbEditor.py:3521 +msgid "Dimensions need two float values separated by comma." +msgstr "" +"Dimensions need two float values separated by comma.Se esperaba una lista de " +"nombres de objetos separados por comas. Tiene" + +#: flatcamEditors/FlatCAMGrbEditor.py:3530 +msgid "Dimensions edited." +msgstr "Dimensiones editadas." + +#: flatcamEditors/FlatCAMGrbEditor.py:4084 +msgid "Loading Gerber into Editor" +msgstr "Cargando Gerber en el Editor" + +#: flatcamEditors/FlatCAMGrbEditor.py:4212 +msgid "Setting up the UI" +msgstr "Configurar la IU" + +#: flatcamEditors/FlatCAMGrbEditor.py:4213 +msgid "Adding geometry finished. Preparing the GUI" +msgstr "Adición de geometría terminada. Preparando la GUI" + +#: flatcamEditors/FlatCAMGrbEditor.py:4222 +msgid "Finished loading the Gerber object into the editor." +msgstr "Terminó de cargar el objeto Gerber en el editor." + +#: flatcamEditors/FlatCAMGrbEditor.py:4361 +msgid "" +"There are no Aperture definitions in the file. Aborting Gerber creation." +msgstr "" +"No hay definiciones de Aperture en el archivo. Abortando la creación de " +"Gerber." + +#: flatcamEditors/FlatCAMGrbEditor.py:4371 +msgid "Creating Gerber." +msgstr "Creación de Gerber." + +#: flatcamEditors/FlatCAMGrbEditor.py:4380 +msgid "Done. Gerber editing finished." +msgstr "La edición de gerber terminó." + +#: flatcamEditors/FlatCAMGrbEditor.py:4398 +msgid "Cancelled. No aperture is selected" +msgstr "Cancelado. No se selecciona ninguna apertura" + +#: flatcamEditors/FlatCAMGrbEditor.py:4992 +msgid "Failed. No aperture geometry is selected." +msgstr "Ha fallado. No se selecciona ninguna geometría de apertura." + +#: flatcamEditors/FlatCAMGrbEditor.py:5001 +#: flatcamEditors/FlatCAMGrbEditor.py:5272 +msgid "Done. Apertures geometry deleted." +msgstr "Hecho. Geometría de las aberturas eliminadas." + +#: flatcamEditors/FlatCAMGrbEditor.py:5144 +msgid "No aperture to buffer. Select at least one aperture and try again." +msgstr "" +"No hay apertura para amortiguar. Seleccione al menos una abertura e intente " +"de nuevo." + +#: flatcamEditors/FlatCAMGrbEditor.py:5156 +msgid "Failed." +msgstr "Ha fallado." + +#: flatcamEditors/FlatCAMGrbEditor.py:5175 +msgid "Scale factor value is missing or wrong format. Add it and retry." +msgstr "" +"Falta el valor del factor de escala o el formato es incorrecto. Agrégalo y " +"vuelve a intentarlo." + +#: flatcamEditors/FlatCAMGrbEditor.py:5207 +msgid "No aperture to scale. Select at least one aperture and try again." +msgstr "" +"Sin apertura a escala. Seleccione al menos una abertura e intente de nuevo." + +#: flatcamEditors/FlatCAMGrbEditor.py:5223 +msgid "Done. Scale Tool completed." +msgstr "Hecho. Herramienta de escala completada." + +#: flatcamEditors/FlatCAMGrbEditor.py:5261 +msgid "Polygons marked." +msgstr "Polígonos marcados." + +#: flatcamEditors/FlatCAMGrbEditor.py:5264 +msgid "No polygons were marked. None fit within the limits." +msgstr "No se marcaron polígonos. Ninguno encaja dentro de los límites." + +#: flatcamEditors/FlatCAMGrbEditor.py:5988 +msgid "Rotation action was not executed." +msgstr "La acción de Rotación no se ejecutó." + +#: flatcamEditors/FlatCAMGrbEditor.py:6116 +msgid "Skew action was not executed." +msgstr "La acción Sesgada no se ejecutó." + +#: flatcamEditors/FlatCAMGrbEditor.py:6181 +msgid "Scale action was not executed." +msgstr "La acción de Escala no se ejecutó." + +#: flatcamEditors/FlatCAMGrbEditor.py:6224 +msgid "Offset action was not executed." +msgstr "La acción de Desplazamiento no se ejecutó." + +#: flatcamEditors/FlatCAMGrbEditor.py:6274 +msgid "Geometry shape offset Y cancelled" +msgstr "Forma de geometría offset Y cancelada" + +#: flatcamEditors/FlatCAMGrbEditor.py:6289 +msgid "Geometry shape skew X cancelled" +msgstr "Forma geométrica sesgada X cancelada" + +#: flatcamEditors/FlatCAMGrbEditor.py:6304 +msgid "Geometry shape skew Y cancelled" +msgstr "Forma geométrica sesgada Y cancelada" + +#: flatcamEditors/FlatCAMTextEditor.py:74 +msgid "Print Preview" +msgstr "Vista previa de impres" + +#: flatcamEditors/FlatCAMTextEditor.py:75 +msgid "Open a OS standard Preview Print window." +msgstr "" +"Abra una ventana de Vista previa de impresión estándar del sistema operativo." + +#: flatcamEditors/FlatCAMTextEditor.py:78 +msgid "Print Code" +msgstr "Imprimir código" + +#: flatcamEditors/FlatCAMTextEditor.py:79 +msgid "Open a OS standard Print window." +msgstr "Abra una ventana de impresión estándar del sistema operativo." + +#: flatcamEditors/FlatCAMTextEditor.py:81 +msgid "Find in Code" +msgstr "Encontr. en codigo" + +#: flatcamEditors/FlatCAMTextEditor.py:82 +msgid "Will search and highlight in yellow the string in the Find box." +msgstr "Buscará y resaltará en amarillo la cadena en el Encuentra caja." + +#: flatcamEditors/FlatCAMTextEditor.py:86 +msgid "Find box. Enter here the strings to be searched in the text." +msgstr "Encuentra caja. Ingrese aquí las cadenas a buscar en el texto." + +#: flatcamEditors/FlatCAMTextEditor.py:88 +msgid "Replace With" +msgstr "Reemplazar con" + +#: flatcamEditors/FlatCAMTextEditor.py:89 +msgid "" +"Will replace the string from the Find box with the one in the Replace box." +msgstr "Reemplazará la cadena del cuadro Buscar con la del cuadro Reemplazar." + +#: flatcamEditors/FlatCAMTextEditor.py:93 +msgid "String to replace the one in the Find box throughout the text." +msgstr "Cadena para reemplazar la del cuadro Buscar en todo el texto." + +#: flatcamEditors/FlatCAMTextEditor.py:95 flatcamGUI/ObjectUI.py:486 +#: flatcamGUI/ObjectUI.py:2219 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:54 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:88 +msgid "All" +msgstr "Todos" + +#: flatcamEditors/FlatCAMTextEditor.py:96 +msgid "" +"When checked it will replace all instances in the 'Find' box\n" +"with the text in the 'Replace' box.." +msgstr "" +"Cuando está marcado, reemplazará todas las instancias en el cuadro 'Buscar'\n" +"con el texto en el cuadro 'Reemplazar' .." + +#: flatcamEditors/FlatCAMTextEditor.py:99 +msgid "Copy All" +msgstr "Cópialo todo" + +#: flatcamEditors/FlatCAMTextEditor.py:100 +msgid "Will copy all the text in the Code Editor to the clipboard." +msgstr "Copiará todo el texto en el Editor de Código al portapapeles." + +#: flatcamEditors/FlatCAMTextEditor.py:103 +msgid "Open Code" +msgstr "Código abierto" + +#: flatcamEditors/FlatCAMTextEditor.py:104 +msgid "Will open a text file in the editor." +msgstr "Se abrirá un archivo de texto en el editor." + +#: flatcamEditors/FlatCAMTextEditor.py:106 +msgid "Save Code" +msgstr "Guardar código" + +#: flatcamEditors/FlatCAMTextEditor.py:107 +msgid "Will save the text in the editor into a file." +msgstr "Guardará el texto en el editor en un archivo." + +#: flatcamEditors/FlatCAMTextEditor.py:109 +msgid "Run Code" +msgstr "Ejecutar código" + +#: flatcamEditors/FlatCAMTextEditor.py:110 +msgid "Will run the TCL commands found in the text file, one by one." +msgstr "" +"Ejecutará los comandos TCL encontrados en el archivo de texto, uno por uno." + +#: flatcamEditors/FlatCAMTextEditor.py:184 +msgid "Open file" +msgstr "Abrir documento" + +#: flatcamEditors/FlatCAMTextEditor.py:215 +#: flatcamEditors/FlatCAMTextEditor.py:220 +msgid "Export Code ..." +msgstr "Exportar el código ..." + +#: flatcamEditors/FlatCAMTextEditor.py:272 flatcamObjects/FlatCAMCNCJob.py:955 +#: flatcamTools/ToolSolderPaste.py:1530 +msgid "No such file or directory" +msgstr "El fichero o directorio no existe" + +#: flatcamEditors/FlatCAMTextEditor.py:284 flatcamObjects/FlatCAMCNCJob.py:969 +msgid "Saved to" +msgstr "Guardado en" + +#: flatcamEditors/FlatCAMTextEditor.py:334 +msgid "Code Editor content copied to clipboard ..." +msgstr "Contenido del editor de código copiado al portapapeles ..." + +#: flatcamGUI/FlatCAMGUI.py:78 flatcamGUI/FlatCAMGUI.py:80 +#: flatcamGUI/FlatCAMGUI.py:2163 +msgid "Toggle Panel" +msgstr "Panel de palanca" + +#: flatcamGUI/FlatCAMGUI.py:90 +msgid "File" +msgstr "Archivo" + +#: flatcamGUI/FlatCAMGUI.py:95 +msgid "&New Project ...\tCtrl+N" +msgstr "&Nuevo proyecto ...\tCtrl+N" + +#: flatcamGUI/FlatCAMGUI.py:97 +msgid "Will create a new, blank project" +msgstr "Creará un nuevo proyecto en blanco" + +#: flatcamGUI/FlatCAMGUI.py:102 +msgid "&New" +msgstr "&Nuevo" + +#: flatcamGUI/FlatCAMGUI.py:106 +msgid "Geometry\tN" +msgstr "Geometría\tN" + +#: flatcamGUI/FlatCAMGUI.py:108 +msgid "Will create a new, empty Geometry Object." +msgstr "Creará un nuevo objeto vacío de geometría." + +#: flatcamGUI/FlatCAMGUI.py:111 +msgid "Gerber\tB" +msgstr "Gerber\tB" + +#: flatcamGUI/FlatCAMGUI.py:113 +msgid "Will create a new, empty Gerber Object." +msgstr "Creará un nuevo objeto vacío de Gerber." + +#: flatcamGUI/FlatCAMGUI.py:116 +msgid "Excellon\tL" +msgstr "Excellon\tL" + +#: flatcamGUI/FlatCAMGUI.py:118 +msgid "Will create a new, empty Excellon Object." +msgstr "Creará un objeto Excellon nuevo y vacío." + +#: flatcamGUI/FlatCAMGUI.py:123 +msgid "Document\tD" +msgstr "Documento\tD" + +#: flatcamGUI/FlatCAMGUI.py:125 +msgid "Will create a new, empty Document Object." +msgstr "Creará un nuevo objeto de Documento vacío." + +#: flatcamGUI/FlatCAMGUI.py:129 flatcamGUI/FlatCAMGUI.py:4420 +#: flatcamTools/ToolPcbWizard.py:62 flatcamTools/ToolPcbWizard.py:69 +msgid "Open" +msgstr "Abierto" + +#: flatcamGUI/FlatCAMGUI.py:134 +msgid "Open &Project ..." +msgstr "Abierto &Project ..." + +#: flatcamGUI/FlatCAMGUI.py:140 flatcamGUI/FlatCAMGUI.py:4430 +msgid "Open &Gerber ...\tCtrl+G" +msgstr "Abierto &Gerber ...\tCtrl+G" + +#: flatcamGUI/FlatCAMGUI.py:145 flatcamGUI/FlatCAMGUI.py:4435 +msgid "Open &Excellon ...\tCtrl+E" +msgstr "Abierto &Excellon ...\tCtrl+E" + +#: flatcamGUI/FlatCAMGUI.py:150 flatcamGUI/FlatCAMGUI.py:4440 +msgid "Open G-&Code ..." +msgstr "Abierto G-&Code ..." + +#: flatcamGUI/FlatCAMGUI.py:157 +msgid "Open Config ..." +msgstr "Abierto Config ..." + +#: flatcamGUI/FlatCAMGUI.py:162 +msgid "Recent projects" +msgstr "Proyectos recientes" + +#: flatcamGUI/FlatCAMGUI.py:164 +msgid "Recent files" +msgstr "Archivos recientes" + +#: flatcamGUI/FlatCAMGUI.py:167 flatcamGUI/FlatCAMGUI.py:753 +#: flatcamGUI/FlatCAMGUI.py:1339 +msgid "Save" +msgstr "Salvar" + +#: flatcamGUI/FlatCAMGUI.py:171 +msgid "&Save Project ...\tCtrl+S" +msgstr "Guardar proyecto...\tCtrl+S" + +#: flatcamGUI/FlatCAMGUI.py:176 +msgid "Save Project &As ...\tCtrl+Shift+S" +msgstr "Guardar proyecto como...\tCtrl+Shift+S" + +#: flatcamGUI/FlatCAMGUI.py:191 +msgid "Scripting" +msgstr "Scripting" + +#: flatcamGUI/FlatCAMGUI.py:195 flatcamGUI/FlatCAMGUI.py:903 +#: flatcamGUI/FlatCAMGUI.py:2607 +msgid "New Script ..." +msgstr "Nuevo Script ..." + +#: flatcamGUI/FlatCAMGUI.py:197 flatcamGUI/FlatCAMGUI.py:905 +#: flatcamGUI/FlatCAMGUI.py:2609 +msgid "Open Script ..." +msgstr "Abrir Script ..." + +#: flatcamGUI/FlatCAMGUI.py:199 +msgid "Open Example ..." +msgstr "Abrir ejemplo ..." + +#: flatcamGUI/FlatCAMGUI.py:201 flatcamGUI/FlatCAMGUI.py:907 +#: flatcamGUI/FlatCAMGUI.py:2611 flatcamGUI/FlatCAMGUI.py:4409 +msgid "Run Script ..." +msgstr "Ejecutar Script ..." + +#: flatcamGUI/FlatCAMGUI.py:203 flatcamGUI/FlatCAMGUI.py:4411 +msgid "" +"Will run the opened Tcl Script thus\n" +"enabling the automation of certain\n" +"functions of FlatCAM." +msgstr "" +"Ejecutará el Script Tcl abierto así\n" +"permitiendo la automatización de ciertos\n" +"Funciones de FlatCAM." + +#: flatcamGUI/FlatCAMGUI.py:218 +msgid "Import" +msgstr "Importar" + +#: flatcamGUI/FlatCAMGUI.py:220 +msgid "&SVG as Geometry Object ..." +msgstr "&SVG como objeto de geometría ..." + +#: flatcamGUI/FlatCAMGUI.py:223 +msgid "&SVG as Gerber Object ..." +msgstr "&SVG como objeto de Gerber ..." + +#: flatcamGUI/FlatCAMGUI.py:228 +msgid "&DXF as Geometry Object ..." +msgstr "&DXF como objeto de geometría ..." + +#: flatcamGUI/FlatCAMGUI.py:231 +msgid "&DXF as Gerber Object ..." +msgstr "&DXF como objeto de Gerber ..." + +#: flatcamGUI/FlatCAMGUI.py:235 +msgid "HPGL2 as Geometry Object ..." +msgstr "HPGL2 como objeto de geometría ..." + +#: flatcamGUI/FlatCAMGUI.py:241 +msgid "Export" +msgstr "Exportar" + +#: flatcamGUI/FlatCAMGUI.py:245 +msgid "Export &SVG ..." +msgstr "Exportar &SVG ..." + +#: flatcamGUI/FlatCAMGUI.py:249 +msgid "Export DXF ..." +msgstr "Exportar DXF ..." + +#: flatcamGUI/FlatCAMGUI.py:255 +msgid "Export &PNG ..." +msgstr "Exportar &PNG ..." + +#: flatcamGUI/FlatCAMGUI.py:257 +msgid "" +"Will export an image in PNG format,\n" +"the saved image will contain the visual \n" +"information currently in FlatCAM Plot Area." +msgstr "" +"Exportará una imagen en formato PNG,\n" +"La imagen guardada contendrá lo visual.\n" +"Información actualmente en FlatCAM Plot Area." + +#: flatcamGUI/FlatCAMGUI.py:266 +msgid "Export &Excellon ..." +msgstr "Exportación y Excellon ..." + +#: flatcamGUI/FlatCAMGUI.py:268 +msgid "" +"Will export an Excellon Object as Excellon file,\n" +"the coordinates format, the file units and zeros\n" +"are set in Preferences -> Excellon Export." +msgstr "" +"Exportará un objeto de Excellon como archivo de Excellon,\n" +"El formato de las coordenadas, las unidades de archivo y los ceros.\n" +"se configuran en Preferencias -> Exportación de Excellon." + +#: flatcamGUI/FlatCAMGUI.py:275 +msgid "Export &Gerber ..." +msgstr "Exportar &Gerber ..." + +#: flatcamGUI/FlatCAMGUI.py:277 +msgid "" +"Will export an Gerber Object as Gerber file,\n" +"the coordinates format, the file units and zeros\n" +"are set in Preferences -> Gerber Export." +msgstr "" +"Exportará un objeto Gerber como archivo Gerber,\n" +"El formato de las coordenadas, las unidades de archivo y los ceros.\n" +"se establecen en Preferencias -> Exportar Gerber." + +#: flatcamGUI/FlatCAMGUI.py:287 +msgid "Backup" +msgstr "Apoyo" + +#: flatcamGUI/FlatCAMGUI.py:292 +msgid "Import Preferences from file ..." +msgstr "Importar preferencias del archivo ..." + +#: flatcamGUI/FlatCAMGUI.py:298 +msgid "Export Preferences to file ..." +msgstr "Exportar preferencias a un archivo ..." + +#: flatcamGUI/FlatCAMGUI.py:306 +#: flatcamGUI/preferences/PreferencesUIManager.py:1119 +msgid "Save Preferences" +msgstr "Guardar Preferencias" + +#: flatcamGUI/FlatCAMGUI.py:312 flatcamGUI/FlatCAMGUI.py:1730 +msgid "Print (PDF)" +msgstr "Imprimir (PDF)" + +#: flatcamGUI/FlatCAMGUI.py:320 +msgid "E&xit" +msgstr "Salida" + +#: flatcamGUI/FlatCAMGUI.py:328 flatcamGUI/FlatCAMGUI.py:747 +#: flatcamGUI/FlatCAMGUI.py:2286 +msgid "Edit" +msgstr "Editar" + +#: flatcamGUI/FlatCAMGUI.py:332 +msgid "Edit Object\tE" +msgstr "Editar objeto\tE" + +#: flatcamGUI/FlatCAMGUI.py:334 +msgid "Close Editor\tCtrl+S" +msgstr "Cerrar Editor\tCtrl+S" + +#: flatcamGUI/FlatCAMGUI.py:343 +msgid "Conversion" +msgstr "Conversión" + +#: flatcamGUI/FlatCAMGUI.py:345 +msgid "&Join Geo/Gerber/Exc -> Geo" +msgstr "Unirse Geo/Gerber/Exc -> Geo" + +#: flatcamGUI/FlatCAMGUI.py:347 +msgid "" +"Merge a selection of objects, which can be of type:\n" +"- Gerber\n" +"- Excellon\n" +"- Geometry\n" +"into a new combo Geometry object." +msgstr "" +"Combine una selección de objetos, que pueden ser de tipo:\n" +"- Gerber\n" +"- Excellon\n" +"- Geometría\n" +"en un nuevo objeto de geometría combo." + +#: flatcamGUI/FlatCAMGUI.py:354 +msgid "Join Excellon(s) -> Excellon" +msgstr "Únete a Excellon (s) -> Excellon" + +#: flatcamGUI/FlatCAMGUI.py:356 +msgid "Merge a selection of Excellon objects into a new combo Excellon object." +msgstr "" +"Combine una selección de objetos de Excellon en un nuevo objeto de Excellon " +"combinado." + +#: flatcamGUI/FlatCAMGUI.py:359 +msgid "Join Gerber(s) -> Gerber" +msgstr "Únete a Gerber (s) -> Gerber" + +#: flatcamGUI/FlatCAMGUI.py:361 +msgid "Merge a selection of Gerber objects into a new combo Gerber object." +msgstr "" +"Combine una selección de objetos Gerber en un nuevo objeto combo Gerber." + +#: flatcamGUI/FlatCAMGUI.py:366 +msgid "Convert Single to MultiGeo" +msgstr "Convertir solo geo a multi geo" + +#: flatcamGUI/FlatCAMGUI.py:368 +msgid "" +"Will convert a Geometry object from single_geometry type\n" +"to a multi_geometry type." +msgstr "" +"Convertirá un objeto de geometría de un tipo de geometría única\n" +"a un tipo de geometría múltiple." + +#: flatcamGUI/FlatCAMGUI.py:372 +msgid "Convert Multi to SingleGeo" +msgstr "Convertir multi a solo Geo" + +#: flatcamGUI/FlatCAMGUI.py:374 +msgid "" +"Will convert a Geometry object from multi_geometry type\n" +"to a single_geometry type." +msgstr "" +"Convertirá un objeto de geometría de tipo de geometría múltiple\n" +"a un solo tipo de geometría." + +#: flatcamGUI/FlatCAMGUI.py:381 +msgid "Convert Any to Geo" +msgstr "Convertir cualquiera a Geo" + +#: flatcamGUI/FlatCAMGUI.py:384 +msgid "Convert Any to Gerber" +msgstr "Convertir cualquiera a Gerber" + +#: flatcamGUI/FlatCAMGUI.py:390 +msgid "&Copy\tCtrl+C" +msgstr "Dupdo\tCtrl+C" + +#: flatcamGUI/FlatCAMGUI.py:395 +msgid "&Delete\tDEL" +msgstr "Borrar\tDEL" + +#: flatcamGUI/FlatCAMGUI.py:400 +msgid "Se&t Origin\tO" +msgstr "Establecer origen\tO" + +#: flatcamGUI/FlatCAMGUI.py:402 +msgid "Move to Origin\tShift+O" +msgstr "Mover al origen\tShift+O" + +#: flatcamGUI/FlatCAMGUI.py:405 +msgid "Jump to Location\tJ" +msgstr "Ir a la ubicación\tJ" + +#: flatcamGUI/FlatCAMGUI.py:407 +msgid "Locate in Object\tShift+J" +msgstr "Localizar en Objeto\tShift+J" + +#: flatcamGUI/FlatCAMGUI.py:412 +msgid "Toggle Units\tQ" +msgstr "Unidades de palanca\tQ" + +#: flatcamGUI/FlatCAMGUI.py:414 +msgid "&Select All\tCtrl+A" +msgstr "Seleccionar todo\tCtrl+A" + +#: flatcamGUI/FlatCAMGUI.py:419 +msgid "&Preferences\tShift+P" +msgstr "Preferencias\tShift+P" + +#: flatcamGUI/FlatCAMGUI.py:425 flatcamTools/ToolProperties.py:155 +msgid "Options" +msgstr "Opciones" + +#: flatcamGUI/FlatCAMGUI.py:427 +msgid "&Rotate Selection\tShift+(R)" +msgstr "Rotar selección\tShift+(R)" + +#: flatcamGUI/FlatCAMGUI.py:432 +msgid "&Skew on X axis\tShift+X" +msgstr "Sesgo en el eje X\tShift+X" + +#: flatcamGUI/FlatCAMGUI.py:434 +msgid "S&kew on Y axis\tShift+Y" +msgstr "Sesgo en el eje Y\tShift+Y" + +#: flatcamGUI/FlatCAMGUI.py:439 +msgid "Flip on &X axis\tX" +msgstr "Voltear en el eje X\tX" + +#: flatcamGUI/FlatCAMGUI.py:441 +msgid "Flip on &Y axis\tY" +msgstr "Voltear en el ejeY\tY" + +#: flatcamGUI/FlatCAMGUI.py:446 +msgid "View source\tAlt+S" +msgstr "Ver fuente\tAlt+S" + +#: flatcamGUI/FlatCAMGUI.py:448 +msgid "Tools DataBase\tCtrl+D" +msgstr "DB de Herramientas\tCtrl+D" + +#: flatcamGUI/FlatCAMGUI.py:455 flatcamGUI/FlatCAMGUI.py:2183 +msgid "View" +msgstr "Ver" + +#: flatcamGUI/FlatCAMGUI.py:457 +msgid "Enable all plots\tAlt+1" +msgstr "Habilitar todas las parcelas\tAlt+1" + +#: flatcamGUI/FlatCAMGUI.py:459 +msgid "Disable all plots\tAlt+2" +msgstr "Deshabilitar todas las parcelas\tAlt+2" + +#: flatcamGUI/FlatCAMGUI.py:461 +msgid "Disable non-selected\tAlt+3" +msgstr "Deshabilitar no seleccionado\tAlt+3" + +#: flatcamGUI/FlatCAMGUI.py:465 +msgid "&Zoom Fit\tV" +msgstr "Ajuste de zoom\tV" + +#: flatcamGUI/FlatCAMGUI.py:467 +msgid "&Zoom In\t=" +msgstr "Acercarse\t=" + +#: flatcamGUI/FlatCAMGUI.py:469 +msgid "&Zoom Out\t-" +msgstr "Disminuir el zoom\t-" + +#: flatcamGUI/FlatCAMGUI.py:474 +msgid "Redraw All\tF5" +msgstr "Redibujar todo\tF5" + +#: flatcamGUI/FlatCAMGUI.py:478 +msgid "Toggle Code Editor\tShift+E" +msgstr "Alternar Editor de Código\tShift+E" + +#: flatcamGUI/FlatCAMGUI.py:481 +msgid "&Toggle FullScreen\tAlt+F10" +msgstr "Alternar pantalla completa\tAlt+F10" + +#: flatcamGUI/FlatCAMGUI.py:483 +msgid "&Toggle Plot Area\tCtrl+F10" +msgstr "Alternar área de la parcela\tCtrl+F10" + +#: flatcamGUI/FlatCAMGUI.py:485 +msgid "&Toggle Project/Sel/Tool\t`" +msgstr "Palanca Proyecto / Sel / Tool\t`" + +#: flatcamGUI/FlatCAMGUI.py:489 +msgid "&Toggle Grid Snap\tG" +msgstr "Activar cuadrícula\tG" + +#: flatcamGUI/FlatCAMGUI.py:491 +msgid "&Toggle Grid Lines\tAlt+G" +msgstr "Alternar Líneas de Cuadrícula\tAlt+G" + +#: flatcamGUI/FlatCAMGUI.py:493 +msgid "&Toggle Axis\tShift+G" +msgstr "Eje de palanca\tShift+G" + +#: flatcamGUI/FlatCAMGUI.py:495 +msgid "Toggle Workspace\tShift+W" +msgstr "Alternar espacio de trabajo\tShift+W" + +#: flatcamGUI/FlatCAMGUI.py:500 +msgid "Objects" +msgstr "Objetos" + +#: flatcamGUI/FlatCAMGUI.py:514 +msgid "&Command Line\tS" +msgstr "Línea de comando\tS" + +#: flatcamGUI/FlatCAMGUI.py:519 +msgid "Help" +msgstr "Ayuda" + +#: flatcamGUI/FlatCAMGUI.py:521 +msgid "Online Help\tF1" +msgstr "Ayuda en Online\tF1" + +#: flatcamGUI/FlatCAMGUI.py:531 +msgid "Report a bug" +msgstr "Reportar un error" + +#: flatcamGUI/FlatCAMGUI.py:534 +msgid "Excellon Specification" +msgstr "Especificación de Excellon" + +#: flatcamGUI/FlatCAMGUI.py:536 +msgid "Gerber Specification" +msgstr "Especificación de Gerber" + +#: flatcamGUI/FlatCAMGUI.py:541 +msgid "Shortcuts List\tF3" +msgstr "Lista de accesos directos\tF3" + +#: flatcamGUI/FlatCAMGUI.py:543 +msgid "YouTube Channel\tF4" +msgstr "Canal de Youtube\tF4" + +#: flatcamGUI/FlatCAMGUI.py:554 +msgid "Add Circle\tO" +msgstr "Añadir círculo\tO" + +#: flatcamGUI/FlatCAMGUI.py:557 +msgid "Add Arc\tA" +msgstr "Añadir arco\tA" + +#: flatcamGUI/FlatCAMGUI.py:560 +msgid "Add Rectangle\tR" +msgstr "Añadir rectángulo\tR" + +#: flatcamGUI/FlatCAMGUI.py:563 +msgid "Add Polygon\tN" +msgstr "Añadir polígono\tN" + +#: flatcamGUI/FlatCAMGUI.py:566 +msgid "Add Path\tP" +msgstr "Añadir ruta\tP" + +#: flatcamGUI/FlatCAMGUI.py:569 +msgid "Add Text\tT" +msgstr "Añadir texto\tT" + +#: flatcamGUI/FlatCAMGUI.py:572 +msgid "Polygon Union\tU" +msgstr "Unión de polígonos\tU" + +#: flatcamGUI/FlatCAMGUI.py:574 +msgid "Polygon Intersection\tE" +msgstr "Intersección de polígonos\tE" + +#: flatcamGUI/FlatCAMGUI.py:576 +msgid "Polygon Subtraction\tS" +msgstr "Sustracción de polígonos\tS" + +#: flatcamGUI/FlatCAMGUI.py:580 +msgid "Cut Path\tX" +msgstr "Camino de corte\tX" + +#: flatcamGUI/FlatCAMGUI.py:584 +msgid "Copy Geom\tC" +msgstr "Copia Geo\tC" + +#: flatcamGUI/FlatCAMGUI.py:586 +msgid "Delete Shape\tDEL" +msgstr "Eliminar forma\tDEL" + +#: flatcamGUI/FlatCAMGUI.py:590 flatcamGUI/FlatCAMGUI.py:677 +msgid "Move\tM" +msgstr "Movimiento\tM" + +#: flatcamGUI/FlatCAMGUI.py:592 +msgid "Buffer Tool\tB" +msgstr "Herramienta amortiguadora\tB" + +#: flatcamGUI/FlatCAMGUI.py:595 +msgid "Paint Tool\tI" +msgstr "Herramienta de pintura\tI" + +#: flatcamGUI/FlatCAMGUI.py:598 +msgid "Transform Tool\tAlt+R" +msgstr "Herramienta de transformación\tAlt+R" + +#: flatcamGUI/FlatCAMGUI.py:602 +msgid "Toggle Corner Snap\tK" +msgstr "Alternar esquina esquina\tK" + +#: flatcamGUI/FlatCAMGUI.py:608 +msgid ">Excellon Editor<" +msgstr ">Excellon Editor<" + +#: flatcamGUI/FlatCAMGUI.py:612 +msgid "Add Drill Array\tA" +msgstr "Añadir matriz de perfor.\tA" + +#: flatcamGUI/FlatCAMGUI.py:614 +msgid "Add Drill\tD" +msgstr "Añadir taladro\tD" + +#: flatcamGUI/FlatCAMGUI.py:618 +msgid "Add Slot Array\tQ" +msgstr "Agregar matriz de ranuras\tQ" + +#: flatcamGUI/FlatCAMGUI.py:620 +msgid "Add Slot\tW" +msgstr "Agregar ranura\tW" + +#: flatcamGUI/FlatCAMGUI.py:624 +msgid "Resize Drill(S)\tR" +msgstr "Cambiar el tamaño de taladro (s)\tR" + +#: flatcamGUI/FlatCAMGUI.py:627 flatcamGUI/FlatCAMGUI.py:671 +msgid "Copy\tC" +msgstr "Dupdo\tC" + +#: flatcamGUI/FlatCAMGUI.py:629 flatcamGUI/FlatCAMGUI.py:673 +msgid "Delete\tDEL" +msgstr "Borrar\tDEL" + +#: flatcamGUI/FlatCAMGUI.py:634 +msgid "Move Drill(s)\tM" +msgstr "Mover taladro(s)\tM" + +#: flatcamGUI/FlatCAMGUI.py:639 +msgid ">Gerber Editor<" +msgstr ">Gerber Editor<" + +#: flatcamGUI/FlatCAMGUI.py:643 +msgid "Add Pad\tP" +msgstr "Añadir Pad\tP" + +#: flatcamGUI/FlatCAMGUI.py:645 +msgid "Add Pad Array\tA" +msgstr "Agregar una matriz de pad\tA" + +#: flatcamGUI/FlatCAMGUI.py:647 +msgid "Add Track\tT" +msgstr "Añadir pista\tT" + +#: flatcamGUI/FlatCAMGUI.py:649 +msgid "Add Region\tN" +msgstr "Añadir región\tN" + +#: flatcamGUI/FlatCAMGUI.py:653 +msgid "Poligonize\tAlt+N" +msgstr "Poligonize\tAlt+N" + +#: flatcamGUI/FlatCAMGUI.py:655 +msgid "Add SemiDisc\tE" +msgstr "Añadir medio disco\tE" + +#: flatcamGUI/FlatCAMGUI.py:657 +msgid "Add Disc\tD" +msgstr "Añadir disco\tD" + +#: flatcamGUI/FlatCAMGUI.py:659 +msgid "Buffer\tB" +msgstr "Buffer\tB" + +#: flatcamGUI/FlatCAMGUI.py:661 +msgid "Scale\tS" +msgstr "Escalar\tS" + +#: flatcamGUI/FlatCAMGUI.py:663 +msgid "Mark Area\tAlt+A" +msgstr "Marcar area\tAlt+A" + +#: flatcamGUI/FlatCAMGUI.py:665 +msgid "Eraser\tCtrl+E" +msgstr "Borrador\tCtrl+E" + +#: flatcamGUI/FlatCAMGUI.py:667 +msgid "Transform\tAlt+R" +msgstr "Transformar\tAlt+R" + +#: flatcamGUI/FlatCAMGUI.py:694 +msgid "Enable Plot" +msgstr "Habilitar Parcela" + +#: flatcamGUI/FlatCAMGUI.py:696 +msgid "Disable Plot" +msgstr "Desactivar parcela" + +#: flatcamGUI/FlatCAMGUI.py:700 +msgid "Set Color" +msgstr "Establecer color" + +#: flatcamGUI/FlatCAMGUI.py:742 +msgid "Generate CNC" +msgstr "Generar CNC" + +#: flatcamGUI/FlatCAMGUI.py:744 +msgid "View Source" +msgstr "Ver fuente" + +#: flatcamGUI/FlatCAMGUI.py:749 flatcamGUI/FlatCAMGUI.py:863 +#: flatcamGUI/FlatCAMGUI.py:1072 flatcamGUI/FlatCAMGUI.py:2138 +#: flatcamGUI/FlatCAMGUI.py:2282 flatcamGUI/FlatCAMGUI.py:2572 +#: flatcamGUI/FlatCAMGUI.py:2775 flatcamGUI/ObjectUI.py:1617 +#: flatcamObjects/FlatCAMGeometry.py:502 flatcamTools/ToolPanelize.py:540 +#: flatcamTools/ToolPanelize.py:567 flatcamTools/ToolPanelize.py:660 +#: flatcamTools/ToolPanelize.py:689 flatcamTools/ToolPanelize.py:751 +msgid "Copy" +msgstr "Dupdo" + +#: flatcamGUI/FlatCAMGUI.py:757 flatcamGUI/FlatCAMGUI.py:2295 +#: flatcamTools/ToolProperties.py:31 +msgid "Properties" +msgstr "Propiedades" + +#: flatcamGUI/FlatCAMGUI.py:786 +msgid "File Toolbar" +msgstr "Barra de herramientas de archivo" + +#: flatcamGUI/FlatCAMGUI.py:790 +msgid "Edit Toolbar" +msgstr "Barra de herramientas de edición" + +#: flatcamGUI/FlatCAMGUI.py:794 +msgid "View Toolbar" +msgstr "Barra de herramientas de ver" + +#: flatcamGUI/FlatCAMGUI.py:798 +msgid "Shell Toolbar" +msgstr "Barra de herramientas de Shell" + +#: flatcamGUI/FlatCAMGUI.py:802 +msgid "Tools Toolbar" +msgstr "Barra de herramientas de Herramientas" + +#: flatcamGUI/FlatCAMGUI.py:806 +msgid "Excellon Editor Toolbar" +msgstr "Barra de herramientas del editor de Excel" + +#: flatcamGUI/FlatCAMGUI.py:812 +msgid "Geometry Editor Toolbar" +msgstr "Barra de herramientas del editor de geometría" + +#: flatcamGUI/FlatCAMGUI.py:816 +msgid "Gerber Editor Toolbar" +msgstr "Barra de herramientas del editor Gerber" + +#: flatcamGUI/FlatCAMGUI.py:820 +msgid "Grid Toolbar" +msgstr "Barra de herramientas de cuadrícula" + +#: flatcamGUI/FlatCAMGUI.py:841 flatcamGUI/FlatCAMGUI.py:2549 +msgid "Open project" +msgstr "Proyecto abierto" + +#: flatcamGUI/FlatCAMGUI.py:843 flatcamGUI/FlatCAMGUI.py:2551 +msgid "Save project" +msgstr "Guardar proyecto" + +#: flatcamGUI/FlatCAMGUI.py:849 flatcamGUI/FlatCAMGUI.py:2557 +msgid "New Blank Geometry" +msgstr "Nueva geometría en blanco" + +#: flatcamGUI/FlatCAMGUI.py:851 flatcamGUI/FlatCAMGUI.py:2559 +msgid "New Blank Gerber" +msgstr "Nuevo Gerber en blanco" + +#: flatcamGUI/FlatCAMGUI.py:853 flatcamGUI/FlatCAMGUI.py:2561 +msgid "New Blank Excellon" +msgstr "Nueva Excellon en blanco" + +#: flatcamGUI/FlatCAMGUI.py:858 flatcamGUI/FlatCAMGUI.py:2567 +msgid "Save Object and close the Editor" +msgstr "Guardar Objeto y cerrar el Editor" + +#: flatcamGUI/FlatCAMGUI.py:865 flatcamGUI/FlatCAMGUI.py:2574 +msgid "&Delete" +msgstr "Borrar" + +#: flatcamGUI/FlatCAMGUI.py:868 flatcamGUI/FlatCAMGUI.py:1729 +#: flatcamGUI/FlatCAMGUI.py:1935 flatcamGUI/FlatCAMGUI.py:2577 +#: flatcamTools/ToolDistance.py:35 flatcamTools/ToolDistance.py:195 +msgid "Distance Tool" +msgstr "Herramienta de Dist" + +#: flatcamGUI/FlatCAMGUI.py:870 flatcamGUI/FlatCAMGUI.py:2579 +msgid "Distance Min Tool" +msgstr "Herramienta Distancia Mínima" + +#: flatcamGUI/FlatCAMGUI.py:872 flatcamGUI/FlatCAMGUI.py:1722 +#: flatcamGUI/FlatCAMGUI.py:2581 +msgid "Set Origin" +msgstr "Establecer origen" + +#: flatcamGUI/FlatCAMGUI.py:874 +msgid "Move to Origin" +msgstr "Mover al origen" + +#: flatcamGUI/FlatCAMGUI.py:877 flatcamGUI/FlatCAMGUI.py:2583 +msgid "Jump to Location" +msgstr "Saltar a la ubicación" + +#: flatcamGUI/FlatCAMGUI.py:879 flatcamGUI/FlatCAMGUI.py:1734 +#: flatcamGUI/FlatCAMGUI.py:2585 +msgid "Locate in Object" +msgstr "Localizar en objeto" + +#: flatcamGUI/FlatCAMGUI.py:885 flatcamGUI/FlatCAMGUI.py:2591 +msgid "&Replot" +msgstr "Replantear" + +#: flatcamGUI/FlatCAMGUI.py:887 flatcamGUI/FlatCAMGUI.py:2593 +msgid "&Clear plot" +msgstr "Gráfico clara" + +#: flatcamGUI/FlatCAMGUI.py:889 flatcamGUI/FlatCAMGUI.py:1725 +#: flatcamGUI/FlatCAMGUI.py:2595 +msgid "Zoom In" +msgstr "Acercarse" + +#: flatcamGUI/FlatCAMGUI.py:891 flatcamGUI/FlatCAMGUI.py:1725 +#: flatcamGUI/FlatCAMGUI.py:2597 +msgid "Zoom Out" +msgstr "Disminuir el zoom" + +#: flatcamGUI/FlatCAMGUI.py:893 flatcamGUI/FlatCAMGUI.py:1724 +#: flatcamGUI/FlatCAMGUI.py:2185 flatcamGUI/FlatCAMGUI.py:2599 +msgid "Zoom Fit" +msgstr "Ajuste de zoom" + +#: flatcamGUI/FlatCAMGUI.py:901 flatcamGUI/FlatCAMGUI.py:2605 +msgid "&Command Line" +msgstr "Línea de comando" + +#: flatcamGUI/FlatCAMGUI.py:913 flatcamGUI/FlatCAMGUI.py:2617 +msgid "2Sided Tool" +msgstr "Herramienta de 2 Caras" + +#: flatcamGUI/FlatCAMGUI.py:915 flatcamGUI/FlatCAMGUI.py:1740 +#: flatcamGUI/FlatCAMGUI.py:2619 +msgid "Align Objects Tool" +msgstr "Herram. de Alinear Objetos" + +#: flatcamGUI/FlatCAMGUI.py:917 flatcamGUI/FlatCAMGUI.py:1741 +#: flatcamGUI/FlatCAMGUI.py:2621 flatcamTools/ToolExtractDrills.py:393 +msgid "Extract Drills Tool" +msgstr "Herram. de Extracción de Taladros" + +#: flatcamGUI/FlatCAMGUI.py:920 flatcamGUI/ObjectUI.py:596 +#: flatcamTools/ToolCutOut.py:440 +msgid "Cutout Tool" +msgstr "Herramienta de Corte" + +#: flatcamGUI/FlatCAMGUI.py:922 flatcamGUI/FlatCAMGUI.py:2626 +#: flatcamGUI/ObjectUI.py:574 flatcamGUI/ObjectUI.py:2157 +#: flatcamTools/ToolNCC.py:974 +msgid "NCC Tool" +msgstr "Herramienta NCC" + +#: flatcamGUI/FlatCAMGUI.py:928 flatcamGUI/FlatCAMGUI.py:2632 +msgid "Panel Tool" +msgstr "Herramienta de Panel" + +#: flatcamGUI/FlatCAMGUI.py:930 flatcamGUI/FlatCAMGUI.py:2634 +#: flatcamTools/ToolFilm.py:586 +msgid "Film Tool" +msgstr "Herramienta de Película" + +#: flatcamGUI/FlatCAMGUI.py:932 flatcamGUI/FlatCAMGUI.py:2636 +#: flatcamTools/ToolSolderPaste.py:553 +msgid "SolderPaste Tool" +msgstr "Herramienta de Pasta" + +#: flatcamGUI/FlatCAMGUI.py:934 flatcamGUI/FlatCAMGUI.py:2638 +#: flatcamTools/ToolSub.py:35 +msgid "Subtract Tool" +msgstr "Herramienta de Sustracción" + +#: flatcamGUI/FlatCAMGUI.py:936 flatcamGUI/FlatCAMGUI.py:2640 +#: flatcamTools/ToolRulesCheck.py:616 +msgid "Rules Tool" +msgstr "Herramienta de Reglas" + +#: flatcamGUI/FlatCAMGUI.py:938 flatcamGUI/FlatCAMGUI.py:1743 +#: flatcamGUI/FlatCAMGUI.py:2642 flatcamTools/ToolOptimal.py:33 +#: flatcamTools/ToolOptimal.py:307 +msgid "Optimal Tool" +msgstr "Herramienta de Óptima" + +#: flatcamGUI/FlatCAMGUI.py:943 flatcamGUI/FlatCAMGUI.py:1740 +#: flatcamGUI/FlatCAMGUI.py:2647 +msgid "Calculators Tool" +msgstr "Herramienta de Calculadoras" + +#: flatcamGUI/FlatCAMGUI.py:947 flatcamGUI/FlatCAMGUI.py:1744 +#: flatcamGUI/FlatCAMGUI.py:2651 flatcamTools/ToolQRCode.py:43 +#: flatcamTools/ToolQRCode.py:382 +msgid "QRCode Tool" +msgstr "Herramienta QRCode" + +#: flatcamGUI/FlatCAMGUI.py:949 flatcamGUI/FlatCAMGUI.py:2653 +#: flatcamTools/ToolCopperThieving.py:39 flatcamTools/ToolCopperThieving.py:568 +msgid "Copper Thieving Tool" +msgstr "Herramienta Thieving Tool" + +#: flatcamGUI/FlatCAMGUI.py:952 flatcamGUI/FlatCAMGUI.py:1741 +#: flatcamGUI/FlatCAMGUI.py:2656 flatcamTools/ToolFiducials.py:33 +#: flatcamTools/ToolFiducials.py:395 +msgid "Fiducials Tool" +msgstr "Herramienta de Fiduciales" + +#: flatcamGUI/FlatCAMGUI.py:954 flatcamGUI/FlatCAMGUI.py:2658 +#: flatcamTools/ToolCalibration.py:37 flatcamTools/ToolCalibration.py:759 +msgid "Calibration Tool" +msgstr "Herramienta de Calibración" + +#: flatcamGUI/FlatCAMGUI.py:956 flatcamGUI/FlatCAMGUI.py:1741 +#: flatcamGUI/FlatCAMGUI.py:2660 +msgid "Punch Gerber Tool" +msgstr "Herram. de Perforadora Gerber" + +#: flatcamGUI/FlatCAMGUI.py:958 flatcamGUI/FlatCAMGUI.py:2662 +#: flatcamTools/ToolInvertGerber.py:31 +msgid "Invert Gerber Tool" +msgstr "Herram. Invertir Gerber" + +#: flatcamGUI/FlatCAMGUI.py:964 flatcamGUI/FlatCAMGUI.py:990 +#: flatcamGUI/FlatCAMGUI.py:1042 flatcamGUI/FlatCAMGUI.py:2668 +#: flatcamGUI/FlatCAMGUI.py:2746 +msgid "Select" +msgstr "Seleccionar" + +#: flatcamGUI/FlatCAMGUI.py:966 flatcamGUI/FlatCAMGUI.py:2670 +msgid "Add Drill Hole" +msgstr "Añadir taladro" + +#: flatcamGUI/FlatCAMGUI.py:968 flatcamGUI/FlatCAMGUI.py:2672 +msgid "Add Drill Hole Array" +msgstr "Añadir matriz de taladro" + +#: flatcamGUI/FlatCAMGUI.py:970 flatcamGUI/FlatCAMGUI.py:2020 +#: flatcamGUI/FlatCAMGUI.py:2273 flatcamGUI/FlatCAMGUI.py:2676 +msgid "Add Slot" +msgstr "Agregar ranura" + +#: flatcamGUI/FlatCAMGUI.py:972 flatcamGUI/FlatCAMGUI.py:2019 +#: flatcamGUI/FlatCAMGUI.py:2275 flatcamGUI/FlatCAMGUI.py:2678 +msgid "Add Slot Array" +msgstr "Agregar matriz de ranuras" + +#: flatcamGUI/FlatCAMGUI.py:974 flatcamGUI/FlatCAMGUI.py:2278 +#: flatcamGUI/FlatCAMGUI.py:2674 +msgid "Resize Drill" +msgstr "Redimensionar taladro" + +#: flatcamGUI/FlatCAMGUI.py:978 flatcamGUI/FlatCAMGUI.py:2682 +msgid "Copy Drill" +msgstr "Copia de taladro" + +#: flatcamGUI/FlatCAMGUI.py:980 flatcamGUI/FlatCAMGUI.py:2684 +msgid "Delete Drill" +msgstr "Eliminar taladro" + +#: flatcamGUI/FlatCAMGUI.py:984 flatcamGUI/FlatCAMGUI.py:2688 +msgid "Move Drill" +msgstr "Mover taladro" + +#: flatcamGUI/FlatCAMGUI.py:992 flatcamGUI/FlatCAMGUI.py:2696 +msgid "Add Circle" +msgstr "Añadir Círculo" + +#: flatcamGUI/FlatCAMGUI.py:994 flatcamGUI/FlatCAMGUI.py:2698 +msgid "Add Arc" +msgstr "Añadir Arco" + +#: flatcamGUI/FlatCAMGUI.py:996 flatcamGUI/FlatCAMGUI.py:2700 +msgid "Add Rectangle" +msgstr "Añadir Rectángulo" + +#: flatcamGUI/FlatCAMGUI.py:1000 flatcamGUI/FlatCAMGUI.py:2704 +msgid "Add Path" +msgstr "Añadir Ruta" + +#: flatcamGUI/FlatCAMGUI.py:1002 flatcamGUI/FlatCAMGUI.py:2706 +msgid "Add Polygon" +msgstr "Añadir Polígono" + +#: flatcamGUI/FlatCAMGUI.py:1005 flatcamGUI/FlatCAMGUI.py:2709 +msgid "Add Text" +msgstr "Añadir Texto" + +#: flatcamGUI/FlatCAMGUI.py:1007 flatcamGUI/FlatCAMGUI.py:2711 +msgid "Add Buffer" +msgstr "Añadir Buffer" + +#: flatcamGUI/FlatCAMGUI.py:1009 flatcamGUI/FlatCAMGUI.py:2713 +msgid "Paint Shape" +msgstr "Forma de pintura" + +#: flatcamGUI/FlatCAMGUI.py:1011 flatcamGUI/FlatCAMGUI.py:1068 +#: flatcamGUI/FlatCAMGUI.py:2214 flatcamGUI/FlatCAMGUI.py:2259 +#: flatcamGUI/FlatCAMGUI.py:2715 flatcamGUI/FlatCAMGUI.py:2771 +msgid "Eraser" +msgstr "Borrador" + +#: flatcamGUI/FlatCAMGUI.py:1015 flatcamGUI/FlatCAMGUI.py:2719 +msgid "Polygon Union" +msgstr "Unión de polígonos" + +#: flatcamGUI/FlatCAMGUI.py:1017 flatcamGUI/FlatCAMGUI.py:2721 +msgid "Polygon Explode" +msgstr "Polígono explotar" + +#: flatcamGUI/FlatCAMGUI.py:1020 flatcamGUI/FlatCAMGUI.py:2724 +msgid "Polygon Intersection" +msgstr "Intersección de polígonos" + +#: flatcamGUI/FlatCAMGUI.py:1022 flatcamGUI/FlatCAMGUI.py:2726 +msgid "Polygon Subtraction" +msgstr "Sustracción de polígonos" + +#: flatcamGUI/FlatCAMGUI.py:1026 flatcamGUI/FlatCAMGUI.py:2730 +msgid "Cut Path" +msgstr "Camino de Corte" + +#: flatcamGUI/FlatCAMGUI.py:1028 +msgid "Copy Shape(s)" +msgstr "Copiar Forma (s)" + +#: flatcamGUI/FlatCAMGUI.py:1031 +msgid "Delete Shape '-'" +msgstr "Eliminar Forma '-'" + +#: flatcamGUI/FlatCAMGUI.py:1033 flatcamGUI/FlatCAMGUI.py:1076 +#: flatcamGUI/FlatCAMGUI.py:2226 flatcamGUI/FlatCAMGUI.py:2263 +#: flatcamGUI/FlatCAMGUI.py:2736 flatcamGUI/FlatCAMGUI.py:2779 +#: flatcamGUI/ObjectUI.py:109 +msgid "Transformations" +msgstr "Transformaciones" + +#: flatcamGUI/FlatCAMGUI.py:1036 +msgid "Move Objects " +msgstr "Mover objetos " + +#: flatcamGUI/FlatCAMGUI.py:1044 flatcamGUI/FlatCAMGUI.py:2139 +#: flatcamGUI/FlatCAMGUI.py:2748 +msgid "Add Pad" +msgstr "Añadir Pad" + +#: flatcamGUI/FlatCAMGUI.py:1048 flatcamGUI/FlatCAMGUI.py:2140 +#: flatcamGUI/FlatCAMGUI.py:2752 +msgid "Add Track" +msgstr "Añadir Pista" + +#: flatcamGUI/FlatCAMGUI.py:1050 flatcamGUI/FlatCAMGUI.py:2139 +#: flatcamGUI/FlatCAMGUI.py:2754 +msgid "Add Region" +msgstr "Añadir Región" + +#: flatcamGUI/FlatCAMGUI.py:1052 flatcamGUI/FlatCAMGUI.py:2245 +#: flatcamGUI/FlatCAMGUI.py:2756 +msgid "Poligonize" +msgstr "Poligonizar" + +#: flatcamGUI/FlatCAMGUI.py:1055 flatcamGUI/FlatCAMGUI.py:2247 +#: flatcamGUI/FlatCAMGUI.py:2759 +msgid "SemiDisc" +msgstr "Medio disco" + +#: flatcamGUI/FlatCAMGUI.py:1057 flatcamGUI/FlatCAMGUI.py:2249 +#: flatcamGUI/FlatCAMGUI.py:2761 +msgid "Disc" +msgstr "Disco" + +#: flatcamGUI/FlatCAMGUI.py:1065 flatcamGUI/FlatCAMGUI.py:2257 +#: flatcamGUI/FlatCAMGUI.py:2769 +msgid "Mark Area" +msgstr "Marcar area" + +#: flatcamGUI/FlatCAMGUI.py:1079 flatcamGUI/FlatCAMGUI.py:2139 +#: flatcamGUI/FlatCAMGUI.py:2230 flatcamGUI/FlatCAMGUI.py:2293 +#: flatcamGUI/FlatCAMGUI.py:2782 flatcamTools/ToolMove.py:27 +msgid "Move" +msgstr "Movimiento" + +#: flatcamGUI/FlatCAMGUI.py:1087 flatcamGUI/FlatCAMGUI.py:2791 +msgid "Snap to grid" +msgstr "Encajar a la cuadricula" + +#: flatcamGUI/FlatCAMGUI.py:1090 flatcamGUI/FlatCAMGUI.py:2794 +msgid "Grid X snapping distance" +msgstr "Distancia de ajuste de la rejilla X" + +#: flatcamGUI/FlatCAMGUI.py:1095 flatcamGUI/FlatCAMGUI.py:2799 +msgid "Grid Y snapping distance" +msgstr "Distancia de ajuste de cuadrícula Y" + +#: flatcamGUI/FlatCAMGUI.py:1101 flatcamGUI/FlatCAMGUI.py:2805 +msgid "" +"When active, value on Grid_X\n" +"is copied to the Grid_Y value." +msgstr "" +"Cuando está activo, el valor en Grid_X\n" +"Se copia al valor Grid_Y." + +#: flatcamGUI/FlatCAMGUI.py:1108 flatcamGUI/FlatCAMGUI.py:2812 +msgid "Snap to corner" +msgstr "Ajustar a la esquina" + +#: flatcamGUI/FlatCAMGUI.py:1112 flatcamGUI/FlatCAMGUI.py:2816 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:78 +msgid "Max. magnet distance" +msgstr "Distancia máxima del imán" + +#: flatcamGUI/FlatCAMGUI.py:1149 +msgid "Selected" +msgstr "Seleccionado" + +#: flatcamGUI/FlatCAMGUI.py:1177 flatcamGUI/FlatCAMGUI.py:1185 +msgid "Plot Area" +msgstr "Área de la parcela" + +#: flatcamGUI/FlatCAMGUI.py:1212 +msgid "General" +msgstr "General" + +#: flatcamGUI/FlatCAMGUI.py:1227 flatcamTools/ToolCopperThieving.py:74 +#: flatcamTools/ToolDblSided.py:64 flatcamTools/ToolExtractDrills.py:61 +#: flatcamTools/ToolInvertGerber.py:72 flatcamTools/ToolOptimal.py:71 +#: flatcamTools/ToolPunchGerber.py:64 +msgid "GERBER" +msgstr "GERBER" + +#: flatcamGUI/FlatCAMGUI.py:1237 flatcamTools/ToolDblSided.py:92 +msgid "EXCELLON" +msgstr "EXCELLON" + +#: flatcamGUI/FlatCAMGUI.py:1247 flatcamTools/ToolDblSided.py:120 +msgid "GEOMETRY" +msgstr "GEOMETRÍA" + +#: flatcamGUI/FlatCAMGUI.py:1257 +msgid "CNC-JOB" +msgstr "CNC-JOB" + +#: flatcamGUI/FlatCAMGUI.py:1266 flatcamGUI/ObjectUI.py:563 +#: flatcamGUI/ObjectUI.py:2132 +msgid "TOOLS" +msgstr "HERRAMIENTAS" + +#: flatcamGUI/FlatCAMGUI.py:1275 +msgid "TOOLS 2" +msgstr "HERRAMIENTAS 2" + +#: flatcamGUI/FlatCAMGUI.py:1285 +msgid "UTILITIES" +msgstr "UTILIDADES" + +#: flatcamGUI/FlatCAMGUI.py:1302 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:192 +msgid "Restore Defaults" +msgstr "Restaurar los valores predeterminados" + +#: flatcamGUI/FlatCAMGUI.py:1305 +msgid "" +"Restore the entire set of default values\n" +"to the initial values loaded after first launch." +msgstr "" +"Restaurar todo el conjunto de valores predeterminados\n" +"a los valores iniciales cargados después del primer lanzamiento." + +#: flatcamGUI/FlatCAMGUI.py:1310 +msgid "Open Pref Folder" +msgstr "Abrir Carpeta de Pref" + +#: flatcamGUI/FlatCAMGUI.py:1313 +msgid "Open the folder where FlatCAM save the preferences files." +msgstr "Abra la carpeta donde FlatCAM guarda los archivos de preferencias." + +#: flatcamGUI/FlatCAMGUI.py:1317 flatcamGUI/FlatCAMGUI.py:2517 +msgid "Clear GUI Settings" +msgstr "Borrar la configuración de la GUI" + +#: flatcamGUI/FlatCAMGUI.py:1321 +msgid "" +"Clear the GUI settings for FlatCAM,\n" +"such as: layout, gui state, style, hdpi support etc." +msgstr "" +"Borrar la configuración de la GUI para FlatCAM,\n" +"tales como: diseño, estado gui, estilo, soporte hdpi etc." + +#: flatcamGUI/FlatCAMGUI.py:1332 +msgid "Apply" +msgstr "Aplicar" + +#: flatcamGUI/FlatCAMGUI.py:1335 +msgid "Apply the current preferences without saving to a file." +msgstr "Aplique las preferencias actuales sin guardar en un archivo." + +#: flatcamGUI/FlatCAMGUI.py:1342 +msgid "" +"Save the current settings in the 'current_defaults' file\n" +"which is the file storing the working default preferences." +msgstr "" +"Guarde la configuración actual en el archivo 'current_defaults'\n" +"que es el archivo que almacena las preferencias predeterminadas de trabajo." + +#: flatcamGUI/FlatCAMGUI.py:1350 +msgid "Will not save the changes and will close the preferences window." +msgstr "No guardará los cambios y cerrará la ventana de preferencias." + +#: flatcamGUI/FlatCAMGUI.py:1719 +msgid "SHOW SHORTCUT LIST" +msgstr "MOSTRAR LISTA DE ACCESO CORTO" + +#: flatcamGUI/FlatCAMGUI.py:1719 +msgid "Switch to Project Tab" +msgstr "Cambiar a la Pestaña Proyecto" + +#: flatcamGUI/FlatCAMGUI.py:1719 +msgid "Switch to Selected Tab" +msgstr "Cambiar a la Pestaña Seleccionada" + +#: flatcamGUI/FlatCAMGUI.py:1720 +msgid "Switch to Tool Tab" +msgstr "Cambiar a la Pestaña de Herramientas" + +#: flatcamGUI/FlatCAMGUI.py:1721 +msgid "New Gerber" +msgstr "Nuevo Gerber" + +#: flatcamGUI/FlatCAMGUI.py:1721 +msgid "Edit Object (if selected)" +msgstr "Editar objeto (si está seleccionado)" + +#: flatcamGUI/FlatCAMGUI.py:1721 +msgid "Jump to Coordinates" +msgstr "Saltar a coordenadas" + +#: flatcamGUI/FlatCAMGUI.py:1722 +msgid "New Excellon" +msgstr "Nueva Excellon" + +#: flatcamGUI/FlatCAMGUI.py:1722 +msgid "Move Obj" +msgstr "Mover objetos" + +#: flatcamGUI/FlatCAMGUI.py:1722 +msgid "New Geometry" +msgstr "Nueva geometría" + +#: flatcamGUI/FlatCAMGUI.py:1722 +msgid "Change Units" +msgstr "Cambiar unidades" + +#: flatcamGUI/FlatCAMGUI.py:1723 +msgid "Open Properties Tool" +msgstr "Abrir herramienta de propiedades" + +#: flatcamGUI/FlatCAMGUI.py:1723 +msgid "Rotate by 90 degree CW" +msgstr "Rotar 90 grados CW" + +#: flatcamGUI/FlatCAMGUI.py:1723 +msgid "Shell Toggle" +msgstr "Palanca de 'Shell'" + +#: flatcamGUI/FlatCAMGUI.py:1724 +msgid "" +"Add a Tool (when in Geometry Selected Tab or in Tools NCC or Tools Paint)" +msgstr "" +"Agregue una herramienta (cuando esté en la pestaña Geometría seleccionada o " +"en Herramientas NCC o Herramientas de pintura)" + +#: flatcamGUI/FlatCAMGUI.py:1725 +msgid "Flip on X_axis" +msgstr "Voltear sobre el eje X" + +#: flatcamGUI/FlatCAMGUI.py:1725 +msgid "Flip on Y_axis" +msgstr "Voltear sobre el eje Y" + +#: flatcamGUI/FlatCAMGUI.py:1728 +msgid "Copy Obj" +msgstr "Copiar objetos" + +#: flatcamGUI/FlatCAMGUI.py:1728 +msgid "Open Tools Database" +msgstr "Abrir la DB de herramientas" + +#: flatcamGUI/FlatCAMGUI.py:1729 +msgid "Open Excellon File" +msgstr "Abierto Excellon" + +#: flatcamGUI/FlatCAMGUI.py:1729 +msgid "Open Gerber File" +msgstr "Abrir Gerber" + +#: flatcamGUI/FlatCAMGUI.py:1729 +msgid "New Project" +msgstr "Nuevo Proyecto" + +#: flatcamGUI/FlatCAMGUI.py:1730 flatcamTools/ToolPDF.py:42 +msgid "PDF Import Tool" +msgstr "Herramienta de Importación de PDF" + +#: flatcamGUI/FlatCAMGUI.py:1730 +msgid "Save Project" +msgstr "Guardar proyecto" + +#: flatcamGUI/FlatCAMGUI.py:1730 +msgid "Toggle Plot Area" +msgstr "Alternar área de la parcela" + +#: flatcamGUI/FlatCAMGUI.py:1733 +msgid "Copy Obj_Name" +msgstr "Copiar Nombre Obj" + +#: flatcamGUI/FlatCAMGUI.py:1734 +msgid "Toggle Code Editor" +msgstr "Alternar editor de código" + +#: flatcamGUI/FlatCAMGUI.py:1734 +msgid "Toggle the axis" +msgstr "Alternar el eje" + +#: flatcamGUI/FlatCAMGUI.py:1734 flatcamGUI/FlatCAMGUI.py:1933 +#: flatcamGUI/FlatCAMGUI.py:2020 flatcamGUI/FlatCAMGUI.py:2142 +msgid "Distance Minimum Tool" +msgstr "Herramienta de Distancia Mínima" + +#: flatcamGUI/FlatCAMGUI.py:1735 +msgid "Open Preferences Window" +msgstr "Abrir ventana de Preferencias" + +#: flatcamGUI/FlatCAMGUI.py:1736 +msgid "Rotate by 90 degree CCW" +msgstr "Rotar en 90 grados CCW" + +#: flatcamGUI/FlatCAMGUI.py:1736 +msgid "Run a Script" +msgstr "Ejecutar script TCL" + +#: flatcamGUI/FlatCAMGUI.py:1736 +msgid "Toggle the workspace" +msgstr "Alternar espacio de trabajo" + +#: flatcamGUI/FlatCAMGUI.py:1736 +msgid "Skew on X axis" +msgstr "Sesgar en el eje X" + +#: flatcamGUI/FlatCAMGUI.py:1737 +msgid "Skew on Y axis" +msgstr "Sesgar en el eje Y" + +#: flatcamGUI/FlatCAMGUI.py:1740 +msgid "2-Sided PCB Tool" +msgstr "Herra. de 2 lados" + +#: flatcamGUI/FlatCAMGUI.py:1740 +msgid "Transformations Tool" +msgstr "Herramienta de Transformaciones" + +#: flatcamGUI/FlatCAMGUI.py:1742 +msgid "Solder Paste Dispensing Tool" +msgstr "Herramienta de Dispensación de Pasta" + +#: flatcamGUI/FlatCAMGUI.py:1743 +msgid "Film PCB Tool" +msgstr "Herramienta de Película" + +#: flatcamGUI/FlatCAMGUI.py:1743 +msgid "Non-Copper Clearing Tool" +msgstr "Herramienta de Limpieza Sin Cobre" + +#: flatcamGUI/FlatCAMGUI.py:1744 +msgid "Paint Area Tool" +msgstr "Herramienta de Area de Pintura" + +#: flatcamGUI/FlatCAMGUI.py:1744 +msgid "Rules Check Tool" +msgstr "Herramienta de Verificación de Reglas" + +#: flatcamGUI/FlatCAMGUI.py:1745 +msgid "View File Source" +msgstr "Ver fuente del archivo" + +#: flatcamGUI/FlatCAMGUI.py:1746 +msgid "Cutout PCB Tool" +msgstr "Herra. de Corte" + +#: flatcamGUI/FlatCAMGUI.py:1746 +msgid "Enable all Plots" +msgstr "Habilitar todas las parcelas" + +#: flatcamGUI/FlatCAMGUI.py:1746 +msgid "Disable all Plots" +msgstr "Deshabilitar todas las parcelas" + +#: flatcamGUI/FlatCAMGUI.py:1746 +msgid "Disable Non-selected Plots" +msgstr "Deshabilitar no seleccionado" + +#: flatcamGUI/FlatCAMGUI.py:1747 +msgid "Toggle Full Screen" +msgstr "Alternar pantalla completa" + +#: flatcamGUI/FlatCAMGUI.py:1750 +msgid "Abort current task (gracefully)" +msgstr "Abortar la tarea actual (con gracia)" + +#: flatcamGUI/FlatCAMGUI.py:1753 +msgid "Save Project As" +msgstr "Guardar proyecto como" + +#: flatcamGUI/FlatCAMGUI.py:1754 +msgid "" +"Paste Special. Will convert a Windows path style to the one required in Tcl " +"Shell" +msgstr "" +"Pegado especial. Convertirá un estilo de ruta de Windows al requerido en Tcl " +"Shell" + +#: flatcamGUI/FlatCAMGUI.py:1757 +msgid "Open Online Manual" +msgstr "Abrir el manual en línea" + +#: flatcamGUI/FlatCAMGUI.py:1758 +msgid "Open Online Tutorials" +msgstr "Abrir tutoriales en online" + +#: flatcamGUI/FlatCAMGUI.py:1758 +msgid "Refresh Plots" +msgstr "Actualizar parcelas" + +#: flatcamGUI/FlatCAMGUI.py:1758 flatcamTools/ToolSolderPaste.py:509 +msgid "Delete Object" +msgstr "Eliminar objeto" + +#: flatcamGUI/FlatCAMGUI.py:1758 +msgid "Alternate: Delete Tool" +msgstr "Alt.: Eliminar herramienta" + +#: flatcamGUI/FlatCAMGUI.py:1759 +msgid "(left to Key_1)Toggle Notebook Area (Left Side)" +msgstr "(izquierda a Key_1) Alternar Área del Cuaderno (lado izquierdo)" + +#: flatcamGUI/FlatCAMGUI.py:1759 +msgid "En(Dis)able Obj Plot" +msgstr "(Des)habilitar trazado Obj" + +#: flatcamGUI/FlatCAMGUI.py:1760 +msgid "Deselects all objects" +msgstr "Desel. todos los objetos" + +#: flatcamGUI/FlatCAMGUI.py:1774 +msgid "Editor Shortcut list" +msgstr "Lista de accesos directos del editor" + +#: flatcamGUI/FlatCAMGUI.py:1928 +msgid "GEOMETRY EDITOR" +msgstr "EDITOR DE GEOMETRÍA" + +#: flatcamGUI/FlatCAMGUI.py:1928 +msgid "Draw an Arc" +msgstr "Dibujar un arco" + +#: flatcamGUI/FlatCAMGUI.py:1928 +msgid "Copy Geo Item" +msgstr "Copia Geo" + +#: flatcamGUI/FlatCAMGUI.py:1929 +msgid "Within Add Arc will toogle the ARC direction: CW or CCW" +msgstr "Dentro de agregar arco alternará la dirección del ARCO: CW o CCW" + +#: flatcamGUI/FlatCAMGUI.py:1929 +msgid "Polygon Intersection Tool" +msgstr "Herram. de Intersección Poli" + +#: flatcamGUI/FlatCAMGUI.py:1930 +msgid "Geo Paint Tool" +msgstr "Herram. de pintura geo" + +#: flatcamGUI/FlatCAMGUI.py:1930 flatcamGUI/FlatCAMGUI.py:2019 +#: flatcamGUI/FlatCAMGUI.py:2139 +msgid "Jump to Location (x, y)" +msgstr "Saltar a la ubicación (x, y)" + +#: flatcamGUI/FlatCAMGUI.py:1930 +msgid "Toggle Corner Snap" +msgstr "Alternar ajuste de esquina" + +#: flatcamGUI/FlatCAMGUI.py:1930 +msgid "Move Geo Item" +msgstr "Mover elemento geo" + +#: flatcamGUI/FlatCAMGUI.py:1931 +msgid "Within Add Arc will cycle through the ARC modes" +msgstr "Dentro de agregar arco, pasará por los modos de arco" + +#: flatcamGUI/FlatCAMGUI.py:1931 +msgid "Draw a Polygon" +msgstr "Dibujar un polígono" + +#: flatcamGUI/FlatCAMGUI.py:1931 +msgid "Draw a Circle" +msgstr "Dibuja un circulo" + +#: flatcamGUI/FlatCAMGUI.py:1932 +msgid "Draw a Path" +msgstr "Dibujar un camino" + +#: flatcamGUI/FlatCAMGUI.py:1932 +msgid "Draw Rectangle" +msgstr "Dibujar rectángulo" + +#: flatcamGUI/FlatCAMGUI.py:1932 +msgid "Polygon Subtraction Tool" +msgstr "Herram. de Sustrac. de Polí" + +#: flatcamGUI/FlatCAMGUI.py:1932 +msgid "Add Text Tool" +msgstr "Herramienta de Texto" + +#: flatcamGUI/FlatCAMGUI.py:1933 +msgid "Polygon Union Tool" +msgstr "Herram. de Unión Poli" + +#: flatcamGUI/FlatCAMGUI.py:1933 +msgid "Flip shape on X axis" +msgstr "Voltear en el eje X" + +#: flatcamGUI/FlatCAMGUI.py:1933 +msgid "Flip shape on Y axis" +msgstr "Voltear en el eje Y" + +#: flatcamGUI/FlatCAMGUI.py:1934 +msgid "Skew shape on X axis" +msgstr "Sesgar en el eje X" + +#: flatcamGUI/FlatCAMGUI.py:1934 +msgid "Skew shape on Y axis" +msgstr "Sesgar en el eje Y" + +#: flatcamGUI/FlatCAMGUI.py:1934 +msgid "Editor Transformation Tool" +msgstr "Herram. de transform. del editor" + +#: flatcamGUI/FlatCAMGUI.py:1935 +msgid "Offset shape on X axis" +msgstr "Offset en el eje X" + +#: flatcamGUI/FlatCAMGUI.py:1935 +msgid "Offset shape on Y axis" +msgstr "Offset en eje Y" + +#: flatcamGUI/FlatCAMGUI.py:1936 flatcamGUI/FlatCAMGUI.py:2022 +#: flatcamGUI/FlatCAMGUI.py:2144 +msgid "Save Object and Exit Editor" +msgstr "Guardar objeto y salir del editor" + +#: flatcamGUI/FlatCAMGUI.py:1936 +msgid "Polygon Cut Tool" +msgstr "Herram. de Corte Poli" + +#: flatcamGUI/FlatCAMGUI.py:1937 +msgid "Rotate Geometry" +msgstr "Rotar Geometría" + +#: flatcamGUI/FlatCAMGUI.py:1937 +msgid "Finish drawing for certain tools" +msgstr "Terminar el dibujo de ciertas herramientas" + +#: flatcamGUI/FlatCAMGUI.py:1937 flatcamGUI/FlatCAMGUI.py:2022 +#: flatcamGUI/FlatCAMGUI.py:2142 +msgid "Abort and return to Select" +msgstr "Anular y volver a Seleccionar" + +#: flatcamGUI/FlatCAMGUI.py:1938 flatcamGUI/FlatCAMGUI.py:2734 +msgid "Delete Shape" +msgstr "Eliminar forma" + +#: flatcamGUI/FlatCAMGUI.py:2018 +msgid "EXCELLON EDITOR" +msgstr "EDITOR DE EXCELLON" + +#: flatcamGUI/FlatCAMGUI.py:2018 +msgid "Copy Drill(s)" +msgstr "Copia de taladro" + +#: flatcamGUI/FlatCAMGUI.py:2018 flatcamGUI/FlatCAMGUI.py:2268 +msgid "Add Drill" +msgstr "Añadir taladro" + +#: flatcamGUI/FlatCAMGUI.py:2019 +msgid "Move Drill(s)" +msgstr "Mover taladro(s)" + +#: flatcamGUI/FlatCAMGUI.py:2020 +msgid "Add a new Tool" +msgstr "Agregar una nueva herram" + +#: flatcamGUI/FlatCAMGUI.py:2021 +msgid "Delete Drill(s)" +msgstr "Eliminar Taladro" + +#: flatcamGUI/FlatCAMGUI.py:2021 +msgid "Alternate: Delete Tool(s)" +msgstr "Alt.: Eliminar herramienta (s)" + +#: flatcamGUI/FlatCAMGUI.py:2138 +msgid "GERBER EDITOR" +msgstr "EDITOR GERBER" + +#: flatcamGUI/FlatCAMGUI.py:2138 +msgid "Add Disc" +msgstr "Agregar disco" + +#: flatcamGUI/FlatCAMGUI.py:2138 +msgid "Add SemiDisc" +msgstr "Añadir medio disco" + +#: flatcamGUI/FlatCAMGUI.py:2140 +msgid "Within Track & Region Tools will cycle in REVERSE the bend modes" +msgstr "" +"Dentro de la Pista y la Región, las herram.s alternarán en REVERSA los modos " +"de plegado" + +#: flatcamGUI/FlatCAMGUI.py:2141 +msgid "Within Track & Region Tools will cycle FORWARD the bend modes" +msgstr "" +"Dentro de la Pista y la Región, las herram. avanzarán hacia adelante los " +"modos de plegado" + +#: flatcamGUI/FlatCAMGUI.py:2142 +msgid "Alternate: Delete Apertures" +msgstr "Alt.: Eliminar Aperturas" + +#: flatcamGUI/FlatCAMGUI.py:2143 +msgid "Eraser Tool" +msgstr "Herramienta borrador" + +#: flatcamGUI/FlatCAMGUI.py:2144 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:220 +msgid "Mark Area Tool" +msgstr "Herram. de Zona de Marca" + +#: flatcamGUI/FlatCAMGUI.py:2144 +msgid "Poligonize Tool" +msgstr "Herram. de poligonización" + +#: flatcamGUI/FlatCAMGUI.py:2144 +msgid "Transformation Tool" +msgstr "Herramienta de Transformación" + +#: flatcamGUI/FlatCAMGUI.py:2161 +msgid "Toggle Visibility" +msgstr "Alternar visibilidad" + +#: flatcamGUI/FlatCAMGUI.py:2167 +msgid "New" +msgstr "Nueva" + +#: flatcamGUI/FlatCAMGUI.py:2169 flatcamGUI/ObjectUI.py:450 +#: flatcamObjects/FlatCAMGerber.py:239 flatcamObjects/FlatCAMGerber.py:327 +#: flatcamTools/ToolCalibration.py:631 flatcamTools/ToolCalibration.py:648 +#: flatcamTools/ToolCalibration.py:815 flatcamTools/ToolCopperThieving.py:144 +#: flatcamTools/ToolCopperThieving.py:158 +#: flatcamTools/ToolCopperThieving.py:604 flatcamTools/ToolCutOut.py:92 +#: flatcamTools/ToolDblSided.py:226 flatcamTools/ToolFilm.py:69 +#: flatcamTools/ToolFilm.py:102 flatcamTools/ToolFilm.py:549 +#: flatcamTools/ToolFilm.py:557 flatcamTools/ToolImage.py:49 +#: flatcamTools/ToolImage.py:271 flatcamTools/ToolNCC.py:95 +#: flatcamTools/ToolNCC.py:558 flatcamTools/ToolNCC.py:1300 +#: flatcamTools/ToolPaint.py:502 flatcamTools/ToolPaint.py:706 +#: flatcamTools/ToolPanelize.py:118 flatcamTools/ToolPanelize.py:374 +#: flatcamTools/ToolPanelize.py:391 +msgid "Geometry" +msgstr "Geometría" + +#: flatcamGUI/FlatCAMGUI.py:2173 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:99 +#: flatcamTools/ToolAlignObjects.py:74 flatcamTools/ToolAlignObjects.py:110 +#: flatcamTools/ToolCalibration.py:197 flatcamTools/ToolCalibration.py:631 +#: flatcamTools/ToolCalibration.py:648 flatcamTools/ToolCalibration.py:807 +#: flatcamTools/ToolCalibration.py:815 flatcamTools/ToolCopperThieving.py:144 +#: flatcamTools/ToolCopperThieving.py:158 +#: flatcamTools/ToolCopperThieving.py:604 flatcamTools/ToolDblSided.py:225 +#: flatcamTools/ToolFilm.py:359 flatcamTools/ToolNCC.py:558 +#: flatcamTools/ToolNCC.py:1300 flatcamTools/ToolPaint.py:502 +#: flatcamTools/ToolPaint.py:706 flatcamTools/ToolPanelize.py:374 +#: flatcamTools/ToolPunchGerber.py:149 flatcamTools/ToolPunchGerber.py:164 +msgid "Excellon" +msgstr "Excellon" + +#: flatcamGUI/FlatCAMGUI.py:2180 +msgid "Grids" +msgstr "Rejillas" + +#: flatcamGUI/FlatCAMGUI.py:2187 +msgid "Clear Plot" +msgstr "Parcela clara" + +#: flatcamGUI/FlatCAMGUI.py:2189 +msgid "Replot" +msgstr "Replantear" + +#: flatcamGUI/FlatCAMGUI.py:2193 +msgid "Geo Editor" +msgstr "Geo Editor" + +#: flatcamGUI/FlatCAMGUI.py:2195 +msgid "Path" +msgstr "Ruta" + +#: flatcamGUI/FlatCAMGUI.py:2197 +msgid "Rectangle" +msgstr "Rectángulo" + +#: flatcamGUI/FlatCAMGUI.py:2200 +msgid "Circle" +msgstr "Círculo" + +#: flatcamGUI/FlatCAMGUI.py:2204 +msgid "Arc" +msgstr "Arco" + +#: flatcamGUI/FlatCAMGUI.py:2218 +msgid "Union" +msgstr "Unión" + +#: flatcamGUI/FlatCAMGUI.py:2220 +msgid "Intersection" +msgstr "Intersección" + +#: flatcamGUI/FlatCAMGUI.py:2222 +msgid "Subtraction" +msgstr "Sustracción" + +#: flatcamGUI/FlatCAMGUI.py:2224 flatcamGUI/ObjectUI.py:2221 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:56 +msgid "Cut" +msgstr "Cortar" + +#: flatcamGUI/FlatCAMGUI.py:2235 +msgid "Pad" +msgstr "Pad" + +#: flatcamGUI/FlatCAMGUI.py:2237 +msgid "Pad Array" +msgstr "Matriz de Pad" + +#: flatcamGUI/FlatCAMGUI.py:2241 +msgid "Track" +msgstr "Pista" + +#: flatcamGUI/FlatCAMGUI.py:2243 +msgid "Region" +msgstr "Región" + +#: flatcamGUI/FlatCAMGUI.py:2266 +msgid "Exc Editor" +msgstr "Exc Editor" + +#: flatcamGUI/FlatCAMGUI.py:2311 +msgid "" +"Relative measurement.\n" +"Reference is last click position" +msgstr "" +"Medida relativa.\n" +"La referencia es la posición del último clic" + +#: flatcamGUI/FlatCAMGUI.py:2317 +msgid "" +"Absolute measurement.\n" +"Reference is (X=0, Y= 0) position" +msgstr "" +"Medida absoluta.\n" +"La referencia es (X = 0, Y = 0) posición" + +#: flatcamGUI/FlatCAMGUI.py:2419 +msgid "Lock Toolbars" +msgstr "Bloquear barras de herram" + +#: flatcamGUI/FlatCAMGUI.py:2505 +msgid "FlatCAM Preferences Folder opened." +msgstr "Carpeta de preferencias de FlatCAM abierta." + +#: flatcamGUI/FlatCAMGUI.py:2516 +msgid "Are you sure you want to delete the GUI Settings? \n" +msgstr "¿Está seguro de que desea eliminar la configuración de la GUI?\n" + +#: flatcamGUI/FlatCAMGUI.py:2624 +msgid "&Cutout Tool" +msgstr "Herramienta de recorte" + +#: flatcamGUI/FlatCAMGUI.py:2694 +msgid "Select 'Esc'" +msgstr "Selecciona 'Esc'" + +#: flatcamGUI/FlatCAMGUI.py:2732 +msgid "Copy Objects" +msgstr "Copiar objetos" + +#: flatcamGUI/FlatCAMGUI.py:2740 +msgid "Move Objects" +msgstr "Mover objetos" + +#: flatcamGUI/FlatCAMGUI.py:3363 +msgid "" +"Please first select a geometry item to be cutted\n" +"then select the geometry item that will be cutted\n" +"out of the first item. In the end press ~X~ key or\n" +"the toolbar button." +msgstr "" +"Por favor, primero seleccione un elemento de geometría para ser cortado\n" +"a continuación, seleccione el elemento de geometría que se cortará\n" +"fuera del primer artículo. Al final presione la tecla ~ X ~ o\n" +"el botón de la barra de herramientas." + +#: flatcamGUI/FlatCAMGUI.py:3370 flatcamGUI/FlatCAMGUI.py:3532 +#: flatcamGUI/FlatCAMGUI.py:3577 flatcamGUI/FlatCAMGUI.py:3597 +msgid "Warning" +msgstr "Advertencia" + +#: flatcamGUI/FlatCAMGUI.py:3527 +msgid "" +"Please select geometry items \n" +"on which to perform Intersection Tool." +msgstr "" +"Por favor seleccione elementos de geometría\n" +"en el que realizar Herramienta de Intersección." + +#: flatcamGUI/FlatCAMGUI.py:3572 +msgid "" +"Please select geometry items \n" +"on which to perform Substraction Tool." +msgstr "" +"Por favor seleccione elementos de geometría\n" +"en el que realizar la Herramienta de Substracción." + +#: flatcamGUI/FlatCAMGUI.py:3592 +msgid "" +"Please select geometry items \n" +"on which to perform union." +msgstr "" +"Por favor seleccione elementos de geometría\n" +"en el que realizar la Unión." + +#: flatcamGUI/FlatCAMGUI.py:3675 flatcamGUI/FlatCAMGUI.py:3890 +msgid "Cancelled. Nothing selected to delete." +msgstr "Cancelado. Nada seleccionado para eliminar." + +#: flatcamGUI/FlatCAMGUI.py:3759 flatcamGUI/FlatCAMGUI.py:4006 +msgid "Cancelled. Nothing selected to copy." +msgstr "Cancelado. Nada seleccionado para copiar." + +#: flatcamGUI/FlatCAMGUI.py:3805 flatcamGUI/FlatCAMGUI.py:4035 +msgid "Cancelled. Nothing selected to move." +msgstr "Cancelado. Nada seleccionado para moverse." + +#: flatcamGUI/FlatCAMGUI.py:4061 +msgid "New Tool ..." +msgstr "Nueva herramienta ..." + +#: flatcamGUI/FlatCAMGUI.py:4062 flatcamTools/ToolNCC.py:924 +#: flatcamTools/ToolPaint.py:850 flatcamTools/ToolSolderPaste.py:560 +msgid "Enter a Tool Diameter" +msgstr "Introduzca un diá. de herram" + +#: flatcamGUI/FlatCAMGUI.py:4074 +msgid "Adding Tool cancelled ..." +msgstr "Añadiendo herramienta cancelada ..." + +#: flatcamGUI/FlatCAMGUI.py:4088 +msgid "Distance Tool exit..." +msgstr "Salida de Herramienta de Distancia ..." + +#: flatcamGUI/FlatCAMGUI.py:4323 flatcamGUI/FlatCAMGUI.py:4330 +msgid "Idle." +msgstr "Ocioso." + +#: flatcamGUI/FlatCAMGUI.py:4361 +msgid "Application started ..." +msgstr "Aplicacion iniciada ..." + +#: flatcamGUI/FlatCAMGUI.py:4362 +msgid "Hello!" +msgstr "¡Hola!" + +#: flatcamGUI/FlatCAMGUI.py:4424 +msgid "Open Project ..." +msgstr "Proyecto abierto ...Abierto &Project ..." + +#: flatcamGUI/FlatCAMGUI.py:4450 +msgid "Exit" +msgstr "Salida" + +#: flatcamGUI/GUIElements.py:2513 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:180 +#: flatcamTools/ToolDblSided.py:173 flatcamTools/ToolDblSided.py:388 +#: flatcamTools/ToolFilm.py:219 +msgid "Reference" +msgstr "Referencia" + +#: flatcamGUI/GUIElements.py:2515 +msgid "" +"The reference can be:\n" +"- Absolute -> the reference point is point (0,0)\n" +"- Relative -> the reference point is the mouse position before Jump" +msgstr "" +"La referencia puede ser:\n" +"- Absoluto -> el punto de referencia es el punto (0,0)\n" +"- Relativo -> el punto de referencia es la posición del mouse antes de Jump" + +#: flatcamGUI/GUIElements.py:2520 +msgid "Abs" +msgstr "Abs" + +#: flatcamGUI/GUIElements.py:2521 +msgid "Relative" +msgstr "Relativo" + +#: flatcamGUI/GUIElements.py:2531 +msgid "Location" +msgstr "Ubicación" + +#: flatcamGUI/GUIElements.py:2533 +msgid "" +"The Location value is a tuple (x,y).\n" +"If the reference is Absolute then the Jump will be at the position (x,y).\n" +"If the reference is Relative then the Jump will be at the (x,y) distance\n" +"from the current mouse location point." +msgstr "" +"El valor de ubicación es una tupla (x, y).\n" +"Si la referencia es Absoluta, entonces el Salto estará en la posición (x, " +"y).\n" +"Si la referencia es relativa, entonces el salto estará a la distancia (x, " +"y)\n" +"desde el punto de ubicación actual del mouse." + +#: flatcamGUI/GUIElements.py:2573 +msgid "Save Log" +msgstr "Guardar Registro" + +#: flatcamGUI/GUIElements.py:2592 flatcamTools/ToolShell.py:278 +msgid "Type >help< to get started" +msgstr "Escriba >help< para comenzar" + +#: flatcamGUI/ObjectUI.py:38 +msgid "FlatCAM Object" +msgstr "Objeto FlatCAM" + +#: flatcamGUI/ObjectUI.py:78 +msgid "" +"BASIC is suitable for a beginner. Many parameters\n" +"are hidden from the user in this mode.\n" +"ADVANCED mode will make available all parameters.\n" +"\n" +"To change the application LEVEL, go to:\n" +"Edit -> Preferences -> General and check:\n" +"'APP. LEVEL' radio button." +msgstr "" +"BASIC es adecuado para un principiante. Muchos parámetros\n" +"están ocultos para el usuario en este modo.\n" +"El modo AVANZADO pondrá a disposición todos los parámetros.\n" +"\n" +"Para cambiar el NIVEL de la aplicación, vaya a:\n" +"Editar -> Preferencias -> General y verificar:\n" +"'APP. NIVEL 'botón de radio." + +#: flatcamGUI/ObjectUI.py:111 +msgid "Geometrical transformations of the current object." +msgstr "Transformaciones geométricas del objeto actual." + +#: flatcamGUI/ObjectUI.py:120 +msgid "" +"Factor by which to multiply\n" +"geometric features of this object.\n" +"Expressions are allowed. E.g: 1/25.4" +msgstr "" +"Factor por el cual multiplicar\n" +"características geométricas de este objeto.\n" +"Se permiten expresiones. Por ejemplo: 1 / 25.4" + +#: flatcamGUI/ObjectUI.py:127 +msgid "Perform scaling operation." +msgstr "Realizar la operación de escalado." + +#: flatcamGUI/ObjectUI.py:138 +msgid "" +"Amount by which to move the object\n" +"in the x and y axes in (x, y) format.\n" +"Expressions are allowed. E.g: (1/3.2, 0.5*3)" +msgstr "" +"Cantidad por la cual mover el objeto\n" +"en los ejes x e y en formato (x, y).\n" +"Se permiten expresiones. Por ejemplo: (1/3.2, 0.5*3)" + +#: flatcamGUI/ObjectUI.py:145 +msgid "Perform the offset operation." +msgstr "Realice la operación de desplazamiento." + +#: flatcamGUI/ObjectUI.py:178 +msgid "Gerber Object" +msgstr "Objeto Gerber" + +#: flatcamGUI/ObjectUI.py:187 flatcamGUI/ObjectUI.py:730 +#: flatcamGUI/ObjectUI.py:1426 flatcamGUI/ObjectUI.py:2205 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:30 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:33 +#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:31 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:31 +msgid "Plot Options" +msgstr "Opciones de parcela" + +#: flatcamGUI/ObjectUI.py:193 flatcamGUI/ObjectUI.py:731 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:45 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:38 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:119 +#: flatcamTools/ToolCopperThieving.py:191 +msgid "Solid" +msgstr "Sólido" + +#: flatcamGUI/ObjectUI.py:195 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:40 +msgid "Solid color polygons." +msgstr "Polígonos de color liso." + +#: flatcamGUI/ObjectUI.py:201 +msgid "Multi-Color" +msgstr "Multicolor" + +#: flatcamGUI/ObjectUI.py:203 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:47 +msgid "Draw polygons in different colors." +msgstr "Dibuja polígonos en diferentes colores." + +#: flatcamGUI/ObjectUI.py:209 flatcamGUI/ObjectUI.py:769 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:39 +#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:35 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:52 +msgid "Plot" +msgstr "Gráfico" + +#: flatcamGUI/ObjectUI.py:211 flatcamGUI/ObjectUI.py:771 +#: flatcamGUI/ObjectUI.py:1486 flatcamGUI/ObjectUI.py:2315 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:41 +#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:37 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:54 +msgid "Plot (show) this object." +msgstr "Trazar (mostrar) este objeto." + +#: flatcamGUI/ObjectUI.py:239 +msgid "" +"Toggle the display of the Gerber Apertures Table.\n" +"When unchecked, it will delete all mark shapes\n" +"that are drawn on canvas." +msgstr "" +"Alternar la visualización de la tabla de aperturas de Gerber.\n" +"Cuando no está marcada, eliminará todas las formas de las marcas.\n" +"que se dibujan en lienzo." + +#: flatcamGUI/ObjectUI.py:249 +msgid "Mark All" +msgstr "Márc. todo" + +#: flatcamGUI/ObjectUI.py:251 +msgid "" +"When checked it will display all the apertures.\n" +"When unchecked, it will delete all mark shapes\n" +"that are drawn on canvas." +msgstr "" +"Cuando está marcado, mostrará todas las aperturas.\n" +"Cuando no está marcada, eliminará todas las formas de las marcas.\n" +"que se dibujan en lienzo." + +#: flatcamGUI/ObjectUI.py:279 +msgid "Mark the aperture instances on canvas." +msgstr "Marque las instancias de apertura en el lienzo." + +#: flatcamGUI/ObjectUI.py:291 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:32 +msgid "Isolation Routing" +msgstr "Enrutamiento de aislamiento" + +#: flatcamGUI/ObjectUI.py:293 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:34 +msgid "" +"Create a Geometry object with\n" +"toolpaths to cut outside polygons." +msgstr "" +"Crear un objeto de geometría con\n" +"Trayectorias para cortar polígonos exteriores." + +#: flatcamGUI/ObjectUI.py:311 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:69 +msgid "" +"Choose which tool to use for Gerber isolation:\n" +"'Circular' or 'V-shape'.\n" +"When the 'V-shape' is selected then the tool\n" +"diameter will depend on the chosen cut depth." +msgstr "" +"Elija qué herramienta usar para el aislamiento de Gerber:\n" +"'Circular' o 'en forma de V'.\n" +"Cuando se selecciona la 'forma de V', entonces la herramienta\n" +"El diámetro dependerá de la profundidad de corte elegida." + +#: flatcamGUI/ObjectUI.py:317 +msgid "V-Shape" +msgstr "Forma V" + +#: flatcamGUI/ObjectUI.py:323 flatcamGUI/ObjectUI.py:1672 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:81 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:72 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:78 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:85 +#: flatcamTools/ToolNCC.py:233 flatcamTools/ToolNCC.py:240 +#: flatcamTools/ToolPaint.py:216 +msgid "V-Tip Dia" +msgstr "V-Tipo Dia" + +#: flatcamGUI/ObjectUI.py:325 flatcamGUI/ObjectUI.py:1675 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:83 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:74 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:80 +#: flatcamTools/ToolNCC.py:235 flatcamTools/ToolPaint.py:218 +msgid "The tip diameter for V-Shape Tool" +msgstr "El diámetro de la punta para la herramienta en forma de V" + +#: flatcamGUI/ObjectUI.py:336 flatcamGUI/ObjectUI.py:1687 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:94 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:84 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:91 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:99 +#: flatcamTools/ToolNCC.py:246 flatcamTools/ToolNCC.py:254 +#: flatcamTools/ToolPaint.py:229 +msgid "V-Tip Angle" +msgstr "V-Tipo Ángulo" + +#: flatcamGUI/ObjectUI.py:338 flatcamGUI/ObjectUI.py:1690 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:96 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:86 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:93 +#: flatcamTools/ToolNCC.py:248 flatcamTools/ToolPaint.py:231 +msgid "" +"The tip angle for V-Shape Tool.\n" +"In degree." +msgstr "" +"El ángulo de punta para la herramienta en forma de V.\n" +"En grado." + +#: flatcamGUI/ObjectUI.py:352 flatcamGUI/ObjectUI.py:1706 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:50 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:109 +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:61 +#: flatcamObjects/FlatCAMGeometry.py:1174 flatcamTools/ToolCutOut.py:141 +msgid "" +"Cutting depth (negative)\n" +"below the copper surface." +msgstr "" +"Profundidad de corte (negativo)\n" +"debajo de la superficie de cobre." + +#: flatcamGUI/ObjectUI.py:366 +msgid "" +"Diameter of the cutting tool.\n" +"If you want to have an isolation path\n" +"inside the actual shape of the Gerber\n" +"feature, use a negative value for\n" +"this parameter." +msgstr "" +"Diámetro de la herramienta de corte.\n" +"Si quieres tener una ruta de aislamiento\n" +"dentro de la forma real del Gerber\n" +"característica, use un valor negativo para\n" +"este parámetro." + +#: flatcamGUI/ObjectUI.py:382 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:56 +msgid "# Passes" +msgstr "# Pases" + +#: flatcamGUI/ObjectUI.py:384 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:58 +msgid "" +"Width of the isolation gap in\n" +"number (integer) of tool widths." +msgstr "" +"Ancho de la brecha de aislamiento en\n" +"Número (entero) de anchos de herramienta." + +#: flatcamGUI/ObjectUI.py:395 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:68 +msgid "Pass overlap" +msgstr "Superposición de pases" + +#: flatcamGUI/ObjectUI.py:397 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:70 +msgid "How much (percentage) of the tool width to overlap each tool pass." +msgstr "" +"Cuánto (porcentaje) del ancho de la herramienta para superponer cada pasada " +"de herramienta." + +#: flatcamGUI/ObjectUI.py:411 +#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:58 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:97 +msgid "" +"Milling type:\n" +"- climb / best for precision milling and to reduce tool usage\n" +"- conventional / useful when there is no backlash compensation" +msgstr "" +"Tipo de fresado:\n" +"- subir / mejor para fresado de precisión y para reducir el uso de la " +"herramienta\n" +"- convencional / útil cuando no hay compensación de contragolpe" + +#: flatcamGUI/ObjectUI.py:421 +msgid "Combine" +msgstr "Combinar" + +#: flatcamGUI/ObjectUI.py:423 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:109 +msgid "Combine all passes into one object" +msgstr "Combina todos los pases en un objeto" + +#: flatcamGUI/ObjectUI.py:427 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:43 +msgid "\"Follow\"" +msgstr "\"Seguir\"" + +#: flatcamGUI/ObjectUI.py:428 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:45 +msgid "" +"Generate a 'Follow' geometry.\n" +"This means that it will cut through\n" +"the middle of the trace." +msgstr "" +"Generar una geometría 'Seguir'.\n" +"Esto significa que cortará a través\n" +"El medio de la traza." + +#: flatcamGUI/ObjectUI.py:434 +msgid "Except" +msgstr "Excepto" + +#: flatcamGUI/ObjectUI.py:437 +msgid "" +"When the isolation geometry is generated,\n" +"by checking this, the area of the object below\n" +"will be subtracted from the isolation geometry." +msgstr "" +"Cuando se genera la geometría de Aislamiento,\n" +"marcando esto, el área del objeto a continuación\n" +"será restado de la geometría de aislamiento." + +#: flatcamGUI/ObjectUI.py:450 +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:97 +#: flatcamObjects/FlatCAMGerber.py:239 flatcamObjects/FlatCAMGerber.py:327 +#: flatcamTools/ToolAlignObjects.py:73 flatcamTools/ToolAlignObjects.py:109 +#: flatcamTools/ToolCalibration.py:196 flatcamTools/ToolCalibration.py:631 +#: flatcamTools/ToolCalibration.py:648 flatcamTools/ToolCalibration.py:807 +#: flatcamTools/ToolCalibration.py:815 flatcamTools/ToolCopperThieving.py:144 +#: flatcamTools/ToolCopperThieving.py:158 +#: flatcamTools/ToolCopperThieving.py:604 flatcamTools/ToolCutOut.py:91 +#: flatcamTools/ToolDblSided.py:224 flatcamTools/ToolFilm.py:69 +#: flatcamTools/ToolFilm.py:102 flatcamTools/ToolFilm.py:549 +#: flatcamTools/ToolFilm.py:557 flatcamTools/ToolImage.py:49 +#: flatcamTools/ToolImage.py:252 flatcamTools/ToolImage.py:273 +#: flatcamTools/ToolNCC.py:96 flatcamTools/ToolNCC.py:558 +#: flatcamTools/ToolNCC.py:1300 flatcamTools/ToolPaint.py:502 +#: flatcamTools/ToolPaint.py:706 flatcamTools/ToolPanelize.py:118 +#: flatcamTools/ToolPanelize.py:204 flatcamTools/ToolPanelize.py:374 +#: flatcamTools/ToolPanelize.py:391 +msgid "Gerber" +msgstr "Gerber" + +#: flatcamGUI/ObjectUI.py:457 flatcamTools/ToolNCC.py:86 +#: flatcamTools/ToolPaint.py:80 +msgid "Obj Type" +msgstr "Tipo de obj" + +#: flatcamGUI/ObjectUI.py:459 +msgid "" +"Specify the type of object to be excepted from isolation.\n" +"It can be of type: Gerber or Geometry.\n" +"What is selected here will dictate the kind\n" +"of objects that will populate the 'Object' combobox." +msgstr "" +"Especifique el tipo de objeto que se excluirá del aislamiento.\n" +"Puede ser de tipo: Gerber o Geometría.\n" +"Lo que se seleccione aquí dictará el tipo\n" +"de objetos que llenarán el cuadro combinado 'Objeto'." + +#: flatcamGUI/ObjectUI.py:472 +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:48 +#: flatcamTools/ToolCalibration.py:186 flatcamTools/ToolNCC.py:109 +#: flatcamTools/ToolPaint.py:103 flatcamTools/ToolPanelize.py:100 +#: flatcamTools/ToolQRCode.py:78 +msgid "Object" +msgstr "Objeto" + +#: flatcamGUI/ObjectUI.py:473 +msgid "Object whose area will be removed from isolation geometry." +msgstr "Objeto cuya área se eliminará de la geometría de aislamiento." + +#: flatcamGUI/ObjectUI.py:480 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:82 +msgid "Scope" +msgstr "Alcance" + +#: flatcamGUI/ObjectUI.py:482 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:84 +msgid "" +"Isolation scope. Choose what to isolate:\n" +"- 'All' -> Isolate all the polygons in the object\n" +"- 'Selection' -> Isolate a selection of polygons." +msgstr "" +"Alcance de aislamiento. Elija qué aislar:\n" +"- 'Todos' -> Aislar todos los polígonos en el objeto\n" +"- 'Selección' -> Aislar una selección de polígonos." + +#: flatcamGUI/ObjectUI.py:487 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:307 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:89 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:311 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:258 +#: flatcamTools/ToolNCC.py:539 flatcamTools/ToolPaint.py:456 +msgid "Selection" +msgstr "Selección" + +#: flatcamGUI/ObjectUI.py:495 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:122 +msgid "Isolation Type" +msgstr "Tipo de aislamiento" + +#: flatcamGUI/ObjectUI.py:497 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:124 +msgid "" +"Choose how the isolation will be executed:\n" +"- 'Full' -> complete isolation of polygons\n" +"- 'Ext' -> will isolate only on the outside\n" +"- 'Int' -> will isolate only on the inside\n" +"'Exterior' isolation is almost always possible\n" +"(with the right tool) but 'Interior'\n" +"isolation can be done only when there is an opening\n" +"inside of the polygon (e.g polygon is a 'doughnut' shape)." +msgstr "" +"Elija cómo se ejecutará el aislamiento:\n" +"- 'Completo' -> aislamiento completo de polígonos\n" +"- 'Ext' -> aislará solo en el exterior\n" +"- 'Int' -> aislará solo en el interior\n" +"El aislamiento 'exterior' es casi siempre posible\n" +"(con la herramienta adecuada) pero 'Interior'\n" +"el aislamiento solo se puede hacer cuando hay una abertura\n" +"dentro del polígono (por ejemplo, el polígono tiene forma de 'rosquilla')." + +#: flatcamGUI/ObjectUI.py:506 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:133 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:154 +msgid "Full" +msgstr "Completo" + +#: flatcamGUI/ObjectUI.py:507 +msgid "Ext" +msgstr "Exterior" + +#: flatcamGUI/ObjectUI.py:508 +msgid "Int" +msgstr "Interior" + +#: flatcamGUI/ObjectUI.py:513 +msgid "Generate Isolation Geometry" +msgstr "Generar geo. de aislamiento" + +#: flatcamGUI/ObjectUI.py:521 +msgid "" +"Create a Geometry object with toolpaths to cut \n" +"isolation outside, inside or on both sides of the\n" +"object. For a Gerber object outside means outside\n" +"of the Gerber feature and inside means inside of\n" +"the Gerber feature, if possible at all. This means\n" +"that only if the Gerber feature has openings inside, they\n" +"will be isolated. If what is wanted is to cut isolation\n" +"inside the actual Gerber feature, use a negative tool\n" +"diameter above." +msgstr "" +"Cree un objeto de geometría con trayectorias de herramientas para cortar\n" +"aislamiento afuera, adentro o en ambos lados del\n" +"objeto. Para un objeto Gerber afuera significa afuera\n" +"de la característica de Gerber y dentro significa dentro de\n" +"la característica de Gerber, si es posible. Esto significa\n" +"que solo si la función Gerber tiene aberturas adentro,\n" +"será aislado Si lo que se quiere es cortar el aislamiento\n" +"dentro de la función real de Gerber, use una herramienta negativa\n" +"diámetro arriba." + +#: flatcamGUI/ObjectUI.py:533 +msgid "Buffer Solid Geometry" +msgstr "Buffer la Geometria solida" + +#: flatcamGUI/ObjectUI.py:535 +msgid "" +"This button is shown only when the Gerber file\n" +"is loaded without buffering.\n" +"Clicking this will create the buffered geometry\n" +"required for isolation." +msgstr "" +"Este botón se muestra solo cuando el archivo Gerber\n" +"se carga sin almacenamiento en búfer.\n" +"Al hacer clic en esto, se creará la geometría almacenada\n" +"requerido para el aislamiento." + +#: flatcamGUI/ObjectUI.py:567 +msgid "Clear N-copper" +msgstr "N-cobre claro" + +#: flatcamGUI/ObjectUI.py:569 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:33 +msgid "" +"Create a Geometry object with\n" +"toolpaths to cut all non-copper regions." +msgstr "" +"Crear un objeto de geometría con\n" +"Trayectorias para cortar todas las regiones sin cobre." + +#: flatcamGUI/ObjectUI.py:576 flatcamGUI/ObjectUI.py:2159 +#: flatcamTools/ToolNCC.py:599 +msgid "" +"Create the Geometry Object\n" +"for non-copper routing." +msgstr "" +"Crear el objeto de geometría\n" +"para enrutamiento sin cobre." + +#: flatcamGUI/ObjectUI.py:589 +msgid "Board cutout" +msgstr "Corte del tablero" + +#: flatcamGUI/ObjectUI.py:591 +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:34 +msgid "" +"Create toolpaths to cut around\n" +"the PCB and separate it from\n" +"the original board." +msgstr "" +"Crear caminos de herramientas para cortar alrededor\n" +"El PCB y lo separa de\n" +"El tablero original." + +#: flatcamGUI/ObjectUI.py:598 +msgid "" +"Generate the geometry for\n" +"the board cutout." +msgstr "" +"Generar la geometría para\n" +"El recorte del tablero." + +#: flatcamGUI/ObjectUI.py:616 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:119 +msgid "Non-copper regions" +msgstr "Regiones no cobre" + +#: flatcamGUI/ObjectUI.py:618 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:121 +msgid "" +"Create polygons covering the\n" +"areas without copper on the PCB.\n" +"Equivalent to the inverse of this\n" +"object. Can be used to remove all\n" +"copper from a specified region." +msgstr "" +"Crear polígonos que cubran el\n" +"áreas sin cobre en el PCB.\n" +"Equivalente al inverso de este\n" +"objeto. Se puede usar para eliminar todo\n" +"cobre de una región específica." + +#: flatcamGUI/ObjectUI.py:628 flatcamGUI/ObjectUI.py:669 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:133 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:166 +msgid "Boundary Margin" +msgstr "Margen límite" + +#: flatcamGUI/ObjectUI.py:630 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:135 +msgid "" +"Specify the edge of the PCB\n" +"by drawing a box around all\n" +"objects with this minimum\n" +"distance." +msgstr "" +"Especifique el borde de la PCB\n" +"dibujando una caja alrededor de todos\n" +"objetos con este mínimo\n" +"distancia." + +#: flatcamGUI/ObjectUI.py:645 flatcamGUI/ObjectUI.py:683 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:148 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:179 +msgid "Rounded Geo" +msgstr "Geo redondeado" + +#: flatcamGUI/ObjectUI.py:647 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:150 +msgid "Resulting geometry will have rounded corners." +msgstr "La geometría resultante tendrá esquinas redondeadas." + +#: flatcamGUI/ObjectUI.py:651 flatcamGUI/ObjectUI.py:692 +#: flatcamTools/ToolSolderPaste.py:134 +msgid "Generate Geo" +msgstr "Generar Geo" + +#: flatcamGUI/ObjectUI.py:661 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:160 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:137 +#: flatcamTools/ToolPanelize.py:101 flatcamTools/ToolQRCode.py:192 +msgid "Bounding Box" +msgstr "Cuadro delimitador" + +#: flatcamGUI/ObjectUI.py:663 +msgid "" +"Create a geometry surrounding the Gerber object.\n" +"Square shape." +msgstr "" +"Crea una geometría que rodea el objeto Gerber.\n" +"Forma cuadrada." + +#: flatcamGUI/ObjectUI.py:671 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:168 +msgid "" +"Distance of the edges of the box\n" +"to the nearest polygon." +msgstr "" +"Distancia de los bordes de la caja.\n" +"al polígono más cercano." + +#: flatcamGUI/ObjectUI.py:685 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:181 +msgid "" +"If the bounding box is \n" +"to have rounded corners\n" +"their radius is equal to\n" +"the margin." +msgstr "" +"Si el cuadro delimitador es\n" +"tener esquinas redondeadas\n" +"su radio es igual a\n" +"el margen." + +#: flatcamGUI/ObjectUI.py:694 +msgid "Generate the Geometry object." +msgstr "Genera el objeto Geometry." + +#: flatcamGUI/ObjectUI.py:721 +msgid "Excellon Object" +msgstr "Objeto Excellon" + +#: flatcamGUI/ObjectUI.py:733 +msgid "Solid circles." +msgstr "Círculos sólidos." + +#: flatcamGUI/ObjectUI.py:781 flatcamGUI/ObjectUI.py:876 +#: flatcamGUI/ObjectUI.py:2336 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:71 +#: flatcamTools/ToolProperties.py:166 +msgid "Drills" +msgstr "Taladros" + +#: flatcamGUI/ObjectUI.py:781 flatcamGUI/ObjectUI.py:877 +#: flatcamGUI/ObjectUI.py:2336 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:158 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:72 +#: flatcamTools/ToolProperties.py:168 +msgid "Slots" +msgstr "Muesca" + +#: flatcamGUI/ObjectUI.py:786 +msgid "" +"This is the Tool Number.\n" +"When ToolChange is checked, on toolchange event this value\n" +"will be showed as a T1, T2 ... Tn in the Machine Code.\n" +"\n" +"Here the tools are selected for G-code generation." +msgstr "" +"Este es el número de herramienta.\n" +"Cuando ToolChange está marcado, en el evento de cambio de herramienta este " +"valor\n" +"se mostrará como T1, T2 ... Tn en el Código de máquina.\n" +"\n" +"Aquí se seleccionan las herramientas para la generación de código G." + +#: flatcamGUI/ObjectUI.py:791 flatcamGUI/ObjectUI.py:1510 +#: flatcamTools/ToolPaint.py:142 +msgid "" +"Tool Diameter. It's value (in current FlatCAM units) \n" +"is the cut width into the material." +msgstr "" +"Diámetro de herramienta. Su valor (en unidades actuales de FlatCAM)\n" +"es el ancho de corte en el material." + +#: flatcamGUI/ObjectUI.py:794 +msgid "" +"The number of Drill holes. Holes that are drilled with\n" +"a drill bit." +msgstr "" +"El número de agujeros de taladros. Agujeros que se taladran con\n" +"una broca." + +#: flatcamGUI/ObjectUI.py:797 +msgid "" +"The number of Slot holes. Holes that are created by\n" +"milling them with an endmill bit." +msgstr "" +"El número de agujeros de muesca. Agujeros creados por\n" +"fresándolas con una broca de fresa." + +#: flatcamGUI/ObjectUI.py:800 +msgid "" +"Toggle display of the drills for the current tool.\n" +"This does not select the tools for G-code generation." +msgstr "" +"Alternar la visualización de los ejercicios para la herramienta actual.\n" +"Esto no selecciona las herramientas para la generación de código G." + +#: flatcamGUI/ObjectUI.py:818 flatcamGUI/ObjectUI.py:1662 +#: flatcamObjects/FlatCAMExcellon.py:514 flatcamObjects/FlatCAMExcellon.py:726 +#: flatcamObjects/FlatCAMExcellon.py:742 flatcamObjects/FlatCAMExcellon.py:746 +#: flatcamObjects/FlatCAMGeometry.py:323 flatcamObjects/FlatCAMGeometry.py:759 +#: flatcamObjects/FlatCAMGeometry.py:795 flatcamTools/ToolNCC.py:331 +#: flatcamTools/ToolNCC.py:797 flatcamTools/ToolNCC.py:811 +#: flatcamTools/ToolNCC.py:1196 flatcamTools/ToolPaint.py:314 +#: flatcamTools/ToolPaint.py:767 flatcamTools/ToolPaint.py:779 +#: flatcamTools/ToolPaint.py:1171 +msgid "Parameters for" +msgstr "Parámetros para" + +#: flatcamGUI/ObjectUI.py:821 flatcamGUI/ObjectUI.py:1665 +#: flatcamTools/ToolNCC.py:334 flatcamTools/ToolPaint.py:317 +msgid "" +"The data used for creating GCode.\n" +"Each tool store it's own set of such data." +msgstr "" +"Los datos utilizados para crear GCode.\n" +"Cada herramienta almacena su propio conjunto de datos." + +#: flatcamGUI/ObjectUI.py:847 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:48 +msgid "" +"Operation type:\n" +"- Drilling -> will drill the drills/slots associated with this tool\n" +"- Milling -> will mill the drills/slots" +msgstr "" +"Tipo de operación:\n" +"- Perforación -> perforará las perforaciones / ranuras asociadas con esta " +"herramienta\n" +"- Fresado -> fresará los taladros / ranuras" + +#: flatcamGUI/ObjectUI.py:853 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:54 +msgid "Drilling" +msgstr "Perforación" + +#: flatcamGUI/ObjectUI.py:854 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:55 +msgid "Milling" +msgstr "Fresado" + +#: flatcamGUI/ObjectUI.py:869 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:64 +msgid "" +"Milling type:\n" +"- Drills -> will mill the drills associated with this tool\n" +"- Slots -> will mill the slots associated with this tool\n" +"- Both -> will mill both drills and mills or whatever is available" +msgstr "" +"Tipo de fresado:\n" +"- Taladros -> fresará los taladros asociados con esta herramienta\n" +"- Ranuras -> fresará las ranuras asociadas con esta herramienta\n" +"- Ambos -> fresarán taladros y molinos o lo que esté disponible" + +#: flatcamGUI/ObjectUI.py:878 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:73 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:210 +#: flatcamTools/ToolFilm.py:258 +msgid "Both" +msgstr "Ambas" + +#: flatcamGUI/ObjectUI.py:886 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:80 +msgid "Milling Diameter" +msgstr "Diá. de fresado" + +#: flatcamGUI/ObjectUI.py:888 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:82 +msgid "The diameter of the tool who will do the milling" +msgstr "El diámetro de la herramienta que hará el fresado" + +#: flatcamGUI/ObjectUI.py:902 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:95 +msgid "" +"Drill depth (negative)\n" +"below the copper surface." +msgstr "" +"Profundidad de perforación (negativo)\n" +"debajo de la superficie de cobre." + +#: flatcamGUI/ObjectUI.py:921 flatcamGUI/ObjectUI.py:1724 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:113 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:68 +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:79 +#: flatcamTools/ToolCutOut.py:159 +msgid "Multi-Depth" +msgstr "Profund. Múlti" + +#: flatcamGUI/ObjectUI.py:924 flatcamGUI/ObjectUI.py:1727 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:116 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:71 +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:82 +#: flatcamTools/ToolCutOut.py:162 +msgid "" +"Use multiple passes to limit\n" +"the cut depth in each pass. Will\n" +"cut multiple times until Cut Z is\n" +"reached." +msgstr "" +"Usa múltiples pases para limitar\n" +"La profundidad de corte en cada pasada. Será\n" +"cortar varias veces hasta que el Corte Z sea\n" +"alcanzado." + +#: flatcamGUI/ObjectUI.py:937 flatcamGUI/ObjectUI.py:1741 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:128 +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:94 +#: flatcamTools/ToolCutOut.py:176 +msgid "Depth of each pass (positive)." +msgstr "Profundidad de cada pase (positivo)." + +#: flatcamGUI/ObjectUI.py:948 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:136 +msgid "" +"Tool height when travelling\n" +"across the XY plane." +msgstr "" +"Altura de herramienta al viajar\n" +"A través del plano XY." + +#: flatcamGUI/ObjectUI.py:969 flatcamGUI/ObjectUI.py:1771 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:187 +msgid "" +"Cutting speed in the XY\n" +"plane in units per minute" +msgstr "" +"Velocidad de corte en el XY.\n" +"Avion en unidades por minuto" + +#: flatcamGUI/ObjectUI.py:984 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:209 +msgid "" +"Tool speed while drilling\n" +"(in units per minute).\n" +"So called 'Plunge' feedrate.\n" +"This is for linear move G01." +msgstr "" +"Velocidad de herramienta durante la perforación\n" +"(en unidades por minuto).\n" +"La llamada velocidad de avance 'Plunge'.\n" +"Esto es para el movimiento lineal G01." + +#: flatcamGUI/ObjectUI.py:999 flatcamGUI/ObjectUI.py:1798 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:80 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:64 +msgid "Feedrate Rapids" +msgstr "Rápidos de avance" + +#: flatcamGUI/ObjectUI.py:1001 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:82 +msgid "" +"Tool speed while drilling\n" +"(in units per minute).\n" +"This is for the rapid move G00.\n" +"It is useful only for Marlin,\n" +"ignore for any other cases." +msgstr "" +"Velocidad de la herramienta durante la perforación\n" +"(en unidades por minuto).\n" +"Esto es para el movimiento rápido G00.\n" +"Es útil solo para Marlin,\n" +"Ignorar para cualquier otro caso." + +#: flatcamGUI/ObjectUI.py:1021 flatcamGUI/ObjectUI.py:1818 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:82 +msgid "Re-cut" +msgstr "Recortar" + +#: flatcamGUI/ObjectUI.py:1023 flatcamGUI/ObjectUI.py:1036 +#: flatcamGUI/ObjectUI.py:1820 flatcamGUI/ObjectUI.py:1832 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:84 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:96 +msgid "" +"In order to remove possible\n" +"copper leftovers where first cut\n" +"meet with last cut, we generate an\n" +"extended cut over the first cut section." +msgstr "" +"Para eliminar posibles\n" +"sobras de cobre donde el primer corte\n" +"Nos reunimos con el último corte, generamos un\n" +"Corte extendido sobre la primera sección de corte." + +#: flatcamGUI/ObjectUI.py:1049 flatcamGUI/ObjectUI.py:1841 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:216 +#: flatcamObjects/FlatCAMExcellon.py:1332 +#: flatcamObjects/FlatCAMGeometry.py:1622 +msgid "Spindle speed" +msgstr "Eje de velocidad" + +#: flatcamGUI/ObjectUI.py:1051 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:224 +msgid "" +"Speed of the spindle\n" +"in RPM (optional)" +msgstr "" +"Velocidad del husillo\n" +"en RPM (opcional)" + +#: flatcamGUI/ObjectUI.py:1066 flatcamGUI/ObjectUI.py:1860 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:238 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:234 +msgid "" +"Pause to allow the spindle to reach its\n" +"speed before cutting." +msgstr "" +"Pausa para permitir que el husillo alcance su\n" +"Velocidad antes del corte." + +#: flatcamGUI/ObjectUI.py:1077 flatcamGUI/ObjectUI.py:1870 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:246 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:239 +msgid "Number of time units for spindle to dwell." +msgstr "Número de unidades de tiempo para que el husillo permanezca." + +#: flatcamGUI/ObjectUI.py:1087 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:46 +msgid "Offset Z" +msgstr "Offset Z" + +#: flatcamGUI/ObjectUI.py:1089 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:48 +msgid "" +"Some drill bits (the larger ones) need to drill deeper\n" +"to create the desired exit hole diameter due of the tip shape.\n" +"The value here can compensate the Cut Z parameter." +msgstr "" +"Algunas brocas (las más grandes) necesitan profundizar más\n" +"para crear el diámetro del orificio de salida deseado debido a la forma de " +"la punta.\n" +"El valor aquí puede compensar el parámetro Z de corte." + +#: flatcamGUI/ObjectUI.py:1149 flatcamGUI/ObjectUI.py:1924 +#: flatcamTools/ToolNCC.py:492 flatcamTools/ToolPaint.py:423 +msgid "Apply parameters to all tools" +msgstr "Aplicar Parám. a todas las herramientas" + +#: flatcamGUI/ObjectUI.py:1151 flatcamGUI/ObjectUI.py:1926 +#: flatcamTools/ToolNCC.py:494 flatcamTools/ToolPaint.py:425 +msgid "" +"The parameters in the current form will be applied\n" +"on all the tools from the Tool Table." +msgstr "" +"Se aplicarán los parámetros en el formulario actual\n" +"en todas las herramientas de la tabla de herramientas." + +#: flatcamGUI/ObjectUI.py:1162 flatcamGUI/ObjectUI.py:1937 +#: flatcamTools/ToolNCC.py:505 flatcamTools/ToolPaint.py:436 +msgid "Common Parameters" +msgstr "Parámetros comunes" + +#: flatcamGUI/ObjectUI.py:1164 flatcamGUI/ObjectUI.py:1939 +#: flatcamTools/ToolNCC.py:507 flatcamTools/ToolPaint.py:438 +msgid "Parameters that are common for all tools." +msgstr "Parámetros que son comunes para todas las herramientas." + +#: flatcamGUI/ObjectUI.py:1169 flatcamGUI/ObjectUI.py:1944 +msgid "Tool change Z" +msgstr "Cambio de herra. Z" + +#: flatcamGUI/ObjectUI.py:1171 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:154 +msgid "" +"Include tool-change sequence\n" +"in G-Code (Pause for tool change)." +msgstr "" +"Incluir secuencia de cambio de herramienta\n" +"en G-Code (Pausa para cambio de herramienta)." + +#: flatcamGUI/ObjectUI.py:1178 flatcamGUI/ObjectUI.py:1955 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:162 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:134 +msgid "" +"Z-axis position (height) for\n" +"tool change." +msgstr "" +"Posición del eje Z (altura) para\n" +"cambio de herramienta." + +#: flatcamGUI/ObjectUI.py:1195 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:71 +msgid "" +"Height of the tool just after start.\n" +"Delete the value if you don't need this feature." +msgstr "" +"Altura de la herramienta justo después del arranque.\n" +"Elimine el valor si no necesita esta característica." + +#: flatcamGUI/ObjectUI.py:1204 flatcamGUI/ObjectUI.py:1983 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:178 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:153 +msgid "End move Z" +msgstr "Fin del movi. Z" + +#: flatcamGUI/ObjectUI.py:1206 flatcamGUI/ObjectUI.py:1985 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:180 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:155 +msgid "" +"Height of the tool after\n" +"the last move at the end of the job." +msgstr "" +"Altura de la herramienta después de\n" +"El último movimiento al final del trabajo." + +#: flatcamGUI/ObjectUI.py:1223 flatcamGUI/ObjectUI.py:2002 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:195 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:173 +msgid "End move X,Y" +msgstr "X, Y Fin del movimiento" + +#: flatcamGUI/ObjectUI.py:1225 flatcamGUI/ObjectUI.py:2004 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:197 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:175 +msgid "" +"End move X,Y position. In format (x,y).\n" +"If no value is entered then there is no move\n" +"on X,Y plane at the end of the job." +msgstr "" +"Fin movimiento X, Y posición. En formato (x, y).\n" +"Si no se ingresa ningún valor, entonces no hay movimiento\n" +"en el plano X, Y al final del trabajo." + +#: flatcamGUI/ObjectUI.py:1235 flatcamGUI/ObjectUI.py:1878 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:96 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:105 +msgid "Probe Z depth" +msgstr "Profundidad de la sonda Z" + +#: flatcamGUI/ObjectUI.py:1237 flatcamGUI/ObjectUI.py:1880 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:98 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:107 +msgid "" +"The maximum depth that the probe is allowed\n" +"to probe. Negative value, in current units." +msgstr "" +"The maximum depth that the probe is allowed\n" +"to probe. Negative value, in current units." + +#: flatcamGUI/ObjectUI.py:1254 flatcamGUI/ObjectUI.py:1895 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:109 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:120 +msgid "Feedrate Probe" +msgstr "Sonda de avance" + +#: flatcamGUI/ObjectUI.py:1256 flatcamGUI/ObjectUI.py:1897 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:111 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:122 +msgid "The feedrate used while the probe is probing." +msgstr "La velocidad de avance utilizada mientras la sonda está sondeando." + +#: flatcamGUI/ObjectUI.py:1272 +msgid "Preprocessor E" +msgstr "Postprocesador E" + +#: flatcamGUI/ObjectUI.py:1274 +msgid "" +"The preprocessor JSON file that dictates\n" +"Gcode output for Excellon Objects." +msgstr "" +"El archivo JSON del preprocesador que dicta\n" +"Salida de Gcode para objetos Excellon." + +#: flatcamGUI/ObjectUI.py:1284 +msgid "Preprocessor G" +msgstr "Postprocesador G" + +#: flatcamGUI/ObjectUI.py:1286 +msgid "" +"The preprocessor JSON file that dictates\n" +"Gcode output for Geometry (Milling) Objects." +msgstr "" +"El archivo JSON del preprocesador que dicta\n" +"Salida de Gcode para objetos de geometría (fresado)." + +#: flatcamGUI/ObjectUI.py:1310 flatcamGUI/ObjectUI.py:2108 +msgid "" +"Add / Select at least one tool in the tool-table.\n" +"Click the # header to select all, or Ctrl + LMB\n" +"for custom selection of tools." +msgstr "" +"Agregar / Seleccionar al menos una herramienta en la tabla de herramientas.\n" +"Haga clic en el encabezado # para seleccionar todo, o Ctrl + LMB\n" +"para la selección personalizada de herramientas." + +#: flatcamGUI/ObjectUI.py:1318 flatcamGUI/ObjectUI.py:2115 +msgid "Generate CNCJob object" +msgstr "Generar objeto CNCJob" + +#: flatcamGUI/ObjectUI.py:1320 +msgid "" +"Generate the CNC Job.\n" +"If milling then an additional Geometry object will be created" +msgstr "" +"Generar el trabajo del CNC.\n" +"Si se fresa, se creará un objeto Geometry adicional" + +#: flatcamGUI/ObjectUI.py:1337 +msgid "Milling Geometry" +msgstr "Geometría de fresado" + +#: flatcamGUI/ObjectUI.py:1339 +msgid "" +"Create Geometry for milling holes.\n" +"Select from the Tools Table above the hole dias to be\n" +"milled. Use the # column to make the selection." +msgstr "" +"Crear geometría para fresar agujeros.\n" +"Seleccione de la tabla de herramientas sobre los diámetros de los agujeros " +"para\n" +"molido. Use la columna # para hacer la selección." + +#: flatcamGUI/ObjectUI.py:1347 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:296 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:45 +msgid "Diameter of the cutting tool." +msgstr "Diá. de la herramienta de corte." + +#: flatcamGUI/ObjectUI.py:1357 +msgid "Mill Drills" +msgstr "Fresar los Taladros" + +#: flatcamGUI/ObjectUI.py:1359 +msgid "" +"Create the Geometry Object\n" +"for milling DRILLS toolpaths." +msgstr "" +"Crear el objeto de geometría\n" +"para fresar trayectorias de taladros." + +#: flatcamGUI/ObjectUI.py:1377 +msgid "Mill Slots" +msgstr "Fresar las Ranuras" + +#: flatcamGUI/ObjectUI.py:1379 +msgid "" +"Create the Geometry Object\n" +"for milling SLOTS toolpaths." +msgstr "" +"Crear el objeto de geometría\n" +"para fresar recorridos de herramientas muesca." + +#: flatcamGUI/ObjectUI.py:1421 flatcamTools/ToolCutOut.py:319 +msgid "Geometry Object" +msgstr "Objeto de geometría" + +#: flatcamGUI/ObjectUI.py:1467 +msgid "" +"Tools in this Geometry object used for cutting.\n" +"The 'Offset' entry will set an offset for the cut.\n" +"'Offset' can be inside, outside, on path (none) and custom.\n" +"'Type' entry is only informative and it allow to know the \n" +"intent of using the current tool. \n" +"It can be Rough(ing), Finish(ing) or Iso(lation).\n" +"The 'Tool type'(TT) can be circular with 1 to 4 teeths(C1..C4),\n" +"ball(B), or V-Shaped(V). \n" +"When V-shaped is selected the 'Type' entry is automatically \n" +"set to Isolation, the CutZ parameter in the UI form is\n" +"grayed out and Cut Z is automatically calculated from the newly \n" +"showed UI form entries named V-Tip Dia and V-Tip Angle." +msgstr "" +"Herramientas en este objeto de geometría utilizadas para cortar.\n" +"La entrada 'Offset' establecerá un desplazamiento para el corte.\n" +"'Offset' puede estar dentro, fuera, en la ruta (ninguno) y personalizado.\n" +"La entrada 'Tipo' es solo informativa y permite conocer el\n" +"intención de usar la herramienta actual.\n" +"Puede ser Desbaste Acabado o Aislamiento.\n" +"El 'Tipo de herramienta' (TT) puede ser circular con 1 a 4 dientes (C1.." +"C4),\n" +"bola (B) o en forma de V (V).\n" +"Cuando se selecciona la forma de V, la entrada 'Tipo' es automáticamente\n" +"establecido en Aislamiento, el parámetro CutZ en el formulario de IU es\n" +"atenuado y Cut Z se calcula automáticamente a partir de la nueva\n" +"mostró entradas de formulario de IU denominadas V-Tipo Dia y V-Tipo ángulo." + +#: flatcamGUI/ObjectUI.py:1484 flatcamGUI/ObjectUI.py:2313 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:40 +msgid "Plot Object" +msgstr "Trazar objeto" + +#: flatcamGUI/ObjectUI.py:1497 flatcamGUI/ObjectUI.py:2326 +#: flatcamGUI/ObjectUI.py:2336 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:138 +#: flatcamTools/ToolCopperThieving.py:221 +msgid "Dia" +msgstr "Dia" + +#: flatcamGUI/ObjectUI.py:1497 flatcamGUI/ObjectUI.py:2326 +#: flatcamTools/ToolNCC.py:132 flatcamTools/ToolPaint.py:128 +msgid "TT" +msgstr "TT" + +#: flatcamGUI/ObjectUI.py:1504 +msgid "" +"This is the Tool Number.\n" +"When ToolChange is checked, on toolchange event this value\n" +"will be showed as a T1, T2 ... Tn" +msgstr "" +"Este es el número de herramienta.\n" +"Cuando se marca Cambio de herramienta, en el evento de cambio de herramienta " +"este valor\n" +"se mostrará como un T1, T2 ... Tn" + +#: flatcamGUI/ObjectUI.py:1515 +msgid "" +"The value for the Offset can be:\n" +"- Path -> There is no offset, the tool cut will be done through the geometry " +"line.\n" +"- In(side) -> The tool cut will follow the geometry inside. It will create a " +"'pocket'.\n" +"- Out(side) -> The tool cut will follow the geometry line on the outside." +msgstr "" +"El valor de la compensación puede ser:\n" +"- Trayectoria -> No hay desplazamiento, el corte de la herramienta se " +"realizará a través de la línea de geometría.\n" +"- En (lado) -> El corte de la herramienta seguirá la geometría interior. " +"Creará un 'bolsillo'.\n" +"- Fuera (lado) -> El corte de la herramienta seguirá la línea de geometría " +"en el exterior." + +#: flatcamGUI/ObjectUI.py:1522 +msgid "" +"The (Operation) Type has only informative value. Usually the UI form " +"values \n" +"are choose based on the operation type and this will serve as a reminder.\n" +"Can be 'Roughing', 'Finishing' or 'Isolation'.\n" +"For Roughing we may choose a lower Feedrate and multiDepth cut.\n" +"For Finishing we may choose a higher Feedrate, without multiDepth.\n" +"For Isolation we need a lower Feedrate as it use a milling bit with a fine " +"tip." +msgstr "" +"El tipo (Operación) solo tiene un valor informativo. Por lo general, los " +"valores de formulario de IU\n" +"se eligen en función del tipo de operación y esto servirá como " +"recordatorio.\n" +"Puede ser 'Desbaste', 'Acabado' o 'Aislamiento'.\n" +"Para desbaste podemos elegir un avance más bajo y un corte de profundidad " +"múltiple.\n" +"Para finalizar podemos elegir una velocidad de avance más alta, sin " +"profundidad múltiple.\n" +"Para el aislamiento, necesitamos un avance más bajo, ya que utiliza una " +"broca de fresado con una punta fina." + +#: flatcamGUI/ObjectUI.py:1531 +msgid "" +"The Tool Type (TT) can be:\n" +"- Circular with 1 ... 4 teeth -> it is informative only. Being circular the " +"cut width in material\n" +"is exactly the tool diameter.\n" +"- Ball -> informative only and make reference to the Ball type endmill.\n" +"- V-Shape -> it will disable Z-Cut parameter in the UI form and enable two " +"additional UI form\n" +"fields: V-Tip Dia and V-Tip Angle. Adjusting those two values will adjust " +"the Z-Cut parameter such\n" +"as the cut width into material will be equal with the value in the Tool " +"Diameter column of this table.\n" +"Choosing the V-Shape Tool Type automatically will select the Operation Type " +"as Isolation." +msgstr "" +"El tipo de herramienta (TT) puede ser:\n" +"- Circular con 1 ... 4 dientes -> es solo informativo. Siendo circular el " +"ancho de corte en material\n" +"es exactamente el diámetro de la herramienta.\n" +"- Bola -> solo informativo y hacer referencia a la fresa de extremo de " +"bola.\n" +"- Forma de V -> deshabilitará el parámetro de corte Z de la forma de IU y " +"habilitará dos formas adicionales de IU\n" +"campos: V-Tip Dia y V-Tip ángulo. El ajuste de esos dos valores ajustará el " +"parámetro Z-Cut, como\n" +"ya que el ancho de corte en el material será igual al valor en la columna " +"Diámetro de herramienta de esta tabla.\n" +"Elegir el tipo de herramienta en forma de V automáticamente seleccionará el " +"tipo de operación como aislamiento." + +#: flatcamGUI/ObjectUI.py:1543 +msgid "" +"Plot column. It is visible only for MultiGeo geometries, meaning geometries " +"that holds the geometry\n" +"data into the tools. For those geometries, deleting the tool will delete the " +"geometry data also,\n" +"so be WARNED. From the checkboxes on each row it can be enabled/disabled the " +"plot on canvas\n" +"for the corresponding tool." +msgstr "" +"Trazar columna. Es visible solo para geometrías múltiples-Geo, es decir, " +"geometrías que contienen la geometría\n" +"datos en las herramientas. Para esas geometrías, al eliminar la herramienta " +"también se eliminarán los datos de geometría,\n" +"así que ten cuidado. Desde las casillas de verificación en cada fila se " +"puede habilitar / deshabilitar la trama en el lienzo\n" +"para la herramienta correspondiente." + +#: flatcamGUI/ObjectUI.py:1561 +msgid "" +"The value to offset the cut when \n" +"the Offset type selected is 'Offset'.\n" +"The value can be positive for 'outside'\n" +"cut and negative for 'inside' cut." +msgstr "" +"El valor para compensar el corte cuando\n" +"El tipo de compensación seleccionado es 'Offset'.\n" +"El valor puede ser positivo para 'afuera'\n" +"corte y negativo para corte 'interior'." + +#: flatcamGUI/ObjectUI.py:1580 flatcamTools/ToolNCC.py:209 +#: flatcamTools/ToolNCC.py:923 flatcamTools/ToolPaint.py:192 +#: flatcamTools/ToolPaint.py:849 flatcamTools/ToolSolderPaste.py:559 +msgid "New Tool" +msgstr "Nueva Herram" + +#: flatcamGUI/ObjectUI.py:1597 +msgid "" +"Add a new tool to the Tool Table\n" +"with the specified diameter." +msgstr "" +"Agregar una nueva herramienta a la tabla de herramientas\n" +"con el diámetro especificado." + +#: flatcamGUI/ObjectUI.py:1602 flatcamTools/ToolNCC.py:300 +#: flatcamTools/ToolNCC.py:634 flatcamTools/ToolPaint.py:283 +#: flatcamTools/ToolPaint.py:679 +msgid "Add from DB" +msgstr "Agregar desde DB" + +#: flatcamGUI/ObjectUI.py:1604 flatcamTools/ToolNCC.py:302 +#: flatcamTools/ToolPaint.py:285 +msgid "" +"Add a new tool to the Tool Table\n" +"from the Tool DataBase." +msgstr "" +"Agregar una nueva herramienta a la tabla de herramientas\n" +"de la base de datos de herramientas." + +#: flatcamGUI/ObjectUI.py:1619 +msgid "" +"Copy a selection of tools in the Tool Table\n" +"by first selecting a row in the Tool Table." +msgstr "" +"Copie una selección de herramientas en la tabla de herramientas\n" +"seleccionando primero una fila en la Tabla de herramientas." + +#: flatcamGUI/ObjectUI.py:1625 +msgid "" +"Delete a selection of tools in the Tool Table\n" +"by first selecting a row in the Tool Table." +msgstr "" +"Eliminar una selección de herramientas en la tabla de herramientas\n" +"seleccionando primero una fila en la Tabla de herramientas." + +#: flatcamGUI/ObjectUI.py:1752 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:103 +msgid "" +"Height of the tool when\n" +"moving without cutting." +msgstr "" +"Altura de la herramienta cuando\n" +"Moviéndose sin cortar." + +#: flatcamGUI/ObjectUI.py:1785 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:202 +msgid "" +"Cutting speed in the XY\n" +"plane in units per minute.\n" +"It is called also Plunge." +msgstr "" +"Velocidad de corte en el XY.\n" +"Plano en unidades por minuto.\n" +"Se llama también Plunge." + +#: flatcamGUI/ObjectUI.py:1800 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:66 +msgid "" +"Cutting speed in the XY plane\n" +"(in units per minute).\n" +"This is for the rapid move G00.\n" +"It is useful only for Marlin,\n" +"ignore for any other cases." +msgstr "" +"Velocidad de corte en el plano XY.\n" +"(en unidades por minuto).\n" +"Esto es para el movimiento rápido G00.\n" +"Es útil solo para Marlin,\n" +"Ignorar para cualquier otro caso." + +#: flatcamGUI/ObjectUI.py:1844 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:219 +msgid "" +"Speed of the spindle in RPM (optional).\n" +"If LASER preprocessor is used,\n" +"this value is the power of laser." +msgstr "" +"Velocidad del husillo en RPM (opcional).\n" +"Si se utiliza el postprocesador LÁSER,\n" +"Este valor es el poder del láser." + +#: flatcamGUI/ObjectUI.py:1947 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:124 +msgid "" +"Include tool-change sequence\n" +"in the Machine Code (Pause for tool change)." +msgstr "" +"Incluir secuencia de cambio de herramienta\n" +"en el código de máquina (pausa para cambio de herramienta)." + +#: flatcamGUI/ObjectUI.py:2016 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:256 +msgid "" +"The Preprocessor file that dictates\n" +"the Machine Code (like GCode, RML, HPGL) output." +msgstr "" +"El archivo de postprocesador que dicta\n" +"la salida del código de máquina (como GCode, RML, HPGL)." + +#: flatcamGUI/ObjectUI.py:2028 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:201 +msgid "Exclusion areas" +msgstr "Zonas de exclusión" + +#: flatcamGUI/ObjectUI.py:2031 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:204 +msgid "" +"Include exclusion areas.\n" +"In those areas the travel of the tools\n" +"is forbidden." +msgstr "" +"Incluir áreas de exclusión.\n" +"En esas áreas el recorrido de las herramientas.\n" +"está prohibido." + +#: flatcamGUI/ObjectUI.py:2053 +msgid "Add area" +msgstr "Agregar áreaAñadir Pista" + +#: flatcamGUI/ObjectUI.py:2054 +msgid "Add an Exclusion Area." +msgstr "Agregar un área de exclusión." + +#: flatcamGUI/ObjectUI.py:2058 +msgid "Clear areas" +msgstr "Áreas despejadasDespeje" + +#: flatcamGUI/ObjectUI.py:2059 +msgid "Delete all exclusion areas." +msgstr "Eliminar todas las áreas de exclusión." + +#: flatcamGUI/ObjectUI.py:2068 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:212 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:322 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:286 +#: flatcamTools/ToolNCC.py:578 flatcamTools/ToolPaint.py:522 +msgid "Shape" +msgstr "Forma" + +#: flatcamGUI/ObjectUI.py:2070 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:214 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:324 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:288 +#: flatcamTools/ToolNCC.py:580 flatcamTools/ToolPaint.py:524 +msgid "The kind of selection shape used for area selection." +msgstr "El tipo de forma de selección utilizada para la selección de área." + +#: flatcamGUI/ObjectUI.py:2080 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:224 +msgid "Strategy" +msgstr "Estrategia" + +#: flatcamGUI/ObjectUI.py:2081 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:225 +msgid "" +"The strategy followed when encountering an exclusion area.\n" +"Can be:\n" +"- Over -> when encountering the area, the tool will go to a set height\n" +"- Around -> will avoid the exclusion area by going around the area" +msgstr "" +"La estrategia seguida al encontrar un área de exclusión.\n" +"Puede ser:\n" +"- Sobre -> al encontrar el área, la herramienta irá a una altura " +"establecida\n" +"- Alrededor -> evitará el área de exclusión recorriendo el área" + +#: flatcamGUI/ObjectUI.py:2085 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:229 +msgid "Over" +msgstr "Sobre" + +#: flatcamGUI/ObjectUI.py:2086 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:230 +msgid "Around" +msgstr "AlrededorRedondo" + +#: flatcamGUI/ObjectUI.py:2092 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:236 +msgid "Over Z" +msgstr "Sobre ZSuperposición" + +#: flatcamGUI/ObjectUI.py:2093 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:237 +msgid "" +"The height Z to which the tool will rise in order to avoid\n" +"an interdiction area." +msgstr "" +"La altura Z a la que se elevará la herramienta para evitar\n" +"Un área de interdicción." + +#: flatcamGUI/ObjectUI.py:2117 +msgid "Generate the CNC Job object." +msgstr "Genere el objeto de trabajo CNC." + +#: flatcamGUI/ObjectUI.py:2134 +msgid "Launch Paint Tool in Tools Tab." +msgstr "Inicie la herramienta Pintura en la pestaña Herramientas." + +#: flatcamGUI/ObjectUI.py:2142 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:35 +msgid "" +"Creates tool paths to cover the\n" +"whole area of a polygon (remove\n" +"all copper). You will be asked\n" +"to click on the desired polygon." +msgstr "" +"Crea recorridos de herramientas para cubrir la\n" +"toda el área de un polígono (eliminar\n" +"todo el cobre). Te harán preguntas\n" +"Para hacer clic en el polígono deseado." + +#: flatcamGUI/ObjectUI.py:2197 +msgid "CNC Job Object" +msgstr "Objeto de trabajo CNC" + +#: flatcamGUI/ObjectUI.py:2208 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:45 +msgid "Plot kind" +msgstr "Tipo de trazado" + +#: flatcamGUI/ObjectUI.py:2211 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:47 +msgid "" +"This selects the kind of geometries on the canvas to plot.\n" +"Those can be either of type 'Travel' which means the moves\n" +"above the work piece or it can be of type 'Cut',\n" +"which means the moves that cut into the material." +msgstr "" +"Esto selecciona el tipo de geometrías en el lienzo para trazar.\n" +"Esos pueden ser de tipo 'Viajes' lo que significa que los movimientos\n" +"Por encima de la pieza de trabajo o puede ser de tipo 'Corte',\n" +"Lo que significa los movimientos que cortan en el material." + +#: flatcamGUI/ObjectUI.py:2220 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:55 +msgid "Travel" +msgstr "Viajar" + +#: flatcamGUI/ObjectUI.py:2224 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:64 +msgid "Display Annotation" +msgstr "Mostrar anotación" + +#: flatcamGUI/ObjectUI.py:2226 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:66 +msgid "" +"This selects if to display text annotation on the plot.\n" +"When checked it will display numbers in order for each end\n" +"of a travel line." +msgstr "" +"Esto selecciona si mostrar la anotación de texto en el gráfico.\n" +"Cuando está marcado, mostrará números en orden para cada final.\n" +"de una linea de viaje." + +#: flatcamGUI/ObjectUI.py:2241 +msgid "Travelled dist." +msgstr "Dist. recorrida" + +#: flatcamGUI/ObjectUI.py:2243 flatcamGUI/ObjectUI.py:2248 +msgid "" +"This is the total travelled distance on X-Y plane.\n" +"In current units." +msgstr "" +"Esta es la distancia total recorrida en el plano X-Y.\n" +"En unidades actuales." + +#: flatcamGUI/ObjectUI.py:2253 +msgid "Estimated time" +msgstr "Duración estimada" + +#: flatcamGUI/ObjectUI.py:2255 flatcamGUI/ObjectUI.py:2260 +msgid "" +"This is the estimated time to do the routing/drilling,\n" +"without the time spent in ToolChange events." +msgstr "" +"Este es el tiempo estimado para hacer el enrutamiento / perforación,\n" +"sin el tiempo dedicado a los eventos de cambio de herramienta." + +#: flatcamGUI/ObjectUI.py:2295 +msgid "CNC Tools Table" +msgstr "Tabla de herramientas CNC" + +#: flatcamGUI/ObjectUI.py:2298 +msgid "" +"Tools in this CNCJob object used for cutting.\n" +"The tool diameter is used for plotting on canvas.\n" +"The 'Offset' entry will set an offset for the cut.\n" +"'Offset' can be inside, outside, on path (none) and custom.\n" +"'Type' entry is only informative and it allow to know the \n" +"intent of using the current tool. \n" +"It can be Rough(ing), Finish(ing) or Iso(lation).\n" +"The 'Tool type'(TT) can be circular with 1 to 4 teeths(C1..C4),\n" +"ball(B), or V-Shaped(V)." +msgstr "" +"Herramientas en este objeto CNCJob utilizado para cortar.\n" +"El diámetro de la herramienta se utiliza para trazar en el lienzo.\n" +"La entrada 'Offset' establecerá un desplazamiento para el corte.\n" +"'Offset' puede estar dentro, fuera, en la ruta (ninguno) y personalizado.\n" +"La entrada 'Tipo' es solo informativa y permite conocer el\n" +"intención de usar la herramienta actual.\n" +"Puede ser áspero, acabado o aislamiento.\n" +"El 'Tipo de herramienta' (TT) puede ser circular con 1 a 4 dientes (C1.." +"C4),\n" +"bola (B) o en forma de V (V)." + +#: flatcamGUI/ObjectUI.py:2326 flatcamGUI/ObjectUI.py:2337 +msgid "P" +msgstr "P" + +#: flatcamGUI/ObjectUI.py:2347 +msgid "Update Plot" +msgstr "Actualizar Trama" + +#: flatcamGUI/ObjectUI.py:2349 +msgid "Update the plot." +msgstr "Actualiza la trama." + +#: flatcamGUI/ObjectUI.py:2356 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:30 +msgid "Export CNC Code" +msgstr "Exportar código CNC" + +#: flatcamGUI/ObjectUI.py:2358 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:32 +#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:33 +msgid "" +"Export and save G-Code to\n" +"make this object to a file." +msgstr "" +"Exportar y guardar código G a\n" +"Hacer este objeto a un archivo." + +#: flatcamGUI/ObjectUI.py:2364 +msgid "Prepend to CNC Code" +msgstr "Anteponer al código del CNC" + +#: flatcamGUI/ObjectUI.py:2366 flatcamGUI/ObjectUI.py:2373 +#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:49 +msgid "" +"Type here any G-Code commands you would\n" +"like to add at the beginning of the G-Code file." +msgstr "" +"Escribe aquí cualquier comando de G-Code que quieras\n" +"Me gusta agregar al principio del archivo G-Code." + +#: flatcamGUI/ObjectUI.py:2379 +msgid "Append to CNC Code" +msgstr "Añadir al código CNC" + +#: flatcamGUI/ObjectUI.py:2381 flatcamGUI/ObjectUI.py:2389 +#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:65 +msgid "" +"Type here any G-Code commands you would\n" +"like to append to the generated file.\n" +"I.e.: M2 (End of program)" +msgstr "" +"Escribe aquí cualquier comando de código G que quieras\n" +"Me gusta adjuntar al archivo generado.\n" +"Es decir: M2 (Fin del programa)" + +#: flatcamGUI/ObjectUI.py:2403 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:38 +msgid "Toolchange G-Code" +msgstr "Cambio de herra. G-Code" + +#: flatcamGUI/ObjectUI.py:2406 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:41 +msgid "" +"Type here any G-Code commands you would\n" +"like to be executed when Toolchange event is encountered.\n" +"This will constitute a Custom Toolchange GCode,\n" +"or a Toolchange Macro.\n" +"The FlatCAM variables are surrounded by '%' symbol.\n" +"\n" +"WARNING: it can be used only with a preprocessor file\n" +"that has 'toolchange_custom' in it's name and this is built\n" +"having as template the 'Toolchange Custom' posprocessor file." +msgstr "" +"Escriba aquí cualquier comando de código G que desee\n" +"desea ejecutarse cuando se encuentra un evento de cambio de herramienta.\n" +"Esto constituirá un cambio de herramienta personalizado GCode,\n" +"o una macro de cambio de herramienta.\n" +"Las variables de FlatCAM están rodeadas por el símbolo '%'.\n" +"\n" +"ADVERTENCIA: solo se puede usar con un archivo de postprocesador\n" +"que tiene 'toolchange_custom' en su nombre y esto está construido\n" +"teniendo como plantilla el archivo posprocesador 'Toolchange Custom'." + +#: flatcamGUI/ObjectUI.py:2421 +msgid "" +"Type here any G-Code commands you would\n" +"like to be executed when Toolchange event is encountered.\n" +"This will constitute a Custom Toolchange GCode,\n" +"or a Toolchange Macro.\n" +"The FlatCAM variables are surrounded by '%' symbol.\n" +"WARNING: it can be used only with a preprocessor file\n" +"that has 'toolchange_custom' in it's name." +msgstr "" +"Escriba aquí cualquier comando de código G que desee\n" +"desea ejecutarse cuando se encuentra el evento Toolchange.\n" +"Esto constituirá un GCode de Custom Toolchange,\n" +"o una macro de cambio de herramienta.\n" +"Las variables de FlatCAM están rodeadas por el símbolo '%'.\n" +"ADVERTENCIA: solo se puede usar con un archivo de preprocesador\n" +"que tiene 'toolchange_custom' en su nombre." + +#: flatcamGUI/ObjectUI.py:2436 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:80 +msgid "Use Toolchange Macro" +msgstr "Util. la herra. de cambio de macro" + +#: flatcamGUI/ObjectUI.py:2438 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:82 +msgid "" +"Check this box if you want to use\n" +"a Custom Toolchange GCode (macro)." +msgstr "" +"Marque esta casilla si desea utilizar\n" +"una herramienta personalizada para cambiar GCode (macro)." + +#: flatcamGUI/ObjectUI.py:2446 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:94 +msgid "" +"A list of the FlatCAM variables that can be used\n" +"in the Toolchange event.\n" +"They have to be surrounded by the '%' symbol" +msgstr "" +"Una lista de las variables FlatCAM que pueden usarse\n" +"en el evento Cambio de herramienta.\n" +"Deben estar rodeados por el símbolo '%'" + +#: flatcamGUI/ObjectUI.py:2453 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:101 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:30 +#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:31 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:31 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:37 +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:36 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:36 +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:36 +#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:31 +#: flatcamGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:31 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:36 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:31 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:30 +#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:31 +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:32 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:31 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:31 +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:31 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:31 +#: flatcamGUI/preferences/tools/ToolsSubPrefGroupUI.py:31 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:31 +#: flatcamTools/ToolCopperThieving.py:89 flatcamTools/ToolFiducials.py:149 +#: flatcamTools/ToolInvertGerber.py:82 +msgid "Parameters" +msgstr "Parámetros" + +#: flatcamGUI/ObjectUI.py:2456 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:106 +msgid "FlatCAM CNC parameters" +msgstr "Parámetros de FlatCAM CNC" + +#: flatcamGUI/ObjectUI.py:2457 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:111 +msgid "tool number" +msgstr "número de herramienta" + +#: flatcamGUI/ObjectUI.py:2458 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:112 +msgid "tool diameter" +msgstr "diámetro de herramienta" + +#: flatcamGUI/ObjectUI.py:2459 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:113 +msgid "for Excellon, total number of drills" +msgstr "para Excellon, núm. total de taladros" + +#: flatcamGUI/ObjectUI.py:2461 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:115 +msgid "X coord for Toolchange" +msgstr "Coord. X para Cambio de Herramienta" + +#: flatcamGUI/ObjectUI.py:2462 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:116 +msgid "Y coord for Toolchange" +msgstr "Coord. Y para Cambio de Herramienta" + +#: flatcamGUI/ObjectUI.py:2463 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:118 +msgid "Z coord for Toolchange" +msgstr "Coord Z para cambio de herramientas" + +#: flatcamGUI/ObjectUI.py:2464 +msgid "depth where to cut" +msgstr "profundidad donde cortar" + +#: flatcamGUI/ObjectUI.py:2465 +msgid "height where to travel" +msgstr "altura donde viajar" + +#: flatcamGUI/ObjectUI.py:2466 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:121 +msgid "the step value for multidepth cut" +msgstr "el valor del paso para corte de profundidad múltiple" + +#: flatcamGUI/ObjectUI.py:2468 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:123 +msgid "the value for the spindle speed" +msgstr "el valor de la velocidad del husillo" + +#: flatcamGUI/ObjectUI.py:2470 +msgid "time to dwell to allow the spindle to reach it's set RPM" +msgstr "" +"tiempo de espera para permitir que el husillo alcance su RPM establecido" + +#: flatcamGUI/ObjectUI.py:2486 +msgid "View CNC Code" +msgstr "Ver código CNC" + +#: flatcamGUI/ObjectUI.py:2488 +msgid "" +"Opens TAB to view/modify/print G-Code\n" +"file." +msgstr "" +"Abre la pestaña para ver / modificar / imprimir el código G\n" +"expediente." + +#: flatcamGUI/ObjectUI.py:2493 +msgid "Save CNC Code" +msgstr "Guardar código CNC" + +#: flatcamGUI/ObjectUI.py:2495 +msgid "" +"Opens dialog to save G-Code\n" +"file." +msgstr "" +"Abre el diálogo para guardar el código G\n" +"expediente." + +#: flatcamGUI/ObjectUI.py:2529 +msgid "Script Object" +msgstr "Objeto de script" + +#: flatcamGUI/ObjectUI.py:2549 flatcamGUI/ObjectUI.py:2623 +msgid "Auto Completer" +msgstr "Autocompletador" + +#: flatcamGUI/ObjectUI.py:2551 +msgid "This selects if the auto completer is enabled in the Script Editor." +msgstr "" +"Esto selecciona si el autocompletador está habilitado en el Editor de " +"secuencias de comandos." + +#: flatcamGUI/ObjectUI.py:2596 +msgid "Document Object" +msgstr "Objeto de Documento" + +#: flatcamGUI/ObjectUI.py:2625 +msgid "This selects if the auto completer is enabled in the Document Editor." +msgstr "" +"Esto selecciona si el autocompletador está habilitado en el Editor de " +"Documentos." + +#: flatcamGUI/ObjectUI.py:2643 +msgid "Font Type" +msgstr "Tipo de Fuente" + +#: flatcamGUI/ObjectUI.py:2660 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:197 +msgid "Font Size" +msgstr "Tamaño de Fuente" + +#: flatcamGUI/ObjectUI.py:2696 +msgid "Alignment" +msgstr "Alineación" + +#: flatcamGUI/ObjectUI.py:2701 +msgid "Align Left" +msgstr "Alinear a la izquierda" + +#: flatcamGUI/ObjectUI.py:2711 +msgid "Align Right" +msgstr "Alinear a la derecha" + +#: flatcamGUI/ObjectUI.py:2716 +msgid "Justify" +msgstr "Alinear Justificar" + +#: flatcamGUI/ObjectUI.py:2723 +msgid "Font Color" +msgstr "Color de Fuente" + +#: flatcamGUI/ObjectUI.py:2725 +msgid "Set the font color for the selected text" +msgstr "Establecer el color de fuente para el texto seleccionado" + +#: flatcamGUI/ObjectUI.py:2739 +msgid "Selection Color" +msgstr "Color de seleccion" + +#: flatcamGUI/ObjectUI.py:2741 +msgid "Set the selection color when doing text selection." +msgstr "Establezca el color de selección al hacer la selección de texto." + +#: flatcamGUI/ObjectUI.py:2755 +msgid "Tab Size" +msgstr "Tamaño de Pestaña" + +#: flatcamGUI/ObjectUI.py:2757 +msgid "Set the tab size. In pixels. Default value is 80 pixels." +msgstr "" +"Establece el tamaño de la pestaña. En píxeles El valor predeterminado es 80 " +"píxeles." + +#: flatcamGUI/PlotCanvasLegacy.py:1299 +msgid "" +"Could not annotate due of a difference between the number of text elements " +"and the number of text positions." +msgstr "" +"No se pudo anotar debido a una diferencia entre el número de elementos de " +"texto y el número de posiciones de texto." + +#: flatcamGUI/preferences/PreferencesUIManager.py:911 +msgid "Preferences applied." +msgstr "Preferencias aplicadas." + +#: flatcamGUI/preferences/PreferencesUIManager.py:975 +msgid "Preferences closed without saving." +msgstr "Preferencias cerradas sin guardar." + +#: flatcamGUI/preferences/PreferencesUIManager.py:987 +msgid "Preferences default values are restored." +msgstr "Se restauran los valores predeterminados de las preferencias." + +#: flatcamGUI/preferences/PreferencesUIManager.py:1022 +#: flatcamGUI/preferences/PreferencesUIManager.py:1131 +msgid "Preferences saved." +msgstr "Preferencias guardadas." + +#: flatcamGUI/preferences/PreferencesUIManager.py:1072 +msgid "Preferences edited but not saved." +msgstr "Preferencias editadas pero no guardadas." + +#: flatcamGUI/preferences/PreferencesUIManager.py:1117 +msgid "" +"One or more values are changed.\n" +"Do you want to save the Preferences?" +msgstr "" +"Uno o más valores son cambiados.\n" +"¿Quieres guardar las preferencias?" + +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:27 +msgid "CNC Job Adv. Options" +msgstr "CNCJob Adv. Opciones" + +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:64 +msgid "" +"Type here any G-Code commands you would like to be executed when Toolchange " +"event is encountered.\n" +"This will constitute a Custom Toolchange GCode, or a Toolchange Macro.\n" +"The FlatCAM variables are surrounded by '%' symbol.\n" +"WARNING: it can be used only with a preprocessor file that has " +"'toolchange_custom' in it's name." +msgstr "" +"Escriba aquí los comandos de G-Code que desea ejecutar cuando se encuentre " +"el evento Toolchange.\n" +"Esto constituirá un GCode de Custom Toolchange o una Macro de Toolchange.\n" +"Las variables de FlatCAM están rodeadas por el símbolo '%'.\n" +"ADVERTENCIA: solo se puede usar con un archivo de preprocesador que tenga " +"'toolchange_custom' en su nombre." + +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:119 +msgid "Z depth for the cut" +msgstr "Profundidad Z para el corte" + +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:120 +msgid "Z height for travel" +msgstr "Altura Z para viajar" + +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:126 +msgid "dwelltime = time to dwell to allow the spindle to reach it's set RPM" +msgstr "" +"dwelltime = tiempo de espera para permitir que el husillo alcance su RPM " +"establecido" + +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:145 +msgid "Annotation Size" +msgstr "Tamaño de la anotación" + +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:147 +msgid "The font size of the annotation text. In pixels." +msgstr "El tamaño de fuente del texto de anotación. En píxeles." + +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:157 +msgid "Annotation Color" +msgstr "Color de anotación" + +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:159 +msgid "Set the font color for the annotation texts." +msgstr "Establecer el color de fuente para los textos de anotación." + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:26 +msgid "CNC Job General" +msgstr "CNC trabajo general" + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:77 +#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:47 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:59 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:45 +msgid "Circle Steps" +msgstr "Pasos del círculo" + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:79 +msgid "" +"The number of circle steps for GCode \n" +"circle and arc shapes linear approximation." +msgstr "" +"El número de pasos de círculo para GCode \n" +"Círculo y arcos de aproximación lineal." + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:88 +msgid "Travel dia" +msgstr "Dia de Viaje" + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:90 +msgid "" +"The width of the travel lines to be\n" +"rendered in the plot." +msgstr "" +"El ancho de las líneas de viaje a ser\n" +"prestados en la trama." + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:103 +msgid "G-code Decimals" +msgstr "Decimales del código G" + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:106 +#: flatcamTools/ToolFiducials.py:74 +msgid "Coordinates" +msgstr "Coordenadas" + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:108 +msgid "" +"The number of decimals to be used for \n" +"the X, Y, Z coordinates in CNC code (GCODE, etc.)" +msgstr "" +"El número de decimales a utilizar para\n" +"Las coordenadas X, Y, Z en código CNC (GCODE, etc.)" + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:119 +#: flatcamTools/ToolProperties.py:519 +msgid "Feedrate" +msgstr "Avance" + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:121 +msgid "" +"The number of decimals to be used for \n" +"the Feedrate parameter in CNC code (GCODE, etc.)" +msgstr "" +"El número de decimales a utilizar para\n" +"El parámetro de avance en código CNC (GCODE, etc.)" + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:132 +msgid "Coordinates type" +msgstr "Tipo de coordenadas" + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:134 +msgid "" +"The type of coordinates to be used in Gcode.\n" +"Can be:\n" +"- Absolute G90 -> the reference is the origin x=0, y=0\n" +"- Incremental G91 -> the reference is the previous position" +msgstr "" +"El tipo de coordenadas que se utilizarán en Gcode.\n" +"Puede ser:\n" +"- G90 absoluto -> la referencia es el origen x = 0, y = 0\n" +"- Incremental G91 -> la referencia es la posición anterior" + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:140 +msgid "Absolute G90" +msgstr "Absoluto G90" + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:141 +msgid "Incremental G91" +msgstr "G91 incremental" + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:151 +msgid "Force Windows style line-ending" +msgstr "Forzar el final de línea al estilo de Windows" + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:153 +msgid "" +"When checked will force a Windows style line-ending\n" +"(\\r\\n) on non-Windows OS's." +msgstr "" +"Cuando está marcado, forzará un final de línea de estilo Windows\n" +"(\\r \\n) en sistemas operativos que no sean de Windows." + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:165 +msgid "Travel Line Color" +msgstr "Color de Línea de Viaje" + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:169 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:235 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:262 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:154 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:220 +#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:84 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:153 +#: flatcamTools/ToolRulesCheck.py:186 +msgid "Outline" +msgstr "Contorno" + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:171 +msgid "Set the travel line color for plotted objects." +msgstr "Establezca el color de la línea de viaje para los objetos trazados." + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:186 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:252 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:279 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:170 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:237 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:170 +msgid "Fill" +msgstr "Llenado" + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:188 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:254 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:281 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:172 +msgid "" +"Set the fill color for plotted objects.\n" +"First 6 digits are the color and the last 2\n" +"digits are for alpha (transparency) level." +msgstr "" +"Establecer el color de relleno para los objetos trazados.\n" +"Los primeros 6 dígitos son el color y los 2 últimos.\n" +"Los dígitos son para el nivel alfa (transparencia)." + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:205 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:298 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:190 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:257 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:189 +msgid "Alpha" +msgstr "Alfa" + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:207 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:300 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:191 +msgid "Set the fill transparency for plotted objects." +msgstr "Establecer la transparencia de relleno para los objetos trazados." + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:231 +msgid "CNCJob Object Color" +msgstr "Color de objeto CNCJob" + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:237 +msgid "Set the color for plotted objects." +msgstr "Establecer el color para los objetos trazados." + +#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:27 +msgid "CNC Job Options" +msgstr "Opciones de trabajo CNC" + +#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:31 +msgid "Export G-Code" +msgstr "Exportar G-Code" + +#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:47 +msgid "Prepend to G-Code" +msgstr "Prefijo al código G" + +#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:56 +msgid "" +"Type here any G-Code commands you would like to add at the beginning of the " +"G-Code file." +msgstr "" +"Escriba aquí los comandos de G-Code que le gustaría agregar al comienzo del " +"archivo de G-Code." + +#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:63 +msgid "Append to G-Code" +msgstr "Adjuntar al código G" + +#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:73 +msgid "" +"Type here any G-Code commands you would like to append to the generated " +"file.\n" +"I.e.: M2 (End of program)" +msgstr "" +"Escriba aquí los comandos de G-Code que le gustaría agregar al archivo " +"generado.\n" +"Por ejemplo: M2 (Fin del programa)" + +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:27 +msgid "Excellon Adv. Options" +msgstr "Excellon Adv. Opciones" + +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:34 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:33 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:31 +msgid "Advanced Options" +msgstr "Opciones avanzadas" + +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:36 +msgid "" +"A list of Excellon advanced parameters.\n" +"Those parameters are available only for\n" +"Advanced App. Level." +msgstr "" +"Una lista de los parámetros avanzados de Excellon.\n" +"Esos parámetros están disponibles sólo para\n" +"Aplicación avanzada Nivel." + +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:59 +msgid "Toolchange X,Y" +msgstr "Cambio de herra X, Y" + +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:61 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:47 +msgid "Toolchange X,Y position." +msgstr "Cambio de herra X, posición Y." + +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:121 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:134 +msgid "Spindle direction" +msgstr "Dirección del motor" + +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:123 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:136 +msgid "" +"This sets the direction that the spindle is rotating.\n" +"It can be either:\n" +"- CW = clockwise or\n" +"- CCW = counter clockwise" +msgstr "" +"Esto establece la dirección en que gira el husillo.\n" +"Puede ser:\n" +"- CW = en el sentido de las agujas del reloj o\n" +"- CCW = a la izquierda" + +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:134 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:148 +msgid "Fast Plunge" +msgstr "Salto rápido" + +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:136 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:150 +msgid "" +"By checking this, the vertical move from\n" +"Z_Toolchange to Z_move is done with G0,\n" +"meaning the fastest speed available.\n" +"WARNING: the move is done at Toolchange X,Y coords." +msgstr "" +"Al comprobar esto, el movimiento vertical de\n" +"Z_Toolchange a Z_move se hace con G0,\n" +"es decir, la velocidad más rápida disponible.\n" +"ADVERTENCIA: el movimiento se realiza en Toolchange X, Y coords." + +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:143 +msgid "Fast Retract" +msgstr "Retracción rápida" + +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:145 +msgid "" +"Exit hole strategy.\n" +" - When uncheked, while exiting the drilled hole the drill bit\n" +"will travel slow, with set feedrate (G1), up to zero depth and then\n" +"travel as fast as possible (G0) to the Z Move (travel height).\n" +" - When checked the travel from Z cut (cut depth) to Z_move\n" +"(travel height) is done as fast as possible (G0) in one move." +msgstr "" +"Estrategia de salida del agujero.\n" +"  - Cuando no esté enganchado, al salir del orificio perforado, la broca\n" +"viajará lento, con velocidad de avance establecida (G1), hasta una " +"profundidad de cero y luego\n" +"viaje lo más rápido posible (G0) al Z Move (altura de desplazamiento).\n" +"  - Cuando se verifica el recorrido desde Z corte (profundidad de corte) a " +"Z_move\n" +"(altura de recorrido) se realiza lo más rápido posible (G0) en un movimiento." + +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:32 +msgid "A list of Excellon Editor parameters." +msgstr "Una lista de los parámetros de Excellon Editor." + +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:40 +#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:41 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:41 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:194 +msgid "Selection limit" +msgstr "Límite de selección" + +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:42 +msgid "" +"Set the number of selected Excellon geometry\n" +"items above which the utility geometry\n" +"becomes just a selection rectangle.\n" +"Increases the performance when moving a\n" +"large number of geometric elements." +msgstr "" +"Establecer el número de geometría de Excellon seleccionada\n" +"elementos por encima de los cuales la geometría de utilidad\n" +"se convierte en sólo un rectángulo de selección.\n" +"Aumenta el rendimiento al mover un\n" +"Gran cantidad de elementos geométricos." + +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:55 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:117 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:123 +msgid "New Dia" +msgstr "Nuevo dia" + +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:80 +msgid "Linear Drill Array" +msgstr "Matriz de taladro lineal" + +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:84 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:232 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:120 +msgid "Linear Direction" +msgstr "Direccion lineal" + +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:126 +msgid "Circular Drill Array" +msgstr "Matriz de Taladro Circ" + +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:130 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:280 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:164 +msgid "Circular Direction" +msgstr "Dirección circular" + +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:132 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:282 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:166 +msgid "" +"Direction for circular array.\n" +"Can be CW = clockwise or CCW = counter clockwise." +msgstr "" +"Dirección para matriz circular.\n" +"Puede ser CW = en sentido horario o CCW = en sentido antihorario." + +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:143 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:293 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:177 +msgid "Circular Angle" +msgstr "Ángulo circular" + +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:196 +msgid "" +"Angle at which the slot is placed.\n" +"The precision is of max 2 decimals.\n" +"Min value is: -359.99 degrees.\n" +"Max value is: 360.00 degrees." +msgstr "" +"Ángulo en el que se coloca la ranura.\n" +"La precisión es de un máximo de 2 decimales.\n" +"El valor mínimo es: -359.99 grados.\n" +"El valor máximo es: 360.00 grados." + +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:215 +msgid "Linear Slot Array" +msgstr "Matriz Lin de Ranuras" + +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:276 +msgid "Circular Slot Array" +msgstr "Matriz Circ de Ranura" + +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:26 +msgid "Excellon Export" +msgstr "Excellon Exportar" + +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:30 +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:31 +msgid "Export Options" +msgstr "Opciones de export" + +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:32 +msgid "" +"The parameters set here are used in the file exported\n" +"when using the File -> Export -> Export Excellon menu entry." +msgstr "" +"Los parámetros establecidos aquí se utilizan en el archivo exportado.\n" +"cuando se utiliza la entrada de menú Archivo -> Exportar -> Exportar " +"Excellon." + +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:41 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:163 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:39 +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:42 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:82 +#: flatcamTools/ToolDistance.py:56 flatcamTools/ToolDistanceMin.py:50 +#: flatcamTools/ToolPcbWizard.py:127 flatcamTools/ToolProperties.py:154 +msgid "Units" +msgstr "Unidades" + +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:43 +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:49 +msgid "The units used in the Excellon file." +msgstr "Las unidades utilizadas en el archivo Excellon." + +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:46 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:87 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:173 +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:47 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:87 +#: flatcamTools/ToolCalculators.py:61 flatcamTools/ToolPcbWizard.py:125 +msgid "INCH" +msgstr "PULGADA" + +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:47 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:174 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:43 +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:48 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:88 +#: flatcamTools/ToolCalculators.py:62 flatcamTools/ToolPcbWizard.py:126 +msgid "MM" +msgstr "MM" + +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:55 +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:56 +msgid "Int/Decimals" +msgstr "Entero/Decimales" + +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:57 +msgid "" +"The NC drill files, usually named Excellon files\n" +"are files that can be found in different formats.\n" +"Here we set the format used when the provided\n" +"coordinates are not using period." +msgstr "" +"Los archivos de exploración NC, normalmente denominados archivos Excellon\n" +"Son archivos que se pueden encontrar en diferentes formatos.\n" +"Aquí configuramos el formato utilizado cuando el proporcionado\n" +"Las coordenadas no están usando el punto." + +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:69 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:95 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:124 +msgid "" +"This numbers signify the number of digits in\n" +"the whole part of Excellon coordinates." +msgstr "" +"Estos números significan el número de dígitos en\n" +"Coordina toda la parte de Excellon." + +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:82 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:108 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:137 +msgid "" +"This numbers signify the number of digits in\n" +"the decimal part of Excellon coordinates." +msgstr "" +"Estos números significan el número de dígitos en\n" +"La parte decimal de las coordenadas de Excellon." + +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:91 +msgid "Format" +msgstr "Formato" + +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:93 +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:103 +msgid "" +"Select the kind of coordinates format used.\n" +"Coordinates can be saved with decimal point or without.\n" +"When there is no decimal point, it is required to specify\n" +"the number of digits for integer part and the number of decimals.\n" +"Also it will have to be specified if LZ = leading zeros are kept\n" +"or TZ = trailing zeros are kept." +msgstr "" +"Seleccione el tipo de formato de coordenadas utilizado.\n" +"Las coordenadas se pueden guardar con punto decimal o sin.\n" +"Cuando no hay un punto decimal, se requiere especificar\n" +"el número de dígitos para la parte entera y el número de decimales.\n" +"También deberá especificarse si LZ = ceros iniciales se mantienen\n" +"o TZ = ceros finales se mantienen." + +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:100 +msgid "Decimal" +msgstr "Decimal" + +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:101 +msgid "No-Decimal" +msgstr "Sin-Decimal" + +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:114 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:145 +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:96 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:97 +msgid "Zeros" +msgstr "Ceros" + +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:117 +msgid "" +"This sets the type of Excellon zeros.\n" +"If LZ then Leading Zeros are kept and\n" +"Trailing Zeros are removed.\n" +"If TZ is checked then Trailing Zeros are kept\n" +"and Leading Zeros are removed." +msgstr "" +"Esto establece el tipo de ceros Excellon.\n" +"Si LZ entonces Leading Zeros se mantienen y\n" +"Se eliminan los ceros finales.\n" +"Si se comprueba TZ, se mantienen los ceros finales.\n" +"y Leading Zeros se eliminan." + +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:124 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:158 +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:106 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:107 +#: flatcamTools/ToolPcbWizard.py:111 +msgid "LZ" +msgstr "LZ" + +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:125 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:159 +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:107 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:108 +#: flatcamTools/ToolPcbWizard.py:112 +msgid "TZ" +msgstr "TZ" + +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:127 +msgid "" +"This sets the default type of Excellon zeros.\n" +"If LZ then Leading Zeros are kept and\n" +"Trailing Zeros are removed.\n" +"If TZ is checked then Trailing Zeros are kept\n" +"and Leading Zeros are removed." +msgstr "" +"Esto establece el tipo predeterminado de ceros Excellon.\n" +"Si LZ entonces los ceros iniciales se mantienen y\n" +"Se eliminan los ceros finales.\n" +"Si se comprueba TZ, se mantienen los ceros finales.\n" +"y se eliminan los ceros iniciales." + +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:137 +msgid "Slot type" +msgstr "Tipo de ranura" + +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:140 +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:150 +msgid "" +"This sets how the slots will be exported.\n" +"If ROUTED then the slots will be routed\n" +"using M15/M16 commands.\n" +"If DRILLED(G85) the slots will be exported\n" +"using the Drilled slot command (G85)." +msgstr "" +"Esto establece cómo se exportarán las ranuras.\n" +"Si se enruta, las ranuras se enrutarán\n" +"utilizando los comandos M15 / M16.\n" +"Si PERFORADO (G85), las ranuras se exportarán\n" +"utilizando el comando Ranura perforada (G85)." + +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:147 +msgid "Routed" +msgstr "Enrutado" + +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:148 +msgid "Drilled(G85)" +msgstr "Perforado (G85)" + +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:29 +msgid "Excellon General" +msgstr "Excellon General" + +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:62 +msgid "Excellon Format" +msgstr "Formato Excellon" + +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:64 +msgid "" +"The NC drill files, usually named Excellon files\n" +"are files that can be found in different formats.\n" +"Here we set the format used when the provided\n" +"coordinates are not using period.\n" +"\n" +"Possible presets:\n" +"\n" +"PROTEUS 3:3 MM LZ\n" +"DipTrace 5:2 MM TZ\n" +"DipTrace 4:3 MM LZ\n" +"\n" +"EAGLE 3:3 MM TZ\n" +"EAGLE 4:3 MM TZ\n" +"EAGLE 2:5 INCH TZ\n" +"EAGLE 3:5 INCH TZ\n" +"\n" +"ALTIUM 2:4 INCH LZ\n" +"Sprint Layout 2:4 INCH LZ\n" +"KiCAD 3:5 INCH TZ" +msgstr "" +"Los archivos de exploración NC, normalmente denominados archivos Excellon\n" +"Son archivos que se pueden encontrar en diferentes formatos.\n" +"Aquí configuramos el formato utilizado cuando el proporcionado\n" +"Las coordenadas no están usando el punto.\n" +"\n" +"Posibles presets:\n" +"\n" +"PROTEO 3: 3 MM LZ\n" +"DipTrace 5: 2 MM TZ\n" +"DipTrace 4: 3 MM LZ\n" +"\n" +"ÁGUILA 3: 3 MM TZ\n" +"ÁGUILA 4: 3 MM TZ\n" +"ÁGUILA 2: 5 PULGADAS TZ\n" +"ÁGUILA 3: 5 PULGADAS TZ\n" +"\n" +"ALTUM 2: 4 PULGADAS LZ\n" +"Sprint Layout 2: 4 PULGADAS LZ\n" +"KiCAD 3: 5 PULGADAS TZ" + +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:88 +msgid "Default values for INCH are 2:4" +msgstr "Los valores predeterminados para INCH son 2:4" + +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:116 +msgid "METRIC" +msgstr "MÉTRICO" + +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:117 +msgid "Default values for METRIC are 3:3" +msgstr "Los valores predeterminados para Métrica son 3: 3" + +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:148 +msgid "" +"This sets the type of Excellon zeros.\n" +"If LZ then Leading Zeros are kept and\n" +"Trailing Zeros are removed.\n" +"If TZ is checked then Trailing Zeros are kept\n" +"and Leading Zeros are removed.\n" +"\n" +"This is used when there is no information\n" +"stored in the Excellon file." +msgstr "" +"Esto establece el tipo de ceros Excellon.\n" +"Si LZ entonces Leading Zeros se mantienen y\n" +"Se eliminan los ceros finales.\n" +"Si se comprueba TZ, se mantienen los ceros finales.\n" +"y Leading Zeros se eliminan.\n" +"\n" +"Esto se usa cuando no hay información\n" +"almacenado en el archivo Excellon." + +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:166 +msgid "" +"This sets the default units of Excellon files.\n" +"If it is not detected in the parsed file the value here\n" +"will be used.Some Excellon files don't have an header\n" +"therefore this parameter will be used." +msgstr "" +"Esto establece las unidades predeterminadas de los archivos de Excellon.\n" +"Si no se detecta en el archivo analizado el valor aquí\n" +"serán utilizados. Algunos archivos de Excellon no tienen un encabezado\n" +"por lo tanto este parámetro será utilizado." + +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:176 +msgid "" +"This sets the units of Excellon files.\n" +"Some Excellon files don't have an header\n" +"therefore this parameter will be used." +msgstr "" +"Esto establece las unidades de archivos de Excellon.\n" +"Algunos archivos de Excellon no tienen un encabezado\n" +"por lo tanto este parámetro será utilizado." + +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:184 +msgid "Update Export settings" +msgstr "Actualizar configuración de exportación" + +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:201 +msgid "Excellon Optimization" +msgstr "Optimización Excellon" + +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:204 +msgid "Algorithm:" +msgstr "Algoritmo:" + +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:206 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:222 +msgid "" +"This sets the optimization type for the Excellon drill path.\n" +"If <> is checked then Google OR-Tools algorithm with\n" +"MetaHeuristic Guided Local Path is used. Default search time is 3sec.\n" +"If <> is checked then Google OR-Tools Basic algorithm is used.\n" +"If <> is checked then Travelling Salesman algorithm is used for\n" +"drill path optimization.\n" +"\n" +"If this control is disabled, then FlatCAM works in 32bit mode and it uses\n" +"Travelling Salesman algorithm for path optimization." +msgstr "" +"Esto establece el tipo de optimización para la ruta de perforación " +"Excellon.\n" +"Si <> está marcado, el algoritmo de Google OR-Tools con\n" +"Se utiliza la ruta local guiada metaheurística. El tiempo de búsqueda " +"predeterminado es de 3 segundos.\n" +"Si <> está marcado, se utiliza el algoritmo básico de Google OR-" +"Tools.\n" +"Si se marca <>, se utiliza el algoritmo de vendedor ambulante para\n" +"Optimización de la ruta de perforación.\n" +"\n" +"Si este control está desactivado, FlatCAM funciona en modo de 32 bits y " +"utiliza\n" +"Algoritmo de vendedor ambulante para la optimización de rutas." + +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:217 +msgid "MetaHeuristic" +msgstr "MetaHeuristic" + +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:218 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:104 +#: flatcamObjects/FlatCAMExcellon.py:614 flatcamObjects/FlatCAMGeometry.py:510 +#: flatcamObjects/FlatCAMGerber.py:251 +msgid "Basic" +msgstr "BASIC" + +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:219 +msgid "TSA" +msgstr "TSA" + +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:236 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:245 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:237 +msgid "Duration" +msgstr "Duración" + +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:239 +msgid "" +"When OR-Tools Metaheuristic (MH) is enabled there is a\n" +"maximum threshold for how much time is spent doing the\n" +"path optimization. This max duration is set here.\n" +"In seconds." +msgstr "" +"Cuando OR-Tools Metaheuristic (MH) está habilitado, hay un\n" +"umbral máximo de cuánto tiempo se dedica a hacer el\n" +"Optimización del camino. Esta duración máxima se establece aquí.\n" +"En segundos." + +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:258 +msgid "Excellon Object Color" +msgstr "Color del objeto Excellon" + +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:264 +#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:86 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:155 +msgid "Set the line color for plotted objects." +msgstr "Establecer el color de la línea para los objetos trazados." + +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:29 +msgid "Excellon Options" +msgstr "Excellon Opciones" + +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:33 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:34 +msgid "Create CNC Job" +msgstr "Crear trabajo CNC" + +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:35 +msgid "" +"Parameters used to create a CNC Job object\n" +"for this drill object." +msgstr "" +"Parámetros utilizados para crear un objeto de trabajo CNC\n" +"para este objeto taladro." + +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:152 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:121 +msgid "Tool change" +msgstr "Cambio de herram" + +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:236 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:232 +msgid "Enable Dwell" +msgstr "Habilitar Permanencia" + +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:259 +msgid "" +"The preprocessor JSON file that dictates\n" +"Gcode output." +msgstr "" +"El archivo JSON del postprocesador que dicta\n" +"Salida de Gcode." + +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:270 +msgid "Gcode" +msgstr "Gcode" + +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:272 +msgid "" +"Choose what to use for GCode generation:\n" +"'Drills', 'Slots' or 'Both'.\n" +"When choosing 'Slots' or 'Both', slots will be\n" +"converted to drills." +msgstr "" +"Elija qué usar para la generación de GCode:\n" +"'Taladros', 'Tragamonedas' o 'Ambos'.\n" +"Al elegir 'Ranuras' o 'Ambos', las ranuras serán\n" +"convertido en taladros." + +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:288 +msgid "Mill Holes" +msgstr "Agujeros de molino" + +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:290 +msgid "Create Geometry for milling holes." +msgstr "Crear geometría para fresar agujeros." + +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:294 +msgid "Drill Tool dia" +msgstr "Diá de la herra. de Perfor" + +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:305 +msgid "Slot Tool dia" +msgstr "Diá. de la herra. de ranura" + +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:307 +msgid "" +"Diameter of the cutting tool\n" +"when milling slots." +msgstr "" +"Diámetro de la herramienta de corte\n" +"Al fresar ranuras." + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:28 +msgid "App Settings" +msgstr "Configuración de Aplicación" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:49 +msgid "Grid Settings" +msgstr "Configuración de cuadrícula" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:53 +msgid "X value" +msgstr "Valor X" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:55 +msgid "This is the Grid snap value on X axis." +msgstr "Este es el valor de ajuste de cuadrícula en el eje X." + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:65 +msgid "Y value" +msgstr "Valor Y" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:67 +msgid "This is the Grid snap value on Y axis." +msgstr "Este es el valor de ajuste de cuadrícula en el eje Y." + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:77 +msgid "Snap Max" +msgstr "Máx. de ajuste" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:92 +msgid "Workspace Settings" +msgstr "Configuración del espacio de trabajo" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:95 +msgid "Active" +msgstr "Activo" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:97 +msgid "" +"Draw a delimiting rectangle on canvas.\n" +"The purpose is to illustrate the limits for our work." +msgstr "" +"Dibuja un rectángulo delimitador en el lienzo.\n" +"El propósito es ilustrar los límites de nuestro trabajo." + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:105 +msgid "" +"Select the type of rectangle to be used on canvas,\n" +"as valid workspace." +msgstr "" +"Seleccione el tipo de rectángulo a utilizar en el lienzo,\n" +"como espacio de trabajo válido." + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:171 +msgid "Orientation" +msgstr "Orientación" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:172 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:239 +#: flatcamTools/ToolFilm.py:422 +msgid "" +"Can be:\n" +"- Portrait\n" +"- Landscape" +msgstr "" +"Puede ser:\n" +"- retrato\n" +"- paisaje" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:176 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:243 +#: flatcamTools/ToolFilm.py:426 +msgid "Portrait" +msgstr "Retrato" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:177 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:244 +#: flatcamTools/ToolFilm.py:427 +msgid "Landscape" +msgstr "Paisaje" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:201 +msgid "Notebook" +msgstr "Cuaderno" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:203 +msgid "" +"This sets the font size for the elements found in the Notebook.\n" +"The notebook is the collapsible area in the left side of the GUI,\n" +"and include the Project, Selected and Tool tabs." +msgstr "" +"Esto establece el tamaño de fuente para los elementos encontrados en el " +"Cuaderno.\n" +"El cuaderno es el área plegable en el lado izquierdo de la GUI,\n" +"e incluye las pestañas Proyecto, Seleccionado y Herramienta." + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:222 +msgid "Axis" +msgstr "Eje" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:224 +msgid "This sets the font size for canvas axis." +msgstr "Esto establece el tamaño de fuente para el eje del lienzo." + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:241 +msgid "Textbox" +msgstr "Caja de texto" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:243 +msgid "" +"This sets the font size for the Textbox GUI\n" +"elements that are used in FlatCAM." +msgstr "" +"Esto establece el tamaño de fuente para la GUI del cuadro de texto\n" +"elementos que se usan en FlatCAM." + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:269 +msgid "Mouse Settings" +msgstr "Configuraciones del mouse" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:273 +msgid "Cursor Shape" +msgstr "Forma del cursor" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:275 +msgid "" +"Choose a mouse cursor shape.\n" +"- Small -> with a customizable size.\n" +"- Big -> Infinite lines" +msgstr "" +"Elija la forma del cursor del mouse.\n" +"- Pequeño -> con un tamaño personalizable.\n" +"- Grande -> Líneas infinitas" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:281 +msgid "Small" +msgstr "Pequeño" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:282 +msgid "Big" +msgstr "Grande" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:289 +msgid "Cursor Size" +msgstr "Tamaño del cursor" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:291 +msgid "Set the size of the mouse cursor, in pixels." +msgstr "Establezca el tamaño del cursor del mouse, en píxeles." + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:302 +msgid "Cursor Width" +msgstr "Ancho del cursor" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:304 +msgid "Set the line width of the mouse cursor, in pixels." +msgstr "Establezca el ancho de línea del cursor del mouse, en píxeles." + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:315 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:322 +msgid "Cursor Color" +msgstr "Color del cursor" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:317 +msgid "Check this box to color mouse cursor." +msgstr "Marque esta casilla para colorear el cursor del mouse." + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:324 +msgid "Set the color of the mouse cursor." +msgstr "Establece el color del cursor del mouse." + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:347 +msgid "Pan Button" +msgstr "Botón de pan" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:349 +msgid "" +"Select the mouse button to use for panning:\n" +"- MMB --> Middle Mouse Button\n" +"- RMB --> Right Mouse Button" +msgstr "" +"Seleccione el botón del ratón para utilizarlo en la panorámica:\n" +"- MMB -> Botón Central Del Ratón\n" +"- RMB -> Botón derecho del ratón" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:353 +msgid "MMB" +msgstr "MMB" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:354 +msgid "RMB" +msgstr "RMB" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:360 +msgid "Multiple Selection" +msgstr "Selección múltiple" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:362 +msgid "Select the key used for multiple selection." +msgstr "Seleccione la clave utilizada para la selección múltiple." + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:364 +msgid "CTRL" +msgstr "CTRL" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:365 +msgid "SHIFT" +msgstr "SHIFT" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:376 +msgid "Delete object confirmation" +msgstr "Eliminar confirmación de objeto" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:378 +msgid "" +"When checked the application will ask for user confirmation\n" +"whenever the Delete object(s) event is triggered, either by\n" +"menu shortcut or key shortcut." +msgstr "" +"Cuando esté marcada, la aplicación solicitará la confirmación del usuario\n" +"cada vez que se desencadena el evento Eliminar objeto (s), ya sea por\n" +"acceso directo al menú o acceso directo a teclas." + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:385 +msgid "\"Open\" behavior" +msgstr "Comportamiento \"abierto\"" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:387 +msgid "" +"When checked the path for the last saved file is used when saving files,\n" +"and the path for the last opened file is used when opening files.\n" +"\n" +"When unchecked the path for opening files is the one used last: either the\n" +"path for saving files or the path for opening files." +msgstr "" +"Cuando se verifica, la ruta del último archivo guardado se usa al guardar " +"archivos,\n" +"y la ruta del último archivo abierto se utiliza al abrir archivos.\n" +"\n" +"Cuando no está marcada, la ruta para abrir archivos es la última utilizada:\n" +"ruta para guardar archivos o la ruta para abrir archivos." + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:396 +msgid "Enable ToolTips" +msgstr "Hab. info sobre Herram" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:398 +msgid "" +"Check this box if you want to have toolTips displayed\n" +"when hovering with mouse over items throughout the App." +msgstr "" +"Marque esta casilla si desea que se muestre información sobre herramientas\n" +"al pasar el mouse sobre los elementos de la aplicación." + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:405 +msgid "Allow Machinist Unsafe Settings" +msgstr "Permitir configuraciones inseguras de Maquinista" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:407 +msgid "" +"If checked, some of the application settings will be allowed\n" +"to have values that are usually unsafe to use.\n" +"Like Z travel negative values or Z Cut positive values.\n" +"It will applied at the next application start.\n" +"<>: Don't change this unless you know what you are doing !!!" +msgstr "" +"Si está marcada, se permitirán algunas de las configuraciones de la " +"aplicación\n" +"tener valores que generalmente no son seguros de usar.\n" +"Como los valores negativos de desplazamiento Z o los valores positivos de Z " +"Cut.\n" +"Se aplicará en el próximo inicio de la aplicación.\n" +"<>: ¡No cambie esto a menos que sepa lo que está haciendo!" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:419 +msgid "Bookmarks limit" +msgstr "Límite de Marcadores" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:421 +msgid "" +"The maximum number of bookmarks that may be installed in the menu.\n" +"The number of bookmarks in the bookmark manager may be greater\n" +"but the menu will hold only so much." +msgstr "" +"El número máximo de marcadores que se pueden instalar en el menú.\n" +"El número de marcadores en el administrador de marcadores puede ser mayor\n" +"pero el menú solo tendrá una cantidad considerable." + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:430 +msgid "Activity Icon" +msgstr "Ícono de actividad" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:432 +msgid "Select the GIF that show activity when FlatCAM is active." +msgstr "Seleccione el GIF que muestra actividad cuando FlatCAM está activo." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:29 +msgid "App Preferences" +msgstr "Preferencias de la aplicación" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:40 +msgid "" +"The default value for FlatCAM units.\n" +"Whatever is selected here is set every time\n" +"FlatCAM is started." +msgstr "" +"El valor por defecto para las unidades FlatCAM.\n" +"Lo que se selecciona aquí se establece cada vez\n" +"Se inicia FLatCAM." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:44 +msgid "IN" +msgstr "IN" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:50 +msgid "Precision MM" +msgstr "Precisión MM" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:52 +msgid "" +"The number of decimals used throughout the application\n" +"when the set units are in METRIC system.\n" +"Any change here require an application restart." +msgstr "" +"El número de decimales utilizados en toda la aplicación.\n" +"cuando las unidades configuradas están en el sistema METRIC.\n" +"Cualquier cambio aquí requiere un reinicio de la aplicación." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:64 +msgid "Precision INCH" +msgstr "Precisión PULGADA" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:66 +msgid "" +"The number of decimals used throughout the application\n" +"when the set units are in INCH system.\n" +"Any change here require an application restart." +msgstr "" +"El número de decimales utilizados en toda la aplicación.\n" +"cuando las unidades configuradas están en el sistema PULGADA.\n" +"Cualquier cambio aquí requiere un reinicio de la aplicación." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:78 +msgid "Graphic Engine" +msgstr "Motor gráfico" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:79 +msgid "" +"Choose what graphic engine to use in FlatCAM.\n" +"Legacy(2D) -> reduced functionality, slow performance but enhanced " +"compatibility.\n" +"OpenGL(3D) -> full functionality, high performance\n" +"Some graphic cards are too old and do not work in OpenGL(3D) mode, like:\n" +"Intel HD3000 or older. In this case the plot area will be black therefore\n" +"use the Legacy(2D) mode." +msgstr "" +"Elija qué motor gráfico usar en FlatCAM.\n" +"Legacy (2D) -> funcionalidad reducida, rendimiento lento pero compatibilidad " +"mejorada.\n" +"OpenGL (3D) -> funcionalidad completa, alto rendimiento\n" +"Algunas tarjetas gráficas son demasiado viejas y no funcionan en modo OpenGL " +"(3D), como:\n" +"Intel HD3000 o anterior. En este caso, el área de trazado será negra, por lo " +"tanto\n" +"use el modo Legacy (2D)." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:85 +msgid "Legacy(2D)" +msgstr "Legado (2D)" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:86 +msgid "OpenGL(3D)" +msgstr "OpenGL(3D)" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:98 +msgid "APP. LEVEL" +msgstr "Nivel de aplicación" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:99 +msgid "" +"Choose the default level of usage for FlatCAM.\n" +"BASIC level -> reduced functionality, best for beginner's.\n" +"ADVANCED level -> full functionality.\n" +"\n" +"The choice here will influence the parameters in\n" +"the Selected Tab for all kinds of FlatCAM objects." +msgstr "" +"Elija el nivel de uso predeterminado para FlatCAM.\n" +"Nivel BÁSICO -> funcionalidad reducida, mejor para principiantes.\n" +"Nivel AVANZADO -> Funcionalidad completa.\n" +"\n" +"La elección aquí influirá en los parámetros en\n" +"La pestaña seleccionada para todo tipo de objetos FlatCAM." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:105 +#: flatcamObjects/FlatCAMExcellon.py:627 flatcamObjects/FlatCAMGeometry.py:531 +#: flatcamObjects/FlatCAMGerber.py:278 +msgid "Advanced" +msgstr "Avanzado" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:111 +msgid "Portable app" +msgstr "Aplicación portátil" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:112 +msgid "" +"Choose if the application should run as portable.\n" +"\n" +"If Checked the application will run portable,\n" +"which means that the preferences files will be saved\n" +"in the application folder, in the lib\\config subfolder." +msgstr "" +"Elija si la aplicación debe ejecutarse como portátil.\n" +"\n" +"Si está marcada, la aplicación se ejecutará portátil,\n" +"lo que significa que los archivos de preferencias se guardarán\n" +"en la carpeta de la aplicación, en la subcarpeta lib \\ config." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:125 +msgid "Languages" +msgstr "Idiomas" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:126 +msgid "Set the language used throughout FlatCAM." +msgstr "Establezca el idioma utilizado en FlatCAM." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:132 +msgid "Apply Language" +msgstr "Aplicar idioma" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:133 +msgid "" +"Set the language used throughout FlatCAM.\n" +"The app will restart after click." +msgstr "" +"Establezca el idioma utilizado en FlatCAM.\n" +"La aplicación se reiniciará después de hacer clic." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:147 +msgid "Startup Settings" +msgstr "Configuraciones de inicio" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:151 +msgid "Splash Screen" +msgstr "Pantalla de bienvenida" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:153 +msgid "Enable display of the splash screen at application startup." +msgstr "" +"Habilite la visualización de la pantalla de inicio al iniciar la aplicación." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:165 +msgid "Sys Tray Icon" +msgstr "Icono de la Sys Tray" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:167 +msgid "Enable display of FlatCAM icon in Sys Tray." +msgstr "" +"Habilite la visualización del icono de FlatCAM en la bandeja del sistema." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:172 +msgid "Show Shell" +msgstr "Mostrar la línea de comando" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:174 +msgid "" +"Check this box if you want the shell to\n" +"start automatically at startup." +msgstr "" +"Marque esta casilla si desea que el shell\n" +"iniciar automáticamente en el inicio." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:181 +msgid "Show Project" +msgstr "Mostrar proyecto" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:183 +msgid "" +"Check this box if you want the project/selected/tool tab area to\n" +"to be shown automatically at startup." +msgstr "" +"Marque esta casilla si desea que el área de la pestaña del proyecto / " +"seleccionado / herramienta\n" +"para ser mostrado automáticamente en el inicio." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:189 +msgid "Version Check" +msgstr "Verificación de versión" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:191 +msgid "" +"Check this box if you want to check\n" +"for a new version automatically at startup." +msgstr "" +"Marque esta casilla si desea marcar\n" +"para una nueva versión automáticamente en el inicio." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:198 +msgid "Send Statistics" +msgstr "Enviar estadísticas" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:200 +msgid "" +"Check this box if you agree to send anonymous\n" +"stats automatically at startup, to help improve FlatCAM." +msgstr "" +"Marque esta casilla si acepta enviar anónimo\n" +"Estadísticas automáticamente en el inicio, para ayudar a mejorar FlatCAM." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:214 +msgid "Workers number" +msgstr "Número de trabajadores" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:216 +msgid "" +"The number of Qthreads made available to the App.\n" +"A bigger number may finish the jobs more quickly but\n" +"depending on your computer speed, may make the App\n" +"unresponsive. Can have a value between 2 and 16.\n" +"Default value is 2.\n" +"After change, it will be applied at next App start." +msgstr "" +"El número de Qthreads disponibles para la aplicación.\n" +"Un número más grande puede terminar los trabajos más rápidamente pero\n" +"Dependiendo de la velocidad de su computadora, podrá realizar la " +"aplicación.\n" +"insensible. Puede tener un valor entre 2 y 16.\n" +"El valor predeterminado es 2.\n" +"Después del cambio, se aplicará en el próximo inicio de la aplicación." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:230 +msgid "Geo Tolerance" +msgstr "Geo Tolerancia" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:232 +msgid "" +"This value can counter the effect of the Circle Steps\n" +"parameter. Default value is 0.005.\n" +"A lower value will increase the detail both in image\n" +"and in Gcode for the circles, with a higher cost in\n" +"performance. Higher value will provide more\n" +"performance at the expense of level of detail." +msgstr "" +"Este valor puede contrarrestar el efecto de los Pasos circulares\n" +"parámetro. El valor predeterminado es 0.005.\n" +"Un valor más bajo aumentará el detalle tanto en la imagen\n" +"y en Gcode para los círculos, con un mayor costo en\n" +"actuación. Un valor más alto proporcionará más\n" +"rendimiento a expensas del nivel de detalle." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:252 +msgid "Save Settings" +msgstr "Configuraciones para guardar" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:256 +msgid "Save Compressed Project" +msgstr "Guardar proyecto comprimido" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:258 +msgid "" +"Whether to save a compressed or uncompressed project.\n" +"When checked it will save a compressed FlatCAM project." +msgstr "" +"Ya sea para guardar un proyecto comprimido o sin comprimir.\n" +"Cuando esté marcado, guardará un proyecto comprimido de FlatCAM." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:267 +msgid "Compression" +msgstr "Compresión" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:269 +msgid "" +"The level of compression used when saving\n" +"a FlatCAM project. Higher value means better compression\n" +"but require more RAM usage and more processing time." +msgstr "" +"El nivel de compresión utilizado al guardar\n" +"Un proyecto FlatCAM. Un valor más alto significa una mejor compresión\n" +"pero requieren más uso de RAM y más tiempo de procesamiento." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:280 +msgid "Enable Auto Save" +msgstr "Habilitar guardado auto" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:282 +msgid "" +"Check to enable the autosave feature.\n" +"When enabled, the application will try to save a project\n" +"at the set interval." +msgstr "" +"Marque para habilitar la función de autoguardado.\n" +"Cuando está habilitada, la aplicación intentará guardar un proyecto.\n" +"en el intervalo establecido." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:292 +msgid "Interval" +msgstr "Intervalo" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:294 +msgid "" +"Time interval for autosaving. In milliseconds.\n" +"The application will try to save periodically but only\n" +"if the project was saved manually at least once.\n" +"While active, some operations may block this feature." +msgstr "" +"Intervalo de tiempo para guardar automáticamente. En milisegundos\n" +"La aplicación intentará guardar periódicamente pero solo\n" +"si el proyecto se guardó manualmente al menos una vez.\n" +"Mientras está activo, algunas operaciones pueden bloquear esta función." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:310 +msgid "Text to PDF parameters" +msgstr "Parámetros de texto a PDF" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:312 +msgid "Used when saving text in Code Editor or in FlatCAM Document objects." +msgstr "" +"Se utiliza al guardar texto en el Editor de código o en objetos de documento " +"FlatCAM." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:321 +msgid "Top Margin" +msgstr "Margen superior" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:323 +msgid "Distance between text body and the top of the PDF file." +msgstr "" +"Distancia entre el cuerpo del texto y la parte superior del archivo PDF." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:334 +msgid "Bottom Margin" +msgstr "Margen inferior" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:336 +msgid "Distance between text body and the bottom of the PDF file." +msgstr "" +"Distancia entre el cuerpo del texto y la parte inferior del archivo PDF." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:347 +msgid "Left Margin" +msgstr "Margen izquierdo" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:349 +msgid "Distance between text body and the left of the PDF file." +msgstr "Distancia entre el cuerpo del texto y la izquierda del archivo PDF." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:360 +msgid "Right Margin" +msgstr "Margen derecho" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:362 +msgid "Distance between text body and the right of the PDF file." +msgstr "Distancia entre el cuerpo del texto y la derecha del archivo PDF." + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:26 +msgid "GUI Preferences" +msgstr "Preferencias de GUI" + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:36 +msgid "Theme" +msgstr "Tema" + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:38 +msgid "" +"Select a theme for FlatCAM.\n" +"It will theme the plot area." +msgstr "" +"Seleccione un tema para FlatCAM.\n" +"Será el tema del área de la trama." + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:43 +msgid "Light" +msgstr "Ligera" + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:44 +msgid "Dark" +msgstr "Oscuro" + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:51 +msgid "Use Gray Icons" +msgstr "Use iconos grises" + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:53 +msgid "" +"Check this box to use a set of icons with\n" +"a lighter (gray) color. To be used when a\n" +"full dark theme is applied." +msgstr "" +"Marque esta casilla para usar un conjunto de iconos con\n" +"un color más claro (gris). Para ser utilizado cuando un\n" +"Se aplica el tema oscuro completo." + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:59 +msgid "Apply Theme" +msgstr "Aplicar tema" + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:61 +msgid "" +"Select a theme for FlatCAM.\n" +"It will theme the plot area.\n" +"The application will restart after change." +msgstr "" +"Seleccione un tema para FlatCAM.\n" +"Tematizará el área de trazado.\n" +"La aplicación se reiniciará después del cambio." + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:73 +msgid "Layout" +msgstr "Diseño" + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:75 +msgid "" +"Select an layout for FlatCAM.\n" +"It is applied immediately." +msgstr "" +"Seleccione un diseño para FlatCAM.\n" +"Se aplica de inmediato." + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:95 +msgid "Style" +msgstr "Estilo" + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:97 +msgid "" +"Select an style for FlatCAM.\n" +"It will be applied at the next app start." +msgstr "" +"Seleccione un estilo para FlatCAM.\n" +"Se aplicará en el próximo inicio de la aplicación." + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:111 +msgid "Activate HDPI Support" +msgstr "Activar soporte HDPI" + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:113 +msgid "" +"Enable High DPI support for FlatCAM.\n" +"It will be applied at the next app start." +msgstr "" +"Habilitar el soporte de alta DPI para FlatCAM.\n" +"Se aplicará en el próximo inicio de la aplicación." + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:127 +msgid "Display Hover Shape" +msgstr "Mostrar forma de desplazamiento" + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:129 +msgid "" +"Enable display of a hover shape for FlatCAM objects.\n" +"It is displayed whenever the mouse cursor is hovering\n" +"over any kind of not-selected object." +msgstr "" +"Habilitar la visualización de una forma flotante para objetos FlatCAM.\n" +"Se muestra cada vez que el cursor del mouse se desplaza\n" +"sobre cualquier tipo de objeto no seleccionado." + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:136 +msgid "Display Selection Shape" +msgstr "Mostrar forma de selección" + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:138 +msgid "" +"Enable the display of a selection shape for FlatCAM objects.\n" +"It is displayed whenever the mouse selects an object\n" +"either by clicking or dragging mouse from left to right or\n" +"right to left." +msgstr "" +"Habilitar la visualización de una forma de selección para objetos FlatCAM.\n" +"Se muestra cada vez que el ratón selecciona un objeto.\n" +"ya sea haciendo clic o arrastrando el mouse de izquierda a derecha o\n" +"De derecha a izquierda." + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:151 +msgid "Left-Right Selection Color" +msgstr "Color de selección izquierda-derecha" + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:156 +msgid "Set the line color for the 'left to right' selection box." +msgstr "" +"Establezca el color de línea para el cuadro de selección 'de izquierda a " +"derecha'." + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:172 +msgid "" +"Set the fill color for the selection box\n" +"in case that the selection is done from left to right.\n" +"First 6 digits are the color and the last 2\n" +"digits are for alpha (transparency) level." +msgstr "" +"Establecer el color de relleno para el cuadro de selección\n" +"En caso de que la selección se realice de izquierda a derecha.\n" +"Los primeros 6 dígitos son el color y los 2 últimos.\n" +"Los dígitos son para el nivel alfa (transparencia)." + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:192 +msgid "Set the fill transparency for the 'left to right' selection box." +msgstr "" +"Establezca la transparencia de relleno para el cuadro de selección 'de " +"izquierda a derecha'." + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:216 +msgid "Right-Left Selection Color" +msgstr "Color de selección derecha-izquierda" + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:222 +msgid "Set the line color for the 'right to left' selection box." +msgstr "" +"Establezca el color de línea para el cuadro de selección 'de derecha a " +"izquierda'." + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:239 +msgid "" +"Set the fill color for the selection box\n" +"in case that the selection is done from right to left.\n" +"First 6 digits are the color and the last 2\n" +"digits are for alpha (transparency) level." +msgstr "" +"Establecer el color de relleno para el cuadro de selección\n" +"En caso de que la selección se realice de derecha a izquierda.\n" +"Los primeros 6 dígitos son el color y los 2 últimos.\n" +"Los dígitos son para el nivel alfa (transparencia)." + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:259 +msgid "Set the fill transparency for selection 'right to left' box." +msgstr "" +"Establezca la transparencia de relleno para el cuadro de selección \"de " +"derecha a izquierda\"." + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:286 +msgid "Editor Color" +msgstr "Color del editor" + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:290 +msgid "Drawing" +msgstr "Dibujo" + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:292 +msgid "Set the color for the shape." +msgstr "Establecer el color de la forma." + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:309 +msgid "Set the color of the shape when selected." +msgstr "Establecer el color de la forma cuando se selecciona." + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:332 +msgid "Project Items Color" +msgstr "Color de los elementos del proyecto" + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:336 +msgid "Enabled" +msgstr "Habilitado" + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:338 +msgid "Set the color of the items in Project Tab Tree." +msgstr "" +"Establecer el color de los elementos en el árbol de pestañas del proyecto." + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:352 +msgid "Disabled" +msgstr "Discapacitado" + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:354 +msgid "" +"Set the color of the items in Project Tab Tree,\n" +"for the case when the items are disabled." +msgstr "" +"Establecer el color de los elementos en el árbol de pestañas del proyecto,\n" +"para el caso cuando los elementos están deshabilitados." + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:370 +msgid "Project AutoHide" +msgstr "Proyecto auto ocultar" + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:372 +msgid "" +"Check this box if you want the project/selected/tool tab area to\n" +"hide automatically when there are no objects loaded and\n" +"to show whenever a new object is created." +msgstr "" +"Marque esta casilla si desea que el área de la pestaña del proyecto / " +"seleccionado / herramienta\n" +"Se oculta automáticamente cuando no hay objetos cargados y\n" +"para mostrar cada vez que se crea un nuevo objeto." + +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:27 +msgid "Geometry Adv. Options" +msgstr "Geometría Adv. Opciones" + +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:35 +msgid "" +"A list of Geometry advanced parameters.\n" +"Those parameters are available only for\n" +"Advanced App. Level." +msgstr "" +"Una lista de los parámetros avanzados de Geometría.\n" +"Esos parámetros están disponibles sólo para\n" +"Aplicación avanzada Nivel." + +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:45 +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:112 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:134 +#: flatcamTools/ToolCalibration.py:125 flatcamTools/ToolSolderPaste.py:240 +msgid "Toolchange X-Y" +msgstr "Cambio de herra X, Y" + +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:56 +msgid "" +"Height of the tool just after starting the work.\n" +"Delete the value if you don't need this feature." +msgstr "" +"Altura de la herramienta justo después de comenzar el trabajo.\n" +"Elimine el valor si no necesita esta característica." + +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:158 +msgid "Segment X size" +msgstr "Tamaño del Seg. X" + +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:160 +msgid "" +"The size of the trace segment on the X axis.\n" +"Useful for auto-leveling.\n" +"A value of 0 means no segmentation on the X axis." +msgstr "" +"El tamaño del segmento traza en el eje X.\n" +"Útil para la autonivelación.\n" +"Un valor de 0 significa que no hay segmentación en el eje X." + +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:174 +msgid "Segment Y size" +msgstr "Tamaño del Seg. Y" + +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:176 +msgid "" +"The size of the trace segment on the Y axis.\n" +"Useful for auto-leveling.\n" +"A value of 0 means no segmentation on the Y axis." +msgstr "" +"El tamaño del segmento traza en el eje Y.\n" +"Útil para la autonivelación.\n" +"Un valor de 0 significa que no hay segmentación en el eje Y." + +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:192 +msgid "Area Exclusion" +msgstr "Exclusión de áreaSelección de área" + +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:194 +msgid "" +"Area exclusion parameters.\n" +"Those parameters are available only for\n" +"Advanced App. Level." +msgstr "" +"Parámetros de exclusión de área.\n" +"Esos parámetros están disponibles solo para\n" +"Aplicación avanzada Nivel." + +#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:33 +msgid "A list of Geometry Editor parameters." +msgstr "Una lista de parámetros del editor de geometría." + +#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:43 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:196 +msgid "" +"Set the number of selected geometry\n" +"items above which the utility geometry\n" +"becomes just a selection rectangle.\n" +"Increases the performance when moving a\n" +"large number of geometric elements." +msgstr "" +"Establecer el número de geometría seleccionada\n" +"elementos por encima de los cuales la geometría de utilidad\n" +"se convierte en sólo un rectángulo de selección.\n" +"Aumenta el rendimiento al mover un\n" +"Gran cantidad de elementos geométricos." + +#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:27 +msgid "Geometry General" +msgstr "Geometría General" + +#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:49 +msgid "" +"The number of circle steps for Geometry \n" +"circle and arc shapes linear approximation." +msgstr "" +"El número de pasos de círculo para Geometría\n" +"Círculo y arcos de aproximación lineal." + +#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:63 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:41 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:48 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:42 +msgid "Tools Dia" +msgstr "Diá. de Herram" + +#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:65 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:108 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:43 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:50 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:44 +msgid "" +"Diameters of the tools, separated by comma.\n" +"The value of the diameter has to use the dot decimals separator.\n" +"Valid values: 0.3, 1.0" +msgstr "" +"Diámetros de las herramientas, separados por comas.\n" +"El valor del diámetro tiene que usar el separador de decimales de punto.\n" +"Valores válidos: 0.3, 1.0" + +#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:80 +msgid "Geometry Object Color" +msgstr "Color del objeto de Geometría" + +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:28 +msgid "Geometry Options" +msgstr "Opc. de geometría" + +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:36 +msgid "" +"Create a CNC Job object\n" +"tracing the contours of this\n" +"Geometry object." +msgstr "" +"Crear un objeto de trabajo CNC\n" +"trazando los contornos de este\n" +"Objeto de geometría." + +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:80 +msgid "Depth/Pass" +msgstr "Profund. / Pase" + +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:82 +msgid "" +"The depth to cut on each pass,\n" +"when multidepth is enabled.\n" +"It has positive value although\n" +"it is a fraction from the depth\n" +"which has negative value." +msgstr "" +"La profundidad a cortar en cada pasada,\n" +"cuando está habilitado multidepto.\n" +"Tiene valor positivo aunque\n" +"Es una fracción de la profundidad.\n" +"que tiene valor negativo." + +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:27 +msgid "Gerber Adv. Options" +msgstr "Opciones avan. de Gerber" + +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:33 +msgid "" +"A list of Gerber advanced parameters.\n" +"Those parameters are available only for\n" +"Advanced App. Level." +msgstr "" +"Una lista de los parámetros avanzados de Gerber.\n" +"Esos parámetros están disponibles sólo para\n" +"Aplicación avanzada Nivel." + +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:52 +msgid "Table Show/Hide" +msgstr "Mostrar / ocultar tabla" + +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:54 +msgid "" +"Toggle the display of the Gerber Apertures Table.\n" +"Also, on hide, it will delete all mark shapes\n" +"that are drawn on canvas." +msgstr "" +"Activa o desactiva la visualización de la tabla de aperturas de Gerber.\n" +"Además, en hide, borrará todas las formas de marca.\n" +"que se dibujan sobre lienzo." + +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:134 +msgid "Exterior" +msgstr "Exterior" + +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:135 +msgid "Interior" +msgstr "Interior" + +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:148 +msgid "" +"Buffering type:\n" +"- None --> best performance, fast file loading but no so good display\n" +"- Full --> slow file loading but good visuals. This is the default.\n" +"<>: Don't change this unless you know what you are doing !!!" +msgstr "" +"Tipo de almacenamiento en búfer:\n" +"- Ninguno -> mejor rendimiento, carga rápida de archivos pero no tan buena " +"visualización\n" +"- Completo -> carga lenta de archivos pero buenas imágenes. Este es el valor " +"predeterminado.\n" +"<>: ¡No cambie esto a menos que sepa lo que está haciendo!" + +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:153 +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:88 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:207 +#: flatcamTools/ToolFiducials.py:201 flatcamTools/ToolFilm.py:255 +#: flatcamTools/ToolProperties.py:452 flatcamTools/ToolProperties.py:455 +#: flatcamTools/ToolProperties.py:458 flatcamTools/ToolProperties.py:483 +msgid "None" +msgstr "Ninguno" + +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:159 +msgid "Simplify" +msgstr "Simplificar" + +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:161 +msgid "" +"When checked all the Gerber polygons will be\n" +"loaded with simplification having a set tolerance.\n" +"<>: Don't change this unless you know what you are doing !!!" +msgstr "" +"Cuando esté marcado, todos los polígonos de Gerber serán\n" +"cargado de simplificación con una tolerancia establecida.\n" +"<>: ¡No cambie esto a menos que sepa lo que está haciendo!" + +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:168 +msgid "Tolerance" +msgstr "Tolerancia" + +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:169 +msgid "Tolerance for polygon simplification." +msgstr "Tolerancia para la simplificación de polígonos." + +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:33 +msgid "A list of Gerber Editor parameters." +msgstr "Una lista de los parámetros del editor Gerber." + +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:43 +msgid "" +"Set the number of selected Gerber geometry\n" +"items above which the utility geometry\n" +"becomes just a selection rectangle.\n" +"Increases the performance when moving a\n" +"large number of geometric elements." +msgstr "" +"Establecer el número de geometría seleccionada de Gerber\n" +"elementos por encima de los cuales la geometría de utilidad\n" +"se convierte en sólo un rectángulo de selección.\n" +"Aumenta el rendimiento al mover un\n" +"Gran cantidad de elementos geométricos." + +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:56 +msgid "New Aperture code" +msgstr "Nuevo Código de Aper" + +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:69 +msgid "New Aperture size" +msgstr "Nuevo Tamaño de Aper" + +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:71 +msgid "Size for the new aperture" +msgstr "Tamaño para la Nueva Aper" + +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:82 +msgid "New Aperture type" +msgstr "Nuevo Tipo de Aper" + +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:84 +msgid "" +"Type for the new aperture.\n" +"Can be 'C', 'R' or 'O'." +msgstr "" +"Escriba para la nueva apertura.\n" +"Puede ser 'C', 'R' u 'O'." + +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:106 +msgid "Aperture Dimensions" +msgstr "Dim. de apertura" + +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:116 +msgid "Linear Pad Array" +msgstr "Matriz lineal de Almohadilla" + +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:160 +msgid "Circular Pad Array" +msgstr "Matriz de Almohadilla Circ" + +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:196 +msgid "Distance at which to buffer the Gerber element." +msgstr "Distancia a la que buffer el elemento Gerber." + +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:205 +msgid "Scale Tool" +msgstr "Herramienta de escala" + +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:211 +msgid "Factor to scale the Gerber element." +msgstr "Factoriza para escalar el elemento Gerber." + +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:224 +msgid "Threshold low" +msgstr "Umbral bajo" + +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:226 +msgid "Threshold value under which the apertures are not marked." +msgstr "Valor de umbral por debajo del cual las aberturas no están marcadas." + +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:236 +msgid "Threshold high" +msgstr "Umbral alto" + +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:238 +msgid "Threshold value over which the apertures are not marked." +msgstr "Valor umbral sobre el cual las aberturas no están marcadas." + +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:27 +msgid "Gerber Export" +msgstr "Gerber Export" + +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:33 +msgid "" +"The parameters set here are used in the file exported\n" +"when using the File -> Export -> Export Gerber menu entry." +msgstr "" +"Los parámetros establecidos aquí se utilizan en el archivo exportado.\n" +"cuando se usa la entrada de menú Archivo -> Exportar -> Exportar Gerber." + +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:44 +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:50 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:84 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:90 +msgid "The units used in the Gerber file." +msgstr "Las unidades utilizadas en el archivo Gerber." + +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:58 +msgid "" +"The number of digits in the whole part of the number\n" +"and in the fractional part of the number." +msgstr "" +"El número de dígitos en la parte entera del número.\n" +"y en la parte fraccionaria del número." + +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:71 +msgid "" +"This numbers signify the number of digits in\n" +"the whole part of Gerber coordinates." +msgstr "" +"Estos números significan el número de dígitos en\n" +"Toda la parte de Gerber coordina." + +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:87 +msgid "" +"This numbers signify the number of digits in\n" +"the decimal part of Gerber coordinates." +msgstr "" +"Estos números significan el número de dígitos en\n" +"La parte decimal de las coordenadas de gerber." + +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:99 +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:109 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:100 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:110 +msgid "" +"This sets the type of Gerber zeros.\n" +"If LZ then Leading Zeros are removed and\n" +"Trailing Zeros are kept.\n" +"If TZ is checked then Trailing Zeros are removed\n" +"and Leading Zeros are kept." +msgstr "" +"Esto establece el tipo de ceros Gerber.\n" +"Si LZ entonces los ceros iniciales se eliminan y\n" +"Se guardan los ceros que se arrastran.\n" +"Si se comprueba TZ, se eliminan los ceros finales\n" +"y Leading Zeros se mantienen." + +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:27 +msgid "Gerber General" +msgstr "Gerber General" + +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:45 +msgid "M-Color" +msgstr "M-Color" + +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:61 +msgid "" +"The number of circle steps for Gerber \n" +"circular aperture linear approximation." +msgstr "" +"El número de pasos de círculo para Gerber\n" +"Apertura circular de aproximación lineal." + +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:73 +msgid "Default Values" +msgstr "Valores predeterminados" + +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:75 +msgid "" +"Those values will be used as fallback values\n" +"in case that they are not found in the Gerber file." +msgstr "" +"Esos valores se usarán como valores de reserva\n" +"en caso de que no se encuentren en el archivo Gerber." + +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:126 +msgid "Clean Apertures" +msgstr "Aberturas limpias" + +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:128 +msgid "" +"Will remove apertures that do not have geometry\n" +"thus lowering the number of apertures in the Gerber object." +msgstr "" +"Eliminará las aberturas que no tengan geometría\n" +"bajando así el número de aberturas en el objeto Gerber." + +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:134 +msgid "Polarity change buffer" +msgstr "Cambio de polaridad buffer" + +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:136 +msgid "" +"Will apply extra buffering for the\n" +"solid geometry when we have polarity changes.\n" +"May help loading Gerber files that otherwise\n" +"do not load correctly." +msgstr "" +"Aplicará buffering adicional para el\n" +"geometría sólida cuando tenemos cambios de polaridad.\n" +"Puede ayudar a cargar archivos Gerber que de otra manera\n" +"No cargar correctamente." + +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:149 +msgid "Gerber Object Color" +msgstr "Color de objeto Gerber" + +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:29 +msgid "Gerber Options" +msgstr "Opciones de gerber" + +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:107 +msgid "Combine Passes" +msgstr "Combinar pases" + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:27 +msgid "Copper Thieving Tool Options" +msgstr "Opc. de Herram. de Copper Thieving" + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:39 +msgid "" +"A tool to generate a Copper Thieving that can be added\n" +"to a selected Gerber file." +msgstr "" +"Una herramienta para generar un ladrón de cobre que se puede agregar\n" +"a un archivo Gerber seleccionado." + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:47 +msgid "Number of steps (lines) used to interpolate circles." +msgstr "Número de pasos (líneas) utilizados para interpolar círculos." + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:57 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:261 +#: flatcamTools/ToolCopperThieving.py:96 flatcamTools/ToolCopperThieving.py:431 +msgid "Clearance" +msgstr "Despeje" + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:59 +msgid "" +"This set the distance between the copper Thieving components\n" +"(the polygon fill may be split in multiple polygons)\n" +"and the copper traces in the Gerber file." +msgstr "" +"Esto establece la distancia entre los componentes de Copper Thieving\n" +"(el relleno de polígono puede dividirse en múltiples polígonos)\n" +"y las huellas de cobre en el archivo Gerber." + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:87 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280 +#: flatcamTools/ToolCopperThieving.py:126 flatcamTools/ToolNCC.py:535 +#: flatcamTools/ToolNCC.py:1316 flatcamTools/ToolNCC.py:1647 +#: flatcamTools/ToolNCC.py:1935 flatcamTools/ToolNCC.py:1990 +#: flatcamTools/ToolPaint.py:486 flatcamTools/ToolPaint.py:946 +#: flatcamTools/ToolPaint.py:1452 +msgid "Area Selection" +msgstr "Selección de área" + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:88 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280 +#: flatcamTools/ToolCopperThieving.py:127 flatcamTools/ToolDblSided.py:216 +#: flatcamTools/ToolNCC.py:535 flatcamTools/ToolNCC.py:1663 +#: flatcamTools/ToolNCC.py:1941 flatcamTools/ToolNCC.py:1998 +#: flatcamTools/ToolNCC.py:2306 flatcamTools/ToolNCC.py:2586 +#: flatcamTools/ToolNCC.py:3012 flatcamTools/ToolPaint.py:486 +#: flatcamTools/ToolPaint.py:931 flatcamTools/ToolPaint.py:1468 +#: tclCommands/TclCommandCopperClear.py:192 tclCommands/TclCommandPaint.py:166 +msgid "Reference Object" +msgstr "Objeto de referencia" + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:90 +#: flatcamTools/ToolCopperThieving.py:129 +msgid "Reference:" +msgstr "Referencia:" + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:92 +msgid "" +"- 'Itself' - the copper Thieving extent is based on the object extent.\n" +"- 'Area Selection' - left mouse click to start selection of the area to be " +"filled.\n" +"- 'Reference Object' - will do copper thieving within the area specified by " +"another object." +msgstr "" +"- 'Sí mismo': la extensión de Copper Thieving se basa en la extensión del " +"objeto.\n" +"- 'Selección de área': haga clic con el botón izquierdo del mouse para " +"iniciar la selección del área a rellenar.\n" +"- 'Objeto de referencia': robará cobre dentro del área especificada por otro " +"objeto." + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:101 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:76 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:188 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:76 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:190 +#: flatcamTools/ToolCopperThieving.py:171 flatcamTools/ToolExtractDrills.py:102 +#: flatcamTools/ToolExtractDrills.py:240 flatcamTools/ToolPunchGerber.py:113 +#: flatcamTools/ToolPunchGerber.py:268 +msgid "Rectangular" +msgstr "Rectangular" + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:102 +#: flatcamTools/ToolCopperThieving.py:172 +msgid "Minimal" +msgstr "Mínimo" + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:104 +#: flatcamTools/ToolCopperThieving.py:174 flatcamTools/ToolFilm.py:113 +msgid "Box Type:" +msgstr "Tipo de cercado:" + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:106 +#: flatcamTools/ToolCopperThieving.py:176 +msgid "" +"- 'Rectangular' - the bounding box will be of rectangular shape.\n" +"- 'Minimal' - the bounding box will be the convex hull shape." +msgstr "" +"- 'Rectangular': el cuadro delimitador tendrá forma rectangular.\n" +"- 'Mínimo': el cuadro delimitador tendrá forma de casco convexo." + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:120 +#: flatcamTools/ToolCopperThieving.py:192 +msgid "Dots Grid" +msgstr "Cuadrícula de puntos" + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:121 +#: flatcamTools/ToolCopperThieving.py:193 +msgid "Squares Grid" +msgstr "Cuadrícula de cuadrados" + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:122 +#: flatcamTools/ToolCopperThieving.py:194 +msgid "Lines Grid" +msgstr "Cuadrícula de líneas" + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:124 +#: flatcamTools/ToolCopperThieving.py:196 +msgid "Fill Type:" +msgstr "Tipo de relleno:" + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:126 +#: flatcamTools/ToolCopperThieving.py:198 +msgid "" +"- 'Solid' - copper thieving will be a solid polygon.\n" +"- 'Dots Grid' - the empty area will be filled with a pattern of dots.\n" +"- 'Squares Grid' - the empty area will be filled with a pattern of squares.\n" +"- 'Lines Grid' - the empty area will be filled with a pattern of lines." +msgstr "" +"- 'Sólido': el robo de cobre será un polígono sólido.\n" +"- 'Cuadrícula de puntos': el área vacía se rellenará con un patrón de " +"puntos.\n" +"- 'Cuadrícula de cuadrados': el área vacía se rellenará con un patrón de " +"cuadrados.\n" +"- 'Cuadrícula de líneas': el área vacía se rellenará con un patrón de líneas." + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:134 +#: flatcamTools/ToolCopperThieving.py:217 +msgid "Dots Grid Parameters" +msgstr "Parámetros de cuadrícula de puntos" + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:140 +#: flatcamTools/ToolCopperThieving.py:223 +msgid "Dot diameter in Dots Grid." +msgstr "Diámetro de punto en cuadrícula de puntos." + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:151 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:180 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:209 +#: flatcamTools/ToolCopperThieving.py:234 +#: flatcamTools/ToolCopperThieving.py:274 +#: flatcamTools/ToolCopperThieving.py:314 +msgid "Spacing" +msgstr "Spacing" + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:153 +#: flatcamTools/ToolCopperThieving.py:236 +msgid "Distance between each two dots in Dots Grid." +msgstr "Distancia entre cada dos puntos en la cuadrícula de puntos." + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:163 +#: flatcamTools/ToolCopperThieving.py:257 +msgid "Squares Grid Parameters" +msgstr "Parámetros de la cuadrícula de cuadrados" + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:169 +#: flatcamTools/ToolCopperThieving.py:263 +msgid "Square side size in Squares Grid." +msgstr "Tamaño del lado cuadrado en cuadrícula de cuadrados." + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:182 +#: flatcamTools/ToolCopperThieving.py:276 +msgid "Distance between each two squares in Squares Grid." +msgstr "Distancia entre cada dos cuadrados en la cuadrícula de cuadrados." + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:192 +#: flatcamTools/ToolCopperThieving.py:297 +msgid "Lines Grid Parameters" +msgstr "Parámetros de cuadrícula de líneas" + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:198 +#: flatcamTools/ToolCopperThieving.py:303 +msgid "Line thickness size in Lines Grid." +msgstr "Tamaño del grosor de línea en la cuadrícula de líneas." + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:211 +#: flatcamTools/ToolCopperThieving.py:316 +msgid "Distance between each two lines in Lines Grid." +msgstr "Distancia entre cada dos líneas en la cuadrícula de líneas." + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:221 +#: flatcamTools/ToolCopperThieving.py:354 +msgid "Robber Bar Parameters" +msgstr "Parámetros de la Robber Bar" + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:223 +#: flatcamTools/ToolCopperThieving.py:356 +msgid "" +"Parameters used for the robber bar.\n" +"Robber bar = copper border to help in pattern hole plating." +msgstr "" +"Parámetros utilizados para la Robber Bar.\n" +"Robber Bar = borde de cobre para ayudar en el enchapado de agujeros." + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:231 +#: flatcamTools/ToolCopperThieving.py:364 +msgid "Bounding box margin for robber bar." +msgstr "Margen límite del recinto para Robber Bar." + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:242 +#: flatcamTools/ToolCopperThieving.py:375 +msgid "Thickness" +msgstr "Espesor" + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:244 +#: flatcamTools/ToolCopperThieving.py:377 +msgid "The robber bar thickness." +msgstr "El grosor de la Robber Bar." + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:254 +#: flatcamTools/ToolCopperThieving.py:408 +msgid "Pattern Plating Mask" +msgstr "Máscara de baño de patrones" + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:256 +#: flatcamTools/ToolCopperThieving.py:410 +msgid "Generate a mask for pattern plating." +msgstr "Genere una máscara para el enchapado de patrones." + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:263 +#: flatcamTools/ToolCopperThieving.py:433 +msgid "" +"The distance between the possible copper thieving elements\n" +"and/or robber bar and the actual openings in the mask." +msgstr "" +"La distancia entre los posibles elementos de Copper Thieving.\n" +"y / o Robber Bar y las aberturas reales en la máscara." + +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:27 +msgid "Calibration Tool Options" +msgstr "Opc. de Herram. de Calibración" + +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:38 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:38 +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:38 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:38 +#: flatcamTools/ToolCopperThieving.py:91 flatcamTools/ToolFiducials.py:151 +msgid "Parameters used for this tool." +msgstr "Parámetros utilizados para esta herramienta." + +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:43 +#: flatcamTools/ToolCalibration.py:181 +msgid "Source Type" +msgstr "Tipo de Fuente" + +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:44 +#: flatcamTools/ToolCalibration.py:182 +msgid "" +"The source of calibration points.\n" +"It can be:\n" +"- Object -> click a hole geo for Excellon or a pad for Gerber\n" +"- Free -> click freely on canvas to acquire the calibration points" +msgstr "" +"La fuente de los puntos de calibración.\n" +"Puede ser:\n" +"- Objeto -> haga clic en un agujero geo para Excellon o una almohadilla para " +"Gerber\n" +"- Libre -> haga clic libremente en el lienzo para adquirir los puntos de " +"calibración" + +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:49 +#: flatcamTools/ToolCalibration.py:187 +msgid "Free" +msgstr "Libre" + +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:63 +#: flatcamTools/ToolCalibration.py:76 +msgid "Height (Z) for travelling between the points." +msgstr "Altura (Z) para viajar entre los puntos." + +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:75 +#: flatcamTools/ToolCalibration.py:88 +msgid "Verification Z" +msgstr "Verificación Z" + +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:77 +#: flatcamTools/ToolCalibration.py:90 +msgid "Height (Z) for checking the point." +msgstr "Altura (Z) para verificar el punto." + +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:89 +#: flatcamTools/ToolCalibration.py:102 +msgid "Zero Z tool" +msgstr "Cero la Z para Herram." + +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:91 +#: flatcamTools/ToolCalibration.py:104 +msgid "" +"Include a sequence to zero the height (Z)\n" +"of the verification tool." +msgstr "" +"Incluya una secuencia para poner a cero la altura (Z)\n" +"de la herramienta de verificación." + +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:100 +#: flatcamTools/ToolCalibration.py:113 +msgid "Height (Z) for mounting the verification probe." +msgstr "Altura (Z) para montar la sonda de verificación." + +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:114 +#: flatcamTools/ToolCalibration.py:127 +msgid "" +"Toolchange X,Y position.\n" +"If no value is entered then the current\n" +"(x, y) point will be used," +msgstr "" +"Posición de cambio de herramienta X, Y.\n" +"Si no se ingresa ningún valor, entonces el actual\n" +"(x, y) se utilizará el punto," + +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:125 +#: flatcamTools/ToolCalibration.py:153 +msgid "Second point" +msgstr "Segundo punto" + +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:127 +#: flatcamTools/ToolCalibration.py:155 +msgid "" +"Second point in the Gcode verification can be:\n" +"- top-left -> the user will align the PCB vertically\n" +"- bottom-right -> the user will align the PCB horizontally" +msgstr "" +"El segundo punto en la verificación de Gcode puede ser:\n" +"- arriba a la izquierda -> el usuario alineará la PCB verticalmente\n" +"- abajo a la derecha -> el usuario alineará la PCB horizontalmente" + +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:27 +msgid "Extract Drills Options" +msgstr "Opciones de Extracción de Taladros" + +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:42 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:42 +#: flatcamTools/ToolExtractDrills.py:68 flatcamTools/ToolPunchGerber.py:75 +msgid "Processed Pads Type" +msgstr "Tipo de almohadillas procesadas" + +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:44 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:44 +#: flatcamTools/ToolExtractDrills.py:70 flatcamTools/ToolPunchGerber.py:77 +msgid "" +"The type of pads shape to be processed.\n" +"If the PCB has many SMD pads with rectangular pads,\n" +"disable the Rectangular aperture." +msgstr "" +"El tipo de forma de almohadillas que se procesará.\n" +"Si la PCB tiene muchas almohadillas SMD con almohadillas rectangulares,\n" +"deshabilitar la apertura rectangular." + +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:54 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:54 +#: flatcamTools/ToolExtractDrills.py:80 flatcamTools/ToolPunchGerber.py:91 +msgid "Process Circular Pads." +msgstr "Proceso de Almohadillas Circulares." + +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:60 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:162 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:60 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:164 +#: flatcamTools/ToolExtractDrills.py:86 flatcamTools/ToolExtractDrills.py:214 +#: flatcamTools/ToolPunchGerber.py:97 flatcamTools/ToolPunchGerber.py:242 +msgid "Oblong" +msgstr "Oblongo" + +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:62 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:62 +#: flatcamTools/ToolExtractDrills.py:88 flatcamTools/ToolPunchGerber.py:99 +msgid "Process Oblong Pads." +msgstr "Procesar almohadillas oblongas." + +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:70 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:70 +#: flatcamTools/ToolExtractDrills.py:96 flatcamTools/ToolPunchGerber.py:107 +msgid "Process Square Pads." +msgstr "Procesar almohadillas cuadradas." + +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:78 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:78 +#: flatcamTools/ToolExtractDrills.py:104 flatcamTools/ToolPunchGerber.py:115 +msgid "Process Rectangular Pads." +msgstr "Proceso Almohadillas Rectangulares." + +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:84 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:201 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:84 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:203 +#: flatcamTools/ToolExtractDrills.py:110 flatcamTools/ToolExtractDrills.py:253 +#: flatcamTools/ToolProperties.py:172 flatcamTools/ToolPunchGerber.py:121 +#: flatcamTools/ToolPunchGerber.py:281 +msgid "Others" +msgstr "Otros" + +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:86 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:86 +#: flatcamTools/ToolExtractDrills.py:112 flatcamTools/ToolPunchGerber.py:123 +msgid "Process pads not in the categories above." +msgstr "Procese los pads no en las categorías anteriores." + +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:99 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:123 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:100 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:125 +#: flatcamTools/ToolExtractDrills.py:139 flatcamTools/ToolExtractDrills.py:156 +#: flatcamTools/ToolPunchGerber.py:150 flatcamTools/ToolPunchGerber.py:184 +msgid "Fixed Diameter" +msgstr "Diámetro fijo" + +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:100 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:140 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:101 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:142 +#: flatcamTools/ToolExtractDrills.py:140 flatcamTools/ToolExtractDrills.py:192 +#: flatcamTools/ToolPunchGerber.py:151 flatcamTools/ToolPunchGerber.py:214 +msgid "Fixed Annular Ring" +msgstr "Anillo anular fijo" + +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:101 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:102 +#: flatcamTools/ToolExtractDrills.py:141 flatcamTools/ToolPunchGerber.py:152 +msgid "Proportional" +msgstr "Proporcional" + +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:107 +#: flatcamTools/ToolExtractDrills.py:130 +msgid "" +"The method for processing pads. Can be:\n" +"- Fixed Diameter -> all holes will have a set size\n" +"- Fixed Annular Ring -> all holes will have a set annular ring\n" +"- Proportional -> each hole size will be a fraction of the pad size" +msgstr "" +"El método para procesar almohadillas. Puede ser:\n" +"- Diámetro fijo -> todos los agujeros tendrán un tamaño establecido\n" +"- Anillo anular fijo -> todos los agujeros tendrán un anillo anular " +"establecido\n" +"- Proporcional -> cada tamaño de agujero será una fracción del tamaño de la " +"almohadilla" + +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:133 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:135 +#: flatcamTools/ToolExtractDrills.py:166 flatcamTools/ToolPunchGerber.py:194 +msgid "Fixed hole diameter." +msgstr "Diámetro fijo del agujero." + +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:142 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:144 +#: flatcamTools/ToolExtractDrills.py:194 flatcamTools/ToolPunchGerber.py:216 +msgid "" +"The size of annular ring.\n" +"The copper sliver between the hole exterior\n" +"and the margin of the copper pad." +msgstr "" +"El tamaño del anillo anular.\n" +"La astilla de cobre entre el exterior del agujero\n" +"y el margen de la almohadilla de cobre." + +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:151 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:153 +#: flatcamTools/ToolExtractDrills.py:203 flatcamTools/ToolPunchGerber.py:231 +msgid "The size of annular ring for circular pads." +msgstr "El tamaño del anillo anular para almohadillas circulares." + +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:164 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:166 +#: flatcamTools/ToolExtractDrills.py:216 flatcamTools/ToolPunchGerber.py:244 +msgid "The size of annular ring for oblong pads." +msgstr "El tamaño del anillo anular para almohadillas oblongas." + +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:177 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:179 +#: flatcamTools/ToolExtractDrills.py:229 flatcamTools/ToolPunchGerber.py:257 +msgid "The size of annular ring for square pads." +msgstr "El tamaño del anillo anular para almohadillas cuadradas." + +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:190 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:192 +#: flatcamTools/ToolExtractDrills.py:242 flatcamTools/ToolPunchGerber.py:270 +msgid "The size of annular ring for rectangular pads." +msgstr "El tamaño del anillo anular para almohadillas rectangulares." + +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:203 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:205 +#: flatcamTools/ToolExtractDrills.py:255 flatcamTools/ToolPunchGerber.py:283 +msgid "The size of annular ring for other pads." +msgstr "El tamaño del anillo anular para otras almohadillas." + +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:213 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:215 +#: flatcamTools/ToolExtractDrills.py:276 flatcamTools/ToolPunchGerber.py:299 +msgid "Proportional Diameter" +msgstr "Diá. proporcional" + +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:222 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:224 +msgid "Factor" +msgstr "Factor" + +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:224 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:226 +#: flatcamTools/ToolExtractDrills.py:287 flatcamTools/ToolPunchGerber.py:310 +msgid "" +"Proportional Diameter.\n" +"The hole diameter will be a fraction of the pad size." +msgstr "" +"Diámetro proporcional.\n" +"El diámetro del agujero será una fracción del tamaño de la almohadilla." + +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:27 +msgid "Fiducials Tool Options" +msgstr "Opc. de Herram. Fiduciales" + +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:45 +#: flatcamTools/ToolFiducials.py:158 +msgid "" +"This set the fiducial diameter if fiducial type is circular,\n" +"otherwise is the size of the fiducial.\n" +"The soldermask opening is double than that." +msgstr "" +"Esto establece el diámetro fiducial si el tipo fiducial es circular,\n" +"de lo contrario es el tamaño del fiducial.\n" +"La apertura de la máscara de soldadura es el doble que eso." + +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:73 +#: flatcamTools/ToolFiducials.py:186 +msgid "Auto" +msgstr "Auto" + +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:74 +#: flatcamTools/ToolFiducials.py:187 +msgid "Manual" +msgstr "Manual" + +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:76 +#: flatcamTools/ToolFiducials.py:189 +msgid "Mode:" +msgstr "Modo:" + +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:78 +msgid "" +"- 'Auto' - automatic placement of fiducials in the corners of the bounding " +"box.\n" +"- 'Manual' - manual placement of fiducials." +msgstr "" +"- 'Auto' - colocación automática de fiduciales en las esquinas del cuadro " +"delimitador.\n" +"- 'Manual' - colocación manual de fiduciales." + +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:86 +#: flatcamTools/ToolFiducials.py:199 +msgid "Up" +msgstr "Arriba" + +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:87 +#: flatcamTools/ToolFiducials.py:200 +msgid "Down" +msgstr "Abajo" + +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:90 +#: flatcamTools/ToolFiducials.py:203 +msgid "Second fiducial" +msgstr "Segundo fiducial" + +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:92 +#: flatcamTools/ToolFiducials.py:205 +msgid "" +"The position for the second fiducial.\n" +"- 'Up' - the order is: bottom-left, top-left, top-right.\n" +"- 'Down' - the order is: bottom-left, bottom-right, top-right.\n" +"- 'None' - there is no second fiducial. The order is: bottom-left, top-right." +msgstr "" +"La posición para el segundo fiducial.\n" +"- 'Arriba' - el orden es: abajo a la izquierda, arriba a la izquierda, " +"arriba a la derecha.\n" +"- 'Abajo' - el orden es: abajo a la izquierda, abajo a la derecha, arriba a " +"la derecha.\n" +"- 'Ninguno' - no hay un segundo fiducial. El orden es: abajo a la izquierda, " +"arriba a la derecha." + +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:108 +#: flatcamTools/ToolFiducials.py:221 +msgid "Cross" +msgstr "Cruce" + +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:109 +#: flatcamTools/ToolFiducials.py:222 +msgid "Chess" +msgstr "Ajedrez" + +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:112 +#: flatcamTools/ToolFiducials.py:224 +msgid "Fiducial Type" +msgstr "Tipo fiducial" + +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:114 +#: flatcamTools/ToolFiducials.py:226 +msgid "" +"The type of fiducial.\n" +"- 'Circular' - this is the regular fiducial.\n" +"- 'Cross' - cross lines fiducial.\n" +"- 'Chess' - chess pattern fiducial." +msgstr "" +"El tipo de fiducial.\n" +"- 'Circular': este es el fiducial regular.\n" +"- 'Cruce' - líneas cruzadas fiduciales.\n" +"- 'Ajedrez' - patrón de ajedrez fiducial." + +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:123 +#: flatcamTools/ToolFiducials.py:235 +msgid "Line thickness" +msgstr "Grosor de la línea" + +#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:27 +msgid "Invert Gerber Tool Options" +msgstr "Opciones de la herram. Invertir Gerber" + +#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:33 +msgid "" +"A tool to invert Gerber geometry from positive to negative\n" +"and in revers." +msgstr "" +"Una herramienta para invertir la geometría de Gerber de positivo a negativo\n" +"y a la inversa." + +#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:47 +#: flatcamTools/ToolInvertGerber.py:90 +msgid "" +"Distance by which to avoid\n" +"the edges of the Gerber object." +msgstr "" +"Distancia por la cual evitar\n" +"Los bordes del objeto Gerber." + +#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:58 +#: flatcamTools/ToolInvertGerber.py:101 +msgid "Lines Join Style" +msgstr "Estilo de unión de líneas" + +#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:60 +#: flatcamTools/ToolInvertGerber.py:103 +msgid "" +"The way that the lines in the object outline will be joined.\n" +"Can be:\n" +"- rounded -> an arc is added between two joining lines\n" +"- square -> the lines meet in 90 degrees angle\n" +"- bevel -> the lines are joined by a third line" +msgstr "" +"La forma en que se unirán las líneas en el contorno del objeto.\n" +"Puede ser:\n" +"- redondeado -> se agrega un arco entre dos líneas de unión\n" +"- cuadrado -> las líneas se encuentran en un ángulo de 90 grados\n" +"- bisel -> las líneas están unidas por una tercera línea" + +#: flatcamGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:27 +msgid "Optimal Tool Options" +msgstr "Opciones de Herram. Óptimas" + +#: flatcamGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:33 +msgid "" +"A tool to find the minimum distance between\n" +"every two Gerber geometric elements" +msgstr "" +"Una herramienta para encontrar la distancia mínima entre\n" +"cada dos elementos geométricos de Gerber" + +#: flatcamGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:48 +#: flatcamTools/ToolOptimal.py:78 +msgid "Precision" +msgstr "Precisión" + +#: flatcamGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:50 +msgid "Number of decimals for the distances and coordinates in this tool." +msgstr "" +"Número de decimales para las distancias y coordenadas en esta herramienta." + +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:27 +msgid "Punch Gerber Options" +msgstr "Opciones de Perforadora Gerber" + +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:108 +#: flatcamTools/ToolPunchGerber.py:141 +msgid "" +"The punch hole source can be:\n" +"- Excellon Object-> the Excellon object drills center will serve as " +"reference.\n" +"- Fixed Diameter -> will try to use the pads center as reference adding " +"fixed diameter holes.\n" +"- Fixed Annular Ring -> will try to keep a set annular ring.\n" +"- Proportional -> will make a Gerber punch hole having the diameter a " +"percentage of the pad diameter." +msgstr "" +"La fuente del orificio de perforación puede ser:\n" +"- Objeto Excellon-> el centro de perforación de objetos Excellon servirá " +"como referencia.\n" +"- Diámetro fijo -> intentará usar el centro de las almohadillas como " +"referencia agregando agujeros de diámetro fijo.\n" +"- Anillo anular fijo -> intentará mantener un anillo anular establecido.\n" +"- Proporcional -> hará un orificio de perforación Gerber con un diámetro del " +"porcentaje del diámetro de la almohadilla." + +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:27 +msgid "QRCode Tool Options" +msgstr "Opciones de la herram. QRCode" + +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:33 +msgid "" +"A tool to create a QRCode that can be inserted\n" +"into a selected Gerber file, or it can be exported as a file." +msgstr "" +"Una herramienta para crear un QRCode que se puede insertar\n" +"en un archivo Gerber seleccionado, o puede exportarse como un archivo." + +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:45 +#: flatcamTools/ToolQRCode.py:100 +msgid "Version" +msgstr "Versión" + +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:47 +#: flatcamTools/ToolQRCode.py:102 +msgid "" +"QRCode version can have values from 1 (21x21 boxes)\n" +"to 40 (177x177 boxes)." +msgstr "" +"La versión de QRCode puede tener valores de 1 (21x21 elementos)\n" +"a 40 (177x177 elementos)." + +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:58 +#: flatcamTools/ToolQRCode.py:113 +msgid "Error correction" +msgstr "Corrección de error" + +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:60 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:71 +#: flatcamTools/ToolQRCode.py:115 flatcamTools/ToolQRCode.py:126 +#, python-format +msgid "" +"Parameter that controls the error correction used for the QR Code.\n" +"L = maximum 7%% errors can be corrected\n" +"M = maximum 15%% errors can be corrected\n" +"Q = maximum 25%% errors can be corrected\n" +"H = maximum 30%% errors can be corrected." +msgstr "" +"Parámetro que controla la corrección de errores utilizada para el código " +"QR.\n" +"L = máximo 7 %% de errores pueden ser corregidos\n" +"M = máximo 15%% de errores pueden ser corregidos\n" +"Q = se puede corregir un máximo de 25%% de errores\n" +"H = máximo 30 %% de errores pueden ser corregidos." + +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:81 +#: flatcamTools/ToolQRCode.py:136 +msgid "Box Size" +msgstr "Tamaño de Elementos" + +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:83 +#: flatcamTools/ToolQRCode.py:138 +msgid "" +"Box size control the overall size of the QRcode\n" +"by adjusting the size of each box in the code." +msgstr "" +"El tamaño del elemento controla el tamaño general del código QR\n" +"ajustando el tamaño de cada cuadro en el código." + +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:94 +#: flatcamTools/ToolQRCode.py:149 +msgid "Border Size" +msgstr "Tamaño de borde" + +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:96 +#: flatcamTools/ToolQRCode.py:151 +msgid "" +"Size of the QRCode border. How many boxes thick is the border.\n" +"Default value is 4. The width of the clearance around the QRCode." +msgstr "" +"Tamaño del borde del código QR. Cuántos elementos tiene el borde.\n" +"El valor predeterminado es 4. El ancho del espacio libre alrededor del " +"Código QR." + +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:107 +#: flatcamTools/ToolQRCode.py:162 +msgid "QRCode Data" +msgstr "Datos de QRCode" + +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:109 +#: flatcamTools/ToolQRCode.py:164 +msgid "QRCode Data. Alphanumeric text to be encoded in the QRCode." +msgstr "Datos de QRCode. Texto alfanumérico a codificar en el Código QR." + +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:113 +#: flatcamTools/ToolQRCode.py:168 +msgid "Add here the text to be included in the QRCode..." +msgstr "Agregue aquí el texto que se incluirá en el QRCode ..." + +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:119 +#: flatcamTools/ToolQRCode.py:174 +msgid "Polarity" +msgstr "Polaridad" + +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:121 +#: flatcamTools/ToolQRCode.py:176 +msgid "" +"Choose the polarity of the QRCode.\n" +"It can be drawn in a negative way (squares are clear)\n" +"or in a positive way (squares are opaque)." +msgstr "" +"Elija la polaridad del código QR.\n" +"Se puede dibujar de forma negativa (los cuadrados son claros)\n" +"o de manera positiva (los cuadrados son opacos)." + +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:125 +#: flatcamTools/ToolFilm.py:296 flatcamTools/ToolQRCode.py:180 +msgid "Negative" +msgstr "Negativa" + +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:126 +#: flatcamTools/ToolFilm.py:295 flatcamTools/ToolQRCode.py:181 +msgid "Positive" +msgstr "Positivo" + +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:128 +#: flatcamTools/ToolQRCode.py:183 +msgid "" +"Choose the type of QRCode to be created.\n" +"If added on a Silkscreen Gerber file the QRCode may\n" +"be added as positive. If it is added to a Copper Gerber\n" +"file then perhaps the QRCode can be added as negative." +msgstr "" +"Elija el tipo de QRCode que se creará.\n" +"Si se agrega en un archivo de Silkscreen Gerber, el QRCode puede\n" +"ser agregado como positivo Si se agrega a un cobre Gerber\n" +"entonces quizás el QRCode se pueda agregar como negativo." + +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:139 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:145 +#: flatcamTools/ToolQRCode.py:194 flatcamTools/ToolQRCode.py:200 +msgid "" +"The bounding box, meaning the empty space that surrounds\n" +"the QRCode geometry, can have a rounded or a square shape." +msgstr "" +"El cuadro delimitador, que significa el espacio vacío que rodea\n" +"La geometría QRCode, puede tener una forma redondeada o cuadrada." + +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:142 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:239 +#: flatcamTools/ToolQRCode.py:197 flatcamTools/ToolTransform.py:383 +msgid "Rounded" +msgstr "Redondeado" + +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:152 +#: flatcamTools/ToolQRCode.py:228 +msgid "Fill Color" +msgstr "Color de relleno" + +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:154 +#: flatcamTools/ToolQRCode.py:230 +msgid "Set the QRCode fill color (squares color)." +msgstr "" +"Establezca el color de relleno del código QR (color de cuadrados / " +"elementos)." + +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:173 +#: flatcamTools/ToolQRCode.py:252 +msgid "Back Color" +msgstr "Color de fondo" + +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:175 +#: flatcamTools/ToolQRCode.py:254 +msgid "Set the QRCode background color." +msgstr "Establece el color de fondo del QRCode." + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:27 +msgid "Check Rules Tool Options" +msgstr "Opciones de la Herram. Verifique Reglas" + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:32 +msgid "" +"A tool to check if Gerber files are within a set\n" +"of Manufacturing Rules." +msgstr "" +"Una herramienta para verificar si los archivos de Gerber están dentro de un " +"conjunto\n" +"de las normas de fabricación." + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:42 +#: flatcamTools/ToolRulesCheck.py:265 flatcamTools/ToolRulesCheck.py:929 +msgid "Trace Size" +msgstr "Tamaño de traza" + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:44 +#: flatcamTools/ToolRulesCheck.py:267 +msgid "This checks if the minimum size for traces is met." +msgstr "Esto comprueba si se cumple el tamaño mínimo para las trazas." + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:54 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:74 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:94 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:114 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:134 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:154 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:174 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:194 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:216 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:236 +#: flatcamTools/ToolRulesCheck.py:277 flatcamTools/ToolRulesCheck.py:299 +#: flatcamTools/ToolRulesCheck.py:322 flatcamTools/ToolRulesCheck.py:345 +#: flatcamTools/ToolRulesCheck.py:368 flatcamTools/ToolRulesCheck.py:391 +#: flatcamTools/ToolRulesCheck.py:414 flatcamTools/ToolRulesCheck.py:437 +#: flatcamTools/ToolRulesCheck.py:462 flatcamTools/ToolRulesCheck.py:485 +msgid "Min value" +msgstr "Valor mínimo" + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:56 +#: flatcamTools/ToolRulesCheck.py:279 +msgid "Minimum acceptable trace size." +msgstr "Tamaño de traza mínimo aceptable." + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:61 +#: flatcamTools/ToolRulesCheck.py:286 flatcamTools/ToolRulesCheck.py:1157 +#: flatcamTools/ToolRulesCheck.py:1187 +msgid "Copper to Copper clearance" +msgstr "Distancia de Cobre a Cobre" + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:63 +#: flatcamTools/ToolRulesCheck.py:288 +msgid "" +"This checks if the minimum clearance between copper\n" +"features is met." +msgstr "" +"Esto comprueba si la distancia mínima entre cobre\n" +"huellas se cumplen." + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:76 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:96 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:116 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:136 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:156 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:176 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:238 +#: flatcamTools/ToolRulesCheck.py:301 flatcamTools/ToolRulesCheck.py:324 +#: flatcamTools/ToolRulesCheck.py:347 flatcamTools/ToolRulesCheck.py:370 +#: flatcamTools/ToolRulesCheck.py:393 flatcamTools/ToolRulesCheck.py:416 +#: flatcamTools/ToolRulesCheck.py:464 +msgid "Minimum acceptable clearance value." +msgstr "Valor mínimo de distancia aceptable." + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:81 +#: flatcamTools/ToolRulesCheck.py:309 flatcamTools/ToolRulesCheck.py:1217 +#: flatcamTools/ToolRulesCheck.py:1223 flatcamTools/ToolRulesCheck.py:1236 +#: flatcamTools/ToolRulesCheck.py:1243 +msgid "Copper to Outline clearance" +msgstr "Distancia de Cobre a Contorno" + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:83 +#: flatcamTools/ToolRulesCheck.py:311 +msgid "" +"This checks if the minimum clearance between copper\n" +"features and the outline is met." +msgstr "" +"Esto comprueba si la distancia mínima entre cobre\n" +"huellas y el esquema se cumple." + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:101 +#: flatcamTools/ToolRulesCheck.py:332 +msgid "Silk to Silk Clearance" +msgstr "Distancia de Serigrafía a Serigrafía" + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:103 +#: flatcamTools/ToolRulesCheck.py:334 +msgid "" +"This checks if the minimum clearance between silkscreen\n" +"features and silkscreen features is met." +msgstr "" +"Esto comprueba si la distancia mínima entre serigrafía\n" +"huellas y huellas de serigrafía se cumplen." + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:121 +#: flatcamTools/ToolRulesCheck.py:355 flatcamTools/ToolRulesCheck.py:1326 +#: flatcamTools/ToolRulesCheck.py:1332 flatcamTools/ToolRulesCheck.py:1350 +msgid "Silk to Solder Mask Clearance" +msgstr "Serigrafía para Soldar Máscara Distancia" + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:123 +#: flatcamTools/ToolRulesCheck.py:357 +msgid "" +"This checks if the minimum clearance between silkscreen\n" +"features and soldermask features is met." +msgstr "" +"Esto comprueba si la distancia mínima entre serigrafía\n" +"Traces y soldermask traces se cumplen." + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:141 +#: flatcamTools/ToolRulesCheck.py:378 flatcamTools/ToolRulesCheck.py:1380 +#: flatcamTools/ToolRulesCheck.py:1386 flatcamTools/ToolRulesCheck.py:1400 +#: flatcamTools/ToolRulesCheck.py:1407 +msgid "Silk to Outline Clearance" +msgstr "Serigrafía para Contorno Distancia" + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:143 +#: flatcamTools/ToolRulesCheck.py:380 +msgid "" +"This checks if the minimum clearance between silk\n" +"features and the outline is met." +msgstr "" +"Esto verifica si el espacio libre mínimo entre la serigrafía\n" +"huellas y el contorno se cumple." + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:161 +#: flatcamTools/ToolRulesCheck.py:401 flatcamTools/ToolRulesCheck.py:1418 +#: flatcamTools/ToolRulesCheck.py:1445 +msgid "Minimum Solder Mask Sliver" +msgstr "Astilla de máscara de soldadura mínima" + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:163 +#: flatcamTools/ToolRulesCheck.py:403 +msgid "" +"This checks if the minimum clearance between soldermask\n" +"features and soldermask features is met." +msgstr "" +"Esto verifica si la distancia mínima entre la máscara de soldadura\n" +"rastros y rastros de máscara de soldadura se cumplen." + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:181 +#: flatcamTools/ToolRulesCheck.py:424 flatcamTools/ToolRulesCheck.py:1483 +#: flatcamTools/ToolRulesCheck.py:1489 flatcamTools/ToolRulesCheck.py:1505 +#: flatcamTools/ToolRulesCheck.py:1512 +msgid "Minimum Annular Ring" +msgstr "Anillo anular mínimo" + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:183 +#: flatcamTools/ToolRulesCheck.py:426 +msgid "" +"This checks if the minimum copper ring left by drilling\n" +"a hole into a pad is met." +msgstr "" +"Esto verifica si queda el anillo de cobre mínimo al perforar\n" +"Se encuentra un agujero en una almohadilla." + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:196 +#: flatcamTools/ToolRulesCheck.py:439 +msgid "Minimum acceptable ring value." +msgstr "Valor mínimo aceptable del anillo." + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:203 +#: flatcamTools/ToolRulesCheck.py:449 flatcamTools/ToolRulesCheck.py:873 +msgid "Hole to Hole Clearance" +msgstr "Distancia entre Agujeros" + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:205 +#: flatcamTools/ToolRulesCheck.py:451 +msgid "" +"This checks if the minimum clearance between a drill hole\n" +"and another drill hole is met." +msgstr "" +"Esto verifica si la distancia mínima entre un taladro\n" +"y se encuentra otro taladro." + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:218 +#: flatcamTools/ToolRulesCheck.py:487 +msgid "Minimum acceptable drill size." +msgstr "Tamaño mínimo aceptable de perforación." + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:223 +#: flatcamTools/ToolRulesCheck.py:472 flatcamTools/ToolRulesCheck.py:847 +msgid "Hole Size" +msgstr "Tamaño del Agujero" + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:225 +#: flatcamTools/ToolRulesCheck.py:474 +msgid "" +"This checks if the drill holes\n" +"sizes are above the threshold." +msgstr "" +"Esto comprueba si los agujeros de perforación\n" +"Los tamaños están por encima del umbral." + +#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:27 +msgid "2Sided Tool Options" +msgstr "Opc. de herra. de 2 caras" + +#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:33 +msgid "" +"A tool to help in creating a double sided\n" +"PCB using alignment holes." +msgstr "" +"Una herramienta para ayudar en la creación de una doble cara.\n" +"PCB utilizando orificios de alineación." + +#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:47 +msgid "Drill dia" +msgstr "Diá. del taladro" + +#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:49 +#: flatcamTools/ToolDblSided.py:363 flatcamTools/ToolDblSided.py:368 +msgid "Diameter of the drill for the alignment holes." +msgstr "Diámetro del taladro para los orificios de alineación." + +#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:56 +#: flatcamTools/ToolDblSided.py:377 +msgid "Align Axis" +msgstr "Alinear eje" + +#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:58 +#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:71 +#: flatcamTools/ToolDblSided.py:165 flatcamTools/ToolDblSided.py:379 +msgid "Mirror vertically (X) or horizontally (Y)." +msgstr "Espejo verticalmente (X) u horizontal (Y)." + +#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:69 +msgid "Mirror Axis:" +msgstr "Eje del espejo:" + +#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:80 +#: flatcamTools/ToolDblSided.py:181 +msgid "Point" +msgstr "Punto" + +#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:81 +#: flatcamTools/ToolDblSided.py:182 +msgid "Box" +msgstr "Caja" + +#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:82 +msgid "Axis Ref" +msgstr "Ref. del eje" + +#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:84 +msgid "" +"The axis should pass through a point or cut\n" +" a specified box (in a FlatCAM object) through \n" +"the center." +msgstr "" +"El eje debe pasar por un punto o cortar\n" +"  un cuadro especificado (en un objeto FlatCAM) a través de\n" +"El centro." + +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:27 +msgid "Calculators Tool Options" +msgstr "Opc. de herra. de calculadoras" + +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:31 +#: flatcamTools/ToolCalculators.py:25 +msgid "V-Shape Tool Calculator" +msgstr "Calc. de herra. en forma de V" + +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:33 +msgid "" +"Calculate the tool diameter for a given V-shape tool,\n" +"having the tip diameter, tip angle and\n" +"depth-of-cut as parameters." +msgstr "" +"Calcule el diámetro de la herramienta para una herramienta de forma de V " +"dada,\n" +"teniendo el diámetro de la punta, el ángulo de la punta y\n" +"Profundidad de corte como parámetros." + +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:50 +#: flatcamTools/ToolCalculators.py:94 +msgid "Tip Diameter" +msgstr "Diá. de la punta" + +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:52 +#: flatcamTools/ToolCalculators.py:102 +msgid "" +"This is the tool tip diameter.\n" +"It is specified by manufacturer." +msgstr "" +"Este es el diámetro de la punta de la herramienta.\n" +"Está especificado por el fabricante." + +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:64 +#: flatcamTools/ToolCalculators.py:105 +msgid "Tip Angle" +msgstr "Ángulo de la punta" + +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:66 +msgid "" +"This is the angle on the tip of the tool.\n" +"It is specified by manufacturer." +msgstr "" +"Este es el ángulo en la punta de la herramienta.\n" +"Está especificado por el fabricante." + +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:80 +msgid "" +"This is depth to cut into material.\n" +"In the CNCJob object it is the CutZ parameter." +msgstr "" +"Esta es la profundidad para cortar en material.\n" +"En el objeto de trabajo CNC es el parámetro CutZ." + +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:87 +#: flatcamTools/ToolCalculators.py:27 +msgid "ElectroPlating Calculator" +msgstr "Calculadora de electrochapado" + +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:89 +#: flatcamTools/ToolCalculators.py:158 +msgid "" +"This calculator is useful for those who plate the via/pad/drill holes,\n" +"using a method like graphite ink or calcium hypophosphite ink or palladium " +"chloride." +msgstr "" +"Esta calculadora es útil para aquellos que platican la vía / la " +"almohadilla / los agujeros de perforación,\n" +"Utilizando un método como tinta de graphite o tinta de hipofosfito de calcio " +"o cloruro de paladio." + +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:100 +#: flatcamTools/ToolCalculators.py:167 +msgid "Board Length" +msgstr "Longitud del tablero" + +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:102 +#: flatcamTools/ToolCalculators.py:173 +msgid "This is the board length. In centimeters." +msgstr "Esta es la longitud del tablero. En centímetros." + +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:112 +#: flatcamTools/ToolCalculators.py:175 +msgid "Board Width" +msgstr "Ancho del tablero" + +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:114 +#: flatcamTools/ToolCalculators.py:181 +msgid "This is the board width.In centimeters." +msgstr "Este es el ancho de la tabla. En centímetros." + +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:119 +#: flatcamTools/ToolCalculators.py:183 +msgid "Current Density" +msgstr "Densidad actual" + +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:125 +#: flatcamTools/ToolCalculators.py:190 +msgid "" +"Current density to pass through the board. \n" +"In Amps per Square Feet ASF." +msgstr "" +"Densidad de corriente para pasar por el tablero.\n" +"En amperios por pies cuadrados ASF." + +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:131 +#: flatcamTools/ToolCalculators.py:193 +msgid "Copper Growth" +msgstr "Crecimiento de cobre" + +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:137 +#: flatcamTools/ToolCalculators.py:200 +msgid "" +"How thick the copper growth is intended to be.\n" +"In microns." +msgstr "" +"Qué tan grueso pretende ser el crecimiento del cobre.\n" +"En micras." + +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:28 +msgid "Cutout Tool Options" +msgstr "Opc. de herra. de recorte" + +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:43 +#: flatcamTools/ToolCalculators.py:123 flatcamTools/ToolCutOut.py:129 +msgid "Tool Diameter" +msgstr "Diá. de Herram" + +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:45 +#: flatcamTools/ToolCutOut.py:131 +msgid "" +"Diameter of the tool used to cutout\n" +"the PCB shape out of the surrounding material." +msgstr "" +"Diámetro de la herramienta utilizada para cortar\n" +"La forma de PCB fuera del material circundante." + +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:100 +msgid "Object kind" +msgstr "Tipo de objeto" + +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:102 +#: flatcamTools/ToolCutOut.py:77 +msgid "" +"Choice of what kind the object we want to cutout is.
    - Single: " +"contain a single PCB Gerber outline object.
    - Panel: a panel PCB " +"Gerber object, which is made\n" +"out of many individual PCB outlines." +msgstr "" +"La elección del tipo de objeto que queremos recortar es.
    - Único : contiene un solo objeto de esquema de PCB Gerber.
    - Panel : " +"un panel de PCB Gerber objeto, que se hace\n" +"de muchos esquemas de PCB individuales." + +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:109 +#: flatcamTools/ToolCutOut.py:83 +msgid "Single" +msgstr "Soltero" + +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:110 +#: flatcamTools/ToolCutOut.py:84 +msgid "Panel" +msgstr "Panel" + +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:117 +#: flatcamTools/ToolCutOut.py:192 +msgid "" +"Margin over bounds. A positive value here\n" +"will make the cutout of the PCB further from\n" +"the actual PCB border" +msgstr "" +"Margen sobre los límites. Un valor positivo aquí\n" +"hará que el corte de la PCB esté más alejado de\n" +"el borde real de PCB" + +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:130 +#: flatcamTools/ToolCutOut.py:203 +msgid "Gap size" +msgstr "Tamaño de la brecha" + +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:132 +#: flatcamTools/ToolCutOut.py:205 +msgid "" +"The size of the bridge gaps in the cutout\n" +"used to keep the board connected to\n" +"the surrounding material (the one \n" +"from which the PCB is cutout)." +msgstr "" +"El tamaño de los huecos del puente en el recorte\n" +"solía mantener la placa conectada a\n" +"el material circundante (el\n" +"de la cual se corta el PCB)." + +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:146 +#: flatcamTools/ToolCutOut.py:245 +msgid "Gaps" +msgstr "Brechas" + +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:148 +msgid "" +"Number of gaps used for the cutout.\n" +"There can be maximum 8 bridges/gaps.\n" +"The choices are:\n" +"- None - no gaps\n" +"- lr - left + right\n" +"- tb - top + bottom\n" +"- 4 - left + right +top + bottom\n" +"- 2lr - 2*left + 2*right\n" +"- 2tb - 2*top + 2*bottom\n" +"- 8 - 2*left + 2*right +2*top + 2*bottom" +msgstr "" +"Número de huecos de puente utilizados para el recorte.\n" +"Puede haber un máximo de 8 puentes / huecos.\n" +"Las opciones son:\n" +"- Ninguno - sin espacios\n" +"- lr - izquierda + derecha\n" +"- tb - arriba + abajo\n" +"- 4 - izquierda + derecha + arriba + abajo\n" +"- 2lr - 2 * izquierda + 2 * derecha\n" +"- 2tb - 2 * top + 2 * bottom\n" +"- 8 - 2 * izquierda + 2 * derecha + 2 * arriba + 2 * abajo" + +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:170 +#: flatcamTools/ToolCutOut.py:222 +msgid "Convex Shape" +msgstr "Forma convexa" + +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:172 +#: flatcamTools/ToolCutOut.py:225 +msgid "" +"Create a convex shape surrounding the entire PCB.\n" +"Used only if the source object type is Gerber." +msgstr "" +"Crea una forma convexa que rodea toda la PCB.\n" +"Se usa solo si el tipo de objeto de origen es Gerber." + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:27 +msgid "Film Tool Options" +msgstr "Opc. de herra. de película" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:33 +msgid "" +"Create a PCB film from a Gerber or Geometry\n" +"FlatCAM object.\n" +"The file is saved in SVG format." +msgstr "" +"Crear una película de PCB de un Gerber o Geometría\n" +"Objeto FlatCAM.\n" +"El archivo se guarda en formato SVG." + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:44 +msgid "Film Type" +msgstr "Tipo de Filme" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:46 +#: flatcamTools/ToolFilm.py:300 +msgid "" +"Generate a Positive black film or a Negative film.\n" +"Positive means that it will print the features\n" +"with black on a white canvas.\n" +"Negative means that it will print the features\n" +"with white on a black canvas.\n" +"The Film format is SVG." +msgstr "" +"Genera una película negra positiva o una película negativa.\n" +"Positivo significa que imprimirá las características.\n" +"Con negro sobre un lienzo blanco.\n" +"Negativo significa que imprimirá las características.\n" +"Con blanco sobre un lienzo negro.\n" +"El formato de la película es SVG." + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:57 +msgid "Film Color" +msgstr "Color de la película" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:59 +msgid "Set the film color when positive film is selected." +msgstr "" +"Establezca el color de la película cuando se selecciona película positiva." + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:82 +#: flatcamTools/ToolFilm.py:316 +msgid "Border" +msgstr "Frontera" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:84 +#: flatcamTools/ToolFilm.py:318 +msgid "" +"Specify a border around the object.\n" +"Only for negative film.\n" +"It helps if we use as a Box Object the same \n" +"object as in Film Object. It will create a thick\n" +"black bar around the actual print allowing for a\n" +"better delimitation of the outline features which are of\n" +"white color like the rest and which may confound with the\n" +"surroundings if not for this border." +msgstr "" +"Especifique un borde alrededor del objeto.\n" +"Sólo para película negativa.\n" +"Ayuda si usamos como objeto de caja lo mismo\n" +"objeto como en el objeto de la película. Se creará una gruesa\n" +"barra negra alrededor de la impresión real que permite una\n" +"mejor delimitación de las características del esquema que son de\n" +"Color blanco como el resto y que puede confundir con el\n" +"Entorno si no fuera por esta frontera." + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:101 +#: flatcamTools/ToolFilm.py:283 +msgid "Scale Stroke" +msgstr "Trazo de escala" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:103 +#: flatcamTools/ToolFilm.py:285 +msgid "" +"Scale the line stroke thickness of each feature in the SVG file.\n" +"It means that the line that envelope each SVG feature will be thicker or " +"thinner,\n" +"therefore the fine features may be more affected by this parameter." +msgstr "" +"Escale el grosor de trazo de línea de cada entidad en el archivo SVG.\n" +"Significa que la línea que envuelve cada característica SVG será más gruesa " +"o más delgada,\n" +"por lo tanto, las características finas pueden verse más afectadas por este " +"parámetro." + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:110 +#: flatcamTools/ToolFilm.py:141 +msgid "Film Adjustments" +msgstr "Ajustes de la película" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:112 +#: flatcamTools/ToolFilm.py:143 +msgid "" +"Sometime the printers will distort the print shape, especially the Laser " +"types.\n" +"This section provide the tools to compensate for the print distortions." +msgstr "" +"En algún momento, las impresoras distorsionarán la forma de impresión, " +"especialmente los tipos de láser.\n" +"Esta sección proporciona las herramientas para compensar las distorsiones de " +"impresión." + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:119 +#: flatcamTools/ToolFilm.py:150 +msgid "Scale Film geometry" +msgstr "Escalar la Geo de la Película" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:121 +#: flatcamTools/ToolFilm.py:152 +msgid "" +"A value greater than 1 will stretch the film\n" +"while a value less than 1 will jolt it." +msgstr "" +"Un valor mayor que 1 estirará la película\n" +"mientras que un valor menor que 1 lo sacudirá." + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:131 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:103 +#: flatcamTools/ToolFilm.py:162 flatcamTools/ToolTransform.py:148 +msgid "X factor" +msgstr "Factor X" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:140 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:116 +#: flatcamTools/ToolFilm.py:171 flatcamTools/ToolTransform.py:168 +msgid "Y factor" +msgstr "Factor Y" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:150 +#: flatcamTools/ToolFilm.py:189 +msgid "Skew Film geometry" +msgstr "Incline la Geo de la Película" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:152 +#: flatcamTools/ToolFilm.py:191 +msgid "" +"Positive values will skew to the right\n" +"while negative values will skew to the left." +msgstr "" +"Los valores positivos se sesgarán a la derecha.\n" +"mientras que los valores negativos se desviarán a la izquierda." + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:162 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:72 +#: flatcamTools/ToolFilm.py:201 flatcamTools/ToolTransform.py:97 +msgid "X angle" +msgstr "Ángulo X" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:171 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:86 +#: flatcamTools/ToolFilm.py:210 flatcamTools/ToolTransform.py:118 +msgid "Y angle" +msgstr "Ángulo Y" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:182 +#: flatcamTools/ToolFilm.py:221 +msgid "" +"The reference point to be used as origin for the skew.\n" +"It can be one of the four points of the geometry bounding box." +msgstr "" +"El punto de referencia que se utilizará como origen para el sesgo.\n" +"Puede ser uno de los cuatro puntos del cuadro delimitador de geometría." + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:185 +#: flatcamTools/ToolFiducials.py:87 flatcamTools/ToolFilm.py:224 +msgid "Bottom Left" +msgstr "Abajo a la izquierda" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:186 +#: flatcamTools/ToolFilm.py:225 +msgid "Top Left" +msgstr "Arriba a la izquierda" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:187 +#: flatcamTools/ToolFilm.py:226 +msgid "Bottom Right" +msgstr "Abajo a la derecha" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:188 +#: flatcamTools/ToolFilm.py:227 +msgid "Top right" +msgstr "Arriba a la derecha" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:196 +#: flatcamTools/ToolFilm.py:244 +msgid "Mirror Film geometry" +msgstr "Refleja la Geo de la Película" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:198 +#: flatcamTools/ToolFilm.py:246 +msgid "Mirror the film geometry on the selected axis or on both." +msgstr "Refleje la geometría de la película en el eje seleccionado o en ambos." + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:212 +#: flatcamTools/ToolFilm.py:260 +msgid "Mirror axis" +msgstr "Eje espejo" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:222 +#: flatcamTools/ToolFilm.py:405 +msgid "SVG" +msgstr "SVG" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:223 +#: flatcamTools/ToolFilm.py:406 +msgid "PNG" +msgstr "PNG" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:224 +#: flatcamTools/ToolFilm.py:407 +msgid "PDF" +msgstr "PDF" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:227 +#: flatcamTools/ToolFilm.py:298 flatcamTools/ToolFilm.py:410 +msgid "Film Type:" +msgstr "Tipo de filme:" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:229 +#: flatcamTools/ToolFilm.py:412 +msgid "" +"The file type of the saved film. Can be:\n" +"- 'SVG' -> open-source vectorial format\n" +"- 'PNG' -> raster image\n" +"- 'PDF' -> portable document format" +msgstr "" +"El tipo de archivo de la película guardada. Puede ser:\n" +"- 'SVG' -> formato vectorial de código abierto\n" +"- 'PNG' -> imagen de trama\n" +"- 'PDF' -> formato de documento portátil" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:238 +#: flatcamTools/ToolFilm.py:421 +msgid "Page Orientation" +msgstr "Orient. de la página" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:251 +#: flatcamTools/ToolFilm.py:434 +msgid "Page Size" +msgstr "Tamaño de página" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:252 +#: flatcamTools/ToolFilm.py:435 +msgid "A selection of standard ISO 216 page sizes." +msgstr "Una selección de tamaños de página estándar ISO 216." + +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:27 +msgid "NCC Tool Options" +msgstr "Opc. de herra. NCC" + +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:49 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:57 +msgid "Comma separated values" +msgstr "Valores Separados por Comas" + +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:55 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:63 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:64 +#: flatcamTools/ToolNCC.py:215 flatcamTools/ToolNCC.py:223 +#: flatcamTools/ToolPaint.py:198 flatcamTools/ToolPaint.py:206 +msgid "" +"Default tool type:\n" +"- 'V-shape'\n" +"- Circular" +msgstr "" +"Tipo de herramienta predeterminada:\n" +"- 'Forma V'\n" +"- circular" + +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:60 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:69 +#: flatcamTools/ToolNCC.py:220 flatcamTools/ToolPaint.py:203 +msgid "V-shape" +msgstr "Forma V" + +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:100 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:109 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:107 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:116 +#: flatcamTools/ToolNCC.py:262 flatcamTools/ToolNCC.py:271 +#: flatcamTools/ToolPaint.py:245 flatcamTools/ToolPaint.py:254 +msgid "" +"Depth of cut into material. Negative value.\n" +"In FlatCAM units." +msgstr "" +"Profundidad de corte en el material. Valor negativo.\n" +"En unidades FlatCAM." + +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:119 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:125 +#: flatcamTools/ToolNCC.py:280 flatcamTools/ToolPaint.py:263 +msgid "" +"Diameter for the new tool to add in the Tool Table.\n" +"If the tool is V-shape type then this value is automatically\n" +"calculated from the other parameters." +msgstr "" +"Diámetro de la nueva herramienta para agregar en la Tabla de herramientas.\n" +"Si la herramienta es de tipo V, este valor es automáticamente\n" +"calculado a partir de los otros parámetros." + +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:156 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:142 +#: flatcamTools/ToolNCC.py:174 flatcamTools/ToolPaint.py:158 +msgid "Tool order" +msgstr "Orden de la Herram" + +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:157 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:167 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:143 +#: flatcamTools/ToolNCC.py:175 flatcamTools/ToolNCC.py:185 +#: flatcamTools/ToolPaint.py:159 flatcamTools/ToolPaint.py:169 +msgid "" +"This set the way that the tools in the tools table are used.\n" +"'No' --> means that the used order is the one in the tool table\n" +"'Forward' --> means that the tools will be ordered from small to big\n" +"'Reverse' --> means that the tools will ordered from big to small\n" +"\n" +"WARNING: using rest machining will automatically set the order\n" +"in reverse and disable this control." +msgstr "" +"Esto establece la forma en que se utilizan las herramientas en la tabla de " +"herramientas.\n" +"'No' -> significa que el orden utilizado es el de la tabla de herramientas\n" +"'Adelante' -> significa que las herramientas se ordenarán de pequeño a " +"grande\n" +"'Atras' -> means que las herramientas ordenarán de grande a pequeño\n" +"\n" +"ADVERTENCIA: el uso del mecanizado en reposo establecerá automáticamente el " +"orden\n" +"en reversa y deshabilitar este control." + +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:165 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:151 +#: flatcamTools/ToolNCC.py:183 flatcamTools/ToolPaint.py:167 +msgid "Forward" +msgstr "Adelante" + +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:166 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:152 +#: flatcamTools/ToolNCC.py:184 flatcamTools/ToolPaint.py:168 +msgid "Reverse" +msgstr "Atras" + +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:266 +msgid "Offset value" +msgstr "Valor de Comp" + +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:268 +msgid "" +"If used, it will add an offset to the copper features.\n" +"The copper clearing will finish to a distance\n" +"from the copper features.\n" +"The value can be between 0.0 and 9999.9 FlatCAM units." +msgstr "" +"Si se usa, agregará un desplazamiento a las características de cobre.\n" +"El claro de cobre terminará a cierta distancia.\n" +"de las características de cobre.\n" +"El valor puede estar entre 0 y 9999.9 unidades FlatCAM." + +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:288 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:244 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:245 +#: flatcamTools/ToolNCC.py:512 flatcamTools/ToolPaint.py:442 +msgid "Rest Machining" +msgstr "Mecanizado de descanso" + +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:290 +#: flatcamTools/ToolNCC.py:516 +msgid "" +"If checked, use 'rest machining'.\n" +"Basically it will clear copper outside PCB features,\n" +"using the biggest tool and continue with the next tools,\n" +"from bigger to smaller, to clear areas of copper that\n" +"could not be cleared by previous tool, until there is\n" +"no more copper to clear or there are no more tools.\n" +"If not checked, use the standard algorithm." +msgstr "" +"Si está marcado, use 'mecanizado en reposo'.\n" +"Básicamente eliminará el cobre fuera de las características de la PCB,\n" +"utilizando la herramienta más grande y continúe con las siguientes " +"herramientas,\n" +"de mayor a menor, para limpiar áreas de cobre que\n" +"no se pudo borrar con la herramienta anterior, hasta que haya\n" +"no más cobre para limpiar o no hay más herramientas.\n" +"Si no está marcado, use el algoritmo estándar." + +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:313 +#: flatcamTools/ToolNCC.py:541 +msgid "" +"Selection of area to be processed.\n" +"- 'Itself' - the processing extent is based on the object that is " +"processed.\n" +" - 'Area Selection' - left mouse click to start selection of the area to be " +"processed.\n" +"- 'Reference Object' - will process the area specified by another object." +msgstr "" +"Selección del área a procesar.\n" +"- 'Sí mismo': la extensión del procesamiento se basa en el objeto que se " +"procesa.\n" +"- 'Selección de área': haga clic con el botón izquierdo del mouse para " +"iniciar la selección del área a procesar.\n" +"- 'Objeto de referencia': procesará el área especificada por otro objeto." + +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:339 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:303 +msgid "Normal" +msgstr "Normal" + +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:340 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:304 +msgid "Progressive" +msgstr "Progresivo" + +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:341 +msgid "NCC Plotting" +msgstr "Trazado NCC" + +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:343 +msgid "" +"- 'Normal' - normal plotting, done at the end of the NCC job\n" +"- 'Progressive' - after each shape is generated it will be plotted." +msgstr "" +"- 'Normal': trazado normal, realizado al final del trabajo de NCC\n" +"- 'Progresivo': después de generar cada forma, se trazará." + +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:27 +msgid "Paint Tool Options" +msgstr "Opc. de herra. de pintura" + +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:33 +msgid "Parameters:" +msgstr "Parámetros:" + +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:247 +#: flatcamTools/ToolPaint.py:445 +msgid "" +"If checked, use 'rest machining'.\n" +"Basically it will clear copper outside PCB features,\n" +"using the biggest tool and continue with the next tools,\n" +"from bigger to smaller, to clear areas of copper that\n" +"could not be cleared by previous tool, until there is\n" +"no more copper to clear or there are no more tools.\n" +"\n" +"If not checked, use the standard algorithm." +msgstr "" +"Si está marcado, use 'mecanizado en reposo'.\n" +"Básicamente eliminará el cobre fuera de las características de la PCB,\n" +"utilizando la herramienta más grande y continúe con las siguientes " +"herramientas,\n" +"de mayor a menor, para limpiar áreas de cobre que\n" +"no se pudo borrar con la herramienta anterior, hasta que haya\n" +"no más cobre para limpiar o no hay más herramientas.\n" +"\n" +"Si no está marcado, use el algoritmo estándar." + +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:260 +#: flatcamTools/ToolPaint.py:458 +msgid "" +"Selection of area to be processed.\n" +"- 'Polygon Selection' - left mouse click to add/remove polygons to be " +"processed.\n" +"- 'Area Selection' - left mouse click to start selection of the area to be " +"processed.\n" +"Keeping a modifier key pressed (CTRL or SHIFT) will allow to add multiple " +"areas.\n" +"- 'All Polygons' - the process will start after click.\n" +"- 'Reference Object' - will process the area specified by another object." +msgstr "" +"Selección del área a procesar.\n" +"- 'Selección de polígonos': haga clic con el botón izquierdo del mouse para " +"agregar / eliminar polígonos que se procesarán.\n" +"- 'Selección de área': haga clic con el botón izquierdo del mouse para " +"iniciar la selección del área a procesar.\n" +"Mantener presionada una tecla modificadora (CTRL o SHIFT) permitirá agregar " +"múltiples áreas.\n" +"- 'Todos los polígonos': el proceso comenzará después de hacer clic.\n" +"- 'Objeto de referencia': procesará el área especificada por otro objeto." + +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280 +#: flatcamTools/ToolPaint.py:486 flatcamTools/ToolPaint.py:942 +#: flatcamTools/ToolPaint.py:1432 tclCommands/TclCommandPaint.py:164 +msgid "Polygon Selection" +msgstr "Selección de polígono" + +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:305 +msgid "Paint Plotting" +msgstr "Trazado de pintura" + +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:307 +msgid "" +"- 'Normal' - normal plotting, done at the end of the Paint job\n" +"- 'Progressive' - after each shape is generated it will be plotted." +msgstr "" +"- 'Normal': trazado normal, realizado al final del trabajo de Pintura\n" +"- 'Progresivo': después de generar cada forma, se trazará." + +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:27 +msgid "Panelize Tool Options" +msgstr "Opc. de la herra. Panelizar" + +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:33 +msgid "" +"Create an object that contains an array of (x, y) elements,\n" +"each element is a copy of the source object spaced\n" +"at a X distance, Y distance of each other." +msgstr "" +"Cree un objeto que contenga una matriz de (x, y) elementos,\n" +"Cada elemento es una copia del objeto fuente espaciado.\n" +"a una distancia X, distancia Y entre sí." + +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:50 +#: flatcamTools/ToolPanelize.py:163 +msgid "Spacing cols" +msgstr "Col. de espaciado" + +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:52 +#: flatcamTools/ToolPanelize.py:165 +msgid "" +"Spacing between columns of the desired panel.\n" +"In current units." +msgstr "" +"Espaciado entre columnas del panel deseado.\n" +"En unidades actuales." + +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:64 +#: flatcamTools/ToolPanelize.py:175 +msgid "Spacing rows" +msgstr "Separación de filas" + +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:66 +#: flatcamTools/ToolPanelize.py:177 +msgid "" +"Spacing between rows of the desired panel.\n" +"In current units." +msgstr "" +"Espaciado entre filas del panel deseado.\n" +"En unidades actuales." + +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:77 +#: flatcamTools/ToolPanelize.py:186 +msgid "Columns" +msgstr "Columnas" + +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:79 +#: flatcamTools/ToolPanelize.py:188 +msgid "Number of columns of the desired panel" +msgstr "Número de columnas del panel deseado" + +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:89 +#: flatcamTools/ToolPanelize.py:196 +msgid "Rows" +msgstr "Filas" + +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:91 +#: flatcamTools/ToolPanelize.py:198 +msgid "Number of rows of the desired panel" +msgstr "Número de filas del panel deseado" + +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:98 +#: flatcamTools/ToolPanelize.py:205 +msgid "Geo" +msgstr "Geo" + +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:99 +#: flatcamTools/ToolPanelize.py:206 +msgid "Panel Type" +msgstr "Tipo de panel" + +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:101 +msgid "" +"Choose the type of object for the panel object:\n" +"- Gerber\n" +"- Geometry" +msgstr "" +"Elija el tipo de objeto para el objeto del panel:\n" +"- Gerber\n" +"- Geometría" + +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:110 +msgid "Constrain within" +msgstr "Restringir dentro de" + +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:112 +#: flatcamTools/ToolPanelize.py:218 +msgid "" +"Area define by DX and DY within to constrain the panel.\n" +"DX and DY values are in current units.\n" +"Regardless of how many columns and rows are desired,\n" +"the final panel will have as many columns and rows as\n" +"they fit completely within selected area." +msgstr "" +"Área definida por DX y DY dentro para restringir el panel.\n" +"Los valores DX y DY están en unidades actuales.\n" +"Independientemente de cuántas columnas y filas se deseen,\n" +"El panel final tendrá tantas columnas y filas como\n" +"encajan completamente dentro del área seleccionada." + +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:125 +#: flatcamTools/ToolPanelize.py:230 +msgid "Width (DX)" +msgstr "Ancho (DX)" + +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:127 +#: flatcamTools/ToolPanelize.py:232 +msgid "" +"The width (DX) within which the panel must fit.\n" +"In current units." +msgstr "" +"El ancho (DX) dentro del cual debe caber el panel.\n" +"En unidades actuales." + +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:138 +#: flatcamTools/ToolPanelize.py:241 +msgid "Height (DY)" +msgstr "Altura (DY)" + +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:140 +#: flatcamTools/ToolPanelize.py:243 +msgid "" +"The height (DY)within which the panel must fit.\n" +"In current units." +msgstr "" +"La altura (DY) dentro de la cual debe caber el panel.\n" +"En unidades actuales." + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:27 +msgid "SolderPaste Tool Options" +msgstr "Opc de Herram. de Pasta" + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:33 +msgid "" +"A tool to create GCode for dispensing\n" +"solder paste onto a PCB." +msgstr "" +"Una herramienta para crear GCode para dispensar\n" +"pasta de soldadura en una PCB." + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:54 +msgid "New Nozzle Dia" +msgstr "Nuevo diá de boquilla" + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:56 +#: flatcamTools/ToolSolderPaste.py:107 +msgid "Diameter for the new Nozzle tool to add in the Tool Table" +msgstr "" +"Diámetro para la nueva herramienta de boquillas para agregar en la tabla de " +"herramientas" + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:72 +#: flatcamTools/ToolSolderPaste.py:183 +msgid "Z Dispense Start" +msgstr "Inicio de dispen. Z" + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:74 +#: flatcamTools/ToolSolderPaste.py:185 +msgid "The height (Z) when solder paste dispensing starts." +msgstr "La altura (Z) cuando comienza la dispensación de pasta de soldadura." + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:85 +#: flatcamTools/ToolSolderPaste.py:195 +msgid "Z Dispense" +msgstr "Dispensación Z" + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:87 +#: flatcamTools/ToolSolderPaste.py:197 +msgid "The height (Z) when doing solder paste dispensing." +msgstr "La altura (Z) al dispensar pasta de soldadura." + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:98 +#: flatcamTools/ToolSolderPaste.py:207 +msgid "Z Dispense Stop" +msgstr "Parada de dispen. Z" + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:100 +#: flatcamTools/ToolSolderPaste.py:209 +msgid "The height (Z) when solder paste dispensing stops." +msgstr "La altura (Z) cuando se detiene la dispensación de pasta de soldadura." + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:111 +#: flatcamTools/ToolSolderPaste.py:219 +msgid "Z Travel" +msgstr "Viajar Z" + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:113 +#: flatcamTools/ToolSolderPaste.py:221 +msgid "" +"The height (Z) for travel between pads\n" +"(without dispensing solder paste)." +msgstr "" +"La altura (Z) para viajar entre almohadillas\n" +"(sin dispensar pasta de soldadura)." + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:125 +#: flatcamTools/ToolSolderPaste.py:232 +msgid "Z Toolchange" +msgstr "Cambio de herra. Z" + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:127 +#: flatcamTools/ToolSolderPaste.py:234 +msgid "The height (Z) for tool (nozzle) change." +msgstr "La altura (Z) para el cambio de herramienta (boquilla)." + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:136 +#: flatcamTools/ToolSolderPaste.py:242 +msgid "" +"The X,Y location for tool (nozzle) change.\n" +"The format is (x, y) where x and y are real numbers." +msgstr "" +"La ubicación X, Y para el cambio de herramienta (boquilla).\n" +"El formato es (x, y) donde x e y son números reales." + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:150 +#: flatcamTools/ToolSolderPaste.py:255 +msgid "Feedrate (speed) while moving on the X-Y plane." +msgstr "Avance (velocidad) mientras se mueve en el plano X-Y." + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:163 +#: flatcamTools/ToolSolderPaste.py:267 +msgid "" +"Feedrate (speed) while moving vertically\n" +"(on Z plane)." +msgstr "" +"Avance (velocidad) mientras se mueve verticalmente\n" +"(en el plano Z)." + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:175 +#: flatcamTools/ToolSolderPaste.py:278 +msgid "Feedrate Z Dispense" +msgstr "Avance de Dispens. Z" + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:177 +msgid "" +"Feedrate (speed) while moving up vertically\n" +"to Dispense position (on Z plane)." +msgstr "" +"Avance (velocidad) mientras se mueve verticalmente\n" +"para dispensar la posición (en el plano Z)." + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:188 +#: flatcamTools/ToolSolderPaste.py:290 +msgid "Spindle Speed FWD" +msgstr "Veloc. del husillo FWD" + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:190 +#: flatcamTools/ToolSolderPaste.py:292 +msgid "" +"The dispenser speed while pushing solder paste\n" +"through the dispenser nozzle." +msgstr "" +"La velocidad del dispensador mientras empuja la pasta de soldadura\n" +"a través de la boquilla dispensadora." + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:202 +#: flatcamTools/ToolSolderPaste.py:303 +msgid "Dwell FWD" +msgstr "Morar FWD" + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:204 +#: flatcamTools/ToolSolderPaste.py:305 +msgid "Pause after solder dispensing." +msgstr "Pausa después de la dispensación de soldadura." + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:214 +#: flatcamTools/ToolSolderPaste.py:314 +msgid "Spindle Speed REV" +msgstr "Veloc. del husillo REV" + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:216 +#: flatcamTools/ToolSolderPaste.py:316 +msgid "" +"The dispenser speed while retracting solder paste\n" +"through the dispenser nozzle." +msgstr "" +"La velocidad del dispensador mientras se retrae la pasta de soldadura\n" +"a través de la boquilla dispensadora." + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:228 +#: flatcamTools/ToolSolderPaste.py:327 +msgid "Dwell REV" +msgstr "Morar REV" + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:230 +#: flatcamTools/ToolSolderPaste.py:329 +msgid "" +"Pause after solder paste dispenser retracted,\n" +"to allow pressure equilibrium." +msgstr "" +"Pausa después de que el dispensador de pasta de soldadura se retraiga,\n" +"para permitir el equilibrio de presión." + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:239 +#: flatcamTools/ToolSolderPaste.py:337 +msgid "Files that control the GCode generation." +msgstr "Archivos que controlan la generación de GCode." + +#: flatcamGUI/preferences/tools/ToolsSubPrefGroupUI.py:27 +msgid "Substractor Tool Options" +msgstr "Opc. de herra. de substractor" + +#: flatcamGUI/preferences/tools/ToolsSubPrefGroupUI.py:33 +msgid "" +"A tool to substract one Gerber or Geometry object\n" +"from another of the same type." +msgstr "" +"Una herramienta para restar un objeto Gerber o Geometry\n" +"de otro del mismo tipo." + +#: flatcamGUI/preferences/tools/ToolsSubPrefGroupUI.py:38 +#: flatcamTools/ToolSub.py:155 +msgid "Close paths" +msgstr "Caminos cercanos" + +#: flatcamGUI/preferences/tools/ToolsSubPrefGroupUI.py:39 +msgid "" +"Checking this will close the paths cut by the Geometry substractor object." +msgstr "" +"Marcar esto cerrará los caminos cortados por el objeto sustrato Geometry." + +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:27 +msgid "Transform Tool Options" +msgstr "Opc. de herra. de transformación" + +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:33 +msgid "" +"Various transformations that can be applied\n" +"on a FlatCAM object." +msgstr "" +"Diversas transformaciones que se pueden aplicar.\n" +"en un objeto FlatCAM." + +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:64 +msgid "Skew" +msgstr "Sesgar" + +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:105 +#: flatcamTools/ToolTransform.py:150 +msgid "Factor for scaling on X axis." +msgstr "Factor de escalado en eje X." + +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:118 +#: flatcamTools/ToolTransform.py:170 +msgid "Factor for scaling on Y axis." +msgstr "Factor de escalado en eje Y." + +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:126 +#: flatcamTools/ToolTransform.py:191 +msgid "" +"Scale the selected object(s)\n" +"using the Scale_X factor for both axis." +msgstr "" +"Escala el (los) objeto (s) seleccionado (s)\n" +"utilizando el factor de escala X para ambos ejes." + +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:134 +#: flatcamTools/ToolTransform.py:198 +msgid "" +"Scale the selected object(s)\n" +"using the origin reference when checked,\n" +"and the center of the biggest bounding box\n" +"of the selected objects when unchecked." +msgstr "" +"Escala el (los) objeto (s) seleccionado (s)\n" +"usando la referencia de origen cuando está marcada,\n" +"y el centro del cuadro delimitador más grande.\n" +"de los objetos seleccionados cuando no está marcada." + +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:150 +#: flatcamTools/ToolTransform.py:217 +msgid "X val" +msgstr "Valor X" + +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:152 +#: flatcamTools/ToolTransform.py:219 +msgid "Distance to offset on X axis. In current units." +msgstr "Distancia a desplazamiento en el eje X. En unidades actuales." + +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:163 +#: flatcamTools/ToolTransform.py:237 +msgid "Y val" +msgstr "Valor Y" + +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:165 +#: flatcamTools/ToolTransform.py:239 +msgid "Distance to offset on Y axis. In current units." +msgstr "Distancia a desplazamiento en el eje Y. En unidades actuales." + +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:171 +#: flatcamTools/ToolDblSided.py:67 flatcamTools/ToolDblSided.py:95 +#: flatcamTools/ToolDblSided.py:125 +msgid "Mirror" +msgstr "Espejo" + +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:175 +#: flatcamTools/ToolTransform.py:283 +msgid "Mirror Reference" +msgstr "Espejo de referencia" + +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:177 +#: flatcamTools/ToolTransform.py:285 +msgid "" +"Flip the selected object(s)\n" +"around the point in Point Entry Field.\n" +"\n" +"The point coordinates can be captured by\n" +"left click on canvas together with pressing\n" +"SHIFT key. \n" +"Then click Add button to insert coordinates.\n" +"Or enter the coords in format (x, y) in the\n" +"Point Entry field and click Flip on X(Y)" +msgstr "" +"Voltear los objetos seleccionados\n" +"alrededor del punto en el campo de entrada de puntos.\n" +"\n" +"Las coordenadas del punto pueden ser capturadas por\n" +"Haga clic izquierdo en el lienzo junto con la presión\n" +"Tecla Shift.\n" +"Luego haga clic en el botón Agregar para insertar coordenadas.\n" +"O ingrese las coords en formato (x, y) en el\n" +"Campo de entrada de puntos y haga clic en Girar en X (Y)" + +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:188 +msgid "Mirror Reference point" +msgstr "Punto de Ref del Espejo" + +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:190 +msgid "" +"Coordinates in format (x, y) used as reference for mirroring.\n" +"The 'x' in (x, y) will be used when using Flip on X and\n" +"the 'y' in (x, y) will be used when using Flip on Y and" +msgstr "" +"Coordenadas en formato (x, y) utilizadas como referencia para la " +"duplicación.\n" +"La 'x' en (x, y) se usará cuando se use voltear en X y\n" +"la 'y' en (x, y) se usará cuando se use voltear en Y y" + +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:203 +#: flatcamTools/ToolDistance.py:496 flatcamTools/ToolDistanceMin.py:287 +#: flatcamTools/ToolTransform.py:332 +msgid "Distance" +msgstr "Distancia" + +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:205 +#: flatcamTools/ToolTransform.py:334 +msgid "" +"A positive value will create the effect of dilation,\n" +"while a negative value will create the effect of erosion.\n" +"Each geometry element of the object will be increased\n" +"or decreased with the 'distance'." +msgstr "" +"Un valor positivo creará el efecto de dilatación,\n" +"mientras que un valor negativo creará el efecto de la erosión.\n" +"Cada elemento de geometría del objeto se incrementará\n" +"o disminuido con la 'distancia'." + +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:222 +#: flatcamTools/ToolTransform.py:359 +msgid "" +"A positive value will create the effect of dilation,\n" +"while a negative value will create the effect of erosion.\n" +"Each geometry element of the object will be increased\n" +"or decreased to fit the 'Value'. Value is a percentage\n" +"of the initial dimension." +msgstr "" +"Un valor positivo creará el efecto de dilatación,\n" +"mientras que un valor negativo creará el efecto de la erosión.\n" +"Cada elemento de geometría del objeto se incrementará\n" +"o disminuido para ajustarse al 'Valor'. El Valor es un porcentaje\n" +"de la dimensión inicial." + +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:241 +#: flatcamTools/ToolTransform.py:385 +msgid "" +"If checked then the buffer will surround the buffered shape,\n" +"every corner will be rounded.\n" +"If not checked then the buffer will follow the exact geometry\n" +"of the buffered shape." +msgstr "" +"Si se marca, el búfer rodeará la forma tamponada,\n" +"Cada rincón será redondeado.\n" +"Si no está marcado, el búfer seguirá la geometría exacta\n" +"de la forma amortiguada." + +#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:27 +msgid "Autocompleter Keywords" +msgstr "Palabras clave de autocompletador" + +#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:30 +#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:40 +#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:30 +#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:30 +msgid "Restore" +msgstr "Restaurar" + +#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:31 +msgid "Restore the autocompleter keywords list to the default state." +msgstr "" +"Restaure la lista de palabras clave de autocompletador al estado " +"predeterminado." + +#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:32 +#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:42 +#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:32 +#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:32 +msgid "Delete All" +msgstr "Eliminar todosEliminar taladro" + +#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:33 +msgid "Delete all autocompleter keywords from the list." +msgstr "Elimine todas las palabras clave de autocompletador de la lista." + +#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:41 +msgid "Keywords list" +msgstr "Lista de palabras clave" + +#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:43 +msgid "" +"List of keywords used by\n" +"the autocompleter in FlatCAM.\n" +"The autocompleter is installed\n" +"in the Code Editor and for the Tcl Shell." +msgstr "" +"Lista de palabras clave utilizadas por\n" +"el autocompletador en FlatCAM.\n" +"El autocompletador está instalado\n" +"en el Editor de Código y para el Tcl Shell." + +#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:64 +#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:73 +#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:63 +#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:62 +msgid "Extension" +msgstr "ExtensiónLista de extensiones" + +#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:65 +msgid "A keyword to be added or deleted to the list." +msgstr "Una palabra clave para agregar o eliminar a la lista." + +#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:73 +msgid "Add keyword" +msgstr "Agregar palabra clave" + +#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:74 +msgid "Add a keyword to the list" +msgstr "Agregar una palabra clave a la lista" + +#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:75 +msgid "Delete keyword" +msgstr "Eliminar palabra clave" + +#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:76 +msgid "Delete a keyword from the list" +msgstr "Eliminar una palabra clave de la lista" + +#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:27 +msgid "Excellon File associations" +msgstr "Excellon File asociaciones" + +#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:41 +#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:31 +#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:31 +msgid "Restore the extension list to the default state." +msgstr "Restaurar la lista de extensiones al estado predeterminado." + +#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:43 +#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:33 +#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:33 +msgid "Delete all extensions from the list." +msgstr "Eliminar todas las extensiones de la lista." + +#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:51 +#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:41 +#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:41 +msgid "Extensions list" +msgstr "Lista de extensiones" + +#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:53 +#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:43 +#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:43 +msgid "" +"List of file extensions to be\n" +"associated with FlatCAM." +msgstr "" +"Lista de extensiones de archivo para ser\n" +"asociado con FlatCAM." + +#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:74 +#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:64 +#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:63 +msgid "A file extension to be added or deleted to the list." +msgstr "Una extensión de archivo para agregar o eliminar a la lista." + +#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:82 +#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:72 +#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:71 +msgid "Add Extension" +msgstr "Agregar extensión" + +#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:83 +#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:73 +#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:72 +msgid "Add a file extension to the list" +msgstr "Agregar una extensión de archivo a la lista" + +#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:84 +#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:74 +#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:73 +msgid "Delete Extension" +msgstr "Eliminar extensión" + +#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:85 +#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:75 +#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:74 +msgid "Delete a file extension from the list" +msgstr "Eliminar una extensión de archivo de la lista" + +#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:92 +#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:82 +#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:81 +msgid "Apply Association" +msgstr "Aplicar asociación" + +#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:93 +#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:83 +#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:82 +msgid "" +"Apply the file associations between\n" +"FlatCAM and the files with above extensions.\n" +"They will be active after next logon.\n" +"This work only in Windows." +msgstr "" +"Aplicar las asociaciones de archivos entre\n" +"FlatCAM y los archivos con las extensiones anteriores.\n" +"Estarán activos después del próximo inicio de sesión.\n" +"Esto funciona solo en Windows." + +#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:27 +msgid "GCode File associations" +msgstr "Asociaciones de archivos GCode" + +#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:27 +msgid "Gerber File associations" +msgstr "Asociaciones de archivos Gerber" + +#: flatcamObjects/FlatCAMCNCJob.py:429 flatcamObjects/FlatCAMDocument.py:71 +#: flatcamObjects/FlatCAMScript.py:82 +msgid "Basic" +msgstr "Basic" + +#: flatcamObjects/FlatCAMCNCJob.py:435 flatcamObjects/FlatCAMDocument.py:75 +#: flatcamObjects/FlatCAMScript.py:86 +msgid "Advanced" +msgstr "Avanzado" + +#: flatcamObjects/FlatCAMCNCJob.py:478 +msgid "Plotting..." +msgstr "Trazando ..." + +#: flatcamObjects/FlatCAMCNCJob.py:507 flatcamObjects/FlatCAMCNCJob.py:512 +#: flatcamTools/ToolSolderPaste.py:1499 +msgid "Export Machine Code ..." +msgstr "Exportar código de máquina ..." + +#: flatcamObjects/FlatCAMCNCJob.py:517 flatcamTools/ToolSolderPaste.py:1503 +msgid "Export Machine Code cancelled ..." +msgstr "Exportar código de máquina cancelado ..." + +#: flatcamObjects/FlatCAMCNCJob.py:538 +msgid "Machine Code file saved to" +msgstr "Archivo de código de máquina guardado en" + +#: flatcamObjects/FlatCAMCNCJob.py:599 flatcamTools/ToolCalibration.py:1097 +msgid "Loaded Machine Code into Code Editor" +msgstr "Código de máquina cargado en el editor de código" + +#: flatcamObjects/FlatCAMCNCJob.py:740 +msgid "This CNCJob object can't be processed because it is a" +msgstr "Este objeto CNCJob no se puede procesar porque es un" + +#: flatcamObjects/FlatCAMCNCJob.py:742 +msgid "CNCJob object" +msgstr "Objeto CNCJob" + +#: flatcamObjects/FlatCAMCNCJob.py:922 +msgid "" +"G-code does not have a G94 code and we will not include the code in the " +"'Prepend to GCode' text box" +msgstr "" +"El código G no tiene un código G94 y no incluiremos el código en el cuadro " +"de texto 'Anteponer al código GC'" + +#: flatcamObjects/FlatCAMCNCJob.py:933 +msgid "Cancelled. The Toolchange Custom code is enabled but it's empty." +msgstr "" +"Cancelado. El código personalizado de Toolchange está habilitado pero está " +"vacío." + +#: flatcamObjects/FlatCAMCNCJob.py:938 +msgid "Toolchange G-code was replaced by a custom code." +msgstr "El código G de Toolchange fue reemplazado por un código personalizado." + +#: flatcamObjects/FlatCAMCNCJob.py:986 flatcamObjects/FlatCAMCNCJob.py:996 +msgid "" +"The used preprocessor file has to have in it's name: 'toolchange_custom'" +msgstr "" +"El archivo de postprocesador usado debe tener su nombre: 'toolchange_custom'" + +#: flatcamObjects/FlatCAMCNCJob.py:999 +msgid "There is no preprocessor file." +msgstr "No hay archivo de postprocesador." + +#: flatcamObjects/FlatCAMDocument.py:175 +msgid "Document Editor" +msgstr "Editor de Documentos" + +#: flatcamObjects/FlatCAMExcellon.py:514 flatcamObjects/FlatCAMExcellon.py:746 +#: flatcamObjects/FlatCAMGeometry.py:323 flatcamObjects/FlatCAMGeometry.py:795 +#: flatcamTools/ToolNCC.py:811 flatcamTools/ToolNCC.py:1196 +#: flatcamTools/ToolPaint.py:779 flatcamTools/ToolPaint.py:1171 +msgid "Multiple Tools" +msgstr "Herramientas múltiples" + +#: flatcamObjects/FlatCAMExcellon.py:726 +msgid "No Tool Selected" +msgstr "Ninguna herramienta seleccionada" + +#: flatcamObjects/FlatCAMExcellon.py:1076 +#: flatcamObjects/FlatCAMExcellon.py:1168 +#: flatcamObjects/FlatCAMExcellon.py:1355 +msgid "Please select one or more tools from the list and try again." +msgstr "" +"Por favor seleccione una o más herramientas de la lista e intente nuevamente." + +#: flatcamObjects/FlatCAMExcellon.py:1083 +msgid "Milling tool for DRILLS is larger than hole size. Cancelled." +msgstr "" +"La herramienta de fresado para TALADRO es más grande que el tamaño del " +"orificio. Cancelado." + +#: flatcamObjects/FlatCAMExcellon.py:1098 +#: flatcamObjects/FlatCAMExcellon.py:1188 +#: flatcamObjects/FlatCAMExcellon.py:1373 +#: tclCommands/TclCommandDrillcncjob.py:193 +msgid "Tool_nr" +msgstr "Herramienta_nu" + +#: flatcamObjects/FlatCAMExcellon.py:1098 +#: flatcamObjects/FlatCAMExcellon.py:1188 +#: flatcamObjects/FlatCAMExcellon.py:1373 +#: tclCommands/TclCommandDrillcncjob.py:193 +msgid "Drills_Nr" +msgstr "Taladros_nu" + +#: flatcamObjects/FlatCAMExcellon.py:1098 +#: flatcamObjects/FlatCAMExcellon.py:1188 +#: flatcamObjects/FlatCAMExcellon.py:1373 +#: tclCommands/TclCommandDrillcncjob.py:193 +msgid "Slots_Nr" +msgstr "Ranuras_nu" + +#: flatcamObjects/FlatCAMExcellon.py:1177 +msgid "Milling tool for SLOTS is larger than hole size. Cancelled." +msgstr "" +"La herramienta de fresado para SLOTS es más grande que el tamaño del " +"orificio. Cancelado." + +#: flatcamObjects/FlatCAMExcellon.py:1281 +#: flatcamObjects/FlatCAMGeometry.py:1571 +msgid "Focus Z" +msgstr "Enfoque Z" + +#: flatcamObjects/FlatCAMExcellon.py:1300 +#: flatcamObjects/FlatCAMGeometry.py:1590 +msgid "Laser Power" +msgstr "Poder del laser" + +#: flatcamObjects/FlatCAMExcellon.py:1430 +#: flatcamObjects/FlatCAMGeometry.py:2027 +#: flatcamObjects/FlatCAMGeometry.py:2031 +#: flatcamObjects/FlatCAMGeometry.py:2176 +msgid "Generating CNC Code" +msgstr "Generando Código CNC" + +#: flatcamObjects/FlatCAMExcellon.py:1620 flatcamTools/ToolNCC.py:918 +#: flatcamTools/ToolPaint.py:844 +msgid "Current Tool parameters were applied to all tools." +msgstr "" +"Los parámetros actuales de la herramienta se aplicaron a todas las " +"herramientas." + +#: flatcamObjects/FlatCAMGeometry.py:124 flatcamObjects/FlatCAMGeometry.py:1235 +#: flatcamObjects/FlatCAMGeometry.py:1236 +#: flatcamObjects/FlatCAMGeometry.py:1245 +msgid "Iso" +msgstr "Aisl" + +#: flatcamObjects/FlatCAMGeometry.py:124 flatcamObjects/FlatCAMGeometry.py:464 +#: flatcamObjects/FlatCAMGeometry.py:854 flatcamObjects/FlatCAMGerber.py:891 +#: flatcamObjects/FlatCAMGerber.py:1039 flatcamTools/ToolCutOut.py:690 +#: flatcamTools/ToolCutOut.py:886 flatcamTools/ToolCutOut.py:1046 +msgid "Rough" +msgstr "Áspero" + +#: flatcamObjects/FlatCAMGeometry.py:124 +msgid "Finish" +msgstr "Terminar" + +#: flatcamObjects/FlatCAMGeometry.py:499 +msgid "Add from Tool DB" +msgstr "Agregar desde la DB de herramientas" + +#: flatcamObjects/FlatCAMGeometry.py:873 +msgid "Tool added in Tool Table." +msgstr "Herramienta añadida en la tabla de herramientas." + +#: flatcamObjects/FlatCAMGeometry.py:982 flatcamObjects/FlatCAMGeometry.py:991 +msgid "Failed. Select a tool to copy." +msgstr "Ha fallado. Seleccione una herramienta para copiar." + +#: flatcamObjects/FlatCAMGeometry.py:1020 +msgid "Tool was copied in Tool Table." +msgstr "La herramienta se copió en la tabla de herramientas." + +#: flatcamObjects/FlatCAMGeometry.py:1047 +msgid "Tool was edited in Tool Table." +msgstr "La herramienta fue editada en la tabla de herramientas." + +#: flatcamObjects/FlatCAMGeometry.py:1076 +#: flatcamObjects/FlatCAMGeometry.py:1085 +msgid "Failed. Select a tool to delete." +msgstr "Ha fallado. Seleccione una herramienta para eliminar." + +#: flatcamObjects/FlatCAMGeometry.py:1109 +msgid "Tool was deleted in Tool Table." +msgstr "La herramienta se eliminó en la tabla de herramientas." + +#: flatcamObjects/FlatCAMGeometry.py:1146 +#: flatcamObjects/FlatCAMGeometry.py:1156 +msgid "" +"Disabled because the tool is V-shape.\n" +"For V-shape tools the depth of cut is\n" +"calculated from other parameters like:\n" +"- 'V-tip Angle' -> angle at the tip of the tool\n" +"- 'V-tip Dia' -> diameter at the tip of the tool \n" +"- Tool Dia -> 'Dia' column found in the Tool Table\n" +"NB: a value of zero means that Tool Dia = 'V-tip Dia'" +msgstr "" +"Deshabilitado porque la herramienta tiene forma de V.\n" +"Para herramientas en forma de V, la profundidad de corte es\n" +"calculado a partir de otros parámetros como:\n" +"- 'Ángulo de punta en V' -> ángulo en la punta de la herramienta\n" +"- 'Diámetro de punta en V' -> diámetro en la punta de la herramienta\n" +"- Herramienta Dia -> columna 'Dia' encontrada en la tabla de herramientas\n" +"NB: un valor de cero significa que Tool Dia = 'V-tip Dia'" + +#: flatcamObjects/FlatCAMGeometry.py:1643 +msgid "This Geometry can't be processed because it is" +msgstr "Esta geometría no se puede procesar porque es" + +#: flatcamObjects/FlatCAMGeometry.py:1643 +msgid "geometry" +msgstr "geometría" + +#: flatcamObjects/FlatCAMGeometry.py:1684 +msgid "Failed. No tool selected in the tool table ..." +msgstr "" +"Ha fallado. Ninguna herramienta seleccionada en la tabla de herramientas ..." + +#: flatcamObjects/FlatCAMGeometry.py:1786 +#: flatcamObjects/FlatCAMGeometry.py:1936 +msgid "" +"Tool Offset is selected in Tool Table but no value is provided.\n" +"Add a Tool Offset or change the Offset Type." +msgstr "" +"La Herramienta de desplazamiento se selecciona en la Tabla de herramientas " +"pero no se proporciona ningún valor.\n" +"Agregue una Herramienta de compensación o cambie el Tipo de compensación." + +#: flatcamObjects/FlatCAMGeometry.py:1852 +#: flatcamObjects/FlatCAMGeometry.py:1998 +msgid "G-Code parsing in progress..." +msgstr "Análisis de código G en progreso ..." + +#: flatcamObjects/FlatCAMGeometry.py:1854 +#: flatcamObjects/FlatCAMGeometry.py:2000 +msgid "G-Code parsing finished..." +msgstr "Análisis de código G terminado ..." + +#: flatcamObjects/FlatCAMGeometry.py:1862 +msgid "Finished G-Code processing" +msgstr "Procesamiento de código G terminado" + +#: flatcamObjects/FlatCAMGeometry.py:1864 +#: flatcamObjects/FlatCAMGeometry.py:2012 +msgid "G-Code processing failed with error" +msgstr "El procesamiento del código G falló con error" + +#: flatcamObjects/FlatCAMGeometry.py:1906 flatcamTools/ToolSolderPaste.py:1301 +msgid "Cancelled. Empty file, it has no geometry" +msgstr "Cancelado. Archivo vacío, no tiene geometría" + +#: flatcamObjects/FlatCAMGeometry.py:2010 +#: flatcamObjects/FlatCAMGeometry.py:2171 +msgid "Finished G-Code processing..." +msgstr "Procesamiento de código G terminado ..." + +#: flatcamObjects/FlatCAMGeometry.py:2029 +#: flatcamObjects/FlatCAMGeometry.py:2033 +#: flatcamObjects/FlatCAMGeometry.py:2178 +msgid "CNCjob created" +msgstr "CNCjob creado" + +#: flatcamObjects/FlatCAMGeometry.py:2209 +#: flatcamObjects/FlatCAMGeometry.py:2218 flatcamParsers/ParseGerber.py:1867 +#: flatcamParsers/ParseGerber.py:1877 +msgid "Scale factor has to be a number: integer or float." +msgstr "El factor de escala debe ser un número: entero o Real." + +#: flatcamObjects/FlatCAMGeometry.py:2281 +msgid "Geometry Scale done." +msgstr "Escala de geometría realizada." + +#: flatcamObjects/FlatCAMGeometry.py:2298 flatcamParsers/ParseGerber.py:1993 +msgid "" +"An (x,y) pair of values are needed. Probable you entered only one value in " +"the Offset field." +msgstr "" +"Se necesita un par de valores (x, y). Probablemente haya ingresado un solo " +"valor en el campo Desplazamiento." + +#: flatcamObjects/FlatCAMGeometry.py:2354 +msgid "Geometry Offset done." +msgstr "Desplazamiento de geometría realizado." + +#: flatcamObjects/FlatCAMGeometry.py:2383 +msgid "" +"The Toolchange X,Y field in Edit -> Preferences has to be in the format (x, " +"y)\n" +"but now there is only one value, not two." +msgstr "" +"El campo Toolchange X, Y en Editar -> Preferencias tiene que estar en el " +"formato (x, y)\n" +"pero ahora solo hay un valor, no dos." + +#: flatcamObjects/FlatCAMGeometry.py:2577 +#: flatcamTools/ToolCopperThieving.py:769 flatcamTools/ToolNCC.py:1648 +msgid "Click the start point of the area." +msgstr "Haga clic en el punto de inicio del área." + +#: flatcamObjects/FlatCAMGeometry.py:2619 +msgid "Click the end point of the area." +msgstr "Haga clic en el punto final del área." + +#: flatcamObjects/FlatCAMGeometry.py:2625 +#: flatcamObjects/FlatCAMGeometry.py:2677 +#: flatcamTools/ToolCopperThieving.py:826 flatcamTools/ToolNCC.py:1710 +#: flatcamTools/ToolNCC.py:1762 flatcamTools/ToolPaint.py:1606 +#: flatcamTools/ToolPaint.py:1657 +msgid "Zone added. Click to start adding next zone or right click to finish." +msgstr "" +"Zona agregada. Haga clic para comenzar a agregar la siguiente zona o haga " +"clic con el botón derecho para finalizar." + +#: flatcamObjects/FlatCAMGeometry.py:2729 +msgid "Cancelled. Area exclusion drawing was interrupted." +msgstr "Cancelado. Se interrumpió el dibujo de exclusión de área." + +#: flatcamObjects/FlatCAMGerber.py:494 +msgid "Buffering solid geometry" +msgstr "Amortiguación de geometría sólida" + +#: flatcamObjects/FlatCAMGerber.py:503 +msgid "Done" +msgstr "Hecho" + +#: flatcamObjects/FlatCAMGerber.py:529 flatcamObjects/FlatCAMGerber.py:555 +msgid "Operation could not be done." +msgstr "La operación no se pudo hacer." + +#: flatcamObjects/FlatCAMGerber.py:572 +msgid "Isolating..." +msgstr "Aislando ..." + +#: flatcamObjects/FlatCAMGerber.py:631 +msgid "Click on a polygon to isolate it." +msgstr "Haga clic en un polígono para aislarlo." + +#: flatcamObjects/FlatCAMGerber.py:670 flatcamObjects/FlatCAMGerber.py:774 +#: flatcamTools/ToolPaint.py:1516 +msgid "Added polygon" +msgstr "Polígono agregado" + +#: flatcamObjects/FlatCAMGerber.py:671 flatcamObjects/FlatCAMGerber.py:776 +msgid "Click to add next polygon or right click to start isolation." +msgstr "" +"Haga clic para agregar el siguiente polígono o haga clic con el botón " +"derecho para iniciar el aislamiento." + +#: flatcamObjects/FlatCAMGerber.py:683 flatcamTools/ToolPaint.py:1530 +msgid "Removed polygon" +msgstr "Polígono eliminado" + +#: flatcamObjects/FlatCAMGerber.py:684 +msgid "Click to add/remove next polygon or right click to start isolation." +msgstr "" +"Haga clic para agregar / eliminar el siguiente polígono o haga clic con el " +"botón derecho para iniciar el aislamiento." + +#: flatcamObjects/FlatCAMGerber.py:689 flatcamTools/ToolPaint.py:1536 +msgid "No polygon detected under click position." +msgstr "No se detectó ningún polígono bajo la posición de clic." + +#: flatcamObjects/FlatCAMGerber.py:710 flatcamTools/ToolPaint.py:1565 +msgid "List of single polygons is empty. Aborting." +msgstr "La lista de polígonos individuales está vacía. Abortar." + +#: flatcamObjects/FlatCAMGerber.py:779 +msgid "No polygon in selection." +msgstr "No hay polígono en la selección." + +#: flatcamObjects/FlatCAMGerber.py:907 flatcamObjects/FlatCAMGerber.py:986 +#: flatcamTools/ToolNCC.py:2086 flatcamTools/ToolNCC.py:3137 +#: flatcamTools/ToolNCC.py:3516 +msgid "Isolation geometry could not be generated." +msgstr "La geometría de aislamiento no se pudo generar." + +#: flatcamObjects/FlatCAMGerber.py:932 flatcamObjects/FlatCAMGerber.py:1064 +msgid "Isolation geometry created" +msgstr "Geometría de aislamiento creada" + +#: flatcamObjects/FlatCAMGerber.py:941 flatcamObjects/FlatCAMGerber.py:1071 +msgid "Subtracting Geo" +msgstr "Restando Geo" + +#: flatcamObjects/FlatCAMGerber.py:1396 +msgid "Plotting Apertures" +msgstr "Aperturas de trazado" + +#: flatcamObjects/FlatCAMObj.py:234 +msgid "Name changed from" +msgstr "Nombre cambiado de" + +#: flatcamObjects/FlatCAMObj.py:234 +msgid "to" +msgstr "a" + +#: flatcamObjects/FlatCAMObj.py:245 +msgid "Offsetting..." +msgstr "Compensación ..." + +#: flatcamObjects/FlatCAMObj.py:259 flatcamObjects/FlatCAMObj.py:264 +msgid "Scaling could not be executed." +msgstr "No se pudo ejecutar el escalado." + +#: flatcamObjects/FlatCAMObj.py:268 flatcamObjects/FlatCAMObj.py:276 +msgid "Scale done." +msgstr "Escala hecha." + +#: flatcamObjects/FlatCAMObj.py:274 +msgid "Scaling..." +msgstr "Escalando..." + +#: flatcamObjects/FlatCAMObj.py:292 +msgid "Skewing..." +msgstr "Sesgar..." + +#: flatcamObjects/FlatCAMScript.py:163 +msgid "Script Editor" +msgstr "Editor de guiones" + +#: flatcamObjects/ObjectCollection.py:510 +#, python-brace-format +msgid "Object renamed from {old} to {new}" +msgstr "Objeto renombrado de {old} a {new}" + +#: flatcamObjects/ObjectCollection.py:983 +msgid "Cause of error" +msgstr "Causa del error" + +#: flatcamParsers/ParseExcellon.py:316 +msgid "This is GCODE mark" +msgstr "Esta es la marca GCODE" + +#: flatcamParsers/ParseExcellon.py:433 +msgid "" +"No tool diameter info's. See shell.\n" +"A tool change event: T" +msgstr "" +"No hay información de diámetro de herramienta. Ver caparazón.\n" +"Un evento de cambio de herramienta: T" + +#: flatcamParsers/ParseExcellon.py:436 +msgid "" +"was found but the Excellon file have no informations regarding the tool " +"diameters therefore the application will try to load it by using some 'fake' " +"diameters.\n" +"The user needs to edit the resulting Excellon object and change the " +"diameters to reflect the real diameters." +msgstr "" +"se encontró pero el archivo Excellon no tiene información sobre los " +"diámetros de la herramienta, por lo tanto, la aplicación intentará cargarlo " +"utilizando algunos diámetros 'falsos'.\n" +"El usuario necesita editar el objeto Excellon resultante y cambiar los " +"diámetros para reflejar los diámetros reales." + +#: flatcamParsers/ParseExcellon.py:900 +msgid "" +"Excellon Parser error.\n" +"Parsing Failed. Line" +msgstr "" +"Error del analizador Excellon.\n" +"El análisis falló. Línea" + +#: flatcamParsers/ParseExcellon.py:982 +msgid "" +"Excellon.create_geometry() -> a drill location was skipped due of not having " +"a tool associated.\n" +"Check the resulting GCode." +msgstr "" +"Excellon.create_geometry() -> se omitió la ubicación de un taladro por no " +"tener una herramienta asociada.\n" +"Compruebe el GCode resultante." + +#: flatcamParsers/ParseFont.py:303 +msgid "Font not supported, try another one." +msgstr "Fuente no compatible, prueba con otra." + +#: flatcamParsers/ParseGerber.py:426 +msgid "Gerber processing. Parsing" +msgstr "Procesamiento de Gerber. Analizando" + +#: flatcamParsers/ParseGerber.py:426 flatcamParsers/ParseHPGL2.py:182 +msgid "lines" +msgstr "líneas" + +#: flatcamParsers/ParseGerber.py:1002 flatcamParsers/ParseGerber.py:1102 +#: flatcamParsers/ParseHPGL2.py:275 flatcamParsers/ParseHPGL2.py:289 +#: flatcamParsers/ParseHPGL2.py:308 flatcamParsers/ParseHPGL2.py:332 +#: flatcamParsers/ParseHPGL2.py:367 +msgid "Coordinates missing, line ignored" +msgstr "Coordenadas faltantes, línea ignorada" + +#: flatcamParsers/ParseGerber.py:1004 flatcamParsers/ParseGerber.py:1104 +msgid "GERBER file might be CORRUPT. Check the file !!!" +msgstr "GERBER archivo podría ser Dañado. Revisa el archivo !!!" + +#: flatcamParsers/ParseGerber.py:1058 +msgid "" +"Region does not have enough points. File will be processed but there are " +"parser errors. Line number" +msgstr "" +"Región no tiene suficientes puntos. El archivo será procesado pero hay " +"errores del analizador. Línea de números: %s" + +#: flatcamParsers/ParseGerber.py:1488 flatcamParsers/ParseHPGL2.py:402 +msgid "Gerber processing. Joining polygons" +msgstr "Procesamiento de Gerber. Unir polígonos" + +#: flatcamParsers/ParseGerber.py:1505 +msgid "Gerber processing. Applying Gerber polarity." +msgstr "Procesamiento de Gerber. Aplicando la polaridad de Gerber." + +#: flatcamParsers/ParseGerber.py:1565 +msgid "Gerber Line" +msgstr "Linea Gerber" + +#: flatcamParsers/ParseGerber.py:1565 +msgid "Gerber Line Content" +msgstr "Contenido de la línea Gerber" + +#: flatcamParsers/ParseGerber.py:1567 +msgid "Gerber Parser ERROR" +msgstr "Analizador Gerber ERROR" + +#: flatcamParsers/ParseGerber.py:1957 +msgid "Gerber Scale done." +msgstr "Escala de Gerber hecha." + +#: flatcamParsers/ParseGerber.py:2049 +msgid "Gerber Offset done." +msgstr "Gerber Offset hecho." + +#: flatcamParsers/ParseGerber.py:2125 +msgid "Gerber Mirror done." +msgstr "Espejo Gerber hecho." + +#: flatcamParsers/ParseGerber.py:2199 +msgid "Gerber Skew done." +msgstr "Gerber Sesgo hecho." + +#: flatcamParsers/ParseGerber.py:2261 +msgid "Gerber Rotate done." +msgstr "Rotar Gerber hecho." + +#: flatcamParsers/ParseGerber.py:2418 +msgid "Gerber Buffer done." +msgstr "Gerber Buffer hecho." + +#: flatcamParsers/ParseHPGL2.py:182 +msgid "HPGL2 processing. Parsing" +msgstr "Procesamiento de HPGL2 . Analizando" + +#: flatcamParsers/ParseHPGL2.py:414 +msgid "HPGL2 Line" +msgstr "Línea HPGL2" + +#: flatcamParsers/ParseHPGL2.py:414 +msgid "HPGL2 Line Content" +msgstr "Contenido de línea HPGL2" + +#: flatcamParsers/ParseHPGL2.py:415 +msgid "HPGL2 Parser ERROR" +msgstr "Analizador HPGL2 ERROR" + +#: flatcamTools/ToolAlignObjects.py:32 +msgid "Align Objects" +msgstr "Alinear objetos" + +#: flatcamTools/ToolAlignObjects.py:61 +msgid "MOVING object" +msgstr "Objeto en movimiento" + +#: flatcamTools/ToolAlignObjects.py:65 +msgid "" +"Specify the type of object to be aligned.\n" +"It can be of type: Gerber or Excellon.\n" +"The selection here decide the type of objects that will be\n" +"in the Object combobox." +msgstr "" +"Especifique el tipo de objeto a alinear.\n" +"Puede ser de tipo: Gerber o Excellon.\n" +"La selección aquí decide el tipo de objetos que serán\n" +"en el cuadro combinado Objeto." + +#: flatcamTools/ToolAlignObjects.py:86 +msgid "Object to be aligned." +msgstr "Objeto a alinear." + +#: flatcamTools/ToolAlignObjects.py:98 +msgid "TARGET object" +msgstr "Objeto OBJETIVO" + +#: flatcamTools/ToolAlignObjects.py:100 +msgid "" +"Specify the type of object to be aligned to.\n" +"It can be of type: Gerber or Excellon.\n" +"The selection here decide the type of objects that will be\n" +"in the Object combobox." +msgstr "" +"Especifique el tipo de objeto a alinear.\n" +"Puede ser de tipo: Gerber o Excellon.\n" +"La selección aquí decide el tipo de objetos que serán\n" +"en el cuadro combinado Objeto." + +#: flatcamTools/ToolAlignObjects.py:122 +msgid "Object to be aligned to. Aligner." +msgstr "Objeto a alinear. Alineador." + +#: flatcamTools/ToolAlignObjects.py:135 +msgid "Alignment Type" +msgstr "Tipo de alineación" + +#: flatcamTools/ToolAlignObjects.py:137 +msgid "" +"The type of alignment can be:\n" +"- Single Point -> it require a single point of sync, the action will be a " +"translation\n" +"- Dual Point -> it require two points of sync, the action will be " +"translation followed by rotation" +msgstr "" +"El tipo de alineación puede ser:\n" +"- Punto único -> requiere un único punto de sincronización, la acción será " +"una traducción\n" +"- Punto doble -> requiere dos puntos de sincronización, la acción será " +"traslación seguida de rotación" + +#: flatcamTools/ToolAlignObjects.py:143 +msgid "Single Point" +msgstr "Punto único" + +#: flatcamTools/ToolAlignObjects.py:144 +msgid "Dual Point" +msgstr "Punto doble" + +#: flatcamTools/ToolAlignObjects.py:159 +msgid "Align Object" +msgstr "Alinear objeto" + +#: flatcamTools/ToolAlignObjects.py:161 +msgid "" +"Align the specified object to the aligner object.\n" +"If only one point is used then it assumes translation.\n" +"If tho points are used it assume translation and rotation." +msgstr "" +"Alinee el objeto especificado con el objeto alineador.\n" +"Si solo se utiliza un punto, se supone que se traduce.\n" +"Si se utilizan estos puntos, se supone traslación y rotación." + +#: flatcamTools/ToolAlignObjects.py:176 flatcamTools/ToolCalculators.py:246 +#: flatcamTools/ToolCalibration.py:683 flatcamTools/ToolCopperThieving.py:484 +#: flatcamTools/ToolCutOut.py:362 flatcamTools/ToolDblSided.py:471 +#: flatcamTools/ToolExtractDrills.py:310 flatcamTools/ToolFiducials.py:318 +#: flatcamTools/ToolFilm.py:520 flatcamTools/ToolInvertGerber.py:140 +#: flatcamTools/ToolNCC.py:612 flatcamTools/ToolOptimal.py:237 +#: flatcamTools/ToolPaint.py:556 flatcamTools/ToolPanelize.py:269 +#: flatcamTools/ToolPunchGerber.py:339 flatcamTools/ToolQRCode.py:314 +#: flatcamTools/ToolRulesCheck.py:516 flatcamTools/ToolSolderPaste.py:473 +#: flatcamTools/ToolSub.py:176 flatcamTools/ToolTransform.py:398 +msgid "Reset Tool" +msgstr "Restablecer la Herramienta" + +#: flatcamTools/ToolAlignObjects.py:178 flatcamTools/ToolCalculators.py:248 +#: flatcamTools/ToolCalibration.py:685 flatcamTools/ToolCopperThieving.py:486 +#: flatcamTools/ToolCutOut.py:364 flatcamTools/ToolDblSided.py:473 +#: flatcamTools/ToolExtractDrills.py:312 flatcamTools/ToolFiducials.py:320 +#: flatcamTools/ToolFilm.py:522 flatcamTools/ToolInvertGerber.py:142 +#: flatcamTools/ToolNCC.py:614 flatcamTools/ToolOptimal.py:239 +#: flatcamTools/ToolPaint.py:558 flatcamTools/ToolPanelize.py:271 +#: flatcamTools/ToolPunchGerber.py:341 flatcamTools/ToolQRCode.py:316 +#: flatcamTools/ToolRulesCheck.py:518 flatcamTools/ToolSolderPaste.py:475 +#: flatcamTools/ToolSub.py:178 flatcamTools/ToolTransform.py:400 +msgid "Will reset the tool parameters." +msgstr "Restablecerá los parámetros de la herramienta." + +#: flatcamTools/ToolAlignObjects.py:244 +msgid "Align Tool" +msgstr "Herram. de Alineación" + +#: flatcamTools/ToolAlignObjects.py:289 +msgid "There is no aligned FlatCAM object selected..." +msgstr "No hay ningún objeto FlatCAM alineado seleccionado ..." + +#: flatcamTools/ToolAlignObjects.py:299 +msgid "There is no aligner FlatCAM object selected..." +msgstr "No hay ningún objeto FlatCAM alineador seleccionado ..." + +#: flatcamTools/ToolAlignObjects.py:325 flatcamTools/ToolAlignObjects.py:385 +msgid "First Point" +msgstr "Primer Punto" + +#: flatcamTools/ToolAlignObjects.py:325 flatcamTools/ToolAlignObjects.py:400 +msgid "Click on the START point." +msgstr "Haga clic en el punto de INICIO." + +#: flatcamTools/ToolAlignObjects.py:380 flatcamTools/ToolCalibration.py:920 +msgid "Cancelled by user request." +msgstr "Cancelado por solicitud del usuario." + +#: flatcamTools/ToolAlignObjects.py:385 flatcamTools/ToolAlignObjects.py:407 +msgid "Click on the DESTINATION point." +msgstr "Haga clic en el punto DESTINO." + +#: flatcamTools/ToolAlignObjects.py:385 flatcamTools/ToolAlignObjects.py:400 +#: flatcamTools/ToolAlignObjects.py:407 +msgid "Or right click to cancel." +msgstr "O haga clic derecho para cancelar." + +#: flatcamTools/ToolAlignObjects.py:400 flatcamTools/ToolAlignObjects.py:407 +#: flatcamTools/ToolFiducials.py:111 +msgid "Second Point" +msgstr "Segundo punto" + +#: flatcamTools/ToolCalculators.py:24 +msgid "Calculators" +msgstr "Calculadoras" + +#: flatcamTools/ToolCalculators.py:26 +msgid "Units Calculator" +msgstr "Calculadora de unidades" + +#: flatcamTools/ToolCalculators.py:70 +msgid "Here you enter the value to be converted from INCH to MM" +msgstr "Aquí ingresa el valor a convertir de PULGADAS a MM" + +#: flatcamTools/ToolCalculators.py:75 +msgid "Here you enter the value to be converted from MM to INCH" +msgstr "Aquí ingresa el valor a convertir de MM a PULGADA" + +#: flatcamTools/ToolCalculators.py:111 +msgid "" +"This is the angle of the tip of the tool.\n" +"It is specified by manufacturer." +msgstr "" +"Este es el ángulo de la punta de la herramienta.\n" +"Está especificado por el fabricante." + +#: flatcamTools/ToolCalculators.py:120 +msgid "" +"This is the depth to cut into the material.\n" +"In the CNCJob is the CutZ parameter." +msgstr "" +"Esta es la profundidad para cortar el material.\n" +"En el CNCJob se encuentra el parámetro CutZ." + +#: flatcamTools/ToolCalculators.py:128 +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 "" +"Este es el diámetro de la herramienta a ingresar\n" +"Sección FlatCAM Gerber.\n" +"En la sección CNCJob se llama >diá. de herra.<." + +#: flatcamTools/ToolCalculators.py:139 flatcamTools/ToolCalculators.py:235 +msgid "Calculate" +msgstr "Calcular" + +#: flatcamTools/ToolCalculators.py:142 +msgid "" +"Calculate either the Cut Z or the effective tool diameter,\n" +" depending on which is desired and which is known. " +msgstr "" +"Calcule el corte Z o el diámetro efectivo de la herramienta,\n" +"dependiendo de cuál se desee y cuál se conozca. " + +#: flatcamTools/ToolCalculators.py:205 +msgid "Current Value" +msgstr "Valor actual" + +#: flatcamTools/ToolCalculators.py:212 +msgid "" +"This is the current intensity value\n" +"to be set on the Power Supply. In Amps." +msgstr "" +"Este es el valor de intensidad actual\n" +"para configurar en la fuente de alimentación. En amperios." + +#: flatcamTools/ToolCalculators.py:216 +msgid "Time" +msgstr "Hora" + +#: flatcamTools/ToolCalculators.py:223 +msgid "" +"This is the calculated time required for the procedure.\n" +"In minutes." +msgstr "" +"Este es el tiempo calculado requerido para el procedimiento.\n" +"En minutos." + +#: flatcamTools/ToolCalculators.py:238 +msgid "" +"Calculate the current intensity value and the procedure time,\n" +"depending on the parameters above" +msgstr "" +"Calcule el valor de intensidad actual y el tiempo del procedimiento,\n" +"dependiendo de los parámetros anteriores" + +#: flatcamTools/ToolCalculators.py:299 +msgid "Calc. Tool" +msgstr "Calc. Herramienta" + +#: flatcamTools/ToolCalibration.py:67 +msgid "GCode Parameters" +msgstr "Parámetros GCode" + +#: flatcamTools/ToolCalibration.py:69 +msgid "Parameters used when creating the GCode in this tool." +msgstr "Parámetros utilizados al crear el GCode en esta herramienta." + +#: flatcamTools/ToolCalibration.py:173 +msgid "STEP 1: Acquire Calibration Points" +msgstr "PASO 1: Adquiera puntos de calibración" + +#: flatcamTools/ToolCalibration.py:175 +msgid "" +"Pick four points by clicking on canvas.\n" +"Those four points should be in the four\n" +"(as much as possible) corners of the object." +msgstr "" +"Elija cuatro puntos haciendo clic en el lienzo.\n" +"Esos cuatro puntos deberían estar en los cuatro\n" +"(tanto como sea posible) esquinas del objeto." + +#: flatcamTools/ToolCalibration.py:193 flatcamTools/ToolFilm.py:76 +#: flatcamTools/ToolImage.py:54 flatcamTools/ToolPanelize.py:78 +#: flatcamTools/ToolProperties.py:177 +msgid "Object Type" +msgstr "Tipo de objeto" + +#: flatcamTools/ToolCalibration.py:210 +msgid "Source object selection" +msgstr "Selección de objeto de origen" + +#: flatcamTools/ToolCalibration.py:212 +msgid "FlatCAM Object to be used as a source for reference points." +msgstr "Objeto FlatCAM que se utilizará como fuente de puntos de referencia." + +#: flatcamTools/ToolCalibration.py:218 +msgid "Calibration Points" +msgstr "Puntos de calibración" + +#: flatcamTools/ToolCalibration.py:220 +msgid "" +"Contain the expected calibration points and the\n" +"ones measured." +msgstr "" +"Contiene los puntos de calibración esperados y el\n" +"los medidos." + +#: flatcamTools/ToolCalibration.py:235 flatcamTools/ToolSub.py:76 +#: flatcamTools/ToolSub.py:131 +msgid "Target" +msgstr "Objetivo" + +#: flatcamTools/ToolCalibration.py:236 +msgid "Found Delta" +msgstr "Delta encontrado" + +#: flatcamTools/ToolCalibration.py:248 +msgid "Bot Left X" +msgstr "Abajo a la izquierda X" + +#: flatcamTools/ToolCalibration.py:257 +msgid "Bot Left Y" +msgstr "Abajo a la izquierda Y" + +#: flatcamTools/ToolCalibration.py:275 +msgid "Bot Right X" +msgstr "Abajo a la derecho X" + +#: flatcamTools/ToolCalibration.py:285 +msgid "Bot Right Y" +msgstr "Abajo a la derecho Y" + +#: flatcamTools/ToolCalibration.py:300 +msgid "Top Left X" +msgstr "Arriba a la izquierda X" + +#: flatcamTools/ToolCalibration.py:309 +msgid "Top Left Y" +msgstr "Arriba a la izquierda Y" + +#: flatcamTools/ToolCalibration.py:324 +msgid "Top Right X" +msgstr "Arriba a la derecho X" + +#: flatcamTools/ToolCalibration.py:334 +msgid "Top Right Y" +msgstr "Arriba a la derecho Y" + +#: flatcamTools/ToolCalibration.py:367 +msgid "Get Points" +msgstr "Obtener puntos" + +#: flatcamTools/ToolCalibration.py:369 +msgid "" +"Pick four points by clicking on canvas if the source choice\n" +"is 'free' or inside the object geometry if the source is 'object'.\n" +"Those four points should be in the four squares of\n" +"the object." +msgstr "" +"Elija cuatro puntos haciendo clic en el lienzo si la opción de origen\n" +"es 'libre' o está dentro de la geometría del objeto si la fuente es " +"'objeto'.\n" +"Esos cuatro puntos deben estar en los cuatro cuadrados de\n" +"el objeto." + +#: flatcamTools/ToolCalibration.py:390 +msgid "STEP 2: Verification GCode" +msgstr "PASO 2: Verificación GCode" + +#: flatcamTools/ToolCalibration.py:392 flatcamTools/ToolCalibration.py:405 +msgid "" +"Generate GCode file to locate and align the PCB by using\n" +"the four points acquired above.\n" +"The points sequence is:\n" +"- first point -> set the origin\n" +"- second point -> alignment point. Can be: top-left or bottom-right.\n" +"- third point -> check point. Can be: top-left or bottom-right.\n" +"- forth point -> final verification point. Just for evaluation." +msgstr "" +"Genere un archivo GCode para localizar y alinear la PCB utilizando\n" +"Los cuatro puntos adquiridos anteriormente.\n" +"La secuencia de puntos es:\n" +"- primer punto -> establecer el origen\n" +"- segundo punto -> punto de alineación. Puede ser: arriba a la izquierda o " +"abajo a la derecha.\n" +"- tercer punto -> punto de control. Puede ser: arriba a la izquierda o abajo " +"a la derecha.\n" +"- cuarto punto -> punto de verificación final. Solo para evaluación." + +#: flatcamTools/ToolCalibration.py:403 flatcamTools/ToolSolderPaste.py:348 +msgid "Generate GCode" +msgstr "Generar GCode" + +#: flatcamTools/ToolCalibration.py:429 +msgid "STEP 3: Adjustments" +msgstr "PASO 3: Ajustes" + +#: flatcamTools/ToolCalibration.py:431 flatcamTools/ToolCalibration.py:440 +msgid "" +"Calculate Scale and Skew factors based on the differences (delta)\n" +"found when checking the PCB pattern. The differences must be filled\n" +"in the fields Found (Delta)." +msgstr "" +"Calcular factores de escala y sesgo basados en las diferencias (delta)\n" +"encontrado al verificar el patrón de PCB. Las diferencias deben llenarse\n" +"en los campos encontrados (Delta)." + +#: flatcamTools/ToolCalibration.py:438 +msgid "Calculate Factors" +msgstr "Calcular factores" + +#: flatcamTools/ToolCalibration.py:460 +msgid "STEP 4: Adjusted GCode" +msgstr "PASO 4: Código GC ajustado" + +#: flatcamTools/ToolCalibration.py:462 +msgid "" +"Generate verification GCode file adjusted with\n" +"the factors above." +msgstr "" +"Generar un archivo GCode de verificación ajustado con\n" +"Los factores anteriores." + +#: flatcamTools/ToolCalibration.py:467 +msgid "Scale Factor X:" +msgstr "Factor de escala X:" + +#: flatcamTools/ToolCalibration.py:479 +msgid "Scale Factor Y:" +msgstr "Factor de escala Y:" + +#: flatcamTools/ToolCalibration.py:491 +msgid "Apply Scale Factors" +msgstr "Aplicar factores de escala" + +#: flatcamTools/ToolCalibration.py:493 +msgid "Apply Scale factors on the calibration points." +msgstr "Aplicar factores de escala en los puntos de calibración." + +#: flatcamTools/ToolCalibration.py:503 +msgid "Skew Angle X:" +msgstr "Ángulo de Sesgar X:" + +#: flatcamTools/ToolCalibration.py:516 +msgid "Skew Angle Y:" +msgstr "Ángulo de Sesgar Y:" + +#: flatcamTools/ToolCalibration.py:529 +msgid "Apply Skew Factors" +msgstr "Aplicar factores Sesgados" + +#: flatcamTools/ToolCalibration.py:531 +msgid "Apply Skew factors on the calibration points." +msgstr "Aplicar factores de inclinación en los puntos de calibración." + +#: flatcamTools/ToolCalibration.py:600 +msgid "Generate Adjusted GCode" +msgstr "Generar código GC ajustado" + +#: flatcamTools/ToolCalibration.py:602 +msgid "" +"Generate verification GCode file adjusted with\n" +"the factors set above.\n" +"The GCode parameters can be readjusted\n" +"before clicking this button." +msgstr "" +"Generar un archivo GCode de verificación ajustado con\n" +"Los factores establecidos anteriormente.\n" +"Los parámetros GCode se pueden reajustar\n" +"antes de hacer clic en este botón." + +#: flatcamTools/ToolCalibration.py:623 +msgid "STEP 5: Calibrate FlatCAM Objects" +msgstr "PASO 5: Calibrar objetos FlatCAM" + +#: flatcamTools/ToolCalibration.py:625 +msgid "" +"Adjust the FlatCAM objects\n" +"with the factors determined and verified above." +msgstr "" +"Ajuste los objetos FlatCAM\n" +"con los factores determinados y verificados anteriormente." + +#: flatcamTools/ToolCalibration.py:637 +msgid "Adjusted object type" +msgstr "Tipo de objeto ajustado" + +#: flatcamTools/ToolCalibration.py:638 +msgid "Type of the FlatCAM Object to be adjusted." +msgstr "Tipo del objeto FlatCAM que se ajustará." + +#: flatcamTools/ToolCalibration.py:651 +msgid "Adjusted object selection" +msgstr "Selección de objeto ajustada" + +#: flatcamTools/ToolCalibration.py:653 +msgid "The FlatCAM Object to be adjusted." +msgstr "El objeto FlatCAM a ajustar." + +#: flatcamTools/ToolCalibration.py:660 +msgid "Calibrate" +msgstr "Calibrar" + +#: flatcamTools/ToolCalibration.py:662 +msgid "" +"Adjust (scale and/or skew) the objects\n" +"with the factors determined above." +msgstr "" +"Ajustar (escalar y / o sesgar) los objetos\n" +"con los factores determinados anteriormente." + +#: flatcamTools/ToolCalibration.py:770 flatcamTools/ToolCalibration.py:771 +msgid "Origin" +msgstr "Origen" + +#: flatcamTools/ToolCalibration.py:800 +msgid "Tool initialized" +msgstr "Herramienta inicializada" + +#: flatcamTools/ToolCalibration.py:838 +msgid "There is no source FlatCAM object selected..." +msgstr "No hay ningún objeto FlatCAM de origen seleccionado ..." + +#: flatcamTools/ToolCalibration.py:859 +msgid "Get First calibration point. Bottom Left..." +msgstr "Obtenga el primer punto de calibración. Abajo a la izquierda ..." + +#: flatcamTools/ToolCalibration.py:926 +msgid "Get Second calibration point. Bottom Right (Top Left)..." +msgstr "" +"Obtenga el segundo punto de calibración. Abajo a la derecha (arriba a la " +"izquierda) ..." + +#: flatcamTools/ToolCalibration.py:930 +msgid "Get Third calibration point. Top Left (Bottom Right)..." +msgstr "" +"Obtenga el tercer punto de calibración. Arriba a la izquierda, abajo a la " +"derecha)..." + +#: flatcamTools/ToolCalibration.py:934 +msgid "Get Forth calibration point. Top Right..." +msgstr "Obtenga el punto de calibración Forth. Parte superior derecha..." + +#: flatcamTools/ToolCalibration.py:938 +msgid "Done. All four points have been acquired." +msgstr "Hecho. Los cuatro puntos han sido adquiridos." + +#: flatcamTools/ToolCalibration.py:969 +msgid "Verification GCode for FlatCAM Calibration Tool" +msgstr "Verificación GCode para la herramienta de calibración FlatCAM" + +#: flatcamTools/ToolCalibration.py:981 flatcamTools/ToolCalibration.py:1067 +msgid "Gcode Viewer" +msgstr "Visor de Gcode" + +#: flatcamTools/ToolCalibration.py:997 +msgid "Cancelled. Four points are needed for GCode generation." +msgstr "Cancelado. Se necesitan cuatro puntos para la generación de GCode." + +#: flatcamTools/ToolCalibration.py:1253 flatcamTools/ToolCalibration.py:1349 +msgid "There is no FlatCAM object selected..." +msgstr "No hay ningún objeto FlatCAM seleccionado ..." + +#: flatcamTools/ToolCopperThieving.py:76 flatcamTools/ToolFiducials.py:261 +msgid "Gerber Object to which will be added a copper thieving." +msgstr "Gerber Objeto al que se agregará un Copper Thieving." + +#: flatcamTools/ToolCopperThieving.py:98 +msgid "" +"This set the distance between the copper thieving components\n" +"(the polygon fill may be split in multiple polygons)\n" +"and the copper traces in the Gerber file." +msgstr "" +"Esto establece la distancia entre los componentes de Copper Thieving\n" +"(el relleno de polígono puede dividirse en múltiples polígonos)\n" +"y las rastros de cobre en el archivo Gerber." + +#: flatcamTools/ToolCopperThieving.py:131 +msgid "" +"- 'Itself' - the copper thieving extent is based on the object extent.\n" +"- 'Area Selection' - left mouse click to start selection of the area to be " +"filled.\n" +"- 'Reference Object' - will do copper thieving within the area specified by " +"another object." +msgstr "" +"- 'Sí mismo': la extensión de Copper Thieving se basa en la extensión del " +"objeto.\n" +"- 'Selección de área': haga clic con el botón izquierdo del mouse para " +"iniciar la selección del área a rellenar.\n" +"- 'Objeto de referencia': 'Copper Thieving' dentro del área especificada por " +"otro objeto." + +#: flatcamTools/ToolCopperThieving.py:138 flatcamTools/ToolNCC.py:552 +#: flatcamTools/ToolPaint.py:496 +msgid "Ref. Type" +msgstr "Tipo de Ref" + +#: flatcamTools/ToolCopperThieving.py:140 +msgid "" +"The type of FlatCAM object to be used as copper thieving reference.\n" +"It can be Gerber, Excellon or Geometry." +msgstr "" +"El tipo de objeto FlatCAM que se utilizará como referencia de 'Copper " +"Thieving'.\n" +"Puede ser Gerber, Excellon o Geometry." + +#: flatcamTools/ToolCopperThieving.py:149 flatcamTools/ToolNCC.py:562 +#: flatcamTools/ToolPaint.py:506 +msgid "Ref. Object" +msgstr "Objeto de Ref" + +#: flatcamTools/ToolCopperThieving.py:151 flatcamTools/ToolNCC.py:564 +#: flatcamTools/ToolPaint.py:508 +msgid "The FlatCAM object to be used as non copper clearing reference." +msgstr "" +"El objeto FlatCAM que se utilizará como referencia de compensación sin cobre." + +#: flatcamTools/ToolCopperThieving.py:327 +msgid "Insert Copper thieving" +msgstr "Insertar Copper thieving" + +#: flatcamTools/ToolCopperThieving.py:329 +msgid "" +"Will add a polygon (may be split in multiple parts)\n" +"that will surround the actual Gerber traces at a certain distance." +msgstr "" +"Agregará un polígono (puede dividirse en varias partes)\n" +"eso rodeará las huellas reales de Gerber a cierta distancia." + +#: flatcamTools/ToolCopperThieving.py:388 +msgid "Insert Robber Bar" +msgstr "Insertar Robber Bar" + +#: flatcamTools/ToolCopperThieving.py:390 +msgid "" +"Will add a polygon with a defined thickness\n" +"that will surround the actual Gerber object\n" +"at a certain distance.\n" +"Required when doing holes pattern plating." +msgstr "" +"Agregará un polígono con un grosor definido\n" +"que rodeará el objeto real de Gerber\n" +"a cierta distancia.\n" +"Se requiere cuando se hace un patrón de agujeros." + +#: flatcamTools/ToolCopperThieving.py:414 +msgid "Select Soldermask object" +msgstr "Seleccionar objeto Soldermask" + +#: flatcamTools/ToolCopperThieving.py:416 +msgid "" +"Gerber Object with the soldermask.\n" +"It will be used as a base for\n" +"the pattern plating mask." +msgstr "" +"Objeto Gerber con la máscara de soldadura.\n" +"Se utilizará como base para\n" +"El patrón de la máscara de recubrimiento." + +#: flatcamTools/ToolCopperThieving.py:445 +msgid "Plated area" +msgstr "Área chapada" + +#: flatcamTools/ToolCopperThieving.py:447 +msgid "" +"The area to be plated by pattern plating.\n" +"Basically is made from the openings in the plating mask.\n" +"\n" +"<> - the calculated area is actually a bit larger\n" +"due of the fact that the soldermask openings are by design\n" +"a bit larger than the copper pads, and this area is\n" +"calculated from the soldermask openings." +msgstr "" +"El área a ser chapada por patrón de chapado.\n" +"Básicamente está hecho de las aberturas en la máscara de recubrimiento.\n" +"\n" +"<> - el área calculada es en realidad un poco más grande\n" +"Debido al hecho de que las aberturas de la máscara de soldadura son por " +"diseño\n" +"un poco más grande que las almohadillas de cobre, y esta área es\n" +"calculado a partir de las aberturas de la máscara de soldadura." + +#: flatcamTools/ToolCopperThieving.py:458 +msgid "mm" +msgstr "mm" + +#: flatcamTools/ToolCopperThieving.py:460 +msgid "in" +msgstr "in" + +#: flatcamTools/ToolCopperThieving.py:467 +msgid "Generate pattern plating mask" +msgstr "Generar máscara de recubrimiento de patrón" + +#: flatcamTools/ToolCopperThieving.py:469 +msgid "" +"Will add to the soldermask gerber geometry\n" +"the geometries of the copper thieving and/or\n" +"the robber bar if those were generated." +msgstr "" +"Agregará a la máscara de soldadura la geometría gerber\n" +"Las geometrías de Copper Thieving y / o\n" +"la Robber Bar si esos fueron generados." + +#: flatcamTools/ToolCopperThieving.py:625 +#: flatcamTools/ToolCopperThieving.py:650 +msgid "Lines Grid works only for 'itself' reference ..." +msgstr "La cuadrícula de líneas funciona solo para referencia 'sí mismo' ..." + +#: flatcamTools/ToolCopperThieving.py:636 +msgid "Solid fill selected." +msgstr "Relleno sólido seleccionado." + +#: flatcamTools/ToolCopperThieving.py:641 +msgid "Dots grid fill selected." +msgstr "Relleno de cuadrícula de puntos seleccionado." + +#: flatcamTools/ToolCopperThieving.py:646 +msgid "Squares grid fill selected." +msgstr "Rellenar cuadrícula de cuadrados seleccionados." + +#: flatcamTools/ToolCopperThieving.py:667 +#: flatcamTools/ToolCopperThieving.py:749 +#: flatcamTools/ToolCopperThieving.py:1345 flatcamTools/ToolDblSided.py:657 +#: flatcamTools/ToolExtractDrills.py:436 flatcamTools/ToolFiducials.py:466 +#: flatcamTools/ToolFiducials.py:743 flatcamTools/ToolOptimal.py:342 +#: flatcamTools/ToolPunchGerber.py:512 flatcamTools/ToolQRCode.py:426 +msgid "There is no Gerber object loaded ..." +msgstr "No hay ningún objeto Gerber cargado ..." + +#: flatcamTools/ToolCopperThieving.py:680 +#: flatcamTools/ToolCopperThieving.py:1273 +msgid "Append geometry" +msgstr "Añadir geometría" + +#: flatcamTools/ToolCopperThieving.py:724 +#: flatcamTools/ToolCopperThieving.py:1306 +#: flatcamTools/ToolCopperThieving.py:1459 +msgid "Append source file" +msgstr "Agregar archivo fuente" + +#: flatcamTools/ToolCopperThieving.py:732 +#: flatcamTools/ToolCopperThieving.py:1314 +msgid "Copper Thieving Tool done." +msgstr "Herramienta Copper Thieving hecha." + +#: flatcamTools/ToolCopperThieving.py:759 +#: flatcamTools/ToolCopperThieving.py:792 flatcamTools/ToolCutOut.py:519 +#: flatcamTools/ToolCutOut.py:724 flatcamTools/ToolInvertGerber.py:208 +#: flatcamTools/ToolNCC.py:1599 flatcamTools/ToolNCC.py:1640 +#: flatcamTools/ToolNCC.py:1669 flatcamTools/ToolPaint.py:1474 +#: flatcamTools/ToolPanelize.py:412 flatcamTools/ToolPanelize.py:426 +#: flatcamTools/ToolSub.py:294 flatcamTools/ToolSub.py:307 +#: flatcamTools/ToolSub.py:498 flatcamTools/ToolSub.py:513 +#: tclCommands/TclCommandCopperClear.py:97 tclCommands/TclCommandPaint.py:99 +msgid "Could not retrieve object" +msgstr "No se pudo recuperar el objeto" + +#: flatcamTools/ToolCopperThieving.py:820 +msgid "Click the end point of the filling area." +msgstr "Haga clic en el punto final del área de relleno." + +#: flatcamTools/ToolCopperThieving.py:942 +#: flatcamTools/ToolCopperThieving.py:946 +#: flatcamTools/ToolCopperThieving.py:1007 +msgid "Thieving" +msgstr "Ladrón" + +#: flatcamTools/ToolCopperThieving.py:953 +msgid "Copper Thieving Tool started. Reading parameters." +msgstr "Herramienta de Copper Thieving iniciada. Parámetros de lectura." + +#: flatcamTools/ToolCopperThieving.py:978 +msgid "Copper Thieving Tool. Preparing isolation polygons." +msgstr "Herramienta Copper Thieving. Preparación de polígonos de aislamiento." + +#: flatcamTools/ToolCopperThieving.py:1023 +msgid "Copper Thieving Tool. Preparing areas to fill with copper." +msgstr "" +"Herramienta Copper Thieving. Preparación de áreas para rellenar con cobre." + +#: flatcamTools/ToolCopperThieving.py:1034 flatcamTools/ToolOptimal.py:349 +#: flatcamTools/ToolPanelize.py:799 flatcamTools/ToolRulesCheck.py:1127 +msgid "Working..." +msgstr "Trabajando..." + +#: flatcamTools/ToolCopperThieving.py:1061 +msgid "Geometry not supported for bounding box" +msgstr "Geometría no admitida para cuadro delimitador" + +#: flatcamTools/ToolCopperThieving.py:1067 flatcamTools/ToolNCC.py:1933 +#: flatcamTools/ToolNCC.py:1988 flatcamTools/ToolNCC.py:2992 +#: flatcamTools/ToolPaint.py:3380 +msgid "No object available." +msgstr "No hay objeto disponible." + +#: flatcamTools/ToolCopperThieving.py:1104 flatcamTools/ToolNCC.py:1958 +#: flatcamTools/ToolNCC.py:2011 flatcamTools/ToolNCC.py:3034 +msgid "The reference object type is not supported." +msgstr "El tipo de objeto de referencia no es compatible." + +#: flatcamTools/ToolCopperThieving.py:1109 +msgid "Copper Thieving Tool. Appending new geometry and buffering." +msgstr "" +"Herramienta Coppe Thieving. Anexar nueva geometría y almacenamiento en búfer." + +#: flatcamTools/ToolCopperThieving.py:1125 +msgid "Create geometry" +msgstr "Crear geometría" + +#: flatcamTools/ToolCopperThieving.py:1325 +#: flatcamTools/ToolCopperThieving.py:1329 +msgid "P-Plating Mask" +msgstr "Mascarilla P" + +#: flatcamTools/ToolCopperThieving.py:1351 +msgid "Append PP-M geometry" +msgstr "Añadir geometría de máscara de recubrimiento P" + +#: flatcamTools/ToolCopperThieving.py:1477 +msgid "Generating Pattern Plating Mask done." +msgstr "Generando patrón de recubrimiento de máscara hecho." + +#: flatcamTools/ToolCopperThieving.py:1549 +msgid "Copper Thieving Tool exit." +msgstr "Salida de herramienta de Copper Thieving." + +#: flatcamTools/ToolCutOut.py:41 +msgid "Cutout PCB" +msgstr "PCB de corte" + +#: flatcamTools/ToolCutOut.py:69 flatcamTools/ToolPanelize.py:54 +msgid "Source Object" +msgstr "Objeto fuente" + +#: flatcamTools/ToolCutOut.py:70 +msgid "Object to be cutout" +msgstr "Objeto a recortar" + +#: flatcamTools/ToolCutOut.py:75 +msgid "Kind" +msgstr "Tipo" + +#: flatcamTools/ToolCutOut.py:97 +msgid "" +"Specify the type of object to be cutout.\n" +"It can be of type: Gerber or Geometry.\n" +"What is selected here will dictate the kind\n" +"of objects that will populate the 'Object' combobox." +msgstr "" +"Especifique el tipo de objeto a recortar.\n" +"Puede ser de tipo: Gerber o Geometría.\n" +"Lo que se seleccione aquí dictará el tipo\n" +"de objetos que llenarán el cuadro combinado 'Objeto'." + +#: flatcamTools/ToolCutOut.py:121 +msgid "Tool Parameters" +msgstr "Parámetros de Herram." + +#: flatcamTools/ToolCutOut.py:238 +msgid "A. Automatic Bridge Gaps" +msgstr "A. Brechas automáticas del puente" + +#: flatcamTools/ToolCutOut.py:240 +msgid "This section handle creation of automatic bridge gaps." +msgstr "Esta sección maneja la creación de espacios de puente automáticos." + +#: flatcamTools/ToolCutOut.py:247 +msgid "" +"Number of gaps used for the Automatic cutout.\n" +"There can be maximum 8 bridges/gaps.\n" +"The choices are:\n" +"- None - no gaps\n" +"- lr - left + right\n" +"- tb - top + bottom\n" +"- 4 - left + right +top + bottom\n" +"- 2lr - 2*left + 2*right\n" +"- 2tb - 2*top + 2*bottom\n" +"- 8 - 2*left + 2*right +2*top + 2*bottom" +msgstr "" +"Número de huecos utilizados para el recorte automático.\n" +"Puede haber un máximo de 8 puentes / huecos.\n" +"Las opciones son:\n" +"- Ninguno - sin espacios\n" +"- lr - izquierda + derecha\n" +"- tb - arriba + abajo\n" +"- 4 - izquierda + derecha + arriba + abajo\n" +"- 2lr - 2 * izquierda + 2 * derecha\n" +"- 2tb - 2 * arriba + 2 * abajo\n" +"- 8 - 2 * izquierda + 2 * derecha + 2 * arriba + 2 * abajo" + +#: flatcamTools/ToolCutOut.py:269 +msgid "Generate Freeform Geometry" +msgstr "Generar geometría de forma libre" + +#: flatcamTools/ToolCutOut.py:271 +msgid "" +"Cutout the selected object.\n" +"The cutout shape can be of any shape.\n" +"Useful when the PCB has a non-rectangular shape." +msgstr "" +"Recorta el objeto seleccionado.\n" +"La forma recortada puede ser de cualquier forma.\n" +"Útil cuando la PCB tiene una forma no rectangular." + +#: flatcamTools/ToolCutOut.py:283 +msgid "Generate Rectangular Geometry" +msgstr "Generar geometría rectangular" + +#: flatcamTools/ToolCutOut.py:285 +msgid "" +"Cutout the selected object.\n" +"The resulting cutout shape is\n" +"always a rectangle shape and it will be\n" +"the bounding box of the Object." +msgstr "" +"Recorta el objeto seleccionado.\n" +"La forma de corte resultante es\n" +"siempre una forma rectangular y será\n" +"El cuadro delimitador del objeto." + +#: flatcamTools/ToolCutOut.py:304 +msgid "B. Manual Bridge Gaps" +msgstr "B. Brechas manuales del puente" + +#: flatcamTools/ToolCutOut.py:306 +msgid "" +"This section handle creation of manual bridge gaps.\n" +"This is done by mouse clicking on the perimeter of the\n" +"Geometry object that is used as a cutout object. " +msgstr "" +"Esta sección maneja la creación de espacios de puente manuales.\n" +"Esto se hace haciendo clic con el mouse en el perímetro del\n" +"Objeto de geometría que se utiliza como objeto recortado. " + +#: flatcamTools/ToolCutOut.py:321 +msgid "Geometry object used to create the manual cutout." +msgstr "Objeto de geometría utilizado para crear el recorte manual." + +#: flatcamTools/ToolCutOut.py:328 +msgid "Generate Manual Geometry" +msgstr "Generar geometría manual" + +#: flatcamTools/ToolCutOut.py:330 +msgid "" +"If the object to be cutout is a Gerber\n" +"first create a Geometry that surrounds it,\n" +"to be used as the cutout, if one doesn't exist yet.\n" +"Select the source Gerber file in the top object combobox." +msgstr "" +"Si el objeto a recortar es un Gerber\n" +"primero crea una Geometría que lo rodea,\n" +"para ser utilizado como recorte, si aún no existe.\n" +"Seleccione el archivo fuente de Gerber en el cuadro combinado de objeto " +"superior." + +#: flatcamTools/ToolCutOut.py:343 +msgid "Manual Add Bridge Gaps" +msgstr "Agregar huecos de puente manuales" + +#: flatcamTools/ToolCutOut.py:345 +msgid "" +"Use the left mouse button (LMB) click\n" +"to create a bridge gap to separate the PCB from\n" +"the surrounding material.\n" +"The LMB click has to be done on the perimeter of\n" +"the Geometry object used as a cutout geometry." +msgstr "" +"Haga clic con el botón izquierdo del mouse (LMB)\n" +"para crear un espacio de puente para separar la PCB de\n" +"El material circundante.\n" +"El clic LMB debe hacerse en el perímetro de\n" +"El objeto Geometry utilizado como geometría de recorte." + +#: flatcamTools/ToolCutOut.py:524 +msgid "" +"There is no object selected for Cutout.\n" +"Select one and try again." +msgstr "" +"No hay ningún objeto seleccionado para Recorte.\n" +"Seleccione uno e intente nuevamente." + +#: flatcamTools/ToolCutOut.py:530 flatcamTools/ToolCutOut.py:733 +#: flatcamTools/ToolCutOut.py:914 flatcamTools/ToolCutOut.py:996 +#: tclCommands/TclCommandGeoCutout.py:184 +msgid "Tool Diameter is zero value. Change it to a positive real number." +msgstr "Diá. de herramienta es valor cero. Cámbielo a un número real positivo." + +#: flatcamTools/ToolCutOut.py:544 flatcamTools/ToolCutOut.py:748 +msgid "Number of gaps value is missing. Add it and retry." +msgstr "Falta el valor del número de huecos. Añádelo y vuelve a intentarlo." + +#: flatcamTools/ToolCutOut.py:549 flatcamTools/ToolCutOut.py:752 +msgid "" +"Gaps value can be only one of: 'None', 'lr', 'tb', '2lr', '2tb', 4 or 8. " +"Fill in a correct value and retry. " +msgstr "" +"El valor de las brechas solo puede ser uno de: 'Ninguno', 'lr', 'tb', '2lr', " +"'2tb', 4 u 8. Complete un valor correcto y vuelva a intentarlo. " + +#: flatcamTools/ToolCutOut.py:554 flatcamTools/ToolCutOut.py:758 +msgid "" +"Cutout operation cannot be done on a multi-geo Geometry.\n" +"Optionally, this Multi-geo Geometry can be converted to Single-geo " +"Geometry,\n" +"and after that perform Cutout." +msgstr "" +"La operación de recorte no se puede hacer en una Geometría multi-geo.\n" +"Opcionalmente, esta Geometría Multi-Geo se puede convertir a Geometría " +"Single-Geo,\n" +"y después de eso realiza el recorte." + +#: flatcamTools/ToolCutOut.py:706 flatcamTools/ToolCutOut.py:903 +msgid "Any form CutOut operation finished." +msgstr "Cualquier forma de operación de corte finalizada." + +#: flatcamTools/ToolCutOut.py:728 flatcamTools/ToolInvertGerber.py:214 +#: flatcamTools/ToolNCC.py:1603 flatcamTools/ToolPaint.py:1397 +#: flatcamTools/ToolPanelize.py:417 tclCommands/TclCommandBbox.py:71 +#: tclCommands/TclCommandNregions.py:71 +msgid "Object not found" +msgstr "Objeto no encontrado" + +#: flatcamTools/ToolCutOut.py:872 +msgid "Rectangular cutout with negative margin is not possible." +msgstr "El corte rectangular con margen negativo no es posible." + +#: flatcamTools/ToolCutOut.py:908 +msgid "" +"Click on the selected geometry object perimeter to create a bridge gap ..." +msgstr "" +"Haga clic en el perímetro del objeto de geometría seleccionado para crear un " +"espacio de puente ..." + +#: flatcamTools/ToolCutOut.py:925 flatcamTools/ToolCutOut.py:951 +msgid "Could not retrieve Geometry object" +msgstr "No se pudo recuperar el objeto Geometry" + +#: flatcamTools/ToolCutOut.py:956 +msgid "Geometry object for manual cutout not found" +msgstr "Objeto de geometría para corte manual no encontrado" + +#: flatcamTools/ToolCutOut.py:966 +msgid "Added manual Bridge Gap." +msgstr "Se agregó brecha de puente manual." + +#: flatcamTools/ToolCutOut.py:978 +msgid "Could not retrieve Gerber object" +msgstr "No se pudo recuperar el objeto Gerber" + +#: flatcamTools/ToolCutOut.py:983 +msgid "" +"There is no Gerber object selected for Cutout.\n" +"Select one and try again." +msgstr "" +"No hay ningún objeto Gerber seleccionado para Recorte.\n" +"Seleccione uno e intente nuevamente." + +#: flatcamTools/ToolCutOut.py:989 +msgid "" +"The selected object has to be of Gerber type.\n" +"Select a Gerber file and try again." +msgstr "" +"El objeto seleccionado debe ser del tipo Gerber.\n" +"Seleccione un archivo Gerber e intente nuevamente." + +#: flatcamTools/ToolCutOut.py:1024 +msgid "Geometry not supported for cutout" +msgstr "Geometría no admitida para recorte" + +#: flatcamTools/ToolCutOut.py:1099 +msgid "Making manual bridge gap..." +msgstr "Hacer un puente manual ..." + +#: flatcamTools/ToolDblSided.py:26 +msgid "2-Sided PCB" +msgstr "PCB a 2 caras" + +#: flatcamTools/ToolDblSided.py:52 +msgid "Mirror Operation" +msgstr "Operación Espejo" + +#: flatcamTools/ToolDblSided.py:53 +msgid "Objects to be mirrored" +msgstr "Objetos a ser reflejados" + +#: flatcamTools/ToolDblSided.py:65 +msgid "Gerber to be mirrored" +msgstr "Gerber para ser reflejado" + +#: flatcamTools/ToolDblSided.py:69 flatcamTools/ToolDblSided.py:97 +#: flatcamTools/ToolDblSided.py:127 +msgid "" +"Mirrors (flips) the specified object around \n" +"the specified axis. Does not create a new \n" +"object, but modifies it." +msgstr "" +"Refleja (voltea) el objeto especificado alrededor\n" +"El eje especificado. No crea un nuevo\n" +"objeto, pero lo modifica." + +#: flatcamTools/ToolDblSided.py:93 +msgid "Excellon Object to be mirrored." +msgstr "Excellon Objeto a ser reflejado." + +#: flatcamTools/ToolDblSided.py:122 +msgid "Geometry Obj to be mirrored." +msgstr "Obj de geometría para ser reflejado." + +#: flatcamTools/ToolDblSided.py:158 +msgid "Mirror Parameters" +msgstr "Parámetros de Espejo" + +#: flatcamTools/ToolDblSided.py:159 +msgid "Parameters for the mirror operation" +msgstr "Parámetros para la operación Reflejar" + +#: flatcamTools/ToolDblSided.py:164 +msgid "Mirror Axis" +msgstr "Eje espejo" + +#: flatcamTools/ToolDblSided.py:175 +msgid "" +"The coordinates used as reference for the mirror operation.\n" +"Can be:\n" +"- Point -> a set of coordinates (x,y) around which the object is mirrored\n" +"- Box -> a set of coordinates (x, y) obtained from the center of the\n" +"bounding box of another object selected below" +msgstr "" +"Las coordenadas utilizadas como referencia para la operación espejo.\n" +"Puede ser:\n" +"- Punto -> un conjunto de coordenadas (x, y) alrededor del cual se refleja " +"el objeto\n" +"- Cuadro -> un conjunto de coordenadas (x, y) obtenidas del centro de la\n" +"cuadro delimitador de otro objeto seleccionado a continuación" + +#: flatcamTools/ToolDblSided.py:189 +msgid "Point coordinates" +msgstr "Coordenadas de puntos" + +#: flatcamTools/ToolDblSided.py:194 +msgid "" +"Add the coordinates in format (x, y) through which the mirroring " +"axis\n" +" selected in 'MIRROR AXIS' pass.\n" +"The (x, y) coordinates are captured by pressing SHIFT key\n" +"and left mouse button click on canvas or you can enter the coordinates " +"manually." +msgstr "" +"Agregue las coordenadas en formato (x, y) a través del cual el eje " +"de reflejo\n" +"seleccionado en el pase 'EJE DE ESPEJO'.\n" +"Las coordenadas (x, y) se capturan presionando la tecla MAYÚS\n" +"y haga clic con el botón izquierdo del mouse en el lienzo o puede ingresar " +"las coordenadas manualmente." + +#: flatcamTools/ToolDblSided.py:218 +msgid "" +"It can be of type: Gerber or Excellon or Geometry.\n" +"The coordinates of the center of the bounding box are used\n" +"as reference for mirror operation." +msgstr "" +"Puede ser de tipo: Gerber o Excellon o Geometry.\n" +"Se utilizan las coordenadas del centro del cuadro delimitador.\n" +"como referencia para la operación del espejo." + +#: flatcamTools/ToolDblSided.py:252 +msgid "Bounds Values" +msgstr "Valores de límites" + +#: flatcamTools/ToolDblSided.py:254 +msgid "" +"Select on canvas the object(s)\n" +"for which to calculate bounds values." +msgstr "" +"Seleccione en lienzo los objetos\n" +"para el cual calcular valores de límites." + +#: flatcamTools/ToolDblSided.py:264 +msgid "X min" +msgstr "X min" + +#: flatcamTools/ToolDblSided.py:266 flatcamTools/ToolDblSided.py:280 +msgid "Minimum location." +msgstr "Ubicacion minima." + +#: flatcamTools/ToolDblSided.py:278 +msgid "Y min" +msgstr "Y min" + +#: flatcamTools/ToolDblSided.py:292 +msgid "X max" +msgstr "X max" + +#: flatcamTools/ToolDblSided.py:294 flatcamTools/ToolDblSided.py:308 +msgid "Maximum location." +msgstr "Máxima ubicación." + +#: flatcamTools/ToolDblSided.py:306 +msgid "Y max" +msgstr "Y max" + +#: flatcamTools/ToolDblSided.py:317 +msgid "Center point coordinates" +msgstr "Coords del punto central" + +#: flatcamTools/ToolDblSided.py:319 +msgid "Centroid" +msgstr "Centroide" + +#: flatcamTools/ToolDblSided.py:321 +msgid "" +"The center point location for the rectangular\n" +"bounding shape. Centroid. Format is (x, y)." +msgstr "" +"La ubicación del punto central para el rectangular\n" +"forma delimitadora. Centroide. El formato es (x, y)." + +#: flatcamTools/ToolDblSided.py:330 +msgid "Calculate Bounds Values" +msgstr "Calcular valores de límites" + +#: flatcamTools/ToolDblSided.py:332 +msgid "" +"Calculate the enveloping rectangular shape coordinates,\n" +"for the selection of objects.\n" +"The envelope shape is parallel with the X, Y axis." +msgstr "" +"Calcule las coordenadas de forma rectangular envolvente,\n" +"para la selección de objetos.\n" +"La forma de la envoltura es paralela al eje X, Y." + +#: flatcamTools/ToolDblSided.py:352 +msgid "PCB Alignment" +msgstr "Alineación de PCB" + +#: flatcamTools/ToolDblSided.py:354 flatcamTools/ToolDblSided.py:456 +msgid "" +"Creates an Excellon Object containing the\n" +"specified alignment holes and their mirror\n" +"images." +msgstr "" +"Crea un objeto Excellon que contiene el\n" +"agujeros de alineación especificados y su espejo\n" +"imágenes." + +#: flatcamTools/ToolDblSided.py:361 +msgid "Drill Diameter" +msgstr "Diá del Taladro" + +#: flatcamTools/ToolDblSided.py:390 flatcamTools/ToolDblSided.py:397 +msgid "" +"The reference point used to create the second alignment drill\n" +"from the first alignment drill, by doing mirror.\n" +"It can be modified in the Mirror Parameters -> Reference section" +msgstr "" +"El punto de referencia utilizado para crear el segundo ejercicio de " +"alineación.\n" +"desde el primer ejercicio de alineación, haciendo espejo.\n" +"Se puede modificar en la sección Parámetros Espejo -> Referencia" + +#: flatcamTools/ToolDblSided.py:410 +msgid "Alignment Drill Coordinates" +msgstr "Taladro de alineación Coords" + +#: flatcamTools/ToolDblSided.py:412 +msgid "" +"Alignment holes (x1, y1), (x2, y2), ... on one side of the mirror axis. For " +"each set of (x, y) coordinates\n" +"entered here, a pair of drills will be created:\n" +"\n" +"- one drill at the coordinates from the field\n" +"- one drill in mirror position over the axis selected above in the 'Align " +"Axis'." +msgstr "" +"Agujeros de alineación (x1, y1), (x2, y2), ... en un lado del eje del " +"espejo. Para cada conjunto de coordenadas (x, y)\n" +"ingresado aquí, se crearán un par de simulacros:\n" +"\n" +"- un ejercicio en las coordenadas del campo\n" +"- un taladro en posición de espejo sobre el eje seleccionado arriba en " +"'Alinear eje'." + +#: flatcamTools/ToolDblSided.py:420 +msgid "Drill coordinates" +msgstr "Coords de Perforación" + +#: flatcamTools/ToolDblSided.py:427 +msgid "" +"Add alignment drill holes coordinates in the format: (x1, y1), (x2, " +"y2), ... \n" +"on one side of the alignment axis.\n" +"\n" +"The coordinates set can be obtained:\n" +"- press SHIFT key and left mouse clicking on canvas. Then click Add.\n" +"- press SHIFT key and left mouse clicking on canvas. Then Ctrl+V in the " +"field.\n" +"- press SHIFT key and left mouse clicking on canvas. Then RMB click in the " +"field and click Paste.\n" +"- by entering the coords manually in the format: (x1, y1), (x2, y2), ..." +msgstr "" +"Agregue coordenadas de taladros de alineación en el formato: (x1, y1), (x2, " +"y2), ...\n" +"en un lado del eje de alineación.\n" +"\n" +"El conjunto de coordenadas se puede obtener:\n" +"- presione la tecla SHIFT y haga clic con el botón izquierdo del mouse en el " +"lienzo. Luego haga clic en Agregar.\n" +"- presione la tecla SHIFT y haga clic con el botón izquierdo en el lienzo " +"Luego Ctrl + V en el campo.\n" +"- presione la tecla SHIFT y haga clic con el botón izquierdo del mouse en el " +"lienzo. Luego, haga clic en RMB en el campo y haga clic en Pegar.\n" +"- ingresando las coordenadas manualmente en el formato: (x1, y1), (x2, " +"y2), ..." + +#: flatcamTools/ToolDblSided.py:442 +msgid "Delete Last" +msgstr "Eliminar último" + +#: flatcamTools/ToolDblSided.py:444 +msgid "Delete the last coordinates tuple in the list." +msgstr "Eliminar la última tupla de coordenadas en la lista." + +#: flatcamTools/ToolDblSided.py:454 +msgid "Create Excellon Object" +msgstr "Crear objeto Excellon" + +#: flatcamTools/ToolDblSided.py:541 +msgid "2-Sided Tool" +msgstr "Herra. de 2 lados" + +#: flatcamTools/ToolDblSided.py:581 +msgid "" +"'Point' reference is selected and 'Point' coordinates are missing. Add them " +"and retry." +msgstr "" +"Se selecciona la referencia 'Punto' y faltan las coordenadas 'Punto'. " +"Añádelos y vuelve a intentarlo." + +#: flatcamTools/ToolDblSided.py:600 +msgid "There is no Box reference object loaded. Load one and retry." +msgstr "" +"No hay ningún objeto de referencia de cuadro cargado. Cargue uno y vuelva a " +"intentarlo." + +#: flatcamTools/ToolDblSided.py:612 +msgid "No value or wrong format in Drill Dia entry. Add it and retry." +msgstr "" +"Sin valor o formato incorrecto en la entrada de diá. de perforación. Añádelo " +"y vuelve a intentarlo." + +#: flatcamTools/ToolDblSided.py:623 +msgid "There are no Alignment Drill Coordinates to use. Add them and retry." +msgstr "" +"No hay coordenadas de taladro de alineación para usar. Añádelos y vuelve a " +"intentarlo." + +#: flatcamTools/ToolDblSided.py:648 +msgid "Excellon object with alignment drills created..." +msgstr "Objeto Excellon con taladros de alineación creados ..." + +#: flatcamTools/ToolDblSided.py:661 flatcamTools/ToolDblSided.py:704 +#: flatcamTools/ToolDblSided.py:748 +msgid "Only Gerber, Excellon and Geometry objects can be mirrored." +msgstr "Solo los objetos Gerber, Excellon y Geometry se pueden reflejar." + +#: flatcamTools/ToolDblSided.py:671 flatcamTools/ToolDblSided.py:715 +msgid "" +"There are no Point coordinates in the Point field. Add coords and try " +"again ..." +msgstr "" +"No hay coordenadas de punto en el campo Punto. Agregue coords e intente " +"nuevamente ..." + +#: flatcamTools/ToolDblSided.py:681 flatcamTools/ToolDblSided.py:725 +#: flatcamTools/ToolDblSided.py:762 +msgid "There is no Box object loaded ..." +msgstr "No hay ningún objeto caja cargado ..." + +#: flatcamTools/ToolDblSided.py:691 flatcamTools/ToolDblSided.py:735 +#: flatcamTools/ToolDblSided.py:772 +msgid "was mirrored" +msgstr "fue reflejado" + +#: flatcamTools/ToolDblSided.py:700 flatcamTools/ToolPunchGerber.py:533 +msgid "There is no Excellon object loaded ..." +msgstr "No hay ningún objeto Excellon cargado ..." + +#: flatcamTools/ToolDblSided.py:744 +msgid "There is no Geometry object loaded ..." +msgstr "No hay ningún objeto de geometría cargado ..." + +#: flatcamTools/ToolDistance.py:57 flatcamTools/ToolDistanceMin.py:51 +msgid "Those are the units in which the distance is measured." +msgstr "Esas son las unidades en las que se mide la distancia." + +#: flatcamTools/ToolDistance.py:58 flatcamTools/ToolDistanceMin.py:52 +msgid "METRIC (mm)" +msgstr "MÉTRICO (mm)" + +#: flatcamTools/ToolDistance.py:58 flatcamTools/ToolDistanceMin.py:52 +msgid "INCH (in)" +msgstr "PULGADA (en)" + +#: flatcamTools/ToolDistance.py:64 +msgid "Snap to center" +msgstr "Ajustar al centro" + +#: flatcamTools/ToolDistance.py:66 +msgid "" +"Mouse cursor will snap to the center of the pad/drill\n" +"when it is hovering over the geometry of the pad/drill." +msgstr "" +"El cursor del mouse se ajustará al centro de la almohadilla / taladro\n" +"cuando se cierne sobre la geometría de la almohadilla / taladro." + +#: flatcamTools/ToolDistance.py:76 +msgid "Start Coords" +msgstr "Iniciar coordenadas" + +#: flatcamTools/ToolDistance.py:77 flatcamTools/ToolDistance.py:82 +msgid "This is measuring Start point coordinates." +msgstr "Esto mide las coordenadas del punto de inicio." + +#: flatcamTools/ToolDistance.py:87 +msgid "Stop Coords" +msgstr "Detener coordenadas" + +#: flatcamTools/ToolDistance.py:88 flatcamTools/ToolDistance.py:93 +msgid "This is the measuring Stop point coordinates." +msgstr "Estas son las coordenadas del punto de parada de medición." + +#: flatcamTools/ToolDistance.py:98 flatcamTools/ToolDistanceMin.py:63 +msgid "Dx" +msgstr "Dx" + +#: flatcamTools/ToolDistance.py:99 flatcamTools/ToolDistance.py:104 +#: flatcamTools/ToolDistanceMin.py:64 flatcamTools/ToolDistanceMin.py:93 +msgid "This is the distance measured over the X axis." +msgstr "Esta es la distancia medida sobre el eje X." + +#: flatcamTools/ToolDistance.py:109 flatcamTools/ToolDistanceMin.py:66 +msgid "Dy" +msgstr "Dy" + +#: flatcamTools/ToolDistance.py:110 flatcamTools/ToolDistance.py:115 +#: flatcamTools/ToolDistanceMin.py:67 flatcamTools/ToolDistanceMin.py:98 +msgid "This is the distance measured over the Y axis." +msgstr "Esta es la distancia medida sobre el eje Y." + +#: flatcamTools/ToolDistance.py:121 flatcamTools/ToolDistance.py:126 +#: flatcamTools/ToolDistanceMin.py:70 flatcamTools/ToolDistanceMin.py:103 +msgid "This is orientation angle of the measuring line." +msgstr "Este es el ángulo de orientación de la línea de medición." + +#: flatcamTools/ToolDistance.py:131 flatcamTools/ToolDistanceMin.py:72 +msgid "DISTANCE" +msgstr "DISTANCIA" + +#: flatcamTools/ToolDistance.py:132 flatcamTools/ToolDistance.py:137 +msgid "This is the point to point Euclidian distance." +msgstr "Este es el punto a punto de la distancia euclidiana." + +#: flatcamTools/ToolDistance.py:142 flatcamTools/ToolDistance.py:337 +#: flatcamTools/ToolDistanceMin.py:115 +msgid "Measure" +msgstr "Medida" + +#: flatcamTools/ToolDistance.py:272 +msgid "Working" +msgstr "Trabajando" + +#: flatcamTools/ToolDistance.py:277 +msgid "MEASURING: Click on the Start point ..." +msgstr "MEDICIÓN: haga clic en el punto de inicio ..." + +#: flatcamTools/ToolDistance.py:387 +msgid "Distance Tool finished." +msgstr "Herramienta de Distancia terminada." + +#: flatcamTools/ToolDistance.py:455 +msgid "Pads overlapped. Aborting." +msgstr "Almohadillas superpuestas. Abortar." + +#: flatcamTools/ToolDistance.py:485 +msgid "MEASURING: Click on the Destination point ..." +msgstr "MEDICIÓN: haga clic en el punto de destino ..." + +#: flatcamTools/ToolDistance.py:494 flatcamTools/ToolDistanceMin.py:285 +msgid "MEASURING" +msgstr "MEDICIÓN" + +#: flatcamTools/ToolDistance.py:495 flatcamTools/ToolDistanceMin.py:286 +msgid "Result" +msgstr "Resultado" + +#: flatcamTools/ToolDistanceMin.py:32 flatcamTools/ToolDistanceMin.py:144 +msgid "Minimum Distance Tool" +msgstr "Herramienta de Distancia Mínima" + +#: flatcamTools/ToolDistanceMin.py:55 +msgid "First object point" +msgstr "Primer punto" + +#: flatcamTools/ToolDistanceMin.py:56 flatcamTools/ToolDistanceMin.py:81 +msgid "" +"This is first object point coordinates.\n" +"This is the start point for measuring distance." +msgstr "" +"Este es el primer objeto de coordenadas de puntos.\n" +"Este es el punto de partida para medir la distancia." + +#: flatcamTools/ToolDistanceMin.py:59 +msgid "Second object point" +msgstr "Segundo punto" + +#: flatcamTools/ToolDistanceMin.py:60 flatcamTools/ToolDistanceMin.py:87 +msgid "" +"This is second object point coordinates.\n" +"This is the end point for measuring distance." +msgstr "" +"Este es el segundo objeto de coordenadas de puntos.\n" +"Este es el punto final para medir la distancia." + +#: flatcamTools/ToolDistanceMin.py:73 flatcamTools/ToolDistanceMin.py:108 +msgid "This is the point to point Euclidean distance." +msgstr "Este es el punto a punto de la distancia euclidiana." + +#: flatcamTools/ToolDistanceMin.py:75 +msgid "Half Point" +msgstr "Punto Medio" + +#: flatcamTools/ToolDistanceMin.py:76 flatcamTools/ToolDistanceMin.py:113 +msgid "This is the middle point of the point to point Euclidean distance." +msgstr "Este es el punto medio de la distancia euclidiana punto a punto." + +#: flatcamTools/ToolDistanceMin.py:118 +msgid "Jump to Half Point" +msgstr "Saltar a Medio Punto" + +#: flatcamTools/ToolDistanceMin.py:155 +msgid "" +"Select two objects and no more, to measure the distance between them ..." +msgstr "" +"Seleccione dos objetos y no más, para medir la distancia entre ellos ..." + +#: flatcamTools/ToolDistanceMin.py:196 flatcamTools/ToolDistanceMin.py:217 +#: flatcamTools/ToolDistanceMin.py:226 flatcamTools/ToolDistanceMin.py:247 +msgid "Select two objects and no more. Currently the selection has objects: " +msgstr "" +"Seleccione dos objetos y no más. Actualmente la selección tiene objetos: " + +#: flatcamTools/ToolDistanceMin.py:294 +msgid "Objects intersects or touch at" +msgstr "Los objetos se cruzan o tocan" + +#: flatcamTools/ToolDistanceMin.py:300 +msgid "Jumped to the half point between the two selected objects" +msgstr "Saltó al punto medio entre los dos objetos seleccionados" + +#: flatcamTools/ToolExtractDrills.py:29 flatcamTools/ToolExtractDrills.py:295 +msgid "Extract Drills" +msgstr "Extraer Taladros" + +#: flatcamTools/ToolExtractDrills.py:62 +msgid "Gerber from which to extract drill holes" +msgstr "Gerber de donde extraer agujeros de perforación" + +#: flatcamTools/ToolExtractDrills.py:297 +msgid "Extract drills from a given Gerber file." +msgstr "Extraer simulacros de un archivo Gerber dado." + +#: flatcamTools/ToolExtractDrills.py:478 flatcamTools/ToolExtractDrills.py:563 +#: flatcamTools/ToolExtractDrills.py:648 +msgid "No drills extracted. Try different parameters." +msgstr "No se extraen taladros. Prueba diferentes parámetros." + +#: flatcamTools/ToolFiducials.py:56 +msgid "Fiducials Coordinates" +msgstr "Coordenadas Fiduciales" + +#: flatcamTools/ToolFiducials.py:58 +msgid "" +"A table with the fiducial points coordinates,\n" +"in the format (x, y)." +msgstr "" +"Una tabla con las coordenadas de los puntos fiduciales,\n" +"en el formato (x, y)." + +#: flatcamTools/ToolFiducials.py:99 +msgid "Top Right" +msgstr "Arriba a la derecha" + +#: flatcamTools/ToolFiducials.py:191 +msgid "" +"- 'Auto' - automatic placement of fiducials in the corners of the bounding " +"box.\n" +" - 'Manual' - manual placement of fiducials." +msgstr "" +"- 'Auto' - colocación automática de fiduciales en las esquinas del cuadro " +"delimitador.\n" +" - 'Manual' - colocación manual de fiduciales." + +#: flatcamTools/ToolFiducials.py:259 +msgid "Copper Gerber" +msgstr "Cobre Gerber" + +#: flatcamTools/ToolFiducials.py:268 +msgid "Add Fiducial" +msgstr "Añadir Fiducial" + +#: flatcamTools/ToolFiducials.py:270 +msgid "Will add a polygon on the copper layer to serve as fiducial." +msgstr "Agregará un polígono en la capa de cobre para servir como fiducial." + +#: flatcamTools/ToolFiducials.py:286 +msgid "Soldermask Gerber" +msgstr "Soldermask Gerber" + +#: flatcamTools/ToolFiducials.py:288 +msgid "The Soldermask Gerber object." +msgstr "El objeto Soldermask Gerber." + +#: flatcamTools/ToolFiducials.py:300 +msgid "Add Soldermask Opening" +msgstr "Agregar apertura de Soldermask" + +#: flatcamTools/ToolFiducials.py:302 +msgid "" +"Will add a polygon on the soldermask layer\n" +"to serve as fiducial opening.\n" +"The diameter is always double of the diameter\n" +"for the copper fiducial." +msgstr "" +"Agregará un polígono en la capa de máscara de soldadura\n" +"para servir como apertura fiducial.\n" +"El diámetro siempre es el doble del diámetro.\n" +"para el cobre fiducial." + +#: flatcamTools/ToolFiducials.py:516 +msgid "Click to add first Fiducial. Bottom Left..." +msgstr "Haga clic para agregar primero Fiducial. Abajo a la izquierda ..." + +#: flatcamTools/ToolFiducials.py:780 +msgid "Click to add the last fiducial. Top Right..." +msgstr "Haga clic para agregar el último fiducial. Parte superior derecha..." + +#: flatcamTools/ToolFiducials.py:785 +msgid "Click to add the second fiducial. Top Left or Bottom Right..." +msgstr "" +"Haga clic para agregar el segundo fiducial. Arriba a la izquierda o abajo a " +"la derecha ..." + +#: flatcamTools/ToolFiducials.py:788 flatcamTools/ToolFiducials.py:797 +msgid "Done. All fiducials have been added." +msgstr "Hecho. Se han agregado todos los fiduciales." + +#: flatcamTools/ToolFiducials.py:874 +msgid "Fiducials Tool exit." +msgstr "Herram. Fiduciales de salida." + +#: flatcamTools/ToolFilm.py:42 +msgid "Film PCB" +msgstr "Película de PCB" + +#: flatcamTools/ToolFilm.py:78 +msgid "" +"Specify the type of object for which to create the film.\n" +"The object can be of type: Gerber or Geometry.\n" +"The selection here decide the type of objects that will be\n" +"in the Film Object combobox." +msgstr "" +"Especifique el tipo de objeto para el cual crear la película.\n" +"El objeto puede ser de tipo: Gerber o Geometry.\n" +"La selección aquí decide el tipo de objetos que serán\n" +"en el cuadro combinado de objeto de película." + +#: flatcamTools/ToolFilm.py:92 +msgid "Film Object" +msgstr "Objeto de la película" + +#: flatcamTools/ToolFilm.py:94 +msgid "Object for which to create the film." +msgstr "Objeto para el cual crear la película." + +#: flatcamTools/ToolFilm.py:115 +msgid "" +"Specify the type of object to be used as an container for\n" +"film creation. It can be: Gerber or Geometry type.The selection here decide " +"the type of objects that will be\n" +"in the Box Object combobox." +msgstr "" +"Especifique el tipo de objeto que se utilizará como contenedor para\n" +"creación cinematográfica. Puede ser: tipo Gerber o Geometría. La selección " +"aquí decide el tipo de objetos que serán\n" +"en el cuadro combinado Objeto de caja." + +#: flatcamTools/ToolFilm.py:129 +msgid "Box Object" +msgstr "Objeto de caja" + +#: flatcamTools/ToolFilm.py:131 +msgid "" +"The actual object that is used as container for the\n" +" selected object for which we create the film.\n" +"Usually it is the PCB outline but it can be also the\n" +"same object for which the film is created." +msgstr "" +"El objeto real que se utiliza como contenedor para\n" +"  objeto seleccionado para el que creamos la película.\n" +"Por lo general, es el esquema de PCB pero también puede ser el\n" +"mismo objeto para el que se crea la película." + +#: flatcamTools/ToolFilm.py:273 +msgid "Film Parameters" +msgstr "Parámetros de la película" + +#: flatcamTools/ToolFilm.py:334 +msgid "Punch drill holes" +msgstr "Perforar Agujeros" + +#: flatcamTools/ToolFilm.py:335 +msgid "" +"When checked the generated film will have holes in pads when\n" +"the generated film is positive. This is done to help drilling,\n" +"when done manually." +msgstr "" +"Cuando está marcada, la película generada tendrá agujeros en las " +"almohadillas cuando\n" +"La película generada es positiva. Esto se hace para ayudar a perforar,\n" +"cuando se hace manualmente." + +#: flatcamTools/ToolFilm.py:353 +msgid "Source" +msgstr "Fuente" + +#: flatcamTools/ToolFilm.py:355 +msgid "" +"The punch hole source can be:\n" +"- Excellon -> an Excellon holes center will serve as reference.\n" +"- Pad Center -> will try to use the pads center as reference." +msgstr "" +"La fuente del orificio de perforación puede ser:\n" +"- Excellon -> un centro de agujeros Excellon servirá como referencia.\n" +"- Centro de almohadillas -> intentará usar el centro de almohadillas como " +"referencia." + +#: flatcamTools/ToolFilm.py:360 +msgid "Pad center" +msgstr "Centro de la almohadilla" + +#: flatcamTools/ToolFilm.py:365 +msgid "Excellon Obj" +msgstr "Objeto Excellon" + +#: flatcamTools/ToolFilm.py:367 +msgid "" +"Remove the geometry of Excellon from the Film to create the holes in pads." +msgstr "" +"Retire la geometría de Excellon de la película para crear los agujeros en " +"las almohadillas." + +#: flatcamTools/ToolFilm.py:381 +msgid "Punch Size" +msgstr "Tamaño de perforación" + +#: flatcamTools/ToolFilm.py:382 +msgid "The value here will control how big is the punch hole in the pads." +msgstr "" +"El valor aquí controlará qué tan grande es el agujero de perforación en los " +"pads." + +#: flatcamTools/ToolFilm.py:502 +msgid "Save Film" +msgstr "Guardar película" + +#: flatcamTools/ToolFilm.py:504 +msgid "" +"Create a Film for the selected object, within\n" +"the specified box. Does not create a new \n" +" FlatCAM object, but directly save it in the\n" +"selected format." +msgstr "" +"Crear una Película para el objeto seleccionado, dentro de\n" +"El cuadro especificado. No crea un nuevo\n" +"Objeto FlatCAM, pero guárdelo directamente en el\n" +"formato seleccionado." + +#: flatcamTools/ToolFilm.py:664 +msgid "" +"Using the Pad center does not work on Geometry objects. Only a Gerber object " +"has pads." +msgstr "" +"El uso del centro de almohadilla no funciona en objetos de geometría. Solo " +"un objeto Gerber tiene almohadillas." + +#: flatcamTools/ToolFilm.py:674 +msgid "No FlatCAM object selected. Load an object for Film and retry." +msgstr "" +"No se ha seleccionado ningún objeto FlatCAM. Cargue un objeto para Película " +"y vuelva a intentarlo." + +#: flatcamTools/ToolFilm.py:681 +msgid "No FlatCAM object selected. Load an object for Box and retry." +msgstr "" +"No se ha seleccionado ningún objeto FlatCAM. Cargue un objeto para Box y " +"vuelva a intentarlo." + +#: flatcamTools/ToolFilm.py:685 +msgid "No FlatCAM object selected." +msgstr "No se ha seleccionado ningún objeto FlatCAM." + +#: flatcamTools/ToolFilm.py:696 +msgid "Generating Film ..." +msgstr "Generando película ..." + +#: flatcamTools/ToolFilm.py:745 flatcamTools/ToolFilm.py:749 +msgid "Export positive film" +msgstr "Exportar película positiva" + +#: flatcamTools/ToolFilm.py:782 +msgid "" +"No Excellon object selected. Load an object for punching reference and retry." +msgstr "" +"No se seleccionó ningún objeto Excellon. Cargue un objeto para perforar la " +"referencia y vuelva a intentarlo." + +#: flatcamTools/ToolFilm.py:806 +msgid "" +" Could not generate punched hole film because the punch hole sizeis bigger " +"than some of the apertures in the Gerber object." +msgstr "" +" No se pudo generar una película de agujero perforado porque el tamaño del " +"agujero perforado es más grande que algunas de las aberturas en el objeto " +"Gerber." + +#: flatcamTools/ToolFilm.py:818 +msgid "" +"Could not generate punched hole film because the punch hole sizeis bigger " +"than some of the apertures in the Gerber object." +msgstr "" +"No se pudo generar una película de agujero perforado porque el tamaño del " +"agujero perforado es más grande que algunas de las aberturas en el objeto " +"Gerber." + +#: flatcamTools/ToolFilm.py:836 +msgid "" +"Could not generate punched hole film because the newly created object " +"geometry is the same as the one in the source object geometry..." +msgstr "" +"No se pudo generar una película de agujero perforado porque la geometría del " +"objeto recién creada es la misma que la de la geometría del objeto de " +"origen ..." + +#: flatcamTools/ToolFilm.py:891 flatcamTools/ToolFilm.py:895 +msgid "Export negative film" +msgstr "Exportar película negativa" + +#: flatcamTools/ToolFilm.py:956 flatcamTools/ToolFilm.py:1139 +#: flatcamTools/ToolPanelize.py:430 +msgid "No object Box. Using instead" +msgstr "Sin objeto Caja. Usando en su lugar" + +#: flatcamTools/ToolFilm.py:1072 flatcamTools/ToolFilm.py:1252 +msgid "Film file exported to" +msgstr "Archivo de película exportado a" + +#: flatcamTools/ToolFilm.py:1075 flatcamTools/ToolFilm.py:1255 +msgid "Generating Film ... Please wait." +msgstr "Generando Película ... Por favor espere." + +#: flatcamTools/ToolImage.py:24 +msgid "Image as Object" +msgstr "Imagen como objeto" + +#: flatcamTools/ToolImage.py:33 +msgid "Image to PCB" +msgstr "Imagen a PCB" + +#: flatcamTools/ToolImage.py:56 +msgid "" +"Specify the type of object to create from the image.\n" +"It can be of type: Gerber or Geometry." +msgstr "" +"Especifique el tipo de objeto a crear a partir de la imagen.\n" +"Puede ser de tipo: Gerber o Geometría." + +#: flatcamTools/ToolImage.py:65 +msgid "DPI value" +msgstr "Valor de DPI" + +#: flatcamTools/ToolImage.py:66 +msgid "Specify a DPI value for the image." +msgstr "Especifique un valor de DPI para la imagen." + +#: flatcamTools/ToolImage.py:72 +msgid "Level of detail" +msgstr "Nivel de detalle" + +#: flatcamTools/ToolImage.py:81 +msgid "Image type" +msgstr "Tipo de imagen" + +#: flatcamTools/ToolImage.py:83 +msgid "" +"Choose a method for the image interpretation.\n" +"B/W means a black & white image. Color means a colored image." +msgstr "" +"Elija un método para la interpretación de la imagen.\n" +"B / N significa una imagen en blanco y negro. Color significa una imagen en " +"color." + +#: flatcamTools/ToolImage.py:92 flatcamTools/ToolImage.py:107 +#: flatcamTools/ToolImage.py:120 flatcamTools/ToolImage.py:133 +msgid "Mask value" +msgstr "Valor de la máscara" + +#: flatcamTools/ToolImage.py:94 +msgid "" +"Mask for monochrome image.\n" +"Takes values between [0 ... 255].\n" +"Decides the level of details to include\n" +"in the resulting geometry.\n" +"0 means no detail and 255 means everything \n" +"(which is totally black)." +msgstr "" +"Máscara para imagen monocroma.\n" +"Toma valores entre [0 ... 255].\n" +"Decide el nivel de detalles a incluir\n" +"en la geometría resultante.\n" +"0 significa sin detalles y 255 significa todo\n" +"(que es totalmente negro)" + +#: flatcamTools/ToolImage.py:109 +msgid "" +"Mask for RED color.\n" +"Takes values between [0 ... 255].\n" +"Decides the level of details to include\n" +"in the resulting geometry." +msgstr "" +"Máscara para color ROJO.\n" +"Toma valores entre [0 ... 255].\n" +"Decide el nivel de detalles a incluir\n" +"en la geometría resultante." + +#: flatcamTools/ToolImage.py:122 +msgid "" +"Mask for GREEN color.\n" +"Takes values between [0 ... 255].\n" +"Decides the level of details to include\n" +"in the resulting geometry." +msgstr "" +"Máscara para color VERDE.\n" +"Toma valores entre [0 ... 255].\n" +"Decide el nivel de detalles a incluir\n" +"en la geometría resultante." + +#: flatcamTools/ToolImage.py:135 +msgid "" +"Mask for BLUE color.\n" +"Takes values between [0 ... 255].\n" +"Decides the level of details to include\n" +"in the resulting geometry." +msgstr "" +"Máscara para color AZUL.\n" +"Toma valores entre [0 ... 255].\n" +"Decide el nivel de detalles a incluir\n" +"en la geometría resultante." + +#: flatcamTools/ToolImage.py:143 +msgid "Import image" +msgstr "Importar imagen" + +#: flatcamTools/ToolImage.py:145 +msgid "Open a image of raster type and then import it in FlatCAM." +msgstr "Abra una imagen de tipo ráster y luego impórtela en FlatCAM." + +#: flatcamTools/ToolImage.py:182 +msgid "Image Tool" +msgstr "Herra. de imagen" + +#: flatcamTools/ToolImage.py:234 flatcamTools/ToolImage.py:237 +msgid "Import IMAGE" +msgstr "Importar IMAGEN" + +#: flatcamTools/ToolImage.py:285 +msgid "Importing Image" +msgstr "Importando imagen" + +#: flatcamTools/ToolInvertGerber.py:74 +msgid "Gerber object that will be inverted." +msgstr "Objeto de Gerber que se invertirá." + +#: flatcamTools/ToolInvertGerber.py:83 +msgid "Parameters for this tool" +msgstr "Parámetros para esta herram." + +#: flatcamTools/ToolInvertGerber.py:123 +msgid "Invert Gerber" +msgstr "Invertir Gerber" + +#: flatcamTools/ToolInvertGerber.py:125 +msgid "" +"Will invert the Gerber object: areas that have copper\n" +"will be empty of copper and previous empty area will be\n" +"filled with copper." +msgstr "" +"Invertirá el objeto Gerber: áreas que tienen cobre.\n" +"estará vacío de cobre y el área vacía anterior será\n" +"lleno de cobre." + +#: flatcamTools/ToolInvertGerber.py:184 +msgid "Invert Tool" +msgstr "Herram. de Inversión" + +#: flatcamTools/ToolMove.py:102 +msgid "MOVE: Click on the Start point ..." +msgstr "MOVER: haga clic en el punto de inicio ..." + +#: flatcamTools/ToolMove.py:113 +msgid "Cancelled. No object(s) to move." +msgstr "Cancelado. Ningún objeto (s) para mover." + +#: flatcamTools/ToolMove.py:140 +msgid "MOVE: Click on the Destination point ..." +msgstr "MOVER: haga clic en el punto de destino ..." + +#: flatcamTools/ToolMove.py:163 +msgid "Moving..." +msgstr "Movedizo..." + +#: flatcamTools/ToolMove.py:166 +msgid "No object(s) selected." +msgstr "No hay objetos seleccionados." + +#: flatcamTools/ToolMove.py:221 +msgid "Error when mouse left click." +msgstr "Error al hacer clic con el botón izquierdo del mouse." + +#: flatcamTools/ToolNCC.py:42 +msgid "Non-Copper Clearing" +msgstr "Compensación sin cobre" + +#: flatcamTools/ToolNCC.py:88 +msgid "" +"Specify the type of object to be cleared of excess copper.\n" +"It can be of type: Gerber or Geometry.\n" +"What is selected here will dictate the kind\n" +"of objects that will populate the 'Object' combobox." +msgstr "" +"Especifique el tipo de objeto que se eliminará del exceso de cobre.\n" +"Puede ser de tipo: Gerber o Geometría.\n" +"Lo que se seleccione aquí dictará el tipo\n" +"de objetos que llenarán el cuadro combinado 'Objeto'." + +#: flatcamTools/ToolNCC.py:110 +msgid "Object to be cleared of excess copper." +msgstr "Objeto a eliminar del exceso de cobre." + +#: flatcamTools/ToolNCC.py:122 +msgid "" +"Tools pool from which the algorithm\n" +"will pick the ones used for copper clearing." +msgstr "" +"Conjunto de herramientas desde el cual el algoritmo\n" +"elegirá los utilizados para la limpieza de cobre." + +#: flatcamTools/ToolNCC.py:138 +msgid "" +"This is the Tool Number.\n" +"Non copper clearing will start with the tool with the biggest \n" +"diameter, continuing until there are no more tools.\n" +"Only tools that create NCC clearing geometry will still be present\n" +"in the resulting geometry. This is because with some tools\n" +"this function will not be able to create painting geometry." +msgstr "" +"Este es el número de herramienta.\n" +"La limpieza sin cobre comenzará con la herramienta con la mayor\n" +"diámetro, continuando hasta que no haya más herramientas.\n" +"Solo las herramientas que crean geometría de limpieza NCC seguirán " +"presentes\n" +"en la geometría resultante. Esto es porque con algunas herramientas\n" +"Esta función no podrá crear geometría de pintura." + +#: flatcamTools/ToolNCC.py:146 +msgid "" +"Tool Diameter. It's value (in current FlatCAM units)\n" +"is the cut width into the material." +msgstr "" +"Diámetro de herramienta. Su valor (en unidades actuales de FlatCAM)\n" +"es el ancho de corte en el material." + +#: flatcamTools/ToolNCC.py:150 +msgid "" +"The Tool Type (TT) can be:\n" +"- Circular with 1 ... 4 teeth -> it is informative only. Being circular,\n" +"the cut width in material is exactly the tool diameter.\n" +"- Ball -> informative only and make reference to the Ball type endmill.\n" +"- V-Shape -> it will disable Z-Cut parameter in the resulting geometry UI " +"form\n" +"and enable two additional UI form fields in the resulting geometry: V-Tip " +"Dia and\n" +"V-Tip Angle. Adjusting those two values will adjust the Z-Cut parameter " +"such\n" +"as the cut width into material will be equal with the value in the Tool " +"Diameter\n" +"column of this table.\n" +"Choosing the 'V-Shape' Tool Type automatically will select the Operation " +"Type\n" +"in the resulting geometry as Isolation." +msgstr "" +"El tipo de herramienta (TT) puede ser:\n" +"- Circular con 1 ... 4 dientes -> es solo informativo. Siendo circular,\n" +"El ancho de corte en el material es exactamente el diámetro de la " +"herramienta.\n" +"- Bola -> solo informativo y hacer referencia a la fresa de extremo de " +"bola.\n" +"- Forma V -> deshabilitará el parámetro de corte Z en la forma de interfaz " +"de usuario de geometría resultante\n" +"y habilite dos campos de formulario de UI adicionales en la geometría " +"resultante: V-Tip Dia y\n" +"Ángulo de punta en V. El ajuste de esos dos valores ajustará el parámetro Z-" +"Cut, como\n" +"ya que el ancho de corte en el material será igual al valor en el Diámetro " +"de la herramienta\n" +"columna de esta tabla.\n" +"Al elegir el tipo de herramienta 'Forma de V' automáticamente, se " +"seleccionará el Tipo de operación\n" +"en la geometría resultante como Aislamiento." + +#: flatcamTools/ToolNCC.py:296 flatcamTools/ToolPaint.py:279 +msgid "" +"Add a new tool to the Tool Table\n" +"with the diameter specified above." +msgstr "" +"Agregar una nueva herramienta a la tabla de herramientas\n" +"con el diámetro especificado anteriormente." + +#: flatcamTools/ToolNCC.py:318 flatcamTools/ToolPaint.py:301 +#: flatcamTools/ToolSolderPaste.py:130 +msgid "" +"Delete a selection of tools in the Tool Table\n" +"by first selecting a row(s) in the Tool Table." +msgstr "" +"Eliminar una selección de herramientas en la tabla de herramientas\n" +"seleccionando primero una (s) fila (s) en la Tabla de herramientas." + +#: flatcamTools/ToolNCC.py:554 +msgid "" +"The type of FlatCAM object to be used as non copper clearing reference.\n" +"It can be Gerber, Excellon or Geometry." +msgstr "" +"El tipo de objeto FlatCAM que se utilizará como referencia de compensación " +"sin cobre.\n" +"Puede ser Gerber, Excellon o Geometry." + +#: flatcamTools/ToolNCC.py:597 flatcamTools/ToolPaint.py:537 +msgid "Generate Geometry" +msgstr "Generar Geometría" + +#: flatcamTools/ToolNCC.py:1425 flatcamTools/ToolPaint.py:1184 +#: flatcamTools/ToolSolderPaste.py:888 +msgid "Please enter a tool diameter to add, in Float format." +msgstr "Ingrese un diámetro de herramienta para agregar, en formato decimal." + +#: flatcamTools/ToolNCC.py:1456 flatcamTools/ToolNCC.py:4013 +#: flatcamTools/ToolPaint.py:1208 flatcamTools/ToolPaint.py:3603 +#: flatcamTools/ToolSolderPaste.py:917 +msgid "Cancelled. Tool already in Tool Table." +msgstr "Cancelado. Herramienta ya en la tabla de herramientas." + +#: flatcamTools/ToolNCC.py:1463 flatcamTools/ToolNCC.py:4030 +#: flatcamTools/ToolPaint.py:1213 flatcamTools/ToolPaint.py:3620 +msgid "New tool added to Tool Table." +msgstr "Nueva herramienta agregada a la Tabla de herramientas." + +#: flatcamTools/ToolNCC.py:1507 flatcamTools/ToolPaint.py:1257 +msgid "Tool from Tool Table was edited." +msgstr "Se editó la herramienta de la tabla de herramientas." + +#: flatcamTools/ToolNCC.py:1519 flatcamTools/ToolPaint.py:1269 +#: flatcamTools/ToolSolderPaste.py:978 +msgid "Cancelled. New diameter value is already in the Tool Table." +msgstr "" +"Cancelado. El nuevo valor del diámetro ya está en la Tabla de herramientas." + +#: flatcamTools/ToolNCC.py:1571 flatcamTools/ToolPaint.py:1367 +msgid "Delete failed. Select a tool to delete." +msgstr "Eliminar falló. Seleccione una herramienta para eliminar." + +#: flatcamTools/ToolNCC.py:1577 flatcamTools/ToolPaint.py:1373 +msgid "Tool(s) deleted from Tool Table." +msgstr "Herramienta (s) eliminada de la tabla de herramientas." + +#: flatcamTools/ToolNCC.py:1619 +msgid "Wrong Tool Dia value format entered, use a number." +msgstr "" +"Se ingresó un formato de valor de Diámetro de herramienta incorrecta, use un " +"número." + +#: flatcamTools/ToolNCC.py:1628 flatcamTools/ToolPaint.py:1424 +msgid "No selected tools in Tool Table." +msgstr "Seleccione una herramienta en la tabla de herramientas." + +#: flatcamTools/ToolNCC.py:1704 flatcamTools/ToolPaint.py:1600 +msgid "Click the end point of the paint area." +msgstr "Haga clic en el punto final del área de pintura." + +#: flatcamTools/ToolNCC.py:1976 flatcamTools/ToolNCC.py:2964 +msgid "NCC Tool. Preparing non-copper polygons." +msgstr "Herramienta NCC. Preparación de polígonos sin cobre." + +#: flatcamTools/ToolNCC.py:2035 flatcamTools/ToolNCC.py:3092 +msgid "NCC Tool. Calculate 'empty' area." +msgstr "Herramienta NCC. Calcule el área 'vacía'." + +#: flatcamTools/ToolNCC.py:2054 flatcamTools/ToolNCC.py:2160 +#: flatcamTools/ToolNCC.py:2174 flatcamTools/ToolNCC.py:3105 +#: flatcamTools/ToolNCC.py:3210 flatcamTools/ToolNCC.py:3225 +#: flatcamTools/ToolNCC.py:3491 flatcamTools/ToolNCC.py:3592 +#: flatcamTools/ToolNCC.py:3607 +msgid "Buffering finished" +msgstr "Buffering terminado" + +#: flatcamTools/ToolNCC.py:2062 flatcamTools/ToolNCC.py:2181 +#: flatcamTools/ToolNCC.py:3113 flatcamTools/ToolNCC.py:3232 +#: flatcamTools/ToolNCC.py:3498 flatcamTools/ToolNCC.py:3614 +msgid "Could not get the extent of the area to be non copper cleared." +msgstr "" +"No se pudo obtener la extensión del área que no fue limpiada con cobre." + +#: flatcamTools/ToolNCC.py:2089 flatcamTools/ToolNCC.py:2167 +#: flatcamTools/ToolNCC.py:3140 flatcamTools/ToolNCC.py:3217 +#: flatcamTools/ToolNCC.py:3518 flatcamTools/ToolNCC.py:3599 +msgid "" +"Isolation geometry is broken. Margin is less than isolation tool diameter." +msgstr "" +"La geometría de aislamiento está rota. El margen es menor que el diámetro de " +"la herramienta de aislamiento." + +#: flatcamTools/ToolNCC.py:2184 flatcamTools/ToolNCC.py:3236 +#: flatcamTools/ToolNCC.py:3617 +msgid "The selected object is not suitable for copper clearing." +msgstr "El objeto seleccionado no es adecuado para la limpieza de cobre." + +#: flatcamTools/ToolNCC.py:2191 flatcamTools/ToolNCC.py:3243 +msgid "NCC Tool. Finished calculation of 'empty' area." +msgstr "Herramienta NCC. Cálculo finalizado del área 'vacía'." + +#: flatcamTools/ToolNCC.py:2222 flatcamTools/ToolNCC.py:2224 +#: flatcamTools/ToolNCC.py:2916 flatcamTools/ToolNCC.py:2918 +msgid "Non-Copper clearing ..." +msgstr "Limpieza sin cobre ..." + +#: flatcamTools/ToolNCC.py:2278 flatcamTools/ToolNCC.py:3060 +msgid "" +"NCC Tool. Finished non-copper polygons. Normal copper clearing task started." +msgstr "" +"Herramienta NCC. Polígonos terminados sin cobre. Se inició la tarea normal " +"de limpieza de cobre." + +#: flatcamTools/ToolNCC.py:2312 flatcamTools/ToolNCC.py:2592 +msgid "NCC Tool failed creating bounding box." +msgstr "La herramienta NCC no pudo crear el cuadro delimitador." + +#: flatcamTools/ToolNCC.py:2326 flatcamTools/ToolNCC.py:2609 +#: flatcamTools/ToolNCC.py:3256 flatcamTools/ToolNCC.py:3642 +msgid "NCC Tool clearing with tool diameter" +msgstr "La Herram. NCC se está limpiando con el diá. de la herramienta" + +#: flatcamTools/ToolNCC.py:2326 flatcamTools/ToolNCC.py:2609 +#: flatcamTools/ToolNCC.py:3256 flatcamTools/ToolNCC.py:3642 +msgid "started." +msgstr "empezado." + +#: flatcamTools/ToolNCC.py:2518 flatcamTools/ToolNCC.py:3417 +msgid "" +"There is no NCC Geometry in the file.\n" +"Usually it means that the tool diameter is too big for the painted " +"geometry.\n" +"Change the painting parameters and try again." +msgstr "" +"No hay geometría NCC en el archivo.\n" +"Por lo general, significa que el diámetro de la herramienta es demasiado " +"grande para la geometría pintada.\n" +"Cambie los parámetros de pintura e intente nuevamente." + +#: flatcamTools/ToolNCC.py:2527 flatcamTools/ToolNCC.py:3426 +msgid "NCC Tool clear all done." +msgstr "Herramienta NCC borrar todo hecho." + +#: flatcamTools/ToolNCC.py:2530 flatcamTools/ToolNCC.py:3429 +msgid "NCC Tool clear all done but the copper features isolation is broken for" +msgstr "" +"La herramienta NCC borra todo, pero el aislamiento de las características de " +"cobre está roto por" + +#: flatcamTools/ToolNCC.py:2532 flatcamTools/ToolNCC.py:2817 +#: flatcamTools/ToolNCC.py:3431 flatcamTools/ToolNCC.py:3814 +msgid "tools" +msgstr "herramientas" + +#: flatcamTools/ToolNCC.py:2813 flatcamTools/ToolNCC.py:3810 +msgid "NCC Tool Rest Machining clear all done." +msgstr "NCC herramienta de mecanizado de reposo claro todo hecho." + +#: flatcamTools/ToolNCC.py:2816 flatcamTools/ToolNCC.py:3813 +msgid "" +"NCC Tool Rest Machining clear all done but the copper features isolation is " +"broken for" +msgstr "" +"El mecanizado de reposo de herramientas NCC está claro, pero el aislamiento " +"de características de cobre está roto por" + +#: flatcamTools/ToolNCC.py:2928 +msgid "NCC Tool started. Reading parameters." +msgstr "Herramienta NCC iniciada. Parámetros de lectura." + +#: flatcamTools/ToolNCC.py:3906 +msgid "" +"Try to use the Buffering Type = Full in Preferences -> Gerber General. " +"Reload the Gerber file after this change." +msgstr "" +"Intente utilizar el Tipo de almacenamiento intermedio = Completo en " +"Preferencias -> Gerber General. Vuelva a cargar el archivo Gerber después de " +"este cambio." + +#: flatcamTools/ToolOptimal.py:79 +msgid "Number of decimals kept for found distances." +msgstr "Número de decimales guardados para distancias encontradas." + +#: flatcamTools/ToolOptimal.py:87 +msgid "Minimum distance" +msgstr "Distancia minima" + +#: flatcamTools/ToolOptimal.py:88 +msgid "Display minimum distance between copper features." +msgstr "Mostrar la distancia mínima entre las características de cobre." + +#: flatcamTools/ToolOptimal.py:92 +msgid "Determined" +msgstr "Determinado" + +#: flatcamTools/ToolOptimal.py:106 +msgid "Occurring" +msgstr "Ocurriendo" + +#: flatcamTools/ToolOptimal.py:107 +msgid "How many times this minimum is found." +msgstr "Cuántas veces se encuentra este mínimo." + +#: flatcamTools/ToolOptimal.py:113 +msgid "Minimum points coordinates" +msgstr "Coordenadas de puntos mínimos" + +#: flatcamTools/ToolOptimal.py:114 flatcamTools/ToolOptimal.py:120 +msgid "Coordinates for points where minimum distance was found." +msgstr "Coordenadas para los puntos donde se encontró la distancia mínima." + +#: flatcamTools/ToolOptimal.py:133 flatcamTools/ToolOptimal.py:209 +msgid "Jump to selected position" +msgstr "Saltar a la posición seleccionada" + +#: flatcamTools/ToolOptimal.py:135 flatcamTools/ToolOptimal.py:211 +msgid "" +"Select a position in the Locations text box and then\n" +"click this button." +msgstr "" +"Seleccione una posición en el cuadro de texto Ubicaciones y luego\n" +"haga clic en este botón." + +#: flatcamTools/ToolOptimal.py:143 +msgid "Other distances" +msgstr "Otras distancias" + +#: flatcamTools/ToolOptimal.py:144 +msgid "" +"Will display other distances in the Gerber file ordered from\n" +"the minimum to the maximum, not including the absolute minimum." +msgstr "" +"Mostrará otras distancias en el archivo Gerber ordenado a\n" +"el mínimo al máximo, sin incluir el mínimo absoluto." + +#: flatcamTools/ToolOptimal.py:149 +msgid "Other distances points coordinates" +msgstr "Otras distancias puntos coordenadas" + +#: flatcamTools/ToolOptimal.py:150 flatcamTools/ToolOptimal.py:164 +#: flatcamTools/ToolOptimal.py:171 flatcamTools/ToolOptimal.py:188 +#: flatcamTools/ToolOptimal.py:195 +msgid "" +"Other distances and the coordinates for points\n" +"where the distance was found." +msgstr "" +"Otras distancias y las coordenadas de los puntos.\n" +"donde se encontró la distancia." + +#: flatcamTools/ToolOptimal.py:163 +msgid "Gerber distances" +msgstr "Distancias de Gerber" + +#: flatcamTools/ToolOptimal.py:187 +msgid "Points coordinates" +msgstr "Coordenadas de puntos" + +#: flatcamTools/ToolOptimal.py:219 +msgid "Find Minimum" +msgstr "Encuentra mínimo" + +#: flatcamTools/ToolOptimal.py:221 +msgid "" +"Calculate the minimum distance between copper features,\n" +"this will allow the determination of the right tool to\n" +"use for isolation or copper clearing." +msgstr "" +"Calcule la distancia mínima entre las características de cobre,\n" +"esto permitirá determinar la herramienta adecuada para\n" +"utilizar para aislamiento o limpieza de cobre." + +#: flatcamTools/ToolOptimal.py:346 +msgid "Only Gerber objects can be evaluated." +msgstr "Solo se pueden evaluar los objetos de Gerber." + +#: flatcamTools/ToolOptimal.py:352 +msgid "" +"Optimal Tool. Started to search for the minimum distance between copper " +"features." +msgstr "" +"Herramienta óptima. Comenzó a buscar la distancia mínima entre las " +"características de cobre." + +#: flatcamTools/ToolOptimal.py:362 +msgid "Optimal Tool. Parsing geometry for aperture" +msgstr "Herramienta óptima. Análisis de geometría para apertura" + +#: flatcamTools/ToolOptimal.py:373 +msgid "Optimal Tool. Creating a buffer for the object geometry." +msgstr "Herramienta óptima. Crear un búfer para la geometría del objeto." + +#: flatcamTools/ToolOptimal.py:383 +msgid "" +"The Gerber object has one Polygon as geometry.\n" +"There are no distances between geometry elements to be found." +msgstr "" +"El objeto Gerber tiene un Polígono como geometría.\n" +"No hay distancias entre los elementos de geometría que se encuentran." + +#: flatcamTools/ToolOptimal.py:388 +msgid "" +"Optimal Tool. Finding the distances between each two elements. Iterations" +msgstr "" +"Herramienta óptima. Encontrar las distancias entre cada dos elementos. " +"Iteraciones" + +#: flatcamTools/ToolOptimal.py:423 +msgid "Optimal Tool. Finding the minimum distance." +msgstr "Herramienta óptima. Encontrar la distancia mínima." + +#: flatcamTools/ToolOptimal.py:439 +msgid "Optimal Tool. Finished successfully." +msgstr "Herramienta óptima. Terminado con éxito." + +#: flatcamTools/ToolPDF.py:157 flatcamTools/ToolPDF.py:161 +msgid "Open PDF" +msgstr "Abrir PDF" + +#: flatcamTools/ToolPDF.py:164 +msgid "Open PDF cancelled" +msgstr "Abrir PDF cancelado" + +#: flatcamTools/ToolPDF.py:195 +msgid "Parsing PDF file ..." +msgstr "Analizando archivo PDF ..." + +#: flatcamTools/ToolPDF.py:278 flatcamTools/ToolPDF.py:353 +#, python-format +msgid "Rendering PDF layer #%d ..." +msgstr "Renderizando la capa PDF #%d ..." + +#: flatcamTools/ToolPDF.py:283 flatcamTools/ToolPDF.py:358 +msgid "Open PDF file failed." +msgstr "El archivo PDF abierto ha fallado." + +#: flatcamTools/ToolPDF.py:289 flatcamTools/ToolPDF.py:363 +msgid "Rendered" +msgstr "Rendido" + +#: flatcamTools/ToolPaint.py:82 +msgid "" +"Specify the type of object to be painted.\n" +"It can be of type: Gerber or Geometry.\n" +"What is selected here will dictate the kind\n" +"of objects that will populate the 'Object' combobox." +msgstr "" +"Especifique el tipo de objeto a pintar.\n" +"Puede ser de tipo: Gerber o Geometría.\n" +"Lo que se seleccione aquí dictará el tipo\n" +"de objetos que llenarán el cuadro combinado 'Objeto'." + +#: flatcamTools/ToolPaint.py:104 +msgid "Object to be painted." +msgstr "Objeto a pintar." + +#: flatcamTools/ToolPaint.py:117 +msgid "" +"Tools pool from which the algorithm\n" +"will pick the ones used for painting." +msgstr "" +"Conjunto de herramientas desde el cual el algoritmo\n" +"elegirá los que se usan para pintar." + +#: flatcamTools/ToolPaint.py:134 +msgid "" +"This is the Tool Number.\n" +"Painting will start with the tool with the biggest diameter,\n" +"continuing until there are no more tools.\n" +"Only tools that create painting geometry will still be present\n" +"in the resulting geometry. This is because with some tools\n" +"this function will not be able to create painting geometry." +msgstr "" +"Este es el número de herramienta.\n" +"La pintura comenzará con la herramienta con el diámetro más grande,\n" +"continuando hasta que no haya más herramientas.\n" +"Solo las herramientas que crean geometría de pintura seguirán presentes\n" +"en la geometría resultante. Esto es porque con algunas herramientas\n" +"Esta función no podrá crear geometría de pintura." + +#: flatcamTools/ToolPaint.py:146 +msgid "" +"The Tool Type (TT) can be:\n" +"- Circular -> it is informative only. Being circular,\n" +"the cut width in material is exactly the tool diameter.\n" +"- Ball -> informative only and make reference to the Ball type endmill.\n" +"- V-Shape -> it will disable Z-Cut parameter in the resulting geometry UI " +"form\n" +"and enable two additional UI form fields in the resulting geometry: V-Tip " +"Dia and\n" +"V-Tip Angle. Adjusting those two values will adjust the Z-Cut parameter " +"such\n" +"as the cut width into material will be equal with the value in the Tool " +"Diameter\n" +"column of this table.\n" +"Choosing the 'V-Shape' Tool Type automatically will select the Operation " +"Type\n" +"in the resulting geometry as Isolation." +msgstr "" +"El tipo de herramienta (TT) puede ser:\n" +"- Circular -> es solo informativo. Siendo circular,\n" +"El ancho de corte en el material es exactamente el diámetro de la " +"herramienta.\n" +"- Bola -> solo informativo y hacer referencia a la fresa de extremo de " +"bola.\n" +"- Forma V -> deshabilitará el parámetro de corte Z en la forma de interfaz " +"de usuario de geometría resultante\n" +"y habilite dos campos de formulario de UI adicionales en la geometría " +"resultante: V-Tip Dia y\n" +"Ángulo de punta en V. El ajuste de esos dos valores ajustará el parámetro Z-" +"Cut, como\n" +"ya que el ancho de corte en el material será igual al valor en el Diámetro " +"de la herramienta\n" +"columna de esta tabla.\n" +"Al elegir el tipo de herramienta 'Forma de V' automáticamente, se " +"seleccionará el Tipo de operación\n" +"en la geometría resultante como Aislamiento." + +#: flatcamTools/ToolPaint.py:498 +msgid "" +"The type of FlatCAM object to be used as paint reference.\n" +"It can be Gerber, Excellon or Geometry." +msgstr "" +"El tipo de objeto FlatCAM que se utilizará como referencia de pintura.\n" +"Puede ser Gerber, Excellon o Geometry." + +#: flatcamTools/ToolPaint.py:539 +msgid "" +"- 'Area Selection' - left mouse click to start selection of the area to be " +"painted.\n" +"Keeping a modifier key pressed (CTRL or SHIFT) will allow to add multiple " +"areas.\n" +"- 'All Polygons' - the Paint will start after click.\n" +"- 'Reference Object' - will do non copper clearing within the area\n" +"specified by another object." +msgstr "" +"- 'Selección de área': haga clic con el botón izquierdo del mouse para " +"iniciar la selección del área a pintar.\n" +"Mantener presionada una tecla modificadora (CTRL o SHIFT) permitirá agregar " +"múltiples áreas.\n" +"- 'Todos los polígonos': la pintura comenzará después de hacer clic.\n" +"- 'Objeto de referencia' - hará una limpieza sin cobre dentro del área\n" +"especificado por otro objeto." + +#: flatcamTools/ToolPaint.py:1393 +#, python-format +msgid "Could not retrieve object: %s" +msgstr "No se pudo recuperar el objeto: %s" + +#: flatcamTools/ToolPaint.py:1403 +msgid "Can't do Paint on MultiGeo geometries" +msgstr "No se puede Pintar en geometrías de geo-múltiple" + +#: flatcamTools/ToolPaint.py:1433 +msgid "Click on a polygon to paint it." +msgstr "Haga clic en un polígono para pintarlo." + +#: flatcamTools/ToolPaint.py:1453 +msgid "Click the start point of the paint area." +msgstr "Haga clic en el punto de inicio del área de pintura." + +#: flatcamTools/ToolPaint.py:1518 +msgid "Click to add next polygon or right click to start painting." +msgstr "" +"Haga clic para agregar el siguiente polígono o haga clic con el botón " +"derecho para comenzar a pintar." + +#: flatcamTools/ToolPaint.py:1531 +msgid "Click to add/remove next polygon or right click to start painting." +msgstr "" +"Haga clic para agregar / eliminar el siguiente polígono o haga clic con el " +"botón derecho para comenzar a pintar." + +#: flatcamTools/ToolPaint.py:2029 +msgid "Painting polygon with method: lines." +msgstr "Pintura poligonal con método: líneas." + +#: flatcamTools/ToolPaint.py:2041 +msgid "Failed. Painting polygon with method: seed." +msgstr "Ha fallado. Pintura poligonal con método: semilla." + +#: flatcamTools/ToolPaint.py:2052 +msgid "Failed. Painting polygon with method: standard." +msgstr "Ha fallado. Pintura poligonal con método: estándar." + +#: flatcamTools/ToolPaint.py:2068 +msgid "Geometry could not be painted completely" +msgstr "La Geometría no se pudo pintar completamente" + +#: flatcamTools/ToolPaint.py:2097 flatcamTools/ToolPaint.py:2100 +#: flatcamTools/ToolPaint.py:2108 flatcamTools/ToolPaint.py:2411 +#: flatcamTools/ToolPaint.py:2414 flatcamTools/ToolPaint.py:2422 +#: flatcamTools/ToolPaint.py:2910 flatcamTools/ToolPaint.py:2913 +#: flatcamTools/ToolPaint.py:2919 +msgid "Paint Tool." +msgstr "Herramienta de Pintura." + +#: flatcamTools/ToolPaint.py:2097 flatcamTools/ToolPaint.py:2100 +#: flatcamTools/ToolPaint.py:2108 +msgid "Normal painting polygon task started." +msgstr "Se inició la tarea normal de polígono de pintura." + +#: flatcamTools/ToolPaint.py:2098 flatcamTools/ToolPaint.py:2412 +#: flatcamTools/ToolPaint.py:2911 +msgid "Buffering geometry..." +msgstr "Almacenar la geometría ..." + +#: flatcamTools/ToolPaint.py:2120 flatcamTools/ToolPaint.py:2429 +#: flatcamTools/ToolPaint.py:2927 +msgid "No polygon found." +msgstr "No se encontró polígono." + +#: flatcamTools/ToolPaint.py:2150 +msgid "Painting polygon..." +msgstr "Pintar polígono ..." + +#: flatcamTools/ToolPaint.py:2160 flatcamTools/ToolPaint.py:2475 +#: flatcamTools/ToolPaint.py:2665 flatcamTools/ToolPaint.py:2973 +#: flatcamTools/ToolPaint.py:3152 +msgid "Painting with tool diameter = " +msgstr "Pintar con diá de herram. = " + +#: flatcamTools/ToolPaint.py:2161 flatcamTools/ToolPaint.py:2476 +#: flatcamTools/ToolPaint.py:2666 flatcamTools/ToolPaint.py:2974 +#: flatcamTools/ToolPaint.py:3153 +msgid "started" +msgstr "empezado" + +#: flatcamTools/ToolPaint.py:2186 flatcamTools/ToolPaint.py:2502 +#: flatcamTools/ToolPaint.py:2692 flatcamTools/ToolPaint.py:3000 +#: flatcamTools/ToolPaint.py:3179 +msgid "Margin parameter too big. Tool is not used" +msgstr "El parámetro de margen es demasiado grande. La herramienta no se usa" + +#: flatcamTools/ToolPaint.py:2244 flatcamTools/ToolPaint.py:2571 +#: flatcamTools/ToolPaint.py:2749 flatcamTools/ToolPaint.py:3063 +#: flatcamTools/ToolPaint.py:3241 +msgid "" +"Could not do Paint. Try a different combination of parameters. Or a " +"different strategy of paint" +msgstr "" +"No se pudo Pintar. Pruebe con una combinación diferente de parámetros. O una " +"estrategia diferente de pintura" + +#: flatcamTools/ToolPaint.py:2301 flatcamTools/ToolPaint.py:2637 +#: flatcamTools/ToolPaint.py:2806 flatcamTools/ToolPaint.py:3124 +#: flatcamTools/ToolPaint.py:3303 +msgid "" +"There is no Painting Geometry in the file.\n" +"Usually it means that the tool diameter is too big for the painted " +"geometry.\n" +"Change the painting parameters and try again." +msgstr "" +"No hay Geometría de pintura en el archivo.\n" +"Por lo general, significa que el diámetro de la herramienta es demasiado " +"grande para la geometría pintada.\n" +"Cambie los parámetros de pintura e intente nuevamente." + +#: flatcamTools/ToolPaint.py:2324 +msgid "Paint Single failed." +msgstr "La pintura sola falló." + +#: flatcamTools/ToolPaint.py:2330 +msgid "Paint Single Done." +msgstr "Pintar solo hecho." + +#: flatcamTools/ToolPaint.py:2332 flatcamTools/ToolPaint.py:2842 +#: flatcamTools/ToolPaint.py:3339 +msgid "Polygon Paint started ..." +msgstr "Polygon Pinta comenzó ..." + +#: flatcamTools/ToolPaint.py:2411 flatcamTools/ToolPaint.py:2414 +#: flatcamTools/ToolPaint.py:2422 +msgid "Paint all polygons task started." +msgstr "La tarea de pintar todos los polígonos comenzó." + +#: flatcamTools/ToolPaint.py:2453 flatcamTools/ToolPaint.py:2951 +msgid "Painting polygons..." +msgstr "Pintar polígonos ..." + +#: flatcamTools/ToolPaint.py:2646 +msgid "Paint All Done." +msgstr "Pintar todo listo." + +#: flatcamTools/ToolPaint.py:2815 flatcamTools/ToolPaint.py:3312 +msgid "Paint All with Rest-Machining done." +msgstr "Pinte Todo con el mecanizado de descanso hecho." + +#: flatcamTools/ToolPaint.py:2834 +msgid "Paint All failed." +msgstr "Pintar todo falló." + +#: flatcamTools/ToolPaint.py:2840 +msgid "Paint Poly All Done." +msgstr "Pintar todos los polígonos está hecho." + +#: flatcamTools/ToolPaint.py:2910 flatcamTools/ToolPaint.py:2913 +#: flatcamTools/ToolPaint.py:2919 +msgid "Painting area task started." +msgstr "La tarea del área de pintura comenzó." + +#: flatcamTools/ToolPaint.py:3133 +msgid "Paint Area Done." +msgstr "Área de pintura hecha." + +#: flatcamTools/ToolPaint.py:3331 +msgid "Paint Area failed." +msgstr "Pintar el área falló." + +#: flatcamTools/ToolPaint.py:3337 +msgid "Paint Poly Area Done." +msgstr "Pintar el área de polígonos está hecho." + +#: flatcamTools/ToolPanelize.py:34 +msgid "Panelize PCB" +msgstr "Panelizar PCB" + +#: flatcamTools/ToolPanelize.py:56 +msgid "" +"Specify the type of object to be panelized\n" +"It can be of type: Gerber, Excellon or Geometry.\n" +"The selection here decide the type of objects that will be\n" +"in the Object combobox." +msgstr "" +"Especifique el tipo de objeto a ser panelizado\n" +"Puede ser de tipo: Gerber, Excellon o Geometry.\n" +"La selección aquí decide el tipo de objetos que serán\n" +"en el cuadro combinado Objeto." + +#: flatcamTools/ToolPanelize.py:89 +msgid "" +"Object to be panelized. This means that it will\n" +"be duplicated in an array of rows and columns." +msgstr "" +"Objeto a ser panelizado. Esto significa que lo hará\n" +"ser duplicado en una matriz de filas y columnas." + +#: flatcamTools/ToolPanelize.py:102 +msgid "Penelization Reference" +msgstr "Ref. de penelización" + +#: flatcamTools/ToolPanelize.py:104 +msgid "" +"Choose the reference for panelization:\n" +"- Object = the bounding box of a different object\n" +"- Bounding Box = the bounding box of the object to be panelized\n" +"\n" +"The reference is useful when doing panelization for more than one\n" +"object. The spacings (really offsets) will be applied in reference\n" +"to this reference object therefore maintaining the panelized\n" +"objects in sync." +msgstr "" +"Elija la referencia para la panelización:\n" +"- Objeto = el cuadro delimitador de un objeto diferente\n" +"- Cuadro delimitador = el cuadro delimitador del objeto a panelizar\n" +"\n" +"La referencia es útil cuando se hace panelización para más de uno.\n" +"objeto. Los espacios (realmente desplazados) se aplicarán en referencia\n" +"a este objeto de referencia, por lo tanto, manteniendo el panelizado\n" +"objetos sincronizados." + +#: flatcamTools/ToolPanelize.py:125 +msgid "Box Type" +msgstr "Tipo de caja" + +#: flatcamTools/ToolPanelize.py:127 +msgid "" +"Specify the type of object to be used as an container for\n" +"panelization. It can be: Gerber or Geometry type.\n" +"The selection here decide the type of objects that will be\n" +"in the Box Object combobox." +msgstr "" +"Especifique el tipo de objeto que se utilizará como contenedor para\n" +"panelización. Puede ser: tipo Gerber o Geometría.\n" +"La selección aquí decide el tipo de objetos que serán\n" +"en el cuadro combinado Objeto de caja." + +#: flatcamTools/ToolPanelize.py:141 +msgid "" +"The actual object that is used as container for the\n" +" selected object that is to be panelized." +msgstr "" +"El objeto real que se utiliza como contenedor para\n" +" objeto seleccionado que se va a panelizar." + +#: flatcamTools/ToolPanelize.py:147 +msgid "Panel Data" +msgstr "Datos del panel" + +#: flatcamTools/ToolPanelize.py:149 +msgid "" +"This informations will shape the resulting panel.\n" +"The number of rows and columns will set how many\n" +"duplicates of the original geometry will be generated.\n" +"\n" +"The spacings will set the distance between any two\n" +"elements of the panel array." +msgstr "" +"Esta información dará forma al panel resultante.\n" +"El número de filas y columnas establecerá cuántos\n" +"Se generarán duplicados de la geometría original.\n" +"\n" +"Los espacios establecerán la distancia entre dos\n" +"elementos de la matriz de paneles." + +#: flatcamTools/ToolPanelize.py:208 +msgid "" +"Choose the type of object for the panel object:\n" +"- Geometry\n" +"- Gerber" +msgstr "" +"Elija el tipo de objeto para el objeto del panel:\n" +"- Geometría\n" +"- Gerber" + +#: flatcamTools/ToolPanelize.py:216 +msgid "Constrain panel within" +msgstr "Restrinja el panel dentro de" + +#: flatcamTools/ToolPanelize.py:252 +msgid "Panelize Object" +msgstr "Panelizar objeto" + +#: flatcamTools/ToolPanelize.py:254 flatcamTools/ToolRulesCheck.py:501 +msgid "" +"Panelize the specified object around the specified box.\n" +"In other words it creates multiple copies of the source object,\n" +"arranged in a 2D array of rows and columns." +msgstr "" +"Panelizar el objeto especificado alrededor del cuadro especificado.\n" +"En otras palabras, crea múltiples copias del objeto fuente,\n" +"dispuestos en una matriz 2D de filas y columnas." + +#: flatcamTools/ToolPanelize.py:322 +msgid "Panel. Tool" +msgstr "Herra. de Panel" + +#: flatcamTools/ToolPanelize.py:457 +msgid "Columns or Rows are zero value. Change them to a positive integer." +msgstr "" +"Las columnas o filas son de valor cero. Cámbialos a un entero positivo." + +#: flatcamTools/ToolPanelize.py:494 +msgid "Generating panel ... " +msgstr "Panel generador … " + +#: flatcamTools/ToolPanelize.py:777 +msgid "Generating panel ... Adding the Gerber code." +msgstr "Generando panel ... Agregando el código Gerber." + +#: flatcamTools/ToolPanelize.py:785 +msgid "Generating panel... Spawning copies" +msgstr "Generando panel ... Generando copias" + +#: flatcamTools/ToolPanelize.py:792 +msgid "Panel done..." +msgstr "Panel hecho ..." + +#: flatcamTools/ToolPanelize.py:795 +#, python-brace-format +msgid "" +"{text} Too big for the constrain area. Final panel has {col} columns and " +"{row} rows" +msgstr "" +"{text} Demasiado grande para el área de restricción. El panel final tiene " +"{col} columnas y {row} filas" + +#: flatcamTools/ToolPanelize.py:804 +msgid "Panel created successfully." +msgstr "Panel creado con éxito." + +#: flatcamTools/ToolPcbWizard.py:31 +msgid "PcbWizard Import Tool" +msgstr "Herra. de import. PcbWizard" + +#: flatcamTools/ToolPcbWizard.py:40 +msgid "Import 2-file Excellon" +msgstr "Importar Excellon de 2 archivos" + +#: flatcamTools/ToolPcbWizard.py:51 +msgid "Load files" +msgstr "Cargar archivos" + +#: flatcamTools/ToolPcbWizard.py:57 +msgid "Excellon file" +msgstr "Archivo Excellon" + +#: flatcamTools/ToolPcbWizard.py:59 +msgid "" +"Load the Excellon file.\n" +"Usually it has a .DRL extension" +msgstr "" +"Cargue el archivo Excellon.\n" +"Por lo general, tiene una extensión .DRL" + +#: flatcamTools/ToolPcbWizard.py:65 +msgid "INF file" +msgstr "Archivo INF" + +#: flatcamTools/ToolPcbWizard.py:67 +msgid "Load the INF file." +msgstr "Cargue el archivo INF." + +#: flatcamTools/ToolPcbWizard.py:79 +msgid "Tool Number" +msgstr "Numero de Herram" + +#: flatcamTools/ToolPcbWizard.py:81 +msgid "Tool diameter in file units." +msgstr "Diámetro de herramienta en unidades de archivo." + +#: flatcamTools/ToolPcbWizard.py:87 +msgid "Excellon format" +msgstr "Formato Excellon" + +#: flatcamTools/ToolPcbWizard.py:95 +msgid "Int. digits" +msgstr "Dígitos enteros" + +#: flatcamTools/ToolPcbWizard.py:97 +msgid "The number of digits for the integral part of the coordinates." +msgstr "El número de dígitos para la parte integral de las coordenadas." + +#: flatcamTools/ToolPcbWizard.py:104 +msgid "Frac. digits" +msgstr "Dígitos Fraccio" + +#: flatcamTools/ToolPcbWizard.py:106 +msgid "The number of digits for the fractional part of the coordinates." +msgstr "El número de dígitos para la parte fraccionaria de las coordenadas." + +#: flatcamTools/ToolPcbWizard.py:113 +msgid "No Suppression" +msgstr "Sin supresión" + +#: flatcamTools/ToolPcbWizard.py:114 +msgid "Zeros supp." +msgstr "Supresión de Ceros" + +#: flatcamTools/ToolPcbWizard.py:116 +msgid "" +"The type of zeros suppression used.\n" +"Can be of type:\n" +"- LZ = leading zeros are kept\n" +"- TZ = trailing zeros are kept\n" +"- No Suppression = no zero suppression" +msgstr "" +"El tipo de supresión de ceros utilizada.\n" +"Puede ser de tipo:\n" +"- LZ = los ceros iniciales se mantienen\n" +"- TZ = los ceros finales se mantienen\n" +"- Sin supresión = sin supresión de cero" + +#: flatcamTools/ToolPcbWizard.py:129 +msgid "" +"The type of units that the coordinates and tool\n" +"diameters are using. Can be INCH or MM." +msgstr "" +"El tipo de unidades que las coordenadas y la herramienta\n" +"diámetros están utilizando. Puede ser PULGADAS o MM." + +#: flatcamTools/ToolPcbWizard.py:136 +msgid "Import Excellon" +msgstr "Importar Excellon" + +#: flatcamTools/ToolPcbWizard.py:138 +msgid "" +"Import in FlatCAM an Excellon file\n" +"that store it's information's in 2 files.\n" +"One usually has .DRL extension while\n" +"the other has .INF extension." +msgstr "" +"Importar en FlatCAM un archivo Excellon\n" +"que almacena su información en 2 archivos.\n" +"Uno generalmente tiene la extensión .DRL mientras\n" +"el otro tiene extensión .INF." + +#: flatcamTools/ToolPcbWizard.py:197 +msgid "PCBWizard Tool" +msgstr "Herra. PCBWizard" + +#: flatcamTools/ToolPcbWizard.py:291 flatcamTools/ToolPcbWizard.py:295 +msgid "Load PcbWizard Excellon file" +msgstr "Cargar archivo PcbWizard Excellon" + +#: flatcamTools/ToolPcbWizard.py:314 flatcamTools/ToolPcbWizard.py:318 +msgid "Load PcbWizard INF file" +msgstr "Cargar archivo PcbWizard INF" + +#: flatcamTools/ToolPcbWizard.py:366 +msgid "" +"The INF file does not contain the tool table.\n" +"Try to open the Excellon file from File -> Open -> Excellon\n" +"and edit the drill diameters manually." +msgstr "" +"El archivo INF no contiene la tabla de herramientas.\n" +"Intente abrir el archivo Excellon desde Archivo -> Abrir -> Excellon\n" +"y edite los diámetros de taladro manualmente." + +#: flatcamTools/ToolPcbWizard.py:387 +msgid "PcbWizard .INF file loaded." +msgstr "PcbWizard .INF archivo cargado." + +#: flatcamTools/ToolPcbWizard.py:392 +msgid "Main PcbWizard Excellon file loaded." +msgstr "Archivo PcbWizard Excellon principal cargado." + +#: flatcamTools/ToolPcbWizard.py:427 +msgid "Cannot parse file" +msgstr "No se puede analizar el archivo" + +#: flatcamTools/ToolPcbWizard.py:450 +msgid "Importing Excellon." +msgstr "Importando Excellon." + +#: flatcamTools/ToolPcbWizard.py:457 +msgid "Import Excellon file failed." +msgstr "Error al importar el archivo Excellon." + +#: flatcamTools/ToolPcbWizard.py:464 +msgid "Imported" +msgstr "Importado" + +#: flatcamTools/ToolPcbWizard.py:467 +msgid "Excellon merging is in progress. Please wait..." +msgstr "La fusión de Excellon está en progreso. Por favor espera..." + +#: flatcamTools/ToolPcbWizard.py:469 +msgid "The imported Excellon file is empty." +msgstr "El archivo Excellon importado es Ninguno." + +#: flatcamTools/ToolProperties.py:131 +msgid "Object Properties are displayed." +msgstr "Se muestran las propiedades del objeto." + +#: flatcamTools/ToolProperties.py:136 +msgid "Properties Tool" +msgstr "Herra. de Propiedades" + +#: flatcamTools/ToolProperties.py:150 +msgid "TYPE" +msgstr "TIPO" + +#: flatcamTools/ToolProperties.py:151 +msgid "NAME" +msgstr "NOMBRE" + +#: flatcamTools/ToolProperties.py:153 +msgid "Dimensions" +msgstr "Dimensiones" + +#: flatcamTools/ToolProperties.py:181 +msgid "Geo Type" +msgstr "Tipo de Geo" + +#: flatcamTools/ToolProperties.py:184 +msgid "Single-Geo" +msgstr "Geo. individual" + +#: flatcamTools/ToolProperties.py:185 +msgid "Multi-Geo" +msgstr "Geo. múltiple" + +#: flatcamTools/ToolProperties.py:196 +msgid "Calculating dimensions ... Please wait." +msgstr "Calculando dimensiones ... Por favor espere." + +#: flatcamTools/ToolProperties.py:339 flatcamTools/ToolProperties.py:343 +#: flatcamTools/ToolProperties.py:345 +msgid "Inch" +msgstr "Pulgada" + +#: flatcamTools/ToolProperties.py:339 flatcamTools/ToolProperties.py:344 +#: flatcamTools/ToolProperties.py:346 +msgid "Metric" +msgstr "Métrico" + +#: flatcamTools/ToolProperties.py:421 flatcamTools/ToolProperties.py:486 +msgid "Drills number" +msgstr "Número de taladros" + +#: flatcamTools/ToolProperties.py:422 flatcamTools/ToolProperties.py:488 +msgid "Slots number" +msgstr "Número de tragamonedas" + +#: flatcamTools/ToolProperties.py:424 +msgid "Drills total number:" +msgstr "Número total de taladros:" + +#: flatcamTools/ToolProperties.py:425 +msgid "Slots total number:" +msgstr "Número total de tragamonedas:" + +#: flatcamTools/ToolProperties.py:452 flatcamTools/ToolProperties.py:455 +#: flatcamTools/ToolProperties.py:458 flatcamTools/ToolProperties.py:483 +msgid "Present" +msgstr "Presente" + +#: flatcamTools/ToolProperties.py:453 flatcamTools/ToolProperties.py:484 +msgid "Solid Geometry" +msgstr "Geometria solida" + +#: flatcamTools/ToolProperties.py:456 +msgid "GCode Text" +msgstr "GCode texto" + +#: flatcamTools/ToolProperties.py:459 +msgid "GCode Geometry" +msgstr "Geometría GCode" + +#: flatcamTools/ToolProperties.py:462 +msgid "Data" +msgstr "Datos" + +#: flatcamTools/ToolProperties.py:495 +msgid "Depth of Cut" +msgstr "Profundidad del corte" + +#: flatcamTools/ToolProperties.py:507 +msgid "Clearance Height" +msgstr "Altura libre" + +#: flatcamTools/ToolProperties.py:539 +msgid "Routing time" +msgstr "Tiempo de enrutamiento" + +#: flatcamTools/ToolProperties.py:546 +msgid "Travelled distance" +msgstr "Distancia recorrida" + +#: flatcamTools/ToolProperties.py:564 +msgid "Width" +msgstr "Anchura" + +#: flatcamTools/ToolProperties.py:570 flatcamTools/ToolProperties.py:578 +msgid "Box Area" +msgstr "Área de caja" + +#: flatcamTools/ToolProperties.py:573 flatcamTools/ToolProperties.py:581 +msgid "Convex_Hull Area" +msgstr "Área de casco convexo" + +#: flatcamTools/ToolProperties.py:588 flatcamTools/ToolProperties.py:591 +msgid "Copper Area" +msgstr "Área de cobre" + +#: flatcamTools/ToolPunchGerber.py:30 flatcamTools/ToolPunchGerber.py:323 +msgid "Punch Gerber" +msgstr "Gerber Perforadora" + +#: flatcamTools/ToolPunchGerber.py:65 +msgid "Gerber into which to punch holes" +msgstr "Gerber en el que hacer agujeros" + +#: flatcamTools/ToolPunchGerber.py:85 +msgid "ALL" +msgstr "TODAS" + +#: flatcamTools/ToolPunchGerber.py:166 +msgid "" +"Remove the geometry of Excellon from the Gerber to create the holes in pads." +msgstr "" +"Retire la geometría de Excellon del Gerber para crear los agujeros en las " +"almohadillas." + +#: flatcamTools/ToolPunchGerber.py:325 +msgid "" +"Create a Gerber object from the selected object, within\n" +"the specified box." +msgstr "" +"Cree un objeto Gerber a partir del objeto seleccionado, dentro de\n" +"El cuadro especificado." + +#: flatcamTools/ToolPunchGerber.py:425 +msgid "Punch Tool" +msgstr "Herram. de Perforación" + +#: flatcamTools/ToolPunchGerber.py:599 +msgid "The value of the fixed diameter is 0.0. Aborting." +msgstr "El valor del diámetro fijo es 0.0. Abortar." + +#: flatcamTools/ToolPunchGerber.py:607 flatcamTools/ToolPunchGerber.py:619 +msgid "" +"Could not generate punched hole Gerber because the punch hole size is bigger " +"than some of the apertures in the Gerber object." +msgstr "" +"No se pudo generar el agujero perforado Gerber porque el tamaño del agujero " +"perforado es mayor que algunas de las aberturas en el objeto Gerber." + +#: flatcamTools/ToolPunchGerber.py:656 +msgid "" +"Could not generate punched hole Gerber because the newly created object " +"geometry is the same as the one in the source object geometry..." +msgstr "" +"No se pudo generar el agujero perforado Gerber porque la geometría del " +"objeto recién creada es la misma que la de la geometría del objeto de " +"origen ..." + +#: flatcamTools/ToolQRCode.py:80 +msgid "Gerber Object to which the QRCode will be added." +msgstr "Objeto Gerber al que se agregará el QRCode." + +#: flatcamTools/ToolQRCode.py:93 +msgid "QRCode Parameters" +msgstr "Parámetros QRCode" + +#: flatcamTools/ToolQRCode.py:95 +msgid "The parameters used to shape the QRCode." +msgstr "Los parámetros utilizados para dar forma al QRCode." + +#: flatcamTools/ToolQRCode.py:207 +msgid "Export QRCode" +msgstr "Exportar el código QR" + +#: flatcamTools/ToolQRCode.py:209 +msgid "" +"Show a set of controls allowing to export the QRCode\n" +"to a SVG file or an PNG file." +msgstr "" +"Mostrar un conjunto de controles que permiten exportar el QRCode\n" +"a un archivo SVG o un archivo PNG." + +#: flatcamTools/ToolQRCode.py:248 +msgid "Transparent back color" +msgstr "Color de fondo transparente" + +#: flatcamTools/ToolQRCode.py:273 +msgid "Export QRCode SVG" +msgstr "Exportar el QRCode SVG" + +#: flatcamTools/ToolQRCode.py:275 +msgid "Export a SVG file with the QRCode content." +msgstr "Exporte un archivo SVG con el contenido de QRCode." + +#: flatcamTools/ToolQRCode.py:286 +msgid "Export QRCode PNG" +msgstr "Exportar el QRCode PNG" + +#: flatcamTools/ToolQRCode.py:288 +msgid "Export a PNG image file with the QRCode content." +msgstr "Exporte un archivo de imagen PNG con el contenido de QRCode." + +#: flatcamTools/ToolQRCode.py:299 +msgid "Insert QRCode" +msgstr "Insertar QRCode" + +#: flatcamTools/ToolQRCode.py:301 +msgid "Create the QRCode object." +msgstr "Crea el objeto QRCode." + +#: flatcamTools/ToolQRCode.py:415 flatcamTools/ToolQRCode.py:750 +#: flatcamTools/ToolQRCode.py:799 +msgid "Cancelled. There is no QRCode Data in the text box." +msgstr "Cancelado. No hay datos de QRCode en el cuadro de texto." + +#: flatcamTools/ToolQRCode.py:434 +msgid "Generating QRCode geometry" +msgstr "Generando geometría QRCode" + +#: flatcamTools/ToolQRCode.py:474 +msgid "Click on the Destination point ..." +msgstr "Haga clic en el punto de destino ..." + +#: flatcamTools/ToolQRCode.py:589 +msgid "QRCode Tool done." +msgstr "Herramienta QRCode hecha." + +#: flatcamTools/ToolQRCode.py:782 flatcamTools/ToolQRCode.py:786 +msgid "Export PNG" +msgstr "Exportar PNG" + +#: flatcamTools/ToolRulesCheck.py:33 +msgid "Check Rules" +msgstr "Verificar Reglas" + +#: flatcamTools/ToolRulesCheck.py:61 +msgid "Gerber Files" +msgstr "Archivos Gerber" + +#: flatcamTools/ToolRulesCheck.py:63 +msgid "Gerber objects for which to check rules." +msgstr "Objetos de Gerber para los cuales verificar las reglas." + +#: flatcamTools/ToolRulesCheck.py:78 +msgid "Top" +msgstr "Top" + +#: flatcamTools/ToolRulesCheck.py:80 +msgid "The Top Gerber Copper object for which rules are checked." +msgstr "El objeto de cobre Top Gerber para el que se verifican las reglas." + +#: flatcamTools/ToolRulesCheck.py:96 +msgid "Bottom" +msgstr "Inferior" + +#: flatcamTools/ToolRulesCheck.py:98 +msgid "The Bottom Gerber Copper object for which rules are checked." +msgstr "" +"El objeto de cobre de Gerber inferior para el que se verifican las reglas." + +#: flatcamTools/ToolRulesCheck.py:114 +msgid "SM Top" +msgstr "SM Top" + +#: flatcamTools/ToolRulesCheck.py:116 +msgid "The Top Gerber Solder Mask object for which rules are checked." +msgstr "" +"El objeto Máscara de soldadura de Gerber superior para el que se verifican " +"las reglas." + +#: flatcamTools/ToolRulesCheck.py:132 +msgid "SM Bottom" +msgstr "SM Inferior" + +#: flatcamTools/ToolRulesCheck.py:134 +msgid "The Bottom Gerber Solder Mask object for which rules are checked." +msgstr "" +"El objeto de máscara de soldadura de Gerber inferior para el que se " +"verifican las reglas." + +#: flatcamTools/ToolRulesCheck.py:150 +msgid "Silk Top" +msgstr "Top de serigrafía" + +#: flatcamTools/ToolRulesCheck.py:152 +msgid "The Top Gerber Silkscreen object for which rules are checked." +msgstr "" +"El objeto de serigrafía Top Gerber para el que se verifican las reglas." + +#: flatcamTools/ToolRulesCheck.py:168 +msgid "Silk Bottom" +msgstr "Serigrafía Inferior" + +#: flatcamTools/ToolRulesCheck.py:170 +msgid "The Bottom Gerber Silkscreen object for which rules are checked." +msgstr "" +"El objeto Serigrafía inferior de Gerber para el que se verifican las reglas." + +#: flatcamTools/ToolRulesCheck.py:188 +msgid "The Gerber Outline (Cutout) object for which rules are checked." +msgstr "" +"El objeto Esquema de Gerber (Recorte) para el que se verifican las reglas." + +#: flatcamTools/ToolRulesCheck.py:199 +msgid "Excellon Objects" +msgstr "Objetos Excellon" + +#: flatcamTools/ToolRulesCheck.py:201 +msgid "Excellon objects for which to check rules." +msgstr "Excellon objetos para los cuales verificar las reglas." + +#: flatcamTools/ToolRulesCheck.py:213 +msgid "Excellon 1" +msgstr "Excellon 1" + +#: flatcamTools/ToolRulesCheck.py:215 +msgid "" +"Excellon object for which to check rules.\n" +"Holds the plated holes or a general Excellon file content." +msgstr "" +"Objeto Excellon para el cual verificar las reglas.\n" +"Contiene los agujeros chapados o un contenido general del archivo Excellon." + +#: flatcamTools/ToolRulesCheck.py:232 +msgid "Excellon 2" +msgstr "Excellon 2" + +#: flatcamTools/ToolRulesCheck.py:234 +msgid "" +"Excellon object for which to check rules.\n" +"Holds the non-plated holes." +msgstr "" +"Objeto Excellon para el cual verificar las reglas.\n" +"Sostiene los agujeros no chapados." + +#: flatcamTools/ToolRulesCheck.py:247 +msgid "All Rules" +msgstr "Todas las reglas" + +#: flatcamTools/ToolRulesCheck.py:249 +msgid "This check/uncheck all the rules below." +msgstr "Esto marca / desmarca todas las reglas a continuación." + +#: flatcamTools/ToolRulesCheck.py:499 +msgid "Run Rules Check" +msgstr "Ejecutar Reglas Verificar" + +#: flatcamTools/ToolRulesCheck.py:1158 flatcamTools/ToolRulesCheck.py:1218 +#: flatcamTools/ToolRulesCheck.py:1255 flatcamTools/ToolRulesCheck.py:1327 +#: flatcamTools/ToolRulesCheck.py:1381 flatcamTools/ToolRulesCheck.py:1419 +#: flatcamTools/ToolRulesCheck.py:1484 +msgid "Value is not valid." +msgstr "El valor no es valido." + +#: flatcamTools/ToolRulesCheck.py:1172 +msgid "TOP -> Copper to Copper clearance" +msgstr "ARRIBA -> Separación de Cobre a Cobre" + +#: flatcamTools/ToolRulesCheck.py:1183 +msgid "BOTTOM -> Copper to Copper clearance" +msgstr "ABAJO -> Separación de Cobre a Cobre" + +#: flatcamTools/ToolRulesCheck.py:1188 flatcamTools/ToolRulesCheck.py:1282 +#: flatcamTools/ToolRulesCheck.py:1446 +msgid "" +"At least one Gerber object has to be selected for this rule but none is " +"selected." +msgstr "" +"Se debe seleccionar al menos un objeto Gerber para esta regla, pero no se " +"selecciona ninguno." + +#: flatcamTools/ToolRulesCheck.py:1224 +msgid "" +"One of the copper Gerber objects or the Outline Gerber object is not valid." +msgstr "" +"Uno de los objetos de cobre de Gerber o el objeto de contorno de Gerber no " +"es válido." + +#: flatcamTools/ToolRulesCheck.py:1237 flatcamTools/ToolRulesCheck.py:1401 +msgid "" +"Outline Gerber object presence is mandatory for this rule but it is not " +"selected." +msgstr "" +"La presencia del objeto Contorno Gerber es obligatoria para esta regla, pero " +"no está seleccionada." + +#: flatcamTools/ToolRulesCheck.py:1254 flatcamTools/ToolRulesCheck.py:1281 +msgid "Silk to Silk clearance" +msgstr "Distancia de Serigrafía a Serigrafía" + +#: flatcamTools/ToolRulesCheck.py:1267 +msgid "TOP -> Silk to Silk clearance" +msgstr "ARRIBA -> Distancia de Serigrafía a Serigrafía" + +#: flatcamTools/ToolRulesCheck.py:1277 +msgid "BOTTOM -> Silk to Silk clearance" +msgstr "ABAJO -> Distancia de Serigrafía a Serigrafía" + +#: flatcamTools/ToolRulesCheck.py:1333 +msgid "One or more of the Gerber objects is not valid." +msgstr "Uno o más de los objetos de Gerber no son válidos." + +#: flatcamTools/ToolRulesCheck.py:1341 +msgid "TOP -> Silk to Solder Mask Clearance" +msgstr "ARRIBA -> Distancia entre la Máscara de Soldadura y la Serigrafía" + +#: flatcamTools/ToolRulesCheck.py:1347 +msgid "BOTTOM -> Silk to Solder Mask Clearance" +msgstr "ABAJO -> Distancia entre la Máscara de Soldadura y la Serigrafía" + +#: flatcamTools/ToolRulesCheck.py:1351 +msgid "" +"Both Silk and Solder Mask Gerber objects has to be either both Top or both " +"Bottom." +msgstr "" +"Tanto los objetos de Serigrafía como los de Máscara de soldadura Gerber " +"deben ser tanto Superior como Inferior." + +#: flatcamTools/ToolRulesCheck.py:1387 +msgid "" +"One of the Silk Gerber objects or the Outline Gerber object is not valid." +msgstr "" +"Uno de los objetos de Serigrafía Gerber o el objeto Contorno Gerber no es " +"válido." + +#: flatcamTools/ToolRulesCheck.py:1431 +msgid "TOP -> Minimum Solder Mask Sliver" +msgstr "ARRIBA -> Astilla de máscara de soldadura mínima" + +#: flatcamTools/ToolRulesCheck.py:1441 +msgid "BOTTOM -> Minimum Solder Mask Sliver" +msgstr "ABAJO -> Astilla de máscara de soldadura mínima" + +#: flatcamTools/ToolRulesCheck.py:1490 +msgid "One of the Copper Gerber objects or the Excellon objects is not valid." +msgstr "Uno de los objetos de Cobre Gerber u objetos de Excellon no es válido." + +#: flatcamTools/ToolRulesCheck.py:1506 +msgid "" +"Excellon object presence is mandatory for this rule but none is selected." +msgstr "" +"La presencia de objetos Excellon es obligatoria para esta regla, pero no se " +"selecciona ninguna." + +#: flatcamTools/ToolRulesCheck.py:1579 flatcamTools/ToolRulesCheck.py:1592 +#: flatcamTools/ToolRulesCheck.py:1603 flatcamTools/ToolRulesCheck.py:1616 +msgid "STATUS" +msgstr "ESTADO" + +#: flatcamTools/ToolRulesCheck.py:1582 flatcamTools/ToolRulesCheck.py:1606 +msgid "FAILED" +msgstr "HA FALLADO" + +#: flatcamTools/ToolRulesCheck.py:1595 flatcamTools/ToolRulesCheck.py:1619 +msgid "PASSED" +msgstr "PASADO" + +#: flatcamTools/ToolRulesCheck.py:1596 flatcamTools/ToolRulesCheck.py:1620 +msgid "Violations: There are no violations for the current rule." +msgstr "Infracciones: no hay infracciones para la regla actual." + +#: flatcamTools/ToolShell.py:74 flatcamTools/ToolShell.py:76 +msgid "...processing..." +msgstr "…procesando..." + +#: flatcamTools/ToolSolderPaste.py:37 +msgid "Solder Paste Tool" +msgstr "Herra. de Pasta de Soldadura" + +#: flatcamTools/ToolSolderPaste.py:69 +msgid "Gerber Solder paste object. " +msgstr "Gerber Soldadura pegar objeto. " + +#: flatcamTools/ToolSolderPaste.py:76 +msgid "" +"Tools pool from which the algorithm\n" +"will pick the ones used for dispensing solder paste." +msgstr "" +"Conjunto de herramientas desde el cual el algoritmo\n" +"elegirá los que se usan para dispensar pasta de soldadura." + +#: flatcamTools/ToolSolderPaste.py:91 +msgid "" +"This is the Tool Number.\n" +"The solder dispensing will start with the tool with the biggest \n" +"diameter, continuing until there are no more Nozzle tools.\n" +"If there are no longer tools but there are still pads not covered\n" +" with solder paste, the app will issue a warning message box." +msgstr "" +"Este es el número de herramienta.\n" +"La dispensación de soldadura comenzará con la herramienta con el mayor\n" +"diámetro, continuando hasta que no haya más herramientas de boquilla.\n" +"Si ya no hay herramientas pero todavía hay almohadillas no cubiertas\n" +"  con soldadura en pasta, la aplicación emitirá un cuadro de mensaje de " +"advertencia." + +#: flatcamTools/ToolSolderPaste.py:98 +msgid "" +"Nozzle tool Diameter. It's value (in current FlatCAM units)\n" +"is the width of the solder paste dispensed." +msgstr "" +"Herramienta de boquilla de diámetro. Su valor (en unidades actuales de " +"FlatCAM)\n" +"es el ancho de la pasta de soldadura dispensada." + +#: flatcamTools/ToolSolderPaste.py:105 +msgid "New Nozzle Tool" +msgstr "Nueva herra. de boquilla" + +#: flatcamTools/ToolSolderPaste.py:124 +msgid "" +"Add a new nozzle tool to the Tool Table\n" +"with the diameter specified above." +msgstr "" +"Agregue una nueva herramienta de boquilla a la tabla de herramientas\n" +"con el diámetro especificado anteriormente." + +#: flatcamTools/ToolSolderPaste.py:136 +msgid "Generate solder paste dispensing geometry." +msgstr "Generar geometría de dispensación de pasta de soldadura." + +#: flatcamTools/ToolSolderPaste.py:155 +msgid "STEP 1" +msgstr "PASO 1" + +#: flatcamTools/ToolSolderPaste.py:157 +msgid "" +"First step is to select a number of nozzle tools for usage\n" +"and then optionally modify the GCode parameters below." +msgstr "" +"El primer paso es seleccionar una serie de herramientas de boquillas para su " +"uso\n" +"y luego opcionalmente modificar los parámetros GCode a continuación." + +#: flatcamTools/ToolSolderPaste.py:160 +msgid "" +"Select tools.\n" +"Modify parameters." +msgstr "" +"Seleccionar herramientas.\n" +"Modificar parámetros." + +#: flatcamTools/ToolSolderPaste.py:280 +msgid "" +"Feedrate (speed) while moving up vertically\n" +" to Dispense position (on Z plane)." +msgstr "" +"Avance (velocidad) mientras se mueve verticalmente\n" +"  para dispensar la posición (en el plano Z)." + +#: flatcamTools/ToolSolderPaste.py:350 +msgid "" +"Generate GCode for Solder Paste dispensing\n" +"on PCB pads." +msgstr "" +"Generar GCodelo para dispensar pasta de soldadura\n" +"en almohadillas de PCB." + +#: flatcamTools/ToolSolderPaste.py:371 +msgid "STEP 2" +msgstr "PASO 2" + +#: flatcamTools/ToolSolderPaste.py:373 +msgid "" +"Second step is to create a solder paste dispensing\n" +"geometry out of an Solder Paste Mask Gerber file." +msgstr "" +"El segundo paso es crear una dispensación de pasta de soldadura\n" +"geometría de un archivo Gerber de máscara de pasta de soldadura." + +#: flatcamTools/ToolSolderPaste.py:390 +msgid "Geo Result" +msgstr "Resultado Geo" + +#: flatcamTools/ToolSolderPaste.py:392 +msgid "" +"Geometry Solder Paste object.\n" +"The name of the object has to end in:\n" +"'_solderpaste' as a protection." +msgstr "" +"Objeto de pasta de soldadura de geometría.\n" +"El nombre del objeto tiene que terminar en:\n" +"'_solderpaste' como protección." + +#: flatcamTools/ToolSolderPaste.py:401 +msgid "STEP 3" +msgstr "PASO 3" + +#: flatcamTools/ToolSolderPaste.py:403 +msgid "" +"Third step is to select a solder paste dispensing geometry,\n" +"and then generate a CNCJob object.\n" +"\n" +"REMEMBER: if you want to create a CNCJob with new parameters,\n" +"first you need to generate a geometry with those new params,\n" +"and only after that you can generate an updated CNCJob." +msgstr "" +"El tercer paso es seleccionar una geometría de distribución de pasta de " +"soldadura,\n" +"y luego generar un objeto CNCJob.\n" +"\n" +"RECUERDE: si desea crear un CNCJob con nuevos parámetros,\n" +"primero necesitas generar una geometría con esos nuevos parámetros,\n" +"y solo después de eso puede generar un CNCJob actualizado." + +#: flatcamTools/ToolSolderPaste.py:424 +msgid "CNC Result" +msgstr "Resultado del CNC" + +#: flatcamTools/ToolSolderPaste.py:426 +msgid "" +"CNCJob Solder paste object.\n" +"In order to enable the GCode save section,\n" +"the name of the object has to end in:\n" +"'_solderpaste' as a protection." +msgstr "" +"CNCJob soldar pegar objeto.\n" +"Para habilitar la sección de guardar GCode,\n" +"el nombre del objeto debe terminar en:\n" +"'_solderpaste' como protección." + +#: flatcamTools/ToolSolderPaste.py:436 +msgid "View GCode" +msgstr "Ver GCode" + +#: flatcamTools/ToolSolderPaste.py:438 +msgid "" +"View the generated GCode for Solder Paste dispensing\n" +"on PCB pads." +msgstr "" +"Ver el GCode generado para la dispensación de pasta de soldadura\n" +"en almohadillas de PCB." + +#: flatcamTools/ToolSolderPaste.py:448 +msgid "Save GCode" +msgstr "Guardar GCode" + +#: flatcamTools/ToolSolderPaste.py:450 +msgid "" +"Save the generated GCode for Solder Paste dispensing\n" +"on PCB pads, to a file." +msgstr "" +"Guarde el GCode generado para la dispensación de pasta de soldadura\n" +"en almohadillas de PCB, a un archivo." + +#: flatcamTools/ToolSolderPaste.py:460 +msgid "STEP 4" +msgstr "PASO 4" + +#: flatcamTools/ToolSolderPaste.py:462 +msgid "" +"Fourth step (and last) is to select a CNCJob made from \n" +"a solder paste dispensing geometry, and then view/save it's GCode." +msgstr "" +"Cuarto paso (y último) es seleccionar un CNCJob hecho de\n" +"una geometría de dispensación de pasta de soldadura, y luego ver / guardar " +"su código GC." + +#: flatcamTools/ToolSolderPaste.py:922 +msgid "New Nozzle tool added to Tool Table." +msgstr "Nueva herramienta de boquillas agregada a la tabla de herramientas." + +#: flatcamTools/ToolSolderPaste.py:965 +msgid "Nozzle tool from Tool Table was edited." +msgstr "Nueva herramienta de boquillas agregada a la tabla de herramientas." + +#: flatcamTools/ToolSolderPaste.py:1024 +msgid "Delete failed. Select a Nozzle tool to delete." +msgstr "" +"Eliminar falló. Seleccione una herramienta de inyectores para eliminar." + +#: flatcamTools/ToolSolderPaste.py:1030 +msgid "Nozzle tool(s) deleted from Tool Table." +msgstr "Herramienta de boquilla (s) eliminada de la tabla de herramientas." + +#: flatcamTools/ToolSolderPaste.py:1086 +msgid "No SolderPaste mask Gerber object loaded." +msgstr "No se ha cargado el objeto Gerber de máscara de pasta de soldadura." + +#: flatcamTools/ToolSolderPaste.py:1104 +msgid "Creating Solder Paste dispensing geometry." +msgstr "Creación de geometría de dispensación de pasta de soldadura." + +#: flatcamTools/ToolSolderPaste.py:1117 +msgid "No Nozzle tools in the tool table." +msgstr "No hay herramientas de boquilla en la mesa de herramientas." + +#: flatcamTools/ToolSolderPaste.py:1243 +msgid "Cancelled. Empty file, it has no geometry..." +msgstr "Cancelado. Archivo vacío, no tiene geometría ..." + +#: flatcamTools/ToolSolderPaste.py:1246 +msgid "Solder Paste geometry generated successfully" +msgstr "Geometría de pasta de soldadura generada con éxito" + +#: flatcamTools/ToolSolderPaste.py:1253 +msgid "Some or all pads have no solder due of inadequate nozzle diameters..." +msgstr "" +"Algunas o todas las almohadillas no tienen soldadura debido a los diámetros " +"de boquilla inadecuados ..." + +#: flatcamTools/ToolSolderPaste.py:1267 +msgid "Generating Solder Paste dispensing geometry..." +msgstr "Generando geometría de dispensación de pasta de soldadura ..." + +#: flatcamTools/ToolSolderPaste.py:1287 +msgid "There is no Geometry object available." +msgstr "No hay ningún objeto de Geometría disponible." + +#: flatcamTools/ToolSolderPaste.py:1292 +msgid "This Geometry can't be processed. NOT a solder_paste_tool geometry." +msgstr "" +"Esta Geometría no se puede procesar. NO es una geometría solder_paste_tool." + +#: flatcamTools/ToolSolderPaste.py:1328 +msgid "An internal error has ocurred. See shell.\n" +msgstr "" +"Ha ocurrido un error interno. Ver caparazón.\n" +"\n" + +#: flatcamTools/ToolSolderPaste.py:1393 +msgid "ToolSolderPaste CNCjob created" +msgstr "Herramienta soldar pegar CNCjob creado" + +#: flatcamTools/ToolSolderPaste.py:1412 +msgid "SP GCode Editor" +msgstr "SP GCode editor" + +#: flatcamTools/ToolSolderPaste.py:1424 flatcamTools/ToolSolderPaste.py:1429 +#: flatcamTools/ToolSolderPaste.py:1484 +msgid "" +"This CNCJob object can't be processed. NOT a solder_paste_tool CNCJob object." +msgstr "" +"Este objeto CNCJob no se puede procesar. NO es un objeto CNCJob de " +"herramienta de pasta de soldadura." + +#: flatcamTools/ToolSolderPaste.py:1454 +msgid "No Gcode in the object" +msgstr "No Gcode en el objeto" + +#: flatcamTools/ToolSolderPaste.py:1494 +msgid "Export GCode ..." +msgstr "Exportar GCode ..." + +#: flatcamTools/ToolSolderPaste.py:1542 +msgid "Solder paste dispenser GCode file saved to" +msgstr "Dispensador de pasta de soldadura Archivo GCode guardado en: %s" + +#: flatcamTools/ToolSub.py:65 +msgid "Gerber Objects" +msgstr "Objetos Gerber" + +#: flatcamTools/ToolSub.py:78 +msgid "" +"Gerber object from which to subtract\n" +"the subtractor Gerber object." +msgstr "" +"Objeto de Gerber para restar\n" +"El sustractor del objeto Gerber." + +#: flatcamTools/ToolSub.py:91 flatcamTools/ToolSub.py:146 +msgid "Subtractor" +msgstr "Sustractor" + +#: flatcamTools/ToolSub.py:93 +msgid "" +"Gerber object that will be subtracted\n" +"from the target Gerber object." +msgstr "" +"Objeto de Gerber que se restará\n" +"del objeto objetivo de Gerber." + +#: flatcamTools/ToolSub.py:100 +msgid "Subtract Gerber" +msgstr "Restar Gerber" + +#: flatcamTools/ToolSub.py:102 +msgid "" +"Will remove the area occupied by the subtractor\n" +"Gerber from the Target Gerber.\n" +"Can be used to remove the overlapping silkscreen\n" +"over the soldermask." +msgstr "" +"Eliminará el área ocupada por el sustractor\n" +"Gerber del objetivo Gerber.\n" +"Se puede utilizar para eliminar la serigrafía superpuesta\n" +"sobre la máscara de soldadura." + +#: flatcamTools/ToolSub.py:120 +msgid "Geometry Objects" +msgstr "Objetos de Geometría" + +#: flatcamTools/ToolSub.py:133 +msgid "" +"Geometry object from which to subtract\n" +"the subtractor Geometry object." +msgstr "" +"Objeto de Geometría del cual restar\n" +"El objeto de Geometría de sustractor." + +#: flatcamTools/ToolSub.py:148 +msgid "" +"Geometry object that will be subtracted\n" +"from the target Geometry object." +msgstr "" +"Objeto de Geometría que se restará\n" +"del objeto de Geometría de destino." + +#: flatcamTools/ToolSub.py:156 +msgid "" +"Checking this will close the paths cut by the Geometry subtractor object." +msgstr "" +"Marcar esto cerrará los caminos cortados por el objeto sustrato Geometry." + +#: flatcamTools/ToolSub.py:159 +msgid "Subtract Geometry" +msgstr "Restar Geometría" + +#: flatcamTools/ToolSub.py:161 +msgid "" +"Will remove the area occupied by the subtractor\n" +"Geometry from the Target Geometry." +msgstr "" +"Eliminará el área ocupada por el sustractor\n" +"Geometría de la Geometría Objetivo." + +#: flatcamTools/ToolSub.py:263 +msgid "Sub Tool" +msgstr "Herra. de resta" + +#: flatcamTools/ToolSub.py:284 flatcamTools/ToolSub.py:489 +msgid "No Target object loaded." +msgstr "No se ha cargado ningún objeto de destino." + +#: flatcamTools/ToolSub.py:287 +msgid "Loading geometry from Gerber objects." +msgstr "Cargando geometría de objetos Gerber." + +#: flatcamTools/ToolSub.py:299 flatcamTools/ToolSub.py:504 +msgid "No Subtractor object loaded." +msgstr "No se ha cargado ningún objeto Subtractor." + +#: flatcamTools/ToolSub.py:331 +msgid "Processing geometry from Subtractor Gerber object." +msgstr "Procesamiento de geometría del objeto sustractor Gerber." + +#: flatcamTools/ToolSub.py:352 +msgid "Parsing geometry for aperture" +msgstr "Análisis de geometría para apertura" + +#: flatcamTools/ToolSub.py:413 +msgid "Finished parsing geometry for aperture" +msgstr "Geometría de análisis terminada para apertura" + +#: flatcamTools/ToolSub.py:458 flatcamTools/ToolSub.py:661 +msgid "Generating new object ..." +msgstr "Generando nuevo objeto ..." + +#: flatcamTools/ToolSub.py:462 flatcamTools/ToolSub.py:665 +#: flatcamTools/ToolSub.py:746 +msgid "Generating new object failed." +msgstr "Generando nuevo objeto falló." + +#: flatcamTools/ToolSub.py:467 flatcamTools/ToolSub.py:671 +msgid "Created" +msgstr "Creado" + +#: flatcamTools/ToolSub.py:518 +msgid "Currently, the Subtractor geometry cannot be of type Multigeo." +msgstr "" +"Actualmente, la geometría del sustractor no puede ser del tipo Multigeo." + +#: flatcamTools/ToolSub.py:563 +msgid "Parsing solid_geometry ..." +msgstr "Analizando solid_geometry ..." + +#: flatcamTools/ToolSub.py:565 +msgid "Parsing solid_geometry for tool" +msgstr "Análisis de geometría para herramienta" + +#: flatcamTools/ToolTransform.py:23 +msgid "Object Transform" +msgstr "Transform. de objetos" + +#: flatcamTools/ToolTransform.py:78 +msgid "" +"Rotate the selected object(s).\n" +"The point of reference is the middle of\n" +"the bounding box for all selected objects." +msgstr "" +"Rotar los objetos seleccionados.\n" +"El punto de referencia es el medio de\n" +"el cuadro delimitador para todos los objetos seleccionados." + +#: flatcamTools/ToolTransform.py:99 flatcamTools/ToolTransform.py:120 +msgid "" +"Angle for Skew action, in degrees.\n" +"Float number between -360 and 360." +msgstr "" +"Ángulo para sesgo de acción, en grados.\n" +"Número de flotación entre -360 y 360." + +#: flatcamTools/ToolTransform.py:109 flatcamTools/ToolTransform.py:130 +msgid "" +"Skew/shear the selected object(s).\n" +"The point of reference is the middle of\n" +"the bounding box for all selected objects." +msgstr "" +"Incline / corte los objetos seleccionados.\n" +"El punto de referencia es el medio de\n" +"el cuadro delimitador para todos los objetos seleccionados." + +#: flatcamTools/ToolTransform.py:159 flatcamTools/ToolTransform.py:179 +msgid "" +"Scale the selected object(s).\n" +"The point of reference depends on \n" +"the Scale reference checkbox state." +msgstr "" +"Escala los objetos seleccionados.\n" +"El punto de referencia depende de\n" +"el estado de la casilla de verificación Escalar referencia." + +#: flatcamTools/ToolTransform.py:228 flatcamTools/ToolTransform.py:248 +msgid "" +"Offset the selected object(s).\n" +"The point of reference is the middle of\n" +"the bounding box for all selected objects.\n" +msgstr "" +"Desplazar los objetos seleccionados.\n" +"El punto de referencia es el medio de\n" +"el cuadro delimitador para todos los objetos seleccionados.\n" + +#: flatcamTools/ToolTransform.py:268 flatcamTools/ToolTransform.py:273 +msgid "Flip the selected object(s) over the X axis." +msgstr "Voltee los objetos seleccionados sobre el eje X." + +#: flatcamTools/ToolTransform.py:297 +msgid "Ref. Point" +msgstr "Punto de Ref" + +#: flatcamTools/ToolTransform.py:348 +msgid "" +"Create the buffer effect on each geometry,\n" +"element from the selected object, using the distance." +msgstr "" +"Crea el efecto de amortiguación en cada geometría,\n" +"elemento del objeto seleccionado, utilizando la distancia." + +#: flatcamTools/ToolTransform.py:374 +msgid "" +"Create the buffer effect on each geometry,\n" +"element from the selected object, using the factor." +msgstr "" +"Crea el efecto de amortiguación en cada geometría,\n" +"elemento del objeto seleccionado, utilizando el factor." + +#: flatcamTools/ToolTransform.py:479 +msgid "Buffer D" +msgstr "Buffer D" + +#: flatcamTools/ToolTransform.py:480 +msgid "Buffer F" +msgstr "Buffer F" + +#: flatcamTools/ToolTransform.py:557 +msgid "Rotate transformation can not be done for a value of 0." +msgstr "La transformación de rotación no se puede hacer para un valor de 0." + +#: flatcamTools/ToolTransform.py:596 flatcamTools/ToolTransform.py:619 +msgid "Scale transformation can not be done for a factor of 0 or 1." +msgstr "La transformación de escala no se puede hacer para un factor de 0 o 1." + +#: flatcamTools/ToolTransform.py:634 flatcamTools/ToolTransform.py:644 +msgid "Offset transformation can not be done for a value of 0." +msgstr "" +"La transformación de compensación no se puede hacer para un valor de 0." + +#: flatcamTools/ToolTransform.py:676 +msgid "No object selected. Please Select an object to rotate!" +msgstr "" +"Ningún objeto seleccionado. Por favor, seleccione un objeto para rotar!" + +#: flatcamTools/ToolTransform.py:702 +msgid "CNCJob objects can't be rotated." +msgstr "Los objetos de CNCJob no se pueden girar." + +#: flatcamTools/ToolTransform.py:710 +msgid "Rotate done" +msgstr "Rotar hecho" + +#: flatcamTools/ToolTransform.py:713 flatcamTools/ToolTransform.py:783 +#: flatcamTools/ToolTransform.py:833 flatcamTools/ToolTransform.py:887 +#: flatcamTools/ToolTransform.py:917 flatcamTools/ToolTransform.py:953 +msgid "Due of" +msgstr "Debido a" + +#: flatcamTools/ToolTransform.py:713 flatcamTools/ToolTransform.py:783 +#: flatcamTools/ToolTransform.py:833 flatcamTools/ToolTransform.py:887 +#: flatcamTools/ToolTransform.py:917 flatcamTools/ToolTransform.py:953 +msgid "action was not executed." +msgstr "la acción no se ejecutó." + +#: flatcamTools/ToolTransform.py:725 +msgid "No object selected. Please Select an object to flip" +msgstr "Ningún objeto seleccionado. Seleccione un objeto para voltear" + +#: flatcamTools/ToolTransform.py:758 +msgid "CNCJob objects can't be mirrored/flipped." +msgstr "Los objetos de CNCJob no se pueden reflejar / voltear." + +#: flatcamTools/ToolTransform.py:793 +msgid "Skew transformation can not be done for 0, 90 and 180 degrees." +msgstr "La transformación oblicua no se puede hacer para 0, 90 y 180 grados." + +#: flatcamTools/ToolTransform.py:798 +msgid "No object selected. Please Select an object to shear/skew!" +msgstr "" +"Ningún objeto seleccionado. ¡Seleccione un objeto para cortar / sesgar!" + +#: flatcamTools/ToolTransform.py:818 +msgid "CNCJob objects can't be skewed." +msgstr "Los objetos de CNCJob no se pueden sesgar." + +#: flatcamTools/ToolTransform.py:830 +msgid "Skew on the" +msgstr "Sesgar en el" + +#: flatcamTools/ToolTransform.py:830 flatcamTools/ToolTransform.py:884 +#: flatcamTools/ToolTransform.py:914 +msgid "axis done" +msgstr "eje hecho" + +#: flatcamTools/ToolTransform.py:844 +msgid "No object selected. Please Select an object to scale!" +msgstr "" +"Ningún objeto seleccionado. Por favor, seleccione un objeto para escalar!" + +#: flatcamTools/ToolTransform.py:875 +msgid "CNCJob objects can't be scaled." +msgstr "Los objetos de CNCJob no se pueden escalar." + +#: flatcamTools/ToolTransform.py:884 +msgid "Scale on the" +msgstr "Escala en el" + +#: flatcamTools/ToolTransform.py:894 +msgid "No object selected. Please Select an object to offset!" +msgstr "" +"Ningún objeto seleccionado. Por favor, seleccione un objeto para compensar!" + +#: flatcamTools/ToolTransform.py:901 +msgid "CNCJob objects can't be offset." +msgstr "Los objetos CNCJob no se pueden compensar." + +#: flatcamTools/ToolTransform.py:914 +msgid "Offset on the" +msgstr "Offset en el" + +#: flatcamTools/ToolTransform.py:924 +msgid "No object selected. Please Select an object to buffer!" +msgstr "" +"Ningún objeto seleccionado. Por favor, seleccione un objeto para almacenar!" + +#: flatcamTools/ToolTransform.py:927 +msgid "Applying Buffer" +msgstr "Aplicando Tampón" + +#: flatcamTools/ToolTransform.py:931 +msgid "CNCJob objects can't be buffered." +msgstr "Los objetos CNCJob no se pueden almacenar en búfer." + +#: flatcamTools/ToolTransform.py:948 +msgid "Buffer done" +msgstr "Tampón hecho" + #: tclCommands/TclCommandBbox.py:75 tclCommands/TclCommandNregions.py:74 msgid "Expected GerberObject or GeometryObject, got" msgstr "GerberObject o GeometryObject esperado, obtuve" @@ -18708,7 +18573,7 @@ msgstr "Se esperaba una lista de nombres de objetos separados por comas. Tiene" msgid "TclCommand Bounds done." msgstr "TclCommand Bounds hecho." -#: tclCommands/TclCommandCopperClear.py:281 tclCommands/TclCommandPaint.py:283 +#: tclCommands/TclCommandCopperClear.py:281 tclCommands/TclCommandPaint.py:277 #: tclCommands/TclCommandScale.py:81 msgid "Could not retrieve box object" msgstr "No se pudo recuperar el objeto" @@ -18731,11 +18596,11 @@ msgstr "" "'2tb', 4 u 8." #: tclCommands/TclCommandGeoCutout.py:301 -#: tclCommands/TclCommandGeoCutout.py:356 +#: tclCommands/TclCommandGeoCutout.py:359 msgid "Any-form Cutout operation finished." msgstr "Operación de recorte de cualquier forma finalizada." -#: tclCommands/TclCommandGeoCutout.py:362 +#: tclCommands/TclCommandGeoCutout.py:365 msgid "Cancelled. Object type is not supported." msgstr "Cancelado. El tipo de objeto no es compatible." @@ -18751,15 +18616,15 @@ msgstr "Escriba help para su uso." msgid "Example: help open_gerber" msgstr "Ejemplo: help open_gerber" -#: tclCommands/TclCommandPaint.py:250 tclCommands/TclCommandPaint.py:256 -msgid "Expected a tuple value like -single 3.2,0.1." -msgstr "Se esperaba un valor de tupla como -single 3.2,0.1." +#: tclCommands/TclCommandPaint.py:249 +msgid "Expected -x and -y ." +msgstr "Esperado -x y -y ." -#: tclCommands/TclCommandPaint.py:276 +#: tclCommands/TclCommandPaint.py:270 msgid "Expected -box ." msgstr "Se esperaba -box ." -#: tclCommands/TclCommandPaint.py:297 +#: tclCommands/TclCommandPaint.py:291 msgid "" "None of the following args: 'box', 'single', 'all' were used.\n" "Paint failed." @@ -18784,7 +18649,7 @@ msgstr "Expected -x -y ." msgid "Expected a pair of (x, y) coordinates. Got" msgstr "Se esperaba un par de coordenadas (x, y). Tiene" -#: tclCommands/TclCommandSetOrigin.py:101 +#: tclCommands/TclCommandSetOrigin.py:102 msgid "Origin set by offsetting all loaded objects with " msgstr "Origen establecido al compensar todos los objetos cargados con " @@ -18793,205 +18658,6 @@ msgid "No Geometry name in args. Provide a name and try again." msgstr "" "Sin nombre de geometría en args. Proporcione un nombre e intente nuevamente." -#~ msgid "Add Tool from Tools DB" -#~ msgstr "Agregar herramienta desde DB de herramientas" - -#~ msgid "FlatCAM Object" -#~ msgstr "Objeto FlatCAM" - -#~ msgid "" -#~ "Choose which tool to use for Gerber isolation:\n" -#~ "'Circular' or 'V-shape'.\n" -#~ "When the 'V-shape' is selected then the tool\n" -#~ "diameter will depend on the chosen cut depth." -#~ msgstr "" -#~ "Elija qué herramienta usar para el aislamiento de Gerber:\n" -#~ "'Circular' o 'en forma de V'.\n" -#~ "Cuando se selecciona la 'forma de V', entonces la herramienta\n" -#~ "El diámetro dependerá de la profundidad de corte elegida." - -#~ msgid "V-Shape" -#~ msgstr "Forma V" - -#~ msgid "" -#~ "Diameter of the cutting tool.\n" -#~ "If you want to have an isolation path\n" -#~ "inside the actual shape of the Gerber\n" -#~ "feature, use a negative value for\n" -#~ "this parameter." -#~ msgstr "" -#~ "Diámetro de la herramienta de corte.\n" -#~ "Si quieres tener una ruta de aislamiento\n" -#~ "dentro de la forma real del Gerber\n" -#~ "característica, use un valor negativo para\n" -#~ "este parámetro." - -#~ msgid "Pass overlap" -#~ msgstr "Superposición de pases" - -#~ msgid "Scope" -#~ msgstr "Alcance" - -#~ msgid "Clear N-copper" -#~ msgstr "N-cobre claro" - -#~ msgid "Board cutout" -#~ msgstr "Corte del tablero" - -#~ msgid "" -#~ "Add a new tool to the Tool Table\n" -#~ "with the specified diameter." -#~ msgstr "" -#~ "Agregar una nueva herramienta a la tabla de herramientas\n" -#~ "con el diámetro especificado." - -#~ msgid "Excellon Object Color" -#~ msgstr "Color del objeto Excellon" - -#~ msgid "Geometry Object Color" -#~ msgstr "Color del objeto de Geometría" - -#~ msgid "Exterior" -#~ msgstr "Exterior" - -#~ msgid "Interior" -#~ msgstr "Interior" - -#~ msgid "Gerber Object Color" -#~ msgstr "Color de objeto Gerber" - -#~ msgid "Combine Passes" -#~ msgstr "Combinar pases" - -#~ msgid "Rest Machining" -#~ msgstr "Mecanizado de descanso" - -#~ msgid "NCC Plotting" -#~ msgstr "Trazado NCC" - -#~ msgid "All Polygons" -#~ msgstr "Todos los polígonos" - -#~ msgid "Paint Plotting" -#~ msgstr "Trazado de pintura" - -#~ msgid "" -#~ "- 'Normal' - normal plotting, done at the end of the Paint job\n" -#~ "- 'Progressive' - after each shape is generated it will be plotted." -#~ msgstr "" -#~ "- 'Normal': trazado normal, realizado al final del trabajo de Pintura\n" -#~ "- 'Progresivo': después de generar cada forma, se trazará." - -#~ msgid "Export Machine Code ..." -#~ msgstr "Exportar código de máquina ..." - -#~ msgid "Export Machine Code cancelled ..." -#~ msgstr "Exportar código de máquina cancelado ..." - -#~ msgid "Machine Code file saved to" -#~ msgstr "Archivo de código de máquina guardado en" - -#~ msgid "GCode Parameters" -#~ msgstr "Parámetros GCode" - -#, fuzzy -#~| msgid "Selection" -#~ msgid "PreSelection" -#~ msgstr "Selección" - -#~ msgid "Copper Gerber" -#~ msgstr "Cobre Gerber" - -#~ msgid "QRCode Parameters" -#~ msgstr "Parámetros QRCode" - -#~ msgid "Gerber Files" -#~ msgstr "Archivos Gerber" - -#~ msgid "Excellon Objects" -#~ msgstr "Objetos Excellon" - -#~ msgid "Gerber Solder paste object. " -#~ msgstr "Gerber Soldadura pegar objeto. " - -#~ msgid "Gerber Objects" -#~ msgstr "Objetos Gerber" - -#~ msgid "Geometry Objects" -#~ msgstr "Objetos de Geometría" - -#~ msgid "Processing geometry from Subtractor Gerber object." -#~ msgstr "Procesamiento de geometría del objeto sustractor Gerber." - -#~ msgid "Parsing geometry for aperture" -#~ msgstr "Análisis de geometría para apertura" - -#~ msgid "Export FlatCAM Bookmarks" -#~ msgstr "Exportar marcadores de FlatCAM" - -#~ msgid "Import FlatCAM Bookmarks" -#~ msgstr "Importar marcadores de FlatCAM" - -#~ msgid "Unifying Geometry from parsed Geometry segments" -#~ msgstr "Geometría unificadora de segmentos de geometría analizados" - -#~ msgid "./assets/icon.png" -#~ msgstr "./assets/icon.png" - -#~ msgid "New Blank Geometry" -#~ msgstr "Nueva geometría en blanco" - -#~ msgid "New Blank Gerber" -#~ msgstr "Nuevo Gerber en blanco" - -#~ msgid "New Blank Excellon" -#~ msgstr "Nueva Excellon en blanco" - -#~ msgid "" -#~ "Relative measurement.\n" -#~ "Reference is last click position" -#~ msgstr "" -#~ "Medida relativa.\n" -#~ "La referencia es la posición del último clic" - -#~ msgid "Clear areas" -#~ msgstr "Áreas despejadasDespeje" - -#~ msgid "Apply Theme" -#~ msgstr "Aplicar tema" - -#~ msgid "" -#~ "Select a theme for FlatCAM.\n" -#~ "It will theme the plot area.\n" -#~ "The application will restart after change." -#~ msgstr "" -#~ "Seleccione un tema para FlatCAM.\n" -#~ "Tematizará el área de trazado.\n" -#~ "La aplicación se reiniciará después del cambio." - -#~ msgid "Film Object" -#~ msgstr "Objeto de la película" - -#~ msgid "Object for which to create the film." -#~ msgstr "Objeto para el cual crear la película." - -#~ msgid "Box Object" -#~ msgstr "Objeto de caja" - -#~ msgid "" -#~ "The actual object that is used as container for the\n" -#~ " selected object for which we create the film.\n" -#~ "Usually it is the PCB outline but it can be also the\n" -#~ "same object for which the film is created." -#~ msgstr "" -#~ "El objeto real que se utiliza como contenedor para\n" -#~ "  objeto seleccionado para el que creamos la película.\n" -#~ "Por lo general, es el esquema de PCB pero también puede ser el\n" -#~ "mismo objeto para el que se crea la película." - -#~ msgid "Expected -x and -y ." -#~ msgstr "Esperado -x y -y ." - #~ msgid "Could not load factory defaults file." #~ msgstr "No se pudo cargar el archivo de valores predeterminados de fábrica." @@ -19087,6 +18753,9 @@ msgstr "" #~ msgid " Export SVG cancelled." #~ msgstr " Exportar SVG cancelado." +#~ msgid "Export PNG cancelled." +#~ msgstr "Exportación PNG cancelada." + #~ msgid "No object selected. Please select an Gerber object to export." #~ msgstr "" #~ "Ningún objeto seleccionado. Por favor, seleccione un objeto Gerber para " @@ -19153,6 +18822,9 @@ msgstr "" #~ msgid "Save Object PDF cancelled." #~ msgstr "Guardar objeto PDF cancelado." +#~ msgid "Shows list of commands." +#~ msgstr "Muestra la lista de comandos." + #~ msgid "FlatCAM bookmarks export cancelled." #~ msgstr "Exportación de marcadores de FlatCAM cancelada." @@ -19721,6 +19393,9 @@ msgstr "" #~ msgid "Geo Obj" #~ msgstr "Geo Obj" +#~ msgid "Manual Geo" +#~ msgstr "Geo manual" + #~ msgid "" #~ "Use the left mouse button (LMB) click\n" #~ "to create a bridge gap to separate the PCB from\n" @@ -19793,6 +19468,9 @@ msgstr "" #~ "#\n" #~ "\n" +#~ msgid "Program Author" +#~ msgstr "Autor del programa" + #~ msgid "Export G-Code ..." #~ msgstr "Exportar G-Code ..." diff --git a/locale/fr/LC_MESSAGES/strings.mo b/locale/fr/LC_MESSAGES/strings.mo index fe166455f66d0f80b021ebec2d34d345f75d845b..df510fa6b0b6a4c8b5f3d0654eaadacd17b3f07a 100644 GIT binary patch delta 83410 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 delta 88821 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 K1, YEAR. -# Conversion micmac@MicMac.fr Ligne 2000 # msgid "" msgstr "" "Project-Id-Version: \n" -"POT-Creation-Date: 2020-06-02 17:36+0300\n" -"PO-Revision-Date: 2020-06-02 17:36+0300\n" +"POT-Creation-Date: 2020-05-03 16:04+0300\n" +"PO-Revision-Date: 2020-05-03 16:06+0300\n" "Last-Translator: \n" "Language-Team: \n" "Language: fr\n" @@ -15,7 +14,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: pygettext.py 1.5\n" -"X-Generator: Poedit 2.3.1\n" +"X-Generator: Poedit 2.2.4\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" "X-Poedit-Basepath: ../../..\n" "X-Poedit-SearchPath-0: .\n" @@ -23,11 +22,1724 @@ msgstr "" "X-Poedit-SearchPathExcluded-1: doc\n" "X-Poedit-SearchPathExcluded-2: tests\n" -#: AppDatabase.py:88 +#: FlatCAMApp.py:491 +msgid "FlatCAM is initializing ..." +msgstr "FlatCAM est en cours d'initialisation ..." + +#: FlatCAMApp.py:639 +msgid "Could not find the Language files. The App strings are missing." +msgstr "" +"Impossible de trouver les fichiers de langue. Les chaînes de l'application " +"sont manquantes." + +#: FlatCAMApp.py:709 +msgid "" +"FlatCAM is initializing ...\n" +"Canvas initialization started." +msgstr "" +"FlatCAM est en cours d'initialisation ...\n" +"L'initialisation de la toile a commencé." + +#: FlatCAMApp.py:729 +msgid "" +"FlatCAM is initializing ...\n" +"Canvas initialization started.\n" +"Canvas initialization finished in" +msgstr "" +"FlatCAM est en cours d'initialisation ...\n" +"L'initialisation de la toile a commencé.\n" +"Initialisation de la toile terminée en" + +#: FlatCAMApp.py:1593 FlatCAMApp.py:7451 +msgid "New Project - Not saved" +msgstr "Nouveau projet - Non enregistré" + +#: FlatCAMApp.py:1689 +msgid "" +"Found old default preferences files. Please reboot the application to update." +msgstr "" +"Anciens fichiers de préférences par défaut trouvés. Veuillez redémarrer " +"l'application pour la mettre à jour." + +#: FlatCAMApp.py:1740 FlatCAMApp.py:2512 FlatCAMApp.py:2547 FlatCAMApp.py:2594 +#: FlatCAMApp.py:4540 FlatCAMApp.py:7535 FlatCAMApp.py:7572 FlatCAMApp.py:7614 +#: FlatCAMApp.py:7643 FlatCAMApp.py:7684 FlatCAMApp.py:7709 FlatCAMApp.py:7761 +#: FlatCAMApp.py:7796 FlatCAMApp.py:7841 FlatCAMApp.py:7882 FlatCAMApp.py:7923 +#: FlatCAMApp.py:7964 FlatCAMApp.py:8005 FlatCAMApp.py:8049 FlatCAMApp.py:8105 +#: FlatCAMApp.py:8137 FlatCAMApp.py:8169 FlatCAMApp.py:8402 FlatCAMApp.py:8440 +#: FlatCAMApp.py:8483 FlatCAMApp.py:8560 FlatCAMApp.py:8615 +#: FlatCAMBookmark.py:300 FlatCAMBookmark.py:342 FlatCAMDB.py:663 +#: FlatCAMDB.py:709 FlatCAMDB.py:2125 FlatCAMDB.py:2171 +#: flatcamEditors/FlatCAMExcEditor.py:1023 +#: flatcamEditors/FlatCAMExcEditor.py:1091 +#: flatcamEditors/FlatCAMTextEditor.py:223 flatcamGUI/FlatCAMGUI.py:3443 +#: flatcamGUI/FlatCAMGUI.py:3659 flatcamGUI/FlatCAMGUI.py:3874 +#: flatcamObjects/ObjectCollection.py:126 flatcamTools/ToolFilm.py:754 +#: flatcamTools/ToolFilm.py:900 flatcamTools/ToolImage.py:247 +#: flatcamTools/ToolMove.py:269 flatcamTools/ToolPcbWizard.py:301 +#: flatcamTools/ToolPcbWizard.py:324 flatcamTools/ToolQRCode.py:791 +#: flatcamTools/ToolQRCode.py:838 +msgid "Cancelled." +msgstr "Annulé." + +#: FlatCAMApp.py:1756 +msgid "Open Config file failed." +msgstr "Le fichier de configuration ouvert a échoué." + +#: FlatCAMApp.py:1771 +msgid "Open Script file failed." +msgstr "Le fichier de script ouvert a échoué." + +#: FlatCAMApp.py:1797 +msgid "Open Excellon file failed." +msgstr "Le fichier de Excellon ouvert a échoué." + +#: FlatCAMApp.py:1810 +msgid "Open GCode file failed." +msgstr "Le fichier de G-code ouvert a échoué." + +#: FlatCAMApp.py:1823 +msgid "Open Gerber file failed." +msgstr "Le fichier de Gerber ouvert a échoué." + +#: FlatCAMApp.py:2131 +msgid "Select a Geometry, Gerber or Excellon Object to edit." +msgstr "Sélectionnez un objet Geometry, Gerber ou Excellon à modifier." + +#: FlatCAMApp.py:2146 +msgid "" +"Simultaneous editing of tools geometry in a MultiGeo Geometry is not " +"possible.\n" +"Edit only one geometry at a time." +msgstr "" +"L'édition simultanée de la géométrie des outils dans une géométrie multi-géo " +"n'est pas possible.\n" +"Modifiez une seule géométrie à la fois." + +#: FlatCAMApp.py:2204 +msgid "Editor is activated ..." +msgstr "L'éditeur est activé ..." + +#: FlatCAMApp.py:2225 +msgid "Do you want to save the edited object?" +msgstr "Voulez-vous enregistrer l'objet édité?" + +#: FlatCAMApp.py:2226 flatcamGUI/FlatCAMGUI.py:2288 +msgid "Close Editor" +msgstr "Fermer l'éditeur" + +#: FlatCAMApp.py:2229 FlatCAMApp.py:3518 FlatCAMApp.py:6085 FlatCAMApp.py:7345 +#: FlatCAMTranslation.py:109 FlatCAMTranslation.py:207 +#: flatcamGUI/FlatCAMGUI.py:2519 +#: flatcamGUI/preferences/PreferencesUIManager.py:1122 +msgid "Yes" +msgstr "Oui" + +#: FlatCAMApp.py:2230 FlatCAMApp.py:3519 FlatCAMApp.py:6086 FlatCAMApp.py:7346 +#: FlatCAMTranslation.py:110 FlatCAMTranslation.py:208 +#: flatcamGUI/FlatCAMGUI.py:2520 +#: flatcamGUI/preferences/PreferencesUIManager.py:1123 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:164 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:150 +#: flatcamTools/ToolNCC.py:182 flatcamTools/ToolPaint.py:166 +msgid "No" +msgstr "Non" + +#: FlatCAMApp.py:2231 FlatCAMApp.py:3520 FlatCAMApp.py:4478 FlatCAMApp.py:5103 +#: FlatCAMApp.py:7347 FlatCAMDB.py:128 FlatCAMDB.py:1689 +#: flatcamGUI/FlatCAMGUI.py:1347 +msgid "Cancel" +msgstr "Annuler" + +#: FlatCAMApp.py:2263 +msgid "Object empty after edit." +msgstr "Objet vide après édition." + +#: FlatCAMApp.py:2267 FlatCAMApp.py:2288 FlatCAMApp.py:2310 +msgid "Editor exited. Editor content saved." +msgstr "L'éditeur est sorti. Contenu de l'éditeur enregistré." + +#: FlatCAMApp.py:2314 FlatCAMApp.py:2337 FlatCAMApp.py:2355 +msgid "Select a Gerber, Geometry or Excellon Object to update." +msgstr "Sélectionnez un objet Gerber, Geometry ou Excellon à mettre à jour." + +#: FlatCAMApp.py:2317 +msgid "is updated, returning to App..." +msgstr "est mis à jour, revenant à l'App ..." + +#: FlatCAMApp.py:2324 +msgid "Editor exited. Editor content was not saved." +msgstr "L'éditeur est sorti. Le contenu de l'éditeur n'a pas été enregistré." + +#: FlatCAMApp.py:2504 FlatCAMApp.py:2508 +msgid "Import FlatCAM Preferences" +msgstr "Importer les préférences FlatCAM" + +#: FlatCAMApp.py:2519 +msgid "Imported Defaults from" +msgstr "Valeurs par défaut importées de" + +#: FlatCAMApp.py:2539 FlatCAMApp.py:2544 +msgid "Export FlatCAM Preferences" +msgstr "Exporter les préférences FlatCAM" + +#: FlatCAMApp.py:2558 FlatCAMApp.py:2626 +#: flatcamGUI/preferences/PreferencesUIManager.py:1018 +msgid "Failed to write defaults to file." +msgstr "Échec d'écriture par défaut dans le fichier." + +#: FlatCAMApp.py:2564 +msgid "Exported preferences to" +msgstr "Préférences exportées vers" + +#: FlatCAMApp.py:2584 FlatCAMApp.py:2589 +msgid "Save to file" +msgstr "Enregistrer dans un fichier" + +#: FlatCAMApp.py:2602 FlatCAMApp.py:8859 FlatCAMApp.py:8907 FlatCAMApp.py:9032 +#: FlatCAMApp.py:9168 FlatCAMBookmark.py:308 FlatCAMDB.py:671 FlatCAMDB.py:2133 +#: flatcamEditors/FlatCAMTextEditor.py:276 flatcamObjects/FlatCAMCNCJob.py:959 +#: flatcamTools/ToolFilm.py:1031 flatcamTools/ToolFilm.py:1212 +#: flatcamTools/ToolSolderPaste.py:1534 +msgid "" +"Permission denied, saving not possible.\n" +"Most likely another app is holding the file open and not accessible." +msgstr "" +"Autorisation refusée, économie impossible.\n" +"Très probablement, une autre application tient le fichier ouvert et n'est " +"pas accessible." + +#: FlatCAMApp.py:2613 +msgid "Could not load the file." +msgstr "Impossible de charger le fichier." + +#: FlatCAMApp.py:2629 +msgid "Exported file to" +msgstr "Fichier exporté vers" + +#: FlatCAMApp.py:2712 +msgid "Failed to open recent files file for writing." +msgstr "Échec d'ouverture du fichier récent en écriture." + +#: FlatCAMApp.py:2723 +msgid "Failed to open recent projects file for writing." +msgstr "Échec d'ouverture du fichier de projets récents en écriture." + +#: FlatCAMApp.py:2806 FlatCAMApp.py:9377 FlatCAMApp.py:9441 FlatCAMApp.py:9572 +#: FlatCAMApp.py:9637 FlatCAMApp.py:10287 +#: flatcamEditors/FlatCAMGrbEditor.py:4364 +#: flatcamObjects/FlatCAMGeometry.py:1725 flatcamParsers/ParseExcellon.py:897 +#: flatcamTools/ToolPcbWizard.py:432 +msgid "An internal error has occurred. See shell.\n" +msgstr "Une erreur interne s'est produite. Voir shell.\n" + +#: FlatCAMApp.py:2807 +#, python-brace-format +msgid "" +"Object ({kind}) failed because: {error} \n" +"\n" +msgstr "L'objet ({kind}) a échoué car: {error}\n" + +#: FlatCAMApp.py:2822 +msgid "Converting units to " +msgstr "Conversion d'unités en " + +#: FlatCAMApp.py:2931 +msgid "CREATE A NEW FLATCAM TCL SCRIPT" +msgstr "CRÉER UN NOUVEAU SCRIPT FLATCAM TCL" + +#: FlatCAMApp.py:2932 +msgid "TCL Tutorial is here" +msgstr "Le didacticiel TCL est ici" + +#: FlatCAMApp.py:2934 +msgid "FlatCAM commands list" +msgstr "Liste des commandes FlatCAM" + +#: FlatCAMApp.py:2935 +msgid "" +"Type >help< followed by Run Code for a list of FlatCAM Tcl Commands " +"(displayed in Tcl Shell)." +msgstr "" +"Tapez >help< suivi de Run Code pour une liste des commandes FlatCAM Tcl " +"(affichées dans Tcl Shell)." + +#: FlatCAMApp.py:2982 FlatCAMApp.py:2988 FlatCAMApp.py:2994 FlatCAMApp.py:3000 +#: FlatCAMApp.py:3006 FlatCAMApp.py:3012 +msgid "created/selected" +msgstr "créé / sélectionné" + +#: FlatCAMApp.py:3027 FlatCAMApp.py:5189 flatcamObjects/FlatCAMObj.py:248 +#: flatcamObjects/FlatCAMObj.py:279 flatcamObjects/FlatCAMObj.py:295 +#: flatcamObjects/FlatCAMObj.py:375 flatcamTools/ToolCopperThieving.py:1481 +#: flatcamTools/ToolFiducials.py:809 flatcamTools/ToolMove.py:229 +#: flatcamTools/ToolQRCode.py:728 +msgid "Plotting" +msgstr "Traçage" + +#: FlatCAMApp.py:3090 flatcamGUI/FlatCAMGUI.py:545 +msgid "About FlatCAM" +msgstr "À propos de FlatCAM" + +#: FlatCAMApp.py:3116 +msgid "2D Computer-Aided Printed Circuit Board Manufacturing" +msgstr "Fabrication de cartes de circuits imprimés 2D assistées par ordinateur" + +#: FlatCAMApp.py:3117 +msgid "Development" +msgstr "Développement" + +#: FlatCAMApp.py:3118 +msgid "DOWNLOAD" +msgstr "TÉLÉCHARGER" + +#: FlatCAMApp.py:3119 +msgid "Issue tracker" +msgstr "Traqueur d'incidents" + +#: FlatCAMApp.py:3123 FlatCAMApp.py:3484 flatcamGUI/GUIElements.py:2583 +msgid "Close" +msgstr "Proche" + +#: FlatCAMApp.py:3138 +msgid "Licensed under the MIT license" +msgstr "Sous licence MIT" + +#: FlatCAMApp.py:3147 +msgid "" +"Permission is hereby granted, free of charge, to any person obtaining a " +"copy\n" +"of this software and associated documentation files (the \"Software\"), to " +"deal\n" +"in the Software without restriction, including without limitation the " +"rights\n" +"to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n" +"copies of the Software, and to permit persons to whom the Software is\n" +"furnished to do so, subject to the following conditions:\n" +"\n" +"The above copyright notice and this permission notice shall be included in\n" +"all copies or substantial portions of the Software.\n" +"\n" +"THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS " +"OR\n" +"IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n" +"FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n" +"AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n" +"LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING " +"FROM,\n" +"OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n" +"THE SOFTWARE." +msgstr "" +"Par la présente, une autorisation est accordée gratuitement à toute personne " +"qui en obtient une copie.\n" +"de ce logiciel et des fichiers de documentation associés (le \"Logiciel\"), " +"pour traiter\n" +"dans le logiciel sans restriction, y compris, sans limitation, les droits\n" +"utiliser, copier, modifier, fusionner, publier, distribuer, concéder en sous-" +"licence et / ou vendre\n" +"copies du logiciel, et pour permettre aux personnes à qui le logiciel est\n" +" meublé pour le faire, sous réserve des conditions suivantes:\n" +"\n" +"L'avis de copyright ci-dessus et cet avis de permission doivent être inclus " +"dans\n" +"toutes les copies ou parties substantielles du logiciel.\n" +"\n" +"LE LOGICIEL EST FOURNI \"TEL QUEL\", SANS AUCUNE GARANTIE, EXPRESSE OU\n" +"IMPLICITE, Y COMPRIS, MAIS SANS S'Y LIMITER, LES GARANTIES DE QUALITÉ " +"MARCHANDE,\n" +"APTITUDE À UN USAGE PARTICULIER ET À L’ABSENCE DE VIOLATION. EN AUCUN CAS, " +"LE\n" +"LES AUTEURS OU LES TITULAIRES DE COPYRIGHT SONT RESPONSABLES DE TOUTE " +"RÉCLAMATION, DE DOMMAGES OU D'AUTRES\n" +"RESPONSABILITÉ, QU'IL SOIT DANS UN ACTION DE CONTRAT, DE TORT OU AUTREMENT, " +"RÉSULTANT DE,\n" +"HORS OU EN LIEN AVEC LE LOGICIEL OU L’UTILISATION OU D’AUTRES TRANSACTIONS " +"DANS\n" +"LES LOGICIELS." + +#: FlatCAMApp.py:3169 +msgid "" +"Some of the icons used are from the following sources:

    Icons by Icons8
    Icons by oNline Web Fonts" +msgstr "" +"Certaines des icônes utilisées proviennent des sources suivantes: " +"
    IIcônes de Freepik . à partir de www.flaticon.com
    Icônes de Icons8
    Icônes de " +"oNline Web Fonts" + +#: FlatCAMApp.py:3202 +msgid "Splash" +msgstr "Éclaboussure" + +#: FlatCAMApp.py:3208 +msgid "Programmers" +msgstr "Programmeurs" + +#: FlatCAMApp.py:3214 +msgid "Translators" +msgstr "Traducteurs" + +#: FlatCAMApp.py:3220 +msgid "License" +msgstr "Licence" + +#: FlatCAMApp.py:3226 +msgid "Attributions" +msgstr "Attributions" + +#: FlatCAMApp.py:3249 +msgid "Programmer" +msgstr "Programmeur" + +#: FlatCAMApp.py:3250 +msgid "Status" +msgstr "Statut" + +#: FlatCAMApp.py:3251 FlatCAMApp.py:3331 +msgid "E-mail" +msgstr "Email" + +#: FlatCAMApp.py:3259 +msgid "BETA Maintainer >= 2019" +msgstr "Mainteneur BETA> = 2019" + +#: FlatCAMApp.py:3328 +msgid "Language" +msgstr "La langue" + +#: FlatCAMApp.py:3329 +msgid "Translator" +msgstr "Traducteur" + +#: FlatCAMApp.py:3330 +msgid "Corrections" +msgstr "Les corrections" + +#: FlatCAMApp.py:3455 FlatCAMApp.py:3464 flatcamGUI/FlatCAMGUI.py:527 +msgid "Bookmarks Manager" +msgstr "Gestionnaire de favoris" + +#: FlatCAMApp.py:3475 +msgid "" +"This entry will resolve to another website if:\n" +"\n" +"1. FlatCAM.org website is down\n" +"2. Someone forked FlatCAM project and wants to point\n" +"to his own website\n" +"\n" +"If you can't get any informations about FlatCAM beta\n" +"use the YouTube channel link from the Help menu." +msgstr "" +"Cette entrée sera résolue sur un autre site Web si:\n" +"\n" +"1. Le site FlatCAM.org est en panne\n" +"2. Quelqu'un a projeté FlatCAM et veut pointer\n" +"sur son propre site web\n" +"\n" +"Si vous ne pouvez pas obtenir d'informations sur FlatCAM beta\n" +"utilisez le lien de chaîne YouTube dans le menu Aide." + +#: FlatCAMApp.py:3482 +msgid "Alternative website" +msgstr "Site alternatif" + +#: FlatCAMApp.py:3508 flatcamGUI/FlatCAMGUI.py:4267 +msgid "Application is saving the project. Please wait ..." +msgstr "L'application enregistre le projet. S'il vous plaît, attendez ..." + +#: FlatCAMApp.py:3513 FlatCAMTranslation.py:202 +msgid "" +"There are files/objects modified in FlatCAM. \n" +"Do you want to Save the project?" +msgstr "" +"Il y a des fichiers / objets modifiés dans FlatCAM.\n" +"Voulez-vous enregistrer le projet?" + +#: FlatCAMApp.py:3516 FlatCAMApp.py:7343 FlatCAMTranslation.py:205 +msgid "Save changes" +msgstr "Sauvegarder les modifications" + +#: FlatCAMApp.py:3778 +msgid "Selected Excellon file extensions registered with FlatCAM." +msgstr "" +"Extensions de fichier Excellon sélectionnées enregistrées avec FlatCAM." + +#: FlatCAMApp.py:3800 +msgid "Selected GCode file extensions registered with FlatCAM." +msgstr "Extensions de fichier GCode sélectionnées enregistrées avec FlatCAM." + +#: FlatCAMApp.py:3822 +msgid "Selected Gerber file extensions registered with FlatCAM." +msgstr "Extensions de fichiers Gerber sélectionnées enregistrées avec FlatCAM." + +#: FlatCAMApp.py:4010 FlatCAMApp.py:4069 FlatCAMApp.py:4097 +msgid "At least two objects are required for join. Objects currently selected" +msgstr "" +"Au moins deux objets sont requis pour la jointure. Objets actuellement " +"sélectionnés" + +#: FlatCAMApp.py:4019 +msgid "" +"Failed join. The Geometry objects are of different types.\n" +"At least one is MultiGeo type and the other is SingleGeo type. A possibility " +"is to convert from one to another and retry joining \n" +"but in the case of converting from MultiGeo to SingleGeo, informations may " +"be lost and the result may not be what was expected. \n" +"Check the generated GCODE." +msgstr "" +"Échec de la participation Les objets de géométrie sont de types différents.\n" +"Au moins un est de type MultiGeo et l'autre de type SingleGeo. Une " +"possibilité est de convertir de l'un à l'autre et réessayer de rejoindre\n" +"mais dans le cas d'une conversion de MultiGeo en SingleGeo, des informations " +"risquent d'être perdues et le résultat risque d'être différent de celui " +"attendu.\n" +"Vérifiez le GCODE généré." + +#: FlatCAMApp.py:4031 FlatCAMApp.py:4041 +msgid "Geometry merging finished" +msgstr "Fusion de la géométrie terminée" + +#: FlatCAMApp.py:4064 +msgid "Failed. Excellon joining works only on Excellon objects." +msgstr "Échoué. Excellon rejoindre ne travaille que sur des objets Excellon." + +#: FlatCAMApp.py:4074 +msgid "Excellon merging finished" +msgstr "Fusion de la Excellon terminée" + +#: FlatCAMApp.py:4092 +msgid "Failed. Gerber joining works only on Gerber objects." +msgstr "Échoué. La jonction de Gerber ne fonctionne que sur des objets Gerber." + +#: FlatCAMApp.py:4102 +msgid "Gerber merging finished" +msgstr "Fusion de Gerber terminée" + +#: FlatCAMApp.py:4122 FlatCAMApp.py:4159 +msgid "Failed. Select a Geometry Object and try again." +msgstr "Échoué. Sélectionnez un objet de géométrie et réessayez." + +#: FlatCAMApp.py:4126 FlatCAMApp.py:4164 +msgid "Expected a GeometryObject, got" +msgstr "Échoué. Sélectionnez un objet de géométrie et réessayez" + +#: FlatCAMApp.py:4141 +msgid "A Geometry object was converted to MultiGeo type." +msgstr "Un objet Geometry a été converti en type MultiGeo." + +#: FlatCAMApp.py:4179 +msgid "A Geometry object was converted to SingleGeo type." +msgstr "Un objet Geometry a été converti en type SingleGeo." + +#: FlatCAMApp.py:4472 +msgid "Toggle Units" +msgstr "Basculer les Unités" + +#: FlatCAMApp.py:4474 +msgid "" +"Changing the units of the project\n" +"will scale all objects.\n" +"\n" +"Do you want to continue?" +msgstr "" +"Changer les unités du projet\n" +"mettra à l'échelle tous les objets.\n" +"\n" +"Voulez-vous continuer?" + +#: FlatCAMApp.py:4477 FlatCAMApp.py:5025 FlatCAMApp.py:5102 FlatCAMApp.py:7728 +#: FlatCAMApp.py:7742 FlatCAMApp.py:8075 FlatCAMApp.py:8085 +msgid "Ok" +msgstr "D'accord" + +#: FlatCAMApp.py:4526 +msgid "Converted units to" +msgstr "Unités converties en" + +#: FlatCAMApp.py:4928 +msgid "Detachable Tabs" +msgstr "Onglets détachables" + +#: FlatCAMApp.py:5014 flatcamTools/ToolNCC.py:932 flatcamTools/ToolNCC.py:1431 +#: flatcamTools/ToolPaint.py:858 flatcamTools/ToolSolderPaste.py:568 +#: flatcamTools/ToolSolderPaste.py:893 +msgid "Please enter a tool diameter with non-zero value, in Float format." +msgstr "" +"Veuillez saisir un diamètre d’outil avec une valeur non nulle, au format " +"réel." + +#: FlatCAMApp.py:5018 flatcamTools/ToolNCC.py:936 flatcamTools/ToolPaint.py:862 +#: flatcamTools/ToolSolderPaste.py:572 +msgid "Adding Tool cancelled" +msgstr "Outil d'ajout annulé" + +#: FlatCAMApp.py:5021 +msgid "" +"Adding Tool works only when Advanced is checked.\n" +"Go to Preferences -> General - Show Advanced Options." +msgstr "" +"L'ajout d'outil ne fonctionne que lorsque l'option Avancé est cochée.\n" +"Allez dans Préférences -> Général - Afficher les options avancées." + +#: FlatCAMApp.py:5097 +msgid "Delete objects" +msgstr "Supprimer des objets" + +#: FlatCAMApp.py:5100 +msgid "" +"Are you sure you want to permanently delete\n" +"the selected objects?" +msgstr "" +"Êtes-vous sûr de vouloir supprimer définitivement\n" +"les objets sélectionnés?" + +#: FlatCAMApp.py:5138 +msgid "Object(s) deleted" +msgstr "Objet (s) supprimé (s)" + +#: FlatCAMApp.py:5142 FlatCAMApp.py:5297 flatcamTools/ToolDblSided.py:818 +msgid "Failed. No object(s) selected..." +msgstr "Échoué. Aucun objet sélectionné ..." + +#: FlatCAMApp.py:5144 +msgid "Save the work in Editor and try again ..." +msgstr "Enregistrez le travail dans l'éditeur et réessayez ..." + +#: FlatCAMApp.py:5173 +msgid "Object deleted" +msgstr "Objet supprimé" + +#: FlatCAMApp.py:5200 +msgid "Click to set the origin ..." +msgstr "Cliquez pour définir l'origine ..." + +#: FlatCAMApp.py:5222 +msgid "Setting Origin..." +msgstr "Réglage de l'Origine ..." + +#: FlatCAMApp.py:5235 FlatCAMApp.py:5337 +msgid "Origin set" +msgstr "Ensemble d'origine" + +#: FlatCAMApp.py:5252 +msgid "Origin coordinates specified but incomplete." +msgstr "Coordonnées d'origine spécifiées mais incomplètes." + +#: FlatCAMApp.py:5293 +msgid "Moving to Origin..." +msgstr "Déplacement vers l'origine ..." + +#: FlatCAMApp.py:5374 +msgid "Jump to ..." +msgstr "Sauter à ..." + +#: FlatCAMApp.py:5375 +msgid "Enter the coordinates in format X,Y:" +msgstr "Entrez les coordonnées au format X, Y:" + +#: FlatCAMApp.py:5385 +msgid "Wrong coordinates. Enter coordinates in format: X,Y" +msgstr "Mauvaises coordonnées. Entrez les coordonnées au format: X, Y" + +#: FlatCAMApp.py:5463 FlatCAMApp.py:5612 +#: flatcamEditors/FlatCAMExcEditor.py:3624 +#: flatcamEditors/FlatCAMExcEditor.py:3632 +#: flatcamEditors/FlatCAMGeoEditor.py:4349 +#: flatcamEditors/FlatCAMGeoEditor.py:4363 +#: flatcamEditors/FlatCAMGrbEditor.py:1087 +#: flatcamEditors/FlatCAMGrbEditor.py:1204 +#: flatcamEditors/FlatCAMGrbEditor.py:1490 +#: flatcamEditors/FlatCAMGrbEditor.py:1759 +#: flatcamEditors/FlatCAMGrbEditor.py:4622 +#: flatcamEditors/FlatCAMGrbEditor.py:4637 flatcamGUI/FlatCAMGUI.py:3424 +#: flatcamGUI/FlatCAMGUI.py:3436 flatcamTools/ToolAlignObjects.py:393 +#: flatcamTools/ToolAlignObjects.py:415 +msgid "Done." +msgstr "Terminé." + +#: FlatCAMApp.py:5478 FlatCAMApp.py:7724 FlatCAMApp.py:7819 FlatCAMApp.py:7860 +#: FlatCAMApp.py:7901 FlatCAMApp.py:7942 FlatCAMApp.py:7983 FlatCAMApp.py:8027 +#: FlatCAMApp.py:8071 FlatCAMApp.py:8593 FlatCAMApp.py:8597 +#: flatcamTools/ToolProperties.py:116 +msgid "No object selected." +msgstr "Aucun objet sélectionné." + +#: FlatCAMApp.py:5497 +msgid "Bottom-Left" +msgstr "En bas à gauche" + +#: FlatCAMApp.py:5498 flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:131 +#: flatcamTools/ToolCalibration.py:159 +msgid "Top-Left" +msgstr "En haut à gauche" + +#: FlatCAMApp.py:5499 flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:132 +#: flatcamTools/ToolCalibration.py:160 +msgid "Bottom-Right" +msgstr "En bas à droite" + +#: FlatCAMApp.py:5500 +msgid "Top-Right" +msgstr "En haut à droite" + +#: FlatCAMApp.py:5501 flatcamGUI/ObjectUI.py:2706 +msgid "Center" +msgstr "Centre" + +#: FlatCAMApp.py:5521 +msgid "Locate ..." +msgstr "Localiser ..." + +#: FlatCAMApp.py:5779 FlatCAMApp.py:5856 +msgid "No object is selected. Select an object and try again." +msgstr "Aucun objet n'est sélectionné. Sélectionnez un objet et réessayez." + +#: FlatCAMApp.py:5882 +msgid "" +"Aborting. The current task will be gracefully closed as soon as possible..." +msgstr "" +"Abandonner La tâche en cours sera clôturée dans les meilleurs délais ..." + +#: FlatCAMApp.py:5888 +msgid "The current task was gracefully closed on user request..." +msgstr "" +"La tâche en cours a été fermée avec élégance à la demande de " +"l'utilisateur ..." + +#: FlatCAMApp.py:5916 flatcamGUI/preferences/PreferencesUIManager.py:905 +#: flatcamGUI/preferences/PreferencesUIManager.py:949 +#: flatcamGUI/preferences/PreferencesUIManager.py:970 +#: flatcamGUI/preferences/PreferencesUIManager.py:1075 +msgid "Preferences" +msgstr "Préférences" + +#: FlatCAMApp.py:5981 FlatCAMApp.py:6009 FlatCAMApp.py:6036 FlatCAMApp.py:6056 +#: FlatCAMDB.py:738 FlatCAMDB.py:913 FlatCAMDB.py:2200 FlatCAMDB.py:2418 +#: flatcamObjects/FlatCAMGeometry.py:890 flatcamTools/ToolNCC.py:3963 +#: flatcamTools/ToolNCC.py:4047 flatcamTools/ToolPaint.py:3553 +#: flatcamTools/ToolPaint.py:3638 +msgid "Tools Database" +msgstr "Base de données d'outils" + +#: FlatCAMApp.py:6033 +msgid "Tools in Tools Database edited but not saved." +msgstr "" +"Les outils de la base de données d'outils ont été modifiés mais pas " +"enregistrés." + +#: FlatCAMApp.py:6060 flatcamTools/ToolNCC.py:3970 +#: flatcamTools/ToolPaint.py:3560 +msgid "Tool from DB added in Tool Table." +msgstr "Outil de la base de données ajouté dans la table d'outils." + +#: FlatCAMApp.py:6062 +msgid "Adding tool from DB is not allowed for this object." +msgstr "" +"L'ajout d'outil à partir de la base de données n'est pas autorisé pour cet " +"objet." + +#: FlatCAMApp.py:6080 +msgid "" +"One or more Tools are edited.\n" +"Do you want to update the Tools Database?" +msgstr "" +"Un ou plusieurs outils sont modifiés.\n" +"Voulez-vous mettre à jour la base de données d'outils?" + +#: FlatCAMApp.py:6082 +msgid "Save Tools Database" +msgstr "Enregistrer la base de données d'outils" + +#: FlatCAMApp.py:6135 +msgid "No object selected to Flip on Y axis." +msgstr "Aucun objet sélectionné pour basculer sur l’axe Y." + +#: FlatCAMApp.py:6161 +msgid "Flip on Y axis done." +msgstr "Tournez sur l'axe des Y fait." + +#: FlatCAMApp.py:6163 FlatCAMApp.py:6211 +#: flatcamEditors/FlatCAMGrbEditor.py:6059 +msgid "Flip action was not executed." +msgstr "L'Action de retournement n'a pas été exécutée." + +#: FlatCAMApp.py:6183 +msgid "No object selected to Flip on X axis." +msgstr "Aucun objet sélectionné pour basculer sur l’axe X." + +#: FlatCAMApp.py:6209 +msgid "Flip on X axis done." +msgstr "Tournez sur l'axe X fait." + +#: FlatCAMApp.py:6231 +msgid "No object selected to Rotate." +msgstr "Aucun objet sélectionné pour faire pivoter." + +#: FlatCAMApp.py:6234 FlatCAMApp.py:6287 FlatCAMApp.py:6326 +msgid "Transform" +msgstr "Transformer" + +#: FlatCAMApp.py:6234 FlatCAMApp.py:6287 FlatCAMApp.py:6326 +msgid "Enter the Angle value:" +msgstr "Entrez la valeur de l'angle:" + +#: FlatCAMApp.py:6265 +msgid "Rotation done." +msgstr "Rotation effectuée." + +#: FlatCAMApp.py:6267 +msgid "Rotation movement was not executed." +msgstr "Le mouvement de rotation n'a pas été exécuté." + +#: FlatCAMApp.py:6285 +msgid "No object selected to Skew/Shear on X axis." +msgstr "Aucun objet sélectionné pour incliner / cisailler sur l'axe X." + +#: FlatCAMApp.py:6307 +msgid "Skew on X axis done." +msgstr "Inclinaison sur l'axe X terminée." + +#: FlatCAMApp.py:6324 +msgid "No object selected to Skew/Shear on Y axis." +msgstr "" +"Aucun objet sélectionné pour incliner / cisailler sur l'axe des ordonnées." + +#: FlatCAMApp.py:6346 +msgid "Skew on Y axis done." +msgstr "Inclinaison sur l'axe des Y faite." + +#: FlatCAMApp.py:6497 FlatCAMApp.py:6544 flatcamGUI/FlatCAMGUI.py:503 +#: flatcamGUI/FlatCAMGUI.py:1728 +msgid "Select All" +msgstr "Tout sélectionner" + +#: FlatCAMApp.py:6501 FlatCAMApp.py:6548 flatcamGUI/FlatCAMGUI.py:505 +msgid "Deselect All" +msgstr "Tout déselectionner" + +#: FlatCAMApp.py:6564 +msgid "All objects are selected." +msgstr "Tous les objets sont sélectionnés." + +#: FlatCAMApp.py:6574 +msgid "Objects selection is cleared." +msgstr "La sélection des objets est effacée." + +#: FlatCAMApp.py:6594 flatcamGUI/FlatCAMGUI.py:1721 +msgid "Grid On/Off" +msgstr "Grille On/Off" + +#: FlatCAMApp.py:6606 flatcamEditors/FlatCAMGeoEditor.py:939 +#: flatcamEditors/FlatCAMGrbEditor.py:2583 +#: flatcamEditors/FlatCAMGrbEditor.py:5641 flatcamGUI/ObjectUI.py:1595 +#: flatcamTools/ToolDblSided.py:192 flatcamTools/ToolDblSided.py:425 +#: flatcamTools/ToolNCC.py:294 flatcamTools/ToolNCC.py:631 +#: flatcamTools/ToolPaint.py:277 flatcamTools/ToolPaint.py:676 +#: flatcamTools/ToolSolderPaste.py:122 flatcamTools/ToolSolderPaste.py:597 +#: flatcamTools/ToolTransform.py:478 +msgid "Add" +msgstr "Ajouter" + +#: FlatCAMApp.py:6608 flatcamEditors/FlatCAMGrbEditor.py:2588 +#: flatcamEditors/FlatCAMGrbEditor.py:2736 flatcamGUI/FlatCAMGUI.py:751 +#: flatcamGUI/FlatCAMGUI.py:1074 flatcamGUI/FlatCAMGUI.py:2141 +#: flatcamGUI/FlatCAMGUI.py:2284 flatcamGUI/FlatCAMGUI.py:2777 +#: flatcamGUI/ObjectUI.py:1623 flatcamObjects/FlatCAMGeometry.py:505 +#: flatcamTools/ToolNCC.py:316 flatcamTools/ToolNCC.py:637 +#: flatcamTools/ToolPaint.py:299 flatcamTools/ToolPaint.py:682 +#: flatcamTools/ToolSolderPaste.py:128 flatcamTools/ToolSolderPaste.py:600 +msgid "Delete" +msgstr "Effacer" + +#: FlatCAMApp.py:6624 +msgid "New Grid ..." +msgstr "Nouvelle grille ..." + +#: FlatCAMApp.py:6625 +msgid "Enter a Grid Value:" +msgstr "Entrez une valeur de grille:" + +#: FlatCAMApp.py:6633 FlatCAMApp.py:6660 +msgid "Please enter a grid value with non-zero value, in Float format." +msgstr "" +"Veuillez entrer une valeur de grille avec une valeur non nulle, au format " +"réel." + +#: FlatCAMApp.py:6639 +msgid "New Grid added" +msgstr "Nouvelle grille ajoutée" + +#: FlatCAMApp.py:6642 +msgid "Grid already exists" +msgstr "La grille existe déjà" + +#: FlatCAMApp.py:6645 +msgid "Adding New Grid cancelled" +msgstr "Ajout d'une nouvelle grille annulée" + +#: FlatCAMApp.py:6667 +msgid " Grid Value does not exist" +msgstr " Grid Value does not exist" + +#: FlatCAMApp.py:6670 +msgid "Grid Value deleted" +msgstr "Valeur de grille supprimée" + +#: FlatCAMApp.py:6673 +msgid "Delete Grid value cancelled" +msgstr "Supprimer la valeur de grille annulée" + +#: FlatCAMApp.py:6679 +msgid "Key Shortcut List" +msgstr "Liste de raccourcis clavier" + +#: FlatCAMApp.py:6713 +msgid " No object selected to copy it's name" +msgstr " Aucun objet sélectionné pour copier son nom" + +#: FlatCAMApp.py:6717 +msgid "Name copied on clipboard ..." +msgstr "Nom copié dans le presse-papiers ..." + +#: FlatCAMApp.py:6930 flatcamEditors/FlatCAMGrbEditor.py:4554 +msgid "Coordinates copied to clipboard." +msgstr "Coordonnées copiées dans le presse-papier." + +#: FlatCAMApp.py:7167 FlatCAMApp.py:7173 FlatCAMApp.py:7179 FlatCAMApp.py:7185 +#: flatcamObjects/ObjectCollection.py:922 +#: flatcamObjects/ObjectCollection.py:928 +#: flatcamObjects/ObjectCollection.py:934 +#: flatcamObjects/ObjectCollection.py:940 +#: flatcamObjects/ObjectCollection.py:946 +#: flatcamObjects/ObjectCollection.py:952 +msgid "selected" +msgstr "choisi" + +#: FlatCAMApp.py:7340 +msgid "" +"There are files/objects opened in FlatCAM.\n" +"Creating a New project will delete them.\n" +"Do you want to Save the project?" +msgstr "" +"Il y a des fichiers / objets ouverts dans FlatCAM.\n" +"La création d'un nouveau projet les supprimera.\n" +"Voulez-vous enregistrer le projet?" + +#: FlatCAMApp.py:7361 +msgid "New Project created" +msgstr "Nouveau projet créé" + +#: FlatCAMApp.py:7519 FlatCAMApp.py:7523 flatcamGUI/FlatCAMGUI.py:836 +#: flatcamGUI/FlatCAMGUI.py:2544 +msgid "Open Gerber" +msgstr "Gerber ouvert" + +#: FlatCAMApp.py:7528 FlatCAMApp.py:7565 FlatCAMApp.py:7607 FlatCAMApp.py:7677 +#: FlatCAMApp.py:8462 FlatCAMApp.py:9675 FlatCAMApp.py:9737 +msgid "" +"Canvas initialization started.\n" +"Canvas initialization finished in" +msgstr "" +"L'initialisation de la toile a commencé.\n" +"Initialisation de la toile terminée en" + +#: FlatCAMApp.py:7530 +msgid "Opening Gerber file." +msgstr "Ouvrir le fichier Gerber." + +#: FlatCAMApp.py:7557 FlatCAMApp.py:7561 flatcamGUI/FlatCAMGUI.py:838 +#: flatcamGUI/FlatCAMGUI.py:2546 +msgid "Open Excellon" +msgstr "Excellon ouvert" + +#: FlatCAMApp.py:7567 +msgid "Opening Excellon file." +msgstr "Ouverture du fichier Excellon." + +#: FlatCAMApp.py:7598 FlatCAMApp.py:7602 +msgid "Open G-Code" +msgstr "G-code ouvert" + +#: FlatCAMApp.py:7609 +msgid "Opening G-Code file." +msgstr "Ouverture du fichier G-Code." + +#: FlatCAMApp.py:7632 FlatCAMApp.py:7635 flatcamGUI/FlatCAMGUI.py:1730 +msgid "Open Project" +msgstr "Projet ouvert" + +#: FlatCAMApp.py:7668 FlatCAMApp.py:7672 +msgid "Open HPGL2" +msgstr "Ouvrir le HPGL2" + +#: FlatCAMApp.py:7679 +msgid "Opening HPGL2 file." +msgstr "Ouvrir le fichier HPGL2." + +#: FlatCAMApp.py:7702 FlatCAMApp.py:7705 +msgid "Open Configuration File" +msgstr "Ouvrir le fichier de configuration" + +#: FlatCAMApp.py:7725 FlatCAMApp.py:8072 +msgid "Please Select a Geometry object to export" +msgstr "Veuillez sélectionner un objet de géométrie à exporter" + +#: FlatCAMApp.py:7739 +msgid "Only Geometry, Gerber and CNCJob objects can be used." +msgstr "Seuls les objets Geometry, Gerber et CNCJob peuvent être utilisés." + +#: FlatCAMApp.py:7752 FlatCAMApp.py:7756 flatcamTools/ToolQRCode.py:829 +#: flatcamTools/ToolQRCode.py:833 +msgid "Export SVG" +msgstr "Exporter en SVG" + +#: FlatCAMApp.py:7781 +msgid "Data must be a 3D array with last dimension 3 or 4" +msgstr "" +"Les données doivent être un tableau 3D avec la dernière dimension 3 ou 4" + +#: FlatCAMApp.py:7787 FlatCAMApp.py:7791 +msgid "Export PNG Image" +msgstr "Exporter une image PNG" + +#: FlatCAMApp.py:7824 FlatCAMApp.py:8032 +msgid "Failed. Only Gerber objects can be saved as Gerber files..." +msgstr "" +"Échoué. Seuls les objets Gerber peuvent être enregistrés en tant que " +"fichiers Gerber ..." + +#: FlatCAMApp.py:7836 +msgid "Save Gerber source file" +msgstr "Enregistrer le fichier source Gerber" + +#: FlatCAMApp.py:7865 +msgid "Failed. Only Script objects can be saved as TCL Script files..." +msgstr "" +"Échoué. Seuls les objets de script peuvent être enregistrés en tant que " +"fichiers de script TCL ..." + +#: FlatCAMApp.py:7877 +msgid "Save Script source file" +msgstr "Enregistrer le fichier source du script" + +#: FlatCAMApp.py:7906 +msgid "Failed. Only Document objects can be saved as Document files..." +msgstr "" +"Échoué. Seuls les objets Document peuvent être enregistrés en tant que " +"fichiers Document ..." + +#: FlatCAMApp.py:7918 +msgid "Save Document source file" +msgstr "Enregistrer le fichier source du document" + +#: FlatCAMApp.py:7947 FlatCAMApp.py:7988 FlatCAMApp.py:8945 +msgid "Failed. Only Excellon objects can be saved as Excellon files..." +msgstr "" +"Échoué. Seuls les objets Excellon peuvent être enregistrés en tant que " +"fichiers Excellon ..." + +#: FlatCAMApp.py:7955 FlatCAMApp.py:7959 +msgid "Save Excellon source file" +msgstr "Enregistrer le fichier source Excellon" + +#: FlatCAMApp.py:7996 FlatCAMApp.py:8000 +msgid "Export Excellon" +msgstr "Exporter Excellon" + +#: FlatCAMApp.py:8040 FlatCAMApp.py:8044 +msgid "Export Gerber" +msgstr "Export Gerber" + +#: FlatCAMApp.py:8082 +msgid "Only Geometry objects can be used." +msgstr "Seuls les objets de géométrie peuvent être utilisés." + +#: FlatCAMApp.py:8096 FlatCAMApp.py:8100 +msgid "Export DXF" +msgstr "Exportation DXF" + +#: FlatCAMApp.py:8125 FlatCAMApp.py:8128 +msgid "Import SVG" +msgstr "Importer SVG" + +#: FlatCAMApp.py:8156 FlatCAMApp.py:8160 +msgid "Import DXF" +msgstr "Importation DXF" + +#: FlatCAMApp.py:8210 +msgid "Viewing the source code of the selected object." +msgstr "Affichage du code source de l'objet sélectionné." + +#: FlatCAMApp.py:8211 flatcamObjects/FlatCAMCNCJob.py:548 +#: flatcamObjects/FlatCAMScript.py:134 +msgid "Loading..." +msgstr "Chargement..." + +#: FlatCAMApp.py:8217 FlatCAMApp.py:8221 +msgid "Select an Gerber or Excellon file to view it's source file." +msgstr "" +"Sélectionnez un fichier Gerber ou Excellon pour afficher son fichier source." + +#: FlatCAMApp.py:8235 +msgid "Source Editor" +msgstr "Éditeur de source" + +#: FlatCAMApp.py:8275 FlatCAMApp.py:8282 +msgid "There is no selected object for which to see it's source file code." +msgstr "" +"Il n'y a pas d'objet sélectionné pour lequel voir son code de fichier source." + +#: FlatCAMApp.py:8294 +msgid "Failed to load the source code for the selected object" +msgstr "Échec du chargement du code source pour l'objet sélectionné" + +#: FlatCAMApp.py:8308 flatcamObjects/FlatCAMCNCJob.py:562 +msgid "Code Editor" +msgstr "Éditeur de code" + +#: FlatCAMApp.py:8330 +msgid "Go to Line ..." +msgstr "Aller à la ligne ..." + +#: FlatCAMApp.py:8331 +msgid "Line:" +msgstr "Ligne:" + +#: FlatCAMApp.py:8360 +msgid "New TCL script file created in Code Editor." +msgstr "Nouveau fichier de script TCL créé dans l'éditeur de code." + +#: FlatCAMApp.py:8396 FlatCAMApp.py:8398 FlatCAMApp.py:8434 FlatCAMApp.py:8436 +msgid "Open TCL script" +msgstr "Ouvrir le script TCL" + +#: FlatCAMApp.py:8464 +msgid "Executing ScriptObject file." +msgstr "Exécution du fichier ScriptObject." + +#: FlatCAMApp.py:8472 FlatCAMApp.py:8475 +msgid "Run TCL script" +msgstr "Exécuter le script TCL" + +#: FlatCAMApp.py:8498 +msgid "TCL script file opened in Code Editor and executed." +msgstr "Fichier de script TCL ouvert dans l'éditeur de code et exécuté." + +#: FlatCAMApp.py:8549 FlatCAMApp.py:8555 +msgid "Save Project As ..." +msgstr "Enregistrer le projet sous ..." + +#: FlatCAMApp.py:8551 flatcamGUI/FlatCAMGUI.py:1134 +#: flatcamGUI/FlatCAMGUI.py:2176 +msgid "Project" +msgstr "Projet" + +#: FlatCAMApp.py:8590 +msgid "FlatCAM objects print" +msgstr "Impression d'objets FlatCAM" + +#: FlatCAMApp.py:8603 FlatCAMApp.py:8610 +msgid "Save Object as PDF ..." +msgstr "Enregistrer l'objet au format PDF ...Enregistrer le projet sous ..." + +#: FlatCAMApp.py:8619 +msgid "Printing PDF ... Please wait." +msgstr "Impression du PDF ... Veuillez patienter." + +#: FlatCAMApp.py:8798 +msgid "PDF file saved to" +msgstr "Fichier PDF enregistré dans" + +#: FlatCAMApp.py:8823 +msgid "Exporting SVG" +msgstr "Exporter du SVG" + +#: FlatCAMApp.py:8866 +msgid "SVG file exported to" +msgstr "Fichier SVG exporté vers" + +#: FlatCAMApp.py:8892 +msgid "" +"Save cancelled because source file is empty. Try to export the Gerber file." +msgstr "" +"Enregistrement annulé car le fichier source est vide. Essayez d'exporter le " +"fichier Gerber." + +#: FlatCAMApp.py:9039 +msgid "Excellon file exported to" +msgstr "Fichier Excellon exporté vers" + +#: FlatCAMApp.py:9048 +msgid "Exporting Excellon" +msgstr "Exporter Excellon" + +#: FlatCAMApp.py:9053 FlatCAMApp.py:9060 +msgid "Could not export Excellon file." +msgstr "Impossible d'exporter le fichier Excellon." + +#: FlatCAMApp.py:9175 +msgid "Gerber file exported to" +msgstr "Fichier Gerber exporté vers" + +#: FlatCAMApp.py:9183 +msgid "Exporting Gerber" +msgstr "Exporter Gerber" + +#: FlatCAMApp.py:9188 FlatCAMApp.py:9195 +msgid "Could not export Gerber file." +msgstr "Impossible d'exporter le fichier Gerber." + +#: FlatCAMApp.py:9230 +msgid "DXF file exported to" +msgstr "Fichier DXF exporté vers" + +#: FlatCAMApp.py:9236 +msgid "Exporting DXF" +msgstr "Exportation DXF" + +#: FlatCAMApp.py:9241 FlatCAMApp.py:9248 +msgid "Could not export DXF file." +msgstr "Impossible d'exporter le fichier DXF." + +#: FlatCAMApp.py:9272 FlatCAMApp.py:9319 flatcamTools/ToolImage.py:277 +msgid "" +"Not supported type is picked as parameter. Only Geometry and Gerber are " +"supported" +msgstr "" +"Le type non pris en charge est sélectionné en tant que paramètre. Seuls " +"Geometry et Gerber sont supportés" + +#: FlatCAMApp.py:9282 +msgid "Importing SVG" +msgstr "Importer du SVG" + +#: FlatCAMApp.py:9290 FlatCAMApp.py:9336 +msgid "Import failed." +msgstr "L'importation a échoué." + +#: FlatCAMApp.py:9297 FlatCAMApp.py:9343 FlatCAMApp.py:9407 FlatCAMApp.py:9474 +#: FlatCAMApp.py:9540 FlatCAMApp.py:9605 FlatCAMApp.py:9662 +#: flatcamTools/ToolImage.py:297 flatcamTools/ToolPDF.py:225 +msgid "Opened" +msgstr "Ouvert" + +#: FlatCAMApp.py:9328 +msgid "Importing DXF" +msgstr "Importation de DXF" + +#: FlatCAMApp.py:9369 FlatCAMApp.py:9564 FlatCAMApp.py:9629 +msgid "Failed to open file" +msgstr "Échec de l'ouverture du fichier" + +#: FlatCAMApp.py:9372 FlatCAMApp.py:9567 FlatCAMApp.py:9632 +msgid "Failed to parse file" +msgstr "Échec de l'analyse du fichier" + +#: FlatCAMApp.py:9384 +msgid "Object is not Gerber file or empty. Aborting object creation." +msgstr "" +"L'objet n'est pas un fichier Gerber ou vide. Abandon de la création d'objet." + +#: FlatCAMApp.py:9389 +msgid "Opening Gerber" +msgstr "Ouverture Gerber" + +#: FlatCAMApp.py:9400 +msgid "Open Gerber failed. Probable not a Gerber file." +msgstr "Open Gerber failed. Probable not a Gerber file." + +#: FlatCAMApp.py:9432 flatcamTools/ToolPcbWizard.py:424 +msgid "This is not Excellon file." +msgstr "Ce n'est pas un fichier Excellon." + +#: FlatCAMApp.py:9436 +msgid "Cannot open file" +msgstr "Ne peut pas ouvrir le fichier" + +#: FlatCAMApp.py:9454 flatcamTools/ToolPDF.py:275 +#: flatcamTools/ToolPcbWizard.py:445 +msgid "No geometry found in file" +msgstr "Aucune géométrie trouvée dans le fichier" + +#: FlatCAMApp.py:9457 +msgid "Opening Excellon." +msgstr "Ouverture Excellon." + +#: FlatCAMApp.py:9467 +msgid "Open Excellon file failed. Probable not an Excellon file." +msgstr "" +"Le fichier Open Excellon a échoué. Probablement pas un fichier Excellon." + +#: FlatCAMApp.py:9499 +msgid "Reading GCode file" +msgstr "Lecture du fichier GCode" + +#: FlatCAMApp.py:9505 +msgid "Failed to open" +msgstr "Impossible d'ouvrir" + +#: FlatCAMApp.py:9512 +msgid "This is not GCODE" +msgstr "Ce n'est pas GCODE" + +#: FlatCAMApp.py:9517 +msgid "Opening G-Code." +msgstr "Ouverture G-Code." + +#: FlatCAMApp.py:9530 +msgid "" +"Failed to create CNCJob Object. Probable not a GCode file. Try to load it " +"from File menu.\n" +" Attempting to create a FlatCAM CNCJob Object from G-Code file failed during " +"processing" +msgstr "" +"Impossible de créer un objet CNCJob. Probablement pas un fichier GCode. " +"Essayez de le charger à partir du menu Fichier.\n" +"La tentative de création d'un objet FlatCAM CNCJob à partir d'un fichier G-" +"Code a échoué pendant le traitement" + +#: FlatCAMApp.py:9586 +msgid "Object is not HPGL2 file or empty. Aborting object creation." +msgstr "" +"L'objet n'est pas un fichier HPGL2 ou vide. Abandon de la création d'objet." + +#: FlatCAMApp.py:9591 +msgid "Opening HPGL2" +msgstr "Ouverture HPGL2" + +#: FlatCAMApp.py:9598 +msgid " Open HPGL2 failed. Probable not a HPGL2 file." +msgstr " Open HPGL2 a échoué. Probablement pas un fichier HPGL2 ." + +#: FlatCAMApp.py:9624 +msgid "TCL script file opened in Code Editor." +msgstr "Fichier de script TCL ouvert dans l'éditeur de code." + +#: FlatCAMApp.py:9644 +msgid "Opening TCL Script..." +msgstr "Ouverture du script TCL ..." + +#: FlatCAMApp.py:9655 +msgid "Failed to open TCL Script." +msgstr "Impossible d'ouvrir le script TCL." + +#: FlatCAMApp.py:9677 +msgid "Opening FlatCAM Config file." +msgstr "Ouverture du fichier FlatCAM Config." + +#: FlatCAMApp.py:9705 +msgid "Failed to open config file" +msgstr "Impossible d'ouvrir le fichier de configuration" + +#: FlatCAMApp.py:9734 +msgid "Loading Project ... Please Wait ..." +msgstr "Chargement du projet ... Veuillez patienter ..." + +#: FlatCAMApp.py:9739 +msgid "Opening FlatCAM Project file." +msgstr "Ouverture du fichier de projet FlatCAM." + +#: FlatCAMApp.py:9754 FlatCAMApp.py:9758 FlatCAMApp.py:9775 +msgid "Failed to open project file" +msgstr "Impossible d'ouvrir le fichier de projet" + +#: FlatCAMApp.py:9812 +msgid "Loading Project ... restoring" +msgstr "Chargement du projet ... en cours de restauration" + +#: FlatCAMApp.py:9822 +msgid "Project loaded from" +msgstr "Projet chargé à partir de" + +#: FlatCAMApp.py:9846 +msgid "Redrawing all objects" +msgstr "Redessiner tous les objets" + +#: FlatCAMApp.py:9934 +msgid "Failed to load recent item list." +msgstr "Échec du chargement de la liste des éléments récents." + +#: FlatCAMApp.py:9941 +msgid "Failed to parse recent item list." +msgstr "Échec de l'analyse de la liste des éléments récents." + +#: FlatCAMApp.py:9951 +msgid "Failed to load recent projects item list." +msgstr "Échec du chargement de la liste d'éléments des projets récents." + +#: FlatCAMApp.py:9958 +msgid "Failed to parse recent project item list." +msgstr "Échec de l'analyse de la liste des éléments de projet récents." + +#: FlatCAMApp.py:10019 +msgid "Clear Recent projects" +msgstr "Effacer les projets récents" + +#: FlatCAMApp.py:10043 +msgid "Clear Recent files" +msgstr "Effacer les fichiers récents" + +#: FlatCAMApp.py:10065 flatcamGUI/FlatCAMGUI.py:1363 +msgid "Shortcut Key List" +msgstr "Liste des touches de raccourci" + +#: FlatCAMApp.py:10145 +msgid "Selected Tab - Choose an Item from Project Tab" +msgstr "Onglet sélectionné - Choisissez un élément dans l'onglet Projet" + +#: FlatCAMApp.py:10146 +msgid "Details" +msgstr "Détails" + +#: FlatCAMApp.py:10148 +msgid "The normal flow when working in FlatCAM is the following:" +msgstr "Le flux normal lorsque vous travaillez dans FlatCAM est le suivant:" + +#: FlatCAMApp.py:10149 +msgid "" +"Load/Import a Gerber, Excellon, Gcode, DXF, Raster Image or SVG file into " +"FlatCAM using either the toolbars, key shortcuts or even dragging and " +"dropping the files on the GUI." +msgstr "" +"Chargez / importez un fichier Gerber, Excellon, Gcode, DXF, Image raster ou " +"SVG dans FlatCAM à l'aide des barres d'outils, des raccourcis clavier ou " +"même en glissant-déposant les fichiers sur l'interface graphique." + +#: FlatCAMApp.py:10152 +msgid "" +"You can also load a FlatCAM project by double clicking on the project file, " +"drag and drop of the file into the FLATCAM GUI or through the menu (or " +"toolbar) actions offered within the app." +msgstr "" +"Vous pouvez également charger un projet FlatCAM en double-cliquant sur le " +"fichier du projet, en le glissant-déposant dans l’interface graphique de " +"FLATCAM ou par le biais du menu (ou de la barre d’outils) proposé dans " +"l’application." + +#: FlatCAMApp.py:10155 +msgid "" +"Once an object is available in the Project Tab, by selecting it and then " +"focusing on SELECTED TAB (more simpler is to double click the object name in " +"the Project Tab, SELECTED TAB will be updated with the object properties " +"according to its kind: Gerber, Excellon, Geometry or CNCJob object." +msgstr "" +"Une fois qu'un objet est disponible dans l'onglet Projet, en le " +"sélectionnant puis en vous concentrant sur SELECTED TAB (il est plus simple " +"de cliquer deux fois sur le nom de l'objet dans l'onglet Projet. SELECTED " +"TAB sera mis à jour avec les propriétés de l'objet en fonction de son type: " +"Gerber, Excellon, géométrie ou objet CNCJob." + +#: FlatCAMApp.py:10159 +msgid "" +"If the selection of the object is done on the canvas by single click " +"instead, and the SELECTED TAB is in focus, again the object properties will " +"be displayed into the Selected Tab. Alternatively, double clicking on the " +"object on the canvas will bring the SELECTED TAB and populate it even if it " +"was out of focus." +msgstr "" +"Si la sélection de l'objet est effectuée sur le canevas par un simple clic " +"et que l'onglet sélectionné est activé, les propriétés de l'objet sont à " +"nouveau affichées dans l'onglet sélectionné. Sinon, double-cliquez sur " +"l'objet sur la toile pour amener l'onglet sélectionné et le renseigner même " +"s'il n'était pas net." + +#: FlatCAMApp.py:10163 +msgid "" +"You can change the parameters in this screen and the flow direction is like " +"this:" +msgstr "" +"Vous pouvez modifier les paramètres dans cet écran et le sens du flux est le " +"suivant:" + +#: FlatCAMApp.py:10164 +msgid "" +"Gerber/Excellon Object --> Change Parameter --> Generate Geometry --> " +"Geometry Object --> Add tools (change param in Selected Tab) --> Generate " +"CNCJob --> CNCJob Object --> Verify GCode (through Edit CNC Code) and/or " +"append/prepend to GCode (again, done in SELECTED TAB) --> Save GCode." +msgstr "" +"Objet Gerber / Excellon -> Paramètre de modification -> Générer une " +"géométrie -> Objet de géométrie -> Ajouter des outils (changez le paramètre " +"dans l'onglet Sélectionné) -> Génère un objet CNCJob -> Objet CNCJob -> " +"Vérifier le GCode (via Edition CNC Code) et / ou ajouter / ajouter au code " +"GCode (à nouveau dans l’onglet SÉLECTIONNÉ) -> Enregistrer le code GC." + +#: FlatCAMApp.py:10168 +msgid "" +"A list of key shortcuts is available through an menu entry in Help --> " +"Shortcuts List or through its own key shortcut: F3." +msgstr "" +"Une liste des raccourcis clavier est disponible via une entrée de menu dans " +"Aide -> Liste des raccourcis ou via son propre raccourci clavier: F3." + +#: FlatCAMApp.py:10232 +msgid "Failed checking for latest version. Could not connect." +msgstr "" +"Échec de la vérification de la dernière version. N'a pas pu se connecter." + +#: FlatCAMApp.py:10239 +msgid "Could not parse information about latest version." +msgstr "Impossible d'analyser les informations sur la dernière version." + +#: FlatCAMApp.py:10249 +msgid "FlatCAM is up to date!" +msgstr "FlatCAM est à jour!" + +#: FlatCAMApp.py:10254 +msgid "Newer Version Available" +msgstr "Nouvelle version disponible" + +#: FlatCAMApp.py:10256 +msgid "There is a newer version of FlatCAM available for download:" +msgstr "Une version plus récente de FlatCAM est disponible au téléchargement:" + +#: FlatCAMApp.py:10260 +msgid "info" +msgstr "info" + +#: FlatCAMApp.py:10288 +msgid "" +"OpenGL canvas initialization failed. HW or HW configuration not supported." +"Change the graphic engine to Legacy(2D) in Edit -> Preferences -> General " +"tab.\n" +"\n" +msgstr "" +"L'initialisation du canevas OpenGL a échoué. La configuration matérielle ou " +"matérielle n'est pas prise en charge. Modifiez le moteur graphique en Hérité " +"(2D) dans Edition -> Préférences -> onglet Général.\n" +"\n" + +#: FlatCAMApp.py:10367 +msgid "All plots disabled." +msgstr "Toutes les parcelles désactivées." + +#: FlatCAMApp.py:10374 +msgid "All non selected plots disabled." +msgstr "Toutes les parcelles non sélectionnées sont désactivées." + +#: FlatCAMApp.py:10381 +msgid "All plots enabled." +msgstr "Toutes les parcelles activées." + +#: FlatCAMApp.py:10387 +msgid "Selected plots enabled..." +msgstr "Parcelles sélectionnées activées ..." + +#: FlatCAMApp.py:10395 +msgid "Selected plots disabled..." +msgstr "Parcelles sélectionnées désactivées ..." + +#: FlatCAMApp.py:10428 +msgid "Enabling plots ..." +msgstr "Activation des parcelles ..." + +#: FlatCAMApp.py:10480 +msgid "Disabling plots ..." +msgstr "Désactiver les parcelles ..." + +#: FlatCAMApp.py:10503 +msgid "Working ..." +msgstr "Travail ..." + +#: FlatCAMApp.py:10558 flatcamGUI/FlatCAMGUI.py:703 +msgid "Red" +msgstr "Rouge" + +#: FlatCAMApp.py:10560 flatcamGUI/FlatCAMGUI.py:706 +msgid "Blue" +msgstr "Bleu" + +#: FlatCAMApp.py:10563 flatcamGUI/FlatCAMGUI.py:709 +msgid "Yellow" +msgstr "Jaune" + +#: FlatCAMApp.py:10565 flatcamGUI/FlatCAMGUI.py:712 +msgid "Green" +msgstr "Vert" + +#: FlatCAMApp.py:10567 flatcamGUI/FlatCAMGUI.py:715 +msgid "Purple" +msgstr "Violet" + +#: FlatCAMApp.py:10569 flatcamGUI/FlatCAMGUI.py:718 +msgid "Brown" +msgstr "Marron" + +#: FlatCAMApp.py:10571 FlatCAMApp.py:10627 flatcamGUI/FlatCAMGUI.py:721 +msgid "White" +msgstr "Blanche" + +#: FlatCAMApp.py:10573 flatcamGUI/FlatCAMGUI.py:724 +msgid "Black" +msgstr "Noire" + +#: FlatCAMApp.py:10576 flatcamGUI/FlatCAMGUI.py:729 +msgid "Custom" +msgstr "Personnalisé" + +#: FlatCAMApp.py:10586 flatcamGUI/FlatCAMGUI.py:737 +msgid "Default" +msgstr "Défaut" + +#: FlatCAMApp.py:10610 flatcamGUI/FlatCAMGUI.py:734 +msgid "Opacity" +msgstr "Opacité" + +#: FlatCAMApp.py:10612 +msgid "Set alpha level ..." +msgstr "Définir le niveau alpha ..." + +#: FlatCAMApp.py:10612 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:131 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:133 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:220 +#: flatcamTools/ToolExtractDrills.py:164 flatcamTools/ToolExtractDrills.py:285 +#: flatcamTools/ToolPunchGerber.py:192 flatcamTools/ToolPunchGerber.py:308 +#: flatcamTools/ToolTransform.py:357 +msgid "Value" +msgstr "Valeur" + +#: FlatCAMApp.py:10666 +msgid "Saving FlatCAM Project" +msgstr "Enregistrement du projet FlatCAM" + +#: FlatCAMApp.py:10687 FlatCAMApp.py:10723 +msgid "Project saved to" +msgstr "Projet enregistré dans" + +#: FlatCAMApp.py:10694 +msgid "The object is used by another application." +msgstr "L'objet est utilisé par une autre application." + +#: FlatCAMApp.py:10708 +msgid "Failed to verify project file" +msgstr "Échec de la vérification du fichier de projet" + +#: FlatCAMApp.py:10708 FlatCAMApp.py:10716 FlatCAMApp.py:10726 +msgid "Retry to save it." +msgstr "Réessayez de le sauvegarder." + +#: FlatCAMApp.py:10716 FlatCAMApp.py:10726 +msgid "Failed to parse saved project file" +msgstr "Échec de l'analyse du fichier de projet enregistré" + +#: FlatCAMBookmark.py:57 FlatCAMBookmark.py:84 +msgid "Title" +msgstr "Titre" + +#: FlatCAMBookmark.py:58 FlatCAMBookmark.py:88 +msgid "Web Link" +msgstr "Lien Web" + +#: FlatCAMBookmark.py:62 +msgid "" +"Index.\n" +"The rows in gray color will populate the Bookmarks menu.\n" +"The number of gray colored rows is set in Preferences." +msgstr "" +"Indice.\n" +"Les lignes de couleur grise rempliront le menu Favoris.\n" +"Le nombre de lignes de couleur grises est défini dans Préférences." + +#: FlatCAMBookmark.py:66 +msgid "" +"Description of the link that is set as an menu action.\n" +"Try to keep it short because it is installed as a menu item." +msgstr "" +"Description du lien défini en tant qu'action de menu.\n" +"Essayez de rester bref car il est installé en tant qu'élément de menu." + +#: FlatCAMBookmark.py:69 +msgid "Web Link. E.g: https://your_website.org " +msgstr "Lien Web. Par exemple: https://your_website.org " + +#: FlatCAMBookmark.py:78 +msgid "New Bookmark" +msgstr "Nouveau Favori" + +#: FlatCAMBookmark.py:97 +msgid "Add Entry" +msgstr "Ajouter une entrée" + +#: FlatCAMBookmark.py:98 +msgid "Remove Entry" +msgstr "Supprimer l'entrée" + +#: FlatCAMBookmark.py:99 +msgid "Export List" +msgstr "Exporter la liste" + +#: FlatCAMBookmark.py:100 +msgid "Import List" +msgstr "Importer la liste" + +#: FlatCAMBookmark.py:190 +msgid "Title entry is empty." +msgstr "L'entrée de titre est vide." + +#: FlatCAMBookmark.py:199 +msgid "Web link entry is empty." +msgstr "L'entrée du lien Web est vide." + +#: FlatCAMBookmark.py:207 +msgid "Either the Title or the Weblink already in the table." +msgstr "Soit le titre ou le lien Web déjà dans le tableau." + +#: FlatCAMBookmark.py:227 +msgid "Bookmark added." +msgstr "Signet ajouté." + +#: FlatCAMBookmark.py:244 +msgid "This bookmark can not be removed" +msgstr "Ce marque-page ne peut être supprimé" + +#: FlatCAMBookmark.py:275 +msgid "Bookmark removed." +msgstr "Signet supprimé." + +#: FlatCAMBookmark.py:290 +msgid "Export FlatCAM Bookmarks" +msgstr "Exporter les signets FlatCAM" + +#: FlatCAMBookmark.py:293 flatcamGUI/FlatCAMGUI.py:524 +msgid "Bookmarks" +msgstr "Favoris" + +#: FlatCAMBookmark.py:319 FlatCAMBookmark.py:349 +msgid "Could not load bookmarks file." +msgstr "Impossible de charger le fichier de favoris." + +#: FlatCAMBookmark.py:329 +msgid "Failed to write bookmarks to file." +msgstr "Échec de l'écriture des favoris dans le fichier." + +#: FlatCAMBookmark.py:331 +msgid "Exported bookmarks to" +msgstr "Favoris exportés vers" + +#: FlatCAMBookmark.py:337 +msgid "Import FlatCAM Bookmarks" +msgstr "Importer des favoris FlatCAM" + +#: FlatCAMBookmark.py:356 +msgid "Imported Bookmarks from" +msgstr "Favoris importés de" + +#: FlatCAMCommon.py:29 +msgid "The user requested a graceful exit of the current task." +msgstr "L'utilisateur a demandé une sortie en douceur de la tâche en cours." + +#: FlatCAMDB.py:86 msgid "Add Geometry Tool in DB" msgstr "Ajouter un outil de géométrie dans la BD" -#: AppDatabase.py:90 AppDatabase.py:1757 +#: FlatCAMDB.py:88 FlatCAMDB.py:1643 msgid "" "Add a new tool in the Tools Database.\n" "It will be used in the Geometry UI.\n" @@ -37,218 +1749,214 @@ msgstr "" "Il sera utilisé dans l'interface utilisateur de géométrie.\n" "Vous pouvez le modifier après l'avoir ajouté." -#: AppDatabase.py:104 AppDatabase.py:1771 +#: FlatCAMDB.py:102 FlatCAMDB.py:1657 msgid "Delete Tool from DB" msgstr "Supprimer l'outil de la BD" -#: AppDatabase.py:106 AppDatabase.py:1773 +#: FlatCAMDB.py:104 FlatCAMDB.py:1659 msgid "Remove a selection of tools in the Tools Database." -msgstr "Supprimez une sélection d'outils de la base de données." +msgstr "Supprimez une sélection d'outils dans la base de données d'outils." -#: AppDatabase.py:110 AppDatabase.py:1777 +#: FlatCAMDB.py:108 FlatCAMDB.py:1663 msgid "Export DB" msgstr "Exporter la BD" -#: AppDatabase.py:112 AppDatabase.py:1779 +#: FlatCAMDB.py:110 FlatCAMDB.py:1665 msgid "Save the Tools Database to a custom text file." msgstr "" "Enregistrez la base de données d'outils dans un fichier texte personnalisé." -#: AppDatabase.py:116 AppDatabase.py:1783 +#: FlatCAMDB.py:114 FlatCAMDB.py:1669 msgid "Import DB" msgstr "Importer une BD" -#: AppDatabase.py:118 AppDatabase.py:1785 +#: FlatCAMDB.py:116 FlatCAMDB.py:1671 msgid "Load the Tools Database information's from a custom text file." msgstr "" "Chargez les informations de la base de données d'outils à partir d'un " "fichier texte personnalisé." -#: AppDatabase.py:122 AppDatabase.py:1795 -msgid "Transfer the Tool" -msgstr "Transférer l'outil" +#: FlatCAMDB.py:120 FlatCAMDB.py:1681 +msgid "Add Tool from Tools DB" +msgstr "Ajouter un outil à partir de la base de données d'outils" -#: AppDatabase.py:124 +#: FlatCAMDB.py:122 FlatCAMDB.py:1683 msgid "" "Add a new tool in the Tools Table of the\n" "active Geometry object after selecting a tool\n" "in the Tools Database." msgstr "" -"Ajoutez un nouvel outil depuis la table des \n" -"objets Géométrie actif, après l'avoir sélectionné\n" +"Ajoutez un nouvel outil dans le tableau des outils du\n" +"objet Geometry actif après avoir sélectionné un outil\n" "dans la base de données des outils." -#: AppDatabase.py:130 AppDatabase.py:1810 AppGUI/MainGUI.py:1388 -#: AppGUI/preferences/PreferencesUIManager.py:878 App_Main.py:2225 -#: App_Main.py:3160 App_Main.py:4037 App_Main.py:4307 App_Main.py:6417 -msgid "Cancel" -msgstr "Annuler" - -#: AppDatabase.py:160 AppDatabase.py:835 AppDatabase.py:1106 +#: FlatCAMDB.py:158 FlatCAMDB.py:833 FlatCAMDB.py:1087 msgid "Tool Name" msgstr "Nom de l'outil" -#: AppDatabase.py:161 AppDatabase.py:837 AppDatabase.py:1119 -#: AppEditors/FlatCAMExcEditor.py:1604 AppGUI/ObjectUI.py:1226 -#: AppGUI/ObjectUI.py:1480 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:132 -#: AppTools/ToolIsolation.py:260 AppTools/ToolNCC.py:278 -#: AppTools/ToolNCC.py:287 AppTools/ToolPaint.py:260 +#: FlatCAMDB.py:159 FlatCAMDB.py:835 FlatCAMDB.py:1100 +#: flatcamEditors/FlatCAMExcEditor.py:1604 flatcamGUI/ObjectUI.py:1345 +#: flatcamGUI/ObjectUI.py:1583 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:132 +#: flatcamTools/ToolNCC.py:278 flatcamTools/ToolNCC.py:287 +#: flatcamTools/ToolPaint.py:261 msgid "Tool Dia" -msgstr "Diam. de l'outil" +msgstr "Dia. de l'outil" -#: AppDatabase.py:162 AppDatabase.py:839 AppDatabase.py:1300 -#: AppGUI/ObjectUI.py:1455 +#: FlatCAMDB.py:160 FlatCAMDB.py:837 FlatCAMDB.py:1281 +#: flatcamGUI/ObjectUI.py:1558 msgid "Tool Offset" msgstr "Décalage d'outil" -#: AppDatabase.py:163 AppDatabase.py:841 AppDatabase.py:1317 +#: FlatCAMDB.py:161 FlatCAMDB.py:839 FlatCAMDB.py:1298 msgid "Custom Offset" msgstr "Décalage personnalisé" -#: AppDatabase.py:164 AppDatabase.py:843 AppDatabase.py:1284 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:70 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:53 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:62 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:72 -#: AppTools/ToolIsolation.py:199 AppTools/ToolNCC.py:213 -#: AppTools/ToolNCC.py:227 AppTools/ToolPaint.py:195 +#: FlatCAMDB.py:162 FlatCAMDB.py:841 FlatCAMDB.py:1265 +#: flatcamGUI/ObjectUI.py:309 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:67 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:53 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:62 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:72 +#: flatcamTools/ToolNCC.py:213 flatcamTools/ToolNCC.py:227 +#: flatcamTools/ToolPaint.py:196 msgid "Tool Type" msgstr "Type d'outil" -#: AppDatabase.py:165 AppDatabase.py:845 AppDatabase.py:1132 +#: FlatCAMDB.py:163 FlatCAMDB.py:843 FlatCAMDB.py:1113 msgid "Tool Shape" msgstr "Forme d'outil" -#: AppDatabase.py:166 AppDatabase.py:848 AppDatabase.py:1148 -#: AppGUI/ObjectUI.py:679 AppGUI/ObjectUI.py:1605 AppGUI/ObjectUI.py:2266 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:93 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:49 -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:78 -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:58 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:115 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:98 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:105 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:113 -#: AppTools/ToolCalculators.py:114 AppTools/ToolCutOut.py:138 -#: AppTools/ToolIsolation.py:246 AppTools/ToolNCC.py:260 -#: AppTools/ToolNCC.py:268 AppTools/ToolPaint.py:242 +#: FlatCAMDB.py:164 FlatCAMDB.py:846 FlatCAMDB.py:1129 +#: flatcamGUI/ObjectUI.py:350 flatcamGUI/ObjectUI.py:900 +#: flatcamGUI/ObjectUI.py:1703 flatcamGUI/ObjectUI.py:2336 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:93 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:48 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:107 +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:78 +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:58 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:98 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:105 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:113 +#: flatcamTools/ToolCalculators.py:114 flatcamTools/ToolCutOut.py:138 +#: flatcamTools/ToolNCC.py:260 flatcamTools/ToolNCC.py:268 +#: flatcamTools/ToolPaint.py:243 msgid "Cut Z" -msgstr "Gravure Z" +msgstr "Couper Z" -#: AppDatabase.py:167 AppDatabase.py:850 AppDatabase.py:1162 +#: FlatCAMDB.py:165 FlatCAMDB.py:848 FlatCAMDB.py:1143 msgid "MultiDepth" -msgstr "Plusieurs Passes" +msgstr "Multi-profondeur" -#: AppDatabase.py:168 AppDatabase.py:852 AppDatabase.py:1175 +#: FlatCAMDB.py:166 FlatCAMDB.py:850 FlatCAMDB.py:1156 msgid "DPP" msgstr "DPP" -#: AppDatabase.py:169 AppDatabase.py:854 AppDatabase.py:1331 +#: FlatCAMDB.py:167 FlatCAMDB.py:852 FlatCAMDB.py:1312 msgid "V-Dia" -msgstr "Diam. V" +msgstr "Dia. en V" -#: AppDatabase.py:170 AppDatabase.py:856 AppDatabase.py:1345 +#: FlatCAMDB.py:168 FlatCAMDB.py:854 FlatCAMDB.py:1326 msgid "V-Angle" -msgstr "Angle V" +msgstr "Angle en V" -#: AppDatabase.py:171 AppDatabase.py:858 AppDatabase.py:1189 -#: AppGUI/ObjectUI.py:725 AppGUI/ObjectUI.py:1652 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:134 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:102 -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:61 -#: AppObjects/FlatCAMExcellon.py:1496 AppObjects/FlatCAMGeometry.py:1671 -#: AppTools/ToolCalibration.py:74 +#: FlatCAMDB.py:169 FlatCAMDB.py:856 FlatCAMDB.py:1170 +#: flatcamGUI/ObjectUI.py:946 flatcamGUI/ObjectUI.py:1750 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:134 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:101 +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:61 +#: flatcamObjects/FlatCAMExcellon.py:1316 +#: flatcamObjects/FlatCAMGeometry.py:1606 flatcamTools/ToolCalibration.py:74 msgid "Travel Z" -msgstr "Déplacement Z" +msgstr "Voyage Z" -#: AppDatabase.py:172 AppDatabase.py:860 +#: FlatCAMDB.py:170 FlatCAMDB.py:858 msgid "FR" msgstr "Avance" -#: AppDatabase.py:173 AppDatabase.py:862 +#: FlatCAMDB.py:171 FlatCAMDB.py:860 msgid "FR Z" msgstr "Avance Z" -#: AppDatabase.py:174 AppDatabase.py:864 AppDatabase.py:1359 +#: FlatCAMDB.py:172 FlatCAMDB.py:862 FlatCAMDB.py:1340 msgid "FR Rapids" msgstr "Avance Rapides" -#: AppDatabase.py:175 AppDatabase.py:866 AppDatabase.py:1232 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:222 +#: FlatCAMDB.py:173 FlatCAMDB.py:864 FlatCAMDB.py:1213 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:222 msgid "Spindle Speed" -msgstr "Vitesse du Foret" +msgstr "Vitesse de broche" -#: AppDatabase.py:176 AppDatabase.py:868 AppDatabase.py:1247 -#: AppGUI/ObjectUI.py:843 AppGUI/ObjectUI.py:1759 +#: FlatCAMDB.py:174 FlatCAMDB.py:866 FlatCAMDB.py:1228 +#: flatcamGUI/ObjectUI.py:1064 flatcamGUI/ObjectUI.py:1857 msgid "Dwell" -msgstr "Démarrage" +msgstr "Habiter" -#: AppDatabase.py:177 AppDatabase.py:870 AppDatabase.py:1260 +#: FlatCAMDB.py:175 FlatCAMDB.py:868 FlatCAMDB.py:1241 msgid "Dwelltime" msgstr "Temps d'attente" -#: AppDatabase.py:178 AppDatabase.py:872 AppGUI/ObjectUI.py:1916 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:257 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:255 -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:237 -#: AppTools/ToolSolderPaste.py:331 +#: FlatCAMDB.py:176 FlatCAMDB.py:870 flatcamGUI/ObjectUI.py:2014 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:257 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:254 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:237 +#: flatcamTools/ToolSolderPaste.py:335 msgid "Preprocessor" -msgstr "Pré-réglage" +msgstr "Post-processeur" -#: AppDatabase.py:179 AppDatabase.py:874 AppDatabase.py:1375 +#: FlatCAMDB.py:177 FlatCAMDB.py:872 FlatCAMDB.py:1356 msgid "ExtraCut" -msgstr "Coupe suppl" +msgstr "Coupe supp." -#: AppDatabase.py:180 AppDatabase.py:876 AppDatabase.py:1390 +#: FlatCAMDB.py:178 FlatCAMDB.py:874 FlatCAMDB.py:1371 msgid "E-Cut Length" -msgstr "L-Coupe suppl" +msgstr "L-Coupe supp." -#: AppDatabase.py:181 AppDatabase.py:878 +#: FlatCAMDB.py:179 FlatCAMDB.py:876 msgid "Toolchange" msgstr "Changement d'outil" -#: AppDatabase.py:182 AppDatabase.py:880 +#: FlatCAMDB.py:180 FlatCAMDB.py:878 msgid "Toolchange XY" msgstr "Changement d'outils X, Y" -#: AppDatabase.py:183 AppDatabase.py:882 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:160 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:132 -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:98 -#: AppTools/ToolCalibration.py:111 +#: FlatCAMDB.py:181 FlatCAMDB.py:880 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:160 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:131 +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:98 +#: flatcamTools/ToolCalibration.py:111 msgid "Toolchange Z" msgstr "Changement d'outil Z" -#: AppDatabase.py:184 AppDatabase.py:884 AppGUI/ObjectUI.py:972 -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:69 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:56 +#: FlatCAMDB.py:182 FlatCAMDB.py:882 flatcamGUI/ObjectUI.py:1193 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:69 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:54 msgid "Start Z" msgstr "Démarrer Z" -#: AppDatabase.py:185 AppDatabase.py:887 +#: FlatCAMDB.py:183 FlatCAMDB.py:885 msgid "End Z" msgstr "Fin Z" -#: AppDatabase.py:189 +#: FlatCAMDB.py:187 msgid "Tool Index." -msgstr "Outils index." +msgstr "Index d'outils." -#: AppDatabase.py:191 AppDatabase.py:1108 +#: FlatCAMDB.py:189 FlatCAMDB.py:1089 msgid "" "Tool name.\n" "This is not used in the app, it's function\n" "is to serve as a note for the user." msgstr "" "Nom de l'outil.\n" -"N'est pas utilisé dans l'application, cette fonction\n" -"serre de note pour les utilisateurs." +"Ce n'est pas utilisé dans l'application, c'est la fonction\n" +"est de servir de note pour le u." -#: AppDatabase.py:195 AppDatabase.py:1121 +#: FlatCAMDB.py:193 FlatCAMDB.py:1102 msgid "Tool Diameter." msgstr "Diamètre de l'outil." -#: AppDatabase.py:197 AppDatabase.py:1302 +#: FlatCAMDB.py:195 FlatCAMDB.py:1283 msgid "" "Tool Offset.\n" "Can be of a few types:\n" @@ -258,22 +1966,22 @@ msgid "" "Custom = custom offset using the Custom Offset value" msgstr "" "Décalage d'outil.\n" -"Peut être de différents types:\n" +"Peut être de quelques types:\n" "Chemin = décalage zéro\n" -"Intérieur = décalé à l'intérieur de la moitié du diamètre de l'outil\n" +"À l'INtérieur = décalé à l'intérieur de la moitié du diamètre de l'outil\n" "Extérieur = décalé à l'extérieur de la moitié du diamètre de l'outil\n" "Personnalisé = décalage personnalisé à l'aide de la valeur de décalage " "personnalisé" -#: AppDatabase.py:204 AppDatabase.py:1319 +#: FlatCAMDB.py:202 FlatCAMDB.py:1300 msgid "" "Custom Offset.\n" "A value to be used as offset from the current path." msgstr "" "Décalage personnalisé.\n" -"Valeur à utiliser comme décalage par rapport a l'existant." +"Une valeur à utiliser comme décalage par rapport au chemin actuel." -#: AppDatabase.py:207 AppDatabase.py:1286 +#: FlatCAMDB.py:205 FlatCAMDB.py:1267 msgid "" "Tool Type.\n" "Can be:\n" @@ -287,7 +1995,7 @@ msgstr "" "Rugueux = coupe grossière, faible avance, passes multiples\n" "Finition = coupe de finition, avance élevée" -#: AppDatabase.py:213 AppDatabase.py:1134 +#: FlatCAMDB.py:211 FlatCAMDB.py:1115 msgid "" "Tool Shape. \n" "Can be:\n" @@ -301,15 +2009,15 @@ msgstr "" "B = outil de fraisage à pointe sphérique\n" "V = outil de fraisage en forme de V" -#: AppDatabase.py:219 AppDatabase.py:1150 +#: FlatCAMDB.py:217 FlatCAMDB.py:1131 msgid "" "Cutting Depth.\n" "The depth at which to cut into material." msgstr "" "Profondeur de coupe.\n" -"Profondeur de la gravure." +"La profondeur à laquelle couper en matériau." -#: AppDatabase.py:222 AppDatabase.py:1164 +#: FlatCAMDB.py:220 FlatCAMDB.py:1145 msgid "" "Multi Depth.\n" "Selecting this will allow cutting in multiple passes,\n" @@ -317,18 +2025,18 @@ msgid "" msgstr "" "Profondeur multi.\n" "La sélection de cette option permettra de couper en plusieurs passes,\n" -"chaque passe en ajoutant une profondeur de Gravure DPP (profondeur par " +"chaque passe en ajoutant une profondeur de paramètre DPP (profondeur par " "passe)." -#: AppDatabase.py:226 AppDatabase.py:1177 +#: FlatCAMDB.py:224 FlatCAMDB.py:1158 msgid "" "DPP. Depth per Pass.\n" "The value used to cut into material on each pass." msgstr "" "DPP. Profondeur par passe.\n" -"La valeur utilisée pour graver le matériau à chaque passage." +"La valeur utilisée pour couper le matériau à chaque passage." -#: AppDatabase.py:229 AppDatabase.py:1333 +#: FlatCAMDB.py:227 FlatCAMDB.py:1314 msgid "" "V-Dia.\n" "Diameter of the tip for V-Shape Tools." @@ -336,15 +2044,15 @@ msgstr "" "Diamètre en V.\n" "Diamètre de la pointe pour les outils en forme de V." -#: AppDatabase.py:232 AppDatabase.py:1347 +#: FlatCAMDB.py:230 FlatCAMDB.py:1328 msgid "" "V-Agle.\n" "Angle at the tip for the V-Shape Tools." msgstr "" -"V-Angle.\n" -"Angle de la pointe pour les outils en forme de V." +"V-Agle.\n" +"Angle à la pointe pour les outils en forme de V." -#: AppDatabase.py:235 AppDatabase.py:1191 +#: FlatCAMDB.py:233 FlatCAMDB.py:1172 msgid "" "Clearance Height.\n" "Height at which the milling bit will travel between cuts,\n" @@ -352,9 +2060,9 @@ msgid "" msgstr "" "Hauteur de dégagement.\n" "Hauteur à laquelle la fraise se déplacera entre les coupes,\n" -"au-dessus de la surface du matériau, en évitant tous les obstacles." +"au-dessus de la surface du matériau, en évitant tous les luminaires." -#: AppDatabase.py:239 +#: FlatCAMDB.py:237 msgid "" "FR. Feedrate\n" "The speed on XY plane used while cutting into material." @@ -362,7 +2070,7 @@ msgstr "" "FR. Vitesse d'avance\n" "La vitesse sur le plan XY utilisée lors de la découpe du matériau." -#: AppDatabase.py:242 +#: FlatCAMDB.py:240 msgid "" "FR Z. Feedrate Z\n" "The speed on Z plane." @@ -370,20 +2078,20 @@ msgstr "" "FR Z. Avance Z\n" "La vitesse sur le plan Z." -#: AppDatabase.py:245 AppDatabase.py:1361 +#: FlatCAMDB.py:243 FlatCAMDB.py:1342 msgid "" "FR Rapids. Feedrate Rapids\n" "Speed used while moving as fast as possible.\n" "This is used only by some devices that can't use\n" "the G0 g-code command. Mostly 3D printers." msgstr "" -"FR Rapids. Avance rapides \n" +"FR Rapids. Rapides d'avance\n" "Vitesse utilisée en se déplaçant le plus vite possible.\n" "Ceci est utilisé uniquement par certains appareils qui ne peuvent pas " "utiliser\n" -"la commande g-code G0 . Principalement sur les imprimantes 3D." +"la commande G0 g-code. Principalement des imprimantes 3D." -#: AppDatabase.py:250 AppDatabase.py:1234 +#: FlatCAMDB.py:248 FlatCAMDB.py:1215 msgid "" "Spindle Speed.\n" "If it's left empty it will not be used.\n" @@ -393,17 +2101,17 @@ msgstr "" "S'il est laissé vide, il ne sera pas utilisé.\n" "La vitesse du moteur en tr / min." -#: AppDatabase.py:254 AppDatabase.py:1249 +#: FlatCAMDB.py:252 FlatCAMDB.py:1230 msgid "" "Dwell.\n" "Check this if a delay is needed to allow\n" "the spindle motor to reach it's set speed." msgstr "" -"Démarrage Moteur.\n" +"Habiter.\n" "Cochez cette case si un délai est nécessaire pour permettre\n" -"au moteur d'atteindre sa vitesse définie." +"le moteur pour atteindre sa vitesse définie." -#: AppDatabase.py:258 AppDatabase.py:1262 +#: FlatCAMDB.py:256 FlatCAMDB.py:1243 msgid "" "Dwell Time.\n" "A delay used to allow the motor spindle reach it's set speed." @@ -411,17 +2119,17 @@ msgstr "" "Temps d'attente.\n" "Un délai utilisé pour permettre au moteur d'atteindre sa vitesse définie." -#: AppDatabase.py:261 +#: FlatCAMDB.py:259 msgid "" "Preprocessor.\n" "A selection of files that will alter the generated G-code\n" "to fit for a number of use cases." msgstr "" -"Préréglage.\n" +"Préprocesseur.\n" "Une sélection de fichiers qui modifieront le G-code généré\n" "pour s'adapter à un certain nombre de cas d'utilisation." -#: AppDatabase.py:265 AppDatabase.py:1377 +#: FlatCAMDB.py:263 FlatCAMDB.py:1358 msgid "" "Extra Cut.\n" "If checked, after a isolation is finished an extra cut\n" @@ -432,10 +2140,10 @@ msgstr "" "Coupe supplémentaire.\n" "Si coché, une fois l'isolement terminé, une coupe supplémentaire\n" "sera ajouté là où le début et la fin de l'isolement se rencontrent\n" -"de sorte que ce point soit couvert par cette coupe supplémentaire\n" -"pour assurer une isolation complète." +"tel que ce point est couvert par cette coupe supplémentaire\n" +"assurer une isolation complète." -#: AppDatabase.py:271 AppDatabase.py:1392 +#: FlatCAMDB.py:269 FlatCAMDB.py:1373 msgid "" "Extra Cut length.\n" "If checked, after a isolation is finished an extra cut\n" @@ -445,9 +2153,13 @@ msgid "" "the extra cut." msgstr "" "Longueur de coupe supplémentaire.\n" -"Valeur de réglage de la coupe supplémentaire." +"Si coché, une fois l'isolement terminé, une coupe supplémentaire\n" +"sera ajouté là où le début et la fin de l'isolement se rencontrent\n" +"tel que ce point est couvert par cette coupe supplémentaire\n" +"assurer une isolation complète. C'est la longueur de\n" +"la coupe supplémentaire." -#: AppDatabase.py:278 +#: FlatCAMDB.py:276 msgid "" "Toolchange.\n" "It will create a toolchange event.\n" @@ -457,9 +2169,9 @@ msgstr "" "Changement d'outil.\n" "Il créera un événement de changement d'outil.\n" "Le type de changement d'outils est déterminé par\n" -"le fichier de préréglages." +"le fichier du préprocesseur." -#: AppDatabase.py:283 +#: FlatCAMDB.py:281 msgid "" "Toolchange XY.\n" "A set of coordinates in the format (x, y).\n" @@ -471,201 +2183,158 @@ msgstr "" "Déterminera la position cartésienne du point\n" "où l'événement de changement d'outil a lieu." -#: AppDatabase.py:288 +#: FlatCAMDB.py:286 msgid "" "Toolchange Z.\n" "The position on Z plane where the tool change event take place." msgstr "" "Changement d'outil Z.\n" -"Hauteur où l'événement de changement d'outil a lieu." +"La position sur le plan Z où l'événement de changement d'outil a lieu." -#: AppDatabase.py:291 +#: FlatCAMDB.py:289 msgid "" "Start Z.\n" "If it's left empty it will not be used.\n" "A position on Z plane to move immediately after job start." msgstr "" -"Hauteur de Démarrage.\n" +"Démarrez Z.\n" "S'il est laissé vide, il ne sera pas utilisé.\n" -"Position en hauteur du déplacement immédiat au début du travail." +"Une position sur le plan Z pour se déplacer immédiatement après le début du " +"travail." -#: AppDatabase.py:295 +#: FlatCAMDB.py:293 msgid "" "End Z.\n" "A position on Z plane to move immediately after job stop." msgstr "" -"Hauteur de Fin.\n" -"hauteur pour se déplacer immédiatement après l'arrêt du travail." +"Fin Z.\n" +"Une position sur le plan Z pour se déplacer immédiatement après l'arrêt du " +"travail." -#: AppDatabase.py:307 AppDatabase.py:684 AppDatabase.py:718 AppDatabase.py:2033 -#: AppDatabase.py:2298 AppDatabase.py:2332 +#: FlatCAMDB.py:305 FlatCAMDB.py:682 FlatCAMDB.py:716 FlatCAMDB.py:1898 +#: FlatCAMDB.py:2144 FlatCAMDB.py:2178 msgid "Could not load Tools DB file." msgstr "Impossible de charger le fichier BD des outils." -#: AppDatabase.py:315 AppDatabase.py:726 AppDatabase.py:2041 -#: AppDatabase.py:2340 +#: FlatCAMDB.py:313 FlatCAMDB.py:724 FlatCAMDB.py:1906 FlatCAMDB.py:2186 msgid "Failed to parse Tools DB file." msgstr "Échec de l'analyse du fichier BD des outils." -#: AppDatabase.py:318 AppDatabase.py:729 AppDatabase.py:2044 -#: AppDatabase.py:2343 -msgid "Loaded Tools DB from" -msgstr "Base de données des outils chargés" +#: FlatCAMDB.py:316 FlatCAMDB.py:727 FlatCAMDB.py:1909 FlatCAMDB.py:2189 +msgid "Loaded FlatCAM Tools DB from" +msgstr "Base de données des outils FlatCAM chargée depuis" -#: AppDatabase.py:324 AppDatabase.py:1958 +#: FlatCAMDB.py:322 FlatCAMDB.py:1823 msgid "Add to DB" msgstr "Ajouter à la BD" -#: AppDatabase.py:326 AppDatabase.py:1961 +#: FlatCAMDB.py:324 FlatCAMDB.py:1826 msgid "Copy from DB" msgstr "Copier depuis BD" -#: AppDatabase.py:328 AppDatabase.py:1964 +#: FlatCAMDB.py:326 FlatCAMDB.py:1829 msgid "Delete from DB" -msgstr "Suppression de la BD" +msgstr "Supprimer de la BD" -#: AppDatabase.py:605 AppDatabase.py:2198 +#: FlatCAMDB.py:603 FlatCAMDB.py:2044 msgid "Tool added to DB." msgstr "Outil ajouté à BD." -#: AppDatabase.py:626 AppDatabase.py:2231 +#: FlatCAMDB.py:624 FlatCAMDB.py:2077 msgid "Tool copied from Tools DB." msgstr "Outil copié à partir de la BD d'outils." -#: AppDatabase.py:644 AppDatabase.py:2258 +#: FlatCAMDB.py:642 FlatCAMDB.py:2104 msgid "Tool removed from Tools DB." msgstr "Outil supprimé de la BD d'outils." -#: AppDatabase.py:655 AppDatabase.py:2269 +#: FlatCAMDB.py:653 FlatCAMDB.py:2115 msgid "Export Tools Database" msgstr "Exporter la BD des outils" -#: AppDatabase.py:658 AppDatabase.py:2272 +#: FlatCAMDB.py:656 FlatCAMDB.py:2118 msgid "Tools_Database" msgstr "Base de données d'outils" -#: AppDatabase.py:665 AppDatabase.py:711 AppDatabase.py:2279 -#: AppDatabase.py:2325 AppEditors/FlatCAMExcEditor.py:1023 -#: AppEditors/FlatCAMExcEditor.py:1091 AppEditors/FlatCAMTextEditor.py:223 -#: AppGUI/MainGUI.py:2730 AppGUI/MainGUI.py:2952 AppGUI/MainGUI.py:3167 -#: AppObjects/ObjectCollection.py:127 AppTools/ToolFilm.py:739 -#: AppTools/ToolFilm.py:885 AppTools/ToolImage.py:247 AppTools/ToolMove.py:269 -#: AppTools/ToolPcbWizard.py:301 AppTools/ToolPcbWizard.py:324 -#: AppTools/ToolQRCode.py:800 AppTools/ToolQRCode.py:847 App_Main.py:1710 -#: App_Main.py:2451 App_Main.py:2487 App_Main.py:2534 App_Main.py:4100 -#: App_Main.py:6610 App_Main.py:6649 App_Main.py:6693 App_Main.py:6722 -#: App_Main.py:6763 App_Main.py:6788 App_Main.py:6844 App_Main.py:6880 -#: App_Main.py:6925 App_Main.py:6966 App_Main.py:7008 App_Main.py:7050 -#: App_Main.py:7091 App_Main.py:7135 App_Main.py:7195 App_Main.py:7227 -#: App_Main.py:7259 App_Main.py:7490 App_Main.py:7528 App_Main.py:7571 -#: App_Main.py:7648 App_Main.py:7703 Bookmark.py:300 Bookmark.py:342 -msgid "Cancelled." -msgstr "Annulé." - -#: AppDatabase.py:673 AppDatabase.py:2287 AppEditors/FlatCAMTextEditor.py:276 -#: AppObjects/FlatCAMCNCJob.py:959 AppTools/ToolFilm.py:1016 -#: AppTools/ToolFilm.py:1197 AppTools/ToolSolderPaste.py:1542 App_Main.py:2542 -#: App_Main.py:7947 App_Main.py:7995 App_Main.py:8120 App_Main.py:8256 -#: Bookmark.py:308 -msgid "" -"Permission denied, saving not possible.\n" -"Most likely another app is holding the file open and not accessible." -msgstr "" -"Autorisation refusée, Sauvegarde impossible.\n" -"Fichier ouvert dans une autre application. Fermé le fichier." - -#: AppDatabase.py:695 AppDatabase.py:698 AppDatabase.py:750 AppDatabase.py:2309 -#: AppDatabase.py:2312 AppDatabase.py:2365 +#: FlatCAMDB.py:693 FlatCAMDB.py:696 FlatCAMDB.py:748 FlatCAMDB.py:2155 +#: FlatCAMDB.py:2158 FlatCAMDB.py:2211 msgid "Failed to write Tools DB to file." -msgstr "Échec d'écriture du fichier de base de données des outils." +msgstr "Échec de l'écriture de la base de données des outils dans le fichier." -#: AppDatabase.py:701 AppDatabase.py:2315 +#: FlatCAMDB.py:699 FlatCAMDB.py:2161 msgid "Exported Tools DB to" msgstr "Base de données d'outils exportée vers" -#: AppDatabase.py:708 AppDatabase.py:2322 +#: FlatCAMDB.py:706 FlatCAMDB.py:2168 msgid "Import FlatCAM Tools DB" msgstr "Importer la BD des outils FlatCAM" -#: AppDatabase.py:740 AppDatabase.py:915 AppDatabase.py:2354 -#: AppDatabase.py:2624 AppObjects/FlatCAMGeometry.py:956 -#: AppTools/ToolIsolation.py:2909 AppTools/ToolIsolation.py:2994 -#: AppTools/ToolNCC.py:4029 AppTools/ToolNCC.py:4113 AppTools/ToolPaint.py:3578 -#: AppTools/ToolPaint.py:3663 App_Main.py:5233 App_Main.py:5267 -#: App_Main.py:5294 App_Main.py:5314 App_Main.py:5324 -msgid "Tools Database" -msgstr "Base de données d'outils" - -#: AppDatabase.py:754 AppDatabase.py:2369 +#: FlatCAMDB.py:752 FlatCAMDB.py:2215 msgid "Saved Tools DB." msgstr "Sauvegarde de la BD des outils." -#: AppDatabase.py:901 AppDatabase.py:2611 +#: FlatCAMDB.py:899 FlatCAMDB.py:2405 msgid "No Tool/row selected in the Tools Database table" -msgstr "Aucun outil/ligne sélectionné dans le tableau de la BD d'outils" +msgstr "Aucun outil / ligne sélectionné dans le tableau de la BD d'outils" -#: AppDatabase.py:919 AppDatabase.py:2628 +#: FlatCAMDB.py:917 FlatCAMDB.py:2422 msgid "Cancelled adding tool from DB." -msgstr "Ajout d'outil de la BD abandonné." +msgstr "Outil d'ajout de la BD annulé." -#: AppDatabase.py:1020 +#: FlatCAMDB.py:1018 msgid "Basic Geo Parameters" msgstr "Paramètres Geo de base" -#: AppDatabase.py:1032 +#: FlatCAMDB.py:1030 msgid "Advanced Geo Parameters" msgstr "Paramètres Geo avancés" -#: AppDatabase.py:1045 +#: FlatCAMDB.py:1042 msgid "NCC Parameters" msgstr "Paramètres NCC" -#: AppDatabase.py:1058 +#: FlatCAMDB.py:1054 msgid "Paint Parameters" msgstr "Paramètres de Peindre" -#: AppDatabase.py:1071 -msgid "Isolation Parameters" -msgstr "Paramètres d'isolement" - -#: AppDatabase.py:1204 AppGUI/ObjectUI.py:746 AppGUI/ObjectUI.py:1671 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:186 -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:148 -#: AppTools/ToolSolderPaste.py:249 +#: FlatCAMDB.py:1185 flatcamGUI/ObjectUI.py:967 flatcamGUI/ObjectUI.py:1769 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:185 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:148 +#: flatcamTools/ToolSolderPaste.py:253 msgid "Feedrate X-Y" -msgstr "Vitesse de déplacement" +msgstr "Avance X-Y" -#: AppDatabase.py:1206 +#: FlatCAMDB.py:1187 msgid "" "Feedrate X-Y. Feedrate\n" "The speed on XY plane used while cutting into material." msgstr "" -"Déplacement X-Y. Vitesse d'avance\n" +"Avance X-Y. Vitesse d'avance\n" "La vitesse sur le plan XY utilisée lors de la découpe du matériau." -#: AppDatabase.py:1218 AppGUI/ObjectUI.py:761 AppGUI/ObjectUI.py:1685 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:207 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:201 -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:161 -#: AppTools/ToolSolderPaste.py:261 +#: FlatCAMDB.py:1199 flatcamGUI/ObjectUI.py:982 flatcamGUI/ObjectUI.py:1783 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:207 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:200 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:161 +#: flatcamTools/ToolSolderPaste.py:265 msgid "Feedrate Z" -msgstr "Déplacements Hauteur" +msgstr "Avance Z" -#: AppDatabase.py:1220 +#: FlatCAMDB.py:1201 msgid "" "Feedrate Z\n" "The speed on Z plane." msgstr "" -"Monter/Descente \n" -"La vitesse sur l'axe Z." +"Avance Z\n" +"La vitesse sur l'avion Z." -#: AppDatabase.py:1418 AppGUI/ObjectUI.py:624 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:46 -#: AppTools/ToolNCC.py:341 +#: FlatCAMDB.py:1399 flatcamGUI/ObjectUI.py:845 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:46 +#: flatcamTools/ToolNCC.py:341 msgid "Operation" msgstr "Opération" -#: AppDatabase.py:1420 AppTools/ToolNCC.py:343 +#: FlatCAMDB.py:1401 flatcamTools/ToolNCC.py:343 msgid "" "The 'Operation' can be:\n" "- Isolation -> will ensure that the non-copper clearing is always complete.\n" @@ -673,74 +2342,68 @@ msgid "" "- Clear -> the regular non-copper clearing." msgstr "" "L'opération peut être:\n" -"- Isolé -> veillera à ce que la clairance sans cuivre soit toujours " +"- Isolement -> veillera à ce que la clairance sans cuivre soit toujours " "complète.\n" "Si cela ne réussit pas, alors le clearing sans cuivre échouera aussi.\n" -"- Nettoyer -> le clearing régulier sans cuivre." +"- Clair -> le clearing régulier sans cuivre." -#: AppDatabase.py:1427 AppEditors/FlatCAMGrbEditor.py:2749 -#: AppGUI/GUIElements.py:2754 AppTools/ToolNCC.py:350 +#: FlatCAMDB.py:1408 flatcamEditors/FlatCAMGrbEditor.py:2742 +#: flatcamGUI/GUIElements.py:2577 flatcamTools/ToolNCC.py:350 msgid "Clear" -msgstr "Nettoyer" +msgstr "Effacer" -#: AppDatabase.py:1428 AppTools/ToolNCC.py:351 +#: FlatCAMDB.py:1409 flatcamTools/ToolNCC.py:351 flatcamTools/ToolNCC.py:1623 msgid "Isolation" -msgstr "Isolé" +msgstr "Isolement" -#: AppDatabase.py:1436 AppDatabase.py:1682 AppGUI/ObjectUI.py:646 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:62 -#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:56 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:182 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:137 -#: AppTools/ToolIsolation.py:351 AppTools/ToolNCC.py:359 +#: FlatCAMDB.py:1417 flatcamGUI/ObjectUI.py:409 flatcamGUI/ObjectUI.py:867 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:62 +#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:56 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:95 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:137 +#: flatcamTools/ToolNCC.py:359 msgid "Milling Type" msgstr "Type de fraisage" -#: AppDatabase.py:1438 AppDatabase.py:1446 AppDatabase.py:1684 -#: AppDatabase.py:1692 AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:184 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:192 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:139 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:147 -#: AppTools/ToolIsolation.py:353 AppTools/ToolIsolation.py:361 -#: AppTools/ToolNCC.py:361 AppTools/ToolNCC.py:369 +#: FlatCAMDB.py:1419 FlatCAMDB.py:1427 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:139 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:147 +#: flatcamTools/ToolNCC.py:361 flatcamTools/ToolNCC.py:369 msgid "" "Milling type when the selected tool is of type: 'iso_op':\n" "- climb / best for precision milling and to reduce tool usage\n" "- conventional / useful when there is no backlash compensation" msgstr "" "Type de fraisage lorsque l'outil sélectionné est de type: 'iso_op':\n" -"- montée : idéal pour le fraisage de précision et pour réduire l'utilisation " +"- montée / idéal pour le fraisage de précision et pour réduire l'utilisation " "d'outils\n" -"- conventionnel : utile quand il n'y a pas de compensation de jeu" +"- conventionnel / utile quand il n'y a pas de compensation de jeu" -#: AppDatabase.py:1443 AppDatabase.py:1689 -#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:62 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:189 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:144 -#: AppTools/ToolIsolation.py:358 AppTools/ToolNCC.py:366 +#: FlatCAMDB.py:1424 flatcamGUI/ObjectUI.py:415 +#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:62 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:102 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:144 +#: flatcamTools/ToolNCC.py:366 msgid "Climb" msgstr "Monté" -#: AppDatabase.py:1444 AppDatabase.py:1690 -#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:63 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:190 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:145 -#: AppTools/ToolIsolation.py:359 AppTools/ToolNCC.py:367 +#: FlatCAMDB.py:1425 flatcamGUI/ObjectUI.py:416 +#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:63 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:103 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:145 +#: flatcamTools/ToolNCC.py:367 msgid "Conventional" msgstr "Conventionnel" -#: AppDatabase.py:1456 AppDatabase.py:1565 AppDatabase.py:1667 -#: AppEditors/FlatCAMGeoEditor.py:450 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:167 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:182 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:163 -#: AppTools/ToolIsolation.py:336 AppTools/ToolNCC.py:382 -#: AppTools/ToolPaint.py:328 +#: FlatCAMDB.py:1437 FlatCAMDB.py:1546 flatcamEditors/FlatCAMGeoEditor.py:451 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:182 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:163 +#: flatcamTools/ToolNCC.py:382 flatcamTools/ToolPaint.py:329 msgid "Overlap" msgstr "Chevauchement" -#: AppDatabase.py:1458 AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:184 -#: AppTools/ToolNCC.py:384 +#: FlatCAMDB.py:1439 flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:184 +#: flatcamTools/ToolNCC.py:384 msgid "" "How much (percentage) of the tool width to overlap each tool pass.\n" "Adjust the value starting with lower values\n" @@ -753,53 +2416,52 @@ msgstr "" "La quantité (pourcentage) de la largeur d'outil qui chevauche chaque passe " "d'outil.\n" "Ajustez la valeur en commençant par des valeurs inférieures\n" -"et l'augmenter si les zones qui doivent être nettoyées sont mal effacé.\n" +"et l'augmenter si les zones qui doivent être nettoyées sont encore\n" +"pas effacé.\n" "Valeurs inférieures = traitement plus rapide, exécution plus rapide sur " "CNC.\n" "Valeurs supérieures = traitement lent et exécution lente sur CNC\n" "en raison de trop de chemins." -#: AppDatabase.py:1477 AppDatabase.py:1586 AppEditors/FlatCAMGeoEditor.py:470 -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:72 -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:229 -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:59 -#: AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py:45 -#: AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py:53 -#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:66 -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:115 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:202 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:183 -#: AppTools/ToolCopperThieving.py:115 AppTools/ToolCopperThieving.py:366 -#: AppTools/ToolCorners.py:149 AppTools/ToolCutOut.py:190 -#: AppTools/ToolFiducials.py:175 AppTools/ToolInvertGerber.py:91 -#: AppTools/ToolInvertGerber.py:99 AppTools/ToolNCC.py:403 -#: AppTools/ToolPaint.py:349 +#: FlatCAMDB.py:1458 FlatCAMDB.py:1567 flatcamEditors/FlatCAMGeoEditor.py:471 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:72 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:229 +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:59 +#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:45 +#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:53 +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:115 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:202 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:183 +#: flatcamTools/ToolCopperThieving.py:111 +#: flatcamTools/ToolCopperThieving.py:362 flatcamTools/ToolCutOut.py:190 +#: flatcamTools/ToolFiducials.py:172 flatcamTools/ToolInvertGerber.py:88 +#: flatcamTools/ToolInvertGerber.py:96 flatcamTools/ToolNCC.py:403 +#: flatcamTools/ToolPaint.py:350 msgid "Margin" msgstr "Marge" -#: AppDatabase.py:1479 -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:74 -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:61 -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:125 -#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:68 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:204 -#: AppTools/ToolCopperThieving.py:117 AppTools/ToolCorners.py:151 -#: AppTools/ToolFiducials.py:177 AppTools/ToolNCC.py:405 +#: FlatCAMDB.py:1460 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:74 +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:61 +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:125 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:204 +#: flatcamTools/ToolCopperThieving.py:113 flatcamTools/ToolFiducials.py:174 +#: flatcamTools/ToolFiducials.py:237 flatcamTools/ToolNCC.py:405 msgid "Bounding box margin." msgstr "Marge du cadre de sélection." -#: AppDatabase.py:1490 AppDatabase.py:1601 AppEditors/FlatCAMGeoEditor.py:484 -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:105 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:106 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:215 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:198 -#: AppTools/ToolExtractDrills.py:128 AppTools/ToolNCC.py:416 -#: AppTools/ToolPaint.py:364 AppTools/ToolPunchGerber.py:139 +#: FlatCAMDB.py:1471 FlatCAMDB.py:1582 flatcamEditors/FlatCAMGeoEditor.py:485 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:105 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:106 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:215 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:198 +#: flatcamTools/ToolExtractDrills.py:128 flatcamTools/ToolNCC.py:416 +#: flatcamTools/ToolPaint.py:365 flatcamTools/ToolPunchGerber.py:139 msgid "Method" msgstr "Méthode" -#: AppDatabase.py:1492 AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:217 -#: AppTools/ToolNCC.py:418 +#: FlatCAMDB.py:1473 flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:217 +#: flatcamTools/ToolNCC.py:418 msgid "" "Algorithm for copper clearing:\n" "- Standard: Fixed step inwards.\n" @@ -811,57 +2473,52 @@ msgstr "" "- À base de graines: à l'extérieur des graines.\n" "- Ligne: lignes parallèles." -#: AppDatabase.py:1500 AppDatabase.py:1615 AppEditors/FlatCAMGeoEditor.py:498 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:230 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217 -#: AppTools/ToolNCC.py:431 AppTools/ToolNCC.py:2232 AppTools/ToolNCC.py:2764 -#: AppTools/ToolNCC.py:2796 AppTools/ToolPaint.py:389 -#: AppTools/ToolPaint.py:1859 tclCommands/TclCommandCopperClear.py:126 +#: FlatCAMDB.py:1481 FlatCAMDB.py:1596 flatcamEditors/FlatCAMGeoEditor.py:499 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:230 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217 +#: flatcamTools/ToolNCC.py:431 flatcamTools/ToolNCC.py:2395 +#: flatcamTools/ToolNCC.py:2424 flatcamTools/ToolNCC.py:2693 +#: flatcamTools/ToolNCC.py:2725 flatcamTools/ToolPaint.py:390 +#: flatcamTools/ToolPaint.py:1834 tclCommands/TclCommandCopperClear.py:126 #: tclCommands/TclCommandCopperClear.py:134 tclCommands/TclCommandPaint.py:125 msgid "Standard" -msgstr "Standard" +msgstr "La norme" -#: AppDatabase.py:1500 AppDatabase.py:1615 AppEditors/FlatCAMGeoEditor.py:498 -#: AppEditors/FlatCAMGeoEditor.py:568 AppEditors/FlatCAMGeoEditor.py:5148 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:230 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217 -#: AppTools/ToolNCC.py:431 AppTools/ToolNCC.py:2243 AppTools/ToolNCC.py:2770 -#: AppTools/ToolNCC.py:2802 AppTools/ToolPaint.py:389 -#: AppTools/ToolPaint.py:1873 defaults.py:413 defaults.py:445 -#: tclCommands/TclCommandCopperClear.py:128 +#: FlatCAMDB.py:1481 FlatCAMDB.py:1596 defaults.py:395 defaults.py:427 +#: flatcamEditors/FlatCAMGeoEditor.py:499 +#: flatcamEditors/FlatCAMGeoEditor.py:569 +#: flatcamEditors/FlatCAMGeoEditor.py:5152 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:230 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217 +#: flatcamTools/ToolNCC.py:431 flatcamTools/ToolNCC.py:2401 +#: flatcamTools/ToolNCC.py:2429 flatcamTools/ToolNCC.py:2699 +#: flatcamTools/ToolNCC.py:2731 flatcamTools/ToolPaint.py:390 +#: flatcamTools/ToolPaint.py:1848 tclCommands/TclCommandCopperClear.py:128 #: tclCommands/TclCommandCopperClear.py:136 tclCommands/TclCommandPaint.py:127 msgid "Seed" msgstr "La graine" -#: AppDatabase.py:1500 AppDatabase.py:1615 AppEditors/FlatCAMGeoEditor.py:498 -#: AppEditors/FlatCAMGeoEditor.py:5152 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:230 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217 -#: AppTools/ToolNCC.py:431 AppTools/ToolNCC.py:2254 AppTools/ToolPaint.py:389 -#: AppTools/ToolPaint.py:698 AppTools/ToolPaint.py:1887 +#: FlatCAMDB.py:1481 FlatCAMDB.py:1596 flatcamEditors/FlatCAMGeoEditor.py:499 +#: flatcamEditors/FlatCAMGeoEditor.py:5156 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:230 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217 +#: flatcamTools/ToolNCC.py:431 flatcamTools/ToolPaint.py:390 +#: flatcamTools/ToolPaint.py:699 flatcamTools/ToolPaint.py:1862 #: tclCommands/TclCommandCopperClear.py:130 tclCommands/TclCommandPaint.py:129 msgid "Lines" msgstr "Lignes" -#: AppDatabase.py:1500 AppDatabase.py:1615 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:230 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217 -#: AppTools/ToolNCC.py:431 AppTools/ToolNCC.py:2265 AppTools/ToolPaint.py:389 -#: AppTools/ToolPaint.py:2052 tclCommands/TclCommandPaint.py:133 -msgid "Combo" -msgstr "Combo" - -#: AppDatabase.py:1508 AppDatabase.py:1626 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:237 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:224 -#: AppTools/ToolNCC.py:439 AppTools/ToolPaint.py:400 +#: FlatCAMDB.py:1489 FlatCAMDB.py:1607 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:237 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:224 +#: flatcamTools/ToolNCC.py:439 flatcamTools/ToolPaint.py:401 msgid "Connect" msgstr "Relier" -#: AppDatabase.py:1512 AppDatabase.py:1629 AppEditors/FlatCAMGeoEditor.py:507 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:239 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:226 -#: AppTools/ToolNCC.py:443 AppTools/ToolPaint.py:403 +#: FlatCAMDB.py:1493 FlatCAMDB.py:1610 flatcamEditors/FlatCAMGeoEditor.py:508 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:239 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:226 +#: flatcamTools/ToolNCC.py:443 flatcamTools/ToolPaint.py:404 msgid "" "Draw lines between resulting\n" "segments to minimize tool lifts." @@ -869,17 +2526,17 @@ msgstr "" "Tracez des lignes entre les résultats\n" "segments pour minimiser les montées d’outil." -#: AppDatabase.py:1518 AppDatabase.py:1633 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:246 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:232 -#: AppTools/ToolNCC.py:449 AppTools/ToolPaint.py:407 +#: FlatCAMDB.py:1499 FlatCAMDB.py:1614 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:246 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:232 +#: flatcamTools/ToolNCC.py:449 flatcamTools/ToolPaint.py:408 msgid "Contour" msgstr "Contour" -#: AppDatabase.py:1522 AppDatabase.py:1636 AppEditors/FlatCAMGeoEditor.py:517 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:248 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:234 -#: AppTools/ToolNCC.py:453 AppTools/ToolPaint.py:410 +#: FlatCAMDB.py:1503 FlatCAMDB.py:1617 flatcamEditors/FlatCAMGeoEditor.py:518 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:248 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:234 +#: flatcamTools/ToolNCC.py:453 flatcamTools/ToolPaint.py:411 msgid "" "Cut around the perimeter of the polygon\n" "to trim rough edges." @@ -887,18 +2544,17 @@ msgstr "" "Couper autour du périmètre du polygone\n" "pour couper les bords rugueux." -#: AppDatabase.py:1528 AppEditors/FlatCAMGeoEditor.py:611 -#: AppEditors/FlatCAMGrbEditor.py:5305 AppGUI/ObjectUI.py:143 -#: AppGUI/ObjectUI.py:1394 AppGUI/ObjectUI.py:2256 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:255 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:142 -#: AppTools/ToolEtchCompensation.py:199 AppTools/ToolEtchCompensation.py:207 -#: AppTools/ToolNCC.py:459 AppTools/ToolTransform.py:28 +#: FlatCAMDB.py:1509 flatcamEditors/FlatCAMGeoEditor.py:612 +#: flatcamEditors/FlatCAMGrbEditor.py:5311 flatcamGUI/ObjectUI.py:143 +#: flatcamGUI/ObjectUI.py:1497 flatcamGUI/ObjectUI.py:2326 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:255 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:142 +#: flatcamTools/ToolNCC.py:459 flatcamTools/ToolTransform.py:28 msgid "Offset" msgstr "Décalage" -#: AppDatabase.py:1532 AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:257 -#: AppTools/ToolNCC.py:463 +#: FlatCAMDB.py:1513 flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:257 +#: flatcamTools/ToolNCC.py:463 msgid "" "If used, it will add an offset to the copper features.\n" "The copper clearing will finish to a distance\n" @@ -910,9 +2566,9 @@ msgstr "" "des caractéristiques de cuivre.\n" "La valeur peut être comprise entre 0 et 10 unités FlatCAM." -#: AppDatabase.py:1567 AppEditors/FlatCAMGeoEditor.py:452 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:165 -#: AppTools/ToolPaint.py:330 +#: FlatCAMDB.py:1548 flatcamEditors/FlatCAMGeoEditor.py:453 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:165 +#: flatcamTools/ToolPaint.py:331 msgid "" "How much (percentage) of the tool width to overlap each tool pass.\n" "Adjust the value starting with lower values\n" @@ -925,15 +2581,16 @@ msgstr "" "La quantité (pourcentage) de la largeur d'outil qui chevauche chaque passe " "d'outil.\n" "Ajustez la valeur en commençant par des valeurs inférieures\n" -"et l'augmenter si les zones à travaillé ne le sont pas.\n" +"et l'augmenter si les zones à peindre sont encore\n" +"pas peint.\n" "Valeurs inférieures = traitement plus rapide, exécution plus rapide sur " "CNC.\n" "Valeurs supérieures = traitement lent et exécution lente sur CNC\n" -"en raison de plus de chemins." +"en raison de trop de chemins." -#: AppDatabase.py:1588 AppEditors/FlatCAMGeoEditor.py:472 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:185 -#: AppTools/ToolPaint.py:351 +#: FlatCAMDB.py:1569 flatcamEditors/FlatCAMGeoEditor.py:473 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:185 +#: flatcamTools/ToolPaint.py:352 msgid "" "Distance by which to avoid\n" "the edges of the polygon to\n" @@ -941,10 +2598,10 @@ msgid "" msgstr "" "Distance à éviter\n" "les bords du polygone à\n" -"être travailler." +"être peint." -#: AppDatabase.py:1603 AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:200 -#: AppTools/ToolPaint.py:366 +#: FlatCAMDB.py:1584 flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:200 +#: flatcamTools/ToolPaint.py:367 msgid "" "Algorithm for painting:\n" "- Standard: Fixed step inwards.\n" @@ -965,257 +2622,485 @@ msgstr "" "précédentes\n" "dans l'ordre spécifié." -#: AppDatabase.py:1615 AppDatabase.py:1617 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217 -#: AppTools/ToolPaint.py:389 AppTools/ToolPaint.py:391 -#: AppTools/ToolPaint.py:692 AppTools/ToolPaint.py:697 -#: AppTools/ToolPaint.py:1901 tclCommands/TclCommandPaint.py:131 +#: FlatCAMDB.py:1596 FlatCAMDB.py:1598 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217 +#: flatcamTools/ToolPaint.py:390 flatcamTools/ToolPaint.py:392 +#: flatcamTools/ToolPaint.py:693 flatcamTools/ToolPaint.py:698 +#: flatcamTools/ToolPaint.py:1876 tclCommands/TclCommandPaint.py:131 msgid "Laser_lines" msgstr "Lignes_laser" -#: AppDatabase.py:1654 AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:154 -#: AppTools/ToolIsolation.py:323 -msgid "Passes" -msgstr "Passes" +#: FlatCAMDB.py:1596 flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217 +#: flatcamTools/ToolPaint.py:390 flatcamTools/ToolPaint.py:2027 +#: tclCommands/TclCommandPaint.py:133 +msgid "Combo" +msgstr "Combo" -#: AppDatabase.py:1656 AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:156 -#: AppTools/ToolIsolation.py:325 -msgid "" -"Width of the isolation gap in\n" -"number (integer) of tool widths." -msgstr "" -"Largeur du fossé d'isolement dans\n" -"nombre (entier) de largeurs d'outil." - -#: AppDatabase.py:1669 AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:169 -#: AppTools/ToolIsolation.py:338 -msgid "How much (percentage) of the tool width to overlap each tool pass." -msgstr "" -"La quantité (pourcentage) de la largeur d'outil qui chevauche chaque passe " -"d'outil." - -#: AppDatabase.py:1702 AppGUI/ObjectUI.py:236 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:201 -#: AppTools/ToolIsolation.py:371 -msgid "Follow" -msgstr "Suivre" - -#: AppDatabase.py:1704 AppDatabase.py:1710 AppGUI/ObjectUI.py:237 -#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:45 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:203 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:209 -#: AppTools/ToolIsolation.py:373 AppTools/ToolIsolation.py:379 -msgid "" -"Generate a 'Follow' geometry.\n" -"This means that it will cut through\n" -"the middle of the trace." -msgstr "" -"Générez une géométrie \"Suivre\".\n" -"Cela signifie qu'il va couper à travers\n" -"le milieu de la trace." - -#: AppDatabase.py:1719 AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:218 -#: AppTools/ToolIsolation.py:388 -msgid "Isolation Type" -msgstr "Type d'isolement" - -#: AppDatabase.py:1721 AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:220 -#: AppTools/ToolIsolation.py:390 -msgid "" -"Choose how the isolation will be executed:\n" -"- 'Full' -> complete isolation of polygons\n" -"- 'Ext' -> will isolate only on the outside\n" -"- 'Int' -> will isolate only on the inside\n" -"'Exterior' isolation is almost always possible\n" -"(with the right tool) but 'Interior'\n" -"isolation can be done only when there is an opening\n" -"inside of the polygon (e.g polygon is a 'doughnut' shape)." -msgstr "" -"Choisissez comment l'isolement sera exécuté:\n" -"- «Complet» -> isolation complète des polygones\n" -"- 'Extérieur' -> isolera uniquement à l'extérieur\n" -"- 'Intérieur' -> isolera uniquement à l'intérieur\n" -"L'isolement «extérieur» est presque toujours possible\n" -"(avec le bon outil) mais 'Intérieur'\n" -"l'isolement ne peut se faire que s'il y a une ouverture\n" -"à l'intérieur du polygone (par exemple, le polygone est une forme de `` " -"beignet '')." - -#: AppDatabase.py:1730 AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:75 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:229 -#: AppTools/ToolIsolation.py:399 -msgid "Full" -msgstr "Plein" - -#: AppDatabase.py:1731 AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:230 -#: AppTools/ToolIsolation.py:400 -msgid "Ext" -msgstr "Ext" - -#: AppDatabase.py:1732 AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:231 -#: AppTools/ToolIsolation.py:401 -msgid "Int" -msgstr "Int" - -#: AppDatabase.py:1755 +#: FlatCAMDB.py:1641 msgid "Add Tool in DB" msgstr "Ajouter un Outil dans la BD" -#: AppDatabase.py:1789 +#: FlatCAMDB.py:1675 msgid "Save DB" msgstr "Sauver BD" -#: AppDatabase.py:1791 +#: FlatCAMDB.py:1677 msgid "Save the Tools Database information's." msgstr "Enregistrez les informations de la base de données des outils." -#: AppDatabase.py:1797 -msgid "" -"Insert a new tool in the Tools Table of the\n" -"object/application tool after selecting a tool\n" -"in the Tools Database." -msgstr "" -"Insérez un nouvel outil dans le tableau des outils du\n" -"objet / outil d'application après avoir sélectionné un outil\n" -"dans la base de données d'outils." +#: FlatCAMProcess.py:172 +msgid "processes running." +msgstr "processus en cours d'exécution." -#: AppEditors/FlatCAMExcEditor.py:50 AppEditors/FlatCAMExcEditor.py:74 -#: AppEditors/FlatCAMExcEditor.py:168 AppEditors/FlatCAMExcEditor.py:385 -#: AppEditors/FlatCAMExcEditor.py:589 AppEditors/FlatCAMGrbEditor.py:241 -#: AppEditors/FlatCAMGrbEditor.py:248 +#: FlatCAMTool.py:245 FlatCAMTool.py:252 flatcamGUI/ObjectUI.py:157 +#: flatcamGUI/ObjectUI.py:164 +msgid "Edited value is out of range" +msgstr "La valeur modifiée est hors limites" + +#: FlatCAMTool.py:247 FlatCAMTool.py:254 flatcamGUI/ObjectUI.py:159 +#: flatcamGUI/ObjectUI.py:166 +msgid "Edited value is within limits." +msgstr "La valeur modifiée est dans les limites." + +#: FlatCAMTranslation.py:104 +msgid "The application will restart." +msgstr "L'application va redémarrer." + +#: FlatCAMTranslation.py:106 +msgid "Are you sure do you want to change the current language to" +msgstr "Etes-vous sûr de vouloir changer la langue actuelle en" + +#: FlatCAMTranslation.py:107 +msgid "Apply Language ..." +msgstr "Appliquer la langue ..." + +#: assets/linux/flatcam-beta.desktop:3 +msgid "FlatCAM Beta" +msgstr "FlatCAM Beta" + +#: assets/linux/flatcam-beta.desktop:7 +msgid "./assets/icon.png" +msgstr "./assets/icon.png" + +#: assets/linux/flatcam-beta.desktop:8 +msgid "G-Code from GERBERS" +msgstr "G-Code de GERBERS" + +#: camlib.py:597 +msgid "self.solid_geometry is neither BaseGeometry or list." +msgstr "self.solid_geometry n'est ni BaseGeometry ni une liste." + +#: camlib.py:970 +msgid "Pass" +msgstr "Passer" + +#: camlib.py:981 flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:146 +#: flatcamObjects/FlatCAMGerber.py:497 flatcamTools/ToolCopperThieving.py:1016 +#: flatcamTools/ToolCopperThieving.py:1205 +#: flatcamTools/ToolCopperThieving.py:1217 flatcamTools/ToolNCC.py:2050 +#: flatcamTools/ToolNCC.py:2158 flatcamTools/ToolNCC.py:2172 +#: flatcamTools/ToolNCC.py:3103 flatcamTools/ToolNCC.py:3208 +#: flatcamTools/ToolNCC.py:3223 flatcamTools/ToolNCC.py:3489 +#: flatcamTools/ToolNCC.py:3590 flatcamTools/ToolNCC.py:3605 +msgid "Buffering" +msgstr "Mise en mémoire tampon" + +#: camlib.py:990 +msgid "Get Exteriors" +msgstr "Obtenez des extérieurs" + +#: camlib.py:993 +msgid "Get Interiors" +msgstr "Obtenez des intérieurs" + +#: camlib.py:2172 +msgid "Object was mirrored" +msgstr "L'objet a été reflété" + +#: camlib.py:2174 +msgid "Failed to mirror. No object selected" +msgstr "Impossible de refléter. Aucun objet sélectionné" + +#: camlib.py:2239 +msgid "Object was rotated" +msgstr "L'objet a été tourné" + +#: camlib.py:2241 +msgid "Failed to rotate. No object selected" +msgstr "Échec de la rotation. Aucun objet sélectionné" + +#: camlib.py:2307 +msgid "Object was skewed" +msgstr "L'objet était de biaiser" + +#: camlib.py:2309 +msgid "Failed to skew. No object selected" +msgstr "Impossible de biaiser. Aucun objet sélectionné" + +#: camlib.py:2385 +msgid "Object was buffered" +msgstr "L'objet a été tamponnées" + +#: camlib.py:2387 +msgid "Failed to buffer. No object selected" +msgstr "Échec de la mise en buffer. Aucun objet sélectionné" + +#: camlib.py:2594 +msgid "There is no such parameter" +msgstr "Il n'y a pas de tel paramètre" + +#: camlib.py:2654 camlib.py:2887 camlib.py:3116 camlib.py:3338 +msgid "" +"The Cut Z parameter has positive value. It is the depth value to drill into " +"material.\n" +"The Cut Z parameter needs to have a negative value, assuming it is a typo " +"therefore the app will convert the value to negative. Check the resulting " +"CNC code (Gcode etc)." +msgstr "" +"Le paramètre Cut Z a une valeur positive. C'est la valeur de profondeur à " +"percer dans le matériau.\n" +"Le paramètre Cut Z doit avoir une valeur négative, en supposant qu'il " +"s'agisse d'une faute de frappe; par conséquent, l'application convertira la " +"valeur en valeur négative. Vérifiez le code CNC résultant (Gcode, etc.)." + +#: camlib.py:2662 camlib.py:2897 camlib.py:3126 camlib.py:3348 camlib.py:3631 +#: camlib.py:4017 +msgid "The Cut Z parameter is zero. There will be no cut, skipping file" +msgstr "Le paramètre Cut Z est zéro. Il n'y aura pas de fichier coupé, sautant" + +#: camlib.py:2673 camlib.py:3985 +msgid "" +"The Toolchange X,Y field in Edit -> Preferences has to be in the format (x, " +"y) \n" +"but now there is only one value, not two. " +msgstr "" +"Le champ Toolchange X, Y dans Edition -> Préférences doit être au format (x, " +"y)\n" +"mais maintenant il n'y a qu'une seule valeur, pas deux. " + +#: camlib.py:2682 camlib.py:3582 camlib.py:3967 +msgid "" +"The End Move X,Y field in Edit -> Preferences has to be in the format (x, y) " +"but now there is only one value, not two." +msgstr "" +"Le champ Fin du déplacement X, Y dans Edition -> Préférences doit être au " +"format (x, y) mais maintenant il n'y a qu'une seule valeur, pas deux." + +#: camlib.py:2770 +msgid "Creating a list of points to drill..." +msgstr "Création d'une liste de points à explorer ..." + +#: camlib.py:2860 camlib.py:3729 camlib.py:4121 +msgid "Starting G-Code" +msgstr "Démarrer le GCode" + +#: camlib.py:3001 camlib.py:3220 camlib.py:3384 camlib.py:3742 camlib.py:4132 +msgid "Starting G-Code for tool with diameter" +msgstr "Code G de départ pour outil avec diamètre" + +#: camlib.py:3084 camlib.py:3302 camlib.py:3470 +msgid "G91 coordinates not implemented" +msgstr "Coordonnées G91 non implémentées" + +#: camlib.py:3090 camlib.py:3309 camlib.py:3475 +msgid "The loaded Excellon file has no drills" +msgstr "Le fichier Excellon chargé n'a pas d'exercices" + +#: camlib.py:3498 +msgid "Finished G-Code generation..." +msgstr "Fini la génération de code G ..." + +#: camlib.py:3600 +msgid "" +"The Toolchange X,Y field in Edit -> Preferences has to be in the format (x, " +"y) \n" +"but now there is only one value, not two." +msgstr "" +"Le champ Toolchange X, Y dans Edition -> Préférences doit être au format (x, " +"y)\n" +"mais maintenant il n'y a qu'une seule valeur, pas deux." + +#: camlib.py:3614 camlib.py:4000 +msgid "" +"Cut_Z parameter is None or zero. Most likely a bad combinations of other " +"parameters." +msgstr "" +"Le paramètre Cut_Z est Aucun ou zéro. Très probablement une mauvaise " +"combinaison d'autres paramètres." + +#: camlib.py:3623 camlib.py:4009 +msgid "" +"The Cut Z parameter has positive value. It is the depth value to cut into " +"material.\n" +"The Cut Z parameter needs to have a negative value, assuming it is a typo " +"therefore the app will convert the value to negative.Check the resulting CNC " +"code (Gcode etc)." +msgstr "" +"Le paramètre Cut Z a une valeur positive. C'est la valeur de profondeur à " +"couper dans le matériau.\n" +"Le paramètre Cut Z doit avoir une valeur négative, en supposant qu'il " +"s'agisse d'une faute de frappe. Par conséquent, l'application convertira la " +"valeur en valeur négative. Vérifiez le code CNC résultant (Gcode, etc.)." + +#: camlib.py:3636 camlib.py:4023 +msgid "Travel Z parameter is None or zero." +msgstr "Le paramètre Voyage Z est Aucun ou zéro." + +#: camlib.py:3641 camlib.py:4028 +msgid "" +"The Travel Z parameter has negative value. It is the height value to travel " +"between cuts.\n" +"The Z Travel parameter needs to have a positive value, assuming it is a typo " +"therefore the app will convert the value to positive.Check the resulting CNC " +"code (Gcode etc)." +msgstr "" +"Le paramètre Travel Z a une valeur négative. C'est la valeur de hauteur pour " +"voyager entre les coupes.\n" +"Le paramètre Z voyage doit avoir une valeur positive, en supposant qu'il " +"s'agisse d'une faute de frappe. Par conséquent, l'application convertira la " +"valeur en valeur positive. Vérifiez le code CNC résultant (Gcode, etc.)." + +#: camlib.py:3649 camlib.py:4036 +msgid "The Z Travel parameter is zero. This is dangerous, skipping file" +msgstr "Le paramètre Z voyage est zéro. Ceci est dangereux, ignorer le fichier" + +#: camlib.py:3668 camlib.py:4059 +msgid "Indexing geometry before generating G-Code..." +msgstr "Indexer la géométrie avant de générer le code G ..." + +#: camlib.py:3812 camlib.py:4201 +msgid "Finished G-Code generation" +msgstr "Génération de code G terminée" + +#: camlib.py:3812 +msgid "paths traced" +msgstr "chemins tracés" + +#: camlib.py:3862 +msgid "Expected a Geometry, got" +msgstr "Attendait une géométrie, eu" + +#: camlib.py:3869 +msgid "" +"Trying to generate a CNC Job from a Geometry object without solid_geometry." +msgstr "" +"Essayer de générer un travail CNC à partir d'un objet de géométrie sans " +"solid_geometry." + +#: camlib.py:3910 +msgid "" +"The Tool Offset value is too negative to use for the current_geometry.\n" +"Raise the value (in module) and try again." +msgstr "" +"La valeur de décalage de l'outil est trop négative pour pouvoir être " +"utilisée pour current_geometry.\n" +"Augmentez la valeur (dans le module) et essayez à nouveau." + +#: camlib.py:4201 +msgid " paths traced." +msgstr " chemins tracés." + +#: camlib.py:4229 +msgid "There is no tool data in the SolderPaste geometry." +msgstr "Il n'y a pas de données d'outil dans la géométrie SolderPaste." + +#: camlib.py:4318 +msgid "Finished SolderPaste G-Code generation" +msgstr "Génération de G-Code SolderPaste fini" + +#: camlib.py:4318 +msgid "paths traced." +msgstr "chemins tracés." + +#: camlib.py:4578 +msgid "Parsing GCode file. Number of lines" +msgstr "Analyse du fichier GCode. Nombre de lignes" + +#: camlib.py:4685 +msgid "Creating Geometry from the parsed GCode file. " +msgstr "Création d'une géométrie à partir du fichier GCode analysé. " + +#: camlib.py:4828 camlib.py:5118 camlib.py:5229 camlib.py:5385 +msgid "G91 coordinates not implemented ..." +msgstr "Coordonnées G91 non implémentées ..." + +#: camlib.py:4960 +msgid "Unifying Geometry from parsed Geometry segments" +msgstr "Unifier la géométrie à partir de segments de géométrie analysés" + +#: defaults.py:401 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:86 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309 +#: flatcamTools/ToolCopperThieving.py:125 flatcamTools/ToolNCC.py:535 +#: flatcamTools/ToolNCC.py:1306 flatcamTools/ToolNCC.py:1634 +#: flatcamTools/ToolNCC.py:1919 flatcamTools/ToolNCC.py:1983 +#: flatcamTools/ToolNCC.py:2967 flatcamTools/ToolNCC.py:2976 +#: tclCommands/TclCommandCopperClear.py:190 +msgid "Itself" +msgstr "Lui-même" + +#: defaults.py:428 flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280 +#: flatcamTools/ToolPaint.py:486 flatcamTools/ToolPaint.py:1427 +#: tclCommands/TclCommandPaint.py:162 +msgid "All Polygons" +msgstr "Tous les polygones" + +#: defaults.py:739 +msgid "Could not load defaults file." +msgstr "Impossible de charger le fichier par défaut." + +#: defaults.py:752 +msgid "Failed to parse defaults file." +msgstr "Échec de l'analyse du fichier par défaut." + +#: flatcamEditors/FlatCAMExcEditor.py:50 flatcamEditors/FlatCAMExcEditor.py:74 +#: flatcamEditors/FlatCAMExcEditor.py:168 +#: flatcamEditors/FlatCAMExcEditor.py:385 +#: flatcamEditors/FlatCAMExcEditor.py:589 +#: flatcamEditors/FlatCAMGrbEditor.py:243 +#: flatcamEditors/FlatCAMGrbEditor.py:250 msgid "Click to place ..." msgstr "Cliquez pour placer ..." -#: AppEditors/FlatCAMExcEditor.py:58 +#: flatcamEditors/FlatCAMExcEditor.py:58 msgid "To add a drill first select a tool" msgstr "Pour ajouter une perceuse, sélectionnez d'abord un outil" -#: AppEditors/FlatCAMExcEditor.py:122 +#: flatcamEditors/FlatCAMExcEditor.py:122 msgid "Done. Drill added." msgstr "Terminé. Drill ajouté." -#: AppEditors/FlatCAMExcEditor.py:176 +#: flatcamEditors/FlatCAMExcEditor.py:176 msgid "To add an Drill Array first select a tool in Tool Table" msgstr "" "Pour ajouter une matrice de forage, sélectionnez d'abord un outil dans la " "Table d'Outils" -#: AppEditors/FlatCAMExcEditor.py:192 AppEditors/FlatCAMExcEditor.py:415 -#: AppEditors/FlatCAMExcEditor.py:636 AppEditors/FlatCAMExcEditor.py:1151 -#: AppEditors/FlatCAMExcEditor.py:1178 AppEditors/FlatCAMGrbEditor.py:471 -#: AppEditors/FlatCAMGrbEditor.py:1944 AppEditors/FlatCAMGrbEditor.py:1974 +#: flatcamEditors/FlatCAMExcEditor.py:192 +#: flatcamEditors/FlatCAMExcEditor.py:415 +#: flatcamEditors/FlatCAMExcEditor.py:636 +#: flatcamEditors/FlatCAMExcEditor.py:1151 +#: flatcamEditors/FlatCAMExcEditor.py:1178 +#: flatcamEditors/FlatCAMGrbEditor.py:473 +#: flatcamEditors/FlatCAMGrbEditor.py:1937 +#: flatcamEditors/FlatCAMGrbEditor.py:1967 msgid "Click on target location ..." msgstr "Cliquez sur l'emplacement cible ..." -#: AppEditors/FlatCAMExcEditor.py:211 +#: flatcamEditors/FlatCAMExcEditor.py:211 msgid "Click on the Drill Circular Array Start position" msgstr "Cliquez sur la position de départ du tableau de forage circulaire" -#: AppEditors/FlatCAMExcEditor.py:233 AppEditors/FlatCAMExcEditor.py:677 -#: AppEditors/FlatCAMGrbEditor.py:516 +#: flatcamEditors/FlatCAMExcEditor.py:233 +#: flatcamEditors/FlatCAMExcEditor.py:677 +#: flatcamEditors/FlatCAMGrbEditor.py:518 msgid "The value is not Float. Check for comma instead of dot separator." msgstr "" "La valeur n'est pas réelle. Vérifiez la virgule au lieu du séparateur de " "points." -#: AppEditors/FlatCAMExcEditor.py:237 +#: flatcamEditors/FlatCAMExcEditor.py:237 msgid "The value is mistyped. Check the value" msgstr "La valeur est mal typée. Vérifiez la valeur" -#: AppEditors/FlatCAMExcEditor.py:336 +#: flatcamEditors/FlatCAMExcEditor.py:336 msgid "Too many drills for the selected spacing angle." msgstr "Trop de forages pour l'angle d'espacement sélectionné." -#: AppEditors/FlatCAMExcEditor.py:354 +#: flatcamEditors/FlatCAMExcEditor.py:354 msgid "Done. Drill Array added." msgstr "Terminé. Tableau de forage ajouté." -#: AppEditors/FlatCAMExcEditor.py:394 +#: flatcamEditors/FlatCAMExcEditor.py:394 msgid "To add a slot first select a tool" msgstr "Pour ajouter un trou de fente, sélectionnez d'abord un outil" -#: AppEditors/FlatCAMExcEditor.py:454 AppEditors/FlatCAMExcEditor.py:461 -#: AppEditors/FlatCAMExcEditor.py:742 AppEditors/FlatCAMExcEditor.py:749 +#: flatcamEditors/FlatCAMExcEditor.py:454 +#: flatcamEditors/FlatCAMExcEditor.py:461 +#: flatcamEditors/FlatCAMExcEditor.py:742 +#: flatcamEditors/FlatCAMExcEditor.py:749 msgid "Value is missing or wrong format. Add it and retry." msgstr "Valeur manquante ou format incorrect. Ajoutez-le et réessayez." -#: AppEditors/FlatCAMExcEditor.py:559 +#: flatcamEditors/FlatCAMExcEditor.py:559 msgid "Done. Adding Slot completed." msgstr "Terminé. Ajout de la fente terminée." -#: AppEditors/FlatCAMExcEditor.py:597 +#: flatcamEditors/FlatCAMExcEditor.py:597 msgid "To add an Slot Array first select a tool in Tool Table" msgstr "" "Pour ajouter un tableau de trous de fente, sélectionnez d'abord un outil " "dans la table d'outils" -#: AppEditors/FlatCAMExcEditor.py:655 +#: flatcamEditors/FlatCAMExcEditor.py:655 msgid "Click on the Slot Circular Array Start position" msgstr "" "Cliquez sur la position de départ de la matrice circulaire du trou de fente" -#: AppEditors/FlatCAMExcEditor.py:680 AppEditors/FlatCAMGrbEditor.py:519 +#: flatcamEditors/FlatCAMExcEditor.py:680 +#: flatcamEditors/FlatCAMGrbEditor.py:521 msgid "The value is mistyped. Check the value." msgstr "La valeur est mal typée. Vérifiez la valeur." -#: AppEditors/FlatCAMExcEditor.py:859 +#: flatcamEditors/FlatCAMExcEditor.py:859 msgid "Too many Slots for the selected spacing angle." msgstr "Trop de trous de fente pour l'angle d'espacement sélectionné." -#: AppEditors/FlatCAMExcEditor.py:882 +#: flatcamEditors/FlatCAMExcEditor.py:882 msgid "Done. Slot Array added." msgstr "Terminé. Tableau de trous de fente ajouté." -#: AppEditors/FlatCAMExcEditor.py:904 +#: flatcamEditors/FlatCAMExcEditor.py:904 msgid "Click on the Drill(s) to resize ..." msgstr "Cliquez sur les forets pour redimensionner ..." -#: AppEditors/FlatCAMExcEditor.py:934 +#: flatcamEditors/FlatCAMExcEditor.py:934 msgid "Resize drill(s) failed. Please enter a diameter for resize." msgstr "" "Redimensionner les trous de forage a échoué. Veuillez entrer un diamètre " "pour le redimensionner." -#: AppEditors/FlatCAMExcEditor.py:1112 +#: flatcamEditors/FlatCAMExcEditor.py:1112 msgid "Done. Drill/Slot Resize completed." msgstr "" "Terminé. Le redimensionnement des trous de forage / rainure est terminé." -#: AppEditors/FlatCAMExcEditor.py:1115 +#: flatcamEditors/FlatCAMExcEditor.py:1115 msgid "Cancelled. No drills/slots selected for resize ..." msgstr "" "Annulé. Aucun trou de perçage / rainure sélectionné pour le " "redimensionnement ..." -#: AppEditors/FlatCAMExcEditor.py:1153 AppEditors/FlatCAMGrbEditor.py:1946 +#: flatcamEditors/FlatCAMExcEditor.py:1153 +#: flatcamEditors/FlatCAMGrbEditor.py:1939 msgid "Click on reference location ..." msgstr "Cliquez sur l'emplacement de référence ..." -#: AppEditors/FlatCAMExcEditor.py:1210 +#: flatcamEditors/FlatCAMExcEditor.py:1210 msgid "Done. Drill(s) Move completed." msgstr "Terminé. Foret (s) Déplacement terminé." -#: AppEditors/FlatCAMExcEditor.py:1318 +#: flatcamEditors/FlatCAMExcEditor.py:1318 msgid "Done. Drill(s) copied." msgstr "Terminé. Percer des trous copiés." -#: AppEditors/FlatCAMExcEditor.py:1557 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:26 +#: flatcamEditors/FlatCAMExcEditor.py:1557 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:26 msgid "Excellon Editor" -msgstr "Editeur Excellon" +msgstr "Excellent éditeur" -#: AppEditors/FlatCAMExcEditor.py:1564 AppEditors/FlatCAMGrbEditor.py:2469 +#: flatcamEditors/FlatCAMExcEditor.py:1564 +#: flatcamEditors/FlatCAMGrbEditor.py:2462 msgid "Name:" msgstr "Nom:" -#: AppEditors/FlatCAMExcEditor.py:1570 AppGUI/ObjectUI.py:540 -#: AppGUI/ObjectUI.py:1362 AppTools/ToolIsolation.py:118 -#: AppTools/ToolNCC.py:120 AppTools/ToolPaint.py:114 -#: AppTools/ToolSolderPaste.py:79 +#: flatcamEditors/FlatCAMExcEditor.py:1570 flatcamGUI/ObjectUI.py:761 +#: flatcamGUI/ObjectUI.py:1465 flatcamTools/ToolNCC.py:120 +#: flatcamTools/ToolPaint.py:115 flatcamTools/ToolSolderPaste.py:74 msgid "Tools Table" msgstr "Tableau des outils" -#: AppEditors/FlatCAMExcEditor.py:1572 AppGUI/ObjectUI.py:542 +#: flatcamEditors/FlatCAMExcEditor.py:1572 flatcamGUI/ObjectUI.py:763 msgid "" "Tools in this Excellon object\n" "when are used for drilling." @@ -1223,21 +3108,22 @@ msgstr "" "Outils dans cet objet Excellon\n" "quand sont utilisés pour le forage." -#: AppEditors/FlatCAMExcEditor.py:1584 AppEditors/FlatCAMExcEditor.py:3041 -#: AppGUI/ObjectUI.py:560 AppObjects/FlatCAMExcellon.py:1265 -#: AppObjects/FlatCAMExcellon.py:1368 AppObjects/FlatCAMExcellon.py:1553 -#: AppTools/ToolIsolation.py:130 AppTools/ToolNCC.py:132 -#: AppTools/ToolPaint.py:127 AppTools/ToolPcbWizard.py:76 -#: AppTools/ToolProperties.py:416 AppTools/ToolProperties.py:476 -#: AppTools/ToolSolderPaste.py:90 tclCommands/TclCommandDrillcncjob.py:195 +#: flatcamEditors/FlatCAMExcEditor.py:1584 +#: flatcamEditors/FlatCAMExcEditor.py:3066 flatcamGUI/ObjectUI.py:781 +#: flatcamObjects/FlatCAMExcellon.py:1098 +#: flatcamObjects/FlatCAMExcellon.py:1188 +#: flatcamObjects/FlatCAMExcellon.py:1373 flatcamTools/ToolNCC.py:132 +#: flatcamTools/ToolPaint.py:128 flatcamTools/ToolPcbWizard.py:76 +#: flatcamTools/ToolProperties.py:416 flatcamTools/ToolProperties.py:476 +#: flatcamTools/ToolSolderPaste.py:85 tclCommands/TclCommandDrillcncjob.py:193 msgid "Diameter" msgstr "Diamètre" -#: AppEditors/FlatCAMExcEditor.py:1592 +#: flatcamEditors/FlatCAMExcEditor.py:1592 msgid "Add/Delete Tool" msgstr "Ajouter / Supprimer un outil" -#: AppEditors/FlatCAMExcEditor.py:1594 +#: flatcamEditors/FlatCAMExcEditor.py:1594 msgid "" "Add/Delete a tool to the tool list\n" "for this Excellon object." @@ -1245,16 +3131,16 @@ msgstr "" "Ajouter / Supprimer un outil à la liste d'outils\n" "pour cet objet Excellon." -#: AppEditors/FlatCAMExcEditor.py:1606 AppGUI/ObjectUI.py:1482 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:57 +#: flatcamEditors/FlatCAMExcEditor.py:1606 flatcamGUI/ObjectUI.py:1585 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:57 msgid "Diameter for the new tool" msgstr "Diamètre pour le nouvel outil" -#: AppEditors/FlatCAMExcEditor.py:1616 +#: flatcamEditors/FlatCAMExcEditor.py:1616 msgid "Add Tool" msgstr "Ajouter un Outil" -#: AppEditors/FlatCAMExcEditor.py:1618 +#: flatcamEditors/FlatCAMExcEditor.py:1618 msgid "" "Add a new tool to the tool list\n" "with the diameter specified above." @@ -1262,11 +3148,11 @@ msgstr "" "Ajouter un nouvel outil à la liste d'outils\n" "avec le diamètre spécifié ci-dessus." -#: AppEditors/FlatCAMExcEditor.py:1630 +#: flatcamEditors/FlatCAMExcEditor.py:1630 msgid "Delete Tool" msgstr "Supprimer l'outil" -#: AppEditors/FlatCAMExcEditor.py:1632 +#: flatcamEditors/FlatCAMExcEditor.py:1632 msgid "" "Delete a tool in the tool list\n" "by selecting a row in the tool table." @@ -1274,40 +3160,40 @@ msgstr "" "Supprimer un outil dans la liste des outils\n" "en sélectionnant une ligne dans la table d'outils." -#: AppEditors/FlatCAMExcEditor.py:1650 AppGUI/MainGUI.py:4392 +#: flatcamEditors/FlatCAMExcEditor.py:1650 flatcamGUI/FlatCAMGUI.py:2019 msgid "Resize Drill(s)" msgstr "Redim. les Forets" -#: AppEditors/FlatCAMExcEditor.py:1652 +#: flatcamEditors/FlatCAMExcEditor.py:1652 msgid "Resize a drill or a selection of drills." msgstr "Redimensionnez une perceuse ou une sélection d'exercices." -#: AppEditors/FlatCAMExcEditor.py:1659 +#: flatcamEditors/FlatCAMExcEditor.py:1659 msgid "Resize Dia" msgstr "Redim. le dia" -#: AppEditors/FlatCAMExcEditor.py:1661 +#: flatcamEditors/FlatCAMExcEditor.py:1661 msgid "Diameter to resize to." msgstr "Diamètre à redimensionner." -#: AppEditors/FlatCAMExcEditor.py:1672 +#: flatcamEditors/FlatCAMExcEditor.py:1672 msgid "Resize" msgstr "Redimensionner" -#: AppEditors/FlatCAMExcEditor.py:1674 +#: flatcamEditors/FlatCAMExcEditor.py:1674 msgid "Resize drill(s)" msgstr "Redimensionner les forets" -#: AppEditors/FlatCAMExcEditor.py:1699 AppGUI/MainGUI.py:1514 -#: AppGUI/MainGUI.py:4391 +#: flatcamEditors/FlatCAMExcEditor.py:1699 flatcamGUI/FlatCAMGUI.py:2018 +#: flatcamGUI/FlatCAMGUI.py:2270 msgid "Add Drill Array" msgstr "Ajouter un Tableau de Forage" -#: AppEditors/FlatCAMExcEditor.py:1701 +#: flatcamEditors/FlatCAMExcEditor.py:1701 msgid "Add an array of drills (linear or circular array)" msgstr "Ajouter un tableau de trous de forage (tableau linéaire ou circulaire)" -#: AppEditors/FlatCAMExcEditor.py:1707 +#: flatcamEditors/FlatCAMExcEditor.py:1707 msgid "" "Select the type of drills array to create.\n" "It can be Linear X(Y) or Circular" @@ -1315,51 +3201,57 @@ msgstr "" "Sélectionnez le type de matrice de trous à créer.\n" "Il peut être Linéaire X (Y) ou Circulaire" -#: AppEditors/FlatCAMExcEditor.py:1710 AppEditors/FlatCAMExcEditor.py:1924 -#: AppEditors/FlatCAMGrbEditor.py:2782 +#: flatcamEditors/FlatCAMExcEditor.py:1710 +#: flatcamEditors/FlatCAMExcEditor.py:1924 +#: flatcamEditors/FlatCAMGrbEditor.py:2775 msgid "Linear" msgstr "Linéaire" -#: AppEditors/FlatCAMExcEditor.py:1711 AppEditors/FlatCAMExcEditor.py:1925 -#: AppEditors/FlatCAMGrbEditor.py:2783 -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:52 -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:149 -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:107 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:52 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:151 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:78 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:61 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:70 -#: AppTools/ToolExtractDrills.py:78 AppTools/ToolExtractDrills.py:201 -#: AppTools/ToolFiducials.py:223 AppTools/ToolIsolation.py:207 -#: AppTools/ToolNCC.py:221 AppTools/ToolPaint.py:203 -#: AppTools/ToolPunchGerber.py:89 AppTools/ToolPunchGerber.py:229 +#: flatcamEditors/FlatCAMExcEditor.py:1711 +#: flatcamEditors/FlatCAMExcEditor.py:1925 +#: flatcamEditors/FlatCAMGrbEditor.py:2776 flatcamGUI/ObjectUI.py:316 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:52 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:149 +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:107 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:52 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:151 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:61 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:70 +#: flatcamTools/ToolExtractDrills.py:78 flatcamTools/ToolExtractDrills.py:201 +#: flatcamTools/ToolFiducials.py:220 flatcamTools/ToolNCC.py:221 +#: flatcamTools/ToolPaint.py:204 flatcamTools/ToolPunchGerber.py:89 +#: flatcamTools/ToolPunchGerber.py:229 msgid "Circular" msgstr "Circulaire" -#: AppEditors/FlatCAMExcEditor.py:1719 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:68 +#: flatcamEditors/FlatCAMExcEditor.py:1719 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:68 msgid "Nr of drills" msgstr "Nb de Forages" -#: AppEditors/FlatCAMExcEditor.py:1720 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:70 +#: flatcamEditors/FlatCAMExcEditor.py:1720 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:70 msgid "Specify how many drills to be in the array." msgstr "Spécifiez combien d'exercices doivent figurer dans le tableau." -#: AppEditors/FlatCAMExcEditor.py:1738 AppEditors/FlatCAMExcEditor.py:1788 -#: AppEditors/FlatCAMExcEditor.py:1860 AppEditors/FlatCAMExcEditor.py:1953 -#: AppEditors/FlatCAMExcEditor.py:2004 AppEditors/FlatCAMGrbEditor.py:1580 -#: AppEditors/FlatCAMGrbEditor.py:2811 AppEditors/FlatCAMGrbEditor.py:2860 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:178 +#: flatcamEditors/FlatCAMExcEditor.py:1738 +#: flatcamEditors/FlatCAMExcEditor.py:1788 +#: flatcamEditors/FlatCAMExcEditor.py:1860 +#: flatcamEditors/FlatCAMExcEditor.py:1953 +#: flatcamEditors/FlatCAMExcEditor.py:2004 +#: flatcamEditors/FlatCAMGrbEditor.py:1573 +#: flatcamEditors/FlatCAMGrbEditor.py:2804 +#: flatcamEditors/FlatCAMGrbEditor.py:2853 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:178 msgid "Direction" msgstr "Direction" -#: AppEditors/FlatCAMExcEditor.py:1740 AppEditors/FlatCAMExcEditor.py:1955 -#: AppEditors/FlatCAMGrbEditor.py:2813 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:86 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:234 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:123 +#: flatcamEditors/FlatCAMExcEditor.py:1740 +#: flatcamEditors/FlatCAMExcEditor.py:1955 +#: flatcamEditors/FlatCAMGrbEditor.py:2806 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:86 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:234 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:122 msgid "" "Direction on which the linear array is oriented:\n" "- 'X' - horizontal axis \n" @@ -1371,65 +3263,77 @@ msgstr "" "- 'Y' - axe vertical ou\n" "- 'Angle' - un angle personnalisé pour l'inclinaison du tableau" -#: AppEditors/FlatCAMExcEditor.py:1747 AppEditors/FlatCAMExcEditor.py:1869 -#: AppEditors/FlatCAMExcEditor.py:1962 AppEditors/FlatCAMGrbEditor.py:2820 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:92 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:187 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:240 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:129 -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:197 -#: AppTools/ToolFilm.py:239 +#: flatcamEditors/FlatCAMExcEditor.py:1747 +#: flatcamEditors/FlatCAMExcEditor.py:1869 +#: flatcamEditors/FlatCAMExcEditor.py:1962 +#: flatcamEditors/FlatCAMGrbEditor.py:2813 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:92 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:187 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:240 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:128 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:208 +#: flatcamTools/ToolFilm.py:256 msgid "X" msgstr "X" -#: AppEditors/FlatCAMExcEditor.py:1748 AppEditors/FlatCAMExcEditor.py:1870 -#: AppEditors/FlatCAMExcEditor.py:1963 AppEditors/FlatCAMGrbEditor.py:2821 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:93 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:188 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:241 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:130 -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:198 -#: AppTools/ToolFilm.py:240 +#: flatcamEditors/FlatCAMExcEditor.py:1748 +#: flatcamEditors/FlatCAMExcEditor.py:1870 +#: flatcamEditors/FlatCAMExcEditor.py:1963 +#: flatcamEditors/FlatCAMGrbEditor.py:2814 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:93 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:188 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:241 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:129 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:209 +#: flatcamTools/ToolFilm.py:257 msgid "Y" msgstr "Y" -#: AppEditors/FlatCAMExcEditor.py:1749 AppEditors/FlatCAMExcEditor.py:1766 -#: AppEditors/FlatCAMExcEditor.py:1800 AppEditors/FlatCAMExcEditor.py:1871 -#: AppEditors/FlatCAMExcEditor.py:1875 AppEditors/FlatCAMExcEditor.py:1964 -#: AppEditors/FlatCAMExcEditor.py:1982 AppEditors/FlatCAMExcEditor.py:2016 -#: AppEditors/FlatCAMGrbEditor.py:2822 AppEditors/FlatCAMGrbEditor.py:2839 -#: AppEditors/FlatCAMGrbEditor.py:2875 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:94 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:113 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:189 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:194 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:242 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:263 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:131 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:149 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:53 -#: AppTools/ToolDistance.py:120 AppTools/ToolDistanceMin.py:68 -#: AppTools/ToolTransform.py:60 +#: flatcamEditors/FlatCAMExcEditor.py:1749 +#: flatcamEditors/FlatCAMExcEditor.py:1766 +#: flatcamEditors/FlatCAMExcEditor.py:1800 +#: flatcamEditors/FlatCAMExcEditor.py:1871 +#: flatcamEditors/FlatCAMExcEditor.py:1875 +#: flatcamEditors/FlatCAMExcEditor.py:1964 +#: flatcamEditors/FlatCAMExcEditor.py:1982 +#: flatcamEditors/FlatCAMExcEditor.py:2016 +#: flatcamEditors/FlatCAMGrbEditor.py:2815 +#: flatcamEditors/FlatCAMGrbEditor.py:2832 +#: flatcamEditors/FlatCAMGrbEditor.py:2868 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:94 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:113 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:189 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:194 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:242 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:263 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:130 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:148 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:53 +#: flatcamTools/ToolDistance.py:120 flatcamTools/ToolDistanceMin.py:69 +#: flatcamTools/ToolTransform.py:60 msgid "Angle" msgstr "Angle" -#: AppEditors/FlatCAMExcEditor.py:1753 AppEditors/FlatCAMExcEditor.py:1968 -#: AppEditors/FlatCAMGrbEditor.py:2826 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:100 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:248 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:137 +#: flatcamEditors/FlatCAMExcEditor.py:1753 +#: flatcamEditors/FlatCAMExcEditor.py:1968 +#: flatcamEditors/FlatCAMGrbEditor.py:2819 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:100 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:248 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:136 msgid "Pitch" msgstr "Pas" -#: AppEditors/FlatCAMExcEditor.py:1755 AppEditors/FlatCAMExcEditor.py:1970 -#: AppEditors/FlatCAMGrbEditor.py:2828 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:102 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:250 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:139 +#: flatcamEditors/FlatCAMExcEditor.py:1755 +#: flatcamEditors/FlatCAMExcEditor.py:1970 +#: flatcamEditors/FlatCAMGrbEditor.py:2821 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:102 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:250 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:138 msgid "Pitch = Distance between elements of the array." msgstr "Pas = Distance entre les éléments du tableau." -#: AppEditors/FlatCAMExcEditor.py:1768 AppEditors/FlatCAMExcEditor.py:1984 +#: flatcamEditors/FlatCAMExcEditor.py:1768 +#: flatcamEditors/FlatCAMExcEditor.py:1984 msgid "" "Angle at which the linear array is placed.\n" "The precision is of max 2 decimals.\n" @@ -1441,8 +3345,9 @@ msgstr "" "La valeur minimale est: -360 degrés.\n" "La valeur maximale est: 360,00 degrés." -#: AppEditors/FlatCAMExcEditor.py:1789 AppEditors/FlatCAMExcEditor.py:2005 -#: AppEditors/FlatCAMGrbEditor.py:2862 +#: flatcamEditors/FlatCAMExcEditor.py:1789 +#: flatcamEditors/FlatCAMExcEditor.py:2005 +#: flatcamEditors/FlatCAMGrbEditor.py:2855 msgid "" "Direction for circular array.Can be CW = clockwise or CCW = counter " "clockwise." @@ -1450,42 +3355,45 @@ msgstr "" "Direction pour tableau circulaire. Peut être CW = sens horaire ou CCW = sens " "antihoraire." -#: AppEditors/FlatCAMExcEditor.py:1796 AppEditors/FlatCAMExcEditor.py:2012 -#: AppEditors/FlatCAMGrbEditor.py:2870 -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:129 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:136 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:286 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:145 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:171 +#: flatcamEditors/FlatCAMExcEditor.py:1796 +#: flatcamEditors/FlatCAMExcEditor.py:2012 +#: flatcamEditors/FlatCAMGrbEditor.py:2863 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:129 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:136 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:286 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:142 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:170 msgid "CW" msgstr "CW" -#: AppEditors/FlatCAMExcEditor.py:1797 AppEditors/FlatCAMExcEditor.py:2013 -#: AppEditors/FlatCAMGrbEditor.py:2871 -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:130 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:137 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:287 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:146 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:172 +#: flatcamEditors/FlatCAMExcEditor.py:1797 +#: flatcamEditors/FlatCAMExcEditor.py:2013 +#: flatcamEditors/FlatCAMGrbEditor.py:2864 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:130 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:137 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:287 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:143 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:171 msgid "CCW" msgstr "CCW" -#: AppEditors/FlatCAMExcEditor.py:1801 AppEditors/FlatCAMExcEditor.py:2017 -#: AppEditors/FlatCAMGrbEditor.py:2877 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:115 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:145 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:265 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:295 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:151 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:180 +#: flatcamEditors/FlatCAMExcEditor.py:1801 +#: flatcamEditors/FlatCAMExcEditor.py:2017 +#: flatcamEditors/FlatCAMGrbEditor.py:2870 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:115 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:145 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:265 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:295 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:150 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:179 msgid "Angle at which each element in circular array is placed." msgstr "Angle auquel chaque élément du tableau circulaire est placé." -#: AppEditors/FlatCAMExcEditor.py:1835 +#: flatcamEditors/FlatCAMExcEditor.py:1835 msgid "Slot Parameters" msgstr "Paramètres de Fente" -#: AppEditors/FlatCAMExcEditor.py:1837 +#: flatcamEditors/FlatCAMExcEditor.py:1837 msgid "" "Parameters for adding a slot (hole with oval shape)\n" "either single or as an part of an array." @@ -1493,20 +3401,19 @@ msgstr "" "Paramètres pour l'ajout d'une fente (trou de forme ovale)\n" "soit seul, soit faisant partie d'un tableau." -#: AppEditors/FlatCAMExcEditor.py:1846 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:162 -#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:56 -#: AppTools/ToolCorners.py:136 AppTools/ToolProperties.py:559 +#: flatcamEditors/FlatCAMExcEditor.py:1846 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:162 +#: flatcamTools/ToolProperties.py:559 msgid "Length" msgstr "Longueur" -#: AppEditors/FlatCAMExcEditor.py:1848 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:164 +#: flatcamEditors/FlatCAMExcEditor.py:1848 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:164 msgid "Length = The length of the slot." msgstr "Longueur = La longueur de la fente." -#: AppEditors/FlatCAMExcEditor.py:1862 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:180 +#: flatcamEditors/FlatCAMExcEditor.py:1862 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:180 msgid "" "Direction on which the slot is oriented:\n" "- 'X' - horizontal axis \n" @@ -1518,7 +3425,7 @@ msgstr "" "- 'Y' - axe vertical ou\n" "- 'Angle' - un angle personnalisé pour l'inclinaison de la fente" -#: AppEditors/FlatCAMExcEditor.py:1877 +#: flatcamEditors/FlatCAMExcEditor.py:1877 msgid "" "Angle at which the slot is placed.\n" "The precision is of max 2 decimals.\n" @@ -1530,15 +3437,15 @@ msgstr "" "La valeur minimale est: -360 degrés.\n" "La valeur maximale est: 360,00 degrés." -#: AppEditors/FlatCAMExcEditor.py:1910 +#: flatcamEditors/FlatCAMExcEditor.py:1910 msgid "Slot Array Parameters" msgstr "Param. de la Matrice de Fentes" -#: AppEditors/FlatCAMExcEditor.py:1912 +#: flatcamEditors/FlatCAMExcEditor.py:1912 msgid "Parameters for the array of slots (linear or circular array)" msgstr "Paramètres pour la Matrice de Fente (matrice linéaire ou circulaire)" -#: AppEditors/FlatCAMExcEditor.py:1921 +#: flatcamEditors/FlatCAMExcEditor.py:1921 msgid "" "Select the type of slot array to create.\n" "It can be Linear X(Y) or Circular" @@ -1546,37 +3453,43 @@ msgstr "" "Sélectionnez le type de matrice à percer.\n" "Il peut être linéaire X (Y) ou circulaire" -#: AppEditors/FlatCAMExcEditor.py:1933 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:219 +#: flatcamEditors/FlatCAMExcEditor.py:1933 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:219 msgid "Nr of slots" msgstr "Nb de Fentes" -#: AppEditors/FlatCAMExcEditor.py:1934 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:221 +#: flatcamEditors/FlatCAMExcEditor.py:1934 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:221 msgid "Specify how many slots to be in the array." msgstr "Spécifiez le nombre de Fente dans le Tableau." -#: AppEditors/FlatCAMExcEditor.py:2452 AppObjects/FlatCAMExcellon.py:433 +#: flatcamEditors/FlatCAMExcEditor.py:2452 +#: flatcamObjects/FlatCAMExcellon.py:410 msgid "Total Drills" msgstr "Total Forage" -#: AppEditors/FlatCAMExcEditor.py:2484 AppObjects/FlatCAMExcellon.py:464 +#: flatcamEditors/FlatCAMExcEditor.py:2484 +#: flatcamObjects/FlatCAMExcellon.py:441 msgid "Total Slots" msgstr "Total de Fentes" -#: AppEditors/FlatCAMExcEditor.py:2559 AppEditors/FlatCAMGeoEditor.py:1075 -#: AppEditors/FlatCAMGeoEditor.py:1116 AppEditors/FlatCAMGeoEditor.py:1144 -#: AppEditors/FlatCAMGeoEditor.py:1172 AppEditors/FlatCAMGeoEditor.py:1216 -#: AppEditors/FlatCAMGeoEditor.py:1251 AppEditors/FlatCAMGeoEditor.py:1279 -#: AppObjects/FlatCAMGeometry.py:664 AppObjects/FlatCAMGeometry.py:1099 -#: AppObjects/FlatCAMGeometry.py:1841 AppObjects/FlatCAMGeometry.py:2491 -#: AppTools/ToolIsolation.py:1493 AppTools/ToolNCC.py:1516 -#: AppTools/ToolPaint.py:1268 AppTools/ToolPaint.py:1439 -#: AppTools/ToolSolderPaste.py:891 AppTools/ToolSolderPaste.py:964 +#: flatcamEditors/FlatCAMExcEditor.py:2559 +#: flatcamEditors/FlatCAMGeoEditor.py:1076 +#: flatcamEditors/FlatCAMGeoEditor.py:1117 +#: flatcamEditors/FlatCAMGeoEditor.py:1145 +#: flatcamEditors/FlatCAMGeoEditor.py:1173 +#: flatcamEditors/FlatCAMGeoEditor.py:1217 +#: flatcamEditors/FlatCAMGeoEditor.py:1252 +#: flatcamEditors/FlatCAMGeoEditor.py:1280 +#: flatcamObjects/FlatCAMGeometry.py:599 flatcamObjects/FlatCAMGeometry.py:1033 +#: flatcamObjects/FlatCAMGeometry.py:1780 +#: flatcamObjects/FlatCAMGeometry.py:2424 flatcamTools/ToolNCC.py:1498 +#: flatcamTools/ToolPaint.py:1249 flatcamTools/ToolPaint.py:1420 +#: flatcamTools/ToolSolderPaste.py:883 flatcamTools/ToolSolderPaste.py:956 msgid "Wrong value format entered, use a number." msgstr "Mauvais format de valeur entré, utilisez un nombre." -#: AppEditors/FlatCAMExcEditor.py:2570 +#: flatcamEditors/FlatCAMExcEditor.py:2570 msgid "" "Tool already in the original or actual tool list.\n" "Save and reedit Excellon if you need to add this tool. " @@ -1584,73 +3497,63 @@ msgstr "" "Outil déjà dans la liste d'outils d'origine ou réelle.\n" "Enregistrez et rééditez Excellon si vous devez ajouter cet outil. " -#: AppEditors/FlatCAMExcEditor.py:2579 AppGUI/MainGUI.py:3364 +#: flatcamEditors/FlatCAMExcEditor.py:2579 flatcamGUI/FlatCAMGUI.py:4071 msgid "Added new tool with dia" msgstr "Ajout d'un nouvel outil avec dia" -#: AppEditors/FlatCAMExcEditor.py:2612 +#: flatcamEditors/FlatCAMExcEditor.py:2612 msgid "Select a tool in Tool Table" msgstr "Sélectionner un outil dans la table d'outils" -#: AppEditors/FlatCAMExcEditor.py:2642 +#: flatcamEditors/FlatCAMExcEditor.py:2642 msgid "Deleted tool with diameter" msgstr "Outil supprimé avec diamètre" -#: AppEditors/FlatCAMExcEditor.py:2790 +#: flatcamEditors/FlatCAMExcEditor.py:2790 msgid "Done. Tool edit completed." msgstr "Terminé. L'édition de l'outil est terminée." -#: AppEditors/FlatCAMExcEditor.py:3327 +#: flatcamEditors/FlatCAMExcEditor.py:3352 msgid "There are no Tools definitions in the file. Aborting Excellon creation." msgstr "" "Il n'y a pas de définition d'outils dans le fichier. Abandon de la création " "Excellon." -#: AppEditors/FlatCAMExcEditor.py:3331 +#: flatcamEditors/FlatCAMExcEditor.py:3356 msgid "An internal error has ocurred. See Shell.\n" msgstr "Une erreur interne s'est produite. Voir Shell.\n" -#: AppEditors/FlatCAMExcEditor.py:3336 +#: flatcamEditors/FlatCAMExcEditor.py:3361 msgid "Creating Excellon." msgstr "Créer Excellon." -#: AppEditors/FlatCAMExcEditor.py:3350 +#: flatcamEditors/FlatCAMExcEditor.py:3373 msgid "Excellon editing finished." msgstr "Excellon édition terminée." -#: AppEditors/FlatCAMExcEditor.py:3367 +#: flatcamEditors/FlatCAMExcEditor.py:3390 msgid "Cancelled. There is no Tool/Drill selected" msgstr "Annulé. Aucun Outil/Foret sélectionné" -#: AppEditors/FlatCAMExcEditor.py:3601 AppEditors/FlatCAMExcEditor.py:3609 -#: AppEditors/FlatCAMGeoEditor.py:4343 AppEditors/FlatCAMGeoEditor.py:4357 -#: AppEditors/FlatCAMGrbEditor.py:1085 AppEditors/FlatCAMGrbEditor.py:1312 -#: AppEditors/FlatCAMGrbEditor.py:1497 AppEditors/FlatCAMGrbEditor.py:1766 -#: AppEditors/FlatCAMGrbEditor.py:4609 AppEditors/FlatCAMGrbEditor.py:4626 -#: AppGUI/MainGUI.py:2711 AppGUI/MainGUI.py:2723 -#: AppTools/ToolAlignObjects.py:393 AppTools/ToolAlignObjects.py:415 -#: App_Main.py:4677 App_Main.py:4831 -msgid "Done." -msgstr "Terminé." - -#: AppEditors/FlatCAMExcEditor.py:3984 +#: flatcamEditors/FlatCAMExcEditor.py:4003 msgid "Done. Drill(s) deleted." msgstr "Terminé. Percer des trous supprimés." -#: AppEditors/FlatCAMExcEditor.py:4057 AppEditors/FlatCAMExcEditor.py:4067 -#: AppEditors/FlatCAMGrbEditor.py:5057 +#: flatcamEditors/FlatCAMExcEditor.py:4076 +#: flatcamEditors/FlatCAMExcEditor.py:4086 +#: flatcamEditors/FlatCAMGrbEditor.py:5063 msgid "Click on the circular array Center position" msgstr "Cliquez sur le tableau circulaire Position centrale" -#: AppEditors/FlatCAMGeoEditor.py:84 +#: flatcamEditors/FlatCAMGeoEditor.py:85 msgid "Buffer distance:" msgstr "Distance tampon:" -#: AppEditors/FlatCAMGeoEditor.py:85 +#: flatcamEditors/FlatCAMGeoEditor.py:86 msgid "Buffer corner:" msgstr "Coin tampon:" -#: AppEditors/FlatCAMGeoEditor.py:87 +#: flatcamEditors/FlatCAMGeoEditor.py:88 msgid "" "There are 3 types of corners:\n" " - 'Round': the corner is rounded for exterior buffer.\n" @@ -1664,89 +3567,94 @@ msgstr "" " - \"Biseauté:\" le coin est une ligne qui relie directement les " "fonctionnalités réunies dans le coin" -#: AppEditors/FlatCAMGeoEditor.py:93 AppEditors/FlatCAMGrbEditor.py:2638 +#: flatcamEditors/FlatCAMGeoEditor.py:94 +#: flatcamEditors/FlatCAMGrbEditor.py:2631 msgid "Round" msgstr "Rond" -#: AppEditors/FlatCAMGeoEditor.py:94 AppEditors/FlatCAMGrbEditor.py:2639 -#: AppGUI/ObjectUI.py:1149 AppGUI/ObjectUI.py:2004 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:225 -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:68 -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:175 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:68 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:177 -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:143 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:298 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:327 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:291 -#: AppTools/ToolExtractDrills.py:94 AppTools/ToolExtractDrills.py:227 -#: AppTools/ToolIsolation.py:545 AppTools/ToolNCC.py:583 -#: AppTools/ToolPaint.py:526 AppTools/ToolPunchGerber.py:105 -#: AppTools/ToolPunchGerber.py:255 AppTools/ToolQRCode.py:207 +#: flatcamEditors/FlatCAMGeoEditor.py:95 +#: flatcamEditors/FlatCAMGrbEditor.py:2632 flatcamGUI/ObjectUI.py:2073 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:217 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:68 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:175 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:68 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:177 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:143 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:327 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:291 +#: flatcamTools/ToolExtractDrills.py:94 flatcamTools/ToolExtractDrills.py:227 +#: flatcamTools/ToolNCC.py:583 flatcamTools/ToolPaint.py:527 +#: flatcamTools/ToolPunchGerber.py:105 flatcamTools/ToolPunchGerber.py:255 +#: flatcamTools/ToolQRCode.py:198 msgid "Square" msgstr "Carré" -#: AppEditors/FlatCAMGeoEditor.py:95 AppEditors/FlatCAMGrbEditor.py:2640 +#: flatcamEditors/FlatCAMGeoEditor.py:96 +#: flatcamEditors/FlatCAMGrbEditor.py:2633 msgid "Beveled" msgstr "Biseauté" -#: AppEditors/FlatCAMGeoEditor.py:102 +#: flatcamEditors/FlatCAMGeoEditor.py:103 msgid "Buffer Interior" msgstr "Tampon Intérieur" -#: AppEditors/FlatCAMGeoEditor.py:104 +#: flatcamEditors/FlatCAMGeoEditor.py:105 msgid "Buffer Exterior" msgstr "Tampon Extérieur" -#: AppEditors/FlatCAMGeoEditor.py:110 +#: flatcamEditors/FlatCAMGeoEditor.py:111 msgid "Full Buffer" msgstr "Plein tampon" -#: AppEditors/FlatCAMGeoEditor.py:131 AppEditors/FlatCAMGeoEditor.py:3016 -#: AppGUI/MainGUI.py:4301 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:191 +#: flatcamEditors/FlatCAMGeoEditor.py:132 +#: flatcamEditors/FlatCAMGeoEditor.py:3017 flatcamGUI/FlatCAMGUI.py:1928 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:190 msgid "Buffer Tool" msgstr "Outil Tampon" -#: AppEditors/FlatCAMGeoEditor.py:143 AppEditors/FlatCAMGeoEditor.py:160 -#: AppEditors/FlatCAMGeoEditor.py:177 AppEditors/FlatCAMGeoEditor.py:3035 -#: AppEditors/FlatCAMGeoEditor.py:3063 AppEditors/FlatCAMGeoEditor.py:3091 -#: AppEditors/FlatCAMGrbEditor.py:5110 +#: flatcamEditors/FlatCAMGeoEditor.py:144 +#: flatcamEditors/FlatCAMGeoEditor.py:161 +#: flatcamEditors/FlatCAMGeoEditor.py:178 +#: flatcamEditors/FlatCAMGeoEditor.py:3036 +#: flatcamEditors/FlatCAMGeoEditor.py:3064 +#: flatcamEditors/FlatCAMGeoEditor.py:3092 +#: flatcamEditors/FlatCAMGrbEditor.py:5116 msgid "Buffer distance value is missing or wrong format. Add it and retry." msgstr "" "La valeur de la distance tampon est un format manquant ou incorrect. Ajoutez-" "le et réessayez." -#: AppEditors/FlatCAMGeoEditor.py:241 +#: flatcamEditors/FlatCAMGeoEditor.py:242 msgid "Font" msgstr "Police" -#: AppEditors/FlatCAMGeoEditor.py:322 AppGUI/MainGUI.py:1452 +#: flatcamEditors/FlatCAMGeoEditor.py:323 flatcamGUI/FlatCAMGUI.py:2208 msgid "Text" msgstr "Texte" -#: AppEditors/FlatCAMGeoEditor.py:348 +#: flatcamEditors/FlatCAMGeoEditor.py:349 msgid "Text Tool" msgstr "Outil Texte" -#: AppEditors/FlatCAMGeoEditor.py:404 AppGUI/MainGUI.py:502 -#: AppGUI/MainGUI.py:1199 AppGUI/ObjectUI.py:597 AppGUI/ObjectUI.py:1564 -#: AppObjects/FlatCAMExcellon.py:852 AppObjects/FlatCAMExcellon.py:1242 -#: AppObjects/FlatCAMGeometry.py:825 AppTools/ToolIsolation.py:313 -#: AppTools/ToolIsolation.py:1171 AppTools/ToolNCC.py:331 -#: AppTools/ToolNCC.py:797 AppTools/ToolPaint.py:313 AppTools/ToolPaint.py:766 +#: flatcamEditors/FlatCAMGeoEditor.py:405 flatcamGUI/FlatCAMGUI.py:511 +#: flatcamGUI/FlatCAMGUI.py:1158 flatcamGUI/ObjectUI.py:818 +#: flatcamGUI/ObjectUI.py:1662 flatcamObjects/FlatCAMExcellon.py:742 +#: flatcamObjects/FlatCAMExcellon.py:1084 flatcamObjects/FlatCAMGeometry.py:759 +#: flatcamTools/ToolNCC.py:331 flatcamTools/ToolNCC.py:797 +#: flatcamTools/ToolPaint.py:314 flatcamTools/ToolPaint.py:767 msgid "Tool" msgstr "Outil" -#: AppEditors/FlatCAMGeoEditor.py:438 +#: flatcamEditors/FlatCAMGeoEditor.py:439 flatcamGUI/ObjectUI.py:364 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:43 msgid "Tool dia" -msgstr "Diam Outil" +msgstr "Outil dia" -#: AppEditors/FlatCAMGeoEditor.py:440 +#: flatcamEditors/FlatCAMGeoEditor.py:441 msgid "Diameter of the tool to be used in the operation." msgstr "Diamètre de l'outil à utiliser dans l'opération." -#: AppEditors/FlatCAMGeoEditor.py:486 +#: flatcamEditors/FlatCAMGeoEditor.py:487 msgid "" "Algorithm to paint the polygons:\n" "- Standard: Fixed step inwards.\n" @@ -1758,82 +3666,95 @@ msgstr "" "- À base de graines: à l'extérieur des graines.\n" "- Ligne: lignes parallèles." -#: AppEditors/FlatCAMGeoEditor.py:505 +#: flatcamEditors/FlatCAMGeoEditor.py:506 msgid "Connect:" msgstr "Relier:" -#: AppEditors/FlatCAMGeoEditor.py:515 +#: flatcamEditors/FlatCAMGeoEditor.py:516 msgid "Contour:" msgstr "Contour:" -#: AppEditors/FlatCAMGeoEditor.py:528 AppGUI/MainGUI.py:1456 +#: flatcamEditors/FlatCAMGeoEditor.py:529 flatcamGUI/FlatCAMGUI.py:2212 msgid "Paint" msgstr "Peindre" -#: AppEditors/FlatCAMGeoEditor.py:546 AppGUI/MainGUI.py:912 -#: AppGUI/MainGUI.py:1944 AppGUI/ObjectUI.py:2069 AppTools/ToolPaint.py:42 -#: AppTools/ToolPaint.py:737 +#: flatcamEditors/FlatCAMGeoEditor.py:547 flatcamGUI/FlatCAMGUI.py:924 +#: flatcamGUI/FlatCAMGUI.py:2628 flatcamGUI/ObjectUI.py:2139 +#: flatcamTools/ToolPaint.py:43 flatcamTools/ToolPaint.py:738 msgid "Paint Tool" msgstr "Outil de Peinture" -#: AppEditors/FlatCAMGeoEditor.py:582 AppEditors/FlatCAMGeoEditor.py:1054 -#: AppEditors/FlatCAMGeoEditor.py:3023 AppEditors/FlatCAMGeoEditor.py:3051 -#: AppEditors/FlatCAMGeoEditor.py:3079 AppEditors/FlatCAMGeoEditor.py:4496 -#: AppEditors/FlatCAMGrbEditor.py:5761 +#: flatcamEditors/FlatCAMGeoEditor.py:583 +#: flatcamEditors/FlatCAMGeoEditor.py:1055 +#: flatcamEditors/FlatCAMGeoEditor.py:3024 +#: flatcamEditors/FlatCAMGeoEditor.py:3052 +#: flatcamEditors/FlatCAMGeoEditor.py:3080 +#: flatcamEditors/FlatCAMGeoEditor.py:4502 +#: flatcamEditors/FlatCAMGrbEditor.py:5767 msgid "Cancelled. No shape selected." msgstr "Annulé. Aucune forme sélectionnée." -#: AppEditors/FlatCAMGeoEditor.py:595 AppEditors/FlatCAMGeoEditor.py:3041 -#: AppEditors/FlatCAMGeoEditor.py:3069 AppEditors/FlatCAMGeoEditor.py:3097 -#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:69 -#: AppTools/ToolProperties.py:117 AppTools/ToolProperties.py:162 +#: flatcamEditors/FlatCAMGeoEditor.py:596 +#: flatcamEditors/FlatCAMGeoEditor.py:3042 +#: flatcamEditors/FlatCAMGeoEditor.py:3070 +#: flatcamEditors/FlatCAMGeoEditor.py:3098 +#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:59 +#: flatcamTools/ToolProperties.py:117 flatcamTools/ToolProperties.py:162 msgid "Tools" msgstr "Outils" -#: AppEditors/FlatCAMGeoEditor.py:606 AppEditors/FlatCAMGeoEditor.py:990 -#: AppEditors/FlatCAMGrbEditor.py:5300 AppEditors/FlatCAMGrbEditor.py:5697 -#: AppGUI/MainGUI.py:935 AppGUI/MainGUI.py:1967 AppTools/ToolTransform.py:460 +#: flatcamEditors/FlatCAMGeoEditor.py:607 +#: flatcamEditors/FlatCAMGeoEditor.py:991 +#: flatcamEditors/FlatCAMGrbEditor.py:5306 +#: flatcamEditors/FlatCAMGrbEditor.py:5703 flatcamGUI/FlatCAMGUI.py:945 +#: flatcamGUI/FlatCAMGUI.py:2649 flatcamTools/ToolTransform.py:460 msgid "Transform Tool" msgstr "Outil de Transformation" -#: AppEditors/FlatCAMGeoEditor.py:607 AppEditors/FlatCAMGeoEditor.py:672 -#: AppEditors/FlatCAMGrbEditor.py:5301 AppEditors/FlatCAMGrbEditor.py:5366 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:45 -#: AppTools/ToolTransform.py:24 AppTools/ToolTransform.py:466 +#: flatcamEditors/FlatCAMGeoEditor.py:608 +#: flatcamEditors/FlatCAMGeoEditor.py:673 +#: flatcamEditors/FlatCAMGrbEditor.py:5307 +#: flatcamEditors/FlatCAMGrbEditor.py:5372 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:45 +#: flatcamTools/ToolTransform.py:24 flatcamTools/ToolTransform.py:466 msgid "Rotate" msgstr "Tourner" -#: AppEditors/FlatCAMGeoEditor.py:608 AppEditors/FlatCAMGrbEditor.py:5302 -#: AppTools/ToolTransform.py:25 +#: flatcamEditors/FlatCAMGeoEditor.py:609 +#: flatcamEditors/FlatCAMGrbEditor.py:5308 flatcamTools/ToolTransform.py:25 msgid "Skew/Shear" msgstr "Inclinaison/Cisaillement" -#: AppEditors/FlatCAMGeoEditor.py:609 AppEditors/FlatCAMGrbEditor.py:2687 -#: AppEditors/FlatCAMGrbEditor.py:5303 AppGUI/MainGUI.py:1057 -#: AppGUI/MainGUI.py:1499 AppGUI/MainGUI.py:2089 AppGUI/MainGUI.py:4513 -#: AppGUI/ObjectUI.py:125 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:95 -#: AppTools/ToolTransform.py:26 +#: flatcamEditors/FlatCAMGeoEditor.py:610 +#: flatcamEditors/FlatCAMGrbEditor.py:2680 +#: flatcamEditors/FlatCAMGrbEditor.py:5309 flatcamGUI/FlatCAMGUI.py:1063 +#: flatcamGUI/FlatCAMGUI.py:2140 flatcamGUI/FlatCAMGUI.py:2255 +#: flatcamGUI/FlatCAMGUI.py:2767 flatcamGUI/ObjectUI.py:125 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:95 +#: flatcamTools/ToolTransform.py:26 msgid "Scale" msgstr "Mise à l'échelle" -#: AppEditors/FlatCAMGeoEditor.py:610 AppEditors/FlatCAMGrbEditor.py:5304 -#: AppTools/ToolTransform.py:27 +#: flatcamEditors/FlatCAMGeoEditor.py:611 +#: flatcamEditors/FlatCAMGrbEditor.py:5310 flatcamTools/ToolTransform.py:27 msgid "Mirror (Flip)" msgstr "Miroir (flip)" -#: AppEditors/FlatCAMGeoEditor.py:624 AppEditors/FlatCAMGrbEditor.py:5318 -#: AppGUI/MainGUI.py:844 AppGUI/MainGUI.py:1878 +#: flatcamEditors/FlatCAMGeoEditor.py:625 +#: flatcamEditors/FlatCAMGrbEditor.py:5324 flatcamGUI/FlatCAMGUI.py:856 +#: flatcamGUI/FlatCAMGUI.py:2564 msgid "Editor" msgstr "Éditeur" -#: AppEditors/FlatCAMGeoEditor.py:656 AppEditors/FlatCAMGrbEditor.py:5350 +#: flatcamEditors/FlatCAMGeoEditor.py:657 +#: flatcamEditors/FlatCAMGrbEditor.py:5356 msgid "Angle:" msgstr "Angle:" -#: AppEditors/FlatCAMGeoEditor.py:658 AppEditors/FlatCAMGrbEditor.py:5352 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:55 -#: AppTools/ToolTransform.py:62 +#: flatcamEditors/FlatCAMGeoEditor.py:659 +#: flatcamEditors/FlatCAMGrbEditor.py:5358 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:55 +#: flatcamTools/ToolTransform.py:62 msgid "" "Angle for Rotation action, in degrees.\n" "Float number between -360 and 359.\n" @@ -1845,7 +3766,8 @@ msgstr "" "Nombres positifs pour le mouvement en CW.\n" "Nombres négatifs pour le mouvement CCW." -#: AppEditors/FlatCAMGeoEditor.py:674 AppEditors/FlatCAMGrbEditor.py:5368 +#: flatcamEditors/FlatCAMGeoEditor.py:675 +#: flatcamEditors/FlatCAMGrbEditor.py:5374 msgid "" "Rotate the selected shape(s).\n" "The point of reference is the middle of\n" @@ -1855,15 +3777,18 @@ msgstr "" "Le point de référence est le milieu de\n" "le cadre de sélection pour toutes les formes sélectionnées." -#: AppEditors/FlatCAMGeoEditor.py:697 AppEditors/FlatCAMGrbEditor.py:5391 +#: flatcamEditors/FlatCAMGeoEditor.py:698 +#: flatcamEditors/FlatCAMGrbEditor.py:5397 msgid "Angle X:" msgstr "Angle X:" -#: AppEditors/FlatCAMGeoEditor.py:699 AppEditors/FlatCAMGeoEditor.py:719 -#: AppEditors/FlatCAMGrbEditor.py:5393 AppEditors/FlatCAMGrbEditor.py:5413 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:74 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:88 -#: AppTools/ToolCalibration.py:505 AppTools/ToolCalibration.py:518 +#: flatcamEditors/FlatCAMGeoEditor.py:700 +#: flatcamEditors/FlatCAMGeoEditor.py:720 +#: flatcamEditors/FlatCAMGrbEditor.py:5399 +#: flatcamEditors/FlatCAMGrbEditor.py:5419 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:74 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:88 +#: flatcamTools/ToolCalibration.py:505 flatcamTools/ToolCalibration.py:518 msgid "" "Angle for Skew action, in degrees.\n" "Float number between -360 and 359." @@ -1871,13 +3796,15 @@ msgstr "" "Angle pour l'action asymétrique, en degrés.\n" "Nombre flottant entre -360 et 359." -#: AppEditors/FlatCAMGeoEditor.py:710 AppEditors/FlatCAMGrbEditor.py:5404 -#: AppTools/ToolTransform.py:467 +#: flatcamEditors/FlatCAMGeoEditor.py:711 +#: flatcamEditors/FlatCAMGrbEditor.py:5410 flatcamTools/ToolTransform.py:467 msgid "Skew X" -msgstr "Inclinaison X" +msgstr "Fausser X" -#: AppEditors/FlatCAMGeoEditor.py:712 AppEditors/FlatCAMGeoEditor.py:732 -#: AppEditors/FlatCAMGrbEditor.py:5406 AppEditors/FlatCAMGrbEditor.py:5426 +#: flatcamEditors/FlatCAMGeoEditor.py:713 +#: flatcamEditors/FlatCAMGeoEditor.py:733 +#: flatcamEditors/FlatCAMGrbEditor.py:5412 +#: flatcamEditors/FlatCAMGrbEditor.py:5432 msgid "" "Skew/shear the selected shape(s).\n" "The point of reference is the middle of\n" @@ -1887,31 +3814,35 @@ msgstr "" "Le point de référence est le milieu de\n" "le cadre de sélection pour toutes les formes sélectionnées." -#: AppEditors/FlatCAMGeoEditor.py:717 AppEditors/FlatCAMGrbEditor.py:5411 +#: flatcamEditors/FlatCAMGeoEditor.py:718 +#: flatcamEditors/FlatCAMGrbEditor.py:5417 msgid "Angle Y:" msgstr "Angle Y:" -#: AppEditors/FlatCAMGeoEditor.py:730 AppEditors/FlatCAMGrbEditor.py:5424 -#: AppTools/ToolTransform.py:468 +#: flatcamEditors/FlatCAMGeoEditor.py:731 +#: flatcamEditors/FlatCAMGrbEditor.py:5430 flatcamTools/ToolTransform.py:468 msgid "Skew Y" -msgstr "Inclinaison Y" +msgstr "Fausser Y" -#: AppEditors/FlatCAMGeoEditor.py:758 AppEditors/FlatCAMGrbEditor.py:5452 +#: flatcamEditors/FlatCAMGeoEditor.py:759 +#: flatcamEditors/FlatCAMGrbEditor.py:5458 msgid "Factor X:" msgstr "Facteur X:" -#: AppEditors/FlatCAMGeoEditor.py:760 AppEditors/FlatCAMGrbEditor.py:5454 -#: AppTools/ToolCalibration.py:469 +#: flatcamEditors/FlatCAMGeoEditor.py:761 +#: flatcamEditors/FlatCAMGrbEditor.py:5460 flatcamTools/ToolCalibration.py:469 msgid "Factor for Scale action over X axis." msgstr "Facteur pour l'action de mise à l'échelle sur l'axe X." -#: AppEditors/FlatCAMGeoEditor.py:770 AppEditors/FlatCAMGrbEditor.py:5464 -#: AppTools/ToolTransform.py:469 +#: flatcamEditors/FlatCAMGeoEditor.py:771 +#: flatcamEditors/FlatCAMGrbEditor.py:5470 flatcamTools/ToolTransform.py:469 msgid "Scale X" msgstr "Mise à l'échelle X" -#: AppEditors/FlatCAMGeoEditor.py:772 AppEditors/FlatCAMGeoEditor.py:791 -#: AppEditors/FlatCAMGrbEditor.py:5466 AppEditors/FlatCAMGrbEditor.py:5485 +#: flatcamEditors/FlatCAMGeoEditor.py:773 +#: flatcamEditors/FlatCAMGeoEditor.py:792 +#: flatcamEditors/FlatCAMGrbEditor.py:5472 +#: flatcamEditors/FlatCAMGrbEditor.py:5491 msgid "" "Scale the selected shape(s).\n" "The point of reference depends on \n" @@ -1921,27 +3852,30 @@ msgstr "" "Le point de référence dépend de\n" "l'état de la case à cocher référence d'échelle." -#: AppEditors/FlatCAMGeoEditor.py:777 AppEditors/FlatCAMGrbEditor.py:5471 +#: flatcamEditors/FlatCAMGeoEditor.py:778 +#: flatcamEditors/FlatCAMGrbEditor.py:5477 msgid "Factor Y:" msgstr "Facteur Y:" -#: AppEditors/FlatCAMGeoEditor.py:779 AppEditors/FlatCAMGrbEditor.py:5473 -#: AppTools/ToolCalibration.py:481 +#: flatcamEditors/FlatCAMGeoEditor.py:780 +#: flatcamEditors/FlatCAMGrbEditor.py:5479 flatcamTools/ToolCalibration.py:481 msgid "Factor for Scale action over Y axis." msgstr "Facteur de Mise à l'échelle de l'action sur l'axe des ordonnées." -#: AppEditors/FlatCAMGeoEditor.py:789 AppEditors/FlatCAMGrbEditor.py:5483 -#: AppTools/ToolTransform.py:470 +#: flatcamEditors/FlatCAMGeoEditor.py:790 +#: flatcamEditors/FlatCAMGrbEditor.py:5489 flatcamTools/ToolTransform.py:470 msgid "Scale Y" msgstr "Mise à l'échelle Y" -#: AppEditors/FlatCAMGeoEditor.py:798 AppEditors/FlatCAMGrbEditor.py:5492 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:124 -#: AppTools/ToolTransform.py:189 +#: flatcamEditors/FlatCAMGeoEditor.py:799 +#: flatcamEditors/FlatCAMGrbEditor.py:5498 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:124 +#: flatcamTools/ToolTransform.py:189 msgid "Link" msgstr "Lien" -#: AppEditors/FlatCAMGeoEditor.py:800 AppEditors/FlatCAMGrbEditor.py:5494 +#: flatcamEditors/FlatCAMGeoEditor.py:801 +#: flatcamEditors/FlatCAMGrbEditor.py:5500 msgid "" "Scale the selected shape(s)\n" "using the Scale Factor X for both axis." @@ -1949,13 +3883,15 @@ msgstr "" "Mettre à l'échelle les formes sélectionnées\n" "en utilisant le facteur d'échelle X pour les deux axes." -#: AppEditors/FlatCAMGeoEditor.py:806 AppEditors/FlatCAMGrbEditor.py:5500 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:132 -#: AppTools/ToolTransform.py:196 +#: flatcamEditors/FlatCAMGeoEditor.py:807 +#: flatcamEditors/FlatCAMGrbEditor.py:5506 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:132 +#: flatcamTools/ToolTransform.py:196 msgid "Scale Reference" msgstr "Référence d'échelle" -#: AppEditors/FlatCAMGeoEditor.py:808 AppEditors/FlatCAMGrbEditor.py:5502 +#: flatcamEditors/FlatCAMGeoEditor.py:809 +#: flatcamEditors/FlatCAMGrbEditor.py:5508 msgid "" "Scale the selected shape(s)\n" "using the origin reference when checked,\n" @@ -1967,21 +3903,25 @@ msgstr "" "et le centre de la plus grande boîte englobante\n" "des formes sélectionnées quand elle est décochée." -#: AppEditors/FlatCAMGeoEditor.py:836 AppEditors/FlatCAMGrbEditor.py:5531 +#: flatcamEditors/FlatCAMGeoEditor.py:837 +#: flatcamEditors/FlatCAMGrbEditor.py:5537 msgid "Value X:" msgstr "Valeur X:" -#: AppEditors/FlatCAMGeoEditor.py:838 AppEditors/FlatCAMGrbEditor.py:5533 +#: flatcamEditors/FlatCAMGeoEditor.py:839 +#: flatcamEditors/FlatCAMGrbEditor.py:5539 msgid "Value for Offset action on X axis." msgstr "Valeur pour l'action de décalage sur l'axe X." -#: AppEditors/FlatCAMGeoEditor.py:848 AppEditors/FlatCAMGrbEditor.py:5543 -#: AppTools/ToolTransform.py:473 +#: flatcamEditors/FlatCAMGeoEditor.py:849 +#: flatcamEditors/FlatCAMGrbEditor.py:5549 flatcamTools/ToolTransform.py:473 msgid "Offset X" msgstr "Décalage X" -#: AppEditors/FlatCAMGeoEditor.py:850 AppEditors/FlatCAMGeoEditor.py:870 -#: AppEditors/FlatCAMGrbEditor.py:5545 AppEditors/FlatCAMGrbEditor.py:5565 +#: flatcamEditors/FlatCAMGeoEditor.py:851 +#: flatcamEditors/FlatCAMGeoEditor.py:871 +#: flatcamEditors/FlatCAMGrbEditor.py:5551 +#: flatcamEditors/FlatCAMGrbEditor.py:5571 msgid "" "Offset the selected shape(s).\n" "The point of reference is the middle of\n" @@ -1991,26 +3931,30 @@ msgstr "" "Le point de référence est le milieu de\n" "le cadre de sélection pour toutes les formes sélectionnées.\n" -#: AppEditors/FlatCAMGeoEditor.py:856 AppEditors/FlatCAMGrbEditor.py:5551 +#: flatcamEditors/FlatCAMGeoEditor.py:857 +#: flatcamEditors/FlatCAMGrbEditor.py:5557 msgid "Value Y:" msgstr "Valeur Y:" -#: AppEditors/FlatCAMGeoEditor.py:858 AppEditors/FlatCAMGrbEditor.py:5553 +#: flatcamEditors/FlatCAMGeoEditor.py:859 +#: flatcamEditors/FlatCAMGrbEditor.py:5559 msgid "Value for Offset action on Y axis." msgstr "Valeur pour l'action de décalage sur l'axe Y." -#: AppEditors/FlatCAMGeoEditor.py:868 AppEditors/FlatCAMGrbEditor.py:5563 -#: AppTools/ToolTransform.py:474 +#: flatcamEditors/FlatCAMGeoEditor.py:869 +#: flatcamEditors/FlatCAMGrbEditor.py:5569 flatcamTools/ToolTransform.py:474 msgid "Offset Y" msgstr "Décalage Y" -#: AppEditors/FlatCAMGeoEditor.py:899 AppEditors/FlatCAMGrbEditor.py:5594 -#: AppTools/ToolTransform.py:475 +#: flatcamEditors/FlatCAMGeoEditor.py:900 +#: flatcamEditors/FlatCAMGrbEditor.py:5600 flatcamTools/ToolTransform.py:475 msgid "Flip on X" msgstr "Miroir sur X" -#: AppEditors/FlatCAMGeoEditor.py:901 AppEditors/FlatCAMGeoEditor.py:908 -#: AppEditors/FlatCAMGrbEditor.py:5596 AppEditors/FlatCAMGrbEditor.py:5603 +#: flatcamEditors/FlatCAMGeoEditor.py:902 +#: flatcamEditors/FlatCAMGeoEditor.py:909 +#: flatcamEditors/FlatCAMGrbEditor.py:5602 +#: flatcamEditors/FlatCAMGrbEditor.py:5609 msgid "" "Flip the selected shape(s) over the X axis.\n" "Does not create a new shape." @@ -2018,16 +3962,18 @@ msgstr "" "Retournez la ou les formes sélectionnées sur l’axe X.\n" "Ne crée pas une nouvelle forme." -#: AppEditors/FlatCAMGeoEditor.py:906 AppEditors/FlatCAMGrbEditor.py:5601 -#: AppTools/ToolTransform.py:476 +#: flatcamEditors/FlatCAMGeoEditor.py:907 +#: flatcamEditors/FlatCAMGrbEditor.py:5607 flatcamTools/ToolTransform.py:476 msgid "Flip on Y" msgstr "Miroir sur Y" -#: AppEditors/FlatCAMGeoEditor.py:914 AppEditors/FlatCAMGrbEditor.py:5609 +#: flatcamEditors/FlatCAMGeoEditor.py:915 +#: flatcamEditors/FlatCAMGrbEditor.py:5615 msgid "Ref Pt" msgstr "Point de réf" -#: AppEditors/FlatCAMGeoEditor.py:916 AppEditors/FlatCAMGrbEditor.py:5611 +#: flatcamEditors/FlatCAMGeoEditor.py:917 +#: flatcamEditors/FlatCAMGrbEditor.py:5617 msgid "" "Flip the selected shape(s)\n" "around the point in Point Entry Field.\n" @@ -2049,12 +3995,13 @@ msgstr "" "Ou entrez les coordonnées au format (x, y) dans le champ\n" "Pointez sur le champ Entrée et cliquez sur Basculer sur X (Y)." -#: AppEditors/FlatCAMGeoEditor.py:928 AppEditors/FlatCAMGrbEditor.py:5623 +#: flatcamEditors/FlatCAMGeoEditor.py:929 +#: flatcamEditors/FlatCAMGrbEditor.py:5629 msgid "Point:" msgstr "Point:" -#: AppEditors/FlatCAMGeoEditor.py:930 AppEditors/FlatCAMGrbEditor.py:5625 -#: AppTools/ToolTransform.py:299 +#: flatcamEditors/FlatCAMGeoEditor.py:931 +#: flatcamEditors/FlatCAMGrbEditor.py:5631 flatcamTools/ToolTransform.py:299 msgid "" "Coordinates in format (x, y) used as reference for mirroring.\n" "The 'x' in (x, y) will be used when using Flip on X and\n" @@ -2065,19 +4012,8 @@ msgstr "" "Le \"x\" dans (x, y) sera utilisé lors de l'utilisation de Flip sur X et\n" "le 'y' dans (x, y) sera utilisé lors de l'utilisation de Flip sur Y." -#: AppEditors/FlatCAMGeoEditor.py:938 AppEditors/FlatCAMGrbEditor.py:2590 -#: AppEditors/FlatCAMGrbEditor.py:5635 AppGUI/ObjectUI.py:1494 -#: AppTools/ToolDblSided.py:192 AppTools/ToolDblSided.py:425 -#: AppTools/ToolIsolation.py:276 AppTools/ToolIsolation.py:610 -#: AppTools/ToolNCC.py:294 AppTools/ToolNCC.py:631 AppTools/ToolPaint.py:276 -#: AppTools/ToolPaint.py:675 AppTools/ToolSolderPaste.py:127 -#: AppTools/ToolSolderPaste.py:605 AppTools/ToolTransform.py:478 -#: App_Main.py:5670 -msgid "Add" -msgstr "Ajouter" - -#: AppEditors/FlatCAMGeoEditor.py:940 AppEditors/FlatCAMGrbEditor.py:5637 -#: AppTools/ToolTransform.py:309 +#: flatcamEditors/FlatCAMGeoEditor.py:941 +#: flatcamEditors/FlatCAMGrbEditor.py:5643 flatcamTools/ToolTransform.py:309 msgid "" "The point coordinates can be captured by\n" "left click on canvas together with pressing\n" @@ -2087,311 +4023,358 @@ msgstr "" "clic gauche sur la toile avec appui\n" "Touche Majuscule. Puis cliquez sur le bouton Ajouter pour insérer." -#: AppEditors/FlatCAMGeoEditor.py:1303 AppEditors/FlatCAMGrbEditor.py:5945 +#: flatcamEditors/FlatCAMGeoEditor.py:1304 +#: flatcamEditors/FlatCAMGrbEditor.py:5951 msgid "No shape selected. Please Select a shape to rotate!" msgstr "" "Aucune forme sélectionnée. Veuillez sélectionner une forme à faire pivoter!" -#: AppEditors/FlatCAMGeoEditor.py:1306 AppEditors/FlatCAMGrbEditor.py:5948 -#: AppTools/ToolTransform.py:679 +#: flatcamEditors/FlatCAMGeoEditor.py:1307 +#: flatcamEditors/FlatCAMGrbEditor.py:5954 flatcamTools/ToolTransform.py:679 msgid "Appying Rotate" msgstr "Appliquer la Rotation" -#: AppEditors/FlatCAMGeoEditor.py:1332 AppEditors/FlatCAMGrbEditor.py:5980 +#: flatcamEditors/FlatCAMGeoEditor.py:1333 +#: flatcamEditors/FlatCAMGrbEditor.py:5986 msgid "Done. Rotate completed." msgstr "Terminé. Rotation terminée." -#: AppEditors/FlatCAMGeoEditor.py:1334 +#: flatcamEditors/FlatCAMGeoEditor.py:1335 msgid "Rotation action was not executed" msgstr "L'action de rotation n'a pas été exécutée" -#: AppEditors/FlatCAMGeoEditor.py:1353 AppEditors/FlatCAMGrbEditor.py:5999 +#: flatcamEditors/FlatCAMGeoEditor.py:1354 +#: flatcamEditors/FlatCAMGrbEditor.py:6005 msgid "No shape selected. Please Select a shape to flip!" msgstr "" "Aucune forme sélectionnée. Veuillez sélectionner une forme à retourner!" -#: AppEditors/FlatCAMGeoEditor.py:1356 AppEditors/FlatCAMGrbEditor.py:6002 -#: AppTools/ToolTransform.py:728 +#: flatcamEditors/FlatCAMGeoEditor.py:1357 +#: flatcamEditors/FlatCAMGrbEditor.py:6008 flatcamTools/ToolTransform.py:728 msgid "Applying Flip" msgstr "Appliquer Flip" -#: AppEditors/FlatCAMGeoEditor.py:1385 AppEditors/FlatCAMGrbEditor.py:6040 -#: AppTools/ToolTransform.py:769 +#: flatcamEditors/FlatCAMGeoEditor.py:1386 +#: flatcamEditors/FlatCAMGrbEditor.py:6046 flatcamTools/ToolTransform.py:769 msgid "Flip on the Y axis done" msgstr "Tournez sur l'axe des Y fait" -#: AppEditors/FlatCAMGeoEditor.py:1389 AppEditors/FlatCAMGrbEditor.py:6049 -#: AppTools/ToolTransform.py:778 +#: flatcamEditors/FlatCAMGeoEditor.py:1390 +#: flatcamEditors/FlatCAMGrbEditor.py:6055 flatcamTools/ToolTransform.py:778 msgid "Flip on the X axis done" msgstr "Tournez sur l'axe X terminé" -#: AppEditors/FlatCAMGeoEditor.py:1397 +#: flatcamEditors/FlatCAMGeoEditor.py:1398 msgid "Flip action was not executed" msgstr "L'action Flip n'a pas été exécutée" -#: AppEditors/FlatCAMGeoEditor.py:1415 AppEditors/FlatCAMGrbEditor.py:6069 +#: flatcamEditors/FlatCAMGeoEditor.py:1416 +#: flatcamEditors/FlatCAMGrbEditor.py:6075 msgid "No shape selected. Please Select a shape to shear/skew!" msgstr "" "Aucune forme sélectionnée. Veuillez sélectionner une forme pour cisailler / " "incliner!" -#: AppEditors/FlatCAMGeoEditor.py:1418 AppEditors/FlatCAMGrbEditor.py:6072 -#: AppTools/ToolTransform.py:801 +#: flatcamEditors/FlatCAMGeoEditor.py:1419 +#: flatcamEditors/FlatCAMGrbEditor.py:6078 flatcamTools/ToolTransform.py:801 msgid "Applying Skew" msgstr "Application de l'inclinaison" -#: AppEditors/FlatCAMGeoEditor.py:1441 AppEditors/FlatCAMGrbEditor.py:6106 +#: flatcamEditors/FlatCAMGeoEditor.py:1442 +#: flatcamEditors/FlatCAMGrbEditor.py:6112 msgid "Skew on the X axis done" msgstr "Inclinaison sur l'axe X terminée" -#: AppEditors/FlatCAMGeoEditor.py:1443 AppEditors/FlatCAMGrbEditor.py:6108 +#: flatcamEditors/FlatCAMGeoEditor.py:1444 +#: flatcamEditors/FlatCAMGrbEditor.py:6114 msgid "Skew on the Y axis done" msgstr "Inclinaison sur l'axe des Y faite" -#: AppEditors/FlatCAMGeoEditor.py:1446 +#: flatcamEditors/FlatCAMGeoEditor.py:1447 msgid "Skew action was not executed" msgstr "L'action de biais n'a pas été exécutée" -#: AppEditors/FlatCAMGeoEditor.py:1468 AppEditors/FlatCAMGrbEditor.py:6130 +#: flatcamEditors/FlatCAMGeoEditor.py:1469 +#: flatcamEditors/FlatCAMGrbEditor.py:6136 msgid "No shape selected. Please Select a shape to scale!" msgstr "" "Aucune forme sélectionnée. Veuillez sélectionner une forme à mettre à " "l'échelle!" -#: AppEditors/FlatCAMGeoEditor.py:1471 AppEditors/FlatCAMGrbEditor.py:6133 -#: AppTools/ToolTransform.py:847 +#: flatcamEditors/FlatCAMGeoEditor.py:1472 +#: flatcamEditors/FlatCAMGrbEditor.py:6139 flatcamTools/ToolTransform.py:847 msgid "Applying Scale" msgstr "Échelle d'application" -#: AppEditors/FlatCAMGeoEditor.py:1503 AppEditors/FlatCAMGrbEditor.py:6170 +#: flatcamEditors/FlatCAMGeoEditor.py:1504 +#: flatcamEditors/FlatCAMGrbEditor.py:6176 msgid "Scale on the X axis done" msgstr "Échelle terminée sur l'axe X" -#: AppEditors/FlatCAMGeoEditor.py:1505 AppEditors/FlatCAMGrbEditor.py:6172 +#: flatcamEditors/FlatCAMGeoEditor.py:1506 +#: flatcamEditors/FlatCAMGrbEditor.py:6178 msgid "Scale on the Y axis done" msgstr "Echelle terminée sur l'axe des Y" -#: AppEditors/FlatCAMGeoEditor.py:1507 +#: flatcamEditors/FlatCAMGeoEditor.py:1508 msgid "Scale action was not executed" msgstr "L'action d'échelle n'a pas été exécutée" -#: AppEditors/FlatCAMGeoEditor.py:1522 AppEditors/FlatCAMGrbEditor.py:6189 +#: flatcamEditors/FlatCAMGeoEditor.py:1523 +#: flatcamEditors/FlatCAMGrbEditor.py:6195 msgid "No shape selected. Please Select a shape to offset!" msgstr "" "Aucune forme sélectionnée. Veuillez sélectionner une forme à compenser!" -#: AppEditors/FlatCAMGeoEditor.py:1525 AppEditors/FlatCAMGrbEditor.py:6192 -#: AppTools/ToolTransform.py:897 +#: flatcamEditors/FlatCAMGeoEditor.py:1526 +#: flatcamEditors/FlatCAMGrbEditor.py:6198 flatcamTools/ToolTransform.py:897 msgid "Applying Offset" msgstr "Appliquer un Décalage" -#: AppEditors/FlatCAMGeoEditor.py:1535 AppEditors/FlatCAMGrbEditor.py:6213 +#: flatcamEditors/FlatCAMGeoEditor.py:1536 +#: flatcamEditors/FlatCAMGrbEditor.py:6219 msgid "Offset on the X axis done" msgstr "Décalage sur l'axe X terminé" -#: AppEditors/FlatCAMGeoEditor.py:1537 AppEditors/FlatCAMGrbEditor.py:6215 +#: flatcamEditors/FlatCAMGeoEditor.py:1538 +#: flatcamEditors/FlatCAMGrbEditor.py:6221 msgid "Offset on the Y axis done" msgstr "Décalage sur l'axe Y terminé" -#: AppEditors/FlatCAMGeoEditor.py:1540 +#: flatcamEditors/FlatCAMGeoEditor.py:1541 msgid "Offset action was not executed" msgstr "L'action offset n'a pas été exécutée" -#: AppEditors/FlatCAMGeoEditor.py:1544 AppEditors/FlatCAMGrbEditor.py:6222 +#: flatcamEditors/FlatCAMGeoEditor.py:1545 +#: flatcamEditors/FlatCAMGrbEditor.py:6228 msgid "Rotate ..." msgstr "Tourner ..." -#: AppEditors/FlatCAMGeoEditor.py:1545 AppEditors/FlatCAMGeoEditor.py:1600 -#: AppEditors/FlatCAMGeoEditor.py:1617 AppEditors/FlatCAMGrbEditor.py:6223 -#: AppEditors/FlatCAMGrbEditor.py:6272 AppEditors/FlatCAMGrbEditor.py:6287 +#: flatcamEditors/FlatCAMGeoEditor.py:1546 +#: flatcamEditors/FlatCAMGeoEditor.py:1601 +#: flatcamEditors/FlatCAMGeoEditor.py:1618 +#: flatcamEditors/FlatCAMGrbEditor.py:6229 +#: flatcamEditors/FlatCAMGrbEditor.py:6278 +#: flatcamEditors/FlatCAMGrbEditor.py:6293 msgid "Enter an Angle Value (degrees)" msgstr "Entrer une valeur d'angle (degrés)" -#: AppEditors/FlatCAMGeoEditor.py:1554 AppEditors/FlatCAMGrbEditor.py:6231 +#: flatcamEditors/FlatCAMGeoEditor.py:1555 +#: flatcamEditors/FlatCAMGrbEditor.py:6237 msgid "Geometry shape rotate done" msgstr "Rotation de la forme géométrique effectuée" -#: AppEditors/FlatCAMGeoEditor.py:1558 AppEditors/FlatCAMGrbEditor.py:6234 +#: flatcamEditors/FlatCAMGeoEditor.py:1559 +#: flatcamEditors/FlatCAMGrbEditor.py:6240 msgid "Geometry shape rotate cancelled" msgstr "Rotation de la forme géométrique annulée" -#: AppEditors/FlatCAMGeoEditor.py:1563 AppEditors/FlatCAMGrbEditor.py:6239 +#: flatcamEditors/FlatCAMGeoEditor.py:1564 +#: flatcamEditors/FlatCAMGrbEditor.py:6245 msgid "Offset on X axis ..." msgstr "Décalage sur l'axe des X ..." -#: AppEditors/FlatCAMGeoEditor.py:1564 AppEditors/FlatCAMGeoEditor.py:1583 -#: AppEditors/FlatCAMGrbEditor.py:6240 AppEditors/FlatCAMGrbEditor.py:6257 +#: flatcamEditors/FlatCAMGeoEditor.py:1565 +#: flatcamEditors/FlatCAMGeoEditor.py:1584 +#: flatcamEditors/FlatCAMGrbEditor.py:6246 +#: flatcamEditors/FlatCAMGrbEditor.py:6263 msgid "Enter a distance Value" msgstr "Entrez une valeur de distance" -#: AppEditors/FlatCAMGeoEditor.py:1573 AppEditors/FlatCAMGrbEditor.py:6248 +#: flatcamEditors/FlatCAMGeoEditor.py:1574 +#: flatcamEditors/FlatCAMGrbEditor.py:6254 msgid "Geometry shape offset on X axis done" msgstr "Géométrie décalée sur l'axe des X effectuée" -#: AppEditors/FlatCAMGeoEditor.py:1577 AppEditors/FlatCAMGrbEditor.py:6251 +#: flatcamEditors/FlatCAMGeoEditor.py:1578 +#: flatcamEditors/FlatCAMGrbEditor.py:6257 msgid "Geometry shape offset X cancelled" msgstr "Décalage géométrique X annulé" -#: AppEditors/FlatCAMGeoEditor.py:1582 AppEditors/FlatCAMGrbEditor.py:6256 +#: flatcamEditors/FlatCAMGeoEditor.py:1583 +#: flatcamEditors/FlatCAMGrbEditor.py:6262 msgid "Offset on Y axis ..." msgstr "Décalage sur l'axe Y ..." -#: AppEditors/FlatCAMGeoEditor.py:1592 AppEditors/FlatCAMGrbEditor.py:6265 +#: flatcamEditors/FlatCAMGeoEditor.py:1593 +#: flatcamEditors/FlatCAMGrbEditor.py:6271 msgid "Geometry shape offset on Y axis done" msgstr "Géométrie décalée sur l'axe des Y effectuée" -#: AppEditors/FlatCAMGeoEditor.py:1596 +#: flatcamEditors/FlatCAMGeoEditor.py:1597 msgid "Geometry shape offset on Y axis canceled" msgstr "Décalage de la forme de la géométrie sur l'axe des Y" -#: AppEditors/FlatCAMGeoEditor.py:1599 AppEditors/FlatCAMGrbEditor.py:6271 +#: flatcamEditors/FlatCAMGeoEditor.py:1600 +#: flatcamEditors/FlatCAMGrbEditor.py:6277 msgid "Skew on X axis ..." msgstr "Skew on X axis ..." -#: AppEditors/FlatCAMGeoEditor.py:1609 AppEditors/FlatCAMGrbEditor.py:6280 +#: flatcamEditors/FlatCAMGeoEditor.py:1610 +#: flatcamEditors/FlatCAMGrbEditor.py:6286 msgid "Geometry shape skew on X axis done" msgstr "Forme de la géométrie inclinée sur l'axe X terminée" -#: AppEditors/FlatCAMGeoEditor.py:1613 +#: flatcamEditors/FlatCAMGeoEditor.py:1614 msgid "Geometry shape skew on X axis canceled" msgstr "Géométrie inclinée sur l'axe X annulée" -#: AppEditors/FlatCAMGeoEditor.py:1616 AppEditors/FlatCAMGrbEditor.py:6286 +#: flatcamEditors/FlatCAMGeoEditor.py:1617 +#: flatcamEditors/FlatCAMGrbEditor.py:6292 msgid "Skew on Y axis ..." msgstr "Inclinez sur l'axe Y ..." -#: AppEditors/FlatCAMGeoEditor.py:1626 AppEditors/FlatCAMGrbEditor.py:6295 +#: flatcamEditors/FlatCAMGeoEditor.py:1627 +#: flatcamEditors/FlatCAMGrbEditor.py:6301 msgid "Geometry shape skew on Y axis done" msgstr "Géométrie inclinée sur l'axe des Y" -#: AppEditors/FlatCAMGeoEditor.py:1630 +#: flatcamEditors/FlatCAMGeoEditor.py:1631 msgid "Geometry shape skew on Y axis canceled" msgstr "Géométrie inclinée sur l'axe des Y oblitérée" -#: AppEditors/FlatCAMGeoEditor.py:2007 AppEditors/FlatCAMGeoEditor.py:2078 -#: AppEditors/FlatCAMGrbEditor.py:1444 AppEditors/FlatCAMGrbEditor.py:1522 +#: flatcamEditors/FlatCAMGeoEditor.py:2008 +#: flatcamEditors/FlatCAMGeoEditor.py:2079 +#: flatcamEditors/FlatCAMGrbEditor.py:1437 +#: flatcamEditors/FlatCAMGrbEditor.py:1515 msgid "Click on Center point ..." msgstr "Cliquez sur Point central ..." -#: AppEditors/FlatCAMGeoEditor.py:2020 AppEditors/FlatCAMGrbEditor.py:1454 +#: flatcamEditors/FlatCAMGeoEditor.py:2021 +#: flatcamEditors/FlatCAMGrbEditor.py:1447 msgid "Click on Perimeter point to complete ..." msgstr "Cliquez sur le point du périmètre pour terminer ..." -#: AppEditors/FlatCAMGeoEditor.py:2052 +#: flatcamEditors/FlatCAMGeoEditor.py:2053 msgid "Done. Adding Circle completed." msgstr "Terminé. Ajout du cercle terminé." -#: AppEditors/FlatCAMGeoEditor.py:2106 AppEditors/FlatCAMGrbEditor.py:1555 +#: flatcamEditors/FlatCAMGeoEditor.py:2107 +#: flatcamEditors/FlatCAMGrbEditor.py:1548 msgid "Click on Start point ..." msgstr "Cliquez sur le point de départ ..." -#: AppEditors/FlatCAMGeoEditor.py:2108 AppEditors/FlatCAMGrbEditor.py:1557 +#: flatcamEditors/FlatCAMGeoEditor.py:2109 +#: flatcamEditors/FlatCAMGrbEditor.py:1550 msgid "Click on Point3 ..." msgstr "Cliquez sur le point 3 ..." -#: AppEditors/FlatCAMGeoEditor.py:2110 AppEditors/FlatCAMGrbEditor.py:1559 +#: flatcamEditors/FlatCAMGeoEditor.py:2111 +#: flatcamEditors/FlatCAMGrbEditor.py:1552 msgid "Click on Stop point ..." msgstr "Cliquez sur le point d'arrêt ..." -#: AppEditors/FlatCAMGeoEditor.py:2115 AppEditors/FlatCAMGrbEditor.py:1564 +#: flatcamEditors/FlatCAMGeoEditor.py:2116 +#: flatcamEditors/FlatCAMGrbEditor.py:1557 msgid "Click on Stop point to complete ..." msgstr "Cliquez sur le point d'arrêt pour terminer ..." -#: AppEditors/FlatCAMGeoEditor.py:2117 AppEditors/FlatCAMGrbEditor.py:1566 +#: flatcamEditors/FlatCAMGeoEditor.py:2118 +#: flatcamEditors/FlatCAMGrbEditor.py:1559 msgid "Click on Point2 to complete ..." msgstr "Cliquez sur le point 2 pour compléter ..." -#: AppEditors/FlatCAMGeoEditor.py:2119 AppEditors/FlatCAMGrbEditor.py:1568 +#: flatcamEditors/FlatCAMGeoEditor.py:2120 +#: flatcamEditors/FlatCAMGrbEditor.py:1561 msgid "Click on Center point to complete ..." msgstr "Cliquez sur le point central pour terminer ..." -#: AppEditors/FlatCAMGeoEditor.py:2131 +#: flatcamEditors/FlatCAMGeoEditor.py:2132 #, python-format msgid "Direction: %s" msgstr "Direction: %s" -#: AppEditors/FlatCAMGeoEditor.py:2145 AppEditors/FlatCAMGrbEditor.py:1594 +#: flatcamEditors/FlatCAMGeoEditor.py:2146 +#: flatcamEditors/FlatCAMGrbEditor.py:1587 msgid "Mode: Start -> Stop -> Center. Click on Start point ..." msgstr "" "Mode: Démarrer -> Arrêter -> Centre. Cliquez sur le point de départ ..." -#: AppEditors/FlatCAMGeoEditor.py:2148 AppEditors/FlatCAMGrbEditor.py:1597 +#: flatcamEditors/FlatCAMGeoEditor.py:2149 +#: flatcamEditors/FlatCAMGrbEditor.py:1590 msgid "Mode: Point1 -> Point3 -> Point2. Click on Point1 ..." msgstr "Mode: Point 1 -> Point 3 -> Point 2. Cliquez sur Point 1 ..." -#: AppEditors/FlatCAMGeoEditor.py:2151 AppEditors/FlatCAMGrbEditor.py:1600 +#: flatcamEditors/FlatCAMGeoEditor.py:2152 +#: flatcamEditors/FlatCAMGrbEditor.py:1593 msgid "Mode: Center -> Start -> Stop. Click on Center point ..." msgstr "Mode: Centre -> Démarrer -> Arrêter. Cliquez sur Point central ..." -#: AppEditors/FlatCAMGeoEditor.py:2292 +#: flatcamEditors/FlatCAMGeoEditor.py:2293 msgid "Done. Arc completed." msgstr "Terminé. Arc terminé." -#: AppEditors/FlatCAMGeoEditor.py:2323 AppEditors/FlatCAMGeoEditor.py:2396 +#: flatcamEditors/FlatCAMGeoEditor.py:2324 +#: flatcamEditors/FlatCAMGeoEditor.py:2397 msgid "Click on 1st corner ..." msgstr "Cliquez sur le 1er coin ..." -#: AppEditors/FlatCAMGeoEditor.py:2335 +#: flatcamEditors/FlatCAMGeoEditor.py:2336 msgid "Click on opposite corner to complete ..." msgstr "Cliquez sur le coin opposé pour terminer ..." -#: AppEditors/FlatCAMGeoEditor.py:2365 +#: flatcamEditors/FlatCAMGeoEditor.py:2366 msgid "Done. Rectangle completed." msgstr "Terminé. Rectangle complété." -#: AppEditors/FlatCAMGeoEditor.py:2409 AppTools/ToolIsolation.py:2527 -#: AppTools/ToolNCC.py:1754 AppTools/ToolPaint.py:1647 Common.py:322 +#: flatcamEditors/FlatCAMGeoEditor.py:2410 +#: flatcamObjects/FlatCAMGeometry.py:2648 flatcamTools/ToolNCC.py:1733 +#: flatcamTools/ToolPaint.py:1628 msgid "Click on next Point or click right mouse button to complete ..." msgstr "" "Cliquez sur le point suivant ou cliquez avec le bouton droit de la souris " "pour terminer ..." -#: AppEditors/FlatCAMGeoEditor.py:2440 +#: flatcamEditors/FlatCAMGeoEditor.py:2441 msgid "Done. Polygon completed." msgstr "Terminé. Le polygone est terminé." -#: AppEditors/FlatCAMGeoEditor.py:2454 AppEditors/FlatCAMGeoEditor.py:2519 -#: AppEditors/FlatCAMGrbEditor.py:1102 AppEditors/FlatCAMGrbEditor.py:1322 +#: flatcamEditors/FlatCAMGeoEditor.py:2455 +#: flatcamEditors/FlatCAMGeoEditor.py:2520 +#: flatcamEditors/FlatCAMGrbEditor.py:1113 +#: flatcamEditors/FlatCAMGrbEditor.py:1324 msgid "Backtracked one point ..." msgstr "Retracé un point ..." -#: AppEditors/FlatCAMGeoEditor.py:2497 +#: flatcamEditors/FlatCAMGeoEditor.py:2498 msgid "Done. Path completed." msgstr "Terminé. Chemin complété." -#: AppEditors/FlatCAMGeoEditor.py:2656 +#: flatcamEditors/FlatCAMGeoEditor.py:2657 msgid "No shape selected. Select a shape to explode" msgstr "Aucune forme sélectionnée. Sélectionnez une forme à exploser" -#: AppEditors/FlatCAMGeoEditor.py:2689 +#: flatcamEditors/FlatCAMGeoEditor.py:2690 msgid "Done. Polygons exploded into lines." msgstr "Terminé. Les polygones ont explosé en lignes." -#: AppEditors/FlatCAMGeoEditor.py:2721 +#: flatcamEditors/FlatCAMGeoEditor.py:2722 msgid "MOVE: No shape selected. Select a shape to move" msgstr "Déplacer: Aucune forme sélectionnée. Sélectionnez une forme à déplacer" -#: AppEditors/FlatCAMGeoEditor.py:2724 AppEditors/FlatCAMGeoEditor.py:2744 +#: flatcamEditors/FlatCAMGeoEditor.py:2725 +#: flatcamEditors/FlatCAMGeoEditor.py:2745 msgid " MOVE: Click on reference point ..." msgstr " Déplacer: Cliquez sur le point de référence ..." -#: AppEditors/FlatCAMGeoEditor.py:2729 +#: flatcamEditors/FlatCAMGeoEditor.py:2730 msgid " Click on destination point ..." msgstr " Cliquez sur le point de destination ..." -#: AppEditors/FlatCAMGeoEditor.py:2769 +#: flatcamEditors/FlatCAMGeoEditor.py:2770 msgid "Done. Geometry(s) Move completed." msgstr "Terminé. Géométrie (s) Déplacement terminé." -#: AppEditors/FlatCAMGeoEditor.py:2902 +#: flatcamEditors/FlatCAMGeoEditor.py:2903 msgid "Done. Geometry(s) Copy completed." msgstr "Terminé. Géométrie (s) Copie terminée." -#: AppEditors/FlatCAMGeoEditor.py:2933 AppEditors/FlatCAMGrbEditor.py:897 +#: flatcamEditors/FlatCAMGeoEditor.py:2934 +#: flatcamEditors/FlatCAMGrbEditor.py:899 msgid "Click on 1st point ..." msgstr "Cliquez sur le 1er point ..." -#: AppEditors/FlatCAMGeoEditor.py:2957 +#: flatcamEditors/FlatCAMGeoEditor.py:2958 msgid "" "Font not supported. Only Regular, Bold, Italic and BoldItalic are supported. " "Error" @@ -2399,133 +4382,136 @@ msgstr "" "Police non supportée. Seuls les formats Normal, Gras, Italique et " "GrasItalique sont pris en charge. Erreur" -#: AppEditors/FlatCAMGeoEditor.py:2965 +#: flatcamEditors/FlatCAMGeoEditor.py:2966 msgid "No text to add." msgstr "Pas de texte à ajouter." -#: AppEditors/FlatCAMGeoEditor.py:2975 +#: flatcamEditors/FlatCAMGeoEditor.py:2976 msgid " Done. Adding Text completed." msgstr " Terminé. Ajout de texte terminé." -#: AppEditors/FlatCAMGeoEditor.py:3012 +#: flatcamEditors/FlatCAMGeoEditor.py:3013 msgid "Create buffer geometry ..." msgstr "Créer une géométrie tampon ..." -#: AppEditors/FlatCAMGeoEditor.py:3047 AppEditors/FlatCAMGrbEditor.py:5154 +#: flatcamEditors/FlatCAMGeoEditor.py:3048 +#: flatcamEditors/FlatCAMGrbEditor.py:5160 msgid "Done. Buffer Tool completed." msgstr "Terminé. L'outil Tampon est terminé." -#: AppEditors/FlatCAMGeoEditor.py:3075 +#: flatcamEditors/FlatCAMGeoEditor.py:3076 msgid "Done. Buffer Int Tool completed." msgstr "Terminé. L'outil Intérieur du Tampon est terminé." -#: AppEditors/FlatCAMGeoEditor.py:3103 +#: flatcamEditors/FlatCAMGeoEditor.py:3104 msgid "Done. Buffer Ext Tool completed." msgstr "Terminé. L'outil Extérieur du Tampon est terminé." -#: AppEditors/FlatCAMGeoEditor.py:3152 AppEditors/FlatCAMGrbEditor.py:2160 +#: flatcamEditors/FlatCAMGeoEditor.py:3153 +#: flatcamEditors/FlatCAMGrbEditor.py:2153 msgid "Select a shape to act as deletion area ..." msgstr "Sélectionnez une forme pour agir comme zone de suppression ..." -#: AppEditors/FlatCAMGeoEditor.py:3154 AppEditors/FlatCAMGeoEditor.py:3180 -#: AppEditors/FlatCAMGeoEditor.py:3186 AppEditors/FlatCAMGrbEditor.py:2162 +#: flatcamEditors/FlatCAMGeoEditor.py:3155 +#: flatcamEditors/FlatCAMGeoEditor.py:3181 +#: flatcamEditors/FlatCAMGeoEditor.py:3187 +#: flatcamEditors/FlatCAMGrbEditor.py:2155 msgid "Click to pick-up the erase shape..." msgstr "Cliquez pour récupérer la forme à effacer ..." -#: AppEditors/FlatCAMGeoEditor.py:3190 AppEditors/FlatCAMGrbEditor.py:2221 +#: flatcamEditors/FlatCAMGeoEditor.py:3191 +#: flatcamEditors/FlatCAMGrbEditor.py:2214 msgid "Click to erase ..." msgstr "Cliquez pour effacer ..." -#: AppEditors/FlatCAMGeoEditor.py:3219 AppEditors/FlatCAMGrbEditor.py:2254 +#: flatcamEditors/FlatCAMGeoEditor.py:3220 +#: flatcamEditors/FlatCAMGrbEditor.py:2247 msgid "Done. Eraser tool action completed." msgstr "Terminé. Action de l’outil gomme terminée." -#: AppEditors/FlatCAMGeoEditor.py:3269 +#: flatcamEditors/FlatCAMGeoEditor.py:3270 msgid "Create Paint geometry ..." msgstr "Créer une géométrie de peinture ..." -#: AppEditors/FlatCAMGeoEditor.py:3282 AppEditors/FlatCAMGrbEditor.py:2417 +#: flatcamEditors/FlatCAMGeoEditor.py:3283 +#: flatcamEditors/FlatCAMGrbEditor.py:2410 msgid "Shape transformations ..." msgstr "Transformations de forme ..." -#: AppEditors/FlatCAMGeoEditor.py:3338 -#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:27 +#: flatcamEditors/FlatCAMGeoEditor.py:3339 +#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:27 msgid "Geometry Editor" msgstr "Éditeur de Géométrie" -#: AppEditors/FlatCAMGeoEditor.py:3344 AppEditors/FlatCAMGrbEditor.py:2495 -#: AppEditors/FlatCAMGrbEditor.py:3952 AppGUI/ObjectUI.py:282 -#: AppGUI/ObjectUI.py:1394 AppGUI/ObjectUI.py:2256 AppTools/ToolCutOut.py:95 +#: flatcamEditors/FlatCAMGeoEditor.py:3345 +#: flatcamEditors/FlatCAMGrbEditor.py:2488 +#: flatcamEditors/FlatCAMGrbEditor.py:3969 flatcamGUI/ObjectUI.py:263 +#: flatcamGUI/ObjectUI.py:1497 flatcamGUI/ObjectUI.py:2326 +#: flatcamTools/ToolCutOut.py:95 msgid "Type" msgstr "Type" -#: AppEditors/FlatCAMGeoEditor.py:3344 AppGUI/ObjectUI.py:221 -#: AppGUI/ObjectUI.py:521 AppGUI/ObjectUI.py:1330 AppGUI/ObjectUI.py:2165 -#: AppGUI/ObjectUI.py:2469 AppGUI/ObjectUI.py:2536 -#: AppTools/ToolCalibration.py:234 AppTools/ToolFiducials.py:70 +#: flatcamEditors/FlatCAMGeoEditor.py:3345 flatcamGUI/ObjectUI.py:218 +#: flatcamGUI/ObjectUI.py:742 flatcamGUI/ObjectUI.py:1433 +#: flatcamGUI/ObjectUI.py:2235 flatcamGUI/ObjectUI.py:2539 +#: flatcamGUI/ObjectUI.py:2606 flatcamTools/ToolCalibration.py:234 +#: flatcamTools/ToolFiducials.py:73 msgid "Name" msgstr "Nom" -#: AppEditors/FlatCAMGeoEditor.py:3596 +#: flatcamEditors/FlatCAMGeoEditor.py:3587 msgid "Ring" msgstr "L'anneau" -#: AppEditors/FlatCAMGeoEditor.py:3598 +#: flatcamEditors/FlatCAMGeoEditor.py:3589 msgid "Line" msgstr "Ligne" -#: AppEditors/FlatCAMGeoEditor.py:3600 AppGUI/MainGUI.py:1446 -#: AppGUI/ObjectUI.py:1150 AppGUI/ObjectUI.py:2005 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:226 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:299 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:328 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:292 -#: AppTools/ToolIsolation.py:546 AppTools/ToolNCC.py:584 -#: AppTools/ToolPaint.py:527 +#: flatcamEditors/FlatCAMGeoEditor.py:3591 flatcamGUI/FlatCAMGUI.py:2202 +#: flatcamGUI/ObjectUI.py:2074 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:218 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:328 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:292 +#: flatcamTools/ToolNCC.py:584 flatcamTools/ToolPaint.py:528 msgid "Polygon" msgstr "Polygone" -#: AppEditors/FlatCAMGeoEditor.py:3602 +#: flatcamEditors/FlatCAMGeoEditor.py:3593 msgid "Multi-Line" msgstr "Multi-ligne" -#: AppEditors/FlatCAMGeoEditor.py:3604 +#: flatcamEditors/FlatCAMGeoEditor.py:3595 msgid "Multi-Polygon" msgstr "Multi-polygone" -#: AppEditors/FlatCAMGeoEditor.py:3611 +#: flatcamEditors/FlatCAMGeoEditor.py:3602 msgid "Geo Elem" msgstr "Élém. de Géo" -#: AppEditors/FlatCAMGeoEditor.py:4064 +#: flatcamEditors/FlatCAMGeoEditor.py:4076 msgid "Editing MultiGeo Geometry, tool" msgstr "Modification de la géométrie MultiGeo, outil" -#: AppEditors/FlatCAMGeoEditor.py:4066 +#: flatcamEditors/FlatCAMGeoEditor.py:4078 msgid "with diameter" msgstr "avec diamètre" -#: AppEditors/FlatCAMGeoEditor.py:4138 -msgid "Grid Snap enabled." -msgstr "Accrochage à la grille activé." - -#: AppEditors/FlatCAMGeoEditor.py:4142 -msgid "Grid Snap disabled." -msgstr "Accrochage à la grille désactivé." - -#: AppEditors/FlatCAMGeoEditor.py:4503 AppGUI/MainGUI.py:3046 -#: AppGUI/MainGUI.py:3092 AppGUI/MainGUI.py:3110 AppGUI/MainGUI.py:3254 -#: AppGUI/MainGUI.py:3293 AppGUI/MainGUI.py:3305 AppGUI/MainGUI.py:3322 +#: flatcamEditors/FlatCAMGeoEditor.py:4509 flatcamGUI/FlatCAMGUI.py:3753 +#: flatcamGUI/FlatCAMGUI.py:3799 flatcamGUI/FlatCAMGUI.py:3817 +#: flatcamGUI/FlatCAMGUI.py:3961 flatcamGUI/FlatCAMGUI.py:4000 +#: flatcamGUI/FlatCAMGUI.py:4012 flatcamGUI/FlatCAMGUI.py:4029 msgid "Click on target point." msgstr "Cliquez sur le point cible." -#: AppEditors/FlatCAMGeoEditor.py:4819 AppEditors/FlatCAMGeoEditor.py:4854 +#: flatcamEditors/FlatCAMGeoEditor.py:4823 +#: flatcamEditors/FlatCAMGeoEditor.py:4858 msgid "A selection of at least 2 geo items is required to do Intersection." msgstr "" "Une sélection d'au moins 2 éléments géographiques est requise pour effectuer " "Intersection." -#: AppEditors/FlatCAMGeoEditor.py:4940 AppEditors/FlatCAMGeoEditor.py:5044 +#: flatcamEditors/FlatCAMGeoEditor.py:4944 +#: flatcamEditors/FlatCAMGeoEditor.py:5048 msgid "" "Negative buffer value is not accepted. Use Buffer interior to generate an " "'inside' shape" @@ -2533,58 +4519,61 @@ msgstr "" "La valeur de tampon négative n'est pas acceptée. Utiliser l'intérieur du " "tampon pour générer une forme «intérieure»" -#: AppEditors/FlatCAMGeoEditor.py:4950 AppEditors/FlatCAMGeoEditor.py:5003 -#: AppEditors/FlatCAMGeoEditor.py:5053 +#: flatcamEditors/FlatCAMGeoEditor.py:4954 +#: flatcamEditors/FlatCAMGeoEditor.py:5007 +#: flatcamEditors/FlatCAMGeoEditor.py:5057 msgid "Nothing selected for buffering." msgstr "Aucune sélection pour la mise en mémoire tampon." -#: AppEditors/FlatCAMGeoEditor.py:4955 AppEditors/FlatCAMGeoEditor.py:5007 -#: AppEditors/FlatCAMGeoEditor.py:5058 +#: flatcamEditors/FlatCAMGeoEditor.py:4959 +#: flatcamEditors/FlatCAMGeoEditor.py:5011 +#: flatcamEditors/FlatCAMGeoEditor.py:5062 msgid "Invalid distance for buffering." msgstr "Distance non valide pour la mise en mémoire tampon." -#: AppEditors/FlatCAMGeoEditor.py:4979 AppEditors/FlatCAMGeoEditor.py:5078 +#: flatcamEditors/FlatCAMGeoEditor.py:4983 +#: flatcamEditors/FlatCAMGeoEditor.py:5082 msgid "Failed, the result is empty. Choose a different buffer value." msgstr "" "Echec, le résultat est vide. Choisissez une valeur de tampon différente." -#: AppEditors/FlatCAMGeoEditor.py:4990 +#: flatcamEditors/FlatCAMGeoEditor.py:4994 msgid "Full buffer geometry created." msgstr "Géométrie de tampon complète créée." -#: AppEditors/FlatCAMGeoEditor.py:4996 +#: flatcamEditors/FlatCAMGeoEditor.py:5000 msgid "Negative buffer value is not accepted." msgstr "La valeur de tampon négative n'est pas acceptée." -#: AppEditors/FlatCAMGeoEditor.py:5027 +#: flatcamEditors/FlatCAMGeoEditor.py:5031 msgid "Failed, the result is empty. Choose a smaller buffer value." msgstr "" "Echec, le résultat est vide. Choisissez une valeur de tampon plus petite." -#: AppEditors/FlatCAMGeoEditor.py:5037 +#: flatcamEditors/FlatCAMGeoEditor.py:5041 msgid "Interior buffer geometry created." msgstr "Géométrie du tampon intérieur créée." -#: AppEditors/FlatCAMGeoEditor.py:5088 +#: flatcamEditors/FlatCAMGeoEditor.py:5092 msgid "Exterior buffer geometry created." msgstr "Géométrie tampon externe créée." -#: AppEditors/FlatCAMGeoEditor.py:5094 +#: flatcamEditors/FlatCAMGeoEditor.py:5098 #, python-format msgid "Could not do Paint. Overlap value has to be less than 100%%." msgstr "" "Impossible de peindre. La valeur de chevauchement doit être inférieure à 100 " "%%." -#: AppEditors/FlatCAMGeoEditor.py:5101 +#: flatcamEditors/FlatCAMGeoEditor.py:5105 msgid "Nothing selected for painting." msgstr "Rien de sélectionné pour la peinture." -#: AppEditors/FlatCAMGeoEditor.py:5107 +#: flatcamEditors/FlatCAMGeoEditor.py:5111 msgid "Invalid value for" msgstr "Invalid value for" -#: AppEditors/FlatCAMGeoEditor.py:5166 +#: flatcamEditors/FlatCAMGeoEditor.py:5170 msgid "" "Could not do Paint. Try a different combination of parameters. Or a " "different method of Paint" @@ -2592,193 +4581,206 @@ msgstr "" "Impossible de faire de la peinture. Essayez une combinaison de paramètres " "différente. Ou une autre méthode de peinture" -#: AppEditors/FlatCAMGeoEditor.py:5177 +#: flatcamEditors/FlatCAMGeoEditor.py:5181 msgid "Paint done." msgstr "Peinture faite." -#: AppEditors/FlatCAMGrbEditor.py:211 +#: flatcamEditors/FlatCAMGrbEditor.py:213 msgid "To add an Pad first select a aperture in Aperture Table" msgstr "" "Pour ajouter un Pad, sélectionnez d’abord une ouverture dans le tableau des " "ouvertures" -#: AppEditors/FlatCAMGrbEditor.py:218 AppEditors/FlatCAMGrbEditor.py:418 +#: flatcamEditors/FlatCAMGrbEditor.py:220 +#: flatcamEditors/FlatCAMGrbEditor.py:420 msgid "Aperture size is zero. It needs to be greater than zero." msgstr "La taille de l'ouverture est zéro. Il doit être supérieur à zéro." -#: AppEditors/FlatCAMGrbEditor.py:371 AppEditors/FlatCAMGrbEditor.py:684 +#: flatcamEditors/FlatCAMGrbEditor.py:373 +#: flatcamEditors/FlatCAMGrbEditor.py:686 msgid "" "Incompatible aperture type. Select an aperture with type 'C', 'R' or 'O'." msgstr "" "Type d'ouverture incompatible. Sélectionnez une ouverture de type \"C\", \"R" "\" ou \"O\"." -#: AppEditors/FlatCAMGrbEditor.py:383 +#: flatcamEditors/FlatCAMGrbEditor.py:385 msgid "Done. Adding Pad completed." msgstr "Terminé. Ajout du pad terminé." -#: AppEditors/FlatCAMGrbEditor.py:410 +#: flatcamEditors/FlatCAMGrbEditor.py:412 msgid "To add an Pad Array first select a aperture in Aperture Table" msgstr "" "Pour ajouter un Tableau de pads, sélectionnez d’abord une ouverture dans le " "tableau des ouvertures" -#: AppEditors/FlatCAMGrbEditor.py:490 +#: flatcamEditors/FlatCAMGrbEditor.py:492 msgid "Click on the Pad Circular Array Start position" msgstr "Cliquez sur le Tableau circulaire du Pad position de départ" -#: AppEditors/FlatCAMGrbEditor.py:710 +#: flatcamEditors/FlatCAMGrbEditor.py:712 msgid "Too many Pads for the selected spacing angle." msgstr "Trop de pads pour l'angle d'espacement sélectionné." -#: AppEditors/FlatCAMGrbEditor.py:733 +#: flatcamEditors/FlatCAMGrbEditor.py:735 msgid "Done. Pad Array added." msgstr "Terminé. Pad Tableau ajouté." -#: AppEditors/FlatCAMGrbEditor.py:758 +#: flatcamEditors/FlatCAMGrbEditor.py:760 msgid "Select shape(s) and then click ..." msgstr "Sélectionnez forme (s) puis cliquez sur ..." -#: AppEditors/FlatCAMGrbEditor.py:770 +#: flatcamEditors/FlatCAMGrbEditor.py:772 msgid "Failed. Nothing selected." msgstr "Échoué. Rien de sélectionné." -#: AppEditors/FlatCAMGrbEditor.py:786 +#: flatcamEditors/FlatCAMGrbEditor.py:788 msgid "" "Failed. Poligonize works only on geometries belonging to the same aperture." msgstr "" "Échoué. Poligonize ne fonctionne que sur les géométries appartenant à la " "même ouverture." -#: AppEditors/FlatCAMGrbEditor.py:840 +#: flatcamEditors/FlatCAMGrbEditor.py:842 msgid "Done. Poligonize completed." msgstr "Terminé. Polygoniser terminé." -#: AppEditors/FlatCAMGrbEditor.py:895 AppEditors/FlatCAMGrbEditor.py:1119 -#: AppEditors/FlatCAMGrbEditor.py:1143 +#: flatcamEditors/FlatCAMGrbEditor.py:897 +#: flatcamEditors/FlatCAMGrbEditor.py:1130 +#: flatcamEditors/FlatCAMGrbEditor.py:1154 msgid "Corner Mode 1: 45 degrees ..." msgstr "Mode d'angle 1: 45 degrés ..." -#: AppEditors/FlatCAMGrbEditor.py:907 AppEditors/FlatCAMGrbEditor.py:1219 +#: flatcamEditors/FlatCAMGrbEditor.py:909 +#: flatcamEditors/FlatCAMGrbEditor.py:1239 msgid "Click on next Point or click Right mouse button to complete ..." msgstr "" "Cliquez sur le prochain point ou cliquez avec le bouton droit de la souris " "pour terminer ..." -#: AppEditors/FlatCAMGrbEditor.py:1107 AppEditors/FlatCAMGrbEditor.py:1140 +#: flatcamEditors/FlatCAMGrbEditor.py:1118 +#: flatcamEditors/FlatCAMGrbEditor.py:1151 msgid "Corner Mode 2: Reverse 45 degrees ..." msgstr "Mode de Coin 2: Inverse de 45 degrés ..." -#: AppEditors/FlatCAMGrbEditor.py:1110 AppEditors/FlatCAMGrbEditor.py:1137 +#: flatcamEditors/FlatCAMGrbEditor.py:1121 +#: flatcamEditors/FlatCAMGrbEditor.py:1148 msgid "Corner Mode 3: 90 degrees ..." msgstr "Mode de Coin 3: 90 degrés ..." -#: AppEditors/FlatCAMGrbEditor.py:1113 AppEditors/FlatCAMGrbEditor.py:1134 +#: flatcamEditors/FlatCAMGrbEditor.py:1124 +#: flatcamEditors/FlatCAMGrbEditor.py:1145 msgid "Corner Mode 4: Reverse 90 degrees ..." msgstr "Mode de Coin 4: inverser de 90 degrés ..." -#: AppEditors/FlatCAMGrbEditor.py:1116 AppEditors/FlatCAMGrbEditor.py:1131 +#: flatcamEditors/FlatCAMGrbEditor.py:1127 +#: flatcamEditors/FlatCAMGrbEditor.py:1142 msgid "Corner Mode 5: Free angle ..." msgstr "Mode de Coin 5: Angle libre ..." -#: AppEditors/FlatCAMGrbEditor.py:1193 AppEditors/FlatCAMGrbEditor.py:1358 -#: AppEditors/FlatCAMGrbEditor.py:1397 +#: flatcamEditors/FlatCAMGrbEditor.py:1184 +#: flatcamEditors/FlatCAMGrbEditor.py:1360 +#: flatcamEditors/FlatCAMGrbEditor.py:1399 msgid "Track Mode 1: 45 degrees ..." msgstr "Mode de Piste 1: 45 degrés ..." -#: AppEditors/FlatCAMGrbEditor.py:1338 AppEditors/FlatCAMGrbEditor.py:1392 +#: flatcamEditors/FlatCAMGrbEditor.py:1340 +#: flatcamEditors/FlatCAMGrbEditor.py:1394 msgid "Track Mode 2: Reverse 45 degrees ..." msgstr "Mode de Piste 2: Recul de 45 degrés ..." -#: AppEditors/FlatCAMGrbEditor.py:1343 AppEditors/FlatCAMGrbEditor.py:1387 +#: flatcamEditors/FlatCAMGrbEditor.py:1345 +#: flatcamEditors/FlatCAMGrbEditor.py:1389 msgid "Track Mode 3: 90 degrees ..." msgstr "Mode de Piste 3: 90 degrés ..." -#: AppEditors/FlatCAMGrbEditor.py:1348 AppEditors/FlatCAMGrbEditor.py:1382 +#: flatcamEditors/FlatCAMGrbEditor.py:1350 +#: flatcamEditors/FlatCAMGrbEditor.py:1384 msgid "Track Mode 4: Reverse 90 degrees ..." msgstr "Mode de Piste 4: Recul de 90 degrés ..." -#: AppEditors/FlatCAMGrbEditor.py:1353 AppEditors/FlatCAMGrbEditor.py:1377 +#: flatcamEditors/FlatCAMGrbEditor.py:1355 +#: flatcamEditors/FlatCAMGrbEditor.py:1379 msgid "Track Mode 5: Free angle ..." msgstr "Mode de Piste 5: Angle libre ..." -#: AppEditors/FlatCAMGrbEditor.py:1787 +#: flatcamEditors/FlatCAMGrbEditor.py:1780 msgid "Scale the selected Gerber apertures ..." msgstr "Mettez à l'échelle les ouvertures de Gerber sélectionnées ..." -#: AppEditors/FlatCAMGrbEditor.py:1829 +#: flatcamEditors/FlatCAMGrbEditor.py:1822 msgid "Buffer the selected apertures ..." msgstr "Tamponner les ouvertures sélectionnées ..." -#: AppEditors/FlatCAMGrbEditor.py:1871 +#: flatcamEditors/FlatCAMGrbEditor.py:1864 msgid "Mark polygon areas in the edited Gerber ..." msgstr "Marquer les zones polygonales dans le Gerber édité ..." -#: AppEditors/FlatCAMGrbEditor.py:1937 +#: flatcamEditors/FlatCAMGrbEditor.py:1930 msgid "Nothing selected to move" msgstr "Rien de sélectionné pour bouger" -#: AppEditors/FlatCAMGrbEditor.py:2062 +#: flatcamEditors/FlatCAMGrbEditor.py:2055 msgid "Done. Apertures Move completed." msgstr "Terminé. Déplacement des ouvertures terminé." -#: AppEditors/FlatCAMGrbEditor.py:2144 +#: flatcamEditors/FlatCAMGrbEditor.py:2137 msgid "Done. Apertures copied." msgstr "Terminé. Ouvertures copiées." -#: AppEditors/FlatCAMGrbEditor.py:2462 AppGUI/MainGUI.py:1477 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:27 +#: flatcamEditors/FlatCAMGrbEditor.py:2455 flatcamGUI/FlatCAMGUI.py:2233 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:27 msgid "Gerber Editor" -msgstr "Editeur Gerber" +msgstr "Gerber éditeur" -#: AppEditors/FlatCAMGrbEditor.py:2482 AppGUI/ObjectUI.py:247 -#: AppTools/ToolProperties.py:159 +#: flatcamEditors/FlatCAMGrbEditor.py:2475 flatcamGUI/ObjectUI.py:228 +#: flatcamTools/ToolProperties.py:159 msgid "Apertures" -msgstr "Ouvertures" +msgstr "Les ouvertures" -#: AppEditors/FlatCAMGrbEditor.py:2484 AppGUI/ObjectUI.py:249 +#: flatcamEditors/FlatCAMGrbEditor.py:2477 flatcamGUI/ObjectUI.py:230 msgid "Apertures Table for the Gerber Object." msgstr "Tableau des Ouvertures pour l'objet Gerber." -#: AppEditors/FlatCAMGrbEditor.py:2495 AppEditors/FlatCAMGrbEditor.py:3952 -#: AppGUI/ObjectUI.py:282 +#: flatcamEditors/FlatCAMGrbEditor.py:2488 +#: flatcamEditors/FlatCAMGrbEditor.py:3969 flatcamGUI/ObjectUI.py:263 msgid "Code" msgstr "Code" -#: AppEditors/FlatCAMGrbEditor.py:2495 AppEditors/FlatCAMGrbEditor.py:3952 -#: AppGUI/ObjectUI.py:282 -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:103 -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:167 -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:196 -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:43 -#: AppTools/ToolCopperThieving.py:265 AppTools/ToolCopperThieving.py:305 -#: AppTools/ToolFiducials.py:159 +#: flatcamEditors/FlatCAMGrbEditor.py:2488 +#: flatcamEditors/FlatCAMGrbEditor.py:3969 flatcamGUI/ObjectUI.py:263 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:103 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:167 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:196 +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:43 +#: flatcamTools/ToolCopperThieving.py:261 +#: flatcamTools/ToolCopperThieving.py:301 flatcamTools/ToolFiducials.py:156 msgid "Size" msgstr "Taille" -#: AppEditors/FlatCAMGrbEditor.py:2495 AppEditors/FlatCAMGrbEditor.py:3952 -#: AppGUI/ObjectUI.py:282 +#: flatcamEditors/FlatCAMGrbEditor.py:2488 +#: flatcamEditors/FlatCAMGrbEditor.py:3969 flatcamGUI/ObjectUI.py:263 msgid "Dim" msgstr "Dim" -#: AppEditors/FlatCAMGrbEditor.py:2500 AppGUI/ObjectUI.py:286 +#: flatcamEditors/FlatCAMGrbEditor.py:2493 flatcamGUI/ObjectUI.py:267 msgid "Index" msgstr "Indice" -#: AppEditors/FlatCAMGrbEditor.py:2502 AppEditors/FlatCAMGrbEditor.py:2531 -#: AppGUI/ObjectUI.py:288 +#: flatcamEditors/FlatCAMGrbEditor.py:2495 +#: flatcamEditors/FlatCAMGrbEditor.py:2524 flatcamGUI/ObjectUI.py:269 msgid "Aperture Code" msgstr "Code d'Ouverture" -#: AppEditors/FlatCAMGrbEditor.py:2504 AppGUI/ObjectUI.py:290 +#: flatcamEditors/FlatCAMGrbEditor.py:2497 flatcamGUI/ObjectUI.py:271 msgid "Type of aperture: circular, rectangle, macros etc" msgstr "Type d'ouverture: circulaire, rectangle, macros, etc" -#: AppEditors/FlatCAMGrbEditor.py:2506 AppGUI/ObjectUI.py:292 +#: flatcamEditors/FlatCAMGrbEditor.py:2499 flatcamGUI/ObjectUI.py:273 msgid "Aperture Size:" msgstr "Taille d'Ouverture:" -#: AppEditors/FlatCAMGrbEditor.py:2508 AppGUI/ObjectUI.py:294 +#: flatcamEditors/FlatCAMGrbEditor.py:2501 flatcamGUI/ObjectUI.py:275 msgid "" "Aperture Dimensions:\n" " - (width, height) for R, O type.\n" @@ -2788,16 +4790,16 @@ msgstr "" "  - (largeur, hauteur) pour le type R, O.\n" "  - (dia, nVertices) pour le type P" -#: AppEditors/FlatCAMGrbEditor.py:2532 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:58 +#: flatcamEditors/FlatCAMGrbEditor.py:2525 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:58 msgid "Code for the new aperture" msgstr "Code pour la nouvelle ouverture" -#: AppEditors/FlatCAMGrbEditor.py:2541 +#: flatcamEditors/FlatCAMGrbEditor.py:2534 msgid "Aperture Size" msgstr "Taille d'ouverture" -#: AppEditors/FlatCAMGrbEditor.py:2543 +#: flatcamEditors/FlatCAMGrbEditor.py:2536 msgid "" "Size for the new aperture.\n" "If aperture type is 'R' or 'O' then\n" @@ -2811,11 +4813,11 @@ msgstr "" "calculé comme:\n" "sqrt (largeur ** 2 + hauteur ** 2)" -#: AppEditors/FlatCAMGrbEditor.py:2557 +#: flatcamEditors/FlatCAMGrbEditor.py:2550 msgid "Aperture Type" msgstr "Type d'ouverture" -#: AppEditors/FlatCAMGrbEditor.py:2559 +#: flatcamEditors/FlatCAMGrbEditor.py:2552 msgid "" "Select the type of new aperture. Can be:\n" "C = circular\n" @@ -2827,11 +4829,11 @@ msgstr "" "R = rectangulaire\n" "O = oblong" -#: AppEditors/FlatCAMGrbEditor.py:2570 +#: flatcamEditors/FlatCAMGrbEditor.py:2563 msgid "Aperture Dim" msgstr "Dim. d'Ouverture" -#: AppEditors/FlatCAMGrbEditor.py:2572 +#: flatcamEditors/FlatCAMGrbEditor.py:2565 msgid "" "Dimensions for the new aperture.\n" "Active only for rectangular apertures (type R).\n" @@ -2841,51 +4843,40 @@ msgstr "" "Actif uniquement pour les ouvertures rectangulaires (type R).\n" "Le format est (largeur, hauteur)" -#: AppEditors/FlatCAMGrbEditor.py:2581 +#: flatcamEditors/FlatCAMGrbEditor.py:2574 msgid "Add/Delete Aperture" -msgstr "Ajouter / Supprimer une Sélection" +msgstr "Ajouter / Supprimer une Ouverture" -#: AppEditors/FlatCAMGrbEditor.py:2583 +#: flatcamEditors/FlatCAMGrbEditor.py:2576 msgid "Add/Delete an aperture in the aperture table" msgstr "Ajouter / Supprimer une ouverture dans la table des ouvertures" -#: AppEditors/FlatCAMGrbEditor.py:2592 +#: flatcamEditors/FlatCAMGrbEditor.py:2585 msgid "Add a new aperture to the aperture list." msgstr "Ajoutez une nouvelle ouverture à la liste des ouvertures." -#: AppEditors/FlatCAMGrbEditor.py:2595 AppEditors/FlatCAMGrbEditor.py:2743 -#: AppGUI/MainGUI.py:748 AppGUI/MainGUI.py:1068 AppGUI/MainGUI.py:1527 -#: AppGUI/MainGUI.py:2099 AppGUI/MainGUI.py:4514 AppGUI/ObjectUI.py:1525 -#: AppObjects/FlatCAMGeometry.py:563 AppTools/ToolIsolation.py:298 -#: AppTools/ToolIsolation.py:616 AppTools/ToolNCC.py:316 -#: AppTools/ToolNCC.py:637 AppTools/ToolPaint.py:298 AppTools/ToolPaint.py:681 -#: AppTools/ToolSolderPaste.py:133 AppTools/ToolSolderPaste.py:608 -#: App_Main.py:5672 -msgid "Delete" -msgstr "Effacer" - -#: AppEditors/FlatCAMGrbEditor.py:2597 +#: flatcamEditors/FlatCAMGrbEditor.py:2590 msgid "Delete a aperture in the aperture list" msgstr "Supprimer une ouverture dans la liste des ouvertures" -#: AppEditors/FlatCAMGrbEditor.py:2614 +#: flatcamEditors/FlatCAMGrbEditor.py:2607 msgid "Buffer Aperture" msgstr "Ouverture du Tampon" -#: AppEditors/FlatCAMGrbEditor.py:2616 +#: flatcamEditors/FlatCAMGrbEditor.py:2609 msgid "Buffer a aperture in the aperture list" msgstr "Buffer une ouverture dans la liste des ouvertures" -#: AppEditors/FlatCAMGrbEditor.py:2629 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:195 +#: flatcamEditors/FlatCAMGrbEditor.py:2622 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:194 msgid "Buffer distance" msgstr "Distance Tampon" -#: AppEditors/FlatCAMGrbEditor.py:2630 +#: flatcamEditors/FlatCAMGrbEditor.py:2623 msgid "Buffer corner" msgstr "Coin Tampon" -#: AppEditors/FlatCAMGrbEditor.py:2632 +#: flatcamEditors/FlatCAMGrbEditor.py:2625 msgid "" "There are 3 types of corners:\n" " - 'Round': the corner is rounded.\n" @@ -2899,28 +4890,28 @@ msgstr "" " - \"Biseauté:\" le coin est une ligne qui relie directement les " "fonctionnalités réunies dans le coin" -#: AppEditors/FlatCAMGrbEditor.py:2647 AppGUI/MainGUI.py:1055 -#: AppGUI/MainGUI.py:1454 AppGUI/MainGUI.py:1497 AppGUI/MainGUI.py:2087 -#: AppGUI/MainGUI.py:4511 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:200 -#: AppTools/ToolTransform.py:29 +#: flatcamEditors/FlatCAMGrbEditor.py:2640 flatcamGUI/FlatCAMGUI.py:1061 +#: flatcamGUI/FlatCAMGUI.py:2138 flatcamGUI/FlatCAMGUI.py:2210 +#: flatcamGUI/FlatCAMGUI.py:2253 flatcamGUI/FlatCAMGUI.py:2765 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:200 +#: flatcamTools/ToolTransform.py:29 msgid "Buffer" msgstr "Tampon" -#: AppEditors/FlatCAMGrbEditor.py:2662 +#: flatcamEditors/FlatCAMGrbEditor.py:2655 msgid "Scale Aperture" msgstr "Échelle d'Ouverture" -#: AppEditors/FlatCAMGrbEditor.py:2664 +#: flatcamEditors/FlatCAMGrbEditor.py:2657 msgid "Scale a aperture in the aperture list" msgstr "Mettre à l'échelle une ouverture dans la liste des ouvertures" -#: AppEditors/FlatCAMGrbEditor.py:2672 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:210 +#: flatcamEditors/FlatCAMGrbEditor.py:2665 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:209 msgid "Scale factor" msgstr "Facteur d'échelle" -#: AppEditors/FlatCAMGrbEditor.py:2674 +#: flatcamEditors/FlatCAMGrbEditor.py:2667 msgid "" "The factor by which to scale the selected aperture.\n" "Values can be between 0.0000 and 999.9999" @@ -2928,19 +4919,19 @@ msgstr "" "Le facteur par lequel mettre à l'échelle l'ouverture sélectionnée.\n" "Les valeurs peuvent être comprises entre 0,0000 et 999,9999" -#: AppEditors/FlatCAMGrbEditor.py:2702 +#: flatcamEditors/FlatCAMGrbEditor.py:2695 msgid "Mark polygons" msgstr "Marquer des polygones" -#: AppEditors/FlatCAMGrbEditor.py:2704 +#: flatcamEditors/FlatCAMGrbEditor.py:2697 msgid "Mark the polygon areas." msgstr "Marquez les zones polygonales." -#: AppEditors/FlatCAMGrbEditor.py:2712 +#: flatcamEditors/FlatCAMGrbEditor.py:2705 msgid "Area UPPER threshold" msgstr "Seuil de la zone supérieure" -#: AppEditors/FlatCAMGrbEditor.py:2714 +#: flatcamEditors/FlatCAMGrbEditor.py:2707 msgid "" "The threshold value, all areas less than this are marked.\n" "Can have a value between 0.0000 and 9999.9999" @@ -2948,11 +4939,11 @@ msgstr "" "La valeur de seuil, toutes les zones inférieures à celle-ci sont marquées.\n" "Peut avoir une valeur comprise entre 0.0000 et 9999.9999" -#: AppEditors/FlatCAMGrbEditor.py:2721 +#: flatcamEditors/FlatCAMGrbEditor.py:2714 msgid "Area LOWER threshold" msgstr "Zone inférieure seuil" -#: AppEditors/FlatCAMGrbEditor.py:2723 +#: flatcamEditors/FlatCAMGrbEditor.py:2716 msgid "" "The threshold value, all areas more than this are marked.\n" "Can have a value between 0.0000 and 9999.9999" @@ -2960,32 +4951,32 @@ msgstr "" "La valeur de seuil, toutes les zones plus que cela sont marquées.\n" "Peut avoir une valeur comprise entre 0.0000 et 9999.9999" -#: AppEditors/FlatCAMGrbEditor.py:2737 +#: flatcamEditors/FlatCAMGrbEditor.py:2730 msgid "Mark" msgstr "Marque" -#: AppEditors/FlatCAMGrbEditor.py:2739 +#: flatcamEditors/FlatCAMGrbEditor.py:2732 msgid "Mark the polygons that fit within limits." msgstr "Marquez les polygones qui correspondent aux limites." -#: AppEditors/FlatCAMGrbEditor.py:2745 +#: flatcamEditors/FlatCAMGrbEditor.py:2738 msgid "Delete all the marked polygons." msgstr "Supprimer tous les polygones marqués." -#: AppEditors/FlatCAMGrbEditor.py:2751 +#: flatcamEditors/FlatCAMGrbEditor.py:2744 msgid "Clear all the markings." msgstr "Effacer toutes les marques." -#: AppEditors/FlatCAMGrbEditor.py:2771 AppGUI/MainGUI.py:1040 -#: AppGUI/MainGUI.py:2072 AppGUI/MainGUI.py:4511 +#: flatcamEditors/FlatCAMGrbEditor.py:2764 flatcamGUI/FlatCAMGUI.py:1046 +#: flatcamGUI/FlatCAMGUI.py:2138 flatcamGUI/FlatCAMGUI.py:2750 msgid "Add Pad Array" msgstr "Ajouter un Tableau de Pads" -#: AppEditors/FlatCAMGrbEditor.py:2773 +#: flatcamEditors/FlatCAMGrbEditor.py:2766 msgid "Add an array of pads (linear or circular array)" msgstr "Ajouter un tableau de pads (tableau linéaire ou circulaire)" -#: AppEditors/FlatCAMGrbEditor.py:2779 +#: flatcamEditors/FlatCAMGrbEditor.py:2772 msgid "" "Select the type of pads array to create.\n" "It can be Linear X(Y) or Circular" @@ -2993,17 +4984,17 @@ msgstr "" "Sélectionnez le type de tableau de pads à créer.\n" "Il peut être linéaire X (Y) ou circulaire" -#: AppEditors/FlatCAMGrbEditor.py:2790 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:95 +#: flatcamEditors/FlatCAMGrbEditor.py:2783 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:95 msgid "Nr of pads" msgstr "Nombre de pads" -#: AppEditors/FlatCAMGrbEditor.py:2792 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:97 +#: flatcamEditors/FlatCAMGrbEditor.py:2785 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:97 msgid "Specify how many pads to be in the array." msgstr "Spécifiez combien de pads doivent être dans le tableau." -#: AppEditors/FlatCAMGrbEditor.py:2841 +#: flatcamEditors/FlatCAMGrbEditor.py:2834 msgid "" "Angle at which the linear array is placed.\n" "The precision is of max 2 decimals.\n" @@ -3015,13 +5006,14 @@ msgstr "" "La valeur minimale est: -359,99 degrés.\n" "La valeur maximale est: 360,00 degrés." -#: AppEditors/FlatCAMGrbEditor.py:3335 AppEditors/FlatCAMGrbEditor.py:3339 +#: flatcamEditors/FlatCAMGrbEditor.py:3328 +#: flatcamEditors/FlatCAMGrbEditor.py:3332 msgid "Aperture code value is missing or wrong format. Add it and retry." msgstr "" "La valeur du code d'ouverture est manquante ou le format est incorrect. " "Ajoutez-le et réessayez." -#: AppEditors/FlatCAMGrbEditor.py:3375 +#: flatcamEditors/FlatCAMGrbEditor.py:3368 msgid "" "Aperture dimensions value is missing or wrong format. Add it in format " "(width, height) and retry." @@ -3029,217 +5021,199 @@ msgstr "" "La valeur des dimensions d’ouverture est manquante ou d’un format incorrect. " "Ajoutez-le au format (largeur, hauteur) et réessayez." -#: AppEditors/FlatCAMGrbEditor.py:3388 +#: flatcamEditors/FlatCAMGrbEditor.py:3381 msgid "Aperture size value is missing or wrong format. Add it and retry." msgstr "" "La valeur de la taille d’ouverture est manquante ou d’un format incorrect. " "Ajoutez-le et réessayez." -#: AppEditors/FlatCAMGrbEditor.py:3399 +#: flatcamEditors/FlatCAMGrbEditor.py:3392 msgid "Aperture already in the aperture table." msgstr "Ouverture déjà dans la table des ouvertures." -#: AppEditors/FlatCAMGrbEditor.py:3406 +#: flatcamEditors/FlatCAMGrbEditor.py:3399 msgid "Added new aperture with code" msgstr "Ajout d'une nouvelle ouverture avec code" -#: AppEditors/FlatCAMGrbEditor.py:3438 +#: flatcamEditors/FlatCAMGrbEditor.py:3431 msgid " Select an aperture in Aperture Table" msgstr " Sélectionnez une ouverture dans le Tableau des Ouvertures" -#: AppEditors/FlatCAMGrbEditor.py:3446 +#: flatcamEditors/FlatCAMGrbEditor.py:3439 msgid "Select an aperture in Aperture Table -->" msgstr "Sélectionnez une ouverture dans le Tableau des Ouvertures -->" -#: AppEditors/FlatCAMGrbEditor.py:3460 +#: flatcamEditors/FlatCAMGrbEditor.py:3453 msgid "Deleted aperture with code" msgstr "Ouverture supprimée avec code" -#: AppEditors/FlatCAMGrbEditor.py:3528 +#: flatcamEditors/FlatCAMGrbEditor.py:3521 msgid "Dimensions need two float values separated by comma." msgstr "" "Les dimensions nécessitent deux valeurs flottantes séparées par une virgule." -#: AppEditors/FlatCAMGrbEditor.py:3537 +#: flatcamEditors/FlatCAMGrbEditor.py:3530 msgid "Dimensions edited." msgstr "Dimensions modifiées." -#: AppEditors/FlatCAMGrbEditor.py:4067 +#: flatcamEditors/FlatCAMGrbEditor.py:4084 msgid "Loading Gerber into Editor" msgstr "Chargement de Gerber dans l'éditeur" -#: AppEditors/FlatCAMGrbEditor.py:4195 +#: flatcamEditors/FlatCAMGrbEditor.py:4212 msgid "Setting up the UI" msgstr "Configuration de IU" -#: AppEditors/FlatCAMGrbEditor.py:4196 -msgid "Adding geometry finished. Preparing the AppGUI" -msgstr "Ajout de la géométrie terminé. Préparation de l'AppGUI" +#: flatcamEditors/FlatCAMGrbEditor.py:4213 +msgid "Adding geometry finished. Preparing the GUI" +msgstr "Ajout de la géométrie terminé. Préparation de l'interface graphique" -#: AppEditors/FlatCAMGrbEditor.py:4205 +#: flatcamEditors/FlatCAMGrbEditor.py:4222 msgid "Finished loading the Gerber object into the editor." msgstr "Le chargement de l'objet Gerber dans l'éditeur est terminé." -#: AppEditors/FlatCAMGrbEditor.py:4346 +#: flatcamEditors/FlatCAMGrbEditor.py:4361 msgid "" "There are no Aperture definitions in the file. Aborting Gerber creation." msgstr "" "Il n'y a pas de définitions d'ouverture dans le fichier. Abandon de la " "création de Gerber." -#: AppEditors/FlatCAMGrbEditor.py:4348 AppObjects/AppObject.py:133 -#: AppObjects/FlatCAMGeometry.py:1786 AppParsers/ParseExcellon.py:896 -#: AppTools/ToolPcbWizard.py:432 App_Main.py:8465 App_Main.py:8529 -#: App_Main.py:8660 App_Main.py:8725 App_Main.py:9377 -msgid "An internal error has occurred. See shell.\n" -msgstr "Une erreur interne s'est produite. Voir shell.\n" - -#: AppEditors/FlatCAMGrbEditor.py:4356 +#: flatcamEditors/FlatCAMGrbEditor.py:4371 msgid "Creating Gerber." msgstr "Créer Gerber." -#: AppEditors/FlatCAMGrbEditor.py:4368 +#: flatcamEditors/FlatCAMGrbEditor.py:4380 msgid "Done. Gerber editing finished." msgstr "Terminé. Gerber édition terminée." -#: AppEditors/FlatCAMGrbEditor.py:4384 +#: flatcamEditors/FlatCAMGrbEditor.py:4398 msgid "Cancelled. No aperture is selected" msgstr "Annulé. Aucune ouverture n'est sélectionnée" -#: AppEditors/FlatCAMGrbEditor.py:4539 App_Main.py:5998 -msgid "Coordinates copied to clipboard." -msgstr "Coordonnées copiées dans le presse-papier." - -#: AppEditors/FlatCAMGrbEditor.py:4986 +#: flatcamEditors/FlatCAMGrbEditor.py:4992 msgid "Failed. No aperture geometry is selected." msgstr "Échoué. Aucune géométrie d'ouverture n'est sélectionnée." -#: AppEditors/FlatCAMGrbEditor.py:4995 AppEditors/FlatCAMGrbEditor.py:5266 +#: flatcamEditors/FlatCAMGrbEditor.py:5001 +#: flatcamEditors/FlatCAMGrbEditor.py:5272 msgid "Done. Apertures geometry deleted." msgstr "Terminé. Géométrie des ouvertures supprimée." -#: AppEditors/FlatCAMGrbEditor.py:5138 +#: flatcamEditors/FlatCAMGrbEditor.py:5144 msgid "No aperture to buffer. Select at least one aperture and try again." msgstr "" "Pas d'ouverture à tamponner. Sélectionnez au moins une ouverture et " "réessayez." -#: AppEditors/FlatCAMGrbEditor.py:5150 +#: flatcamEditors/FlatCAMGrbEditor.py:5156 msgid "Failed." msgstr "Échoué." -#: AppEditors/FlatCAMGrbEditor.py:5169 +#: flatcamEditors/FlatCAMGrbEditor.py:5175 msgid "Scale factor value is missing or wrong format. Add it and retry." msgstr "" "La valeur du facteur d'échelle est manquante ou d'un format incorrect. " "Ajoutez-le et réessayez." -#: AppEditors/FlatCAMGrbEditor.py:5201 +#: flatcamEditors/FlatCAMGrbEditor.py:5207 msgid "No aperture to scale. Select at least one aperture and try again." msgstr "" "Pas d'ouverture à l'échelle. Sélectionnez au moins une ouverture et " "réessayez." -#: AppEditors/FlatCAMGrbEditor.py:5217 +#: flatcamEditors/FlatCAMGrbEditor.py:5223 msgid "Done. Scale Tool completed." msgstr "Terminé. Outil d'échelle terminé." -#: AppEditors/FlatCAMGrbEditor.py:5255 +#: flatcamEditors/FlatCAMGrbEditor.py:5261 msgid "Polygons marked." msgstr "Polygones marqués." -#: AppEditors/FlatCAMGrbEditor.py:5258 +#: flatcamEditors/FlatCAMGrbEditor.py:5264 msgid "No polygons were marked. None fit within the limits." msgstr "Aucun polygone n'a été marqué. Aucun ne rentre dans les limites." -#: AppEditors/FlatCAMGrbEditor.py:5982 +#: flatcamEditors/FlatCAMGrbEditor.py:5988 msgid "Rotation action was not executed." msgstr "L'action de rotation n'a pas été exécutée." -#: AppEditors/FlatCAMGrbEditor.py:6053 App_Main.py:5432 App_Main.py:5480 -msgid "Flip action was not executed." -msgstr "La rotation n'a pas été exécutée." - -#: AppEditors/FlatCAMGrbEditor.py:6110 +#: flatcamEditors/FlatCAMGrbEditor.py:6116 msgid "Skew action was not executed." msgstr "L'action fausser n'a pas été exécutée." -#: AppEditors/FlatCAMGrbEditor.py:6175 +#: flatcamEditors/FlatCAMGrbEditor.py:6181 msgid "Scale action was not executed." msgstr "L'action d'échelle n'a pas été exécutée." -#: AppEditors/FlatCAMGrbEditor.py:6218 +#: flatcamEditors/FlatCAMGrbEditor.py:6224 msgid "Offset action was not executed." msgstr "L'action decalage n'a pas été exécutée." -#: AppEditors/FlatCAMGrbEditor.py:6268 +#: flatcamEditors/FlatCAMGrbEditor.py:6274 msgid "Geometry shape offset Y cancelled" msgstr "Décalage géométrique de la forme Y annulé" -#: AppEditors/FlatCAMGrbEditor.py:6283 +#: flatcamEditors/FlatCAMGrbEditor.py:6289 msgid "Geometry shape skew X cancelled" -msgstr "Inclinaison géométrique de la forme X annulé" +msgstr "Fausser géométrique de la forme X annulé" -#: AppEditors/FlatCAMGrbEditor.py:6298 +#: flatcamEditors/FlatCAMGrbEditor.py:6304 msgid "Geometry shape skew Y cancelled" -msgstr "Inclinaison géométrique de la forme Y annulé" +msgstr "Fausser géométrique de la forme Y annulé" -#: AppEditors/FlatCAMTextEditor.py:74 +#: flatcamEditors/FlatCAMTextEditor.py:74 msgid "Print Preview" msgstr "Aperçu avant imp" -#: AppEditors/FlatCAMTextEditor.py:75 +#: flatcamEditors/FlatCAMTextEditor.py:75 msgid "Open a OS standard Preview Print window." msgstr "" "Ouvrez une fenêtre d'aperçu avant impression standard du système " "d'exploitation." -#: AppEditors/FlatCAMTextEditor.py:78 +#: flatcamEditors/FlatCAMTextEditor.py:78 msgid "Print Code" msgstr "Code d'impression" -#: AppEditors/FlatCAMTextEditor.py:79 +#: flatcamEditors/FlatCAMTextEditor.py:79 msgid "Open a OS standard Print window." msgstr "Ouvrez une fenêtre d'impression standard du système d'exploitation." -#: AppEditors/FlatCAMTextEditor.py:81 +#: flatcamEditors/FlatCAMTextEditor.py:81 msgid "Find in Code" msgstr "Trouver dans le code" -#: AppEditors/FlatCAMTextEditor.py:82 +#: flatcamEditors/FlatCAMTextEditor.py:82 msgid "Will search and highlight in yellow the string in the Find box." msgstr "Recherche et surligne en jaune la chaîne dans la zone de recherche." -#: AppEditors/FlatCAMTextEditor.py:86 +#: flatcamEditors/FlatCAMTextEditor.py:86 msgid "Find box. Enter here the strings to be searched in the text." msgstr "Boîte de recherche. Entrez ici les chaînes à rechercher dans le texte." -#: AppEditors/FlatCAMTextEditor.py:88 +#: flatcamEditors/FlatCAMTextEditor.py:88 msgid "Replace With" msgstr "Remplacer par" -#: AppEditors/FlatCAMTextEditor.py:89 +#: flatcamEditors/FlatCAMTextEditor.py:89 msgid "" "Will replace the string from the Find box with the one in the Replace box." msgstr "" "Remplacera la chaîne de la zone Rechercher par celle de la zone Remplacer." -#: AppEditors/FlatCAMTextEditor.py:93 +#: flatcamEditors/FlatCAMTextEditor.py:93 msgid "String to replace the one in the Find box throughout the text." msgstr "Chaîne pour remplacer celle de la zone Rechercher dans tout le texte." -#: AppEditors/FlatCAMTextEditor.py:95 AppGUI/ObjectUI.py:2149 -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:54 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:285 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280 -#: AppTools/ToolIsolation.py:504 AppTools/ToolIsolation.py:1287 -#: AppTools/ToolIsolation.py:1669 AppTools/ToolPaint.py:485 -#: AppTools/ToolPaint.py:1446 defaults.py:403 defaults.py:446 -#: tclCommands/TclCommandPaint.py:162 +#: flatcamEditors/FlatCAMTextEditor.py:95 flatcamGUI/ObjectUI.py:486 +#: flatcamGUI/ObjectUI.py:2219 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:54 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:88 msgid "All" msgstr "Tout" -#: AppEditors/FlatCAMTextEditor.py:96 +#: flatcamEditors/FlatCAMTextEditor.py:96 msgid "" "When checked it will replace all instances in the 'Find' box\n" "with the text in the 'Replace' box.." @@ -3248,319 +5222,248 @@ msgstr "" "'Rechercher'\n" "avec le texte dans la case 'Remplacer' .." -#: AppEditors/FlatCAMTextEditor.py:99 +#: flatcamEditors/FlatCAMTextEditor.py:99 msgid "Copy All" msgstr "Tout copier" -#: AppEditors/FlatCAMTextEditor.py:100 +#: flatcamEditors/FlatCAMTextEditor.py:100 msgid "Will copy all the text in the Code Editor to the clipboard." msgstr "Copiera tout le texte de l'éditeur de code dans le presse-papiers." -#: AppEditors/FlatCAMTextEditor.py:103 +#: flatcamEditors/FlatCAMTextEditor.py:103 msgid "Open Code" msgstr "Code ouvert" -#: AppEditors/FlatCAMTextEditor.py:104 +#: flatcamEditors/FlatCAMTextEditor.py:104 msgid "Will open a text file in the editor." msgstr "Va ouvrir un fichier texte dans l'éditeur." -#: AppEditors/FlatCAMTextEditor.py:106 +#: flatcamEditors/FlatCAMTextEditor.py:106 msgid "Save Code" msgstr "Enregistrer le code" -#: AppEditors/FlatCAMTextEditor.py:107 +#: flatcamEditors/FlatCAMTextEditor.py:107 msgid "Will save the text in the editor into a file." msgstr "Va enregistrer le texte dans l'éditeur dans un fichier." -#: AppEditors/FlatCAMTextEditor.py:109 +#: flatcamEditors/FlatCAMTextEditor.py:109 msgid "Run Code" msgstr "Code d'exécution" -#: AppEditors/FlatCAMTextEditor.py:110 +#: flatcamEditors/FlatCAMTextEditor.py:110 msgid "Will run the TCL commands found in the text file, one by one." msgstr "" "Va exécuter les commandes TCL trouvées dans le fichier texte, une par une." -#: AppEditors/FlatCAMTextEditor.py:184 +#: flatcamEditors/FlatCAMTextEditor.py:184 msgid "Open file" msgstr "Fichier ouvert" -#: AppEditors/FlatCAMTextEditor.py:215 AppEditors/FlatCAMTextEditor.py:220 -#: AppObjects/FlatCAMCNCJob.py:507 AppObjects/FlatCAMCNCJob.py:512 -#: AppTools/ToolSolderPaste.py:1508 +#: flatcamEditors/FlatCAMTextEditor.py:215 +#: flatcamEditors/FlatCAMTextEditor.py:220 msgid "Export Code ..." msgstr "Exporter le code ..." -#: AppEditors/FlatCAMTextEditor.py:272 AppObjects/FlatCAMCNCJob.py:955 -#: AppTools/ToolSolderPaste.py:1538 +#: flatcamEditors/FlatCAMTextEditor.py:272 flatcamObjects/FlatCAMCNCJob.py:955 +#: flatcamTools/ToolSolderPaste.py:1530 msgid "No such file or directory" msgstr "Aucun fichier ou répertoire de ce nom" -#: AppEditors/FlatCAMTextEditor.py:284 AppObjects/FlatCAMCNCJob.py:969 +#: flatcamEditors/FlatCAMTextEditor.py:284 flatcamObjects/FlatCAMCNCJob.py:969 msgid "Saved to" msgstr "Enregistré dans" -#: AppEditors/FlatCAMTextEditor.py:334 +#: flatcamEditors/FlatCAMTextEditor.py:334 msgid "Code Editor content copied to clipboard ..." msgstr "Contenu de l'éditeur de code copié dans le Presse-papiers ..." -#: AppGUI/GUIElements.py:2690 -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:169 -#: AppTools/ToolDblSided.py:173 AppTools/ToolDblSided.py:388 -#: AppTools/ToolFilm.py:202 -msgid "Reference" -msgstr "Référence" +#: flatcamGUI/FlatCAMGUI.py:78 flatcamGUI/FlatCAMGUI.py:80 +#: flatcamGUI/FlatCAMGUI.py:2163 +msgid "Toggle Panel" +msgstr "Basculer le Panneau" -#: AppGUI/GUIElements.py:2692 -msgid "" -"The reference can be:\n" -"- Absolute -> the reference point is point (0,0)\n" -"- Relative -> the reference point is the mouse position before Jump" -msgstr "" -"La référence peut être:\n" -"- Absolue -> le point de référence est le point (0,0)\n" -"- Relatif -> le point de référence est la position de la souris avant le saut" +#: flatcamGUI/FlatCAMGUI.py:90 +msgid "File" +msgstr "Fichier" -#: AppGUI/GUIElements.py:2697 -msgid "Abs" -msgstr "Abs" +#: flatcamGUI/FlatCAMGUI.py:95 +msgid "&New Project ...\tCtrl+N" +msgstr "Nouveau projet ...\tCtrl+N" -#: AppGUI/GUIElements.py:2698 -msgid "Relative" -msgstr "Relatif" +#: flatcamGUI/FlatCAMGUI.py:97 +msgid "Will create a new, blank project" +msgstr "Va créer un nouveau projet vierge" -#: AppGUI/GUIElements.py:2708 -msgid "Location" -msgstr "Emplacement" +#: flatcamGUI/FlatCAMGUI.py:102 +msgid "&New" +msgstr "Nouveau" -#: AppGUI/GUIElements.py:2710 -msgid "" -"The Location value is a tuple (x,y).\n" -"If the reference is Absolute then the Jump will be at the position (x,y).\n" -"If the reference is Relative then the Jump will be at the (x,y) distance\n" -"from the current mouse location point." -msgstr "" -"La valeur Emplacement est un tuple (x, y).\n" -"Si la référence est absolue, le saut sera à la position (x, y).\n" -"Si la référence est relative, le saut sera à la distance (x, y)\n" -"à partir du point d'emplacement actuel de la souris." +#: flatcamGUI/FlatCAMGUI.py:106 +msgid "Geometry\tN" +msgstr "Géométrie\tN" -#: AppGUI/GUIElements.py:2750 -msgid "Save Log" -msgstr "Enregistrer le journal" +#: flatcamGUI/FlatCAMGUI.py:108 +msgid "Will create a new, empty Geometry Object." +msgstr "Crée un nouvel objet de géométrie vide." -#: AppGUI/GUIElements.py:2760 App_Main.py:2679 App_Main.py:2988 -#: App_Main.py:3122 -msgid "Close" -msgstr "Fermé" +#: flatcamGUI/FlatCAMGUI.py:111 +msgid "Gerber\tB" +msgstr "Gerber\tB" -#: AppGUI/GUIElements.py:2769 AppTools/ToolShell.py:296 -msgid "Type >help< to get started" -msgstr "Tapez >help< pour commencer" +#: flatcamGUI/FlatCAMGUI.py:113 +msgid "Will create a new, empty Gerber Object." +msgstr "Crée un nouvel objet Gerber vide." -#: AppGUI/GUIElements.py:3159 AppGUI/GUIElements.py:3168 -msgid "Idle." -msgstr "Au repos." +#: flatcamGUI/FlatCAMGUI.py:116 +msgid "Excellon\tL" +msgstr "Excellon\tL" -#: AppGUI/GUIElements.py:3201 -msgid "Application started ..." -msgstr "Bienvenu dans FlatCam ..." +#: flatcamGUI/FlatCAMGUI.py:118 +msgid "Will create a new, empty Excellon Object." +msgstr "Va créer un nouvel objet vide vide." -#: AppGUI/GUIElements.py:3202 -msgid "Hello!" -msgstr "Bonjours !" +#: flatcamGUI/FlatCAMGUI.py:123 +msgid "Document\tD" +msgstr "Document\tD" -#: AppGUI/GUIElements.py:3249 AppGUI/MainGUI.py:190 AppGUI/MainGUI.py:895 -#: AppGUI/MainGUI.py:1927 +#: flatcamGUI/FlatCAMGUI.py:125 +msgid "Will create a new, empty Document Object." +msgstr "Crée un nouvel objet de document vide." + +#: flatcamGUI/FlatCAMGUI.py:129 flatcamGUI/FlatCAMGUI.py:4420 +#: flatcamTools/ToolPcbWizard.py:62 flatcamTools/ToolPcbWizard.py:69 +msgid "Open" +msgstr "Ouvert" + +#: flatcamGUI/FlatCAMGUI.py:134 +msgid "Open &Project ..." +msgstr "Projet ouvert ..." + +#: flatcamGUI/FlatCAMGUI.py:140 flatcamGUI/FlatCAMGUI.py:4430 +msgid "Open &Gerber ...\tCtrl+G" +msgstr "Gerber ouvert...\tCtrl+G" + +#: flatcamGUI/FlatCAMGUI.py:145 flatcamGUI/FlatCAMGUI.py:4435 +msgid "Open &Excellon ...\tCtrl+E" +msgstr "Excellon ouvert ...\tCtrl+E" + +#: flatcamGUI/FlatCAMGUI.py:150 flatcamGUI/FlatCAMGUI.py:4440 +msgid "Open G-&Code ..." +msgstr "Ouvrir G-Code ..." + +#: flatcamGUI/FlatCAMGUI.py:157 +msgid "Open Config ..." +msgstr "Ouvrez la configuration ..." + +#: flatcamGUI/FlatCAMGUI.py:162 +msgid "Recent projects" +msgstr "Les projets récents" + +#: flatcamGUI/FlatCAMGUI.py:164 +msgid "Recent files" +msgstr "Fichiers récents" + +#: flatcamGUI/FlatCAMGUI.py:167 flatcamGUI/FlatCAMGUI.py:753 +#: flatcamGUI/FlatCAMGUI.py:1339 +msgid "Save" +msgstr "Sauver" + +#: flatcamGUI/FlatCAMGUI.py:171 +msgid "&Save Project ...\tCtrl+S" +msgstr "Sauvegarder le projet...\tCtrl+S" + +#: flatcamGUI/FlatCAMGUI.py:176 +msgid "Save Project &As ...\tCtrl+Shift+S" +msgstr "Enregistrer le projet sous...\tCtrl+Shift+S" + +#: flatcamGUI/FlatCAMGUI.py:191 +msgid "Scripting" +msgstr "Scripting" + +#: flatcamGUI/FlatCAMGUI.py:195 flatcamGUI/FlatCAMGUI.py:903 +#: flatcamGUI/FlatCAMGUI.py:2607 +msgid "New Script ..." +msgstr "Nouveau script ..." + +#: flatcamGUI/FlatCAMGUI.py:197 flatcamGUI/FlatCAMGUI.py:905 +#: flatcamGUI/FlatCAMGUI.py:2609 +msgid "Open Script ..." +msgstr "Script ouvert ..." + +#: flatcamGUI/FlatCAMGUI.py:199 +msgid "Open Example ..." +msgstr "Ouvrir l'exemple ..." + +#: flatcamGUI/FlatCAMGUI.py:201 flatcamGUI/FlatCAMGUI.py:907 +#: flatcamGUI/FlatCAMGUI.py:2611 flatcamGUI/FlatCAMGUI.py:4409 msgid "Run Script ..." msgstr "Exécutez le script ..." -#: AppGUI/GUIElements.py:3251 AppGUI/MainGUI.py:192 +#: flatcamGUI/FlatCAMGUI.py:203 flatcamGUI/FlatCAMGUI.py:4411 msgid "" "Will run the opened Tcl Script thus\n" "enabling the automation of certain\n" "functions of FlatCAM." msgstr "" -"Exécute le script Tcl ouvert.\n" -"Permet l’automatisation de \n" -"fonctions dans FlatCAM." +"Va exécuter le script Tcl ouvert ainsi\n" +"permettant l’automatisation de certaines\n" +"fonctions de FlatCAM." -#: AppGUI/GUIElements.py:3260 AppGUI/MainGUI.py:118 -#: AppTools/ToolPcbWizard.py:62 AppTools/ToolPcbWizard.py:69 -msgid "Open" -msgstr "Ouvrir" - -#: AppGUI/GUIElements.py:3264 -msgid "Open Project ..." -msgstr "Ouvrir Projet ..." - -#: AppGUI/GUIElements.py:3270 AppGUI/MainGUI.py:129 -msgid "Open &Gerber ...\tCtrl+G" -msgstr "Ouvrir Gerber...\tCtrl+G" - -#: AppGUI/GUIElements.py:3275 AppGUI/MainGUI.py:134 -msgid "Open &Excellon ...\tCtrl+E" -msgstr "Ouvrir Excellon ...\tCtrl+E" - -#: AppGUI/GUIElements.py:3280 AppGUI/MainGUI.py:139 -msgid "Open G-&Code ..." -msgstr "Ouvrir G-Code ..." - -#: AppGUI/GUIElements.py:3290 -msgid "Exit" -msgstr "Quitter" - -#: AppGUI/MainGUI.py:67 AppGUI/MainGUI.py:69 AppGUI/MainGUI.py:1407 -msgid "Toggle Panel" -msgstr "Basculer le Panneau" - -#: AppGUI/MainGUI.py:79 -msgid "File" -msgstr "Fichier" - -#: AppGUI/MainGUI.py:84 -msgid "&New Project ...\tCtrl+N" -msgstr "Nouveau projet ...\tCtrl+N" - -#: AppGUI/MainGUI.py:86 -msgid "Will create a new, blank project" -msgstr "Va créer un nouveau projet vierge" - -#: AppGUI/MainGUI.py:91 -msgid "&New" -msgstr "Nouveau" - -#: AppGUI/MainGUI.py:95 -msgid "Geometry\tN" -msgstr "Géométrie\tN" - -#: AppGUI/MainGUI.py:97 -msgid "Will create a new, empty Geometry Object." -msgstr "Crée un nouvel objet de géométrie vide." - -#: AppGUI/MainGUI.py:100 -msgid "Gerber\tB" -msgstr "Gerber\tB" - -#: AppGUI/MainGUI.py:102 -msgid "Will create a new, empty Gerber Object." -msgstr "Crée un nouvel objet Gerber vide." - -#: AppGUI/MainGUI.py:105 -msgid "Excellon\tL" -msgstr "Excellon\tL" - -#: AppGUI/MainGUI.py:107 -msgid "Will create a new, empty Excellon Object." -msgstr "Va créer un nouvel objet vide vide." - -#: AppGUI/MainGUI.py:112 -msgid "Document\tD" -msgstr "Document\tD" - -#: AppGUI/MainGUI.py:114 -msgid "Will create a new, empty Document Object." -msgstr "Crée un nouvel objet de document vide." - -#: AppGUI/MainGUI.py:123 -msgid "Open &Project ..." -msgstr "Ouvrir Projet ..." - -#: AppGUI/MainGUI.py:146 -msgid "Open Config ..." -msgstr "Configuration ..." - -#: AppGUI/MainGUI.py:151 -msgid "Recent projects" -msgstr "Projets récents" - -#: AppGUI/MainGUI.py:153 -msgid "Recent files" -msgstr "Fichiers récents" - -#: AppGUI/MainGUI.py:156 AppGUI/MainGUI.py:750 AppGUI/MainGUI.py:1380 -msgid "Save" -msgstr "Enregister" - -#: AppGUI/MainGUI.py:160 -msgid "&Save Project ...\tCtrl+S" -msgstr "Enregistrer le projet...\tCtrl+S" - -#: AppGUI/MainGUI.py:165 -msgid "Save Project &As ...\tCtrl+Shift+S" -msgstr "Enregistrer le projet sous...\tCtrl+Shift+S" - -#: AppGUI/MainGUI.py:180 -msgid "Scripting" -msgstr "Scripte" - -#: AppGUI/MainGUI.py:184 AppGUI/MainGUI.py:891 AppGUI/MainGUI.py:1923 -msgid "New Script ..." -msgstr "Nouveau script ..." - -#: AppGUI/MainGUI.py:186 AppGUI/MainGUI.py:893 AppGUI/MainGUI.py:1925 -msgid "Open Script ..." -msgstr "Ouvrir Script ..." - -#: AppGUI/MainGUI.py:188 -msgid "Open Example ..." -msgstr "Ouvrir l'exemple ..." - -#: AppGUI/MainGUI.py:207 +#: flatcamGUI/FlatCAMGUI.py:218 msgid "Import" msgstr "Importation" -#: AppGUI/MainGUI.py:209 +#: flatcamGUI/FlatCAMGUI.py:220 msgid "&SVG as Geometry Object ..." msgstr "SVG comme objet de géométrie ..." -#: AppGUI/MainGUI.py:212 +#: flatcamGUI/FlatCAMGUI.py:223 msgid "&SVG as Gerber Object ..." msgstr "SVG comme objet Gerber ..." -#: AppGUI/MainGUI.py:217 +#: flatcamGUI/FlatCAMGUI.py:228 msgid "&DXF as Geometry Object ..." msgstr "DXF comme objet de géométrie ..." -#: AppGUI/MainGUI.py:220 +#: flatcamGUI/FlatCAMGUI.py:231 msgid "&DXF as Gerber Object ..." msgstr "DXF en tant qu'objet Gerber ..." -#: AppGUI/MainGUI.py:224 +#: flatcamGUI/FlatCAMGUI.py:235 msgid "HPGL2 as Geometry Object ..." msgstr "HPGL2 comme objet géométrique ..." -#: AppGUI/MainGUI.py:230 +#: flatcamGUI/FlatCAMGUI.py:241 msgid "Export" msgstr "Exportation" -#: AppGUI/MainGUI.py:234 +#: flatcamGUI/FlatCAMGUI.py:245 msgid "Export &SVG ..." msgstr "Exporter SVG ..." -#: AppGUI/MainGUI.py:238 +#: flatcamGUI/FlatCAMGUI.py:249 msgid "Export DXF ..." msgstr "Exporter DXF ..." -#: AppGUI/MainGUI.py:244 +#: flatcamGUI/FlatCAMGUI.py:255 msgid "Export &PNG ..." msgstr "Exporter PNG ..." -#: AppGUI/MainGUI.py:246 +#: flatcamGUI/FlatCAMGUI.py:257 msgid "" "Will export an image in PNG format,\n" "the saved image will contain the visual \n" "information currently in FlatCAM Plot Area." msgstr "" -"Exporte une image au format PNG.\n" -"L'image enregistrée contiendra le visuel\n" -"de la zone de tracé de FlatCAM." +"Exportera une image au format PNG,\n" +"l'image enregistrée contiendra le visuel\n" +"informations actuellement dans la zone de tracé FlatCAM." -#: AppGUI/MainGUI.py:255 +#: flatcamGUI/FlatCAMGUI.py:266 msgid "Export &Excellon ..." msgstr "Exporter Excellon ..." -#: AppGUI/MainGUI.py:257 +#: flatcamGUI/FlatCAMGUI.py:268 msgid "" "Will export an Excellon Object as Excellon file,\n" "the coordinates format, the file units and zeros\n" @@ -3568,13 +5471,13 @@ msgid "" msgstr "" "Exportera un objet Excellon en tant que fichier Excellon,\n" "le format des coordonnées, les unités de fichier et les zéros\n" -"sont définies dans Paramètres -> Excellon Export." +"sont définies dans Préférences -> Excellon Export." -#: AppGUI/MainGUI.py:264 +#: flatcamGUI/FlatCAMGUI.py:275 msgid "Export &Gerber ..." msgstr "Exporter Gerber ..." -#: AppGUI/MainGUI.py:266 +#: flatcamGUI/FlatCAMGUI.py:277 msgid "" "Will export an Gerber Object as Gerber file,\n" "the coordinates format, the file units and zeros\n" @@ -3582,53 +5485,55 @@ msgid "" msgstr "" "Exportera un objet Gerber en tant que fichier Gerber,\n" "le format des coordonnées, les unités de fichier et les zéros\n" -"sont définies dans Paramètres -> Exportation Gerber." +"sont définies dans Préférences -> Exportation Gerber." -#: AppGUI/MainGUI.py:276 +#: flatcamGUI/FlatCAMGUI.py:287 msgid "Backup" -msgstr "F. Paramètres" +msgstr "Sauvegarde" -#: AppGUI/MainGUI.py:281 +#: flatcamGUI/FlatCAMGUI.py:292 msgid "Import Preferences from file ..." msgstr "Importer les préférences du fichier ..." -#: AppGUI/MainGUI.py:287 +#: flatcamGUI/FlatCAMGUI.py:298 msgid "Export Preferences to file ..." -msgstr "Exporter les paramètres ..." +msgstr "Exporter les préférences dans un fichier ..." -#: AppGUI/MainGUI.py:295 AppGUI/preferences/PreferencesUIManager.py:1119 +#: flatcamGUI/FlatCAMGUI.py:306 +#: flatcamGUI/preferences/PreferencesUIManager.py:1119 msgid "Save Preferences" msgstr "Enregistrer les préf" -#: AppGUI/MainGUI.py:301 AppGUI/MainGUI.py:4101 +#: flatcamGUI/FlatCAMGUI.py:312 flatcamGUI/FlatCAMGUI.py:1730 msgid "Print (PDF)" msgstr "Imprimer (PDF)" -#: AppGUI/MainGUI.py:309 +#: flatcamGUI/FlatCAMGUI.py:320 msgid "E&xit" -msgstr "Quitter" +msgstr "Sortie" -#: AppGUI/MainGUI.py:317 AppGUI/MainGUI.py:744 AppGUI/MainGUI.py:1529 +#: flatcamGUI/FlatCAMGUI.py:328 flatcamGUI/FlatCAMGUI.py:747 +#: flatcamGUI/FlatCAMGUI.py:2286 msgid "Edit" msgstr "Modifier" -#: AppGUI/MainGUI.py:321 +#: flatcamGUI/FlatCAMGUI.py:332 msgid "Edit Object\tE" -msgstr "Modifier un objet\tE" +msgstr "Editer un objet\tE" -#: AppGUI/MainGUI.py:323 +#: flatcamGUI/FlatCAMGUI.py:334 msgid "Close Editor\tCtrl+S" msgstr "Fermer l'éditeur\tCtrl+S" -#: AppGUI/MainGUI.py:332 +#: flatcamGUI/FlatCAMGUI.py:343 msgid "Conversion" msgstr "Conversion" -#: AppGUI/MainGUI.py:334 +#: flatcamGUI/FlatCAMGUI.py:345 msgid "&Join Geo/Gerber/Exc -> Geo" msgstr "Rejoindre Geo/Gerber/Exc -> Geo" -#: AppGUI/MainGUI.py:336 +#: flatcamGUI/FlatCAMGUI.py:347 msgid "" "Merge a selection of objects, which can be of type:\n" "- Gerber\n" @@ -3642,852 +5547,799 @@ msgstr "" "- Géométrie\n" "dans un nouvel objet de géométrie combo." -#: AppGUI/MainGUI.py:343 +#: flatcamGUI/FlatCAMGUI.py:354 msgid "Join Excellon(s) -> Excellon" msgstr "Rejoignez Excellon(s) -> Excellon" -#: AppGUI/MainGUI.py:345 +#: flatcamGUI/FlatCAMGUI.py:356 msgid "Merge a selection of Excellon objects into a new combo Excellon object." msgstr "" "Fusionner une sélection d'objets Excellon dans un nouvel objet Excellon " "combo." -#: AppGUI/MainGUI.py:348 +#: flatcamGUI/FlatCAMGUI.py:359 msgid "Join Gerber(s) -> Gerber" msgstr "Rejoindre Gerber(s) -> Gerber" -#: AppGUI/MainGUI.py:350 +#: flatcamGUI/FlatCAMGUI.py:361 msgid "Merge a selection of Gerber objects into a new combo Gerber object." msgstr "" "Fusionner une sélection d'objets Gerber dans un nouvel objet Gerber combiné." -#: AppGUI/MainGUI.py:355 +#: flatcamGUI/FlatCAMGUI.py:366 msgid "Convert Single to MultiGeo" msgstr "Convertir Unique en MultiGeo" -#: AppGUI/MainGUI.py:357 +#: flatcamGUI/FlatCAMGUI.py:368 msgid "" "Will convert a Geometry object from single_geometry type\n" "to a multi_geometry type." msgstr "" -"Convertira un objet Géométrie à partir d'un type de géométrie unique\n" +"Convertira un objet Geometry à partir d'un type de géométrie unique\n" "à un type multi géométrie." -#: AppGUI/MainGUI.py:361 +#: flatcamGUI/FlatCAMGUI.py:372 msgid "Convert Multi to SingleGeo" -msgstr "Convertir Multi en Unique Géo" +msgstr "Convertir Multi en Unique Geo" -#: AppGUI/MainGUI.py:363 +#: flatcamGUI/FlatCAMGUI.py:374 msgid "" "Will convert a Geometry object from multi_geometry type\n" "to a single_geometry type." msgstr "" -"Convertira un objet multi-géométrie en un type simple-géométrie " -"(concaténation)." +"Convertira un objet Geometry de type multi geometry\n" +"à un seul type de géométrie." -#: AppGUI/MainGUI.py:370 +#: flatcamGUI/FlatCAMGUI.py:381 msgid "Convert Any to Geo" -msgstr "Convertir en Géo" +msgstr "Convertir n'importe quel en Geo" -#: AppGUI/MainGUI.py:373 +#: flatcamGUI/FlatCAMGUI.py:384 msgid "Convert Any to Gerber" -msgstr "Convertir en Gerber" +msgstr "Convertir n'importe lequel en gerber" -#: AppGUI/MainGUI.py:379 +#: flatcamGUI/FlatCAMGUI.py:390 msgid "&Copy\tCtrl+C" msgstr "Copie\tCtrl+C" -#: AppGUI/MainGUI.py:384 +#: flatcamGUI/FlatCAMGUI.py:395 msgid "&Delete\tDEL" msgstr "Supprimer\tDEL" -#: AppGUI/MainGUI.py:389 +#: flatcamGUI/FlatCAMGUI.py:400 msgid "Se&t Origin\tO" msgstr "Définir L'origine\tO" -#: AppGUI/MainGUI.py:391 +#: flatcamGUI/FlatCAMGUI.py:402 msgid "Move to Origin\tShift+O" msgstr "Déplacer vers l'origine\tShift+O" -#: AppGUI/MainGUI.py:394 +#: flatcamGUI/FlatCAMGUI.py:405 msgid "Jump to Location\tJ" msgstr "Aller à l'emplacement\tJ" -#: AppGUI/MainGUI.py:396 +#: flatcamGUI/FlatCAMGUI.py:407 msgid "Locate in Object\tShift+J" msgstr "Localiser dans l'objet\tShift+J" -#: AppGUI/MainGUI.py:401 +#: flatcamGUI/FlatCAMGUI.py:412 msgid "Toggle Units\tQ" msgstr "Basculer les Unités\tQ" -#: AppGUI/MainGUI.py:403 +#: flatcamGUI/FlatCAMGUI.py:414 msgid "&Select All\tCtrl+A" msgstr "Tout sélectionner\tCtrl+A" -#: AppGUI/MainGUI.py:408 +#: flatcamGUI/FlatCAMGUI.py:419 msgid "&Preferences\tShift+P" -msgstr "Paramètres \tShift+P" +msgstr "Préférences\tShift+P" -#: AppGUI/MainGUI.py:414 AppTools/ToolProperties.py:155 +#: flatcamGUI/FlatCAMGUI.py:425 flatcamTools/ToolProperties.py:155 msgid "Options" -msgstr "Options" +msgstr "Les options" -#: AppGUI/MainGUI.py:416 +#: flatcamGUI/FlatCAMGUI.py:427 msgid "&Rotate Selection\tShift+(R)" msgstr "Faire pivoter la sélection\tShift+(R)" -#: AppGUI/MainGUI.py:421 +#: flatcamGUI/FlatCAMGUI.py:432 msgid "&Skew on X axis\tShift+X" -msgstr "Inclinaison sur l'axe X\tShift+X" +msgstr "Fausser sur l'axe X\tShift+X" -#: AppGUI/MainGUI.py:423 +#: flatcamGUI/FlatCAMGUI.py:434 msgid "S&kew on Y axis\tShift+Y" -msgstr "Inclinaison sur l'axe Y\tShift+Y" +msgstr "Fausser sur l'axe Y\tShift+Y" -#: AppGUI/MainGUI.py:428 +#: flatcamGUI/FlatCAMGUI.py:439 msgid "Flip on &X axis\tX" msgstr "Miroir sur l'axe X\tX" -#: AppGUI/MainGUI.py:430 +#: flatcamGUI/FlatCAMGUI.py:441 msgid "Flip on &Y axis\tY" msgstr "Miroir sur l'axe Y\tY" -#: AppGUI/MainGUI.py:435 +#: flatcamGUI/FlatCAMGUI.py:446 msgid "View source\tAlt+S" msgstr "Voir la source\tAlt+S" -#: AppGUI/MainGUI.py:437 +#: flatcamGUI/FlatCAMGUI.py:448 msgid "Tools DataBase\tCtrl+D" msgstr "Base de Données d'outils\tCtrl+D" -#: AppGUI/MainGUI.py:444 AppGUI/MainGUI.py:1427 +#: flatcamGUI/FlatCAMGUI.py:455 flatcamGUI/FlatCAMGUI.py:2183 msgid "View" msgstr "Vue" -#: AppGUI/MainGUI.py:446 +#: flatcamGUI/FlatCAMGUI.py:457 msgid "Enable all plots\tAlt+1" msgstr "Activer tous les dessins\tAlt+1" -#: AppGUI/MainGUI.py:448 +#: flatcamGUI/FlatCAMGUI.py:459 msgid "Disable all plots\tAlt+2" msgstr "Désactiver tous les dessins\tAlt+2" -#: AppGUI/MainGUI.py:450 +#: flatcamGUI/FlatCAMGUI.py:461 msgid "Disable non-selected\tAlt+3" msgstr "Désactiver les non sélectionnés\tAlt+3" -#: AppGUI/MainGUI.py:454 +#: flatcamGUI/FlatCAMGUI.py:465 msgid "&Zoom Fit\tV" msgstr "Ajustement du Zoom\tV" -#: AppGUI/MainGUI.py:456 +#: flatcamGUI/FlatCAMGUI.py:467 msgid "&Zoom In\t=" -msgstr "Zoomer\t=" +msgstr "Agrandir\t=" -#: AppGUI/MainGUI.py:458 +#: flatcamGUI/FlatCAMGUI.py:469 msgid "&Zoom Out\t-" msgstr "Dézoomer\t-" -#: AppGUI/MainGUI.py:463 +#: flatcamGUI/FlatCAMGUI.py:474 msgid "Redraw All\tF5" msgstr "Tout redessiner\tF5" -#: AppGUI/MainGUI.py:467 +#: flatcamGUI/FlatCAMGUI.py:478 msgid "Toggle Code Editor\tShift+E" msgstr "Basculer l'éditeur de code\tShift+E" -#: AppGUI/MainGUI.py:470 +#: flatcamGUI/FlatCAMGUI.py:481 msgid "&Toggle FullScreen\tAlt+F10" msgstr "Passer en plein écran\tAlt+F10" -#: AppGUI/MainGUI.py:472 +#: flatcamGUI/FlatCAMGUI.py:483 msgid "&Toggle Plot Area\tCtrl+F10" msgstr "Basculer la zone de tracé\tCtrl+F10" -#: AppGUI/MainGUI.py:474 +#: flatcamGUI/FlatCAMGUI.py:485 msgid "&Toggle Project/Sel/Tool\t`" msgstr "Basculer Projet / Sel / Outil\t`" -#: AppGUI/MainGUI.py:478 +#: flatcamGUI/FlatCAMGUI.py:489 msgid "&Toggle Grid Snap\tG" msgstr "Basculer la grille\tG" -#: AppGUI/MainGUI.py:480 +#: flatcamGUI/FlatCAMGUI.py:491 msgid "&Toggle Grid Lines\tAlt+G" msgstr "Basculer les lignes de la grille\tAlt+G" -#: AppGUI/MainGUI.py:482 +#: flatcamGUI/FlatCAMGUI.py:493 msgid "&Toggle Axis\tShift+G" msgstr "Basculer l'axe\tShift+G" -#: AppGUI/MainGUI.py:484 +#: flatcamGUI/FlatCAMGUI.py:495 msgid "Toggle Workspace\tShift+W" msgstr "Basculer l'espace de travail\tShift+W" -#: AppGUI/MainGUI.py:486 -msgid "Toggle HUD\tAlt+H" -msgstr "Basculer le HUD\tAlt+H" - -#: AppGUI/MainGUI.py:491 +#: flatcamGUI/FlatCAMGUI.py:500 msgid "Objects" msgstr "Objets" -#: AppGUI/MainGUI.py:494 AppGUI/MainGUI.py:4099 -#: AppObjects/ObjectCollection.py:1121 AppObjects/ObjectCollection.py:1168 -msgid "Select All" -msgstr "Tout sélectionner" - -#: AppGUI/MainGUI.py:496 AppObjects/ObjectCollection.py:1125 -#: AppObjects/ObjectCollection.py:1172 -msgid "Deselect All" -msgstr "Tout désélectionner" - -#: AppGUI/MainGUI.py:505 +#: flatcamGUI/FlatCAMGUI.py:514 msgid "&Command Line\tS" msgstr "&Ligne de commande\tS" -#: AppGUI/MainGUI.py:510 +#: flatcamGUI/FlatCAMGUI.py:519 msgid "Help" msgstr "Aide" -#: AppGUI/MainGUI.py:512 +#: flatcamGUI/FlatCAMGUI.py:521 msgid "Online Help\tF1" msgstr "Aide en ligne\tF1" -#: AppGUI/MainGUI.py:515 Bookmark.py:293 -msgid "Bookmarks" -msgstr "Internet" - -#: AppGUI/MainGUI.py:518 App_Main.py:3091 App_Main.py:3100 -msgid "Bookmarks Manager" -msgstr "Gestionnaire de favoris" - -#: AppGUI/MainGUI.py:522 +#: flatcamGUI/FlatCAMGUI.py:531 msgid "Report a bug" msgstr "Signaler une erreur" -#: AppGUI/MainGUI.py:525 +#: flatcamGUI/FlatCAMGUI.py:534 msgid "Excellon Specification" -msgstr "Documentation Excellon" +msgstr "Excellon Spécification" -#: AppGUI/MainGUI.py:527 +#: flatcamGUI/FlatCAMGUI.py:536 msgid "Gerber Specification" -msgstr "Documentation Gerber" +msgstr "Gerber Spécifications" -#: AppGUI/MainGUI.py:532 +#: flatcamGUI/FlatCAMGUI.py:541 msgid "Shortcuts List\tF3" -msgstr "Raccourcis Clavier\tF3" +msgstr "Liste des raccourcis\tF3" -#: AppGUI/MainGUI.py:534 +#: flatcamGUI/FlatCAMGUI.py:543 msgid "YouTube Channel\tF4" msgstr "Chaîne Youtube\tF4" -#: AppGUI/MainGUI.py:539 -msgid "ReadMe?" -msgstr "Lisez-moi?" - -#: AppGUI/MainGUI.py:542 App_Main.py:2646 -msgid "About FlatCAM" -msgstr "À propos de FlatCAM" - -#: AppGUI/MainGUI.py:551 +#: flatcamGUI/FlatCAMGUI.py:554 msgid "Add Circle\tO" msgstr "Ajouter un Cercle\tO" -#: AppGUI/MainGUI.py:554 +#: flatcamGUI/FlatCAMGUI.py:557 msgid "Add Arc\tA" msgstr "Ajouter un Arc\tA" -#: AppGUI/MainGUI.py:557 +#: flatcamGUI/FlatCAMGUI.py:560 msgid "Add Rectangle\tR" msgstr "Ajouter un Rectangle\tR" -#: AppGUI/MainGUI.py:560 +#: flatcamGUI/FlatCAMGUI.py:563 msgid "Add Polygon\tN" msgstr "Ajouter un Polygone\tN" -#: AppGUI/MainGUI.py:563 +#: flatcamGUI/FlatCAMGUI.py:566 msgid "Add Path\tP" msgstr "Ajouter un Chemin\tP" -#: AppGUI/MainGUI.py:566 +#: flatcamGUI/FlatCAMGUI.py:569 msgid "Add Text\tT" msgstr "Ajouter du Texte\tT" -#: AppGUI/MainGUI.py:569 +#: flatcamGUI/FlatCAMGUI.py:572 msgid "Polygon Union\tU" msgstr "Union de Polygones\tU" -#: AppGUI/MainGUI.py:571 +#: flatcamGUI/FlatCAMGUI.py:574 msgid "Polygon Intersection\tE" msgstr "Intersection de Polygones\tE" -#: AppGUI/MainGUI.py:573 +#: flatcamGUI/FlatCAMGUI.py:576 msgid "Polygon Subtraction\tS" msgstr "Soustraction de Polygone\tS" -#: AppGUI/MainGUI.py:577 +#: flatcamGUI/FlatCAMGUI.py:580 msgid "Cut Path\tX" msgstr "Chemin Coupé\tX" -#: AppGUI/MainGUI.py:581 +#: flatcamGUI/FlatCAMGUI.py:584 msgid "Copy Geom\tC" msgstr "Copier la Géométrie\tC" -#: AppGUI/MainGUI.py:583 +#: flatcamGUI/FlatCAMGUI.py:586 msgid "Delete Shape\tDEL" msgstr "Supprimer la Forme\tDEL" -#: AppGUI/MainGUI.py:587 AppGUI/MainGUI.py:674 +#: flatcamGUI/FlatCAMGUI.py:590 flatcamGUI/FlatCAMGUI.py:677 msgid "Move\tM" msgstr "Déplacer\tM" -#: AppGUI/MainGUI.py:589 +#: flatcamGUI/FlatCAMGUI.py:592 msgid "Buffer Tool\tB" msgstr "Outil Tampon\tB" -#: AppGUI/MainGUI.py:592 +#: flatcamGUI/FlatCAMGUI.py:595 msgid "Paint Tool\tI" msgstr "Outil de Peinture\tI" -#: AppGUI/MainGUI.py:595 +#: flatcamGUI/FlatCAMGUI.py:598 msgid "Transform Tool\tAlt+R" msgstr "Outil de Transformation\tAlt+R" -#: AppGUI/MainGUI.py:599 +#: flatcamGUI/FlatCAMGUI.py:602 msgid "Toggle Corner Snap\tK" msgstr "Basculer le Coin accrocher\tK" -#: AppGUI/MainGUI.py:605 +#: flatcamGUI/FlatCAMGUI.py:608 msgid ">Excellon Editor<" -msgstr ">Excellon Éditeur<" +msgstr ">Excellent Éditeur<" -#: AppGUI/MainGUI.py:609 +#: flatcamGUI/FlatCAMGUI.py:612 msgid "Add Drill Array\tA" msgstr "Ajouter un Tableau de Forage\tA" -#: AppGUI/MainGUI.py:611 +#: flatcamGUI/FlatCAMGUI.py:614 msgid "Add Drill\tD" msgstr "Ajouter une Forage\tD" -#: AppGUI/MainGUI.py:615 +#: flatcamGUI/FlatCAMGUI.py:618 msgid "Add Slot Array\tQ" msgstr "Ajouter un Tableau de Fente\tQ" -#: AppGUI/MainGUI.py:617 +#: flatcamGUI/FlatCAMGUI.py:620 msgid "Add Slot\tW" msgstr "Ajouter une Fente\tW" -#: AppGUI/MainGUI.py:621 +#: flatcamGUI/FlatCAMGUI.py:624 msgid "Resize Drill(S)\tR" msgstr "Redimensionner le Foret\tR" -#: AppGUI/MainGUI.py:624 AppGUI/MainGUI.py:668 +#: flatcamGUI/FlatCAMGUI.py:627 flatcamGUI/FlatCAMGUI.py:671 msgid "Copy\tC" msgstr "Copie\tC" -#: AppGUI/MainGUI.py:626 AppGUI/MainGUI.py:670 +#: flatcamGUI/FlatCAMGUI.py:629 flatcamGUI/FlatCAMGUI.py:673 msgid "Delete\tDEL" msgstr "Supprimer\tDEL" -#: AppGUI/MainGUI.py:631 +#: flatcamGUI/FlatCAMGUI.py:634 msgid "Move Drill(s)\tM" msgstr "Déplacer les Forets\tM" -#: AppGUI/MainGUI.py:636 +#: flatcamGUI/FlatCAMGUI.py:639 msgid ">Gerber Editor<" msgstr ">Gerber Éditeur<" -#: AppGUI/MainGUI.py:640 +#: flatcamGUI/FlatCAMGUI.py:643 msgid "Add Pad\tP" msgstr "Ajouter un Pad\tP" -#: AppGUI/MainGUI.py:642 +#: flatcamGUI/FlatCAMGUI.py:645 msgid "Add Pad Array\tA" msgstr "Ajouter un Tableau de Pad\tA" -#: AppGUI/MainGUI.py:644 +#: flatcamGUI/FlatCAMGUI.py:647 msgid "Add Track\tT" msgstr "Ajouter une Piste\tT" -#: AppGUI/MainGUI.py:646 +#: flatcamGUI/FlatCAMGUI.py:649 msgid "Add Region\tN" msgstr "Ajouter une Région\tN" -#: AppGUI/MainGUI.py:650 +#: flatcamGUI/FlatCAMGUI.py:653 msgid "Poligonize\tAlt+N" msgstr "Polygoniser\tAlt+N" -#: AppGUI/MainGUI.py:652 +#: flatcamGUI/FlatCAMGUI.py:655 msgid "Add SemiDisc\tE" msgstr "Ajouter un Semi-Disque\tE" -#: AppGUI/MainGUI.py:654 +#: flatcamGUI/FlatCAMGUI.py:657 msgid "Add Disc\tD" msgstr "Ajouter un Disque\tD" -#: AppGUI/MainGUI.py:656 +#: flatcamGUI/FlatCAMGUI.py:659 msgid "Buffer\tB" msgstr "Tampon\tB" -#: AppGUI/MainGUI.py:658 +#: flatcamGUI/FlatCAMGUI.py:661 msgid "Scale\tS" msgstr "Échelle\tS" -#: AppGUI/MainGUI.py:660 +#: flatcamGUI/FlatCAMGUI.py:663 msgid "Mark Area\tAlt+A" msgstr "Zone de Marque\tAlt+A" -#: AppGUI/MainGUI.py:662 +#: flatcamGUI/FlatCAMGUI.py:665 msgid "Eraser\tCtrl+E" msgstr "La Gomme\tCtrl+E" -#: AppGUI/MainGUI.py:664 +#: flatcamGUI/FlatCAMGUI.py:667 msgid "Transform\tAlt+R" msgstr "Transformation\tAlt+R" -#: AppGUI/MainGUI.py:691 +#: flatcamGUI/FlatCAMGUI.py:694 msgid "Enable Plot" msgstr "Activer le Tracé" -#: AppGUI/MainGUI.py:693 +#: flatcamGUI/FlatCAMGUI.py:696 msgid "Disable Plot" msgstr "Désactiver le Tracé" -#: AppGUI/MainGUI.py:697 +#: flatcamGUI/FlatCAMGUI.py:700 msgid "Set Color" msgstr "Définir la couleur" -#: AppGUI/MainGUI.py:700 App_Main.py:9644 -msgid "Red" -msgstr "Rouge" - -#: AppGUI/MainGUI.py:703 App_Main.py:9646 -msgid "Blue" -msgstr "Bleu" - -#: AppGUI/MainGUI.py:706 App_Main.py:9649 -msgid "Yellow" -msgstr "Jaune" - -#: AppGUI/MainGUI.py:709 App_Main.py:9651 -msgid "Green" -msgstr "Vert" - -#: AppGUI/MainGUI.py:712 App_Main.py:9653 -msgid "Purple" -msgstr "Violet" - -#: AppGUI/MainGUI.py:715 App_Main.py:9655 -msgid "Brown" -msgstr "Marron" - -#: AppGUI/MainGUI.py:718 App_Main.py:9657 App_Main.py:9713 -msgid "White" -msgstr "Blanche" - -#: AppGUI/MainGUI.py:721 App_Main.py:9659 -msgid "Black" -msgstr "Noire" - -#: AppGUI/MainGUI.py:726 App_Main.py:9662 -msgid "Custom" -msgstr "Personnalisé" - -#: AppGUI/MainGUI.py:731 App_Main.py:9696 -msgid "Opacity" -msgstr "Opacité" - -#: AppGUI/MainGUI.py:734 App_Main.py:9672 -msgid "Default" -msgstr "Défaut" - -#: AppGUI/MainGUI.py:739 +#: flatcamGUI/FlatCAMGUI.py:742 msgid "Generate CNC" msgstr "Générer CNC" -#: AppGUI/MainGUI.py:741 +#: flatcamGUI/FlatCAMGUI.py:744 msgid "View Source" msgstr "Voir la source" -#: AppGUI/MainGUI.py:746 AppGUI/MainGUI.py:851 AppGUI/MainGUI.py:1066 -#: AppGUI/MainGUI.py:1525 AppGUI/MainGUI.py:1886 AppGUI/MainGUI.py:2097 -#: AppGUI/MainGUI.py:4511 AppGUI/ObjectUI.py:1519 -#: AppObjects/FlatCAMGeometry.py:560 AppTools/ToolPanelize.py:551 -#: AppTools/ToolPanelize.py:578 AppTools/ToolPanelize.py:671 -#: AppTools/ToolPanelize.py:700 AppTools/ToolPanelize.py:762 +#: flatcamGUI/FlatCAMGUI.py:749 flatcamGUI/FlatCAMGUI.py:863 +#: flatcamGUI/FlatCAMGUI.py:1072 flatcamGUI/FlatCAMGUI.py:2138 +#: flatcamGUI/FlatCAMGUI.py:2282 flatcamGUI/FlatCAMGUI.py:2572 +#: flatcamGUI/FlatCAMGUI.py:2775 flatcamGUI/ObjectUI.py:1617 +#: flatcamObjects/FlatCAMGeometry.py:502 flatcamTools/ToolPanelize.py:540 +#: flatcamTools/ToolPanelize.py:567 flatcamTools/ToolPanelize.py:660 +#: flatcamTools/ToolPanelize.py:689 flatcamTools/ToolPanelize.py:751 msgid "Copy" msgstr "Copie" -#: AppGUI/MainGUI.py:754 AppGUI/MainGUI.py:1538 AppTools/ToolProperties.py:31 +#: flatcamGUI/FlatCAMGUI.py:757 flatcamGUI/FlatCAMGUI.py:2295 +#: flatcamTools/ToolProperties.py:31 msgid "Properties" msgstr "Propriétés" -#: AppGUI/MainGUI.py:783 +#: flatcamGUI/FlatCAMGUI.py:786 msgid "File Toolbar" msgstr "Barre d'outils de fichiers" -#: AppGUI/MainGUI.py:787 +#: flatcamGUI/FlatCAMGUI.py:790 msgid "Edit Toolbar" msgstr "Barre d'outils de editer" -#: AppGUI/MainGUI.py:791 +#: flatcamGUI/FlatCAMGUI.py:794 msgid "View Toolbar" msgstr "Barre d'outils de vue" -#: AppGUI/MainGUI.py:795 +#: flatcamGUI/FlatCAMGUI.py:798 msgid "Shell Toolbar" msgstr "Barre d'outils Shell" -#: AppGUI/MainGUI.py:799 +#: flatcamGUI/FlatCAMGUI.py:802 msgid "Tools Toolbar" msgstr "Barre d'outils de outils" -#: AppGUI/MainGUI.py:803 +#: flatcamGUI/FlatCAMGUI.py:806 msgid "Excellon Editor Toolbar" msgstr "Barre d'outils de l'éditeur Excellon" -#: AppGUI/MainGUI.py:809 +#: flatcamGUI/FlatCAMGUI.py:812 msgid "Geometry Editor Toolbar" msgstr "Barre d'outils de l'éditeur de Géométrie" -#: AppGUI/MainGUI.py:813 +#: flatcamGUI/FlatCAMGUI.py:816 msgid "Gerber Editor Toolbar" msgstr "Barre d'outils de l'éditeur Gerber" -#: AppGUI/MainGUI.py:817 +#: flatcamGUI/FlatCAMGUI.py:820 msgid "Grid Toolbar" msgstr "Barre d'outils de la Grille" -#: AppGUI/MainGUI.py:831 AppGUI/MainGUI.py:1865 App_Main.py:6592 -#: App_Main.py:6597 -msgid "Open Gerber" -msgstr "Ouvrir Gerber" - -#: AppGUI/MainGUI.py:833 AppGUI/MainGUI.py:1867 App_Main.py:6632 -#: App_Main.py:6637 -msgid "Open Excellon" -msgstr "Ouvrir Excellon" - -#: AppGUI/MainGUI.py:836 AppGUI/MainGUI.py:1870 +#: flatcamGUI/FlatCAMGUI.py:841 flatcamGUI/FlatCAMGUI.py:2549 msgid "Open project" -msgstr "Ouvrir Projet" +msgstr "Projet ouvert" -#: AppGUI/MainGUI.py:838 AppGUI/MainGUI.py:1872 +#: flatcamGUI/FlatCAMGUI.py:843 flatcamGUI/FlatCAMGUI.py:2551 msgid "Save project" msgstr "Sauvegarder le projet" -#: AppGUI/MainGUI.py:846 AppGUI/MainGUI.py:1881 +#: flatcamGUI/FlatCAMGUI.py:849 flatcamGUI/FlatCAMGUI.py:2557 +msgid "New Blank Geometry" +msgstr "Nouvelle Géométrie vierge" + +#: flatcamGUI/FlatCAMGUI.py:851 flatcamGUI/FlatCAMGUI.py:2559 +msgid "New Blank Gerber" +msgstr "Nouveau Gerber vierge" + +#: flatcamGUI/FlatCAMGUI.py:853 flatcamGUI/FlatCAMGUI.py:2561 +msgid "New Blank Excellon" +msgstr "Nouveau Excellon vierge" + +#: flatcamGUI/FlatCAMGUI.py:858 flatcamGUI/FlatCAMGUI.py:2567 msgid "Save Object and close the Editor" msgstr "Enregistrer un objet et fermer l'éditeur" -#: AppGUI/MainGUI.py:853 AppGUI/MainGUI.py:1888 +#: flatcamGUI/FlatCAMGUI.py:865 flatcamGUI/FlatCAMGUI.py:2574 msgid "&Delete" msgstr "Supprimer" -#: AppGUI/MainGUI.py:856 AppGUI/MainGUI.py:1891 AppGUI/MainGUI.py:4100 -#: AppGUI/MainGUI.py:4308 AppTools/ToolDistance.py:35 -#: AppTools/ToolDistance.py:197 +#: flatcamGUI/FlatCAMGUI.py:868 flatcamGUI/FlatCAMGUI.py:1729 +#: flatcamGUI/FlatCAMGUI.py:1935 flatcamGUI/FlatCAMGUI.py:2577 +#: flatcamTools/ToolDistance.py:35 flatcamTools/ToolDistance.py:195 msgid "Distance Tool" -msgstr "Mesure" +msgstr "Outil de Distance" -#: AppGUI/MainGUI.py:858 AppGUI/MainGUI.py:1893 +#: flatcamGUI/FlatCAMGUI.py:870 flatcamGUI/FlatCAMGUI.py:2579 msgid "Distance Min Tool" -msgstr "Mesure Mini" +msgstr "Outil Distance Min" -#: AppGUI/MainGUI.py:860 AppGUI/MainGUI.py:1895 AppGUI/MainGUI.py:4093 +#: flatcamGUI/FlatCAMGUI.py:872 flatcamGUI/FlatCAMGUI.py:1722 +#: flatcamGUI/FlatCAMGUI.py:2581 msgid "Set Origin" msgstr "Définir l'origine" -#: AppGUI/MainGUI.py:862 AppGUI/MainGUI.py:1897 +#: flatcamGUI/FlatCAMGUI.py:874 msgid "Move to Origin" msgstr "Déplacer vers l'origine" -#: AppGUI/MainGUI.py:865 AppGUI/MainGUI.py:1899 +#: flatcamGUI/FlatCAMGUI.py:877 flatcamGUI/FlatCAMGUI.py:2583 msgid "Jump to Location" msgstr "Aller à l'emplacement" -#: AppGUI/MainGUI.py:867 AppGUI/MainGUI.py:1901 AppGUI/MainGUI.py:4105 +#: flatcamGUI/FlatCAMGUI.py:879 flatcamGUI/FlatCAMGUI.py:1734 +#: flatcamGUI/FlatCAMGUI.py:2585 msgid "Locate in Object" msgstr "Localiser dans l'objet" -#: AppGUI/MainGUI.py:873 AppGUI/MainGUI.py:1907 +#: flatcamGUI/FlatCAMGUI.py:885 flatcamGUI/FlatCAMGUI.py:2591 msgid "&Replot" msgstr "Re-Tracé" -#: AppGUI/MainGUI.py:875 AppGUI/MainGUI.py:1909 +#: flatcamGUI/FlatCAMGUI.py:887 flatcamGUI/FlatCAMGUI.py:2593 msgid "&Clear plot" msgstr "Effacer la Trace" -#: AppGUI/MainGUI.py:877 AppGUI/MainGUI.py:1911 AppGUI/MainGUI.py:4096 +#: flatcamGUI/FlatCAMGUI.py:889 flatcamGUI/FlatCAMGUI.py:1725 +#: flatcamGUI/FlatCAMGUI.py:2595 msgid "Zoom In" -msgstr "Zoomer" +msgstr "Agrandir" -#: AppGUI/MainGUI.py:879 AppGUI/MainGUI.py:1913 AppGUI/MainGUI.py:4096 +#: flatcamGUI/FlatCAMGUI.py:891 flatcamGUI/FlatCAMGUI.py:1725 +#: flatcamGUI/FlatCAMGUI.py:2597 msgid "Zoom Out" msgstr "Dézoomer" -#: AppGUI/MainGUI.py:881 AppGUI/MainGUI.py:1429 AppGUI/MainGUI.py:1915 -#: AppGUI/MainGUI.py:4095 +#: flatcamGUI/FlatCAMGUI.py:893 flatcamGUI/FlatCAMGUI.py:1724 +#: flatcamGUI/FlatCAMGUI.py:2185 flatcamGUI/FlatCAMGUI.py:2599 msgid "Zoom Fit" msgstr "Ajustement du Zoom" -#: AppGUI/MainGUI.py:889 AppGUI/MainGUI.py:1921 +#: flatcamGUI/FlatCAMGUI.py:901 flatcamGUI/FlatCAMGUI.py:2605 msgid "&Command Line" msgstr "&Ligne de commande" -#: AppGUI/MainGUI.py:901 AppGUI/MainGUI.py:1933 +#: flatcamGUI/FlatCAMGUI.py:913 flatcamGUI/FlatCAMGUI.py:2617 msgid "2Sided Tool" msgstr "Outil 2 faces" -#: AppGUI/MainGUI.py:903 AppGUI/MainGUI.py:1935 AppGUI/MainGUI.py:4111 +#: flatcamGUI/FlatCAMGUI.py:915 flatcamGUI/FlatCAMGUI.py:1740 +#: flatcamGUI/FlatCAMGUI.py:2619 msgid "Align Objects Tool" msgstr "Outil Aligner les objets" -#: AppGUI/MainGUI.py:905 AppGUI/MainGUI.py:1937 AppGUI/MainGUI.py:4111 -#: AppTools/ToolExtractDrills.py:393 +#: flatcamGUI/FlatCAMGUI.py:917 flatcamGUI/FlatCAMGUI.py:1741 +#: flatcamGUI/FlatCAMGUI.py:2621 flatcamTools/ToolExtractDrills.py:393 msgid "Extract Drills Tool" msgstr "Outil d'extraction de forets" -#: AppGUI/MainGUI.py:908 AppGUI/ObjectUI.py:360 AppTools/ToolCutOut.py:440 +#: flatcamGUI/FlatCAMGUI.py:920 flatcamGUI/ObjectUI.py:596 +#: flatcamTools/ToolCutOut.py:440 msgid "Cutout Tool" msgstr "Outil de Découpe" -#: AppGUI/MainGUI.py:910 AppGUI/MainGUI.py:1942 AppGUI/ObjectUI.py:346 -#: AppGUI/ObjectUI.py:2087 AppTools/ToolNCC.py:974 +#: flatcamGUI/FlatCAMGUI.py:922 flatcamGUI/FlatCAMGUI.py:2626 +#: flatcamGUI/ObjectUI.py:574 flatcamGUI/ObjectUI.py:2157 +#: flatcamTools/ToolNCC.py:974 msgid "NCC Tool" msgstr "Outil de la NCC" -#: AppGUI/MainGUI.py:914 AppGUI/MainGUI.py:1946 AppGUI/MainGUI.py:4113 -#: AppTools/ToolIsolation.py:38 AppTools/ToolIsolation.py:766 -msgid "Isolation Tool" -msgstr "Outil de Isolement" - -#: AppGUI/MainGUI.py:918 AppGUI/MainGUI.py:1950 +#: flatcamGUI/FlatCAMGUI.py:928 flatcamGUI/FlatCAMGUI.py:2632 msgid "Panel Tool" msgstr "Outil de Panneau" -#: AppGUI/MainGUI.py:920 AppGUI/MainGUI.py:1952 AppTools/ToolFilm.py:569 +#: flatcamGUI/FlatCAMGUI.py:930 flatcamGUI/FlatCAMGUI.py:2634 +#: flatcamTools/ToolFilm.py:586 msgid "Film Tool" msgstr "Outil de Film" -#: AppGUI/MainGUI.py:922 AppGUI/MainGUI.py:1954 AppTools/ToolSolderPaste.py:561 +#: flatcamGUI/FlatCAMGUI.py:932 flatcamGUI/FlatCAMGUI.py:2636 +#: flatcamTools/ToolSolderPaste.py:553 msgid "SolderPaste Tool" msgstr "Outil de Pâte à souder" -#: AppGUI/MainGUI.py:924 AppGUI/MainGUI.py:1956 AppGUI/MainGUI.py:4118 -#: AppTools/ToolSub.py:40 +#: flatcamGUI/FlatCAMGUI.py:934 flatcamGUI/FlatCAMGUI.py:2638 +#: flatcamTools/ToolSub.py:35 msgid "Subtract Tool" msgstr "Outil de Soustraction" -#: AppGUI/MainGUI.py:926 AppGUI/MainGUI.py:1958 AppTools/ToolRulesCheck.py:616 +#: flatcamGUI/FlatCAMGUI.py:936 flatcamGUI/FlatCAMGUI.py:2640 +#: flatcamTools/ToolRulesCheck.py:616 msgid "Rules Tool" msgstr "Outil de Règles" -#: AppGUI/MainGUI.py:928 AppGUI/MainGUI.py:1960 AppGUI/MainGUI.py:4115 -#: AppTools/ToolOptimal.py:33 AppTools/ToolOptimal.py:313 +#: flatcamGUI/FlatCAMGUI.py:938 flatcamGUI/FlatCAMGUI.py:1743 +#: flatcamGUI/FlatCAMGUI.py:2642 flatcamTools/ToolOptimal.py:33 +#: flatcamTools/ToolOptimal.py:307 msgid "Optimal Tool" msgstr "Outil de Optimal" -#: AppGUI/MainGUI.py:933 AppGUI/MainGUI.py:1965 AppGUI/MainGUI.py:4111 +#: flatcamGUI/FlatCAMGUI.py:943 flatcamGUI/FlatCAMGUI.py:1740 +#: flatcamGUI/FlatCAMGUI.py:2647 msgid "Calculators Tool" -msgstr "Calculatrice" +msgstr "Outil de Calcul" -#: AppGUI/MainGUI.py:937 AppGUI/MainGUI.py:1969 AppGUI/MainGUI.py:4116 -#: AppTools/ToolQRCode.py:43 AppTools/ToolQRCode.py:391 +#: flatcamGUI/FlatCAMGUI.py:947 flatcamGUI/FlatCAMGUI.py:1744 +#: flatcamGUI/FlatCAMGUI.py:2651 flatcamTools/ToolQRCode.py:43 +#: flatcamTools/ToolQRCode.py:382 msgid "QRCode Tool" -msgstr "QRCode" +msgstr "Outil QRCode" -#: AppGUI/MainGUI.py:939 AppGUI/MainGUI.py:1971 AppGUI/MainGUI.py:4113 -#: AppTools/ToolCopperThieving.py:39 AppTools/ToolCopperThieving.py:572 +#: flatcamGUI/FlatCAMGUI.py:949 flatcamGUI/FlatCAMGUI.py:2653 +#: flatcamTools/ToolCopperThieving.py:39 flatcamTools/ToolCopperThieving.py:568 msgid "Copper Thieving Tool" msgstr "Outil de Copper Thieving" -#: AppGUI/MainGUI.py:942 AppGUI/MainGUI.py:1974 AppGUI/MainGUI.py:4112 -#: AppTools/ToolFiducials.py:33 AppTools/ToolFiducials.py:399 +#: flatcamGUI/FlatCAMGUI.py:952 flatcamGUI/FlatCAMGUI.py:1741 +#: flatcamGUI/FlatCAMGUI.py:2656 flatcamTools/ToolFiducials.py:33 +#: flatcamTools/ToolFiducials.py:395 msgid "Fiducials Tool" msgstr "Outil Fiduciaire" -#: AppGUI/MainGUI.py:944 AppGUI/MainGUI.py:1976 AppTools/ToolCalibration.py:37 -#: AppTools/ToolCalibration.py:759 +#: flatcamGUI/FlatCAMGUI.py:954 flatcamGUI/FlatCAMGUI.py:2658 +#: flatcamTools/ToolCalibration.py:37 flatcamTools/ToolCalibration.py:759 msgid "Calibration Tool" -msgstr "Réglage de l'assiette" +msgstr "Outil d'Étalonnage" -#: AppGUI/MainGUI.py:946 AppGUI/MainGUI.py:1978 AppGUI/MainGUI.py:4113 +#: flatcamGUI/FlatCAMGUI.py:956 flatcamGUI/FlatCAMGUI.py:1741 +#: flatcamGUI/FlatCAMGUI.py:2660 msgid "Punch Gerber Tool" msgstr "Outil de poinçonnage Gerber" -#: AppGUI/MainGUI.py:948 AppGUI/MainGUI.py:1980 AppTools/ToolInvertGerber.py:31 +#: flatcamGUI/FlatCAMGUI.py:958 flatcamGUI/FlatCAMGUI.py:2662 +#: flatcamTools/ToolInvertGerber.py:31 msgid "Invert Gerber Tool" -msgstr "Inverser Gerber" +msgstr "Outil de Inverser Gerber" -#: AppGUI/MainGUI.py:950 AppGUI/MainGUI.py:1982 AppGUI/MainGUI.py:4115 -#: AppTools/ToolCorners.py:31 -msgid "Corner Markers Tool" -msgstr "Outil Marqueurs de Coin" - -#: AppGUI/MainGUI.py:952 AppGUI/MainGUI.py:1984 -#: AppTools/ToolEtchCompensation.py:32 AppTools/ToolEtchCompensation.py:288 -msgid "Etch Compensation Tool" -msgstr "Outil de Comp.de Gravure" - -#: AppGUI/MainGUI.py:958 AppGUI/MainGUI.py:984 AppGUI/MainGUI.py:1036 -#: AppGUI/MainGUI.py:1990 AppGUI/MainGUI.py:2068 +#: flatcamGUI/FlatCAMGUI.py:964 flatcamGUI/FlatCAMGUI.py:990 +#: flatcamGUI/FlatCAMGUI.py:1042 flatcamGUI/FlatCAMGUI.py:2668 +#: flatcamGUI/FlatCAMGUI.py:2746 msgid "Select" msgstr "Sélectionner" -#: AppGUI/MainGUI.py:960 AppGUI/MainGUI.py:1992 +#: flatcamGUI/FlatCAMGUI.py:966 flatcamGUI/FlatCAMGUI.py:2670 msgid "Add Drill Hole" -msgstr "Ajouter un Perçage" +msgstr "Ajouter une Forage" -#: AppGUI/MainGUI.py:962 AppGUI/MainGUI.py:1994 +#: flatcamGUI/FlatCAMGUI.py:968 flatcamGUI/FlatCAMGUI.py:2672 msgid "Add Drill Hole Array" -msgstr "Ajouter un Tableau de Perçage" +msgstr "Ajouter un Tableau de Forage" -#: AppGUI/MainGUI.py:964 AppGUI/MainGUI.py:1517 AppGUI/MainGUI.py:1998 -#: AppGUI/MainGUI.py:4393 +#: flatcamGUI/FlatCAMGUI.py:970 flatcamGUI/FlatCAMGUI.py:2020 +#: flatcamGUI/FlatCAMGUI.py:2273 flatcamGUI/FlatCAMGUI.py:2676 msgid "Add Slot" -msgstr "Ajouter une découpe" +msgstr "Ajouter une Fente" -#: AppGUI/MainGUI.py:966 AppGUI/MainGUI.py:1519 AppGUI/MainGUI.py:2000 -#: AppGUI/MainGUI.py:4392 +#: flatcamGUI/FlatCAMGUI.py:972 flatcamGUI/FlatCAMGUI.py:2019 +#: flatcamGUI/FlatCAMGUI.py:2275 flatcamGUI/FlatCAMGUI.py:2678 msgid "Add Slot Array" -msgstr "Ajouter un Tableau de découpe" +msgstr "Ajouter un Tableau de Fente" -#: AppGUI/MainGUI.py:968 AppGUI/MainGUI.py:1522 AppGUI/MainGUI.py:1996 +#: flatcamGUI/FlatCAMGUI.py:974 flatcamGUI/FlatCAMGUI.py:2278 +#: flatcamGUI/FlatCAMGUI.py:2674 msgid "Resize Drill" -msgstr "Redimensionner découpe" +msgstr "Redimensionner Forage" -#: AppGUI/MainGUI.py:972 AppGUI/MainGUI.py:2004 +#: flatcamGUI/FlatCAMGUI.py:978 flatcamGUI/FlatCAMGUI.py:2682 msgid "Copy Drill" -msgstr "Copier un perçage" +msgstr "Copier une Forage" -#: AppGUI/MainGUI.py:974 AppGUI/MainGUI.py:2006 +#: flatcamGUI/FlatCAMGUI.py:980 flatcamGUI/FlatCAMGUI.py:2684 msgid "Delete Drill" -msgstr "Supprimer un perçage" +msgstr "Supprimer une Forage" -#: AppGUI/MainGUI.py:978 AppGUI/MainGUI.py:2010 +#: flatcamGUI/FlatCAMGUI.py:984 flatcamGUI/FlatCAMGUI.py:2688 msgid "Move Drill" -msgstr "Déplacer un perçage" +msgstr "Déplacer uen Forage" -#: AppGUI/MainGUI.py:986 AppGUI/MainGUI.py:2018 +#: flatcamGUI/FlatCAMGUI.py:992 flatcamGUI/FlatCAMGUI.py:2696 msgid "Add Circle" msgstr "Ajouter un Cercle" -#: AppGUI/MainGUI.py:988 AppGUI/MainGUI.py:2020 +#: flatcamGUI/FlatCAMGUI.py:994 flatcamGUI/FlatCAMGUI.py:2698 msgid "Add Arc" msgstr "Ajouter un Arc" -#: AppGUI/MainGUI.py:990 AppGUI/MainGUI.py:2022 +#: flatcamGUI/FlatCAMGUI.py:996 flatcamGUI/FlatCAMGUI.py:2700 msgid "Add Rectangle" msgstr "Ajouter un Rectangle" -#: AppGUI/MainGUI.py:994 AppGUI/MainGUI.py:2026 +#: flatcamGUI/FlatCAMGUI.py:1000 flatcamGUI/FlatCAMGUI.py:2704 msgid "Add Path" msgstr "Ajouter un Chemin" -#: AppGUI/MainGUI.py:996 AppGUI/MainGUI.py:2028 +#: flatcamGUI/FlatCAMGUI.py:1002 flatcamGUI/FlatCAMGUI.py:2706 msgid "Add Polygon" msgstr "Ajouter un Polygone" -#: AppGUI/MainGUI.py:999 AppGUI/MainGUI.py:2031 +#: flatcamGUI/FlatCAMGUI.py:1005 flatcamGUI/FlatCAMGUI.py:2709 msgid "Add Text" msgstr "Ajouter du Texte" -#: AppGUI/MainGUI.py:1001 AppGUI/MainGUI.py:2033 +#: flatcamGUI/FlatCAMGUI.py:1007 flatcamGUI/FlatCAMGUI.py:2711 msgid "Add Buffer" msgstr "Ajouter un Tampon" -#: AppGUI/MainGUI.py:1003 AppGUI/MainGUI.py:2035 +#: flatcamGUI/FlatCAMGUI.py:1009 flatcamGUI/FlatCAMGUI.py:2713 msgid "Paint Shape" msgstr "Peindre une Forme" -#: AppGUI/MainGUI.py:1005 AppGUI/MainGUI.py:1062 AppGUI/MainGUI.py:1458 -#: AppGUI/MainGUI.py:1503 AppGUI/MainGUI.py:2037 AppGUI/MainGUI.py:2093 +#: flatcamGUI/FlatCAMGUI.py:1011 flatcamGUI/FlatCAMGUI.py:1068 +#: flatcamGUI/FlatCAMGUI.py:2214 flatcamGUI/FlatCAMGUI.py:2259 +#: flatcamGUI/FlatCAMGUI.py:2715 flatcamGUI/FlatCAMGUI.py:2771 msgid "Eraser" -msgstr "Effacer" +msgstr "La Gomme" -#: AppGUI/MainGUI.py:1009 AppGUI/MainGUI.py:2041 +#: flatcamGUI/FlatCAMGUI.py:1015 flatcamGUI/FlatCAMGUI.py:2719 msgid "Polygon Union" msgstr "Union de Polygones" -#: AppGUI/MainGUI.py:1011 AppGUI/MainGUI.py:2043 +#: flatcamGUI/FlatCAMGUI.py:1017 flatcamGUI/FlatCAMGUI.py:2721 msgid "Polygon Explode" msgstr "Éclatement de polygone" -#: AppGUI/MainGUI.py:1014 AppGUI/MainGUI.py:2046 +#: flatcamGUI/FlatCAMGUI.py:1020 flatcamGUI/FlatCAMGUI.py:2724 msgid "Polygon Intersection" msgstr "Intersection de Polygones" -#: AppGUI/MainGUI.py:1016 AppGUI/MainGUI.py:2048 +#: flatcamGUI/FlatCAMGUI.py:1022 flatcamGUI/FlatCAMGUI.py:2726 msgid "Polygon Subtraction" msgstr "Soustraction de Polygone" -#: AppGUI/MainGUI.py:1020 AppGUI/MainGUI.py:2052 +#: flatcamGUI/FlatCAMGUI.py:1026 flatcamGUI/FlatCAMGUI.py:2730 msgid "Cut Path" -msgstr "Coupé Piste" +msgstr "Chemin Coupé" -#: AppGUI/MainGUI.py:1022 +#: flatcamGUI/FlatCAMGUI.py:1028 msgid "Copy Shape(s)" msgstr "Copier les Formes" -#: AppGUI/MainGUI.py:1025 +#: flatcamGUI/FlatCAMGUI.py:1031 msgid "Delete Shape '-'" msgstr "Supprimer la Forme" -#: AppGUI/MainGUI.py:1027 AppGUI/MainGUI.py:1070 AppGUI/MainGUI.py:1470 -#: AppGUI/MainGUI.py:1507 AppGUI/MainGUI.py:2058 AppGUI/MainGUI.py:2101 -#: AppGUI/ObjectUI.py:109 AppGUI/ObjectUI.py:152 +#: flatcamGUI/FlatCAMGUI.py:1033 flatcamGUI/FlatCAMGUI.py:1076 +#: flatcamGUI/FlatCAMGUI.py:2226 flatcamGUI/FlatCAMGUI.py:2263 +#: flatcamGUI/FlatCAMGUI.py:2736 flatcamGUI/FlatCAMGUI.py:2779 +#: flatcamGUI/ObjectUI.py:109 msgid "Transformations" -msgstr "Changement d'échelle" +msgstr "Transformations" -#: AppGUI/MainGUI.py:1030 +#: flatcamGUI/FlatCAMGUI.py:1036 msgid "Move Objects " msgstr "Déplacer des objets " -#: AppGUI/MainGUI.py:1038 AppGUI/MainGUI.py:2070 AppGUI/MainGUI.py:4512 +#: flatcamGUI/FlatCAMGUI.py:1044 flatcamGUI/FlatCAMGUI.py:2139 +#: flatcamGUI/FlatCAMGUI.py:2748 msgid "Add Pad" msgstr "Ajouter un Pad" -#: AppGUI/MainGUI.py:1042 AppGUI/MainGUI.py:2074 AppGUI/MainGUI.py:4513 +#: flatcamGUI/FlatCAMGUI.py:1048 flatcamGUI/FlatCAMGUI.py:2140 +#: flatcamGUI/FlatCAMGUI.py:2752 msgid "Add Track" msgstr "Ajouter une Piste" -#: AppGUI/MainGUI.py:1044 AppGUI/MainGUI.py:2076 AppGUI/MainGUI.py:4512 +#: flatcamGUI/FlatCAMGUI.py:1050 flatcamGUI/FlatCAMGUI.py:2139 +#: flatcamGUI/FlatCAMGUI.py:2754 msgid "Add Region" msgstr "Ajouter une Région" -#: AppGUI/MainGUI.py:1046 AppGUI/MainGUI.py:1489 AppGUI/MainGUI.py:2078 +#: flatcamGUI/FlatCAMGUI.py:1052 flatcamGUI/FlatCAMGUI.py:2245 +#: flatcamGUI/FlatCAMGUI.py:2756 msgid "Poligonize" msgstr "Polygoniser" -#: AppGUI/MainGUI.py:1049 AppGUI/MainGUI.py:1491 AppGUI/MainGUI.py:2081 +#: flatcamGUI/FlatCAMGUI.py:1055 flatcamGUI/FlatCAMGUI.py:2247 +#: flatcamGUI/FlatCAMGUI.py:2759 msgid "SemiDisc" msgstr "Semi Disque" -#: AppGUI/MainGUI.py:1051 AppGUI/MainGUI.py:1493 AppGUI/MainGUI.py:2083 +#: flatcamGUI/FlatCAMGUI.py:1057 flatcamGUI/FlatCAMGUI.py:2249 +#: flatcamGUI/FlatCAMGUI.py:2761 msgid "Disc" msgstr "Disque" -#: AppGUI/MainGUI.py:1059 AppGUI/MainGUI.py:1501 AppGUI/MainGUI.py:2091 +#: flatcamGUI/FlatCAMGUI.py:1065 flatcamGUI/FlatCAMGUI.py:2257 +#: flatcamGUI/FlatCAMGUI.py:2769 msgid "Mark Area" msgstr "Zone de Marque" -#: AppGUI/MainGUI.py:1073 AppGUI/MainGUI.py:1474 AppGUI/MainGUI.py:1536 -#: AppGUI/MainGUI.py:2104 AppGUI/MainGUI.py:4512 AppTools/ToolMove.py:27 +#: flatcamGUI/FlatCAMGUI.py:1079 flatcamGUI/FlatCAMGUI.py:2139 +#: flatcamGUI/FlatCAMGUI.py:2230 flatcamGUI/FlatCAMGUI.py:2293 +#: flatcamGUI/FlatCAMGUI.py:2782 flatcamTools/ToolMove.py:27 msgid "Move" msgstr "Déplacer" -#: AppGUI/MainGUI.py:1081 +#: flatcamGUI/FlatCAMGUI.py:1087 flatcamGUI/FlatCAMGUI.py:2791 msgid "Snap to grid" msgstr "Aligner sur la Grille" -#: AppGUI/MainGUI.py:1084 +#: flatcamGUI/FlatCAMGUI.py:1090 flatcamGUI/FlatCAMGUI.py:2794 msgid "Grid X snapping distance" msgstr "Distance d'accrochage de la grille X" -#: AppGUI/MainGUI.py:1089 +#: flatcamGUI/FlatCAMGUI.py:1095 flatcamGUI/FlatCAMGUI.py:2799 +msgid "Grid Y snapping distance" +msgstr "Distance d'accrochage de la grille Y" + +#: flatcamGUI/FlatCAMGUI.py:1101 flatcamGUI/FlatCAMGUI.py:2805 msgid "" "When active, value on Grid_X\n" "is copied to the Grid_Y value." @@ -4495,104 +6347,65 @@ msgstr "" "Lorsque actif, valeur sur Grid_X\n" "est copié dans la valeur Grid_Y." -#: AppGUI/MainGUI.py:1096 -msgid "Grid Y snapping distance" -msgstr "Distance d'accrochage de la grille Y" - -#: AppGUI/MainGUI.py:1101 -msgid "Toggle the display of axis on canvas" -msgstr "Basculer l'affichage de l'axe sur le canevas" - -#: AppGUI/MainGUI.py:1107 AppGUI/preferences/PreferencesUIManager.py:846 -#: AppGUI/preferences/PreferencesUIManager.py:938 -#: AppGUI/preferences/PreferencesUIManager.py:966 -#: AppGUI/preferences/PreferencesUIManager.py:1072 App_Main.py:5140 -#: App_Main.py:5145 App_Main.py:5168 -msgid "Preferences" -msgstr "Préférences" - -#: AppGUI/MainGUI.py:1113 -msgid "Command Line" -msgstr "Ligne de commande" - -#: AppGUI/MainGUI.py:1119 -msgid "HUD (Heads up display)" -msgstr "HUD (affichage tête haute)" - -#: AppGUI/MainGUI.py:1125 AppGUI/preferences/general/GeneralAPPSetGroupUI.py:97 -msgid "" -"Draw a delimiting rectangle on canvas.\n" -"The purpose is to illustrate the limits for our work." -msgstr "" -"Dessinez un rectangle de délimitation sur la toile.\n" -"Le but est d’illustrer les limites de notre travail." - -#: AppGUI/MainGUI.py:1135 +#: flatcamGUI/FlatCAMGUI.py:1108 flatcamGUI/FlatCAMGUI.py:2812 msgid "Snap to corner" msgstr "Accrocher au coin" -#: AppGUI/MainGUI.py:1139 AppGUI/preferences/general/GeneralAPPSetGroupUI.py:78 +#: flatcamGUI/FlatCAMGUI.py:1112 flatcamGUI/FlatCAMGUI.py:2816 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:78 msgid "Max. magnet distance" msgstr "Max. distance d'aimant" -#: AppGUI/MainGUI.py:1175 AppGUI/MainGUI.py:1420 App_Main.py:7639 -msgid "Project" -msgstr "Projet" - -#: AppGUI/MainGUI.py:1190 +#: flatcamGUI/FlatCAMGUI.py:1149 msgid "Selected" -msgstr "Sélection" +msgstr "Choisi" -#: AppGUI/MainGUI.py:1218 AppGUI/MainGUI.py:1226 +#: flatcamGUI/FlatCAMGUI.py:1177 flatcamGUI/FlatCAMGUI.py:1185 msgid "Plot Area" msgstr "Zone de Dessin" -#: AppGUI/MainGUI.py:1253 +#: flatcamGUI/FlatCAMGUI.py:1212 msgid "General" msgstr "Général" -#: AppGUI/MainGUI.py:1268 AppTools/ToolCopperThieving.py:74 -#: AppTools/ToolCorners.py:55 AppTools/ToolDblSided.py:64 -#: AppTools/ToolEtchCompensation.py:73 AppTools/ToolExtractDrills.py:61 -#: AppTools/ToolFiducials.py:262 AppTools/ToolInvertGerber.py:72 -#: AppTools/ToolIsolation.py:94 AppTools/ToolOptimal.py:71 -#: AppTools/ToolPunchGerber.py:64 AppTools/ToolQRCode.py:78 -#: AppTools/ToolRulesCheck.py:61 AppTools/ToolSolderPaste.py:67 -#: AppTools/ToolSub.py:70 +#: flatcamGUI/FlatCAMGUI.py:1227 flatcamTools/ToolCopperThieving.py:74 +#: flatcamTools/ToolDblSided.py:64 flatcamTools/ToolExtractDrills.py:61 +#: flatcamTools/ToolInvertGerber.py:72 flatcamTools/ToolOptimal.py:71 +#: flatcamTools/ToolPunchGerber.py:64 msgid "GERBER" msgstr "GERBER" -#: AppGUI/MainGUI.py:1278 AppTools/ToolDblSided.py:92 -#: AppTools/ToolRulesCheck.py:199 +#: flatcamGUI/FlatCAMGUI.py:1237 flatcamTools/ToolDblSided.py:92 msgid "EXCELLON" msgstr "EXCELLON" -#: AppGUI/MainGUI.py:1288 AppTools/ToolDblSided.py:120 AppTools/ToolSub.py:125 +#: flatcamGUI/FlatCAMGUI.py:1247 flatcamTools/ToolDblSided.py:120 msgid "GEOMETRY" msgstr "GÉOMÉTRIE" -#: AppGUI/MainGUI.py:1298 +#: flatcamGUI/FlatCAMGUI.py:1257 msgid "CNC-JOB" msgstr "CNC-JOB" -#: AppGUI/MainGUI.py:1307 AppGUI/ObjectUI.py:328 AppGUI/ObjectUI.py:2062 +#: flatcamGUI/FlatCAMGUI.py:1266 flatcamGUI/ObjectUI.py:563 +#: flatcamGUI/ObjectUI.py:2132 msgid "TOOLS" msgstr "OUTILS" -#: AppGUI/MainGUI.py:1316 +#: flatcamGUI/FlatCAMGUI.py:1275 msgid "TOOLS 2" msgstr "OUTILS 2" -#: AppGUI/MainGUI.py:1326 +#: flatcamGUI/FlatCAMGUI.py:1285 msgid "UTILITIES" msgstr "UTILITAIRES" -#: AppGUI/MainGUI.py:1343 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:201 +#: flatcamGUI/FlatCAMGUI.py:1302 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:192 msgid "Restore Defaults" msgstr "Restaurer les valeurs par défaut" -#: AppGUI/MainGUI.py:1346 +#: flatcamGUI/FlatCAMGUI.py:1305 msgid "" "Restore the entire set of default values\n" "to the initial values loaded after first launch." @@ -4600,19 +6413,19 @@ msgstr "" "Restaurer l'ensemble complet des valeurs par défaut\n" "aux valeurs initiales chargées après le premier lancement." -#: AppGUI/MainGUI.py:1351 +#: flatcamGUI/FlatCAMGUI.py:1310 msgid "Open Pref Folder" msgstr "Ouvrir le dossier Pref" -#: AppGUI/MainGUI.py:1354 +#: flatcamGUI/FlatCAMGUI.py:1313 msgid "Open the folder where FlatCAM save the preferences files." -msgstr "Ouvrez le dossier où FlatCAM enregistre les fichiers de paramètres." +msgstr "Ouvrez le dossier où FlatCAM enregistre les fichiers de préférences." -#: AppGUI/MainGUI.py:1358 AppGUI/MainGUI.py:1836 +#: flatcamGUI/FlatCAMGUI.py:1317 flatcamGUI/FlatCAMGUI.py:2517 msgid "Clear GUI Settings" msgstr "Effacer les param. de GUI" -#: AppGUI/MainGUI.py:1362 +#: flatcamGUI/FlatCAMGUI.py:1321 msgid "" "Clear the GUI settings for FlatCAM,\n" "such as: layout, gui state, style, hdpi support etc." @@ -4620,142 +6433,588 @@ msgstr "" "Effacer les paramètres de l'interface graphique pour FlatCAM,\n" "tels que: mise en page, état graphique, style, support hdpi, etc." -#: AppGUI/MainGUI.py:1373 +#: flatcamGUI/FlatCAMGUI.py:1332 msgid "Apply" msgstr "Appliquer" -#: AppGUI/MainGUI.py:1376 +#: flatcamGUI/FlatCAMGUI.py:1335 msgid "Apply the current preferences without saving to a file." -msgstr "Appliquez les paramètres actuelles sans enregistrer dans un fichier." +msgstr "Appliquez les préférences actuelles sans enregistrer dans un fichier." -#: AppGUI/MainGUI.py:1383 +#: flatcamGUI/FlatCAMGUI.py:1342 msgid "" "Save the current settings in the 'current_defaults' file\n" "which is the file storing the working default preferences." msgstr "" "Enregistrer les paramètres actuels dans le fichier 'current_defaults'\n" -"qui est le fichier stockant les paramètres de travail par défaut." +"qui est le fichier stockant les préférences de travail par défaut." -#: AppGUI/MainGUI.py:1391 +#: flatcamGUI/FlatCAMGUI.py:1350 msgid "Will not save the changes and will close the preferences window." msgstr "" -"N'enregistrera pas les modifications et fermera la fenêtre des paramètres." +"N'enregistrera pas les modifications et fermera la fenêtre des préférences." -#: AppGUI/MainGUI.py:1405 -msgid "Toggle Visibility" -msgstr "Basculer la Visibilité" +#: flatcamGUI/FlatCAMGUI.py:1719 +msgid "SHOW SHORTCUT LIST" +msgstr "MONTRER LISTE DES RACCOURCIS" -#: AppGUI/MainGUI.py:1411 -msgid "New" -msgstr "Nouveau" +#: flatcamGUI/FlatCAMGUI.py:1719 +msgid "Switch to Project Tab" +msgstr "Passer à l'onglet Projet" -#: AppGUI/MainGUI.py:1413 AppTools/ToolCalibration.py:631 -#: AppTools/ToolCalibration.py:648 AppTools/ToolCalibration.py:815 -#: AppTools/ToolCopperThieving.py:148 AppTools/ToolCopperThieving.py:162 -#: AppTools/ToolCopperThieving.py:608 AppTools/ToolCutOut.py:92 -#: AppTools/ToolDblSided.py:226 AppTools/ToolFilm.py:69 AppTools/ToolFilm.py:92 -#: AppTools/ToolImage.py:49 AppTools/ToolImage.py:271 -#: AppTools/ToolIsolation.py:464 AppTools/ToolIsolation.py:517 -#: AppTools/ToolIsolation.py:1281 AppTools/ToolNCC.py:95 -#: AppTools/ToolNCC.py:558 AppTools/ToolNCC.py:1318 AppTools/ToolPaint.py:501 -#: AppTools/ToolPaint.py:705 AppTools/ToolPanelize.py:116 -#: AppTools/ToolPanelize.py:385 AppTools/ToolPanelize.py:402 -msgid "Geometry" -msgstr "Géométrie" +#: flatcamGUI/FlatCAMGUI.py:1719 +msgid "Switch to Selected Tab" +msgstr "Passer à l'onglet Sélectionné" -#: AppGUI/MainGUI.py:1417 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:99 -#: AppTools/ToolAlignObjects.py:74 AppTools/ToolAlignObjects.py:110 -#: AppTools/ToolCalibration.py:197 AppTools/ToolCalibration.py:631 -#: AppTools/ToolCalibration.py:648 AppTools/ToolCalibration.py:807 -#: AppTools/ToolCalibration.py:815 AppTools/ToolCopperThieving.py:148 -#: AppTools/ToolCopperThieving.py:162 AppTools/ToolCopperThieving.py:608 -#: AppTools/ToolDblSided.py:225 AppTools/ToolFilm.py:342 -#: AppTools/ToolIsolation.py:517 AppTools/ToolIsolation.py:1281 -#: AppTools/ToolNCC.py:558 AppTools/ToolNCC.py:1318 AppTools/ToolPaint.py:501 -#: AppTools/ToolPaint.py:705 AppTools/ToolPanelize.py:385 -#: AppTools/ToolPunchGerber.py:149 AppTools/ToolPunchGerber.py:164 -msgid "Excellon" -msgstr "Excellon" +#: flatcamGUI/FlatCAMGUI.py:1720 +msgid "Switch to Tool Tab" +msgstr "Basculer vers l'onglet Outil" -#: AppGUI/MainGUI.py:1424 -msgid "Grids" -msgstr "Pas grilles" +#: flatcamGUI/FlatCAMGUI.py:1721 +msgid "New Gerber" +msgstr "Nouveau Gerber" -#: AppGUI/MainGUI.py:1431 -msgid "Clear Plot" -msgstr "Effacer le Dessin" +#: flatcamGUI/FlatCAMGUI.py:1721 +msgid "Edit Object (if selected)" +msgstr "Editer objet (si sélectionné)" -#: AppGUI/MainGUI.py:1433 -msgid "Replot" -msgstr "Re-Tracé" +#: flatcamGUI/FlatCAMGUI.py:1721 +msgid "Jump to Coordinates" +msgstr "Aller aux coordonnées" -#: AppGUI/MainGUI.py:1437 -msgid "Geo Editor" -msgstr "Éditeur de Géo" +#: flatcamGUI/FlatCAMGUI.py:1722 +msgid "New Excellon" +msgstr "Nouvelle Excellon" -#: AppGUI/MainGUI.py:1439 -msgid "Path" -msgstr "Chemin" +#: flatcamGUI/FlatCAMGUI.py:1722 +msgid "Move Obj" +msgstr "Déplacer Obj" -#: AppGUI/MainGUI.py:1441 -msgid "Rectangle" -msgstr "Rectangle" +#: flatcamGUI/FlatCAMGUI.py:1722 +msgid "New Geometry" +msgstr "Nouvelle Géométrie" -#: AppGUI/MainGUI.py:1444 -msgid "Circle" -msgstr "Cercle" +#: flatcamGUI/FlatCAMGUI.py:1722 +msgid "Change Units" +msgstr "Changer d'unités" -#: AppGUI/MainGUI.py:1448 -msgid "Arc" -msgstr "Arc" +#: flatcamGUI/FlatCAMGUI.py:1723 +msgid "Open Properties Tool" +msgstr "Ouvrir les Propriétés" -#: AppGUI/MainGUI.py:1462 -msgid "Union" -msgstr "Union" +#: flatcamGUI/FlatCAMGUI.py:1723 +msgid "Rotate by 90 degree CW" +msgstr "Rotation de 90 degrés CW" -#: AppGUI/MainGUI.py:1464 -msgid "Intersection" -msgstr "Intersection" +#: flatcamGUI/FlatCAMGUI.py:1723 +msgid "Shell Toggle" +msgstr "Shell bascule" -#: AppGUI/MainGUI.py:1466 -msgid "Subtraction" -msgstr "Soustraction" +#: flatcamGUI/FlatCAMGUI.py:1724 +msgid "" +"Add a Tool (when in Geometry Selected Tab or in Tools NCC or Tools Paint)" +msgstr "" +"Ajouter un outil (dans l'onglet Géométrie sélectionnée ou dans Outils NCC ou " +"Outils de Peinture)" -#: AppGUI/MainGUI.py:1468 AppGUI/ObjectUI.py:2151 -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:56 -msgid "Cut" -msgstr "Couper" +#: flatcamGUI/FlatCAMGUI.py:1725 +msgid "Flip on X_axis" +msgstr "Miroir sur l'axe des X" -#: AppGUI/MainGUI.py:1479 -msgid "Pad" -msgstr "Pad" +#: flatcamGUI/FlatCAMGUI.py:1725 +msgid "Flip on Y_axis" +msgstr "Miroir sur l'axe des Y" -#: AppGUI/MainGUI.py:1481 -msgid "Pad Array" -msgstr "Tableau Pad" +#: flatcamGUI/FlatCAMGUI.py:1728 +msgid "Copy Obj" +msgstr "Copier Obj" -#: AppGUI/MainGUI.py:1485 -msgid "Track" -msgstr "Piste" +#: flatcamGUI/FlatCAMGUI.py:1728 +msgid "Open Tools Database" +msgstr "Ouvrir la BD des outils" -#: AppGUI/MainGUI.py:1487 -msgid "Region" -msgstr "Région" +#: flatcamGUI/FlatCAMGUI.py:1729 +msgid "Open Excellon File" +msgstr "Ouvrir le fichier Excellon" -#: AppGUI/MainGUI.py:1510 -msgid "Exc Editor" -msgstr "Éditeur Excellon" +#: flatcamGUI/FlatCAMGUI.py:1729 +msgid "Open Gerber File" +msgstr "Ouvrir le fichier Gerber" -#: AppGUI/MainGUI.py:1512 AppGUI/MainGUI.py:4391 +#: flatcamGUI/FlatCAMGUI.py:1729 +msgid "New Project" +msgstr "Nouveau Projet" + +#: flatcamGUI/FlatCAMGUI.py:1730 flatcamTools/ToolPDF.py:42 +msgid "PDF Import Tool" +msgstr "Outil d'importation PDF" + +#: flatcamGUI/FlatCAMGUI.py:1730 +msgid "Save Project" +msgstr "Sauvegarder le projet" + +#: flatcamGUI/FlatCAMGUI.py:1730 +msgid "Toggle Plot Area" +msgstr "Basculer la Zone de Tracé" + +#: flatcamGUI/FlatCAMGUI.py:1733 +msgid "Copy Obj_Name" +msgstr "Copier Nom Obj" + +#: flatcamGUI/FlatCAMGUI.py:1734 +msgid "Toggle Code Editor" +msgstr "Basculer l'éditeur de Code" + +#: flatcamGUI/FlatCAMGUI.py:1734 +msgid "Toggle the axis" +msgstr "Basculer l'axe" + +#: flatcamGUI/FlatCAMGUI.py:1734 flatcamGUI/FlatCAMGUI.py:1933 +#: flatcamGUI/FlatCAMGUI.py:2020 flatcamGUI/FlatCAMGUI.py:2142 +msgid "Distance Minimum Tool" +msgstr "Outil de Distance Minimum" + +#: flatcamGUI/FlatCAMGUI.py:1735 +msgid "Open Preferences Window" +msgstr "Ouvrir la fenêtre de Préférences" + +#: flatcamGUI/FlatCAMGUI.py:1736 +msgid "Rotate by 90 degree CCW" +msgstr "Faire pivoter de 90 degrés dans le sens anti-horaire" + +#: flatcamGUI/FlatCAMGUI.py:1736 +msgid "Run a Script" +msgstr "Exécuter un script" + +#: flatcamGUI/FlatCAMGUI.py:1736 +msgid "Toggle the workspace" +msgstr "Basculer l'espace de travail" + +#: flatcamGUI/FlatCAMGUI.py:1736 +msgid "Skew on X axis" +msgstr "Fausser sur l'axe X" + +#: flatcamGUI/FlatCAMGUI.py:1737 +msgid "Skew on Y axis" +msgstr "Fausser sur l'axe Y" + +#: flatcamGUI/FlatCAMGUI.py:1740 +msgid "2-Sided PCB Tool" +msgstr "Outil de PCB double face" + +#: flatcamGUI/FlatCAMGUI.py:1740 +msgid "Transformations Tool" +msgstr "Outil de Transformation" + +#: flatcamGUI/FlatCAMGUI.py:1742 +msgid "Solder Paste Dispensing Tool" +msgstr "Outil d'application de Pâte à souder" + +#: flatcamGUI/FlatCAMGUI.py:1743 +msgid "Film PCB Tool" +msgstr "Outil de PCB film" + +#: flatcamGUI/FlatCAMGUI.py:1743 +msgid "Non-Copper Clearing Tool" +msgstr "Outil de Nettoyage sans Cuivre" + +#: flatcamGUI/FlatCAMGUI.py:1744 +msgid "Paint Area Tool" +msgstr "Outil de Zone de Peinture" + +#: flatcamGUI/FlatCAMGUI.py:1744 +msgid "Rules Check Tool" +msgstr "Outil de Vérification des Règles" + +#: flatcamGUI/FlatCAMGUI.py:1745 +msgid "View File Source" +msgstr "Voir le fichier Source" + +#: flatcamGUI/FlatCAMGUI.py:1746 +msgid "Cutout PCB Tool" +msgstr "Outil de Découpe PCB" + +#: flatcamGUI/FlatCAMGUI.py:1746 +msgid "Enable all Plots" +msgstr "Activer tous les Dessins" + +#: flatcamGUI/FlatCAMGUI.py:1746 +msgid "Disable all Plots" +msgstr "Désactiver tous les Dessins" + +#: flatcamGUI/FlatCAMGUI.py:1746 +msgid "Disable Non-selected Plots" +msgstr "Désactiver les Dessins non sélectionnés" + +#: flatcamGUI/FlatCAMGUI.py:1747 +msgid "Toggle Full Screen" +msgstr "Passer en plein écran" + +#: flatcamGUI/FlatCAMGUI.py:1750 +msgid "Abort current task (gracefully)" +msgstr "Abandonner la tâche en cours (avec élégance)" + +#: flatcamGUI/FlatCAMGUI.py:1753 +msgid "Save Project As" +msgstr "Enregistrer le projet sous" + +#: flatcamGUI/FlatCAMGUI.py:1754 +msgid "" +"Paste Special. Will convert a Windows path style to the one required in Tcl " +"Shell" +msgstr "" +"Collage spécial. Convertira un style de chemin d'accès Windows en celui " +"requis dans Tcl Shell" + +#: flatcamGUI/FlatCAMGUI.py:1757 +msgid "Open Online Manual" +msgstr "Ouvrir le manuel en ligne" + +#: flatcamGUI/FlatCAMGUI.py:1758 +msgid "Open Online Tutorials" +msgstr "Ouvrir des tutoriels en ligne" + +#: flatcamGUI/FlatCAMGUI.py:1758 +msgid "Refresh Plots" +msgstr "Actualiser les Dessins" + +#: flatcamGUI/FlatCAMGUI.py:1758 flatcamTools/ToolSolderPaste.py:509 +msgid "Delete Object" +msgstr "Supprimer un objet" + +#: flatcamGUI/FlatCAMGUI.py:1758 +msgid "Alternate: Delete Tool" +msgstr "Autre: Suppression de Outil" + +#: flatcamGUI/FlatCAMGUI.py:1759 +msgid "(left to Key_1)Toggle Notebook Area (Left Side)" +msgstr "(à gauche de Key_1) Basculer la Zone du bloc-notes (côté gauche)" + +#: flatcamGUI/FlatCAMGUI.py:1759 +msgid "En(Dis)able Obj Plot" +msgstr "(Dés)activer Obj Dessin" + +#: flatcamGUI/FlatCAMGUI.py:1760 +msgid "Deselects all objects" +msgstr "Désélectionne tous les objets" + +#: flatcamGUI/FlatCAMGUI.py:1774 +msgid "Editor Shortcut list" +msgstr "Liste des raccourcis de l'éditeur" + +#: flatcamGUI/FlatCAMGUI.py:1928 +msgid "GEOMETRY EDITOR" +msgstr "EDITEUR DE GEOMETRIE" + +#: flatcamGUI/FlatCAMGUI.py:1928 +msgid "Draw an Arc" +msgstr "Dessiner un arc" + +#: flatcamGUI/FlatCAMGUI.py:1928 +msgid "Copy Geo Item" +msgstr "Copier un élém. de Géo" + +#: flatcamGUI/FlatCAMGUI.py:1929 +msgid "Within Add Arc will toogle the ARC direction: CW or CCW" +msgstr "Dans Ajouter un arc va toogle la direction de l'ARC: CW ou CCW" + +#: flatcamGUI/FlatCAMGUI.py:1929 +msgid "Polygon Intersection Tool" +msgstr "Outil d'intersection de polygones" + +#: flatcamGUI/FlatCAMGUI.py:1930 +msgid "Geo Paint Tool" +msgstr "Outil de peinture géo" + +#: flatcamGUI/FlatCAMGUI.py:1930 flatcamGUI/FlatCAMGUI.py:2019 +#: flatcamGUI/FlatCAMGUI.py:2139 +msgid "Jump to Location (x, y)" +msgstr "Aller à l'emplacement (x, y)" + +#: flatcamGUI/FlatCAMGUI.py:1930 +msgid "Toggle Corner Snap" +msgstr "Basculement d'angle" + +#: flatcamGUI/FlatCAMGUI.py:1930 +msgid "Move Geo Item" +msgstr "Déplacer un élément de géométrie" + +#: flatcamGUI/FlatCAMGUI.py:1931 +msgid "Within Add Arc will cycle through the ARC modes" +msgstr "Dans Ajouter Arc passera en revue les modes ARC" + +#: flatcamGUI/FlatCAMGUI.py:1931 +msgid "Draw a Polygon" +msgstr "Dessine un polygone" + +#: flatcamGUI/FlatCAMGUI.py:1931 +msgid "Draw a Circle" +msgstr "Dessiner un cercle" + +#: flatcamGUI/FlatCAMGUI.py:1932 +msgid "Draw a Path" +msgstr "Dessiner un chemin" + +#: flatcamGUI/FlatCAMGUI.py:1932 +msgid "Draw Rectangle" +msgstr "Dessiner un rectangle" + +#: flatcamGUI/FlatCAMGUI.py:1932 +msgid "Polygon Subtraction Tool" +msgstr "Outil de soustraction de polygone" + +#: flatcamGUI/FlatCAMGUI.py:1932 +msgid "Add Text Tool" +msgstr "Ajouter un outil de texte" + +#: flatcamGUI/FlatCAMGUI.py:1933 +msgid "Polygon Union Tool" +msgstr "Outil union de polygones" + +#: flatcamGUI/FlatCAMGUI.py:1933 +msgid "Flip shape on X axis" +msgstr "Refléter la forme sur l'axe X" + +#: flatcamGUI/FlatCAMGUI.py:1933 +msgid "Flip shape on Y axis" +msgstr "Refléter la forme sur l'axe Y" + +#: flatcamGUI/FlatCAMGUI.py:1934 +msgid "Skew shape on X axis" +msgstr "Fausser de la forme sur l'axe X" + +#: flatcamGUI/FlatCAMGUI.py:1934 +msgid "Skew shape on Y axis" +msgstr "Fausser de la forme sur l'axe Y" + +#: flatcamGUI/FlatCAMGUI.py:1934 +msgid "Editor Transformation Tool" +msgstr "Outil de transformation de l'éditeur" + +#: flatcamGUI/FlatCAMGUI.py:1935 +msgid "Offset shape on X axis" +msgstr "Forme décalée sur l'axe X" + +#: flatcamGUI/FlatCAMGUI.py:1935 +msgid "Offset shape on Y axis" +msgstr "Forme décalée sur l'axe Y" + +#: flatcamGUI/FlatCAMGUI.py:1936 flatcamGUI/FlatCAMGUI.py:2022 +#: flatcamGUI/FlatCAMGUI.py:2144 +msgid "Save Object and Exit Editor" +msgstr "Enregistrer l'objet et quitter l'éditeur" + +#: flatcamGUI/FlatCAMGUI.py:1936 +msgid "Polygon Cut Tool" +msgstr "Outil de coupe de polygone" + +#: flatcamGUI/FlatCAMGUI.py:1937 +msgid "Rotate Geometry" +msgstr "Faire pivoter la géométrie" + +#: flatcamGUI/FlatCAMGUI.py:1937 +msgid "Finish drawing for certain tools" +msgstr "Terminer le dessin pour certains outils" + +#: flatcamGUI/FlatCAMGUI.py:1937 flatcamGUI/FlatCAMGUI.py:2022 +#: flatcamGUI/FlatCAMGUI.py:2142 +msgid "Abort and return to Select" +msgstr "Abort and return to Select" + +#: flatcamGUI/FlatCAMGUI.py:1938 flatcamGUI/FlatCAMGUI.py:2734 +msgid "Delete Shape" +msgstr "Supprimer la forme" + +#: flatcamGUI/FlatCAMGUI.py:2018 +msgid "EXCELLON EDITOR" +msgstr "ÉDITEUR EXCELLON" + +#: flatcamGUI/FlatCAMGUI.py:2018 +msgid "Copy Drill(s)" +msgstr "Copier les Forets" + +#: flatcamGUI/FlatCAMGUI.py:2018 flatcamGUI/FlatCAMGUI.py:2268 msgid "Add Drill" msgstr "Ajouter une Foret" -#: AppGUI/MainGUI.py:1531 App_Main.py:2219 -msgid "Close Editor" -msgstr "Fermer l'éditeur" +#: flatcamGUI/FlatCAMGUI.py:2019 +msgid "Move Drill(s)" +msgstr "Déplacer les Forets" -#: AppGUI/MainGUI.py:1555 +#: flatcamGUI/FlatCAMGUI.py:2020 +msgid "Add a new Tool" +msgstr "Ajouter un nouvel outil" + +#: flatcamGUI/FlatCAMGUI.py:2021 +msgid "Delete Drill(s)" +msgstr "Supprimer les Forets" + +#: flatcamGUI/FlatCAMGUI.py:2021 +msgid "Alternate: Delete Tool(s)" +msgstr "Autre: Supprimer outil(s)" + +#: flatcamGUI/FlatCAMGUI.py:2138 +msgid "GERBER EDITOR" +msgstr "GERBER ÉDITEUR" + +#: flatcamGUI/FlatCAMGUI.py:2138 +msgid "Add Disc" +msgstr "Ajouter un Disque" + +#: flatcamGUI/FlatCAMGUI.py:2138 +msgid "Add SemiDisc" +msgstr "Ajouter un Semi-disque" + +#: flatcamGUI/FlatCAMGUI.py:2140 +msgid "Within Track & Region Tools will cycle in REVERSE the bend modes" +msgstr "" +"Dans les Outils de Piste et de Région, les modes de pliage sont inversés" + +#: flatcamGUI/FlatCAMGUI.py:2141 +msgid "Within Track & Region Tools will cycle FORWARD the bend modes" +msgstr "" +"Dans les Outils de Piste et de Région, les modes de pliage sont répétés en " +"boucle" + +#: flatcamGUI/FlatCAMGUI.py:2142 +msgid "Alternate: Delete Apertures" +msgstr "Autre: Supprimer les ouvertures" + +#: flatcamGUI/FlatCAMGUI.py:2143 +msgid "Eraser Tool" +msgstr "Outil pour Effacer" + +#: flatcamGUI/FlatCAMGUI.py:2144 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:220 +msgid "Mark Area Tool" +msgstr "Outil Zone de Marquage" + +#: flatcamGUI/FlatCAMGUI.py:2144 +msgid "Poligonize Tool" +msgstr "Outil Polygoniser" + +#: flatcamGUI/FlatCAMGUI.py:2144 +msgid "Transformation Tool" +msgstr "Outil de Transformation" + +#: flatcamGUI/FlatCAMGUI.py:2161 +msgid "Toggle Visibility" +msgstr "Basculer la Visibilité" + +#: flatcamGUI/FlatCAMGUI.py:2167 +msgid "New" +msgstr "Nouveau" + +#: flatcamGUI/FlatCAMGUI.py:2169 flatcamGUI/ObjectUI.py:450 +#: flatcamObjects/FlatCAMGerber.py:239 flatcamObjects/FlatCAMGerber.py:327 +#: flatcamTools/ToolCalibration.py:631 flatcamTools/ToolCalibration.py:648 +#: flatcamTools/ToolCalibration.py:815 flatcamTools/ToolCopperThieving.py:144 +#: flatcamTools/ToolCopperThieving.py:158 +#: flatcamTools/ToolCopperThieving.py:604 flatcamTools/ToolCutOut.py:92 +#: flatcamTools/ToolDblSided.py:226 flatcamTools/ToolFilm.py:69 +#: flatcamTools/ToolFilm.py:102 flatcamTools/ToolFilm.py:549 +#: flatcamTools/ToolFilm.py:557 flatcamTools/ToolImage.py:49 +#: flatcamTools/ToolImage.py:271 flatcamTools/ToolNCC.py:95 +#: flatcamTools/ToolNCC.py:558 flatcamTools/ToolNCC.py:1300 +#: flatcamTools/ToolPaint.py:502 flatcamTools/ToolPaint.py:706 +#: flatcamTools/ToolPanelize.py:118 flatcamTools/ToolPanelize.py:374 +#: flatcamTools/ToolPanelize.py:391 +msgid "Geometry" +msgstr "Géométrie" + +#: flatcamGUI/FlatCAMGUI.py:2173 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:99 +#: flatcamTools/ToolAlignObjects.py:74 flatcamTools/ToolAlignObjects.py:110 +#: flatcamTools/ToolCalibration.py:197 flatcamTools/ToolCalibration.py:631 +#: flatcamTools/ToolCalibration.py:648 flatcamTools/ToolCalibration.py:807 +#: flatcamTools/ToolCalibration.py:815 flatcamTools/ToolCopperThieving.py:144 +#: flatcamTools/ToolCopperThieving.py:158 +#: flatcamTools/ToolCopperThieving.py:604 flatcamTools/ToolDblSided.py:225 +#: flatcamTools/ToolFilm.py:359 flatcamTools/ToolNCC.py:558 +#: flatcamTools/ToolNCC.py:1300 flatcamTools/ToolPaint.py:502 +#: flatcamTools/ToolPaint.py:706 flatcamTools/ToolPanelize.py:374 +#: flatcamTools/ToolPunchGerber.py:149 flatcamTools/ToolPunchGerber.py:164 +msgid "Excellon" +msgstr "Excellon" + +#: flatcamGUI/FlatCAMGUI.py:2180 +msgid "Grids" +msgstr "Des grilles" + +#: flatcamGUI/FlatCAMGUI.py:2187 +msgid "Clear Plot" +msgstr "Effacer le Dessin" + +#: flatcamGUI/FlatCAMGUI.py:2189 +msgid "Replot" +msgstr "Re-Tracé" + +#: flatcamGUI/FlatCAMGUI.py:2193 +msgid "Geo Editor" +msgstr "Éditeur de Géo" + +#: flatcamGUI/FlatCAMGUI.py:2195 +msgid "Path" +msgstr "Chemin" + +#: flatcamGUI/FlatCAMGUI.py:2197 +msgid "Rectangle" +msgstr "Rectangle" + +#: flatcamGUI/FlatCAMGUI.py:2200 +msgid "Circle" +msgstr "Cercle" + +#: flatcamGUI/FlatCAMGUI.py:2204 +msgid "Arc" +msgstr "Arc" + +#: flatcamGUI/FlatCAMGUI.py:2218 +msgid "Union" +msgstr "Union" + +#: flatcamGUI/FlatCAMGUI.py:2220 +msgid "Intersection" +msgstr "Intersection" + +#: flatcamGUI/FlatCAMGUI.py:2222 +msgid "Subtraction" +msgstr "Soustraction" + +#: flatcamGUI/FlatCAMGUI.py:2224 flatcamGUI/ObjectUI.py:2221 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:56 +msgid "Cut" +msgstr "Couper" + +#: flatcamGUI/FlatCAMGUI.py:2235 +msgid "Pad" +msgstr "Pad" + +#: flatcamGUI/FlatCAMGUI.py:2237 +msgid "Pad Array" +msgstr "Tableau Pad" + +#: flatcamGUI/FlatCAMGUI.py:2241 +msgid "Track" +msgstr "Piste" + +#: flatcamGUI/FlatCAMGUI.py:2243 +msgid "Region" +msgstr "Région" + +#: flatcamGUI/FlatCAMGUI.py:2266 +msgid "Exc Editor" +msgstr "Éditeur Excellon" + +#: flatcamGUI/FlatCAMGUI.py:2311 +msgid "" +"Relative measurement.\n" +"Reference is last click position" +msgstr "" +"Mesure relative\n" +"La référence est la position du dernier clic" + +#: flatcamGUI/FlatCAMGUI.py:2317 msgid "" "Absolute measurement.\n" "Reference is (X=0, Y= 0) position" @@ -4763,60 +7022,35 @@ msgstr "" "Mesure absolue.\n" "La référence est (X = 0, Y = 0) position" -#: AppGUI/MainGUI.py:1563 -msgid "Application units" -msgstr "Unités d'application" - -#: AppGUI/MainGUI.py:1654 +#: flatcamGUI/FlatCAMGUI.py:2419 msgid "Lock Toolbars" msgstr "Verrouiller les barres d'outils" -#: AppGUI/MainGUI.py:1824 +#: flatcamGUI/FlatCAMGUI.py:2505 msgid "FlatCAM Preferences Folder opened." -msgstr "Dossier Paramètres FlatCAM ouvert." +msgstr "Dossier Préférences FlatCAM ouvert." -#: AppGUI/MainGUI.py:1835 +#: flatcamGUI/FlatCAMGUI.py:2516 msgid "Are you sure you want to delete the GUI Settings? \n" msgstr "Êtes-vous sûr de vouloir supprimer les paramètres de GUI?\n" -#: AppGUI/MainGUI.py:1840 AppGUI/preferences/PreferencesUIManager.py:877 -#: AppGUI/preferences/PreferencesUIManager.py:1123 AppTranslation.py:111 -#: AppTranslation.py:210 App_Main.py:2223 App_Main.py:3158 App_Main.py:5354 -#: App_Main.py:6415 -msgid "Yes" -msgstr "Oui" - -#: AppGUI/MainGUI.py:1841 AppGUI/preferences/PreferencesUIManager.py:1124 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:62 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:164 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:150 -#: AppTools/ToolIsolation.py:174 AppTools/ToolNCC.py:182 -#: AppTools/ToolPaint.py:165 AppTranslation.py:112 AppTranslation.py:211 -#: App_Main.py:2224 App_Main.py:3159 App_Main.py:5355 App_Main.py:6416 -msgid "No" -msgstr "Non" - -#: AppGUI/MainGUI.py:1940 +#: flatcamGUI/FlatCAMGUI.py:2624 msgid "&Cutout Tool" msgstr "Outil de Découpe" -#: AppGUI/MainGUI.py:2016 +#: flatcamGUI/FlatCAMGUI.py:2694 msgid "Select 'Esc'" msgstr "Sélectionnez 'Esc'" -#: AppGUI/MainGUI.py:2054 +#: flatcamGUI/FlatCAMGUI.py:2732 msgid "Copy Objects" msgstr "Copier des objets" -#: AppGUI/MainGUI.py:2056 AppGUI/MainGUI.py:4311 -msgid "Delete Shape" -msgstr "Supprimer la forme" - -#: AppGUI/MainGUI.py:2062 +#: flatcamGUI/FlatCAMGUI.py:2740 msgid "Move Objects" msgstr "Déplacer des objets" -#: AppGUI/MainGUI.py:2648 +#: flatcamGUI/FlatCAMGUI.py:3363 msgid "" "Please first select a geometry item to be cutted\n" "then select the geometry item that will be cutted\n" @@ -4828,12 +7062,12 @@ msgstr "" "sur le premier article. Appuyez à la fin de la touche ~ X ~ ou\n" "le bouton de la barre d'outils." -#: AppGUI/MainGUI.py:2655 AppGUI/MainGUI.py:2819 AppGUI/MainGUI.py:2866 -#: AppGUI/MainGUI.py:2888 +#: flatcamGUI/FlatCAMGUI.py:3370 flatcamGUI/FlatCAMGUI.py:3532 +#: flatcamGUI/FlatCAMGUI.py:3577 flatcamGUI/FlatCAMGUI.py:3597 msgid "Warning" msgstr "Attention" -#: AppGUI/MainGUI.py:2814 +#: flatcamGUI/FlatCAMGUI.py:3527 msgid "" "Please select geometry items \n" "on which to perform Intersection Tool." @@ -4841,7 +7075,7 @@ msgstr "" "Veuillez sélectionner des éléments de géométrie\n" "sur lequel exécuter l'outil Intersection." -#: AppGUI/MainGUI.py:2861 +#: flatcamGUI/FlatCAMGUI.py:3572 msgid "" "Please select geometry items \n" "on which to perform Substraction Tool." @@ -4849,7 +7083,7 @@ msgstr "" "Veuillez sélectionner des éléments de géométrie\n" "sur lequel effectuer l'outil de Soustraction." -#: AppGUI/MainGUI.py:2883 +#: flatcamGUI/FlatCAMGUI.py:3592 msgid "" "Please select geometry items \n" "on which to perform union." @@ -4857,509 +7091,109 @@ msgstr "" "Veuillez sélectionner des éléments de géométrie\n" "sur lequel effectuer l'union." -#: AppGUI/MainGUI.py:2968 AppGUI/MainGUI.py:3183 +#: flatcamGUI/FlatCAMGUI.py:3675 flatcamGUI/FlatCAMGUI.py:3890 msgid "Cancelled. Nothing selected to delete." msgstr "Annulé. Rien de sélectionné à supprimer." -#: AppGUI/MainGUI.py:3052 AppGUI/MainGUI.py:3299 +#: flatcamGUI/FlatCAMGUI.py:3759 flatcamGUI/FlatCAMGUI.py:4006 msgid "Cancelled. Nothing selected to copy." msgstr "Annulé. Rien n'est sélectionné pour copier." -#: AppGUI/MainGUI.py:3098 AppGUI/MainGUI.py:3328 +#: flatcamGUI/FlatCAMGUI.py:3805 flatcamGUI/FlatCAMGUI.py:4035 msgid "Cancelled. Nothing selected to move." msgstr "Annulé. Rien de sélectionné pour bouger." -#: AppGUI/MainGUI.py:3354 +#: flatcamGUI/FlatCAMGUI.py:4061 msgid "New Tool ..." msgstr "Nouvel outil ..." -#: AppGUI/MainGUI.py:3355 AppTools/ToolIsolation.py:1258 -#: AppTools/ToolNCC.py:924 AppTools/ToolPaint.py:849 -#: AppTools/ToolSolderPaste.py:568 +#: flatcamGUI/FlatCAMGUI.py:4062 flatcamTools/ToolNCC.py:924 +#: flatcamTools/ToolPaint.py:850 flatcamTools/ToolSolderPaste.py:560 msgid "Enter a Tool Diameter" msgstr "Entrer un diamètre d'outil" -#: AppGUI/MainGUI.py:3367 +#: flatcamGUI/FlatCAMGUI.py:4074 msgid "Adding Tool cancelled ..." msgstr "Ajout de l'outil annulé ..." -#: AppGUI/MainGUI.py:3381 +#: flatcamGUI/FlatCAMGUI.py:4088 msgid "Distance Tool exit..." msgstr "Distance Outil sortie ..." -#: AppGUI/MainGUI.py:3561 App_Main.py:3146 -msgid "Application is saving the project. Please wait ..." -msgstr "Enregistrement du projet. Attendez ..." +#: flatcamGUI/FlatCAMGUI.py:4323 flatcamGUI/FlatCAMGUI.py:4330 +msgid "Idle." +msgstr "Au repos." -#: AppGUI/MainGUI.py:3668 -msgid "Shell disabled." -msgstr "Shell désactivé." +#: flatcamGUI/FlatCAMGUI.py:4361 +msgid "Application started ..." +msgstr "L'application a commencé ..." -#: AppGUI/MainGUI.py:3678 -msgid "Shell enabled." -msgstr "Shell activé." +#: flatcamGUI/FlatCAMGUI.py:4362 +msgid "Hello!" +msgstr "Salut!" -#: AppGUI/MainGUI.py:3706 App_Main.py:9155 -msgid "Shortcut Key List" -msgstr "Touches de raccourci" +#: flatcamGUI/FlatCAMGUI.py:4424 +msgid "Open Project ..." +msgstr "Projet ouvert ..." -#: AppGUI/MainGUI.py:4089 -msgid "General Shortcut list" -msgstr "Liste de raccourcis clavier" +#: flatcamGUI/FlatCAMGUI.py:4450 +msgid "Exit" +msgstr "Sortie" -#: AppGUI/MainGUI.py:4090 -msgid "SHOW SHORTCUT LIST" -msgstr "MONTRER LISTE DES RACCOURCIS" +#: flatcamGUI/GUIElements.py:2513 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:180 +#: flatcamTools/ToolDblSided.py:173 flatcamTools/ToolDblSided.py:388 +#: flatcamTools/ToolFilm.py:219 +msgid "Reference" +msgstr "Référence" -#: AppGUI/MainGUI.py:4090 -msgid "Switch to Project Tab" -msgstr "Passer à l'onglet Projet" - -#: AppGUI/MainGUI.py:4090 -msgid "Switch to Selected Tab" -msgstr "Passer à l'onglet Sélectionné" - -#: AppGUI/MainGUI.py:4091 -msgid "Switch to Tool Tab" -msgstr "Basculer vers l'onglet Outil" - -#: AppGUI/MainGUI.py:4092 -msgid "New Gerber" -msgstr "Nouveau Gerber" - -#: AppGUI/MainGUI.py:4092 -msgid "Edit Object (if selected)" -msgstr "Editer objet (si sélectionné)" - -#: AppGUI/MainGUI.py:4092 App_Main.py:5658 -msgid "Grid On/Off" -msgstr "Grille On/Off" - -#: AppGUI/MainGUI.py:4092 -msgid "Jump to Coordinates" -msgstr "Aller aux coordonnées" - -#: AppGUI/MainGUI.py:4093 -msgid "New Excellon" -msgstr "Nouvelle Excellon" - -#: AppGUI/MainGUI.py:4093 -msgid "Move Obj" -msgstr "Déplacer Obj" - -#: AppGUI/MainGUI.py:4093 -msgid "New Geometry" -msgstr "Nouvelle Géométrie" - -#: AppGUI/MainGUI.py:4093 -msgid "Change Units" -msgstr "Changer d'unités" - -#: AppGUI/MainGUI.py:4094 -msgid "Open Properties Tool" -msgstr "Ouvrir les Propriétés" - -#: AppGUI/MainGUI.py:4094 -msgid "Rotate by 90 degree CW" -msgstr "Rotation de 90 degrés CW" - -#: AppGUI/MainGUI.py:4094 -msgid "Shell Toggle" -msgstr "Shell bascule" - -#: AppGUI/MainGUI.py:4095 +#: flatcamGUI/GUIElements.py:2515 msgid "" -"Add a Tool (when in Geometry Selected Tab or in Tools NCC or Tools Paint)" +"The reference can be:\n" +"- Absolute -> the reference point is point (0,0)\n" +"- Relative -> the reference point is the mouse position before Jump" msgstr "" -"Ajouter un outil (dans l'onglet Géométrie sélectionnée ou dans Outils NCC ou " -"Outils de Peinture)" +"La référence peut être:\n" +"- Absolue -> le point de référence est le point (0,0)\n" +"- Relatif -> le point de référence est la position de la souris avant le saut" -#: AppGUI/MainGUI.py:4096 -msgid "Flip on X_axis" -msgstr "Miroir sur l'axe des X" +#: flatcamGUI/GUIElements.py:2520 +msgid "Abs" +msgstr "Abs" -#: AppGUI/MainGUI.py:4096 -msgid "Flip on Y_axis" -msgstr "Miroir sur l'axe des Y" +#: flatcamGUI/GUIElements.py:2521 +msgid "Relative" +msgstr "Relatif" -#: AppGUI/MainGUI.py:4099 -msgid "Copy Obj" -msgstr "Copier Obj" +#: flatcamGUI/GUIElements.py:2531 +msgid "Location" +msgstr "Emplacement" -#: AppGUI/MainGUI.py:4099 -msgid "Open Tools Database" -msgstr "Ouvrir la BD des outils" - -#: AppGUI/MainGUI.py:4100 -msgid "Open Excellon File" -msgstr "Ouvrir le fichier Excellon" - -#: AppGUI/MainGUI.py:4100 -msgid "Open Gerber File" -msgstr "Ouvrir le fichier Gerber" - -#: AppGUI/MainGUI.py:4100 -msgid "New Project" -msgstr "Nouveau Projet" - -#: AppGUI/MainGUI.py:4101 App_Main.py:6711 App_Main.py:6714 -msgid "Open Project" -msgstr "Ouvrir Projet" - -#: AppGUI/MainGUI.py:4101 AppTools/ToolPDF.py:41 -msgid "PDF Import Tool" -msgstr "Outil d'importation PDF" - -#: AppGUI/MainGUI.py:4101 -msgid "Save Project" -msgstr "Sauvegarder le projet" - -#: AppGUI/MainGUI.py:4101 -msgid "Toggle Plot Area" -msgstr "Basculer la Zone de Tracé" - -#: AppGUI/MainGUI.py:4104 -msgid "Copy Obj_Name" -msgstr "Copier Nom Obj" - -#: AppGUI/MainGUI.py:4105 -msgid "Toggle Code Editor" -msgstr "Basculer l'éditeur de Code" - -#: AppGUI/MainGUI.py:4105 -msgid "Toggle the axis" -msgstr "Basculer l'axe" - -#: AppGUI/MainGUI.py:4105 AppGUI/MainGUI.py:4306 AppGUI/MainGUI.py:4393 -#: AppGUI/MainGUI.py:4515 -msgid "Distance Minimum Tool" -msgstr "Outil de Distance Minimum" - -#: AppGUI/MainGUI.py:4106 -msgid "Open Preferences Window" -msgstr "Ouvrir la fenêtre des Préférences" - -#: AppGUI/MainGUI.py:4107 -msgid "Rotate by 90 degree CCW" -msgstr "Faire pivoter de 90 degrés dans le sens anti-horaire" - -#: AppGUI/MainGUI.py:4107 -msgid "Run a Script" -msgstr "Exécuter un script" - -#: AppGUI/MainGUI.py:4107 -msgid "Toggle the workspace" -msgstr "Basculer l'espace de travail" - -#: AppGUI/MainGUI.py:4107 -msgid "Skew on X axis" -msgstr "Inclinaison sur l'axe X" - -#: AppGUI/MainGUI.py:4108 -msgid "Skew on Y axis" -msgstr "Inclinaison sur l'axe Y" - -#: AppGUI/MainGUI.py:4111 -msgid "2-Sided PCB Tool" -msgstr "Outil de PCB double face" - -#: AppGUI/MainGUI.py:4112 -msgid "Toggle Grid Lines" -msgstr "Basculer les Lignes de la Grille" - -#: AppGUI/MainGUI.py:4114 -msgid "Solder Paste Dispensing Tool" -msgstr "Outil d'application de Pâte à souder" - -#: AppGUI/MainGUI.py:4115 -msgid "Film PCB Tool" -msgstr "Outil de PCB film" - -#: AppGUI/MainGUI.py:4115 -msgid "Non-Copper Clearing Tool" -msgstr "Outil de Nettoyage sans Cuivre" - -#: AppGUI/MainGUI.py:4116 -msgid "Paint Area Tool" -msgstr "Outil de Zone de Peinture" - -#: AppGUI/MainGUI.py:4116 -msgid "Rules Check Tool" -msgstr "Outil de Vérification des Règles" - -#: AppGUI/MainGUI.py:4117 -msgid "View File Source" -msgstr "Voir le fichier Source" - -#: AppGUI/MainGUI.py:4117 -msgid "Transformations Tool" -msgstr "Outil de Transformation" - -#: AppGUI/MainGUI.py:4118 -msgid "Cutout PCB Tool" -msgstr "Outil de Découpe PCB" - -#: AppGUI/MainGUI.py:4118 AppTools/ToolPanelize.py:35 -msgid "Panelize PCB" -msgstr "Panéliser PCB" - -#: AppGUI/MainGUI.py:4119 -msgid "Enable all Plots" -msgstr "Activer tous les Dessins" - -#: AppGUI/MainGUI.py:4119 -msgid "Disable all Plots" -msgstr "Désactiver tous les Dessins" - -#: AppGUI/MainGUI.py:4119 -msgid "Disable Non-selected Plots" -msgstr "Désactiver les Dessins non sélectionnés" - -#: AppGUI/MainGUI.py:4120 -msgid "Toggle Full Screen" -msgstr "Passer en plein écran" - -#: AppGUI/MainGUI.py:4123 -msgid "Abort current task (gracefully)" -msgstr "Abandonner la tâche en cours (avec élégance)" - -#: AppGUI/MainGUI.py:4126 -msgid "Save Project As" -msgstr "Enregistrer le projet sous" - -#: AppGUI/MainGUI.py:4127 +#: flatcamGUI/GUIElements.py:2533 msgid "" -"Paste Special. Will convert a Windows path style to the one required in Tcl " -"Shell" +"The Location value is a tuple (x,y).\n" +"If the reference is Absolute then the Jump will be at the position (x,y).\n" +"If the reference is Relative then the Jump will be at the (x,y) distance\n" +"from the current mouse location point." msgstr "" -"Collage spécial. Convertira un style de chemin d'accès Windows en celui " -"requis dans Tcl Shell" +"La valeur Emplacement est un tuple (x, y).\n" +"Si la référence est absolue, le saut sera à la position (x, y).\n" +"Si la référence est relative, le saut sera à la distance (x, y)\n" +"à partir du point d'emplacement actuel de la souris." -#: AppGUI/MainGUI.py:4130 -msgid "Open Online Manual" -msgstr "Ouvrir le manuel en ligne" +#: flatcamGUI/GUIElements.py:2573 +msgid "Save Log" +msgstr "Enregistrer le journal" -#: AppGUI/MainGUI.py:4131 -msgid "Open Online Tutorials" -msgstr "Ouvrir des tutoriels en ligne" +#: flatcamGUI/GUIElements.py:2592 flatcamTools/ToolShell.py:278 +msgid "Type >help< to get started" +msgstr "Tapez >help< pour commencer" -#: AppGUI/MainGUI.py:4131 -msgid "Refresh Plots" -msgstr "Actualiser les Dessins" +#: flatcamGUI/ObjectUI.py:38 +msgid "FlatCAM Object" +msgstr "Objet FlatCAM" -#: AppGUI/MainGUI.py:4131 AppTools/ToolSolderPaste.py:517 -msgid "Delete Object" -msgstr "Supprimer un objet" - -#: AppGUI/MainGUI.py:4131 -msgid "Alternate: Delete Tool" -msgstr "Autre: Suppression de Outil" - -#: AppGUI/MainGUI.py:4132 -msgid "(left to Key_1)Toggle Notebook Area (Left Side)" -msgstr "(à gauche de Key_1) Basculer la Zone du bloc-notes (côté gauche)" - -#: AppGUI/MainGUI.py:4132 -msgid "En(Dis)able Obj Plot" -msgstr "(Dés)activer Obj Dessin" - -#: AppGUI/MainGUI.py:4133 -msgid "Deselects all objects" -msgstr "Désélectionne tous les objets" - -#: AppGUI/MainGUI.py:4147 -msgid "Editor Shortcut list" -msgstr "Liste des raccourcis de l'éditeur" - -#: AppGUI/MainGUI.py:4301 -msgid "GEOMETRY EDITOR" -msgstr "EDITEUR DE GEOMETRIE" - -#: AppGUI/MainGUI.py:4301 -msgid "Draw an Arc" -msgstr "Dessiner un arc" - -#: AppGUI/MainGUI.py:4301 -msgid "Copy Geo Item" -msgstr "Copier un élém. de Géo" - -#: AppGUI/MainGUI.py:4302 -msgid "Within Add Arc will toogle the ARC direction: CW or CCW" -msgstr "Dans Ajouter un arc va toogle la direction de l'ARC: CW ou CCW" - -#: AppGUI/MainGUI.py:4302 -msgid "Polygon Intersection Tool" -msgstr "Outil d'intersection de polygones" - -#: AppGUI/MainGUI.py:4303 -msgid "Geo Paint Tool" -msgstr "Outil de peinture géo" - -#: AppGUI/MainGUI.py:4303 AppGUI/MainGUI.py:4392 AppGUI/MainGUI.py:4512 -msgid "Jump to Location (x, y)" -msgstr "Aller à l'emplacement (x, y)" - -#: AppGUI/MainGUI.py:4303 -msgid "Toggle Corner Snap" -msgstr "Basculement d'angle" - -#: AppGUI/MainGUI.py:4303 -msgid "Move Geo Item" -msgstr "Déplacer un élément de géométrie" - -#: AppGUI/MainGUI.py:4304 -msgid "Within Add Arc will cycle through the ARC modes" -msgstr "Dans Ajouter Arc passera en revue les modes ARC" - -#: AppGUI/MainGUI.py:4304 -msgid "Draw a Polygon" -msgstr "Dessine un polygone" - -#: AppGUI/MainGUI.py:4304 -msgid "Draw a Circle" -msgstr "Dessiner un cercle" - -#: AppGUI/MainGUI.py:4305 -msgid "Draw a Path" -msgstr "Dessiner un chemin" - -#: AppGUI/MainGUI.py:4305 -msgid "Draw Rectangle" -msgstr "Dessiner un rectangle" - -#: AppGUI/MainGUI.py:4305 -msgid "Polygon Subtraction Tool" -msgstr "Outil de soustraction de polygone" - -#: AppGUI/MainGUI.py:4305 -msgid "Add Text Tool" -msgstr "Ajouter un outil de texte" - -#: AppGUI/MainGUI.py:4306 -msgid "Polygon Union Tool" -msgstr "Outil union de polygones" - -#: AppGUI/MainGUI.py:4306 -msgid "Flip shape on X axis" -msgstr "Refléter la forme sur l'axe X" - -#: AppGUI/MainGUI.py:4306 -msgid "Flip shape on Y axis" -msgstr "Refléter la forme sur l'axe Y" - -#: AppGUI/MainGUI.py:4307 -msgid "Skew shape on X axis" -msgstr "Inclinaison de la forme sur l'axe X" - -#: AppGUI/MainGUI.py:4307 -msgid "Skew shape on Y axis" -msgstr "Inclinaison de la forme sur l'axe Y" - -#: AppGUI/MainGUI.py:4307 -msgid "Editor Transformation Tool" -msgstr "Outil de transformation de l'éditeur" - -#: AppGUI/MainGUI.py:4308 -msgid "Offset shape on X axis" -msgstr "Forme décalée sur l'axe X" - -#: AppGUI/MainGUI.py:4308 -msgid "Offset shape on Y axis" -msgstr "Forme décalée sur l'axe Y" - -#: AppGUI/MainGUI.py:4309 AppGUI/MainGUI.py:4395 AppGUI/MainGUI.py:4517 -msgid "Save Object and Exit Editor" -msgstr "Enregistrer l'objet et quitter l'éditeur" - -#: AppGUI/MainGUI.py:4309 -msgid "Polygon Cut Tool" -msgstr "Outil de coupe de polygone" - -#: AppGUI/MainGUI.py:4310 -msgid "Rotate Geometry" -msgstr "Faire pivoter la géométrie" - -#: AppGUI/MainGUI.py:4310 -msgid "Finish drawing for certain tools" -msgstr "Terminer le dessin pour certains outils" - -#: AppGUI/MainGUI.py:4310 AppGUI/MainGUI.py:4395 AppGUI/MainGUI.py:4515 -msgid "Abort and return to Select" -msgstr "Abort and return to Select" - -#: AppGUI/MainGUI.py:4391 -msgid "EXCELLON EDITOR" -msgstr "ÉDITEUR EXCELLON" - -#: AppGUI/MainGUI.py:4391 -msgid "Copy Drill(s)" -msgstr "Copier les Forets" - -#: AppGUI/MainGUI.py:4392 -msgid "Move Drill(s)" -msgstr "Déplacer les Forets" - -#: AppGUI/MainGUI.py:4393 -msgid "Add a new Tool" -msgstr "Ajouter un nouvel outil" - -#: AppGUI/MainGUI.py:4394 -msgid "Delete Drill(s)" -msgstr "Supprimer les Forets" - -#: AppGUI/MainGUI.py:4394 -msgid "Alternate: Delete Tool(s)" -msgstr "Autre: Supprimer outil(s)" - -#: AppGUI/MainGUI.py:4511 -msgid "GERBER EDITOR" -msgstr "GERBER ÉDITEUR" - -#: AppGUI/MainGUI.py:4511 -msgid "Add Disc" -msgstr "Ajouter un Disque" - -#: AppGUI/MainGUI.py:4511 -msgid "Add SemiDisc" -msgstr "Ajouter un Semi-disque" - -#: AppGUI/MainGUI.py:4513 -msgid "Within Track & Region Tools will cycle in REVERSE the bend modes" -msgstr "" -"Dans les Outils de Piste et de Région, les modes de pliage sont inversés" - -#: AppGUI/MainGUI.py:4514 -msgid "Within Track & Region Tools will cycle FORWARD the bend modes" -msgstr "" -"Dans les Outils de Piste et de Région, les modes de pliage sont répétés en " -"boucle" - -#: AppGUI/MainGUI.py:4515 -msgid "Alternate: Delete Apertures" -msgstr "Autre: Supprimer les ouvertures" - -#: AppGUI/MainGUI.py:4516 -msgid "Eraser Tool" -msgstr "Outil pour Effacer" - -#: AppGUI/MainGUI.py:4517 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:221 -msgid "Mark Area Tool" -msgstr "Outil Zone de Marquage" - -#: AppGUI/MainGUI.py:4517 -msgid "Poligonize Tool" -msgstr "Outil Polygoniser" - -#: AppGUI/MainGUI.py:4517 -msgid "Transformation Tool" -msgstr "Outil de Transformation" - -#: AppGUI/ObjectUI.py:38 -msgid "App Object" -msgstr "Objet" - -#: AppGUI/ObjectUI.py:78 AppTools/ToolIsolation.py:77 +#: flatcamGUI/ObjectUI.py:78 msgid "" "BASIC is suitable for a beginner. Many parameters\n" "are hidden from the user in this mode.\n" @@ -5374,14 +7208,14 @@ msgstr "" "Le mode Avancé rendra disponible tous les paramètres.\n" "\n" "Pour changer le niveau de l'application, allez à:\n" -"Édition -> Paramètres -> Général et vérifiez:\n" +"Édition -> Préférences -> Général et vérifiez:\n" "Bouton radio 'APP. NIVEAU'." -#: AppGUI/ObjectUI.py:111 AppGUI/ObjectUI.py:154 +#: flatcamGUI/ObjectUI.py:111 msgid "Geometrical transformations of the current object." msgstr "Transformations géométriques de l'objet courant." -#: AppGUI/ObjectUI.py:120 +#: flatcamGUI/ObjectUI.py:120 msgid "" "Factor by which to multiply\n" "geometric features of this object.\n" @@ -5391,11 +7225,11 @@ msgstr "" "caractéristiques géométriques de cet objet.\n" "Les expressions sont autorisées. Par exemple: 1 / 25.4" -#: AppGUI/ObjectUI.py:127 +#: flatcamGUI/ObjectUI.py:127 msgid "Perform scaling operation." msgstr "Effectuer l'opération de mise à l'échelle." -#: AppGUI/ObjectUI.py:138 +#: flatcamGUI/ObjectUI.py:138 msgid "" "Amount by which to move the object\n" "in the x and y axes in (x, y) format.\n" @@ -5405,68 +7239,61 @@ msgstr "" "dans les axes x et y au format (x, y).\n" "Les expressions sont autorisées. Par exemple: (1/3.2, 0.5*3)" -#: AppGUI/ObjectUI.py:145 +#: flatcamGUI/ObjectUI.py:145 msgid "Perform the offset operation." msgstr "Effectuer l'opération de décalage." -#: AppGUI/ObjectUI.py:162 AppGUI/ObjectUI.py:173 AppTool.py:280 AppTool.py:291 -msgid "Edited value is out of range" -msgstr "La valeur modifiée est hors limites" - -#: AppGUI/ObjectUI.py:168 AppGUI/ObjectUI.py:175 AppTool.py:286 AppTool.py:293 -msgid "Edited value is within limits." -msgstr "La valeur modifiée est dans les limites." - -#: AppGUI/ObjectUI.py:187 +#: flatcamGUI/ObjectUI.py:178 msgid "Gerber Object" -msgstr "Objet Gerber" +msgstr "Objet de Gerber" -#: AppGUI/ObjectUI.py:196 AppGUI/ObjectUI.py:496 AppGUI/ObjectUI.py:1313 -#: AppGUI/ObjectUI.py:2135 AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:30 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:33 -#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:31 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:31 +#: flatcamGUI/ObjectUI.py:187 flatcamGUI/ObjectUI.py:730 +#: flatcamGUI/ObjectUI.py:1426 flatcamGUI/ObjectUI.py:2205 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:30 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:33 +#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:31 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:31 msgid "Plot Options" msgstr "Options de Tracé" -#: AppGUI/ObjectUI.py:202 AppGUI/ObjectUI.py:502 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:47 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:45 -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:119 -#: AppTools/ToolCopperThieving.py:195 +#: flatcamGUI/ObjectUI.py:193 flatcamGUI/ObjectUI.py:731 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:45 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:38 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:119 +#: flatcamTools/ToolCopperThieving.py:191 msgid "Solid" msgstr "Solide" -#: AppGUI/ObjectUI.py:204 AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:47 +#: flatcamGUI/ObjectUI.py:195 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:40 msgid "Solid color polygons." msgstr "Polygones de couleur unie." -#: AppGUI/ObjectUI.py:210 AppGUI/ObjectUI.py:510 AppGUI/ObjectUI.py:1319 +#: flatcamGUI/ObjectUI.py:201 msgid "Multi-Color" msgstr "Multicolore" -#: AppGUI/ObjectUI.py:212 AppGUI/ObjectUI.py:512 AppGUI/ObjectUI.py:1321 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:56 -#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:47 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:54 +#: flatcamGUI/ObjectUI.py:203 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:47 msgid "Draw polygons in different colors." msgstr "Dessine des polygones de différentes couleurs." -#: AppGUI/ObjectUI.py:228 AppGUI/ObjectUI.py:548 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:40 -#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:38 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:38 +#: flatcamGUI/ObjectUI.py:209 flatcamGUI/ObjectUI.py:769 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:39 +#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:35 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:52 msgid "Plot" msgstr "Dessin" -#: AppGUI/ObjectUI.py:229 AppGUI/ObjectUI.py:550 AppGUI/ObjectUI.py:1383 -#: AppGUI/ObjectUI.py:2245 AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:41 -#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:40 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:40 +#: flatcamGUI/ObjectUI.py:211 flatcamGUI/ObjectUI.py:771 +#: flatcamGUI/ObjectUI.py:1486 flatcamGUI/ObjectUI.py:2315 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:41 +#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:37 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:54 msgid "Plot (show) this object." msgstr "Tracer (afficher) cet objet." -#: AppGUI/ObjectUI.py:258 +#: flatcamGUI/ObjectUI.py:239 msgid "" "Toggle the display of the Gerber Apertures Table.\n" "When unchecked, it will delete all mark shapes\n" @@ -5477,11 +7304,11 @@ msgstr "" "supprimées\n" "qui sont dessinés sur une toile." -#: AppGUI/ObjectUI.py:268 +#: flatcamGUI/ObjectUI.py:249 msgid "Mark All" msgstr "Marquer tout" -#: AppGUI/ObjectUI.py:270 +#: flatcamGUI/ObjectUI.py:251 msgid "" "When checked it will display all the apertures.\n" "When unchecked, it will delete all mark shapes\n" @@ -5492,15 +7319,332 @@ msgstr "" "supprimées\n" "qui sont dessinés sur une toile." -#: AppGUI/ObjectUI.py:298 +#: flatcamGUI/ObjectUI.py:279 msgid "Mark the aperture instances on canvas." msgstr "Marquez les occurrences d’ouverture sur la toile." -#: AppGUI/ObjectUI.py:305 AppTools/ToolIsolation.py:579 +#: flatcamGUI/ObjectUI.py:291 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:32 +msgid "Isolation Routing" +msgstr "Routage d'isolement" + +#: flatcamGUI/ObjectUI.py:293 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:34 +msgid "" +"Create a Geometry object with\n" +"toolpaths to cut outside polygons." +msgstr "" +"Créez un objet de géométrie avec\n" +"parcours d’outils pour couper des polygones extérieurs." + +#: flatcamGUI/ObjectUI.py:311 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:69 +msgid "" +"Choose which tool to use for Gerber isolation:\n" +"'Circular' or 'V-shape'.\n" +"When the 'V-shape' is selected then the tool\n" +"diameter will depend on the chosen cut depth." +msgstr "" +"Choisissez quel outil utiliser pour l'isolation de Gerber:\n" +"«Circulaire» ou «Forme en V».\n" +"Lorsque la \"Forme en V\" est sélectionnée, l'outil\n" +"Le diamètre dépendra de la profondeur de coupe choisie." + +#: flatcamGUI/ObjectUI.py:317 +msgid "V-Shape" +msgstr "Forme en V" + +#: flatcamGUI/ObjectUI.py:323 flatcamGUI/ObjectUI.py:1672 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:81 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:72 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:78 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:85 +#: flatcamTools/ToolNCC.py:233 flatcamTools/ToolNCC.py:240 +#: flatcamTools/ToolPaint.py:216 +msgid "V-Tip Dia" +msgstr "Dia V-Tip" + +#: flatcamGUI/ObjectUI.py:325 flatcamGUI/ObjectUI.py:1675 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:83 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:74 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:80 +#: flatcamTools/ToolNCC.py:235 flatcamTools/ToolPaint.py:218 +msgid "The tip diameter for V-Shape Tool" +msgstr "Le diamètre de la pointe pour l'outil en forme de V" + +#: flatcamGUI/ObjectUI.py:336 flatcamGUI/ObjectUI.py:1687 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:94 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:84 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:91 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:99 +#: flatcamTools/ToolNCC.py:246 flatcamTools/ToolNCC.py:254 +#: flatcamTools/ToolPaint.py:229 +msgid "V-Tip Angle" +msgstr "Angle en V-tip" + +#: flatcamGUI/ObjectUI.py:338 flatcamGUI/ObjectUI.py:1690 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:96 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:86 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:93 +#: flatcamTools/ToolNCC.py:248 flatcamTools/ToolPaint.py:231 +msgid "" +"The tip angle for V-Shape Tool.\n" +"In degree." +msgstr "" +"L'angle de pointe pour l'outil en forme de V\n" +"En degré." + +#: flatcamGUI/ObjectUI.py:352 flatcamGUI/ObjectUI.py:1706 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:50 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:109 +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:61 +#: flatcamObjects/FlatCAMGeometry.py:1174 flatcamTools/ToolCutOut.py:141 +msgid "" +"Cutting depth (negative)\n" +"below the copper surface." +msgstr "" +"Profondeur de coupe (négatif)\n" +"sous la surface de cuivre." + +#: flatcamGUI/ObjectUI.py:366 +msgid "" +"Diameter of the cutting tool.\n" +"If you want to have an isolation path\n" +"inside the actual shape of the Gerber\n" +"feature, use a negative value for\n" +"this parameter." +msgstr "" +"Diamètre de l'outil de coupe.\n" +"Si vous voulez avoir un chemin d'isolation\n" +"à l'intérieur de la forme réelle du Gerber\n" +"fonction, utilisez une valeur négative pour\n" +"ce paramètre." + +#: flatcamGUI/ObjectUI.py:382 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:56 +msgid "# Passes" +msgstr "# Passes" + +#: flatcamGUI/ObjectUI.py:384 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:58 +msgid "" +"Width of the isolation gap in\n" +"number (integer) of tool widths." +msgstr "" +"Largeur du fossé d'isolement dans\n" +"nombre (entier) de largeurs d'outil." + +#: flatcamGUI/ObjectUI.py:395 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:68 +msgid "Pass overlap" +msgstr "Passe chevauchement" + +#: flatcamGUI/ObjectUI.py:397 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:70 +msgid "How much (percentage) of the tool width to overlap each tool pass." +msgstr "" +"La quantité (pourcentage) de la largeur d'outil qui chevauche chaque passe " +"d'outil." + +#: flatcamGUI/ObjectUI.py:411 +#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:58 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:97 +msgid "" +"Milling type:\n" +"- climb / best for precision milling and to reduce tool usage\n" +"- conventional / useful when there is no backlash compensation" +msgstr "" +"Type de fraisage:\n" +"- montée / idéal pour le fraisage de précision et pour réduire l'utilisation " +"d'outils\n" +"- conventionnel / utile quand il n'y a pas de compensation de jeu" + +#: flatcamGUI/ObjectUI.py:421 +msgid "Combine" +msgstr "Combiner" + +#: flatcamGUI/ObjectUI.py:423 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:109 +msgid "Combine all passes into one object" +msgstr "Combine tous les passages dans un objet" + +#: flatcamGUI/ObjectUI.py:427 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:43 +msgid "\"Follow\"" +msgstr "\"Suivre\"" + +#: flatcamGUI/ObjectUI.py:428 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:45 +msgid "" +"Generate a 'Follow' geometry.\n" +"This means that it will cut through\n" +"the middle of the trace." +msgstr "" +"Générez une géométrie \"Suivre\".\n" +"Cela signifie qu'il va couper à travers\n" +"le milieu de la trace." + +#: flatcamGUI/ObjectUI.py:434 +msgid "Except" +msgstr "Sauf" + +#: flatcamGUI/ObjectUI.py:437 +msgid "" +"When the isolation geometry is generated,\n" +"by checking this, the area of the object below\n" +"will be subtracted from the isolation geometry." +msgstr "" +"Lorsque la géométrie d'isolement est générée,\n" +"en vérifiant cela, la zone de l'objet ci-dessous\n" +"sera soustrait de la géométrie d'isolement." + +#: flatcamGUI/ObjectUI.py:450 +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:97 +#: flatcamObjects/FlatCAMGerber.py:239 flatcamObjects/FlatCAMGerber.py:327 +#: flatcamTools/ToolAlignObjects.py:73 flatcamTools/ToolAlignObjects.py:109 +#: flatcamTools/ToolCalibration.py:196 flatcamTools/ToolCalibration.py:631 +#: flatcamTools/ToolCalibration.py:648 flatcamTools/ToolCalibration.py:807 +#: flatcamTools/ToolCalibration.py:815 flatcamTools/ToolCopperThieving.py:144 +#: flatcamTools/ToolCopperThieving.py:158 +#: flatcamTools/ToolCopperThieving.py:604 flatcamTools/ToolCutOut.py:91 +#: flatcamTools/ToolDblSided.py:224 flatcamTools/ToolFilm.py:69 +#: flatcamTools/ToolFilm.py:102 flatcamTools/ToolFilm.py:549 +#: flatcamTools/ToolFilm.py:557 flatcamTools/ToolImage.py:49 +#: flatcamTools/ToolImage.py:252 flatcamTools/ToolImage.py:273 +#: flatcamTools/ToolNCC.py:96 flatcamTools/ToolNCC.py:558 +#: flatcamTools/ToolNCC.py:1300 flatcamTools/ToolPaint.py:502 +#: flatcamTools/ToolPaint.py:706 flatcamTools/ToolPanelize.py:118 +#: flatcamTools/ToolPanelize.py:204 flatcamTools/ToolPanelize.py:374 +#: flatcamTools/ToolPanelize.py:391 +msgid "Gerber" +msgstr "Gerber" + +#: flatcamGUI/ObjectUI.py:457 flatcamTools/ToolNCC.py:86 +#: flatcamTools/ToolPaint.py:80 +msgid "Obj Type" +msgstr "Type d'objet" + +#: flatcamGUI/ObjectUI.py:459 +msgid "" +"Specify the type of object to be excepted from isolation.\n" +"It can be of type: Gerber or Geometry.\n" +"What is selected here will dictate the kind\n" +"of objects that will populate the 'Object' combobox." +msgstr "" +"Spécifiez le type d'objet à exclure de l'isolation.\n" +"Il peut être de type: Gerber ou Géométrie.\n" +"Ce qui est sélectionné ici dictera le genre\n" +"des objets qui vont remplir la liste déroulante 'Object'." + +#: flatcamGUI/ObjectUI.py:472 +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:48 +#: flatcamTools/ToolCalibration.py:186 flatcamTools/ToolNCC.py:109 +#: flatcamTools/ToolPaint.py:103 flatcamTools/ToolPanelize.py:100 +#: flatcamTools/ToolQRCode.py:78 +msgid "Object" +msgstr "Objet" + +#: flatcamGUI/ObjectUI.py:473 +msgid "Object whose area will be removed from isolation geometry." +msgstr "Objet dont l'aire sera retirée de la géométrie d'isolation." + +#: flatcamGUI/ObjectUI.py:480 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:82 +msgid "Scope" +msgstr "Portée" + +#: flatcamGUI/ObjectUI.py:482 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:84 +msgid "" +"Isolation scope. Choose what to isolate:\n" +"- 'All' -> Isolate all the polygons in the object\n" +"- 'Selection' -> Isolate a selection of polygons." +msgstr "" +"Portée d'isolement. Choisissez quoi isoler:\n" +"- 'Tout' -> Isoler tous les polygones de l'objet\n" +"- 'Sélection' -> Isoler une sélection de polygones." + +#: flatcamGUI/ObjectUI.py:487 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:307 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:89 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:311 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:258 +#: flatcamTools/ToolNCC.py:539 flatcamTools/ToolPaint.py:456 +msgid "Selection" +msgstr "Sélection" + +#: flatcamGUI/ObjectUI.py:495 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:122 +msgid "Isolation Type" +msgstr "Type d'isolement" + +#: flatcamGUI/ObjectUI.py:497 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:124 +msgid "" +"Choose how the isolation will be executed:\n" +"- 'Full' -> complete isolation of polygons\n" +"- 'Ext' -> will isolate only on the outside\n" +"- 'Int' -> will isolate only on the inside\n" +"'Exterior' isolation is almost always possible\n" +"(with the right tool) but 'Interior'\n" +"isolation can be done only when there is an opening\n" +"inside of the polygon (e.g polygon is a 'doughnut' shape)." +msgstr "" +"Choisissez comment l'isolement sera exécuté:\n" +"- «Complet» -> isolation complète des polygones\n" +"- 'Extérieur' -> isolera uniquement à l'extérieur\n" +"- 'Intérieur' -> isolera uniquement à l'intérieur\n" +"L'isolement «extérieur» est presque toujours possible\n" +"(avec le bon outil) mais 'Intérieur'\n" +"l'isolement ne peut se faire que s'il y a une ouverture\n" +"à l'intérieur du polygone (par exemple, le polygone est une forme de `` " +"beignet '')." + +#: flatcamGUI/ObjectUI.py:506 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:133 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:154 +msgid "Full" +msgstr "Plein" + +#: flatcamGUI/ObjectUI.py:507 +msgid "Ext" +msgstr "Ext" + +#: flatcamGUI/ObjectUI.py:508 +msgid "Int" +msgstr "Int" + +#: flatcamGUI/ObjectUI.py:513 +msgid "Generate Isolation Geometry" +msgstr "Générer une géométrie d'isolation" + +#: flatcamGUI/ObjectUI.py:521 +msgid "" +"Create a Geometry object with toolpaths to cut \n" +"isolation outside, inside or on both sides of the\n" +"object. For a Gerber object outside means outside\n" +"of the Gerber feature and inside means inside of\n" +"the Gerber feature, if possible at all. This means\n" +"that only if the Gerber feature has openings inside, they\n" +"will be isolated. If what is wanted is to cut isolation\n" +"inside the actual Gerber feature, use a negative tool\n" +"diameter above." +msgstr "" +"Créer un objet Geometry avec des parcours à couper\n" +"isolement à l'extérieur, à l'intérieur ou des deux côtés du\n" +"objet. Pour un objet Gerber dehors signifie dehors\n" +"de la fonction Gerber et à l'intérieur des moyens à l'intérieur de\n" +"la fonction Gerber, si possible du tout. Ça signifie\n" +"que si la fonction Gerber a des ouvertures à l'intérieur, ils\n" +"sera isolé. Si ce qu'on veut, c'est couper l'isolement\n" +"à l'intérieur de la fonction Gerber, utilisez un outil négatif\n" +"diamètre ci-dessus." + +#: flatcamGUI/ObjectUI.py:533 msgid "Buffer Solid Geometry" msgstr "Tampon Géométrie Solide" -#: AppGUI/ObjectUI.py:307 AppTools/ToolIsolation.py:581 +#: flatcamGUI/ObjectUI.py:535 msgid "" "This button is shown only when the Gerber file\n" "is loaded without buffering.\n" @@ -5512,20 +7656,21 @@ msgstr "" "En cliquant sur cela créera la géométrie en mémoire tampon\n" "requis pour l'isolement." -#: AppGUI/ObjectUI.py:332 -msgid "Isolation Routing" -msgstr "Routage d'isolement" +#: flatcamGUI/ObjectUI.py:567 +msgid "Clear N-copper" +msgstr "N-Cuivre Clair" -#: AppGUI/ObjectUI.py:334 AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:32 -#: AppTools/ToolIsolation.py:67 +#: flatcamGUI/ObjectUI.py:569 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:33 msgid "" "Create a Geometry object with\n" -"toolpaths to cut around polygons." +"toolpaths to cut all non-copper regions." msgstr "" -"Créez un objet Geometry avec\n" -"parcours d'outils pour couper autour des polygones." +"Créez un objet de géométrie avec\n" +"des parcours pour couper toutes les régions non-cuivre." -#: AppGUI/ObjectUI.py:348 AppGUI/ObjectUI.py:2089 AppTools/ToolNCC.py:599 +#: flatcamGUI/ObjectUI.py:576 flatcamGUI/ObjectUI.py:2159 +#: flatcamTools/ToolNCC.py:599 msgid "" "Create the Geometry Object\n" "for non-copper routing." @@ -5533,7 +7678,22 @@ msgstr "" "Créer l'objet de géométrie\n" "pour un routage non-cuivre." -#: AppGUI/ObjectUI.py:362 +#: flatcamGUI/ObjectUI.py:589 +msgid "Board cutout" +msgstr "Découpe de la planche" + +#: flatcamGUI/ObjectUI.py:591 +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:34 +msgid "" +"Create toolpaths to cut around\n" +"the PCB and separate it from\n" +"the original board." +msgstr "" +"Créer des parcours d'outil à découper\n" +"le PCB et séparez-le de\n" +"la planche d'origine." + +#: flatcamGUI/ObjectUI.py:598 msgid "" "Generate the geometry for\n" "the board cutout." @@ -5541,11 +7701,13 @@ msgstr "" "Générer la géométrie pour\n" "la découpe de la planche." -#: AppGUI/ObjectUI.py:379 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:32 +#: flatcamGUI/ObjectUI.py:616 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:119 msgid "Non-copper regions" msgstr "Régions non-cuivre" -#: AppGUI/ObjectUI.py:381 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:34 +#: flatcamGUI/ObjectUI.py:618 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:121 msgid "" "Create polygons covering the\n" "areas without copper on the PCB.\n" @@ -5559,13 +7721,14 @@ msgstr "" "objet. Peut être utilisé pour tout enlever\n" "cuivre provenant d'une région spécifiée." -#: AppGUI/ObjectUI.py:391 AppGUI/ObjectUI.py:432 -#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:46 -#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:79 +#: flatcamGUI/ObjectUI.py:628 flatcamGUI/ObjectUI.py:669 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:133 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:166 msgid "Boundary Margin" msgstr "Marge limite" -#: AppGUI/ObjectUI.py:393 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:48 +#: flatcamGUI/ObjectUI.py:630 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:135 msgid "" "Specify the edge of the PCB\n" "by drawing a box around all\n" @@ -5577,28 +7740,30 @@ msgstr "" "objets avec ce minimum\n" "distance." -#: AppGUI/ObjectUI.py:408 AppGUI/ObjectUI.py:446 -#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:61 -#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:92 +#: flatcamGUI/ObjectUI.py:645 flatcamGUI/ObjectUI.py:683 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:148 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:179 msgid "Rounded Geo" msgstr "Géométrie Arrondie" -#: AppGUI/ObjectUI.py:410 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:63 +#: flatcamGUI/ObjectUI.py:647 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:150 msgid "Resulting geometry will have rounded corners." msgstr "La géométrie résultante aura des coins arrondis." -#: AppGUI/ObjectUI.py:414 AppGUI/ObjectUI.py:455 -#: AppTools/ToolSolderPaste.py:373 +#: flatcamGUI/ObjectUI.py:651 flatcamGUI/ObjectUI.py:692 +#: flatcamTools/ToolSolderPaste.py:134 msgid "Generate Geo" msgstr "Générer de la Géo" -#: AppGUI/ObjectUI.py:424 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:73 -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:137 -#: AppTools/ToolPanelize.py:99 AppTools/ToolQRCode.py:201 +#: flatcamGUI/ObjectUI.py:661 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:160 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:137 +#: flatcamTools/ToolPanelize.py:101 flatcamTools/ToolQRCode.py:192 msgid "Bounding Box" msgstr "Cadre de sélection" -#: AppGUI/ObjectUI.py:426 +#: flatcamGUI/ObjectUI.py:663 msgid "" "Create a geometry surrounding the Gerber object.\n" "Square shape." @@ -5606,7 +7771,8 @@ msgstr "" "Créez une géométrie entourant l'objet Gerber.\n" "Forme carree." -#: AppGUI/ObjectUI.py:434 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:81 +#: flatcamGUI/ObjectUI.py:671 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:168 msgid "" "Distance of the edges of the box\n" "to the nearest polygon." @@ -5614,7 +7780,8 @@ msgstr "" "Distance des bords de la boîte\n" "au polygone le plus proche." -#: AppGUI/ObjectUI.py:448 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:94 +#: flatcamGUI/ObjectUI.py:685 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:181 msgid "" "If the bounding box is \n" "to have rounded corners\n" @@ -5626,32 +7793,34 @@ msgstr "" "leur rayon est égal à\n" "la marge." -#: AppGUI/ObjectUI.py:457 +#: flatcamGUI/ObjectUI.py:694 msgid "Generate the Geometry object." -msgstr "Générez l'objet Géométrie." +msgstr "Générez l'objet Geometry." -#: AppGUI/ObjectUI.py:484 +#: flatcamGUI/ObjectUI.py:721 msgid "Excellon Object" -msgstr "Excellon objet" +msgstr "Excellent objet" -#: AppGUI/ObjectUI.py:504 +#: flatcamGUI/ObjectUI.py:733 msgid "Solid circles." msgstr "Cercles pleins." -#: AppGUI/ObjectUI.py:560 AppGUI/ObjectUI.py:655 AppGUI/ObjectUI.py:2266 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:71 -#: AppTools/ToolProperties.py:166 +#: flatcamGUI/ObjectUI.py:781 flatcamGUI/ObjectUI.py:876 +#: flatcamGUI/ObjectUI.py:2336 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:71 +#: flatcamTools/ToolProperties.py:166 msgid "Drills" msgstr "Forage" -#: AppGUI/ObjectUI.py:560 AppGUI/ObjectUI.py:656 AppGUI/ObjectUI.py:2266 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:158 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:72 -#: AppTools/ToolProperties.py:168 +#: flatcamGUI/ObjectUI.py:781 flatcamGUI/ObjectUI.py:877 +#: flatcamGUI/ObjectUI.py:2336 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:158 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:72 +#: flatcamTools/ToolProperties.py:168 msgid "Slots" msgstr "Fentes" -#: AppGUI/ObjectUI.py:565 +#: flatcamGUI/ObjectUI.py:786 msgid "" "This is the Tool Number.\n" "When ToolChange is checked, on toolchange event this value\n" @@ -5664,9 +7833,10 @@ msgstr "" "cette valeur\n" "sera affiché en tant que T1, T2 ... Tn dans le code machine.\n" "\n" -"Ici, les outils sont sélectionnés pour la génération de GCode." +"Ici, les outils sont sélectionnés pour la génération de code G." -#: AppGUI/ObjectUI.py:570 AppGUI/ObjectUI.py:1407 AppTools/ToolPaint.py:141 +#: flatcamGUI/ObjectUI.py:791 flatcamGUI/ObjectUI.py:1510 +#: flatcamTools/ToolPaint.py:142 msgid "" "Tool Diameter. It's value (in current FlatCAM units) \n" "is the cut width into the material." @@ -5674,7 +7844,7 @@ msgstr "" "Diamètre de l'outil. C'est sa valeur (en unités FlatCAM actuelles)\n" "est la largeur de coupe dans le matériau." -#: AppGUI/ObjectUI.py:573 +#: flatcamGUI/ObjectUI.py:794 msgid "" "The number of Drill holes. Holes that are drilled with\n" "a drill bit." @@ -5682,7 +7852,7 @@ msgstr "" "Le nombre de trous de forage. Trous percés de\n" "un foret." -#: AppGUI/ObjectUI.py:576 +#: flatcamGUI/ObjectUI.py:797 msgid "" "The number of Slot holes. Holes that are created by\n" "milling them with an endmill bit." @@ -5690,7 +7860,7 @@ msgstr "" "Le nombre de trous de fente. Trous créés par\n" "les fraiser avec un bit de fraise." -#: AppGUI/ObjectUI.py:579 +#: flatcamGUI/ObjectUI.py:800 msgid "" "Toggle display of the drills for the current tool.\n" "This does not select the tools for G-code generation." @@ -5698,21 +7868,20 @@ msgstr "" "Basculer l'affichage des exercices pour l'outil actuel.\n" "Cela ne sélectionne pas les outils pour la génération de G-code." -#: AppGUI/ObjectUI.py:597 AppGUI/ObjectUI.py:1564 -#: AppObjects/FlatCAMExcellon.py:537 AppObjects/FlatCAMExcellon.py:836 -#: AppObjects/FlatCAMExcellon.py:852 AppObjects/FlatCAMExcellon.py:856 -#: AppObjects/FlatCAMGeometry.py:380 AppObjects/FlatCAMGeometry.py:825 -#: AppObjects/FlatCAMGeometry.py:861 AppTools/ToolIsolation.py:313 -#: AppTools/ToolIsolation.py:1051 AppTools/ToolIsolation.py:1171 -#: AppTools/ToolIsolation.py:1185 AppTools/ToolNCC.py:331 -#: AppTools/ToolNCC.py:797 AppTools/ToolNCC.py:811 AppTools/ToolNCC.py:1214 -#: AppTools/ToolPaint.py:313 AppTools/ToolPaint.py:766 -#: AppTools/ToolPaint.py:778 AppTools/ToolPaint.py:1190 +#: flatcamGUI/ObjectUI.py:818 flatcamGUI/ObjectUI.py:1662 +#: flatcamObjects/FlatCAMExcellon.py:514 flatcamObjects/FlatCAMExcellon.py:726 +#: flatcamObjects/FlatCAMExcellon.py:742 flatcamObjects/FlatCAMExcellon.py:746 +#: flatcamObjects/FlatCAMGeometry.py:323 flatcamObjects/FlatCAMGeometry.py:759 +#: flatcamObjects/FlatCAMGeometry.py:795 flatcamTools/ToolNCC.py:331 +#: flatcamTools/ToolNCC.py:797 flatcamTools/ToolNCC.py:811 +#: flatcamTools/ToolNCC.py:1196 flatcamTools/ToolPaint.py:314 +#: flatcamTools/ToolPaint.py:767 flatcamTools/ToolPaint.py:779 +#: flatcamTools/ToolPaint.py:1171 msgid "Parameters for" msgstr "Paramètres pour" -#: AppGUI/ObjectUI.py:600 AppGUI/ObjectUI.py:1567 AppTools/ToolIsolation.py:316 -#: AppTools/ToolNCC.py:334 AppTools/ToolPaint.py:316 +#: flatcamGUI/ObjectUI.py:821 flatcamGUI/ObjectUI.py:1665 +#: flatcamTools/ToolNCC.py:334 flatcamTools/ToolPaint.py:317 msgid "" "The data used for creating GCode.\n" "Each tool store it's own set of such data." @@ -5720,8 +7889,8 @@ msgstr "" "Les données utilisées pour créer le GCode.\n" "Chaque outil stocke son propre ensemble de données." -#: AppGUI/ObjectUI.py:626 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:48 +#: flatcamGUI/ObjectUI.py:847 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:48 msgid "" "Operation type:\n" "- Drilling -> will drill the drills/slots associated with this tool\n" @@ -5731,18 +7900,18 @@ msgstr "" "- Perçage -> va percer les forets / emplacements associés à cet outil\n" "- Fraisage -> fraisera les forets / fentes" -#: AppGUI/ObjectUI.py:632 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:54 +#: flatcamGUI/ObjectUI.py:853 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:54 msgid "Drilling" msgstr "Forage" -#: AppGUI/ObjectUI.py:633 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:55 +#: flatcamGUI/ObjectUI.py:854 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:55 msgid "Milling" msgstr "Fraisage" -#: AppGUI/ObjectUI.py:648 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:64 +#: flatcamGUI/ObjectUI.py:869 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:64 msgid "" "Milling type:\n" "- Drills -> will mill the drills associated with this tool\n" @@ -5755,25 +7924,25 @@ msgstr "" "- Les deux -> fraisera les forets et les fraises ou tout ce qui est " "disponible" -#: AppGUI/ObjectUI.py:657 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:73 -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:199 -#: AppTools/ToolFilm.py:241 +#: flatcamGUI/ObjectUI.py:878 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:73 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:210 +#: flatcamTools/ToolFilm.py:258 msgid "Both" msgstr "Tous les deux" -#: AppGUI/ObjectUI.py:665 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:80 +#: flatcamGUI/ObjectUI.py:886 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:80 msgid "Milling Diameter" -msgstr "Diam de fraisage" +msgstr "Dia. de fraisage" -#: AppGUI/ObjectUI.py:667 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:82 +#: flatcamGUI/ObjectUI.py:888 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:82 msgid "The diameter of the tool who will do the milling" msgstr "Le diamètre de l'outil qui fera le fraisage" -#: AppGUI/ObjectUI.py:681 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:95 +#: flatcamGUI/ObjectUI.py:902 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:95 msgid "" "Drill depth (negative)\n" "below the copper surface." @@ -5781,19 +7950,19 @@ msgstr "" "Profondeur de forage (négatif)\n" "sous la surface de cuivre." -#: AppGUI/ObjectUI.py:700 AppGUI/ObjectUI.py:1626 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:113 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:69 -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:79 -#: AppTools/ToolCutOut.py:159 +#: flatcamGUI/ObjectUI.py:921 flatcamGUI/ObjectUI.py:1724 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:113 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:68 +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:79 +#: flatcamTools/ToolCutOut.py:159 msgid "Multi-Depth" msgstr "Multi-profondeur" -#: AppGUI/ObjectUI.py:703 AppGUI/ObjectUI.py:1629 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:116 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:72 -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:82 -#: AppTools/ToolCutOut.py:162 +#: flatcamGUI/ObjectUI.py:924 flatcamGUI/ObjectUI.py:1727 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:116 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:71 +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:82 +#: flatcamTools/ToolCutOut.py:162 msgid "" "Use multiple passes to limit\n" "the cut depth in each pass. Will\n" @@ -5805,15 +7974,15 @@ msgstr "" "couper plusieurs fois jusqu'à ce que Cut Z soit\n" "atteint." -#: AppGUI/ObjectUI.py:716 AppGUI/ObjectUI.py:1643 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:128 -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:94 -#: AppTools/ToolCutOut.py:176 +#: flatcamGUI/ObjectUI.py:937 flatcamGUI/ObjectUI.py:1741 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:128 +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:94 +#: flatcamTools/ToolCutOut.py:176 msgid "Depth of each pass (positive)." msgstr "Profondeur de chaque passage (positif)." -#: AppGUI/ObjectUI.py:727 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:136 +#: flatcamGUI/ObjectUI.py:948 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:136 msgid "" "Tool height when travelling\n" "across the XY plane." @@ -5821,8 +7990,8 @@ msgstr "" "Hauteur de l'outil en voyage\n" "à travers le plan XY." -#: AppGUI/ObjectUI.py:748 AppGUI/ObjectUI.py:1673 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:188 +#: flatcamGUI/ObjectUI.py:969 flatcamGUI/ObjectUI.py:1771 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:187 msgid "" "Cutting speed in the XY\n" "plane in units per minute" @@ -5830,8 +7999,8 @@ msgstr "" "Vitesse de coupe dans le XY\n" "avion en unités par minute" -#: AppGUI/ObjectUI.py:763 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:209 +#: flatcamGUI/ObjectUI.py:984 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:209 msgid "" "Tool speed while drilling\n" "(in units per minute).\n" @@ -5843,14 +8012,14 @@ msgstr "" "Ce qu'on appelle \"avance\".\n" "Ceci est pour le mouvement linéaire G01." -#: AppGUI/ObjectUI.py:778 AppGUI/ObjectUI.py:1700 -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:80 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:67 +#: flatcamGUI/ObjectUI.py:999 flatcamGUI/ObjectUI.py:1798 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:80 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:64 msgid "Feedrate Rapids" msgstr "Avance rapide" -#: AppGUI/ObjectUI.py:780 -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:82 +#: flatcamGUI/ObjectUI.py:1001 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:82 msgid "" "Tool speed while drilling\n" "(in units per minute).\n" @@ -5864,15 +8033,15 @@ msgstr "" "C'est utile seulement pour Marlin,\n" "ignorer pour les autres cas." -#: AppGUI/ObjectUI.py:800 AppGUI/ObjectUI.py:1720 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:85 +#: flatcamGUI/ObjectUI.py:1021 flatcamGUI/ObjectUI.py:1818 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:82 msgid "Re-cut" msgstr "Re-coupé" -#: AppGUI/ObjectUI.py:802 AppGUI/ObjectUI.py:815 AppGUI/ObjectUI.py:1722 -#: AppGUI/ObjectUI.py:1734 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:87 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:99 +#: flatcamGUI/ObjectUI.py:1023 flatcamGUI/ObjectUI.py:1036 +#: flatcamGUI/ObjectUI.py:1820 flatcamGUI/ObjectUI.py:1832 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:84 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:96 msgid "" "In order to remove possible\n" "copper leftovers where first cut\n" @@ -5884,14 +8053,15 @@ msgstr "" "rencontre avec la dernière coupe, nous générons un\n" "coupe étendue sur la première section coupée." -#: AppGUI/ObjectUI.py:828 AppGUI/ObjectUI.py:1743 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:217 -#: AppObjects/FlatCAMExcellon.py:1512 AppObjects/FlatCAMGeometry.py:1687 +#: flatcamGUI/ObjectUI.py:1049 flatcamGUI/ObjectUI.py:1841 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:216 +#: flatcamObjects/FlatCAMExcellon.py:1332 +#: flatcamObjects/FlatCAMGeometry.py:1622 msgid "Spindle speed" msgstr "Vitesse de broche" -#: AppGUI/ObjectUI.py:830 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:224 +#: flatcamGUI/ObjectUI.py:1051 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:224 msgid "" "Speed of the spindle\n" "in RPM (optional)" @@ -5899,9 +8069,9 @@ msgstr "" "Vitesse de la broche\n" "en tours / minute (optionnel)" -#: AppGUI/ObjectUI.py:845 AppGUI/ObjectUI.py:1762 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:238 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:235 +#: flatcamGUI/ObjectUI.py:1066 flatcamGUI/ObjectUI.py:1860 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:238 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:234 msgid "" "Pause to allow the spindle to reach its\n" "speed before cutting." @@ -5909,19 +8079,19 @@ msgstr "" "Pause pour permettre à la broche d’atteindre son\n" "vitesse avant de couper." -#: AppGUI/ObjectUI.py:856 AppGUI/ObjectUI.py:1772 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:246 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:240 +#: flatcamGUI/ObjectUI.py:1077 flatcamGUI/ObjectUI.py:1870 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:246 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:239 msgid "Number of time units for spindle to dwell." msgstr "Nombre d'unités de temps pendant lesquelles la broche s'arrête." -#: AppGUI/ObjectUI.py:866 -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:46 +#: flatcamGUI/ObjectUI.py:1087 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:46 msgid "Offset Z" msgstr "Décalage Z" -#: AppGUI/ObjectUI.py:868 -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:48 +#: flatcamGUI/ObjectUI.py:1089 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:48 msgid "" "Some drill bits (the larger ones) need to drill deeper\n" "to create the desired exit hole diameter due of the tip shape.\n" @@ -5932,13 +8102,13 @@ msgstr "" "la pointe.\n" "La valeur ici peut compenser le paramètre Cut Z." -#: AppGUI/ObjectUI.py:928 AppGUI/ObjectUI.py:1826 AppTools/ToolIsolation.py:412 -#: AppTools/ToolNCC.py:492 AppTools/ToolPaint.py:422 +#: flatcamGUI/ObjectUI.py:1149 flatcamGUI/ObjectUI.py:1924 +#: flatcamTools/ToolNCC.py:492 flatcamTools/ToolPaint.py:423 msgid "Apply parameters to all tools" msgstr "Appliquer des paramètres à tous les outils" -#: AppGUI/ObjectUI.py:930 AppGUI/ObjectUI.py:1828 AppTools/ToolIsolation.py:414 -#: AppTools/ToolNCC.py:494 AppTools/ToolPaint.py:424 +#: flatcamGUI/ObjectUI.py:1151 flatcamGUI/ObjectUI.py:1926 +#: flatcamTools/ToolNCC.py:494 flatcamTools/ToolPaint.py:425 msgid "" "The parameters in the current form will be applied\n" "on all the tools from the Tool Table." @@ -5946,22 +8116,22 @@ msgstr "" "Les paramètres du formulaire actuel seront appliqués\n" "sur tous les outils de la table d'outils." -#: AppGUI/ObjectUI.py:941 AppGUI/ObjectUI.py:1839 AppTools/ToolIsolation.py:425 -#: AppTools/ToolNCC.py:505 AppTools/ToolPaint.py:435 +#: flatcamGUI/ObjectUI.py:1162 flatcamGUI/ObjectUI.py:1937 +#: flatcamTools/ToolNCC.py:505 flatcamTools/ToolPaint.py:436 msgid "Common Parameters" msgstr "Paramètres communs" -#: AppGUI/ObjectUI.py:943 AppGUI/ObjectUI.py:1841 AppTools/ToolIsolation.py:427 -#: AppTools/ToolNCC.py:507 AppTools/ToolPaint.py:437 +#: flatcamGUI/ObjectUI.py:1164 flatcamGUI/ObjectUI.py:1939 +#: flatcamTools/ToolNCC.py:507 flatcamTools/ToolPaint.py:438 msgid "Parameters that are common for all tools." msgstr "Paramètres communs à tous les outils." -#: AppGUI/ObjectUI.py:948 AppGUI/ObjectUI.py:1846 +#: flatcamGUI/ObjectUI.py:1169 flatcamGUI/ObjectUI.py:1944 msgid "Tool change Z" msgstr "Changement d'outil Z" -#: AppGUI/ObjectUI.py:950 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:154 +#: flatcamGUI/ObjectUI.py:1171 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:154 msgid "" "Include tool-change sequence\n" "in G-Code (Pause for tool change)." @@ -5969,9 +8139,9 @@ msgstr "" "Inclure la séquence de changement d'outil\n" "dans G-Code (Pause pour changement d’outil)." -#: AppGUI/ObjectUI.py:957 AppGUI/ObjectUI.py:1857 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:162 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:135 +#: flatcamGUI/ObjectUI.py:1178 flatcamGUI/ObjectUI.py:1955 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:162 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:134 msgid "" "Z-axis position (height) for\n" "tool change." @@ -5979,8 +8149,8 @@ msgstr "" "Position de l'axe Z (hauteur) pour\n" "changement d'outil." -#: AppGUI/ObjectUI.py:974 -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:71 +#: flatcamGUI/ObjectUI.py:1195 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:71 msgid "" "Height of the tool just after start.\n" "Delete the value if you don't need this feature." @@ -5988,15 +8158,15 @@ msgstr "" "Hauteur de l'outil juste après le démarrage.\n" "Supprimez la valeur si vous n'avez pas besoin de cette fonctionnalité." -#: AppGUI/ObjectUI.py:983 AppGUI/ObjectUI.py:1885 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:178 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:154 +#: flatcamGUI/ObjectUI.py:1204 flatcamGUI/ObjectUI.py:1983 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:178 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:153 msgid "End move Z" msgstr "Fin du mouve. Z" -#: AppGUI/ObjectUI.py:985 AppGUI/ObjectUI.py:1887 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:180 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:156 +#: flatcamGUI/ObjectUI.py:1206 flatcamGUI/ObjectUI.py:1985 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:180 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:155 msgid "" "Height of the tool after\n" "the last move at the end of the job." @@ -6004,15 +8174,15 @@ msgstr "" "Hauteur de l'outil après\n" "le dernier mouvement à la fin du travail." -#: AppGUI/ObjectUI.py:1002 AppGUI/ObjectUI.py:1904 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:195 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:174 +#: flatcamGUI/ObjectUI.py:1223 flatcamGUI/ObjectUI.py:2002 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:195 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:173 msgid "End move X,Y" msgstr "Fin de coup X, Y" -#: AppGUI/ObjectUI.py:1004 AppGUI/ObjectUI.py:1906 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:197 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:176 +#: flatcamGUI/ObjectUI.py:1225 flatcamGUI/ObjectUI.py:2004 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:197 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:175 msgid "" "End move X,Y position. In format (x,y).\n" "If no value is entered then there is no move\n" @@ -6022,15 +8192,15 @@ msgstr "" "Si aucune valeur n'est entrée, il n'y a pas de mouvement\n" "sur l'avion X, Y à la fin du travail." -#: AppGUI/ObjectUI.py:1014 AppGUI/ObjectUI.py:1780 -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:96 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:108 +#: flatcamGUI/ObjectUI.py:1235 flatcamGUI/ObjectUI.py:1878 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:96 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:105 msgid "Probe Z depth" msgstr "Prof.r de la sonde Z" -#: AppGUI/ObjectUI.py:1016 AppGUI/ObjectUI.py:1782 -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:98 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:110 +#: flatcamGUI/ObjectUI.py:1237 flatcamGUI/ObjectUI.py:1880 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:98 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:107 msgid "" "The maximum depth that the probe is allowed\n" "to probe. Negative value, in current units." @@ -6038,23 +8208,23 @@ msgstr "" "La profondeur maximale autorisée pour la sonde\n" "sonder. Valeur négative, en unités actuelles." -#: AppGUI/ObjectUI.py:1033 AppGUI/ObjectUI.py:1797 -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:109 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:123 +#: flatcamGUI/ObjectUI.py:1254 flatcamGUI/ObjectUI.py:1895 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:109 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:120 msgid "Feedrate Probe" msgstr "Sonde d'avance" -#: AppGUI/ObjectUI.py:1035 AppGUI/ObjectUI.py:1799 -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:111 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:125 +#: flatcamGUI/ObjectUI.py:1256 flatcamGUI/ObjectUI.py:1897 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:111 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:122 msgid "The feedrate used while the probe is probing." msgstr "L'avance utilisée pendant le sondage." -#: AppGUI/ObjectUI.py:1051 +#: flatcamGUI/ObjectUI.py:1272 msgid "Preprocessor E" msgstr "Post-processeur E" -#: AppGUI/ObjectUI.py:1053 +#: flatcamGUI/ObjectUI.py:1274 msgid "" "The preprocessor JSON file that dictates\n" "Gcode output for Excellon Objects." @@ -6062,11 +8232,11 @@ msgstr "" "Le fichier JSON du préprocesseur qui dicte\n" "Sortie Gcode pour Excellon Objects." -#: AppGUI/ObjectUI.py:1063 +#: flatcamGUI/ObjectUI.py:1284 msgid "Preprocessor G" msgstr "Post-processeur G" -#: AppGUI/ObjectUI.py:1065 +#: flatcamGUI/ObjectUI.py:1286 msgid "" "The preprocessor JSON file that dictates\n" "Gcode output for Geometry (Milling) Objects." @@ -6074,136 +8244,7 @@ msgstr "" "Le fichier JSON du préprocesseur qui dicte\n" "Sortie Gcode pour les objets de géométrie (fraisage)." -#: AppGUI/ObjectUI.py:1079 AppGUI/ObjectUI.py:1934 -msgid "Add exclusion areas" -msgstr "Ajouter des zones d'exclusion" - -#: AppGUI/ObjectUI.py:1082 AppGUI/ObjectUI.py:1937 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:212 -msgid "" -"Include exclusion areas.\n" -"In those areas the travel of the tools\n" -"is forbidden." -msgstr "" -"Inclure les zones d'exclusion.\n" -"Dans ces zones, le déplacement des outils\n" -"est interdit." - -#: AppGUI/ObjectUI.py:1103 AppGUI/ObjectUI.py:1958 -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:48 -#: AppTools/ToolCalibration.py:186 AppTools/ToolNCC.py:109 -#: AppTools/ToolPaint.py:102 AppTools/ToolPanelize.py:98 -msgid "Object" -msgstr "Objet" - -#: AppGUI/ObjectUI.py:1103 AppGUI/ObjectUI.py:1122 AppGUI/ObjectUI.py:1958 -#: AppGUI/ObjectUI.py:1977 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:232 -msgid "Strategy" -msgstr "Stratégie" - -#: AppGUI/ObjectUI.py:1103 AppGUI/ObjectUI.py:1134 AppGUI/ObjectUI.py:1958 -#: AppGUI/ObjectUI.py:1989 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:244 -msgid "Over Z" -msgstr "Plus de Z" - -#: AppGUI/ObjectUI.py:1105 AppGUI/ObjectUI.py:1960 -msgid "This is the Area ID." -msgstr "Il s'agit de l'ID de zone." - -#: AppGUI/ObjectUI.py:1107 AppGUI/ObjectUI.py:1962 -msgid "Type of the object where the exclusion area was added." -msgstr "Type de l'objet où la zone d'exclusion a été ajoutée." - -#: AppGUI/ObjectUI.py:1109 AppGUI/ObjectUI.py:1964 -msgid "" -"The strategy used for exclusion area. Go around the exclusion areas or over " -"it." -msgstr "" -"La stratégie utilisée pour la zone d'exclusion. Faites le tour des zones " -"d'exclusion ou au-dessus." - -#: AppGUI/ObjectUI.py:1111 AppGUI/ObjectUI.py:1966 -msgid "" -"If the strategy is to go over the area then this is the height at which the " -"tool will go to avoid the exclusion area." -msgstr "" -"Si la stratégie consiste à dépasser la zone, il s'agit de la hauteur à " -"laquelle l'outil ira pour éviter la zone d'exclusion." - -#: AppGUI/ObjectUI.py:1123 AppGUI/ObjectUI.py:1978 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:233 -msgid "" -"The strategy followed when encountering an exclusion area.\n" -"Can be:\n" -"- Over -> when encountering the area, the tool will go to a set height\n" -"- Around -> will avoid the exclusion area by going around the area" -msgstr "" -"La stratégie a suivi lors de la rencontre d'une zone d'exclusion.\n" -"Peut être:\n" -"- Plus -> lors de la rencontre de la zone, l'outil ira à une hauteur " -"définie\n" -"- Autour -> évitera la zone d'exclusion en faisant le tour de la zone" - -#: AppGUI/ObjectUI.py:1127 AppGUI/ObjectUI.py:1982 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:237 -msgid "Over" -msgstr "Plus de" - -#: AppGUI/ObjectUI.py:1128 AppGUI/ObjectUI.py:1983 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:238 -msgid "Around" -msgstr "Environ" - -#: AppGUI/ObjectUI.py:1135 AppGUI/ObjectUI.py:1990 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:245 -msgid "" -"The height Z to which the tool will rise in order to avoid\n" -"an interdiction area." -msgstr "" -"La hauteur Z à laquelle l'outil va s'élever afin d'éviter\n" -"une zone d'interdiction." - -#: AppGUI/ObjectUI.py:1145 AppGUI/ObjectUI.py:2000 -msgid "Add area:" -msgstr "Ajouter une zone:" - -#: AppGUI/ObjectUI.py:1146 AppGUI/ObjectUI.py:2001 -msgid "Add an Exclusion Area." -msgstr "Ajoutez une zone d'exclusion." - -#: AppGUI/ObjectUI.py:1152 AppGUI/ObjectUI.py:2007 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:222 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:295 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:324 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:288 -#: AppTools/ToolIsolation.py:542 AppTools/ToolNCC.py:580 -#: AppTools/ToolPaint.py:523 -msgid "The kind of selection shape used for area selection." -msgstr "Type de forme de sélection utilisé pour la sélection de zone." - -#: AppGUI/ObjectUI.py:1162 AppGUI/ObjectUI.py:2017 -#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:32 -#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:42 -#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:32 -#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:32 -msgid "Delete All" -msgstr "Supprimer tout" - -#: AppGUI/ObjectUI.py:1163 AppGUI/ObjectUI.py:2018 -msgid "Delete all exclusion areas." -msgstr "Supprimez toutes les zones d'exclusion." - -#: AppGUI/ObjectUI.py:1166 AppGUI/ObjectUI.py:2021 -msgid "Delete Selected" -msgstr "Supprimer sélectionnée" - -#: AppGUI/ObjectUI.py:1167 AppGUI/ObjectUI.py:2022 -msgid "Delete all exclusion areas that are selected in the table." -msgstr "Supprimez toutes les zones d'exclusion sélectionnées dans le tableau." - -#: AppGUI/ObjectUI.py:1191 AppGUI/ObjectUI.py:2038 +#: flatcamGUI/ObjectUI.py:1310 flatcamGUI/ObjectUI.py:2108 msgid "" "Add / Select at least one tool in the tool-table.\n" "Click the # header to select all, or Ctrl + LMB\n" @@ -6213,23 +8254,23 @@ msgstr "" "Cliquez sur l'en-tête # pour tout sélectionner ou sur Ctrl + LMB\n" "pour une sélection personnalisée d'outils." -#: AppGUI/ObjectUI.py:1199 AppGUI/ObjectUI.py:2045 +#: flatcamGUI/ObjectUI.py:1318 flatcamGUI/ObjectUI.py:2115 msgid "Generate CNCJob object" -msgstr "Générer l'objet CNC Job" +msgstr "Générer un objet CNCJob" -#: AppGUI/ObjectUI.py:1201 +#: flatcamGUI/ObjectUI.py:1320 msgid "" "Generate the CNC Job.\n" "If milling then an additional Geometry object will be created" msgstr "" "Générez le travail CNC.\n" -"En cas de fraisage, un objet Géométrie supplémentaire sera créé" +"En cas de fraisage, un objet Geometry supplémentaire sera créé" -#: AppGUI/ObjectUI.py:1218 +#: flatcamGUI/ObjectUI.py:1337 msgid "Milling Geometry" msgstr "Géo. de fraisage" -#: AppGUI/ObjectUI.py:1220 +#: flatcamGUI/ObjectUI.py:1339 msgid "" "Create Geometry for milling holes.\n" "Select from the Tools Table above the hole dias to be\n" @@ -6239,16 +8280,17 @@ msgstr "" "Sélectionnez dans le tableau des outils au-dessus du diamètre du trou à\n" "fraisé. Utilisez la colonne # pour effectuer la sélection." -#: AppGUI/ObjectUI.py:1228 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:296 +#: flatcamGUI/ObjectUI.py:1347 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:296 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:45 msgid "Diameter of the cutting tool." msgstr "Diamètre de l'outil de coupe." -#: AppGUI/ObjectUI.py:1238 +#: flatcamGUI/ObjectUI.py:1357 msgid "Mill Drills" msgstr "Fraiser les Forets" -#: AppGUI/ObjectUI.py:1240 +#: flatcamGUI/ObjectUI.py:1359 msgid "" "Create the Geometry Object\n" "for milling DRILLS toolpaths." @@ -6256,11 +8298,11 @@ msgstr "" "Créer l'objet de géométrie\n" "pour fraiser des parcours d’outils." -#: AppGUI/ObjectUI.py:1258 +#: flatcamGUI/ObjectUI.py:1377 msgid "Mill Slots" msgstr "Fraiser les Fentes" -#: AppGUI/ObjectUI.py:1260 +#: flatcamGUI/ObjectUI.py:1379 msgid "" "Create the Geometry Object\n" "for milling SLOTS toolpaths." @@ -6268,11 +8310,11 @@ msgstr "" "Créer l'objet de géométrie\n" "pour fraiser des parcours d’outils." -#: AppGUI/ObjectUI.py:1302 AppTools/ToolCutOut.py:319 +#: flatcamGUI/ObjectUI.py:1421 flatcamTools/ToolCutOut.py:319 msgid "Geometry Object" msgstr "Objet de géométrie" -#: AppGUI/ObjectUI.py:1364 +#: flatcamGUI/ObjectUI.py:1467 msgid "" "Tools in this Geometry object used for cutting.\n" "The 'Offset' entry will set an offset for the cut.\n" @@ -6287,7 +8329,7 @@ msgid "" "grayed out and Cut Z is automatically calculated from the newly \n" "showed UI form entries named V-Tip Dia and V-Tip Angle." msgstr "" -"Outils dans cet objet Géométrie utilisé pour la découpe.\n" +"Outils dans cet objet Geometry utilisé pour la découpe.\n" "L'entrée 'Décalage' définira un décalage pour la coupe.\n" "Le «décalage» peut être à l'intérieur, à l'extérieur, sur le chemin (aucun) " "et personnalisé.\n" @@ -6300,27 +8342,27 @@ msgstr "" "sélectionnée.\n" "défini sur Isolation, le paramètre CutZ sous la forme d’UI est\n" "grisé et Cut Z est automatiquement calculé à partir de la nouvelle\n" -"a montré des entrées de formulaire d’interface utilisateur nommées V-Tip " -"Diam et V-Tip Angle." +"a montré des entrées de formulaire d’interface utilisateur nommées V-Tip Dia " +"et V-Tip Angle." -#: AppGUI/ObjectUI.py:1381 AppGUI/ObjectUI.py:2243 -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:40 +#: flatcamGUI/ObjectUI.py:1484 flatcamGUI/ObjectUI.py:2313 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:40 msgid "Plot Object" msgstr "Dessiner un objet" -#: AppGUI/ObjectUI.py:1394 AppGUI/ObjectUI.py:2256 AppGUI/ObjectUI.py:2266 -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:138 -#: AppTools/ToolCopperThieving.py:225 +#: flatcamGUI/ObjectUI.py:1497 flatcamGUI/ObjectUI.py:2326 +#: flatcamGUI/ObjectUI.py:2336 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:138 +#: flatcamTools/ToolCopperThieving.py:221 msgid "Dia" -msgstr "Diam" +msgstr "Dia" -#: AppGUI/ObjectUI.py:1394 AppGUI/ObjectUI.py:2256 -#: AppTools/ToolIsolation.py:130 AppTools/ToolNCC.py:132 -#: AppTools/ToolPaint.py:127 +#: flatcamGUI/ObjectUI.py:1497 flatcamGUI/ObjectUI.py:2326 +#: flatcamTools/ToolNCC.py:132 flatcamTools/ToolPaint.py:128 msgid "TT" msgstr "TT" -#: AppGUI/ObjectUI.py:1401 +#: flatcamGUI/ObjectUI.py:1504 msgid "" "This is the Tool Number.\n" "When ToolChange is checked, on toolchange event this value\n" @@ -6331,7 +8373,7 @@ msgstr "" "cette valeur\n" "sera montré comme un T1, T2 ... Tn" -#: AppGUI/ObjectUI.py:1412 +#: flatcamGUI/ObjectUI.py:1515 msgid "" "The value for the Offset can be:\n" "- Path -> There is no offset, the tool cut will be done through the geometry " @@ -6347,7 +8389,7 @@ msgstr "" "créer une \"poche\".\n" "- Extérieur -> L'outil coupé suivra la ligne géométrique à l'extérieur." -#: AppGUI/ObjectUI.py:1419 +#: flatcamGUI/ObjectUI.py:1522 msgid "" "The (Operation) Type has only informative value. Usually the UI form " "values \n" @@ -6369,7 +8411,7 @@ msgstr "" "Pour l'isolation, nous avons besoin d'une vitesse d'avance plus faible car " "elle utilise un foret à pointe fine." -#: AppGUI/ObjectUI.py:1428 +#: flatcamGUI/ObjectUI.py:1531 msgid "" "The Tool Type (TT) can be:\n" "- Circular with 1 ... 4 teeth -> it is informative only. Being circular the " @@ -6400,7 +8442,7 @@ msgstr "" "Le choix automatique du type d'outil en forme de V sélectionne le type " "d'opération comme isolement." -#: AppGUI/ObjectUI.py:1440 +#: flatcamGUI/ObjectUI.py:1543 msgid "" "Plot column. It is visible only for MultiGeo geometries, meaning geometries " "that holds the geometry\n" @@ -6418,7 +8460,7 @@ msgstr "" "activer / désactiver le tracé sur le canevas.\n" "pour l'outil correspondant." -#: AppGUI/ObjectUI.py:1458 +#: flatcamGUI/ObjectUI.py:1561 msgid "" "The value to offset the cut when \n" "the Offset type selected is 'Offset'.\n" @@ -6430,30 +8472,28 @@ msgstr "" "La valeur peut être positive pour 'dehors'\n" "coupé et négatif pour «à l'intérieur» coupé." -#: AppGUI/ObjectUI.py:1477 AppTools/ToolIsolation.py:195 -#: AppTools/ToolIsolation.py:1257 AppTools/ToolNCC.py:209 -#: AppTools/ToolNCC.py:923 AppTools/ToolPaint.py:191 AppTools/ToolPaint.py:848 -#: AppTools/ToolSolderPaste.py:567 +#: flatcamGUI/ObjectUI.py:1580 flatcamTools/ToolNCC.py:209 +#: flatcamTools/ToolNCC.py:923 flatcamTools/ToolPaint.py:192 +#: flatcamTools/ToolPaint.py:849 flatcamTools/ToolSolderPaste.py:559 msgid "New Tool" msgstr "Nouvel Outil" -#: AppGUI/ObjectUI.py:1496 AppTools/ToolIsolation.py:278 -#: AppTools/ToolNCC.py:296 AppTools/ToolPaint.py:278 +#: flatcamGUI/ObjectUI.py:1597 msgid "" "Add a new tool to the Tool Table\n" -"with the diameter specified above." +"with the specified diameter." msgstr "" "Ajouter un nouvel outil à la table d'outils\n" -"avec le diamètre spécifié ci-dessus." +"avec le diamètre spécifié." -#: AppGUI/ObjectUI.py:1500 AppTools/ToolIsolation.py:282 -#: AppTools/ToolIsolation.py:613 AppTools/ToolNCC.py:300 -#: AppTools/ToolNCC.py:634 AppTools/ToolPaint.py:282 AppTools/ToolPaint.py:678 +#: flatcamGUI/ObjectUI.py:1602 flatcamTools/ToolNCC.py:300 +#: flatcamTools/ToolNCC.py:634 flatcamTools/ToolPaint.py:283 +#: flatcamTools/ToolPaint.py:679 msgid "Add from DB" msgstr "Ajouter depuis la BD" -#: AppGUI/ObjectUI.py:1502 AppTools/ToolIsolation.py:284 -#: AppTools/ToolNCC.py:302 AppTools/ToolPaint.py:284 +#: flatcamGUI/ObjectUI.py:1604 flatcamTools/ToolNCC.py:302 +#: flatcamTools/ToolPaint.py:285 msgid "" "Add a new tool to the Tool Table\n" "from the Tool DataBase." @@ -6461,7 +8501,7 @@ msgstr "" "Ajouter un nouvel outil à la table d'outils\n" "à partir de la base de données d'outils." -#: AppGUI/ObjectUI.py:1521 +#: flatcamGUI/ObjectUI.py:1619 msgid "" "Copy a selection of tools in the Tool Table\n" "by first selecting a row in the Tool Table." @@ -6469,7 +8509,7 @@ msgstr "" "Copier une sélection d'outils dans la table d'outils\n" "en sélectionnant d'abord une ligne dans la table d'outils." -#: AppGUI/ObjectUI.py:1527 +#: flatcamGUI/ObjectUI.py:1625 msgid "" "Delete a selection of tools in the Tool Table\n" "by first selecting a row in the Tool Table." @@ -6477,56 +8517,8 @@ msgstr "" "Supprimer une sélection d'outils dans la table d'outils\n" "en sélectionnant d'abord une ligne dans la table d'outils." -#: AppGUI/ObjectUI.py:1574 AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:89 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:72 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:78 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:85 -#: AppTools/ToolIsolation.py:219 AppTools/ToolNCC.py:233 -#: AppTools/ToolNCC.py:240 AppTools/ToolPaint.py:215 -msgid "V-Tip Dia" -msgstr "Diam V-Tip" - -#: AppGUI/ObjectUI.py:1577 AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:91 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:74 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:80 -#: AppTools/ToolIsolation.py:221 AppTools/ToolNCC.py:235 -#: AppTools/ToolPaint.py:217 -msgid "The tip diameter for V-Shape Tool" -msgstr "Le diamètre de la pointe pour l'outil en forme de V" - -#: AppGUI/ObjectUI.py:1589 AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:101 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:84 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:91 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:99 -#: AppTools/ToolIsolation.py:232 AppTools/ToolNCC.py:246 -#: AppTools/ToolNCC.py:254 AppTools/ToolPaint.py:228 -msgid "V-Tip Angle" -msgstr "Angle en V-tip" - -#: AppGUI/ObjectUI.py:1592 AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:86 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:93 -#: AppTools/ToolIsolation.py:234 AppTools/ToolNCC.py:248 -#: AppTools/ToolPaint.py:230 -msgid "" -"The tip angle for V-Shape Tool.\n" -"In degree." -msgstr "" -"L'angle de pointe pour l'outil en forme de V\n" -"En degré." - -#: AppGUI/ObjectUI.py:1608 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:51 -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:61 -#: AppObjects/FlatCAMGeometry.py:1238 AppTools/ToolCutOut.py:141 -msgid "" -"Cutting depth (negative)\n" -"below the copper surface." -msgstr "" -"Profondeur de coupe (négatif)\n" -"sous la surface de cuivre." - -#: AppGUI/ObjectUI.py:1654 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:104 +#: flatcamGUI/ObjectUI.py:1752 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:103 msgid "" "Height of the tool when\n" "moving without cutting." @@ -6534,8 +8526,8 @@ msgstr "" "Hauteur de l'outil quand\n" "se déplacer sans couper." -#: AppGUI/ObjectUI.py:1687 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:203 +#: flatcamGUI/ObjectUI.py:1785 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:202 msgid "" "Cutting speed in the XY\n" "plane in units per minute.\n" @@ -6545,8 +8537,8 @@ msgstr "" "avion en unités par minute.\n" "Cela s'appelle aussi plonger." -#: AppGUI/ObjectUI.py:1702 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:69 +#: flatcamGUI/ObjectUI.py:1800 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:66 msgid "" "Cutting speed in the XY plane\n" "(in units per minute).\n" @@ -6560,8 +8552,8 @@ msgstr "" "C'est utile seulement pour Marlin,\n" "ignorer pour les autres cas." -#: AppGUI/ObjectUI.py:1746 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:220 +#: flatcamGUI/ObjectUI.py:1844 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:219 msgid "" "Speed of the spindle in RPM (optional).\n" "If LASER preprocessor is used,\n" @@ -6571,8 +8563,8 @@ msgstr "" "Si le post-processeur LASER est utilisé,\n" "cette valeur est la puissance du laser." -#: AppGUI/ObjectUI.py:1849 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:125 +#: flatcamGUI/ObjectUI.py:1947 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:124 msgid "" "Include tool-change sequence\n" "in the Machine Code (Pause for tool change)." @@ -6580,8 +8572,8 @@ msgstr "" "Inclure la séquence de changement d'outil\n" "dans le code machine (pause pour changement d'outil)." -#: AppGUI/ObjectUI.py:1918 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:257 +#: flatcamGUI/ObjectUI.py:2016 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:256 msgid "" "The Preprocessor file that dictates\n" "the Machine Code (like GCode, RML, HPGL) output." @@ -6589,15 +8581,107 @@ msgstr "" "Le fichier post-processeur qui dicte\n" "le code machine (comme GCode, RML, HPGL." -#: AppGUI/ObjectUI.py:2047 Common.py:426 Common.py:559 Common.py:619 +#: flatcamGUI/ObjectUI.py:2028 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:201 +msgid "Exclusion areas" +msgstr "Zones d'exclusion" + +#: flatcamGUI/ObjectUI.py:2031 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:204 +msgid "" +"Include exclusion areas.\n" +"In those areas the travel of the tools\n" +"is forbidden." +msgstr "" +"Inclure les zones d'exclusion.\n" +"Dans ces zones, le déplacement des outils\n" +"est interdit." + +#: flatcamGUI/ObjectUI.py:2053 +msgid "Add area" +msgstr "Ajouter une zone" + +#: flatcamGUI/ObjectUI.py:2054 +msgid "Add an Exclusion Area." +msgstr "Ajoutez une zone d'exclusion." + +#: flatcamGUI/ObjectUI.py:2058 +msgid "Clear areas" +msgstr "Zones claires" + +#: flatcamGUI/ObjectUI.py:2059 +msgid "Delete all exclusion areas." +msgstr "Supprimez toutes les zones d'exclusion." + +#: flatcamGUI/ObjectUI.py:2068 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:212 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:322 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:286 +#: flatcamTools/ToolNCC.py:578 flatcamTools/ToolPaint.py:522 +msgid "Shape" +msgstr "Forme" + +#: flatcamGUI/ObjectUI.py:2070 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:214 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:324 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:288 +#: flatcamTools/ToolNCC.py:580 flatcamTools/ToolPaint.py:524 +msgid "The kind of selection shape used for area selection." +msgstr "Type de forme de sélection utilisé pour la sélection de zone." + +#: flatcamGUI/ObjectUI.py:2080 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:224 +msgid "Strategy" +msgstr "Stratégie" + +#: flatcamGUI/ObjectUI.py:2081 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:225 +msgid "" +"The strategy followed when encountering an exclusion area.\n" +"Can be:\n" +"- Over -> when encountering the area, the tool will go to a set height\n" +"- Around -> will avoid the exclusion area by going around the area" +msgstr "" +"La stratégie a suivi lors de la rencontre d'une zone d'exclusion.\n" +"Peut être:\n" +"- Plus -> lors de la rencontre de la zone, l'outil ira à une hauteur " +"définie\n" +"- Autour -> évitera la zone d'exclusion en faisant le tour de la zone" + +#: flatcamGUI/ObjectUI.py:2085 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:229 +msgid "Over" +msgstr "Au dessus" + +#: flatcamGUI/ObjectUI.py:2086 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:230 +msgid "Around" +msgstr "Autour" + +#: flatcamGUI/ObjectUI.py:2092 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:236 +msgid "Over Z" +msgstr "Plus de Z" + +#: flatcamGUI/ObjectUI.py:2093 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:237 +msgid "" +"The height Z to which the tool will rise in order to avoid\n" +"an interdiction area." +msgstr "" +"La hauteur Z à laquelle l'outil va s'élever afin d'éviter\n" +"une zone d'interdiction." + +#: flatcamGUI/ObjectUI.py:2117 msgid "Generate the CNC Job object." msgstr "Générez l'objet Travail CNC." -#: AppGUI/ObjectUI.py:2064 +#: flatcamGUI/ObjectUI.py:2134 msgid "Launch Paint Tool in Tools Tab." msgstr "Lancer L'outil de Peinture dans l'onglet Outils." -#: AppGUI/ObjectUI.py:2072 AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:35 +#: flatcamGUI/ObjectUI.py:2142 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:35 msgid "" "Creates tool paths to cover the\n" "whole area of a polygon (remove\n" @@ -6609,15 +8693,17 @@ msgstr "" "tout en cuivre). Tu vas être interrogé\n" "cliquer sur le polygone désiré." -#: AppGUI/ObjectUI.py:2127 +#: flatcamGUI/ObjectUI.py:2197 msgid "CNC Job Object" msgstr "Objet de travail CNC" -#: AppGUI/ObjectUI.py:2138 AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:45 +#: flatcamGUI/ObjectUI.py:2208 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:45 msgid "Plot kind" msgstr "Dessiner genre" -#: AppGUI/ObjectUI.py:2141 AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:47 +#: flatcamGUI/ObjectUI.py:2211 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:47 msgid "" "This selects the kind of geometries on the canvas to plot.\n" "Those can be either of type 'Travel' which means the moves\n" @@ -6629,15 +8715,18 @@ msgstr "" "au-dessus de la pièce ou il peut être de type 'Couper',\n" "ce qui signifie les mouvements qui coupent dans le matériau." -#: AppGUI/ObjectUI.py:2150 AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:55 +#: flatcamGUI/ObjectUI.py:2220 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:55 msgid "Travel" msgstr "Voyage" -#: AppGUI/ObjectUI.py:2154 AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:64 +#: flatcamGUI/ObjectUI.py:2224 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:64 msgid "Display Annotation" msgstr "Afficher l'annotation" -#: AppGUI/ObjectUI.py:2156 AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:66 +#: flatcamGUI/ObjectUI.py:2226 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:66 msgid "" "This selects if to display text annotation on the plot.\n" "When checked it will display numbers in order for each end\n" @@ -6647,11 +8736,11 @@ msgstr "" "Lorsque coché, il affichera les numéros dans l'ordre pour chaque extrémité\n" "d'une ligne de voyage." -#: AppGUI/ObjectUI.py:2171 +#: flatcamGUI/ObjectUI.py:2241 msgid "Travelled dist." -msgstr "Dist. parcourue." +msgstr "Dist. parcourue" -#: AppGUI/ObjectUI.py:2173 AppGUI/ObjectUI.py:2178 +#: flatcamGUI/ObjectUI.py:2243 flatcamGUI/ObjectUI.py:2248 msgid "" "This is the total travelled distance on X-Y plane.\n" "In current units." @@ -6659,11 +8748,11 @@ msgstr "" "C’est la distance totale parcourue sur l’avion X-Y.\n" "En unités actuelles." -#: AppGUI/ObjectUI.py:2183 +#: flatcamGUI/ObjectUI.py:2253 msgid "Estimated time" msgstr "Temps estimé" -#: AppGUI/ObjectUI.py:2185 AppGUI/ObjectUI.py:2190 +#: flatcamGUI/ObjectUI.py:2255 flatcamGUI/ObjectUI.py:2260 msgid "" "This is the estimated time to do the routing/drilling,\n" "without the time spent in ToolChange events." @@ -6671,11 +8760,11 @@ msgstr "" "Ceci est le temps estimé pour faire le routage / forage,\n" "sans le temps passé dans les événements ToolChange." -#: AppGUI/ObjectUI.py:2225 +#: flatcamGUI/ObjectUI.py:2295 msgid "CNC Tools Table" msgstr "Table d'outils CNC" -#: AppGUI/ObjectUI.py:2228 +#: flatcamGUI/ObjectUI.py:2298 msgid "" "Tools in this CNCJob object used for cutting.\n" "The tool diameter is used for plotting on canvas.\n" @@ -6698,37 +8787,39 @@ msgstr "" "Le 'type d'outil' (TT) peut être circulaire avec 1 à 4 dents (C1..C4),\n" "balle (B) ou en forme de V (V)." -#: AppGUI/ObjectUI.py:2256 AppGUI/ObjectUI.py:2267 +#: flatcamGUI/ObjectUI.py:2326 flatcamGUI/ObjectUI.py:2337 msgid "P" msgstr "P" -#: AppGUI/ObjectUI.py:2277 +#: flatcamGUI/ObjectUI.py:2347 msgid "Update Plot" msgstr "Mise à jour du Tracé" -#: AppGUI/ObjectUI.py:2279 +#: flatcamGUI/ObjectUI.py:2349 msgid "Update the plot." msgstr "Mettre à jour le dessin." -#: AppGUI/ObjectUI.py:2286 -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:30 +#: flatcamGUI/ObjectUI.py:2356 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:30 msgid "Export CNC Code" msgstr "Exporter le code CNC" -#: AppGUI/ObjectUI.py:2288 -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:32 -#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:33 +#: flatcamGUI/ObjectUI.py:2358 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:32 +#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:33 msgid "" "Export and save G-Code to\n" "make this object to a file." -msgstr "Exporter et sauvegarder le GCode dans objet fichier." +msgstr "" +"Exporter et sauvegarder le code G dans\n" +"transformez cet objet en fichier." -#: AppGUI/ObjectUI.py:2294 +#: flatcamGUI/ObjectUI.py:2364 msgid "Prepend to CNC Code" msgstr "Ajouter au début un code CNC" -#: AppGUI/ObjectUI.py:2296 AppGUI/ObjectUI.py:2303 -#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:49 +#: flatcamGUI/ObjectUI.py:2366 flatcamGUI/ObjectUI.py:2373 +#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:49 msgid "" "Type here any G-Code commands you would\n" "like to add at the beginning of the G-Code file." @@ -6736,12 +8827,12 @@ msgstr "" "Tapez ici toutes les commandes G-Code que vous feriez\n" "souhaite ajouter au début du fichier G-Code." -#: AppGUI/ObjectUI.py:2309 +#: flatcamGUI/ObjectUI.py:2379 msgid "Append to CNC Code" msgstr "Ajouter au code CNC final" -#: AppGUI/ObjectUI.py:2311 AppGUI/ObjectUI.py:2319 -#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:65 +#: flatcamGUI/ObjectUI.py:2381 flatcamGUI/ObjectUI.py:2389 +#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:65 msgid "" "Type here any G-Code commands you would\n" "like to append to the generated file.\n" @@ -6751,13 +8842,13 @@ msgstr "" "tiens à ajouter à la fin du fichier généré.\n" "I.e .: M2 (fin du programme)" -#: AppGUI/ObjectUI.py:2333 -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:38 +#: flatcamGUI/ObjectUI.py:2403 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:38 msgid "Toolchange G-Code" msgstr "Code de changement d'outils" -#: AppGUI/ObjectUI.py:2336 -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:41 +#: flatcamGUI/ObjectUI.py:2406 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:41 msgid "" "Type here any G-Code commands you would\n" "like to be executed when Toolchange event is encountered.\n" @@ -6779,7 +8870,7 @@ msgstr "" "qui a 'toolchange_custom' dans son nom et qui est construit\n" "ayant comme modèle le fichier posprocessor 'Toolchange Custom'." -#: AppGUI/ObjectUI.py:2351 +#: flatcamGUI/ObjectUI.py:2421 msgid "" "Type here any G-Code commands you would\n" "like to be executed when Toolchange event is encountered.\n" @@ -6797,13 +8888,13 @@ msgstr "" "WARNING: it can be used only with a preprocessor file\n" "that has 'toolchange_custom' in it's name." -#: AppGUI/ObjectUI.py:2366 -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:80 +#: flatcamGUI/ObjectUI.py:2436 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:80 msgid "Use Toolchange Macro" msgstr "Utiliser la macro Toolchange" -#: AppGUI/ObjectUI.py:2368 -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:82 +#: flatcamGUI/ObjectUI.py:2438 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:82 msgid "" "Check this box if you want to use\n" "a Custom Toolchange GCode (macro)." @@ -6811,8 +8902,8 @@ msgstr "" "Cochez cette case si vous souhaitez utiliser\n" "un GCode personnalisé Toolchange (macro)." -#: AppGUI/ObjectUI.py:2376 -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:94 +#: flatcamGUI/ObjectUI.py:2446 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:94 msgid "" "A list of the FlatCAM variables that can be used\n" "in the Toolchange event.\n" @@ -6822,219 +8913,191 @@ msgstr "" "dans l'événement Toolchange.\n" "Ils doivent être entourés du symbole '%%'" -#: AppGUI/ObjectUI.py:2383 -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:101 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:30 -#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:31 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:31 -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:37 -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:36 -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:36 -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:36 -#: AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py:31 -#: AppGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:31 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:36 -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:31 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:30 -#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:31 -#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:35 -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:32 -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:31 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:30 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:31 -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:31 -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:31 -#: AppGUI/preferences/tools/ToolsSubPrefGroupUI.py:31 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:31 -#: AppTools/ToolCalibration.py:67 AppTools/ToolCopperThieving.py:93 -#: AppTools/ToolCorners.py:115 AppTools/ToolEtchCompensation.py:138 -#: AppTools/ToolFiducials.py:152 AppTools/ToolInvertGerber.py:85 -#: AppTools/ToolQRCode.py:114 +#: flatcamGUI/ObjectUI.py:2453 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:101 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:30 +#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:31 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:31 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:37 +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:36 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:36 +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:36 +#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:31 +#: flatcamGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:31 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:36 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:31 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:30 +#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:31 +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:32 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:31 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:31 +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:31 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:31 +#: flatcamGUI/preferences/tools/ToolsSubPrefGroupUI.py:31 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:31 +#: flatcamTools/ToolCopperThieving.py:89 flatcamTools/ToolFiducials.py:149 +#: flatcamTools/ToolInvertGerber.py:82 msgid "Parameters" msgstr "Paramètres" -#: AppGUI/ObjectUI.py:2386 -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:106 +#: flatcamGUI/ObjectUI.py:2456 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:106 msgid "FlatCAM CNC parameters" msgstr "Paramètres CNC FlatCAM" -#: AppGUI/ObjectUI.py:2387 -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:111 +#: flatcamGUI/ObjectUI.py:2457 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:111 msgid "tool number" msgstr "numéro d'outil" -#: AppGUI/ObjectUI.py:2388 -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:112 +#: flatcamGUI/ObjectUI.py:2458 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:112 msgid "tool diameter" msgstr "diamètre de l'outil" -#: AppGUI/ObjectUI.py:2389 -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:113 +#: flatcamGUI/ObjectUI.py:2459 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:113 msgid "for Excellon, total number of drills" msgstr "pour Excellon, nombre total de trous de forage" -#: AppGUI/ObjectUI.py:2391 -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:115 +#: flatcamGUI/ObjectUI.py:2461 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:115 msgid "X coord for Toolchange" msgstr "Coord X pour changement d'outil" -#: AppGUI/ObjectUI.py:2392 -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:116 +#: flatcamGUI/ObjectUI.py:2462 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:116 msgid "Y coord for Toolchange" msgstr "Coord Y pour changement d'outil" -#: AppGUI/ObjectUI.py:2393 -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:118 +#: flatcamGUI/ObjectUI.py:2463 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:118 msgid "Z coord for Toolchange" msgstr "Coords Z pour le Changement d'Outil" -#: AppGUI/ObjectUI.py:2394 +#: flatcamGUI/ObjectUI.py:2464 msgid "depth where to cut" msgstr "profondeur où couper" -#: AppGUI/ObjectUI.py:2395 +#: flatcamGUI/ObjectUI.py:2465 msgid "height where to travel" msgstr "hauteur où voyager" -#: AppGUI/ObjectUI.py:2396 -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:121 +#: flatcamGUI/ObjectUI.py:2466 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:121 msgid "the step value for multidepth cut" msgstr "la valeur de pas pour la coupe multiple" -#: AppGUI/ObjectUI.py:2398 -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:123 +#: flatcamGUI/ObjectUI.py:2468 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:123 msgid "the value for the spindle speed" msgstr "la valeur de la vitesse de broche" -#: AppGUI/ObjectUI.py:2400 +#: flatcamGUI/ObjectUI.py:2470 msgid "time to dwell to allow the spindle to reach it's set RPM" msgstr "" "temps de repos pour permettre à la broche d'atteindre son régime défini" -#: AppGUI/ObjectUI.py:2416 +#: flatcamGUI/ObjectUI.py:2486 msgid "View CNC Code" msgstr "Voir le code CNC" -#: AppGUI/ObjectUI.py:2418 +#: flatcamGUI/ObjectUI.py:2488 msgid "" "Opens TAB to view/modify/print G-Code\n" "file." -msgstr "Ouvre l'onglet pour afficher / modifier / imprimer le Fichier GCode." +msgstr "" +"Ouvre l'onglet pour afficher / modifier / imprimer le code G\n" +"fichier." -#: AppGUI/ObjectUI.py:2423 +#: flatcamGUI/ObjectUI.py:2493 msgid "Save CNC Code" msgstr "Enregistrer le code CNC" -#: AppGUI/ObjectUI.py:2425 +#: flatcamGUI/ObjectUI.py:2495 msgid "" "Opens dialog to save G-Code\n" "file." -msgstr "Ouvre la boîte de dialogue pour enregistrer le Fichier GCode." +msgstr "" +"Ouvre la boîte de dialogue pour enregistrer le code G\n" +"fichier." -#: AppGUI/ObjectUI.py:2459 +#: flatcamGUI/ObjectUI.py:2529 msgid "Script Object" msgstr "Objet de script" -#: AppGUI/ObjectUI.py:2479 AppGUI/ObjectUI.py:2553 +#: flatcamGUI/ObjectUI.py:2549 flatcamGUI/ObjectUI.py:2623 msgid "Auto Completer" msgstr "Compléteur automatique" -#: AppGUI/ObjectUI.py:2481 +#: flatcamGUI/ObjectUI.py:2551 msgid "This selects if the auto completer is enabled in the Script Editor." msgstr "" "Ceci sélectionne si le compléteur automatique est activé dans l'éditeur de " "script." -#: AppGUI/ObjectUI.py:2526 +#: flatcamGUI/ObjectUI.py:2596 msgid "Document Object" msgstr "Objet de Document" -#: AppGUI/ObjectUI.py:2555 +#: flatcamGUI/ObjectUI.py:2625 msgid "This selects if the auto completer is enabled in the Document Editor." msgstr "" "Ceci sélectionne si le compléteur automatique est activé dans l'éditeur de " "document." -#: AppGUI/ObjectUI.py:2573 +#: flatcamGUI/ObjectUI.py:2643 msgid "Font Type" msgstr "Type de Police" -#: AppGUI/ObjectUI.py:2590 -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:189 +#: flatcamGUI/ObjectUI.py:2660 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:197 msgid "Font Size" msgstr "Taille de Police" -#: AppGUI/ObjectUI.py:2626 +#: flatcamGUI/ObjectUI.py:2696 msgid "Alignment" msgstr "Alignement" -#: AppGUI/ObjectUI.py:2631 +#: flatcamGUI/ObjectUI.py:2701 msgid "Align Left" msgstr "Alignez à gauche" -#: AppGUI/ObjectUI.py:2636 App_Main.py:4715 -msgid "Center" -msgstr "Centre" - -#: AppGUI/ObjectUI.py:2641 +#: flatcamGUI/ObjectUI.py:2711 msgid "Align Right" msgstr "Aligner à droite" -#: AppGUI/ObjectUI.py:2646 +#: flatcamGUI/ObjectUI.py:2716 msgid "Justify" msgstr "Aligner à justifier" -#: AppGUI/ObjectUI.py:2653 +#: flatcamGUI/ObjectUI.py:2723 msgid "Font Color" msgstr "Couleur de la Police" -#: AppGUI/ObjectUI.py:2655 +#: flatcamGUI/ObjectUI.py:2725 msgid "Set the font color for the selected text" msgstr "Définir la couleur de la police pour le texte sélectionné" -#: AppGUI/ObjectUI.py:2669 +#: flatcamGUI/ObjectUI.py:2739 msgid "Selection Color" msgstr "Couleur de sélection" -#: AppGUI/ObjectUI.py:2671 +#: flatcamGUI/ObjectUI.py:2741 msgid "Set the selection color when doing text selection." msgstr "Définissez la couleur de sélection lors de la sélection du texte." -#: AppGUI/ObjectUI.py:2685 +#: flatcamGUI/ObjectUI.py:2755 msgid "Tab Size" msgstr "Taille de l'onglet" -#: AppGUI/ObjectUI.py:2687 +#: flatcamGUI/ObjectUI.py:2757 msgid "Set the tab size. In pixels. Default value is 80 pixels." msgstr "" "Définissez la taille de l'onglet. En pixels. La valeur par défaut est 80 " "pixels." -#: AppGUI/PlotCanvas.py:236 AppGUI/PlotCanvasLegacy.py:345 -msgid "Axis enabled." -msgstr "Axe activé." - -#: AppGUI/PlotCanvas.py:242 AppGUI/PlotCanvasLegacy.py:352 -msgid "Axis disabled." -msgstr "Axe désactivé." - -#: AppGUI/PlotCanvas.py:260 AppGUI/PlotCanvasLegacy.py:372 -msgid "HUD enabled." -msgstr "HUD activé." - -#: AppGUI/PlotCanvas.py:268 AppGUI/PlotCanvasLegacy.py:378 -msgid "HUD disabled." -msgstr "HUD désactivé." - -#: AppGUI/PlotCanvas.py:276 AppGUI/PlotCanvasLegacy.py:451 -msgid "Grid enabled." -msgstr "Grille activée." - -#: AppGUI/PlotCanvas.py:280 AppGUI/PlotCanvasLegacy.py:459 -msgid "Grid disabled." -msgstr "Grille désactivée." - -#: AppGUI/PlotCanvasLegacy.py:1523 +#: flatcamGUI/PlotCanvasLegacy.py:1299 msgid "" "Could not annotate due of a difference between the number of text elements " "and the number of text positions." @@ -7042,53 +9105,40 @@ msgstr "" "Impossible d'annoter en raison d'une différence entre le nombre d'éléments " "de texte et le nombre de positions de texte." -#: AppGUI/preferences/PreferencesUIManager.py:852 +#: flatcamGUI/preferences/PreferencesUIManager.py:911 msgid "Preferences applied." -msgstr "Paramètres appliquées." +msgstr "Préférences appliquées." -#: AppGUI/preferences/PreferencesUIManager.py:872 -msgid "Are you sure you want to continue?" -msgstr "Es-tu sur de vouloir continuer?" - -#: AppGUI/preferences/PreferencesUIManager.py:873 -msgid "Application will restart" -msgstr "L'application va redémarrer" - -#: AppGUI/preferences/PreferencesUIManager.py:971 +#: flatcamGUI/preferences/PreferencesUIManager.py:975 msgid "Preferences closed without saving." -msgstr "Les paramètres se sont fermées sans enregistrer." +msgstr "Les préférences se sont fermées sans enregistrer." -#: AppGUI/preferences/PreferencesUIManager.py:983 +#: flatcamGUI/preferences/PreferencesUIManager.py:987 msgid "Preferences default values are restored." -msgstr "Les valeurs par défaut des paramètres sont restaurées." +msgstr "Les valeurs par défaut des préférences sont restaurées." -#: AppGUI/preferences/PreferencesUIManager.py:1015 App_Main.py:2498 -#: App_Main.py:2566 -msgid "Failed to write defaults to file." -msgstr "Échec d'écriture du fichier." - -#: AppGUI/preferences/PreferencesUIManager.py:1019 -#: AppGUI/preferences/PreferencesUIManager.py:1132 +#: flatcamGUI/preferences/PreferencesUIManager.py:1022 +#: flatcamGUI/preferences/PreferencesUIManager.py:1131 msgid "Preferences saved." -msgstr "Paramètres enregistrées." +msgstr "Préférences enregistrées." -#: AppGUI/preferences/PreferencesUIManager.py:1069 +#: flatcamGUI/preferences/PreferencesUIManager.py:1072 msgid "Preferences edited but not saved." -msgstr "Paramètres modifiées mais non enregistrées." +msgstr "Préférences modifiées mais non enregistrées." -#: AppGUI/preferences/PreferencesUIManager.py:1117 +#: flatcamGUI/preferences/PreferencesUIManager.py:1117 msgid "" "One or more values are changed.\n" "Do you want to save the Preferences?" msgstr "" "Une ou plusieurs valeurs sont modifiées.\n" -"Voulez-vous enregistrer les paramètres?" +"Voulez-vous enregistrer les préférences?" -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:27 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:27 msgid "CNC Job Adv. Options" msgstr "Options avan. de CNCjob" -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:64 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:64 msgid "" "Type here any G-Code commands you would like to be executed when Toolchange " "event is encountered.\n" @@ -7105,48 +9155,48 @@ msgstr "" "AVERTISSEMENT: il ne peut être utilisé qu'avec un fichier de préprocesseur " "qui a «toolchange_custom» dans son nom." -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:119 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:119 msgid "Z depth for the cut" msgstr "Z profondeur pour la coupe" -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:120 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:120 msgid "Z height for travel" msgstr "Z hauteur pour le voyage" -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:126 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:126 msgid "dwelltime = time to dwell to allow the spindle to reach it's set RPM" msgstr "" "dwelltime = temps de repos pour permettre à la broche d'atteindre son régime " "défini" -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:145 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:145 msgid "Annotation Size" msgstr "Taille de l'annotation" -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:147 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:147 msgid "The font size of the annotation text. In pixels." msgstr "La taille de la police du texte d'annotation. En pixels." -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:157 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:157 msgid "Annotation Color" msgstr "Couleur de l'annotation" -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:159 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:159 msgid "Set the font color for the annotation texts." msgstr "Définissez la couleur de la police pour les textes d'annotation." -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:26 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:26 msgid "CNC Job General" msgstr "CNCJob Général" -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:77 -#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:57 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:59 -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:45 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:77 +#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:47 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:59 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:45 msgid "Circle Steps" msgstr "Étapes de cercle" -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:79 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:79 msgid "" "The number of circle steps for GCode \n" "circle and arc shapes linear approximation." @@ -7154,11 +9204,11 @@ msgstr "" "Nombre d'étapes du cercle pour GCode\n" "approximation linéaire des formes de cercle et d'arc." -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:88 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:88 msgid "Travel dia" msgstr "Voyage DIa" -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:90 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:90 msgid "" "The width of the travel lines to be\n" "rendered in the plot." @@ -7166,16 +9216,16 @@ msgstr "" "La largeur des lignes de voyage à être\n" "rendu dans l'intrigue." -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:103 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:103 msgid "G-code Decimals" msgstr "Décimales G-code" -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:106 -#: AppTools/ToolFiducials.py:71 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:106 +#: flatcamTools/ToolFiducials.py:74 msgid "Coordinates" msgstr "Coordonnées" -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:108 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:108 msgid "" "The number of decimals to be used for \n" "the X, Y, Z coordinates in CNC code (GCODE, etc.)" @@ -7183,12 +9233,12 @@ msgstr "" "Le nombre de décimales à utiliser pour\n" "les coordonnées X, Y, Z en code CNC (GCODE, etc.)" -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:119 -#: AppTools/ToolProperties.py:519 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:119 +#: flatcamTools/ToolProperties.py:519 msgid "Feedrate" msgstr "Vitesse d'avance" -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:121 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:121 msgid "" "The number of decimals to be used for \n" "the Feedrate parameter in CNC code (GCODE, etc.)" @@ -7196,11 +9246,11 @@ msgstr "" "Le nombre de décimales à utiliser pour\n" "le paramètre Feedrate en code CNC (GCODE, etc.)" -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:132 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:132 msgid "Coordinates type" msgstr "Type de coord" -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:134 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:134 msgid "" "The type of coordinates to be used in Gcode.\n" "Can be:\n" @@ -7212,19 +9262,19 @@ msgstr "" "- G90 absolu -> la référence est l'origine x = 0, y = 0\n" "- Incrémental G91 -> la référence est la position précédente" -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:140 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:140 msgid "Absolute G90" msgstr "G90 absolu" -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:141 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:141 msgid "Incremental G91" msgstr "G91 incrémentiel" -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:151 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:151 msgid "Force Windows style line-ending" msgstr "Forcer la fin de ligne de style Windows" -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:153 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:153 msgid "" "When checked will force a Windows style line-ending\n" "(\\r\\n) on non-Windows OS's." @@ -7232,39 +9282,39 @@ msgstr "" "Lorsqu'elle est cochée, la fin de ligne de style Windows\n" "(\\r \\n) sur les systèmes d'exploitation non Windows." -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:165 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:165 msgid "Travel Line Color" msgstr "Couleur de la ligne de voyage" -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:169 -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:210 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:271 -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:154 -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:195 -#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:94 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:153 -#: AppTools/ToolRulesCheck.py:186 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:169 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:235 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:262 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:154 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:220 +#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:84 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:153 +#: flatcamTools/ToolRulesCheck.py:186 msgid "Outline" msgstr "Contour" -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:171 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:171 msgid "Set the travel line color for plotted objects." msgstr "" "Définissez la couleur de la ligne de déplacement pour les objets tracés." -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:179 -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:220 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:281 -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:163 -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:205 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:163 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:186 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:252 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:279 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:170 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:237 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:170 msgid "Fill" msgstr "Contenu" -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:181 -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:222 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:283 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:165 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:188 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:254 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:281 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:172 msgid "" "Set the fill color for plotted objects.\n" "First 6 digits are the color and the last 2\n" @@ -7274,44 +9324,41 @@ msgstr "" "Les 6 premiers chiffres correspondent à la couleur et les 2 derniers\n" "les chiffres correspondent au niveau alpha (transparence)." -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:191 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:293 -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:176 -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:218 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:175 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:205 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:298 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:190 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:257 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:189 msgid "Alpha" msgstr "Alpha" -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:193 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:295 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:177 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:207 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:300 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:191 msgid "Set the fill transparency for plotted objects." msgstr "Définissez la transparence de remplissage pour les objets tracés." -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:206 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:267 -#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:90 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:149 -msgid "Object Color" -msgstr "Couleur d'objet" +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:231 +msgid "CNCJob Object Color" +msgstr "Couleur d'objet CNCJob" -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:212 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:237 msgid "Set the color for plotted objects." msgstr "Définissez la couleur des objets tracés." -#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:27 +#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:27 msgid "CNC Job Options" msgstr "Options CNCjob" -#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:31 +#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:31 msgid "Export G-Code" -msgstr "Exporter le GCcode" +msgstr "Exporter le code G" -#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:47 +#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:47 msgid "Prepend to G-Code" msgstr "Préfixer au G-Code" -#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:56 +#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:56 msgid "" "Type here any G-Code commands you would like to add at the beginning of the " "G-Code file." @@ -7319,11 +9366,11 @@ msgstr "" "Tapez ici toutes les commandes G-Code que vous souhaitez ajouter au début du " "fichier G-Code." -#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:63 +#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:63 msgid "Append to G-Code" msgstr "Ajouter au G-Code" -#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:73 +#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:73 msgid "" "Type here any G-Code commands you would like to append to the generated " "file.\n" @@ -7333,17 +9380,17 @@ msgstr "" "généré.\n" "Par exemple: M2 (Fin du programme)" -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:27 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:27 msgid "Excellon Adv. Options" msgstr "Excellon Opt. avancées" -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:34 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:34 -#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:31 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:34 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:33 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:31 msgid "Advanced Options" msgstr "Options avancées" -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:36 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:36 msgid "" "A list of Excellon advanced parameters.\n" "Those parameters are available only for\n" @@ -7353,22 +9400,22 @@ msgstr "" "Ces paramètres ne sont disponibles que pour\n" "App avancée. Niveau." -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:59 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:59 msgid "Toolchange X,Y" msgstr "Changement d'outils X, Y" -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:61 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:48 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:61 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:47 msgid "Toolchange X,Y position." msgstr "Changement d'outil en position X et Y." -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:121 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:137 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:121 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:134 msgid "Spindle direction" msgstr "Direction du moteur" -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:123 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:139 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:123 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:136 msgid "" "This sets the direction that the spindle is rotating.\n" "It can be either:\n" @@ -7380,13 +9427,13 @@ msgstr "" "- CW = dans le sens des aiguilles d'une montre ou\n" "- CCW = dans le sens antihoraire" -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:134 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:151 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:134 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:148 msgid "Fast Plunge" msgstr "Plongée rapide" -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:136 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:153 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:136 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:150 msgid "" "By checking this, the vertical move from\n" "Z_Toolchange to Z_move is done with G0,\n" @@ -7399,11 +9446,11 @@ msgstr "" "AVERTISSEMENT: le déplacement est effectué à l'aide de Toolchange X, Y " "coords." -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:143 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:143 msgid "Fast Retract" msgstr "Retrait Rapide" -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:145 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:145 msgid "" "Exit hole strategy.\n" " - When uncheked, while exiting the drilled hole the drill bit\n" @@ -7422,18 +9469,18 @@ msgstr "" "(hauteur de déplacement) est fait aussi vite que possible (G0) en un seul " "mouvement." -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:32 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:32 msgid "A list of Excellon Editor parameters." msgstr "Une liste des paramètres de l'éditeur Excellon." -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:40 -#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:41 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:41 -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:172 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:40 +#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:41 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:41 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:194 msgid "Selection limit" msgstr "Limite de sélection" -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:42 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:42 msgid "" "Set the number of selected Excellon geometry\n" "items above which the utility geometry\n" @@ -7447,36 +9494,35 @@ msgstr "" "Augmente les performances lors du déplacement d'un\n" "grand nombre d'éléments géométriques." -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:55 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:134 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:117 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:123 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:55 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:117 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:123 msgid "New Dia" -msgstr "Nouveau Diam" +msgstr "Nouvel Dia" -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:80 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:80 msgid "Linear Drill Array" msgstr "Matrice de Forage Linéaire" -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:84 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:232 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:121 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:84 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:232 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:120 msgid "Linear Direction" msgstr "Direction linéaire" -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:126 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:126 msgid "Circular Drill Array" msgstr "Matrice de Forage Circulaires" -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:130 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:280 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:165 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:130 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:280 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:164 msgid "Circular Direction" msgstr "Direction circulaire" -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:132 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:282 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:167 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:132 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:282 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:166 msgid "" "Direction for circular array.\n" "Can be CW = clockwise or CCW = counter clockwise." @@ -7484,13 +9530,13 @@ msgstr "" "Direction pour tableau circulaire.\n" "Peut être CW = sens horaire ou CCW = sens antihoraire." -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:143 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:293 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:178 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:143 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:293 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:177 msgid "Circular Angle" msgstr "Angle Circulaire" -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:196 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:196 msgid "" "Angle at which the slot is placed.\n" "The precision is of max 2 decimals.\n" @@ -7502,24 +9548,24 @@ msgstr "" "La valeur minimale est: -359,99 degrés.\n" "La valeur maximale est: 360,00 degrés." -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:215 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:215 msgid "Linear Slot Array" msgstr "Matrice de Fente Linéaire" -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:276 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:276 msgid "Circular Slot Array" msgstr "Matrice de Fente Circulaire" -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:26 +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:26 msgid "Excellon Export" msgstr "Excellon exportation" -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:30 -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:31 +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:30 +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:31 msgid "Export Options" msgstr "Options d'exportation" -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:32 +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:32 msgid "" "The parameters set here are used in the file exported\n" "when using the File -> Export -> Export Excellon menu entry." @@ -7528,45 +9574,45 @@ msgstr "" "lors de l'utilisation de l'entrée de menu Fichier -> Exporter -> Exporter " "Excellon." -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:41 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:172 -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:39 -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:42 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:82 -#: AppTools/ToolDistance.py:56 AppTools/ToolDistanceMin.py:49 -#: AppTools/ToolPcbWizard.py:127 AppTools/ToolProperties.py:154 +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:41 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:163 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:39 +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:42 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:82 +#: flatcamTools/ToolDistance.py:56 flatcamTools/ToolDistanceMin.py:50 +#: flatcamTools/ToolPcbWizard.py:127 flatcamTools/ToolProperties.py:154 msgid "Units" msgstr "Unités" -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:43 -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:49 +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:43 +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:49 msgid "The units used in the Excellon file." msgstr "Les unités utilisées dans le fichier Excellon." -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:46 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:96 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:182 -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:47 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:87 -#: AppTools/ToolCalculators.py:61 AppTools/ToolPcbWizard.py:125 +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:46 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:87 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:173 +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:47 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:87 +#: flatcamTools/ToolCalculators.py:61 flatcamTools/ToolPcbWizard.py:125 msgid "INCH" msgstr "PO" -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:47 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:183 -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:43 -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:48 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:88 -#: AppTools/ToolCalculators.py:62 AppTools/ToolPcbWizard.py:126 +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:47 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:174 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:43 +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:48 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:88 +#: flatcamTools/ToolCalculators.py:62 flatcamTools/ToolPcbWizard.py:126 msgid "MM" msgstr "MM" -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:55 -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:56 +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:55 +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:56 msgid "Int/Decimals" msgstr "Entiers/Décim" -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:57 +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:57 msgid "" "The NC drill files, usually named Excellon files\n" "are files that can be found in different formats.\n" @@ -7578,9 +9624,9 @@ msgstr "" "Ici, nous définissons le format utilisé lorsque le\n" "les coordonnées n'utilisent pas de période." -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:69 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:104 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:133 +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:69 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:95 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:124 msgid "" "This numbers signify the number of digits in\n" "the whole part of Excellon coordinates." @@ -7588,9 +9634,9 @@ msgstr "" "Ces chiffres représentent le nombre de chiffres en\n" "toute la partie des coordonnées Excellon." -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:82 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:117 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:146 +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:82 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:108 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:137 msgid "" "This numbers signify the number of digits in\n" "the decimal part of Excellon coordinates." @@ -7598,12 +9644,12 @@ msgstr "" "Ces chiffres représentent le nombre de chiffres en\n" "la partie décimale des coordonnées Excellon." -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:91 +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:91 msgid "Format" msgstr "Format" -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:93 -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:103 +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:93 +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:103 msgid "" "Select the kind of coordinates format used.\n" "Coordinates can be saved with decimal point or without.\n" @@ -7619,22 +9665,22 @@ msgstr "" "De plus, il faudra préciser si LZ = zéros non significatifs sont conservés\n" "ou TZ = les zéros de fin sont conservés." -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:100 +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:100 msgid "Decimal" msgstr "Décimal" -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:101 +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:101 msgid "No-Decimal" msgstr "Aucune décimale" -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:114 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:154 -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:96 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:97 +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:114 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:145 +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:96 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:97 msgid "Zeros" msgstr "Zéros" -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:117 +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:117 msgid "" "This sets the type of Excellon zeros.\n" "If LZ then Leading Zeros are kept and\n" @@ -7648,23 +9694,23 @@ msgstr "" "Si TZ est coché, les zéros suivants sont conservés\n" "et les zéros non significatifs sont supprimés." -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:124 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:167 -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:106 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:107 -#: AppTools/ToolPcbWizard.py:111 +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:124 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:158 +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:106 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:107 +#: flatcamTools/ToolPcbWizard.py:111 msgid "LZ" msgstr "LZ" -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:125 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:168 -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:107 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:108 -#: AppTools/ToolPcbWizard.py:112 +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:125 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:159 +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:107 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:108 +#: flatcamTools/ToolPcbWizard.py:112 msgid "TZ" msgstr "TZ" -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:127 +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:127 msgid "" "This sets the default type of Excellon zeros.\n" "If LZ then Leading Zeros are kept and\n" @@ -7678,12 +9724,12 @@ msgstr "" "Si TZ est coché, les zéros suivants sont conservés\n" "et les zéros non significatifs sont supprimés." -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:137 +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:137 msgid "Slot type" msgstr "Type d'fentes" -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:140 -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:150 +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:140 +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:150 msgid "" "This sets how the slots will be exported.\n" "If ROUTED then the slots will be routed\n" @@ -7697,29 +9743,23 @@ msgstr "" "Si percé (G85) les emplacements seront exportés\n" "en utilisant la commande slot foré (G85)." -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:147 +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:147 msgid "Routed" msgstr "Routé" -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:148 +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:148 msgid "Drilled(G85)" msgstr "Percé(G85)" -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:29 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:29 msgid "Excellon General" msgstr "Excellon Général" -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:54 -#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:45 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:52 -msgid "M-Color" -msgstr "Couleur-M" - -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:71 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:62 msgid "Excellon Format" msgstr "Format Excellon" -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:73 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:64 msgid "" "The NC drill files, usually named Excellon files\n" "are files that can be found in different formats.\n" @@ -7761,19 +9801,19 @@ msgstr "" "Sprint Layout 2: 4 INCH LZ\n" "KiCAD 3: 5 IN TZ" -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:97 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:88 msgid "Default values for INCH are 2:4" msgstr "Les valeurs par défaut pour INCH sont 2: 4" -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:125 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:116 msgid "METRIC" msgstr "MÉTRIQUE" -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:126 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:117 msgid "Default values for METRIC are 3:3" msgstr "Les valeurs par défaut pour MÉTRIQUE sont 3: 3" -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:157 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:148 msgid "" "This sets the type of Excellon zeros.\n" "If LZ then Leading Zeros are kept and\n" @@ -7793,7 +9833,7 @@ msgstr "" "Ceci est utilisé lorsqu'il n'y a pas d'informations\n" "stocké dans le fichier Excellon." -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:175 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:166 msgid "" "This sets the default units of Excellon files.\n" "If it is not detected in the parsed file the value here\n" @@ -7805,7 +9845,7 @@ msgstr "" "sera utilisé. Certains fichiers Excellon n’ont pas d’en-tête\n" "donc ce paramètre sera utilisé." -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:185 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:176 msgid "" "This sets the units of Excellon files.\n" "Some Excellon files don't have an header\n" @@ -7815,20 +9855,20 @@ msgstr "" "Certains fichiers Excellon n'ont pas d'en-tête\n" "donc ce paramètre sera utilisé." -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:193 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:184 msgid "Update Export settings" msgstr "Mettre à jour les param d'export" -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:210 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:201 msgid "Excellon Optimization" msgstr "Optimisation Excellon" -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:213 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:204 msgid "Algorithm:" msgstr "Algorithme:" -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:215 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:231 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:206 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:222 msgid "" "This sets the optimization type for the Excellon drill path.\n" "If <> is checked then Google OR-Tools algorithm with\n" @@ -7851,28 +9891,28 @@ msgstr "" "Si ce contrôle est désactivé, FlatCAM fonctionne en mode 32 bits et utilise\n" "Algorithme Travelling Salesman pour l’optimisation des chemins." -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:226 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:217 msgid "MetaHeuristic" msgstr "MetaHeuristic" -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:227 -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:104 -#: AppObjects/FlatCAMExcellon.py:694 AppObjects/FlatCAMGeometry.py:568 -#: AppObjects/FlatCAMGerber.py:219 AppTools/ToolIsolation.py:785 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:218 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:104 +#: flatcamObjects/FlatCAMExcellon.py:614 flatcamObjects/FlatCAMGeometry.py:510 +#: flatcamObjects/FlatCAMGerber.py:251 msgid "Basic" msgstr "De base" -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:228 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:219 msgid "TSA" msgstr "TSA" -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:245 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:245 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:238 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:236 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:245 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:237 msgid "Duration" msgstr "Durée" -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:248 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:239 msgid "" "When OR-Tools Metaheuristic (MH) is enabled there is a\n" "maximum threshold for how much time is spent doing the\n" @@ -7884,22 +9924,26 @@ msgstr "" "optimisation du chemin. Cette durée maximale est définie ici.\n" "En secondes." -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:273 -#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:96 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:155 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:258 +msgid "Excellon Object Color" +msgstr "Couleur d'objet Excellon" + +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:264 +#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:86 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:155 msgid "Set the line color for plotted objects." msgstr "Définissez la couleur de trait pour les objets tracés." -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:29 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:29 msgid "Excellon Options" msgstr "Les options Excellon" -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:33 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:35 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:33 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:34 msgid "Create CNC Job" msgstr "Créer un travail CNC" -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:35 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:35 msgid "" "Parameters used to create a CNC Job object\n" "for this drill object." @@ -7907,17 +9951,17 @@ msgstr "" "Paramètres utilisés pour créer un objet Travail CNC\n" "pour cet objet de forage." -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:152 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:122 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:152 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:121 msgid "Tool change" msgstr "Changement d'outil" -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:236 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:233 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:236 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:232 msgid "Enable Dwell" msgstr "Activer la Pause" -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:259 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:259 msgid "" "The preprocessor JSON file that dictates\n" "Gcode output." @@ -7925,11 +9969,11 @@ msgstr "" "Le fichier JSON post-processeur qui dicte\n" "Sortie Gcode." -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:270 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:270 msgid "Gcode" msgstr "Gcode" -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:272 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:272 msgid "" "Choose what to use for GCode generation:\n" "'Drills', 'Slots' or 'Both'.\n" @@ -7941,23 +9985,23 @@ msgstr "" "Lorsque vous choisissez \"Fentes\" ou \"Les Deux\", les fentes seront\n" "converti en forages." -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:288 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:288 msgid "Mill Holes" msgstr "Fraiser les Trous" -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:290 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:290 msgid "Create Geometry for milling holes." msgstr "Créer une géométrie pour fraiser des trous." -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:294 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:294 msgid "Drill Tool dia" -msgstr "Diam. de l'outil de forage" +msgstr "Dia. de l'outil de forage" -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:305 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:305 msgid "Slot Tool dia" -msgstr "Diam fente outil" +msgstr "Fente outil dia" -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:307 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:307 msgid "" "Diameter of the cutting tool\n" "when milling slots." @@ -7965,44 +10009,51 @@ msgstr "" "Diamètre de l'outil de coupe\n" "lors du fraisage des fentes." -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:28 -#: AppGUI/preferences/general/GeneralAppSettingsGroupUI.py:74 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:28 msgid "App Settings" msgstr "Paramètres de l'application" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:49 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:49 msgid "Grid Settings" msgstr "Paramètres de la grille" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:53 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:53 msgid "X value" msgstr "Valeur X" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:55 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:55 msgid "This is the Grid snap value on X axis." msgstr "Il s'agit de la valeur d'accrochage de la grille sur l'axe des X." -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:65 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:65 msgid "Y value" msgstr "Valeur Y" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:67 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:67 msgid "This is the Grid snap value on Y axis." msgstr "Il s'agit de la valeur d'accrochage de la grille sur l'axe des Y." -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:77 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:77 msgid "Snap Max" msgstr "Accrocher max" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:92 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:92 msgid "Workspace Settings" msgstr "Paramètres de l'espace de travail" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:95 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:95 msgid "Active" msgstr "Actif" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:105 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:97 +msgid "" +"Draw a delimiting rectangle on canvas.\n" +"The purpose is to illustrate the limits for our work." +msgstr "" +"Dessinez un rectangle de délimitation sur la toile.\n" +"Le but est d’illustrer les limites de notre travail." + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:105 msgid "" "Select the type of rectangle to be used on canvas,\n" "as valid workspace." @@ -8010,13 +10061,13 @@ msgstr "" "Sélectionnez le type de rectangle à utiliser sur la toile,\n" "comme espace de travail valide." -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:171 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:171 msgid "Orientation" msgstr "Orientation" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:172 -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:228 -#: AppTools/ToolFilm.py:405 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:172 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:239 +#: flatcamTools/ToolFilm.py:422 msgid "" "Can be:\n" "- Portrait\n" @@ -8026,72 +10077,64 @@ msgstr "" "- Portrait\n" "- Paysage" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:176 -#: AppGUI/preferences/general/GeneralAppSettingsGroupUI.py:154 -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:232 -#: AppTools/ToolFilm.py:409 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:176 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:243 +#: flatcamTools/ToolFilm.py:426 msgid "Portrait" msgstr "Portrait" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:177 -#: AppGUI/preferences/general/GeneralAppSettingsGroupUI.py:155 -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:233 -#: AppTools/ToolFilm.py:410 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:177 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:244 +#: flatcamTools/ToolFilm.py:427 msgid "Landscape" msgstr "Paysage" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:193 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:201 msgid "Notebook" msgstr "Carnet" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:195 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:203 msgid "" "This sets the font size for the elements found in the Notebook.\n" -"The notebook is the collapsible area in the left side of the AppGUI,\n" +"The notebook is the collapsible area in the left side of the GUI,\n" "and include the Project, Selected and Tool tabs." msgstr "" -"Cela définit la taille de la police pour les éléments trouvés dans le bloc-" -"notes.\n" -"Le bloc-notes est la zone pliable sur le côté gauche de l'AppGUI,\n" -"et inclure les onglets Projet, Sélectionné et Outil." +"Ceci définit la taille de la police pour les éléments présents dans le " +"cahier.\n" +"Le cahier est la zone repliable dans le côté gauche de l'interface " +"graphique,\n" +"et incluez les onglets Projet, Sélectionné et Outil." -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:214 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:222 msgid "Axis" msgstr "Axe" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:216 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:224 msgid "This sets the font size for canvas axis." msgstr "Ceci définit la taille de la police pour l'axe de la toile." -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:233 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:241 msgid "Textbox" msgstr "Zone de texte" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:235 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:243 msgid "" -"This sets the font size for the Textbox AppGUI\n" -"elements that are used in the application." +"This sets the font size for the Textbox GUI\n" +"elements that are used in FlatCAM." msgstr "" -"Cela définit la taille de la police pour l'AppGUI Textbox\n" -"les éléments utilisés dans l'application." +"Ceci définit la taille de la police pour l'interface graphique de la zone de " +"texte\n" +"éléments utilisés dans FlatCAM." -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:253 -msgid "HUD" -msgstr "HUD" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:255 -msgid "This sets the font size for the Heads Up Display." -msgstr "Cela définit la taille de la police pour l'affichage tête haute." - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:280 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:269 msgid "Mouse Settings" msgstr "Paramètres de la souris" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:284 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:273 msgid "Cursor Shape" msgstr "Forme du curseur" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:286 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:275 msgid "" "Choose a mouse cursor shape.\n" "- Small -> with a customizable size.\n" @@ -8101,50 +10144,48 @@ msgstr "" "- Petit -> avec une taille personnalisable.\n" "- Grand -> Lignes infinies" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:292 -#: AppGUI/preferences/general/GeneralAppSettingsGroupUI.py:193 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:281 msgid "Small" msgstr "Petit" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:293 -#: AppGUI/preferences/general/GeneralAppSettingsGroupUI.py:194 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:282 msgid "Big" msgstr "Grand" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:300 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:289 msgid "Cursor Size" msgstr "Taille du curseur" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:302 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:291 msgid "Set the size of the mouse cursor, in pixels." msgstr "Définissez la taille du curseur de la souris, en pixels." -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:313 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:302 msgid "Cursor Width" msgstr "Largeur du curseur" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:315 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:304 msgid "Set the line width of the mouse cursor, in pixels." msgstr "Définissez la largeur de ligne du curseur de la souris, en pixels." -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:326 -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:333 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:315 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:322 msgid "Cursor Color" msgstr "Couleur du curseur" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:328 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:317 msgid "Check this box to color mouse cursor." msgstr "Cochez cette case pour colorer le curseur de la souris." -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:335 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:324 msgid "Set the color of the mouse cursor." msgstr "Définissez la couleur du curseur de la souris." -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:350 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:347 msgid "Pan Button" msgstr "Bouton pan" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:352 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:349 msgid "" "Select the mouse button to use for panning:\n" "- MMB --> Middle Mouse Button\n" @@ -8154,39 +10195,35 @@ msgstr "" "- MMB -> Bouton central de la souris\n" "- RMB -> bouton droit de la souris" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:356 -#: AppGUI/preferences/general/GeneralAppSettingsGroupUI.py:226 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:353 msgid "MMB" msgstr "MMB" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:357 -#: AppGUI/preferences/general/GeneralAppSettingsGroupUI.py:227 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:354 msgid "RMB" msgstr "RMB" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:363 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:360 msgid "Multiple Selection" msgstr "Sélection multiple" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:365 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:362 msgid "Select the key used for multiple selection." msgstr "Sélectionnez la clé utilisée pour la sélection multiple." -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:367 -#: AppGUI/preferences/general/GeneralAppSettingsGroupUI.py:233 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:364 msgid "CTRL" msgstr "CTRL" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:368 -#: AppGUI/preferences/general/GeneralAppSettingsGroupUI.py:234 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:365 msgid "SHIFT" msgstr "SHIFT" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:379 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:376 msgid "Delete object confirmation" msgstr "Supprimer la conf. de l'objet" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:381 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:378 msgid "" "When checked the application will ask for user confirmation\n" "whenever the Delete object(s) event is triggered, either by\n" @@ -8196,11 +10233,11 @@ msgstr "" "chaque fois que l'événement Delete object (s) est déclenché, soit par\n" "raccourci de menu ou raccourci clavier." -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:388 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:385 msgid "\"Open\" behavior" msgstr "Comportement \"ouvert\"" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:390 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:387 msgid "" "When checked the path for the last saved file is used when saving files,\n" "and the path for the last opened file is used when opening files.\n" @@ -8217,11 +10254,11 @@ msgstr "" "dernier: soit le\n" "chemin pour sauvegarder les fichiers ou chemin pour ouvrir les fichiers." -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:399 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:396 msgid "Enable ToolTips" msgstr "Activer les info-bulles" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:401 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:398 msgid "" "Check this box if you want to have toolTips displayed\n" "when hovering with mouse over items throughout the App." @@ -8229,11 +10266,11 @@ msgstr "" "Cochez cette case si vous souhaitez afficher les info-bulles\n" "lorsque vous survolez avec la souris sur des éléments dans l’application." -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:408 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:405 msgid "Allow Machinist Unsafe Settings" msgstr "Autoriser les paramètres dangereux du machiniste" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:410 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:407 msgid "" "If checked, some of the application settings will be allowed\n" "to have values that are usually unsafe to use.\n" @@ -8250,11 +10287,11 @@ msgstr "" "<>: Ne changez rien à moins que vous sachiez ce que vous " "faites !!!" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:422 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:419 msgid "Bookmarks limit" msgstr "Limite de favoris" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:424 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:421 msgid "" "The maximum number of bookmarks that may be installed in the menu.\n" "The number of bookmarks in the bookmark manager may be greater\n" @@ -8264,19 +10301,19 @@ msgstr "" "Le nombre de signets dans le gestionnaire de favoris peut être supérieur\n" "mais le menu tiendra seulement beaucoup." -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:433 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:430 msgid "Activity Icon" msgstr "Icône d'activité" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:435 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:432 msgid "Select the GIF that show activity when FlatCAM is active." msgstr "Sélectionnez le GIF qui affiche l'activité lorsque FlatCAM est actif." -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:29 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:29 msgid "App Preferences" -msgstr "Paramètres de l'app" +msgstr "Préférences de l'app" -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:40 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:40 msgid "" "The default value for FlatCAM units.\n" "Whatever is selected here is set every time\n" @@ -8286,15 +10323,15 @@ msgstr "" "Tout ce qui est sélectionné ici est défini à chaque fois\n" "FLatCAM est démarré." -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:44 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:44 msgid "IN" msgstr "PO" -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:50 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:50 msgid "Precision MM" msgstr "Précision MM" -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:52 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:52 msgid "" "The number of decimals used throughout the application\n" "when the set units are in METRIC system.\n" @@ -8304,11 +10341,11 @@ msgstr "" "lorsque les unités définies sont dans le système METRIC.\n" "Toute modification ici nécessite un redémarrage de l'application." -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:64 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:64 msgid "Precision INCH" msgstr "Précision INCH" -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:66 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:66 msgid "" "The number of decimals used throughout the application\n" "when the set units are in INCH system.\n" @@ -8318,11 +10355,11 @@ msgstr "" "lorsque les unités définies sont dans le système INCH.\n" "Toute modification ici nécessite un redémarrage de l'application." -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:78 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:78 msgid "Graphic Engine" msgstr "Moteur graphique" -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:79 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:79 msgid "" "Choose what graphic engine to use in FlatCAM.\n" "Legacy(2D) -> reduced functionality, slow performance but enhanced " @@ -8342,19 +10379,19 @@ msgstr "" "donc\n" "utilisez le mode Héritage (2D)." -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:85 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:85 msgid "Legacy(2D)" msgstr "Heritage(2D)" -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:86 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:86 msgid "OpenGL(3D)" msgstr "OpenGL(3D)" -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:98 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:98 msgid "APP. LEVEL" msgstr "APP. NIVEAU" -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:99 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:99 msgid "" "Choose the default level of usage for FlatCAM.\n" "BASIC level -> reduced functionality, best for beginner's.\n" @@ -8370,17 +10407,17 @@ msgstr "" "Le choix ici influencera les paramètres dans\n" "l'onglet Sélectionné pour toutes sortes d'objets FlatCAM." -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:105 -#: AppObjects/FlatCAMExcellon.py:707 AppObjects/FlatCAMGeometry.py:589 -#: AppObjects/FlatCAMGerber.py:227 AppTools/ToolIsolation.py:816 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:105 +#: flatcamObjects/FlatCAMExcellon.py:627 flatcamObjects/FlatCAMGeometry.py:531 +#: flatcamObjects/FlatCAMGerber.py:278 msgid "Advanced" msgstr "Avancé" -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:111 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:111 msgid "Portable app" msgstr "App. portable" -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:112 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:112 msgid "" "Choose if the application should run as portable.\n" "\n" @@ -8391,22 +10428,22 @@ msgstr "" "Choisissez si l'application doit être exécutée en tant que portable.\n" "\n" "Si coché, l'application fonctionnera en mode portable,\n" -"ce qui signifie que les fichiers de paramètres seront sauvegardés\n" +"ce qui signifie que les fichiers de préférences seront sauvegardés\n" "dans le dossier de l'application, dans le sous-dossier lib\\config." -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:125 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:125 msgid "Languages" msgstr "Langages" -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:126 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:126 msgid "Set the language used throughout FlatCAM." msgstr "Définissez la langue utilisée dans FlatCAM." -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:132 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:132 msgid "Apply Language" msgstr "Appliquer la langue" -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:133 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:133 msgid "" "Set the language used throughout FlatCAM.\n" "The app will restart after click." @@ -8414,32 +10451,32 @@ msgstr "" "Définissez la langue utilisée dans FlatCAM.\n" "L'application redémarrera après un clic." -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:147 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:147 msgid "Startup Settings" msgstr "Paramètres de démarrage" -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:151 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:151 msgid "Splash Screen" msgstr "Écran de démarrage" -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:153 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:153 msgid "Enable display of the splash screen at application startup." msgstr "" "Activer l'affichage de l'écran de démarrage au démarrage de l'application." -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:165 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:165 msgid "Sys Tray Icon" msgstr "Icône Sys Tray" -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:167 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:167 msgid "Enable display of FlatCAM icon in Sys Tray." msgstr "Activer l’affichage de l’icône FlatCAM dans Sys Tray." -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:172 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:172 msgid "Show Shell" msgstr "Afficher la ligne de commande" -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:174 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:174 msgid "" "Check this box if you want the shell to\n" "start automatically at startup." @@ -8447,11 +10484,11 @@ msgstr "" "Cochez cette case si vous voulez que le shell\n" "démarrer automatiquement au démarrage." -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:181 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:181 msgid "Show Project" msgstr "Afficher le projet" -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:183 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:183 msgid "" "Check this box if you want the project/selected/tool tab area to\n" "to be shown automatically at startup." @@ -8460,11 +10497,11 @@ msgstr "" "outil\n" "à afficher automatiquement au démarrage." -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:189 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:189 msgid "Version Check" msgstr "Vérification de version" -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:191 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:191 msgid "" "Check this box if you want to check\n" "for a new version automatically at startup." @@ -8472,11 +10509,11 @@ msgstr "" "Cochez cette case si vous voulez vérifier\n" "pour une nouvelle version automatiquement au démarrage." -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:198 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:198 msgid "Send Statistics" msgstr "Envoyer des statistiques" -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:200 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:200 msgid "" "Check this box if you agree to send anonymous\n" "stats automatically at startup, to help improve FlatCAM." @@ -8484,11 +10521,11 @@ msgstr "" "Cochez cette case si vous acceptez d'envoyer un message anonyme\n" "stats automatiquement au démarrage, pour aider à améliorer FlatCAM." -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:214 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:214 msgid "Workers number" msgstr "No de travailleurs" -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:216 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:216 msgid "" "The number of Qthreads made available to the App.\n" "A bigger number may finish the jobs more quickly but\n" @@ -8504,11 +10541,11 @@ msgstr "" "La valeur par défaut est 2.\n" "Après modification, il sera appliqué au prochain démarrage de l'application." -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:230 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:230 msgid "Geo Tolerance" msgstr "Géo Tolérance" -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:232 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:232 msgid "" "This value can counter the effect of the Circle Steps\n" "parameter. Default value is 0.005.\n" @@ -8524,15 +10561,15 @@ msgstr "" "performance. Une valeur plus élevée fournira plus\n" "performance au détriment du niveau de détail." -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:252 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:252 msgid "Save Settings" msgstr "Paramètres d'enregistrement" -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:256 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:256 msgid "Save Compressed Project" msgstr "Enregistrer le projet compressé" -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:258 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:258 msgid "" "Whether to save a compressed or uncompressed project.\n" "When checked it will save a compressed FlatCAM project." @@ -8540,11 +10577,11 @@ msgstr "" "Que ce soit pour sauvegarder un projet compressé ou non compressé.\n" "Lorsque coché, un projet FlatCAM compressé sera enregistré." -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:267 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:267 msgid "Compression" msgstr "Compression" -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:269 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:269 msgid "" "The level of compression used when saving\n" "a FlatCAM project. Higher value means better compression\n" @@ -8555,11 +10592,11 @@ msgstr "" "compression\n" "mais nécessitent plus d’utilisation de RAM et plus de temps de traitement." -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:280 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:280 msgid "Enable Auto Save" msgstr "Activer l'enregistrement auto" -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:282 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:282 msgid "" "Check to enable the autosave feature.\n" "When enabled, the application will try to save a project\n" @@ -8569,11 +10606,11 @@ msgstr "" "Lorsqu'elle est activée, l'application essaiera d'enregistrer un projet\n" "à l'intervalle défini." -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:292 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:292 msgid "Interval" msgstr "Intervalle" -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:294 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:294 msgid "" "Time interval for autosaving. In milliseconds.\n" "The application will try to save periodically but only\n" @@ -8586,77 +10623,77 @@ msgstr "" "Lorsqu'elles sont actives, certaines opérations peuvent bloquer cette " "fonctionnalité." -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:310 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:310 msgid "Text to PDF parameters" msgstr "Paramètres texte en PDF" -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:312 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:312 msgid "Used when saving text in Code Editor or in FlatCAM Document objects." msgstr "" "Utilisé lors de l'enregistrement de texte dans l'éditeur de code ou dans des " "objets de document FlatCAM." -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:321 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:321 msgid "Top Margin" msgstr "Marge supérieure" -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:323 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:323 msgid "Distance between text body and the top of the PDF file." msgstr "Distance entre le corps du texte et le haut du fichier PDF." -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:334 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:334 msgid "Bottom Margin" msgstr "Marge inférieure" -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:336 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:336 msgid "Distance between text body and the bottom of the PDF file." msgstr "Distance entre le corps du texte et le bas du fichier PDF." -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:347 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:347 msgid "Left Margin" msgstr "Marge de gauche" -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:349 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:349 msgid "Distance between text body and the left of the PDF file." msgstr "Distance entre le corps du texte et la gauche du fichier PDF." -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:360 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:360 msgid "Right Margin" msgstr "Marge droite" -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:362 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:362 msgid "Distance between text body and the right of the PDF file." msgstr "Distance entre le corps du texte et la droite du fichier PDF." -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:26 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:26 msgid "GUI Preferences" -msgstr "Paramètres de GUI" +msgstr "Préférences de GUI" -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:36 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:36 msgid "Theme" msgstr "Thème" -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:38 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:38 msgid "" -"Select a theme for the application.\n" +"Select a theme for FlatCAM.\n" "It will theme the plot area." msgstr "" -"Sélectionnez un thème pour l'application.\n" -"Il aura pour thème la zone d'affichage." +"Sélectionnez un thème pour FlatCAM.\n" +"Il aura pour thème la zone de traçage." -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:43 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:43 msgid "Light" msgstr "Lumière" -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:44 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:44 msgid "Dark" msgstr "Noir" -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:51 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:51 msgid "Use Gray Icons" msgstr "Utiliser des icônes grises" -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:53 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:53 msgid "" "Check this box to use a set of icons with\n" "a lighter (gray) color. To be used when a\n" @@ -8666,82 +10703,97 @@ msgstr "" "une couleur plus claire (grise). À utiliser lorsqu'un\n" "le thème sombre complet est appliqué." -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:73 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:59 +msgid "Apply Theme" +msgstr "Appliquer le thème" + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:61 +msgid "" +"Select a theme for FlatCAM.\n" +"It will theme the plot area.\n" +"The application will restart after change." +msgstr "" +"Sélectionnez un thème pour FlatCAM.\n" +"Il aura pour thème la zone de traçage.\n" +"L'application redémarrera après le changement." + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:73 msgid "Layout" msgstr "Disposition" -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:75 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:75 msgid "" -"Select a layout for the application.\n" +"Select an layout for FlatCAM.\n" "It is applied immediately." msgstr "" -"Sélectionnez une mise en page pour l'application.\n" +"Sélectionnez une mise en page pour FlatCAM.\n" "Il est appliqué immédiatement." -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:95 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:95 msgid "Style" msgstr "Style" -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:97 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:97 msgid "" -"Select a style for the application.\n" +"Select an style for FlatCAM.\n" "It will be applied at the next app start." msgstr "" -"Sélectionnez un style pour l'application.\n" +"Sélectionnez un style pour FlatCAM.\n" "Il sera appliqué au prochain démarrage de l'application." -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:111 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:111 msgid "Activate HDPI Support" msgstr "Activer le support HDPI" -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:113 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:113 msgid "" -"Enable High DPI support for the application.\n" +"Enable High DPI support for FlatCAM.\n" "It will be applied at the next app start." msgstr "" -"Activer la prise en charge haute DPI pour l'application.\n" +"Activer la prise en charge haute DPI pour FlatCAM.\n" "Il sera appliqué au prochain démarrage de l'application." -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:127 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:127 msgid "Display Hover Shape" msgstr "Afficher la forme de survol" -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:129 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:129 msgid "" -"Enable display of a hover shape for the application objects.\n" +"Enable display of a hover shape for FlatCAM objects.\n" "It is displayed whenever the mouse cursor is hovering\n" "over any kind of not-selected object." msgstr "" -"Activez l'affichage d'une forme de survol pour les objets d'application.\n" -"Il s'affiche chaque fois que le curseur de la souris survole\n" +"Activer l'affichage d'une forme de survol pour les objets FlatCAM.\n" +"Il est affiché chaque fois que le curseur de la souris est en vol " +"stationnaire\n" "sur tout type d'objet non sélectionné." -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:136 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:136 msgid "Display Selection Shape" msgstr "Afficher la forme de sélection" -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:138 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:138 msgid "" -"Enable the display of a selection shape for the application objects.\n" +"Enable the display of a selection shape for FlatCAM objects.\n" "It is displayed whenever the mouse selects an object\n" "either by clicking or dragging mouse from left to right or\n" "right to left." msgstr "" -"Activez l'affichage d'une forme de sélection pour les objets d'application.\n" -"Il s'affiche chaque fois que la souris sélectionne un objet\n" +"Activer l'affichage d'une forme de sélection pour les objets FlatCAM.\n" +"Il est affiché chaque fois que la souris sélectionne un objet\n" "soit en cliquant ou en faisant glisser la souris de gauche à droite ou\n" "de droite à gauche." -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:151 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:151 msgid "Left-Right Selection Color" msgstr "Couleur de sélection gauche-droite" -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:156 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:156 msgid "Set the line color for the 'left to right' selection box." msgstr "" "Définissez la couleur de ligne pour la zone de sélection \"gauche à droite\"." -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:165 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:172 msgid "" "Set the fill color for the selection box\n" "in case that the selection is done from left to right.\n" @@ -8753,22 +10805,22 @@ msgstr "" "Les 6 premiers chiffres correspondent à la couleur et les 2 derniers\n" "les chiffres correspondent au niveau alpha (transparence)." -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:178 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:192 msgid "Set the fill transparency for the 'left to right' selection box." msgstr "" "Définissez la transparence de remplissage pour la zone de sélection \"gauche " "à droite\"." -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:191 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:216 msgid "Right-Left Selection Color" msgstr "Couleur de sélection droite-gauche" -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:197 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:222 msgid "Set the line color for the 'right to left' selection box." msgstr "" "Définissez la couleur de ligne pour la zone de sélection «droite à gauche»." -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:207 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:239 msgid "" "Set the fill color for the selection box\n" "in case that the selection is done from right to left.\n" @@ -8780,55 +10832,46 @@ msgstr "" "Les 6 premiers chiffres correspondent à la couleur et les 2 derniers\n" "les chiffres correspondent au niveau alpha (transparence)." -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:220 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:259 msgid "Set the fill transparency for selection 'right to left' box." msgstr "" "Définissez la transparence de remplissage pour la zone de sélection \"Droite " "à gauche\"." -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:236 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:286 msgid "Editor Color" msgstr "Couleur de l'éditeur" -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:240 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:290 msgid "Drawing" msgstr "Dessin" -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:242 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:292 msgid "Set the color for the shape." msgstr "Définissez la couleur pour la forme." -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:250 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:275 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:311 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:258 -#: AppTools/ToolIsolation.py:494 AppTools/ToolNCC.py:539 -#: AppTools/ToolPaint.py:455 -msgid "Selection" -msgstr "Sélection" - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:252 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:309 msgid "Set the color of the shape when selected." msgstr "Définit la couleur de la forme lorsqu'elle est sélectionnée." -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:268 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:332 msgid "Project Items Color" msgstr "Éléments du projet Couleur" -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:272 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:336 msgid "Enabled" msgstr "Activé" -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:274 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:338 msgid "Set the color of the items in Project Tab Tree." msgstr "" "Définissez la couleur des éléments dans l'arborescence de l'onglet Projet." -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:281 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:352 msgid "Disabled" msgstr "Désactivé" -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:283 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:354 msgid "" "Set the color of the items in Project Tab Tree,\n" "for the case when the items are disabled." @@ -8836,11 +10879,11 @@ msgstr "" "Définir la couleur des éléments dans l'arborescence de l'onglet Projet,\n" "pour le cas où les éléments sont désactivés." -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:292 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:370 msgid "Project AutoHide" msgstr "Masquer auto le projet" -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:294 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:372 msgid "" "Check this box if you want the project/selected/tool tab area to\n" "hide automatically when there are no objects loaded and\n" @@ -8851,11 +10894,11 @@ msgstr "" "se cacher automatiquement quand il n'y a pas d'objets chargés et\n" "pour montrer chaque fois qu'un nouvel objet est créé." -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:28 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:27 msgid "Geometry Adv. Options" msgstr "Géométrie Adv. Les options" -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:36 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:35 msgid "" "A list of Geometry advanced parameters.\n" "Those parameters are available only for\n" @@ -8865,14 +10908,14 @@ msgstr "" "Ces paramètres ne sont disponibles que pour\n" "App avancée. Niveau." -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:46 -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:112 -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:134 -#: AppTools/ToolCalibration.py:125 AppTools/ToolSolderPaste.py:236 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:45 +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:112 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:134 +#: flatcamTools/ToolCalibration.py:125 flatcamTools/ToolSolderPaste.py:240 msgid "Toolchange X-Y" msgstr "Changement d'outils X-Y" -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:58 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:56 msgid "" "Height of the tool just after starting the work.\n" "Delete the value if you don't need this feature." @@ -8880,11 +10923,11 @@ msgstr "" "Hauteur de l'outil juste après le début du travail.\n" "Supprimez la valeur si vous n'avez pas besoin de cette fonctionnalité." -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:161 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:158 msgid "Segment X size" msgstr "Taille du seg. X" -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:163 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:160 msgid "" "The size of the trace segment on the X axis.\n" "Useful for auto-leveling.\n" @@ -8894,11 +10937,11 @@ msgstr "" "Utile pour le nivellement automatique.\n" "Une valeur de 0 signifie aucune segmentation sur l'axe X." -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:177 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:174 msgid "Segment Y size" msgstr "Taille du seg. Y" -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:179 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:176 msgid "" "The size of the trace segment on the Y axis.\n" "Useful for auto-leveling.\n" @@ -8908,11 +10951,11 @@ msgstr "" "Utile pour le nivellement automatique.\n" "Une valeur de 0 signifie aucune segmentation sur l'axe Y." -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:200 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:192 msgid "Area Exclusion" msgstr "Exclusion de zone" -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:202 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:194 msgid "" "Area exclusion parameters.\n" "Those parameters are available only for\n" @@ -8920,27 +10963,14 @@ msgid "" msgstr "" "Paramètres d'exclusion de zone.\n" "Ces paramètres sont disponibles uniquement pour\n" -"Application Avancée. Niveau." +"Application avancée. Niveau." -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:209 -msgid "Exclusion areas" -msgstr "Zones d'exclusion" - -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:220 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:293 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:322 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:286 -#: AppTools/ToolIsolation.py:540 AppTools/ToolNCC.py:578 -#: AppTools/ToolPaint.py:521 -msgid "Shape" -msgstr "Forme" - -#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:33 +#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:33 msgid "A list of Geometry Editor parameters." msgstr "Une liste de paramètres de L'éditeur de Géométrie." -#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:43 -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:174 +#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:43 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:196 msgid "" "Set the number of selected geometry\n" "items above which the utility geometry\n" @@ -8954,22 +10984,11 @@ msgstr "" "Augmente les performances lors du déplacement d'un\n" "grand nombre d'éléments géométriques." -#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:58 -msgid "" -"Milling type:\n" -"- climb / best for precision milling and to reduce tool usage\n" -"- conventional / useful when there is no backlash compensation" -msgstr "" -"Type de fraisage:\n" -"- montée / idéal pour le fraisage de précision et pour réduire l'utilisation " -"d'outils\n" -"- conventionnel / utile quand il n'y a pas de compensation de jeu" - -#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:27 +#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:27 msgid "Geometry General" msgstr "Géométrie Général" -#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:59 +#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:49 msgid "" "The number of circle steps for Geometry \n" "circle and arc shapes linear approximation." @@ -8977,20 +10996,18 @@ msgstr "" "Nombre d'étapes de cercle pour Géométrie\n" "approximation linéaire des formes de cercle et d'arc." -#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:73 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:41 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:41 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:48 -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:42 +#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:63 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:41 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:48 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:42 msgid "Tools Dia" -msgstr "Diam. de l'outils" +msgstr "Dia. de l'outils" -#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:75 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:108 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:43 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:43 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:50 -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:44 +#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:65 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:108 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:43 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:50 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:44 msgid "" "Diameters of the tools, separated by comma.\n" "The value of the diameter has to use the dot decimals separator.\n" @@ -9000,11 +11017,15 @@ msgstr "" "La valeur du diamètre doit utiliser le séparateur de décimales de points.\n" "Valeurs valides: 0,3, 1,0" -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:29 +#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:80 +msgid "Geometry Object Color" +msgstr "Couleur de l'objet Géométrie" + +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:28 msgid "Geometry Options" msgstr "Options de Géométrie" -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:37 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:36 msgid "" "Create a CNC Job object\n" "tracing the contours of this\n" @@ -9014,11 +11035,11 @@ msgstr "" "traçant les contours de cette\n" "Objet de géométrie." -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:81 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:80 msgid "Depth/Pass" msgstr "Profondeur/Pass" -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:83 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:82 msgid "" "The depth to cut on each pass,\n" "when multidepth is enabled.\n" @@ -9032,11 +11053,11 @@ msgstr "" "c'est une fraction de la profondeur\n" "qui a une valeur négative." -#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:27 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:27 msgid "Gerber Adv. Options" msgstr "Options avancées Gerber" -#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:33 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:33 msgid "" "A list of Gerber advanced parameters.\n" "Those parameters are available only for\n" @@ -9046,15 +11067,11 @@ msgstr "" "Ces paramètres ne sont disponibles que pour\n" "App avancée. Niveau." -#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:43 -msgid "\"Follow\"" -msgstr "\"Suivre\"" - -#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:52 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:52 msgid "Table Show/Hide" msgstr "Tableau Afficher/Masquer" -#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:54 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:54 msgid "" "Toggle the display of the Gerber Apertures Table.\n" "Also, on hide, it will delete all mark shapes\n" @@ -9064,17 +11081,15 @@ msgstr "" "En outre, sur cacher, il va supprimer toutes les formes de marque\n" "qui sont dessinés sur une toile." -#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:67 -#: AppObjects/FlatCAMGerber.py:391 AppTools/ToolCopperThieving.py:1026 -#: AppTools/ToolCopperThieving.py:1215 AppTools/ToolCopperThieving.py:1227 -#: AppTools/ToolIsolation.py:1593 AppTools/ToolNCC.py:2079 -#: AppTools/ToolNCC.py:2190 AppTools/ToolNCC.py:2205 AppTools/ToolNCC.py:3163 -#: AppTools/ToolNCC.py:3268 AppTools/ToolNCC.py:3283 AppTools/ToolNCC.py:3549 -#: AppTools/ToolNCC.py:3650 AppTools/ToolNCC.py:3665 camlib.py:992 -msgid "Buffering" -msgstr "Mise en mémoire tampon" +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:134 +msgid "Exterior" +msgstr "Extérieur" -#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:69 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:135 +msgid "Interior" +msgstr "Intérieur" + +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:148 msgid "" "Buffering type:\n" "- None --> best performance, fast file loading but no so good display\n" @@ -9088,20 +11103,20 @@ msgstr "" "par défaut.\n" "<< AVERTISSEMENT >>: Ne changez cela que si vous savez ce que vous faites !!!" -#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:74 -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:88 -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:196 -#: AppTools/ToolFiducials.py:204 AppTools/ToolFilm.py:238 -#: AppTools/ToolProperties.py:452 AppTools/ToolProperties.py:455 -#: AppTools/ToolProperties.py:458 AppTools/ToolProperties.py:483 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:153 +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:88 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:207 +#: flatcamTools/ToolFiducials.py:201 flatcamTools/ToolFilm.py:255 +#: flatcamTools/ToolProperties.py:452 flatcamTools/ToolProperties.py:455 +#: flatcamTools/ToolProperties.py:458 flatcamTools/ToolProperties.py:483 msgid "None" msgstr "Aucun" -#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:80 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:159 msgid "Simplify" msgstr "Simplifier" -#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:82 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:161 msgid "" "When checked all the Gerber polygons will be\n" "loaded with simplification having a set tolerance.\n" @@ -9111,19 +11126,19 @@ msgstr "" "chargé de simplification ayant une tolérance définie.\n" "<< AVERTISSEMENT >>: Ne changez cela que si vous savez ce que vous faites !!!" -#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:89 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:168 msgid "Tolerance" msgstr "Tolérance" -#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:90 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:169 msgid "Tolerance for polygon simplification." msgstr "Tolérance pour la simplification des polygones." -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:33 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:33 msgid "A list of Gerber Editor parameters." msgstr "Une liste de paramètres de l'éditeur Gerber." -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:43 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:43 msgid "" "Set the number of selected Gerber geometry\n" "items above which the utility geometry\n" @@ -9137,23 +11152,23 @@ msgstr "" "Augmente les performances lors du déplacement d'un\n" "grand nombre d'éléments géométriques." -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:56 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:56 msgid "New Aperture code" msgstr "Nouveau code d'ouverture" -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:69 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:69 msgid "New Aperture size" msgstr "Nouvelle taille d'ouverture" -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:71 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:71 msgid "Size for the new aperture" msgstr "Taille pour la nouvelle ouverture" -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:82 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:82 msgid "New Aperture type" msgstr "Nouveau type d'ouverture" -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:84 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:84 msgid "" "Type for the new aperture.\n" "Can be 'C', 'R' or 'O'." @@ -9161,51 +11176,51 @@ msgstr "" "Tapez pour la nouvelle ouverture.\n" "Peut être 'C', 'R' ou 'O'." -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:106 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:106 msgid "Aperture Dimensions" msgstr "Dimensions d'ouverture" -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:117 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:116 msgid "Linear Pad Array" msgstr "Tableau de Pad Linéaire" -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:161 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:160 msgid "Circular Pad Array" msgstr "Tableau de Pad Circulaire" -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:197 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:196 msgid "Distance at which to buffer the Gerber element." msgstr "Distance à laquelle tamponner l'élément de Gerber." -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:206 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:205 msgid "Scale Tool" msgstr "Outil d'échelle" -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:212 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:211 msgid "Factor to scale the Gerber element." msgstr "Facteur d'échelle de l'élément de Gerber." -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:225 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:224 msgid "Threshold low" msgstr "Seuil bas" -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:227 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:226 msgid "Threshold value under which the apertures are not marked." msgstr "Valeur seuil sous laquelle les ouvertures ne sont pas marquées." -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:237 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:236 msgid "Threshold high" msgstr "Seuil haut" -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:239 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:238 msgid "Threshold value over which the apertures are not marked." msgstr "Valeur seuil sur laquelle les ouvertures ne sont pas marquées." -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:27 +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:27 msgid "Gerber Export" msgstr "Gerber exportation" -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:33 +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:33 msgid "" "The parameters set here are used in the file exported\n" "when using the File -> Export -> Export Gerber menu entry." @@ -9214,14 +11229,14 @@ msgstr "" "lors de l'utilisation de l'entrée de menu Fichier -> Exporter -> Exporter " "Gerber." -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:44 -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:50 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:84 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:90 +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:44 +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:50 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:84 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:90 msgid "The units used in the Gerber file." msgstr "Les unités utilisées dans le fichier Gerber." -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:58 +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:58 msgid "" "The number of digits in the whole part of the number\n" "and in the fractional part of the number." @@ -9229,7 +11244,7 @@ msgstr "" "Le nombre de chiffres dans la partie entière du numéro\n" "et dans la fraction du nombre." -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:71 +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:71 msgid "" "This numbers signify the number of digits in\n" "the whole part of Gerber coordinates." @@ -9237,7 +11252,7 @@ msgstr "" "Ces chiffres représentent le nombre de chiffres en\n" "toute la partie des coordonnées de Gerber." -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:87 +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:87 msgid "" "This numbers signify the number of digits in\n" "the decimal part of Gerber coordinates." @@ -9245,10 +11260,10 @@ msgstr "" "Ces chiffres représentent le nombre de chiffres en\n" "la partie décimale des coordonnées de Gerber." -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:99 -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:109 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:100 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:110 +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:99 +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:109 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:100 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:110 msgid "" "This sets the type of Gerber zeros.\n" "If LZ then Leading Zeros are removed and\n" @@ -9262,11 +11277,15 @@ msgstr "" "Si TZ est coché, les zéros de fin sont supprimés\n" "et les principaux zéros sont conservés." -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:27 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:27 msgid "Gerber General" msgstr "Gerber Général" -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:61 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:45 +msgid "M-Color" +msgstr "Couleur-M" + +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:61 msgid "" "The number of circle steps for Gerber \n" "circular aperture linear approximation." @@ -9274,11 +11293,11 @@ msgstr "" "Le nombre d'étapes du cercle pour Gerber\n" "approximation linéaire ouverture circulaire." -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:73 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:73 msgid "Default Values" msgstr "Défauts" -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:75 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:75 msgid "" "Those values will be used as fallback values\n" "in case that they are not found in the Gerber file." @@ -9286,11 +11305,11 @@ msgstr "" "Ces valeurs seront utilisées comme valeurs de secours\n" "au cas où ils ne seraient pas trouvés dans le fichier Gerber." -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:126 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:126 msgid "Clean Apertures" msgstr "Ouvertures propres" -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:128 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:128 msgid "" "Will remove apertures that do not have geometry\n" "thus lowering the number of apertures in the Gerber object." @@ -9298,11 +11317,11 @@ msgstr "" "Supprime les ouvertures qui n'ont pas de géométrie\n" "abaissant ainsi le nombre d'ouvertures dans l'objet Gerber." -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:134 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:134 msgid "Polarity change buffer" msgstr "Tampon de changement de polarité" -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:136 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:136 msgid "" "Will apply extra buffering for the\n" "solid geometry when we have polarity changes.\n" @@ -9314,15 +11333,23 @@ msgstr "" "Peut aider à charger des fichiers Gerber qui autrement\n" "ne se charge pas correctement." -#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:29 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:149 +msgid "Gerber Object Color" +msgstr "Couleur d'objet Gerber" + +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:29 msgid "Gerber Options" msgstr "Options de Gerber" -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:27 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:107 +msgid "Combine Passes" +msgstr "Combiner les passes" + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:27 msgid "Copper Thieving Tool Options" msgstr "Options d'outils de Copper Thieving" -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:39 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:39 msgid "" "A tool to generate a Copper Thieving that can be added\n" "to a selected Gerber file." @@ -9330,17 +11357,17 @@ msgstr "" "Un outil pour générer un Copper Thieving qui peut être ajouté\n" "dans un fichier Gerber sélectionné." -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:47 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:47 msgid "Number of steps (lines) used to interpolate circles." msgstr "Nombre d'étapes (lignes) utilisées pour interpoler les cercles." -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:57 -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:261 -#: AppTools/ToolCopperThieving.py:100 AppTools/ToolCopperThieving.py:435 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:57 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:261 +#: flatcamTools/ToolCopperThieving.py:96 flatcamTools/ToolCopperThieving.py:431 msgid "Clearance" msgstr "Dégagement" -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:59 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:59 msgid "" "This set the distance between the copper Thieving components\n" "(the polygon fill may be split in multiple polygons)\n" @@ -9350,47 +11377,36 @@ msgstr "" "(le remplissage du polygone peut être divisé en plusieurs polygones)\n" "et les traces de cuivre dans le fichier Gerber." -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:86 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309 -#: AppTools/ToolCopperThieving.py:129 AppTools/ToolNCC.py:535 -#: AppTools/ToolNCC.py:1324 AppTools/ToolNCC.py:1655 AppTools/ToolNCC.py:1948 -#: AppTools/ToolNCC.py:2012 AppTools/ToolNCC.py:3027 AppTools/ToolNCC.py:3036 -#: defaults.py:419 tclCommands/TclCommandCopperClear.py:190 -msgid "Itself" -msgstr "Lui-même" - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:87 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:285 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280 -#: AppTools/ToolCopperThieving.py:130 AppTools/ToolIsolation.py:504 -#: AppTools/ToolIsolation.py:1297 AppTools/ToolIsolation.py:1671 -#: AppTools/ToolNCC.py:535 AppTools/ToolNCC.py:1334 AppTools/ToolNCC.py:1668 -#: AppTools/ToolNCC.py:1964 AppTools/ToolNCC.py:2019 AppTools/ToolPaint.py:485 -#: AppTools/ToolPaint.py:945 AppTools/ToolPaint.py:1471 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:87 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280 +#: flatcamTools/ToolCopperThieving.py:126 flatcamTools/ToolNCC.py:535 +#: flatcamTools/ToolNCC.py:1316 flatcamTools/ToolNCC.py:1647 +#: flatcamTools/ToolNCC.py:1935 flatcamTools/ToolNCC.py:1990 +#: flatcamTools/ToolPaint.py:486 flatcamTools/ToolPaint.py:946 +#: flatcamTools/ToolPaint.py:1452 msgid "Area Selection" msgstr "Sélection de zone" -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:88 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:285 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280 -#: AppTools/ToolCopperThieving.py:131 AppTools/ToolDblSided.py:216 -#: AppTools/ToolIsolation.py:504 AppTools/ToolIsolation.py:1711 -#: AppTools/ToolNCC.py:535 AppTools/ToolNCC.py:1684 AppTools/ToolNCC.py:1970 -#: AppTools/ToolNCC.py:2027 AppTools/ToolNCC.py:2408 AppTools/ToolNCC.py:2656 -#: AppTools/ToolNCC.py:3072 AppTools/ToolPaint.py:485 AppTools/ToolPaint.py:930 -#: AppTools/ToolPaint.py:1487 tclCommands/TclCommandCopperClear.py:192 -#: tclCommands/TclCommandPaint.py:166 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:88 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280 +#: flatcamTools/ToolCopperThieving.py:127 flatcamTools/ToolDblSided.py:216 +#: flatcamTools/ToolNCC.py:535 flatcamTools/ToolNCC.py:1663 +#: flatcamTools/ToolNCC.py:1941 flatcamTools/ToolNCC.py:1998 +#: flatcamTools/ToolNCC.py:2306 flatcamTools/ToolNCC.py:2586 +#: flatcamTools/ToolNCC.py:3012 flatcamTools/ToolPaint.py:486 +#: flatcamTools/ToolPaint.py:931 flatcamTools/ToolPaint.py:1468 +#: tclCommands/TclCommandCopperClear.py:192 tclCommands/TclCommandPaint.py:166 msgid "Reference Object" msgstr "Objet de référence" -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:90 -#: AppTools/ToolCopperThieving.py:133 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:90 +#: flatcamTools/ToolCopperThieving.py:129 msgid "Reference:" msgstr "Référence:" -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:92 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:92 msgid "" "- 'Itself' - the copper Thieving extent is based on the object extent.\n" "- 'Area Selection' - left mouse click to start selection of the area to be " @@ -9405,29 +11421,29 @@ msgstr "" "- «Objet de référence» - effectuera un vol de cuivre dans la zone spécifiée " "par un autre objet." -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:101 -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:76 -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:188 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:76 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:190 -#: AppTools/ToolCopperThieving.py:175 AppTools/ToolExtractDrills.py:102 -#: AppTools/ToolExtractDrills.py:240 AppTools/ToolPunchGerber.py:113 -#: AppTools/ToolPunchGerber.py:268 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:101 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:76 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:188 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:76 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:190 +#: flatcamTools/ToolCopperThieving.py:171 flatcamTools/ToolExtractDrills.py:102 +#: flatcamTools/ToolExtractDrills.py:240 flatcamTools/ToolPunchGerber.py:113 +#: flatcamTools/ToolPunchGerber.py:268 msgid "Rectangular" msgstr "Rectangulaire" -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:102 -#: AppTools/ToolCopperThieving.py:176 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:102 +#: flatcamTools/ToolCopperThieving.py:172 msgid "Minimal" msgstr "Minimal" -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:104 -#: AppTools/ToolCopperThieving.py:178 AppTools/ToolFilm.py:94 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:104 +#: flatcamTools/ToolCopperThieving.py:174 flatcamTools/ToolFilm.py:113 msgid "Box Type:" msgstr "Type de Box:" -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:106 -#: AppTools/ToolCopperThieving.py:180 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:106 +#: flatcamTools/ToolCopperThieving.py:176 msgid "" "- 'Rectangular' - the bounding box will be of rectangular shape.\n" "- 'Minimal' - the bounding box will be the convex hull shape." @@ -9435,28 +11451,28 @@ msgstr "" "- 'Rectangulaire' - le cadre de délimitation sera de forme rectangulaire.\n" "- 'Minimal' - le cadre de délimitation aura la forme d'une coque convexe." -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:120 -#: AppTools/ToolCopperThieving.py:196 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:120 +#: flatcamTools/ToolCopperThieving.py:192 msgid "Dots Grid" msgstr "Grille de points" -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:121 -#: AppTools/ToolCopperThieving.py:197 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:121 +#: flatcamTools/ToolCopperThieving.py:193 msgid "Squares Grid" msgstr "Grille de carrés" -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:122 -#: AppTools/ToolCopperThieving.py:198 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:122 +#: flatcamTools/ToolCopperThieving.py:194 msgid "Lines Grid" msgstr "Grille de lignes" -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:124 -#: AppTools/ToolCopperThieving.py:200 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:124 +#: flatcamTools/ToolCopperThieving.py:196 msgid "Fill Type:" msgstr "Type de remplissage:" -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:126 -#: AppTools/ToolCopperThieving.py:202 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:126 +#: flatcamTools/ToolCopperThieving.py:198 msgid "" "- 'Solid' - copper thieving will be a solid polygon.\n" "- 'Dots Grid' - the empty area will be filled with a pattern of dots.\n" @@ -9468,66 +11484,67 @@ msgstr "" "- 'Grille de carrés' - la zone vide sera remplie d'un motif de carrés.\n" "- 'Grille de lignes' - la zone vide sera remplie d'un motif de lignes." -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:134 -#: AppTools/ToolCopperThieving.py:221 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:134 +#: flatcamTools/ToolCopperThieving.py:217 msgid "Dots Grid Parameters" msgstr "Paramètres de la grille de points" -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:140 -#: AppTools/ToolCopperThieving.py:227 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:140 +#: flatcamTools/ToolCopperThieving.py:223 msgid "Dot diameter in Dots Grid." msgstr "Diamètre des points dans la grille des points." -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:151 -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:180 -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:209 -#: AppTools/ToolCopperThieving.py:238 AppTools/ToolCopperThieving.py:278 -#: AppTools/ToolCopperThieving.py:318 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:151 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:180 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:209 +#: flatcamTools/ToolCopperThieving.py:234 +#: flatcamTools/ToolCopperThieving.py:274 +#: flatcamTools/ToolCopperThieving.py:314 msgid "Spacing" msgstr "Espacement" -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:153 -#: AppTools/ToolCopperThieving.py:240 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:153 +#: flatcamTools/ToolCopperThieving.py:236 msgid "Distance between each two dots in Dots Grid." msgstr "Distance entre deux points dans la grille de points." -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:163 -#: AppTools/ToolCopperThieving.py:261 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:163 +#: flatcamTools/ToolCopperThieving.py:257 msgid "Squares Grid Parameters" msgstr "Paramètres de la grille des carrés" -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:169 -#: AppTools/ToolCopperThieving.py:267 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:169 +#: flatcamTools/ToolCopperThieving.py:263 msgid "Square side size in Squares Grid." msgstr "Taille du côté carré dans la grille des carrés." -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:182 -#: AppTools/ToolCopperThieving.py:280 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:182 +#: flatcamTools/ToolCopperThieving.py:276 msgid "Distance between each two squares in Squares Grid." msgstr "Distance entre deux carrés dans la grille des carrés." -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:192 -#: AppTools/ToolCopperThieving.py:301 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:192 +#: flatcamTools/ToolCopperThieving.py:297 msgid "Lines Grid Parameters" msgstr "Paramètres de grille de lignes" -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:198 -#: AppTools/ToolCopperThieving.py:307 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:198 +#: flatcamTools/ToolCopperThieving.py:303 msgid "Line thickness size in Lines Grid." msgstr "Taille d'épaisseur de ligne dans la grille de lignes." -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:211 -#: AppTools/ToolCopperThieving.py:320 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:211 +#: flatcamTools/ToolCopperThieving.py:316 msgid "Distance between each two lines in Lines Grid." msgstr "Distance entre deux lignes dans la grille de lignes." -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:221 -#: AppTools/ToolCopperThieving.py:358 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:221 +#: flatcamTools/ToolCopperThieving.py:354 msgid "Robber Bar Parameters" msgstr "Paramètres de la Robber Bar" -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:223 -#: AppTools/ToolCopperThieving.py:360 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:223 +#: flatcamTools/ToolCopperThieving.py:356 msgid "" "Parameters used for the robber bar.\n" "Robber bar = copper border to help in pattern hole plating." @@ -9535,35 +11552,33 @@ msgstr "" "Paramètres utilisés pour la Robber Bar.\n" "Robber Bar = bordure en cuivre pour faciliter le placage des trous." -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:231 -#: AppTools/ToolCopperThieving.py:368 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:231 +#: flatcamTools/ToolCopperThieving.py:364 msgid "Bounding box margin for robber bar." msgstr "Marge de la zone de délimitation pour la Robber Bar." -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:242 -#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:42 -#: AppTools/ToolCopperThieving.py:379 AppTools/ToolCorners.py:122 -#: AppTools/ToolEtchCompensation.py:152 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:242 +#: flatcamTools/ToolCopperThieving.py:375 msgid "Thickness" msgstr "Épaisseur" -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:244 -#: AppTools/ToolCopperThieving.py:381 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:244 +#: flatcamTools/ToolCopperThieving.py:377 msgid "The robber bar thickness." msgstr "L'épaisseur de la Robber Bar." -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:254 -#: AppTools/ToolCopperThieving.py:412 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:254 +#: flatcamTools/ToolCopperThieving.py:408 msgid "Pattern Plating Mask" msgstr "Masque de placage de motifs" -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:256 -#: AppTools/ToolCopperThieving.py:414 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:256 +#: flatcamTools/ToolCopperThieving.py:410 msgid "Generate a mask for pattern plating." msgstr "Générez un masque pour le placage de motifs." -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:263 -#: AppTools/ToolCopperThieving.py:437 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:263 +#: flatcamTools/ToolCopperThieving.py:433 msgid "" "The distance between the possible copper thieving elements\n" "and/or robber bar and the actual openings in the mask." @@ -9571,27 +11586,25 @@ msgstr "" "La distance entre les éléments de Copper Thieving possibles\n" "et / ou Robber Bar et les ouvertures réelles dans le masque." -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:27 +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:27 msgid "Calibration Tool Options" msgstr "Options de l'outil d'Étalonnage" -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:38 -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:38 -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:38 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:38 -#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:37 -#: AppTools/ToolCopperThieving.py:95 AppTools/ToolCorners.py:117 -#: AppTools/ToolFiducials.py:154 +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:38 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:38 +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:38 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:38 +#: flatcamTools/ToolCopperThieving.py:91 flatcamTools/ToolFiducials.py:151 msgid "Parameters used for this tool." msgstr "Paramètres utilisés pour cet outil." -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:43 -#: AppTools/ToolCalibration.py:181 +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:43 +#: flatcamTools/ToolCalibration.py:181 msgid "Source Type" msgstr "Type de Source" -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:44 -#: AppTools/ToolCalibration.py:182 +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:44 +#: flatcamTools/ToolCalibration.py:182 msgid "" "The source of calibration points.\n" "It can be:\n" @@ -9604,33 +11617,33 @@ msgstr "" "- Libre -> cliquez librement sur le canevas pour acquérir les points " "d'étalonnage" -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:49 -#: AppTools/ToolCalibration.py:187 +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:49 +#: flatcamTools/ToolCalibration.py:187 msgid "Free" msgstr "Libre" -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:63 -#: AppTools/ToolCalibration.py:76 +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:63 +#: flatcamTools/ToolCalibration.py:76 msgid "Height (Z) for travelling between the points." msgstr "Hauteur (Z) pour voyager entre les points." -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:75 -#: AppTools/ToolCalibration.py:88 +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:75 +#: flatcamTools/ToolCalibration.py:88 msgid "Verification Z" msgstr "Vérification Z" -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:77 -#: AppTools/ToolCalibration.py:90 +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:77 +#: flatcamTools/ToolCalibration.py:90 msgid "Height (Z) for checking the point." msgstr "Hauteur (Z) pour vérifier le point." -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:89 -#: AppTools/ToolCalibration.py:102 +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:89 +#: flatcamTools/ToolCalibration.py:102 msgid "Zero Z tool" msgstr "Remise à Zéro du Z pour l'Outil" -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:91 -#: AppTools/ToolCalibration.py:104 +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:91 +#: flatcamTools/ToolCalibration.py:104 msgid "" "Include a sequence to zero the height (Z)\n" "of the verification tool." @@ -9638,13 +11651,13 @@ msgstr "" "Inclure une séquence pour mettre à zéro la hauteur (Z)\n" "de l'outil de vérification." -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:100 -#: AppTools/ToolCalibration.py:113 +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:100 +#: flatcamTools/ToolCalibration.py:113 msgid "Height (Z) for mounting the verification probe." msgstr "Hauteur (Z) pour le montage de la sonde de vérification." -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:114 -#: AppTools/ToolCalibration.py:127 +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:114 +#: flatcamTools/ToolCalibration.py:127 msgid "" "Toolchange X,Y position.\n" "If no value is entered then the current\n" @@ -9654,13 +11667,13 @@ msgstr "" "Si aucune valeur n'est entrée, le courant\n" "(x, y) le point sera utilisé," -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:125 -#: AppTools/ToolCalibration.py:153 +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:125 +#: flatcamTools/ToolCalibration.py:153 msgid "Second point" msgstr "Deuxième point" -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:127 -#: AppTools/ToolCalibration.py:155 +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:127 +#: flatcamTools/ToolCalibration.py:155 msgid "" "Second point in the Gcode verification can be:\n" "- top-left -> the user will align the PCB vertically\n" @@ -9670,29 +11683,19 @@ msgstr "" "- en haut à gauche -> l'utilisateur alignera le PCB verticalement\n" "- en bas à droite -> l'utilisateur alignera le PCB horizontalement" -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:131 -#: AppTools/ToolCalibration.py:159 App_Main.py:4712 -msgid "Top-Left" -msgstr "En haut à gauche" - -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:132 -#: AppTools/ToolCalibration.py:160 App_Main.py:4713 -msgid "Bottom-Right" -msgstr "En bas à droite" - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:27 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:27 msgid "Extract Drills Options" msgstr "Options d'Extraction de Forets" -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:42 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:42 -#: AppTools/ToolExtractDrills.py:68 AppTools/ToolPunchGerber.py:75 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:42 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:42 +#: flatcamTools/ToolExtractDrills.py:68 flatcamTools/ToolPunchGerber.py:75 msgid "Processed Pads Type" msgstr "Type de tampons traités" -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:44 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:44 -#: AppTools/ToolExtractDrills.py:70 AppTools/ToolPunchGerber.py:77 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:44 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:44 +#: flatcamTools/ToolExtractDrills.py:70 flatcamTools/ToolPunchGerber.py:77 msgid "" "The type of pads shape to be processed.\n" "If the PCB has many SMD pads with rectangular pads,\n" @@ -9702,81 +11705,81 @@ msgstr "" "Si le PCB a de nombreux pads SMD avec des pads rectangulaires,\n" "désactiver l'ouverture rectangulaire." -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:54 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:54 -#: AppTools/ToolExtractDrills.py:80 AppTools/ToolPunchGerber.py:91 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:54 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:54 +#: flatcamTools/ToolExtractDrills.py:80 flatcamTools/ToolPunchGerber.py:91 msgid "Process Circular Pads." msgstr "Processus tampons circulaires." -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:60 -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:162 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:60 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:164 -#: AppTools/ToolExtractDrills.py:86 AppTools/ToolExtractDrills.py:214 -#: AppTools/ToolPunchGerber.py:97 AppTools/ToolPunchGerber.py:242 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:60 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:162 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:60 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:164 +#: flatcamTools/ToolExtractDrills.py:86 flatcamTools/ToolExtractDrills.py:214 +#: flatcamTools/ToolPunchGerber.py:97 flatcamTools/ToolPunchGerber.py:242 msgid "Oblong" msgstr "Oblong" -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:62 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:62 -#: AppTools/ToolExtractDrills.py:88 AppTools/ToolPunchGerber.py:99 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:62 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:62 +#: flatcamTools/ToolExtractDrills.py:88 flatcamTools/ToolPunchGerber.py:99 msgid "Process Oblong Pads." msgstr "Processus Tampons oblongs." -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:70 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:70 -#: AppTools/ToolExtractDrills.py:96 AppTools/ToolPunchGerber.py:107 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:70 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:70 +#: flatcamTools/ToolExtractDrills.py:96 flatcamTools/ToolPunchGerber.py:107 msgid "Process Square Pads." msgstr "Processus Tampons carrés." -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:78 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:78 -#: AppTools/ToolExtractDrills.py:104 AppTools/ToolPunchGerber.py:115 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:78 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:78 +#: flatcamTools/ToolExtractDrills.py:104 flatcamTools/ToolPunchGerber.py:115 msgid "Process Rectangular Pads." msgstr "Processus Tampons rectangulaires." -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:84 -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:201 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:84 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:203 -#: AppTools/ToolExtractDrills.py:110 AppTools/ToolExtractDrills.py:253 -#: AppTools/ToolProperties.py:172 AppTools/ToolPunchGerber.py:121 -#: AppTools/ToolPunchGerber.py:281 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:84 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:201 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:84 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:203 +#: flatcamTools/ToolExtractDrills.py:110 flatcamTools/ToolExtractDrills.py:253 +#: flatcamTools/ToolProperties.py:172 flatcamTools/ToolPunchGerber.py:121 +#: flatcamTools/ToolPunchGerber.py:281 msgid "Others" msgstr "Autres" -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:86 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:86 -#: AppTools/ToolExtractDrills.py:112 AppTools/ToolPunchGerber.py:123 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:86 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:86 +#: flatcamTools/ToolExtractDrills.py:112 flatcamTools/ToolPunchGerber.py:123 msgid "Process pads not in the categories above." msgstr "Processus tampons n'appartenant pas aux catégories ci-dessus." -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:99 -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:123 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:100 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:125 -#: AppTools/ToolExtractDrills.py:139 AppTools/ToolExtractDrills.py:156 -#: AppTools/ToolPunchGerber.py:150 AppTools/ToolPunchGerber.py:184 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:99 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:123 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:100 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:125 +#: flatcamTools/ToolExtractDrills.py:139 flatcamTools/ToolExtractDrills.py:156 +#: flatcamTools/ToolPunchGerber.py:150 flatcamTools/ToolPunchGerber.py:184 msgid "Fixed Diameter" msgstr "Diamètre fixe" -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:100 -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:140 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:101 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:142 -#: AppTools/ToolExtractDrills.py:140 AppTools/ToolExtractDrills.py:192 -#: AppTools/ToolPunchGerber.py:151 AppTools/ToolPunchGerber.py:214 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:100 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:140 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:101 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:142 +#: flatcamTools/ToolExtractDrills.py:140 flatcamTools/ToolExtractDrills.py:192 +#: flatcamTools/ToolPunchGerber.py:151 flatcamTools/ToolPunchGerber.py:214 msgid "Fixed Annular Ring" msgstr "Anneau fixe annulaire" -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:101 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:102 -#: AppTools/ToolExtractDrills.py:141 AppTools/ToolPunchGerber.py:152 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:101 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:102 +#: flatcamTools/ToolExtractDrills.py:141 flatcamTools/ToolPunchGerber.py:152 msgid "Proportional" msgstr "Proportionnel" -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:107 -#: AppTools/ToolExtractDrills.py:130 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:107 +#: flatcamTools/ToolExtractDrills.py:130 msgid "" "The method for processing pads. Can be:\n" "- Fixed Diameter -> all holes will have a set size\n" @@ -9789,24 +11792,15 @@ msgstr "" "- Proportionnel -> chaque taille de trou sera une fraction de la taille du " "tampon" -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:131 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:133 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:220 -#: AppTools/ToolExtractDrills.py:164 AppTools/ToolExtractDrills.py:285 -#: AppTools/ToolPunchGerber.py:192 AppTools/ToolPunchGerber.py:308 -#: AppTools/ToolTransform.py:357 App_Main.py:9698 -msgid "Value" -msgstr "Valeur" - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:133 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:135 -#: AppTools/ToolExtractDrills.py:166 AppTools/ToolPunchGerber.py:194 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:133 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:135 +#: flatcamTools/ToolExtractDrills.py:166 flatcamTools/ToolPunchGerber.py:194 msgid "Fixed hole diameter." msgstr "Diamètre du trou fixe." -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:142 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:144 -#: AppTools/ToolExtractDrills.py:194 AppTools/ToolPunchGerber.py:216 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:142 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:144 +#: flatcamTools/ToolExtractDrills.py:194 flatcamTools/ToolPunchGerber.py:216 msgid "" "The size of annular ring.\n" "The copper sliver between the hole exterior\n" @@ -9816,50 +11810,50 @@ msgstr "" "Le ruban de cuivre entre l'extérieur du trou\n" "et la marge du tampon de cuivre." -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:151 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:153 -#: AppTools/ToolExtractDrills.py:203 AppTools/ToolPunchGerber.py:231 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:151 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:153 +#: flatcamTools/ToolExtractDrills.py:203 flatcamTools/ToolPunchGerber.py:231 msgid "The size of annular ring for circular pads." msgstr "La taille de l'anneau annulaire pour les coussinets circulaires." -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:164 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:166 -#: AppTools/ToolExtractDrills.py:216 AppTools/ToolPunchGerber.py:244 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:164 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:166 +#: flatcamTools/ToolExtractDrills.py:216 flatcamTools/ToolPunchGerber.py:244 msgid "The size of annular ring for oblong pads." msgstr "La taille de l'anneau annulaire pour les coussinets oblongs." -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:177 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:179 -#: AppTools/ToolExtractDrills.py:229 AppTools/ToolPunchGerber.py:257 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:177 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:179 +#: flatcamTools/ToolExtractDrills.py:229 flatcamTools/ToolPunchGerber.py:257 msgid "The size of annular ring for square pads." msgstr "La taille de l'anneau annulaire pour les coussinets carrés." -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:190 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:192 -#: AppTools/ToolExtractDrills.py:242 AppTools/ToolPunchGerber.py:270 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:190 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:192 +#: flatcamTools/ToolExtractDrills.py:242 flatcamTools/ToolPunchGerber.py:270 msgid "The size of annular ring for rectangular pads." msgstr "La taille de l'anneau annulaire pour les coussinets rectangulaires." -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:203 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:205 -#: AppTools/ToolExtractDrills.py:255 AppTools/ToolPunchGerber.py:283 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:203 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:205 +#: flatcamTools/ToolExtractDrills.py:255 flatcamTools/ToolPunchGerber.py:283 msgid "The size of annular ring for other pads." msgstr "La taille de l'anneau annulaire pour les autres tampons." -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:213 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:215 -#: AppTools/ToolExtractDrills.py:276 AppTools/ToolPunchGerber.py:299 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:213 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:215 +#: flatcamTools/ToolExtractDrills.py:276 flatcamTools/ToolPunchGerber.py:299 msgid "Proportional Diameter" -msgstr "Diam. proportionnel" +msgstr "Dia. proportionnel" -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:222 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:224 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:222 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:224 msgid "Factor" msgstr "Facteur" -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:224 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:226 -#: AppTools/ToolExtractDrills.py:287 AppTools/ToolPunchGerber.py:310 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:224 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:226 +#: flatcamTools/ToolExtractDrills.py:287 flatcamTools/ToolPunchGerber.py:310 msgid "" "Proportional Diameter.\n" "The hole diameter will be a fraction of the pad size." @@ -9867,12 +11861,12 @@ msgstr "" "Diamètre proportionnel.\n" "Le diamètre du trou sera une fraction de la taille du tampon." -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:27 +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:27 msgid "Fiducials Tool Options" msgstr "Options de l'outil Fiducials" -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:45 -#: AppTools/ToolFiducials.py:161 +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:45 +#: flatcamTools/ToolFiducials.py:158 msgid "" "This set the fiducial diameter if fiducial type is circular,\n" "otherwise is the size of the fiducial.\n" @@ -9882,22 +11876,22 @@ msgstr "" "sinon, c'est la taille du fiduciaire.\n" "L'ouverture du masque de soldat est double." -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:73 -#: AppTools/ToolFiducials.py:189 +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:73 +#: flatcamTools/ToolFiducials.py:186 msgid "Auto" msgstr "Auto" -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:74 -#: AppTools/ToolFiducials.py:190 +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:74 +#: flatcamTools/ToolFiducials.py:187 msgid "Manual" msgstr "Manuel" -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:76 -#: AppTools/ToolFiducials.py:192 +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:76 +#: flatcamTools/ToolFiducials.py:189 msgid "Mode:" msgstr "Mode:" -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:78 +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:78 msgid "" "- 'Auto' - automatic placement of fiducials in the corners of the bounding " "box.\n" @@ -9907,23 +11901,23 @@ msgstr "" "sélection.\n" "- «Manuel» - placement manuel des fiduciaires." -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:86 -#: AppTools/ToolFiducials.py:202 +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:86 +#: flatcamTools/ToolFiducials.py:199 msgid "Up" msgstr "Haut" -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:87 -#: AppTools/ToolFiducials.py:203 +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:87 +#: flatcamTools/ToolFiducials.py:200 msgid "Down" msgstr "Bas" -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:90 -#: AppTools/ToolFiducials.py:206 +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:90 +#: flatcamTools/ToolFiducials.py:203 msgid "Second fiducial" msgstr "Deuxième fiducial" -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:92 -#: AppTools/ToolFiducials.py:208 +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:92 +#: flatcamTools/ToolFiducials.py:205 msgid "" "The position for the second fiducial.\n" "- 'Up' - the order is: bottom-left, top-left, top-right.\n" @@ -9937,23 +11931,23 @@ msgstr "" "- «Aucun» - il n'y a pas de deuxième fiduciaire. L'ordre est: en bas à " "gauche, en haut à droite." -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:108 -#: AppTools/ToolFiducials.py:224 +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:108 +#: flatcamTools/ToolFiducials.py:221 msgid "Cross" msgstr "Croix" -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:109 -#: AppTools/ToolFiducials.py:225 +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:109 +#: flatcamTools/ToolFiducials.py:222 msgid "Chess" msgstr "Échecs" -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:112 -#: AppTools/ToolFiducials.py:227 +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:112 +#: flatcamTools/ToolFiducials.py:224 msgid "Fiducial Type" msgstr "Type fiduciaire" -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:114 -#: AppTools/ToolFiducials.py:229 +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:114 +#: flatcamTools/ToolFiducials.py:226 msgid "" "The type of fiducial.\n" "- 'Circular' - this is the regular fiducial.\n" @@ -9965,16 +11959,16 @@ msgstr "" "- 'Croix' - croix lignes fiduciales.\n" "- 'Échecs' - modèle d'échecs fiducial." -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:123 -#: AppTools/ToolFiducials.py:238 +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:123 +#: flatcamTools/ToolFiducials.py:235 msgid "Line thickness" msgstr "Épaisseur de ligne" -#: AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py:27 +#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:27 msgid "Invert Gerber Tool Options" msgstr "Options de l'outil Inverser Gerber" -#: AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py:33 +#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:33 msgid "" "A tool to invert Gerber geometry from positive to negative\n" "and in revers." @@ -9982,8 +11976,8 @@ msgstr "" "Un outil pour inverser la géométrie Gerber du positif au négatif\n" "et en sens inverse." -#: AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py:47 -#: AppTools/ToolInvertGerber.py:93 +#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:47 +#: flatcamTools/ToolInvertGerber.py:90 msgid "" "Distance by which to avoid\n" "the edges of the Gerber object." @@ -9991,13 +11985,13 @@ msgstr "" "Distance à éviter\n" "les bords de l'objet Gerber." -#: AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py:58 -#: AppTools/ToolInvertGerber.py:104 +#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:58 +#: flatcamTools/ToolInvertGerber.py:101 msgid "Lines Join Style" msgstr "Style de jointure des lignes" -#: AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py:60 -#: AppTools/ToolInvertGerber.py:106 +#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:60 +#: flatcamTools/ToolInvertGerber.py:103 msgid "" "The way that the lines in the object outline will be joined.\n" "Can be:\n" @@ -10011,34 +12005,34 @@ msgstr "" "- carré -> les lignes se rencontrent dans un angle de 90 degrés\n" "- biseau -> les lignes sont reliées par une troisième ligne" -#: AppGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:27 +#: flatcamGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:27 msgid "Optimal Tool Options" msgstr "Options de l'outil 'Optimal'" -#: AppGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:33 +#: flatcamGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:33 msgid "" "A tool to find the minimum distance between\n" "every two Gerber geometric elements" msgstr "" -"Outil de mesure minimale entre\n" -"deux éléments géométriques de Gerber" +"Un outil pour trouver la distance minimale entre\n" +"tous les deux éléments géométriques de Gerber" -#: AppGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:48 -#: AppTools/ToolOptimal.py:84 +#: flatcamGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:48 +#: flatcamTools/ToolOptimal.py:78 msgid "Precision" msgstr "Précision" -#: AppGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:50 +#: flatcamGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:50 msgid "Number of decimals for the distances and coordinates in this tool." msgstr "" "Nombre de décimales pour les distances et les coordonnées dans cet outil." -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:27 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:27 msgid "Punch Gerber Options" msgstr "Options de poinçonnage Gerber" -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:108 -#: AppTools/ToolPunchGerber.py:141 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:108 +#: flatcamTools/ToolPunchGerber.py:141 msgid "" "The punch hole source can be:\n" "- Excellon Object-> the Excellon object drills center will serve as " @@ -10058,11 +12052,11 @@ msgstr "" "- Proportionnel -> fera un trou de poinçon Gerber ayant le diamètre un " "pourcentage du diamètre du tampon." -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:27 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:27 msgid "QRCode Tool Options" msgstr "Options de l'outil QRCode" -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:33 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:33 msgid "" "A tool to create a QRCode that can be inserted\n" "into a selected Gerber file, or it can be exported as a file." @@ -10071,13 +12065,13 @@ msgstr "" "dans un fichier Gerber sélectionné, ou il peut être exporté en tant que " "fichier." -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:45 -#: AppTools/ToolQRCode.py:121 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:45 +#: flatcamTools/ToolQRCode.py:100 msgid "Version" msgstr "Version" -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:47 -#: AppTools/ToolQRCode.py:123 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:47 +#: flatcamTools/ToolQRCode.py:102 msgid "" "QRCode version can have values from 1 (21x21 boxes)\n" "to 40 (177x177 boxes)." @@ -10085,14 +12079,14 @@ msgstr "" "La version QRCode peut avoir des valeurs de 1 (éléments 21x21)\n" "jusqu'à 40 (éléments 177x177)." -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:58 -#: AppTools/ToolQRCode.py:134 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:58 +#: flatcamTools/ToolQRCode.py:113 msgid "Error correction" msgstr "Correction des erreurs" -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:60 -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:71 -#: AppTools/ToolQRCode.py:136 AppTools/ToolQRCode.py:147 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:60 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:71 +#: flatcamTools/ToolQRCode.py:115 flatcamTools/ToolQRCode.py:126 #, python-format msgid "" "Parameter that controls the error correction used for the QR Code.\n" @@ -10107,13 +12101,13 @@ msgstr "" "Q = 25 %% maximum d'erreurs peuvent être corrigées\n" "H = maximum 30 %% d'erreurs peuvent être corrigées." -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:81 -#: AppTools/ToolQRCode.py:157 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:81 +#: flatcamTools/ToolQRCode.py:136 msgid "Box Size" msgstr "Taille d'élément" -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:83 -#: AppTools/ToolQRCode.py:159 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:83 +#: flatcamTools/ToolQRCode.py:138 msgid "" "Box size control the overall size of the QRcode\n" "by adjusting the size of each box in the code." @@ -10121,13 +12115,13 @@ msgstr "" "La taille de l'élément contrôle la taille globale du QRcode\n" "en ajustant la taille de chaque case du code." -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:94 -#: AppTools/ToolQRCode.py:170 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:94 +#: flatcamTools/ToolQRCode.py:149 msgid "Border Size" msgstr "Taille de bordure" -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:96 -#: AppTools/ToolQRCode.py:172 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:96 +#: flatcamTools/ToolQRCode.py:151 msgid "" "Size of the QRCode border. How many boxes thick is the border.\n" "Default value is 4. The width of the clearance around the QRCode." @@ -10135,28 +12129,28 @@ msgstr "" "Taille de la bordure QRCode. Combien d'éléments sont épais la bordure.\n" "La valeur par défaut est 4. La largeur du jeu autour du QRCode." -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:107 -#: AppTools/ToolQRCode.py:92 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:107 +#: flatcamTools/ToolQRCode.py:162 msgid "QRCode Data" msgstr "Données QRCode" -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:109 -#: AppTools/ToolQRCode.py:94 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:109 +#: flatcamTools/ToolQRCode.py:164 msgid "QRCode Data. Alphanumeric text to be encoded in the QRCode." msgstr "Données QRCode. Texte alphanumérique à encoder dans le QRCode." -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:113 -#: AppTools/ToolQRCode.py:98 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:113 +#: flatcamTools/ToolQRCode.py:168 msgid "Add here the text to be included in the QRCode..." msgstr "Ajoutez ici le texte à inclure dans le QRCode ..." -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:119 -#: AppTools/ToolQRCode.py:183 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:119 +#: flatcamTools/ToolQRCode.py:174 msgid "Polarity" msgstr "Polarité" -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:121 -#: AppTools/ToolQRCode.py:185 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:121 +#: flatcamTools/ToolQRCode.py:176 msgid "" "Choose the polarity of the QRCode.\n" "It can be drawn in a negative way (squares are clear)\n" @@ -10166,18 +12160,18 @@ msgstr "" "Il peut être dessiné de manière négative (les carrés sont clairs)\n" "ou d'une manière positive (les carrés sont opaques)." -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:125 -#: AppTools/ToolFilm.py:279 AppTools/ToolQRCode.py:189 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:125 +#: flatcamTools/ToolFilm.py:296 flatcamTools/ToolQRCode.py:180 msgid "Negative" msgstr "Négatif" -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:126 -#: AppTools/ToolFilm.py:278 AppTools/ToolQRCode.py:190 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:126 +#: flatcamTools/ToolFilm.py:295 flatcamTools/ToolQRCode.py:181 msgid "Positive" msgstr "Positif" -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:128 -#: AppTools/ToolQRCode.py:192 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:128 +#: flatcamTools/ToolQRCode.py:183 msgid "" "Choose the type of QRCode to be created.\n" "If added on a Silkscreen Gerber file the QRCode may\n" @@ -10189,9 +12183,9 @@ msgstr "" "être ajouté comme positif. S'il est ajouté à un Gerber de cuivre\n" "fichier alors peut-être le QRCode peut être ajouté comme négatif." -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:139 -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:145 -#: AppTools/ToolQRCode.py:203 AppTools/ToolQRCode.py:209 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:139 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:145 +#: flatcamTools/ToolQRCode.py:194 flatcamTools/ToolQRCode.py:200 msgid "" "The bounding box, meaning the empty space that surrounds\n" "the QRCode geometry, can have a rounded or a square shape." @@ -10199,37 +12193,37 @@ msgstr "" "La boîte englobante, ce qui signifie l'espace vide qui entoure\n" "la géométrie QRCode, peut avoir une forme arrondie ou carrée." -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:142 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:239 -#: AppTools/ToolQRCode.py:206 AppTools/ToolTransform.py:383 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:142 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:239 +#: flatcamTools/ToolQRCode.py:197 flatcamTools/ToolTransform.py:383 msgid "Rounded" msgstr "Arrondi" -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:152 -#: AppTools/ToolQRCode.py:237 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:152 +#: flatcamTools/ToolQRCode.py:228 msgid "Fill Color" msgstr "La couleur de remplissage" -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:154 -#: AppTools/ToolQRCode.py:239 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:154 +#: flatcamTools/ToolQRCode.py:230 msgid "Set the QRCode fill color (squares color)." msgstr "Définissez la couleur de remplissage QRCode (couleur des éléments)." -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:162 -#: AppTools/ToolQRCode.py:261 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:173 +#: flatcamTools/ToolQRCode.py:252 msgid "Back Color" msgstr "Couleur de fond" -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:164 -#: AppTools/ToolQRCode.py:263 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:175 +#: flatcamTools/ToolQRCode.py:254 msgid "Set the QRCode background color." msgstr "Définissez la couleur d'arrière-plan QRCode." -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:27 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:27 msgid "Check Rules Tool Options" msgstr "Options de l'outil de Vérif. des Règles" -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:32 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:32 msgid "" "A tool to check if Gerber files are within a set\n" "of Manufacturing Rules." @@ -10237,47 +12231,47 @@ msgstr "" "Un outil pour vérifier si les fichiers Gerber sont dans un ensemble\n" "des règles de fabrication." -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:42 -#: AppTools/ToolRulesCheck.py:265 AppTools/ToolRulesCheck.py:929 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:42 +#: flatcamTools/ToolRulesCheck.py:265 flatcamTools/ToolRulesCheck.py:929 msgid "Trace Size" msgstr "Taille de trace" -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:44 -#: AppTools/ToolRulesCheck.py:267 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:44 +#: flatcamTools/ToolRulesCheck.py:267 msgid "This checks if the minimum size for traces is met." msgstr "Ceci vérifie si la taille minimale des traces est respectée." -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:54 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:74 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:94 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:114 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:134 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:154 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:174 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:194 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:216 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:236 -#: AppTools/ToolRulesCheck.py:277 AppTools/ToolRulesCheck.py:299 -#: AppTools/ToolRulesCheck.py:322 AppTools/ToolRulesCheck.py:345 -#: AppTools/ToolRulesCheck.py:368 AppTools/ToolRulesCheck.py:391 -#: AppTools/ToolRulesCheck.py:414 AppTools/ToolRulesCheck.py:437 -#: AppTools/ToolRulesCheck.py:462 AppTools/ToolRulesCheck.py:485 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:54 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:74 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:94 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:114 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:134 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:154 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:174 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:194 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:216 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:236 +#: flatcamTools/ToolRulesCheck.py:277 flatcamTools/ToolRulesCheck.py:299 +#: flatcamTools/ToolRulesCheck.py:322 flatcamTools/ToolRulesCheck.py:345 +#: flatcamTools/ToolRulesCheck.py:368 flatcamTools/ToolRulesCheck.py:391 +#: flatcamTools/ToolRulesCheck.py:414 flatcamTools/ToolRulesCheck.py:437 +#: flatcamTools/ToolRulesCheck.py:462 flatcamTools/ToolRulesCheck.py:485 msgid "Min value" msgstr "Valeur min" -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:56 -#: AppTools/ToolRulesCheck.py:279 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:56 +#: flatcamTools/ToolRulesCheck.py:279 msgid "Minimum acceptable trace size." msgstr "Taille de trace minimale acceptable." -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:61 -#: AppTools/ToolRulesCheck.py:286 AppTools/ToolRulesCheck.py:1157 -#: AppTools/ToolRulesCheck.py:1187 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:61 +#: flatcamTools/ToolRulesCheck.py:286 flatcamTools/ToolRulesCheck.py:1157 +#: flatcamTools/ToolRulesCheck.py:1187 msgid "Copper to Copper clearance" msgstr "Distance de cuivre à cuivre" -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:63 -#: AppTools/ToolRulesCheck.py:288 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:63 +#: flatcamTools/ToolRulesCheck.py:288 msgid "" "This checks if the minimum clearance between copper\n" "features is met." @@ -10285,29 +12279,29 @@ msgstr "" "Ceci vérifie si le jeu minimum entre le cuivre\n" "traces est rencontré." -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:76 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:96 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:116 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:136 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:156 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:176 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:238 -#: AppTools/ToolRulesCheck.py:301 AppTools/ToolRulesCheck.py:324 -#: AppTools/ToolRulesCheck.py:347 AppTools/ToolRulesCheck.py:370 -#: AppTools/ToolRulesCheck.py:393 AppTools/ToolRulesCheck.py:416 -#: AppTools/ToolRulesCheck.py:464 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:76 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:96 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:116 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:136 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:156 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:176 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:238 +#: flatcamTools/ToolRulesCheck.py:301 flatcamTools/ToolRulesCheck.py:324 +#: flatcamTools/ToolRulesCheck.py:347 flatcamTools/ToolRulesCheck.py:370 +#: flatcamTools/ToolRulesCheck.py:393 flatcamTools/ToolRulesCheck.py:416 +#: flatcamTools/ToolRulesCheck.py:464 msgid "Minimum acceptable clearance value." msgstr "Distance minimale acceptable." -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:81 -#: AppTools/ToolRulesCheck.py:309 AppTools/ToolRulesCheck.py:1217 -#: AppTools/ToolRulesCheck.py:1223 AppTools/ToolRulesCheck.py:1236 -#: AppTools/ToolRulesCheck.py:1243 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:81 +#: flatcamTools/ToolRulesCheck.py:309 flatcamTools/ToolRulesCheck.py:1217 +#: flatcamTools/ToolRulesCheck.py:1223 flatcamTools/ToolRulesCheck.py:1236 +#: flatcamTools/ToolRulesCheck.py:1243 msgid "Copper to Outline clearance" msgstr "Cuivre à la distance de contour" -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:83 -#: AppTools/ToolRulesCheck.py:311 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:83 +#: flatcamTools/ToolRulesCheck.py:311 msgid "" "This checks if the minimum clearance between copper\n" "features and the outline is met." @@ -10315,13 +12309,13 @@ msgstr "" "Ceci vérifie si la distance minimale entre le cuivre\n" "traces et le contour est rencontré." -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:101 -#: AppTools/ToolRulesCheck.py:332 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:101 +#: flatcamTools/ToolRulesCheck.py:332 msgid "Silk to Silk Clearance" msgstr "Sérigraphie à sérigraphie distance" -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:103 -#: AppTools/ToolRulesCheck.py:334 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:103 +#: flatcamTools/ToolRulesCheck.py:334 msgid "" "This checks if the minimum clearance between silkscreen\n" "features and silkscreen features is met." @@ -10329,14 +12323,14 @@ msgstr "" "Ceci vérifie si la distance minimale entre sérigraphie\n" "les fonctionnalités et les fonctions de sérigraphie sont remplies." -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:121 -#: AppTools/ToolRulesCheck.py:355 AppTools/ToolRulesCheck.py:1326 -#: AppTools/ToolRulesCheck.py:1332 AppTools/ToolRulesCheck.py:1350 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:121 +#: flatcamTools/ToolRulesCheck.py:355 flatcamTools/ToolRulesCheck.py:1326 +#: flatcamTools/ToolRulesCheck.py:1332 flatcamTools/ToolRulesCheck.py:1350 msgid "Silk to Solder Mask Clearance" msgstr "Distance de sérigraphie à masque de soudure" -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:123 -#: AppTools/ToolRulesCheck.py:357 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:123 +#: flatcamTools/ToolRulesCheck.py:357 msgid "" "This checks if the minimum clearance between silkscreen\n" "features and soldermask features is met." @@ -10344,15 +12338,15 @@ msgstr "" "Ceci vérifie si la distance minimale entre sérigraphie\n" "les fonctionnalités et les fonctionnalités soldermask sont remplies." -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:141 -#: AppTools/ToolRulesCheck.py:378 AppTools/ToolRulesCheck.py:1380 -#: AppTools/ToolRulesCheck.py:1386 AppTools/ToolRulesCheck.py:1400 -#: AppTools/ToolRulesCheck.py:1407 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:141 +#: flatcamTools/ToolRulesCheck.py:378 flatcamTools/ToolRulesCheck.py:1380 +#: flatcamTools/ToolRulesCheck.py:1386 flatcamTools/ToolRulesCheck.py:1400 +#: flatcamTools/ToolRulesCheck.py:1407 msgid "Silk to Outline Clearance" msgstr "Sérigraphie à contour distance" -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:143 -#: AppTools/ToolRulesCheck.py:380 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:143 +#: flatcamTools/ToolRulesCheck.py:380 msgid "" "This checks if the minimum clearance between silk\n" "features and the outline is met." @@ -10360,14 +12354,14 @@ msgstr "" "Ceci vérifie si la distance minimale entre sérigraphie\n" "traces et le contour est rencontré." -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:161 -#: AppTools/ToolRulesCheck.py:401 AppTools/ToolRulesCheck.py:1418 -#: AppTools/ToolRulesCheck.py:1445 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:161 +#: flatcamTools/ToolRulesCheck.py:401 flatcamTools/ToolRulesCheck.py:1418 +#: flatcamTools/ToolRulesCheck.py:1445 msgid "Minimum Solder Mask Sliver" msgstr "Ruban de masque de soudure minimum" -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:163 -#: AppTools/ToolRulesCheck.py:403 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:163 +#: flatcamTools/ToolRulesCheck.py:403 msgid "" "This checks if the minimum clearance between soldermask\n" "features and soldermask features is met." @@ -10375,15 +12369,15 @@ msgstr "" "Cette vérifie si la distance minimale entre soldermask\n" "traces et soldermask traces est rencontré." -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:181 -#: AppTools/ToolRulesCheck.py:424 AppTools/ToolRulesCheck.py:1483 -#: AppTools/ToolRulesCheck.py:1489 AppTools/ToolRulesCheck.py:1505 -#: AppTools/ToolRulesCheck.py:1512 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:181 +#: flatcamTools/ToolRulesCheck.py:424 flatcamTools/ToolRulesCheck.py:1483 +#: flatcamTools/ToolRulesCheck.py:1489 flatcamTools/ToolRulesCheck.py:1505 +#: flatcamTools/ToolRulesCheck.py:1512 msgid "Minimum Annular Ring" msgstr "Anneau Minimum" -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:183 -#: AppTools/ToolRulesCheck.py:426 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:183 +#: flatcamTools/ToolRulesCheck.py:426 msgid "" "This checks if the minimum copper ring left by drilling\n" "a hole into a pad is met." @@ -10391,18 +12385,18 @@ msgstr "" "Ceci vérifie si l'anneau de cuivre minimum laissé par le forage\n" "un trou dans un pad est rencontré." -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:196 -#: AppTools/ToolRulesCheck.py:439 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:196 +#: flatcamTools/ToolRulesCheck.py:439 msgid "Minimum acceptable ring value." msgstr "Valeur de sonnerie minimale acceptable." -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:203 -#: AppTools/ToolRulesCheck.py:449 AppTools/ToolRulesCheck.py:873 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:203 +#: flatcamTools/ToolRulesCheck.py:449 flatcamTools/ToolRulesCheck.py:873 msgid "Hole to Hole Clearance" msgstr "Distance trou à trou" -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:205 -#: AppTools/ToolRulesCheck.py:451 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:205 +#: flatcamTools/ToolRulesCheck.py:451 msgid "" "This checks if the minimum clearance between a drill hole\n" "and another drill hole is met." @@ -10410,18 +12404,18 @@ msgstr "" "Ceci vérifie si le jeu minimum entre un trou de forage\n" "et un autre trou de forage est rencontré." -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:218 -#: AppTools/ToolRulesCheck.py:487 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:218 +#: flatcamTools/ToolRulesCheck.py:487 msgid "Minimum acceptable drill size." msgstr "Taille minimale acceptable du foret." -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:223 -#: AppTools/ToolRulesCheck.py:472 AppTools/ToolRulesCheck.py:847 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:223 +#: flatcamTools/ToolRulesCheck.py:472 flatcamTools/ToolRulesCheck.py:847 msgid "Hole Size" msgstr "Taille du trou" -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:225 -#: AppTools/ToolRulesCheck.py:474 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:225 +#: flatcamTools/ToolRulesCheck.py:474 msgid "" "This checks if the drill holes\n" "sizes are above the threshold." @@ -10429,11 +12423,11 @@ msgstr "" "Ceci vérifie si les trous de forage\n" "les tailles sont au dessus du seuil." -#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:27 +#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:27 msgid "2Sided Tool Options" msgstr "Options des Outils 2 faces" -#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:33 +#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:33 msgid "" "A tool to help in creating a double sided\n" "PCB using alignment holes." @@ -10441,45 +12435,45 @@ msgstr "" "Un outil pour aider à créer un double face\n" "PCB utilisant des trous d'alignement." -#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:47 +#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:47 msgid "Drill dia" msgstr "Forage dia" -#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:49 -#: AppTools/ToolDblSided.py:363 AppTools/ToolDblSided.py:368 +#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:49 +#: flatcamTools/ToolDblSided.py:363 flatcamTools/ToolDblSided.py:368 msgid "Diameter of the drill for the alignment holes." msgstr "Diamètre du foret pour les trous d'alignement." -#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:56 -#: AppTools/ToolDblSided.py:377 +#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:56 +#: flatcamTools/ToolDblSided.py:377 msgid "Align Axis" msgstr "Aligner l'axe" -#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:58 -#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:71 -#: AppTools/ToolDblSided.py:165 AppTools/ToolDblSided.py:379 +#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:58 +#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:71 +#: flatcamTools/ToolDblSided.py:165 flatcamTools/ToolDblSided.py:379 msgid "Mirror vertically (X) or horizontally (Y)." msgstr "Miroir verticalement (X) ou horizontalement (Y)." -#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:69 +#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:69 msgid "Mirror Axis:" msgstr "Axe du miroir:" -#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:80 -#: AppTools/ToolDblSided.py:181 +#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:80 +#: flatcamTools/ToolDblSided.py:181 msgid "Point" msgstr "Point" -#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:81 -#: AppTools/ToolDblSided.py:182 +#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:81 +#: flatcamTools/ToolDblSided.py:182 msgid "Box" msgstr "Box" -#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:82 +#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:82 msgid "Axis Ref" msgstr "Réf d'axe" -#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:84 +#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:84 msgid "" "The axis should pass through a point or cut\n" " a specified box (in a FlatCAM object) through \n" @@ -10489,16 +12483,16 @@ msgstr "" "une zone spécifiée (dans un objet FlatCAM) via\n" "le centre." -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:27 +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:27 msgid "Calculators Tool Options" msgstr "Options de l'Outil Calcul" -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:31 -#: AppTools/ToolCalculators.py:25 +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:31 +#: flatcamTools/ToolCalculators.py:25 msgid "V-Shape Tool Calculator" msgstr "Calculateur d'Outils en V" -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:33 +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:33 msgid "" "Calculate the tool diameter for a given V-shape tool,\n" "having the tip diameter, tip angle and\n" @@ -10508,13 +12502,13 @@ msgstr "" "ayant le diamètre de la pointe, son angle et\n" "profondeur de coupe en tant que paramètres." -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:50 -#: AppTools/ToolCalculators.py:94 +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:50 +#: flatcamTools/ToolCalculators.py:94 msgid "Tip Diameter" -msgstr "Diam de la pointe" +msgstr "Dia de la pointe" -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:52 -#: AppTools/ToolCalculators.py:102 +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:52 +#: flatcamTools/ToolCalculators.py:102 msgid "" "This is the tool tip diameter.\n" "It is specified by manufacturer." @@ -10522,12 +12516,12 @@ msgstr "" "C'est le diamètre de la pointe de l'outil.\n" "Il est spécifié par le fabricant." -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:64 -#: AppTools/ToolCalculators.py:105 +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:64 +#: flatcamTools/ToolCalculators.py:105 msgid "Tip Angle" msgstr "Angle de pointe" -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:66 +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:66 msgid "" "This is the angle on the tip of the tool.\n" "It is specified by manufacturer." @@ -10535,7 +12529,7 @@ msgstr "" "C'est l'angle sur la pointe de l'outil.\n" "Il est spécifié par le fabricant." -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:80 +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:80 msgid "" "This is depth to cut into material.\n" "In the CNCJob object it is the CutZ parameter." @@ -10543,13 +12537,13 @@ msgstr "" "C'est la profondeur à couper dans le matériau.\n" "Dans l'objet CNCJob, il s'agit du paramètre CutZ." -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:87 -#: AppTools/ToolCalculators.py:27 +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:87 +#: flatcamTools/ToolCalculators.py:27 msgid "ElectroPlating Calculator" msgstr "Calculateur d'électrodéposition" -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:89 -#: AppTools/ToolCalculators.py:158 +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:89 +#: flatcamTools/ToolCalculators.py:158 msgid "" "This calculator is useful for those who plate the via/pad/drill holes,\n" "using a method like graphite ink or calcium hypophosphite ink or palladium " @@ -10560,33 +12554,33 @@ msgstr "" "en utilisant une méthode comme l’encre grahite, l’encre hypophosphite de " "calcium ou le chlorure de palladium." -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:100 -#: AppTools/ToolCalculators.py:167 +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:100 +#: flatcamTools/ToolCalculators.py:167 msgid "Board Length" msgstr "Longueur" -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:102 -#: AppTools/ToolCalculators.py:173 +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:102 +#: flatcamTools/ToolCalculators.py:173 msgid "This is the board length. In centimeters." msgstr "Ceci est la longueur du conseil. En centimètres." -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:112 -#: AppTools/ToolCalculators.py:175 +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:112 +#: flatcamTools/ToolCalculators.py:175 msgid "Board Width" msgstr "Largeur" -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:114 -#: AppTools/ToolCalculators.py:181 +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:114 +#: flatcamTools/ToolCalculators.py:181 msgid "This is the board width.In centimeters." msgstr "C'est la largeur de la planche.En centimètres." -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:119 -#: AppTools/ToolCalculators.py:183 +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:119 +#: flatcamTools/ToolCalculators.py:183 msgid "Current Density" msgstr "Densité de courant" -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:125 -#: AppTools/ToolCalculators.py:190 +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:125 +#: flatcamTools/ToolCalculators.py:190 msgid "" "Current density to pass through the board. \n" "In Amps per Square Feet ASF." @@ -10594,13 +12588,13 @@ msgstr "" "Densité de courant électrique à traverser le tableau.\n" "En ampères par pieds carrés ASF." -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:131 -#: AppTools/ToolCalculators.py:193 +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:131 +#: flatcamTools/ToolCalculators.py:193 msgid "Copper Growth" msgstr "Croissance du cuivre" -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:137 -#: AppTools/ToolCalculators.py:200 +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:137 +#: flatcamTools/ToolCalculators.py:200 msgid "" "How thick the copper growth is intended to be.\n" "In microns." @@ -10608,40 +12602,17 @@ msgstr "" "Quelle épaisseur doit avoir la croissance du cuivre.\n" "En microns." -#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:27 -msgid "Corner Markers Options" -msgstr "Options des Marqueurs de Coin" - -#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:44 -#: AppTools/ToolCorners.py:124 -msgid "The thickness of the line that makes the corner marker." -msgstr "L'épaisseur de la ligne qui fait le marqueur de coin." - -#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:58 -#: AppTools/ToolCorners.py:138 -msgid "The length of the line that makes the corner marker." -msgstr "La longueur de la ligne qui fait le marqueur de coin." - -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:28 +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:28 msgid "Cutout Tool Options" msgstr "Options de l'Outil de Découpe" -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:34 -msgid "" -"Create toolpaths to cut around\n" -"the PCB and separate it from\n" -"the original board." -msgstr "" -"Créer un parcours afin de découper\n" -"la Plaque PCB." - -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:43 -#: AppTools/ToolCalculators.py:123 AppTools/ToolCutOut.py:129 +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:43 +#: flatcamTools/ToolCalculators.py:123 flatcamTools/ToolCutOut.py:129 msgid "Tool Diameter" -msgstr "Diam de l'outil" +msgstr "Dia de l'outil" -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:45 -#: AppTools/ToolCutOut.py:131 +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:45 +#: flatcamTools/ToolCutOut.py:131 msgid "" "Diameter of the tool used to cutout\n" "the PCB shape out of the surrounding material." @@ -10649,12 +12620,12 @@ msgstr "" "Diamètre de l'outil utilisé pour la découpe\n" "la forme de PCB hors du matériau environnant." -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:100 +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:100 msgid "Object kind" msgstr "Type d'objet" -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:102 -#: AppTools/ToolCutOut.py:77 +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:102 +#: flatcamTools/ToolCutOut.py:77 msgid "" "Choice of what kind the object we want to cutout is.
    - Single: " "contain a single PCB Gerber outline object.
    - Panel: a panel PCB " @@ -10666,18 +12637,18 @@ msgstr "" "est fait\n" "sur beaucoup de contours individuels de PCB." -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:109 -#: AppTools/ToolCutOut.py:83 +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:109 +#: flatcamTools/ToolCutOut.py:83 msgid "Single" msgstr "Seul" -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:110 -#: AppTools/ToolCutOut.py:84 +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:110 +#: flatcamTools/ToolCutOut.py:84 msgid "Panel" msgstr "Panneau" -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:117 -#: AppTools/ToolCutOut.py:192 +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:117 +#: flatcamTools/ToolCutOut.py:192 msgid "" "Margin over bounds. A positive value here\n" "will make the cutout of the PCB further from\n" @@ -10687,30 +12658,30 @@ msgstr "" "fera la découpe du PCB plus loin de\n" "la frontière de PCB" -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:130 -#: AppTools/ToolCutOut.py:203 +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:130 +#: flatcamTools/ToolCutOut.py:203 msgid "Gap size" msgstr "Taille de l'espace" -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:132 -#: AppTools/ToolCutOut.py:205 +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:132 +#: flatcamTools/ToolCutOut.py:205 msgid "" "The size of the bridge gaps in the cutout\n" "used to keep the board connected to\n" "the surrounding material (the one \n" "from which the PCB is cutout)." msgstr "" -"Taille des ponts dans la découpe\n" -"utilisé pour garder le PCB connecté au\n" -"matériau environnant (celui à partir duquel\n" -" le circuit imprimé est découpé)." +"La taille des lacunes de pont dans la découpe\n" +"utilisé pour garder le conseil connecté à\n" +"le matériau environnant (celui\n" +"à partir duquel le circuit imprimé est découpé)." -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:146 -#: AppTools/ToolCutOut.py:245 +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:146 +#: flatcamTools/ToolCutOut.py:245 msgid "Gaps" -msgstr "Nbres Ponts" +msgstr "Lacunes" -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:148 +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:148 msgid "" "Number of gaps used for the cutout.\n" "There can be maximum 8 bridges/gaps.\n" @@ -10723,24 +12694,24 @@ msgid "" "- 2tb - 2*top + 2*bottom\n" "- 8 - 2*left + 2*right +2*top + 2*bottom" msgstr "" -"Nombres de ponts à garder lors de la découpe.\n" -"Il peut y avoir au maximum 8 ponts.\n" +"Nombre de trous utilisés pour la découpe.\n" +"Il peut y avoir au maximum 8 ponts / lacunes.\n" "Les choix sont:\n" -"- Aucun - Découpe total\n" -"- LR - Gauche + Droite\n" -"- TB - Haut + Bas\n" -"- 4 - Gauche + Droite + Haut + Bas\n" -"- 2LR - 2 Gauche + 2 Droite\n" -"- 2TB - 2 Haut + 2 Bas\n" -"- 8 - 2 Gauches + 2 Droites + 2 Hauts + 2 Bas" +"- Aucun - pas de lacunes\n" +"- lr - gauche + droite\n" +"- tb - haut + bas\n" +"- 4 - gauche + droite + haut + bas\n" +"- 2lr - 2 * gauche + 2 * droite\n" +"- 2tb - 2 * Haut + 2 * Bas\n" +"- 8 - 2 * gauche + 2 * droite + 2 * en haut + 2 * en bas" -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:170 -#: AppTools/ToolCutOut.py:222 +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:170 +#: flatcamTools/ToolCutOut.py:222 msgid "Convex Shape" msgstr "Forme convexe" -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:172 -#: AppTools/ToolCutOut.py:225 +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:172 +#: flatcamTools/ToolCutOut.py:225 msgid "" "Create a convex shape surrounding the entire PCB.\n" "Used only if the source object type is Gerber." @@ -10748,23 +12719,26 @@ msgstr "" "Créez une forme convexe entourant tout le circuit imprimé.\n" "Utilisé uniquement si le type d'objet source est Gerber." -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:27 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:27 msgid "Film Tool Options" msgstr "Options de l'Outil de Film" -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:33 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:33 msgid "" -"Create a PCB film from a Gerber or Geometry object.\n" +"Create a PCB film from a Gerber or Geometry\n" +"FlatCAM object.\n" "The file is saved in SVG format." msgstr "" -"Créez un film PCB à partir d'un objet Gerber ou Geometry.\n" +"Créer un film de circuit imprimé à partir d'un gerber ou d'une géométrie\n" +"Objet FlatCAM.\n" "Le fichier est enregistré au format SVG." -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:43 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:44 msgid "Film Type" msgstr "Type de Film" -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:45 AppTools/ToolFilm.py:283 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:46 +#: flatcamTools/ToolFilm.py:300 msgid "" "Generate a Positive black film or a Negative film.\n" "Positive means that it will print the features\n" @@ -10780,19 +12754,21 @@ msgstr "" "avec du blanc sur une toile noire.\n" "Le format de film est SVG." -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:56 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:57 msgid "Film Color" msgstr "Couleur du film" -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:58 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:59 msgid "Set the film color when positive film is selected." msgstr "Définissez la couleur du film lorsque le film positif est sélectionné." -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:71 AppTools/ToolFilm.py:299 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:82 +#: flatcamTools/ToolFilm.py:316 msgid "Border" msgstr "Bordure" -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:73 AppTools/ToolFilm.py:301 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:84 +#: flatcamTools/ToolFilm.py:318 msgid "" "Specify a border around the object.\n" "Only for negative film.\n" @@ -10812,11 +12788,13 @@ msgstr "" "couleur blanche comme le reste et qui peut confondre avec le\n" "environnement si pas pour cette frontière." -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:90 AppTools/ToolFilm.py:266 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:101 +#: flatcamTools/ToolFilm.py:283 msgid "Scale Stroke" msgstr "Course de l'échelle" -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:92 AppTools/ToolFilm.py:268 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:103 +#: flatcamTools/ToolFilm.py:285 msgid "" "Scale the line stroke thickness of each feature in the SVG file.\n" "It means that the line that envelope each SVG feature will be thicker or " @@ -10829,12 +12807,13 @@ msgstr "" "par conséquent, les caractéristiques fines peuvent être plus affectées par " "ce paramètre." -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:99 AppTools/ToolFilm.py:124 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:110 +#: flatcamTools/ToolFilm.py:141 msgid "Film Adjustments" msgstr "Ajustements de film" -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:101 -#: AppTools/ToolFilm.py:126 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:112 +#: flatcamTools/ToolFilm.py:143 msgid "" "Sometime the printers will distort the print shape, especially the Laser " "types.\n" @@ -10845,13 +12824,13 @@ msgstr "" "Cette section fournit les outils permettant de compenser les distorsions " "d’impression." -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:108 -#: AppTools/ToolFilm.py:133 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:119 +#: flatcamTools/ToolFilm.py:150 msgid "Scale Film geometry" msgstr "Mettre à l'échelle la géo du film" -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:110 -#: AppTools/ToolFilm.py:135 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:121 +#: flatcamTools/ToolFilm.py:152 msgid "" "A value greater than 1 will stretch the film\n" "while a value less than 1 will jolt it." @@ -10859,25 +12838,25 @@ msgstr "" "Une valeur supérieure à 1 étendra le film\n" "alors qu'une valeur inférieure à 1 la secouera." -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:120 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:103 -#: AppTools/ToolFilm.py:145 AppTools/ToolTransform.py:148 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:131 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:103 +#: flatcamTools/ToolFilm.py:162 flatcamTools/ToolTransform.py:148 msgid "X factor" msgstr "Facteur X" -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:129 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:116 -#: AppTools/ToolFilm.py:154 AppTools/ToolTransform.py:168 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:140 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:116 +#: flatcamTools/ToolFilm.py:171 flatcamTools/ToolTransform.py:168 msgid "Y factor" msgstr "Facteur Y" -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:139 -#: AppTools/ToolFilm.py:172 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:150 +#: flatcamTools/ToolFilm.py:189 msgid "Skew Film geometry" msgstr "Inclinez la géo du film" -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:141 -#: AppTools/ToolFilm.py:174 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:152 +#: flatcamTools/ToolFilm.py:191 msgid "" "Positive values will skew to the right\n" "while negative values will skew to the left." @@ -10885,20 +12864,20 @@ msgstr "" "Les valeurs positives seront biaisées vers la droite\n" "tandis que les valeurs négatives inclineront vers la gauche." -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:151 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:72 -#: AppTools/ToolFilm.py:184 AppTools/ToolTransform.py:97 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:162 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:72 +#: flatcamTools/ToolFilm.py:201 flatcamTools/ToolTransform.py:97 msgid "X angle" msgstr "Angle X" -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:160 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:86 -#: AppTools/ToolFilm.py:193 AppTools/ToolTransform.py:118 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:171 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:86 +#: flatcamTools/ToolFilm.py:210 flatcamTools/ToolTransform.py:118 msgid "Y angle" msgstr "Angle Y" -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:171 -#: AppTools/ToolFilm.py:204 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:182 +#: flatcamTools/ToolFilm.py:221 msgid "" "The reference point to be used as origin for the skew.\n" "It can be one of the four points of the geometry bounding box." @@ -10906,64 +12885,63 @@ msgstr "" "Le point de référence à utiliser comme origine pour l'inclinaison.\n" "Ce peut être l'un des quatre points de la boîte englobante de la géométrie." -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:174 -#: AppTools/ToolCorners.py:80 AppTools/ToolFiducials.py:83 -#: AppTools/ToolFilm.py:207 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:185 +#: flatcamTools/ToolFiducials.py:87 flatcamTools/ToolFilm.py:224 msgid "Bottom Left" msgstr "En bas à gauche" -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:175 -#: AppTools/ToolCorners.py:88 AppTools/ToolFilm.py:208 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:186 +#: flatcamTools/ToolFilm.py:225 msgid "Top Left" msgstr "En haut à gauche" -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:176 -#: AppTools/ToolCorners.py:84 AppTools/ToolFilm.py:209 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:187 +#: flatcamTools/ToolFilm.py:226 msgid "Bottom Right" msgstr "En bas à droite" -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:177 -#: AppTools/ToolFilm.py:210 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:188 +#: flatcamTools/ToolFilm.py:227 msgid "Top right" msgstr "En haut à droite" -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:185 -#: AppTools/ToolFilm.py:227 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:196 +#: flatcamTools/ToolFilm.py:244 msgid "Mirror Film geometry" msgstr "Refléter la géo du film" -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:187 -#: AppTools/ToolFilm.py:229 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:198 +#: flatcamTools/ToolFilm.py:246 msgid "Mirror the film geometry on the selected axis or on both." msgstr "Reflétez la géométrie du film sur l'axe sélectionné ou sur les deux." -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:201 -#: AppTools/ToolFilm.py:243 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:212 +#: flatcamTools/ToolFilm.py:260 msgid "Mirror axis" msgstr "Axe du miroir" -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:211 -#: AppTools/ToolFilm.py:388 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:222 +#: flatcamTools/ToolFilm.py:405 msgid "SVG" msgstr "SVG" -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:212 -#: AppTools/ToolFilm.py:389 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:223 +#: flatcamTools/ToolFilm.py:406 msgid "PNG" msgstr "PNG" -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:213 -#: AppTools/ToolFilm.py:390 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:224 +#: flatcamTools/ToolFilm.py:407 msgid "PDF" msgstr "PDF" -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:216 -#: AppTools/ToolFilm.py:281 AppTools/ToolFilm.py:393 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:227 +#: flatcamTools/ToolFilm.py:298 flatcamTools/ToolFilm.py:410 msgid "Film Type:" msgstr "Type de Film:" -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:218 -#: AppTools/ToolFilm.py:395 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:229 +#: flatcamTools/ToolFilm.py:412 msgid "" "The file type of the saved film. Can be:\n" "- 'SVG' -> open-source vectorial format\n" @@ -10975,45 +12953,86 @@ msgstr "" "- 'PNG' -> image raster\n" "- 'PDF' -> format de document portable" -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:227 -#: AppTools/ToolFilm.py:404 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:238 +#: flatcamTools/ToolFilm.py:421 msgid "Page Orientation" msgstr "Orientation de la page" -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:240 -#: AppTools/ToolFilm.py:417 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:251 +#: flatcamTools/ToolFilm.py:434 msgid "Page Size" msgstr "Taille de la page" -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:241 -#: AppTools/ToolFilm.py:418 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:252 +#: flatcamTools/ToolFilm.py:435 msgid "A selection of standard ISO 216 page sizes." msgstr "Une sélection de formats de page ISO 216 standard." -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:26 -msgid "Isolation Tool Options" -msgstr "Options de l'outil de Isolement" +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:27 +msgid "NCC Tool Options" +msgstr "Options de L'outil de la NCC" -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:48 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:49 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:57 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:49 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:57 msgid "Comma separated values" msgstr "Valeurs séparées par des virgules" -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:54 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:156 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:142 -#: AppTools/ToolIsolation.py:166 AppTools/ToolNCC.py:174 -#: AppTools/ToolPaint.py:157 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:55 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:63 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:64 +#: flatcamTools/ToolNCC.py:215 flatcamTools/ToolNCC.py:223 +#: flatcamTools/ToolPaint.py:198 flatcamTools/ToolPaint.py:206 +msgid "" +"Default tool type:\n" +"- 'V-shape'\n" +"- Circular" +msgstr "" +"Type d'outil par défaut:\n" +"- 'Forme en V'\n" +"- circulaire" + +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:60 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:69 +#: flatcamTools/ToolNCC.py:220 flatcamTools/ToolPaint.py:203 +msgid "V-shape" +msgstr "Forme en V" + +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:100 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:109 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:107 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:116 +#: flatcamTools/ToolNCC.py:262 flatcamTools/ToolNCC.py:271 +#: flatcamTools/ToolPaint.py:245 flatcamTools/ToolPaint.py:254 +msgid "" +"Depth of cut into material. Negative value.\n" +"In FlatCAM units." +msgstr "" +"Profondeur de la coupe dans le matériau. Valeur négative.\n" +"En unités FlatCAM." + +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:119 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:125 +#: flatcamTools/ToolNCC.py:280 flatcamTools/ToolPaint.py:263 +msgid "" +"Diameter for the new tool to add in the Tool Table.\n" +"If the tool is V-shape type then this value is automatically\n" +"calculated from the other parameters." +msgstr "" +"Diamètre du nouvel outil à ajouter dans la table d'outils.\n" +"Si l'outil est de type V, cette valeur est automatiquement\n" +"calculé à partir des autres paramètres." + +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:156 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:142 +#: flatcamTools/ToolNCC.py:174 flatcamTools/ToolPaint.py:158 msgid "Tool order" msgstr "L'ordre des Outils" -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:55 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:157 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:167 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:143 -#: AppTools/ToolIsolation.py:167 AppTools/ToolNCC.py:175 -#: AppTools/ToolNCC.py:185 AppTools/ToolPaint.py:158 AppTools/ToolPaint.py:168 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:157 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:167 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:143 +#: flatcamTools/ToolNCC.py:175 flatcamTools/ToolNCC.py:185 +#: flatcamTools/ToolPaint.py:159 flatcamTools/ToolPaint.py:169 msgid "" "This set the way that the tools in the tools table are used.\n" "'No' --> means that the used order is the one in the tool table\n" @@ -11035,210 +13054,23 @@ msgstr "" "commande\n" "en sens inverse et désactivez ce contrôle." -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:63 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:165 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:151 -#: AppTools/ToolIsolation.py:175 AppTools/ToolNCC.py:183 -#: AppTools/ToolPaint.py:166 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:165 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:151 +#: flatcamTools/ToolNCC.py:183 flatcamTools/ToolPaint.py:167 msgid "Forward" msgstr "L'avant" -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:64 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:166 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:152 -#: AppTools/ToolIsolation.py:176 AppTools/ToolNCC.py:184 -#: AppTools/ToolPaint.py:167 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:166 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:152 +#: flatcamTools/ToolNCC.py:184 flatcamTools/ToolPaint.py:168 msgid "Reverse" msgstr "Inverse" -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:72 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:80 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:55 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:63 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:64 -#: AppTools/ToolIsolation.py:201 AppTools/ToolIsolation.py:209 -#: AppTools/ToolNCC.py:215 AppTools/ToolNCC.py:223 AppTools/ToolPaint.py:197 -#: AppTools/ToolPaint.py:205 -msgid "" -"Default tool type:\n" -"- 'V-shape'\n" -"- Circular" -msgstr "" -"Type d'outil par défaut:\n" -"- 'Forme en V'\n" -"- circulaire" - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:77 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:60 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:69 -#: AppTools/ToolIsolation.py:206 AppTools/ToolNCC.py:220 -#: AppTools/ToolPaint.py:202 -msgid "V-shape" -msgstr "Forme en V" - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:103 -msgid "" -"The tip angle for V-Shape Tool.\n" -"In degrees." -msgstr "" -"L'angle de pointe pour l'outil en forme de V.\n" -"En degrés." - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:117 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:126 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:100 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:109 -#: AppTools/ToolIsolation.py:248 AppTools/ToolNCC.py:262 -#: AppTools/ToolNCC.py:271 AppTools/ToolPaint.py:244 AppTools/ToolPaint.py:253 -msgid "" -"Depth of cut into material. Negative value.\n" -"In FlatCAM units." -msgstr "" -"Profondeur de la coupe dans le matériau. Valeur négative.\n" -"En unités FlatCAM." - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:136 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:119 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:125 -#: AppTools/ToolIsolation.py:262 AppTools/ToolNCC.py:280 -#: AppTools/ToolPaint.py:262 -msgid "" -"Diameter for the new tool to add in the Tool Table.\n" -"If the tool is V-shape type then this value is automatically\n" -"calculated from the other parameters." -msgstr "" -"Diamètre du nouvel outil à ajouter dans la table d'outils.\n" -"Si l'outil est de type V, cette valeur est automatiquement\n" -"calculé à partir des autres paramètres." - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:243 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:288 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:244 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:245 -#: AppTools/ToolIsolation.py:432 AppTools/ToolNCC.py:512 -#: AppTools/ToolPaint.py:441 -msgid "Rest" -msgstr "Reste" - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:246 -#: AppTools/ToolIsolation.py:435 -msgid "" -"If checked, use 'rest machining'.\n" -"Basically it will isolate outside PCB features,\n" -"using the biggest tool and continue with the next tools,\n" -"from bigger to smaller, to isolate the copper features that\n" -"could not be cleared by previous tool, until there is\n" -"no more copper features to isolate or there are no more tools.\n" -"If not checked, use the standard algorithm." -msgstr "" -"Si cette case est cochée, utilisez «usinage de repos».\n" -"Fondamentalement, il isolera les caractéristiques extérieures des PCB,\n" -"en utilisant le plus grand outil et continuer avec les outils suivants,\n" -"du plus grand au plus petit, pour isoler les éléments en cuivre\n" -"n'a pas pu être effacé par l'outil précédent, tant qu'il n'y a pas\n" -"plus de fonctions en cuivre à isoler ou plus d'outils.\n" -"S'il n'est pas coché, utilisez l'algorithme standard." - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:258 -#: AppTools/ToolIsolation.py:447 -msgid "Combine" -msgstr "Combiner" - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:260 -#: AppTools/ToolIsolation.py:449 -msgid "Combine all passes into one object" -msgstr "Combine tous les passages dans un objet" - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:267 -#: AppTools/ToolIsolation.py:456 -msgid "Except" -msgstr "Sauf" - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:268 -#: AppTools/ToolIsolation.py:457 -msgid "" -"When the isolation geometry is generated,\n" -"by checking this, the area of the object below\n" -"will be subtracted from the isolation geometry." -msgstr "" -"Lorsque la géométrie d'isolement est générée,\n" -"en vérifiant cela, la zone de l'objet ci-dessous\n" -"sera soustrait de la géométrie d'isolement." - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:277 -#: AppTools/ToolIsolation.py:496 -msgid "" -"Isolation scope. Choose what to isolate:\n" -"- 'All' -> Isolate all the polygons in the object\n" -"- 'Area Selection' -> Isolate polygons within a selection area.\n" -"- 'Polygon Selection' -> Isolate a selection of polygons.\n" -"- 'Reference Object' - will process the area specified by another object." -msgstr "" -"Portée d'isolement. Choisissez quoi isoler:\n" -"- 'Tout' -> Isoler tous les polygones de l'objet\n" -"- 'Sélection de zone' -> Isoler les polygones dans une zone de sélection.\n" -"- 'Sélection de polygone' -> Isoler une sélection de polygones.\n" -"- 'Objet de référence' - traitera la zone spécifiée par un autre objet." - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:285 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280 -#: AppTools/ToolIsolation.py:504 AppTools/ToolIsolation.py:1308 -#: AppTools/ToolIsolation.py:1690 AppTools/ToolPaint.py:485 -#: AppTools/ToolPaint.py:941 AppTools/ToolPaint.py:1451 -#: tclCommands/TclCommandPaint.py:164 -msgid "Polygon Selection" -msgstr "Sélection de polygone" - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:310 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:339 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:303 -msgid "Normal" -msgstr "Ordinaire" - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:311 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:340 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:304 -msgid "Progressive" -msgstr "Progressif" - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:312 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:341 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:305 -#: AppObjects/AppObject.py:349 AppObjects/FlatCAMObj.py:251 -#: AppObjects/FlatCAMObj.py:282 AppObjects/FlatCAMObj.py:298 -#: AppObjects/FlatCAMObj.py:378 AppTools/ToolCopperThieving.py:1491 -#: AppTools/ToolCorners.py:411 AppTools/ToolFiducials.py:813 -#: AppTools/ToolMove.py:229 AppTools/ToolQRCode.py:737 App_Main.py:4397 -msgid "Plotting" -msgstr "Traçage" - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:314 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:343 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:307 -msgid "" -"- 'Normal' - normal plotting, done at the end of the job\n" -"- 'Progressive' - each shape is plotted after it is generated" -msgstr "" -"- 'Normal' - tracé normal, fait à la fin du travail\n" -"- 'Progressive' - chaque forme est tracée après sa génération" - -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:27 -msgid "NCC Tool Options" -msgstr "Options de L'outil de la NCC" - -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:33 -msgid "" -"Create a Geometry object with\n" -"toolpaths to cut all non-copper regions." -msgstr "" -"Créez un objet de géométrie avec\n" -"des parcours pour couper toutes les régions non-cuivre." - -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:266 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:266 msgid "Offset value" msgstr "Valeur de Décalage" -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:268 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:268 msgid "" "If used, it will add an offset to the copper features.\n" "The copper clearing will finish to a distance\n" @@ -11250,7 +13082,15 @@ msgstr "" "des caractéristiques de cuivre.\n" "La valeur peut être comprise entre 0 et 9999.9 unités FlatCAM." -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:290 AppTools/ToolNCC.py:516 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:288 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:244 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:245 +#: flatcamTools/ToolNCC.py:512 flatcamTools/ToolPaint.py:442 +msgid "Rest Machining" +msgstr "Usinage de Repos" + +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:290 +#: flatcamTools/ToolNCC.py:516 msgid "" "If checked, use 'rest machining'.\n" "Basically it will clear copper outside PCB features,\n" @@ -11268,7 +13108,8 @@ msgstr "" "plus de cuivre à nettoyer ou il n'y a plus d'outils.\n" "Si non coché, utilisez l'algorithme standard." -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:313 AppTools/ToolNCC.py:541 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:313 +#: flatcamTools/ToolNCC.py:541 msgid "" "Selection of area to be processed.\n" "- 'Itself' - the processing extent is based on the object that is " @@ -11283,25 +13124,38 @@ msgstr "" "de la zone à traiter.\n" "- 'Objet de référence' - traitera la zone spécifiée par un autre objet." -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:27 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:339 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:303 +msgid "Normal" +msgstr "Ordinaire" + +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:340 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:304 +msgid "Progressive" +msgstr "Progressif" + +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:341 +msgid "NCC Plotting" +msgstr "Dessin de la NCC" + +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:343 +msgid "" +"- 'Normal' - normal plotting, done at the end of the NCC job\n" +"- 'Progressive' - after each shape is generated it will be plotted." +msgstr "" +"- 'Normal' - tracé normal, effectué à la fin du travail de la NCC\n" +"- 'Progressif' - après chaque forme générée, elle sera tracée." + +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:27 msgid "Paint Tool Options" msgstr "Options de l'Outil de Peinture" -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:33 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:33 msgid "Parameters:" msgstr "Paramètres:" -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:107 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:116 -msgid "" -"Depth of cut into material. Negative value.\n" -"In application units." -msgstr "" -"Profondeur de coupe dans le matériau. Valeur négative.\n" -"En unités d'application." - -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:247 -#: AppTools/ToolPaint.py:444 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:247 +#: flatcamTools/ToolPaint.py:445 msgid "" "If checked, use 'rest machining'.\n" "Basically it will clear copper outside PCB features,\n" @@ -11321,8 +13175,8 @@ msgstr "" "\n" "Si non coché, utilisez l'algorithme standard." -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:260 -#: AppTools/ToolPaint.py:457 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:260 +#: flatcamTools/ToolPaint.py:458 msgid "" "Selection of area to be processed.\n" "- 'Polygon Selection' - left mouse click to add/remove polygons to be " @@ -11344,11 +13198,29 @@ msgstr "" "- «Tous les polygones» - le processus démarrera après le clic.\n" "- «Objet de reference» - traitera la zone spécifiée par un autre objet." -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:27 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280 +#: flatcamTools/ToolPaint.py:486 flatcamTools/ToolPaint.py:942 +#: flatcamTools/ToolPaint.py:1432 tclCommands/TclCommandPaint.py:164 +msgid "Polygon Selection" +msgstr "Sélection de polygone" + +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:305 +msgid "Paint Plotting" +msgstr "Peinture dessin" + +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:307 +msgid "" +"- 'Normal' - normal plotting, done at the end of the Paint job\n" +"- 'Progressive' - after each shape is generated it will be plotted." +msgstr "" +"- 'Normal' - traçage normal, effectué à la fin du travail de peinture\n" +"- 'Progressif' - après chaque forme générée, elle sera tracée." + +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:27 msgid "Panelize Tool Options" msgstr "Options de l'Outil Panéliser" -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:33 +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:33 msgid "" "Create an object that contains an array of (x, y) elements,\n" "each element is a copy of the source object spaced\n" @@ -11358,13 +13230,13 @@ msgstr "" "chaque élément est une copie de l'objet source espacé\n" "à une distance X, Y distance les uns des autres." -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:50 -#: AppTools/ToolPanelize.py:165 +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:50 +#: flatcamTools/ToolPanelize.py:163 msgid "Spacing cols" msgstr "Colonnes d'espacement" -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:52 -#: AppTools/ToolPanelize.py:167 +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:52 +#: flatcamTools/ToolPanelize.py:165 msgid "" "Spacing between columns of the desired panel.\n" "In current units." @@ -11372,13 +13244,13 @@ msgstr "" "Espacement entre les colonnes du panneau souhaité.\n" "En unités actuelles." -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:64 -#: AppTools/ToolPanelize.py:177 +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:64 +#: flatcamTools/ToolPanelize.py:175 msgid "Spacing rows" msgstr "Lignes d'espacement" -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:66 -#: AppTools/ToolPanelize.py:179 +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:66 +#: flatcamTools/ToolPanelize.py:177 msgid "" "Spacing between rows of the desired panel.\n" "In current units." @@ -11386,55 +13258,37 @@ msgstr "" "Espacement entre les lignes du panneau souhaité.\n" "En unités actuelles." -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:77 -#: AppTools/ToolPanelize.py:188 +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:77 +#: flatcamTools/ToolPanelize.py:186 msgid "Columns" msgstr "Colonnes" -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:79 -#: AppTools/ToolPanelize.py:190 +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:79 +#: flatcamTools/ToolPanelize.py:188 msgid "Number of columns of the desired panel" msgstr "Nombre de colonnes du panneau désiré" -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:89 -#: AppTools/ToolPanelize.py:198 +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:89 +#: flatcamTools/ToolPanelize.py:196 msgid "Rows" msgstr "Lignes" -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:91 -#: AppTools/ToolPanelize.py:200 +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:91 +#: flatcamTools/ToolPanelize.py:198 msgid "Number of rows of the desired panel" msgstr "Nombre de lignes du panneau désiré" -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:97 -#: AppTools/ToolAlignObjects.py:73 AppTools/ToolAlignObjects.py:109 -#: AppTools/ToolCalibration.py:196 AppTools/ToolCalibration.py:631 -#: AppTools/ToolCalibration.py:648 AppTools/ToolCalibration.py:807 -#: AppTools/ToolCalibration.py:815 AppTools/ToolCopperThieving.py:148 -#: AppTools/ToolCopperThieving.py:162 AppTools/ToolCopperThieving.py:608 -#: AppTools/ToolCutOut.py:91 AppTools/ToolDblSided.py:224 -#: AppTools/ToolFilm.py:68 AppTools/ToolFilm.py:91 AppTools/ToolImage.py:49 -#: AppTools/ToolImage.py:252 AppTools/ToolImage.py:273 -#: AppTools/ToolIsolation.py:465 AppTools/ToolIsolation.py:517 -#: AppTools/ToolIsolation.py:1281 AppTools/ToolNCC.py:96 -#: AppTools/ToolNCC.py:558 AppTools/ToolNCC.py:1318 AppTools/ToolPaint.py:501 -#: AppTools/ToolPaint.py:705 AppTools/ToolPanelize.py:116 -#: AppTools/ToolPanelize.py:210 AppTools/ToolPanelize.py:385 -#: AppTools/ToolPanelize.py:402 -msgid "Gerber" -msgstr "Gerber" - -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:98 -#: AppTools/ToolPanelize.py:211 +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:98 +#: flatcamTools/ToolPanelize.py:205 msgid "Geo" msgstr "Géo" -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:99 -#: AppTools/ToolPanelize.py:212 +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:99 +#: flatcamTools/ToolPanelize.py:206 msgid "Panel Type" msgstr "Type de Panneau" -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:101 +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:101 msgid "" "Choose the type of object for the panel object:\n" "- Gerber\n" @@ -11444,12 +13298,12 @@ msgstr "" "- Gerber\n" "- Géométrie" -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:110 +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:110 msgid "Constrain within" msgstr "Contraindre à l'intérieur" -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:112 -#: AppTools/ToolPanelize.py:224 +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:112 +#: flatcamTools/ToolPanelize.py:218 msgid "" "Area define by DX and DY within to constrain the panel.\n" "DX and DY values are in current units.\n" @@ -11463,13 +13317,13 @@ msgstr "" "le panneau final aura autant de colonnes et de lignes que\n" "ils correspondent parfaitement à la zone sélectionnée." -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:125 -#: AppTools/ToolPanelize.py:236 +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:125 +#: flatcamTools/ToolPanelize.py:230 msgid "Width (DX)" msgstr "Largeur (DX)" -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:127 -#: AppTools/ToolPanelize.py:238 +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:127 +#: flatcamTools/ToolPanelize.py:232 msgid "" "The width (DX) within which the panel must fit.\n" "In current units." @@ -11477,13 +13331,13 @@ msgstr "" "La largeur (DX) dans laquelle le panneau doit tenir.\n" "En unités actuelles." -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:138 -#: AppTools/ToolPanelize.py:247 +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:138 +#: flatcamTools/ToolPanelize.py:241 msgid "Height (DY)" msgstr "Hauteur (DY)" -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:140 -#: AppTools/ToolPanelize.py:249 +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:140 +#: flatcamTools/ToolPanelize.py:243 msgid "" "The height (DY)within which the panel must fit.\n" "In current units." @@ -11491,11 +13345,11 @@ msgstr "" "La hauteur (DY) à laquelle le panneau doit s’adapter.\n" "En unités actuelles." -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:27 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:27 msgid "SolderPaste Tool Options" msgstr "Options de l'Outil Pâte à souder" -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:33 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:33 msgid "" "A tool to create GCode for dispensing\n" "solder paste onto a PCB." @@ -11503,52 +13357,52 @@ msgstr "" "Un outil pour créer le GCode pour la distribution\n" "souder la pâte sur un PCB." -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:54 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:54 msgid "New Nozzle Dia" -msgstr "Diam Nouvelle Buse" +msgstr "Nouvelle Buse Dia" -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:56 -#: AppTools/ToolSolderPaste.py:112 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:56 +#: flatcamTools/ToolSolderPaste.py:107 msgid "Diameter for the new Nozzle tool to add in the Tool Table" msgstr "Diamètre du nouvel outil Buse à ajouter dans le tableau des outils" -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:72 -#: AppTools/ToolSolderPaste.py:179 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:72 +#: flatcamTools/ToolSolderPaste.py:183 msgid "Z Dispense Start" msgstr "Z début de la distribution" -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:74 -#: AppTools/ToolSolderPaste.py:181 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:74 +#: flatcamTools/ToolSolderPaste.py:185 msgid "The height (Z) when solder paste dispensing starts." msgstr "La hauteur (Z) au début de la distribution de la pâte à braser." -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:85 -#: AppTools/ToolSolderPaste.py:191 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:85 +#: flatcamTools/ToolSolderPaste.py:195 msgid "Z Dispense" msgstr "Z dispenser" -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:87 -#: AppTools/ToolSolderPaste.py:193 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:87 +#: flatcamTools/ToolSolderPaste.py:197 msgid "The height (Z) when doing solder paste dispensing." msgstr "La hauteur (Z) lors de la distribution de la pâte à braser." -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:98 -#: AppTools/ToolSolderPaste.py:203 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:98 +#: flatcamTools/ToolSolderPaste.py:207 msgid "Z Dispense Stop" msgstr "Z arrêt de distribution" -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:100 -#: AppTools/ToolSolderPaste.py:205 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:100 +#: flatcamTools/ToolSolderPaste.py:209 msgid "The height (Z) when solder paste dispensing stops." msgstr "La hauteur (Z) lorsque la distribution de la pâte à braser s’arrête." -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:111 -#: AppTools/ToolSolderPaste.py:215 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:111 +#: flatcamTools/ToolSolderPaste.py:219 msgid "Z Travel" msgstr "Z Voyage" -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:113 -#: AppTools/ToolSolderPaste.py:217 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:113 +#: flatcamTools/ToolSolderPaste.py:221 msgid "" "The height (Z) for travel between pads\n" "(without dispensing solder paste)." @@ -11556,18 +13410,18 @@ msgstr "" "La hauteur (Z) pour le déplacement entre les patins\n" "(sans distribution de pâte à braser)." -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:125 -#: AppTools/ToolSolderPaste.py:228 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:125 +#: flatcamTools/ToolSolderPaste.py:232 msgid "Z Toolchange" msgstr "Changement d'outil Z" -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:127 -#: AppTools/ToolSolderPaste.py:230 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:127 +#: flatcamTools/ToolSolderPaste.py:234 msgid "The height (Z) for tool (nozzle) change." msgstr "La hauteur (Z) de l'outil (buse) change." -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:136 -#: AppTools/ToolSolderPaste.py:238 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:136 +#: flatcamTools/ToolSolderPaste.py:242 msgid "" "The X,Y location for tool (nozzle) change.\n" "The format is (x, y) where x and y are real numbers." @@ -11575,13 +13429,13 @@ msgstr "" "L'emplacement X, Y de l'outil (buse) change.\n" "Le format est (x, y) où x et y sont des nombres réels." -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:150 -#: AppTools/ToolSolderPaste.py:251 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:150 +#: flatcamTools/ToolSolderPaste.py:255 msgid "Feedrate (speed) while moving on the X-Y plane." msgstr "Avance (vitesse) en se déplaçant sur le plan X-Y." -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:163 -#: AppTools/ToolSolderPaste.py:263 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:163 +#: flatcamTools/ToolSolderPaste.py:267 msgid "" "Feedrate (speed) while moving vertically\n" "(on Z plane)." @@ -11589,12 +13443,12 @@ msgstr "" "Avance (vitesse) en se déplaçant verticalement\n" "(sur le plan Z)." -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:175 -#: AppTools/ToolSolderPaste.py:274 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:175 +#: flatcamTools/ToolSolderPaste.py:278 msgid "Feedrate Z Dispense" msgstr "Avance Z Distribution" -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:177 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:177 msgid "" "Feedrate (speed) while moving up vertically\n" "to Dispense position (on Z plane)." @@ -11602,13 +13456,13 @@ msgstr "" "Avance (vitesse) en montant verticalement\n" "position de distribution (sur le plan Z)." -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:188 -#: AppTools/ToolSolderPaste.py:286 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:188 +#: flatcamTools/ToolSolderPaste.py:290 msgid "Spindle Speed FWD" msgstr "Vitesse de Rot FWD" -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:190 -#: AppTools/ToolSolderPaste.py:288 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:190 +#: flatcamTools/ToolSolderPaste.py:292 msgid "" "The dispenser speed while pushing solder paste\n" "through the dispenser nozzle." @@ -11616,23 +13470,23 @@ msgstr "" "La vitesse du distributeur en poussant la pâte à souder\n" "à travers la buse du distributeur." -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:202 -#: AppTools/ToolSolderPaste.py:299 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:202 +#: flatcamTools/ToolSolderPaste.py:303 msgid "Dwell FWD" msgstr "Habiter AVANT" -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:204 -#: AppTools/ToolSolderPaste.py:301 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:204 +#: flatcamTools/ToolSolderPaste.py:305 msgid "Pause after solder dispensing." msgstr "Pause après la distribution de la brasure." -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:214 -#: AppTools/ToolSolderPaste.py:310 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:214 +#: flatcamTools/ToolSolderPaste.py:314 msgid "Spindle Speed REV" msgstr "Vitesse du moteur en REV" -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:216 -#: AppTools/ToolSolderPaste.py:312 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:216 +#: flatcamTools/ToolSolderPaste.py:316 msgid "" "The dispenser speed while retracting solder paste\n" "through the dispenser nozzle." @@ -11640,13 +13494,13 @@ msgstr "" "La vitesse du distributeur lors du retrait de la pâte à souder\n" "à travers la buse du distributeur." -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:228 -#: AppTools/ToolSolderPaste.py:323 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:228 +#: flatcamTools/ToolSolderPaste.py:327 msgid "Dwell REV" msgstr "Habiter INVERSE" -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:230 -#: AppTools/ToolSolderPaste.py:325 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:230 +#: flatcamTools/ToolSolderPaste.py:329 msgid "" "Pause after solder paste dispenser retracted,\n" "to allow pressure equilibrium." @@ -11654,62 +13508,63 @@ msgstr "" "Pause après rétraction du distributeur de pâte à souder,\n" "permettre l'équilibre de la pression." -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:239 -#: AppTools/ToolSolderPaste.py:333 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:239 +#: flatcamTools/ToolSolderPaste.py:337 msgid "Files that control the GCode generation." msgstr "Fichiers qui contrôlent la génération de GCode." -#: AppGUI/preferences/tools/ToolsSubPrefGroupUI.py:27 +#: flatcamGUI/preferences/tools/ToolsSubPrefGroupUI.py:27 msgid "Substractor Tool Options" msgstr "Options de l'Outil Soustracteur" -#: AppGUI/preferences/tools/ToolsSubPrefGroupUI.py:33 +#: flatcamGUI/preferences/tools/ToolsSubPrefGroupUI.py:33 msgid "" "A tool to substract one Gerber or Geometry object\n" "from another of the same type." msgstr "" -"Un outil pour soustraire un objet Gerber ou Géométrie\n" +"Un outil pour soustraire un objet Gerber ou Geometry\n" "d'un autre du même type." -#: AppGUI/preferences/tools/ToolsSubPrefGroupUI.py:38 AppTools/ToolSub.py:160 +#: flatcamGUI/preferences/tools/ToolsSubPrefGroupUI.py:38 +#: flatcamTools/ToolSub.py:155 msgid "Close paths" msgstr "Fermer les chemins" -#: AppGUI/preferences/tools/ToolsSubPrefGroupUI.py:39 +#: flatcamGUI/preferences/tools/ToolsSubPrefGroupUI.py:39 msgid "" "Checking this will close the paths cut by the Geometry substractor object." msgstr "" "En cochant cette case, vous fermez les chemins coupés par l'objet " "soustracteur de géométrie." -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:27 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:27 msgid "Transform Tool Options" msgstr "Options de l'Outil de Transformation" -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:33 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:33 msgid "" "Various transformations that can be applied\n" -"on a application object." +"on a FlatCAM object." msgstr "" -"Diverses transformations qui peuvent être appliquées\n" -"sur un objet d'application." +"Diverses transformations pouvant être appliquées\n" +"sur un objet FlatCAM." -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:64 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:64 msgid "Skew" -msgstr "Inclinaison" +msgstr "Fausser" -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:105 -#: AppTools/ToolTransform.py:150 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:105 +#: flatcamTools/ToolTransform.py:150 msgid "Factor for scaling on X axis." msgstr "Facteur de mise à l'échelle sur l'axe X." -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:118 -#: AppTools/ToolTransform.py:170 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:118 +#: flatcamTools/ToolTransform.py:170 msgid "Factor for scaling on Y axis." msgstr "Facteur de mise à l'échelle sur l'axe Y." -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:126 -#: AppTools/ToolTransform.py:191 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:126 +#: flatcamTools/ToolTransform.py:191 msgid "" "Scale the selected object(s)\n" "using the Scale_X factor for both axis." @@ -11717,8 +13572,8 @@ msgstr "" "Mettre à l'échelle le ou les objets sélectionnés\n" "en utilisant le facteur d'échelle X pour les deux axes." -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:134 -#: AppTools/ToolTransform.py:198 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:134 +#: flatcamTools/ToolTransform.py:198 msgid "" "Scale the selected object(s)\n" "using the origin reference when checked,\n" @@ -11730,39 +13585,39 @@ msgstr "" "et le centre de la plus grande boîte englobante\n" "des objets sélectionnés lorsqu'il est décoché." -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:150 -#: AppTools/ToolTransform.py:217 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:150 +#: flatcamTools/ToolTransform.py:217 msgid "X val" msgstr "Valeur X" -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:152 -#: AppTools/ToolTransform.py:219 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:152 +#: flatcamTools/ToolTransform.py:219 msgid "Distance to offset on X axis. In current units." msgstr "Distance à compenser sur l'axe X. En unités actuelles." -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:163 -#: AppTools/ToolTransform.py:237 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:163 +#: flatcamTools/ToolTransform.py:237 msgid "Y val" msgstr "Valeur Y" -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:165 -#: AppTools/ToolTransform.py:239 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:165 +#: flatcamTools/ToolTransform.py:239 msgid "Distance to offset on Y axis. In current units." msgstr "Distance à compenser sur l'axe X. En unités actuelles." -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:171 -#: AppTools/ToolDblSided.py:67 AppTools/ToolDblSided.py:95 -#: AppTools/ToolDblSided.py:125 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:171 +#: flatcamTools/ToolDblSided.py:67 flatcamTools/ToolDblSided.py:95 +#: flatcamTools/ToolDblSided.py:125 msgid "Mirror" msgstr "Miroir" -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:175 -#: AppTools/ToolTransform.py:283 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:175 +#: flatcamTools/ToolTransform.py:283 msgid "Mirror Reference" msgstr "Référence du miroir" -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:177 -#: AppTools/ToolTransform.py:285 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:177 +#: flatcamTools/ToolTransform.py:285 msgid "" "Flip the selected object(s)\n" "around the point in Point Entry Field.\n" @@ -11784,11 +13639,11 @@ msgstr "" "Ou entrez les coordonnées au format (x, y) dans le champ\n" "Pointez sur le champ Entrée et cliquez sur Basculer sur X (Y)." -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:188 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:188 msgid "Mirror Reference point" msgstr "Miroir Point de référence" -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:190 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:190 msgid "" "Coordinates in format (x, y) used as reference for mirroring.\n" "The 'x' in (x, y) will be used when using Flip on X and\n" @@ -11799,14 +13654,14 @@ msgstr "" "Le \"x\" dans (x, y) sera utilisé lors de l'utilisation de Flip sur X et\n" "le 'y' dans (x, y) sera utilisé lors de l'utilisation de Flip sur Y et" -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:203 -#: AppTools/ToolDistance.py:505 AppTools/ToolDistanceMin.py:286 -#: AppTools/ToolTransform.py:332 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:203 +#: flatcamTools/ToolDistance.py:496 flatcamTools/ToolDistanceMin.py:287 +#: flatcamTools/ToolTransform.py:332 msgid "Distance" msgstr "Distance" -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:205 -#: AppTools/ToolTransform.py:334 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:205 +#: flatcamTools/ToolTransform.py:334 msgid "" "A positive value will create the effect of dilation,\n" "while a negative value will create the effect of erosion.\n" @@ -11818,8 +13673,8 @@ msgstr "" "Chaque élément de géométrie de l'objet sera augmenté\n" "ou diminué avec la «distance»." -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:222 -#: AppTools/ToolTransform.py:359 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:222 +#: flatcamTools/ToolTransform.py:359 msgid "" "A positive value will create the effect of dilation,\n" "while a negative value will create the effect of erosion.\n" @@ -11833,8 +13688,8 @@ msgstr "" "ou diminué pour correspondre à la «valeur». La valeur est un pourcentage\n" "de la dimension initiale." -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:241 -#: AppTools/ToolTransform.py:385 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:241 +#: flatcamTools/ToolTransform.py:385 msgid "" "If checked then the buffer will surround the buffered shape,\n" "every corner will be rounded.\n" @@ -11846,30 +13701,37 @@ msgstr "" "S'il n'est pas coché, le tampon suivra la géométrie exacte\n" "de la forme tamponnée." -#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:27 +#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:27 msgid "Autocompleter Keywords" msgstr "Mots-clés d'auto-complétion" -#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:30 -#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:40 -#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:30 -#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:30 +#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:30 +#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:40 +#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:30 +#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:30 msgid "Restore" msgstr "Restaurer" -#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:31 +#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:31 msgid "Restore the autocompleter keywords list to the default state." msgstr "Restaurez la liste de mots-clés d'auto-complétion à l'état par défaut." -#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:33 +#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:32 +#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:42 +#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:32 +#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:32 +msgid "Delete All" +msgstr "Supprimer tout" + +#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:33 msgid "Delete all autocompleter keywords from the list." msgstr "Supprimer tous les mots clés autocompleter de la liste." -#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:41 +#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:41 msgid "Keywords list" msgstr "Liste des mots clés" -#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:43 +#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:43 msgid "" "List of keywords used by\n" "the autocompleter in FlatCAM.\n" @@ -11881,58 +13743,58 @@ msgstr "" "L'auto-compléteur est installé\n" "dans l'éditeur de code et pour le shell Tcl." -#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:64 -#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:73 -#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:63 -#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:62 +#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:64 +#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:73 +#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:63 +#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:62 msgid "Extension" msgstr "Extension" -#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:65 +#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:65 msgid "A keyword to be added or deleted to the list." msgstr "Un mot clé à ajouter ou à supprimer à la liste." -#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:73 +#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:73 msgid "Add keyword" msgstr "Ajouter un mot clé" -#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:74 +#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:74 msgid "Add a keyword to the list" msgstr "Ajouter un mot clé à la liste" -#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:75 +#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:75 msgid "Delete keyword" msgstr "Supprimer le mot clé" -#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:76 +#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:76 msgid "Delete a keyword from the list" msgstr "Supprimer un mot clé de la liste" -#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:27 +#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:27 msgid "Excellon File associations" msgstr "Associations de fichiers Excellon" -#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:41 -#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:31 -#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:31 +#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:41 +#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:31 +#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:31 msgid "Restore the extension list to the default state." msgstr "Restaurez la liste des extensions à l'état par défaut." -#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:43 -#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:33 -#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:33 +#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:43 +#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:33 +#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:33 msgid "Delete all extensions from the list." msgstr "Supprimer toutes les extensions de la liste." -#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:51 -#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:41 -#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:41 +#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:51 +#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:41 +#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:41 msgid "Extensions list" msgstr "Liste d'extensions" -#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:53 -#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:43 -#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:43 +#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:53 +#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:43 +#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:43 msgid "" "List of file extensions to be\n" "associated with FlatCAM." @@ -11940,45 +13802,45 @@ msgstr "" "Liste des extensions de fichier à être\n" "associé à FlatCAM." -#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:74 -#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:64 -#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:63 +#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:74 +#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:64 +#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:63 msgid "A file extension to be added or deleted to the list." msgstr "Une extension de fichier à ajouter ou à supprimer à la liste." -#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:82 -#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:72 -#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:71 +#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:82 +#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:72 +#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:71 msgid "Add Extension" msgstr "Ajouter une extension" -#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:83 -#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:73 -#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:72 +#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:83 +#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:73 +#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:72 msgid "Add a file extension to the list" msgstr "Ajouter une extension de fichier à la liste" -#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:84 -#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:74 -#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:73 +#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:84 +#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:74 +#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:73 msgid "Delete Extension" msgstr "Supprimer l'extension" -#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:85 -#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:75 -#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:74 +#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:85 +#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:75 +#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:74 msgid "Delete a file extension from the list" msgstr "Supprimer une extension de fichier de la liste" -#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:92 -#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:82 -#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:81 +#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:92 +#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:82 +#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:81 msgid "Apply Association" msgstr "Appliquer l'association" -#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:93 -#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:83 -#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:82 +#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:93 +#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:83 +#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:82 msgid "" "Apply the file associations between\n" "FlatCAM and the files with above extensions.\n" @@ -11990,241 +13852,203 @@ msgstr "" "Ils seront actifs après la prochaine ouverture de session.\n" "Cela ne fonctionne que sous Windows." -#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:27 +#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:27 msgid "GCode File associations" msgstr "Associations de fichiers GCode" -#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:27 +#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:27 msgid "Gerber File associations" msgstr "Associations de fichiers Gerber" -#: AppObjects/AppObject.py:134 -#, python-brace-format -msgid "" -"Object ({kind}) failed because: {error} \n" -"\n" -msgstr "L'objet ({kind}) a échoué car: {error}\n" - -#: AppObjects/AppObject.py:149 -msgid "Converting units to " -msgstr "Conversion de l'unités en " - -#: AppObjects/AppObject.py:254 -msgid "CREATE A NEW FLATCAM TCL SCRIPT" -msgstr "CRÉER UN NOUVEAU SCRIPT FLATCAM TCL" - -#: AppObjects/AppObject.py:255 -msgid "TCL Tutorial is here" -msgstr "Le didacticiel TCL est ici" - -#: AppObjects/AppObject.py:257 -msgid "FlatCAM commands list" -msgstr "Liste des commandes FlatCAM" - -#: AppObjects/AppObject.py:258 -msgid "" -"Type >help< followed by Run Code for a list of FlatCAM Tcl Commands " -"(displayed in Tcl Shell)." -msgstr "" -"Tapez >help< suivi du Run Code pour lister les commandes FlatCAM Tcl " -"(affichées dans Tcl Shell)." - -#: AppObjects/AppObject.py:304 AppObjects/AppObject.py:310 -#: AppObjects/AppObject.py:316 AppObjects/AppObject.py:322 -#: AppObjects/AppObject.py:328 AppObjects/AppObject.py:334 -msgid "created/selected" -msgstr "créé/sélectionné" - -#: AppObjects/FlatCAMCNCJob.py:429 AppObjects/FlatCAMDocument.py:71 -#: AppObjects/FlatCAMScript.py:82 +#: flatcamObjects/FlatCAMCNCJob.py:429 flatcamObjects/FlatCAMDocument.py:71 +#: flatcamObjects/FlatCAMScript.py:82 msgid "Basic" msgstr "De base" -#: AppObjects/FlatCAMCNCJob.py:435 AppObjects/FlatCAMDocument.py:75 -#: AppObjects/FlatCAMScript.py:86 +#: flatcamObjects/FlatCAMCNCJob.py:435 flatcamObjects/FlatCAMDocument.py:75 +#: flatcamObjects/FlatCAMScript.py:86 msgid "Advanced" msgstr "Avancé" -#: AppObjects/FlatCAMCNCJob.py:478 +#: flatcamObjects/FlatCAMCNCJob.py:478 msgid "Plotting..." msgstr "Traçage..." -#: AppObjects/FlatCAMCNCJob.py:517 AppTools/ToolSolderPaste.py:1511 -msgid "Export cancelled ..." -msgstr "Exportation annulée ..." +#: flatcamObjects/FlatCAMCNCJob.py:507 flatcamObjects/FlatCAMCNCJob.py:512 +#: flatcamTools/ToolSolderPaste.py:1499 +msgid "Export Machine Code ..." +msgstr "Exporter le code machine ..." -#: AppObjects/FlatCAMCNCJob.py:538 -msgid "File saved to" -msgstr "Fichier enregistré dans" +#: flatcamObjects/FlatCAMCNCJob.py:517 flatcamTools/ToolSolderPaste.py:1503 +msgid "Export Machine Code cancelled ..." +msgstr "Exporter le code machine annulé ..." -#: AppObjects/FlatCAMCNCJob.py:548 AppObjects/FlatCAMScript.py:134 -#: App_Main.py:7301 -msgid "Loading..." -msgstr "Chargement..." +#: flatcamObjects/FlatCAMCNCJob.py:538 +msgid "Machine Code file saved to" +msgstr "Fichier de code machine enregistré dans" -#: AppObjects/FlatCAMCNCJob.py:562 App_Main.py:7398 -msgid "Code Editor" -msgstr "Éditeur de code" - -#: AppObjects/FlatCAMCNCJob.py:599 AppTools/ToolCalibration.py:1097 +#: flatcamObjects/FlatCAMCNCJob.py:599 flatcamTools/ToolCalibration.py:1097 msgid "Loaded Machine Code into Code Editor" msgstr "Code machine chargé dans l'éditeur de code" -#: AppObjects/FlatCAMCNCJob.py:740 +#: flatcamObjects/FlatCAMCNCJob.py:740 msgid "This CNCJob object can't be processed because it is a" msgstr "Cet objet CNCJob ne peut pas être traité car il est" -#: AppObjects/FlatCAMCNCJob.py:742 +#: flatcamObjects/FlatCAMCNCJob.py:742 msgid "CNCJob object" msgstr "Objet CNCJob" -#: AppObjects/FlatCAMCNCJob.py:922 +#: flatcamObjects/FlatCAMCNCJob.py:922 msgid "" "G-code does not have a G94 code and we will not include the code in the " "'Prepend to GCode' text box" msgstr "" -"G-code does not have a G94 code and we will not include the code in the " -"'Prepend to GCode' text box" +"Le code G n'a pas de code G94 et nous n'inclurons pas le code dans la zone " +"de texte 'Prepend to GCode'" -#: AppObjects/FlatCAMCNCJob.py:933 +#: flatcamObjects/FlatCAMCNCJob.py:933 msgid "Cancelled. The Toolchange Custom code is enabled but it's empty." msgstr "Annulé. Le code personnalisé Toolchange est activé mais vide." -#: AppObjects/FlatCAMCNCJob.py:938 +#: flatcamObjects/FlatCAMCNCJob.py:938 msgid "Toolchange G-code was replaced by a custom code." msgstr "Toolchange G-code a été remplacé par un code personnalisé." -#: AppObjects/FlatCAMCNCJob.py:986 AppObjects/FlatCAMCNCJob.py:995 +#: flatcamObjects/FlatCAMCNCJob.py:986 flatcamObjects/FlatCAMCNCJob.py:996 msgid "" "The used preprocessor file has to have in it's name: 'toolchange_custom'" msgstr "" "Le fichier de post-traitement utilisé doit avoir pour nom: " "'toolchange_custom'" -#: AppObjects/FlatCAMCNCJob.py:998 +#: flatcamObjects/FlatCAMCNCJob.py:999 msgid "There is no preprocessor file." msgstr "Il n'y a pas de fichier de post-processeur." -#: AppObjects/FlatCAMDocument.py:175 +#: flatcamObjects/FlatCAMDocument.py:175 msgid "Document Editor" msgstr "Éditeur de Document" -#: AppObjects/FlatCAMExcellon.py:537 AppObjects/FlatCAMExcellon.py:856 -#: AppObjects/FlatCAMGeometry.py:380 AppObjects/FlatCAMGeometry.py:861 -#: AppTools/ToolIsolation.py:1051 AppTools/ToolIsolation.py:1185 -#: AppTools/ToolNCC.py:811 AppTools/ToolNCC.py:1214 AppTools/ToolPaint.py:778 -#: AppTools/ToolPaint.py:1190 +#: flatcamObjects/FlatCAMExcellon.py:514 flatcamObjects/FlatCAMExcellon.py:746 +#: flatcamObjects/FlatCAMGeometry.py:323 flatcamObjects/FlatCAMGeometry.py:795 +#: flatcamTools/ToolNCC.py:811 flatcamTools/ToolNCC.py:1196 +#: flatcamTools/ToolPaint.py:779 flatcamTools/ToolPaint.py:1171 msgid "Multiple Tools" msgstr "Outils multiples" -#: AppObjects/FlatCAMExcellon.py:836 +#: flatcamObjects/FlatCAMExcellon.py:726 msgid "No Tool Selected" msgstr "Aucun Outil sélectionné" -#: AppObjects/FlatCAMExcellon.py:1234 AppObjects/FlatCAMExcellon.py:1348 -#: AppObjects/FlatCAMExcellon.py:1535 +#: flatcamObjects/FlatCAMExcellon.py:1076 +#: flatcamObjects/FlatCAMExcellon.py:1168 +#: flatcamObjects/FlatCAMExcellon.py:1355 msgid "Please select one or more tools from the list and try again." msgstr "" "Veuillez sélectionner un ou plusieurs outils dans la liste et réessayer." -#: AppObjects/FlatCAMExcellon.py:1241 +#: flatcamObjects/FlatCAMExcellon.py:1083 msgid "Milling tool for DRILLS is larger than hole size. Cancelled." msgstr "" "L'outil de fraisage pour PERÇAGES est supérieur à la taille du trou. Annulé." -#: AppObjects/FlatCAMExcellon.py:1265 AppObjects/FlatCAMExcellon.py:1368 -#: AppObjects/FlatCAMExcellon.py:1553 tclCommands/TclCommandDrillcncjob.py:195 +#: flatcamObjects/FlatCAMExcellon.py:1098 +#: flatcamObjects/FlatCAMExcellon.py:1188 +#: flatcamObjects/FlatCAMExcellon.py:1373 +#: tclCommands/TclCommandDrillcncjob.py:193 msgid "Tool_nr" msgstr "Numéro d'outil" -#: AppObjects/FlatCAMExcellon.py:1265 AppObjects/FlatCAMExcellon.py:1368 -#: AppObjects/FlatCAMExcellon.py:1553 tclCommands/TclCommandDrillcncjob.py:195 +#: flatcamObjects/FlatCAMExcellon.py:1098 +#: flatcamObjects/FlatCAMExcellon.py:1188 +#: flatcamObjects/FlatCAMExcellon.py:1373 +#: tclCommands/TclCommandDrillcncjob.py:193 msgid "Drills_Nr" msgstr "Forets Nr" -#: AppObjects/FlatCAMExcellon.py:1265 AppObjects/FlatCAMExcellon.py:1368 -#: AppObjects/FlatCAMExcellon.py:1553 tclCommands/TclCommandDrillcncjob.py:195 +#: flatcamObjects/FlatCAMExcellon.py:1098 +#: flatcamObjects/FlatCAMExcellon.py:1188 +#: flatcamObjects/FlatCAMExcellon.py:1373 +#: tclCommands/TclCommandDrillcncjob.py:193 msgid "Slots_Nr" msgstr "Fentes Nr" -#: AppObjects/FlatCAMExcellon.py:1357 +#: flatcamObjects/FlatCAMExcellon.py:1177 msgid "Milling tool for SLOTS is larger than hole size. Cancelled." msgstr "" "L'outil de fraisage pour FENTES est supérieur à la taille du trou. Annulé." -#: AppObjects/FlatCAMExcellon.py:1461 AppObjects/FlatCAMGeometry.py:1636 +#: flatcamObjects/FlatCAMExcellon.py:1281 +#: flatcamObjects/FlatCAMGeometry.py:1571 msgid "Focus Z" msgstr "Focus Z" -#: AppObjects/FlatCAMExcellon.py:1480 AppObjects/FlatCAMGeometry.py:1655 +#: flatcamObjects/FlatCAMExcellon.py:1300 +#: flatcamObjects/FlatCAMGeometry.py:1590 msgid "Laser Power" msgstr "Puissance laser" -#: AppObjects/FlatCAMExcellon.py:1610 AppObjects/FlatCAMGeometry.py:2088 -#: AppObjects/FlatCAMGeometry.py:2092 AppObjects/FlatCAMGeometry.py:2243 +#: flatcamObjects/FlatCAMExcellon.py:1430 +#: flatcamObjects/FlatCAMGeometry.py:2027 +#: flatcamObjects/FlatCAMGeometry.py:2031 +#: flatcamObjects/FlatCAMGeometry.py:2176 msgid "Generating CNC Code" msgstr "Génération de code CNC" -#: AppObjects/FlatCAMExcellon.py:1663 AppObjects/FlatCAMGeometry.py:2553 -msgid "Delete failed. There are no exclusion areas to delete." -msgstr "La suppression a échoué. Il n'y a aucune zone d'exclusion à supprimer." - -#: AppObjects/FlatCAMExcellon.py:1680 AppObjects/FlatCAMGeometry.py:2570 -msgid "Delete failed. Nothing is selected." -msgstr "La suppression a échoué. Rien n'est sélectionné." - -#: AppObjects/FlatCAMExcellon.py:1945 AppTools/ToolIsolation.py:1253 -#: AppTools/ToolNCC.py:918 AppTools/ToolPaint.py:843 +#: flatcamObjects/FlatCAMExcellon.py:1620 flatcamTools/ToolNCC.py:918 +#: flatcamTools/ToolPaint.py:844 msgid "Current Tool parameters were applied to all tools." msgstr "Les paramètres d'outil actuels ont été appliqués à tous les outils." -#: AppObjects/FlatCAMGeometry.py:124 AppObjects/FlatCAMGeometry.py:1298 -#: AppObjects/FlatCAMGeometry.py:1299 AppObjects/FlatCAMGeometry.py:1308 +#: flatcamObjects/FlatCAMGeometry.py:124 flatcamObjects/FlatCAMGeometry.py:1235 +#: flatcamObjects/FlatCAMGeometry.py:1236 +#: flatcamObjects/FlatCAMGeometry.py:1245 msgid "Iso" msgstr "Iso" -#: AppObjects/FlatCAMGeometry.py:124 AppObjects/FlatCAMGeometry.py:522 -#: AppObjects/FlatCAMGeometry.py:920 AppObjects/FlatCAMGerber.py:565 -#: AppObjects/FlatCAMGerber.py:708 AppTools/ToolCutOut.py:727 -#: AppTools/ToolCutOut.py:923 AppTools/ToolCutOut.py:1083 -#: AppTools/ToolIsolation.py:1842 AppTools/ToolIsolation.py:1979 -#: AppTools/ToolIsolation.py:2150 +#: flatcamObjects/FlatCAMGeometry.py:124 flatcamObjects/FlatCAMGeometry.py:464 +#: flatcamObjects/FlatCAMGeometry.py:854 flatcamObjects/FlatCAMGerber.py:891 +#: flatcamObjects/FlatCAMGerber.py:1039 flatcamTools/ToolCutOut.py:690 +#: flatcamTools/ToolCutOut.py:886 flatcamTools/ToolCutOut.py:1046 msgid "Rough" msgstr "Rugueux" -#: AppObjects/FlatCAMGeometry.py:124 +#: flatcamObjects/FlatCAMGeometry.py:124 msgid "Finish" msgstr "Finition" -#: AppObjects/FlatCAMGeometry.py:557 +#: flatcamObjects/FlatCAMGeometry.py:499 msgid "Add from Tool DB" msgstr "Ajouter à partir de la BD d'outils" -#: AppObjects/FlatCAMGeometry.py:939 +#: flatcamObjects/FlatCAMGeometry.py:873 msgid "Tool added in Tool Table." msgstr "Outil ajouté dans la table d'outils." -#: AppObjects/FlatCAMGeometry.py:1048 AppObjects/FlatCAMGeometry.py:1057 +#: flatcamObjects/FlatCAMGeometry.py:982 flatcamObjects/FlatCAMGeometry.py:991 msgid "Failed. Select a tool to copy." msgstr "Échoué. Sélectionnez un outil à copier." -#: AppObjects/FlatCAMGeometry.py:1086 +#: flatcamObjects/FlatCAMGeometry.py:1020 msgid "Tool was copied in Tool Table." msgstr "L'outil a été copié dans la table d'outils." -#: AppObjects/FlatCAMGeometry.py:1113 +#: flatcamObjects/FlatCAMGeometry.py:1047 msgid "Tool was edited in Tool Table." msgstr "L'outil a été édité dans Tool Table." -#: AppObjects/FlatCAMGeometry.py:1142 AppObjects/FlatCAMGeometry.py:1151 +#: flatcamObjects/FlatCAMGeometry.py:1076 +#: flatcamObjects/FlatCAMGeometry.py:1085 msgid "Failed. Select a tool to delete." msgstr "Échoué. Sélectionnez un outil à supprimer." -#: AppObjects/FlatCAMGeometry.py:1175 +#: flatcamObjects/FlatCAMGeometry.py:1109 msgid "Tool was deleted in Tool Table." msgstr "L'outil a été supprimé dans la table d'outils." -#: AppObjects/FlatCAMGeometry.py:1212 AppObjects/FlatCAMGeometry.py:1221 +#: flatcamObjects/FlatCAMGeometry.py:1146 +#: flatcamObjects/FlatCAMGeometry.py:1156 msgid "" "Disabled because the tool is V-shape.\n" "For V-shape tools the depth of cut is\n" @@ -12238,23 +14062,24 @@ msgstr "" "Pour les outils en forme de V, la profondeur de coupe est\n" "calculé à partir d'autres paramètres comme:\n" "- 'Angle V-tip' -> angle à la pointe de l'outil\n" -"- 'V-tip Diam' -> diamètre à la pointe de l'outil\n" -"- Outil Diam -> colonne 'Diam' trouvée dans le tableau d'outils\n" -"NB: une valeur nulle signifie que Outil Diam = 'V-tip Diam'" +"- 'V-tip Dia' -> diamètre à la pointe de l'outil\n" +"- Outil Dia -> colonne 'Dia' trouvée dans le tableau d'outils\n" +"NB: une valeur nulle signifie que Tool Dia = 'V-tip Dia'" -#: AppObjects/FlatCAMGeometry.py:1708 +#: flatcamObjects/FlatCAMGeometry.py:1643 msgid "This Geometry can't be processed because it is" msgstr "Cette géométrie ne peut pas être traitée car elle est" -#: AppObjects/FlatCAMGeometry.py:1708 +#: flatcamObjects/FlatCAMGeometry.py:1643 msgid "geometry" -msgstr "géométrie" +msgstr "geometry" -#: AppObjects/FlatCAMGeometry.py:1749 +#: flatcamObjects/FlatCAMGeometry.py:1684 msgid "Failed. No tool selected in the tool table ..." msgstr "Échoué. Aucun outil sélectionné dans la table d'outils ..." -#: AppObjects/FlatCAMGeometry.py:1847 AppObjects/FlatCAMGeometry.py:1997 +#: flatcamObjects/FlatCAMGeometry.py:1786 +#: flatcamObjects/FlatCAMGeometry.py:1936 msgid "" "Tool Offset is selected in Tool Table but no value is provided.\n" "Add a Tool Offset or change the Offset Type." @@ -12263,45 +14088,51 @@ msgstr "" "n’est fournie.\n" "Ajoutez un décalage d'outil ou changez le type de décalage." -#: AppObjects/FlatCAMGeometry.py:1913 AppObjects/FlatCAMGeometry.py:2059 +#: flatcamObjects/FlatCAMGeometry.py:1852 +#: flatcamObjects/FlatCAMGeometry.py:1998 msgid "G-Code parsing in progress..." -msgstr "Analyse du GCcode en cours ..." +msgstr "Analyse du code G en cours ..." -#: AppObjects/FlatCAMGeometry.py:1915 AppObjects/FlatCAMGeometry.py:2061 +#: flatcamObjects/FlatCAMGeometry.py:1854 +#: flatcamObjects/FlatCAMGeometry.py:2000 msgid "G-Code parsing finished..." -msgstr "L'analyse du GCcode est terminée ..." +msgstr "L'analyse du code G est terminée ..." -#: AppObjects/FlatCAMGeometry.py:1923 +#: flatcamObjects/FlatCAMGeometry.py:1862 msgid "Finished G-Code processing" -msgstr "Traitement du GCode terminé" +msgstr "Traitement du code G terminé" -#: AppObjects/FlatCAMGeometry.py:1925 AppObjects/FlatCAMGeometry.py:2073 +#: flatcamObjects/FlatCAMGeometry.py:1864 +#: flatcamObjects/FlatCAMGeometry.py:2012 msgid "G-Code processing failed with error" -msgstr "Le traitement du GCode a échoué avec une erreur" +msgstr "Le traitement du code G a échoué avec une erreur" -#: AppObjects/FlatCAMGeometry.py:1967 AppTools/ToolSolderPaste.py:1309 +#: flatcamObjects/FlatCAMGeometry.py:1906 flatcamTools/ToolSolderPaste.py:1301 msgid "Cancelled. Empty file, it has no geometry" msgstr "Annulé. Fichier vide, il n'a pas de géométrie" -#: AppObjects/FlatCAMGeometry.py:2071 AppObjects/FlatCAMGeometry.py:2238 +#: flatcamObjects/FlatCAMGeometry.py:2010 +#: flatcamObjects/FlatCAMGeometry.py:2171 msgid "Finished G-Code processing..." -msgstr "Traitement terminé du GCode ..." +msgstr "Traitement terminé du code G ..." -#: AppObjects/FlatCAMGeometry.py:2090 AppObjects/FlatCAMGeometry.py:2094 -#: AppObjects/FlatCAMGeometry.py:2245 +#: flatcamObjects/FlatCAMGeometry.py:2029 +#: flatcamObjects/FlatCAMGeometry.py:2033 +#: flatcamObjects/FlatCAMGeometry.py:2178 msgid "CNCjob created" msgstr "CNCjob créé" -#: AppObjects/FlatCAMGeometry.py:2276 AppObjects/FlatCAMGeometry.py:2285 -#: AppParsers/ParseGerber.py:1866 AppParsers/ParseGerber.py:1876 +#: flatcamObjects/FlatCAMGeometry.py:2209 +#: flatcamObjects/FlatCAMGeometry.py:2218 flatcamParsers/ParseGerber.py:1867 +#: flatcamParsers/ParseGerber.py:1877 msgid "Scale factor has to be a number: integer or float." msgstr "Le facteur d'échelle doit être un nombre: entier ou réel." -#: AppObjects/FlatCAMGeometry.py:2348 +#: flatcamObjects/FlatCAMGeometry.py:2281 msgid "Geometry Scale done." msgstr "Échelle de géométrie terminée." -#: AppObjects/FlatCAMGeometry.py:2365 AppParsers/ParseGerber.py:1992 +#: flatcamObjects/FlatCAMGeometry.py:2298 flatcamParsers/ParseGerber.py:1993 msgid "" "An (x,y) pair of values are needed. Probable you entered only one value in " "the Offset field." @@ -12309,109 +14140,160 @@ msgstr "" "Une paire de valeurs (x, y) est nécessaire. Vous avez probablement entré une " "seule valeur dans le champ Décalage." -#: AppObjects/FlatCAMGeometry.py:2421 +#: flatcamObjects/FlatCAMGeometry.py:2354 msgid "Geometry Offset done." msgstr "Décalage de géométrie effectué." -#: AppObjects/FlatCAMGeometry.py:2450 +#: flatcamObjects/FlatCAMGeometry.py:2383 msgid "" "The Toolchange X,Y field in Edit -> Preferences has to be in the format (x, " "y)\n" "but now there is only one value, not two." msgstr "" -"Le champ Toolchange X, Y dans Edition -> Paramètres doit être au format (x, " +"Le champ Toolchange X, Y dans Edition -> Préférences doit être au format (x, " "y)\n" "mais maintenant il n'y a qu'une seule valeur, pas deux." -#: AppObjects/FlatCAMGerber.py:388 AppTools/ToolIsolation.py:1577 +#: flatcamObjects/FlatCAMGeometry.py:2577 +#: flatcamTools/ToolCopperThieving.py:769 flatcamTools/ToolNCC.py:1648 +msgid "Click the start point of the area." +msgstr "Cliquez sur le point de départ de la zone." + +#: flatcamObjects/FlatCAMGeometry.py:2619 +msgid "Click the end point of the area." +msgstr "Cliquez sur le point final de la zone." + +#: flatcamObjects/FlatCAMGeometry.py:2625 +#: flatcamObjects/FlatCAMGeometry.py:2677 +#: flatcamTools/ToolCopperThieving.py:826 flatcamTools/ToolNCC.py:1710 +#: flatcamTools/ToolNCC.py:1762 flatcamTools/ToolPaint.py:1606 +#: flatcamTools/ToolPaint.py:1657 +msgid "Zone added. Click to start adding next zone or right click to finish." +msgstr "" +"Zone ajoutée. Cliquez pour commencer à ajouter la zone suivante ou faites un " +"clic droit pour terminer." + +#: flatcamObjects/FlatCAMGeometry.py:2729 +msgid "Cancelled. Area exclusion drawing was interrupted." +msgstr "Annulé. Le dessin d'exclusion de zone a été interrompu." + +#: flatcamObjects/FlatCAMGerber.py:494 msgid "Buffering solid geometry" msgstr "Mise en tampon de la géométrie solide" -#: AppObjects/FlatCAMGerber.py:397 AppTools/ToolIsolation.py:1599 +#: flatcamObjects/FlatCAMGerber.py:503 msgid "Done" msgstr "Terminé" -#: AppObjects/FlatCAMGerber.py:423 AppObjects/FlatCAMGerber.py:449 +#: flatcamObjects/FlatCAMGerber.py:529 flatcamObjects/FlatCAMGerber.py:555 msgid "Operation could not be done." msgstr "L'opération n'a pas pu être effectuée." -#: AppObjects/FlatCAMGerber.py:581 AppObjects/FlatCAMGerber.py:655 -#: AppTools/ToolIsolation.py:1805 AppTools/ToolIsolation.py:2126 -#: AppTools/ToolNCC.py:2117 AppTools/ToolNCC.py:3197 AppTools/ToolNCC.py:3576 +#: flatcamObjects/FlatCAMGerber.py:572 +msgid "Isolating..." +msgstr "Isoler ..." + +#: flatcamObjects/FlatCAMGerber.py:631 +msgid "Click on a polygon to isolate it." +msgstr "Cliquez sur un polygone pour l'isoler." + +#: flatcamObjects/FlatCAMGerber.py:670 flatcamObjects/FlatCAMGerber.py:774 +#: flatcamTools/ToolPaint.py:1516 +msgid "Added polygon" +msgstr "Polygone ajouté" + +#: flatcamObjects/FlatCAMGerber.py:671 flatcamObjects/FlatCAMGerber.py:776 +msgid "Click to add next polygon or right click to start isolation." +msgstr "" +"Cliquez pour ajouter le polygone suivant ou cliquez avec le bouton droit " +"pour démarrer l'isolement." + +#: flatcamObjects/FlatCAMGerber.py:683 flatcamTools/ToolPaint.py:1530 +msgid "Removed polygon" +msgstr "Polygone supprimé" + +#: flatcamObjects/FlatCAMGerber.py:684 +msgid "Click to add/remove next polygon or right click to start isolation." +msgstr "" +"Cliquez pour ajouter / supprimer le polygone suivant ou cliquez avec le " +"bouton droit pour démarrer l'isolement." + +#: flatcamObjects/FlatCAMGerber.py:689 flatcamTools/ToolPaint.py:1536 +msgid "No polygon detected under click position." +msgstr "Aucun polygone détecté sous la position du clic." + +#: flatcamObjects/FlatCAMGerber.py:710 flatcamTools/ToolPaint.py:1565 +msgid "List of single polygons is empty. Aborting." +msgstr "La liste des polygones simples est vide. Abandon." + +#: flatcamObjects/FlatCAMGerber.py:779 +msgid "No polygon in selection." +msgstr "Aucun polygone dans la sélection." + +#: flatcamObjects/FlatCAMGerber.py:907 flatcamObjects/FlatCAMGerber.py:986 +#: flatcamTools/ToolNCC.py:2086 flatcamTools/ToolNCC.py:3137 +#: flatcamTools/ToolNCC.py:3516 msgid "Isolation geometry could not be generated." msgstr "La géométrie d'isolation n'a pas pu être générée." -#: AppObjects/FlatCAMGerber.py:606 AppObjects/FlatCAMGerber.py:733 -#: AppTools/ToolIsolation.py:1869 AppTools/ToolIsolation.py:2035 -#: AppTools/ToolIsolation.py:2202 +#: flatcamObjects/FlatCAMGerber.py:932 flatcamObjects/FlatCAMGerber.py:1064 msgid "Isolation geometry created" msgstr "Géométrie d'isolement créée" -#: AppObjects/FlatCAMGerber.py:1028 +#: flatcamObjects/FlatCAMGerber.py:941 flatcamObjects/FlatCAMGerber.py:1071 +msgid "Subtracting Geo" +msgstr "Soustraction Geo" + +#: flatcamObjects/FlatCAMGerber.py:1396 msgid "Plotting Apertures" msgstr "Traçage des ouvertures" -#: AppObjects/FlatCAMObj.py:237 +#: flatcamObjects/FlatCAMObj.py:234 msgid "Name changed from" msgstr "Nom changé de" -#: AppObjects/FlatCAMObj.py:237 +#: flatcamObjects/FlatCAMObj.py:234 msgid "to" msgstr "à" -#: AppObjects/FlatCAMObj.py:248 +#: flatcamObjects/FlatCAMObj.py:245 msgid "Offsetting..." msgstr "Compenser ..." -#: AppObjects/FlatCAMObj.py:262 AppObjects/FlatCAMObj.py:267 +#: flatcamObjects/FlatCAMObj.py:259 flatcamObjects/FlatCAMObj.py:264 msgid "Scaling could not be executed." msgstr "La mise à l'échelle n'a pas pu être exécutée." -#: AppObjects/FlatCAMObj.py:271 AppObjects/FlatCAMObj.py:279 +#: flatcamObjects/FlatCAMObj.py:268 flatcamObjects/FlatCAMObj.py:276 msgid "Scale done." msgstr "Échelle terminée." -#: AppObjects/FlatCAMObj.py:277 +#: flatcamObjects/FlatCAMObj.py:274 msgid "Scaling..." msgstr "Mise à l'échelle..." -#: AppObjects/FlatCAMObj.py:295 +#: flatcamObjects/FlatCAMObj.py:292 msgid "Skewing..." -msgstr "Inclinaison..." +msgstr "Fausser..." -#: AppObjects/FlatCAMScript.py:163 +#: flatcamObjects/FlatCAMScript.py:163 msgid "Script Editor" msgstr "Éditeur de script" -#: AppObjects/ObjectCollection.py:514 +#: flatcamObjects/ObjectCollection.py:510 #, python-brace-format msgid "Object renamed from {old} to {new}" msgstr "Objet renommé de {old} à {new}" -#: AppObjects/ObjectCollection.py:926 AppObjects/ObjectCollection.py:932 -#: AppObjects/ObjectCollection.py:938 AppObjects/ObjectCollection.py:944 -#: AppObjects/ObjectCollection.py:950 AppObjects/ObjectCollection.py:956 -#: App_Main.py:6235 App_Main.py:6241 App_Main.py:6247 App_Main.py:6253 -msgid "selected" -msgstr "choisir" - -#: AppObjects/ObjectCollection.py:987 +#: flatcamObjects/ObjectCollection.py:983 msgid "Cause of error" msgstr "Cause d'erreur" -#: AppObjects/ObjectCollection.py:1188 -msgid "All objects are selected." -msgstr "Tous les objets sont sélectionnés." - -#: AppObjects/ObjectCollection.py:1198 -msgid "Objects selection is cleared." -msgstr "La sélection des objets est effacée." - -#: AppParsers/ParseExcellon.py:315 +#: flatcamParsers/ParseExcellon.py:316 msgid "This is GCODE mark" msgstr "C'est la marque GCODE" -#: AppParsers/ParseExcellon.py:432 +#: flatcamParsers/ParseExcellon.py:433 msgid "" "No tool diameter info's. See shell.\n" "A tool change event: T" @@ -12419,7 +14301,7 @@ msgstr "" "Aucune information sur le diamètre de l'outil. Voir shell.\n" "Un événement de changement d'outil: T" -#: AppParsers/ParseExcellon.py:435 +#: flatcamParsers/ParseExcellon.py:436 msgid "" "was found but the Excellon file have no informations regarding the tool " "diameters therefore the application will try to load it by using some 'fake' " @@ -12433,7 +14315,7 @@ msgstr "" "L'utilisateur doit modifier l'objet Excellon résultant et modifier les " "diamètres pour refléter les diamètres réels." -#: AppParsers/ParseExcellon.py:899 +#: flatcamParsers/ParseExcellon.py:900 msgid "" "Excellon Parser error.\n" "Parsing Failed. Line" @@ -12441,40 +14323,40 @@ msgstr "" "Erreur de l'analyseur Excellon.\n" "Échec de l'analyse. Ligne" -#: AppParsers/ParseExcellon.py:981 +#: flatcamParsers/ParseExcellon.py:982 msgid "" "Excellon.create_geometry() -> a drill location was skipped due of not having " "a tool associated.\n" "Check the resulting GCode." msgstr "" -"Excellon.create_géométrie () -> un emplacement d’exploration a été ignoré " -"car aucun outil n’était associé.\n" +"Excellon.create_geometry () -> un emplacement d’exploration a été ignoré car " +"aucun outil n’était associé.\n" "Vérifiez le GCode résultant." -#: AppParsers/ParseFont.py:303 +#: flatcamParsers/ParseFont.py:303 msgid "Font not supported, try another one." msgstr "Police non supportée, essayez-en une autre." -#: AppParsers/ParseGerber.py:425 +#: flatcamParsers/ParseGerber.py:426 msgid "Gerber processing. Parsing" msgstr "Traitement Gerber. L'analyse" -#: AppParsers/ParseGerber.py:425 AppParsers/ParseHPGL2.py:181 +#: flatcamParsers/ParseGerber.py:426 flatcamParsers/ParseHPGL2.py:182 msgid "lines" msgstr "lignes" -#: AppParsers/ParseGerber.py:1001 AppParsers/ParseGerber.py:1101 -#: AppParsers/ParseHPGL2.py:274 AppParsers/ParseHPGL2.py:288 -#: AppParsers/ParseHPGL2.py:307 AppParsers/ParseHPGL2.py:331 -#: AppParsers/ParseHPGL2.py:366 +#: flatcamParsers/ParseGerber.py:1002 flatcamParsers/ParseGerber.py:1102 +#: flatcamParsers/ParseHPGL2.py:275 flatcamParsers/ParseHPGL2.py:289 +#: flatcamParsers/ParseHPGL2.py:308 flatcamParsers/ParseHPGL2.py:332 +#: flatcamParsers/ParseHPGL2.py:367 msgid "Coordinates missing, line ignored" msgstr "Coordonnées manquantes, ligne ignorée" -#: AppParsers/ParseGerber.py:1003 AppParsers/ParseGerber.py:1103 +#: flatcamParsers/ParseGerber.py:1004 flatcamParsers/ParseGerber.py:1104 msgid "GERBER file might be CORRUPT. Check the file !!!" msgstr "Le fichier GERBER est peut-être corrompu. Vérifiez le fichier !!!" -#: AppParsers/ParseGerber.py:1057 +#: flatcamParsers/ParseGerber.py:1058 msgid "" "Region does not have enough points. File will be processed but there are " "parser errors. Line number" @@ -12482,79 +14364,75 @@ msgstr "" "La région n'a pas assez de points. Le fichier sera traité, mais il y a des " "erreurs d'analyse. Numéro de ligne" -#: AppParsers/ParseGerber.py:1487 AppParsers/ParseHPGL2.py:401 +#: flatcamParsers/ParseGerber.py:1488 flatcamParsers/ParseHPGL2.py:402 msgid "Gerber processing. Joining polygons" msgstr "Traitement Gerber. Jointure de polygones" -#: AppParsers/ParseGerber.py:1504 +#: flatcamParsers/ParseGerber.py:1505 msgid "Gerber processing. Applying Gerber polarity." msgstr "Traitement Gerber. Appliquer la polarité de Gerber." -#: AppParsers/ParseGerber.py:1564 +#: flatcamParsers/ParseGerber.py:1565 msgid "Gerber Line" msgstr "Ligne Gerber" -#: AppParsers/ParseGerber.py:1564 +#: flatcamParsers/ParseGerber.py:1565 msgid "Gerber Line Content" msgstr "Contenu de la ligne Gerber" -#: AppParsers/ParseGerber.py:1566 +#: flatcamParsers/ParseGerber.py:1567 msgid "Gerber Parser ERROR" msgstr "Gerber Parser ERREUR" -#: AppParsers/ParseGerber.py:1956 +#: flatcamParsers/ParseGerber.py:1957 msgid "Gerber Scale done." msgstr "Échelle de Gerber fait." -#: AppParsers/ParseGerber.py:2048 +#: flatcamParsers/ParseGerber.py:2049 msgid "Gerber Offset done." msgstr "Gerber offset fait." -#: AppParsers/ParseGerber.py:2124 +#: flatcamParsers/ParseGerber.py:2125 msgid "Gerber Mirror done." msgstr "Le miroir de Gerber est fait." -#: AppParsers/ParseGerber.py:2198 +#: flatcamParsers/ParseGerber.py:2199 msgid "Gerber Skew done." msgstr "Gerber incline fait." -#: AppParsers/ParseGerber.py:2260 +#: flatcamParsers/ParseGerber.py:2261 msgid "Gerber Rotate done." msgstr "La rotation de Gerber est fait." -#: AppParsers/ParseGerber.py:2417 +#: flatcamParsers/ParseGerber.py:2418 msgid "Gerber Buffer done." msgstr "Gerber Buffer fait." -#: AppParsers/ParseHPGL2.py:181 +#: flatcamParsers/ParseHPGL2.py:182 msgid "HPGL2 processing. Parsing" msgstr "Traitement HPGL2. Analyse" -#: AppParsers/ParseHPGL2.py:413 +#: flatcamParsers/ParseHPGL2.py:414 msgid "HPGL2 Line" msgstr "Ligne HPGL2" -#: AppParsers/ParseHPGL2.py:413 +#: flatcamParsers/ParseHPGL2.py:414 msgid "HPGL2 Line Content" msgstr "Contenu de la ligne HPGL2" -#: AppParsers/ParseHPGL2.py:414 +#: flatcamParsers/ParseHPGL2.py:415 msgid "HPGL2 Parser ERROR" msgstr "ERREUR de l'analyseur HPGL2" -#: AppProcess.py:172 -msgid "processes running." -msgstr "processus en cours d'exécution." - -#: AppTools/ToolAlignObjects.py:32 +#: flatcamTools/ToolAlignObjects.py:32 msgid "Align Objects" msgstr "Aligner les objets" -#: AppTools/ToolAlignObjects.py:61 +#: flatcamTools/ToolAlignObjects.py:61 msgid "MOVING object" msgstr "Objet en mouvement" -#: AppTools/ToolAlignObjects.py:65 +#: flatcamTools/ToolAlignObjects.py:65 msgid "" "Specify the type of object to be aligned.\n" "It can be of type: Gerber or Excellon.\n" @@ -12566,15 +14444,15 @@ msgstr "" "La sélection ici décide du type d'objets qui seront\n" "dans la zone de liste déroulante Objet." -#: AppTools/ToolAlignObjects.py:86 +#: flatcamTools/ToolAlignObjects.py:86 msgid "Object to be aligned." msgstr "Objet à aligner." -#: AppTools/ToolAlignObjects.py:98 +#: flatcamTools/ToolAlignObjects.py:98 msgid "TARGET object" msgstr "Objet CIBLE" -#: AppTools/ToolAlignObjects.py:100 +#: flatcamTools/ToolAlignObjects.py:100 msgid "" "Specify the type of object to be aligned to.\n" "It can be of type: Gerber or Excellon.\n" @@ -12586,15 +14464,15 @@ msgstr "" "La sélection ici décide du type d'objets qui seront\n" "dans la zone de liste déroulante Objet." -#: AppTools/ToolAlignObjects.py:122 +#: flatcamTools/ToolAlignObjects.py:122 msgid "Object to be aligned to. Aligner." msgstr "Objet à aligner. Aligner." -#: AppTools/ToolAlignObjects.py:135 +#: flatcamTools/ToolAlignObjects.py:135 msgid "Alignment Type" msgstr "Type d'alignement" -#: AppTools/ToolAlignObjects.py:137 +#: flatcamTools/ToolAlignObjects.py:137 msgid "" "The type of alignment can be:\n" "- Single Point -> it require a single point of sync, the action will be a " @@ -12608,19 +14486,19 @@ msgstr "" "- Double point -> il nécessite deux points de synchronisation, l'action sera " "la traduction suivie d'une rotation" -#: AppTools/ToolAlignObjects.py:143 +#: flatcamTools/ToolAlignObjects.py:143 msgid "Single Point" msgstr "Point unique" -#: AppTools/ToolAlignObjects.py:144 +#: flatcamTools/ToolAlignObjects.py:144 msgid "Dual Point" msgstr "Double point" -#: AppTools/ToolAlignObjects.py:159 +#: flatcamTools/ToolAlignObjects.py:159 msgid "Align Object" msgstr "Aligner l'objet" -#: AppTools/ToolAlignObjects.py:161 +#: flatcamTools/ToolAlignObjects.py:161 msgid "" "Align the specified object to the aligner object.\n" "If only one point is used then it assumes translation.\n" @@ -12630,91 +14508,87 @@ msgstr "" "Si un seul point est utilisé, il suppose la traduction.\n" "Si ces points sont utilisés, cela suppose une translation et une rotation." -#: AppTools/ToolAlignObjects.py:176 AppTools/ToolCalculators.py:246 -#: AppTools/ToolCalibration.py:683 AppTools/ToolCopperThieving.py:488 -#: AppTools/ToolCorners.py:182 AppTools/ToolCutOut.py:362 -#: AppTools/ToolDblSided.py:471 AppTools/ToolEtchCompensation.py:240 -#: AppTools/ToolExtractDrills.py:310 AppTools/ToolFiducials.py:321 -#: AppTools/ToolFilm.py:503 AppTools/ToolInvertGerber.py:143 -#: AppTools/ToolIsolation.py:591 AppTools/ToolNCC.py:612 -#: AppTools/ToolOptimal.py:243 AppTools/ToolPaint.py:555 -#: AppTools/ToolPanelize.py:280 AppTools/ToolPunchGerber.py:339 -#: AppTools/ToolQRCode.py:323 AppTools/ToolRulesCheck.py:516 -#: AppTools/ToolSolderPaste.py:481 AppTools/ToolSub.py:181 -#: AppTools/ToolTransform.py:398 +#: flatcamTools/ToolAlignObjects.py:176 flatcamTools/ToolCalculators.py:246 +#: flatcamTools/ToolCalibration.py:683 flatcamTools/ToolCopperThieving.py:484 +#: flatcamTools/ToolCutOut.py:362 flatcamTools/ToolDblSided.py:471 +#: flatcamTools/ToolExtractDrills.py:310 flatcamTools/ToolFiducials.py:318 +#: flatcamTools/ToolFilm.py:520 flatcamTools/ToolInvertGerber.py:140 +#: flatcamTools/ToolNCC.py:612 flatcamTools/ToolOptimal.py:237 +#: flatcamTools/ToolPaint.py:556 flatcamTools/ToolPanelize.py:269 +#: flatcamTools/ToolPunchGerber.py:339 flatcamTools/ToolQRCode.py:314 +#: flatcamTools/ToolRulesCheck.py:516 flatcamTools/ToolSolderPaste.py:473 +#: flatcamTools/ToolSub.py:176 flatcamTools/ToolTransform.py:398 msgid "Reset Tool" msgstr "Réinitialiser l'outil" -#: AppTools/ToolAlignObjects.py:178 AppTools/ToolCalculators.py:248 -#: AppTools/ToolCalibration.py:685 AppTools/ToolCopperThieving.py:490 -#: AppTools/ToolCorners.py:184 AppTools/ToolCutOut.py:364 -#: AppTools/ToolDblSided.py:473 AppTools/ToolEtchCompensation.py:242 -#: AppTools/ToolExtractDrills.py:312 AppTools/ToolFiducials.py:323 -#: AppTools/ToolFilm.py:505 AppTools/ToolInvertGerber.py:145 -#: AppTools/ToolIsolation.py:593 AppTools/ToolNCC.py:614 -#: AppTools/ToolOptimal.py:245 AppTools/ToolPaint.py:557 -#: AppTools/ToolPanelize.py:282 AppTools/ToolPunchGerber.py:341 -#: AppTools/ToolQRCode.py:325 AppTools/ToolRulesCheck.py:518 -#: AppTools/ToolSolderPaste.py:483 AppTools/ToolSub.py:183 -#: AppTools/ToolTransform.py:400 +#: flatcamTools/ToolAlignObjects.py:178 flatcamTools/ToolCalculators.py:248 +#: flatcamTools/ToolCalibration.py:685 flatcamTools/ToolCopperThieving.py:486 +#: flatcamTools/ToolCutOut.py:364 flatcamTools/ToolDblSided.py:473 +#: flatcamTools/ToolExtractDrills.py:312 flatcamTools/ToolFiducials.py:320 +#: flatcamTools/ToolFilm.py:522 flatcamTools/ToolInvertGerber.py:142 +#: flatcamTools/ToolNCC.py:614 flatcamTools/ToolOptimal.py:239 +#: flatcamTools/ToolPaint.py:558 flatcamTools/ToolPanelize.py:271 +#: flatcamTools/ToolPunchGerber.py:341 flatcamTools/ToolQRCode.py:316 +#: flatcamTools/ToolRulesCheck.py:518 flatcamTools/ToolSolderPaste.py:475 +#: flatcamTools/ToolSub.py:178 flatcamTools/ToolTransform.py:400 msgid "Will reset the tool parameters." msgstr "Réinitialise les paramètres de l'outil." -#: AppTools/ToolAlignObjects.py:244 +#: flatcamTools/ToolAlignObjects.py:244 msgid "Align Tool" msgstr "Outil d'alignement" -#: AppTools/ToolAlignObjects.py:289 +#: flatcamTools/ToolAlignObjects.py:289 msgid "There is no aligned FlatCAM object selected..." msgstr "Aucun objet FlatCAM aligné n'est sélectionné ..." -#: AppTools/ToolAlignObjects.py:299 +#: flatcamTools/ToolAlignObjects.py:299 msgid "There is no aligner FlatCAM object selected..." msgstr "Aucun objet d'alignement FlatCAM n'est sélectionné ..." -#: AppTools/ToolAlignObjects.py:321 AppTools/ToolAlignObjects.py:385 +#: flatcamTools/ToolAlignObjects.py:325 flatcamTools/ToolAlignObjects.py:385 msgid "First Point" msgstr "Premier point" -#: AppTools/ToolAlignObjects.py:321 AppTools/ToolAlignObjects.py:400 +#: flatcamTools/ToolAlignObjects.py:325 flatcamTools/ToolAlignObjects.py:400 msgid "Click on the START point." msgstr "Cliquez sur le point de Départ." -#: AppTools/ToolAlignObjects.py:380 AppTools/ToolCalibration.py:920 +#: flatcamTools/ToolAlignObjects.py:380 flatcamTools/ToolCalibration.py:920 msgid "Cancelled by user request." msgstr "Annulé par demande de l'utilisateur." -#: AppTools/ToolAlignObjects.py:385 AppTools/ToolAlignObjects.py:407 +#: flatcamTools/ToolAlignObjects.py:385 flatcamTools/ToolAlignObjects.py:407 msgid "Click on the DESTINATION point." msgstr "Cliquez sur le point de Destination." -#: AppTools/ToolAlignObjects.py:385 AppTools/ToolAlignObjects.py:400 -#: AppTools/ToolAlignObjects.py:407 +#: flatcamTools/ToolAlignObjects.py:385 flatcamTools/ToolAlignObjects.py:400 +#: flatcamTools/ToolAlignObjects.py:407 msgid "Or right click to cancel." msgstr "Ou cliquez avec le bouton droit pour annuler." -#: AppTools/ToolAlignObjects.py:400 AppTools/ToolAlignObjects.py:407 -#: AppTools/ToolFiducials.py:107 +#: flatcamTools/ToolAlignObjects.py:400 flatcamTools/ToolAlignObjects.py:407 +#: flatcamTools/ToolFiducials.py:111 msgid "Second Point" msgstr "Deuxième point" -#: AppTools/ToolCalculators.py:24 +#: flatcamTools/ToolCalculators.py:24 msgid "Calculators" msgstr "Calculatrices" -#: AppTools/ToolCalculators.py:26 +#: flatcamTools/ToolCalculators.py:26 msgid "Units Calculator" msgstr "Calculateur d'unités" -#: AppTools/ToolCalculators.py:70 +#: flatcamTools/ToolCalculators.py:70 msgid "Here you enter the value to be converted from INCH to MM" msgstr "Ici, vous entrez la valeur à convertir de Pouce en MM" -#: AppTools/ToolCalculators.py:75 +#: flatcamTools/ToolCalculators.py:75 msgid "Here you enter the value to be converted from MM to INCH" msgstr "Ici, vous entrez la valeur à convertir de MM en Pouces" -#: AppTools/ToolCalculators.py:111 +#: flatcamTools/ToolCalculators.py:111 msgid "" "This is the angle of the tip of the tool.\n" "It is specified by manufacturer." @@ -12722,7 +14596,7 @@ msgstr "" "C'est l'angle de la pointe de l'outil.\n" "Il est spécifié par le fabricant." -#: AppTools/ToolCalculators.py:120 +#: flatcamTools/ToolCalculators.py:120 msgid "" "This is the depth to cut into the material.\n" "In the CNCJob is the CutZ parameter." @@ -12730,7 +14604,7 @@ msgstr "" "C'est la profondeur à couper dans le matériau.\n" "Dans le CNCJob est le paramètre CutZ." -#: AppTools/ToolCalculators.py:128 +#: flatcamTools/ToolCalculators.py:128 msgid "" "This is the tool diameter to be entered into\n" "FlatCAM Gerber section.\n" @@ -12740,11 +14614,11 @@ msgstr "" "Section FlatCAM Gerber.\n" "Dans la section CNCJob, cela s'appelle >Tool dia<." -#: AppTools/ToolCalculators.py:139 AppTools/ToolCalculators.py:235 +#: flatcamTools/ToolCalculators.py:139 flatcamTools/ToolCalculators.py:235 msgid "Calculate" msgstr "Calculer" -#: AppTools/ToolCalculators.py:142 +#: flatcamTools/ToolCalculators.py:142 msgid "" "Calculate either the Cut Z or the effective tool diameter,\n" " depending on which is desired and which is known. " @@ -12752,11 +14626,11 @@ msgstr "" "Calculez la coupe Z ou le diamètre d'outil effectif,\n" "selon ce qui est souhaité et ce qui est connu. " -#: AppTools/ToolCalculators.py:205 +#: flatcamTools/ToolCalculators.py:205 msgid "Current Value" msgstr "Valeur du courant" -#: AppTools/ToolCalculators.py:212 +#: flatcamTools/ToolCalculators.py:212 msgid "" "This is the current intensity value\n" "to be set on the Power Supply. In Amps." @@ -12764,11 +14638,11 @@ msgstr "" "C'est la valeur d'intensité actuelle\n" "à régler sur l’alimentation. En ampères." -#: AppTools/ToolCalculators.py:216 +#: flatcamTools/ToolCalculators.py:216 msgid "Time" msgstr "Temps" -#: AppTools/ToolCalculators.py:223 +#: flatcamTools/ToolCalculators.py:223 msgid "" "This is the calculated time required for the procedure.\n" "In minutes." @@ -12776,7 +14650,7 @@ msgstr "" "C'est le temps calculé requis pour la procédure.\n" "En quelques minutes." -#: AppTools/ToolCalculators.py:238 +#: flatcamTools/ToolCalculators.py:238 msgid "" "Calculate the current intensity value and the procedure time,\n" "depending on the parameters above" @@ -12784,19 +14658,23 @@ msgstr "" "Calculer la valeur d'intensité actuelle et le temps de procédure,\n" "en fonction des paramètres ci-dessus" -#: AppTools/ToolCalculators.py:299 +#: flatcamTools/ToolCalculators.py:299 msgid "Calc. Tool" msgstr "Calc. Outil" -#: AppTools/ToolCalibration.py:69 +#: flatcamTools/ToolCalibration.py:67 +msgid "GCode Parameters" +msgstr "Paramètres GCode" + +#: flatcamTools/ToolCalibration.py:69 msgid "Parameters used when creating the GCode in this tool." msgstr "Paramètres utilisés lors de la création du GCode dans cet outil." -#: AppTools/ToolCalibration.py:173 +#: flatcamTools/ToolCalibration.py:173 msgid "STEP 1: Acquire Calibration Points" msgstr "ÉTAPE 1: Acquérir des points d'étalonnage" -#: AppTools/ToolCalibration.py:175 +#: flatcamTools/ToolCalibration.py:175 msgid "" "Pick four points by clicking on canvas.\n" "Those four points should be in the four\n" @@ -12806,25 +14684,25 @@ msgstr "" "Ces quatre points devraient figurer dans les quatre\n" "(autant que possible) coins de l'objet." -#: AppTools/ToolCalibration.py:193 AppTools/ToolFilm.py:71 -#: AppTools/ToolImage.py:54 AppTools/ToolPanelize.py:77 -#: AppTools/ToolProperties.py:177 +#: flatcamTools/ToolCalibration.py:193 flatcamTools/ToolFilm.py:76 +#: flatcamTools/ToolImage.py:54 flatcamTools/ToolPanelize.py:78 +#: flatcamTools/ToolProperties.py:177 msgid "Object Type" msgstr "Type d'objet" -#: AppTools/ToolCalibration.py:210 +#: flatcamTools/ToolCalibration.py:210 msgid "Source object selection" msgstr "Sélection d'objet source" -#: AppTools/ToolCalibration.py:212 +#: flatcamTools/ToolCalibration.py:212 msgid "FlatCAM Object to be used as a source for reference points." msgstr "Objet FlatCAM à utiliser comme source pour les points de référence." -#: AppTools/ToolCalibration.py:218 +#: flatcamTools/ToolCalibration.py:218 msgid "Calibration Points" msgstr "Points d'étalonnage" -#: AppTools/ToolCalibration.py:220 +#: flatcamTools/ToolCalibration.py:220 msgid "" "Contain the expected calibration points and the\n" "ones measured." @@ -12832,52 +14710,52 @@ msgstr "" "Contiennent les points d'étalonnage attendus et le\n" "ceux mesurés." -#: AppTools/ToolCalibration.py:235 AppTools/ToolSub.py:81 -#: AppTools/ToolSub.py:136 +#: flatcamTools/ToolCalibration.py:235 flatcamTools/ToolSub.py:76 +#: flatcamTools/ToolSub.py:131 msgid "Target" msgstr "Cible" -#: AppTools/ToolCalibration.py:236 +#: flatcamTools/ToolCalibration.py:236 msgid "Found Delta" msgstr "Delta trouvé" -#: AppTools/ToolCalibration.py:248 +#: flatcamTools/ToolCalibration.py:248 msgid "Bot Left X" msgstr "En bas à gauche X" -#: AppTools/ToolCalibration.py:257 +#: flatcamTools/ToolCalibration.py:257 msgid "Bot Left Y" msgstr "En bas à gauche Y" -#: AppTools/ToolCalibration.py:275 +#: flatcamTools/ToolCalibration.py:275 msgid "Bot Right X" msgstr "En bas à droite X" -#: AppTools/ToolCalibration.py:285 +#: flatcamTools/ToolCalibration.py:285 msgid "Bot Right Y" msgstr "En bas à droite Y" -#: AppTools/ToolCalibration.py:300 +#: flatcamTools/ToolCalibration.py:300 msgid "Top Left X" msgstr "En haut à gauche X" -#: AppTools/ToolCalibration.py:309 +#: flatcamTools/ToolCalibration.py:309 msgid "Top Left Y" msgstr "En haut à gauche Y" -#: AppTools/ToolCalibration.py:324 +#: flatcamTools/ToolCalibration.py:324 msgid "Top Right X" msgstr "En haut à droite X" -#: AppTools/ToolCalibration.py:334 +#: flatcamTools/ToolCalibration.py:334 msgid "Top Right Y" msgstr "En haut à droite Y" -#: AppTools/ToolCalibration.py:367 +#: flatcamTools/ToolCalibration.py:367 msgid "Get Points" msgstr "Obtenir des points" -#: AppTools/ToolCalibration.py:369 +#: flatcamTools/ToolCalibration.py:369 msgid "" "Pick four points by clicking on canvas if the source choice\n" "is 'free' or inside the object geometry if the source is 'object'.\n" @@ -12891,11 +14769,11 @@ msgstr "" "Ces quatre points devraient être dans les quatre carrés de\n" "L'object." -#: AppTools/ToolCalibration.py:390 +#: flatcamTools/ToolCalibration.py:390 msgid "STEP 2: Verification GCode" msgstr "ÉTAPE 2: Vérification GCode" -#: AppTools/ToolCalibration.py:392 AppTools/ToolCalibration.py:405 +#: flatcamTools/ToolCalibration.py:392 flatcamTools/ToolCalibration.py:405 msgid "" "Generate GCode file to locate and align the PCB by using\n" "the four points acquired above.\n" @@ -12915,15 +14793,15 @@ msgstr "" "bas à droite.\n" "- quatrième point -> point de vérification final. Juste pour évaluation." -#: AppTools/ToolCalibration.py:403 AppTools/ToolSolderPaste.py:344 +#: flatcamTools/ToolCalibration.py:403 flatcamTools/ToolSolderPaste.py:348 msgid "Generate GCode" msgstr "Générer du GCode" -#: AppTools/ToolCalibration.py:429 +#: flatcamTools/ToolCalibration.py:429 msgid "STEP 3: Adjustments" msgstr "ÉTAPE 3: Ajustements" -#: AppTools/ToolCalibration.py:431 AppTools/ToolCalibration.py:440 +#: flatcamTools/ToolCalibration.py:431 flatcamTools/ToolCalibration.py:440 msgid "" "Calculate Scale and Skew factors based on the differences (delta)\n" "found when checking the PCB pattern. The differences must be filled\n" @@ -12935,15 +14813,15 @@ msgstr "" "être comblées\n" "dans les champs Trouvé (Delta)." -#: AppTools/ToolCalibration.py:438 +#: flatcamTools/ToolCalibration.py:438 msgid "Calculate Factors" msgstr "Calculer les facteurs" -#: AppTools/ToolCalibration.py:460 +#: flatcamTools/ToolCalibration.py:460 msgid "STEP 4: Adjusted GCode" msgstr "ÉTAPE 4: GCode ajusté" -#: AppTools/ToolCalibration.py:462 +#: flatcamTools/ToolCalibration.py:462 msgid "" "Generate verification GCode file adjusted with\n" "the factors above." @@ -12951,43 +14829,43 @@ msgstr "" "Générer un fichier GCode de vérification ajusté avec\n" "les facteurs ci-dessus." -#: AppTools/ToolCalibration.py:467 +#: flatcamTools/ToolCalibration.py:467 msgid "Scale Factor X:" msgstr "Facteur d'échelle X:" -#: AppTools/ToolCalibration.py:479 +#: flatcamTools/ToolCalibration.py:479 msgid "Scale Factor Y:" msgstr "Facteur d'échelle Y:" -#: AppTools/ToolCalibration.py:491 +#: flatcamTools/ToolCalibration.py:491 msgid "Apply Scale Factors" msgstr "Appliquer des facteurs d'échelle" -#: AppTools/ToolCalibration.py:493 +#: flatcamTools/ToolCalibration.py:493 msgid "Apply Scale factors on the calibration points." msgstr "Appliquez des facteurs d'échelle aux points d'étalonnage." -#: AppTools/ToolCalibration.py:503 +#: flatcamTools/ToolCalibration.py:503 msgid "Skew Angle X:" msgstr "Angle d'inclinaison X:" -#: AppTools/ToolCalibration.py:516 +#: flatcamTools/ToolCalibration.py:516 msgid "Skew Angle Y:" msgstr "Angle d'inclinaison Y:" -#: AppTools/ToolCalibration.py:529 +#: flatcamTools/ToolCalibration.py:529 msgid "Apply Skew Factors" msgstr "Appliquer les facteurs d'inclinaison" -#: AppTools/ToolCalibration.py:531 +#: flatcamTools/ToolCalibration.py:531 msgid "Apply Skew factors on the calibration points." msgstr "Appliquer des facteurs d'inclinaison sur les points d'étalonnage." -#: AppTools/ToolCalibration.py:600 +#: flatcamTools/ToolCalibration.py:600 msgid "Generate Adjusted GCode" msgstr "Générer un GCode ajusté" -#: AppTools/ToolCalibration.py:602 +#: flatcamTools/ToolCalibration.py:602 msgid "" "Generate verification GCode file adjusted with\n" "the factors set above.\n" @@ -12999,11 +14877,11 @@ msgstr "" "Les paramètres GCode peuvent être réajustés\n" "avant de cliquer sur ce bouton." -#: AppTools/ToolCalibration.py:623 +#: flatcamTools/ToolCalibration.py:623 msgid "STEP 5: Calibrate FlatCAM Objects" msgstr "ÉTAPE 5: Calibrer les objets FlatCAM" -#: AppTools/ToolCalibration.py:625 +#: flatcamTools/ToolCalibration.py:625 msgid "" "Adjust the FlatCAM objects\n" "with the factors determined and verified above." @@ -13011,27 +14889,27 @@ msgstr "" "Ajuster les objets FlatCAM\n" "avec les facteurs déterminés et vérifiés ci-dessus." -#: AppTools/ToolCalibration.py:637 +#: flatcamTools/ToolCalibration.py:637 msgid "Adjusted object type" msgstr "Type d'objet ajusté" -#: AppTools/ToolCalibration.py:638 +#: flatcamTools/ToolCalibration.py:638 msgid "Type of the FlatCAM Object to be adjusted." msgstr "Type de l'objet FlatCAM à ajuster." -#: AppTools/ToolCalibration.py:651 +#: flatcamTools/ToolCalibration.py:651 msgid "Adjusted object selection" msgstr "Sélection d'objet ajustée" -#: AppTools/ToolCalibration.py:653 +#: flatcamTools/ToolCalibration.py:653 msgid "The FlatCAM Object to be adjusted." msgstr "L'objet FlatCAM à ajuster." -#: AppTools/ToolCalibration.py:660 +#: flatcamTools/ToolCalibration.py:660 msgid "Calibrate" msgstr "Étalonner" -#: AppTools/ToolCalibration.py:662 +#: flatcamTools/ToolCalibration.py:662 msgid "" "Adjust (scale and/or skew) the objects\n" "with the factors determined above." @@ -13039,63 +14917,63 @@ msgstr "" "Ajustez (redimensionnez et / ou inclinez) les objets\n" "avec les facteurs déterminés ci-dessus." -#: AppTools/ToolCalibration.py:770 AppTools/ToolCalibration.py:771 +#: flatcamTools/ToolCalibration.py:770 flatcamTools/ToolCalibration.py:771 msgid "Origin" msgstr "Origine" -#: AppTools/ToolCalibration.py:800 +#: flatcamTools/ToolCalibration.py:800 msgid "Tool initialized" msgstr "Outil initialisé" -#: AppTools/ToolCalibration.py:838 +#: flatcamTools/ToolCalibration.py:838 msgid "There is no source FlatCAM object selected..." msgstr "Aucun objet FlatCAM source n'est sélectionné ..." -#: AppTools/ToolCalibration.py:859 +#: flatcamTools/ToolCalibration.py:859 msgid "Get First calibration point. Bottom Left..." msgstr "Obtenez le premier point d'étalonnage. En bas à gauche..." -#: AppTools/ToolCalibration.py:926 +#: flatcamTools/ToolCalibration.py:926 msgid "Get Second calibration point. Bottom Right (Top Left)..." msgstr "" "Obtenez le deuxième point d'étalonnage. En bas à droite (en haut à " "gauche) ..." -#: AppTools/ToolCalibration.py:930 +#: flatcamTools/ToolCalibration.py:930 msgid "Get Third calibration point. Top Left (Bottom Right)..." msgstr "" "Obtenez le troisième point d'étalonnage. En haut à gauche (en bas à " "droite) ..." -#: AppTools/ToolCalibration.py:934 +#: flatcamTools/ToolCalibration.py:934 msgid "Get Forth calibration point. Top Right..." msgstr "Obtenez le quatrième point d'étalonnage. En haut à droite..." -#: AppTools/ToolCalibration.py:938 +#: flatcamTools/ToolCalibration.py:938 msgid "Done. All four points have been acquired." msgstr "Terminé. Les quatre points ont été acquis." -#: AppTools/ToolCalibration.py:969 +#: flatcamTools/ToolCalibration.py:969 msgid "Verification GCode for FlatCAM Calibration Tool" msgstr "Vérification GCode pour l'outil d'étalonnage FlatCAM" -#: AppTools/ToolCalibration.py:981 AppTools/ToolCalibration.py:1067 +#: flatcamTools/ToolCalibration.py:981 flatcamTools/ToolCalibration.py:1067 msgid "Gcode Viewer" msgstr "Visionneuse Gcode" -#: AppTools/ToolCalibration.py:997 +#: flatcamTools/ToolCalibration.py:997 msgid "Cancelled. Four points are needed for GCode generation." msgstr "Annulé. Quatre points sont nécessaires pour la génération de GCode." -#: AppTools/ToolCalibration.py:1253 AppTools/ToolCalibration.py:1349 +#: flatcamTools/ToolCalibration.py:1253 flatcamTools/ToolCalibration.py:1349 msgid "There is no FlatCAM object selected..." msgstr "Aucun objet FlatCAM n'est sélectionné ..." -#: AppTools/ToolCopperThieving.py:76 AppTools/ToolFiducials.py:264 +#: flatcamTools/ToolCopperThieving.py:76 flatcamTools/ToolFiducials.py:261 msgid "Gerber Object to which will be added a copper thieving." msgstr "Objet Gerber auquel sera ajouté un voleur de cuivre." -#: AppTools/ToolCopperThieving.py:102 +#: flatcamTools/ToolCopperThieving.py:98 msgid "" "This set the distance between the copper thieving components\n" "(the polygon fill may be split in multiple polygons)\n" @@ -13105,7 +14983,7 @@ msgstr "" "(le remplissage du polygone peut être divisé en plusieurs polygones)\n" "et les traces de cuivre dans le fichier Gerber." -#: AppTools/ToolCopperThieving.py:135 +#: flatcamTools/ToolCopperThieving.py:131 msgid "" "- 'Itself' - the copper thieving extent is based on the object extent.\n" "- 'Area Selection' - left mouse click to start selection of the area to be " @@ -13120,34 +14998,34 @@ msgstr "" "- «Objet de référence» - effectuera un Copper Thieving dans la zone " "spécifiée par un autre objet." -#: AppTools/ToolCopperThieving.py:142 AppTools/ToolIsolation.py:511 -#: AppTools/ToolNCC.py:552 AppTools/ToolPaint.py:495 +#: flatcamTools/ToolCopperThieving.py:138 flatcamTools/ToolNCC.py:552 +#: flatcamTools/ToolPaint.py:496 msgid "Ref. Type" msgstr "Type de Réf" -#: AppTools/ToolCopperThieving.py:144 +#: flatcamTools/ToolCopperThieving.py:140 msgid "" "The type of FlatCAM object to be used as copper thieving reference.\n" "It can be Gerber, Excellon or Geometry." msgstr "" "Type d'objet FlatCAM à utiliser comme référence de Copper Thieving.\n" -"Il peut s'agir de Gerber, Excellon ou Géométrie." +"Il peut s'agir de Gerber, Excellon ou Geometry." -#: AppTools/ToolCopperThieving.py:153 AppTools/ToolIsolation.py:522 -#: AppTools/ToolNCC.py:562 AppTools/ToolPaint.py:505 +#: flatcamTools/ToolCopperThieving.py:149 flatcamTools/ToolNCC.py:562 +#: flatcamTools/ToolPaint.py:506 msgid "Ref. Object" msgstr "Réf. Objet" -#: AppTools/ToolCopperThieving.py:155 AppTools/ToolIsolation.py:524 -#: AppTools/ToolNCC.py:564 AppTools/ToolPaint.py:507 +#: flatcamTools/ToolCopperThieving.py:151 flatcamTools/ToolNCC.py:564 +#: flatcamTools/ToolPaint.py:508 msgid "The FlatCAM object to be used as non copper clearing reference." msgstr "L'objet FlatCAM à utiliser comme référence d'effacement non en cuivre." -#: AppTools/ToolCopperThieving.py:331 +#: flatcamTools/ToolCopperThieving.py:327 msgid "Insert Copper thieving" msgstr "Insérer Copper Thieving" -#: AppTools/ToolCopperThieving.py:333 +#: flatcamTools/ToolCopperThieving.py:329 msgid "" "Will add a polygon (may be split in multiple parts)\n" "that will surround the actual Gerber traces at a certain distance." @@ -13155,11 +15033,11 @@ msgstr "" "Ajoutera un polygone (peut être divisé en plusieurs parties)\n" "qui entourera les traces réelles de Gerber à une certaine distance." -#: AppTools/ToolCopperThieving.py:392 +#: flatcamTools/ToolCopperThieving.py:388 msgid "Insert Robber Bar" msgstr "Insérer une Robber Bar" -#: AppTools/ToolCopperThieving.py:394 +#: flatcamTools/ToolCopperThieving.py:390 msgid "" "Will add a polygon with a defined thickness\n" "that will surround the actual Gerber object\n" @@ -13171,11 +15049,11 @@ msgstr "" "à une certaine distance.\n" "Requis lors du placage des trous." -#: AppTools/ToolCopperThieving.py:418 +#: flatcamTools/ToolCopperThieving.py:414 msgid "Select Soldermask object" msgstr "Sélectionner un objet Soldermask" -#: AppTools/ToolCopperThieving.py:420 +#: flatcamTools/ToolCopperThieving.py:416 msgid "" "Gerber Object with the soldermask.\n" "It will be used as a base for\n" @@ -13185,11 +15063,11 @@ msgstr "" "Il sera utilisé comme base pour\n" "le masque de placage de motifs." -#: AppTools/ToolCopperThieving.py:449 +#: flatcamTools/ToolCopperThieving.py:445 msgid "Plated area" msgstr "Zone plaquée" -#: AppTools/ToolCopperThieving.py:451 +#: flatcamTools/ToolCopperThieving.py:447 msgid "" "The area to be plated by pattern plating.\n" "Basically is made from the openings in the plating mask.\n" @@ -13208,19 +15086,19 @@ msgstr "" "un peu plus grand que les tampons en cuivre, et cette zone est\n" "calculé à partir des ouvertures du masque de soldat." -#: AppTools/ToolCopperThieving.py:462 +#: flatcamTools/ToolCopperThieving.py:458 msgid "mm" msgstr "mm" -#: AppTools/ToolCopperThieving.py:464 +#: flatcamTools/ToolCopperThieving.py:460 msgid "in" msgstr "in" -#: AppTools/ToolCopperThieving.py:471 +#: flatcamTools/ToolCopperThieving.py:467 msgid "Generate pattern plating mask" msgstr "Générer un masque de placage de motifs" -#: AppTools/ToolCopperThieving.py:473 +#: flatcamTools/ToolCopperThieving.py:469 msgid "" "Will add to the soldermask gerber geometry\n" "the geometries of the copper thieving and/or\n" @@ -13230,194 +15108,147 @@ msgstr "" "les géométries du Copper Thieving et / ou\n" "la Robber Bar si ceux-ci ont été générés." -#: AppTools/ToolCopperThieving.py:629 AppTools/ToolCopperThieving.py:654 +#: flatcamTools/ToolCopperThieving.py:625 +#: flatcamTools/ToolCopperThieving.py:650 msgid "Lines Grid works only for 'itself' reference ..." msgstr "" "La grille de lignes fonctionne uniquement pour la référence «elle-même» ..." -#: AppTools/ToolCopperThieving.py:640 +#: flatcamTools/ToolCopperThieving.py:636 msgid "Solid fill selected." msgstr "Remplissage solide sélectionné." -#: AppTools/ToolCopperThieving.py:645 +#: flatcamTools/ToolCopperThieving.py:641 msgid "Dots grid fill selected." msgstr "Remplissage de la grille de points sélectionné." -#: AppTools/ToolCopperThieving.py:650 +#: flatcamTools/ToolCopperThieving.py:646 msgid "Squares grid fill selected." msgstr "Remplissage de la grille des carrés sélectionné." -#: AppTools/ToolCopperThieving.py:671 AppTools/ToolCopperThieving.py:753 -#: AppTools/ToolCopperThieving.py:1355 AppTools/ToolCorners.py:268 -#: AppTools/ToolDblSided.py:657 AppTools/ToolExtractDrills.py:436 -#: AppTools/ToolFiducials.py:470 AppTools/ToolFiducials.py:747 -#: AppTools/ToolOptimal.py:348 AppTools/ToolPunchGerber.py:512 -#: AppTools/ToolQRCode.py:435 +#: flatcamTools/ToolCopperThieving.py:667 +#: flatcamTools/ToolCopperThieving.py:749 +#: flatcamTools/ToolCopperThieving.py:1345 flatcamTools/ToolDblSided.py:657 +#: flatcamTools/ToolExtractDrills.py:436 flatcamTools/ToolFiducials.py:466 +#: flatcamTools/ToolFiducials.py:743 flatcamTools/ToolOptimal.py:342 +#: flatcamTools/ToolPunchGerber.py:512 flatcamTools/ToolQRCode.py:426 msgid "There is no Gerber object loaded ..." msgstr "Il n'y a pas d'objet Gerber chargé ..." -#: AppTools/ToolCopperThieving.py:684 AppTools/ToolCopperThieving.py:1283 +#: flatcamTools/ToolCopperThieving.py:680 +#: flatcamTools/ToolCopperThieving.py:1273 msgid "Append geometry" msgstr "Ajouter une géométrie" -#: AppTools/ToolCopperThieving.py:728 AppTools/ToolCopperThieving.py:1316 -#: AppTools/ToolCopperThieving.py:1469 +#: flatcamTools/ToolCopperThieving.py:724 +#: flatcamTools/ToolCopperThieving.py:1306 +#: flatcamTools/ToolCopperThieving.py:1459 msgid "Append source file" msgstr "Ajouter un fichier source" -#: AppTools/ToolCopperThieving.py:736 AppTools/ToolCopperThieving.py:1324 +#: flatcamTools/ToolCopperThieving.py:732 +#: flatcamTools/ToolCopperThieving.py:1314 msgid "Copper Thieving Tool done." msgstr "Outil de Copper Thieving fait." -#: AppTools/ToolCopperThieving.py:763 AppTools/ToolCopperThieving.py:796 -#: AppTools/ToolCutOut.py:556 AppTools/ToolCutOut.py:761 -#: AppTools/ToolEtchCompensation.py:360 AppTools/ToolInvertGerber.py:211 -#: AppTools/ToolIsolation.py:1585 AppTools/ToolIsolation.py:1612 -#: AppTools/ToolNCC.py:1617 AppTools/ToolNCC.py:1661 AppTools/ToolNCC.py:1690 -#: AppTools/ToolPaint.py:1493 AppTools/ToolPanelize.py:423 -#: AppTools/ToolPanelize.py:437 AppTools/ToolSub.py:295 AppTools/ToolSub.py:308 -#: AppTools/ToolSub.py:499 AppTools/ToolSub.py:514 +#: flatcamTools/ToolCopperThieving.py:759 +#: flatcamTools/ToolCopperThieving.py:792 flatcamTools/ToolCutOut.py:519 +#: flatcamTools/ToolCutOut.py:724 flatcamTools/ToolInvertGerber.py:208 +#: flatcamTools/ToolNCC.py:1599 flatcamTools/ToolNCC.py:1640 +#: flatcamTools/ToolNCC.py:1669 flatcamTools/ToolPaint.py:1474 +#: flatcamTools/ToolPanelize.py:412 flatcamTools/ToolPanelize.py:426 +#: flatcamTools/ToolSub.py:294 flatcamTools/ToolSub.py:307 +#: flatcamTools/ToolSub.py:498 flatcamTools/ToolSub.py:513 #: tclCommands/TclCommandCopperClear.py:97 tclCommands/TclCommandPaint.py:99 msgid "Could not retrieve object" msgstr "Impossible de récupérer l'objet" -#: AppTools/ToolCopperThieving.py:773 AppTools/ToolIsolation.py:1672 -#: AppTools/ToolNCC.py:1669 Common.py:210 -msgid "Click the start point of the area." -msgstr "Cliquez sur le point de départ de la zone." - -#: AppTools/ToolCopperThieving.py:824 +#: flatcamTools/ToolCopperThieving.py:820 msgid "Click the end point of the filling area." msgstr "Cliquez sur le point final de la zone de remplissage." -#: AppTools/ToolCopperThieving.py:830 AppTools/ToolIsolation.py:2504 -#: AppTools/ToolIsolation.py:2556 AppTools/ToolNCC.py:1731 -#: AppTools/ToolNCC.py:1783 AppTools/ToolPaint.py:1625 -#: AppTools/ToolPaint.py:1676 Common.py:275 Common.py:377 -msgid "Zone added. Click to start adding next zone or right click to finish." -msgstr "" -"Zone ajoutée. Cliquez pour commencer à ajouter la zone suivante ou faites un " -"clic droit pour terminer." - -#: AppTools/ToolCopperThieving.py:952 AppTools/ToolCopperThieving.py:956 -#: AppTools/ToolCopperThieving.py:1017 +#: flatcamTools/ToolCopperThieving.py:942 +#: flatcamTools/ToolCopperThieving.py:946 +#: flatcamTools/ToolCopperThieving.py:1007 msgid "Thieving" msgstr "Voleur" -#: AppTools/ToolCopperThieving.py:963 +#: flatcamTools/ToolCopperThieving.py:953 msgid "Copper Thieving Tool started. Reading parameters." msgstr "L'outil de Copper Thieving a démarré. Lecture des paramètres." -#: AppTools/ToolCopperThieving.py:988 +#: flatcamTools/ToolCopperThieving.py:978 msgid "Copper Thieving Tool. Preparing isolation polygons." msgstr "Outil de Copper Thieving. Préparation des polygones d'isolement." -#: AppTools/ToolCopperThieving.py:1033 +#: flatcamTools/ToolCopperThieving.py:1023 msgid "Copper Thieving Tool. Preparing areas to fill with copper." msgstr "Outil de Copper Thieving. Préparer les zones à remplir de cuivre." -#: AppTools/ToolCopperThieving.py:1044 AppTools/ToolOptimal.py:355 -#: AppTools/ToolPanelize.py:810 AppTools/ToolRulesCheck.py:1127 +#: flatcamTools/ToolCopperThieving.py:1034 flatcamTools/ToolOptimal.py:349 +#: flatcamTools/ToolPanelize.py:799 flatcamTools/ToolRulesCheck.py:1127 msgid "Working..." msgstr "Travail..." -#: AppTools/ToolCopperThieving.py:1071 +#: flatcamTools/ToolCopperThieving.py:1061 msgid "Geometry not supported for bounding box" msgstr "Géométrie non prise en charge pour le cadre de sélection" -#: AppTools/ToolCopperThieving.py:1077 AppTools/ToolNCC.py:1962 -#: AppTools/ToolNCC.py:2017 AppTools/ToolNCC.py:3052 AppTools/ToolPaint.py:3405 +#: flatcamTools/ToolCopperThieving.py:1067 flatcamTools/ToolNCC.py:1933 +#: flatcamTools/ToolNCC.py:1988 flatcamTools/ToolNCC.py:2992 +#: flatcamTools/ToolPaint.py:3380 msgid "No object available." msgstr "Aucun objet disponible." -#: AppTools/ToolCopperThieving.py:1114 AppTools/ToolNCC.py:1987 -#: AppTools/ToolNCC.py:2040 AppTools/ToolNCC.py:3094 +#: flatcamTools/ToolCopperThieving.py:1104 flatcamTools/ToolNCC.py:1958 +#: flatcamTools/ToolNCC.py:2011 flatcamTools/ToolNCC.py:3034 msgid "The reference object type is not supported." msgstr "Le type d'objet de référence n'est pas pris en charge." -#: AppTools/ToolCopperThieving.py:1119 +#: flatcamTools/ToolCopperThieving.py:1109 msgid "Copper Thieving Tool. Appending new geometry and buffering." msgstr "" "Outil de Copper Thieving. Ajout d'une nouvelle géométrie et mise en mémoire " "tampon." -#: AppTools/ToolCopperThieving.py:1135 +#: flatcamTools/ToolCopperThieving.py:1125 msgid "Create geometry" msgstr "Créer une géométrie" -#: AppTools/ToolCopperThieving.py:1335 AppTools/ToolCopperThieving.py:1339 +#: flatcamTools/ToolCopperThieving.py:1325 +#: flatcamTools/ToolCopperThieving.py:1329 msgid "P-Plating Mask" msgstr "Masque de placage P" -#: AppTools/ToolCopperThieving.py:1361 +#: flatcamTools/ToolCopperThieving.py:1351 msgid "Append PP-M geometry" msgstr "Ajouter la géométrie du masque P de placage" -#: AppTools/ToolCopperThieving.py:1487 +#: flatcamTools/ToolCopperThieving.py:1477 msgid "Generating Pattern Plating Mask done." msgstr "Génération du masque de placage de motif terminée." -#: AppTools/ToolCopperThieving.py:1559 +#: flatcamTools/ToolCopperThieving.py:1549 msgid "Copper Thieving Tool exit." msgstr "Sortie de l'outil de Copper Thieving." -#: AppTools/ToolCorners.py:57 -msgid "The Gerber object to which will be added corner markers." -msgstr "L'objet Gerber auquel seront ajoutés des marqueurs de coin." - -#: AppTools/ToolCorners.py:73 -msgid "Locations" -msgstr "Emplacements" - -#: AppTools/ToolCorners.py:75 -msgid "Locations where to place corner markers." -msgstr "Emplacements où placer les marqueurs de coin." - -#: AppTools/ToolCorners.py:92 AppTools/ToolFiducials.py:95 -msgid "Top Right" -msgstr "En haut à droite" - -#: AppTools/ToolCorners.py:101 -msgid "Toggle ALL" -msgstr "Tout basculer" - -#: AppTools/ToolCorners.py:167 -msgid "Add Marker" -msgstr "Ajouter un marqueur" - -#: AppTools/ToolCorners.py:169 -msgid "Will add corner markers to the selected Gerber file." -msgstr "Will add corner markers to the selected Gerber file." - -#: AppTools/ToolCorners.py:235 -msgid "Corners Tool" -msgstr "Outil Corners" - -#: AppTools/ToolCorners.py:305 -msgid "Please select at least a location" -msgstr "Veuillez sélectionner au moins un emplacement" - -#: AppTools/ToolCorners.py:440 -msgid "Corners Tool exit." -msgstr "Sortie d'outil de Coins." - -#: AppTools/ToolCutOut.py:41 +#: flatcamTools/ToolCutOut.py:41 msgid "Cutout PCB" msgstr "Découpe de PCB" -#: AppTools/ToolCutOut.py:69 AppTools/ToolPanelize.py:53 +#: flatcamTools/ToolCutOut.py:69 flatcamTools/ToolPanelize.py:54 msgid "Source Object" msgstr "Objet source" -#: AppTools/ToolCutOut.py:70 +#: flatcamTools/ToolCutOut.py:70 msgid "Object to be cutout" msgstr "Objet à découper" -#: AppTools/ToolCutOut.py:75 +#: flatcamTools/ToolCutOut.py:75 msgid "Kind" msgstr "Sorte" -#: AppTools/ToolCutOut.py:97 +#: flatcamTools/ToolCutOut.py:97 msgid "" "Specify the type of object to be cutout.\n" "It can be of type: Gerber or Geometry.\n" @@ -13429,19 +15260,19 @@ msgstr "" "Ce qui est sélectionné ici dictera le genre\n" "des objets qui vont remplir la liste déroulante 'Object'." -#: AppTools/ToolCutOut.py:121 +#: flatcamTools/ToolCutOut.py:121 msgid "Tool Parameters" msgstr "Paramètres d'outil" -#: AppTools/ToolCutOut.py:238 +#: flatcamTools/ToolCutOut.py:238 msgid "A. Automatic Bridge Gaps" -msgstr "A. Pont de maintient Automatique" +msgstr "A. Lacunes automatiques des ponts" -#: AppTools/ToolCutOut.py:240 +#: flatcamTools/ToolCutOut.py:240 msgid "This section handle creation of automatic bridge gaps." -msgstr "Cette section gère la création des ponts de maintient automatiques." +msgstr "Cette section gère la création d'espaces de pontage automatiques." -#: AppTools/ToolCutOut.py:247 +#: flatcamTools/ToolCutOut.py:247 msgid "" "Number of gaps used for the Automatic cutout.\n" "There can be maximum 8 bridges/gaps.\n" @@ -13454,22 +15285,22 @@ msgid "" "- 2tb - 2*top + 2*bottom\n" "- 8 - 2*left + 2*right +2*top + 2*bottom" msgstr "" -"Nombres de ponts à garder lors de la découpe.\n" -"Il peut y avoir au maximum 8 ponts.\n" +"Nombre de trous utilisés pour la découpe automatique.\n" +"Il peut y avoir au maximum 8 ponts / lacunes.\n" "Les choix sont:\n" -"- Aucun - Découpe total\n" -"- LR - Gauche + Droite\n" -"- TB - Haut + Bas\n" -"- 4 - Gauche + Droite + Haut + Bas\n" -"- 2LR - 2 Gauche + 2 Droite\n" -"- 2TB - 2 Haut + 2 Bas\n" -"- 8 - 2 Gauches + 2 Droites + 2 Hauts + 2 Bas" +"- Aucun - pas de lacunes\n" +"- lr - gauche + droite\n" +"- tb - haut + bas\n" +"- 4 - gauche + droite + haut + bas\n" +"- 2lr - 2 * gauche + 2 * droite\n" +"- 2tb - 2 * Haut + 2 * Bas\n" +"- 8 - 2 * gauche + 2 * droite + 2 * en haut + 2 * en bas" -#: AppTools/ToolCutOut.py:269 +#: flatcamTools/ToolCutOut.py:269 msgid "Generate Freeform Geometry" msgstr "Générer une géométrie de forme libre" -#: AppTools/ToolCutOut.py:271 +#: flatcamTools/ToolCutOut.py:271 msgid "" "Cutout the selected object.\n" "The cutout shape can be of any shape.\n" @@ -13479,11 +15310,11 @@ msgstr "" "La forme de la découpe peut être de n'importe quelle forme.\n" "Utile lorsque le circuit imprimé a une forme non rectangulaire." -#: AppTools/ToolCutOut.py:283 +#: flatcamTools/ToolCutOut.py:283 msgid "Generate Rectangular Geometry" msgstr "Générer une géométrie rectangulaire" -#: AppTools/ToolCutOut.py:285 +#: flatcamTools/ToolCutOut.py:285 msgid "" "Cutout the selected object.\n" "The resulting cutout shape is\n" @@ -13495,11 +15326,11 @@ msgstr "" "toujours une forme de rectangle et ce sera\n" "la boîte englobante de l'objet." -#: AppTools/ToolCutOut.py:304 +#: flatcamTools/ToolCutOut.py:304 msgid "B. Manual Bridge Gaps" -msgstr "B. Pont de maintient Manuel" +msgstr "B. Lacunes manuelles du pont" -#: AppTools/ToolCutOut.py:306 +#: flatcamTools/ToolCutOut.py:306 msgid "" "This section handle creation of manual bridge gaps.\n" "This is done by mouse clicking on the perimeter of the\n" @@ -13509,15 +15340,15 @@ msgstr "" "Cela se fait en cliquant avec la souris sur le périmètre de la\n" "Objet de géométrie utilisé comme objet de découpe. " -#: AppTools/ToolCutOut.py:321 +#: flatcamTools/ToolCutOut.py:321 msgid "Geometry object used to create the manual cutout." msgstr "Objet de géométrie utilisé pour créer la découpe manuelle." -#: AppTools/ToolCutOut.py:328 +#: flatcamTools/ToolCutOut.py:328 msgid "Generate Manual Geometry" msgstr "Générer une géométrie manuelle" -#: AppTools/ToolCutOut.py:330 +#: flatcamTools/ToolCutOut.py:330 msgid "" "If the object to be cutout is a Gerber\n" "first create a Geometry that surrounds it,\n" @@ -13530,11 +15361,11 @@ msgstr "" "Sélectionnez le fichier Gerber source dans la liste déroulante d'objets " "supérieure." -#: AppTools/ToolCutOut.py:343 +#: flatcamTools/ToolCutOut.py:343 msgid "Manual Add Bridge Gaps" -msgstr "Ajout manuel de ponts dans la découpe" +msgstr "Ajout manuel de lacunes dans les ponts" -#: AppTools/ToolCutOut.py:345 +#: flatcamTools/ToolCutOut.py:345 msgid "" "Use the left mouse button (LMB) click\n" "to create a bridge gap to separate the PCB from\n" @@ -13546,9 +15377,9 @@ msgstr "" "créer un pont pour séparer PCB de\n" "le matériau environnant.\n" "Le clic LMB doit être fait sur le périmètre de\n" -"l'objet Géométrie utilisé en tant que géométrie de découpe." +"l'objet Geometry utilisé en tant que géométrie de découpe." -#: AppTools/ToolCutOut.py:561 +#: flatcamTools/ToolCutOut.py:524 msgid "" "There is no object selected for Cutout.\n" "Select one and try again." @@ -13556,27 +15387,27 @@ msgstr "" "Aucun objet n'est sélectionné pour la découpe.\n" "Sélectionnez-en un et réessayez." -#: AppTools/ToolCutOut.py:567 AppTools/ToolCutOut.py:770 -#: AppTools/ToolCutOut.py:951 AppTools/ToolCutOut.py:1033 +#: flatcamTools/ToolCutOut.py:530 flatcamTools/ToolCutOut.py:733 +#: flatcamTools/ToolCutOut.py:914 flatcamTools/ToolCutOut.py:996 #: tclCommands/TclCommandGeoCutout.py:184 msgid "Tool Diameter is zero value. Change it to a positive real number." msgstr "" "Le diamètre de l'outil est égal à zéro. Changez-le en un nombre réel positif." -#: AppTools/ToolCutOut.py:581 AppTools/ToolCutOut.py:785 +#: flatcamTools/ToolCutOut.py:544 flatcamTools/ToolCutOut.py:748 msgid "Number of gaps value is missing. Add it and retry." msgstr "Le nombre de lacunes est manquant. Ajoutez-le et réessayez." -#: AppTools/ToolCutOut.py:586 AppTools/ToolCutOut.py:789 +#: flatcamTools/ToolCutOut.py:549 flatcamTools/ToolCutOut.py:752 msgid "" "Gaps value can be only one of: 'None', 'lr', 'tb', '2lr', '2tb', 4 or 8. " "Fill in a correct value and retry. " msgstr "" -"Le nombres des ponts ne peut être que l'une des valeurs suivantes: 'Aucune', " -"'None', 'LR', 'TB', '2LR','2TB', 4 ou 8. Saisissez une valeur correcte, puis " -"réessayez. " +"La valeur d'espacement ne peut être que l'une des valeurs suivantes: " +"'Aucune', 'lr', 'tb', '2lr', '2tb', 4 ou 8. Saisissez une valeur correcte, " +"puis réessayez. " -#: AppTools/ToolCutOut.py:591 AppTools/ToolCutOut.py:795 +#: flatcamTools/ToolCutOut.py:554 flatcamTools/ToolCutOut.py:758 msgid "" "Cutout operation cannot be done on a multi-geo Geometry.\n" "Optionally, this Multi-geo Geometry can be converted to Single-geo " @@ -13589,46 +15420,45 @@ msgstr "" "géo,\n" "et après cela effectuer la découpe." -#: AppTools/ToolCutOut.py:743 AppTools/ToolCutOut.py:940 +#: flatcamTools/ToolCutOut.py:706 flatcamTools/ToolCutOut.py:903 msgid "Any form CutOut operation finished." msgstr "Opération de découpe Forme Libre terminée." -#: AppTools/ToolCutOut.py:765 AppTools/ToolEtchCompensation.py:366 -#: AppTools/ToolInvertGerber.py:217 AppTools/ToolIsolation.py:1589 -#: AppTools/ToolIsolation.py:1616 AppTools/ToolNCC.py:1621 -#: AppTools/ToolPaint.py:1416 AppTools/ToolPanelize.py:428 -#: tclCommands/TclCommandBbox.py:71 tclCommands/TclCommandNregions.py:71 +#: flatcamTools/ToolCutOut.py:728 flatcamTools/ToolInvertGerber.py:214 +#: flatcamTools/ToolNCC.py:1603 flatcamTools/ToolPaint.py:1397 +#: flatcamTools/ToolPanelize.py:417 tclCommands/TclCommandBbox.py:71 +#: tclCommands/TclCommandNregions.py:71 msgid "Object not found" msgstr "Objet non trouvé" -#: AppTools/ToolCutOut.py:909 +#: flatcamTools/ToolCutOut.py:872 msgid "Rectangular cutout with negative margin is not possible." msgstr "Une découpe rectangulaire avec une marge négative n'est pas possible." -#: AppTools/ToolCutOut.py:945 +#: flatcamTools/ToolCutOut.py:908 msgid "" "Click on the selected geometry object perimeter to create a bridge gap ..." msgstr "" "Cliquez sur le périmètre de l'objet géométrique sélectionné pour créer un " "intervalle de pont ..." -#: AppTools/ToolCutOut.py:962 AppTools/ToolCutOut.py:988 +#: flatcamTools/ToolCutOut.py:925 flatcamTools/ToolCutOut.py:951 msgid "Could not retrieve Geometry object" msgstr "Impossible de récupérer l'objet de géométrie" -#: AppTools/ToolCutOut.py:993 +#: flatcamTools/ToolCutOut.py:956 msgid "Geometry object for manual cutout not found" msgstr "Objet de géométrie pour découpe manuelle introuvable" -#: AppTools/ToolCutOut.py:1003 +#: flatcamTools/ToolCutOut.py:966 msgid "Added manual Bridge Gap." msgstr "Ajout d'un écart de pont manuel." -#: AppTools/ToolCutOut.py:1015 +#: flatcamTools/ToolCutOut.py:978 msgid "Could not retrieve Gerber object" msgstr "Impossible de récupérer l'objet Gerber" -#: AppTools/ToolCutOut.py:1020 +#: flatcamTools/ToolCutOut.py:983 msgid "" "There is no Gerber object selected for Cutout.\n" "Select one and try again." @@ -13636,7 +15466,7 @@ msgstr "" "Aucun objet Gerber n'a été sélectionné pour la découpe.\n" "Sélectionnez-en un et réessayez." -#: AppTools/ToolCutOut.py:1026 +#: flatcamTools/ToolCutOut.py:989 msgid "" "The selected object has to be of Gerber type.\n" "Select a Gerber file and try again." @@ -13644,32 +15474,32 @@ msgstr "" "L'objet sélectionné doit être de type Gerber.\n" "Sélectionnez un fichier Gerber et réessayez." -#: AppTools/ToolCutOut.py:1061 +#: flatcamTools/ToolCutOut.py:1024 msgid "Geometry not supported for cutout" msgstr "Géométrie non prise en charge pour la découpe" -#: AppTools/ToolCutOut.py:1136 +#: flatcamTools/ToolCutOut.py:1099 msgid "Making manual bridge gap..." msgstr "Faire un pont manuel ..." -#: AppTools/ToolDblSided.py:26 +#: flatcamTools/ToolDblSided.py:26 msgid "2-Sided PCB" msgstr "PCB double face" -#: AppTools/ToolDblSided.py:52 +#: flatcamTools/ToolDblSided.py:52 msgid "Mirror Operation" msgstr "Miroir Opération" -#: AppTools/ToolDblSided.py:53 +#: flatcamTools/ToolDblSided.py:53 msgid "Objects to be mirrored" msgstr "Objets à mettre en miroir" -#: AppTools/ToolDblSided.py:65 +#: flatcamTools/ToolDblSided.py:65 msgid "Gerber to be mirrored" msgstr "Gerber en miroir" -#: AppTools/ToolDblSided.py:69 AppTools/ToolDblSided.py:97 -#: AppTools/ToolDblSided.py:127 +#: flatcamTools/ToolDblSided.py:69 flatcamTools/ToolDblSided.py:97 +#: flatcamTools/ToolDblSided.py:127 msgid "" "Mirrors (flips) the specified object around \n" "the specified axis. Does not create a new \n" @@ -13679,27 +15509,27 @@ msgstr "" "l'axe spécifié. Ne crée pas de nouveau\n" "objet, mais le modifie." -#: AppTools/ToolDblSided.py:93 +#: flatcamTools/ToolDblSided.py:93 msgid "Excellon Object to be mirrored." msgstr "Excellon Objet à refléter." -#: AppTools/ToolDblSided.py:122 +#: flatcamTools/ToolDblSided.py:122 msgid "Geometry Obj to be mirrored." msgstr "Objet de géométrie à refléter." -#: AppTools/ToolDblSided.py:158 +#: flatcamTools/ToolDblSided.py:158 msgid "Mirror Parameters" msgstr "Paramètres de Miroir" -#: AppTools/ToolDblSided.py:159 +#: flatcamTools/ToolDblSided.py:159 msgid "Parameters for the mirror operation" msgstr "Paramètres de l'opération Miroir" -#: AppTools/ToolDblSided.py:164 +#: flatcamTools/ToolDblSided.py:164 msgid "Mirror Axis" msgstr "Axe de Miroir" -#: AppTools/ToolDblSided.py:175 +#: flatcamTools/ToolDblSided.py:175 msgid "" "The coordinates used as reference for the mirror operation.\n" "Can be:\n" @@ -13715,11 +15545,11 @@ msgstr "" "la\n" "cadre de délimitation d'un autre objet sélectionné ci-dessous" -#: AppTools/ToolDblSided.py:189 +#: flatcamTools/ToolDblSided.py:189 msgid "Point coordinates" msgstr "Coordonnées du point" -#: AppTools/ToolDblSided.py:194 +#: flatcamTools/ToolDblSided.py:194 msgid "" "Add the coordinates in format (x, y) through which the mirroring " "axis\n" @@ -13735,7 +15565,7 @@ msgstr "" "et cliquez avec le bouton gauche de la souris sur la toile ou vous pouvez " "entrer les coordonnées manuellement." -#: AppTools/ToolDblSided.py:218 +#: flatcamTools/ToolDblSided.py:218 msgid "" "It can be of type: Gerber or Excellon or Geometry.\n" "The coordinates of the center of the bounding box are used\n" @@ -13745,11 +15575,11 @@ msgstr "" "Les coordonnées du centre du cadre de sélection sont utilisées\n" "comme référence pour le fonctionnement du miroir." -#: AppTools/ToolDblSided.py:252 +#: flatcamTools/ToolDblSided.py:252 msgid "Bounds Values" msgstr "Valeurs limites" -#: AppTools/ToolDblSided.py:254 +#: flatcamTools/ToolDblSided.py:254 msgid "" "Select on canvas the object(s)\n" "for which to calculate bounds values." @@ -13757,39 +15587,39 @@ msgstr "" "Sélectionnez sur le canevas le ou les objets\n" "pour lequel calculer les valeurs limites." -#: AppTools/ToolDblSided.py:264 +#: flatcamTools/ToolDblSided.py:264 msgid "X min" msgstr "X min" -#: AppTools/ToolDblSided.py:266 AppTools/ToolDblSided.py:280 +#: flatcamTools/ToolDblSided.py:266 flatcamTools/ToolDblSided.py:280 msgid "Minimum location." msgstr "Emplacement minimum." -#: AppTools/ToolDblSided.py:278 +#: flatcamTools/ToolDblSided.py:278 msgid "Y min" msgstr "Y min" -#: AppTools/ToolDblSided.py:292 +#: flatcamTools/ToolDblSided.py:292 msgid "X max" msgstr "X max" -#: AppTools/ToolDblSided.py:294 AppTools/ToolDblSided.py:308 +#: flatcamTools/ToolDblSided.py:294 flatcamTools/ToolDblSided.py:308 msgid "Maximum location." msgstr "Emplacement maximum." -#: AppTools/ToolDblSided.py:306 +#: flatcamTools/ToolDblSided.py:306 msgid "Y max" msgstr "Y max" -#: AppTools/ToolDblSided.py:317 +#: flatcamTools/ToolDblSided.py:317 msgid "Center point coordinates" msgstr "Coordonnées du point central" -#: AppTools/ToolDblSided.py:319 +#: flatcamTools/ToolDblSided.py:319 msgid "Centroid" msgstr "Centroïde" -#: AppTools/ToolDblSided.py:321 +#: flatcamTools/ToolDblSided.py:321 msgid "" "The center point location for the rectangular\n" "bounding shape. Centroid. Format is (x, y)." @@ -13797,11 +15627,11 @@ msgstr "" "L'emplacement du point central pour le rectangulaire\n" "forme de délimitation. Centroïde. Le format est (x, y)." -#: AppTools/ToolDblSided.py:330 +#: flatcamTools/ToolDblSided.py:330 msgid "Calculate Bounds Values" msgstr "Calculer les valeurs limites" -#: AppTools/ToolDblSided.py:332 +#: flatcamTools/ToolDblSided.py:332 msgid "" "Calculate the enveloping rectangular shape coordinates,\n" "for the selection of objects.\n" @@ -13811,11 +15641,11 @@ msgstr "" "pour la sélection d'objets.\n" "La forme de l'enveloppe est parallèle à l'axe X, Y." -#: AppTools/ToolDblSided.py:352 +#: flatcamTools/ToolDblSided.py:352 msgid "PCB Alignment" msgstr "Alignement PCB" -#: AppTools/ToolDblSided.py:354 AppTools/ToolDblSided.py:456 +#: flatcamTools/ToolDblSided.py:354 flatcamTools/ToolDblSided.py:456 msgid "" "Creates an Excellon Object containing the\n" "specified alignment holes and their mirror\n" @@ -13825,11 +15655,11 @@ msgstr "" "trous d'alignement spécifiés et leur miroir\n" "images." -#: AppTools/ToolDblSided.py:361 +#: flatcamTools/ToolDblSided.py:361 msgid "Drill Diameter" -msgstr "Diam. de perçage" +msgstr "Dia. de perçage" -#: AppTools/ToolDblSided.py:390 AppTools/ToolDblSided.py:397 +#: flatcamTools/ToolDblSided.py:390 flatcamTools/ToolDblSided.py:397 msgid "" "The reference point used to create the second alignment drill\n" "from the first alignment drill, by doing mirror.\n" @@ -13839,11 +15669,11 @@ msgstr "" "du premier foret d'alignement, en faisant miroir.\n" "Il peut être modifié dans la section Paramètres miroir -> Référence" -#: AppTools/ToolDblSided.py:410 +#: flatcamTools/ToolDblSided.py:410 msgid "Alignment Drill Coordinates" msgstr "Coordonnées du foret d'alignement" -#: AppTools/ToolDblSided.py:412 +#: flatcamTools/ToolDblSided.py:412 msgid "" "Alignment holes (x1, y1), (x2, y2), ... on one side of the mirror axis. For " "each set of (x, y) coordinates\n" @@ -13861,11 +15691,11 @@ msgstr "" "- un foret en position miroir sur l'axe sélectionné ci-dessus dans 'Aligner " "l'axe'." -#: AppTools/ToolDblSided.py:420 +#: flatcamTools/ToolDblSided.py:420 msgid "Drill coordinates" msgstr "Coordonnées de forage" -#: AppTools/ToolDblSided.py:427 +#: flatcamTools/ToolDblSided.py:427 msgid "" "Add alignment drill holes coordinates in the format: (x1, y1), (x2, " "y2), ... \n" @@ -13893,23 +15723,23 @@ msgstr "" "- en saisissant manuellement les coordonnées au format: (x1, y1), (x2, " "y2), ..." -#: AppTools/ToolDblSided.py:442 +#: flatcamTools/ToolDblSided.py:442 msgid "Delete Last" msgstr "Supprimer le dernier" -#: AppTools/ToolDblSided.py:444 +#: flatcamTools/ToolDblSided.py:444 msgid "Delete the last coordinates tuple in the list." msgstr "Supprimez le dernier tuple de coordonnées de la liste." -#: AppTools/ToolDblSided.py:454 +#: flatcamTools/ToolDblSided.py:454 msgid "Create Excellon Object" msgstr "Créer un objet Excellon" -#: AppTools/ToolDblSided.py:541 +#: flatcamTools/ToolDblSided.py:541 msgid "2-Sided Tool" msgstr "Outil de PCB double face" -#: AppTools/ToolDblSided.py:581 +#: flatcamTools/ToolDblSided.py:581 msgid "" "'Point' reference is selected and 'Point' coordinates are missing. Add them " "and retry." @@ -13917,34 +15747,34 @@ msgstr "" "La référence 'Point' est sélectionnée et les coordonnées 'Point' sont " "manquantes. Ajoutez-les et réessayez." -#: AppTools/ToolDblSided.py:600 +#: flatcamTools/ToolDblSided.py:600 msgid "There is no Box reference object loaded. Load one and retry." msgstr "" "Il n'y a pas d'objet de référence Box chargé. Chargez-en un et réessayez." -#: AppTools/ToolDblSided.py:612 +#: flatcamTools/ToolDblSided.py:612 msgid "No value or wrong format in Drill Dia entry. Add it and retry." msgstr "" "Aucune valeur ou format incorrect dans l'entrée du diamètre du Forage. " "Ajoutez-le et réessayez." -#: AppTools/ToolDblSided.py:623 +#: flatcamTools/ToolDblSided.py:623 msgid "There are no Alignment Drill Coordinates to use. Add them and retry." msgstr "" -"Il n’y a pas de coordonnées de perceuse d’alignement à utiliser. Ajoutez-les " +"Il n’ya pas de coordonnées de perceuse d’alignement à utiliser. Ajoutez-les " "et réessayez." -#: AppTools/ToolDblSided.py:648 +#: flatcamTools/ToolDblSided.py:648 msgid "Excellon object with alignment drills created..." msgstr "Excellon objet avec des exercices d'alignement créé ..." -#: AppTools/ToolDblSided.py:661 AppTools/ToolDblSided.py:704 -#: AppTools/ToolDblSided.py:748 +#: flatcamTools/ToolDblSided.py:661 flatcamTools/ToolDblSided.py:704 +#: flatcamTools/ToolDblSided.py:748 msgid "Only Gerber, Excellon and Geometry objects can be mirrored." msgstr "" -"Seuls les objets Gerber, Excellon et Géométrie peuvent être mis en miroir." +"Seuls les objets Gerber, Excellon et Geometry peuvent être mis en miroir." -#: AppTools/ToolDblSided.py:671 AppTools/ToolDblSided.py:715 +#: flatcamTools/ToolDblSided.py:671 flatcamTools/ToolDblSided.py:715 msgid "" "There are no Point coordinates in the Point field. Add coords and try " "again ..." @@ -13952,45 +15782,41 @@ msgstr "" "Il n'y a pas de coordonnées de point dans le champ Point. Ajoutez des " "coordonnées et réessayez ..." -#: AppTools/ToolDblSided.py:681 AppTools/ToolDblSided.py:725 -#: AppTools/ToolDblSided.py:762 +#: flatcamTools/ToolDblSided.py:681 flatcamTools/ToolDblSided.py:725 +#: flatcamTools/ToolDblSided.py:762 msgid "There is no Box object loaded ..." msgstr "Il n'y a pas d'objet Box chargé ..." -#: AppTools/ToolDblSided.py:691 AppTools/ToolDblSided.py:735 -#: AppTools/ToolDblSided.py:772 +#: flatcamTools/ToolDblSided.py:691 flatcamTools/ToolDblSided.py:735 +#: flatcamTools/ToolDblSided.py:772 msgid "was mirrored" msgstr "a été mis en miroir" -#: AppTools/ToolDblSided.py:700 AppTools/ToolPunchGerber.py:533 +#: flatcamTools/ToolDblSided.py:700 flatcamTools/ToolPunchGerber.py:533 msgid "There is no Excellon object loaded ..." msgstr "Il n'y a pas d'objet Excellon chargé ..." -#: AppTools/ToolDblSided.py:744 +#: flatcamTools/ToolDblSided.py:744 msgid "There is no Geometry object loaded ..." -msgstr "Il n'y a pas d'objet Géométrie chargé ..." +msgstr "Il n'y a pas d'objet Geometry chargé ..." -#: AppTools/ToolDblSided.py:818 App_Main.py:4350 App_Main.py:4505 -msgid "Failed. No object(s) selected..." -msgstr "Érreur. Aucun objet sélectionné ..." - -#: AppTools/ToolDistance.py:57 AppTools/ToolDistanceMin.py:50 +#: flatcamTools/ToolDistance.py:57 flatcamTools/ToolDistanceMin.py:51 msgid "Those are the units in which the distance is measured." msgstr "Ce sont les unités dans lesquelles la distance est mesurée." -#: AppTools/ToolDistance.py:58 AppTools/ToolDistanceMin.py:51 +#: flatcamTools/ToolDistance.py:58 flatcamTools/ToolDistanceMin.py:52 msgid "METRIC (mm)" msgstr "MÉTRIQUE (mm)" -#: AppTools/ToolDistance.py:58 AppTools/ToolDistanceMin.py:51 +#: flatcamTools/ToolDistance.py:58 flatcamTools/ToolDistanceMin.py:52 msgid "INCH (in)" msgstr "POUCES (po)" -#: AppTools/ToolDistance.py:64 +#: flatcamTools/ToolDistance.py:64 msgid "Snap to center" msgstr "Accrocher au centre" -#: AppTools/ToolDistance.py:66 +#: flatcamTools/ToolDistance.py:66 msgid "" "Mouse cursor will snap to the center of the pad/drill\n" "when it is hovering over the geometry of the pad/drill." @@ -13998,99 +15824,95 @@ msgstr "" "Le curseur de la souris se positionnera au centre du pad / drill\n" "lorsqu'il survole la géométrie du tampon / de la perceuse." -#: AppTools/ToolDistance.py:76 +#: flatcamTools/ToolDistance.py:76 msgid "Start Coords" msgstr "Démarrer Coords" -#: AppTools/ToolDistance.py:77 AppTools/ToolDistance.py:82 +#: flatcamTools/ToolDistance.py:77 flatcamTools/ToolDistance.py:82 msgid "This is measuring Start point coordinates." msgstr "Ceci mesure les coordonnées du point de départ." -#: AppTools/ToolDistance.py:87 +#: flatcamTools/ToolDistance.py:87 msgid "Stop Coords" msgstr "Arrêtez Coords" -#: AppTools/ToolDistance.py:88 AppTools/ToolDistance.py:93 +#: flatcamTools/ToolDistance.py:88 flatcamTools/ToolDistance.py:93 msgid "This is the measuring Stop point coordinates." msgstr "Ce sont les coordonnées du point d'arrêt de la mesure." -#: AppTools/ToolDistance.py:98 AppTools/ToolDistanceMin.py:62 +#: flatcamTools/ToolDistance.py:98 flatcamTools/ToolDistanceMin.py:63 msgid "Dx" msgstr "Dx" -#: AppTools/ToolDistance.py:99 AppTools/ToolDistance.py:104 -#: AppTools/ToolDistanceMin.py:63 AppTools/ToolDistanceMin.py:92 +#: flatcamTools/ToolDistance.py:99 flatcamTools/ToolDistance.py:104 +#: flatcamTools/ToolDistanceMin.py:64 flatcamTools/ToolDistanceMin.py:93 msgid "This is the distance measured over the X axis." msgstr "C'est la distance mesurée sur l'axe X." -#: AppTools/ToolDistance.py:109 AppTools/ToolDistanceMin.py:65 +#: flatcamTools/ToolDistance.py:109 flatcamTools/ToolDistanceMin.py:66 msgid "Dy" msgstr "Dy" -#: AppTools/ToolDistance.py:110 AppTools/ToolDistance.py:115 -#: AppTools/ToolDistanceMin.py:66 AppTools/ToolDistanceMin.py:97 +#: flatcamTools/ToolDistance.py:110 flatcamTools/ToolDistance.py:115 +#: flatcamTools/ToolDistanceMin.py:67 flatcamTools/ToolDistanceMin.py:98 msgid "This is the distance measured over the Y axis." msgstr "C'est la distance mesurée sur l'axe Y." -#: AppTools/ToolDistance.py:121 AppTools/ToolDistance.py:126 -#: AppTools/ToolDistanceMin.py:69 AppTools/ToolDistanceMin.py:102 +#: flatcamTools/ToolDistance.py:121 flatcamTools/ToolDistance.py:126 +#: flatcamTools/ToolDistanceMin.py:70 flatcamTools/ToolDistanceMin.py:103 msgid "This is orientation angle of the measuring line." msgstr "C'est l'angle d'orientation de la ligne de mesure." -#: AppTools/ToolDistance.py:131 AppTools/ToolDistanceMin.py:71 +#: flatcamTools/ToolDistance.py:131 flatcamTools/ToolDistanceMin.py:72 msgid "DISTANCE" msgstr "DISTANCE" -#: AppTools/ToolDistance.py:132 AppTools/ToolDistance.py:137 +#: flatcamTools/ToolDistance.py:132 flatcamTools/ToolDistance.py:137 msgid "This is the point to point Euclidian distance." msgstr "C'est la distance euclidienne de point à point." -#: AppTools/ToolDistance.py:142 AppTools/ToolDistance.py:339 -#: AppTools/ToolDistanceMin.py:114 +#: flatcamTools/ToolDistance.py:142 flatcamTools/ToolDistance.py:337 +#: flatcamTools/ToolDistanceMin.py:115 msgid "Measure" msgstr "Mesure" -#: AppTools/ToolDistance.py:274 +#: flatcamTools/ToolDistance.py:272 msgid "Working" msgstr "Travail" -#: AppTools/ToolDistance.py:279 +#: flatcamTools/ToolDistance.py:277 msgid "MEASURING: Click on the Start point ..." msgstr "MESURE: Cliquez sur le point de départ ..." -#: AppTools/ToolDistance.py:389 +#: flatcamTools/ToolDistance.py:387 msgid "Distance Tool finished." msgstr "Outil Distance terminé." -#: AppTools/ToolDistance.py:461 +#: flatcamTools/ToolDistance.py:455 msgid "Pads overlapped. Aborting." msgstr "Les coussinets se chevauchaient. Abandon." -#: AppTools/ToolDistance.py:489 -msgid "Distance Tool cancelled." -msgstr "Outil Distance annulé." - -#: AppTools/ToolDistance.py:494 +#: flatcamTools/ToolDistance.py:485 msgid "MEASURING: Click on the Destination point ..." msgstr "MESURE: Cliquez sur le point de destination ..." -#: AppTools/ToolDistance.py:503 AppTools/ToolDistanceMin.py:284 +#: flatcamTools/ToolDistance.py:494 flatcamTools/ToolDistanceMin.py:285 msgid "MEASURING" msgstr "MESURE" -#: AppTools/ToolDistance.py:504 AppTools/ToolDistanceMin.py:285 +#: flatcamTools/ToolDistance.py:495 flatcamTools/ToolDistanceMin.py:286 msgid "Result" msgstr "Résultat" -#: AppTools/ToolDistanceMin.py:31 AppTools/ToolDistanceMin.py:143 +#: flatcamTools/ToolDistanceMin.py:32 flatcamTools/ToolDistanceMin.py:144 msgid "Minimum Distance Tool" -msgstr "Mesure Distance Mini" +msgstr "Outil de Distance Minimale" -#: AppTools/ToolDistanceMin.py:54 +#: flatcamTools/ToolDistanceMin.py:55 msgid "First object point" msgstr "Premier point" -#: AppTools/ToolDistanceMin.py:55 AppTools/ToolDistanceMin.py:80 +#: flatcamTools/ToolDistanceMin.py:56 flatcamTools/ToolDistanceMin.py:81 msgid "" "This is first object point coordinates.\n" "This is the start point for measuring distance." @@ -14098,11 +15920,11 @@ msgstr "" "Ce sont les premières coordonnées du point d'objet.\n" "C'est le point de départ pour mesurer la distance." -#: AppTools/ToolDistanceMin.py:58 +#: flatcamTools/ToolDistanceMin.py:59 msgid "Second object point" msgstr "Deuxième point" -#: AppTools/ToolDistanceMin.py:59 AppTools/ToolDistanceMin.py:86 +#: flatcamTools/ToolDistanceMin.py:60 flatcamTools/ToolDistanceMin.py:87 msgid "" "This is second object point coordinates.\n" "This is the end point for measuring distance." @@ -14110,212 +15932,66 @@ msgstr "" "Ce sont les coordonnées du deuxième point de l'objet.\n" "C'est le point final pour mesurer la distance." -#: AppTools/ToolDistanceMin.py:72 AppTools/ToolDistanceMin.py:107 +#: flatcamTools/ToolDistanceMin.py:73 flatcamTools/ToolDistanceMin.py:108 msgid "This is the point to point Euclidean distance." msgstr "C'est la distance euclidienne de point à point." -#: AppTools/ToolDistanceMin.py:74 +#: flatcamTools/ToolDistanceMin.py:75 msgid "Half Point" msgstr "Demi point" -#: AppTools/ToolDistanceMin.py:75 AppTools/ToolDistanceMin.py:112 +#: flatcamTools/ToolDistanceMin.py:76 flatcamTools/ToolDistanceMin.py:113 msgid "This is the middle point of the point to point Euclidean distance." msgstr "C'est le point central de la distance euclidienne point à point." -#: AppTools/ToolDistanceMin.py:117 +#: flatcamTools/ToolDistanceMin.py:118 msgid "Jump to Half Point" msgstr "Aller au demi point" -#: AppTools/ToolDistanceMin.py:154 +#: flatcamTools/ToolDistanceMin.py:155 msgid "" "Select two objects and no more, to measure the distance between them ..." msgstr "" "Sélectionnez deux objets et pas plus, pour mesurer la distance qui les " "sépare ..." -#: AppTools/ToolDistanceMin.py:195 AppTools/ToolDistanceMin.py:216 -#: AppTools/ToolDistanceMin.py:225 AppTools/ToolDistanceMin.py:246 +#: flatcamTools/ToolDistanceMin.py:196 flatcamTools/ToolDistanceMin.py:217 +#: flatcamTools/ToolDistanceMin.py:226 flatcamTools/ToolDistanceMin.py:247 msgid "Select two objects and no more. Currently the selection has objects: " -msgstr "Ne sélectionnez pas plus de 2 objets. Nombres de sélections en cours " +msgstr "" +"Sélectionnez deux objets et pas plus. Actuellement, la sélection a des " +"objets: " -#: AppTools/ToolDistanceMin.py:293 +#: flatcamTools/ToolDistanceMin.py:294 msgid "Objects intersects or touch at" msgstr "Les objets se croisent ou se touchent à" -#: AppTools/ToolDistanceMin.py:299 +#: flatcamTools/ToolDistanceMin.py:300 msgid "Jumped to the half point between the two selected objects" msgstr "Sauté au demi-point entre les deux objets sélectionnés" -#: AppTools/ToolEtchCompensation.py:75 AppTools/ToolInvertGerber.py:74 -msgid "Gerber object that will be inverted." -msgstr "Objet Gerber qui sera inversé." - -#: AppTools/ToolEtchCompensation.py:86 -msgid "Utilities" -msgstr "Utilitaires" - -#: AppTools/ToolEtchCompensation.py:87 -msgid "Conversion utilities" -msgstr "Utilitaires de conversion" - -#: AppTools/ToolEtchCompensation.py:92 -msgid "Oz to Microns" -msgstr "Oz en Microns" - -#: AppTools/ToolEtchCompensation.py:94 -msgid "" -"Will convert from oz thickness to microns [um].\n" -"Can use formulas with operators: /, *, +, -, %, .\n" -"The real numbers use the dot decimals separator." -msgstr "" -"Convertira de l'épaisseur de l'oz en microns [um].\n" -"Peut utiliser des formules avec des opérateurs: /, *, +, -,%,.\n" -"Les nombres réels utilisent le séparateur de décimales de points." - -#: AppTools/ToolEtchCompensation.py:103 -msgid "Oz value" -msgstr "Valeur en oz" - -#: AppTools/ToolEtchCompensation.py:105 AppTools/ToolEtchCompensation.py:126 -msgid "Microns value" -msgstr "Valeur en microns" - -#: AppTools/ToolEtchCompensation.py:113 -msgid "Mils to Microns" -msgstr "Mils en Microns" - -#: AppTools/ToolEtchCompensation.py:115 -msgid "" -"Will convert from mils to microns [um].\n" -"Can use formulas with operators: /, *, +, -, %, .\n" -"The real numbers use the dot decimals separator." -msgstr "" -"Convertira de mils en microns [um].\n" -"Peut utiliser des formules avec des opérateurs: /, *, +, -,%,.\n" -"Les nombres réels utilisent le séparateur de décimales de points." - -#: AppTools/ToolEtchCompensation.py:124 -msgid "Mils value" -msgstr "Valeur en millièmes" - -#: AppTools/ToolEtchCompensation.py:139 AppTools/ToolInvertGerber.py:86 -msgid "Parameters for this tool" -msgstr "Paramètres pour cet outil" - -#: AppTools/ToolEtchCompensation.py:144 -msgid "Copper Thickness" -msgstr "Épaisseur de cuivre" - -#: AppTools/ToolEtchCompensation.py:146 -msgid "" -"The thickness of the copper foil.\n" -"In microns [um]." -msgstr "" -"L'épaisseur de la feuille de cuivre.\n" -"En microns [um]." - -#: AppTools/ToolEtchCompensation.py:157 -msgid "Ratio" -msgstr "Rapport" - -#: AppTools/ToolEtchCompensation.py:159 -msgid "" -"The ratio of lateral etch versus depth etch.\n" -"Can be:\n" -"- custom -> the user will enter a custom value\n" -"- preselection -> value which depends on a selection of etchants" -msgstr "" -"Le rapport de la gravure latérale par rapport à la gravure en profondeur.\n" -"Peut être:\n" -"- personnalisé -> l'utilisateur entrera une valeur personnalisée\n" -"- présélection -> valeur qui dépend d'une sélection d'agents de gravure" - -#: AppTools/ToolEtchCompensation.py:165 -msgid "Etch Factor" -msgstr "Facteur de gravure" - -#: AppTools/ToolEtchCompensation.py:166 -msgid "Etchants list" -msgstr "Liste des marchands" - -#: AppTools/ToolEtchCompensation.py:167 -msgid "Manual offset" -msgstr "Décalage manuel" - -#: AppTools/ToolEtchCompensation.py:174 AppTools/ToolEtchCompensation.py:179 -msgid "Etchants" -msgstr "Etchants" - -#: AppTools/ToolEtchCompensation.py:176 -msgid "A list of etchants." -msgstr "Une liste des agents de gravure." - -#: AppTools/ToolEtchCompensation.py:180 -msgid "Alkaline baths" -msgstr "Bains alcalins" - -#: AppTools/ToolEtchCompensation.py:186 -msgid "Etch factor" -msgstr "Facteur de gravure" - -#: AppTools/ToolEtchCompensation.py:188 -msgid "" -"The ratio between depth etch and lateral etch .\n" -"Accepts real numbers and formulas using the operators: /,*,+,-,%" -msgstr "" -"Le rapport entre la gravure en profondeur et la gravure latérale.\n" -"Accepte les nombres réels et les formules en utilisant les opérateurs: /, *, " -"+, -,%" - -#: AppTools/ToolEtchCompensation.py:192 -msgid "Real number or formula" -msgstr "Nombre réel ou formule" - -#: AppTools/ToolEtchCompensation.py:193 -msgid "Etch_factor" -msgstr "Facteur de gravure" - -#: AppTools/ToolEtchCompensation.py:201 -msgid "" -"Value with which to increase or decrease (buffer)\n" -"the copper features. In microns [um]." -msgstr "" -"Valeur avec laquelle augmenter ou diminuer (tampon)\n" -"les caractéristiques de cuivre. En microns [um]." - -#: AppTools/ToolEtchCompensation.py:225 -msgid "Compensate" -msgstr "Compenser" - -#: AppTools/ToolEtchCompensation.py:227 -msgid "" -"Will increase the copper features thickness to compensate the lateral etch." -msgstr "" -"Augmentera l'épaisseur des éléments en cuivre pour compenser la gravure " -"latérale." - -#: AppTools/ToolExtractDrills.py:29 AppTools/ToolExtractDrills.py:295 +#: flatcamTools/ToolExtractDrills.py:29 flatcamTools/ToolExtractDrills.py:295 msgid "Extract Drills" msgstr "Extraire des forets" -#: AppTools/ToolExtractDrills.py:62 +#: flatcamTools/ToolExtractDrills.py:62 msgid "Gerber from which to extract drill holes" msgstr "Gerber d'où extraire les trous de forage" -#: AppTools/ToolExtractDrills.py:297 +#: flatcamTools/ToolExtractDrills.py:297 msgid "Extract drills from a given Gerber file." msgstr "Extraire les trous de forage d'un fichier Gerber donné." -#: AppTools/ToolExtractDrills.py:478 AppTools/ToolExtractDrills.py:563 -#: AppTools/ToolExtractDrills.py:648 +#: flatcamTools/ToolExtractDrills.py:478 flatcamTools/ToolExtractDrills.py:563 +#: flatcamTools/ToolExtractDrills.py:648 msgid "No drills extracted. Try different parameters." msgstr "Aucun trou de forage extrait. Essayez différents paramètres." -#: AppTools/ToolFiducials.py:56 +#: flatcamTools/ToolFiducials.py:56 msgid "Fiducials Coordinates" msgstr "Coordonnées de Fiducials" -#: AppTools/ToolFiducials.py:58 +#: flatcamTools/ToolFiducials.py:58 msgid "" "A table with the fiducial points coordinates,\n" "in the format (x, y)." @@ -14323,7 +15999,11 @@ msgstr "" "Un tableau avec les coordonnées des points de repère,\n" "au format (x, y)." -#: AppTools/ToolFiducials.py:194 +#: flatcamTools/ToolFiducials.py:99 +msgid "Top Right" +msgstr "En haut à droite" + +#: flatcamTools/ToolFiducials.py:191 msgid "" "- 'Auto' - automatic placement of fiducials in the corners of the bounding " "box.\n" @@ -14333,31 +16013,31 @@ msgstr "" "sélection.\n" "- «Manuel» - placement manuel des fiduciaires." -#: AppTools/ToolFiducials.py:240 -msgid "Thickness of the line that makes the fiducial." -msgstr "Épaisseur de la ligne qui rend le fiducial." +#: flatcamTools/ToolFiducials.py:259 +msgid "Copper Gerber" +msgstr "Gerber cuivré" -#: AppTools/ToolFiducials.py:271 +#: flatcamTools/ToolFiducials.py:268 msgid "Add Fiducial" msgstr "Ajouter Fiducial" -#: AppTools/ToolFiducials.py:273 +#: flatcamTools/ToolFiducials.py:270 msgid "Will add a polygon on the copper layer to serve as fiducial." msgstr "Ajoutera un polygone sur la couche de cuivre pour servir de repère." -#: AppTools/ToolFiducials.py:289 +#: flatcamTools/ToolFiducials.py:286 msgid "Soldermask Gerber" msgstr "Soldermask Gerber" -#: AppTools/ToolFiducials.py:291 +#: flatcamTools/ToolFiducials.py:288 msgid "The Soldermask Gerber object." msgstr "L'objet Soldermask Gerber." -#: AppTools/ToolFiducials.py:303 +#: flatcamTools/ToolFiducials.py:300 msgid "Add Soldermask Opening" msgstr "Ajouter une ouverture de Soldermask" -#: AppTools/ToolFiducials.py:305 +#: flatcamTools/ToolFiducials.py:302 msgid "" "Will add a polygon on the soldermask layer\n" "to serve as fiducial opening.\n" @@ -14369,33 +16049,33 @@ msgstr "" "Le diamètre est toujours le double du diamètre\n" "pour le cuivre fiducial." -#: AppTools/ToolFiducials.py:520 +#: flatcamTools/ToolFiducials.py:516 msgid "Click to add first Fiducial. Bottom Left..." msgstr "Cliquez pour ajouter le premier Fiducial. En bas à gauche..." -#: AppTools/ToolFiducials.py:784 +#: flatcamTools/ToolFiducials.py:780 msgid "Click to add the last fiducial. Top Right..." msgstr "Cliquez pour ajouter la dernière fiducie. En haut à droite..." -#: AppTools/ToolFiducials.py:789 +#: flatcamTools/ToolFiducials.py:785 msgid "Click to add the second fiducial. Top Left or Bottom Right..." msgstr "" "Cliquez pour ajouter le deuxième repère. En haut à gauche ou en bas à " "droite ..." -#: AppTools/ToolFiducials.py:792 AppTools/ToolFiducials.py:801 +#: flatcamTools/ToolFiducials.py:788 flatcamTools/ToolFiducials.py:797 msgid "Done. All fiducials have been added." msgstr "Terminé. Tous les fiduciaux ont été ajoutés." -#: AppTools/ToolFiducials.py:878 +#: flatcamTools/ToolFiducials.py:874 msgid "Fiducials Tool exit." msgstr "Sortie de l'outil Fiducials." -#: AppTools/ToolFilm.py:42 +#: flatcamTools/ToolFilm.py:42 msgid "Film PCB" msgstr "Film PCB" -#: AppTools/ToolFilm.py:73 +#: flatcamTools/ToolFilm.py:78 msgid "" "Specify the type of object for which to create the film.\n" "The object can be of type: Gerber or Geometry.\n" @@ -14407,7 +16087,15 @@ msgstr "" "La sélection ici décide du type d’objets qui seront\n" "dans la liste déroulante d'objets Film." -#: AppTools/ToolFilm.py:96 +#: flatcamTools/ToolFilm.py:92 +msgid "Film Object" +msgstr "Objet de Film" + +#: flatcamTools/ToolFilm.py:94 +msgid "Object for which to create the film." +msgstr "Objet pour lequel créer le film." + +#: flatcamTools/ToolFilm.py:115 msgid "" "Specify the type of object to be used as an container for\n" "film creation. It can be: Gerber or Geometry type.The selection here decide " @@ -14419,15 +16107,31 @@ msgstr "" "sélection ici détermine le type d'objets qui seront\n" "dans la liste déroulante Objet de Box." -#: AppTools/ToolFilm.py:256 +#: flatcamTools/ToolFilm.py:129 +msgid "Box Object" +msgstr "Objet Box" + +#: flatcamTools/ToolFilm.py:131 +msgid "" +"The actual object that is used as container for the\n" +" selected object for which we create the film.\n" +"Usually it is the PCB outline but it can be also the\n" +"same object for which the film is created." +msgstr "" +"L'objet réel qui utilise un conteneur pour la\n" +"  objet sélectionné pour lequel nous créons le film.\n" +"Habituellement, c’est le contour du PCB, mais cela peut aussi être le\n" +"même objet pour lequel le film est créé." + +#: flatcamTools/ToolFilm.py:273 msgid "Film Parameters" msgstr "Paramètres du Film" -#: AppTools/ToolFilm.py:317 +#: flatcamTools/ToolFilm.py:334 msgid "Punch drill holes" msgstr "Percer des trous" -#: AppTools/ToolFilm.py:318 +#: flatcamTools/ToolFilm.py:335 msgid "" "When checked the generated film will have holes in pads when\n" "the generated film is positive. This is done to help drilling,\n" @@ -14437,11 +16141,11 @@ msgstr "" "le film généré est positif. Ceci est fait pour aider au forage,\n" "lorsque cela est fait manuellement." -#: AppTools/ToolFilm.py:336 +#: flatcamTools/ToolFilm.py:353 msgid "Source" msgstr "La source" -#: AppTools/ToolFilm.py:338 +#: flatcamTools/ToolFilm.py:355 msgid "" "The punch hole source can be:\n" "- Excellon -> an Excellon holes center will serve as reference.\n" @@ -14451,34 +16155,34 @@ msgstr "" "- Excellon -> un centre Excellon trous servira de référence.\n" "- Pad centre -> essayera d'utiliser le centre des pads comme référence." -#: AppTools/ToolFilm.py:343 +#: flatcamTools/ToolFilm.py:360 msgid "Pad center" msgstr "Centre pad" -#: AppTools/ToolFilm.py:348 +#: flatcamTools/ToolFilm.py:365 msgid "Excellon Obj" msgstr "Excellon objet" -#: AppTools/ToolFilm.py:350 +#: flatcamTools/ToolFilm.py:367 msgid "" "Remove the geometry of Excellon from the Film to create the holes in pads." msgstr "" "Supprimez la géométrie d’Excellon du film pour créer les trous dans les pads." -#: AppTools/ToolFilm.py:364 +#: flatcamTools/ToolFilm.py:381 msgid "Punch Size" msgstr "Taille du poinçon" -#: AppTools/ToolFilm.py:365 +#: flatcamTools/ToolFilm.py:382 msgid "The value here will control how big is the punch hole in the pads." msgstr "" "La valeur ici contrôlera la taille du trou de perforation dans les pads." -#: AppTools/ToolFilm.py:485 +#: flatcamTools/ToolFilm.py:502 msgid "Save Film" msgstr "Enregistrer le Film" -#: AppTools/ToolFilm.py:487 +#: flatcamTools/ToolFilm.py:504 msgid "" "Create a Film for the selected object, within\n" "the specified box. Does not create a new \n" @@ -14490,7 +16194,7 @@ msgstr "" "Objet FlatCAM, mais enregistrez-le directement dans le\n" "format sélectionné." -#: AppTools/ToolFilm.py:649 +#: flatcamTools/ToolFilm.py:664 msgid "" "Using the Pad center does not work on Geometry objects. Only a Gerber object " "has pads." @@ -14498,36 +16202,36 @@ msgstr "" "L'utilisation du pavé central ne fonctionne pas avec les objets " "géométriques. Seul un objet Gerber a des pads." -#: AppTools/ToolFilm.py:659 +#: flatcamTools/ToolFilm.py:674 msgid "No FlatCAM object selected. Load an object for Film and retry." msgstr "" "Aucun objet FlatCAM sélectionné. Chargez un objet pour Film et réessayez." -#: AppTools/ToolFilm.py:666 +#: flatcamTools/ToolFilm.py:681 msgid "No FlatCAM object selected. Load an object for Box and retry." msgstr "" "Aucun objet FlatCAM sélectionné. Chargez un objet pour Box et réessayez." -#: AppTools/ToolFilm.py:670 +#: flatcamTools/ToolFilm.py:685 msgid "No FlatCAM object selected." msgstr "Aucun objet FlatCAM sélectionné." -#: AppTools/ToolFilm.py:681 +#: flatcamTools/ToolFilm.py:696 msgid "Generating Film ..." msgstr "Génération de Film ..." -#: AppTools/ToolFilm.py:730 AppTools/ToolFilm.py:734 +#: flatcamTools/ToolFilm.py:745 flatcamTools/ToolFilm.py:749 msgid "Export positive film" msgstr "Exporter un film positif" -#: AppTools/ToolFilm.py:767 +#: flatcamTools/ToolFilm.py:782 msgid "" "No Excellon object selected. Load an object for punching reference and retry." msgstr "" "Aucun objet Excellon sélectionné. Charger un objet pour la référence de " "poinçonnage et réessayer." -#: AppTools/ToolFilm.py:791 +#: flatcamTools/ToolFilm.py:806 msgid "" " Could not generate punched hole film because the punch hole sizeis bigger " "than some of the apertures in the Gerber object." @@ -14535,7 +16239,7 @@ msgstr "" " Impossible de générer un film perforé car la taille du trou perforé est " "plus grande que certaines des ouvertures de l’objet Gerber." -#: AppTools/ToolFilm.py:803 +#: flatcamTools/ToolFilm.py:818 msgid "" "Could not generate punched hole film because the punch hole sizeis bigger " "than some of the apertures in the Gerber object." @@ -14543,7 +16247,7 @@ msgstr "" "Impossible de générer un film perforé car la taille du trou perforé est plus " "grande que certaines des ouvertures de l’objet Gerber." -#: AppTools/ToolFilm.py:821 +#: flatcamTools/ToolFilm.py:836 msgid "" "Could not generate punched hole film because the newly created object " "geometry is the same as the one in the source object geometry..." @@ -14551,32 +16255,32 @@ msgstr "" "Impossible de générer un film perforé car la géométrie d'objet nouvellement " "créée est identique à celle de la géométrie de l'objet source ..." -#: AppTools/ToolFilm.py:876 AppTools/ToolFilm.py:880 +#: flatcamTools/ToolFilm.py:891 flatcamTools/ToolFilm.py:895 msgid "Export negative film" msgstr "Exporter un film négatif" -#: AppTools/ToolFilm.py:941 AppTools/ToolFilm.py:1124 -#: AppTools/ToolPanelize.py:441 +#: flatcamTools/ToolFilm.py:956 flatcamTools/ToolFilm.py:1139 +#: flatcamTools/ToolPanelize.py:430 msgid "No object Box. Using instead" msgstr "Aucune Boîte d'objet. Utiliser à la place" -#: AppTools/ToolFilm.py:1057 AppTools/ToolFilm.py:1237 +#: flatcamTools/ToolFilm.py:1072 flatcamTools/ToolFilm.py:1252 msgid "Film file exported to" msgstr "Fichier de film exporté vers" -#: AppTools/ToolFilm.py:1060 AppTools/ToolFilm.py:1240 +#: flatcamTools/ToolFilm.py:1075 flatcamTools/ToolFilm.py:1255 msgid "Generating Film ... Please wait." msgstr "Génération de film ... Veuillez patienter." -#: AppTools/ToolImage.py:24 +#: flatcamTools/ToolImage.py:24 msgid "Image as Object" msgstr "Image comme objet" -#: AppTools/ToolImage.py:33 +#: flatcamTools/ToolImage.py:33 msgid "Image to PCB" msgstr "Image au PCB" -#: AppTools/ToolImage.py:56 +#: flatcamTools/ToolImage.py:56 msgid "" "Specify the type of object to create from the image.\n" "It can be of type: Gerber or Geometry." @@ -14584,23 +16288,23 @@ msgstr "" "Spécifiez le type d'objet à créer à partir de l'image.\n" "Il peut être de type: Gerber ou Géométrie." -#: AppTools/ToolImage.py:65 +#: flatcamTools/ToolImage.py:65 msgid "DPI value" msgstr "Valeur DPI" -#: AppTools/ToolImage.py:66 +#: flatcamTools/ToolImage.py:66 msgid "Specify a DPI value for the image." msgstr "Spécifiez une valeur DPI pour l'image." -#: AppTools/ToolImage.py:72 +#: flatcamTools/ToolImage.py:72 msgid "Level of detail" msgstr "Niveau de détail" -#: AppTools/ToolImage.py:81 +#: flatcamTools/ToolImage.py:81 msgid "Image type" msgstr "Type d'image" -#: AppTools/ToolImage.py:83 +#: flatcamTools/ToolImage.py:83 msgid "" "Choose a method for the image interpretation.\n" "B/W means a black & white image. Color means a colored image." @@ -14609,12 +16313,12 @@ msgstr "" "N / B signifie une image en noir et blanc. Couleur signifie une image " "colorée." -#: AppTools/ToolImage.py:92 AppTools/ToolImage.py:107 AppTools/ToolImage.py:120 -#: AppTools/ToolImage.py:133 +#: flatcamTools/ToolImage.py:92 flatcamTools/ToolImage.py:107 +#: flatcamTools/ToolImage.py:120 flatcamTools/ToolImage.py:133 msgid "Mask value" msgstr "Valeur du masque" -#: AppTools/ToolImage.py:94 +#: flatcamTools/ToolImage.py:94 msgid "" "Mask for monochrome image.\n" "Takes values between [0 ... 255].\n" @@ -14630,7 +16334,7 @@ msgstr "" "0 signifie pas de détail et 255 signifie tout\n" "(qui est totalement noir)." -#: AppTools/ToolImage.py:109 +#: flatcamTools/ToolImage.py:109 msgid "" "Mask for RED color.\n" "Takes values between [0 ... 255].\n" @@ -14642,7 +16346,7 @@ msgstr "" "Décide du niveau de détails à inclure\n" "dans la géométrie résultante." -#: AppTools/ToolImage.py:122 +#: flatcamTools/ToolImage.py:122 msgid "" "Mask for GREEN color.\n" "Takes values between [0 ... 255].\n" @@ -14654,7 +16358,7 @@ msgstr "" "Décide du niveau de détails à inclure\n" "dans la géométrie résultante." -#: AppTools/ToolImage.py:135 +#: flatcamTools/ToolImage.py:135 msgid "" "Mask for BLUE color.\n" "Takes values between [0 ... 255].\n" @@ -14666,45 +16370,39 @@ msgstr "" "Décide du niveau de détails à inclure\n" "dans la géométrie résultante." -#: AppTools/ToolImage.py:143 +#: flatcamTools/ToolImage.py:143 msgid "Import image" msgstr "Importer une image" -#: AppTools/ToolImage.py:145 +#: flatcamTools/ToolImage.py:145 msgid "Open a image of raster type and then import it in FlatCAM." msgstr "Ouvrez une image de type raster, puis importez-la dans FlatCAM." -#: AppTools/ToolImage.py:182 +#: flatcamTools/ToolImage.py:182 msgid "Image Tool" msgstr "Outil Image" -#: AppTools/ToolImage.py:234 AppTools/ToolImage.py:237 +#: flatcamTools/ToolImage.py:234 flatcamTools/ToolImage.py:237 msgid "Import IMAGE" msgstr "Importer une Image" -#: AppTools/ToolImage.py:277 App_Main.py:8360 App_Main.py:8407 -msgid "" -"Not supported type is picked as parameter. Only Geometry and Gerber are " -"supported" -msgstr "" -"Type non pris en charge sélectionné en tant que paramètre. Seuls Géométrie " -"et Gerber sont supportés" - -#: AppTools/ToolImage.py:285 +#: flatcamTools/ToolImage.py:285 msgid "Importing Image" msgstr "Importation d'Image" -#: AppTools/ToolImage.py:297 AppTools/ToolPDF.py:154 App_Main.py:8385 -#: App_Main.py:8431 App_Main.py:8495 App_Main.py:8562 App_Main.py:8628 -#: App_Main.py:8693 App_Main.py:8750 -msgid "Opened" -msgstr "Ouvrir" +#: flatcamTools/ToolInvertGerber.py:74 +msgid "Gerber object that will be inverted." +msgstr "Objet Gerber qui sera inversé." -#: AppTools/ToolInvertGerber.py:126 +#: flatcamTools/ToolInvertGerber.py:83 +msgid "Parameters for this tool" +msgstr "Paramètres pour cet outil" + +#: flatcamTools/ToolInvertGerber.py:123 msgid "Invert Gerber" msgstr "Inverser Gerber" -#: AppTools/ToolInvertGerber.py:128 +#: flatcamTools/ToolInvertGerber.py:125 msgid "" "Will invert the Gerber object: areas that have copper\n" "will be empty of copper and previous empty area will be\n" @@ -14714,15 +16412,55 @@ msgstr "" "sera vide de cuivre et la zone vide précédente sera\n" "rempli de cuivre." -#: AppTools/ToolInvertGerber.py:187 +#: flatcamTools/ToolInvertGerber.py:184 msgid "Invert Tool" msgstr "Outil Inverser" -#: AppTools/ToolIsolation.py:96 -msgid "Gerber object for isolation routing." -msgstr "Objet Gerber pour le routage d'isolement." +#: flatcamTools/ToolMove.py:102 +msgid "MOVE: Click on the Start point ..." +msgstr "Déplacer: Cliquez sur le point de départ ..." -#: AppTools/ToolIsolation.py:120 AppTools/ToolNCC.py:122 +#: flatcamTools/ToolMove.py:113 +msgid "Cancelled. No object(s) to move." +msgstr "Annulé. Aucun objet à déplacer." + +#: flatcamTools/ToolMove.py:140 +msgid "MOVE: Click on the Destination point ..." +msgstr "Déplacer: Cliquez sur le point de destination ..." + +#: flatcamTools/ToolMove.py:163 +msgid "Moving..." +msgstr "En mouvement..." + +#: flatcamTools/ToolMove.py:166 +msgid "No object(s) selected." +msgstr "Aucun objet sélectionné." + +#: flatcamTools/ToolMove.py:221 +msgid "Error when mouse left click." +msgstr "Erreur lorsque le clic gauche de la souris." + +#: flatcamTools/ToolNCC.py:42 +msgid "Non-Copper Clearing" +msgstr "Compensation de la NCC" + +#: flatcamTools/ToolNCC.py:88 +msgid "" +"Specify the type of object to be cleared of excess copper.\n" +"It can be of type: Gerber or Geometry.\n" +"What is selected here will dictate the kind\n" +"of objects that will populate the 'Object' combobox." +msgstr "" +"Spécifiez le type d'objet à éliminer des excès de cuivre.\n" +"Il peut être de type: Gerber ou Géométrie.\n" +"Ce qui est sélectionné ici dictera le genre\n" +"des objets qui vont remplir la liste déroulante 'Object'." + +#: flatcamTools/ToolNCC.py:110 +msgid "Object to be cleared of excess copper." +msgstr "Objet à nettoyer de l'excès de cuivre." + +#: flatcamTools/ToolNCC.py:122 msgid "" "Tools pool from which the algorithm\n" "will pick the ones used for copper clearing." @@ -14730,24 +16468,24 @@ msgstr "" "Pool d'outils à partir duquel l'algorithme\n" "choisira ceux utilisés pour le nettoyage du cuivre." -#: AppTools/ToolIsolation.py:136 +#: flatcamTools/ToolNCC.py:138 msgid "" "This is the Tool Number.\n" -"Isolation routing will start with the tool with the biggest \n" +"Non copper clearing will start with the tool with the biggest \n" "diameter, continuing until there are no more tools.\n" -"Only tools that create Isolation geometry will still be present\n" +"Only tools that create NCC clearing geometry will still be present\n" "in the resulting geometry. This is because with some tools\n" -"this function will not be able to create routing geometry." +"this function will not be able to create painting geometry." msgstr "" -"Il s'agit du numéro d'outil.\n" -"Le routage d'isolement commencera par l'outil avec le plus grand\n" -"diamètre, en continuant jusqu'à ce qu'il n'y ait plus d'outils.\n" -"Seuls les outils qui créent la géométrie d'isolement seront toujours " -"présents\n" -"dans la géométrie résultante. En effet, avec certains outils\n" -"cette fonction ne pourra pas créer de géométrie de routage." +"C'est le numéro de l'outil.\n" +"Le dégagement sans cuivre commencera par l'outil avec le plus grand\n" +"diamètre, jusqu'à ce qu'il n'y ait plus d'outils.\n" +"Seuls les outils créant une géométrie de compensation NCC seront toujours " +"présents.\n" +"dans la géométrie résultante. C’est parce qu’avec certains outils\n" +"cette fonction ne pourra pas créer de géométrie de peinture." -#: AppTools/ToolIsolation.py:144 AppTools/ToolNCC.py:146 +#: flatcamTools/ToolNCC.py:146 msgid "" "Tool Diameter. It's value (in current FlatCAM units)\n" "is the cut width into the material." @@ -14755,7 +16493,7 @@ msgstr "" "Diamètre de l'outil. C'est sa valeur (en unités FlatCAM actuelles)\n" "est la largeur de coupe dans le matériau." -#: AppTools/ToolIsolation.py:148 AppTools/ToolNCC.py:150 +#: flatcamTools/ToolNCC.py:150 msgid "" "The Tool Type (TT) can be:\n" "- Circular with 1 ... 4 teeth -> it is informative only. Being circular,\n" @@ -14784,7 +16522,7 @@ msgstr "" "- Forme en V -> il désactivera le paramètre Z-Cut dans la forme d'interface " "utilisateur de géométrie résultante\n" "et activer deux champs de formulaire d'interface utilisateur supplémentaires " -"dans la géométrie résultante: V-Tip Diam et\n" +"dans la géométrie résultante: V-Tip Dia et\n" "Angle V-Tip. Le réglage de ces deux valeurs ajustera le paramètre Z-Cut tel\n" "car la largeur de coupe dans le matériau sera égale à la valeur dans le " "diamètre de l'outil\n" @@ -14793,8 +16531,16 @@ msgstr "" "d'opération\n" "dans la géométrie résultante comme isolement." -#: AppTools/ToolIsolation.py:300 AppTools/ToolNCC.py:318 -#: AppTools/ToolPaint.py:300 AppTools/ToolSolderPaste.py:135 +#: flatcamTools/ToolNCC.py:296 flatcamTools/ToolPaint.py:279 +msgid "" +"Add a new tool to the Tool Table\n" +"with the diameter specified above." +msgstr "" +"Ajouter un nouvel outil à la table d'outils\n" +"avec le diamètre spécifié ci-dessus." + +#: flatcamTools/ToolNCC.py:318 flatcamTools/ToolPaint.py:301 +#: flatcamTools/ToolSolderPaste.py:130 msgid "" "Delete a selection of tools in the Tool Table\n" "by first selecting a row(s) in the Tool Table." @@ -14802,23 +16548,7 @@ msgstr "" "Supprimer une sélection d'outils dans la table d'outils\n" "en sélectionnant d’abord une ou plusieurs lignes dans la table d’outils." -#: AppTools/ToolIsolation.py:467 -msgid "" -"Specify the type of object to be excepted from isolation.\n" -"It can be of type: Gerber or Geometry.\n" -"What is selected here will dictate the kind\n" -"of objects that will populate the 'Object' combobox." -msgstr "" -"Spécifiez le type d'objet à exclure de l'isolation.\n" -"Il peut être de type: Gerber ou Géométrie.\n" -"Ce qui est sélectionné ici dictera le genre\n" -"des objets qui vont remplir la liste déroulante 'Object'." - -#: AppTools/ToolIsolation.py:477 -msgid "Object whose area will be removed from isolation geometry." -msgstr "Objet dont l'aire sera retirée de la géométrie d'isolation." - -#: AppTools/ToolIsolation.py:513 AppTools/ToolNCC.py:554 +#: flatcamTools/ToolNCC.py:554 msgid "" "The type of FlatCAM object to be used as non copper clearing reference.\n" "It can be Gerber, Excellon or Geometry." @@ -14826,330 +16556,123 @@ msgstr "" "Type d'objet FlatCAM à utiliser comme référence d'effacement non en cuivre.\n" "Ce peut être Gerber, Excellon ou Géométrie." -#: AppTools/ToolIsolation.py:559 -msgid "Generate Isolation Geometry" -msgstr "Générer une géométrie d'isolation" +#: flatcamTools/ToolNCC.py:597 flatcamTools/ToolPaint.py:537 +msgid "Generate Geometry" +msgstr "Générer de la Géométrie" -#: AppTools/ToolIsolation.py:567 -msgid "" -"Create a Geometry object with toolpaths to cut \n" -"isolation outside, inside or on both sides of the\n" -"object. For a Gerber object outside means outside\n" -"of the Gerber feature and inside means inside of\n" -"the Gerber feature, if possible at all. This means\n" -"that only if the Gerber feature has openings inside, they\n" -"will be isolated. If what is wanted is to cut isolation\n" -"inside the actual Gerber feature, use a negative tool\n" -"diameter above." -msgstr "" -"Créer un objet Géometrie avec des parcours à couper\n" -"isolement à l'extérieur, à l'intérieur ou des deux côtés du\n" -"objet. Pour un objet Gerber dehors signifie dehors\n" -"de la fonction Gerber et à l'intérieur des moyens à l'intérieur de\n" -"la fonction Gerber, si possible du tout. Ça signifie\n" -"que si la fonction Gerber a des ouvertures à l'intérieur, ils\n" -"sera isolé. Si ce qu'on veut, c'est couper l'isolement\n" -"à l'intérieur de la fonction Gerber, utilisez un outil négatif\n" -"diamètre ci-dessus." - -#: AppTools/ToolIsolation.py:1266 AppTools/ToolIsolation.py:1426 -#: AppTools/ToolNCC.py:932 AppTools/ToolNCC.py:1449 AppTools/ToolPaint.py:857 -#: AppTools/ToolSolderPaste.py:576 AppTools/ToolSolderPaste.py:901 -#: App_Main.py:4210 -msgid "Please enter a tool diameter with non-zero value, in Float format." -msgstr "" -"Veuillez saisir un diamètre d’outil avec une valeur non nulle, au format " -"réel." - -#: AppTools/ToolIsolation.py:1270 AppTools/ToolNCC.py:936 -#: AppTools/ToolPaint.py:861 AppTools/ToolSolderPaste.py:580 App_Main.py:4214 -msgid "Adding Tool cancelled" -msgstr "Ajout d'outil annulé" - -#: AppTools/ToolIsolation.py:1420 AppTools/ToolNCC.py:1443 -#: AppTools/ToolPaint.py:1203 AppTools/ToolSolderPaste.py:896 +#: flatcamTools/ToolNCC.py:1425 flatcamTools/ToolPaint.py:1184 +#: flatcamTools/ToolSolderPaste.py:888 msgid "Please enter a tool diameter to add, in Float format." msgstr "Veuillez saisir un diamètre d'outil à ajouter, au format réel." -#: AppTools/ToolIsolation.py:1451 AppTools/ToolIsolation.py:2959 -#: AppTools/ToolNCC.py:1474 AppTools/ToolNCC.py:4079 AppTools/ToolPaint.py:1227 -#: AppTools/ToolPaint.py:3628 AppTools/ToolSolderPaste.py:925 +#: flatcamTools/ToolNCC.py:1456 flatcamTools/ToolNCC.py:4013 +#: flatcamTools/ToolPaint.py:1208 flatcamTools/ToolPaint.py:3603 +#: flatcamTools/ToolSolderPaste.py:917 msgid "Cancelled. Tool already in Tool Table." msgstr "Annulé. Outil déjà dans la table d'outils." -#: AppTools/ToolIsolation.py:1458 AppTools/ToolIsolation.py:2977 -#: AppTools/ToolNCC.py:1481 AppTools/ToolNCC.py:4096 AppTools/ToolPaint.py:1232 -#: AppTools/ToolPaint.py:3645 +#: flatcamTools/ToolNCC.py:1463 flatcamTools/ToolNCC.py:4030 +#: flatcamTools/ToolPaint.py:1213 flatcamTools/ToolPaint.py:3620 msgid "New tool added to Tool Table." msgstr "Nouvel outil ajouté à la table d'outils." -#: AppTools/ToolIsolation.py:1502 AppTools/ToolNCC.py:1525 -#: AppTools/ToolPaint.py:1276 +#: flatcamTools/ToolNCC.py:1507 flatcamTools/ToolPaint.py:1257 msgid "Tool from Tool Table was edited." msgstr "L'outil de la table d'outils a été modifié." -#: AppTools/ToolIsolation.py:1514 AppTools/ToolNCC.py:1537 -#: AppTools/ToolPaint.py:1288 AppTools/ToolSolderPaste.py:986 +#: flatcamTools/ToolNCC.py:1519 flatcamTools/ToolPaint.py:1269 +#: flatcamTools/ToolSolderPaste.py:978 msgid "Cancelled. New diameter value is already in the Tool Table." msgstr "" "Annulé. La nouvelle valeur de diamètre est déjà dans la table d'outils." -#: AppTools/ToolIsolation.py:1566 AppTools/ToolNCC.py:1589 -#: AppTools/ToolPaint.py:1386 +#: flatcamTools/ToolNCC.py:1571 flatcamTools/ToolPaint.py:1367 msgid "Delete failed. Select a tool to delete." msgstr "La suppression a échoué. Sélectionnez un outil à supprimer." -#: AppTools/ToolIsolation.py:1572 AppTools/ToolNCC.py:1595 -#: AppTools/ToolPaint.py:1392 +#: flatcamTools/ToolNCC.py:1577 flatcamTools/ToolPaint.py:1373 msgid "Tool(s) deleted from Tool Table." msgstr "Outil (s) supprimé (s) de la table d'outils." -#: AppTools/ToolIsolation.py:1620 -msgid "Isolating..." -msgstr "Isoler ..." - -#: AppTools/ToolIsolation.py:1654 -msgid "Failed to create Follow Geometry with tool diameter" -msgstr "Impossible de créer la géométrie de suivi avec le diamètre de l'outil" - -#: AppTools/ToolIsolation.py:1657 -msgid "Follow Geometry was created with tool diameter" -msgstr "La géométrie de suivi a été créée avec le diamètre de l'outil" - -#: AppTools/ToolIsolation.py:1698 -msgid "Click on a polygon to isolate it." -msgstr "Cliquez sur un polygone pour l'isoler." - -#: AppTools/ToolIsolation.py:1812 AppTools/ToolIsolation.py:1832 -#: AppTools/ToolIsolation.py:1967 AppTools/ToolIsolation.py:2138 -msgid "Subtracting Geo" -msgstr "Soustraction Geo" - -#: AppTools/ToolIsolation.py:1816 AppTools/ToolIsolation.py:1971 -#: AppTools/ToolIsolation.py:2142 -msgid "Intersecting Geo" -msgstr "La Géo entrecroisée" - -#: AppTools/ToolIsolation.py:1865 AppTools/ToolIsolation.py:2032 -#: AppTools/ToolIsolation.py:2199 -msgid "Empty Geometry in" -msgstr "Géométrie vide dans" - -#: AppTools/ToolIsolation.py:2041 -msgid "" -"Partial failure. The geometry was processed with all tools.\n" -"But there are still not-isolated geometry elements. Try to include a tool " -"with smaller diameter." -msgstr "" -"Échec partiel. La géométrie a été traitée avec tous les outils.\n" -"Mais il existe encore des éléments de géométrie non isolés. Essayez " -"d'inclure un outil de plus petit diamètre." - -#: AppTools/ToolIsolation.py:2044 -msgid "" -"The following are coordinates for the copper features that could not be " -"isolated:" -msgstr "" -"Voici les coordonnées des entités en cuivre qui n'ont pas pu être isolées:" - -#: AppTools/ToolIsolation.py:2356 AppTools/ToolIsolation.py:2465 -#: AppTools/ToolPaint.py:1535 -msgid "Added polygon" -msgstr "Polygone ajouté" - -#: AppTools/ToolIsolation.py:2357 AppTools/ToolIsolation.py:2467 -msgid "Click to add next polygon or right click to start isolation." -msgstr "" -"Cliquez pour ajouter le polygone suivant ou cliquez avec le bouton droit " -"pour démarrer l'isolement." - -#: AppTools/ToolIsolation.py:2369 AppTools/ToolPaint.py:1549 -msgid "Removed polygon" -msgstr "Polygone supprimé" - -#: AppTools/ToolIsolation.py:2370 -msgid "Click to add/remove next polygon or right click to start isolation." -msgstr "" -"Cliquez pour ajouter / supprimer le polygone suivant ou cliquez avec le " -"bouton droit pour démarrer l'isolement." - -#: AppTools/ToolIsolation.py:2375 AppTools/ToolPaint.py:1555 -msgid "No polygon detected under click position." -msgstr "Aucun polygone détecté sous la position du clic." - -#: AppTools/ToolIsolation.py:2401 AppTools/ToolPaint.py:1584 -msgid "List of single polygons is empty. Aborting." -msgstr "La liste des polygones simples est vide. Abandon." - -#: AppTools/ToolIsolation.py:2470 -msgid "No polygon in selection." -msgstr "Aucun polygone dans la sélection." - -#: AppTools/ToolIsolation.py:2498 AppTools/ToolNCC.py:1725 -#: AppTools/ToolPaint.py:1619 -msgid "Click the end point of the paint area." -msgstr "Cliquez sur le point final de la zone de peinture." - -#: AppTools/ToolIsolation.py:2916 AppTools/ToolNCC.py:4036 -#: AppTools/ToolPaint.py:3585 App_Main.py:5318 App_Main.py:5328 -msgid "Tool from DB added in Tool Table." -msgstr "Outil ajouté a base de données." - -#: AppTools/ToolMove.py:102 -msgid "MOVE: Click on the Start point ..." -msgstr "Déplacer: Cliquez sur le point de départ ..." - -#: AppTools/ToolMove.py:113 -msgid "Cancelled. No object(s) to move." -msgstr "Annulé. Aucun objet à déplacer." - -#: AppTools/ToolMove.py:140 -msgid "MOVE: Click on the Destination point ..." -msgstr "Déplacer: Cliquez sur le point de destination ..." - -#: AppTools/ToolMove.py:163 -msgid "Moving..." -msgstr "En mouvement..." - -#: AppTools/ToolMove.py:166 -msgid "No object(s) selected." -msgstr "Aucun objet sélectionné." - -#: AppTools/ToolMove.py:221 -msgid "Error when mouse left click." -msgstr "Erreur lorsque le clic gauche de la souris." - -#: AppTools/ToolNCC.py:42 -msgid "Non-Copper Clearing" -msgstr "Compensation de la NCC" - -#: AppTools/ToolNCC.py:86 AppTools/ToolPaint.py:79 -msgid "Obj Type" -msgstr "Type d'objet" - -#: AppTools/ToolNCC.py:88 -msgid "" -"Specify the type of object to be cleared of excess copper.\n" -"It can be of type: Gerber or Geometry.\n" -"What is selected here will dictate the kind\n" -"of objects that will populate the 'Object' combobox." -msgstr "" -"Spécifiez le type d'objet à éliminer des excès de cuivre.\n" -"Il peut être de type: Gerber ou Géométrie.\n" -"Ce qui est sélectionné ici dictera le genre\n" -"des objets qui vont remplir la liste déroulante 'Object'." - -#: AppTools/ToolNCC.py:110 -msgid "Object to be cleared of excess copper." -msgstr "Objet à nettoyer de l'excès de cuivre." - -#: AppTools/ToolNCC.py:138 -msgid "" -"This is the Tool Number.\n" -"Non copper clearing will start with the tool with the biggest \n" -"diameter, continuing until there are no more tools.\n" -"Only tools that create NCC clearing geometry will still be present\n" -"in the resulting geometry. This is because with some tools\n" -"this function will not be able to create painting geometry." -msgstr "" -"C'est le numéro de l'outil.\n" -"Le dégagement sans cuivre commencera par l'outil avec le plus grand\n" -"diamètre, jusqu'à ce qu'il n'y ait plus d'outils.\n" -"Seuls les outils créant une géométrie de compensation NCC seront toujours " -"présents.\n" -"dans la géométrie résultante. C’est parce qu’avec certains outils\n" -"cette fonction ne pourra pas créer de géométrie de peinture." - -#: AppTools/ToolNCC.py:597 AppTools/ToolPaint.py:536 -msgid "Generate Geometry" -msgstr "Générer de la Géométrie" - -#: AppTools/ToolNCC.py:1638 +#: flatcamTools/ToolNCC.py:1619 msgid "Wrong Tool Dia value format entered, use a number." -msgstr "Mauvais outil Format de valeur Diam entré, utilisez un nombre." +msgstr "Mauvais outil Format de valeur Dia entré, utilisez un nombre." -#: AppTools/ToolNCC.py:1649 AppTools/ToolPaint.py:1443 +#: flatcamTools/ToolNCC.py:1628 flatcamTools/ToolPaint.py:1424 msgid "No selected tools in Tool Table." msgstr "Aucun outil sélectionné dans la table d'outils." -#: AppTools/ToolNCC.py:2005 AppTools/ToolNCC.py:3024 +#: flatcamTools/ToolNCC.py:1704 flatcamTools/ToolPaint.py:1600 +msgid "Click the end point of the paint area." +msgstr "Cliquez sur le point final de la zone de peinture." + +#: flatcamTools/ToolNCC.py:1976 flatcamTools/ToolNCC.py:2964 msgid "NCC Tool. Preparing non-copper polygons." msgstr "Outil de la NCC. Préparer des polygones non en cuivre." -#: AppTools/ToolNCC.py:2064 AppTools/ToolNCC.py:3152 +#: flatcamTools/ToolNCC.py:2035 flatcamTools/ToolNCC.py:3092 msgid "NCC Tool. Calculate 'empty' area." msgstr "Outil de la NCC. Calculez la surface \"vide\"." -#: AppTools/ToolNCC.py:2083 AppTools/ToolNCC.py:2192 AppTools/ToolNCC.py:2207 -#: AppTools/ToolNCC.py:3165 AppTools/ToolNCC.py:3270 AppTools/ToolNCC.py:3285 -#: AppTools/ToolNCC.py:3551 AppTools/ToolNCC.py:3652 AppTools/ToolNCC.py:3667 +#: flatcamTools/ToolNCC.py:2054 flatcamTools/ToolNCC.py:2160 +#: flatcamTools/ToolNCC.py:2174 flatcamTools/ToolNCC.py:3105 +#: flatcamTools/ToolNCC.py:3210 flatcamTools/ToolNCC.py:3225 +#: flatcamTools/ToolNCC.py:3491 flatcamTools/ToolNCC.py:3592 +#: flatcamTools/ToolNCC.py:3607 msgid "Buffering finished" msgstr "Mise en mémoire tampon terminée" -#: AppTools/ToolNCC.py:2091 AppTools/ToolNCC.py:2214 AppTools/ToolNCC.py:3173 -#: AppTools/ToolNCC.py:3292 AppTools/ToolNCC.py:3558 AppTools/ToolNCC.py:3674 +#: flatcamTools/ToolNCC.py:2062 flatcamTools/ToolNCC.py:2181 +#: flatcamTools/ToolNCC.py:3113 flatcamTools/ToolNCC.py:3232 +#: flatcamTools/ToolNCC.py:3498 flatcamTools/ToolNCC.py:3614 msgid "Could not get the extent of the area to be non copper cleared." msgstr "Impossible d'obtenir que l'étendue de la zone soit non dépolluée." -#: AppTools/ToolNCC.py:2121 AppTools/ToolNCC.py:2200 AppTools/ToolNCC.py:3200 -#: AppTools/ToolNCC.py:3277 AppTools/ToolNCC.py:3578 AppTools/ToolNCC.py:3659 +#: flatcamTools/ToolNCC.py:2089 flatcamTools/ToolNCC.py:2167 +#: flatcamTools/ToolNCC.py:3140 flatcamTools/ToolNCC.py:3217 +#: flatcamTools/ToolNCC.py:3518 flatcamTools/ToolNCC.py:3599 msgid "" "Isolation geometry is broken. Margin is less than isolation tool diameter." msgstr "" "La géométrie d'isolement est rompue. La marge est inférieure au diamètre de " "l'outil d'isolation." -#: AppTools/ToolNCC.py:2217 AppTools/ToolNCC.py:3296 AppTools/ToolNCC.py:3677 +#: flatcamTools/ToolNCC.py:2184 flatcamTools/ToolNCC.py:3236 +#: flatcamTools/ToolNCC.py:3617 msgid "The selected object is not suitable for copper clearing." msgstr "L'objet sélectionné ne convient pas à la clarification du cuivre." -#: AppTools/ToolNCC.py:2224 AppTools/ToolNCC.py:3303 +#: flatcamTools/ToolNCC.py:2191 flatcamTools/ToolNCC.py:3243 msgid "NCC Tool. Finished calculation of 'empty' area." msgstr "Outil de la NCC. Terminé le calcul de la zone \"vide\"." -#: AppTools/ToolNCC.py:2267 -msgid "Clearing the polygon with the method: lines." -msgstr "Clearing the polygon with the method: lines." - -#: AppTools/ToolNCC.py:2277 -msgid "Failed. Clearing the polygon with the method: seed." -msgstr "Échoué. Effacer le polygone avec la méthode: seed." - -#: AppTools/ToolNCC.py:2286 -msgid "Failed. Clearing the polygon with the method: standard." -msgstr "Échoué. Effacer le polygone avec la méthode: standard." - -#: AppTools/ToolNCC.py:2300 -msgid "Geometry could not be cleared completely" -msgstr "La géométrie n'a pas pu être complètement effacée" - -#: AppTools/ToolNCC.py:2325 AppTools/ToolNCC.py:2327 AppTools/ToolNCC.py:2973 -#: AppTools/ToolNCC.py:2975 +#: flatcamTools/ToolNCC.py:2222 flatcamTools/ToolNCC.py:2224 +#: flatcamTools/ToolNCC.py:2916 flatcamTools/ToolNCC.py:2918 msgid "Non-Copper clearing ..." msgstr "Dégagement sans cuivre ..." -#: AppTools/ToolNCC.py:2377 AppTools/ToolNCC.py:3120 +#: flatcamTools/ToolNCC.py:2278 flatcamTools/ToolNCC.py:3060 msgid "" "NCC Tool. Finished non-copper polygons. Normal copper clearing task started." msgstr "" "Outil de la NCC. Polygones non-cuivre finis. La tâche normale de nettoyage " "du cuivre a commencé." -#: AppTools/ToolNCC.py:2415 AppTools/ToolNCC.py:2663 +#: flatcamTools/ToolNCC.py:2312 flatcamTools/ToolNCC.py:2592 msgid "NCC Tool failed creating bounding box." msgstr "L'outil NCC n'a pas pu créer de boîte englobante." -#: AppTools/ToolNCC.py:2430 AppTools/ToolNCC.py:2680 AppTools/ToolNCC.py:3316 -#: AppTools/ToolNCC.py:3702 +#: flatcamTools/ToolNCC.py:2326 flatcamTools/ToolNCC.py:2609 +#: flatcamTools/ToolNCC.py:3256 flatcamTools/ToolNCC.py:3642 msgid "NCC Tool clearing with tool diameter" msgstr "L'outil NCC s'efface avec le diamètre de l'outil" -#: AppTools/ToolNCC.py:2430 AppTools/ToolNCC.py:2680 AppTools/ToolNCC.py:3316 -#: AppTools/ToolNCC.py:3702 +#: flatcamTools/ToolNCC.py:2326 flatcamTools/ToolNCC.py:2609 +#: flatcamTools/ToolNCC.py:3256 flatcamTools/ToolNCC.py:3642 msgid "started." msgstr "commencé." -#: AppTools/ToolNCC.py:2588 AppTools/ToolNCC.py:3477 +#: flatcamTools/ToolNCC.py:2518 flatcamTools/ToolNCC.py:3417 msgid "" "There is no NCC Geometry in the file.\n" "Usually it means that the tool diameter is too big for the painted " @@ -15161,26 +16684,26 @@ msgstr "" "géométrie peinte.\n" "Modifiez les paramètres de peinture et réessayez." -#: AppTools/ToolNCC.py:2597 AppTools/ToolNCC.py:3486 +#: flatcamTools/ToolNCC.py:2527 flatcamTools/ToolNCC.py:3426 msgid "NCC Tool clear all done." msgstr "Outil de la NCC. Effacer tout fait." -#: AppTools/ToolNCC.py:2600 AppTools/ToolNCC.py:3489 +#: flatcamTools/ToolNCC.py:2530 flatcamTools/ToolNCC.py:3429 msgid "NCC Tool clear all done but the copper features isolation is broken for" msgstr "" "Outil de la CCN. Effacer tout fait, mais l'isolation des caractéristiques de " "cuivre est cassée pour" -#: AppTools/ToolNCC.py:2602 AppTools/ToolNCC.py:2888 AppTools/ToolNCC.py:3491 -#: AppTools/ToolNCC.py:3874 +#: flatcamTools/ToolNCC.py:2532 flatcamTools/ToolNCC.py:2817 +#: flatcamTools/ToolNCC.py:3431 flatcamTools/ToolNCC.py:3814 msgid "tools" msgstr "outils" -#: AppTools/ToolNCC.py:2884 AppTools/ToolNCC.py:3870 +#: flatcamTools/ToolNCC.py:2813 flatcamTools/ToolNCC.py:3810 msgid "NCC Tool Rest Machining clear all done." msgstr "Outil de la NCC. Reste l'usinage clair tout fait." -#: AppTools/ToolNCC.py:2887 AppTools/ToolNCC.py:3873 +#: flatcamTools/ToolNCC.py:2816 flatcamTools/ToolNCC.py:3813 msgid "" "NCC Tool Rest Machining clear all done but the copper features isolation is " "broken for" @@ -15188,55 +16711,55 @@ msgstr "" "Outil de la NCC. Reste l'usinage clair, tout est fait, mais l'isolation des " "caractéristiques en cuivre est cassée" -#: AppTools/ToolNCC.py:2985 +#: flatcamTools/ToolNCC.py:2928 msgid "NCC Tool started. Reading parameters." msgstr "L'outil NCC a commencé. Lecture des paramètres." -#: AppTools/ToolNCC.py:3972 +#: flatcamTools/ToolNCC.py:3906 msgid "" "Try to use the Buffering Type = Full in Preferences -> Gerber General. " "Reload the Gerber file after this change." msgstr "" -"Essayez d'utiliser le type de mise en tampon = Plein dans Paramètres -> " +"Essayez d'utiliser le type de mise en tampon = Plein dans Préférences -> " "Général Gerber. Rechargez le fichier Gerber après cette modification." -#: AppTools/ToolOptimal.py:85 +#: flatcamTools/ToolOptimal.py:79 msgid "Number of decimals kept for found distances." msgstr "Nombre de décimales conservées pour les distances trouvées." -#: AppTools/ToolOptimal.py:93 +#: flatcamTools/ToolOptimal.py:87 msgid "Minimum distance" msgstr "Distance minimale" -#: AppTools/ToolOptimal.py:94 +#: flatcamTools/ToolOptimal.py:88 msgid "Display minimum distance between copper features." msgstr "Afficher la distance minimale entre les entités en cuivre." -#: AppTools/ToolOptimal.py:98 +#: flatcamTools/ToolOptimal.py:92 msgid "Determined" msgstr "Déterminé" -#: AppTools/ToolOptimal.py:112 +#: flatcamTools/ToolOptimal.py:106 msgid "Occurring" msgstr "Se produisant" -#: AppTools/ToolOptimal.py:113 +#: flatcamTools/ToolOptimal.py:107 msgid "How many times this minimum is found." msgstr "Combien de fois ce minimum est trouvé." -#: AppTools/ToolOptimal.py:119 +#: flatcamTools/ToolOptimal.py:113 msgid "Minimum points coordinates" msgstr "Coordonnées des points minimum" -#: AppTools/ToolOptimal.py:120 AppTools/ToolOptimal.py:126 +#: flatcamTools/ToolOptimal.py:114 flatcamTools/ToolOptimal.py:120 msgid "Coordinates for points where minimum distance was found." msgstr "Coordonnées des points où une distance minimale a été trouvée." -#: AppTools/ToolOptimal.py:139 AppTools/ToolOptimal.py:215 +#: flatcamTools/ToolOptimal.py:133 flatcamTools/ToolOptimal.py:209 msgid "Jump to selected position" msgstr "Aller à la position sélectionnée" -#: AppTools/ToolOptimal.py:141 AppTools/ToolOptimal.py:217 +#: flatcamTools/ToolOptimal.py:135 flatcamTools/ToolOptimal.py:211 msgid "" "Select a position in the Locations text box and then\n" "click this button." @@ -15244,11 +16767,11 @@ msgstr "" "Sélectionnez une position dans la zone de texte Emplacements, puis\n" "cliquez sur ce bouton." -#: AppTools/ToolOptimal.py:149 +#: flatcamTools/ToolOptimal.py:143 msgid "Other distances" msgstr "Autres distances" -#: AppTools/ToolOptimal.py:150 +#: flatcamTools/ToolOptimal.py:144 msgid "" "Will display other distances in the Gerber file ordered from\n" "the minimum to the maximum, not including the absolute minimum." @@ -15256,13 +16779,13 @@ msgstr "" "Affiche les autres distances dans le fichier Gerber commandé à\n" "le minimum au maximum, sans compter le minimum absolu." -#: AppTools/ToolOptimal.py:155 +#: flatcamTools/ToolOptimal.py:149 msgid "Other distances points coordinates" msgstr "Autres points de coordonnées" -#: AppTools/ToolOptimal.py:156 AppTools/ToolOptimal.py:170 -#: AppTools/ToolOptimal.py:177 AppTools/ToolOptimal.py:194 -#: AppTools/ToolOptimal.py:201 +#: flatcamTools/ToolOptimal.py:150 flatcamTools/ToolOptimal.py:164 +#: flatcamTools/ToolOptimal.py:171 flatcamTools/ToolOptimal.py:188 +#: flatcamTools/ToolOptimal.py:195 msgid "" "Other distances and the coordinates for points\n" "where the distance was found." @@ -15270,19 +16793,19 @@ msgstr "" "Autres distances et coordonnées des points\n" "où la distance a été trouvée." -#: AppTools/ToolOptimal.py:169 +#: flatcamTools/ToolOptimal.py:163 msgid "Gerber distances" msgstr "Distances de Gerber" -#: AppTools/ToolOptimal.py:193 +#: flatcamTools/ToolOptimal.py:187 msgid "Points coordinates" msgstr "Coords des points" -#: AppTools/ToolOptimal.py:225 +#: flatcamTools/ToolOptimal.py:219 msgid "Find Minimum" msgstr "Trouver le minimum" -#: AppTools/ToolOptimal.py:227 +#: flatcamTools/ToolOptimal.py:221 msgid "" "Calculate the minimum distance between copper features,\n" "this will allow the determination of the right tool to\n" @@ -15292,11 +16815,11 @@ msgstr "" "cela permettra de déterminer le bon outil pour\n" "utiliser pour l'isolation ou le nettoyage du cuivre." -#: AppTools/ToolOptimal.py:352 +#: flatcamTools/ToolOptimal.py:346 msgid "Only Gerber objects can be evaluated." msgstr "Seuls les objets de Gerber peuvent être évalués." -#: AppTools/ToolOptimal.py:358 +#: flatcamTools/ToolOptimal.py:352 msgid "" "Optimal Tool. Started to search for the minimum distance between copper " "features." @@ -15304,15 +16827,15 @@ msgstr "" "Outil Optimal. Commencé à rechercher la distance minimale entre les entités " "en cuivre." -#: AppTools/ToolOptimal.py:368 +#: flatcamTools/ToolOptimal.py:362 msgid "Optimal Tool. Parsing geometry for aperture" msgstr "Outil Optimal. Analyser la géométrie pour l'ouverture" -#: AppTools/ToolOptimal.py:379 +#: flatcamTools/ToolOptimal.py:373 msgid "Optimal Tool. Creating a buffer for the object geometry." msgstr "Outil Optimal. Création d'un tampon pour la géométrie de l'objet." -#: AppTools/ToolOptimal.py:389 +#: flatcamTools/ToolOptimal.py:383 msgid "" "The Gerber object has one Polygon as geometry.\n" "There are no distances between geometry elements to be found." @@ -15320,55 +16843,47 @@ msgstr "" "L'objet Gerber a un polygone comme géométrie.\n" "Il n'y a pas de distance entre les éléments géométriques à trouver." -#: AppTools/ToolOptimal.py:394 +#: flatcamTools/ToolOptimal.py:388 msgid "" "Optimal Tool. Finding the distances between each two elements. Iterations" msgstr "" "Outil Optimal. Trouver les distances entre chacun des deux éléments. " "Itérations" -#: AppTools/ToolOptimal.py:429 +#: flatcamTools/ToolOptimal.py:423 msgid "Optimal Tool. Finding the minimum distance." msgstr "Outil Optimal. Trouver la distance minimale." -#: AppTools/ToolOptimal.py:445 +#: flatcamTools/ToolOptimal.py:439 msgid "Optimal Tool. Finished successfully." msgstr "Outil Optimal. Terminé avec succès." -#: AppTools/ToolPDF.py:91 AppTools/ToolPDF.py:95 +#: flatcamTools/ToolPDF.py:157 flatcamTools/ToolPDF.py:161 msgid "Open PDF" msgstr "Ouvrir le PDF" -#: AppTools/ToolPDF.py:98 +#: flatcamTools/ToolPDF.py:164 msgid "Open PDF cancelled" msgstr "Ouvrir le PDF annulé" -#: AppTools/ToolPDF.py:122 +#: flatcamTools/ToolPDF.py:195 msgid "Parsing PDF file ..." msgstr "Analyse du fichier PDF ..." -#: AppTools/ToolPDF.py:138 App_Main.py:8593 -msgid "Failed to open" -msgstr "Impossible d'ouvrir" - -#: AppTools/ToolPDF.py:203 AppTools/ToolPcbWizard.py:445 App_Main.py:8542 -msgid "No geometry found in file" -msgstr "Aucune géométrie trouvée dans le fichier" - -#: AppTools/ToolPDF.py:206 AppTools/ToolPDF.py:279 +#: flatcamTools/ToolPDF.py:278 flatcamTools/ToolPDF.py:353 #, python-format msgid "Rendering PDF layer #%d ..." msgstr "Rendu du calque PDF #%d ..." -#: AppTools/ToolPDF.py:210 AppTools/ToolPDF.py:283 +#: flatcamTools/ToolPDF.py:283 flatcamTools/ToolPDF.py:358 msgid "Open PDF file failed." msgstr "Le fichier PDF ouvert a échoué." -#: AppTools/ToolPDF.py:215 AppTools/ToolPDF.py:288 +#: flatcamTools/ToolPDF.py:289 flatcamTools/ToolPDF.py:363 msgid "Rendered" msgstr "Rendu" -#: AppTools/ToolPaint.py:81 +#: flatcamTools/ToolPaint.py:82 msgid "" "Specify the type of object to be painted.\n" "It can be of type: Gerber or Geometry.\n" @@ -15380,11 +16895,11 @@ msgstr "" "Ce qui est sélectionné ici dictera le genre\n" "des objets qui vont remplir la liste déroulante 'Object'." -#: AppTools/ToolPaint.py:103 +#: flatcamTools/ToolPaint.py:104 msgid "Object to be painted." msgstr "Objet à peindre." -#: AppTools/ToolPaint.py:116 +#: flatcamTools/ToolPaint.py:117 msgid "" "Tools pool from which the algorithm\n" "will pick the ones used for painting." @@ -15392,7 +16907,7 @@ msgstr "" "Pool d'outils à partir duquel l'algorithme\n" "choisira ceux utilisés pour la peinture." -#: AppTools/ToolPaint.py:133 +#: flatcamTools/ToolPaint.py:134 msgid "" "This is the Tool Number.\n" "Painting will start with the tool with the biggest diameter,\n" @@ -15408,7 +16923,7 @@ msgstr "" "dans la géométrie résultante. C’est parce qu’avec certains outils\n" "cette fonction ne pourra pas créer de géométrie de peinture." -#: AppTools/ToolPaint.py:145 +#: flatcamTools/ToolPaint.py:146 msgid "" "The Tool Type (TT) can be:\n" "- Circular -> it is informative only. Being circular,\n" @@ -15436,7 +16951,7 @@ msgstr "" "- Forme en V -> il désactivera le paramètre Z-Cut dans la forme d'interface " "utilisateur de géométrie résultante\n" "et activer deux champs de formulaire d'interface utilisateur supplémentaires " -"dans la géométrie résultante: V-Tip Diam et\n" +"dans la géométrie résultante: V-Tip Dia et\n" "Angle V-Tip. Le réglage de ces deux valeurs ajustera le paramètre Z-Cut tel\n" "car la largeur de coupe dans le matériau sera égale à la valeur dans le " "diamètre de l'outil\n" @@ -15445,7 +16960,7 @@ msgstr "" "d'opération\n" "dans la géométrie résultante comme isolement." -#: AppTools/ToolPaint.py:497 +#: flatcamTools/ToolPaint.py:498 msgid "" "The type of FlatCAM object to be used as paint reference.\n" "It can be Gerber, Excellon or Geometry." @@ -15453,7 +16968,7 @@ msgstr "" "Le type d'objet FlatCAM à utiliser comme référence de peinture.\n" "Ce peut être Gerber, Excellon ou Géométrie." -#: AppTools/ToolPaint.py:538 +#: flatcamTools/ToolPaint.py:539 msgid "" "- 'Area Selection' - left mouse click to start selection of the area to be " "painted.\n" @@ -15471,99 +16986,99 @@ msgstr "" "- 'Objet de référence' - effectuera un nettoyage sans cuivre dans la zone\n" "spécifié par un autre objet." -#: AppTools/ToolPaint.py:1412 +#: flatcamTools/ToolPaint.py:1393 #, python-format msgid "Could not retrieve object: %s" msgstr "Impossible de récupérer l'objet: %s" -#: AppTools/ToolPaint.py:1422 +#: flatcamTools/ToolPaint.py:1403 msgid "Can't do Paint on MultiGeo geometries" msgstr "Impossible de peindre sur des géométries MultiGeo" -#: AppTools/ToolPaint.py:1459 +#: flatcamTools/ToolPaint.py:1433 msgid "Click on a polygon to paint it." msgstr "Cliquez sur un polygone pour le peindre." -#: AppTools/ToolPaint.py:1472 +#: flatcamTools/ToolPaint.py:1453 msgid "Click the start point of the paint area." msgstr "Cliquez sur le point de départ de la zone de peinture." -#: AppTools/ToolPaint.py:1537 +#: flatcamTools/ToolPaint.py:1518 msgid "Click to add next polygon or right click to start painting." msgstr "" "Cliquez pour ajouter le polygone suivant ou cliquez avec le bouton droit " "pour commencer à peindre." -#: AppTools/ToolPaint.py:1550 +#: flatcamTools/ToolPaint.py:1531 msgid "Click to add/remove next polygon or right click to start painting." msgstr "" "Cliquez pour ajouter / supprimer le polygone suivant ou cliquez avec le " "bouton droit pour commencer à peindre." -#: AppTools/ToolPaint.py:2054 +#: flatcamTools/ToolPaint.py:2029 msgid "Painting polygon with method: lines." msgstr "Peinture polygone avec méthode: lignes." -#: AppTools/ToolPaint.py:2066 +#: flatcamTools/ToolPaint.py:2041 msgid "Failed. Painting polygon with method: seed." msgstr "Échoué. Peinture polygone avec méthode: graine." -#: AppTools/ToolPaint.py:2077 +#: flatcamTools/ToolPaint.py:2052 msgid "Failed. Painting polygon with method: standard." msgstr "Échoué. Peinture polygone avec méthode: standard." -#: AppTools/ToolPaint.py:2093 +#: flatcamTools/ToolPaint.py:2068 msgid "Geometry could not be painted completely" msgstr "La géométrie n'a pas pu être peinte complètement" -#: AppTools/ToolPaint.py:2122 AppTools/ToolPaint.py:2125 -#: AppTools/ToolPaint.py:2133 AppTools/ToolPaint.py:2436 -#: AppTools/ToolPaint.py:2439 AppTools/ToolPaint.py:2447 -#: AppTools/ToolPaint.py:2935 AppTools/ToolPaint.py:2938 -#: AppTools/ToolPaint.py:2944 +#: flatcamTools/ToolPaint.py:2097 flatcamTools/ToolPaint.py:2100 +#: flatcamTools/ToolPaint.py:2108 flatcamTools/ToolPaint.py:2411 +#: flatcamTools/ToolPaint.py:2414 flatcamTools/ToolPaint.py:2422 +#: flatcamTools/ToolPaint.py:2910 flatcamTools/ToolPaint.py:2913 +#: flatcamTools/ToolPaint.py:2919 msgid "Paint Tool." msgstr "Outil de Peinture." -#: AppTools/ToolPaint.py:2122 AppTools/ToolPaint.py:2125 -#: AppTools/ToolPaint.py:2133 +#: flatcamTools/ToolPaint.py:2097 flatcamTools/ToolPaint.py:2100 +#: flatcamTools/ToolPaint.py:2108 msgid "Normal painting polygon task started." msgstr "La tâche de peinture normale du polygone a commencé." -#: AppTools/ToolPaint.py:2123 AppTools/ToolPaint.py:2437 -#: AppTools/ToolPaint.py:2936 +#: flatcamTools/ToolPaint.py:2098 flatcamTools/ToolPaint.py:2412 +#: flatcamTools/ToolPaint.py:2911 msgid "Buffering geometry..." msgstr "Mise en tampon de la géométrie ..." -#: AppTools/ToolPaint.py:2145 AppTools/ToolPaint.py:2454 -#: AppTools/ToolPaint.py:2952 +#: flatcamTools/ToolPaint.py:2120 flatcamTools/ToolPaint.py:2429 +#: flatcamTools/ToolPaint.py:2927 msgid "No polygon found." msgstr "Aucun polygone trouvé." -#: AppTools/ToolPaint.py:2175 +#: flatcamTools/ToolPaint.py:2150 msgid "Painting polygon..." msgstr "Peinture polygone ..." -#: AppTools/ToolPaint.py:2185 AppTools/ToolPaint.py:2500 -#: AppTools/ToolPaint.py:2690 AppTools/ToolPaint.py:2998 -#: AppTools/ToolPaint.py:3177 +#: flatcamTools/ToolPaint.py:2160 flatcamTools/ToolPaint.py:2475 +#: flatcamTools/ToolPaint.py:2665 flatcamTools/ToolPaint.py:2973 +#: flatcamTools/ToolPaint.py:3152 msgid "Painting with tool diameter = " msgstr "Peinture avec diamètre d'outil = " -#: AppTools/ToolPaint.py:2186 AppTools/ToolPaint.py:2501 -#: AppTools/ToolPaint.py:2691 AppTools/ToolPaint.py:2999 -#: AppTools/ToolPaint.py:3178 +#: flatcamTools/ToolPaint.py:2161 flatcamTools/ToolPaint.py:2476 +#: flatcamTools/ToolPaint.py:2666 flatcamTools/ToolPaint.py:2974 +#: flatcamTools/ToolPaint.py:3153 msgid "started" msgstr "commencé" -#: AppTools/ToolPaint.py:2211 AppTools/ToolPaint.py:2527 -#: AppTools/ToolPaint.py:2717 AppTools/ToolPaint.py:3025 -#: AppTools/ToolPaint.py:3204 +#: flatcamTools/ToolPaint.py:2186 flatcamTools/ToolPaint.py:2502 +#: flatcamTools/ToolPaint.py:2692 flatcamTools/ToolPaint.py:3000 +#: flatcamTools/ToolPaint.py:3179 msgid "Margin parameter too big. Tool is not used" msgstr "Paramètre de marge trop grand. L'outil n'est pas utilisé" -#: AppTools/ToolPaint.py:2269 AppTools/ToolPaint.py:2596 -#: AppTools/ToolPaint.py:2774 AppTools/ToolPaint.py:3088 -#: AppTools/ToolPaint.py:3266 +#: flatcamTools/ToolPaint.py:2244 flatcamTools/ToolPaint.py:2571 +#: flatcamTools/ToolPaint.py:2749 flatcamTools/ToolPaint.py:3063 +#: flatcamTools/ToolPaint.py:3241 msgid "" "Could not do Paint. Try a different combination of parameters. Or a " "different strategy of paint" @@ -15571,9 +17086,9 @@ msgstr "" "Impossible de faire de la Peinture. Essayez une combinaison de paramètres " "différente. Ou une stratégie de peinture différente" -#: AppTools/ToolPaint.py:2326 AppTools/ToolPaint.py:2662 -#: AppTools/ToolPaint.py:2831 AppTools/ToolPaint.py:3149 -#: AppTools/ToolPaint.py:3328 +#: flatcamTools/ToolPaint.py:2301 flatcamTools/ToolPaint.py:2637 +#: flatcamTools/ToolPaint.py:2806 flatcamTools/ToolPaint.py:3124 +#: flatcamTools/ToolPaint.py:3303 msgid "" "There is no Painting Geometry in the file.\n" "Usually it means that the tool diameter is too big for the painted " @@ -15585,62 +17100,66 @@ msgstr "" "géométrie peinte.\n" "Modifiez les paramètres de peinture et réessayez." -#: AppTools/ToolPaint.py:2349 +#: flatcamTools/ToolPaint.py:2324 msgid "Paint Single failed." msgstr "La peinture «simple» a échoué." -#: AppTools/ToolPaint.py:2355 +#: flatcamTools/ToolPaint.py:2330 msgid "Paint Single Done." msgstr "La Peinture Simple était terminée." -#: AppTools/ToolPaint.py:2357 AppTools/ToolPaint.py:2867 -#: AppTools/ToolPaint.py:3364 +#: flatcamTools/ToolPaint.py:2332 flatcamTools/ToolPaint.py:2842 +#: flatcamTools/ToolPaint.py:3339 msgid "Polygon Paint started ..." msgstr "Polygon Paint a commencé ..." -#: AppTools/ToolPaint.py:2436 AppTools/ToolPaint.py:2439 -#: AppTools/ToolPaint.py:2447 +#: flatcamTools/ToolPaint.py:2411 flatcamTools/ToolPaint.py:2414 +#: flatcamTools/ToolPaint.py:2422 msgid "Paint all polygons task started." msgstr "La tâche de peinture de tous les polygones a commencé." -#: AppTools/ToolPaint.py:2478 AppTools/ToolPaint.py:2976 +#: flatcamTools/ToolPaint.py:2453 flatcamTools/ToolPaint.py:2951 msgid "Painting polygons..." msgstr "Peindre des polygones ..." -#: AppTools/ToolPaint.py:2671 +#: flatcamTools/ToolPaint.py:2646 msgid "Paint All Done." msgstr "Peindre Tout fait." -#: AppTools/ToolPaint.py:2840 AppTools/ToolPaint.py:3337 +#: flatcamTools/ToolPaint.py:2815 flatcamTools/ToolPaint.py:3312 msgid "Paint All with Rest-Machining done." msgstr "Peignez tout avec le reste de l'usinage fait." -#: AppTools/ToolPaint.py:2859 +#: flatcamTools/ToolPaint.py:2834 msgid "Paint All failed." msgstr "La peinture «Tout» a échoué." -#: AppTools/ToolPaint.py:2865 +#: flatcamTools/ToolPaint.py:2840 msgid "Paint Poly All Done." msgstr "Peinture poly tout fait." -#: AppTools/ToolPaint.py:2935 AppTools/ToolPaint.py:2938 -#: AppTools/ToolPaint.py:2944 +#: flatcamTools/ToolPaint.py:2910 flatcamTools/ToolPaint.py:2913 +#: flatcamTools/ToolPaint.py:2919 msgid "Painting area task started." msgstr "La tâche de zone de peinture a commencé." -#: AppTools/ToolPaint.py:3158 +#: flatcamTools/ToolPaint.py:3133 msgid "Paint Area Done." msgstr "Peinture de la Zone réalisée." -#: AppTools/ToolPaint.py:3356 +#: flatcamTools/ToolPaint.py:3331 msgid "Paint Area failed." msgstr "Échec de la peinture de la Zone." -#: AppTools/ToolPaint.py:3362 +#: flatcamTools/ToolPaint.py:3337 msgid "Paint Poly Area Done." msgstr "La peinture 'Poly Zone' est terminée." -#: AppTools/ToolPanelize.py:55 +#: flatcamTools/ToolPanelize.py:34 +msgid "Panelize PCB" +msgstr "Panéliser PCB" + +#: flatcamTools/ToolPanelize.py:56 msgid "" "Specify the type of object to be panelized\n" "It can be of type: Gerber, Excellon or Geometry.\n" @@ -15652,7 +17171,7 @@ msgstr "" "La sélection ici décide du type d’objets qui seront\n" "dans la liste déroulante d'objets." -#: AppTools/ToolPanelize.py:88 +#: flatcamTools/ToolPanelize.py:89 msgid "" "Object to be panelized. This means that it will\n" "be duplicated in an array of rows and columns." @@ -15660,11 +17179,11 @@ msgstr "" "Objet à paramétrer. Cela signifie qu'il sera\n" "être dupliqué dans un tableau de lignes et de colonnes." -#: AppTools/ToolPanelize.py:100 +#: flatcamTools/ToolPanelize.py:102 msgid "Penelization Reference" msgstr "Référence de pénalisation" -#: AppTools/ToolPanelize.py:102 +#: flatcamTools/ToolPanelize.py:104 msgid "" "Choose the reference for panelization:\n" "- Object = the bounding box of a different object\n" @@ -15684,11 +17203,11 @@ msgstr "" "à cet objet de référence maintenant donc le panneau\n" "objets synchronisés." -#: AppTools/ToolPanelize.py:123 +#: flatcamTools/ToolPanelize.py:125 msgid "Box Type" msgstr "Type de Box" -#: AppTools/ToolPanelize.py:125 +#: flatcamTools/ToolPanelize.py:127 msgid "" "Specify the type of object to be used as an container for\n" "panelization. It can be: Gerber or Geometry type.\n" @@ -15700,7 +17219,7 @@ msgstr "" "La sélection ici décide du type d’objets qui seront\n" "dans la liste déroulante Objet de Box." -#: AppTools/ToolPanelize.py:139 +#: flatcamTools/ToolPanelize.py:141 msgid "" "The actual object that is used as container for the\n" " selected object that is to be panelized." @@ -15708,11 +17227,11 @@ msgstr "" "L'objet réel qui utilise un conteneur pour la\n" "objet sélectionné à panéliser." -#: AppTools/ToolPanelize.py:149 +#: flatcamTools/ToolPanelize.py:147 msgid "Panel Data" msgstr "Données du Panneau" -#: AppTools/ToolPanelize.py:151 +#: flatcamTools/ToolPanelize.py:149 msgid "" "This informations will shape the resulting panel.\n" "The number of rows and columns will set how many\n" @@ -15728,7 +17247,7 @@ msgstr "" "Les espacements détermineront la distance entre deux\n" "éléments du tableau de panneaux." -#: AppTools/ToolPanelize.py:214 +#: flatcamTools/ToolPanelize.py:208 msgid "" "Choose the type of object for the panel object:\n" "- Geometry\n" @@ -15738,15 +17257,15 @@ msgstr "" "- Géométrie\n" "- Gerber" -#: AppTools/ToolPanelize.py:222 +#: flatcamTools/ToolPanelize.py:216 msgid "Constrain panel within" msgstr "Contraindre le panneau dans" -#: AppTools/ToolPanelize.py:263 +#: flatcamTools/ToolPanelize.py:252 msgid "Panelize Object" msgstr "Objet Panelize" -#: AppTools/ToolPanelize.py:265 AppTools/ToolRulesCheck.py:501 +#: flatcamTools/ToolPanelize.py:254 flatcamTools/ToolRulesCheck.py:501 msgid "" "Panelize the specified object around the specified box.\n" "In other words it creates multiple copies of the source object,\n" @@ -15756,33 +17275,33 @@ msgstr "" "En d'autres termes, il crée plusieurs copies de l'objet source,\n" "disposés dans un tableau 2D de lignes et de colonnes." -#: AppTools/ToolPanelize.py:333 +#: flatcamTools/ToolPanelize.py:322 msgid "Panel. Tool" msgstr "Panneau. Outil" -#: AppTools/ToolPanelize.py:468 +#: flatcamTools/ToolPanelize.py:457 msgid "Columns or Rows are zero value. Change them to a positive integer." msgstr "" "Les colonnes ou les lignes ont une valeur zéro. Changez-les en un entier " "positif." -#: AppTools/ToolPanelize.py:505 +#: flatcamTools/ToolPanelize.py:494 msgid "Generating panel ... " msgstr "Panneau de génération ... " -#: AppTools/ToolPanelize.py:788 +#: flatcamTools/ToolPanelize.py:777 msgid "Generating panel ... Adding the Gerber code." msgstr "Panneau de génération ... Ajout du code Gerber." -#: AppTools/ToolPanelize.py:796 +#: flatcamTools/ToolPanelize.py:785 msgid "Generating panel... Spawning copies" msgstr "Génération de panneau ... Création de copies" -#: AppTools/ToolPanelize.py:803 +#: flatcamTools/ToolPanelize.py:792 msgid "Panel done..." msgstr "Panel terminé ..." -#: AppTools/ToolPanelize.py:806 +#: flatcamTools/ToolPanelize.py:795 #, python-brace-format msgid "" "{text} Too big for the constrain area. Final panel has {col} columns and " @@ -15791,27 +17310,27 @@ msgstr "" "{text} Trop grand pour la zone contrainte. Le panneau final contient {col} " "colonnes et {row}" -#: AppTools/ToolPanelize.py:815 +#: flatcamTools/ToolPanelize.py:804 msgid "Panel created successfully." msgstr "Panneau créé avec succès." -#: AppTools/ToolPcbWizard.py:31 +#: flatcamTools/ToolPcbWizard.py:31 msgid "PcbWizard Import Tool" msgstr "Outil d'importation PcbWizard" -#: AppTools/ToolPcbWizard.py:40 +#: flatcamTools/ToolPcbWizard.py:40 msgid "Import 2-file Excellon" msgstr "Importer 2-fichiers Excellon" -#: AppTools/ToolPcbWizard.py:51 +#: flatcamTools/ToolPcbWizard.py:51 msgid "Load files" msgstr "Charger des fichiers" -#: AppTools/ToolPcbWizard.py:57 +#: flatcamTools/ToolPcbWizard.py:57 msgid "Excellon file" msgstr "Fichier Excellon" -#: AppTools/ToolPcbWizard.py:59 +#: flatcamTools/ToolPcbWizard.py:59 msgid "" "Load the Excellon file.\n" "Usually it has a .DRL extension" @@ -15819,51 +17338,51 @@ msgstr "" "Chargez le fichier Excellon.\n" "Il a généralement une extension .DRL" -#: AppTools/ToolPcbWizard.py:65 +#: flatcamTools/ToolPcbWizard.py:65 msgid "INF file" msgstr "Fichier INF" -#: AppTools/ToolPcbWizard.py:67 +#: flatcamTools/ToolPcbWizard.py:67 msgid "Load the INF file." msgstr "Chargez le fichier INF." -#: AppTools/ToolPcbWizard.py:79 +#: flatcamTools/ToolPcbWizard.py:79 msgid "Tool Number" msgstr "Numéro d'outil" -#: AppTools/ToolPcbWizard.py:81 +#: flatcamTools/ToolPcbWizard.py:81 msgid "Tool diameter in file units." msgstr "Diamètre de l'outil en unités de fichier." -#: AppTools/ToolPcbWizard.py:87 +#: flatcamTools/ToolPcbWizard.py:87 msgid "Excellon format" msgstr "Excellon format" -#: AppTools/ToolPcbWizard.py:95 +#: flatcamTools/ToolPcbWizard.py:95 msgid "Int. digits" msgstr "Chiffres entiers" -#: AppTools/ToolPcbWizard.py:97 +#: flatcamTools/ToolPcbWizard.py:97 msgid "The number of digits for the integral part of the coordinates." msgstr "Le nombre de chiffres pour la partie intégrale des coordonnées." -#: AppTools/ToolPcbWizard.py:104 +#: flatcamTools/ToolPcbWizard.py:104 msgid "Frac. digits" msgstr "Chiffres fract" -#: AppTools/ToolPcbWizard.py:106 +#: flatcamTools/ToolPcbWizard.py:106 msgid "The number of digits for the fractional part of the coordinates." msgstr "Le nombre de chiffres pour la partie décimale des coordonnées." -#: AppTools/ToolPcbWizard.py:113 +#: flatcamTools/ToolPcbWizard.py:113 msgid "No Suppression" msgstr "Pas de suppression" -#: AppTools/ToolPcbWizard.py:114 +#: flatcamTools/ToolPcbWizard.py:114 msgid "Zeros supp." msgstr "Zéros Supp." -#: AppTools/ToolPcbWizard.py:116 +#: flatcamTools/ToolPcbWizard.py:116 msgid "" "The type of zeros suppression used.\n" "Can be of type:\n" @@ -15877,7 +17396,7 @@ msgstr "" "- TZ = les zéros à la fin sont conservés\n" "- Pas de suppression = pas de suppression de zéro" -#: AppTools/ToolPcbWizard.py:129 +#: flatcamTools/ToolPcbWizard.py:129 msgid "" "The type of units that the coordinates and tool\n" "diameters are using. Can be INCH or MM." @@ -15885,11 +17404,11 @@ msgstr "" "Le type d'unités que les coordonnées et l'outil\n" "diamètres utilisent. Peut être Pouce ou MM." -#: AppTools/ToolPcbWizard.py:136 +#: flatcamTools/ToolPcbWizard.py:136 msgid "Import Excellon" msgstr "Importer un fichier Excellon" -#: AppTools/ToolPcbWizard.py:138 +#: flatcamTools/ToolPcbWizard.py:138 msgid "" "Import in FlatCAM an Excellon file\n" "that store it's information's in 2 files.\n" @@ -15901,19 +17420,19 @@ msgstr "" "On a généralement une extension .DRL alors que\n" "l'autre a une extension .INF." -#: AppTools/ToolPcbWizard.py:197 +#: flatcamTools/ToolPcbWizard.py:197 msgid "PCBWizard Tool" msgstr "Outil PCBWizard" -#: AppTools/ToolPcbWizard.py:291 AppTools/ToolPcbWizard.py:295 +#: flatcamTools/ToolPcbWizard.py:291 flatcamTools/ToolPcbWizard.py:295 msgid "Load PcbWizard Excellon file" msgstr "Charger le fichier Excellon PcbWizard" -#: AppTools/ToolPcbWizard.py:314 AppTools/ToolPcbWizard.py:318 +#: flatcamTools/ToolPcbWizard.py:314 flatcamTools/ToolPcbWizard.py:318 msgid "Load PcbWizard INF file" msgstr "Charger le fichier INF PcbWizard" -#: AppTools/ToolPcbWizard.py:366 +#: flatcamTools/ToolPcbWizard.py:366 msgid "" "The INF file does not contain the tool table.\n" "Try to open the Excellon file from File -> Open -> Excellon\n" @@ -15924,184 +17443,173 @@ msgstr "" "Excellon.\n" "et éditez les diamètres de perçage manuellement." -#: AppTools/ToolPcbWizard.py:387 +#: flatcamTools/ToolPcbWizard.py:387 msgid "PcbWizard .INF file loaded." msgstr "Fichier PcbWizard .INF chargé." -#: AppTools/ToolPcbWizard.py:392 +#: flatcamTools/ToolPcbWizard.py:392 msgid "Main PcbWizard Excellon file loaded." msgstr "Le fichier principal de PcbWizard Excellon est chargé." -#: AppTools/ToolPcbWizard.py:424 App_Main.py:8520 -msgid "This is not Excellon file." -msgstr "Ce n'est pas un fichier Excellon." - -#: AppTools/ToolPcbWizard.py:427 +#: flatcamTools/ToolPcbWizard.py:427 msgid "Cannot parse file" msgstr "Impossible d'analyser le fichier" -#: AppTools/ToolPcbWizard.py:450 +#: flatcamTools/ToolPcbWizard.py:450 msgid "Importing Excellon." msgstr "Importer Excellon." -#: AppTools/ToolPcbWizard.py:457 +#: flatcamTools/ToolPcbWizard.py:457 msgid "Import Excellon file failed." msgstr "L'importation du fichier Excellon a échoué." -#: AppTools/ToolPcbWizard.py:464 +#: flatcamTools/ToolPcbWizard.py:464 msgid "Imported" msgstr "Importé" -#: AppTools/ToolPcbWizard.py:467 +#: flatcamTools/ToolPcbWizard.py:467 msgid "Excellon merging is in progress. Please wait..." msgstr "Excellon fusion est en cours. S'il vous plaît, attendez..." -#: AppTools/ToolPcbWizard.py:469 +#: flatcamTools/ToolPcbWizard.py:469 msgid "The imported Excellon file is empty." msgstr "Le fichier Excellon importé est Aucun." -#: AppTools/ToolProperties.py:116 App_Main.py:4692 App_Main.py:6803 -#: App_Main.py:6903 App_Main.py:6944 App_Main.py:6985 App_Main.py:7027 -#: App_Main.py:7069 App_Main.py:7113 App_Main.py:7157 App_Main.py:7681 -#: App_Main.py:7685 -msgid "No object selected." -msgstr "Aucun objet sélectionné." - -#: AppTools/ToolProperties.py:131 +#: flatcamTools/ToolProperties.py:131 msgid "Object Properties are displayed." msgstr "Les Propriétés de l'objet sont affichées." -#: AppTools/ToolProperties.py:136 +#: flatcamTools/ToolProperties.py:136 msgid "Properties Tool" msgstr "Outil de Propriétés" -#: AppTools/ToolProperties.py:150 +#: flatcamTools/ToolProperties.py:150 msgid "TYPE" msgstr "TYPE" -#: AppTools/ToolProperties.py:151 +#: flatcamTools/ToolProperties.py:151 msgid "NAME" msgstr "NOM" -#: AppTools/ToolProperties.py:153 +#: flatcamTools/ToolProperties.py:153 msgid "Dimensions" msgstr "Dimensions" -#: AppTools/ToolProperties.py:181 +#: flatcamTools/ToolProperties.py:181 msgid "Geo Type" msgstr "Type de géo" -#: AppTools/ToolProperties.py:184 +#: flatcamTools/ToolProperties.py:184 msgid "Single-Geo" msgstr "Géo-unique" -#: AppTools/ToolProperties.py:185 +#: flatcamTools/ToolProperties.py:185 msgid "Multi-Geo" msgstr "Multi-géo" -#: AppTools/ToolProperties.py:196 +#: flatcamTools/ToolProperties.py:196 msgid "Calculating dimensions ... Please wait." msgstr "Calcul des dimensions ... Veuillez patienter." -#: AppTools/ToolProperties.py:339 AppTools/ToolProperties.py:343 -#: AppTools/ToolProperties.py:345 +#: flatcamTools/ToolProperties.py:339 flatcamTools/ToolProperties.py:343 +#: flatcamTools/ToolProperties.py:345 msgid "Inch" msgstr "Pouce" -#: AppTools/ToolProperties.py:339 AppTools/ToolProperties.py:344 -#: AppTools/ToolProperties.py:346 +#: flatcamTools/ToolProperties.py:339 flatcamTools/ToolProperties.py:344 +#: flatcamTools/ToolProperties.py:346 msgid "Metric" msgstr "Métrique" -#: AppTools/ToolProperties.py:421 AppTools/ToolProperties.py:486 +#: flatcamTools/ToolProperties.py:421 flatcamTools/ToolProperties.py:486 msgid "Drills number" msgstr "Nombre de forets" -#: AppTools/ToolProperties.py:422 AppTools/ToolProperties.py:488 +#: flatcamTools/ToolProperties.py:422 flatcamTools/ToolProperties.py:488 msgid "Slots number" msgstr "Nombre d'emplacements" -#: AppTools/ToolProperties.py:424 +#: flatcamTools/ToolProperties.py:424 msgid "Drills total number:" msgstr "Nombre total de forets:" -#: AppTools/ToolProperties.py:425 +#: flatcamTools/ToolProperties.py:425 msgid "Slots total number:" msgstr "Nombre total d'emplacements:" -#: AppTools/ToolProperties.py:452 AppTools/ToolProperties.py:455 -#: AppTools/ToolProperties.py:458 AppTools/ToolProperties.py:483 +#: flatcamTools/ToolProperties.py:452 flatcamTools/ToolProperties.py:455 +#: flatcamTools/ToolProperties.py:458 flatcamTools/ToolProperties.py:483 msgid "Present" msgstr "Présent" -#: AppTools/ToolProperties.py:453 AppTools/ToolProperties.py:484 +#: flatcamTools/ToolProperties.py:453 flatcamTools/ToolProperties.py:484 msgid "Solid Geometry" msgstr "Géométrie solide" -#: AppTools/ToolProperties.py:456 +#: flatcamTools/ToolProperties.py:456 msgid "GCode Text" msgstr "Texte GCode" -#: AppTools/ToolProperties.py:459 +#: flatcamTools/ToolProperties.py:459 msgid "GCode Geometry" msgstr "Géométrie GCode" -#: AppTools/ToolProperties.py:462 +#: flatcamTools/ToolProperties.py:462 msgid "Data" msgstr "Les données" -#: AppTools/ToolProperties.py:495 +#: flatcamTools/ToolProperties.py:495 msgid "Depth of Cut" msgstr "Profondeur de coupe" -#: AppTools/ToolProperties.py:507 +#: flatcamTools/ToolProperties.py:507 msgid "Clearance Height" msgstr "Hauteur de dégagement" -#: AppTools/ToolProperties.py:539 +#: flatcamTools/ToolProperties.py:539 msgid "Routing time" msgstr "Temps d'acheminement" -#: AppTools/ToolProperties.py:546 +#: flatcamTools/ToolProperties.py:546 msgid "Travelled distance" msgstr "Distance parcourue" -#: AppTools/ToolProperties.py:564 +#: flatcamTools/ToolProperties.py:564 msgid "Width" msgstr "Largeur" -#: AppTools/ToolProperties.py:570 AppTools/ToolProperties.py:578 +#: flatcamTools/ToolProperties.py:570 flatcamTools/ToolProperties.py:578 msgid "Box Area" msgstr "Zone de la boîte" -#: AppTools/ToolProperties.py:573 AppTools/ToolProperties.py:581 +#: flatcamTools/ToolProperties.py:573 flatcamTools/ToolProperties.py:581 msgid "Convex_Hull Area" msgstr "Zone de coque convexe" -#: AppTools/ToolProperties.py:588 AppTools/ToolProperties.py:591 +#: flatcamTools/ToolProperties.py:588 flatcamTools/ToolProperties.py:591 msgid "Copper Area" msgstr "Zone de cuivre" -#: AppTools/ToolPunchGerber.py:30 AppTools/ToolPunchGerber.py:323 +#: flatcamTools/ToolPunchGerber.py:30 flatcamTools/ToolPunchGerber.py:323 msgid "Punch Gerber" msgstr "Percer Gerber" -#: AppTools/ToolPunchGerber.py:65 +#: flatcamTools/ToolPunchGerber.py:65 msgid "Gerber into which to punch holes" msgstr "Gerber pour percer des trous" -#: AppTools/ToolPunchGerber.py:85 +#: flatcamTools/ToolPunchGerber.py:85 msgid "ALL" msgstr "TOUT" -#: AppTools/ToolPunchGerber.py:166 +#: flatcamTools/ToolPunchGerber.py:166 msgid "" "Remove the geometry of Excellon from the Gerber to create the holes in pads." msgstr "" "Retirez la géométrie d'Excellon du Gerber pour créer les trous dans les " "coussinets." -#: AppTools/ToolPunchGerber.py:325 +#: flatcamTools/ToolPunchGerber.py:325 msgid "" "Create a Gerber object from the selected object, within\n" "the specified box." @@ -16109,15 +17617,15 @@ msgstr "" "Créez un objet Gerber à partir de l'objet sélectionné, dans\n" "la case spécifiée." -#: AppTools/ToolPunchGerber.py:425 +#: flatcamTools/ToolPunchGerber.py:425 msgid "Punch Tool" msgstr "Outil de Poinçonnage" -#: AppTools/ToolPunchGerber.py:599 +#: flatcamTools/ToolPunchGerber.py:599 msgid "The value of the fixed diameter is 0.0. Aborting." msgstr "La valeur du diamètre fixe est de 0,0. Abandon." -#: AppTools/ToolPunchGerber.py:602 +#: flatcamTools/ToolPunchGerber.py:607 flatcamTools/ToolPunchGerber.py:619 msgid "" "Could not generate punched hole Gerber because the punch hole size is bigger " "than some of the apertures in the Gerber object." @@ -16125,7 +17633,7 @@ msgstr "" "Impossible de générer le trou perforé Gerber car la taille du trou poinçonné " "est plus grande que certaines des ouvertures de l'objet Gerber." -#: AppTools/ToolPunchGerber.py:665 +#: flatcamTools/ToolPunchGerber.py:656 msgid "" "Could not generate punched hole Gerber because the newly created object " "geometry is the same as the one in the source object geometry..." @@ -16134,19 +17642,23 @@ msgstr "" "nouvellement créée est la même que celle de la géométrie de l'objet " "source ..." -#: AppTools/ToolQRCode.py:80 +#: flatcamTools/ToolQRCode.py:80 msgid "Gerber Object to which the QRCode will be added." msgstr "Objet Gerber auquel le QRCode sera ajouté." -#: AppTools/ToolQRCode.py:116 +#: flatcamTools/ToolQRCode.py:93 +msgid "QRCode Parameters" +msgstr "Paramètres QRCode" + +#: flatcamTools/ToolQRCode.py:95 msgid "The parameters used to shape the QRCode." msgstr "Les paramètres utilisés pour façonner le QRCode." -#: AppTools/ToolQRCode.py:216 +#: flatcamTools/ToolQRCode.py:207 msgid "Export QRCode" msgstr "Exporter le QRCode" -#: AppTools/ToolQRCode.py:218 +#: flatcamTools/ToolQRCode.py:209 msgid "" "Show a set of controls allowing to export the QRCode\n" "to a SVG file or an PNG file." @@ -16154,137 +17666,140 @@ msgstr "" "Afficher un ensemble de contrôles permettant d'exporter le QRCode\n" "vers un fichier SVG ou un fichier PNG." -#: AppTools/ToolQRCode.py:257 +#: flatcamTools/ToolQRCode.py:248 msgid "Transparent back color" msgstr "Couleur arrière transparente" -#: AppTools/ToolQRCode.py:282 +#: flatcamTools/ToolQRCode.py:273 msgid "Export QRCode SVG" msgstr "Exporter le QRCode SVG" -#: AppTools/ToolQRCode.py:284 +#: flatcamTools/ToolQRCode.py:275 msgid "Export a SVG file with the QRCode content." msgstr "Exportez un fichier SVG avec le contenu QRCode." -#: AppTools/ToolQRCode.py:295 +#: flatcamTools/ToolQRCode.py:286 msgid "Export QRCode PNG" msgstr "Exporter le QRCode PNG" -#: AppTools/ToolQRCode.py:297 +#: flatcamTools/ToolQRCode.py:288 msgid "Export a PNG image file with the QRCode content." msgstr "Exportez un fichier image PNG avec le contenu QRCode." -#: AppTools/ToolQRCode.py:308 +#: flatcamTools/ToolQRCode.py:299 msgid "Insert QRCode" msgstr "Insérez QRCode" -#: AppTools/ToolQRCode.py:310 +#: flatcamTools/ToolQRCode.py:301 msgid "Create the QRCode object." msgstr "Créez l'objet QRCode." -#: AppTools/ToolQRCode.py:424 AppTools/ToolQRCode.py:759 -#: AppTools/ToolQRCode.py:808 +#: flatcamTools/ToolQRCode.py:415 flatcamTools/ToolQRCode.py:750 +#: flatcamTools/ToolQRCode.py:799 msgid "Cancelled. There is no QRCode Data in the text box." msgstr "Annulé. Il n'y a pas de données QRCode dans la zone de texte." -#: AppTools/ToolQRCode.py:443 +#: flatcamTools/ToolQRCode.py:434 msgid "Generating QRCode geometry" msgstr "Génération de la géométrie QRCode" -#: AppTools/ToolQRCode.py:483 +#: flatcamTools/ToolQRCode.py:474 msgid "Click on the Destination point ..." msgstr "Cliquez sur le point de destination ..." -#: AppTools/ToolQRCode.py:598 +#: flatcamTools/ToolQRCode.py:589 msgid "QRCode Tool done." msgstr "Outil QRCode terminé." -#: AppTools/ToolQRCode.py:791 AppTools/ToolQRCode.py:795 +#: flatcamTools/ToolQRCode.py:782 flatcamTools/ToolQRCode.py:786 msgid "Export PNG" msgstr "Exporter en PNG" -#: AppTools/ToolQRCode.py:838 AppTools/ToolQRCode.py:842 App_Main.py:6835 -#: App_Main.py:6839 -msgid "Export SVG" -msgstr "Exporter en SVG" - -#: AppTools/ToolRulesCheck.py:33 +#: flatcamTools/ToolRulesCheck.py:33 msgid "Check Rules" msgstr "Vérifiez les Règles" -#: AppTools/ToolRulesCheck.py:63 +#: flatcamTools/ToolRulesCheck.py:61 +msgid "Gerber Files" +msgstr "Fichiers Gerber" + +#: flatcamTools/ToolRulesCheck.py:63 msgid "Gerber objects for which to check rules." msgstr "Objets Gerber pour lesquels vérifier les règles." -#: AppTools/ToolRulesCheck.py:78 +#: flatcamTools/ToolRulesCheck.py:78 msgid "Top" msgstr "Haut" -#: AppTools/ToolRulesCheck.py:80 +#: flatcamTools/ToolRulesCheck.py:80 msgid "The Top Gerber Copper object for which rules are checked." msgstr "L'objet cuivre supérieur Gerber pour lequel les règles sont vérifiées." -#: AppTools/ToolRulesCheck.py:96 +#: flatcamTools/ToolRulesCheck.py:96 msgid "Bottom" msgstr "Bas" -#: AppTools/ToolRulesCheck.py:98 +#: flatcamTools/ToolRulesCheck.py:98 msgid "The Bottom Gerber Copper object for which rules are checked." msgstr "" "Objet de cuivre Gerber inférieur pour lequel les règles sont vérifiées." -#: AppTools/ToolRulesCheck.py:114 +#: flatcamTools/ToolRulesCheck.py:114 msgid "SM Top" msgstr "SM Top" -#: AppTools/ToolRulesCheck.py:116 +#: flatcamTools/ToolRulesCheck.py:116 msgid "The Top Gerber Solder Mask object for which rules are checked." msgstr "" "Objet de masque de soudure Gerber supérieur pour lequel les règles sont " "vérifiées." -#: AppTools/ToolRulesCheck.py:132 +#: flatcamTools/ToolRulesCheck.py:132 msgid "SM Bottom" msgstr "SM Bas" -#: AppTools/ToolRulesCheck.py:134 +#: flatcamTools/ToolRulesCheck.py:134 msgid "The Bottom Gerber Solder Mask object for which rules are checked." msgstr "" "Objet de masque de soudure Gerber inférieur pour lequel les règles sont " "vérifiées." -#: AppTools/ToolRulesCheck.py:150 +#: flatcamTools/ToolRulesCheck.py:150 msgid "Silk Top" msgstr "Sérigraphie Haut" -#: AppTools/ToolRulesCheck.py:152 +#: flatcamTools/ToolRulesCheck.py:152 msgid "The Top Gerber Silkscreen object for which rules are checked." msgstr "" "Objet de la sérigraphie Top Gerber pour lequel les règles sont vérifiées." -#: AppTools/ToolRulesCheck.py:168 +#: flatcamTools/ToolRulesCheck.py:168 msgid "Silk Bottom" msgstr "Fond sérigraphie" -#: AppTools/ToolRulesCheck.py:170 +#: flatcamTools/ToolRulesCheck.py:170 msgid "The Bottom Gerber Silkscreen object for which rules are checked." msgstr "" "L'objet Gerber Silkscreen inférieur pour lequel les règles sont vérifiées." -#: AppTools/ToolRulesCheck.py:188 +#: flatcamTools/ToolRulesCheck.py:188 msgid "The Gerber Outline (Cutout) object for which rules are checked." msgstr "" "Objet de contour de Gerber (découpe) pour lequel les règles sont vérifiées." -#: AppTools/ToolRulesCheck.py:201 +#: flatcamTools/ToolRulesCheck.py:199 +msgid "Excellon Objects" +msgstr "Excellon Objets" + +#: flatcamTools/ToolRulesCheck.py:201 msgid "Excellon objects for which to check rules." msgstr "Excellon objets pour lesquels vérifier les règles." -#: AppTools/ToolRulesCheck.py:213 +#: flatcamTools/ToolRulesCheck.py:213 msgid "Excellon 1" msgstr "Excellon 1" -#: AppTools/ToolRulesCheck.py:215 +#: flatcamTools/ToolRulesCheck.py:215 msgid "" "Excellon object for which to check rules.\n" "Holds the plated holes or a general Excellon file content." @@ -16292,11 +17807,11 @@ msgstr "" "Objet Excellon pour lequel vérifier les règles.\n" "Contient les trous métallisés ou le contenu général d’un fichier Excellon." -#: AppTools/ToolRulesCheck.py:232 +#: flatcamTools/ToolRulesCheck.py:232 msgid "Excellon 2" msgstr "Excellon 2" -#: AppTools/ToolRulesCheck.py:234 +#: flatcamTools/ToolRulesCheck.py:234 msgid "" "Excellon object for which to check rules.\n" "Holds the non-plated holes." @@ -16304,35 +17819,35 @@ msgstr "" "Objet Excellon pour lequel vérifier les règles.\n" "Maintient les trous non plaqués." -#: AppTools/ToolRulesCheck.py:247 +#: flatcamTools/ToolRulesCheck.py:247 msgid "All Rules" msgstr "Toutes les règles" -#: AppTools/ToolRulesCheck.py:249 +#: flatcamTools/ToolRulesCheck.py:249 msgid "This check/uncheck all the rules below." msgstr "Cette case à cocher / décocher toutes les règles ci-dessous." -#: AppTools/ToolRulesCheck.py:499 +#: flatcamTools/ToolRulesCheck.py:499 msgid "Run Rules Check" msgstr "Exécuter la Vér. des Règles" -#: AppTools/ToolRulesCheck.py:1158 AppTools/ToolRulesCheck.py:1218 -#: AppTools/ToolRulesCheck.py:1255 AppTools/ToolRulesCheck.py:1327 -#: AppTools/ToolRulesCheck.py:1381 AppTools/ToolRulesCheck.py:1419 -#: AppTools/ToolRulesCheck.py:1484 +#: flatcamTools/ToolRulesCheck.py:1158 flatcamTools/ToolRulesCheck.py:1218 +#: flatcamTools/ToolRulesCheck.py:1255 flatcamTools/ToolRulesCheck.py:1327 +#: flatcamTools/ToolRulesCheck.py:1381 flatcamTools/ToolRulesCheck.py:1419 +#: flatcamTools/ToolRulesCheck.py:1484 msgid "Value is not valid." msgstr "La valeur n'est pas valide." -#: AppTools/ToolRulesCheck.py:1172 +#: flatcamTools/ToolRulesCheck.py:1172 msgid "TOP -> Copper to Copper clearance" msgstr "TOP -> Distance de cuivre à cuivre" -#: AppTools/ToolRulesCheck.py:1183 +#: flatcamTools/ToolRulesCheck.py:1183 msgid "BOTTOM -> Copper to Copper clearance" msgstr "EN BAS -> Distance de cuivre à cuivre" -#: AppTools/ToolRulesCheck.py:1188 AppTools/ToolRulesCheck.py:1282 -#: AppTools/ToolRulesCheck.py:1446 +#: flatcamTools/ToolRulesCheck.py:1188 flatcamTools/ToolRulesCheck.py:1282 +#: flatcamTools/ToolRulesCheck.py:1446 msgid "" "At least one Gerber object has to be selected for this rule but none is " "selected." @@ -16340,13 +17855,13 @@ msgstr "" "Au moins un objet Gerber doit être sélectionné pour cette règle, mais aucun " "n'est sélectionné." -#: AppTools/ToolRulesCheck.py:1224 +#: flatcamTools/ToolRulesCheck.py:1224 msgid "" "One of the copper Gerber objects or the Outline Gerber object is not valid." msgstr "" "L'un des objets cuivre Gerber ou l'objet Contour Gerber n'est pas valide." -#: AppTools/ToolRulesCheck.py:1237 AppTools/ToolRulesCheck.py:1401 +#: flatcamTools/ToolRulesCheck.py:1237 flatcamTools/ToolRulesCheck.py:1401 msgid "" "Outline Gerber object presence is mandatory for this rule but it is not " "selected." @@ -16354,31 +17869,31 @@ msgstr "" "La présence de l’objet Gerber est obligatoire pour cette règle, mais elle " "n’est pas sélectionnée." -#: AppTools/ToolRulesCheck.py:1254 AppTools/ToolRulesCheck.py:1281 +#: flatcamTools/ToolRulesCheck.py:1254 flatcamTools/ToolRulesCheck.py:1281 msgid "Silk to Silk clearance" msgstr "Sérigraphie à distance de sérigraphie" -#: AppTools/ToolRulesCheck.py:1267 +#: flatcamTools/ToolRulesCheck.py:1267 msgid "TOP -> Silk to Silk clearance" msgstr "TOP -> Distance de sérigraphie à sérigraphie" -#: AppTools/ToolRulesCheck.py:1277 +#: flatcamTools/ToolRulesCheck.py:1277 msgid "BOTTOM -> Silk to Silk clearance" msgstr "BAS -> Distance de sérigraphie à sérigraphie" -#: AppTools/ToolRulesCheck.py:1333 +#: flatcamTools/ToolRulesCheck.py:1333 msgid "One or more of the Gerber objects is not valid." msgstr "Un ou plusieurs objets Gerber n'est pas valide." -#: AppTools/ToolRulesCheck.py:1341 +#: flatcamTools/ToolRulesCheck.py:1341 msgid "TOP -> Silk to Solder Mask Clearance" msgstr "TOP -> Distance entre masque et masque de soudure" -#: AppTools/ToolRulesCheck.py:1347 +#: flatcamTools/ToolRulesCheck.py:1347 msgid "BOTTOM -> Silk to Solder Mask Clearance" msgstr "EN BAS -> Distance de sérigraphie à masque de soudure" -#: AppTools/ToolRulesCheck.py:1351 +#: flatcamTools/ToolRulesCheck.py:1351 msgid "" "Both Silk and Solder Mask Gerber objects has to be either both Top or both " "Bottom." @@ -16386,66 +17901,62 @@ msgstr "" "Les objets Gerber Mask de sérigraphie et de masque de soudure doivent être " "tous les deux supérieurs ou inférieurs." -#: AppTools/ToolRulesCheck.py:1387 +#: flatcamTools/ToolRulesCheck.py:1387 msgid "" "One of the Silk Gerber objects or the Outline Gerber object is not valid." msgstr "" "L'un des objets Gerber en sérigraphie ou l'objet Contour Gerber n'est pas " "valide." -#: AppTools/ToolRulesCheck.py:1431 +#: flatcamTools/ToolRulesCheck.py:1431 msgid "TOP -> Minimum Solder Mask Sliver" msgstr "TOP -> ruban de masque de soudure minimum" -#: AppTools/ToolRulesCheck.py:1441 +#: flatcamTools/ToolRulesCheck.py:1441 msgid "BOTTOM -> Minimum Solder Mask Sliver" msgstr "BAS-> ruban de masque de soudure minimum" -#: AppTools/ToolRulesCheck.py:1490 +#: flatcamTools/ToolRulesCheck.py:1490 msgid "One of the Copper Gerber objects or the Excellon objects is not valid." msgstr "L'un des objets Copper Gerber ou Excellon n'est pas valide." -#: AppTools/ToolRulesCheck.py:1506 +#: flatcamTools/ToolRulesCheck.py:1506 msgid "" "Excellon object presence is mandatory for this rule but none is selected." msgstr "" "La présence d'objet Excellon est obligatoire pour cette règle, mais aucune " "n'est sélectionnée." -#: AppTools/ToolRulesCheck.py:1579 AppTools/ToolRulesCheck.py:1592 -#: AppTools/ToolRulesCheck.py:1603 AppTools/ToolRulesCheck.py:1616 +#: flatcamTools/ToolRulesCheck.py:1579 flatcamTools/ToolRulesCheck.py:1592 +#: flatcamTools/ToolRulesCheck.py:1603 flatcamTools/ToolRulesCheck.py:1616 msgid "STATUS" msgstr "STATUT" -#: AppTools/ToolRulesCheck.py:1582 AppTools/ToolRulesCheck.py:1606 +#: flatcamTools/ToolRulesCheck.py:1582 flatcamTools/ToolRulesCheck.py:1606 msgid "FAILED" msgstr "ÉCHOUÉ" -#: AppTools/ToolRulesCheck.py:1595 AppTools/ToolRulesCheck.py:1619 +#: flatcamTools/ToolRulesCheck.py:1595 flatcamTools/ToolRulesCheck.py:1619 msgid "PASSED" msgstr "PASSÉ" -#: AppTools/ToolRulesCheck.py:1596 AppTools/ToolRulesCheck.py:1620 +#: flatcamTools/ToolRulesCheck.py:1596 flatcamTools/ToolRulesCheck.py:1620 msgid "Violations: There are no violations for the current rule." msgstr "Violations: Il n'y a pas de violations pour la règle actuelle." -#: AppTools/ToolShell.py:59 -msgid "Clear the text." -msgstr "Effacez le texte." - -#: AppTools/ToolShell.py:91 AppTools/ToolShell.py:93 +#: flatcamTools/ToolShell.py:74 flatcamTools/ToolShell.py:76 msgid "...processing..." msgstr "...En traitement..." -#: AppTools/ToolSolderPaste.py:37 +#: flatcamTools/ToolSolderPaste.py:37 msgid "Solder Paste Tool" msgstr "Outil de Pâte à souder" -#: AppTools/ToolSolderPaste.py:68 -msgid "Gerber Solderpaste object." -msgstr "Objet Gerber de pâte à souder." +#: flatcamTools/ToolSolderPaste.py:69 +msgid "Gerber Solder paste object. " +msgstr "Objet de pâte à souder Gerber. " -#: AppTools/ToolSolderPaste.py:81 +#: flatcamTools/ToolSolderPaste.py:76 msgid "" "Tools pool from which the algorithm\n" "will pick the ones used for dispensing solder paste." @@ -16453,7 +17964,7 @@ msgstr "" "Pool d'outils à partir duquel l'algorithme\n" "choisira ceux utilisés pour la distribution de la pâte à souder." -#: AppTools/ToolSolderPaste.py:96 +#: flatcamTools/ToolSolderPaste.py:91 msgid "" "This is the Tool Number.\n" "The solder dispensing will start with the tool with the biggest \n" @@ -16468,7 +17979,7 @@ msgstr "" "  avec la pâte à souder, l'application émettra une boîte de message " "d'avertissement." -#: AppTools/ToolSolderPaste.py:103 +#: flatcamTools/ToolSolderPaste.py:98 msgid "" "Nozzle tool Diameter. It's value (in current FlatCAM units)\n" "is the width of the solder paste dispensed." @@ -16476,11 +17987,11 @@ msgstr "" "Diamètre de l'outil de buse. C'est sa valeur (en unités FlatCAM actuelles)\n" "est la largeur de la pâte à braser distribuée." -#: AppTools/ToolSolderPaste.py:110 +#: flatcamTools/ToolSolderPaste.py:105 msgid "New Nozzle Tool" msgstr "Nouvel Outil de Buse" -#: AppTools/ToolSolderPaste.py:129 +#: flatcamTools/ToolSolderPaste.py:124 msgid "" "Add a new nozzle tool to the Tool Table\n" "with the diameter specified above." @@ -16488,11 +17999,15 @@ msgstr "" "Ajouter un nouvel outil de buse à la table d'outils\n" "avec le diamètre spécifié ci-dessus." -#: AppTools/ToolSolderPaste.py:151 +#: flatcamTools/ToolSolderPaste.py:136 +msgid "Generate solder paste dispensing geometry." +msgstr "Générer la géométrie de distribution de la pâte à souder." + +#: flatcamTools/ToolSolderPaste.py:155 msgid "STEP 1" msgstr "ÉTAPE 1" -#: AppTools/ToolSolderPaste.py:153 +#: flatcamTools/ToolSolderPaste.py:157 msgid "" "First step is to select a number of nozzle tools for usage\n" "and then optionally modify the GCode parameters below." @@ -16501,7 +18016,7 @@ msgstr "" "à utiliser.\n" "et éventuellement modifier les paramètres GCode ci-dessous." -#: AppTools/ToolSolderPaste.py:156 +#: flatcamTools/ToolSolderPaste.py:160 msgid "" "Select tools.\n" "Modify parameters." @@ -16509,7 +18024,7 @@ msgstr "" "Sélectionnez des outils.\n" "Modifier les paramètres." -#: AppTools/ToolSolderPaste.py:276 +#: flatcamTools/ToolSolderPaste.py:280 msgid "" "Feedrate (speed) while moving up vertically\n" " to Dispense position (on Z plane)." @@ -16517,7 +18032,7 @@ msgstr "" "Avance (vitesse) en montant verticalement\n" "position de distribution (sur le plan Z)." -#: AppTools/ToolSolderPaste.py:346 +#: flatcamTools/ToolSolderPaste.py:350 msgid "" "Generate GCode for Solder Paste dispensing\n" "on PCB pads." @@ -16525,11 +18040,11 @@ msgstr "" "Générer GCode pour la distribution de pâte à souder\n" "sur les PCB pads." -#: AppTools/ToolSolderPaste.py:367 +#: flatcamTools/ToolSolderPaste.py:371 msgid "STEP 2" msgstr "ÉTAPE 2" -#: AppTools/ToolSolderPaste.py:369 +#: flatcamTools/ToolSolderPaste.py:373 msgid "" "Second step is to create a solder paste dispensing\n" "geometry out of an Solder Paste Mask Gerber file." @@ -16537,15 +18052,11 @@ msgstr "" "La deuxième étape consiste à créer une distribution de pâte à braser\n" "géométrie d'un fichier Gerber de masque de collage de soudure." -#: AppTools/ToolSolderPaste.py:375 -msgid "Generate solder paste dispensing geometry." -msgstr "Générer la géométrie de distribution de la pâte à souder." - -#: AppTools/ToolSolderPaste.py:398 +#: flatcamTools/ToolSolderPaste.py:390 msgid "Geo Result" msgstr "Résultat de la Géo" -#: AppTools/ToolSolderPaste.py:400 +#: flatcamTools/ToolSolderPaste.py:392 msgid "" "Geometry Solder Paste object.\n" "The name of the object has to end in:\n" @@ -16555,11 +18066,11 @@ msgstr "" "Le nom de l'objet doit se terminer par:\n" "'_solderpaste' comme protection." -#: AppTools/ToolSolderPaste.py:409 +#: flatcamTools/ToolSolderPaste.py:401 msgid "STEP 3" msgstr "ÉTAPE 3" -#: AppTools/ToolSolderPaste.py:411 +#: flatcamTools/ToolSolderPaste.py:403 msgid "" "Third step is to select a solder paste dispensing geometry,\n" "and then generate a CNCJob object.\n" @@ -16576,11 +18087,11 @@ msgstr "" "vous devez d’abord générer une géométrie avec ces nouveaux paramètres,\n" "et seulement après cela, vous pouvez générer un CNCJob mis à jour." -#: AppTools/ToolSolderPaste.py:432 +#: flatcamTools/ToolSolderPaste.py:424 msgid "CNC Result" msgstr "Résultat CNC" -#: AppTools/ToolSolderPaste.py:434 +#: flatcamTools/ToolSolderPaste.py:426 msgid "" "CNCJob Solder paste object.\n" "In order to enable the GCode save section,\n" @@ -16592,11 +18103,11 @@ msgstr "" "le nom de l'objet doit se terminer par:\n" "'_solderpaste' comme protection." -#: AppTools/ToolSolderPaste.py:444 +#: flatcamTools/ToolSolderPaste.py:436 msgid "View GCode" msgstr "Voir le GCode" -#: AppTools/ToolSolderPaste.py:446 +#: flatcamTools/ToolSolderPaste.py:438 msgid "" "View the generated GCode for Solder Paste dispensing\n" "on PCB pads." @@ -16604,11 +18115,11 @@ msgstr "" "Afficher le GCode généré pour la distribution de pâte à souder\n" "sur les plaquettes de circuits imprimés." -#: AppTools/ToolSolderPaste.py:456 +#: flatcamTools/ToolSolderPaste.py:448 msgid "Save GCode" msgstr "Enregistrer le GCode" -#: AppTools/ToolSolderPaste.py:458 +#: flatcamTools/ToolSolderPaste.py:450 msgid "" "Save the generated GCode for Solder Paste dispensing\n" "on PCB pads, to a file." @@ -16616,11 +18127,11 @@ msgstr "" "Sauvegarder le GCode généré pour la distribution de pâte à souder\n" "sur des plaquettes de circuits imprimés, dans un fichier." -#: AppTools/ToolSolderPaste.py:468 +#: flatcamTools/ToolSolderPaste.py:460 msgid "STEP 4" msgstr "ÉTAPE 4" -#: AppTools/ToolSolderPaste.py:470 +#: flatcamTools/ToolSolderPaste.py:462 msgid "" "Fourth step (and last) is to select a CNCJob made from \n" "a solder paste dispensing geometry, and then view/save it's GCode." @@ -16630,95 +18141,99 @@ msgstr "" "une géométrie de distribution de la pâte à souder, puis affichez / " "enregistrez son GCode." -#: AppTools/ToolSolderPaste.py:930 +#: flatcamTools/ToolSolderPaste.py:922 msgid "New Nozzle tool added to Tool Table." msgstr "Nouvel Outil de Buse ajouté à la table d'outils." -#: AppTools/ToolSolderPaste.py:973 +#: flatcamTools/ToolSolderPaste.py:965 msgid "Nozzle tool from Tool Table was edited." msgstr "L'outil de buse de la table d'outils a été modifié." -#: AppTools/ToolSolderPaste.py:1032 +#: flatcamTools/ToolSolderPaste.py:1024 msgid "Delete failed. Select a Nozzle tool to delete." msgstr "La suppression a échoué. Sélectionnez un outil de buse à supprimer." -#: AppTools/ToolSolderPaste.py:1038 +#: flatcamTools/ToolSolderPaste.py:1030 msgid "Nozzle tool(s) deleted from Tool Table." msgstr "Outil (s) de buse supprimé (s) de la table d'outils." -#: AppTools/ToolSolderPaste.py:1094 +#: flatcamTools/ToolSolderPaste.py:1086 msgid "No SolderPaste mask Gerber object loaded." msgstr "Aucun objet Gerber de masque de pâte à souder chargé." -#: AppTools/ToolSolderPaste.py:1112 +#: flatcamTools/ToolSolderPaste.py:1104 msgid "Creating Solder Paste dispensing geometry." msgstr "Création de la géométrie de distribution de pâte à souder." -#: AppTools/ToolSolderPaste.py:1125 +#: flatcamTools/ToolSolderPaste.py:1117 msgid "No Nozzle tools in the tool table." msgstr "Aucun outil de buse dans la table à outils." -#: AppTools/ToolSolderPaste.py:1251 +#: flatcamTools/ToolSolderPaste.py:1243 msgid "Cancelled. Empty file, it has no geometry..." msgstr "Annulé. Fichier vide, il n'a pas de géométrie ..." -#: AppTools/ToolSolderPaste.py:1254 +#: flatcamTools/ToolSolderPaste.py:1246 msgid "Solder Paste geometry generated successfully" msgstr "Géométrie de pâte à souder générée avec succès" -#: AppTools/ToolSolderPaste.py:1261 +#: flatcamTools/ToolSolderPaste.py:1253 msgid "Some or all pads have no solder due of inadequate nozzle diameters..." msgstr "" "Certains ou tous les tampons n'ont pas de soudure en raison de diamètres de " "buse inadéquats ..." -#: AppTools/ToolSolderPaste.py:1275 +#: flatcamTools/ToolSolderPaste.py:1267 msgid "Generating Solder Paste dispensing geometry..." msgstr "Génération de géométrie de distribution de pâte à souder ..." -#: AppTools/ToolSolderPaste.py:1295 +#: flatcamTools/ToolSolderPaste.py:1287 msgid "There is no Geometry object available." msgstr "Il n'y a pas d'objet Géométrie disponible." -#: AppTools/ToolSolderPaste.py:1300 +#: flatcamTools/ToolSolderPaste.py:1292 msgid "This Geometry can't be processed. NOT a solder_paste_tool geometry." msgstr "" "Cette géométrie ne peut pas être traitée. PAS une géométrie " "solder_paste_tool." -#: AppTools/ToolSolderPaste.py:1336 +#: flatcamTools/ToolSolderPaste.py:1328 msgid "An internal error has ocurred. See shell.\n" msgstr "Une erreur interne s'est produite. Voir shell.\n" -#: AppTools/ToolSolderPaste.py:1401 +#: flatcamTools/ToolSolderPaste.py:1393 msgid "ToolSolderPaste CNCjob created" msgstr "Outil de Pâte à Souder CNCjob créé" -#: AppTools/ToolSolderPaste.py:1420 +#: flatcamTools/ToolSolderPaste.py:1412 msgid "SP GCode Editor" msgstr "Éditeur SP GCode" -#: AppTools/ToolSolderPaste.py:1432 AppTools/ToolSolderPaste.py:1437 -#: AppTools/ToolSolderPaste.py:1492 +#: flatcamTools/ToolSolderPaste.py:1424 flatcamTools/ToolSolderPaste.py:1429 +#: flatcamTools/ToolSolderPaste.py:1484 msgid "" "This CNCJob object can't be processed. NOT a solder_paste_tool CNCJob object." msgstr "" "Cet objet CNCJob ne peut pas être traité. PAS un objet CNCJob " "solder_paste_tool." -#: AppTools/ToolSolderPaste.py:1462 +#: flatcamTools/ToolSolderPaste.py:1454 msgid "No Gcode in the object" msgstr "Pas de Gcode dans l'objet" -#: AppTools/ToolSolderPaste.py:1502 +#: flatcamTools/ToolSolderPaste.py:1494 msgid "Export GCode ..." msgstr "Exporter le GCode ..." -#: AppTools/ToolSolderPaste.py:1550 +#: flatcamTools/ToolSolderPaste.py:1542 msgid "Solder paste dispenser GCode file saved to" msgstr "Fichier GCode du distributeur de pâte à souder enregistré dans" -#: AppTools/ToolSub.py:83 +#: flatcamTools/ToolSub.py:65 +msgid "Gerber Objects" +msgstr "Objets Gerber" + +#: flatcamTools/ToolSub.py:78 msgid "" "Gerber object from which to subtract\n" "the subtractor Gerber object." @@ -16726,11 +18241,11 @@ msgstr "" "Objet de Gerber auquel soustraire\n" "l'objet soustracteur Gerber." -#: AppTools/ToolSub.py:96 AppTools/ToolSub.py:151 +#: flatcamTools/ToolSub.py:91 flatcamTools/ToolSub.py:146 msgid "Subtractor" msgstr "Soustracteur" -#: AppTools/ToolSub.py:98 +#: flatcamTools/ToolSub.py:93 msgid "" "Gerber object that will be subtracted\n" "from the target Gerber object." @@ -16738,11 +18253,11 @@ msgstr "" "Objet Gerber qui sera soustrait\n" "à partir de l'objet Gerber cible." -#: AppTools/ToolSub.py:105 +#: flatcamTools/ToolSub.py:100 msgid "Subtract Gerber" msgstr "Soustraire Gerber" -#: AppTools/ToolSub.py:107 +#: flatcamTools/ToolSub.py:102 msgid "" "Will remove the area occupied by the subtractor\n" "Gerber from the Target Gerber.\n" @@ -16754,7 +18269,11 @@ msgstr "" "Peut être utilisé pour enlever la sérigraphie qui se chevauchent\n" "sur le masque de soudure." -#: AppTools/ToolSub.py:138 +#: flatcamTools/ToolSub.py:120 +msgid "Geometry Objects" +msgstr "Objets géométriques" + +#: flatcamTools/ToolSub.py:133 msgid "" "Geometry object from which to subtract\n" "the subtractor Geometry object." @@ -16762,7 +18281,7 @@ msgstr "" "Objet de géométrie à soustraire\n" "l'objet géométrique soustracteur." -#: AppTools/ToolSub.py:153 +#: flatcamTools/ToolSub.py:148 msgid "" "Geometry object that will be subtracted\n" "from the target Geometry object." @@ -16770,18 +18289,18 @@ msgstr "" "Objet de géométrie qui sera soustrait\n" "à partir de l'objet de géométrie cible." -#: AppTools/ToolSub.py:161 +#: flatcamTools/ToolSub.py:156 msgid "" "Checking this will close the paths cut by the Geometry subtractor object." msgstr "" "En cochant cette case, vous fermez les chemins coupés par l'objet " "soustracteur de géométrie." -#: AppTools/ToolSub.py:164 +#: flatcamTools/ToolSub.py:159 msgid "Subtract Geometry" msgstr "Soustraire la géométrie" -#: AppTools/ToolSub.py:166 +#: flatcamTools/ToolSub.py:161 msgid "" "Will remove the area occupied by the subtractor\n" "Geometry from the Target Geometry." @@ -16789,61 +18308,66 @@ msgstr "" "Va supprimer la zone occupée par le soustracteur\n" "Géométrie à partir de la géométrie cible." -#: AppTools/ToolSub.py:264 +#: flatcamTools/ToolSub.py:263 msgid "Sub Tool" msgstr "Outil Sous" -#: AppTools/ToolSub.py:285 AppTools/ToolSub.py:490 +#: flatcamTools/ToolSub.py:284 flatcamTools/ToolSub.py:489 msgid "No Target object loaded." msgstr "Aucun objet cible chargé." -#: AppTools/ToolSub.py:288 +#: flatcamTools/ToolSub.py:287 msgid "Loading geometry from Gerber objects." msgstr "Chargement de la géométrie à partir d'objets Gerber." -#: AppTools/ToolSub.py:300 AppTools/ToolSub.py:505 +#: flatcamTools/ToolSub.py:299 flatcamTools/ToolSub.py:504 msgid "No Subtractor object loaded." msgstr "Aucun objet soustracteur n'a été chargé." -#: AppTools/ToolSub.py:342 +#: flatcamTools/ToolSub.py:331 +msgid "Processing geometry from Subtractor Gerber object." +msgstr "Traitement de la géométrie de l'objet Gerber soustracteur." + +#: flatcamTools/ToolSub.py:352 +msgid "Parsing geometry for aperture" +msgstr "Analyser la géométrie pour l'ouverture" + +#: flatcamTools/ToolSub.py:413 msgid "Finished parsing geometry for aperture" msgstr "Géométrie d'analyse terminée pour l'ouverture" -#: AppTools/ToolSub.py:344 -msgid "Subtraction aperture processing finished." -msgstr "Le traitement d'ouverture de soustraction est terminé." - -#: AppTools/ToolSub.py:464 AppTools/ToolSub.py:662 +#: flatcamTools/ToolSub.py:458 flatcamTools/ToolSub.py:661 msgid "Generating new object ..." msgstr "Générer un nouvel objet ..." -#: AppTools/ToolSub.py:467 AppTools/ToolSub.py:666 AppTools/ToolSub.py:745 +#: flatcamTools/ToolSub.py:462 flatcamTools/ToolSub.py:665 +#: flatcamTools/ToolSub.py:746 msgid "Generating new object failed." msgstr "La génération du nouvel objet a échoué." -#: AppTools/ToolSub.py:471 AppTools/ToolSub.py:672 +#: flatcamTools/ToolSub.py:467 flatcamTools/ToolSub.py:671 msgid "Created" msgstr "Établi" -#: AppTools/ToolSub.py:519 +#: flatcamTools/ToolSub.py:518 msgid "Currently, the Subtractor geometry cannot be of type Multigeo." msgstr "" "Actuellement, la géométrie du soustracteur ne peut pas être de type multi-" "géo." -#: AppTools/ToolSub.py:564 +#: flatcamTools/ToolSub.py:563 msgid "Parsing solid_geometry ..." -msgstr "Analyse de solid_géométrie ..." +msgstr "Analyse de solid_geometry ..." -#: AppTools/ToolSub.py:566 +#: flatcamTools/ToolSub.py:565 msgid "Parsing solid_geometry for tool" -msgstr "Analyse de solid_géométrie pour l'outil" +msgstr "Analyse de solid_geometry pour l'outil" -#: AppTools/ToolTransform.py:23 +#: flatcamTools/ToolTransform.py:23 msgid "Object Transform" msgstr "Transformation d'objet" -#: AppTools/ToolTransform.py:78 +#: flatcamTools/ToolTransform.py:78 msgid "" "Rotate the selected object(s).\n" "The point of reference is the middle of\n" @@ -16853,7 +18377,7 @@ msgstr "" "Le point de référence est le milieu de\n" "le cadre de sélection pour tous les objets sélectionnés." -#: AppTools/ToolTransform.py:99 AppTools/ToolTransform.py:120 +#: flatcamTools/ToolTransform.py:99 flatcamTools/ToolTransform.py:120 msgid "" "Angle for Skew action, in degrees.\n" "Float number between -360 and 360." @@ -16861,7 +18385,7 @@ msgstr "" "Angle pour l'action asymétrique, en degrés.\n" "Nombre flottant entre -360 et 360." -#: AppTools/ToolTransform.py:109 AppTools/ToolTransform.py:130 +#: flatcamTools/ToolTransform.py:109 flatcamTools/ToolTransform.py:130 msgid "" "Skew/shear the selected object(s).\n" "The point of reference is the middle of\n" @@ -16871,7 +18395,7 @@ msgstr "" "Le point de référence est le milieu de\n" "le cadre de sélection pour tous les objets sélectionnés." -#: AppTools/ToolTransform.py:159 AppTools/ToolTransform.py:179 +#: flatcamTools/ToolTransform.py:159 flatcamTools/ToolTransform.py:179 msgid "" "Scale the selected object(s).\n" "The point of reference depends on \n" @@ -16881,7 +18405,7 @@ msgstr "" "Le point de référence dépend de\n" "l'état de la case à cocher référence d'échelle." -#: AppTools/ToolTransform.py:228 AppTools/ToolTransform.py:248 +#: flatcamTools/ToolTransform.py:228 flatcamTools/ToolTransform.py:248 msgid "" "Offset the selected object(s).\n" "The point of reference is the middle of\n" @@ -16891,15 +18415,15 @@ msgstr "" "Le point de référence est le milieu de\n" "le cadre de sélection pour tous les objets sélectionnés.\n" -#: AppTools/ToolTransform.py:268 AppTools/ToolTransform.py:273 +#: flatcamTools/ToolTransform.py:268 flatcamTools/ToolTransform.py:273 msgid "Flip the selected object(s) over the X axis." msgstr "Retournez le ou les objets sélectionnés sur l’axe X." -#: AppTools/ToolTransform.py:297 +#: flatcamTools/ToolTransform.py:297 msgid "Ref. Point" msgstr "Miroir Réf. Point" -#: AppTools/ToolTransform.py:348 +#: flatcamTools/ToolTransform.py:348 msgid "" "Create the buffer effect on each geometry,\n" "element from the selected object, using the distance." @@ -16907,7 +18431,7 @@ msgstr "" "Créez l'effet tampon sur chaque géométrie,\n" "élément de l'objet sélectionné, en utilisant la distance." -#: AppTools/ToolTransform.py:374 +#: flatcamTools/ToolTransform.py:374 msgid "" "Create the buffer effect on each geometry,\n" "element from the selected object, using the factor." @@ -16915,1753 +18439,131 @@ msgstr "" "Créez l'effet tampon sur chaque géométrie,\n" "élément de l'objet sélectionné, en utilisant le facteur." -#: AppTools/ToolTransform.py:479 +#: flatcamTools/ToolTransform.py:479 msgid "Buffer D" msgstr "Tampon D" -#: AppTools/ToolTransform.py:480 +#: flatcamTools/ToolTransform.py:480 msgid "Buffer F" msgstr "Tampon F" -#: AppTools/ToolTransform.py:557 +#: flatcamTools/ToolTransform.py:557 msgid "Rotate transformation can not be done for a value of 0." msgstr "" "La transformation par rotation ne peut pas être effectuée pour une valeur de " "0." -#: AppTools/ToolTransform.py:596 AppTools/ToolTransform.py:619 +#: flatcamTools/ToolTransform.py:596 flatcamTools/ToolTransform.py:619 msgid "Scale transformation can not be done for a factor of 0 or 1." msgstr "" "La transformation d'échelle ne peut pas être effectuée pour un facteur de 0 " "ou 1." -#: AppTools/ToolTransform.py:634 AppTools/ToolTransform.py:644 +#: flatcamTools/ToolTransform.py:634 flatcamTools/ToolTransform.py:644 msgid "Offset transformation can not be done for a value of 0." msgstr "" "La transformation de décalage ne peut pas être effectuée pour une valeur de " "0." -#: AppTools/ToolTransform.py:676 +#: flatcamTools/ToolTransform.py:676 msgid "No object selected. Please Select an object to rotate!" msgstr "" "Aucun objet sélectionné. Veuillez sélectionner un objet à faire pivoter!" -#: AppTools/ToolTransform.py:702 +#: flatcamTools/ToolTransform.py:702 msgid "CNCJob objects can't be rotated." msgstr "Les objets CNCJob ne peuvent pas être pivotés." -#: AppTools/ToolTransform.py:710 +#: flatcamTools/ToolTransform.py:710 msgid "Rotate done" msgstr "Faire pivoter" -#: AppTools/ToolTransform.py:713 AppTools/ToolTransform.py:783 -#: AppTools/ToolTransform.py:833 AppTools/ToolTransform.py:887 -#: AppTools/ToolTransform.py:917 AppTools/ToolTransform.py:953 +#: flatcamTools/ToolTransform.py:713 flatcamTools/ToolTransform.py:783 +#: flatcamTools/ToolTransform.py:833 flatcamTools/ToolTransform.py:887 +#: flatcamTools/ToolTransform.py:917 flatcamTools/ToolTransform.py:953 msgid "Due of" msgstr "À cause de" -#: AppTools/ToolTransform.py:713 AppTools/ToolTransform.py:783 -#: AppTools/ToolTransform.py:833 AppTools/ToolTransform.py:887 -#: AppTools/ToolTransform.py:917 AppTools/ToolTransform.py:953 +#: flatcamTools/ToolTransform.py:713 flatcamTools/ToolTransform.py:783 +#: flatcamTools/ToolTransform.py:833 flatcamTools/ToolTransform.py:887 +#: flatcamTools/ToolTransform.py:917 flatcamTools/ToolTransform.py:953 msgid "action was not executed." msgstr "l'action n'a pas été exécutée." -#: AppTools/ToolTransform.py:725 +#: flatcamTools/ToolTransform.py:725 msgid "No object selected. Please Select an object to flip" msgstr "Aucun objet sélectionné. Veuillez sélectionner un objet à refléter" -#: AppTools/ToolTransform.py:758 +#: flatcamTools/ToolTransform.py:758 msgid "CNCJob objects can't be mirrored/flipped." msgstr "Les objets CNCJob ne peuvent pas être inversés / inversés." -#: AppTools/ToolTransform.py:793 +#: flatcamTools/ToolTransform.py:793 msgid "Skew transformation can not be done for 0, 90 and 180 degrees." msgstr "" "La transformation asymétrique ne peut pas être effectuée pour 0, 90 et 180 " "degrés." -#: AppTools/ToolTransform.py:798 +#: flatcamTools/ToolTransform.py:798 msgid "No object selected. Please Select an object to shear/skew!" msgstr "" "Aucun objet sélectionné. Veuillez sélectionner un objet à cisailler / " "incliner!" -#: AppTools/ToolTransform.py:818 +#: flatcamTools/ToolTransform.py:818 msgid "CNCJob objects can't be skewed." msgstr "Les objets CNCJob ne peuvent pas être biaisés." -#: AppTools/ToolTransform.py:830 +#: flatcamTools/ToolTransform.py:830 msgid "Skew on the" msgstr "Biais sur le" -#: AppTools/ToolTransform.py:830 AppTools/ToolTransform.py:884 -#: AppTools/ToolTransform.py:914 +#: flatcamTools/ToolTransform.py:830 flatcamTools/ToolTransform.py:884 +#: flatcamTools/ToolTransform.py:914 msgid "axis done" msgstr "axe fait" -#: AppTools/ToolTransform.py:844 +#: flatcamTools/ToolTransform.py:844 msgid "No object selected. Please Select an object to scale!" msgstr "" "Aucun objet sélectionné. Veuillez sélectionner un objet à mettre à l'échelle!" -#: AppTools/ToolTransform.py:875 +#: flatcamTools/ToolTransform.py:875 msgid "CNCJob objects can't be scaled." msgstr "Les objets CNCJob ne peuvent pas être mis à l'échelle." -#: AppTools/ToolTransform.py:884 +#: flatcamTools/ToolTransform.py:884 msgid "Scale on the" msgstr "Échelle sur le" -#: AppTools/ToolTransform.py:894 +#: flatcamTools/ToolTransform.py:894 msgid "No object selected. Please Select an object to offset!" msgstr "Aucun objet sélectionné. Veuillez sélectionner un objet à compenser!" -#: AppTools/ToolTransform.py:901 +#: flatcamTools/ToolTransform.py:901 msgid "CNCJob objects can't be offset." -msgstr "Les objets CNCJob ne peuvent pas être décalés." +msgstr "CNCJob objects can't be offset." -#: AppTools/ToolTransform.py:914 +#: flatcamTools/ToolTransform.py:914 msgid "Offset on the" msgstr "Compenser sur le" -#: AppTools/ToolTransform.py:924 +#: flatcamTools/ToolTransform.py:924 msgid "No object selected. Please Select an object to buffer!" msgstr "Aucun objet sélectionné. Veuillez sélectionner un objet à tamponner!" -#: AppTools/ToolTransform.py:927 +#: flatcamTools/ToolTransform.py:927 msgid "Applying Buffer" msgstr "Application du tampon" -#: AppTools/ToolTransform.py:931 +#: flatcamTools/ToolTransform.py:931 msgid "CNCJob objects can't be buffered." msgstr "Les objets CNCJob ne peuvent pas être mis en mémoire tampon." -#: AppTools/ToolTransform.py:948 +#: flatcamTools/ToolTransform.py:948 msgid "Buffer done" msgstr "Tampon terminé" -#: AppTranslation.py:104 -msgid "The application will restart." -msgstr "L'application va redémarrer." - -#: AppTranslation.py:106 -msgid "Are you sure do you want to change the current language to" -msgstr "Etes-vous sûr de vouloir changer la langue actuelle en" - -#: AppTranslation.py:107 -msgid "Apply Language ..." -msgstr "Appliquer la langue ..." - -#: AppTranslation.py:203 App_Main.py:3151 -msgid "" -"There are files/objects modified in FlatCAM. \n" -"Do you want to Save the project?" -msgstr "" -"Il y a eu des modifications dans FlatCAM.\n" -"Voulez-vous enregistrer le projet?" - -#: AppTranslation.py:206 App_Main.py:3154 App_Main.py:6411 -msgid "Save changes" -msgstr "Sauvegarder les modifications" - -#: App_Main.py:477 -msgid "FlatCAM is initializing ..." -msgstr "FlatCAM est en cours d'initialisation ..." - -#: App_Main.py:620 -msgid "Could not find the Language files. The App strings are missing." -msgstr "Impossible de trouver les fichiers de languages. Fichiers Absent." - -#: App_Main.py:692 -msgid "" -"FlatCAM is initializing ...\n" -"Canvas initialization started." -msgstr "" -"FlatCAM est en cours d'initialisation ...\n" -"Initialisation du Canevas." - -#: App_Main.py:712 -msgid "" -"FlatCAM is initializing ...\n" -"Canvas initialization started.\n" -"Canvas initialization finished in" -msgstr "" -"FlatCAM est en cours d'initialisation ...\n" -"Initialisation du Canevas\n" -"Initialisation terminée en" - -#: App_Main.py:1558 App_Main.py:6524 -msgid "New Project - Not saved" -msgstr "Nouveau projet - Non enregistré" - -#: App_Main.py:1659 -msgid "" -"Found old default preferences files. Please reboot the application to update." -msgstr "" -"Anciens fichiers par défaut trouvés. Veuillez redémarrer pour mettre à jour " -"l'application." - -#: App_Main.py:1726 -msgid "Open Config file failed." -msgstr "Défaut d'ouverture du fichier de configuration." - -#: App_Main.py:1741 -msgid "Open Script file failed." -msgstr "Défaut d'ouverture du fichier Script." - -#: App_Main.py:1767 -msgid "Open Excellon file failed." -msgstr "Défaut d'ouverture du fichier Excellon." - -#: App_Main.py:1780 -msgid "Open GCode file failed." -msgstr "Défaut d'ouverture du fichier G-code." - -#: App_Main.py:1793 -msgid "Open Gerber file failed." -msgstr "Défaut d'ouverture du fichier Gerber." - -#: App_Main.py:2116 -msgid "Select a Geometry, Gerber, Excellon or CNCJob Object to edit." -msgstr "" -"Sélectionnez une Géométrie, Gerber, Excellon ou un objet CNCJob à modifier." - -#: App_Main.py:2131 -msgid "" -"Simultaneous editing of tools geometry in a MultiGeo Geometry is not " -"possible.\n" -"Edit only one geometry at a time." -msgstr "" -"L'édition simultanée de plusieurs géométrie n'est pas possible.\n" -"Modifiez une seule géométrie à la fois." - -#: App_Main.py:2197 -msgid "Editor is activated ..." -msgstr "Editeur activé ..." - -#: App_Main.py:2218 -msgid "Do you want to save the edited object?" -msgstr "Voulez-vous enregistrer l'objet ?" - -#: App_Main.py:2254 -msgid "Object empty after edit." -msgstr "Objet vide après édition." - -#: App_Main.py:2259 App_Main.py:2277 App_Main.py:2296 -msgid "Editor exited. Editor content saved." -msgstr "Sortie de l'éditeur. Contenu enregistré." - -#: App_Main.py:2300 App_Main.py:2324 App_Main.py:2342 -msgid "Select a Gerber, Geometry or Excellon Object to update." -msgstr "Sélectionnez l'objet Géométrie, Gerber, ou Excellon à mettre à jour." - -#: App_Main.py:2303 -msgid "is updated, returning to App..." -msgstr "est mis à jour, Retour au programme..." - -#: App_Main.py:2310 -msgid "Editor exited. Editor content was not saved." -msgstr "Sortie de l'editeur. Contenu non enregistré." - -#: App_Main.py:2443 App_Main.py:2447 -msgid "Import FlatCAM Preferences" -msgstr "Importer les paramètres FlatCAM" - -#: App_Main.py:2458 -msgid "Imported Defaults from" -msgstr "Valeurs par défaut importées de" - -#: App_Main.py:2478 App_Main.py:2484 -msgid "Export FlatCAM Preferences" -msgstr "Exporter les paramètres FlatCAM" - -#: App_Main.py:2504 -msgid "Exported preferences to" -msgstr "Paramètres exportées vers" - -#: App_Main.py:2524 App_Main.py:2529 -msgid "Save to file" -msgstr "Enregistrer dans un fichier" - -#: App_Main.py:2553 -msgid "Could not load the file." -msgstr "Chargement du fichier Impossible." - -#: App_Main.py:2569 -msgid "Exported file to" -msgstr "Fichier exporté vers" - -#: App_Main.py:2606 -msgid "Failed to open recent files file for writing." -msgstr "Échec d'ouverture du fichier en écriture." - -#: App_Main.py:2617 -msgid "Failed to open recent projects file for writing." -msgstr "Échec d'ouverture des fichiers de projets en écriture." - -#: App_Main.py:2672 -msgid "2D Computer-Aided Printed Circuit Board Manufacturing" -msgstr "Fabrication de dessin de circuits imprimés 2D assistées par ordinateur" - -#: App_Main.py:2673 -msgid "Development" -msgstr "Développement" - -#: App_Main.py:2674 -msgid "DOWNLOAD" -msgstr "TÉLÉCHARGER" - -#: App_Main.py:2675 -msgid "Issue tracker" -msgstr "Traqueur d'incidents" - -#: App_Main.py:2694 -msgid "Licensed under the MIT license" -msgstr "Sous licence MIT" - -#: App_Main.py:2703 -msgid "" -"Permission is hereby granted, free of charge, to any person obtaining a " -"copy\n" -"of this software and associated documentation files (the \"Software\"), to " -"deal\n" -"in the Software without restriction, including without limitation the " -"rights\n" -"to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n" -"copies of the Software, and to permit persons to whom the Software is\n" -"furnished to do so, subject to the following conditions:\n" -"\n" -"The above copyright notice and this permission notice shall be included in\n" -"all copies or substantial portions of the Software.\n" -"\n" -"THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS " -"OR\n" -"IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n" -"FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n" -"AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n" -"LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING " -"FROM,\n" -"OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n" -"THE SOFTWARE." -msgstr "" -"Par la présente, une autorisation est accordée gratuitement à toute personne " -"qui obtient une copie.\n" -"de ce logiciel et des fichiers de documentation associés pour fonctionner\n" -"Le logiciel est sans restriction ni limitation.\n" -"Utiliser, copier, modifier, fusionner, publier, distribuer, concéder en sous-" -"licence et/ou vendre copies du logiciel,\n" -"permettre aux personnes à qui le logiciel est utile\n" -" devra ce faire sous réserve des conditions suivantes:\n" -"\n" -"L'avis de copyright ci-dessus et cet avis de permission doivent être inclus " -"dans\n" -"toutes copies intégrales ou partielles du logiciel.\n" -"\n" -"\n" -"\n" -"LE LOGICIEL EST FOURNI «TEL QUEL», SANS GARANTIE D'AUCUNE SORTE, EXPRESSE OU " -"IMPLICITE, \n" -"MAIS SANS LIMITER LES GARANTIES DE QUALITÉ MARCHANDE, ADAPTER À USAGE DES " -"PARTICULIERS \n" -"SANS CONTREFAÇON. \n" -"EN AUCUN CAS LES AUTEURS OU LES DÉTENTEURS DE DROITS D'AUTEUR NE SERONT " -"RESPONSABLES \n" -"DE TOUTES RÉCLAMATIONS, DOMMAGES OU AUTRES RESPONSABILITÉS, QUE CE SOIT DANS " -"UNE \n" -"ACTION CONTRACTUELLE, OU AUTRE, DÉCOULANT DU LOGICIEL, DE SONT UTILISATION " -"OU \n" -"D'AUTRES OPÉRATIONS DANS LE LOGICIEL.LES LOGICIELS." - -#: App_Main.py:2725 -msgid "" -"Some of the icons used are from the following sources:
    Icons by Icons8
    Icons by oNline Web Fonts" -msgstr "" -"Certaines des icônes utilisées proviennent des sources suivantes: " -"
    IIcônes de Freepik . à partir de www.flaticon.com
    Icônes de Icons8
    Icônes de " -"oNline Web Fonts
    Icônes de " -"Pixel perfect à partir dewww.flaticon.com
    " - -#: App_Main.py:2761 -msgid "Splash" -msgstr "A Propos" - -#: App_Main.py:2767 -msgid "Programmers" -msgstr "Programmeurs" - -#: App_Main.py:2773 -msgid "Translators" -msgstr "Traducteurs" - -#: App_Main.py:2779 -msgid "License" -msgstr "Licence" - -#: App_Main.py:2785 -msgid "Attributions" -msgstr "Attributions" - -#: App_Main.py:2808 -msgid "Programmer" -msgstr "Programmeur" - -#: App_Main.py:2809 -msgid "Status" -msgstr "Statut" - -#: App_Main.py:2810 App_Main.py:2890 -msgid "E-mail" -msgstr "Email" - -#: App_Main.py:2813 -msgid "Program Author" -msgstr "Auteur du programme" - -#: App_Main.py:2818 -msgid "BETA Maintainer >= 2019" -msgstr "Mainteneur BETA> = 2019" - -#: App_Main.py:2887 -msgid "Language" -msgstr "Langue" - -#: App_Main.py:2888 -msgid "Translator" -msgstr "Traducteur" - -#: App_Main.py:2889 -msgid "Corrections" -msgstr "Corrections" - -#: App_Main.py:2963 -msgid "Important Information's" -msgstr "Informations importantes" - -#: App_Main.py:3111 -msgid "" -"This entry will resolve to another website if:\n" -"\n" -"1. FlatCAM.org website is down\n" -"2. Someone forked FlatCAM project and wants to point\n" -"to his own website\n" -"\n" -"If you can't get any informations about FlatCAM beta\n" -"use the YouTube channel link from the Help menu." -msgstr "" -"Cette entrée sera dirigé vers un autre site Web si:\n" -"\n" -"1. Le site FlatCAM.org est en panne\n" -"2. Détournement d'URL\n" -"\n" -"Si vous ne pouvez pas obtenir d'informations sur FlatCAM beta\n" -"utilisez le lien de chaîne YouTube dans le menu Aide." - -#: App_Main.py:3118 -msgid "Alternative website" -msgstr "Site alternatif" - -#: App_Main.py:3421 -msgid "Selected Excellon file extensions registered with FlatCAM." -msgstr "Extensions de fichier Excellon sélectionnées enregistrées." - -#: App_Main.py:3443 -msgid "Selected GCode file extensions registered with FlatCAM." -msgstr "Extensions de fichier GCode sélectionnées enregistrées." - -#: App_Main.py:3465 -msgid "Selected Gerber file extensions registered with FlatCAM." -msgstr "Extensions de fichiers Gerber sélectionnées enregistrées." - -#: App_Main.py:3653 App_Main.py:3712 App_Main.py:3740 -msgid "At least two objects are required for join. Objects currently selected" -msgstr "" -"Deux objets sont requis pour etre joint. Objets actuellement sélectionnés" - -#: App_Main.py:3662 -msgid "" -"Failed join. The Geometry objects are of different types.\n" -"At least one is MultiGeo type and the other is SingleGeo type. A possibility " -"is to convert from one to another and retry joining \n" -"but in the case of converting from MultiGeo to SingleGeo, informations may " -"be lost and the result may not be what was expected. \n" -"Check the generated GCODE." -msgstr "" -"Échec de la fonction. Les objets de géométrie sont de types différents.\n" -"Au moins un est de type MultiGeo et l'autre de type SingleGeo. \n" -"Une des possibilité est de les convertir et de réessayer\n" -"Attention, dans une conversion de MultiGeo vers SingleGeo, \n" -"des informations risquent d'être perdues et le résultat risque d'être " -"inattendu \n" -"Vérifiez le GCODE généré." - -#: App_Main.py:3674 App_Main.py:3684 -msgid "Geometry merging finished" -msgstr "Fusion de la géométrie terminée" - -#: App_Main.py:3707 -msgid "Failed. Excellon joining works only on Excellon objects." -msgstr "Érreur. Excellon ne travaille que sur des objets Excellon." - -#: App_Main.py:3717 -msgid "Excellon merging finished" -msgstr "Fusion Excellon terminée" - -#: App_Main.py:3735 -msgid "Failed. Gerber joining works only on Gerber objects." -msgstr "Érreur. Les jonctions Gerber ne fonctionne que sur des objets Gerber." - -#: App_Main.py:3745 -msgid "Gerber merging finished" -msgstr "Fusion Gerber terminée" - -#: App_Main.py:3765 App_Main.py:3802 -msgid "Failed. Select a Geometry Object and try again." -msgstr "Érreur. Sélectionnez un objet de géométrie et réessayez." - -#: App_Main.py:3769 App_Main.py:3807 -msgid "Expected a GeometryObject, got" -msgstr "Érreur. Sélectionnez un objet de géométrie et réessayez" - -#: App_Main.py:3784 -msgid "A Geometry object was converted to MultiGeo type." -msgstr "Un objet Géométrie a été converti au format MultiGeo." - -#: App_Main.py:3822 -msgid "A Geometry object was converted to SingleGeo type." -msgstr "L'objet Géométrie a été converti au format SingleGeo." - -#: App_Main.py:4029 -msgid "Toggle Units" -msgstr "Changement d'unités" - -#: App_Main.py:4033 -msgid "" -"Changing the units of the project\n" -"will scale all objects.\n" -"\n" -"Do you want to continue?" -msgstr "" -"Le changement d'unités\n" -"mettra à l'échelle tous les objets.\n" -"\n" -"Voulez-vous continuer?" - -#: App_Main.py:4036 App_Main.py:4223 App_Main.py:4306 App_Main.py:6809 -#: App_Main.py:6825 App_Main.py:7163 App_Main.py:7175 -msgid "Ok" -msgstr "D'accord" - -#: App_Main.py:4086 -msgid "Converted units to" -msgstr "Unités converties en" - -#: App_Main.py:4121 -msgid "Detachable Tabs" -msgstr "Onglets détachables" - -#: App_Main.py:4150 -msgid "Workspace enabled." -msgstr "Espace de travail activé." - -#: App_Main.py:4153 -msgid "Workspace disabled." -msgstr "Espace de travail désactivé." - -#: App_Main.py:4217 -msgid "" -"Adding Tool works only when Advanced is checked.\n" -"Go to Preferences -> General - Show Advanced Options." -msgstr "" -"L'ajout d'outil ne fonctionne que lorsque l'option Avancé est cochée.\n" -"Allez dans Paramètres -> Général - Afficher les options avancées." - -#: App_Main.py:4299 -msgid "Delete objects" -msgstr "Supprimer des objets" - -#: App_Main.py:4304 -msgid "" -"Are you sure you want to permanently delete\n" -"the selected objects?" -msgstr "" -"Êtes-vous sûr de vouloir supprimer définitivement\n" -"les objets sélectionnés?" - -#: App_Main.py:4348 -msgid "Object(s) deleted" -msgstr "Objets supprimés" - -#: App_Main.py:4352 -msgid "Save the work in Editor and try again ..." -msgstr "Enregistrez le travail de l'éditeur et réessayez ..." - -#: App_Main.py:4381 -msgid "Object deleted" -msgstr "Objet supprimé" - -#: App_Main.py:4408 -msgid "Click to set the origin ..." -msgstr "Cliquez pour définir l'origine ..." - -#: App_Main.py:4430 -msgid "Setting Origin..." -msgstr "Réglage de l'Origine ..." - -#: App_Main.py:4443 App_Main.py:4545 -msgid "Origin set" -msgstr "Réglage de l'origine effectué" - -#: App_Main.py:4460 -msgid "Origin coordinates specified but incomplete." -msgstr "Coordonnées d'origine spécifiées mais incomplètes." - -#: App_Main.py:4501 -msgid "Moving to Origin..." -msgstr "Déplacement vers l'origine ..." - -#: App_Main.py:4582 -msgid "Jump to ..." -msgstr "Sauter à ..." - -#: App_Main.py:4583 -msgid "Enter the coordinates in format X,Y:" -msgstr "Entrez les coordonnées au format X, Y:" - -#: App_Main.py:4593 -msgid "Wrong coordinates. Enter coordinates in format: X,Y" -msgstr "Mauvaises coordonnées. Entrez les coordonnées au format: X, Y" - -#: App_Main.py:4711 -msgid "Bottom-Left" -msgstr "En bas à gauche" - -#: App_Main.py:4714 -msgid "Top-Right" -msgstr "En haut à droite" - -#: App_Main.py:4735 -msgid "Locate ..." -msgstr "Localiser ..." - -#: App_Main.py:5008 App_Main.py:5085 -msgid "No object is selected. Select an object and try again." -msgstr "Aucun objet n'est sélectionné. Sélectionnez un objet et réessayez." - -#: App_Main.py:5111 -msgid "" -"Aborting. The current task will be gracefully closed as soon as possible..." -msgstr "Abandon de la tâche en cours si possible ..." - -#: App_Main.py:5117 -msgid "The current task was gracefully closed on user request..." -msgstr "" -"La tâche en cours a été fermée avec succès à la demande de l'utilisateur ..." - -#: App_Main.py:5291 -msgid "Tools in Tools Database edited but not saved." -msgstr "La base de données outils a été modifiés mais pas enregistrés." - -#: App_Main.py:5330 -msgid "Adding tool from DB is not allowed for this object." -msgstr "" -"L'ajout d'outil à partir de la base de données n'est pas autorisé pour cet " -"objet." - -#: App_Main.py:5348 -msgid "" -"One or more Tools are edited.\n" -"Do you want to update the Tools Database?" -msgstr "" -"Un ou plusieurs outils ont été modifiés.\n" -"Voulez-vous mettre à jour la base de données?" - -#: App_Main.py:5350 -msgid "Save Tools Database" -msgstr "Enregistrement de la base de données d'outils" - -#: App_Main.py:5404 -msgid "No object selected to Flip on Y axis." -msgstr "Aucun objet sélectionné pour basculer sur l’axe Y." - -#: App_Main.py:5430 -msgid "Flip on Y axis done." -msgstr "Rotation sur l'axe des Y effectué." - -#: App_Main.py:5452 -msgid "No object selected to Flip on X axis." -msgstr "Aucun objet sélectionné pour basculer sur l’axe X." - -#: App_Main.py:5478 -msgid "Flip on X axis done." -msgstr "Rotation sur l'axe des X effectué." - -#: App_Main.py:5500 -msgid "No object selected to Rotate." -msgstr "Aucun objet sélectionné pour faire pivoter." - -#: App_Main.py:5503 App_Main.py:5554 App_Main.py:5591 -msgid "Transform" -msgstr "Transformer" - -#: App_Main.py:5503 App_Main.py:5554 App_Main.py:5591 -msgid "Enter the Angle value:" -msgstr "Entrez la valeur de l'angle:" - -#: App_Main.py:5533 -msgid "Rotation done." -msgstr "Rotation effectuée." - -#: App_Main.py:5535 -msgid "Rotation movement was not executed." -msgstr "Le mouvement de rotation n'a pas été exécuté." - -#: App_Main.py:5552 -msgid "No object selected to Skew/Shear on X axis." -msgstr "Aucun objet sélectionné pour incliner/cisailler sur l'axe X." - -#: App_Main.py:5573 -msgid "Skew on X axis done." -msgstr "Inclinaison sur l'axe X terminée." - -#: App_Main.py:5589 -msgid "No object selected to Skew/Shear on Y axis." -msgstr "Aucun objet sélectionné pour incliner/cisailler sur l'axe Y." - -#: App_Main.py:5610 -msgid "Skew on Y axis done." -msgstr "Inclinaison sur l'axe des Y effectué." - -#: App_Main.py:5688 -msgid "New Grid ..." -msgstr "Nouvelle grille ..." - -#: App_Main.py:5689 -msgid "Enter a Grid Value:" -msgstr "Entrez une valeur de grille:" - -#: App_Main.py:5697 App_Main.py:5721 -msgid "Please enter a grid value with non-zero value, in Float format." -msgstr "" -"Veuillez entrer une valeur de grille avec une valeur non nulle, au format " -"réel." - -#: App_Main.py:5702 -msgid "New Grid added" -msgstr "Nouvelle grille ajoutée" - -#: App_Main.py:5704 -msgid "Grid already exists" -msgstr "La grille existe déjà" - -#: App_Main.py:5706 -msgid "Adding New Grid cancelled" -msgstr "Ajout d'une nouvelle grille annulée" - -#: App_Main.py:5727 -msgid " Grid Value does not exist" -msgstr " Valeur de la grille n'existe pas" - -#: App_Main.py:5729 -msgid "Grid Value deleted" -msgstr "Valeur de grille supprimée" - -#: App_Main.py:5731 -msgid "Delete Grid value cancelled" -msgstr "Suppression valeur de grille annulée" - -#: App_Main.py:5737 -msgid "Key Shortcut List" -msgstr "Liste de raccourcis clavier" - -#: App_Main.py:5771 -msgid " No object selected to copy it's name" -msgstr " Aucun objet sélectionné pour copier son nom" - -#: App_Main.py:5775 -msgid "Name copied on clipboard ..." -msgstr "Nom copié dans le presse-papiers ..." - -#: App_Main.py:6408 -msgid "" -"There are files/objects opened in FlatCAM.\n" -"Creating a New project will delete them.\n" -"Do you want to Save the project?" -msgstr "" -"Fichiers ou objets ouverts dans FlatCAM.\n" -"La création d'un nouveau projet les supprimera.\n" -"Voulez-vous enregistrer le projet?" - -#: App_Main.py:6431 -msgid "New Project created" -msgstr "Nouveau projet" - -#: App_Main.py:6603 App_Main.py:6642 App_Main.py:6686 App_Main.py:6756 -#: App_Main.py:7550 App_Main.py:8763 App_Main.py:8825 -msgid "" -"Canvas initialization started.\n" -"Canvas initialization finished in" -msgstr "" -"Initialisation du canevas commencé.\n" -"Initialisation du canevas terminée en" - -#: App_Main.py:6605 -msgid "Opening Gerber file." -msgstr "Ouvrir le fichier Gerber." - -#: App_Main.py:6644 -msgid "Opening Excellon file." -msgstr "Ouverture du fichier Excellon." - -#: App_Main.py:6675 App_Main.py:6680 -msgid "Open G-Code" -msgstr "Ouvrir G-code" - -#: App_Main.py:6688 -msgid "Opening G-Code file." -msgstr "Ouverture du fichier G-Code." - -#: App_Main.py:6747 App_Main.py:6751 -msgid "Open HPGL2" -msgstr "Ouvrir HPGL2" - -#: App_Main.py:6758 -msgid "Opening HPGL2 file." -msgstr "Ouverture de fichier HPGL2." - -#: App_Main.py:6781 App_Main.py:6784 -msgid "Open Configuration File" -msgstr "Ouvrir Fichier de configuration" - -#: App_Main.py:6804 App_Main.py:7158 -msgid "Please Select a Geometry object to export" -msgstr "Sélectionner un objet de géométrie à exporter" - -#: App_Main.py:6820 -msgid "Only Geometry, Gerber and CNCJob objects can be used." -msgstr "Seuls les objets Géométrie, Gerber et CNCJob peuvent être utilisés." - -#: App_Main.py:6865 -msgid "Data must be a 3D array with last dimension 3 or 4" -msgstr "" -"Les données doivent être un tableau 3D avec la dernière dimension 3 ou 4" - -#: App_Main.py:6871 App_Main.py:6875 -msgid "Export PNG Image" -msgstr "Exporter une image PNG" - -#: App_Main.py:6908 App_Main.py:7118 -msgid "Failed. Only Gerber objects can be saved as Gerber files..." -msgstr "" -"Érreur. Seuls les objets Gerber peuvent être enregistrés en tant que " -"fichiers Gerber ..." - -#: App_Main.py:6920 -msgid "Save Gerber source file" -msgstr "Enregistrer le fichier source Gerber" - -#: App_Main.py:6949 -msgid "Failed. Only Script objects can be saved as TCL Script files..." -msgstr "" -"Érreur. Seuls les objets de script peuvent être enregistrés en tant que " -"fichiers de script TCL ..." - -#: App_Main.py:6961 -msgid "Save Script source file" -msgstr "Enregistrer le fichier source du script" - -#: App_Main.py:6990 -msgid "Failed. Only Document objects can be saved as Document files..." -msgstr "" -"Échoué. Seuls les objets Document peuvent être enregistrés en tant que " -"fichiers Document ..." - -#: App_Main.py:7002 -msgid "Save Document source file" -msgstr "Enregistrer le fichier source du document" - -#: App_Main.py:7032 App_Main.py:7074 App_Main.py:8033 -msgid "Failed. Only Excellon objects can be saved as Excellon files..." -msgstr "" -"Érreur. Seuls les objets Excellon peuvent être enregistrés en tant que " -"fichiers Excellon ..." - -#: App_Main.py:7040 App_Main.py:7045 -msgid "Save Excellon source file" -msgstr "Enregistrer le fichier source Excellon" - -#: App_Main.py:7082 App_Main.py:7086 -msgid "Export Excellon" -msgstr "Exporter Excellon" - -#: App_Main.py:7126 App_Main.py:7130 -msgid "Export Gerber" -msgstr "Export Gerber" - -#: App_Main.py:7170 -msgid "Only Geometry objects can be used." -msgstr "Seuls les objets de géométrie peuvent être utilisés." - -#: App_Main.py:7186 App_Main.py:7190 -msgid "Export DXF" -msgstr "Exportation DXF" - -#: App_Main.py:7215 App_Main.py:7218 -msgid "Import SVG" -msgstr "Importer SVG" - -#: App_Main.py:7246 App_Main.py:7250 -msgid "Import DXF" -msgstr "Importation DXF" - -#: App_Main.py:7300 -msgid "Viewing the source code of the selected object." -msgstr "Affichage du code source de l'objet sélectionné." - -#: App_Main.py:7307 App_Main.py:7311 -msgid "Select an Gerber or Excellon file to view it's source file." -msgstr "" -"Sélectionnez un fichier Gerber ou Excellon pour afficher son fichier source." - -#: App_Main.py:7325 -msgid "Source Editor" -msgstr "Éditeur de source" - -#: App_Main.py:7365 App_Main.py:7372 -msgid "There is no selected object for which to see it's source file code." -msgstr "Il n'y a pas d'objet sélectionné auxquelles voir son code source." - -#: App_Main.py:7384 -msgid "Failed to load the source code for the selected object" -msgstr "Échec du chargement du code source pour l'objet sélectionné" - -#: App_Main.py:7420 -msgid "Go to Line ..." -msgstr "Aller à la ligne ..." - -#: App_Main.py:7421 -msgid "Line:" -msgstr "Ligne:" - -#: App_Main.py:7448 -msgid "New TCL script file created in Code Editor." -msgstr "Nouveau fichier de script TCL créé dans l'éditeur de code." - -#: App_Main.py:7484 App_Main.py:7486 App_Main.py:7522 App_Main.py:7524 -msgid "Open TCL script" -msgstr "Ouvrir le script TCL" - -#: App_Main.py:7552 -msgid "Executing ScriptObject file." -msgstr "Exécution du fichier ScriptObject." - -#: App_Main.py:7560 App_Main.py:7563 -msgid "Run TCL script" -msgstr "Exécuter le script TCL" - -#: App_Main.py:7586 -msgid "TCL script file opened in Code Editor and executed." -msgstr "Fichier de script TCL ouvert dans l'éditeur de code exécuté." - -#: App_Main.py:7637 App_Main.py:7643 -msgid "Save Project As ..." -msgstr "Enregistrer le projet sous ..." - -#: App_Main.py:7678 -msgid "FlatCAM objects print" -msgstr "Impression d'objets FlatCAM" - -#: App_Main.py:7691 App_Main.py:7698 -msgid "Save Object as PDF ..." -msgstr "Enregistrement au format PDF ...Enregistrer le projet sous ..." - -#: App_Main.py:7707 -msgid "Printing PDF ... Please wait." -msgstr "Impression du PDF ... Veuillez patienter." - -#: App_Main.py:7886 -msgid "PDF file saved to" -msgstr "Fichier PDF enregistré dans" - -#: App_Main.py:7911 -msgid "Exporting SVG" -msgstr "Exporter du SVG" - -#: App_Main.py:7954 -msgid "SVG file exported to" -msgstr "Fichier SVG exporté vers" - -#: App_Main.py:7980 -msgid "" -"Save cancelled because source file is empty. Try to export the Gerber file." -msgstr "" -"Enregistrement annulé car le fichier source est vide. Essayez d'exporter le " -"fichier Gerber." - -#: App_Main.py:8127 -msgid "Excellon file exported to" -msgstr "Fichier Excellon exporté vers" - -#: App_Main.py:8136 -msgid "Exporting Excellon" -msgstr "Exporter Excellon" - -#: App_Main.py:8141 App_Main.py:8148 -msgid "Could not export Excellon file." -msgstr "Impossible d'exporter le fichier Excellon." - -#: App_Main.py:8263 -msgid "Gerber file exported to" -msgstr "Fichier Gerber exporté vers" - -#: App_Main.py:8271 -msgid "Exporting Gerber" -msgstr "Exporter Gerber" - -#: App_Main.py:8276 App_Main.py:8283 -msgid "Could not export Gerber file." -msgstr "Impossible d'exporter le fichier Gerber." - -#: App_Main.py:8318 -msgid "DXF file exported to" -msgstr "Fichier DXF exporté vers" - -#: App_Main.py:8324 -msgid "Exporting DXF" -msgstr "Exportation DXF" - -#: App_Main.py:8329 App_Main.py:8336 -msgid "Could not export DXF file." -msgstr "Impossible d'exporter le fichier DXF." - -#: App_Main.py:8370 -msgid "Importing SVG" -msgstr "Importer du SVG" - -#: App_Main.py:8378 App_Main.py:8424 -msgid "Import failed." -msgstr "L'importation a échoué." - -#: App_Main.py:8416 -msgid "Importing DXF" -msgstr "Importation de DXF" - -#: App_Main.py:8457 App_Main.py:8652 App_Main.py:8717 -msgid "Failed to open file" -msgstr "Échec à l'ouverture du fichier" - -#: App_Main.py:8460 App_Main.py:8655 App_Main.py:8720 -msgid "Failed to parse file" -msgstr "Échec de l'analyse du fichier" - -#: App_Main.py:8472 -msgid "Object is not Gerber file or empty. Aborting object creation." -msgstr "" -"L'objet n'est pas un fichier Gerber ou vide. Abandon de la création d'objet." - -#: App_Main.py:8477 -msgid "Opening Gerber" -msgstr "Ouverture Gerber" - -#: App_Main.py:8488 -msgid "Open Gerber failed. Probable not a Gerber file." -msgstr "Ouverture Gerber échoué. Probablement pas un fichier Gerber." - -#: App_Main.py:8524 -msgid "Cannot open file" -msgstr "Ne peut pas ouvrir le fichier" - -#: App_Main.py:8545 -msgid "Opening Excellon." -msgstr "Ouverture Excellon." - -#: App_Main.py:8555 -msgid "Open Excellon file failed. Probable not an Excellon file." -msgstr "Ouverture Excellon échoué. Probablement pas un fichier Excellon." - -#: App_Main.py:8587 -msgid "Reading GCode file" -msgstr "Lecture du fichier GCode" - -#: App_Main.py:8600 -msgid "This is not GCODE" -msgstr "Ce n'est pas du GCODE" - -#: App_Main.py:8605 -msgid "Opening G-Code." -msgstr "Ouverture G-Code." - -#: App_Main.py:8618 -msgid "" -"Failed to create CNCJob Object. Probable not a GCode file. Try to load it " -"from File menu.\n" -" Attempting to create a FlatCAM CNCJob Object from G-Code file failed during " -"processing" -msgstr "" -"Impossible de créer un objet CNCJob. Probablement pas un fichier GCode. " -"Essayez de charger à partir du menu Fichier.\n" -"La tentative de création d'un objet FlatCAM CNCJob à partir d'un fichier G-" -"Code a échoué pendant le traitement" - -#: App_Main.py:8674 -msgid "Object is not HPGL2 file or empty. Aborting object creation." -msgstr "Objet vide ou non HPGL2. Abandon de la création d'objet." - -#: App_Main.py:8679 -msgid "Opening HPGL2" -msgstr "Ouverture HPGL2" - -#: App_Main.py:8686 -msgid " Open HPGL2 failed. Probable not a HPGL2 file." -msgstr " Ouverture HPGL2 échoué. Probablement pas un fichier HPGL2 ." - -#: App_Main.py:8712 -msgid "TCL script file opened in Code Editor." -msgstr "Fichier de script TCL ouvert dans l'éditeur de code." - -#: App_Main.py:8732 -msgid "Opening TCL Script..." -msgstr "Ouverture du script TCL ..." - -#: App_Main.py:8743 -msgid "Failed to open TCL Script." -msgstr "Impossible d'ouvrir le script TCL." - -#: App_Main.py:8765 -msgid "Opening FlatCAM Config file." -msgstr "Ouverture du fichier de configuration FlatCAM." - -#: App_Main.py:8793 -msgid "Failed to open config file" -msgstr "Impossible d'ouvrir le fichier de configuration" - -#: App_Main.py:8822 -msgid "Loading Project ... Please Wait ..." -msgstr "Chargement du projet ... Veuillez patienter ..." - -#: App_Main.py:8827 -msgid "Opening FlatCAM Project file." -msgstr "Ouverture du fichier de projet FlatCAM." - -#: App_Main.py:8842 App_Main.py:8846 App_Main.py:8863 -msgid "Failed to open project file" -msgstr "Impossible d'ouvrir le fichier de projet" - -#: App_Main.py:8900 -msgid "Loading Project ... restoring" -msgstr "Chargement du projet ... en cours de restauration" - -#: App_Main.py:8910 -msgid "Project loaded from" -msgstr "Projet chargé à partir de" - -#: App_Main.py:8936 -msgid "Redrawing all objects" -msgstr "Redessiner tous les objets" - -#: App_Main.py:9024 -msgid "Failed to load recent item list." -msgstr "Échec du chargement des éléments récents." - -#: App_Main.py:9031 -msgid "Failed to parse recent item list." -msgstr "Échec d'analyse des éléments récents." - -#: App_Main.py:9041 -msgid "Failed to load recent projects item list." -msgstr "Échec du chargement des éléments des projets récents." - -#: App_Main.py:9048 -msgid "Failed to parse recent project item list." -msgstr "Échec de l'analyse de la liste des éléments de projet récents." - -#: App_Main.py:9109 -msgid "Clear Recent projects" -msgstr "Effacer les projets récents" - -#: App_Main.py:9133 -msgid "Clear Recent files" -msgstr "Effacer les fichiers récents" - -#: App_Main.py:9235 -msgid "Selected Tab - Choose an Item from Project Tab" -msgstr "" -"Onglet sélection - \n" -"Choisissez un élément dans l'onglet Projet" - -#: App_Main.py:9236 -msgid "Details" -msgstr "Détails" - -#: App_Main.py:9238 -msgid "The normal flow when working with the application is the following:" -msgstr "" -"Le flux normal lorsque vous travaillez avec l'application est le suivant:" - -#: App_Main.py:9239 -msgid "" -"Load/Import a Gerber, Excellon, Gcode, DXF, Raster Image or SVG file into " -"the application using either the toolbars, key shortcuts or even dragging " -"and dropping the files on the AppGUI." -msgstr "" -"Load/Import a Gerber, Excellon, Gcode, DXF, Raster Image or SVG file into " -"the application using either the toolbars, key shortcuts or even dragging " -"and dropping the files on the AppGUI." - -#: App_Main.py:9242 -msgid "" -"You can also load a project by double clicking on the project file, drag and " -"drop of the file into the AppGUI or through the menu (or toolbar) actions " -"offered within the app." -msgstr "" -"Vous pouvez également charger un projet en double-cliquant sur le fichier de " -"projet, faites glisser et déposez le fichier dans l'AppGUI ou via le menu " -"(ou la barre d'outils) des actions proposées dans l'application." - -#: App_Main.py:9245 -msgid "" -"Once an object is available in the Project Tab, by selecting it and then " -"focusing on SELECTED TAB (more simpler is to double click the object name in " -"the Project Tab, SELECTED TAB will be updated with the object properties " -"according to its kind: Gerber, Excellon, Geometry or CNCJob object." -msgstr "" -"Une fois la sélection d'un objet dans \"Projet\", L'onglet \"Sélection\" " -"sera mis à jour avec les propriétés de l'objet en fonction de son type: " -"Gerber, Excellon, géométrie ou CNCJob." - -#: App_Main.py:9249 -msgid "" -"If the selection of the object is done on the canvas by single click " -"instead, and the SELECTED TAB is in focus, again the object properties will " -"be displayed into the Selected Tab. Alternatively, double clicking on the " -"object on the canvas will bring the SELECTED TAB and populate it even if it " -"was out of focus." -msgstr "" -"La sélection de l'objet est importé par un simple clic depuis le l'onglet " -"\"projet\". L'onglet \"sélection\" est automatiquement affecté des " -"propriétés de l'objet Gerber, Excellon, Géométrie, ou CNC Job de façon " -"interactive. Double-cliquez sur l'objet de la table pour activer l'onglet " -"\"Sélectionné\" et disposé des propriétés de l'objet." - -#: App_Main.py:9253 -msgid "" -"You can change the parameters in this screen and the flow direction is like " -"this:" -msgstr "Vous pouvez modifier les paramètres de la façon suivante:" - -#: App_Main.py:9254 -msgid "" -"Gerber/Excellon Object --> Change Parameter --> Generate Geometry --> " -"Geometry Object --> Add tools (change param in Selected Tab) --> Generate " -"CNCJob --> CNCJob Object --> Verify GCode (through Edit CNC Code) and/or " -"append/prepend to GCode (again, done in SELECTED TAB) --> Save GCode." -msgstr "" -"Exemple:\n" -"Importer puis choisissez un Objet Gerber -> Signet \"Sélection\" -> Réglé " -"les paramètre de travaille à votre convenance -> \"Générer une géométrie " -"d'isolation\" -> le fichier de travaille nouvellement Créer apparait dans " -"CNC Job. Ce sont les fichiers CNC Job qui permettrons le travaille de votre " -"appareille de gravure." - -#: App_Main.py:9258 -msgid "" -"A list of key shortcuts is available through an menu entry in Help --> " -"Shortcuts List or through its own key shortcut: F3." -msgstr "" -"Une liste des raccourcis clavier est disponible via le menu dans \"Aide\" " -"ou avec la touche de raccourci F3." - -#: App_Main.py:9322 -msgid "Failed checking for latest version. Could not connect." -msgstr "Échec de vérification de mise a jour. Connection impossible." - -#: App_Main.py:9329 -msgid "Could not parse information about latest version." -msgstr "Impossible d'analyser les informations sur la dernière version." - -#: App_Main.py:9339 -msgid "FlatCAM is up to date!" -msgstr "FlatCAM est à jour!" - -#: App_Main.py:9344 -msgid "Newer Version Available" -msgstr "Nouvelle version FlatCam disponible" - -#: App_Main.py:9346 -msgid "There is a newer version of FlatCAM available for download:" -msgstr "Une version plus récente de FlatCAM est disponible au téléchargement:" - -#: App_Main.py:9350 -msgid "info" -msgstr "info" - -#: App_Main.py:9378 -msgid "" -"OpenGL canvas initialization failed. HW or HW configuration not supported." -"Change the graphic engine to Legacy(2D) in Edit -> Preferences -> General " -"tab.\n" -"\n" -msgstr "" -"L'initialisation du canevas OpenGL a échoué. La configuration matérielle " -"n'est pas prise en charge. Modifiez le moteur graphique en Legacy(2D) dans " -"Edition -> Paramètres -> onglet Général.\n" -"\n" - -#: App_Main.py:9456 -msgid "All plots disabled." -msgstr "Désactivation de tous les Plots." - -#: App_Main.py:9463 -msgid "All non selected plots disabled." -msgstr "Désélection de tous les Plots." - -#: App_Main.py:9470 -msgid "All plots enabled." -msgstr "Activation de tous les Plots." - -#: App_Main.py:9476 -msgid "Selected plots enabled..." -msgstr "Sélection de tous les Plots activés ..." - -#: App_Main.py:9484 -msgid "Selected plots disabled..." -msgstr "Selection de tous les Plots désactivés ..." - -#: App_Main.py:9517 -msgid "Enabling plots ..." -msgstr "Activation des plots ..." - -#: App_Main.py:9566 -msgid "Disabling plots ..." -msgstr "Désactiver les plots ..." - -#: App_Main.py:9589 -msgid "Working ..." -msgstr "Travail ..." - -#: App_Main.py:9698 -msgid "Set alpha level ..." -msgstr "Définir le premier niveau ..." - -#: App_Main.py:9752 -msgid "Saving FlatCAM Project" -msgstr "Enregistrement du projet FlatCAM" - -#: App_Main.py:9773 App_Main.py:9809 -msgid "Project saved to" -msgstr "Projet enregistré dans" - -#: App_Main.py:9780 -msgid "The object is used by another application." -msgstr "L'objet est utilisé par une autre application." - -#: App_Main.py:9794 -msgid "Failed to verify project file" -msgstr "Échec de vérification du fichier projet" - -#: App_Main.py:9794 App_Main.py:9802 App_Main.py:9812 -msgid "Retry to save it." -msgstr "Réessayez de le sauvegarder." - -#: App_Main.py:9802 App_Main.py:9812 -msgid "Failed to parse saved project file" -msgstr "Échec d'analyse du fichier de projet enregistré" - -#: Bookmark.py:57 Bookmark.py:84 -msgid "Title" -msgstr "Titre" - -#: Bookmark.py:58 Bookmark.py:88 -msgid "Web Link" -msgstr "Lien Web" - -#: Bookmark.py:62 -msgid "" -"Index.\n" -"The rows in gray color will populate the Bookmarks menu.\n" -"The number of gray colored rows is set in Preferences." -msgstr "" -"Index.\n" -"Les lignes seront grisé dans le menu.\n" -"Le nombre de lignes de couleur grises est défini dans Paramètres ." - -#: Bookmark.py:66 -msgid "" -"Description of the link that is set as an menu action.\n" -"Try to keep it short because it is installed as a menu item." -msgstr "" -"Description du lien défini dans le menu.\n" -"Rester bref car il est installé en tant qu'élément de menu." - -#: Bookmark.py:69 -msgid "Web Link. E.g: https://your_website.org " -msgstr "Lien Web. Par exemple: https://your_website.org " - -#: Bookmark.py:78 -msgid "New Bookmark" -msgstr "Nouveau Menu" - -#: Bookmark.py:97 -msgid "Add Entry" -msgstr "Ajouter une entrée" - -#: Bookmark.py:98 -msgid "Remove Entry" -msgstr "Supprimer l'entrée" - -#: Bookmark.py:99 -msgid "Export List" -msgstr "Exporter la liste" - -#: Bookmark.py:100 -msgid "Import List" -msgstr "Importer la liste" - -#: Bookmark.py:190 -msgid "Title entry is empty." -msgstr "L'entrée de titre est vide." - -#: Bookmark.py:199 -msgid "Web link entry is empty." -msgstr "L'entrée du lien Web est vide." - -#: Bookmark.py:207 -msgid "Either the Title or the Weblink already in the table." -msgstr "Titre ou lien Web déjà dans le tableau." - -#: Bookmark.py:227 -msgid "Bookmark added." -msgstr "Signet ajouté." - -#: Bookmark.py:244 -msgid "This bookmark can not be removed" -msgstr "Ce menu ne peut être supprimé" - -#: Bookmark.py:275 -msgid "Bookmark removed." -msgstr "Signet supprimé." - -#: Bookmark.py:290 -msgid "Export Bookmarks" -msgstr "Exporter des signets" - -#: Bookmark.py:319 Bookmark.py:349 -msgid "Could not load bookmarks file." -msgstr "Impossible de charger le fichier des Menus." - -#: Bookmark.py:329 -msgid "Failed to write bookmarks to file." -msgstr "Échec de l'écriture des signet dans le fichier." - -#: Bookmark.py:331 -msgid "Exported bookmarks to" -msgstr "Menu exportés vers" - -#: Bookmark.py:337 -msgid "Import Bookmarks" -msgstr "Importer des signets" - -#: Bookmark.py:356 -msgid "Imported Bookmarks from" -msgstr "Signet importés de" - -#: Common.py:42 -msgid "The user requested a graceful exit of the current task." -msgstr "L'utilisateur a demandé une sortie de la tâche en cours." - -#: Common.py:269 -msgid "Click the end point of the area." -msgstr "Cliquez sur le point final de la zone." - -#: Common.py:408 -msgid "Exclusion areas added. Checking overlap with the object geometry ..." -msgstr "" -"Des zones d'exclusion ont été ajoutées. Vérification du chevauchement avec " -"la géométrie de l'objet ..." - -#: Common.py:413 -msgid "Failed. Exclusion areas intersects the object geometry ..." -msgstr "Échoué. Les zones d'exclusion coupent la géométrie de l'objet ..." - -#: Common.py:417 -msgid "Exclusion areas added." -msgstr "Des zones d'exclusion ont été ajoutées." - -#: Common.py:426 -msgid "With Exclusion areas." -msgstr "Avec zones d'exclusion." - -#: Common.py:461 -msgid "Cancelled. Area exclusion drawing was interrupted." -msgstr "Annulé. Le dessin d'exclusion de zone a été interrompu." - -#: Common.py:572 Common.py:621 -msgid "All exclusion zones deleted." -msgstr "Toutes les zones d'exclusion ont été supprimées." - -#: Common.py:608 -msgid "Selected exclusion zones deleted." -msgstr "Les zones d'exclusion sélectionnées ont été supprimées." - -#: assets/linux/flatcam-beta.desktop:3 -msgid "FlatCAM Beta" -msgstr "FlatCAM Beta" - -#: assets/linux/flatcam-beta.desktop:8 -msgid "G-Code from GERBERS" -msgstr "G-Code de GERBERS" - -#: camlib.py:597 -msgid "self.solid_geometry is neither BaseGeometry or list." -msgstr "self.solid_géométrie n'est ni BaseGeometry ni une liste." - -#: camlib.py:979 -msgid "Pass" -msgstr "Passer" - -#: camlib.py:1001 -msgid "Get Exteriors" -msgstr "Obtenez des extérieurs" - -#: camlib.py:1004 -msgid "Get Interiors" -msgstr "Obtenez des intérieurs" - -#: camlib.py:2192 -msgid "Object was mirrored" -msgstr "L'objet a été reflété" - -#: camlib.py:2194 -msgid "Failed to mirror. No object selected" -msgstr "Impossible de refléter. Aucun objet sélectionné" - -#: camlib.py:2259 -msgid "Object was rotated" -msgstr "L'objet a été tourné" - -#: camlib.py:2261 -msgid "Failed to rotate. No object selected" -msgstr "Échec de la rotation. Aucun objet sélectionné" - -#: camlib.py:2327 -msgid "Object was skewed" -msgstr "L'objet était de biaiser" - -#: camlib.py:2329 -msgid "Failed to skew. No object selected" -msgstr "Impossible de biaiser. Aucun objet sélectionné" - -#: camlib.py:2405 -msgid "Object was buffered" -msgstr "L'objet a été tamponnées" - -#: camlib.py:2407 -msgid "Failed to buffer. No object selected" -msgstr "Échec de la mise en buffer. Aucun objet sélectionné" - -#: camlib.py:2650 -msgid "There is no such parameter" -msgstr "Il n'y a pas de tel paramètre" - -#: camlib.py:2718 camlib.py:2970 camlib.py:3233 camlib.py:3489 -msgid "" -"The Cut Z parameter has positive value. It is the depth value to drill into " -"material.\n" -"The Cut Z parameter needs to have a negative value, assuming it is a typo " -"therefore the app will convert the value to negative. Check the resulting " -"CNC code (Gcode etc)." -msgstr "" -"Le paramètre Cut Z a une valeur positive. C'est la valeur de profondeur à " -"percer dans le matériau.\n" -"Le paramètre Cut Z doit avoir une valeur négative, en supposant qu'il " -"s'agisse d'une faute de frappe; par conséquent, l'application convertira la " -"valeur en valeur négative. Vérifiez le code CNC résultant (Gcode, etc.)." - -#: camlib.py:2726 camlib.py:2980 camlib.py:3243 camlib.py:3499 camlib.py:3824 -#: camlib.py:4224 -msgid "The Cut Z parameter is zero. There will be no cut, skipping file" -msgstr "Le paramètre Cut Z est zéro. Il n'y aura pas de fichier coupé, sautant" - -#: camlib.py:2741 camlib.py:4192 -msgid "" -"The Toolchange X,Y field in Edit -> Preferences has to be in the format (x, " -"y) \n" -"but now there is only one value, not two. " -msgstr "" -"Le champ Toolchange X, Y dans Edition -> Paramètres doit être au format (x, " -"y)\n" -"mais maintenant il n'y a qu'une seule valeur, pas deux. " - -#: camlib.py:2754 camlib.py:3771 camlib.py:4170 -msgid "" -"The End Move X,Y field in Edit -> Preferences has to be in the format (x, y) " -"but now there is only one value, not two." -msgstr "" -"Le champ Fin du déplacement X, Y dans Edition -> Paramètres doit être au " -"format (x, y) mais maintenant il n'y a qu'une seule valeur, pas deux." - -#: camlib.py:2842 -msgid "Creating a list of points to drill..." -msgstr "Création d'une liste de points à explorer ..." - -#: camlib.py:2866 -msgid "Failed. Drill points inside the exclusion zones." -msgstr "Échoué. Percer des points à l'intérieur des zones d'exclusion." - -#: camlib.py:2943 camlib.py:3922 camlib.py:4332 -msgid "Starting G-Code" -msgstr "Démarrer le GCode" - -#: camlib.py:3084 camlib.py:3337 camlib.py:3535 camlib.py:3935 camlib.py:4343 -msgid "Starting G-Code for tool with diameter" -msgstr "Code G de départ pour outil avec diamètre" - -#: camlib.py:3201 camlib.py:3453 camlib.py:3655 -msgid "G91 coordinates not implemented" -msgstr "Coordonnées G91 non implémentées" - -#: camlib.py:3207 camlib.py:3460 camlib.py:3660 -msgid "The loaded Excellon file has no drills" -msgstr "Le fichier Excellon chargé n'a pas d'exercices" - -#: camlib.py:3683 -msgid "Finished G-Code generation..." -msgstr "Fini la génération de GCode ..." - -#: camlib.py:3793 -msgid "" -"The Toolchange X,Y field in Edit -> Preferences has to be in the format (x, " -"y) \n" -"but now there is only one value, not two." -msgstr "" -"Le champ Toolchange X, Y dans Edition -> Paramètres doit être au format (x, " -"y)\n" -"mais maintenant il n'y a qu'une seule valeur, pas deux." - -#: camlib.py:3807 camlib.py:4207 -msgid "" -"Cut_Z parameter is None or zero. Most likely a bad combinations of other " -"parameters." -msgstr "" -"Le paramètre Cut_Z est Aucun ou zéro. Très probablement une mauvaise " -"combinaison d'autres paramètres." - -#: camlib.py:3816 camlib.py:4216 -msgid "" -"The Cut Z parameter has positive value. It is the depth value to cut into " -"material.\n" -"The Cut Z parameter needs to have a negative value, assuming it is a typo " -"therefore the app will convert the value to negative.Check the resulting CNC " -"code (Gcode etc)." -msgstr "" -"Le paramètre Cut Z a une valeur positive. C'est la valeur de profondeur à " -"couper dans le matériau.\n" -"Le paramètre Cut Z doit avoir une valeur négative, en supposant qu'il " -"s'agisse d'une faute de frappe. Par conséquent, l'application convertira la " -"valeur en valeur négative. Vérifiez le code CNC résultant (Gcode, etc.)." - -#: camlib.py:3829 camlib.py:4230 -msgid "Travel Z parameter is None or zero." -msgstr "Le paramètre Voyage Z est Aucun ou zéro." - -#: camlib.py:3834 camlib.py:4235 -msgid "" -"The Travel Z parameter has negative value. It is the height value to travel " -"between cuts.\n" -"The Z Travel parameter needs to have a positive value, assuming it is a typo " -"therefore the app will convert the value to positive.Check the resulting CNC " -"code (Gcode etc)." -msgstr "" -"Le paramètre Travel Z a une valeur négative. C'est la valeur de hauteur pour " -"voyager entre les coupes.\n" -"Le paramètre Z voyage doit avoir une valeur positive, en supposant qu'il " -"s'agisse d'une faute de frappe. Par conséquent, l'application convertira la " -"valeur en valeur positive. Vérifiez le code CNC résultant (Gcode, etc.)." - -#: camlib.py:3842 camlib.py:4243 -msgid "The Z Travel parameter is zero. This is dangerous, skipping file" -msgstr "Le paramètre Z voyage est zéro. Ceci est dangereux, ignorer le fichier" - -#: camlib.py:3861 camlib.py:4266 -msgid "Indexing geometry before generating G-Code..." -msgstr "Indexer la géométrie avant de générer le GCode ..." - -#: camlib.py:4009 camlib.py:4420 -msgid "Finished G-Code generation" -msgstr "Génération de GCode terminée" - -#: camlib.py:4009 -msgid "paths traced" -msgstr "chemins tracés" - -#: camlib.py:4059 -msgid "Expected a Geometry, got" -msgstr "Attendait une géométrie, eu" - -#: camlib.py:4066 -msgid "" -"Trying to generate a CNC Job from a Geometry object without solid_geometry." -msgstr "" -"Essayer de générer un travail CNC à partir d'un objet de géométrie sans " -"solid_géométrie." - -#: camlib.py:4107 -msgid "" -"The Tool Offset value is too negative to use for the current_geometry.\n" -"Raise the value (in module) and try again." -msgstr "" -"La valeur de décalage de l'outil est trop négative pour pouvoir être " -"utilisée pour current_géométrie.\n" -"Augmentez la valeur (dans le module) et essayez à nouveau." - -#: camlib.py:4420 -msgid " paths traced." -msgstr " chemins tracés." - -#: camlib.py:4448 -msgid "There is no tool data in the SolderPaste geometry." -msgstr "Il n'y a pas de données d'outil dans la géométrie SolderPaste." - -#: camlib.py:4537 -msgid "Finished SolderPaste G-Code generation" -msgstr "Génération de G-Code SolderPaste fini" - -#: camlib.py:4537 -msgid "paths traced." -msgstr "chemins tracés." - -#: camlib.py:4872 -msgid "Parsing GCode file. Number of lines" -msgstr "Analyse du fichier GCode. Nombre de lignes" - -#: camlib.py:4979 -msgid "Creating Geometry from the parsed GCode file. " -msgstr "Création d'une géométrie à partir du fichier GCode analysé. " - -#: camlib.py:5147 camlib.py:5420 camlib.py:5568 camlib.py:5737 -msgid "G91 coordinates not implemented ..." -msgstr "Coordonnées G91 non implémentées ..." - -#: defaults.py:771 -msgid "Could not load defaults file." -msgstr "Impossible de charger le fichier par défaut." - -#: defaults.py:784 -msgid "Failed to parse defaults file." -msgstr "Échec de l'analyse du fichier par défaut." - #: tclCommands/TclCommandBbox.py:75 tclCommands/TclCommandNregions.py:74 msgid "Expected GerberObject or GeometryObject, got" msgstr "GerberObject ou GeometryObject attendu, obtenu" @@ -18674,7 +18576,7 @@ msgstr "Attendu une liste de noms d'objets séparés par une virgule. Eu" msgid "TclCommand Bounds done." msgstr "TclCommand Bounds terminé." -#: tclCommands/TclCommandCopperClear.py:281 tclCommands/TclCommandPaint.py:283 +#: tclCommands/TclCommandCopperClear.py:281 tclCommands/TclCommandPaint.py:277 #: tclCommands/TclCommandScale.py:81 msgid "Could not retrieve box object" msgstr "Impossible de récupérer l'objet boîte" @@ -18693,15 +18595,15 @@ msgstr "" #: tclCommands/TclCommandGeoCutout.py:189 msgid "Gaps value can be only one of: 'lr', 'tb', '2lr', '2tb', 4 or 8." msgstr "" -"Le nombre des ponts ne peut avoir que l'une des valeurs suivantes: 'None', " -"'LR', 'TB', '2LR', '2TB', 4 ou 8." +"La valeur d'espacement ne peut être que l'une des valeurs suivantes: " +"'Aucune', 'lr', 'tb', '2lr', '2tb', 4 ou 8." #: tclCommands/TclCommandGeoCutout.py:301 -#: tclCommands/TclCommandGeoCutout.py:356 +#: tclCommands/TclCommandGeoCutout.py:359 msgid "Any-form Cutout operation finished." msgstr "L'opération de découpe sous n'importe quelle forme est terminée." -#: tclCommands/TclCommandGeoCutout.py:362 +#: tclCommands/TclCommandGeoCutout.py:365 msgid "Cancelled. Object type is not supported." msgstr "Annulé. Le type d'objet n'est pas pris en charge." @@ -18717,15 +18619,15 @@ msgstr "Tapez help pour l'utiliser." msgid "Example: help open_gerber" msgstr "Exemple: help open_gerber" -#: tclCommands/TclCommandPaint.py:250 tclCommands/TclCommandPaint.py:256 -msgid "Expected a tuple value like -single 3.2,0.1." -msgstr "Attendu une valeur de tuple comme -single 3.2,0.1." +#: tclCommands/TclCommandPaint.py:249 +msgid "Expected -x and -y ." +msgstr "Attendu -x et -y ." -#: tclCommands/TclCommandPaint.py:276 +#: tclCommands/TclCommandPaint.py:270 msgid "Expected -box ." msgstr "Attendu -box ." -#: tclCommands/TclCommandPaint.py:297 +#: tclCommands/TclCommandPaint.py:291 msgid "" "None of the following args: 'box', 'single', 'all' were used.\n" "Paint failed." @@ -18749,7 +18651,7 @@ msgstr "Attendu -x -y ." msgid "Expected a pair of (x, y) coordinates. Got" msgstr "Une paire de coordonnées (x, y) attendue. Eu" -#: tclCommands/TclCommandSetOrigin.py:101 +#: tclCommands/TclCommandSetOrigin.py:102 msgid "Origin set by offsetting all loaded objects with " msgstr "Origine définie en décalant tous les objets chargés avec " @@ -18758,202 +18660,6 @@ msgid "No Geometry name in args. Provide a name and try again." msgstr "" "Aucun nom de géométrie dans les arguments. Indiquez un nom et réessayez." -#~ msgid "Add Tool from Tools DB" -#~ msgstr "Ajouter un outil à partir de la base de données" - -#~ msgid "FlatCAM Object" -#~ msgstr "Objet FlatCAM" - -#~ msgid "" -#~ "Choose which tool to use for Gerber isolation:\n" -#~ "'Circular' or 'V-shape'.\n" -#~ "When the 'V-shape' is selected then the tool\n" -#~ "diameter will depend on the chosen cut depth." -#~ msgstr "" -#~ "Choisissez quel outil utiliser pour l'isolation de Gerber:\n" -#~ "«Circulaire» ou «Forme en V».\n" -#~ "Lorsque la \"Forme en V\" est sélectionnée, l'outil\n" -#~ "Le diamètre dépendra de la profondeur de coupe choisie." - -#~ msgid "V-Shape" -#~ msgstr "Forme en V" - -#~ msgid "" -#~ "Diameter of the cutting tool.\n" -#~ "If you want to have an isolation path\n" -#~ "inside the actual shape of the Gerber\n" -#~ "feature, use a negative value for\n" -#~ "this parameter." -#~ msgstr "" -#~ "Diamètre de l'outil de coupe.\n" -#~ "Si vous voulez avoir un chemin d'isolation\n" -#~ "à l'intérieur de la forme réelle du Gerber\n" -#~ "fonction, utilisez une valeur négative pour\n" -#~ "ce paramètre." - -#~ msgid "Pass overlap" -#~ msgstr "Chevauchement" - -#~ msgid "Scope" -#~ msgstr "Portée" - -#~ msgid "Clear N-copper" -#~ msgstr "N-Cuivre Clair" - -#~ msgid "Board cutout" -#~ msgstr "Découpe de la plaque" - -#~ msgid "" -#~ "Add a new tool to the Tool Table\n" -#~ "with the specified diameter." -#~ msgstr "" -#~ "Ajouter un nouvel outil à la table d'outils\n" -#~ "avec le diamètre spécifié." - -#~ msgid "Excellon Object Color" -#~ msgstr "Couleur d'objet Excellon" - -#~ msgid "Geometry Object Color" -#~ msgstr "Couleur de l'objet Géométrie" - -#~ msgid "Exterior" -#~ msgstr "Extérieur" - -#~ msgid "Interior" -#~ msgstr "Intérieur" - -#~ msgid "Gerber Object Color" -#~ msgstr "Couleur d'objet Gerber" - -#~ msgid "Combine Passes" -#~ msgstr "Combiner les passes" - -#~ msgid "Rest Machining" -#~ msgstr "Usinage de Repos" - -#~ msgid "NCC Plotting" -#~ msgstr "Dessin de la NCC" - -#~ msgid "All Polygons" -#~ msgstr "Tous les polygones" - -#~ msgid "Paint Plotting" -#~ msgstr "Peinture dessin" - -#~ msgid "" -#~ "- 'Normal' - normal plotting, done at the end of the Paint job\n" -#~ "- 'Progressive' - after each shape is generated it will be plotted." -#~ msgstr "" -#~ "- 'Normal' - traçage normal, effectué à la fin du travail de peinture\n" -#~ "- 'Progressif' - après chaque forme générée, elle sera tracée." - -#~ msgid "Export Machine Code ..." -#~ msgstr "Exporter le code machine ..." - -#~ msgid "Export Machine Code cancelled ..." -#~ msgstr "Exporter le code machine annulé ..." - -#~ msgid "Machine Code file saved to" -#~ msgstr "Fichier de code machine enregistré dans" - -#~ msgid "GCode Parameters" -#~ msgstr "Paramètres GCode" - -#, fuzzy -#~| msgid "Selection" -#~ msgid "PreSelection" -#~ msgstr "Sélection" - -#~ msgid "Copper Gerber" -#~ msgstr "Gerber cuivré" - -#~ msgid "QRCode Parameters" -#~ msgstr "Paramètres QRCode" - -#~ msgid "Gerber Files" -#~ msgstr "Fichiers Gerber" - -#~ msgid "Excellon Objects" -#~ msgstr "Excellon Objets" - -#~ msgid "Gerber Solder paste object. " -#~ msgstr "Objet de pâte à souder Gerber. " - -#~ msgid "Gerber Objects" -#~ msgstr "Objets Gerber" - -#~ msgid "Geometry Objects" -#~ msgstr "Objets géométriques" - -#~ msgid "Processing geometry from Subtractor Gerber object." -#~ msgstr "Traitement de la géométrie de l'objet Gerber soustracteur." - -#~ msgid "Parsing geometry for aperture" -#~ msgstr "Analyser la géométrie pour l'ouverture" - -#~ msgid "Export FlatCAM Bookmarks" -#~ msgstr "Exporter les signets FlatCAM" - -#~ msgid "Import FlatCAM Bookmarks" -#~ msgstr "Importer des signet FlatCAM" - -#~ msgid "Unifying Geometry from parsed Geometry segments" -#~ msgstr "Unifier la géométrie à partir de segments de géométrie analysés" - -#~ msgid "./assets/icon.png" -#~ msgstr "./assets/icon.png" - -#~ msgid "New Blank Geometry" -#~ msgstr "Nouvelle Géométrie vierge" - -#~ msgid "New Blank Gerber" -#~ msgstr "Nouveau Gerber vierge" - -#~ msgid "New Blank Excellon" -#~ msgstr "Nouveau Excellon vierge" - -#~ msgid "" -#~ "Relative measurement.\n" -#~ "Reference is last click position" -#~ msgstr "" -#~ "Mesure relative\n" -#~ "La référence est la position du dernier clic" - -#~ msgid "Apply Theme" -#~ msgstr "Appliquer le thème" - -#~ msgid "" -#~ "Select a theme for FlatCAM.\n" -#~ "It will theme the plot area.\n" -#~ "The application will restart after change." -#~ msgstr "" -#~ "Sélectionnez un thème pour FlatCAM.\n" -#~ "Il aura pour thème la zone de traçage.\n" -#~ "L'application redémarrera après le changement." - -#~ msgid "Film Object" -#~ msgstr "Objet de Film" - -#~ msgid "Object for which to create the film." -#~ msgstr "Objet pour lequel créer le film." - -#~ msgid "Box Object" -#~ msgstr "Objet Box" - -#~ msgid "" -#~ "The actual object that is used as container for the\n" -#~ " selected object for which we create the film.\n" -#~ "Usually it is the PCB outline but it can be also the\n" -#~ "same object for which the film is created." -#~ msgstr "" -#~ "L'objet réel qui utilise un conteneur pour la\n" -#~ "  objet sélectionné pour lequel nous créons le film.\n" -#~ "Habituellement, c’est le contour du PCB, mais cela peut aussi être le\n" -#~ "même objet pour lequel le film est créé." - -#~ msgid "Expected -x and -y ." -#~ msgstr "Attendu -x et -y ." - #~ msgid "Could not load factory defaults file." #~ msgstr "Impossible de charger le fichier de paramètres d'usine." @@ -19049,6 +18755,9 @@ msgstr "" #~ msgid " Export SVG cancelled." #~ msgstr " Export SVG annulé." +#~ msgid "Export PNG cancelled." +#~ msgstr "Exportation PNG annulée." + #~ msgid "No object selected. Please select an Gerber object to export." #~ msgstr "" #~ "Aucun objet sélectionné. Veuillez sélectionner un objet Gerber à exporter." @@ -19116,6 +18825,9 @@ msgstr "" #~ msgid "Save Object PDF cancelled." #~ msgstr "Enregistrer l'objet PDF annulé." +#~ msgid "Shows list of commands." +#~ msgstr "Affiche la liste des commandes." + #~ msgid "FlatCAM bookmarks export cancelled." #~ msgstr "Exportation des favoris FlatCAM annulée." @@ -19245,7 +18957,7 @@ msgstr "" #~ msgid "" #~ "- 'Itself' - the non copper clearing extent\n" #~ "is based on the object that is copper cleared.\n" -#~ " - 'Area Selection' - left mouse click to start selection of the area to " +#~ "- 'Area Selection' - left mouse click to start selection of the area to " #~ "be painted.\n" #~ "Keeping a modifier key pressed (CTRL or SHIFT) will allow to add multiple " #~ "areas.\n" @@ -19641,6 +19353,9 @@ msgstr "" #~ "#\n" #~ "\n" +#~ msgid "Program Author" +#~ msgstr "Auteur du programme" + #~ msgid "Change project units ..." #~ msgstr "Changer les unités du projet ..." diff --git a/locale/hu/LC_MESSAGES/strings.mo b/locale/hu/LC_MESSAGES/strings.mo index 6273449cce22faed716bfce1cf5a6e30b71e1412..4df649ecc648c24c1fdead1bf74726d99e2bae9f 100644 GIT binary patch delta 71809 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 delta 77518 zcmXWkdB9FZ-@x(fULs4#PU5!j`!2G}E?X$s_gx`rxf0n@q)2;65h+WOlopke^n_AM zixMfNRU*&#d(FImyq`03&Y3gwo8Qbi_sx@M_Y^uduW<56{>-Hb{_p18i9`wfZfGL0 zDqkY8{#|PmiAFio5~Z*)-h%z`ay*E|@pmkXd2*#C%3~d@fqi3nF6N>99A1n&FfYE1 zxe|$F;vff?Q1MMX@e9(I#D!??+-Zr+C>O(GSRb=vH>80?pLl*KW>QXK5uA+$@lo{p zjc7YBM-O5#o}W0)K~YZRx+E=;AIqT)G(;QdhK_U?dR-C=;PP0%KKd@&p>HuKo{Hsv z@EXb&bL-%^KCc`kHm88BB4AQ&5aLn2>ymfu6NP2#7rDrG%cB!#=%J{9Qlx9 zX^D5RZ}GH5Ybnc5;^etBnLitWb_8K;oH#VvLM#qkKXV&nq+IxDcXWg*)DXMeS#+K z_vrO!(T-%64(;Ygle-l9++;%z>`^Q9hK}eBz0d~?K|68-dc!Sf2j-yHEr~vfUcUjo z?lp8E??pdBJ9rdr?>FSSWa8g=B3qe|#f7ji7gRtmY=$=24t-$vSU(VLa1`3{o6wHU z#1425X5pvkzHtV>fyJjn8^RX%hu zTg9+CF2|aj?}m0HiDvnHv_p@f%X2NdnzqOKpYV+9{|pD-c)C)!@n1BQc`K(Snqn!e zhW*iXJ0IPuSE6&d6OGKL=t#dulkq|<7pjt$7(uxv*1%<07vILDq56k|j@Y_tXy9Hn ziPoS~@GAPCchHd>K{upduqF|iP%UKlUd#BOJ{T)rz4LOwq z7gFB}=i|O42eUcoS1)XdM{ohS-bcC(Z z?Culm=U{cp51}6{?_xvz9`D1;udu_czvnqHBs)_TiNs#?0bj=YpJMqex|io@%KIBH z!7|t$>*826LQkOge}hKg*I2%&Stu98->I*ReO&*SUm50hDt4!QE4ITA(NGp@9=>eK zpbb|+3~ZpbzYfJ+M1^|5Ne&Iy53Lp&fd=RWdaEajZCk_UvRV z|BEiKi(7}0Rzn+TiH@`z8uFge{?Xy+fF|GooQ_89Q?x^0qW685qnH~vQNzqoB$qBJH8a$rvzpv$QR z`k4pU%TGjiq7V8imQSH`o~J`vA{`5$4=#)jtTdYKRngpPjVrM?PIUdB z;b0&YqdKM~=HYI90K0ceOH9XO=xP|)IfQO58p`|82t9>9=v6d=@5b|=$MYw#B=wnH z!q;+HGzU6hNuHm$ngc&NC!#%HfOT*w8j;;t4Sz#-uu@&q5?5d!bOX8{y?!fZ;R$rd z%h@d~>q=;jbcy9DSc&pOm~6qpn;f`k;B zU&}Wk7Yw{EEwP942mQk`T7G@-3mm}tEdJko&L;`=k5O z_6iIO=bNIRX#J56BojBs6N}MoegSLYest^293I~5mC%m%!J0T3tKtfD?)PFA799~D z*cekujJ7*J)~`qJJBUqP|7jz`a=H=?(F|;c&!Ai9_t*+6j|y`*4((VnmRF(Qj$6^G z`#5?CT?I$b2%f}Tcmdt8a*d|U^Aq_vutz1(5w=IS$|2~3$Hek;=ty2fA9M(v!z1W} z{zR8)`k0V21SsW~(q7iP!=kO=h9*NnpehK=ZRcLZ;LpyXZ`YYC^oNGdu>SpLC+|3hM|8+UoLWMURN9Qtw-N893 zh3;_W(1=t;BT*0SK=Wu9v}4zy*Nu$zlhBdh9?N%QAIcBK`qN1coQwa^Bq=m0?A?{o z<#<&rkB{ZMV|gRm@IExuU!WcM1;^pP*c3-iPD@;mt8pM^+zo!z;M`w-YuG}k;|j|2(4?$#TX^jb#X6K9K|Asx4#ML&06W|s zURrC=RdfdZSusJ5@fd#B6Q=4*tU>u#%;$+xcZAn&Ep*PWL)Z6AbWfj)KKMa2>E6fo zcnF<}(lbLY42q6Nb74j-&q0&;e)Rr_(S2nNCNnrV$$?q>3!2?$&<cD;Q|O1wq}gF0YtY;{Je&33nS)F2N=w{}*P)4Gt@+{YI2GN&o<=+J4VJ_6=*Y?}2rsEtXtIsKintUT;Hzjv zl7Ga5jJv}s$d8_=j^5Zb){l+OK}WU%eM@e@miQCe@fr(51iRpkl>4IBe}KL#K0_n) z3o=E?#03rvdG>okX!4_TT@uZOGT0caqRVbLF2f|&!ov544dp7d!^6?!dH{RiJLrB= zY*F~MtA)0|1#`MEw{ei4innkAeuDL|?c$JpGq4-w+1M2i;BqW`Us_@j?m*|h^O6w3 zYta!;#Y^!{^o!|%cz!)Puy?T;`Iq>J1Ct@o10kEspdG4+);B>L=!%YP1lquI^Z_f- z&~8RM@*cVce;Vt5MeonHG<-Rg#A=kgV(Rz*w{YOHc@|BoFVUT^=&}&{?&$ix8$JIP zx`F(MUf1%$(D01tvuIL(j!tdb@-XMQqb1N~TWvY(-;Jg=6(&zZG@GwM-{Uu+S-l8d zw_DKcK7x+uKXmyPekkk*jWCOHm*@nvokeIw)}xVq8-3oPhlsz)@i!GVnCIc}(y4%D zDR)30Fh05ny>TOY-$!WZe?U8a9(_=;N5cJe(09u*mMu>SVm&)#xE~$NL@K z;m)HC=6^JVtSaWATnnA+=IDmfCD!*t_lr@n{%v%b{ttbd=6x*ejCIg3gRljTKp*%F zPRA|i)Kq^e>?@5hY4&#Jzy}UNv-{>)UXG6Vc{DNy&^bShCfy0N!+)Y7&9*uuRavyX zI_PyBqP?So(J33hn)Ppk)2J|Xv(X+t9xqrM%bTLFMt7qf-;d7u33Pe=6U&!A9j2@_ zdcG;z(avZ@u8;L&o=%3jpFxEUJ{&K60S)~d=tzD>b0G7X5P?!?hpVFxxGI+WU`@)C zu`RB^VfX`@4M;JD?p%-pPR%K8NM;bF?Fg=R)>oN4Lxp=tyfu zo1-D^7R!U8lhE~j2RfAt(2ZtkJpU9L$t}p#ClmWPu%RzQMdB2iH0RJ8FWwLuDuP~D z22IksXzuhtm)oG|4d{bsqf@#FYvF2i#Ghb&Oncq|vi=*U4w#$h;OI28fxFQMuRxP* z6Z+uy(a0Q%=TFA^bLa;~&KE)?@}Q9`ioQ!K;aTj6AM*S}+l^s46xd^tMz)zJ5U zYpjHQ(5blt-5KYip}B6`lJZqS;;!Nm?EaZ4>l?{n5AG9Q1)}WBEgLV5iaR z^KNJTdtvSEp`sW1x}1h?wOi0F_E&UdXRskwdnI&e7`mL6ViWuj>tT)^p(9sf7UfY` z1Lvdr#x`t@A1C8M{#U~Td!Q%oMK_=i(GBG+cET#Jh4M5s5>I0mzKyP$W9Sa|8@k0_ zK<~eJXZVP1gk34mL#HJ9DF@C)p4UT`UXC_U9lfv#x}4@?7CwMZ(TnIRcn@7ApQ7#j zj3)0n^zB#RjgXX;Fx4)4UlSy$lZp26g30KErbTC>%Wh#TKZcHI4cfp)bXo00vw9!8 z4}2EOC(-u)L_3&xGjyOZHlwDO_mp8`NLQ~ffcCF{#M9| z8fbY4ItBC5ePJn1#x=2Ad{>B2bu=|qY=sWPOvB%sVZm(>S5A3>kv=$jVFen^*5nA-kj*;@%+~4 z9;}eYO9_34WZ%s@gmOJ>Px;#S!s=OtMtB|8z)hHm-@M2AcaDxxVb4xS|3%mBMem27 z;i_OM%D15nJ%%pJr_hkE$1b=HXJEEHVXkMQ54tycKYIOgG(u19Nrr5GlM3hjlX&7Z zy5r^jAS78`bf;{McH|lK{JUs`PNEUZ*c*~AKbowUqe)r;?RWz;d7GgdTBl^Z;8yg8 zg=mkL;y8R5TVVDN!?#^~bQyI;BXAu$_e0T++#Ju}hpF5^2lgV`!H=*vQ}h+OktOSY z6dD|lCd&*o*%qQ74r|a*y@A)_SNI(^`Cpi#QXhx&ZLkXUL(n9=2YceP@%(>Sm2!#w z;r9jYalY$+0S9g<1rG!(VHV}4=m*L5=m=(^$@4h6h3-W=_5&J$iw=e)ybPV1_Lza= z&>WkDM)(#q60=kFtiSs?a84eN7p%uRlwXYH<7fk?(FdJF=QRH(A>?Jyjj9Pc@=oaa zQRwy4%Zuy;r-qc9oZPHh_kUYu17=nA-2P_=<;fLDEvNP0eanz z=n-`FBt8r6mPgB7(d4}mjp+TDv|>X%@gY{Adh*LD?aFmKH%>89JQ5_9gTWp16V);32L-}L$ zz9L6L(zQU7Zan(H`_Kri$C7Ehd(eS>^HrG2U$8Re%aUJ*6K&BX>xq6)3_wTzAR4lL z(Ie>3ct4{%+3#q>7tlyt@=b_9X>^~c7t1ZtDd-g)k6xdg!+{TY7;R`R`hb_v4!w$o zba(VHn&qd^WX<($SZ3wX4W}~NP76$JRA@Wbp&cH9=F$yV)AhfUgX&bgjm_|P?2WaL zhQEL`7r8KT0!_YR--R7A3yoCy=m7K`@*vug73lu44V}Ux*oLVn{e5u6G2f=FzjZ%^ z&*@{B$%QA-hEAbbeg=(5+HwA10kdOK8hQ!)<3}gb64zn%lWB>OIRB^c+w#*trzLiB zeY;b1l=^JHgug@9{MXRVi})hXPYgdDLUh@0@nwOAt^pdl*67H)q9f~#X7M<*qqm{g z%|$n!CFm5bM3ZqRn(d#X?f!;N#RW`eaggix&_Fdb7aF1$w!=l(6K&uq8j*ivIrERu zp%Unv*F}@6CEAhRv3@wtqkJP8;d9s;)Ba@rcj2JzpYhLbumk1&(aZk|4UI&n;3k}g zx1l-n2O5zwe}@hppdENE`aT-TPtXqk73&d(jR(fQIxTbYoc)&+kFo`yV>;Lue#U#PT`3)b)SK zf1$xr=rSsg?%lPp7PdnhxCwpWJZymXpv!j`R>d|K!cVbdrKP8Gpa%L<>41Lej7N90yU~U>Mt7hcd>74uL+F&8MyKd3R>I8m z^wd;VMA3CED)sBnQsjuhFy|>8TAQKQ^Vl6#6q^f82`8 zaTj*WnV$N4!Uc1Mh&+Kl;CVDs+tCN?LUZZ^G^xKq_m{uX+)C!pot|1&4WhlHQ_zmx zk4EAt^v12|NdJe1{17_AW9ZKJ8~VTt==}vR3HO&r%MH;SXph{NObq0}jb|)6_p5Od zeuS>`mU+@s@A<2+KIJ>m<+K&efm1jh&!fw8Y~IkpNoYiFLOXgVnmdbQ`ANLk1-yX+ zd;U^9u?ubZW3;E=pj+t~G_<+%r6$KgUeh z|A|;}3eEQOXsEJXnx6WDf+ARv@&q&qm!a$Y2)fMvMzg*|{;)r^M&E9u(PeozcE(rG zWqWaf5UJXjbZ#4P;0Hr{G~~n4j*LYco`QYx5p@0kf!=o}nzLXimp~&~15LgwV!3tn zYBVy}$MUFxtbao>l?t7W&e8qo$X1~t-i@y31L#!zgkGO06xM%Uw8K}R9cY8@nBCF) zCZZeITE zuoe!*R`>w6#80sX7Au;b`f6^EwlgHjfy+f3-~;F$zbASc9Z8X5VWjn=gV9LbgWk6S z>*AqU&Rsmzw?t4ZWhH(Jl0LG^rLwpGF_}dh}Dgf$}Mwgo7)Er2H5Sb^@GO}G}*pDx7tco!xlOT+faTI-FUu7_k};u-t7C zQqQAF{1Q5V9cYq&f=2jMk^@7Ps2-L}PIS(TqZigi=eQFZiT>#77=yl!Z$san%hBsT zMswpRdjBu6oV`XkUjTh4ltZ7B?8SlEKOSv(I{Kk-H#%o4V*RtR{#Eor`_Tt{hlcoE ztj|$1Okr_!{ntbv)I65^qB%DTE4lt}Ms(F!n$@{4<(t zXV6@@fQGbi?Xb00LX)#Cno~p34oyd=a9*mO_4gnLhIT#Lv+ZaEKE$f{9lEUY)d?M| zgYMl;@fPfdM&Ka&pl`7e{*4{5R^8Cf4D_Y;bS&?|?ymp8IWSo|)C)<{9i79m=m>AZ zYIr+3@^x4nx1u9Dj-Bxgnv`wphxUV$ur^a$p3$MCbe@vN{rf zprQH;?Z`z9!gaaP`r_#KKxMQe)zK+v7VEo3d!kd?2OYp*G@pZJr z$*iW~3#B>Mr(z}=>X*=w9Y*KsS9FWc)hs>nC{{(2X*Zf1d(k925bG;k8Sbx&KBxtn zqyy2H*?J@b$;6KwIKphr!#Xa3KCmvje!Jp09EbmrZJ*(*ln=E|Puz;j+JsOSXd8C6 zVrV2gpd;>$%`u4%a3}g&{}b2x{%_PStnY8J4JR_M3U)x(@x5qB-$h59**=6c2b$Go z&<9pSr>qe+W%;y?=kM$gR@Fi@374YRufdCWeqsv;X8CqBlpmlM?njs7F?5If1)cM3 z9YeNXisnigbQ#x)^-W@ZCv*z0L+_u2zJ%sRS77S<{}m40`Szky@eP_Zf1}BnuTywX zNwi}%&}G;X9dQq|qXVO(uqWloXoTKI_lte#^+(VMob1HrgI_4zMp8(N&oG-~ax~ zfj1<2hCMk4I->Gu!*yc0G1{?qvA%mO_l@U=qEj*njl`W;375q3E9eyLLHCjDy@;sm zKQ{-CtRT8ImdAcL6l>wDXh%+Ab^H^3P}$yLO6sE>Zieoh9nl92M{{TldjB2h0Oq0{ zT!Klz;Z}0sTy96F;D0z7zr=~y?V9j8y%V!2|BWusqJ82jz_OG(pgA)>dLx=MH>2&& zL_2a1+TjQKu>S4o3M!1i(`XN0LZ{?Sw5NN}b$&SdBig_}=m4_y4G%7fCTBS`cN(G( zY>BqhK9>7N2li$CyYY;O74y*$E{^4O=rY+9%kQ9(+KWcuJ2b1a^$W`~Cpw@~XmXZA zJ5mSjXj3#Iz0m!oe=;6SLoZy6M&M!ehSg{!UPV6`-oY&V7VSvJwIOoF(TG$>yuA$(1{b<&;~NE3toy9D3`<<*cNZZDcBj0V`Z%0KU_Z$ec(8> z!?&UxybH~VN70e5M5ppukAkGL4OGWP0j0zAH$zU%RgflHX4(j`kM~@ur1}4XmTCLCU_bfVzsg1B{K|7*2mCQ@BzA< zPoc{#$G8ysvS_5Mk7NCN(2Rr50+T0R) z-XYot^K*VU+VJ#f5}o5YXh&9|BYXqB{v-5T@@T9-6YI0z8tRK<>hJ&8cqQkTq9ZwgQ}HWwOYVJJsDBTA-yc9j{v$dCXVDGk;@iVi;3Tt0-=a2>h|4xz8}3|5yLPeJs$>S(SsN84?iWc_>4 ziwb)_6b;$UxCZaVj_JI|?+EMv&O6f+4^qDyor*!T!U#u3r=qzt3ytU^^riC*y3sw4 z{wVhgI*@9!d4LCvXNPs!4u`P*N25E~2X}>Kbp{<-nK|i+>#z&%#I^V|j-DHSJkK{T zJ@F>xE%*Z7G(W7aN(<6ce?$65+(7-KcZcgbB^QQ+Joki#|A!U0p!&V(iBZ@Kox@kr z5blY7iG3*l63bUD3fJ{RBQr9VC&cotSep7-=zv$F5lU|2z`gx_GzX5w3w}XEcMiv5 z=Hif4lh6*{fzI(W=mWQ*q2GzNvjO{ z&!1yCJcEAYU4DP~<#B0rBPkclmC+GbLkChHjYwNG#GTRWhoQ@GG}`eSG4=hwfP?*1 zEWza@--ri7mR?vI_WY*H!mns6EEP72gCUt%hOYTE9N}<@|p5b$o2=LpW-;` zi#!~*^4YkU@~fCU!a>(Z(i5Ao`lIQIS#;oQ>_vIl;~^3+<7CR8B9|sQJi&(ue!qfj z#*R;gKTiMW>F~$wH#`&mnEfYg%zY!*gb$AuXij{E7xA2uYgzvTsVMhs7|CqBp7Pu1 z6qH@ZpJH)gOLWJZzCP@Dr?4O8A;rs;b zM){Q&SpSYJ*T(SR+ps$2!?+N0Yzn{CT81`o99v?s&Ed6s9d@8R8|&bQXtJek3FZ2D zHRVxgF1?KP@JO^k^2M;DwMVn_Yjj;_-x@ZSf%qlmY%hgRvhT1pH!ucfLLpgbfgGC&S*b%1SFLaI?z8e0JXd1fn9mKwv zcrE-YB1IelQ2=(i6ynlhF{hOhot#75L z{>S4LcZI*%@Bvok!ai?@xu1p4Q~n2if3JNfOwC*92TGxL!}VR!{bB~%v8S*G?v3^5 za3tjlyB)aepM&XClzcDvAU;Pq-}~u_5AZcKS?=Bw=JYT&q@3r2&``VR1~gKI_lAzN z#L|?<<5*mT6Y*ahjAK9K=MA2p*vr8)_|(4i)L)b9{84)9KfQ1eowJ_*3puh5O`_Hx zhjl&*+f%+9?a%=%NG{~wAAZAG`asC3VOY`YuqAHB+W03XmvB(=V0z+n+>Tzb^pmih zK1H|6OFvCd{DnpEL(Fq1B-NKVg>tpe!p{LK&<-6#BUbbC@N-2H{kh>?ER7k5!vH76dmz@Xv1Z{NKZV8<8U=z@@1IY&Czes0bF_{{0P<)T`f1D%X%yN z^T2oLa=mbb_3xfs=c~|AQ@oh+SaexU!TOZvejS$It7tOi`X)5o1hXjLj&3whpxIsb z+Ys`7*o^Yu=<2C|H0-SRVjIdwlN|Kmpwf5gi9vWv^owY-??aY9j`sLhJdb6Mr6+#G z(m#Z^U+&|fol0ZlhZT*rYClA z-H>zPN2^ljLxhfECF=YA7na?f=*w#hrvCnKo(s$+4ei1$oOnJhBlVsimY$J%Ef3Df zNWI?+W@aQxaNXVL2-aMbk;<8`Fc0Mx*)mdJK;6(C@p|;FxC}G#BXmPMh$j8Y>>2#m zk~vta1<#pWkFY3yi=*&g%!|WvW~BCsDR?vGhj0cK z$Q2%ZFFN8?SRS84b8CMt{`)5;Ra)+h)X(R&&`=FR_krPf2~NP4cq`hW*U?qR_{O`v@n*JMOWfD>Nnuqcv+s%@o$nG7`oHw%i$c_z_`2_sdvCMEJpbcGy-|@ zWu*RuBMWm;UVwIR8M@A&LOZ?_{Sj?9I)&e37G}RRBlRIu35|5J9|w+L4BC-hcp2`) zF?bRe;5GR(Qoq&u21`*+6bR)k%%a#lmIq;W%1N}nxoF3iU@d$Kjo?9KDwB!tIJl0A z^YKK#f?-6X@B!+lp}CQ(P)6$SZWYDxlt-XRdjL(^&(Vf|MI(3tjZlulp}j)roR`Iy z()ghk8@v8<6wOFX*;pZ>|cc3AD9Ub9&(F4)1&<^~F zcHoa_qC}|Ajox3_GS5$x;=mDBMsH|PlaHhdF((0k}e4r5vT4!!T< zlA*l<==v{#@)@bO;2d3{~@W6$Xg+d zI6oSJ%INv}XeisEq3n&La18Fl{n!RqRm@1eUXP;>Y+fnsFCEa;aWmS1nMn@J%DGqs zUqm0c7rpT_^oFD84JXl%pN^hIx9W__!3yXPARVv(-iCe;+=q7T1lGhFRl-1$132&j zm5FQ0B``}5I`--ng(VN9+6 zw>Vfw#TR%5&a0M@`nKDJ(%UN)jMOiM7UCjKyoV2Azq%QzpVfXxmuaPXVMAJj zJt#M;A6$$JC?CZoIH5rpNLs_NGd9D@)DMWxi*CY-Hv9z#w_;|ajMNXEGjR^(JdHyH zmSQK%O)?TQ@mg$wUtl@B{ECd!4;Zb`j%`49&a|c(so$nA!%~#LK|e;*nq{Q^u1IrC zntYFP&>Y`Kx6+(fhB?ea-}6_aH_pQr_zt=XvNsQNTNurWl4yvlpzFRqnuP6Rxj)vS zJP}ROmCafIhUOD0m`XljLWAk(hLaObn$l?YSBch&Hb9fBDSCgKSZ;^j-xa-oIC}qt z=#=P;7Rk`S9aOlp%|rM2MYsX)$L`pwWf;)|m|6wss@Q~i@hx;U>_;E?HQIp_Xao|i zf(6k5S3)D!Bguh18xSjoVOz?R(1y06BitFw?;^`4@e#T|oIpGBI~wxL)?u9&L35)& z+RjY0LkrLiZUwr`lTUGAa;!x=@?N}PA3CCs(S6}7^Z`Gk4JO)z)sX}3;FV~7J1mXe z&~_(dBfJlN@cU?cdyxnv6NfqQ!9QSbCh=#be70@4Fnha<)L$kkg#53p6Qj|F8??_z z{q?(R@N&u@qwkPk(RW9#4&hs`Cf1qI2>w+QTEU{wK6U z=b||}hA*VT=%-m7Gy-(Xhz8>AO$DmvJN_1n}hF-rDZGSJ`fyw`IU^ey`5H^%+(FYHU zPDC4?fv)elv3@bS0X>2y*=lr(HlkDZ2D;4lqe=TMdi~#MN74qS+D#_%a$t6sKp$KW z?ND>{hO5vUx}y&mh<0Qmdi`{?1GCWU7DXRJuV05=_X;|YccS|-k1zJGIk3TB&<4;(V zh>RT*vip&-VX8`u3s#KQL35$mxMb*QM=IQi`l2Bk8!x;GS5dwbjYx&@VXLl%&UI%j z&I7NDU~0HvG#b*IVtEc$ zr2GK3#2q*o|3iB|Xj-U$2o3dNtbpHRPRxB%=ui>#!4=UQsu$}!V1CzsztjOQ9dsl~ z^yRV`Q%Q#IXot~k{}~Nww&|fhH`?)%=u}omN7w>Q?q0Ee7FMUc4E$tN;gBhGuhti$2QiEKvuG|{#&UITTcfL?EBbaDg-*#tbU;(lcgO-X zLQCTLW#}i_qv$|ZBsp-sZ$PtmJ380zqe=BeEFX*K&!7*y_>OR2UbI7(MJvSm+RS({{ z5OhFeaR5$5BbGeCfj#;hz406Lfj`Fb*;vlFGn_Ago-cvUVKp>@t@J ze;<0^lh_(xKvr8a@dpPsaM7&rgTtk0PwS$~sTum9tI_2*0>8o}uEl|~!^m^o6(Vv8 z`k*rCgX_d{OLVHb$8vv6{rUem4i<7^3Oa(cIiVwYu`=b_=+=B4X5lTd{AhFs`k*gj z`6N2$x#otSc=DkSE`ScKB%17%@KV=*3l3Id51fd9;y@feFZ@R1ZG3=o*ZJZ10Y}l* z(0@UQ+-!8?T8u_$1^S@vXask~^Pk4^$FU^!X?L^!%X5&$fjQ6)J<$dI=p2Xkd@k0( zC1^z6#%lNrHpCJO!*4u#p&QU*^!m-1g~!kxFZ(@Vd6!3Xq~krT|8g8mrlJxq!xp#` z-N6#~hPPQg^oD`xNavu-^g(QaYtbqA5go`sXe9VA4WyE~7`nR3U{9=x=G?4BtY#i6_jucBP+zVJOi7{^oIh;6XclJEn^Fm&n`;Ei||JK}`QoP00EF4`rnOL6Y|#4$Eli zBf-yb0Ov1%G`z-deJn&G+v8#6m!QkLI2x(4Xl^9yaNw5NHdb7V?&0InWi%7*`F-*H zgJ@1X8_O@E%X2rH)km-|{)OJ(?TL_#1JS7)jd$S;B!|fVC&P`^(U(YDbZ_sECg(IX zHy%Zo;oE2jzelI;AN0ZbSA?Ch3YMna6}^5EHpj)$kI?q=t@J$4Z_I(;X#LO*OiP{M zZ$e@j%Fkgf{0QB8(^iG|dU>>?y|5-uz^eE-I`{8m78ZIcJg@<#k{E4wj`ci0v6cgG z{1}_!f9P*QuUH+H*-hxL-=0FZ&Tp|5R(Lwh;b^pDx5o05=(po$bn5m+52CB!FdD(* zm~y3;%CCLxCHG`F?57&(bwrf^uZ%z`B`)%o6rXxL?d_@eb8^{GQEK2%%y8W z`z6r!Dy?Dto0YYw@W#eyl3a~f;^27UljwD8(1tgn4ZemZ?|W!AA3>AxG`fLhUmGlg zo^OU;e>K|9@U_YCz#FJA60%x7*(EFyM?~a+Vei8bh zC(+z`5$({&(Vww4<%^T+!(2B(zu~4~UEGM?@I5-0iRZ!;l|Xm6(r82~p^>PKcA#mr zBigaP=yk(l{djcbx5RRC9tVA>SQby5LZ{+iG)eMr2zz%0bUC((kLS_nUi&IK zSD$lG1Aj)BUy0YkYqvT&=Y7%jeLK3R&qg2o0Gf2~VtYJ@PDRO`As4QXjzM$brdXbZ zCh_8(tbZGLkP0`J)tG_D(X9Om&F(+Z4kTU=Nt6wHQEZK#UygQc75bpfX!7pFr*J>s zfYaXyKh&N?KU~JYnG7RY{bopxL)e)UIp4}i{evWZ(2g97{(^p5ok2UAzAMaiHgvsr zL3h$2(UEAR#-UU2MD!Unx1LXO;3w5|4aJJC|0NtWpkg~3lGD+|dtnviMeD1eH#Uy- zqoT9Wkv)#SCD&m~Jb`w+>iZ#r9q~rWz0vF6!$PiuPdG3{KcRDU4h?zco)DS5=v-fh z=0YiKjFr%3Hw2gAtyl{Sd=U1NHfV>3pc~J9*aP1}_mjeV`LuH#R_DM6Y(yXYBId`} zaRTngdf4j2kbE~`H_9`yEB+6cW7fX#2beFTbKl{k5Wzm^h;Kk&$4T^y={`)l(X8db zk?lhN_E)6r$~44PD*qdQ-r10nQX(e*nIJ^wnofBcJHcjdwGNp@5888oRs zMI-zlI^{V&Vf}kh?2|Ck%IHQ@15KWKXg2pm-{TX}tX_yN+l^>;A4W&?FS>jSd>ZzH z`j|zzV{|Oq&O$UIYm*!p+BeY$9z>Jl546Ethr&yzES9C*4t>Cw=tA_q4d{J)(a?W~ zcKj^*pu(Sp`)i_8-V<#2}2(U-|K zv;#ZQj_yUT{}!F|pU~_6M(_I%FLM27{~}y?Nwf%d;DXY4Esl-#?_fIRkD~k0T=@j; z&==?fPM{C?70s=G(04+PFGC0Op!-G%O#S!28*pG!v_|K05Smm;w81CP2Rx0AY%@BC zyU}Dkiq-JqBVkVKV|~h9&BzT{@+0kuA$;vbnY5|6?)zly|6c$ zTqCe5-iFI@Enb1GzRpOzg}0+SXsd5RQg=inbUn7fq3A%K!s)p28`i&bQ{~&RvD8Pi zw*&gXfoMdg#qv^g#Ou+>{12V;Lukj3p&kAWjcCTvkW*P`do|JP+C_UDO@@jAR5)j2 z&<1ZrLpKxc;3M(;)3N+~bbIt|wBsM4bAAk6UVp`Mp6|kxl|;`sMmyRe$$=rcHl7%X z&izejgAbw?K8J?>HFP9DqB)TEedurrw8K@<2egUhURaaz1Z<0s<1qXVP4Z-iV_|vS zk5#DHg){IMG{j?m2n|j~A3PJ=;Bqv?Ut%Vn#csSiE}++SI}ujT2y{Siph@}-x_{*P zF*UWxL`4o7QPB?VKoY(1SuBsAq8&MpW^d-nkX*&kkyeW~MI+TYmamVFNB4o-(5ak@ z?lVhL=UM+NI53nO(YgNsZRqn@K8YsHKj@7Y{S+E1h+bC;P10KE{oT;zc71dr`rw)9 zlrF?txDu=I{KS3^>f?Xt2<}Fgy%B9-9{S+N(Ik5week>JyX0Uze>~RzgMMFR zKNTX83yoYMO!_h@&%s%|3O~eFzl7Cr>91kL#nCyfjK2R{U?uE@PR(uT&Nv$l^;}$q z_o2B_|8#i$HbHY|FnZt9r&<5r@EjHT5)Q>TupE~EE!YwLnQ&tC9xO|F9X7yy*oWlH z_ItQ~z#kc@|GC{PtjqcOe}>oaXsk?m0eat-KUx1i=p+@+ZN9%kE|iKkK}XyheM^qU z>UbAAhnvy4|1O&GcbK{|Xk;6r5A27$?Gm%l=RF0v_MjWe-`EK&o(tt0(MYVqEPNAPHAm46?iX~2J%`?Z(fQOzY%)=wgRWHE zh0e(VbSiTF7qYZC+CUZbx`ya-nuA$*A38;w&{gmbx=Ie9?fi%)??343%6B0oWqC~f z_y4MJ;EfH@tZo}Gn1DX$#^~+nvYQ{v52GVmjo!ZjT~<5LWc~o%2R@1A<7j)op&dMr zsrP>Y7D-bove1!UkEyK}vnWqSH>f3Ot~?jZdt&(*R-isJEi;u9RnhW5bPDF6`@#~O zjH_e0NP1@Y_dlv|U}zen9q5XN>^d~*Za}kl1KRWdp{wBsG|4hDGE?7pSEBblf?l@? zeMjs@JN`Wyk&Mh>p-le!r-rH`6?ULDI%njqsZ6$;{L;c%F((DvqFYbQJBtspuJW-KJlhnfe*7 zB9@{&18wMGbXl%IL%tTf;EOl|GjfE;-i|)!?&#tq2i~w04bciTn|GpfzCYHVLU+8} zIWtp9Rtw!JTc90z3O&CIjnHv4l8IblKzY$*EsiE>S+wKHx*V9jP0$^!eZ1gi^oIFp zkC)&$d=Oh;X70??w_RH_XF8z~=!?$%AhaXX;`w_ql^f{5HX$8M@;{--O#O=_U!Xf# zojjqzF=(>fgeKd3^uu8_8mZUtTKodP!-jdo6qU#q&bP!W)DJ|HZ~^wjXX5#Pv8vzy z#V*ZE{lcIv&gX);=oDOQ!IavHgF1k&_C#$<}DaPUJBi)8lod_ zkDecnUOzRSzZ+A3{{JWkCeuc&goO$PuS7>S5-Z|NERAciD(=B{_&2u4D+_0)ejhLw zz3%1cVRZGJN82w`B$PW9Vf~xElc+GHi_!AB=pL*<`6Rjl zEsCx}Bl!|K^0#C8Fq%szin9II(ni>IvY*C9q9E%iidWp zqU9#huISb~1Wo3t=s@S98{Wz!2hPb2Rw*2^fdZ_Eog_f zqal4edI-((lW4MDoE4T?8Fa&`fVR^NQyUf9PG8LB`X9=H$utpb;u5TmZ(=k26?B>vT=| z%+%-fQOxARV`xJs(JcQHjmUraJZ4rPl-$1s`{Ukb6yM0sVmWr^oaFCa31AJb&?^(|4`AIivO?+wyK*M{?HgZQ2r=dyk2N% z7&--0a2n1)bLKP}ky7a z8}5i5aX7kxynuFKU!%;_e@x;_G$$rB4s$&f-C~!Z9a@J@#YMYyLxUyIWmE>;yQ^a@Y>hTB1%2RM*Z>!x?Y)6jv1PL`730y!EHIvtbgaSN{bNEM(71CusU``KRl+Rp?eaY%V*Fz-;8GYRTZK?xjgF)@+R*`MPK-k5d^#HX zxoCTvu>!t#=zW{fk$#AV{2)5QqiDx}K_7Syz5miq;r=q1&-GG|19!f*=#Bl+jb{`( z_bYJ{?nT%6m7T+Tz75u=d>gu)HlsOk6363Nba{^I5;`~@jmQ+Vqe;x`dc7xBJccIM zI<)6oV*MLv!~4*V9znO#Khedy%ZVnxbh(ImVdUFV0YGWNyg==wj6-uGuTdyh~qhDNd~ntY97 zxka=~57xh-xi(e|MigA zajc66V>w6PP~QSwH8)`s*Z*@InAOM85nVv%vU0yLk}I$tmMR?1$L)A7){pASPFNb-w9u!?f#1+vEcQrBG><|9^g}GvV4Gc=rc6gzC*MA zS9A`G3LObHo~Sj4ZUtNdf!eo={~~Jm^L(gz?4M?(in~OprNdPzig&Z zF#s3D6DOkQ(a>KyEaXHvbnY6&@?>;f&q70dH=3N!qB*r29qCu-PIxSqe?=ql_b}GK z2Z`aq9B4!N(YdRQu7>W>5$G0r3z}5(qpQ#dz8XD%H&8x_lW@R@kd*t-NM|1z+9{ai zz>S~`mSGOdV>`<2M};3e7NN=Z8D53uM~5wRJhq|y7`pL%i|z}j(dAWeOi0R(=<9kC z8maYY5^q5VkbIc~vwT0g>`tPgI*%@w>|?{67eTM9h0bw%G!p&LDH@5sj%T26&!y;f z`_SC@8omFgSk4@mI?sRqg#%v-rP1W-j%NQDwBe~}j?6=+>hW0rOswCIKIkL#0pFk@ z{wLOF8y}{y2s)r@=yRH;%B;WM9GH#6u@c^lS-28SwzvM@-dl%9b-V%Fs|13(!{VCY zuEE{imt-T5WJ5N=VR3gTTco(VFYZvFcyV{v7AUkp-}^admZtr^*Z2PO{mER{=w)ar>!e=Nen%1dbS@S{JoHd~Ascula z|HspiV>nU`%z(1AE1@Ljg|Y&_z#{N2l+!ACjGkCAD3|UEZ~$xrCDHRx0^Nq?;X7C# z2K3VX^nq@aA-FQ?f{Gt@jLs@}qP>%T%$jM=N3uUE#hmwdXPS;BUMV=AL z^FV$mi4=x%2r4RhBgJM=4r!}6b^q^zKz45gl+83kDf|HC0c1WDhfAS2+zRDk^=Byh z&(-*6D4RA}ye`iPx2J8RrZp+A(RoDAjI%~lG_p&0ChHh5I^A47Rw z_#Mh2OxauCE2W_XtOw;n))|W5flwwgTJh=Yp#Hj)s z$^E|*4Y`}Ggt7vUq0G=cNI#D=LkU9H;&X<2g-Ro9?Fs)hB9O0 zD1Av2LD|(gp#&@h<&c$u@`WTd)VO=JepZcz+VlT38e*^%$|l(eWtV%QEah=1yY(!T z)A2r(E8Ghx$J{(d-|Z=&?3J8Q&huhQUQWsDK{aLl4vJI2W&|{8p;YCgmS$&IhONZ46Y-P z6?g(A!*@`wTuH|1_k^NQF1f9t1ndJP!EsO$o(ILx1}KjAD4v87^shr%k=o<+IE|sK zTzfYSnNbLo%@wQqQ=lx-JSYimg|b2?RQ~}iME?_%MDk3~1DAv1xDJ#FHCOBmC4mSi zE7c2%oqL#S%v1xbpg7nC`WudUpj^|Vp={1rD31C+QVl74R3K+gZxG-OE^K*{(e6oW5NE=Y-{>V~t1X-wxdz1H&;Iav`xy)0Z>}l$oW5a%Id7+rw_KINS*( zk>@Y~{stwGZMtq>63QW{2<6II7mEMxP*yk$iv6JJoc}U|5eOv1$xxo*=0iD_UMPp) zH0%YhK__f9Lw}s!4Q=$_K{-9s|DetSDEEvyQ1(m@#TY1irZ*J7gMZ-smrTYXkc_87 z$#fo+6<7=I9S(xC`ZMF?;mW(htgnvO(FLxu7Ic3`(Nz z3N&O%nnSt3v{!UNQJe^61w2p;7C~8wolrLCA!viQp(JAXQD3=?P*$WMl*GzFnQ>bv z69|L&a~lTG&`ujQun;yxVJj2|##uU3!2I;H!a!I9x?nHZ2tI^`V9D9KekUjaBcLSQ z4@!c=pzMiRQ2YDe`84EME{9^UP4Os{OfRYaGbjoD31vn6=IASzMllP_hdeiwOL;vg z4;rCRHrq%j_EVvp|MOsVIseb8fi!dVyIfAi^6(Pl&0zsp@F)E_pc(v;{tqw&2F}yp z1D+0N(!UJl!V^7Te@-|LC6Sa1^uz<9tat_JmPTC~a;#gcfv!+8je@cw{h_SHI3=G4 z=h0scC4mMD^-Z=O%1UlgJOpL8pNHb_DwLIb1m$-Ab|L4#Twwec>F0AjSdIP=SQqYx zg<;~w`nzPMV0HRKp=`c`P%dD%pj_FqEYVk}CX};i46FcG!y@n@3^H|AEi{vVIua{Z>$4%R`wSoNPl8~rjX^iMjpfwk$+hqAdI!iw+}EC&m%)Ne9& zD4TUQl(XPCl+*b+l(Q|7dzHTQHYiJ7Sg|6MFC=LImhYr+U9hhioafBT@E&QGCi;xe1`L(*BN+u)%g4$i?t(6ZU0eIdy) zxRd_4E&6!vt$KjIQ10JLp(Jz*%FQSFHk~=4oZls&EO9v~o3A;P&E5sdN=HKN|Nji6 zAr8hvQTz$YlCFX+;8rN-Z(^^02+~1uoE^#qrJQ0DDCfNc%AObwW8efRXTcXJ{w>>e z|EVGSpKCJ>ahMB^fR*47xL*`t&<;KGI*P4e8sy!fIF45w2;~?LhmyzwD5v9IDEg+j{_#WlY4sk;%yJ&)vmUSk+y|GzWia%J{_;HeQH$Xq{f%$~jQd$XyYd~gXrGXF zKc=ycfmz3O#d;@nCjCWsd>ZCwyzohj_Mc9hLpg>!p)BDs#cQxF{THfV>y)n72Fl8W zsD4k??+0_q{eK7znfW3pOSB%!wf$!(d*Hqre*tCbKEa;Qcv|07QBV>b1mzenff8^l zl%?Md#m_M)oAw-(L!Ro4$T|Nq(2%=PPAD@f4`sJDfHKn#svi!;VP7a$wh>Tv|2imp zWe1e&!5Jv0+aoCUpA`Mh>U$|YEQP!<%rEDE7aEe$NGLNL4_O++bj7Vu&gaW8FMJQ> z886E@{k`KHP_7fXR6jqI85e>wk&;kWqz04~t`9}u4&8DdhSHGCW1u838vY6=L-|6I z;Pd(>{rszb&987le~YF+{EXgi_&3~fQ6JxNN&i&LpHMb&ugm&wpP_gGMj}slh4Wvo zoOuynihwbTiea^x%z5`02oiFs~i+3=De$Y#c_B{d1U~&2t-LG_o zp0Fu`?NDZx__ZFmKMbIM1x|p8-staYO^4#(Aq;{U-s-pAcCbGEp|B+U1yM9Hh4dt}D3FW-Dywfi%o#0LS=J)y|*KkqQ?Z zi7kYI@Px?a{QpEF4CYB>)n+~(_NAZIPv;D{mVWZYR_*`y?}D;d#w4+7$M^~?M?a~* z?x&{WYA7p}HmROSRhWx@57-kc@72;%z7sNRiE|y##9p1?ubwm#l=&O3+2W2doBfL0QopCH08~L%E6VR7_cl6_WEmghpBDg>&I6SR0Nn ztsm2Ka0LDIWvtp4lFWv3OkHJlrYxslH&#RWLXt}5t=cQ6B^9jN7m{?XXw_a>WvisG z&>dJ1`!Zq;tfU4pFIr(RRnuxejO zG6u>7me$nw%ng`=ewA8Q?Fpz6lq+HfD0ju_&;n1@;`~2J<2(Y{_48|6wP(SVP|ovh zFg@H2bBi9#1>Zxtz+|kW@8+gZ`V*lfas9RoSmw~d!>eY4Yg3buo zjfNN~50S&5Jd{pX{ROJO5z5T=LeW13Gr`+19Dal;p}n4do#+Mo(Vq$X!&LS4z~iAz zc!8TnJ{qf_Y_79VHq}>H3p*vy9QK4kupg9!c0oCxPe3`8c^X=^ht)w) z0*zJu>5B8AJc7Ab(>OvSQzJd|TTqtn6_k6!Cnydg8teA}7tBomEtC~V+Qh2;h9f&n zN`Ewz1gAqe&lf^Td^ePrXh)zN!h6sr=f9I;mAp+0 zeMSyA1Gx*z-bmb1zXYd;QS^hMY}#{BHtl67eqTaa!Ou`uC{ZijUm6%7=f91Hd?QH{ zSV0upaGvrMTOBr|zpb5qZ2j6>wP(9-P#mv<@;YD#lqKE+Wrjx;&ne!3lE7mq3A|PO z0=4J=Bpq}IX`v`)gEGVXPz*{zaa;|`3>!c>md#*Z7^V8tRDZqdUx2dIZ=v`#chvV- zawrqX-jVZP&cmVzGQc317PeE0kx<45LP=mMl!WF&(O&`OmCZgVfsR61i7PM@%njL{*Fh>`w_Jt&) zp#0~Qblvpv7IuAnH57T;?)n2x^I-ihI2_7_YMq;gEX_kGOZ!^!J(RQIFUVFfBn#1J zoD#|kL0 z;rdKELJ80V%7r8r%Apye`Xiytd^(h4y97#t>!EDgT~PMIF&G4|LGhn0LO;72LGeEd zYOnt%(I|+(1LgeR4_Cvhuo4{ELw~kA0Q=Gp>#092-+?pf*ND__zgMArAxT7({;(Mz ztv@{ImJ15R6oU^{@c_t8gGR_O@y-ItRm1 z^pp0{S6~`!DE+=x!%)~3R)<$%UYMny{sN;Kl*Cp;xpIDm4dC?t`X&2Tf6jk-8vTl( z6RbQy-+Z%RHTpk8xs>`1)Q@3yDEIlsQ0zv+>hKVhv%oS)KelP1?1`*U_DBIJ=Y2^i zo3OU(w;#m$UlKti0@!6>4Vzl(S+zObPcx zIUCMG33wAq0*|1qz!yb#>LL1!^Fdj%rcg5LsQPwTn|>4&N1LG}xLfrPLpf_sLAgFW zf|AG^C`)b}s$YQ8LD?Jaq4*gLNyu#&O+&75^PrsP3t>*U3`!zL)%Zy$Gdct1x^M$Z zfM-w~eu1T7qG5W1m7vIL!d$Qs6u;51Je&mi{!2C)4RLq^$_iY868Hg>FC=*;r2ofo zUC%PYs(qLw4U}WtSk^y5IYz%K1NktzBgc@^j-}!41%ri|_GD}j{b2fITcI!%gEhLI zVT3aH8}h}42L4N;R=Q$Pnsv`eEiO?hIg#yPif&|wWvUb}yfl64jkMDj+_1RcC~0ZD z)IeLxIz@}jQI*V$ugA+Os+10--Ui;l{ztM)k8V%0IZN9gdo%h&>6e1h=q+PBg7#;! z-hs|XblUi{xHS>ZLm@xHoea{|UN-|nds%GCCY8uCV|g+9{QfXxcn%sKUWLshlom;HH}SZ46uEs5G?@P7{`W7<-UyLq7yAfitk% z!~~>xbr`zfqZ_Nlzu__PTxVzkFQb2#njiTMWP8f+<0Z!HV0sjMB{NB7#K9e8e5<8i zIH>c`>tz0R^pKB6gMT|?;9Wk$M%LgB?oXiEmIJc~SrS5-Xh#sGE_Dd)ebhzNFjCG# zq}S+=!q;_dWrK6AG|Xr0s@g^pelouKm84eMh#$t?jp#PQfG2&ebm8Z529x7_FETkk z7RIGKr}G7e@@{NjYIhl=G(cZUER$GD0y8BE$|oh~g`8nO?H|zR8fyqcZ$Is;vU?IM zWie<&pfTzo)J3r)LF6spA2BYjlHfa0zm+7+M&2H9vO>E_Sjv3#_EAex*D%%%c`yNe zr6cXr`1@On!|v&gpgT?vlhH7Ql?f~*J?#J#0~xyo+o4wwXBnx>bQSGqRf3Nsks}FY zOVu*hV{+9PmokEcc+fLsM^*-3HIbKbtE@$V8zYNa7ehohnNq6t)u8U9Xfi_N+O6U(AjV_Sk`8)DZgDX%`~ zVGxIMB+k3gp2@P?8Qg@EvhV^%FK9PbPR5}3BYJ1xA?j)plX4%ud(<`Ban)rhmCZ`@ z8`0kPuk&shUXKu2{;YZfZ7Bz-z0}mD|0f>PtEnVM?!r?6JWWMEwOWRJa1uH>89Sx2 z>6ySsG~?SDld>0iPBL`Q!$BcxSq7V^gR_t6$TOmpyUIadWKwdgX}utTjhckZ$}y75fb1)E z6b^sG$vxz2snZEk2zhyQxIum^QTXbC-U{@4F)=A?knN(5M?byKw~_O11A=lWmrygT zMPGiik`dW?oOZ;?pCmL<8HqFQ(uTdrKhR!?o{bs(Mc-FK>D$ra7odiWB;Y~E!{833 zQ=PGKBvaOn;&6l)RqzhXM9NL-G!l_=7-K2>aC8VGDF?Ch6{~8S@ncMoWLwp~j$#_+ zLu|THd$6Nz#BxuhBM+llF&?ZO{Rp=p`;jcA^j3~)AU{PrJI=OY+y*D782?@A-6mm& zX2I)!CKRvslZXPatIBvi}l77R6T#yriz9p904PX^&A3u1w$fA+37{ z;R`Y%r6zTu*5Y9TcYdr*WcF*^r$@etT>ew7R_gls6u`$`S;cVl0l@txYcH)>=Jg1s0dQ`z|w zYy&|C$gIh#9_`+YOOZd|f2cRLpM|i!K%z?$$i@&@%6;U07+->I6}1{S@g>Dwl3Xc#tQ?DICJt@%(_!>G{VW)k#mOCJ(T}8fYfUR_ z8TXYeYIUSv0iE1T#-mo@q8b~b^lxafIR5 z=|3=b0805n`wzXT{cK90cx3IEz($gG(Jo9oiSk{YepQuJNjHwA6jOuKF*vW5O&`&J zj>Bj)V-wL&&C<=y}q5?MF&=b-Z&adyHA=$yhI^Vdr) zvOdP(V93{{YlYWihBhcm8ARPptxT{UI1N%kiYZ!<`^q6~W)iRlE3}E441XJ`v+&(X zO;mJ~Xz$*TwUk5{)J16}%!;$Yv?CY`(T5GYFwU)XMRbI5DRq$VQElnppfn4Fzo|QvuWO2T3G|5Z+uCf2h3yXd_egvhV{ZOepJ5)=ih{i9 zmRpvd!G0*FrhZH?V}=cdNbmze`{Be7JqPTfoXfbcd`9OMs}_#^PfFO2IA_q^LSQKa zlQ93nD!_FHlF+`6(h-~nVf?dNfhx%EVo-}(1LMRbnG{)DlIcqOnVPLQm6C+SXE45k zx)ERJ@v{rN)YNUnsg6v_H0|5FX{=`^m#A4$kTR9v=P)jXBe_IxREfw~4#uv+>C_kvUzA}!n_ULv--h}b8 z^mF0(g3`H&&wSLM6C~-gmAuYk>yj}!|HrG~8(8K`w5u|k`#8K$J0Afi(7!;fghLmG zMbSF~SHPBdyF**bIL60Q+as4Ul=cLIBqG7b=uDs{!RHlh!d0SCix`yBhk%m^7C@~) z`$uGT;5Ce{E9K^F!h~f%x<-|}PySgok}xKvA<4+s9!ZIwZvUFr{g~csdY4J&{wLB2Y*(RM9$P6x8SlYt@~Le39G0OuH3pq6)EA5w@SSn5 zS%YAVeuN89s)?cej&eH2vC4rsm6C-d77CDnC!8SmCU+@YCjTx-YKp}$XCkc6z`~(jA6MQO0y)cMm>%*7G$CLKUk7esyfA@NsbpoSDt1!Js+mc<6p2hk&q{#v_><2%`pQo9`QU9WDR0&p=Hx=C>Xv-VU zAE^P1CL-)sytxS-LO&cYrwP-E{$b>yggt|Y2*#w8M?bw<_cQ2p#LsYQD4CQ(Hvs#6 zWcG-$7D}%VF%L5SUfx)^uF|}x4#F1Ie}$9XR1;35$ou#UG5P^VW0dZ37)`$#HDNhJ zpaBVFyYSOc^{c2Px?}4$$<>mQOUWLX95^UPf+?Vst|~x#`XQ<<@^;KJh9sWiHzmQOoW}kKWX17m z`$yMpct+L*bsg-6qDu4+WKuri_$6a^(9Oh{4gJ~# ztW96ab5`RJ?Gxy1B7r>U%q8g-aUgUeRjT3v7#IFRlqIU*aeROk^%n5lEOpcJx7#l_rJO#BpwHr=K zB74essANP5L2n?=Dyu+eNG5{*WSEz_jBzQ^j3;M_udzA<36>WhHSl?xS{5BEHjk99 zZ~qzMF<3)J@+;JYiX{I1#16Qi*RGNW8qE$v99u!}K1Wv!JjB$^tz ze7n7rTO>P7&HgOOMH4WE3fPlC7VNem^A&&PXOvY0VFjct$0h^)X=+79wvW0M*<`hvB9l^=gg>C~zNE78!^t7q zV-qMoAj9z}b(REZw<9qBlisk1D#fd8rzDuA$nPWn0sWn{cdKN2;in(+mdLuP31pL3 z>-A8Sa#txfCD^YhTTseQpzivx_A`(`t<(}XL`TXc5^hTMvgA_2vD=9+e>MJ2CF`$( zI?yXej3IDXQjY&Z6v|VVBNz)K$TF!~g*gN(rW~w>g>XEN@qr|5A%J`)tP1^)IBdz- zSA4u>>^icvYGRU9AN-9*mInSno$VWw^RJ5vCW^jNfxw5T896L%2~-WoQfven$tr9> zHdM{90eV+)-Wz!a#z&D%Z+y1GwxK#SY1Hf+pckw5%Ol3zqnK4^97w58kZH=PJk*sV z%Qrae$Jh+|JurAlKM(!QIFho6U^i*MC*TOiq@1Pp#b+C2W^4x2J_nz`^O^?BkIi}h z*2LgoATNQ|!aF#Vl8V7rBoczbbDU0te@H-Nx6ql1ZfiA*yCnS+fzBZxhfV_}7e8yU zld_WW{OE1Q-l>ZW^|gtz{()*~MBWf5IZ$p-ZKjerk78lp@j|By@<4Ss#O4DD@-ZL7 zX!I(=7Wf;C{Ze#7;cSx1imWcW%g{Aa1Ch;T5?SO*7lHGFIK4u>gYYkuXQ8wLgKX6I zI9_wZvu&H9IM{~ zjcmv0x`qp6SDRqlNh~?-DmZ+P11TeEzouqo>=j4e zaF4p5z-OrMbtSjq9L7b+M9NYIq{LyglKL0ztR#|-SsWwaN&;-fnXmA7C|Vh(X1Nt# z{`hE*?o8@C`tL|K7Mn`+rPN{k9I~GoD`?`?RR#ok)$GO~JVCp)O6V$vE!2jxBU?pH zgN~G!1f7GUL^y6jveWVNoOWaMZ(_GSvG#zCW(Fiqtd5dyUD_3i&=pIqV099&bLcF= z<9$5*jdeaXrJor0m5#`3t4u}4U%?o<i zxD8FodN2;>AgRG%Uiwmc(q4~~yf6+!Um1k6-ROK^EQnyG)Jl{f`J2l52im#tw-Mf8 z0wqO{`UC9>*qT(r)y$mWmvO!vLthNOG{}&PXcbZF$>B(SNVD=*U?NkN(R4TP!eVNbeWW399Kj>R5>k5 zLWPj8N2dT|6R1N}kao1Ip_>=oTLh8vC;C4zz6rUnJfm@s{uWju20gjKXr(F{U#2w( zNBPNgI*z&#XoXs;{3wSq_J(9f(5}Wl-pBYcdL76gz|gqaK`q0aQTs_c8A8-x5T zvi^)^z(&e0oc)PhN)eJOMjcQ4G&&E_sj4QHTlp5f>&UM$5qAlkc1)113@*ljul$5j z9uiB9ldmKarJN1IxFkWdGyX-{PluJ%_+RMm#ZJlubT-gFK|6$aePJDJ8)*MbgU%Tg zdMm?JDtHGRtS8Hs^sBQ%2hfvp8o87&IP5{d&8nXmo+7Cb_z36zVvEkNYGtnDNB(vG z6J+a&HGo94{a;BbY(-cZ1qTjRqdWom4xC5{CqXGw(OHPBHax^}U4VWMeMtNH3Y$nA zPf^D_JL6RdSPT1NXry5xxz$*pQ1)LVjB3$ojpMV-$b(T*xDlhqD!FhBqeyHbW38!s zu*-t%7BZ_!vNJv&A(v8-_AUZTd5NEMunGDL@mrR59_+%Q+e5aCaoCW7 z%lunwFXPG3weiQqhR!H7qDpB`RwZy+l|d;{7=A$cA@wx!^yoEKx~O~$)m4&F*j}OiH*6pi@m+sbV~~@Y21jjBIIIjNqf-b6)9LqtQr6Pu zgXV@H6+mPz5|?tG!%>*_V02Hha#DU(cG0ZBYHV5&ydXXrGv;oi3!^{^}iCdrSC;=E_Rs+R8o!oP2l@XP)c)T_3?LJUf?}s;1C@t zU1*P|N?A&+NuX}@D^TsqIPrgiiLQxYQmm{>IKFbyzDV1Ny_8%Dj{Rx;Y(l1oWc?4| z+#g{xO_g_1IWBP+UPHDBCqJl!eEY7Paw_Tt&>76YJhj9Z==(}H^d@0{3fURzIcg7; z=mh0c{+XO%07`%0U?rBBs3ubD16RNb$fwXgjLv7;CN=xpDxg0zOG*tTiC~s}A@a)v zS*8+sLZAn6HUO3E- z>^6a3p(CX-tU~=8!)w@Fz=@QU*mc#L+RvKU)WSyy@Q-6lZ8@}6G+MnWI3?esQPW_ zHz&!8>e%jA{%WXTC*d%3E|O4ZY?36H%vxmb(MnNwPf#_p7!r9+mRCujCk|#P`CIzO z=oeQB6eD0|`nA-IVsV-dXO+?GO0a{-H_-2;?8C6DhRzTAA#@wQ(g;(7z9eR#kdwsv zEBRuK-ZD5I*#(@gCTLn1re=MYAeD5728Wu^-^hMfv#kPuq<@4&t1z+I)FSwMD_^G8 z48x`bs)5tL2oy#89kMPsU*O9Kj#Z9pDbB%ZJ#>c9&&q6LsI3X`1s^l8KS?`baWcLb zxtYnmM<*|~59IZqlWHcT9w_|EK#ZD|7@t!!Xn>B1v81a17DrMpGOHFOzJT%GYV0Wt z!(YNOo=M$AcPl<-GSG?fP-JcgKWA<+yV5uqMS$7NtRb={a3n#VVJzhYI=-@t zq<3OF0YN3|OoDtuSIT?F%Bw`L(0;&J2z;yj*t9RxL2)tJ&qTNh1u0F+Ps0 zom!EBjNK-=4U9df?q;ku4yE)a=yAqks8WjIFFDMNuWU+3vOiDG?L-~_XLj;xn%VwkFCnIG8)#_}VtfbH*0=8)16)S;%q|8RU? zC+S%H<;JE4@>23iMJI!I2~e1JQv&{llUz7Ijnh9E^ObY-eWecVv5YlhW_=ULqv!|X zE0iF&X)h<4wggUuEEb=8#0FUzWLE6lPBja0JRgG`2!lyvu96qU(NyGJ6X=C8?!uvz zZpc^AKZrvq<(VPBaW>?{?s$U4WULgj^2$#a+Lh&xsd6yz0cX82+)6vMa+HUaIF4)- zt0AQU@&g!s#6cGlN<_aDI;*f9hx3)nN(rYs)Wq zpP}5AB?+bGNBA^B)|r%}FG|*3F$%}NG8?;fO7245fq-*WzqC4h-O-uOn3=IvB=Q2| zha{CluJ2Ejvd`f}ly4$m0{h^g8-|roZiviRR+HFvmE204)D zlxS9O7xHujkdg^oE4C-;&qux=*$eFR;^!=5o#pj^4;11Fn1g{$1o?u}GX_s5IG){A zf;QwQ84rd-Njw+z7o3ffDN~Zbf%y7GB_OgL)Ei8yj*=xK*#h|9udO=Ae+te|qjWaG zjE)mv3XY~@v|R%Ww~Y6%Bmn2$PJIg7&ab=rNHnNua0f`FSzqy+ta)MV6H>J}XKQ+}S&mvRi< zP59eNEr4t=vg%AKi>wGf-C-ELWl+kGY8gXO+)rY)m`M$4cbu*v5h;loOADK-yM0p&_=;%;AmtEBMKQbur&E`a)MboE!&$7v zJ;u_Lz&ngRjAvxbSB}wWuKd)*=U*y$e`F>Sn#*{)1QXg!|BhV$GpOCahQTQ~l`@AQ z1!%X22N{2*W?Po_I>sG1^e8(AdVi6~ERs6T*fWAlnMSRT{1*IE1ujl92UL>%8A~PC z|9Iu-Dnafhn9(xYzmPy%n3=IA1p1pGHF0oBC3GLhKTrqb!%N`T%K1}PY(KX1kuSie zBKohD%?o7t8G8WT<5Xsnv9Ek&K*}IBliz4JAklpEm*dP=rr=~GPCFpqjQjvPzLHk? zkbZB*TaZ{cCUOkDTq;S1+=ln6(}hIx;jpjD(&wl>^1>KRU~CdqN}U9&^jQV%gjiGaN}-$e5JQ_{x?bpvVp&8;kEi@nIlA+iwUnETr$UyJK$VnE zGi1I}P(I*S7^iOtBIOgTtFm8*lLJaQ3+={?J)z&0b|r$W(oGE8X{S&D4-ibs0fJ2= z(W3ae##n9o>qtUMY7#z(UKVXq%zp<89S|NtxLjpfft8qrayjG?YRScTJL7M0T1Ew$ zO^|RBD@6YxwKxeTMSlyyqST?eg#Rz-3?Sel>;v#A#U?*w{qr!855_SNM787e83y-Y zyi(4LlVNH#UeorK<=QN`a-#c-()EpvQb|5VCq2n@Q7d~9ZY04xRQDCK-G)USm2F}& zd_jN}1Z#&}t(woL;WPRp33Lr7!_m3JNI#UCDd(d23-&LWfRtn^iQ(Af#x|HlrA&e; z<^8`3bk5TGn=E@PWle)0Ye*)Bu`xI-_@7KFBkzb!Kb$Tmk?|z3Qw4p5pG)X3ME(xF zy!dJa`>07?L3bNtx8?nxRty%yQFXPflVBRv_9b#lIqrl}-Tx#qfw5K0t_?QpF?f<- zC3-Q|1X(a+pQ-hUvxbD1BkRCeD((EEQu>*(my&r3PX1KN1z4WrID0CC-kTQV0;Bg_ zIdgJ9&%LVV3`HFF;BcEO+#chwMYwD+k3wIfUA|s{RTEs^> zv|a-9{?2HJ%NF8@bdXS>w{d5)J#nI@-FrBK<2+qT8;_@q2)4&bocQR7IE+27$6GRb zqC(9_yuX(*&M zRN1)D=lGx(H9kw_}-#Cx0vvFwwhdnkT zI!qJBI3xRokxie7xNuDn<%kP+hE%jMUGKim#;JauRWr?%6WgOhY>ij}&)u2kjENl4 zF4o(#!eQK!LR+->xQNJzxCn>KyTD^!WAb#EZBCUaxF<{D^4KGc>Ai&_j7?3swPWD2 zHI0!Ka2aYkV>xm*{m{52o|N0nv1yw)5$#NHko7&XXPY^>(X(i`C5>mE*PJe?Jtihn9bIqq zDCX;JKh_wN$UoQ~9qfpdqvzc@*|;fbs;HQ_ezv*}Cu<$skDNR`<`|o$lw*{@h3CK= zNIW6#@aI-_E=10=gl*3?j2#C7b!an4x19r{nZYl60% zE}DWg*a5CMZ}xL$KcnaM0%I0$mW9T9rl5bFCN_IWh-}K*|2}(^*j6*#5!_Q2*V)?< z8)=WxcA2Mm1yg!+U|^v4(_&)^lc&fslhq{G(R9vSZ-a!-dXz=b8EQh_Cl z77r{D=y|rxI4DUCr?Y1i+sNhVy4)DzS^LzO%=2WqvAVbW3S%*2vTsXm3k>v(S!sOa z?X$|5#;;H?Cv}{|R>v6`>Fo2*((AjPCE^6Lb2J>Wp7|S%8NGMznFpJ**NpuCI8i*k zo|rTKKU98tV$NEiR%`^9iWp~vtZ78FDdc#>>2*39zXg~W(cflckw zmd(VfO?+f7XH8;r*?V&tjB|SSJvWDXAMG?=GI?%JH2Hb6zc%NwmXdiI{%5*&mrY-Z z5Ou;QoVvHlJ9Bxnchn!|=EjtfwwB?}*tp>MIDH?S{b=@2?Adn4xF%h&EDN!N*=KT< zi|l8p>#6pdlYFhwveoR#d%@VwGv$JDuV+OfOMLPeyNi`~YFEHO&&P|#4e6a+xn0gk z{W=)y7U=!)l5wRuSIcPj$v>C7y0H-xz?`Q5Yw-rV!@Tw!e1F<+>paxe75V z3K)btBErJCP{nzgU$dn5IQN?TJhxw4GJ3~7Htshj*zyyzSXy}5@>z|kIYVvrqeGps zQQ9gNaCr|rGuq7-mm@aLb2o=EvnMR4F?mLP*^4E(tdKKT*>O3I#XPoG#(bVxIW2h; zaf)&|@`SxIZu4(ukJV2Fm#4GMk|T>;K({UB5j}o8@m$-tMN zUgFaB7FSxkx}y5-s-A!umdv7>+mj~5)X>}Fjd7FpzZWu3(htV=e%yHLwyq!OIa|O| zI2C(M!n$m=YS=RG*&6PZeyy-Smr=BBjPbVfR3Jry#WqP-a#TIQtA(6oO-Q+k@AcVj0@U8C2p zi)F9X^EKF#(zCpzDZe{5E`nr2?Gcges6bmQ_CuKO&d`VRH73>>%w3c<&@NVXt|f8= zU4i~JI5*io>i*>74jjo{DlR~6-jIL%aQBOHaQVSK_Z!)?(Oky44%ux5#F_5e6@_zd z$G%HpprM)F<UOdYp7e(Ng|;Ukq!|tgZQZKB*7&@Hg|la z-MhNBDa`1d(bw|U=$+i(QYwXaP+QXzqbKnJQ;I}2o78OJ?C$B+-qa!sCpgy=}|6IiXdG2dwH;qV^jk|t=3suW->3_T4oQpD*NHTM|rF_Ylh`x@q*|*6zG|@+)~7A>SIcgGM9Fap)1!V-=2}>4ULG7 zaD~gGhu}BvaE=-skg8)BLi^4MZH+@fYlL#)d>h zb5(Q6%6a5Un2j}NHv~K5BSU1{*}BW~xm?s8Ar-v`u2@Q%0;0ossC0&EM?-sj)=Z-8 zJ>}BLM*mlM?}C-4B<6JA9z+uyKJV9?mUc|2;|s&NpVo%c($Z;@q6{XLsMh3wFk^NO+Ej4D_!bZHv+`i?)vO zQJn(~^Io)J6Us_y6W2G$JHEm}_RBchWgi zBY(djCTOc)%TqPEHJ9h*byK|*|J<$Q*}^j=xwU_iZ!(YZmT82U0nfY?)`H$4$*q;s zrqZ7iTF2OGMY!ZS!PE4$sj$5I^YnXd%JDzf14eUu_P;iD)?OfHe`D&K#2nP9k!Rv3 zQ?IPr6N|i5av54V!{iB;r;H>)k#R-pd4h^q-zT@r3p$P?&#Jxc-W)}(!D*7RxN>0R zHs>vt+`J}n^;Z3O!K=<4{Vwji!Trwxw8?!!J&Ct&RliaFR`qMQ^meUlZDLB&+V{fD zW6xxc^Av1gy>eK)>WD4m?+N03PsQWLzmB_S zLuPZSf4$~;mf3tcN&0`C)Y?synR%vU;<4J?+Ir9!9L-kaD$R`?fBJ3qU;9Zro7l;+ zk>v)UKTp{Hb(-1=7qt~BY6~c8%U9GE=r0?Pq`#f&o^IoeHn*XzoO!{{1Oc7gn!jys zCjS3-U@j~A(|w3D&J#J#n9duU&z#LdV$A2{MNo`9==}3I+xDC6+fAlzfVqOv^JAd7rM6eAcC$uWJzYzi1N_Sd z6fbEjQLbXCvYwfx&4help< followed by Run Code for a list of FlatCAM Tcl Commands " +"(displayed in Tcl Shell)." +msgstr "" +"Type >help< followed by Run Code for a list of FlatCAM Tcl Commands " +"(displayed in Tcl Shell)." + +#: FlatCAMApp.py:2982 FlatCAMApp.py:2988 FlatCAMApp.py:2994 FlatCAMApp.py:3000 +#: FlatCAMApp.py:3006 FlatCAMApp.py:3012 +msgid "created/selected" +msgstr "created/selected" + +#: FlatCAMApp.py:3027 FlatCAMApp.py:5189 flatcamObjects/FlatCAMObj.py:248 +#: flatcamObjects/FlatCAMObj.py:279 flatcamObjects/FlatCAMObj.py:295 +#: flatcamObjects/FlatCAMObj.py:375 flatcamTools/ToolCopperThieving.py:1481 +#: flatcamTools/ToolFiducials.py:809 flatcamTools/ToolMove.py:229 +#: flatcamTools/ToolQRCode.py:728 +msgid "Plotting" +msgstr "Plotting" + +#: FlatCAMApp.py:3090 flatcamGUI/FlatCAMGUI.py:545 +msgid "About FlatCAM" +msgstr "About FlatCAM" + +#: FlatCAMApp.py:3116 +msgid "2D Computer-Aided Printed Circuit Board Manufacturing" +msgstr "2D Computer-Aided Printed Circuit Board Manufacturing" + +#: FlatCAMApp.py:3117 +msgid "Development" +msgstr "Development" + +#: FlatCAMApp.py:3118 +msgid "DOWNLOAD" +msgstr "DOWNLOAD" + +#: FlatCAMApp.py:3119 +msgid "Issue tracker" +msgstr "Issue tracker" + +#: FlatCAMApp.py:3123 FlatCAMApp.py:3484 flatcamGUI/GUIElements.py:2583 +msgid "Close" +msgstr "Close" + +#: FlatCAMApp.py:3138 +msgid "Licensed under the MIT license" +msgstr "Licensed under the MIT license" + +#: FlatCAMApp.py:3147 +msgid "" +"Permission is hereby granted, free of charge, to any person obtaining a " +"copy\n" +"of this software and associated documentation files (the \"Software\"), to " +"deal\n" +"in the Software without restriction, including without limitation the " +"rights\n" +"to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n" +"copies of the Software, and to permit persons to whom the Software is\n" +"furnished to do so, subject to the following conditions:\n" +"\n" +"The above copyright notice and this permission notice shall be included in\n" +"all copies or substantial portions of the Software.\n" +"\n" +"THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS " +"OR\n" +"IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n" +"FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n" +"AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n" +"LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING " +"FROM,\n" +"OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n" +"THE SOFTWARE." +msgstr "" +"Permission is hereby granted, free of charge, to any person obtaining a " +"copy\n" +"of this software and associated documentation files (the \"Software\"), to " +"deal\n" +"in the Software without restriction, including without limitation the " +"rights\n" +"to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n" +"copies of the Software, and to permit persons to whom the Software is\n" +"furnished to do so, subject to the following conditions:\n" +"\n" +"The above copyright notice and this permission notice shall be included in\n" +"all copies or substantial portions of the Software.\n" +"\n" +"THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS " +"OR\n" +"IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n" +"FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n" +"AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n" +"LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING " +"FROM,\n" +"OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n" +"THE SOFTWARE." + +#: FlatCAMApp.py:3169 +msgid "" +"Some of the icons used are from the following sources:
    Icons by Icons8
    Icons by oNline Web Fonts" +msgstr "" +"Some of the icons used are from the following sources:
    Icons by Icons8
    Icons by oNline Web Fonts" + +#: FlatCAMApp.py:3202 +msgid "Splash" +msgstr "Splash" + +#: FlatCAMApp.py:3208 +msgid "Programmers" +msgstr "Programmers" + +#: FlatCAMApp.py:3214 +msgid "Translators" +msgstr "Translators" + +#: FlatCAMApp.py:3220 +msgid "License" +msgstr "License" + +#: FlatCAMApp.py:3226 +msgid "Attributions" +msgstr "Attributions" + +#: FlatCAMApp.py:3249 +msgid "Programmer" +msgstr "Programmer" + +#: FlatCAMApp.py:3250 +msgid "Status" +msgstr "Status" + +#: FlatCAMApp.py:3251 FlatCAMApp.py:3331 +msgid "E-mail" +msgstr "E-mail" + +#: FlatCAMApp.py:3259 +msgid "BETA Maintainer >= 2019" +msgstr "BETA Maintainer >= 2019" + +#: FlatCAMApp.py:3328 +msgid "Language" +msgstr "Language" + +#: FlatCAMApp.py:3329 +msgid "Translator" +msgstr "Translator" + +#: FlatCAMApp.py:3330 +msgid "Corrections" +msgstr "Corrections" + +#: FlatCAMApp.py:3455 FlatCAMApp.py:3464 flatcamGUI/FlatCAMGUI.py:527 +msgid "Bookmarks Manager" +msgstr "Bookmarks Manager" + +#: FlatCAMApp.py:3475 +msgid "" +"This entry will resolve to another website if:\n" +"\n" +"1. FlatCAM.org website is down\n" +"2. Someone forked FlatCAM project and wants to point\n" +"to his own website\n" +"\n" +"If you can't get any informations about FlatCAM beta\n" +"use the YouTube channel link from the Help menu." +msgstr "" +"This entry will resolve to another website if:\n" +"\n" +"1. FlatCAM.org website is down\n" +"2. Someone forked FlatCAM project and wants to point\n" +"to his own website\n" +"\n" +"If you can't get any informations about FlatCAM beta\n" +"use the YouTube channel link from the Help menu." + +#: FlatCAMApp.py:3482 +msgid "Alternative website" +msgstr "Alternative website" + +#: FlatCAMApp.py:3508 flatcamGUI/FlatCAMGUI.py:4267 +msgid "Application is saving the project. Please wait ..." +msgstr "Application is saving the project. Please wait ..." + +#: FlatCAMApp.py:3513 FlatCAMTranslation.py:202 +msgid "" +"There are files/objects modified in FlatCAM. \n" +"Do you want to Save the project?" +msgstr "" +"There are files/objects modified in FlatCAM. \n" +"Do you want to Save the project?" + +#: FlatCAMApp.py:3516 FlatCAMApp.py:7343 FlatCAMTranslation.py:205 +msgid "Save changes" +msgstr "Save changes" + +#: FlatCAMApp.py:3778 +msgid "Selected Excellon file extensions registered with FlatCAM." +msgstr "Selected Excellon file extensions registered with FlatCAM." + +#: FlatCAMApp.py:3800 +msgid "Selected GCode file extensions registered with FlatCAM." +msgstr "Selected GCode file extensions registered with FlatCAM." + +#: FlatCAMApp.py:3822 +msgid "Selected Gerber file extensions registered with FlatCAM." +msgstr "Selected Gerber file extensions registered with FlatCAM." + +#: FlatCAMApp.py:4010 FlatCAMApp.py:4069 FlatCAMApp.py:4097 +msgid "At least two objects are required for join. Objects currently selected" +msgstr "At least two objects are required for join. Objects currently selected" + +#: FlatCAMApp.py:4019 +msgid "" +"Failed join. The Geometry objects are of different types.\n" +"At least one is MultiGeo type and the other is SingleGeo type. A possibility " +"is to convert from one to another and retry joining \n" +"but in the case of converting from MultiGeo to SingleGeo, informations may " +"be lost and the result may not be what was expected. \n" +"Check the generated GCODE." +msgstr "" +"Failed join. The Geometry objects are of different types.\n" +"At least one is MultiGeo type and the other is SingleGeo type. A possibility " +"is to convert from one to another and retry joining \n" +"but in the case of converting from MultiGeo to SingleGeo, informations may " +"be lost and the result may not be what was expected. \n" +"Check the generated GCODE." + +#: FlatCAMApp.py:4031 FlatCAMApp.py:4041 +msgid "Geometry merging finished" +msgstr "Geometry merging finished" + +#: FlatCAMApp.py:4064 +msgid "Failed. Excellon joining works only on Excellon objects." +msgstr "Failed. Excellon joining works only on Excellon objects." + +#: FlatCAMApp.py:4074 +msgid "Excellon merging finished" +msgstr "Excellon merging finished" + +#: FlatCAMApp.py:4092 +msgid "Failed. Gerber joining works only on Gerber objects." +msgstr "Failed. Gerber joining works only on Gerber objects." + +#: FlatCAMApp.py:4102 +msgid "Gerber merging finished" +msgstr "Gerber merging finished" + +#: FlatCAMApp.py:4122 FlatCAMApp.py:4159 +msgid "Failed. Select a Geometry Object and try again." +msgstr "Failed. Select a Geometry Object and try again." + +#: FlatCAMApp.py:4126 FlatCAMApp.py:4164 +msgid "Expected a GeometryObject, got" +msgstr "Expected a GeometryObject, got" + +#: FlatCAMApp.py:4141 +msgid "A Geometry object was converted to MultiGeo type." +msgstr "A Geometry object was converted to MultiGeo type." + +#: FlatCAMApp.py:4179 +msgid "A Geometry object was converted to SingleGeo type." +msgstr "A Geometry object was converted to SingleGeo type." + +#: FlatCAMApp.py:4472 +msgid "Toggle Units" +msgstr "Toggle Units" + +#: FlatCAMApp.py:4474 +msgid "" +"Changing the units of the project\n" +"will scale all objects.\n" +"\n" +"Do you want to continue?" +msgstr "" +"Changing the units of the project\n" +"will scale all objects.\n" +"\n" +"Do you want to continue?" + +#: FlatCAMApp.py:4477 FlatCAMApp.py:5025 FlatCAMApp.py:5102 FlatCAMApp.py:7728 +#: FlatCAMApp.py:7742 FlatCAMApp.py:8075 FlatCAMApp.py:8085 +msgid "Ok" +msgstr "Ok" + +#: FlatCAMApp.py:4526 +msgid "Converted units to" +msgstr "Converted units to" + +#: FlatCAMApp.py:4928 +msgid "Detachable Tabs" +msgstr "Detachable Tabs" + +#: FlatCAMApp.py:5014 flatcamTools/ToolNCC.py:932 flatcamTools/ToolNCC.py:1431 +#: flatcamTools/ToolPaint.py:858 flatcamTools/ToolSolderPaste.py:568 +#: flatcamTools/ToolSolderPaste.py:893 +msgid "Please enter a tool diameter with non-zero value, in Float format." +msgstr "Please enter a tool diameter with non-zero value, in Float format." + +#: FlatCAMApp.py:5018 flatcamTools/ToolNCC.py:936 flatcamTools/ToolPaint.py:862 +#: flatcamTools/ToolSolderPaste.py:572 +msgid "Adding Tool cancelled" +msgstr "Adding Tool cancelled" + +#: FlatCAMApp.py:5021 +msgid "" +"Adding Tool works only when Advanced is checked.\n" +"Go to Preferences -> General - Show Advanced Options." +msgstr "" +"Adding Tool works only when Advanced is checked.\n" +"Go to Preferences -> General - Show Advanced Options." + +#: FlatCAMApp.py:5097 +msgid "Delete objects" +msgstr "Delete objects" + +#: FlatCAMApp.py:5100 +msgid "" +"Are you sure you want to permanently delete\n" +"the selected objects?" +msgstr "" +"Are you sure you want to permanently delete\n" +"the selected objects?" + +#: FlatCAMApp.py:5138 +msgid "Object(s) deleted" +msgstr "Object(s) deleted" + +#: FlatCAMApp.py:5142 FlatCAMApp.py:5297 flatcamTools/ToolDblSided.py:818 +msgid "Failed. No object(s) selected..." +msgstr "Failed. No object(s) selected..." + +#: FlatCAMApp.py:5144 +msgid "Save the work in Editor and try again ..." +msgstr "Save the work in Editor and try again ..." + +#: FlatCAMApp.py:5173 +msgid "Object deleted" +msgstr "Object deleted" + +#: FlatCAMApp.py:5200 +msgid "Click to set the origin ..." +msgstr "Click to set the origin ..." + +#: FlatCAMApp.py:5222 +msgid "Setting Origin..." +msgstr "Setting Origin..." + +#: FlatCAMApp.py:5235 FlatCAMApp.py:5337 +msgid "Origin set" +msgstr "Origin set" + +#: FlatCAMApp.py:5252 +msgid "Origin coordinates specified but incomplete." +msgstr "Origin coordinates specified but incomplete." + +#: FlatCAMApp.py:5293 +msgid "Moving to Origin..." +msgstr "Moving to Origin..." + +#: FlatCAMApp.py:5374 +msgid "Jump to ..." +msgstr "Jump to ..." + +#: FlatCAMApp.py:5375 +msgid "Enter the coordinates in format X,Y:" +msgstr "Enter the coordinates in format X,Y:" + +#: FlatCAMApp.py:5385 +msgid "Wrong coordinates. Enter coordinates in format: X,Y" +msgstr "Wrong coordinates. Enter coordinates in format: X,Y" + +#: FlatCAMApp.py:5463 FlatCAMApp.py:5612 +#: flatcamEditors/FlatCAMExcEditor.py:3624 +#: flatcamEditors/FlatCAMExcEditor.py:3632 +#: flatcamEditors/FlatCAMGeoEditor.py:4349 +#: flatcamEditors/FlatCAMGeoEditor.py:4363 +#: flatcamEditors/FlatCAMGrbEditor.py:1087 +#: flatcamEditors/FlatCAMGrbEditor.py:1204 +#: flatcamEditors/FlatCAMGrbEditor.py:1490 +#: flatcamEditors/FlatCAMGrbEditor.py:1759 +#: flatcamEditors/FlatCAMGrbEditor.py:4622 +#: flatcamEditors/FlatCAMGrbEditor.py:4637 flatcamGUI/FlatCAMGUI.py:3424 +#: flatcamGUI/FlatCAMGUI.py:3436 flatcamTools/ToolAlignObjects.py:393 +#: flatcamTools/ToolAlignObjects.py:415 +msgid "Done." +msgstr "Done." + +#: FlatCAMApp.py:5478 FlatCAMApp.py:7724 FlatCAMApp.py:7819 FlatCAMApp.py:7860 +#: FlatCAMApp.py:7901 FlatCAMApp.py:7942 FlatCAMApp.py:7983 FlatCAMApp.py:8027 +#: FlatCAMApp.py:8071 FlatCAMApp.py:8593 FlatCAMApp.py:8597 +#: flatcamTools/ToolProperties.py:116 +msgid "No object selected." +msgstr "No object selected." + +#: FlatCAMApp.py:5497 +msgid "Bottom-Left" +msgstr "Bottom-Left" + +#: FlatCAMApp.py:5498 flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:131 +#: flatcamTools/ToolCalibration.py:159 +msgid "Top-Left" +msgstr "Top-Left" + +#: FlatCAMApp.py:5499 flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:132 +#: flatcamTools/ToolCalibration.py:160 +msgid "Bottom-Right" +msgstr "Bottom-Right" + +#: FlatCAMApp.py:5500 +msgid "Top-Right" +msgstr "Top-Right" + +#: FlatCAMApp.py:5501 flatcamGUI/ObjectUI.py:2706 +msgid "Center" +msgstr "Center" + +#: FlatCAMApp.py:5521 +msgid "Locate ..." +msgstr "Locate ..." + +#: FlatCAMApp.py:5779 FlatCAMApp.py:5856 +msgid "No object is selected. Select an object and try again." +msgstr "No object is selected. Select an object and try again." + +#: FlatCAMApp.py:5882 +msgid "" +"Aborting. The current task will be gracefully closed as soon as possible..." +msgstr "" +"Aborting. The current task will be gracefully closed as soon as possible..." + +#: FlatCAMApp.py:5888 +msgid "The current task was gracefully closed on user request..." +msgstr "The current task was gracefully closed on user request..." + +#: FlatCAMApp.py:5916 flatcamGUI/preferences/PreferencesUIManager.py:905 +#: flatcamGUI/preferences/PreferencesUIManager.py:949 +#: flatcamGUI/preferences/PreferencesUIManager.py:970 +#: flatcamGUI/preferences/PreferencesUIManager.py:1075 +msgid "Preferences" +msgstr "Preferences" + +#: FlatCAMApp.py:5981 FlatCAMApp.py:6009 FlatCAMApp.py:6036 FlatCAMApp.py:6056 +#: FlatCAMDB.py:738 FlatCAMDB.py:913 FlatCAMDB.py:2200 FlatCAMDB.py:2418 +#: flatcamObjects/FlatCAMGeometry.py:890 flatcamTools/ToolNCC.py:3963 +#: flatcamTools/ToolNCC.py:4047 flatcamTools/ToolPaint.py:3553 +#: flatcamTools/ToolPaint.py:3638 msgid "Tools Database" msgstr "Tools Database" -#: AppDatabase.py:754 AppDatabase.py:2369 +#: FlatCAMApp.py:6033 +msgid "Tools in Tools Database edited but not saved." +msgstr "Tools in Tools Database edited but not saved." + +#: FlatCAMApp.py:6060 flatcamTools/ToolNCC.py:3970 +#: flatcamTools/ToolPaint.py:3560 +msgid "Tool from DB added in Tool Table." +msgstr "Tool from DB added in Tool Table." + +#: FlatCAMApp.py:6062 +msgid "Adding tool from DB is not allowed for this object." +msgstr "Adding tool from DB is not allowed for this object." + +#: FlatCAMApp.py:6080 +msgid "" +"One or more Tools are edited.\n" +"Do you want to update the Tools Database?" +msgstr "" +"One or more Tools are edited.\n" +"Do you want to update the Tools Database?" + +#: FlatCAMApp.py:6082 +msgid "Save Tools Database" +msgstr "Save Tools Database" + +#: FlatCAMApp.py:6135 +msgid "No object selected to Flip on Y axis." +msgstr "No object selected to Flip on Y axis." + +#: FlatCAMApp.py:6161 +msgid "Flip on Y axis done." +msgstr "Flip on Y axis done." + +#: FlatCAMApp.py:6163 FlatCAMApp.py:6211 +#: flatcamEditors/FlatCAMGrbEditor.py:6059 +msgid "Flip action was not executed." +msgstr "Flip action was not executed." + +#: FlatCAMApp.py:6183 +msgid "No object selected to Flip on X axis." +msgstr "No object selected to Flip on X axis." + +#: FlatCAMApp.py:6209 +msgid "Flip on X axis done." +msgstr "Flip on X axis done." + +#: FlatCAMApp.py:6231 +msgid "No object selected to Rotate." +msgstr "No object selected to Rotate." + +#: FlatCAMApp.py:6234 FlatCAMApp.py:6287 FlatCAMApp.py:6326 +msgid "Transform" +msgstr "Transform" + +#: FlatCAMApp.py:6234 FlatCAMApp.py:6287 FlatCAMApp.py:6326 +msgid "Enter the Angle value:" +msgstr "Enter the Angle value:" + +#: FlatCAMApp.py:6265 +msgid "Rotation done." +msgstr "Rotation done." + +#: FlatCAMApp.py:6267 +msgid "Rotation movement was not executed." +msgstr "Rotation movement was not executed." + +#: FlatCAMApp.py:6285 +msgid "No object selected to Skew/Shear on X axis." +msgstr "No object selected to Skew/Shear on X axis." + +#: FlatCAMApp.py:6307 +msgid "Skew on X axis done." +msgstr "Skew on X axis done." + +#: FlatCAMApp.py:6324 +msgid "No object selected to Skew/Shear on Y axis." +msgstr "No object selected to Skew/Shear on Y axis." + +#: FlatCAMApp.py:6346 +msgid "Skew on Y axis done." +msgstr "Skew on Y axis done." + +#: FlatCAMApp.py:6497 FlatCAMApp.py:6544 flatcamGUI/FlatCAMGUI.py:503 +#: flatcamGUI/FlatCAMGUI.py:1728 +msgid "Select All" +msgstr "Select All" + +#: FlatCAMApp.py:6501 FlatCAMApp.py:6548 flatcamGUI/FlatCAMGUI.py:505 +msgid "Deselect All" +msgstr "Deselect All" + +#: FlatCAMApp.py:6564 +msgid "All objects are selected." +msgstr "All objects are selected." + +#: FlatCAMApp.py:6574 +msgid "Objects selection is cleared." +msgstr "Objects selection is cleared." + +#: FlatCAMApp.py:6594 flatcamGUI/FlatCAMGUI.py:1721 +msgid "Grid On/Off" +msgstr "Grid On/Off" + +#: FlatCAMApp.py:6606 flatcamEditors/FlatCAMGeoEditor.py:939 +#: flatcamEditors/FlatCAMGrbEditor.py:2583 +#: flatcamEditors/FlatCAMGrbEditor.py:5641 flatcamGUI/ObjectUI.py:1595 +#: flatcamTools/ToolDblSided.py:192 flatcamTools/ToolDblSided.py:425 +#: flatcamTools/ToolNCC.py:294 flatcamTools/ToolNCC.py:631 +#: flatcamTools/ToolPaint.py:277 flatcamTools/ToolPaint.py:676 +#: flatcamTools/ToolSolderPaste.py:122 flatcamTools/ToolSolderPaste.py:597 +#: flatcamTools/ToolTransform.py:478 +msgid "Add" +msgstr "Add" + +#: FlatCAMApp.py:6608 flatcamEditors/FlatCAMGrbEditor.py:2588 +#: flatcamEditors/FlatCAMGrbEditor.py:2736 flatcamGUI/FlatCAMGUI.py:751 +#: flatcamGUI/FlatCAMGUI.py:1074 flatcamGUI/FlatCAMGUI.py:2141 +#: flatcamGUI/FlatCAMGUI.py:2284 flatcamGUI/FlatCAMGUI.py:2777 +#: flatcamGUI/ObjectUI.py:1623 flatcamObjects/FlatCAMGeometry.py:505 +#: flatcamTools/ToolNCC.py:316 flatcamTools/ToolNCC.py:637 +#: flatcamTools/ToolPaint.py:299 flatcamTools/ToolPaint.py:682 +#: flatcamTools/ToolSolderPaste.py:128 flatcamTools/ToolSolderPaste.py:600 +msgid "Delete" +msgstr "Delete" + +#: FlatCAMApp.py:6624 +msgid "New Grid ..." +msgstr "New Grid ..." + +#: FlatCAMApp.py:6625 +msgid "Enter a Grid Value:" +msgstr "Enter a Grid Value:" + +#: FlatCAMApp.py:6633 FlatCAMApp.py:6660 +msgid "Please enter a grid value with non-zero value, in Float format." +msgstr "Please enter a grid value with non-zero value, in Float format." + +#: FlatCAMApp.py:6639 +msgid "New Grid added" +msgstr "New Grid added" + +#: FlatCAMApp.py:6642 +msgid "Grid already exists" +msgstr "Grid already exists" + +#: FlatCAMApp.py:6645 +msgid "Adding New Grid cancelled" +msgstr "Adding New Grid cancelled" + +#: FlatCAMApp.py:6667 +msgid " Grid Value does not exist" +msgstr " Grid Value does not exist" + +#: FlatCAMApp.py:6670 +msgid "Grid Value deleted" +msgstr "Grid Value deleted" + +#: FlatCAMApp.py:6673 +msgid "Delete Grid value cancelled" +msgstr "Delete Grid value cancelled" + +#: FlatCAMApp.py:6679 +msgid "Key Shortcut List" +msgstr "Key Shortcut List" + +#: FlatCAMApp.py:6713 +msgid " No object selected to copy it's name" +msgstr " No object selected to copy it's name" + +#: FlatCAMApp.py:6717 +msgid "Name copied on clipboard ..." +msgstr "Name copied on clipboard ..." + +#: FlatCAMApp.py:6930 flatcamEditors/FlatCAMGrbEditor.py:4554 +msgid "Coordinates copied to clipboard." +msgstr "Coordinates copied to clipboard." + +#: FlatCAMApp.py:7167 FlatCAMApp.py:7173 FlatCAMApp.py:7179 FlatCAMApp.py:7185 +#: flatcamObjects/ObjectCollection.py:922 +#: flatcamObjects/ObjectCollection.py:928 +#: flatcamObjects/ObjectCollection.py:934 +#: flatcamObjects/ObjectCollection.py:940 +#: flatcamObjects/ObjectCollection.py:946 +#: flatcamObjects/ObjectCollection.py:952 +msgid "selected" +msgstr "selected" + +#: FlatCAMApp.py:7340 +msgid "" +"There are files/objects opened in FlatCAM.\n" +"Creating a New project will delete them.\n" +"Do you want to Save the project?" +msgstr "" +"There are files/objects opened in FlatCAM.\n" +"Creating a New project will delete them.\n" +"Do you want to Save the project?" + +#: FlatCAMApp.py:7361 +msgid "New Project created" +msgstr "New Project created" + +#: FlatCAMApp.py:7519 FlatCAMApp.py:7523 flatcamGUI/FlatCAMGUI.py:836 +#: flatcamGUI/FlatCAMGUI.py:2544 +msgid "Open Gerber" +msgstr "Open Gerber" + +#: FlatCAMApp.py:7528 FlatCAMApp.py:7565 FlatCAMApp.py:7607 FlatCAMApp.py:7677 +#: FlatCAMApp.py:8462 FlatCAMApp.py:9675 FlatCAMApp.py:9737 +msgid "" +"Canvas initialization started.\n" +"Canvas initialization finished in" +msgstr "" +"Canvas initialization started.\n" +"Canvas initialization finished in" + +#: FlatCAMApp.py:7530 +msgid "Opening Gerber file." +msgstr "Opening Gerber file." + +#: FlatCAMApp.py:7557 FlatCAMApp.py:7561 flatcamGUI/FlatCAMGUI.py:838 +#: flatcamGUI/FlatCAMGUI.py:2546 +msgid "Open Excellon" +msgstr "Open Excellon" + +#: FlatCAMApp.py:7567 +msgid "Opening Excellon file." +msgstr "Opening Excellon file." + +#: FlatCAMApp.py:7598 FlatCAMApp.py:7602 +msgid "Open G-Code" +msgstr "Open G-Code" + +#: FlatCAMApp.py:7609 +msgid "Opening G-Code file." +msgstr "Opening G-Code file." + +#: FlatCAMApp.py:7632 FlatCAMApp.py:7635 flatcamGUI/FlatCAMGUI.py:1730 +msgid "Open Project" +msgstr "Open Project" + +#: FlatCAMApp.py:7668 FlatCAMApp.py:7672 +msgid "Open HPGL2" +msgstr "Open HPGL2" + +#: FlatCAMApp.py:7679 +msgid "Opening HPGL2 file." +msgstr "Opening HPGL2 file." + +#: FlatCAMApp.py:7702 FlatCAMApp.py:7705 +msgid "Open Configuration File" +msgstr "Open Configuration File" + +#: FlatCAMApp.py:7725 FlatCAMApp.py:8072 +msgid "Please Select a Geometry object to export" +msgstr "Please Select a Geometry object to export" + +#: FlatCAMApp.py:7739 +msgid "Only Geometry, Gerber and CNCJob objects can be used." +msgstr "Only Geometry, Gerber and CNCJob objects can be used." + +#: FlatCAMApp.py:7752 FlatCAMApp.py:7756 flatcamTools/ToolQRCode.py:829 +#: flatcamTools/ToolQRCode.py:833 +msgid "Export SVG" +msgstr "Export SVG" + +#: FlatCAMApp.py:7781 +msgid "Data must be a 3D array with last dimension 3 or 4" +msgstr "Data must be a 3D array with last dimension 3 or 4" + +#: FlatCAMApp.py:7787 FlatCAMApp.py:7791 +msgid "Export PNG Image" +msgstr "Export PNG Image" + +#: FlatCAMApp.py:7824 FlatCAMApp.py:8032 +msgid "Failed. Only Gerber objects can be saved as Gerber files..." +msgstr "Failed. Only Gerber objects can be saved as Gerber files..." + +#: FlatCAMApp.py:7836 +msgid "Save Gerber source file" +msgstr "Save Gerber source file" + +#: FlatCAMApp.py:7865 +msgid "Failed. Only Script objects can be saved as TCL Script files..." +msgstr "Failed. Only Script objects can be saved as TCL Script files..." + +#: FlatCAMApp.py:7877 +msgid "Save Script source file" +msgstr "Save Script source file" + +#: FlatCAMApp.py:7906 +msgid "Failed. Only Document objects can be saved as Document files..." +msgstr "Failed. Only Document objects can be saved as Document files..." + +#: FlatCAMApp.py:7918 +msgid "Save Document source file" +msgstr "Save Document source file" + +#: FlatCAMApp.py:7947 FlatCAMApp.py:7988 FlatCAMApp.py:8945 +msgid "Failed. Only Excellon objects can be saved as Excellon files..." +msgstr "Failed. Only Excellon objects can be saved as Excellon files..." + +#: FlatCAMApp.py:7955 FlatCAMApp.py:7959 +msgid "Save Excellon source file" +msgstr "Save Excellon source file" + +#: FlatCAMApp.py:7996 FlatCAMApp.py:8000 +msgid "Export Excellon" +msgstr "Export Excellon" + +#: FlatCAMApp.py:8040 FlatCAMApp.py:8044 +msgid "Export Gerber" +msgstr "Export Gerber" + +#: FlatCAMApp.py:8082 +msgid "Only Geometry objects can be used." +msgstr "Only Geometry objects can be used." + +#: FlatCAMApp.py:8096 FlatCAMApp.py:8100 +msgid "Export DXF" +msgstr "Export DXF" + +#: FlatCAMApp.py:8125 FlatCAMApp.py:8128 +msgid "Import SVG" +msgstr "Import SVG" + +#: FlatCAMApp.py:8156 FlatCAMApp.py:8160 +msgid "Import DXF" +msgstr "Import DXF" + +#: FlatCAMApp.py:8210 +msgid "Viewing the source code of the selected object." +msgstr "Viewing the source code of the selected object." + +#: FlatCAMApp.py:8211 flatcamObjects/FlatCAMCNCJob.py:548 +#: flatcamObjects/FlatCAMScript.py:134 +msgid "Loading..." +msgstr "Loading..." + +#: FlatCAMApp.py:8217 FlatCAMApp.py:8221 +msgid "Select an Gerber or Excellon file to view it's source file." +msgstr "Select an Gerber or Excellon file to view it's source file." + +#: FlatCAMApp.py:8235 +msgid "Source Editor" +msgstr "Source Editor" + +#: FlatCAMApp.py:8275 FlatCAMApp.py:8282 +msgid "There is no selected object for which to see it's source file code." +msgstr "There is no selected object for which to see it's source file code." + +#: FlatCAMApp.py:8294 +msgid "Failed to load the source code for the selected object" +msgstr "Failed to load the source code for the selected object" + +#: FlatCAMApp.py:8308 flatcamObjects/FlatCAMCNCJob.py:562 +msgid "Code Editor" +msgstr "Code Editor" + +#: FlatCAMApp.py:8330 +msgid "Go to Line ..." +msgstr "Go to Line ..." + +#: FlatCAMApp.py:8331 +msgid "Line:" +msgstr "Line:" + +#: FlatCAMApp.py:8360 +msgid "New TCL script file created in Code Editor." +msgstr "New TCL script file created in Code Editor." + +#: FlatCAMApp.py:8396 FlatCAMApp.py:8398 FlatCAMApp.py:8434 FlatCAMApp.py:8436 +msgid "Open TCL script" +msgstr "Open TCL script" + +#: FlatCAMApp.py:8464 +msgid "Executing ScriptObject file." +msgstr "Executing ScriptObject file." + +#: FlatCAMApp.py:8472 FlatCAMApp.py:8475 +msgid "Run TCL script" +msgstr "Run TCL script" + +#: FlatCAMApp.py:8498 +msgid "TCL script file opened in Code Editor and executed." +msgstr "TCL script file opened in Code Editor and executed." + +#: FlatCAMApp.py:8549 FlatCAMApp.py:8555 +msgid "Save Project As ..." +msgstr "Save Project As ..." + +#: FlatCAMApp.py:8551 flatcamGUI/FlatCAMGUI.py:1134 +#: flatcamGUI/FlatCAMGUI.py:2176 +msgid "Project" +msgstr "Project" + +#: FlatCAMApp.py:8590 +msgid "FlatCAM objects print" +msgstr "FlatCAM objects print" + +#: FlatCAMApp.py:8603 FlatCAMApp.py:8610 +msgid "Save Object as PDF ..." +msgstr "Save Object as PDF ..." + +#: FlatCAMApp.py:8619 +msgid "Printing PDF ... Please wait." +msgstr "Printing PDF ... Please wait." + +#: FlatCAMApp.py:8798 +msgid "PDF file saved to" +msgstr "PDF file saved to" + +#: FlatCAMApp.py:8823 +msgid "Exporting SVG" +msgstr "Exporting SVG" + +#: FlatCAMApp.py:8866 +msgid "SVG file exported to" +msgstr "SVG file exported to" + +#: FlatCAMApp.py:8892 +msgid "" +"Save cancelled because source file is empty. Try to export the Gerber file." +msgstr "" +"Save cancelled because source file is empty. Try to export the Gerber file." + +#: FlatCAMApp.py:9039 +msgid "Excellon file exported to" +msgstr "Excellon file exported to" + +#: FlatCAMApp.py:9048 +msgid "Exporting Excellon" +msgstr "Exporting Excellon" + +#: FlatCAMApp.py:9053 FlatCAMApp.py:9060 +msgid "Could not export Excellon file." +msgstr "Could not export Excellon file." + +#: FlatCAMApp.py:9175 +msgid "Gerber file exported to" +msgstr "Gerber file exported to" + +#: FlatCAMApp.py:9183 +msgid "Exporting Gerber" +msgstr "Exporting Gerber" + +#: FlatCAMApp.py:9188 FlatCAMApp.py:9195 +msgid "Could not export Gerber file." +msgstr "Could not export Gerber file." + +#: FlatCAMApp.py:9230 +msgid "DXF file exported to" +msgstr "DXF file exported to" + +#: FlatCAMApp.py:9236 +msgid "Exporting DXF" +msgstr "Exporting DXF" + +#: FlatCAMApp.py:9241 FlatCAMApp.py:9248 +msgid "Could not export DXF file." +msgstr "Could not export DXF file." + +#: FlatCAMApp.py:9272 FlatCAMApp.py:9319 flatcamTools/ToolImage.py:277 +msgid "" +"Not supported type is picked as parameter. Only Geometry and Gerber are " +"supported" +msgstr "" +"Not supported type is picked as parameter. Only Geometry and Gerber are " +"supported" + +#: FlatCAMApp.py:9282 +msgid "Importing SVG" +msgstr "Importing SVG" + +#: FlatCAMApp.py:9290 FlatCAMApp.py:9336 +msgid "Import failed." +msgstr "Import failed." + +#: FlatCAMApp.py:9297 FlatCAMApp.py:9343 FlatCAMApp.py:9407 FlatCAMApp.py:9474 +#: FlatCAMApp.py:9540 FlatCAMApp.py:9605 FlatCAMApp.py:9662 +#: flatcamTools/ToolImage.py:297 flatcamTools/ToolPDF.py:225 +msgid "Opened" +msgstr "Opened" + +#: FlatCAMApp.py:9328 +msgid "Importing DXF" +msgstr "Importing DXF" + +#: FlatCAMApp.py:9369 FlatCAMApp.py:9564 FlatCAMApp.py:9629 +msgid "Failed to open file" +msgstr "Failed to open file" + +#: FlatCAMApp.py:9372 FlatCAMApp.py:9567 FlatCAMApp.py:9632 +msgid "Failed to parse file" +msgstr "Failed to parse file" + +#: FlatCAMApp.py:9384 +msgid "Object is not Gerber file or empty. Aborting object creation." +msgstr "Object is not Gerber file or empty. Aborting object creation." + +#: FlatCAMApp.py:9389 +msgid "Opening Gerber" +msgstr "Opening Gerber" + +#: FlatCAMApp.py:9400 +msgid "Open Gerber failed. Probable not a Gerber file." +msgstr "Open Gerber failed. Probable not a Gerber file." + +#: FlatCAMApp.py:9432 flatcamTools/ToolPcbWizard.py:424 +msgid "This is not Excellon file." +msgstr "This is not Excellon file." + +#: FlatCAMApp.py:9436 +msgid "Cannot open file" +msgstr "Cannot open file" + +#: FlatCAMApp.py:9454 flatcamTools/ToolPDF.py:275 +#: flatcamTools/ToolPcbWizard.py:445 +msgid "No geometry found in file" +msgstr "No geometry found in file" + +#: FlatCAMApp.py:9457 +msgid "Opening Excellon." +msgstr "Opening Excellon." + +#: FlatCAMApp.py:9467 +msgid "Open Excellon file failed. Probable not an Excellon file." +msgstr "Open Excellon file failed. Probable not an Excellon file." + +#: FlatCAMApp.py:9499 +msgid "Reading GCode file" +msgstr "Reading GCode file" + +#: FlatCAMApp.py:9505 +msgid "Failed to open" +msgstr "Failed to open" + +#: FlatCAMApp.py:9512 +msgid "This is not GCODE" +msgstr "This is not GCODE" + +#: FlatCAMApp.py:9517 +msgid "Opening G-Code." +msgstr "Opening G-Code." + +#: FlatCAMApp.py:9530 +msgid "" +"Failed to create CNCJob Object. Probable not a GCode file. Try to load it " +"from File menu.\n" +" Attempting to create a FlatCAM CNCJob Object from G-Code file failed during " +"processing" +msgstr "" +"Failed to create CNCJob Object. Probable not a GCode file. Try to load it " +"from File menu.\n" +" Attempting to create a FlatCAM CNCJob Object from G-Code file failed during " +"processing" + +#: FlatCAMApp.py:9586 +msgid "Object is not HPGL2 file or empty. Aborting object creation." +msgstr "Object is not HPGL2 file or empty. Aborting object creation." + +#: FlatCAMApp.py:9591 +msgid "Opening HPGL2" +msgstr "Opening HPGL2" + +#: FlatCAMApp.py:9598 +msgid " Open HPGL2 failed. Probable not a HPGL2 file." +msgstr " Open HPGL2 failed. Probable not a HPGL2 file." + +#: FlatCAMApp.py:9624 +msgid "TCL script file opened in Code Editor." +msgstr "TCL script file opened in Code Editor." + +#: FlatCAMApp.py:9644 +msgid "Opening TCL Script..." +msgstr "Opening TCL Script..." + +#: FlatCAMApp.py:9655 +msgid "Failed to open TCL Script." +msgstr "Failed to open TCL Script." + +#: FlatCAMApp.py:9677 +msgid "Opening FlatCAM Config file." +msgstr "Opening FlatCAM Config file." + +#: FlatCAMApp.py:9705 +msgid "Failed to open config file" +msgstr "Failed to open config file" + +#: FlatCAMApp.py:9734 +msgid "Loading Project ... Please Wait ..." +msgstr "Loading Project ... Please Wait ..." + +#: FlatCAMApp.py:9739 +msgid "Opening FlatCAM Project file." +msgstr "Opening FlatCAM Project file." + +#: FlatCAMApp.py:9754 FlatCAMApp.py:9758 FlatCAMApp.py:9775 +msgid "Failed to open project file" +msgstr "Failed to open project file" + +#: FlatCAMApp.py:9812 +msgid "Loading Project ... restoring" +msgstr "Loading Project ... restoring" + +#: FlatCAMApp.py:9822 +msgid "Project loaded from" +msgstr "Project loaded from" + +#: FlatCAMApp.py:9846 +msgid "Redrawing all objects" +msgstr "Redrawing all objects" + +#: FlatCAMApp.py:9934 +msgid "Failed to load recent item list." +msgstr "Failed to load recent item list." + +#: FlatCAMApp.py:9941 +msgid "Failed to parse recent item list." +msgstr "Failed to parse recent item list." + +#: FlatCAMApp.py:9951 +msgid "Failed to load recent projects item list." +msgstr "Failed to load recent projects item list." + +#: FlatCAMApp.py:9958 +msgid "Failed to parse recent project item list." +msgstr "Failed to parse recent project item list." + +#: FlatCAMApp.py:10019 +msgid "Clear Recent projects" +msgstr "Clear Recent projects" + +#: FlatCAMApp.py:10043 +msgid "Clear Recent files" +msgstr "Clear Recent files" + +#: FlatCAMApp.py:10065 flatcamGUI/FlatCAMGUI.py:1363 +msgid "Shortcut Key List" +msgstr "Shortcut Key List" + +#: FlatCAMApp.py:10145 +msgid "Selected Tab - Choose an Item from Project Tab" +msgstr "Selected Tab - Choose an Item from Project Tab" + +#: FlatCAMApp.py:10146 +msgid "Details" +msgstr "Details" + +#: FlatCAMApp.py:10148 +msgid "The normal flow when working in FlatCAM is the following:" +msgstr "The normal flow when working in FlatCAM is the following:" + +#: FlatCAMApp.py:10149 +msgid "" +"Load/Import a Gerber, Excellon, Gcode, DXF, Raster Image or SVG file into " +"FlatCAM using either the toolbars, key shortcuts or even dragging and " +"dropping the files on the GUI." +msgstr "" +"Load/Import a Gerber, Excellon, Gcode, DXF, Raster Image or SVG file into " +"FlatCAM using either the toolbars, key shortcuts or even dragging and " +"dropping the files on the GUI." + +#: FlatCAMApp.py:10152 +msgid "" +"You can also load a FlatCAM project by double clicking on the project file, " +"drag and drop of the file into the FLATCAM GUI or through the menu (or " +"toolbar) actions offered within the app." +msgstr "" +"You can also load a FlatCAM project by double clicking on the project file, " +"drag and drop of the file into the FLATCAM GUI or through the menu (or " +"toolbar) actions offered within the app." + +#: FlatCAMApp.py:10155 +msgid "" +"Once an object is available in the Project Tab, by selecting it and then " +"focusing on SELECTED TAB (more simpler is to double click the object name in " +"the Project Tab, SELECTED TAB will be updated with the object properties " +"according to its kind: Gerber, Excellon, Geometry or CNCJob object." +msgstr "" +"Once an object is available in the Project Tab, by selecting it and then " +"focusing on SELECTED TAB (more simpler is to double click the object name in " +"the Project Tab, SELECTED TAB will be updated with the object properties " +"according to its kind: Gerber, Excellon, Geometry or CNCJob object." + +#: FlatCAMApp.py:10159 +msgid "" +"If the selection of the object is done on the canvas by single click " +"instead, and the SELECTED TAB is in focus, again the object properties will " +"be displayed into the Selected Tab. Alternatively, double clicking on the " +"object on the canvas will bring the SELECTED TAB and populate it even if it " +"was out of focus." +msgstr "" +"If the selection of the object is done on the canvas by single click " +"instead, and the SELECTED TAB is in focus, again the object properties will " +"be displayed into the Selected Tab. Alternatively, double clicking on the " +"object on the canvas will bring the SELECTED TAB and populate it even if it " +"was out of focus." + +#: FlatCAMApp.py:10163 +msgid "" +"You can change the parameters in this screen and the flow direction is like " +"this:" +msgstr "" +"You can change the parameters in this screen and the flow direction is like " +"this:" + +#: FlatCAMApp.py:10164 +msgid "" +"Gerber/Excellon Object --> Change Parameter --> Generate Geometry --> " +"Geometry Object --> Add tools (change param in Selected Tab) --> Generate " +"CNCJob --> CNCJob Object --> Verify GCode (through Edit CNC Code) and/or " +"append/prepend to GCode (again, done in SELECTED TAB) --> Save GCode." +msgstr "" +"Gerber/Excellon Object --> Change Parameter --> Generate Geometry --> " +"Geometry Object --> Add tools (change param in Selected Tab) --> Generate " +"CNCJob --> CNCJob Object --> Verify GCode (through Edit CNC Code) and/or " +"append/prepend to GCode (again, done in SELECTED TAB) --> Save GCode." + +#: FlatCAMApp.py:10168 +msgid "" +"A list of key shortcuts is available through an menu entry in Help --> " +"Shortcuts List or through its own key shortcut: F3." +msgstr "" +"A list of key shortcuts is available through an menu entry in Help --> " +"Shortcuts List or through its own key shortcut: F3." + +#: FlatCAMApp.py:10232 +msgid "Failed checking for latest version. Could not connect." +msgstr "Failed checking for latest version. Could not connect." + +#: FlatCAMApp.py:10239 +msgid "Could not parse information about latest version." +msgstr "Could not parse information about latest version." + +#: FlatCAMApp.py:10249 +msgid "FlatCAM is up to date!" +msgstr "FlatCAM is up to date!" + +#: FlatCAMApp.py:10254 +msgid "Newer Version Available" +msgstr "Newer Version Available" + +#: FlatCAMApp.py:10256 +msgid "There is a newer version of FlatCAM available for download:" +msgstr "There is a newer version of FlatCAM available for download:" + +#: FlatCAMApp.py:10260 +msgid "info" +msgstr "info" + +#: FlatCAMApp.py:10288 +msgid "" +"OpenGL canvas initialization failed. HW or HW configuration not supported." +"Change the graphic engine to Legacy(2D) in Edit -> Preferences -> General " +"tab.\n" +"\n" +msgstr "" +"OpenGL canvas initialization failed. HW or HW configuration not supported." +"Change the graphic engine to Legacy(2D) in Edit -> Preferences -> General " +"tab.\n" +"\n" + +#: FlatCAMApp.py:10367 +msgid "All plots disabled." +msgstr "All plots disabled." + +#: FlatCAMApp.py:10374 +msgid "All non selected plots disabled." +msgstr "All non selected plots disabled." + +#: FlatCAMApp.py:10381 +msgid "All plots enabled." +msgstr "All plots enabled." + +#: FlatCAMApp.py:10387 +msgid "Selected plots enabled..." +msgstr "Selected plots enabled..." + +#: FlatCAMApp.py:10395 +msgid "Selected plots disabled..." +msgstr "Selected plots disabled..." + +#: FlatCAMApp.py:10428 +msgid "Enabling plots ..." +msgstr "Enabling plots ..." + +#: FlatCAMApp.py:10480 +msgid "Disabling plots ..." +msgstr "Disabling plots ..." + +#: FlatCAMApp.py:10503 +msgid "Working ..." +msgstr "Working ..." + +#: FlatCAMApp.py:10558 flatcamGUI/FlatCAMGUI.py:703 +msgid "Red" +msgstr "Red" + +#: FlatCAMApp.py:10560 flatcamGUI/FlatCAMGUI.py:706 +msgid "Blue" +msgstr "Blue" + +#: FlatCAMApp.py:10563 flatcamGUI/FlatCAMGUI.py:709 +msgid "Yellow" +msgstr "Yellow" + +#: FlatCAMApp.py:10565 flatcamGUI/FlatCAMGUI.py:712 +msgid "Green" +msgstr "Green" + +#: FlatCAMApp.py:10567 flatcamGUI/FlatCAMGUI.py:715 +msgid "Purple" +msgstr "Purple" + +#: FlatCAMApp.py:10569 flatcamGUI/FlatCAMGUI.py:718 +msgid "Brown" +msgstr "Brown" + +#: FlatCAMApp.py:10571 FlatCAMApp.py:10627 flatcamGUI/FlatCAMGUI.py:721 +msgid "White" +msgstr "White" + +#: FlatCAMApp.py:10573 flatcamGUI/FlatCAMGUI.py:724 +msgid "Black" +msgstr "Black" + +#: FlatCAMApp.py:10576 flatcamGUI/FlatCAMGUI.py:729 +msgid "Custom" +msgstr "Custom" + +#: FlatCAMApp.py:10586 flatcamGUI/FlatCAMGUI.py:737 +msgid "Default" +msgstr "Default" + +#: FlatCAMApp.py:10610 flatcamGUI/FlatCAMGUI.py:734 +msgid "Opacity" +msgstr "Opacity" + +#: FlatCAMApp.py:10612 +msgid "Set alpha level ..." +msgstr "Set alpha level ..." + +#: FlatCAMApp.py:10612 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:131 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:133 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:220 +#: flatcamTools/ToolExtractDrills.py:164 flatcamTools/ToolExtractDrills.py:285 +#: flatcamTools/ToolPunchGerber.py:192 flatcamTools/ToolPunchGerber.py:308 +#: flatcamTools/ToolTransform.py:357 +msgid "Value" +msgstr "Value" + +#: FlatCAMApp.py:10666 +msgid "Saving FlatCAM Project" +msgstr "Saving FlatCAM Project" + +#: FlatCAMApp.py:10687 FlatCAMApp.py:10723 +msgid "Project saved to" +msgstr "Project saved to" + +#: FlatCAMApp.py:10694 +msgid "The object is used by another application." +msgstr "The object is used by another application." + +#: FlatCAMApp.py:10708 +msgid "Failed to verify project file" +msgstr "Failed to verify project file" + +#: FlatCAMApp.py:10708 FlatCAMApp.py:10716 FlatCAMApp.py:10726 +msgid "Retry to save it." +msgstr "Retry to save it." + +#: FlatCAMApp.py:10716 FlatCAMApp.py:10726 +msgid "Failed to parse saved project file" +msgstr "Failed to parse saved project file" + +#: FlatCAMBookmark.py:57 FlatCAMBookmark.py:84 +msgid "Title" +msgstr "Title" + +#: FlatCAMBookmark.py:58 FlatCAMBookmark.py:88 +msgid "Web Link" +msgstr "Web Link" + +#: FlatCAMBookmark.py:62 +msgid "" +"Index.\n" +"The rows in gray color will populate the Bookmarks menu.\n" +"The number of gray colored rows is set in Preferences." +msgstr "" +"Index.\n" +"The rows in gray color will populate the Bookmarks menu.\n" +"The number of gray colored rows is set in Preferences." + +#: FlatCAMBookmark.py:66 +msgid "" +"Description of the link that is set as an menu action.\n" +"Try to keep it short because it is installed as a menu item." +msgstr "" +"Description of the link that is set as an menu action.\n" +"Try to keep it short because it is installed as a menu item." + +#: FlatCAMBookmark.py:69 +msgid "Web Link. E.g: https://your_website.org " +msgstr "Web Link. E.g: https://your_website.org " + +#: FlatCAMBookmark.py:78 +msgid "New Bookmark" +msgstr "New Bookmark" + +#: FlatCAMBookmark.py:97 +msgid "Add Entry" +msgstr "Add Entry" + +#: FlatCAMBookmark.py:98 +msgid "Remove Entry" +msgstr "Remove Entry" + +#: FlatCAMBookmark.py:99 +msgid "Export List" +msgstr "Export List" + +#: FlatCAMBookmark.py:100 +msgid "Import List" +msgstr "Import List" + +#: FlatCAMBookmark.py:190 +msgid "Title entry is empty." +msgstr "Title entry is empty." + +#: FlatCAMBookmark.py:199 +msgid "Web link entry is empty." +msgstr "Web link entry is empty." + +#: FlatCAMBookmark.py:207 +msgid "Either the Title or the Weblink already in the table." +msgstr "Either the Title or the Weblink already in the table." + +#: FlatCAMBookmark.py:227 +msgid "Bookmark added." +msgstr "Bookmark added." + +#: FlatCAMBookmark.py:244 +msgid "This bookmark can not be removed" +msgstr "This bookmark can not be removed" + +#: FlatCAMBookmark.py:275 +msgid "Bookmark removed." +msgstr "Bookmark removed." + +#: FlatCAMBookmark.py:290 +msgid "Export FlatCAM Bookmarks" +msgstr "Export FlatCAM Bookmarks" + +#: FlatCAMBookmark.py:293 flatcamGUI/FlatCAMGUI.py:524 +msgid "Bookmarks" +msgstr "Bookmarks" + +#: FlatCAMBookmark.py:319 FlatCAMBookmark.py:349 +msgid "Could not load bookmarks file." +msgstr "Could not load bookmarks file." + +#: FlatCAMBookmark.py:329 +msgid "Failed to write bookmarks to file." +msgstr "Failed to write bookmarks to file." + +#: FlatCAMBookmark.py:331 +msgid "Exported bookmarks to" +msgstr "Exported bookmarks to" + +#: FlatCAMBookmark.py:337 +msgid "Import FlatCAM Bookmarks" +msgstr "Import FlatCAM Bookmarks" + +#: FlatCAMBookmark.py:356 +msgid "Imported Bookmarks from" +msgstr "Imported Bookmarks from" + +#: FlatCAMCommon.py:29 +msgid "The user requested a graceful exit of the current task." +msgstr "The user requested a graceful exit of the current task." + +#: FlatCAMDB.py:86 +msgid "Add Geometry Tool in DB" +msgstr "Add Geometry Tool in DB" + +#: FlatCAMDB.py:88 FlatCAMDB.py:1643 +msgid "" +"Add a new tool in the Tools Database.\n" +"It will be used in the Geometry UI.\n" +"You can edit it after it is added." +msgstr "" +"Add a new tool in the Tools Database.\n" +"It will be used in the Geometry UI.\n" +"You can edit it after it is added." + +#: FlatCAMDB.py:102 FlatCAMDB.py:1657 +msgid "Delete Tool from DB" +msgstr "Delete Tool from DB" + +#: FlatCAMDB.py:104 FlatCAMDB.py:1659 +msgid "Remove a selection of tools in the Tools Database." +msgstr "Remove a selection of tools in the Tools Database." + +#: FlatCAMDB.py:108 FlatCAMDB.py:1663 +msgid "Export DB" +msgstr "Export DB" + +#: FlatCAMDB.py:110 FlatCAMDB.py:1665 +msgid "Save the Tools Database to a custom text file." +msgstr "Save the Tools Database to a custom text file." + +#: FlatCAMDB.py:114 FlatCAMDB.py:1669 +msgid "Import DB" +msgstr "Import DB" + +#: FlatCAMDB.py:116 FlatCAMDB.py:1671 +msgid "Load the Tools Database information's from a custom text file." +msgstr "Load the Tools Database information's from a custom text file." + +#: FlatCAMDB.py:120 FlatCAMDB.py:1681 +msgid "Add Tool from Tools DB" +msgstr "Add Tool from Tools DB" + +#: FlatCAMDB.py:122 FlatCAMDB.py:1683 +msgid "" +"Add a new tool in the Tools Table of the\n" +"active Geometry object after selecting a tool\n" +"in the Tools Database." +msgstr "" +"Add a new tool in the Tools Table of the\n" +"active Geometry object after selecting a tool\n" +"in the Tools Database." + +#: FlatCAMDB.py:158 FlatCAMDB.py:833 FlatCAMDB.py:1087 +msgid "Tool Name" +msgstr "Tool Name" + +#: FlatCAMDB.py:159 FlatCAMDB.py:835 FlatCAMDB.py:1100 +#: flatcamEditors/FlatCAMExcEditor.py:1604 flatcamGUI/ObjectUI.py:1345 +#: flatcamGUI/ObjectUI.py:1583 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:132 +#: flatcamTools/ToolNCC.py:278 flatcamTools/ToolNCC.py:287 +#: flatcamTools/ToolPaint.py:261 +msgid "Tool Dia" +msgstr "Tool Dia" + +#: FlatCAMDB.py:160 FlatCAMDB.py:837 FlatCAMDB.py:1281 +#: flatcamGUI/ObjectUI.py:1558 +msgid "Tool Offset" +msgstr "Tool Offset" + +#: FlatCAMDB.py:161 FlatCAMDB.py:839 FlatCAMDB.py:1298 +msgid "Custom Offset" +msgstr "Custom Offset" + +#: FlatCAMDB.py:162 FlatCAMDB.py:841 FlatCAMDB.py:1265 +#: flatcamGUI/ObjectUI.py:309 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:67 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:53 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:62 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:72 +#: flatcamTools/ToolNCC.py:213 flatcamTools/ToolNCC.py:227 +#: flatcamTools/ToolPaint.py:196 +msgid "Tool Type" +msgstr "Tool Type" + +#: FlatCAMDB.py:163 FlatCAMDB.py:843 FlatCAMDB.py:1113 +msgid "Tool Shape" +msgstr "Tool Shape" + +#: FlatCAMDB.py:164 FlatCAMDB.py:846 FlatCAMDB.py:1129 +#: flatcamGUI/ObjectUI.py:350 flatcamGUI/ObjectUI.py:900 +#: flatcamGUI/ObjectUI.py:1703 flatcamGUI/ObjectUI.py:2336 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:93 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:48 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:107 +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:78 +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:58 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:98 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:105 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:113 +#: flatcamTools/ToolCalculators.py:114 flatcamTools/ToolCutOut.py:138 +#: flatcamTools/ToolNCC.py:260 flatcamTools/ToolNCC.py:268 +#: flatcamTools/ToolPaint.py:243 +msgid "Cut Z" +msgstr "Cut Z" + +#: FlatCAMDB.py:165 FlatCAMDB.py:848 FlatCAMDB.py:1143 +msgid "MultiDepth" +msgstr "MultiDepth" + +#: FlatCAMDB.py:166 FlatCAMDB.py:850 FlatCAMDB.py:1156 +msgid "DPP" +msgstr "DPP" + +#: FlatCAMDB.py:167 FlatCAMDB.py:852 FlatCAMDB.py:1312 +msgid "V-Dia" +msgstr "V-Dia" + +#: FlatCAMDB.py:168 FlatCAMDB.py:854 FlatCAMDB.py:1326 +msgid "V-Angle" +msgstr "V-Angle" + +#: FlatCAMDB.py:169 FlatCAMDB.py:856 FlatCAMDB.py:1170 +#: flatcamGUI/ObjectUI.py:946 flatcamGUI/ObjectUI.py:1750 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:134 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:101 +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:61 +#: flatcamObjects/FlatCAMExcellon.py:1316 +#: flatcamObjects/FlatCAMGeometry.py:1606 flatcamTools/ToolCalibration.py:74 +msgid "Travel Z" +msgstr "Travel Z" + +#: FlatCAMDB.py:170 FlatCAMDB.py:858 +msgid "FR" +msgstr "FR" + +#: FlatCAMDB.py:171 FlatCAMDB.py:860 +msgid "FR Z" +msgstr "FR Z" + +#: FlatCAMDB.py:172 FlatCAMDB.py:862 FlatCAMDB.py:1340 +msgid "FR Rapids" +msgstr "FR Rapids" + +#: FlatCAMDB.py:173 FlatCAMDB.py:864 FlatCAMDB.py:1213 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:222 +msgid "Spindle Speed" +msgstr "Spindle Speed" + +#: FlatCAMDB.py:174 FlatCAMDB.py:866 FlatCAMDB.py:1228 +#: flatcamGUI/ObjectUI.py:1064 flatcamGUI/ObjectUI.py:1857 +msgid "Dwell" +msgstr "Dwell" + +#: FlatCAMDB.py:175 FlatCAMDB.py:868 FlatCAMDB.py:1241 +msgid "Dwelltime" +msgstr "Dwelltime" + +#: FlatCAMDB.py:176 FlatCAMDB.py:870 flatcamGUI/ObjectUI.py:2014 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:257 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:254 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:237 +#: flatcamTools/ToolSolderPaste.py:335 +msgid "Preprocessor" +msgstr "Preprocessor" + +#: FlatCAMDB.py:177 FlatCAMDB.py:872 FlatCAMDB.py:1356 +msgid "ExtraCut" +msgstr "ExtraCut" + +#: FlatCAMDB.py:178 FlatCAMDB.py:874 FlatCAMDB.py:1371 +msgid "E-Cut Length" +msgstr "E-Cut Length" + +#: FlatCAMDB.py:179 FlatCAMDB.py:876 +msgid "Toolchange" +msgstr "Toolchange" + +#: FlatCAMDB.py:180 FlatCAMDB.py:878 +msgid "Toolchange XY" +msgstr "Toolchange XY" + +#: FlatCAMDB.py:181 FlatCAMDB.py:880 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:160 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:131 +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:98 +#: flatcamTools/ToolCalibration.py:111 +msgid "Toolchange Z" +msgstr "Toolchange Z" + +#: FlatCAMDB.py:182 FlatCAMDB.py:882 flatcamGUI/ObjectUI.py:1193 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:69 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:54 +msgid "Start Z" +msgstr "Start Z" + +#: FlatCAMDB.py:183 FlatCAMDB.py:885 +msgid "End Z" +msgstr "End Z" + +#: FlatCAMDB.py:187 +msgid "Tool Index." +msgstr "Tool Index." + +#: FlatCAMDB.py:189 FlatCAMDB.py:1089 +msgid "" +"Tool name.\n" +"This is not used in the app, it's function\n" +"is to serve as a note for the user." +msgstr "" +"Tool name.\n" +"This is not used in the app, it's function\n" +"is to serve as a note for the user." + +#: FlatCAMDB.py:193 FlatCAMDB.py:1102 +msgid "Tool Diameter." +msgstr "Tool Diameter." + +#: FlatCAMDB.py:195 FlatCAMDB.py:1283 +msgid "" +"Tool Offset.\n" +"Can be of a few types:\n" +"Path = zero offset\n" +"In = offset inside by half of tool diameter\n" +"Out = offset outside by half of tool diameter\n" +"Custom = custom offset using the Custom Offset value" +msgstr "" +"Tool Offset.\n" +"Can be of a few types:\n" +"Path = zero offset\n" +"In = offset inside by half of tool diameter\n" +"Out = offset outside by half of tool diameter\n" +"Custom = custom offset using the Custom Offset value" + +#: FlatCAMDB.py:202 FlatCAMDB.py:1300 +msgid "" +"Custom Offset.\n" +"A value to be used as offset from the current path." +msgstr "" +"Custom Offset.\n" +"A value to be used as offset from the current path." + +#: FlatCAMDB.py:205 FlatCAMDB.py:1267 +msgid "" +"Tool Type.\n" +"Can be:\n" +"Iso = isolation cut\n" +"Rough = rough cut, low feedrate, multiple passes\n" +"Finish = finishing cut, high feedrate" +msgstr "" +"Tool Type.\n" +"Can be:\n" +"Iso = isolation cut\n" +"Rough = rough cut, low feedrate, multiple passes\n" +"Finish = finishing cut, high feedrate" + +#: FlatCAMDB.py:211 FlatCAMDB.py:1115 +msgid "" +"Tool Shape. \n" +"Can be:\n" +"C1 ... C4 = circular tool with x flutes\n" +"B = ball tip milling tool\n" +"V = v-shape milling tool" +msgstr "" +"Tool Shape. \n" +"Can be:\n" +"C1 ... C4 = circular tool with x flutes\n" +"B = ball tip milling tool\n" +"V = v-shape milling tool" + +#: FlatCAMDB.py:217 FlatCAMDB.py:1131 +msgid "" +"Cutting Depth.\n" +"The depth at which to cut into material." +msgstr "" +"Cutting Depth.\n" +"The depth at which to cut into material." + +#: FlatCAMDB.py:220 FlatCAMDB.py:1145 +msgid "" +"Multi Depth.\n" +"Selecting this will allow cutting in multiple passes,\n" +"each pass adding a DPP parameter depth." +msgstr "" +"Multi Depth.\n" +"Selecting this will allow cutting in multiple passes,\n" +"each pass adding a DPP parameter depth." + +#: FlatCAMDB.py:224 FlatCAMDB.py:1158 +msgid "" +"DPP. Depth per Pass.\n" +"The value used to cut into material on each pass." +msgstr "" +"DPP. Depth per Pass.\n" +"The value used to cut into material on each pass." + +#: FlatCAMDB.py:227 FlatCAMDB.py:1314 +msgid "" +"V-Dia.\n" +"Diameter of the tip for V-Shape Tools." +msgstr "" +"V-Dia.\n" +"Diameter of the tip for V-Shape Tools." + +#: FlatCAMDB.py:230 FlatCAMDB.py:1328 +msgid "" +"V-Agle.\n" +"Angle at the tip for the V-Shape Tools." +msgstr "" +"V-Agle.\n" +"Angle at the tip for the V-Shape Tools." + +#: FlatCAMDB.py:233 FlatCAMDB.py:1172 +msgid "" +"Clearance Height.\n" +"Height at which the milling bit will travel between cuts,\n" +"above the surface of the material, avoiding all fixtures." +msgstr "" +"Clearance Height.\n" +"Height at which the milling bit will travel between cuts,\n" +"above the surface of the material, avoiding all fixtures." + +#: FlatCAMDB.py:237 +msgid "" +"FR. Feedrate\n" +"The speed on XY plane used while cutting into material." +msgstr "" +"FR. Feedrate\n" +"The speed on XY plane used while cutting into material." + +#: FlatCAMDB.py:240 +msgid "" +"FR Z. Feedrate Z\n" +"The speed on Z plane." +msgstr "" +"FR Z. Feedrate Z\n" +"The speed on Z plane." + +#: FlatCAMDB.py:243 FlatCAMDB.py:1342 +msgid "" +"FR Rapids. Feedrate Rapids\n" +"Speed used while moving as fast as possible.\n" +"This is used only by some devices that can't use\n" +"the G0 g-code command. Mostly 3D printers." +msgstr "" +"FR Rapids. Feedrate Rapids\n" +"Speed used while moving as fast as possible.\n" +"This is used only by some devices that can't use\n" +"the G0 g-code command. Mostly 3D printers." + +#: FlatCAMDB.py:248 FlatCAMDB.py:1215 +msgid "" +"Spindle Speed.\n" +"If it's left empty it will not be used.\n" +"The speed of the spindle in RPM." +msgstr "" +"Spindle Speed.\n" +"If it's left empty it will not be used.\n" +"The speed of the spindle in RPM." + +#: FlatCAMDB.py:252 FlatCAMDB.py:1230 +msgid "" +"Dwell.\n" +"Check this if a delay is needed to allow\n" +"the spindle motor to reach it's set speed." +msgstr "" +"Dwell.\n" +"Check this if a delay is needed to allow\n" +"the spindle motor to reach it's set speed." + +#: FlatCAMDB.py:256 FlatCAMDB.py:1243 +msgid "" +"Dwell Time.\n" +"A delay used to allow the motor spindle reach it's set speed." +msgstr "" +"Dwell Time.\n" +"A delay used to allow the motor spindle reach it's set speed." + +#: FlatCAMDB.py:259 +msgid "" +"Preprocessor.\n" +"A selection of files that will alter the generated G-code\n" +"to fit for a number of use cases." +msgstr "" +"Preprocessor.\n" +"A selection of files that will alter the generated G-code\n" +"to fit for a number of use cases." + +#: FlatCAMDB.py:263 FlatCAMDB.py:1358 +msgid "" +"Extra Cut.\n" +"If checked, after a isolation is finished an extra cut\n" +"will be added where the start and end of isolation meet\n" +"such as that this point is covered by this extra cut to\n" +"ensure a complete isolation." +msgstr "" +"Extra Cut.\n" +"If checked, after a isolation is finished an extra cut\n" +"will be added where the start and end of isolation meet\n" +"such as that this point is covered by this extra cut to\n" +"ensure a complete isolation." + +#: FlatCAMDB.py:269 FlatCAMDB.py:1373 +msgid "" +"Extra Cut length.\n" +"If checked, after a isolation is finished an extra cut\n" +"will be added where the start and end of isolation meet\n" +"such as that this point is covered by this extra cut to\n" +"ensure a complete isolation. This is the length of\n" +"the extra cut." +msgstr "" +"Extra Cut length.\n" +"If checked, after a isolation is finished an extra cut\n" +"will be added where the start and end of isolation meet\n" +"such as that this point is covered by this extra cut to\n" +"ensure a complete isolation. This is the length of\n" +"the extra cut." + +#: FlatCAMDB.py:276 +msgid "" +"Toolchange.\n" +"It will create a toolchange event.\n" +"The kind of toolchange is determined by\n" +"the preprocessor file." +msgstr "" +"Toolchange.\n" +"It will create a toolchange event.\n" +"The kind of toolchange is determined by\n" +"the preprocessor file." + +#: FlatCAMDB.py:281 +msgid "" +"Toolchange XY.\n" +"A set of coordinates in the format (x, y).\n" +"Will determine the cartesian position of the point\n" +"where the tool change event take place." +msgstr "" +"Toolchange XY.\n" +"A set of coordinates in the format (x, y).\n" +"Will determine the cartesian position of the point\n" +"where the tool change event take place." + +#: FlatCAMDB.py:286 +msgid "" +"Toolchange Z.\n" +"The position on Z plane where the tool change event take place." +msgstr "" +"Toolchange Z.\n" +"The position on Z plane where the tool change event take place." + +#: FlatCAMDB.py:289 +msgid "" +"Start Z.\n" +"If it's left empty it will not be used.\n" +"A position on Z plane to move immediately after job start." +msgstr "" +"Start Z.\n" +"If it's left empty it will not be used.\n" +"A position on Z plane to move immediately after job start." + +#: FlatCAMDB.py:293 +msgid "" +"End Z.\n" +"A position on Z plane to move immediately after job stop." +msgstr "" +"End Z.\n" +"A position on Z plane to move immediately after job stop." + +#: FlatCAMDB.py:305 FlatCAMDB.py:682 FlatCAMDB.py:716 FlatCAMDB.py:1898 +#: FlatCAMDB.py:2144 FlatCAMDB.py:2178 +msgid "Could not load Tools DB file." +msgstr "Could not load Tools DB file." + +#: FlatCAMDB.py:313 FlatCAMDB.py:724 FlatCAMDB.py:1906 FlatCAMDB.py:2186 +msgid "Failed to parse Tools DB file." +msgstr "Failed to parse Tools DB file." + +#: FlatCAMDB.py:316 FlatCAMDB.py:727 FlatCAMDB.py:1909 FlatCAMDB.py:2189 +msgid "Loaded FlatCAM Tools DB from" +msgstr "Loaded FlatCAM Tools DB from" + +#: FlatCAMDB.py:322 FlatCAMDB.py:1823 +msgid "Add to DB" +msgstr "Add to DB" + +#: FlatCAMDB.py:324 FlatCAMDB.py:1826 +msgid "Copy from DB" +msgstr "Copy from DB" + +#: FlatCAMDB.py:326 FlatCAMDB.py:1829 +msgid "Delete from DB" +msgstr "Delete from DB" + +#: FlatCAMDB.py:603 FlatCAMDB.py:2044 +msgid "Tool added to DB." +msgstr "Tool added to DB." + +#: FlatCAMDB.py:624 FlatCAMDB.py:2077 +msgid "Tool copied from Tools DB." +msgstr "Tool copied from Tools DB." + +#: FlatCAMDB.py:642 FlatCAMDB.py:2104 +msgid "Tool removed from Tools DB." +msgstr "Tool removed from Tools DB." + +#: FlatCAMDB.py:653 FlatCAMDB.py:2115 +msgid "Export Tools Database" +msgstr "Export Tools Database" + +#: FlatCAMDB.py:656 FlatCAMDB.py:2118 +msgid "Tools_Database" +msgstr "Tools_Database" + +#: FlatCAMDB.py:693 FlatCAMDB.py:696 FlatCAMDB.py:748 FlatCAMDB.py:2155 +#: FlatCAMDB.py:2158 FlatCAMDB.py:2211 +msgid "Failed to write Tools DB to file." +msgstr "Failed to write Tools DB to file." + +#: FlatCAMDB.py:699 FlatCAMDB.py:2161 +msgid "Exported Tools DB to" +msgstr "Exported Tools DB to" + +#: FlatCAMDB.py:706 FlatCAMDB.py:2168 +msgid "Import FlatCAM Tools DB" +msgstr "Import FlatCAM Tools DB" + +#: FlatCAMDB.py:752 FlatCAMDB.py:2215 msgid "Saved Tools DB." msgstr "Saved Tools DB." -#: AppDatabase.py:901 AppDatabase.py:2611 +#: FlatCAMDB.py:899 FlatCAMDB.py:2405 msgid "No Tool/row selected in the Tools Database table" msgstr "No Tool/row selected in the Tools Database table" -#: AppDatabase.py:919 AppDatabase.py:2628 +#: FlatCAMDB.py:917 FlatCAMDB.py:2422 msgid "Cancelled adding tool from DB." msgstr "Cancelled adding tool from DB." -#: AppDatabase.py:1020 +#: FlatCAMDB.py:1018 msgid "Basic Geo Parameters" msgstr "Basic Geo Parameters" -#: AppDatabase.py:1032 +#: FlatCAMDB.py:1030 msgid "Advanced Geo Parameters" msgstr "Advanced Geo Parameters" -#: AppDatabase.py:1045 +#: FlatCAMDB.py:1042 msgid "NCC Parameters" msgstr "NCC Parameters" -#: AppDatabase.py:1058 +#: FlatCAMDB.py:1054 msgid "Paint Parameters" msgstr "Paint Parameters" -#: AppDatabase.py:1071 -msgid "Isolation Parameters" -msgstr "Isolation Parameters" - -#: AppDatabase.py:1204 AppGUI/ObjectUI.py:746 AppGUI/ObjectUI.py:1671 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:186 -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:148 -#: AppTools/ToolSolderPaste.py:249 +#: FlatCAMDB.py:1185 flatcamGUI/ObjectUI.py:967 flatcamGUI/ObjectUI.py:1769 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:185 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:148 +#: flatcamTools/ToolSolderPaste.py:253 msgid "Feedrate X-Y" msgstr "Feedrate X-Y" -#: AppDatabase.py:1206 +#: FlatCAMDB.py:1187 msgid "" "Feedrate X-Y. Feedrate\n" "The speed on XY plane used while cutting into material." @@ -640,15 +2264,15 @@ msgstr "" "Feedrate X-Y. Feedrate\n" "The speed on XY plane used while cutting into material." -#: AppDatabase.py:1218 AppGUI/ObjectUI.py:761 AppGUI/ObjectUI.py:1685 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:207 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:201 -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:161 -#: AppTools/ToolSolderPaste.py:261 +#: FlatCAMDB.py:1199 flatcamGUI/ObjectUI.py:982 flatcamGUI/ObjectUI.py:1783 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:207 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:200 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:161 +#: flatcamTools/ToolSolderPaste.py:265 msgid "Feedrate Z" msgstr "Feedrate Z" -#: AppDatabase.py:1220 +#: FlatCAMDB.py:1201 msgid "" "Feedrate Z\n" "The speed on Z plane." @@ -656,13 +2280,13 @@ msgstr "" "Feedrate Z\n" "The speed on Z plane." -#: AppDatabase.py:1418 AppGUI/ObjectUI.py:624 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:46 -#: AppTools/ToolNCC.py:341 +#: FlatCAMDB.py:1399 flatcamGUI/ObjectUI.py:845 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:46 +#: flatcamTools/ToolNCC.py:341 msgid "Operation" msgstr "Operation" -#: AppDatabase.py:1420 AppTools/ToolNCC.py:343 +#: FlatCAMDB.py:1401 flatcamTools/ToolNCC.py:343 msgid "" "The 'Operation' can be:\n" "- Isolation -> will ensure that the non-copper clearing is always complete.\n" @@ -674,31 +2298,28 @@ msgstr "" "If it's not successful then the non-copper clearing will fail, too.\n" "- Clear -> the regular non-copper clearing." -#: AppDatabase.py:1427 AppEditors/FlatCAMGrbEditor.py:2749 -#: AppGUI/GUIElements.py:2754 AppTools/ToolNCC.py:350 +#: FlatCAMDB.py:1408 flatcamEditors/FlatCAMGrbEditor.py:2742 +#: flatcamGUI/GUIElements.py:2577 flatcamTools/ToolNCC.py:350 msgid "Clear" msgstr "Clear" -#: AppDatabase.py:1428 AppTools/ToolNCC.py:351 +#: FlatCAMDB.py:1409 flatcamTools/ToolNCC.py:351 flatcamTools/ToolNCC.py:1623 msgid "Isolation" msgstr "Isolation" -#: AppDatabase.py:1436 AppDatabase.py:1682 AppGUI/ObjectUI.py:646 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:62 -#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:56 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:182 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:137 -#: AppTools/ToolIsolation.py:351 AppTools/ToolNCC.py:359 +#: FlatCAMDB.py:1417 flatcamGUI/ObjectUI.py:409 flatcamGUI/ObjectUI.py:867 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:62 +#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:56 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:95 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:137 +#: flatcamTools/ToolNCC.py:359 msgid "Milling Type" msgstr "Milling Type" -#: AppDatabase.py:1438 AppDatabase.py:1446 AppDatabase.py:1684 -#: AppDatabase.py:1692 AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:184 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:192 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:139 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:147 -#: AppTools/ToolIsolation.py:353 AppTools/ToolIsolation.py:361 -#: AppTools/ToolNCC.py:361 AppTools/ToolNCC.py:369 +#: FlatCAMDB.py:1419 FlatCAMDB.py:1427 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:139 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:147 +#: flatcamTools/ToolNCC.py:361 flatcamTools/ToolNCC.py:369 msgid "" "Milling type when the selected tool is of type: 'iso_op':\n" "- climb / best for precision milling and to reduce tool usage\n" @@ -708,34 +2329,31 @@ msgstr "" "- climb / best for precision milling and to reduce tool usage\n" "- conventional / useful when there is no backlash compensation" -#: AppDatabase.py:1443 AppDatabase.py:1689 -#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:62 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:189 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:144 -#: AppTools/ToolIsolation.py:358 AppTools/ToolNCC.py:366 +#: FlatCAMDB.py:1424 flatcamGUI/ObjectUI.py:415 +#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:62 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:102 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:144 +#: flatcamTools/ToolNCC.py:366 msgid "Climb" msgstr "Climb" -#: AppDatabase.py:1444 AppDatabase.py:1690 -#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:63 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:190 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:145 -#: AppTools/ToolIsolation.py:359 AppTools/ToolNCC.py:367 +#: FlatCAMDB.py:1425 flatcamGUI/ObjectUI.py:416 +#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:63 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:103 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:145 +#: flatcamTools/ToolNCC.py:367 msgid "Conventional" msgstr "Conventional" -#: AppDatabase.py:1456 AppDatabase.py:1565 AppDatabase.py:1667 -#: AppEditors/FlatCAMGeoEditor.py:450 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:167 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:182 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:163 -#: AppTools/ToolIsolation.py:336 AppTools/ToolNCC.py:382 -#: AppTools/ToolPaint.py:328 +#: FlatCAMDB.py:1437 FlatCAMDB.py:1546 flatcamEditors/FlatCAMGeoEditor.py:451 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:182 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:163 +#: flatcamTools/ToolNCC.py:382 flatcamTools/ToolPaint.py:329 msgid "Overlap" msgstr "Overlap" -#: AppDatabase.py:1458 AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:184 -#: AppTools/ToolNCC.py:384 +#: FlatCAMDB.py:1439 flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:184 +#: flatcamTools/ToolNCC.py:384 msgid "" "How much (percentage) of the tool width to overlap each tool pass.\n" "Adjust the value starting with lower values\n" @@ -753,47 +2371,45 @@ msgstr "" "Higher values = slow processing and slow execution on CNC\n" "due of too many paths." -#: AppDatabase.py:1477 AppDatabase.py:1586 AppEditors/FlatCAMGeoEditor.py:470 -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:72 -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:229 -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:59 -#: AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py:45 -#: AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py:53 -#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:66 -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:115 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:202 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:183 -#: AppTools/ToolCopperThieving.py:115 AppTools/ToolCopperThieving.py:366 -#: AppTools/ToolCorners.py:149 AppTools/ToolCutOut.py:190 -#: AppTools/ToolFiducials.py:175 AppTools/ToolInvertGerber.py:91 -#: AppTools/ToolInvertGerber.py:99 AppTools/ToolNCC.py:403 -#: AppTools/ToolPaint.py:349 +#: FlatCAMDB.py:1458 FlatCAMDB.py:1567 flatcamEditors/FlatCAMGeoEditor.py:471 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:72 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:229 +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:59 +#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:45 +#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:53 +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:115 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:202 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:183 +#: flatcamTools/ToolCopperThieving.py:111 +#: flatcamTools/ToolCopperThieving.py:362 flatcamTools/ToolCutOut.py:190 +#: flatcamTools/ToolFiducials.py:172 flatcamTools/ToolInvertGerber.py:88 +#: flatcamTools/ToolInvertGerber.py:96 flatcamTools/ToolNCC.py:403 +#: flatcamTools/ToolPaint.py:350 msgid "Margin" msgstr "Margin" -#: AppDatabase.py:1479 -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:74 -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:61 -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:125 -#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:68 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:204 -#: AppTools/ToolCopperThieving.py:117 AppTools/ToolCorners.py:151 -#: AppTools/ToolFiducials.py:177 AppTools/ToolNCC.py:405 +#: FlatCAMDB.py:1460 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:74 +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:61 +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:125 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:204 +#: flatcamTools/ToolCopperThieving.py:113 flatcamTools/ToolFiducials.py:174 +#: flatcamTools/ToolFiducials.py:237 flatcamTools/ToolNCC.py:405 msgid "Bounding box margin." msgstr "Bounding box margin." -#: AppDatabase.py:1490 AppDatabase.py:1601 AppEditors/FlatCAMGeoEditor.py:484 -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:105 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:106 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:215 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:198 -#: AppTools/ToolExtractDrills.py:128 AppTools/ToolNCC.py:416 -#: AppTools/ToolPaint.py:364 AppTools/ToolPunchGerber.py:139 +#: FlatCAMDB.py:1471 FlatCAMDB.py:1582 flatcamEditors/FlatCAMGeoEditor.py:485 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:105 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:106 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:215 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:198 +#: flatcamTools/ToolExtractDrills.py:128 flatcamTools/ToolNCC.py:416 +#: flatcamTools/ToolPaint.py:365 flatcamTools/ToolPunchGerber.py:139 msgid "Method" msgstr "Method" -#: AppDatabase.py:1492 AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:217 -#: AppTools/ToolNCC.py:418 +#: FlatCAMDB.py:1473 flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:217 +#: flatcamTools/ToolNCC.py:418 msgid "" "Algorithm for copper clearing:\n" "- Standard: Fixed step inwards.\n" @@ -805,57 +2421,52 @@ msgstr "" "- Seed-based: Outwards from seed.\n" "- Line-based: Parallel lines." -#: AppDatabase.py:1500 AppDatabase.py:1615 AppEditors/FlatCAMGeoEditor.py:498 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:230 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217 -#: AppTools/ToolNCC.py:431 AppTools/ToolNCC.py:2232 AppTools/ToolNCC.py:2764 -#: AppTools/ToolNCC.py:2796 AppTools/ToolPaint.py:389 -#: AppTools/ToolPaint.py:1859 tclCommands/TclCommandCopperClear.py:126 +#: FlatCAMDB.py:1481 FlatCAMDB.py:1596 flatcamEditors/FlatCAMGeoEditor.py:499 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:230 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217 +#: flatcamTools/ToolNCC.py:431 flatcamTools/ToolNCC.py:2395 +#: flatcamTools/ToolNCC.py:2424 flatcamTools/ToolNCC.py:2693 +#: flatcamTools/ToolNCC.py:2725 flatcamTools/ToolPaint.py:390 +#: flatcamTools/ToolPaint.py:1834 tclCommands/TclCommandCopperClear.py:126 #: tclCommands/TclCommandCopperClear.py:134 tclCommands/TclCommandPaint.py:125 msgid "Standard" msgstr "Standard" -#: AppDatabase.py:1500 AppDatabase.py:1615 AppEditors/FlatCAMGeoEditor.py:498 -#: AppEditors/FlatCAMGeoEditor.py:568 AppEditors/FlatCAMGeoEditor.py:5148 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:230 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217 -#: AppTools/ToolNCC.py:431 AppTools/ToolNCC.py:2243 AppTools/ToolNCC.py:2770 -#: AppTools/ToolNCC.py:2802 AppTools/ToolPaint.py:389 -#: AppTools/ToolPaint.py:1873 defaults.py:413 defaults.py:445 -#: tclCommands/TclCommandCopperClear.py:128 +#: FlatCAMDB.py:1481 FlatCAMDB.py:1596 defaults.py:395 defaults.py:427 +#: flatcamEditors/FlatCAMGeoEditor.py:499 +#: flatcamEditors/FlatCAMGeoEditor.py:569 +#: flatcamEditors/FlatCAMGeoEditor.py:5152 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:230 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217 +#: flatcamTools/ToolNCC.py:431 flatcamTools/ToolNCC.py:2401 +#: flatcamTools/ToolNCC.py:2429 flatcamTools/ToolNCC.py:2699 +#: flatcamTools/ToolNCC.py:2731 flatcamTools/ToolPaint.py:390 +#: flatcamTools/ToolPaint.py:1848 tclCommands/TclCommandCopperClear.py:128 #: tclCommands/TclCommandCopperClear.py:136 tclCommands/TclCommandPaint.py:127 msgid "Seed" msgstr "Seed" -#: AppDatabase.py:1500 AppDatabase.py:1615 AppEditors/FlatCAMGeoEditor.py:498 -#: AppEditors/FlatCAMGeoEditor.py:5152 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:230 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217 -#: AppTools/ToolNCC.py:431 AppTools/ToolNCC.py:2254 AppTools/ToolPaint.py:389 -#: AppTools/ToolPaint.py:698 AppTools/ToolPaint.py:1887 +#: FlatCAMDB.py:1481 FlatCAMDB.py:1596 flatcamEditors/FlatCAMGeoEditor.py:499 +#: flatcamEditors/FlatCAMGeoEditor.py:5156 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:230 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217 +#: flatcamTools/ToolNCC.py:431 flatcamTools/ToolPaint.py:390 +#: flatcamTools/ToolPaint.py:699 flatcamTools/ToolPaint.py:1862 #: tclCommands/TclCommandCopperClear.py:130 tclCommands/TclCommandPaint.py:129 msgid "Lines" msgstr "Lines" -#: AppDatabase.py:1500 AppDatabase.py:1615 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:230 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217 -#: AppTools/ToolNCC.py:431 AppTools/ToolNCC.py:2265 AppTools/ToolPaint.py:389 -#: AppTools/ToolPaint.py:2052 tclCommands/TclCommandPaint.py:133 -msgid "Combo" -msgstr "Combo" - -#: AppDatabase.py:1508 AppDatabase.py:1626 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:237 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:224 -#: AppTools/ToolNCC.py:439 AppTools/ToolPaint.py:400 +#: FlatCAMDB.py:1489 FlatCAMDB.py:1607 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:237 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:224 +#: flatcamTools/ToolNCC.py:439 flatcamTools/ToolPaint.py:401 msgid "Connect" msgstr "Connect" -#: AppDatabase.py:1512 AppDatabase.py:1629 AppEditors/FlatCAMGeoEditor.py:507 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:239 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:226 -#: AppTools/ToolNCC.py:443 AppTools/ToolPaint.py:403 +#: FlatCAMDB.py:1493 FlatCAMDB.py:1610 flatcamEditors/FlatCAMGeoEditor.py:508 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:239 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:226 +#: flatcamTools/ToolNCC.py:443 flatcamTools/ToolPaint.py:404 msgid "" "Draw lines between resulting\n" "segments to minimize tool lifts." @@ -863,17 +2474,17 @@ msgstr "" "Draw lines between resulting\n" "segments to minimize tool lifts." -#: AppDatabase.py:1518 AppDatabase.py:1633 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:246 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:232 -#: AppTools/ToolNCC.py:449 AppTools/ToolPaint.py:407 +#: FlatCAMDB.py:1499 FlatCAMDB.py:1614 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:246 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:232 +#: flatcamTools/ToolNCC.py:449 flatcamTools/ToolPaint.py:408 msgid "Contour" msgstr "Contour" -#: AppDatabase.py:1522 AppDatabase.py:1636 AppEditors/FlatCAMGeoEditor.py:517 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:248 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:234 -#: AppTools/ToolNCC.py:453 AppTools/ToolPaint.py:410 +#: FlatCAMDB.py:1503 FlatCAMDB.py:1617 flatcamEditors/FlatCAMGeoEditor.py:518 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:248 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:234 +#: flatcamTools/ToolNCC.py:453 flatcamTools/ToolPaint.py:411 msgid "" "Cut around the perimeter of the polygon\n" "to trim rough edges." @@ -881,18 +2492,17 @@ msgstr "" "Cut around the perimeter of the polygon\n" "to trim rough edges." -#: AppDatabase.py:1528 AppEditors/FlatCAMGeoEditor.py:611 -#: AppEditors/FlatCAMGrbEditor.py:5305 AppGUI/ObjectUI.py:143 -#: AppGUI/ObjectUI.py:1394 AppGUI/ObjectUI.py:2256 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:255 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:142 -#: AppTools/ToolEtchCompensation.py:199 AppTools/ToolEtchCompensation.py:207 -#: AppTools/ToolNCC.py:459 AppTools/ToolTransform.py:28 +#: FlatCAMDB.py:1509 flatcamEditors/FlatCAMGeoEditor.py:612 +#: flatcamEditors/FlatCAMGrbEditor.py:5311 flatcamGUI/ObjectUI.py:143 +#: flatcamGUI/ObjectUI.py:1497 flatcamGUI/ObjectUI.py:2326 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:255 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:142 +#: flatcamTools/ToolNCC.py:459 flatcamTools/ToolTransform.py:28 msgid "Offset" msgstr "Offset" -#: AppDatabase.py:1532 AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:257 -#: AppTools/ToolNCC.py:463 +#: FlatCAMDB.py:1513 flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:257 +#: flatcamTools/ToolNCC.py:463 msgid "" "If used, it will add an offset to the copper features.\n" "The copper clearing will finish to a distance\n" @@ -904,9 +2514,9 @@ msgstr "" "from the copper features.\n" "The value can be between 0 and 10 FlatCAM units." -#: AppDatabase.py:1567 AppEditors/FlatCAMGeoEditor.py:452 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:165 -#: AppTools/ToolPaint.py:330 +#: FlatCAMDB.py:1548 flatcamEditors/FlatCAMGeoEditor.py:453 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:165 +#: flatcamTools/ToolPaint.py:331 msgid "" "How much (percentage) of the tool width to overlap each tool pass.\n" "Adjust the value starting with lower values\n" @@ -924,9 +2534,9 @@ msgstr "" "Higher values = slow processing and slow execution on CNC\n" "due of too many paths." -#: AppDatabase.py:1588 AppEditors/FlatCAMGeoEditor.py:472 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:185 -#: AppTools/ToolPaint.py:351 +#: FlatCAMDB.py:1569 flatcamEditors/FlatCAMGeoEditor.py:473 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:185 +#: flatcamTools/ToolPaint.py:352 msgid "" "Distance by which to avoid\n" "the edges of the polygon to\n" @@ -936,8 +2546,8 @@ msgstr "" "the edges of the polygon to\n" "be painted." -#: AppDatabase.py:1603 AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:200 -#: AppTools/ToolPaint.py:366 +#: FlatCAMDB.py:1584 flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:200 +#: flatcamTools/ToolPaint.py:367 msgid "" "Algorithm for painting:\n" "- Standard: Fixed step inwards.\n" @@ -957,17204 +2567,66 @@ msgstr "" "- Combo: In case of failure a new method will be picked from the above\n" "in the order specified." -#: AppDatabase.py:1615 AppDatabase.py:1617 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217 -#: AppTools/ToolPaint.py:389 AppTools/ToolPaint.py:391 -#: AppTools/ToolPaint.py:692 AppTools/ToolPaint.py:697 -#: AppTools/ToolPaint.py:1901 tclCommands/TclCommandPaint.py:131 +#: FlatCAMDB.py:1596 FlatCAMDB.py:1598 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217 +#: flatcamTools/ToolPaint.py:390 flatcamTools/ToolPaint.py:392 +#: flatcamTools/ToolPaint.py:693 flatcamTools/ToolPaint.py:698 +#: flatcamTools/ToolPaint.py:1876 tclCommands/TclCommandPaint.py:131 msgid "Laser_lines" msgstr "Laser_lines" -#: AppDatabase.py:1654 AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:154 -#: AppTools/ToolIsolation.py:323 -msgid "Passes" -msgstr "Passes" +#: FlatCAMDB.py:1596 flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217 +#: flatcamTools/ToolPaint.py:390 flatcamTools/ToolPaint.py:2027 +#: tclCommands/TclCommandPaint.py:133 +msgid "Combo" +msgstr "Combo" -#: AppDatabase.py:1656 AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:156 -#: AppTools/ToolIsolation.py:325 -msgid "" -"Width of the isolation gap in\n" -"number (integer) of tool widths." -msgstr "" -"Width of the isolation gap in\n" -"number (integer) of tool widths." - -#: AppDatabase.py:1669 AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:169 -#: AppTools/ToolIsolation.py:338 -msgid "How much (percentage) of the tool width to overlap each tool pass." -msgstr "How much (percentage) of the tool width to overlap each tool pass." - -#: AppDatabase.py:1702 AppGUI/ObjectUI.py:236 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:201 -#: AppTools/ToolIsolation.py:371 -msgid "Follow" -msgstr "Follow" - -#: AppDatabase.py:1704 AppDatabase.py:1710 AppGUI/ObjectUI.py:237 -#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:45 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:203 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:209 -#: AppTools/ToolIsolation.py:373 AppTools/ToolIsolation.py:379 -msgid "" -"Generate a 'Follow' geometry.\n" -"This means that it will cut through\n" -"the middle of the trace." -msgstr "" -"Generate a 'Follow' geometry.\n" -"This means that it will cut through\n" -"the middle of the trace." - -#: AppDatabase.py:1719 AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:218 -#: AppTools/ToolIsolation.py:388 -msgid "Isolation Type" -msgstr "Isolation Type" - -#: AppDatabase.py:1721 AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:220 -#: AppTools/ToolIsolation.py:390 -msgid "" -"Choose how the isolation will be executed:\n" -"- 'Full' -> complete isolation of polygons\n" -"- 'Ext' -> will isolate only on the outside\n" -"- 'Int' -> will isolate only on the inside\n" -"'Exterior' isolation is almost always possible\n" -"(with the right tool) but 'Interior'\n" -"isolation can be done only when there is an opening\n" -"inside of the polygon (e.g polygon is a 'doughnut' shape)." -msgstr "" -"Choose how the isolation will be executed:\n" -"- 'Full' -> complete isolation of polygons\n" -"- 'Ext' -> will isolate only on the outside\n" -"- 'Int' -> will isolate only on the inside\n" -"'Exterior' isolation is almost always possible\n" -"(with the right tool) but 'Interior'\n" -"isolation can be done only when there is an opening\n" -"inside of the polygon (e.g polygon is a 'doughnut' shape)." - -#: AppDatabase.py:1730 AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:75 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:229 -#: AppTools/ToolIsolation.py:399 -msgid "Full" -msgstr "Full" - -#: AppDatabase.py:1731 AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:230 -#: AppTools/ToolIsolation.py:400 -msgid "Ext" -msgstr "Ext" - -#: AppDatabase.py:1732 AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:231 -#: AppTools/ToolIsolation.py:401 -msgid "Int" -msgstr "Int" - -#: AppDatabase.py:1755 +#: FlatCAMDB.py:1641 msgid "Add Tool in DB" msgstr "Add Tool in DB" -#: AppDatabase.py:1789 +#: FlatCAMDB.py:1675 msgid "Save DB" msgstr "Save DB" -#: AppDatabase.py:1791 +#: FlatCAMDB.py:1677 msgid "Save the Tools Database information's." msgstr "Save the Tools Database information's." -#: AppDatabase.py:1797 -msgid "" -"Insert a new tool in the Tools Table of the\n" -"object/application tool after selecting a tool\n" -"in the Tools Database." -msgstr "" -"Insert a new tool in the Tools Table of the\n" -"object/application tool after selecting a tool\n" -"in the Tools Database." - -#: AppEditors/FlatCAMExcEditor.py:50 AppEditors/FlatCAMExcEditor.py:74 -#: AppEditors/FlatCAMExcEditor.py:168 AppEditors/FlatCAMExcEditor.py:385 -#: AppEditors/FlatCAMExcEditor.py:589 AppEditors/FlatCAMGrbEditor.py:241 -#: AppEditors/FlatCAMGrbEditor.py:248 -msgid "Click to place ..." -msgstr "Click to place ..." - -#: AppEditors/FlatCAMExcEditor.py:58 -msgid "To add a drill first select a tool" -msgstr "To add a drill first select a tool" - -#: AppEditors/FlatCAMExcEditor.py:122 -msgid "Done. Drill added." -msgstr "Done. Drill added." - -#: AppEditors/FlatCAMExcEditor.py:176 -msgid "To add an Drill Array first select a tool in Tool Table" -msgstr "To add an Drill Array first select a tool in Tool Table" - -#: AppEditors/FlatCAMExcEditor.py:192 AppEditors/FlatCAMExcEditor.py:415 -#: AppEditors/FlatCAMExcEditor.py:636 AppEditors/FlatCAMExcEditor.py:1151 -#: AppEditors/FlatCAMExcEditor.py:1178 AppEditors/FlatCAMGrbEditor.py:471 -#: AppEditors/FlatCAMGrbEditor.py:1944 AppEditors/FlatCAMGrbEditor.py:1974 -msgid "Click on target location ..." -msgstr "Click on target location ..." - -#: AppEditors/FlatCAMExcEditor.py:211 -msgid "Click on the Drill Circular Array Start position" -msgstr "Click on the Drill Circular Array Start position" - -#: AppEditors/FlatCAMExcEditor.py:233 AppEditors/FlatCAMExcEditor.py:677 -#: AppEditors/FlatCAMGrbEditor.py:516 -msgid "The value is not Float. Check for comma instead of dot separator." -msgstr "The value is not Float. Check for comma instead of dot separator." - -#: AppEditors/FlatCAMExcEditor.py:237 -msgid "The value is mistyped. Check the value" -msgstr "The value is mistyped. Check the value" - -#: AppEditors/FlatCAMExcEditor.py:336 -msgid "Too many drills for the selected spacing angle." -msgstr "Too many drills for the selected spacing angle." - -#: AppEditors/FlatCAMExcEditor.py:354 -msgid "Done. Drill Array added." -msgstr "Done. Drill Array added." - -#: AppEditors/FlatCAMExcEditor.py:394 -msgid "To add a slot first select a tool" -msgstr "To add a slot first select a tool" - -#: AppEditors/FlatCAMExcEditor.py:454 AppEditors/FlatCAMExcEditor.py:461 -#: AppEditors/FlatCAMExcEditor.py:742 AppEditors/FlatCAMExcEditor.py:749 -msgid "Value is missing or wrong format. Add it and retry." -msgstr "Value is missing or wrong format. Add it and retry." - -#: AppEditors/FlatCAMExcEditor.py:559 -msgid "Done. Adding Slot completed." -msgstr "Done. Adding Slot completed." - -#: AppEditors/FlatCAMExcEditor.py:597 -msgid "To add an Slot Array first select a tool in Tool Table" -msgstr "To add an Slot Array first select a tool in Tool Table" - -#: AppEditors/FlatCAMExcEditor.py:655 -msgid "Click on the Slot Circular Array Start position" -msgstr "Click on the Slot Circular Array Start position" - -#: AppEditors/FlatCAMExcEditor.py:680 AppEditors/FlatCAMGrbEditor.py:519 -msgid "The value is mistyped. Check the value." -msgstr "The value is mistyped. Check the value." - -#: AppEditors/FlatCAMExcEditor.py:859 -msgid "Too many Slots for the selected spacing angle." -msgstr "Too many Slots for the selected spacing angle." - -#: AppEditors/FlatCAMExcEditor.py:882 -msgid "Done. Slot Array added." -msgstr "Done. Slot Array added." - -#: AppEditors/FlatCAMExcEditor.py:904 -msgid "Click on the Drill(s) to resize ..." -msgstr "Click on the Drill(s) to resize ..." - -#: AppEditors/FlatCAMExcEditor.py:934 -msgid "Resize drill(s) failed. Please enter a diameter for resize." -msgstr "Resize drill(s) failed. Please enter a diameter for resize." - -#: AppEditors/FlatCAMExcEditor.py:1112 -msgid "Done. Drill/Slot Resize completed." -msgstr "Done. Drill/Slot Resize completed." - -#: AppEditors/FlatCAMExcEditor.py:1115 -msgid "Cancelled. No drills/slots selected for resize ..." -msgstr "Cancelled. No drills/slots selected for resize ..." - -#: AppEditors/FlatCAMExcEditor.py:1153 AppEditors/FlatCAMGrbEditor.py:1946 -msgid "Click on reference location ..." -msgstr "Click on reference location ..." - -#: AppEditors/FlatCAMExcEditor.py:1210 -msgid "Done. Drill(s) Move completed." -msgstr "Done. Drill(s) Move completed." - -#: AppEditors/FlatCAMExcEditor.py:1318 -msgid "Done. Drill(s) copied." -msgstr "Done. Drill(s) copied." - -#: AppEditors/FlatCAMExcEditor.py:1557 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:26 -msgid "Excellon Editor" -msgstr "Excellon Editor" - -#: AppEditors/FlatCAMExcEditor.py:1564 AppEditors/FlatCAMGrbEditor.py:2469 -msgid "Name:" -msgstr "Name:" - -#: AppEditors/FlatCAMExcEditor.py:1570 AppGUI/ObjectUI.py:540 -#: AppGUI/ObjectUI.py:1362 AppTools/ToolIsolation.py:118 -#: AppTools/ToolNCC.py:120 AppTools/ToolPaint.py:114 -#: AppTools/ToolSolderPaste.py:79 -msgid "Tools Table" -msgstr "Tools Table" - -#: AppEditors/FlatCAMExcEditor.py:1572 AppGUI/ObjectUI.py:542 -msgid "" -"Tools in this Excellon object\n" -"when are used for drilling." -msgstr "" -"Tools in this Excellon object\n" -"when are used for drilling." - -#: AppEditors/FlatCAMExcEditor.py:1584 AppEditors/FlatCAMExcEditor.py:3041 -#: AppGUI/ObjectUI.py:560 AppObjects/FlatCAMExcellon.py:1265 -#: AppObjects/FlatCAMExcellon.py:1368 AppObjects/FlatCAMExcellon.py:1553 -#: AppTools/ToolIsolation.py:130 AppTools/ToolNCC.py:132 -#: AppTools/ToolPaint.py:127 AppTools/ToolPcbWizard.py:76 -#: AppTools/ToolProperties.py:416 AppTools/ToolProperties.py:476 -#: AppTools/ToolSolderPaste.py:90 tclCommands/TclCommandDrillcncjob.py:195 -msgid "Diameter" -msgstr "Diameter" - -#: AppEditors/FlatCAMExcEditor.py:1592 -msgid "Add/Delete Tool" -msgstr "Add/Delete Tool" - -#: AppEditors/FlatCAMExcEditor.py:1594 -msgid "" -"Add/Delete a tool to the tool list\n" -"for this Excellon object." -msgstr "" -"Add/Delete a tool to the tool list\n" -"for this Excellon object." - -#: AppEditors/FlatCAMExcEditor.py:1606 AppGUI/ObjectUI.py:1482 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:57 -msgid "Diameter for the new tool" -msgstr "Diameter for the new tool" - -#: AppEditors/FlatCAMExcEditor.py:1616 -msgid "Add Tool" -msgstr "Add Tool" - -#: AppEditors/FlatCAMExcEditor.py:1618 -msgid "" -"Add a new tool to the tool list\n" -"with the diameter specified above." -msgstr "" -"Add a new tool to the tool list\n" -"with the diameter specified above." - -#: AppEditors/FlatCAMExcEditor.py:1630 -msgid "Delete Tool" -msgstr "Delete Tool" - -#: AppEditors/FlatCAMExcEditor.py:1632 -msgid "" -"Delete a tool in the tool list\n" -"by selecting a row in the tool table." -msgstr "" -"Delete a tool in the tool list\n" -"by selecting a row in the tool table." - -#: AppEditors/FlatCAMExcEditor.py:1650 AppGUI/MainGUI.py:4392 -msgid "Resize Drill(s)" -msgstr "Resize Drill(s)" - -#: AppEditors/FlatCAMExcEditor.py:1652 -msgid "Resize a drill or a selection of drills." -msgstr "Resize a drill or a selection of drills." - -#: AppEditors/FlatCAMExcEditor.py:1659 -msgid "Resize Dia" -msgstr "Resize Dia" - -#: AppEditors/FlatCAMExcEditor.py:1661 -msgid "Diameter to resize to." -msgstr "Diameter to resize to." - -#: AppEditors/FlatCAMExcEditor.py:1672 -msgid "Resize" -msgstr "Resize" - -#: AppEditors/FlatCAMExcEditor.py:1674 -msgid "Resize drill(s)" -msgstr "Resize drill(s)" - -#: AppEditors/FlatCAMExcEditor.py:1699 AppGUI/MainGUI.py:1514 -#: AppGUI/MainGUI.py:4391 -msgid "Add Drill Array" -msgstr "Add Drill Array" - -#: AppEditors/FlatCAMExcEditor.py:1701 -msgid "Add an array of drills (linear or circular array)" -msgstr "Add an array of drills (linear or circular array)" - -#: AppEditors/FlatCAMExcEditor.py:1707 -msgid "" -"Select the type of drills array to create.\n" -"It can be Linear X(Y) or Circular" -msgstr "" -"Select the type of drills array to create.\n" -"It can be Linear X(Y) or Circular" - -#: AppEditors/FlatCAMExcEditor.py:1710 AppEditors/FlatCAMExcEditor.py:1924 -#: AppEditors/FlatCAMGrbEditor.py:2782 -msgid "Linear" -msgstr "Linear" - -#: AppEditors/FlatCAMExcEditor.py:1711 AppEditors/FlatCAMExcEditor.py:1925 -#: AppEditors/FlatCAMGrbEditor.py:2783 -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:52 -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:149 -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:107 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:52 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:151 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:78 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:61 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:70 -#: AppTools/ToolExtractDrills.py:78 AppTools/ToolExtractDrills.py:201 -#: AppTools/ToolFiducials.py:223 AppTools/ToolIsolation.py:207 -#: AppTools/ToolNCC.py:221 AppTools/ToolPaint.py:203 -#: AppTools/ToolPunchGerber.py:89 AppTools/ToolPunchGerber.py:229 -msgid "Circular" -msgstr "Circular" - -#: AppEditors/FlatCAMExcEditor.py:1719 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:68 -msgid "Nr of drills" -msgstr "Nr of drills" - -#: AppEditors/FlatCAMExcEditor.py:1720 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:70 -msgid "Specify how many drills to be in the array." -msgstr "Specify how many drills to be in the array." - -#: AppEditors/FlatCAMExcEditor.py:1738 AppEditors/FlatCAMExcEditor.py:1788 -#: AppEditors/FlatCAMExcEditor.py:1860 AppEditors/FlatCAMExcEditor.py:1953 -#: AppEditors/FlatCAMExcEditor.py:2004 AppEditors/FlatCAMGrbEditor.py:1580 -#: AppEditors/FlatCAMGrbEditor.py:2811 AppEditors/FlatCAMGrbEditor.py:2860 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:178 -msgid "Direction" -msgstr "Direction" - -#: AppEditors/FlatCAMExcEditor.py:1740 AppEditors/FlatCAMExcEditor.py:1955 -#: AppEditors/FlatCAMGrbEditor.py:2813 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:86 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:234 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:123 -msgid "" -"Direction on which the linear array is oriented:\n" -"- 'X' - horizontal axis \n" -"- 'Y' - vertical axis or \n" -"- 'Angle' - a custom angle for the array inclination" -msgstr "" -"Direction on which the linear array is oriented:\n" -"- 'X' - horizontal axis \n" -"- 'Y' - vertical axis or \n" -"- 'Angle' - a custom angle for the array inclination" - -#: AppEditors/FlatCAMExcEditor.py:1747 AppEditors/FlatCAMExcEditor.py:1869 -#: AppEditors/FlatCAMExcEditor.py:1962 AppEditors/FlatCAMGrbEditor.py:2820 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:92 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:187 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:240 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:129 -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:197 -#: AppTools/ToolFilm.py:239 -msgid "X" -msgstr "X" - -#: AppEditors/FlatCAMExcEditor.py:1748 AppEditors/FlatCAMExcEditor.py:1870 -#: AppEditors/FlatCAMExcEditor.py:1963 AppEditors/FlatCAMGrbEditor.py:2821 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:93 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:188 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:241 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:130 -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:198 -#: AppTools/ToolFilm.py:240 -msgid "Y" -msgstr "Y" - -#: AppEditors/FlatCAMExcEditor.py:1749 AppEditors/FlatCAMExcEditor.py:1766 -#: AppEditors/FlatCAMExcEditor.py:1800 AppEditors/FlatCAMExcEditor.py:1871 -#: AppEditors/FlatCAMExcEditor.py:1875 AppEditors/FlatCAMExcEditor.py:1964 -#: AppEditors/FlatCAMExcEditor.py:1982 AppEditors/FlatCAMExcEditor.py:2016 -#: AppEditors/FlatCAMGrbEditor.py:2822 AppEditors/FlatCAMGrbEditor.py:2839 -#: AppEditors/FlatCAMGrbEditor.py:2875 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:94 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:113 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:189 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:194 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:242 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:263 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:131 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:149 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:53 -#: AppTools/ToolDistance.py:120 AppTools/ToolDistanceMin.py:68 -#: AppTools/ToolTransform.py:60 -msgid "Angle" -msgstr "Angle" - -#: AppEditors/FlatCAMExcEditor.py:1753 AppEditors/FlatCAMExcEditor.py:1968 -#: AppEditors/FlatCAMGrbEditor.py:2826 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:100 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:248 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:137 -msgid "Pitch" -msgstr "Pitch" - -#: AppEditors/FlatCAMExcEditor.py:1755 AppEditors/FlatCAMExcEditor.py:1970 -#: AppEditors/FlatCAMGrbEditor.py:2828 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:102 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:250 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:139 -msgid "Pitch = Distance between elements of the array." -msgstr "Pitch = Distance between elements of the array." - -#: AppEditors/FlatCAMExcEditor.py:1768 AppEditors/FlatCAMExcEditor.py:1984 -msgid "" -"Angle at which the linear array is placed.\n" -"The precision is of max 2 decimals.\n" -"Min value is: -360 degrees.\n" -"Max value is: 360.00 degrees." -msgstr "" -"Angle at which the linear array is placed.\n" -"The precision is of max 2 decimals.\n" -"Min value is: -360 degrees.\n" -"Max value is: 360.00 degrees." - -#: AppEditors/FlatCAMExcEditor.py:1789 AppEditors/FlatCAMExcEditor.py:2005 -#: AppEditors/FlatCAMGrbEditor.py:2862 -msgid "" -"Direction for circular array.Can be CW = clockwise or CCW = counter " -"clockwise." -msgstr "" -"Direction for circular array.Can be CW = clockwise or CCW = counter " -"clockwise." - -#: AppEditors/FlatCAMExcEditor.py:1796 AppEditors/FlatCAMExcEditor.py:2012 -#: AppEditors/FlatCAMGrbEditor.py:2870 -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:129 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:136 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:286 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:145 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:171 -msgid "CW" -msgstr "CW" - -#: AppEditors/FlatCAMExcEditor.py:1797 AppEditors/FlatCAMExcEditor.py:2013 -#: AppEditors/FlatCAMGrbEditor.py:2871 -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:130 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:137 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:287 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:146 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:172 -msgid "CCW" -msgstr "CCW" - -#: AppEditors/FlatCAMExcEditor.py:1801 AppEditors/FlatCAMExcEditor.py:2017 -#: AppEditors/FlatCAMGrbEditor.py:2877 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:115 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:145 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:265 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:295 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:151 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:180 -msgid "Angle at which each element in circular array is placed." -msgstr "Angle at which each element in circular array is placed." - -#: AppEditors/FlatCAMExcEditor.py:1835 -msgid "Slot Parameters" -msgstr "Slot Parameters" - -#: AppEditors/FlatCAMExcEditor.py:1837 -msgid "" -"Parameters for adding a slot (hole with oval shape)\n" -"either single or as an part of an array." -msgstr "" -"Parameters for adding a slot (hole with oval shape)\n" -"either single or as an part of an array." - -#: AppEditors/FlatCAMExcEditor.py:1846 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:162 -#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:56 -#: AppTools/ToolCorners.py:136 AppTools/ToolProperties.py:559 -msgid "Length" -msgstr "Length" - -#: AppEditors/FlatCAMExcEditor.py:1848 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:164 -msgid "Length = The length of the slot." -msgstr "Length = The length of the slot." - -#: AppEditors/FlatCAMExcEditor.py:1862 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:180 -msgid "" -"Direction on which the slot is oriented:\n" -"- 'X' - horizontal axis \n" -"- 'Y' - vertical axis or \n" -"- 'Angle' - a custom angle for the slot inclination" -msgstr "" -"Direction on which the slot is oriented:\n" -"- 'X' - horizontal axis \n" -"- 'Y' - vertical axis or \n" -"- 'Angle' - a custom angle for the slot inclination" - -#: AppEditors/FlatCAMExcEditor.py:1877 -msgid "" -"Angle at which the slot is placed.\n" -"The precision is of max 2 decimals.\n" -"Min value is: -360 degrees.\n" -"Max value is: 360.00 degrees." -msgstr "" -"Angle at which the slot is placed.\n" -"The precision is of max 2 decimals.\n" -"Min value is: -360 degrees.\n" -"Max value is: 360.00 degrees." - -#: AppEditors/FlatCAMExcEditor.py:1910 -msgid "Slot Array Parameters" -msgstr "Slot Array Parameters" - -#: AppEditors/FlatCAMExcEditor.py:1912 -msgid "Parameters for the array of slots (linear or circular array)" -msgstr "Parameters for the array of slots (linear or circular array)" - -#: AppEditors/FlatCAMExcEditor.py:1921 -msgid "" -"Select the type of slot array to create.\n" -"It can be Linear X(Y) or Circular" -msgstr "" -"Select the type of slot array to create.\n" -"It can be Linear X(Y) or Circular" - -#: AppEditors/FlatCAMExcEditor.py:1933 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:219 -msgid "Nr of slots" -msgstr "Nr of slots" - -#: AppEditors/FlatCAMExcEditor.py:1934 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:221 -msgid "Specify how many slots to be in the array." -msgstr "Specify how many slots to be in the array." - -#: AppEditors/FlatCAMExcEditor.py:2452 AppObjects/FlatCAMExcellon.py:433 -msgid "Total Drills" -msgstr "Total Drills" - -#: AppEditors/FlatCAMExcEditor.py:2484 AppObjects/FlatCAMExcellon.py:464 -msgid "Total Slots" -msgstr "Total Slots" - -#: AppEditors/FlatCAMExcEditor.py:2559 AppEditors/FlatCAMGeoEditor.py:1075 -#: AppEditors/FlatCAMGeoEditor.py:1116 AppEditors/FlatCAMGeoEditor.py:1144 -#: AppEditors/FlatCAMGeoEditor.py:1172 AppEditors/FlatCAMGeoEditor.py:1216 -#: AppEditors/FlatCAMGeoEditor.py:1251 AppEditors/FlatCAMGeoEditor.py:1279 -#: AppObjects/FlatCAMGeometry.py:664 AppObjects/FlatCAMGeometry.py:1099 -#: AppObjects/FlatCAMGeometry.py:1841 AppObjects/FlatCAMGeometry.py:2491 -#: AppTools/ToolIsolation.py:1493 AppTools/ToolNCC.py:1516 -#: AppTools/ToolPaint.py:1268 AppTools/ToolPaint.py:1439 -#: AppTools/ToolSolderPaste.py:891 AppTools/ToolSolderPaste.py:964 -msgid "Wrong value format entered, use a number." -msgstr "Wrong value format entered, use a number." - -#: AppEditors/FlatCAMExcEditor.py:2570 -msgid "" -"Tool already in the original or actual tool list.\n" -"Save and reedit Excellon if you need to add this tool. " -msgstr "" -"Tool already in the original or actual tool list.\n" -"Save and reedit Excellon if you need to add this tool. " - -#: AppEditors/FlatCAMExcEditor.py:2579 AppGUI/MainGUI.py:3364 -msgid "Added new tool with dia" -msgstr "Added new tool with dia" - -#: AppEditors/FlatCAMExcEditor.py:2612 -msgid "Select a tool in Tool Table" -msgstr "Select a tool in Tool Table" - -#: AppEditors/FlatCAMExcEditor.py:2642 -msgid "Deleted tool with diameter" -msgstr "Deleted tool with diameter" - -#: AppEditors/FlatCAMExcEditor.py:2790 -msgid "Done. Tool edit completed." -msgstr "Done. Tool edit completed." - -#: AppEditors/FlatCAMExcEditor.py:3327 -msgid "There are no Tools definitions in the file. Aborting Excellon creation." -msgstr "" -"There are no Tools definitions in the file. Aborting Excellon creation." - -#: AppEditors/FlatCAMExcEditor.py:3331 -msgid "An internal error has ocurred. See Shell.\n" -msgstr "An internal error has ocurred. See Shell.\n" - -#: AppEditors/FlatCAMExcEditor.py:3336 -msgid "Creating Excellon." -msgstr "Creating Excellon." - -#: AppEditors/FlatCAMExcEditor.py:3350 -msgid "Excellon editing finished." -msgstr "Excellon editing finished." - -#: AppEditors/FlatCAMExcEditor.py:3367 -msgid "Cancelled. There is no Tool/Drill selected" -msgstr "Cancelled. There is no Tool/Drill selected" - -#: AppEditors/FlatCAMExcEditor.py:3601 AppEditors/FlatCAMExcEditor.py:3609 -#: AppEditors/FlatCAMGeoEditor.py:4343 AppEditors/FlatCAMGeoEditor.py:4357 -#: AppEditors/FlatCAMGrbEditor.py:1085 AppEditors/FlatCAMGrbEditor.py:1312 -#: AppEditors/FlatCAMGrbEditor.py:1497 AppEditors/FlatCAMGrbEditor.py:1766 -#: AppEditors/FlatCAMGrbEditor.py:4609 AppEditors/FlatCAMGrbEditor.py:4626 -#: AppGUI/MainGUI.py:2711 AppGUI/MainGUI.py:2723 -#: AppTools/ToolAlignObjects.py:393 AppTools/ToolAlignObjects.py:415 -#: App_Main.py:4677 App_Main.py:4831 -msgid "Done." -msgstr "Done." - -#: AppEditors/FlatCAMExcEditor.py:3984 -msgid "Done. Drill(s) deleted." -msgstr "Done. Drill(s) deleted." - -#: AppEditors/FlatCAMExcEditor.py:4057 AppEditors/FlatCAMExcEditor.py:4067 -#: AppEditors/FlatCAMGrbEditor.py:5057 -msgid "Click on the circular array Center position" -msgstr "Click on the circular array Center position" - -#: AppEditors/FlatCAMGeoEditor.py:84 -msgid "Buffer distance:" -msgstr "Buffer distance:" - -#: AppEditors/FlatCAMGeoEditor.py:85 -msgid "Buffer corner:" -msgstr "Buffer corner:" - -#: AppEditors/FlatCAMGeoEditor.py:87 -msgid "" -"There are 3 types of corners:\n" -" - 'Round': the corner is rounded for exterior buffer.\n" -" - 'Square': the corner is met in a sharp angle for exterior buffer.\n" -" - 'Beveled': the corner is a line that directly connects the features " -"meeting in the corner" -msgstr "" -"There are 3 types of corners:\n" -" - 'Round': the corner is rounded for exterior buffer.\n" -" - 'Square': the corner is met in a sharp angle for exterior buffer.\n" -" - 'Beveled': the corner is a line that directly connects the features " -"meeting in the corner" - -#: AppEditors/FlatCAMGeoEditor.py:93 AppEditors/FlatCAMGrbEditor.py:2638 -msgid "Round" -msgstr "Round" - -#: AppEditors/FlatCAMGeoEditor.py:94 AppEditors/FlatCAMGrbEditor.py:2639 -#: AppGUI/ObjectUI.py:1149 AppGUI/ObjectUI.py:2004 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:225 -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:68 -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:175 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:68 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:177 -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:143 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:298 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:327 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:291 -#: AppTools/ToolExtractDrills.py:94 AppTools/ToolExtractDrills.py:227 -#: AppTools/ToolIsolation.py:545 AppTools/ToolNCC.py:583 -#: AppTools/ToolPaint.py:526 AppTools/ToolPunchGerber.py:105 -#: AppTools/ToolPunchGerber.py:255 AppTools/ToolQRCode.py:207 -msgid "Square" -msgstr "Square" - -#: AppEditors/FlatCAMGeoEditor.py:95 AppEditors/FlatCAMGrbEditor.py:2640 -msgid "Beveled" -msgstr "Beveled" - -#: AppEditors/FlatCAMGeoEditor.py:102 -msgid "Buffer Interior" -msgstr "Buffer Interior" - -#: AppEditors/FlatCAMGeoEditor.py:104 -msgid "Buffer Exterior" -msgstr "Buffer Exterior" - -#: AppEditors/FlatCAMGeoEditor.py:110 -msgid "Full Buffer" -msgstr "Full Buffer" - -#: AppEditors/FlatCAMGeoEditor.py:131 AppEditors/FlatCAMGeoEditor.py:3016 -#: AppGUI/MainGUI.py:4301 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:191 -msgid "Buffer Tool" -msgstr "Buffer Tool" - -#: AppEditors/FlatCAMGeoEditor.py:143 AppEditors/FlatCAMGeoEditor.py:160 -#: AppEditors/FlatCAMGeoEditor.py:177 AppEditors/FlatCAMGeoEditor.py:3035 -#: AppEditors/FlatCAMGeoEditor.py:3063 AppEditors/FlatCAMGeoEditor.py:3091 -#: AppEditors/FlatCAMGrbEditor.py:5110 -msgid "Buffer distance value is missing or wrong format. Add it and retry." -msgstr "Buffer distance value is missing or wrong format. Add it and retry." - -#: AppEditors/FlatCAMGeoEditor.py:241 -msgid "Font" -msgstr "Font" - -#: AppEditors/FlatCAMGeoEditor.py:322 AppGUI/MainGUI.py:1452 -msgid "Text" -msgstr "Text" - -#: AppEditors/FlatCAMGeoEditor.py:348 -msgid "Text Tool" -msgstr "Text Tool" - -#: AppEditors/FlatCAMGeoEditor.py:404 AppGUI/MainGUI.py:502 -#: AppGUI/MainGUI.py:1199 AppGUI/ObjectUI.py:597 AppGUI/ObjectUI.py:1564 -#: AppObjects/FlatCAMExcellon.py:852 AppObjects/FlatCAMExcellon.py:1242 -#: AppObjects/FlatCAMGeometry.py:825 AppTools/ToolIsolation.py:313 -#: AppTools/ToolIsolation.py:1171 AppTools/ToolNCC.py:331 -#: AppTools/ToolNCC.py:797 AppTools/ToolPaint.py:313 AppTools/ToolPaint.py:766 -msgid "Tool" -msgstr "Tool" - -#: AppEditors/FlatCAMGeoEditor.py:438 -msgid "Tool dia" -msgstr "Tool dia" - -#: AppEditors/FlatCAMGeoEditor.py:440 -msgid "Diameter of the tool to be used in the operation." -msgstr "Diameter of the tool to be used in the operation." - -#: AppEditors/FlatCAMGeoEditor.py:486 -msgid "" -"Algorithm to paint the polygons:\n" -"- Standard: Fixed step inwards.\n" -"- Seed-based: Outwards from seed.\n" -"- Line-based: Parallel lines." -msgstr "" -"Algorithm to paint the polygons:\n" -"- Standard: Fixed step inwards.\n" -"- Seed-based: Outwards from seed.\n" -"- Line-based: Parallel lines." - -#: AppEditors/FlatCAMGeoEditor.py:505 -msgid "Connect:" -msgstr "Connect:" - -#: AppEditors/FlatCAMGeoEditor.py:515 -msgid "Contour:" -msgstr "Contour:" - -#: AppEditors/FlatCAMGeoEditor.py:528 AppGUI/MainGUI.py:1456 -msgid "Paint" -msgstr "Paint" - -#: AppEditors/FlatCAMGeoEditor.py:546 AppGUI/MainGUI.py:912 -#: AppGUI/MainGUI.py:1944 AppGUI/ObjectUI.py:2069 AppTools/ToolPaint.py:42 -#: AppTools/ToolPaint.py:737 -msgid "Paint Tool" -msgstr "Paint Tool" - -#: AppEditors/FlatCAMGeoEditor.py:582 AppEditors/FlatCAMGeoEditor.py:1054 -#: AppEditors/FlatCAMGeoEditor.py:3023 AppEditors/FlatCAMGeoEditor.py:3051 -#: AppEditors/FlatCAMGeoEditor.py:3079 AppEditors/FlatCAMGeoEditor.py:4496 -#: AppEditors/FlatCAMGrbEditor.py:5761 -msgid "Cancelled. No shape selected." -msgstr "Cancelled. No shape selected." - -#: AppEditors/FlatCAMGeoEditor.py:595 AppEditors/FlatCAMGeoEditor.py:3041 -#: AppEditors/FlatCAMGeoEditor.py:3069 AppEditors/FlatCAMGeoEditor.py:3097 -#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:69 -#: AppTools/ToolProperties.py:117 AppTools/ToolProperties.py:162 -msgid "Tools" -msgstr "Tools" - -#: AppEditors/FlatCAMGeoEditor.py:606 AppEditors/FlatCAMGeoEditor.py:990 -#: AppEditors/FlatCAMGrbEditor.py:5300 AppEditors/FlatCAMGrbEditor.py:5697 -#: AppGUI/MainGUI.py:935 AppGUI/MainGUI.py:1967 AppTools/ToolTransform.py:460 -msgid "Transform Tool" -msgstr "Transform Tool" - -#: AppEditors/FlatCAMGeoEditor.py:607 AppEditors/FlatCAMGeoEditor.py:672 -#: AppEditors/FlatCAMGrbEditor.py:5301 AppEditors/FlatCAMGrbEditor.py:5366 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:45 -#: AppTools/ToolTransform.py:24 AppTools/ToolTransform.py:466 -msgid "Rotate" -msgstr "Rotate" - -#: AppEditors/FlatCAMGeoEditor.py:608 AppEditors/FlatCAMGrbEditor.py:5302 -#: AppTools/ToolTransform.py:25 -msgid "Skew/Shear" -msgstr "Skew/Shear" - -#: AppEditors/FlatCAMGeoEditor.py:609 AppEditors/FlatCAMGrbEditor.py:2687 -#: AppEditors/FlatCAMGrbEditor.py:5303 AppGUI/MainGUI.py:1057 -#: AppGUI/MainGUI.py:1499 AppGUI/MainGUI.py:2089 AppGUI/MainGUI.py:4513 -#: AppGUI/ObjectUI.py:125 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:95 -#: AppTools/ToolTransform.py:26 -msgid "Scale" -msgstr "Scale" - -#: AppEditors/FlatCAMGeoEditor.py:610 AppEditors/FlatCAMGrbEditor.py:5304 -#: AppTools/ToolTransform.py:27 -msgid "Mirror (Flip)" -msgstr "Mirror (Flip)" - -#: AppEditors/FlatCAMGeoEditor.py:624 AppEditors/FlatCAMGrbEditor.py:5318 -#: AppGUI/MainGUI.py:844 AppGUI/MainGUI.py:1878 -msgid "Editor" -msgstr "Editor" - -#: AppEditors/FlatCAMGeoEditor.py:656 AppEditors/FlatCAMGrbEditor.py:5350 -msgid "Angle:" -msgstr "Angle:" - -#: AppEditors/FlatCAMGeoEditor.py:658 AppEditors/FlatCAMGrbEditor.py:5352 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:55 -#: AppTools/ToolTransform.py:62 -msgid "" -"Angle for Rotation action, in degrees.\n" -"Float number between -360 and 359.\n" -"Positive numbers for CW motion.\n" -"Negative numbers for CCW motion." -msgstr "" -"Angle for Rotation action, in degrees.\n" -"Float number between -360 and 359.\n" -"Positive numbers for CW motion.\n" -"Negative numbers for CCW motion." - -#: AppEditors/FlatCAMGeoEditor.py:674 AppEditors/FlatCAMGrbEditor.py:5368 -msgid "" -"Rotate the selected shape(s).\n" -"The point of reference is the middle of\n" -"the bounding box for all selected shapes." -msgstr "" -"Rotate the selected shape(s).\n" -"The point of reference is the middle of\n" -"the bounding box for all selected shapes." - -#: AppEditors/FlatCAMGeoEditor.py:697 AppEditors/FlatCAMGrbEditor.py:5391 -msgid "Angle X:" -msgstr "Angle X:" - -#: AppEditors/FlatCAMGeoEditor.py:699 AppEditors/FlatCAMGeoEditor.py:719 -#: AppEditors/FlatCAMGrbEditor.py:5393 AppEditors/FlatCAMGrbEditor.py:5413 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:74 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:88 -#: AppTools/ToolCalibration.py:505 AppTools/ToolCalibration.py:518 -msgid "" -"Angle for Skew action, in degrees.\n" -"Float number between -360 and 359." -msgstr "" -"Angle for Skew action, in degrees.\n" -"Float number between -360 and 359." - -#: AppEditors/FlatCAMGeoEditor.py:710 AppEditors/FlatCAMGrbEditor.py:5404 -#: AppTools/ToolTransform.py:467 -msgid "Skew X" -msgstr "Skew X" - -#: AppEditors/FlatCAMGeoEditor.py:712 AppEditors/FlatCAMGeoEditor.py:732 -#: AppEditors/FlatCAMGrbEditor.py:5406 AppEditors/FlatCAMGrbEditor.py:5426 -msgid "" -"Skew/shear the selected shape(s).\n" -"The point of reference is the middle of\n" -"the bounding box for all selected shapes." -msgstr "" -"Skew/shear the selected shape(s).\n" -"The point of reference is the middle of\n" -"the bounding box for all selected shapes." - -#: AppEditors/FlatCAMGeoEditor.py:717 AppEditors/FlatCAMGrbEditor.py:5411 -msgid "Angle Y:" -msgstr "Angle Y:" - -#: AppEditors/FlatCAMGeoEditor.py:730 AppEditors/FlatCAMGrbEditor.py:5424 -#: AppTools/ToolTransform.py:468 -msgid "Skew Y" -msgstr "Skew Y" - -#: AppEditors/FlatCAMGeoEditor.py:758 AppEditors/FlatCAMGrbEditor.py:5452 -msgid "Factor X:" -msgstr "Factor X:" - -#: AppEditors/FlatCAMGeoEditor.py:760 AppEditors/FlatCAMGrbEditor.py:5454 -#: AppTools/ToolCalibration.py:469 -msgid "Factor for Scale action over X axis." -msgstr "Factor for Scale action over X axis." - -#: AppEditors/FlatCAMGeoEditor.py:770 AppEditors/FlatCAMGrbEditor.py:5464 -#: AppTools/ToolTransform.py:469 -msgid "Scale X" -msgstr "Scale X" - -#: AppEditors/FlatCAMGeoEditor.py:772 AppEditors/FlatCAMGeoEditor.py:791 -#: AppEditors/FlatCAMGrbEditor.py:5466 AppEditors/FlatCAMGrbEditor.py:5485 -msgid "" -"Scale the selected shape(s).\n" -"The point of reference depends on \n" -"the Scale reference checkbox state." -msgstr "" -"Scale the selected shape(s).\n" -"The point of reference depends on \n" -"the Scale reference checkbox state." - -#: AppEditors/FlatCAMGeoEditor.py:777 AppEditors/FlatCAMGrbEditor.py:5471 -msgid "Factor Y:" -msgstr "Factor Y:" - -#: AppEditors/FlatCAMGeoEditor.py:779 AppEditors/FlatCAMGrbEditor.py:5473 -#: AppTools/ToolCalibration.py:481 -msgid "Factor for Scale action over Y axis." -msgstr "Factor for Scale action over Y axis." - -#: AppEditors/FlatCAMGeoEditor.py:789 AppEditors/FlatCAMGrbEditor.py:5483 -#: AppTools/ToolTransform.py:470 -msgid "Scale Y" -msgstr "Scale Y" - -#: AppEditors/FlatCAMGeoEditor.py:798 AppEditors/FlatCAMGrbEditor.py:5492 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:124 -#: AppTools/ToolTransform.py:189 -msgid "Link" -msgstr "Link" - -#: AppEditors/FlatCAMGeoEditor.py:800 AppEditors/FlatCAMGrbEditor.py:5494 -msgid "" -"Scale the selected shape(s)\n" -"using the Scale Factor X for both axis." -msgstr "" -"Scale the selected shape(s)\n" -"using the Scale Factor X for both axis." - -#: AppEditors/FlatCAMGeoEditor.py:806 AppEditors/FlatCAMGrbEditor.py:5500 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:132 -#: AppTools/ToolTransform.py:196 -msgid "Scale Reference" -msgstr "Scale Reference" - -#: AppEditors/FlatCAMGeoEditor.py:808 AppEditors/FlatCAMGrbEditor.py:5502 -msgid "" -"Scale the selected shape(s)\n" -"using the origin reference when checked,\n" -"and the center of the biggest bounding box\n" -"of the selected shapes when unchecked." -msgstr "" -"Scale the selected shape(s)\n" -"using the origin reference when checked,\n" -"and the center of the biggest bounding box\n" -"of the selected shapes when unchecked." - -#: AppEditors/FlatCAMGeoEditor.py:836 AppEditors/FlatCAMGrbEditor.py:5531 -msgid "Value X:" -msgstr "Value X:" - -#: AppEditors/FlatCAMGeoEditor.py:838 AppEditors/FlatCAMGrbEditor.py:5533 -msgid "Value for Offset action on X axis." -msgstr "Value for Offset action on X axis." - -#: AppEditors/FlatCAMGeoEditor.py:848 AppEditors/FlatCAMGrbEditor.py:5543 -#: AppTools/ToolTransform.py:473 -msgid "Offset X" -msgstr "Offset X" - -#: AppEditors/FlatCAMGeoEditor.py:850 AppEditors/FlatCAMGeoEditor.py:870 -#: AppEditors/FlatCAMGrbEditor.py:5545 AppEditors/FlatCAMGrbEditor.py:5565 -msgid "" -"Offset the selected shape(s).\n" -"The point of reference is the middle of\n" -"the bounding box for all selected shapes.\n" -msgstr "" -"Offset the selected shape(s).\n" -"The point of reference is the middle of\n" -"the bounding box for all selected shapes.\n" - -#: AppEditors/FlatCAMGeoEditor.py:856 AppEditors/FlatCAMGrbEditor.py:5551 -msgid "Value Y:" -msgstr "Value Y:" - -#: AppEditors/FlatCAMGeoEditor.py:858 AppEditors/FlatCAMGrbEditor.py:5553 -msgid "Value for Offset action on Y axis." -msgstr "Value for Offset action on Y axis." - -#: AppEditors/FlatCAMGeoEditor.py:868 AppEditors/FlatCAMGrbEditor.py:5563 -#: AppTools/ToolTransform.py:474 -msgid "Offset Y" -msgstr "Offset Y" - -#: AppEditors/FlatCAMGeoEditor.py:899 AppEditors/FlatCAMGrbEditor.py:5594 -#: AppTools/ToolTransform.py:475 -msgid "Flip on X" -msgstr "Flip on X" - -#: AppEditors/FlatCAMGeoEditor.py:901 AppEditors/FlatCAMGeoEditor.py:908 -#: AppEditors/FlatCAMGrbEditor.py:5596 AppEditors/FlatCAMGrbEditor.py:5603 -msgid "" -"Flip the selected shape(s) over the X axis.\n" -"Does not create a new shape." -msgstr "" -"Flip the selected shape(s) over the X axis.\n" -"Does not create a new shape." - -#: AppEditors/FlatCAMGeoEditor.py:906 AppEditors/FlatCAMGrbEditor.py:5601 -#: AppTools/ToolTransform.py:476 -msgid "Flip on Y" -msgstr "Flip on Y" - -#: AppEditors/FlatCAMGeoEditor.py:914 AppEditors/FlatCAMGrbEditor.py:5609 -msgid "Ref Pt" -msgstr "Ref Pt" - -#: AppEditors/FlatCAMGeoEditor.py:916 AppEditors/FlatCAMGrbEditor.py:5611 -msgid "" -"Flip the selected shape(s)\n" -"around the point in Point Entry Field.\n" -"\n" -"The point coordinates can be captured by\n" -"left click on canvas together with pressing\n" -"SHIFT key. \n" -"Then click Add button to insert coordinates.\n" -"Or enter the coords in format (x, y) in the\n" -"Point Entry field and click Flip on X(Y)" -msgstr "" -"Flip the selected shape(s)\n" -"around the point in Point Entry Field.\n" -"\n" -"The point coordinates can be captured by\n" -"left click on canvas together with pressing\n" -"SHIFT key. \n" -"Then click Add button to insert coordinates.\n" -"Or enter the coords in format (x, y) in the\n" -"Point Entry field and click Flip on X(Y)" - -#: AppEditors/FlatCAMGeoEditor.py:928 AppEditors/FlatCAMGrbEditor.py:5623 -msgid "Point:" -msgstr "Point:" - -#: AppEditors/FlatCAMGeoEditor.py:930 AppEditors/FlatCAMGrbEditor.py:5625 -#: AppTools/ToolTransform.py:299 -msgid "" -"Coordinates in format (x, y) used as reference for mirroring.\n" -"The 'x' in (x, y) will be used when using Flip on X and\n" -"the 'y' in (x, y) will be used when using Flip on Y." -msgstr "" -"Coordinates in format (x, y) used as reference for mirroring.\n" -"The 'x' in (x, y) will be used when using Flip on X and\n" -"the 'y' in (x, y) will be used when using Flip on Y." - -#: AppEditors/FlatCAMGeoEditor.py:938 AppEditors/FlatCAMGrbEditor.py:2590 -#: AppEditors/FlatCAMGrbEditor.py:5635 AppGUI/ObjectUI.py:1494 -#: AppTools/ToolDblSided.py:192 AppTools/ToolDblSided.py:425 -#: AppTools/ToolIsolation.py:276 AppTools/ToolIsolation.py:610 -#: AppTools/ToolNCC.py:294 AppTools/ToolNCC.py:631 AppTools/ToolPaint.py:276 -#: AppTools/ToolPaint.py:675 AppTools/ToolSolderPaste.py:127 -#: AppTools/ToolSolderPaste.py:605 AppTools/ToolTransform.py:478 -#: App_Main.py:5670 -msgid "Add" -msgstr "Add" - -#: AppEditors/FlatCAMGeoEditor.py:940 AppEditors/FlatCAMGrbEditor.py:5637 -#: AppTools/ToolTransform.py:309 -msgid "" -"The point coordinates can be captured by\n" -"left click on canvas together with pressing\n" -"SHIFT key. Then click Add button to insert." -msgstr "" -"The point coordinates can be captured by\n" -"left click on canvas together with pressing\n" -"SHIFT key. Then click Add button to insert." - -#: AppEditors/FlatCAMGeoEditor.py:1303 AppEditors/FlatCAMGrbEditor.py:5945 -msgid "No shape selected. Please Select a shape to rotate!" -msgstr "No shape selected. Please Select a shape to rotate!" - -#: AppEditors/FlatCAMGeoEditor.py:1306 AppEditors/FlatCAMGrbEditor.py:5948 -#: AppTools/ToolTransform.py:679 -msgid "Appying Rotate" -msgstr "Appying Rotate" - -#: AppEditors/FlatCAMGeoEditor.py:1332 AppEditors/FlatCAMGrbEditor.py:5980 -msgid "Done. Rotate completed." -msgstr "Done. Rotate completed." - -#: AppEditors/FlatCAMGeoEditor.py:1334 -msgid "Rotation action was not executed" -msgstr "Rotation action was not executed" - -#: AppEditors/FlatCAMGeoEditor.py:1353 AppEditors/FlatCAMGrbEditor.py:5999 -msgid "No shape selected. Please Select a shape to flip!" -msgstr "No shape selected. Please Select a shape to flip!" - -#: AppEditors/FlatCAMGeoEditor.py:1356 AppEditors/FlatCAMGrbEditor.py:6002 -#: AppTools/ToolTransform.py:728 -msgid "Applying Flip" -msgstr "Applying Flip" - -#: AppEditors/FlatCAMGeoEditor.py:1385 AppEditors/FlatCAMGrbEditor.py:6040 -#: AppTools/ToolTransform.py:769 -msgid "Flip on the Y axis done" -msgstr "Flip on the Y axis done" - -#: AppEditors/FlatCAMGeoEditor.py:1389 AppEditors/FlatCAMGrbEditor.py:6049 -#: AppTools/ToolTransform.py:778 -msgid "Flip on the X axis done" -msgstr "Flip on the X axis done" - -#: AppEditors/FlatCAMGeoEditor.py:1397 -msgid "Flip action was not executed" -msgstr "Flip action was not executed" - -#: AppEditors/FlatCAMGeoEditor.py:1415 AppEditors/FlatCAMGrbEditor.py:6069 -msgid "No shape selected. Please Select a shape to shear/skew!" -msgstr "No shape selected. Please Select a shape to shear/skew!" - -#: AppEditors/FlatCAMGeoEditor.py:1418 AppEditors/FlatCAMGrbEditor.py:6072 -#: AppTools/ToolTransform.py:801 -msgid "Applying Skew" -msgstr "Applying Skew" - -#: AppEditors/FlatCAMGeoEditor.py:1441 AppEditors/FlatCAMGrbEditor.py:6106 -msgid "Skew on the X axis done" -msgstr "Skew on the X axis done" - -#: AppEditors/FlatCAMGeoEditor.py:1443 AppEditors/FlatCAMGrbEditor.py:6108 -msgid "Skew on the Y axis done" -msgstr "Skew on the Y axis done" - -#: AppEditors/FlatCAMGeoEditor.py:1446 -msgid "Skew action was not executed" -msgstr "Skew action was not executed" - -#: AppEditors/FlatCAMGeoEditor.py:1468 AppEditors/FlatCAMGrbEditor.py:6130 -msgid "No shape selected. Please Select a shape to scale!" -msgstr "No shape selected. Please Select a shape to scale!" - -#: AppEditors/FlatCAMGeoEditor.py:1471 AppEditors/FlatCAMGrbEditor.py:6133 -#: AppTools/ToolTransform.py:847 -msgid "Applying Scale" -msgstr "Applying Scale" - -#: AppEditors/FlatCAMGeoEditor.py:1503 AppEditors/FlatCAMGrbEditor.py:6170 -msgid "Scale on the X axis done" -msgstr "Scale on the X axis done" - -#: AppEditors/FlatCAMGeoEditor.py:1505 AppEditors/FlatCAMGrbEditor.py:6172 -msgid "Scale on the Y axis done" -msgstr "Scale on the Y axis done" - -#: AppEditors/FlatCAMGeoEditor.py:1507 -msgid "Scale action was not executed" -msgstr "Scale action was not executed" - -#: AppEditors/FlatCAMGeoEditor.py:1522 AppEditors/FlatCAMGrbEditor.py:6189 -msgid "No shape selected. Please Select a shape to offset!" -msgstr "No shape selected. Please Select a shape to offset!" - -#: AppEditors/FlatCAMGeoEditor.py:1525 AppEditors/FlatCAMGrbEditor.py:6192 -#: AppTools/ToolTransform.py:897 -msgid "Applying Offset" -msgstr "Applying Offset" - -#: AppEditors/FlatCAMGeoEditor.py:1535 AppEditors/FlatCAMGrbEditor.py:6213 -msgid "Offset on the X axis done" -msgstr "Offset on the X axis done" - -#: AppEditors/FlatCAMGeoEditor.py:1537 AppEditors/FlatCAMGrbEditor.py:6215 -msgid "Offset on the Y axis done" -msgstr "Offset on the Y axis done" - -#: AppEditors/FlatCAMGeoEditor.py:1540 -msgid "Offset action was not executed" -msgstr "Offset action was not executed" - -#: AppEditors/FlatCAMGeoEditor.py:1544 AppEditors/FlatCAMGrbEditor.py:6222 -msgid "Rotate ..." -msgstr "Rotate ..." - -#: AppEditors/FlatCAMGeoEditor.py:1545 AppEditors/FlatCAMGeoEditor.py:1600 -#: AppEditors/FlatCAMGeoEditor.py:1617 AppEditors/FlatCAMGrbEditor.py:6223 -#: AppEditors/FlatCAMGrbEditor.py:6272 AppEditors/FlatCAMGrbEditor.py:6287 -msgid "Enter an Angle Value (degrees)" -msgstr "Enter an Angle Value (degrees)" - -#: AppEditors/FlatCAMGeoEditor.py:1554 AppEditors/FlatCAMGrbEditor.py:6231 -msgid "Geometry shape rotate done" -msgstr "Geometry shape rotate done" - -#: AppEditors/FlatCAMGeoEditor.py:1558 AppEditors/FlatCAMGrbEditor.py:6234 -msgid "Geometry shape rotate cancelled" -msgstr "Geometry shape rotate cancelled" - -#: AppEditors/FlatCAMGeoEditor.py:1563 AppEditors/FlatCAMGrbEditor.py:6239 -msgid "Offset on X axis ..." -msgstr "Offset on X axis ..." - -#: AppEditors/FlatCAMGeoEditor.py:1564 AppEditors/FlatCAMGeoEditor.py:1583 -#: AppEditors/FlatCAMGrbEditor.py:6240 AppEditors/FlatCAMGrbEditor.py:6257 -msgid "Enter a distance Value" -msgstr "Enter a distance Value" - -#: AppEditors/FlatCAMGeoEditor.py:1573 AppEditors/FlatCAMGrbEditor.py:6248 -msgid "Geometry shape offset on X axis done" -msgstr "Geometry shape offset on X axis done" - -#: AppEditors/FlatCAMGeoEditor.py:1577 AppEditors/FlatCAMGrbEditor.py:6251 -msgid "Geometry shape offset X cancelled" -msgstr "Geometry shape offset X cancelled" - -#: AppEditors/FlatCAMGeoEditor.py:1582 AppEditors/FlatCAMGrbEditor.py:6256 -msgid "Offset on Y axis ..." -msgstr "Offset on Y axis ..." - -#: AppEditors/FlatCAMGeoEditor.py:1592 AppEditors/FlatCAMGrbEditor.py:6265 -msgid "Geometry shape offset on Y axis done" -msgstr "Geometry shape offset on Y axis done" - -#: AppEditors/FlatCAMGeoEditor.py:1596 -msgid "Geometry shape offset on Y axis canceled" -msgstr "Geometry shape offset on Y axis canceled" - -#: AppEditors/FlatCAMGeoEditor.py:1599 AppEditors/FlatCAMGrbEditor.py:6271 -msgid "Skew on X axis ..." -msgstr "Skew on X axis ..." - -#: AppEditors/FlatCAMGeoEditor.py:1609 AppEditors/FlatCAMGrbEditor.py:6280 -msgid "Geometry shape skew on X axis done" -msgstr "Geometry shape skew on X axis done" - -#: AppEditors/FlatCAMGeoEditor.py:1613 -msgid "Geometry shape skew on X axis canceled" -msgstr "Geometry shape skew on X axis canceled" - -#: AppEditors/FlatCAMGeoEditor.py:1616 AppEditors/FlatCAMGrbEditor.py:6286 -msgid "Skew on Y axis ..." -msgstr "Skew on Y axis ..." - -#: AppEditors/FlatCAMGeoEditor.py:1626 AppEditors/FlatCAMGrbEditor.py:6295 -msgid "Geometry shape skew on Y axis done" -msgstr "Geometry shape skew on Y axis done" - -#: AppEditors/FlatCAMGeoEditor.py:1630 -msgid "Geometry shape skew on Y axis canceled" -msgstr "Geometry shape skew on Y axis canceled" - -#: AppEditors/FlatCAMGeoEditor.py:2007 AppEditors/FlatCAMGeoEditor.py:2078 -#: AppEditors/FlatCAMGrbEditor.py:1444 AppEditors/FlatCAMGrbEditor.py:1522 -msgid "Click on Center point ..." -msgstr "Click on Center point ..." - -#: AppEditors/FlatCAMGeoEditor.py:2020 AppEditors/FlatCAMGrbEditor.py:1454 -msgid "Click on Perimeter point to complete ..." -msgstr "Click on Perimeter point to complete ..." - -#: AppEditors/FlatCAMGeoEditor.py:2052 -msgid "Done. Adding Circle completed." -msgstr "Done. Adding Circle completed." - -#: AppEditors/FlatCAMGeoEditor.py:2106 AppEditors/FlatCAMGrbEditor.py:1555 -msgid "Click on Start point ..." -msgstr "Click on Start point ..." - -#: AppEditors/FlatCAMGeoEditor.py:2108 AppEditors/FlatCAMGrbEditor.py:1557 -msgid "Click on Point3 ..." -msgstr "Click on Point3 ..." - -#: AppEditors/FlatCAMGeoEditor.py:2110 AppEditors/FlatCAMGrbEditor.py:1559 -msgid "Click on Stop point ..." -msgstr "Click on Stop point ..." - -#: AppEditors/FlatCAMGeoEditor.py:2115 AppEditors/FlatCAMGrbEditor.py:1564 -msgid "Click on Stop point to complete ..." -msgstr "Click on Stop point to complete ..." - -#: AppEditors/FlatCAMGeoEditor.py:2117 AppEditors/FlatCAMGrbEditor.py:1566 -msgid "Click on Point2 to complete ..." -msgstr "Click on Point2 to complete ..." - -#: AppEditors/FlatCAMGeoEditor.py:2119 AppEditors/FlatCAMGrbEditor.py:1568 -msgid "Click on Center point to complete ..." -msgstr "Click on Center point to complete ..." - -#: AppEditors/FlatCAMGeoEditor.py:2131 -#, python-format -msgid "Direction: %s" -msgstr "Direction: %s" - -#: AppEditors/FlatCAMGeoEditor.py:2145 AppEditors/FlatCAMGrbEditor.py:1594 -msgid "Mode: Start -> Stop -> Center. Click on Start point ..." -msgstr "Mode: Start -> Stop -> Center. Click on Start point ..." - -#: AppEditors/FlatCAMGeoEditor.py:2148 AppEditors/FlatCAMGrbEditor.py:1597 -msgid "Mode: Point1 -> Point3 -> Point2. Click on Point1 ..." -msgstr "Mode: Point1 -> Point3 -> Point2. Click on Point1 ..." - -#: AppEditors/FlatCAMGeoEditor.py:2151 AppEditors/FlatCAMGrbEditor.py:1600 -msgid "Mode: Center -> Start -> Stop. Click on Center point ..." -msgstr "Mode: Center -> Start -> Stop. Click on Center point ..." - -#: AppEditors/FlatCAMGeoEditor.py:2292 -msgid "Done. Arc completed." -msgstr "Done. Arc completed." - -#: AppEditors/FlatCAMGeoEditor.py:2323 AppEditors/FlatCAMGeoEditor.py:2396 -msgid "Click on 1st corner ..." -msgstr "Click on 1st corner ..." - -#: AppEditors/FlatCAMGeoEditor.py:2335 -msgid "Click on opposite corner to complete ..." -msgstr "Click on opposite corner to complete ..." - -#: AppEditors/FlatCAMGeoEditor.py:2365 -msgid "Done. Rectangle completed." -msgstr "Done. Rectangle completed." - -#: AppEditors/FlatCAMGeoEditor.py:2409 AppTools/ToolIsolation.py:2527 -#: AppTools/ToolNCC.py:1754 AppTools/ToolPaint.py:1647 Common.py:322 -msgid "Click on next Point or click right mouse button to complete ..." -msgstr "Click on next Point or click right mouse button to complete ..." - -#: AppEditors/FlatCAMGeoEditor.py:2440 -msgid "Done. Polygon completed." -msgstr "Done. Polygon completed." - -#: AppEditors/FlatCAMGeoEditor.py:2454 AppEditors/FlatCAMGeoEditor.py:2519 -#: AppEditors/FlatCAMGrbEditor.py:1102 AppEditors/FlatCAMGrbEditor.py:1322 -msgid "Backtracked one point ..." -msgstr "Backtracked one point ..." - -#: AppEditors/FlatCAMGeoEditor.py:2497 -msgid "Done. Path completed." -msgstr "Done. Path completed." - -#: AppEditors/FlatCAMGeoEditor.py:2656 -msgid "No shape selected. Select a shape to explode" -msgstr "No shape selected. Select a shape to explode" - -#: AppEditors/FlatCAMGeoEditor.py:2689 -msgid "Done. Polygons exploded into lines." -msgstr "Done. Polygons exploded into lines." - -#: AppEditors/FlatCAMGeoEditor.py:2721 -msgid "MOVE: No shape selected. Select a shape to move" -msgstr "MOVE: No shape selected. Select a shape to move" - -#: AppEditors/FlatCAMGeoEditor.py:2724 AppEditors/FlatCAMGeoEditor.py:2744 -msgid " MOVE: Click on reference point ..." -msgstr " MOVE: Click on reference point ..." - -#: AppEditors/FlatCAMGeoEditor.py:2729 -msgid " Click on destination point ..." -msgstr " Click on destination point ..." - -#: AppEditors/FlatCAMGeoEditor.py:2769 -msgid "Done. Geometry(s) Move completed." -msgstr "Done. Geometry(s) Move completed." - -#: AppEditors/FlatCAMGeoEditor.py:2902 -msgid "Done. Geometry(s) Copy completed." -msgstr "Done. Geometry(s) Copy completed." - -#: AppEditors/FlatCAMGeoEditor.py:2933 AppEditors/FlatCAMGrbEditor.py:897 -msgid "Click on 1st point ..." -msgstr "Click on 1st point ..." - -#: AppEditors/FlatCAMGeoEditor.py:2957 -msgid "" -"Font not supported. Only Regular, Bold, Italic and BoldItalic are supported. " -"Error" -msgstr "" -"Font not supported. Only Regular, Bold, Italic and BoldItalic are supported. " -"Error" - -#: AppEditors/FlatCAMGeoEditor.py:2965 -msgid "No text to add." -msgstr "No text to add." - -#: AppEditors/FlatCAMGeoEditor.py:2975 -msgid " Done. Adding Text completed." -msgstr " Done. Adding Text completed." - -#: AppEditors/FlatCAMGeoEditor.py:3012 -msgid "Create buffer geometry ..." -msgstr "Create buffer geometry ..." - -#: AppEditors/FlatCAMGeoEditor.py:3047 AppEditors/FlatCAMGrbEditor.py:5154 -msgid "Done. Buffer Tool completed." -msgstr "Done. Buffer Tool completed." - -#: AppEditors/FlatCAMGeoEditor.py:3075 -msgid "Done. Buffer Int Tool completed." -msgstr "Done. Buffer Int Tool completed." - -#: AppEditors/FlatCAMGeoEditor.py:3103 -msgid "Done. Buffer Ext Tool completed." -msgstr "Done. Buffer Ext Tool completed." - -#: AppEditors/FlatCAMGeoEditor.py:3152 AppEditors/FlatCAMGrbEditor.py:2160 -msgid "Select a shape to act as deletion area ..." -msgstr "Select a shape to act as deletion area ..." - -#: AppEditors/FlatCAMGeoEditor.py:3154 AppEditors/FlatCAMGeoEditor.py:3180 -#: AppEditors/FlatCAMGeoEditor.py:3186 AppEditors/FlatCAMGrbEditor.py:2162 -msgid "Click to pick-up the erase shape..." -msgstr "Click to pick-up the erase shape..." - -#: AppEditors/FlatCAMGeoEditor.py:3190 AppEditors/FlatCAMGrbEditor.py:2221 -msgid "Click to erase ..." -msgstr "Click to erase ..." - -#: AppEditors/FlatCAMGeoEditor.py:3219 AppEditors/FlatCAMGrbEditor.py:2254 -msgid "Done. Eraser tool action completed." -msgstr "Done. Eraser tool action completed." - -#: AppEditors/FlatCAMGeoEditor.py:3269 -msgid "Create Paint geometry ..." -msgstr "Create Paint geometry ..." - -#: AppEditors/FlatCAMGeoEditor.py:3282 AppEditors/FlatCAMGrbEditor.py:2417 -msgid "Shape transformations ..." -msgstr "Shape transformations ..." - -#: AppEditors/FlatCAMGeoEditor.py:3338 -#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:27 -msgid "Geometry Editor" -msgstr "Geometry Editor" - -#: AppEditors/FlatCAMGeoEditor.py:3344 AppEditors/FlatCAMGrbEditor.py:2495 -#: AppEditors/FlatCAMGrbEditor.py:3952 AppGUI/ObjectUI.py:282 -#: AppGUI/ObjectUI.py:1394 AppGUI/ObjectUI.py:2256 AppTools/ToolCutOut.py:95 -msgid "Type" -msgstr "Type" - -#: AppEditors/FlatCAMGeoEditor.py:3344 AppGUI/ObjectUI.py:221 -#: AppGUI/ObjectUI.py:521 AppGUI/ObjectUI.py:1330 AppGUI/ObjectUI.py:2165 -#: AppGUI/ObjectUI.py:2469 AppGUI/ObjectUI.py:2536 -#: AppTools/ToolCalibration.py:234 AppTools/ToolFiducials.py:70 -msgid "Name" -msgstr "Name" - -#: AppEditors/FlatCAMGeoEditor.py:3596 -msgid "Ring" -msgstr "Ring" - -#: AppEditors/FlatCAMGeoEditor.py:3598 -msgid "Line" -msgstr "Line" - -#: AppEditors/FlatCAMGeoEditor.py:3600 AppGUI/MainGUI.py:1446 -#: AppGUI/ObjectUI.py:1150 AppGUI/ObjectUI.py:2005 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:226 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:299 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:328 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:292 -#: AppTools/ToolIsolation.py:546 AppTools/ToolNCC.py:584 -#: AppTools/ToolPaint.py:527 -msgid "Polygon" -msgstr "Polygon" - -#: AppEditors/FlatCAMGeoEditor.py:3602 -msgid "Multi-Line" -msgstr "Multi-Line" - -#: AppEditors/FlatCAMGeoEditor.py:3604 -msgid "Multi-Polygon" -msgstr "Multi-Polygon" - -#: AppEditors/FlatCAMGeoEditor.py:3611 -msgid "Geo Elem" -msgstr "Geo Elem" - -#: AppEditors/FlatCAMGeoEditor.py:4064 -msgid "Editing MultiGeo Geometry, tool" -msgstr "Editing MultiGeo Geometry, tool" - -#: AppEditors/FlatCAMGeoEditor.py:4066 -msgid "with diameter" -msgstr "with diameter" - -#: AppEditors/FlatCAMGeoEditor.py:4138 -msgid "Grid Snap enabled." -msgstr "Grid Snap enabled." - -#: AppEditors/FlatCAMGeoEditor.py:4142 -msgid "Grid Snap disabled." -msgstr "Grid Snap disabled." - -#: AppEditors/FlatCAMGeoEditor.py:4503 AppGUI/MainGUI.py:3046 -#: AppGUI/MainGUI.py:3092 AppGUI/MainGUI.py:3110 AppGUI/MainGUI.py:3254 -#: AppGUI/MainGUI.py:3293 AppGUI/MainGUI.py:3305 AppGUI/MainGUI.py:3322 -msgid "Click on target point." -msgstr "Click on target point." - -#: AppEditors/FlatCAMGeoEditor.py:4819 AppEditors/FlatCAMGeoEditor.py:4854 -msgid "A selection of at least 2 geo items is required to do Intersection." -msgstr "A selection of at least 2 geo items is required to do Intersection." - -#: AppEditors/FlatCAMGeoEditor.py:4940 AppEditors/FlatCAMGeoEditor.py:5044 -msgid "" -"Negative buffer value is not accepted. Use Buffer interior to generate an " -"'inside' shape" -msgstr "" -"Negative buffer value is not accepted. Use Buffer interior to generate an " -"'inside' shape" - -#: AppEditors/FlatCAMGeoEditor.py:4950 AppEditors/FlatCAMGeoEditor.py:5003 -#: AppEditors/FlatCAMGeoEditor.py:5053 -msgid "Nothing selected for buffering." -msgstr "Nothing selected for buffering." - -#: AppEditors/FlatCAMGeoEditor.py:4955 AppEditors/FlatCAMGeoEditor.py:5007 -#: AppEditors/FlatCAMGeoEditor.py:5058 -msgid "Invalid distance for buffering." -msgstr "Invalid distance for buffering." - -#: AppEditors/FlatCAMGeoEditor.py:4979 AppEditors/FlatCAMGeoEditor.py:5078 -msgid "Failed, the result is empty. Choose a different buffer value." -msgstr "Failed, the result is empty. Choose a different buffer value." - -#: AppEditors/FlatCAMGeoEditor.py:4990 -msgid "Full buffer geometry created." -msgstr "Full buffer geometry created." - -#: AppEditors/FlatCAMGeoEditor.py:4996 -msgid "Negative buffer value is not accepted." -msgstr "Negative buffer value is not accepted." - -#: AppEditors/FlatCAMGeoEditor.py:5027 -msgid "Failed, the result is empty. Choose a smaller buffer value." -msgstr "Failed, the result is empty. Choose a smaller buffer value." - -#: AppEditors/FlatCAMGeoEditor.py:5037 -msgid "Interior buffer geometry created." -msgstr "Interior buffer geometry created." - -#: AppEditors/FlatCAMGeoEditor.py:5088 -msgid "Exterior buffer geometry created." -msgstr "Exterior buffer geometry created." - -#: AppEditors/FlatCAMGeoEditor.py:5094 -#, python-format -msgid "Could not do Paint. Overlap value has to be less than 100%%." -msgstr "Could not do Paint. Overlap value has to be less than 100%%." - -#: AppEditors/FlatCAMGeoEditor.py:5101 -msgid "Nothing selected for painting." -msgstr "Nothing selected for painting." - -#: AppEditors/FlatCAMGeoEditor.py:5107 -msgid "Invalid value for" -msgstr "Invalid value for" - -#: AppEditors/FlatCAMGeoEditor.py:5166 -msgid "" -"Could not do Paint. Try a different combination of parameters. Or a " -"different method of Paint" -msgstr "" -"Could not do Paint. Try a different combination of parameters. Or a " -"different method of Paint" - -#: AppEditors/FlatCAMGeoEditor.py:5177 -msgid "Paint done." -msgstr "Paint done." - -#: AppEditors/FlatCAMGrbEditor.py:211 -msgid "To add an Pad first select a aperture in Aperture Table" -msgstr "To add an Pad first select a aperture in Aperture Table" - -#: AppEditors/FlatCAMGrbEditor.py:218 AppEditors/FlatCAMGrbEditor.py:418 -msgid "Aperture size is zero. It needs to be greater than zero." -msgstr "Aperture size is zero. It needs to be greater than zero." - -#: AppEditors/FlatCAMGrbEditor.py:371 AppEditors/FlatCAMGrbEditor.py:684 -msgid "" -"Incompatible aperture type. Select an aperture with type 'C', 'R' or 'O'." -msgstr "" -"Incompatible aperture type. Select an aperture with type 'C', 'R' or 'O'." - -#: AppEditors/FlatCAMGrbEditor.py:383 -msgid "Done. Adding Pad completed." -msgstr "Done. Adding Pad completed." - -#: AppEditors/FlatCAMGrbEditor.py:410 -msgid "To add an Pad Array first select a aperture in Aperture Table" -msgstr "To add an Pad Array first select a aperture in Aperture Table" - -#: AppEditors/FlatCAMGrbEditor.py:490 -msgid "Click on the Pad Circular Array Start position" -msgstr "Click on the Pad Circular Array Start position" - -#: AppEditors/FlatCAMGrbEditor.py:710 -msgid "Too many Pads for the selected spacing angle." -msgstr "Too many Pads for the selected spacing angle." - -#: AppEditors/FlatCAMGrbEditor.py:733 -msgid "Done. Pad Array added." -msgstr "Done. Pad Array added." - -#: AppEditors/FlatCAMGrbEditor.py:758 -msgid "Select shape(s) and then click ..." -msgstr "Select shape(s) and then click ..." - -#: AppEditors/FlatCAMGrbEditor.py:770 -msgid "Failed. Nothing selected." -msgstr "Failed. Nothing selected." - -#: AppEditors/FlatCAMGrbEditor.py:786 -msgid "" -"Failed. Poligonize works only on geometries belonging to the same aperture." -msgstr "" -"Failed. Poligonize works only on geometries belonging to the same aperture." - -#: AppEditors/FlatCAMGrbEditor.py:840 -msgid "Done. Poligonize completed." -msgstr "Done. Poligonize completed." - -#: AppEditors/FlatCAMGrbEditor.py:895 AppEditors/FlatCAMGrbEditor.py:1119 -#: AppEditors/FlatCAMGrbEditor.py:1143 -msgid "Corner Mode 1: 45 degrees ..." -msgstr "Corner Mode 1: 45 degrees ..." - -#: AppEditors/FlatCAMGrbEditor.py:907 AppEditors/FlatCAMGrbEditor.py:1219 -msgid "Click on next Point or click Right mouse button to complete ..." -msgstr "Click on next Point or click Right mouse button to complete ..." - -#: AppEditors/FlatCAMGrbEditor.py:1107 AppEditors/FlatCAMGrbEditor.py:1140 -msgid "Corner Mode 2: Reverse 45 degrees ..." -msgstr "Corner Mode 2: Reverse 45 degrees ..." - -#: AppEditors/FlatCAMGrbEditor.py:1110 AppEditors/FlatCAMGrbEditor.py:1137 -msgid "Corner Mode 3: 90 degrees ..." -msgstr "Corner Mode 3: 90 degrees ..." - -#: AppEditors/FlatCAMGrbEditor.py:1113 AppEditors/FlatCAMGrbEditor.py:1134 -msgid "Corner Mode 4: Reverse 90 degrees ..." -msgstr "Corner Mode 4: Reverse 90 degrees ..." - -#: AppEditors/FlatCAMGrbEditor.py:1116 AppEditors/FlatCAMGrbEditor.py:1131 -msgid "Corner Mode 5: Free angle ..." -msgstr "Corner Mode 5: Free angle ..." - -#: AppEditors/FlatCAMGrbEditor.py:1193 AppEditors/FlatCAMGrbEditor.py:1358 -#: AppEditors/FlatCAMGrbEditor.py:1397 -msgid "Track Mode 1: 45 degrees ..." -msgstr "Track Mode 1: 45 degrees ..." - -#: AppEditors/FlatCAMGrbEditor.py:1338 AppEditors/FlatCAMGrbEditor.py:1392 -msgid "Track Mode 2: Reverse 45 degrees ..." -msgstr "Track Mode 2: Reverse 45 degrees ..." - -#: AppEditors/FlatCAMGrbEditor.py:1343 AppEditors/FlatCAMGrbEditor.py:1387 -msgid "Track Mode 3: 90 degrees ..." -msgstr "Track Mode 3: 90 degrees ..." - -#: AppEditors/FlatCAMGrbEditor.py:1348 AppEditors/FlatCAMGrbEditor.py:1382 -msgid "Track Mode 4: Reverse 90 degrees ..." -msgstr "Track Mode 4: Reverse 90 degrees ..." - -#: AppEditors/FlatCAMGrbEditor.py:1353 AppEditors/FlatCAMGrbEditor.py:1377 -msgid "Track Mode 5: Free angle ..." -msgstr "Track Mode 5: Free angle ..." - -#: AppEditors/FlatCAMGrbEditor.py:1787 -msgid "Scale the selected Gerber apertures ..." -msgstr "Scale the selected Gerber apertures ..." - -#: AppEditors/FlatCAMGrbEditor.py:1829 -msgid "Buffer the selected apertures ..." -msgstr "Buffer the selected apertures ..." - -#: AppEditors/FlatCAMGrbEditor.py:1871 -msgid "Mark polygon areas in the edited Gerber ..." -msgstr "Mark polygon areas in the edited Gerber ..." - -#: AppEditors/FlatCAMGrbEditor.py:1937 -msgid "Nothing selected to move" -msgstr "Nothing selected to move" - -#: AppEditors/FlatCAMGrbEditor.py:2062 -msgid "Done. Apertures Move completed." -msgstr "Done. Apertures Move completed." - -#: AppEditors/FlatCAMGrbEditor.py:2144 -msgid "Done. Apertures copied." -msgstr "Done. Apertures copied." - -#: AppEditors/FlatCAMGrbEditor.py:2462 AppGUI/MainGUI.py:1477 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:27 -msgid "Gerber Editor" -msgstr "Gerber Editor" - -#: AppEditors/FlatCAMGrbEditor.py:2482 AppGUI/ObjectUI.py:247 -#: AppTools/ToolProperties.py:159 -msgid "Apertures" -msgstr "Apertures" - -#: AppEditors/FlatCAMGrbEditor.py:2484 AppGUI/ObjectUI.py:249 -msgid "Apertures Table for the Gerber Object." -msgstr "Apertures Table for the Gerber Object." - -#: AppEditors/FlatCAMGrbEditor.py:2495 AppEditors/FlatCAMGrbEditor.py:3952 -#: AppGUI/ObjectUI.py:282 -msgid "Code" -msgstr "Code" - -#: AppEditors/FlatCAMGrbEditor.py:2495 AppEditors/FlatCAMGrbEditor.py:3952 -#: AppGUI/ObjectUI.py:282 -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:103 -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:167 -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:196 -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:43 -#: AppTools/ToolCopperThieving.py:265 AppTools/ToolCopperThieving.py:305 -#: AppTools/ToolFiducials.py:159 -msgid "Size" -msgstr "Size" - -#: AppEditors/FlatCAMGrbEditor.py:2495 AppEditors/FlatCAMGrbEditor.py:3952 -#: AppGUI/ObjectUI.py:282 -msgid "Dim" -msgstr "Dim" - -#: AppEditors/FlatCAMGrbEditor.py:2500 AppGUI/ObjectUI.py:286 -msgid "Index" -msgstr "Index" - -#: AppEditors/FlatCAMGrbEditor.py:2502 AppEditors/FlatCAMGrbEditor.py:2531 -#: AppGUI/ObjectUI.py:288 -msgid "Aperture Code" -msgstr "Aperture Code" - -#: AppEditors/FlatCAMGrbEditor.py:2504 AppGUI/ObjectUI.py:290 -msgid "Type of aperture: circular, rectangle, macros etc" -msgstr "Type of aperture: circular, rectangle, macros etc" - -#: AppEditors/FlatCAMGrbEditor.py:2506 AppGUI/ObjectUI.py:292 -msgid "Aperture Size:" -msgstr "Aperture Size:" - -#: AppEditors/FlatCAMGrbEditor.py:2508 AppGUI/ObjectUI.py:294 -msgid "" -"Aperture Dimensions:\n" -" - (width, height) for R, O type.\n" -" - (dia, nVertices) for P type" -msgstr "" -"Aperture Dimensions:\n" -" - (width, height) for R, O type.\n" -" - (dia, nVertices) for P type" - -#: AppEditors/FlatCAMGrbEditor.py:2532 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:58 -msgid "Code for the new aperture" -msgstr "Code for the new aperture" - -#: AppEditors/FlatCAMGrbEditor.py:2541 -msgid "Aperture Size" -msgstr "Aperture Size" - -#: AppEditors/FlatCAMGrbEditor.py:2543 -msgid "" -"Size for the new aperture.\n" -"If aperture type is 'R' or 'O' then\n" -"this value is automatically\n" -"calculated as:\n" -"sqrt(width**2 + height**2)" -msgstr "" -"Size for the new aperture.\n" -"If aperture type is 'R' or 'O' then\n" -"this value is automatically\n" -"calculated as:\n" -"sqrt(width**2 + height**2)" - -#: AppEditors/FlatCAMGrbEditor.py:2557 -msgid "Aperture Type" -msgstr "Aperture Type" - -#: AppEditors/FlatCAMGrbEditor.py:2559 -msgid "" -"Select the type of new aperture. Can be:\n" -"C = circular\n" -"R = rectangular\n" -"O = oblong" -msgstr "" -"Select the type of new aperture. Can be:\n" -"C = circular\n" -"R = rectangular\n" -"O = oblong" - -#: AppEditors/FlatCAMGrbEditor.py:2570 -msgid "Aperture Dim" -msgstr "Aperture Dim" - -#: AppEditors/FlatCAMGrbEditor.py:2572 -msgid "" -"Dimensions for the new aperture.\n" -"Active only for rectangular apertures (type R).\n" -"The format is (width, height)" -msgstr "" -"Dimensions for the new aperture.\n" -"Active only for rectangular apertures (type R).\n" -"The format is (width, height)" - -#: AppEditors/FlatCAMGrbEditor.py:2581 -msgid "Add/Delete Aperture" -msgstr "Add/Delete Aperture" - -#: AppEditors/FlatCAMGrbEditor.py:2583 -msgid "Add/Delete an aperture in the aperture table" -msgstr "Add/Delete an aperture in the aperture table" - -#: AppEditors/FlatCAMGrbEditor.py:2592 -msgid "Add a new aperture to the aperture list." -msgstr "Add a new aperture to the aperture list." - -#: AppEditors/FlatCAMGrbEditor.py:2595 AppEditors/FlatCAMGrbEditor.py:2743 -#: AppGUI/MainGUI.py:748 AppGUI/MainGUI.py:1068 AppGUI/MainGUI.py:1527 -#: AppGUI/MainGUI.py:2099 AppGUI/MainGUI.py:4514 AppGUI/ObjectUI.py:1525 -#: AppObjects/FlatCAMGeometry.py:563 AppTools/ToolIsolation.py:298 -#: AppTools/ToolIsolation.py:616 AppTools/ToolNCC.py:316 -#: AppTools/ToolNCC.py:637 AppTools/ToolPaint.py:298 AppTools/ToolPaint.py:681 -#: AppTools/ToolSolderPaste.py:133 AppTools/ToolSolderPaste.py:608 -#: App_Main.py:5672 -msgid "Delete" -msgstr "Delete" - -#: AppEditors/FlatCAMGrbEditor.py:2597 -msgid "Delete a aperture in the aperture list" -msgstr "Delete a aperture in the aperture list" - -#: AppEditors/FlatCAMGrbEditor.py:2614 -msgid "Buffer Aperture" -msgstr "Buffer Aperture" - -#: AppEditors/FlatCAMGrbEditor.py:2616 -msgid "Buffer a aperture in the aperture list" -msgstr "Buffer a aperture in the aperture list" - -#: AppEditors/FlatCAMGrbEditor.py:2629 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:195 -msgid "Buffer distance" -msgstr "Buffer distance" - -#: AppEditors/FlatCAMGrbEditor.py:2630 -msgid "Buffer corner" -msgstr "Buffer corner" - -#: AppEditors/FlatCAMGrbEditor.py:2632 -msgid "" -"There are 3 types of corners:\n" -" - 'Round': the corner is rounded.\n" -" - 'Square': the corner is met in a sharp angle.\n" -" - 'Beveled': the corner is a line that directly connects the features " -"meeting in the corner" -msgstr "" -"There are 3 types of corners:\n" -" - 'Round': the corner is rounded.\n" -" - 'Square': the corner is met in a sharp angle.\n" -" - 'Beveled': the corner is a line that directly connects the features " -"meeting in the corner" - -#: AppEditors/FlatCAMGrbEditor.py:2647 AppGUI/MainGUI.py:1055 -#: AppGUI/MainGUI.py:1454 AppGUI/MainGUI.py:1497 AppGUI/MainGUI.py:2087 -#: AppGUI/MainGUI.py:4511 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:200 -#: AppTools/ToolTransform.py:29 -msgid "Buffer" -msgstr "Buffer" - -#: AppEditors/FlatCAMGrbEditor.py:2662 -msgid "Scale Aperture" -msgstr "Scale Aperture" - -#: AppEditors/FlatCAMGrbEditor.py:2664 -msgid "Scale a aperture in the aperture list" -msgstr "Scale a aperture in the aperture list" - -#: AppEditors/FlatCAMGrbEditor.py:2672 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:210 -msgid "Scale factor" -msgstr "Scale factor" - -#: AppEditors/FlatCAMGrbEditor.py:2674 -msgid "" -"The factor by which to scale the selected aperture.\n" -"Values can be between 0.0000 and 999.9999" -msgstr "" -"The factor by which to scale the selected aperture.\n" -"Values can be between 0.0000 and 999.9999" - -#: AppEditors/FlatCAMGrbEditor.py:2702 -msgid "Mark polygons" -msgstr "Mark polygons" - -#: AppEditors/FlatCAMGrbEditor.py:2704 -msgid "Mark the polygon areas." -msgstr "Mark the polygon areas." - -#: AppEditors/FlatCAMGrbEditor.py:2712 -msgid "Area UPPER threshold" -msgstr "Area UPPER threshold" - -#: AppEditors/FlatCAMGrbEditor.py:2714 -msgid "" -"The threshold value, all areas less than this are marked.\n" -"Can have a value between 0.0000 and 9999.9999" -msgstr "" -"The threshold value, all areas less than this are marked.\n" -"Can have a value between 0.0000 and 9999.9999" - -#: AppEditors/FlatCAMGrbEditor.py:2721 -msgid "Area LOWER threshold" -msgstr "Area LOWER threshold" - -#: AppEditors/FlatCAMGrbEditor.py:2723 -msgid "" -"The threshold value, all areas more than this are marked.\n" -"Can have a value between 0.0000 and 9999.9999" -msgstr "" -"The threshold value, all areas more than this are marked.\n" -"Can have a value between 0.0000 and 9999.9999" - -#: AppEditors/FlatCAMGrbEditor.py:2737 -msgid "Mark" -msgstr "Mark" - -#: AppEditors/FlatCAMGrbEditor.py:2739 -msgid "Mark the polygons that fit within limits." -msgstr "Mark the polygons that fit within limits." - -#: AppEditors/FlatCAMGrbEditor.py:2745 -msgid "Delete all the marked polygons." -msgstr "Delete all the marked polygons." - -#: AppEditors/FlatCAMGrbEditor.py:2751 -msgid "Clear all the markings." -msgstr "Clear all the markings." - -#: AppEditors/FlatCAMGrbEditor.py:2771 AppGUI/MainGUI.py:1040 -#: AppGUI/MainGUI.py:2072 AppGUI/MainGUI.py:4511 -msgid "Add Pad Array" -msgstr "Add Pad Array" - -#: AppEditors/FlatCAMGrbEditor.py:2773 -msgid "Add an array of pads (linear or circular array)" -msgstr "Add an array of pads (linear or circular array)" - -#: AppEditors/FlatCAMGrbEditor.py:2779 -msgid "" -"Select the type of pads array to create.\n" -"It can be Linear X(Y) or Circular" -msgstr "" -"Select the type of pads array to create.\n" -"It can be Linear X(Y) or Circular" - -#: AppEditors/FlatCAMGrbEditor.py:2790 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:95 -msgid "Nr of pads" -msgstr "Nr of pads" - -#: AppEditors/FlatCAMGrbEditor.py:2792 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:97 -msgid "Specify how many pads to be in the array." -msgstr "Specify how many pads to be in the array." - -#: AppEditors/FlatCAMGrbEditor.py:2841 -msgid "" -"Angle at which the linear array is placed.\n" -"The precision is of max 2 decimals.\n" -"Min value is: -359.99 degrees.\n" -"Max value is: 360.00 degrees." -msgstr "" -"Angle at which the linear array is placed.\n" -"The precision is of max 2 decimals.\n" -"Min value is: -359.99 degrees.\n" -"Max value is: 360.00 degrees." - -#: AppEditors/FlatCAMGrbEditor.py:3335 AppEditors/FlatCAMGrbEditor.py:3339 -msgid "Aperture code value is missing or wrong format. Add it and retry." -msgstr "Aperture code value is missing or wrong format. Add it and retry." - -#: AppEditors/FlatCAMGrbEditor.py:3375 -msgid "" -"Aperture dimensions value is missing or wrong format. Add it in format " -"(width, height) and retry." -msgstr "" -"Aperture dimensions value is missing or wrong format. Add it in format " -"(width, height) and retry." - -#: AppEditors/FlatCAMGrbEditor.py:3388 -msgid "Aperture size value is missing or wrong format. Add it and retry." -msgstr "Aperture size value is missing or wrong format. Add it and retry." - -#: AppEditors/FlatCAMGrbEditor.py:3399 -msgid "Aperture already in the aperture table." -msgstr "Aperture already in the aperture table." - -#: AppEditors/FlatCAMGrbEditor.py:3406 -msgid "Added new aperture with code" -msgstr "Added new aperture with code" - -#: AppEditors/FlatCAMGrbEditor.py:3438 -msgid " Select an aperture in Aperture Table" -msgstr " Select an aperture in Aperture Table" - -#: AppEditors/FlatCAMGrbEditor.py:3446 -msgid "Select an aperture in Aperture Table -->" -msgstr "Select an aperture in Aperture Table -->" - -#: AppEditors/FlatCAMGrbEditor.py:3460 -msgid "Deleted aperture with code" -msgstr "Deleted aperture with code" - -#: AppEditors/FlatCAMGrbEditor.py:3528 -msgid "Dimensions need two float values separated by comma." -msgstr "Dimensions need two float values separated by comma." - -#: AppEditors/FlatCAMGrbEditor.py:3537 -msgid "Dimensions edited." -msgstr "Dimensions edited." - -#: AppEditors/FlatCAMGrbEditor.py:4067 -msgid "Loading Gerber into Editor" -msgstr "Loading Gerber into Editor" - -#: AppEditors/FlatCAMGrbEditor.py:4195 -msgid "Setting up the UI" -msgstr "Setting up the UI" - -#: AppEditors/FlatCAMGrbEditor.py:4196 -msgid "Adding geometry finished. Preparing the AppGUI" -msgstr "Adding geometry finished. Preparing the AppGUI" - -#: AppEditors/FlatCAMGrbEditor.py:4205 -msgid "Finished loading the Gerber object into the editor." -msgstr "Finished loading the Gerber object into the editor." - -#: AppEditors/FlatCAMGrbEditor.py:4346 -msgid "" -"There are no Aperture definitions in the file. Aborting Gerber creation." -msgstr "" -"There are no Aperture definitions in the file. Aborting Gerber creation." - -#: AppEditors/FlatCAMGrbEditor.py:4348 AppObjects/AppObject.py:133 -#: AppObjects/FlatCAMGeometry.py:1786 AppParsers/ParseExcellon.py:896 -#: AppTools/ToolPcbWizard.py:432 App_Main.py:8465 App_Main.py:8529 -#: App_Main.py:8660 App_Main.py:8725 App_Main.py:9377 -msgid "An internal error has occurred. See shell.\n" -msgstr "An internal error has occurred. See shell.\n" - -#: AppEditors/FlatCAMGrbEditor.py:4356 -msgid "Creating Gerber." -msgstr "Creating Gerber." - -#: AppEditors/FlatCAMGrbEditor.py:4368 -msgid "Done. Gerber editing finished." -msgstr "Done. Gerber editing finished." - -#: AppEditors/FlatCAMGrbEditor.py:4384 -msgid "Cancelled. No aperture is selected" -msgstr "Cancelled. No aperture is selected" - -#: AppEditors/FlatCAMGrbEditor.py:4539 App_Main.py:5998 -msgid "Coordinates copied to clipboard." -msgstr "Coordinates copied to clipboard." - -#: AppEditors/FlatCAMGrbEditor.py:4986 -msgid "Failed. No aperture geometry is selected." -msgstr "Failed. No aperture geometry is selected." - -#: AppEditors/FlatCAMGrbEditor.py:4995 AppEditors/FlatCAMGrbEditor.py:5266 -msgid "Done. Apertures geometry deleted." -msgstr "Done. Apertures geometry deleted." - -#: AppEditors/FlatCAMGrbEditor.py:5138 -msgid "No aperture to buffer. Select at least one aperture and try again." -msgstr "No aperture to buffer. Select at least one aperture and try again." - -#: AppEditors/FlatCAMGrbEditor.py:5150 -msgid "Failed." -msgstr "Failed." - -#: AppEditors/FlatCAMGrbEditor.py:5169 -msgid "Scale factor value is missing or wrong format. Add it and retry." -msgstr "Scale factor value is missing or wrong format. Add it and retry." - -#: AppEditors/FlatCAMGrbEditor.py:5201 -msgid "No aperture to scale. Select at least one aperture and try again." -msgstr "No aperture to scale. Select at least one aperture and try again." - -#: AppEditors/FlatCAMGrbEditor.py:5217 -msgid "Done. Scale Tool completed." -msgstr "Done. Scale Tool completed." - -#: AppEditors/FlatCAMGrbEditor.py:5255 -msgid "Polygons marked." -msgstr "Polygons marked." - -#: AppEditors/FlatCAMGrbEditor.py:5258 -msgid "No polygons were marked. None fit within the limits." -msgstr "No polygons were marked. None fit within the limits." - -#: AppEditors/FlatCAMGrbEditor.py:5982 -msgid "Rotation action was not executed." -msgstr "Rotation action was not executed." - -#: AppEditors/FlatCAMGrbEditor.py:6053 App_Main.py:5432 App_Main.py:5480 -msgid "Flip action was not executed." -msgstr "Flip action was not executed." - -#: AppEditors/FlatCAMGrbEditor.py:6110 -msgid "Skew action was not executed." -msgstr "Skew action was not executed." - -#: AppEditors/FlatCAMGrbEditor.py:6175 -msgid "Scale action was not executed." -msgstr "Scale action was not executed." - -#: AppEditors/FlatCAMGrbEditor.py:6218 -msgid "Offset action was not executed." -msgstr "Offset action was not executed." - -#: AppEditors/FlatCAMGrbEditor.py:6268 -msgid "Geometry shape offset Y cancelled" -msgstr "Geometry shape offset Y cancelled" - -#: AppEditors/FlatCAMGrbEditor.py:6283 -msgid "Geometry shape skew X cancelled" -msgstr "Geometry shape skew X cancelled" - -#: AppEditors/FlatCAMGrbEditor.py:6298 -msgid "Geometry shape skew Y cancelled" -msgstr "Geometry shape skew Y cancelled" - -#: AppEditors/FlatCAMTextEditor.py:74 -msgid "Print Preview" -msgstr "Print Preview" - -#: AppEditors/FlatCAMTextEditor.py:75 -msgid "Open a OS standard Preview Print window." -msgstr "Open a OS standard Preview Print window." - -#: AppEditors/FlatCAMTextEditor.py:78 -msgid "Print Code" -msgstr "Print Code" - -#: AppEditors/FlatCAMTextEditor.py:79 -msgid "Open a OS standard Print window." -msgstr "Open a OS standard Print window." - -#: AppEditors/FlatCAMTextEditor.py:81 -msgid "Find in Code" -msgstr "Find in Code" - -#: AppEditors/FlatCAMTextEditor.py:82 -msgid "Will search and highlight in yellow the string in the Find box." -msgstr "Will search and highlight in yellow the string in the Find box." - -#: AppEditors/FlatCAMTextEditor.py:86 -msgid "Find box. Enter here the strings to be searched in the text." -msgstr "Find box. Enter here the strings to be searched in the text." - -#: AppEditors/FlatCAMTextEditor.py:88 -msgid "Replace With" -msgstr "Replace With" - -#: AppEditors/FlatCAMTextEditor.py:89 -msgid "" -"Will replace the string from the Find box with the one in the Replace box." -msgstr "" -"Will replace the string from the Find box with the one in the Replace box." - -#: AppEditors/FlatCAMTextEditor.py:93 -msgid "String to replace the one in the Find box throughout the text." -msgstr "String to replace the one in the Find box throughout the text." - -#: AppEditors/FlatCAMTextEditor.py:95 AppGUI/ObjectUI.py:2149 -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:54 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:285 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280 -#: AppTools/ToolIsolation.py:504 AppTools/ToolIsolation.py:1287 -#: AppTools/ToolIsolation.py:1669 AppTools/ToolPaint.py:485 -#: AppTools/ToolPaint.py:1446 defaults.py:403 defaults.py:446 -#: tclCommands/TclCommandPaint.py:162 -msgid "All" -msgstr "All" - -#: AppEditors/FlatCAMTextEditor.py:96 -msgid "" -"When checked it will replace all instances in the 'Find' box\n" -"with the text in the 'Replace' box.." -msgstr "" -"When checked it will replace all instances in the 'Find' box\n" -"with the text in the 'Replace' box.." - -#: AppEditors/FlatCAMTextEditor.py:99 -msgid "Copy All" -msgstr "Copy All" - -#: AppEditors/FlatCAMTextEditor.py:100 -msgid "Will copy all the text in the Code Editor to the clipboard." -msgstr "Will copy all the text in the Code Editor to the clipboard." - -#: AppEditors/FlatCAMTextEditor.py:103 -msgid "Open Code" -msgstr "Open Code" - -#: AppEditors/FlatCAMTextEditor.py:104 -msgid "Will open a text file in the editor." -msgstr "Will open a text file in the editor." - -#: AppEditors/FlatCAMTextEditor.py:106 -msgid "Save Code" -msgstr "Save Code" - -#: AppEditors/FlatCAMTextEditor.py:107 -msgid "Will save the text in the editor into a file." -msgstr "Will save the text in the editor into a file." - -#: AppEditors/FlatCAMTextEditor.py:109 -msgid "Run Code" -msgstr "Run Code" - -#: AppEditors/FlatCAMTextEditor.py:110 -msgid "Will run the TCL commands found in the text file, one by one." -msgstr "Will run the TCL commands found in the text file, one by one." - -#: AppEditors/FlatCAMTextEditor.py:184 -msgid "Open file" -msgstr "Open file" - -#: AppEditors/FlatCAMTextEditor.py:215 AppEditors/FlatCAMTextEditor.py:220 -#: AppObjects/FlatCAMCNCJob.py:507 AppObjects/FlatCAMCNCJob.py:512 -#: AppTools/ToolSolderPaste.py:1508 -msgid "Export Code ..." -msgstr "Export Code ..." - -#: AppEditors/FlatCAMTextEditor.py:272 AppObjects/FlatCAMCNCJob.py:955 -#: AppTools/ToolSolderPaste.py:1538 -msgid "No such file or directory" -msgstr "No such file or directory" - -#: AppEditors/FlatCAMTextEditor.py:284 AppObjects/FlatCAMCNCJob.py:969 -msgid "Saved to" -msgstr "Saved to" - -#: AppEditors/FlatCAMTextEditor.py:334 -msgid "Code Editor content copied to clipboard ..." -msgstr "Code Editor content copied to clipboard ..." - -#: AppGUI/GUIElements.py:2690 -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:169 -#: AppTools/ToolDblSided.py:173 AppTools/ToolDblSided.py:388 -#: AppTools/ToolFilm.py:202 -msgid "Reference" -msgstr "Reference" - -#: AppGUI/GUIElements.py:2692 -msgid "" -"The reference can be:\n" -"- Absolute -> the reference point is point (0,0)\n" -"- Relative -> the reference point is the mouse position before Jump" -msgstr "" -"The reference can be:\n" -"- Absolute -> the reference point is point (0,0)\n" -"- Relative -> the reference point is the mouse position before Jump" - -#: AppGUI/GUIElements.py:2697 -msgid "Abs" -msgstr "Abs" - -#: AppGUI/GUIElements.py:2698 -msgid "Relative" -msgstr "Relative" - -#: AppGUI/GUIElements.py:2708 -msgid "Location" -msgstr "Location" - -#: AppGUI/GUIElements.py:2710 -msgid "" -"The Location value is a tuple (x,y).\n" -"If the reference is Absolute then the Jump will be at the position (x,y).\n" -"If the reference is Relative then the Jump will be at the (x,y) distance\n" -"from the current mouse location point." -msgstr "" -"The Location value is a tuple (x,y).\n" -"If the reference is Absolute then the Jump will be at the position (x,y).\n" -"If the reference is Relative then the Jump will be at the (x,y) distance\n" -"from the current mouse location point." - -#: AppGUI/GUIElements.py:2750 -msgid "Save Log" -msgstr "Save Log" - -#: AppGUI/GUIElements.py:2760 App_Main.py:2679 App_Main.py:2988 -#: App_Main.py:3122 -msgid "Close" -msgstr "Close" - -#: AppGUI/GUIElements.py:2769 AppTools/ToolShell.py:296 -msgid "Type >help< to get started" -msgstr "Type >help< to get started" - -#: AppGUI/GUIElements.py:3159 AppGUI/GUIElements.py:3168 -msgid "Idle." -msgstr "Idle." - -#: AppGUI/GUIElements.py:3201 -msgid "Application started ..." -msgstr "Application started ..." - -#: AppGUI/GUIElements.py:3202 -msgid "Hello!" -msgstr "Hello!" - -#: AppGUI/GUIElements.py:3249 AppGUI/MainGUI.py:190 AppGUI/MainGUI.py:895 -#: AppGUI/MainGUI.py:1927 -msgid "Run Script ..." -msgstr "Run Script ..." - -#: AppGUI/GUIElements.py:3251 AppGUI/MainGUI.py:192 -msgid "" -"Will run the opened Tcl Script thus\n" -"enabling the automation of certain\n" -"functions of FlatCAM." -msgstr "" -"Will run the opened Tcl Script thus\n" -"enabling the automation of certain\n" -"functions of FlatCAM." - -#: AppGUI/GUIElements.py:3260 AppGUI/MainGUI.py:118 -#: AppTools/ToolPcbWizard.py:62 AppTools/ToolPcbWizard.py:69 -msgid "Open" -msgstr "Open" - -#: AppGUI/GUIElements.py:3264 -msgid "Open Project ..." -msgstr "Open Project ..." - -#: AppGUI/GUIElements.py:3270 AppGUI/MainGUI.py:129 -msgid "Open &Gerber ...\tCtrl+G" -msgstr "Open &Gerber ...\tCtrl+G" - -#: AppGUI/GUIElements.py:3275 AppGUI/MainGUI.py:134 -msgid "Open &Excellon ...\tCtrl+E" -msgstr "Open &Excellon ...\tCtrl+E" - -#: AppGUI/GUIElements.py:3280 AppGUI/MainGUI.py:139 -msgid "Open G-&Code ..." -msgstr "Open G-&Code ..." - -#: AppGUI/GUIElements.py:3290 -msgid "Exit" -msgstr "Exit" - -#: AppGUI/MainGUI.py:67 AppGUI/MainGUI.py:69 AppGUI/MainGUI.py:1407 -msgid "Toggle Panel" -msgstr "Toggle Panel" - -#: AppGUI/MainGUI.py:79 -msgid "File" -msgstr "File" - -#: AppGUI/MainGUI.py:84 -msgid "&New Project ...\tCtrl+N" -msgstr "&New Project ...\tCtrl+N" - -#: AppGUI/MainGUI.py:86 -msgid "Will create a new, blank project" -msgstr "Will create a new, blank project" - -#: AppGUI/MainGUI.py:91 -msgid "&New" -msgstr "&New" - -#: AppGUI/MainGUI.py:95 -msgid "Geometry\tN" -msgstr "Geometry\tN" - -#: AppGUI/MainGUI.py:97 -msgid "Will create a new, empty Geometry Object." -msgstr "Will create a new, empty Geometry Object." - -#: AppGUI/MainGUI.py:100 -msgid "Gerber\tB" -msgstr "Gerber\tB" - -#: AppGUI/MainGUI.py:102 -msgid "Will create a new, empty Gerber Object." -msgstr "Will create a new, empty Gerber Object." - -#: AppGUI/MainGUI.py:105 -msgid "Excellon\tL" -msgstr "Excellon\tL" - -#: AppGUI/MainGUI.py:107 -msgid "Will create a new, empty Excellon Object." -msgstr "Will create a new, empty Excellon Object." - -#: AppGUI/MainGUI.py:112 -msgid "Document\tD" -msgstr "Document\tD" - -#: AppGUI/MainGUI.py:114 -msgid "Will create a new, empty Document Object." -msgstr "Will create a new, empty Document Object." - -#: AppGUI/MainGUI.py:123 -msgid "Open &Project ..." -msgstr "Open &Project ..." - -#: AppGUI/MainGUI.py:146 -msgid "Open Config ..." -msgstr "Open Config ..." - -#: AppGUI/MainGUI.py:151 -msgid "Recent projects" -msgstr "Recent projects" - -#: AppGUI/MainGUI.py:153 -msgid "Recent files" -msgstr "Recent files" - -#: AppGUI/MainGUI.py:156 AppGUI/MainGUI.py:750 AppGUI/MainGUI.py:1380 -msgid "Save" -msgstr "Save" - -#: AppGUI/MainGUI.py:160 -msgid "&Save Project ...\tCtrl+S" -msgstr "&Save Project ...\tCtrl+S" - -#: AppGUI/MainGUI.py:165 -msgid "Save Project &As ...\tCtrl+Shift+S" -msgstr "Save Project &As ...\tCtrl+Shift+S" - -#: AppGUI/MainGUI.py:180 -msgid "Scripting" -msgstr "Scripting" - -#: AppGUI/MainGUI.py:184 AppGUI/MainGUI.py:891 AppGUI/MainGUI.py:1923 -msgid "New Script ..." -msgstr "New Script ..." - -#: AppGUI/MainGUI.py:186 AppGUI/MainGUI.py:893 AppGUI/MainGUI.py:1925 -msgid "Open Script ..." -msgstr "Open Script ..." - -#: AppGUI/MainGUI.py:188 -msgid "Open Example ..." -msgstr "Open Example ..." - -#: AppGUI/MainGUI.py:207 -msgid "Import" -msgstr "Import" - -#: AppGUI/MainGUI.py:209 -msgid "&SVG as Geometry Object ..." -msgstr "&SVG as Geometry Object ..." - -#: AppGUI/MainGUI.py:212 -msgid "&SVG as Gerber Object ..." -msgstr "&SVG as Gerber Object ..." - -#: AppGUI/MainGUI.py:217 -msgid "&DXF as Geometry Object ..." -msgstr "&DXF as Geometry Object ..." - -#: AppGUI/MainGUI.py:220 -msgid "&DXF as Gerber Object ..." -msgstr "&DXF as Gerber Object ..." - -#: AppGUI/MainGUI.py:224 -msgid "HPGL2 as Geometry Object ..." -msgstr "HPGL2 as Geometry Object ..." - -#: AppGUI/MainGUI.py:230 -msgid "Export" -msgstr "Export" - -#: AppGUI/MainGUI.py:234 -msgid "Export &SVG ..." -msgstr "Export &SVG ..." - -#: AppGUI/MainGUI.py:238 -msgid "Export DXF ..." -msgstr "Export DXF ..." - -#: AppGUI/MainGUI.py:244 -msgid "Export &PNG ..." -msgstr "Export &PNG ..." - -#: AppGUI/MainGUI.py:246 -msgid "" -"Will export an image in PNG format,\n" -"the saved image will contain the visual \n" -"information currently in FlatCAM Plot Area." -msgstr "" -"Will export an image in PNG format,\n" -"the saved image will contain the visual \n" -"information currently in FlatCAM Plot Area." - -#: AppGUI/MainGUI.py:255 -msgid "Export &Excellon ..." -msgstr "Export &Excellon ..." - -#: AppGUI/MainGUI.py:257 -msgid "" -"Will export an Excellon Object as Excellon file,\n" -"the coordinates format, the file units and zeros\n" -"are set in Preferences -> Excellon Export." -msgstr "" -"Will export an Excellon Object as Excellon file,\n" -"the coordinates format, the file units and zeros\n" -"are set in Preferences -> Excellon Export." - -#: AppGUI/MainGUI.py:264 -msgid "Export &Gerber ..." -msgstr "Export &Gerber ..." - -#: AppGUI/MainGUI.py:266 -msgid "" -"Will export an Gerber Object as Gerber file,\n" -"the coordinates format, the file units and zeros\n" -"are set in Preferences -> Gerber Export." -msgstr "" -"Will export an Gerber Object as Gerber file,\n" -"the coordinates format, the file units and zeros\n" -"are set in Preferences -> Gerber Export." - -#: AppGUI/MainGUI.py:276 -msgid "Backup" -msgstr "Backup" - -#: AppGUI/MainGUI.py:281 -msgid "Import Preferences from file ..." -msgstr "Import Preferences from file ..." - -#: AppGUI/MainGUI.py:287 -msgid "Export Preferences to file ..." -msgstr "Export Preferences to file ..." - -#: AppGUI/MainGUI.py:295 AppGUI/preferences/PreferencesUIManager.py:1119 -msgid "Save Preferences" -msgstr "Save Preferences" - -#: AppGUI/MainGUI.py:301 AppGUI/MainGUI.py:4101 -msgid "Print (PDF)" -msgstr "Print (PDF)" - -#: AppGUI/MainGUI.py:309 -msgid "E&xit" -msgstr "E&xit" - -#: AppGUI/MainGUI.py:317 AppGUI/MainGUI.py:744 AppGUI/MainGUI.py:1529 -msgid "Edit" -msgstr "Edit" - -#: AppGUI/MainGUI.py:321 -msgid "Edit Object\tE" -msgstr "Edit Object\tE" - -#: AppGUI/MainGUI.py:323 -msgid "Close Editor\tCtrl+S" -msgstr "Close Editor\tCtrl+S" - -#: AppGUI/MainGUI.py:332 -msgid "Conversion" -msgstr "Conversion" - -#: AppGUI/MainGUI.py:334 -msgid "&Join Geo/Gerber/Exc -> Geo" -msgstr "&Join Geo/Gerber/Exc -> Geo" - -#: AppGUI/MainGUI.py:336 -msgid "" -"Merge a selection of objects, which can be of type:\n" -"- Gerber\n" -"- Excellon\n" -"- Geometry\n" -"into a new combo Geometry object." -msgstr "" -"Merge a selection of objects, which can be of type:\n" -"- Gerber\n" -"- Excellon\n" -"- Geometry\n" -"into a new combo Geometry object." - -#: AppGUI/MainGUI.py:343 -msgid "Join Excellon(s) -> Excellon" -msgstr "Join Excellon(s) -> Excellon" - -#: AppGUI/MainGUI.py:345 -msgid "Merge a selection of Excellon objects into a new combo Excellon object." -msgstr "" -"Merge a selection of Excellon objects into a new combo Excellon object." - -#: AppGUI/MainGUI.py:348 -msgid "Join Gerber(s) -> Gerber" -msgstr "Join Gerber(s) -> Gerber" - -#: AppGUI/MainGUI.py:350 -msgid "Merge a selection of Gerber objects into a new combo Gerber object." -msgstr "Merge a selection of Gerber objects into a new combo Gerber object." - -#: AppGUI/MainGUI.py:355 -msgid "Convert Single to MultiGeo" -msgstr "Convert Single to MultiGeo" - -#: AppGUI/MainGUI.py:357 -msgid "" -"Will convert a Geometry object from single_geometry type\n" -"to a multi_geometry type." -msgstr "" -"Will convert a Geometry object from single_geometry type\n" -"to a multi_geometry type." - -#: AppGUI/MainGUI.py:361 -msgid "Convert Multi to SingleGeo" -msgstr "Convert Multi to SingleGeo" - -#: AppGUI/MainGUI.py:363 -msgid "" -"Will convert a Geometry object from multi_geometry type\n" -"to a single_geometry type." -msgstr "" -"Will convert a Geometry object from multi_geometry type\n" -"to a single_geometry type." - -#: AppGUI/MainGUI.py:370 -msgid "Convert Any to Geo" -msgstr "Convert Any to Geo" - -#: AppGUI/MainGUI.py:373 -msgid "Convert Any to Gerber" -msgstr "Convert Any to Gerber" - -#: AppGUI/MainGUI.py:379 -msgid "&Copy\tCtrl+C" -msgstr "&Copy\tCtrl+C" - -#: AppGUI/MainGUI.py:384 -msgid "&Delete\tDEL" -msgstr "&Delete\tDEL" - -#: AppGUI/MainGUI.py:389 -msgid "Se&t Origin\tO" -msgstr "Se&t Origin\tO" - -#: AppGUI/MainGUI.py:391 -msgid "Move to Origin\tShift+O" -msgstr "Move to Origin\tShift+O" - -#: AppGUI/MainGUI.py:394 -msgid "Jump to Location\tJ" -msgstr "Jump to Location\tJ" - -#: AppGUI/MainGUI.py:396 -msgid "Locate in Object\tShift+J" -msgstr "Locate in Object\tShift+J" - -#: AppGUI/MainGUI.py:401 -msgid "Toggle Units\tQ" -msgstr "Toggle Units\tQ" - -#: AppGUI/MainGUI.py:403 -msgid "&Select All\tCtrl+A" -msgstr "&Select All\tCtrl+A" - -#: AppGUI/MainGUI.py:408 -msgid "&Preferences\tShift+P" -msgstr "&Preferences\tShift+P" - -#: AppGUI/MainGUI.py:414 AppTools/ToolProperties.py:155 -msgid "Options" -msgstr "Options" - -#: AppGUI/MainGUI.py:416 -msgid "&Rotate Selection\tShift+(R)" -msgstr "&Rotate Selection\tShift+(R)" - -#: AppGUI/MainGUI.py:421 -msgid "&Skew on X axis\tShift+X" -msgstr "&Skew on X axis\tShift+X" - -#: AppGUI/MainGUI.py:423 -msgid "S&kew on Y axis\tShift+Y" -msgstr "S&kew on Y axis\tShift+Y" - -#: AppGUI/MainGUI.py:428 -msgid "Flip on &X axis\tX" -msgstr "Flip on &X axis\tX" - -#: AppGUI/MainGUI.py:430 -msgid "Flip on &Y axis\tY" -msgstr "Flip on &Y axis\tY" - -#: AppGUI/MainGUI.py:435 -msgid "View source\tAlt+S" -msgstr "View source\tAlt+S" - -#: AppGUI/MainGUI.py:437 -msgid "Tools DataBase\tCtrl+D" -msgstr "Tools DataBase\tCtrl+D" - -#: AppGUI/MainGUI.py:444 AppGUI/MainGUI.py:1427 -msgid "View" -msgstr "View" - -#: AppGUI/MainGUI.py:446 -msgid "Enable all plots\tAlt+1" -msgstr "Enable all plots\tAlt+1" - -#: AppGUI/MainGUI.py:448 -msgid "Disable all plots\tAlt+2" -msgstr "Disable all plots\tAlt+2" - -#: AppGUI/MainGUI.py:450 -msgid "Disable non-selected\tAlt+3" -msgstr "Disable non-selected\tAlt+3" - -#: AppGUI/MainGUI.py:454 -msgid "&Zoom Fit\tV" -msgstr "&Zoom Fit\tV" - -#: AppGUI/MainGUI.py:456 -msgid "&Zoom In\t=" -msgstr "&Zoom In\t=" - -#: AppGUI/MainGUI.py:458 -msgid "&Zoom Out\t-" -msgstr "&Zoom Out\t-" - -#: AppGUI/MainGUI.py:463 -msgid "Redraw All\tF5" -msgstr "Redraw All\tF5" - -#: AppGUI/MainGUI.py:467 -msgid "Toggle Code Editor\tShift+E" -msgstr "Toggle Code Editor\tShift+E" - -#: AppGUI/MainGUI.py:470 -msgid "&Toggle FullScreen\tAlt+F10" -msgstr "&Toggle FullScreen\tAlt+F10" - -#: AppGUI/MainGUI.py:472 -msgid "&Toggle Plot Area\tCtrl+F10" -msgstr "&Toggle Plot Area\tCtrl+F10" - -#: AppGUI/MainGUI.py:474 -msgid "&Toggle Project/Sel/Tool\t`" -msgstr "&Toggle Project/Sel/Tool\t`" - -#: AppGUI/MainGUI.py:478 -msgid "&Toggle Grid Snap\tG" -msgstr "&Toggle Grid Snap\tG" - -#: AppGUI/MainGUI.py:480 -msgid "&Toggle Grid Lines\tAlt+G" -msgstr "&Toggle Grid Lines\tAlt+G" - -#: AppGUI/MainGUI.py:482 -msgid "&Toggle Axis\tShift+G" -msgstr "&Toggle Axis\tShift+G" - -#: AppGUI/MainGUI.py:484 -msgid "Toggle Workspace\tShift+W" -msgstr "Toggle Workspace\tShift+W" - -#: AppGUI/MainGUI.py:486 -msgid "Toggle HUD\tAlt+H" -msgstr "Toggle HUD\tAlt+H" - -#: AppGUI/MainGUI.py:491 -msgid "Objects" -msgstr "Objects" - -#: AppGUI/MainGUI.py:494 AppGUI/MainGUI.py:4099 -#: AppObjects/ObjectCollection.py:1121 AppObjects/ObjectCollection.py:1168 -msgid "Select All" -msgstr "Select All" - -#: AppGUI/MainGUI.py:496 AppObjects/ObjectCollection.py:1125 -#: AppObjects/ObjectCollection.py:1172 -msgid "Deselect All" -msgstr "Deselect All" - -#: AppGUI/MainGUI.py:505 -msgid "&Command Line\tS" -msgstr "&Command Line\tS" - -#: AppGUI/MainGUI.py:510 -msgid "Help" -msgstr "Help" - -#: AppGUI/MainGUI.py:512 -msgid "Online Help\tF1" -msgstr "Online Help\tF1" - -#: AppGUI/MainGUI.py:515 Bookmark.py:293 -msgid "Bookmarks" -msgstr "Bookmarks" - -#: AppGUI/MainGUI.py:518 App_Main.py:3091 App_Main.py:3100 -msgid "Bookmarks Manager" -msgstr "Bookmarks Manager" - -#: AppGUI/MainGUI.py:522 -msgid "Report a bug" -msgstr "Report a bug" - -#: AppGUI/MainGUI.py:525 -msgid "Excellon Specification" -msgstr "Excellon Specification" - -#: AppGUI/MainGUI.py:527 -msgid "Gerber Specification" -msgstr "Gerber Specification" - -#: AppGUI/MainGUI.py:532 -msgid "Shortcuts List\tF3" -msgstr "Shortcuts List\tF3" - -#: AppGUI/MainGUI.py:534 -msgid "YouTube Channel\tF4" -msgstr "YouTube Channel\tF4" - -#: AppGUI/MainGUI.py:539 -msgid "ReadMe?" -msgstr "ReadMe?" - -#: AppGUI/MainGUI.py:542 App_Main.py:2646 -msgid "About FlatCAM" -msgstr "About FlatCAM" - -#: AppGUI/MainGUI.py:551 -msgid "Add Circle\tO" -msgstr "Add Circle\tO" - -#: AppGUI/MainGUI.py:554 -msgid "Add Arc\tA" -msgstr "Add Arc\tA" - -#: AppGUI/MainGUI.py:557 -msgid "Add Rectangle\tR" -msgstr "Add Rectangle\tR" - -#: AppGUI/MainGUI.py:560 -msgid "Add Polygon\tN" -msgstr "Add Polygon\tN" - -#: AppGUI/MainGUI.py:563 -msgid "Add Path\tP" -msgstr "Add Path\tP" - -#: AppGUI/MainGUI.py:566 -msgid "Add Text\tT" -msgstr "Add Text\tT" - -#: AppGUI/MainGUI.py:569 -msgid "Polygon Union\tU" -msgstr "Polygon Union\tU" - -#: AppGUI/MainGUI.py:571 -msgid "Polygon Intersection\tE" -msgstr "Polygon Intersection\tE" - -#: AppGUI/MainGUI.py:573 -msgid "Polygon Subtraction\tS" -msgstr "Polygon Subtraction\tS" - -#: AppGUI/MainGUI.py:577 -msgid "Cut Path\tX" -msgstr "Cut Path\tX" - -#: AppGUI/MainGUI.py:581 -msgid "Copy Geom\tC" -msgstr "Copy Geom\tC" - -#: AppGUI/MainGUI.py:583 -msgid "Delete Shape\tDEL" -msgstr "Delete Shape\tDEL" - -#: AppGUI/MainGUI.py:587 AppGUI/MainGUI.py:674 -msgid "Move\tM" -msgstr "Move\tM" - -#: AppGUI/MainGUI.py:589 -msgid "Buffer Tool\tB" -msgstr "Buffer Tool\tB" - -#: AppGUI/MainGUI.py:592 -msgid "Paint Tool\tI" -msgstr "Paint Tool\tI" - -#: AppGUI/MainGUI.py:595 -msgid "Transform Tool\tAlt+R" -msgstr "Transform Tool\tAlt+R" - -#: AppGUI/MainGUI.py:599 -msgid "Toggle Corner Snap\tK" -msgstr "Toggle Corner Snap\tK" - -#: AppGUI/MainGUI.py:605 -msgid ">Excellon Editor<" -msgstr ">Excellon Editor<" - -#: AppGUI/MainGUI.py:609 -msgid "Add Drill Array\tA" -msgstr "Add Drill Array\tA" - -#: AppGUI/MainGUI.py:611 -msgid "Add Drill\tD" -msgstr "Add Drill\tD" - -#: AppGUI/MainGUI.py:615 -msgid "Add Slot Array\tQ" -msgstr "Add Slot Array\tQ" - -#: AppGUI/MainGUI.py:617 -msgid "Add Slot\tW" -msgstr "Add Slot\tW" - -#: AppGUI/MainGUI.py:621 -msgid "Resize Drill(S)\tR" -msgstr "Resize Drill(S)\tR" - -#: AppGUI/MainGUI.py:624 AppGUI/MainGUI.py:668 -msgid "Copy\tC" -msgstr "Copy\tC" - -#: AppGUI/MainGUI.py:626 AppGUI/MainGUI.py:670 -msgid "Delete\tDEL" -msgstr "Delete\tDEL" - -#: AppGUI/MainGUI.py:631 -msgid "Move Drill(s)\tM" -msgstr "Move Drill(s)\tM" - -#: AppGUI/MainGUI.py:636 -msgid ">Gerber Editor<" -msgstr ">Gerber Editor<" - -#: AppGUI/MainGUI.py:640 -msgid "Add Pad\tP" -msgstr "Add Pad\tP" - -#: AppGUI/MainGUI.py:642 -msgid "Add Pad Array\tA" -msgstr "Add Pad Array\tA" - -#: AppGUI/MainGUI.py:644 -msgid "Add Track\tT" -msgstr "Add Track\tT" - -#: AppGUI/MainGUI.py:646 -msgid "Add Region\tN" -msgstr "Add Region\tN" - -#: AppGUI/MainGUI.py:650 -msgid "Poligonize\tAlt+N" -msgstr "Poligonize\tAlt+N" - -#: AppGUI/MainGUI.py:652 -msgid "Add SemiDisc\tE" -msgstr "Add SemiDisc\tE" - -#: AppGUI/MainGUI.py:654 -msgid "Add Disc\tD" -msgstr "Add Disc\tD" - -#: AppGUI/MainGUI.py:656 -msgid "Buffer\tB" -msgstr "Buffer\tB" - -#: AppGUI/MainGUI.py:658 -msgid "Scale\tS" -msgstr "Scale\tS" - -#: AppGUI/MainGUI.py:660 -msgid "Mark Area\tAlt+A" -msgstr "Mark Area\tAlt+A" - -#: AppGUI/MainGUI.py:662 -msgid "Eraser\tCtrl+E" -msgstr "Eraser\tCtrl+E" - -#: AppGUI/MainGUI.py:664 -msgid "Transform\tAlt+R" -msgstr "Transform\tAlt+R" - -#: AppGUI/MainGUI.py:691 -msgid "Enable Plot" -msgstr "Enable Plot" - -#: AppGUI/MainGUI.py:693 -msgid "Disable Plot" -msgstr "Disable Plot" - -#: AppGUI/MainGUI.py:697 -msgid "Set Color" -msgstr "Set Color" - -#: AppGUI/MainGUI.py:700 App_Main.py:9644 -msgid "Red" -msgstr "Red" - -#: AppGUI/MainGUI.py:703 App_Main.py:9646 -msgid "Blue" -msgstr "Blue" - -#: AppGUI/MainGUI.py:706 App_Main.py:9649 -msgid "Yellow" -msgstr "Yellow" - -#: AppGUI/MainGUI.py:709 App_Main.py:9651 -msgid "Green" -msgstr "Green" - -#: AppGUI/MainGUI.py:712 App_Main.py:9653 -msgid "Purple" -msgstr "Purple" - -#: AppGUI/MainGUI.py:715 App_Main.py:9655 -msgid "Brown" -msgstr "Brown" - -#: AppGUI/MainGUI.py:718 App_Main.py:9657 App_Main.py:9713 -msgid "White" -msgstr "White" - -#: AppGUI/MainGUI.py:721 App_Main.py:9659 -msgid "Black" -msgstr "Black" - -#: AppGUI/MainGUI.py:726 App_Main.py:9662 -msgid "Custom" -msgstr "Custom" - -#: AppGUI/MainGUI.py:731 App_Main.py:9696 -msgid "Opacity" -msgstr "Opacity" - -#: AppGUI/MainGUI.py:734 App_Main.py:9672 -msgid "Default" -msgstr "Default" - -#: AppGUI/MainGUI.py:739 -msgid "Generate CNC" -msgstr "Generate CNC" - -#: AppGUI/MainGUI.py:741 -msgid "View Source" -msgstr "View Source" - -#: AppGUI/MainGUI.py:746 AppGUI/MainGUI.py:851 AppGUI/MainGUI.py:1066 -#: AppGUI/MainGUI.py:1525 AppGUI/MainGUI.py:1886 AppGUI/MainGUI.py:2097 -#: AppGUI/MainGUI.py:4511 AppGUI/ObjectUI.py:1519 -#: AppObjects/FlatCAMGeometry.py:560 AppTools/ToolPanelize.py:551 -#: AppTools/ToolPanelize.py:578 AppTools/ToolPanelize.py:671 -#: AppTools/ToolPanelize.py:700 AppTools/ToolPanelize.py:762 -msgid "Copy" -msgstr "Copy" - -#: AppGUI/MainGUI.py:754 AppGUI/MainGUI.py:1538 AppTools/ToolProperties.py:31 -msgid "Properties" -msgstr "Properties" - -#: AppGUI/MainGUI.py:783 -msgid "File Toolbar" -msgstr "File Toolbar" - -#: AppGUI/MainGUI.py:787 -msgid "Edit Toolbar" -msgstr "Edit Toolbar" - -#: AppGUI/MainGUI.py:791 -msgid "View Toolbar" -msgstr "View Toolbar" - -#: AppGUI/MainGUI.py:795 -msgid "Shell Toolbar" -msgstr "Shell Toolbar" - -#: AppGUI/MainGUI.py:799 -msgid "Tools Toolbar" -msgstr "Tools Toolbar" - -#: AppGUI/MainGUI.py:803 -msgid "Excellon Editor Toolbar" -msgstr "Excellon Editor Toolbar" - -#: AppGUI/MainGUI.py:809 -msgid "Geometry Editor Toolbar" -msgstr "Geometry Editor Toolbar" - -#: AppGUI/MainGUI.py:813 -msgid "Gerber Editor Toolbar" -msgstr "Gerber Editor Toolbar" - -#: AppGUI/MainGUI.py:817 -msgid "Grid Toolbar" -msgstr "Grid Toolbar" - -#: AppGUI/MainGUI.py:831 AppGUI/MainGUI.py:1865 App_Main.py:6592 -#: App_Main.py:6597 -msgid "Open Gerber" -msgstr "Open Gerber" - -#: AppGUI/MainGUI.py:833 AppGUI/MainGUI.py:1867 App_Main.py:6632 -#: App_Main.py:6637 -msgid "Open Excellon" -msgstr "Open Excellon" - -#: AppGUI/MainGUI.py:836 AppGUI/MainGUI.py:1870 -msgid "Open project" -msgstr "Open project" - -#: AppGUI/MainGUI.py:838 AppGUI/MainGUI.py:1872 -msgid "Save project" -msgstr "Save project" - -#: AppGUI/MainGUI.py:846 AppGUI/MainGUI.py:1881 -msgid "Save Object and close the Editor" -msgstr "Save Object and close the Editor" - -#: AppGUI/MainGUI.py:853 AppGUI/MainGUI.py:1888 -msgid "&Delete" -msgstr "&Delete" - -#: AppGUI/MainGUI.py:856 AppGUI/MainGUI.py:1891 AppGUI/MainGUI.py:4100 -#: AppGUI/MainGUI.py:4308 AppTools/ToolDistance.py:35 -#: AppTools/ToolDistance.py:197 -msgid "Distance Tool" -msgstr "Distance Tool" - -#: AppGUI/MainGUI.py:858 AppGUI/MainGUI.py:1893 -msgid "Distance Min Tool" -msgstr "Distance Min Tool" - -#: AppGUI/MainGUI.py:860 AppGUI/MainGUI.py:1895 AppGUI/MainGUI.py:4093 -msgid "Set Origin" -msgstr "Set Origin" - -#: AppGUI/MainGUI.py:862 AppGUI/MainGUI.py:1897 -msgid "Move to Origin" -msgstr "Move to Origin" - -#: AppGUI/MainGUI.py:865 AppGUI/MainGUI.py:1899 -msgid "Jump to Location" -msgstr "Jump to Location" - -#: AppGUI/MainGUI.py:867 AppGUI/MainGUI.py:1901 AppGUI/MainGUI.py:4105 -msgid "Locate in Object" -msgstr "Locate in Object" - -#: AppGUI/MainGUI.py:873 AppGUI/MainGUI.py:1907 -msgid "&Replot" -msgstr "&Replot" - -#: AppGUI/MainGUI.py:875 AppGUI/MainGUI.py:1909 -msgid "&Clear plot" -msgstr "&Clear plot" - -#: AppGUI/MainGUI.py:877 AppGUI/MainGUI.py:1911 AppGUI/MainGUI.py:4096 -msgid "Zoom In" -msgstr "Zoom In" - -#: AppGUI/MainGUI.py:879 AppGUI/MainGUI.py:1913 AppGUI/MainGUI.py:4096 -msgid "Zoom Out" -msgstr "Zoom Out" - -#: AppGUI/MainGUI.py:881 AppGUI/MainGUI.py:1429 AppGUI/MainGUI.py:1915 -#: AppGUI/MainGUI.py:4095 -msgid "Zoom Fit" -msgstr "Zoom Fit" - -#: AppGUI/MainGUI.py:889 AppGUI/MainGUI.py:1921 -msgid "&Command Line" -msgstr "&Command Line" - -#: AppGUI/MainGUI.py:901 AppGUI/MainGUI.py:1933 -msgid "2Sided Tool" -msgstr "2Sided Tool" - -#: AppGUI/MainGUI.py:903 AppGUI/MainGUI.py:1935 AppGUI/MainGUI.py:4111 -msgid "Align Objects Tool" -msgstr "Align Objects Tool" - -#: AppGUI/MainGUI.py:905 AppGUI/MainGUI.py:1937 AppGUI/MainGUI.py:4111 -#: AppTools/ToolExtractDrills.py:393 -msgid "Extract Drills Tool" -msgstr "Extract Drills Tool" - -#: AppGUI/MainGUI.py:908 AppGUI/ObjectUI.py:360 AppTools/ToolCutOut.py:440 -msgid "Cutout Tool" -msgstr "Cutout Tool" - -#: AppGUI/MainGUI.py:910 AppGUI/MainGUI.py:1942 AppGUI/ObjectUI.py:346 -#: AppGUI/ObjectUI.py:2087 AppTools/ToolNCC.py:974 -msgid "NCC Tool" -msgstr "NCC Tool" - -#: AppGUI/MainGUI.py:914 AppGUI/MainGUI.py:1946 AppGUI/MainGUI.py:4113 -#: AppTools/ToolIsolation.py:38 AppTools/ToolIsolation.py:766 -msgid "Isolation Tool" -msgstr "Isolation Tool" - -#: AppGUI/MainGUI.py:918 AppGUI/MainGUI.py:1950 -msgid "Panel Tool" -msgstr "Panel Tool" - -#: AppGUI/MainGUI.py:920 AppGUI/MainGUI.py:1952 AppTools/ToolFilm.py:569 -msgid "Film Tool" -msgstr "Film Tool" - -#: AppGUI/MainGUI.py:922 AppGUI/MainGUI.py:1954 AppTools/ToolSolderPaste.py:561 -msgid "SolderPaste Tool" -msgstr "SolderPaste Tool" - -#: AppGUI/MainGUI.py:924 AppGUI/MainGUI.py:1956 AppGUI/MainGUI.py:4118 -#: AppTools/ToolSub.py:40 -msgid "Subtract Tool" -msgstr "Subtract Tool" - -#: AppGUI/MainGUI.py:926 AppGUI/MainGUI.py:1958 AppTools/ToolRulesCheck.py:616 -msgid "Rules Tool" -msgstr "Rules Tool" - -#: AppGUI/MainGUI.py:928 AppGUI/MainGUI.py:1960 AppGUI/MainGUI.py:4115 -#: AppTools/ToolOptimal.py:33 AppTools/ToolOptimal.py:313 -msgid "Optimal Tool" -msgstr "Optimal Tool" - -#: AppGUI/MainGUI.py:933 AppGUI/MainGUI.py:1965 AppGUI/MainGUI.py:4111 -msgid "Calculators Tool" -msgstr "Calculators Tool" - -#: AppGUI/MainGUI.py:937 AppGUI/MainGUI.py:1969 AppGUI/MainGUI.py:4116 -#: AppTools/ToolQRCode.py:43 AppTools/ToolQRCode.py:391 -msgid "QRCode Tool" -msgstr "QRCode Tool" - -#: AppGUI/MainGUI.py:939 AppGUI/MainGUI.py:1971 AppGUI/MainGUI.py:4113 -#: AppTools/ToolCopperThieving.py:39 AppTools/ToolCopperThieving.py:572 -msgid "Copper Thieving Tool" -msgstr "Copper Thieving Tool" - -#: AppGUI/MainGUI.py:942 AppGUI/MainGUI.py:1974 AppGUI/MainGUI.py:4112 -#: AppTools/ToolFiducials.py:33 AppTools/ToolFiducials.py:399 -msgid "Fiducials Tool" -msgstr "Fiducials Tool" - -#: AppGUI/MainGUI.py:944 AppGUI/MainGUI.py:1976 AppTools/ToolCalibration.py:37 -#: AppTools/ToolCalibration.py:759 -msgid "Calibration Tool" -msgstr "Calibration Tool" - -#: AppGUI/MainGUI.py:946 AppGUI/MainGUI.py:1978 AppGUI/MainGUI.py:4113 -msgid "Punch Gerber Tool" -msgstr "Punch Gerber Tool" - -#: AppGUI/MainGUI.py:948 AppGUI/MainGUI.py:1980 AppTools/ToolInvertGerber.py:31 -msgid "Invert Gerber Tool" -msgstr "Invert Gerber Tool" - -#: AppGUI/MainGUI.py:950 AppGUI/MainGUI.py:1982 AppGUI/MainGUI.py:4115 -#: AppTools/ToolCorners.py:31 -msgid "Corner Markers Tool" -msgstr "Corner Markers Tool" - -#: AppGUI/MainGUI.py:952 AppGUI/MainGUI.py:1984 -#: AppTools/ToolEtchCompensation.py:32 AppTools/ToolEtchCompensation.py:288 -msgid "Etch Compensation Tool" -msgstr "Etch Compensation Tool" - -#: AppGUI/MainGUI.py:958 AppGUI/MainGUI.py:984 AppGUI/MainGUI.py:1036 -#: AppGUI/MainGUI.py:1990 AppGUI/MainGUI.py:2068 -msgid "Select" -msgstr "Select" - -#: AppGUI/MainGUI.py:960 AppGUI/MainGUI.py:1992 -msgid "Add Drill Hole" -msgstr "Add Drill Hole" - -#: AppGUI/MainGUI.py:962 AppGUI/MainGUI.py:1994 -msgid "Add Drill Hole Array" -msgstr "Add Drill Hole Array" - -#: AppGUI/MainGUI.py:964 AppGUI/MainGUI.py:1517 AppGUI/MainGUI.py:1998 -#: AppGUI/MainGUI.py:4393 -msgid "Add Slot" -msgstr "Add Slot" - -#: AppGUI/MainGUI.py:966 AppGUI/MainGUI.py:1519 AppGUI/MainGUI.py:2000 -#: AppGUI/MainGUI.py:4392 -msgid "Add Slot Array" -msgstr "Add Slot Array" - -#: AppGUI/MainGUI.py:968 AppGUI/MainGUI.py:1522 AppGUI/MainGUI.py:1996 -msgid "Resize Drill" -msgstr "Resize Drill" - -#: AppGUI/MainGUI.py:972 AppGUI/MainGUI.py:2004 -msgid "Copy Drill" -msgstr "Copy Drill" - -#: AppGUI/MainGUI.py:974 AppGUI/MainGUI.py:2006 -msgid "Delete Drill" -msgstr "Delete Drill" - -#: AppGUI/MainGUI.py:978 AppGUI/MainGUI.py:2010 -msgid "Move Drill" -msgstr "Move Drill" - -#: AppGUI/MainGUI.py:986 AppGUI/MainGUI.py:2018 -msgid "Add Circle" -msgstr "Add Circle" - -#: AppGUI/MainGUI.py:988 AppGUI/MainGUI.py:2020 -msgid "Add Arc" -msgstr "Add Arc" - -#: AppGUI/MainGUI.py:990 AppGUI/MainGUI.py:2022 -msgid "Add Rectangle" -msgstr "Add Rectangle" - -#: AppGUI/MainGUI.py:994 AppGUI/MainGUI.py:2026 -msgid "Add Path" -msgstr "Add Path" - -#: AppGUI/MainGUI.py:996 AppGUI/MainGUI.py:2028 -msgid "Add Polygon" -msgstr "Add Polygon" - -#: AppGUI/MainGUI.py:999 AppGUI/MainGUI.py:2031 -msgid "Add Text" -msgstr "Add Text" - -#: AppGUI/MainGUI.py:1001 AppGUI/MainGUI.py:2033 -msgid "Add Buffer" -msgstr "Add Buffer" - -#: AppGUI/MainGUI.py:1003 AppGUI/MainGUI.py:2035 -msgid "Paint Shape" -msgstr "Paint Shape" - -#: AppGUI/MainGUI.py:1005 AppGUI/MainGUI.py:1062 AppGUI/MainGUI.py:1458 -#: AppGUI/MainGUI.py:1503 AppGUI/MainGUI.py:2037 AppGUI/MainGUI.py:2093 -msgid "Eraser" -msgstr "Eraser" - -#: AppGUI/MainGUI.py:1009 AppGUI/MainGUI.py:2041 -msgid "Polygon Union" -msgstr "Polygon Union" - -#: AppGUI/MainGUI.py:1011 AppGUI/MainGUI.py:2043 -msgid "Polygon Explode" -msgstr "Polygon Explode" - -#: AppGUI/MainGUI.py:1014 AppGUI/MainGUI.py:2046 -msgid "Polygon Intersection" -msgstr "Polygon Intersection" - -#: AppGUI/MainGUI.py:1016 AppGUI/MainGUI.py:2048 -msgid "Polygon Subtraction" -msgstr "Polygon Subtraction" - -#: AppGUI/MainGUI.py:1020 AppGUI/MainGUI.py:2052 -msgid "Cut Path" -msgstr "Cut Path" - -#: AppGUI/MainGUI.py:1022 -msgid "Copy Shape(s)" -msgstr "Copy Shape(s)" - -#: AppGUI/MainGUI.py:1025 -msgid "Delete Shape '-'" -msgstr "Delete Shape '-'" - -#: AppGUI/MainGUI.py:1027 AppGUI/MainGUI.py:1070 AppGUI/MainGUI.py:1470 -#: AppGUI/MainGUI.py:1507 AppGUI/MainGUI.py:2058 AppGUI/MainGUI.py:2101 -#: AppGUI/ObjectUI.py:109 AppGUI/ObjectUI.py:152 -msgid "Transformations" -msgstr "Transformations" - -#: AppGUI/MainGUI.py:1030 -msgid "Move Objects " -msgstr "Move Objects " - -#: AppGUI/MainGUI.py:1038 AppGUI/MainGUI.py:2070 AppGUI/MainGUI.py:4512 -msgid "Add Pad" -msgstr "Add Pad" - -#: AppGUI/MainGUI.py:1042 AppGUI/MainGUI.py:2074 AppGUI/MainGUI.py:4513 -msgid "Add Track" -msgstr "Add Track" - -#: AppGUI/MainGUI.py:1044 AppGUI/MainGUI.py:2076 AppGUI/MainGUI.py:4512 -msgid "Add Region" -msgstr "Add Region" - -#: AppGUI/MainGUI.py:1046 AppGUI/MainGUI.py:1489 AppGUI/MainGUI.py:2078 -msgid "Poligonize" -msgstr "Poligonize" - -#: AppGUI/MainGUI.py:1049 AppGUI/MainGUI.py:1491 AppGUI/MainGUI.py:2081 -msgid "SemiDisc" -msgstr "SemiDisc" - -#: AppGUI/MainGUI.py:1051 AppGUI/MainGUI.py:1493 AppGUI/MainGUI.py:2083 -msgid "Disc" -msgstr "Disc" - -#: AppGUI/MainGUI.py:1059 AppGUI/MainGUI.py:1501 AppGUI/MainGUI.py:2091 -msgid "Mark Area" -msgstr "Mark Area" - -#: AppGUI/MainGUI.py:1073 AppGUI/MainGUI.py:1474 AppGUI/MainGUI.py:1536 -#: AppGUI/MainGUI.py:2104 AppGUI/MainGUI.py:4512 AppTools/ToolMove.py:27 -msgid "Move" -msgstr "Move" - -#: AppGUI/MainGUI.py:1081 -msgid "Snap to grid" -msgstr "Snap to grid" - -#: AppGUI/MainGUI.py:1084 -msgid "Grid X snapping distance" -msgstr "Grid X snapping distance" - -#: AppGUI/MainGUI.py:1089 -msgid "" -"When active, value on Grid_X\n" -"is copied to the Grid_Y value." -msgstr "" -"When active, value on Grid_X\n" -"is copied to the Grid_Y value." - -#: AppGUI/MainGUI.py:1096 -msgid "Grid Y snapping distance" -msgstr "Grid Y snapping distance" - -#: AppGUI/MainGUI.py:1101 -msgid "Toggle the display of axis on canvas" -msgstr "Toggle the display of axis on canvas" - -#: AppGUI/MainGUI.py:1107 AppGUI/preferences/PreferencesUIManager.py:846 -#: AppGUI/preferences/PreferencesUIManager.py:938 -#: AppGUI/preferences/PreferencesUIManager.py:966 -#: AppGUI/preferences/PreferencesUIManager.py:1072 App_Main.py:5140 -#: App_Main.py:5145 App_Main.py:5168 -msgid "Preferences" -msgstr "Preferences" - -#: AppGUI/MainGUI.py:1113 -msgid "Command Line" -msgstr "Command Line" - -#: AppGUI/MainGUI.py:1119 -msgid "HUD (Heads up display)" -msgstr "HUD (Heads up display)" - -#: AppGUI/MainGUI.py:1125 AppGUI/preferences/general/GeneralAPPSetGroupUI.py:97 -msgid "" -"Draw a delimiting rectangle on canvas.\n" -"The purpose is to illustrate the limits for our work." -msgstr "" -"Draw a delimiting rectangle on canvas.\n" -"The purpose is to illustrate the limits for our work." - -#: AppGUI/MainGUI.py:1135 -msgid "Snap to corner" -msgstr "Snap to corner" - -#: AppGUI/MainGUI.py:1139 AppGUI/preferences/general/GeneralAPPSetGroupUI.py:78 -msgid "Max. magnet distance" -msgstr "Max. magnet distance" - -#: AppGUI/MainGUI.py:1175 AppGUI/MainGUI.py:1420 App_Main.py:7639 -msgid "Project" -msgstr "Project" - -#: AppGUI/MainGUI.py:1190 -msgid "Selected" -msgstr "Selected" - -#: AppGUI/MainGUI.py:1218 AppGUI/MainGUI.py:1226 -msgid "Plot Area" -msgstr "Plot Area" - -#: AppGUI/MainGUI.py:1253 -msgid "General" -msgstr "General" - -#: AppGUI/MainGUI.py:1268 AppTools/ToolCopperThieving.py:74 -#: AppTools/ToolCorners.py:55 AppTools/ToolDblSided.py:64 -#: AppTools/ToolEtchCompensation.py:73 AppTools/ToolExtractDrills.py:61 -#: AppTools/ToolFiducials.py:262 AppTools/ToolInvertGerber.py:72 -#: AppTools/ToolIsolation.py:94 AppTools/ToolOptimal.py:71 -#: AppTools/ToolPunchGerber.py:64 AppTools/ToolQRCode.py:78 -#: AppTools/ToolRulesCheck.py:61 AppTools/ToolSolderPaste.py:67 -#: AppTools/ToolSub.py:70 -msgid "GERBER" -msgstr "GERBER" - -#: AppGUI/MainGUI.py:1278 AppTools/ToolDblSided.py:92 -#: AppTools/ToolRulesCheck.py:199 -msgid "EXCELLON" -msgstr "EXCELLON" - -#: AppGUI/MainGUI.py:1288 AppTools/ToolDblSided.py:120 AppTools/ToolSub.py:125 -msgid "GEOMETRY" -msgstr "GEOMETRY" - -#: AppGUI/MainGUI.py:1298 -msgid "CNC-JOB" -msgstr "CNC-JOB" - -#: AppGUI/MainGUI.py:1307 AppGUI/ObjectUI.py:328 AppGUI/ObjectUI.py:2062 -msgid "TOOLS" -msgstr "TOOLS" - -#: AppGUI/MainGUI.py:1316 -msgid "TOOLS 2" -msgstr "TOOLS 2" - -#: AppGUI/MainGUI.py:1326 -msgid "UTILITIES" -msgstr "UTILITIES" - -#: AppGUI/MainGUI.py:1343 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:201 -msgid "Restore Defaults" -msgstr "Restore Defaults" - -#: AppGUI/MainGUI.py:1346 -msgid "" -"Restore the entire set of default values\n" -"to the initial values loaded after first launch." -msgstr "" -"Restore the entire set of default values\n" -"to the initial values loaded after first launch." - -#: AppGUI/MainGUI.py:1351 -msgid "Open Pref Folder" -msgstr "Open Pref Folder" - -#: AppGUI/MainGUI.py:1354 -msgid "Open the folder where FlatCAM save the preferences files." -msgstr "Open the folder where FlatCAM save the preferences files." - -#: AppGUI/MainGUI.py:1358 AppGUI/MainGUI.py:1836 -msgid "Clear GUI Settings" -msgstr "Clear GUI Settings" - -#: AppGUI/MainGUI.py:1362 -msgid "" -"Clear the GUI settings for FlatCAM,\n" -"such as: layout, gui state, style, hdpi support etc." -msgstr "" -"Clear the GUI settings for FlatCAM,\n" -"such as: layout, gui state, style, hdpi support etc." - -#: AppGUI/MainGUI.py:1373 -msgid "Apply" -msgstr "Apply" - -#: AppGUI/MainGUI.py:1376 -msgid "Apply the current preferences without saving to a file." -msgstr "Apply the current preferences without saving to a file." - -#: AppGUI/MainGUI.py:1383 -msgid "" -"Save the current settings in the 'current_defaults' file\n" -"which is the file storing the working default preferences." -msgstr "" -"Save the current settings in the 'current_defaults' file\n" -"which is the file storing the working default preferences." - -#: AppGUI/MainGUI.py:1391 -msgid "Will not save the changes and will close the preferences window." -msgstr "Will not save the changes and will close the preferences window." - -#: AppGUI/MainGUI.py:1405 -msgid "Toggle Visibility" -msgstr "Toggle Visibility" - -#: AppGUI/MainGUI.py:1411 -msgid "New" -msgstr "New" - -#: AppGUI/MainGUI.py:1413 AppTools/ToolCalibration.py:631 -#: AppTools/ToolCalibration.py:648 AppTools/ToolCalibration.py:815 -#: AppTools/ToolCopperThieving.py:148 AppTools/ToolCopperThieving.py:162 -#: AppTools/ToolCopperThieving.py:608 AppTools/ToolCutOut.py:92 -#: AppTools/ToolDblSided.py:226 AppTools/ToolFilm.py:69 AppTools/ToolFilm.py:92 -#: AppTools/ToolImage.py:49 AppTools/ToolImage.py:271 -#: AppTools/ToolIsolation.py:464 AppTools/ToolIsolation.py:517 -#: AppTools/ToolIsolation.py:1281 AppTools/ToolNCC.py:95 -#: AppTools/ToolNCC.py:558 AppTools/ToolNCC.py:1318 AppTools/ToolPaint.py:501 -#: AppTools/ToolPaint.py:705 AppTools/ToolPanelize.py:116 -#: AppTools/ToolPanelize.py:385 AppTools/ToolPanelize.py:402 -msgid "Geometry" -msgstr "Geometry" - -#: AppGUI/MainGUI.py:1417 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:99 -#: AppTools/ToolAlignObjects.py:74 AppTools/ToolAlignObjects.py:110 -#: AppTools/ToolCalibration.py:197 AppTools/ToolCalibration.py:631 -#: AppTools/ToolCalibration.py:648 AppTools/ToolCalibration.py:807 -#: AppTools/ToolCalibration.py:815 AppTools/ToolCopperThieving.py:148 -#: AppTools/ToolCopperThieving.py:162 AppTools/ToolCopperThieving.py:608 -#: AppTools/ToolDblSided.py:225 AppTools/ToolFilm.py:342 -#: AppTools/ToolIsolation.py:517 AppTools/ToolIsolation.py:1281 -#: AppTools/ToolNCC.py:558 AppTools/ToolNCC.py:1318 AppTools/ToolPaint.py:501 -#: AppTools/ToolPaint.py:705 AppTools/ToolPanelize.py:385 -#: AppTools/ToolPunchGerber.py:149 AppTools/ToolPunchGerber.py:164 -msgid "Excellon" -msgstr "Excellon" - -#: AppGUI/MainGUI.py:1424 -msgid "Grids" -msgstr "Grids" - -#: AppGUI/MainGUI.py:1431 -msgid "Clear Plot" -msgstr "Clear Plot" - -#: AppGUI/MainGUI.py:1433 -msgid "Replot" -msgstr "Replot" - -#: AppGUI/MainGUI.py:1437 -msgid "Geo Editor" -msgstr "Geo Editor" - -#: AppGUI/MainGUI.py:1439 -msgid "Path" -msgstr "Path" - -#: AppGUI/MainGUI.py:1441 -msgid "Rectangle" -msgstr "Rectangle" - -#: AppGUI/MainGUI.py:1444 -msgid "Circle" -msgstr "Circle" - -#: AppGUI/MainGUI.py:1448 -msgid "Arc" -msgstr "Arc" - -#: AppGUI/MainGUI.py:1462 -msgid "Union" -msgstr "Union" - -#: AppGUI/MainGUI.py:1464 -msgid "Intersection" -msgstr "Intersection" - -#: AppGUI/MainGUI.py:1466 -msgid "Subtraction" -msgstr "Subtraction" - -#: AppGUI/MainGUI.py:1468 AppGUI/ObjectUI.py:2151 -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:56 -msgid "Cut" -msgstr "Cut" - -#: AppGUI/MainGUI.py:1479 -msgid "Pad" -msgstr "Pad" - -#: AppGUI/MainGUI.py:1481 -msgid "Pad Array" -msgstr "Pad Array" - -#: AppGUI/MainGUI.py:1485 -msgid "Track" -msgstr "Track" - -#: AppGUI/MainGUI.py:1487 -msgid "Region" -msgstr "Region" - -#: AppGUI/MainGUI.py:1510 -msgid "Exc Editor" -msgstr "Exc Editor" - -#: AppGUI/MainGUI.py:1512 AppGUI/MainGUI.py:4391 -msgid "Add Drill" -msgstr "Add Drill" - -#: AppGUI/MainGUI.py:1531 App_Main.py:2219 -msgid "Close Editor" -msgstr "Close Editor" - -#: AppGUI/MainGUI.py:1555 -msgid "" -"Absolute measurement.\n" -"Reference is (X=0, Y= 0) position" -msgstr "" -"Absolute measurement.\n" -"Reference is (X=0, Y= 0) position" - -#: AppGUI/MainGUI.py:1563 -msgid "Application units" -msgstr "Application units" - -#: AppGUI/MainGUI.py:1654 -msgid "Lock Toolbars" -msgstr "Lock Toolbars" - -#: AppGUI/MainGUI.py:1824 -msgid "FlatCAM Preferences Folder opened." -msgstr "FlatCAM Preferences Folder opened." - -#: AppGUI/MainGUI.py:1835 -msgid "Are you sure you want to delete the GUI Settings? \n" -msgstr "Are you sure you want to delete the GUI Settings? \n" - -#: AppGUI/MainGUI.py:1840 AppGUI/preferences/PreferencesUIManager.py:877 -#: AppGUI/preferences/PreferencesUIManager.py:1123 AppTranslation.py:111 -#: AppTranslation.py:210 App_Main.py:2223 App_Main.py:3158 App_Main.py:5354 -#: App_Main.py:6415 -msgid "Yes" -msgstr "Yes" - -#: AppGUI/MainGUI.py:1841 AppGUI/preferences/PreferencesUIManager.py:1124 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:62 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:164 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:150 -#: AppTools/ToolIsolation.py:174 AppTools/ToolNCC.py:182 -#: AppTools/ToolPaint.py:165 AppTranslation.py:112 AppTranslation.py:211 -#: App_Main.py:2224 App_Main.py:3159 App_Main.py:5355 App_Main.py:6416 -msgid "No" -msgstr "No" - -#: AppGUI/MainGUI.py:1940 -msgid "&Cutout Tool" -msgstr "&Cutout Tool" - -#: AppGUI/MainGUI.py:2016 -msgid "Select 'Esc'" -msgstr "Select 'Esc'" - -#: AppGUI/MainGUI.py:2054 -msgid "Copy Objects" -msgstr "Copy Objects" - -#: AppGUI/MainGUI.py:2056 AppGUI/MainGUI.py:4311 -msgid "Delete Shape" -msgstr "Delete Shape" - -#: AppGUI/MainGUI.py:2062 -msgid "Move Objects" -msgstr "Move Objects" - -#: AppGUI/MainGUI.py:2648 -msgid "" -"Please first select a geometry item to be cutted\n" -"then select the geometry item that will be cutted\n" -"out of the first item. In the end press ~X~ key or\n" -"the toolbar button." -msgstr "" -"Please first select a geometry item to be cutted\n" -"then select the geometry item that will be cutted\n" -"out of the first item. In the end press ~X~ key or\n" -"the toolbar button." - -#: AppGUI/MainGUI.py:2655 AppGUI/MainGUI.py:2819 AppGUI/MainGUI.py:2866 -#: AppGUI/MainGUI.py:2888 -msgid "Warning" -msgstr "Warning" - -#: AppGUI/MainGUI.py:2814 -msgid "" -"Please select geometry items \n" -"on which to perform Intersection Tool." -msgstr "" -"Please select geometry items \n" -"on which to perform Intersection Tool." - -#: AppGUI/MainGUI.py:2861 -msgid "" -"Please select geometry items \n" -"on which to perform Substraction Tool." -msgstr "" -"Please select geometry items \n" -"on which to perform Substraction Tool." - -#: AppGUI/MainGUI.py:2883 -msgid "" -"Please select geometry items \n" -"on which to perform union." -msgstr "" -"Please select geometry items \n" -"on which to perform union." - -#: AppGUI/MainGUI.py:2968 AppGUI/MainGUI.py:3183 -msgid "Cancelled. Nothing selected to delete." -msgstr "Cancelled. Nothing selected to delete." - -#: AppGUI/MainGUI.py:3052 AppGUI/MainGUI.py:3299 -msgid "Cancelled. Nothing selected to copy." -msgstr "Cancelled. Nothing selected to copy." - -#: AppGUI/MainGUI.py:3098 AppGUI/MainGUI.py:3328 -msgid "Cancelled. Nothing selected to move." -msgstr "Cancelled. Nothing selected to move." - -#: AppGUI/MainGUI.py:3354 -msgid "New Tool ..." -msgstr "New Tool ..." - -#: AppGUI/MainGUI.py:3355 AppTools/ToolIsolation.py:1258 -#: AppTools/ToolNCC.py:924 AppTools/ToolPaint.py:849 -#: AppTools/ToolSolderPaste.py:568 -msgid "Enter a Tool Diameter" -msgstr "Enter a Tool Diameter" - -#: AppGUI/MainGUI.py:3367 -msgid "Adding Tool cancelled ..." -msgstr "Adding Tool cancelled ..." - -#: AppGUI/MainGUI.py:3381 -msgid "Distance Tool exit..." -msgstr "Distance Tool exit..." - -#: AppGUI/MainGUI.py:3561 App_Main.py:3146 -msgid "Application is saving the project. Please wait ..." -msgstr "Application is saving the project. Please wait ..." - -#: AppGUI/MainGUI.py:3668 -msgid "Shell disabled." -msgstr "Shell disabled." - -#: AppGUI/MainGUI.py:3678 -msgid "Shell enabled." -msgstr "Shell enabled." - -#: AppGUI/MainGUI.py:3706 App_Main.py:9155 -msgid "Shortcut Key List" -msgstr "Shortcut Key List" - -#: AppGUI/MainGUI.py:4089 -msgid "General Shortcut list" -msgstr "General Shortcut list" - -#: AppGUI/MainGUI.py:4090 -msgid "SHOW SHORTCUT LIST" -msgstr "SHOW SHORTCUT LIST" - -#: AppGUI/MainGUI.py:4090 -msgid "Switch to Project Tab" -msgstr "Switch to Project Tab" - -#: AppGUI/MainGUI.py:4090 -msgid "Switch to Selected Tab" -msgstr "Switch to Selected Tab" - -#: AppGUI/MainGUI.py:4091 -msgid "Switch to Tool Tab" -msgstr "Switch to Tool Tab" - -#: AppGUI/MainGUI.py:4092 -msgid "New Gerber" -msgstr "New Gerber" - -#: AppGUI/MainGUI.py:4092 -msgid "Edit Object (if selected)" -msgstr "Edit Object (if selected)" - -#: AppGUI/MainGUI.py:4092 App_Main.py:5658 -msgid "Grid On/Off" -msgstr "Grid On/Off" - -#: AppGUI/MainGUI.py:4092 -msgid "Jump to Coordinates" -msgstr "Jump to Coordinates" - -#: AppGUI/MainGUI.py:4093 -msgid "New Excellon" -msgstr "New Excellon" - -#: AppGUI/MainGUI.py:4093 -msgid "Move Obj" -msgstr "Move Obj" - -#: AppGUI/MainGUI.py:4093 -msgid "New Geometry" -msgstr "New Geometry" - -#: AppGUI/MainGUI.py:4093 -msgid "Change Units" -msgstr "Change Units" - -#: AppGUI/MainGUI.py:4094 -msgid "Open Properties Tool" -msgstr "Open Properties Tool" - -#: AppGUI/MainGUI.py:4094 -msgid "Rotate by 90 degree CW" -msgstr "Rotate by 90 degree CW" - -#: AppGUI/MainGUI.py:4094 -msgid "Shell Toggle" -msgstr "Shell Toggle" - -#: AppGUI/MainGUI.py:4095 -msgid "" -"Add a Tool (when in Geometry Selected Tab or in Tools NCC or Tools Paint)" -msgstr "" -"Add a Tool (when in Geometry Selected Tab or in Tools NCC or Tools Paint)" - -#: AppGUI/MainGUI.py:4096 -msgid "Flip on X_axis" -msgstr "Flip on X_axis" - -#: AppGUI/MainGUI.py:4096 -msgid "Flip on Y_axis" -msgstr "Flip on Y_axis" - -#: AppGUI/MainGUI.py:4099 -msgid "Copy Obj" -msgstr "Copy Obj" - -#: AppGUI/MainGUI.py:4099 -msgid "Open Tools Database" -msgstr "Open Tools Database" - -#: AppGUI/MainGUI.py:4100 -msgid "Open Excellon File" -msgstr "Open Excellon File" - -#: AppGUI/MainGUI.py:4100 -msgid "Open Gerber File" -msgstr "Open Gerber File" - -#: AppGUI/MainGUI.py:4100 -msgid "New Project" -msgstr "New Project" - -#: AppGUI/MainGUI.py:4101 App_Main.py:6711 App_Main.py:6714 -msgid "Open Project" -msgstr "Open Project" - -#: AppGUI/MainGUI.py:4101 AppTools/ToolPDF.py:41 -msgid "PDF Import Tool" -msgstr "PDF Import Tool" - -#: AppGUI/MainGUI.py:4101 -msgid "Save Project" -msgstr "Save Project" - -#: AppGUI/MainGUI.py:4101 -msgid "Toggle Plot Area" -msgstr "Toggle Plot Area" - -#: AppGUI/MainGUI.py:4104 -msgid "Copy Obj_Name" -msgstr "Copy Obj_Name" - -#: AppGUI/MainGUI.py:4105 -msgid "Toggle Code Editor" -msgstr "Toggle Code Editor" - -#: AppGUI/MainGUI.py:4105 -msgid "Toggle the axis" -msgstr "Toggle the axis" - -#: AppGUI/MainGUI.py:4105 AppGUI/MainGUI.py:4306 AppGUI/MainGUI.py:4393 -#: AppGUI/MainGUI.py:4515 -msgid "Distance Minimum Tool" -msgstr "Distance Minimum Tool" - -#: AppGUI/MainGUI.py:4106 -msgid "Open Preferences Window" -msgstr "Open Preferences Window" - -#: AppGUI/MainGUI.py:4107 -msgid "Rotate by 90 degree CCW" -msgstr "Rotate by 90 degree CCW" - -#: AppGUI/MainGUI.py:4107 -msgid "Run a Script" -msgstr "Run a Script" - -#: AppGUI/MainGUI.py:4107 -msgid "Toggle the workspace" -msgstr "Toggle the workspace" - -#: AppGUI/MainGUI.py:4107 -msgid "Skew on X axis" -msgstr "Skew on X axis" - -#: AppGUI/MainGUI.py:4108 -msgid "Skew on Y axis" -msgstr "Skew on Y axis" - -#: AppGUI/MainGUI.py:4111 -msgid "2-Sided PCB Tool" -msgstr "2-Sided PCB Tool" - -#: AppGUI/MainGUI.py:4112 -msgid "Toggle Grid Lines" -msgstr "Toggle Grid Lines" - -#: AppGUI/MainGUI.py:4114 -msgid "Solder Paste Dispensing Tool" -msgstr "Solder Paste Dispensing Tool" - -#: AppGUI/MainGUI.py:4115 -msgid "Film PCB Tool" -msgstr "Film PCB Tool" - -#: AppGUI/MainGUI.py:4115 -msgid "Non-Copper Clearing Tool" -msgstr "Non-Copper Clearing Tool" - -#: AppGUI/MainGUI.py:4116 -msgid "Paint Area Tool" -msgstr "Paint Area Tool" - -#: AppGUI/MainGUI.py:4116 -msgid "Rules Check Tool" -msgstr "Rules Check Tool" - -#: AppGUI/MainGUI.py:4117 -msgid "View File Source" -msgstr "View File Source" - -#: AppGUI/MainGUI.py:4117 -msgid "Transformations Tool" -msgstr "Transformations Tool" - -#: AppGUI/MainGUI.py:4118 -msgid "Cutout PCB Tool" -msgstr "Cutout PCB Tool" - -#: AppGUI/MainGUI.py:4118 AppTools/ToolPanelize.py:35 -msgid "Panelize PCB" -msgstr "Panelize PCB" - -#: AppGUI/MainGUI.py:4119 -msgid "Enable all Plots" -msgstr "Enable all Plots" - -#: AppGUI/MainGUI.py:4119 -msgid "Disable all Plots" -msgstr "Disable all Plots" - -#: AppGUI/MainGUI.py:4119 -msgid "Disable Non-selected Plots" -msgstr "Disable Non-selected Plots" - -#: AppGUI/MainGUI.py:4120 -msgid "Toggle Full Screen" -msgstr "Toggle Full Screen" - -#: AppGUI/MainGUI.py:4123 -msgid "Abort current task (gracefully)" -msgstr "Abort current task (gracefully)" - -#: AppGUI/MainGUI.py:4126 -msgid "Save Project As" -msgstr "Save Project As" - -#: AppGUI/MainGUI.py:4127 -msgid "" -"Paste Special. Will convert a Windows path style to the one required in Tcl " -"Shell" -msgstr "" -"Paste Special. Will convert a Windows path style to the one required in Tcl " -"Shell" - -#: AppGUI/MainGUI.py:4130 -msgid "Open Online Manual" -msgstr "Open Online Manual" - -#: AppGUI/MainGUI.py:4131 -msgid "Open Online Tutorials" -msgstr "Open Online Tutorials" - -#: AppGUI/MainGUI.py:4131 -msgid "Refresh Plots" -msgstr "Refresh Plots" - -#: AppGUI/MainGUI.py:4131 AppTools/ToolSolderPaste.py:517 -msgid "Delete Object" -msgstr "Delete Object" - -#: AppGUI/MainGUI.py:4131 -msgid "Alternate: Delete Tool" -msgstr "Alternate: Delete Tool" - -#: AppGUI/MainGUI.py:4132 -msgid "(left to Key_1)Toggle Notebook Area (Left Side)" -msgstr "(left to Key_1)Toggle Notebook Area (Left Side)" - -#: AppGUI/MainGUI.py:4132 -msgid "En(Dis)able Obj Plot" -msgstr "En(Dis)able Obj Plot" - -#: AppGUI/MainGUI.py:4133 -msgid "Deselects all objects" -msgstr "Deselects all objects" - -#: AppGUI/MainGUI.py:4147 -msgid "Editor Shortcut list" -msgstr "Editor Shortcut list" - -#: AppGUI/MainGUI.py:4301 -msgid "GEOMETRY EDITOR" -msgstr "GEOMETRY EDITOR" - -#: AppGUI/MainGUI.py:4301 -msgid "Draw an Arc" -msgstr "Draw an Arc" - -#: AppGUI/MainGUI.py:4301 -msgid "Copy Geo Item" -msgstr "Copy Geo Item" - -#: AppGUI/MainGUI.py:4302 -msgid "Within Add Arc will toogle the ARC direction: CW or CCW" -msgstr "Within Add Arc will toogle the ARC direction: CW or CCW" - -#: AppGUI/MainGUI.py:4302 -msgid "Polygon Intersection Tool" -msgstr "Polygon Intersection Tool" - -#: AppGUI/MainGUI.py:4303 -msgid "Geo Paint Tool" -msgstr "Geo Paint Tool" - -#: AppGUI/MainGUI.py:4303 AppGUI/MainGUI.py:4392 AppGUI/MainGUI.py:4512 -msgid "Jump to Location (x, y)" -msgstr "Jump to Location (x, y)" - -#: AppGUI/MainGUI.py:4303 -msgid "Toggle Corner Snap" -msgstr "Toggle Corner Snap" - -#: AppGUI/MainGUI.py:4303 -msgid "Move Geo Item" -msgstr "Move Geo Item" - -#: AppGUI/MainGUI.py:4304 -msgid "Within Add Arc will cycle through the ARC modes" -msgstr "Within Add Arc will cycle through the ARC modes" - -#: AppGUI/MainGUI.py:4304 -msgid "Draw a Polygon" -msgstr "Draw a Polygon" - -#: AppGUI/MainGUI.py:4304 -msgid "Draw a Circle" -msgstr "Draw a Circle" - -#: AppGUI/MainGUI.py:4305 -msgid "Draw a Path" -msgstr "Draw a Path" - -#: AppGUI/MainGUI.py:4305 -msgid "Draw Rectangle" -msgstr "Draw Rectangle" - -#: AppGUI/MainGUI.py:4305 -msgid "Polygon Subtraction Tool" -msgstr "Polygon Subtraction Tool" - -#: AppGUI/MainGUI.py:4305 -msgid "Add Text Tool" -msgstr "Add Text Tool" - -#: AppGUI/MainGUI.py:4306 -msgid "Polygon Union Tool" -msgstr "Polygon Union Tool" - -#: AppGUI/MainGUI.py:4306 -msgid "Flip shape on X axis" -msgstr "Flip shape on X axis" - -#: AppGUI/MainGUI.py:4306 -msgid "Flip shape on Y axis" -msgstr "Flip shape on Y axis" - -#: AppGUI/MainGUI.py:4307 -msgid "Skew shape on X axis" -msgstr "Skew shape on X axis" - -#: AppGUI/MainGUI.py:4307 -msgid "Skew shape on Y axis" -msgstr "Skew shape on Y axis" - -#: AppGUI/MainGUI.py:4307 -msgid "Editor Transformation Tool" -msgstr "Editor Transformation Tool" - -#: AppGUI/MainGUI.py:4308 -msgid "Offset shape on X axis" -msgstr "Offset shape on X axis" - -#: AppGUI/MainGUI.py:4308 -msgid "Offset shape on Y axis" -msgstr "Offset shape on Y axis" - -#: AppGUI/MainGUI.py:4309 AppGUI/MainGUI.py:4395 AppGUI/MainGUI.py:4517 -msgid "Save Object and Exit Editor" -msgstr "Save Object and Exit Editor" - -#: AppGUI/MainGUI.py:4309 -msgid "Polygon Cut Tool" -msgstr "Polygon Cut Tool" - -#: AppGUI/MainGUI.py:4310 -msgid "Rotate Geometry" -msgstr "Rotate Geometry" - -#: AppGUI/MainGUI.py:4310 -msgid "Finish drawing for certain tools" -msgstr "Finish drawing for certain tools" - -#: AppGUI/MainGUI.py:4310 AppGUI/MainGUI.py:4395 AppGUI/MainGUI.py:4515 -msgid "Abort and return to Select" -msgstr "Abort and return to Select" - -#: AppGUI/MainGUI.py:4391 -msgid "EXCELLON EDITOR" -msgstr "EXCELLON EDITOR" - -#: AppGUI/MainGUI.py:4391 -msgid "Copy Drill(s)" -msgstr "Copy Drill(s)" - -#: AppGUI/MainGUI.py:4392 -msgid "Move Drill(s)" -msgstr "Move Drill(s)" - -#: AppGUI/MainGUI.py:4393 -msgid "Add a new Tool" -msgstr "Add a new Tool" - -#: AppGUI/MainGUI.py:4394 -msgid "Delete Drill(s)" -msgstr "Delete Drill(s)" - -#: AppGUI/MainGUI.py:4394 -msgid "Alternate: Delete Tool(s)" -msgstr "Alternate: Delete Tool(s)" - -#: AppGUI/MainGUI.py:4511 -msgid "GERBER EDITOR" -msgstr "GERBER EDITOR" - -#: AppGUI/MainGUI.py:4511 -msgid "Add Disc" -msgstr "Add Disc" - -#: AppGUI/MainGUI.py:4511 -msgid "Add SemiDisc" -msgstr "Add SemiDisc" - -#: AppGUI/MainGUI.py:4513 -msgid "Within Track & Region Tools will cycle in REVERSE the bend modes" -msgstr "Within Track & Region Tools will cycle in REVERSE the bend modes" - -#: AppGUI/MainGUI.py:4514 -msgid "Within Track & Region Tools will cycle FORWARD the bend modes" -msgstr "Within Track & Region Tools will cycle FORWARD the bend modes" - -#: AppGUI/MainGUI.py:4515 -msgid "Alternate: Delete Apertures" -msgstr "Alternate: Delete Apertures" - -#: AppGUI/MainGUI.py:4516 -msgid "Eraser Tool" -msgstr "Eraser Tool" - -#: AppGUI/MainGUI.py:4517 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:221 -msgid "Mark Area Tool" -msgstr "Mark Area Tool" - -#: AppGUI/MainGUI.py:4517 -msgid "Poligonize Tool" -msgstr "Poligonize Tool" - -#: AppGUI/MainGUI.py:4517 -msgid "Transformation Tool" -msgstr "Transformation Tool" - -#: AppGUI/ObjectUI.py:38 -msgid "App Object" -msgstr "App Object" - -#: AppGUI/ObjectUI.py:78 AppTools/ToolIsolation.py:77 -msgid "" -"BASIC is suitable for a beginner. Many parameters\n" -"are hidden from the user in this mode.\n" -"ADVANCED mode will make available all parameters.\n" -"\n" -"To change the application LEVEL, go to:\n" -"Edit -> Preferences -> General and check:\n" -"'APP. LEVEL' radio button." -msgstr "" -"BASIC is suitable for a beginner. Many parameters\n" -"are hidden from the user in this mode.\n" -"ADVANCED mode will make available all parameters.\n" -"\n" -"To change the application LEVEL, go to:\n" -"Edit -> Preferences -> General and check:\n" -"'APP. LEVEL' radio button." - -#: AppGUI/ObjectUI.py:111 AppGUI/ObjectUI.py:154 -msgid "Geometrical transformations of the current object." -msgstr "Geometrical transformations of the current object." - -#: AppGUI/ObjectUI.py:120 -msgid "" -"Factor by which to multiply\n" -"geometric features of this object.\n" -"Expressions are allowed. E.g: 1/25.4" -msgstr "" -"Factor by which to multiply\n" -"geometric features of this object.\n" -"Expressions are allowed. E.g: 1/25.4" - -#: AppGUI/ObjectUI.py:127 -msgid "Perform scaling operation." -msgstr "Perform scaling operation." - -#: AppGUI/ObjectUI.py:138 -msgid "" -"Amount by which to move the object\n" -"in the x and y axes in (x, y) format.\n" -"Expressions are allowed. E.g: (1/3.2, 0.5*3)" -msgstr "" -"Amount by which to move the object\n" -"in the x and y axes in (x, y) format.\n" -"Expressions are allowed. E.g: (1/3.2, 0.5*3)" - -#: AppGUI/ObjectUI.py:145 -msgid "Perform the offset operation." -msgstr "Perform the offset operation." - -#: AppGUI/ObjectUI.py:162 AppGUI/ObjectUI.py:173 AppTool.py:280 AppTool.py:291 -msgid "Edited value is out of range" -msgstr "Edited value is out of range" - -#: AppGUI/ObjectUI.py:168 AppGUI/ObjectUI.py:175 AppTool.py:286 AppTool.py:293 -msgid "Edited value is within limits." -msgstr "Edited value is within limits." - -#: AppGUI/ObjectUI.py:187 -msgid "Gerber Object" -msgstr "Gerber Object" - -#: AppGUI/ObjectUI.py:196 AppGUI/ObjectUI.py:496 AppGUI/ObjectUI.py:1313 -#: AppGUI/ObjectUI.py:2135 AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:30 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:33 -#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:31 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:31 -msgid "Plot Options" -msgstr "Plot Options" - -#: AppGUI/ObjectUI.py:202 AppGUI/ObjectUI.py:502 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:47 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:45 -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:119 -#: AppTools/ToolCopperThieving.py:195 -msgid "Solid" -msgstr "Solid" - -#: AppGUI/ObjectUI.py:204 AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:47 -msgid "Solid color polygons." -msgstr "Solid color polygons." - -#: AppGUI/ObjectUI.py:210 AppGUI/ObjectUI.py:510 AppGUI/ObjectUI.py:1319 -msgid "Multi-Color" -msgstr "Multi-Color" - -#: AppGUI/ObjectUI.py:212 AppGUI/ObjectUI.py:512 AppGUI/ObjectUI.py:1321 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:56 -#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:47 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:54 -msgid "Draw polygons in different colors." -msgstr "Draw polygons in different colors." - -#: AppGUI/ObjectUI.py:228 AppGUI/ObjectUI.py:548 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:40 -#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:38 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:38 -msgid "Plot" -msgstr "Plot" - -#: AppGUI/ObjectUI.py:229 AppGUI/ObjectUI.py:550 AppGUI/ObjectUI.py:1383 -#: AppGUI/ObjectUI.py:2245 AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:41 -#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:40 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:40 -msgid "Plot (show) this object." -msgstr "Plot (show) this object." - -#: AppGUI/ObjectUI.py:258 -msgid "" -"Toggle the display of the Gerber Apertures Table.\n" -"When unchecked, it will delete all mark shapes\n" -"that are drawn on canvas." -msgstr "" -"Toggle the display of the Gerber Apertures Table.\n" -"When unchecked, it will delete all mark shapes\n" -"that are drawn on canvas." - -#: AppGUI/ObjectUI.py:268 -msgid "Mark All" -msgstr "Mark All" - -#: AppGUI/ObjectUI.py:270 -msgid "" -"When checked it will display all the apertures.\n" -"When unchecked, it will delete all mark shapes\n" -"that are drawn on canvas." -msgstr "" -"When checked it will display all the apertures.\n" -"When unchecked, it will delete all mark shapes\n" -"that are drawn on canvas." - -#: AppGUI/ObjectUI.py:298 -msgid "Mark the aperture instances on canvas." -msgstr "Mark the aperture instances on canvas." - -#: AppGUI/ObjectUI.py:305 AppTools/ToolIsolation.py:579 -msgid "Buffer Solid Geometry" -msgstr "Buffer Solid Geometry" - -#: AppGUI/ObjectUI.py:307 AppTools/ToolIsolation.py:581 -msgid "" -"This button is shown only when the Gerber file\n" -"is loaded without buffering.\n" -"Clicking this will create the buffered geometry\n" -"required for isolation." -msgstr "" -"This button is shown only when the Gerber file\n" -"is loaded without buffering.\n" -"Clicking this will create the buffered geometry\n" -"required for isolation." - -#: AppGUI/ObjectUI.py:332 -msgid "Isolation Routing" -msgstr "Isolation Routing" - -#: AppGUI/ObjectUI.py:334 AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:32 -#: AppTools/ToolIsolation.py:67 -msgid "" -"Create a Geometry object with\n" -"toolpaths to cut around polygons." -msgstr "" -"Create a Geometry object with\n" -"toolpaths to cut around polygons." - -#: AppGUI/ObjectUI.py:348 AppGUI/ObjectUI.py:2089 AppTools/ToolNCC.py:599 -msgid "" -"Create the Geometry Object\n" -"for non-copper routing." -msgstr "" -"Create the Geometry Object\n" -"for non-copper routing." - -#: AppGUI/ObjectUI.py:362 -msgid "" -"Generate the geometry for\n" -"the board cutout." -msgstr "" -"Generate the geometry for\n" -"the board cutout." - -#: AppGUI/ObjectUI.py:379 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:32 -msgid "Non-copper regions" -msgstr "Non-copper regions" - -#: AppGUI/ObjectUI.py:381 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:34 -msgid "" -"Create polygons covering the\n" -"areas without copper on the PCB.\n" -"Equivalent to the inverse of this\n" -"object. Can be used to remove all\n" -"copper from a specified region." -msgstr "" -"Create polygons covering the\n" -"areas without copper on the PCB.\n" -"Equivalent to the inverse of this\n" -"object. Can be used to remove all\n" -"copper from a specified region." - -#: AppGUI/ObjectUI.py:391 AppGUI/ObjectUI.py:432 -#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:46 -#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:79 -msgid "Boundary Margin" -msgstr "Boundary Margin" - -#: AppGUI/ObjectUI.py:393 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:48 -msgid "" -"Specify the edge of the PCB\n" -"by drawing a box around all\n" -"objects with this minimum\n" -"distance." -msgstr "" -"Specify the edge of the PCB\n" -"by drawing a box around all\n" -"objects with this minimum\n" -"distance." - -#: AppGUI/ObjectUI.py:408 AppGUI/ObjectUI.py:446 -#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:61 -#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:92 -msgid "Rounded Geo" -msgstr "Rounded Geo" - -#: AppGUI/ObjectUI.py:410 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:63 -msgid "Resulting geometry will have rounded corners." -msgstr "Resulting geometry will have rounded corners." - -#: AppGUI/ObjectUI.py:414 AppGUI/ObjectUI.py:455 -#: AppTools/ToolSolderPaste.py:373 -msgid "Generate Geo" -msgstr "Generate Geo" - -#: AppGUI/ObjectUI.py:424 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:73 -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:137 -#: AppTools/ToolPanelize.py:99 AppTools/ToolQRCode.py:201 -msgid "Bounding Box" -msgstr "Bounding Box" - -#: AppGUI/ObjectUI.py:426 -msgid "" -"Create a geometry surrounding the Gerber object.\n" -"Square shape." -msgstr "" -"Create a geometry surrounding the Gerber object.\n" -"Square shape." - -#: AppGUI/ObjectUI.py:434 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:81 -msgid "" -"Distance of the edges of the box\n" -"to the nearest polygon." -msgstr "" -"Distance of the edges of the box\n" -"to the nearest polygon." - -#: AppGUI/ObjectUI.py:448 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:94 -msgid "" -"If the bounding box is \n" -"to have rounded corners\n" -"their radius is equal to\n" -"the margin." -msgstr "" -"If the bounding box is \n" -"to have rounded corners\n" -"their radius is equal to\n" -"the margin." - -#: AppGUI/ObjectUI.py:457 -msgid "Generate the Geometry object." -msgstr "Generate the Geometry object." - -#: AppGUI/ObjectUI.py:484 -msgid "Excellon Object" -msgstr "Excellon Object" - -#: AppGUI/ObjectUI.py:504 -msgid "Solid circles." -msgstr "Solid circles." - -#: AppGUI/ObjectUI.py:560 AppGUI/ObjectUI.py:655 AppGUI/ObjectUI.py:2266 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:71 -#: AppTools/ToolProperties.py:166 -msgid "Drills" -msgstr "Drills" - -#: AppGUI/ObjectUI.py:560 AppGUI/ObjectUI.py:656 AppGUI/ObjectUI.py:2266 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:158 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:72 -#: AppTools/ToolProperties.py:168 -msgid "Slots" -msgstr "Slots" - -#: AppGUI/ObjectUI.py:565 -msgid "" -"This is the Tool Number.\n" -"When ToolChange is checked, on toolchange event this value\n" -"will be showed as a T1, T2 ... Tn in the Machine Code.\n" -"\n" -"Here the tools are selected for G-code generation." -msgstr "" -"This is the Tool Number.\n" -"When ToolChange is checked, on toolchange event this value\n" -"will be showed as a T1, T2 ... Tn in the Machine Code.\n" -"\n" -"Here the tools are selected for G-code generation." - -#: AppGUI/ObjectUI.py:570 AppGUI/ObjectUI.py:1407 AppTools/ToolPaint.py:141 -msgid "" -"Tool Diameter. It's value (in current FlatCAM units) \n" -"is the cut width into the material." -msgstr "" -"Tool Diameter. It's value (in current FlatCAM units) \n" -"is the cut width into the material." - -#: AppGUI/ObjectUI.py:573 -msgid "" -"The number of Drill holes. Holes that are drilled with\n" -"a drill bit." -msgstr "" -"The number of Drill holes. Holes that are drilled with\n" -"a drill bit." - -#: AppGUI/ObjectUI.py:576 -msgid "" -"The number of Slot holes. Holes that are created by\n" -"milling them with an endmill bit." -msgstr "" -"The number of Slot holes. Holes that are created by\n" -"milling them with an endmill bit." - -#: AppGUI/ObjectUI.py:579 -msgid "" -"Toggle display of the drills for the current tool.\n" -"This does not select the tools for G-code generation." -msgstr "" -"Toggle display of the drills for the current tool.\n" -"This does not select the tools for G-code generation." - -#: AppGUI/ObjectUI.py:597 AppGUI/ObjectUI.py:1564 -#: AppObjects/FlatCAMExcellon.py:537 AppObjects/FlatCAMExcellon.py:836 -#: AppObjects/FlatCAMExcellon.py:852 AppObjects/FlatCAMExcellon.py:856 -#: AppObjects/FlatCAMGeometry.py:380 AppObjects/FlatCAMGeometry.py:825 -#: AppObjects/FlatCAMGeometry.py:861 AppTools/ToolIsolation.py:313 -#: AppTools/ToolIsolation.py:1051 AppTools/ToolIsolation.py:1171 -#: AppTools/ToolIsolation.py:1185 AppTools/ToolNCC.py:331 -#: AppTools/ToolNCC.py:797 AppTools/ToolNCC.py:811 AppTools/ToolNCC.py:1214 -#: AppTools/ToolPaint.py:313 AppTools/ToolPaint.py:766 -#: AppTools/ToolPaint.py:778 AppTools/ToolPaint.py:1190 -msgid "Parameters for" -msgstr "Parameters for" - -#: AppGUI/ObjectUI.py:600 AppGUI/ObjectUI.py:1567 AppTools/ToolIsolation.py:316 -#: AppTools/ToolNCC.py:334 AppTools/ToolPaint.py:316 -msgid "" -"The data used for creating GCode.\n" -"Each tool store it's own set of such data." -msgstr "" -"The data used for creating GCode.\n" -"Each tool store it's own set of such data." - -#: AppGUI/ObjectUI.py:626 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:48 -msgid "" -"Operation type:\n" -"- Drilling -> will drill the drills/slots associated with this tool\n" -"- Milling -> will mill the drills/slots" -msgstr "" -"Operation type:\n" -"- Drilling -> will drill the drills/slots associated with this tool\n" -"- Milling -> will mill the drills/slots" - -#: AppGUI/ObjectUI.py:632 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:54 -msgid "Drilling" -msgstr "Drilling" - -#: AppGUI/ObjectUI.py:633 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:55 -msgid "Milling" -msgstr "Milling" - -#: AppGUI/ObjectUI.py:648 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:64 -msgid "" -"Milling type:\n" -"- Drills -> will mill the drills associated with this tool\n" -"- Slots -> will mill the slots associated with this tool\n" -"- Both -> will mill both drills and mills or whatever is available" -msgstr "" -"Milling type:\n" -"- Drills -> will mill the drills associated with this tool\n" -"- Slots -> will mill the slots associated with this tool\n" -"- Both -> will mill both drills and mills or whatever is available" - -#: AppGUI/ObjectUI.py:657 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:73 -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:199 -#: AppTools/ToolFilm.py:241 -msgid "Both" -msgstr "Both" - -#: AppGUI/ObjectUI.py:665 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:80 -msgid "Milling Diameter" -msgstr "Milling Diameter" - -#: AppGUI/ObjectUI.py:667 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:82 -msgid "The diameter of the tool who will do the milling" -msgstr "The diameter of the tool who will do the milling" - -#: AppGUI/ObjectUI.py:681 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:95 -msgid "" -"Drill depth (negative)\n" -"below the copper surface." -msgstr "" -"Drill depth (negative)\n" -"below the copper surface." - -#: AppGUI/ObjectUI.py:700 AppGUI/ObjectUI.py:1626 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:113 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:69 -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:79 -#: AppTools/ToolCutOut.py:159 -msgid "Multi-Depth" -msgstr "Multi-Depth" - -#: AppGUI/ObjectUI.py:703 AppGUI/ObjectUI.py:1629 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:116 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:72 -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:82 -#: AppTools/ToolCutOut.py:162 -msgid "" -"Use multiple passes to limit\n" -"the cut depth in each pass. Will\n" -"cut multiple times until Cut Z is\n" -"reached." -msgstr "" -"Use multiple passes to limit\n" -"the cut depth in each pass. Will\n" -"cut multiple times until Cut Z is\n" -"reached." - -#: AppGUI/ObjectUI.py:716 AppGUI/ObjectUI.py:1643 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:128 -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:94 -#: AppTools/ToolCutOut.py:176 -msgid "Depth of each pass (positive)." -msgstr "Depth of each pass (positive)." - -#: AppGUI/ObjectUI.py:727 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:136 -msgid "" -"Tool height when travelling\n" -"across the XY plane." -msgstr "" -"Tool height when travelling\n" -"across the XY plane." - -#: AppGUI/ObjectUI.py:748 AppGUI/ObjectUI.py:1673 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:188 -msgid "" -"Cutting speed in the XY\n" -"plane in units per minute" -msgstr "" -"Cutting speed in the XY\n" -"plane in units per minute" - -#: AppGUI/ObjectUI.py:763 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:209 -msgid "" -"Tool speed while drilling\n" -"(in units per minute).\n" -"So called 'Plunge' feedrate.\n" -"This is for linear move G01." -msgstr "" -"Tool speed while drilling\n" -"(in units per minute).\n" -"So called 'Plunge' feedrate.\n" -"This is for linear move G01." - -#: AppGUI/ObjectUI.py:778 AppGUI/ObjectUI.py:1700 -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:80 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:67 -msgid "Feedrate Rapids" -msgstr "Feedrate Rapids" - -#: AppGUI/ObjectUI.py:780 -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:82 -msgid "" -"Tool speed while drilling\n" -"(in units per minute).\n" -"This is for the rapid move G00.\n" -"It is useful only for Marlin,\n" -"ignore for any other cases." -msgstr "" -"Tool speed while drilling\n" -"(in units per minute).\n" -"This is for the rapid move G00.\n" -"It is useful only for Marlin,\n" -"ignore for any other cases." - -#: AppGUI/ObjectUI.py:800 AppGUI/ObjectUI.py:1720 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:85 -msgid "Re-cut" -msgstr "Re-cut" - -#: AppGUI/ObjectUI.py:802 AppGUI/ObjectUI.py:815 AppGUI/ObjectUI.py:1722 -#: AppGUI/ObjectUI.py:1734 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:87 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:99 -msgid "" -"In order to remove possible\n" -"copper leftovers where first cut\n" -"meet with last cut, we generate an\n" -"extended cut over the first cut section." -msgstr "" -"In order to remove possible\n" -"copper leftovers where first cut\n" -"meet with last cut, we generate an\n" -"extended cut over the first cut section." - -#: AppGUI/ObjectUI.py:828 AppGUI/ObjectUI.py:1743 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:217 -#: AppObjects/FlatCAMExcellon.py:1512 AppObjects/FlatCAMGeometry.py:1687 -msgid "Spindle speed" -msgstr "Spindle speed" - -#: AppGUI/ObjectUI.py:830 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:224 -msgid "" -"Speed of the spindle\n" -"in RPM (optional)" -msgstr "" -"Speed of the spindle\n" -"in RPM (optional)" - -#: AppGUI/ObjectUI.py:845 AppGUI/ObjectUI.py:1762 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:238 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:235 -msgid "" -"Pause to allow the spindle to reach its\n" -"speed before cutting." -msgstr "" -"Pause to allow the spindle to reach its\n" -"speed before cutting." - -#: AppGUI/ObjectUI.py:856 AppGUI/ObjectUI.py:1772 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:246 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:240 -msgid "Number of time units for spindle to dwell." -msgstr "Number of time units for spindle to dwell." - -#: AppGUI/ObjectUI.py:866 -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:46 -msgid "Offset Z" -msgstr "Offset Z" - -#: AppGUI/ObjectUI.py:868 -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:48 -msgid "" -"Some drill bits (the larger ones) need to drill deeper\n" -"to create the desired exit hole diameter due of the tip shape.\n" -"The value here can compensate the Cut Z parameter." -msgstr "" -"Some drill bits (the larger ones) need to drill deeper\n" -"to create the desired exit hole diameter due of the tip shape.\n" -"The value here can compensate the Cut Z parameter." - -#: AppGUI/ObjectUI.py:928 AppGUI/ObjectUI.py:1826 AppTools/ToolIsolation.py:412 -#: AppTools/ToolNCC.py:492 AppTools/ToolPaint.py:422 -msgid "Apply parameters to all tools" -msgstr "Apply parameters to all tools" - -#: AppGUI/ObjectUI.py:930 AppGUI/ObjectUI.py:1828 AppTools/ToolIsolation.py:414 -#: AppTools/ToolNCC.py:494 AppTools/ToolPaint.py:424 -msgid "" -"The parameters in the current form will be applied\n" -"on all the tools from the Tool Table." -msgstr "" -"The parameters in the current form will be applied\n" -"on all the tools from the Tool Table." - -#: AppGUI/ObjectUI.py:941 AppGUI/ObjectUI.py:1839 AppTools/ToolIsolation.py:425 -#: AppTools/ToolNCC.py:505 AppTools/ToolPaint.py:435 -msgid "Common Parameters" -msgstr "Common Parameters" - -#: AppGUI/ObjectUI.py:943 AppGUI/ObjectUI.py:1841 AppTools/ToolIsolation.py:427 -#: AppTools/ToolNCC.py:507 AppTools/ToolPaint.py:437 -msgid "Parameters that are common for all tools." -msgstr "Parameters that are common for all tools." - -#: AppGUI/ObjectUI.py:948 AppGUI/ObjectUI.py:1846 -msgid "Tool change Z" -msgstr "Tool change Z" - -#: AppGUI/ObjectUI.py:950 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:154 -msgid "" -"Include tool-change sequence\n" -"in G-Code (Pause for tool change)." -msgstr "" -"Include tool-change sequence\n" -"in G-Code (Pause for tool change)." - -#: AppGUI/ObjectUI.py:957 AppGUI/ObjectUI.py:1857 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:162 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:135 -msgid "" -"Z-axis position (height) for\n" -"tool change." -msgstr "" -"Z-axis position (height) for\n" -"tool change." - -#: AppGUI/ObjectUI.py:974 -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:71 -msgid "" -"Height of the tool just after start.\n" -"Delete the value if you don't need this feature." -msgstr "" -"Height of the tool just after start.\n" -"Delete the value if you don't need this feature." - -#: AppGUI/ObjectUI.py:983 AppGUI/ObjectUI.py:1885 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:178 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:154 -msgid "End move Z" -msgstr "End move Z" - -#: AppGUI/ObjectUI.py:985 AppGUI/ObjectUI.py:1887 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:180 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:156 -msgid "" -"Height of the tool after\n" -"the last move at the end of the job." -msgstr "" -"Height of the tool after\n" -"the last move at the end of the job." - -#: AppGUI/ObjectUI.py:1002 AppGUI/ObjectUI.py:1904 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:195 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:174 -msgid "End move X,Y" -msgstr "End move X,Y" - -#: AppGUI/ObjectUI.py:1004 AppGUI/ObjectUI.py:1906 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:197 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:176 -msgid "" -"End move X,Y position. In format (x,y).\n" -"If no value is entered then there is no move\n" -"on X,Y plane at the end of the job." -msgstr "" -"End move X,Y position. In format (x,y).\n" -"If no value is entered then there is no move\n" -"on X,Y plane at the end of the job." - -#: AppGUI/ObjectUI.py:1014 AppGUI/ObjectUI.py:1780 -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:96 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:108 -msgid "Probe Z depth" -msgstr "Probe Z depth" - -#: AppGUI/ObjectUI.py:1016 AppGUI/ObjectUI.py:1782 -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:98 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:110 -msgid "" -"The maximum depth that the probe is allowed\n" -"to probe. Negative value, in current units." -msgstr "" -"The maximum depth that the probe is allowed\n" -"to probe. Negative value, in current units." - -#: AppGUI/ObjectUI.py:1033 AppGUI/ObjectUI.py:1797 -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:109 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:123 -msgid "Feedrate Probe" -msgstr "Feedrate Probe" - -#: AppGUI/ObjectUI.py:1035 AppGUI/ObjectUI.py:1799 -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:111 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:125 -msgid "The feedrate used while the probe is probing." -msgstr "The feedrate used while the probe is probing." - -#: AppGUI/ObjectUI.py:1051 -msgid "Preprocessor E" -msgstr "Preprocessor E" - -#: AppGUI/ObjectUI.py:1053 -msgid "" -"The preprocessor JSON file that dictates\n" -"Gcode output for Excellon Objects." -msgstr "" -"The preprocessor JSON file that dictates\n" -"Gcode output for Excellon Objects." - -#: AppGUI/ObjectUI.py:1063 -msgid "Preprocessor G" -msgstr "Preprocessor G" - -#: AppGUI/ObjectUI.py:1065 -msgid "" -"The preprocessor JSON file that dictates\n" -"Gcode output for Geometry (Milling) Objects." -msgstr "" -"The preprocessor JSON file that dictates\n" -"Gcode output for Geometry (Milling) Objects." - -#: AppGUI/ObjectUI.py:1079 AppGUI/ObjectUI.py:1934 -msgid "Add exclusion areas" -msgstr "Add exclusion areas" - -#: AppGUI/ObjectUI.py:1082 AppGUI/ObjectUI.py:1937 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:212 -msgid "" -"Include exclusion areas.\n" -"In those areas the travel of the tools\n" -"is forbidden." -msgstr "" -"Include exclusion areas.\n" -"In those areas the travel of the tools\n" -"is forbidden." - -#: AppGUI/ObjectUI.py:1103 AppGUI/ObjectUI.py:1958 -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:48 -#: AppTools/ToolCalibration.py:186 AppTools/ToolNCC.py:109 -#: AppTools/ToolPaint.py:102 AppTools/ToolPanelize.py:98 -msgid "Object" -msgstr "Object" - -#: AppGUI/ObjectUI.py:1103 AppGUI/ObjectUI.py:1122 AppGUI/ObjectUI.py:1958 -#: AppGUI/ObjectUI.py:1977 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:232 -msgid "Strategy" -msgstr "Strategy" - -#: AppGUI/ObjectUI.py:1103 AppGUI/ObjectUI.py:1134 AppGUI/ObjectUI.py:1958 -#: AppGUI/ObjectUI.py:1989 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:244 -msgid "Over Z" -msgstr "Over Z" - -#: AppGUI/ObjectUI.py:1105 AppGUI/ObjectUI.py:1960 -msgid "This is the Area ID." -msgstr "This is the Area ID." - -#: AppGUI/ObjectUI.py:1107 AppGUI/ObjectUI.py:1962 -msgid "Type of the object where the exclusion area was added." -msgstr "Type of the object where the exclusion area was added." - -#: AppGUI/ObjectUI.py:1109 AppGUI/ObjectUI.py:1964 -msgid "" -"The strategy used for exclusion area. Go around the exclusion areas or over " -"it." -msgstr "" -"The strategy used for exclusion area. Go around the exclusion areas or over " -"it." - -#: AppGUI/ObjectUI.py:1111 AppGUI/ObjectUI.py:1966 -msgid "" -"If the strategy is to go over the area then this is the height at which the " -"tool will go to avoid the exclusion area." -msgstr "" -"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." - -#: AppGUI/ObjectUI.py:1123 AppGUI/ObjectUI.py:1978 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:233 -msgid "" -"The strategy followed when encountering an exclusion area.\n" -"Can be:\n" -"- Over -> when encountering the area, the tool will go to a set height\n" -"- Around -> will avoid the exclusion area by going around the area" -msgstr "" -"The strategy followed when encountering an exclusion area.\n" -"Can be:\n" -"- Over -> when encountering the area, the tool will go to a set height\n" -"- Around -> will avoid the exclusion area by going around the area" - -#: AppGUI/ObjectUI.py:1127 AppGUI/ObjectUI.py:1982 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:237 -msgid "Over" -msgstr "Over" - -#: AppGUI/ObjectUI.py:1128 AppGUI/ObjectUI.py:1983 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:238 -msgid "Around" -msgstr "Around" - -#: AppGUI/ObjectUI.py:1135 AppGUI/ObjectUI.py:1990 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:245 -msgid "" -"The height Z to which the tool will rise in order to avoid\n" -"an interdiction area." -msgstr "" -"The height Z to which the tool will rise in order to avoid\n" -"an interdiction area." - -#: AppGUI/ObjectUI.py:1145 AppGUI/ObjectUI.py:2000 -msgid "Add area:" -msgstr "Add area:" - -#: AppGUI/ObjectUI.py:1146 AppGUI/ObjectUI.py:2001 -msgid "Add an Exclusion Area." -msgstr "Add an Exclusion Area." - -#: AppGUI/ObjectUI.py:1152 AppGUI/ObjectUI.py:2007 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:222 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:295 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:324 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:288 -#: AppTools/ToolIsolation.py:542 AppTools/ToolNCC.py:580 -#: AppTools/ToolPaint.py:523 -msgid "The kind of selection shape used for area selection." -msgstr "The kind of selection shape used for area selection." - -#: AppGUI/ObjectUI.py:1162 AppGUI/ObjectUI.py:2017 -#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:32 -#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:42 -#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:32 -#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:32 -msgid "Delete All" -msgstr "Delete All" - -#: AppGUI/ObjectUI.py:1163 AppGUI/ObjectUI.py:2018 -msgid "Delete all exclusion areas." -msgstr "Delete all exclusion areas." - -#: AppGUI/ObjectUI.py:1166 AppGUI/ObjectUI.py:2021 -msgid "Delete Selected" -msgstr "Delete Selected" - -#: AppGUI/ObjectUI.py:1167 AppGUI/ObjectUI.py:2022 -msgid "Delete all exclusion areas that are selected in the table." -msgstr "Delete all exclusion areas that are selected in the table." - -#: AppGUI/ObjectUI.py:1191 AppGUI/ObjectUI.py:2038 -msgid "" -"Add / Select at least one tool in the tool-table.\n" -"Click the # header to select all, or Ctrl + LMB\n" -"for custom selection of tools." -msgstr "" -"Add / Select at least one tool in the tool-table.\n" -"Click the # header to select all, or Ctrl + LMB\n" -"for custom selection of tools." - -#: AppGUI/ObjectUI.py:1199 AppGUI/ObjectUI.py:2045 -msgid "Generate CNCJob object" -msgstr "Generate CNCJob object" - -#: AppGUI/ObjectUI.py:1201 -msgid "" -"Generate the CNC Job.\n" -"If milling then an additional Geometry object will be created" -msgstr "" -"Generate the CNC Job.\n" -"If milling then an additional Geometry object will be created" - -#: AppGUI/ObjectUI.py:1218 -msgid "Milling Geometry" -msgstr "Milling Geometry" - -#: AppGUI/ObjectUI.py:1220 -msgid "" -"Create Geometry for milling holes.\n" -"Select from the Tools Table above the hole dias to be\n" -"milled. Use the # column to make the selection." -msgstr "" -"Create Geometry for milling holes.\n" -"Select from the Tools Table above the hole dias to be\n" -"milled. Use the # column to make the selection." - -#: AppGUI/ObjectUI.py:1228 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:296 -msgid "Diameter of the cutting tool." -msgstr "Diameter of the cutting tool." - -#: AppGUI/ObjectUI.py:1238 -msgid "Mill Drills" -msgstr "Mill Drills" - -#: AppGUI/ObjectUI.py:1240 -msgid "" -"Create the Geometry Object\n" -"for milling DRILLS toolpaths." -msgstr "" -"Create the Geometry Object\n" -"for milling DRILLS toolpaths." - -#: AppGUI/ObjectUI.py:1258 -msgid "Mill Slots" -msgstr "Mill Slots" - -#: AppGUI/ObjectUI.py:1260 -msgid "" -"Create the Geometry Object\n" -"for milling SLOTS toolpaths." -msgstr "" -"Create the Geometry Object\n" -"for milling SLOTS toolpaths." - -#: AppGUI/ObjectUI.py:1302 AppTools/ToolCutOut.py:319 -msgid "Geometry Object" -msgstr "Geometry Object" - -#: AppGUI/ObjectUI.py:1364 -msgid "" -"Tools in this Geometry object used for cutting.\n" -"The 'Offset' entry will set an offset for the cut.\n" -"'Offset' can be inside, outside, on path (none) and custom.\n" -"'Type' entry is only informative and it allow to know the \n" -"intent of using the current tool. \n" -"It can be Rough(ing), Finish(ing) or Iso(lation).\n" -"The 'Tool type'(TT) can be circular with 1 to 4 teeths(C1..C4),\n" -"ball(B), or V-Shaped(V). \n" -"When V-shaped is selected the 'Type' entry is automatically \n" -"set to Isolation, the CutZ parameter in the UI form is\n" -"grayed out and Cut Z is automatically calculated from the newly \n" -"showed UI form entries named V-Tip Dia and V-Tip Angle." -msgstr "" -"Tools in this Geometry object used for cutting.\n" -"The 'Offset' entry will set an offset for the cut.\n" -"'Offset' can be inside, outside, on path (none) and custom.\n" -"'Type' entry is only informative and it allow to know the \n" -"intent of using the current tool. \n" -"It can be Rough(ing), Finish(ing) or Iso(lation).\n" -"The 'Tool type'(TT) can be circular with 1 to 4 teeths(C1..C4),\n" -"ball(B), or V-Shaped(V). \n" -"When V-shaped is selected the 'Type' entry is automatically \n" -"set to Isolation, the CutZ parameter in the UI form is\n" -"grayed out and Cut Z is automatically calculated from the newly \n" -"showed UI form entries named V-Tip Dia and V-Tip Angle." - -#: AppGUI/ObjectUI.py:1381 AppGUI/ObjectUI.py:2243 -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:40 -msgid "Plot Object" -msgstr "Plot Object" - -#: AppGUI/ObjectUI.py:1394 AppGUI/ObjectUI.py:2256 AppGUI/ObjectUI.py:2266 -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:138 -#: AppTools/ToolCopperThieving.py:225 -msgid "Dia" -msgstr "Dia" - -#: AppGUI/ObjectUI.py:1394 AppGUI/ObjectUI.py:2256 -#: AppTools/ToolIsolation.py:130 AppTools/ToolNCC.py:132 -#: AppTools/ToolPaint.py:127 -msgid "TT" -msgstr "TT" - -#: AppGUI/ObjectUI.py:1401 -msgid "" -"This is the Tool Number.\n" -"When ToolChange is checked, on toolchange event this value\n" -"will be showed as a T1, T2 ... Tn" -msgstr "" -"This is the Tool Number.\n" -"When ToolChange is checked, on toolchange event this value\n" -"will be showed as a T1, T2 ... Tn" - -#: AppGUI/ObjectUI.py:1412 -msgid "" -"The value for the Offset can be:\n" -"- Path -> There is no offset, the tool cut will be done through the geometry " -"line.\n" -"- In(side) -> The tool cut will follow the geometry inside. It will create a " -"'pocket'.\n" -"- Out(side) -> The tool cut will follow the geometry line on the outside." -msgstr "" -"The value for the Offset can be:\n" -"- Path -> There is no offset, the tool cut will be done through the geometry " -"line.\n" -"- In(side) -> The tool cut will follow the geometry inside. It will create a " -"'pocket'.\n" -"- Out(side) -> The tool cut will follow the geometry line on the outside." - -#: AppGUI/ObjectUI.py:1419 -msgid "" -"The (Operation) Type has only informative value. Usually the UI form " -"values \n" -"are choose based on the operation type and this will serve as a reminder.\n" -"Can be 'Roughing', 'Finishing' or 'Isolation'.\n" -"For Roughing we may choose a lower Feedrate and multiDepth cut.\n" -"For Finishing we may choose a higher Feedrate, without multiDepth.\n" -"For Isolation we need a lower Feedrate as it use a milling bit with a fine " -"tip." -msgstr "" -"The (Operation) Type has only informative value. Usually the UI form " -"values \n" -"are choose based on the operation type and this will serve as a reminder.\n" -"Can be 'Roughing', 'Finishing' or 'Isolation'.\n" -"For Roughing we may choose a lower Feedrate and multiDepth cut.\n" -"For Finishing we may choose a higher Feedrate, without multiDepth.\n" -"For Isolation we need a lower Feedrate as it use a milling bit with a fine " -"tip." - -#: AppGUI/ObjectUI.py:1428 -msgid "" -"The Tool Type (TT) can be:\n" -"- Circular with 1 ... 4 teeth -> it is informative only. Being circular the " -"cut width in material\n" -"is exactly the tool diameter.\n" -"- Ball -> informative only and make reference to the Ball type endmill.\n" -"- V-Shape -> it will disable Z-Cut parameter in the UI form and enable two " -"additional UI form\n" -"fields: V-Tip Dia and V-Tip Angle. Adjusting those two values will adjust " -"the Z-Cut parameter such\n" -"as the cut width into material will be equal with the value in the Tool " -"Diameter column of this table.\n" -"Choosing the V-Shape Tool Type automatically will select the Operation Type " -"as Isolation." -msgstr "" -"The Tool Type (TT) can be:\n" -"- Circular with 1 ... 4 teeth -> it is informative only. Being circular the " -"cut width in material\n" -"is exactly the tool diameter.\n" -"- Ball -> informative only and make reference to the Ball type endmill.\n" -"- V-Shape -> it will disable Z-Cut parameter in the UI form and enable two " -"additional UI form\n" -"fields: V-Tip Dia and V-Tip Angle. Adjusting those two values will adjust " -"the Z-Cut parameter such\n" -"as the cut width into material will be equal with the value in the Tool " -"Diameter column of this table.\n" -"Choosing the V-Shape Tool Type automatically will select the Operation Type " -"as Isolation." - -#: AppGUI/ObjectUI.py:1440 -msgid "" -"Plot column. It is visible only for MultiGeo geometries, meaning geometries " -"that holds the geometry\n" -"data into the tools. For those geometries, deleting the tool will delete the " -"geometry data also,\n" -"so be WARNED. From the checkboxes on each row it can be enabled/disabled the " -"plot on canvas\n" -"for the corresponding tool." -msgstr "" -"Plot column. It is visible only for MultiGeo geometries, meaning geometries " -"that holds the geometry\n" -"data into the tools. For those geometries, deleting the tool will delete the " -"geometry data also,\n" -"so be WARNED. From the checkboxes on each row it can be enabled/disabled the " -"plot on canvas\n" -"for the corresponding tool." - -#: AppGUI/ObjectUI.py:1458 -msgid "" -"The value to offset the cut when \n" -"the Offset type selected is 'Offset'.\n" -"The value can be positive for 'outside'\n" -"cut and negative for 'inside' cut." -msgstr "" -"The value to offset the cut when \n" -"the Offset type selected is 'Offset'.\n" -"The value can be positive for 'outside'\n" -"cut and negative for 'inside' cut." - -#: AppGUI/ObjectUI.py:1477 AppTools/ToolIsolation.py:195 -#: AppTools/ToolIsolation.py:1257 AppTools/ToolNCC.py:209 -#: AppTools/ToolNCC.py:923 AppTools/ToolPaint.py:191 AppTools/ToolPaint.py:848 -#: AppTools/ToolSolderPaste.py:567 -msgid "New Tool" -msgstr "New Tool" - -#: AppGUI/ObjectUI.py:1496 AppTools/ToolIsolation.py:278 -#: AppTools/ToolNCC.py:296 AppTools/ToolPaint.py:278 -msgid "" -"Add a new tool to the Tool Table\n" -"with the diameter specified above." -msgstr "" -"Add a new tool to the Tool Table\n" -"with the diameter specified above." - -#: AppGUI/ObjectUI.py:1500 AppTools/ToolIsolation.py:282 -#: AppTools/ToolIsolation.py:613 AppTools/ToolNCC.py:300 -#: AppTools/ToolNCC.py:634 AppTools/ToolPaint.py:282 AppTools/ToolPaint.py:678 -msgid "Add from DB" -msgstr "Add from DB" - -#: AppGUI/ObjectUI.py:1502 AppTools/ToolIsolation.py:284 -#: AppTools/ToolNCC.py:302 AppTools/ToolPaint.py:284 -msgid "" -"Add a new tool to the Tool Table\n" -"from the Tool DataBase." -msgstr "" -"Add a new tool to the Tool Table\n" -"from the Tool DataBase." - -#: AppGUI/ObjectUI.py:1521 -msgid "" -"Copy a selection of tools in the Tool Table\n" -"by first selecting a row in the Tool Table." -msgstr "" -"Copy a selection of tools in the Tool Table\n" -"by first selecting a row in the Tool Table." - -#: AppGUI/ObjectUI.py:1527 -msgid "" -"Delete a selection of tools in the Tool Table\n" -"by first selecting a row in the Tool Table." -msgstr "" -"Delete a selection of tools in the Tool Table\n" -"by first selecting a row in the Tool Table." - -#: AppGUI/ObjectUI.py:1574 AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:89 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:72 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:78 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:85 -#: AppTools/ToolIsolation.py:219 AppTools/ToolNCC.py:233 -#: AppTools/ToolNCC.py:240 AppTools/ToolPaint.py:215 -msgid "V-Tip Dia" -msgstr "V-Tip Dia" - -#: AppGUI/ObjectUI.py:1577 AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:91 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:74 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:80 -#: AppTools/ToolIsolation.py:221 AppTools/ToolNCC.py:235 -#: AppTools/ToolPaint.py:217 -msgid "The tip diameter for V-Shape Tool" -msgstr "The tip diameter for V-Shape Tool" - -#: AppGUI/ObjectUI.py:1589 AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:101 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:84 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:91 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:99 -#: AppTools/ToolIsolation.py:232 AppTools/ToolNCC.py:246 -#: AppTools/ToolNCC.py:254 AppTools/ToolPaint.py:228 -msgid "V-Tip Angle" -msgstr "V-Tip Angle" - -#: AppGUI/ObjectUI.py:1592 AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:86 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:93 -#: AppTools/ToolIsolation.py:234 AppTools/ToolNCC.py:248 -#: AppTools/ToolPaint.py:230 -msgid "" -"The tip angle for V-Shape Tool.\n" -"In degree." -msgstr "" -"The tip angle for V-Shape Tool.\n" -"In degree." - -#: AppGUI/ObjectUI.py:1608 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:51 -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:61 -#: AppObjects/FlatCAMGeometry.py:1238 AppTools/ToolCutOut.py:141 -msgid "" -"Cutting depth (negative)\n" -"below the copper surface." -msgstr "" -"Cutting depth (negative)\n" -"below the copper surface." - -#: AppGUI/ObjectUI.py:1654 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:104 -msgid "" -"Height of the tool when\n" -"moving without cutting." -msgstr "" -"Height of the tool when\n" -"moving without cutting." - -#: AppGUI/ObjectUI.py:1687 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:203 -msgid "" -"Cutting speed in the XY\n" -"plane in units per minute.\n" -"It is called also Plunge." -msgstr "" -"Cutting speed in the XY\n" -"plane in units per minute.\n" -"It is called also Plunge." - -#: AppGUI/ObjectUI.py:1702 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:69 -msgid "" -"Cutting speed in the XY plane\n" -"(in units per minute).\n" -"This is for the rapid move G00.\n" -"It is useful only for Marlin,\n" -"ignore for any other cases." -msgstr "" -"Cutting speed in the XY plane\n" -"(in units per minute).\n" -"This is for the rapid move G00.\n" -"It is useful only for Marlin,\n" -"ignore for any other cases." - -#: AppGUI/ObjectUI.py:1746 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:220 -msgid "" -"Speed of the spindle in RPM (optional).\n" -"If LASER preprocessor is used,\n" -"this value is the power of laser." -msgstr "" -"Speed of the spindle in RPM (optional).\n" -"If LASER preprocessor is used,\n" -"this value is the power of laser." - -#: AppGUI/ObjectUI.py:1849 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:125 -msgid "" -"Include tool-change sequence\n" -"in the Machine Code (Pause for tool change)." -msgstr "" -"Include tool-change sequence\n" -"in the Machine Code (Pause for tool change)." - -#: AppGUI/ObjectUI.py:1918 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:257 -msgid "" -"The Preprocessor file that dictates\n" -"the Machine Code (like GCode, RML, HPGL) output." -msgstr "" -"The Preprocessor file that dictates\n" -"the Machine Code (like GCode, RML, HPGL) output." - -#: AppGUI/ObjectUI.py:2047 Common.py:426 Common.py:559 Common.py:619 -msgid "Generate the CNC Job object." -msgstr "Generate the CNC Job object." - -#: AppGUI/ObjectUI.py:2064 -msgid "Launch Paint Tool in Tools Tab." -msgstr "Launch Paint Tool in Tools Tab." - -#: AppGUI/ObjectUI.py:2072 AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:35 -msgid "" -"Creates tool paths to cover the\n" -"whole area of a polygon (remove\n" -"all copper). You will be asked\n" -"to click on the desired polygon." -msgstr "" -"Creates tool paths to cover the\n" -"whole area of a polygon (remove\n" -"all copper). You will be asked\n" -"to click on the desired polygon." - -#: AppGUI/ObjectUI.py:2127 -msgid "CNC Job Object" -msgstr "CNC Job Object" - -#: AppGUI/ObjectUI.py:2138 AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:45 -msgid "Plot kind" -msgstr "Plot kind" - -#: AppGUI/ObjectUI.py:2141 AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:47 -msgid "" -"This selects the kind of geometries on the canvas to plot.\n" -"Those can be either of type 'Travel' which means the moves\n" -"above the work piece or it can be of type 'Cut',\n" -"which means the moves that cut into the material." -msgstr "" -"This selects the kind of geometries on the canvas to plot.\n" -"Those can be either of type 'Travel' which means the moves\n" -"above the work piece or it can be of type 'Cut',\n" -"which means the moves that cut into the material." - -#: AppGUI/ObjectUI.py:2150 AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:55 -msgid "Travel" -msgstr "Travel" - -#: AppGUI/ObjectUI.py:2154 AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:64 -msgid "Display Annotation" -msgstr "Display Annotation" - -#: AppGUI/ObjectUI.py:2156 AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:66 -msgid "" -"This selects if to display text annotation on the plot.\n" -"When checked it will display numbers in order for each end\n" -"of a travel line." -msgstr "" -"This selects if to display text annotation on the plot.\n" -"When checked it will display numbers in order for each end\n" -"of a travel line." - -#: AppGUI/ObjectUI.py:2171 -msgid "Travelled dist." -msgstr "Travelled dist." - -#: AppGUI/ObjectUI.py:2173 AppGUI/ObjectUI.py:2178 -msgid "" -"This is the total travelled distance on X-Y plane.\n" -"In current units." -msgstr "" -"This is the total travelled distance on X-Y plane.\n" -"In current units." - -#: AppGUI/ObjectUI.py:2183 -msgid "Estimated time" -msgstr "Estimated time" - -#: AppGUI/ObjectUI.py:2185 AppGUI/ObjectUI.py:2190 -msgid "" -"This is the estimated time to do the routing/drilling,\n" -"without the time spent in ToolChange events." -msgstr "" -"This is the estimated time to do the routing/drilling,\n" -"without the time spent in ToolChange events." - -#: AppGUI/ObjectUI.py:2225 -msgid "CNC Tools Table" -msgstr "CNC Tools Table" - -#: AppGUI/ObjectUI.py:2228 -msgid "" -"Tools in this CNCJob object used for cutting.\n" -"The tool diameter is used for plotting on canvas.\n" -"The 'Offset' entry will set an offset for the cut.\n" -"'Offset' can be inside, outside, on path (none) and custom.\n" -"'Type' entry is only informative and it allow to know the \n" -"intent of using the current tool. \n" -"It can be Rough(ing), Finish(ing) or Iso(lation).\n" -"The 'Tool type'(TT) can be circular with 1 to 4 teeths(C1..C4),\n" -"ball(B), or V-Shaped(V)." -msgstr "" -"Tools in this CNCJob object used for cutting.\n" -"The tool diameter is used for plotting on canvas.\n" -"The 'Offset' entry will set an offset for the cut.\n" -"'Offset' can be inside, outside, on path (none) and custom.\n" -"'Type' entry is only informative and it allow to know the \n" -"intent of using the current tool. \n" -"It can be Rough(ing), Finish(ing) or Iso(lation).\n" -"The 'Tool type'(TT) can be circular with 1 to 4 teeths(C1..C4),\n" -"ball(B), or V-Shaped(V)." - -#: AppGUI/ObjectUI.py:2256 AppGUI/ObjectUI.py:2267 -msgid "P" -msgstr "P" - -#: AppGUI/ObjectUI.py:2277 -msgid "Update Plot" -msgstr "Update Plot" - -#: AppGUI/ObjectUI.py:2279 -msgid "Update the plot." -msgstr "Update the plot." - -#: AppGUI/ObjectUI.py:2286 -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:30 -msgid "Export CNC Code" -msgstr "Export CNC Code" - -#: AppGUI/ObjectUI.py:2288 -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:32 -#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:33 -msgid "" -"Export and save G-Code to\n" -"make this object to a file." -msgstr "" -"Export and save G-Code to\n" -"make this object to a file." - -#: AppGUI/ObjectUI.py:2294 -msgid "Prepend to CNC Code" -msgstr "Prepend to CNC Code" - -#: AppGUI/ObjectUI.py:2296 AppGUI/ObjectUI.py:2303 -#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:49 -msgid "" -"Type here any G-Code commands you would\n" -"like to add at the beginning of the G-Code file." -msgstr "" -"Type here any G-Code commands you would\n" -"like to add at the beginning of the G-Code file." - -#: AppGUI/ObjectUI.py:2309 -msgid "Append to CNC Code" -msgstr "Append to CNC Code" - -#: AppGUI/ObjectUI.py:2311 AppGUI/ObjectUI.py:2319 -#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:65 -msgid "" -"Type here any G-Code commands you would\n" -"like to append to the generated file.\n" -"I.e.: M2 (End of program)" -msgstr "" -"Type here any G-Code commands you would\n" -"like to append to the generated file.\n" -"I.e.: M2 (End of program)" - -#: AppGUI/ObjectUI.py:2333 -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:38 -msgid "Toolchange G-Code" -msgstr "Toolchange G-Code" - -#: AppGUI/ObjectUI.py:2336 -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:41 -msgid "" -"Type here any G-Code commands you would\n" -"like to be executed when Toolchange event is encountered.\n" -"This will constitute a Custom Toolchange GCode,\n" -"or a Toolchange Macro.\n" -"The FlatCAM variables are surrounded by '%' symbol.\n" -"\n" -"WARNING: it can be used only with a preprocessor file\n" -"that has 'toolchange_custom' in it's name and this is built\n" -"having as template the 'Toolchange Custom' posprocessor file." -msgstr "" -"Type here any G-Code commands you would\n" -"like to be executed when Toolchange event is encountered.\n" -"This will constitute a Custom Toolchange GCode,\n" -"or a Toolchange Macro.\n" -"The FlatCAM variables are surrounded by '%' symbol.\n" -"\n" -"WARNING: it can be used only with a preprocessor file\n" -"that has 'toolchange_custom' in it's name and this is built\n" -"having as template the 'Toolchange Custom' posprocessor file." - -#: AppGUI/ObjectUI.py:2351 -msgid "" -"Type here any G-Code commands you would\n" -"like to be executed when Toolchange event is encountered.\n" -"This will constitute a Custom Toolchange GCode,\n" -"or a Toolchange Macro.\n" -"The FlatCAM variables are surrounded by '%' symbol.\n" -"WARNING: it can be used only with a preprocessor file\n" -"that has 'toolchange_custom' in it's name." -msgstr "" -"Type here any G-Code commands you would\n" -"like to be executed when Toolchange event is encountered.\n" -"This will constitute a Custom Toolchange GCode,\n" -"or a Toolchange Macro.\n" -"The FlatCAM variables are surrounded by '%' symbol.\n" -"WARNING: it can be used only with a preprocessor file\n" -"that has 'toolchange_custom' in it's name." - -#: AppGUI/ObjectUI.py:2366 -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:80 -msgid "Use Toolchange Macro" -msgstr "Use Toolchange Macro" - -#: AppGUI/ObjectUI.py:2368 -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:82 -msgid "" -"Check this box if you want to use\n" -"a Custom Toolchange GCode (macro)." -msgstr "" -"Check this box if you want to use\n" -"a Custom Toolchange GCode (macro)." - -#: AppGUI/ObjectUI.py:2376 -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:94 -msgid "" -"A list of the FlatCAM variables that can be used\n" -"in the Toolchange event.\n" -"They have to be surrounded by the '%' symbol" -msgstr "" -"A list of the FlatCAM variables that can be used\n" -"in the Toolchange event.\n" -"They have to be surrounded by the '%' symbol" - -#: AppGUI/ObjectUI.py:2383 -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:101 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:30 -#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:31 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:31 -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:37 -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:36 -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:36 -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:36 -#: AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py:31 -#: AppGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:31 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:36 -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:31 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:30 -#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:31 -#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:35 -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:32 -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:31 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:30 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:31 -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:31 -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:31 -#: AppGUI/preferences/tools/ToolsSubPrefGroupUI.py:31 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:31 -#: AppTools/ToolCalibration.py:67 AppTools/ToolCopperThieving.py:93 -#: AppTools/ToolCorners.py:115 AppTools/ToolEtchCompensation.py:138 -#: AppTools/ToolFiducials.py:152 AppTools/ToolInvertGerber.py:85 -#: AppTools/ToolQRCode.py:114 -msgid "Parameters" -msgstr "Parameters" - -#: AppGUI/ObjectUI.py:2386 -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:106 -msgid "FlatCAM CNC parameters" -msgstr "FlatCAM CNC parameters" - -#: AppGUI/ObjectUI.py:2387 -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:111 -msgid "tool number" -msgstr "tool number" - -#: AppGUI/ObjectUI.py:2388 -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:112 -msgid "tool diameter" -msgstr "tool diameter" - -#: AppGUI/ObjectUI.py:2389 -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:113 -msgid "for Excellon, total number of drills" -msgstr "for Excellon, total number of drills" - -#: AppGUI/ObjectUI.py:2391 -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:115 -msgid "X coord for Toolchange" -msgstr "X coord for Toolchange" - -#: AppGUI/ObjectUI.py:2392 -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:116 -msgid "Y coord for Toolchange" -msgstr "Y coord for Toolchange" - -#: AppGUI/ObjectUI.py:2393 -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:118 -msgid "Z coord for Toolchange" -msgstr "Z coord for Toolchange" - -#: AppGUI/ObjectUI.py:2394 -msgid "depth where to cut" -msgstr "depth where to cut" - -#: AppGUI/ObjectUI.py:2395 -msgid "height where to travel" -msgstr "height where to travel" - -#: AppGUI/ObjectUI.py:2396 -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:121 -msgid "the step value for multidepth cut" -msgstr "the step value for multidepth cut" - -#: AppGUI/ObjectUI.py:2398 -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:123 -msgid "the value for the spindle speed" -msgstr "the value for the spindle speed" - -#: AppGUI/ObjectUI.py:2400 -msgid "time to dwell to allow the spindle to reach it's set RPM" -msgstr "time to dwell to allow the spindle to reach it's set RPM" - -#: AppGUI/ObjectUI.py:2416 -msgid "View CNC Code" -msgstr "View CNC Code" - -#: AppGUI/ObjectUI.py:2418 -msgid "" -"Opens TAB to view/modify/print G-Code\n" -"file." -msgstr "" -"Opens TAB to view/modify/print G-Code\n" -"file." - -#: AppGUI/ObjectUI.py:2423 -msgid "Save CNC Code" -msgstr "Save CNC Code" - -#: AppGUI/ObjectUI.py:2425 -msgid "" -"Opens dialog to save G-Code\n" -"file." -msgstr "" -"Opens dialog to save G-Code\n" -"file." - -#: AppGUI/ObjectUI.py:2459 -msgid "Script Object" -msgstr "Script Object" - -#: AppGUI/ObjectUI.py:2479 AppGUI/ObjectUI.py:2553 -msgid "Auto Completer" -msgstr "Auto Completer" - -#: AppGUI/ObjectUI.py:2481 -msgid "This selects if the auto completer is enabled in the Script Editor." -msgstr "This selects if the auto completer is enabled in the Script Editor." - -#: AppGUI/ObjectUI.py:2526 -msgid "Document Object" -msgstr "Document Object" - -#: AppGUI/ObjectUI.py:2555 -msgid "This selects if the auto completer is enabled in the Document Editor." -msgstr "This selects if the auto completer is enabled in the Document Editor." - -#: AppGUI/ObjectUI.py:2573 -msgid "Font Type" -msgstr "Font Type" - -#: AppGUI/ObjectUI.py:2590 -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:189 -msgid "Font Size" -msgstr "Font Size" - -#: AppGUI/ObjectUI.py:2626 -msgid "Alignment" -msgstr "Alignment" - -#: AppGUI/ObjectUI.py:2631 -msgid "Align Left" -msgstr "Align Left" - -#: AppGUI/ObjectUI.py:2636 App_Main.py:4715 -msgid "Center" -msgstr "Center" - -#: AppGUI/ObjectUI.py:2641 -msgid "Align Right" -msgstr "Align Right" - -#: AppGUI/ObjectUI.py:2646 -msgid "Justify" -msgstr "Justify" - -#: AppGUI/ObjectUI.py:2653 -msgid "Font Color" -msgstr "Font Color" - -#: AppGUI/ObjectUI.py:2655 -msgid "Set the font color for the selected text" -msgstr "Set the font color for the selected text" - -#: AppGUI/ObjectUI.py:2669 -msgid "Selection Color" -msgstr "Selection Color" - -#: AppGUI/ObjectUI.py:2671 -msgid "Set the selection color when doing text selection." -msgstr "Set the selection color when doing text selection." - -#: AppGUI/ObjectUI.py:2685 -msgid "Tab Size" -msgstr "Tab Size" - -#: AppGUI/ObjectUI.py:2687 -msgid "Set the tab size. In pixels. Default value is 80 pixels." -msgstr "Set the tab size. In pixels. Default value is 80 pixels." - -#: AppGUI/PlotCanvas.py:236 AppGUI/PlotCanvasLegacy.py:345 -msgid "Axis enabled." -msgstr "Axis enabled." - -#: AppGUI/PlotCanvas.py:242 AppGUI/PlotCanvasLegacy.py:352 -msgid "Axis disabled." -msgstr "Axis disabled." - -#: AppGUI/PlotCanvas.py:260 AppGUI/PlotCanvasLegacy.py:372 -msgid "HUD enabled." -msgstr "HUD enabled." - -#: AppGUI/PlotCanvas.py:268 AppGUI/PlotCanvasLegacy.py:378 -msgid "HUD disabled." -msgstr "HUD disabled." - -#: AppGUI/PlotCanvas.py:276 AppGUI/PlotCanvasLegacy.py:451 -msgid "Grid enabled." -msgstr "Grid enabled." - -#: AppGUI/PlotCanvas.py:280 AppGUI/PlotCanvasLegacy.py:459 -msgid "Grid disabled." -msgstr "Grid disabled." - -#: AppGUI/PlotCanvasLegacy.py:1523 -msgid "" -"Could not annotate due of a difference between the number of text elements " -"and the number of text positions." -msgstr "" -"Could not annotate due of a difference between the number of text elements " -"and the number of text positions." - -#: AppGUI/preferences/PreferencesUIManager.py:852 -msgid "Preferences applied." -msgstr "Preferences applied." - -#: AppGUI/preferences/PreferencesUIManager.py:872 -msgid "Are you sure you want to continue?" -msgstr "Are you sure you want to continue?" - -#: AppGUI/preferences/PreferencesUIManager.py:873 -msgid "Application will restart" -msgstr "Application will restart" - -#: AppGUI/preferences/PreferencesUIManager.py:971 -msgid "Preferences closed without saving." -msgstr "Preferences closed without saving." - -#: AppGUI/preferences/PreferencesUIManager.py:983 -msgid "Preferences default values are restored." -msgstr "Preferences default values are restored." - -#: AppGUI/preferences/PreferencesUIManager.py:1015 App_Main.py:2498 -#: App_Main.py:2566 -msgid "Failed to write defaults to file." -msgstr "Failed to write defaults to file." - -#: AppGUI/preferences/PreferencesUIManager.py:1019 -#: AppGUI/preferences/PreferencesUIManager.py:1132 -msgid "Preferences saved." -msgstr "Preferences saved." - -#: AppGUI/preferences/PreferencesUIManager.py:1069 -msgid "Preferences edited but not saved." -msgstr "Preferences edited but not saved." - -#: AppGUI/preferences/PreferencesUIManager.py:1117 -msgid "" -"One or more values are changed.\n" -"Do you want to save the Preferences?" -msgstr "" -"One or more values are changed.\n" -"Do you want to save the Preferences?" - -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:27 -msgid "CNC Job Adv. Options" -msgstr "CNC Job Adv. Options" - -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:64 -msgid "" -"Type here any G-Code commands you would like to be executed when Toolchange " -"event is encountered.\n" -"This will constitute a Custom Toolchange GCode, or a Toolchange Macro.\n" -"The FlatCAM variables are surrounded by '%' symbol.\n" -"WARNING: it can be used only with a preprocessor file that has " -"'toolchange_custom' in it's name." -msgstr "" -"Type here any G-Code commands you would like to be executed when Toolchange " -"event is encountered.\n" -"This will constitute a Custom Toolchange GCode, or a Toolchange Macro.\n" -"The FlatCAM variables are surrounded by '%' symbol.\n" -"WARNING: it can be used only with a preprocessor file that has " -"'toolchange_custom' in it's name." - -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:119 -msgid "Z depth for the cut" -msgstr "Z depth for the cut" - -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:120 -msgid "Z height for travel" -msgstr "Z height for travel" - -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:126 -msgid "dwelltime = time to dwell to allow the spindle to reach it's set RPM" -msgstr "dwelltime = time to dwell to allow the spindle to reach it's set RPM" - -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:145 -msgid "Annotation Size" -msgstr "Annotation Size" - -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:147 -msgid "The font size of the annotation text. In pixels." -msgstr "The font size of the annotation text. In pixels." - -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:157 -msgid "Annotation Color" -msgstr "Annotation Color" - -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:159 -msgid "Set the font color for the annotation texts." -msgstr "Set the font color for the annotation texts." - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:26 -msgid "CNC Job General" -msgstr "CNC Job General" - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:77 -#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:57 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:59 -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:45 -msgid "Circle Steps" -msgstr "Circle Steps" - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:79 -msgid "" -"The number of circle steps for GCode \n" -"circle and arc shapes linear approximation." -msgstr "" -"The number of circle steps for GCode \n" -"circle and arc shapes linear approximation." - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:88 -msgid "Travel dia" -msgstr "Travel dia" - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:90 -msgid "" -"The width of the travel lines to be\n" -"rendered in the plot." -msgstr "" -"The width of the travel lines to be\n" -"rendered in the plot." - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:103 -msgid "G-code Decimals" -msgstr "G-code Decimals" - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:106 -#: AppTools/ToolFiducials.py:71 -msgid "Coordinates" -msgstr "Coordinates" - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:108 -msgid "" -"The number of decimals to be used for \n" -"the X, Y, Z coordinates in CNC code (GCODE, etc.)" -msgstr "" -"The number of decimals to be used for \n" -"the X, Y, Z coordinates in CNC code (GCODE, etc.)" - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:119 -#: AppTools/ToolProperties.py:519 -msgid "Feedrate" -msgstr "Feedrate" - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:121 -msgid "" -"The number of decimals to be used for \n" -"the Feedrate parameter in CNC code (GCODE, etc.)" -msgstr "" -"The number of decimals to be used for \n" -"the Feedrate parameter in CNC code (GCODE, etc.)" - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:132 -msgid "Coordinates type" -msgstr "Coordinates type" - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:134 -msgid "" -"The type of coordinates to be used in Gcode.\n" -"Can be:\n" -"- Absolute G90 -> the reference is the origin x=0, y=0\n" -"- Incremental G91 -> the reference is the previous position" -msgstr "" -"The type of coordinates to be used in Gcode.\n" -"Can be:\n" -"- Absolute G90 -> the reference is the origin x=0, y=0\n" -"- Incremental G91 -> the reference is the previous position" - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:140 -msgid "Absolute G90" -msgstr "Absolute G90" - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:141 -msgid "Incremental G91" -msgstr "Incremental G91" - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:151 -msgid "Force Windows style line-ending" -msgstr "Force Windows style line-ending" - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:153 -msgid "" -"When checked will force a Windows style line-ending\n" -"(\\r\\n) on non-Windows OS's." -msgstr "" -"When checked will force a Windows style line-ending\n" -"(\\r\\n) on non-Windows OS's." - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:165 -msgid "Travel Line Color" -msgstr "Travel Line Color" - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:169 -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:210 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:271 -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:154 -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:195 -#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:94 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:153 -#: AppTools/ToolRulesCheck.py:186 -msgid "Outline" -msgstr "Outline" - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:171 -msgid "Set the travel line color for plotted objects." -msgstr "Set the travel line color for plotted objects." - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:179 -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:220 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:281 -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:163 -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:205 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:163 -msgid "Fill" -msgstr "Fill" - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:181 -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:222 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:283 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:165 -msgid "" -"Set the fill color for plotted objects.\n" -"First 6 digits are the color and the last 2\n" -"digits are for alpha (transparency) level." -msgstr "" -"Set the fill color for plotted objects.\n" -"First 6 digits are the color and the last 2\n" -"digits are for alpha (transparency) level." - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:191 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:293 -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:176 -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:218 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:175 -msgid "Alpha" -msgstr "Alpha" - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:193 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:295 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:177 -msgid "Set the fill transparency for plotted objects." -msgstr "Set the fill transparency for plotted objects." - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:206 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:267 -#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:90 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:149 -msgid "Object Color" -msgstr "Object Color" - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:212 -msgid "Set the color for plotted objects." -msgstr "Set the color for plotted objects." - -#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:27 -msgid "CNC Job Options" -msgstr "CNC Job Options" - -#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:31 -msgid "Export G-Code" -msgstr "Export G-Code" - -#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:47 -msgid "Prepend to G-Code" -msgstr "Prepend to G-Code" - -#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:56 -msgid "" -"Type here any G-Code commands you would like to add at the beginning of the " -"G-Code file." -msgstr "" -"Type here any G-Code commands you would like to add at the beginning of the " -"G-Code file." - -#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:63 -msgid "Append to G-Code" -msgstr "Append to G-Code" - -#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:73 -msgid "" -"Type here any G-Code commands you would like to append to the generated " -"file.\n" -"I.e.: M2 (End of program)" -msgstr "" -"Type here any G-Code commands you would like to append to the generated " -"file.\n" -"I.e.: M2 (End of program)" - -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:27 -msgid "Excellon Adv. Options" -msgstr "Excellon Adv. Options" - -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:34 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:34 -#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:31 -msgid "Advanced Options" -msgstr "Advanced Options" - -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:36 -msgid "" -"A list of Excellon advanced parameters.\n" -"Those parameters are available only for\n" -"Advanced App. Level." -msgstr "" -"A list of Excellon advanced parameters.\n" -"Those parameters are available only for\n" -"Advanced App. Level." - -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:59 -msgid "Toolchange X,Y" -msgstr "Toolchange X,Y" - -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:61 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:48 -msgid "Toolchange X,Y position." -msgstr "Toolchange X,Y position." - -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:121 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:137 -msgid "Spindle direction" -msgstr "Spindle direction" - -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:123 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:139 -msgid "" -"This sets the direction that the spindle is rotating.\n" -"It can be either:\n" -"- CW = clockwise or\n" -"- CCW = counter clockwise" -msgstr "" -"This sets the direction that the spindle is rotating.\n" -"It can be either:\n" -"- CW = clockwise or\n" -"- CCW = counter clockwise" - -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:134 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:151 -msgid "Fast Plunge" -msgstr "Fast Plunge" - -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:136 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:153 -msgid "" -"By checking this, the vertical move from\n" -"Z_Toolchange to Z_move is done with G0,\n" -"meaning the fastest speed available.\n" -"WARNING: the move is done at Toolchange X,Y coords." -msgstr "" -"By checking this, the vertical move from\n" -"Z_Toolchange to Z_move is done with G0,\n" -"meaning the fastest speed available.\n" -"WARNING: the move is done at Toolchange X,Y coords." - -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:143 -msgid "Fast Retract" -msgstr "Fast Retract" - -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:145 -msgid "" -"Exit hole strategy.\n" -" - When uncheked, while exiting the drilled hole the drill bit\n" -"will travel slow, with set feedrate (G1), up to zero depth and then\n" -"travel as fast as possible (G0) to the Z Move (travel height).\n" -" - When checked the travel from Z cut (cut depth) to Z_move\n" -"(travel height) is done as fast as possible (G0) in one move." -msgstr "" -"Exit hole strategy.\n" -" - When uncheked, while exiting the drilled hole the drill bit\n" -"will travel slow, with set feedrate (G1), up to zero depth and then\n" -"travel as fast as possible (G0) to the Z Move (travel height).\n" -" - When checked the travel from Z cut (cut depth) to Z_move\n" -"(travel height) is done as fast as possible (G0) in one move." - -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:32 -msgid "A list of Excellon Editor parameters." -msgstr "A list of Excellon Editor parameters." - -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:40 -#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:41 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:41 -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:172 -msgid "Selection limit" -msgstr "Selection limit" - -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:42 -msgid "" -"Set the number of selected Excellon geometry\n" -"items above which the utility geometry\n" -"becomes just a selection rectangle.\n" -"Increases the performance when moving a\n" -"large number of geometric elements." -msgstr "" -"Set the number of selected Excellon geometry\n" -"items above which the utility geometry\n" -"becomes just a selection rectangle.\n" -"Increases the performance when moving a\n" -"large number of geometric elements." - -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:55 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:134 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:117 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:123 -msgid "New Dia" -msgstr "New Dia" - -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:80 -msgid "Linear Drill Array" -msgstr "Linear Drill Array" - -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:84 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:232 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:121 -msgid "Linear Direction" -msgstr "Linear Direction" - -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:126 -msgid "Circular Drill Array" -msgstr "Circular Drill Array" - -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:130 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:280 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:165 -msgid "Circular Direction" -msgstr "Circular Direction" - -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:132 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:282 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:167 -msgid "" -"Direction for circular array.\n" -"Can be CW = clockwise or CCW = counter clockwise." -msgstr "" -"Direction for circular array.\n" -"Can be CW = clockwise or CCW = counter clockwise." - -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:143 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:293 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:178 -msgid "Circular Angle" -msgstr "Circular Angle" - -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:196 -msgid "" -"Angle at which the slot is placed.\n" -"The precision is of max 2 decimals.\n" -"Min value is: -359.99 degrees.\n" -"Max value is: 360.00 degrees." -msgstr "" -"Angle at which the slot is placed.\n" -"The precision is of max 2 decimals.\n" -"Min value is: -359.99 degrees.\n" -"Max value is: 360.00 degrees." - -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:215 -msgid "Linear Slot Array" -msgstr "Linear Slot Array" - -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:276 -msgid "Circular Slot Array" -msgstr "Circular Slot Array" - -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:26 -msgid "Excellon Export" -msgstr "Excellon Export" - -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:30 -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:31 -msgid "Export Options" -msgstr "Export Options" - -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:32 -msgid "" -"The parameters set here are used in the file exported\n" -"when using the File -> Export -> Export Excellon menu entry." -msgstr "" -"The parameters set here are used in the file exported\n" -"when using the File -> Export -> Export Excellon menu entry." - -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:41 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:172 -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:39 -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:42 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:82 -#: AppTools/ToolDistance.py:56 AppTools/ToolDistanceMin.py:49 -#: AppTools/ToolPcbWizard.py:127 AppTools/ToolProperties.py:154 -msgid "Units" -msgstr "Units" - -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:43 -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:49 -msgid "The units used in the Excellon file." -msgstr "The units used in the Excellon file." - -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:46 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:96 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:182 -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:47 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:87 -#: AppTools/ToolCalculators.py:61 AppTools/ToolPcbWizard.py:125 -msgid "INCH" -msgstr "INCH" - -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:47 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:183 -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:43 -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:48 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:88 -#: AppTools/ToolCalculators.py:62 AppTools/ToolPcbWizard.py:126 -msgid "MM" -msgstr "MM" - -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:55 -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:56 -msgid "Int/Decimals" -msgstr "Int/Decimals" - -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:57 -msgid "" -"The NC drill files, usually named Excellon files\n" -"are files that can be found in different formats.\n" -"Here we set the format used when the provided\n" -"coordinates are not using period." -msgstr "" -"The NC drill files, usually named Excellon files\n" -"are files that can be found in different formats.\n" -"Here we set the format used when the provided\n" -"coordinates are not using period." - -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:69 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:104 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:133 -msgid "" -"This numbers signify the number of digits in\n" -"the whole part of Excellon coordinates." -msgstr "" -"This numbers signify the number of digits in\n" -"the whole part of Excellon coordinates." - -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:82 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:117 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:146 -msgid "" -"This numbers signify the number of digits in\n" -"the decimal part of Excellon coordinates." -msgstr "" -"This numbers signify the number of digits in\n" -"the decimal part of Excellon coordinates." - -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:91 -msgid "Format" -msgstr "Format" - -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:93 -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:103 -msgid "" -"Select the kind of coordinates format used.\n" -"Coordinates can be saved with decimal point or without.\n" -"When there is no decimal point, it is required to specify\n" -"the number of digits for integer part and the number of decimals.\n" -"Also it will have to be specified if LZ = leading zeros are kept\n" -"or TZ = trailing zeros are kept." -msgstr "" -"Select the kind of coordinates format used.\n" -"Coordinates can be saved with decimal point or without.\n" -"When there is no decimal point, it is required to specify\n" -"the number of digits for integer part and the number of decimals.\n" -"Also it will have to be specified if LZ = leading zeros are kept\n" -"or TZ = trailing zeros are kept." - -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:100 -msgid "Decimal" -msgstr "Decimal" - -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:101 -msgid "No-Decimal" -msgstr "No-Decimal" - -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:114 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:154 -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:96 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:97 -msgid "Zeros" -msgstr "Zeros" - -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:117 -msgid "" -"This sets the type of Excellon zeros.\n" -"If LZ then Leading Zeros are kept and\n" -"Trailing Zeros are removed.\n" -"If TZ is checked then Trailing Zeros are kept\n" -"and Leading Zeros are removed." -msgstr "" -"This sets the type of Excellon zeros.\n" -"If LZ then Leading Zeros are kept and\n" -"Trailing Zeros are removed.\n" -"If TZ is checked then Trailing Zeros are kept\n" -"and Leading Zeros are removed." - -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:124 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:167 -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:106 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:107 -#: AppTools/ToolPcbWizard.py:111 -msgid "LZ" -msgstr "LZ" - -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:125 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:168 -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:107 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:108 -#: AppTools/ToolPcbWizard.py:112 -msgid "TZ" -msgstr "TZ" - -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:127 -msgid "" -"This sets the default type of Excellon zeros.\n" -"If LZ then Leading Zeros are kept and\n" -"Trailing Zeros are removed.\n" -"If TZ is checked then Trailing Zeros are kept\n" -"and Leading Zeros are removed." -msgstr "" -"This sets the default type of Excellon zeros.\n" -"If LZ then Leading Zeros are kept and\n" -"Trailing Zeros are removed.\n" -"If TZ is checked then Trailing Zeros are kept\n" -"and Leading Zeros are removed." - -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:137 -msgid "Slot type" -msgstr "Slot type" - -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:140 -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:150 -msgid "" -"This sets how the slots will be exported.\n" -"If ROUTED then the slots will be routed\n" -"using M15/M16 commands.\n" -"If DRILLED(G85) the slots will be exported\n" -"using the Drilled slot command (G85)." -msgstr "" -"This sets how the slots will be exported.\n" -"If ROUTED then the slots will be routed\n" -"using M15/M16 commands.\n" -"If DRILLED(G85) the slots will be exported\n" -"using the Drilled slot command (G85)." - -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:147 -msgid "Routed" -msgstr "Routed" - -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:148 -msgid "Drilled(G85)" -msgstr "Drilled(G85)" - -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:29 -msgid "Excellon General" -msgstr "Excellon General" - -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:54 -#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:45 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:52 -msgid "M-Color" -msgstr "M-Color" - -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:71 -msgid "Excellon Format" -msgstr "Excellon Format" - -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:73 -msgid "" -"The NC drill files, usually named Excellon files\n" -"are files that can be found in different formats.\n" -"Here we set the format used when the provided\n" -"coordinates are not using period.\n" -"\n" -"Possible presets:\n" -"\n" -"PROTEUS 3:3 MM LZ\n" -"DipTrace 5:2 MM TZ\n" -"DipTrace 4:3 MM LZ\n" -"\n" -"EAGLE 3:3 MM TZ\n" -"EAGLE 4:3 MM TZ\n" -"EAGLE 2:5 INCH TZ\n" -"EAGLE 3:5 INCH TZ\n" -"\n" -"ALTIUM 2:4 INCH LZ\n" -"Sprint Layout 2:4 INCH LZ\n" -"KiCAD 3:5 INCH TZ" -msgstr "" -"The NC drill files, usually named Excellon files\n" -"are files that can be found in different formats.\n" -"Here we set the format used when the provided\n" -"coordinates are not using period.\n" -"\n" -"Possible presets:\n" -"\n" -"PROTEUS 3:3 MM LZ\n" -"DipTrace 5:2 MM TZ\n" -"DipTrace 4:3 MM LZ\n" -"\n" -"EAGLE 3:3 MM TZ\n" -"EAGLE 4:3 MM TZ\n" -"EAGLE 2:5 INCH TZ\n" -"EAGLE 3:5 INCH TZ\n" -"\n" -"ALTIUM 2:4 INCH LZ\n" -"Sprint Layout 2:4 INCH LZ\n" -"KiCAD 3:5 INCH TZ" - -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:97 -msgid "Default values for INCH are 2:4" -msgstr "Default values for INCH are 2:4" - -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:125 -msgid "METRIC" -msgstr "METRIC" - -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:126 -msgid "Default values for METRIC are 3:3" -msgstr "Default values for METRIC are 3:3" - -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:157 -msgid "" -"This sets the type of Excellon zeros.\n" -"If LZ then Leading Zeros are kept and\n" -"Trailing Zeros are removed.\n" -"If TZ is checked then Trailing Zeros are kept\n" -"and Leading Zeros are removed.\n" -"\n" -"This is used when there is no information\n" -"stored in the Excellon file." -msgstr "" -"This sets the type of Excellon zeros.\n" -"If LZ then Leading Zeros are kept and\n" -"Trailing Zeros are removed.\n" -"If TZ is checked then Trailing Zeros are kept\n" -"and Leading Zeros are removed.\n" -"\n" -"This is used when there is no information\n" -"stored in the Excellon file." - -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:175 -msgid "" -"This sets the default units of Excellon files.\n" -"If it is not detected in the parsed file the value here\n" -"will be used.Some Excellon files don't have an header\n" -"therefore this parameter will be used." -msgstr "" -"This sets the default units of Excellon files.\n" -"If it is not detected in the parsed file the value here\n" -"will be used.Some Excellon files don't have an header\n" -"therefore this parameter will be used." - -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:185 -msgid "" -"This sets the units of Excellon files.\n" -"Some Excellon files don't have an header\n" -"therefore this parameter will be used." -msgstr "" -"This sets the units of Excellon files.\n" -"Some Excellon files don't have an header\n" -"therefore this parameter will be used." - -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:193 -msgid "Update Export settings" -msgstr "Update Export settings" - -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:210 -msgid "Excellon Optimization" -msgstr "Excellon Optimization" - -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:213 -msgid "Algorithm:" -msgstr "Algorithm:" - -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:215 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:231 -msgid "" -"This sets the optimization type for the Excellon drill path.\n" -"If <> is checked then Google OR-Tools algorithm with\n" -"MetaHeuristic Guided Local Path is used. Default search time is 3sec.\n" -"If <> is checked then Google OR-Tools Basic algorithm is used.\n" -"If <> is checked then Travelling Salesman algorithm is used for\n" -"drill path optimization.\n" -"\n" -"If this control is disabled, then FlatCAM works in 32bit mode and it uses\n" -"Travelling Salesman algorithm for path optimization." -msgstr "" -"This sets the optimization type for the Excellon drill path.\n" -"If <> is checked then Google OR-Tools algorithm with\n" -"MetaHeuristic Guided Local Path is used. Default search time is 3sec.\n" -"If <> is checked then Google OR-Tools Basic algorithm is used.\n" -"If <> is checked then Travelling Salesman algorithm is used for\n" -"drill path optimization.\n" -"\n" -"If this control is disabled, then FlatCAM works in 32bit mode and it uses\n" -"Travelling Salesman algorithm for path optimization." - -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:226 -msgid "MetaHeuristic" -msgstr "MetaHeuristic" - -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:227 -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:104 -#: AppObjects/FlatCAMExcellon.py:694 AppObjects/FlatCAMGeometry.py:568 -#: AppObjects/FlatCAMGerber.py:219 AppTools/ToolIsolation.py:785 -msgid "Basic" -msgstr "Basic" - -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:228 -msgid "TSA" -msgstr "TSA" - -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:245 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:245 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:238 -msgid "Duration" -msgstr "Duration" - -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:248 -msgid "" -"When OR-Tools Metaheuristic (MH) is enabled there is a\n" -"maximum threshold for how much time is spent doing the\n" -"path optimization. This max duration is set here.\n" -"In seconds." -msgstr "" -"When OR-Tools Metaheuristic (MH) is enabled there is a\n" -"maximum threshold for how much time is spent doing the\n" -"path optimization. This max duration is set here.\n" -"In seconds." - -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:273 -#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:96 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:155 -msgid "Set the line color for plotted objects." -msgstr "Set the line color for plotted objects." - -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:29 -msgid "Excellon Options" -msgstr "Excellon Options" - -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:33 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:35 -msgid "Create CNC Job" -msgstr "Create CNC Job" - -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:35 -msgid "" -"Parameters used to create a CNC Job object\n" -"for this drill object." -msgstr "" -"Parameters used to create a CNC Job object\n" -"for this drill object." - -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:152 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:122 -msgid "Tool change" -msgstr "Tool change" - -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:236 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:233 -msgid "Enable Dwell" -msgstr "Enable Dwell" - -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:259 -msgid "" -"The preprocessor JSON file that dictates\n" -"Gcode output." -msgstr "" -"The preprocessor JSON file that dictates\n" -"Gcode output." - -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:270 -msgid "Gcode" -msgstr "Gcode" - -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:272 -msgid "" -"Choose what to use for GCode generation:\n" -"'Drills', 'Slots' or 'Both'.\n" -"When choosing 'Slots' or 'Both', slots will be\n" -"converted to drills." -msgstr "" -"Choose what to use for GCode generation:\n" -"'Drills', 'Slots' or 'Both'.\n" -"When choosing 'Slots' or 'Both', slots will be\n" -"converted to drills." - -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:288 -msgid "Mill Holes" -msgstr "Mill Holes" - -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:290 -msgid "Create Geometry for milling holes." -msgstr "Create Geometry for milling holes." - -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:294 -msgid "Drill Tool dia" -msgstr "Drill Tool dia" - -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:305 -msgid "Slot Tool dia" -msgstr "Slot Tool dia" - -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:307 -msgid "" -"Diameter of the cutting tool\n" -"when milling slots." -msgstr "" -"Diameter of the cutting tool\n" -"when milling slots." - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:28 -#: AppGUI/preferences/general/GeneralAppSettingsGroupUI.py:74 -msgid "App Settings" -msgstr "App Settings" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:49 -msgid "Grid Settings" -msgstr "Grid Settings" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:53 -msgid "X value" -msgstr "X value" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:55 -msgid "This is the Grid snap value on X axis." -msgstr "This is the Grid snap value on X axis." - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:65 -msgid "Y value" -msgstr "Y value" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:67 -msgid "This is the Grid snap value on Y axis." -msgstr "This is the Grid snap value on Y axis." - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:77 -msgid "Snap Max" -msgstr "Snap Max" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:92 -msgid "Workspace Settings" -msgstr "Workspace Settings" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:95 -msgid "Active" -msgstr "Active" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:105 -msgid "" -"Select the type of rectangle to be used on canvas,\n" -"as valid workspace." -msgstr "" -"Select the type of rectangle to be used on canvas,\n" -"as valid workspace." - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:171 -msgid "Orientation" -msgstr "Orientation" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:172 -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:228 -#: AppTools/ToolFilm.py:405 -msgid "" -"Can be:\n" -"- Portrait\n" -"- Landscape" -msgstr "" -"Can be:\n" -"- Portrait\n" -"- Landscape" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:176 -#: AppGUI/preferences/general/GeneralAppSettingsGroupUI.py:154 -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:232 -#: AppTools/ToolFilm.py:409 -msgid "Portrait" -msgstr "Portrait" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:177 -#: AppGUI/preferences/general/GeneralAppSettingsGroupUI.py:155 -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:233 -#: AppTools/ToolFilm.py:410 -msgid "Landscape" -msgstr "Landscape" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:193 -msgid "Notebook" -msgstr "Notebook" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:195 -msgid "" -"This sets the font size for the elements found in the Notebook.\n" -"The notebook is the collapsible area in the left side of the AppGUI,\n" -"and include the Project, Selected and Tool tabs." -msgstr "" -"This sets the font size for the elements found in the Notebook.\n" -"The notebook is the collapsible area in the left side of the AppGUI,\n" -"and include the Project, Selected and Tool tabs." - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:214 -msgid "Axis" -msgstr "Axis" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:216 -msgid "This sets the font size for canvas axis." -msgstr "This sets the font size for canvas axis." - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:233 -msgid "Textbox" -msgstr "Textbox" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:235 -msgid "" -"This sets the font size for the Textbox AppGUI\n" -"elements that are used in the application." -msgstr "" -"This sets the font size for the Textbox AppGUI\n" -"elements that are used in the application." - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:253 -msgid "HUD" -msgstr "HUD" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:255 -msgid "This sets the font size for the Heads Up Display." -msgstr "This sets the font size for the Heads Up Display." - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:280 -msgid "Mouse Settings" -msgstr "Mouse Settings" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:284 -msgid "Cursor Shape" -msgstr "Cursor Shape" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:286 -msgid "" -"Choose a mouse cursor shape.\n" -"- Small -> with a customizable size.\n" -"- Big -> Infinite lines" -msgstr "" -"Choose a mouse cursor shape.\n" -"- Small -> with a customizable size.\n" -"- Big -> Infinite lines" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:292 -#: AppGUI/preferences/general/GeneralAppSettingsGroupUI.py:193 -msgid "Small" -msgstr "Small" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:293 -#: AppGUI/preferences/general/GeneralAppSettingsGroupUI.py:194 -msgid "Big" -msgstr "Big" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:300 -msgid "Cursor Size" -msgstr "Cursor Size" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:302 -msgid "Set the size of the mouse cursor, in pixels." -msgstr "Set the size of the mouse cursor, in pixels." - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:313 -msgid "Cursor Width" -msgstr "Cursor Width" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:315 -msgid "Set the line width of the mouse cursor, in pixels." -msgstr "Set the line width of the mouse cursor, in pixels." - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:326 -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:333 -msgid "Cursor Color" -msgstr "Cursor Color" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:328 -msgid "Check this box to color mouse cursor." -msgstr "Check this box to color mouse cursor." - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:335 -msgid "Set the color of the mouse cursor." -msgstr "Set the color of the mouse cursor." - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:350 -msgid "Pan Button" -msgstr "Pan Button" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:352 -msgid "" -"Select the mouse button to use for panning:\n" -"- MMB --> Middle Mouse Button\n" -"- RMB --> Right Mouse Button" -msgstr "" -"Select the mouse button to use for panning:\n" -"- MMB --> Middle Mouse Button\n" -"- RMB --> Right Mouse Button" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:356 -#: AppGUI/preferences/general/GeneralAppSettingsGroupUI.py:226 -msgid "MMB" -msgstr "MMB" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:357 -#: AppGUI/preferences/general/GeneralAppSettingsGroupUI.py:227 -msgid "RMB" -msgstr "RMB" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:363 -msgid "Multiple Selection" -msgstr "Multiple Selection" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:365 -msgid "Select the key used for multiple selection." -msgstr "Select the key used for multiple selection." - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:367 -#: AppGUI/preferences/general/GeneralAppSettingsGroupUI.py:233 -msgid "CTRL" -msgstr "CTRL" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:368 -#: AppGUI/preferences/general/GeneralAppSettingsGroupUI.py:234 -msgid "SHIFT" -msgstr "SHIFT" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:379 -msgid "Delete object confirmation" -msgstr "Delete object confirmation" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:381 -msgid "" -"When checked the application will ask for user confirmation\n" -"whenever the Delete object(s) event is triggered, either by\n" -"menu shortcut or key shortcut." -msgstr "" -"When checked the application will ask for user confirmation\n" -"whenever the Delete object(s) event is triggered, either by\n" -"menu shortcut or key shortcut." - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:388 -msgid "\"Open\" behavior" -msgstr "\"Open\" behavior" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:390 -msgid "" -"When checked the path for the last saved file is used when saving files,\n" -"and the path for the last opened file is used when opening files.\n" -"\n" -"When unchecked the path for opening files is the one used last: either the\n" -"path for saving files or the path for opening files." -msgstr "" -"When checked the path for the last saved file is used when saving files,\n" -"and the path for the last opened file is used when opening files.\n" -"\n" -"When unchecked the path for opening files is the one used last: either the\n" -"path for saving files or the path for opening files." - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:399 -msgid "Enable ToolTips" -msgstr "Enable ToolTips" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:401 -msgid "" -"Check this box if you want to have toolTips displayed\n" -"when hovering with mouse over items throughout the App." -msgstr "" -"Check this box if you want to have toolTips displayed\n" -"when hovering with mouse over items throughout the App." - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:408 -msgid "Allow Machinist Unsafe Settings" -msgstr "Allow Machinist Unsafe Settings" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:410 -msgid "" -"If checked, some of the application settings will be allowed\n" -"to have values that are usually unsafe to use.\n" -"Like Z travel negative values or Z Cut positive values.\n" -"It will applied at the next application start.\n" -"<>: Don't change this unless you know what you are doing !!!" -msgstr "" -"If checked, some of the application settings will be allowed\n" -"to have values that are usually unsafe to use.\n" -"Like Z travel negative values or Z Cut positive values.\n" -"It will applied at the next application start.\n" -"<>: Don't change this unless you know what you are doing !!!" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:422 -msgid "Bookmarks limit" -msgstr "Bookmarks limit" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:424 -msgid "" -"The maximum number of bookmarks that may be installed in the menu.\n" -"The number of bookmarks in the bookmark manager may be greater\n" -"but the menu will hold only so much." -msgstr "" -"The maximum number of bookmarks that may be installed in the menu.\n" -"The number of bookmarks in the bookmark manager may be greater\n" -"but the menu will hold only so much." - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:433 -msgid "Activity Icon" -msgstr "Activity Icon" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:435 -msgid "Select the GIF that show activity when FlatCAM is active." -msgstr "Select the GIF that show activity when FlatCAM is active." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:29 -msgid "App Preferences" -msgstr "App Preferences" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:40 -msgid "" -"The default value for FlatCAM units.\n" -"Whatever is selected here is set every time\n" -"FlatCAM is started." -msgstr "" -"The default value for FlatCAM units.\n" -"Whatever is selected here is set every time\n" -"FlatCAM is started." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:44 -msgid "IN" -msgstr "IN" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:50 -msgid "Precision MM" -msgstr "Precision MM" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:52 -msgid "" -"The number of decimals used throughout the application\n" -"when the set units are in METRIC system.\n" -"Any change here require an application restart." -msgstr "" -"The number of decimals used throughout the application\n" -"when the set units are in METRIC system.\n" -"Any change here require an application restart." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:64 -msgid "Precision INCH" -msgstr "Precision INCH" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:66 -msgid "" -"The number of decimals used throughout the application\n" -"when the set units are in INCH system.\n" -"Any change here require an application restart." -msgstr "" -"The number of decimals used throughout the application\n" -"when the set units are in INCH system.\n" -"Any change here require an application restart." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:78 -msgid "Graphic Engine" -msgstr "Graphic Engine" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:79 -msgid "" -"Choose what graphic engine to use in FlatCAM.\n" -"Legacy(2D) -> reduced functionality, slow performance but enhanced " -"compatibility.\n" -"OpenGL(3D) -> full functionality, high performance\n" -"Some graphic cards are too old and do not work in OpenGL(3D) mode, like:\n" -"Intel HD3000 or older. In this case the plot area will be black therefore\n" -"use the Legacy(2D) mode." -msgstr "" -"Choose what graphic engine to use in FlatCAM.\n" -"Legacy(2D) -> reduced functionality, slow performance but enhanced " -"compatibility.\n" -"OpenGL(3D) -> full functionality, high performance\n" -"Some graphic cards are too old and do not work in OpenGL(3D) mode, like:\n" -"Intel HD3000 or older. In this case the plot area will be black therefore\n" -"use the Legacy(2D) mode." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:85 -msgid "Legacy(2D)" -msgstr "Legacy(2D)" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:86 -msgid "OpenGL(3D)" -msgstr "OpenGL(3D)" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:98 -msgid "APP. LEVEL" -msgstr "APP. LEVEL" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:99 -msgid "" -"Choose the default level of usage for FlatCAM.\n" -"BASIC level -> reduced functionality, best for beginner's.\n" -"ADVANCED level -> full functionality.\n" -"\n" -"The choice here will influence the parameters in\n" -"the Selected Tab for all kinds of FlatCAM objects." -msgstr "" -"Choose the default level of usage for FlatCAM.\n" -"BASIC level -> reduced functionality, best for beginner's.\n" -"ADVANCED level -> full functionality.\n" -"\n" -"The choice here will influence the parameters in\n" -"the Selected Tab for all kinds of FlatCAM objects." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:105 -#: AppObjects/FlatCAMExcellon.py:707 AppObjects/FlatCAMGeometry.py:589 -#: AppObjects/FlatCAMGerber.py:227 AppTools/ToolIsolation.py:816 -msgid "Advanced" -msgstr "Advanced" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:111 -msgid "Portable app" -msgstr "Portable app" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:112 -msgid "" -"Choose if the application should run as portable.\n" -"\n" -"If Checked the application will run portable,\n" -"which means that the preferences files will be saved\n" -"in the application folder, in the lib\\config subfolder." -msgstr "" -"Choose if the application should run as portable.\n" -"\n" -"If Checked the application will run portable,\n" -"which means that the preferences files will be saved\n" -"in the application folder, in the lib\\config subfolder." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:125 -msgid "Languages" -msgstr "Languages" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:126 -msgid "Set the language used throughout FlatCAM." -msgstr "Set the language used throughout FlatCAM." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:132 -msgid "Apply Language" -msgstr "Apply Language" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:133 -msgid "" -"Set the language used throughout FlatCAM.\n" -"The app will restart after click." -msgstr "" -"Set the language used throughout FlatCAM.\n" -"The app will restart after click." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:147 -msgid "Startup Settings" -msgstr "Startup Settings" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:151 -msgid "Splash Screen" -msgstr "Splash Screen" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:153 -msgid "Enable display of the splash screen at application startup." -msgstr "Enable display of the splash screen at application startup." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:165 -msgid "Sys Tray Icon" -msgstr "Sys Tray Icon" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:167 -msgid "Enable display of FlatCAM icon in Sys Tray." -msgstr "Enable display of FlatCAM icon in Sys Tray." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:172 -msgid "Show Shell" -msgstr "Show Shell" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:174 -msgid "" -"Check this box if you want the shell to\n" -"start automatically at startup." -msgstr "" -"Check this box if you want the shell to\n" -"start automatically at startup." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:181 -msgid "Show Project" -msgstr "Show Project" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:183 -msgid "" -"Check this box if you want the project/selected/tool tab area to\n" -"to be shown automatically at startup." -msgstr "" -"Check this box if you want the project/selected/tool tab area to\n" -"to be shown automatically at startup." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:189 -msgid "Version Check" -msgstr "Version Check" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:191 -msgid "" -"Check this box if you want to check\n" -"for a new version automatically at startup." -msgstr "" -"Check this box if you want to check\n" -"for a new version automatically at startup." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:198 -msgid "Send Statistics" -msgstr "Send Statistics" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:200 -msgid "" -"Check this box if you agree to send anonymous\n" -"stats automatically at startup, to help improve FlatCAM." -msgstr "" -"Check this box if you agree to send anonymous\n" -"stats automatically at startup, to help improve FlatCAM." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:214 -msgid "Workers number" -msgstr "Workers number" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:216 -msgid "" -"The number of Qthreads made available to the App.\n" -"A bigger number may finish the jobs more quickly but\n" -"depending on your computer speed, may make the App\n" -"unresponsive. Can have a value between 2 and 16.\n" -"Default value is 2.\n" -"After change, it will be applied at next App start." -msgstr "" -"The number of Qthreads made available to the App.\n" -"A bigger number may finish the jobs more quickly but\n" -"depending on your computer speed, may make the App\n" -"unresponsive. Can have a value between 2 and 16.\n" -"Default value is 2.\n" -"After change, it will be applied at next App start." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:230 -msgid "Geo Tolerance" -msgstr "Geo Tolerance" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:232 -msgid "" -"This value can counter the effect of the Circle Steps\n" -"parameter. Default value is 0.005.\n" -"A lower value will increase the detail both in image\n" -"and in Gcode for the circles, with a higher cost in\n" -"performance. Higher value will provide more\n" -"performance at the expense of level of detail." -msgstr "" -"This value can counter the effect of the Circle Steps\n" -"parameter. Default value is 0.005.\n" -"A lower value will increase the detail both in image\n" -"and in Gcode for the circles, with a higher cost in\n" -"performance. Higher value will provide more\n" -"performance at the expense of level of detail." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:252 -msgid "Save Settings" -msgstr "Save Settings" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:256 -msgid "Save Compressed Project" -msgstr "Save Compressed Project" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:258 -msgid "" -"Whether to save a compressed or uncompressed project.\n" -"When checked it will save a compressed FlatCAM project." -msgstr "" -"Whether to save a compressed or uncompressed project.\n" -"When checked it will save a compressed FlatCAM project." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:267 -msgid "Compression" -msgstr "Compression" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:269 -msgid "" -"The level of compression used when saving\n" -"a FlatCAM project. Higher value means better compression\n" -"but require more RAM usage and more processing time." -msgstr "" -"The level of compression used when saving\n" -"a FlatCAM project. Higher value means better compression\n" -"but require more RAM usage and more processing time." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:280 -msgid "Enable Auto Save" -msgstr "Enable Auto Save" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:282 -msgid "" -"Check to enable the autosave feature.\n" -"When enabled, the application will try to save a project\n" -"at the set interval." -msgstr "" -"Check to enable the autosave feature.\n" -"When enabled, the application will try to save a project\n" -"at the set interval." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:292 -msgid "Interval" -msgstr "Interval" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:294 -msgid "" -"Time interval for autosaving. In milliseconds.\n" -"The application will try to save periodically but only\n" -"if the project was saved manually at least once.\n" -"While active, some operations may block this feature." -msgstr "" -"Time interval for autosaving. In milliseconds.\n" -"The application will try to save periodically but only\n" -"if the project was saved manually at least once.\n" -"While active, some operations may block this feature." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:310 -msgid "Text to PDF parameters" -msgstr "Text to PDF parameters" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:312 -msgid "Used when saving text in Code Editor or in FlatCAM Document objects." -msgstr "Used when saving text in Code Editor or in FlatCAM Document objects." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:321 -msgid "Top Margin" -msgstr "Top Margin" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:323 -msgid "Distance between text body and the top of the PDF file." -msgstr "Distance between text body and the top of the PDF file." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:334 -msgid "Bottom Margin" -msgstr "Bottom Margin" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:336 -msgid "Distance between text body and the bottom of the PDF file." -msgstr "Distance between text body and the bottom of the PDF file." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:347 -msgid "Left Margin" -msgstr "Left Margin" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:349 -msgid "Distance between text body and the left of the PDF file." -msgstr "Distance between text body and the left of the PDF file." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:360 -msgid "Right Margin" -msgstr "Right Margin" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:362 -msgid "Distance between text body and the right of the PDF file." -msgstr "Distance between text body and the right of the PDF file." - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:26 -msgid "GUI Preferences" -msgstr "GUI Preferences" - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:36 -msgid "Theme" -msgstr "Theme" - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:38 -msgid "" -"Select a theme for the application.\n" -"It will theme the plot area." -msgstr "" -"Select a theme for the application.\n" -"It will theme the plot area." - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:43 -msgid "Light" -msgstr "Light" - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:44 -msgid "Dark" -msgstr "Dark" - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:51 -msgid "Use Gray Icons" -msgstr "Use Gray Icons" - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:53 -msgid "" -"Check this box to use a set of icons with\n" -"a lighter (gray) color. To be used when a\n" -"full dark theme is applied." -msgstr "" -"Check this box to use a set of icons with\n" -"a lighter (gray) color. To be used when a\n" -"full dark theme is applied." - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:73 -msgid "Layout" -msgstr "Layout" - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:75 -msgid "" -"Select a layout for the application.\n" -"It is applied immediately." -msgstr "" -"Select a layout for the application.\n" -"It is applied immediately." - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:95 -msgid "Style" -msgstr "Style" - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:97 -msgid "" -"Select a style for the application.\n" -"It will be applied at the next app start." -msgstr "" -"Select a style for the application.\n" -"It will be applied at the next app start." - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:111 -msgid "Activate HDPI Support" -msgstr "Activate HDPI Support" - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:113 -msgid "" -"Enable High DPI support for the application.\n" -"It will be applied at the next app start." -msgstr "" -"Enable High DPI support for the application.\n" -"It will be applied at the next app start." - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:127 -msgid "Display Hover Shape" -msgstr "Display Hover Shape" - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:129 -msgid "" -"Enable display of a hover shape for the application objects.\n" -"It is displayed whenever the mouse cursor is hovering\n" -"over any kind of not-selected object." -msgstr "" -"Enable display of a hover shape for the application objects.\n" -"It is displayed whenever the mouse cursor is hovering\n" -"over any kind of not-selected object." - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:136 -msgid "Display Selection Shape" -msgstr "Display Selection Shape" - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:138 -msgid "" -"Enable the display of a selection shape for the application objects.\n" -"It is displayed whenever the mouse selects an object\n" -"either by clicking or dragging mouse from left to right or\n" -"right to left." -msgstr "" -"Enable the display of a selection shape for the application objects.\n" -"It is displayed whenever the mouse selects an object\n" -"either by clicking or dragging mouse from left to right or\n" -"right to left." - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:151 -msgid "Left-Right Selection Color" -msgstr "Left-Right Selection Color" - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:156 -msgid "Set the line color for the 'left to right' selection box." -msgstr "Set the line color for the 'left to right' selection box." - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:165 -msgid "" -"Set the fill color for the selection box\n" -"in case that the selection is done from left to right.\n" -"First 6 digits are the color and the last 2\n" -"digits are for alpha (transparency) level." -msgstr "" -"Set the fill color for the selection box\n" -"in case that the selection is done from left to right.\n" -"First 6 digits are the color and the last 2\n" -"digits are for alpha (transparency) level." - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:178 -msgid "Set the fill transparency for the 'left to right' selection box." -msgstr "Set the fill transparency for the 'left to right' selection box." - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:191 -msgid "Right-Left Selection Color" -msgstr "Right-Left Selection Color" - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:197 -msgid "Set the line color for the 'right to left' selection box." -msgstr "Set the line color for the 'right to left' selection box." - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:207 -msgid "" -"Set the fill color for the selection box\n" -"in case that the selection is done from right to left.\n" -"First 6 digits are the color and the last 2\n" -"digits are for alpha (transparency) level." -msgstr "" -"Set the fill color for the selection box\n" -"in case that the selection is done from right to left.\n" -"First 6 digits are the color and the last 2\n" -"digits are for alpha (transparency) level." - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:220 -msgid "Set the fill transparency for selection 'right to left' box." -msgstr "Set the fill transparency for selection 'right to left' box." - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:236 -msgid "Editor Color" -msgstr "Editor Color" - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:240 -msgid "Drawing" -msgstr "Drawing" - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:242 -msgid "Set the color for the shape." -msgstr "Set the color for the shape." - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:250 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:275 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:311 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:258 -#: AppTools/ToolIsolation.py:494 AppTools/ToolNCC.py:539 -#: AppTools/ToolPaint.py:455 -msgid "Selection" -msgstr "Selection" - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:252 -msgid "Set the color of the shape when selected." -msgstr "Set the color of the shape when selected." - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:268 -msgid "Project Items Color" -msgstr "Project Items Color" - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:272 -msgid "Enabled" -msgstr "Enabled" - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:274 -msgid "Set the color of the items in Project Tab Tree." -msgstr "Set the color of the items in Project Tab Tree." - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:281 -msgid "Disabled" -msgstr "Disabled" - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:283 -msgid "" -"Set the color of the items in Project Tab Tree,\n" -"for the case when the items are disabled." -msgstr "" -"Set the color of the items in Project Tab Tree,\n" -"for the case when the items are disabled." - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:292 -msgid "Project AutoHide" -msgstr "Project AutoHide" - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:294 -msgid "" -"Check this box if you want the project/selected/tool tab area to\n" -"hide automatically when there are no objects loaded and\n" -"to show whenever a new object is created." -msgstr "" -"Check this box if you want the project/selected/tool tab area to\n" -"hide automatically when there are no objects loaded and\n" -"to show whenever a new object is created." - -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:28 -msgid "Geometry Adv. Options" -msgstr "Geometry Adv. Options" - -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:36 -msgid "" -"A list of Geometry advanced parameters.\n" -"Those parameters are available only for\n" -"Advanced App. Level." -msgstr "" -"A list of Geometry advanced parameters.\n" -"Those parameters are available only for\n" -"Advanced App. Level." - -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:46 -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:112 -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:134 -#: AppTools/ToolCalibration.py:125 AppTools/ToolSolderPaste.py:236 -msgid "Toolchange X-Y" -msgstr "Toolchange X-Y" - -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:58 -msgid "" -"Height of the tool just after starting the work.\n" -"Delete the value if you don't need this feature." -msgstr "" -"Height of the tool just after starting the work.\n" -"Delete the value if you don't need this feature." - -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:161 -msgid "Segment X size" -msgstr "Segment X size" - -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:163 -msgid "" -"The size of the trace segment on the X axis.\n" -"Useful for auto-leveling.\n" -"A value of 0 means no segmentation on the X axis." -msgstr "" -"The size of the trace segment on the X axis.\n" -"Useful for auto-leveling.\n" -"A value of 0 means no segmentation on the X axis." - -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:177 -msgid "Segment Y size" -msgstr "Segment Y size" - -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:179 -msgid "" -"The size of the trace segment on the Y axis.\n" -"Useful for auto-leveling.\n" -"A value of 0 means no segmentation on the Y axis." -msgstr "" -"The size of the trace segment on the Y axis.\n" -"Useful for auto-leveling.\n" -"A value of 0 means no segmentation on the Y axis." - -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:200 -msgid "Area Exclusion" -msgstr "Area Exclusion" - -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:202 -msgid "" -"Area exclusion parameters.\n" -"Those parameters are available only for\n" -"Advanced App. Level." -msgstr "" -"Area exclusion parameters.\n" -"Those parameters are available only for\n" -"Advanced App. Level." - -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:209 -msgid "Exclusion areas" -msgstr "Exclusion areas" - -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:220 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:293 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:322 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:286 -#: AppTools/ToolIsolation.py:540 AppTools/ToolNCC.py:578 -#: AppTools/ToolPaint.py:521 -msgid "Shape" -msgstr "Shape" - -#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:33 -msgid "A list of Geometry Editor parameters." -msgstr "A list of Geometry Editor parameters." - -#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:43 -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:174 -msgid "" -"Set the number of selected geometry\n" -"items above which the utility geometry\n" -"becomes just a selection rectangle.\n" -"Increases the performance when moving a\n" -"large number of geometric elements." -msgstr "" -"Set the number of selected geometry\n" -"items above which the utility geometry\n" -"becomes just a selection rectangle.\n" -"Increases the performance when moving a\n" -"large number of geometric elements." - -#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:58 -msgid "" -"Milling type:\n" -"- climb / best for precision milling and to reduce tool usage\n" -"- conventional / useful when there is no backlash compensation" -msgstr "" -"Milling type:\n" -"- climb / best for precision milling and to reduce tool usage\n" -"- conventional / useful when there is no backlash compensation" - -#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:27 -msgid "Geometry General" -msgstr "Geometry General" - -#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:59 -msgid "" -"The number of circle steps for Geometry \n" -"circle and arc shapes linear approximation." -msgstr "" -"The number of circle steps for Geometry \n" -"circle and arc shapes linear approximation." - -#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:73 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:41 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:41 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:48 -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:42 -msgid "Tools Dia" -msgstr "Tools Dia" - -#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:75 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:108 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:43 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:43 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:50 -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:44 -msgid "" -"Diameters of the tools, separated by comma.\n" -"The value of the diameter has to use the dot decimals separator.\n" -"Valid values: 0.3, 1.0" -msgstr "" -"Diameters of the tools, separated by comma.\n" -"The value of the diameter has to use the dot decimals separator.\n" -"Valid values: 0.3, 1.0" - -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:29 -msgid "Geometry Options" -msgstr "Geometry Options" - -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:37 -msgid "" -"Create a CNC Job object\n" -"tracing the contours of this\n" -"Geometry object." -msgstr "" -"Create a CNC Job object\n" -"tracing the contours of this\n" -"Geometry object." - -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:81 -msgid "Depth/Pass" -msgstr "Depth/Pass" - -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:83 -msgid "" -"The depth to cut on each pass,\n" -"when multidepth is enabled.\n" -"It has positive value although\n" -"it is a fraction from the depth\n" -"which has negative value." -msgstr "" -"The depth to cut on each pass,\n" -"when multidepth is enabled.\n" -"It has positive value although\n" -"it is a fraction from the depth\n" -"which has negative value." - -#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:27 -msgid "Gerber Adv. Options" -msgstr "Gerber Adv. Options" - -#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:33 -msgid "" -"A list of Gerber advanced parameters.\n" -"Those parameters are available only for\n" -"Advanced App. Level." -msgstr "" -"A list of Gerber advanced parameters.\n" -"Those parameters are available only for\n" -"Advanced App. Level." - -#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:43 -msgid "\"Follow\"" -msgstr "\"Follow\"" - -#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:52 -msgid "Table Show/Hide" -msgstr "Table Show/Hide" - -#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:54 -msgid "" -"Toggle the display of the Gerber Apertures Table.\n" -"Also, on hide, it will delete all mark shapes\n" -"that are drawn on canvas." -msgstr "" -"Toggle the display of the Gerber Apertures Table.\n" -"Also, on hide, it will delete all mark shapes\n" -"that are drawn on canvas." - -#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:67 -#: AppObjects/FlatCAMGerber.py:391 AppTools/ToolCopperThieving.py:1026 -#: AppTools/ToolCopperThieving.py:1215 AppTools/ToolCopperThieving.py:1227 -#: AppTools/ToolIsolation.py:1593 AppTools/ToolNCC.py:2079 -#: AppTools/ToolNCC.py:2190 AppTools/ToolNCC.py:2205 AppTools/ToolNCC.py:3163 -#: AppTools/ToolNCC.py:3268 AppTools/ToolNCC.py:3283 AppTools/ToolNCC.py:3549 -#: AppTools/ToolNCC.py:3650 AppTools/ToolNCC.py:3665 camlib.py:992 -msgid "Buffering" -msgstr "Buffering" - -#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:69 -msgid "" -"Buffering type:\n" -"- None --> best performance, fast file loading but no so good display\n" -"- Full --> slow file loading but good visuals. This is the default.\n" -"<>: Don't change this unless you know what you are doing !!!" -msgstr "" -"Buffering type:\n" -"- None --> best performance, fast file loading but no so good display\n" -"- Full --> slow file loading but good visuals. This is the default.\n" -"<>: Don't change this unless you know what you are doing !!!" - -#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:74 -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:88 -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:196 -#: AppTools/ToolFiducials.py:204 AppTools/ToolFilm.py:238 -#: AppTools/ToolProperties.py:452 AppTools/ToolProperties.py:455 -#: AppTools/ToolProperties.py:458 AppTools/ToolProperties.py:483 -msgid "None" -msgstr "None" - -#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:80 -msgid "Simplify" -msgstr "Simplify" - -#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:82 -msgid "" -"When checked all the Gerber polygons will be\n" -"loaded with simplification having a set tolerance.\n" -"<>: Don't change this unless you know what you are doing !!!" -msgstr "" -"When checked all the Gerber polygons will be\n" -"loaded with simplification having a set tolerance.\n" -"<>: Don't change this unless you know what you are doing !!!" - -#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:89 -msgid "Tolerance" -msgstr "Tolerance" - -#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:90 -msgid "Tolerance for polygon simplification." -msgstr "Tolerance for polygon simplification." - -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:33 -msgid "A list of Gerber Editor parameters." -msgstr "A list of Gerber Editor parameters." - -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:43 -msgid "" -"Set the number of selected Gerber geometry\n" -"items above which the utility geometry\n" -"becomes just a selection rectangle.\n" -"Increases the performance when moving a\n" -"large number of geometric elements." -msgstr "" -"Set the number of selected Gerber geometry\n" -"items above which the utility geometry\n" -"becomes just a selection rectangle.\n" -"Increases the performance when moving a\n" -"large number of geometric elements." - -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:56 -msgid "New Aperture code" -msgstr "New Aperture code" - -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:69 -msgid "New Aperture size" -msgstr "New Aperture size" - -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:71 -msgid "Size for the new aperture" -msgstr "Size for the new aperture" - -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:82 -msgid "New Aperture type" -msgstr "New Aperture type" - -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:84 -msgid "" -"Type for the new aperture.\n" -"Can be 'C', 'R' or 'O'." -msgstr "" -"Type for the new aperture.\n" -"Can be 'C', 'R' or 'O'." - -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:106 -msgid "Aperture Dimensions" -msgstr "Aperture Dimensions" - -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:117 -msgid "Linear Pad Array" -msgstr "Linear Pad Array" - -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:161 -msgid "Circular Pad Array" -msgstr "Circular Pad Array" - -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:197 -msgid "Distance at which to buffer the Gerber element." -msgstr "Distance at which to buffer the Gerber element." - -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:206 -msgid "Scale Tool" -msgstr "Scale Tool" - -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:212 -msgid "Factor to scale the Gerber element." -msgstr "Factor to scale the Gerber element." - -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:225 -msgid "Threshold low" -msgstr "Threshold low" - -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:227 -msgid "Threshold value under which the apertures are not marked." -msgstr "Threshold value under which the apertures are not marked." - -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:237 -msgid "Threshold high" -msgstr "Threshold high" - -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:239 -msgid "Threshold value over which the apertures are not marked." -msgstr "Threshold value over which the apertures are not marked." - -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:27 -msgid "Gerber Export" -msgstr "Gerber Export" - -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:33 -msgid "" -"The parameters set here are used in the file exported\n" -"when using the File -> Export -> Export Gerber menu entry." -msgstr "" -"The parameters set here are used in the file exported\n" -"when using the File -> Export -> Export Gerber menu entry." - -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:44 -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:50 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:84 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:90 -msgid "The units used in the Gerber file." -msgstr "The units used in the Gerber file." - -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:58 -msgid "" -"The number of digits in the whole part of the number\n" -"and in the fractional part of the number." -msgstr "" -"The number of digits in the whole part of the number\n" -"and in the fractional part of the number." - -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:71 -msgid "" -"This numbers signify the number of digits in\n" -"the whole part of Gerber coordinates." -msgstr "" -"This numbers signify the number of digits in\n" -"the whole part of Gerber coordinates." - -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:87 -msgid "" -"This numbers signify the number of digits in\n" -"the decimal part of Gerber coordinates." -msgstr "" -"This numbers signify the number of digits in\n" -"the decimal part of Gerber coordinates." - -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:99 -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:109 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:100 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:110 -msgid "" -"This sets the type of Gerber zeros.\n" -"If LZ then Leading Zeros are removed and\n" -"Trailing Zeros are kept.\n" -"If TZ is checked then Trailing Zeros are removed\n" -"and Leading Zeros are kept." -msgstr "" -"This sets the type of Gerber zeros.\n" -"If LZ then Leading Zeros are removed and\n" -"Trailing Zeros are kept.\n" -"If TZ is checked then Trailing Zeros are removed\n" -"and Leading Zeros are kept." - -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:27 -msgid "Gerber General" -msgstr "Gerber General" - -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:61 -msgid "" -"The number of circle steps for Gerber \n" -"circular aperture linear approximation." -msgstr "" -"The number of circle steps for Gerber \n" -"circular aperture linear approximation." - -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:73 -msgid "Default Values" -msgstr "Default Values" - -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:75 -msgid "" -"Those values will be used as fallback values\n" -"in case that they are not found in the Gerber file." -msgstr "" -"Those values will be used as fallback values\n" -"in case that they are not found in the Gerber file." - -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:126 -msgid "Clean Apertures" -msgstr "Clean Apertures" - -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:128 -msgid "" -"Will remove apertures that do not have geometry\n" -"thus lowering the number of apertures in the Gerber object." -msgstr "" -"Will remove apertures that do not have geometry\n" -"thus lowering the number of apertures in the Gerber object." - -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:134 -msgid "Polarity change buffer" -msgstr "Polarity change buffer" - -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:136 -msgid "" -"Will apply extra buffering for the\n" -"solid geometry when we have polarity changes.\n" -"May help loading Gerber files that otherwise\n" -"do not load correctly." -msgstr "" -"Will apply extra buffering for the\n" -"solid geometry when we have polarity changes.\n" -"May help loading Gerber files that otherwise\n" -"do not load correctly." - -#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:29 -msgid "Gerber Options" -msgstr "Gerber Options" - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:27 -msgid "Copper Thieving Tool Options" -msgstr "Copper Thieving Tool Options" - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:39 -msgid "" -"A tool to generate a Copper Thieving that can be added\n" -"to a selected Gerber file." -msgstr "" -"A tool to generate a Copper Thieving that can be added\n" -"to a selected Gerber file." - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:47 -msgid "Number of steps (lines) used to interpolate circles." -msgstr "Number of steps (lines) used to interpolate circles." - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:57 -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:261 -#: AppTools/ToolCopperThieving.py:100 AppTools/ToolCopperThieving.py:435 -msgid "Clearance" -msgstr "Clearance" - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:59 -msgid "" -"This set the distance between the copper Thieving components\n" -"(the polygon fill may be split in multiple polygons)\n" -"and the copper traces in the Gerber file." -msgstr "" -"This set the distance between the copper Thieving components\n" -"(the polygon fill may be split in multiple polygons)\n" -"and the copper traces in the Gerber file." - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:86 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309 -#: AppTools/ToolCopperThieving.py:129 AppTools/ToolNCC.py:535 -#: AppTools/ToolNCC.py:1324 AppTools/ToolNCC.py:1655 AppTools/ToolNCC.py:1948 -#: AppTools/ToolNCC.py:2012 AppTools/ToolNCC.py:3027 AppTools/ToolNCC.py:3036 -#: defaults.py:419 tclCommands/TclCommandCopperClear.py:190 -msgid "Itself" -msgstr "Itself" - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:87 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:285 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280 -#: AppTools/ToolCopperThieving.py:130 AppTools/ToolIsolation.py:504 -#: AppTools/ToolIsolation.py:1297 AppTools/ToolIsolation.py:1671 -#: AppTools/ToolNCC.py:535 AppTools/ToolNCC.py:1334 AppTools/ToolNCC.py:1668 -#: AppTools/ToolNCC.py:1964 AppTools/ToolNCC.py:2019 AppTools/ToolPaint.py:485 -#: AppTools/ToolPaint.py:945 AppTools/ToolPaint.py:1471 -msgid "Area Selection" -msgstr "Area Selection" - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:88 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:285 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280 -#: AppTools/ToolCopperThieving.py:131 AppTools/ToolDblSided.py:216 -#: AppTools/ToolIsolation.py:504 AppTools/ToolIsolation.py:1711 -#: AppTools/ToolNCC.py:535 AppTools/ToolNCC.py:1684 AppTools/ToolNCC.py:1970 -#: AppTools/ToolNCC.py:2027 AppTools/ToolNCC.py:2408 AppTools/ToolNCC.py:2656 -#: AppTools/ToolNCC.py:3072 AppTools/ToolPaint.py:485 AppTools/ToolPaint.py:930 -#: AppTools/ToolPaint.py:1487 tclCommands/TclCommandCopperClear.py:192 -#: tclCommands/TclCommandPaint.py:166 -msgid "Reference Object" -msgstr "Reference Object" - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:90 -#: AppTools/ToolCopperThieving.py:133 -msgid "Reference:" -msgstr "Reference:" - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:92 -msgid "" -"- 'Itself' - the copper Thieving extent is based on the object extent.\n" -"- 'Area Selection' - left mouse click to start selection of the area to be " -"filled.\n" -"- 'Reference Object' - will do copper thieving within the area specified by " -"another object." -msgstr "" -"- 'Itself' - the copper Thieving extent is based on the object extent.\n" -"- 'Area Selection' - left mouse click to start selection of the area to be " -"filled.\n" -"- 'Reference Object' - will do copper thieving within the area specified by " -"another object." - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:101 -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:76 -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:188 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:76 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:190 -#: AppTools/ToolCopperThieving.py:175 AppTools/ToolExtractDrills.py:102 -#: AppTools/ToolExtractDrills.py:240 AppTools/ToolPunchGerber.py:113 -#: AppTools/ToolPunchGerber.py:268 -msgid "Rectangular" -msgstr "Rectangular" - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:102 -#: AppTools/ToolCopperThieving.py:176 -msgid "Minimal" -msgstr "Minimal" - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:104 -#: AppTools/ToolCopperThieving.py:178 AppTools/ToolFilm.py:94 -msgid "Box Type:" -msgstr "Box Type:" - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:106 -#: AppTools/ToolCopperThieving.py:180 -msgid "" -"- 'Rectangular' - the bounding box will be of rectangular shape.\n" -"- 'Minimal' - the bounding box will be the convex hull shape." -msgstr "" -"- 'Rectangular' - the bounding box will be of rectangular shape.\n" -"- 'Minimal' - the bounding box will be the convex hull shape." - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:120 -#: AppTools/ToolCopperThieving.py:196 -msgid "Dots Grid" -msgstr "Dots Grid" - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:121 -#: AppTools/ToolCopperThieving.py:197 -msgid "Squares Grid" -msgstr "Squares Grid" - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:122 -#: AppTools/ToolCopperThieving.py:198 -msgid "Lines Grid" -msgstr "Lines Grid" - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:124 -#: AppTools/ToolCopperThieving.py:200 -msgid "Fill Type:" -msgstr "Fill Type:" - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:126 -#: AppTools/ToolCopperThieving.py:202 -msgid "" -"- 'Solid' - copper thieving will be a solid polygon.\n" -"- 'Dots Grid' - the empty area will be filled with a pattern of dots.\n" -"- 'Squares Grid' - the empty area will be filled with a pattern of squares.\n" -"- 'Lines Grid' - the empty area will be filled with a pattern of lines." -msgstr "" -"- 'Solid' - copper thieving will be a solid polygon.\n" -"- 'Dots Grid' - the empty area will be filled with a pattern of dots.\n" -"- 'Squares Grid' - the empty area will be filled with a pattern of squares.\n" -"- 'Lines Grid' - the empty area will be filled with a pattern of lines." - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:134 -#: AppTools/ToolCopperThieving.py:221 -msgid "Dots Grid Parameters" -msgstr "Dots Grid Parameters" - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:140 -#: AppTools/ToolCopperThieving.py:227 -msgid "Dot diameter in Dots Grid." -msgstr "Dot diameter in Dots Grid." - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:151 -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:180 -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:209 -#: AppTools/ToolCopperThieving.py:238 AppTools/ToolCopperThieving.py:278 -#: AppTools/ToolCopperThieving.py:318 -msgid "Spacing" -msgstr "Spacing" - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:153 -#: AppTools/ToolCopperThieving.py:240 -msgid "Distance between each two dots in Dots Grid." -msgstr "Distance between each two dots in Dots Grid." - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:163 -#: AppTools/ToolCopperThieving.py:261 -msgid "Squares Grid Parameters" -msgstr "Squares Grid Parameters" - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:169 -#: AppTools/ToolCopperThieving.py:267 -msgid "Square side size in Squares Grid." -msgstr "Square side size in Squares Grid." - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:182 -#: AppTools/ToolCopperThieving.py:280 -msgid "Distance between each two squares in Squares Grid." -msgstr "Distance between each two squares in Squares Grid." - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:192 -#: AppTools/ToolCopperThieving.py:301 -msgid "Lines Grid Parameters" -msgstr "Lines Grid Parameters" - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:198 -#: AppTools/ToolCopperThieving.py:307 -msgid "Line thickness size in Lines Grid." -msgstr "Line thickness size in Lines Grid." - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:211 -#: AppTools/ToolCopperThieving.py:320 -msgid "Distance between each two lines in Lines Grid." -msgstr "Distance between each two lines in Lines Grid." - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:221 -#: AppTools/ToolCopperThieving.py:358 -msgid "Robber Bar Parameters" -msgstr "Robber Bar Parameters" - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:223 -#: AppTools/ToolCopperThieving.py:360 -msgid "" -"Parameters used for the robber bar.\n" -"Robber bar = copper border to help in pattern hole plating." -msgstr "" -"Parameters used for the robber bar.\n" -"Robber bar = copper border to help in pattern hole plating." - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:231 -#: AppTools/ToolCopperThieving.py:368 -msgid "Bounding box margin for robber bar." -msgstr "Bounding box margin for robber bar." - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:242 -#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:42 -#: AppTools/ToolCopperThieving.py:379 AppTools/ToolCorners.py:122 -#: AppTools/ToolEtchCompensation.py:152 -msgid "Thickness" -msgstr "Thickness" - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:244 -#: AppTools/ToolCopperThieving.py:381 -msgid "The robber bar thickness." -msgstr "The robber bar thickness." - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:254 -#: AppTools/ToolCopperThieving.py:412 -msgid "Pattern Plating Mask" -msgstr "Pattern Plating Mask" - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:256 -#: AppTools/ToolCopperThieving.py:414 -msgid "Generate a mask for pattern plating." -msgstr "Generate a mask for pattern plating." - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:263 -#: AppTools/ToolCopperThieving.py:437 -msgid "" -"The distance between the possible copper thieving elements\n" -"and/or robber bar and the actual openings in the mask." -msgstr "" -"The distance between the possible copper thieving elements\n" -"and/or robber bar and the actual openings in the mask." - -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:27 -msgid "Calibration Tool Options" -msgstr "Calibration Tool Options" - -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:38 -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:38 -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:38 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:38 -#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:37 -#: AppTools/ToolCopperThieving.py:95 AppTools/ToolCorners.py:117 -#: AppTools/ToolFiducials.py:154 -msgid "Parameters used for this tool." -msgstr "Parameters used for this tool." - -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:43 -#: AppTools/ToolCalibration.py:181 -msgid "Source Type" -msgstr "Source Type" - -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:44 -#: AppTools/ToolCalibration.py:182 -msgid "" -"The source of calibration points.\n" -"It can be:\n" -"- Object -> click a hole geo for Excellon or a pad for Gerber\n" -"- Free -> click freely on canvas to acquire the calibration points" -msgstr "" -"The source of calibration points.\n" -"It can be:\n" -"- Object -> click a hole geo for Excellon or a pad for Gerber\n" -"- Free -> click freely on canvas to acquire the calibration points" - -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:49 -#: AppTools/ToolCalibration.py:187 -msgid "Free" -msgstr "Free" - -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:63 -#: AppTools/ToolCalibration.py:76 -msgid "Height (Z) for travelling between the points." -msgstr "Height (Z) for travelling between the points." - -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:75 -#: AppTools/ToolCalibration.py:88 -msgid "Verification Z" -msgstr "Verification Z" - -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:77 -#: AppTools/ToolCalibration.py:90 -msgid "Height (Z) for checking the point." -msgstr "Height (Z) for checking the point." - -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:89 -#: AppTools/ToolCalibration.py:102 -msgid "Zero Z tool" -msgstr "Zero Z tool" - -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:91 -#: AppTools/ToolCalibration.py:104 -msgid "" -"Include a sequence to zero the height (Z)\n" -"of the verification tool." -msgstr "" -"Include a sequence to zero the height (Z)\n" -"of the verification tool." - -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:100 -#: AppTools/ToolCalibration.py:113 -msgid "Height (Z) for mounting the verification probe." -msgstr "Height (Z) for mounting the verification probe." - -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:114 -#: AppTools/ToolCalibration.py:127 -msgid "" -"Toolchange X,Y position.\n" -"If no value is entered then the current\n" -"(x, y) point will be used," -msgstr "" -"Toolchange X,Y position.\n" -"If no value is entered then the current\n" -"(x, y) point will be used," - -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:125 -#: AppTools/ToolCalibration.py:153 -msgid "Second point" -msgstr "Second point" - -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:127 -#: AppTools/ToolCalibration.py:155 -msgid "" -"Second point in the Gcode verification can be:\n" -"- top-left -> the user will align the PCB vertically\n" -"- bottom-right -> the user will align the PCB horizontally" -msgstr "" -"Second point in the Gcode verification can be:\n" -"- top-left -> the user will align the PCB vertically\n" -"- bottom-right -> the user will align the PCB horizontally" - -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:131 -#: AppTools/ToolCalibration.py:159 App_Main.py:4712 -msgid "Top-Left" -msgstr "Top-Left" - -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:132 -#: AppTools/ToolCalibration.py:160 App_Main.py:4713 -msgid "Bottom-Right" -msgstr "Bottom-Right" - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:27 -msgid "Extract Drills Options" -msgstr "Extract Drills Options" - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:42 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:42 -#: AppTools/ToolExtractDrills.py:68 AppTools/ToolPunchGerber.py:75 -msgid "Processed Pads Type" -msgstr "Processed Pads Type" - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:44 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:44 -#: AppTools/ToolExtractDrills.py:70 AppTools/ToolPunchGerber.py:77 -msgid "" -"The type of pads shape to be processed.\n" -"If the PCB has many SMD pads with rectangular pads,\n" -"disable the Rectangular aperture." -msgstr "" -"The type of pads shape to be processed.\n" -"If the PCB has many SMD pads with rectangular pads,\n" -"disable the Rectangular aperture." - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:54 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:54 -#: AppTools/ToolExtractDrills.py:80 AppTools/ToolPunchGerber.py:91 -msgid "Process Circular Pads." -msgstr "Process Circular Pads." - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:60 -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:162 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:60 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:164 -#: AppTools/ToolExtractDrills.py:86 AppTools/ToolExtractDrills.py:214 -#: AppTools/ToolPunchGerber.py:97 AppTools/ToolPunchGerber.py:242 -msgid "Oblong" -msgstr "Oblong" - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:62 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:62 -#: AppTools/ToolExtractDrills.py:88 AppTools/ToolPunchGerber.py:99 -msgid "Process Oblong Pads." -msgstr "Process Oblong Pads." - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:70 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:70 -#: AppTools/ToolExtractDrills.py:96 AppTools/ToolPunchGerber.py:107 -msgid "Process Square Pads." -msgstr "Process Square Pads." - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:78 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:78 -#: AppTools/ToolExtractDrills.py:104 AppTools/ToolPunchGerber.py:115 -msgid "Process Rectangular Pads." -msgstr "Process Rectangular Pads." - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:84 -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:201 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:84 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:203 -#: AppTools/ToolExtractDrills.py:110 AppTools/ToolExtractDrills.py:253 -#: AppTools/ToolProperties.py:172 AppTools/ToolPunchGerber.py:121 -#: AppTools/ToolPunchGerber.py:281 -msgid "Others" -msgstr "Others" - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:86 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:86 -#: AppTools/ToolExtractDrills.py:112 AppTools/ToolPunchGerber.py:123 -msgid "Process pads not in the categories above." -msgstr "Process pads not in the categories above." - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:99 -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:123 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:100 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:125 -#: AppTools/ToolExtractDrills.py:139 AppTools/ToolExtractDrills.py:156 -#: AppTools/ToolPunchGerber.py:150 AppTools/ToolPunchGerber.py:184 -msgid "Fixed Diameter" -msgstr "Fixed Diameter" - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:100 -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:140 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:101 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:142 -#: AppTools/ToolExtractDrills.py:140 AppTools/ToolExtractDrills.py:192 -#: AppTools/ToolPunchGerber.py:151 AppTools/ToolPunchGerber.py:214 -msgid "Fixed Annular Ring" -msgstr "Fixed Annular Ring" - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:101 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:102 -#: AppTools/ToolExtractDrills.py:141 AppTools/ToolPunchGerber.py:152 -msgid "Proportional" -msgstr "Proportional" - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:107 -#: AppTools/ToolExtractDrills.py:130 -msgid "" -"The method for processing pads. Can be:\n" -"- Fixed Diameter -> all holes will have a set size\n" -"- Fixed Annular Ring -> all holes will have a set annular ring\n" -"- Proportional -> each hole size will be a fraction of the pad size" -msgstr "" -"The method for processing pads. Can be:\n" -"- Fixed Diameter -> all holes will have a set size\n" -"- Fixed Annular Ring -> all holes will have a set annular ring\n" -"- Proportional -> each hole size will be a fraction of the pad size" - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:131 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:133 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:220 -#: AppTools/ToolExtractDrills.py:164 AppTools/ToolExtractDrills.py:285 -#: AppTools/ToolPunchGerber.py:192 AppTools/ToolPunchGerber.py:308 -#: AppTools/ToolTransform.py:357 App_Main.py:9698 -msgid "Value" -msgstr "Value" - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:133 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:135 -#: AppTools/ToolExtractDrills.py:166 AppTools/ToolPunchGerber.py:194 -msgid "Fixed hole diameter." -msgstr "Fixed hole diameter." - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:142 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:144 -#: AppTools/ToolExtractDrills.py:194 AppTools/ToolPunchGerber.py:216 -msgid "" -"The size of annular ring.\n" -"The copper sliver between the hole exterior\n" -"and the margin of the copper pad." -msgstr "" -"The size of annular ring.\n" -"The copper sliver between the hole exterior\n" -"and the margin of the copper pad." - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:151 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:153 -#: AppTools/ToolExtractDrills.py:203 AppTools/ToolPunchGerber.py:231 -msgid "The size of annular ring for circular pads." -msgstr "The size of annular ring for circular pads." - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:164 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:166 -#: AppTools/ToolExtractDrills.py:216 AppTools/ToolPunchGerber.py:244 -msgid "The size of annular ring for oblong pads." -msgstr "The size of annular ring for oblong pads." - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:177 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:179 -#: AppTools/ToolExtractDrills.py:229 AppTools/ToolPunchGerber.py:257 -msgid "The size of annular ring for square pads." -msgstr "The size of annular ring for square pads." - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:190 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:192 -#: AppTools/ToolExtractDrills.py:242 AppTools/ToolPunchGerber.py:270 -msgid "The size of annular ring for rectangular pads." -msgstr "The size of annular ring for rectangular pads." - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:203 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:205 -#: AppTools/ToolExtractDrills.py:255 AppTools/ToolPunchGerber.py:283 -msgid "The size of annular ring for other pads." -msgstr "The size of annular ring for other pads." - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:213 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:215 -#: AppTools/ToolExtractDrills.py:276 AppTools/ToolPunchGerber.py:299 -msgid "Proportional Diameter" -msgstr "Proportional Diameter" - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:222 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:224 -msgid "Factor" -msgstr "Factor" - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:224 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:226 -#: AppTools/ToolExtractDrills.py:287 AppTools/ToolPunchGerber.py:310 -msgid "" -"Proportional Diameter.\n" -"The hole diameter will be a fraction of the pad size." -msgstr "" -"Proportional Diameter.\n" -"The hole diameter will be a fraction of the pad size." - -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:27 -msgid "Fiducials Tool Options" -msgstr "Fiducials Tool Options" - -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:45 -#: AppTools/ToolFiducials.py:161 -msgid "" -"This set the fiducial diameter if fiducial type is circular,\n" -"otherwise is the size of the fiducial.\n" -"The soldermask opening is double than that." -msgstr "" -"This set the fiducial diameter if fiducial type is circular,\n" -"otherwise is the size of the fiducial.\n" -"The soldermask opening is double than that." - -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:73 -#: AppTools/ToolFiducials.py:189 -msgid "Auto" -msgstr "Auto" - -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:74 -#: AppTools/ToolFiducials.py:190 -msgid "Manual" -msgstr "Manual" - -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:76 -#: AppTools/ToolFiducials.py:192 -msgid "Mode:" -msgstr "Mode:" - -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:78 -msgid "" -"- 'Auto' - automatic placement of fiducials in the corners of the bounding " -"box.\n" -"- 'Manual' - manual placement of fiducials." -msgstr "" -"- 'Auto' - automatic placement of fiducials in the corners of the bounding " -"box.\n" -"- 'Manual' - manual placement of fiducials." - -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:86 -#: AppTools/ToolFiducials.py:202 -msgid "Up" -msgstr "Up" - -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:87 -#: AppTools/ToolFiducials.py:203 -msgid "Down" -msgstr "Down" - -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:90 -#: AppTools/ToolFiducials.py:206 -msgid "Second fiducial" -msgstr "Second fiducial" - -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:92 -#: AppTools/ToolFiducials.py:208 -msgid "" -"The position for the second fiducial.\n" -"- 'Up' - the order is: bottom-left, top-left, top-right.\n" -"- 'Down' - the order is: bottom-left, bottom-right, top-right.\n" -"- 'None' - there is no second fiducial. The order is: bottom-left, top-right." -msgstr "" -"The position for the second fiducial.\n" -"- 'Up' - the order is: bottom-left, top-left, top-right.\n" -"- 'Down' - the order is: bottom-left, bottom-right, top-right.\n" -"- 'None' - there is no second fiducial. The order is: bottom-left, top-right." - -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:108 -#: AppTools/ToolFiducials.py:224 -msgid "Cross" -msgstr "Cross" - -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:109 -#: AppTools/ToolFiducials.py:225 -msgid "Chess" -msgstr "Chess" - -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:112 -#: AppTools/ToolFiducials.py:227 -msgid "Fiducial Type" -msgstr "Fiducial Type" - -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:114 -#: AppTools/ToolFiducials.py:229 -msgid "" -"The type of fiducial.\n" -"- 'Circular' - this is the regular fiducial.\n" -"- 'Cross' - cross lines fiducial.\n" -"- 'Chess' - chess pattern fiducial." -msgstr "" -"The type of fiducial.\n" -"- 'Circular' - this is the regular fiducial.\n" -"- 'Cross' - cross lines fiducial.\n" -"- 'Chess' - chess pattern fiducial." - -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:123 -#: AppTools/ToolFiducials.py:238 -msgid "Line thickness" -msgstr "Line thickness" - -#: AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py:27 -msgid "Invert Gerber Tool Options" -msgstr "Invert Gerber Tool Options" - -#: AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py:33 -msgid "" -"A tool to invert Gerber geometry from positive to negative\n" -"and in revers." -msgstr "" -"A tool to invert Gerber geometry from positive to negative\n" -"and in revers." - -#: AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py:47 -#: AppTools/ToolInvertGerber.py:93 -msgid "" -"Distance by which to avoid\n" -"the edges of the Gerber object." -msgstr "" -"Distance by which to avoid\n" -"the edges of the Gerber object." - -#: AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py:58 -#: AppTools/ToolInvertGerber.py:104 -msgid "Lines Join Style" -msgstr "Lines Join Style" - -#: AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py:60 -#: AppTools/ToolInvertGerber.py:106 -msgid "" -"The way that the lines in the object outline will be joined.\n" -"Can be:\n" -"- rounded -> an arc is added between two joining lines\n" -"- square -> the lines meet in 90 degrees angle\n" -"- bevel -> the lines are joined by a third line" -msgstr "" -"The way that the lines in the object outline will be joined.\n" -"Can be:\n" -"- rounded -> an arc is added between two joining lines\n" -"- square -> the lines meet in 90 degrees angle\n" -"- bevel -> the lines are joined by a third line" - -#: AppGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:27 -msgid "Optimal Tool Options" -msgstr "Optimal Tool Options" - -#: AppGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:33 -msgid "" -"A tool to find the minimum distance between\n" -"every two Gerber geometric elements" -msgstr "" -"A tool to find the minimum distance between\n" -"every two Gerber geometric elements" - -#: AppGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:48 -#: AppTools/ToolOptimal.py:84 -msgid "Precision" -msgstr "Precision" - -#: AppGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:50 -msgid "Number of decimals for the distances and coordinates in this tool." -msgstr "Number of decimals for the distances and coordinates in this tool." - -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:27 -msgid "Punch Gerber Options" -msgstr "Punch Gerber Options" - -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:108 -#: AppTools/ToolPunchGerber.py:141 -msgid "" -"The punch hole source can be:\n" -"- Excellon Object-> the Excellon object drills center will serve as " -"reference.\n" -"- Fixed Diameter -> will try to use the pads center as reference adding " -"fixed diameter holes.\n" -"- Fixed Annular Ring -> will try to keep a set annular ring.\n" -"- Proportional -> will make a Gerber punch hole having the diameter a " -"percentage of the pad diameter." -msgstr "" -"The punch hole source can be:\n" -"- Excellon Object-> the Excellon object drills center will serve as " -"reference.\n" -"- Fixed Diameter -> will try to use the pads center as reference adding " -"fixed diameter holes.\n" -"- Fixed Annular Ring -> will try to keep a set annular ring.\n" -"- Proportional -> will make a Gerber punch hole having the diameter a " -"percentage of the pad diameter." - -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:27 -msgid "QRCode Tool Options" -msgstr "QRCode Tool Options" - -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:33 -msgid "" -"A tool to create a QRCode that can be inserted\n" -"into a selected Gerber file, or it can be exported as a file." -msgstr "" -"A tool to create a QRCode that can be inserted\n" -"into a selected Gerber file, or it can be exported as a file." - -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:45 -#: AppTools/ToolQRCode.py:121 -msgid "Version" -msgstr "Version" - -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:47 -#: AppTools/ToolQRCode.py:123 -msgid "" -"QRCode version can have values from 1 (21x21 boxes)\n" -"to 40 (177x177 boxes)." -msgstr "" -"QRCode version can have values from 1 (21x21 boxes)\n" -"to 40 (177x177 boxes)." - -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:58 -#: AppTools/ToolQRCode.py:134 -msgid "Error correction" -msgstr "Error correction" - -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:60 -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:71 -#: AppTools/ToolQRCode.py:136 AppTools/ToolQRCode.py:147 -#, python-format -msgid "" -"Parameter that controls the error correction used for the QR Code.\n" -"L = maximum 7%% errors can be corrected\n" -"M = maximum 15%% errors can be corrected\n" -"Q = maximum 25%% errors can be corrected\n" -"H = maximum 30%% errors can be corrected." -msgstr "" -"Parameter that controls the error correction used for the QR Code.\n" -"L = maximum 7%% errors can be corrected\n" -"M = maximum 15%% errors can be corrected\n" -"Q = maximum 25%% errors can be corrected\n" -"H = maximum 30%% errors can be corrected." - -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:81 -#: AppTools/ToolQRCode.py:157 -msgid "Box Size" -msgstr "Box Size" - -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:83 -#: AppTools/ToolQRCode.py:159 -msgid "" -"Box size control the overall size of the QRcode\n" -"by adjusting the size of each box in the code." -msgstr "" -"Box size control the overall size of the QRcode\n" -"by adjusting the size of each box in the code." - -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:94 -#: AppTools/ToolQRCode.py:170 -msgid "Border Size" -msgstr "Border Size" - -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:96 -#: AppTools/ToolQRCode.py:172 -msgid "" -"Size of the QRCode border. How many boxes thick is the border.\n" -"Default value is 4. The width of the clearance around the QRCode." -msgstr "" -"Size of the QRCode border. How many boxes thick is the border.\n" -"Default value is 4. The width of the clearance around the QRCode." - -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:107 -#: AppTools/ToolQRCode.py:92 -msgid "QRCode Data" -msgstr "QRCode Data" - -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:109 -#: AppTools/ToolQRCode.py:94 -msgid "QRCode Data. Alphanumeric text to be encoded in the QRCode." -msgstr "QRCode Data. Alphanumeric text to be encoded in the QRCode." - -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:113 -#: AppTools/ToolQRCode.py:98 -msgid "Add here the text to be included in the QRCode..." -msgstr "Add here the text to be included in the QRCode..." - -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:119 -#: AppTools/ToolQRCode.py:183 -msgid "Polarity" -msgstr "Polarity" - -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:121 -#: AppTools/ToolQRCode.py:185 -msgid "" -"Choose the polarity of the QRCode.\n" -"It can be drawn in a negative way (squares are clear)\n" -"or in a positive way (squares are opaque)." -msgstr "" -"Choose the polarity of the QRCode.\n" -"It can be drawn in a negative way (squares are clear)\n" -"or in a positive way (squares are opaque)." - -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:125 -#: AppTools/ToolFilm.py:279 AppTools/ToolQRCode.py:189 -msgid "Negative" -msgstr "Negative" - -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:126 -#: AppTools/ToolFilm.py:278 AppTools/ToolQRCode.py:190 -msgid "Positive" -msgstr "Positive" - -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:128 -#: AppTools/ToolQRCode.py:192 -msgid "" -"Choose the type of QRCode to be created.\n" -"If added on a Silkscreen Gerber file the QRCode may\n" -"be added as positive. If it is added to a Copper Gerber\n" -"file then perhaps the QRCode can be added as negative." -msgstr "" -"Choose the type of QRCode to be created.\n" -"If added on a Silkscreen Gerber file the QRCode may\n" -"be added as positive. If it is added to a Copper Gerber\n" -"file then perhaps the QRCode can be added as negative." - -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:139 -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:145 -#: AppTools/ToolQRCode.py:203 AppTools/ToolQRCode.py:209 -msgid "" -"The bounding box, meaning the empty space that surrounds\n" -"the QRCode geometry, can have a rounded or a square shape." -msgstr "" -"The bounding box, meaning the empty space that surrounds\n" -"the QRCode geometry, can have a rounded or a square shape." - -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:142 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:239 -#: AppTools/ToolQRCode.py:206 AppTools/ToolTransform.py:383 -msgid "Rounded" -msgstr "Rounded" - -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:152 -#: AppTools/ToolQRCode.py:237 -msgid "Fill Color" -msgstr "Fill Color" - -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:154 -#: AppTools/ToolQRCode.py:239 -msgid "Set the QRCode fill color (squares color)." -msgstr "Set the QRCode fill color (squares color)." - -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:162 -#: AppTools/ToolQRCode.py:261 -msgid "Back Color" -msgstr "Back Color" - -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:164 -#: AppTools/ToolQRCode.py:263 -msgid "Set the QRCode background color." -msgstr "Set the QRCode background color." - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:27 -msgid "Check Rules Tool Options" -msgstr "Check Rules Tool Options" - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:32 -msgid "" -"A tool to check if Gerber files are within a set\n" -"of Manufacturing Rules." -msgstr "" -"A tool to check if Gerber files are within a set\n" -"of Manufacturing Rules." - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:42 -#: AppTools/ToolRulesCheck.py:265 AppTools/ToolRulesCheck.py:929 -msgid "Trace Size" -msgstr "Trace Size" - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:44 -#: AppTools/ToolRulesCheck.py:267 -msgid "This checks if the minimum size for traces is met." -msgstr "This checks if the minimum size for traces is met." - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:54 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:74 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:94 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:114 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:134 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:154 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:174 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:194 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:216 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:236 -#: AppTools/ToolRulesCheck.py:277 AppTools/ToolRulesCheck.py:299 -#: AppTools/ToolRulesCheck.py:322 AppTools/ToolRulesCheck.py:345 -#: AppTools/ToolRulesCheck.py:368 AppTools/ToolRulesCheck.py:391 -#: AppTools/ToolRulesCheck.py:414 AppTools/ToolRulesCheck.py:437 -#: AppTools/ToolRulesCheck.py:462 AppTools/ToolRulesCheck.py:485 -msgid "Min value" -msgstr "Min value" - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:56 -#: AppTools/ToolRulesCheck.py:279 -msgid "Minimum acceptable trace size." -msgstr "Minimum acceptable trace size." - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:61 -#: AppTools/ToolRulesCheck.py:286 AppTools/ToolRulesCheck.py:1157 -#: AppTools/ToolRulesCheck.py:1187 -msgid "Copper to Copper clearance" -msgstr "Copper to Copper clearance" - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:63 -#: AppTools/ToolRulesCheck.py:288 -msgid "" -"This checks if the minimum clearance between copper\n" -"features is met." -msgstr "" -"This checks if the minimum clearance between copper\n" -"features is met." - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:76 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:96 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:116 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:136 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:156 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:176 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:238 -#: AppTools/ToolRulesCheck.py:301 AppTools/ToolRulesCheck.py:324 -#: AppTools/ToolRulesCheck.py:347 AppTools/ToolRulesCheck.py:370 -#: AppTools/ToolRulesCheck.py:393 AppTools/ToolRulesCheck.py:416 -#: AppTools/ToolRulesCheck.py:464 -msgid "Minimum acceptable clearance value." -msgstr "Minimum acceptable clearance value." - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:81 -#: AppTools/ToolRulesCheck.py:309 AppTools/ToolRulesCheck.py:1217 -#: AppTools/ToolRulesCheck.py:1223 AppTools/ToolRulesCheck.py:1236 -#: AppTools/ToolRulesCheck.py:1243 -msgid "Copper to Outline clearance" -msgstr "Copper to Outline clearance" - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:83 -#: AppTools/ToolRulesCheck.py:311 -msgid "" -"This checks if the minimum clearance between copper\n" -"features and the outline is met." -msgstr "" -"This checks if the minimum clearance between copper\n" -"features and the outline is met." - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:101 -#: AppTools/ToolRulesCheck.py:332 -msgid "Silk to Silk Clearance" -msgstr "Silk to Silk Clearance" - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:103 -#: AppTools/ToolRulesCheck.py:334 -msgid "" -"This checks if the minimum clearance between silkscreen\n" -"features and silkscreen features is met." -msgstr "" -"This checks if the minimum clearance between silkscreen\n" -"features and silkscreen features is met." - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:121 -#: AppTools/ToolRulesCheck.py:355 AppTools/ToolRulesCheck.py:1326 -#: AppTools/ToolRulesCheck.py:1332 AppTools/ToolRulesCheck.py:1350 -msgid "Silk to Solder Mask Clearance" -msgstr "Silk to Solder Mask Clearance" - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:123 -#: AppTools/ToolRulesCheck.py:357 -msgid "" -"This checks if the minimum clearance between silkscreen\n" -"features and soldermask features is met." -msgstr "" -"This checks if the minimum clearance between silkscreen\n" -"features and soldermask features is met." - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:141 -#: AppTools/ToolRulesCheck.py:378 AppTools/ToolRulesCheck.py:1380 -#: AppTools/ToolRulesCheck.py:1386 AppTools/ToolRulesCheck.py:1400 -#: AppTools/ToolRulesCheck.py:1407 -msgid "Silk to Outline Clearance" -msgstr "Silk to Outline Clearance" - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:143 -#: AppTools/ToolRulesCheck.py:380 -msgid "" -"This checks if the minimum clearance between silk\n" -"features and the outline is met." -msgstr "" -"This checks if the minimum clearance between silk\n" -"features and the outline is met." - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:161 -#: AppTools/ToolRulesCheck.py:401 AppTools/ToolRulesCheck.py:1418 -#: AppTools/ToolRulesCheck.py:1445 -msgid "Minimum Solder Mask Sliver" -msgstr "Minimum Solder Mask Sliver" - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:163 -#: AppTools/ToolRulesCheck.py:403 -msgid "" -"This checks if the minimum clearance between soldermask\n" -"features and soldermask features is met." -msgstr "" -"This checks if the minimum clearance between soldermask\n" -"features and soldermask features is met." - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:181 -#: AppTools/ToolRulesCheck.py:424 AppTools/ToolRulesCheck.py:1483 -#: AppTools/ToolRulesCheck.py:1489 AppTools/ToolRulesCheck.py:1505 -#: AppTools/ToolRulesCheck.py:1512 -msgid "Minimum Annular Ring" -msgstr "Minimum Annular Ring" - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:183 -#: AppTools/ToolRulesCheck.py:426 -msgid "" -"This checks if the minimum copper ring left by drilling\n" -"a hole into a pad is met." -msgstr "" -"This checks if the minimum copper ring left by drilling\n" -"a hole into a pad is met." - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:196 -#: AppTools/ToolRulesCheck.py:439 -msgid "Minimum acceptable ring value." -msgstr "Minimum acceptable ring value." - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:203 -#: AppTools/ToolRulesCheck.py:449 AppTools/ToolRulesCheck.py:873 -msgid "Hole to Hole Clearance" -msgstr "Hole to Hole Clearance" - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:205 -#: AppTools/ToolRulesCheck.py:451 -msgid "" -"This checks if the minimum clearance between a drill hole\n" -"and another drill hole is met." -msgstr "" -"This checks if the minimum clearance between a drill hole\n" -"and another drill hole is met." - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:218 -#: AppTools/ToolRulesCheck.py:487 -msgid "Minimum acceptable drill size." -msgstr "Minimum acceptable drill size." - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:223 -#: AppTools/ToolRulesCheck.py:472 AppTools/ToolRulesCheck.py:847 -msgid "Hole Size" -msgstr "Hole Size" - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:225 -#: AppTools/ToolRulesCheck.py:474 -msgid "" -"This checks if the drill holes\n" -"sizes are above the threshold." -msgstr "" -"This checks if the drill holes\n" -"sizes are above the threshold." - -#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:27 -msgid "2Sided Tool Options" -msgstr "2Sided Tool Options" - -#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:33 -msgid "" -"A tool to help in creating a double sided\n" -"PCB using alignment holes." -msgstr "" -"A tool to help in creating a double sided\n" -"PCB using alignment holes." - -#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:47 -msgid "Drill dia" -msgstr "Drill dia" - -#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:49 -#: AppTools/ToolDblSided.py:363 AppTools/ToolDblSided.py:368 -msgid "Diameter of the drill for the alignment holes." -msgstr "Diameter of the drill for the alignment holes." - -#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:56 -#: AppTools/ToolDblSided.py:377 -msgid "Align Axis" -msgstr "Align Axis" - -#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:58 -#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:71 -#: AppTools/ToolDblSided.py:165 AppTools/ToolDblSided.py:379 -msgid "Mirror vertically (X) or horizontally (Y)." -msgstr "Mirror vertically (X) or horizontally (Y)." - -#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:69 -msgid "Mirror Axis:" -msgstr "Mirror Axis:" - -#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:80 -#: AppTools/ToolDblSided.py:181 -msgid "Point" -msgstr "Point" - -#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:81 -#: AppTools/ToolDblSided.py:182 -msgid "Box" -msgstr "Box" - -#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:82 -msgid "Axis Ref" -msgstr "Axis Ref" - -#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:84 -msgid "" -"The axis should pass through a point or cut\n" -" a specified box (in a FlatCAM object) through \n" -"the center." -msgstr "" -"The axis should pass through a point or cut\n" -" a specified box (in a FlatCAM object) through \n" -"the center." - -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:27 -msgid "Calculators Tool Options" -msgstr "Calculators Tool Options" - -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:31 -#: AppTools/ToolCalculators.py:25 -msgid "V-Shape Tool Calculator" -msgstr "V-Shape Tool Calculator" - -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:33 -msgid "" -"Calculate the tool diameter for a given V-shape tool,\n" -"having the tip diameter, tip angle and\n" -"depth-of-cut as parameters." -msgstr "" -"Calculate the tool diameter for a given V-shape tool,\n" -"having the tip diameter, tip angle and\n" -"depth-of-cut as parameters." - -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:50 -#: AppTools/ToolCalculators.py:94 -msgid "Tip Diameter" -msgstr "Tip Diameter" - -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:52 -#: AppTools/ToolCalculators.py:102 -msgid "" -"This is the tool tip diameter.\n" -"It is specified by manufacturer." -msgstr "" -"This is the tool tip diameter.\n" -"It is specified by manufacturer." - -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:64 -#: AppTools/ToolCalculators.py:105 -msgid "Tip Angle" -msgstr "Tip Angle" - -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:66 -msgid "" -"This is the angle on the tip of the tool.\n" -"It is specified by manufacturer." -msgstr "" -"This is the angle on the tip of the tool.\n" -"It is specified by manufacturer." - -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:80 -msgid "" -"This is depth to cut into material.\n" -"In the CNCJob object it is the CutZ parameter." -msgstr "" -"This is depth to cut into material.\n" -"In the CNCJob object it is the CutZ parameter." - -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:87 -#: AppTools/ToolCalculators.py:27 -msgid "ElectroPlating Calculator" -msgstr "ElectroPlating Calculator" - -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:89 -#: AppTools/ToolCalculators.py:158 -msgid "" -"This calculator is useful for those who plate the via/pad/drill holes,\n" -"using a method like graphite ink or calcium hypophosphite ink or palladium " -"chloride." -msgstr "" -"This calculator is useful for those who plate the via/pad/drill holes,\n" -"using a method like graphite ink or calcium hypophosphite ink or palladium " -"chloride." - -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:100 -#: AppTools/ToolCalculators.py:167 -msgid "Board Length" -msgstr "Board Length" - -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:102 -#: AppTools/ToolCalculators.py:173 -msgid "This is the board length. In centimeters." -msgstr "This is the board length. In centimeters." - -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:112 -#: AppTools/ToolCalculators.py:175 -msgid "Board Width" -msgstr "Board Width" - -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:114 -#: AppTools/ToolCalculators.py:181 -msgid "This is the board width.In centimeters." -msgstr "This is the board width.In centimeters." - -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:119 -#: AppTools/ToolCalculators.py:183 -msgid "Current Density" -msgstr "Current Density" - -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:125 -#: AppTools/ToolCalculators.py:190 -msgid "" -"Current density to pass through the board. \n" -"In Amps per Square Feet ASF." -msgstr "" -"Current density to pass through the board. \n" -"In Amps per Square Feet ASF." - -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:131 -#: AppTools/ToolCalculators.py:193 -msgid "Copper Growth" -msgstr "Copper Growth" - -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:137 -#: AppTools/ToolCalculators.py:200 -msgid "" -"How thick the copper growth is intended to be.\n" -"In microns." -msgstr "" -"How thick the copper growth is intended to be.\n" -"In microns." - -#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:27 -msgid "Corner Markers Options" -msgstr "Corner Markers Options" - -#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:44 -#: AppTools/ToolCorners.py:124 -msgid "The thickness of the line that makes the corner marker." -msgstr "The thickness of the line that makes the corner marker." - -#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:58 -#: AppTools/ToolCorners.py:138 -msgid "The length of the line that makes the corner marker." -msgstr "The length of the line that makes the corner marker." - -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:28 -msgid "Cutout Tool Options" -msgstr "Cutout Tool Options" - -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:34 -msgid "" -"Create toolpaths to cut around\n" -"the PCB and separate it from\n" -"the original board." -msgstr "" -"Create toolpaths to cut around\n" -"the PCB and separate it from\n" -"the original board." - -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:43 -#: AppTools/ToolCalculators.py:123 AppTools/ToolCutOut.py:129 -msgid "Tool Diameter" -msgstr "Tool Diameter" - -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:45 -#: AppTools/ToolCutOut.py:131 -msgid "" -"Diameter of the tool used to cutout\n" -"the PCB shape out of the surrounding material." -msgstr "" -"Diameter of the tool used to cutout\n" -"the PCB shape out of the surrounding material." - -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:100 -msgid "Object kind" -msgstr "Object kind" - -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:102 -#: AppTools/ToolCutOut.py:77 -msgid "" -"Choice of what kind the object we want to cutout is.
    - Single: " -"contain a single PCB Gerber outline object.
    - Panel: a panel PCB " -"Gerber object, which is made\n" -"out of many individual PCB outlines." -msgstr "" -"Choice of what kind the object we want to cutout is.
    - Single: " -"contain a single PCB Gerber outline object.
    - Panel: a panel PCB " -"Gerber object, which is made\n" -"out of many individual PCB outlines." - -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:109 -#: AppTools/ToolCutOut.py:83 -msgid "Single" -msgstr "Single" - -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:110 -#: AppTools/ToolCutOut.py:84 -msgid "Panel" -msgstr "Panel" - -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:117 -#: AppTools/ToolCutOut.py:192 -msgid "" -"Margin over bounds. A positive value here\n" -"will make the cutout of the PCB further from\n" -"the actual PCB border" -msgstr "" -"Margin over bounds. A positive value here\n" -"will make the cutout of the PCB further from\n" -"the actual PCB border" - -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:130 -#: AppTools/ToolCutOut.py:203 -msgid "Gap size" -msgstr "Gap size" - -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:132 -#: AppTools/ToolCutOut.py:205 -msgid "" -"The size of the bridge gaps in the cutout\n" -"used to keep the board connected to\n" -"the surrounding material (the one \n" -"from which the PCB is cutout)." -msgstr "" -"The size of the bridge gaps in the cutout\n" -"used to keep the board connected to\n" -"the surrounding material (the one \n" -"from which the PCB is cutout)." - -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:146 -#: AppTools/ToolCutOut.py:245 -msgid "Gaps" -msgstr "Gaps" - -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:148 -msgid "" -"Number of gaps used for the cutout.\n" -"There can be maximum 8 bridges/gaps.\n" -"The choices are:\n" -"- None - no gaps\n" -"- lr - left + right\n" -"- tb - top + bottom\n" -"- 4 - left + right +top + bottom\n" -"- 2lr - 2*left + 2*right\n" -"- 2tb - 2*top + 2*bottom\n" -"- 8 - 2*left + 2*right +2*top + 2*bottom" -msgstr "" -"Number of gaps used for the cutout.\n" -"There can be maximum 8 bridges/gaps.\n" -"The choices are:\n" -"- None - no gaps\n" -"- lr - left + right\n" -"- tb - top + bottom\n" -"- 4 - left + right +top + bottom\n" -"- 2lr - 2*left + 2*right\n" -"- 2tb - 2*top + 2*bottom\n" -"- 8 - 2*left + 2*right +2*top + 2*bottom" - -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:170 -#: AppTools/ToolCutOut.py:222 -msgid "Convex Shape" -msgstr "Convex Shape" - -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:172 -#: AppTools/ToolCutOut.py:225 -msgid "" -"Create a convex shape surrounding the entire PCB.\n" -"Used only if the source object type is Gerber." -msgstr "" -"Create a convex shape surrounding the entire PCB.\n" -"Used only if the source object type is Gerber." - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:27 -msgid "Film Tool Options" -msgstr "Film Tool Options" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:33 -msgid "" -"Create a PCB film from a Gerber or Geometry object.\n" -"The file is saved in SVG format." -msgstr "" -"Create a PCB film from a Gerber or Geometry object.\n" -"The file is saved in SVG format." - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:43 -msgid "Film Type" -msgstr "Film Type" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:45 AppTools/ToolFilm.py:283 -msgid "" -"Generate a Positive black film or a Negative film.\n" -"Positive means that it will print the features\n" -"with black on a white canvas.\n" -"Negative means that it will print the features\n" -"with white on a black canvas.\n" -"The Film format is SVG." -msgstr "" -"Generate a Positive black film or a Negative film.\n" -"Positive means that it will print the features\n" -"with black on a white canvas.\n" -"Negative means that it will print the features\n" -"with white on a black canvas.\n" -"The Film format is SVG." - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:56 -msgid "Film Color" -msgstr "Film Color" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:58 -msgid "Set the film color when positive film is selected." -msgstr "Set the film color when positive film is selected." - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:71 AppTools/ToolFilm.py:299 -msgid "Border" -msgstr "Border" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:73 AppTools/ToolFilm.py:301 -msgid "" -"Specify a border around the object.\n" -"Only for negative film.\n" -"It helps if we use as a Box Object the same \n" -"object as in Film Object. It will create a thick\n" -"black bar around the actual print allowing for a\n" -"better delimitation of the outline features which are of\n" -"white color like the rest and which may confound with the\n" -"surroundings if not for this border." -msgstr "" -"Specify a border around the object.\n" -"Only for negative film.\n" -"It helps if we use as a Box Object the same \n" -"object as in Film Object. It will create a thick\n" -"black bar around the actual print allowing for a\n" -"better delimitation of the outline features which are of\n" -"white color like the rest and which may confound with the\n" -"surroundings if not for this border." - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:90 AppTools/ToolFilm.py:266 -msgid "Scale Stroke" -msgstr "Scale Stroke" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:92 AppTools/ToolFilm.py:268 -msgid "" -"Scale the line stroke thickness of each feature in the SVG file.\n" -"It means that the line that envelope each SVG feature will be thicker or " -"thinner,\n" -"therefore the fine features may be more affected by this parameter." -msgstr "" -"Scale the line stroke thickness of each feature in the SVG file.\n" -"It means that the line that envelope each SVG feature will be thicker or " -"thinner,\n" -"therefore the fine features may be more affected by this parameter." - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:99 AppTools/ToolFilm.py:124 -msgid "Film Adjustments" -msgstr "Film Adjustments" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:101 -#: AppTools/ToolFilm.py:126 -msgid "" -"Sometime the printers will distort the print shape, especially the Laser " -"types.\n" -"This section provide the tools to compensate for the print distortions." -msgstr "" -"Sometime the printers will distort the print shape, especially the Laser " -"types.\n" -"This section provide the tools to compensate for the print distortions." - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:108 -#: AppTools/ToolFilm.py:133 -msgid "Scale Film geometry" -msgstr "Scale Film geometry" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:110 -#: AppTools/ToolFilm.py:135 -msgid "" -"A value greater than 1 will stretch the film\n" -"while a value less than 1 will jolt it." -msgstr "" -"A value greater than 1 will stretch the film\n" -"while a value less than 1 will jolt it." - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:120 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:103 -#: AppTools/ToolFilm.py:145 AppTools/ToolTransform.py:148 -msgid "X factor" -msgstr "X factor" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:129 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:116 -#: AppTools/ToolFilm.py:154 AppTools/ToolTransform.py:168 -msgid "Y factor" -msgstr "Y factor" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:139 -#: AppTools/ToolFilm.py:172 -msgid "Skew Film geometry" -msgstr "Skew Film geometry" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:141 -#: AppTools/ToolFilm.py:174 -msgid "" -"Positive values will skew to the right\n" -"while negative values will skew to the left." -msgstr "" -"Positive values will skew to the right\n" -"while negative values will skew to the left." - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:151 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:72 -#: AppTools/ToolFilm.py:184 AppTools/ToolTransform.py:97 -msgid "X angle" -msgstr "X angle" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:160 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:86 -#: AppTools/ToolFilm.py:193 AppTools/ToolTransform.py:118 -msgid "Y angle" -msgstr "Y angle" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:171 -#: AppTools/ToolFilm.py:204 -msgid "" -"The reference point to be used as origin for the skew.\n" -"It can be one of the four points of the geometry bounding box." -msgstr "" -"The reference point to be used as origin for the skew.\n" -"It can be one of the four points of the geometry bounding box." - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:174 -#: AppTools/ToolCorners.py:80 AppTools/ToolFiducials.py:83 -#: AppTools/ToolFilm.py:207 -msgid "Bottom Left" -msgstr "Bottom Left" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:175 -#: AppTools/ToolCorners.py:88 AppTools/ToolFilm.py:208 -msgid "Top Left" -msgstr "Top Left" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:176 -#: AppTools/ToolCorners.py:84 AppTools/ToolFilm.py:209 -msgid "Bottom Right" -msgstr "Bottom Right" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:177 -#: AppTools/ToolFilm.py:210 -msgid "Top right" -msgstr "Top right" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:185 -#: AppTools/ToolFilm.py:227 -msgid "Mirror Film geometry" -msgstr "Mirror Film geometry" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:187 -#: AppTools/ToolFilm.py:229 -msgid "Mirror the film geometry on the selected axis or on both." -msgstr "Mirror the film geometry on the selected axis or on both." - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:201 -#: AppTools/ToolFilm.py:243 -msgid "Mirror axis" -msgstr "Mirror axis" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:211 -#: AppTools/ToolFilm.py:388 -msgid "SVG" -msgstr "SVG" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:212 -#: AppTools/ToolFilm.py:389 -msgid "PNG" -msgstr "PNG" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:213 -#: AppTools/ToolFilm.py:390 -msgid "PDF" -msgstr "PDF" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:216 -#: AppTools/ToolFilm.py:281 AppTools/ToolFilm.py:393 -msgid "Film Type:" -msgstr "Film Type:" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:218 -#: AppTools/ToolFilm.py:395 -msgid "" -"The file type of the saved film. Can be:\n" -"- 'SVG' -> open-source vectorial format\n" -"- 'PNG' -> raster image\n" -"- 'PDF' -> portable document format" -msgstr "" -"The file type of the saved film. Can be:\n" -"- 'SVG' -> open-source vectorial format\n" -"- 'PNG' -> raster image\n" -"- 'PDF' -> portable document format" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:227 -#: AppTools/ToolFilm.py:404 -msgid "Page Orientation" -msgstr "Page Orientation" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:240 -#: AppTools/ToolFilm.py:417 -msgid "Page Size" -msgstr "Page Size" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:241 -#: AppTools/ToolFilm.py:418 -msgid "A selection of standard ISO 216 page sizes." -msgstr "A selection of standard ISO 216 page sizes." - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:26 -msgid "Isolation Tool Options" -msgstr "Isolation Tool Options" - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:48 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:49 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:57 -msgid "Comma separated values" -msgstr "Comma separated values" - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:54 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:156 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:142 -#: AppTools/ToolIsolation.py:166 AppTools/ToolNCC.py:174 -#: AppTools/ToolPaint.py:157 -msgid "Tool order" -msgstr "Tool order" - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:55 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:157 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:167 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:143 -#: AppTools/ToolIsolation.py:167 AppTools/ToolNCC.py:175 -#: AppTools/ToolNCC.py:185 AppTools/ToolPaint.py:158 AppTools/ToolPaint.py:168 -msgid "" -"This set the way that the tools in the tools table are used.\n" -"'No' --> means that the used order is the one in the tool table\n" -"'Forward' --> means that the tools will be ordered from small to big\n" -"'Reverse' --> means that the tools will ordered from big to small\n" -"\n" -"WARNING: using rest machining will automatically set the order\n" -"in reverse and disable this control." -msgstr "" -"This set the way that the tools in the tools table are used.\n" -"'No' --> means that the used order is the one in the tool table\n" -"'Forward' --> means that the tools will be ordered from small to big\n" -"'Reverse' --> means that the tools will ordered from big to small\n" -"\n" -"WARNING: using rest machining will automatically set the order\n" -"in reverse and disable this control." - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:63 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:165 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:151 -#: AppTools/ToolIsolation.py:175 AppTools/ToolNCC.py:183 -#: AppTools/ToolPaint.py:166 -msgid "Forward" -msgstr "Forward" - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:64 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:166 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:152 -#: AppTools/ToolIsolation.py:176 AppTools/ToolNCC.py:184 -#: AppTools/ToolPaint.py:167 -msgid "Reverse" -msgstr "Reverse" - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:72 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:80 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:55 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:63 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:64 -#: AppTools/ToolIsolation.py:201 AppTools/ToolIsolation.py:209 -#: AppTools/ToolNCC.py:215 AppTools/ToolNCC.py:223 AppTools/ToolPaint.py:197 -#: AppTools/ToolPaint.py:205 -msgid "" -"Default tool type:\n" -"- 'V-shape'\n" -"- Circular" -msgstr "" -"Default tool type:\n" -"- 'V-shape'\n" -"- Circular" - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:77 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:60 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:69 -#: AppTools/ToolIsolation.py:206 AppTools/ToolNCC.py:220 -#: AppTools/ToolPaint.py:202 -msgid "V-shape" -msgstr "V-shape" - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:103 -msgid "" -"The tip angle for V-Shape Tool.\n" -"In degrees." -msgstr "" -"The tip angle for V-Shape Tool.\n" -"In degrees." - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:117 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:126 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:100 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:109 -#: AppTools/ToolIsolation.py:248 AppTools/ToolNCC.py:262 -#: AppTools/ToolNCC.py:271 AppTools/ToolPaint.py:244 AppTools/ToolPaint.py:253 -msgid "" -"Depth of cut into material. Negative value.\n" -"In FlatCAM units." -msgstr "" -"Depth of cut into material. Negative value.\n" -"In FlatCAM units." - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:136 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:119 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:125 -#: AppTools/ToolIsolation.py:262 AppTools/ToolNCC.py:280 -#: AppTools/ToolPaint.py:262 -msgid "" -"Diameter for the new tool to add in the Tool Table.\n" -"If the tool is V-shape type then this value is automatically\n" -"calculated from the other parameters." -msgstr "" -"Diameter for the new tool to add in the Tool Table.\n" -"If the tool is V-shape type then this value is automatically\n" -"calculated from the other parameters." - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:243 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:288 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:244 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:245 -#: AppTools/ToolIsolation.py:432 AppTools/ToolNCC.py:512 -#: AppTools/ToolPaint.py:441 -msgid "Rest" -msgstr "Rest" - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:246 -#: AppTools/ToolIsolation.py:435 -msgid "" -"If checked, use 'rest machining'.\n" -"Basically it will isolate outside PCB features,\n" -"using the biggest tool and continue with the next tools,\n" -"from bigger to smaller, to isolate the copper features that\n" -"could not be cleared by previous tool, until there is\n" -"no more copper features to isolate or there are no more tools.\n" -"If not checked, use the standard algorithm." -msgstr "" -"If checked, use 'rest machining'.\n" -"Basically it will isolate outside PCB features,\n" -"using the biggest tool and continue with the next tools,\n" -"from bigger to smaller, to isolate the copper features that\n" -"could not be cleared by previous tool, until there is\n" -"no more copper features to isolate or there are no more tools.\n" -"If not checked, use the standard algorithm." - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:258 -#: AppTools/ToolIsolation.py:447 -msgid "Combine" -msgstr "Combine" - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:260 -#: AppTools/ToolIsolation.py:449 -msgid "Combine all passes into one object" -msgstr "Combine all passes into one object" - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:267 -#: AppTools/ToolIsolation.py:456 -msgid "Except" -msgstr "Except" - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:268 -#: AppTools/ToolIsolation.py:457 -msgid "" -"When the isolation geometry is generated,\n" -"by checking this, the area of the object below\n" -"will be subtracted from the isolation geometry." -msgstr "" -"When the isolation geometry is generated,\n" -"by checking this, the area of the object below\n" -"will be subtracted from the isolation geometry." - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:277 -#: AppTools/ToolIsolation.py:496 -msgid "" -"Isolation scope. Choose what to isolate:\n" -"- 'All' -> Isolate all the polygons in the object\n" -"- 'Area Selection' -> Isolate polygons within a selection area.\n" -"- 'Polygon Selection' -> Isolate a selection of polygons.\n" -"- 'Reference Object' - will process the area specified by another object." -msgstr "" -"Isolation scope. Choose what to isolate:\n" -"- 'All' -> Isolate all the polygons in the object\n" -"- 'Area Selection' -> Isolate polygons within a selection area.\n" -"- 'Polygon Selection' -> Isolate a selection of polygons.\n" -"- 'Reference Object' - will process the area specified by another object." - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:285 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280 -#: AppTools/ToolIsolation.py:504 AppTools/ToolIsolation.py:1308 -#: AppTools/ToolIsolation.py:1690 AppTools/ToolPaint.py:485 -#: AppTools/ToolPaint.py:941 AppTools/ToolPaint.py:1451 -#: tclCommands/TclCommandPaint.py:164 -msgid "Polygon Selection" -msgstr "Polygon Selection" - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:310 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:339 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:303 -msgid "Normal" -msgstr "Normal" - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:311 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:340 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:304 -msgid "Progressive" -msgstr "Progressive" - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:312 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:341 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:305 -#: AppObjects/AppObject.py:349 AppObjects/FlatCAMObj.py:251 -#: AppObjects/FlatCAMObj.py:282 AppObjects/FlatCAMObj.py:298 -#: AppObjects/FlatCAMObj.py:378 AppTools/ToolCopperThieving.py:1491 -#: AppTools/ToolCorners.py:411 AppTools/ToolFiducials.py:813 -#: AppTools/ToolMove.py:229 AppTools/ToolQRCode.py:737 App_Main.py:4397 -msgid "Plotting" -msgstr "Plotting" - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:314 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:343 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:307 -msgid "" -"- 'Normal' - normal plotting, done at the end of the job\n" -"- 'Progressive' - each shape is plotted after it is generated" -msgstr "" -"- 'Normal' - normal plotting, done at the end of the job\n" -"- 'Progressive' - each shape is plotted after it is generated" - -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:27 -msgid "NCC Tool Options" -msgstr "NCC Tool Options" - -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:33 -msgid "" -"Create a Geometry object with\n" -"toolpaths to cut all non-copper regions." -msgstr "" -"Create a Geometry object with\n" -"toolpaths to cut all non-copper regions." - -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:266 -msgid "Offset value" -msgstr "Offset value" - -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:268 -msgid "" -"If used, it will add an offset to the copper features.\n" -"The copper clearing will finish to a distance\n" -"from the copper features.\n" -"The value can be between 0.0 and 9999.9 FlatCAM units." -msgstr "" -"If used, it will add an offset to the copper features.\n" -"The copper clearing will finish to a distance\n" -"from the copper features.\n" -"The value can be between 0.0 and 9999.9 FlatCAM units." - -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:290 AppTools/ToolNCC.py:516 -msgid "" -"If checked, use 'rest machining'.\n" -"Basically it will clear copper outside PCB features,\n" -"using the biggest tool and continue with the next tools,\n" -"from bigger to smaller, to clear areas of copper that\n" -"could not be cleared by previous tool, until there is\n" -"no more copper to clear or there are no more tools.\n" -"If not checked, use the standard algorithm." -msgstr "" -"If checked, use 'rest machining'.\n" -"Basically it will clear copper outside PCB features,\n" -"using the biggest tool and continue with the next tools,\n" -"from bigger to smaller, to clear areas of copper that\n" -"could not be cleared by previous tool, until there is\n" -"no more copper to clear or there are no more tools.\n" -"If not checked, use the standard algorithm." - -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:313 AppTools/ToolNCC.py:541 -msgid "" -"Selection of area to be processed.\n" -"- 'Itself' - the processing extent is based on the object that is " -"processed.\n" -" - 'Area Selection' - left mouse click to start selection of the area to be " -"processed.\n" -"- 'Reference Object' - will process the area specified by another object." -msgstr "" -"Selection of area to be processed.\n" -"- 'Itself' - the processing extent is based on the object that is " -"processed.\n" -" - 'Area Selection' - left mouse click to start selection of the area to be " -"processed.\n" -"- 'Reference Object' - will process the area specified by another object." - -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:27 -msgid "Paint Tool Options" -msgstr "Paint Tool Options" - -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:33 -msgid "Parameters:" -msgstr "Parameters:" - -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:107 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:116 -msgid "" -"Depth of cut into material. Negative value.\n" -"In application units." -msgstr "" -"Depth of cut into material. Negative value.\n" -"In application units." - -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:247 -#: AppTools/ToolPaint.py:444 -msgid "" -"If checked, use 'rest machining'.\n" -"Basically it will clear copper outside PCB features,\n" -"using the biggest tool and continue with the next tools,\n" -"from bigger to smaller, to clear areas of copper that\n" -"could not be cleared by previous tool, until there is\n" -"no more copper to clear or there are no more tools.\n" -"\n" -"If not checked, use the standard algorithm." -msgstr "" -"If checked, use 'rest machining'.\n" -"Basically it will clear copper outside PCB features,\n" -"using the biggest tool and continue with the next tools,\n" -"from bigger to smaller, to clear areas of copper that\n" -"could not be cleared by previous tool, until there is\n" -"no more copper to clear or there are no more tools.\n" -"\n" -"If not checked, use the standard algorithm." - -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:260 -#: AppTools/ToolPaint.py:457 -msgid "" -"Selection of area to be processed.\n" -"- 'Polygon Selection' - left mouse click to add/remove polygons to be " -"processed.\n" -"- 'Area Selection' - left mouse click to start selection of the area to be " -"processed.\n" -"Keeping a modifier key pressed (CTRL or SHIFT) will allow to add multiple " -"areas.\n" -"- 'All Polygons' - the process will start after click.\n" -"- 'Reference Object' - will process the area specified by another object." -msgstr "" -"Selection of area to be processed.\n" -"- 'Polygon Selection' - left mouse click to add/remove polygons to be " -"processed.\n" -"- 'Area Selection' - left mouse click to start selection of the area to be " -"processed.\n" -"Keeping a modifier key pressed (CTRL or SHIFT) will allow to add multiple " -"areas.\n" -"- 'All Polygons' - the process will start after click.\n" -"- 'Reference Object' - will process the area specified by another object." - -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:27 -msgid "Panelize Tool Options" -msgstr "Panelize Tool Options" - -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:33 -msgid "" -"Create an object that contains an array of (x, y) elements,\n" -"each element is a copy of the source object spaced\n" -"at a X distance, Y distance of each other." -msgstr "" -"Create an object that contains an array of (x, y) elements,\n" -"each element is a copy of the source object spaced\n" -"at a X distance, Y distance of each other." - -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:50 -#: AppTools/ToolPanelize.py:165 -msgid "Spacing cols" -msgstr "Spacing cols" - -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:52 -#: AppTools/ToolPanelize.py:167 -msgid "" -"Spacing between columns of the desired panel.\n" -"In current units." -msgstr "" -"Spacing between columns of the desired panel.\n" -"In current units." - -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:64 -#: AppTools/ToolPanelize.py:177 -msgid "Spacing rows" -msgstr "Spacing rows" - -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:66 -#: AppTools/ToolPanelize.py:179 -msgid "" -"Spacing between rows of the desired panel.\n" -"In current units." -msgstr "" -"Spacing between rows of the desired panel.\n" -"In current units." - -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:77 -#: AppTools/ToolPanelize.py:188 -msgid "Columns" -msgstr "Columns" - -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:79 -#: AppTools/ToolPanelize.py:190 -msgid "Number of columns of the desired panel" -msgstr "Number of columns of the desired panel" - -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:89 -#: AppTools/ToolPanelize.py:198 -msgid "Rows" -msgstr "Rows" - -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:91 -#: AppTools/ToolPanelize.py:200 -msgid "Number of rows of the desired panel" -msgstr "Number of rows of the desired panel" - -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:97 -#: AppTools/ToolAlignObjects.py:73 AppTools/ToolAlignObjects.py:109 -#: AppTools/ToolCalibration.py:196 AppTools/ToolCalibration.py:631 -#: AppTools/ToolCalibration.py:648 AppTools/ToolCalibration.py:807 -#: AppTools/ToolCalibration.py:815 AppTools/ToolCopperThieving.py:148 -#: AppTools/ToolCopperThieving.py:162 AppTools/ToolCopperThieving.py:608 -#: AppTools/ToolCutOut.py:91 AppTools/ToolDblSided.py:224 -#: AppTools/ToolFilm.py:68 AppTools/ToolFilm.py:91 AppTools/ToolImage.py:49 -#: AppTools/ToolImage.py:252 AppTools/ToolImage.py:273 -#: AppTools/ToolIsolation.py:465 AppTools/ToolIsolation.py:517 -#: AppTools/ToolIsolation.py:1281 AppTools/ToolNCC.py:96 -#: AppTools/ToolNCC.py:558 AppTools/ToolNCC.py:1318 AppTools/ToolPaint.py:501 -#: AppTools/ToolPaint.py:705 AppTools/ToolPanelize.py:116 -#: AppTools/ToolPanelize.py:210 AppTools/ToolPanelize.py:385 -#: AppTools/ToolPanelize.py:402 -msgid "Gerber" -msgstr "Gerber" - -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:98 -#: AppTools/ToolPanelize.py:211 -msgid "Geo" -msgstr "Geo" - -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:99 -#: AppTools/ToolPanelize.py:212 -msgid "Panel Type" -msgstr "Panel Type" - -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:101 -msgid "" -"Choose the type of object for the panel object:\n" -"- Gerber\n" -"- Geometry" -msgstr "" -"Choose the type of object for the panel object:\n" -"- Gerber\n" -"- Geometry" - -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:110 -msgid "Constrain within" -msgstr "Constrain within" - -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:112 -#: AppTools/ToolPanelize.py:224 -msgid "" -"Area define by DX and DY within to constrain the panel.\n" -"DX and DY values are in current units.\n" -"Regardless of how many columns and rows are desired,\n" -"the final panel will have as many columns and rows as\n" -"they fit completely within selected area." -msgstr "" -"Area define by DX and DY within to constrain the panel.\n" -"DX and DY values are in current units.\n" -"Regardless of how many columns and rows are desired,\n" -"the final panel will have as many columns and rows as\n" -"they fit completely within selected area." - -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:125 -#: AppTools/ToolPanelize.py:236 -msgid "Width (DX)" -msgstr "Width (DX)" - -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:127 -#: AppTools/ToolPanelize.py:238 -msgid "" -"The width (DX) within which the panel must fit.\n" -"In current units." -msgstr "" -"The width (DX) within which the panel must fit.\n" -"In current units." - -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:138 -#: AppTools/ToolPanelize.py:247 -msgid "Height (DY)" -msgstr "Height (DY)" - -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:140 -#: AppTools/ToolPanelize.py:249 -msgid "" -"The height (DY)within which the panel must fit.\n" -"In current units." -msgstr "" -"The height (DY)within which the panel must fit.\n" -"In current units." - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:27 -msgid "SolderPaste Tool Options" -msgstr "SolderPaste Tool Options" - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:33 -msgid "" -"A tool to create GCode for dispensing\n" -"solder paste onto a PCB." -msgstr "" -"A tool to create GCode for dispensing\n" -"solder paste onto a PCB." - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:54 -msgid "New Nozzle Dia" -msgstr "New Nozzle Dia" - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:56 -#: AppTools/ToolSolderPaste.py:112 -msgid "Diameter for the new Nozzle tool to add in the Tool Table" -msgstr "Diameter for the new Nozzle tool to add in the Tool Table" - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:72 -#: AppTools/ToolSolderPaste.py:179 -msgid "Z Dispense Start" -msgstr "Z Dispense Start" - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:74 -#: AppTools/ToolSolderPaste.py:181 -msgid "The height (Z) when solder paste dispensing starts." -msgstr "The height (Z) when solder paste dispensing starts." - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:85 -#: AppTools/ToolSolderPaste.py:191 -msgid "Z Dispense" -msgstr "Z Dispense" - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:87 -#: AppTools/ToolSolderPaste.py:193 -msgid "The height (Z) when doing solder paste dispensing." -msgstr "The height (Z) when doing solder paste dispensing." - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:98 -#: AppTools/ToolSolderPaste.py:203 -msgid "Z Dispense Stop" -msgstr "Z Dispense Stop" - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:100 -#: AppTools/ToolSolderPaste.py:205 -msgid "The height (Z) when solder paste dispensing stops." -msgstr "The height (Z) when solder paste dispensing stops." - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:111 -#: AppTools/ToolSolderPaste.py:215 -msgid "Z Travel" -msgstr "Z Travel" - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:113 -#: AppTools/ToolSolderPaste.py:217 -msgid "" -"The height (Z) for travel between pads\n" -"(without dispensing solder paste)." -msgstr "" -"The height (Z) for travel between pads\n" -"(without dispensing solder paste)." - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:125 -#: AppTools/ToolSolderPaste.py:228 -msgid "Z Toolchange" -msgstr "Z Toolchange" - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:127 -#: AppTools/ToolSolderPaste.py:230 -msgid "The height (Z) for tool (nozzle) change." -msgstr "The height (Z) for tool (nozzle) change." - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:136 -#: AppTools/ToolSolderPaste.py:238 -msgid "" -"The X,Y location for tool (nozzle) change.\n" -"The format is (x, y) where x and y are real numbers." -msgstr "" -"The X,Y location for tool (nozzle) change.\n" -"The format is (x, y) where x and y are real numbers." - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:150 -#: AppTools/ToolSolderPaste.py:251 -msgid "Feedrate (speed) while moving on the X-Y plane." -msgstr "Feedrate (speed) while moving on the X-Y plane." - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:163 -#: AppTools/ToolSolderPaste.py:263 -msgid "" -"Feedrate (speed) while moving vertically\n" -"(on Z plane)." -msgstr "" -"Feedrate (speed) while moving vertically\n" -"(on Z plane)." - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:175 -#: AppTools/ToolSolderPaste.py:274 -msgid "Feedrate Z Dispense" -msgstr "Feedrate Z Dispense" - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:177 -msgid "" -"Feedrate (speed) while moving up vertically\n" -"to Dispense position (on Z plane)." -msgstr "" -"Feedrate (speed) while moving up vertically\n" -"to Dispense position (on Z plane)." - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:188 -#: AppTools/ToolSolderPaste.py:286 -msgid "Spindle Speed FWD" -msgstr "Spindle Speed FWD" - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:190 -#: AppTools/ToolSolderPaste.py:288 -msgid "" -"The dispenser speed while pushing solder paste\n" -"through the dispenser nozzle." -msgstr "" -"The dispenser speed while pushing solder paste\n" -"through the dispenser nozzle." - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:202 -#: AppTools/ToolSolderPaste.py:299 -msgid "Dwell FWD" -msgstr "Dwell FWD" - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:204 -#: AppTools/ToolSolderPaste.py:301 -msgid "Pause after solder dispensing." -msgstr "Pause after solder dispensing." - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:214 -#: AppTools/ToolSolderPaste.py:310 -msgid "Spindle Speed REV" -msgstr "Spindle Speed REV" - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:216 -#: AppTools/ToolSolderPaste.py:312 -msgid "" -"The dispenser speed while retracting solder paste\n" -"through the dispenser nozzle." -msgstr "" -"The dispenser speed while retracting solder paste\n" -"through the dispenser nozzle." - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:228 -#: AppTools/ToolSolderPaste.py:323 -msgid "Dwell REV" -msgstr "Dwell REV" - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:230 -#: AppTools/ToolSolderPaste.py:325 -msgid "" -"Pause after solder paste dispenser retracted,\n" -"to allow pressure equilibrium." -msgstr "" -"Pause after solder paste dispenser retracted,\n" -"to allow pressure equilibrium." - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:239 -#: AppTools/ToolSolderPaste.py:333 -msgid "Files that control the GCode generation." -msgstr "Files that control the GCode generation." - -#: AppGUI/preferences/tools/ToolsSubPrefGroupUI.py:27 -msgid "Substractor Tool Options" -msgstr "Substractor Tool Options" - -#: AppGUI/preferences/tools/ToolsSubPrefGroupUI.py:33 -msgid "" -"A tool to substract one Gerber or Geometry object\n" -"from another of the same type." -msgstr "" -"A tool to substract one Gerber or Geometry object\n" -"from another of the same type." - -#: AppGUI/preferences/tools/ToolsSubPrefGroupUI.py:38 AppTools/ToolSub.py:160 -msgid "Close paths" -msgstr "Close paths" - -#: AppGUI/preferences/tools/ToolsSubPrefGroupUI.py:39 -msgid "" -"Checking this will close the paths cut by the Geometry substractor object." -msgstr "" -"Checking this will close the paths cut by the Geometry substractor object." - -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:27 -msgid "Transform Tool Options" -msgstr "Transform Tool Options" - -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:33 -msgid "" -"Various transformations that can be applied\n" -"on a application object." -msgstr "" -"Various transformations that can be applied\n" -"on a application object." - -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:64 -msgid "Skew" -msgstr "Skew" - -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:105 -#: AppTools/ToolTransform.py:150 -msgid "Factor for scaling on X axis." -msgstr "Factor for scaling on X axis." - -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:118 -#: AppTools/ToolTransform.py:170 -msgid "Factor for scaling on Y axis." -msgstr "Factor for scaling on Y axis." - -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:126 -#: AppTools/ToolTransform.py:191 -msgid "" -"Scale the selected object(s)\n" -"using the Scale_X factor for both axis." -msgstr "" -"Scale the selected object(s)\n" -"using the Scale_X factor for both axis." - -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:134 -#: AppTools/ToolTransform.py:198 -msgid "" -"Scale the selected object(s)\n" -"using the origin reference when checked,\n" -"and the center of the biggest bounding box\n" -"of the selected objects when unchecked." -msgstr "" -"Scale the selected object(s)\n" -"using the origin reference when checked,\n" -"and the center of the biggest bounding box\n" -"of the selected objects when unchecked." - -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:150 -#: AppTools/ToolTransform.py:217 -msgid "X val" -msgstr "X val" - -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:152 -#: AppTools/ToolTransform.py:219 -msgid "Distance to offset on X axis. In current units." -msgstr "Distance to offset on X axis. In current units." - -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:163 -#: AppTools/ToolTransform.py:237 -msgid "Y val" -msgstr "Y val" - -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:165 -#: AppTools/ToolTransform.py:239 -msgid "Distance to offset on Y axis. In current units." -msgstr "Distance to offset on Y axis. In current units." - -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:171 -#: AppTools/ToolDblSided.py:67 AppTools/ToolDblSided.py:95 -#: AppTools/ToolDblSided.py:125 -msgid "Mirror" -msgstr "Mirror" - -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:175 -#: AppTools/ToolTransform.py:283 -msgid "Mirror Reference" -msgstr "Mirror Reference" - -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:177 -#: AppTools/ToolTransform.py:285 -msgid "" -"Flip the selected object(s)\n" -"around the point in Point Entry Field.\n" -"\n" -"The point coordinates can be captured by\n" -"left click on canvas together with pressing\n" -"SHIFT key. \n" -"Then click Add button to insert coordinates.\n" -"Or enter the coords in format (x, y) in the\n" -"Point Entry field and click Flip on X(Y)" -msgstr "" -"Flip the selected object(s)\n" -"around the point in Point Entry Field.\n" -"\n" -"The point coordinates can be captured by\n" -"left click on canvas together with pressing\n" -"SHIFT key. \n" -"Then click Add button to insert coordinates.\n" -"Or enter the coords in format (x, y) in the\n" -"Point Entry field and click Flip on X(Y)" - -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:188 -msgid "Mirror Reference point" -msgstr "Mirror Reference point" - -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:190 -msgid "" -"Coordinates in format (x, y) used as reference for mirroring.\n" -"The 'x' in (x, y) will be used when using Flip on X and\n" -"the 'y' in (x, y) will be used when using Flip on Y and" -msgstr "" -"Coordinates in format (x, y) used as reference for mirroring.\n" -"The 'x' in (x, y) will be used when using Flip on X and\n" -"the 'y' in (x, y) will be used when using Flip on Y and" - -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:203 -#: AppTools/ToolDistance.py:505 AppTools/ToolDistanceMin.py:286 -#: AppTools/ToolTransform.py:332 -msgid "Distance" -msgstr "Distance" - -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:205 -#: AppTools/ToolTransform.py:334 -msgid "" -"A positive value will create the effect of dilation,\n" -"while a negative value will create the effect of erosion.\n" -"Each geometry element of the object will be increased\n" -"or decreased with the 'distance'." -msgstr "" -"A positive value will create the effect of dilation,\n" -"while a negative value will create the effect of erosion.\n" -"Each geometry element of the object will be increased\n" -"or decreased with the 'distance'." - -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:222 -#: AppTools/ToolTransform.py:359 -msgid "" -"A positive value will create the effect of dilation,\n" -"while a negative value will create the effect of erosion.\n" -"Each geometry element of the object will be increased\n" -"or decreased to fit the 'Value'. Value is a percentage\n" -"of the initial dimension." -msgstr "" -"A positive value will create the effect of dilation,\n" -"while a negative value will create the effect of erosion.\n" -"Each geometry element of the object will be increased\n" -"or decreased to fit the 'Value'. Value is a percentage\n" -"of the initial dimension." - -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:241 -#: AppTools/ToolTransform.py:385 -msgid "" -"If checked then the buffer will surround the buffered shape,\n" -"every corner will be rounded.\n" -"If not checked then the buffer will follow the exact geometry\n" -"of the buffered shape." -msgstr "" -"If checked then the buffer will surround the buffered shape,\n" -"every corner will be rounded.\n" -"If not checked then the buffer will follow the exact geometry\n" -"of the buffered shape." - -#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:27 -msgid "Autocompleter Keywords" -msgstr "Autocompleter Keywords" - -#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:30 -#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:40 -#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:30 -#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:30 -msgid "Restore" -msgstr "Restore" - -#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:31 -msgid "Restore the autocompleter keywords list to the default state." -msgstr "Restore the autocompleter keywords list to the default state." - -#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:33 -msgid "Delete all autocompleter keywords from the list." -msgstr "Delete all autocompleter keywords from the list." - -#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:41 -msgid "Keywords list" -msgstr "Keywords list" - -#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:43 -msgid "" -"List of keywords used by\n" -"the autocompleter in FlatCAM.\n" -"The autocompleter is installed\n" -"in the Code Editor and for the Tcl Shell." -msgstr "" -"List of keywords used by\n" -"the autocompleter in FlatCAM.\n" -"The autocompleter is installed\n" -"in the Code Editor and for the Tcl Shell." - -#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:64 -#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:73 -#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:63 -#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:62 -msgid "Extension" -msgstr "Extension" - -#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:65 -msgid "A keyword to be added or deleted to the list." -msgstr "A keyword to be added or deleted to the list." - -#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:73 -msgid "Add keyword" -msgstr "Add keyword" - -#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:74 -msgid "Add a keyword to the list" -msgstr "Add a keyword to the list" - -#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:75 -msgid "Delete keyword" -msgstr "Delete keyword" - -#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:76 -msgid "Delete a keyword from the list" -msgstr "Delete a keyword from the list" - -#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:27 -msgid "Excellon File associations" -msgstr "Excellon File associations" - -#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:41 -#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:31 -#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:31 -msgid "Restore the extension list to the default state." -msgstr "Restore the extension list to the default state." - -#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:43 -#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:33 -#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:33 -msgid "Delete all extensions from the list." -msgstr "Delete all extensions from the list." - -#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:51 -#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:41 -#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:41 -msgid "Extensions list" -msgstr "Extensions list" - -#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:53 -#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:43 -#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:43 -msgid "" -"List of file extensions to be\n" -"associated with FlatCAM." -msgstr "" -"List of file extensions to be\n" -"associated with FlatCAM." - -#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:74 -#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:64 -#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:63 -msgid "A file extension to be added or deleted to the list." -msgstr "A file extension to be added or deleted to the list." - -#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:82 -#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:72 -#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:71 -msgid "Add Extension" -msgstr "Add Extension" - -#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:83 -#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:73 -#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:72 -msgid "Add a file extension to the list" -msgstr "Add a file extension to the list" - -#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:84 -#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:74 -#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:73 -msgid "Delete Extension" -msgstr "Delete Extension" - -#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:85 -#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:75 -#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:74 -msgid "Delete a file extension from the list" -msgstr "Delete a file extension from the list" - -#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:92 -#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:82 -#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:81 -msgid "Apply Association" -msgstr "Apply Association" - -#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:93 -#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:83 -#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:82 -msgid "" -"Apply the file associations between\n" -"FlatCAM and the files with above extensions.\n" -"They will be active after next logon.\n" -"This work only in Windows." -msgstr "" -"Apply the file associations between\n" -"FlatCAM and the files with above extensions.\n" -"They will be active after next logon.\n" -"This work only in Windows." - -#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:27 -msgid "GCode File associations" -msgstr "GCode File associations" - -#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:27 -msgid "Gerber File associations" -msgstr "Gerber File associations" - -#: AppObjects/AppObject.py:134 -#, python-brace-format -msgid "" -"Object ({kind}) failed because: {error} \n" -"\n" -msgstr "" -"Object ({kind}) failed because: {error} \n" -"\n" - -#: AppObjects/AppObject.py:149 -msgid "Converting units to " -msgstr "Converting units to " - -#: AppObjects/AppObject.py:254 -msgid "CREATE A NEW FLATCAM TCL SCRIPT" -msgstr "CREATE A NEW FLATCAM TCL SCRIPT" - -#: AppObjects/AppObject.py:255 -msgid "TCL Tutorial is here" -msgstr "TCL Tutorial is here" - -#: AppObjects/AppObject.py:257 -msgid "FlatCAM commands list" -msgstr "FlatCAM commands list" - -#: AppObjects/AppObject.py:258 -msgid "" -"Type >help< followed by Run Code for a list of FlatCAM Tcl Commands " -"(displayed in Tcl Shell)." -msgstr "" -"Type >help< followed by Run Code for a list of FlatCAM Tcl Commands " -"(displayed in Tcl Shell)." - -#: AppObjects/AppObject.py:304 AppObjects/AppObject.py:310 -#: AppObjects/AppObject.py:316 AppObjects/AppObject.py:322 -#: AppObjects/AppObject.py:328 AppObjects/AppObject.py:334 -msgid "created/selected" -msgstr "created/selected" - -#: AppObjects/FlatCAMCNCJob.py:429 AppObjects/FlatCAMDocument.py:71 -#: AppObjects/FlatCAMScript.py:82 -msgid "Basic" -msgstr "Basic" - -#: AppObjects/FlatCAMCNCJob.py:435 AppObjects/FlatCAMDocument.py:75 -#: AppObjects/FlatCAMScript.py:86 -msgid "Advanced" -msgstr "Advanced" - -#: AppObjects/FlatCAMCNCJob.py:478 -msgid "Plotting..." -msgstr "Plotting..." - -#: AppObjects/FlatCAMCNCJob.py:517 AppTools/ToolSolderPaste.py:1511 -msgid "Export cancelled ..." -msgstr "Export cancelled ..." - -#: AppObjects/FlatCAMCNCJob.py:538 -msgid "File saved to" -msgstr "File saved to" - -#: AppObjects/FlatCAMCNCJob.py:548 AppObjects/FlatCAMScript.py:134 -#: App_Main.py:7301 -msgid "Loading..." -msgstr "Loading..." - -#: AppObjects/FlatCAMCNCJob.py:562 App_Main.py:7398 -msgid "Code Editor" -msgstr "Code Editor" - -#: AppObjects/FlatCAMCNCJob.py:599 AppTools/ToolCalibration.py:1097 -msgid "Loaded Machine Code into Code Editor" -msgstr "Loaded Machine Code into Code Editor" - -#: AppObjects/FlatCAMCNCJob.py:740 -msgid "This CNCJob object can't be processed because it is a" -msgstr "This CNCJob object can't be processed because it is a" - -#: AppObjects/FlatCAMCNCJob.py:742 -msgid "CNCJob object" -msgstr "CNCJob object" - -#: AppObjects/FlatCAMCNCJob.py:922 -msgid "" -"G-code does not have a G94 code and we will not include the code in the " -"'Prepend to GCode' text box" -msgstr "" -"G-code does not have a G94 code and we will not include the code in the " -"'Prepend to GCode' text box" - -#: AppObjects/FlatCAMCNCJob.py:933 -msgid "Cancelled. The Toolchange Custom code is enabled but it's empty." -msgstr "Cancelled. The Toolchange Custom code is enabled but it's empty." - -#: AppObjects/FlatCAMCNCJob.py:938 -msgid "Toolchange G-code was replaced by a custom code." -msgstr "Toolchange G-code was replaced by a custom code." - -#: AppObjects/FlatCAMCNCJob.py:986 AppObjects/FlatCAMCNCJob.py:995 -msgid "" -"The used preprocessor file has to have in it's name: 'toolchange_custom'" -msgstr "" -"The used preprocessor file has to have in it's name: 'toolchange_custom'" - -#: AppObjects/FlatCAMCNCJob.py:998 -msgid "There is no preprocessor file." -msgstr "There is no preprocessor file." - -#: AppObjects/FlatCAMDocument.py:175 -msgid "Document Editor" -msgstr "Document Editor" - -#: AppObjects/FlatCAMExcellon.py:537 AppObjects/FlatCAMExcellon.py:856 -#: AppObjects/FlatCAMGeometry.py:380 AppObjects/FlatCAMGeometry.py:861 -#: AppTools/ToolIsolation.py:1051 AppTools/ToolIsolation.py:1185 -#: AppTools/ToolNCC.py:811 AppTools/ToolNCC.py:1214 AppTools/ToolPaint.py:778 -#: AppTools/ToolPaint.py:1190 -msgid "Multiple Tools" -msgstr "Multiple Tools" - -#: AppObjects/FlatCAMExcellon.py:836 -msgid "No Tool Selected" -msgstr "No Tool Selected" - -#: AppObjects/FlatCAMExcellon.py:1234 AppObjects/FlatCAMExcellon.py:1348 -#: AppObjects/FlatCAMExcellon.py:1535 -msgid "Please select one or more tools from the list and try again." -msgstr "Please select one or more tools from the list and try again." - -#: AppObjects/FlatCAMExcellon.py:1241 -msgid "Milling tool for DRILLS is larger than hole size. Cancelled." -msgstr "Milling tool for DRILLS is larger than hole size. Cancelled." - -#: AppObjects/FlatCAMExcellon.py:1265 AppObjects/FlatCAMExcellon.py:1368 -#: AppObjects/FlatCAMExcellon.py:1553 tclCommands/TclCommandDrillcncjob.py:195 -msgid "Tool_nr" -msgstr "Tool_nr" - -#: AppObjects/FlatCAMExcellon.py:1265 AppObjects/FlatCAMExcellon.py:1368 -#: AppObjects/FlatCAMExcellon.py:1553 tclCommands/TclCommandDrillcncjob.py:195 -msgid "Drills_Nr" -msgstr "Drills_Nr" - -#: AppObjects/FlatCAMExcellon.py:1265 AppObjects/FlatCAMExcellon.py:1368 -#: AppObjects/FlatCAMExcellon.py:1553 tclCommands/TclCommandDrillcncjob.py:195 -msgid "Slots_Nr" -msgstr "Slots_Nr" - -#: AppObjects/FlatCAMExcellon.py:1357 -msgid "Milling tool for SLOTS is larger than hole size. Cancelled." -msgstr "Milling tool for SLOTS is larger than hole size. Cancelled." - -#: AppObjects/FlatCAMExcellon.py:1461 AppObjects/FlatCAMGeometry.py:1636 -msgid "Focus Z" -msgstr "Focus Z" - -#: AppObjects/FlatCAMExcellon.py:1480 AppObjects/FlatCAMGeometry.py:1655 -msgid "Laser Power" -msgstr "Laser Power" - -#: AppObjects/FlatCAMExcellon.py:1610 AppObjects/FlatCAMGeometry.py:2088 -#: AppObjects/FlatCAMGeometry.py:2092 AppObjects/FlatCAMGeometry.py:2243 -msgid "Generating CNC Code" -msgstr "Generating CNC Code" - -#: AppObjects/FlatCAMExcellon.py:1663 AppObjects/FlatCAMGeometry.py:2553 -msgid "Delete failed. There are no exclusion areas to delete." -msgstr "Delete failed. There are no exclusion areas to delete." - -#: AppObjects/FlatCAMExcellon.py:1680 AppObjects/FlatCAMGeometry.py:2570 -msgid "Delete failed. Nothing is selected." -msgstr "Delete failed. Nothing is selected." - -#: AppObjects/FlatCAMExcellon.py:1945 AppTools/ToolIsolation.py:1253 -#: AppTools/ToolNCC.py:918 AppTools/ToolPaint.py:843 -msgid "Current Tool parameters were applied to all tools." -msgstr "Current Tool parameters were applied to all tools." - -#: AppObjects/FlatCAMGeometry.py:124 AppObjects/FlatCAMGeometry.py:1298 -#: AppObjects/FlatCAMGeometry.py:1299 AppObjects/FlatCAMGeometry.py:1308 -msgid "Iso" -msgstr "Iso" - -#: AppObjects/FlatCAMGeometry.py:124 AppObjects/FlatCAMGeometry.py:522 -#: AppObjects/FlatCAMGeometry.py:920 AppObjects/FlatCAMGerber.py:565 -#: AppObjects/FlatCAMGerber.py:708 AppTools/ToolCutOut.py:727 -#: AppTools/ToolCutOut.py:923 AppTools/ToolCutOut.py:1083 -#: AppTools/ToolIsolation.py:1842 AppTools/ToolIsolation.py:1979 -#: AppTools/ToolIsolation.py:2150 -msgid "Rough" -msgstr "Rough" - -#: AppObjects/FlatCAMGeometry.py:124 -msgid "Finish" -msgstr "Finish" - -#: AppObjects/FlatCAMGeometry.py:557 -msgid "Add from Tool DB" -msgstr "Add from Tool DB" - -#: AppObjects/FlatCAMGeometry.py:939 -msgid "Tool added in Tool Table." -msgstr "Tool added in Tool Table." - -#: AppObjects/FlatCAMGeometry.py:1048 AppObjects/FlatCAMGeometry.py:1057 -msgid "Failed. Select a tool to copy." -msgstr "Failed. Select a tool to copy." - -#: AppObjects/FlatCAMGeometry.py:1086 -msgid "Tool was copied in Tool Table." -msgstr "Tool was copied in Tool Table." - -#: AppObjects/FlatCAMGeometry.py:1113 -msgid "Tool was edited in Tool Table." -msgstr "Tool was edited in Tool Table." - -#: AppObjects/FlatCAMGeometry.py:1142 AppObjects/FlatCAMGeometry.py:1151 -msgid "Failed. Select a tool to delete." -msgstr "Failed. Select a tool to delete." - -#: AppObjects/FlatCAMGeometry.py:1175 -msgid "Tool was deleted in Tool Table." -msgstr "Tool was deleted in Tool Table." - -#: AppObjects/FlatCAMGeometry.py:1212 AppObjects/FlatCAMGeometry.py:1221 -msgid "" -"Disabled because the tool is V-shape.\n" -"For V-shape tools the depth of cut is\n" -"calculated from other parameters like:\n" -"- 'V-tip Angle' -> angle at the tip of the tool\n" -"- 'V-tip Dia' -> diameter at the tip of the tool \n" -"- Tool Dia -> 'Dia' column found in the Tool Table\n" -"NB: a value of zero means that Tool Dia = 'V-tip Dia'" -msgstr "" -"Disabled because the tool is V-shape.\n" -"For V-shape tools the depth of cut is\n" -"calculated from other parameters like:\n" -"- 'V-tip Angle' -> angle at the tip of the tool\n" -"- 'V-tip Dia' -> diameter at the tip of the tool \n" -"- Tool Dia -> 'Dia' column found in the Tool Table\n" -"NB: a value of zero means that Tool Dia = 'V-tip Dia'" - -#: AppObjects/FlatCAMGeometry.py:1708 -msgid "This Geometry can't be processed because it is" -msgstr "This Geometry can't be processed because it is" - -#: AppObjects/FlatCAMGeometry.py:1708 -msgid "geometry" -msgstr "geometry" - -#: AppObjects/FlatCAMGeometry.py:1749 -msgid "Failed. No tool selected in the tool table ..." -msgstr "Failed. No tool selected in the tool table ..." - -#: AppObjects/FlatCAMGeometry.py:1847 AppObjects/FlatCAMGeometry.py:1997 -msgid "" -"Tool Offset is selected in Tool Table but no value is provided.\n" -"Add a Tool Offset or change the Offset Type." -msgstr "" -"Tool Offset is selected in Tool Table but no value is provided.\n" -"Add a Tool Offset or change the Offset Type." - -#: AppObjects/FlatCAMGeometry.py:1913 AppObjects/FlatCAMGeometry.py:2059 -msgid "G-Code parsing in progress..." -msgstr "G-Code parsing in progress..." - -#: AppObjects/FlatCAMGeometry.py:1915 AppObjects/FlatCAMGeometry.py:2061 -msgid "G-Code parsing finished..." -msgstr "G-Code parsing finished..." - -#: AppObjects/FlatCAMGeometry.py:1923 -msgid "Finished G-Code processing" -msgstr "Finished G-Code processing" - -#: AppObjects/FlatCAMGeometry.py:1925 AppObjects/FlatCAMGeometry.py:2073 -msgid "G-Code processing failed with error" -msgstr "G-Code processing failed with error" - -#: AppObjects/FlatCAMGeometry.py:1967 AppTools/ToolSolderPaste.py:1309 -msgid "Cancelled. Empty file, it has no geometry" -msgstr "Cancelled. Empty file, it has no geometry" - -#: AppObjects/FlatCAMGeometry.py:2071 AppObjects/FlatCAMGeometry.py:2238 -msgid "Finished G-Code processing..." -msgstr "Finished G-Code processing..." - -#: AppObjects/FlatCAMGeometry.py:2090 AppObjects/FlatCAMGeometry.py:2094 -#: AppObjects/FlatCAMGeometry.py:2245 -msgid "CNCjob created" -msgstr "CNCjob created" - -#: AppObjects/FlatCAMGeometry.py:2276 AppObjects/FlatCAMGeometry.py:2285 -#: AppParsers/ParseGerber.py:1866 AppParsers/ParseGerber.py:1876 -msgid "Scale factor has to be a number: integer or float." -msgstr "Scale factor has to be a number: integer or float." - -#: AppObjects/FlatCAMGeometry.py:2348 -msgid "Geometry Scale done." -msgstr "Geometry Scale done." - -#: AppObjects/FlatCAMGeometry.py:2365 AppParsers/ParseGerber.py:1992 -msgid "" -"An (x,y) pair of values are needed. Probable you entered only one value in " -"the Offset field." -msgstr "" -"An (x,y) pair of values are needed. Probable you entered only one value in " -"the Offset field." - -#: AppObjects/FlatCAMGeometry.py:2421 -msgid "Geometry Offset done." -msgstr "Geometry Offset done." - -#: AppObjects/FlatCAMGeometry.py:2450 -msgid "" -"The Toolchange X,Y field in Edit -> Preferences has to be in the format (x, " -"y)\n" -"but now there is only one value, not two." -msgstr "" -"The Toolchange X,Y field in Edit -> Preferences has to be in the format (x, " -"y)\n" -"but now there is only one value, not two." - -#: AppObjects/FlatCAMGerber.py:388 AppTools/ToolIsolation.py:1577 -msgid "Buffering solid geometry" -msgstr "Buffering solid geometry" - -#: AppObjects/FlatCAMGerber.py:397 AppTools/ToolIsolation.py:1599 -msgid "Done" -msgstr "Done" - -#: AppObjects/FlatCAMGerber.py:423 AppObjects/FlatCAMGerber.py:449 -msgid "Operation could not be done." -msgstr "Operation could not be done." - -#: AppObjects/FlatCAMGerber.py:581 AppObjects/FlatCAMGerber.py:655 -#: AppTools/ToolIsolation.py:1805 AppTools/ToolIsolation.py:2126 -#: AppTools/ToolNCC.py:2117 AppTools/ToolNCC.py:3197 AppTools/ToolNCC.py:3576 -msgid "Isolation geometry could not be generated." -msgstr "Isolation geometry could not be generated." - -#: AppObjects/FlatCAMGerber.py:606 AppObjects/FlatCAMGerber.py:733 -#: AppTools/ToolIsolation.py:1869 AppTools/ToolIsolation.py:2035 -#: AppTools/ToolIsolation.py:2202 -msgid "Isolation geometry created" -msgstr "Isolation geometry created" - -#: AppObjects/FlatCAMGerber.py:1028 -msgid "Plotting Apertures" -msgstr "Plotting Apertures" - -#: AppObjects/FlatCAMObj.py:237 -msgid "Name changed from" -msgstr "Name changed from" - -#: AppObjects/FlatCAMObj.py:237 -msgid "to" -msgstr "to" - -#: AppObjects/FlatCAMObj.py:248 -msgid "Offsetting..." -msgstr "Offsetting..." - -#: AppObjects/FlatCAMObj.py:262 AppObjects/FlatCAMObj.py:267 -msgid "Scaling could not be executed." -msgstr "Scaling could not be executed." - -#: AppObjects/FlatCAMObj.py:271 AppObjects/FlatCAMObj.py:279 -msgid "Scale done." -msgstr "Scale done." - -#: AppObjects/FlatCAMObj.py:277 -msgid "Scaling..." -msgstr "Scaling..." - -#: AppObjects/FlatCAMObj.py:295 -msgid "Skewing..." -msgstr "Skewing..." - -#: AppObjects/FlatCAMScript.py:163 -msgid "Script Editor" -msgstr "Script Editor" - -#: AppObjects/ObjectCollection.py:514 -#, python-brace-format -msgid "Object renamed from {old} to {new}" -msgstr "Object renamed from {old} to {new}" - -#: AppObjects/ObjectCollection.py:926 AppObjects/ObjectCollection.py:932 -#: AppObjects/ObjectCollection.py:938 AppObjects/ObjectCollection.py:944 -#: AppObjects/ObjectCollection.py:950 AppObjects/ObjectCollection.py:956 -#: App_Main.py:6235 App_Main.py:6241 App_Main.py:6247 App_Main.py:6253 -msgid "selected" -msgstr "selected" - -#: AppObjects/ObjectCollection.py:987 -msgid "Cause of error" -msgstr "Cause of error" - -#: AppObjects/ObjectCollection.py:1188 -msgid "All objects are selected." -msgstr "All objects are selected." - -#: AppObjects/ObjectCollection.py:1198 -msgid "Objects selection is cleared." -msgstr "Objects selection is cleared." - -#: AppParsers/ParseExcellon.py:315 -msgid "This is GCODE mark" -msgstr "This is GCODE mark" - -#: AppParsers/ParseExcellon.py:432 -msgid "" -"No tool diameter info's. See shell.\n" -"A tool change event: T" -msgstr "" -"No tool diameter info's. See shell.\n" -"A tool change event: T" - -#: AppParsers/ParseExcellon.py:435 -msgid "" -"was found but the Excellon file have no informations regarding the tool " -"diameters therefore the application will try to load it by using some 'fake' " -"diameters.\n" -"The user needs to edit the resulting Excellon object and change the " -"diameters to reflect the real diameters." -msgstr "" -"was found but the Excellon file have no informations regarding the tool " -"diameters therefore the application will try to load it by using some 'fake' " -"diameters.\n" -"The user needs to edit the resulting Excellon object and change the " -"diameters to reflect the real diameters." - -#: AppParsers/ParseExcellon.py:899 -msgid "" -"Excellon Parser error.\n" -"Parsing Failed. Line" -msgstr "" -"Excellon Parser error.\n" -"Parsing Failed. Line" - -#: AppParsers/ParseExcellon.py:981 -msgid "" -"Excellon.create_geometry() -> a drill location was skipped due of not having " -"a tool associated.\n" -"Check the resulting GCode." -msgstr "" -"Excellon.create_geometry() -> a drill location was skipped due of not having " -"a tool associated.\n" -"Check the resulting GCode." - -#: AppParsers/ParseFont.py:303 -msgid "Font not supported, try another one." -msgstr "Font not supported, try another one." - -#: AppParsers/ParseGerber.py:425 -msgid "Gerber processing. Parsing" -msgstr "Gerber processing. Parsing" - -#: AppParsers/ParseGerber.py:425 AppParsers/ParseHPGL2.py:181 -msgid "lines" -msgstr "lines" - -#: AppParsers/ParseGerber.py:1001 AppParsers/ParseGerber.py:1101 -#: AppParsers/ParseHPGL2.py:274 AppParsers/ParseHPGL2.py:288 -#: AppParsers/ParseHPGL2.py:307 AppParsers/ParseHPGL2.py:331 -#: AppParsers/ParseHPGL2.py:366 -msgid "Coordinates missing, line ignored" -msgstr "Coordinates missing, line ignored" - -#: AppParsers/ParseGerber.py:1003 AppParsers/ParseGerber.py:1103 -msgid "GERBER file might be CORRUPT. Check the file !!!" -msgstr "GERBER file might be CORRUPT. Check the file !!!" - -#: AppParsers/ParseGerber.py:1057 -msgid "" -"Region does not have enough points. File will be processed but there are " -"parser errors. Line number" -msgstr "" -"Region does not have enough points. File will be processed but there are " -"parser errors. Line number" - -#: AppParsers/ParseGerber.py:1487 AppParsers/ParseHPGL2.py:401 -msgid "Gerber processing. Joining polygons" -msgstr "Gerber processing. Joining polygons" - -#: AppParsers/ParseGerber.py:1504 -msgid "Gerber processing. Applying Gerber polarity." -msgstr "Gerber processing. Applying Gerber polarity." - -#: AppParsers/ParseGerber.py:1564 -msgid "Gerber Line" -msgstr "Gerber Line" - -#: AppParsers/ParseGerber.py:1564 -msgid "Gerber Line Content" -msgstr "Gerber Line Content" - -#: AppParsers/ParseGerber.py:1566 -msgid "Gerber Parser ERROR" -msgstr "Gerber Parser ERROR" - -#: AppParsers/ParseGerber.py:1956 -msgid "Gerber Scale done." -msgstr "Gerber Scale done." - -#: AppParsers/ParseGerber.py:2048 -msgid "Gerber Offset done." -msgstr "Gerber Offset done." - -#: AppParsers/ParseGerber.py:2124 -msgid "Gerber Mirror done." -msgstr "Gerber Mirror done." - -#: AppParsers/ParseGerber.py:2198 -msgid "Gerber Skew done." -msgstr "Gerber Skew done." - -#: AppParsers/ParseGerber.py:2260 -msgid "Gerber Rotate done." -msgstr "Gerber Rotate done." - -#: AppParsers/ParseGerber.py:2417 -msgid "Gerber Buffer done." -msgstr "Gerber Buffer done." - -#: AppParsers/ParseHPGL2.py:181 -msgid "HPGL2 processing. Parsing" -msgstr "HPGL2 processing. Parsing" - -#: AppParsers/ParseHPGL2.py:413 -msgid "HPGL2 Line" -msgstr "HPGL2 Line" - -#: AppParsers/ParseHPGL2.py:413 -msgid "HPGL2 Line Content" -msgstr "HPGL2 Line Content" - -#: AppParsers/ParseHPGL2.py:414 -msgid "HPGL2 Parser ERROR" -msgstr "HPGL2 Parser ERROR" - -#: AppProcess.py:172 +#: FlatCAMProcess.py:172 msgid "processes running." msgstr "processes running." -#: AppTools/ToolAlignObjects.py:32 -msgid "Align Objects" -msgstr "Align Objects" +#: FlatCAMTool.py:245 FlatCAMTool.py:252 flatcamGUI/ObjectUI.py:157 +#: flatcamGUI/ObjectUI.py:164 +msgid "Edited value is out of range" +msgstr "Edited value is out of range" -#: AppTools/ToolAlignObjects.py:61 -msgid "MOVING object" -msgstr "MOVING object" +#: FlatCAMTool.py:247 FlatCAMTool.py:254 flatcamGUI/ObjectUI.py:159 +#: flatcamGUI/ObjectUI.py:166 +msgid "Edited value is within limits." +msgstr "Edited value is within limits." -#: AppTools/ToolAlignObjects.py:65 -msgid "" -"Specify the type of object to be aligned.\n" -"It can be of type: Gerber or Excellon.\n" -"The selection here decide the type of objects that will be\n" -"in the Object combobox." -msgstr "" -"Specify the type of object to be aligned.\n" -"It can be of type: Gerber or Excellon.\n" -"The selection here decide the type of objects that will be\n" -"in the Object combobox." - -#: AppTools/ToolAlignObjects.py:86 -msgid "Object to be aligned." -msgstr "Object to be aligned." - -#: AppTools/ToolAlignObjects.py:98 -msgid "TARGET object" -msgstr "TARGET object" - -#: AppTools/ToolAlignObjects.py:100 -msgid "" -"Specify the type of object to be aligned to.\n" -"It can be of type: Gerber or Excellon.\n" -"The selection here decide the type of objects that will be\n" -"in the Object combobox." -msgstr "" -"Specify the type of object to be aligned to.\n" -"It can be of type: Gerber or Excellon.\n" -"The selection here decide the type of objects that will be\n" -"in the Object combobox." - -#: AppTools/ToolAlignObjects.py:122 -msgid "Object to be aligned to. Aligner." -msgstr "Object to be aligned to. Aligner." - -#: AppTools/ToolAlignObjects.py:135 -msgid "Alignment Type" -msgstr "Alignment Type" - -#: AppTools/ToolAlignObjects.py:137 -msgid "" -"The type of alignment can be:\n" -"- Single Point -> it require a single point of sync, the action will be a " -"translation\n" -"- Dual Point -> it require two points of sync, the action will be " -"translation followed by rotation" -msgstr "" -"The type of alignment can be:\n" -"- Single Point -> it require a single point of sync, the action will be a " -"translation\n" -"- Dual Point -> it require two points of sync, the action will be " -"translation followed by rotation" - -#: AppTools/ToolAlignObjects.py:143 -msgid "Single Point" -msgstr "Single Point" - -#: AppTools/ToolAlignObjects.py:144 -msgid "Dual Point" -msgstr "Dual Point" - -#: AppTools/ToolAlignObjects.py:159 -msgid "Align Object" -msgstr "Align Object" - -#: AppTools/ToolAlignObjects.py:161 -msgid "" -"Align the specified object to the aligner object.\n" -"If only one point is used then it assumes translation.\n" -"If tho points are used it assume translation and rotation." -msgstr "" -"Align the specified object to the aligner object.\n" -"If only one point is used then it assumes translation.\n" -"If tho points are used it assume translation and rotation." - -#: AppTools/ToolAlignObjects.py:176 AppTools/ToolCalculators.py:246 -#: AppTools/ToolCalibration.py:683 AppTools/ToolCopperThieving.py:488 -#: AppTools/ToolCorners.py:182 AppTools/ToolCutOut.py:362 -#: AppTools/ToolDblSided.py:471 AppTools/ToolEtchCompensation.py:240 -#: AppTools/ToolExtractDrills.py:310 AppTools/ToolFiducials.py:321 -#: AppTools/ToolFilm.py:503 AppTools/ToolInvertGerber.py:143 -#: AppTools/ToolIsolation.py:591 AppTools/ToolNCC.py:612 -#: AppTools/ToolOptimal.py:243 AppTools/ToolPaint.py:555 -#: AppTools/ToolPanelize.py:280 AppTools/ToolPunchGerber.py:339 -#: AppTools/ToolQRCode.py:323 AppTools/ToolRulesCheck.py:516 -#: AppTools/ToolSolderPaste.py:481 AppTools/ToolSub.py:181 -#: AppTools/ToolTransform.py:398 -msgid "Reset Tool" -msgstr "Reset Tool" - -#: AppTools/ToolAlignObjects.py:178 AppTools/ToolCalculators.py:248 -#: AppTools/ToolCalibration.py:685 AppTools/ToolCopperThieving.py:490 -#: AppTools/ToolCorners.py:184 AppTools/ToolCutOut.py:364 -#: AppTools/ToolDblSided.py:473 AppTools/ToolEtchCompensation.py:242 -#: AppTools/ToolExtractDrills.py:312 AppTools/ToolFiducials.py:323 -#: AppTools/ToolFilm.py:505 AppTools/ToolInvertGerber.py:145 -#: AppTools/ToolIsolation.py:593 AppTools/ToolNCC.py:614 -#: AppTools/ToolOptimal.py:245 AppTools/ToolPaint.py:557 -#: AppTools/ToolPanelize.py:282 AppTools/ToolPunchGerber.py:341 -#: AppTools/ToolQRCode.py:325 AppTools/ToolRulesCheck.py:518 -#: AppTools/ToolSolderPaste.py:483 AppTools/ToolSub.py:183 -#: AppTools/ToolTransform.py:400 -msgid "Will reset the tool parameters." -msgstr "Will reset the tool parameters." - -#: AppTools/ToolAlignObjects.py:244 -msgid "Align Tool" -msgstr "Align Tool" - -#: AppTools/ToolAlignObjects.py:289 -msgid "There is no aligned FlatCAM object selected..." -msgstr "There is no aligned FlatCAM object selected..." - -#: AppTools/ToolAlignObjects.py:299 -msgid "There is no aligner FlatCAM object selected..." -msgstr "There is no aligner FlatCAM object selected..." - -#: AppTools/ToolAlignObjects.py:321 AppTools/ToolAlignObjects.py:385 -msgid "First Point" -msgstr "First Point" - -#: AppTools/ToolAlignObjects.py:321 AppTools/ToolAlignObjects.py:400 -msgid "Click on the START point." -msgstr "Click on the START point." - -#: AppTools/ToolAlignObjects.py:380 AppTools/ToolCalibration.py:920 -msgid "Cancelled by user request." -msgstr "Cancelled by user request." - -#: AppTools/ToolAlignObjects.py:385 AppTools/ToolAlignObjects.py:407 -msgid "Click on the DESTINATION point." -msgstr "Click on the DESTINATION point." - -#: AppTools/ToolAlignObjects.py:385 AppTools/ToolAlignObjects.py:400 -#: AppTools/ToolAlignObjects.py:407 -msgid "Or right click to cancel." -msgstr "Or right click to cancel." - -#: AppTools/ToolAlignObjects.py:400 AppTools/ToolAlignObjects.py:407 -#: AppTools/ToolFiducials.py:107 -msgid "Second Point" -msgstr "Second Point" - -#: AppTools/ToolCalculators.py:24 -msgid "Calculators" -msgstr "Calculators" - -#: AppTools/ToolCalculators.py:26 -msgid "Units Calculator" -msgstr "Units Calculator" - -#: AppTools/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" - -#: AppTools/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" - -#: AppTools/ToolCalculators.py:111 -msgid "" -"This is the angle of the tip of the tool.\n" -"It is specified by manufacturer." -msgstr "" -"This is the angle of the tip of the tool.\n" -"It is specified by manufacturer." - -#: AppTools/ToolCalculators.py:120 -msgid "" -"This is the depth to cut into the material.\n" -"In the CNCJob is the CutZ parameter." -msgstr "" -"This is the depth to cut into the material.\n" -"In the CNCJob is the CutZ parameter." - -#: AppTools/ToolCalculators.py:128 -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 "" -"This is the tool diameter to be entered into\n" -"FlatCAM Gerber section.\n" -"In the CNCJob section it is called >Tool dia<." - -#: AppTools/ToolCalculators.py:139 AppTools/ToolCalculators.py:235 -msgid "Calculate" -msgstr "Calculate" - -#: AppTools/ToolCalculators.py:142 -msgid "" -"Calculate either the Cut Z or the effective tool diameter,\n" -" depending on which is desired and which is known. " -msgstr "" -"Calculate either the Cut Z or the effective tool diameter,\n" -" depending on which is desired and which is known. " - -#: AppTools/ToolCalculators.py:205 -msgid "Current Value" -msgstr "Current Value" - -#: AppTools/ToolCalculators.py:212 -msgid "" -"This is the current intensity value\n" -"to be set on the Power Supply. In Amps." -msgstr "" -"This is the current intensity value\n" -"to be set on the Power Supply. In Amps." - -#: AppTools/ToolCalculators.py:216 -msgid "Time" -msgstr "Time" - -#: AppTools/ToolCalculators.py:223 -msgid "" -"This is the calculated time required for the procedure.\n" -"In minutes." -msgstr "" -"This is the calculated time required for the procedure.\n" -"In minutes." - -#: AppTools/ToolCalculators.py:238 -msgid "" -"Calculate the current intensity value and the procedure time,\n" -"depending on the parameters above" -msgstr "" -"Calculate the current intensity value and the procedure time,\n" -"depending on the parameters above" - -#: AppTools/ToolCalculators.py:299 -msgid "Calc. Tool" -msgstr "Calc. Tool" - -#: AppTools/ToolCalibration.py:69 -msgid "Parameters used when creating the GCode in this tool." -msgstr "Parameters used when creating the GCode in this tool." - -#: AppTools/ToolCalibration.py:173 -msgid "STEP 1: Acquire Calibration Points" -msgstr "STEP 1: Acquire Calibration Points" - -#: AppTools/ToolCalibration.py:175 -msgid "" -"Pick four points by clicking on canvas.\n" -"Those four points should be in the four\n" -"(as much as possible) corners of the object." -msgstr "" -"Pick four points by clicking on canvas.\n" -"Those four points should be in the four\n" -"(as much as possible) corners of the object." - -#: AppTools/ToolCalibration.py:193 AppTools/ToolFilm.py:71 -#: AppTools/ToolImage.py:54 AppTools/ToolPanelize.py:77 -#: AppTools/ToolProperties.py:177 -msgid "Object Type" -msgstr "Object Type" - -#: AppTools/ToolCalibration.py:210 -msgid "Source object selection" -msgstr "Source object selection" - -#: AppTools/ToolCalibration.py:212 -msgid "FlatCAM Object to be used as a source for reference points." -msgstr "FlatCAM Object to be used as a source for reference points." - -#: AppTools/ToolCalibration.py:218 -msgid "Calibration Points" -msgstr "Calibration Points" - -#: AppTools/ToolCalibration.py:220 -msgid "" -"Contain the expected calibration points and the\n" -"ones measured." -msgstr "" -"Contain the expected calibration points and the\n" -"ones measured." - -#: AppTools/ToolCalibration.py:235 AppTools/ToolSub.py:81 -#: AppTools/ToolSub.py:136 -msgid "Target" -msgstr "Target" - -#: AppTools/ToolCalibration.py:236 -msgid "Found Delta" -msgstr "Found Delta" - -#: AppTools/ToolCalibration.py:248 -msgid "Bot Left X" -msgstr "Bot Left X" - -#: AppTools/ToolCalibration.py:257 -msgid "Bot Left Y" -msgstr "Bot Left Y" - -#: AppTools/ToolCalibration.py:275 -msgid "Bot Right X" -msgstr "Bot Right X" - -#: AppTools/ToolCalibration.py:285 -msgid "Bot Right Y" -msgstr "Bot Right Y" - -#: AppTools/ToolCalibration.py:300 -msgid "Top Left X" -msgstr "Top Left X" - -#: AppTools/ToolCalibration.py:309 -msgid "Top Left Y" -msgstr "Top Left Y" - -#: AppTools/ToolCalibration.py:324 -msgid "Top Right X" -msgstr "Top Right X" - -#: AppTools/ToolCalibration.py:334 -msgid "Top Right Y" -msgstr "Top Right Y" - -#: AppTools/ToolCalibration.py:367 -msgid "Get Points" -msgstr "Get Points" - -#: AppTools/ToolCalibration.py:369 -msgid "" -"Pick four points by clicking on canvas if the source choice\n" -"is 'free' or inside the object geometry if the source is 'object'.\n" -"Those four points should be in the four squares of\n" -"the object." -msgstr "" -"Pick four points by clicking on canvas if the source choice\n" -"is 'free' or inside the object geometry if the source is 'object'.\n" -"Those four points should be in the four squares of\n" -"the object." - -#: AppTools/ToolCalibration.py:390 -msgid "STEP 2: Verification GCode" -msgstr "STEP 2: Verification GCode" - -#: AppTools/ToolCalibration.py:392 AppTools/ToolCalibration.py:405 -msgid "" -"Generate GCode file to locate and align the PCB by using\n" -"the four points acquired above.\n" -"The points sequence is:\n" -"- first point -> set the origin\n" -"- second point -> alignment point. Can be: top-left or bottom-right.\n" -"- third point -> check point. Can be: top-left or bottom-right.\n" -"- forth point -> final verification point. Just for evaluation." -msgstr "" -"Generate GCode file to locate and align the PCB by using\n" -"the four points acquired above.\n" -"The points sequence is:\n" -"- first point -> set the origin\n" -"- second point -> alignment point. Can be: top-left or bottom-right.\n" -"- third point -> check point. Can be: top-left or bottom-right.\n" -"- forth point -> final verification point. Just for evaluation." - -#: AppTools/ToolCalibration.py:403 AppTools/ToolSolderPaste.py:344 -msgid "Generate GCode" -msgstr "Generate GCode" - -#: AppTools/ToolCalibration.py:429 -msgid "STEP 3: Adjustments" -msgstr "STEP 3: Adjustments" - -#: AppTools/ToolCalibration.py:431 AppTools/ToolCalibration.py:440 -msgid "" -"Calculate Scale and Skew factors based on the differences (delta)\n" -"found when checking the PCB pattern. The differences must be filled\n" -"in the fields Found (Delta)." -msgstr "" -"Calculate Scale and Skew factors based on the differences (delta)\n" -"found when checking the PCB pattern. The differences must be filled\n" -"in the fields Found (Delta)." - -#: AppTools/ToolCalibration.py:438 -msgid "Calculate Factors" -msgstr "Calculate Factors" - -#: AppTools/ToolCalibration.py:460 -msgid "STEP 4: Adjusted GCode" -msgstr "STEP 4: Adjusted GCode" - -#: AppTools/ToolCalibration.py:462 -msgid "" -"Generate verification GCode file adjusted with\n" -"the factors above." -msgstr "" -"Generate verification GCode file adjusted with\n" -"the factors above." - -#: AppTools/ToolCalibration.py:467 -msgid "Scale Factor X:" -msgstr "Scale Factor X:" - -#: AppTools/ToolCalibration.py:479 -msgid "Scale Factor Y:" -msgstr "Scale Factor Y:" - -#: AppTools/ToolCalibration.py:491 -msgid "Apply Scale Factors" -msgstr "Apply Scale Factors" - -#: AppTools/ToolCalibration.py:493 -msgid "Apply Scale factors on the calibration points." -msgstr "Apply Scale factors on the calibration points." - -#: AppTools/ToolCalibration.py:503 -msgid "Skew Angle X:" -msgstr "Skew Angle X:" - -#: AppTools/ToolCalibration.py:516 -msgid "Skew Angle Y:" -msgstr "Skew Angle Y:" - -#: AppTools/ToolCalibration.py:529 -msgid "Apply Skew Factors" -msgstr "Apply Skew Factors" - -#: AppTools/ToolCalibration.py:531 -msgid "Apply Skew factors on the calibration points." -msgstr "Apply Skew factors on the calibration points." - -#: AppTools/ToolCalibration.py:600 -msgid "Generate Adjusted GCode" -msgstr "Generate Adjusted GCode" - -#: AppTools/ToolCalibration.py:602 -msgid "" -"Generate verification GCode file adjusted with\n" -"the factors set above.\n" -"The GCode parameters can be readjusted\n" -"before clicking this button." -msgstr "" -"Generate verification GCode file adjusted with\n" -"the factors set above.\n" -"The GCode parameters can be readjusted\n" -"before clicking this button." - -#: AppTools/ToolCalibration.py:623 -msgid "STEP 5: Calibrate FlatCAM Objects" -msgstr "STEP 5: Calibrate FlatCAM Objects" - -#: AppTools/ToolCalibration.py:625 -msgid "" -"Adjust the FlatCAM objects\n" -"with the factors determined and verified above." -msgstr "" -"Adjust the FlatCAM objects\n" -"with the factors determined and verified above." - -#: AppTools/ToolCalibration.py:637 -msgid "Adjusted object type" -msgstr "Adjusted object type" - -#: AppTools/ToolCalibration.py:638 -msgid "Type of the FlatCAM Object to be adjusted." -msgstr "Type of the FlatCAM Object to be adjusted." - -#: AppTools/ToolCalibration.py:651 -msgid "Adjusted object selection" -msgstr "Adjusted object selection" - -#: AppTools/ToolCalibration.py:653 -msgid "The FlatCAM Object to be adjusted." -msgstr "The FlatCAM Object to be adjusted." - -#: AppTools/ToolCalibration.py:660 -msgid "Calibrate" -msgstr "Calibrate" - -#: AppTools/ToolCalibration.py:662 -msgid "" -"Adjust (scale and/or skew) the objects\n" -"with the factors determined above." -msgstr "" -"Adjust (scale and/or skew) the objects\n" -"with the factors determined above." - -#: AppTools/ToolCalibration.py:770 AppTools/ToolCalibration.py:771 -msgid "Origin" -msgstr "Origin" - -#: AppTools/ToolCalibration.py:800 -msgid "Tool initialized" -msgstr "Tool initialized" - -#: AppTools/ToolCalibration.py:838 -msgid "There is no source FlatCAM object selected..." -msgstr "There is no source FlatCAM object selected..." - -#: AppTools/ToolCalibration.py:859 -msgid "Get First calibration point. Bottom Left..." -msgstr "Get First calibration point. Bottom Left..." - -#: AppTools/ToolCalibration.py:926 -msgid "Get Second calibration point. Bottom Right (Top Left)..." -msgstr "Get Second calibration point. Bottom Right (Top Left)..." - -#: AppTools/ToolCalibration.py:930 -msgid "Get Third calibration point. Top Left (Bottom Right)..." -msgstr "Get Third calibration point. Top Left (Bottom Right)..." - -#: AppTools/ToolCalibration.py:934 -msgid "Get Forth calibration point. Top Right..." -msgstr "Get Forth calibration point. Top Right..." - -#: AppTools/ToolCalibration.py:938 -msgid "Done. All four points have been acquired." -msgstr "Done. All four points have been acquired." - -#: AppTools/ToolCalibration.py:969 -msgid "Verification GCode for FlatCAM Calibration Tool" -msgstr "Verification GCode for FlatCAM Calibration Tool" - -#: AppTools/ToolCalibration.py:981 AppTools/ToolCalibration.py:1067 -msgid "Gcode Viewer" -msgstr "Gcode Viewer" - -#: AppTools/ToolCalibration.py:997 -msgid "Cancelled. Four points are needed for GCode generation." -msgstr "Cancelled. Four points are needed for GCode generation." - -#: AppTools/ToolCalibration.py:1253 AppTools/ToolCalibration.py:1349 -msgid "There is no FlatCAM object selected..." -msgstr "There is no FlatCAM object selected..." - -#: AppTools/ToolCopperThieving.py:76 AppTools/ToolFiducials.py:264 -msgid "Gerber Object to which will be added a copper thieving." -msgstr "Gerber Object to which will be added a copper thieving." - -#: AppTools/ToolCopperThieving.py:102 -msgid "" -"This set the distance between the copper thieving components\n" -"(the polygon fill may be split in multiple polygons)\n" -"and the copper traces in the Gerber file." -msgstr "" -"This set the distance between the copper thieving components\n" -"(the polygon fill may be split in multiple polygons)\n" -"and the copper traces in the Gerber file." - -#: AppTools/ToolCopperThieving.py:135 -msgid "" -"- 'Itself' - the copper thieving extent is based on the object extent.\n" -"- 'Area Selection' - left mouse click to start selection of the area to be " -"filled.\n" -"- 'Reference Object' - will do copper thieving within the area specified by " -"another object." -msgstr "" -"- 'Itself' - the copper thieving extent is based on the object extent.\n" -"- 'Area Selection' - left mouse click to start selection of the area to be " -"filled.\n" -"- 'Reference Object' - will do copper thieving within the area specified by " -"another object." - -#: AppTools/ToolCopperThieving.py:142 AppTools/ToolIsolation.py:511 -#: AppTools/ToolNCC.py:552 AppTools/ToolPaint.py:495 -msgid "Ref. Type" -msgstr "Ref. Type" - -#: AppTools/ToolCopperThieving.py:144 -msgid "" -"The type of FlatCAM object to be used as copper thieving reference.\n" -"It can be Gerber, Excellon or Geometry." -msgstr "" -"The type of FlatCAM object to be used as copper thieving reference.\n" -"It can be Gerber, Excellon or Geometry." - -#: AppTools/ToolCopperThieving.py:153 AppTools/ToolIsolation.py:522 -#: AppTools/ToolNCC.py:562 AppTools/ToolPaint.py:505 -msgid "Ref. Object" -msgstr "Ref. Object" - -#: AppTools/ToolCopperThieving.py:155 AppTools/ToolIsolation.py:524 -#: AppTools/ToolNCC.py:564 AppTools/ToolPaint.py:507 -msgid "The FlatCAM object to be used as non copper clearing reference." -msgstr "The FlatCAM object to be used as non copper clearing reference." - -#: AppTools/ToolCopperThieving.py:331 -msgid "Insert Copper thieving" -msgstr "Insert Copper thieving" - -#: AppTools/ToolCopperThieving.py:333 -msgid "" -"Will add a polygon (may be split in multiple parts)\n" -"that will surround the actual Gerber traces at a certain distance." -msgstr "" -"Will add a polygon (may be split in multiple parts)\n" -"that will surround the actual Gerber traces at a certain distance." - -#: AppTools/ToolCopperThieving.py:392 -msgid "Insert Robber Bar" -msgstr "Insert Robber Bar" - -#: AppTools/ToolCopperThieving.py:394 -msgid "" -"Will add a polygon with a defined thickness\n" -"that will surround the actual Gerber object\n" -"at a certain distance.\n" -"Required when doing holes pattern plating." -msgstr "" -"Will add a polygon with a defined thickness\n" -"that will surround the actual Gerber object\n" -"at a certain distance.\n" -"Required when doing holes pattern plating." - -#: AppTools/ToolCopperThieving.py:418 -msgid "Select Soldermask object" -msgstr "Select Soldermask object" - -#: AppTools/ToolCopperThieving.py:420 -msgid "" -"Gerber Object with the soldermask.\n" -"It will be used as a base for\n" -"the pattern plating mask." -msgstr "" -"Gerber Object with the soldermask.\n" -"It will be used as a base for\n" -"the pattern plating mask." - -#: AppTools/ToolCopperThieving.py:449 -msgid "Plated area" -msgstr "Plated area" - -#: AppTools/ToolCopperThieving.py:451 -msgid "" -"The area to be plated by pattern plating.\n" -"Basically is made from the openings in the plating mask.\n" -"\n" -"<> - the calculated area is actually a bit larger\n" -"due of the fact that the soldermask openings are by design\n" -"a bit larger than the copper pads, and this area is\n" -"calculated from the soldermask openings." -msgstr "" -"The area to be plated by pattern plating.\n" -"Basically is made from the openings in the plating mask.\n" -"\n" -"<> - the calculated area is actually a bit larger\n" -"due of the fact that the soldermask openings are by design\n" -"a bit larger than the copper pads, and this area is\n" -"calculated from the soldermask openings." - -#: AppTools/ToolCopperThieving.py:462 -msgid "mm" -msgstr "mm" - -#: AppTools/ToolCopperThieving.py:464 -msgid "in" -msgstr "in" - -#: AppTools/ToolCopperThieving.py:471 -msgid "Generate pattern plating mask" -msgstr "Generate pattern plating mask" - -#: AppTools/ToolCopperThieving.py:473 -msgid "" -"Will add to the soldermask gerber geometry\n" -"the geometries of the copper thieving and/or\n" -"the robber bar if those were generated." -msgstr "" -"Will add to the soldermask gerber geometry\n" -"the geometries of the copper thieving and/or\n" -"the robber bar if those were generated." - -#: AppTools/ToolCopperThieving.py:629 AppTools/ToolCopperThieving.py:654 -msgid "Lines Grid works only for 'itself' reference ..." -msgstr "Lines Grid works only for 'itself' reference ..." - -#: AppTools/ToolCopperThieving.py:640 -msgid "Solid fill selected." -msgstr "Solid fill selected." - -#: AppTools/ToolCopperThieving.py:645 -msgid "Dots grid fill selected." -msgstr "Dots grid fill selected." - -#: AppTools/ToolCopperThieving.py:650 -msgid "Squares grid fill selected." -msgstr "Squares grid fill selected." - -#: AppTools/ToolCopperThieving.py:671 AppTools/ToolCopperThieving.py:753 -#: AppTools/ToolCopperThieving.py:1355 AppTools/ToolCorners.py:268 -#: AppTools/ToolDblSided.py:657 AppTools/ToolExtractDrills.py:436 -#: AppTools/ToolFiducials.py:470 AppTools/ToolFiducials.py:747 -#: AppTools/ToolOptimal.py:348 AppTools/ToolPunchGerber.py:512 -#: AppTools/ToolQRCode.py:435 -msgid "There is no Gerber object loaded ..." -msgstr "There is no Gerber object loaded ..." - -#: AppTools/ToolCopperThieving.py:684 AppTools/ToolCopperThieving.py:1283 -msgid "Append geometry" -msgstr "Append geometry" - -#: AppTools/ToolCopperThieving.py:728 AppTools/ToolCopperThieving.py:1316 -#: AppTools/ToolCopperThieving.py:1469 -msgid "Append source file" -msgstr "Append source file" - -#: AppTools/ToolCopperThieving.py:736 AppTools/ToolCopperThieving.py:1324 -msgid "Copper Thieving Tool done." -msgstr "Copper Thieving Tool done." - -#: AppTools/ToolCopperThieving.py:763 AppTools/ToolCopperThieving.py:796 -#: AppTools/ToolCutOut.py:556 AppTools/ToolCutOut.py:761 -#: AppTools/ToolEtchCompensation.py:360 AppTools/ToolInvertGerber.py:211 -#: AppTools/ToolIsolation.py:1585 AppTools/ToolIsolation.py:1612 -#: AppTools/ToolNCC.py:1617 AppTools/ToolNCC.py:1661 AppTools/ToolNCC.py:1690 -#: AppTools/ToolPaint.py:1493 AppTools/ToolPanelize.py:423 -#: AppTools/ToolPanelize.py:437 AppTools/ToolSub.py:295 AppTools/ToolSub.py:308 -#: AppTools/ToolSub.py:499 AppTools/ToolSub.py:514 -#: tclCommands/TclCommandCopperClear.py:97 tclCommands/TclCommandPaint.py:99 -msgid "Could not retrieve object" -msgstr "Could not retrieve object" - -#: AppTools/ToolCopperThieving.py:773 AppTools/ToolIsolation.py:1672 -#: AppTools/ToolNCC.py:1669 Common.py:210 -msgid "Click the start point of the area." -msgstr "Click the start point of the area." - -#: AppTools/ToolCopperThieving.py:824 -msgid "Click the end point of the filling area." -msgstr "Click the end point of the filling area." - -#: AppTools/ToolCopperThieving.py:830 AppTools/ToolIsolation.py:2504 -#: AppTools/ToolIsolation.py:2556 AppTools/ToolNCC.py:1731 -#: AppTools/ToolNCC.py:1783 AppTools/ToolPaint.py:1625 -#: AppTools/ToolPaint.py:1676 Common.py:275 Common.py:377 -msgid "Zone added. Click to start adding next zone or right click to finish." -msgstr "Zone added. Click to start adding next zone or right click to finish." - -#: AppTools/ToolCopperThieving.py:952 AppTools/ToolCopperThieving.py:956 -#: AppTools/ToolCopperThieving.py:1017 -msgid "Thieving" -msgstr "Thieving" - -#: AppTools/ToolCopperThieving.py:963 -msgid "Copper Thieving Tool started. Reading parameters." -msgstr "Copper Thieving Tool started. Reading parameters." - -#: AppTools/ToolCopperThieving.py:988 -msgid "Copper Thieving Tool. Preparing isolation polygons." -msgstr "Copper Thieving Tool. Preparing isolation polygons." - -#: AppTools/ToolCopperThieving.py:1033 -msgid "Copper Thieving Tool. Preparing areas to fill with copper." -msgstr "Copper Thieving Tool. Preparing areas to fill with copper." - -#: AppTools/ToolCopperThieving.py:1044 AppTools/ToolOptimal.py:355 -#: AppTools/ToolPanelize.py:810 AppTools/ToolRulesCheck.py:1127 -msgid "Working..." -msgstr "Working..." - -#: AppTools/ToolCopperThieving.py:1071 -msgid "Geometry not supported for bounding box" -msgstr "Geometry not supported for bounding box" - -#: AppTools/ToolCopperThieving.py:1077 AppTools/ToolNCC.py:1962 -#: AppTools/ToolNCC.py:2017 AppTools/ToolNCC.py:3052 AppTools/ToolPaint.py:3405 -msgid "No object available." -msgstr "No object available." - -#: AppTools/ToolCopperThieving.py:1114 AppTools/ToolNCC.py:1987 -#: AppTools/ToolNCC.py:2040 AppTools/ToolNCC.py:3094 -msgid "The reference object type is not supported." -msgstr "The reference object type is not supported." - -#: AppTools/ToolCopperThieving.py:1119 -msgid "Copper Thieving Tool. Appending new geometry and buffering." -msgstr "Copper Thieving Tool. Appending new geometry and buffering." - -#: AppTools/ToolCopperThieving.py:1135 -msgid "Create geometry" -msgstr "Create geometry" - -#: AppTools/ToolCopperThieving.py:1335 AppTools/ToolCopperThieving.py:1339 -msgid "P-Plating Mask" -msgstr "P-Plating Mask" - -#: AppTools/ToolCopperThieving.py:1361 -msgid "Append PP-M geometry" -msgstr "Append PP-M geometry" - -#: AppTools/ToolCopperThieving.py:1487 -msgid "Generating Pattern Plating Mask done." -msgstr "Generating Pattern Plating Mask done." - -#: AppTools/ToolCopperThieving.py:1559 -msgid "Copper Thieving Tool exit." -msgstr "Copper Thieving Tool exit." - -#: AppTools/ToolCorners.py:57 -msgid "The Gerber object to which will be added corner markers." -msgstr "The Gerber object to which will be added corner markers." - -#: AppTools/ToolCorners.py:73 -msgid "Locations" -msgstr "Locations" - -#: AppTools/ToolCorners.py:75 -msgid "Locations where to place corner markers." -msgstr "Locations where to place corner markers." - -#: AppTools/ToolCorners.py:92 AppTools/ToolFiducials.py:95 -msgid "Top Right" -msgstr "Top Right" - -#: AppTools/ToolCorners.py:101 -msgid "Toggle ALL" -msgstr "Toggle ALL" - -#: AppTools/ToolCorners.py:167 -msgid "Add Marker" -msgstr "Add Marker" - -#: AppTools/ToolCorners.py:169 -msgid "Will add corner markers to the selected Gerber file." -msgstr "Will add corner markers to the selected Gerber file." - -#: AppTools/ToolCorners.py:235 -msgid "Corners Tool" -msgstr "Corners Tool" - -#: AppTools/ToolCorners.py:305 -msgid "Please select at least a location" -msgstr "Please select at least a location" - -#: AppTools/ToolCorners.py:440 -msgid "Corners Tool exit." -msgstr "Corners Tool exit." - -#: AppTools/ToolCutOut.py:41 -msgid "Cutout PCB" -msgstr "Cutout PCB" - -#: AppTools/ToolCutOut.py:69 AppTools/ToolPanelize.py:53 -msgid "Source Object" -msgstr "Source Object" - -#: AppTools/ToolCutOut.py:70 -msgid "Object to be cutout" -msgstr "Object to be cutout" - -#: AppTools/ToolCutOut.py:75 -msgid "Kind" -msgstr "Kind" - -#: AppTools/ToolCutOut.py:97 -msgid "" -"Specify the type of object to be cutout.\n" -"It can be of type: Gerber or Geometry.\n" -"What is selected here will dictate the kind\n" -"of objects that will populate the 'Object' combobox." -msgstr "" -"Specify the type of object to be cutout.\n" -"It can be of type: Gerber or Geometry.\n" -"What is selected here will dictate the kind\n" -"of objects that will populate the 'Object' combobox." - -#: AppTools/ToolCutOut.py:121 -msgid "Tool Parameters" -msgstr "Tool Parameters" - -#: AppTools/ToolCutOut.py:238 -msgid "A. Automatic Bridge Gaps" -msgstr "A. Automatic Bridge Gaps" - -#: AppTools/ToolCutOut.py:240 -msgid "This section handle creation of automatic bridge gaps." -msgstr "This section handle creation of automatic bridge gaps." - -#: AppTools/ToolCutOut.py:247 -msgid "" -"Number of gaps used for the Automatic cutout.\n" -"There can be maximum 8 bridges/gaps.\n" -"The choices are:\n" -"- None - no gaps\n" -"- lr - left + right\n" -"- tb - top + bottom\n" -"- 4 - left + right +top + bottom\n" -"- 2lr - 2*left + 2*right\n" -"- 2tb - 2*top + 2*bottom\n" -"- 8 - 2*left + 2*right +2*top + 2*bottom" -msgstr "" -"Number of gaps used for the Automatic cutout.\n" -"There can be maximum 8 bridges/gaps.\n" -"The choices are:\n" -"- None - no gaps\n" -"- lr - left + right\n" -"- tb - top + bottom\n" -"- 4 - left + right +top + bottom\n" -"- 2lr - 2*left + 2*right\n" -"- 2tb - 2*top + 2*bottom\n" -"- 8 - 2*left + 2*right +2*top + 2*bottom" - -#: AppTools/ToolCutOut.py:269 -msgid "Generate Freeform Geometry" -msgstr "Generate Freeform Geometry" - -#: AppTools/ToolCutOut.py:271 -msgid "" -"Cutout the selected object.\n" -"The cutout shape can be of any shape.\n" -"Useful when the PCB has a non-rectangular shape." -msgstr "" -"Cutout the selected object.\n" -"The cutout shape can be of any shape.\n" -"Useful when the PCB has a non-rectangular shape." - -#: AppTools/ToolCutOut.py:283 -msgid "Generate Rectangular Geometry" -msgstr "Generate Rectangular Geometry" - -#: AppTools/ToolCutOut.py:285 -msgid "" -"Cutout the selected object.\n" -"The resulting cutout shape is\n" -"always a rectangle shape and it will be\n" -"the bounding box of the Object." -msgstr "" -"Cutout the selected object.\n" -"The resulting cutout shape is\n" -"always a rectangle shape and it will be\n" -"the bounding box of the Object." - -#: AppTools/ToolCutOut.py:304 -msgid "B. Manual Bridge Gaps" -msgstr "B. Manual Bridge Gaps" - -#: AppTools/ToolCutOut.py:306 -msgid "" -"This section handle creation of manual bridge gaps.\n" -"This is done by mouse clicking on the perimeter of the\n" -"Geometry object that is used as a cutout object. " -msgstr "" -"This section handle creation of manual bridge gaps.\n" -"This is done by mouse clicking on the perimeter of the\n" -"Geometry object that is used as a cutout object. " - -#: AppTools/ToolCutOut.py:321 -msgid "Geometry object used to create the manual cutout." -msgstr "Geometry object used to create the manual cutout." - -#: AppTools/ToolCutOut.py:328 -msgid "Generate Manual Geometry" -msgstr "Generate Manual Geometry" - -#: AppTools/ToolCutOut.py:330 -msgid "" -"If the object to be cutout is a Gerber\n" -"first create a Geometry that surrounds it,\n" -"to be used as the cutout, if one doesn't exist yet.\n" -"Select the source Gerber file in the top object combobox." -msgstr "" -"If the object to be cutout is a Gerber\n" -"first create a Geometry that surrounds it,\n" -"to be used as the cutout, if one doesn't exist yet.\n" -"Select the source Gerber file in the top object combobox." - -#: AppTools/ToolCutOut.py:343 -msgid "Manual Add Bridge Gaps" -msgstr "Manual Add Bridge Gaps" - -#: AppTools/ToolCutOut.py:345 -msgid "" -"Use the left mouse button (LMB) click\n" -"to create a bridge gap to separate the PCB from\n" -"the surrounding material.\n" -"The LMB click has to be done on the perimeter of\n" -"the Geometry object used as a cutout geometry." -msgstr "" -"Use the left mouse button (LMB) click\n" -"to create a bridge gap to separate the PCB from\n" -"the surrounding material.\n" -"The LMB click has to be done on the perimeter of\n" -"the Geometry object used as a cutout geometry." - -#: AppTools/ToolCutOut.py:561 -msgid "" -"There is no object selected for Cutout.\n" -"Select one and try again." -msgstr "" -"There is no object selected for Cutout.\n" -"Select one and try again." - -#: AppTools/ToolCutOut.py:567 AppTools/ToolCutOut.py:770 -#: AppTools/ToolCutOut.py:951 AppTools/ToolCutOut.py:1033 -#: tclCommands/TclCommandGeoCutout.py:184 -msgid "Tool Diameter is zero value. Change it to a positive real number." -msgstr "Tool Diameter is zero value. Change it to a positive real number." - -#: AppTools/ToolCutOut.py:581 AppTools/ToolCutOut.py:785 -msgid "Number of gaps value is missing. Add it and retry." -msgstr "Number of gaps value is missing. Add it and retry." - -#: AppTools/ToolCutOut.py:586 AppTools/ToolCutOut.py:789 -msgid "" -"Gaps value can be only one of: 'None', 'lr', 'tb', '2lr', '2tb', 4 or 8. " -"Fill in a correct value and retry. " -msgstr "" -"Gaps value can be only one of: 'None', 'lr', 'tb', '2lr', '2tb', 4 or 8. " -"Fill in a correct value and retry. " - -#: AppTools/ToolCutOut.py:591 AppTools/ToolCutOut.py:795 -msgid "" -"Cutout operation cannot be done on a multi-geo Geometry.\n" -"Optionally, this Multi-geo Geometry can be converted to Single-geo " -"Geometry,\n" -"and after that perform Cutout." -msgstr "" -"Cutout operation cannot be done on a multi-geo Geometry.\n" -"Optionally, this Multi-geo Geometry can be converted to Single-geo " -"Geometry,\n" -"and after that perform Cutout." - -#: AppTools/ToolCutOut.py:743 AppTools/ToolCutOut.py:940 -msgid "Any form CutOut operation finished." -msgstr "Any form CutOut operation finished." - -#: AppTools/ToolCutOut.py:765 AppTools/ToolEtchCompensation.py:366 -#: AppTools/ToolInvertGerber.py:217 AppTools/ToolIsolation.py:1589 -#: AppTools/ToolIsolation.py:1616 AppTools/ToolNCC.py:1621 -#: AppTools/ToolPaint.py:1416 AppTools/ToolPanelize.py:428 -#: tclCommands/TclCommandBbox.py:71 tclCommands/TclCommandNregions.py:71 -msgid "Object not found" -msgstr "Object not found" - -#: AppTools/ToolCutOut.py:909 -msgid "Rectangular cutout with negative margin is not possible." -msgstr "Rectangular cutout with negative margin is not possible." - -#: AppTools/ToolCutOut.py:945 -msgid "" -"Click on the selected geometry object perimeter to create a bridge gap ..." -msgstr "" -"Click on the selected geometry object perimeter to create a bridge gap ..." - -#: AppTools/ToolCutOut.py:962 AppTools/ToolCutOut.py:988 -msgid "Could not retrieve Geometry object" -msgstr "Could not retrieve Geometry object" - -#: AppTools/ToolCutOut.py:993 -msgid "Geometry object for manual cutout not found" -msgstr "Geometry object for manual cutout not found" - -#: AppTools/ToolCutOut.py:1003 -msgid "Added manual Bridge Gap." -msgstr "Added manual Bridge Gap." - -#: AppTools/ToolCutOut.py:1015 -msgid "Could not retrieve Gerber object" -msgstr "Could not retrieve Gerber object" - -#: AppTools/ToolCutOut.py:1020 -msgid "" -"There is no Gerber object selected for Cutout.\n" -"Select one and try again." -msgstr "" -"There is no Gerber object selected for Cutout.\n" -"Select one and try again." - -#: AppTools/ToolCutOut.py:1026 -msgid "" -"The selected object has to be of Gerber type.\n" -"Select a Gerber file and try again." -msgstr "" -"The selected object has to be of Gerber type.\n" -"Select a Gerber file and try again." - -#: AppTools/ToolCutOut.py:1061 -msgid "Geometry not supported for cutout" -msgstr "Geometry not supported for cutout" - -#: AppTools/ToolCutOut.py:1136 -msgid "Making manual bridge gap..." -msgstr "Making manual bridge gap..." - -#: AppTools/ToolDblSided.py:26 -msgid "2-Sided PCB" -msgstr "2-Sided PCB" - -#: AppTools/ToolDblSided.py:52 -msgid "Mirror Operation" -msgstr "Mirror Operation" - -#: AppTools/ToolDblSided.py:53 -msgid "Objects to be mirrored" -msgstr "Objects to be mirrored" - -#: AppTools/ToolDblSided.py:65 -msgid "Gerber to be mirrored" -msgstr "Gerber to be mirrored" - -#: AppTools/ToolDblSided.py:69 AppTools/ToolDblSided.py:97 -#: AppTools/ToolDblSided.py:127 -msgid "" -"Mirrors (flips) the specified object around \n" -"the specified axis. Does not create a new \n" -"object, but modifies it." -msgstr "" -"Mirrors (flips) the specified object around \n" -"the specified axis. Does not create a new \n" -"object, but modifies it." - -#: AppTools/ToolDblSided.py:93 -msgid "Excellon Object to be mirrored." -msgstr "Excellon Object to be mirrored." - -#: AppTools/ToolDblSided.py:122 -msgid "Geometry Obj to be mirrored." -msgstr "Geometry Obj to be mirrored." - -#: AppTools/ToolDblSided.py:158 -msgid "Mirror Parameters" -msgstr "Mirror Parameters" - -#: AppTools/ToolDblSided.py:159 -msgid "Parameters for the mirror operation" -msgstr "Parameters for the mirror operation" - -#: AppTools/ToolDblSided.py:164 -msgid "Mirror Axis" -msgstr "Mirror Axis" - -#: AppTools/ToolDblSided.py:175 -msgid "" -"The coordinates used as reference for the mirror operation.\n" -"Can be:\n" -"- Point -> a set of coordinates (x,y) around which the object is mirrored\n" -"- Box -> a set of coordinates (x, y) obtained from the center of the\n" -"bounding box of another object selected below" -msgstr "" -"The coordinates used as reference for the mirror operation.\n" -"Can be:\n" -"- Point -> a set of coordinates (x,y) around which the object is mirrored\n" -"- Box -> a set of coordinates (x, y) obtained from the center of the\n" -"bounding box of another object selected below" - -#: AppTools/ToolDblSided.py:189 -msgid "Point coordinates" -msgstr "Point coordinates" - -#: AppTools/ToolDblSided.py:194 -msgid "" -"Add the coordinates in format (x, y) through which the mirroring " -"axis\n" -" selected in 'MIRROR AXIS' pass.\n" -"The (x, y) coordinates are captured by pressing SHIFT key\n" -"and left mouse button click on canvas or you can enter the coordinates " -"manually." -msgstr "" -"Add the coordinates in format (x, y) through which the mirroring " -"axis\n" -" selected in 'MIRROR AXIS' pass.\n" -"The (x, y) coordinates are captured by pressing SHIFT key\n" -"and left mouse button click on canvas or you can enter the coordinates " -"manually." - -#: AppTools/ToolDblSided.py:218 -msgid "" -"It can be of type: Gerber or Excellon or Geometry.\n" -"The coordinates of the center of the bounding box are used\n" -"as reference for mirror operation." -msgstr "" -"It can be of type: Gerber or Excellon or Geometry.\n" -"The coordinates of the center of the bounding box are used\n" -"as reference for mirror operation." - -#: AppTools/ToolDblSided.py:252 -msgid "Bounds Values" -msgstr "Bounds Values" - -#: AppTools/ToolDblSided.py:254 -msgid "" -"Select on canvas the object(s)\n" -"for which to calculate bounds values." -msgstr "" -"Select on canvas the object(s)\n" -"for which to calculate bounds values." - -#: AppTools/ToolDblSided.py:264 -msgid "X min" -msgstr "X min" - -#: AppTools/ToolDblSided.py:266 AppTools/ToolDblSided.py:280 -msgid "Minimum location." -msgstr "Minimum location." - -#: AppTools/ToolDblSided.py:278 -msgid "Y min" -msgstr "Y min" - -#: AppTools/ToolDblSided.py:292 -msgid "X max" -msgstr "X max" - -#: AppTools/ToolDblSided.py:294 AppTools/ToolDblSided.py:308 -msgid "Maximum location." -msgstr "Maximum location." - -#: AppTools/ToolDblSided.py:306 -msgid "Y max" -msgstr "Y max" - -#: AppTools/ToolDblSided.py:317 -msgid "Center point coordinates" -msgstr "Center point coordinates" - -#: AppTools/ToolDblSided.py:319 -msgid "Centroid" -msgstr "Centroid" - -#: AppTools/ToolDblSided.py:321 -msgid "" -"The center point location for the rectangular\n" -"bounding shape. Centroid. Format is (x, y)." -msgstr "" -"The center point location for the rectangular\n" -"bounding shape. Centroid. Format is (x, y)." - -#: AppTools/ToolDblSided.py:330 -msgid "Calculate Bounds Values" -msgstr "Calculate Bounds Values" - -#: AppTools/ToolDblSided.py:332 -msgid "" -"Calculate the enveloping rectangular shape coordinates,\n" -"for the selection of objects.\n" -"The envelope shape is parallel with the X, Y axis." -msgstr "" -"Calculate the enveloping rectangular shape coordinates,\n" -"for the selection of objects.\n" -"The envelope shape is parallel with the X, Y axis." - -#: AppTools/ToolDblSided.py:352 -msgid "PCB Alignment" -msgstr "PCB Alignment" - -#: AppTools/ToolDblSided.py:354 AppTools/ToolDblSided.py:456 -msgid "" -"Creates an Excellon Object containing the\n" -"specified alignment holes and their mirror\n" -"images." -msgstr "" -"Creates an Excellon Object containing the\n" -"specified alignment holes and their mirror\n" -"images." - -#: AppTools/ToolDblSided.py:361 -msgid "Drill Diameter" -msgstr "Drill Diameter" - -#: AppTools/ToolDblSided.py:390 AppTools/ToolDblSided.py:397 -msgid "" -"The reference point used to create the second alignment drill\n" -"from the first alignment drill, by doing mirror.\n" -"It can be modified in the Mirror Parameters -> Reference section" -msgstr "" -"The reference point used to create the second alignment drill\n" -"from the first alignment drill, by doing mirror.\n" -"It can be modified in the Mirror Parameters -> Reference section" - -#: AppTools/ToolDblSided.py:410 -msgid "Alignment Drill Coordinates" -msgstr "Alignment Drill Coordinates" - -#: AppTools/ToolDblSided.py:412 -msgid "" -"Alignment holes (x1, y1), (x2, y2), ... on one side of the mirror axis. For " -"each set of (x, y) coordinates\n" -"entered here, a pair of drills will be created:\n" -"\n" -"- one drill at the coordinates from the field\n" -"- one drill in mirror position over the axis selected above in the 'Align " -"Axis'." -msgstr "" -"Alignment holes (x1, y1), (x2, y2), ... on one side of the mirror axis. For " -"each set of (x, y) coordinates\n" -"entered here, a pair of drills will be created:\n" -"\n" -"- one drill at the coordinates from the field\n" -"- one drill in mirror position over the axis selected above in the 'Align " -"Axis'." - -#: AppTools/ToolDblSided.py:420 -msgid "Drill coordinates" -msgstr "Drill coordinates" - -#: AppTools/ToolDblSided.py:427 -msgid "" -"Add alignment drill holes coordinates in the format: (x1, y1), (x2, " -"y2), ... \n" -"on one side of the alignment axis.\n" -"\n" -"The coordinates set can be obtained:\n" -"- press SHIFT key and left mouse clicking on canvas. Then click Add.\n" -"- press SHIFT key and left mouse clicking on canvas. Then Ctrl+V in the " -"field.\n" -"- press SHIFT key and left mouse clicking on canvas. Then RMB click in the " -"field and click Paste.\n" -"- by entering the coords manually in the format: (x1, y1), (x2, y2), ..." -msgstr "" -"Add alignment drill holes coordinates in the format: (x1, y1), (x2, " -"y2), ... \n" -"on one side of the alignment axis.\n" -"\n" -"The coordinates set can be obtained:\n" -"- press SHIFT key and left mouse clicking on canvas. Then click Add.\n" -"- press SHIFT key and left mouse clicking on canvas. Then Ctrl+V in the " -"field.\n" -"- press SHIFT key and left mouse clicking on canvas. Then RMB click in the " -"field and click Paste.\n" -"- by entering the coords manually in the format: (x1, y1), (x2, y2), ..." - -#: AppTools/ToolDblSided.py:442 -msgid "Delete Last" -msgstr "Delete Last" - -#: AppTools/ToolDblSided.py:444 -msgid "Delete the last coordinates tuple in the list." -msgstr "Delete the last coordinates tuple in the list." - -#: AppTools/ToolDblSided.py:454 -msgid "Create Excellon Object" -msgstr "Create Excellon Object" - -#: AppTools/ToolDblSided.py:541 -msgid "2-Sided Tool" -msgstr "2-Sided Tool" - -#: AppTools/ToolDblSided.py:581 -msgid "" -"'Point' reference is selected and 'Point' coordinates are missing. Add them " -"and retry." -msgstr "" -"'Point' reference is selected and 'Point' coordinates are missing. Add them " -"and retry." - -#: AppTools/ToolDblSided.py:600 -msgid "There is no Box reference object loaded. Load one and retry." -msgstr "There is no Box reference object loaded. Load one and retry." - -#: AppTools/ToolDblSided.py:612 -msgid "No value or wrong format in Drill Dia entry. Add it and retry." -msgstr "No value or wrong format in Drill Dia entry. Add it and retry." - -#: AppTools/ToolDblSided.py:623 -msgid "There are no Alignment Drill Coordinates to use. Add them and retry." -msgstr "There are no Alignment Drill Coordinates to use. Add them and retry." - -#: AppTools/ToolDblSided.py:648 -msgid "Excellon object with alignment drills created..." -msgstr "Excellon object with alignment drills created..." - -#: AppTools/ToolDblSided.py:661 AppTools/ToolDblSided.py:704 -#: AppTools/ToolDblSided.py:748 -msgid "Only Gerber, Excellon and Geometry objects can be mirrored." -msgstr "Only Gerber, Excellon and Geometry objects can be mirrored." - -#: AppTools/ToolDblSided.py:671 AppTools/ToolDblSided.py:715 -msgid "" -"There are no Point coordinates in the Point field. Add coords and try " -"again ..." -msgstr "" -"There are no Point coordinates in the Point field. Add coords and try " -"again ..." - -#: AppTools/ToolDblSided.py:681 AppTools/ToolDblSided.py:725 -#: AppTools/ToolDblSided.py:762 -msgid "There is no Box object loaded ..." -msgstr "There is no Box object loaded ..." - -#: AppTools/ToolDblSided.py:691 AppTools/ToolDblSided.py:735 -#: AppTools/ToolDblSided.py:772 -msgid "was mirrored" -msgstr "was mirrored" - -#: AppTools/ToolDblSided.py:700 AppTools/ToolPunchGerber.py:533 -msgid "There is no Excellon object loaded ..." -msgstr "There is no Excellon object loaded ..." - -#: AppTools/ToolDblSided.py:744 -msgid "There is no Geometry object loaded ..." -msgstr "There is no Geometry object loaded ..." - -#: AppTools/ToolDblSided.py:818 App_Main.py:4350 App_Main.py:4505 -msgid "Failed. No object(s) selected..." -msgstr "Failed. No object(s) selected..." - -#: AppTools/ToolDistance.py:57 AppTools/ToolDistanceMin.py:50 -msgid "Those are the units in which the distance is measured." -msgstr "Those are the units in which the distance is measured." - -#: AppTools/ToolDistance.py:58 AppTools/ToolDistanceMin.py:51 -msgid "METRIC (mm)" -msgstr "METRIC (mm)" - -#: AppTools/ToolDistance.py:58 AppTools/ToolDistanceMin.py:51 -msgid "INCH (in)" -msgstr "INCH (in)" - -#: AppTools/ToolDistance.py:64 -msgid "Snap to center" -msgstr "Snap to center" - -#: AppTools/ToolDistance.py:66 -msgid "" -"Mouse cursor will snap to the center of the pad/drill\n" -"when it is hovering over the geometry of the pad/drill." -msgstr "" -"Mouse cursor will snap to the center of the pad/drill\n" -"when it is hovering over the geometry of the pad/drill." - -#: AppTools/ToolDistance.py:76 -msgid "Start Coords" -msgstr "Start Coords" - -#: AppTools/ToolDistance.py:77 AppTools/ToolDistance.py:82 -msgid "This is measuring Start point coordinates." -msgstr "This is measuring Start point coordinates." - -#: AppTools/ToolDistance.py:87 -msgid "Stop Coords" -msgstr "Stop Coords" - -#: AppTools/ToolDistance.py:88 AppTools/ToolDistance.py:93 -msgid "This is the measuring Stop point coordinates." -msgstr "This is the measuring Stop point coordinates." - -#: AppTools/ToolDistance.py:98 AppTools/ToolDistanceMin.py:62 -msgid "Dx" -msgstr "Dx" - -#: AppTools/ToolDistance.py:99 AppTools/ToolDistance.py:104 -#: AppTools/ToolDistanceMin.py:63 AppTools/ToolDistanceMin.py:92 -msgid "This is the distance measured over the X axis." -msgstr "This is the distance measured over the X axis." - -#: AppTools/ToolDistance.py:109 AppTools/ToolDistanceMin.py:65 -msgid "Dy" -msgstr "Dy" - -#: AppTools/ToolDistance.py:110 AppTools/ToolDistance.py:115 -#: AppTools/ToolDistanceMin.py:66 AppTools/ToolDistanceMin.py:97 -msgid "This is the distance measured over the Y axis." -msgstr "This is the distance measured over the Y axis." - -#: AppTools/ToolDistance.py:121 AppTools/ToolDistance.py:126 -#: AppTools/ToolDistanceMin.py:69 AppTools/ToolDistanceMin.py:102 -msgid "This is orientation angle of the measuring line." -msgstr "This is orientation angle of the measuring line." - -#: AppTools/ToolDistance.py:131 AppTools/ToolDistanceMin.py:71 -msgid "DISTANCE" -msgstr "DISTANCE" - -#: AppTools/ToolDistance.py:132 AppTools/ToolDistance.py:137 -msgid "This is the point to point Euclidian distance." -msgstr "This is the point to point Euclidian distance." - -#: AppTools/ToolDistance.py:142 AppTools/ToolDistance.py:339 -#: AppTools/ToolDistanceMin.py:114 -msgid "Measure" -msgstr "Measure" - -#: AppTools/ToolDistance.py:274 -msgid "Working" -msgstr "Working" - -#: AppTools/ToolDistance.py:279 -msgid "MEASURING: Click on the Start point ..." -msgstr "MEASURING: Click on the Start point ..." - -#: AppTools/ToolDistance.py:389 -msgid "Distance Tool finished." -msgstr "Distance Tool finished." - -#: AppTools/ToolDistance.py:461 -msgid "Pads overlapped. Aborting." -msgstr "Pads overlapped. Aborting." - -#: AppTools/ToolDistance.py:489 -msgid "Distance Tool cancelled." -msgstr "Distance Tool cancelled." - -#: AppTools/ToolDistance.py:494 -msgid "MEASURING: Click on the Destination point ..." -msgstr "MEASURING: Click on the Destination point ..." - -#: AppTools/ToolDistance.py:503 AppTools/ToolDistanceMin.py:284 -msgid "MEASURING" -msgstr "MEASURING" - -#: AppTools/ToolDistance.py:504 AppTools/ToolDistanceMin.py:285 -msgid "Result" -msgstr "Result" - -#: AppTools/ToolDistanceMin.py:31 AppTools/ToolDistanceMin.py:143 -msgid "Minimum Distance Tool" -msgstr "Minimum Distance Tool" - -#: AppTools/ToolDistanceMin.py:54 -msgid "First object point" -msgstr "First object point" - -#: AppTools/ToolDistanceMin.py:55 AppTools/ToolDistanceMin.py:80 -msgid "" -"This is first object point coordinates.\n" -"This is the start point for measuring distance." -msgstr "" -"This is first object point coordinates.\n" -"This is the start point for measuring distance." - -#: AppTools/ToolDistanceMin.py:58 -msgid "Second object point" -msgstr "Second object point" - -#: AppTools/ToolDistanceMin.py:59 AppTools/ToolDistanceMin.py:86 -msgid "" -"This is second object point coordinates.\n" -"This is the end point for measuring distance." -msgstr "" -"This is second object point coordinates.\n" -"This is the end point for measuring distance." - -#: AppTools/ToolDistanceMin.py:72 AppTools/ToolDistanceMin.py:107 -msgid "This is the point to point Euclidean distance." -msgstr "This is the point to point Euclidean distance." - -#: AppTools/ToolDistanceMin.py:74 -msgid "Half Point" -msgstr "Half Point" - -#: AppTools/ToolDistanceMin.py:75 AppTools/ToolDistanceMin.py:112 -msgid "This is the middle point of the point to point Euclidean distance." -msgstr "This is the middle point of the point to point Euclidean distance." - -#: AppTools/ToolDistanceMin.py:117 -msgid "Jump to Half Point" -msgstr "Jump to Half Point" - -#: AppTools/ToolDistanceMin.py:154 -msgid "" -"Select two objects and no more, to measure the distance between them ..." -msgstr "" -"Select two objects and no more, to measure the distance between them ..." - -#: AppTools/ToolDistanceMin.py:195 AppTools/ToolDistanceMin.py:216 -#: AppTools/ToolDistanceMin.py:225 AppTools/ToolDistanceMin.py:246 -msgid "Select two objects and no more. Currently the selection has objects: " -msgstr "Select two objects and no more. Currently the selection has objects: " - -#: AppTools/ToolDistanceMin.py:293 -msgid "Objects intersects or touch at" -msgstr "Objects intersects or touch at" - -#: AppTools/ToolDistanceMin.py:299 -msgid "Jumped to the half point between the two selected objects" -msgstr "Jumped to the half point between the two selected objects" - -#: AppTools/ToolEtchCompensation.py:75 AppTools/ToolInvertGerber.py:74 -msgid "Gerber object that will be inverted." -msgstr "Gerber object that will be inverted." - -#: AppTools/ToolEtchCompensation.py:86 -msgid "Utilities" -msgstr "Utilities" - -#: AppTools/ToolEtchCompensation.py:87 -msgid "Conversion utilities" -msgstr "Conversion utilities" - -#: AppTools/ToolEtchCompensation.py:92 -msgid "Oz to Microns" -msgstr "Oz to Microns" - -#: AppTools/ToolEtchCompensation.py:94 -msgid "" -"Will convert from oz thickness to microns [um].\n" -"Can use formulas with operators: /, *, +, -, %, .\n" -"The real numbers use the dot decimals separator." -msgstr "" -"Will convert from oz thickness to microns [um].\n" -"Can use formulas with operators: /, *, +, -, %, .\n" -"The real numbers use the dot decimals separator." - -#: AppTools/ToolEtchCompensation.py:103 -msgid "Oz value" -msgstr "Oz value" - -#: AppTools/ToolEtchCompensation.py:105 AppTools/ToolEtchCompensation.py:126 -msgid "Microns value" -msgstr "Microns value" - -#: AppTools/ToolEtchCompensation.py:113 -msgid "Mils to Microns" -msgstr "Mils to Microns" - -#: AppTools/ToolEtchCompensation.py:115 -msgid "" -"Will convert from mils to microns [um].\n" -"Can use formulas with operators: /, *, +, -, %, .\n" -"The real numbers use the dot decimals separator." -msgstr "" -"Will convert from mils to microns [um].\n" -"Can use formulas with operators: /, *, +, -, %, .\n" -"The real numbers use the dot decimals separator." - -#: AppTools/ToolEtchCompensation.py:124 -msgid "Mils value" -msgstr "Mils value" - -#: AppTools/ToolEtchCompensation.py:139 AppTools/ToolInvertGerber.py:86 -msgid "Parameters for this tool" -msgstr "Parameters for this tool" - -#: AppTools/ToolEtchCompensation.py:144 -msgid "Copper Thickness" -msgstr "Copper Thickness" - -#: AppTools/ToolEtchCompensation.py:146 -msgid "" -"The thickness of the copper foil.\n" -"In microns [um]." -msgstr "" -"The thickness of the copper foil.\n" -"In microns [um]." - -#: AppTools/ToolEtchCompensation.py:157 -msgid "Ratio" -msgstr "Ratio" - -#: AppTools/ToolEtchCompensation.py:159 -msgid "" -"The ratio of lateral etch versus depth etch.\n" -"Can be:\n" -"- custom -> the user will enter a custom value\n" -"- preselection -> value which depends on a selection of etchants" -msgstr "" -"The ratio of lateral etch versus depth etch.\n" -"Can be:\n" -"- custom -> the user will enter a custom value\n" -"- preselection -> value which depends on a selection of etchants" - -#: AppTools/ToolEtchCompensation.py:165 -msgid "Etch Factor" -msgstr "Etch Factor" - -#: AppTools/ToolEtchCompensation.py:166 -msgid "Etchants list" -msgstr "Etchants list" - -#: AppTools/ToolEtchCompensation.py:167 -msgid "Manual offset" -msgstr "Manual offset" - -#: AppTools/ToolEtchCompensation.py:174 AppTools/ToolEtchCompensation.py:179 -msgid "Etchants" -msgstr "Etchants" - -#: AppTools/ToolEtchCompensation.py:176 -msgid "A list of etchants." -msgstr "A list of etchants." - -#: AppTools/ToolEtchCompensation.py:180 -msgid "Alkaline baths" -msgstr "Alkaline baths" - -#: AppTools/ToolEtchCompensation.py:186 -msgid "Etch factor" -msgstr "Etch factor" - -#: AppTools/ToolEtchCompensation.py:188 -msgid "" -"The ratio between depth etch and lateral etch .\n" -"Accepts real numbers and formulas using the operators: /,*,+,-,%" -msgstr "" -"The ratio between depth etch and lateral etch .\n" -"Accepts real numbers and formulas using the operators: /,*,+,-,%" - -#: AppTools/ToolEtchCompensation.py:192 -msgid "Real number or formula" -msgstr "Real number or formula" - -#: AppTools/ToolEtchCompensation.py:193 -msgid "Etch_factor" -msgstr "Etch_factor" - -#: AppTools/ToolEtchCompensation.py:201 -msgid "" -"Value with which to increase or decrease (buffer)\n" -"the copper features. In microns [um]." -msgstr "" -"Value with which to increase or decrease (buffer)\n" -"the copper features. In microns [um]." - -#: AppTools/ToolEtchCompensation.py:225 -msgid "Compensate" -msgstr "Compensate" - -#: AppTools/ToolEtchCompensation.py:227 -msgid "" -"Will increase the copper features thickness to compensate the lateral etch." -msgstr "" -"Will increase the copper features thickness to compensate the lateral etch." - -#: AppTools/ToolExtractDrills.py:29 AppTools/ToolExtractDrills.py:295 -msgid "Extract Drills" -msgstr "Extract Drills" - -#: AppTools/ToolExtractDrills.py:62 -msgid "Gerber from which to extract drill holes" -msgstr "Gerber from which to extract drill holes" - -#: AppTools/ToolExtractDrills.py:297 -msgid "Extract drills from a given Gerber file." -msgstr "Extract drills from a given Gerber file." - -#: AppTools/ToolExtractDrills.py:478 AppTools/ToolExtractDrills.py:563 -#: AppTools/ToolExtractDrills.py:648 -msgid "No drills extracted. Try different parameters." -msgstr "No drills extracted. Try different parameters." - -#: AppTools/ToolFiducials.py:56 -msgid "Fiducials Coordinates" -msgstr "Fiducials Coordinates" - -#: AppTools/ToolFiducials.py:58 -msgid "" -"A table with the fiducial points coordinates,\n" -"in the format (x, y)." -msgstr "" -"A table with the fiducial points coordinates,\n" -"in the format (x, y)." - -#: AppTools/ToolFiducials.py:194 -msgid "" -"- 'Auto' - automatic placement of fiducials in the corners of the bounding " -"box.\n" -" - 'Manual' - manual placement of fiducials." -msgstr "" -"- 'Auto' - automatic placement of fiducials in the corners of the bounding " -"box.\n" -" - 'Manual' - manual placement of fiducials." - -#: AppTools/ToolFiducials.py:240 -msgid "Thickness of the line that makes the fiducial." -msgstr "Thickness of the line that makes the fiducial." - -#: AppTools/ToolFiducials.py:271 -msgid "Add Fiducial" -msgstr "Add Fiducial" - -#: AppTools/ToolFiducials.py:273 -msgid "Will add a polygon on the copper layer to serve as fiducial." -msgstr "Will add a polygon on the copper layer to serve as fiducial." - -#: AppTools/ToolFiducials.py:289 -msgid "Soldermask Gerber" -msgstr "Soldermask Gerber" - -#: AppTools/ToolFiducials.py:291 -msgid "The Soldermask Gerber object." -msgstr "The Soldermask Gerber object." - -#: AppTools/ToolFiducials.py:303 -msgid "Add Soldermask Opening" -msgstr "Add Soldermask Opening" - -#: AppTools/ToolFiducials.py:305 -msgid "" -"Will add a polygon on the soldermask layer\n" -"to serve as fiducial opening.\n" -"The diameter is always double of the diameter\n" -"for the copper fiducial." -msgstr "" -"Will add a polygon on the soldermask layer\n" -"to serve as fiducial opening.\n" -"The diameter is always double of the diameter\n" -"for the copper fiducial." - -#: AppTools/ToolFiducials.py:520 -msgid "Click to add first Fiducial. Bottom Left..." -msgstr "Click to add first Fiducial. Bottom Left..." - -#: AppTools/ToolFiducials.py:784 -msgid "Click to add the last fiducial. Top Right..." -msgstr "Click to add the last fiducial. Top Right..." - -#: AppTools/ToolFiducials.py:789 -msgid "Click to add the second fiducial. Top Left or Bottom Right..." -msgstr "Click to add the second fiducial. Top Left or Bottom Right..." - -#: AppTools/ToolFiducials.py:792 AppTools/ToolFiducials.py:801 -msgid "Done. All fiducials have been added." -msgstr "Done. All fiducials have been added." - -#: AppTools/ToolFiducials.py:878 -msgid "Fiducials Tool exit." -msgstr "Fiducials Tool exit." - -#: AppTools/ToolFilm.py:42 -msgid "Film PCB" -msgstr "Film PCB" - -#: AppTools/ToolFilm.py:73 -msgid "" -"Specify the type of object for which to create the film.\n" -"The object can be of type: Gerber or Geometry.\n" -"The selection here decide the type of objects that will be\n" -"in the Film Object combobox." -msgstr "" -"Specify the type of object for which to create the film.\n" -"The object can be of type: Gerber or Geometry.\n" -"The selection here decide the type of objects that will be\n" -"in the Film Object combobox." - -#: AppTools/ToolFilm.py:96 -msgid "" -"Specify the type of object to be used as an container for\n" -"film creation. It can be: Gerber or Geometry type.The selection here decide " -"the type of objects that will be\n" -"in the Box Object combobox." -msgstr "" -"Specify the type of object to be used as an container for\n" -"film creation. It can be: Gerber or Geometry type.The selection here decide " -"the type of objects that will be\n" -"in the Box Object combobox." - -#: AppTools/ToolFilm.py:256 -msgid "Film Parameters" -msgstr "Film Parameters" - -#: AppTools/ToolFilm.py:317 -msgid "Punch drill holes" -msgstr "Punch drill holes" - -#: AppTools/ToolFilm.py:318 -msgid "" -"When checked the generated film will have holes in pads when\n" -"the generated film is positive. This is done to help drilling,\n" -"when done manually." -msgstr "" -"When checked the generated film will have holes in pads when\n" -"the generated film is positive. This is done to help drilling,\n" -"when done manually." - -#: AppTools/ToolFilm.py:336 -msgid "Source" -msgstr "Source" - -#: AppTools/ToolFilm.py:338 -msgid "" -"The punch hole source can be:\n" -"- Excellon -> an Excellon holes center will serve as reference.\n" -"- Pad Center -> will try to use the pads center as reference." -msgstr "" -"The punch hole source can be:\n" -"- Excellon -> an Excellon holes center will serve as reference.\n" -"- Pad Center -> will try to use the pads center as reference." - -#: AppTools/ToolFilm.py:343 -msgid "Pad center" -msgstr "Pad center" - -#: AppTools/ToolFilm.py:348 -msgid "Excellon Obj" -msgstr "Excellon Obj" - -#: AppTools/ToolFilm.py:350 -msgid "" -"Remove the geometry of Excellon from the Film to create the holes in pads." -msgstr "" -"Remove the geometry of Excellon from the Film to create the holes in pads." - -#: AppTools/ToolFilm.py:364 -msgid "Punch Size" -msgstr "Punch Size" - -#: AppTools/ToolFilm.py:365 -msgid "The value here will control how big is the punch hole in the pads." -msgstr "The value here will control how big is the punch hole in the pads." - -#: AppTools/ToolFilm.py:485 -msgid "Save Film" -msgstr "Save Film" - -#: AppTools/ToolFilm.py:487 -msgid "" -"Create a Film for the selected object, within\n" -"the specified box. Does not create a new \n" -" FlatCAM object, but directly save it in the\n" -"selected format." -msgstr "" -"Create a Film for the selected object, within\n" -"the specified box. Does not create a new \n" -" FlatCAM object, but directly save it in the\n" -"selected format." - -#: AppTools/ToolFilm.py:649 -msgid "" -"Using the Pad center does not work on Geometry objects. Only a Gerber object " -"has pads." -msgstr "" -"Using the Pad center does not work on Geometry objects. Only a Gerber object " -"has pads." - -#: AppTools/ToolFilm.py:659 -msgid "No FlatCAM object selected. Load an object for Film and retry." -msgstr "No FlatCAM object selected. Load an object for Film and retry." - -#: AppTools/ToolFilm.py:666 -msgid "No FlatCAM object selected. Load an object for Box and retry." -msgstr "No FlatCAM object selected. Load an object for Box and retry." - -#: AppTools/ToolFilm.py:670 -msgid "No FlatCAM object selected." -msgstr "No FlatCAM object selected." - -#: AppTools/ToolFilm.py:681 -msgid "Generating Film ..." -msgstr "Generating Film ..." - -#: AppTools/ToolFilm.py:730 AppTools/ToolFilm.py:734 -msgid "Export positive film" -msgstr "Export positive film" - -#: AppTools/ToolFilm.py:767 -msgid "" -"No Excellon object selected. Load an object for punching reference and retry." -msgstr "" -"No Excellon object selected. Load an object for punching reference and retry." - -#: AppTools/ToolFilm.py:791 -msgid "" -" Could not generate punched hole film because the punch hole sizeis bigger " -"than some of the apertures in the Gerber object." -msgstr "" -" Could not generate punched hole film because the punch hole sizeis bigger " -"than some of the apertures in the Gerber object." - -#: AppTools/ToolFilm.py:803 -msgid "" -"Could not generate punched hole film because the punch hole sizeis bigger " -"than some of the apertures in the Gerber object." -msgstr "" -"Could not generate punched hole film because the punch hole sizeis bigger " -"than some of the apertures in the Gerber object." - -#: AppTools/ToolFilm.py:821 -msgid "" -"Could not generate punched hole film because the newly created object " -"geometry is the same as the one in the source object geometry..." -msgstr "" -"Could not generate punched hole film because the newly created object " -"geometry is the same as the one in the source object geometry..." - -#: AppTools/ToolFilm.py:876 AppTools/ToolFilm.py:880 -msgid "Export negative film" -msgstr "Export negative film" - -#: AppTools/ToolFilm.py:941 AppTools/ToolFilm.py:1124 -#: AppTools/ToolPanelize.py:441 -msgid "No object Box. Using instead" -msgstr "No object Box. Using instead" - -#: AppTools/ToolFilm.py:1057 AppTools/ToolFilm.py:1237 -msgid "Film file exported to" -msgstr "Film file exported to" - -#: AppTools/ToolFilm.py:1060 AppTools/ToolFilm.py:1240 -msgid "Generating Film ... Please wait." -msgstr "Generating Film ... Please wait." - -#: AppTools/ToolImage.py:24 -msgid "Image as Object" -msgstr "Image as Object" - -#: AppTools/ToolImage.py:33 -msgid "Image to PCB" -msgstr "Image to PCB" - -#: AppTools/ToolImage.py:56 -msgid "" -"Specify the type of object to create from the image.\n" -"It can be of type: Gerber or Geometry." -msgstr "" -"Specify the type of object to create from the image.\n" -"It can be of type: Gerber or Geometry." - -#: AppTools/ToolImage.py:65 -msgid "DPI value" -msgstr "DPI value" - -#: AppTools/ToolImage.py:66 -msgid "Specify a DPI value for the image." -msgstr "Specify a DPI value for the image." - -#: AppTools/ToolImage.py:72 -msgid "Level of detail" -msgstr "Level of detail" - -#: AppTools/ToolImage.py:81 -msgid "Image type" -msgstr "Image type" - -#: AppTools/ToolImage.py:83 -msgid "" -"Choose a method for the image interpretation.\n" -"B/W means a black & white image. Color means a colored image." -msgstr "" -"Choose a method for the image interpretation.\n" -"B/W means a black & white image. Color means a colored image." - -#: AppTools/ToolImage.py:92 AppTools/ToolImage.py:107 AppTools/ToolImage.py:120 -#: AppTools/ToolImage.py:133 -msgid "Mask value" -msgstr "Mask value" - -#: AppTools/ToolImage.py:94 -msgid "" -"Mask for monochrome image.\n" -"Takes values between [0 ... 255].\n" -"Decides the level of details to include\n" -"in the resulting geometry.\n" -"0 means no detail and 255 means everything \n" -"(which is totally black)." -msgstr "" -"Mask for monochrome image.\n" -"Takes values between [0 ... 255].\n" -"Decides the level of details to include\n" -"in the resulting geometry.\n" -"0 means no detail and 255 means everything \n" -"(which is totally black)." - -#: AppTools/ToolImage.py:109 -msgid "" -"Mask for RED color.\n" -"Takes values between [0 ... 255].\n" -"Decides the level of details to include\n" -"in the resulting geometry." -msgstr "" -"Mask for RED color.\n" -"Takes values between [0 ... 255].\n" -"Decides the level of details to include\n" -"in the resulting geometry." - -#: AppTools/ToolImage.py:122 -msgid "" -"Mask for GREEN color.\n" -"Takes values between [0 ... 255].\n" -"Decides the level of details to include\n" -"in the resulting geometry." -msgstr "" -"Mask for GREEN color.\n" -"Takes values between [0 ... 255].\n" -"Decides the level of details to include\n" -"in the resulting geometry." - -#: AppTools/ToolImage.py:135 -msgid "" -"Mask for BLUE color.\n" -"Takes values between [0 ... 255].\n" -"Decides the level of details to include\n" -"in the resulting geometry." -msgstr "" -"Mask for BLUE color.\n" -"Takes values between [0 ... 255].\n" -"Decides the level of details to include\n" -"in the resulting geometry." - -#: AppTools/ToolImage.py:143 -msgid "Import image" -msgstr "Import image" - -#: AppTools/ToolImage.py:145 -msgid "Open a image of raster type and then import it in FlatCAM." -msgstr "Open a image of raster type and then import it in FlatCAM." - -#: AppTools/ToolImage.py:182 -msgid "Image Tool" -msgstr "Image Tool" - -#: AppTools/ToolImage.py:234 AppTools/ToolImage.py:237 -msgid "Import IMAGE" -msgstr "Import IMAGE" - -#: AppTools/ToolImage.py:277 App_Main.py:8360 App_Main.py:8407 -msgid "" -"Not supported type is picked as parameter. Only Geometry and Gerber are " -"supported" -msgstr "" -"Not supported type is picked as parameter. Only Geometry and Gerber are " -"supported" - -#: AppTools/ToolImage.py:285 -msgid "Importing Image" -msgstr "Importing Image" - -#: AppTools/ToolImage.py:297 AppTools/ToolPDF.py:154 App_Main.py:8385 -#: App_Main.py:8431 App_Main.py:8495 App_Main.py:8562 App_Main.py:8628 -#: App_Main.py:8693 App_Main.py:8750 -msgid "Opened" -msgstr "Opened" - -#: AppTools/ToolInvertGerber.py:126 -msgid "Invert Gerber" -msgstr "Invert Gerber" - -#: AppTools/ToolInvertGerber.py:128 -msgid "" -"Will invert the Gerber object: areas that have copper\n" -"will be empty of copper and previous empty area will be\n" -"filled with copper." -msgstr "" -"Will invert the Gerber object: areas that have copper\n" -"will be empty of copper and previous empty area will be\n" -"filled with copper." - -#: AppTools/ToolInvertGerber.py:187 -msgid "Invert Tool" -msgstr "Invert Tool" - -#: AppTools/ToolIsolation.py:96 -msgid "Gerber object for isolation routing." -msgstr "Gerber object for isolation routing." - -#: AppTools/ToolIsolation.py:120 AppTools/ToolNCC.py:122 -msgid "" -"Tools pool from which the algorithm\n" -"will pick the ones used for copper clearing." -msgstr "" -"Tools pool from which the algorithm\n" -"will pick the ones used for copper clearing." - -#: AppTools/ToolIsolation.py:136 -#| msgid "" -#| "This is the Tool Number.\n" -#| "Isolation routing will start with the tool with the biggest \n" -#| "diameter, continuing until there are no more tools.\n" -#| "Only tools that create Isolation geometry will still be present\n" -#| "in the resulting geometry. This is because with some tools\n" -#| "this function will not be able to create painting geometry." -msgid "" -"This is the Tool Number.\n" -"Isolation routing will start with the tool with the biggest \n" -"diameter, continuing until there are no more tools.\n" -"Only tools that create Isolation geometry will still be present\n" -"in the resulting geometry. This is because with some tools\n" -"this function will not be able to create routing geometry." -msgstr "" -"This is the Tool Number.\n" -"Isolation routing will start with the tool with the biggest \n" -"diameter, continuing until there are no more tools.\n" -"Only tools that create Isolation geometry will still be present\n" -"in the resulting geometry. This is because with some tools\n" -"this function will not be able to create routing geometry." - -#: AppTools/ToolIsolation.py:144 AppTools/ToolNCC.py:146 -msgid "" -"Tool Diameter. It's value (in current FlatCAM units)\n" -"is the cut width into the material." -msgstr "" -"Tool Diameter. It's value (in current FlatCAM units)\n" -"is the cut width into the material." - -#: AppTools/ToolIsolation.py:148 AppTools/ToolNCC.py:150 -msgid "" -"The Tool Type (TT) can be:\n" -"- Circular with 1 ... 4 teeth -> it is informative only. Being circular,\n" -"the cut width in material is exactly the tool diameter.\n" -"- Ball -> informative only and make reference to the Ball type endmill.\n" -"- V-Shape -> it will disable Z-Cut parameter in the resulting geometry UI " -"form\n" -"and enable two additional UI form fields in the resulting geometry: V-Tip " -"Dia and\n" -"V-Tip Angle. Adjusting those two values will adjust the Z-Cut parameter " -"such\n" -"as the cut width into material will be equal with the value in the Tool " -"Diameter\n" -"column of this table.\n" -"Choosing the 'V-Shape' Tool Type automatically will select the Operation " -"Type\n" -"in the resulting geometry as Isolation." -msgstr "" -"The Tool Type (TT) can be:\n" -"- Circular with 1 ... 4 teeth -> it is informative only. Being circular,\n" -"the cut width in material is exactly the tool diameter.\n" -"- Ball -> informative only and make reference to the Ball type endmill.\n" -"- V-Shape -> it will disable Z-Cut parameter in the resulting geometry UI " -"form\n" -"and enable two additional UI form fields in the resulting geometry: V-Tip " -"Dia and\n" -"V-Tip Angle. Adjusting those two values will adjust the Z-Cut parameter " -"such\n" -"as the cut width into material will be equal with the value in the Tool " -"Diameter\n" -"column of this table.\n" -"Choosing the 'V-Shape' Tool Type automatically will select the Operation " -"Type\n" -"in the resulting geometry as Isolation." - -#: AppTools/ToolIsolation.py:300 AppTools/ToolNCC.py:318 -#: AppTools/ToolPaint.py:300 AppTools/ToolSolderPaste.py:135 -msgid "" -"Delete a selection of tools in the Tool Table\n" -"by first selecting a row(s) in the Tool Table." -msgstr "" -"Delete a selection of tools in the Tool Table\n" -"by first selecting a row(s) in the Tool Table." - -#: AppTools/ToolIsolation.py:467 -msgid "" -"Specify the type of object to be excepted from isolation.\n" -"It can be of type: Gerber or Geometry.\n" -"What is selected here will dictate the kind\n" -"of objects that will populate the 'Object' combobox." -msgstr "" -"Specify the type of object to be excepted from isolation.\n" -"It can be of type: Gerber or Geometry.\n" -"What is selected here will dictate the kind\n" -"of objects that will populate the 'Object' combobox." - -#: AppTools/ToolIsolation.py:477 -msgid "Object whose area will be removed from isolation geometry." -msgstr "Object whose area will be removed from isolation geometry." - -#: AppTools/ToolIsolation.py:513 AppTools/ToolNCC.py:554 -msgid "" -"The type of FlatCAM object to be used as non copper clearing reference.\n" -"It can be Gerber, Excellon or Geometry." -msgstr "" -"The type of FlatCAM object to be used as non copper clearing reference.\n" -"It can be Gerber, Excellon or Geometry." - -#: AppTools/ToolIsolation.py:559 -msgid "Generate Isolation Geometry" -msgstr "Generate Isolation Geometry" - -#: AppTools/ToolIsolation.py:567 -msgid "" -"Create a Geometry object with toolpaths to cut \n" -"isolation outside, inside or on both sides of the\n" -"object. For a Gerber object outside means outside\n" -"of the Gerber feature and inside means inside of\n" -"the Gerber feature, if possible at all. This means\n" -"that only if the Gerber feature has openings inside, they\n" -"will be isolated. If what is wanted is to cut isolation\n" -"inside the actual Gerber feature, use a negative tool\n" -"diameter above." -msgstr "" -"Create a Geometry object with toolpaths to cut \n" -"isolation outside, inside or on both sides of the\n" -"object. For a Gerber object outside means outside\n" -"of the Gerber feature and inside means inside of\n" -"the Gerber feature, if possible at all. This means\n" -"that only if the Gerber feature has openings inside, they\n" -"will be isolated. If what is wanted is to cut isolation\n" -"inside the actual Gerber feature, use a negative tool\n" -"diameter above." - -#: AppTools/ToolIsolation.py:1266 AppTools/ToolIsolation.py:1426 -#: AppTools/ToolNCC.py:932 AppTools/ToolNCC.py:1449 AppTools/ToolPaint.py:857 -#: AppTools/ToolSolderPaste.py:576 AppTools/ToolSolderPaste.py:901 -#: App_Main.py:4210 -msgid "Please enter a tool diameter with non-zero value, in Float format." -msgstr "Please enter a tool diameter with non-zero value, in Float format." - -#: AppTools/ToolIsolation.py:1270 AppTools/ToolNCC.py:936 -#: AppTools/ToolPaint.py:861 AppTools/ToolSolderPaste.py:580 App_Main.py:4214 -msgid "Adding Tool cancelled" -msgstr "Adding Tool cancelled" - -#: AppTools/ToolIsolation.py:1420 AppTools/ToolNCC.py:1443 -#: AppTools/ToolPaint.py:1203 AppTools/ToolSolderPaste.py:896 -msgid "Please enter a tool diameter to add, in Float format." -msgstr "Please enter a tool diameter to add, in Float format." - -#: AppTools/ToolIsolation.py:1451 AppTools/ToolIsolation.py:2959 -#: AppTools/ToolNCC.py:1474 AppTools/ToolNCC.py:4079 AppTools/ToolPaint.py:1227 -#: AppTools/ToolPaint.py:3628 AppTools/ToolSolderPaste.py:925 -msgid "Cancelled. Tool already in Tool Table." -msgstr "Cancelled. Tool already in Tool Table." - -#: AppTools/ToolIsolation.py:1458 AppTools/ToolIsolation.py:2977 -#: AppTools/ToolNCC.py:1481 AppTools/ToolNCC.py:4096 AppTools/ToolPaint.py:1232 -#: AppTools/ToolPaint.py:3645 -msgid "New tool added to Tool Table." -msgstr "New tool added to Tool Table." - -#: AppTools/ToolIsolation.py:1502 AppTools/ToolNCC.py:1525 -#: AppTools/ToolPaint.py:1276 -msgid "Tool from Tool Table was edited." -msgstr "Tool from Tool Table was edited." - -#: AppTools/ToolIsolation.py:1514 AppTools/ToolNCC.py:1537 -#: AppTools/ToolPaint.py:1288 AppTools/ToolSolderPaste.py:986 -msgid "Cancelled. New diameter value is already in the Tool Table." -msgstr "Cancelled. New diameter value is already in the Tool Table." - -#: AppTools/ToolIsolation.py:1566 AppTools/ToolNCC.py:1589 -#: AppTools/ToolPaint.py:1386 -msgid "Delete failed. Select a tool to delete." -msgstr "Delete failed. Select a tool to delete." - -#: AppTools/ToolIsolation.py:1572 AppTools/ToolNCC.py:1595 -#: AppTools/ToolPaint.py:1392 -msgid "Tool(s) deleted from Tool Table." -msgstr "Tool(s) deleted from Tool Table." - -#: AppTools/ToolIsolation.py:1620 -msgid "Isolating..." -msgstr "Isolating..." - -#: AppTools/ToolIsolation.py:1654 -msgid "Failed to create Follow Geometry with tool diameter" -msgstr "Failed to create Follow Geometry with tool diameter" - -#: AppTools/ToolIsolation.py:1657 -msgid "Follow Geometry was created with tool diameter" -msgstr "Follow Geometry was created with tool diameter" - -#: AppTools/ToolIsolation.py:1698 -msgid "Click on a polygon to isolate it." -msgstr "Click on a polygon to isolate it." - -#: AppTools/ToolIsolation.py:1812 AppTools/ToolIsolation.py:1832 -#: AppTools/ToolIsolation.py:1967 AppTools/ToolIsolation.py:2138 -msgid "Subtracting Geo" -msgstr "Subtracting Geo" - -#: AppTools/ToolIsolation.py:1816 AppTools/ToolIsolation.py:1971 -#: AppTools/ToolIsolation.py:2142 -msgid "Intersecting Geo" -msgstr "Intersecting Geo" - -#: AppTools/ToolIsolation.py:1865 AppTools/ToolIsolation.py:2032 -#: AppTools/ToolIsolation.py:2199 -msgid "Empty Geometry in" -msgstr "Empty Geometry in" - -#: AppTools/ToolIsolation.py:2041 -msgid "" -"Partial failure. The geometry was processed with all tools.\n" -"But there are still not-isolated geometry elements. Try to include a tool " -"with smaller diameter." -msgstr "" -"Partial failure. The geometry was processed with all tools.\n" -"But there are still not-isolated geometry elements. Try to include a tool " -"with smaller diameter." - -#: AppTools/ToolIsolation.py:2044 -msgid "" -"The following are coordinates for the copper features that could not be " -"isolated:" -msgstr "" -"The following are coordinates for the copper features that could not be " -"isolated:" - -#: AppTools/ToolIsolation.py:2356 AppTools/ToolIsolation.py:2465 -#: AppTools/ToolPaint.py:1535 -msgid "Added polygon" -msgstr "Added polygon" - -#: AppTools/ToolIsolation.py:2357 AppTools/ToolIsolation.py:2467 -msgid "Click to add next polygon or right click to start isolation." -msgstr "Click to add next polygon or right click to start isolation." - -#: AppTools/ToolIsolation.py:2369 AppTools/ToolPaint.py:1549 -msgid "Removed polygon" -msgstr "Removed polygon" - -#: AppTools/ToolIsolation.py:2370 -msgid "Click to add/remove next polygon or right click to start isolation." -msgstr "Click to add/remove next polygon or right click to start isolation." - -#: AppTools/ToolIsolation.py:2375 AppTools/ToolPaint.py:1555 -msgid "No polygon detected under click position." -msgstr "No polygon detected under click position." - -#: AppTools/ToolIsolation.py:2401 AppTools/ToolPaint.py:1584 -msgid "List of single polygons is empty. Aborting." -msgstr "List of single polygons is empty. Aborting." - -#: AppTools/ToolIsolation.py:2470 -msgid "No polygon in selection." -msgstr "No polygon in selection." - -#: AppTools/ToolIsolation.py:2498 AppTools/ToolNCC.py:1725 -#: AppTools/ToolPaint.py:1619 -msgid "Click the end point of the paint area." -msgstr "Click the end point of the paint area." - -#: AppTools/ToolIsolation.py:2916 AppTools/ToolNCC.py:4036 -#: AppTools/ToolPaint.py:3585 App_Main.py:5318 App_Main.py:5328 -msgid "Tool from DB added in Tool Table." -msgstr "Tool from DB added in Tool Table." - -#: AppTools/ToolMove.py:102 -msgid "MOVE: Click on the Start point ..." -msgstr "MOVE: Click on the Start point ..." - -#: AppTools/ToolMove.py:113 -msgid "Cancelled. No object(s) to move." -msgstr "Cancelled. No object(s) to move." - -#: AppTools/ToolMove.py:140 -msgid "MOVE: Click on the Destination point ..." -msgstr "MOVE: Click on the Destination point ..." - -#: AppTools/ToolMove.py:163 -msgid "Moving..." -msgstr "Moving..." - -#: AppTools/ToolMove.py:166 -msgid "No object(s) selected." -msgstr "No object(s) selected." - -#: AppTools/ToolMove.py:221 -msgid "Error when mouse left click." -msgstr "Error when mouse left click." - -#: AppTools/ToolNCC.py:42 -msgid "Non-Copper Clearing" -msgstr "Non-Copper Clearing" - -#: AppTools/ToolNCC.py:86 AppTools/ToolPaint.py:79 -msgid "Obj Type" -msgstr "Obj Type" - -#: AppTools/ToolNCC.py:88 -msgid "" -"Specify the type of object to be cleared of excess copper.\n" -"It can be of type: Gerber or Geometry.\n" -"What is selected here will dictate the kind\n" -"of objects that will populate the 'Object' combobox." -msgstr "" -"Specify the type of object to be cleared of excess copper.\n" -"It can be of type: Gerber or Geometry.\n" -"What is selected here will dictate the kind\n" -"of objects that will populate the 'Object' combobox." - -#: AppTools/ToolNCC.py:110 -msgid "Object to be cleared of excess copper." -msgstr "Object to be cleared of excess copper." - -#: AppTools/ToolNCC.py:138 -msgid "" -"This is the Tool Number.\n" -"Non copper clearing will start with the tool with the biggest \n" -"diameter, continuing until there are no more tools.\n" -"Only tools that create NCC clearing geometry will still be present\n" -"in the resulting geometry. This is because with some tools\n" -"this function will not be able to create painting geometry." -msgstr "" -"This is the Tool Number.\n" -"Non copper clearing will start with the tool with the biggest \n" -"diameter, continuing until there are no more tools.\n" -"Only tools that create NCC clearing geometry will still be present\n" -"in the resulting geometry. This is because with some tools\n" -"this function will not be able to create painting geometry." - -#: AppTools/ToolNCC.py:597 AppTools/ToolPaint.py:536 -msgid "Generate Geometry" -msgstr "Generate Geometry" - -#: AppTools/ToolNCC.py:1638 -msgid "Wrong Tool Dia value format entered, use a number." -msgstr "Wrong Tool Dia value format entered, use a number." - -#: AppTools/ToolNCC.py:1649 AppTools/ToolPaint.py:1443 -msgid "No selected tools in Tool Table." -msgstr "No selected tools in Tool Table." - -#: AppTools/ToolNCC.py:2005 AppTools/ToolNCC.py:3024 -msgid "NCC Tool. Preparing non-copper polygons." -msgstr "NCC Tool. Preparing non-copper polygons." - -#: AppTools/ToolNCC.py:2064 AppTools/ToolNCC.py:3152 -msgid "NCC Tool. Calculate 'empty' area." -msgstr "NCC Tool. Calculate 'empty' area." - -#: AppTools/ToolNCC.py:2083 AppTools/ToolNCC.py:2192 AppTools/ToolNCC.py:2207 -#: AppTools/ToolNCC.py:3165 AppTools/ToolNCC.py:3270 AppTools/ToolNCC.py:3285 -#: AppTools/ToolNCC.py:3551 AppTools/ToolNCC.py:3652 AppTools/ToolNCC.py:3667 -msgid "Buffering finished" -msgstr "Buffering finished" - -#: AppTools/ToolNCC.py:2091 AppTools/ToolNCC.py:2214 AppTools/ToolNCC.py:3173 -#: AppTools/ToolNCC.py:3292 AppTools/ToolNCC.py:3558 AppTools/ToolNCC.py:3674 -msgid "Could not get the extent of the area to be non copper cleared." -msgstr "Could not get the extent of the area to be non copper cleared." - -#: AppTools/ToolNCC.py:2121 AppTools/ToolNCC.py:2200 AppTools/ToolNCC.py:3200 -#: AppTools/ToolNCC.py:3277 AppTools/ToolNCC.py:3578 AppTools/ToolNCC.py:3659 -msgid "" -"Isolation geometry is broken. Margin is less than isolation tool diameter." -msgstr "" -"Isolation geometry is broken. Margin is less than isolation tool diameter." - -#: AppTools/ToolNCC.py:2217 AppTools/ToolNCC.py:3296 AppTools/ToolNCC.py:3677 -msgid "The selected object is not suitable for copper clearing." -msgstr "The selected object is not suitable for copper clearing." - -#: AppTools/ToolNCC.py:2224 AppTools/ToolNCC.py:3303 -msgid "NCC Tool. Finished calculation of 'empty' area." -msgstr "NCC Tool. Finished calculation of 'empty' area." - -#: AppTools/ToolNCC.py:2267 -msgid "Clearing the polygon with the method: lines." -msgstr "Clearing the polygon with the method: lines." - -#: AppTools/ToolNCC.py:2277 -msgid "Failed. Clearing the polygon with the method: seed." -msgstr "Failed. Clearing the polygon with the method: seed." - -#: AppTools/ToolNCC.py:2286 -msgid "Failed. Clearing the polygon with the method: standard." -msgstr "Failed. Clearing the polygon with the method: standard." - -#: AppTools/ToolNCC.py:2300 -msgid "Geometry could not be cleared completely" -msgstr "Geometry could not be cleared completely" - -#: AppTools/ToolNCC.py:2325 AppTools/ToolNCC.py:2327 AppTools/ToolNCC.py:2973 -#: AppTools/ToolNCC.py:2975 -msgid "Non-Copper clearing ..." -msgstr "Non-Copper clearing ..." - -#: AppTools/ToolNCC.py:2377 AppTools/ToolNCC.py:3120 -msgid "" -"NCC Tool. Finished non-copper polygons. Normal copper clearing task started." -msgstr "" -"NCC Tool. Finished non-copper polygons. Normal copper clearing task started." - -#: AppTools/ToolNCC.py:2415 AppTools/ToolNCC.py:2663 -msgid "NCC Tool failed creating bounding box." -msgstr "NCC Tool failed creating bounding box." - -#: AppTools/ToolNCC.py:2430 AppTools/ToolNCC.py:2680 AppTools/ToolNCC.py:3316 -#: AppTools/ToolNCC.py:3702 -msgid "NCC Tool clearing with tool diameter" -msgstr "NCC Tool clearing with tool diameter" - -#: AppTools/ToolNCC.py:2430 AppTools/ToolNCC.py:2680 AppTools/ToolNCC.py:3316 -#: AppTools/ToolNCC.py:3702 -msgid "started." -msgstr "started." - -#: AppTools/ToolNCC.py:2588 AppTools/ToolNCC.py:3477 -msgid "" -"There is no NCC Geometry in the file.\n" -"Usually it means that the tool diameter is too big for the painted " -"geometry.\n" -"Change the painting parameters and try again." -msgstr "" -"There is no NCC Geometry in the file.\n" -"Usually it means that the tool diameter is too big for the painted " -"geometry.\n" -"Change the painting parameters and try again." - -#: AppTools/ToolNCC.py:2597 AppTools/ToolNCC.py:3486 -msgid "NCC Tool clear all done." -msgstr "NCC Tool clear all done." - -#: AppTools/ToolNCC.py:2600 AppTools/ToolNCC.py:3489 -msgid "NCC Tool clear all done but the copper features isolation is broken for" -msgstr "" -"NCC Tool clear all done but the copper features isolation is broken for" - -#: AppTools/ToolNCC.py:2602 AppTools/ToolNCC.py:2888 AppTools/ToolNCC.py:3491 -#: AppTools/ToolNCC.py:3874 -msgid "tools" -msgstr "tools" - -#: AppTools/ToolNCC.py:2884 AppTools/ToolNCC.py:3870 -msgid "NCC Tool Rest Machining clear all done." -msgstr "NCC Tool Rest Machining clear all done." - -#: AppTools/ToolNCC.py:2887 AppTools/ToolNCC.py:3873 -msgid "" -"NCC Tool Rest Machining clear all done but the copper features isolation is " -"broken for" -msgstr "" -"NCC Tool Rest Machining clear all done but the copper features isolation is " -"broken for" - -#: AppTools/ToolNCC.py:2985 -msgid "NCC Tool started. Reading parameters." -msgstr "NCC Tool started. Reading parameters." - -#: AppTools/ToolNCC.py:3972 -msgid "" -"Try to use the Buffering Type = Full in Preferences -> Gerber General. " -"Reload the Gerber file after this change." -msgstr "" -"Try to use the Buffering Type = Full in Preferences -> Gerber General. " -"Reload the Gerber file after this change." - -#: AppTools/ToolOptimal.py:85 -msgid "Number of decimals kept for found distances." -msgstr "Number of decimals kept for found distances." - -#: AppTools/ToolOptimal.py:93 -msgid "Minimum distance" -msgstr "Minimum distance" - -#: AppTools/ToolOptimal.py:94 -msgid "Display minimum distance between copper features." -msgstr "Display minimum distance between copper features." - -#: AppTools/ToolOptimal.py:98 -msgid "Determined" -msgstr "Determined" - -#: AppTools/ToolOptimal.py:112 -msgid "Occurring" -msgstr "Occurring" - -#: AppTools/ToolOptimal.py:113 -msgid "How many times this minimum is found." -msgstr "How many times this minimum is found." - -#: AppTools/ToolOptimal.py:119 -msgid "Minimum points coordinates" -msgstr "Minimum points coordinates" - -#: AppTools/ToolOptimal.py:120 AppTools/ToolOptimal.py:126 -msgid "Coordinates for points where minimum distance was found." -msgstr "Coordinates for points where minimum distance was found." - -#: AppTools/ToolOptimal.py:139 AppTools/ToolOptimal.py:215 -msgid "Jump to selected position" -msgstr "Jump to selected position" - -#: AppTools/ToolOptimal.py:141 AppTools/ToolOptimal.py:217 -msgid "" -"Select a position in the Locations text box and then\n" -"click this button." -msgstr "" -"Select a position in the Locations text box and then\n" -"click this button." - -#: AppTools/ToolOptimal.py:149 -msgid "Other distances" -msgstr "Other distances" - -#: AppTools/ToolOptimal.py:150 -msgid "" -"Will display other distances in the Gerber file ordered from\n" -"the minimum to the maximum, not including the absolute minimum." -msgstr "" -"Will display other distances in the Gerber file ordered from\n" -"the minimum to the maximum, not including the absolute minimum." - -#: AppTools/ToolOptimal.py:155 -msgid "Other distances points coordinates" -msgstr "Other distances points coordinates" - -#: AppTools/ToolOptimal.py:156 AppTools/ToolOptimal.py:170 -#: AppTools/ToolOptimal.py:177 AppTools/ToolOptimal.py:194 -#: AppTools/ToolOptimal.py:201 -msgid "" -"Other distances and the coordinates for points\n" -"where the distance was found." -msgstr "" -"Other distances and the coordinates for points\n" -"where the distance was found." - -#: AppTools/ToolOptimal.py:169 -msgid "Gerber distances" -msgstr "Gerber distances" - -#: AppTools/ToolOptimal.py:193 -msgid "Points coordinates" -msgstr "Points coordinates" - -#: AppTools/ToolOptimal.py:225 -msgid "Find Minimum" -msgstr "Find Minimum" - -#: AppTools/ToolOptimal.py:227 -msgid "" -"Calculate the minimum distance between copper features,\n" -"this will allow the determination of the right tool to\n" -"use for isolation or copper clearing." -msgstr "" -"Calculate the minimum distance between copper features,\n" -"this will allow the determination of the right tool to\n" -"use for isolation or copper clearing." - -#: AppTools/ToolOptimal.py:352 -msgid "Only Gerber objects can be evaluated." -msgstr "Only Gerber objects can be evaluated." - -#: AppTools/ToolOptimal.py:358 -msgid "" -"Optimal Tool. Started to search for the minimum distance between copper " -"features." -msgstr "" -"Optimal Tool. Started to search for the minimum distance between copper " -"features." - -#: AppTools/ToolOptimal.py:368 -msgid "Optimal Tool. Parsing geometry for aperture" -msgstr "Optimal Tool. Parsing geometry for aperture" - -#: AppTools/ToolOptimal.py:379 -msgid "Optimal Tool. Creating a buffer for the object geometry." -msgstr "Optimal Tool. Creating a buffer for the object geometry." - -#: AppTools/ToolOptimal.py:389 -msgid "" -"The Gerber object has one Polygon as geometry.\n" -"There are no distances between geometry elements to be found." -msgstr "" -"The Gerber object has one Polygon as geometry.\n" -"There are no distances between geometry elements to be found." - -#: AppTools/ToolOptimal.py:394 -msgid "" -"Optimal Tool. Finding the distances between each two elements. Iterations" -msgstr "" -"Optimal Tool. Finding the distances between each two elements. Iterations" - -#: AppTools/ToolOptimal.py:429 -msgid "Optimal Tool. Finding the minimum distance." -msgstr "Optimal Tool. Finding the minimum distance." - -#: AppTools/ToolOptimal.py:445 -msgid "Optimal Tool. Finished successfully." -msgstr "Optimal Tool. Finished successfully." - -#: AppTools/ToolPDF.py:91 AppTools/ToolPDF.py:95 -msgid "Open PDF" -msgstr "Open PDF" - -#: AppTools/ToolPDF.py:98 -msgid "Open PDF cancelled" -msgstr "Open PDF cancelled" - -#: AppTools/ToolPDF.py:122 -msgid "Parsing PDF file ..." -msgstr "Parsing PDF file ..." - -#: AppTools/ToolPDF.py:138 App_Main.py:8593 -msgid "Failed to open" -msgstr "Failed to open" - -#: AppTools/ToolPDF.py:203 AppTools/ToolPcbWizard.py:445 App_Main.py:8542 -msgid "No geometry found in file" -msgstr "No geometry found in file" - -#: AppTools/ToolPDF.py:206 AppTools/ToolPDF.py:279 -#, python-format -msgid "Rendering PDF layer #%d ..." -msgstr "Rendering PDF layer #%d ..." - -#: AppTools/ToolPDF.py:210 AppTools/ToolPDF.py:283 -msgid "Open PDF file failed." -msgstr "Open PDF file failed." - -#: AppTools/ToolPDF.py:215 AppTools/ToolPDF.py:288 -msgid "Rendered" -msgstr "Rendered" - -#: AppTools/ToolPaint.py:81 -msgid "" -"Specify the type of object to be painted.\n" -"It can be of type: Gerber or Geometry.\n" -"What is selected here will dictate the kind\n" -"of objects that will populate the 'Object' combobox." -msgstr "" -"Specify the type of object to be painted.\n" -"It can be of type: Gerber or Geometry.\n" -"What is selected here will dictate the kind\n" -"of objects that will populate the 'Object' combobox." - -#: AppTools/ToolPaint.py:103 -msgid "Object to be painted." -msgstr "Object to be painted." - -#: AppTools/ToolPaint.py:116 -msgid "" -"Tools pool from which the algorithm\n" -"will pick the ones used for painting." -msgstr "" -"Tools pool from which the algorithm\n" -"will pick the ones used for painting." - -#: AppTools/ToolPaint.py:133 -msgid "" -"This is the Tool Number.\n" -"Painting will start with the tool with the biggest diameter,\n" -"continuing until there are no more tools.\n" -"Only tools that create painting geometry will still be present\n" -"in the resulting geometry. This is because with some tools\n" -"this function will not be able to create painting geometry." -msgstr "" -"This is the Tool Number.\n" -"Painting will start with the tool with the biggest diameter,\n" -"continuing until there are no more tools.\n" -"Only tools that create painting geometry will still be present\n" -"in the resulting geometry. This is because with some tools\n" -"this function will not be able to create painting geometry." - -#: AppTools/ToolPaint.py:145 -msgid "" -"The Tool Type (TT) can be:\n" -"- Circular -> it is informative only. Being circular,\n" -"the cut width in material is exactly the tool diameter.\n" -"- Ball -> informative only and make reference to the Ball type endmill.\n" -"- V-Shape -> it will disable Z-Cut parameter in the resulting geometry UI " -"form\n" -"and enable two additional UI form fields in the resulting geometry: V-Tip " -"Dia and\n" -"V-Tip Angle. Adjusting those two values will adjust the Z-Cut parameter " -"such\n" -"as the cut width into material will be equal with the value in the Tool " -"Diameter\n" -"column of this table.\n" -"Choosing the 'V-Shape' Tool Type automatically will select the Operation " -"Type\n" -"in the resulting geometry as Isolation." -msgstr "" -"The Tool Type (TT) can be:\n" -"- Circular -> it is informative only. Being circular,\n" -"the cut width in material is exactly the tool diameter.\n" -"- Ball -> informative only and make reference to the Ball type endmill.\n" -"- V-Shape -> it will disable Z-Cut parameter in the resulting geometry UI " -"form\n" -"and enable two additional UI form fields in the resulting geometry: V-Tip " -"Dia and\n" -"V-Tip Angle. Adjusting those two values will adjust the Z-Cut parameter " -"such\n" -"as the cut width into material will be equal with the value in the Tool " -"Diameter\n" -"column of this table.\n" -"Choosing the 'V-Shape' Tool Type automatically will select the Operation " -"Type\n" -"in the resulting geometry as Isolation." - -#: AppTools/ToolPaint.py:497 -msgid "" -"The type of FlatCAM object to be used as paint reference.\n" -"It can be Gerber, Excellon or Geometry." -msgstr "" -"The type of FlatCAM object to be used as paint reference.\n" -"It can be Gerber, Excellon or Geometry." - -#: AppTools/ToolPaint.py:538 -msgid "" -"- 'Area Selection' - left mouse click to start selection of the area to be " -"painted.\n" -"Keeping a modifier key pressed (CTRL or SHIFT) will allow to add multiple " -"areas.\n" -"- 'All Polygons' - the Paint will start after click.\n" -"- 'Reference Object' - will do non copper clearing within the area\n" -"specified by another object." -msgstr "" -"- 'Area Selection' - left mouse click to start selection of the area to be " -"painted.\n" -"Keeping a modifier key pressed (CTRL or SHIFT) will allow to add multiple " -"areas.\n" -"- 'All Polygons' - the Paint will start after click.\n" -"- 'Reference Object' - will do non copper clearing within the area\n" -"specified by another object." - -#: AppTools/ToolPaint.py:1412 -#, python-format -msgid "Could not retrieve object: %s" -msgstr "Could not retrieve object: %s" - -#: AppTools/ToolPaint.py:1422 -msgid "Can't do Paint on MultiGeo geometries" -msgstr "Can't do Paint on MultiGeo geometries" - -#: AppTools/ToolPaint.py:1459 -msgid "Click on a polygon to paint it." -msgstr "Click on a polygon to paint it." - -#: AppTools/ToolPaint.py:1472 -msgid "Click the start point of the paint area." -msgstr "Click the start point of the paint area." - -#: AppTools/ToolPaint.py:1537 -msgid "Click to add next polygon or right click to start painting." -msgstr "Click to add next polygon or right click to start painting." - -#: AppTools/ToolPaint.py:1550 -msgid "Click to add/remove next polygon or right click to start painting." -msgstr "Click to add/remove next polygon or right click to start painting." - -#: AppTools/ToolPaint.py:2054 -msgid "Painting polygon with method: lines." -msgstr "Painting polygon with method: lines." - -#: AppTools/ToolPaint.py:2066 -msgid "Failed. Painting polygon with method: seed." -msgstr "Failed. Painting polygon with method: seed." - -#: AppTools/ToolPaint.py:2077 -msgid "Failed. Painting polygon with method: standard." -msgstr "Failed. Painting polygon with method: standard." - -#: AppTools/ToolPaint.py:2093 -msgid "Geometry could not be painted completely" -msgstr "Geometry could not be painted completely" - -#: AppTools/ToolPaint.py:2122 AppTools/ToolPaint.py:2125 -#: AppTools/ToolPaint.py:2133 AppTools/ToolPaint.py:2436 -#: AppTools/ToolPaint.py:2439 AppTools/ToolPaint.py:2447 -#: AppTools/ToolPaint.py:2935 AppTools/ToolPaint.py:2938 -#: AppTools/ToolPaint.py:2944 -msgid "Paint Tool." -msgstr "Paint Tool." - -#: AppTools/ToolPaint.py:2122 AppTools/ToolPaint.py:2125 -#: AppTools/ToolPaint.py:2133 -msgid "Normal painting polygon task started." -msgstr "Normal painting polygon task started." - -#: AppTools/ToolPaint.py:2123 AppTools/ToolPaint.py:2437 -#: AppTools/ToolPaint.py:2936 -msgid "Buffering geometry..." -msgstr "Buffering geometry..." - -#: AppTools/ToolPaint.py:2145 AppTools/ToolPaint.py:2454 -#: AppTools/ToolPaint.py:2952 -msgid "No polygon found." -msgstr "No polygon found." - -#: AppTools/ToolPaint.py:2175 -msgid "Painting polygon..." -msgstr "Painting polygon..." - -#: AppTools/ToolPaint.py:2185 AppTools/ToolPaint.py:2500 -#: AppTools/ToolPaint.py:2690 AppTools/ToolPaint.py:2998 -#: AppTools/ToolPaint.py:3177 -msgid "Painting with tool diameter = " -msgstr "Painting with tool diameter = " - -#: AppTools/ToolPaint.py:2186 AppTools/ToolPaint.py:2501 -#: AppTools/ToolPaint.py:2691 AppTools/ToolPaint.py:2999 -#: AppTools/ToolPaint.py:3178 -msgid "started" -msgstr "started" - -#: AppTools/ToolPaint.py:2211 AppTools/ToolPaint.py:2527 -#: AppTools/ToolPaint.py:2717 AppTools/ToolPaint.py:3025 -#: AppTools/ToolPaint.py:3204 -msgid "Margin parameter too big. Tool is not used" -msgstr "Margin parameter too big. Tool is not used" - -#: AppTools/ToolPaint.py:2269 AppTools/ToolPaint.py:2596 -#: AppTools/ToolPaint.py:2774 AppTools/ToolPaint.py:3088 -#: AppTools/ToolPaint.py:3266 -msgid "" -"Could not do Paint. Try a different combination of parameters. Or a " -"different strategy of paint" -msgstr "" -"Could not do Paint. Try a different combination of parameters. Or a " -"different strategy of paint" - -#: AppTools/ToolPaint.py:2326 AppTools/ToolPaint.py:2662 -#: AppTools/ToolPaint.py:2831 AppTools/ToolPaint.py:3149 -#: AppTools/ToolPaint.py:3328 -msgid "" -"There is no Painting Geometry in the file.\n" -"Usually it means that the tool diameter is too big for the painted " -"geometry.\n" -"Change the painting parameters and try again." -msgstr "" -"There is no Painting Geometry in the file.\n" -"Usually it means that the tool diameter is too big for the painted " -"geometry.\n" -"Change the painting parameters and try again." - -#: AppTools/ToolPaint.py:2349 -msgid "Paint Single failed." -msgstr "Paint Single failed." - -#: AppTools/ToolPaint.py:2355 -msgid "Paint Single Done." -msgstr "Paint Single Done." - -#: AppTools/ToolPaint.py:2357 AppTools/ToolPaint.py:2867 -#: AppTools/ToolPaint.py:3364 -msgid "Polygon Paint started ..." -msgstr "Polygon Paint started ..." - -#: AppTools/ToolPaint.py:2436 AppTools/ToolPaint.py:2439 -#: AppTools/ToolPaint.py:2447 -msgid "Paint all polygons task started." -msgstr "Paint all polygons task started." - -#: AppTools/ToolPaint.py:2478 AppTools/ToolPaint.py:2976 -msgid "Painting polygons..." -msgstr "Painting polygons..." - -#: AppTools/ToolPaint.py:2671 -msgid "Paint All Done." -msgstr "Paint All Done." - -#: AppTools/ToolPaint.py:2840 AppTools/ToolPaint.py:3337 -msgid "Paint All with Rest-Machining done." -msgstr "Paint All with Rest-Machining done." - -#: AppTools/ToolPaint.py:2859 -msgid "Paint All failed." -msgstr "Paint All failed." - -#: AppTools/ToolPaint.py:2865 -msgid "Paint Poly All Done." -msgstr "Paint Poly All Done." - -#: AppTools/ToolPaint.py:2935 AppTools/ToolPaint.py:2938 -#: AppTools/ToolPaint.py:2944 -msgid "Painting area task started." -msgstr "Painting area task started." - -#: AppTools/ToolPaint.py:3158 -msgid "Paint Area Done." -msgstr "Paint Area Done." - -#: AppTools/ToolPaint.py:3356 -msgid "Paint Area failed." -msgstr "Paint Area failed." - -#: AppTools/ToolPaint.py:3362 -msgid "Paint Poly Area Done." -msgstr "Paint Poly Area Done." - -#: AppTools/ToolPanelize.py:55 -msgid "" -"Specify the type of object to be panelized\n" -"It can be of type: Gerber, Excellon or Geometry.\n" -"The selection here decide the type of objects that will be\n" -"in the Object combobox." -msgstr "" -"Specify the type of object to be panelized\n" -"It can be of type: Gerber, Excellon or Geometry.\n" -"The selection here decide the type of objects that will be\n" -"in the Object combobox." - -#: AppTools/ToolPanelize.py:88 -msgid "" -"Object to be panelized. This means that it will\n" -"be duplicated in an array of rows and columns." -msgstr "" -"Object to be panelized. This means that it will\n" -"be duplicated in an array of rows and columns." - -#: AppTools/ToolPanelize.py:100 -msgid "Penelization Reference" -msgstr "Penelization Reference" - -#: AppTools/ToolPanelize.py:102 -msgid "" -"Choose the reference for panelization:\n" -"- Object = the bounding box of a different object\n" -"- Bounding Box = the bounding box of the object to be panelized\n" -"\n" -"The reference is useful when doing panelization for more than one\n" -"object. The spacings (really offsets) will be applied in reference\n" -"to this reference object therefore maintaining the panelized\n" -"objects in sync." -msgstr "" -"Choose the reference for panelization:\n" -"- Object = the bounding box of a different object\n" -"- Bounding Box = the bounding box of the object to be panelized\n" -"\n" -"The reference is useful when doing panelization for more than one\n" -"object. The spacings (really offsets) will be applied in reference\n" -"to this reference object therefore maintaining the panelized\n" -"objects in sync." - -#: AppTools/ToolPanelize.py:123 -msgid "Box Type" -msgstr "Box Type" - -#: AppTools/ToolPanelize.py:125 -msgid "" -"Specify the type of object to be used as an container for\n" -"panelization. It can be: Gerber or Geometry type.\n" -"The selection here decide the type of objects that will be\n" -"in the Box Object combobox." -msgstr "" -"Specify the type of object to be used as an container for\n" -"panelization. It can be: Gerber or Geometry type.\n" -"The selection here decide the type of objects that will be\n" -"in the Box Object combobox." - -#: AppTools/ToolPanelize.py:139 -msgid "" -"The actual object that is used as container for the\n" -" selected object that is to be panelized." -msgstr "" -"The actual object that is used as container for the\n" -" selected object that is to be panelized." - -#: AppTools/ToolPanelize.py:149 -msgid "Panel Data" -msgstr "Panel Data" - -#: AppTools/ToolPanelize.py:151 -msgid "" -"This informations will shape the resulting panel.\n" -"The number of rows and columns will set how many\n" -"duplicates of the original geometry will be generated.\n" -"\n" -"The spacings will set the distance between any two\n" -"elements of the panel array." -msgstr "" -"This informations will shape the resulting panel.\n" -"The number of rows and columns will set how many\n" -"duplicates of the original geometry will be generated.\n" -"\n" -"The spacings will set the distance between any two\n" -"elements of the panel array." - -#: AppTools/ToolPanelize.py:214 -msgid "" -"Choose the type of object for the panel object:\n" -"- Geometry\n" -"- Gerber" -msgstr "" -"Choose the type of object for the panel object:\n" -"- Geometry\n" -"- Gerber" - -#: AppTools/ToolPanelize.py:222 -msgid "Constrain panel within" -msgstr "Constrain panel within" - -#: AppTools/ToolPanelize.py:263 -msgid "Panelize Object" -msgstr "Panelize Object" - -#: AppTools/ToolPanelize.py:265 AppTools/ToolRulesCheck.py:501 -msgid "" -"Panelize the specified object around the specified box.\n" -"In other words it creates multiple copies of the source object,\n" -"arranged in a 2D array of rows and columns." -msgstr "" -"Panelize the specified object around the specified box.\n" -"In other words it creates multiple copies of the source object,\n" -"arranged in a 2D array of rows and columns." - -#: AppTools/ToolPanelize.py:333 -msgid "Panel. Tool" -msgstr "Panel. Tool" - -#: AppTools/ToolPanelize.py:468 -msgid "Columns or Rows are zero value. Change them to a positive integer." -msgstr "Columns or Rows are zero value. Change them to a positive integer." - -#: AppTools/ToolPanelize.py:505 -msgid "Generating panel ... " -msgstr "Generating panel ... " - -#: AppTools/ToolPanelize.py:788 -msgid "Generating panel ... Adding the Gerber code." -msgstr "Generating panel ... Adding the Gerber code." - -#: AppTools/ToolPanelize.py:796 -msgid "Generating panel... Spawning copies" -msgstr "Generating panel... Spawning copies" - -#: AppTools/ToolPanelize.py:803 -msgid "Panel done..." -msgstr "Panel done..." - -#: AppTools/ToolPanelize.py:806 -#, python-brace-format -msgid "" -"{text} Too big for the constrain area. Final panel has {col} columns and " -"{row} rows" -msgstr "" -"{text} Too big for the constrain area. Final panel has {col} columns and " -"{row} rows" - -#: AppTools/ToolPanelize.py:815 -msgid "Panel created successfully." -msgstr "Panel created successfully." - -#: AppTools/ToolPcbWizard.py:31 -msgid "PcbWizard Import Tool" -msgstr "PcbWizard Import Tool" - -#: AppTools/ToolPcbWizard.py:40 -msgid "Import 2-file Excellon" -msgstr "Import 2-file Excellon" - -#: AppTools/ToolPcbWizard.py:51 -msgid "Load files" -msgstr "Load files" - -#: AppTools/ToolPcbWizard.py:57 -msgid "Excellon file" -msgstr "Excellon file" - -#: AppTools/ToolPcbWizard.py:59 -msgid "" -"Load the Excellon file.\n" -"Usually it has a .DRL extension" -msgstr "" -"Load the Excellon file.\n" -"Usually it has a .DRL extension" - -#: AppTools/ToolPcbWizard.py:65 -msgid "INF file" -msgstr "INF file" - -#: AppTools/ToolPcbWizard.py:67 -msgid "Load the INF file." -msgstr "Load the INF file." - -#: AppTools/ToolPcbWizard.py:79 -msgid "Tool Number" -msgstr "Tool Number" - -#: AppTools/ToolPcbWizard.py:81 -msgid "Tool diameter in file units." -msgstr "Tool diameter in file units." - -#: AppTools/ToolPcbWizard.py:87 -msgid "Excellon format" -msgstr "Excellon format" - -#: AppTools/ToolPcbWizard.py:95 -msgid "Int. digits" -msgstr "Int. digits" - -#: AppTools/ToolPcbWizard.py:97 -msgid "The number of digits for the integral part of the coordinates." -msgstr "The number of digits for the integral part of the coordinates." - -#: AppTools/ToolPcbWizard.py:104 -msgid "Frac. digits" -msgstr "Frac. digits" - -#: AppTools/ToolPcbWizard.py:106 -msgid "The number of digits for the fractional part of the coordinates." -msgstr "The number of digits for the fractional part of the coordinates." - -#: AppTools/ToolPcbWizard.py:113 -msgid "No Suppression" -msgstr "No Suppression" - -#: AppTools/ToolPcbWizard.py:114 -msgid "Zeros supp." -msgstr "Zeros supp." - -#: AppTools/ToolPcbWizard.py:116 -msgid "" -"The type of zeros suppression used.\n" -"Can be of type:\n" -"- LZ = leading zeros are kept\n" -"- TZ = trailing zeros are kept\n" -"- No Suppression = no zero suppression" -msgstr "" -"The type of zeros suppression used.\n" -"Can be of type:\n" -"- LZ = leading zeros are kept\n" -"- TZ = trailing zeros are kept\n" -"- No Suppression = no zero suppression" - -#: AppTools/ToolPcbWizard.py:129 -msgid "" -"The type of units that the coordinates and tool\n" -"diameters are using. Can be INCH or MM." -msgstr "" -"The type of units that the coordinates and tool\n" -"diameters are using. Can be INCH or MM." - -#: AppTools/ToolPcbWizard.py:136 -msgid "Import Excellon" -msgstr "Import Excellon" - -#: AppTools/ToolPcbWizard.py:138 -msgid "" -"Import in FlatCAM an Excellon file\n" -"that store it's information's in 2 files.\n" -"One usually has .DRL extension while\n" -"the other has .INF extension." -msgstr "" -"Import in FlatCAM an Excellon file\n" -"that store it's information's in 2 files.\n" -"One usually has .DRL extension while\n" -"the other has .INF extension." - -#: AppTools/ToolPcbWizard.py:197 -msgid "PCBWizard Tool" -msgstr "PCBWizard Tool" - -#: AppTools/ToolPcbWizard.py:291 AppTools/ToolPcbWizard.py:295 -msgid "Load PcbWizard Excellon file" -msgstr "Load PcbWizard Excellon file" - -#: AppTools/ToolPcbWizard.py:314 AppTools/ToolPcbWizard.py:318 -msgid "Load PcbWizard INF file" -msgstr "Load PcbWizard INF file" - -#: AppTools/ToolPcbWizard.py:366 -msgid "" -"The INF file does not contain the tool table.\n" -"Try to open the Excellon file from File -> Open -> Excellon\n" -"and edit the drill diameters manually." -msgstr "" -"The INF file does not contain the tool table.\n" -"Try to open the Excellon file from File -> Open -> Excellon\n" -"and edit the drill diameters manually." - -#: AppTools/ToolPcbWizard.py:387 -msgid "PcbWizard .INF file loaded." -msgstr "PcbWizard .INF file loaded." - -#: AppTools/ToolPcbWizard.py:392 -msgid "Main PcbWizard Excellon file loaded." -msgstr "Main PcbWizard Excellon file loaded." - -#: AppTools/ToolPcbWizard.py:424 App_Main.py:8520 -msgid "This is not Excellon file." -msgstr "This is not Excellon file." - -#: AppTools/ToolPcbWizard.py:427 -msgid "Cannot parse file" -msgstr "Cannot parse file" - -#: AppTools/ToolPcbWizard.py:450 -msgid "Importing Excellon." -msgstr "Importing Excellon." - -#: AppTools/ToolPcbWizard.py:457 -msgid "Import Excellon file failed." -msgstr "Import Excellon file failed." - -#: AppTools/ToolPcbWizard.py:464 -msgid "Imported" -msgstr "Imported" - -#: AppTools/ToolPcbWizard.py:467 -msgid "Excellon merging is in progress. Please wait..." -msgstr "Excellon merging is in progress. Please wait..." - -#: AppTools/ToolPcbWizard.py:469 -msgid "The imported Excellon file is empty." -msgstr "The imported Excellon file is empty." - -#: AppTools/ToolProperties.py:116 App_Main.py:4692 App_Main.py:6803 -#: App_Main.py:6903 App_Main.py:6944 App_Main.py:6985 App_Main.py:7027 -#: App_Main.py:7069 App_Main.py:7113 App_Main.py:7157 App_Main.py:7681 -#: App_Main.py:7685 -msgid "No object selected." -msgstr "No object selected." - -#: AppTools/ToolProperties.py:131 -msgid "Object Properties are displayed." -msgstr "Object Properties are displayed." - -#: AppTools/ToolProperties.py:136 -msgid "Properties Tool" -msgstr "Properties Tool" - -#: AppTools/ToolProperties.py:150 -msgid "TYPE" -msgstr "TYPE" - -#: AppTools/ToolProperties.py:151 -msgid "NAME" -msgstr "NAME" - -#: AppTools/ToolProperties.py:153 -msgid "Dimensions" -msgstr "Dimensions" - -#: AppTools/ToolProperties.py:181 -msgid "Geo Type" -msgstr "Geo Type" - -#: AppTools/ToolProperties.py:184 -msgid "Single-Geo" -msgstr "Single-Geo" - -#: AppTools/ToolProperties.py:185 -msgid "Multi-Geo" -msgstr "Multi-Geo" - -#: AppTools/ToolProperties.py:196 -msgid "Calculating dimensions ... Please wait." -msgstr "Calculating dimensions ... Please wait." - -#: AppTools/ToolProperties.py:339 AppTools/ToolProperties.py:343 -#: AppTools/ToolProperties.py:345 -msgid "Inch" -msgstr "Inch" - -#: AppTools/ToolProperties.py:339 AppTools/ToolProperties.py:344 -#: AppTools/ToolProperties.py:346 -msgid "Metric" -msgstr "Metric" - -#: AppTools/ToolProperties.py:421 AppTools/ToolProperties.py:486 -msgid "Drills number" -msgstr "Drills number" - -#: AppTools/ToolProperties.py:422 AppTools/ToolProperties.py:488 -msgid "Slots number" -msgstr "Slots number" - -#: AppTools/ToolProperties.py:424 -msgid "Drills total number:" -msgstr "Drills total number:" - -#: AppTools/ToolProperties.py:425 -msgid "Slots total number:" -msgstr "Slots total number:" - -#: AppTools/ToolProperties.py:452 AppTools/ToolProperties.py:455 -#: AppTools/ToolProperties.py:458 AppTools/ToolProperties.py:483 -msgid "Present" -msgstr "Present" - -#: AppTools/ToolProperties.py:453 AppTools/ToolProperties.py:484 -msgid "Solid Geometry" -msgstr "Solid Geometry" - -#: AppTools/ToolProperties.py:456 -msgid "GCode Text" -msgstr "GCode Text" - -#: AppTools/ToolProperties.py:459 -msgid "GCode Geometry" -msgstr "GCode Geometry" - -#: AppTools/ToolProperties.py:462 -msgid "Data" -msgstr "Data" - -#: AppTools/ToolProperties.py:495 -msgid "Depth of Cut" -msgstr "Depth of Cut" - -#: AppTools/ToolProperties.py:507 -msgid "Clearance Height" -msgstr "Clearance Height" - -#: AppTools/ToolProperties.py:539 -msgid "Routing time" -msgstr "Routing time" - -#: AppTools/ToolProperties.py:546 -msgid "Travelled distance" -msgstr "Travelled distance" - -#: AppTools/ToolProperties.py:564 -msgid "Width" -msgstr "Width" - -#: AppTools/ToolProperties.py:570 AppTools/ToolProperties.py:578 -msgid "Box Area" -msgstr "Box Area" - -#: AppTools/ToolProperties.py:573 AppTools/ToolProperties.py:581 -msgid "Convex_Hull Area" -msgstr "Convex_Hull Area" - -#: AppTools/ToolProperties.py:588 AppTools/ToolProperties.py:591 -msgid "Copper Area" -msgstr "Copper Area" - -#: AppTools/ToolPunchGerber.py:30 AppTools/ToolPunchGerber.py:323 -msgid "Punch Gerber" -msgstr "Punch Gerber" - -#: AppTools/ToolPunchGerber.py:65 -msgid "Gerber into which to punch holes" -msgstr "Gerber into which to punch holes" - -#: AppTools/ToolPunchGerber.py:85 -msgid "ALL" -msgstr "ALL" - -#: AppTools/ToolPunchGerber.py:166 -msgid "" -"Remove the geometry of Excellon from the Gerber to create the holes in pads." -msgstr "" -"Remove the geometry of Excellon from the Gerber to create the holes in pads." - -#: AppTools/ToolPunchGerber.py:325 -msgid "" -"Create a Gerber object from the selected object, within\n" -"the specified box." -msgstr "" -"Create a Gerber object from the selected object, within\n" -"the specified box." - -#: AppTools/ToolPunchGerber.py:425 -msgid "Punch Tool" -msgstr "Punch Tool" - -#: AppTools/ToolPunchGerber.py:599 -msgid "The value of the fixed diameter is 0.0. Aborting." -msgstr "The value of the fixed diameter is 0.0. Aborting." - -#: AppTools/ToolPunchGerber.py:602 -msgid "" -"Could not generate punched hole Gerber because the punch hole size is bigger " -"than some of the apertures in the Gerber object." -msgstr "" -"Could not generate punched hole Gerber because the punch hole size is bigger " -"than some of the apertures in the Gerber object." - -#: AppTools/ToolPunchGerber.py:665 -msgid "" -"Could not generate punched hole Gerber because the newly created object " -"geometry is the same as the one in the source object geometry..." -msgstr "" -"Could not generate punched hole Gerber because the newly created object " -"geometry is the same as the one in the source object geometry..." - -#: AppTools/ToolQRCode.py:80 -msgid "Gerber Object to which the QRCode will be added." -msgstr "Gerber Object to which the QRCode will be added." - -#: AppTools/ToolQRCode.py:116 -msgid "The parameters used to shape the QRCode." -msgstr "The parameters used to shape the QRCode." - -#: AppTools/ToolQRCode.py:216 -msgid "Export QRCode" -msgstr "Export QRCode" - -#: AppTools/ToolQRCode.py:218 -msgid "" -"Show a set of controls allowing to export the QRCode\n" -"to a SVG file or an PNG file." -msgstr "" -"Show a set of controls allowing to export the QRCode\n" -"to a SVG file or an PNG file." - -#: AppTools/ToolQRCode.py:257 -msgid "Transparent back color" -msgstr "Transparent back color" - -#: AppTools/ToolQRCode.py:282 -msgid "Export QRCode SVG" -msgstr "Export QRCode SVG" - -#: AppTools/ToolQRCode.py:284 -msgid "Export a SVG file with the QRCode content." -msgstr "Export a SVG file with the QRCode content." - -#: AppTools/ToolQRCode.py:295 -msgid "Export QRCode PNG" -msgstr "Export QRCode PNG" - -#: AppTools/ToolQRCode.py:297 -msgid "Export a PNG image file with the QRCode content." -msgstr "Export a PNG image file with the QRCode content." - -#: AppTools/ToolQRCode.py:308 -msgid "Insert QRCode" -msgstr "Insert QRCode" - -#: AppTools/ToolQRCode.py:310 -msgid "Create the QRCode object." -msgstr "Create the QRCode object." - -#: AppTools/ToolQRCode.py:424 AppTools/ToolQRCode.py:759 -#: AppTools/ToolQRCode.py:808 -msgid "Cancelled. There is no QRCode Data in the text box." -msgstr "Cancelled. There is no QRCode Data in the text box." - -#: AppTools/ToolQRCode.py:443 -msgid "Generating QRCode geometry" -msgstr "Generating QRCode geometry" - -#: AppTools/ToolQRCode.py:483 -msgid "Click on the Destination point ..." -msgstr "Click on the Destination point ..." - -#: AppTools/ToolQRCode.py:598 -msgid "QRCode Tool done." -msgstr "QRCode Tool done." - -#: AppTools/ToolQRCode.py:791 AppTools/ToolQRCode.py:795 -msgid "Export PNG" -msgstr "Export PNG" - -#: AppTools/ToolQRCode.py:838 AppTools/ToolQRCode.py:842 App_Main.py:6835 -#: App_Main.py:6839 -msgid "Export SVG" -msgstr "Export SVG" - -#: AppTools/ToolRulesCheck.py:33 -msgid "Check Rules" -msgstr "Check Rules" - -#: AppTools/ToolRulesCheck.py:63 -msgid "Gerber objects for which to check rules." -msgstr "Gerber objects for which to check rules." - -#: AppTools/ToolRulesCheck.py:78 -msgid "Top" -msgstr "Top" - -#: AppTools/ToolRulesCheck.py:80 -msgid "The Top Gerber Copper object for which rules are checked." -msgstr "The Top Gerber Copper object for which rules are checked." - -#: AppTools/ToolRulesCheck.py:96 -msgid "Bottom" -msgstr "Bottom" - -#: AppTools/ToolRulesCheck.py:98 -msgid "The Bottom Gerber Copper object for which rules are checked." -msgstr "The Bottom Gerber Copper object for which rules are checked." - -#: AppTools/ToolRulesCheck.py:114 -msgid "SM Top" -msgstr "SM Top" - -#: AppTools/ToolRulesCheck.py:116 -msgid "The Top Gerber Solder Mask object for which rules are checked." -msgstr "The Top Gerber Solder Mask object for which rules are checked." - -#: AppTools/ToolRulesCheck.py:132 -msgid "SM Bottom" -msgstr "SM Bottom" - -#: AppTools/ToolRulesCheck.py:134 -msgid "The Bottom Gerber Solder Mask object for which rules are checked." -msgstr "The Bottom Gerber Solder Mask object for which rules are checked." - -#: AppTools/ToolRulesCheck.py:150 -msgid "Silk Top" -msgstr "Silk Top" - -#: AppTools/ToolRulesCheck.py:152 -msgid "The Top Gerber Silkscreen object for which rules are checked." -msgstr "The Top Gerber Silkscreen object for which rules are checked." - -#: AppTools/ToolRulesCheck.py:168 -msgid "Silk Bottom" -msgstr "Silk Bottom" - -#: AppTools/ToolRulesCheck.py:170 -msgid "The Bottom Gerber Silkscreen object for which rules are checked." -msgstr "The Bottom Gerber Silkscreen object for which rules are checked." - -#: AppTools/ToolRulesCheck.py:188 -msgid "The Gerber Outline (Cutout) object for which rules are checked." -msgstr "The Gerber Outline (Cutout) object for which rules are checked." - -#: AppTools/ToolRulesCheck.py:201 -msgid "Excellon objects for which to check rules." -msgstr "Excellon objects for which to check rules." - -#: AppTools/ToolRulesCheck.py:213 -msgid "Excellon 1" -msgstr "Excellon 1" - -#: AppTools/ToolRulesCheck.py:215 -msgid "" -"Excellon object for which to check rules.\n" -"Holds the plated holes or a general Excellon file content." -msgstr "" -"Excellon object for which to check rules.\n" -"Holds the plated holes or a general Excellon file content." - -#: AppTools/ToolRulesCheck.py:232 -msgid "Excellon 2" -msgstr "Excellon 2" - -#: AppTools/ToolRulesCheck.py:234 -msgid "" -"Excellon object for which to check rules.\n" -"Holds the non-plated holes." -msgstr "" -"Excellon object for which to check rules.\n" -"Holds the non-plated holes." - -#: AppTools/ToolRulesCheck.py:247 -msgid "All Rules" -msgstr "All Rules" - -#: AppTools/ToolRulesCheck.py:249 -msgid "This check/uncheck all the rules below." -msgstr "This check/uncheck all the rules below." - -#: AppTools/ToolRulesCheck.py:499 -msgid "Run Rules Check" -msgstr "Run Rules Check" - -#: AppTools/ToolRulesCheck.py:1158 AppTools/ToolRulesCheck.py:1218 -#: AppTools/ToolRulesCheck.py:1255 AppTools/ToolRulesCheck.py:1327 -#: AppTools/ToolRulesCheck.py:1381 AppTools/ToolRulesCheck.py:1419 -#: AppTools/ToolRulesCheck.py:1484 -msgid "Value is not valid." -msgstr "Value is not valid." - -#: AppTools/ToolRulesCheck.py:1172 -msgid "TOP -> Copper to Copper clearance" -msgstr "TOP -> Copper to Copper clearance" - -#: AppTools/ToolRulesCheck.py:1183 -msgid "BOTTOM -> Copper to Copper clearance" -msgstr "BOTTOM -> Copper to Copper clearance" - -#: AppTools/ToolRulesCheck.py:1188 AppTools/ToolRulesCheck.py:1282 -#: AppTools/ToolRulesCheck.py:1446 -msgid "" -"At least one Gerber object has to be selected for this rule but none is " -"selected." -msgstr "" -"At least one Gerber object has to be selected for this rule but none is " -"selected." - -#: AppTools/ToolRulesCheck.py:1224 -msgid "" -"One of the copper Gerber objects or the Outline Gerber object is not valid." -msgstr "" -"One of the copper Gerber objects or the Outline Gerber object is not valid." - -#: AppTools/ToolRulesCheck.py:1237 AppTools/ToolRulesCheck.py:1401 -msgid "" -"Outline Gerber object presence is mandatory for this rule but it is not " -"selected." -msgstr "" -"Outline Gerber object presence is mandatory for this rule but it is not " -"selected." - -#: AppTools/ToolRulesCheck.py:1254 AppTools/ToolRulesCheck.py:1281 -msgid "Silk to Silk clearance" -msgstr "Silk to Silk clearance" - -#: AppTools/ToolRulesCheck.py:1267 -msgid "TOP -> Silk to Silk clearance" -msgstr "TOP -> Silk to Silk clearance" - -#: AppTools/ToolRulesCheck.py:1277 -msgid "BOTTOM -> Silk to Silk clearance" -msgstr "BOTTOM -> Silk to Silk clearance" - -#: AppTools/ToolRulesCheck.py:1333 -msgid "One or more of the Gerber objects is not valid." -msgstr "One or more of the Gerber objects is not valid." - -#: AppTools/ToolRulesCheck.py:1341 -msgid "TOP -> Silk to Solder Mask Clearance" -msgstr "TOP -> Silk to Solder Mask Clearance" - -#: AppTools/ToolRulesCheck.py:1347 -msgid "BOTTOM -> Silk to Solder Mask Clearance" -msgstr "BOTTOM -> Silk to Solder Mask Clearance" - -#: AppTools/ToolRulesCheck.py:1351 -msgid "" -"Both Silk and Solder Mask Gerber objects has to be either both Top or both " -"Bottom." -msgstr "" -"Both Silk and Solder Mask Gerber objects has to be either both Top or both " -"Bottom." - -#: AppTools/ToolRulesCheck.py:1387 -msgid "" -"One of the Silk Gerber objects or the Outline Gerber object is not valid." -msgstr "" -"One of the Silk Gerber objects or the Outline Gerber object is not valid." - -#: AppTools/ToolRulesCheck.py:1431 -msgid "TOP -> Minimum Solder Mask Sliver" -msgstr "TOP -> Minimum Solder Mask Sliver" - -#: AppTools/ToolRulesCheck.py:1441 -msgid "BOTTOM -> Minimum Solder Mask Sliver" -msgstr "BOTTOM -> Minimum Solder Mask Sliver" - -#: AppTools/ToolRulesCheck.py:1490 -msgid "One of the Copper Gerber objects or the Excellon objects is not valid." -msgstr "One of the Copper Gerber objects or the Excellon objects is not valid." - -#: AppTools/ToolRulesCheck.py:1506 -msgid "" -"Excellon object presence is mandatory for this rule but none is selected." -msgstr "" -"Excellon object presence is mandatory for this rule but none is selected." - -#: AppTools/ToolRulesCheck.py:1579 AppTools/ToolRulesCheck.py:1592 -#: AppTools/ToolRulesCheck.py:1603 AppTools/ToolRulesCheck.py:1616 -msgid "STATUS" -msgstr "STATUS" - -#: AppTools/ToolRulesCheck.py:1582 AppTools/ToolRulesCheck.py:1606 -msgid "FAILED" -msgstr "FAILED" - -#: AppTools/ToolRulesCheck.py:1595 AppTools/ToolRulesCheck.py:1619 -msgid "PASSED" -msgstr "PASSED" - -#: AppTools/ToolRulesCheck.py:1596 AppTools/ToolRulesCheck.py:1620 -msgid "Violations: There are no violations for the current rule." -msgstr "Violations: There are no violations for the current rule." - -#: AppTools/ToolShell.py:59 -msgid "Clear the text." -msgstr "Clear the text." - -#: AppTools/ToolShell.py:91 AppTools/ToolShell.py:93 -msgid "...processing..." -msgstr "...processing..." - -#: AppTools/ToolSolderPaste.py:37 -msgid "Solder Paste Tool" -msgstr "Solder Paste Tool" - -#: AppTools/ToolSolderPaste.py:68 -msgid "Gerber Solderpaste object." -msgstr "Gerber Solderpaste object." - -#: AppTools/ToolSolderPaste.py:81 -msgid "" -"Tools pool from which the algorithm\n" -"will pick the ones used for dispensing solder paste." -msgstr "" -"Tools pool from which the algorithm\n" -"will pick the ones used for dispensing solder paste." - -#: AppTools/ToolSolderPaste.py:96 -msgid "" -"This is the Tool Number.\n" -"The solder dispensing will start with the tool with the biggest \n" -"diameter, continuing until there are no more Nozzle tools.\n" -"If there are no longer tools but there are still pads not covered\n" -" with solder paste, the app will issue a warning message box." -msgstr "" -"This is the Tool Number.\n" -"The solder dispensing will start with the tool with the biggest \n" -"diameter, continuing until there are no more Nozzle tools.\n" -"If there are no longer tools but there are still pads not covered\n" -" with solder paste, the app will issue a warning message box." - -#: AppTools/ToolSolderPaste.py:103 -msgid "" -"Nozzle tool Diameter. It's value (in current FlatCAM units)\n" -"is the width of the solder paste dispensed." -msgstr "" -"Nozzle tool Diameter. It's value (in current FlatCAM units)\n" -"is the width of the solder paste dispensed." - -#: AppTools/ToolSolderPaste.py:110 -msgid "New Nozzle Tool" -msgstr "New Nozzle Tool" - -#: AppTools/ToolSolderPaste.py:129 -msgid "" -"Add a new nozzle tool to the Tool Table\n" -"with the diameter specified above." -msgstr "" -"Add a new nozzle tool to the Tool Table\n" -"with the diameter specified above." - -#: AppTools/ToolSolderPaste.py:151 -msgid "STEP 1" -msgstr "STEP 1" - -#: AppTools/ToolSolderPaste.py:153 -msgid "" -"First step is to select a number of nozzle tools for usage\n" -"and then optionally modify the GCode parameters below." -msgstr "" -"First step is to select a number of nozzle tools for usage\n" -"and then optionally modify the GCode parameters below." - -#: AppTools/ToolSolderPaste.py:156 -msgid "" -"Select tools.\n" -"Modify parameters." -msgstr "" -"Select tools.\n" -"Modify parameters." - -#: AppTools/ToolSolderPaste.py:276 -msgid "" -"Feedrate (speed) while moving up vertically\n" -" to Dispense position (on Z plane)." -msgstr "" -"Feedrate (speed) while moving up vertically\n" -" to Dispense position (on Z plane)." - -#: AppTools/ToolSolderPaste.py:346 -msgid "" -"Generate GCode for Solder Paste dispensing\n" -"on PCB pads." -msgstr "" -"Generate GCode for Solder Paste dispensing\n" -"on PCB pads." - -#: AppTools/ToolSolderPaste.py:367 -msgid "STEP 2" -msgstr "STEP 2" - -#: AppTools/ToolSolderPaste.py:369 -msgid "" -"Second step is to create a solder paste dispensing\n" -"geometry out of an Solder Paste Mask Gerber file." -msgstr "" -"Second step is to create a solder paste dispensing\n" -"geometry out of an Solder Paste Mask Gerber file." - -#: AppTools/ToolSolderPaste.py:375 -msgid "Generate solder paste dispensing geometry." -msgstr "Generate solder paste dispensing geometry." - -#: AppTools/ToolSolderPaste.py:398 -msgid "Geo Result" -msgstr "Geo Result" - -#: AppTools/ToolSolderPaste.py:400 -msgid "" -"Geometry Solder Paste object.\n" -"The name of the object has to end in:\n" -"'_solderpaste' as a protection." -msgstr "" -"Geometry Solder Paste object.\n" -"The name of the object has to end in:\n" -"'_solderpaste' as a protection." - -#: AppTools/ToolSolderPaste.py:409 -msgid "STEP 3" -msgstr "STEP 3" - -#: AppTools/ToolSolderPaste.py:411 -msgid "" -"Third step is to select a solder paste dispensing geometry,\n" -"and then generate a CNCJob object.\n" -"\n" -"REMEMBER: if you want to create a CNCJob with new parameters,\n" -"first you need to generate a geometry with those new params,\n" -"and only after that you can generate an updated CNCJob." -msgstr "" -"Third step is to select a solder paste dispensing geometry,\n" -"and then generate a CNCJob object.\n" -"\n" -"REMEMBER: if you want to create a CNCJob with new parameters,\n" -"first you need to generate a geometry with those new params,\n" -"and only after that you can generate an updated CNCJob." - -#: AppTools/ToolSolderPaste.py:432 -msgid "CNC Result" -msgstr "CNC Result" - -#: AppTools/ToolSolderPaste.py:434 -msgid "" -"CNCJob Solder paste object.\n" -"In order to enable the GCode save section,\n" -"the name of the object has to end in:\n" -"'_solderpaste' as a protection." -msgstr "" -"CNCJob Solder paste object.\n" -"In order to enable the GCode save section,\n" -"the name of the object has to end in:\n" -"'_solderpaste' as a protection." - -#: AppTools/ToolSolderPaste.py:444 -msgid "View GCode" -msgstr "View GCode" - -#: AppTools/ToolSolderPaste.py:446 -msgid "" -"View the generated GCode for Solder Paste dispensing\n" -"on PCB pads." -msgstr "" -"View the generated GCode for Solder Paste dispensing\n" -"on PCB pads." - -#: AppTools/ToolSolderPaste.py:456 -msgid "Save GCode" -msgstr "Save GCode" - -#: AppTools/ToolSolderPaste.py:458 -msgid "" -"Save the generated GCode for Solder Paste dispensing\n" -"on PCB pads, to a file." -msgstr "" -"Save the generated GCode for Solder Paste dispensing\n" -"on PCB pads, to a file." - -#: AppTools/ToolSolderPaste.py:468 -msgid "STEP 4" -msgstr "STEP 4" - -#: AppTools/ToolSolderPaste.py:470 -msgid "" -"Fourth step (and last) is to select a CNCJob made from \n" -"a solder paste dispensing geometry, and then view/save it's GCode." -msgstr "" -"Fourth step (and last) is to select a CNCJob made from \n" -"a solder paste dispensing geometry, and then view/save it's GCode." - -#: AppTools/ToolSolderPaste.py:930 -msgid "New Nozzle tool added to Tool Table." -msgstr "New Nozzle tool added to Tool Table." - -#: AppTools/ToolSolderPaste.py:973 -msgid "Nozzle tool from Tool Table was edited." -msgstr "Nozzle tool from Tool Table was edited." - -#: AppTools/ToolSolderPaste.py:1032 -msgid "Delete failed. Select a Nozzle tool to delete." -msgstr "Delete failed. Select a Nozzle tool to delete." - -#: AppTools/ToolSolderPaste.py:1038 -msgid "Nozzle tool(s) deleted from Tool Table." -msgstr "Nozzle tool(s) deleted from Tool Table." - -#: AppTools/ToolSolderPaste.py:1094 -msgid "No SolderPaste mask Gerber object loaded." -msgstr "No SolderPaste mask Gerber object loaded." - -#: AppTools/ToolSolderPaste.py:1112 -msgid "Creating Solder Paste dispensing geometry." -msgstr "Creating Solder Paste dispensing geometry." - -#: AppTools/ToolSolderPaste.py:1125 -msgid "No Nozzle tools in the tool table." -msgstr "No Nozzle tools in the tool table." - -#: AppTools/ToolSolderPaste.py:1251 -msgid "Cancelled. Empty file, it has no geometry..." -msgstr "Cancelled. Empty file, it has no geometry..." - -#: AppTools/ToolSolderPaste.py:1254 -msgid "Solder Paste geometry generated successfully" -msgstr "Solder Paste geometry generated successfully" - -#: AppTools/ToolSolderPaste.py:1261 -msgid "Some or all pads have no solder due of inadequate nozzle diameters..." -msgstr "Some or all pads have no solder due of inadequate nozzle diameters..." - -#: AppTools/ToolSolderPaste.py:1275 -msgid "Generating Solder Paste dispensing geometry..." -msgstr "Generating Solder Paste dispensing geometry..." - -#: AppTools/ToolSolderPaste.py:1295 -msgid "There is no Geometry object available." -msgstr "There is no Geometry object available." - -#: AppTools/ToolSolderPaste.py:1300 -msgid "This Geometry can't be processed. NOT a solder_paste_tool geometry." -msgstr "This Geometry can't be processed. NOT a solder_paste_tool geometry." - -#: AppTools/ToolSolderPaste.py:1336 -msgid "An internal error has ocurred. See shell.\n" -msgstr "An internal error has ocurred. See shell.\n" - -#: AppTools/ToolSolderPaste.py:1401 -msgid "ToolSolderPaste CNCjob created" -msgstr "ToolSolderPaste CNCjob created" - -#: AppTools/ToolSolderPaste.py:1420 -msgid "SP GCode Editor" -msgstr "SP GCode Editor" - -#: AppTools/ToolSolderPaste.py:1432 AppTools/ToolSolderPaste.py:1437 -#: AppTools/ToolSolderPaste.py:1492 -msgid "" -"This CNCJob object can't be processed. NOT a solder_paste_tool CNCJob object." -msgstr "" -"This CNCJob object can't be processed. NOT a solder_paste_tool CNCJob object." - -#: AppTools/ToolSolderPaste.py:1462 -msgid "No Gcode in the object" -msgstr "No Gcode in the object" - -#: AppTools/ToolSolderPaste.py:1502 -msgid "Export GCode ..." -msgstr "Export GCode ..." - -#: AppTools/ToolSolderPaste.py:1550 -msgid "Solder paste dispenser GCode file saved to" -msgstr "Solder paste dispenser GCode file saved to" - -#: AppTools/ToolSub.py:83 -msgid "" -"Gerber object from which to subtract\n" -"the subtractor Gerber object." -msgstr "" -"Gerber object from which to subtract\n" -"the subtractor Gerber object." - -#: AppTools/ToolSub.py:96 AppTools/ToolSub.py:151 -msgid "Subtractor" -msgstr "Subtractor" - -#: AppTools/ToolSub.py:98 -msgid "" -"Gerber object that will be subtracted\n" -"from the target Gerber object." -msgstr "" -"Gerber object that will be subtracted\n" -"from the target Gerber object." - -#: AppTools/ToolSub.py:105 -msgid "Subtract Gerber" -msgstr "Subtract Gerber" - -#: AppTools/ToolSub.py:107 -msgid "" -"Will remove the area occupied by the subtractor\n" -"Gerber from the Target Gerber.\n" -"Can be used to remove the overlapping silkscreen\n" -"over the soldermask." -msgstr "" -"Will remove the area occupied by the subtractor\n" -"Gerber from the Target Gerber.\n" -"Can be used to remove the overlapping silkscreen\n" -"over the soldermask." - -#: AppTools/ToolSub.py:138 -msgid "" -"Geometry object from which to subtract\n" -"the subtractor Geometry object." -msgstr "" -"Geometry object from which to subtract\n" -"the subtractor Geometry object." - -#: AppTools/ToolSub.py:153 -msgid "" -"Geometry object that will be subtracted\n" -"from the target Geometry object." -msgstr "" -"Geometry object that will be subtracted\n" -"from the target Geometry object." - -#: AppTools/ToolSub.py:161 -msgid "" -"Checking this will close the paths cut by the Geometry subtractor object." -msgstr "" -"Checking this will close the paths cut by the Geometry subtractor object." - -#: AppTools/ToolSub.py:164 -msgid "Subtract Geometry" -msgstr "Subtract Geometry" - -#: AppTools/ToolSub.py:166 -msgid "" -"Will remove the area occupied by the subtractor\n" -"Geometry from the Target Geometry." -msgstr "" -"Will remove the area occupied by the subtractor\n" -"Geometry from the Target Geometry." - -#: AppTools/ToolSub.py:264 -msgid "Sub Tool" -msgstr "Sub Tool" - -#: AppTools/ToolSub.py:285 AppTools/ToolSub.py:490 -msgid "No Target object loaded." -msgstr "No Target object loaded." - -#: AppTools/ToolSub.py:288 -msgid "Loading geometry from Gerber objects." -msgstr "Loading geometry from Gerber objects." - -#: AppTools/ToolSub.py:300 AppTools/ToolSub.py:505 -msgid "No Subtractor object loaded." -msgstr "No Subtractor object loaded." - -#: AppTools/ToolSub.py:342 -msgid "Finished parsing geometry for aperture" -msgstr "Finished parsing geometry for aperture" - -#: AppTools/ToolSub.py:344 -msgid "Subtraction aperture processing finished." -msgstr "Subtraction aperture processing finished." - -#: AppTools/ToolSub.py:464 AppTools/ToolSub.py:662 -msgid "Generating new object ..." -msgstr "Generating new object ..." - -#: AppTools/ToolSub.py:467 AppTools/ToolSub.py:666 AppTools/ToolSub.py:745 -msgid "Generating new object failed." -msgstr "Generating new object failed." - -#: AppTools/ToolSub.py:471 AppTools/ToolSub.py:672 -msgid "Created" -msgstr "Created" - -#: AppTools/ToolSub.py:519 -msgid "Currently, the Subtractor geometry cannot be of type Multigeo." -msgstr "Currently, the Subtractor geometry cannot be of type Multigeo." - -#: AppTools/ToolSub.py:564 -msgid "Parsing solid_geometry ..." -msgstr "Parsing solid_geometry ..." - -#: AppTools/ToolSub.py:566 -msgid "Parsing solid_geometry for tool" -msgstr "Parsing solid_geometry for tool" - -#: AppTools/ToolTransform.py:23 -msgid "Object Transform" -msgstr "Object Transform" - -#: AppTools/ToolTransform.py:78 -msgid "" -"Rotate the selected object(s).\n" -"The point of reference is the middle of\n" -"the bounding box for all selected objects." -msgstr "" -"Rotate the selected object(s).\n" -"The point of reference is the middle of\n" -"the bounding box for all selected objects." - -#: AppTools/ToolTransform.py:99 AppTools/ToolTransform.py:120 -msgid "" -"Angle for Skew action, in degrees.\n" -"Float number between -360 and 360." -msgstr "" -"Angle for Skew action, in degrees.\n" -"Float number between -360 and 360." - -#: AppTools/ToolTransform.py:109 AppTools/ToolTransform.py:130 -msgid "" -"Skew/shear the selected object(s).\n" -"The point of reference is the middle of\n" -"the bounding box for all selected objects." -msgstr "" -"Skew/shear the selected object(s).\n" -"The point of reference is the middle of\n" -"the bounding box for all selected objects." - -#: AppTools/ToolTransform.py:159 AppTools/ToolTransform.py:179 -msgid "" -"Scale the selected object(s).\n" -"The point of reference depends on \n" -"the Scale reference checkbox state." -msgstr "" -"Scale the selected object(s).\n" -"The point of reference depends on \n" -"the Scale reference checkbox state." - -#: AppTools/ToolTransform.py:228 AppTools/ToolTransform.py:248 -msgid "" -"Offset the selected object(s).\n" -"The point of reference is the middle of\n" -"the bounding box for all selected objects.\n" -msgstr "" -"Offset the selected object(s).\n" -"The point of reference is the middle of\n" -"the bounding box for all selected objects.\n" - -#: AppTools/ToolTransform.py:268 AppTools/ToolTransform.py:273 -msgid "Flip the selected object(s) over the X axis." -msgstr "Flip the selected object(s) over the X axis." - -#: AppTools/ToolTransform.py:297 -msgid "Ref. Point" -msgstr "Ref. Point" - -#: AppTools/ToolTransform.py:348 -msgid "" -"Create the buffer effect on each geometry,\n" -"element from the selected object, using the distance." -msgstr "" -"Create the buffer effect on each geometry,\n" -"element from the selected object, using the distance." - -#: AppTools/ToolTransform.py:374 -msgid "" -"Create the buffer effect on each geometry,\n" -"element from the selected object, using the factor." -msgstr "" -"Create the buffer effect on each geometry,\n" -"element from the selected object, using the factor." - -#: AppTools/ToolTransform.py:479 -msgid "Buffer D" -msgstr "Buffer D" - -#: AppTools/ToolTransform.py:480 -msgid "Buffer F" -msgstr "Buffer F" - -#: AppTools/ToolTransform.py:557 -msgid "Rotate transformation can not be done for a value of 0." -msgstr "Rotate transformation can not be done for a value of 0." - -#: AppTools/ToolTransform.py:596 AppTools/ToolTransform.py:619 -msgid "Scale transformation can not be done for a factor of 0 or 1." -msgstr "Scale transformation can not be done for a factor of 0 or 1." - -#: AppTools/ToolTransform.py:634 AppTools/ToolTransform.py:644 -msgid "Offset transformation can not be done for a value of 0." -msgstr "Offset transformation can not be done for a value of 0." - -#: AppTools/ToolTransform.py:676 -msgid "No object selected. Please Select an object to rotate!" -msgstr "No object selected. Please Select an object to rotate!" - -#: AppTools/ToolTransform.py:702 -msgid "CNCJob objects can't be rotated." -msgstr "CNCJob objects can't be rotated." - -#: AppTools/ToolTransform.py:710 -msgid "Rotate done" -msgstr "Rotate done" - -#: AppTools/ToolTransform.py:713 AppTools/ToolTransform.py:783 -#: AppTools/ToolTransform.py:833 AppTools/ToolTransform.py:887 -#: AppTools/ToolTransform.py:917 AppTools/ToolTransform.py:953 -msgid "Due of" -msgstr "Due of" - -#: AppTools/ToolTransform.py:713 AppTools/ToolTransform.py:783 -#: AppTools/ToolTransform.py:833 AppTools/ToolTransform.py:887 -#: AppTools/ToolTransform.py:917 AppTools/ToolTransform.py:953 -msgid "action was not executed." -msgstr "action was not executed." - -#: AppTools/ToolTransform.py:725 -msgid "No object selected. Please Select an object to flip" -msgstr "No object selected. Please Select an object to flip" - -#: AppTools/ToolTransform.py:758 -msgid "CNCJob objects can't be mirrored/flipped." -msgstr "CNCJob objects can't be mirrored/flipped." - -#: AppTools/ToolTransform.py:793 -msgid "Skew transformation can not be done for 0, 90 and 180 degrees." -msgstr "Skew transformation can not be done for 0, 90 and 180 degrees." - -#: AppTools/ToolTransform.py:798 -msgid "No object selected. Please Select an object to shear/skew!" -msgstr "No object selected. Please Select an object to shear/skew!" - -#: AppTools/ToolTransform.py:818 -msgid "CNCJob objects can't be skewed." -msgstr "CNCJob objects can't be skewed." - -#: AppTools/ToolTransform.py:830 -msgid "Skew on the" -msgstr "Skew on the" - -#: AppTools/ToolTransform.py:830 AppTools/ToolTransform.py:884 -#: AppTools/ToolTransform.py:914 -msgid "axis done" -msgstr "axis done" - -#: AppTools/ToolTransform.py:844 -msgid "No object selected. Please Select an object to scale!" -msgstr "No object selected. Please Select an object to scale!" - -#: AppTools/ToolTransform.py:875 -msgid "CNCJob objects can't be scaled." -msgstr "CNCJob objects can't be scaled." - -#: AppTools/ToolTransform.py:884 -msgid "Scale on the" -msgstr "Scale on the" - -#: AppTools/ToolTransform.py:894 -msgid "No object selected. Please Select an object to offset!" -msgstr "No object selected. Please Select an object to offset!" - -#: AppTools/ToolTransform.py:901 -msgid "CNCJob objects can't be offset." -msgstr "CNCJob objects can't be offset." - -#: AppTools/ToolTransform.py:914 -msgid "Offset on the" -msgstr "Offset on the" - -#: AppTools/ToolTransform.py:924 -msgid "No object selected. Please Select an object to buffer!" -msgstr "No object selected. Please Select an object to buffer!" - -#: AppTools/ToolTransform.py:927 -msgid "Applying Buffer" -msgstr "Applying Buffer" - -#: AppTools/ToolTransform.py:931 -msgid "CNCJob objects can't be buffered." -msgstr "CNCJob objects can't be buffered." - -#: AppTools/ToolTransform.py:948 -msgid "Buffer done" -msgstr "Buffer done" - -#: AppTranslation.py:104 +#: FlatCAMTranslation.py:104 msgid "The application will restart." msgstr "The application will restart." -#: AppTranslation.py:106 +#: FlatCAMTranslation.py:106 msgid "Are you sure do you want to change the current language to" msgstr "Are you sure do you want to change the current language to" -#: AppTranslation.py:107 +#: FlatCAMTranslation.py:107 msgid "Apply Language ..." msgstr "Apply Language ..." -#: AppTranslation.py:203 App_Main.py:3151 -msgid "" -"There are files/objects modified in FlatCAM. \n" -"Do you want to Save the project?" -msgstr "" -"There are files/objects modified in FlatCAM. \n" -"Do you want to Save the project?" - -#: AppTranslation.py:206 App_Main.py:3154 App_Main.py:6411 -msgid "Save changes" -msgstr "Save changes" - -#: App_Main.py:477 -msgid "FlatCAM is initializing ..." -msgstr "FlatCAM is initializing ..." - -#: App_Main.py:620 -msgid "Could not find the Language files. The App strings are missing." -msgstr "Could not find the Language files. The App strings are missing." - -#: App_Main.py:692 -msgid "" -"FlatCAM is initializing ...\n" -"Canvas initialization started." -msgstr "" -"FlatCAM is initializing ...\n" -"Canvas initialization started." - -#: App_Main.py:712 -msgid "" -"FlatCAM is initializing ...\n" -"Canvas initialization started.\n" -"Canvas initialization finished in" -msgstr "" -"FlatCAM is initializing ...\n" -"Canvas initialization started.\n" -"Canvas initialization finished in" - -#: App_Main.py:1558 App_Main.py:6524 -msgid "New Project - Not saved" -msgstr "New Project - Not saved" - -#: App_Main.py:1659 -msgid "" -"Found old default preferences files. Please reboot the application to update." -msgstr "" -"Found old default preferences files. Please reboot the application to update." - -#: App_Main.py:1726 -msgid "Open Config file failed." -msgstr "Open Config file failed." - -#: App_Main.py:1741 -msgid "Open Script file failed." -msgstr "Open Script file failed." - -#: App_Main.py:1767 -msgid "Open Excellon file failed." -msgstr "Open Excellon file failed." - -#: App_Main.py:1780 -msgid "Open GCode file failed." -msgstr "Open GCode file failed." - -#: App_Main.py:1793 -msgid "Open Gerber file failed." -msgstr "Open Gerber file failed." - -#: App_Main.py:2116 -msgid "Select a Geometry, Gerber, Excellon or CNCJob Object to edit." -msgstr "Select a Geometry, Gerber, Excellon or CNCJob Object to edit." - -#: App_Main.py:2131 -msgid "" -"Simultaneous editing of tools geometry in a MultiGeo Geometry is not " -"possible.\n" -"Edit only one geometry at a time." -msgstr "" -"Simultaneous editing of tools geometry in a MultiGeo Geometry is not " -"possible.\n" -"Edit only one geometry at a time." - -#: App_Main.py:2197 -msgid "Editor is activated ..." -msgstr "Editor is activated ..." - -#: App_Main.py:2218 -msgid "Do you want to save the edited object?" -msgstr "Do you want to save the edited object?" - -#: App_Main.py:2254 -msgid "Object empty after edit." -msgstr "Object empty after edit." - -#: App_Main.py:2259 App_Main.py:2277 App_Main.py:2296 -msgid "Editor exited. Editor content saved." -msgstr "Editor exited. Editor content saved." - -#: App_Main.py:2300 App_Main.py:2324 App_Main.py:2342 -msgid "Select a Gerber, Geometry or Excellon Object to update." -msgstr "Select a Gerber, Geometry or Excellon Object to update." - -#: App_Main.py:2303 -msgid "is updated, returning to App..." -msgstr "is updated, returning to App..." - -#: App_Main.py:2310 -msgid "Editor exited. Editor content was not saved." -msgstr "Editor exited. Editor content was not saved." - -#: App_Main.py:2443 App_Main.py:2447 -msgid "Import FlatCAM Preferences" -msgstr "Import FlatCAM Preferences" - -#: App_Main.py:2458 -msgid "Imported Defaults from" -msgstr "Imported Defaults from" - -#: App_Main.py:2478 App_Main.py:2484 -msgid "Export FlatCAM Preferences" -msgstr "Export FlatCAM Preferences" - -#: App_Main.py:2504 -msgid "Exported preferences to" -msgstr "Exported preferences to" - -#: App_Main.py:2524 App_Main.py:2529 -msgid "Save to file" -msgstr "Save to file" - -#: App_Main.py:2553 -msgid "Could not load the file." -msgstr "Could not load the file." - -#: App_Main.py:2569 -msgid "Exported file to" -msgstr "Exported file to" - -#: App_Main.py:2606 -msgid "Failed to open recent files file for writing." -msgstr "Failed to open recent files file for writing." - -#: App_Main.py:2617 -msgid "Failed to open recent projects file for writing." -msgstr "Failed to open recent projects file for writing." - -#: App_Main.py:2672 -msgid "2D Computer-Aided Printed Circuit Board Manufacturing" -msgstr "2D Computer-Aided Printed Circuit Board Manufacturing" - -#: App_Main.py:2673 -msgid "Development" -msgstr "Development" - -#: App_Main.py:2674 -msgid "DOWNLOAD" -msgstr "DOWNLOAD" - -#: App_Main.py:2675 -msgid "Issue tracker" -msgstr "Issue tracker" - -#: App_Main.py:2694 -msgid "Licensed under the MIT license" -msgstr "Licensed under the MIT license" - -#: App_Main.py:2703 -msgid "" -"Permission is hereby granted, free of charge, to any person obtaining a " -"copy\n" -"of this software and associated documentation files (the \"Software\"), to " -"deal\n" -"in the Software without restriction, including without limitation the " -"rights\n" -"to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n" -"copies of the Software, and to permit persons to whom the Software is\n" -"furnished to do so, subject to the following conditions:\n" -"\n" -"The above copyright notice and this permission notice shall be included in\n" -"all copies or substantial portions of the Software.\n" -"\n" -"THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS " -"OR\n" -"IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n" -"FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n" -"AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n" -"LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING " -"FROM,\n" -"OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n" -"THE SOFTWARE." -msgstr "" -"Permission is hereby granted, free of charge, to any person obtaining a " -"copy\n" -"of this software and associated documentation files (the \"Software\"), to " -"deal\n" -"in the Software without restriction, including without limitation the " -"rights\n" -"to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n" -"copies of the Software, and to permit persons to whom the Software is\n" -"furnished to do so, subject to the following conditions:\n" -"\n" -"The above copyright notice and this permission notice shall be included in\n" -"all copies or substantial portions of the Software.\n" -"\n" -"THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS " -"OR\n" -"IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n" -"FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n" -"AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n" -"LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING " -"FROM,\n" -"OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n" -"THE SOFTWARE." - -#: App_Main.py:2725 -msgid "" -"Some of the icons used are from the following sources:
    Icons by Icons8
    Icons by oNline Web Fonts" -msgstr "" -"Some of the icons used are from the following sources:
    Icons by Icons8
    Icons by oNline Web Fonts" - -#: App_Main.py:2761 -msgid "Splash" -msgstr "Splash" - -#: App_Main.py:2767 -msgid "Programmers" -msgstr "Programmers" - -#: App_Main.py:2773 -msgid "Translators" -msgstr "Translators" - -#: App_Main.py:2779 -msgid "License" -msgstr "License" - -#: App_Main.py:2785 -msgid "Attributions" -msgstr "Attributions" - -#: App_Main.py:2808 -msgid "Programmer" -msgstr "Programmer" - -#: App_Main.py:2809 -msgid "Status" -msgstr "Status" - -#: App_Main.py:2810 App_Main.py:2890 -msgid "E-mail" -msgstr "E-mail" - -#: App_Main.py:2813 -msgid "Program Author" -msgstr "Program Author" - -#: App_Main.py:2818 -msgid "BETA Maintainer >= 2019" -msgstr "BETA Maintainer >= 2019" - -#: App_Main.py:2887 -msgid "Language" -msgstr "Language" - -#: App_Main.py:2888 -msgid "Translator" -msgstr "Translator" - -#: App_Main.py:2889 -msgid "Corrections" -msgstr "Corrections" - -#: App_Main.py:2963 -msgid "Important Information's" -msgstr "Important Information's" - -#: App_Main.py:3111 -msgid "" -"This entry will resolve to another website if:\n" -"\n" -"1. FlatCAM.org website is down\n" -"2. Someone forked FlatCAM project and wants to point\n" -"to his own website\n" -"\n" -"If you can't get any informations about FlatCAM beta\n" -"use the YouTube channel link from the Help menu." -msgstr "" -"This entry will resolve to another website if:\n" -"\n" -"1. FlatCAM.org website is down\n" -"2. Someone forked FlatCAM project and wants to point\n" -"to his own website\n" -"\n" -"If you can't get any informations about FlatCAM beta\n" -"use the YouTube channel link from the Help menu." - -#: App_Main.py:3118 -msgid "Alternative website" -msgstr "Alternative website" - -#: App_Main.py:3421 -msgid "Selected Excellon file extensions registered with FlatCAM." -msgstr "Selected Excellon file extensions registered with FlatCAM." - -#: App_Main.py:3443 -msgid "Selected GCode file extensions registered with FlatCAM." -msgstr "Selected GCode file extensions registered with FlatCAM." - -#: App_Main.py:3465 -msgid "Selected Gerber file extensions registered with FlatCAM." -msgstr "Selected Gerber file extensions registered with FlatCAM." - -#: App_Main.py:3653 App_Main.py:3712 App_Main.py:3740 -msgid "At least two objects are required for join. Objects currently selected" -msgstr "At least two objects are required for join. Objects currently selected" - -#: App_Main.py:3662 -msgid "" -"Failed join. The Geometry objects are of different types.\n" -"At least one is MultiGeo type and the other is SingleGeo type. A possibility " -"is to convert from one to another and retry joining \n" -"but in the case of converting from MultiGeo to SingleGeo, informations may " -"be lost and the result may not be what was expected. \n" -"Check the generated GCODE." -msgstr "" -"Failed join. The Geometry objects are of different types.\n" -"At least one is MultiGeo type and the other is SingleGeo type. A possibility " -"is to convert from one to another and retry joining \n" -"but in the case of converting from MultiGeo to SingleGeo, informations may " -"be lost and the result may not be what was expected. \n" -"Check the generated GCODE." - -#: App_Main.py:3674 App_Main.py:3684 -msgid "Geometry merging finished" -msgstr "Geometry merging finished" - -#: App_Main.py:3707 -msgid "Failed. Excellon joining works only on Excellon objects." -msgstr "Failed. Excellon joining works only on Excellon objects." - -#: App_Main.py:3717 -msgid "Excellon merging finished" -msgstr "Excellon merging finished" - -#: App_Main.py:3735 -msgid "Failed. Gerber joining works only on Gerber objects." -msgstr "Failed. Gerber joining works only on Gerber objects." - -#: App_Main.py:3745 -msgid "Gerber merging finished" -msgstr "Gerber merging finished" - -#: App_Main.py:3765 App_Main.py:3802 -msgid "Failed. Select a Geometry Object and try again." -msgstr "Failed. Select a Geometry Object and try again." - -#: App_Main.py:3769 App_Main.py:3807 -msgid "Expected a GeometryObject, got" -msgstr "Expected a GeometryObject, got" - -#: App_Main.py:3784 -msgid "A Geometry object was converted to MultiGeo type." -msgstr "A Geometry object was converted to MultiGeo type." - -#: App_Main.py:3822 -msgid "A Geometry object was converted to SingleGeo type." -msgstr "A Geometry object was converted to SingleGeo type." - -#: App_Main.py:4029 -msgid "Toggle Units" -msgstr "Toggle Units" - -#: App_Main.py:4033 -msgid "" -"Changing the units of the project\n" -"will scale all objects.\n" -"\n" -"Do you want to continue?" -msgstr "" -"Changing the units of the project\n" -"will scale all objects.\n" -"\n" -"Do you want to continue?" - -#: App_Main.py:4036 App_Main.py:4223 App_Main.py:4306 App_Main.py:6809 -#: App_Main.py:6825 App_Main.py:7163 App_Main.py:7175 -msgid "Ok" -msgstr "Ok" - -#: App_Main.py:4086 -msgid "Converted units to" -msgstr "Converted units to" - -#: App_Main.py:4121 -msgid "Detachable Tabs" -msgstr "Detachable Tabs" - -#: App_Main.py:4150 -msgid "Workspace enabled." -msgstr "Workspace enabled." - -#: App_Main.py:4153 -msgid "Workspace disabled." -msgstr "Workspace disabled." - -#: App_Main.py:4217 -msgid "" -"Adding Tool works only when Advanced is checked.\n" -"Go to Preferences -> General - Show Advanced Options." -msgstr "" -"Adding Tool works only when Advanced is checked.\n" -"Go to Preferences -> General - Show Advanced Options." - -#: App_Main.py:4299 -msgid "Delete objects" -msgstr "Delete objects" - -#: App_Main.py:4304 -msgid "" -"Are you sure you want to permanently delete\n" -"the selected objects?" -msgstr "" -"Are you sure you want to permanently delete\n" -"the selected objects?" - -#: App_Main.py:4348 -msgid "Object(s) deleted" -msgstr "Object(s) deleted" - -#: App_Main.py:4352 -msgid "Save the work in Editor and try again ..." -msgstr "Save the work in Editor and try again ..." - -#: App_Main.py:4381 -msgid "Object deleted" -msgstr "Object deleted" - -#: App_Main.py:4408 -msgid "Click to set the origin ..." -msgstr "Click to set the origin ..." - -#: App_Main.py:4430 -msgid "Setting Origin..." -msgstr "Setting Origin..." - -#: App_Main.py:4443 App_Main.py:4545 -msgid "Origin set" -msgstr "Origin set" - -#: App_Main.py:4460 -msgid "Origin coordinates specified but incomplete." -msgstr "Origin coordinates specified but incomplete." - -#: App_Main.py:4501 -msgid "Moving to Origin..." -msgstr "Moving to Origin..." - -#: App_Main.py:4582 -msgid "Jump to ..." -msgstr "Jump to ..." - -#: App_Main.py:4583 -msgid "Enter the coordinates in format X,Y:" -msgstr "Enter the coordinates in format X,Y:" - -#: App_Main.py:4593 -msgid "Wrong coordinates. Enter coordinates in format: X,Y" -msgstr "Wrong coordinates. Enter coordinates in format: X,Y" - -#: App_Main.py:4711 -msgid "Bottom-Left" -msgstr "Bottom-Left" - -#: App_Main.py:4714 -msgid "Top-Right" -msgstr "Top-Right" - -#: App_Main.py:4735 -msgid "Locate ..." -msgstr "Locate ..." - -#: App_Main.py:5008 App_Main.py:5085 -msgid "No object is selected. Select an object and try again." -msgstr "No object is selected. Select an object and try again." - -#: App_Main.py:5111 -msgid "" -"Aborting. The current task will be gracefully closed as soon as possible..." -msgstr "" -"Aborting. The current task will be gracefully closed as soon as possible..." - -#: App_Main.py:5117 -msgid "The current task was gracefully closed on user request..." -msgstr "The current task was gracefully closed on user request..." - -#: App_Main.py:5291 -msgid "Tools in Tools Database edited but not saved." -msgstr "Tools in Tools Database edited but not saved." - -#: App_Main.py:5330 -msgid "Adding tool from DB is not allowed for this object." -msgstr "Adding tool from DB is not allowed for this object." - -#: App_Main.py:5348 -msgid "" -"One or more Tools are edited.\n" -"Do you want to update the Tools Database?" -msgstr "" -"One or more Tools are edited.\n" -"Do you want to update the Tools Database?" - -#: App_Main.py:5350 -msgid "Save Tools Database" -msgstr "Save Tools Database" - -#: App_Main.py:5404 -msgid "No object selected to Flip on Y axis." -msgstr "No object selected to Flip on Y axis." - -#: App_Main.py:5430 -msgid "Flip on Y axis done." -msgstr "Flip on Y axis done." - -#: App_Main.py:5452 -msgid "No object selected to Flip on X axis." -msgstr "No object selected to Flip on X axis." - -#: App_Main.py:5478 -msgid "Flip on X axis done." -msgstr "Flip on X axis done." - -#: App_Main.py:5500 -msgid "No object selected to Rotate." -msgstr "No object selected to Rotate." - -#: App_Main.py:5503 App_Main.py:5554 App_Main.py:5591 -msgid "Transform" -msgstr "Transform" - -#: App_Main.py:5503 App_Main.py:5554 App_Main.py:5591 -msgid "Enter the Angle value:" -msgstr "Enter the Angle value:" - -#: App_Main.py:5533 -msgid "Rotation done." -msgstr "Rotation done." - -#: App_Main.py:5535 -msgid "Rotation movement was not executed." -msgstr "Rotation movement was not executed." - -#: App_Main.py:5552 -msgid "No object selected to Skew/Shear on X axis." -msgstr "No object selected to Skew/Shear on X axis." - -#: App_Main.py:5573 -msgid "Skew on X axis done." -msgstr "Skew on X axis done." - -#: App_Main.py:5589 -msgid "No object selected to Skew/Shear on Y axis." -msgstr "No object selected to Skew/Shear on Y axis." - -#: App_Main.py:5610 -msgid "Skew on Y axis done." -msgstr "Skew on Y axis done." - -#: App_Main.py:5688 -msgid "New Grid ..." -msgstr "New Grid ..." - -#: App_Main.py:5689 -msgid "Enter a Grid Value:" -msgstr "Enter a Grid Value:" - -#: App_Main.py:5697 App_Main.py:5721 -msgid "Please enter a grid value with non-zero value, in Float format." -msgstr "Please enter a grid value with non-zero value, in Float format." - -#: App_Main.py:5702 -msgid "New Grid added" -msgstr "New Grid added" - -#: App_Main.py:5704 -msgid "Grid already exists" -msgstr "Grid already exists" - -#: App_Main.py:5706 -msgid "Adding New Grid cancelled" -msgstr "Adding New Grid cancelled" - -#: App_Main.py:5727 -msgid " Grid Value does not exist" -msgstr " Grid Value does not exist" - -#: App_Main.py:5729 -msgid "Grid Value deleted" -msgstr "Grid Value deleted" - -#: App_Main.py:5731 -msgid "Delete Grid value cancelled" -msgstr "Delete Grid value cancelled" - -#: App_Main.py:5737 -msgid "Key Shortcut List" -msgstr "Key Shortcut List" - -#: App_Main.py:5771 -msgid " No object selected to copy it's name" -msgstr " No object selected to copy it's name" - -#: App_Main.py:5775 -msgid "Name copied on clipboard ..." -msgstr "Name copied on clipboard ..." - -#: App_Main.py:6408 -msgid "" -"There are files/objects opened in FlatCAM.\n" -"Creating a New project will delete them.\n" -"Do you want to Save the project?" -msgstr "" -"There are files/objects opened in FlatCAM.\n" -"Creating a New project will delete them.\n" -"Do you want to Save the project?" - -#: App_Main.py:6431 -msgid "New Project created" -msgstr "New Project created" - -#: App_Main.py:6603 App_Main.py:6642 App_Main.py:6686 App_Main.py:6756 -#: App_Main.py:7550 App_Main.py:8763 App_Main.py:8825 -msgid "" -"Canvas initialization started.\n" -"Canvas initialization finished in" -msgstr "" -"Canvas initialization started.\n" -"Canvas initialization finished in" - -#: App_Main.py:6605 -msgid "Opening Gerber file." -msgstr "Opening Gerber file." - -#: App_Main.py:6644 -msgid "Opening Excellon file." -msgstr "Opening Excellon file." - -#: App_Main.py:6675 App_Main.py:6680 -msgid "Open G-Code" -msgstr "Open G-Code" - -#: App_Main.py:6688 -msgid "Opening G-Code file." -msgstr "Opening G-Code file." - -#: App_Main.py:6747 App_Main.py:6751 -msgid "Open HPGL2" -msgstr "Open HPGL2" - -#: App_Main.py:6758 -msgid "Opening HPGL2 file." -msgstr "Opening HPGL2 file." - -#: App_Main.py:6781 App_Main.py:6784 -msgid "Open Configuration File" -msgstr "Open Configuration File" - -#: App_Main.py:6804 App_Main.py:7158 -msgid "Please Select a Geometry object to export" -msgstr "Please Select a Geometry object to export" - -#: App_Main.py:6820 -msgid "Only Geometry, Gerber and CNCJob objects can be used." -msgstr "Only Geometry, Gerber and CNCJob objects can be used." - -#: App_Main.py:6865 -msgid "Data must be a 3D array with last dimension 3 or 4" -msgstr "Data must be a 3D array with last dimension 3 or 4" - -#: App_Main.py:6871 App_Main.py:6875 -msgid "Export PNG Image" -msgstr "Export PNG Image" - -#: App_Main.py:6908 App_Main.py:7118 -msgid "Failed. Only Gerber objects can be saved as Gerber files..." -msgstr "Failed. Only Gerber objects can be saved as Gerber files..." - -#: App_Main.py:6920 -msgid "Save Gerber source file" -msgstr "Save Gerber source file" - -#: App_Main.py:6949 -msgid "Failed. Only Script objects can be saved as TCL Script files..." -msgstr "Failed. Only Script objects can be saved as TCL Script files..." - -#: App_Main.py:6961 -msgid "Save Script source file" -msgstr "Save Script source file" - -#: App_Main.py:6990 -msgid "Failed. Only Document objects can be saved as Document files..." -msgstr "Failed. Only Document objects can be saved as Document files..." - -#: App_Main.py:7002 -msgid "Save Document source file" -msgstr "Save Document source file" - -#: App_Main.py:7032 App_Main.py:7074 App_Main.py:8033 -msgid "Failed. Only Excellon objects can be saved as Excellon files..." -msgstr "Failed. Only Excellon objects can be saved as Excellon files..." - -#: App_Main.py:7040 App_Main.py:7045 -msgid "Save Excellon source file" -msgstr "Save Excellon source file" - -#: App_Main.py:7082 App_Main.py:7086 -msgid "Export Excellon" -msgstr "Export Excellon" - -#: App_Main.py:7126 App_Main.py:7130 -msgid "Export Gerber" -msgstr "Export Gerber" - -#: App_Main.py:7170 -msgid "Only Geometry objects can be used." -msgstr "Only Geometry objects can be used." - -#: App_Main.py:7186 App_Main.py:7190 -msgid "Export DXF" -msgstr "Export DXF" - -#: App_Main.py:7215 App_Main.py:7218 -msgid "Import SVG" -msgstr "Import SVG" - -#: App_Main.py:7246 App_Main.py:7250 -msgid "Import DXF" -msgstr "Import DXF" - -#: App_Main.py:7300 -msgid "Viewing the source code of the selected object." -msgstr "Viewing the source code of the selected object." - -#: App_Main.py:7307 App_Main.py:7311 -msgid "Select an Gerber or Excellon file to view it's source file." -msgstr "Select an Gerber or Excellon file to view it's source file." - -#: App_Main.py:7325 -msgid "Source Editor" -msgstr "Source Editor" - -#: App_Main.py:7365 App_Main.py:7372 -msgid "There is no selected object for which to see it's source file code." -msgstr "There is no selected object for which to see it's source file code." - -#: App_Main.py:7384 -msgid "Failed to load the source code for the selected object" -msgstr "Failed to load the source code for the selected object" - -#: App_Main.py:7420 -msgid "Go to Line ..." -msgstr "Go to Line ..." - -#: App_Main.py:7421 -msgid "Line:" -msgstr "Line:" - -#: App_Main.py:7448 -msgid "New TCL script file created in Code Editor." -msgstr "New TCL script file created in Code Editor." - -#: App_Main.py:7484 App_Main.py:7486 App_Main.py:7522 App_Main.py:7524 -msgid "Open TCL script" -msgstr "Open TCL script" - -#: App_Main.py:7552 -msgid "Executing ScriptObject file." -msgstr "Executing ScriptObject file." - -#: App_Main.py:7560 App_Main.py:7563 -msgid "Run TCL script" -msgstr "Run TCL script" - -#: App_Main.py:7586 -msgid "TCL script file opened in Code Editor and executed." -msgstr "TCL script file opened in Code Editor and executed." - -#: App_Main.py:7637 App_Main.py:7643 -msgid "Save Project As ..." -msgstr "Save Project As ..." - -#: App_Main.py:7678 -msgid "FlatCAM objects print" -msgstr "FlatCAM objects print" - -#: App_Main.py:7691 App_Main.py:7698 -msgid "Save Object as PDF ..." -msgstr "Save Object as PDF ..." - -#: App_Main.py:7707 -msgid "Printing PDF ... Please wait." -msgstr "Printing PDF ... Please wait." - -#: App_Main.py:7886 -msgid "PDF file saved to" -msgstr "PDF file saved to" - -#: App_Main.py:7911 -msgid "Exporting SVG" -msgstr "Exporting SVG" - -#: App_Main.py:7954 -msgid "SVG file exported to" -msgstr "SVG file exported to" - -#: App_Main.py:7980 -msgid "" -"Save cancelled because source file is empty. Try to export the Gerber file." -msgstr "" -"Save cancelled because source file is empty. Try to export the Gerber file." - -#: App_Main.py:8127 -msgid "Excellon file exported to" -msgstr "Excellon file exported to" - -#: App_Main.py:8136 -msgid "Exporting Excellon" -msgstr "Exporting Excellon" - -#: App_Main.py:8141 App_Main.py:8148 -msgid "Could not export Excellon file." -msgstr "Could not export Excellon file." - -#: App_Main.py:8263 -msgid "Gerber file exported to" -msgstr "Gerber file exported to" - -#: App_Main.py:8271 -msgid "Exporting Gerber" -msgstr "Exporting Gerber" - -#: App_Main.py:8276 App_Main.py:8283 -msgid "Could not export Gerber file." -msgstr "Could not export Gerber file." - -#: App_Main.py:8318 -msgid "DXF file exported to" -msgstr "DXF file exported to" - -#: App_Main.py:8324 -msgid "Exporting DXF" -msgstr "Exporting DXF" - -#: App_Main.py:8329 App_Main.py:8336 -msgid "Could not export DXF file." -msgstr "Could not export DXF file." - -#: App_Main.py:8370 -msgid "Importing SVG" -msgstr "Importing SVG" - -#: App_Main.py:8378 App_Main.py:8424 -msgid "Import failed." -msgstr "Import failed." - -#: App_Main.py:8416 -msgid "Importing DXF" -msgstr "Importing DXF" - -#: App_Main.py:8457 App_Main.py:8652 App_Main.py:8717 -msgid "Failed to open file" -msgstr "Failed to open file" - -#: App_Main.py:8460 App_Main.py:8655 App_Main.py:8720 -msgid "Failed to parse file" -msgstr "Failed to parse file" - -#: App_Main.py:8472 -msgid "Object is not Gerber file or empty. Aborting object creation." -msgstr "Object is not Gerber file or empty. Aborting object creation." - -#: App_Main.py:8477 -msgid "Opening Gerber" -msgstr "Opening Gerber" - -#: App_Main.py:8488 -msgid "Open Gerber failed. Probable not a Gerber file." -msgstr "Open Gerber failed. Probable not a Gerber file." - -#: App_Main.py:8524 -msgid "Cannot open file" -msgstr "Cannot open file" - -#: App_Main.py:8545 -msgid "Opening Excellon." -msgstr "Opening Excellon." - -#: App_Main.py:8555 -msgid "Open Excellon file failed. Probable not an Excellon file." -msgstr "Open Excellon file failed. Probable not an Excellon file." - -#: App_Main.py:8587 -msgid "Reading GCode file" -msgstr "Reading GCode file" - -#: App_Main.py:8600 -msgid "This is not GCODE" -msgstr "This is not GCODE" - -#: App_Main.py:8605 -msgid "Opening G-Code." -msgstr "Opening G-Code." - -#: App_Main.py:8618 -msgid "" -"Failed to create CNCJob Object. Probable not a GCode file. Try to load it " -"from File menu.\n" -" Attempting to create a FlatCAM CNCJob Object from G-Code file failed during " -"processing" -msgstr "" -"Failed to create CNCJob Object. Probable not a GCode file. Try to load it " -"from File menu.\n" -" Attempting to create a FlatCAM CNCJob Object from G-Code file failed during " -"processing" - -#: App_Main.py:8674 -msgid "Object is not HPGL2 file or empty. Aborting object creation." -msgstr "Object is not HPGL2 file or empty. Aborting object creation." - -#: App_Main.py:8679 -msgid "Opening HPGL2" -msgstr "Opening HPGL2" - -#: App_Main.py:8686 -msgid " Open HPGL2 failed. Probable not a HPGL2 file." -msgstr " Open HPGL2 failed. Probable not a HPGL2 file." - -#: App_Main.py:8712 -msgid "TCL script file opened in Code Editor." -msgstr "TCL script file opened in Code Editor." - -#: App_Main.py:8732 -msgid "Opening TCL Script..." -msgstr "Opening TCL Script..." - -#: App_Main.py:8743 -msgid "Failed to open TCL Script." -msgstr "Failed to open TCL Script." - -#: App_Main.py:8765 -msgid "Opening FlatCAM Config file." -msgstr "Opening FlatCAM Config file." - -#: App_Main.py:8793 -msgid "Failed to open config file" -msgstr "Failed to open config file" - -#: App_Main.py:8822 -msgid "Loading Project ... Please Wait ..." -msgstr "Loading Project ... Please Wait ..." - -#: App_Main.py:8827 -msgid "Opening FlatCAM Project file." -msgstr "Opening FlatCAM Project file." - -#: App_Main.py:8842 App_Main.py:8846 App_Main.py:8863 -msgid "Failed to open project file" -msgstr "Failed to open project file" - -#: App_Main.py:8900 -msgid "Loading Project ... restoring" -msgstr "Loading Project ... restoring" - -#: App_Main.py:8910 -msgid "Project loaded from" -msgstr "Project loaded from" - -#: App_Main.py:8936 -msgid "Redrawing all objects" -msgstr "Redrawing all objects" - -#: App_Main.py:9024 -msgid "Failed to load recent item list." -msgstr "Failed to load recent item list." - -#: App_Main.py:9031 -msgid "Failed to parse recent item list." -msgstr "Failed to parse recent item list." - -#: App_Main.py:9041 -msgid "Failed to load recent projects item list." -msgstr "Failed to load recent projects item list." - -#: App_Main.py:9048 -msgid "Failed to parse recent project item list." -msgstr "Failed to parse recent project item list." - -#: App_Main.py:9109 -msgid "Clear Recent projects" -msgstr "Clear Recent projects" - -#: App_Main.py:9133 -msgid "Clear Recent files" -msgstr "Clear Recent files" - -#: App_Main.py:9235 -msgid "Selected Tab - Choose an Item from Project Tab" -msgstr "Selected Tab - Choose an Item from Project Tab" - -#: App_Main.py:9236 -msgid "Details" -msgstr "Details" - -#: App_Main.py:9238 -msgid "The normal flow when working with the application is the following:" -msgstr "The normal flow when working with the application is the following:" - -#: App_Main.py:9239 -msgid "" -"Load/Import a Gerber, Excellon, Gcode, DXF, Raster Image or SVG file into " -"the application using either the toolbars, key shortcuts or even dragging " -"and dropping the files on the AppGUI." -msgstr "" -"Load/Import a Gerber, Excellon, Gcode, DXF, Raster Image or SVG file into " -"the application using either the toolbars, key shortcuts or even dragging " -"and dropping the files on the AppGUI." - -#: App_Main.py:9242 -msgid "" -"You can also load a project by double clicking on the project file, drag and " -"drop of the file into the AppGUI or through the menu (or toolbar) actions " -"offered within the app." -msgstr "" -"You can also load a project by double clicking on the project file, drag and " -"drop of the file into the AppGUI or through the menu (or toolbar) actions " -"offered within the app." - -#: App_Main.py:9245 -msgid "" -"Once an object is available in the Project Tab, by selecting it and then " -"focusing on SELECTED TAB (more simpler is to double click the object name in " -"the Project Tab, SELECTED TAB will be updated with the object properties " -"according to its kind: Gerber, Excellon, Geometry or CNCJob object." -msgstr "" -"Once an object is available in the Project Tab, by selecting it and then " -"focusing on SELECTED TAB (more simpler is to double click the object name in " -"the Project Tab, SELECTED TAB will be updated with the object properties " -"according to its kind: Gerber, Excellon, Geometry or CNCJob object." - -#: App_Main.py:9249 -msgid "" -"If the selection of the object is done on the canvas by single click " -"instead, and the SELECTED TAB is in focus, again the object properties will " -"be displayed into the Selected Tab. Alternatively, double clicking on the " -"object on the canvas will bring the SELECTED TAB and populate it even if it " -"was out of focus." -msgstr "" -"If the selection of the object is done on the canvas by single click " -"instead, and the SELECTED TAB is in focus, again the object properties will " -"be displayed into the Selected Tab. Alternatively, double clicking on the " -"object on the canvas will bring the SELECTED TAB and populate it even if it " -"was out of focus." - -#: App_Main.py:9253 -msgid "" -"You can change the parameters in this screen and the flow direction is like " -"this:" -msgstr "" -"You can change the parameters in this screen and the flow direction is like " -"this:" - -#: App_Main.py:9254 -msgid "" -"Gerber/Excellon Object --> Change Parameter --> Generate Geometry --> " -"Geometry Object --> Add tools (change param in Selected Tab) --> Generate " -"CNCJob --> CNCJob Object --> Verify GCode (through Edit CNC Code) and/or " -"append/prepend to GCode (again, done in SELECTED TAB) --> Save GCode." -msgstr "" -"Gerber/Excellon Object --> Change Parameter --> Generate Geometry --> " -"Geometry Object --> Add tools (change param in Selected Tab) --> Generate " -"CNCJob --> CNCJob Object --> Verify GCode (through Edit CNC Code) and/or " -"append/prepend to GCode (again, done in SELECTED TAB) --> Save GCode." - -#: App_Main.py:9258 -msgid "" -"A list of key shortcuts is available through an menu entry in Help --> " -"Shortcuts List or through its own key shortcut: F3." -msgstr "" -"A list of key shortcuts is available through an menu entry in Help --> " -"Shortcuts List or through its own key shortcut: F3." - -#: App_Main.py:9322 -msgid "Failed checking for latest version. Could not connect." -msgstr "Failed checking for latest version. Could not connect." - -#: App_Main.py:9329 -msgid "Could not parse information about latest version." -msgstr "Could not parse information about latest version." - -#: App_Main.py:9339 -msgid "FlatCAM is up to date!" -msgstr "FlatCAM is up to date!" - -#: App_Main.py:9344 -msgid "Newer Version Available" -msgstr "Newer Version Available" - -#: App_Main.py:9346 -msgid "There is a newer version of FlatCAM available for download:" -msgstr "There is a newer version of FlatCAM available for download:" - -#: App_Main.py:9350 -msgid "info" -msgstr "info" - -#: App_Main.py:9378 -msgid "" -"OpenGL canvas initialization failed. HW or HW configuration not supported." -"Change the graphic engine to Legacy(2D) in Edit -> Preferences -> General " -"tab.\n" -"\n" -msgstr "" -"OpenGL canvas initialization failed. HW or HW configuration not supported." -"Change the graphic engine to Legacy(2D) in Edit -> Preferences -> General " -"tab.\n" -"\n" - -#: App_Main.py:9456 -msgid "All plots disabled." -msgstr "All plots disabled." - -#: App_Main.py:9463 -msgid "All non selected plots disabled." -msgstr "All non selected plots disabled." - -#: App_Main.py:9470 -msgid "All plots enabled." -msgstr "All plots enabled." - -#: App_Main.py:9476 -msgid "Selected plots enabled..." -msgstr "Selected plots enabled..." - -#: App_Main.py:9484 -msgid "Selected plots disabled..." -msgstr "Selected plots disabled..." - -#: App_Main.py:9517 -msgid "Enabling plots ..." -msgstr "Enabling plots ..." - -#: App_Main.py:9566 -msgid "Disabling plots ..." -msgstr "Disabling plots ..." - -#: App_Main.py:9589 -msgid "Working ..." -msgstr "Working ..." - -#: App_Main.py:9698 -msgid "Set alpha level ..." -msgstr "Set alpha level ..." - -#: App_Main.py:9752 -msgid "Saving FlatCAM Project" -msgstr "Saving FlatCAM Project" - -#: App_Main.py:9773 App_Main.py:9809 -msgid "Project saved to" -msgstr "Project saved to" - -#: App_Main.py:9780 -msgid "The object is used by another application." -msgstr "The object is used by another application." - -#: App_Main.py:9794 -msgid "Failed to verify project file" -msgstr "Failed to verify project file" - -#: App_Main.py:9794 App_Main.py:9802 App_Main.py:9812 -msgid "Retry to save it." -msgstr "Retry to save it." - -#: App_Main.py:9802 App_Main.py:9812 -msgid "Failed to parse saved project file" -msgstr "Failed to parse saved project file" - -#: Bookmark.py:57 Bookmark.py:84 -msgid "Title" -msgstr "Title" - -#: Bookmark.py:58 Bookmark.py:88 -msgid "Web Link" -msgstr "Web Link" - -#: Bookmark.py:62 -msgid "" -"Index.\n" -"The rows in gray color will populate the Bookmarks menu.\n" -"The number of gray colored rows is set in Preferences." -msgstr "" -"Index.\n" -"The rows in gray color will populate the Bookmarks menu.\n" -"The number of gray colored rows is set in Preferences." - -#: Bookmark.py:66 -msgid "" -"Description of the link that is set as an menu action.\n" -"Try to keep it short because it is installed as a menu item." -msgstr "" -"Description of the link that is set as an menu action.\n" -"Try to keep it short because it is installed as a menu item." - -#: Bookmark.py:69 -msgid "Web Link. E.g: https://your_website.org " -msgstr "Web Link. E.g: https://your_website.org " - -#: Bookmark.py:78 -msgid "New Bookmark" -msgstr "New Bookmark" - -#: Bookmark.py:97 -msgid "Add Entry" -msgstr "Add Entry" - -#: Bookmark.py:98 -msgid "Remove Entry" -msgstr "Remove Entry" - -#: Bookmark.py:99 -msgid "Export List" -msgstr "Export List" - -#: Bookmark.py:100 -msgid "Import List" -msgstr "Import List" - -#: Bookmark.py:190 -msgid "Title entry is empty." -msgstr "Title entry is empty." - -#: Bookmark.py:199 -msgid "Web link entry is empty." -msgstr "Web link entry is empty." - -#: Bookmark.py:207 -msgid "Either the Title or the Weblink already in the table." -msgstr "Either the Title or the Weblink already in the table." - -#: Bookmark.py:227 -msgid "Bookmark added." -msgstr "Bookmark added." - -#: Bookmark.py:244 -msgid "This bookmark can not be removed" -msgstr "This bookmark can not be removed" - -#: Bookmark.py:275 -msgid "Bookmark removed." -msgstr "Bookmark removed." - -#: Bookmark.py:290 -msgid "Export Bookmarks" -msgstr "Export Bookmarks" - -#: Bookmark.py:319 Bookmark.py:349 -msgid "Could not load bookmarks file." -msgstr "Could not load bookmarks file." - -#: Bookmark.py:329 -msgid "Failed to write bookmarks to file." -msgstr "Failed to write bookmarks to file." - -#: Bookmark.py:331 -msgid "Exported bookmarks to" -msgstr "Exported bookmarks to" - -#: Bookmark.py:337 -msgid "Import Bookmarks" -msgstr "Import Bookmarks" - -#: Bookmark.py:356 -msgid "Imported Bookmarks from" -msgstr "Imported Bookmarks from" - -#: Common.py:42 -msgid "The user requested a graceful exit of the current task." -msgstr "The user requested a graceful exit of the current task." - -#: Common.py:269 -msgid "Click the end point of the area." -msgstr "Click the end point of the area." - -#: Common.py:408 -msgid "Exclusion areas added. Checking overlap with the object geometry ..." -msgstr "Exclusion areas added. Checking overlap with the object geometry ..." - -#: Common.py:413 -msgid "Failed. Exclusion areas intersects the object geometry ..." -msgstr "Failed. Exclusion areas intersects the object geometry ..." - -#: Common.py:417 -msgid "Exclusion areas added." -msgstr "Exclusion areas added." - -#: Common.py:426 -msgid "With Exclusion areas." -msgstr "With Exclusion areas." - -#: Common.py:461 -msgid "Cancelled. Area exclusion drawing was interrupted." -msgstr "Cancelled. Area exclusion drawing was interrupted." - -#: Common.py:572 Common.py:621 -msgid "All exclusion zones deleted." -msgstr "All exclusion zones deleted." - -#: Common.py:608 -msgid "Selected exclusion zones deleted." -msgstr "Selected exclusion zones deleted." - #: assets/linux/flatcam-beta.desktop:3 msgid "FlatCAM Beta" msgstr "FlatCAM Beta" +#: assets/linux/flatcam-beta.desktop:7 +msgid "./assets/icon.png" +msgstr "./assets/icon.png" + #: assets/linux/flatcam-beta.desktop:8 msgid "G-Code from GERBERS" msgstr "G-Code from GERBERS" @@ -18163,55 +2635,66 @@ msgstr "G-Code from GERBERS" msgid "self.solid_geometry is neither BaseGeometry or list." msgstr "self.solid_geometry is neither BaseGeometry or list." -#: camlib.py:979 +#: camlib.py:970 msgid "Pass" msgstr "Pass" -#: camlib.py:1001 +#: camlib.py:981 flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:146 +#: flatcamObjects/FlatCAMGerber.py:497 flatcamTools/ToolCopperThieving.py:1016 +#: flatcamTools/ToolCopperThieving.py:1205 +#: flatcamTools/ToolCopperThieving.py:1217 flatcamTools/ToolNCC.py:2050 +#: flatcamTools/ToolNCC.py:2158 flatcamTools/ToolNCC.py:2172 +#: flatcamTools/ToolNCC.py:3103 flatcamTools/ToolNCC.py:3208 +#: flatcamTools/ToolNCC.py:3223 flatcamTools/ToolNCC.py:3489 +#: flatcamTools/ToolNCC.py:3590 flatcamTools/ToolNCC.py:3605 +msgid "Buffering" +msgstr "Buffering" + +#: camlib.py:990 msgid "Get Exteriors" msgstr "Get Exteriors" -#: camlib.py:1004 +#: camlib.py:993 msgid "Get Interiors" msgstr "Get Interiors" -#: camlib.py:2192 +#: camlib.py:2172 msgid "Object was mirrored" msgstr "Object was mirrored" -#: camlib.py:2194 +#: camlib.py:2174 msgid "Failed to mirror. No object selected" msgstr "Failed to mirror. No object selected" -#: camlib.py:2259 +#: camlib.py:2239 msgid "Object was rotated" msgstr "Object was rotated" -#: camlib.py:2261 +#: camlib.py:2241 msgid "Failed to rotate. No object selected" msgstr "Failed to rotate. No object selected" -#: camlib.py:2327 +#: camlib.py:2307 msgid "Object was skewed" msgstr "Object was skewed" -#: camlib.py:2329 +#: camlib.py:2309 msgid "Failed to skew. No object selected" msgstr "Failed to skew. No object selected" -#: camlib.py:2405 +#: camlib.py:2385 msgid "Object was buffered" msgstr "Object was buffered" -#: camlib.py:2407 +#: camlib.py:2387 msgid "Failed to buffer. No object selected" msgstr "Failed to buffer. No object selected" -#: camlib.py:2650 +#: camlib.py:2594 msgid "There is no such parameter" msgstr "There is no such parameter" -#: camlib.py:2718 camlib.py:2970 camlib.py:3233 camlib.py:3489 +#: camlib.py:2654 camlib.py:2887 camlib.py:3116 camlib.py:3338 msgid "" "The Cut Z parameter has positive value. It is the depth value to drill into " "material.\n" @@ -18225,12 +2708,12 @@ msgstr "" "therefore the app will convert the value to negative. Check the resulting " "CNC code (Gcode etc)." -#: camlib.py:2726 camlib.py:2980 camlib.py:3243 camlib.py:3499 camlib.py:3824 -#: camlib.py:4224 +#: camlib.py:2662 camlib.py:2897 camlib.py:3126 camlib.py:3348 camlib.py:3631 +#: camlib.py:4017 msgid "The Cut Z parameter is zero. There will be no cut, skipping file" msgstr "The Cut Z parameter is zero. There will be no cut, skipping file" -#: camlib.py:2741 camlib.py:4192 +#: camlib.py:2673 camlib.py:3985 msgid "" "The Toolchange X,Y field in Edit -> Preferences has to be in the format (x, " "y) \n" @@ -18240,7 +2723,7 @@ msgstr "" "y) \n" "but now there is only one value, not two. " -#: camlib.py:2754 camlib.py:3771 camlib.py:4170 +#: camlib.py:2682 camlib.py:3582 camlib.py:3967 msgid "" "The End Move X,Y field in Edit -> Preferences has to be in the format (x, y) " "but now there is only one value, not two." @@ -18248,35 +2731,31 @@ msgstr "" "The End Move X,Y field in Edit -> Preferences has to be in the format (x, y) " "but now there is only one value, not two." -#: camlib.py:2842 +#: camlib.py:2770 msgid "Creating a list of points to drill..." msgstr "Creating a list of points to drill..." -#: camlib.py:2866 -msgid "Failed. Drill points inside the exclusion zones." -msgstr "Failed. Drill points inside the exclusion zones." - -#: camlib.py:2943 camlib.py:3922 camlib.py:4332 +#: camlib.py:2860 camlib.py:3729 camlib.py:4121 msgid "Starting G-Code" msgstr "Starting G-Code" -#: camlib.py:3084 camlib.py:3337 camlib.py:3535 camlib.py:3935 camlib.py:4343 +#: camlib.py:3001 camlib.py:3220 camlib.py:3384 camlib.py:3742 camlib.py:4132 msgid "Starting G-Code for tool with diameter" msgstr "Starting G-Code for tool with diameter" -#: camlib.py:3201 camlib.py:3453 camlib.py:3655 +#: camlib.py:3084 camlib.py:3302 camlib.py:3470 msgid "G91 coordinates not implemented" msgstr "G91 coordinates not implemented" -#: camlib.py:3207 camlib.py:3460 camlib.py:3660 +#: camlib.py:3090 camlib.py:3309 camlib.py:3475 msgid "The loaded Excellon file has no drills" msgstr "The loaded Excellon file has no drills" -#: camlib.py:3683 +#: camlib.py:3498 msgid "Finished G-Code generation..." msgstr "Finished G-Code generation..." -#: camlib.py:3793 +#: camlib.py:3600 msgid "" "The Toolchange X,Y field in Edit -> Preferences has to be in the format (x, " "y) \n" @@ -18286,7 +2765,7 @@ msgstr "" "y) \n" "but now there is only one value, not two." -#: camlib.py:3807 camlib.py:4207 +#: camlib.py:3614 camlib.py:4000 msgid "" "Cut_Z parameter is None or zero. Most likely a bad combinations of other " "parameters." @@ -18294,7 +2773,7 @@ msgstr "" "Cut_Z parameter is None or zero. Most likely a bad combinations of other " "parameters." -#: camlib.py:3816 camlib.py:4216 +#: camlib.py:3623 camlib.py:4009 msgid "" "The Cut Z parameter has positive value. It is the depth value to cut into " "material.\n" @@ -18308,11 +2787,11 @@ msgstr "" "therefore the app will convert the value to negative.Check the resulting CNC " "code (Gcode etc)." -#: camlib.py:3829 camlib.py:4230 +#: camlib.py:3636 camlib.py:4023 msgid "Travel Z parameter is None or zero." msgstr "Travel Z parameter is None or zero." -#: camlib.py:3834 camlib.py:4235 +#: camlib.py:3641 camlib.py:4028 msgid "" "The Travel Z parameter has negative value. It is the height value to travel " "between cuts.\n" @@ -18326,33 +2805,33 @@ msgstr "" "therefore the app will convert the value to positive.Check the resulting CNC " "code (Gcode etc)." -#: camlib.py:3842 camlib.py:4243 +#: camlib.py:3649 camlib.py:4036 msgid "The Z Travel parameter is zero. This is dangerous, skipping file" msgstr "The Z Travel parameter is zero. This is dangerous, skipping file" -#: camlib.py:3861 camlib.py:4266 +#: camlib.py:3668 camlib.py:4059 msgid "Indexing geometry before generating G-Code..." msgstr "Indexing geometry before generating G-Code..." -#: camlib.py:4009 camlib.py:4420 +#: camlib.py:3812 camlib.py:4201 msgid "Finished G-Code generation" msgstr "Finished G-Code generation" -#: camlib.py:4009 +#: camlib.py:3812 msgid "paths traced" msgstr "paths traced" -#: camlib.py:4059 +#: camlib.py:3862 msgid "Expected a Geometry, got" msgstr "Expected a Geometry, got" -#: camlib.py:4066 +#: camlib.py:3869 msgid "" "Trying to generate a CNC Job from a Geometry object without solid_geometry." msgstr "" "Trying to generate a CNC Job from a Geometry object without solid_geometry." -#: camlib.py:4107 +#: camlib.py:3910 msgid "" "The Tool Offset value is too negative to use for the current_geometry.\n" "Raise the value (in module) and try again." @@ -18360,42 +2839,15440 @@ msgstr "" "The Tool Offset value is too negative to use for the current_geometry.\n" "Raise the value (in module) and try again." -#: camlib.py:4420 +#: camlib.py:4201 msgid " paths traced." msgstr " paths traced." -#: camlib.py:4448 +#: camlib.py:4229 msgid "There is no tool data in the SolderPaste geometry." msgstr "There is no tool data in the SolderPaste geometry." -#: camlib.py:4537 +#: camlib.py:4318 msgid "Finished SolderPaste G-Code generation" msgstr "Finished SolderPaste G-Code generation" -#: camlib.py:4537 +#: camlib.py:4318 msgid "paths traced." msgstr "paths traced." -#: camlib.py:4872 +#: camlib.py:4578 msgid "Parsing GCode file. Number of lines" msgstr "Parsing GCode file. Number of lines" -#: camlib.py:4979 +#: camlib.py:4685 msgid "Creating Geometry from the parsed GCode file. " msgstr "Creating Geometry from the parsed GCode file. " -#: camlib.py:5147 camlib.py:5420 camlib.py:5568 camlib.py:5737 +#: camlib.py:4828 camlib.py:5118 camlib.py:5229 camlib.py:5385 msgid "G91 coordinates not implemented ..." msgstr "G91 coordinates not implemented ..." -#: defaults.py:771 +#: camlib.py:4960 +msgid "Unifying Geometry from parsed Geometry segments" +msgstr "Unifying Geometry from parsed Geometry segments" + +#: defaults.py:401 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:86 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309 +#: flatcamTools/ToolCopperThieving.py:125 flatcamTools/ToolNCC.py:535 +#: flatcamTools/ToolNCC.py:1306 flatcamTools/ToolNCC.py:1634 +#: flatcamTools/ToolNCC.py:1919 flatcamTools/ToolNCC.py:1983 +#: flatcamTools/ToolNCC.py:2967 flatcamTools/ToolNCC.py:2976 +#: tclCommands/TclCommandCopperClear.py:190 +msgid "Itself" +msgstr "Itself" + +#: defaults.py:428 flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280 +#: flatcamTools/ToolPaint.py:486 flatcamTools/ToolPaint.py:1427 +#: tclCommands/TclCommandPaint.py:162 +msgid "All Polygons" +msgstr "All Polygons" + +#: defaults.py:739 msgid "Could not load defaults file." msgstr "Could not load defaults file." -#: defaults.py:784 +#: defaults.py:752 msgid "Failed to parse defaults file." msgstr "Failed to parse defaults file." +#: flatcamEditors/FlatCAMExcEditor.py:50 flatcamEditors/FlatCAMExcEditor.py:74 +#: flatcamEditors/FlatCAMExcEditor.py:168 +#: flatcamEditors/FlatCAMExcEditor.py:385 +#: flatcamEditors/FlatCAMExcEditor.py:589 +#: flatcamEditors/FlatCAMGrbEditor.py:243 +#: flatcamEditors/FlatCAMGrbEditor.py:250 +msgid "Click to place ..." +msgstr "Click to place ..." + +#: flatcamEditors/FlatCAMExcEditor.py:58 +msgid "To add a drill first select a tool" +msgstr "To add a drill first select a tool" + +#: flatcamEditors/FlatCAMExcEditor.py:122 +msgid "Done. Drill added." +msgstr "Done. Drill added." + +#: flatcamEditors/FlatCAMExcEditor.py:176 +msgid "To add an Drill Array first select a tool in Tool Table" +msgstr "To add an Drill Array first select a tool in Tool Table" + +#: flatcamEditors/FlatCAMExcEditor.py:192 +#: flatcamEditors/FlatCAMExcEditor.py:415 +#: flatcamEditors/FlatCAMExcEditor.py:636 +#: flatcamEditors/FlatCAMExcEditor.py:1151 +#: flatcamEditors/FlatCAMExcEditor.py:1178 +#: flatcamEditors/FlatCAMGrbEditor.py:473 +#: flatcamEditors/FlatCAMGrbEditor.py:1937 +#: flatcamEditors/FlatCAMGrbEditor.py:1967 +msgid "Click on target location ..." +msgstr "Click on target location ..." + +#: flatcamEditors/FlatCAMExcEditor.py:211 +msgid "Click on the Drill Circular Array Start position" +msgstr "Click on the Drill Circular Array Start position" + +#: flatcamEditors/FlatCAMExcEditor.py:233 +#: flatcamEditors/FlatCAMExcEditor.py:677 +#: flatcamEditors/FlatCAMGrbEditor.py:518 +msgid "The value is not Float. Check for comma instead of dot separator." +msgstr "The value is not Float. Check for comma instead of dot separator." + +#: flatcamEditors/FlatCAMExcEditor.py:237 +msgid "The value is mistyped. Check the value" +msgstr "The value is mistyped. Check the value" + +#: flatcamEditors/FlatCAMExcEditor.py:336 +msgid "Too many drills for the selected spacing angle." +msgstr "Too many drills for the selected spacing angle." + +#: flatcamEditors/FlatCAMExcEditor.py:354 +msgid "Done. Drill Array added." +msgstr "Done. Drill Array added." + +#: flatcamEditors/FlatCAMExcEditor.py:394 +msgid "To add a slot first select a tool" +msgstr "To add a slot first select a tool" + +#: flatcamEditors/FlatCAMExcEditor.py:454 +#: flatcamEditors/FlatCAMExcEditor.py:461 +#: flatcamEditors/FlatCAMExcEditor.py:742 +#: flatcamEditors/FlatCAMExcEditor.py:749 +msgid "Value is missing or wrong format. Add it and retry." +msgstr "Value is missing or wrong format. Add it and retry." + +#: flatcamEditors/FlatCAMExcEditor.py:559 +msgid "Done. Adding Slot completed." +msgstr "Done. Adding Slot completed." + +#: flatcamEditors/FlatCAMExcEditor.py:597 +msgid "To add an Slot Array first select a tool in Tool Table" +msgstr "To add an Slot Array first select a tool in Tool Table" + +#: flatcamEditors/FlatCAMExcEditor.py:655 +msgid "Click on the Slot Circular Array Start position" +msgstr "Click on the Slot Circular Array Start position" + +#: flatcamEditors/FlatCAMExcEditor.py:680 +#: flatcamEditors/FlatCAMGrbEditor.py:521 +msgid "The value is mistyped. Check the value." +msgstr "The value is mistyped. Check the value." + +#: flatcamEditors/FlatCAMExcEditor.py:859 +msgid "Too many Slots for the selected spacing angle." +msgstr "Too many Slots for the selected spacing angle." + +#: flatcamEditors/FlatCAMExcEditor.py:882 +msgid "Done. Slot Array added." +msgstr "Done. Slot Array added." + +#: flatcamEditors/FlatCAMExcEditor.py:904 +msgid "Click on the Drill(s) to resize ..." +msgstr "Click on the Drill(s) to resize ..." + +#: flatcamEditors/FlatCAMExcEditor.py:934 +msgid "Resize drill(s) failed. Please enter a diameter for resize." +msgstr "Resize drill(s) failed. Please enter a diameter for resize." + +#: flatcamEditors/FlatCAMExcEditor.py:1112 +msgid "Done. Drill/Slot Resize completed." +msgstr "Done. Drill/Slot Resize completed." + +#: flatcamEditors/FlatCAMExcEditor.py:1115 +msgid "Cancelled. No drills/slots selected for resize ..." +msgstr "Cancelled. No drills/slots selected for resize ..." + +#: flatcamEditors/FlatCAMExcEditor.py:1153 +#: flatcamEditors/FlatCAMGrbEditor.py:1939 +msgid "Click on reference location ..." +msgstr "Click on reference location ..." + +#: flatcamEditors/FlatCAMExcEditor.py:1210 +msgid "Done. Drill(s) Move completed." +msgstr "Done. Drill(s) Move completed." + +#: flatcamEditors/FlatCAMExcEditor.py:1318 +msgid "Done. Drill(s) copied." +msgstr "Done. Drill(s) copied." + +#: flatcamEditors/FlatCAMExcEditor.py:1557 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:26 +msgid "Excellon Editor" +msgstr "Excellon Editor" + +#: flatcamEditors/FlatCAMExcEditor.py:1564 +#: flatcamEditors/FlatCAMGrbEditor.py:2462 +msgid "Name:" +msgstr "Name:" + +#: flatcamEditors/FlatCAMExcEditor.py:1570 flatcamGUI/ObjectUI.py:761 +#: flatcamGUI/ObjectUI.py:1465 flatcamTools/ToolNCC.py:120 +#: flatcamTools/ToolPaint.py:115 flatcamTools/ToolSolderPaste.py:74 +msgid "Tools Table" +msgstr "Tools Table" + +#: flatcamEditors/FlatCAMExcEditor.py:1572 flatcamGUI/ObjectUI.py:763 +msgid "" +"Tools in this Excellon object\n" +"when are used for drilling." +msgstr "" +"Tools in this Excellon object\n" +"when are used for drilling." + +#: flatcamEditors/FlatCAMExcEditor.py:1584 +#: flatcamEditors/FlatCAMExcEditor.py:3066 flatcamGUI/ObjectUI.py:781 +#: flatcamObjects/FlatCAMExcellon.py:1098 +#: flatcamObjects/FlatCAMExcellon.py:1188 +#: flatcamObjects/FlatCAMExcellon.py:1373 flatcamTools/ToolNCC.py:132 +#: flatcamTools/ToolPaint.py:128 flatcamTools/ToolPcbWizard.py:76 +#: flatcamTools/ToolProperties.py:416 flatcamTools/ToolProperties.py:476 +#: flatcamTools/ToolSolderPaste.py:85 tclCommands/TclCommandDrillcncjob.py:193 +msgid "Diameter" +msgstr "Diameter" + +#: flatcamEditors/FlatCAMExcEditor.py:1592 +msgid "Add/Delete Tool" +msgstr "Add/Delete Tool" + +#: flatcamEditors/FlatCAMExcEditor.py:1594 +msgid "" +"Add/Delete a tool to the tool list\n" +"for this Excellon object." +msgstr "" +"Add/Delete a tool to the tool list\n" +"for this Excellon object." + +#: flatcamEditors/FlatCAMExcEditor.py:1606 flatcamGUI/ObjectUI.py:1585 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:57 +msgid "Diameter for the new tool" +msgstr "Diameter for the new tool" + +#: flatcamEditors/FlatCAMExcEditor.py:1616 +msgid "Add Tool" +msgstr "Add Tool" + +#: flatcamEditors/FlatCAMExcEditor.py:1618 +msgid "" +"Add a new tool to the tool list\n" +"with the diameter specified above." +msgstr "" +"Add a new tool to the tool list\n" +"with the diameter specified above." + +#: flatcamEditors/FlatCAMExcEditor.py:1630 +msgid "Delete Tool" +msgstr "Delete Tool" + +#: flatcamEditors/FlatCAMExcEditor.py:1632 +msgid "" +"Delete a tool in the tool list\n" +"by selecting a row in the tool table." +msgstr "" +"Delete a tool in the tool list\n" +"by selecting a row in the tool table." + +#: flatcamEditors/FlatCAMExcEditor.py:1650 flatcamGUI/FlatCAMGUI.py:2019 +msgid "Resize Drill(s)" +msgstr "Resize Drill(s)" + +#: flatcamEditors/FlatCAMExcEditor.py:1652 +msgid "Resize a drill or a selection of drills." +msgstr "Resize a drill or a selection of drills." + +#: flatcamEditors/FlatCAMExcEditor.py:1659 +msgid "Resize Dia" +msgstr "Resize Dia" + +#: flatcamEditors/FlatCAMExcEditor.py:1661 +msgid "Diameter to resize to." +msgstr "Diameter to resize to." + +#: flatcamEditors/FlatCAMExcEditor.py:1672 +msgid "Resize" +msgstr "Resize" + +#: flatcamEditors/FlatCAMExcEditor.py:1674 +msgid "Resize drill(s)" +msgstr "Resize drill(s)" + +#: flatcamEditors/FlatCAMExcEditor.py:1699 flatcamGUI/FlatCAMGUI.py:2018 +#: flatcamGUI/FlatCAMGUI.py:2270 +msgid "Add Drill Array" +msgstr "Add Drill Array" + +#: flatcamEditors/FlatCAMExcEditor.py:1701 +msgid "Add an array of drills (linear or circular array)" +msgstr "Add an array of drills (linear or circular array)" + +#: flatcamEditors/FlatCAMExcEditor.py:1707 +msgid "" +"Select the type of drills array to create.\n" +"It can be Linear X(Y) or Circular" +msgstr "" +"Select the type of drills array to create.\n" +"It can be Linear X(Y) or Circular" + +#: flatcamEditors/FlatCAMExcEditor.py:1710 +#: flatcamEditors/FlatCAMExcEditor.py:1924 +#: flatcamEditors/FlatCAMGrbEditor.py:2775 +msgid "Linear" +msgstr "Linear" + +#: flatcamEditors/FlatCAMExcEditor.py:1711 +#: flatcamEditors/FlatCAMExcEditor.py:1925 +#: flatcamEditors/FlatCAMGrbEditor.py:2776 flatcamGUI/ObjectUI.py:316 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:52 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:149 +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:107 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:52 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:151 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:61 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:70 +#: flatcamTools/ToolExtractDrills.py:78 flatcamTools/ToolExtractDrills.py:201 +#: flatcamTools/ToolFiducials.py:220 flatcamTools/ToolNCC.py:221 +#: flatcamTools/ToolPaint.py:204 flatcamTools/ToolPunchGerber.py:89 +#: flatcamTools/ToolPunchGerber.py:229 +msgid "Circular" +msgstr "Circular" + +#: flatcamEditors/FlatCAMExcEditor.py:1719 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:68 +msgid "Nr of drills" +msgstr "Nr of drills" + +#: flatcamEditors/FlatCAMExcEditor.py:1720 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:70 +msgid "Specify how many drills to be in the array." +msgstr "Specify how many drills to be in the array." + +#: flatcamEditors/FlatCAMExcEditor.py:1738 +#: flatcamEditors/FlatCAMExcEditor.py:1788 +#: flatcamEditors/FlatCAMExcEditor.py:1860 +#: flatcamEditors/FlatCAMExcEditor.py:1953 +#: flatcamEditors/FlatCAMExcEditor.py:2004 +#: flatcamEditors/FlatCAMGrbEditor.py:1573 +#: flatcamEditors/FlatCAMGrbEditor.py:2804 +#: flatcamEditors/FlatCAMGrbEditor.py:2853 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:178 +msgid "Direction" +msgstr "Direction" + +#: flatcamEditors/FlatCAMExcEditor.py:1740 +#: flatcamEditors/FlatCAMExcEditor.py:1955 +#: flatcamEditors/FlatCAMGrbEditor.py:2806 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:86 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:234 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:122 +msgid "" +"Direction on which the linear array is oriented:\n" +"- 'X' - horizontal axis \n" +"- 'Y' - vertical axis or \n" +"- 'Angle' - a custom angle for the array inclination" +msgstr "" +"Direction on which the linear array is oriented:\n" +"- 'X' - horizontal axis \n" +"- 'Y' - vertical axis or \n" +"- 'Angle' - a custom angle for the array inclination" + +#: flatcamEditors/FlatCAMExcEditor.py:1747 +#: flatcamEditors/FlatCAMExcEditor.py:1869 +#: flatcamEditors/FlatCAMExcEditor.py:1962 +#: flatcamEditors/FlatCAMGrbEditor.py:2813 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:92 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:187 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:240 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:128 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:208 +#: flatcamTools/ToolFilm.py:256 +msgid "X" +msgstr "X" + +#: flatcamEditors/FlatCAMExcEditor.py:1748 +#: flatcamEditors/FlatCAMExcEditor.py:1870 +#: flatcamEditors/FlatCAMExcEditor.py:1963 +#: flatcamEditors/FlatCAMGrbEditor.py:2814 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:93 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:188 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:241 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:129 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:209 +#: flatcamTools/ToolFilm.py:257 +msgid "Y" +msgstr "Y" + +#: flatcamEditors/FlatCAMExcEditor.py:1749 +#: flatcamEditors/FlatCAMExcEditor.py:1766 +#: flatcamEditors/FlatCAMExcEditor.py:1800 +#: flatcamEditors/FlatCAMExcEditor.py:1871 +#: flatcamEditors/FlatCAMExcEditor.py:1875 +#: flatcamEditors/FlatCAMExcEditor.py:1964 +#: flatcamEditors/FlatCAMExcEditor.py:1982 +#: flatcamEditors/FlatCAMExcEditor.py:2016 +#: flatcamEditors/FlatCAMGrbEditor.py:2815 +#: flatcamEditors/FlatCAMGrbEditor.py:2832 +#: flatcamEditors/FlatCAMGrbEditor.py:2868 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:94 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:113 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:189 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:194 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:242 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:263 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:130 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:148 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:53 +#: flatcamTools/ToolDistance.py:120 flatcamTools/ToolDistanceMin.py:69 +#: flatcamTools/ToolTransform.py:60 +msgid "Angle" +msgstr "Angle" + +#: flatcamEditors/FlatCAMExcEditor.py:1753 +#: flatcamEditors/FlatCAMExcEditor.py:1968 +#: flatcamEditors/FlatCAMGrbEditor.py:2819 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:100 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:248 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:136 +msgid "Pitch" +msgstr "Pitch" + +#: flatcamEditors/FlatCAMExcEditor.py:1755 +#: flatcamEditors/FlatCAMExcEditor.py:1970 +#: flatcamEditors/FlatCAMGrbEditor.py:2821 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:102 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:250 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:138 +msgid "Pitch = Distance between elements of the array." +msgstr "Pitch = Distance between elements of the array." + +#: flatcamEditors/FlatCAMExcEditor.py:1768 +#: flatcamEditors/FlatCAMExcEditor.py:1984 +msgid "" +"Angle at which the linear array is placed.\n" +"The precision is of max 2 decimals.\n" +"Min value is: -360 degrees.\n" +"Max value is: 360.00 degrees." +msgstr "" +"Angle at which the linear array is placed.\n" +"The precision is of max 2 decimals.\n" +"Min value is: -360 degrees.\n" +"Max value is: 360.00 degrees." + +#: flatcamEditors/FlatCAMExcEditor.py:1789 +#: flatcamEditors/FlatCAMExcEditor.py:2005 +#: flatcamEditors/FlatCAMGrbEditor.py:2855 +msgid "" +"Direction for circular array.Can be CW = clockwise or CCW = counter " +"clockwise." +msgstr "" +"Direction for circular array.Can be CW = clockwise or CCW = counter " +"clockwise." + +#: flatcamEditors/FlatCAMExcEditor.py:1796 +#: flatcamEditors/FlatCAMExcEditor.py:2012 +#: flatcamEditors/FlatCAMGrbEditor.py:2863 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:129 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:136 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:286 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:142 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:170 +msgid "CW" +msgstr "CW" + +#: flatcamEditors/FlatCAMExcEditor.py:1797 +#: flatcamEditors/FlatCAMExcEditor.py:2013 +#: flatcamEditors/FlatCAMGrbEditor.py:2864 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:130 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:137 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:287 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:143 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:171 +msgid "CCW" +msgstr "CCW" + +#: flatcamEditors/FlatCAMExcEditor.py:1801 +#: flatcamEditors/FlatCAMExcEditor.py:2017 +#: flatcamEditors/FlatCAMGrbEditor.py:2870 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:115 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:145 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:265 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:295 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:150 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:179 +msgid "Angle at which each element in circular array is placed." +msgstr "Angle at which each element in circular array is placed." + +#: flatcamEditors/FlatCAMExcEditor.py:1835 +msgid "Slot Parameters" +msgstr "Slot Parameters" + +#: flatcamEditors/FlatCAMExcEditor.py:1837 +msgid "" +"Parameters for adding a slot (hole with oval shape)\n" +"either single or as an part of an array." +msgstr "" +"Parameters for adding a slot (hole with oval shape)\n" +"either single or as an part of an array." + +#: flatcamEditors/FlatCAMExcEditor.py:1846 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:162 +#: flatcamTools/ToolProperties.py:559 +msgid "Length" +msgstr "Length" + +#: flatcamEditors/FlatCAMExcEditor.py:1848 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:164 +msgid "Length = The length of the slot." +msgstr "Length = The length of the slot." + +#: flatcamEditors/FlatCAMExcEditor.py:1862 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:180 +msgid "" +"Direction on which the slot is oriented:\n" +"- 'X' - horizontal axis \n" +"- 'Y' - vertical axis or \n" +"- 'Angle' - a custom angle for the slot inclination" +msgstr "" +"Direction on which the slot is oriented:\n" +"- 'X' - horizontal axis \n" +"- 'Y' - vertical axis or \n" +"- 'Angle' - a custom angle for the slot inclination" + +#: flatcamEditors/FlatCAMExcEditor.py:1877 +msgid "" +"Angle at which the slot is placed.\n" +"The precision is of max 2 decimals.\n" +"Min value is: -360 degrees.\n" +"Max value is: 360.00 degrees." +msgstr "" +"Angle at which the slot is placed.\n" +"The precision is of max 2 decimals.\n" +"Min value is: -360 degrees.\n" +"Max value is: 360.00 degrees." + +#: flatcamEditors/FlatCAMExcEditor.py:1910 +msgid "Slot Array Parameters" +msgstr "Slot Array Parameters" + +#: flatcamEditors/FlatCAMExcEditor.py:1912 +msgid "Parameters for the array of slots (linear or circular array)" +msgstr "Parameters for the array of slots (linear or circular array)" + +#: flatcamEditors/FlatCAMExcEditor.py:1921 +msgid "" +"Select the type of slot array to create.\n" +"It can be Linear X(Y) or Circular" +msgstr "" +"Select the type of slot array to create.\n" +"It can be Linear X(Y) or Circular" + +#: flatcamEditors/FlatCAMExcEditor.py:1933 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:219 +msgid "Nr of slots" +msgstr "Nr of slots" + +#: flatcamEditors/FlatCAMExcEditor.py:1934 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:221 +msgid "Specify how many slots to be in the array." +msgstr "Specify how many slots to be in the array." + +#: flatcamEditors/FlatCAMExcEditor.py:2452 +#: flatcamObjects/FlatCAMExcellon.py:410 +msgid "Total Drills" +msgstr "Total Drills" + +#: flatcamEditors/FlatCAMExcEditor.py:2484 +#: flatcamObjects/FlatCAMExcellon.py:441 +msgid "Total Slots" +msgstr "Total Slots" + +#: flatcamEditors/FlatCAMExcEditor.py:2559 +#: flatcamEditors/FlatCAMGeoEditor.py:1076 +#: flatcamEditors/FlatCAMGeoEditor.py:1117 +#: flatcamEditors/FlatCAMGeoEditor.py:1145 +#: flatcamEditors/FlatCAMGeoEditor.py:1173 +#: flatcamEditors/FlatCAMGeoEditor.py:1217 +#: flatcamEditors/FlatCAMGeoEditor.py:1252 +#: flatcamEditors/FlatCAMGeoEditor.py:1280 +#: flatcamObjects/FlatCAMGeometry.py:599 flatcamObjects/FlatCAMGeometry.py:1033 +#: flatcamObjects/FlatCAMGeometry.py:1780 +#: flatcamObjects/FlatCAMGeometry.py:2424 flatcamTools/ToolNCC.py:1498 +#: flatcamTools/ToolPaint.py:1249 flatcamTools/ToolPaint.py:1420 +#: flatcamTools/ToolSolderPaste.py:883 flatcamTools/ToolSolderPaste.py:956 +msgid "Wrong value format entered, use a number." +msgstr "Wrong value format entered, use a number." + +#: flatcamEditors/FlatCAMExcEditor.py:2570 +msgid "" +"Tool already in the original or actual tool list.\n" +"Save and reedit Excellon if you need to add this tool. " +msgstr "" +"Tool already in the original or actual tool list.\n" +"Save and reedit Excellon if you need to add this tool. " + +#: flatcamEditors/FlatCAMExcEditor.py:2579 flatcamGUI/FlatCAMGUI.py:4071 +msgid "Added new tool with dia" +msgstr "Added new tool with dia" + +#: flatcamEditors/FlatCAMExcEditor.py:2612 +msgid "Select a tool in Tool Table" +msgstr "Select a tool in Tool Table" + +#: flatcamEditors/FlatCAMExcEditor.py:2642 +msgid "Deleted tool with diameter" +msgstr "Deleted tool with diameter" + +#: flatcamEditors/FlatCAMExcEditor.py:2790 +msgid "Done. Tool edit completed." +msgstr "Done. Tool edit completed." + +#: flatcamEditors/FlatCAMExcEditor.py:3352 +msgid "There are no Tools definitions in the file. Aborting Excellon creation." +msgstr "" +"There are no Tools definitions in the file. Aborting Excellon creation." + +#: flatcamEditors/FlatCAMExcEditor.py:3356 +msgid "An internal error has ocurred. See Shell.\n" +msgstr "An internal error has ocurred. See Shell.\n" + +#: flatcamEditors/FlatCAMExcEditor.py:3361 +msgid "Creating Excellon." +msgstr "Creating Excellon." + +#: flatcamEditors/FlatCAMExcEditor.py:3373 +msgid "Excellon editing finished." +msgstr "Excellon editing finished." + +#: flatcamEditors/FlatCAMExcEditor.py:3390 +msgid "Cancelled. There is no Tool/Drill selected" +msgstr "Cancelled. There is no Tool/Drill selected" + +#: flatcamEditors/FlatCAMExcEditor.py:4003 +msgid "Done. Drill(s) deleted." +msgstr "Done. Drill(s) deleted." + +#: flatcamEditors/FlatCAMExcEditor.py:4076 +#: flatcamEditors/FlatCAMExcEditor.py:4086 +#: flatcamEditors/FlatCAMGrbEditor.py:5063 +msgid "Click on the circular array Center position" +msgstr "Click on the circular array Center position" + +#: flatcamEditors/FlatCAMGeoEditor.py:85 +msgid "Buffer distance:" +msgstr "Buffer distance:" + +#: flatcamEditors/FlatCAMGeoEditor.py:86 +msgid "Buffer corner:" +msgstr "Buffer corner:" + +#: flatcamEditors/FlatCAMGeoEditor.py:88 +msgid "" +"There are 3 types of corners:\n" +" - 'Round': the corner is rounded for exterior buffer.\n" +" - 'Square': the corner is met in a sharp angle for exterior buffer.\n" +" - 'Beveled': the corner is a line that directly connects the features " +"meeting in the corner" +msgstr "" +"There are 3 types of corners:\n" +" - 'Round': the corner is rounded for exterior buffer.\n" +" - 'Square': the corner is met in a sharp angle for exterior buffer.\n" +" - 'Beveled': the corner is a line that directly connects the features " +"meeting in the corner" + +#: flatcamEditors/FlatCAMGeoEditor.py:94 +#: flatcamEditors/FlatCAMGrbEditor.py:2631 +msgid "Round" +msgstr "Round" + +#: flatcamEditors/FlatCAMGeoEditor.py:95 +#: flatcamEditors/FlatCAMGrbEditor.py:2632 flatcamGUI/ObjectUI.py:2073 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:217 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:68 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:175 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:68 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:177 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:143 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:327 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:291 +#: flatcamTools/ToolExtractDrills.py:94 flatcamTools/ToolExtractDrills.py:227 +#: flatcamTools/ToolNCC.py:583 flatcamTools/ToolPaint.py:527 +#: flatcamTools/ToolPunchGerber.py:105 flatcamTools/ToolPunchGerber.py:255 +#: flatcamTools/ToolQRCode.py:198 +msgid "Square" +msgstr "Square" + +#: flatcamEditors/FlatCAMGeoEditor.py:96 +#: flatcamEditors/FlatCAMGrbEditor.py:2633 +msgid "Beveled" +msgstr "Beveled" + +#: flatcamEditors/FlatCAMGeoEditor.py:103 +msgid "Buffer Interior" +msgstr "Buffer Interior" + +#: flatcamEditors/FlatCAMGeoEditor.py:105 +msgid "Buffer Exterior" +msgstr "Buffer Exterior" + +#: flatcamEditors/FlatCAMGeoEditor.py:111 +msgid "Full Buffer" +msgstr "Full Buffer" + +#: flatcamEditors/FlatCAMGeoEditor.py:132 +#: flatcamEditors/FlatCAMGeoEditor.py:3017 flatcamGUI/FlatCAMGUI.py:1928 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:190 +msgid "Buffer Tool" +msgstr "Buffer Tool" + +#: flatcamEditors/FlatCAMGeoEditor.py:144 +#: flatcamEditors/FlatCAMGeoEditor.py:161 +#: flatcamEditors/FlatCAMGeoEditor.py:178 +#: flatcamEditors/FlatCAMGeoEditor.py:3036 +#: flatcamEditors/FlatCAMGeoEditor.py:3064 +#: flatcamEditors/FlatCAMGeoEditor.py:3092 +#: flatcamEditors/FlatCAMGrbEditor.py:5116 +msgid "Buffer distance value is missing or wrong format. Add it and retry." +msgstr "Buffer distance value is missing or wrong format. Add it and retry." + +#: flatcamEditors/FlatCAMGeoEditor.py:242 +msgid "Font" +msgstr "Font" + +#: flatcamEditors/FlatCAMGeoEditor.py:323 flatcamGUI/FlatCAMGUI.py:2208 +msgid "Text" +msgstr "Text" + +#: flatcamEditors/FlatCAMGeoEditor.py:349 +msgid "Text Tool" +msgstr "Text Tool" + +#: flatcamEditors/FlatCAMGeoEditor.py:405 flatcamGUI/FlatCAMGUI.py:511 +#: flatcamGUI/FlatCAMGUI.py:1158 flatcamGUI/ObjectUI.py:818 +#: flatcamGUI/ObjectUI.py:1662 flatcamObjects/FlatCAMExcellon.py:742 +#: flatcamObjects/FlatCAMExcellon.py:1084 flatcamObjects/FlatCAMGeometry.py:759 +#: flatcamTools/ToolNCC.py:331 flatcamTools/ToolNCC.py:797 +#: flatcamTools/ToolPaint.py:314 flatcamTools/ToolPaint.py:767 +msgid "Tool" +msgstr "Tool" + +#: flatcamEditors/FlatCAMGeoEditor.py:439 flatcamGUI/ObjectUI.py:364 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:43 +msgid "Tool dia" +msgstr "Tool dia" + +#: flatcamEditors/FlatCAMGeoEditor.py:441 +msgid "Diameter of the tool to be used in the operation." +msgstr "Diameter of the tool to be used in the operation." + +#: flatcamEditors/FlatCAMGeoEditor.py:487 +msgid "" +"Algorithm to paint the polygons:\n" +"- Standard: Fixed step inwards.\n" +"- Seed-based: Outwards from seed.\n" +"- Line-based: Parallel lines." +msgstr "" +"Algorithm to paint the polygons:\n" +"- Standard: Fixed step inwards.\n" +"- Seed-based: Outwards from seed.\n" +"- Line-based: Parallel lines." + +#: flatcamEditors/FlatCAMGeoEditor.py:506 +msgid "Connect:" +msgstr "Connect:" + +#: flatcamEditors/FlatCAMGeoEditor.py:516 +msgid "Contour:" +msgstr "Contour:" + +#: flatcamEditors/FlatCAMGeoEditor.py:529 flatcamGUI/FlatCAMGUI.py:2212 +msgid "Paint" +msgstr "Paint" + +#: flatcamEditors/FlatCAMGeoEditor.py:547 flatcamGUI/FlatCAMGUI.py:924 +#: flatcamGUI/FlatCAMGUI.py:2628 flatcamGUI/ObjectUI.py:2139 +#: flatcamTools/ToolPaint.py:43 flatcamTools/ToolPaint.py:738 +msgid "Paint Tool" +msgstr "Paint Tool" + +#: flatcamEditors/FlatCAMGeoEditor.py:583 +#: flatcamEditors/FlatCAMGeoEditor.py:1055 +#: flatcamEditors/FlatCAMGeoEditor.py:3024 +#: flatcamEditors/FlatCAMGeoEditor.py:3052 +#: flatcamEditors/FlatCAMGeoEditor.py:3080 +#: flatcamEditors/FlatCAMGeoEditor.py:4502 +#: flatcamEditors/FlatCAMGrbEditor.py:5767 +msgid "Cancelled. No shape selected." +msgstr "Cancelled. No shape selected." + +#: flatcamEditors/FlatCAMGeoEditor.py:596 +#: flatcamEditors/FlatCAMGeoEditor.py:3042 +#: flatcamEditors/FlatCAMGeoEditor.py:3070 +#: flatcamEditors/FlatCAMGeoEditor.py:3098 +#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:59 +#: flatcamTools/ToolProperties.py:117 flatcamTools/ToolProperties.py:162 +msgid "Tools" +msgstr "Tools" + +#: flatcamEditors/FlatCAMGeoEditor.py:607 +#: flatcamEditors/FlatCAMGeoEditor.py:991 +#: flatcamEditors/FlatCAMGrbEditor.py:5306 +#: flatcamEditors/FlatCAMGrbEditor.py:5703 flatcamGUI/FlatCAMGUI.py:945 +#: flatcamGUI/FlatCAMGUI.py:2649 flatcamTools/ToolTransform.py:460 +msgid "Transform Tool" +msgstr "Transform Tool" + +#: flatcamEditors/FlatCAMGeoEditor.py:608 +#: flatcamEditors/FlatCAMGeoEditor.py:673 +#: flatcamEditors/FlatCAMGrbEditor.py:5307 +#: flatcamEditors/FlatCAMGrbEditor.py:5372 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:45 +#: flatcamTools/ToolTransform.py:24 flatcamTools/ToolTransform.py:466 +msgid "Rotate" +msgstr "Rotate" + +#: flatcamEditors/FlatCAMGeoEditor.py:609 +#: flatcamEditors/FlatCAMGrbEditor.py:5308 flatcamTools/ToolTransform.py:25 +msgid "Skew/Shear" +msgstr "Skew/Shear" + +#: flatcamEditors/FlatCAMGeoEditor.py:610 +#: flatcamEditors/FlatCAMGrbEditor.py:2680 +#: flatcamEditors/FlatCAMGrbEditor.py:5309 flatcamGUI/FlatCAMGUI.py:1063 +#: flatcamGUI/FlatCAMGUI.py:2140 flatcamGUI/FlatCAMGUI.py:2255 +#: flatcamGUI/FlatCAMGUI.py:2767 flatcamGUI/ObjectUI.py:125 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:95 +#: flatcamTools/ToolTransform.py:26 +msgid "Scale" +msgstr "Scale" + +#: flatcamEditors/FlatCAMGeoEditor.py:611 +#: flatcamEditors/FlatCAMGrbEditor.py:5310 flatcamTools/ToolTransform.py:27 +msgid "Mirror (Flip)" +msgstr "Mirror (Flip)" + +#: flatcamEditors/FlatCAMGeoEditor.py:625 +#: flatcamEditors/FlatCAMGrbEditor.py:5324 flatcamGUI/FlatCAMGUI.py:856 +#: flatcamGUI/FlatCAMGUI.py:2564 +msgid "Editor" +msgstr "Editor" + +#: flatcamEditors/FlatCAMGeoEditor.py:657 +#: flatcamEditors/FlatCAMGrbEditor.py:5356 +msgid "Angle:" +msgstr "Angle:" + +#: flatcamEditors/FlatCAMGeoEditor.py:659 +#: flatcamEditors/FlatCAMGrbEditor.py:5358 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:55 +#: flatcamTools/ToolTransform.py:62 +msgid "" +"Angle for Rotation action, in degrees.\n" +"Float number between -360 and 359.\n" +"Positive numbers for CW motion.\n" +"Negative numbers for CCW motion." +msgstr "" +"Angle for Rotation action, in degrees.\n" +"Float number between -360 and 359.\n" +"Positive numbers for CW motion.\n" +"Negative numbers for CCW motion." + +#: flatcamEditors/FlatCAMGeoEditor.py:675 +#: flatcamEditors/FlatCAMGrbEditor.py:5374 +msgid "" +"Rotate the selected shape(s).\n" +"The point of reference is the middle of\n" +"the bounding box for all selected shapes." +msgstr "" +"Rotate the selected shape(s).\n" +"The point of reference is the middle of\n" +"the bounding box for all selected shapes." + +#: flatcamEditors/FlatCAMGeoEditor.py:698 +#: flatcamEditors/FlatCAMGrbEditor.py:5397 +msgid "Angle X:" +msgstr "Angle X:" + +#: flatcamEditors/FlatCAMGeoEditor.py:700 +#: flatcamEditors/FlatCAMGeoEditor.py:720 +#: flatcamEditors/FlatCAMGrbEditor.py:5399 +#: flatcamEditors/FlatCAMGrbEditor.py:5419 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:74 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:88 +#: flatcamTools/ToolCalibration.py:505 flatcamTools/ToolCalibration.py:518 +msgid "" +"Angle for Skew action, in degrees.\n" +"Float number between -360 and 359." +msgstr "" +"Angle for Skew action, in degrees.\n" +"Float number between -360 and 359." + +#: flatcamEditors/FlatCAMGeoEditor.py:711 +#: flatcamEditors/FlatCAMGrbEditor.py:5410 flatcamTools/ToolTransform.py:467 +msgid "Skew X" +msgstr "Skew X" + +#: flatcamEditors/FlatCAMGeoEditor.py:713 +#: flatcamEditors/FlatCAMGeoEditor.py:733 +#: flatcamEditors/FlatCAMGrbEditor.py:5412 +#: flatcamEditors/FlatCAMGrbEditor.py:5432 +msgid "" +"Skew/shear the selected shape(s).\n" +"The point of reference is the middle of\n" +"the bounding box for all selected shapes." +msgstr "" +"Skew/shear the selected shape(s).\n" +"The point of reference is the middle of\n" +"the bounding box for all selected shapes." + +#: flatcamEditors/FlatCAMGeoEditor.py:718 +#: flatcamEditors/FlatCAMGrbEditor.py:5417 +msgid "Angle Y:" +msgstr "Angle Y:" + +#: flatcamEditors/FlatCAMGeoEditor.py:731 +#: flatcamEditors/FlatCAMGrbEditor.py:5430 flatcamTools/ToolTransform.py:468 +msgid "Skew Y" +msgstr "Skew Y" + +#: flatcamEditors/FlatCAMGeoEditor.py:759 +#: flatcamEditors/FlatCAMGrbEditor.py:5458 +msgid "Factor X:" +msgstr "Factor X:" + +#: flatcamEditors/FlatCAMGeoEditor.py:761 +#: flatcamEditors/FlatCAMGrbEditor.py:5460 flatcamTools/ToolCalibration.py:469 +msgid "Factor for Scale action over X axis." +msgstr "Factor for Scale action over X axis." + +#: flatcamEditors/FlatCAMGeoEditor.py:771 +#: flatcamEditors/FlatCAMGrbEditor.py:5470 flatcamTools/ToolTransform.py:469 +msgid "Scale X" +msgstr "Scale X" + +#: flatcamEditors/FlatCAMGeoEditor.py:773 +#: flatcamEditors/FlatCAMGeoEditor.py:792 +#: flatcamEditors/FlatCAMGrbEditor.py:5472 +#: flatcamEditors/FlatCAMGrbEditor.py:5491 +msgid "" +"Scale the selected shape(s).\n" +"The point of reference depends on \n" +"the Scale reference checkbox state." +msgstr "" +"Scale the selected shape(s).\n" +"The point of reference depends on \n" +"the Scale reference checkbox state." + +#: flatcamEditors/FlatCAMGeoEditor.py:778 +#: flatcamEditors/FlatCAMGrbEditor.py:5477 +msgid "Factor Y:" +msgstr "Factor Y:" + +#: flatcamEditors/FlatCAMGeoEditor.py:780 +#: flatcamEditors/FlatCAMGrbEditor.py:5479 flatcamTools/ToolCalibration.py:481 +msgid "Factor for Scale action over Y axis." +msgstr "Factor for Scale action over Y axis." + +#: flatcamEditors/FlatCAMGeoEditor.py:790 +#: flatcamEditors/FlatCAMGrbEditor.py:5489 flatcamTools/ToolTransform.py:470 +msgid "Scale Y" +msgstr "Scale Y" + +#: flatcamEditors/FlatCAMGeoEditor.py:799 +#: flatcamEditors/FlatCAMGrbEditor.py:5498 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:124 +#: flatcamTools/ToolTransform.py:189 +msgid "Link" +msgstr "Link" + +#: flatcamEditors/FlatCAMGeoEditor.py:801 +#: flatcamEditors/FlatCAMGrbEditor.py:5500 +msgid "" +"Scale the selected shape(s)\n" +"using the Scale Factor X for both axis." +msgstr "" +"Scale the selected shape(s)\n" +"using the Scale Factor X for both axis." + +#: flatcamEditors/FlatCAMGeoEditor.py:807 +#: flatcamEditors/FlatCAMGrbEditor.py:5506 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:132 +#: flatcamTools/ToolTransform.py:196 +msgid "Scale Reference" +msgstr "Scale Reference" + +#: flatcamEditors/FlatCAMGeoEditor.py:809 +#: flatcamEditors/FlatCAMGrbEditor.py:5508 +msgid "" +"Scale the selected shape(s)\n" +"using the origin reference when checked,\n" +"and the center of the biggest bounding box\n" +"of the selected shapes when unchecked." +msgstr "" +"Scale the selected shape(s)\n" +"using the origin reference when checked,\n" +"and the center of the biggest bounding box\n" +"of the selected shapes when unchecked." + +#: flatcamEditors/FlatCAMGeoEditor.py:837 +#: flatcamEditors/FlatCAMGrbEditor.py:5537 +msgid "Value X:" +msgstr "Value X:" + +#: flatcamEditors/FlatCAMGeoEditor.py:839 +#: flatcamEditors/FlatCAMGrbEditor.py:5539 +msgid "Value for Offset action on X axis." +msgstr "Value for Offset action on X axis." + +#: flatcamEditors/FlatCAMGeoEditor.py:849 +#: flatcamEditors/FlatCAMGrbEditor.py:5549 flatcamTools/ToolTransform.py:473 +msgid "Offset X" +msgstr "Offset X" + +#: flatcamEditors/FlatCAMGeoEditor.py:851 +#: flatcamEditors/FlatCAMGeoEditor.py:871 +#: flatcamEditors/FlatCAMGrbEditor.py:5551 +#: flatcamEditors/FlatCAMGrbEditor.py:5571 +msgid "" +"Offset the selected shape(s).\n" +"The point of reference is the middle of\n" +"the bounding box for all selected shapes.\n" +msgstr "" +"Offset the selected shape(s).\n" +"The point of reference is the middle of\n" +"the bounding box for all selected shapes.\n" + +#: flatcamEditors/FlatCAMGeoEditor.py:857 +#: flatcamEditors/FlatCAMGrbEditor.py:5557 +msgid "Value Y:" +msgstr "Value Y:" + +#: flatcamEditors/FlatCAMGeoEditor.py:859 +#: flatcamEditors/FlatCAMGrbEditor.py:5559 +msgid "Value for Offset action on Y axis." +msgstr "Value for Offset action on Y axis." + +#: flatcamEditors/FlatCAMGeoEditor.py:869 +#: flatcamEditors/FlatCAMGrbEditor.py:5569 flatcamTools/ToolTransform.py:474 +msgid "Offset Y" +msgstr "Offset Y" + +#: flatcamEditors/FlatCAMGeoEditor.py:900 +#: flatcamEditors/FlatCAMGrbEditor.py:5600 flatcamTools/ToolTransform.py:475 +msgid "Flip on X" +msgstr "Flip on X" + +#: flatcamEditors/FlatCAMGeoEditor.py:902 +#: flatcamEditors/FlatCAMGeoEditor.py:909 +#: flatcamEditors/FlatCAMGrbEditor.py:5602 +#: flatcamEditors/FlatCAMGrbEditor.py:5609 +msgid "" +"Flip the selected shape(s) over the X axis.\n" +"Does not create a new shape." +msgstr "" +"Flip the selected shape(s) over the X axis.\n" +"Does not create a new shape." + +#: flatcamEditors/FlatCAMGeoEditor.py:907 +#: flatcamEditors/FlatCAMGrbEditor.py:5607 flatcamTools/ToolTransform.py:476 +msgid "Flip on Y" +msgstr "Flip on Y" + +#: flatcamEditors/FlatCAMGeoEditor.py:915 +#: flatcamEditors/FlatCAMGrbEditor.py:5615 +msgid "Ref Pt" +msgstr "Ref Pt" + +#: flatcamEditors/FlatCAMGeoEditor.py:917 +#: flatcamEditors/FlatCAMGrbEditor.py:5617 +msgid "" +"Flip the selected shape(s)\n" +"around the point in Point Entry Field.\n" +"\n" +"The point coordinates can be captured by\n" +"left click on canvas together with pressing\n" +"SHIFT key. \n" +"Then click Add button to insert coordinates.\n" +"Or enter the coords in format (x, y) in the\n" +"Point Entry field and click Flip on X(Y)" +msgstr "" +"Flip the selected shape(s)\n" +"around the point in Point Entry Field.\n" +"\n" +"The point coordinates can be captured by\n" +"left click on canvas together with pressing\n" +"SHIFT key. \n" +"Then click Add button to insert coordinates.\n" +"Or enter the coords in format (x, y) in the\n" +"Point Entry field and click Flip on X(Y)" + +#: flatcamEditors/FlatCAMGeoEditor.py:929 +#: flatcamEditors/FlatCAMGrbEditor.py:5629 +msgid "Point:" +msgstr "Point:" + +#: flatcamEditors/FlatCAMGeoEditor.py:931 +#: flatcamEditors/FlatCAMGrbEditor.py:5631 flatcamTools/ToolTransform.py:299 +msgid "" +"Coordinates in format (x, y) used as reference for mirroring.\n" +"The 'x' in (x, y) will be used when using Flip on X and\n" +"the 'y' in (x, y) will be used when using Flip on Y." +msgstr "" +"Coordinates in format (x, y) used as reference for mirroring.\n" +"The 'x' in (x, y) will be used when using Flip on X and\n" +"the 'y' in (x, y) will be used when using Flip on Y." + +#: flatcamEditors/FlatCAMGeoEditor.py:941 +#: flatcamEditors/FlatCAMGrbEditor.py:5643 flatcamTools/ToolTransform.py:309 +msgid "" +"The point coordinates can be captured by\n" +"left click on canvas together with pressing\n" +"SHIFT key. Then click Add button to insert." +msgstr "" +"The point coordinates can be captured by\n" +"left click on canvas together with pressing\n" +"SHIFT key. Then click Add button to insert." + +#: flatcamEditors/FlatCAMGeoEditor.py:1304 +#: flatcamEditors/FlatCAMGrbEditor.py:5951 +msgid "No shape selected. Please Select a shape to rotate!" +msgstr "No shape selected. Please Select a shape to rotate!" + +#: flatcamEditors/FlatCAMGeoEditor.py:1307 +#: flatcamEditors/FlatCAMGrbEditor.py:5954 flatcamTools/ToolTransform.py:679 +msgid "Appying Rotate" +msgstr "Appying Rotate" + +#: flatcamEditors/FlatCAMGeoEditor.py:1333 +#: flatcamEditors/FlatCAMGrbEditor.py:5986 +msgid "Done. Rotate completed." +msgstr "Done. Rotate completed." + +#: flatcamEditors/FlatCAMGeoEditor.py:1335 +msgid "Rotation action was not executed" +msgstr "Rotation action was not executed" + +#: flatcamEditors/FlatCAMGeoEditor.py:1354 +#: flatcamEditors/FlatCAMGrbEditor.py:6005 +msgid "No shape selected. Please Select a shape to flip!" +msgstr "No shape selected. Please Select a shape to flip!" + +#: flatcamEditors/FlatCAMGeoEditor.py:1357 +#: flatcamEditors/FlatCAMGrbEditor.py:6008 flatcamTools/ToolTransform.py:728 +msgid "Applying Flip" +msgstr "Applying Flip" + +#: flatcamEditors/FlatCAMGeoEditor.py:1386 +#: flatcamEditors/FlatCAMGrbEditor.py:6046 flatcamTools/ToolTransform.py:769 +msgid "Flip on the Y axis done" +msgstr "Flip on the Y axis done" + +#: flatcamEditors/FlatCAMGeoEditor.py:1390 +#: flatcamEditors/FlatCAMGrbEditor.py:6055 flatcamTools/ToolTransform.py:778 +msgid "Flip on the X axis done" +msgstr "Flip on the X axis done" + +#: flatcamEditors/FlatCAMGeoEditor.py:1398 +msgid "Flip action was not executed" +msgstr "Flip action was not executed" + +#: flatcamEditors/FlatCAMGeoEditor.py:1416 +#: flatcamEditors/FlatCAMGrbEditor.py:6075 +msgid "No shape selected. Please Select a shape to shear/skew!" +msgstr "No shape selected. Please Select a shape to shear/skew!" + +#: flatcamEditors/FlatCAMGeoEditor.py:1419 +#: flatcamEditors/FlatCAMGrbEditor.py:6078 flatcamTools/ToolTransform.py:801 +msgid "Applying Skew" +msgstr "Applying Skew" + +#: flatcamEditors/FlatCAMGeoEditor.py:1442 +#: flatcamEditors/FlatCAMGrbEditor.py:6112 +msgid "Skew on the X axis done" +msgstr "Skew on the X axis done" + +#: flatcamEditors/FlatCAMGeoEditor.py:1444 +#: flatcamEditors/FlatCAMGrbEditor.py:6114 +msgid "Skew on the Y axis done" +msgstr "Skew on the Y axis done" + +#: flatcamEditors/FlatCAMGeoEditor.py:1447 +msgid "Skew action was not executed" +msgstr "Skew action was not executed" + +#: flatcamEditors/FlatCAMGeoEditor.py:1469 +#: flatcamEditors/FlatCAMGrbEditor.py:6136 +msgid "No shape selected. Please Select a shape to scale!" +msgstr "No shape selected. Please Select a shape to scale!" + +#: flatcamEditors/FlatCAMGeoEditor.py:1472 +#: flatcamEditors/FlatCAMGrbEditor.py:6139 flatcamTools/ToolTransform.py:847 +msgid "Applying Scale" +msgstr "Applying Scale" + +#: flatcamEditors/FlatCAMGeoEditor.py:1504 +#: flatcamEditors/FlatCAMGrbEditor.py:6176 +msgid "Scale on the X axis done" +msgstr "Scale on the X axis done" + +#: flatcamEditors/FlatCAMGeoEditor.py:1506 +#: flatcamEditors/FlatCAMGrbEditor.py:6178 +msgid "Scale on the Y axis done" +msgstr "Scale on the Y axis done" + +#: flatcamEditors/FlatCAMGeoEditor.py:1508 +msgid "Scale action was not executed" +msgstr "Scale action was not executed" + +#: flatcamEditors/FlatCAMGeoEditor.py:1523 +#: flatcamEditors/FlatCAMGrbEditor.py:6195 +msgid "No shape selected. Please Select a shape to offset!" +msgstr "No shape selected. Please Select a shape to offset!" + +#: flatcamEditors/FlatCAMGeoEditor.py:1526 +#: flatcamEditors/FlatCAMGrbEditor.py:6198 flatcamTools/ToolTransform.py:897 +msgid "Applying Offset" +msgstr "Applying Offset" + +#: flatcamEditors/FlatCAMGeoEditor.py:1536 +#: flatcamEditors/FlatCAMGrbEditor.py:6219 +msgid "Offset on the X axis done" +msgstr "Offset on the X axis done" + +#: flatcamEditors/FlatCAMGeoEditor.py:1538 +#: flatcamEditors/FlatCAMGrbEditor.py:6221 +msgid "Offset on the Y axis done" +msgstr "Offset on the Y axis done" + +#: flatcamEditors/FlatCAMGeoEditor.py:1541 +msgid "Offset action was not executed" +msgstr "Offset action was not executed" + +#: flatcamEditors/FlatCAMGeoEditor.py:1545 +#: flatcamEditors/FlatCAMGrbEditor.py:6228 +msgid "Rotate ..." +msgstr "Rotate ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:1546 +#: flatcamEditors/FlatCAMGeoEditor.py:1601 +#: flatcamEditors/FlatCAMGeoEditor.py:1618 +#: flatcamEditors/FlatCAMGrbEditor.py:6229 +#: flatcamEditors/FlatCAMGrbEditor.py:6278 +#: flatcamEditors/FlatCAMGrbEditor.py:6293 +msgid "Enter an Angle Value (degrees)" +msgstr "Enter an Angle Value (degrees)" + +#: flatcamEditors/FlatCAMGeoEditor.py:1555 +#: flatcamEditors/FlatCAMGrbEditor.py:6237 +msgid "Geometry shape rotate done" +msgstr "Geometry shape rotate done" + +#: flatcamEditors/FlatCAMGeoEditor.py:1559 +#: flatcamEditors/FlatCAMGrbEditor.py:6240 +msgid "Geometry shape rotate cancelled" +msgstr "Geometry shape rotate cancelled" + +#: flatcamEditors/FlatCAMGeoEditor.py:1564 +#: flatcamEditors/FlatCAMGrbEditor.py:6245 +msgid "Offset on X axis ..." +msgstr "Offset on X axis ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:1565 +#: flatcamEditors/FlatCAMGeoEditor.py:1584 +#: flatcamEditors/FlatCAMGrbEditor.py:6246 +#: flatcamEditors/FlatCAMGrbEditor.py:6263 +msgid "Enter a distance Value" +msgstr "Enter a distance Value" + +#: flatcamEditors/FlatCAMGeoEditor.py:1574 +#: flatcamEditors/FlatCAMGrbEditor.py:6254 +msgid "Geometry shape offset on X axis done" +msgstr "Geometry shape offset on X axis done" + +#: flatcamEditors/FlatCAMGeoEditor.py:1578 +#: flatcamEditors/FlatCAMGrbEditor.py:6257 +msgid "Geometry shape offset X cancelled" +msgstr "Geometry shape offset X cancelled" + +#: flatcamEditors/FlatCAMGeoEditor.py:1583 +#: flatcamEditors/FlatCAMGrbEditor.py:6262 +msgid "Offset on Y axis ..." +msgstr "Offset on Y axis ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:1593 +#: flatcamEditors/FlatCAMGrbEditor.py:6271 +msgid "Geometry shape offset on Y axis done" +msgstr "Geometry shape offset on Y axis done" + +#: flatcamEditors/FlatCAMGeoEditor.py:1597 +msgid "Geometry shape offset on Y axis canceled" +msgstr "Geometry shape offset on Y axis canceled" + +#: flatcamEditors/FlatCAMGeoEditor.py:1600 +#: flatcamEditors/FlatCAMGrbEditor.py:6277 +msgid "Skew on X axis ..." +msgstr "Skew on X axis ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:1610 +#: flatcamEditors/FlatCAMGrbEditor.py:6286 +msgid "Geometry shape skew on X axis done" +msgstr "Geometry shape skew on X axis done" + +#: flatcamEditors/FlatCAMGeoEditor.py:1614 +msgid "Geometry shape skew on X axis canceled" +msgstr "Geometry shape skew on X axis canceled" + +#: flatcamEditors/FlatCAMGeoEditor.py:1617 +#: flatcamEditors/FlatCAMGrbEditor.py:6292 +msgid "Skew on Y axis ..." +msgstr "Skew on Y axis ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:1627 +#: flatcamEditors/FlatCAMGrbEditor.py:6301 +msgid "Geometry shape skew on Y axis done" +msgstr "Geometry shape skew on Y axis done" + +#: flatcamEditors/FlatCAMGeoEditor.py:1631 +msgid "Geometry shape skew on Y axis canceled" +msgstr "Geometry shape skew on Y axis canceled" + +#: flatcamEditors/FlatCAMGeoEditor.py:2008 +#: flatcamEditors/FlatCAMGeoEditor.py:2079 +#: flatcamEditors/FlatCAMGrbEditor.py:1437 +#: flatcamEditors/FlatCAMGrbEditor.py:1515 +msgid "Click on Center point ..." +msgstr "Click on Center point ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:2021 +#: flatcamEditors/FlatCAMGrbEditor.py:1447 +msgid "Click on Perimeter point to complete ..." +msgstr "Click on Perimeter point to complete ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:2053 +msgid "Done. Adding Circle completed." +msgstr "Done. Adding Circle completed." + +#: flatcamEditors/FlatCAMGeoEditor.py:2107 +#: flatcamEditors/FlatCAMGrbEditor.py:1548 +msgid "Click on Start point ..." +msgstr "Click on Start point ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:2109 +#: flatcamEditors/FlatCAMGrbEditor.py:1550 +msgid "Click on Point3 ..." +msgstr "Click on Point3 ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:2111 +#: flatcamEditors/FlatCAMGrbEditor.py:1552 +msgid "Click on Stop point ..." +msgstr "Click on Stop point ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:2116 +#: flatcamEditors/FlatCAMGrbEditor.py:1557 +msgid "Click on Stop point to complete ..." +msgstr "Click on Stop point to complete ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:2118 +#: flatcamEditors/FlatCAMGrbEditor.py:1559 +msgid "Click on Point2 to complete ..." +msgstr "Click on Point2 to complete ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:2120 +#: flatcamEditors/FlatCAMGrbEditor.py:1561 +msgid "Click on Center point to complete ..." +msgstr "Click on Center point to complete ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:2132 +#, python-format +msgid "Direction: %s" +msgstr "Direction: %s" + +#: flatcamEditors/FlatCAMGeoEditor.py:2146 +#: flatcamEditors/FlatCAMGrbEditor.py:1587 +msgid "Mode: Start -> Stop -> Center. Click on Start point ..." +msgstr "Mode: Start -> Stop -> Center. Click on Start point ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:2149 +#: flatcamEditors/FlatCAMGrbEditor.py:1590 +msgid "Mode: Point1 -> Point3 -> Point2. Click on Point1 ..." +msgstr "Mode: Point1 -> Point3 -> Point2. Click on Point1 ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:2152 +#: flatcamEditors/FlatCAMGrbEditor.py:1593 +msgid "Mode: Center -> Start -> Stop. Click on Center point ..." +msgstr "Mode: Center -> Start -> Stop. Click on Center point ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:2293 +msgid "Done. Arc completed." +msgstr "Done. Arc completed." + +#: flatcamEditors/FlatCAMGeoEditor.py:2324 +#: flatcamEditors/FlatCAMGeoEditor.py:2397 +msgid "Click on 1st corner ..." +msgstr "Click on 1st corner ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:2336 +msgid "Click on opposite corner to complete ..." +msgstr "Click on opposite corner to complete ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:2366 +msgid "Done. Rectangle completed." +msgstr "Done. Rectangle completed." + +#: flatcamEditors/FlatCAMGeoEditor.py:2410 +#: flatcamObjects/FlatCAMGeometry.py:2648 flatcamTools/ToolNCC.py:1733 +#: flatcamTools/ToolPaint.py:1628 +msgid "Click on next Point or click right mouse button to complete ..." +msgstr "Click on next Point or click right mouse button to complete ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:2441 +msgid "Done. Polygon completed." +msgstr "Done. Polygon completed." + +#: flatcamEditors/FlatCAMGeoEditor.py:2455 +#: flatcamEditors/FlatCAMGeoEditor.py:2520 +#: flatcamEditors/FlatCAMGrbEditor.py:1113 +#: flatcamEditors/FlatCAMGrbEditor.py:1324 +msgid "Backtracked one point ..." +msgstr "Backtracked one point ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:2498 +msgid "Done. Path completed." +msgstr "Done. Path completed." + +#: flatcamEditors/FlatCAMGeoEditor.py:2657 +msgid "No shape selected. Select a shape to explode" +msgstr "No shape selected. Select a shape to explode" + +#: flatcamEditors/FlatCAMGeoEditor.py:2690 +msgid "Done. Polygons exploded into lines." +msgstr "Done. Polygons exploded into lines." + +#: flatcamEditors/FlatCAMGeoEditor.py:2722 +msgid "MOVE: No shape selected. Select a shape to move" +msgstr "MOVE: No shape selected. Select a shape to move" + +#: flatcamEditors/FlatCAMGeoEditor.py:2725 +#: flatcamEditors/FlatCAMGeoEditor.py:2745 +msgid " MOVE: Click on reference point ..." +msgstr " MOVE: Click on reference point ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:2730 +msgid " Click on destination point ..." +msgstr " Click on destination point ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:2770 +msgid "Done. Geometry(s) Move completed." +msgstr "Done. Geometry(s) Move completed." + +#: flatcamEditors/FlatCAMGeoEditor.py:2903 +msgid "Done. Geometry(s) Copy completed." +msgstr "Done. Geometry(s) Copy completed." + +#: flatcamEditors/FlatCAMGeoEditor.py:2934 +#: flatcamEditors/FlatCAMGrbEditor.py:899 +msgid "Click on 1st point ..." +msgstr "Click on 1st point ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:2958 +msgid "" +"Font not supported. Only Regular, Bold, Italic and BoldItalic are supported. " +"Error" +msgstr "" +"Font not supported. Only Regular, Bold, Italic and BoldItalic are supported. " +"Error" + +#: flatcamEditors/FlatCAMGeoEditor.py:2966 +msgid "No text to add." +msgstr "No text to add." + +#: flatcamEditors/FlatCAMGeoEditor.py:2976 +msgid " Done. Adding Text completed." +msgstr " Done. Adding Text completed." + +#: flatcamEditors/FlatCAMGeoEditor.py:3013 +msgid "Create buffer geometry ..." +msgstr "Create buffer geometry ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:3048 +#: flatcamEditors/FlatCAMGrbEditor.py:5160 +msgid "Done. Buffer Tool completed." +msgstr "Done. Buffer Tool completed." + +#: flatcamEditors/FlatCAMGeoEditor.py:3076 +msgid "Done. Buffer Int Tool completed." +msgstr "Done. Buffer Int Tool completed." + +#: flatcamEditors/FlatCAMGeoEditor.py:3104 +msgid "Done. Buffer Ext Tool completed." +msgstr "Done. Buffer Ext Tool completed." + +#: flatcamEditors/FlatCAMGeoEditor.py:3153 +#: flatcamEditors/FlatCAMGrbEditor.py:2153 +msgid "Select a shape to act as deletion area ..." +msgstr "Select a shape to act as deletion area ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:3155 +#: flatcamEditors/FlatCAMGeoEditor.py:3181 +#: flatcamEditors/FlatCAMGeoEditor.py:3187 +#: flatcamEditors/FlatCAMGrbEditor.py:2155 +msgid "Click to pick-up the erase shape..." +msgstr "Click to pick-up the erase shape..." + +#: flatcamEditors/FlatCAMGeoEditor.py:3191 +#: flatcamEditors/FlatCAMGrbEditor.py:2214 +msgid "Click to erase ..." +msgstr "Click to erase ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:3220 +#: flatcamEditors/FlatCAMGrbEditor.py:2247 +msgid "Done. Eraser tool action completed." +msgstr "Done. Eraser tool action completed." + +#: flatcamEditors/FlatCAMGeoEditor.py:3270 +msgid "Create Paint geometry ..." +msgstr "Create Paint geometry ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:3283 +#: flatcamEditors/FlatCAMGrbEditor.py:2410 +msgid "Shape transformations ..." +msgstr "Shape transformations ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:3339 +#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:27 +msgid "Geometry Editor" +msgstr "Geometry Editor" + +#: flatcamEditors/FlatCAMGeoEditor.py:3345 +#: flatcamEditors/FlatCAMGrbEditor.py:2488 +#: flatcamEditors/FlatCAMGrbEditor.py:3969 flatcamGUI/ObjectUI.py:263 +#: flatcamGUI/ObjectUI.py:1497 flatcamGUI/ObjectUI.py:2326 +#: flatcamTools/ToolCutOut.py:95 +msgid "Type" +msgstr "Type" + +#: flatcamEditors/FlatCAMGeoEditor.py:3345 flatcamGUI/ObjectUI.py:218 +#: flatcamGUI/ObjectUI.py:742 flatcamGUI/ObjectUI.py:1433 +#: flatcamGUI/ObjectUI.py:2235 flatcamGUI/ObjectUI.py:2539 +#: flatcamGUI/ObjectUI.py:2606 flatcamTools/ToolCalibration.py:234 +#: flatcamTools/ToolFiducials.py:73 +msgid "Name" +msgstr "Name" + +#: flatcamEditors/FlatCAMGeoEditor.py:3587 +msgid "Ring" +msgstr "Ring" + +#: flatcamEditors/FlatCAMGeoEditor.py:3589 +msgid "Line" +msgstr "Line" + +#: flatcamEditors/FlatCAMGeoEditor.py:3591 flatcamGUI/FlatCAMGUI.py:2202 +#: flatcamGUI/ObjectUI.py:2074 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:218 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:328 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:292 +#: flatcamTools/ToolNCC.py:584 flatcamTools/ToolPaint.py:528 +msgid "Polygon" +msgstr "Polygon" + +#: flatcamEditors/FlatCAMGeoEditor.py:3593 +msgid "Multi-Line" +msgstr "Multi-Line" + +#: flatcamEditors/FlatCAMGeoEditor.py:3595 +msgid "Multi-Polygon" +msgstr "Multi-Polygon" + +#: flatcamEditors/FlatCAMGeoEditor.py:3602 +msgid "Geo Elem" +msgstr "Geo Elem" + +#: flatcamEditors/FlatCAMGeoEditor.py:4076 +msgid "Editing MultiGeo Geometry, tool" +msgstr "Editing MultiGeo Geometry, tool" + +#: flatcamEditors/FlatCAMGeoEditor.py:4078 +msgid "with diameter" +msgstr "with diameter" + +#: flatcamEditors/FlatCAMGeoEditor.py:4509 flatcamGUI/FlatCAMGUI.py:3753 +#: flatcamGUI/FlatCAMGUI.py:3799 flatcamGUI/FlatCAMGUI.py:3817 +#: flatcamGUI/FlatCAMGUI.py:3961 flatcamGUI/FlatCAMGUI.py:4000 +#: flatcamGUI/FlatCAMGUI.py:4012 flatcamGUI/FlatCAMGUI.py:4029 +msgid "Click on target point." +msgstr "Click on target point." + +#: flatcamEditors/FlatCAMGeoEditor.py:4823 +#: flatcamEditors/FlatCAMGeoEditor.py:4858 +msgid "A selection of at least 2 geo items is required to do Intersection." +msgstr "A selection of at least 2 geo items is required to do Intersection." + +#: flatcamEditors/FlatCAMGeoEditor.py:4944 +#: flatcamEditors/FlatCAMGeoEditor.py:5048 +msgid "" +"Negative buffer value is not accepted. Use Buffer interior to generate an " +"'inside' shape" +msgstr "" +"Negative buffer value is not accepted. Use Buffer interior to generate an " +"'inside' shape" + +#: flatcamEditors/FlatCAMGeoEditor.py:4954 +#: flatcamEditors/FlatCAMGeoEditor.py:5007 +#: flatcamEditors/FlatCAMGeoEditor.py:5057 +msgid "Nothing selected for buffering." +msgstr "Nothing selected for buffering." + +#: flatcamEditors/FlatCAMGeoEditor.py:4959 +#: flatcamEditors/FlatCAMGeoEditor.py:5011 +#: flatcamEditors/FlatCAMGeoEditor.py:5062 +msgid "Invalid distance for buffering." +msgstr "Invalid distance for buffering." + +#: flatcamEditors/FlatCAMGeoEditor.py:4983 +#: flatcamEditors/FlatCAMGeoEditor.py:5082 +msgid "Failed, the result is empty. Choose a different buffer value." +msgstr "Failed, the result is empty. Choose a different buffer value." + +#: flatcamEditors/FlatCAMGeoEditor.py:4994 +msgid "Full buffer geometry created." +msgstr "Full buffer geometry created." + +#: flatcamEditors/FlatCAMGeoEditor.py:5000 +msgid "Negative buffer value is not accepted." +msgstr "Negative buffer value is not accepted." + +#: flatcamEditors/FlatCAMGeoEditor.py:5031 +msgid "Failed, the result is empty. Choose a smaller buffer value." +msgstr "Failed, the result is empty. Choose a smaller buffer value." + +#: flatcamEditors/FlatCAMGeoEditor.py:5041 +msgid "Interior buffer geometry created." +msgstr "Interior buffer geometry created." + +#: flatcamEditors/FlatCAMGeoEditor.py:5092 +msgid "Exterior buffer geometry created." +msgstr "Exterior buffer geometry created." + +#: flatcamEditors/FlatCAMGeoEditor.py:5098 +#, python-format +msgid "Could not do Paint. Overlap value has to be less than 100%%." +msgstr "Could not do Paint. Overlap value has to be less than 100%%." + +#: flatcamEditors/FlatCAMGeoEditor.py:5105 +msgid "Nothing selected for painting." +msgstr "Nothing selected for painting." + +#: flatcamEditors/FlatCAMGeoEditor.py:5111 +msgid "Invalid value for" +msgstr "Invalid value for" + +#: flatcamEditors/FlatCAMGeoEditor.py:5170 +msgid "" +"Could not do Paint. Try a different combination of parameters. Or a " +"different method of Paint" +msgstr "" +"Could not do Paint. Try a different combination of parameters. Or a " +"different method of Paint" + +#: flatcamEditors/FlatCAMGeoEditor.py:5181 +msgid "Paint done." +msgstr "Paint done." + +#: flatcamEditors/FlatCAMGrbEditor.py:213 +msgid "To add an Pad first select a aperture in Aperture Table" +msgstr "To add an Pad first select a aperture in Aperture Table" + +#: flatcamEditors/FlatCAMGrbEditor.py:220 +#: flatcamEditors/FlatCAMGrbEditor.py:420 +msgid "Aperture size is zero. It needs to be greater than zero." +msgstr "Aperture size is zero. It needs to be greater than zero." + +#: flatcamEditors/FlatCAMGrbEditor.py:373 +#: flatcamEditors/FlatCAMGrbEditor.py:686 +msgid "" +"Incompatible aperture type. Select an aperture with type 'C', 'R' or 'O'." +msgstr "" +"Incompatible aperture type. Select an aperture with type 'C', 'R' or 'O'." + +#: flatcamEditors/FlatCAMGrbEditor.py:385 +msgid "Done. Adding Pad completed." +msgstr "Done. Adding Pad completed." + +#: flatcamEditors/FlatCAMGrbEditor.py:412 +msgid "To add an Pad Array first select a aperture in Aperture Table" +msgstr "To add an Pad Array first select a aperture in Aperture Table" + +#: flatcamEditors/FlatCAMGrbEditor.py:492 +msgid "Click on the Pad Circular Array Start position" +msgstr "Click on the Pad Circular Array Start position" + +#: flatcamEditors/FlatCAMGrbEditor.py:712 +msgid "Too many Pads for the selected spacing angle." +msgstr "Too many Pads for the selected spacing angle." + +#: flatcamEditors/FlatCAMGrbEditor.py:735 +msgid "Done. Pad Array added." +msgstr "Done. Pad Array added." + +#: flatcamEditors/FlatCAMGrbEditor.py:760 +msgid "Select shape(s) and then click ..." +msgstr "Select shape(s) and then click ..." + +#: flatcamEditors/FlatCAMGrbEditor.py:772 +msgid "Failed. Nothing selected." +msgstr "Failed. Nothing selected." + +#: flatcamEditors/FlatCAMGrbEditor.py:788 +msgid "" +"Failed. Poligonize works only on geometries belonging to the same aperture." +msgstr "" +"Failed. Poligonize works only on geometries belonging to the same aperture." + +#: flatcamEditors/FlatCAMGrbEditor.py:842 +msgid "Done. Poligonize completed." +msgstr "Done. Poligonize completed." + +#: flatcamEditors/FlatCAMGrbEditor.py:897 +#: flatcamEditors/FlatCAMGrbEditor.py:1130 +#: flatcamEditors/FlatCAMGrbEditor.py:1154 +msgid "Corner Mode 1: 45 degrees ..." +msgstr "Corner Mode 1: 45 degrees ..." + +#: flatcamEditors/FlatCAMGrbEditor.py:909 +#: flatcamEditors/FlatCAMGrbEditor.py:1239 +msgid "Click on next Point or click Right mouse button to complete ..." +msgstr "Click on next Point or click Right mouse button to complete ..." + +#: flatcamEditors/FlatCAMGrbEditor.py:1118 +#: flatcamEditors/FlatCAMGrbEditor.py:1151 +msgid "Corner Mode 2: Reverse 45 degrees ..." +msgstr "Corner Mode 2: Reverse 45 degrees ..." + +#: flatcamEditors/FlatCAMGrbEditor.py:1121 +#: flatcamEditors/FlatCAMGrbEditor.py:1148 +msgid "Corner Mode 3: 90 degrees ..." +msgstr "Corner Mode 3: 90 degrees ..." + +#: flatcamEditors/FlatCAMGrbEditor.py:1124 +#: flatcamEditors/FlatCAMGrbEditor.py:1145 +msgid "Corner Mode 4: Reverse 90 degrees ..." +msgstr "Corner Mode 4: Reverse 90 degrees ..." + +#: flatcamEditors/FlatCAMGrbEditor.py:1127 +#: flatcamEditors/FlatCAMGrbEditor.py:1142 +msgid "Corner Mode 5: Free angle ..." +msgstr "Corner Mode 5: Free angle ..." + +#: flatcamEditors/FlatCAMGrbEditor.py:1184 +#: flatcamEditors/FlatCAMGrbEditor.py:1360 +#: flatcamEditors/FlatCAMGrbEditor.py:1399 +msgid "Track Mode 1: 45 degrees ..." +msgstr "Track Mode 1: 45 degrees ..." + +#: flatcamEditors/FlatCAMGrbEditor.py:1340 +#: flatcamEditors/FlatCAMGrbEditor.py:1394 +msgid "Track Mode 2: Reverse 45 degrees ..." +msgstr "Track Mode 2: Reverse 45 degrees ..." + +#: flatcamEditors/FlatCAMGrbEditor.py:1345 +#: flatcamEditors/FlatCAMGrbEditor.py:1389 +msgid "Track Mode 3: 90 degrees ..." +msgstr "Track Mode 3: 90 degrees ..." + +#: flatcamEditors/FlatCAMGrbEditor.py:1350 +#: flatcamEditors/FlatCAMGrbEditor.py:1384 +msgid "Track Mode 4: Reverse 90 degrees ..." +msgstr "Track Mode 4: Reverse 90 degrees ..." + +#: flatcamEditors/FlatCAMGrbEditor.py:1355 +#: flatcamEditors/FlatCAMGrbEditor.py:1379 +msgid "Track Mode 5: Free angle ..." +msgstr "Track Mode 5: Free angle ..." + +#: flatcamEditors/FlatCAMGrbEditor.py:1780 +msgid "Scale the selected Gerber apertures ..." +msgstr "Scale the selected Gerber apertures ..." + +#: flatcamEditors/FlatCAMGrbEditor.py:1822 +msgid "Buffer the selected apertures ..." +msgstr "Buffer the selected apertures ..." + +#: flatcamEditors/FlatCAMGrbEditor.py:1864 +msgid "Mark polygon areas in the edited Gerber ..." +msgstr "Mark polygon areas in the edited Gerber ..." + +#: flatcamEditors/FlatCAMGrbEditor.py:1930 +msgid "Nothing selected to move" +msgstr "Nothing selected to move" + +#: flatcamEditors/FlatCAMGrbEditor.py:2055 +msgid "Done. Apertures Move completed." +msgstr "Done. Apertures Move completed." + +#: flatcamEditors/FlatCAMGrbEditor.py:2137 +msgid "Done. Apertures copied." +msgstr "Done. Apertures copied." + +#: flatcamEditors/FlatCAMGrbEditor.py:2455 flatcamGUI/FlatCAMGUI.py:2233 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:27 +msgid "Gerber Editor" +msgstr "Gerber Editor" + +#: flatcamEditors/FlatCAMGrbEditor.py:2475 flatcamGUI/ObjectUI.py:228 +#: flatcamTools/ToolProperties.py:159 +msgid "Apertures" +msgstr "Apertures" + +#: flatcamEditors/FlatCAMGrbEditor.py:2477 flatcamGUI/ObjectUI.py:230 +msgid "Apertures Table for the Gerber Object." +msgstr "Apertures Table for the Gerber Object." + +#: flatcamEditors/FlatCAMGrbEditor.py:2488 +#: flatcamEditors/FlatCAMGrbEditor.py:3969 flatcamGUI/ObjectUI.py:263 +msgid "Code" +msgstr "Code" + +#: flatcamEditors/FlatCAMGrbEditor.py:2488 +#: flatcamEditors/FlatCAMGrbEditor.py:3969 flatcamGUI/ObjectUI.py:263 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:103 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:167 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:196 +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:43 +#: flatcamTools/ToolCopperThieving.py:261 +#: flatcamTools/ToolCopperThieving.py:301 flatcamTools/ToolFiducials.py:156 +msgid "Size" +msgstr "Size" + +#: flatcamEditors/FlatCAMGrbEditor.py:2488 +#: flatcamEditors/FlatCAMGrbEditor.py:3969 flatcamGUI/ObjectUI.py:263 +msgid "Dim" +msgstr "Dim" + +#: flatcamEditors/FlatCAMGrbEditor.py:2493 flatcamGUI/ObjectUI.py:267 +msgid "Index" +msgstr "Index" + +#: flatcamEditors/FlatCAMGrbEditor.py:2495 +#: flatcamEditors/FlatCAMGrbEditor.py:2524 flatcamGUI/ObjectUI.py:269 +msgid "Aperture Code" +msgstr "Aperture Code" + +#: flatcamEditors/FlatCAMGrbEditor.py:2497 flatcamGUI/ObjectUI.py:271 +msgid "Type of aperture: circular, rectangle, macros etc" +msgstr "Type of aperture: circular, rectangle, macros etc" + +#: flatcamEditors/FlatCAMGrbEditor.py:2499 flatcamGUI/ObjectUI.py:273 +msgid "Aperture Size:" +msgstr "Aperture Size:" + +#: flatcamEditors/FlatCAMGrbEditor.py:2501 flatcamGUI/ObjectUI.py:275 +msgid "" +"Aperture Dimensions:\n" +" - (width, height) for R, O type.\n" +" - (dia, nVertices) for P type" +msgstr "" +"Aperture Dimensions:\n" +" - (width, height) for R, O type.\n" +" - (dia, nVertices) for P type" + +#: flatcamEditors/FlatCAMGrbEditor.py:2525 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:58 +msgid "Code for the new aperture" +msgstr "Code for the new aperture" + +#: flatcamEditors/FlatCAMGrbEditor.py:2534 +msgid "Aperture Size" +msgstr "Aperture Size" + +#: flatcamEditors/FlatCAMGrbEditor.py:2536 +msgid "" +"Size for the new aperture.\n" +"If aperture type is 'R' or 'O' then\n" +"this value is automatically\n" +"calculated as:\n" +"sqrt(width**2 + height**2)" +msgstr "" +"Size for the new aperture.\n" +"If aperture type is 'R' or 'O' then\n" +"this value is automatically\n" +"calculated as:\n" +"sqrt(width**2 + height**2)" + +#: flatcamEditors/FlatCAMGrbEditor.py:2550 +msgid "Aperture Type" +msgstr "Aperture Type" + +#: flatcamEditors/FlatCAMGrbEditor.py:2552 +msgid "" +"Select the type of new aperture. Can be:\n" +"C = circular\n" +"R = rectangular\n" +"O = oblong" +msgstr "" +"Select the type of new aperture. Can be:\n" +"C = circular\n" +"R = rectangular\n" +"O = oblong" + +#: flatcamEditors/FlatCAMGrbEditor.py:2563 +msgid "Aperture Dim" +msgstr "Aperture Dim" + +#: flatcamEditors/FlatCAMGrbEditor.py:2565 +msgid "" +"Dimensions for the new aperture.\n" +"Active only for rectangular apertures (type R).\n" +"The format is (width, height)" +msgstr "" +"Dimensions for the new aperture.\n" +"Active only for rectangular apertures (type R).\n" +"The format is (width, height)" + +#: flatcamEditors/FlatCAMGrbEditor.py:2574 +msgid "Add/Delete Aperture" +msgstr "Add/Delete Aperture" + +#: flatcamEditors/FlatCAMGrbEditor.py:2576 +msgid "Add/Delete an aperture in the aperture table" +msgstr "Add/Delete an aperture in the aperture table" + +#: flatcamEditors/FlatCAMGrbEditor.py:2585 +msgid "Add a new aperture to the aperture list." +msgstr "Add a new aperture to the aperture list." + +#: flatcamEditors/FlatCAMGrbEditor.py:2590 +msgid "Delete a aperture in the aperture list" +msgstr "Delete a aperture in the aperture list" + +#: flatcamEditors/FlatCAMGrbEditor.py:2607 +msgid "Buffer Aperture" +msgstr "Buffer Aperture" + +#: flatcamEditors/FlatCAMGrbEditor.py:2609 +msgid "Buffer a aperture in the aperture list" +msgstr "Buffer a aperture in the aperture list" + +#: flatcamEditors/FlatCAMGrbEditor.py:2622 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:194 +msgid "Buffer distance" +msgstr "Buffer distance" + +#: flatcamEditors/FlatCAMGrbEditor.py:2623 +msgid "Buffer corner" +msgstr "Buffer corner" + +#: flatcamEditors/FlatCAMGrbEditor.py:2625 +msgid "" +"There are 3 types of corners:\n" +" - 'Round': the corner is rounded.\n" +" - 'Square': the corner is met in a sharp angle.\n" +" - 'Beveled': the corner is a line that directly connects the features " +"meeting in the corner" +msgstr "" +"There are 3 types of corners:\n" +" - 'Round': the corner is rounded.\n" +" - 'Square': the corner is met in a sharp angle.\n" +" - 'Beveled': the corner is a line that directly connects the features " +"meeting in the corner" + +#: flatcamEditors/FlatCAMGrbEditor.py:2640 flatcamGUI/FlatCAMGUI.py:1061 +#: flatcamGUI/FlatCAMGUI.py:2138 flatcamGUI/FlatCAMGUI.py:2210 +#: flatcamGUI/FlatCAMGUI.py:2253 flatcamGUI/FlatCAMGUI.py:2765 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:200 +#: flatcamTools/ToolTransform.py:29 +msgid "Buffer" +msgstr "Buffer" + +#: flatcamEditors/FlatCAMGrbEditor.py:2655 +msgid "Scale Aperture" +msgstr "Scale Aperture" + +#: flatcamEditors/FlatCAMGrbEditor.py:2657 +msgid "Scale a aperture in the aperture list" +msgstr "Scale a aperture in the aperture list" + +#: flatcamEditors/FlatCAMGrbEditor.py:2665 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:209 +msgid "Scale factor" +msgstr "Scale factor" + +#: flatcamEditors/FlatCAMGrbEditor.py:2667 +msgid "" +"The factor by which to scale the selected aperture.\n" +"Values can be between 0.0000 and 999.9999" +msgstr "" +"The factor by which to scale the selected aperture.\n" +"Values can be between 0.0000 and 999.9999" + +#: flatcamEditors/FlatCAMGrbEditor.py:2695 +msgid "Mark polygons" +msgstr "Mark polygons" + +#: flatcamEditors/FlatCAMGrbEditor.py:2697 +msgid "Mark the polygon areas." +msgstr "Mark the polygon areas." + +#: flatcamEditors/FlatCAMGrbEditor.py:2705 +msgid "Area UPPER threshold" +msgstr "Area UPPER threshold" + +#: flatcamEditors/FlatCAMGrbEditor.py:2707 +msgid "" +"The threshold value, all areas less than this are marked.\n" +"Can have a value between 0.0000 and 9999.9999" +msgstr "" +"The threshold value, all areas less than this are marked.\n" +"Can have a value between 0.0000 and 9999.9999" + +#: flatcamEditors/FlatCAMGrbEditor.py:2714 +msgid "Area LOWER threshold" +msgstr "Area LOWER threshold" + +#: flatcamEditors/FlatCAMGrbEditor.py:2716 +msgid "" +"The threshold value, all areas more than this are marked.\n" +"Can have a value between 0.0000 and 9999.9999" +msgstr "" +"The threshold value, all areas more than this are marked.\n" +"Can have a value between 0.0000 and 9999.9999" + +#: flatcamEditors/FlatCAMGrbEditor.py:2730 +msgid "Mark" +msgstr "Mark" + +#: flatcamEditors/FlatCAMGrbEditor.py:2732 +msgid "Mark the polygons that fit within limits." +msgstr "Mark the polygons that fit within limits." + +#: flatcamEditors/FlatCAMGrbEditor.py:2738 +msgid "Delete all the marked polygons." +msgstr "Delete all the marked polygons." + +#: flatcamEditors/FlatCAMGrbEditor.py:2744 +msgid "Clear all the markings." +msgstr "Clear all the markings." + +#: flatcamEditors/FlatCAMGrbEditor.py:2764 flatcamGUI/FlatCAMGUI.py:1046 +#: flatcamGUI/FlatCAMGUI.py:2138 flatcamGUI/FlatCAMGUI.py:2750 +msgid "Add Pad Array" +msgstr "Add Pad Array" + +#: flatcamEditors/FlatCAMGrbEditor.py:2766 +msgid "Add an array of pads (linear or circular array)" +msgstr "Add an array of pads (linear or circular array)" + +#: flatcamEditors/FlatCAMGrbEditor.py:2772 +msgid "" +"Select the type of pads array to create.\n" +"It can be Linear X(Y) or Circular" +msgstr "" +"Select the type of pads array to create.\n" +"It can be Linear X(Y) or Circular" + +#: flatcamEditors/FlatCAMGrbEditor.py:2783 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:95 +msgid "Nr of pads" +msgstr "Nr of pads" + +#: flatcamEditors/FlatCAMGrbEditor.py:2785 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:97 +msgid "Specify how many pads to be in the array." +msgstr "Specify how many pads to be in the array." + +#: flatcamEditors/FlatCAMGrbEditor.py:2834 +msgid "" +"Angle at which the linear array is placed.\n" +"The precision is of max 2 decimals.\n" +"Min value is: -359.99 degrees.\n" +"Max value is: 360.00 degrees." +msgstr "" +"Angle at which the linear array is placed.\n" +"The precision is of max 2 decimals.\n" +"Min value is: -359.99 degrees.\n" +"Max value is: 360.00 degrees." + +#: flatcamEditors/FlatCAMGrbEditor.py:3328 +#: flatcamEditors/FlatCAMGrbEditor.py:3332 +msgid "Aperture code value is missing or wrong format. Add it and retry." +msgstr "Aperture code value is missing or wrong format. Add it and retry." + +#: flatcamEditors/FlatCAMGrbEditor.py:3368 +msgid "" +"Aperture dimensions value is missing or wrong format. Add it in format " +"(width, height) and retry." +msgstr "" +"Aperture dimensions value is missing or wrong format. Add it in format " +"(width, height) and retry." + +#: flatcamEditors/FlatCAMGrbEditor.py:3381 +msgid "Aperture size value is missing or wrong format. Add it and retry." +msgstr "Aperture size value is missing or wrong format. Add it and retry." + +#: flatcamEditors/FlatCAMGrbEditor.py:3392 +msgid "Aperture already in the aperture table." +msgstr "Aperture already in the aperture table." + +#: flatcamEditors/FlatCAMGrbEditor.py:3399 +msgid "Added new aperture with code" +msgstr "Added new aperture with code" + +#: flatcamEditors/FlatCAMGrbEditor.py:3431 +msgid " Select an aperture in Aperture Table" +msgstr " Select an aperture in Aperture Table" + +#: flatcamEditors/FlatCAMGrbEditor.py:3439 +msgid "Select an aperture in Aperture Table -->" +msgstr "Select an aperture in Aperture Table -->" + +#: flatcamEditors/FlatCAMGrbEditor.py:3453 +msgid "Deleted aperture with code" +msgstr "Deleted aperture with code" + +#: flatcamEditors/FlatCAMGrbEditor.py:3521 +msgid "Dimensions need two float values separated by comma." +msgstr "Dimensions need two float values separated by comma." + +#: flatcamEditors/FlatCAMGrbEditor.py:3530 +msgid "Dimensions edited." +msgstr "Dimensions edited." + +#: flatcamEditors/FlatCAMGrbEditor.py:4084 +msgid "Loading Gerber into Editor" +msgstr "Loading Gerber into Editor" + +#: flatcamEditors/FlatCAMGrbEditor.py:4212 +msgid "Setting up the UI" +msgstr "Setting up the UI" + +#: flatcamEditors/FlatCAMGrbEditor.py:4213 +msgid "Adding geometry finished. Preparing the GUI" +msgstr "Adding geometry finished. Preparing the GUI" + +#: flatcamEditors/FlatCAMGrbEditor.py:4222 +msgid "Finished loading the Gerber object into the editor." +msgstr "Finished loading the Gerber object into the editor." + +#: flatcamEditors/FlatCAMGrbEditor.py:4361 +msgid "" +"There are no Aperture definitions in the file. Aborting Gerber creation." +msgstr "" +"There are no Aperture definitions in the file. Aborting Gerber creation." + +#: flatcamEditors/FlatCAMGrbEditor.py:4371 +msgid "Creating Gerber." +msgstr "Creating Gerber." + +#: flatcamEditors/FlatCAMGrbEditor.py:4380 +msgid "Done. Gerber editing finished." +msgstr "Done. Gerber editing finished." + +#: flatcamEditors/FlatCAMGrbEditor.py:4398 +msgid "Cancelled. No aperture is selected" +msgstr "Cancelled. No aperture is selected" + +#: flatcamEditors/FlatCAMGrbEditor.py:4992 +msgid "Failed. No aperture geometry is selected." +msgstr "Failed. No aperture geometry is selected." + +#: flatcamEditors/FlatCAMGrbEditor.py:5001 +#: flatcamEditors/FlatCAMGrbEditor.py:5272 +msgid "Done. Apertures geometry deleted." +msgstr "Done. Apertures geometry deleted." + +#: flatcamEditors/FlatCAMGrbEditor.py:5144 +msgid "No aperture to buffer. Select at least one aperture and try again." +msgstr "No aperture to buffer. Select at least one aperture and try again." + +#: flatcamEditors/FlatCAMGrbEditor.py:5156 +msgid "Failed." +msgstr "Failed." + +#: flatcamEditors/FlatCAMGrbEditor.py:5175 +msgid "Scale factor value is missing or wrong format. Add it and retry." +msgstr "Scale factor value is missing or wrong format. Add it and retry." + +#: flatcamEditors/FlatCAMGrbEditor.py:5207 +msgid "No aperture to scale. Select at least one aperture and try again." +msgstr "No aperture to scale. Select at least one aperture and try again." + +#: flatcamEditors/FlatCAMGrbEditor.py:5223 +msgid "Done. Scale Tool completed." +msgstr "Done. Scale Tool completed." + +#: flatcamEditors/FlatCAMGrbEditor.py:5261 +msgid "Polygons marked." +msgstr "Polygons marked." + +#: flatcamEditors/FlatCAMGrbEditor.py:5264 +msgid "No polygons were marked. None fit within the limits." +msgstr "No polygons were marked. None fit within the limits." + +#: flatcamEditors/FlatCAMGrbEditor.py:5988 +msgid "Rotation action was not executed." +msgstr "Rotation action was not executed." + +#: flatcamEditors/FlatCAMGrbEditor.py:6116 +msgid "Skew action was not executed." +msgstr "Skew action was not executed." + +#: flatcamEditors/FlatCAMGrbEditor.py:6181 +msgid "Scale action was not executed." +msgstr "Scale action was not executed." + +#: flatcamEditors/FlatCAMGrbEditor.py:6224 +msgid "Offset action was not executed." +msgstr "Offset action was not executed." + +#: flatcamEditors/FlatCAMGrbEditor.py:6274 +msgid "Geometry shape offset Y cancelled" +msgstr "Geometry shape offset Y cancelled" + +#: flatcamEditors/FlatCAMGrbEditor.py:6289 +msgid "Geometry shape skew X cancelled" +msgstr "Geometry shape skew X cancelled" + +#: flatcamEditors/FlatCAMGrbEditor.py:6304 +msgid "Geometry shape skew Y cancelled" +msgstr "Geometry shape skew Y cancelled" + +#: flatcamEditors/FlatCAMTextEditor.py:74 +msgid "Print Preview" +msgstr "Print Preview" + +#: flatcamEditors/FlatCAMTextEditor.py:75 +msgid "Open a OS standard Preview Print window." +msgstr "Open a OS standard Preview Print window." + +#: flatcamEditors/FlatCAMTextEditor.py:78 +msgid "Print Code" +msgstr "Print Code" + +#: flatcamEditors/FlatCAMTextEditor.py:79 +msgid "Open a OS standard Print window." +msgstr "Open a OS standard Print window." + +#: flatcamEditors/FlatCAMTextEditor.py:81 +msgid "Find in Code" +msgstr "Find in Code" + +#: flatcamEditors/FlatCAMTextEditor.py:82 +msgid "Will search and highlight in yellow the string in the Find box." +msgstr "Will search and highlight in yellow the string in the Find box." + +#: flatcamEditors/FlatCAMTextEditor.py:86 +msgid "Find box. Enter here the strings to be searched in the text." +msgstr "Find box. Enter here the strings to be searched in the text." + +#: flatcamEditors/FlatCAMTextEditor.py:88 +msgid "Replace With" +msgstr "Replace With" + +#: flatcamEditors/FlatCAMTextEditor.py:89 +msgid "" +"Will replace the string from the Find box with the one in the Replace box." +msgstr "" +"Will replace the string from the Find box with the one in the Replace box." + +#: flatcamEditors/FlatCAMTextEditor.py:93 +msgid "String to replace the one in the Find box throughout the text." +msgstr "String to replace the one in the Find box throughout the text." + +#: flatcamEditors/FlatCAMTextEditor.py:95 flatcamGUI/ObjectUI.py:486 +#: flatcamGUI/ObjectUI.py:2219 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:54 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:88 +msgid "All" +msgstr "All" + +#: flatcamEditors/FlatCAMTextEditor.py:96 +msgid "" +"When checked it will replace all instances in the 'Find' box\n" +"with the text in the 'Replace' box.." +msgstr "" +"When checked it will replace all instances in the 'Find' box\n" +"with the text in the 'Replace' box.." + +#: flatcamEditors/FlatCAMTextEditor.py:99 +msgid "Copy All" +msgstr "Copy All" + +#: flatcamEditors/FlatCAMTextEditor.py:100 +msgid "Will copy all the text in the Code Editor to the clipboard." +msgstr "Will copy all the text in the Code Editor to the clipboard." + +#: flatcamEditors/FlatCAMTextEditor.py:103 +msgid "Open Code" +msgstr "Open Code" + +#: flatcamEditors/FlatCAMTextEditor.py:104 +msgid "Will open a text file in the editor." +msgstr "Will open a text file in the editor." + +#: flatcamEditors/FlatCAMTextEditor.py:106 +msgid "Save Code" +msgstr "Save Code" + +#: flatcamEditors/FlatCAMTextEditor.py:107 +msgid "Will save the text in the editor into a file." +msgstr "Will save the text in the editor into a file." + +#: flatcamEditors/FlatCAMTextEditor.py:109 +msgid "Run Code" +msgstr "Run Code" + +#: flatcamEditors/FlatCAMTextEditor.py:110 +msgid "Will run the TCL commands found in the text file, one by one." +msgstr "Will run the TCL commands found in the text file, one by one." + +#: flatcamEditors/FlatCAMTextEditor.py:184 +msgid "Open file" +msgstr "Open file" + +#: flatcamEditors/FlatCAMTextEditor.py:215 +#: flatcamEditors/FlatCAMTextEditor.py:220 +msgid "Export Code ..." +msgstr "Export Code ..." + +#: flatcamEditors/FlatCAMTextEditor.py:272 flatcamObjects/FlatCAMCNCJob.py:955 +#: flatcamTools/ToolSolderPaste.py:1530 +msgid "No such file or directory" +msgstr "No such file or directory" + +#: flatcamEditors/FlatCAMTextEditor.py:284 flatcamObjects/FlatCAMCNCJob.py:969 +msgid "Saved to" +msgstr "Saved to" + +#: flatcamEditors/FlatCAMTextEditor.py:334 +msgid "Code Editor content copied to clipboard ..." +msgstr "Code Editor content copied to clipboard ..." + +#: flatcamGUI/FlatCAMGUI.py:78 flatcamGUI/FlatCAMGUI.py:80 +#: flatcamGUI/FlatCAMGUI.py:2163 +msgid "Toggle Panel" +msgstr "Toggle Panel" + +#: flatcamGUI/FlatCAMGUI.py:90 +msgid "File" +msgstr "File" + +#: flatcamGUI/FlatCAMGUI.py:95 +msgid "&New Project ...\tCtrl+N" +msgstr "&New Project ...\tCtrl+N" + +#: flatcamGUI/FlatCAMGUI.py:97 +msgid "Will create a new, blank project" +msgstr "Will create a new, blank project" + +#: flatcamGUI/FlatCAMGUI.py:102 +msgid "&New" +msgstr "&New" + +#: flatcamGUI/FlatCAMGUI.py:106 +msgid "Geometry\tN" +msgstr "Geometry\tN" + +#: flatcamGUI/FlatCAMGUI.py:108 +msgid "Will create a new, empty Geometry Object." +msgstr "Will create a new, empty Geometry Object." + +#: flatcamGUI/FlatCAMGUI.py:111 +msgid "Gerber\tB" +msgstr "Gerber\tB" + +#: flatcamGUI/FlatCAMGUI.py:113 +msgid "Will create a new, empty Gerber Object." +msgstr "Will create a new, empty Gerber Object." + +#: flatcamGUI/FlatCAMGUI.py:116 +msgid "Excellon\tL" +msgstr "Excellon\tL" + +#: flatcamGUI/FlatCAMGUI.py:118 +msgid "Will create a new, empty Excellon Object." +msgstr "Will create a new, empty Excellon Object." + +#: flatcamGUI/FlatCAMGUI.py:123 +msgid "Document\tD" +msgstr "Document\tD" + +#: flatcamGUI/FlatCAMGUI.py:125 +msgid "Will create a new, empty Document Object." +msgstr "Will create a new, empty Document Object." + +#: flatcamGUI/FlatCAMGUI.py:129 flatcamGUI/FlatCAMGUI.py:4420 +#: flatcamTools/ToolPcbWizard.py:62 flatcamTools/ToolPcbWizard.py:69 +msgid "Open" +msgstr "Open" + +#: flatcamGUI/FlatCAMGUI.py:134 +msgid "Open &Project ..." +msgstr "Open &Project ..." + +#: flatcamGUI/FlatCAMGUI.py:140 flatcamGUI/FlatCAMGUI.py:4430 +msgid "Open &Gerber ...\tCtrl+G" +msgstr "Open &Gerber ...\tCtrl+G" + +#: flatcamGUI/FlatCAMGUI.py:145 flatcamGUI/FlatCAMGUI.py:4435 +msgid "Open &Excellon ...\tCtrl+E" +msgstr "Open &Excellon ...\tCtrl+E" + +#: flatcamGUI/FlatCAMGUI.py:150 flatcamGUI/FlatCAMGUI.py:4440 +msgid "Open G-&Code ..." +msgstr "Open G-&Code ..." + +#: flatcamGUI/FlatCAMGUI.py:157 +msgid "Open Config ..." +msgstr "Open Config ..." + +#: flatcamGUI/FlatCAMGUI.py:162 +msgid "Recent projects" +msgstr "Recent projects" + +#: flatcamGUI/FlatCAMGUI.py:164 +msgid "Recent files" +msgstr "Recent files" + +#: flatcamGUI/FlatCAMGUI.py:167 flatcamGUI/FlatCAMGUI.py:753 +#: flatcamGUI/FlatCAMGUI.py:1339 +msgid "Save" +msgstr "Save" + +#: flatcamGUI/FlatCAMGUI.py:171 +msgid "&Save Project ...\tCtrl+S" +msgstr "&Save Project ...\tCtrl+S" + +#: flatcamGUI/FlatCAMGUI.py:176 +msgid "Save Project &As ...\tCtrl+Shift+S" +msgstr "Save Project &As ...\tCtrl+Shift+S" + +#: flatcamGUI/FlatCAMGUI.py:191 +msgid "Scripting" +msgstr "Scripting" + +#: flatcamGUI/FlatCAMGUI.py:195 flatcamGUI/FlatCAMGUI.py:903 +#: flatcamGUI/FlatCAMGUI.py:2607 +msgid "New Script ..." +msgstr "New Script ..." + +#: flatcamGUI/FlatCAMGUI.py:197 flatcamGUI/FlatCAMGUI.py:905 +#: flatcamGUI/FlatCAMGUI.py:2609 +msgid "Open Script ..." +msgstr "Open Script ..." + +#: flatcamGUI/FlatCAMGUI.py:199 +msgid "Open Example ..." +msgstr "Open Example ..." + +#: flatcamGUI/FlatCAMGUI.py:201 flatcamGUI/FlatCAMGUI.py:907 +#: flatcamGUI/FlatCAMGUI.py:2611 flatcamGUI/FlatCAMGUI.py:4409 +msgid "Run Script ..." +msgstr "Run Script ..." + +#: flatcamGUI/FlatCAMGUI.py:203 flatcamGUI/FlatCAMGUI.py:4411 +msgid "" +"Will run the opened Tcl Script thus\n" +"enabling the automation of certain\n" +"functions of FlatCAM." +msgstr "" +"Will run the opened Tcl Script thus\n" +"enabling the automation of certain\n" +"functions of FlatCAM." + +#: flatcamGUI/FlatCAMGUI.py:218 +msgid "Import" +msgstr "Import" + +#: flatcamGUI/FlatCAMGUI.py:220 +msgid "&SVG as Geometry Object ..." +msgstr "&SVG as Geometry Object ..." + +#: flatcamGUI/FlatCAMGUI.py:223 +msgid "&SVG as Gerber Object ..." +msgstr "&SVG as Gerber Object ..." + +#: flatcamGUI/FlatCAMGUI.py:228 +msgid "&DXF as Geometry Object ..." +msgstr "&DXF as Geometry Object ..." + +#: flatcamGUI/FlatCAMGUI.py:231 +msgid "&DXF as Gerber Object ..." +msgstr "&DXF as Gerber Object ..." + +#: flatcamGUI/FlatCAMGUI.py:235 +msgid "HPGL2 as Geometry Object ..." +msgstr "HPGL2 as Geometry Object ..." + +#: flatcamGUI/FlatCAMGUI.py:241 +msgid "Export" +msgstr "Export" + +#: flatcamGUI/FlatCAMGUI.py:245 +msgid "Export &SVG ..." +msgstr "Export &SVG ..." + +#: flatcamGUI/FlatCAMGUI.py:249 +msgid "Export DXF ..." +msgstr "Export DXF ..." + +#: flatcamGUI/FlatCAMGUI.py:255 +msgid "Export &PNG ..." +msgstr "Export &PNG ..." + +#: flatcamGUI/FlatCAMGUI.py:257 +msgid "" +"Will export an image in PNG format,\n" +"the saved image will contain the visual \n" +"information currently in FlatCAM Plot Area." +msgstr "" +"Will export an image in PNG format,\n" +"the saved image will contain the visual \n" +"information currently in FlatCAM Plot Area." + +#: flatcamGUI/FlatCAMGUI.py:266 +msgid "Export &Excellon ..." +msgstr "Export &Excellon ..." + +#: flatcamGUI/FlatCAMGUI.py:268 +msgid "" +"Will export an Excellon Object as Excellon file,\n" +"the coordinates format, the file units and zeros\n" +"are set in Preferences -> Excellon Export." +msgstr "" +"Will export an Excellon Object as Excellon file,\n" +"the coordinates format, the file units and zeros\n" +"are set in Preferences -> Excellon Export." + +#: flatcamGUI/FlatCAMGUI.py:275 +msgid "Export &Gerber ..." +msgstr "Export &Gerber ..." + +#: flatcamGUI/FlatCAMGUI.py:277 +msgid "" +"Will export an Gerber Object as Gerber file,\n" +"the coordinates format, the file units and zeros\n" +"are set in Preferences -> Gerber Export." +msgstr "" +"Will export an Gerber Object as Gerber file,\n" +"the coordinates format, the file units and zeros\n" +"are set in Preferences -> Gerber Export." + +#: flatcamGUI/FlatCAMGUI.py:287 +msgid "Backup" +msgstr "Backup" + +#: flatcamGUI/FlatCAMGUI.py:292 +msgid "Import Preferences from file ..." +msgstr "Import Preferences from file ..." + +#: flatcamGUI/FlatCAMGUI.py:298 +msgid "Export Preferences to file ..." +msgstr "Export Preferences to file ..." + +#: flatcamGUI/FlatCAMGUI.py:306 +#: flatcamGUI/preferences/PreferencesUIManager.py:1119 +msgid "Save Preferences" +msgstr "Save Preferences" + +#: flatcamGUI/FlatCAMGUI.py:312 flatcamGUI/FlatCAMGUI.py:1730 +msgid "Print (PDF)" +msgstr "Print (PDF)" + +#: flatcamGUI/FlatCAMGUI.py:320 +msgid "E&xit" +msgstr "E&xit" + +#: flatcamGUI/FlatCAMGUI.py:328 flatcamGUI/FlatCAMGUI.py:747 +#: flatcamGUI/FlatCAMGUI.py:2286 +msgid "Edit" +msgstr "Edit" + +#: flatcamGUI/FlatCAMGUI.py:332 +msgid "Edit Object\tE" +msgstr "Edit Object\tE" + +#: flatcamGUI/FlatCAMGUI.py:334 +msgid "Close Editor\tCtrl+S" +msgstr "Close Editor\tCtrl+S" + +#: flatcamGUI/FlatCAMGUI.py:343 +msgid "Conversion" +msgstr "Conversion" + +#: flatcamGUI/FlatCAMGUI.py:345 +msgid "&Join Geo/Gerber/Exc -> Geo" +msgstr "&Join Geo/Gerber/Exc -> Geo" + +#: flatcamGUI/FlatCAMGUI.py:347 +msgid "" +"Merge a selection of objects, which can be of type:\n" +"- Gerber\n" +"- Excellon\n" +"- Geometry\n" +"into a new combo Geometry object." +msgstr "" +"Merge a selection of objects, which can be of type:\n" +"- Gerber\n" +"- Excellon\n" +"- Geometry\n" +"into a new combo Geometry object." + +#: flatcamGUI/FlatCAMGUI.py:354 +msgid "Join Excellon(s) -> Excellon" +msgstr "Join Excellon(s) -> Excellon" + +#: flatcamGUI/FlatCAMGUI.py:356 +msgid "Merge a selection of Excellon objects into a new combo Excellon object." +msgstr "" +"Merge a selection of Excellon objects into a new combo Excellon object." + +#: flatcamGUI/FlatCAMGUI.py:359 +msgid "Join Gerber(s) -> Gerber" +msgstr "Join Gerber(s) -> Gerber" + +#: flatcamGUI/FlatCAMGUI.py:361 +msgid "Merge a selection of Gerber objects into a new combo Gerber object." +msgstr "Merge a selection of Gerber objects into a new combo Gerber object." + +#: flatcamGUI/FlatCAMGUI.py:366 +msgid "Convert Single to MultiGeo" +msgstr "Convert Single to MultiGeo" + +#: flatcamGUI/FlatCAMGUI.py:368 +msgid "" +"Will convert a Geometry object from single_geometry type\n" +"to a multi_geometry type." +msgstr "" +"Will convert a Geometry object from single_geometry type\n" +"to a multi_geometry type." + +#: flatcamGUI/FlatCAMGUI.py:372 +msgid "Convert Multi to SingleGeo" +msgstr "Convert Multi to SingleGeo" + +#: flatcamGUI/FlatCAMGUI.py:374 +msgid "" +"Will convert a Geometry object from multi_geometry type\n" +"to a single_geometry type." +msgstr "" +"Will convert a Geometry object from multi_geometry type\n" +"to a single_geometry type." + +#: flatcamGUI/FlatCAMGUI.py:381 +msgid "Convert Any to Geo" +msgstr "Convert Any to Geo" + +#: flatcamGUI/FlatCAMGUI.py:384 +msgid "Convert Any to Gerber" +msgstr "Convert Any to Gerber" + +#: flatcamGUI/FlatCAMGUI.py:390 +msgid "&Copy\tCtrl+C" +msgstr "&Copy\tCtrl+C" + +#: flatcamGUI/FlatCAMGUI.py:395 +msgid "&Delete\tDEL" +msgstr "&Delete\tDEL" + +#: flatcamGUI/FlatCAMGUI.py:400 +msgid "Se&t Origin\tO" +msgstr "Se&t Origin\tO" + +#: flatcamGUI/FlatCAMGUI.py:402 +msgid "Move to Origin\tShift+O" +msgstr "Move to Origin\tShift+O" + +#: flatcamGUI/FlatCAMGUI.py:405 +msgid "Jump to Location\tJ" +msgstr "Jump to Location\tJ" + +#: flatcamGUI/FlatCAMGUI.py:407 +msgid "Locate in Object\tShift+J" +msgstr "Locate in Object\tShift+J" + +#: flatcamGUI/FlatCAMGUI.py:412 +msgid "Toggle Units\tQ" +msgstr "Toggle Units\tQ" + +#: flatcamGUI/FlatCAMGUI.py:414 +msgid "&Select All\tCtrl+A" +msgstr "&Select All\tCtrl+A" + +#: flatcamGUI/FlatCAMGUI.py:419 +msgid "&Preferences\tShift+P" +msgstr "&Preferences\tShift+P" + +#: flatcamGUI/FlatCAMGUI.py:425 flatcamTools/ToolProperties.py:155 +msgid "Options" +msgstr "Options" + +#: flatcamGUI/FlatCAMGUI.py:427 +msgid "&Rotate Selection\tShift+(R)" +msgstr "&Rotate Selection\tShift+(R)" + +#: flatcamGUI/FlatCAMGUI.py:432 +msgid "&Skew on X axis\tShift+X" +msgstr "&Skew on X axis\tShift+X" + +#: flatcamGUI/FlatCAMGUI.py:434 +msgid "S&kew on Y axis\tShift+Y" +msgstr "S&kew on Y axis\tShift+Y" + +#: flatcamGUI/FlatCAMGUI.py:439 +msgid "Flip on &X axis\tX" +msgstr "Flip on &X axis\tX" + +#: flatcamGUI/FlatCAMGUI.py:441 +msgid "Flip on &Y axis\tY" +msgstr "Flip on &Y axis\tY" + +#: flatcamGUI/FlatCAMGUI.py:446 +msgid "View source\tAlt+S" +msgstr "View source\tAlt+S" + +#: flatcamGUI/FlatCAMGUI.py:448 +msgid "Tools DataBase\tCtrl+D" +msgstr "Tools DataBase\tCtrl+D" + +#: flatcamGUI/FlatCAMGUI.py:455 flatcamGUI/FlatCAMGUI.py:2183 +msgid "View" +msgstr "View" + +#: flatcamGUI/FlatCAMGUI.py:457 +msgid "Enable all plots\tAlt+1" +msgstr "Enable all plots\tAlt+1" + +#: flatcamGUI/FlatCAMGUI.py:459 +msgid "Disable all plots\tAlt+2" +msgstr "Disable all plots\tAlt+2" + +#: flatcamGUI/FlatCAMGUI.py:461 +msgid "Disable non-selected\tAlt+3" +msgstr "Disable non-selected\tAlt+3" + +#: flatcamGUI/FlatCAMGUI.py:465 +msgid "&Zoom Fit\tV" +msgstr "&Zoom Fit\tV" + +#: flatcamGUI/FlatCAMGUI.py:467 +msgid "&Zoom In\t=" +msgstr "&Zoom In\t=" + +#: flatcamGUI/FlatCAMGUI.py:469 +msgid "&Zoom Out\t-" +msgstr "&Zoom Out\t-" + +#: flatcamGUI/FlatCAMGUI.py:474 +msgid "Redraw All\tF5" +msgstr "Redraw All\tF5" + +#: flatcamGUI/FlatCAMGUI.py:478 +msgid "Toggle Code Editor\tShift+E" +msgstr "Toggle Code Editor\tShift+E" + +#: flatcamGUI/FlatCAMGUI.py:481 +msgid "&Toggle FullScreen\tAlt+F10" +msgstr "&Toggle FullScreen\tAlt+F10" + +#: flatcamGUI/FlatCAMGUI.py:483 +msgid "&Toggle Plot Area\tCtrl+F10" +msgstr "&Toggle Plot Area\tCtrl+F10" + +#: flatcamGUI/FlatCAMGUI.py:485 +msgid "&Toggle Project/Sel/Tool\t`" +msgstr "&Toggle Project/Sel/Tool\t`" + +#: flatcamGUI/FlatCAMGUI.py:489 +msgid "&Toggle Grid Snap\tG" +msgstr "&Toggle Grid Snap\tG" + +#: flatcamGUI/FlatCAMGUI.py:491 +msgid "&Toggle Grid Lines\tAlt+G" +msgstr "&Toggle Grid Lines\tAlt+G" + +#: flatcamGUI/FlatCAMGUI.py:493 +msgid "&Toggle Axis\tShift+G" +msgstr "&Toggle Axis\tShift+G" + +#: flatcamGUI/FlatCAMGUI.py:495 +msgid "Toggle Workspace\tShift+W" +msgstr "Toggle Workspace\tShift+W" + +#: flatcamGUI/FlatCAMGUI.py:500 +msgid "Objects" +msgstr "Objects" + +#: flatcamGUI/FlatCAMGUI.py:514 +msgid "&Command Line\tS" +msgstr "&Command Line\tS" + +#: flatcamGUI/FlatCAMGUI.py:519 +msgid "Help" +msgstr "Help" + +#: flatcamGUI/FlatCAMGUI.py:521 +msgid "Online Help\tF1" +msgstr "Online Help\tF1" + +#: flatcamGUI/FlatCAMGUI.py:531 +msgid "Report a bug" +msgstr "Report a bug" + +#: flatcamGUI/FlatCAMGUI.py:534 +msgid "Excellon Specification" +msgstr "Excellon Specification" + +#: flatcamGUI/FlatCAMGUI.py:536 +msgid "Gerber Specification" +msgstr "Gerber Specification" + +#: flatcamGUI/FlatCAMGUI.py:541 +msgid "Shortcuts List\tF3" +msgstr "Shortcuts List\tF3" + +#: flatcamGUI/FlatCAMGUI.py:543 +msgid "YouTube Channel\tF4" +msgstr "YouTube Channel\tF4" + +#: flatcamGUI/FlatCAMGUI.py:554 +msgid "Add Circle\tO" +msgstr "Add Circle\tO" + +#: flatcamGUI/FlatCAMGUI.py:557 +msgid "Add Arc\tA" +msgstr "Add Arc\tA" + +#: flatcamGUI/FlatCAMGUI.py:560 +msgid "Add Rectangle\tR" +msgstr "Add Rectangle\tR" + +#: flatcamGUI/FlatCAMGUI.py:563 +msgid "Add Polygon\tN" +msgstr "Add Polygon\tN" + +#: flatcamGUI/FlatCAMGUI.py:566 +msgid "Add Path\tP" +msgstr "Add Path\tP" + +#: flatcamGUI/FlatCAMGUI.py:569 +msgid "Add Text\tT" +msgstr "Add Text\tT" + +#: flatcamGUI/FlatCAMGUI.py:572 +msgid "Polygon Union\tU" +msgstr "Polygon Union\tU" + +#: flatcamGUI/FlatCAMGUI.py:574 +msgid "Polygon Intersection\tE" +msgstr "Polygon Intersection\tE" + +#: flatcamGUI/FlatCAMGUI.py:576 +msgid "Polygon Subtraction\tS" +msgstr "Polygon Subtraction\tS" + +#: flatcamGUI/FlatCAMGUI.py:580 +msgid "Cut Path\tX" +msgstr "Cut Path\tX" + +#: flatcamGUI/FlatCAMGUI.py:584 +msgid "Copy Geom\tC" +msgstr "Copy Geom\tC" + +#: flatcamGUI/FlatCAMGUI.py:586 +msgid "Delete Shape\tDEL" +msgstr "Delete Shape\tDEL" + +#: flatcamGUI/FlatCAMGUI.py:590 flatcamGUI/FlatCAMGUI.py:677 +msgid "Move\tM" +msgstr "Move\tM" + +#: flatcamGUI/FlatCAMGUI.py:592 +msgid "Buffer Tool\tB" +msgstr "Buffer Tool\tB" + +#: flatcamGUI/FlatCAMGUI.py:595 +msgid "Paint Tool\tI" +msgstr "Paint Tool\tI" + +#: flatcamGUI/FlatCAMGUI.py:598 +msgid "Transform Tool\tAlt+R" +msgstr "Transform Tool\tAlt+R" + +#: flatcamGUI/FlatCAMGUI.py:602 +msgid "Toggle Corner Snap\tK" +msgstr "Toggle Corner Snap\tK" + +#: flatcamGUI/FlatCAMGUI.py:608 +msgid ">Excellon Editor<" +msgstr ">Excellon Editor<" + +#: flatcamGUI/FlatCAMGUI.py:612 +msgid "Add Drill Array\tA" +msgstr "Add Drill Array\tA" + +#: flatcamGUI/FlatCAMGUI.py:614 +msgid "Add Drill\tD" +msgstr "Add Drill\tD" + +#: flatcamGUI/FlatCAMGUI.py:618 +msgid "Add Slot Array\tQ" +msgstr "Add Slot Array\tQ" + +#: flatcamGUI/FlatCAMGUI.py:620 +msgid "Add Slot\tW" +msgstr "Add Slot\tW" + +#: flatcamGUI/FlatCAMGUI.py:624 +msgid "Resize Drill(S)\tR" +msgstr "Resize Drill(S)\tR" + +#: flatcamGUI/FlatCAMGUI.py:627 flatcamGUI/FlatCAMGUI.py:671 +msgid "Copy\tC" +msgstr "Copy\tC" + +#: flatcamGUI/FlatCAMGUI.py:629 flatcamGUI/FlatCAMGUI.py:673 +msgid "Delete\tDEL" +msgstr "Delete\tDEL" + +#: flatcamGUI/FlatCAMGUI.py:634 +msgid "Move Drill(s)\tM" +msgstr "Move Drill(s)\tM" + +#: flatcamGUI/FlatCAMGUI.py:639 +msgid ">Gerber Editor<" +msgstr ">Gerber Editor<" + +#: flatcamGUI/FlatCAMGUI.py:643 +msgid "Add Pad\tP" +msgstr "Add Pad\tP" + +#: flatcamGUI/FlatCAMGUI.py:645 +msgid "Add Pad Array\tA" +msgstr "Add Pad Array\tA" + +#: flatcamGUI/FlatCAMGUI.py:647 +msgid "Add Track\tT" +msgstr "Add Track\tT" + +#: flatcamGUI/FlatCAMGUI.py:649 +msgid "Add Region\tN" +msgstr "Add Region\tN" + +#: flatcamGUI/FlatCAMGUI.py:653 +msgid "Poligonize\tAlt+N" +msgstr "Poligonize\tAlt+N" + +#: flatcamGUI/FlatCAMGUI.py:655 +msgid "Add SemiDisc\tE" +msgstr "Add SemiDisc\tE" + +#: flatcamGUI/FlatCAMGUI.py:657 +msgid "Add Disc\tD" +msgstr "Add Disc\tD" + +#: flatcamGUI/FlatCAMGUI.py:659 +msgid "Buffer\tB" +msgstr "Buffer\tB" + +#: flatcamGUI/FlatCAMGUI.py:661 +msgid "Scale\tS" +msgstr "Scale\tS" + +#: flatcamGUI/FlatCAMGUI.py:663 +msgid "Mark Area\tAlt+A" +msgstr "Mark Area\tAlt+A" + +#: flatcamGUI/FlatCAMGUI.py:665 +msgid "Eraser\tCtrl+E" +msgstr "Eraser\tCtrl+E" + +#: flatcamGUI/FlatCAMGUI.py:667 +msgid "Transform\tAlt+R" +msgstr "Transform\tAlt+R" + +#: flatcamGUI/FlatCAMGUI.py:694 +msgid "Enable Plot" +msgstr "Enable Plot" + +#: flatcamGUI/FlatCAMGUI.py:696 +msgid "Disable Plot" +msgstr "Disable Plot" + +#: flatcamGUI/FlatCAMGUI.py:700 +msgid "Set Color" +msgstr "Set Color" + +#: flatcamGUI/FlatCAMGUI.py:742 +msgid "Generate CNC" +msgstr "Generate CNC" + +#: flatcamGUI/FlatCAMGUI.py:744 +msgid "View Source" +msgstr "View Source" + +#: flatcamGUI/FlatCAMGUI.py:749 flatcamGUI/FlatCAMGUI.py:863 +#: flatcamGUI/FlatCAMGUI.py:1072 flatcamGUI/FlatCAMGUI.py:2138 +#: flatcamGUI/FlatCAMGUI.py:2282 flatcamGUI/FlatCAMGUI.py:2572 +#: flatcamGUI/FlatCAMGUI.py:2775 flatcamGUI/ObjectUI.py:1617 +#: flatcamObjects/FlatCAMGeometry.py:502 flatcamTools/ToolPanelize.py:540 +#: flatcamTools/ToolPanelize.py:567 flatcamTools/ToolPanelize.py:660 +#: flatcamTools/ToolPanelize.py:689 flatcamTools/ToolPanelize.py:751 +msgid "Copy" +msgstr "Copy" + +#: flatcamGUI/FlatCAMGUI.py:757 flatcamGUI/FlatCAMGUI.py:2295 +#: flatcamTools/ToolProperties.py:31 +msgid "Properties" +msgstr "Properties" + +#: flatcamGUI/FlatCAMGUI.py:786 +msgid "File Toolbar" +msgstr "File Toolbar" + +#: flatcamGUI/FlatCAMGUI.py:790 +msgid "Edit Toolbar" +msgstr "Edit Toolbar" + +#: flatcamGUI/FlatCAMGUI.py:794 +msgid "View Toolbar" +msgstr "View Toolbar" + +#: flatcamGUI/FlatCAMGUI.py:798 +msgid "Shell Toolbar" +msgstr "Shell Toolbar" + +#: flatcamGUI/FlatCAMGUI.py:802 +msgid "Tools Toolbar" +msgstr "Tools Toolbar" + +#: flatcamGUI/FlatCAMGUI.py:806 +msgid "Excellon Editor Toolbar" +msgstr "Excellon Editor Toolbar" + +#: flatcamGUI/FlatCAMGUI.py:812 +msgid "Geometry Editor Toolbar" +msgstr "Geometry Editor Toolbar" + +#: flatcamGUI/FlatCAMGUI.py:816 +msgid "Gerber Editor Toolbar" +msgstr "Gerber Editor Toolbar" + +#: flatcamGUI/FlatCAMGUI.py:820 +msgid "Grid Toolbar" +msgstr "Grid Toolbar" + +#: flatcamGUI/FlatCAMGUI.py:841 flatcamGUI/FlatCAMGUI.py:2549 +msgid "Open project" +msgstr "Open project" + +#: flatcamGUI/FlatCAMGUI.py:843 flatcamGUI/FlatCAMGUI.py:2551 +msgid "Save project" +msgstr "Save project" + +#: flatcamGUI/FlatCAMGUI.py:849 flatcamGUI/FlatCAMGUI.py:2557 +msgid "New Blank Geometry" +msgstr "New Blank Geometry" + +#: flatcamGUI/FlatCAMGUI.py:851 flatcamGUI/FlatCAMGUI.py:2559 +msgid "New Blank Gerber" +msgstr "New Blank Gerber" + +#: flatcamGUI/FlatCAMGUI.py:853 flatcamGUI/FlatCAMGUI.py:2561 +msgid "New Blank Excellon" +msgstr "New Blank Excellon" + +#: flatcamGUI/FlatCAMGUI.py:858 flatcamGUI/FlatCAMGUI.py:2567 +msgid "Save Object and close the Editor" +msgstr "Save Object and close the Editor" + +#: flatcamGUI/FlatCAMGUI.py:865 flatcamGUI/FlatCAMGUI.py:2574 +msgid "&Delete" +msgstr "&Delete" + +#: flatcamGUI/FlatCAMGUI.py:868 flatcamGUI/FlatCAMGUI.py:1729 +#: flatcamGUI/FlatCAMGUI.py:1935 flatcamGUI/FlatCAMGUI.py:2577 +#: flatcamTools/ToolDistance.py:35 flatcamTools/ToolDistance.py:195 +msgid "Distance Tool" +msgstr "Distance Tool" + +#: flatcamGUI/FlatCAMGUI.py:870 flatcamGUI/FlatCAMGUI.py:2579 +msgid "Distance Min Tool" +msgstr "Distance Min Tool" + +#: flatcamGUI/FlatCAMGUI.py:872 flatcamGUI/FlatCAMGUI.py:1722 +#: flatcamGUI/FlatCAMGUI.py:2581 +msgid "Set Origin" +msgstr "Set Origin" + +#: flatcamGUI/FlatCAMGUI.py:874 +msgid "Move to Origin" +msgstr "Move to Origin" + +#: flatcamGUI/FlatCAMGUI.py:877 flatcamGUI/FlatCAMGUI.py:2583 +msgid "Jump to Location" +msgstr "Jump to Location" + +#: flatcamGUI/FlatCAMGUI.py:879 flatcamGUI/FlatCAMGUI.py:1734 +#: flatcamGUI/FlatCAMGUI.py:2585 +msgid "Locate in Object" +msgstr "Locate in Object" + +#: flatcamGUI/FlatCAMGUI.py:885 flatcamGUI/FlatCAMGUI.py:2591 +msgid "&Replot" +msgstr "&Replot" + +#: flatcamGUI/FlatCAMGUI.py:887 flatcamGUI/FlatCAMGUI.py:2593 +msgid "&Clear plot" +msgstr "&Clear plot" + +#: flatcamGUI/FlatCAMGUI.py:889 flatcamGUI/FlatCAMGUI.py:1725 +#: flatcamGUI/FlatCAMGUI.py:2595 +msgid "Zoom In" +msgstr "Zoom In" + +#: flatcamGUI/FlatCAMGUI.py:891 flatcamGUI/FlatCAMGUI.py:1725 +#: flatcamGUI/FlatCAMGUI.py:2597 +msgid "Zoom Out" +msgstr "Zoom Out" + +#: flatcamGUI/FlatCAMGUI.py:893 flatcamGUI/FlatCAMGUI.py:1724 +#: flatcamGUI/FlatCAMGUI.py:2185 flatcamGUI/FlatCAMGUI.py:2599 +msgid "Zoom Fit" +msgstr "Zoom Fit" + +#: flatcamGUI/FlatCAMGUI.py:901 flatcamGUI/FlatCAMGUI.py:2605 +msgid "&Command Line" +msgstr "&Command Line" + +#: flatcamGUI/FlatCAMGUI.py:913 flatcamGUI/FlatCAMGUI.py:2617 +msgid "2Sided Tool" +msgstr "2Sided Tool" + +#: flatcamGUI/FlatCAMGUI.py:915 flatcamGUI/FlatCAMGUI.py:1740 +#: flatcamGUI/FlatCAMGUI.py:2619 +msgid "Align Objects Tool" +msgstr "Align Objects Tool" + +#: flatcamGUI/FlatCAMGUI.py:917 flatcamGUI/FlatCAMGUI.py:1741 +#: flatcamGUI/FlatCAMGUI.py:2621 flatcamTools/ToolExtractDrills.py:393 +msgid "Extract Drills Tool" +msgstr "Extract Drills Tool" + +#: flatcamGUI/FlatCAMGUI.py:920 flatcamGUI/ObjectUI.py:596 +#: flatcamTools/ToolCutOut.py:440 +msgid "Cutout Tool" +msgstr "Cutout Tool" + +#: flatcamGUI/FlatCAMGUI.py:922 flatcamGUI/FlatCAMGUI.py:2626 +#: flatcamGUI/ObjectUI.py:574 flatcamGUI/ObjectUI.py:2157 +#: flatcamTools/ToolNCC.py:974 +msgid "NCC Tool" +msgstr "NCC Tool" + +#: flatcamGUI/FlatCAMGUI.py:928 flatcamGUI/FlatCAMGUI.py:2632 +msgid "Panel Tool" +msgstr "Panel Tool" + +#: flatcamGUI/FlatCAMGUI.py:930 flatcamGUI/FlatCAMGUI.py:2634 +#: flatcamTools/ToolFilm.py:586 +msgid "Film Tool" +msgstr "Film Tool" + +#: flatcamGUI/FlatCAMGUI.py:932 flatcamGUI/FlatCAMGUI.py:2636 +#: flatcamTools/ToolSolderPaste.py:553 +msgid "SolderPaste Tool" +msgstr "SolderPaste Tool" + +#: flatcamGUI/FlatCAMGUI.py:934 flatcamGUI/FlatCAMGUI.py:2638 +#: flatcamTools/ToolSub.py:35 +msgid "Subtract Tool" +msgstr "Subtract Tool" + +#: flatcamGUI/FlatCAMGUI.py:936 flatcamGUI/FlatCAMGUI.py:2640 +#: flatcamTools/ToolRulesCheck.py:616 +msgid "Rules Tool" +msgstr "Rules Tool" + +#: flatcamGUI/FlatCAMGUI.py:938 flatcamGUI/FlatCAMGUI.py:1743 +#: flatcamGUI/FlatCAMGUI.py:2642 flatcamTools/ToolOptimal.py:33 +#: flatcamTools/ToolOptimal.py:307 +msgid "Optimal Tool" +msgstr "Optimal Tool" + +#: flatcamGUI/FlatCAMGUI.py:943 flatcamGUI/FlatCAMGUI.py:1740 +#: flatcamGUI/FlatCAMGUI.py:2647 +msgid "Calculators Tool" +msgstr "Calculators Tool" + +#: flatcamGUI/FlatCAMGUI.py:947 flatcamGUI/FlatCAMGUI.py:1744 +#: flatcamGUI/FlatCAMGUI.py:2651 flatcamTools/ToolQRCode.py:43 +#: flatcamTools/ToolQRCode.py:382 +msgid "QRCode Tool" +msgstr "QRCode Tool" + +#: flatcamGUI/FlatCAMGUI.py:949 flatcamGUI/FlatCAMGUI.py:2653 +#: flatcamTools/ToolCopperThieving.py:39 flatcamTools/ToolCopperThieving.py:568 +msgid "Copper Thieving Tool" +msgstr "Copper Thieving Tool" + +#: flatcamGUI/FlatCAMGUI.py:952 flatcamGUI/FlatCAMGUI.py:1741 +#: flatcamGUI/FlatCAMGUI.py:2656 flatcamTools/ToolFiducials.py:33 +#: flatcamTools/ToolFiducials.py:395 +msgid "Fiducials Tool" +msgstr "Fiducials Tool" + +#: flatcamGUI/FlatCAMGUI.py:954 flatcamGUI/FlatCAMGUI.py:2658 +#: flatcamTools/ToolCalibration.py:37 flatcamTools/ToolCalibration.py:759 +msgid "Calibration Tool" +msgstr "Calibration Tool" + +#: flatcamGUI/FlatCAMGUI.py:956 flatcamGUI/FlatCAMGUI.py:1741 +#: flatcamGUI/FlatCAMGUI.py:2660 +msgid "Punch Gerber Tool" +msgstr "Punch Gerber Tool" + +#: flatcamGUI/FlatCAMGUI.py:958 flatcamGUI/FlatCAMGUI.py:2662 +#: flatcamTools/ToolInvertGerber.py:31 +msgid "Invert Gerber Tool" +msgstr "Invert Gerber Tool" + +#: flatcamGUI/FlatCAMGUI.py:964 flatcamGUI/FlatCAMGUI.py:990 +#: flatcamGUI/FlatCAMGUI.py:1042 flatcamGUI/FlatCAMGUI.py:2668 +#: flatcamGUI/FlatCAMGUI.py:2746 +msgid "Select" +msgstr "Select" + +#: flatcamGUI/FlatCAMGUI.py:966 flatcamGUI/FlatCAMGUI.py:2670 +msgid "Add Drill Hole" +msgstr "Add Drill Hole" + +#: flatcamGUI/FlatCAMGUI.py:968 flatcamGUI/FlatCAMGUI.py:2672 +msgid "Add Drill Hole Array" +msgstr "Add Drill Hole Array" + +#: flatcamGUI/FlatCAMGUI.py:970 flatcamGUI/FlatCAMGUI.py:2020 +#: flatcamGUI/FlatCAMGUI.py:2273 flatcamGUI/FlatCAMGUI.py:2676 +msgid "Add Slot" +msgstr "Add Slot" + +#: flatcamGUI/FlatCAMGUI.py:972 flatcamGUI/FlatCAMGUI.py:2019 +#: flatcamGUI/FlatCAMGUI.py:2275 flatcamGUI/FlatCAMGUI.py:2678 +msgid "Add Slot Array" +msgstr "Add Slot Array" + +#: flatcamGUI/FlatCAMGUI.py:974 flatcamGUI/FlatCAMGUI.py:2278 +#: flatcamGUI/FlatCAMGUI.py:2674 +msgid "Resize Drill" +msgstr "Resize Drill" + +#: flatcamGUI/FlatCAMGUI.py:978 flatcamGUI/FlatCAMGUI.py:2682 +msgid "Copy Drill" +msgstr "Copy Drill" + +#: flatcamGUI/FlatCAMGUI.py:980 flatcamGUI/FlatCAMGUI.py:2684 +msgid "Delete Drill" +msgstr "Delete Drill" + +#: flatcamGUI/FlatCAMGUI.py:984 flatcamGUI/FlatCAMGUI.py:2688 +msgid "Move Drill" +msgstr "Move Drill" + +#: flatcamGUI/FlatCAMGUI.py:992 flatcamGUI/FlatCAMGUI.py:2696 +msgid "Add Circle" +msgstr "Add Circle" + +#: flatcamGUI/FlatCAMGUI.py:994 flatcamGUI/FlatCAMGUI.py:2698 +msgid "Add Arc" +msgstr "Add Arc" + +#: flatcamGUI/FlatCAMGUI.py:996 flatcamGUI/FlatCAMGUI.py:2700 +msgid "Add Rectangle" +msgstr "Add Rectangle" + +#: flatcamGUI/FlatCAMGUI.py:1000 flatcamGUI/FlatCAMGUI.py:2704 +msgid "Add Path" +msgstr "Add Path" + +#: flatcamGUI/FlatCAMGUI.py:1002 flatcamGUI/FlatCAMGUI.py:2706 +msgid "Add Polygon" +msgstr "Add Polygon" + +#: flatcamGUI/FlatCAMGUI.py:1005 flatcamGUI/FlatCAMGUI.py:2709 +msgid "Add Text" +msgstr "Add Text" + +#: flatcamGUI/FlatCAMGUI.py:1007 flatcamGUI/FlatCAMGUI.py:2711 +msgid "Add Buffer" +msgstr "Add Buffer" + +#: flatcamGUI/FlatCAMGUI.py:1009 flatcamGUI/FlatCAMGUI.py:2713 +msgid "Paint Shape" +msgstr "Paint Shape" + +#: flatcamGUI/FlatCAMGUI.py:1011 flatcamGUI/FlatCAMGUI.py:1068 +#: flatcamGUI/FlatCAMGUI.py:2214 flatcamGUI/FlatCAMGUI.py:2259 +#: flatcamGUI/FlatCAMGUI.py:2715 flatcamGUI/FlatCAMGUI.py:2771 +msgid "Eraser" +msgstr "Eraser" + +#: flatcamGUI/FlatCAMGUI.py:1015 flatcamGUI/FlatCAMGUI.py:2719 +msgid "Polygon Union" +msgstr "Polygon Union" + +#: flatcamGUI/FlatCAMGUI.py:1017 flatcamGUI/FlatCAMGUI.py:2721 +msgid "Polygon Explode" +msgstr "Polygon Explode" + +#: flatcamGUI/FlatCAMGUI.py:1020 flatcamGUI/FlatCAMGUI.py:2724 +msgid "Polygon Intersection" +msgstr "Polygon Intersection" + +#: flatcamGUI/FlatCAMGUI.py:1022 flatcamGUI/FlatCAMGUI.py:2726 +msgid "Polygon Subtraction" +msgstr "Polygon Subtraction" + +#: flatcamGUI/FlatCAMGUI.py:1026 flatcamGUI/FlatCAMGUI.py:2730 +msgid "Cut Path" +msgstr "Cut Path" + +#: flatcamGUI/FlatCAMGUI.py:1028 +msgid "Copy Shape(s)" +msgstr "Copy Shape(s)" + +#: flatcamGUI/FlatCAMGUI.py:1031 +msgid "Delete Shape '-'" +msgstr "Delete Shape '-'" + +#: flatcamGUI/FlatCAMGUI.py:1033 flatcamGUI/FlatCAMGUI.py:1076 +#: flatcamGUI/FlatCAMGUI.py:2226 flatcamGUI/FlatCAMGUI.py:2263 +#: flatcamGUI/FlatCAMGUI.py:2736 flatcamGUI/FlatCAMGUI.py:2779 +#: flatcamGUI/ObjectUI.py:109 +msgid "Transformations" +msgstr "Transformations" + +#: flatcamGUI/FlatCAMGUI.py:1036 +msgid "Move Objects " +msgstr "Move Objects " + +#: flatcamGUI/FlatCAMGUI.py:1044 flatcamGUI/FlatCAMGUI.py:2139 +#: flatcamGUI/FlatCAMGUI.py:2748 +msgid "Add Pad" +msgstr "Add Pad" + +#: flatcamGUI/FlatCAMGUI.py:1048 flatcamGUI/FlatCAMGUI.py:2140 +#: flatcamGUI/FlatCAMGUI.py:2752 +msgid "Add Track" +msgstr "Add Track" + +#: flatcamGUI/FlatCAMGUI.py:1050 flatcamGUI/FlatCAMGUI.py:2139 +#: flatcamGUI/FlatCAMGUI.py:2754 +msgid "Add Region" +msgstr "Add Region" + +#: flatcamGUI/FlatCAMGUI.py:1052 flatcamGUI/FlatCAMGUI.py:2245 +#: flatcamGUI/FlatCAMGUI.py:2756 +msgid "Poligonize" +msgstr "Poligonize" + +#: flatcamGUI/FlatCAMGUI.py:1055 flatcamGUI/FlatCAMGUI.py:2247 +#: flatcamGUI/FlatCAMGUI.py:2759 +msgid "SemiDisc" +msgstr "SemiDisc" + +#: flatcamGUI/FlatCAMGUI.py:1057 flatcamGUI/FlatCAMGUI.py:2249 +#: flatcamGUI/FlatCAMGUI.py:2761 +msgid "Disc" +msgstr "Disc" + +#: flatcamGUI/FlatCAMGUI.py:1065 flatcamGUI/FlatCAMGUI.py:2257 +#: flatcamGUI/FlatCAMGUI.py:2769 +msgid "Mark Area" +msgstr "Mark Area" + +#: flatcamGUI/FlatCAMGUI.py:1079 flatcamGUI/FlatCAMGUI.py:2139 +#: flatcamGUI/FlatCAMGUI.py:2230 flatcamGUI/FlatCAMGUI.py:2293 +#: flatcamGUI/FlatCAMGUI.py:2782 flatcamTools/ToolMove.py:27 +msgid "Move" +msgstr "Move" + +#: flatcamGUI/FlatCAMGUI.py:1087 flatcamGUI/FlatCAMGUI.py:2791 +msgid "Snap to grid" +msgstr "Snap to grid" + +#: flatcamGUI/FlatCAMGUI.py:1090 flatcamGUI/FlatCAMGUI.py:2794 +msgid "Grid X snapping distance" +msgstr "Grid X snapping distance" + +#: flatcamGUI/FlatCAMGUI.py:1095 flatcamGUI/FlatCAMGUI.py:2799 +msgid "Grid Y snapping distance" +msgstr "Grid Y snapping distance" + +#: flatcamGUI/FlatCAMGUI.py:1101 flatcamGUI/FlatCAMGUI.py:2805 +msgid "" +"When active, value on Grid_X\n" +"is copied to the Grid_Y value." +msgstr "" +"When active, value on Grid_X\n" +"is copied to the Grid_Y value." + +#: flatcamGUI/FlatCAMGUI.py:1108 flatcamGUI/FlatCAMGUI.py:2812 +msgid "Snap to corner" +msgstr "Snap to corner" + +#: flatcamGUI/FlatCAMGUI.py:1112 flatcamGUI/FlatCAMGUI.py:2816 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:78 +msgid "Max. magnet distance" +msgstr "Max. magnet distance" + +#: flatcamGUI/FlatCAMGUI.py:1149 +msgid "Selected" +msgstr "Selected" + +#: flatcamGUI/FlatCAMGUI.py:1177 flatcamGUI/FlatCAMGUI.py:1185 +msgid "Plot Area" +msgstr "Plot Area" + +#: flatcamGUI/FlatCAMGUI.py:1212 +msgid "General" +msgstr "General" + +#: flatcamGUI/FlatCAMGUI.py:1227 flatcamTools/ToolCopperThieving.py:74 +#: flatcamTools/ToolDblSided.py:64 flatcamTools/ToolExtractDrills.py:61 +#: flatcamTools/ToolInvertGerber.py:72 flatcamTools/ToolOptimal.py:71 +#: flatcamTools/ToolPunchGerber.py:64 +msgid "GERBER" +msgstr "GERBER" + +#: flatcamGUI/FlatCAMGUI.py:1237 flatcamTools/ToolDblSided.py:92 +msgid "EXCELLON" +msgstr "EXCELLON" + +#: flatcamGUI/FlatCAMGUI.py:1247 flatcamTools/ToolDblSided.py:120 +msgid "GEOMETRY" +msgstr "GEOMETRY" + +#: flatcamGUI/FlatCAMGUI.py:1257 +msgid "CNC-JOB" +msgstr "CNC-JOB" + +#: flatcamGUI/FlatCAMGUI.py:1266 flatcamGUI/ObjectUI.py:563 +#: flatcamGUI/ObjectUI.py:2132 +msgid "TOOLS" +msgstr "TOOLS" + +#: flatcamGUI/FlatCAMGUI.py:1275 +msgid "TOOLS 2" +msgstr "TOOLS 2" + +#: flatcamGUI/FlatCAMGUI.py:1285 +msgid "UTILITIES" +msgstr "UTILITIES" + +#: flatcamGUI/FlatCAMGUI.py:1302 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:192 +msgid "Restore Defaults" +msgstr "Restore Defaults" + +#: flatcamGUI/FlatCAMGUI.py:1305 +msgid "" +"Restore the entire set of default values\n" +"to the initial values loaded after first launch." +msgstr "" +"Restore the entire set of default values\n" +"to the initial values loaded after first launch." + +#: flatcamGUI/FlatCAMGUI.py:1310 +msgid "Open Pref Folder" +msgstr "Open Pref Folder" + +#: flatcamGUI/FlatCAMGUI.py:1313 +msgid "Open the folder where FlatCAM save the preferences files." +msgstr "Open the folder where FlatCAM save the preferences files." + +#: flatcamGUI/FlatCAMGUI.py:1317 flatcamGUI/FlatCAMGUI.py:2517 +msgid "Clear GUI Settings" +msgstr "Clear GUI Settings" + +#: flatcamGUI/FlatCAMGUI.py:1321 +msgid "" +"Clear the GUI settings for FlatCAM,\n" +"such as: layout, gui state, style, hdpi support etc." +msgstr "" +"Clear the GUI settings for FlatCAM,\n" +"such as: layout, gui state, style, hdpi support etc." + +#: flatcamGUI/FlatCAMGUI.py:1332 +msgid "Apply" +msgstr "Apply" + +#: flatcamGUI/FlatCAMGUI.py:1335 +msgid "Apply the current preferences without saving to a file." +msgstr "Apply the current preferences without saving to a file." + +#: flatcamGUI/FlatCAMGUI.py:1342 +msgid "" +"Save the current settings in the 'current_defaults' file\n" +"which is the file storing the working default preferences." +msgstr "" +"Save the current settings in the 'current_defaults' file\n" +"which is the file storing the working default preferences." + +#: flatcamGUI/FlatCAMGUI.py:1350 +msgid "Will not save the changes and will close the preferences window." +msgstr "Will not save the changes and will close the preferences window." + +#: flatcamGUI/FlatCAMGUI.py:1719 +msgid "SHOW SHORTCUT LIST" +msgstr "SHOW SHORTCUT LIST" + +#: flatcamGUI/FlatCAMGUI.py:1719 +msgid "Switch to Project Tab" +msgstr "Switch to Project Tab" + +#: flatcamGUI/FlatCAMGUI.py:1719 +msgid "Switch to Selected Tab" +msgstr "Switch to Selected Tab" + +#: flatcamGUI/FlatCAMGUI.py:1720 +msgid "Switch to Tool Tab" +msgstr "Switch to Tool Tab" + +#: flatcamGUI/FlatCAMGUI.py:1721 +msgid "New Gerber" +msgstr "New Gerber" + +#: flatcamGUI/FlatCAMGUI.py:1721 +msgid "Edit Object (if selected)" +msgstr "Edit Object (if selected)" + +#: flatcamGUI/FlatCAMGUI.py:1721 +msgid "Jump to Coordinates" +msgstr "Jump to Coordinates" + +#: flatcamGUI/FlatCAMGUI.py:1722 +msgid "New Excellon" +msgstr "New Excellon" + +#: flatcamGUI/FlatCAMGUI.py:1722 +msgid "Move Obj" +msgstr "Move Obj" + +#: flatcamGUI/FlatCAMGUI.py:1722 +msgid "New Geometry" +msgstr "New Geometry" + +#: flatcamGUI/FlatCAMGUI.py:1722 +msgid "Change Units" +msgstr "Change Units" + +#: flatcamGUI/FlatCAMGUI.py:1723 +msgid "Open Properties Tool" +msgstr "Open Properties Tool" + +#: flatcamGUI/FlatCAMGUI.py:1723 +msgid "Rotate by 90 degree CW" +msgstr "Rotate by 90 degree CW" + +#: flatcamGUI/FlatCAMGUI.py:1723 +msgid "Shell Toggle" +msgstr "Shell Toggle" + +#: flatcamGUI/FlatCAMGUI.py:1724 +msgid "" +"Add a Tool (when in Geometry Selected Tab or in Tools NCC or Tools Paint)" +msgstr "" +"Add a Tool (when in Geometry Selected Tab or in Tools NCC or Tools Paint)" + +#: flatcamGUI/FlatCAMGUI.py:1725 +msgid "Flip on X_axis" +msgstr "Flip on X_axis" + +#: flatcamGUI/FlatCAMGUI.py:1725 +msgid "Flip on Y_axis" +msgstr "Flip on Y_axis" + +#: flatcamGUI/FlatCAMGUI.py:1728 +msgid "Copy Obj" +msgstr "Copy Obj" + +#: flatcamGUI/FlatCAMGUI.py:1728 +msgid "Open Tools Database" +msgstr "Open Tools Database" + +#: flatcamGUI/FlatCAMGUI.py:1729 +msgid "Open Excellon File" +msgstr "Open Excellon File" + +#: flatcamGUI/FlatCAMGUI.py:1729 +msgid "Open Gerber File" +msgstr "Open Gerber File" + +#: flatcamGUI/FlatCAMGUI.py:1729 +msgid "New Project" +msgstr "New Project" + +#: flatcamGUI/FlatCAMGUI.py:1730 flatcamTools/ToolPDF.py:42 +msgid "PDF Import Tool" +msgstr "PDF Import Tool" + +#: flatcamGUI/FlatCAMGUI.py:1730 +msgid "Save Project" +msgstr "Save Project" + +#: flatcamGUI/FlatCAMGUI.py:1730 +msgid "Toggle Plot Area" +msgstr "Toggle Plot Area" + +#: flatcamGUI/FlatCAMGUI.py:1733 +msgid "Copy Obj_Name" +msgstr "Copy Obj_Name" + +#: flatcamGUI/FlatCAMGUI.py:1734 +msgid "Toggle Code Editor" +msgstr "Toggle Code Editor" + +#: flatcamGUI/FlatCAMGUI.py:1734 +msgid "Toggle the axis" +msgstr "Toggle the axis" + +#: flatcamGUI/FlatCAMGUI.py:1734 flatcamGUI/FlatCAMGUI.py:1933 +#: flatcamGUI/FlatCAMGUI.py:2020 flatcamGUI/FlatCAMGUI.py:2142 +msgid "Distance Minimum Tool" +msgstr "Distance Minimum Tool" + +#: flatcamGUI/FlatCAMGUI.py:1735 +msgid "Open Preferences Window" +msgstr "Open Preferences Window" + +#: flatcamGUI/FlatCAMGUI.py:1736 +msgid "Rotate by 90 degree CCW" +msgstr "Rotate by 90 degree CCW" + +#: flatcamGUI/FlatCAMGUI.py:1736 +msgid "Run a Script" +msgstr "Run a Script" + +#: flatcamGUI/FlatCAMGUI.py:1736 +msgid "Toggle the workspace" +msgstr "Toggle the workspace" + +#: flatcamGUI/FlatCAMGUI.py:1736 +msgid "Skew on X axis" +msgstr "Skew on X axis" + +#: flatcamGUI/FlatCAMGUI.py:1737 +msgid "Skew on Y axis" +msgstr "Skew on Y axis" + +#: flatcamGUI/FlatCAMGUI.py:1740 +msgid "2-Sided PCB Tool" +msgstr "2-Sided PCB Tool" + +#: flatcamGUI/FlatCAMGUI.py:1740 +msgid "Transformations Tool" +msgstr "Transformations Tool" + +#: flatcamGUI/FlatCAMGUI.py:1742 +msgid "Solder Paste Dispensing Tool" +msgstr "Solder Paste Dispensing Tool" + +#: flatcamGUI/FlatCAMGUI.py:1743 +msgid "Film PCB Tool" +msgstr "Film PCB Tool" + +#: flatcamGUI/FlatCAMGUI.py:1743 +msgid "Non-Copper Clearing Tool" +msgstr "Non-Copper Clearing Tool" + +#: flatcamGUI/FlatCAMGUI.py:1744 +msgid "Paint Area Tool" +msgstr "Paint Area Tool" + +#: flatcamGUI/FlatCAMGUI.py:1744 +msgid "Rules Check Tool" +msgstr "Rules Check Tool" + +#: flatcamGUI/FlatCAMGUI.py:1745 +msgid "View File Source" +msgstr "View File Source" + +#: flatcamGUI/FlatCAMGUI.py:1746 +msgid "Cutout PCB Tool" +msgstr "Cutout PCB Tool" + +#: flatcamGUI/FlatCAMGUI.py:1746 +msgid "Enable all Plots" +msgstr "Enable all Plots" + +#: flatcamGUI/FlatCAMGUI.py:1746 +msgid "Disable all Plots" +msgstr "Disable all Plots" + +#: flatcamGUI/FlatCAMGUI.py:1746 +msgid "Disable Non-selected Plots" +msgstr "Disable Non-selected Plots" + +#: flatcamGUI/FlatCAMGUI.py:1747 +msgid "Toggle Full Screen" +msgstr "Toggle Full Screen" + +#: flatcamGUI/FlatCAMGUI.py:1750 +msgid "Abort current task (gracefully)" +msgstr "Abort current task (gracefully)" + +#: flatcamGUI/FlatCAMGUI.py:1753 +msgid "Save Project As" +msgstr "Save Project As" + +#: flatcamGUI/FlatCAMGUI.py:1754 +msgid "" +"Paste Special. Will convert a Windows path style to the one required in Tcl " +"Shell" +msgstr "" +"Paste Special. Will convert a Windows path style to the one required in Tcl " +"Shell" + +#: flatcamGUI/FlatCAMGUI.py:1757 +msgid "Open Online Manual" +msgstr "Open Online Manual" + +#: flatcamGUI/FlatCAMGUI.py:1758 +msgid "Open Online Tutorials" +msgstr "Open Online Tutorials" + +#: flatcamGUI/FlatCAMGUI.py:1758 +msgid "Refresh Plots" +msgstr "Refresh Plots" + +#: flatcamGUI/FlatCAMGUI.py:1758 flatcamTools/ToolSolderPaste.py:509 +msgid "Delete Object" +msgstr "Delete Object" + +#: flatcamGUI/FlatCAMGUI.py:1758 +msgid "Alternate: Delete Tool" +msgstr "Alternate: Delete Tool" + +#: flatcamGUI/FlatCAMGUI.py:1759 +msgid "(left to Key_1)Toggle Notebook Area (Left Side)" +msgstr "(left to Key_1)Toggle Notebook Area (Left Side)" + +#: flatcamGUI/FlatCAMGUI.py:1759 +msgid "En(Dis)able Obj Plot" +msgstr "En(Dis)able Obj Plot" + +#: flatcamGUI/FlatCAMGUI.py:1760 +msgid "Deselects all objects" +msgstr "Deselects all objects" + +#: flatcamGUI/FlatCAMGUI.py:1774 +msgid "Editor Shortcut list" +msgstr "Editor Shortcut list" + +#: flatcamGUI/FlatCAMGUI.py:1928 +msgid "GEOMETRY EDITOR" +msgstr "GEOMETRY EDITOR" + +#: flatcamGUI/FlatCAMGUI.py:1928 +msgid "Draw an Arc" +msgstr "Draw an Arc" + +#: flatcamGUI/FlatCAMGUI.py:1928 +msgid "Copy Geo Item" +msgstr "Copy Geo Item" + +#: flatcamGUI/FlatCAMGUI.py:1929 +msgid "Within Add Arc will toogle the ARC direction: CW or CCW" +msgstr "Within Add Arc will toogle the ARC direction: CW or CCW" + +#: flatcamGUI/FlatCAMGUI.py:1929 +msgid "Polygon Intersection Tool" +msgstr "Polygon Intersection Tool" + +#: flatcamGUI/FlatCAMGUI.py:1930 +msgid "Geo Paint Tool" +msgstr "Geo Paint Tool" + +#: flatcamGUI/FlatCAMGUI.py:1930 flatcamGUI/FlatCAMGUI.py:2019 +#: flatcamGUI/FlatCAMGUI.py:2139 +msgid "Jump to Location (x, y)" +msgstr "Jump to Location (x, y)" + +#: flatcamGUI/FlatCAMGUI.py:1930 +msgid "Toggle Corner Snap" +msgstr "Toggle Corner Snap" + +#: flatcamGUI/FlatCAMGUI.py:1930 +msgid "Move Geo Item" +msgstr "Move Geo Item" + +#: flatcamGUI/FlatCAMGUI.py:1931 +msgid "Within Add Arc will cycle through the ARC modes" +msgstr "Within Add Arc will cycle through the ARC modes" + +#: flatcamGUI/FlatCAMGUI.py:1931 +msgid "Draw a Polygon" +msgstr "Draw a Polygon" + +#: flatcamGUI/FlatCAMGUI.py:1931 +msgid "Draw a Circle" +msgstr "Draw a Circle" + +#: flatcamGUI/FlatCAMGUI.py:1932 +msgid "Draw a Path" +msgstr "Draw a Path" + +#: flatcamGUI/FlatCAMGUI.py:1932 +msgid "Draw Rectangle" +msgstr "Draw Rectangle" + +#: flatcamGUI/FlatCAMGUI.py:1932 +msgid "Polygon Subtraction Tool" +msgstr "Polygon Subtraction Tool" + +#: flatcamGUI/FlatCAMGUI.py:1932 +msgid "Add Text Tool" +msgstr "Add Text Tool" + +#: flatcamGUI/FlatCAMGUI.py:1933 +msgid "Polygon Union Tool" +msgstr "Polygon Union Tool" + +#: flatcamGUI/FlatCAMGUI.py:1933 +msgid "Flip shape on X axis" +msgstr "Flip shape on X axis" + +#: flatcamGUI/FlatCAMGUI.py:1933 +msgid "Flip shape on Y axis" +msgstr "Flip shape on Y axis" + +#: flatcamGUI/FlatCAMGUI.py:1934 +msgid "Skew shape on X axis" +msgstr "Skew shape on X axis" + +#: flatcamGUI/FlatCAMGUI.py:1934 +msgid "Skew shape on Y axis" +msgstr "Skew shape on Y axis" + +#: flatcamGUI/FlatCAMGUI.py:1934 +msgid "Editor Transformation Tool" +msgstr "Editor Transformation Tool" + +#: flatcamGUI/FlatCAMGUI.py:1935 +msgid "Offset shape on X axis" +msgstr "Offset shape on X axis" + +#: flatcamGUI/FlatCAMGUI.py:1935 +msgid "Offset shape on Y axis" +msgstr "Offset shape on Y axis" + +#: flatcamGUI/FlatCAMGUI.py:1936 flatcamGUI/FlatCAMGUI.py:2022 +#: flatcamGUI/FlatCAMGUI.py:2144 +msgid "Save Object and Exit Editor" +msgstr "Save Object and Exit Editor" + +#: flatcamGUI/FlatCAMGUI.py:1936 +msgid "Polygon Cut Tool" +msgstr "Polygon Cut Tool" + +#: flatcamGUI/FlatCAMGUI.py:1937 +msgid "Rotate Geometry" +msgstr "Rotate Geometry" + +#: flatcamGUI/FlatCAMGUI.py:1937 +msgid "Finish drawing for certain tools" +msgstr "Finish drawing for certain tools" + +#: flatcamGUI/FlatCAMGUI.py:1937 flatcamGUI/FlatCAMGUI.py:2022 +#: flatcamGUI/FlatCAMGUI.py:2142 +msgid "Abort and return to Select" +msgstr "Abort and return to Select" + +#: flatcamGUI/FlatCAMGUI.py:1938 flatcamGUI/FlatCAMGUI.py:2734 +msgid "Delete Shape" +msgstr "Delete Shape" + +#: flatcamGUI/FlatCAMGUI.py:2018 +msgid "EXCELLON EDITOR" +msgstr "EXCELLON EDITOR" + +#: flatcamGUI/FlatCAMGUI.py:2018 +msgid "Copy Drill(s)" +msgstr "Copy Drill(s)" + +#: flatcamGUI/FlatCAMGUI.py:2018 flatcamGUI/FlatCAMGUI.py:2268 +msgid "Add Drill" +msgstr "Add Drill" + +#: flatcamGUI/FlatCAMGUI.py:2019 +msgid "Move Drill(s)" +msgstr "Move Drill(s)" + +#: flatcamGUI/FlatCAMGUI.py:2020 +msgid "Add a new Tool" +msgstr "Add a new Tool" + +#: flatcamGUI/FlatCAMGUI.py:2021 +msgid "Delete Drill(s)" +msgstr "Delete Drill(s)" + +#: flatcamGUI/FlatCAMGUI.py:2021 +msgid "Alternate: Delete Tool(s)" +msgstr "Alternate: Delete Tool(s)" + +#: flatcamGUI/FlatCAMGUI.py:2138 +msgid "GERBER EDITOR" +msgstr "GERBER EDITOR" + +#: flatcamGUI/FlatCAMGUI.py:2138 +msgid "Add Disc" +msgstr "Add Disc" + +#: flatcamGUI/FlatCAMGUI.py:2138 +msgid "Add SemiDisc" +msgstr "Add SemiDisc" + +#: flatcamGUI/FlatCAMGUI.py:2140 +msgid "Within Track & Region Tools will cycle in REVERSE the bend modes" +msgstr "Within Track & Region Tools will cycle in REVERSE the bend modes" + +#: flatcamGUI/FlatCAMGUI.py:2141 +msgid "Within Track & Region Tools will cycle FORWARD the bend modes" +msgstr "Within Track & Region Tools will cycle FORWARD the bend modes" + +#: flatcamGUI/FlatCAMGUI.py:2142 +msgid "Alternate: Delete Apertures" +msgstr "Alternate: Delete Apertures" + +#: flatcamGUI/FlatCAMGUI.py:2143 +msgid "Eraser Tool" +msgstr "Eraser Tool" + +#: flatcamGUI/FlatCAMGUI.py:2144 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:220 +msgid "Mark Area Tool" +msgstr "Mark Area Tool" + +#: flatcamGUI/FlatCAMGUI.py:2144 +msgid "Poligonize Tool" +msgstr "Poligonize Tool" + +#: flatcamGUI/FlatCAMGUI.py:2144 +msgid "Transformation Tool" +msgstr "Transformation Tool" + +#: flatcamGUI/FlatCAMGUI.py:2161 +msgid "Toggle Visibility" +msgstr "Toggle Visibility" + +#: flatcamGUI/FlatCAMGUI.py:2167 +msgid "New" +msgstr "New" + +#: flatcamGUI/FlatCAMGUI.py:2169 flatcamGUI/ObjectUI.py:450 +#: flatcamObjects/FlatCAMGerber.py:239 flatcamObjects/FlatCAMGerber.py:327 +#: flatcamTools/ToolCalibration.py:631 flatcamTools/ToolCalibration.py:648 +#: flatcamTools/ToolCalibration.py:815 flatcamTools/ToolCopperThieving.py:144 +#: flatcamTools/ToolCopperThieving.py:158 +#: flatcamTools/ToolCopperThieving.py:604 flatcamTools/ToolCutOut.py:92 +#: flatcamTools/ToolDblSided.py:226 flatcamTools/ToolFilm.py:69 +#: flatcamTools/ToolFilm.py:102 flatcamTools/ToolFilm.py:549 +#: flatcamTools/ToolFilm.py:557 flatcamTools/ToolImage.py:49 +#: flatcamTools/ToolImage.py:271 flatcamTools/ToolNCC.py:95 +#: flatcamTools/ToolNCC.py:558 flatcamTools/ToolNCC.py:1300 +#: flatcamTools/ToolPaint.py:502 flatcamTools/ToolPaint.py:706 +#: flatcamTools/ToolPanelize.py:118 flatcamTools/ToolPanelize.py:374 +#: flatcamTools/ToolPanelize.py:391 +msgid "Geometry" +msgstr "Geometry" + +#: flatcamGUI/FlatCAMGUI.py:2173 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:99 +#: flatcamTools/ToolAlignObjects.py:74 flatcamTools/ToolAlignObjects.py:110 +#: flatcamTools/ToolCalibration.py:197 flatcamTools/ToolCalibration.py:631 +#: flatcamTools/ToolCalibration.py:648 flatcamTools/ToolCalibration.py:807 +#: flatcamTools/ToolCalibration.py:815 flatcamTools/ToolCopperThieving.py:144 +#: flatcamTools/ToolCopperThieving.py:158 +#: flatcamTools/ToolCopperThieving.py:604 flatcamTools/ToolDblSided.py:225 +#: flatcamTools/ToolFilm.py:359 flatcamTools/ToolNCC.py:558 +#: flatcamTools/ToolNCC.py:1300 flatcamTools/ToolPaint.py:502 +#: flatcamTools/ToolPaint.py:706 flatcamTools/ToolPanelize.py:374 +#: flatcamTools/ToolPunchGerber.py:149 flatcamTools/ToolPunchGerber.py:164 +msgid "Excellon" +msgstr "Excellon" + +#: flatcamGUI/FlatCAMGUI.py:2180 +msgid "Grids" +msgstr "Grids" + +#: flatcamGUI/FlatCAMGUI.py:2187 +msgid "Clear Plot" +msgstr "Clear Plot" + +#: flatcamGUI/FlatCAMGUI.py:2189 +msgid "Replot" +msgstr "Replot" + +#: flatcamGUI/FlatCAMGUI.py:2193 +msgid "Geo Editor" +msgstr "Geo Editor" + +#: flatcamGUI/FlatCAMGUI.py:2195 +msgid "Path" +msgstr "Path" + +#: flatcamGUI/FlatCAMGUI.py:2197 +msgid "Rectangle" +msgstr "Rectangle" + +#: flatcamGUI/FlatCAMGUI.py:2200 +msgid "Circle" +msgstr "Circle" + +#: flatcamGUI/FlatCAMGUI.py:2204 +msgid "Arc" +msgstr "Arc" + +#: flatcamGUI/FlatCAMGUI.py:2218 +msgid "Union" +msgstr "Union" + +#: flatcamGUI/FlatCAMGUI.py:2220 +msgid "Intersection" +msgstr "Intersection" + +#: flatcamGUI/FlatCAMGUI.py:2222 +msgid "Subtraction" +msgstr "Subtraction" + +#: flatcamGUI/FlatCAMGUI.py:2224 flatcamGUI/ObjectUI.py:2221 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:56 +msgid "Cut" +msgstr "Cut" + +#: flatcamGUI/FlatCAMGUI.py:2235 +msgid "Pad" +msgstr "Pad" + +#: flatcamGUI/FlatCAMGUI.py:2237 +msgid "Pad Array" +msgstr "Pad Array" + +#: flatcamGUI/FlatCAMGUI.py:2241 +msgid "Track" +msgstr "Track" + +#: flatcamGUI/FlatCAMGUI.py:2243 +msgid "Region" +msgstr "Region" + +#: flatcamGUI/FlatCAMGUI.py:2266 +msgid "Exc Editor" +msgstr "Exc Editor" + +#: flatcamGUI/FlatCAMGUI.py:2311 +msgid "" +"Relative measurement.\n" +"Reference is last click position" +msgstr "" +"Relative measurement.\n" +"Reference is last click position" + +#: flatcamGUI/FlatCAMGUI.py:2317 +msgid "" +"Absolute measurement.\n" +"Reference is (X=0, Y= 0) position" +msgstr "" +"Absolute measurement.\n" +"Reference is (X=0, Y= 0) position" + +#: flatcamGUI/FlatCAMGUI.py:2419 +msgid "Lock Toolbars" +msgstr "Lock Toolbars" + +#: flatcamGUI/FlatCAMGUI.py:2505 +msgid "FlatCAM Preferences Folder opened." +msgstr "FlatCAM Preferences Folder opened." + +#: flatcamGUI/FlatCAMGUI.py:2516 +msgid "Are you sure you want to delete the GUI Settings? \n" +msgstr "Are you sure you want to delete the GUI Settings? \n" + +#: flatcamGUI/FlatCAMGUI.py:2624 +msgid "&Cutout Tool" +msgstr "&Cutout Tool" + +#: flatcamGUI/FlatCAMGUI.py:2694 +msgid "Select 'Esc'" +msgstr "Select 'Esc'" + +#: flatcamGUI/FlatCAMGUI.py:2732 +msgid "Copy Objects" +msgstr "Copy Objects" + +#: flatcamGUI/FlatCAMGUI.py:2740 +msgid "Move Objects" +msgstr "Move Objects" + +#: flatcamGUI/FlatCAMGUI.py:3363 +msgid "" +"Please first select a geometry item to be cutted\n" +"then select the geometry item that will be cutted\n" +"out of the first item. In the end press ~X~ key or\n" +"the toolbar button." +msgstr "" +"Please first select a geometry item to be cutted\n" +"then select the geometry item that will be cutted\n" +"out of the first item. In the end press ~X~ key or\n" +"the toolbar button." + +#: flatcamGUI/FlatCAMGUI.py:3370 flatcamGUI/FlatCAMGUI.py:3532 +#: flatcamGUI/FlatCAMGUI.py:3577 flatcamGUI/FlatCAMGUI.py:3597 +msgid "Warning" +msgstr "Warning" + +#: flatcamGUI/FlatCAMGUI.py:3527 +msgid "" +"Please select geometry items \n" +"on which to perform Intersection Tool." +msgstr "" +"Please select geometry items \n" +"on which to perform Intersection Tool." + +#: flatcamGUI/FlatCAMGUI.py:3572 +msgid "" +"Please select geometry items \n" +"on which to perform Substraction Tool." +msgstr "" +"Please select geometry items \n" +"on which to perform Substraction Tool." + +#: flatcamGUI/FlatCAMGUI.py:3592 +msgid "" +"Please select geometry items \n" +"on which to perform union." +msgstr "" +"Please select geometry items \n" +"on which to perform union." + +#: flatcamGUI/FlatCAMGUI.py:3675 flatcamGUI/FlatCAMGUI.py:3890 +msgid "Cancelled. Nothing selected to delete." +msgstr "Cancelled. Nothing selected to delete." + +#: flatcamGUI/FlatCAMGUI.py:3759 flatcamGUI/FlatCAMGUI.py:4006 +msgid "Cancelled. Nothing selected to copy." +msgstr "Cancelled. Nothing selected to copy." + +#: flatcamGUI/FlatCAMGUI.py:3805 flatcamGUI/FlatCAMGUI.py:4035 +msgid "Cancelled. Nothing selected to move." +msgstr "Cancelled. Nothing selected to move." + +#: flatcamGUI/FlatCAMGUI.py:4061 +msgid "New Tool ..." +msgstr "New Tool ..." + +#: flatcamGUI/FlatCAMGUI.py:4062 flatcamTools/ToolNCC.py:924 +#: flatcamTools/ToolPaint.py:850 flatcamTools/ToolSolderPaste.py:560 +msgid "Enter a Tool Diameter" +msgstr "Enter a Tool Diameter" + +#: flatcamGUI/FlatCAMGUI.py:4074 +msgid "Adding Tool cancelled ..." +msgstr "Adding Tool cancelled ..." + +#: flatcamGUI/FlatCAMGUI.py:4088 +msgid "Distance Tool exit..." +msgstr "Distance Tool exit..." + +#: flatcamGUI/FlatCAMGUI.py:4323 flatcamGUI/FlatCAMGUI.py:4330 +msgid "Idle." +msgstr "Idle." + +#: flatcamGUI/FlatCAMGUI.py:4361 +msgid "Application started ..." +msgstr "Application started ..." + +#: flatcamGUI/FlatCAMGUI.py:4362 +msgid "Hello!" +msgstr "Hello!" + +#: flatcamGUI/FlatCAMGUI.py:4424 +msgid "Open Project ..." +msgstr "Open Project ..." + +#: flatcamGUI/FlatCAMGUI.py:4450 +msgid "Exit" +msgstr "Exit" + +#: flatcamGUI/GUIElements.py:2513 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:180 +#: flatcamTools/ToolDblSided.py:173 flatcamTools/ToolDblSided.py:388 +#: flatcamTools/ToolFilm.py:219 +msgid "Reference" +msgstr "Reference" + +#: flatcamGUI/GUIElements.py:2515 +msgid "" +"The reference can be:\n" +"- Absolute -> the reference point is point (0,0)\n" +"- Relative -> the reference point is the mouse position before Jump" +msgstr "" +"The reference can be:\n" +"- Absolute -> the reference point is point (0,0)\n" +"- Relative -> the reference point is the mouse position before Jump" + +#: flatcamGUI/GUIElements.py:2520 +msgid "Abs" +msgstr "Abs" + +#: flatcamGUI/GUIElements.py:2521 +msgid "Relative" +msgstr "Relative" + +#: flatcamGUI/GUIElements.py:2531 +msgid "Location" +msgstr "Location" + +#: flatcamGUI/GUIElements.py:2533 +msgid "" +"The Location value is a tuple (x,y).\n" +"If the reference is Absolute then the Jump will be at the position (x,y).\n" +"If the reference is Relative then the Jump will be at the (x,y) distance\n" +"from the current mouse location point." +msgstr "" +"The Location value is a tuple (x,y).\n" +"If the reference is Absolute then the Jump will be at the position (x,y).\n" +"If the reference is Relative then the Jump will be at the (x,y) distance\n" +"from the current mouse location point." + +#: flatcamGUI/GUIElements.py:2573 +msgid "Save Log" +msgstr "Save Log" + +#: flatcamGUI/GUIElements.py:2592 flatcamTools/ToolShell.py:278 +msgid "Type >help< to get started" +msgstr "Type >help< to get started" + +#: flatcamGUI/ObjectUI.py:38 +msgid "FlatCAM Object" +msgstr "FlatCAM Object" + +#: flatcamGUI/ObjectUI.py:78 +msgid "" +"BASIC is suitable for a beginner. Many parameters\n" +"are hidden from the user in this mode.\n" +"ADVANCED mode will make available all parameters.\n" +"\n" +"To change the application LEVEL, go to:\n" +"Edit -> Preferences -> General and check:\n" +"'APP. LEVEL' radio button." +msgstr "" +"BASIC is suitable for a beginner. Many parameters\n" +"are hidden from the user in this mode.\n" +"ADVANCED mode will make available all parameters.\n" +"\n" +"To change the application LEVEL, go to:\n" +"Edit -> Preferences -> General and check:\n" +"'APP. LEVEL' radio button." + +#: flatcamGUI/ObjectUI.py:111 +msgid "Geometrical transformations of the current object." +msgstr "Geometrical transformations of the current object." + +#: flatcamGUI/ObjectUI.py:120 +msgid "" +"Factor by which to multiply\n" +"geometric features of this object.\n" +"Expressions are allowed. E.g: 1/25.4" +msgstr "" +"Factor by which to multiply\n" +"geometric features of this object.\n" +"Expressions are allowed. E.g: 1/25.4" + +#: flatcamGUI/ObjectUI.py:127 +msgid "Perform scaling operation." +msgstr "Perform scaling operation." + +#: flatcamGUI/ObjectUI.py:138 +msgid "" +"Amount by which to move the object\n" +"in the x and y axes in (x, y) format.\n" +"Expressions are allowed. E.g: (1/3.2, 0.5*3)" +msgstr "" +"Amount by which to move the object\n" +"in the x and y axes in (x, y) format.\n" +"Expressions are allowed. E.g: (1/3.2, 0.5*3)" + +#: flatcamGUI/ObjectUI.py:145 +msgid "Perform the offset operation." +msgstr "Perform the offset operation." + +#: flatcamGUI/ObjectUI.py:178 +msgid "Gerber Object" +msgstr "Gerber Object" + +#: flatcamGUI/ObjectUI.py:187 flatcamGUI/ObjectUI.py:730 +#: flatcamGUI/ObjectUI.py:1426 flatcamGUI/ObjectUI.py:2205 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:30 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:33 +#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:31 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:31 +msgid "Plot Options" +msgstr "Plot Options" + +#: flatcamGUI/ObjectUI.py:193 flatcamGUI/ObjectUI.py:731 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:45 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:38 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:119 +#: flatcamTools/ToolCopperThieving.py:191 +msgid "Solid" +msgstr "Solid" + +#: flatcamGUI/ObjectUI.py:195 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:40 +msgid "Solid color polygons." +msgstr "Solid color polygons." + +#: flatcamGUI/ObjectUI.py:201 +msgid "Multi-Color" +msgstr "Multi-Color" + +#: flatcamGUI/ObjectUI.py:203 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:47 +msgid "Draw polygons in different colors." +msgstr "Draw polygons in different colors." + +#: flatcamGUI/ObjectUI.py:209 flatcamGUI/ObjectUI.py:769 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:39 +#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:35 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:52 +msgid "Plot" +msgstr "Plot" + +#: flatcamGUI/ObjectUI.py:211 flatcamGUI/ObjectUI.py:771 +#: flatcamGUI/ObjectUI.py:1486 flatcamGUI/ObjectUI.py:2315 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:41 +#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:37 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:54 +msgid "Plot (show) this object." +msgstr "Plot (show) this object." + +#: flatcamGUI/ObjectUI.py:239 +msgid "" +"Toggle the display of the Gerber Apertures Table.\n" +"When unchecked, it will delete all mark shapes\n" +"that are drawn on canvas." +msgstr "" +"Toggle the display of the Gerber Apertures Table.\n" +"When unchecked, it will delete all mark shapes\n" +"that are drawn on canvas." + +#: flatcamGUI/ObjectUI.py:249 +msgid "Mark All" +msgstr "Mark All" + +#: flatcamGUI/ObjectUI.py:251 +msgid "" +"When checked it will display all the apertures.\n" +"When unchecked, it will delete all mark shapes\n" +"that are drawn on canvas." +msgstr "" +"When checked it will display all the apertures.\n" +"When unchecked, it will delete all mark shapes\n" +"that are drawn on canvas." + +#: flatcamGUI/ObjectUI.py:279 +msgid "Mark the aperture instances on canvas." +msgstr "Mark the aperture instances on canvas." + +#: flatcamGUI/ObjectUI.py:291 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:32 +msgid "Isolation Routing" +msgstr "Isolation Routing" + +#: flatcamGUI/ObjectUI.py:293 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:34 +msgid "" +"Create a Geometry object with\n" +"toolpaths to cut outside polygons." +msgstr "" +"Create a Geometry object with\n" +"toolpaths to cut outside polygons." + +#: flatcamGUI/ObjectUI.py:311 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:69 +msgid "" +"Choose which tool to use for Gerber isolation:\n" +"'Circular' or 'V-shape'.\n" +"When the 'V-shape' is selected then the tool\n" +"diameter will depend on the chosen cut depth." +msgstr "" +"Choose which tool to use for Gerber isolation:\n" +"'Circular' or 'V-shape'.\n" +"When the 'V-shape' is selected then the tool\n" +"diameter will depend on the chosen cut depth." + +#: flatcamGUI/ObjectUI.py:317 +msgid "V-Shape" +msgstr "V-Shape" + +#: flatcamGUI/ObjectUI.py:323 flatcamGUI/ObjectUI.py:1672 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:81 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:72 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:78 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:85 +#: flatcamTools/ToolNCC.py:233 flatcamTools/ToolNCC.py:240 +#: flatcamTools/ToolPaint.py:216 +msgid "V-Tip Dia" +msgstr "V-Tip Dia" + +#: flatcamGUI/ObjectUI.py:325 flatcamGUI/ObjectUI.py:1675 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:83 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:74 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:80 +#: flatcamTools/ToolNCC.py:235 flatcamTools/ToolPaint.py:218 +msgid "The tip diameter for V-Shape Tool" +msgstr "The tip diameter for V-Shape Tool" + +#: flatcamGUI/ObjectUI.py:336 flatcamGUI/ObjectUI.py:1687 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:94 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:84 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:91 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:99 +#: flatcamTools/ToolNCC.py:246 flatcamTools/ToolNCC.py:254 +#: flatcamTools/ToolPaint.py:229 +msgid "V-Tip Angle" +msgstr "V-Tip Angle" + +#: flatcamGUI/ObjectUI.py:338 flatcamGUI/ObjectUI.py:1690 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:96 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:86 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:93 +#: flatcamTools/ToolNCC.py:248 flatcamTools/ToolPaint.py:231 +msgid "" +"The tip angle for V-Shape Tool.\n" +"In degree." +msgstr "" +"The tip angle for V-Shape Tool.\n" +"In degree." + +#: flatcamGUI/ObjectUI.py:352 flatcamGUI/ObjectUI.py:1706 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:50 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:109 +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:61 +#: flatcamObjects/FlatCAMGeometry.py:1174 flatcamTools/ToolCutOut.py:141 +msgid "" +"Cutting depth (negative)\n" +"below the copper surface." +msgstr "" +"Cutting depth (negative)\n" +"below the copper surface." + +#: flatcamGUI/ObjectUI.py:366 +msgid "" +"Diameter of the cutting tool.\n" +"If you want to have an isolation path\n" +"inside the actual shape of the Gerber\n" +"feature, use a negative value for\n" +"this parameter." +msgstr "" +"Diameter of the cutting tool.\n" +"If you want to have an isolation path\n" +"inside the actual shape of the Gerber\n" +"feature, use a negative value for\n" +"this parameter." + +#: flatcamGUI/ObjectUI.py:382 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:56 +msgid "# Passes" +msgstr "# Passes" + +#: flatcamGUI/ObjectUI.py:384 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:58 +msgid "" +"Width of the isolation gap in\n" +"number (integer) of tool widths." +msgstr "" +"Width of the isolation gap in\n" +"number (integer) of tool widths." + +#: flatcamGUI/ObjectUI.py:395 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:68 +msgid "Pass overlap" +msgstr "Pass overlap" + +#: flatcamGUI/ObjectUI.py:397 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:70 +msgid "How much (percentage) of the tool width to overlap each tool pass." +msgstr "How much (percentage) of the tool width to overlap each tool pass." + +#: flatcamGUI/ObjectUI.py:411 +#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:58 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:97 +msgid "" +"Milling type:\n" +"- climb / best for precision milling and to reduce tool usage\n" +"- conventional / useful when there is no backlash compensation" +msgstr "" +"Milling type:\n" +"- climb / best for precision milling and to reduce tool usage\n" +"- conventional / useful when there is no backlash compensation" + +#: flatcamGUI/ObjectUI.py:421 +msgid "Combine" +msgstr "Combine" + +#: flatcamGUI/ObjectUI.py:423 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:109 +msgid "Combine all passes into one object" +msgstr "Combine all passes into one object" + +#: flatcamGUI/ObjectUI.py:427 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:43 +msgid "\"Follow\"" +msgstr "\"Follow\"" + +#: flatcamGUI/ObjectUI.py:428 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:45 +msgid "" +"Generate a 'Follow' geometry.\n" +"This means that it will cut through\n" +"the middle of the trace." +msgstr "" +"Generate a 'Follow' geometry.\n" +"This means that it will cut through\n" +"the middle of the trace." + +#: flatcamGUI/ObjectUI.py:434 +msgid "Except" +msgstr "Except" + +#: flatcamGUI/ObjectUI.py:437 +msgid "" +"When the isolation geometry is generated,\n" +"by checking this, the area of the object below\n" +"will be subtracted from the isolation geometry." +msgstr "" +"When the isolation geometry is generated,\n" +"by checking this, the area of the object below\n" +"will be subtracted from the isolation geometry." + +#: flatcamGUI/ObjectUI.py:450 +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:97 +#: flatcamObjects/FlatCAMGerber.py:239 flatcamObjects/FlatCAMGerber.py:327 +#: flatcamTools/ToolAlignObjects.py:73 flatcamTools/ToolAlignObjects.py:109 +#: flatcamTools/ToolCalibration.py:196 flatcamTools/ToolCalibration.py:631 +#: flatcamTools/ToolCalibration.py:648 flatcamTools/ToolCalibration.py:807 +#: flatcamTools/ToolCalibration.py:815 flatcamTools/ToolCopperThieving.py:144 +#: flatcamTools/ToolCopperThieving.py:158 +#: flatcamTools/ToolCopperThieving.py:604 flatcamTools/ToolCutOut.py:91 +#: flatcamTools/ToolDblSided.py:224 flatcamTools/ToolFilm.py:69 +#: flatcamTools/ToolFilm.py:102 flatcamTools/ToolFilm.py:549 +#: flatcamTools/ToolFilm.py:557 flatcamTools/ToolImage.py:49 +#: flatcamTools/ToolImage.py:252 flatcamTools/ToolImage.py:273 +#: flatcamTools/ToolNCC.py:96 flatcamTools/ToolNCC.py:558 +#: flatcamTools/ToolNCC.py:1300 flatcamTools/ToolPaint.py:502 +#: flatcamTools/ToolPaint.py:706 flatcamTools/ToolPanelize.py:118 +#: flatcamTools/ToolPanelize.py:204 flatcamTools/ToolPanelize.py:374 +#: flatcamTools/ToolPanelize.py:391 +msgid "Gerber" +msgstr "Gerber" + +#: flatcamGUI/ObjectUI.py:457 flatcamTools/ToolNCC.py:86 +#: flatcamTools/ToolPaint.py:80 +msgid "Obj Type" +msgstr "Obj Type" + +#: flatcamGUI/ObjectUI.py:459 +msgid "" +"Specify the type of object to be excepted from isolation.\n" +"It can be of type: Gerber or Geometry.\n" +"What is selected here will dictate the kind\n" +"of objects that will populate the 'Object' combobox." +msgstr "" +"Specify the type of object to be excepted from isolation.\n" +"It can be of type: Gerber or Geometry.\n" +"What is selected here will dictate the kind\n" +"of objects that will populate the 'Object' combobox." + +#: flatcamGUI/ObjectUI.py:472 +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:48 +#: flatcamTools/ToolCalibration.py:186 flatcamTools/ToolNCC.py:109 +#: flatcamTools/ToolPaint.py:103 flatcamTools/ToolPanelize.py:100 +#: flatcamTools/ToolQRCode.py:78 +msgid "Object" +msgstr "Object" + +#: flatcamGUI/ObjectUI.py:473 +msgid "Object whose area will be removed from isolation geometry." +msgstr "Object whose area will be removed from isolation geometry." + +#: flatcamGUI/ObjectUI.py:480 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:82 +msgid "Scope" +msgstr "Scope" + +#: flatcamGUI/ObjectUI.py:482 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:84 +msgid "" +"Isolation scope. Choose what to isolate:\n" +"- 'All' -> Isolate all the polygons in the object\n" +"- 'Selection' -> Isolate a selection of polygons." +msgstr "" +"Isolation scope. Choose what to isolate:\n" +"- 'All' -> Isolate all the polygons in the object\n" +"- 'Selection' -> Isolate a selection of polygons." + +#: flatcamGUI/ObjectUI.py:487 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:307 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:89 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:311 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:258 +#: flatcamTools/ToolNCC.py:539 flatcamTools/ToolPaint.py:456 +msgid "Selection" +msgstr "Selection" + +#: flatcamGUI/ObjectUI.py:495 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:122 +msgid "Isolation Type" +msgstr "Isolation Type" + +#: flatcamGUI/ObjectUI.py:497 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:124 +msgid "" +"Choose how the isolation will be executed:\n" +"- 'Full' -> complete isolation of polygons\n" +"- 'Ext' -> will isolate only on the outside\n" +"- 'Int' -> will isolate only on the inside\n" +"'Exterior' isolation is almost always possible\n" +"(with the right tool) but 'Interior'\n" +"isolation can be done only when there is an opening\n" +"inside of the polygon (e.g polygon is a 'doughnut' shape)." +msgstr "" +"Choose how the isolation will be executed:\n" +"- 'Full' -> complete isolation of polygons\n" +"- 'Ext' -> will isolate only on the outside\n" +"- 'Int' -> will isolate only on the inside\n" +"'Exterior' isolation is almost always possible\n" +"(with the right tool) but 'Interior'\n" +"isolation can be done only when there is an opening\n" +"inside of the polygon (e.g polygon is a 'doughnut' shape)." + +#: flatcamGUI/ObjectUI.py:506 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:133 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:154 +msgid "Full" +msgstr "Full" + +#: flatcamGUI/ObjectUI.py:507 +msgid "Ext" +msgstr "Ext" + +#: flatcamGUI/ObjectUI.py:508 +msgid "Int" +msgstr "Int" + +#: flatcamGUI/ObjectUI.py:513 +msgid "Generate Isolation Geometry" +msgstr "Generate Isolation Geometry" + +#: flatcamGUI/ObjectUI.py:521 +msgid "" +"Create a Geometry object with toolpaths to cut \n" +"isolation outside, inside or on both sides of the\n" +"object. For a Gerber object outside means outside\n" +"of the Gerber feature and inside means inside of\n" +"the Gerber feature, if possible at all. This means\n" +"that only if the Gerber feature has openings inside, they\n" +"will be isolated. If what is wanted is to cut isolation\n" +"inside the actual Gerber feature, use a negative tool\n" +"diameter above." +msgstr "" +"Create a Geometry object with toolpaths to cut \n" +"isolation outside, inside or on both sides of the\n" +"object. For a Gerber object outside means outside\n" +"of the Gerber feature and inside means inside of\n" +"the Gerber feature, if possible at all. This means\n" +"that only if the Gerber feature has openings inside, they\n" +"will be isolated. If what is wanted is to cut isolation\n" +"inside the actual Gerber feature, use a negative tool\n" +"diameter above." + +#: flatcamGUI/ObjectUI.py:533 +msgid "Buffer Solid Geometry" +msgstr "Buffer Solid Geometry" + +#: flatcamGUI/ObjectUI.py:535 +msgid "" +"This button is shown only when the Gerber file\n" +"is loaded without buffering.\n" +"Clicking this will create the buffered geometry\n" +"required for isolation." +msgstr "" +"This button is shown only when the Gerber file\n" +"is loaded without buffering.\n" +"Clicking this will create the buffered geometry\n" +"required for isolation." + +#: flatcamGUI/ObjectUI.py:567 +msgid "Clear N-copper" +msgstr "Clear N-copper" + +#: flatcamGUI/ObjectUI.py:569 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:33 +msgid "" +"Create a Geometry object with\n" +"toolpaths to cut all non-copper regions." +msgstr "" +"Create a Geometry object with\n" +"toolpaths to cut all non-copper regions." + +#: flatcamGUI/ObjectUI.py:576 flatcamGUI/ObjectUI.py:2159 +#: flatcamTools/ToolNCC.py:599 +msgid "" +"Create the Geometry Object\n" +"for non-copper routing." +msgstr "" +"Create the Geometry Object\n" +"for non-copper routing." + +#: flatcamGUI/ObjectUI.py:589 +msgid "Board cutout" +msgstr "Board cutout" + +#: flatcamGUI/ObjectUI.py:591 +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:34 +msgid "" +"Create toolpaths to cut around\n" +"the PCB and separate it from\n" +"the original board." +msgstr "" +"Create toolpaths to cut around\n" +"the PCB and separate it from\n" +"the original board." + +#: flatcamGUI/ObjectUI.py:598 +msgid "" +"Generate the geometry for\n" +"the board cutout." +msgstr "" +"Generate the geometry for\n" +"the board cutout." + +#: flatcamGUI/ObjectUI.py:616 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:119 +msgid "Non-copper regions" +msgstr "Non-copper regions" + +#: flatcamGUI/ObjectUI.py:618 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:121 +msgid "" +"Create polygons covering the\n" +"areas without copper on the PCB.\n" +"Equivalent to the inverse of this\n" +"object. Can be used to remove all\n" +"copper from a specified region." +msgstr "" +"Create polygons covering the\n" +"areas without copper on the PCB.\n" +"Equivalent to the inverse of this\n" +"object. Can be used to remove all\n" +"copper from a specified region." + +#: flatcamGUI/ObjectUI.py:628 flatcamGUI/ObjectUI.py:669 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:133 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:166 +msgid "Boundary Margin" +msgstr "Boundary Margin" + +#: flatcamGUI/ObjectUI.py:630 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:135 +msgid "" +"Specify the edge of the PCB\n" +"by drawing a box around all\n" +"objects with this minimum\n" +"distance." +msgstr "" +"Specify the edge of the PCB\n" +"by drawing a box around all\n" +"objects with this minimum\n" +"distance." + +#: flatcamGUI/ObjectUI.py:645 flatcamGUI/ObjectUI.py:683 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:148 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:179 +msgid "Rounded Geo" +msgstr "Rounded Geo" + +#: flatcamGUI/ObjectUI.py:647 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:150 +msgid "Resulting geometry will have rounded corners." +msgstr "Resulting geometry will have rounded corners." + +#: flatcamGUI/ObjectUI.py:651 flatcamGUI/ObjectUI.py:692 +#: flatcamTools/ToolSolderPaste.py:134 +msgid "Generate Geo" +msgstr "Generate Geo" + +#: flatcamGUI/ObjectUI.py:661 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:160 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:137 +#: flatcamTools/ToolPanelize.py:101 flatcamTools/ToolQRCode.py:192 +msgid "Bounding Box" +msgstr "Bounding Box" + +#: flatcamGUI/ObjectUI.py:663 +msgid "" +"Create a geometry surrounding the Gerber object.\n" +"Square shape." +msgstr "" +"Create a geometry surrounding the Gerber object.\n" +"Square shape." + +#: flatcamGUI/ObjectUI.py:671 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:168 +msgid "" +"Distance of the edges of the box\n" +"to the nearest polygon." +msgstr "" +"Distance of the edges of the box\n" +"to the nearest polygon." + +#: flatcamGUI/ObjectUI.py:685 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:181 +msgid "" +"If the bounding box is \n" +"to have rounded corners\n" +"their radius is equal to\n" +"the margin." +msgstr "" +"If the bounding box is \n" +"to have rounded corners\n" +"their radius is equal to\n" +"the margin." + +#: flatcamGUI/ObjectUI.py:694 +msgid "Generate the Geometry object." +msgstr "Generate the Geometry object." + +#: flatcamGUI/ObjectUI.py:721 +msgid "Excellon Object" +msgstr "Excellon Object" + +#: flatcamGUI/ObjectUI.py:733 +msgid "Solid circles." +msgstr "Solid circles." + +#: flatcamGUI/ObjectUI.py:781 flatcamGUI/ObjectUI.py:876 +#: flatcamGUI/ObjectUI.py:2336 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:71 +#: flatcamTools/ToolProperties.py:166 +msgid "Drills" +msgstr "Drills" + +#: flatcamGUI/ObjectUI.py:781 flatcamGUI/ObjectUI.py:877 +#: flatcamGUI/ObjectUI.py:2336 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:158 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:72 +#: flatcamTools/ToolProperties.py:168 +msgid "Slots" +msgstr "Slots" + +#: flatcamGUI/ObjectUI.py:786 +msgid "" +"This is the Tool Number.\n" +"When ToolChange is checked, on toolchange event this value\n" +"will be showed as a T1, T2 ... Tn in the Machine Code.\n" +"\n" +"Here the tools are selected for G-code generation." +msgstr "" +"This is the Tool Number.\n" +"When ToolChange is checked, on toolchange event this value\n" +"will be showed as a T1, T2 ... Tn in the Machine Code.\n" +"\n" +"Here the tools are selected for G-code generation." + +#: flatcamGUI/ObjectUI.py:791 flatcamGUI/ObjectUI.py:1510 +#: flatcamTools/ToolPaint.py:142 +msgid "" +"Tool Diameter. It's value (in current FlatCAM units) \n" +"is the cut width into the material." +msgstr "" +"Tool Diameter. It's value (in current FlatCAM units) \n" +"is the cut width into the material." + +#: flatcamGUI/ObjectUI.py:794 +msgid "" +"The number of Drill holes. Holes that are drilled with\n" +"a drill bit." +msgstr "" +"The number of Drill holes. Holes that are drilled with\n" +"a drill bit." + +#: flatcamGUI/ObjectUI.py:797 +msgid "" +"The number of Slot holes. Holes that are created by\n" +"milling them with an endmill bit." +msgstr "" +"The number of Slot holes. Holes that are created by\n" +"milling them with an endmill bit." + +#: flatcamGUI/ObjectUI.py:800 +msgid "" +"Toggle display of the drills for the current tool.\n" +"This does not select the tools for G-code generation." +msgstr "" +"Toggle display of the drills for the current tool.\n" +"This does not select the tools for G-code generation." + +#: flatcamGUI/ObjectUI.py:818 flatcamGUI/ObjectUI.py:1662 +#: flatcamObjects/FlatCAMExcellon.py:514 flatcamObjects/FlatCAMExcellon.py:726 +#: flatcamObjects/FlatCAMExcellon.py:742 flatcamObjects/FlatCAMExcellon.py:746 +#: flatcamObjects/FlatCAMGeometry.py:323 flatcamObjects/FlatCAMGeometry.py:759 +#: flatcamObjects/FlatCAMGeometry.py:795 flatcamTools/ToolNCC.py:331 +#: flatcamTools/ToolNCC.py:797 flatcamTools/ToolNCC.py:811 +#: flatcamTools/ToolNCC.py:1196 flatcamTools/ToolPaint.py:314 +#: flatcamTools/ToolPaint.py:767 flatcamTools/ToolPaint.py:779 +#: flatcamTools/ToolPaint.py:1171 +msgid "Parameters for" +msgstr "Parameters for" + +#: flatcamGUI/ObjectUI.py:821 flatcamGUI/ObjectUI.py:1665 +#: flatcamTools/ToolNCC.py:334 flatcamTools/ToolPaint.py:317 +msgid "" +"The data used for creating GCode.\n" +"Each tool store it's own set of such data." +msgstr "" +"The data used for creating GCode.\n" +"Each tool store it's own set of such data." + +#: flatcamGUI/ObjectUI.py:847 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:48 +msgid "" +"Operation type:\n" +"- Drilling -> will drill the drills/slots associated with this tool\n" +"- Milling -> will mill the drills/slots" +msgstr "" +"Operation type:\n" +"- Drilling -> will drill the drills/slots associated with this tool\n" +"- Milling -> will mill the drills/slots" + +#: flatcamGUI/ObjectUI.py:853 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:54 +msgid "Drilling" +msgstr "Drilling" + +#: flatcamGUI/ObjectUI.py:854 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:55 +msgid "Milling" +msgstr "Milling" + +#: flatcamGUI/ObjectUI.py:869 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:64 +msgid "" +"Milling type:\n" +"- Drills -> will mill the drills associated with this tool\n" +"- Slots -> will mill the slots associated with this tool\n" +"- Both -> will mill both drills and mills or whatever is available" +msgstr "" +"Milling type:\n" +"- Drills -> will mill the drills associated with this tool\n" +"- Slots -> will mill the slots associated with this tool\n" +"- Both -> will mill both drills and mills or whatever is available" + +#: flatcamGUI/ObjectUI.py:878 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:73 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:210 +#: flatcamTools/ToolFilm.py:258 +msgid "Both" +msgstr "Both" + +#: flatcamGUI/ObjectUI.py:886 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:80 +msgid "Milling Diameter" +msgstr "Milling Diameter" + +#: flatcamGUI/ObjectUI.py:888 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:82 +msgid "The diameter of the tool who will do the milling" +msgstr "The diameter of the tool who will do the milling" + +#: flatcamGUI/ObjectUI.py:902 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:95 +msgid "" +"Drill depth (negative)\n" +"below the copper surface." +msgstr "" +"Drill depth (negative)\n" +"below the copper surface." + +#: flatcamGUI/ObjectUI.py:921 flatcamGUI/ObjectUI.py:1724 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:113 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:68 +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:79 +#: flatcamTools/ToolCutOut.py:159 +msgid "Multi-Depth" +msgstr "Multi-Depth" + +#: flatcamGUI/ObjectUI.py:924 flatcamGUI/ObjectUI.py:1727 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:116 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:71 +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:82 +#: flatcamTools/ToolCutOut.py:162 +msgid "" +"Use multiple passes to limit\n" +"the cut depth in each pass. Will\n" +"cut multiple times until Cut Z is\n" +"reached." +msgstr "" +"Use multiple passes to limit\n" +"the cut depth in each pass. Will\n" +"cut multiple times until Cut Z is\n" +"reached." + +#: flatcamGUI/ObjectUI.py:937 flatcamGUI/ObjectUI.py:1741 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:128 +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:94 +#: flatcamTools/ToolCutOut.py:176 +msgid "Depth of each pass (positive)." +msgstr "Depth of each pass (positive)." + +#: flatcamGUI/ObjectUI.py:948 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:136 +msgid "" +"Tool height when travelling\n" +"across the XY plane." +msgstr "" +"Tool height when travelling\n" +"across the XY plane." + +#: flatcamGUI/ObjectUI.py:969 flatcamGUI/ObjectUI.py:1771 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:187 +msgid "" +"Cutting speed in the XY\n" +"plane in units per minute" +msgstr "" +"Cutting speed in the XY\n" +"plane in units per minute" + +#: flatcamGUI/ObjectUI.py:984 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:209 +msgid "" +"Tool speed while drilling\n" +"(in units per minute).\n" +"So called 'Plunge' feedrate.\n" +"This is for linear move G01." +msgstr "" +"Tool speed while drilling\n" +"(in units per minute).\n" +"So called 'Plunge' feedrate.\n" +"This is for linear move G01." + +#: flatcamGUI/ObjectUI.py:999 flatcamGUI/ObjectUI.py:1798 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:80 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:64 +msgid "Feedrate Rapids" +msgstr "Feedrate Rapids" + +#: flatcamGUI/ObjectUI.py:1001 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:82 +msgid "" +"Tool speed while drilling\n" +"(in units per minute).\n" +"This is for the rapid move G00.\n" +"It is useful only for Marlin,\n" +"ignore for any other cases." +msgstr "" +"Tool speed while drilling\n" +"(in units per minute).\n" +"This is for the rapid move G00.\n" +"It is useful only for Marlin,\n" +"ignore for any other cases." + +#: flatcamGUI/ObjectUI.py:1021 flatcamGUI/ObjectUI.py:1818 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:82 +msgid "Re-cut" +msgstr "Re-cut" + +#: flatcamGUI/ObjectUI.py:1023 flatcamGUI/ObjectUI.py:1036 +#: flatcamGUI/ObjectUI.py:1820 flatcamGUI/ObjectUI.py:1832 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:84 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:96 +msgid "" +"In order to remove possible\n" +"copper leftovers where first cut\n" +"meet with last cut, we generate an\n" +"extended cut over the first cut section." +msgstr "" +"In order to remove possible\n" +"copper leftovers where first cut\n" +"meet with last cut, we generate an\n" +"extended cut over the first cut section." + +#: flatcamGUI/ObjectUI.py:1049 flatcamGUI/ObjectUI.py:1841 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:216 +#: flatcamObjects/FlatCAMExcellon.py:1332 +#: flatcamObjects/FlatCAMGeometry.py:1622 +msgid "Spindle speed" +msgstr "Spindle speed" + +#: flatcamGUI/ObjectUI.py:1051 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:224 +msgid "" +"Speed of the spindle\n" +"in RPM (optional)" +msgstr "" +"Speed of the spindle\n" +"in RPM (optional)" + +#: flatcamGUI/ObjectUI.py:1066 flatcamGUI/ObjectUI.py:1860 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:238 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:234 +msgid "" +"Pause to allow the spindle to reach its\n" +"speed before cutting." +msgstr "" +"Pause to allow the spindle to reach its\n" +"speed before cutting." + +#: flatcamGUI/ObjectUI.py:1077 flatcamGUI/ObjectUI.py:1870 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:246 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:239 +msgid "Number of time units for spindle to dwell." +msgstr "Number of time units for spindle to dwell." + +#: flatcamGUI/ObjectUI.py:1087 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:46 +msgid "Offset Z" +msgstr "Offset Z" + +#: flatcamGUI/ObjectUI.py:1089 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:48 +msgid "" +"Some drill bits (the larger ones) need to drill deeper\n" +"to create the desired exit hole diameter due of the tip shape.\n" +"The value here can compensate the Cut Z parameter." +msgstr "" +"Some drill bits (the larger ones) need to drill deeper\n" +"to create the desired exit hole diameter due of the tip shape.\n" +"The value here can compensate the Cut Z parameter." + +#: flatcamGUI/ObjectUI.py:1149 flatcamGUI/ObjectUI.py:1924 +#: flatcamTools/ToolNCC.py:492 flatcamTools/ToolPaint.py:423 +msgid "Apply parameters to all tools" +msgstr "Apply parameters to all tools" + +#: flatcamGUI/ObjectUI.py:1151 flatcamGUI/ObjectUI.py:1926 +#: flatcamTools/ToolNCC.py:494 flatcamTools/ToolPaint.py:425 +msgid "" +"The parameters in the current form will be applied\n" +"on all the tools from the Tool Table." +msgstr "" +"The parameters in the current form will be applied\n" +"on all the tools from the Tool Table." + +#: flatcamGUI/ObjectUI.py:1162 flatcamGUI/ObjectUI.py:1937 +#: flatcamTools/ToolNCC.py:505 flatcamTools/ToolPaint.py:436 +msgid "Common Parameters" +msgstr "Common Parameters" + +#: flatcamGUI/ObjectUI.py:1164 flatcamGUI/ObjectUI.py:1939 +#: flatcamTools/ToolNCC.py:507 flatcamTools/ToolPaint.py:438 +msgid "Parameters that are common for all tools." +msgstr "Parameters that are common for all tools." + +#: flatcamGUI/ObjectUI.py:1169 flatcamGUI/ObjectUI.py:1944 +msgid "Tool change Z" +msgstr "Tool change Z" + +#: flatcamGUI/ObjectUI.py:1171 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:154 +msgid "" +"Include tool-change sequence\n" +"in G-Code (Pause for tool change)." +msgstr "" +"Include tool-change sequence\n" +"in G-Code (Pause for tool change)." + +#: flatcamGUI/ObjectUI.py:1178 flatcamGUI/ObjectUI.py:1955 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:162 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:134 +msgid "" +"Z-axis position (height) for\n" +"tool change." +msgstr "" +"Z-axis position (height) for\n" +"tool change." + +#: flatcamGUI/ObjectUI.py:1195 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:71 +msgid "" +"Height of the tool just after start.\n" +"Delete the value if you don't need this feature." +msgstr "" +"Height of the tool just after start.\n" +"Delete the value if you don't need this feature." + +#: flatcamGUI/ObjectUI.py:1204 flatcamGUI/ObjectUI.py:1983 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:178 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:153 +msgid "End move Z" +msgstr "End move Z" + +#: flatcamGUI/ObjectUI.py:1206 flatcamGUI/ObjectUI.py:1985 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:180 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:155 +msgid "" +"Height of the tool after\n" +"the last move at the end of the job." +msgstr "" +"Height of the tool after\n" +"the last move at the end of the job." + +#: flatcamGUI/ObjectUI.py:1223 flatcamGUI/ObjectUI.py:2002 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:195 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:173 +msgid "End move X,Y" +msgstr "End move X,Y" + +#: flatcamGUI/ObjectUI.py:1225 flatcamGUI/ObjectUI.py:2004 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:197 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:175 +msgid "" +"End move X,Y position. In format (x,y).\n" +"If no value is entered then there is no move\n" +"on X,Y plane at the end of the job." +msgstr "" +"End move X,Y position. In format (x,y).\n" +"If no value is entered then there is no move\n" +"on X,Y plane at the end of the job." + +#: flatcamGUI/ObjectUI.py:1235 flatcamGUI/ObjectUI.py:1878 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:96 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:105 +msgid "Probe Z depth" +msgstr "Probe Z depth" + +#: flatcamGUI/ObjectUI.py:1237 flatcamGUI/ObjectUI.py:1880 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:98 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:107 +msgid "" +"The maximum depth that the probe is allowed\n" +"to probe. Negative value, in current units." +msgstr "" +"The maximum depth that the probe is allowed\n" +"to probe. Negative value, in current units." + +#: flatcamGUI/ObjectUI.py:1254 flatcamGUI/ObjectUI.py:1895 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:109 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:120 +msgid "Feedrate Probe" +msgstr "Feedrate Probe" + +#: flatcamGUI/ObjectUI.py:1256 flatcamGUI/ObjectUI.py:1897 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:111 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:122 +msgid "The feedrate used while the probe is probing." +msgstr "The feedrate used while the probe is probing." + +#: flatcamGUI/ObjectUI.py:1272 +msgid "Preprocessor E" +msgstr "Preprocessor E" + +#: flatcamGUI/ObjectUI.py:1274 +msgid "" +"The preprocessor JSON file that dictates\n" +"Gcode output for Excellon Objects." +msgstr "" +"The preprocessor JSON file that dictates\n" +"Gcode output for Excellon Objects." + +#: flatcamGUI/ObjectUI.py:1284 +msgid "Preprocessor G" +msgstr "Preprocessor G" + +#: flatcamGUI/ObjectUI.py:1286 +msgid "" +"The preprocessor JSON file that dictates\n" +"Gcode output for Geometry (Milling) Objects." +msgstr "" +"The preprocessor JSON file that dictates\n" +"Gcode output for Geometry (Milling) Objects." + +#: flatcamGUI/ObjectUI.py:1310 flatcamGUI/ObjectUI.py:2108 +msgid "" +"Add / Select at least one tool in the tool-table.\n" +"Click the # header to select all, or Ctrl + LMB\n" +"for custom selection of tools." +msgstr "" +"Add / Select at least one tool in the tool-table.\n" +"Click the # header to select all, or Ctrl + LMB\n" +"for custom selection of tools." + +#: flatcamGUI/ObjectUI.py:1318 flatcamGUI/ObjectUI.py:2115 +msgid "Generate CNCJob object" +msgstr "Generate CNCJob object" + +#: flatcamGUI/ObjectUI.py:1320 +msgid "" +"Generate the CNC Job.\n" +"If milling then an additional Geometry object will be created" +msgstr "" +"Generate the CNC Job.\n" +"If milling then an additional Geometry object will be created" + +#: flatcamGUI/ObjectUI.py:1337 +msgid "Milling Geometry" +msgstr "Milling Geometry" + +#: flatcamGUI/ObjectUI.py:1339 +msgid "" +"Create Geometry for milling holes.\n" +"Select from the Tools Table above the hole dias to be\n" +"milled. Use the # column to make the selection." +msgstr "" +"Create Geometry for milling holes.\n" +"Select from the Tools Table above the hole dias to be\n" +"milled. Use the # column to make the selection." + +#: flatcamGUI/ObjectUI.py:1347 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:296 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:45 +msgid "Diameter of the cutting tool." +msgstr "Diameter of the cutting tool." + +#: flatcamGUI/ObjectUI.py:1357 +msgid "Mill Drills" +msgstr "Mill Drills" + +#: flatcamGUI/ObjectUI.py:1359 +msgid "" +"Create the Geometry Object\n" +"for milling DRILLS toolpaths." +msgstr "" +"Create the Geometry Object\n" +"for milling DRILLS toolpaths." + +#: flatcamGUI/ObjectUI.py:1377 +msgid "Mill Slots" +msgstr "Mill Slots" + +#: flatcamGUI/ObjectUI.py:1379 +msgid "" +"Create the Geometry Object\n" +"for milling SLOTS toolpaths." +msgstr "" +"Create the Geometry Object\n" +"for milling SLOTS toolpaths." + +#: flatcamGUI/ObjectUI.py:1421 flatcamTools/ToolCutOut.py:319 +msgid "Geometry Object" +msgstr "Geometry Object" + +#: flatcamGUI/ObjectUI.py:1467 +msgid "" +"Tools in this Geometry object used for cutting.\n" +"The 'Offset' entry will set an offset for the cut.\n" +"'Offset' can be inside, outside, on path (none) and custom.\n" +"'Type' entry is only informative and it allow to know the \n" +"intent of using the current tool. \n" +"It can be Rough(ing), Finish(ing) or Iso(lation).\n" +"The 'Tool type'(TT) can be circular with 1 to 4 teeths(C1..C4),\n" +"ball(B), or V-Shaped(V). \n" +"When V-shaped is selected the 'Type' entry is automatically \n" +"set to Isolation, the CutZ parameter in the UI form is\n" +"grayed out and Cut Z is automatically calculated from the newly \n" +"showed UI form entries named V-Tip Dia and V-Tip Angle." +msgstr "" +"Tools in this Geometry object used for cutting.\n" +"The 'Offset' entry will set an offset for the cut.\n" +"'Offset' can be inside, outside, on path (none) and custom.\n" +"'Type' entry is only informative and it allow to know the \n" +"intent of using the current tool. \n" +"It can be Rough(ing), Finish(ing) or Iso(lation).\n" +"The 'Tool type'(TT) can be circular with 1 to 4 teeths(C1..C4),\n" +"ball(B), or V-Shaped(V). \n" +"When V-shaped is selected the 'Type' entry is automatically \n" +"set to Isolation, the CutZ parameter in the UI form is\n" +"grayed out and Cut Z is automatically calculated from the newly \n" +"showed UI form entries named V-Tip Dia and V-Tip Angle." + +#: flatcamGUI/ObjectUI.py:1484 flatcamGUI/ObjectUI.py:2313 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:40 +msgid "Plot Object" +msgstr "Plot Object" + +#: flatcamGUI/ObjectUI.py:1497 flatcamGUI/ObjectUI.py:2326 +#: flatcamGUI/ObjectUI.py:2336 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:138 +#: flatcamTools/ToolCopperThieving.py:221 +msgid "Dia" +msgstr "Dia" + +#: flatcamGUI/ObjectUI.py:1497 flatcamGUI/ObjectUI.py:2326 +#: flatcamTools/ToolNCC.py:132 flatcamTools/ToolPaint.py:128 +msgid "TT" +msgstr "TT" + +#: flatcamGUI/ObjectUI.py:1504 +msgid "" +"This is the Tool Number.\n" +"When ToolChange is checked, on toolchange event this value\n" +"will be showed as a T1, T2 ... Tn" +msgstr "" +"This is the Tool Number.\n" +"When ToolChange is checked, on toolchange event this value\n" +"will be showed as a T1, T2 ... Tn" + +#: flatcamGUI/ObjectUI.py:1515 +msgid "" +"The value for the Offset can be:\n" +"- Path -> There is no offset, the tool cut will be done through the geometry " +"line.\n" +"- In(side) -> The tool cut will follow the geometry inside. It will create a " +"'pocket'.\n" +"- Out(side) -> The tool cut will follow the geometry line on the outside." +msgstr "" +"The value for the Offset can be:\n" +"- Path -> There is no offset, the tool cut will be done through the geometry " +"line.\n" +"- In(side) -> The tool cut will follow the geometry inside. It will create a " +"'pocket'.\n" +"- Out(side) -> The tool cut will follow the geometry line on the outside." + +#: flatcamGUI/ObjectUI.py:1522 +msgid "" +"The (Operation) Type has only informative value. Usually the UI form " +"values \n" +"are choose based on the operation type and this will serve as a reminder.\n" +"Can be 'Roughing', 'Finishing' or 'Isolation'.\n" +"For Roughing we may choose a lower Feedrate and multiDepth cut.\n" +"For Finishing we may choose a higher Feedrate, without multiDepth.\n" +"For Isolation we need a lower Feedrate as it use a milling bit with a fine " +"tip." +msgstr "" +"The (Operation) Type has only informative value. Usually the UI form " +"values \n" +"are choose based on the operation type and this will serve as a reminder.\n" +"Can be 'Roughing', 'Finishing' or 'Isolation'.\n" +"For Roughing we may choose a lower Feedrate and multiDepth cut.\n" +"For Finishing we may choose a higher Feedrate, without multiDepth.\n" +"For Isolation we need a lower Feedrate as it use a milling bit with a fine " +"tip." + +#: flatcamGUI/ObjectUI.py:1531 +msgid "" +"The Tool Type (TT) can be:\n" +"- Circular with 1 ... 4 teeth -> it is informative only. Being circular the " +"cut width in material\n" +"is exactly the tool diameter.\n" +"- Ball -> informative only and make reference to the Ball type endmill.\n" +"- V-Shape -> it will disable Z-Cut parameter in the UI form and enable two " +"additional UI form\n" +"fields: V-Tip Dia and V-Tip Angle. Adjusting those two values will adjust " +"the Z-Cut parameter such\n" +"as the cut width into material will be equal with the value in the Tool " +"Diameter column of this table.\n" +"Choosing the V-Shape Tool Type automatically will select the Operation Type " +"as Isolation." +msgstr "" +"The Tool Type (TT) can be:\n" +"- Circular with 1 ... 4 teeth -> it is informative only. Being circular the " +"cut width in material\n" +"is exactly the tool diameter.\n" +"- Ball -> informative only and make reference to the Ball type endmill.\n" +"- V-Shape -> it will disable Z-Cut parameter in the UI form and enable two " +"additional UI form\n" +"fields: V-Tip Dia and V-Tip Angle. Adjusting those two values will adjust " +"the Z-Cut parameter such\n" +"as the cut width into material will be equal with the value in the Tool " +"Diameter column of this table.\n" +"Choosing the V-Shape Tool Type automatically will select the Operation Type " +"as Isolation." + +#: flatcamGUI/ObjectUI.py:1543 +msgid "" +"Plot column. It is visible only for MultiGeo geometries, meaning geometries " +"that holds the geometry\n" +"data into the tools. For those geometries, deleting the tool will delete the " +"geometry data also,\n" +"so be WARNED. From the checkboxes on each row it can be enabled/disabled the " +"plot on canvas\n" +"for the corresponding tool." +msgstr "" +"Plot column. It is visible only for MultiGeo geometries, meaning geometries " +"that holds the geometry\n" +"data into the tools. For those geometries, deleting the tool will delete the " +"geometry data also,\n" +"so be WARNED. From the checkboxes on each row it can be enabled/disabled the " +"plot on canvas\n" +"for the corresponding tool." + +#: flatcamGUI/ObjectUI.py:1561 +msgid "" +"The value to offset the cut when \n" +"the Offset type selected is 'Offset'.\n" +"The value can be positive for 'outside'\n" +"cut and negative for 'inside' cut." +msgstr "" +"The value to offset the cut when \n" +"the Offset type selected is 'Offset'.\n" +"The value can be positive for 'outside'\n" +"cut and negative for 'inside' cut." + +#: flatcamGUI/ObjectUI.py:1580 flatcamTools/ToolNCC.py:209 +#: flatcamTools/ToolNCC.py:923 flatcamTools/ToolPaint.py:192 +#: flatcamTools/ToolPaint.py:849 flatcamTools/ToolSolderPaste.py:559 +msgid "New Tool" +msgstr "New Tool" + +#: flatcamGUI/ObjectUI.py:1597 +msgid "" +"Add a new tool to the Tool Table\n" +"with the specified diameter." +msgstr "" +"Add a new tool to the Tool Table\n" +"with the specified diameter." + +#: flatcamGUI/ObjectUI.py:1602 flatcamTools/ToolNCC.py:300 +#: flatcamTools/ToolNCC.py:634 flatcamTools/ToolPaint.py:283 +#: flatcamTools/ToolPaint.py:679 +msgid "Add from DB" +msgstr "Add from DB" + +#: flatcamGUI/ObjectUI.py:1604 flatcamTools/ToolNCC.py:302 +#: flatcamTools/ToolPaint.py:285 +msgid "" +"Add a new tool to the Tool Table\n" +"from the Tool DataBase." +msgstr "" +"Add a new tool to the Tool Table\n" +"from the Tool DataBase." + +#: flatcamGUI/ObjectUI.py:1619 +msgid "" +"Copy a selection of tools in the Tool Table\n" +"by first selecting a row in the Tool Table." +msgstr "" +"Copy a selection of tools in the Tool Table\n" +"by first selecting a row in the Tool Table." + +#: flatcamGUI/ObjectUI.py:1625 +msgid "" +"Delete a selection of tools in the Tool Table\n" +"by first selecting a row in the Tool Table." +msgstr "" +"Delete a selection of tools in the Tool Table\n" +"by first selecting a row in the Tool Table." + +#: flatcamGUI/ObjectUI.py:1752 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:103 +msgid "" +"Height of the tool when\n" +"moving without cutting." +msgstr "" +"Height of the tool when\n" +"moving without cutting." + +#: flatcamGUI/ObjectUI.py:1785 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:202 +msgid "" +"Cutting speed in the XY\n" +"plane in units per minute.\n" +"It is called also Plunge." +msgstr "" +"Cutting speed in the XY\n" +"plane in units per minute.\n" +"It is called also Plunge." + +#: flatcamGUI/ObjectUI.py:1800 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:66 +msgid "" +"Cutting speed in the XY plane\n" +"(in units per minute).\n" +"This is for the rapid move G00.\n" +"It is useful only for Marlin,\n" +"ignore for any other cases." +msgstr "" +"Cutting speed in the XY plane\n" +"(in units per minute).\n" +"This is for the rapid move G00.\n" +"It is useful only for Marlin,\n" +"ignore for any other cases." + +#: flatcamGUI/ObjectUI.py:1844 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:219 +msgid "" +"Speed of the spindle in RPM (optional).\n" +"If LASER preprocessor is used,\n" +"this value is the power of laser." +msgstr "" +"Speed of the spindle in RPM (optional).\n" +"If LASER preprocessor is used,\n" +"this value is the power of laser." + +#: flatcamGUI/ObjectUI.py:1947 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:124 +msgid "" +"Include tool-change sequence\n" +"in the Machine Code (Pause for tool change)." +msgstr "" +"Include tool-change sequence\n" +"in the Machine Code (Pause for tool change)." + +#: flatcamGUI/ObjectUI.py:2016 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:256 +msgid "" +"The Preprocessor file that dictates\n" +"the Machine Code (like GCode, RML, HPGL) output." +msgstr "" +"The Preprocessor file that dictates\n" +"the Machine Code (like GCode, RML, HPGL) output." + +#: flatcamGUI/ObjectUI.py:2028 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:201 +msgid "Exclusion areas" +msgstr "Exclusion areas" + +#: flatcamGUI/ObjectUI.py:2031 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:204 +msgid "" +"Include exclusion areas.\n" +"In those areas the travel of the tools\n" +"is forbidden." +msgstr "" +"Include exclusion areas.\n" +"In those areas the travel of the tools\n" +"is forbidden." + +#: flatcamGUI/ObjectUI.py:2053 +#| msgid "Add Track" +msgid "Add area" +msgstr "Add area" + +#: flatcamGUI/ObjectUI.py:2054 +msgid "Add an Exclusion Area." +msgstr "Add an Exclusion Area." + +#: flatcamGUI/ObjectUI.py:2058 +#| msgid "Clearance" +msgid "Clear areas" +msgstr "Clear areas" + +#: flatcamGUI/ObjectUI.py:2059 +#| msgid "Delete all extensions from the list." +msgid "Delete all exclusion areas." +msgstr "Delete all exclusion areas." + +#: flatcamGUI/ObjectUI.py:2068 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:212 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:322 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:286 +#: flatcamTools/ToolNCC.py:578 flatcamTools/ToolPaint.py:522 +msgid "Shape" +msgstr "Shape" + +#: flatcamGUI/ObjectUI.py:2070 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:214 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:324 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:288 +#: flatcamTools/ToolNCC.py:580 flatcamTools/ToolPaint.py:524 +msgid "The kind of selection shape used for area selection." +msgstr "The kind of selection shape used for area selection." + +#: flatcamGUI/ObjectUI.py:2080 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:224 +msgid "Strategy" +msgstr "Strategy" + +#: flatcamGUI/ObjectUI.py:2081 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:225 +msgid "" +"The strategy followed when encountering an exclusion area.\n" +"Can be:\n" +"- Over -> when encountering the area, the tool will go to a set height\n" +"- Around -> will avoid the exclusion area by going around the area" +msgstr "" +"The strategy followed when encountering an exclusion area.\n" +"Can be:\n" +"- Over -> when encountering the area, the tool will go to a set height\n" +"- Around -> will avoid the exclusion area by going around the area" + +#: flatcamGUI/ObjectUI.py:2085 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:229 +#| msgid "Overlap" +msgid "Over" +msgstr "Over" + +#: flatcamGUI/ObjectUI.py:2086 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:230 +#| msgid "Round" +msgid "Around" +msgstr "Around" + +#: flatcamGUI/ObjectUI.py:2092 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:236 +#| msgid "Overlap" +msgid "Over Z" +msgstr "Over Z" + +#: flatcamGUI/ObjectUI.py:2093 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:237 +msgid "" +"The height Z to which the tool will rise in order to avoid\n" +"an interdiction area." +msgstr "" +"The height Z to which the tool will rise in order to avoid\n" +"an interdiction area." + +#: flatcamGUI/ObjectUI.py:2117 +msgid "Generate the CNC Job object." +msgstr "Generate the CNC Job object." + +#: flatcamGUI/ObjectUI.py:2134 +msgid "Launch Paint Tool in Tools Tab." +msgstr "Launch Paint Tool in Tools Tab." + +#: flatcamGUI/ObjectUI.py:2142 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:35 +msgid "" +"Creates tool paths to cover the\n" +"whole area of a polygon (remove\n" +"all copper). You will be asked\n" +"to click on the desired polygon." +msgstr "" +"Creates tool paths to cover the\n" +"whole area of a polygon (remove\n" +"all copper). You will be asked\n" +"to click on the desired polygon." + +#: flatcamGUI/ObjectUI.py:2197 +msgid "CNC Job Object" +msgstr "CNC Job Object" + +#: flatcamGUI/ObjectUI.py:2208 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:45 +msgid "Plot kind" +msgstr "Plot kind" + +#: flatcamGUI/ObjectUI.py:2211 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:47 +msgid "" +"This selects the kind of geometries on the canvas to plot.\n" +"Those can be either of type 'Travel' which means the moves\n" +"above the work piece or it can be of type 'Cut',\n" +"which means the moves that cut into the material." +msgstr "" +"This selects the kind of geometries on the canvas to plot.\n" +"Those can be either of type 'Travel' which means the moves\n" +"above the work piece or it can be of type 'Cut',\n" +"which means the moves that cut into the material." + +#: flatcamGUI/ObjectUI.py:2220 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:55 +msgid "Travel" +msgstr "Travel" + +#: flatcamGUI/ObjectUI.py:2224 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:64 +msgid "Display Annotation" +msgstr "Display Annotation" + +#: flatcamGUI/ObjectUI.py:2226 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:66 +msgid "" +"This selects if to display text annotation on the plot.\n" +"When checked it will display numbers in order for each end\n" +"of a travel line." +msgstr "" +"This selects if to display text annotation on the plot.\n" +"When checked it will display numbers in order for each end\n" +"of a travel line." + +#: flatcamGUI/ObjectUI.py:2241 +msgid "Travelled dist." +msgstr "Travelled dist." + +#: flatcamGUI/ObjectUI.py:2243 flatcamGUI/ObjectUI.py:2248 +msgid "" +"This is the total travelled distance on X-Y plane.\n" +"In current units." +msgstr "" +"This is the total travelled distance on X-Y plane.\n" +"In current units." + +#: flatcamGUI/ObjectUI.py:2253 +msgid "Estimated time" +msgstr "Estimated time" + +#: flatcamGUI/ObjectUI.py:2255 flatcamGUI/ObjectUI.py:2260 +msgid "" +"This is the estimated time to do the routing/drilling,\n" +"without the time spent in ToolChange events." +msgstr "" +"This is the estimated time to do the routing/drilling,\n" +"without the time spent in ToolChange events." + +#: flatcamGUI/ObjectUI.py:2295 +msgid "CNC Tools Table" +msgstr "CNC Tools Table" + +#: flatcamGUI/ObjectUI.py:2298 +msgid "" +"Tools in this CNCJob object used for cutting.\n" +"The tool diameter is used for plotting on canvas.\n" +"The 'Offset' entry will set an offset for the cut.\n" +"'Offset' can be inside, outside, on path (none) and custom.\n" +"'Type' entry is only informative and it allow to know the \n" +"intent of using the current tool. \n" +"It can be Rough(ing), Finish(ing) or Iso(lation).\n" +"The 'Tool type'(TT) can be circular with 1 to 4 teeths(C1..C4),\n" +"ball(B), or V-Shaped(V)." +msgstr "" +"Tools in this CNCJob object used for cutting.\n" +"The tool diameter is used for plotting on canvas.\n" +"The 'Offset' entry will set an offset for the cut.\n" +"'Offset' can be inside, outside, on path (none) and custom.\n" +"'Type' entry is only informative and it allow to know the \n" +"intent of using the current tool. \n" +"It can be Rough(ing), Finish(ing) or Iso(lation).\n" +"The 'Tool type'(TT) can be circular with 1 to 4 teeths(C1..C4),\n" +"ball(B), or V-Shaped(V)." + +#: flatcamGUI/ObjectUI.py:2326 flatcamGUI/ObjectUI.py:2337 +msgid "P" +msgstr "P" + +#: flatcamGUI/ObjectUI.py:2347 +msgid "Update Plot" +msgstr "Update Plot" + +#: flatcamGUI/ObjectUI.py:2349 +msgid "Update the plot." +msgstr "Update the plot." + +#: flatcamGUI/ObjectUI.py:2356 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:30 +msgid "Export CNC Code" +msgstr "Export CNC Code" + +#: flatcamGUI/ObjectUI.py:2358 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:32 +#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:33 +msgid "" +"Export and save G-Code to\n" +"make this object to a file." +msgstr "" +"Export and save G-Code to\n" +"make this object to a file." + +#: flatcamGUI/ObjectUI.py:2364 +msgid "Prepend to CNC Code" +msgstr "Prepend to CNC Code" + +#: flatcamGUI/ObjectUI.py:2366 flatcamGUI/ObjectUI.py:2373 +#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:49 +msgid "" +"Type here any G-Code commands you would\n" +"like to add at the beginning of the G-Code file." +msgstr "" +"Type here any G-Code commands you would\n" +"like to add at the beginning of the G-Code file." + +#: flatcamGUI/ObjectUI.py:2379 +msgid "Append to CNC Code" +msgstr "Append to CNC Code" + +#: flatcamGUI/ObjectUI.py:2381 flatcamGUI/ObjectUI.py:2389 +#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:65 +msgid "" +"Type here any G-Code commands you would\n" +"like to append to the generated file.\n" +"I.e.: M2 (End of program)" +msgstr "" +"Type here any G-Code commands you would\n" +"like to append to the generated file.\n" +"I.e.: M2 (End of program)" + +#: flatcamGUI/ObjectUI.py:2403 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:38 +msgid "Toolchange G-Code" +msgstr "Toolchange G-Code" + +#: flatcamGUI/ObjectUI.py:2406 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:41 +msgid "" +"Type here any G-Code commands you would\n" +"like to be executed when Toolchange event is encountered.\n" +"This will constitute a Custom Toolchange GCode,\n" +"or a Toolchange Macro.\n" +"The FlatCAM variables are surrounded by '%' symbol.\n" +"\n" +"WARNING: it can be used only with a preprocessor file\n" +"that has 'toolchange_custom' in it's name and this is built\n" +"having as template the 'Toolchange Custom' posprocessor file." +msgstr "" +"Type here any G-Code commands you would\n" +"like to be executed when Toolchange event is encountered.\n" +"This will constitute a Custom Toolchange GCode,\n" +"or a Toolchange Macro.\n" +"The FlatCAM variables are surrounded by '%' symbol.\n" +"\n" +"WARNING: it can be used only with a preprocessor file\n" +"that has 'toolchange_custom' in it's name and this is built\n" +"having as template the 'Toolchange Custom' posprocessor file." + +#: flatcamGUI/ObjectUI.py:2421 +msgid "" +"Type here any G-Code commands you would\n" +"like to be executed when Toolchange event is encountered.\n" +"This will constitute a Custom Toolchange GCode,\n" +"or a Toolchange Macro.\n" +"The FlatCAM variables are surrounded by '%' symbol.\n" +"WARNING: it can be used only with a preprocessor file\n" +"that has 'toolchange_custom' in it's name." +msgstr "" +"Type here any G-Code commands you would\n" +"like to be executed when Toolchange event is encountered.\n" +"This will constitute a Custom Toolchange GCode,\n" +"or a Toolchange Macro.\n" +"The FlatCAM variables are surrounded by '%' symbol.\n" +"WARNING: it can be used only with a preprocessor file\n" +"that has 'toolchange_custom' in it's name." + +#: flatcamGUI/ObjectUI.py:2436 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:80 +msgid "Use Toolchange Macro" +msgstr "Use Toolchange Macro" + +#: flatcamGUI/ObjectUI.py:2438 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:82 +msgid "" +"Check this box if you want to use\n" +"a Custom Toolchange GCode (macro)." +msgstr "" +"Check this box if you want to use\n" +"a Custom Toolchange GCode (macro)." + +#: flatcamGUI/ObjectUI.py:2446 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:94 +msgid "" +"A list of the FlatCAM variables that can be used\n" +"in the Toolchange event.\n" +"They have to be surrounded by the '%' symbol" +msgstr "" +"A list of the FlatCAM variables that can be used\n" +"in the Toolchange event.\n" +"They have to be surrounded by the '%' symbol" + +#: flatcamGUI/ObjectUI.py:2453 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:101 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:30 +#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:31 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:31 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:37 +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:36 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:36 +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:36 +#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:31 +#: flatcamGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:31 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:36 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:31 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:30 +#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:31 +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:32 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:31 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:31 +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:31 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:31 +#: flatcamGUI/preferences/tools/ToolsSubPrefGroupUI.py:31 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:31 +#: flatcamTools/ToolCopperThieving.py:89 flatcamTools/ToolFiducials.py:149 +#: flatcamTools/ToolInvertGerber.py:82 +msgid "Parameters" +msgstr "Parameters" + +#: flatcamGUI/ObjectUI.py:2456 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:106 +msgid "FlatCAM CNC parameters" +msgstr "FlatCAM CNC parameters" + +#: flatcamGUI/ObjectUI.py:2457 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:111 +msgid "tool number" +msgstr "tool number" + +#: flatcamGUI/ObjectUI.py:2458 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:112 +msgid "tool diameter" +msgstr "tool diameter" + +#: flatcamGUI/ObjectUI.py:2459 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:113 +msgid "for Excellon, total number of drills" +msgstr "for Excellon, total number of drills" + +#: flatcamGUI/ObjectUI.py:2461 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:115 +msgid "X coord for Toolchange" +msgstr "X coord for Toolchange" + +#: flatcamGUI/ObjectUI.py:2462 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:116 +msgid "Y coord for Toolchange" +msgstr "Y coord for Toolchange" + +#: flatcamGUI/ObjectUI.py:2463 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:118 +msgid "Z coord for Toolchange" +msgstr "Z coord for Toolchange" + +#: flatcamGUI/ObjectUI.py:2464 +msgid "depth where to cut" +msgstr "depth where to cut" + +#: flatcamGUI/ObjectUI.py:2465 +msgid "height where to travel" +msgstr "height where to travel" + +#: flatcamGUI/ObjectUI.py:2466 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:121 +msgid "the step value for multidepth cut" +msgstr "the step value for multidepth cut" + +#: flatcamGUI/ObjectUI.py:2468 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:123 +msgid "the value for the spindle speed" +msgstr "the value for the spindle speed" + +#: flatcamGUI/ObjectUI.py:2470 +msgid "time to dwell to allow the spindle to reach it's set RPM" +msgstr "time to dwell to allow the spindle to reach it's set RPM" + +#: flatcamGUI/ObjectUI.py:2486 +msgid "View CNC Code" +msgstr "View CNC Code" + +#: flatcamGUI/ObjectUI.py:2488 +msgid "" +"Opens TAB to view/modify/print G-Code\n" +"file." +msgstr "" +"Opens TAB to view/modify/print G-Code\n" +"file." + +#: flatcamGUI/ObjectUI.py:2493 +msgid "Save CNC Code" +msgstr "Save CNC Code" + +#: flatcamGUI/ObjectUI.py:2495 +msgid "" +"Opens dialog to save G-Code\n" +"file." +msgstr "" +"Opens dialog to save G-Code\n" +"file." + +#: flatcamGUI/ObjectUI.py:2529 +msgid "Script Object" +msgstr "Script Object" + +#: flatcamGUI/ObjectUI.py:2549 flatcamGUI/ObjectUI.py:2623 +msgid "Auto Completer" +msgstr "Auto Completer" + +#: flatcamGUI/ObjectUI.py:2551 +msgid "This selects if the auto completer is enabled in the Script Editor." +msgstr "This selects if the auto completer is enabled in the Script Editor." + +#: flatcamGUI/ObjectUI.py:2596 +msgid "Document Object" +msgstr "Document Object" + +#: flatcamGUI/ObjectUI.py:2625 +msgid "This selects if the auto completer is enabled in the Document Editor." +msgstr "This selects if the auto completer is enabled in the Document Editor." + +#: flatcamGUI/ObjectUI.py:2643 +msgid "Font Type" +msgstr "Font Type" + +#: flatcamGUI/ObjectUI.py:2660 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:197 +msgid "Font Size" +msgstr "Font Size" + +#: flatcamGUI/ObjectUI.py:2696 +msgid "Alignment" +msgstr "Alignment" + +#: flatcamGUI/ObjectUI.py:2701 +msgid "Align Left" +msgstr "Align Left" + +#: flatcamGUI/ObjectUI.py:2711 +msgid "Align Right" +msgstr "Align Right" + +#: flatcamGUI/ObjectUI.py:2716 +msgid "Justify" +msgstr "Justify" + +#: flatcamGUI/ObjectUI.py:2723 +msgid "Font Color" +msgstr "Font Color" + +#: flatcamGUI/ObjectUI.py:2725 +msgid "Set the font color for the selected text" +msgstr "Set the font color for the selected text" + +#: flatcamGUI/ObjectUI.py:2739 +msgid "Selection Color" +msgstr "Selection Color" + +#: flatcamGUI/ObjectUI.py:2741 +msgid "Set the selection color when doing text selection." +msgstr "Set the selection color when doing text selection." + +#: flatcamGUI/ObjectUI.py:2755 +msgid "Tab Size" +msgstr "Tab Size" + +#: flatcamGUI/ObjectUI.py:2757 +msgid "Set the tab size. In pixels. Default value is 80 pixels." +msgstr "Set the tab size. In pixels. Default value is 80 pixels." + +#: flatcamGUI/PlotCanvasLegacy.py:1299 +msgid "" +"Could not annotate due of a difference between the number of text elements " +"and the number of text positions." +msgstr "" +"Could not annotate due of a difference between the number of text elements " +"and the number of text positions." + +#: flatcamGUI/preferences/PreferencesUIManager.py:911 +msgid "Preferences applied." +msgstr "Preferences applied." + +#: flatcamGUI/preferences/PreferencesUIManager.py:975 +msgid "Preferences closed without saving." +msgstr "Preferences closed without saving." + +#: flatcamGUI/preferences/PreferencesUIManager.py:987 +msgid "Preferences default values are restored." +msgstr "Preferences default values are restored." + +#: flatcamGUI/preferences/PreferencesUIManager.py:1022 +#: flatcamGUI/preferences/PreferencesUIManager.py:1131 +msgid "Preferences saved." +msgstr "Preferences saved." + +#: flatcamGUI/preferences/PreferencesUIManager.py:1072 +msgid "Preferences edited but not saved." +msgstr "Preferences edited but not saved." + +#: flatcamGUI/preferences/PreferencesUIManager.py:1117 +msgid "" +"One or more values are changed.\n" +"Do you want to save the Preferences?" +msgstr "" +"One or more values are changed.\n" +"Do you want to save the Preferences?" + +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:27 +msgid "CNC Job Adv. Options" +msgstr "CNC Job Adv. Options" + +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:64 +msgid "" +"Type here any G-Code commands you would like to be executed when Toolchange " +"event is encountered.\n" +"This will constitute a Custom Toolchange GCode, or a Toolchange Macro.\n" +"The FlatCAM variables are surrounded by '%' symbol.\n" +"WARNING: it can be used only with a preprocessor file that has " +"'toolchange_custom' in it's name." +msgstr "" +"Type here any G-Code commands you would like to be executed when Toolchange " +"event is encountered.\n" +"This will constitute a Custom Toolchange GCode, or a Toolchange Macro.\n" +"The FlatCAM variables are surrounded by '%' symbol.\n" +"WARNING: it can be used only with a preprocessor file that has " +"'toolchange_custom' in it's name." + +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:119 +msgid "Z depth for the cut" +msgstr "Z depth for the cut" + +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:120 +msgid "Z height for travel" +msgstr "Z height for travel" + +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:126 +msgid "dwelltime = time to dwell to allow the spindle to reach it's set RPM" +msgstr "dwelltime = time to dwell to allow the spindle to reach it's set RPM" + +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:145 +msgid "Annotation Size" +msgstr "Annotation Size" + +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:147 +msgid "The font size of the annotation text. In pixels." +msgstr "The font size of the annotation text. In pixels." + +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:157 +msgid "Annotation Color" +msgstr "Annotation Color" + +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:159 +msgid "Set the font color for the annotation texts." +msgstr "Set the font color for the annotation texts." + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:26 +msgid "CNC Job General" +msgstr "CNC Job General" + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:77 +#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:47 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:59 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:45 +msgid "Circle Steps" +msgstr "Circle Steps" + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:79 +msgid "" +"The number of circle steps for GCode \n" +"circle and arc shapes linear approximation." +msgstr "" +"The number of circle steps for GCode \n" +"circle and arc shapes linear approximation." + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:88 +msgid "Travel dia" +msgstr "Travel dia" + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:90 +msgid "" +"The width of the travel lines to be\n" +"rendered in the plot." +msgstr "" +"The width of the travel lines to be\n" +"rendered in the plot." + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:103 +msgid "G-code Decimals" +msgstr "G-code Decimals" + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:106 +#: flatcamTools/ToolFiducials.py:74 +msgid "Coordinates" +msgstr "Coordinates" + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:108 +msgid "" +"The number of decimals to be used for \n" +"the X, Y, Z coordinates in CNC code (GCODE, etc.)" +msgstr "" +"The number of decimals to be used for \n" +"the X, Y, Z coordinates in CNC code (GCODE, etc.)" + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:119 +#: flatcamTools/ToolProperties.py:519 +msgid "Feedrate" +msgstr "Feedrate" + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:121 +msgid "" +"The number of decimals to be used for \n" +"the Feedrate parameter in CNC code (GCODE, etc.)" +msgstr "" +"The number of decimals to be used for \n" +"the Feedrate parameter in CNC code (GCODE, etc.)" + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:132 +msgid "Coordinates type" +msgstr "Coordinates type" + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:134 +msgid "" +"The type of coordinates to be used in Gcode.\n" +"Can be:\n" +"- Absolute G90 -> the reference is the origin x=0, y=0\n" +"- Incremental G91 -> the reference is the previous position" +msgstr "" +"The type of coordinates to be used in Gcode.\n" +"Can be:\n" +"- Absolute G90 -> the reference is the origin x=0, y=0\n" +"- Incremental G91 -> the reference is the previous position" + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:140 +msgid "Absolute G90" +msgstr "Absolute G90" + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:141 +msgid "Incremental G91" +msgstr "Incremental G91" + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:151 +msgid "Force Windows style line-ending" +msgstr "Force Windows style line-ending" + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:153 +msgid "" +"When checked will force a Windows style line-ending\n" +"(\\r\\n) on non-Windows OS's." +msgstr "" +"When checked will force a Windows style line-ending\n" +"(\\r\\n) on non-Windows OS's." + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:165 +msgid "Travel Line Color" +msgstr "Travel Line Color" + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:169 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:235 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:262 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:154 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:220 +#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:84 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:153 +#: flatcamTools/ToolRulesCheck.py:186 +msgid "Outline" +msgstr "Outline" + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:171 +msgid "Set the travel line color for plotted objects." +msgstr "Set the travel line color for plotted objects." + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:186 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:252 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:279 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:170 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:237 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:170 +msgid "Fill" +msgstr "Fill" + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:188 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:254 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:281 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:172 +msgid "" +"Set the fill color for plotted objects.\n" +"First 6 digits are the color and the last 2\n" +"digits are for alpha (transparency) level." +msgstr "" +"Set the fill color for plotted objects.\n" +"First 6 digits are the color and the last 2\n" +"digits are for alpha (transparency) level." + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:205 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:298 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:190 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:257 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:189 +msgid "Alpha" +msgstr "Alpha" + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:207 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:300 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:191 +msgid "Set the fill transparency for plotted objects." +msgstr "Set the fill transparency for plotted objects." + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:231 +msgid "CNCJob Object Color" +msgstr "CNCJob Object Color" + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:237 +msgid "Set the color for plotted objects." +msgstr "Set the color for plotted objects." + +#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:27 +msgid "CNC Job Options" +msgstr "CNC Job Options" + +#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:31 +msgid "Export G-Code" +msgstr "Export G-Code" + +#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:47 +msgid "Prepend to G-Code" +msgstr "Prepend to G-Code" + +#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:56 +msgid "" +"Type here any G-Code commands you would like to add at the beginning of the " +"G-Code file." +msgstr "" +"Type here any G-Code commands you would like to add at the beginning of the " +"G-Code file." + +#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:63 +msgid "Append to G-Code" +msgstr "Append to G-Code" + +#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:73 +msgid "" +"Type here any G-Code commands you would like to append to the generated " +"file.\n" +"I.e.: M2 (End of program)" +msgstr "" +"Type here any G-Code commands you would like to append to the generated " +"file.\n" +"I.e.: M2 (End of program)" + +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:27 +msgid "Excellon Adv. Options" +msgstr "Excellon Adv. Options" + +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:34 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:33 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:31 +msgid "Advanced Options" +msgstr "Advanced Options" + +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:36 +msgid "" +"A list of Excellon advanced parameters.\n" +"Those parameters are available only for\n" +"Advanced App. Level." +msgstr "" +"A list of Excellon advanced parameters.\n" +"Those parameters are available only for\n" +"Advanced App. Level." + +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:59 +msgid "Toolchange X,Y" +msgstr "Toolchange X,Y" + +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:61 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:47 +msgid "Toolchange X,Y position." +msgstr "Toolchange X,Y position." + +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:121 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:134 +msgid "Spindle direction" +msgstr "Spindle direction" + +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:123 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:136 +msgid "" +"This sets the direction that the spindle is rotating.\n" +"It can be either:\n" +"- CW = clockwise or\n" +"- CCW = counter clockwise" +msgstr "" +"This sets the direction that the spindle is rotating.\n" +"It can be either:\n" +"- CW = clockwise or\n" +"- CCW = counter clockwise" + +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:134 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:148 +msgid "Fast Plunge" +msgstr "Fast Plunge" + +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:136 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:150 +msgid "" +"By checking this, the vertical move from\n" +"Z_Toolchange to Z_move is done with G0,\n" +"meaning the fastest speed available.\n" +"WARNING: the move is done at Toolchange X,Y coords." +msgstr "" +"By checking this, the vertical move from\n" +"Z_Toolchange to Z_move is done with G0,\n" +"meaning the fastest speed available.\n" +"WARNING: the move is done at Toolchange X,Y coords." + +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:143 +msgid "Fast Retract" +msgstr "Fast Retract" + +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:145 +msgid "" +"Exit hole strategy.\n" +" - When uncheked, while exiting the drilled hole the drill bit\n" +"will travel slow, with set feedrate (G1), up to zero depth and then\n" +"travel as fast as possible (G0) to the Z Move (travel height).\n" +" - When checked the travel from Z cut (cut depth) to Z_move\n" +"(travel height) is done as fast as possible (G0) in one move." +msgstr "" +"Exit hole strategy.\n" +" - When uncheked, while exiting the drilled hole the drill bit\n" +"will travel slow, with set feedrate (G1), up to zero depth and then\n" +"travel as fast as possible (G0) to the Z Move (travel height).\n" +" - When checked the travel from Z cut (cut depth) to Z_move\n" +"(travel height) is done as fast as possible (G0) in one move." + +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:32 +msgid "A list of Excellon Editor parameters." +msgstr "A list of Excellon Editor parameters." + +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:40 +#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:41 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:41 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:194 +msgid "Selection limit" +msgstr "Selection limit" + +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:42 +msgid "" +"Set the number of selected Excellon geometry\n" +"items above which the utility geometry\n" +"becomes just a selection rectangle.\n" +"Increases the performance when moving a\n" +"large number of geometric elements." +msgstr "" +"Set the number of selected Excellon geometry\n" +"items above which the utility geometry\n" +"becomes just a selection rectangle.\n" +"Increases the performance when moving a\n" +"large number of geometric elements." + +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:55 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:117 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:123 +msgid "New Dia" +msgstr "New Dia" + +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:80 +msgid "Linear Drill Array" +msgstr "Linear Drill Array" + +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:84 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:232 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:120 +msgid "Linear Direction" +msgstr "Linear Direction" + +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:126 +msgid "Circular Drill Array" +msgstr "Circular Drill Array" + +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:130 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:280 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:164 +msgid "Circular Direction" +msgstr "Circular Direction" + +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:132 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:282 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:166 +msgid "" +"Direction for circular array.\n" +"Can be CW = clockwise or CCW = counter clockwise." +msgstr "" +"Direction for circular array.\n" +"Can be CW = clockwise or CCW = counter clockwise." + +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:143 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:293 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:177 +msgid "Circular Angle" +msgstr "Circular Angle" + +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:196 +msgid "" +"Angle at which the slot is placed.\n" +"The precision is of max 2 decimals.\n" +"Min value is: -359.99 degrees.\n" +"Max value is: 360.00 degrees." +msgstr "" +"Angle at which the slot is placed.\n" +"The precision is of max 2 decimals.\n" +"Min value is: -359.99 degrees.\n" +"Max value is: 360.00 degrees." + +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:215 +msgid "Linear Slot Array" +msgstr "Linear Slot Array" + +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:276 +msgid "Circular Slot Array" +msgstr "Circular Slot Array" + +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:26 +msgid "Excellon Export" +msgstr "Excellon Export" + +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:30 +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:31 +msgid "Export Options" +msgstr "Export Options" + +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:32 +msgid "" +"The parameters set here are used in the file exported\n" +"when using the File -> Export -> Export Excellon menu entry." +msgstr "" +"The parameters set here are used in the file exported\n" +"when using the File -> Export -> Export Excellon menu entry." + +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:41 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:163 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:39 +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:42 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:82 +#: flatcamTools/ToolDistance.py:56 flatcamTools/ToolDistanceMin.py:50 +#: flatcamTools/ToolPcbWizard.py:127 flatcamTools/ToolProperties.py:154 +msgid "Units" +msgstr "Units" + +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:43 +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:49 +msgid "The units used in the Excellon file." +msgstr "The units used in the Excellon file." + +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:46 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:87 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:173 +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:47 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:87 +#: flatcamTools/ToolCalculators.py:61 flatcamTools/ToolPcbWizard.py:125 +msgid "INCH" +msgstr "INCH" + +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:47 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:174 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:43 +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:48 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:88 +#: flatcamTools/ToolCalculators.py:62 flatcamTools/ToolPcbWizard.py:126 +msgid "MM" +msgstr "MM" + +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:55 +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:56 +msgid "Int/Decimals" +msgstr "Int/Decimals" + +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:57 +msgid "" +"The NC drill files, usually named Excellon files\n" +"are files that can be found in different formats.\n" +"Here we set the format used when the provided\n" +"coordinates are not using period." +msgstr "" +"The NC drill files, usually named Excellon files\n" +"are files that can be found in different formats.\n" +"Here we set the format used when the provided\n" +"coordinates are not using period." + +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:69 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:95 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:124 +msgid "" +"This numbers signify the number of digits in\n" +"the whole part of Excellon coordinates." +msgstr "" +"This numbers signify the number of digits in\n" +"the whole part of Excellon coordinates." + +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:82 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:108 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:137 +msgid "" +"This numbers signify the number of digits in\n" +"the decimal part of Excellon coordinates." +msgstr "" +"This numbers signify the number of digits in\n" +"the decimal part of Excellon coordinates." + +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:91 +msgid "Format" +msgstr "Format" + +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:93 +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:103 +msgid "" +"Select the kind of coordinates format used.\n" +"Coordinates can be saved with decimal point or without.\n" +"When there is no decimal point, it is required to specify\n" +"the number of digits for integer part and the number of decimals.\n" +"Also it will have to be specified if LZ = leading zeros are kept\n" +"or TZ = trailing zeros are kept." +msgstr "" +"Select the kind of coordinates format used.\n" +"Coordinates can be saved with decimal point or without.\n" +"When there is no decimal point, it is required to specify\n" +"the number of digits for integer part and the number of decimals.\n" +"Also it will have to be specified if LZ = leading zeros are kept\n" +"or TZ = trailing zeros are kept." + +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:100 +msgid "Decimal" +msgstr "Decimal" + +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:101 +msgid "No-Decimal" +msgstr "No-Decimal" + +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:114 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:145 +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:96 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:97 +msgid "Zeros" +msgstr "Zeros" + +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:117 +msgid "" +"This sets the type of Excellon zeros.\n" +"If LZ then Leading Zeros are kept and\n" +"Trailing Zeros are removed.\n" +"If TZ is checked then Trailing Zeros are kept\n" +"and Leading Zeros are removed." +msgstr "" +"This sets the type of Excellon zeros.\n" +"If LZ then Leading Zeros are kept and\n" +"Trailing Zeros are removed.\n" +"If TZ is checked then Trailing Zeros are kept\n" +"and Leading Zeros are removed." + +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:124 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:158 +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:106 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:107 +#: flatcamTools/ToolPcbWizard.py:111 +msgid "LZ" +msgstr "LZ" + +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:125 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:159 +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:107 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:108 +#: flatcamTools/ToolPcbWizard.py:112 +msgid "TZ" +msgstr "TZ" + +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:127 +msgid "" +"This sets the default type of Excellon zeros.\n" +"If LZ then Leading Zeros are kept and\n" +"Trailing Zeros are removed.\n" +"If TZ is checked then Trailing Zeros are kept\n" +"and Leading Zeros are removed." +msgstr "" +"This sets the default type of Excellon zeros.\n" +"If LZ then Leading Zeros are kept and\n" +"Trailing Zeros are removed.\n" +"If TZ is checked then Trailing Zeros are kept\n" +"and Leading Zeros are removed." + +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:137 +msgid "Slot type" +msgstr "Slot type" + +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:140 +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:150 +msgid "" +"This sets how the slots will be exported.\n" +"If ROUTED then the slots will be routed\n" +"using M15/M16 commands.\n" +"If DRILLED(G85) the slots will be exported\n" +"using the Drilled slot command (G85)." +msgstr "" +"This sets how the slots will be exported.\n" +"If ROUTED then the slots will be routed\n" +"using M15/M16 commands.\n" +"If DRILLED(G85) the slots will be exported\n" +"using the Drilled slot command (G85)." + +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:147 +msgid "Routed" +msgstr "Routed" + +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:148 +msgid "Drilled(G85)" +msgstr "Drilled(G85)" + +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:29 +msgid "Excellon General" +msgstr "Excellon General" + +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:62 +msgid "Excellon Format" +msgstr "Excellon Format" + +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:64 +msgid "" +"The NC drill files, usually named Excellon files\n" +"are files that can be found in different formats.\n" +"Here we set the format used when the provided\n" +"coordinates are not using period.\n" +"\n" +"Possible presets:\n" +"\n" +"PROTEUS 3:3 MM LZ\n" +"DipTrace 5:2 MM TZ\n" +"DipTrace 4:3 MM LZ\n" +"\n" +"EAGLE 3:3 MM TZ\n" +"EAGLE 4:3 MM TZ\n" +"EAGLE 2:5 INCH TZ\n" +"EAGLE 3:5 INCH TZ\n" +"\n" +"ALTIUM 2:4 INCH LZ\n" +"Sprint Layout 2:4 INCH LZ\n" +"KiCAD 3:5 INCH TZ" +msgstr "" +"The NC drill files, usually named Excellon files\n" +"are files that can be found in different formats.\n" +"Here we set the format used when the provided\n" +"coordinates are not using period.\n" +"\n" +"Possible presets:\n" +"\n" +"PROTEUS 3:3 MM LZ\n" +"DipTrace 5:2 MM TZ\n" +"DipTrace 4:3 MM LZ\n" +"\n" +"EAGLE 3:3 MM TZ\n" +"EAGLE 4:3 MM TZ\n" +"EAGLE 2:5 INCH TZ\n" +"EAGLE 3:5 INCH TZ\n" +"\n" +"ALTIUM 2:4 INCH LZ\n" +"Sprint Layout 2:4 INCH LZ\n" +"KiCAD 3:5 INCH TZ" + +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:88 +msgid "Default values for INCH are 2:4" +msgstr "Default values for INCH are 2:4" + +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:116 +msgid "METRIC" +msgstr "METRIC" + +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:117 +msgid "Default values for METRIC are 3:3" +msgstr "Default values for METRIC are 3:3" + +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:148 +msgid "" +"This sets the type of Excellon zeros.\n" +"If LZ then Leading Zeros are kept and\n" +"Trailing Zeros are removed.\n" +"If TZ is checked then Trailing Zeros are kept\n" +"and Leading Zeros are removed.\n" +"\n" +"This is used when there is no information\n" +"stored in the Excellon file." +msgstr "" +"This sets the type of Excellon zeros.\n" +"If LZ then Leading Zeros are kept and\n" +"Trailing Zeros are removed.\n" +"If TZ is checked then Trailing Zeros are kept\n" +"and Leading Zeros are removed.\n" +"\n" +"This is used when there is no information\n" +"stored in the Excellon file." + +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:166 +msgid "" +"This sets the default units of Excellon files.\n" +"If it is not detected in the parsed file the value here\n" +"will be used.Some Excellon files don't have an header\n" +"therefore this parameter will be used." +msgstr "" +"This sets the default units of Excellon files.\n" +"If it is not detected in the parsed file the value here\n" +"will be used.Some Excellon files don't have an header\n" +"therefore this parameter will be used." + +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:176 +msgid "" +"This sets the units of Excellon files.\n" +"Some Excellon files don't have an header\n" +"therefore this parameter will be used." +msgstr "" +"This sets the units of Excellon files.\n" +"Some Excellon files don't have an header\n" +"therefore this parameter will be used." + +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:184 +msgid "Update Export settings" +msgstr "Update Export settings" + +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:201 +msgid "Excellon Optimization" +msgstr "Excellon Optimization" + +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:204 +msgid "Algorithm:" +msgstr "Algorithm:" + +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:206 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:222 +msgid "" +"This sets the optimization type for the Excellon drill path.\n" +"If <> is checked then Google OR-Tools algorithm with\n" +"MetaHeuristic Guided Local Path is used. Default search time is 3sec.\n" +"If <> is checked then Google OR-Tools Basic algorithm is used.\n" +"If <> is checked then Travelling Salesman algorithm is used for\n" +"drill path optimization.\n" +"\n" +"If this control is disabled, then FlatCAM works in 32bit mode and it uses\n" +"Travelling Salesman algorithm for path optimization." +msgstr "" +"This sets the optimization type for the Excellon drill path.\n" +"If <> is checked then Google OR-Tools algorithm with\n" +"MetaHeuristic Guided Local Path is used. Default search time is 3sec.\n" +"If <> is checked then Google OR-Tools Basic algorithm is used.\n" +"If <> is checked then Travelling Salesman algorithm is used for\n" +"drill path optimization.\n" +"\n" +"If this control is disabled, then FlatCAM works in 32bit mode and it uses\n" +"Travelling Salesman algorithm for path optimization." + +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:217 +msgid "MetaHeuristic" +msgstr "MetaHeuristic" + +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:218 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:104 +#: flatcamObjects/FlatCAMExcellon.py:614 flatcamObjects/FlatCAMGeometry.py:510 +#: flatcamObjects/FlatCAMGerber.py:251 +msgid "Basic" +msgstr "Basic" + +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:219 +msgid "TSA" +msgstr "TSA" + +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:236 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:245 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:237 +msgid "Duration" +msgstr "Duration" + +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:239 +msgid "" +"When OR-Tools Metaheuristic (MH) is enabled there is a\n" +"maximum threshold for how much time is spent doing the\n" +"path optimization. This max duration is set here.\n" +"In seconds." +msgstr "" +"When OR-Tools Metaheuristic (MH) is enabled there is a\n" +"maximum threshold for how much time is spent doing the\n" +"path optimization. This max duration is set here.\n" +"In seconds." + +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:258 +msgid "Excellon Object Color" +msgstr "Excellon Object Color" + +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:264 +#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:86 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:155 +msgid "Set the line color for plotted objects." +msgstr "Set the line color for plotted objects." + +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:29 +msgid "Excellon Options" +msgstr "Excellon Options" + +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:33 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:34 +msgid "Create CNC Job" +msgstr "Create CNC Job" + +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:35 +msgid "" +"Parameters used to create a CNC Job object\n" +"for this drill object." +msgstr "" +"Parameters used to create a CNC Job object\n" +"for this drill object." + +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:152 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:121 +msgid "Tool change" +msgstr "Tool change" + +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:236 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:232 +msgid "Enable Dwell" +msgstr "Enable Dwell" + +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:259 +msgid "" +"The preprocessor JSON file that dictates\n" +"Gcode output." +msgstr "" +"The preprocessor JSON file that dictates\n" +"Gcode output." + +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:270 +msgid "Gcode" +msgstr "Gcode" + +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:272 +msgid "" +"Choose what to use for GCode generation:\n" +"'Drills', 'Slots' or 'Both'.\n" +"When choosing 'Slots' or 'Both', slots will be\n" +"converted to drills." +msgstr "" +"Choose what to use for GCode generation:\n" +"'Drills', 'Slots' or 'Both'.\n" +"When choosing 'Slots' or 'Both', slots will be\n" +"converted to drills." + +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:288 +msgid "Mill Holes" +msgstr "Mill Holes" + +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:290 +msgid "Create Geometry for milling holes." +msgstr "Create Geometry for milling holes." + +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:294 +msgid "Drill Tool dia" +msgstr "Drill Tool dia" + +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:305 +msgid "Slot Tool dia" +msgstr "Slot Tool dia" + +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:307 +msgid "" +"Diameter of the cutting tool\n" +"when milling slots." +msgstr "" +"Diameter of the cutting tool\n" +"when milling slots." + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:28 +msgid "App Settings" +msgstr "App Settings" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:49 +msgid "Grid Settings" +msgstr "Grid Settings" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:53 +msgid "X value" +msgstr "X value" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:55 +msgid "This is the Grid snap value on X axis." +msgstr "This is the Grid snap value on X axis." + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:65 +msgid "Y value" +msgstr "Y value" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:67 +msgid "This is the Grid snap value on Y axis." +msgstr "This is the Grid snap value on Y axis." + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:77 +msgid "Snap Max" +msgstr "Snap Max" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:92 +msgid "Workspace Settings" +msgstr "Workspace Settings" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:95 +msgid "Active" +msgstr "Active" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:97 +msgid "" +"Draw a delimiting rectangle on canvas.\n" +"The purpose is to illustrate the limits for our work." +msgstr "" +"Draw a delimiting rectangle on canvas.\n" +"The purpose is to illustrate the limits for our work." + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:105 +msgid "" +"Select the type of rectangle to be used on canvas,\n" +"as valid workspace." +msgstr "" +"Select the type of rectangle to be used on canvas,\n" +"as valid workspace." + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:171 +msgid "Orientation" +msgstr "Orientation" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:172 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:239 +#: flatcamTools/ToolFilm.py:422 +msgid "" +"Can be:\n" +"- Portrait\n" +"- Landscape" +msgstr "" +"Can be:\n" +"- Portrait\n" +"- Landscape" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:176 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:243 +#: flatcamTools/ToolFilm.py:426 +msgid "Portrait" +msgstr "Portrait" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:177 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:244 +#: flatcamTools/ToolFilm.py:427 +msgid "Landscape" +msgstr "Landscape" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:201 +msgid "Notebook" +msgstr "Notebook" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:203 +msgid "" +"This sets the font size for the elements found in the Notebook.\n" +"The notebook is the collapsible area in the left side of the GUI,\n" +"and include the Project, Selected and Tool tabs." +msgstr "" +"This sets the font size for the elements found in the Notebook.\n" +"The notebook is the collapsible area in the left side of the GUI,\n" +"and include the Project, Selected and Tool tabs." + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:222 +msgid "Axis" +msgstr "Axis" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:224 +msgid "This sets the font size for canvas axis." +msgstr "This sets the font size for canvas axis." + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:241 +msgid "Textbox" +msgstr "Textbox" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:243 +msgid "" +"This sets the font size for the Textbox GUI\n" +"elements that are used in FlatCAM." +msgstr "" +"This sets the font size for the Textbox GUI\n" +"elements that are used in FlatCAM." + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:269 +msgid "Mouse Settings" +msgstr "Mouse Settings" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:273 +msgid "Cursor Shape" +msgstr "Cursor Shape" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:275 +msgid "" +"Choose a mouse cursor shape.\n" +"- Small -> with a customizable size.\n" +"- Big -> Infinite lines" +msgstr "" +"Choose a mouse cursor shape.\n" +"- Small -> with a customizable size.\n" +"- Big -> Infinite lines" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:281 +msgid "Small" +msgstr "Small" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:282 +msgid "Big" +msgstr "Big" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:289 +msgid "Cursor Size" +msgstr "Cursor Size" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:291 +msgid "Set the size of the mouse cursor, in pixels." +msgstr "Set the size of the mouse cursor, in pixels." + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:302 +msgid "Cursor Width" +msgstr "Cursor Width" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:304 +msgid "Set the line width of the mouse cursor, in pixels." +msgstr "Set the line width of the mouse cursor, in pixels." + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:315 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:322 +msgid "Cursor Color" +msgstr "Cursor Color" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:317 +msgid "Check this box to color mouse cursor." +msgstr "Check this box to color mouse cursor." + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:324 +msgid "Set the color of the mouse cursor." +msgstr "Set the color of the mouse cursor." + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:347 +msgid "Pan Button" +msgstr "Pan Button" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:349 +msgid "" +"Select the mouse button to use for panning:\n" +"- MMB --> Middle Mouse Button\n" +"- RMB --> Right Mouse Button" +msgstr "" +"Select the mouse button to use for panning:\n" +"- MMB --> Middle Mouse Button\n" +"- RMB --> Right Mouse Button" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:353 +msgid "MMB" +msgstr "MMB" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:354 +msgid "RMB" +msgstr "RMB" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:360 +msgid "Multiple Selection" +msgstr "Multiple Selection" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:362 +msgid "Select the key used for multiple selection." +msgstr "Select the key used for multiple selection." + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:364 +msgid "CTRL" +msgstr "CTRL" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:365 +msgid "SHIFT" +msgstr "SHIFT" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:376 +msgid "Delete object confirmation" +msgstr "Delete object confirmation" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:378 +msgid "" +"When checked the application will ask for user confirmation\n" +"whenever the Delete object(s) event is triggered, either by\n" +"menu shortcut or key shortcut." +msgstr "" +"When checked the application will ask for user confirmation\n" +"whenever the Delete object(s) event is triggered, either by\n" +"menu shortcut or key shortcut." + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:385 +msgid "\"Open\" behavior" +msgstr "\"Open\" behavior" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:387 +msgid "" +"When checked the path for the last saved file is used when saving files,\n" +"and the path for the last opened file is used when opening files.\n" +"\n" +"When unchecked the path for opening files is the one used last: either the\n" +"path for saving files or the path for opening files." +msgstr "" +"When checked the path for the last saved file is used when saving files,\n" +"and the path for the last opened file is used when opening files.\n" +"\n" +"When unchecked the path for opening files is the one used last: either the\n" +"path for saving files or the path for opening files." + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:396 +msgid "Enable ToolTips" +msgstr "Enable ToolTips" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:398 +msgid "" +"Check this box if you want to have toolTips displayed\n" +"when hovering with mouse over items throughout the App." +msgstr "" +"Check this box if you want to have toolTips displayed\n" +"when hovering with mouse over items throughout the App." + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:405 +msgid "Allow Machinist Unsafe Settings" +msgstr "Allow Machinist Unsafe Settings" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:407 +msgid "" +"If checked, some of the application settings will be allowed\n" +"to have values that are usually unsafe to use.\n" +"Like Z travel negative values or Z Cut positive values.\n" +"It will applied at the next application start.\n" +"<>: Don't change this unless you know what you are doing !!!" +msgstr "" +"If checked, some of the application settings will be allowed\n" +"to have values that are usually unsafe to use.\n" +"Like Z travel negative values or Z Cut positive values.\n" +"It will applied at the next application start.\n" +"<>: Don't change this unless you know what you are doing !!!" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:419 +msgid "Bookmarks limit" +msgstr "Bookmarks limit" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:421 +msgid "" +"The maximum number of bookmarks that may be installed in the menu.\n" +"The number of bookmarks in the bookmark manager may be greater\n" +"but the menu will hold only so much." +msgstr "" +"The maximum number of bookmarks that may be installed in the menu.\n" +"The number of bookmarks in the bookmark manager may be greater\n" +"but the menu will hold only so much." + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:430 +msgid "Activity Icon" +msgstr "Activity Icon" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:432 +msgid "Select the GIF that show activity when FlatCAM is active." +msgstr "Select the GIF that show activity when FlatCAM is active." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:29 +msgid "App Preferences" +msgstr "App Preferences" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:40 +msgid "" +"The default value for FlatCAM units.\n" +"Whatever is selected here is set every time\n" +"FlatCAM is started." +msgstr "" +"The default value for FlatCAM units.\n" +"Whatever is selected here is set every time\n" +"FlatCAM is started." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:44 +msgid "IN" +msgstr "IN" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:50 +msgid "Precision MM" +msgstr "Precision MM" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:52 +msgid "" +"The number of decimals used throughout the application\n" +"when the set units are in METRIC system.\n" +"Any change here require an application restart." +msgstr "" +"The number of decimals used throughout the application\n" +"when the set units are in METRIC system.\n" +"Any change here require an application restart." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:64 +msgid "Precision INCH" +msgstr "Precision INCH" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:66 +msgid "" +"The number of decimals used throughout the application\n" +"when the set units are in INCH system.\n" +"Any change here require an application restart." +msgstr "" +"The number of decimals used throughout the application\n" +"when the set units are in INCH system.\n" +"Any change here require an application restart." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:78 +msgid "Graphic Engine" +msgstr "Graphic Engine" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:79 +msgid "" +"Choose what graphic engine to use in FlatCAM.\n" +"Legacy(2D) -> reduced functionality, slow performance but enhanced " +"compatibility.\n" +"OpenGL(3D) -> full functionality, high performance\n" +"Some graphic cards are too old and do not work in OpenGL(3D) mode, like:\n" +"Intel HD3000 or older. In this case the plot area will be black therefore\n" +"use the Legacy(2D) mode." +msgstr "" +"Choose what graphic engine to use in FlatCAM.\n" +"Legacy(2D) -> reduced functionality, slow performance but enhanced " +"compatibility.\n" +"OpenGL(3D) -> full functionality, high performance\n" +"Some graphic cards are too old and do not work in OpenGL(3D) mode, like:\n" +"Intel HD3000 or older. In this case the plot area will be black therefore\n" +"use the Legacy(2D) mode." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:85 +msgid "Legacy(2D)" +msgstr "Legacy(2D)" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:86 +msgid "OpenGL(3D)" +msgstr "OpenGL(3D)" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:98 +msgid "APP. LEVEL" +msgstr "APP. LEVEL" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:99 +msgid "" +"Choose the default level of usage for FlatCAM.\n" +"BASIC level -> reduced functionality, best for beginner's.\n" +"ADVANCED level -> full functionality.\n" +"\n" +"The choice here will influence the parameters in\n" +"the Selected Tab for all kinds of FlatCAM objects." +msgstr "" +"Choose the default level of usage for FlatCAM.\n" +"BASIC level -> reduced functionality, best for beginner's.\n" +"ADVANCED level -> full functionality.\n" +"\n" +"The choice here will influence the parameters in\n" +"the Selected Tab for all kinds of FlatCAM objects." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:105 +#: flatcamObjects/FlatCAMExcellon.py:627 flatcamObjects/FlatCAMGeometry.py:531 +#: flatcamObjects/FlatCAMGerber.py:278 +msgid "Advanced" +msgstr "Advanced" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:111 +msgid "Portable app" +msgstr "Portable app" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:112 +msgid "" +"Choose if the application should run as portable.\n" +"\n" +"If Checked the application will run portable,\n" +"which means that the preferences files will be saved\n" +"in the application folder, in the lib\\config subfolder." +msgstr "" +"Choose if the application should run as portable.\n" +"\n" +"If Checked the application will run portable,\n" +"which means that the preferences files will be saved\n" +"in the application folder, in the lib\\config subfolder." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:125 +msgid "Languages" +msgstr "Languages" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:126 +msgid "Set the language used throughout FlatCAM." +msgstr "Set the language used throughout FlatCAM." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:132 +msgid "Apply Language" +msgstr "Apply Language" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:133 +msgid "" +"Set the language used throughout FlatCAM.\n" +"The app will restart after click." +msgstr "" +"Set the language used throughout FlatCAM.\n" +"The app will restart after click." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:147 +msgid "Startup Settings" +msgstr "Startup Settings" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:151 +msgid "Splash Screen" +msgstr "Splash Screen" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:153 +msgid "Enable display of the splash screen at application startup." +msgstr "Enable display of the splash screen at application startup." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:165 +msgid "Sys Tray Icon" +msgstr "Sys Tray Icon" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:167 +msgid "Enable display of FlatCAM icon in Sys Tray." +msgstr "Enable display of FlatCAM icon in Sys Tray." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:172 +msgid "Show Shell" +msgstr "Show Shell" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:174 +msgid "" +"Check this box if you want the shell to\n" +"start automatically at startup." +msgstr "" +"Check this box if you want the shell to\n" +"start automatically at startup." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:181 +msgid "Show Project" +msgstr "Show Project" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:183 +msgid "" +"Check this box if you want the project/selected/tool tab area to\n" +"to be shown automatically at startup." +msgstr "" +"Check this box if you want the project/selected/tool tab area to\n" +"to be shown automatically at startup." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:189 +msgid "Version Check" +msgstr "Version Check" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:191 +msgid "" +"Check this box if you want to check\n" +"for a new version automatically at startup." +msgstr "" +"Check this box if you want to check\n" +"for a new version automatically at startup." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:198 +msgid "Send Statistics" +msgstr "Send Statistics" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:200 +msgid "" +"Check this box if you agree to send anonymous\n" +"stats automatically at startup, to help improve FlatCAM." +msgstr "" +"Check this box if you agree to send anonymous\n" +"stats automatically at startup, to help improve FlatCAM." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:214 +msgid "Workers number" +msgstr "Workers number" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:216 +msgid "" +"The number of Qthreads made available to the App.\n" +"A bigger number may finish the jobs more quickly but\n" +"depending on your computer speed, may make the App\n" +"unresponsive. Can have a value between 2 and 16.\n" +"Default value is 2.\n" +"After change, it will be applied at next App start." +msgstr "" +"The number of Qthreads made available to the App.\n" +"A bigger number may finish the jobs more quickly but\n" +"depending on your computer speed, may make the App\n" +"unresponsive. Can have a value between 2 and 16.\n" +"Default value is 2.\n" +"After change, it will be applied at next App start." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:230 +msgid "Geo Tolerance" +msgstr "Geo Tolerance" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:232 +msgid "" +"This value can counter the effect of the Circle Steps\n" +"parameter. Default value is 0.005.\n" +"A lower value will increase the detail both in image\n" +"and in Gcode for the circles, with a higher cost in\n" +"performance. Higher value will provide more\n" +"performance at the expense of level of detail." +msgstr "" +"This value can counter the effect of the Circle Steps\n" +"parameter. Default value is 0.005.\n" +"A lower value will increase the detail both in image\n" +"and in Gcode for the circles, with a higher cost in\n" +"performance. Higher value will provide more\n" +"performance at the expense of level of detail." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:252 +msgid "Save Settings" +msgstr "Save Settings" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:256 +msgid "Save Compressed Project" +msgstr "Save Compressed Project" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:258 +msgid "" +"Whether to save a compressed or uncompressed project.\n" +"When checked it will save a compressed FlatCAM project." +msgstr "" +"Whether to save a compressed or uncompressed project.\n" +"When checked it will save a compressed FlatCAM project." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:267 +msgid "Compression" +msgstr "Compression" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:269 +msgid "" +"The level of compression used when saving\n" +"a FlatCAM project. Higher value means better compression\n" +"but require more RAM usage and more processing time." +msgstr "" +"The level of compression used when saving\n" +"a FlatCAM project. Higher value means better compression\n" +"but require more RAM usage and more processing time." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:280 +msgid "Enable Auto Save" +msgstr "Enable Auto Save" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:282 +msgid "" +"Check to enable the autosave feature.\n" +"When enabled, the application will try to save a project\n" +"at the set interval." +msgstr "" +"Check to enable the autosave feature.\n" +"When enabled, the application will try to save a project\n" +"at the set interval." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:292 +msgid "Interval" +msgstr "Interval" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:294 +msgid "" +"Time interval for autosaving. In milliseconds.\n" +"The application will try to save periodically but only\n" +"if the project was saved manually at least once.\n" +"While active, some operations may block this feature." +msgstr "" +"Time interval for autosaving. In milliseconds.\n" +"The application will try to save periodically but only\n" +"if the project was saved manually at least once.\n" +"While active, some operations may block this feature." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:310 +msgid "Text to PDF parameters" +msgstr "Text to PDF parameters" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:312 +msgid "Used when saving text in Code Editor or in FlatCAM Document objects." +msgstr "Used when saving text in Code Editor or in FlatCAM Document objects." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:321 +msgid "Top Margin" +msgstr "Top Margin" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:323 +msgid "Distance between text body and the top of the PDF file." +msgstr "Distance between text body and the top of the PDF file." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:334 +msgid "Bottom Margin" +msgstr "Bottom Margin" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:336 +msgid "Distance between text body and the bottom of the PDF file." +msgstr "Distance between text body and the bottom of the PDF file." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:347 +msgid "Left Margin" +msgstr "Left Margin" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:349 +msgid "Distance between text body and the left of the PDF file." +msgstr "Distance between text body and the left of the PDF file." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:360 +msgid "Right Margin" +msgstr "Right Margin" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:362 +msgid "Distance between text body and the right of the PDF file." +msgstr "Distance between text body and the right of the PDF file." + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:26 +msgid "GUI Preferences" +msgstr "GUI Preferences" + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:36 +msgid "Theme" +msgstr "Theme" + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:38 +msgid "" +"Select a theme for FlatCAM.\n" +"It will theme the plot area." +msgstr "" +"Select a theme for FlatCAM.\n" +"It will theme the plot area." + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:43 +msgid "Light" +msgstr "Light" + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:44 +msgid "Dark" +msgstr "Dark" + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:51 +msgid "Use Gray Icons" +msgstr "Use Gray Icons" + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:53 +msgid "" +"Check this box to use a set of icons with\n" +"a lighter (gray) color. To be used when a\n" +"full dark theme is applied." +msgstr "" +"Check this box to use a set of icons with\n" +"a lighter (gray) color. To be used when a\n" +"full dark theme is applied." + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:59 +msgid "Apply Theme" +msgstr "Apply Theme" + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:61 +msgid "" +"Select a theme for FlatCAM.\n" +"It will theme the plot area.\n" +"The application will restart after change." +msgstr "" +"Select a theme for FlatCAM.\n" +"It will theme the plot area.\n" +"The application will restart after change." + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:73 +msgid "Layout" +msgstr "Layout" + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:75 +msgid "" +"Select an layout for FlatCAM.\n" +"It is applied immediately." +msgstr "" +"Select an layout for FlatCAM.\n" +"It is applied immediately." + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:95 +msgid "Style" +msgstr "Style" + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:97 +msgid "" +"Select an style for FlatCAM.\n" +"It will be applied at the next app start." +msgstr "" +"Select an style for FlatCAM.\n" +"It will be applied at the next app start." + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:111 +msgid "Activate HDPI Support" +msgstr "Activate HDPI Support" + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:113 +msgid "" +"Enable High DPI support for FlatCAM.\n" +"It will be applied at the next app start." +msgstr "" +"Enable High DPI support for FlatCAM.\n" +"It will be applied at the next app start." + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:127 +msgid "Display Hover Shape" +msgstr "Display Hover Shape" + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:129 +msgid "" +"Enable display of a hover shape for FlatCAM objects.\n" +"It is displayed whenever the mouse cursor is hovering\n" +"over any kind of not-selected object." +msgstr "" +"Enable display of a hover shape for FlatCAM objects.\n" +"It is displayed whenever the mouse cursor is hovering\n" +"over any kind of not-selected object." + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:136 +msgid "Display Selection Shape" +msgstr "Display Selection Shape" + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:138 +msgid "" +"Enable the display of a selection shape for FlatCAM objects.\n" +"It is displayed whenever the mouse selects an object\n" +"either by clicking or dragging mouse from left to right or\n" +"right to left." +msgstr "" +"Enable the display of a selection shape for FlatCAM objects.\n" +"It is displayed whenever the mouse selects an object\n" +"either by clicking or dragging mouse from left to right or\n" +"right to left." + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:151 +msgid "Left-Right Selection Color" +msgstr "Left-Right Selection Color" + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:156 +msgid "Set the line color for the 'left to right' selection box." +msgstr "Set the line color for the 'left to right' selection box." + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:172 +msgid "" +"Set the fill color for the selection box\n" +"in case that the selection is done from left to right.\n" +"First 6 digits are the color and the last 2\n" +"digits are for alpha (transparency) level." +msgstr "" +"Set the fill color for the selection box\n" +"in case that the selection is done from left to right.\n" +"First 6 digits are the color and the last 2\n" +"digits are for alpha (transparency) level." + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:192 +msgid "Set the fill transparency for the 'left to right' selection box." +msgstr "Set the fill transparency for the 'left to right' selection box." + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:216 +msgid "Right-Left Selection Color" +msgstr "Right-Left Selection Color" + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:222 +msgid "Set the line color for the 'right to left' selection box." +msgstr "Set the line color for the 'right to left' selection box." + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:239 +msgid "" +"Set the fill color for the selection box\n" +"in case that the selection is done from right to left.\n" +"First 6 digits are the color and the last 2\n" +"digits are for alpha (transparency) level." +msgstr "" +"Set the fill color for the selection box\n" +"in case that the selection is done from right to left.\n" +"First 6 digits are the color and the last 2\n" +"digits are for alpha (transparency) level." + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:259 +msgid "Set the fill transparency for selection 'right to left' box." +msgstr "Set the fill transparency for selection 'right to left' box." + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:286 +msgid "Editor Color" +msgstr "Editor Color" + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:290 +msgid "Drawing" +msgstr "Drawing" + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:292 +msgid "Set the color for the shape." +msgstr "Set the color for the shape." + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:309 +msgid "Set the color of the shape when selected." +msgstr "Set the color of the shape when selected." + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:332 +msgid "Project Items Color" +msgstr "Project Items Color" + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:336 +msgid "Enabled" +msgstr "Enabled" + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:338 +msgid "Set the color of the items in Project Tab Tree." +msgstr "Set the color of the items in Project Tab Tree." + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:352 +msgid "Disabled" +msgstr "Disabled" + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:354 +msgid "" +"Set the color of the items in Project Tab Tree,\n" +"for the case when the items are disabled." +msgstr "" +"Set the color of the items in Project Tab Tree,\n" +"for the case when the items are disabled." + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:370 +msgid "Project AutoHide" +msgstr "Project AutoHide" + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:372 +msgid "" +"Check this box if you want the project/selected/tool tab area to\n" +"hide automatically when there are no objects loaded and\n" +"to show whenever a new object is created." +msgstr "" +"Check this box if you want the project/selected/tool tab area to\n" +"hide automatically when there are no objects loaded and\n" +"to show whenever a new object is created." + +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:27 +msgid "Geometry Adv. Options" +msgstr "Geometry Adv. Options" + +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:35 +msgid "" +"A list of Geometry advanced parameters.\n" +"Those parameters are available only for\n" +"Advanced App. Level." +msgstr "" +"A list of Geometry advanced parameters.\n" +"Those parameters are available only for\n" +"Advanced App. Level." + +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:45 +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:112 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:134 +#: flatcamTools/ToolCalibration.py:125 flatcamTools/ToolSolderPaste.py:240 +msgid "Toolchange X-Y" +msgstr "Toolchange X-Y" + +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:56 +msgid "" +"Height of the tool just after starting the work.\n" +"Delete the value if you don't need this feature." +msgstr "" +"Height of the tool just after starting the work.\n" +"Delete the value if you don't need this feature." + +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:158 +msgid "Segment X size" +msgstr "Segment X size" + +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:160 +msgid "" +"The size of the trace segment on the X axis.\n" +"Useful for auto-leveling.\n" +"A value of 0 means no segmentation on the X axis." +msgstr "" +"The size of the trace segment on the X axis.\n" +"Useful for auto-leveling.\n" +"A value of 0 means no segmentation on the X axis." + +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:174 +msgid "Segment Y size" +msgstr "Segment Y size" + +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:176 +msgid "" +"The size of the trace segment on the Y axis.\n" +"Useful for auto-leveling.\n" +"A value of 0 means no segmentation on the Y axis." +msgstr "" +"The size of the trace segment on the Y axis.\n" +"Useful for auto-leveling.\n" +"A value of 0 means no segmentation on the Y axis." + +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:192 +#| msgid "Area Selection" +msgid "Area Exclusion" +msgstr "Area Exclusion" + +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:194 +#| msgid "" +#| "A list of Excellon advanced parameters.\n" +#| "Those parameters are available only for\n" +#| "Advanced App. Level." +msgid "" +"Area exclusion parameters.\n" +"Those parameters are available only for\n" +"Advanced App. Level." +msgstr "" +"Area exclusion parameters.\n" +"Those parameters are available only for\n" +"Advanced App. Level." + +#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:33 +msgid "A list of Geometry Editor parameters." +msgstr "A list of Geometry Editor parameters." + +#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:43 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:196 +msgid "" +"Set the number of selected geometry\n" +"items above which the utility geometry\n" +"becomes just a selection rectangle.\n" +"Increases the performance when moving a\n" +"large number of geometric elements." +msgstr "" +"Set the number of selected geometry\n" +"items above which the utility geometry\n" +"becomes just a selection rectangle.\n" +"Increases the performance when moving a\n" +"large number of geometric elements." + +#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:27 +msgid "Geometry General" +msgstr "Geometry General" + +#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:49 +msgid "" +"The number of circle steps for Geometry \n" +"circle and arc shapes linear approximation." +msgstr "" +"The number of circle steps for Geometry \n" +"circle and arc shapes linear approximation." + +#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:63 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:41 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:48 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:42 +msgid "Tools Dia" +msgstr "Tools Dia" + +#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:65 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:108 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:43 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:50 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:44 +msgid "" +"Diameters of the tools, separated by comma.\n" +"The value of the diameter has to use the dot decimals separator.\n" +"Valid values: 0.3, 1.0" +msgstr "" +"Diameters of the tools, separated by comma.\n" +"The value of the diameter has to use the dot decimals separator.\n" +"Valid values: 0.3, 1.0" + +#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:80 +msgid "Geometry Object Color" +msgstr "Geometry Object Color" + +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:28 +msgid "Geometry Options" +msgstr "Geometry Options" + +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:36 +msgid "" +"Create a CNC Job object\n" +"tracing the contours of this\n" +"Geometry object." +msgstr "" +"Create a CNC Job object\n" +"tracing the contours of this\n" +"Geometry object." + +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:80 +msgid "Depth/Pass" +msgstr "Depth/Pass" + +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:82 +msgid "" +"The depth to cut on each pass,\n" +"when multidepth is enabled.\n" +"It has positive value although\n" +"it is a fraction from the depth\n" +"which has negative value." +msgstr "" +"The depth to cut on each pass,\n" +"when multidepth is enabled.\n" +"It has positive value although\n" +"it is a fraction from the depth\n" +"which has negative value." + +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:27 +msgid "Gerber Adv. Options" +msgstr "Gerber Adv. Options" + +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:33 +msgid "" +"A list of Gerber advanced parameters.\n" +"Those parameters are available only for\n" +"Advanced App. Level." +msgstr "" +"A list of Gerber advanced parameters.\n" +"Those parameters are available only for\n" +"Advanced App. Level." + +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:52 +msgid "Table Show/Hide" +msgstr "Table Show/Hide" + +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:54 +msgid "" +"Toggle the display of the Gerber Apertures Table.\n" +"Also, on hide, it will delete all mark shapes\n" +"that are drawn on canvas." +msgstr "" +"Toggle the display of the Gerber Apertures Table.\n" +"Also, on hide, it will delete all mark shapes\n" +"that are drawn on canvas." + +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:134 +msgid "Exterior" +msgstr "Exterior" + +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:135 +msgid "Interior" +msgstr "Interior" + +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:148 +msgid "" +"Buffering type:\n" +"- None --> best performance, fast file loading but no so good display\n" +"- Full --> slow file loading but good visuals. This is the default.\n" +"<>: Don't change this unless you know what you are doing !!!" +msgstr "" +"Buffering type:\n" +"- None --> best performance, fast file loading but no so good display\n" +"- Full --> slow file loading but good visuals. This is the default.\n" +"<>: Don't change this unless you know what you are doing !!!" + +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:153 +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:88 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:207 +#: flatcamTools/ToolFiducials.py:201 flatcamTools/ToolFilm.py:255 +#: flatcamTools/ToolProperties.py:452 flatcamTools/ToolProperties.py:455 +#: flatcamTools/ToolProperties.py:458 flatcamTools/ToolProperties.py:483 +msgid "None" +msgstr "None" + +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:159 +msgid "Simplify" +msgstr "Simplify" + +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:161 +msgid "" +"When checked all the Gerber polygons will be\n" +"loaded with simplification having a set tolerance.\n" +"<>: Don't change this unless you know what you are doing !!!" +msgstr "" +"When checked all the Gerber polygons will be\n" +"loaded with simplification having a set tolerance.\n" +"<>: Don't change this unless you know what you are doing !!!" + +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:168 +msgid "Tolerance" +msgstr "Tolerance" + +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:169 +msgid "Tolerance for polygon simplification." +msgstr "Tolerance for polygon simplification." + +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:33 +msgid "A list of Gerber Editor parameters." +msgstr "A list of Gerber Editor parameters." + +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:43 +msgid "" +"Set the number of selected Gerber geometry\n" +"items above which the utility geometry\n" +"becomes just a selection rectangle.\n" +"Increases the performance when moving a\n" +"large number of geometric elements." +msgstr "" +"Set the number of selected Gerber geometry\n" +"items above which the utility geometry\n" +"becomes just a selection rectangle.\n" +"Increases the performance when moving a\n" +"large number of geometric elements." + +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:56 +msgid "New Aperture code" +msgstr "New Aperture code" + +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:69 +msgid "New Aperture size" +msgstr "New Aperture size" + +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:71 +msgid "Size for the new aperture" +msgstr "Size for the new aperture" + +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:82 +msgid "New Aperture type" +msgstr "New Aperture type" + +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:84 +msgid "" +"Type for the new aperture.\n" +"Can be 'C', 'R' or 'O'." +msgstr "" +"Type for the new aperture.\n" +"Can be 'C', 'R' or 'O'." + +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:106 +msgid "Aperture Dimensions" +msgstr "Aperture Dimensions" + +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:116 +msgid "Linear Pad Array" +msgstr "Linear Pad Array" + +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:160 +msgid "Circular Pad Array" +msgstr "Circular Pad Array" + +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:196 +msgid "Distance at which to buffer the Gerber element." +msgstr "Distance at which to buffer the Gerber element." + +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:205 +msgid "Scale Tool" +msgstr "Scale Tool" + +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:211 +msgid "Factor to scale the Gerber element." +msgstr "Factor to scale the Gerber element." + +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:224 +msgid "Threshold low" +msgstr "Threshold low" + +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:226 +msgid "Threshold value under which the apertures are not marked." +msgstr "Threshold value under which the apertures are not marked." + +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:236 +msgid "Threshold high" +msgstr "Threshold high" + +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:238 +msgid "Threshold value over which the apertures are not marked." +msgstr "Threshold value over which the apertures are not marked." + +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:27 +msgid "Gerber Export" +msgstr "Gerber Export" + +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:33 +msgid "" +"The parameters set here are used in the file exported\n" +"when using the File -> Export -> Export Gerber menu entry." +msgstr "" +"The parameters set here are used in the file exported\n" +"when using the File -> Export -> Export Gerber menu entry." + +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:44 +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:50 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:84 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:90 +msgid "The units used in the Gerber file." +msgstr "The units used in the Gerber file." + +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:58 +msgid "" +"The number of digits in the whole part of the number\n" +"and in the fractional part of the number." +msgstr "" +"The number of digits in the whole part of the number\n" +"and in the fractional part of the number." + +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:71 +msgid "" +"This numbers signify the number of digits in\n" +"the whole part of Gerber coordinates." +msgstr "" +"This numbers signify the number of digits in\n" +"the whole part of Gerber coordinates." + +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:87 +msgid "" +"This numbers signify the number of digits in\n" +"the decimal part of Gerber coordinates." +msgstr "" +"This numbers signify the number of digits in\n" +"the decimal part of Gerber coordinates." + +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:99 +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:109 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:100 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:110 +msgid "" +"This sets the type of Gerber zeros.\n" +"If LZ then Leading Zeros are removed and\n" +"Trailing Zeros are kept.\n" +"If TZ is checked then Trailing Zeros are removed\n" +"and Leading Zeros are kept." +msgstr "" +"This sets the type of Gerber zeros.\n" +"If LZ then Leading Zeros are removed and\n" +"Trailing Zeros are kept.\n" +"If TZ is checked then Trailing Zeros are removed\n" +"and Leading Zeros are kept." + +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:27 +msgid "Gerber General" +msgstr "Gerber General" + +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:45 +msgid "M-Color" +msgstr "M-Color" + +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:61 +msgid "" +"The number of circle steps for Gerber \n" +"circular aperture linear approximation." +msgstr "" +"The number of circle steps for Gerber \n" +"circular aperture linear approximation." + +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:73 +msgid "Default Values" +msgstr "Default Values" + +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:75 +msgid "" +"Those values will be used as fallback values\n" +"in case that they are not found in the Gerber file." +msgstr "" +"Those values will be used as fallback values\n" +"in case that they are not found in the Gerber file." + +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:126 +msgid "Clean Apertures" +msgstr "Clean Apertures" + +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:128 +msgid "" +"Will remove apertures that do not have geometry\n" +"thus lowering the number of apertures in the Gerber object." +msgstr "" +"Will remove apertures that do not have geometry\n" +"thus lowering the number of apertures in the Gerber object." + +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:134 +msgid "Polarity change buffer" +msgstr "Polarity change buffer" + +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:136 +msgid "" +"Will apply extra buffering for the\n" +"solid geometry when we have polarity changes.\n" +"May help loading Gerber files that otherwise\n" +"do not load correctly." +msgstr "" +"Will apply extra buffering for the\n" +"solid geometry when we have polarity changes.\n" +"May help loading Gerber files that otherwise\n" +"do not load correctly." + +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:149 +msgid "Gerber Object Color" +msgstr "Gerber Object Color" + +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:29 +msgid "Gerber Options" +msgstr "Gerber Options" + +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:107 +msgid "Combine Passes" +msgstr "Combine Passes" + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:27 +msgid "Copper Thieving Tool Options" +msgstr "Copper Thieving Tool Options" + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:39 +msgid "" +"A tool to generate a Copper Thieving that can be added\n" +"to a selected Gerber file." +msgstr "" +"A tool to generate a Copper Thieving that can be added\n" +"to a selected Gerber file." + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:47 +msgid "Number of steps (lines) used to interpolate circles." +msgstr "Number of steps (lines) used to interpolate circles." + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:57 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:261 +#: flatcamTools/ToolCopperThieving.py:96 flatcamTools/ToolCopperThieving.py:431 +msgid "Clearance" +msgstr "Clearance" + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:59 +msgid "" +"This set the distance between the copper Thieving components\n" +"(the polygon fill may be split in multiple polygons)\n" +"and the copper traces in the Gerber file." +msgstr "" +"This set the distance between the copper Thieving components\n" +"(the polygon fill may be split in multiple polygons)\n" +"and the copper traces in the Gerber file." + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:87 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280 +#: flatcamTools/ToolCopperThieving.py:126 flatcamTools/ToolNCC.py:535 +#: flatcamTools/ToolNCC.py:1316 flatcamTools/ToolNCC.py:1647 +#: flatcamTools/ToolNCC.py:1935 flatcamTools/ToolNCC.py:1990 +#: flatcamTools/ToolPaint.py:486 flatcamTools/ToolPaint.py:946 +#: flatcamTools/ToolPaint.py:1452 +msgid "Area Selection" +msgstr "Area Selection" + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:88 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280 +#: flatcamTools/ToolCopperThieving.py:127 flatcamTools/ToolDblSided.py:216 +#: flatcamTools/ToolNCC.py:535 flatcamTools/ToolNCC.py:1663 +#: flatcamTools/ToolNCC.py:1941 flatcamTools/ToolNCC.py:1998 +#: flatcamTools/ToolNCC.py:2306 flatcamTools/ToolNCC.py:2586 +#: flatcamTools/ToolNCC.py:3012 flatcamTools/ToolPaint.py:486 +#: flatcamTools/ToolPaint.py:931 flatcamTools/ToolPaint.py:1468 +#: tclCommands/TclCommandCopperClear.py:192 tclCommands/TclCommandPaint.py:166 +msgid "Reference Object" +msgstr "Reference Object" + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:90 +#: flatcamTools/ToolCopperThieving.py:129 +msgid "Reference:" +msgstr "Reference:" + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:92 +msgid "" +"- 'Itself' - the copper Thieving extent is based on the object extent.\n" +"- 'Area Selection' - left mouse click to start selection of the area to be " +"filled.\n" +"- 'Reference Object' - will do copper thieving within the area specified by " +"another object." +msgstr "" +"- 'Itself' - the copper Thieving extent is based on the object extent.\n" +"- 'Area Selection' - left mouse click to start selection of the area to be " +"filled.\n" +"- 'Reference Object' - will do copper thieving within the area specified by " +"another object." + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:101 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:76 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:188 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:76 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:190 +#: flatcamTools/ToolCopperThieving.py:171 flatcamTools/ToolExtractDrills.py:102 +#: flatcamTools/ToolExtractDrills.py:240 flatcamTools/ToolPunchGerber.py:113 +#: flatcamTools/ToolPunchGerber.py:268 +msgid "Rectangular" +msgstr "Rectangular" + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:102 +#: flatcamTools/ToolCopperThieving.py:172 +msgid "Minimal" +msgstr "Minimal" + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:104 +#: flatcamTools/ToolCopperThieving.py:174 flatcamTools/ToolFilm.py:113 +msgid "Box Type:" +msgstr "Box Type:" + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:106 +#: flatcamTools/ToolCopperThieving.py:176 +msgid "" +"- 'Rectangular' - the bounding box will be of rectangular shape.\n" +"- 'Minimal' - the bounding box will be the convex hull shape." +msgstr "" +"- 'Rectangular' - the bounding box will be of rectangular shape.\n" +"- 'Minimal' - the bounding box will be the convex hull shape." + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:120 +#: flatcamTools/ToolCopperThieving.py:192 +msgid "Dots Grid" +msgstr "Dots Grid" + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:121 +#: flatcamTools/ToolCopperThieving.py:193 +msgid "Squares Grid" +msgstr "Squares Grid" + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:122 +#: flatcamTools/ToolCopperThieving.py:194 +msgid "Lines Grid" +msgstr "Lines Grid" + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:124 +#: flatcamTools/ToolCopperThieving.py:196 +msgid "Fill Type:" +msgstr "Fill Type:" + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:126 +#: flatcamTools/ToolCopperThieving.py:198 +msgid "" +"- 'Solid' - copper thieving will be a solid polygon.\n" +"- 'Dots Grid' - the empty area will be filled with a pattern of dots.\n" +"- 'Squares Grid' - the empty area will be filled with a pattern of squares.\n" +"- 'Lines Grid' - the empty area will be filled with a pattern of lines." +msgstr "" +"- 'Solid' - copper thieving will be a solid polygon.\n" +"- 'Dots Grid' - the empty area will be filled with a pattern of dots.\n" +"- 'Squares Grid' - the empty area will be filled with a pattern of squares.\n" +"- 'Lines Grid' - the empty area will be filled with a pattern of lines." + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:134 +#: flatcamTools/ToolCopperThieving.py:217 +msgid "Dots Grid Parameters" +msgstr "Dots Grid Parameters" + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:140 +#: flatcamTools/ToolCopperThieving.py:223 +msgid "Dot diameter in Dots Grid." +msgstr "Dot diameter in Dots Grid." + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:151 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:180 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:209 +#: flatcamTools/ToolCopperThieving.py:234 +#: flatcamTools/ToolCopperThieving.py:274 +#: flatcamTools/ToolCopperThieving.py:314 +msgid "Spacing" +msgstr "Spacing" + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:153 +#: flatcamTools/ToolCopperThieving.py:236 +msgid "Distance between each two dots in Dots Grid." +msgstr "Distance between each two dots in Dots Grid." + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:163 +#: flatcamTools/ToolCopperThieving.py:257 +msgid "Squares Grid Parameters" +msgstr "Squares Grid Parameters" + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:169 +#: flatcamTools/ToolCopperThieving.py:263 +msgid "Square side size in Squares Grid." +msgstr "Square side size in Squares Grid." + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:182 +#: flatcamTools/ToolCopperThieving.py:276 +msgid "Distance between each two squares in Squares Grid." +msgstr "Distance between each two squares in Squares Grid." + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:192 +#: flatcamTools/ToolCopperThieving.py:297 +msgid "Lines Grid Parameters" +msgstr "Lines Grid Parameters" + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:198 +#: flatcamTools/ToolCopperThieving.py:303 +msgid "Line thickness size in Lines Grid." +msgstr "Line thickness size in Lines Grid." + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:211 +#: flatcamTools/ToolCopperThieving.py:316 +msgid "Distance between each two lines in Lines Grid." +msgstr "Distance between each two lines in Lines Grid." + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:221 +#: flatcamTools/ToolCopperThieving.py:354 +msgid "Robber Bar Parameters" +msgstr "Robber Bar Parameters" + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:223 +#: flatcamTools/ToolCopperThieving.py:356 +msgid "" +"Parameters used for the robber bar.\n" +"Robber bar = copper border to help in pattern hole plating." +msgstr "" +"Parameters used for the robber bar.\n" +"Robber bar = copper border to help in pattern hole plating." + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:231 +#: flatcamTools/ToolCopperThieving.py:364 +msgid "Bounding box margin for robber bar." +msgstr "Bounding box margin for robber bar." + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:242 +#: flatcamTools/ToolCopperThieving.py:375 +msgid "Thickness" +msgstr "Thickness" + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:244 +#: flatcamTools/ToolCopperThieving.py:377 +msgid "The robber bar thickness." +msgstr "The robber bar thickness." + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:254 +#: flatcamTools/ToolCopperThieving.py:408 +msgid "Pattern Plating Mask" +msgstr "Pattern Plating Mask" + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:256 +#: flatcamTools/ToolCopperThieving.py:410 +msgid "Generate a mask for pattern plating." +msgstr "Generate a mask for pattern plating." + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:263 +#: flatcamTools/ToolCopperThieving.py:433 +msgid "" +"The distance between the possible copper thieving elements\n" +"and/or robber bar and the actual openings in the mask." +msgstr "" +"The distance between the possible copper thieving elements\n" +"and/or robber bar and the actual openings in the mask." + +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:27 +msgid "Calibration Tool Options" +msgstr "Calibration Tool Options" + +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:38 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:38 +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:38 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:38 +#: flatcamTools/ToolCopperThieving.py:91 flatcamTools/ToolFiducials.py:151 +msgid "Parameters used for this tool." +msgstr "Parameters used for this tool." + +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:43 +#: flatcamTools/ToolCalibration.py:181 +msgid "Source Type" +msgstr "Source Type" + +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:44 +#: flatcamTools/ToolCalibration.py:182 +msgid "" +"The source of calibration points.\n" +"It can be:\n" +"- Object -> click a hole geo for Excellon or a pad for Gerber\n" +"- Free -> click freely on canvas to acquire the calibration points" +msgstr "" +"The source of calibration points.\n" +"It can be:\n" +"- Object -> click a hole geo for Excellon or a pad for Gerber\n" +"- Free -> click freely on canvas to acquire the calibration points" + +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:49 +#: flatcamTools/ToolCalibration.py:187 +msgid "Free" +msgstr "Free" + +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:63 +#: flatcamTools/ToolCalibration.py:76 +msgid "Height (Z) for travelling between the points." +msgstr "Height (Z) for travelling between the points." + +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:75 +#: flatcamTools/ToolCalibration.py:88 +msgid "Verification Z" +msgstr "Verification Z" + +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:77 +#: flatcamTools/ToolCalibration.py:90 +msgid "Height (Z) for checking the point." +msgstr "Height (Z) for checking the point." + +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:89 +#: flatcamTools/ToolCalibration.py:102 +msgid "Zero Z tool" +msgstr "Zero Z tool" + +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:91 +#: flatcamTools/ToolCalibration.py:104 +msgid "" +"Include a sequence to zero the height (Z)\n" +"of the verification tool." +msgstr "" +"Include a sequence to zero the height (Z)\n" +"of the verification tool." + +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:100 +#: flatcamTools/ToolCalibration.py:113 +msgid "Height (Z) for mounting the verification probe." +msgstr "Height (Z) for mounting the verification probe." + +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:114 +#: flatcamTools/ToolCalibration.py:127 +msgid "" +"Toolchange X,Y position.\n" +"If no value is entered then the current\n" +"(x, y) point will be used," +msgstr "" +"Toolchange X,Y position.\n" +"If no value is entered then the current\n" +"(x, y) point will be used," + +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:125 +#: flatcamTools/ToolCalibration.py:153 +msgid "Second point" +msgstr "Second point" + +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:127 +#: flatcamTools/ToolCalibration.py:155 +msgid "" +"Second point in the Gcode verification can be:\n" +"- top-left -> the user will align the PCB vertically\n" +"- bottom-right -> the user will align the PCB horizontally" +msgstr "" +"Second point in the Gcode verification can be:\n" +"- top-left -> the user will align the PCB vertically\n" +"- bottom-right -> the user will align the PCB horizontally" + +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:27 +msgid "Extract Drills Options" +msgstr "Extract Drills Options" + +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:42 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:42 +#: flatcamTools/ToolExtractDrills.py:68 flatcamTools/ToolPunchGerber.py:75 +msgid "Processed Pads Type" +msgstr "Processed Pads Type" + +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:44 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:44 +#: flatcamTools/ToolExtractDrills.py:70 flatcamTools/ToolPunchGerber.py:77 +msgid "" +"The type of pads shape to be processed.\n" +"If the PCB has many SMD pads with rectangular pads,\n" +"disable the Rectangular aperture." +msgstr "" +"The type of pads shape to be processed.\n" +"If the PCB has many SMD pads with rectangular pads,\n" +"disable the Rectangular aperture." + +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:54 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:54 +#: flatcamTools/ToolExtractDrills.py:80 flatcamTools/ToolPunchGerber.py:91 +msgid "Process Circular Pads." +msgstr "Process Circular Pads." + +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:60 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:162 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:60 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:164 +#: flatcamTools/ToolExtractDrills.py:86 flatcamTools/ToolExtractDrills.py:214 +#: flatcamTools/ToolPunchGerber.py:97 flatcamTools/ToolPunchGerber.py:242 +msgid "Oblong" +msgstr "Oblong" + +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:62 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:62 +#: flatcamTools/ToolExtractDrills.py:88 flatcamTools/ToolPunchGerber.py:99 +msgid "Process Oblong Pads." +msgstr "Process Oblong Pads." + +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:70 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:70 +#: flatcamTools/ToolExtractDrills.py:96 flatcamTools/ToolPunchGerber.py:107 +msgid "Process Square Pads." +msgstr "Process Square Pads." + +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:78 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:78 +#: flatcamTools/ToolExtractDrills.py:104 flatcamTools/ToolPunchGerber.py:115 +msgid "Process Rectangular Pads." +msgstr "Process Rectangular Pads." + +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:84 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:201 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:84 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:203 +#: flatcamTools/ToolExtractDrills.py:110 flatcamTools/ToolExtractDrills.py:253 +#: flatcamTools/ToolProperties.py:172 flatcamTools/ToolPunchGerber.py:121 +#: flatcamTools/ToolPunchGerber.py:281 +msgid "Others" +msgstr "Others" + +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:86 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:86 +#: flatcamTools/ToolExtractDrills.py:112 flatcamTools/ToolPunchGerber.py:123 +msgid "Process pads not in the categories above." +msgstr "Process pads not in the categories above." + +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:99 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:123 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:100 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:125 +#: flatcamTools/ToolExtractDrills.py:139 flatcamTools/ToolExtractDrills.py:156 +#: flatcamTools/ToolPunchGerber.py:150 flatcamTools/ToolPunchGerber.py:184 +msgid "Fixed Diameter" +msgstr "Fixed Diameter" + +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:100 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:140 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:101 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:142 +#: flatcamTools/ToolExtractDrills.py:140 flatcamTools/ToolExtractDrills.py:192 +#: flatcamTools/ToolPunchGerber.py:151 flatcamTools/ToolPunchGerber.py:214 +msgid "Fixed Annular Ring" +msgstr "Fixed Annular Ring" + +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:101 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:102 +#: flatcamTools/ToolExtractDrills.py:141 flatcamTools/ToolPunchGerber.py:152 +msgid "Proportional" +msgstr "Proportional" + +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:107 +#: flatcamTools/ToolExtractDrills.py:130 +msgid "" +"The method for processing pads. Can be:\n" +"- Fixed Diameter -> all holes will have a set size\n" +"- Fixed Annular Ring -> all holes will have a set annular ring\n" +"- Proportional -> each hole size will be a fraction of the pad size" +msgstr "" +"The method for processing pads. Can be:\n" +"- Fixed Diameter -> all holes will have a set size\n" +"- Fixed Annular Ring -> all holes will have a set annular ring\n" +"- Proportional -> each hole size will be a fraction of the pad size" + +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:133 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:135 +#: flatcamTools/ToolExtractDrills.py:166 flatcamTools/ToolPunchGerber.py:194 +msgid "Fixed hole diameter." +msgstr "Fixed hole diameter." + +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:142 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:144 +#: flatcamTools/ToolExtractDrills.py:194 flatcamTools/ToolPunchGerber.py:216 +msgid "" +"The size of annular ring.\n" +"The copper sliver between the hole exterior\n" +"and the margin of the copper pad." +msgstr "" +"The size of annular ring.\n" +"The copper sliver between the hole exterior\n" +"and the margin of the copper pad." + +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:151 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:153 +#: flatcamTools/ToolExtractDrills.py:203 flatcamTools/ToolPunchGerber.py:231 +msgid "The size of annular ring for circular pads." +msgstr "The size of annular ring for circular pads." + +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:164 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:166 +#: flatcamTools/ToolExtractDrills.py:216 flatcamTools/ToolPunchGerber.py:244 +msgid "The size of annular ring for oblong pads." +msgstr "The size of annular ring for oblong pads." + +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:177 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:179 +#: flatcamTools/ToolExtractDrills.py:229 flatcamTools/ToolPunchGerber.py:257 +msgid "The size of annular ring for square pads." +msgstr "The size of annular ring for square pads." + +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:190 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:192 +#: flatcamTools/ToolExtractDrills.py:242 flatcamTools/ToolPunchGerber.py:270 +msgid "The size of annular ring for rectangular pads." +msgstr "The size of annular ring for rectangular pads." + +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:203 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:205 +#: flatcamTools/ToolExtractDrills.py:255 flatcamTools/ToolPunchGerber.py:283 +msgid "The size of annular ring for other pads." +msgstr "The size of annular ring for other pads." + +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:213 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:215 +#: flatcamTools/ToolExtractDrills.py:276 flatcamTools/ToolPunchGerber.py:299 +msgid "Proportional Diameter" +msgstr "Proportional Diameter" + +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:222 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:224 +msgid "Factor" +msgstr "Factor" + +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:224 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:226 +#: flatcamTools/ToolExtractDrills.py:287 flatcamTools/ToolPunchGerber.py:310 +msgid "" +"Proportional Diameter.\n" +"The hole diameter will be a fraction of the pad size." +msgstr "" +"Proportional Diameter.\n" +"The hole diameter will be a fraction of the pad size." + +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:27 +msgid "Fiducials Tool Options" +msgstr "Fiducials Tool Options" + +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:45 +#: flatcamTools/ToolFiducials.py:158 +msgid "" +"This set the fiducial diameter if fiducial type is circular,\n" +"otherwise is the size of the fiducial.\n" +"The soldermask opening is double than that." +msgstr "" +"This set the fiducial diameter if fiducial type is circular,\n" +"otherwise is the size of the fiducial.\n" +"The soldermask opening is double than that." + +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:73 +#: flatcamTools/ToolFiducials.py:186 +msgid "Auto" +msgstr "Auto" + +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:74 +#: flatcamTools/ToolFiducials.py:187 +msgid "Manual" +msgstr "Manual" + +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:76 +#: flatcamTools/ToolFiducials.py:189 +msgid "Mode:" +msgstr "Mode:" + +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:78 +msgid "" +"- 'Auto' - automatic placement of fiducials in the corners of the bounding " +"box.\n" +"- 'Manual' - manual placement of fiducials." +msgstr "" +"- 'Auto' - automatic placement of fiducials in the corners of the bounding " +"box.\n" +"- 'Manual' - manual placement of fiducials." + +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:86 +#: flatcamTools/ToolFiducials.py:199 +msgid "Up" +msgstr "Up" + +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:87 +#: flatcamTools/ToolFiducials.py:200 +msgid "Down" +msgstr "Down" + +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:90 +#: flatcamTools/ToolFiducials.py:203 +msgid "Second fiducial" +msgstr "Second fiducial" + +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:92 +#: flatcamTools/ToolFiducials.py:205 +msgid "" +"The position for the second fiducial.\n" +"- 'Up' - the order is: bottom-left, top-left, top-right.\n" +"- 'Down' - the order is: bottom-left, bottom-right, top-right.\n" +"- 'None' - there is no second fiducial. The order is: bottom-left, top-right." +msgstr "" +"The position for the second fiducial.\n" +"- 'Up' - the order is: bottom-left, top-left, top-right.\n" +"- 'Down' - the order is: bottom-left, bottom-right, top-right.\n" +"- 'None' - there is no second fiducial. The order is: bottom-left, top-right." + +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:108 +#: flatcamTools/ToolFiducials.py:221 +msgid "Cross" +msgstr "Cross" + +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:109 +#: flatcamTools/ToolFiducials.py:222 +msgid "Chess" +msgstr "Chess" + +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:112 +#: flatcamTools/ToolFiducials.py:224 +msgid "Fiducial Type" +msgstr "Fiducial Type" + +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:114 +#: flatcamTools/ToolFiducials.py:226 +msgid "" +"The type of fiducial.\n" +"- 'Circular' - this is the regular fiducial.\n" +"- 'Cross' - cross lines fiducial.\n" +"- 'Chess' - chess pattern fiducial." +msgstr "" +"The type of fiducial.\n" +"- 'Circular' - this is the regular fiducial.\n" +"- 'Cross' - cross lines fiducial.\n" +"- 'Chess' - chess pattern fiducial." + +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:123 +#: flatcamTools/ToolFiducials.py:235 +msgid "Line thickness" +msgstr "Line thickness" + +#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:27 +msgid "Invert Gerber Tool Options" +msgstr "Invert Gerber Tool Options" + +#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:33 +msgid "" +"A tool to invert Gerber geometry from positive to negative\n" +"and in revers." +msgstr "" +"A tool to invert Gerber geometry from positive to negative\n" +"and in revers." + +#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:47 +#: flatcamTools/ToolInvertGerber.py:90 +msgid "" +"Distance by which to avoid\n" +"the edges of the Gerber object." +msgstr "" +"Distance by which to avoid\n" +"the edges of the Gerber object." + +#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:58 +#: flatcamTools/ToolInvertGerber.py:101 +msgid "Lines Join Style" +msgstr "Lines Join Style" + +#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:60 +#: flatcamTools/ToolInvertGerber.py:103 +msgid "" +"The way that the lines in the object outline will be joined.\n" +"Can be:\n" +"- rounded -> an arc is added between two joining lines\n" +"- square -> the lines meet in 90 degrees angle\n" +"- bevel -> the lines are joined by a third line" +msgstr "" +"The way that the lines in the object outline will be joined.\n" +"Can be:\n" +"- rounded -> an arc is added between two joining lines\n" +"- square -> the lines meet in 90 degrees angle\n" +"- bevel -> the lines are joined by a third line" + +#: flatcamGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:27 +msgid "Optimal Tool Options" +msgstr "Optimal Tool Options" + +#: flatcamGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:33 +msgid "" +"A tool to find the minimum distance between\n" +"every two Gerber geometric elements" +msgstr "" +"A tool to find the minimum distance between\n" +"every two Gerber geometric elements" + +#: flatcamGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:48 +#: flatcamTools/ToolOptimal.py:78 +msgid "Precision" +msgstr "Precision" + +#: flatcamGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:50 +msgid "Number of decimals for the distances and coordinates in this tool." +msgstr "Number of decimals for the distances and coordinates in this tool." + +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:27 +msgid "Punch Gerber Options" +msgstr "Punch Gerber Options" + +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:108 +#: flatcamTools/ToolPunchGerber.py:141 +msgid "" +"The punch hole source can be:\n" +"- Excellon Object-> the Excellon object drills center will serve as " +"reference.\n" +"- Fixed Diameter -> will try to use the pads center as reference adding " +"fixed diameter holes.\n" +"- Fixed Annular Ring -> will try to keep a set annular ring.\n" +"- Proportional -> will make a Gerber punch hole having the diameter a " +"percentage of the pad diameter." +msgstr "" +"The punch hole source can be:\n" +"- Excellon Object-> the Excellon object drills center will serve as " +"reference.\n" +"- Fixed Diameter -> will try to use the pads center as reference adding " +"fixed diameter holes.\n" +"- Fixed Annular Ring -> will try to keep a set annular ring.\n" +"- Proportional -> will make a Gerber punch hole having the diameter a " +"percentage of the pad diameter." + +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:27 +msgid "QRCode Tool Options" +msgstr "QRCode Tool Options" + +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:33 +msgid "" +"A tool to create a QRCode that can be inserted\n" +"into a selected Gerber file, or it can be exported as a file." +msgstr "" +"A tool to create a QRCode that can be inserted\n" +"into a selected Gerber file, or it can be exported as a file." + +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:45 +#: flatcamTools/ToolQRCode.py:100 +msgid "Version" +msgstr "Version" + +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:47 +#: flatcamTools/ToolQRCode.py:102 +msgid "" +"QRCode version can have values from 1 (21x21 boxes)\n" +"to 40 (177x177 boxes)." +msgstr "" +"QRCode version can have values from 1 (21x21 boxes)\n" +"to 40 (177x177 boxes)." + +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:58 +#: flatcamTools/ToolQRCode.py:113 +msgid "Error correction" +msgstr "Error correction" + +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:60 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:71 +#: flatcamTools/ToolQRCode.py:115 flatcamTools/ToolQRCode.py:126 +#, python-format +msgid "" +"Parameter that controls the error correction used for the QR Code.\n" +"L = maximum 7%% errors can be corrected\n" +"M = maximum 15%% errors can be corrected\n" +"Q = maximum 25%% errors can be corrected\n" +"H = maximum 30%% errors can be corrected." +msgstr "" +"Parameter that controls the error correction used for the QR Code.\n" +"L = maximum 7%% errors can be corrected\n" +"M = maximum 15%% errors can be corrected\n" +"Q = maximum 25%% errors can be corrected\n" +"H = maximum 30%% errors can be corrected." + +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:81 +#: flatcamTools/ToolQRCode.py:136 +msgid "Box Size" +msgstr "Box Size" + +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:83 +#: flatcamTools/ToolQRCode.py:138 +msgid "" +"Box size control the overall size of the QRcode\n" +"by adjusting the size of each box in the code." +msgstr "" +"Box size control the overall size of the QRcode\n" +"by adjusting the size of each box in the code." + +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:94 +#: flatcamTools/ToolQRCode.py:149 +msgid "Border Size" +msgstr "Border Size" + +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:96 +#: flatcamTools/ToolQRCode.py:151 +msgid "" +"Size of the QRCode border. How many boxes thick is the border.\n" +"Default value is 4. The width of the clearance around the QRCode." +msgstr "" +"Size of the QRCode border. How many boxes thick is the border.\n" +"Default value is 4. The width of the clearance around the QRCode." + +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:107 +#: flatcamTools/ToolQRCode.py:162 +msgid "QRCode Data" +msgstr "QRCode Data" + +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:109 +#: flatcamTools/ToolQRCode.py:164 +msgid "QRCode Data. Alphanumeric text to be encoded in the QRCode." +msgstr "QRCode Data. Alphanumeric text to be encoded in the QRCode." + +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:113 +#: flatcamTools/ToolQRCode.py:168 +msgid "Add here the text to be included in the QRCode..." +msgstr "Add here the text to be included in the QRCode..." + +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:119 +#: flatcamTools/ToolQRCode.py:174 +msgid "Polarity" +msgstr "Polarity" + +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:121 +#: flatcamTools/ToolQRCode.py:176 +msgid "" +"Choose the polarity of the QRCode.\n" +"It can be drawn in a negative way (squares are clear)\n" +"or in a positive way (squares are opaque)." +msgstr "" +"Choose the polarity of the QRCode.\n" +"It can be drawn in a negative way (squares are clear)\n" +"or in a positive way (squares are opaque)." + +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:125 +#: flatcamTools/ToolFilm.py:296 flatcamTools/ToolQRCode.py:180 +msgid "Negative" +msgstr "Negative" + +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:126 +#: flatcamTools/ToolFilm.py:295 flatcamTools/ToolQRCode.py:181 +msgid "Positive" +msgstr "Positive" + +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:128 +#: flatcamTools/ToolQRCode.py:183 +msgid "" +"Choose the type of QRCode to be created.\n" +"If added on a Silkscreen Gerber file the QRCode may\n" +"be added as positive. If it is added to a Copper Gerber\n" +"file then perhaps the QRCode can be added as negative." +msgstr "" +"Choose the type of QRCode to be created.\n" +"If added on a Silkscreen Gerber file the QRCode may\n" +"be added as positive. If it is added to a Copper Gerber\n" +"file then perhaps the QRCode can be added as negative." + +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:139 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:145 +#: flatcamTools/ToolQRCode.py:194 flatcamTools/ToolQRCode.py:200 +msgid "" +"The bounding box, meaning the empty space that surrounds\n" +"the QRCode geometry, can have a rounded or a square shape." +msgstr "" +"The bounding box, meaning the empty space that surrounds\n" +"the QRCode geometry, can have a rounded or a square shape." + +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:142 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:239 +#: flatcamTools/ToolQRCode.py:197 flatcamTools/ToolTransform.py:383 +msgid "Rounded" +msgstr "Rounded" + +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:152 +#: flatcamTools/ToolQRCode.py:228 +msgid "Fill Color" +msgstr "Fill Color" + +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:154 +#: flatcamTools/ToolQRCode.py:230 +msgid "Set the QRCode fill color (squares color)." +msgstr "Set the QRCode fill color (squares color)." + +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:173 +#: flatcamTools/ToolQRCode.py:252 +msgid "Back Color" +msgstr "Back Color" + +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:175 +#: flatcamTools/ToolQRCode.py:254 +msgid "Set the QRCode background color." +msgstr "Set the QRCode background color." + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:27 +msgid "Check Rules Tool Options" +msgstr "Check Rules Tool Options" + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:32 +msgid "" +"A tool to check if Gerber files are within a set\n" +"of Manufacturing Rules." +msgstr "" +"A tool to check if Gerber files are within a set\n" +"of Manufacturing Rules." + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:42 +#: flatcamTools/ToolRulesCheck.py:265 flatcamTools/ToolRulesCheck.py:929 +msgid "Trace Size" +msgstr "Trace Size" + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:44 +#: flatcamTools/ToolRulesCheck.py:267 +msgid "This checks if the minimum size for traces is met." +msgstr "This checks if the minimum size for traces is met." + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:54 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:74 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:94 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:114 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:134 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:154 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:174 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:194 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:216 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:236 +#: flatcamTools/ToolRulesCheck.py:277 flatcamTools/ToolRulesCheck.py:299 +#: flatcamTools/ToolRulesCheck.py:322 flatcamTools/ToolRulesCheck.py:345 +#: flatcamTools/ToolRulesCheck.py:368 flatcamTools/ToolRulesCheck.py:391 +#: flatcamTools/ToolRulesCheck.py:414 flatcamTools/ToolRulesCheck.py:437 +#: flatcamTools/ToolRulesCheck.py:462 flatcamTools/ToolRulesCheck.py:485 +msgid "Min value" +msgstr "Min value" + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:56 +#: flatcamTools/ToolRulesCheck.py:279 +msgid "Minimum acceptable trace size." +msgstr "Minimum acceptable trace size." + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:61 +#: flatcamTools/ToolRulesCheck.py:286 flatcamTools/ToolRulesCheck.py:1157 +#: flatcamTools/ToolRulesCheck.py:1187 +msgid "Copper to Copper clearance" +msgstr "Copper to Copper clearance" + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:63 +#: flatcamTools/ToolRulesCheck.py:288 +msgid "" +"This checks if the minimum clearance between copper\n" +"features is met." +msgstr "" +"This checks if the minimum clearance between copper\n" +"features is met." + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:76 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:96 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:116 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:136 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:156 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:176 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:238 +#: flatcamTools/ToolRulesCheck.py:301 flatcamTools/ToolRulesCheck.py:324 +#: flatcamTools/ToolRulesCheck.py:347 flatcamTools/ToolRulesCheck.py:370 +#: flatcamTools/ToolRulesCheck.py:393 flatcamTools/ToolRulesCheck.py:416 +#: flatcamTools/ToolRulesCheck.py:464 +msgid "Minimum acceptable clearance value." +msgstr "Minimum acceptable clearance value." + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:81 +#: flatcamTools/ToolRulesCheck.py:309 flatcamTools/ToolRulesCheck.py:1217 +#: flatcamTools/ToolRulesCheck.py:1223 flatcamTools/ToolRulesCheck.py:1236 +#: flatcamTools/ToolRulesCheck.py:1243 +msgid "Copper to Outline clearance" +msgstr "Copper to Outline clearance" + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:83 +#: flatcamTools/ToolRulesCheck.py:311 +msgid "" +"This checks if the minimum clearance between copper\n" +"features and the outline is met." +msgstr "" +"This checks if the minimum clearance between copper\n" +"features and the outline is met." + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:101 +#: flatcamTools/ToolRulesCheck.py:332 +msgid "Silk to Silk Clearance" +msgstr "Silk to Silk Clearance" + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:103 +#: flatcamTools/ToolRulesCheck.py:334 +msgid "" +"This checks if the minimum clearance between silkscreen\n" +"features and silkscreen features is met." +msgstr "" +"This checks if the minimum clearance between silkscreen\n" +"features and silkscreen features is met." + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:121 +#: flatcamTools/ToolRulesCheck.py:355 flatcamTools/ToolRulesCheck.py:1326 +#: flatcamTools/ToolRulesCheck.py:1332 flatcamTools/ToolRulesCheck.py:1350 +msgid "Silk to Solder Mask Clearance" +msgstr "Silk to Solder Mask Clearance" + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:123 +#: flatcamTools/ToolRulesCheck.py:357 +msgid "" +"This checks if the minimum clearance between silkscreen\n" +"features and soldermask features is met." +msgstr "" +"This checks if the minimum clearance between silkscreen\n" +"features and soldermask features is met." + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:141 +#: flatcamTools/ToolRulesCheck.py:378 flatcamTools/ToolRulesCheck.py:1380 +#: flatcamTools/ToolRulesCheck.py:1386 flatcamTools/ToolRulesCheck.py:1400 +#: flatcamTools/ToolRulesCheck.py:1407 +msgid "Silk to Outline Clearance" +msgstr "Silk to Outline Clearance" + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:143 +#: flatcamTools/ToolRulesCheck.py:380 +msgid "" +"This checks if the minimum clearance between silk\n" +"features and the outline is met." +msgstr "" +"This checks if the minimum clearance between silk\n" +"features and the outline is met." + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:161 +#: flatcamTools/ToolRulesCheck.py:401 flatcamTools/ToolRulesCheck.py:1418 +#: flatcamTools/ToolRulesCheck.py:1445 +msgid "Minimum Solder Mask Sliver" +msgstr "Minimum Solder Mask Sliver" + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:163 +#: flatcamTools/ToolRulesCheck.py:403 +msgid "" +"This checks if the minimum clearance between soldermask\n" +"features and soldermask features is met." +msgstr "" +"This checks if the minimum clearance between soldermask\n" +"features and soldermask features is met." + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:181 +#: flatcamTools/ToolRulesCheck.py:424 flatcamTools/ToolRulesCheck.py:1483 +#: flatcamTools/ToolRulesCheck.py:1489 flatcamTools/ToolRulesCheck.py:1505 +#: flatcamTools/ToolRulesCheck.py:1512 +msgid "Minimum Annular Ring" +msgstr "Minimum Annular Ring" + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:183 +#: flatcamTools/ToolRulesCheck.py:426 +msgid "" +"This checks if the minimum copper ring left by drilling\n" +"a hole into a pad is met." +msgstr "" +"This checks if the minimum copper ring left by drilling\n" +"a hole into a pad is met." + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:196 +#: flatcamTools/ToolRulesCheck.py:439 +msgid "Minimum acceptable ring value." +msgstr "Minimum acceptable ring value." + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:203 +#: flatcamTools/ToolRulesCheck.py:449 flatcamTools/ToolRulesCheck.py:873 +msgid "Hole to Hole Clearance" +msgstr "Hole to Hole Clearance" + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:205 +#: flatcamTools/ToolRulesCheck.py:451 +msgid "" +"This checks if the minimum clearance between a drill hole\n" +"and another drill hole is met." +msgstr "" +"This checks if the minimum clearance between a drill hole\n" +"and another drill hole is met." + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:218 +#: flatcamTools/ToolRulesCheck.py:487 +msgid "Minimum acceptable drill size." +msgstr "Minimum acceptable drill size." + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:223 +#: flatcamTools/ToolRulesCheck.py:472 flatcamTools/ToolRulesCheck.py:847 +msgid "Hole Size" +msgstr "Hole Size" + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:225 +#: flatcamTools/ToolRulesCheck.py:474 +msgid "" +"This checks if the drill holes\n" +"sizes are above the threshold." +msgstr "" +"This checks if the drill holes\n" +"sizes are above the threshold." + +#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:27 +msgid "2Sided Tool Options" +msgstr "2Sided Tool Options" + +#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:33 +msgid "" +"A tool to help in creating a double sided\n" +"PCB using alignment holes." +msgstr "" +"A tool to help in creating a double sided\n" +"PCB using alignment holes." + +#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:47 +msgid "Drill dia" +msgstr "Drill dia" + +#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:49 +#: flatcamTools/ToolDblSided.py:363 flatcamTools/ToolDblSided.py:368 +msgid "Diameter of the drill for the alignment holes." +msgstr "Diameter of the drill for the alignment holes." + +#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:56 +#: flatcamTools/ToolDblSided.py:377 +msgid "Align Axis" +msgstr "Align Axis" + +#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:58 +#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:71 +#: flatcamTools/ToolDblSided.py:165 flatcamTools/ToolDblSided.py:379 +msgid "Mirror vertically (X) or horizontally (Y)." +msgstr "Mirror vertically (X) or horizontally (Y)." + +#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:69 +msgid "Mirror Axis:" +msgstr "Mirror Axis:" + +#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:80 +#: flatcamTools/ToolDblSided.py:181 +msgid "Point" +msgstr "Point" + +#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:81 +#: flatcamTools/ToolDblSided.py:182 +msgid "Box" +msgstr "Box" + +#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:82 +msgid "Axis Ref" +msgstr "Axis Ref" + +#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:84 +msgid "" +"The axis should pass through a point or cut\n" +" a specified box (in a FlatCAM object) through \n" +"the center." +msgstr "" +"The axis should pass through a point or cut\n" +" a specified box (in a FlatCAM object) through \n" +"the center." + +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:27 +msgid "Calculators Tool Options" +msgstr "Calculators Tool Options" + +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:31 +#: flatcamTools/ToolCalculators.py:25 +msgid "V-Shape Tool Calculator" +msgstr "V-Shape Tool Calculator" + +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:33 +msgid "" +"Calculate the tool diameter for a given V-shape tool,\n" +"having the tip diameter, tip angle and\n" +"depth-of-cut as parameters." +msgstr "" +"Calculate the tool diameter for a given V-shape tool,\n" +"having the tip diameter, tip angle and\n" +"depth-of-cut as parameters." + +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:50 +#: flatcamTools/ToolCalculators.py:94 +msgid "Tip Diameter" +msgstr "Tip Diameter" + +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:52 +#: flatcamTools/ToolCalculators.py:102 +msgid "" +"This is the tool tip diameter.\n" +"It is specified by manufacturer." +msgstr "" +"This is the tool tip diameter.\n" +"It is specified by manufacturer." + +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:64 +#: flatcamTools/ToolCalculators.py:105 +msgid "Tip Angle" +msgstr "Tip Angle" + +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:66 +msgid "" +"This is the angle on the tip of the tool.\n" +"It is specified by manufacturer." +msgstr "" +"This is the angle on the tip of the tool.\n" +"It is specified by manufacturer." + +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:80 +msgid "" +"This is depth to cut into material.\n" +"In the CNCJob object it is the CutZ parameter." +msgstr "" +"This is depth to cut into material.\n" +"In the CNCJob object it is the CutZ parameter." + +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:87 +#: flatcamTools/ToolCalculators.py:27 +msgid "ElectroPlating Calculator" +msgstr "ElectroPlating Calculator" + +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:89 +#: flatcamTools/ToolCalculators.py:158 +msgid "" +"This calculator is useful for those who plate the via/pad/drill holes,\n" +"using a method like graphite ink or calcium hypophosphite ink or palladium " +"chloride." +msgstr "" +"This calculator is useful for those who plate the via/pad/drill holes,\n" +"using a method like graphite ink or calcium hypophosphite ink or palladium " +"chloride." + +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:100 +#: flatcamTools/ToolCalculators.py:167 +msgid "Board Length" +msgstr "Board Length" + +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:102 +#: flatcamTools/ToolCalculators.py:173 +msgid "This is the board length. In centimeters." +msgstr "This is the board length. In centimeters." + +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:112 +#: flatcamTools/ToolCalculators.py:175 +msgid "Board Width" +msgstr "Board Width" + +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:114 +#: flatcamTools/ToolCalculators.py:181 +msgid "This is the board width.In centimeters." +msgstr "This is the board width.In centimeters." + +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:119 +#: flatcamTools/ToolCalculators.py:183 +msgid "Current Density" +msgstr "Current Density" + +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:125 +#: flatcamTools/ToolCalculators.py:190 +msgid "" +"Current density to pass through the board. \n" +"In Amps per Square Feet ASF." +msgstr "" +"Current density to pass through the board. \n" +"In Amps per Square Feet ASF." + +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:131 +#: flatcamTools/ToolCalculators.py:193 +msgid "Copper Growth" +msgstr "Copper Growth" + +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:137 +#: flatcamTools/ToolCalculators.py:200 +msgid "" +"How thick the copper growth is intended to be.\n" +"In microns." +msgstr "" +"How thick the copper growth is intended to be.\n" +"In microns." + +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:28 +msgid "Cutout Tool Options" +msgstr "Cutout Tool Options" + +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:43 +#: flatcamTools/ToolCalculators.py:123 flatcamTools/ToolCutOut.py:129 +msgid "Tool Diameter" +msgstr "Tool Diameter" + +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:45 +#: flatcamTools/ToolCutOut.py:131 +msgid "" +"Diameter of the tool used to cutout\n" +"the PCB shape out of the surrounding material." +msgstr "" +"Diameter of the tool used to cutout\n" +"the PCB shape out of the surrounding material." + +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:100 +msgid "Object kind" +msgstr "Object kind" + +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:102 +#: flatcamTools/ToolCutOut.py:77 +msgid "" +"Choice of what kind the object we want to cutout is.
    - Single: " +"contain a single PCB Gerber outline object.
    - Panel: a panel PCB " +"Gerber object, which is made\n" +"out of many individual PCB outlines." +msgstr "" +"Choice of what kind the object we want to cutout is.
    - Single: " +"contain a single PCB Gerber outline object.
    - Panel: a panel PCB " +"Gerber object, which is made\n" +"out of many individual PCB outlines." + +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:109 +#: flatcamTools/ToolCutOut.py:83 +msgid "Single" +msgstr "Single" + +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:110 +#: flatcamTools/ToolCutOut.py:84 +msgid "Panel" +msgstr "Panel" + +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:117 +#: flatcamTools/ToolCutOut.py:192 +msgid "" +"Margin over bounds. A positive value here\n" +"will make the cutout of the PCB further from\n" +"the actual PCB border" +msgstr "" +"Margin over bounds. A positive value here\n" +"will make the cutout of the PCB further from\n" +"the actual PCB border" + +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:130 +#: flatcamTools/ToolCutOut.py:203 +msgid "Gap size" +msgstr "Gap size" + +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:132 +#: flatcamTools/ToolCutOut.py:205 +msgid "" +"The size of the bridge gaps in the cutout\n" +"used to keep the board connected to\n" +"the surrounding material (the one \n" +"from which the PCB is cutout)." +msgstr "" +"The size of the bridge gaps in the cutout\n" +"used to keep the board connected to\n" +"the surrounding material (the one \n" +"from which the PCB is cutout)." + +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:146 +#: flatcamTools/ToolCutOut.py:245 +msgid "Gaps" +msgstr "Gaps" + +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:148 +msgid "" +"Number of gaps used for the cutout.\n" +"There can be maximum 8 bridges/gaps.\n" +"The choices are:\n" +"- None - no gaps\n" +"- lr - left + right\n" +"- tb - top + bottom\n" +"- 4 - left + right +top + bottom\n" +"- 2lr - 2*left + 2*right\n" +"- 2tb - 2*top + 2*bottom\n" +"- 8 - 2*left + 2*right +2*top + 2*bottom" +msgstr "" +"Number of gaps used for the cutout.\n" +"There can be maximum 8 bridges/gaps.\n" +"The choices are:\n" +"- None - no gaps\n" +"- lr - left + right\n" +"- tb - top + bottom\n" +"- 4 - left + right +top + bottom\n" +"- 2lr - 2*left + 2*right\n" +"- 2tb - 2*top + 2*bottom\n" +"- 8 - 2*left + 2*right +2*top + 2*bottom" + +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:170 +#: flatcamTools/ToolCutOut.py:222 +msgid "Convex Shape" +msgstr "Convex Shape" + +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:172 +#: flatcamTools/ToolCutOut.py:225 +msgid "" +"Create a convex shape surrounding the entire PCB.\n" +"Used only if the source object type is Gerber." +msgstr "" +"Create a convex shape surrounding the entire PCB.\n" +"Used only if the source object type is Gerber." + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:27 +msgid "Film Tool Options" +msgstr "Film Tool Options" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:33 +msgid "" +"Create a PCB film from a Gerber or Geometry\n" +"FlatCAM object.\n" +"The file is saved in SVG format." +msgstr "" +"Create a PCB film from a Gerber or Geometry\n" +"FlatCAM object.\n" +"The file is saved in SVG format." + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:44 +msgid "Film Type" +msgstr "Film Type" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:46 +#: flatcamTools/ToolFilm.py:300 +msgid "" +"Generate a Positive black film or a Negative film.\n" +"Positive means that it will print the features\n" +"with black on a white canvas.\n" +"Negative means that it will print the features\n" +"with white on a black canvas.\n" +"The Film format is SVG." +msgstr "" +"Generate a Positive black film or a Negative film.\n" +"Positive means that it will print the features\n" +"with black on a white canvas.\n" +"Negative means that it will print the features\n" +"with white on a black canvas.\n" +"The Film format is SVG." + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:57 +msgid "Film Color" +msgstr "Film Color" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:59 +msgid "Set the film color when positive film is selected." +msgstr "Set the film color when positive film is selected." + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:82 +#: flatcamTools/ToolFilm.py:316 +msgid "Border" +msgstr "Border" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:84 +#: flatcamTools/ToolFilm.py:318 +msgid "" +"Specify a border around the object.\n" +"Only for negative film.\n" +"It helps if we use as a Box Object the same \n" +"object as in Film Object. It will create a thick\n" +"black bar around the actual print allowing for a\n" +"better delimitation of the outline features which are of\n" +"white color like the rest and which may confound with the\n" +"surroundings if not for this border." +msgstr "" +"Specify a border around the object.\n" +"Only for negative film.\n" +"It helps if we use as a Box Object the same \n" +"object as in Film Object. It will create a thick\n" +"black bar around the actual print allowing for a\n" +"better delimitation of the outline features which are of\n" +"white color like the rest and which may confound with the\n" +"surroundings if not for this border." + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:101 +#: flatcamTools/ToolFilm.py:283 +msgid "Scale Stroke" +msgstr "Scale Stroke" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:103 +#: flatcamTools/ToolFilm.py:285 +msgid "" +"Scale the line stroke thickness of each feature in the SVG file.\n" +"It means that the line that envelope each SVG feature will be thicker or " +"thinner,\n" +"therefore the fine features may be more affected by this parameter." +msgstr "" +"Scale the line stroke thickness of each feature in the SVG file.\n" +"It means that the line that envelope each SVG feature will be thicker or " +"thinner,\n" +"therefore the fine features may be more affected by this parameter." + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:110 +#: flatcamTools/ToolFilm.py:141 +msgid "Film Adjustments" +msgstr "Film Adjustments" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:112 +#: flatcamTools/ToolFilm.py:143 +msgid "" +"Sometime the printers will distort the print shape, especially the Laser " +"types.\n" +"This section provide the tools to compensate for the print distortions." +msgstr "" +"Sometime the printers will distort the print shape, especially the Laser " +"types.\n" +"This section provide the tools to compensate for the print distortions." + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:119 +#: flatcamTools/ToolFilm.py:150 +msgid "Scale Film geometry" +msgstr "Scale Film geometry" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:121 +#: flatcamTools/ToolFilm.py:152 +msgid "" +"A value greater than 1 will stretch the film\n" +"while a value less than 1 will jolt it." +msgstr "" +"A value greater than 1 will stretch the film\n" +"while a value less than 1 will jolt it." + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:131 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:103 +#: flatcamTools/ToolFilm.py:162 flatcamTools/ToolTransform.py:148 +msgid "X factor" +msgstr "X factor" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:140 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:116 +#: flatcamTools/ToolFilm.py:171 flatcamTools/ToolTransform.py:168 +msgid "Y factor" +msgstr "Y factor" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:150 +#: flatcamTools/ToolFilm.py:189 +msgid "Skew Film geometry" +msgstr "Skew Film geometry" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:152 +#: flatcamTools/ToolFilm.py:191 +msgid "" +"Positive values will skew to the right\n" +"while negative values will skew to the left." +msgstr "" +"Positive values will skew to the right\n" +"while negative values will skew to the left." + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:162 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:72 +#: flatcamTools/ToolFilm.py:201 flatcamTools/ToolTransform.py:97 +msgid "X angle" +msgstr "X angle" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:171 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:86 +#: flatcamTools/ToolFilm.py:210 flatcamTools/ToolTransform.py:118 +msgid "Y angle" +msgstr "Y angle" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:182 +#: flatcamTools/ToolFilm.py:221 +msgid "" +"The reference point to be used as origin for the skew.\n" +"It can be one of the four points of the geometry bounding box." +msgstr "" +"The reference point to be used as origin for the skew.\n" +"It can be one of the four points of the geometry bounding box." + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:185 +#: flatcamTools/ToolFiducials.py:87 flatcamTools/ToolFilm.py:224 +msgid "Bottom Left" +msgstr "Bottom Left" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:186 +#: flatcamTools/ToolFilm.py:225 +msgid "Top Left" +msgstr "Top Left" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:187 +#: flatcamTools/ToolFilm.py:226 +msgid "Bottom Right" +msgstr "Bottom Right" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:188 +#: flatcamTools/ToolFilm.py:227 +msgid "Top right" +msgstr "Top right" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:196 +#: flatcamTools/ToolFilm.py:244 +msgid "Mirror Film geometry" +msgstr "Mirror Film geometry" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:198 +#: flatcamTools/ToolFilm.py:246 +msgid "Mirror the film geometry on the selected axis or on both." +msgstr "Mirror the film geometry on the selected axis or on both." + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:212 +#: flatcamTools/ToolFilm.py:260 +msgid "Mirror axis" +msgstr "Mirror axis" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:222 +#: flatcamTools/ToolFilm.py:405 +msgid "SVG" +msgstr "SVG" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:223 +#: flatcamTools/ToolFilm.py:406 +msgid "PNG" +msgstr "PNG" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:224 +#: flatcamTools/ToolFilm.py:407 +msgid "PDF" +msgstr "PDF" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:227 +#: flatcamTools/ToolFilm.py:298 flatcamTools/ToolFilm.py:410 +msgid "Film Type:" +msgstr "Film Type:" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:229 +#: flatcamTools/ToolFilm.py:412 +msgid "" +"The file type of the saved film. Can be:\n" +"- 'SVG' -> open-source vectorial format\n" +"- 'PNG' -> raster image\n" +"- 'PDF' -> portable document format" +msgstr "" +"The file type of the saved film. Can be:\n" +"- 'SVG' -> open-source vectorial format\n" +"- 'PNG' -> raster image\n" +"- 'PDF' -> portable document format" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:238 +#: flatcamTools/ToolFilm.py:421 +msgid "Page Orientation" +msgstr "Page Orientation" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:251 +#: flatcamTools/ToolFilm.py:434 +msgid "Page Size" +msgstr "Page Size" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:252 +#: flatcamTools/ToolFilm.py:435 +msgid "A selection of standard ISO 216 page sizes." +msgstr "A selection of standard ISO 216 page sizes." + +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:27 +msgid "NCC Tool Options" +msgstr "NCC Tool Options" + +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:49 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:57 +msgid "Comma separated values" +msgstr "Comma separated values" + +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:55 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:63 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:64 +#: flatcamTools/ToolNCC.py:215 flatcamTools/ToolNCC.py:223 +#: flatcamTools/ToolPaint.py:198 flatcamTools/ToolPaint.py:206 +msgid "" +"Default tool type:\n" +"- 'V-shape'\n" +"- Circular" +msgstr "" +"Default tool type:\n" +"- 'V-shape'\n" +"- Circular" + +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:60 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:69 +#: flatcamTools/ToolNCC.py:220 flatcamTools/ToolPaint.py:203 +msgid "V-shape" +msgstr "V-shape" + +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:100 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:109 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:107 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:116 +#: flatcamTools/ToolNCC.py:262 flatcamTools/ToolNCC.py:271 +#: flatcamTools/ToolPaint.py:245 flatcamTools/ToolPaint.py:254 +msgid "" +"Depth of cut into material. Negative value.\n" +"In FlatCAM units." +msgstr "" +"Depth of cut into material. Negative value.\n" +"In FlatCAM units." + +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:119 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:125 +#: flatcamTools/ToolNCC.py:280 flatcamTools/ToolPaint.py:263 +msgid "" +"Diameter for the new tool to add in the Tool Table.\n" +"If the tool is V-shape type then this value is automatically\n" +"calculated from the other parameters." +msgstr "" +"Diameter for the new tool to add in the Tool Table.\n" +"If the tool is V-shape type then this value is automatically\n" +"calculated from the other parameters." + +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:156 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:142 +#: flatcamTools/ToolNCC.py:174 flatcamTools/ToolPaint.py:158 +msgid "Tool order" +msgstr "Tool order" + +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:157 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:167 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:143 +#: flatcamTools/ToolNCC.py:175 flatcamTools/ToolNCC.py:185 +#: flatcamTools/ToolPaint.py:159 flatcamTools/ToolPaint.py:169 +msgid "" +"This set the way that the tools in the tools table are used.\n" +"'No' --> means that the used order is the one in the tool table\n" +"'Forward' --> means that the tools will be ordered from small to big\n" +"'Reverse' --> means that the tools will ordered from big to small\n" +"\n" +"WARNING: using rest machining will automatically set the order\n" +"in reverse and disable this control." +msgstr "" +"This set the way that the tools in the tools table are used.\n" +"'No' --> means that the used order is the one in the tool table\n" +"'Forward' --> means that the tools will be ordered from small to big\n" +"'Reverse' --> means that the tools will ordered from big to small\n" +"\n" +"WARNING: using rest machining will automatically set the order\n" +"in reverse and disable this control." + +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:165 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:151 +#: flatcamTools/ToolNCC.py:183 flatcamTools/ToolPaint.py:167 +msgid "Forward" +msgstr "Forward" + +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:166 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:152 +#: flatcamTools/ToolNCC.py:184 flatcamTools/ToolPaint.py:168 +msgid "Reverse" +msgstr "Reverse" + +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:266 +msgid "Offset value" +msgstr "Offset value" + +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:268 +msgid "" +"If used, it will add an offset to the copper features.\n" +"The copper clearing will finish to a distance\n" +"from the copper features.\n" +"The value can be between 0.0 and 9999.9 FlatCAM units." +msgstr "" +"If used, it will add an offset to the copper features.\n" +"The copper clearing will finish to a distance\n" +"from the copper features.\n" +"The value can be between 0.0 and 9999.9 FlatCAM units." + +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:288 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:244 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:245 +#: flatcamTools/ToolNCC.py:512 flatcamTools/ToolPaint.py:442 +msgid "Rest Machining" +msgstr "Rest Machining" + +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:290 +#: flatcamTools/ToolNCC.py:516 +msgid "" +"If checked, use 'rest machining'.\n" +"Basically it will clear copper outside PCB features,\n" +"using the biggest tool and continue with the next tools,\n" +"from bigger to smaller, to clear areas of copper that\n" +"could not be cleared by previous tool, until there is\n" +"no more copper to clear or there are no more tools.\n" +"If not checked, use the standard algorithm." +msgstr "" +"If checked, use 'rest machining'.\n" +"Basically it will clear copper outside PCB features,\n" +"using the biggest tool and continue with the next tools,\n" +"from bigger to smaller, to clear areas of copper that\n" +"could not be cleared by previous tool, until there is\n" +"no more copper to clear or there are no more tools.\n" +"If not checked, use the standard algorithm." + +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:313 +#: flatcamTools/ToolNCC.py:541 +msgid "" +"Selection of area to be processed.\n" +"- 'Itself' - the processing extent is based on the object that is " +"processed.\n" +" - 'Area Selection' - left mouse click to start selection of the area to be " +"processed.\n" +"- 'Reference Object' - will process the area specified by another object." +msgstr "" +"Selection of area to be processed.\n" +"- 'Itself' - the processing extent is based on the object that is " +"processed.\n" +" - 'Area Selection' - left mouse click to start selection of the area to be " +"processed.\n" +"- 'Reference Object' - will process the area specified by another object." + +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:339 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:303 +msgid "Normal" +msgstr "Normal" + +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:340 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:304 +msgid "Progressive" +msgstr "Progressive" + +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:341 +msgid "NCC Plotting" +msgstr "NCC Plotting" + +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:343 +msgid "" +"- 'Normal' - normal plotting, done at the end of the NCC job\n" +"- 'Progressive' - after each shape is generated it will be plotted." +msgstr "" +"- 'Normal' - normal plotting, done at the end of the NCC job\n" +"- 'Progressive' - after each shape is generated it will be plotted." + +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:27 +msgid "Paint Tool Options" +msgstr "Paint Tool Options" + +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:33 +msgid "Parameters:" +msgstr "Parameters:" + +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:247 +#: flatcamTools/ToolPaint.py:445 +msgid "" +"If checked, use 'rest machining'.\n" +"Basically it will clear copper outside PCB features,\n" +"using the biggest tool and continue with the next tools,\n" +"from bigger to smaller, to clear areas of copper that\n" +"could not be cleared by previous tool, until there is\n" +"no more copper to clear or there are no more tools.\n" +"\n" +"If not checked, use the standard algorithm." +msgstr "" +"If checked, use 'rest machining'.\n" +"Basically it will clear copper outside PCB features,\n" +"using the biggest tool and continue with the next tools,\n" +"from bigger to smaller, to clear areas of copper that\n" +"could not be cleared by previous tool, until there is\n" +"no more copper to clear or there are no more tools.\n" +"\n" +"If not checked, use the standard algorithm." + +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:260 +#: flatcamTools/ToolPaint.py:458 +msgid "" +"Selection of area to be processed.\n" +"- 'Polygon Selection' - left mouse click to add/remove polygons to be " +"processed.\n" +"- 'Area Selection' - left mouse click to start selection of the area to be " +"processed.\n" +"Keeping a modifier key pressed (CTRL or SHIFT) will allow to add multiple " +"areas.\n" +"- 'All Polygons' - the process will start after click.\n" +"- 'Reference Object' - will process the area specified by another object." +msgstr "" +"Selection of area to be processed.\n" +"- 'Polygon Selection' - left mouse click to add/remove polygons to be " +"processed.\n" +"- 'Area Selection' - left mouse click to start selection of the area to be " +"processed.\n" +"Keeping a modifier key pressed (CTRL or SHIFT) will allow to add multiple " +"areas.\n" +"- 'All Polygons' - the process will start after click.\n" +"- 'Reference Object' - will process the area specified by another object." + +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280 +#: flatcamTools/ToolPaint.py:486 flatcamTools/ToolPaint.py:942 +#: flatcamTools/ToolPaint.py:1432 tclCommands/TclCommandPaint.py:164 +msgid "Polygon Selection" +msgstr "Polygon Selection" + +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:305 +msgid "Paint Plotting" +msgstr "Paint Plotting" + +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:307 +msgid "" +"- 'Normal' - normal plotting, done at the end of the Paint job\n" +"- 'Progressive' - after each shape is generated it will be plotted." +msgstr "" +"- 'Normal' - normal plotting, done at the end of the Paint job\n" +"- 'Progressive' - after each shape is generated it will be plotted." + +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:27 +msgid "Panelize Tool Options" +msgstr "Panelize Tool Options" + +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:33 +msgid "" +"Create an object that contains an array of (x, y) elements,\n" +"each element is a copy of the source object spaced\n" +"at a X distance, Y distance of each other." +msgstr "" +"Create an object that contains an array of (x, y) elements,\n" +"each element is a copy of the source object spaced\n" +"at a X distance, Y distance of each other." + +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:50 +#: flatcamTools/ToolPanelize.py:163 +msgid "Spacing cols" +msgstr "Spacing cols" + +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:52 +#: flatcamTools/ToolPanelize.py:165 +msgid "" +"Spacing between columns of the desired panel.\n" +"In current units." +msgstr "" +"Spacing between columns of the desired panel.\n" +"In current units." + +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:64 +#: flatcamTools/ToolPanelize.py:175 +msgid "Spacing rows" +msgstr "Spacing rows" + +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:66 +#: flatcamTools/ToolPanelize.py:177 +msgid "" +"Spacing between rows of the desired panel.\n" +"In current units." +msgstr "" +"Spacing between rows of the desired panel.\n" +"In current units." + +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:77 +#: flatcamTools/ToolPanelize.py:186 +msgid "Columns" +msgstr "Columns" + +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:79 +#: flatcamTools/ToolPanelize.py:188 +msgid "Number of columns of the desired panel" +msgstr "Number of columns of the desired panel" + +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:89 +#: flatcamTools/ToolPanelize.py:196 +msgid "Rows" +msgstr "Rows" + +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:91 +#: flatcamTools/ToolPanelize.py:198 +msgid "Number of rows of the desired panel" +msgstr "Number of rows of the desired panel" + +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:98 +#: flatcamTools/ToolPanelize.py:205 +msgid "Geo" +msgstr "Geo" + +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:99 +#: flatcamTools/ToolPanelize.py:206 +msgid "Panel Type" +msgstr "Panel Type" + +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:101 +msgid "" +"Choose the type of object for the panel object:\n" +"- Gerber\n" +"- Geometry" +msgstr "" +"Choose the type of object for the panel object:\n" +"- Gerber\n" +"- Geometry" + +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:110 +msgid "Constrain within" +msgstr "Constrain within" + +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:112 +#: flatcamTools/ToolPanelize.py:218 +msgid "" +"Area define by DX and DY within to constrain the panel.\n" +"DX and DY values are in current units.\n" +"Regardless of how many columns and rows are desired,\n" +"the final panel will have as many columns and rows as\n" +"they fit completely within selected area." +msgstr "" +"Area define by DX and DY within to constrain the panel.\n" +"DX and DY values are in current units.\n" +"Regardless of how many columns and rows are desired,\n" +"the final panel will have as many columns and rows as\n" +"they fit completely within selected area." + +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:125 +#: flatcamTools/ToolPanelize.py:230 +msgid "Width (DX)" +msgstr "Width (DX)" + +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:127 +#: flatcamTools/ToolPanelize.py:232 +msgid "" +"The width (DX) within which the panel must fit.\n" +"In current units." +msgstr "" +"The width (DX) within which the panel must fit.\n" +"In current units." + +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:138 +#: flatcamTools/ToolPanelize.py:241 +msgid "Height (DY)" +msgstr "Height (DY)" + +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:140 +#: flatcamTools/ToolPanelize.py:243 +msgid "" +"The height (DY)within which the panel must fit.\n" +"In current units." +msgstr "" +"The height (DY)within which the panel must fit.\n" +"In current units." + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:27 +msgid "SolderPaste Tool Options" +msgstr "SolderPaste Tool Options" + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:33 +msgid "" +"A tool to create GCode for dispensing\n" +"solder paste onto a PCB." +msgstr "" +"A tool to create GCode for dispensing\n" +"solder paste onto a PCB." + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:54 +msgid "New Nozzle Dia" +msgstr "New Nozzle Dia" + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:56 +#: flatcamTools/ToolSolderPaste.py:107 +msgid "Diameter for the new Nozzle tool to add in the Tool Table" +msgstr "Diameter for the new Nozzle tool to add in the Tool Table" + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:72 +#: flatcamTools/ToolSolderPaste.py:183 +msgid "Z Dispense Start" +msgstr "Z Dispense Start" + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:74 +#: flatcamTools/ToolSolderPaste.py:185 +msgid "The height (Z) when solder paste dispensing starts." +msgstr "The height (Z) when solder paste dispensing starts." + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:85 +#: flatcamTools/ToolSolderPaste.py:195 +msgid "Z Dispense" +msgstr "Z Dispense" + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:87 +#: flatcamTools/ToolSolderPaste.py:197 +msgid "The height (Z) when doing solder paste dispensing." +msgstr "The height (Z) when doing solder paste dispensing." + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:98 +#: flatcamTools/ToolSolderPaste.py:207 +msgid "Z Dispense Stop" +msgstr "Z Dispense Stop" + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:100 +#: flatcamTools/ToolSolderPaste.py:209 +msgid "The height (Z) when solder paste dispensing stops." +msgstr "The height (Z) when solder paste dispensing stops." + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:111 +#: flatcamTools/ToolSolderPaste.py:219 +msgid "Z Travel" +msgstr "Z Travel" + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:113 +#: flatcamTools/ToolSolderPaste.py:221 +msgid "" +"The height (Z) for travel between pads\n" +"(without dispensing solder paste)." +msgstr "" +"The height (Z) for travel between pads\n" +"(without dispensing solder paste)." + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:125 +#: flatcamTools/ToolSolderPaste.py:232 +msgid "Z Toolchange" +msgstr "Z Toolchange" + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:127 +#: flatcamTools/ToolSolderPaste.py:234 +msgid "The height (Z) for tool (nozzle) change." +msgstr "The height (Z) for tool (nozzle) change." + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:136 +#: flatcamTools/ToolSolderPaste.py:242 +msgid "" +"The X,Y location for tool (nozzle) change.\n" +"The format is (x, y) where x and y are real numbers." +msgstr "" +"The X,Y location for tool (nozzle) change.\n" +"The format is (x, y) where x and y are real numbers." + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:150 +#: flatcamTools/ToolSolderPaste.py:255 +msgid "Feedrate (speed) while moving on the X-Y plane." +msgstr "Feedrate (speed) while moving on the X-Y plane." + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:163 +#: flatcamTools/ToolSolderPaste.py:267 +msgid "" +"Feedrate (speed) while moving vertically\n" +"(on Z plane)." +msgstr "" +"Feedrate (speed) while moving vertically\n" +"(on Z plane)." + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:175 +#: flatcamTools/ToolSolderPaste.py:278 +msgid "Feedrate Z Dispense" +msgstr "Feedrate Z Dispense" + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:177 +msgid "" +"Feedrate (speed) while moving up vertically\n" +"to Dispense position (on Z plane)." +msgstr "" +"Feedrate (speed) while moving up vertically\n" +"to Dispense position (on Z plane)." + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:188 +#: flatcamTools/ToolSolderPaste.py:290 +msgid "Spindle Speed FWD" +msgstr "Spindle Speed FWD" + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:190 +#: flatcamTools/ToolSolderPaste.py:292 +msgid "" +"The dispenser speed while pushing solder paste\n" +"through the dispenser nozzle." +msgstr "" +"The dispenser speed while pushing solder paste\n" +"through the dispenser nozzle." + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:202 +#: flatcamTools/ToolSolderPaste.py:303 +msgid "Dwell FWD" +msgstr "Dwell FWD" + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:204 +#: flatcamTools/ToolSolderPaste.py:305 +msgid "Pause after solder dispensing." +msgstr "Pause after solder dispensing." + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:214 +#: flatcamTools/ToolSolderPaste.py:314 +msgid "Spindle Speed REV" +msgstr "Spindle Speed REV" + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:216 +#: flatcamTools/ToolSolderPaste.py:316 +msgid "" +"The dispenser speed while retracting solder paste\n" +"through the dispenser nozzle." +msgstr "" +"The dispenser speed while retracting solder paste\n" +"through the dispenser nozzle." + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:228 +#: flatcamTools/ToolSolderPaste.py:327 +msgid "Dwell REV" +msgstr "Dwell REV" + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:230 +#: flatcamTools/ToolSolderPaste.py:329 +msgid "" +"Pause after solder paste dispenser retracted,\n" +"to allow pressure equilibrium." +msgstr "" +"Pause after solder paste dispenser retracted,\n" +"to allow pressure equilibrium." + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:239 +#: flatcamTools/ToolSolderPaste.py:337 +msgid "Files that control the GCode generation." +msgstr "Files that control the GCode generation." + +#: flatcamGUI/preferences/tools/ToolsSubPrefGroupUI.py:27 +msgid "Substractor Tool Options" +msgstr "Substractor Tool Options" + +#: flatcamGUI/preferences/tools/ToolsSubPrefGroupUI.py:33 +msgid "" +"A tool to substract one Gerber or Geometry object\n" +"from another of the same type." +msgstr "" +"A tool to substract one Gerber or Geometry object\n" +"from another of the same type." + +#: flatcamGUI/preferences/tools/ToolsSubPrefGroupUI.py:38 +#: flatcamTools/ToolSub.py:155 +msgid "Close paths" +msgstr "Close paths" + +#: flatcamGUI/preferences/tools/ToolsSubPrefGroupUI.py:39 +msgid "" +"Checking this will close the paths cut by the Geometry substractor object." +msgstr "" +"Checking this will close the paths cut by the Geometry substractor object." + +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:27 +msgid "Transform Tool Options" +msgstr "Transform Tool Options" + +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:33 +msgid "" +"Various transformations that can be applied\n" +"on a FlatCAM object." +msgstr "" +"Various transformations that can be applied\n" +"on a FlatCAM object." + +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:64 +msgid "Skew" +msgstr "Skew" + +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:105 +#: flatcamTools/ToolTransform.py:150 +msgid "Factor for scaling on X axis." +msgstr "Factor for scaling on X axis." + +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:118 +#: flatcamTools/ToolTransform.py:170 +msgid "Factor for scaling on Y axis." +msgstr "Factor for scaling on Y axis." + +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:126 +#: flatcamTools/ToolTransform.py:191 +msgid "" +"Scale the selected object(s)\n" +"using the Scale_X factor for both axis." +msgstr "" +"Scale the selected object(s)\n" +"using the Scale_X factor for both axis." + +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:134 +#: flatcamTools/ToolTransform.py:198 +msgid "" +"Scale the selected object(s)\n" +"using the origin reference when checked,\n" +"and the center of the biggest bounding box\n" +"of the selected objects when unchecked." +msgstr "" +"Scale the selected object(s)\n" +"using the origin reference when checked,\n" +"and the center of the biggest bounding box\n" +"of the selected objects when unchecked." + +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:150 +#: flatcamTools/ToolTransform.py:217 +msgid "X val" +msgstr "X val" + +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:152 +#: flatcamTools/ToolTransform.py:219 +msgid "Distance to offset on X axis. In current units." +msgstr "Distance to offset on X axis. In current units." + +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:163 +#: flatcamTools/ToolTransform.py:237 +msgid "Y val" +msgstr "Y val" + +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:165 +#: flatcamTools/ToolTransform.py:239 +msgid "Distance to offset on Y axis. In current units." +msgstr "Distance to offset on Y axis. In current units." + +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:171 +#: flatcamTools/ToolDblSided.py:67 flatcamTools/ToolDblSided.py:95 +#: flatcamTools/ToolDblSided.py:125 +msgid "Mirror" +msgstr "Mirror" + +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:175 +#: flatcamTools/ToolTransform.py:283 +msgid "Mirror Reference" +msgstr "Mirror Reference" + +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:177 +#: flatcamTools/ToolTransform.py:285 +msgid "" +"Flip the selected object(s)\n" +"around the point in Point Entry Field.\n" +"\n" +"The point coordinates can be captured by\n" +"left click on canvas together with pressing\n" +"SHIFT key. \n" +"Then click Add button to insert coordinates.\n" +"Or enter the coords in format (x, y) in the\n" +"Point Entry field and click Flip on X(Y)" +msgstr "" +"Flip the selected object(s)\n" +"around the point in Point Entry Field.\n" +"\n" +"The point coordinates can be captured by\n" +"left click on canvas together with pressing\n" +"SHIFT key. \n" +"Then click Add button to insert coordinates.\n" +"Or enter the coords in format (x, y) in the\n" +"Point Entry field and click Flip on X(Y)" + +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:188 +msgid "Mirror Reference point" +msgstr "Mirror Reference point" + +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:190 +msgid "" +"Coordinates in format (x, y) used as reference for mirroring.\n" +"The 'x' in (x, y) will be used when using Flip on X and\n" +"the 'y' in (x, y) will be used when using Flip on Y and" +msgstr "" +"Coordinates in format (x, y) used as reference for mirroring.\n" +"The 'x' in (x, y) will be used when using Flip on X and\n" +"the 'y' in (x, y) will be used when using Flip on Y and" + +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:203 +#: flatcamTools/ToolDistance.py:496 flatcamTools/ToolDistanceMin.py:287 +#: flatcamTools/ToolTransform.py:332 +msgid "Distance" +msgstr "Distance" + +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:205 +#: flatcamTools/ToolTransform.py:334 +msgid "" +"A positive value will create the effect of dilation,\n" +"while a negative value will create the effect of erosion.\n" +"Each geometry element of the object will be increased\n" +"or decreased with the 'distance'." +msgstr "" +"A positive value will create the effect of dilation,\n" +"while a negative value will create the effect of erosion.\n" +"Each geometry element of the object will be increased\n" +"or decreased with the 'distance'." + +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:222 +#: flatcamTools/ToolTransform.py:359 +msgid "" +"A positive value will create the effect of dilation,\n" +"while a negative value will create the effect of erosion.\n" +"Each geometry element of the object will be increased\n" +"or decreased to fit the 'Value'. Value is a percentage\n" +"of the initial dimension." +msgstr "" +"A positive value will create the effect of dilation,\n" +"while a negative value will create the effect of erosion.\n" +"Each geometry element of the object will be increased\n" +"or decreased to fit the 'Value'. Value is a percentage\n" +"of the initial dimension." + +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:241 +#: flatcamTools/ToolTransform.py:385 +msgid "" +"If checked then the buffer will surround the buffered shape,\n" +"every corner will be rounded.\n" +"If not checked then the buffer will follow the exact geometry\n" +"of the buffered shape." +msgstr "" +"If checked then the buffer will surround the buffered shape,\n" +"every corner will be rounded.\n" +"If not checked then the buffer will follow the exact geometry\n" +"of the buffered shape." + +#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:27 +msgid "Autocompleter Keywords" +msgstr "Autocompleter Keywords" + +#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:30 +#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:40 +#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:30 +#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:30 +msgid "Restore" +msgstr "Restore" + +#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:31 +msgid "Restore the autocompleter keywords list to the default state." +msgstr "Restore the autocompleter keywords list to the default state." + +#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:32 +#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:42 +#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:32 +#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:32 +msgid "Delete All" +msgstr "Delete All" + +#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:33 +msgid "Delete all autocompleter keywords from the list." +msgstr "Delete all autocompleter keywords from the list." + +#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:41 +msgid "Keywords list" +msgstr "Keywords list" + +#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:43 +msgid "" +"List of keywords used by\n" +"the autocompleter in FlatCAM.\n" +"The autocompleter is installed\n" +"in the Code Editor and for the Tcl Shell." +msgstr "" +"List of keywords used by\n" +"the autocompleter in FlatCAM.\n" +"The autocompleter is installed\n" +"in the Code Editor and for the Tcl Shell." + +#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:64 +#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:73 +#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:63 +#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:62 +msgid "Extension" +msgstr "Extension" + +#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:65 +msgid "A keyword to be added or deleted to the list." +msgstr "A keyword to be added or deleted to the list." + +#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:73 +msgid "Add keyword" +msgstr "Add keyword" + +#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:74 +msgid "Add a keyword to the list" +msgstr "Add a keyword to the list" + +#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:75 +msgid "Delete keyword" +msgstr "Delete keyword" + +#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:76 +msgid "Delete a keyword from the list" +msgstr "Delete a keyword from the list" + +#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:27 +msgid "Excellon File associations" +msgstr "Excellon File associations" + +#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:41 +#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:31 +#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:31 +msgid "Restore the extension list to the default state." +msgstr "Restore the extension list to the default state." + +#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:43 +#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:33 +#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:33 +msgid "Delete all extensions from the list." +msgstr "Delete all extensions from the list." + +#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:51 +#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:41 +#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:41 +msgid "Extensions list" +msgstr "Extensions list" + +#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:53 +#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:43 +#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:43 +msgid "" +"List of file extensions to be\n" +"associated with FlatCAM." +msgstr "" +"List of file extensions to be\n" +"associated with FlatCAM." + +#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:74 +#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:64 +#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:63 +msgid "A file extension to be added or deleted to the list." +msgstr "A file extension to be added or deleted to the list." + +#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:82 +#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:72 +#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:71 +msgid "Add Extension" +msgstr "Add Extension" + +#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:83 +#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:73 +#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:72 +msgid "Add a file extension to the list" +msgstr "Add a file extension to the list" + +#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:84 +#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:74 +#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:73 +msgid "Delete Extension" +msgstr "Delete Extension" + +#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:85 +#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:75 +#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:74 +msgid "Delete a file extension from the list" +msgstr "Delete a file extension from the list" + +#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:92 +#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:82 +#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:81 +msgid "Apply Association" +msgstr "Apply Association" + +#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:93 +#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:83 +#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:82 +msgid "" +"Apply the file associations between\n" +"FlatCAM and the files with above extensions.\n" +"They will be active after next logon.\n" +"This work only in Windows." +msgstr "" +"Apply the file associations between\n" +"FlatCAM and the files with above extensions.\n" +"They will be active after next logon.\n" +"This work only in Windows." + +#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:27 +msgid "GCode File associations" +msgstr "GCode File associations" + +#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:27 +msgid "Gerber File associations" +msgstr "Gerber File associations" + +#: flatcamObjects/FlatCAMCNCJob.py:429 flatcamObjects/FlatCAMDocument.py:71 +#: flatcamObjects/FlatCAMScript.py:82 +msgid "Basic" +msgstr "Basic" + +#: flatcamObjects/FlatCAMCNCJob.py:435 flatcamObjects/FlatCAMDocument.py:75 +#: flatcamObjects/FlatCAMScript.py:86 +msgid "Advanced" +msgstr "Advanced" + +#: flatcamObjects/FlatCAMCNCJob.py:478 +msgid "Plotting..." +msgstr "Plotting..." + +#: flatcamObjects/FlatCAMCNCJob.py:507 flatcamObjects/FlatCAMCNCJob.py:512 +#: flatcamTools/ToolSolderPaste.py:1499 +msgid "Export Machine Code ..." +msgstr "Export Machine Code ..." + +#: flatcamObjects/FlatCAMCNCJob.py:517 flatcamTools/ToolSolderPaste.py:1503 +msgid "Export Machine Code cancelled ..." +msgstr "Export Machine Code cancelled ..." + +#: flatcamObjects/FlatCAMCNCJob.py:538 +msgid "Machine Code file saved to" +msgstr "Machine Code file saved to" + +#: flatcamObjects/FlatCAMCNCJob.py:599 flatcamTools/ToolCalibration.py:1097 +msgid "Loaded Machine Code into Code Editor" +msgstr "Loaded Machine Code into Code Editor" + +#: flatcamObjects/FlatCAMCNCJob.py:740 +msgid "This CNCJob object can't be processed because it is a" +msgstr "This CNCJob object can't be processed because it is a" + +#: flatcamObjects/FlatCAMCNCJob.py:742 +msgid "CNCJob object" +msgstr "CNCJob object" + +#: flatcamObjects/FlatCAMCNCJob.py:922 +msgid "" +"G-code does not have a G94 code and we will not include the code in the " +"'Prepend to GCode' text box" +msgstr "" +"G-code does not have a G94 code and we will not include the code in the " +"'Prepend to GCode' text box" + +#: flatcamObjects/FlatCAMCNCJob.py:933 +msgid "Cancelled. The Toolchange Custom code is enabled but it's empty." +msgstr "Cancelled. The Toolchange Custom code is enabled but it's empty." + +#: flatcamObjects/FlatCAMCNCJob.py:938 +msgid "Toolchange G-code was replaced by a custom code." +msgstr "Toolchange G-code was replaced by a custom code." + +#: flatcamObjects/FlatCAMCNCJob.py:986 flatcamObjects/FlatCAMCNCJob.py:996 +msgid "" +"The used preprocessor file has to have in it's name: 'toolchange_custom'" +msgstr "" +"The used preprocessor file has to have in it's name: 'toolchange_custom'" + +#: flatcamObjects/FlatCAMCNCJob.py:999 +msgid "There is no preprocessor file." +msgstr "There is no preprocessor file." + +#: flatcamObjects/FlatCAMDocument.py:175 +msgid "Document Editor" +msgstr "Document Editor" + +#: flatcamObjects/FlatCAMExcellon.py:514 flatcamObjects/FlatCAMExcellon.py:746 +#: flatcamObjects/FlatCAMGeometry.py:323 flatcamObjects/FlatCAMGeometry.py:795 +#: flatcamTools/ToolNCC.py:811 flatcamTools/ToolNCC.py:1196 +#: flatcamTools/ToolPaint.py:779 flatcamTools/ToolPaint.py:1171 +msgid "Multiple Tools" +msgstr "Multiple Tools" + +#: flatcamObjects/FlatCAMExcellon.py:726 +msgid "No Tool Selected" +msgstr "No Tool Selected" + +#: flatcamObjects/FlatCAMExcellon.py:1076 +#: flatcamObjects/FlatCAMExcellon.py:1168 +#: flatcamObjects/FlatCAMExcellon.py:1355 +msgid "Please select one or more tools from the list and try again." +msgstr "Please select one or more tools from the list and try again." + +#: flatcamObjects/FlatCAMExcellon.py:1083 +msgid "Milling tool for DRILLS is larger than hole size. Cancelled." +msgstr "Milling tool for DRILLS is larger than hole size. Cancelled." + +#: flatcamObjects/FlatCAMExcellon.py:1098 +#: flatcamObjects/FlatCAMExcellon.py:1188 +#: flatcamObjects/FlatCAMExcellon.py:1373 +#: tclCommands/TclCommandDrillcncjob.py:193 +msgid "Tool_nr" +msgstr "Tool_nr" + +#: flatcamObjects/FlatCAMExcellon.py:1098 +#: flatcamObjects/FlatCAMExcellon.py:1188 +#: flatcamObjects/FlatCAMExcellon.py:1373 +#: tclCommands/TclCommandDrillcncjob.py:193 +msgid "Drills_Nr" +msgstr "Drills_Nr" + +#: flatcamObjects/FlatCAMExcellon.py:1098 +#: flatcamObjects/FlatCAMExcellon.py:1188 +#: flatcamObjects/FlatCAMExcellon.py:1373 +#: tclCommands/TclCommandDrillcncjob.py:193 +msgid "Slots_Nr" +msgstr "Slots_Nr" + +#: flatcamObjects/FlatCAMExcellon.py:1177 +msgid "Milling tool for SLOTS is larger than hole size. Cancelled." +msgstr "Milling tool for SLOTS is larger than hole size. Cancelled." + +#: flatcamObjects/FlatCAMExcellon.py:1281 +#: flatcamObjects/FlatCAMGeometry.py:1571 +msgid "Focus Z" +msgstr "Focus Z" + +#: flatcamObjects/FlatCAMExcellon.py:1300 +#: flatcamObjects/FlatCAMGeometry.py:1590 +msgid "Laser Power" +msgstr "Laser Power" + +#: flatcamObjects/FlatCAMExcellon.py:1430 +#: flatcamObjects/FlatCAMGeometry.py:2027 +#: flatcamObjects/FlatCAMGeometry.py:2031 +#: flatcamObjects/FlatCAMGeometry.py:2176 +msgid "Generating CNC Code" +msgstr "Generating CNC Code" + +#: flatcamObjects/FlatCAMExcellon.py:1620 flatcamTools/ToolNCC.py:918 +#: flatcamTools/ToolPaint.py:844 +msgid "Current Tool parameters were applied to all tools." +msgstr "Current Tool parameters were applied to all tools." + +#: flatcamObjects/FlatCAMGeometry.py:124 flatcamObjects/FlatCAMGeometry.py:1235 +#: flatcamObjects/FlatCAMGeometry.py:1236 +#: flatcamObjects/FlatCAMGeometry.py:1245 +msgid "Iso" +msgstr "Iso" + +#: flatcamObjects/FlatCAMGeometry.py:124 flatcamObjects/FlatCAMGeometry.py:464 +#: flatcamObjects/FlatCAMGeometry.py:854 flatcamObjects/FlatCAMGerber.py:891 +#: flatcamObjects/FlatCAMGerber.py:1039 flatcamTools/ToolCutOut.py:690 +#: flatcamTools/ToolCutOut.py:886 flatcamTools/ToolCutOut.py:1046 +msgid "Rough" +msgstr "Rough" + +#: flatcamObjects/FlatCAMGeometry.py:124 +msgid "Finish" +msgstr "Finish" + +#: flatcamObjects/FlatCAMGeometry.py:499 +msgid "Add from Tool DB" +msgstr "Add from Tool DB" + +#: flatcamObjects/FlatCAMGeometry.py:873 +msgid "Tool added in Tool Table." +msgstr "Tool added in Tool Table." + +#: flatcamObjects/FlatCAMGeometry.py:982 flatcamObjects/FlatCAMGeometry.py:991 +msgid "Failed. Select a tool to copy." +msgstr "Failed. Select a tool to copy." + +#: flatcamObjects/FlatCAMGeometry.py:1020 +msgid "Tool was copied in Tool Table." +msgstr "Tool was copied in Tool Table." + +#: flatcamObjects/FlatCAMGeometry.py:1047 +msgid "Tool was edited in Tool Table." +msgstr "Tool was edited in Tool Table." + +#: flatcamObjects/FlatCAMGeometry.py:1076 +#: flatcamObjects/FlatCAMGeometry.py:1085 +msgid "Failed. Select a tool to delete." +msgstr "Failed. Select a tool to delete." + +#: flatcamObjects/FlatCAMGeometry.py:1109 +msgid "Tool was deleted in Tool Table." +msgstr "Tool was deleted in Tool Table." + +#: flatcamObjects/FlatCAMGeometry.py:1146 +#: flatcamObjects/FlatCAMGeometry.py:1156 +msgid "" +"Disabled because the tool is V-shape.\n" +"For V-shape tools the depth of cut is\n" +"calculated from other parameters like:\n" +"- 'V-tip Angle' -> angle at the tip of the tool\n" +"- 'V-tip Dia' -> diameter at the tip of the tool \n" +"- Tool Dia -> 'Dia' column found in the Tool Table\n" +"NB: a value of zero means that Tool Dia = 'V-tip Dia'" +msgstr "" +"Disabled because the tool is V-shape.\n" +"For V-shape tools the depth of cut is\n" +"calculated from other parameters like:\n" +"- 'V-tip Angle' -> angle at the tip of the tool\n" +"- 'V-tip Dia' -> diameter at the tip of the tool \n" +"- Tool Dia -> 'Dia' column found in the Tool Table\n" +"NB: a value of zero means that Tool Dia = 'V-tip Dia'" + +#: flatcamObjects/FlatCAMGeometry.py:1643 +msgid "This Geometry can't be processed because it is" +msgstr "This Geometry can't be processed because it is" + +#: flatcamObjects/FlatCAMGeometry.py:1643 +msgid "geometry" +msgstr "geometry" + +#: flatcamObjects/FlatCAMGeometry.py:1684 +msgid "Failed. No tool selected in the tool table ..." +msgstr "Failed. No tool selected in the tool table ..." + +#: flatcamObjects/FlatCAMGeometry.py:1786 +#: flatcamObjects/FlatCAMGeometry.py:1936 +msgid "" +"Tool Offset is selected in Tool Table but no value is provided.\n" +"Add a Tool Offset or change the Offset Type." +msgstr "" +"Tool Offset is selected in Tool Table but no value is provided.\n" +"Add a Tool Offset or change the Offset Type." + +#: flatcamObjects/FlatCAMGeometry.py:1852 +#: flatcamObjects/FlatCAMGeometry.py:1998 +msgid "G-Code parsing in progress..." +msgstr "G-Code parsing in progress..." + +#: flatcamObjects/FlatCAMGeometry.py:1854 +#: flatcamObjects/FlatCAMGeometry.py:2000 +msgid "G-Code parsing finished..." +msgstr "G-Code parsing finished..." + +#: flatcamObjects/FlatCAMGeometry.py:1862 +msgid "Finished G-Code processing" +msgstr "Finished G-Code processing" + +#: flatcamObjects/FlatCAMGeometry.py:1864 +#: flatcamObjects/FlatCAMGeometry.py:2012 +msgid "G-Code processing failed with error" +msgstr "G-Code processing failed with error" + +#: flatcamObjects/FlatCAMGeometry.py:1906 flatcamTools/ToolSolderPaste.py:1301 +msgid "Cancelled. Empty file, it has no geometry" +msgstr "Cancelled. Empty file, it has no geometry" + +#: flatcamObjects/FlatCAMGeometry.py:2010 +#: flatcamObjects/FlatCAMGeometry.py:2171 +msgid "Finished G-Code processing..." +msgstr "Finished G-Code processing..." + +#: flatcamObjects/FlatCAMGeometry.py:2029 +#: flatcamObjects/FlatCAMGeometry.py:2033 +#: flatcamObjects/FlatCAMGeometry.py:2178 +msgid "CNCjob created" +msgstr "CNCjob created" + +#: flatcamObjects/FlatCAMGeometry.py:2209 +#: flatcamObjects/FlatCAMGeometry.py:2218 flatcamParsers/ParseGerber.py:1867 +#: flatcamParsers/ParseGerber.py:1877 +msgid "Scale factor has to be a number: integer or float." +msgstr "Scale factor has to be a number: integer or float." + +#: flatcamObjects/FlatCAMGeometry.py:2281 +msgid "Geometry Scale done." +msgstr "Geometry Scale done." + +#: flatcamObjects/FlatCAMGeometry.py:2298 flatcamParsers/ParseGerber.py:1993 +msgid "" +"An (x,y) pair of values are needed. Probable you entered only one value in " +"the Offset field." +msgstr "" +"An (x,y) pair of values are needed. Probable you entered only one value in " +"the Offset field." + +#: flatcamObjects/FlatCAMGeometry.py:2354 +msgid "Geometry Offset done." +msgstr "Geometry Offset done." + +#: flatcamObjects/FlatCAMGeometry.py:2383 +msgid "" +"The Toolchange X,Y field in Edit -> Preferences has to be in the format (x, " +"y)\n" +"but now there is only one value, not two." +msgstr "" +"The Toolchange X,Y field in Edit -> Preferences has to be in the format (x, " +"y)\n" +"but now there is only one value, not two." + +#: flatcamObjects/FlatCAMGeometry.py:2577 +#: flatcamTools/ToolCopperThieving.py:769 flatcamTools/ToolNCC.py:1648 +msgid "Click the start point of the area." +msgstr "Click the start point of the area." + +#: flatcamObjects/FlatCAMGeometry.py:2619 +#| msgid "Click the end point of the paint area." +msgid "Click the end point of the area." +msgstr "Click the end point of the area." + +#: flatcamObjects/FlatCAMGeometry.py:2625 +#: flatcamObjects/FlatCAMGeometry.py:2677 +#: flatcamTools/ToolCopperThieving.py:826 flatcamTools/ToolNCC.py:1710 +#: flatcamTools/ToolNCC.py:1762 flatcamTools/ToolPaint.py:1606 +#: flatcamTools/ToolPaint.py:1657 +msgid "Zone added. Click to start adding next zone or right click to finish." +msgstr "Zone added. Click to start adding next zone or right click to finish." + +#: flatcamObjects/FlatCAMGeometry.py:2729 +msgid "Cancelled. Area exclusion drawing was interrupted." +msgstr "Cancelled. Area exclusion drawing was interrupted." + +#: flatcamObjects/FlatCAMGerber.py:494 +msgid "Buffering solid geometry" +msgstr "Buffering solid geometry" + +#: flatcamObjects/FlatCAMGerber.py:503 +msgid "Done" +msgstr "Done" + +#: flatcamObjects/FlatCAMGerber.py:529 flatcamObjects/FlatCAMGerber.py:555 +msgid "Operation could not be done." +msgstr "Operation could not be done." + +#: flatcamObjects/FlatCAMGerber.py:572 +msgid "Isolating..." +msgstr "Isolating..." + +#: flatcamObjects/FlatCAMGerber.py:631 +msgid "Click on a polygon to isolate it." +msgstr "Click on a polygon to isolate it." + +#: flatcamObjects/FlatCAMGerber.py:670 flatcamObjects/FlatCAMGerber.py:774 +#: flatcamTools/ToolPaint.py:1516 +msgid "Added polygon" +msgstr "Added polygon" + +#: flatcamObjects/FlatCAMGerber.py:671 flatcamObjects/FlatCAMGerber.py:776 +msgid "Click to add next polygon or right click to start isolation." +msgstr "Click to add next polygon or right click to start isolation." + +#: flatcamObjects/FlatCAMGerber.py:683 flatcamTools/ToolPaint.py:1530 +msgid "Removed polygon" +msgstr "Removed polygon" + +#: flatcamObjects/FlatCAMGerber.py:684 +msgid "Click to add/remove next polygon or right click to start isolation." +msgstr "Click to add/remove next polygon or right click to start isolation." + +#: flatcamObjects/FlatCAMGerber.py:689 flatcamTools/ToolPaint.py:1536 +msgid "No polygon detected under click position." +msgstr "No polygon detected under click position." + +#: flatcamObjects/FlatCAMGerber.py:710 flatcamTools/ToolPaint.py:1565 +msgid "List of single polygons is empty. Aborting." +msgstr "List of single polygons is empty. Aborting." + +#: flatcamObjects/FlatCAMGerber.py:779 +msgid "No polygon in selection." +msgstr "No polygon in selection." + +#: flatcamObjects/FlatCAMGerber.py:907 flatcamObjects/FlatCAMGerber.py:986 +#: flatcamTools/ToolNCC.py:2086 flatcamTools/ToolNCC.py:3137 +#: flatcamTools/ToolNCC.py:3516 +msgid "Isolation geometry could not be generated." +msgstr "Isolation geometry could not be generated." + +#: flatcamObjects/FlatCAMGerber.py:932 flatcamObjects/FlatCAMGerber.py:1064 +msgid "Isolation geometry created" +msgstr "Isolation geometry created" + +#: flatcamObjects/FlatCAMGerber.py:941 flatcamObjects/FlatCAMGerber.py:1071 +msgid "Subtracting Geo" +msgstr "Subtracting Geo" + +#: flatcamObjects/FlatCAMGerber.py:1396 +msgid "Plotting Apertures" +msgstr "Plotting Apertures" + +#: flatcamObjects/FlatCAMObj.py:234 +msgid "Name changed from" +msgstr "Name changed from" + +#: flatcamObjects/FlatCAMObj.py:234 +msgid "to" +msgstr "to" + +#: flatcamObjects/FlatCAMObj.py:245 +msgid "Offsetting..." +msgstr "Offsetting..." + +#: flatcamObjects/FlatCAMObj.py:259 flatcamObjects/FlatCAMObj.py:264 +msgid "Scaling could not be executed." +msgstr "Scaling could not be executed." + +#: flatcamObjects/FlatCAMObj.py:268 flatcamObjects/FlatCAMObj.py:276 +msgid "Scale done." +msgstr "Scale done." + +#: flatcamObjects/FlatCAMObj.py:274 +msgid "Scaling..." +msgstr "Scaling..." + +#: flatcamObjects/FlatCAMObj.py:292 +msgid "Skewing..." +msgstr "Skewing..." + +#: flatcamObjects/FlatCAMScript.py:163 +msgid "Script Editor" +msgstr "Script Editor" + +#: flatcamObjects/ObjectCollection.py:510 +#, python-brace-format +msgid "Object renamed from {old} to {new}" +msgstr "Object renamed from {old} to {new}" + +#: flatcamObjects/ObjectCollection.py:983 +msgid "Cause of error" +msgstr "Cause of error" + +#: flatcamParsers/ParseExcellon.py:316 +msgid "This is GCODE mark" +msgstr "This is GCODE mark" + +#: flatcamParsers/ParseExcellon.py:433 +msgid "" +"No tool diameter info's. See shell.\n" +"A tool change event: T" +msgstr "" +"No tool diameter info's. See shell.\n" +"A tool change event: T" + +#: flatcamParsers/ParseExcellon.py:436 +msgid "" +"was found but the Excellon file have no informations regarding the tool " +"diameters therefore the application will try to load it by using some 'fake' " +"diameters.\n" +"The user needs to edit the resulting Excellon object and change the " +"diameters to reflect the real diameters." +msgstr "" +"was found but the Excellon file have no informations regarding the tool " +"diameters therefore the application will try to load it by using some 'fake' " +"diameters.\n" +"The user needs to edit the resulting Excellon object and change the " +"diameters to reflect the real diameters." + +#: flatcamParsers/ParseExcellon.py:900 +msgid "" +"Excellon Parser error.\n" +"Parsing Failed. Line" +msgstr "" +"Excellon Parser error.\n" +"Parsing Failed. Line" + +#: flatcamParsers/ParseExcellon.py:982 +msgid "" +"Excellon.create_geometry() -> a drill location was skipped due of not having " +"a tool associated.\n" +"Check the resulting GCode." +msgstr "" +"Excellon.create_geometry() -> a drill location was skipped due of not having " +"a tool associated.\n" +"Check the resulting GCode." + +#: flatcamParsers/ParseFont.py:303 +msgid "Font not supported, try another one." +msgstr "Font not supported, try another one." + +#: flatcamParsers/ParseGerber.py:426 +msgid "Gerber processing. Parsing" +msgstr "Gerber processing. Parsing" + +#: flatcamParsers/ParseGerber.py:426 flatcamParsers/ParseHPGL2.py:182 +msgid "lines" +msgstr "lines" + +#: flatcamParsers/ParseGerber.py:1002 flatcamParsers/ParseGerber.py:1102 +#: flatcamParsers/ParseHPGL2.py:275 flatcamParsers/ParseHPGL2.py:289 +#: flatcamParsers/ParseHPGL2.py:308 flatcamParsers/ParseHPGL2.py:332 +#: flatcamParsers/ParseHPGL2.py:367 +msgid "Coordinates missing, line ignored" +msgstr "Coordinates missing, line ignored" + +#: flatcamParsers/ParseGerber.py:1004 flatcamParsers/ParseGerber.py:1104 +msgid "GERBER file might be CORRUPT. Check the file !!!" +msgstr "GERBER file might be CORRUPT. Check the file !!!" + +#: flatcamParsers/ParseGerber.py:1058 +msgid "" +"Region does not have enough points. File will be processed but there are " +"parser errors. Line number" +msgstr "" +"Region does not have enough points. File will be processed but there are " +"parser errors. Line number" + +#: flatcamParsers/ParseGerber.py:1488 flatcamParsers/ParseHPGL2.py:402 +msgid "Gerber processing. Joining polygons" +msgstr "Gerber processing. Joining polygons" + +#: flatcamParsers/ParseGerber.py:1505 +msgid "Gerber processing. Applying Gerber polarity." +msgstr "Gerber processing. Applying Gerber polarity." + +#: flatcamParsers/ParseGerber.py:1565 +msgid "Gerber Line" +msgstr "Gerber Line" + +#: flatcamParsers/ParseGerber.py:1565 +msgid "Gerber Line Content" +msgstr "Gerber Line Content" + +#: flatcamParsers/ParseGerber.py:1567 +msgid "Gerber Parser ERROR" +msgstr "Gerber Parser ERROR" + +#: flatcamParsers/ParseGerber.py:1957 +msgid "Gerber Scale done." +msgstr "Gerber Scale done." + +#: flatcamParsers/ParseGerber.py:2049 +msgid "Gerber Offset done." +msgstr "Gerber Offset done." + +#: flatcamParsers/ParseGerber.py:2125 +msgid "Gerber Mirror done." +msgstr "Gerber Mirror done." + +#: flatcamParsers/ParseGerber.py:2199 +msgid "Gerber Skew done." +msgstr "Gerber Skew done." + +#: flatcamParsers/ParseGerber.py:2261 +msgid "Gerber Rotate done." +msgstr "Gerber Rotate done." + +#: flatcamParsers/ParseGerber.py:2418 +msgid "Gerber Buffer done." +msgstr "Gerber Buffer done." + +#: flatcamParsers/ParseHPGL2.py:182 +msgid "HPGL2 processing. Parsing" +msgstr "HPGL2 processing. Parsing" + +#: flatcamParsers/ParseHPGL2.py:414 +msgid "HPGL2 Line" +msgstr "HPGL2 Line" + +#: flatcamParsers/ParseHPGL2.py:414 +msgid "HPGL2 Line Content" +msgstr "HPGL2 Line Content" + +#: flatcamParsers/ParseHPGL2.py:415 +msgid "HPGL2 Parser ERROR" +msgstr "HPGL2 Parser ERROR" + +#: flatcamTools/ToolAlignObjects.py:32 +msgid "Align Objects" +msgstr "Align Objects" + +#: flatcamTools/ToolAlignObjects.py:61 +msgid "MOVING object" +msgstr "MOVING object" + +#: flatcamTools/ToolAlignObjects.py:65 +msgid "" +"Specify the type of object to be aligned.\n" +"It can be of type: Gerber or Excellon.\n" +"The selection here decide the type of objects that will be\n" +"in the Object combobox." +msgstr "" +"Specify the type of object to be aligned.\n" +"It can be of type: Gerber or Excellon.\n" +"The selection here decide the type of objects that will be\n" +"in the Object combobox." + +#: flatcamTools/ToolAlignObjects.py:86 +msgid "Object to be aligned." +msgstr "Object to be aligned." + +#: flatcamTools/ToolAlignObjects.py:98 +msgid "TARGET object" +msgstr "TARGET object" + +#: flatcamTools/ToolAlignObjects.py:100 +msgid "" +"Specify the type of object to be aligned to.\n" +"It can be of type: Gerber or Excellon.\n" +"The selection here decide the type of objects that will be\n" +"in the Object combobox." +msgstr "" +"Specify the type of object to be aligned to.\n" +"It can be of type: Gerber or Excellon.\n" +"The selection here decide the type of objects that will be\n" +"in the Object combobox." + +#: flatcamTools/ToolAlignObjects.py:122 +msgid "Object to be aligned to. Aligner." +msgstr "Object to be aligned to. Aligner." + +#: flatcamTools/ToolAlignObjects.py:135 +msgid "Alignment Type" +msgstr "Alignment Type" + +#: flatcamTools/ToolAlignObjects.py:137 +msgid "" +"The type of alignment can be:\n" +"- Single Point -> it require a single point of sync, the action will be a " +"translation\n" +"- Dual Point -> it require two points of sync, the action will be " +"translation followed by rotation" +msgstr "" +"The type of alignment can be:\n" +"- Single Point -> it require a single point of sync, the action will be a " +"translation\n" +"- Dual Point -> it require two points of sync, the action will be " +"translation followed by rotation" + +#: flatcamTools/ToolAlignObjects.py:143 +msgid "Single Point" +msgstr "Single Point" + +#: flatcamTools/ToolAlignObjects.py:144 +msgid "Dual Point" +msgstr "Dual Point" + +#: flatcamTools/ToolAlignObjects.py:159 +msgid "Align Object" +msgstr "Align Object" + +#: flatcamTools/ToolAlignObjects.py:161 +msgid "" +"Align the specified object to the aligner object.\n" +"If only one point is used then it assumes translation.\n" +"If tho points are used it assume translation and rotation." +msgstr "" +"Align the specified object to the aligner object.\n" +"If only one point is used then it assumes translation.\n" +"If tho points are used it assume translation and rotation." + +#: flatcamTools/ToolAlignObjects.py:176 flatcamTools/ToolCalculators.py:246 +#: flatcamTools/ToolCalibration.py:683 flatcamTools/ToolCopperThieving.py:484 +#: flatcamTools/ToolCutOut.py:362 flatcamTools/ToolDblSided.py:471 +#: flatcamTools/ToolExtractDrills.py:310 flatcamTools/ToolFiducials.py:318 +#: flatcamTools/ToolFilm.py:520 flatcamTools/ToolInvertGerber.py:140 +#: flatcamTools/ToolNCC.py:612 flatcamTools/ToolOptimal.py:237 +#: flatcamTools/ToolPaint.py:556 flatcamTools/ToolPanelize.py:269 +#: flatcamTools/ToolPunchGerber.py:339 flatcamTools/ToolQRCode.py:314 +#: flatcamTools/ToolRulesCheck.py:516 flatcamTools/ToolSolderPaste.py:473 +#: flatcamTools/ToolSub.py:176 flatcamTools/ToolTransform.py:398 +msgid "Reset Tool" +msgstr "Reset Tool" + +#: flatcamTools/ToolAlignObjects.py:178 flatcamTools/ToolCalculators.py:248 +#: flatcamTools/ToolCalibration.py:685 flatcamTools/ToolCopperThieving.py:486 +#: flatcamTools/ToolCutOut.py:364 flatcamTools/ToolDblSided.py:473 +#: flatcamTools/ToolExtractDrills.py:312 flatcamTools/ToolFiducials.py:320 +#: flatcamTools/ToolFilm.py:522 flatcamTools/ToolInvertGerber.py:142 +#: flatcamTools/ToolNCC.py:614 flatcamTools/ToolOptimal.py:239 +#: flatcamTools/ToolPaint.py:558 flatcamTools/ToolPanelize.py:271 +#: flatcamTools/ToolPunchGerber.py:341 flatcamTools/ToolQRCode.py:316 +#: flatcamTools/ToolRulesCheck.py:518 flatcamTools/ToolSolderPaste.py:475 +#: flatcamTools/ToolSub.py:178 flatcamTools/ToolTransform.py:400 +msgid "Will reset the tool parameters." +msgstr "Will reset the tool parameters." + +#: flatcamTools/ToolAlignObjects.py:244 +msgid "Align Tool" +msgstr "Align Tool" + +#: flatcamTools/ToolAlignObjects.py:289 +msgid "There is no aligned FlatCAM object selected..." +msgstr "There is no aligned FlatCAM object selected..." + +#: flatcamTools/ToolAlignObjects.py:299 +msgid "There is no aligner FlatCAM object selected..." +msgstr "There is no aligner FlatCAM object selected..." + +#: flatcamTools/ToolAlignObjects.py:325 flatcamTools/ToolAlignObjects.py:385 +msgid "First Point" +msgstr "First Point" + +#: flatcamTools/ToolAlignObjects.py:325 flatcamTools/ToolAlignObjects.py:400 +msgid "Click on the START point." +msgstr "Click on the START point." + +#: flatcamTools/ToolAlignObjects.py:380 flatcamTools/ToolCalibration.py:920 +msgid "Cancelled by user request." +msgstr "Cancelled by user request." + +#: flatcamTools/ToolAlignObjects.py:385 flatcamTools/ToolAlignObjects.py:407 +msgid "Click on the DESTINATION point." +msgstr "Click on the DESTINATION point." + +#: flatcamTools/ToolAlignObjects.py:385 flatcamTools/ToolAlignObjects.py:400 +#: flatcamTools/ToolAlignObjects.py:407 +msgid "Or right click to cancel." +msgstr "Or right click to cancel." + +#: flatcamTools/ToolAlignObjects.py:400 flatcamTools/ToolAlignObjects.py:407 +#: flatcamTools/ToolFiducials.py:111 +msgid "Second Point" +msgstr "Second Point" + +#: flatcamTools/ToolCalculators.py:24 +msgid "Calculators" +msgstr "Calculators" + +#: flatcamTools/ToolCalculators.py:26 +msgid "Units Calculator" +msgstr "Units Calculator" + +#: 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" + +#: 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" + +#: flatcamTools/ToolCalculators.py:111 +msgid "" +"This is the angle of the tip of the tool.\n" +"It is specified by manufacturer." +msgstr "" +"This is the angle of the tip of the tool.\n" +"It is specified by manufacturer." + +#: flatcamTools/ToolCalculators.py:120 +msgid "" +"This is the depth to cut into the material.\n" +"In the CNCJob is the CutZ parameter." +msgstr "" +"This is the depth to cut into the material.\n" +"In the CNCJob is the CutZ parameter." + +#: flatcamTools/ToolCalculators.py:128 +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 "" +"This is the tool diameter to be entered into\n" +"FlatCAM Gerber section.\n" +"In the CNCJob section it is called >Tool dia<." + +#: flatcamTools/ToolCalculators.py:139 flatcamTools/ToolCalculators.py:235 +msgid "Calculate" +msgstr "Calculate" + +#: flatcamTools/ToolCalculators.py:142 +msgid "" +"Calculate either the Cut Z or the effective tool diameter,\n" +" depending on which is desired and which is known. " +msgstr "" +"Calculate either the Cut Z or the effective tool diameter,\n" +" depending on which is desired and which is known. " + +#: flatcamTools/ToolCalculators.py:205 +msgid "Current Value" +msgstr "Current Value" + +#: flatcamTools/ToolCalculators.py:212 +msgid "" +"This is the current intensity value\n" +"to be set on the Power Supply. In Amps." +msgstr "" +"This is the current intensity value\n" +"to be set on the Power Supply. In Amps." + +#: flatcamTools/ToolCalculators.py:216 +msgid "Time" +msgstr "Time" + +#: flatcamTools/ToolCalculators.py:223 +msgid "" +"This is the calculated time required for the procedure.\n" +"In minutes." +msgstr "" +"This is the calculated time required for the procedure.\n" +"In minutes." + +#: flatcamTools/ToolCalculators.py:238 +msgid "" +"Calculate the current intensity value and the procedure time,\n" +"depending on the parameters above" +msgstr "" +"Calculate the current intensity value and the procedure time,\n" +"depending on the parameters above" + +#: flatcamTools/ToolCalculators.py:299 +msgid "Calc. Tool" +msgstr "Calc. Tool" + +#: flatcamTools/ToolCalibration.py:67 +msgid "GCode Parameters" +msgstr "GCode Parameters" + +#: flatcamTools/ToolCalibration.py:69 +msgid "Parameters used when creating the GCode in this tool." +msgstr "Parameters used when creating the GCode in this tool." + +#: flatcamTools/ToolCalibration.py:173 +msgid "STEP 1: Acquire Calibration Points" +msgstr "STEP 1: Acquire Calibration Points" + +#: flatcamTools/ToolCalibration.py:175 +msgid "" +"Pick four points by clicking on canvas.\n" +"Those four points should be in the four\n" +"(as much as possible) corners of the object." +msgstr "" +"Pick four points by clicking on canvas.\n" +"Those four points should be in the four\n" +"(as much as possible) corners of the object." + +#: flatcamTools/ToolCalibration.py:193 flatcamTools/ToolFilm.py:76 +#: flatcamTools/ToolImage.py:54 flatcamTools/ToolPanelize.py:78 +#: flatcamTools/ToolProperties.py:177 +msgid "Object Type" +msgstr "Object Type" + +#: flatcamTools/ToolCalibration.py:210 +msgid "Source object selection" +msgstr "Source object selection" + +#: flatcamTools/ToolCalibration.py:212 +msgid "FlatCAM Object to be used as a source for reference points." +msgstr "FlatCAM Object to be used as a source for reference points." + +#: flatcamTools/ToolCalibration.py:218 +msgid "Calibration Points" +msgstr "Calibration Points" + +#: flatcamTools/ToolCalibration.py:220 +msgid "" +"Contain the expected calibration points and the\n" +"ones measured." +msgstr "" +"Contain the expected calibration points and the\n" +"ones measured." + +#: flatcamTools/ToolCalibration.py:235 flatcamTools/ToolSub.py:76 +#: flatcamTools/ToolSub.py:131 +msgid "Target" +msgstr "Target" + +#: flatcamTools/ToolCalibration.py:236 +msgid "Found Delta" +msgstr "Found Delta" + +#: flatcamTools/ToolCalibration.py:248 +msgid "Bot Left X" +msgstr "Bot Left X" + +#: flatcamTools/ToolCalibration.py:257 +msgid "Bot Left Y" +msgstr "Bot Left Y" + +#: flatcamTools/ToolCalibration.py:275 +msgid "Bot Right X" +msgstr "Bot Right X" + +#: flatcamTools/ToolCalibration.py:285 +msgid "Bot Right Y" +msgstr "Bot Right Y" + +#: flatcamTools/ToolCalibration.py:300 +msgid "Top Left X" +msgstr "Top Left X" + +#: flatcamTools/ToolCalibration.py:309 +msgid "Top Left Y" +msgstr "Top Left Y" + +#: flatcamTools/ToolCalibration.py:324 +msgid "Top Right X" +msgstr "Top Right X" + +#: flatcamTools/ToolCalibration.py:334 +msgid "Top Right Y" +msgstr "Top Right Y" + +#: flatcamTools/ToolCalibration.py:367 +msgid "Get Points" +msgstr "Get Points" + +#: flatcamTools/ToolCalibration.py:369 +msgid "" +"Pick four points by clicking on canvas if the source choice\n" +"is 'free' or inside the object geometry if the source is 'object'.\n" +"Those four points should be in the four squares of\n" +"the object." +msgstr "" +"Pick four points by clicking on canvas if the source choice\n" +"is 'free' or inside the object geometry if the source is 'object'.\n" +"Those four points should be in the four squares of\n" +"the object." + +#: flatcamTools/ToolCalibration.py:390 +msgid "STEP 2: Verification GCode" +msgstr "STEP 2: Verification GCode" + +#: flatcamTools/ToolCalibration.py:392 flatcamTools/ToolCalibration.py:405 +msgid "" +"Generate GCode file to locate and align the PCB by using\n" +"the four points acquired above.\n" +"The points sequence is:\n" +"- first point -> set the origin\n" +"- second point -> alignment point. Can be: top-left or bottom-right.\n" +"- third point -> check point. Can be: top-left or bottom-right.\n" +"- forth point -> final verification point. Just for evaluation." +msgstr "" +"Generate GCode file to locate and align the PCB by using\n" +"the four points acquired above.\n" +"The points sequence is:\n" +"- first point -> set the origin\n" +"- second point -> alignment point. Can be: top-left or bottom-right.\n" +"- third point -> check point. Can be: top-left or bottom-right.\n" +"- forth point -> final verification point. Just for evaluation." + +#: flatcamTools/ToolCalibration.py:403 flatcamTools/ToolSolderPaste.py:348 +msgid "Generate GCode" +msgstr "Generate GCode" + +#: flatcamTools/ToolCalibration.py:429 +msgid "STEP 3: Adjustments" +msgstr "STEP 3: Adjustments" + +#: flatcamTools/ToolCalibration.py:431 flatcamTools/ToolCalibration.py:440 +msgid "" +"Calculate Scale and Skew factors based on the differences (delta)\n" +"found when checking the PCB pattern. The differences must be filled\n" +"in the fields Found (Delta)." +msgstr "" +"Calculate Scale and Skew factors based on the differences (delta)\n" +"found when checking the PCB pattern. The differences must be filled\n" +"in the fields Found (Delta)." + +#: flatcamTools/ToolCalibration.py:438 +msgid "Calculate Factors" +msgstr "Calculate Factors" + +#: flatcamTools/ToolCalibration.py:460 +msgid "STEP 4: Adjusted GCode" +msgstr "STEP 4: Adjusted GCode" + +#: flatcamTools/ToolCalibration.py:462 +msgid "" +"Generate verification GCode file adjusted with\n" +"the factors above." +msgstr "" +"Generate verification GCode file adjusted with\n" +"the factors above." + +#: flatcamTools/ToolCalibration.py:467 +msgid "Scale Factor X:" +msgstr "Scale Factor X:" + +#: flatcamTools/ToolCalibration.py:479 +msgid "Scale Factor Y:" +msgstr "Scale Factor Y:" + +#: flatcamTools/ToolCalibration.py:491 +msgid "Apply Scale Factors" +msgstr "Apply Scale Factors" + +#: flatcamTools/ToolCalibration.py:493 +msgid "Apply Scale factors on the calibration points." +msgstr "Apply Scale factors on the calibration points." + +#: flatcamTools/ToolCalibration.py:503 +msgid "Skew Angle X:" +msgstr "Skew Angle X:" + +#: flatcamTools/ToolCalibration.py:516 +msgid "Skew Angle Y:" +msgstr "Skew Angle Y:" + +#: flatcamTools/ToolCalibration.py:529 +msgid "Apply Skew Factors" +msgstr "Apply Skew Factors" + +#: flatcamTools/ToolCalibration.py:531 +msgid "Apply Skew factors on the calibration points." +msgstr "Apply Skew factors on the calibration points." + +#: flatcamTools/ToolCalibration.py:600 +msgid "Generate Adjusted GCode" +msgstr "Generate Adjusted GCode" + +#: flatcamTools/ToolCalibration.py:602 +msgid "" +"Generate verification GCode file adjusted with\n" +"the factors set above.\n" +"The GCode parameters can be readjusted\n" +"before clicking this button." +msgstr "" +"Generate verification GCode file adjusted with\n" +"the factors set above.\n" +"The GCode parameters can be readjusted\n" +"before clicking this button." + +#: flatcamTools/ToolCalibration.py:623 +msgid "STEP 5: Calibrate FlatCAM Objects" +msgstr "STEP 5: Calibrate FlatCAM Objects" + +#: flatcamTools/ToolCalibration.py:625 +msgid "" +"Adjust the FlatCAM objects\n" +"with the factors determined and verified above." +msgstr "" +"Adjust the FlatCAM objects\n" +"with the factors determined and verified above." + +#: flatcamTools/ToolCalibration.py:637 +msgid "Adjusted object type" +msgstr "Adjusted object type" + +#: flatcamTools/ToolCalibration.py:638 +msgid "Type of the FlatCAM Object to be adjusted." +msgstr "Type of the FlatCAM Object to be adjusted." + +#: flatcamTools/ToolCalibration.py:651 +msgid "Adjusted object selection" +msgstr "Adjusted object selection" + +#: flatcamTools/ToolCalibration.py:653 +msgid "The FlatCAM Object to be adjusted." +msgstr "The FlatCAM Object to be adjusted." + +#: flatcamTools/ToolCalibration.py:660 +msgid "Calibrate" +msgstr "Calibrate" + +#: flatcamTools/ToolCalibration.py:662 +msgid "" +"Adjust (scale and/or skew) the objects\n" +"with the factors determined above." +msgstr "" +"Adjust (scale and/or skew) the objects\n" +"with the factors determined above." + +#: flatcamTools/ToolCalibration.py:770 flatcamTools/ToolCalibration.py:771 +msgid "Origin" +msgstr "Origin" + +#: flatcamTools/ToolCalibration.py:800 +msgid "Tool initialized" +msgstr "Tool initialized" + +#: flatcamTools/ToolCalibration.py:838 +msgid "There is no source FlatCAM object selected..." +msgstr "There is no source FlatCAM object selected..." + +#: flatcamTools/ToolCalibration.py:859 +msgid "Get First calibration point. Bottom Left..." +msgstr "Get First calibration point. Bottom Left..." + +#: flatcamTools/ToolCalibration.py:926 +msgid "Get Second calibration point. Bottom Right (Top Left)..." +msgstr "Get Second calibration point. Bottom Right (Top Left)..." + +#: flatcamTools/ToolCalibration.py:930 +msgid "Get Third calibration point. Top Left (Bottom Right)..." +msgstr "Get Third calibration point. Top Left (Bottom Right)..." + +#: flatcamTools/ToolCalibration.py:934 +msgid "Get Forth calibration point. Top Right..." +msgstr "Get Forth calibration point. Top Right..." + +#: flatcamTools/ToolCalibration.py:938 +msgid "Done. All four points have been acquired." +msgstr "Done. All four points have been acquired." + +#: flatcamTools/ToolCalibration.py:969 +msgid "Verification GCode for FlatCAM Calibration Tool" +msgstr "Verification GCode for FlatCAM Calibration Tool" + +#: flatcamTools/ToolCalibration.py:981 flatcamTools/ToolCalibration.py:1067 +msgid "Gcode Viewer" +msgstr "Gcode Viewer" + +#: flatcamTools/ToolCalibration.py:997 +msgid "Cancelled. Four points are needed for GCode generation." +msgstr "Cancelled. Four points are needed for GCode generation." + +#: flatcamTools/ToolCalibration.py:1253 flatcamTools/ToolCalibration.py:1349 +msgid "There is no FlatCAM object selected..." +msgstr "There is no FlatCAM object selected..." + +#: flatcamTools/ToolCopperThieving.py:76 flatcamTools/ToolFiducials.py:261 +msgid "Gerber Object to which will be added a copper thieving." +msgstr "Gerber Object to which will be added a copper thieving." + +#: flatcamTools/ToolCopperThieving.py:98 +msgid "" +"This set the distance between the copper thieving components\n" +"(the polygon fill may be split in multiple polygons)\n" +"and the copper traces in the Gerber file." +msgstr "" +"This set the distance between the copper thieving components\n" +"(the polygon fill may be split in multiple polygons)\n" +"and the copper traces in the Gerber file." + +#: flatcamTools/ToolCopperThieving.py:131 +msgid "" +"- 'Itself' - the copper thieving extent is based on the object extent.\n" +"- 'Area Selection' - left mouse click to start selection of the area to be " +"filled.\n" +"- 'Reference Object' - will do copper thieving within the area specified by " +"another object." +msgstr "" +"- 'Itself' - the copper thieving extent is based on the object extent.\n" +"- 'Area Selection' - left mouse click to start selection of the area to be " +"filled.\n" +"- 'Reference Object' - will do copper thieving within the area specified by " +"another object." + +#: flatcamTools/ToolCopperThieving.py:138 flatcamTools/ToolNCC.py:552 +#: flatcamTools/ToolPaint.py:496 +msgid "Ref. Type" +msgstr "Ref. Type" + +#: flatcamTools/ToolCopperThieving.py:140 +msgid "" +"The type of FlatCAM object to be used as copper thieving reference.\n" +"It can be Gerber, Excellon or Geometry." +msgstr "" +"The type of FlatCAM object to be used as copper thieving reference.\n" +"It can be Gerber, Excellon or Geometry." + +#: flatcamTools/ToolCopperThieving.py:149 flatcamTools/ToolNCC.py:562 +#: flatcamTools/ToolPaint.py:506 +msgid "Ref. Object" +msgstr "Ref. Object" + +#: flatcamTools/ToolCopperThieving.py:151 flatcamTools/ToolNCC.py:564 +#: flatcamTools/ToolPaint.py:508 +msgid "The FlatCAM object to be used as non copper clearing reference." +msgstr "The FlatCAM object to be used as non copper clearing reference." + +#: flatcamTools/ToolCopperThieving.py:327 +msgid "Insert Copper thieving" +msgstr "Insert Copper thieving" + +#: flatcamTools/ToolCopperThieving.py:329 +msgid "" +"Will add a polygon (may be split in multiple parts)\n" +"that will surround the actual Gerber traces at a certain distance." +msgstr "" +"Will add a polygon (may be split in multiple parts)\n" +"that will surround the actual Gerber traces at a certain distance." + +#: flatcamTools/ToolCopperThieving.py:388 +msgid "Insert Robber Bar" +msgstr "Insert Robber Bar" + +#: flatcamTools/ToolCopperThieving.py:390 +msgid "" +"Will add a polygon with a defined thickness\n" +"that will surround the actual Gerber object\n" +"at a certain distance.\n" +"Required when doing holes pattern plating." +msgstr "" +"Will add a polygon with a defined thickness\n" +"that will surround the actual Gerber object\n" +"at a certain distance.\n" +"Required when doing holes pattern plating." + +#: flatcamTools/ToolCopperThieving.py:414 +msgid "Select Soldermask object" +msgstr "Select Soldermask object" + +#: flatcamTools/ToolCopperThieving.py:416 +msgid "" +"Gerber Object with the soldermask.\n" +"It will be used as a base for\n" +"the pattern plating mask." +msgstr "" +"Gerber Object with the soldermask.\n" +"It will be used as a base for\n" +"the pattern plating mask." + +#: flatcamTools/ToolCopperThieving.py:445 +msgid "Plated area" +msgstr "Plated area" + +#: flatcamTools/ToolCopperThieving.py:447 +msgid "" +"The area to be plated by pattern plating.\n" +"Basically is made from the openings in the plating mask.\n" +"\n" +"<> - the calculated area is actually a bit larger\n" +"due of the fact that the soldermask openings are by design\n" +"a bit larger than the copper pads, and this area is\n" +"calculated from the soldermask openings." +msgstr "" +"The area to be plated by pattern plating.\n" +"Basically is made from the openings in the plating mask.\n" +"\n" +"<> - the calculated area is actually a bit larger\n" +"due of the fact that the soldermask openings are by design\n" +"a bit larger than the copper pads, and this area is\n" +"calculated from the soldermask openings." + +#: flatcamTools/ToolCopperThieving.py:458 +msgid "mm" +msgstr "mm" + +#: flatcamTools/ToolCopperThieving.py:460 +msgid "in" +msgstr "in" + +#: flatcamTools/ToolCopperThieving.py:467 +msgid "Generate pattern plating mask" +msgstr "Generate pattern plating mask" + +#: flatcamTools/ToolCopperThieving.py:469 +msgid "" +"Will add to the soldermask gerber geometry\n" +"the geometries of the copper thieving and/or\n" +"the robber bar if those were generated." +msgstr "" +"Will add to the soldermask gerber geometry\n" +"the geometries of the copper thieving and/or\n" +"the robber bar if those were generated." + +#: flatcamTools/ToolCopperThieving.py:625 +#: flatcamTools/ToolCopperThieving.py:650 +msgid "Lines Grid works only for 'itself' reference ..." +msgstr "Lines Grid works only for 'itself' reference ..." + +#: flatcamTools/ToolCopperThieving.py:636 +msgid "Solid fill selected." +msgstr "Solid fill selected." + +#: flatcamTools/ToolCopperThieving.py:641 +msgid "Dots grid fill selected." +msgstr "Dots grid fill selected." + +#: flatcamTools/ToolCopperThieving.py:646 +msgid "Squares grid fill selected." +msgstr "Squares grid fill selected." + +#: flatcamTools/ToolCopperThieving.py:667 +#: flatcamTools/ToolCopperThieving.py:749 +#: flatcamTools/ToolCopperThieving.py:1345 flatcamTools/ToolDblSided.py:657 +#: flatcamTools/ToolExtractDrills.py:436 flatcamTools/ToolFiducials.py:466 +#: flatcamTools/ToolFiducials.py:743 flatcamTools/ToolOptimal.py:342 +#: flatcamTools/ToolPunchGerber.py:512 flatcamTools/ToolQRCode.py:426 +msgid "There is no Gerber object loaded ..." +msgstr "There is no Gerber object loaded ..." + +#: flatcamTools/ToolCopperThieving.py:680 +#: flatcamTools/ToolCopperThieving.py:1273 +msgid "Append geometry" +msgstr "Append geometry" + +#: flatcamTools/ToolCopperThieving.py:724 +#: flatcamTools/ToolCopperThieving.py:1306 +#: flatcamTools/ToolCopperThieving.py:1459 +msgid "Append source file" +msgstr "Append source file" + +#: flatcamTools/ToolCopperThieving.py:732 +#: flatcamTools/ToolCopperThieving.py:1314 +msgid "Copper Thieving Tool done." +msgstr "Copper Thieving Tool done." + +#: flatcamTools/ToolCopperThieving.py:759 +#: flatcamTools/ToolCopperThieving.py:792 flatcamTools/ToolCutOut.py:519 +#: flatcamTools/ToolCutOut.py:724 flatcamTools/ToolInvertGerber.py:208 +#: flatcamTools/ToolNCC.py:1599 flatcamTools/ToolNCC.py:1640 +#: flatcamTools/ToolNCC.py:1669 flatcamTools/ToolPaint.py:1474 +#: flatcamTools/ToolPanelize.py:412 flatcamTools/ToolPanelize.py:426 +#: flatcamTools/ToolSub.py:294 flatcamTools/ToolSub.py:307 +#: flatcamTools/ToolSub.py:498 flatcamTools/ToolSub.py:513 +#: tclCommands/TclCommandCopperClear.py:97 tclCommands/TclCommandPaint.py:99 +msgid "Could not retrieve object" +msgstr "Could not retrieve object" + +#: flatcamTools/ToolCopperThieving.py:820 +msgid "Click the end point of the filling area." +msgstr "Click the end point of the filling area." + +#: flatcamTools/ToolCopperThieving.py:942 +#: flatcamTools/ToolCopperThieving.py:946 +#: flatcamTools/ToolCopperThieving.py:1007 +msgid "Thieving" +msgstr "Thieving" + +#: flatcamTools/ToolCopperThieving.py:953 +msgid "Copper Thieving Tool started. Reading parameters." +msgstr "Copper Thieving Tool started. Reading parameters." + +#: flatcamTools/ToolCopperThieving.py:978 +msgid "Copper Thieving Tool. Preparing isolation polygons." +msgstr "Copper Thieving Tool. Preparing isolation polygons." + +#: flatcamTools/ToolCopperThieving.py:1023 +msgid "Copper Thieving Tool. Preparing areas to fill with copper." +msgstr "Copper Thieving Tool. Preparing areas to fill with copper." + +#: flatcamTools/ToolCopperThieving.py:1034 flatcamTools/ToolOptimal.py:349 +#: flatcamTools/ToolPanelize.py:799 flatcamTools/ToolRulesCheck.py:1127 +msgid "Working..." +msgstr "Working..." + +#: flatcamTools/ToolCopperThieving.py:1061 +msgid "Geometry not supported for bounding box" +msgstr "Geometry not supported for bounding box" + +#: flatcamTools/ToolCopperThieving.py:1067 flatcamTools/ToolNCC.py:1933 +#: flatcamTools/ToolNCC.py:1988 flatcamTools/ToolNCC.py:2992 +#: flatcamTools/ToolPaint.py:3380 +msgid "No object available." +msgstr "No object available." + +#: flatcamTools/ToolCopperThieving.py:1104 flatcamTools/ToolNCC.py:1958 +#: flatcamTools/ToolNCC.py:2011 flatcamTools/ToolNCC.py:3034 +msgid "The reference object type is not supported." +msgstr "The reference object type is not supported." + +#: flatcamTools/ToolCopperThieving.py:1109 +msgid "Copper Thieving Tool. Appending new geometry and buffering." +msgstr "Copper Thieving Tool. Appending new geometry and buffering." + +#: flatcamTools/ToolCopperThieving.py:1125 +msgid "Create geometry" +msgstr "Create geometry" + +#: flatcamTools/ToolCopperThieving.py:1325 +#: flatcamTools/ToolCopperThieving.py:1329 +msgid "P-Plating Mask" +msgstr "P-Plating Mask" + +#: flatcamTools/ToolCopperThieving.py:1351 +msgid "Append PP-M geometry" +msgstr "Append PP-M geometry" + +#: flatcamTools/ToolCopperThieving.py:1477 +msgid "Generating Pattern Plating Mask done." +msgstr "Generating Pattern Plating Mask done." + +#: flatcamTools/ToolCopperThieving.py:1549 +msgid "Copper Thieving Tool exit." +msgstr "Copper Thieving Tool exit." + +#: flatcamTools/ToolCutOut.py:41 +msgid "Cutout PCB" +msgstr "Cutout PCB" + +#: flatcamTools/ToolCutOut.py:69 flatcamTools/ToolPanelize.py:54 +msgid "Source Object" +msgstr "Source Object" + +#: flatcamTools/ToolCutOut.py:70 +msgid "Object to be cutout" +msgstr "Object to be cutout" + +#: flatcamTools/ToolCutOut.py:75 +msgid "Kind" +msgstr "Kind" + +#: flatcamTools/ToolCutOut.py:97 +msgid "" +"Specify the type of object to be cutout.\n" +"It can be of type: Gerber or Geometry.\n" +"What is selected here will dictate the kind\n" +"of objects that will populate the 'Object' combobox." +msgstr "" +"Specify the type of object to be cutout.\n" +"It can be of type: Gerber or Geometry.\n" +"What is selected here will dictate the kind\n" +"of objects that will populate the 'Object' combobox." + +#: flatcamTools/ToolCutOut.py:121 +msgid "Tool Parameters" +msgstr "Tool Parameters" + +#: flatcamTools/ToolCutOut.py:238 +msgid "A. Automatic Bridge Gaps" +msgstr "A. Automatic Bridge Gaps" + +#: flatcamTools/ToolCutOut.py:240 +msgid "This section handle creation of automatic bridge gaps." +msgstr "This section handle creation of automatic bridge gaps." + +#: flatcamTools/ToolCutOut.py:247 +msgid "" +"Number of gaps used for the Automatic cutout.\n" +"There can be maximum 8 bridges/gaps.\n" +"The choices are:\n" +"- None - no gaps\n" +"- lr - left + right\n" +"- tb - top + bottom\n" +"- 4 - left + right +top + bottom\n" +"- 2lr - 2*left + 2*right\n" +"- 2tb - 2*top + 2*bottom\n" +"- 8 - 2*left + 2*right +2*top + 2*bottom" +msgstr "" +"Number of gaps used for the Automatic cutout.\n" +"There can be maximum 8 bridges/gaps.\n" +"The choices are:\n" +"- None - no gaps\n" +"- lr - left + right\n" +"- tb - top + bottom\n" +"- 4 - left + right +top + bottom\n" +"- 2lr - 2*left + 2*right\n" +"- 2tb - 2*top + 2*bottom\n" +"- 8 - 2*left + 2*right +2*top + 2*bottom" + +#: flatcamTools/ToolCutOut.py:269 +msgid "Generate Freeform Geometry" +msgstr "Generate Freeform Geometry" + +#: flatcamTools/ToolCutOut.py:271 +msgid "" +"Cutout the selected object.\n" +"The cutout shape can be of any shape.\n" +"Useful when the PCB has a non-rectangular shape." +msgstr "" +"Cutout the selected object.\n" +"The cutout shape can be of any shape.\n" +"Useful when the PCB has a non-rectangular shape." + +#: flatcamTools/ToolCutOut.py:283 +msgid "Generate Rectangular Geometry" +msgstr "Generate Rectangular Geometry" + +#: flatcamTools/ToolCutOut.py:285 +msgid "" +"Cutout the selected object.\n" +"The resulting cutout shape is\n" +"always a rectangle shape and it will be\n" +"the bounding box of the Object." +msgstr "" +"Cutout the selected object.\n" +"The resulting cutout shape is\n" +"always a rectangle shape and it will be\n" +"the bounding box of the Object." + +#: flatcamTools/ToolCutOut.py:304 +msgid "B. Manual Bridge Gaps" +msgstr "B. Manual Bridge Gaps" + +#: flatcamTools/ToolCutOut.py:306 +msgid "" +"This section handle creation of manual bridge gaps.\n" +"This is done by mouse clicking on the perimeter of the\n" +"Geometry object that is used as a cutout object. " +msgstr "" +"This section handle creation of manual bridge gaps.\n" +"This is done by mouse clicking on the perimeter of the\n" +"Geometry object that is used as a cutout object. " + +#: flatcamTools/ToolCutOut.py:321 +msgid "Geometry object used to create the manual cutout." +msgstr "Geometry object used to create the manual cutout." + +#: flatcamTools/ToolCutOut.py:328 +msgid "Generate Manual Geometry" +msgstr "Generate Manual Geometry" + +#: flatcamTools/ToolCutOut.py:330 +msgid "" +"If the object to be cutout is a Gerber\n" +"first create a Geometry that surrounds it,\n" +"to be used as the cutout, if one doesn't exist yet.\n" +"Select the source Gerber file in the top object combobox." +msgstr "" +"If the object to be cutout is a Gerber\n" +"first create a Geometry that surrounds it,\n" +"to be used as the cutout, if one doesn't exist yet.\n" +"Select the source Gerber file in the top object combobox." + +#: flatcamTools/ToolCutOut.py:343 +msgid "Manual Add Bridge Gaps" +msgstr "Manual Add Bridge Gaps" + +#: flatcamTools/ToolCutOut.py:345 +msgid "" +"Use the left mouse button (LMB) click\n" +"to create a bridge gap to separate the PCB from\n" +"the surrounding material.\n" +"The LMB click has to be done on the perimeter of\n" +"the Geometry object used as a cutout geometry." +msgstr "" +"Use the left mouse button (LMB) click\n" +"to create a bridge gap to separate the PCB from\n" +"the surrounding material.\n" +"The LMB click has to be done on the perimeter of\n" +"the Geometry object used as a cutout geometry." + +#: flatcamTools/ToolCutOut.py:524 +msgid "" +"There is no object selected for Cutout.\n" +"Select one and try again." +msgstr "" +"There is no object selected for Cutout.\n" +"Select one and try again." + +#: flatcamTools/ToolCutOut.py:530 flatcamTools/ToolCutOut.py:733 +#: flatcamTools/ToolCutOut.py:914 flatcamTools/ToolCutOut.py:996 +#: tclCommands/TclCommandGeoCutout.py:184 +msgid "Tool Diameter is zero value. Change it to a positive real number." +msgstr "Tool Diameter is zero value. Change it to a positive real number." + +#: flatcamTools/ToolCutOut.py:544 flatcamTools/ToolCutOut.py:748 +msgid "Number of gaps value is missing. Add it and retry." +msgstr "Number of gaps value is missing. Add it and retry." + +#: flatcamTools/ToolCutOut.py:549 flatcamTools/ToolCutOut.py:752 +msgid "" +"Gaps value can be only one of: 'None', 'lr', 'tb', '2lr', '2tb', 4 or 8. " +"Fill in a correct value and retry. " +msgstr "" +"Gaps value can be only one of: 'None', 'lr', 'tb', '2lr', '2tb', 4 or 8. " +"Fill in a correct value and retry. " + +#: flatcamTools/ToolCutOut.py:554 flatcamTools/ToolCutOut.py:758 +msgid "" +"Cutout operation cannot be done on a multi-geo Geometry.\n" +"Optionally, this Multi-geo Geometry can be converted to Single-geo " +"Geometry,\n" +"and after that perform Cutout." +msgstr "" +"Cutout operation cannot be done on a multi-geo Geometry.\n" +"Optionally, this Multi-geo Geometry can be converted to Single-geo " +"Geometry,\n" +"and after that perform Cutout." + +#: flatcamTools/ToolCutOut.py:706 flatcamTools/ToolCutOut.py:903 +msgid "Any form CutOut operation finished." +msgstr "Any form CutOut operation finished." + +#: flatcamTools/ToolCutOut.py:728 flatcamTools/ToolInvertGerber.py:214 +#: flatcamTools/ToolNCC.py:1603 flatcamTools/ToolPaint.py:1397 +#: flatcamTools/ToolPanelize.py:417 tclCommands/TclCommandBbox.py:71 +#: tclCommands/TclCommandNregions.py:71 +msgid "Object not found" +msgstr "Object not found" + +#: flatcamTools/ToolCutOut.py:872 +msgid "Rectangular cutout with negative margin is not possible." +msgstr "Rectangular cutout with negative margin is not possible." + +#: flatcamTools/ToolCutOut.py:908 +msgid "" +"Click on the selected geometry object perimeter to create a bridge gap ..." +msgstr "" +"Click on the selected geometry object perimeter to create a bridge gap ..." + +#: flatcamTools/ToolCutOut.py:925 flatcamTools/ToolCutOut.py:951 +msgid "Could not retrieve Geometry object" +msgstr "Could not retrieve Geometry object" + +#: flatcamTools/ToolCutOut.py:956 +msgid "Geometry object for manual cutout not found" +msgstr "Geometry object for manual cutout not found" + +#: flatcamTools/ToolCutOut.py:966 +msgid "Added manual Bridge Gap." +msgstr "Added manual Bridge Gap." + +#: flatcamTools/ToolCutOut.py:978 +msgid "Could not retrieve Gerber object" +msgstr "Could not retrieve Gerber object" + +#: flatcamTools/ToolCutOut.py:983 +msgid "" +"There is no Gerber object selected for Cutout.\n" +"Select one and try again." +msgstr "" +"There is no Gerber object selected for Cutout.\n" +"Select one and try again." + +#: flatcamTools/ToolCutOut.py:989 +msgid "" +"The selected object has to be of Gerber type.\n" +"Select a Gerber file and try again." +msgstr "" +"The selected object has to be of Gerber type.\n" +"Select a Gerber file and try again." + +#: flatcamTools/ToolCutOut.py:1024 +msgid "Geometry not supported for cutout" +msgstr "Geometry not supported for cutout" + +#: flatcamTools/ToolCutOut.py:1099 +msgid "Making manual bridge gap..." +msgstr "Making manual bridge gap..." + +#: flatcamTools/ToolDblSided.py:26 +msgid "2-Sided PCB" +msgstr "2-Sided PCB" + +#: flatcamTools/ToolDblSided.py:52 +msgid "Mirror Operation" +msgstr "Mirror Operation" + +#: flatcamTools/ToolDblSided.py:53 +msgid "Objects to be mirrored" +msgstr "Objects to be mirrored" + +#: flatcamTools/ToolDblSided.py:65 +msgid "Gerber to be mirrored" +msgstr "Gerber to be mirrored" + +#: flatcamTools/ToolDblSided.py:69 flatcamTools/ToolDblSided.py:97 +#: flatcamTools/ToolDblSided.py:127 +msgid "" +"Mirrors (flips) the specified object around \n" +"the specified axis. Does not create a new \n" +"object, but modifies it." +msgstr "" +"Mirrors (flips) the specified object around \n" +"the specified axis. Does not create a new \n" +"object, but modifies it." + +#: flatcamTools/ToolDblSided.py:93 +msgid "Excellon Object to be mirrored." +msgstr "Excellon Object to be mirrored." + +#: flatcamTools/ToolDblSided.py:122 +msgid "Geometry Obj to be mirrored." +msgstr "Geometry Obj to be mirrored." + +#: flatcamTools/ToolDblSided.py:158 +msgid "Mirror Parameters" +msgstr "Mirror Parameters" + +#: flatcamTools/ToolDblSided.py:159 +msgid "Parameters for the mirror operation" +msgstr "Parameters for the mirror operation" + +#: flatcamTools/ToolDblSided.py:164 +msgid "Mirror Axis" +msgstr "Mirror Axis" + +#: flatcamTools/ToolDblSided.py:175 +msgid "" +"The coordinates used as reference for the mirror operation.\n" +"Can be:\n" +"- Point -> a set of coordinates (x,y) around which the object is mirrored\n" +"- Box -> a set of coordinates (x, y) obtained from the center of the\n" +"bounding box of another object selected below" +msgstr "" +"The coordinates used as reference for the mirror operation.\n" +"Can be:\n" +"- Point -> a set of coordinates (x,y) around which the object is mirrored\n" +"- Box -> a set of coordinates (x, y) obtained from the center of the\n" +"bounding box of another object selected below" + +#: flatcamTools/ToolDblSided.py:189 +msgid "Point coordinates" +msgstr "Point coordinates" + +#: flatcamTools/ToolDblSided.py:194 +msgid "" +"Add the coordinates in format (x, y) through which the mirroring " +"axis\n" +" selected in 'MIRROR AXIS' pass.\n" +"The (x, y) coordinates are captured by pressing SHIFT key\n" +"and left mouse button click on canvas or you can enter the coordinates " +"manually." +msgstr "" +"Add the coordinates in format (x, y) through which the mirroring " +"axis\n" +" selected in 'MIRROR AXIS' pass.\n" +"The (x, y) coordinates are captured by pressing SHIFT key\n" +"and left mouse button click on canvas or you can enter the coordinates " +"manually." + +#: flatcamTools/ToolDblSided.py:218 +msgid "" +"It can be of type: Gerber or Excellon or Geometry.\n" +"The coordinates of the center of the bounding box are used\n" +"as reference for mirror operation." +msgstr "" +"It can be of type: Gerber or Excellon or Geometry.\n" +"The coordinates of the center of the bounding box are used\n" +"as reference for mirror operation." + +#: flatcamTools/ToolDblSided.py:252 +msgid "Bounds Values" +msgstr "Bounds Values" + +#: flatcamTools/ToolDblSided.py:254 +msgid "" +"Select on canvas the object(s)\n" +"for which to calculate bounds values." +msgstr "" +"Select on canvas the object(s)\n" +"for which to calculate bounds values." + +#: flatcamTools/ToolDblSided.py:264 +msgid "X min" +msgstr "X min" + +#: flatcamTools/ToolDblSided.py:266 flatcamTools/ToolDblSided.py:280 +msgid "Minimum location." +msgstr "Minimum location." + +#: flatcamTools/ToolDblSided.py:278 +msgid "Y min" +msgstr "Y min" + +#: flatcamTools/ToolDblSided.py:292 +msgid "X max" +msgstr "X max" + +#: flatcamTools/ToolDblSided.py:294 flatcamTools/ToolDblSided.py:308 +msgid "Maximum location." +msgstr "Maximum location." + +#: flatcamTools/ToolDblSided.py:306 +msgid "Y max" +msgstr "Y max" + +#: flatcamTools/ToolDblSided.py:317 +msgid "Center point coordinates" +msgstr "Center point coordinates" + +#: flatcamTools/ToolDblSided.py:319 +msgid "Centroid" +msgstr "Centroid" + +#: flatcamTools/ToolDblSided.py:321 +msgid "" +"The center point location for the rectangular\n" +"bounding shape. Centroid. Format is (x, y)." +msgstr "" +"The center point location for the rectangular\n" +"bounding shape. Centroid. Format is (x, y)." + +#: flatcamTools/ToolDblSided.py:330 +msgid "Calculate Bounds Values" +msgstr "Calculate Bounds Values" + +#: flatcamTools/ToolDblSided.py:332 +msgid "" +"Calculate the enveloping rectangular shape coordinates,\n" +"for the selection of objects.\n" +"The envelope shape is parallel with the X, Y axis." +msgstr "" +"Calculate the enveloping rectangular shape coordinates,\n" +"for the selection of objects.\n" +"The envelope shape is parallel with the X, Y axis." + +#: flatcamTools/ToolDblSided.py:352 +msgid "PCB Alignment" +msgstr "PCB Alignment" + +#: flatcamTools/ToolDblSided.py:354 flatcamTools/ToolDblSided.py:456 +msgid "" +"Creates an Excellon Object containing the\n" +"specified alignment holes and their mirror\n" +"images." +msgstr "" +"Creates an Excellon Object containing the\n" +"specified alignment holes and their mirror\n" +"images." + +#: flatcamTools/ToolDblSided.py:361 +msgid "Drill Diameter" +msgstr "Drill Diameter" + +#: flatcamTools/ToolDblSided.py:390 flatcamTools/ToolDblSided.py:397 +msgid "" +"The reference point used to create the second alignment drill\n" +"from the first alignment drill, by doing mirror.\n" +"It can be modified in the Mirror Parameters -> Reference section" +msgstr "" +"The reference point used to create the second alignment drill\n" +"from the first alignment drill, by doing mirror.\n" +"It can be modified in the Mirror Parameters -> Reference section" + +#: flatcamTools/ToolDblSided.py:410 +msgid "Alignment Drill Coordinates" +msgstr "Alignment Drill Coordinates" + +#: flatcamTools/ToolDblSided.py:412 +msgid "" +"Alignment holes (x1, y1), (x2, y2), ... on one side of the mirror axis. For " +"each set of (x, y) coordinates\n" +"entered here, a pair of drills will be created:\n" +"\n" +"- one drill at the coordinates from the field\n" +"- one drill in mirror position over the axis selected above in the 'Align " +"Axis'." +msgstr "" +"Alignment holes (x1, y1), (x2, y2), ... on one side of the mirror axis. For " +"each set of (x, y) coordinates\n" +"entered here, a pair of drills will be created:\n" +"\n" +"- one drill at the coordinates from the field\n" +"- one drill in mirror position over the axis selected above in the 'Align " +"Axis'." + +#: flatcamTools/ToolDblSided.py:420 +msgid "Drill coordinates" +msgstr "Drill coordinates" + +#: flatcamTools/ToolDblSided.py:427 +msgid "" +"Add alignment drill holes coordinates in the format: (x1, y1), (x2, " +"y2), ... \n" +"on one side of the alignment axis.\n" +"\n" +"The coordinates set can be obtained:\n" +"- press SHIFT key and left mouse clicking on canvas. Then click Add.\n" +"- press SHIFT key and left mouse clicking on canvas. Then Ctrl+V in the " +"field.\n" +"- press SHIFT key and left mouse clicking on canvas. Then RMB click in the " +"field and click Paste.\n" +"- by entering the coords manually in the format: (x1, y1), (x2, y2), ..." +msgstr "" +"Add alignment drill holes coordinates in the format: (x1, y1), (x2, " +"y2), ... \n" +"on one side of the alignment axis.\n" +"\n" +"The coordinates set can be obtained:\n" +"- press SHIFT key and left mouse clicking on canvas. Then click Add.\n" +"- press SHIFT key and left mouse clicking on canvas. Then Ctrl+V in the " +"field.\n" +"- press SHIFT key and left mouse clicking on canvas. Then RMB click in the " +"field and click Paste.\n" +"- by entering the coords manually in the format: (x1, y1), (x2, y2), ..." + +#: flatcamTools/ToolDblSided.py:442 +msgid "Delete Last" +msgstr "Delete Last" + +#: flatcamTools/ToolDblSided.py:444 +msgid "Delete the last coordinates tuple in the list." +msgstr "Delete the last coordinates tuple in the list." + +#: flatcamTools/ToolDblSided.py:454 +msgid "Create Excellon Object" +msgstr "Create Excellon Object" + +#: flatcamTools/ToolDblSided.py:541 +msgid "2-Sided Tool" +msgstr "2-Sided Tool" + +#: flatcamTools/ToolDblSided.py:581 +msgid "" +"'Point' reference is selected and 'Point' coordinates are missing. Add them " +"and retry." +msgstr "" +"'Point' reference is selected and 'Point' coordinates are missing. Add them " +"and retry." + +#: flatcamTools/ToolDblSided.py:600 +msgid "There is no Box reference object loaded. Load one and retry." +msgstr "There is no Box reference object loaded. Load one and retry." + +#: flatcamTools/ToolDblSided.py:612 +msgid "No value or wrong format in Drill Dia entry. Add it and retry." +msgstr "No value or wrong format in Drill Dia entry. Add it and retry." + +#: flatcamTools/ToolDblSided.py:623 +msgid "There are no Alignment Drill Coordinates to use. Add them and retry." +msgstr "There are no Alignment Drill Coordinates to use. Add them and retry." + +#: flatcamTools/ToolDblSided.py:648 +msgid "Excellon object with alignment drills created..." +msgstr "Excellon object with alignment drills created..." + +#: flatcamTools/ToolDblSided.py:661 flatcamTools/ToolDblSided.py:704 +#: flatcamTools/ToolDblSided.py:748 +msgid "Only Gerber, Excellon and Geometry objects can be mirrored." +msgstr "Only Gerber, Excellon and Geometry objects can be mirrored." + +#: flatcamTools/ToolDblSided.py:671 flatcamTools/ToolDblSided.py:715 +msgid "" +"There are no Point coordinates in the Point field. Add coords and try " +"again ..." +msgstr "" +"There are no Point coordinates in the Point field. Add coords and try " +"again ..." + +#: flatcamTools/ToolDblSided.py:681 flatcamTools/ToolDblSided.py:725 +#: flatcamTools/ToolDblSided.py:762 +msgid "There is no Box object loaded ..." +msgstr "There is no Box object loaded ..." + +#: flatcamTools/ToolDblSided.py:691 flatcamTools/ToolDblSided.py:735 +#: flatcamTools/ToolDblSided.py:772 +msgid "was mirrored" +msgstr "was mirrored" + +#: flatcamTools/ToolDblSided.py:700 flatcamTools/ToolPunchGerber.py:533 +msgid "There is no Excellon object loaded ..." +msgstr "There is no Excellon object loaded ..." + +#: flatcamTools/ToolDblSided.py:744 +msgid "There is no Geometry object loaded ..." +msgstr "There is no Geometry object loaded ..." + +#: flatcamTools/ToolDistance.py:57 flatcamTools/ToolDistanceMin.py:51 +msgid "Those are the units in which the distance is measured." +msgstr "Those are the units in which the distance is measured." + +#: flatcamTools/ToolDistance.py:58 flatcamTools/ToolDistanceMin.py:52 +msgid "METRIC (mm)" +msgstr "METRIC (mm)" + +#: flatcamTools/ToolDistance.py:58 flatcamTools/ToolDistanceMin.py:52 +msgid "INCH (in)" +msgstr "INCH (in)" + +#: flatcamTools/ToolDistance.py:64 +msgid "Snap to center" +msgstr "Snap to center" + +#: flatcamTools/ToolDistance.py:66 +msgid "" +"Mouse cursor will snap to the center of the pad/drill\n" +"when it is hovering over the geometry of the pad/drill." +msgstr "" +"Mouse cursor will snap to the center of the pad/drill\n" +"when it is hovering over the geometry of the pad/drill." + +#: flatcamTools/ToolDistance.py:76 +msgid "Start Coords" +msgstr "Start Coords" + +#: flatcamTools/ToolDistance.py:77 flatcamTools/ToolDistance.py:82 +msgid "This is measuring Start point coordinates." +msgstr "This is measuring Start point coordinates." + +#: flatcamTools/ToolDistance.py:87 +msgid "Stop Coords" +msgstr "Stop Coords" + +#: flatcamTools/ToolDistance.py:88 flatcamTools/ToolDistance.py:93 +msgid "This is the measuring Stop point coordinates." +msgstr "This is the measuring Stop point coordinates." + +#: flatcamTools/ToolDistance.py:98 flatcamTools/ToolDistanceMin.py:63 +msgid "Dx" +msgstr "Dx" + +#: flatcamTools/ToolDistance.py:99 flatcamTools/ToolDistance.py:104 +#: flatcamTools/ToolDistanceMin.py:64 flatcamTools/ToolDistanceMin.py:93 +msgid "This is the distance measured over the X axis." +msgstr "This is the distance measured over the X axis." + +#: flatcamTools/ToolDistance.py:109 flatcamTools/ToolDistanceMin.py:66 +msgid "Dy" +msgstr "Dy" + +#: flatcamTools/ToolDistance.py:110 flatcamTools/ToolDistance.py:115 +#: flatcamTools/ToolDistanceMin.py:67 flatcamTools/ToolDistanceMin.py:98 +msgid "This is the distance measured over the Y axis." +msgstr "This is the distance measured over the Y axis." + +#: flatcamTools/ToolDistance.py:121 flatcamTools/ToolDistance.py:126 +#: flatcamTools/ToolDistanceMin.py:70 flatcamTools/ToolDistanceMin.py:103 +msgid "This is orientation angle of the measuring line." +msgstr "This is orientation angle of the measuring line." + +#: flatcamTools/ToolDistance.py:131 flatcamTools/ToolDistanceMin.py:72 +msgid "DISTANCE" +msgstr "DISTANCE" + +#: flatcamTools/ToolDistance.py:132 flatcamTools/ToolDistance.py:137 +msgid "This is the point to point Euclidian distance." +msgstr "This is the point to point Euclidian distance." + +#: flatcamTools/ToolDistance.py:142 flatcamTools/ToolDistance.py:337 +#: flatcamTools/ToolDistanceMin.py:115 +msgid "Measure" +msgstr "Measure" + +#: flatcamTools/ToolDistance.py:272 +msgid "Working" +msgstr "Working" + +#: flatcamTools/ToolDistance.py:277 +msgid "MEASURING: Click on the Start point ..." +msgstr "MEASURING: Click on the Start point ..." + +#: flatcamTools/ToolDistance.py:387 +msgid "Distance Tool finished." +msgstr "Distance Tool finished." + +#: flatcamTools/ToolDistance.py:455 +msgid "Pads overlapped. Aborting." +msgstr "Pads overlapped. Aborting." + +#: flatcamTools/ToolDistance.py:485 +msgid "MEASURING: Click on the Destination point ..." +msgstr "MEASURING: Click on the Destination point ..." + +#: flatcamTools/ToolDistance.py:494 flatcamTools/ToolDistanceMin.py:285 +msgid "MEASURING" +msgstr "MEASURING" + +#: flatcamTools/ToolDistance.py:495 flatcamTools/ToolDistanceMin.py:286 +msgid "Result" +msgstr "Result" + +#: flatcamTools/ToolDistanceMin.py:32 flatcamTools/ToolDistanceMin.py:144 +msgid "Minimum Distance Tool" +msgstr "Minimum Distance Tool" + +#: flatcamTools/ToolDistanceMin.py:55 +msgid "First object point" +msgstr "First object point" + +#: flatcamTools/ToolDistanceMin.py:56 flatcamTools/ToolDistanceMin.py:81 +msgid "" +"This is first object point coordinates.\n" +"This is the start point for measuring distance." +msgstr "" +"This is first object point coordinates.\n" +"This is the start point for measuring distance." + +#: flatcamTools/ToolDistanceMin.py:59 +msgid "Second object point" +msgstr "Second object point" + +#: flatcamTools/ToolDistanceMin.py:60 flatcamTools/ToolDistanceMin.py:87 +msgid "" +"This is second object point coordinates.\n" +"This is the end point for measuring distance." +msgstr "" +"This is second object point coordinates.\n" +"This is the end point for measuring distance." + +#: flatcamTools/ToolDistanceMin.py:73 flatcamTools/ToolDistanceMin.py:108 +msgid "This is the point to point Euclidean distance." +msgstr "This is the point to point Euclidean distance." + +#: flatcamTools/ToolDistanceMin.py:75 +msgid "Half Point" +msgstr "Half Point" + +#: flatcamTools/ToolDistanceMin.py:76 flatcamTools/ToolDistanceMin.py:113 +msgid "This is the middle point of the point to point Euclidean distance." +msgstr "This is the middle point of the point to point Euclidean distance." + +#: flatcamTools/ToolDistanceMin.py:118 +msgid "Jump to Half Point" +msgstr "Jump to Half Point" + +#: flatcamTools/ToolDistanceMin.py:155 +msgid "" +"Select two objects and no more, to measure the distance between them ..." +msgstr "" +"Select two objects and no more, to measure the distance between them ..." + +#: flatcamTools/ToolDistanceMin.py:196 flatcamTools/ToolDistanceMin.py:217 +#: flatcamTools/ToolDistanceMin.py:226 flatcamTools/ToolDistanceMin.py:247 +msgid "Select two objects and no more. Currently the selection has objects: " +msgstr "Select two objects and no more. Currently the selection has objects: " + +#: flatcamTools/ToolDistanceMin.py:294 +msgid "Objects intersects or touch at" +msgstr "Objects intersects or touch at" + +#: flatcamTools/ToolDistanceMin.py:300 +msgid "Jumped to the half point between the two selected objects" +msgstr "Jumped to the half point between the two selected objects" + +#: flatcamTools/ToolExtractDrills.py:29 flatcamTools/ToolExtractDrills.py:295 +msgid "Extract Drills" +msgstr "Extract Drills" + +#: flatcamTools/ToolExtractDrills.py:62 +msgid "Gerber from which to extract drill holes" +msgstr "Gerber from which to extract drill holes" + +#: flatcamTools/ToolExtractDrills.py:297 +msgid "Extract drills from a given Gerber file." +msgstr "Extract drills from a given Gerber file." + +#: flatcamTools/ToolExtractDrills.py:478 flatcamTools/ToolExtractDrills.py:563 +#: flatcamTools/ToolExtractDrills.py:648 +msgid "No drills extracted. Try different parameters." +msgstr "No drills extracted. Try different parameters." + +#: flatcamTools/ToolFiducials.py:56 +msgid "Fiducials Coordinates" +msgstr "Fiducials Coordinates" + +#: flatcamTools/ToolFiducials.py:58 +msgid "" +"A table with the fiducial points coordinates,\n" +"in the format (x, y)." +msgstr "" +"A table with the fiducial points coordinates,\n" +"in the format (x, y)." + +#: flatcamTools/ToolFiducials.py:99 +msgid "Top Right" +msgstr "Top Right" + +#: flatcamTools/ToolFiducials.py:191 +msgid "" +"- 'Auto' - automatic placement of fiducials in the corners of the bounding " +"box.\n" +" - 'Manual' - manual placement of fiducials." +msgstr "" +"- 'Auto' - automatic placement of fiducials in the corners of the bounding " +"box.\n" +" - 'Manual' - manual placement of fiducials." + +#: flatcamTools/ToolFiducials.py:259 +msgid "Copper Gerber" +msgstr "Copper Gerber" + +#: flatcamTools/ToolFiducials.py:268 +msgid "Add Fiducial" +msgstr "Add Fiducial" + +#: flatcamTools/ToolFiducials.py:270 +msgid "Will add a polygon on the copper layer to serve as fiducial." +msgstr "Will add a polygon on the copper layer to serve as fiducial." + +#: flatcamTools/ToolFiducials.py:286 +msgid "Soldermask Gerber" +msgstr "Soldermask Gerber" + +#: flatcamTools/ToolFiducials.py:288 +msgid "The Soldermask Gerber object." +msgstr "The Soldermask Gerber object." + +#: flatcamTools/ToolFiducials.py:300 +msgid "Add Soldermask Opening" +msgstr "Add Soldermask Opening" + +#: flatcamTools/ToolFiducials.py:302 +msgid "" +"Will add a polygon on the soldermask layer\n" +"to serve as fiducial opening.\n" +"The diameter is always double of the diameter\n" +"for the copper fiducial." +msgstr "" +"Will add a polygon on the soldermask layer\n" +"to serve as fiducial opening.\n" +"The diameter is always double of the diameter\n" +"for the copper fiducial." + +#: flatcamTools/ToolFiducials.py:516 +msgid "Click to add first Fiducial. Bottom Left..." +msgstr "Click to add first Fiducial. Bottom Left..." + +#: flatcamTools/ToolFiducials.py:780 +msgid "Click to add the last fiducial. Top Right..." +msgstr "Click to add the last fiducial. Top Right..." + +#: flatcamTools/ToolFiducials.py:785 +msgid "Click to add the second fiducial. Top Left or Bottom Right..." +msgstr "Click to add the second fiducial. Top Left or Bottom Right..." + +#: flatcamTools/ToolFiducials.py:788 flatcamTools/ToolFiducials.py:797 +msgid "Done. All fiducials have been added." +msgstr "Done. All fiducials have been added." + +#: flatcamTools/ToolFiducials.py:874 +msgid "Fiducials Tool exit." +msgstr "Fiducials Tool exit." + +#: flatcamTools/ToolFilm.py:42 +msgid "Film PCB" +msgstr "Film PCB" + +#: flatcamTools/ToolFilm.py:78 +msgid "" +"Specify the type of object for which to create the film.\n" +"The object can be of type: Gerber or Geometry.\n" +"The selection here decide the type of objects that will be\n" +"in the Film Object combobox." +msgstr "" +"Specify the type of object for which to create the film.\n" +"The object can be of type: Gerber or Geometry.\n" +"The selection here decide the type of objects that will be\n" +"in the Film Object combobox." + +#: flatcamTools/ToolFilm.py:92 +msgid "Film Object" +msgstr "Film Object" + +#: flatcamTools/ToolFilm.py:94 +msgid "Object for which to create the film." +msgstr "Object for which to create the film." + +#: flatcamTools/ToolFilm.py:115 +msgid "" +"Specify the type of object to be used as an container for\n" +"film creation. It can be: Gerber or Geometry type.The selection here decide " +"the type of objects that will be\n" +"in the Box Object combobox." +msgstr "" +"Specify the type of object to be used as an container for\n" +"film creation. It can be: Gerber or Geometry type.The selection here decide " +"the type of objects that will be\n" +"in the Box Object combobox." + +#: flatcamTools/ToolFilm.py:129 +msgid "Box Object" +msgstr "Box Object" + +#: flatcamTools/ToolFilm.py:131 +msgid "" +"The actual object that is used as container for the\n" +" selected object for which we create the film.\n" +"Usually it is the PCB outline but it can be also the\n" +"same object for which the film is created." +msgstr "" +"The actual object that is used as container for the\n" +" selected object for which we create the film.\n" +"Usually it is the PCB outline but it can be also the\n" +"same object for which the film is created." + +#: flatcamTools/ToolFilm.py:273 +msgid "Film Parameters" +msgstr "Film Parameters" + +#: flatcamTools/ToolFilm.py:334 +msgid "Punch drill holes" +msgstr "Punch drill holes" + +#: flatcamTools/ToolFilm.py:335 +msgid "" +"When checked the generated film will have holes in pads when\n" +"the generated film is positive. This is done to help drilling,\n" +"when done manually." +msgstr "" +"When checked the generated film will have holes in pads when\n" +"the generated film is positive. This is done to help drilling,\n" +"when done manually." + +#: flatcamTools/ToolFilm.py:353 +msgid "Source" +msgstr "Source" + +#: flatcamTools/ToolFilm.py:355 +msgid "" +"The punch hole source can be:\n" +"- Excellon -> an Excellon holes center will serve as reference.\n" +"- Pad Center -> will try to use the pads center as reference." +msgstr "" +"The punch hole source can be:\n" +"- Excellon -> an Excellon holes center will serve as reference.\n" +"- Pad Center -> will try to use the pads center as reference." + +#: flatcamTools/ToolFilm.py:360 +msgid "Pad center" +msgstr "Pad center" + +#: flatcamTools/ToolFilm.py:365 +msgid "Excellon Obj" +msgstr "Excellon Obj" + +#: flatcamTools/ToolFilm.py:367 +msgid "" +"Remove the geometry of Excellon from the Film to create the holes in pads." +msgstr "" +"Remove the geometry of Excellon from the Film to create the holes in pads." + +#: flatcamTools/ToolFilm.py:381 +msgid "Punch Size" +msgstr "Punch Size" + +#: flatcamTools/ToolFilm.py:382 +msgid "The value here will control how big is the punch hole in the pads." +msgstr "The value here will control how big is the punch hole in the pads." + +#: flatcamTools/ToolFilm.py:502 +msgid "Save Film" +msgstr "Save Film" + +#: flatcamTools/ToolFilm.py:504 +msgid "" +"Create a Film for the selected object, within\n" +"the specified box. Does not create a new \n" +" FlatCAM object, but directly save it in the\n" +"selected format." +msgstr "" +"Create a Film for the selected object, within\n" +"the specified box. Does not create a new \n" +" FlatCAM object, but directly save it in the\n" +"selected format." + +#: flatcamTools/ToolFilm.py:664 +msgid "" +"Using the Pad center does not work on Geometry objects. Only a Gerber object " +"has pads." +msgstr "" +"Using the Pad center does not work on Geometry objects. Only a Gerber object " +"has pads." + +#: flatcamTools/ToolFilm.py:674 +msgid "No FlatCAM object selected. Load an object for Film and retry." +msgstr "No FlatCAM object selected. Load an object for Film and retry." + +#: flatcamTools/ToolFilm.py:681 +msgid "No FlatCAM object selected. Load an object for Box and retry." +msgstr "No FlatCAM object selected. Load an object for Box and retry." + +#: flatcamTools/ToolFilm.py:685 +msgid "No FlatCAM object selected." +msgstr "No FlatCAM object selected." + +#: flatcamTools/ToolFilm.py:696 +msgid "Generating Film ..." +msgstr "Generating Film ..." + +#: flatcamTools/ToolFilm.py:745 flatcamTools/ToolFilm.py:749 +msgid "Export positive film" +msgstr "Export positive film" + +#: flatcamTools/ToolFilm.py:782 +msgid "" +"No Excellon object selected. Load an object for punching reference and retry." +msgstr "" +"No Excellon object selected. Load an object for punching reference and retry." + +#: flatcamTools/ToolFilm.py:806 +msgid "" +" Could not generate punched hole film because the punch hole sizeis bigger " +"than some of the apertures in the Gerber object." +msgstr "" +" Could not generate punched hole film because the punch hole sizeis bigger " +"than some of the apertures in the Gerber object." + +#: flatcamTools/ToolFilm.py:818 +msgid "" +"Could not generate punched hole film because the punch hole sizeis bigger " +"than some of the apertures in the Gerber object." +msgstr "" +"Could not generate punched hole film because the punch hole sizeis bigger " +"than some of the apertures in the Gerber object." + +#: flatcamTools/ToolFilm.py:836 +msgid "" +"Could not generate punched hole film because the newly created object " +"geometry is the same as the one in the source object geometry..." +msgstr "" +"Could not generate punched hole film because the newly created object " +"geometry is the same as the one in the source object geometry..." + +#: flatcamTools/ToolFilm.py:891 flatcamTools/ToolFilm.py:895 +msgid "Export negative film" +msgstr "Export negative film" + +#: flatcamTools/ToolFilm.py:956 flatcamTools/ToolFilm.py:1139 +#: flatcamTools/ToolPanelize.py:430 +msgid "No object Box. Using instead" +msgstr "No object Box. Using instead" + +#: flatcamTools/ToolFilm.py:1072 flatcamTools/ToolFilm.py:1252 +msgid "Film file exported to" +msgstr "Film file exported to" + +#: flatcamTools/ToolFilm.py:1075 flatcamTools/ToolFilm.py:1255 +msgid "Generating Film ... Please wait." +msgstr "Generating Film ... Please wait." + +#: flatcamTools/ToolImage.py:24 +msgid "Image as Object" +msgstr "Image as Object" + +#: flatcamTools/ToolImage.py:33 +msgid "Image to PCB" +msgstr "Image to PCB" + +#: flatcamTools/ToolImage.py:56 +msgid "" +"Specify the type of object to create from the image.\n" +"It can be of type: Gerber or Geometry." +msgstr "" +"Specify the type of object to create from the image.\n" +"It can be of type: Gerber or Geometry." + +#: flatcamTools/ToolImage.py:65 +msgid "DPI value" +msgstr "DPI value" + +#: flatcamTools/ToolImage.py:66 +msgid "Specify a DPI value for the image." +msgstr "Specify a DPI value for the image." + +#: flatcamTools/ToolImage.py:72 +msgid "Level of detail" +msgstr "Level of detail" + +#: flatcamTools/ToolImage.py:81 +msgid "Image type" +msgstr "Image type" + +#: flatcamTools/ToolImage.py:83 +msgid "" +"Choose a method for the image interpretation.\n" +"B/W means a black & white image. Color means a colored image." +msgstr "" +"Choose a method for the image interpretation.\n" +"B/W means a black & white image. Color means a colored image." + +#: flatcamTools/ToolImage.py:92 flatcamTools/ToolImage.py:107 +#: flatcamTools/ToolImage.py:120 flatcamTools/ToolImage.py:133 +msgid "Mask value" +msgstr "Mask value" + +#: flatcamTools/ToolImage.py:94 +msgid "" +"Mask for monochrome image.\n" +"Takes values between [0 ... 255].\n" +"Decides the level of details to include\n" +"in the resulting geometry.\n" +"0 means no detail and 255 means everything \n" +"(which is totally black)." +msgstr "" +"Mask for monochrome image.\n" +"Takes values between [0 ... 255].\n" +"Decides the level of details to include\n" +"in the resulting geometry.\n" +"0 means no detail and 255 means everything \n" +"(which is totally black)." + +#: flatcamTools/ToolImage.py:109 +msgid "" +"Mask for RED color.\n" +"Takes values between [0 ... 255].\n" +"Decides the level of details to include\n" +"in the resulting geometry." +msgstr "" +"Mask for RED color.\n" +"Takes values between [0 ... 255].\n" +"Decides the level of details to include\n" +"in the resulting geometry." + +#: flatcamTools/ToolImage.py:122 +msgid "" +"Mask for GREEN color.\n" +"Takes values between [0 ... 255].\n" +"Decides the level of details to include\n" +"in the resulting geometry." +msgstr "" +"Mask for GREEN color.\n" +"Takes values between [0 ... 255].\n" +"Decides the level of details to include\n" +"in the resulting geometry." + +#: flatcamTools/ToolImage.py:135 +msgid "" +"Mask for BLUE color.\n" +"Takes values between [0 ... 255].\n" +"Decides the level of details to include\n" +"in the resulting geometry." +msgstr "" +"Mask for BLUE color.\n" +"Takes values between [0 ... 255].\n" +"Decides the level of details to include\n" +"in the resulting geometry." + +#: flatcamTools/ToolImage.py:143 +msgid "Import image" +msgstr "Import image" + +#: flatcamTools/ToolImage.py:145 +msgid "Open a image of raster type and then import it in FlatCAM." +msgstr "Open a image of raster type and then import it in FlatCAM." + +#: flatcamTools/ToolImage.py:182 +msgid "Image Tool" +msgstr "Image Tool" + +#: flatcamTools/ToolImage.py:234 flatcamTools/ToolImage.py:237 +msgid "Import IMAGE" +msgstr "Import IMAGE" + +#: flatcamTools/ToolImage.py:285 +msgid "Importing Image" +msgstr "Importing Image" + +#: flatcamTools/ToolInvertGerber.py:74 +msgid "Gerber object that will be inverted." +msgstr "Gerber object that will be inverted." + +#: flatcamTools/ToolInvertGerber.py:83 +msgid "Parameters for this tool" +msgstr "Parameters for this tool" + +#: flatcamTools/ToolInvertGerber.py:123 +msgid "Invert Gerber" +msgstr "Invert Gerber" + +#: flatcamTools/ToolInvertGerber.py:125 +msgid "" +"Will invert the Gerber object: areas that have copper\n" +"will be empty of copper and previous empty area will be\n" +"filled with copper." +msgstr "" +"Will invert the Gerber object: areas that have copper\n" +"will be empty of copper and previous empty area will be\n" +"filled with copper." + +#: flatcamTools/ToolInvertGerber.py:184 +msgid "Invert Tool" +msgstr "Invert Tool" + +#: flatcamTools/ToolMove.py:102 +msgid "MOVE: Click on the Start point ..." +msgstr "MOVE: Click on the Start point ..." + +#: flatcamTools/ToolMove.py:113 +msgid "Cancelled. No object(s) to move." +msgstr "Cancelled. No object(s) to move." + +#: flatcamTools/ToolMove.py:140 +msgid "MOVE: Click on the Destination point ..." +msgstr "MOVE: Click on the Destination point ..." + +#: flatcamTools/ToolMove.py:163 +msgid "Moving..." +msgstr "Moving..." + +#: flatcamTools/ToolMove.py:166 +msgid "No object(s) selected." +msgstr "No object(s) selected." + +#: flatcamTools/ToolMove.py:221 +msgid "Error when mouse left click." +msgstr "Error when mouse left click." + +#: flatcamTools/ToolNCC.py:42 +msgid "Non-Copper Clearing" +msgstr "Non-Copper Clearing" + +#: flatcamTools/ToolNCC.py:88 +msgid "" +"Specify the type of object to be cleared of excess copper.\n" +"It can be of type: Gerber or Geometry.\n" +"What is selected here will dictate the kind\n" +"of objects that will populate the 'Object' combobox." +msgstr "" +"Specify the type of object to be cleared of excess copper.\n" +"It can be of type: Gerber or Geometry.\n" +"What is selected here will dictate the kind\n" +"of objects that will populate the 'Object' combobox." + +#: flatcamTools/ToolNCC.py:110 +msgid "Object to be cleared of excess copper." +msgstr "Object to be cleared of excess copper." + +#: flatcamTools/ToolNCC.py:122 +msgid "" +"Tools pool from which the algorithm\n" +"will pick the ones used for copper clearing." +msgstr "" +"Tools pool from which the algorithm\n" +"will pick the ones used for copper clearing." + +#: flatcamTools/ToolNCC.py:138 +msgid "" +"This is the Tool Number.\n" +"Non copper clearing will start with the tool with the biggest \n" +"diameter, continuing until there are no more tools.\n" +"Only tools that create NCC clearing geometry will still be present\n" +"in the resulting geometry. This is because with some tools\n" +"this function will not be able to create painting geometry." +msgstr "" +"This is the Tool Number.\n" +"Non copper clearing will start with the tool with the biggest \n" +"diameter, continuing until there are no more tools.\n" +"Only tools that create NCC clearing geometry will still be present\n" +"in the resulting geometry. This is because with some tools\n" +"this function will not be able to create painting geometry." + +#: flatcamTools/ToolNCC.py:146 +msgid "" +"Tool Diameter. It's value (in current FlatCAM units)\n" +"is the cut width into the material." +msgstr "" +"Tool Diameter. It's value (in current FlatCAM units)\n" +"is the cut width into the material." + +#: flatcamTools/ToolNCC.py:150 +msgid "" +"The Tool Type (TT) can be:\n" +"- Circular with 1 ... 4 teeth -> it is informative only. Being circular,\n" +"the cut width in material is exactly the tool diameter.\n" +"- Ball -> informative only and make reference to the Ball type endmill.\n" +"- V-Shape -> it will disable Z-Cut parameter in the resulting geometry UI " +"form\n" +"and enable two additional UI form fields in the resulting geometry: V-Tip " +"Dia and\n" +"V-Tip Angle. Adjusting those two values will adjust the Z-Cut parameter " +"such\n" +"as the cut width into material will be equal with the value in the Tool " +"Diameter\n" +"column of this table.\n" +"Choosing the 'V-Shape' Tool Type automatically will select the Operation " +"Type\n" +"in the resulting geometry as Isolation." +msgstr "" +"The Tool Type (TT) can be:\n" +"- Circular with 1 ... 4 teeth -> it is informative only. Being circular,\n" +"the cut width in material is exactly the tool diameter.\n" +"- Ball -> informative only and make reference to the Ball type endmill.\n" +"- V-Shape -> it will disable Z-Cut parameter in the resulting geometry UI " +"form\n" +"and enable two additional UI form fields in the resulting geometry: V-Tip " +"Dia and\n" +"V-Tip Angle. Adjusting those two values will adjust the Z-Cut parameter " +"such\n" +"as the cut width into material will be equal with the value in the Tool " +"Diameter\n" +"column of this table.\n" +"Choosing the 'V-Shape' Tool Type automatically will select the Operation " +"Type\n" +"in the resulting geometry as Isolation." + +#: flatcamTools/ToolNCC.py:296 flatcamTools/ToolPaint.py:279 +msgid "" +"Add a new tool to the Tool Table\n" +"with the diameter specified above." +msgstr "" +"Add a new tool to the Tool Table\n" +"with the diameter specified above." + +#: flatcamTools/ToolNCC.py:318 flatcamTools/ToolPaint.py:301 +#: flatcamTools/ToolSolderPaste.py:130 +msgid "" +"Delete a selection of tools in the Tool Table\n" +"by first selecting a row(s) in the Tool Table." +msgstr "" +"Delete a selection of tools in the Tool Table\n" +"by first selecting a row(s) in the Tool Table." + +#: flatcamTools/ToolNCC.py:554 +msgid "" +"The type of FlatCAM object to be used as non copper clearing reference.\n" +"It can be Gerber, Excellon or Geometry." +msgstr "" +"The type of FlatCAM object to be used as non copper clearing reference.\n" +"It can be Gerber, Excellon or Geometry." + +#: flatcamTools/ToolNCC.py:597 flatcamTools/ToolPaint.py:537 +msgid "Generate Geometry" +msgstr "Generate Geometry" + +#: flatcamTools/ToolNCC.py:1425 flatcamTools/ToolPaint.py:1184 +#: flatcamTools/ToolSolderPaste.py:888 +msgid "Please enter a tool diameter to add, in Float format." +msgstr "Please enter a tool diameter to add, in Float format." + +#: flatcamTools/ToolNCC.py:1456 flatcamTools/ToolNCC.py:4013 +#: flatcamTools/ToolPaint.py:1208 flatcamTools/ToolPaint.py:3603 +#: flatcamTools/ToolSolderPaste.py:917 +msgid "Cancelled. Tool already in Tool Table." +msgstr "Cancelled. Tool already in Tool Table." + +#: flatcamTools/ToolNCC.py:1463 flatcamTools/ToolNCC.py:4030 +#: flatcamTools/ToolPaint.py:1213 flatcamTools/ToolPaint.py:3620 +msgid "New tool added to Tool Table." +msgstr "New tool added to Tool Table." + +#: flatcamTools/ToolNCC.py:1507 flatcamTools/ToolPaint.py:1257 +msgid "Tool from Tool Table was edited." +msgstr "Tool from Tool Table was edited." + +#: flatcamTools/ToolNCC.py:1519 flatcamTools/ToolPaint.py:1269 +#: flatcamTools/ToolSolderPaste.py:978 +msgid "Cancelled. New diameter value is already in the Tool Table." +msgstr "Cancelled. New diameter value is already in the Tool Table." + +#: flatcamTools/ToolNCC.py:1571 flatcamTools/ToolPaint.py:1367 +msgid "Delete failed. Select a tool to delete." +msgstr "Delete failed. Select a tool to delete." + +#: flatcamTools/ToolNCC.py:1577 flatcamTools/ToolPaint.py:1373 +msgid "Tool(s) deleted from Tool Table." +msgstr "Tool(s) deleted from Tool Table." + +#: flatcamTools/ToolNCC.py:1619 +msgid "Wrong Tool Dia value format entered, use a number." +msgstr "Wrong Tool Dia value format entered, use a number." + +#: flatcamTools/ToolNCC.py:1628 flatcamTools/ToolPaint.py:1424 +msgid "No selected tools in Tool Table." +msgstr "No selected tools in Tool Table." + +#: flatcamTools/ToolNCC.py:1704 flatcamTools/ToolPaint.py:1600 +msgid "Click the end point of the paint area." +msgstr "Click the end point of the paint area." + +#: flatcamTools/ToolNCC.py:1976 flatcamTools/ToolNCC.py:2964 +msgid "NCC Tool. Preparing non-copper polygons." +msgstr "NCC Tool. Preparing non-copper polygons." + +#: flatcamTools/ToolNCC.py:2035 flatcamTools/ToolNCC.py:3092 +msgid "NCC Tool. Calculate 'empty' area." +msgstr "NCC Tool. Calculate 'empty' area." + +#: flatcamTools/ToolNCC.py:2054 flatcamTools/ToolNCC.py:2160 +#: flatcamTools/ToolNCC.py:2174 flatcamTools/ToolNCC.py:3105 +#: flatcamTools/ToolNCC.py:3210 flatcamTools/ToolNCC.py:3225 +#: flatcamTools/ToolNCC.py:3491 flatcamTools/ToolNCC.py:3592 +#: flatcamTools/ToolNCC.py:3607 +msgid "Buffering finished" +msgstr "Buffering finished" + +#: flatcamTools/ToolNCC.py:2062 flatcamTools/ToolNCC.py:2181 +#: flatcamTools/ToolNCC.py:3113 flatcamTools/ToolNCC.py:3232 +#: flatcamTools/ToolNCC.py:3498 flatcamTools/ToolNCC.py:3614 +msgid "Could not get the extent of the area to be non copper cleared." +msgstr "Could not get the extent of the area to be non copper cleared." + +#: flatcamTools/ToolNCC.py:2089 flatcamTools/ToolNCC.py:2167 +#: flatcamTools/ToolNCC.py:3140 flatcamTools/ToolNCC.py:3217 +#: flatcamTools/ToolNCC.py:3518 flatcamTools/ToolNCC.py:3599 +msgid "" +"Isolation geometry is broken. Margin is less than isolation tool diameter." +msgstr "" +"Isolation geometry is broken. Margin is less than isolation tool diameter." + +#: flatcamTools/ToolNCC.py:2184 flatcamTools/ToolNCC.py:3236 +#: flatcamTools/ToolNCC.py:3617 +msgid "The selected object is not suitable for copper clearing." +msgstr "The selected object is not suitable for copper clearing." + +#: flatcamTools/ToolNCC.py:2191 flatcamTools/ToolNCC.py:3243 +msgid "NCC Tool. Finished calculation of 'empty' area." +msgstr "NCC Tool. Finished calculation of 'empty' area." + +#: flatcamTools/ToolNCC.py:2222 flatcamTools/ToolNCC.py:2224 +#: flatcamTools/ToolNCC.py:2916 flatcamTools/ToolNCC.py:2918 +msgid "Non-Copper clearing ..." +msgstr "Non-Copper clearing ..." + +#: flatcamTools/ToolNCC.py:2278 flatcamTools/ToolNCC.py:3060 +msgid "" +"NCC Tool. Finished non-copper polygons. Normal copper clearing task started." +msgstr "" +"NCC Tool. Finished non-copper polygons. Normal copper clearing task started." + +#: flatcamTools/ToolNCC.py:2312 flatcamTools/ToolNCC.py:2592 +msgid "NCC Tool failed creating bounding box." +msgstr "NCC Tool failed creating bounding box." + +#: flatcamTools/ToolNCC.py:2326 flatcamTools/ToolNCC.py:2609 +#: flatcamTools/ToolNCC.py:3256 flatcamTools/ToolNCC.py:3642 +msgid "NCC Tool clearing with tool diameter" +msgstr "NCC Tool clearing with tool diameter" + +#: flatcamTools/ToolNCC.py:2326 flatcamTools/ToolNCC.py:2609 +#: flatcamTools/ToolNCC.py:3256 flatcamTools/ToolNCC.py:3642 +msgid "started." +msgstr "started." + +#: flatcamTools/ToolNCC.py:2518 flatcamTools/ToolNCC.py:3417 +msgid "" +"There is no NCC Geometry in the file.\n" +"Usually it means that the tool diameter is too big for the painted " +"geometry.\n" +"Change the painting parameters and try again." +msgstr "" +"There is no NCC Geometry in the file.\n" +"Usually it means that the tool diameter is too big for the painted " +"geometry.\n" +"Change the painting parameters and try again." + +#: flatcamTools/ToolNCC.py:2527 flatcamTools/ToolNCC.py:3426 +msgid "NCC Tool clear all done." +msgstr "NCC Tool clear all done." + +#: flatcamTools/ToolNCC.py:2530 flatcamTools/ToolNCC.py:3429 +msgid "NCC Tool clear all done but the copper features isolation is broken for" +msgstr "" +"NCC Tool clear all done but the copper features isolation is broken for" + +#: flatcamTools/ToolNCC.py:2532 flatcamTools/ToolNCC.py:2817 +#: flatcamTools/ToolNCC.py:3431 flatcamTools/ToolNCC.py:3814 +msgid "tools" +msgstr "tools" + +#: flatcamTools/ToolNCC.py:2813 flatcamTools/ToolNCC.py:3810 +msgid "NCC Tool Rest Machining clear all done." +msgstr "NCC Tool Rest Machining clear all done." + +#: flatcamTools/ToolNCC.py:2816 flatcamTools/ToolNCC.py:3813 +msgid "" +"NCC Tool Rest Machining clear all done but the copper features isolation is " +"broken for" +msgstr "" +"NCC Tool Rest Machining clear all done but the copper features isolation is " +"broken for" + +#: flatcamTools/ToolNCC.py:2928 +msgid "NCC Tool started. Reading parameters." +msgstr "NCC Tool started. Reading parameters." + +#: flatcamTools/ToolNCC.py:3906 +msgid "" +"Try to use the Buffering Type = Full in Preferences -> Gerber General. " +"Reload the Gerber file after this change." +msgstr "" +"Try to use the Buffering Type = Full in Preferences -> Gerber General. " +"Reload the Gerber file after this change." + +#: flatcamTools/ToolOptimal.py:79 +msgid "Number of decimals kept for found distances." +msgstr "Number of decimals kept for found distances." + +#: flatcamTools/ToolOptimal.py:87 +msgid "Minimum distance" +msgstr "Minimum distance" + +#: flatcamTools/ToolOptimal.py:88 +msgid "Display minimum distance between copper features." +msgstr "Display minimum distance between copper features." + +#: flatcamTools/ToolOptimal.py:92 +msgid "Determined" +msgstr "Determined" + +#: flatcamTools/ToolOptimal.py:106 +msgid "Occurring" +msgstr "Occurring" + +#: flatcamTools/ToolOptimal.py:107 +msgid "How many times this minimum is found." +msgstr "How many times this minimum is found." + +#: flatcamTools/ToolOptimal.py:113 +msgid "Minimum points coordinates" +msgstr "Minimum points coordinates" + +#: flatcamTools/ToolOptimal.py:114 flatcamTools/ToolOptimal.py:120 +msgid "Coordinates for points where minimum distance was found." +msgstr "Coordinates for points where minimum distance was found." + +#: flatcamTools/ToolOptimal.py:133 flatcamTools/ToolOptimal.py:209 +msgid "Jump to selected position" +msgstr "Jump to selected position" + +#: flatcamTools/ToolOptimal.py:135 flatcamTools/ToolOptimal.py:211 +msgid "" +"Select a position in the Locations text box and then\n" +"click this button." +msgstr "" +"Select a position in the Locations text box and then\n" +"click this button." + +#: flatcamTools/ToolOptimal.py:143 +msgid "Other distances" +msgstr "Other distances" + +#: flatcamTools/ToolOptimal.py:144 +msgid "" +"Will display other distances in the Gerber file ordered from\n" +"the minimum to the maximum, not including the absolute minimum." +msgstr "" +"Will display other distances in the Gerber file ordered from\n" +"the minimum to the maximum, not including the absolute minimum." + +#: flatcamTools/ToolOptimal.py:149 +msgid "Other distances points coordinates" +msgstr "Other distances points coordinates" + +#: flatcamTools/ToolOptimal.py:150 flatcamTools/ToolOptimal.py:164 +#: flatcamTools/ToolOptimal.py:171 flatcamTools/ToolOptimal.py:188 +#: flatcamTools/ToolOptimal.py:195 +msgid "" +"Other distances and the coordinates for points\n" +"where the distance was found." +msgstr "" +"Other distances and the coordinates for points\n" +"where the distance was found." + +#: flatcamTools/ToolOptimal.py:163 +msgid "Gerber distances" +msgstr "Gerber distances" + +#: flatcamTools/ToolOptimal.py:187 +msgid "Points coordinates" +msgstr "Points coordinates" + +#: flatcamTools/ToolOptimal.py:219 +msgid "Find Minimum" +msgstr "Find Minimum" + +#: flatcamTools/ToolOptimal.py:221 +msgid "" +"Calculate the minimum distance between copper features,\n" +"this will allow the determination of the right tool to\n" +"use for isolation or copper clearing." +msgstr "" +"Calculate the minimum distance between copper features,\n" +"this will allow the determination of the right tool to\n" +"use for isolation or copper clearing." + +#: flatcamTools/ToolOptimal.py:346 +msgid "Only Gerber objects can be evaluated." +msgstr "Only Gerber objects can be evaluated." + +#: flatcamTools/ToolOptimal.py:352 +msgid "" +"Optimal Tool. Started to search for the minimum distance between copper " +"features." +msgstr "" +"Optimal Tool. Started to search for the minimum distance between copper " +"features." + +#: flatcamTools/ToolOptimal.py:362 +msgid "Optimal Tool. Parsing geometry for aperture" +msgstr "Optimal Tool. Parsing geometry for aperture" + +#: flatcamTools/ToolOptimal.py:373 +msgid "Optimal Tool. Creating a buffer for the object geometry." +msgstr "Optimal Tool. Creating a buffer for the object geometry." + +#: flatcamTools/ToolOptimal.py:383 +msgid "" +"The Gerber object has one Polygon as geometry.\n" +"There are no distances between geometry elements to be found." +msgstr "" +"The Gerber object has one Polygon as geometry.\n" +"There are no distances between geometry elements to be found." + +#: flatcamTools/ToolOptimal.py:388 +msgid "" +"Optimal Tool. Finding the distances between each two elements. Iterations" +msgstr "" +"Optimal Tool. Finding the distances between each two elements. Iterations" + +#: flatcamTools/ToolOptimal.py:423 +msgid "Optimal Tool. Finding the minimum distance." +msgstr "Optimal Tool. Finding the minimum distance." + +#: flatcamTools/ToolOptimal.py:439 +msgid "Optimal Tool. Finished successfully." +msgstr "Optimal Tool. Finished successfully." + +#: flatcamTools/ToolPDF.py:157 flatcamTools/ToolPDF.py:161 +msgid "Open PDF" +msgstr "Open PDF" + +#: flatcamTools/ToolPDF.py:164 +msgid "Open PDF cancelled" +msgstr "Open PDF cancelled" + +#: flatcamTools/ToolPDF.py:195 +msgid "Parsing PDF file ..." +msgstr "Parsing PDF file ..." + +#: flatcamTools/ToolPDF.py:278 flatcamTools/ToolPDF.py:353 +#, python-format +msgid "Rendering PDF layer #%d ..." +msgstr "Rendering PDF layer #%d ..." + +#: flatcamTools/ToolPDF.py:283 flatcamTools/ToolPDF.py:358 +msgid "Open PDF file failed." +msgstr "Open PDF file failed." + +#: flatcamTools/ToolPDF.py:289 flatcamTools/ToolPDF.py:363 +msgid "Rendered" +msgstr "Rendered" + +#: flatcamTools/ToolPaint.py:82 +msgid "" +"Specify the type of object to be painted.\n" +"It can be of type: Gerber or Geometry.\n" +"What is selected here will dictate the kind\n" +"of objects that will populate the 'Object' combobox." +msgstr "" +"Specify the type of object to be painted.\n" +"It can be of type: Gerber or Geometry.\n" +"What is selected here will dictate the kind\n" +"of objects that will populate the 'Object' combobox." + +#: flatcamTools/ToolPaint.py:104 +msgid "Object to be painted." +msgstr "Object to be painted." + +#: flatcamTools/ToolPaint.py:117 +msgid "" +"Tools pool from which the algorithm\n" +"will pick the ones used for painting." +msgstr "" +"Tools pool from which the algorithm\n" +"will pick the ones used for painting." + +#: flatcamTools/ToolPaint.py:134 +msgid "" +"This is the Tool Number.\n" +"Painting will start with the tool with the biggest diameter,\n" +"continuing until there are no more tools.\n" +"Only tools that create painting geometry will still be present\n" +"in the resulting geometry. This is because with some tools\n" +"this function will not be able to create painting geometry." +msgstr "" +"This is the Tool Number.\n" +"Painting will start with the tool with the biggest diameter,\n" +"continuing until there are no more tools.\n" +"Only tools that create painting geometry will still be present\n" +"in the resulting geometry. This is because with some tools\n" +"this function will not be able to create painting geometry." + +#: flatcamTools/ToolPaint.py:146 +msgid "" +"The Tool Type (TT) can be:\n" +"- Circular -> it is informative only. Being circular,\n" +"the cut width in material is exactly the tool diameter.\n" +"- Ball -> informative only and make reference to the Ball type endmill.\n" +"- V-Shape -> it will disable Z-Cut parameter in the resulting geometry UI " +"form\n" +"and enable two additional UI form fields in the resulting geometry: V-Tip " +"Dia and\n" +"V-Tip Angle. Adjusting those two values will adjust the Z-Cut parameter " +"such\n" +"as the cut width into material will be equal with the value in the Tool " +"Diameter\n" +"column of this table.\n" +"Choosing the 'V-Shape' Tool Type automatically will select the Operation " +"Type\n" +"in the resulting geometry as Isolation." +msgstr "" +"The Tool Type (TT) can be:\n" +"- Circular -> it is informative only. Being circular,\n" +"the cut width in material is exactly the tool diameter.\n" +"- Ball -> informative only and make reference to the Ball type endmill.\n" +"- V-Shape -> it will disable Z-Cut parameter in the resulting geometry UI " +"form\n" +"and enable two additional UI form fields in the resulting geometry: V-Tip " +"Dia and\n" +"V-Tip Angle. Adjusting those two values will adjust the Z-Cut parameter " +"such\n" +"as the cut width into material will be equal with the value in the Tool " +"Diameter\n" +"column of this table.\n" +"Choosing the 'V-Shape' Tool Type automatically will select the Operation " +"Type\n" +"in the resulting geometry as Isolation." + +#: flatcamTools/ToolPaint.py:498 +msgid "" +"The type of FlatCAM object to be used as paint reference.\n" +"It can be Gerber, Excellon or Geometry." +msgstr "" +"The type of FlatCAM object to be used as paint reference.\n" +"It can be Gerber, Excellon or Geometry." + +#: flatcamTools/ToolPaint.py:539 +msgid "" +"- 'Area Selection' - left mouse click to start selection of the area to be " +"painted.\n" +"Keeping a modifier key pressed (CTRL or SHIFT) will allow to add multiple " +"areas.\n" +"- 'All Polygons' - the Paint will start after click.\n" +"- 'Reference Object' - will do non copper clearing within the area\n" +"specified by another object." +msgstr "" +"- 'Area Selection' - left mouse click to start selection of the area to be " +"painted.\n" +"Keeping a modifier key pressed (CTRL or SHIFT) will allow to add multiple " +"areas.\n" +"- 'All Polygons' - the Paint will start after click.\n" +"- 'Reference Object' - will do non copper clearing within the area\n" +"specified by another object." + +#: flatcamTools/ToolPaint.py:1393 +#, python-format +msgid "Could not retrieve object: %s" +msgstr "Could not retrieve object: %s" + +#: flatcamTools/ToolPaint.py:1403 +msgid "Can't do Paint on MultiGeo geometries" +msgstr "Can't do Paint on MultiGeo geometries" + +#: flatcamTools/ToolPaint.py:1433 +msgid "Click on a polygon to paint it." +msgstr "Click on a polygon to paint it." + +#: flatcamTools/ToolPaint.py:1453 +msgid "Click the start point of the paint area." +msgstr "Click the start point of the paint area." + +#: flatcamTools/ToolPaint.py:1518 +msgid "Click to add next polygon or right click to start painting." +msgstr "Click to add next polygon or right click to start painting." + +#: flatcamTools/ToolPaint.py:1531 +msgid "Click to add/remove next polygon or right click to start painting." +msgstr "Click to add/remove next polygon or right click to start painting." + +#: flatcamTools/ToolPaint.py:2029 +msgid "Painting polygon with method: lines." +msgstr "Painting polygon with method: lines." + +#: flatcamTools/ToolPaint.py:2041 +msgid "Failed. Painting polygon with method: seed." +msgstr "Failed. Painting polygon with method: seed." + +#: flatcamTools/ToolPaint.py:2052 +msgid "Failed. Painting polygon with method: standard." +msgstr "Failed. Painting polygon with method: standard." + +#: flatcamTools/ToolPaint.py:2068 +msgid "Geometry could not be painted completely" +msgstr "Geometry could not be painted completely" + +#: flatcamTools/ToolPaint.py:2097 flatcamTools/ToolPaint.py:2100 +#: flatcamTools/ToolPaint.py:2108 flatcamTools/ToolPaint.py:2411 +#: flatcamTools/ToolPaint.py:2414 flatcamTools/ToolPaint.py:2422 +#: flatcamTools/ToolPaint.py:2910 flatcamTools/ToolPaint.py:2913 +#: flatcamTools/ToolPaint.py:2919 +msgid "Paint Tool." +msgstr "Paint Tool." + +#: flatcamTools/ToolPaint.py:2097 flatcamTools/ToolPaint.py:2100 +#: flatcamTools/ToolPaint.py:2108 +msgid "Normal painting polygon task started." +msgstr "Normal painting polygon task started." + +#: flatcamTools/ToolPaint.py:2098 flatcamTools/ToolPaint.py:2412 +#: flatcamTools/ToolPaint.py:2911 +msgid "Buffering geometry..." +msgstr "Buffering geometry..." + +#: flatcamTools/ToolPaint.py:2120 flatcamTools/ToolPaint.py:2429 +#: flatcamTools/ToolPaint.py:2927 +msgid "No polygon found." +msgstr "No polygon found." + +#: flatcamTools/ToolPaint.py:2150 +msgid "Painting polygon..." +msgstr "Painting polygon..." + +#: flatcamTools/ToolPaint.py:2160 flatcamTools/ToolPaint.py:2475 +#: flatcamTools/ToolPaint.py:2665 flatcamTools/ToolPaint.py:2973 +#: flatcamTools/ToolPaint.py:3152 +msgid "Painting with tool diameter = " +msgstr "Painting with tool diameter = " + +#: flatcamTools/ToolPaint.py:2161 flatcamTools/ToolPaint.py:2476 +#: flatcamTools/ToolPaint.py:2666 flatcamTools/ToolPaint.py:2974 +#: flatcamTools/ToolPaint.py:3153 +msgid "started" +msgstr "started" + +#: flatcamTools/ToolPaint.py:2186 flatcamTools/ToolPaint.py:2502 +#: flatcamTools/ToolPaint.py:2692 flatcamTools/ToolPaint.py:3000 +#: flatcamTools/ToolPaint.py:3179 +msgid "Margin parameter too big. Tool is not used" +msgstr "Margin parameter too big. Tool is not used" + +#: flatcamTools/ToolPaint.py:2244 flatcamTools/ToolPaint.py:2571 +#: flatcamTools/ToolPaint.py:2749 flatcamTools/ToolPaint.py:3063 +#: flatcamTools/ToolPaint.py:3241 +msgid "" +"Could not do Paint. Try a different combination of parameters. Or a " +"different strategy of paint" +msgstr "" +"Could not do Paint. Try a different combination of parameters. Or a " +"different strategy of paint" + +#: flatcamTools/ToolPaint.py:2301 flatcamTools/ToolPaint.py:2637 +#: flatcamTools/ToolPaint.py:2806 flatcamTools/ToolPaint.py:3124 +#: flatcamTools/ToolPaint.py:3303 +msgid "" +"There is no Painting Geometry in the file.\n" +"Usually it means that the tool diameter is too big for the painted " +"geometry.\n" +"Change the painting parameters and try again." +msgstr "" +"There is no Painting Geometry in the file.\n" +"Usually it means that the tool diameter is too big for the painted " +"geometry.\n" +"Change the painting parameters and try again." + +#: flatcamTools/ToolPaint.py:2324 +msgid "Paint Single failed." +msgstr "Paint Single failed." + +#: flatcamTools/ToolPaint.py:2330 +msgid "Paint Single Done." +msgstr "Paint Single Done." + +#: flatcamTools/ToolPaint.py:2332 flatcamTools/ToolPaint.py:2842 +#: flatcamTools/ToolPaint.py:3339 +msgid "Polygon Paint started ..." +msgstr "Polygon Paint started ..." + +#: flatcamTools/ToolPaint.py:2411 flatcamTools/ToolPaint.py:2414 +#: flatcamTools/ToolPaint.py:2422 +msgid "Paint all polygons task started." +msgstr "Paint all polygons task started." + +#: flatcamTools/ToolPaint.py:2453 flatcamTools/ToolPaint.py:2951 +msgid "Painting polygons..." +msgstr "Painting polygons..." + +#: flatcamTools/ToolPaint.py:2646 +msgid "Paint All Done." +msgstr "Paint All Done." + +#: flatcamTools/ToolPaint.py:2815 flatcamTools/ToolPaint.py:3312 +msgid "Paint All with Rest-Machining done." +msgstr "Paint All with Rest-Machining done." + +#: flatcamTools/ToolPaint.py:2834 +msgid "Paint All failed." +msgstr "Paint All failed." + +#: flatcamTools/ToolPaint.py:2840 +msgid "Paint Poly All Done." +msgstr "Paint Poly All Done." + +#: flatcamTools/ToolPaint.py:2910 flatcamTools/ToolPaint.py:2913 +#: flatcamTools/ToolPaint.py:2919 +msgid "Painting area task started." +msgstr "Painting area task started." + +#: flatcamTools/ToolPaint.py:3133 +msgid "Paint Area Done." +msgstr "Paint Area Done." + +#: flatcamTools/ToolPaint.py:3331 +msgid "Paint Area failed." +msgstr "Paint Area failed." + +#: flatcamTools/ToolPaint.py:3337 +msgid "Paint Poly Area Done." +msgstr "Paint Poly Area Done." + +#: flatcamTools/ToolPanelize.py:34 +msgid "Panelize PCB" +msgstr "Panelize PCB" + +#: flatcamTools/ToolPanelize.py:56 +msgid "" +"Specify the type of object to be panelized\n" +"It can be of type: Gerber, Excellon or Geometry.\n" +"The selection here decide the type of objects that will be\n" +"in the Object combobox." +msgstr "" +"Specify the type of object to be panelized\n" +"It can be of type: Gerber, Excellon or Geometry.\n" +"The selection here decide the type of objects that will be\n" +"in the Object combobox." + +#: flatcamTools/ToolPanelize.py:89 +msgid "" +"Object to be panelized. This means that it will\n" +"be duplicated in an array of rows and columns." +msgstr "" +"Object to be panelized. This means that it will\n" +"be duplicated in an array of rows and columns." + +#: flatcamTools/ToolPanelize.py:102 +msgid "Penelization Reference" +msgstr "Penelization Reference" + +#: flatcamTools/ToolPanelize.py:104 +msgid "" +"Choose the reference for panelization:\n" +"- Object = the bounding box of a different object\n" +"- Bounding Box = the bounding box of the object to be panelized\n" +"\n" +"The reference is useful when doing panelization for more than one\n" +"object. The spacings (really offsets) will be applied in reference\n" +"to this reference object therefore maintaining the panelized\n" +"objects in sync." +msgstr "" +"Choose the reference for panelization:\n" +"- Object = the bounding box of a different object\n" +"- Bounding Box = the bounding box of the object to be panelized\n" +"\n" +"The reference is useful when doing panelization for more than one\n" +"object. The spacings (really offsets) will be applied in reference\n" +"to this reference object therefore maintaining the panelized\n" +"objects in sync." + +#: flatcamTools/ToolPanelize.py:125 +msgid "Box Type" +msgstr "Box Type" + +#: flatcamTools/ToolPanelize.py:127 +msgid "" +"Specify the type of object to be used as an container for\n" +"panelization. It can be: Gerber or Geometry type.\n" +"The selection here decide the type of objects that will be\n" +"in the Box Object combobox." +msgstr "" +"Specify the type of object to be used as an container for\n" +"panelization. It can be: Gerber or Geometry type.\n" +"The selection here decide the type of objects that will be\n" +"in the Box Object combobox." + +#: flatcamTools/ToolPanelize.py:141 +msgid "" +"The actual object that is used as container for the\n" +" selected object that is to be panelized." +msgstr "" +"The actual object that is used as container for the\n" +" selected object that is to be panelized." + +#: flatcamTools/ToolPanelize.py:147 +msgid "Panel Data" +msgstr "Panel Data" + +#: flatcamTools/ToolPanelize.py:149 +msgid "" +"This informations will shape the resulting panel.\n" +"The number of rows and columns will set how many\n" +"duplicates of the original geometry will be generated.\n" +"\n" +"The spacings will set the distance between any two\n" +"elements of the panel array." +msgstr "" +"This informations will shape the resulting panel.\n" +"The number of rows and columns will set how many\n" +"duplicates of the original geometry will be generated.\n" +"\n" +"The spacings will set the distance between any two\n" +"elements of the panel array." + +#: flatcamTools/ToolPanelize.py:208 +msgid "" +"Choose the type of object for the panel object:\n" +"- Geometry\n" +"- Gerber" +msgstr "" +"Choose the type of object for the panel object:\n" +"- Geometry\n" +"- Gerber" + +#: flatcamTools/ToolPanelize.py:216 +msgid "Constrain panel within" +msgstr "Constrain panel within" + +#: flatcamTools/ToolPanelize.py:252 +msgid "Panelize Object" +msgstr "Panelize Object" + +#: flatcamTools/ToolPanelize.py:254 flatcamTools/ToolRulesCheck.py:501 +msgid "" +"Panelize the specified object around the specified box.\n" +"In other words it creates multiple copies of the source object,\n" +"arranged in a 2D array of rows and columns." +msgstr "" +"Panelize the specified object around the specified box.\n" +"In other words it creates multiple copies of the source object,\n" +"arranged in a 2D array of rows and columns." + +#: flatcamTools/ToolPanelize.py:322 +msgid "Panel. Tool" +msgstr "Panel. Tool" + +#: flatcamTools/ToolPanelize.py:457 +msgid "Columns or Rows are zero value. Change them to a positive integer." +msgstr "Columns or Rows are zero value. Change them to a positive integer." + +#: flatcamTools/ToolPanelize.py:494 +msgid "Generating panel ... " +msgstr "Generating panel ... " + +#: flatcamTools/ToolPanelize.py:777 +msgid "Generating panel ... Adding the Gerber code." +msgstr "Generating panel ... Adding the Gerber code." + +#: flatcamTools/ToolPanelize.py:785 +msgid "Generating panel... Spawning copies" +msgstr "Generating panel... Spawning copies" + +#: flatcamTools/ToolPanelize.py:792 +msgid "Panel done..." +msgstr "Panel done..." + +#: flatcamTools/ToolPanelize.py:795 +#, python-brace-format +msgid "" +"{text} Too big for the constrain area. Final panel has {col} columns and " +"{row} rows" +msgstr "" +"{text} Too big for the constrain area. Final panel has {col} columns and " +"{row} rows" + +#: flatcamTools/ToolPanelize.py:804 +msgid "Panel created successfully." +msgstr "Panel created successfully." + +#: flatcamTools/ToolPcbWizard.py:31 +msgid "PcbWizard Import Tool" +msgstr "PcbWizard Import Tool" + +#: flatcamTools/ToolPcbWizard.py:40 +msgid "Import 2-file Excellon" +msgstr "Import 2-file Excellon" + +#: flatcamTools/ToolPcbWizard.py:51 +msgid "Load files" +msgstr "Load files" + +#: flatcamTools/ToolPcbWizard.py:57 +msgid "Excellon file" +msgstr "Excellon file" + +#: flatcamTools/ToolPcbWizard.py:59 +msgid "" +"Load the Excellon file.\n" +"Usually it has a .DRL extension" +msgstr "" +"Load the Excellon file.\n" +"Usually it has a .DRL extension" + +#: flatcamTools/ToolPcbWizard.py:65 +msgid "INF file" +msgstr "INF file" + +#: flatcamTools/ToolPcbWizard.py:67 +msgid "Load the INF file." +msgstr "Load the INF file." + +#: flatcamTools/ToolPcbWizard.py:79 +msgid "Tool Number" +msgstr "Tool Number" + +#: flatcamTools/ToolPcbWizard.py:81 +msgid "Tool diameter in file units." +msgstr "Tool diameter in file units." + +#: flatcamTools/ToolPcbWizard.py:87 +msgid "Excellon format" +msgstr "Excellon format" + +#: flatcamTools/ToolPcbWizard.py:95 +msgid "Int. digits" +msgstr "Int. digits" + +#: flatcamTools/ToolPcbWizard.py:97 +msgid "The number of digits for the integral part of the coordinates." +msgstr "The number of digits for the integral part of the coordinates." + +#: flatcamTools/ToolPcbWizard.py:104 +msgid "Frac. digits" +msgstr "Frac. digits" + +#: flatcamTools/ToolPcbWizard.py:106 +msgid "The number of digits for the fractional part of the coordinates." +msgstr "The number of digits for the fractional part of the coordinates." + +#: flatcamTools/ToolPcbWizard.py:113 +msgid "No Suppression" +msgstr "No Suppression" + +#: flatcamTools/ToolPcbWizard.py:114 +msgid "Zeros supp." +msgstr "Zeros supp." + +#: flatcamTools/ToolPcbWizard.py:116 +msgid "" +"The type of zeros suppression used.\n" +"Can be of type:\n" +"- LZ = leading zeros are kept\n" +"- TZ = trailing zeros are kept\n" +"- No Suppression = no zero suppression" +msgstr "" +"The type of zeros suppression used.\n" +"Can be of type:\n" +"- LZ = leading zeros are kept\n" +"- TZ = trailing zeros are kept\n" +"- No Suppression = no zero suppression" + +#: flatcamTools/ToolPcbWizard.py:129 +msgid "" +"The type of units that the coordinates and tool\n" +"diameters are using. Can be INCH or MM." +msgstr "" +"The type of units that the coordinates and tool\n" +"diameters are using. Can be INCH or MM." + +#: flatcamTools/ToolPcbWizard.py:136 +msgid "Import Excellon" +msgstr "Import Excellon" + +#: flatcamTools/ToolPcbWizard.py:138 +msgid "" +"Import in FlatCAM an Excellon file\n" +"that store it's information's in 2 files.\n" +"One usually has .DRL extension while\n" +"the other has .INF extension." +msgstr "" +"Import in FlatCAM an Excellon file\n" +"that store it's information's in 2 files.\n" +"One usually has .DRL extension while\n" +"the other has .INF extension." + +#: flatcamTools/ToolPcbWizard.py:197 +msgid "PCBWizard Tool" +msgstr "PCBWizard Tool" + +#: flatcamTools/ToolPcbWizard.py:291 flatcamTools/ToolPcbWizard.py:295 +msgid "Load PcbWizard Excellon file" +msgstr "Load PcbWizard Excellon file" + +#: flatcamTools/ToolPcbWizard.py:314 flatcamTools/ToolPcbWizard.py:318 +msgid "Load PcbWizard INF file" +msgstr "Load PcbWizard INF file" + +#: flatcamTools/ToolPcbWizard.py:366 +msgid "" +"The INF file does not contain the tool table.\n" +"Try to open the Excellon file from File -> Open -> Excellon\n" +"and edit the drill diameters manually." +msgstr "" +"The INF file does not contain the tool table.\n" +"Try to open the Excellon file from File -> Open -> Excellon\n" +"and edit the drill diameters manually." + +#: flatcamTools/ToolPcbWizard.py:387 +msgid "PcbWizard .INF file loaded." +msgstr "PcbWizard .INF file loaded." + +#: flatcamTools/ToolPcbWizard.py:392 +msgid "Main PcbWizard Excellon file loaded." +msgstr "Main PcbWizard Excellon file loaded." + +#: flatcamTools/ToolPcbWizard.py:427 +msgid "Cannot parse file" +msgstr "Cannot parse file" + +#: flatcamTools/ToolPcbWizard.py:450 +msgid "Importing Excellon." +msgstr "Importing Excellon." + +#: flatcamTools/ToolPcbWizard.py:457 +msgid "Import Excellon file failed." +msgstr "Import Excellon file failed." + +#: flatcamTools/ToolPcbWizard.py:464 +msgid "Imported" +msgstr "Imported" + +#: flatcamTools/ToolPcbWizard.py:467 +msgid "Excellon merging is in progress. Please wait..." +msgstr "Excellon merging is in progress. Please wait..." + +#: flatcamTools/ToolPcbWizard.py:469 +msgid "The imported Excellon file is empty." +msgstr "The imported Excellon file is empty." + +#: flatcamTools/ToolProperties.py:131 +msgid "Object Properties are displayed." +msgstr "Object Properties are displayed." + +#: flatcamTools/ToolProperties.py:136 +msgid "Properties Tool" +msgstr "Properties Tool" + +#: flatcamTools/ToolProperties.py:150 +msgid "TYPE" +msgstr "TYPE" + +#: flatcamTools/ToolProperties.py:151 +msgid "NAME" +msgstr "NAME" + +#: flatcamTools/ToolProperties.py:153 +msgid "Dimensions" +msgstr "Dimensions" + +#: flatcamTools/ToolProperties.py:181 +msgid "Geo Type" +msgstr "Geo Type" + +#: flatcamTools/ToolProperties.py:184 +msgid "Single-Geo" +msgstr "Single-Geo" + +#: flatcamTools/ToolProperties.py:185 +msgid "Multi-Geo" +msgstr "Multi-Geo" + +#: flatcamTools/ToolProperties.py:196 +msgid "Calculating dimensions ... Please wait." +msgstr "Calculating dimensions ... Please wait." + +#: flatcamTools/ToolProperties.py:339 flatcamTools/ToolProperties.py:343 +#: flatcamTools/ToolProperties.py:345 +msgid "Inch" +msgstr "Inch" + +#: flatcamTools/ToolProperties.py:339 flatcamTools/ToolProperties.py:344 +#: flatcamTools/ToolProperties.py:346 +msgid "Metric" +msgstr "Metric" + +#: flatcamTools/ToolProperties.py:421 flatcamTools/ToolProperties.py:486 +msgid "Drills number" +msgstr "Drills number" + +#: flatcamTools/ToolProperties.py:422 flatcamTools/ToolProperties.py:488 +msgid "Slots number" +msgstr "Slots number" + +#: flatcamTools/ToolProperties.py:424 +msgid "Drills total number:" +msgstr "Drills total number:" + +#: flatcamTools/ToolProperties.py:425 +msgid "Slots total number:" +msgstr "Slots total number:" + +#: flatcamTools/ToolProperties.py:452 flatcamTools/ToolProperties.py:455 +#: flatcamTools/ToolProperties.py:458 flatcamTools/ToolProperties.py:483 +msgid "Present" +msgstr "Present" + +#: flatcamTools/ToolProperties.py:453 flatcamTools/ToolProperties.py:484 +msgid "Solid Geometry" +msgstr "Solid Geometry" + +#: flatcamTools/ToolProperties.py:456 +msgid "GCode Text" +msgstr "GCode Text" + +#: flatcamTools/ToolProperties.py:459 +msgid "GCode Geometry" +msgstr "GCode Geometry" + +#: flatcamTools/ToolProperties.py:462 +msgid "Data" +msgstr "Data" + +#: flatcamTools/ToolProperties.py:495 +msgid "Depth of Cut" +msgstr "Depth of Cut" + +#: flatcamTools/ToolProperties.py:507 +msgid "Clearance Height" +msgstr "Clearance Height" + +#: flatcamTools/ToolProperties.py:539 +msgid "Routing time" +msgstr "Routing time" + +#: flatcamTools/ToolProperties.py:546 +msgid "Travelled distance" +msgstr "Travelled distance" + +#: flatcamTools/ToolProperties.py:564 +msgid "Width" +msgstr "Width" + +#: flatcamTools/ToolProperties.py:570 flatcamTools/ToolProperties.py:578 +msgid "Box Area" +msgstr "Box Area" + +#: flatcamTools/ToolProperties.py:573 flatcamTools/ToolProperties.py:581 +msgid "Convex_Hull Area" +msgstr "Convex_Hull Area" + +#: flatcamTools/ToolProperties.py:588 flatcamTools/ToolProperties.py:591 +msgid "Copper Area" +msgstr "Copper Area" + +#: flatcamTools/ToolPunchGerber.py:30 flatcamTools/ToolPunchGerber.py:323 +msgid "Punch Gerber" +msgstr "Punch Gerber" + +#: flatcamTools/ToolPunchGerber.py:65 +msgid "Gerber into which to punch holes" +msgstr "Gerber into which to punch holes" + +#: flatcamTools/ToolPunchGerber.py:85 +msgid "ALL" +msgstr "ALL" + +#: flatcamTools/ToolPunchGerber.py:166 +msgid "" +"Remove the geometry of Excellon from the Gerber to create the holes in pads." +msgstr "" +"Remove the geometry of Excellon from the Gerber to create the holes in pads." + +#: flatcamTools/ToolPunchGerber.py:325 +msgid "" +"Create a Gerber object from the selected object, within\n" +"the specified box." +msgstr "" +"Create a Gerber object from the selected object, within\n" +"the specified box." + +#: flatcamTools/ToolPunchGerber.py:425 +msgid "Punch Tool" +msgstr "Punch Tool" + +#: flatcamTools/ToolPunchGerber.py:599 +msgid "The value of the fixed diameter is 0.0. Aborting." +msgstr "The value of the fixed diameter is 0.0. Aborting." + +#: flatcamTools/ToolPunchGerber.py:607 flatcamTools/ToolPunchGerber.py:619 +msgid "" +"Could not generate punched hole Gerber because the punch hole size is bigger " +"than some of the apertures in the Gerber object." +msgstr "" +"Could not generate punched hole Gerber because the punch hole size is bigger " +"than some of the apertures in the Gerber object." + +#: flatcamTools/ToolPunchGerber.py:656 +msgid "" +"Could not generate punched hole Gerber because the newly created object " +"geometry is the same as the one in the source object geometry..." +msgstr "" +"Could not generate punched hole Gerber because the newly created object " +"geometry is the same as the one in the source object geometry..." + +#: flatcamTools/ToolQRCode.py:80 +msgid "Gerber Object to which the QRCode will be added." +msgstr "Gerber Object to which the QRCode will be added." + +#: flatcamTools/ToolQRCode.py:93 +msgid "QRCode Parameters" +msgstr "QRCode Parameters" + +#: flatcamTools/ToolQRCode.py:95 +msgid "The parameters used to shape the QRCode." +msgstr "The parameters used to shape the QRCode." + +#: flatcamTools/ToolQRCode.py:207 +msgid "Export QRCode" +msgstr "Export QRCode" + +#: flatcamTools/ToolQRCode.py:209 +msgid "" +"Show a set of controls allowing to export the QRCode\n" +"to a SVG file or an PNG file." +msgstr "" +"Show a set of controls allowing to export the QRCode\n" +"to a SVG file or an PNG file." + +#: flatcamTools/ToolQRCode.py:248 +msgid "Transparent back color" +msgstr "Transparent back color" + +#: flatcamTools/ToolQRCode.py:273 +msgid "Export QRCode SVG" +msgstr "Export QRCode SVG" + +#: flatcamTools/ToolQRCode.py:275 +msgid "Export a SVG file with the QRCode content." +msgstr "Export a SVG file with the QRCode content." + +#: flatcamTools/ToolQRCode.py:286 +msgid "Export QRCode PNG" +msgstr "Export QRCode PNG" + +#: flatcamTools/ToolQRCode.py:288 +msgid "Export a PNG image file with the QRCode content." +msgstr "Export a PNG image file with the QRCode content." + +#: flatcamTools/ToolQRCode.py:299 +msgid "Insert QRCode" +msgstr "Insert QRCode" + +#: flatcamTools/ToolQRCode.py:301 +msgid "Create the QRCode object." +msgstr "Create the QRCode object." + +#: flatcamTools/ToolQRCode.py:415 flatcamTools/ToolQRCode.py:750 +#: flatcamTools/ToolQRCode.py:799 +msgid "Cancelled. There is no QRCode Data in the text box." +msgstr "Cancelled. There is no QRCode Data in the text box." + +#: flatcamTools/ToolQRCode.py:434 +msgid "Generating QRCode geometry" +msgstr "Generating QRCode geometry" + +#: flatcamTools/ToolQRCode.py:474 +msgid "Click on the Destination point ..." +msgstr "Click on the Destination point ..." + +#: flatcamTools/ToolQRCode.py:589 +msgid "QRCode Tool done." +msgstr "QRCode Tool done." + +#: flatcamTools/ToolQRCode.py:782 flatcamTools/ToolQRCode.py:786 +msgid "Export PNG" +msgstr "Export PNG" + +#: flatcamTools/ToolRulesCheck.py:33 +msgid "Check Rules" +msgstr "Check Rules" + +#: flatcamTools/ToolRulesCheck.py:61 +msgid "Gerber Files" +msgstr "Gerber Files" + +#: flatcamTools/ToolRulesCheck.py:63 +msgid "Gerber objects for which to check rules." +msgstr "Gerber objects for which to check rules." + +#: flatcamTools/ToolRulesCheck.py:78 +msgid "Top" +msgstr "Top" + +#: flatcamTools/ToolRulesCheck.py:80 +msgid "The Top Gerber Copper object for which rules are checked." +msgstr "The Top Gerber Copper object for which rules are checked." + +#: flatcamTools/ToolRulesCheck.py:96 +msgid "Bottom" +msgstr "Bottom" + +#: flatcamTools/ToolRulesCheck.py:98 +msgid "The Bottom Gerber Copper object for which rules are checked." +msgstr "The Bottom Gerber Copper object for which rules are checked." + +#: flatcamTools/ToolRulesCheck.py:114 +msgid "SM Top" +msgstr "SM Top" + +#: flatcamTools/ToolRulesCheck.py:116 +msgid "The Top Gerber Solder Mask object for which rules are checked." +msgstr "The Top Gerber Solder Mask object for which rules are checked." + +#: flatcamTools/ToolRulesCheck.py:132 +msgid "SM Bottom" +msgstr "SM Bottom" + +#: flatcamTools/ToolRulesCheck.py:134 +msgid "The Bottom Gerber Solder Mask object for which rules are checked." +msgstr "The Bottom Gerber Solder Mask object for which rules are checked." + +#: flatcamTools/ToolRulesCheck.py:150 +msgid "Silk Top" +msgstr "Silk Top" + +#: flatcamTools/ToolRulesCheck.py:152 +msgid "The Top Gerber Silkscreen object for which rules are checked." +msgstr "The Top Gerber Silkscreen object for which rules are checked." + +#: flatcamTools/ToolRulesCheck.py:168 +msgid "Silk Bottom" +msgstr "Silk Bottom" + +#: flatcamTools/ToolRulesCheck.py:170 +msgid "The Bottom Gerber Silkscreen object for which rules are checked." +msgstr "The Bottom Gerber Silkscreen object for which rules are checked." + +#: flatcamTools/ToolRulesCheck.py:188 +msgid "The Gerber Outline (Cutout) object for which rules are checked." +msgstr "The Gerber Outline (Cutout) object for which rules are checked." + +#: flatcamTools/ToolRulesCheck.py:199 +msgid "Excellon Objects" +msgstr "Excellon Objects" + +#: flatcamTools/ToolRulesCheck.py:201 +msgid "Excellon objects for which to check rules." +msgstr "Excellon objects for which to check rules." + +#: flatcamTools/ToolRulesCheck.py:213 +msgid "Excellon 1" +msgstr "Excellon 1" + +#: flatcamTools/ToolRulesCheck.py:215 +msgid "" +"Excellon object for which to check rules.\n" +"Holds the plated holes or a general Excellon file content." +msgstr "" +"Excellon object for which to check rules.\n" +"Holds the plated holes or a general Excellon file content." + +#: flatcamTools/ToolRulesCheck.py:232 +msgid "Excellon 2" +msgstr "Excellon 2" + +#: flatcamTools/ToolRulesCheck.py:234 +msgid "" +"Excellon object for which to check rules.\n" +"Holds the non-plated holes." +msgstr "" +"Excellon object for which to check rules.\n" +"Holds the non-plated holes." + +#: flatcamTools/ToolRulesCheck.py:247 +msgid "All Rules" +msgstr "All Rules" + +#: flatcamTools/ToolRulesCheck.py:249 +msgid "This check/uncheck all the rules below." +msgstr "This check/uncheck all the rules below." + +#: flatcamTools/ToolRulesCheck.py:499 +msgid "Run Rules Check" +msgstr "Run Rules Check" + +#: flatcamTools/ToolRulesCheck.py:1158 flatcamTools/ToolRulesCheck.py:1218 +#: flatcamTools/ToolRulesCheck.py:1255 flatcamTools/ToolRulesCheck.py:1327 +#: flatcamTools/ToolRulesCheck.py:1381 flatcamTools/ToolRulesCheck.py:1419 +#: flatcamTools/ToolRulesCheck.py:1484 +msgid "Value is not valid." +msgstr "Value is not valid." + +#: flatcamTools/ToolRulesCheck.py:1172 +msgid "TOP -> Copper to Copper clearance" +msgstr "TOP -> Copper to Copper clearance" + +#: flatcamTools/ToolRulesCheck.py:1183 +msgid "BOTTOM -> Copper to Copper clearance" +msgstr "BOTTOM -> Copper to Copper clearance" + +#: flatcamTools/ToolRulesCheck.py:1188 flatcamTools/ToolRulesCheck.py:1282 +#: flatcamTools/ToolRulesCheck.py:1446 +msgid "" +"At least one Gerber object has to be selected for this rule but none is " +"selected." +msgstr "" +"At least one Gerber object has to be selected for this rule but none is " +"selected." + +#: flatcamTools/ToolRulesCheck.py:1224 +msgid "" +"One of the copper Gerber objects or the Outline Gerber object is not valid." +msgstr "" +"One of the copper Gerber objects or the Outline Gerber object is not valid." + +#: flatcamTools/ToolRulesCheck.py:1237 flatcamTools/ToolRulesCheck.py:1401 +msgid "" +"Outline Gerber object presence is mandatory for this rule but it is not " +"selected." +msgstr "" +"Outline Gerber object presence is mandatory for this rule but it is not " +"selected." + +#: flatcamTools/ToolRulesCheck.py:1254 flatcamTools/ToolRulesCheck.py:1281 +msgid "Silk to Silk clearance" +msgstr "Silk to Silk clearance" + +#: flatcamTools/ToolRulesCheck.py:1267 +msgid "TOP -> Silk to Silk clearance" +msgstr "TOP -> Silk to Silk clearance" + +#: flatcamTools/ToolRulesCheck.py:1277 +msgid "BOTTOM -> Silk to Silk clearance" +msgstr "BOTTOM -> Silk to Silk clearance" + +#: flatcamTools/ToolRulesCheck.py:1333 +msgid "One or more of the Gerber objects is not valid." +msgstr "One or more of the Gerber objects is not valid." + +#: flatcamTools/ToolRulesCheck.py:1341 +msgid "TOP -> Silk to Solder Mask Clearance" +msgstr "TOP -> Silk to Solder Mask Clearance" + +#: flatcamTools/ToolRulesCheck.py:1347 +msgid "BOTTOM -> Silk to Solder Mask Clearance" +msgstr "BOTTOM -> Silk to Solder Mask Clearance" + +#: flatcamTools/ToolRulesCheck.py:1351 +msgid "" +"Both Silk and Solder Mask Gerber objects has to be either both Top or both " +"Bottom." +msgstr "" +"Both Silk and Solder Mask Gerber objects has to be either both Top or both " +"Bottom." + +#: flatcamTools/ToolRulesCheck.py:1387 +msgid "" +"One of the Silk Gerber objects or the Outline Gerber object is not valid." +msgstr "" +"One of the Silk Gerber objects or the Outline Gerber object is not valid." + +#: flatcamTools/ToolRulesCheck.py:1431 +msgid "TOP -> Minimum Solder Mask Sliver" +msgstr "TOP -> Minimum Solder Mask Sliver" + +#: flatcamTools/ToolRulesCheck.py:1441 +msgid "BOTTOM -> Minimum Solder Mask Sliver" +msgstr "BOTTOM -> Minimum Solder Mask Sliver" + +#: flatcamTools/ToolRulesCheck.py:1490 +msgid "One of the Copper Gerber objects or the Excellon objects is not valid." +msgstr "One of the Copper Gerber objects or the Excellon objects is not valid." + +#: flatcamTools/ToolRulesCheck.py:1506 +msgid "" +"Excellon object presence is mandatory for this rule but none is selected." +msgstr "" +"Excellon object presence is mandatory for this rule but none is selected." + +#: flatcamTools/ToolRulesCheck.py:1579 flatcamTools/ToolRulesCheck.py:1592 +#: flatcamTools/ToolRulesCheck.py:1603 flatcamTools/ToolRulesCheck.py:1616 +msgid "STATUS" +msgstr "STATUS" + +#: flatcamTools/ToolRulesCheck.py:1582 flatcamTools/ToolRulesCheck.py:1606 +msgid "FAILED" +msgstr "FAILED" + +#: flatcamTools/ToolRulesCheck.py:1595 flatcamTools/ToolRulesCheck.py:1619 +msgid "PASSED" +msgstr "PASSED" + +#: flatcamTools/ToolRulesCheck.py:1596 flatcamTools/ToolRulesCheck.py:1620 +msgid "Violations: There are no violations for the current rule." +msgstr "Violations: There are no violations for the current rule." + +#: flatcamTools/ToolShell.py:74 flatcamTools/ToolShell.py:76 +msgid "...processing..." +msgstr "...processing..." + +#: flatcamTools/ToolSolderPaste.py:37 +msgid "Solder Paste Tool" +msgstr "Solder Paste Tool" + +#: flatcamTools/ToolSolderPaste.py:69 +msgid "Gerber Solder paste object. " +msgstr "Gerber Solder paste object. " + +#: flatcamTools/ToolSolderPaste.py:76 +msgid "" +"Tools pool from which the algorithm\n" +"will pick the ones used for dispensing solder paste." +msgstr "" +"Tools pool from which the algorithm\n" +"will pick the ones used for dispensing solder paste." + +#: flatcamTools/ToolSolderPaste.py:91 +msgid "" +"This is the Tool Number.\n" +"The solder dispensing will start with the tool with the biggest \n" +"diameter, continuing until there are no more Nozzle tools.\n" +"If there are no longer tools but there are still pads not covered\n" +" with solder paste, the app will issue a warning message box." +msgstr "" +"This is the Tool Number.\n" +"The solder dispensing will start with the tool with the biggest \n" +"diameter, continuing until there are no more Nozzle tools.\n" +"If there are no longer tools but there are still pads not covered\n" +" with solder paste, the app will issue a warning message box." + +#: flatcamTools/ToolSolderPaste.py:98 +msgid "" +"Nozzle tool Diameter. It's value (in current FlatCAM units)\n" +"is the width of the solder paste dispensed." +msgstr "" +"Nozzle tool Diameter. It's value (in current FlatCAM units)\n" +"is the width of the solder paste dispensed." + +#: flatcamTools/ToolSolderPaste.py:105 +msgid "New Nozzle Tool" +msgstr "New Nozzle Tool" + +#: flatcamTools/ToolSolderPaste.py:124 +msgid "" +"Add a new nozzle tool to the Tool Table\n" +"with the diameter specified above." +msgstr "" +"Add a new nozzle tool to the Tool Table\n" +"with the diameter specified above." + +#: flatcamTools/ToolSolderPaste.py:136 +msgid "Generate solder paste dispensing geometry." +msgstr "Generate solder paste dispensing geometry." + +#: flatcamTools/ToolSolderPaste.py:155 +msgid "STEP 1" +msgstr "STEP 1" + +#: flatcamTools/ToolSolderPaste.py:157 +msgid "" +"First step is to select a number of nozzle tools for usage\n" +"and then optionally modify the GCode parameters below." +msgstr "" +"First step is to select a number of nozzle tools for usage\n" +"and then optionally modify the GCode parameters below." + +#: flatcamTools/ToolSolderPaste.py:160 +msgid "" +"Select tools.\n" +"Modify parameters." +msgstr "" +"Select tools.\n" +"Modify parameters." + +#: flatcamTools/ToolSolderPaste.py:280 +msgid "" +"Feedrate (speed) while moving up vertically\n" +" to Dispense position (on Z plane)." +msgstr "" +"Feedrate (speed) while moving up vertically\n" +" to Dispense position (on Z plane)." + +#: flatcamTools/ToolSolderPaste.py:350 +msgid "" +"Generate GCode for Solder Paste dispensing\n" +"on PCB pads." +msgstr "" +"Generate GCode for Solder Paste dispensing\n" +"on PCB pads." + +#: flatcamTools/ToolSolderPaste.py:371 +msgid "STEP 2" +msgstr "STEP 2" + +#: flatcamTools/ToolSolderPaste.py:373 +msgid "" +"Second step is to create a solder paste dispensing\n" +"geometry out of an Solder Paste Mask Gerber file." +msgstr "" +"Second step is to create a solder paste dispensing\n" +"geometry out of an Solder Paste Mask Gerber file." + +#: flatcamTools/ToolSolderPaste.py:390 +msgid "Geo Result" +msgstr "Geo Result" + +#: flatcamTools/ToolSolderPaste.py:392 +msgid "" +"Geometry Solder Paste object.\n" +"The name of the object has to end in:\n" +"'_solderpaste' as a protection." +msgstr "" +"Geometry Solder Paste object.\n" +"The name of the object has to end in:\n" +"'_solderpaste' as a protection." + +#: flatcamTools/ToolSolderPaste.py:401 +msgid "STEP 3" +msgstr "STEP 3" + +#: flatcamTools/ToolSolderPaste.py:403 +msgid "" +"Third step is to select a solder paste dispensing geometry,\n" +"and then generate a CNCJob object.\n" +"\n" +"REMEMBER: if you want to create a CNCJob with new parameters,\n" +"first you need to generate a geometry with those new params,\n" +"and only after that you can generate an updated CNCJob." +msgstr "" +"Third step is to select a solder paste dispensing geometry,\n" +"and then generate a CNCJob object.\n" +"\n" +"REMEMBER: if you want to create a CNCJob with new parameters,\n" +"first you need to generate a geometry with those new params,\n" +"and only after that you can generate an updated CNCJob." + +#: flatcamTools/ToolSolderPaste.py:424 +msgid "CNC Result" +msgstr "CNC Result" + +#: flatcamTools/ToolSolderPaste.py:426 +msgid "" +"CNCJob Solder paste object.\n" +"In order to enable the GCode save section,\n" +"the name of the object has to end in:\n" +"'_solderpaste' as a protection." +msgstr "" +"CNCJob Solder paste object.\n" +"In order to enable the GCode save section,\n" +"the name of the object has to end in:\n" +"'_solderpaste' as a protection." + +#: flatcamTools/ToolSolderPaste.py:436 +msgid "View GCode" +msgstr "View GCode" + +#: flatcamTools/ToolSolderPaste.py:438 +msgid "" +"View the generated GCode for Solder Paste dispensing\n" +"on PCB pads." +msgstr "" +"View the generated GCode for Solder Paste dispensing\n" +"on PCB pads." + +#: flatcamTools/ToolSolderPaste.py:448 +msgid "Save GCode" +msgstr "Save GCode" + +#: flatcamTools/ToolSolderPaste.py:450 +msgid "" +"Save the generated GCode for Solder Paste dispensing\n" +"on PCB pads, to a file." +msgstr "" +"Save the generated GCode for Solder Paste dispensing\n" +"on PCB pads, to a file." + +#: flatcamTools/ToolSolderPaste.py:460 +msgid "STEP 4" +msgstr "STEP 4" + +#: flatcamTools/ToolSolderPaste.py:462 +msgid "" +"Fourth step (and last) is to select a CNCJob made from \n" +"a solder paste dispensing geometry, and then view/save it's GCode." +msgstr "" +"Fourth step (and last) is to select a CNCJob made from \n" +"a solder paste dispensing geometry, and then view/save it's GCode." + +#: flatcamTools/ToolSolderPaste.py:922 +msgid "New Nozzle tool added to Tool Table." +msgstr "New Nozzle tool added to Tool Table." + +#: flatcamTools/ToolSolderPaste.py:965 +msgid "Nozzle tool from Tool Table was edited." +msgstr "Nozzle tool from Tool Table was edited." + +#: flatcamTools/ToolSolderPaste.py:1024 +msgid "Delete failed. Select a Nozzle tool to delete." +msgstr "Delete failed. Select a Nozzle tool to delete." + +#: flatcamTools/ToolSolderPaste.py:1030 +msgid "Nozzle tool(s) deleted from Tool Table." +msgstr "Nozzle tool(s) deleted from Tool Table." + +#: flatcamTools/ToolSolderPaste.py:1086 +msgid "No SolderPaste mask Gerber object loaded." +msgstr "No SolderPaste mask Gerber object loaded." + +#: flatcamTools/ToolSolderPaste.py:1104 +msgid "Creating Solder Paste dispensing geometry." +msgstr "Creating Solder Paste dispensing geometry." + +#: flatcamTools/ToolSolderPaste.py:1117 +msgid "No Nozzle tools in the tool table." +msgstr "No Nozzle tools in the tool table." + +#: flatcamTools/ToolSolderPaste.py:1243 +msgid "Cancelled. Empty file, it has no geometry..." +msgstr "Cancelled. Empty file, it has no geometry..." + +#: flatcamTools/ToolSolderPaste.py:1246 +msgid "Solder Paste geometry generated successfully" +msgstr "Solder Paste geometry generated successfully" + +#: flatcamTools/ToolSolderPaste.py:1253 +msgid "Some or all pads have no solder due of inadequate nozzle diameters..." +msgstr "Some or all pads have no solder due of inadequate nozzle diameters..." + +#: flatcamTools/ToolSolderPaste.py:1267 +msgid "Generating Solder Paste dispensing geometry..." +msgstr "Generating Solder Paste dispensing geometry..." + +#: flatcamTools/ToolSolderPaste.py:1287 +msgid "There is no Geometry object available." +msgstr "There is no Geometry object available." + +#: flatcamTools/ToolSolderPaste.py:1292 +msgid "This Geometry can't be processed. NOT a solder_paste_tool geometry." +msgstr "This Geometry can't be processed. NOT a solder_paste_tool geometry." + +#: flatcamTools/ToolSolderPaste.py:1328 +msgid "An internal error has ocurred. See shell.\n" +msgstr "An internal error has ocurred. See shell.\n" + +#: flatcamTools/ToolSolderPaste.py:1393 +msgid "ToolSolderPaste CNCjob created" +msgstr "ToolSolderPaste CNCjob created" + +#: flatcamTools/ToolSolderPaste.py:1412 +msgid "SP GCode Editor" +msgstr "SP GCode Editor" + +#: flatcamTools/ToolSolderPaste.py:1424 flatcamTools/ToolSolderPaste.py:1429 +#: flatcamTools/ToolSolderPaste.py:1484 +msgid "" +"This CNCJob object can't be processed. NOT a solder_paste_tool CNCJob object." +msgstr "" +"This CNCJob object can't be processed. NOT a solder_paste_tool CNCJob object." + +#: flatcamTools/ToolSolderPaste.py:1454 +msgid "No Gcode in the object" +msgstr "No Gcode in the object" + +#: flatcamTools/ToolSolderPaste.py:1494 +msgid "Export GCode ..." +msgstr "Export GCode ..." + +#: flatcamTools/ToolSolderPaste.py:1542 +msgid "Solder paste dispenser GCode file saved to" +msgstr "Solder paste dispenser GCode file saved to" + +#: flatcamTools/ToolSub.py:65 +msgid "Gerber Objects" +msgstr "Gerber Objects" + +#: flatcamTools/ToolSub.py:78 +msgid "" +"Gerber object from which to subtract\n" +"the subtractor Gerber object." +msgstr "" +"Gerber object from which to subtract\n" +"the subtractor Gerber object." + +#: flatcamTools/ToolSub.py:91 flatcamTools/ToolSub.py:146 +msgid "Subtractor" +msgstr "Subtractor" + +#: flatcamTools/ToolSub.py:93 +msgid "" +"Gerber object that will be subtracted\n" +"from the target Gerber object." +msgstr "" +"Gerber object that will be subtracted\n" +"from the target Gerber object." + +#: flatcamTools/ToolSub.py:100 +msgid "Subtract Gerber" +msgstr "Subtract Gerber" + +#: flatcamTools/ToolSub.py:102 +msgid "" +"Will remove the area occupied by the subtractor\n" +"Gerber from the Target Gerber.\n" +"Can be used to remove the overlapping silkscreen\n" +"over the soldermask." +msgstr "" +"Will remove the area occupied by the subtractor\n" +"Gerber from the Target Gerber.\n" +"Can be used to remove the overlapping silkscreen\n" +"over the soldermask." + +#: flatcamTools/ToolSub.py:120 +msgid "Geometry Objects" +msgstr "Geometry Objects" + +#: flatcamTools/ToolSub.py:133 +msgid "" +"Geometry object from which to subtract\n" +"the subtractor Geometry object." +msgstr "" +"Geometry object from which to subtract\n" +"the subtractor Geometry object." + +#: flatcamTools/ToolSub.py:148 +msgid "" +"Geometry object that will be subtracted\n" +"from the target Geometry object." +msgstr "" +"Geometry object that will be subtracted\n" +"from the target Geometry object." + +#: flatcamTools/ToolSub.py:156 +msgid "" +"Checking this will close the paths cut by the Geometry subtractor object." +msgstr "" +"Checking this will close the paths cut by the Geometry subtractor object." + +#: flatcamTools/ToolSub.py:159 +msgid "Subtract Geometry" +msgstr "Subtract Geometry" + +#: flatcamTools/ToolSub.py:161 +msgid "" +"Will remove the area occupied by the subtractor\n" +"Geometry from the Target Geometry." +msgstr "" +"Will remove the area occupied by the subtractor\n" +"Geometry from the Target Geometry." + +#: flatcamTools/ToolSub.py:263 +msgid "Sub Tool" +msgstr "Sub Tool" + +#: flatcamTools/ToolSub.py:284 flatcamTools/ToolSub.py:489 +msgid "No Target object loaded." +msgstr "No Target object loaded." + +#: flatcamTools/ToolSub.py:287 +msgid "Loading geometry from Gerber objects." +msgstr "Loading geometry from Gerber objects." + +#: flatcamTools/ToolSub.py:299 flatcamTools/ToolSub.py:504 +msgid "No Subtractor object loaded." +msgstr "No Subtractor object loaded." + +#: flatcamTools/ToolSub.py:331 +msgid "Processing geometry from Subtractor Gerber object." +msgstr "Processing geometry from Subtractor Gerber object." + +#: flatcamTools/ToolSub.py:352 +msgid "Parsing geometry for aperture" +msgstr "Parsing geometry for aperture" + +#: flatcamTools/ToolSub.py:413 +msgid "Finished parsing geometry for aperture" +msgstr "Finished parsing geometry for aperture" + +#: flatcamTools/ToolSub.py:458 flatcamTools/ToolSub.py:661 +msgid "Generating new object ..." +msgstr "Generating new object ..." + +#: flatcamTools/ToolSub.py:462 flatcamTools/ToolSub.py:665 +#: flatcamTools/ToolSub.py:746 +msgid "Generating new object failed." +msgstr "Generating new object failed." + +#: flatcamTools/ToolSub.py:467 flatcamTools/ToolSub.py:671 +msgid "Created" +msgstr "Created" + +#: flatcamTools/ToolSub.py:518 +msgid "Currently, the Subtractor geometry cannot be of type Multigeo." +msgstr "Currently, the Subtractor geometry cannot be of type Multigeo." + +#: flatcamTools/ToolSub.py:563 +msgid "Parsing solid_geometry ..." +msgstr "Parsing solid_geometry ..." + +#: flatcamTools/ToolSub.py:565 +msgid "Parsing solid_geometry for tool" +msgstr "Parsing solid_geometry for tool" + +#: flatcamTools/ToolTransform.py:23 +msgid "Object Transform" +msgstr "Object Transform" + +#: flatcamTools/ToolTransform.py:78 +msgid "" +"Rotate the selected object(s).\n" +"The point of reference is the middle of\n" +"the bounding box for all selected objects." +msgstr "" +"Rotate the selected object(s).\n" +"The point of reference is the middle of\n" +"the bounding box for all selected objects." + +#: flatcamTools/ToolTransform.py:99 flatcamTools/ToolTransform.py:120 +msgid "" +"Angle for Skew action, in degrees.\n" +"Float number between -360 and 360." +msgstr "" +"Angle for Skew action, in degrees.\n" +"Float number between -360 and 360." + +#: flatcamTools/ToolTransform.py:109 flatcamTools/ToolTransform.py:130 +msgid "" +"Skew/shear the selected object(s).\n" +"The point of reference is the middle of\n" +"the bounding box for all selected objects." +msgstr "" +"Skew/shear the selected object(s).\n" +"The point of reference is the middle of\n" +"the bounding box for all selected objects." + +#: flatcamTools/ToolTransform.py:159 flatcamTools/ToolTransform.py:179 +msgid "" +"Scale the selected object(s).\n" +"The point of reference depends on \n" +"the Scale reference checkbox state." +msgstr "" +"Scale the selected object(s).\n" +"The point of reference depends on \n" +"the Scale reference checkbox state." + +#: flatcamTools/ToolTransform.py:228 flatcamTools/ToolTransform.py:248 +msgid "" +"Offset the selected object(s).\n" +"The point of reference is the middle of\n" +"the bounding box for all selected objects.\n" +msgstr "" +"Offset the selected object(s).\n" +"The point of reference is the middle of\n" +"the bounding box for all selected objects.\n" + +#: flatcamTools/ToolTransform.py:268 flatcamTools/ToolTransform.py:273 +msgid "Flip the selected object(s) over the X axis." +msgstr "Flip the selected object(s) over the X axis." + +#: flatcamTools/ToolTransform.py:297 +msgid "Ref. Point" +msgstr "Ref. Point" + +#: flatcamTools/ToolTransform.py:348 +msgid "" +"Create the buffer effect on each geometry,\n" +"element from the selected object, using the distance." +msgstr "" +"Create the buffer effect on each geometry,\n" +"element from the selected object, using the distance." + +#: flatcamTools/ToolTransform.py:374 +msgid "" +"Create the buffer effect on each geometry,\n" +"element from the selected object, using the factor." +msgstr "" +"Create the buffer effect on each geometry,\n" +"element from the selected object, using the factor." + +#: flatcamTools/ToolTransform.py:479 +msgid "Buffer D" +msgstr "Buffer D" + +#: flatcamTools/ToolTransform.py:480 +msgid "Buffer F" +msgstr "Buffer F" + +#: flatcamTools/ToolTransform.py:557 +msgid "Rotate transformation can not be done for a value of 0." +msgstr "Rotate transformation can not be done for a value of 0." + +#: flatcamTools/ToolTransform.py:596 flatcamTools/ToolTransform.py:619 +msgid "Scale transformation can not be done for a factor of 0 or 1." +msgstr "Scale transformation can not be done for a factor of 0 or 1." + +#: flatcamTools/ToolTransform.py:634 flatcamTools/ToolTransform.py:644 +msgid "Offset transformation can not be done for a value of 0." +msgstr "Offset transformation can not be done for a value of 0." + +#: flatcamTools/ToolTransform.py:676 +msgid "No object selected. Please Select an object to rotate!" +msgstr "No object selected. Please Select an object to rotate!" + +#: flatcamTools/ToolTransform.py:702 +msgid "CNCJob objects can't be rotated." +msgstr "CNCJob objects can't be rotated." + +#: flatcamTools/ToolTransform.py:710 +msgid "Rotate done" +msgstr "Rotate done" + +#: flatcamTools/ToolTransform.py:713 flatcamTools/ToolTransform.py:783 +#: flatcamTools/ToolTransform.py:833 flatcamTools/ToolTransform.py:887 +#: flatcamTools/ToolTransform.py:917 flatcamTools/ToolTransform.py:953 +msgid "Due of" +msgstr "Due of" + +#: flatcamTools/ToolTransform.py:713 flatcamTools/ToolTransform.py:783 +#: flatcamTools/ToolTransform.py:833 flatcamTools/ToolTransform.py:887 +#: flatcamTools/ToolTransform.py:917 flatcamTools/ToolTransform.py:953 +msgid "action was not executed." +msgstr "action was not executed." + +#: flatcamTools/ToolTransform.py:725 +msgid "No object selected. Please Select an object to flip" +msgstr "No object selected. Please Select an object to flip" + +#: flatcamTools/ToolTransform.py:758 +msgid "CNCJob objects can't be mirrored/flipped." +msgstr "CNCJob objects can't be mirrored/flipped." + +#: flatcamTools/ToolTransform.py:793 +msgid "Skew transformation can not be done for 0, 90 and 180 degrees." +msgstr "Skew transformation can not be done for 0, 90 and 180 degrees." + +#: flatcamTools/ToolTransform.py:798 +msgid "No object selected. Please Select an object to shear/skew!" +msgstr "No object selected. Please Select an object to shear/skew!" + +#: flatcamTools/ToolTransform.py:818 +msgid "CNCJob objects can't be skewed." +msgstr "CNCJob objects can't be skewed." + +#: flatcamTools/ToolTransform.py:830 +msgid "Skew on the" +msgstr "Skew on the" + +#: flatcamTools/ToolTransform.py:830 flatcamTools/ToolTransform.py:884 +#: flatcamTools/ToolTransform.py:914 +msgid "axis done" +msgstr "axis done" + +#: flatcamTools/ToolTransform.py:844 +msgid "No object selected. Please Select an object to scale!" +msgstr "No object selected. Please Select an object to scale!" + +#: flatcamTools/ToolTransform.py:875 +msgid "CNCJob objects can't be scaled." +msgstr "CNCJob objects can't be scaled." + +#: flatcamTools/ToolTransform.py:884 +msgid "Scale on the" +msgstr "Scale on the" + +#: flatcamTools/ToolTransform.py:894 +msgid "No object selected. Please Select an object to offset!" +msgstr "No object selected. Please Select an object to offset!" + +#: flatcamTools/ToolTransform.py:901 +msgid "CNCJob objects can't be offset." +msgstr "CNCJob objects can't be offset." + +#: flatcamTools/ToolTransform.py:914 +msgid "Offset on the" +msgstr "Offset on the" + +#: flatcamTools/ToolTransform.py:924 +msgid "No object selected. Please Select an object to buffer!" +msgstr "No object selected. Please Select an object to buffer!" + +#: flatcamTools/ToolTransform.py:927 +msgid "Applying Buffer" +msgstr "Applying Buffer" + +#: flatcamTools/ToolTransform.py:931 +msgid "CNCJob objects can't be buffered." +msgstr "CNCJob objects can't be buffered." + +#: flatcamTools/ToolTransform.py:948 +msgid "Buffer done" +msgstr "Buffer done" + #: tclCommands/TclCommandBbox.py:75 tclCommands/TclCommandNregions.py:74 msgid "Expected GerberObject or GeometryObject, got" msgstr "Expected GerberObject or GeometryObject, got" @@ -18408,7 +18285,7 @@ msgstr "Expected a list of objects names separated by comma. Got" msgid "TclCommand Bounds done." msgstr "TclCommand Bounds done." -#: tclCommands/TclCommandCopperClear.py:281 tclCommands/TclCommandPaint.py:283 +#: tclCommands/TclCommandCopperClear.py:281 tclCommands/TclCommandPaint.py:277 #: tclCommands/TclCommandScale.py:81 msgid "Could not retrieve box object" msgstr "Could not retrieve box object" @@ -18428,11 +18305,11 @@ msgid "Gaps value can be only one of: 'lr', 'tb', '2lr', '2tb', 4 or 8." msgstr "Gaps value can be only one of: 'lr', 'tb', '2lr', '2tb', 4 or 8." #: tclCommands/TclCommandGeoCutout.py:301 -#: tclCommands/TclCommandGeoCutout.py:356 +#: tclCommands/TclCommandGeoCutout.py:359 msgid "Any-form Cutout operation finished." msgstr "Any-form Cutout operation finished." -#: tclCommands/TclCommandGeoCutout.py:362 +#: tclCommands/TclCommandGeoCutout.py:365 msgid "Cancelled. Object type is not supported." msgstr "Cancelled. Object type is not supported." @@ -18448,15 +18325,15 @@ msgstr "Type help for usage." msgid "Example: help open_gerber" msgstr "Example: help open_gerber" -#: tclCommands/TclCommandPaint.py:250 tclCommands/TclCommandPaint.py:256 -msgid "Expected a tuple value like -single 3.2,0.1." -msgstr "Expected a tuple value like -single 3.2,0.1." +#: tclCommands/TclCommandPaint.py:249 +msgid "Expected -x and -y ." +msgstr "Expected -x and -y ." -#: tclCommands/TclCommandPaint.py:276 +#: tclCommands/TclCommandPaint.py:270 msgid "Expected -box ." msgstr "Expected -box ." -#: tclCommands/TclCommandPaint.py:297 +#: tclCommands/TclCommandPaint.py:291 msgid "" "None of the following args: 'box', 'single', 'all' were used.\n" "Paint failed." @@ -18480,7 +18357,7 @@ msgstr "Expected -x -y ." msgid "Expected a pair of (x, y) coordinates. Got" msgstr "Expected a pair of (x, y) coordinates. Got" -#: tclCommands/TclCommandSetOrigin.py:101 +#: tclCommands/TclCommandSetOrigin.py:102 msgid "Origin set by offsetting all loaded objects with " msgstr "Origin set by offsetting all loaded objects with " @@ -18488,205 +18365,6 @@ msgstr "Origin set by offsetting all loaded objects with " msgid "No Geometry name in args. Provide a name and try again." msgstr "No Geometry name in args. Provide a name and try again." -#~ msgid "Add Tool from Tools DB" -#~ msgstr "Add Tool from Tools DB" - -#~ msgid "FlatCAM Object" -#~ msgstr "FlatCAM Object" - -#~ msgid "" -#~ "Choose which tool to use for Gerber isolation:\n" -#~ "'Circular' or 'V-shape'.\n" -#~ "When the 'V-shape' is selected then the tool\n" -#~ "diameter will depend on the chosen cut depth." -#~ msgstr "" -#~ "Choose which tool to use for Gerber isolation:\n" -#~ "'Circular' or 'V-shape'.\n" -#~ "When the 'V-shape' is selected then the tool\n" -#~ "diameter will depend on the chosen cut depth." - -#~ msgid "V-Shape" -#~ msgstr "V-Shape" - -#~ msgid "" -#~ "Diameter of the cutting tool.\n" -#~ "If you want to have an isolation path\n" -#~ "inside the actual shape of the Gerber\n" -#~ "feature, use a negative value for\n" -#~ "this parameter." -#~ msgstr "" -#~ "Diameter of the cutting tool.\n" -#~ "If you want to have an isolation path\n" -#~ "inside the actual shape of the Gerber\n" -#~ "feature, use a negative value for\n" -#~ "this parameter." - -#~ msgid "Pass overlap" -#~ msgstr "Pass overlap" - -#~ msgid "Scope" -#~ msgstr "Scope" - -#~ msgid "Clear N-copper" -#~ msgstr "Clear N-copper" - -#~ msgid "Board cutout" -#~ msgstr "Board cutout" - -#~ msgid "" -#~ "Add a new tool to the Tool Table\n" -#~ "with the specified diameter." -#~ msgstr "" -#~ "Add a new tool to the Tool Table\n" -#~ "with the specified diameter." - -#~ msgid "Excellon Object Color" -#~ msgstr "Excellon Object Color" - -#~ msgid "Geometry Object Color" -#~ msgstr "Geometry Object Color" - -#~ msgid "Exterior" -#~ msgstr "Exterior" - -#~ msgid "Interior" -#~ msgstr "Interior" - -#~ msgid "Gerber Object Color" -#~ msgstr "Gerber Object Color" - -#~ msgid "Combine Passes" -#~ msgstr "Combine Passes" - -#~ msgid "Rest Machining" -#~ msgstr "Rest Machining" - -#~ msgid "NCC Plotting" -#~ msgstr "NCC Plotting" - -#~ msgid "All Polygons" -#~ msgstr "All Polygons" - -#~ msgid "Paint Plotting" -#~ msgstr "Paint Plotting" - -#~ msgid "" -#~ "- 'Normal' - normal plotting, done at the end of the Paint job\n" -#~ "- 'Progressive' - after each shape is generated it will be plotted." -#~ msgstr "" -#~ "- 'Normal' - normal plotting, done at the end of the Paint job\n" -#~ "- 'Progressive' - after each shape is generated it will be plotted." - -#~ msgid "Export Machine Code ..." -#~ msgstr "Export Machine Code ..." - -#~ msgid "Export Machine Code cancelled ..." -#~ msgstr "Export Machine Code cancelled ..." - -#~ msgid "Machine Code file saved to" -#~ msgstr "Machine Code file saved to" - -#~ msgid "GCode Parameters" -#~ msgstr "GCode Parameters" - -#~| msgid "Selection" -#~ msgid "PreSelection" -#~ msgstr "PreSelection" - -#~ msgid "Copper Gerber" -#~ msgstr "Copper Gerber" - -#~ msgid "QRCode Parameters" -#~ msgstr "QRCode Parameters" - -#~ msgid "Gerber Files" -#~ msgstr "Gerber Files" - -#~ msgid "Excellon Objects" -#~ msgstr "Excellon Objects" - -#~ msgid "Gerber Solder paste object. " -#~ msgstr "Gerber Solder paste object. " - -#~ msgid "Gerber Objects" -#~ msgstr "Gerber Objects" - -#~ msgid "Geometry Objects" -#~ msgstr "Geometry Objects" - -#~ msgid "Processing geometry from Subtractor Gerber object." -#~ msgstr "Processing geometry from Subtractor Gerber object." - -#~ msgid "Parsing geometry for aperture" -#~ msgstr "Parsing geometry for aperture" - -#~ msgid "Export FlatCAM Bookmarks" -#~ msgstr "Export FlatCAM Bookmarks" - -#~ msgid "Import FlatCAM Bookmarks" -#~ msgstr "Import FlatCAM Bookmarks" - -#~ msgid "Unifying Geometry from parsed Geometry segments" -#~ msgstr "Unifying Geometry from parsed Geometry segments" - -#~ msgid "./assets/icon.png" -#~ msgstr "./assets/icon.png" - -#~ msgid "New Blank Geometry" -#~ msgstr "New Blank Geometry" - -#~ msgid "New Blank Gerber" -#~ msgstr "New Blank Gerber" - -#~ msgid "New Blank Excellon" -#~ msgstr "New Blank Excellon" - -#~ msgid "" -#~ "Relative measurement.\n" -#~ "Reference is last click position" -#~ msgstr "" -#~ "Relative measurement.\n" -#~ "Reference is last click position" - -#~| msgid "Clearance" -#~ msgid "Clear areas" -#~ msgstr "Clear areas" - -#~ msgid "Apply Theme" -#~ msgstr "Apply Theme" - -#~ msgid "" -#~ "Select a theme for FlatCAM.\n" -#~ "It will theme the plot area.\n" -#~ "The application will restart after change." -#~ msgstr "" -#~ "Select a theme for FlatCAM.\n" -#~ "It will theme the plot area.\n" -#~ "The application will restart after change." - -#~ msgid "Film Object" -#~ msgstr "Film Object" - -#~ msgid "Object for which to create the film." -#~ msgstr "Object for which to create the film." - -#~ msgid "Box Object" -#~ msgstr "Box Object" - -#~ msgid "" -#~ "The actual object that is used as container for the\n" -#~ " selected object for which we create the film.\n" -#~ "Usually it is the PCB outline but it can be also the\n" -#~ "same object for which the film is created." -#~ msgstr "" -#~ "The actual object that is used as container for the\n" -#~ " selected object for which we create the film.\n" -#~ "Usually it is the PCB outline but it can be also the\n" -#~ "same object for which the film is created." - -#~ msgid "Expected -x and -y ." -#~ msgstr "Expected -x and -y ." - #~ msgid "Could not load factory defaults file." #~ msgstr "Could not load factory defaults file." @@ -18811,6 +18489,9 @@ msgstr "No Geometry name in args. Provide a name and try again." #~ msgid " Export SVG cancelled." #~ msgstr " Export SVG cancelled." +#~ msgid "Export PNG cancelled." +#~ msgstr "Export PNG cancelled." + #~ msgid "No object selected. Please select an Gerber object to export." #~ msgstr "No object selected. Please select an Gerber object to export." @@ -18868,6 +18549,9 @@ msgstr "No Geometry name in args. Provide a name and try again." #~ msgid "Save Object PDF cancelled." #~ msgstr "Save Object PDF cancelled." +#~ msgid "Shows list of commands." +#~ msgstr "Shows list of commands." + #~ msgid "FlatCAM bookmarks export cancelled." #~ msgstr "FlatCAM bookmarks export cancelled." @@ -19417,6 +19101,9 @@ msgstr "No Geometry name in args. Provide a name and try again." #~ msgid "Geo Obj" #~ msgstr "Geo Obj" +#~ msgid "Manual Geo" +#~ msgstr "Manual Geo" + #~ msgid "" #~ "Use the left mouse button (LMB) click\n" #~ "to create a bridge gap to separate the PCB from\n" @@ -19487,6 +19174,9 @@ msgstr "No Geometry name in args. Provide a name and try again." #~ "#\n" #~ "\n" +#~ msgid "Program Author" +#~ msgstr "Program Author" + #~ msgid "Export G-Code ..." #~ msgstr "Export G-Code ..." @@ -19607,6 +19297,9 @@ msgstr "No Geometry name in args. Provide a name and try again." #~ msgid "Skew_Y angle" #~ msgstr "Skew_Y angle" +#~ msgid "Scale_X factor" +#~ msgstr "Scale_X factor" + #~ msgid "Scale_Y factor" #~ msgstr "Scale_Y factor" diff --git a/locale/it/LC_MESSAGES/strings.mo b/locale/it/LC_MESSAGES/strings.mo index a278f179cf629300cdbbb75301984ced363442cc..901dcb85652c2bfe8f12f34ae2bc1a5d6058e4d3 100644 GIT binary patch delta 75209 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
    &GC_aKjf|+Qua0^d4Mc4;<5A}=Lv>&)YVY6e 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 delta 66705 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 diff --git a/locale/it/LC_MESSAGES/strings.po b/locale/it/LC_MESSAGES/strings.po index 93755f94..33e36c59 100644 --- a/locale/it/LC_MESSAGES/strings.po +++ b/locale/it/LC_MESSAGES/strings.po @@ -5,8 +5,8 @@ msgid "" msgstr "" "Project-Id-Version: \n" -"POT-Creation-Date: 2020-06-02 17:36+0300\n" -"PO-Revision-Date: 2020-06-02 17:36+0300\n" +"POT-Creation-Date: 2020-05-02 23:49+0300\n" +"PO-Revision-Date: 2020-05-03 12:06+0200\n" "Last-Translator: \n" "Language-Team: \n" "Language: it\n" @@ -14,7 +14,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: pygettext.py 1.5\n" -"X-Generator: Poedit 2.3.1\n" +"X-Generator: Poedit 2.3\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Poedit-Basepath: ../../..\n" "X-Poedit-SearchPath-0: .\n" @@ -22,17225 +22,89 @@ msgstr "" "X-Poedit-SearchPathExcluded-1: doc\n" "X-Poedit-SearchPathExcluded-2: tests\n" -#: AppDatabase.py:88 -msgid "Add Geometry Tool in DB" -msgstr "Aggiunti strumento geometria in DB" - -#: AppDatabase.py:90 AppDatabase.py:1757 -msgid "" -"Add a new tool in the Tools Database.\n" -"It will be used in the Geometry UI.\n" -"You can edit it after it is added." -msgstr "" -"Aggiunge uno strumento nel DataBase degli strumenti.\n" -"Sarà usato nella UI delle Geometrie.\n" -"Puoi modificarlo una volta aggiunto." - -#: AppDatabase.py:104 AppDatabase.py:1771 -msgid "Delete Tool from DB" -msgstr "Cancella strumento dal DB" - -#: AppDatabase.py:106 AppDatabase.py:1773 -msgid "Remove a selection of tools in the Tools Database." -msgstr "Rimuovi una selezione di strumenti dal Database strumenti." - -#: AppDatabase.py:110 AppDatabase.py:1777 -msgid "Export DB" -msgstr "Esporta DB" - -#: AppDatabase.py:112 AppDatabase.py:1779 -msgid "Save the Tools Database to a custom text file." -msgstr "Salva il Database strumenti in un file." - -#: AppDatabase.py:116 AppDatabase.py:1783 -msgid "Import DB" -msgstr "Importa DB" - -#: AppDatabase.py:118 AppDatabase.py:1785 -msgid "Load the Tools Database information's from a custom text file." -msgstr "Carica il Databse strumenti da un file esterno." - -#: AppDatabase.py:122 AppDatabase.py:1795 -#, fuzzy -#| msgid "Transform Tool" -msgid "Transfer the Tool" -msgstr "Strumento trasformazione" - -#: AppDatabase.py:124 -msgid "" -"Add a new tool in the Tools Table of the\n" -"active Geometry object after selecting a tool\n" -"in the Tools Database." -msgstr "" -"Add a new tool in the Tools Table of the\n" -"active Geometry object after selecting a tool\n" -"in the Tools Database." - -#: AppDatabase.py:130 AppDatabase.py:1810 AppGUI/MainGUI.py:1388 -#: AppGUI/preferences/PreferencesUIManager.py:878 App_Main.py:2225 -#: App_Main.py:3160 App_Main.py:4037 App_Main.py:4307 App_Main.py:6417 -msgid "Cancel" -msgstr "Cancellare" - -#: AppDatabase.py:160 AppDatabase.py:835 AppDatabase.py:1106 -msgid "Tool Name" -msgstr "Nome utensile" - -#: AppDatabase.py:161 AppDatabase.py:837 AppDatabase.py:1119 -#: AppEditors/FlatCAMExcEditor.py:1604 AppGUI/ObjectUI.py:1226 -#: AppGUI/ObjectUI.py:1480 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:132 -#: AppTools/ToolIsolation.py:260 AppTools/ToolNCC.py:278 -#: AppTools/ToolNCC.py:287 AppTools/ToolPaint.py:260 -msgid "Tool Dia" -msgstr "Diametro utensile" - -#: AppDatabase.py:162 AppDatabase.py:839 AppDatabase.py:1300 -#: AppGUI/ObjectUI.py:1455 -msgid "Tool Offset" -msgstr "Offset utensile" - -#: AppDatabase.py:163 AppDatabase.py:841 AppDatabase.py:1317 -msgid "Custom Offset" -msgstr "Utensile personalizzato" - -#: AppDatabase.py:164 AppDatabase.py:843 AppDatabase.py:1284 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:70 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:53 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:62 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:72 -#: AppTools/ToolIsolation.py:199 AppTools/ToolNCC.py:213 -#: AppTools/ToolNCC.py:227 AppTools/ToolPaint.py:195 -msgid "Tool Type" -msgstr "Tipo utensile" - -#: AppDatabase.py:165 AppDatabase.py:845 AppDatabase.py:1132 -msgid "Tool Shape" -msgstr "Forma utensile" - -#: AppDatabase.py:166 AppDatabase.py:848 AppDatabase.py:1148 -#: AppGUI/ObjectUI.py:679 AppGUI/ObjectUI.py:1605 AppGUI/ObjectUI.py:2266 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:93 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:49 -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:78 -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:58 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:115 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:98 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:105 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:113 -#: AppTools/ToolCalculators.py:114 AppTools/ToolCutOut.py:138 -#: AppTools/ToolIsolation.py:246 AppTools/ToolNCC.py:260 -#: AppTools/ToolNCC.py:268 AppTools/ToolPaint.py:242 -msgid "Cut Z" -msgstr "Taglio Z" - -#: AppDatabase.py:167 AppDatabase.py:850 AppDatabase.py:1162 -msgid "MultiDepth" -msgstr "Multi profondità" - -#: AppDatabase.py:168 AppDatabase.py:852 AppDatabase.py:1175 -msgid "DPP" -msgstr "DPP" - -#: AppDatabase.py:169 AppDatabase.py:854 AppDatabase.py:1331 -msgid "V-Dia" -msgstr "Diametro V" - -#: AppDatabase.py:170 AppDatabase.py:856 AppDatabase.py:1345 -msgid "V-Angle" -msgstr "Angolo V" - -#: AppDatabase.py:171 AppDatabase.py:858 AppDatabase.py:1189 -#: AppGUI/ObjectUI.py:725 AppGUI/ObjectUI.py:1652 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:134 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:102 -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:61 -#: AppObjects/FlatCAMExcellon.py:1496 AppObjects/FlatCAMGeometry.py:1671 -#: AppTools/ToolCalibration.py:74 -msgid "Travel Z" -msgstr "Travel Z" - -#: AppDatabase.py:172 AppDatabase.py:860 -msgid "FR" -msgstr "FR" - -#: AppDatabase.py:173 AppDatabase.py:862 -msgid "FR Z" -msgstr "FR Z" - -#: AppDatabase.py:174 AppDatabase.py:864 AppDatabase.py:1359 -msgid "FR Rapids" -msgstr "FR Rapidi" - -#: AppDatabase.py:175 AppDatabase.py:866 AppDatabase.py:1232 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:222 -msgid "Spindle Speed" -msgstr "Velocità mandrino" - -#: AppDatabase.py:176 AppDatabase.py:868 AppDatabase.py:1247 -#: AppGUI/ObjectUI.py:843 AppGUI/ObjectUI.py:1759 -msgid "Dwell" -msgstr "Dimora" - -#: AppDatabase.py:177 AppDatabase.py:870 AppDatabase.py:1260 -msgid "Dwelltime" -msgstr "Tempo dimora" - -#: AppDatabase.py:178 AppDatabase.py:872 AppGUI/ObjectUI.py:1916 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:257 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:255 -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:237 -#: AppTools/ToolSolderPaste.py:331 -msgid "Preprocessor" -msgstr "Preprocessore" - -#: AppDatabase.py:179 AppDatabase.py:874 AppDatabase.py:1375 -msgid "ExtraCut" -msgstr "Taglio extra" - -#: AppDatabase.py:180 AppDatabase.py:876 AppDatabase.py:1390 -msgid "E-Cut Length" -msgstr "Lunghezza E-taglio" - -#: AppDatabase.py:181 AppDatabase.py:878 -msgid "Toolchange" -msgstr "Cambio utensile" - -#: AppDatabase.py:182 AppDatabase.py:880 -msgid "Toolchange XY" -msgstr "Cambio utensile XY" - -#: AppDatabase.py:183 AppDatabase.py:882 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:160 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:132 -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:98 -#: AppTools/ToolCalibration.py:111 -msgid "Toolchange Z" -msgstr "Cambio utensile Z" - -#: AppDatabase.py:184 AppDatabase.py:884 AppGUI/ObjectUI.py:972 -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:69 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:56 -msgid "Start Z" -msgstr "Z iniziale" - -#: AppDatabase.py:185 AppDatabase.py:887 -msgid "End Z" -msgstr "Z finale" - -#: AppDatabase.py:189 -msgid "Tool Index." -msgstr "Indice utensile." - -#: AppDatabase.py:191 AppDatabase.py:1108 -msgid "" -"Tool name.\n" -"This is not used in the app, it's function\n" -"is to serve as a note for the user." -msgstr "" -"Nome utensile.\n" -"Non è usato dalla app, la sua funzione\n" -"è solo una nota per l'utente." - -#: AppDatabase.py:195 AppDatabase.py:1121 -msgid "Tool Diameter." -msgstr "Diametro utensile." - -#: AppDatabase.py:197 AppDatabase.py:1302 -msgid "" -"Tool Offset.\n" -"Can be of a few types:\n" -"Path = zero offset\n" -"In = offset inside by half of tool diameter\n" -"Out = offset outside by half of tool diameter\n" -"Custom = custom offset using the Custom Offset value" -msgstr "" -"Offset utensile.\n" -"Può essere di vari tipi:\n" -"Path = senza offset\n" -"In = all'interno per metà del diametro dell'utensile\n" -"Out = all'esterno per metà del diametro dell'utensile\n" -"Custom = offset personalizzato usando il campo Offset Personale" - -#: AppDatabase.py:204 AppDatabase.py:1319 -msgid "" -"Custom Offset.\n" -"A value to be used as offset from the current path." -msgstr "" -"Offset Personale.\n" -"Valore da usare come offset nel percorso attuale." - -#: AppDatabase.py:207 AppDatabase.py:1286 -msgid "" -"Tool Type.\n" -"Can be:\n" -"Iso = isolation cut\n" -"Rough = rough cut, low feedrate, multiple passes\n" -"Finish = finishing cut, high feedrate" -msgstr "" -"Tipo di utensile.\n" -"Può essere:\n" -"Iso = taglio isolante\n" -"Rough = taglio grezzo, basso feedrate, passate multiple\n" -"Finish = taglio finale, alto feedrate" - -#: AppDatabase.py:213 AppDatabase.py:1134 -msgid "" -"Tool Shape. \n" -"Can be:\n" -"C1 ... C4 = circular tool with x flutes\n" -"B = ball tip milling tool\n" -"V = v-shape milling tool" -msgstr "" -"Forma utensile. \n" -"Può essere:\n" -"C1 ... C4 = utensile circolare con x flutes\n" -"B = punta sferica da incisione\n" -"V = utensile da incisione a V" - -#: AppDatabase.py:219 AppDatabase.py:1150 -msgid "" -"Cutting Depth.\n" -"The depth at which to cut into material." -msgstr "" -"Profondità taglio.\n" -"Profondità nella quale affondare nel materiale." - -#: AppDatabase.py:222 AppDatabase.py:1164 -msgid "" -"Multi Depth.\n" -"Selecting this will allow cutting in multiple passes,\n" -"each pass adding a DPP parameter depth." -msgstr "" -"Passaggi multipli.\n" -"Selezionandolo verrà tagliato in più passate,\n" -"ogni passata aggiunge una profondità del parametro DPP." - -#: AppDatabase.py:226 AppDatabase.py:1177 -msgid "" -"DPP. Depth per Pass.\n" -"The value used to cut into material on each pass." -msgstr "" -"DPP. Profondità per passata.\n" -"Valore usato per tagliare il materiale in più passaggi." - -#: AppDatabase.py:229 AppDatabase.py:1333 -msgid "" -"V-Dia.\n" -"Diameter of the tip for V-Shape Tools." -msgstr "" -"Diametro V.\n" -"Diameter della punta dell'utensile a V." - -#: AppDatabase.py:232 AppDatabase.py:1347 -msgid "" -"V-Agle.\n" -"Angle at the tip for the V-Shape Tools." -msgstr "" -"Angolo V.\n" -"Angolo alla punta dell'utensile a V." - -#: AppDatabase.py:235 AppDatabase.py:1191 -msgid "" -"Clearance Height.\n" -"Height at which the milling bit will travel between cuts,\n" -"above the surface of the material, avoiding all fixtures." -msgstr "" -"Altezza libera.\n" -"Altezza alla quale l'utensile si sposta tra i tagli,\n" -"sopra alla superficie del materiale, evitando collisioni." - -#: AppDatabase.py:239 -msgid "" -"FR. Feedrate\n" -"The speed on XY plane used while cutting into material." -msgstr "" -"FR. Feedrate\n" -"Velocità usata sul piano XY durante il taglio nel materiale." - -#: AppDatabase.py:242 -msgid "" -"FR Z. Feedrate Z\n" -"The speed on Z plane." -msgstr "" -"FR Z. Feedrate Z\n" -"La velocità nell'asse Z." - -#: AppDatabase.py:245 AppDatabase.py:1361 -msgid "" -"FR Rapids. Feedrate Rapids\n" -"Speed used while moving as fast as possible.\n" -"This is used only by some devices that can't use\n" -"the G0 g-code command. Mostly 3D printers." -msgstr "" -"FR Rapidi. Feedrate Rapidi\n" -"Velocità degli spostamenti alla velocità massima possibile.\n" -"Usata da alcuni device che non possono usare il comando\n" -"G-code G0. Principalmente stampanti 3D." - -#: AppDatabase.py:250 AppDatabase.py:1234 -msgid "" -"Spindle Speed.\n" -"If it's left empty it will not be used.\n" -"The speed of the spindle in RPM." -msgstr "" -"Velocità mandrino.\n" -"Se vuota non sarà usata.\n" -"La velocità del mandrino in RPM." - -#: AppDatabase.py:254 AppDatabase.py:1249 -msgid "" -"Dwell.\n" -"Check this if a delay is needed to allow\n" -"the spindle motor to reach it's set speed." -msgstr "" -"Dimora.\n" -"Abilitare se è necessaria una attesa per permettere\n" -"al motore di raggiungere la velocità impostata." - -#: AppDatabase.py:258 AppDatabase.py:1262 -msgid "" -"Dwell Time.\n" -"A delay used to allow the motor spindle reach it's set speed." -msgstr "" -"Tempo dimora.\n" -"Il tempo da aspettare affinchè il mandrino raggiunga la sua velocità." - -#: AppDatabase.py:261 -msgid "" -"Preprocessor.\n" -"A selection of files that will alter the generated G-code\n" -"to fit for a number of use cases." -msgstr "" -"Preprocessore.\n" -"Una selezione di files che alterano il G-Code generato\n" -"per adattarsi a vari casi." - -#: AppDatabase.py:265 AppDatabase.py:1377 -msgid "" -"Extra Cut.\n" -"If checked, after a isolation is finished an extra cut\n" -"will be added where the start and end of isolation meet\n" -"such as that this point is covered by this extra cut to\n" -"ensure a complete isolation." -msgstr "" -"Taglio extra.\n" -"Se abilitato, dopo il termine di un isolamento sarà aggiunto\n" -"un taglio extra dove si incontrano l'inizio e la fine del taglio\n" -"così da assicurare un completo isolamento." - -#: AppDatabase.py:271 AppDatabase.py:1392 -msgid "" -"Extra Cut length.\n" -"If checked, after a isolation is finished an extra cut\n" -"will be added where the start and end of isolation meet\n" -"such as that this point is covered by this extra cut to\n" -"ensure a complete isolation. This is the length of\n" -"the extra cut." -msgstr "" -"Lunghezza taglio extra.\n" -"Se abilitato, dopo il termine di un isolamento sarà aggiunto\n" -"un taglio extra dove si incontrano l'inizio e la fine del taglio\n" -"così da assicurare un completo isolamento. Questa è la\n" -"lunghezza del taglio extra." - -#: AppDatabase.py:278 -msgid "" -"Toolchange.\n" -"It will create a toolchange event.\n" -"The kind of toolchange is determined by\n" -"the preprocessor file." -msgstr "" -"Cambio utensile.\n" -"Genererà un evento di cambio utensile.\n" -"Il tipo di cambio utensile è determinato dal\n" -"file del preprocessore." - -#: AppDatabase.py:283 -msgid "" -"Toolchange XY.\n" -"A set of coordinates in the format (x, y).\n" -"Will determine the cartesian position of the point\n" -"where the tool change event take place." -msgstr "" -"Cambio utensile XY.\n" -"Set di coordinate in formato (x, y).\n" -"Determinano la posizione cartesiana del punto\n" -"dove avverrà il cambio utensile." - -#: AppDatabase.py:288 -msgid "" -"Toolchange Z.\n" -"The position on Z plane where the tool change event take place." -msgstr "" -"Cambio utensile Z.\n" -"La posizione in Z dove avverrà il cambio utensile." - -#: AppDatabase.py:291 -msgid "" -"Start Z.\n" -"If it's left empty it will not be used.\n" -"A position on Z plane to move immediately after job start." -msgstr "" -"Z iniziale.\n" -"Se lasciato vuoto non sarà usato.\n" -"Posizione in Z a cui spostarsi per iniziare la lavorazione." - -#: AppDatabase.py:295 -msgid "" -"End Z.\n" -"A position on Z plane to move immediately after job stop." -msgstr "" -"Z finale.\n" -"Posizione in Z alla quale posizionarsi a fine lavoro." - -#: AppDatabase.py:307 AppDatabase.py:684 AppDatabase.py:718 AppDatabase.py:2033 -#: AppDatabase.py:2298 AppDatabase.py:2332 -msgid "Could not load Tools DB file." -msgstr "Impossibile caricare il file del DB utensili." - -#: AppDatabase.py:315 AppDatabase.py:726 AppDatabase.py:2041 -#: AppDatabase.py:2340 -msgid "Failed to parse Tools DB file." -msgstr "Impossibile processare il file del DB utensili." - -#: AppDatabase.py:318 AppDatabase.py:729 AppDatabase.py:2044 -#: AppDatabase.py:2343 -#, fuzzy -#| msgid "Loaded FlatCAM Tools DB from" -msgid "Loaded Tools DB from" -msgstr "Database utensili FlatCAM caricato da" - -#: AppDatabase.py:324 AppDatabase.py:1958 -msgid "Add to DB" -msgstr "Aggiungi a DB" - -#: AppDatabase.py:326 AppDatabase.py:1961 -msgid "Copy from DB" -msgstr "Copia da DB" - -#: AppDatabase.py:328 AppDatabase.py:1964 -msgid "Delete from DB" -msgstr "Cancella da DB" - -#: AppDatabase.py:605 AppDatabase.py:2198 -msgid "Tool added to DB." -msgstr "Utensile aggiunto al DB." - -#: AppDatabase.py:626 AppDatabase.py:2231 -msgid "Tool copied from Tools DB." -msgstr "Utensile copiato dal DB utensile." - -#: AppDatabase.py:644 AppDatabase.py:2258 -msgid "Tool removed from Tools DB." -msgstr "Utensile rimosso dal DB utensili." - -#: AppDatabase.py:655 AppDatabase.py:2269 -msgid "Export Tools Database" -msgstr "Esportazione DataBase utensili" - -#: AppDatabase.py:658 AppDatabase.py:2272 -msgid "Tools_Database" -msgstr "Databse_utensili" - -#: AppDatabase.py:665 AppDatabase.py:711 AppDatabase.py:2279 -#: AppDatabase.py:2325 AppEditors/FlatCAMExcEditor.py:1023 -#: AppEditors/FlatCAMExcEditor.py:1091 AppEditors/FlatCAMTextEditor.py:223 -#: AppGUI/MainGUI.py:2730 AppGUI/MainGUI.py:2952 AppGUI/MainGUI.py:3167 -#: AppObjects/ObjectCollection.py:127 AppTools/ToolFilm.py:739 -#: AppTools/ToolFilm.py:885 AppTools/ToolImage.py:247 AppTools/ToolMove.py:269 -#: AppTools/ToolPcbWizard.py:301 AppTools/ToolPcbWizard.py:324 -#: AppTools/ToolQRCode.py:800 AppTools/ToolQRCode.py:847 App_Main.py:1710 -#: App_Main.py:2451 App_Main.py:2487 App_Main.py:2534 App_Main.py:4100 -#: App_Main.py:6610 App_Main.py:6649 App_Main.py:6693 App_Main.py:6722 -#: App_Main.py:6763 App_Main.py:6788 App_Main.py:6844 App_Main.py:6880 -#: App_Main.py:6925 App_Main.py:6966 App_Main.py:7008 App_Main.py:7050 -#: App_Main.py:7091 App_Main.py:7135 App_Main.py:7195 App_Main.py:7227 -#: App_Main.py:7259 App_Main.py:7490 App_Main.py:7528 App_Main.py:7571 -#: App_Main.py:7648 App_Main.py:7703 Bookmark.py:300 Bookmark.py:342 -msgid "Cancelled." -msgstr "Cancellato." - -#: AppDatabase.py:673 AppDatabase.py:2287 AppEditors/FlatCAMTextEditor.py:276 -#: AppObjects/FlatCAMCNCJob.py:959 AppTools/ToolFilm.py:1016 -#: AppTools/ToolFilm.py:1197 AppTools/ToolSolderPaste.py:1542 App_Main.py:2542 -#: App_Main.py:7947 App_Main.py:7995 App_Main.py:8120 App_Main.py:8256 -#: Bookmark.py:308 -msgid "" -"Permission denied, saving not possible.\n" -"Most likely another app is holding the file open and not accessible." -msgstr "" -"Autorizzazione negata, salvataggio impossibile.\n" -"Molto probabilmente un'altra app tiene il file aperto e non accessibile." - -#: AppDatabase.py:695 AppDatabase.py:698 AppDatabase.py:750 AppDatabase.py:2309 -#: AppDatabase.py:2312 AppDatabase.py:2365 -msgid "Failed to write Tools DB to file." -msgstr "Errore nella scrittura del file del DB utensili." - -#: AppDatabase.py:701 AppDatabase.py:2315 -msgid "Exported Tools DB to" -msgstr "DB utensili esportato in" - -#: AppDatabase.py:708 AppDatabase.py:2322 -msgid "Import FlatCAM Tools DB" -msgstr "Importazione DB FlatCAM utensili" - -#: AppDatabase.py:740 AppDatabase.py:915 AppDatabase.py:2354 -#: AppDatabase.py:2624 AppObjects/FlatCAMGeometry.py:956 -#: AppTools/ToolIsolation.py:2909 AppTools/ToolIsolation.py:2994 -#: AppTools/ToolNCC.py:4029 AppTools/ToolNCC.py:4113 AppTools/ToolPaint.py:3578 -#: AppTools/ToolPaint.py:3663 App_Main.py:5233 App_Main.py:5267 -#: App_Main.py:5294 App_Main.py:5314 App_Main.py:5324 -msgid "Tools Database" -msgstr "Database degli utensili" - -#: AppDatabase.py:754 AppDatabase.py:2369 -msgid "Saved Tools DB." -msgstr "DB utensili salvati." - -#: AppDatabase.py:901 AppDatabase.py:2611 -msgid "No Tool/row selected in the Tools Database table" -msgstr "Nessun utensile/colonna selezionato nella tabella DB degli utensili" - -#: AppDatabase.py:919 AppDatabase.py:2628 -msgid "Cancelled adding tool from DB." -msgstr "Aggiunta utensile in DB annullata." - -#: AppDatabase.py:1020 -msgid "Basic Geo Parameters" -msgstr "Parametri Geo Basic" - -#: AppDatabase.py:1032 -msgid "Advanced Geo Parameters" -msgstr "Parametri Geo avanzati" - -#: AppDatabase.py:1045 -msgid "NCC Parameters" -msgstr "Parametri NCC" - -#: AppDatabase.py:1058 -msgid "Paint Parameters" -msgstr "Parametri pittura" - -#: AppDatabase.py:1071 -#, fuzzy -#| msgid "Paint Parameters" -msgid "Isolation Parameters" -msgstr "Parametri pittura" - -#: AppDatabase.py:1204 AppGUI/ObjectUI.py:746 AppGUI/ObjectUI.py:1671 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:186 -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:148 -#: AppTools/ToolSolderPaste.py:249 -msgid "Feedrate X-Y" -msgstr "Avanzamento X-Y" - -#: AppDatabase.py:1206 -msgid "" -"Feedrate X-Y. Feedrate\n" -"The speed on XY plane used while cutting into material." -msgstr "" -"Avanzamento X-Y. Feedrate\n" -"Velocità usata sul piano XY durante il taglio nel materiale." - -#: AppDatabase.py:1218 AppGUI/ObjectUI.py:761 AppGUI/ObjectUI.py:1685 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:207 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:201 -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:161 -#: AppTools/ToolSolderPaste.py:261 -msgid "Feedrate Z" -msgstr "Avanzamento Z" - -#: AppDatabase.py:1220 -msgid "" -"Feedrate Z\n" -"The speed on Z plane." -msgstr "" -"Avanzamento Z. Feedrate Z\n" -"La velocità sull'asse Z." - -#: AppDatabase.py:1418 AppGUI/ObjectUI.py:624 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:46 -#: AppTools/ToolNCC.py:341 -msgid "Operation" -msgstr "Operazione" - -#: AppDatabase.py:1420 AppTools/ToolNCC.py:343 -msgid "" -"The 'Operation' can be:\n" -"- Isolation -> will ensure that the non-copper clearing is always complete.\n" -"If it's not successful then the non-copper clearing will fail, too.\n" -"- Clear -> the regular non-copper clearing." -msgstr "" -"L' 'Operazione' può essere:\n" -"- Isolamento -> assicurerà che la rimozione non-rame sia sempre completa.\n" -"Se non ha esito positivo, anche la pulizia non-rame avrà esito negativo.\n" -"- Cancella -> la normale pulizia non-rame." - -#: AppDatabase.py:1427 AppEditors/FlatCAMGrbEditor.py:2749 -#: AppGUI/GUIElements.py:2754 AppTools/ToolNCC.py:350 -msgid "Clear" -msgstr "Pulisci" - -#: AppDatabase.py:1428 AppTools/ToolNCC.py:351 -msgid "Isolation" -msgstr "Isolamento" - -#: AppDatabase.py:1436 AppDatabase.py:1682 AppGUI/ObjectUI.py:646 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:62 -#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:56 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:182 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:137 -#: AppTools/ToolIsolation.py:351 AppTools/ToolNCC.py:359 -msgid "Milling Type" -msgstr "Tipo di fresatura" - -#: AppDatabase.py:1438 AppDatabase.py:1446 AppDatabase.py:1684 -#: AppDatabase.py:1692 AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:184 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:192 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:139 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:147 -#: AppTools/ToolIsolation.py:353 AppTools/ToolIsolation.py:361 -#: AppTools/ToolNCC.py:361 AppTools/ToolNCC.py:369 -msgid "" -"Milling type when the selected tool is of type: 'iso_op':\n" -"- climb / best for precision milling and to reduce tool usage\n" -"- conventional / useful when there is no backlash compensation" -msgstr "" -"Tipo di fresatura quando l'utensile selezionato è di tipo: 'iso_op':\n" -"- salita / migliore per fresatura di precisione e riduzione dell'uso degli " -"utensili\n" -"- convenzionale / utile in assenza di compensazione del gioco" - -#: AppDatabase.py:1443 AppDatabase.py:1689 -#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:62 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:189 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:144 -#: AppTools/ToolIsolation.py:358 AppTools/ToolNCC.py:366 -msgid "Climb" -msgstr "Salita" - -#: AppDatabase.py:1444 AppDatabase.py:1690 -#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:63 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:190 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:145 -#: AppTools/ToolIsolation.py:359 AppTools/ToolNCC.py:367 -msgid "Conventional" -msgstr "Convenzionale" - -#: AppDatabase.py:1456 AppDatabase.py:1565 AppDatabase.py:1667 -#: AppEditors/FlatCAMGeoEditor.py:450 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:167 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:182 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:163 -#: AppTools/ToolIsolation.py:336 AppTools/ToolNCC.py:382 -#: AppTools/ToolPaint.py:328 -msgid "Overlap" -msgstr "Sovrapposizione" - -#: AppDatabase.py:1458 AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:184 -#: AppTools/ToolNCC.py:384 -msgid "" -"How much (percentage) of the tool width to overlap each tool pass.\n" -"Adjust the value starting with lower values\n" -"and increasing it if areas that should be cleared are still \n" -"not cleared.\n" -"Lower values = faster processing, faster execution on CNC.\n" -"Higher values = slow processing and slow execution on CNC\n" -"due of too many paths." -msgstr "" -"Quanta (frazione) della larghezza dell'utensile da sovrapporre ad\n" -"ogni passaggio dell'utensile. Regola il valore iniziando con valori\n" -"più bassi e aumentandolo se le aree da eliminare sono ancora\n" -"presenti.\n" -"Valori più bassi = elaborazione più rapida, esecuzione più veloce su CNC.\n" -"Valori più alti = elaborazione lenta ed esecuzione lenta su CNC\n" -"per i molti percorsi." - -#: AppDatabase.py:1477 AppDatabase.py:1586 AppEditors/FlatCAMGeoEditor.py:470 -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:72 -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:229 -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:59 -#: AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py:45 -#: AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py:53 -#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:66 -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:115 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:202 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:183 -#: AppTools/ToolCopperThieving.py:115 AppTools/ToolCopperThieving.py:366 -#: AppTools/ToolCorners.py:149 AppTools/ToolCutOut.py:190 -#: AppTools/ToolFiducials.py:175 AppTools/ToolInvertGerber.py:91 -#: AppTools/ToolInvertGerber.py:99 AppTools/ToolNCC.py:403 -#: AppTools/ToolPaint.py:349 -msgid "Margin" -msgstr "Margine" - -#: AppDatabase.py:1479 -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:74 -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:61 -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:125 -#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:68 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:204 -#: AppTools/ToolCopperThieving.py:117 AppTools/ToolCorners.py:151 -#: AppTools/ToolFiducials.py:177 AppTools/ToolNCC.py:405 -msgid "Bounding box margin." -msgstr "Margine del riquadro di delimitazione." - -#: AppDatabase.py:1490 AppDatabase.py:1601 AppEditors/FlatCAMGeoEditor.py:484 -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:105 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:106 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:215 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:198 -#: AppTools/ToolExtractDrills.py:128 AppTools/ToolNCC.py:416 -#: AppTools/ToolPaint.py:364 AppTools/ToolPunchGerber.py:139 -msgid "Method" -msgstr "Metodo" - -#: AppDatabase.py:1492 AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:217 -#: AppTools/ToolNCC.py:418 -msgid "" -"Algorithm for copper clearing:\n" -"- Standard: Fixed step inwards.\n" -"- Seed-based: Outwards from seed.\n" -"- Line-based: Parallel lines." -msgstr "" -"Algoritmo per la pittura:\n" -"- Standard: passo fisso verso l'interno.\n" -"- A base di semi: verso l'esterno dal seme.\n" -"- Basato su linee: linee parallele." - -#: AppDatabase.py:1500 AppDatabase.py:1615 AppEditors/FlatCAMGeoEditor.py:498 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:230 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217 -#: AppTools/ToolNCC.py:431 AppTools/ToolNCC.py:2232 AppTools/ToolNCC.py:2764 -#: AppTools/ToolNCC.py:2796 AppTools/ToolPaint.py:389 -#: AppTools/ToolPaint.py:1859 tclCommands/TclCommandCopperClear.py:126 -#: tclCommands/TclCommandCopperClear.py:134 tclCommands/TclCommandPaint.py:125 -msgid "Standard" -msgstr "Standard" - -#: AppDatabase.py:1500 AppDatabase.py:1615 AppEditors/FlatCAMGeoEditor.py:498 -#: AppEditors/FlatCAMGeoEditor.py:568 AppEditors/FlatCAMGeoEditor.py:5148 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:230 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217 -#: AppTools/ToolNCC.py:431 AppTools/ToolNCC.py:2243 AppTools/ToolNCC.py:2770 -#: AppTools/ToolNCC.py:2802 AppTools/ToolPaint.py:389 -#: AppTools/ToolPaint.py:1873 defaults.py:413 defaults.py:445 -#: tclCommands/TclCommandCopperClear.py:128 -#: tclCommands/TclCommandCopperClear.py:136 tclCommands/TclCommandPaint.py:127 -msgid "Seed" -msgstr "Seme" - -#: AppDatabase.py:1500 AppDatabase.py:1615 AppEditors/FlatCAMGeoEditor.py:498 -#: AppEditors/FlatCAMGeoEditor.py:5152 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:230 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217 -#: AppTools/ToolNCC.py:431 AppTools/ToolNCC.py:2254 AppTools/ToolPaint.py:389 -#: AppTools/ToolPaint.py:698 AppTools/ToolPaint.py:1887 -#: tclCommands/TclCommandCopperClear.py:130 tclCommands/TclCommandPaint.py:129 -msgid "Lines" -msgstr "Righe" - -#: AppDatabase.py:1500 AppDatabase.py:1615 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:230 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217 -#: AppTools/ToolNCC.py:431 AppTools/ToolNCC.py:2265 AppTools/ToolPaint.py:389 -#: AppTools/ToolPaint.py:2052 tclCommands/TclCommandPaint.py:133 -msgid "Combo" -msgstr "Combinata" - -#: AppDatabase.py:1508 AppDatabase.py:1626 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:237 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:224 -#: AppTools/ToolNCC.py:439 AppTools/ToolPaint.py:400 -msgid "Connect" -msgstr "Connetti" - -#: AppDatabase.py:1512 AppDatabase.py:1629 AppEditors/FlatCAMGeoEditor.py:507 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:239 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:226 -#: AppTools/ToolNCC.py:443 AppTools/ToolPaint.py:403 -msgid "" -"Draw lines between resulting\n" -"segments to minimize tool lifts." -msgstr "" -"Disegna linee tra segmenti risultanti\n" -"per minimizzare i sollevamenti dell'utensile." - -#: AppDatabase.py:1518 AppDatabase.py:1633 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:246 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:232 -#: AppTools/ToolNCC.py:449 AppTools/ToolPaint.py:407 -msgid "Contour" -msgstr "Controno" - -#: AppDatabase.py:1522 AppDatabase.py:1636 AppEditors/FlatCAMGeoEditor.py:517 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:248 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:234 -#: AppTools/ToolNCC.py:453 AppTools/ToolPaint.py:410 -msgid "" -"Cut around the perimeter of the polygon\n" -"to trim rough edges." -msgstr "" -"Taglia attorno al perimetro del poligono\n" -"per rifinire bordi grezzi." - -#: AppDatabase.py:1528 AppEditors/FlatCAMGeoEditor.py:611 -#: AppEditors/FlatCAMGrbEditor.py:5305 AppGUI/ObjectUI.py:143 -#: AppGUI/ObjectUI.py:1394 AppGUI/ObjectUI.py:2256 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:255 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:142 -#: AppTools/ToolEtchCompensation.py:199 AppTools/ToolEtchCompensation.py:207 -#: AppTools/ToolNCC.py:459 AppTools/ToolTransform.py:28 -msgid "Offset" -msgstr "Offset" - -#: AppDatabase.py:1532 AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:257 -#: AppTools/ToolNCC.py:463 -msgid "" -"If used, it will add an offset to the copper features.\n" -"The copper clearing will finish to a distance\n" -"from the copper features.\n" -"The value can be between 0 and 10 FlatCAM units." -msgstr "" -"Se utilizzato, aggiungerà un offset alle lavorazioni su rame.\n" -"La rimozione del del rame finirà a una data distanza\n" -"dalle lavorazioni sul rame.\n" -"Il valore può essere compreso tra 0 e 10 unità FlatCAM." - -#: AppDatabase.py:1567 AppEditors/FlatCAMGeoEditor.py:452 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:165 -#: AppTools/ToolPaint.py:330 -msgid "" -"How much (percentage) of the tool width to overlap each tool pass.\n" -"Adjust the value starting with lower values\n" -"and increasing it if areas that should be painted are still \n" -"not painted.\n" -"Lower values = faster processing, faster execution on CNC.\n" -"Higher values = slow processing and slow execution on CNC\n" -"due of too many paths." -msgstr "" -"Quanta larghezza dell'utensile (frazione) da sovrapporre ad ogni passaggio.\n" -"Sistema il valore partendo da valori bassi\n" -"ed aumentalo se aree da colorare non lo sono.\n" -"Valori bassi = velocità di elaborazione, velocità di esecuzione su CNC.\n" -"Valori elevati = bassa velocità di elaborazione e bassa velocità di " -"esecuzione su CNC\n" -"causata dai troppo percorsi." - -#: AppDatabase.py:1588 AppEditors/FlatCAMGeoEditor.py:472 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:185 -#: AppTools/ToolPaint.py:351 -msgid "" -"Distance by which to avoid\n" -"the edges of the polygon to\n" -"be painted." -msgstr "" -"Distanza alla quale evitare\n" -"i bordi dei poligoni da\n" -"disegnare." - -#: AppDatabase.py:1603 AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:200 -#: AppTools/ToolPaint.py:366 -msgid "" -"Algorithm for painting:\n" -"- Standard: Fixed step inwards.\n" -"- Seed-based: Outwards from seed.\n" -"- Line-based: Parallel lines.\n" -"- Laser-lines: Active only for Gerber objects.\n" -"Will create lines that follow the traces.\n" -"- Combo: In case of failure a new method will be picked from the above\n" -"in the order specified." -msgstr "" -"Algoritmo per la pittura: \n" -"- Standard: passo fisso verso l'interno.\n" -"- A base di semi: verso l'esterno dal seme.\n" -"- Basato su linee: linee parallele.\n" -"- Linee laser: attivo solo per oggetti Gerber.\n" -"Creerà linee che seguono le tracce.\n" -"- Combo: in caso di guasto verrà scelto un nuovo metodo tra quelli sopra " -"indicati\n" -"nell'ordine specificato." - -#: AppDatabase.py:1615 AppDatabase.py:1617 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217 -#: AppTools/ToolPaint.py:389 AppTools/ToolPaint.py:391 -#: AppTools/ToolPaint.py:692 AppTools/ToolPaint.py:697 -#: AppTools/ToolPaint.py:1901 tclCommands/TclCommandPaint.py:131 -msgid "Laser_lines" -msgstr "Laser_lines" - -#: AppDatabase.py:1654 AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:154 -#: AppTools/ToolIsolation.py:323 -#, fuzzy -#| msgid "# Passes" -msgid "Passes" -msgstr "# Passate" - -#: AppDatabase.py:1656 AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:156 -#: AppTools/ToolIsolation.py:325 -msgid "" -"Width of the isolation gap in\n" -"number (integer) of tool widths." -msgstr "" -"Larghezza della distanza di isolamento in\n" -"numero (intero) di larghezze dell'utensile." - -#: AppDatabase.py:1669 AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:169 -#: AppTools/ToolIsolation.py:338 -msgid "How much (percentage) of the tool width to overlap each tool pass." -msgstr "" -"Quanto (in frazione) della larghezza dell'utensile sarà sovrapposto ad ogni " -"passaggio dell'utensile." - -#: AppDatabase.py:1702 AppGUI/ObjectUI.py:236 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:201 -#: AppTools/ToolIsolation.py:371 -#, fuzzy -#| msgid "\"Follow\"" -msgid "Follow" -msgstr "\"Segui\"" - -#: AppDatabase.py:1704 AppDatabase.py:1710 AppGUI/ObjectUI.py:237 -#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:45 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:203 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:209 -#: AppTools/ToolIsolation.py:373 AppTools/ToolIsolation.py:379 -msgid "" -"Generate a 'Follow' geometry.\n" -"This means that it will cut through\n" -"the middle of the trace." -msgstr "" -"Genera una geometria 'Segui'.\n" -"Ciò significa che taglierà\n" -"al centro della traccia." - -#: AppDatabase.py:1719 AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:218 -#: AppTools/ToolIsolation.py:388 -msgid "Isolation Type" -msgstr "Tipo isolamento" - -#: AppDatabase.py:1721 AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:220 -#: AppTools/ToolIsolation.py:390 -msgid "" -"Choose how the isolation will be executed:\n" -"- 'Full' -> complete isolation of polygons\n" -"- 'Ext' -> will isolate only on the outside\n" -"- 'Int' -> will isolate only on the inside\n" -"'Exterior' isolation is almost always possible\n" -"(with the right tool) but 'Interior'\n" -"isolation can be done only when there is an opening\n" -"inside of the polygon (e.g polygon is a 'doughnut' shape)." -msgstr "" -"Scegli come verrà eseguito l'isolamento:\n" -"- 'Completo' -> completo isolamento dei poligoni\n" -"- 'Ext' -> isolerà solo all'esterno\n" -"- 'Int' -> isolerà solo all'interno\n" -"L'isolamento 'esterno' è quasi sempre possibile\n" -"(con lo strumento giusto) ma 'Interno' può\n" -"essere fatto solo quando c'è un'apertura all'interno\n" -"del poligono (ad esempio il poligono ha una forma a \"ciambella\")." - -#: AppDatabase.py:1730 AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:75 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:229 -#: AppTools/ToolIsolation.py:399 -msgid "Full" -msgstr "Completo" - -#: AppDatabase.py:1731 AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:230 -#: AppTools/ToolIsolation.py:400 -msgid "Ext" -msgstr "Ext" - -#: AppDatabase.py:1732 AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:231 -#: AppTools/ToolIsolation.py:401 -msgid "Int" -msgstr "Int" - -#: AppDatabase.py:1755 -msgid "Add Tool in DB" -msgstr "Aggiunti utensile nel DB" - -#: AppDatabase.py:1789 -msgid "Save DB" -msgstr "Salva DB" - -#: AppDatabase.py:1791 -msgid "Save the Tools Database information's." -msgstr "Salva le informazioni del Databse utensili." - -#: AppDatabase.py:1797 -#, fuzzy -#| msgid "" -#| "Add a new tool in the Tools Table of the\n" -#| "active Geometry object after selecting a tool\n" -#| "in the Tools Database." -msgid "" -"Insert a new tool in the Tools Table of the\n" -"object/application tool after selecting a tool\n" -"in the Tools Database." -msgstr "" -"Add a new tool in the Tools Table of the\n" -"active Geometry object after selecting a tool\n" -"in the Tools Database." - -#: AppEditors/FlatCAMExcEditor.py:50 AppEditors/FlatCAMExcEditor.py:74 -#: AppEditors/FlatCAMExcEditor.py:168 AppEditors/FlatCAMExcEditor.py:385 -#: AppEditors/FlatCAMExcEditor.py:589 AppEditors/FlatCAMGrbEditor.py:241 -#: AppEditors/FlatCAMGrbEditor.py:248 -msgid "Click to place ..." -msgstr "Clicca per posizionare ..." - -#: AppEditors/FlatCAMExcEditor.py:58 -msgid "To add a drill first select a tool" -msgstr "Per aggiungere un foro prima seleziona un utensile" - -#: AppEditors/FlatCAMExcEditor.py:122 -msgid "Done. Drill added." -msgstr "Fatto. Foro aggiunto." - -#: AppEditors/FlatCAMExcEditor.py:176 -msgid "To add an Drill Array first select a tool in Tool Table" -msgstr "Per aggiungere una matrice di punti prima seleziona un utensile" - -#: AppEditors/FlatCAMExcEditor.py:192 AppEditors/FlatCAMExcEditor.py:415 -#: AppEditors/FlatCAMExcEditor.py:636 AppEditors/FlatCAMExcEditor.py:1151 -#: AppEditors/FlatCAMExcEditor.py:1178 AppEditors/FlatCAMGrbEditor.py:471 -#: AppEditors/FlatCAMGrbEditor.py:1944 AppEditors/FlatCAMGrbEditor.py:1974 -msgid "Click on target location ..." -msgstr "Clicca sulla posizione di destinazione ..." - -#: AppEditors/FlatCAMExcEditor.py:211 -msgid "Click on the Drill Circular Array Start position" -msgstr "Clicca sulla posizione di inizio della matrice fori circolare" - -#: AppEditors/FlatCAMExcEditor.py:233 AppEditors/FlatCAMExcEditor.py:677 -#: AppEditors/FlatCAMGrbEditor.py:516 -msgid "The value is not Float. Check for comma instead of dot separator." -msgstr "Il valore non è float. Controlla che il punto non sia una virgola." - -#: AppEditors/FlatCAMExcEditor.py:237 -msgid "The value is mistyped. Check the value" -msgstr "Valore erroneo. Controlla il valore" - -#: AppEditors/FlatCAMExcEditor.py:336 -msgid "Too many drills for the selected spacing angle." -msgstr "Troppi fori per l'angolo selezionato." - -#: AppEditors/FlatCAMExcEditor.py:354 -msgid "Done. Drill Array added." -msgstr "Fatto. Matrice fori aggiunta." - -#: AppEditors/FlatCAMExcEditor.py:394 -msgid "To add a slot first select a tool" -msgstr "Per aggiungere uno slot prima seleziona un utensile" - -#: AppEditors/FlatCAMExcEditor.py:454 AppEditors/FlatCAMExcEditor.py:461 -#: AppEditors/FlatCAMExcEditor.py:742 AppEditors/FlatCAMExcEditor.py:749 -msgid "Value is missing or wrong format. Add it and retry." -msgstr "Valore con formato errato o mancante. Aggiungilo e riprova." - -#: AppEditors/FlatCAMExcEditor.py:559 -msgid "Done. Adding Slot completed." -msgstr "Fatto. Slot aggiunto." - -#: AppEditors/FlatCAMExcEditor.py:597 -msgid "To add an Slot Array first select a tool in Tool Table" -msgstr "" -"Per aggiungere una matrice di slot seleziona prima un utensile dalla tabella" - -#: AppEditors/FlatCAMExcEditor.py:655 -msgid "Click on the Slot Circular Array Start position" -msgstr "Clicca sulla posizione iniziale della matrice circolare di slot" - -#: AppEditors/FlatCAMExcEditor.py:680 AppEditors/FlatCAMGrbEditor.py:519 -msgid "The value is mistyped. Check the value." -msgstr "Valore errato. Controllalo." - -#: AppEditors/FlatCAMExcEditor.py:859 -msgid "Too many Slots for the selected spacing angle." -msgstr "Troppi slot per l'angolo selezionato." - -#: AppEditors/FlatCAMExcEditor.py:882 -msgid "Done. Slot Array added." -msgstr "Fatto. Matrice di slot aggiunta." - -#: AppEditors/FlatCAMExcEditor.py:904 -msgid "Click on the Drill(s) to resize ..." -msgstr "Clicca sul foro(i) da ridimensionare ..." - -#: AppEditors/FlatCAMExcEditor.py:934 -msgid "Resize drill(s) failed. Please enter a diameter for resize." -msgstr "" -"Ridimensionamento fallito. Inserisci un diametro per il ridimensionamento." - -#: AppEditors/FlatCAMExcEditor.py:1112 -msgid "Done. Drill/Slot Resize completed." -msgstr "Fatto. Ridimensionamento Foro/Slot completato." - -#: AppEditors/FlatCAMExcEditor.py:1115 -msgid "Cancelled. No drills/slots selected for resize ..." -msgstr "Cancellato. Nessun foro/slot selezionato per il ridimensionamento ..." - -#: AppEditors/FlatCAMExcEditor.py:1153 AppEditors/FlatCAMGrbEditor.py:1946 -msgid "Click on reference location ..." -msgstr "Clicca sulla posizione di riferimento ..." - -#: AppEditors/FlatCAMExcEditor.py:1210 -msgid "Done. Drill(s) Move completed." -msgstr "Fatto. Foro(i) spostato(i) correttamente." - -#: AppEditors/FlatCAMExcEditor.py:1318 -msgid "Done. Drill(s) copied." -msgstr "Fatto. Foro(i) copiato(i)." - -#: AppEditors/FlatCAMExcEditor.py:1557 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:26 -msgid "Excellon Editor" -msgstr "Editor Excellon" - -#: AppEditors/FlatCAMExcEditor.py:1564 AppEditors/FlatCAMGrbEditor.py:2469 -msgid "Name:" -msgstr "Nome:" - -#: AppEditors/FlatCAMExcEditor.py:1570 AppGUI/ObjectUI.py:540 -#: AppGUI/ObjectUI.py:1362 AppTools/ToolIsolation.py:118 -#: AppTools/ToolNCC.py:120 AppTools/ToolPaint.py:114 -#: AppTools/ToolSolderPaste.py:79 -msgid "Tools Table" -msgstr "Tabella utensili" - -#: AppEditors/FlatCAMExcEditor.py:1572 AppGUI/ObjectUI.py:542 -msgid "" -"Tools in this Excellon object\n" -"when are used for drilling." -msgstr "" -"Utensili in questo oggetto Excellon\n" -"quando usati per la foratura." - -#: AppEditors/FlatCAMExcEditor.py:1584 AppEditors/FlatCAMExcEditor.py:3041 -#: AppGUI/ObjectUI.py:560 AppObjects/FlatCAMExcellon.py:1265 -#: AppObjects/FlatCAMExcellon.py:1368 AppObjects/FlatCAMExcellon.py:1553 -#: AppTools/ToolIsolation.py:130 AppTools/ToolNCC.py:132 -#: AppTools/ToolPaint.py:127 AppTools/ToolPcbWizard.py:76 -#: AppTools/ToolProperties.py:416 AppTools/ToolProperties.py:476 -#: AppTools/ToolSolderPaste.py:90 tclCommands/TclCommandDrillcncjob.py:195 -msgid "Diameter" -msgstr "Diametro" - -#: AppEditors/FlatCAMExcEditor.py:1592 -msgid "Add/Delete Tool" -msgstr "Aggiungi/Modifica utensile" - -#: AppEditors/FlatCAMExcEditor.py:1594 -msgid "" -"Add/Delete a tool to the tool list\n" -"for this Excellon object." -msgstr "" -"Aggiungi/Modifica un utensile dalla lista utensili\n" -"per questo oggetto Excellon." - -#: AppEditors/FlatCAMExcEditor.py:1606 AppGUI/ObjectUI.py:1482 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:57 -msgid "Diameter for the new tool" -msgstr "Diametro del nuovo utensile" - -#: AppEditors/FlatCAMExcEditor.py:1616 -msgid "Add Tool" -msgstr "Aggiunge utensile" - -#: AppEditors/FlatCAMExcEditor.py:1618 -msgid "" -"Add a new tool to the tool list\n" -"with the diameter specified above." -msgstr "" -"Aggiungi un nuovo utensile alla lista\n" -"con il diametro specificato sopra." - -#: AppEditors/FlatCAMExcEditor.py:1630 -msgid "Delete Tool" -msgstr "Cancella utensile" - -#: AppEditors/FlatCAMExcEditor.py:1632 -msgid "" -"Delete a tool in the tool list\n" -"by selecting a row in the tool table." -msgstr "" -"Cancella un utensile dalla lista\n" -"selezionandone la riga nella tabella." - -#: AppEditors/FlatCAMExcEditor.py:1650 AppGUI/MainGUI.py:4392 -msgid "Resize Drill(s)" -msgstr "Ridimensiona foro(i)" - -#: AppEditors/FlatCAMExcEditor.py:1652 -msgid "Resize a drill or a selection of drills." -msgstr "Ridimensiona un foro o una selezione di fori." - -#: AppEditors/FlatCAMExcEditor.py:1659 -msgid "Resize Dia" -msgstr "Diametro ridimensionamento" - -#: AppEditors/FlatCAMExcEditor.py:1661 -msgid "Diameter to resize to." -msgstr "Diametro al quale ridimensionare." - -#: AppEditors/FlatCAMExcEditor.py:1672 -msgid "Resize" -msgstr "Ridimensiona" - -#: AppEditors/FlatCAMExcEditor.py:1674 -msgid "Resize drill(s)" -msgstr "Ridimensiona foro(i)" - -#: AppEditors/FlatCAMExcEditor.py:1699 AppGUI/MainGUI.py:1514 -#: AppGUI/MainGUI.py:4391 -msgid "Add Drill Array" -msgstr "Aggiungi matrice di fori" - -#: AppEditors/FlatCAMExcEditor.py:1701 -msgid "Add an array of drills (linear or circular array)" -msgstr "Aggiunge una matrice di fori (lineare o circolare)" - -#: AppEditors/FlatCAMExcEditor.py:1707 -msgid "" -"Select the type of drills array to create.\n" -"It can be Linear X(Y) or Circular" -msgstr "" -"Seleziona il tipo di matrice di fori da creare.\n" -"Può essere lineare X(Y) o circolare" - -#: AppEditors/FlatCAMExcEditor.py:1710 AppEditors/FlatCAMExcEditor.py:1924 -#: AppEditors/FlatCAMGrbEditor.py:2782 -msgid "Linear" -msgstr "Lineare" - -#: AppEditors/FlatCAMExcEditor.py:1711 AppEditors/FlatCAMExcEditor.py:1925 -#: AppEditors/FlatCAMGrbEditor.py:2783 -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:52 -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:149 -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:107 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:52 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:151 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:78 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:61 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:70 -#: AppTools/ToolExtractDrills.py:78 AppTools/ToolExtractDrills.py:201 -#: AppTools/ToolFiducials.py:223 AppTools/ToolIsolation.py:207 -#: AppTools/ToolNCC.py:221 AppTools/ToolPaint.py:203 -#: AppTools/ToolPunchGerber.py:89 AppTools/ToolPunchGerber.py:229 -msgid "Circular" -msgstr "Circolare" - -#: AppEditors/FlatCAMExcEditor.py:1719 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:68 -msgid "Nr of drills" -msgstr "Numero di fori" - -#: AppEditors/FlatCAMExcEditor.py:1720 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:70 -msgid "Specify how many drills to be in the array." -msgstr "Specifica quanti fori sono presenti nella matrice." - -#: AppEditors/FlatCAMExcEditor.py:1738 AppEditors/FlatCAMExcEditor.py:1788 -#: AppEditors/FlatCAMExcEditor.py:1860 AppEditors/FlatCAMExcEditor.py:1953 -#: AppEditors/FlatCAMExcEditor.py:2004 AppEditors/FlatCAMGrbEditor.py:1580 -#: AppEditors/FlatCAMGrbEditor.py:2811 AppEditors/FlatCAMGrbEditor.py:2860 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:178 -msgid "Direction" -msgstr "Direzione" - -#: AppEditors/FlatCAMExcEditor.py:1740 AppEditors/FlatCAMExcEditor.py:1955 -#: AppEditors/FlatCAMGrbEditor.py:2813 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:86 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:234 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:123 -msgid "" -"Direction on which the linear array is oriented:\n" -"- 'X' - horizontal axis \n" -"- 'Y' - vertical axis or \n" -"- 'Angle' - a custom angle for the array inclination" -msgstr "" -"Direzione di orientamento della matrice lineare:\n" -"- 'X' - asse orizzontale \n" -"- 'Y' - asse verticale o\n" -"- 'Angolo' - angolo per l'inclinazione della matrice" - -#: AppEditors/FlatCAMExcEditor.py:1747 AppEditors/FlatCAMExcEditor.py:1869 -#: AppEditors/FlatCAMExcEditor.py:1962 AppEditors/FlatCAMGrbEditor.py:2820 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:92 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:187 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:240 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:129 -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:197 -#: AppTools/ToolFilm.py:239 -msgid "X" -msgstr "X" - -#: AppEditors/FlatCAMExcEditor.py:1748 AppEditors/FlatCAMExcEditor.py:1870 -#: AppEditors/FlatCAMExcEditor.py:1963 AppEditors/FlatCAMGrbEditor.py:2821 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:93 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:188 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:241 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:130 -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:198 -#: AppTools/ToolFilm.py:240 -msgid "Y" -msgstr "Y" - -#: AppEditors/FlatCAMExcEditor.py:1749 AppEditors/FlatCAMExcEditor.py:1766 -#: AppEditors/FlatCAMExcEditor.py:1800 AppEditors/FlatCAMExcEditor.py:1871 -#: AppEditors/FlatCAMExcEditor.py:1875 AppEditors/FlatCAMExcEditor.py:1964 -#: AppEditors/FlatCAMExcEditor.py:1982 AppEditors/FlatCAMExcEditor.py:2016 -#: AppEditors/FlatCAMGrbEditor.py:2822 AppEditors/FlatCAMGrbEditor.py:2839 -#: AppEditors/FlatCAMGrbEditor.py:2875 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:94 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:113 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:189 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:194 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:242 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:263 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:131 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:149 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:53 -#: AppTools/ToolDistance.py:120 AppTools/ToolDistanceMin.py:68 -#: AppTools/ToolTransform.py:60 -msgid "Angle" -msgstr "Angolo" - -#: AppEditors/FlatCAMExcEditor.py:1753 AppEditors/FlatCAMExcEditor.py:1968 -#: AppEditors/FlatCAMGrbEditor.py:2826 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:100 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:248 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:137 -msgid "Pitch" -msgstr "Passo" - -#: AppEditors/FlatCAMExcEditor.py:1755 AppEditors/FlatCAMExcEditor.py:1970 -#: AppEditors/FlatCAMGrbEditor.py:2828 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:102 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:250 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:139 -msgid "Pitch = Distance between elements of the array." -msgstr "Passo = distanza tra due elementi della matrice." - -#: AppEditors/FlatCAMExcEditor.py:1768 AppEditors/FlatCAMExcEditor.py:1984 -msgid "" -"Angle at which the linear array is placed.\n" -"The precision is of max 2 decimals.\n" -"Min value is: -360 degrees.\n" -"Max value is: 360.00 degrees." -msgstr "" -"Angolo al quale è posizionata la matrice lineare.\n" -"La precisione è al massimo di 2 decimali.\n" -"Valore minimo: -360 gradi.\n" -"Valore massimo: 360.00 gradi." - -#: AppEditors/FlatCAMExcEditor.py:1789 AppEditors/FlatCAMExcEditor.py:2005 -#: AppEditors/FlatCAMGrbEditor.py:2862 -msgid "" -"Direction for circular array.Can be CW = clockwise or CCW = counter " -"clockwise." -msgstr "" -"Direzione matrice circolare. Può essere CW = senso orario o CCW = senso " -"antiorario." - -#: AppEditors/FlatCAMExcEditor.py:1796 AppEditors/FlatCAMExcEditor.py:2012 -#: AppEditors/FlatCAMGrbEditor.py:2870 -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:129 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:136 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:286 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:145 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:171 -msgid "CW" -msgstr "CW" - -#: AppEditors/FlatCAMExcEditor.py:1797 AppEditors/FlatCAMExcEditor.py:2013 -#: AppEditors/FlatCAMGrbEditor.py:2871 -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:130 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:137 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:287 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:146 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:172 -msgid "CCW" -msgstr "CCW" - -#: AppEditors/FlatCAMExcEditor.py:1801 AppEditors/FlatCAMExcEditor.py:2017 -#: AppEditors/FlatCAMGrbEditor.py:2877 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:115 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:145 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:265 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:295 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:151 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:180 -msgid "Angle at which each element in circular array is placed." -msgstr "Angolo al quale è posizionato ogni elementodella matrice circolare." - -#: AppEditors/FlatCAMExcEditor.py:1835 -msgid "Slot Parameters" -msgstr "Parametri Slot" - -#: AppEditors/FlatCAMExcEditor.py:1837 -msgid "" -"Parameters for adding a slot (hole with oval shape)\n" -"either single or as an part of an array." -msgstr "" -"Parametri per aggiungere uno slot (foro con bordi ovali)\n" -"sia singolo sia come parte di una matrice." - -#: AppEditors/FlatCAMExcEditor.py:1846 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:162 -#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:56 -#: AppTools/ToolCorners.py:136 AppTools/ToolProperties.py:559 -msgid "Length" -msgstr "Lunghezza" - -#: AppEditors/FlatCAMExcEditor.py:1848 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:164 -msgid "Length = The length of the slot." -msgstr "Lunghezza = lunghezza dello slot." - -#: AppEditors/FlatCAMExcEditor.py:1862 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:180 -msgid "" -"Direction on which the slot is oriented:\n" -"- 'X' - horizontal axis \n" -"- 'Y' - vertical axis or \n" -"- 'Angle' - a custom angle for the slot inclination" -msgstr "" -"Direzione alla quale è orientato lo slot:\n" -"- 'X' - asse orizzontale\n" -"- 'Y' - asse verticale o \n" -"- 'Angolo' - ancolo per l'inclinazione dello slot" - -#: AppEditors/FlatCAMExcEditor.py:1877 -msgid "" -"Angle at which the slot is placed.\n" -"The precision is of max 2 decimals.\n" -"Min value is: -360 degrees.\n" -"Max value is: 360.00 degrees." -msgstr "" -"Angolo al quale è posizionato lo slot.\n" -"La precisione è di massimo 2 decimali.\n" -"Valore minimo: -360 gradi.\n" -"Valore massimo: 360.00 gradi." - -#: AppEditors/FlatCAMExcEditor.py:1910 -msgid "Slot Array Parameters" -msgstr "Parametri matrice slot" - -#: AppEditors/FlatCAMExcEditor.py:1912 -msgid "Parameters for the array of slots (linear or circular array)" -msgstr "Parametri per la matrice di slot (matrice lineare o circolare)" - -#: AppEditors/FlatCAMExcEditor.py:1921 -msgid "" -"Select the type of slot array to create.\n" -"It can be Linear X(Y) or Circular" -msgstr "" -"Seleziona il tipo di matrice di slot da creare.\n" -"Può essere lineare (X,Y) o circolare" - -#: AppEditors/FlatCAMExcEditor.py:1933 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:219 -msgid "Nr of slots" -msgstr "Numero di Slot" - -#: AppEditors/FlatCAMExcEditor.py:1934 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:221 -msgid "Specify how many slots to be in the array." -msgstr "Specifica il numero di slot che comporranno la matrice." - -#: AppEditors/FlatCAMExcEditor.py:2452 AppObjects/FlatCAMExcellon.py:433 -msgid "Total Drills" -msgstr "Fori totali" - -#: AppEditors/FlatCAMExcEditor.py:2484 AppObjects/FlatCAMExcellon.py:464 -msgid "Total Slots" -msgstr "Slot totali" - -#: AppEditors/FlatCAMExcEditor.py:2559 AppEditors/FlatCAMGeoEditor.py:1075 -#: AppEditors/FlatCAMGeoEditor.py:1116 AppEditors/FlatCAMGeoEditor.py:1144 -#: AppEditors/FlatCAMGeoEditor.py:1172 AppEditors/FlatCAMGeoEditor.py:1216 -#: AppEditors/FlatCAMGeoEditor.py:1251 AppEditors/FlatCAMGeoEditor.py:1279 -#: AppObjects/FlatCAMGeometry.py:664 AppObjects/FlatCAMGeometry.py:1099 -#: AppObjects/FlatCAMGeometry.py:1841 AppObjects/FlatCAMGeometry.py:2491 -#: AppTools/ToolIsolation.py:1493 AppTools/ToolNCC.py:1516 -#: AppTools/ToolPaint.py:1268 AppTools/ToolPaint.py:1439 -#: AppTools/ToolSolderPaste.py:891 AppTools/ToolSolderPaste.py:964 -msgid "Wrong value format entered, use a number." -msgstr "Formato valore errato, inserire un numero." - -#: AppEditors/FlatCAMExcEditor.py:2570 -msgid "" -"Tool already in the original or actual tool list.\n" -"Save and reedit Excellon if you need to add this tool. " -msgstr "" -"Utensile già presente nella lista.\n" -"Salva e riedita l'Excellon se vuoi aggiungere questo utensile. " - -#: AppEditors/FlatCAMExcEditor.py:2579 AppGUI/MainGUI.py:3364 -msgid "Added new tool with dia" -msgstr "Aggiunto nuovo utensile con diametro" - -#: AppEditors/FlatCAMExcEditor.py:2612 -msgid "Select a tool in Tool Table" -msgstr "Seleziona un utensile dalla tabella" - -#: AppEditors/FlatCAMExcEditor.py:2642 -msgid "Deleted tool with diameter" -msgstr "Eliminato utensile con diametro" - -#: AppEditors/FlatCAMExcEditor.py:2790 -msgid "Done. Tool edit completed." -msgstr "Fatto. Modifica utensile completata." - -#: AppEditors/FlatCAMExcEditor.py:3327 -msgid "There are no Tools definitions in the file. Aborting Excellon creation." -msgstr "" -"Non ci sono definizioni di utensili nel file. Annullo creazione Excellon." - -#: AppEditors/FlatCAMExcEditor.py:3331 -msgid "An internal error has ocurred. See Shell.\n" -msgstr "Errore interno. Vedi shell.\n" - -#: AppEditors/FlatCAMExcEditor.py:3336 -msgid "Creating Excellon." -msgstr "Creazione Excellon." - -#: AppEditors/FlatCAMExcEditor.py:3350 -msgid "Excellon editing finished." -msgstr "Modifica Excellon terminata." - -#: AppEditors/FlatCAMExcEditor.py:3367 -msgid "Cancelled. There is no Tool/Drill selected" -msgstr "Errore: Nessun utensile/Foro selezionato" - -#: AppEditors/FlatCAMExcEditor.py:3601 AppEditors/FlatCAMExcEditor.py:3609 -#: AppEditors/FlatCAMGeoEditor.py:4343 AppEditors/FlatCAMGeoEditor.py:4357 -#: AppEditors/FlatCAMGrbEditor.py:1085 AppEditors/FlatCAMGrbEditor.py:1312 -#: AppEditors/FlatCAMGrbEditor.py:1497 AppEditors/FlatCAMGrbEditor.py:1766 -#: AppEditors/FlatCAMGrbEditor.py:4609 AppEditors/FlatCAMGrbEditor.py:4626 -#: AppGUI/MainGUI.py:2711 AppGUI/MainGUI.py:2723 -#: AppTools/ToolAlignObjects.py:393 AppTools/ToolAlignObjects.py:415 -#: App_Main.py:4677 App_Main.py:4831 -msgid "Done." -msgstr "Fatto." - -#: AppEditors/FlatCAMExcEditor.py:3984 -msgid "Done. Drill(s) deleted." -msgstr "Fatto. Foro(i) cancellato(i)." - -#: AppEditors/FlatCAMExcEditor.py:4057 AppEditors/FlatCAMExcEditor.py:4067 -#: AppEditors/FlatCAMGrbEditor.py:5057 -msgid "Click on the circular array Center position" -msgstr "Clicca sulla posizione centrale della matrice circolare" - -#: AppEditors/FlatCAMGeoEditor.py:84 -msgid "Buffer distance:" -msgstr "Riempimento distanza:" - -#: AppEditors/FlatCAMGeoEditor.py:85 -msgid "Buffer corner:" -msgstr "Riempimento angolo:" - -#: AppEditors/FlatCAMGeoEditor.py:87 -msgid "" -"There are 3 types of corners:\n" -" - 'Round': the corner is rounded for exterior buffer.\n" -" - 'Square': the corner is met in a sharp angle for exterior buffer.\n" -" - 'Beveled': the corner is a line that directly connects the features " -"meeting in the corner" -msgstr "" -"Ci sono 3 tipi di angoli:\n" -"- 'Arrotondato' : l'angolo è arrotondato per il buffer esterno.\n" -"- 'Squadrato': l'angolo fiene raggiunto con un angolo acuto.\n" -"- 'Smussato': l'angolo è una linea che connette direttamente le varie sezioni" - -#: AppEditors/FlatCAMGeoEditor.py:93 AppEditors/FlatCAMGrbEditor.py:2638 -msgid "Round" -msgstr "Arrotondato" - -#: AppEditors/FlatCAMGeoEditor.py:94 AppEditors/FlatCAMGrbEditor.py:2639 -#: AppGUI/ObjectUI.py:1149 AppGUI/ObjectUI.py:2004 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:225 -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:68 -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:175 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:68 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:177 -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:143 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:298 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:327 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:291 -#: AppTools/ToolExtractDrills.py:94 AppTools/ToolExtractDrills.py:227 -#: AppTools/ToolIsolation.py:545 AppTools/ToolNCC.py:583 -#: AppTools/ToolPaint.py:526 AppTools/ToolPunchGerber.py:105 -#: AppTools/ToolPunchGerber.py:255 AppTools/ToolQRCode.py:207 -msgid "Square" -msgstr "Squadrato" - -#: AppEditors/FlatCAMGeoEditor.py:95 AppEditors/FlatCAMGrbEditor.py:2640 -msgid "Beveled" -msgstr "Smussato" - -#: AppEditors/FlatCAMGeoEditor.py:102 -msgid "Buffer Interior" -msgstr "Buffer Interiore" - -#: AppEditors/FlatCAMGeoEditor.py:104 -msgid "Buffer Exterior" -msgstr "Buffer Esteriore" - -#: AppEditors/FlatCAMGeoEditor.py:110 -msgid "Full Buffer" -msgstr "Buffer completo" - -#: AppEditors/FlatCAMGeoEditor.py:131 AppEditors/FlatCAMGeoEditor.py:3016 -#: AppGUI/MainGUI.py:4301 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:191 -msgid "Buffer Tool" -msgstr "Utensile buffer" - -#: AppEditors/FlatCAMGeoEditor.py:143 AppEditors/FlatCAMGeoEditor.py:160 -#: AppEditors/FlatCAMGeoEditor.py:177 AppEditors/FlatCAMGeoEditor.py:3035 -#: AppEditors/FlatCAMGeoEditor.py:3063 AppEditors/FlatCAMGeoEditor.py:3091 -#: AppEditors/FlatCAMGrbEditor.py:5110 -msgid "Buffer distance value is missing or wrong format. Add it and retry." -msgstr "" -"Valore per la distanza buffer mancante o del formato errato. Aggiungilo e " -"riprova." - -#: AppEditors/FlatCAMGeoEditor.py:241 -msgid "Font" -msgstr "Font" - -#: AppEditors/FlatCAMGeoEditor.py:322 AppGUI/MainGUI.py:1452 -msgid "Text" -msgstr "Testo" - -#: AppEditors/FlatCAMGeoEditor.py:348 -msgid "Text Tool" -msgstr "Utensile testo" - -#: AppEditors/FlatCAMGeoEditor.py:404 AppGUI/MainGUI.py:502 -#: AppGUI/MainGUI.py:1199 AppGUI/ObjectUI.py:597 AppGUI/ObjectUI.py:1564 -#: AppObjects/FlatCAMExcellon.py:852 AppObjects/FlatCAMExcellon.py:1242 -#: AppObjects/FlatCAMGeometry.py:825 AppTools/ToolIsolation.py:313 -#: AppTools/ToolIsolation.py:1171 AppTools/ToolNCC.py:331 -#: AppTools/ToolNCC.py:797 AppTools/ToolPaint.py:313 AppTools/ToolPaint.py:766 -msgid "Tool" -msgstr "Strumenti" - -#: AppEditors/FlatCAMGeoEditor.py:438 -msgid "Tool dia" -msgstr "Diametro utensile" - -#: AppEditors/FlatCAMGeoEditor.py:440 -msgid "Diameter of the tool to be used in the operation." -msgstr "Diametro dell'utensile da usare per questa operazione." - -#: AppEditors/FlatCAMGeoEditor.py:486 -msgid "" -"Algorithm to paint the polygons:\n" -"- Standard: Fixed step inwards.\n" -"- Seed-based: Outwards from seed.\n" -"- Line-based: Parallel lines." -msgstr "" -"Algoritmo per la pittura:\n" -"- Standard: passo fisso verso l'interno.\n" -"- A base di semi: verso l'esterno dal seme.\n" -"- Basato su linee: linee parallele." - -#: AppEditors/FlatCAMGeoEditor.py:505 -msgid "Connect:" -msgstr "Connetti:" - -#: AppEditors/FlatCAMGeoEditor.py:515 -msgid "Contour:" -msgstr "Contorno:" - -#: AppEditors/FlatCAMGeoEditor.py:528 AppGUI/MainGUI.py:1456 -msgid "Paint" -msgstr "Disegno" - -#: AppEditors/FlatCAMGeoEditor.py:546 AppGUI/MainGUI.py:912 -#: AppGUI/MainGUI.py:1944 AppGUI/ObjectUI.py:2069 AppTools/ToolPaint.py:42 -#: AppTools/ToolPaint.py:737 -msgid "Paint Tool" -msgstr "Strumento disegno" - -#: AppEditors/FlatCAMGeoEditor.py:582 AppEditors/FlatCAMGeoEditor.py:1054 -#: AppEditors/FlatCAMGeoEditor.py:3023 AppEditors/FlatCAMGeoEditor.py:3051 -#: AppEditors/FlatCAMGeoEditor.py:3079 AppEditors/FlatCAMGeoEditor.py:4496 -#: AppEditors/FlatCAMGrbEditor.py:5761 -msgid "Cancelled. No shape selected." -msgstr "Cancellato. Nessuna forma selezionata." - -#: AppEditors/FlatCAMGeoEditor.py:595 AppEditors/FlatCAMGeoEditor.py:3041 -#: AppEditors/FlatCAMGeoEditor.py:3069 AppEditors/FlatCAMGeoEditor.py:3097 -#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:69 -#: AppTools/ToolProperties.py:117 AppTools/ToolProperties.py:162 -msgid "Tools" -msgstr "Strumento" - -#: AppEditors/FlatCAMGeoEditor.py:606 AppEditors/FlatCAMGeoEditor.py:990 -#: AppEditors/FlatCAMGrbEditor.py:5300 AppEditors/FlatCAMGrbEditor.py:5697 -#: AppGUI/MainGUI.py:935 AppGUI/MainGUI.py:1967 AppTools/ToolTransform.py:460 -msgid "Transform Tool" -msgstr "Strumento trasformazione" - -#: AppEditors/FlatCAMGeoEditor.py:607 AppEditors/FlatCAMGeoEditor.py:672 -#: AppEditors/FlatCAMGrbEditor.py:5301 AppEditors/FlatCAMGrbEditor.py:5366 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:45 -#: AppTools/ToolTransform.py:24 AppTools/ToolTransform.py:466 -msgid "Rotate" -msgstr "Ruota" - -#: AppEditors/FlatCAMGeoEditor.py:608 AppEditors/FlatCAMGrbEditor.py:5302 -#: AppTools/ToolTransform.py:25 -msgid "Skew/Shear" -msgstr "Inclina/Taglia" - -#: AppEditors/FlatCAMGeoEditor.py:609 AppEditors/FlatCAMGrbEditor.py:2687 -#: AppEditors/FlatCAMGrbEditor.py:5303 AppGUI/MainGUI.py:1057 -#: AppGUI/MainGUI.py:1499 AppGUI/MainGUI.py:2089 AppGUI/MainGUI.py:4513 -#: AppGUI/ObjectUI.py:125 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:95 -#: AppTools/ToolTransform.py:26 -msgid "Scale" -msgstr "Scala" - -#: AppEditors/FlatCAMGeoEditor.py:610 AppEditors/FlatCAMGrbEditor.py:5304 -#: AppTools/ToolTransform.py:27 -msgid "Mirror (Flip)" -msgstr "Specchia" - -#: AppEditors/FlatCAMGeoEditor.py:624 AppEditors/FlatCAMGrbEditor.py:5318 -#: AppGUI/MainGUI.py:844 AppGUI/MainGUI.py:1878 -msgid "Editor" -msgstr "Editor" - -#: AppEditors/FlatCAMGeoEditor.py:656 AppEditors/FlatCAMGrbEditor.py:5350 -msgid "Angle:" -msgstr "Angolo:" - -#: AppEditors/FlatCAMGeoEditor.py:658 AppEditors/FlatCAMGrbEditor.py:5352 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:55 -#: AppTools/ToolTransform.py:62 -msgid "" -"Angle for Rotation action, in degrees.\n" -"Float number between -360 and 359.\n" -"Positive numbers for CW motion.\n" -"Negative numbers for CCW motion." -msgstr "" -"Angolo per la rotazione, in gradi.\n" -"Numeri float da -360 e 359.\n" -"Numeri positivi per il senso orario.\n" -"Numeri negativi per il senso antiorario." - -#: AppEditors/FlatCAMGeoEditor.py:674 AppEditors/FlatCAMGrbEditor.py:5368 -msgid "" -"Rotate the selected shape(s).\n" -"The point of reference is the middle of\n" -"the bounding box for all selected shapes." -msgstr "" -"Ruota le forme selezionate.\n" -"Il punto di riferimento è al centro del rettangolo\n" -"di selezione per tutte le forme selezionate." - -#: AppEditors/FlatCAMGeoEditor.py:697 AppEditors/FlatCAMGrbEditor.py:5391 -msgid "Angle X:" -msgstr "Angolo X:" - -#: AppEditors/FlatCAMGeoEditor.py:699 AppEditors/FlatCAMGeoEditor.py:719 -#: AppEditors/FlatCAMGrbEditor.py:5393 AppEditors/FlatCAMGrbEditor.py:5413 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:74 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:88 -#: AppTools/ToolCalibration.py:505 AppTools/ToolCalibration.py:518 -msgid "" -"Angle for Skew action, in degrees.\n" -"Float number between -360 and 359." -msgstr "" -"Angolo per l'inclinazione, in gradi.\n" -"Numeri float tra -360 e 359." - -#: AppEditors/FlatCAMGeoEditor.py:710 AppEditors/FlatCAMGrbEditor.py:5404 -#: AppTools/ToolTransform.py:467 -msgid "Skew X" -msgstr "Inclinazione X" - -#: AppEditors/FlatCAMGeoEditor.py:712 AppEditors/FlatCAMGeoEditor.py:732 -#: AppEditors/FlatCAMGrbEditor.py:5406 AppEditors/FlatCAMGrbEditor.py:5426 -msgid "" -"Skew/shear the selected shape(s).\n" -"The point of reference is the middle of\n" -"the bounding box for all selected shapes." -msgstr "" -"Inclina le forme selezionate.\n" -"Il punto di riferimento è il centro del rettangolo\n" -"che contiene tutte le forme selezionate." - -#: AppEditors/FlatCAMGeoEditor.py:717 AppEditors/FlatCAMGrbEditor.py:5411 -msgid "Angle Y:" -msgstr "Angolo Y:" - -#: AppEditors/FlatCAMGeoEditor.py:730 AppEditors/FlatCAMGrbEditor.py:5424 -#: AppTools/ToolTransform.py:468 -msgid "Skew Y" -msgstr "Inclina Y" - -#: AppEditors/FlatCAMGeoEditor.py:758 AppEditors/FlatCAMGrbEditor.py:5452 -msgid "Factor X:" -msgstr "Fattore X:" - -#: AppEditors/FlatCAMGeoEditor.py:760 AppEditors/FlatCAMGrbEditor.py:5454 -#: AppTools/ToolCalibration.py:469 -msgid "Factor for Scale action over X axis." -msgstr "Fattore per l'azione scala sull'asse X." - -#: AppEditors/FlatCAMGeoEditor.py:770 AppEditors/FlatCAMGrbEditor.py:5464 -#: AppTools/ToolTransform.py:469 -msgid "Scale X" -msgstr "Scala X" - -#: AppEditors/FlatCAMGeoEditor.py:772 AppEditors/FlatCAMGeoEditor.py:791 -#: AppEditors/FlatCAMGrbEditor.py:5466 AppEditors/FlatCAMGrbEditor.py:5485 -msgid "" -"Scale the selected shape(s).\n" -"The point of reference depends on \n" -"the Scale reference checkbox state." -msgstr "" -"Ridimensiona le forme selezionate.\n" -"Il punto di riferimento dipende dallo\n" -"stato del checkbox Riferimento scala." - -#: AppEditors/FlatCAMGeoEditor.py:777 AppEditors/FlatCAMGrbEditor.py:5471 -msgid "Factor Y:" -msgstr "Fattore Y:" - -#: AppEditors/FlatCAMGeoEditor.py:779 AppEditors/FlatCAMGrbEditor.py:5473 -#: AppTools/ToolCalibration.py:481 -msgid "Factor for Scale action over Y axis." -msgstr "Fattore per l'azione scala sull'asse Y." - -#: AppEditors/FlatCAMGeoEditor.py:789 AppEditors/FlatCAMGrbEditor.py:5483 -#: AppTools/ToolTransform.py:470 -msgid "Scale Y" -msgstr "Scala Y" - -#: AppEditors/FlatCAMGeoEditor.py:798 AppEditors/FlatCAMGrbEditor.py:5492 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:124 -#: AppTools/ToolTransform.py:189 -msgid "Link" -msgstr "Collegamento" - -#: AppEditors/FlatCAMGeoEditor.py:800 AppEditors/FlatCAMGrbEditor.py:5494 -msgid "" -"Scale the selected shape(s)\n" -"using the Scale Factor X for both axis." -msgstr "" -"Scale the selected shape(s).\n" -"usando il fattore di scala X per entrambi gli assi." - -#: AppEditors/FlatCAMGeoEditor.py:806 AppEditors/FlatCAMGrbEditor.py:5500 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:132 -#: AppTools/ToolTransform.py:196 -msgid "Scale Reference" -msgstr "Riferimento scala" - -#: AppEditors/FlatCAMGeoEditor.py:808 AppEditors/FlatCAMGrbEditor.py:5502 -msgid "" -"Scale the selected shape(s)\n" -"using the origin reference when checked,\n" -"and the center of the biggest bounding box\n" -"of the selected shapes when unchecked." -msgstr "" -"Ridimensiona le forme selezionate\n" -"utilizzando il riferimento di origine quando selezionato,\n" -"e il centro del più grande rettangolo di selezione\n" -"delle forme selezionate se non selezionata." - -#: AppEditors/FlatCAMGeoEditor.py:836 AppEditors/FlatCAMGrbEditor.py:5531 -msgid "Value X:" -msgstr "Valore X:" - -#: AppEditors/FlatCAMGeoEditor.py:838 AppEditors/FlatCAMGrbEditor.py:5533 -msgid "Value for Offset action on X axis." -msgstr "Valore per l'azione Offset sull'asse X." - -#: AppEditors/FlatCAMGeoEditor.py:848 AppEditors/FlatCAMGrbEditor.py:5543 -#: AppTools/ToolTransform.py:473 -msgid "Offset X" -msgstr "Offset X" - -#: AppEditors/FlatCAMGeoEditor.py:850 AppEditors/FlatCAMGeoEditor.py:870 -#: AppEditors/FlatCAMGrbEditor.py:5545 AppEditors/FlatCAMGrbEditor.py:5565 -msgid "" -"Offset the selected shape(s).\n" -"The point of reference is the middle of\n" -"the bounding box for all selected shapes.\n" -msgstr "" -"Offset delle forme selezionate.\n" -"Il punto di riferimento è il centro del\n" -"rettangolo di selezione per tutte le forme selezionate.\n" - -#: AppEditors/FlatCAMGeoEditor.py:856 AppEditors/FlatCAMGrbEditor.py:5551 -msgid "Value Y:" -msgstr "Valore Y:" - -#: AppEditors/FlatCAMGeoEditor.py:858 AppEditors/FlatCAMGrbEditor.py:5553 -msgid "Value for Offset action on Y axis." -msgstr "Valore per l'azione Offset sull'asse Y." - -#: AppEditors/FlatCAMGeoEditor.py:868 AppEditors/FlatCAMGrbEditor.py:5563 -#: AppTools/ToolTransform.py:474 -msgid "Offset Y" -msgstr "Offset X" - -#: AppEditors/FlatCAMGeoEditor.py:899 AppEditors/FlatCAMGrbEditor.py:5594 -#: AppTools/ToolTransform.py:475 -msgid "Flip on X" -msgstr "Capovolgi in X" - -#: AppEditors/FlatCAMGeoEditor.py:901 AppEditors/FlatCAMGeoEditor.py:908 -#: AppEditors/FlatCAMGrbEditor.py:5596 AppEditors/FlatCAMGrbEditor.py:5603 -msgid "" -"Flip the selected shape(s) over the X axis.\n" -"Does not create a new shape." -msgstr "" -"Capovolgi le forme selezionate sull'asse X.\n" -"Non crea una nuova forma." - -#: AppEditors/FlatCAMGeoEditor.py:906 AppEditors/FlatCAMGrbEditor.py:5601 -#: AppTools/ToolTransform.py:476 -msgid "Flip on Y" -msgstr "Capovolgi in Y" - -#: AppEditors/FlatCAMGeoEditor.py:914 AppEditors/FlatCAMGrbEditor.py:5609 -msgid "Ref Pt" -msgstr "Punto di riferimento" - -#: AppEditors/FlatCAMGeoEditor.py:916 AppEditors/FlatCAMGrbEditor.py:5611 -msgid "" -"Flip the selected shape(s)\n" -"around the point in Point Entry Field.\n" -"\n" -"The point coordinates can be captured by\n" -"left click on canvas together with pressing\n" -"SHIFT key. \n" -"Then click Add button to insert coordinates.\n" -"Or enter the coords in format (x, y) in the\n" -"Point Entry field and click Flip on X(Y)" -msgstr "" -"Capovolgi le forme selezionate\n" -"attorno al punto nel campo di inserimento punti.\n" -"\n" -"Le coordinate del punto possono essere acquisite da\n" -"un clic sinistro sui canvas assieme\n" -"al tasto SHIFT.\n" -"Quindi fare clic sul pulsante Aggiungi per inserire le coordinate.\n" -"Oppure inserisci le coordinate nel formato (x, y) nel\n" -"campo Inserisci Punto e fai clic su Capovolgi su X(Y)" - -#: AppEditors/FlatCAMGeoEditor.py:928 AppEditors/FlatCAMGrbEditor.py:5623 -msgid "Point:" -msgstr "Punto:" - -#: AppEditors/FlatCAMGeoEditor.py:930 AppEditors/FlatCAMGrbEditor.py:5625 -#: AppTools/ToolTransform.py:299 -msgid "" -"Coordinates in format (x, y) used as reference for mirroring.\n" -"The 'x' in (x, y) will be used when using Flip on X and\n" -"the 'y' in (x, y) will be used when using Flip on Y." -msgstr "" -"Coordinate in formato (x, y) utilizzate come riferimento per il mirroring.\n" -"La 'x' in (x, y) verrà utilizzata quando si utilizza Capovolgi su X e\n" -"la 'y' in (x, y) verrà usata quando si usa Capovolgi su Y." - -#: AppEditors/FlatCAMGeoEditor.py:938 AppEditors/FlatCAMGrbEditor.py:2590 -#: AppEditors/FlatCAMGrbEditor.py:5635 AppGUI/ObjectUI.py:1494 -#: AppTools/ToolDblSided.py:192 AppTools/ToolDblSided.py:425 -#: AppTools/ToolIsolation.py:276 AppTools/ToolIsolation.py:610 -#: AppTools/ToolNCC.py:294 AppTools/ToolNCC.py:631 AppTools/ToolPaint.py:276 -#: AppTools/ToolPaint.py:675 AppTools/ToolSolderPaste.py:127 -#: AppTools/ToolSolderPaste.py:605 AppTools/ToolTransform.py:478 -#: App_Main.py:5670 -msgid "Add" -msgstr "Aggiungi" - -#: AppEditors/FlatCAMGeoEditor.py:940 AppEditors/FlatCAMGrbEditor.py:5637 -#: AppTools/ToolTransform.py:309 -msgid "" -"The point coordinates can be captured by\n" -"left click on canvas together with pressing\n" -"SHIFT key. Then click Add button to insert." -msgstr "" -"Le coordinate del punto possono essere acquisite da\n" -"un click sinistro sul canvas premendo anche il tasto\n" -"SHIFT. Quindi fare clic sul pulsante Aggiungi per inserire." - -#: AppEditors/FlatCAMGeoEditor.py:1303 AppEditors/FlatCAMGrbEditor.py:5945 -msgid "No shape selected. Please Select a shape to rotate!" -msgstr "Nessuna forma selezionata. Seleziona una forma da ruotare!" - -#: AppEditors/FlatCAMGeoEditor.py:1306 AppEditors/FlatCAMGrbEditor.py:5948 -#: AppTools/ToolTransform.py:679 -msgid "Appying Rotate" -msgstr "Applico Rotazione" - -#: AppEditors/FlatCAMGeoEditor.py:1332 AppEditors/FlatCAMGrbEditor.py:5980 -msgid "Done. Rotate completed." -msgstr "Fatto. Rotazione completata." - -#: AppEditors/FlatCAMGeoEditor.py:1334 -msgid "Rotation action was not executed" -msgstr "Azione rotazione non effettuata" - -#: AppEditors/FlatCAMGeoEditor.py:1353 AppEditors/FlatCAMGrbEditor.py:5999 -msgid "No shape selected. Please Select a shape to flip!" -msgstr "Nessuna forma selezionata. Seleziona una forma da capovolgere!" - -#: AppEditors/FlatCAMGeoEditor.py:1356 AppEditors/FlatCAMGrbEditor.py:6002 -#: AppTools/ToolTransform.py:728 -msgid "Applying Flip" -msgstr "Applico il capovolgimento" - -#: AppEditors/FlatCAMGeoEditor.py:1385 AppEditors/FlatCAMGrbEditor.py:6040 -#: AppTools/ToolTransform.py:769 -msgid "Flip on the Y axis done" -msgstr "Capovolgimento sull'asse Y effettuato" - -#: AppEditors/FlatCAMGeoEditor.py:1389 AppEditors/FlatCAMGrbEditor.py:6049 -#: AppTools/ToolTransform.py:778 -msgid "Flip on the X axis done" -msgstr "Capovolgimento sull'asse X effettuato" - -#: AppEditors/FlatCAMGeoEditor.py:1397 -msgid "Flip action was not executed" -msgstr "Azione capovolgimento non effettuata" - -#: AppEditors/FlatCAMGeoEditor.py:1415 AppEditors/FlatCAMGrbEditor.py:6069 -msgid "No shape selected. Please Select a shape to shear/skew!" -msgstr "Nessuna forma selezionata. Seleziona una forma da inclinare!" - -#: AppEditors/FlatCAMGeoEditor.py:1418 AppEditors/FlatCAMGrbEditor.py:6072 -#: AppTools/ToolTransform.py:801 -msgid "Applying Skew" -msgstr "Applico inclinazione" - -#: AppEditors/FlatCAMGeoEditor.py:1441 AppEditors/FlatCAMGrbEditor.py:6106 -msgid "Skew on the X axis done" -msgstr "Inclinazione sull'asse X effettuata" - -#: AppEditors/FlatCAMGeoEditor.py:1443 AppEditors/FlatCAMGrbEditor.py:6108 -msgid "Skew on the Y axis done" -msgstr "Inclinazione sull'asse Y effettuata" - -#: AppEditors/FlatCAMGeoEditor.py:1446 -msgid "Skew action was not executed" -msgstr "Azione inclinazione non effettuata" - -#: AppEditors/FlatCAMGeoEditor.py:1468 AppEditors/FlatCAMGrbEditor.py:6130 -msgid "No shape selected. Please Select a shape to scale!" -msgstr "Nessuna forma selezionata. Seleziona una forma da riscalare!" - -#: AppEditors/FlatCAMGeoEditor.py:1471 AppEditors/FlatCAMGrbEditor.py:6133 -#: AppTools/ToolTransform.py:847 -msgid "Applying Scale" -msgstr "Applicare scala" - -#: AppEditors/FlatCAMGeoEditor.py:1503 AppEditors/FlatCAMGrbEditor.py:6170 -msgid "Scale on the X axis done" -msgstr "Riscalatura su asse X effettuata" - -#: AppEditors/FlatCAMGeoEditor.py:1505 AppEditors/FlatCAMGrbEditor.py:6172 -msgid "Scale on the Y axis done" -msgstr "Riscalatura su asse Y effettuata" - -#: AppEditors/FlatCAMGeoEditor.py:1507 -msgid "Scale action was not executed" -msgstr "Azione riscalatura non effettuata" - -#: AppEditors/FlatCAMGeoEditor.py:1522 AppEditors/FlatCAMGrbEditor.py:6189 -msgid "No shape selected. Please Select a shape to offset!" -msgstr "Nessuna forma selezionata. Seleziona una forma a cui applicare offset!" - -#: AppEditors/FlatCAMGeoEditor.py:1525 AppEditors/FlatCAMGrbEditor.py:6192 -#: AppTools/ToolTransform.py:897 -msgid "Applying Offset" -msgstr "Applicazione offset" - -#: AppEditors/FlatCAMGeoEditor.py:1535 AppEditors/FlatCAMGrbEditor.py:6213 -msgid "Offset on the X axis done" -msgstr "Offset sull'asse X applicato" - -#: AppEditors/FlatCAMGeoEditor.py:1537 AppEditors/FlatCAMGrbEditor.py:6215 -msgid "Offset on the Y axis done" -msgstr "Offset sull'asse Y applicato" - -#: AppEditors/FlatCAMGeoEditor.py:1540 -msgid "Offset action was not executed" -msgstr "Offset non applicato" - -#: AppEditors/FlatCAMGeoEditor.py:1544 AppEditors/FlatCAMGrbEditor.py:6222 -msgid "Rotate ..." -msgstr "Ruota ..." - -#: AppEditors/FlatCAMGeoEditor.py:1545 AppEditors/FlatCAMGeoEditor.py:1600 -#: AppEditors/FlatCAMGeoEditor.py:1617 AppEditors/FlatCAMGrbEditor.py:6223 -#: AppEditors/FlatCAMGrbEditor.py:6272 AppEditors/FlatCAMGrbEditor.py:6287 -msgid "Enter an Angle Value (degrees)" -msgstr "Inserire un angolo (in gradi)" - -#: AppEditors/FlatCAMGeoEditor.py:1554 AppEditors/FlatCAMGrbEditor.py:6231 -msgid "Geometry shape rotate done" -msgstr "Forme geometriche ruotate" - -#: AppEditors/FlatCAMGeoEditor.py:1558 AppEditors/FlatCAMGrbEditor.py:6234 -msgid "Geometry shape rotate cancelled" -msgstr "Forme geometriche NON ruotate" - -#: AppEditors/FlatCAMGeoEditor.py:1563 AppEditors/FlatCAMGrbEditor.py:6239 -msgid "Offset on X axis ..." -msgstr "Offset su asse X ..." - -#: AppEditors/FlatCAMGeoEditor.py:1564 AppEditors/FlatCAMGeoEditor.py:1583 -#: AppEditors/FlatCAMGrbEditor.py:6240 AppEditors/FlatCAMGrbEditor.py:6257 -msgid "Enter a distance Value" -msgstr "Valore di distanza" - -#: AppEditors/FlatCAMGeoEditor.py:1573 AppEditors/FlatCAMGrbEditor.py:6248 -msgid "Geometry shape offset on X axis done" -msgstr "Offset su forme geometria su asse X applicato" - -#: AppEditors/FlatCAMGeoEditor.py:1577 AppEditors/FlatCAMGrbEditor.py:6251 -msgid "Geometry shape offset X cancelled" -msgstr "Offset su forme geometria su asse X annullato" - -#: AppEditors/FlatCAMGeoEditor.py:1582 AppEditors/FlatCAMGrbEditor.py:6256 -msgid "Offset on Y axis ..." -msgstr "Offset su asse Y ..." - -#: AppEditors/FlatCAMGeoEditor.py:1592 AppEditors/FlatCAMGrbEditor.py:6265 -msgid "Geometry shape offset on Y axis done" -msgstr "Offset su forme geometria su asse Y applicato" - -#: AppEditors/FlatCAMGeoEditor.py:1596 -msgid "Geometry shape offset on Y axis canceled" -msgstr "Offset su forme geometria su asse Y annullato" - -#: AppEditors/FlatCAMGeoEditor.py:1599 AppEditors/FlatCAMGrbEditor.py:6271 -msgid "Skew on X axis ..." -msgstr "Inclinazione su asse Y ..." - -#: AppEditors/FlatCAMGeoEditor.py:1609 AppEditors/FlatCAMGrbEditor.py:6280 -msgid "Geometry shape skew on X axis done" -msgstr "Inclinazione su asse X effettuato" - -#: AppEditors/FlatCAMGeoEditor.py:1613 -msgid "Geometry shape skew on X axis canceled" -msgstr "Inclinazione su asse X annullata" - -#: AppEditors/FlatCAMGeoEditor.py:1616 AppEditors/FlatCAMGrbEditor.py:6286 -msgid "Skew on Y axis ..." -msgstr "Inclinazione su asse Y ..." - -#: AppEditors/FlatCAMGeoEditor.py:1626 AppEditors/FlatCAMGrbEditor.py:6295 -msgid "Geometry shape skew on Y axis done" -msgstr "Inclinazione su asse Y effettuato" - -#: AppEditors/FlatCAMGeoEditor.py:1630 -msgid "Geometry shape skew on Y axis canceled" -msgstr "Inclinazione su asse Y annullata" - -#: AppEditors/FlatCAMGeoEditor.py:2007 AppEditors/FlatCAMGeoEditor.py:2078 -#: AppEditors/FlatCAMGrbEditor.py:1444 AppEditors/FlatCAMGrbEditor.py:1522 -msgid "Click on Center point ..." -msgstr "Clicca sul punto centrale ..." - -#: AppEditors/FlatCAMGeoEditor.py:2020 AppEditors/FlatCAMGrbEditor.py:1454 -msgid "Click on Perimeter point to complete ..." -msgstr "Fare clic sul punto perimetrale per completare ..." - -#: AppEditors/FlatCAMGeoEditor.py:2052 -msgid "Done. Adding Circle completed." -msgstr "Fatto. Aggiungi cerchio completato." - -#: AppEditors/FlatCAMGeoEditor.py:2106 AppEditors/FlatCAMGrbEditor.py:1555 -msgid "Click on Start point ..." -msgstr "Fare clic sul punto iniziale ..." - -#: AppEditors/FlatCAMGeoEditor.py:2108 AppEditors/FlatCAMGrbEditor.py:1557 -msgid "Click on Point3 ..." -msgstr "Clicca sul punto 3 ..." - -#: AppEditors/FlatCAMGeoEditor.py:2110 AppEditors/FlatCAMGrbEditor.py:1559 -msgid "Click on Stop point ..." -msgstr "Clicca sul punto di stop ..." - -#: AppEditors/FlatCAMGeoEditor.py:2115 AppEditors/FlatCAMGrbEditor.py:1564 -msgid "Click on Stop point to complete ..." -msgstr "Clicca sul punto di stop per completare ..." - -#: AppEditors/FlatCAMGeoEditor.py:2117 AppEditors/FlatCAMGrbEditor.py:1566 -msgid "Click on Point2 to complete ..." -msgstr "Clicca sul punto 2 per completare ..." - -#: AppEditors/FlatCAMGeoEditor.py:2119 AppEditors/FlatCAMGrbEditor.py:1568 -msgid "Click on Center point to complete ..." -msgstr "Clicca sul punto centrale per completare ..." - -#: AppEditors/FlatCAMGeoEditor.py:2131 -#, python-format -msgid "Direction: %s" -msgstr "Direzione: %s" - -#: AppEditors/FlatCAMGeoEditor.py:2145 AppEditors/FlatCAMGrbEditor.py:1594 -msgid "Mode: Start -> Stop -> Center. Click on Start point ..." -msgstr "Modo: Start -> Stop -> Centro. Clicca sul punto di partenza ..." - -#: AppEditors/FlatCAMGeoEditor.py:2148 AppEditors/FlatCAMGrbEditor.py:1597 -msgid "Mode: Point1 -> Point3 -> Point2. Click on Point1 ..." -msgstr "Modo: Punto1 -> Punto3 -> Punto2. Clicca sul punto1 ..." - -#: AppEditors/FlatCAMGeoEditor.py:2151 AppEditors/FlatCAMGrbEditor.py:1600 -msgid "Mode: Center -> Start -> Stop. Click on Center point ..." -msgstr "Modo: Centro -> Start -> Stop. Clicca sul punto centrale ..." - -#: AppEditors/FlatCAMGeoEditor.py:2292 -msgid "Done. Arc completed." -msgstr "Fatto. Arco completato." - -#: AppEditors/FlatCAMGeoEditor.py:2323 AppEditors/FlatCAMGeoEditor.py:2396 -msgid "Click on 1st corner ..." -msgstr "Clicca sul primo angolo ..." - -#: AppEditors/FlatCAMGeoEditor.py:2335 -msgid "Click on opposite corner to complete ..." -msgstr "Clicca sull'angolo opposto per completare ..." - -#: AppEditors/FlatCAMGeoEditor.py:2365 -msgid "Done. Rectangle completed." -msgstr "Fatto. Rettangolo completato." - -#: AppEditors/FlatCAMGeoEditor.py:2409 AppTools/ToolIsolation.py:2527 -#: AppTools/ToolNCC.py:1754 AppTools/ToolPaint.py:1647 Common.py:322 -msgid "Click on next Point or click right mouse button to complete ..." -msgstr "" -"Cliccare sul punto successivo o fare clic con il tasto destro del mouse per " -"completare ..." - -#: AppEditors/FlatCAMGeoEditor.py:2440 -msgid "Done. Polygon completed." -msgstr "Fatto. Poligono completato." - -#: AppEditors/FlatCAMGeoEditor.py:2454 AppEditors/FlatCAMGeoEditor.py:2519 -#: AppEditors/FlatCAMGrbEditor.py:1102 AppEditors/FlatCAMGrbEditor.py:1322 -msgid "Backtracked one point ..." -msgstr "Indietro di un punto ..." - -#: AppEditors/FlatCAMGeoEditor.py:2497 -msgid "Done. Path completed." -msgstr "Fatto. Percorso completato." - -#: AppEditors/FlatCAMGeoEditor.py:2656 -msgid "No shape selected. Select a shape to explode" -msgstr "Nessuna forma selezionata. Seleziona una forma da esplodere" - -#: AppEditors/FlatCAMGeoEditor.py:2689 -msgid "Done. Polygons exploded into lines." -msgstr "Fatto. Poligono esploso in linee." - -#: AppEditors/FlatCAMGeoEditor.py:2721 -msgid "MOVE: No shape selected. Select a shape to move" -msgstr "SPOSTA: nessuna forma selezionata. Seleziona una forma da spostare" - -#: AppEditors/FlatCAMGeoEditor.py:2724 AppEditors/FlatCAMGeoEditor.py:2744 -msgid " MOVE: Click on reference point ..." -msgstr " SPOSTA: fare clic sul punto di riferimento ..." - -#: AppEditors/FlatCAMGeoEditor.py:2729 -msgid " Click on destination point ..." -msgstr " Clicca sul punto di riferimento ..." - -#: AppEditors/FlatCAMGeoEditor.py:2769 -msgid "Done. Geometry(s) Move completed." -msgstr "Fatto. Spostamento geometria(e) completato." - -#: AppEditors/FlatCAMGeoEditor.py:2902 -msgid "Done. Geometry(s) Copy completed." -msgstr "Fatto. Copia geometria(e) completata." - -#: AppEditors/FlatCAMGeoEditor.py:2933 AppEditors/FlatCAMGrbEditor.py:897 -msgid "Click on 1st point ..." -msgstr "Clicca sul primo punto ..." - -#: AppEditors/FlatCAMGeoEditor.py:2957 -msgid "" -"Font not supported. Only Regular, Bold, Italic and BoldItalic are supported. " -"Error" -msgstr "" -"Font (carattere) non supportato. Sono supportati solo Regular, Bold, Italic " -"e BoldItalic. Errore" - -#: AppEditors/FlatCAMGeoEditor.py:2965 -msgid "No text to add." -msgstr "Nessun testo da aggiungere." - -#: AppEditors/FlatCAMGeoEditor.py:2975 -msgid " Done. Adding Text completed." -msgstr " Fatto. Testo aggiunto." - -#: AppEditors/FlatCAMGeoEditor.py:3012 -msgid "Create buffer geometry ..." -msgstr "Crea geometria buffer ..." - -#: AppEditors/FlatCAMGeoEditor.py:3047 AppEditors/FlatCAMGrbEditor.py:5154 -msgid "Done. Buffer Tool completed." -msgstr "Fatto. Strumento buffer completato." - -#: AppEditors/FlatCAMGeoEditor.py:3075 -msgid "Done. Buffer Int Tool completed." -msgstr "Fatto. Strumento buffer interno completato." - -#: AppEditors/FlatCAMGeoEditor.py:3103 -msgid "Done. Buffer Ext Tool completed." -msgstr "Fatto. Strumento buffer esterno completato." - -#: AppEditors/FlatCAMGeoEditor.py:3152 AppEditors/FlatCAMGrbEditor.py:2160 -msgid "Select a shape to act as deletion area ..." -msgstr "Seleziona una forma da utilizzare come area di eliminazione ..." - -#: AppEditors/FlatCAMGeoEditor.py:3154 AppEditors/FlatCAMGeoEditor.py:3180 -#: AppEditors/FlatCAMGeoEditor.py:3186 AppEditors/FlatCAMGrbEditor.py:2162 -msgid "Click to pick-up the erase shape..." -msgstr "Fai clic per selezionare la forma di cancellazione ..." - -#: AppEditors/FlatCAMGeoEditor.py:3190 AppEditors/FlatCAMGrbEditor.py:2221 -msgid "Click to erase ..." -msgstr "Clicca per cancellare ..." - -#: AppEditors/FlatCAMGeoEditor.py:3219 AppEditors/FlatCAMGrbEditor.py:2254 -msgid "Done. Eraser tool action completed." -msgstr "Fatto. Azione dello strumento gomma completata." - -#: AppEditors/FlatCAMGeoEditor.py:3269 -msgid "Create Paint geometry ..." -msgstr "Crea geometria di disegno ..." - -#: AppEditors/FlatCAMGeoEditor.py:3282 AppEditors/FlatCAMGrbEditor.py:2417 -msgid "Shape transformations ..." -msgstr "Trasformazioni di forma ..." - -#: AppEditors/FlatCAMGeoEditor.py:3338 -#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:27 -msgid "Geometry Editor" -msgstr "Editor Geometrie" - -#: AppEditors/FlatCAMGeoEditor.py:3344 AppEditors/FlatCAMGrbEditor.py:2495 -#: AppEditors/FlatCAMGrbEditor.py:3952 AppGUI/ObjectUI.py:282 -#: AppGUI/ObjectUI.py:1394 AppGUI/ObjectUI.py:2256 AppTools/ToolCutOut.py:95 -msgid "Type" -msgstr "Tipo" - -#: AppEditors/FlatCAMGeoEditor.py:3344 AppGUI/ObjectUI.py:221 -#: AppGUI/ObjectUI.py:521 AppGUI/ObjectUI.py:1330 AppGUI/ObjectUI.py:2165 -#: AppGUI/ObjectUI.py:2469 AppGUI/ObjectUI.py:2536 -#: AppTools/ToolCalibration.py:234 AppTools/ToolFiducials.py:70 -msgid "Name" -msgstr "Nome" - -#: AppEditors/FlatCAMGeoEditor.py:3596 -msgid "Ring" -msgstr "Anello" - -#: AppEditors/FlatCAMGeoEditor.py:3598 -msgid "Line" -msgstr "Linea" - -#: AppEditors/FlatCAMGeoEditor.py:3600 AppGUI/MainGUI.py:1446 -#: AppGUI/ObjectUI.py:1150 AppGUI/ObjectUI.py:2005 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:226 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:299 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:328 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:292 -#: AppTools/ToolIsolation.py:546 AppTools/ToolNCC.py:584 -#: AppTools/ToolPaint.py:527 -msgid "Polygon" -msgstr "Poligono" - -#: AppEditors/FlatCAMGeoEditor.py:3602 -msgid "Multi-Line" -msgstr "Multi-Linea" - -#: AppEditors/FlatCAMGeoEditor.py:3604 -msgid "Multi-Polygon" -msgstr "Multi-Poligono" - -#: AppEditors/FlatCAMGeoEditor.py:3611 -msgid "Geo Elem" -msgstr "Elemento Geom" - -#: AppEditors/FlatCAMGeoEditor.py:4064 -msgid "Editing MultiGeo Geometry, tool" -msgstr "Modifica di Geometria MultiGeo, strumento" - -#: AppEditors/FlatCAMGeoEditor.py:4066 -msgid "with diameter" -msgstr "con diametro" - -#: AppEditors/FlatCAMGeoEditor.py:4138 -#, fuzzy -#| msgid "All plots enabled." -msgid "Grid Snap enabled." -msgstr "Tutte le tracce sono abilitate." - -#: AppEditors/FlatCAMGeoEditor.py:4142 -#, fuzzy -#| msgid "Grid X snapping distance" -msgid "Grid Snap disabled." -msgstr "Distanza aggancio gliglia X" - -#: AppEditors/FlatCAMGeoEditor.py:4503 AppGUI/MainGUI.py:3046 -#: AppGUI/MainGUI.py:3092 AppGUI/MainGUI.py:3110 AppGUI/MainGUI.py:3254 -#: AppGUI/MainGUI.py:3293 AppGUI/MainGUI.py:3305 AppGUI/MainGUI.py:3322 -msgid "Click on target point." -msgstr "Fai clic sul punto target." - -#: AppEditors/FlatCAMGeoEditor.py:4819 AppEditors/FlatCAMGeoEditor.py:4854 -msgid "A selection of at least 2 geo items is required to do Intersection." -msgstr "" -"Per effettuare l'intersezione è necessaria una selezione di almeno 2 " -"elementi geometrici." - -#: AppEditors/FlatCAMGeoEditor.py:4940 AppEditors/FlatCAMGeoEditor.py:5044 -msgid "" -"Negative buffer value is not accepted. Use Buffer interior to generate an " -"'inside' shape" -msgstr "" -"Valore di buffer negativi non accettati. Usa l'interno del buffer per " -"generare una forma \"interna\"" - -#: AppEditors/FlatCAMGeoEditor.py:4950 AppEditors/FlatCAMGeoEditor.py:5003 -#: AppEditors/FlatCAMGeoEditor.py:5053 -msgid "Nothing selected for buffering." -msgstr "Niente di selezionato per il buffering." - -#: AppEditors/FlatCAMGeoEditor.py:4955 AppEditors/FlatCAMGeoEditor.py:5007 -#: AppEditors/FlatCAMGeoEditor.py:5058 -msgid "Invalid distance for buffering." -msgstr "Distanza non valida per il buffering." - -#: AppEditors/FlatCAMGeoEditor.py:4979 AppEditors/FlatCAMGeoEditor.py:5078 -msgid "Failed, the result is empty. Choose a different buffer value." -msgstr "Fallito, il risultato è vuoto. Scegli un valore di buffer diverso." - -#: AppEditors/FlatCAMGeoEditor.py:4990 -msgid "Full buffer geometry created." -msgstr "Geometria buffer completa creata." - -#: AppEditors/FlatCAMGeoEditor.py:4996 -msgid "Negative buffer value is not accepted." -msgstr "Il valore negativo del buffer non è accettato." - -#: AppEditors/FlatCAMGeoEditor.py:5027 -msgid "Failed, the result is empty. Choose a smaller buffer value." -msgstr "Fallito, il risultato è vuoto. Scegli un valore di buffer più piccolo." - -#: AppEditors/FlatCAMGeoEditor.py:5037 -msgid "Interior buffer geometry created." -msgstr "Geometria del buffer interno creata." - -#: AppEditors/FlatCAMGeoEditor.py:5088 -msgid "Exterior buffer geometry created." -msgstr "Geometria del buffer esterno creata." - -#: AppEditors/FlatCAMGeoEditor.py:5094 -#, python-format -msgid "Could not do Paint. Overlap value has to be less than 100%%." -msgstr "" -"Impossibile fare Paint. Il valore di sovrapposizione deve essere inferiore a " -"100%%." - -#: AppEditors/FlatCAMGeoEditor.py:5101 -msgid "Nothing selected for painting." -msgstr "Nulla di selezionato per Paint." - -#: AppEditors/FlatCAMGeoEditor.py:5107 -msgid "Invalid value for" -msgstr "Valore non valido per" - -#: AppEditors/FlatCAMGeoEditor.py:5166 -msgid "" -"Could not do Paint. Try a different combination of parameters. Or a " -"different method of Paint" -msgstr "" -"Impossibile fare Paint. Prova una diversa combinazione di parametri. O un " -"metodo diverso di Paint" - -#: AppEditors/FlatCAMGeoEditor.py:5177 -msgid "Paint done." -msgstr "Paint fatto." - -#: AppEditors/FlatCAMGrbEditor.py:211 -msgid "To add an Pad first select a aperture in Aperture Table" -msgstr "" -"Per aggiungere un pad, seleziona prima un'apertura nella tabella Aperture" - -#: AppEditors/FlatCAMGrbEditor.py:218 AppEditors/FlatCAMGrbEditor.py:418 -msgid "Aperture size is zero. It needs to be greater than zero." -msgstr "La dimensione dell'apertura è zero. Deve essere maggiore di zero." - -#: AppEditors/FlatCAMGrbEditor.py:371 AppEditors/FlatCAMGrbEditor.py:684 -msgid "" -"Incompatible aperture type. Select an aperture with type 'C', 'R' or 'O'." -msgstr "" -"Tipo di apertura incompatibile. Seleziona un'apertura con tipo 'C', 'R' o " -"'O'." - -#: AppEditors/FlatCAMGrbEditor.py:383 -msgid "Done. Adding Pad completed." -msgstr "Fatto. Aggiunta del pad completata." - -#: AppEditors/FlatCAMGrbEditor.py:410 -msgid "To add an Pad Array first select a aperture in Aperture Table" -msgstr "" -"Per aggiungere una matrice pad, selezionare prima un'apertura nella tabella " -"Aperture" - -#: AppEditors/FlatCAMGrbEditor.py:490 -msgid "Click on the Pad Circular Array Start position" -msgstr "Fare clic sulla posizione iniziale della matrice circolare del pad" - -#: AppEditors/FlatCAMGrbEditor.py:710 -msgid "Too many Pads for the selected spacing angle." -msgstr "Troppi pad per l'angolo di spaziatura selezionato." - -#: AppEditors/FlatCAMGrbEditor.py:733 -msgid "Done. Pad Array added." -msgstr "Fatto. Matrice di Pad aggiunta." - -#: AppEditors/FlatCAMGrbEditor.py:758 -msgid "Select shape(s) and then click ..." -msgstr "Seleziona la forma(e) e quindi fai clic su ..." - -#: AppEditors/FlatCAMGrbEditor.py:770 -msgid "Failed. Nothing selected." -msgstr "Errore. Niente di selezionato." - -#: AppEditors/FlatCAMGrbEditor.py:786 -msgid "" -"Failed. Poligonize works only on geometries belonging to the same aperture." -msgstr "" -"Errore. Poligonizza funziona solo su geometrie appartenenti alla stessa " -"apertura." - -#: AppEditors/FlatCAMGrbEditor.py:840 -msgid "Done. Poligonize completed." -msgstr "Fatto. Poligonizza completata." - -#: AppEditors/FlatCAMGrbEditor.py:895 AppEditors/FlatCAMGrbEditor.py:1119 -#: AppEditors/FlatCAMGrbEditor.py:1143 -msgid "Corner Mode 1: 45 degrees ..." -msgstr "Modalità angolo 1: 45 gradi ..." - -#: AppEditors/FlatCAMGrbEditor.py:907 AppEditors/FlatCAMGrbEditor.py:1219 -msgid "Click on next Point or click Right mouse button to complete ..." -msgstr "" -"Fare clic sul punto successivo o fare clic con il pulsante destro del mouse " -"per completare ..." - -#: AppEditors/FlatCAMGrbEditor.py:1107 AppEditors/FlatCAMGrbEditor.py:1140 -msgid "Corner Mode 2: Reverse 45 degrees ..." -msgstr "Modalità angolo 2: indietro di 45 gradi ..." - -#: AppEditors/FlatCAMGrbEditor.py:1110 AppEditors/FlatCAMGrbEditor.py:1137 -msgid "Corner Mode 3: 90 degrees ..." -msgstr "Modalità angolo 3: 90 gradi ..." - -#: AppEditors/FlatCAMGrbEditor.py:1113 AppEditors/FlatCAMGrbEditor.py:1134 -msgid "Corner Mode 4: Reverse 90 degrees ..." -msgstr "Modalità angolo 4: indietro di 90 gradi ..." - -#: AppEditors/FlatCAMGrbEditor.py:1116 AppEditors/FlatCAMGrbEditor.py:1131 -msgid "Corner Mode 5: Free angle ..." -msgstr "Modalità angolo 5: angolo libero ..." - -#: AppEditors/FlatCAMGrbEditor.py:1193 AppEditors/FlatCAMGrbEditor.py:1358 -#: AppEditors/FlatCAMGrbEditor.py:1397 -msgid "Track Mode 1: 45 degrees ..." -msgstr "Traccia modalità 1: 45 gradi ..." - -#: AppEditors/FlatCAMGrbEditor.py:1338 AppEditors/FlatCAMGrbEditor.py:1392 -msgid "Track Mode 2: Reverse 45 degrees ..." -msgstr "Traccia modalità 2: indietro 45 gradi ..." - -#: AppEditors/FlatCAMGrbEditor.py:1343 AppEditors/FlatCAMGrbEditor.py:1387 -msgid "Track Mode 3: 90 degrees ..." -msgstr "Traccia modalità 3: 90 gradi ..." - -#: AppEditors/FlatCAMGrbEditor.py:1348 AppEditors/FlatCAMGrbEditor.py:1382 -msgid "Track Mode 4: Reverse 90 degrees ..." -msgstr "Traccia modalità 4: indietro 90 gradi ..." - -#: AppEditors/FlatCAMGrbEditor.py:1353 AppEditors/FlatCAMGrbEditor.py:1377 -msgid "Track Mode 5: Free angle ..." -msgstr "Traccia modalità 5: angolo libero ..." - -#: AppEditors/FlatCAMGrbEditor.py:1787 -msgid "Scale the selected Gerber apertures ..." -msgstr "Ridimensiona le aperture Gerber selezionate ..." - -#: AppEditors/FlatCAMGrbEditor.py:1829 -msgid "Buffer the selected apertures ..." -msgstr "Buffer delle aperture selezionate ..." - -#: AppEditors/FlatCAMGrbEditor.py:1871 -msgid "Mark polygon areas in the edited Gerber ..." -msgstr "Contrassegna le aree poligonali nel Gerber modificato ..." - -#: AppEditors/FlatCAMGrbEditor.py:1937 -msgid "Nothing selected to move" -msgstr "Nulla di selezionato da spostare" - -#: AppEditors/FlatCAMGrbEditor.py:2062 -msgid "Done. Apertures Move completed." -msgstr "Fatto. Spostamento aperture completato." - -#: AppEditors/FlatCAMGrbEditor.py:2144 -msgid "Done. Apertures copied." -msgstr "Fatto. Aperture copiate." - -#: AppEditors/FlatCAMGrbEditor.py:2462 AppGUI/MainGUI.py:1477 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:27 -msgid "Gerber Editor" -msgstr "Editor Gerber" - -#: AppEditors/FlatCAMGrbEditor.py:2482 AppGUI/ObjectUI.py:247 -#: AppTools/ToolProperties.py:159 -msgid "Apertures" -msgstr "Aperture" - -#: AppEditors/FlatCAMGrbEditor.py:2484 AppGUI/ObjectUI.py:249 -msgid "Apertures Table for the Gerber Object." -msgstr "Tabella delle aperture per l'oggetto Gerber." - -#: AppEditors/FlatCAMGrbEditor.py:2495 AppEditors/FlatCAMGrbEditor.py:3952 -#: AppGUI/ObjectUI.py:282 -msgid "Code" -msgstr "Codice" - -#: AppEditors/FlatCAMGrbEditor.py:2495 AppEditors/FlatCAMGrbEditor.py:3952 -#: AppGUI/ObjectUI.py:282 -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:103 -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:167 -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:196 -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:43 -#: AppTools/ToolCopperThieving.py:265 AppTools/ToolCopperThieving.py:305 -#: AppTools/ToolFiducials.py:159 -msgid "Size" -msgstr "Dimensione" - -#: AppEditors/FlatCAMGrbEditor.py:2495 AppEditors/FlatCAMGrbEditor.py:3952 -#: AppGUI/ObjectUI.py:282 -msgid "Dim" -msgstr "Dim" - -#: AppEditors/FlatCAMGrbEditor.py:2500 AppGUI/ObjectUI.py:286 -msgid "Index" -msgstr "Indice" - -#: AppEditors/FlatCAMGrbEditor.py:2502 AppEditors/FlatCAMGrbEditor.py:2531 -#: AppGUI/ObjectUI.py:288 -msgid "Aperture Code" -msgstr "Codice apertura" - -#: AppEditors/FlatCAMGrbEditor.py:2504 AppGUI/ObjectUI.py:290 -msgid "Type of aperture: circular, rectangle, macros etc" -msgstr "Tipo di apertura: circolare, rettangolo, macro ecc" - -#: AppEditors/FlatCAMGrbEditor.py:2506 AppGUI/ObjectUI.py:292 -msgid "Aperture Size:" -msgstr "Dimensione apertura:" - -#: AppEditors/FlatCAMGrbEditor.py:2508 AppGUI/ObjectUI.py:294 -msgid "" -"Aperture Dimensions:\n" -" - (width, height) for R, O type.\n" -" - (dia, nVertices) for P type" -msgstr "" -"Dimensioni apertura:\n" -"- (larghezza, altezza) per tipo R, O.\n" -"- (diametro, nVertices) per il tipo P" - -#: AppEditors/FlatCAMGrbEditor.py:2532 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:58 -msgid "Code for the new aperture" -msgstr "Codice della nuova apertura" - -#: AppEditors/FlatCAMGrbEditor.py:2541 -msgid "Aperture Size" -msgstr "Dimensione apertura" - -#: AppEditors/FlatCAMGrbEditor.py:2543 -msgid "" -"Size for the new aperture.\n" -"If aperture type is 'R' or 'O' then\n" -"this value is automatically\n" -"calculated as:\n" -"sqrt(width**2 + height**2)" -msgstr "" -"Dimensioni per la nuova apertura.\n" -"Se il tipo di apertura è 'R' o 'O', allora\n" -"questo valore è automaticamente\n" -"calcolato come:\n" -"sqrt (larghezza**2 + altezza**2)" - -#: AppEditors/FlatCAMGrbEditor.py:2557 -msgid "Aperture Type" -msgstr "Tipo apertura" - -#: AppEditors/FlatCAMGrbEditor.py:2559 -msgid "" -"Select the type of new aperture. Can be:\n" -"C = circular\n" -"R = rectangular\n" -"O = oblong" -msgstr "" -"Seleziona il tipo di nuova apertura. Può essere:\n" -"C = circolare\n" -"R = rettangolare\n" -"O = oblungo" - -#: AppEditors/FlatCAMGrbEditor.py:2570 -msgid "Aperture Dim" -msgstr "Dim apertura" - -#: AppEditors/FlatCAMGrbEditor.py:2572 -msgid "" -"Dimensions for the new aperture.\n" -"Active only for rectangular apertures (type R).\n" -"The format is (width, height)" -msgstr "" -"Dimensioni per la nuova apertura.\n" -"Attivo solo per aperture rettangolari (tipo R).\n" -"Il formato è (larghezza, altezza)" - -#: AppEditors/FlatCAMGrbEditor.py:2581 -msgid "Add/Delete Aperture" -msgstr "Aggiungi/Cancella apertura" - -#: AppEditors/FlatCAMGrbEditor.py:2583 -msgid "Add/Delete an aperture in the aperture table" -msgstr "Aggiungi/Cancella apertura dalla tabella" - -#: AppEditors/FlatCAMGrbEditor.py:2592 -msgid "Add a new aperture to the aperture list." -msgstr "Aggiungi una apertura nella lista aperture." - -#: AppEditors/FlatCAMGrbEditor.py:2595 AppEditors/FlatCAMGrbEditor.py:2743 -#: AppGUI/MainGUI.py:748 AppGUI/MainGUI.py:1068 AppGUI/MainGUI.py:1527 -#: AppGUI/MainGUI.py:2099 AppGUI/MainGUI.py:4514 AppGUI/ObjectUI.py:1525 -#: AppObjects/FlatCAMGeometry.py:563 AppTools/ToolIsolation.py:298 -#: AppTools/ToolIsolation.py:616 AppTools/ToolNCC.py:316 -#: AppTools/ToolNCC.py:637 AppTools/ToolPaint.py:298 AppTools/ToolPaint.py:681 -#: AppTools/ToolSolderPaste.py:133 AppTools/ToolSolderPaste.py:608 -#: App_Main.py:5672 -msgid "Delete" -msgstr "Cancella" - -#: AppEditors/FlatCAMGrbEditor.py:2597 -msgid "Delete a aperture in the aperture list" -msgstr "Cancella una apertura dalla lista aperture" - -#: AppEditors/FlatCAMGrbEditor.py:2614 -msgid "Buffer Aperture" -msgstr "Aperture buffer" - -#: AppEditors/FlatCAMGrbEditor.py:2616 -msgid "Buffer a aperture in the aperture list" -msgstr "Buffer di un'apertura nella lista aperture" - -#: AppEditors/FlatCAMGrbEditor.py:2629 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:195 -msgid "Buffer distance" -msgstr "Buffer distanza" - -#: AppEditors/FlatCAMGrbEditor.py:2630 -msgid "Buffer corner" -msgstr "Buffer angolo" - -#: AppEditors/FlatCAMGrbEditor.py:2632 -msgid "" -"There are 3 types of corners:\n" -" - 'Round': the corner is rounded.\n" -" - 'Square': the corner is met in a sharp angle.\n" -" - 'Beveled': the corner is a line that directly connects the features " -"meeting in the corner" -msgstr "" -"Esistono 3 tipi di angoli:\n" -"- 'Round': l'angolo è arrotondato.\n" -"- 'Quadrato': l'angolo è incontrato in un angolo acuto.\n" -"- \"Smussato\": l'angolo è una linea che collega direttamente le funzioni " -"che si incontrano nell'angolo" - -#: AppEditors/FlatCAMGrbEditor.py:2647 AppGUI/MainGUI.py:1055 -#: AppGUI/MainGUI.py:1454 AppGUI/MainGUI.py:1497 AppGUI/MainGUI.py:2087 -#: AppGUI/MainGUI.py:4511 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:200 -#: AppTools/ToolTransform.py:29 -msgid "Buffer" -msgstr "Buffer" - -#: AppEditors/FlatCAMGrbEditor.py:2662 -msgid "Scale Aperture" -msgstr "Scala apertura" - -#: AppEditors/FlatCAMGrbEditor.py:2664 -msgid "Scale a aperture in the aperture list" -msgstr "Scala apertura nella lista aperture" - -#: AppEditors/FlatCAMGrbEditor.py:2672 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:210 -msgid "Scale factor" -msgstr "Fattore di scala" - -#: AppEditors/FlatCAMGrbEditor.py:2674 -msgid "" -"The factor by which to scale the selected aperture.\n" -"Values can be between 0.0000 and 999.9999" -msgstr "" -"Il fattore in base al quale ridimensionare l'apertura selezionata.\n" -"I valori possono essere compresi tra 0,0000 e 999,9999" - -#: AppEditors/FlatCAMGrbEditor.py:2702 -msgid "Mark polygons" -msgstr "Marchia poligoni" - -#: AppEditors/FlatCAMGrbEditor.py:2704 -msgid "Mark the polygon areas." -msgstr "Marchia aree poligoni." - -#: AppEditors/FlatCAMGrbEditor.py:2712 -msgid "Area UPPER threshold" -msgstr "Area Soglia SUPERIORE" - -#: AppEditors/FlatCAMGrbEditor.py:2714 -msgid "" -"The threshold value, all areas less than this are marked.\n" -"Can have a value between 0.0000 and 9999.9999" -msgstr "" -"Il valore di soglia, tutte le aree inferiori a questa sono contrassegnate.\n" -"Può avere un valore compreso tra 0,0000 e 9999,9999" - -#: AppEditors/FlatCAMGrbEditor.py:2721 -msgid "Area LOWER threshold" -msgstr "Area Soglia INFERIORE" - -#: AppEditors/FlatCAMGrbEditor.py:2723 -msgid "" -"The threshold value, all areas more than this are marked.\n" -"Can have a value between 0.0000 and 9999.9999" -msgstr "" -"Il valore di soglia, tutte le aree più di questa sono contrassegnate.\n" -"Può avere un valore compreso tra 0,0000 e 9999,9999" - -#: AppEditors/FlatCAMGrbEditor.py:2737 -msgid "Mark" -msgstr "Contrassegna" - -#: AppEditors/FlatCAMGrbEditor.py:2739 -msgid "Mark the polygons that fit within limits." -msgstr "Contrassegna i poligoni che rientrano nei limiti." - -#: AppEditors/FlatCAMGrbEditor.py:2745 -msgid "Delete all the marked polygons." -msgstr "Cancella i poligoni contrassegnati." - -#: AppEditors/FlatCAMGrbEditor.py:2751 -msgid "Clear all the markings." -msgstr "Pulisci tutte le marchiature." - -#: AppEditors/FlatCAMGrbEditor.py:2771 AppGUI/MainGUI.py:1040 -#: AppGUI/MainGUI.py:2072 AppGUI/MainGUI.py:4511 -msgid "Add Pad Array" -msgstr "Aggiungi matrice di pad" - -#: AppEditors/FlatCAMGrbEditor.py:2773 -msgid "Add an array of pads (linear or circular array)" -msgstr "Aggiunge una matrice di pad (lineare o circolare)" - -#: AppEditors/FlatCAMGrbEditor.py:2779 -msgid "" -"Select the type of pads array to create.\n" -"It can be Linear X(Y) or Circular" -msgstr "" -"Seleziona il tipo di array di pad da creare.\n" -"Può essere lineare X(Y) o circolare" - -#: AppEditors/FlatCAMGrbEditor.py:2790 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:95 -msgid "Nr of pads" -msgstr "Numero di pad" - -#: AppEditors/FlatCAMGrbEditor.py:2792 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:97 -msgid "Specify how many pads to be in the array." -msgstr "Specifica quanti pad inserire nella matrice." - -#: AppEditors/FlatCAMGrbEditor.py:2841 -msgid "" -"Angle at which the linear array is placed.\n" -"The precision is of max 2 decimals.\n" -"Min value is: -359.99 degrees.\n" -"Max value is: 360.00 degrees." -msgstr "" -"Angolo a cui è posizionata la matrice lineare.\n" -"La precisione è di massimo 2 decimali.\n" -"Il valore minimo è: -359,99 gradi.\n" -"Il valore massimo è: 360,00 gradi." - -#: AppEditors/FlatCAMGrbEditor.py:3335 AppEditors/FlatCAMGrbEditor.py:3339 -msgid "Aperture code value is missing or wrong format. Add it and retry." -msgstr "" -"Il valore del codice di apertura è mancante o nel formato errato. Aggiungilo " -"e riprova." - -#: AppEditors/FlatCAMGrbEditor.py:3375 -msgid "" -"Aperture dimensions value is missing or wrong format. Add it in format " -"(width, height) and retry." -msgstr "" -"Il valore delle dimensioni dell'apertura è mancante o nel formato errato. " -"Aggiungilo nel formato (larghezza, altezza) e riprova." - -#: AppEditors/FlatCAMGrbEditor.py:3388 -msgid "Aperture size value is missing or wrong format. Add it and retry." -msgstr "" -"Il valore della dimensione dell'apertura è mancante o nel formato errato. " -"Aggiungilo e riprova." - -#: AppEditors/FlatCAMGrbEditor.py:3399 -msgid "Aperture already in the aperture table." -msgstr "Apertura già nella tabella di apertura." - -#: AppEditors/FlatCAMGrbEditor.py:3406 -msgid "Added new aperture with code" -msgstr "Aggiunta nuova apertura con codice" - -#: AppEditors/FlatCAMGrbEditor.py:3438 -msgid " Select an aperture in Aperture Table" -msgstr " Seleziona un'apertura nella tabella Aperture" - -#: AppEditors/FlatCAMGrbEditor.py:3446 -msgid "Select an aperture in Aperture Table -->" -msgstr "Seleziona un'apertura in Tabella apertura ->" - -#: AppEditors/FlatCAMGrbEditor.py:3460 -msgid "Deleted aperture with code" -msgstr "Apertura eliminata con codice" - -#: AppEditors/FlatCAMGrbEditor.py:3528 -msgid "Dimensions need two float values separated by comma." -msgstr "Le dimensioni necessitano di valori float separati da una virgola." - -#: AppEditors/FlatCAMGrbEditor.py:3537 -msgid "Dimensions edited." -msgstr "Dimensioni modificate." - -#: AppEditors/FlatCAMGrbEditor.py:4067 -msgid "Loading Gerber into Editor" -msgstr "Caricamento Gerber in Editor" - -#: AppEditors/FlatCAMGrbEditor.py:4195 -msgid "Setting up the UI" -msgstr "Impostazione della UI" - -#: AppEditors/FlatCAMGrbEditor.py:4196 -#, fuzzy -#| msgid "Adding geometry finished. Preparing the GUI" -msgid "Adding geometry finished. Preparing the AppGUI" -msgstr "Aggiunta della geometria terminata. Preparazione della GUI" - -#: AppEditors/FlatCAMGrbEditor.py:4205 -msgid "Finished loading the Gerber object into the editor." -msgstr "Terminato il caricamento dell'oggetto Gerber nell'editor." - -#: AppEditors/FlatCAMGrbEditor.py:4346 -msgid "" -"There are no Aperture definitions in the file. Aborting Gerber creation." -msgstr "" -"Non ci sono definizioni di Aperture nel file. Interruzione della creazione " -"di Gerber." - -#: AppEditors/FlatCAMGrbEditor.py:4348 AppObjects/AppObject.py:133 -#: AppObjects/FlatCAMGeometry.py:1786 AppParsers/ParseExcellon.py:896 -#: AppTools/ToolPcbWizard.py:432 App_Main.py:8465 App_Main.py:8529 -#: App_Main.py:8660 App_Main.py:8725 App_Main.py:9377 -msgid "An internal error has occurred. See shell.\n" -msgstr "Errore interno. Vedi shell.\n" - -#: AppEditors/FlatCAMGrbEditor.py:4356 -msgid "Creating Gerber." -msgstr "Creazioen Gerber." - -#: AppEditors/FlatCAMGrbEditor.py:4368 -msgid "Done. Gerber editing finished." -msgstr "Fatto. Modifica di Gerber terminata." - -#: AppEditors/FlatCAMGrbEditor.py:4384 -msgid "Cancelled. No aperture is selected" -msgstr "Annullato. Nessuna apertura selezionata" - -#: AppEditors/FlatCAMGrbEditor.py:4539 App_Main.py:5998 -msgid "Coordinates copied to clipboard." -msgstr "Coordinate copiate negli appunti." - -#: AppEditors/FlatCAMGrbEditor.py:4986 -msgid "Failed. No aperture geometry is selected." -msgstr "Impossibile. Nessuna geometria di apertura selezionata." - -#: AppEditors/FlatCAMGrbEditor.py:4995 AppEditors/FlatCAMGrbEditor.py:5266 -msgid "Done. Apertures geometry deleted." -msgstr "Fatto. Geometria delle aperture cancellata." - -#: AppEditors/FlatCAMGrbEditor.py:5138 -msgid "No aperture to buffer. Select at least one aperture and try again." -msgstr "Nessuna apertura al buffer. Seleziona almeno un'apertura e riprova." - -#: AppEditors/FlatCAMGrbEditor.py:5150 -msgid "Failed." -msgstr "Fallito." - -#: AppEditors/FlatCAMGrbEditor.py:5169 -msgid "Scale factor value is missing or wrong format. Add it and retry." -msgstr "" -"Valore del fattore di scala mancante o formato errato. Aggiungilo e riprova." - -#: AppEditors/FlatCAMGrbEditor.py:5201 -msgid "No aperture to scale. Select at least one aperture and try again." -msgstr "" -"Nessuna apertura da ridimensionare. Seleziona almeno un'apertura e riprova." - -#: AppEditors/FlatCAMGrbEditor.py:5217 -msgid "Done. Scale Tool completed." -msgstr "Fatto. Strumento buffer completato." - -#: AppEditors/FlatCAMGrbEditor.py:5255 -msgid "Polygons marked." -msgstr "Poligoni contrassegnati." - -#: AppEditors/FlatCAMGrbEditor.py:5258 -msgid "No polygons were marked. None fit within the limits." -msgstr "Nessun poligono contrassegnato. Nessuno risponde ai criteri." - -#: AppEditors/FlatCAMGrbEditor.py:5982 -msgid "Rotation action was not executed." -msgstr "Azione rotazione non effettuata." - -#: AppEditors/FlatCAMGrbEditor.py:6053 App_Main.py:5432 App_Main.py:5480 -msgid "Flip action was not executed." -msgstr "Capovolgimento non eseguito." - -#: AppEditors/FlatCAMGrbEditor.py:6110 -msgid "Skew action was not executed." -msgstr "Azione inclinazione non effettuata." - -#: AppEditors/FlatCAMGrbEditor.py:6175 -msgid "Scale action was not executed." -msgstr "Azione riscalatura non effettuata." - -#: AppEditors/FlatCAMGrbEditor.py:6218 -msgid "Offset action was not executed." -msgstr "Offset non applicato." - -#: AppEditors/FlatCAMGrbEditor.py:6268 -msgid "Geometry shape offset Y cancelled" -msgstr "Offset su forme geometria su asse Y annullato" - -#: AppEditors/FlatCAMGrbEditor.py:6283 -msgid "Geometry shape skew X cancelled" -msgstr "Offset su forme geometria su asse X annullato" - -#: AppEditors/FlatCAMGrbEditor.py:6298 -msgid "Geometry shape skew Y cancelled" -msgstr "Inclinazione su asse Y annullato" - -#: AppEditors/FlatCAMTextEditor.py:74 -msgid "Print Preview" -msgstr "Anteprima di Stampa" - -#: AppEditors/FlatCAMTextEditor.py:75 -msgid "Open a OS standard Preview Print window." -msgstr "" -"Aprire una finestra di stampa di anteprima standard del sistema operativo." - -#: AppEditors/FlatCAMTextEditor.py:78 -msgid "Print Code" -msgstr "Stampa codice" - -#: AppEditors/FlatCAMTextEditor.py:79 -msgid "Open a OS standard Print window." -msgstr "Aprire una finestra di stampa standard del sistema operativo." - -#: AppEditors/FlatCAMTextEditor.py:81 -msgid "Find in Code" -msgstr "Cerca nel Codice" - -#: AppEditors/FlatCAMTextEditor.py:82 -msgid "Will search and highlight in yellow the string in the Find box." -msgstr "Cercherà ed evidenzierà in giallo la stringa nella casella Trova." - -#: AppEditors/FlatCAMTextEditor.py:86 -msgid "Find box. Enter here the strings to be searched in the text." -msgstr "Trova la scatola. Inserisci qui le stringhe da cercare nel testo." - -#: AppEditors/FlatCAMTextEditor.py:88 -msgid "Replace With" -msgstr "Sostituisci con" - -#: AppEditors/FlatCAMTextEditor.py:89 -msgid "" -"Will replace the string from the Find box with the one in the Replace box." -msgstr "" -"Sostituirà la stringa dalla casella Trova con quella nella casella " -"Sostituisci." - -#: AppEditors/FlatCAMTextEditor.py:93 -msgid "String to replace the one in the Find box throughout the text." -msgstr "Stringa per sostituire quella nella casella Trova in tutto il testo." - -#: AppEditors/FlatCAMTextEditor.py:95 AppGUI/ObjectUI.py:2149 -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:54 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:285 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280 -#: AppTools/ToolIsolation.py:504 AppTools/ToolIsolation.py:1287 -#: AppTools/ToolIsolation.py:1669 AppTools/ToolPaint.py:485 -#: AppTools/ToolPaint.py:1446 defaults.py:403 defaults.py:446 -#: tclCommands/TclCommandPaint.py:162 -msgid "All" -msgstr "Tutto" - -#: AppEditors/FlatCAMTextEditor.py:96 -msgid "" -"When checked it will replace all instances in the 'Find' box\n" -"with the text in the 'Replace' box.." -msgstr "" -"Se selezionato, sostituirà tutte le istanze nella casella \"Trova\"\n" -"con il testo nella casella \"Sostituisci\"." - -#: AppEditors/FlatCAMTextEditor.py:99 -msgid "Copy All" -msgstr "Copia tutto" - -#: AppEditors/FlatCAMTextEditor.py:100 -msgid "Will copy all the text in the Code Editor to the clipboard." -msgstr "Copia tutto il testo nell'editor di codice negli Appunti." - -#: AppEditors/FlatCAMTextEditor.py:103 -msgid "Open Code" -msgstr "Apri G-Code" - -#: AppEditors/FlatCAMTextEditor.py:104 -msgid "Will open a text file in the editor." -msgstr "Aprirà un file di testo nell'editor." - -#: AppEditors/FlatCAMTextEditor.py:106 -msgid "Save Code" -msgstr "Salva codice" - -#: AppEditors/FlatCAMTextEditor.py:107 -msgid "Will save the text in the editor into a file." -msgstr "Salverà il testo nell'editor in un file." - -#: AppEditors/FlatCAMTextEditor.py:109 -msgid "Run Code" -msgstr "Esegui codice" - -#: AppEditors/FlatCAMTextEditor.py:110 -msgid "Will run the TCL commands found in the text file, one by one." -msgstr "Saranno eseguiti i comandi TCL trovati nel file di testo, uno per uno." - -#: AppEditors/FlatCAMTextEditor.py:184 -msgid "Open file" -msgstr "Apri il file" - -#: AppEditors/FlatCAMTextEditor.py:215 AppEditors/FlatCAMTextEditor.py:220 -#: AppObjects/FlatCAMCNCJob.py:507 AppObjects/FlatCAMCNCJob.py:512 -#: AppTools/ToolSolderPaste.py:1508 -msgid "Export Code ..." -msgstr "Esporta il Codice ..." - -#: AppEditors/FlatCAMTextEditor.py:272 AppObjects/FlatCAMCNCJob.py:955 -#: AppTools/ToolSolderPaste.py:1538 -msgid "No such file or directory" -msgstr "File o directory inesistente" - -#: AppEditors/FlatCAMTextEditor.py:284 AppObjects/FlatCAMCNCJob.py:969 -msgid "Saved to" -msgstr "Salvato in" - -#: AppEditors/FlatCAMTextEditor.py:334 -msgid "Code Editor content copied to clipboard ..." -msgstr "Contenuto dell'editor di codice copiato negli appunti ..." - -#: AppGUI/GUIElements.py:2690 -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:169 -#: AppTools/ToolDblSided.py:173 AppTools/ToolDblSided.py:388 -#: AppTools/ToolFilm.py:202 -msgid "Reference" -msgstr "Riferimento" - -#: AppGUI/GUIElements.py:2692 -msgid "" -"The reference can be:\n" -"- Absolute -> the reference point is point (0,0)\n" -"- Relative -> the reference point is the mouse position before Jump" -msgstr "" -"Il riferimento può essere:\n" -"- Assoluto -> il punto di riferimento è punto (0,0)\n" -"- Relativo -> il punto di riferimento è la posizione del mouse prima del " -"salto" - -#: AppGUI/GUIElements.py:2697 -msgid "Abs" -msgstr "Assoluto" - -#: AppGUI/GUIElements.py:2698 -msgid "Relative" -msgstr "Relativo" - -#: AppGUI/GUIElements.py:2708 -msgid "Location" -msgstr "Locazione" - -#: AppGUI/GUIElements.py:2710 -msgid "" -"The Location value is a tuple (x,y).\n" -"If the reference is Absolute then the Jump will be at the position (x,y).\n" -"If the reference is Relative then the Jump will be at the (x,y) distance\n" -"from the current mouse location point." -msgstr "" -"Il valore Posizione è una tupla (x,y).\n" -"Se il riferimento è Assoluto, il Salto sarà nella posizione (x,y).\n" -"Se il riferimento è relativo, il salto sarà alla distanza (x,y)\n" -"dal punto di posizione attuale del mouse." - -#: AppGUI/GUIElements.py:2750 -msgid "Save Log" -msgstr "Salva log" - -#: AppGUI/GUIElements.py:2760 App_Main.py:2679 App_Main.py:2988 -#: App_Main.py:3122 -msgid "Close" -msgstr "Chiudi" - -#: AppGUI/GUIElements.py:2769 AppTools/ToolShell.py:296 -msgid "Type >help< to get started" -msgstr "Digita >help< per iniziare" - -#: AppGUI/GUIElements.py:3159 AppGUI/GUIElements.py:3168 -msgid "Idle." -msgstr "Inattivo." - -#: AppGUI/GUIElements.py:3201 -msgid "Application started ..." -msgstr "Applicazione avviata ..." - -#: AppGUI/GUIElements.py:3202 -msgid "Hello!" -msgstr "Ciao!" - -#: AppGUI/GUIElements.py:3249 AppGUI/MainGUI.py:190 AppGUI/MainGUI.py:895 -#: AppGUI/MainGUI.py:1927 -msgid "Run Script ..." -msgstr "Esegui Script ..." - -#: AppGUI/GUIElements.py:3251 AppGUI/MainGUI.py:192 -msgid "" -"Will run the opened Tcl Script thus\n" -"enabling the automation of certain\n" -"functions of FlatCAM." -msgstr "" -"Eseguirà lo script Tcl aperto per\n" -"consentire l'automazione di alcune\n" -"funzioni di FlatCAM." - -#: AppGUI/GUIElements.py:3260 AppGUI/MainGUI.py:118 -#: AppTools/ToolPcbWizard.py:62 AppTools/ToolPcbWizard.py:69 -msgid "Open" -msgstr "Apri" - -#: AppGUI/GUIElements.py:3264 -msgid "Open Project ..." -msgstr "Apri progetto ..." - -#: AppGUI/GUIElements.py:3270 AppGUI/MainGUI.py:129 -msgid "Open &Gerber ...\tCtrl+G" -msgstr "Apri &Gerber...\tCtrl+G" - -#: AppGUI/GUIElements.py:3275 AppGUI/MainGUI.py:134 -msgid "Open &Excellon ...\tCtrl+E" -msgstr "Apri &Excellon ...\tCtrl+E" - -#: AppGUI/GUIElements.py:3280 AppGUI/MainGUI.py:139 -msgid "Open G-&Code ..." -msgstr "Apri G-&Code ..." - -#: AppGUI/GUIElements.py:3290 -msgid "Exit" -msgstr "Esci" - -#: AppGUI/MainGUI.py:67 AppGUI/MainGUI.py:69 AppGUI/MainGUI.py:1407 -msgid "Toggle Panel" -msgstr "Attiva / disattiva pannello" - -#: AppGUI/MainGUI.py:79 -msgid "File" -msgstr "File" - -#: AppGUI/MainGUI.py:84 -msgid "&New Project ...\tCtrl+N" -msgstr "&Nuovo progetto ...\tCtrl+N" - -#: AppGUI/MainGUI.py:86 -msgid "Will create a new, blank project" -msgstr "Creerà un nuovo progetto vuoto" - -#: AppGUI/MainGUI.py:91 -msgid "&New" -msgstr "&Nuovo" - -#: AppGUI/MainGUI.py:95 -msgid "Geometry\tN" -msgstr "Geometria\tN" - -#: AppGUI/MainGUI.py:97 -msgid "Will create a new, empty Geometry Object." -msgstr "Creerà un nuovo oggetto Geometria vuoto." - -#: AppGUI/MainGUI.py:100 -msgid "Gerber\tB" -msgstr "Gerber\tB" - -#: AppGUI/MainGUI.py:102 -msgid "Will create a new, empty Gerber Object." -msgstr "Creerà un nuovo oggetto Gerber vuoto." - -#: AppGUI/MainGUI.py:105 -msgid "Excellon\tL" -msgstr "Excellon\tL" - -#: AppGUI/MainGUI.py:107 -msgid "Will create a new, empty Excellon Object." -msgstr "Creerà un nuovo oggetto Excellon vuoto." - -#: AppGUI/MainGUI.py:112 -msgid "Document\tD" -msgstr "Documento\tD" - -#: AppGUI/MainGUI.py:114 -msgid "Will create a new, empty Document Object." -msgstr "Creerà un nuovo oggetto Documento vuoto." - -#: AppGUI/MainGUI.py:123 -msgid "Open &Project ..." -msgstr "Apri &Progetto ..." - -#: AppGUI/MainGUI.py:146 -msgid "Open Config ..." -msgstr "Apri Config ..." - -#: AppGUI/MainGUI.py:151 -msgid "Recent projects" -msgstr "Progetti recenti" - -#: AppGUI/MainGUI.py:153 -msgid "Recent files" -msgstr "File recenti" - -#: AppGUI/MainGUI.py:156 AppGUI/MainGUI.py:750 AppGUI/MainGUI.py:1380 -msgid "Save" -msgstr "Salva" - -#: AppGUI/MainGUI.py:160 -msgid "&Save Project ...\tCtrl+S" -msgstr "&Salva progetto con nome ...\tCtrl+S" - -#: AppGUI/MainGUI.py:165 -msgid "Save Project &As ...\tCtrl+Shift+S" -msgstr "S&alva progetto con nome ...\tCtrl+Shift+S" - -#: AppGUI/MainGUI.py:180 -msgid "Scripting" -msgstr "Scripting" - -#: AppGUI/MainGUI.py:184 AppGUI/MainGUI.py:891 AppGUI/MainGUI.py:1923 -msgid "New Script ..." -msgstr "Nuovo Script ..." - -#: AppGUI/MainGUI.py:186 AppGUI/MainGUI.py:893 AppGUI/MainGUI.py:1925 -msgid "Open Script ..." -msgstr "Apri Script ..." - -#: AppGUI/MainGUI.py:188 -msgid "Open Example ..." -msgstr "Apri esempio ..." - -#: AppGUI/MainGUI.py:207 -msgid "Import" -msgstr "Importa" - -#: AppGUI/MainGUI.py:209 -msgid "&SVG as Geometry Object ..." -msgstr "&SVG come oggetto Geometry ..." - -#: AppGUI/MainGUI.py:212 -msgid "&SVG as Gerber Object ..." -msgstr "&SVG come oggetto Gerber ..." - -#: AppGUI/MainGUI.py:217 -msgid "&DXF as Geometry Object ..." -msgstr "&DXF come oggetto Geometria ..." - -#: AppGUI/MainGUI.py:220 -msgid "&DXF as Gerber Object ..." -msgstr "&DXF come oggetto Gerber ..." - -#: AppGUI/MainGUI.py:224 -msgid "HPGL2 as Geometry Object ..." -msgstr "HPGL2 come oggetto Geometry ..." - -#: AppGUI/MainGUI.py:230 -msgid "Export" -msgstr "Esporta" - -#: AppGUI/MainGUI.py:234 -msgid "Export &SVG ..." -msgstr "Esporta &SVG ..." - -#: AppGUI/MainGUI.py:238 -msgid "Export DXF ..." -msgstr "Esporta &DXF ..." - -#: AppGUI/MainGUI.py:244 -msgid "Export &PNG ..." -msgstr "Esporta &PNG ..." - -#: AppGUI/MainGUI.py:246 -msgid "" -"Will export an image in PNG format,\n" -"the saved image will contain the visual \n" -"information currently in FlatCAM Plot Area." -msgstr "" -"Esporterà un'immagine in formato PNG,\n" -"l'immagine salvata conterrà le informazioni\n" -"visive attualmente nell'area del grafico FlatCAM." - -#: AppGUI/MainGUI.py:255 -msgid "Export &Excellon ..." -msgstr "Export &Excellon ..." - -#: AppGUI/MainGUI.py:257 -msgid "" -"Will export an Excellon Object as Excellon file,\n" -"the coordinates format, the file units and zeros\n" -"are set in Preferences -> Excellon Export." -msgstr "" -"Esporterà un oggetto Excellon come file Excellon,\n" -"il formato delle coordinate, le unità di file e gli zeri\n" -"sono impostati in Preferenze -> Esporta Excellon." - -#: AppGUI/MainGUI.py:264 -msgid "Export &Gerber ..." -msgstr "Esporta &Gerber ..." - -#: AppGUI/MainGUI.py:266 -msgid "" -"Will export an Gerber Object as Gerber file,\n" -"the coordinates format, the file units and zeros\n" -"are set in Preferences -> Gerber Export." -msgstr "" -"Esporterà un oggetto Gerber come file Gerber,\n" -"il formato delle coordinate, le unità di file e gli zeri\n" -"sono impostati in Preferenze -> Esportazione Gerber." - -#: AppGUI/MainGUI.py:276 -msgid "Backup" -msgstr "Backup" - -#: AppGUI/MainGUI.py:281 -msgid "Import Preferences from file ..." -msgstr "Importa preferenze da file ..." - -#: AppGUI/MainGUI.py:287 -msgid "Export Preferences to file ..." -msgstr "Esporta preferenze su file ..." - -#: AppGUI/MainGUI.py:295 AppGUI/preferences/PreferencesUIManager.py:1119 -msgid "Save Preferences" -msgstr "Salva Preferenze" - -#: AppGUI/MainGUI.py:301 AppGUI/MainGUI.py:4101 -msgid "Print (PDF)" -msgstr "Stampa (PDF)" - -#: AppGUI/MainGUI.py:309 -msgid "E&xit" -msgstr "Esci (&X)" - -#: AppGUI/MainGUI.py:317 AppGUI/MainGUI.py:744 AppGUI/MainGUI.py:1529 -msgid "Edit" -msgstr "Modifica" - -#: AppGUI/MainGUI.py:321 -msgid "Edit Object\tE" -msgstr "Modifica oggetto\tE" - -#: AppGUI/MainGUI.py:323 -msgid "Close Editor\tCtrl+S" -msgstr "Chiudi editor\tCtrl+S" - -#: AppGUI/MainGUI.py:332 -msgid "Conversion" -msgstr "Conversione" - -#: AppGUI/MainGUI.py:334 -msgid "&Join Geo/Gerber/Exc -> Geo" -msgstr "(&J) Unisci Geo/Gerber/Exc -> Geo" - -#: AppGUI/MainGUI.py:336 -msgid "" -"Merge a selection of objects, which can be of type:\n" -"- Gerber\n" -"- Excellon\n" -"- Geometry\n" -"into a new combo Geometry object." -msgstr "" -"Unisci una selezione di oggetti, che possono essere di tipo:\n" -"- Gerber\n" -"- Excellon\n" -"- Geometria\n" -"in un nuovo oggetto Geometria combinato." - -#: AppGUI/MainGUI.py:343 -msgid "Join Excellon(s) -> Excellon" -msgstr "Unisci Excellon -> Excellon" - -#: AppGUI/MainGUI.py:345 -msgid "Merge a selection of Excellon objects into a new combo Excellon object." -msgstr "" -"Unisci una selezione di oggetti Excellon in un nuovo oggetto combinato " -"Excellon." - -#: AppGUI/MainGUI.py:348 -msgid "Join Gerber(s) -> Gerber" -msgstr "Unisci Gerber(s) -> Gerber" - -#: AppGUI/MainGUI.py:350 -msgid "Merge a selection of Gerber objects into a new combo Gerber object." -msgstr "" -"Unisci una selezione di oggetti Gerber in un nuovo oggetto Gerber combinato." - -#: AppGUI/MainGUI.py:355 -msgid "Convert Single to MultiGeo" -msgstr "Converti da Single a MultiGeo" - -#: AppGUI/MainGUI.py:357 -msgid "" -"Will convert a Geometry object from single_geometry type\n" -"to a multi_geometry type." -msgstr "" -"Converte un oggetto Geometry dal tipo single_geometry\n" -"a un tipo multi_geometry." - -#: AppGUI/MainGUI.py:361 -msgid "Convert Multi to SingleGeo" -msgstr "Converti da Multi a SingleGeo" - -#: AppGUI/MainGUI.py:363 -msgid "" -"Will convert a Geometry object from multi_geometry type\n" -"to a single_geometry type." -msgstr "" -"Converte un oggetto Geometry dal tipo multi_geometry\n" -"a un tipo single_geometry." - -#: AppGUI/MainGUI.py:370 -msgid "Convert Any to Geo" -msgstr "Converti tutto in Geo" - -#: AppGUI/MainGUI.py:373 -msgid "Convert Any to Gerber" -msgstr "Converti tutto in Gerber" - -#: AppGUI/MainGUI.py:379 -msgid "&Copy\tCtrl+C" -msgstr "&Copia\tCtrl+C" - -#: AppGUI/MainGUI.py:384 -msgid "&Delete\tDEL" -msgstr "Cancella (&D)\tDEL" - -#: AppGUI/MainGUI.py:389 -msgid "Se&t Origin\tO" -msgstr "Impos&ta Origine\tO" - -#: AppGUI/MainGUI.py:391 -msgid "Move to Origin\tShift+O" -msgstr "Sposta su Origine\tShift+O" - -#: AppGUI/MainGUI.py:394 -msgid "Jump to Location\tJ" -msgstr "Vai a locazione\tJ" - -#: AppGUI/MainGUI.py:396 -msgid "Locate in Object\tShift+J" -msgstr "Trova nell'oggetto\tShift+J" - -#: AppGUI/MainGUI.py:401 -msgid "Toggle Units\tQ" -msgstr "Attiva/disattiva Unità\tQ" - -#: AppGUI/MainGUI.py:403 -msgid "&Select All\tCtrl+A" -msgstr "&Seleziona tutto\tCtrl+A" - -#: AppGUI/MainGUI.py:408 -msgid "&Preferences\tShift+P" -msgstr "&Preferenze\tShift+P" - -#: AppGUI/MainGUI.py:414 AppTools/ToolProperties.py:155 -msgid "Options" -msgstr "Opzioni" - -#: AppGUI/MainGUI.py:416 -msgid "&Rotate Selection\tShift+(R)" -msgstr "&Ruota Selezione\tShift+(R)" - -#: AppGUI/MainGUI.py:421 -msgid "&Skew on X axis\tShift+X" -msgstr "Inclina nell'a&sse X\tShift+X" - -#: AppGUI/MainGUI.py:423 -msgid "S&kew on Y axis\tShift+Y" -msgstr "Inclina nell'asse Y\tShift+Y" - -#: AppGUI/MainGUI.py:428 -msgid "Flip on &X axis\tX" -msgstr "Capovolgi in &X\tX" - -#: AppGUI/MainGUI.py:430 -msgid "Flip on &Y axis\tY" -msgstr "Capovolgi in &Y\tY" - -#: AppGUI/MainGUI.py:435 -msgid "View source\tAlt+S" -msgstr "Vedi sorgente\tAlt+S" - -#: AppGUI/MainGUI.py:437 -msgid "Tools DataBase\tCtrl+D" -msgstr "DataBase Utensili\tCtrl+D" - -#: AppGUI/MainGUI.py:444 AppGUI/MainGUI.py:1427 -msgid "View" -msgstr "Vedi" - -#: AppGUI/MainGUI.py:446 -msgid "Enable all plots\tAlt+1" -msgstr "Abilita tutti i plot\tAlt+1" - -#: AppGUI/MainGUI.py:448 -msgid "Disable all plots\tAlt+2" -msgstr "Disabilita tutti i plot\tAlt+2" - -#: AppGUI/MainGUI.py:450 -msgid "Disable non-selected\tAlt+3" -msgstr "Disabilita non selezionati\tAlt+3" - -#: AppGUI/MainGUI.py:454 -msgid "&Zoom Fit\tV" -msgstr "&Zoom tutto\tV" - -#: AppGUI/MainGUI.py:456 -msgid "&Zoom In\t=" -msgstr "&Zoom In\t=" - -#: AppGUI/MainGUI.py:458 -msgid "&Zoom Out\t-" -msgstr "&Zoom Fuori\t-" - -#: AppGUI/MainGUI.py:463 -msgid "Redraw All\tF5" -msgstr "Ridisegna tutto\tF5" - -#: AppGUI/MainGUI.py:467 -msgid "Toggle Code Editor\tShift+E" -msgstr "Attiva/disattiva Editor codice\tShift+E" - -#: AppGUI/MainGUI.py:470 -msgid "&Toggle FullScreen\tAlt+F10" -msgstr "(Dis)abili&ta schermo intero\tAlt+F10" - -#: AppGUI/MainGUI.py:472 -msgid "&Toggle Plot Area\tCtrl+F10" -msgstr "(Dis)a&ttiva area del diagramma\tCtrl+F10" - -#: AppGUI/MainGUI.py:474 -msgid "&Toggle Project/Sel/Tool\t`" -msgstr "(Dis)a&ttiva Progetto/Sel/Strumento\t`" - -#: AppGUI/MainGUI.py:478 -msgid "&Toggle Grid Snap\tG" -msgstr "(Dis)a&ttiva lo snap alla griglia\tG" - -#: AppGUI/MainGUI.py:480 -msgid "&Toggle Grid Lines\tAlt+G" -msgstr "(Dis)&attiva linee griglia\tG" - -#: AppGUI/MainGUI.py:482 -msgid "&Toggle Axis\tShift+G" -msgstr "(Dis)a&ttiva assi\tShift+G" - -#: AppGUI/MainGUI.py:484 -msgid "Toggle Workspace\tShift+W" -msgstr "(Dis)attiva area di lavoro\tShift+W" - -#: AppGUI/MainGUI.py:486 -#, fuzzy -#| msgid "Toggle Units" -msgid "Toggle HUD\tAlt+H" -msgstr "Camba unità" - -#: AppGUI/MainGUI.py:491 -msgid "Objects" -msgstr "Oggetti" - -#: AppGUI/MainGUI.py:494 AppGUI/MainGUI.py:4099 -#: AppObjects/ObjectCollection.py:1121 AppObjects/ObjectCollection.py:1168 -msgid "Select All" -msgstr "Seleziona tutto" - -#: AppGUI/MainGUI.py:496 AppObjects/ObjectCollection.py:1125 -#: AppObjects/ObjectCollection.py:1172 -msgid "Deselect All" -msgstr "Deseleziona tutto" - -#: AppGUI/MainGUI.py:505 -msgid "&Command Line\tS" -msgstr "Riga &Comandi\tS" - -#: AppGUI/MainGUI.py:510 -msgid "Help" -msgstr "Aiuto" - -#: AppGUI/MainGUI.py:512 -msgid "Online Help\tF1" -msgstr "Aiuto Online\tF1" - -#: AppGUI/MainGUI.py:515 Bookmark.py:293 -msgid "Bookmarks" -msgstr "Segnalibri" - -#: AppGUI/MainGUI.py:518 App_Main.py:3091 App_Main.py:3100 -msgid "Bookmarks Manager" -msgstr "Gestore segnalibri" - -#: AppGUI/MainGUI.py:522 -msgid "Report a bug" -msgstr "Riporta un bug" - -#: AppGUI/MainGUI.py:525 -msgid "Excellon Specification" -msgstr "Specifiche Excellon" - -#: AppGUI/MainGUI.py:527 -msgid "Gerber Specification" -msgstr "Specifiche Gerber" - -#: AppGUI/MainGUI.py:532 -msgid "Shortcuts List\tF3" -msgstr "Elenco Shortcuts\tF3" - -#: AppGUI/MainGUI.py:534 -msgid "YouTube Channel\tF4" -msgstr "Canale YouTube\tF4" - -#: AppGUI/MainGUI.py:539 -msgid "ReadMe?" -msgstr "" - -#: AppGUI/MainGUI.py:542 App_Main.py:2646 -msgid "About FlatCAM" -msgstr "Informazioni su FlatCAM" - -#: AppGUI/MainGUI.py:551 -msgid "Add Circle\tO" -msgstr "Aggiungi cerchio\tO" - -#: AppGUI/MainGUI.py:554 -msgid "Add Arc\tA" -msgstr "Aggiungi Arco\tA" - -#: AppGUI/MainGUI.py:557 -msgid "Add Rectangle\tR" -msgstr "Aggiungi rettangolo\tR" - -#: AppGUI/MainGUI.py:560 -msgid "Add Polygon\tN" -msgstr "Aggiungi poligono\tN" - -#: AppGUI/MainGUI.py:563 -msgid "Add Path\tP" -msgstr "Aggiungi percorso\tP" - -#: AppGUI/MainGUI.py:566 -msgid "Add Text\tT" -msgstr "Aggiungi Testo\tT" - -#: AppGUI/MainGUI.py:569 -msgid "Polygon Union\tU" -msgstr "Unisci poligono\tU" - -#: AppGUI/MainGUI.py:571 -msgid "Polygon Intersection\tE" -msgstr "Interseca poligono\tE" - -#: AppGUI/MainGUI.py:573 -msgid "Polygon Subtraction\tS" -msgstr "Sottrai poligono\tS" - -#: AppGUI/MainGUI.py:577 -msgid "Cut Path\tX" -msgstr "Taglia percorso\tX" - -#: AppGUI/MainGUI.py:581 -msgid "Copy Geom\tC" -msgstr "Copia Geometria\tC" - -#: AppGUI/MainGUI.py:583 -msgid "Delete Shape\tDEL" -msgstr "Cancella forma\tCANC" - -#: AppGUI/MainGUI.py:587 AppGUI/MainGUI.py:674 -msgid "Move\tM" -msgstr "Sposta\tM" - -#: AppGUI/MainGUI.py:589 -msgid "Buffer Tool\tB" -msgstr "Strumento Buffer\tB" - -#: AppGUI/MainGUI.py:592 -msgid "Paint Tool\tI" -msgstr "Strumento Pittura\tI" - -#: AppGUI/MainGUI.py:595 -msgid "Transform Tool\tAlt+R" -msgstr "Strumento Trasforma\tAlt+R" - -#: AppGUI/MainGUI.py:599 -msgid "Toggle Corner Snap\tK" -msgstr "Attiva/disattiva Snap angoli\tK" - -#: AppGUI/MainGUI.py:605 -msgid ">Excellon Editor<" -msgstr ">Editor Excellon<" - -#: AppGUI/MainGUI.py:609 -msgid "Add Drill Array\tA" -msgstr "Aggiungi matrice fori\tA" - -#: AppGUI/MainGUI.py:611 -msgid "Add Drill\tD" -msgstr "Aggiungi Foro\tD" - -#: AppGUI/MainGUI.py:615 -msgid "Add Slot Array\tQ" -msgstr "Aggiungi Matrice slot\tQ" - -#: AppGUI/MainGUI.py:617 -msgid "Add Slot\tW" -msgstr "Aggiungi Slot\tW" - -#: AppGUI/MainGUI.py:621 -msgid "Resize Drill(S)\tR" -msgstr "Ridimensiona Foro(i)\tR" - -#: AppGUI/MainGUI.py:624 AppGUI/MainGUI.py:668 -msgid "Copy\tC" -msgstr "Copia\tC" - -#: AppGUI/MainGUI.py:626 AppGUI/MainGUI.py:670 -msgid "Delete\tDEL" -msgstr "Cancella\tCANC" - -#: AppGUI/MainGUI.py:631 -msgid "Move Drill(s)\tM" -msgstr "Sposta foro(i)\tM" - -#: AppGUI/MainGUI.py:636 -msgid ">Gerber Editor<" -msgstr ">Editor Gerber<" - -#: AppGUI/MainGUI.py:640 -msgid "Add Pad\tP" -msgstr "Aggiungi Pad\tP" - -#: AppGUI/MainGUI.py:642 -msgid "Add Pad Array\tA" -msgstr "Aggiungi matrice Pad\tA" - -#: AppGUI/MainGUI.py:644 -msgid "Add Track\tT" -msgstr "Aggiungi Traccia\tT" - -#: AppGUI/MainGUI.py:646 -msgid "Add Region\tN" -msgstr "Aggiungi regione\tN" - -#: AppGUI/MainGUI.py:650 -msgid "Poligonize\tAlt+N" -msgstr "Poligonizza\tAlt+N" - -#: AppGUI/MainGUI.py:652 -msgid "Add SemiDisc\tE" -msgstr "Aggiungi SemiDisco\tE" - -#: AppGUI/MainGUI.py:654 -msgid "Add Disc\tD" -msgstr "Aggiungi Disco\tD" - -#: AppGUI/MainGUI.py:656 -msgid "Buffer\tB" -msgstr "Buffer\tB" - -#: AppGUI/MainGUI.py:658 -msgid "Scale\tS" -msgstr "Scala\tS" - -#: AppGUI/MainGUI.py:660 -msgid "Mark Area\tAlt+A" -msgstr "Marchia Area\tAlt+A" - -#: AppGUI/MainGUI.py:662 -msgid "Eraser\tCtrl+E" -msgstr "Gomma\tCtrl+E" - -#: AppGUI/MainGUI.py:664 -msgid "Transform\tAlt+R" -msgstr "Trasforma\tAlt+R" - -#: AppGUI/MainGUI.py:691 -msgid "Enable Plot" -msgstr "Abilita Plot" - -#: AppGUI/MainGUI.py:693 -msgid "Disable Plot" -msgstr "Disabilita Plot" - -#: AppGUI/MainGUI.py:697 -msgid "Set Color" -msgstr "Imposta Colore" - -#: AppGUI/MainGUI.py:700 App_Main.py:9644 -msgid "Red" -msgstr "Rosso" - -#: AppGUI/MainGUI.py:703 App_Main.py:9646 -msgid "Blue" -msgstr "Blu" - -#: AppGUI/MainGUI.py:706 App_Main.py:9649 -msgid "Yellow" -msgstr "Giallo" - -#: AppGUI/MainGUI.py:709 App_Main.py:9651 -msgid "Green" -msgstr "Verde" - -#: AppGUI/MainGUI.py:712 App_Main.py:9653 -msgid "Purple" -msgstr "Porpora" - -#: AppGUI/MainGUI.py:715 App_Main.py:9655 -msgid "Brown" -msgstr "Marrone" - -#: AppGUI/MainGUI.py:718 App_Main.py:9657 App_Main.py:9713 -msgid "White" -msgstr "Bianco" - -#: AppGUI/MainGUI.py:721 App_Main.py:9659 -msgid "Black" -msgstr "Nero" - -#: AppGUI/MainGUI.py:726 App_Main.py:9662 -msgid "Custom" -msgstr "Personalizzato" - -#: AppGUI/MainGUI.py:731 App_Main.py:9696 -msgid "Opacity" -msgstr "Trasparenza" - -#: AppGUI/MainGUI.py:734 App_Main.py:9672 -msgid "Default" -msgstr "Valori di default" - -#: AppGUI/MainGUI.py:739 -msgid "Generate CNC" -msgstr "Genera CNC" - -#: AppGUI/MainGUI.py:741 -msgid "View Source" -msgstr "Vedi sorgente" - -#: AppGUI/MainGUI.py:746 AppGUI/MainGUI.py:851 AppGUI/MainGUI.py:1066 -#: AppGUI/MainGUI.py:1525 AppGUI/MainGUI.py:1886 AppGUI/MainGUI.py:2097 -#: AppGUI/MainGUI.py:4511 AppGUI/ObjectUI.py:1519 -#: AppObjects/FlatCAMGeometry.py:560 AppTools/ToolPanelize.py:551 -#: AppTools/ToolPanelize.py:578 AppTools/ToolPanelize.py:671 -#: AppTools/ToolPanelize.py:700 AppTools/ToolPanelize.py:762 -msgid "Copy" -msgstr "Copia" - -#: AppGUI/MainGUI.py:754 AppGUI/MainGUI.py:1538 AppTools/ToolProperties.py:31 -msgid "Properties" -msgstr "Proprietà" - -#: AppGUI/MainGUI.py:783 -msgid "File Toolbar" -msgstr "Strumenti File" - -#: AppGUI/MainGUI.py:787 -msgid "Edit Toolbar" -msgstr "Strumenti Edit" - -#: AppGUI/MainGUI.py:791 -msgid "View Toolbar" -msgstr "Strumenti Vedi" - -#: AppGUI/MainGUI.py:795 -msgid "Shell Toolbar" -msgstr "Strumenti Shell" - -#: AppGUI/MainGUI.py:799 -msgid "Tools Toolbar" -msgstr "Strumenti Utensili" - -#: AppGUI/MainGUI.py:803 -msgid "Excellon Editor Toolbar" -msgstr "Strumenti Editor Excellon" - -#: AppGUI/MainGUI.py:809 -msgid "Geometry Editor Toolbar" -msgstr "Strumenti Editor Geometrie" - -#: AppGUI/MainGUI.py:813 -msgid "Gerber Editor Toolbar" -msgstr "Strumenti Editor Gerber" - -#: AppGUI/MainGUI.py:817 -msgid "Grid Toolbar" -msgstr "Strumenti Griglia" - -#: AppGUI/MainGUI.py:831 AppGUI/MainGUI.py:1865 App_Main.py:6592 -#: App_Main.py:6597 -msgid "Open Gerber" -msgstr "Apri Gerber" - -#: AppGUI/MainGUI.py:833 AppGUI/MainGUI.py:1867 App_Main.py:6632 -#: App_Main.py:6637 -msgid "Open Excellon" -msgstr "Apri Excellon" - -#: AppGUI/MainGUI.py:836 AppGUI/MainGUI.py:1870 -msgid "Open project" -msgstr "Apri progetto" - -#: AppGUI/MainGUI.py:838 AppGUI/MainGUI.py:1872 -msgid "Save project" -msgstr "Salva progetto" - -#: AppGUI/MainGUI.py:846 AppGUI/MainGUI.py:1881 -msgid "Save Object and close the Editor" -msgstr "Salva Oggetto e chiudi editor" - -#: AppGUI/MainGUI.py:853 AppGUI/MainGUI.py:1888 -msgid "&Delete" -msgstr "&Cancella" - -#: AppGUI/MainGUI.py:856 AppGUI/MainGUI.py:1891 AppGUI/MainGUI.py:4100 -#: AppGUI/MainGUI.py:4308 AppTools/ToolDistance.py:35 -#: AppTools/ToolDistance.py:197 -msgid "Distance Tool" -msgstr "Strumento distanza" - -#: AppGUI/MainGUI.py:858 AppGUI/MainGUI.py:1893 -msgid "Distance Min Tool" -msgstr "Strumento distanza minima" - -#: AppGUI/MainGUI.py:860 AppGUI/MainGUI.py:1895 AppGUI/MainGUI.py:4093 -msgid "Set Origin" -msgstr "Imposta origine" - -#: AppGUI/MainGUI.py:862 AppGUI/MainGUI.py:1897 -msgid "Move to Origin" -msgstr "Sposta su origine" - -#: AppGUI/MainGUI.py:865 AppGUI/MainGUI.py:1899 -msgid "Jump to Location" -msgstr "Vai a posizione" - -#: AppGUI/MainGUI.py:867 AppGUI/MainGUI.py:1901 AppGUI/MainGUI.py:4105 -msgid "Locate in Object" -msgstr "Trova nell'oggetto" - -#: AppGUI/MainGUI.py:873 AppGUI/MainGUI.py:1907 -msgid "&Replot" -msgstr "&Ridisegna" - -#: AppGUI/MainGUI.py:875 AppGUI/MainGUI.py:1909 -msgid "&Clear plot" -msgstr "&Cancella plot" - -#: AppGUI/MainGUI.py:877 AppGUI/MainGUI.py:1911 AppGUI/MainGUI.py:4096 -msgid "Zoom In" -msgstr "Zoom In" - -#: AppGUI/MainGUI.py:879 AppGUI/MainGUI.py:1913 AppGUI/MainGUI.py:4096 -msgid "Zoom Out" -msgstr "Zoom Out" - -#: AppGUI/MainGUI.py:881 AppGUI/MainGUI.py:1429 AppGUI/MainGUI.py:1915 -#: AppGUI/MainGUI.py:4095 -msgid "Zoom Fit" -msgstr "Zoom Tutto" - -#: AppGUI/MainGUI.py:889 AppGUI/MainGUI.py:1921 -msgid "&Command Line" -msgstr "Riga &Comandi" - -#: AppGUI/MainGUI.py:901 AppGUI/MainGUI.py:1933 -msgid "2Sided Tool" -msgstr "Strumento 2 facce" - -#: AppGUI/MainGUI.py:903 AppGUI/MainGUI.py:1935 AppGUI/MainGUI.py:4111 -msgid "Align Objects Tool" -msgstr "Strumento allinea oggetti" - -#: AppGUI/MainGUI.py:905 AppGUI/MainGUI.py:1937 AppGUI/MainGUI.py:4111 -#: AppTools/ToolExtractDrills.py:393 -msgid "Extract Drills Tool" -msgstr "Strumento estrai fori" - -#: AppGUI/MainGUI.py:908 AppGUI/ObjectUI.py:360 AppTools/ToolCutOut.py:440 -msgid "Cutout Tool" -msgstr "Strumento Ritaglia" - -#: AppGUI/MainGUI.py:910 AppGUI/MainGUI.py:1942 AppGUI/ObjectUI.py:346 -#: AppGUI/ObjectUI.py:2087 AppTools/ToolNCC.py:974 -msgid "NCC Tool" -msgstr "Strumento NCC" - -#: AppGUI/MainGUI.py:914 AppGUI/MainGUI.py:1946 AppGUI/MainGUI.py:4113 -#: AppTools/ToolIsolation.py:38 AppTools/ToolIsolation.py:766 -#, fuzzy -#| msgid "Isolation Type" -msgid "Isolation Tool" -msgstr "Tipo isolamento" - -#: AppGUI/MainGUI.py:918 AppGUI/MainGUI.py:1950 -msgid "Panel Tool" -msgstr "Stromento Pannello" - -#: AppGUI/MainGUI.py:920 AppGUI/MainGUI.py:1952 AppTools/ToolFilm.py:569 -msgid "Film Tool" -msgstr "Strumento Film" - -#: AppGUI/MainGUI.py:922 AppGUI/MainGUI.py:1954 AppTools/ToolSolderPaste.py:561 -msgid "SolderPaste Tool" -msgstr "Strumento SolderPaste" - -#: AppGUI/MainGUI.py:924 AppGUI/MainGUI.py:1956 AppGUI/MainGUI.py:4118 -#: AppTools/ToolSub.py:40 -msgid "Subtract Tool" -msgstr "Strumento Sottrai" - -#: AppGUI/MainGUI.py:926 AppGUI/MainGUI.py:1958 AppTools/ToolRulesCheck.py:616 -msgid "Rules Tool" -msgstr "Strumento Righello" - -#: AppGUI/MainGUI.py:928 AppGUI/MainGUI.py:1960 AppGUI/MainGUI.py:4115 -#: AppTools/ToolOptimal.py:33 AppTools/ToolOptimal.py:313 -msgid "Optimal Tool" -msgstr "Strumento Ottimo" - -#: AppGUI/MainGUI.py:933 AppGUI/MainGUI.py:1965 AppGUI/MainGUI.py:4111 -msgid "Calculators Tool" -msgstr "Strumento Calcolatrici" - -#: AppGUI/MainGUI.py:937 AppGUI/MainGUI.py:1969 AppGUI/MainGUI.py:4116 -#: AppTools/ToolQRCode.py:43 AppTools/ToolQRCode.py:391 -msgid "QRCode Tool" -msgstr "Strumento QRCode" - -#: AppGUI/MainGUI.py:939 AppGUI/MainGUI.py:1971 AppGUI/MainGUI.py:4113 -#: AppTools/ToolCopperThieving.py:39 AppTools/ToolCopperThieving.py:572 -msgid "Copper Thieving Tool" -msgstr "Strumento Copper Thieving" - -#: AppGUI/MainGUI.py:942 AppGUI/MainGUI.py:1974 AppGUI/MainGUI.py:4112 -#: AppTools/ToolFiducials.py:33 AppTools/ToolFiducials.py:399 -msgid "Fiducials Tool" -msgstr "Strumento Fiducial" - -#: AppGUI/MainGUI.py:944 AppGUI/MainGUI.py:1976 AppTools/ToolCalibration.py:37 -#: AppTools/ToolCalibration.py:759 -msgid "Calibration Tool" -msgstr "Strumento Calibrazione" - -#: AppGUI/MainGUI.py:946 AppGUI/MainGUI.py:1978 AppGUI/MainGUI.py:4113 -msgid "Punch Gerber Tool" -msgstr "Strumento punzone gerber" - -#: AppGUI/MainGUI.py:948 AppGUI/MainGUI.py:1980 AppTools/ToolInvertGerber.py:31 -msgid "Invert Gerber Tool" -msgstr "Strumento inverti gerber" - -#: AppGUI/MainGUI.py:950 AppGUI/MainGUI.py:1982 AppGUI/MainGUI.py:4115 -#: AppTools/ToolCorners.py:31 -#, fuzzy -#| msgid "Invert Gerber Tool" -msgid "Corner Markers Tool" -msgstr "Strumento inverti gerber" - -#: AppGUI/MainGUI.py:952 AppGUI/MainGUI.py:1984 -#: AppTools/ToolEtchCompensation.py:32 AppTools/ToolEtchCompensation.py:288 -#, fuzzy -#| msgid "Editor Transformation Tool" -msgid "Etch Compensation Tool" -msgstr "Strumento Edito trasformazione" - -#: AppGUI/MainGUI.py:958 AppGUI/MainGUI.py:984 AppGUI/MainGUI.py:1036 -#: AppGUI/MainGUI.py:1990 AppGUI/MainGUI.py:2068 -msgid "Select" -msgstr "Seleziona" - -#: AppGUI/MainGUI.py:960 AppGUI/MainGUI.py:1992 -msgid "Add Drill Hole" -msgstr "Aggiungi Foro" - -#: AppGUI/MainGUI.py:962 AppGUI/MainGUI.py:1994 -msgid "Add Drill Hole Array" -msgstr "Aggiungi matrice Fori" - -#: AppGUI/MainGUI.py:964 AppGUI/MainGUI.py:1517 AppGUI/MainGUI.py:1998 -#: AppGUI/MainGUI.py:4393 -msgid "Add Slot" -msgstr "Aggiungi Slot" - -#: AppGUI/MainGUI.py:966 AppGUI/MainGUI.py:1519 AppGUI/MainGUI.py:2000 -#: AppGUI/MainGUI.py:4392 -msgid "Add Slot Array" -msgstr "Aggiungi matrici Slot" - -#: AppGUI/MainGUI.py:968 AppGUI/MainGUI.py:1522 AppGUI/MainGUI.py:1996 -msgid "Resize Drill" -msgstr "Ridimensiona Foro" - -#: AppGUI/MainGUI.py:972 AppGUI/MainGUI.py:2004 -msgid "Copy Drill" -msgstr "Copia Foro" - -#: AppGUI/MainGUI.py:974 AppGUI/MainGUI.py:2006 -msgid "Delete Drill" -msgstr "Cancella Foro" - -#: AppGUI/MainGUI.py:978 AppGUI/MainGUI.py:2010 -msgid "Move Drill" -msgstr "Sposta Foro" - -#: AppGUI/MainGUI.py:986 AppGUI/MainGUI.py:2018 -msgid "Add Circle" -msgstr "Aggiungi Cerchio" - -#: AppGUI/MainGUI.py:988 AppGUI/MainGUI.py:2020 -msgid "Add Arc" -msgstr "Aggiungi Arco" - -#: AppGUI/MainGUI.py:990 AppGUI/MainGUI.py:2022 -msgid "Add Rectangle" -msgstr "Aggiungi rettangolo" - -#: AppGUI/MainGUI.py:994 AppGUI/MainGUI.py:2026 -msgid "Add Path" -msgstr "Aggiungi Percorso" - -#: AppGUI/MainGUI.py:996 AppGUI/MainGUI.py:2028 -msgid "Add Polygon" -msgstr "Aggiungi Poligono" - -#: AppGUI/MainGUI.py:999 AppGUI/MainGUI.py:2031 -msgid "Add Text" -msgstr "Aggiungi Testo" - -#: AppGUI/MainGUI.py:1001 AppGUI/MainGUI.py:2033 -msgid "Add Buffer" -msgstr "Aggiungi Buffer" - -#: AppGUI/MainGUI.py:1003 AppGUI/MainGUI.py:2035 -msgid "Paint Shape" -msgstr "Disegna Figura" - -#: AppGUI/MainGUI.py:1005 AppGUI/MainGUI.py:1062 AppGUI/MainGUI.py:1458 -#: AppGUI/MainGUI.py:1503 AppGUI/MainGUI.py:2037 AppGUI/MainGUI.py:2093 -msgid "Eraser" -msgstr "Gomma" - -#: AppGUI/MainGUI.py:1009 AppGUI/MainGUI.py:2041 -msgid "Polygon Union" -msgstr "Unione Poligono" - -#: AppGUI/MainGUI.py:1011 AppGUI/MainGUI.py:2043 -msgid "Polygon Explode" -msgstr "Explodi Poligono" - -#: AppGUI/MainGUI.py:1014 AppGUI/MainGUI.py:2046 -msgid "Polygon Intersection" -msgstr "Interseca Poligono" - -#: AppGUI/MainGUI.py:1016 AppGUI/MainGUI.py:2048 -msgid "Polygon Subtraction" -msgstr "Sottrai Poligono" - -#: AppGUI/MainGUI.py:1020 AppGUI/MainGUI.py:2052 -msgid "Cut Path" -msgstr "Taglia Percorso" - -#: AppGUI/MainGUI.py:1022 -msgid "Copy Shape(s)" -msgstr "Copia Forma(e)" - -#: AppGUI/MainGUI.py:1025 -msgid "Delete Shape '-'" -msgstr "Cancella Forme '-'" - -#: AppGUI/MainGUI.py:1027 AppGUI/MainGUI.py:1070 AppGUI/MainGUI.py:1470 -#: AppGUI/MainGUI.py:1507 AppGUI/MainGUI.py:2058 AppGUI/MainGUI.py:2101 -#: AppGUI/ObjectUI.py:109 AppGUI/ObjectUI.py:152 -msgid "Transformations" -msgstr "Trasformazioni" - -#: AppGUI/MainGUI.py:1030 -msgid "Move Objects " -msgstr "Sposta Oggetti " - -#: AppGUI/MainGUI.py:1038 AppGUI/MainGUI.py:2070 AppGUI/MainGUI.py:4512 -msgid "Add Pad" -msgstr "Aggiungi Pad" - -#: AppGUI/MainGUI.py:1042 AppGUI/MainGUI.py:2074 AppGUI/MainGUI.py:4513 -msgid "Add Track" -msgstr "Aggiungi Traccia" - -#: AppGUI/MainGUI.py:1044 AppGUI/MainGUI.py:2076 AppGUI/MainGUI.py:4512 -msgid "Add Region" -msgstr "Aggiungi Regione" - -#: AppGUI/MainGUI.py:1046 AppGUI/MainGUI.py:1489 AppGUI/MainGUI.py:2078 -msgid "Poligonize" -msgstr "Poligonizza" - -#: AppGUI/MainGUI.py:1049 AppGUI/MainGUI.py:1491 AppGUI/MainGUI.py:2081 -msgid "SemiDisc" -msgstr "SemiDisco" - -#: AppGUI/MainGUI.py:1051 AppGUI/MainGUI.py:1493 AppGUI/MainGUI.py:2083 -msgid "Disc" -msgstr "Disco" - -#: AppGUI/MainGUI.py:1059 AppGUI/MainGUI.py:1501 AppGUI/MainGUI.py:2091 -msgid "Mark Area" -msgstr "Marchia Area" - -#: AppGUI/MainGUI.py:1073 AppGUI/MainGUI.py:1474 AppGUI/MainGUI.py:1536 -#: AppGUI/MainGUI.py:2104 AppGUI/MainGUI.py:4512 AppTools/ToolMove.py:27 -msgid "Move" -msgstr "Sposta" - -#: AppGUI/MainGUI.py:1081 -msgid "Snap to grid" -msgstr "Aggancia alla griglia" - -#: AppGUI/MainGUI.py:1084 -msgid "Grid X snapping distance" -msgstr "Distanza aggancio gliglia X" - -#: AppGUI/MainGUI.py:1089 -msgid "" -"When active, value on Grid_X\n" -"is copied to the Grid_Y value." -msgstr "" -"Se attivo, valore su Grid_X\n" -"sarà copiato nel valore Grid_Y." - -#: AppGUI/MainGUI.py:1096 -msgid "Grid Y snapping distance" -msgstr "Distanza aggancio gliglia Y" - -#: AppGUI/MainGUI.py:1101 -msgid "Toggle the display of axis on canvas" -msgstr "" - -#: AppGUI/MainGUI.py:1107 AppGUI/preferences/PreferencesUIManager.py:846 -#: AppGUI/preferences/PreferencesUIManager.py:938 -#: AppGUI/preferences/PreferencesUIManager.py:966 -#: AppGUI/preferences/PreferencesUIManager.py:1072 App_Main.py:5140 -#: App_Main.py:5145 App_Main.py:5168 -msgid "Preferences" -msgstr "Preferenze" - -#: AppGUI/MainGUI.py:1113 -#, fuzzy -#| msgid "&Command Line" -msgid "Command Line" -msgstr "Riga &Comandi" - -#: AppGUI/MainGUI.py:1119 -msgid "HUD (Heads up display)" -msgstr "" - -#: AppGUI/MainGUI.py:1125 AppGUI/preferences/general/GeneralAPPSetGroupUI.py:97 -msgid "" -"Draw a delimiting rectangle on canvas.\n" -"The purpose is to illustrate the limits for our work." -msgstr "" -"Disegna un rettangolo delimitante.\n" -"Lo scopo è quello di mostrare i limiti del nostro lavoro." - -#: AppGUI/MainGUI.py:1135 -msgid "Snap to corner" -msgstr "Aggancia all'angolo" - -#: AppGUI/MainGUI.py:1139 AppGUI/preferences/general/GeneralAPPSetGroupUI.py:78 -msgid "Max. magnet distance" -msgstr "Massima distanza magnete" - -#: AppGUI/MainGUI.py:1175 AppGUI/MainGUI.py:1420 App_Main.py:7639 -msgid "Project" -msgstr "Progetto" - -#: AppGUI/MainGUI.py:1190 -msgid "Selected" -msgstr "Selezionato" - -#: AppGUI/MainGUI.py:1218 AppGUI/MainGUI.py:1226 -msgid "Plot Area" -msgstr "Area Grafica" - -#: AppGUI/MainGUI.py:1253 -msgid "General" -msgstr "Generale" - -#: AppGUI/MainGUI.py:1268 AppTools/ToolCopperThieving.py:74 -#: AppTools/ToolCorners.py:55 AppTools/ToolDblSided.py:64 -#: AppTools/ToolEtchCompensation.py:73 AppTools/ToolExtractDrills.py:61 -#: AppTools/ToolFiducials.py:262 AppTools/ToolInvertGerber.py:72 -#: AppTools/ToolIsolation.py:94 AppTools/ToolOptimal.py:71 -#: AppTools/ToolPunchGerber.py:64 AppTools/ToolQRCode.py:78 -#: AppTools/ToolRulesCheck.py:61 AppTools/ToolSolderPaste.py:67 -#: AppTools/ToolSub.py:70 -msgid "GERBER" -msgstr "GERBER" - -#: AppGUI/MainGUI.py:1278 AppTools/ToolDblSided.py:92 -#: AppTools/ToolRulesCheck.py:199 -msgid "EXCELLON" -msgstr "EXCELLON" - -#: AppGUI/MainGUI.py:1288 AppTools/ToolDblSided.py:120 AppTools/ToolSub.py:125 -msgid "GEOMETRY" -msgstr "GEOMETRIA" - -#: AppGUI/MainGUI.py:1298 -msgid "CNC-JOB" -msgstr "CNC-JOB" - -#: AppGUI/MainGUI.py:1307 AppGUI/ObjectUI.py:328 AppGUI/ObjectUI.py:2062 -msgid "TOOLS" -msgstr "UTENSILI" - -#: AppGUI/MainGUI.py:1316 -msgid "TOOLS 2" -msgstr "UTENSILI 2" - -#: AppGUI/MainGUI.py:1326 -msgid "UTILITIES" -msgstr "UTILITA'" - -#: AppGUI/MainGUI.py:1343 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:201 -msgid "Restore Defaults" -msgstr "Ripristina Defaults" - -#: AppGUI/MainGUI.py:1346 -msgid "" -"Restore the entire set of default values\n" -"to the initial values loaded after first launch." -msgstr "" -"Ripristina l'intero set di valori predefiniti\n" -"ai valori iniziali caricati dopo il primo avvio." - -#: AppGUI/MainGUI.py:1351 -msgid "Open Pref Folder" -msgstr "Aprii cartella preferenze" - -#: AppGUI/MainGUI.py:1354 -msgid "Open the folder where FlatCAM save the preferences files." -msgstr "Apri la cartella dove FlatCAM salva il file delle preferenze." - -#: AppGUI/MainGUI.py:1358 AppGUI/MainGUI.py:1836 -msgid "Clear GUI Settings" -msgstr "Pulisci impostazioni GUI" - -#: AppGUI/MainGUI.py:1362 -msgid "" -"Clear the GUI settings for FlatCAM,\n" -"such as: layout, gui state, style, hdpi support etc." -msgstr "" -"Cancella le impostazioni della GUI per FlatCAM,\n" -"come: layout, stato gui, stile, supporto hdpi ecc." - -#: AppGUI/MainGUI.py:1373 -msgid "Apply" -msgstr "Applica" - -#: AppGUI/MainGUI.py:1376 -msgid "Apply the current preferences without saving to a file." -msgstr "Applica le impostazioni correnti senza salvarle su file." - -#: AppGUI/MainGUI.py:1383 -msgid "" -"Save the current settings in the 'current_defaults' file\n" -"which is the file storing the working default preferences." -msgstr "" -"Salva le impostazioni correnti nel file \"current_defaults\",\n" -"file che memorizza le preferenze predefinite di lavoro." - -#: AppGUI/MainGUI.py:1391 -msgid "Will not save the changes and will close the preferences window." -msgstr "Non salverà le modifiche e chiuderà la finestra delle preferenze." - -#: AppGUI/MainGUI.py:1405 -msgid "Toggle Visibility" -msgstr "(Dis)abilita visibilità" - -#: AppGUI/MainGUI.py:1411 -msgid "New" -msgstr "Nuovo" - -#: AppGUI/MainGUI.py:1413 AppTools/ToolCalibration.py:631 -#: AppTools/ToolCalibration.py:648 AppTools/ToolCalibration.py:815 -#: AppTools/ToolCopperThieving.py:148 AppTools/ToolCopperThieving.py:162 -#: AppTools/ToolCopperThieving.py:608 AppTools/ToolCutOut.py:92 -#: AppTools/ToolDblSided.py:226 AppTools/ToolFilm.py:69 AppTools/ToolFilm.py:92 -#: AppTools/ToolImage.py:49 AppTools/ToolImage.py:271 -#: AppTools/ToolIsolation.py:464 AppTools/ToolIsolation.py:517 -#: AppTools/ToolIsolation.py:1281 AppTools/ToolNCC.py:95 -#: AppTools/ToolNCC.py:558 AppTools/ToolNCC.py:1318 AppTools/ToolPaint.py:501 -#: AppTools/ToolPaint.py:705 AppTools/ToolPanelize.py:116 -#: AppTools/ToolPanelize.py:385 AppTools/ToolPanelize.py:402 -msgid "Geometry" -msgstr "Geometria" - -#: AppGUI/MainGUI.py:1417 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:99 -#: AppTools/ToolAlignObjects.py:74 AppTools/ToolAlignObjects.py:110 -#: AppTools/ToolCalibration.py:197 AppTools/ToolCalibration.py:631 -#: AppTools/ToolCalibration.py:648 AppTools/ToolCalibration.py:807 -#: AppTools/ToolCalibration.py:815 AppTools/ToolCopperThieving.py:148 -#: AppTools/ToolCopperThieving.py:162 AppTools/ToolCopperThieving.py:608 -#: AppTools/ToolDblSided.py:225 AppTools/ToolFilm.py:342 -#: AppTools/ToolIsolation.py:517 AppTools/ToolIsolation.py:1281 -#: AppTools/ToolNCC.py:558 AppTools/ToolNCC.py:1318 AppTools/ToolPaint.py:501 -#: AppTools/ToolPaint.py:705 AppTools/ToolPanelize.py:385 -#: AppTools/ToolPunchGerber.py:149 AppTools/ToolPunchGerber.py:164 -msgid "Excellon" -msgstr "Excellon" - -#: AppGUI/MainGUI.py:1424 -msgid "Grids" -msgstr "Griglie" - -#: AppGUI/MainGUI.py:1431 -msgid "Clear Plot" -msgstr "Svuota Plot" - -#: AppGUI/MainGUI.py:1433 -msgid "Replot" -msgstr "Ridisegna" - -#: AppGUI/MainGUI.py:1437 -msgid "Geo Editor" -msgstr "Edito geometria" - -#: AppGUI/MainGUI.py:1439 -msgid "Path" -msgstr "Percorso" - -#: AppGUI/MainGUI.py:1441 -msgid "Rectangle" -msgstr "Rettangolo" - -#: AppGUI/MainGUI.py:1444 -msgid "Circle" -msgstr "Cerchio" - -#: AppGUI/MainGUI.py:1448 -msgid "Arc" -msgstr "Arco" - -#: AppGUI/MainGUI.py:1462 -msgid "Union" -msgstr "Unione" - -#: AppGUI/MainGUI.py:1464 -msgid "Intersection" -msgstr "Intersezione" - -#: AppGUI/MainGUI.py:1466 -msgid "Subtraction" -msgstr "Sottrazione" - -#: AppGUI/MainGUI.py:1468 AppGUI/ObjectUI.py:2151 -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:56 -msgid "Cut" -msgstr "Taglia" - -#: AppGUI/MainGUI.py:1479 -msgid "Pad" -msgstr "Pad" - -#: AppGUI/MainGUI.py:1481 -msgid "Pad Array" -msgstr "Matrice di Pad" - -#: AppGUI/MainGUI.py:1485 -msgid "Track" -msgstr "Traccia" - -#: AppGUI/MainGUI.py:1487 -msgid "Region" -msgstr "RegioneRegione" - -#: AppGUI/MainGUI.py:1510 -msgid "Exc Editor" -msgstr "Editor Excellon" - -#: AppGUI/MainGUI.py:1512 AppGUI/MainGUI.py:4391 -msgid "Add Drill" -msgstr "Aggiungi foro" - -#: AppGUI/MainGUI.py:1531 App_Main.py:2219 -msgid "Close Editor" -msgstr "Chiudi Editor" - -#: AppGUI/MainGUI.py:1555 -msgid "" -"Absolute measurement.\n" -"Reference is (X=0, Y= 0) position" -msgstr "" -"Misure relative.\n" -"Il riferimento è la posizione (X=0, Y=0)" - -#: AppGUI/MainGUI.py:1563 -#, fuzzy -#| msgid "Application started ..." -msgid "Application units" -msgstr "Applicazione avviata ..." - -#: AppGUI/MainGUI.py:1654 -msgid "Lock Toolbars" -msgstr "Strumenti di blocco" - -#: AppGUI/MainGUI.py:1824 -msgid "FlatCAM Preferences Folder opened." -msgstr "Cartella preferenze FlatCAM aperta." - -#: AppGUI/MainGUI.py:1835 -msgid "Are you sure you want to delete the GUI Settings? \n" -msgstr "Sicuro di voler cancellare le impostazioni GUI?\n" - -#: AppGUI/MainGUI.py:1840 AppGUI/preferences/PreferencesUIManager.py:877 -#: AppGUI/preferences/PreferencesUIManager.py:1123 AppTranslation.py:111 -#: AppTranslation.py:210 App_Main.py:2223 App_Main.py:3158 App_Main.py:5354 -#: App_Main.py:6415 -msgid "Yes" -msgstr "Sì" - -#: AppGUI/MainGUI.py:1841 AppGUI/preferences/PreferencesUIManager.py:1124 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:62 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:164 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:150 -#: AppTools/ToolIsolation.py:174 AppTools/ToolNCC.py:182 -#: AppTools/ToolPaint.py:165 AppTranslation.py:112 AppTranslation.py:211 -#: App_Main.py:2224 App_Main.py:3159 App_Main.py:5355 App_Main.py:6416 -msgid "No" -msgstr "No" - -#: AppGUI/MainGUI.py:1940 -msgid "&Cutout Tool" -msgstr "Strumento Ritaglia" - -#: AppGUI/MainGUI.py:2016 -msgid "Select 'Esc'" -msgstr "Seleziona 'Esc'" - -#: AppGUI/MainGUI.py:2054 -msgid "Copy Objects" -msgstr "Copia oggetti" - -#: AppGUI/MainGUI.py:2056 AppGUI/MainGUI.py:4311 -msgid "Delete Shape" -msgstr "Cancella forma" - -#: AppGUI/MainGUI.py:2062 -msgid "Move Objects" -msgstr "Sposta oggetti" - -#: AppGUI/MainGUI.py:2648 -msgid "" -"Please first select a geometry item to be cutted\n" -"then select the geometry item that will be cutted\n" -"out of the first item. In the end press ~X~ key or\n" -"the toolbar button." -msgstr "" -"Seleziona prima un elemento di geometria da tagliare\n" -"quindi seleziona l'elemento della geometria che verrà tagliato\n" -"dal primo elemento. Alla fine premere il tasto ~ X ~ o\n" -"il pulsante della barra degli strumenti." - -#: AppGUI/MainGUI.py:2655 AppGUI/MainGUI.py:2819 AppGUI/MainGUI.py:2866 -#: AppGUI/MainGUI.py:2888 -msgid "Warning" -msgstr "Avvertenza" - -#: AppGUI/MainGUI.py:2814 -msgid "" -"Please select geometry items \n" -"on which to perform Intersection Tool." -msgstr "" -"Seleziona gli elementi della geometria\n" -"su cui eseguire lo strumento Intersezione." - -#: AppGUI/MainGUI.py:2861 -msgid "" -"Please select geometry items \n" -"on which to perform Substraction Tool." -msgstr "" -"Seleziona gli elementi della geometria\n" -"su cui eseguire lo strumento Sottrazione." - -#: AppGUI/MainGUI.py:2883 -msgid "" -"Please select geometry items \n" -"on which to perform union." -msgstr "" -"Seleziona gli elementi della geometria\n" -"su cui eseguire lo strumento Unione." - -#: AppGUI/MainGUI.py:2968 AppGUI/MainGUI.py:3183 -msgid "Cancelled. Nothing selected to delete." -msgstr "Cancellato. Nessuna seleziona da cancellare." - -#: AppGUI/MainGUI.py:3052 AppGUI/MainGUI.py:3299 -msgid "Cancelled. Nothing selected to copy." -msgstr "Cancellato. Nessuna seleziona da copiare." - -#: AppGUI/MainGUI.py:3098 AppGUI/MainGUI.py:3328 -msgid "Cancelled. Nothing selected to move." -msgstr "Cancellato. Nessuna seleziona da spostare." - -#: AppGUI/MainGUI.py:3354 -msgid "New Tool ..." -msgstr "Nuovo utensile ..." - -#: AppGUI/MainGUI.py:3355 AppTools/ToolIsolation.py:1258 -#: AppTools/ToolNCC.py:924 AppTools/ToolPaint.py:849 -#: AppTools/ToolSolderPaste.py:568 -msgid "Enter a Tool Diameter" -msgstr "Diametro utensile" - -#: AppGUI/MainGUI.py:3367 -msgid "Adding Tool cancelled ..." -msgstr "Aggiunta utensile annullata ..." - -#: AppGUI/MainGUI.py:3381 -msgid "Distance Tool exit..." -msgstr "Uscita dallo strumento Distanza..." - -#: AppGUI/MainGUI.py:3561 App_Main.py:3146 -msgid "Application is saving the project. Please wait ..." -msgstr "L'applicazione sta salvando il progetto. Attendere ..." - -#: AppGUI/MainGUI.py:3668 -#, fuzzy -#| msgid "Disabled" -msgid "Shell disabled." -msgstr "Disabilitato" - -#: AppGUI/MainGUI.py:3678 -#, fuzzy -#| msgid "Enabled" -msgid "Shell enabled." -msgstr "Abilitato" - -#: AppGUI/MainGUI.py:3706 App_Main.py:9155 -msgid "Shortcut Key List" -msgstr "Elenco tasti scorciatoia" - -#: AppGUI/MainGUI.py:4089 -#, fuzzy -#| msgid "Key Shortcut List" -msgid "General Shortcut list" -msgstr "Lista tasti Shortcuts" - -#: AppGUI/MainGUI.py:4090 -msgid "SHOW SHORTCUT LIST" -msgstr "Lista tasti Shortcuts" - -#: AppGUI/MainGUI.py:4090 -msgid "Switch to Project Tab" -msgstr "Vai alla Tab Progetto" - -#: AppGUI/MainGUI.py:4090 -msgid "Switch to Selected Tab" -msgstr "Vai alla Tab Seleziona" - -#: AppGUI/MainGUI.py:4091 -msgid "Switch to Tool Tab" -msgstr "Vai alla Tab Strumenti" - -#: AppGUI/MainGUI.py:4092 -msgid "New Gerber" -msgstr "Nuovo Gerber" - -#: AppGUI/MainGUI.py:4092 -msgid "Edit Object (if selected)" -msgstr "Modifica oggetto (se selezionato)" - -#: AppGUI/MainGUI.py:4092 App_Main.py:5658 -msgid "Grid On/Off" -msgstr "Griglia On/Off" - -#: AppGUI/MainGUI.py:4092 -msgid "Jump to Coordinates" -msgstr "Vai alle coordinate" - -#: AppGUI/MainGUI.py:4093 -msgid "New Excellon" -msgstr "Nuovo Excellon" - -#: AppGUI/MainGUI.py:4093 -msgid "Move Obj" -msgstr "Sposta Oggetto" - -#: AppGUI/MainGUI.py:4093 -msgid "New Geometry" -msgstr "Nuova Geometria" - -#: AppGUI/MainGUI.py:4093 -msgid "Change Units" -msgstr "Cambia unità" - -#: AppGUI/MainGUI.py:4094 -msgid "Open Properties Tool" -msgstr "Apri Strumento Proprietà" - -#: AppGUI/MainGUI.py:4094 -msgid "Rotate by 90 degree CW" -msgstr "Ruota di 90 gradi orari" - -#: AppGUI/MainGUI.py:4094 -msgid "Shell Toggle" -msgstr "Attiva/Disattiva Shell" - -#: AppGUI/MainGUI.py:4095 -msgid "" -"Add a Tool (when in Geometry Selected Tab or in Tools NCC or Tools Paint)" -msgstr "" -"Aggiungi utensile (in Tab Geometrie selezionate o in NCC o Strumento Paint)" - -#: AppGUI/MainGUI.py:4096 -msgid "Flip on X_axis" -msgstr "Capovolsi sull'asse X" - -#: AppGUI/MainGUI.py:4096 -msgid "Flip on Y_axis" -msgstr "Capovolsi sull'asse Y" - -#: AppGUI/MainGUI.py:4099 -msgid "Copy Obj" -msgstr "Copia Oggetto" - -#: AppGUI/MainGUI.py:4099 -msgid "Open Tools Database" -msgstr "Apri DataBase Utensili" - -#: AppGUI/MainGUI.py:4100 -msgid "Open Excellon File" -msgstr "Apri file Excellon" - -#: AppGUI/MainGUI.py:4100 -msgid "Open Gerber File" -msgstr "Apri file Gerber" - -#: AppGUI/MainGUI.py:4100 -msgid "New Project" -msgstr "Nuovo Progetto" - -#: AppGUI/MainGUI.py:4101 App_Main.py:6711 App_Main.py:6714 -msgid "Open Project" -msgstr "Apri progetto" - -#: AppGUI/MainGUI.py:4101 AppTools/ToolPDF.py:41 -msgid "PDF Import Tool" -msgstr "Strumento importazione PDF" - -#: AppGUI/MainGUI.py:4101 -msgid "Save Project" -msgstr "Salva progetto" - -#: AppGUI/MainGUI.py:4101 -msgid "Toggle Plot Area" -msgstr "Attiva/disattiva Area disegno" - -#: AppGUI/MainGUI.py:4104 -msgid "Copy Obj_Name" -msgstr "Copia Nome Oggetto" - -#: AppGUI/MainGUI.py:4105 -msgid "Toggle Code Editor" -msgstr "Attiva/Disattiva Editor codice" - -#: AppGUI/MainGUI.py:4105 -msgid "Toggle the axis" -msgstr "Commuta assi" - -#: AppGUI/MainGUI.py:4105 AppGUI/MainGUI.py:4306 AppGUI/MainGUI.py:4393 -#: AppGUI/MainGUI.py:4515 -msgid "Distance Minimum Tool" -msgstr "Strumento distanza minima" - -#: AppGUI/MainGUI.py:4106 -msgid "Open Preferences Window" -msgstr "Apri finestra preferenze" - -#: AppGUI/MainGUI.py:4107 -msgid "Rotate by 90 degree CCW" -msgstr "Ruota 90 gradi antiorari" - -#: AppGUI/MainGUI.py:4107 -msgid "Run a Script" -msgstr "Esegui Script" - -#: AppGUI/MainGUI.py:4107 -msgid "Toggle the workspace" -msgstr "(Dis)abilita area di lavoro" - -#: AppGUI/MainGUI.py:4107 -msgid "Skew on X axis" -msgstr "Inclina sull'asse X" - -#: AppGUI/MainGUI.py:4108 -msgid "Skew on Y axis" -msgstr "Inclina sull'asse Y" - -#: AppGUI/MainGUI.py:4111 -msgid "2-Sided PCB Tool" -msgstr "Strumento PCB doppia faccia" - -#: AppGUI/MainGUI.py:4112 -#, fuzzy -#| msgid "&Toggle Grid Lines\tAlt+G" -msgid "Toggle Grid Lines" -msgstr "(Dis)&attiva linee griglia\tG" - -#: AppGUI/MainGUI.py:4114 -msgid "Solder Paste Dispensing Tool" -msgstr "Strumento dispensa solder paste" - -#: AppGUI/MainGUI.py:4115 -msgid "Film PCB Tool" -msgstr "Strumento Film PCB" - -#: AppGUI/MainGUI.py:4115 -msgid "Non-Copper Clearing Tool" -msgstr "Strumento No Copper Clearing (No Rame)" - -#: AppGUI/MainGUI.py:4116 -msgid "Paint Area Tool" -msgstr "Strumento disegna area" - -#: AppGUI/MainGUI.py:4116 -msgid "Rules Check Tool" -msgstr "Strumento controllo regole" - -#: AppGUI/MainGUI.py:4117 -msgid "View File Source" -msgstr "Vedi file sorgente" - -#: AppGUI/MainGUI.py:4117 -msgid "Transformations Tool" -msgstr "Strumento Trasformazioni" - -#: AppGUI/MainGUI.py:4118 -msgid "Cutout PCB Tool" -msgstr "Strumento ritaglia PCB" - -#: AppGUI/MainGUI.py:4118 AppTools/ToolPanelize.py:35 -msgid "Panelize PCB" -msgstr "Pannellizza PCB" - -#: AppGUI/MainGUI.py:4119 -msgid "Enable all Plots" -msgstr "Abilita tutti i plot" - -#: AppGUI/MainGUI.py:4119 -msgid "Disable all Plots" -msgstr "Disabilita tutti i plot" - -#: AppGUI/MainGUI.py:4119 -msgid "Disable Non-selected Plots" -msgstr "Disabilita i plot non selezionati" - -#: AppGUI/MainGUI.py:4120 -msgid "Toggle Full Screen" -msgstr "(Dis)abilita schermo intero" - -#: AppGUI/MainGUI.py:4123 -msgid "Abort current task (gracefully)" -msgstr "Annulla l'azione corrente" - -#: AppGUI/MainGUI.py:4126 -msgid "Save Project As" -msgstr "Salva Progetto con nome" - -#: AppGUI/MainGUI.py:4127 -msgid "" -"Paste Special. Will convert a Windows path style to the one required in Tcl " -"Shell" -msgstr "" -"Incolla speciale. Converte uno stile di percorso Windows in quello richiesto " -"in Tcl Shell" - -#: AppGUI/MainGUI.py:4130 -msgid "Open Online Manual" -msgstr "Apri manuale online" - -#: AppGUI/MainGUI.py:4131 -msgid "Open Online Tutorials" -msgstr "Apri tutorial online" - -#: AppGUI/MainGUI.py:4131 -msgid "Refresh Plots" -msgstr "Aggiorna plot" - -#: AppGUI/MainGUI.py:4131 AppTools/ToolSolderPaste.py:517 -msgid "Delete Object" -msgstr "Cancella oggetto" - -#: AppGUI/MainGUI.py:4131 -msgid "Alternate: Delete Tool" -msgstr "Alternativo: strumento elimina" - -#: AppGUI/MainGUI.py:4132 -msgid "(left to Key_1)Toggle Notebook Area (Left Side)" -msgstr "(da sinistra a Key_1) (Dis)attiva area blocco note (lato sinistro)" - -#: AppGUI/MainGUI.py:4132 -msgid "En(Dis)able Obj Plot" -msgstr "(Dis)abilita il plot degli oggetti" - -#: AppGUI/MainGUI.py:4133 -msgid "Deselects all objects" -msgstr "Deseleziona oggetti" - -#: AppGUI/MainGUI.py:4147 -msgid "Editor Shortcut list" -msgstr "Lista shortcut dell'editor" - -#: AppGUI/MainGUI.py:4301 -msgid "GEOMETRY EDITOR" -msgstr "EDITOR GEOMETRIE" - -#: AppGUI/MainGUI.py:4301 -msgid "Draw an Arc" -msgstr "Disegna un arco" - -#: AppGUI/MainGUI.py:4301 -msgid "Copy Geo Item" -msgstr "Copia elemento Geometria" - -#: AppGUI/MainGUI.py:4302 -msgid "Within Add Arc will toogle the ARC direction: CW or CCW" -msgstr "" -"All'interno di Aggiungi arco verrà visualizzata la direzione: oraria CW o " -"antioraria CCW" - -#: AppGUI/MainGUI.py:4302 -msgid "Polygon Intersection Tool" -msgstr "Strumento intersezione poligoni" - -#: AppGUI/MainGUI.py:4303 -msgid "Geo Paint Tool" -msgstr "Strumento disegno geometria" - -#: AppGUI/MainGUI.py:4303 AppGUI/MainGUI.py:4392 AppGUI/MainGUI.py:4512 -msgid "Jump to Location (x, y)" -msgstr "Vai alla posizione (x, y)" - -#: AppGUI/MainGUI.py:4303 -msgid "Toggle Corner Snap" -msgstr "(Dis)abilita l'aggancio agli angoli" - -#: AppGUI/MainGUI.py:4303 -msgid "Move Geo Item" -msgstr "Sposta elemento Geometria" - -#: AppGUI/MainGUI.py:4304 -msgid "Within Add Arc will cycle through the ARC modes" -msgstr "All'interno di Aggiungi arco verranno scorse le modalità degli archi" - -#: AppGUI/MainGUI.py:4304 -msgid "Draw a Polygon" -msgstr "Disegna un poligono" - -#: AppGUI/MainGUI.py:4304 -msgid "Draw a Circle" -msgstr "Disegna un cerchio" - -#: AppGUI/MainGUI.py:4305 -msgid "Draw a Path" -msgstr "Disegna un persorso" - -#: AppGUI/MainGUI.py:4305 -msgid "Draw Rectangle" -msgstr "Disegna un rettangolo" - -#: AppGUI/MainGUI.py:4305 -msgid "Polygon Subtraction Tool" -msgstr "Strumento sottrazione poligono" - -#: AppGUI/MainGUI.py:4305 -msgid "Add Text Tool" -msgstr "Strumento aggiungi testo" - -#: AppGUI/MainGUI.py:4306 -msgid "Polygon Union Tool" -msgstr "Strumento unisci poligono" - -#: AppGUI/MainGUI.py:4306 -msgid "Flip shape on X axis" -msgstr "Ribalta forme sull'asse X" - -#: AppGUI/MainGUI.py:4306 -msgid "Flip shape on Y axis" -msgstr "Ribalta forme sull'asse Y" - -#: AppGUI/MainGUI.py:4307 -msgid "Skew shape on X axis" -msgstr "Inclina forme sull'asse X" - -#: AppGUI/MainGUI.py:4307 -msgid "Skew shape on Y axis" -msgstr "Inclina forme sull'asse Y" - -#: AppGUI/MainGUI.py:4307 -msgid "Editor Transformation Tool" -msgstr "Strumento Edito trasformazione" - -#: AppGUI/MainGUI.py:4308 -msgid "Offset shape on X axis" -msgstr "Applica offset alle forme sull'asse X" - -#: AppGUI/MainGUI.py:4308 -msgid "Offset shape on Y axis" -msgstr "Applica offset alle forme sull'asse Y" - -#: AppGUI/MainGUI.py:4309 AppGUI/MainGUI.py:4395 AppGUI/MainGUI.py:4517 -msgid "Save Object and Exit Editor" -msgstr "Salva oggetto ed esci dall'Editor" - -#: AppGUI/MainGUI.py:4309 -msgid "Polygon Cut Tool" -msgstr "Strumento taglia poligono" - -#: AppGUI/MainGUI.py:4310 -msgid "Rotate Geometry" -msgstr "Ruota Geometria" - -#: AppGUI/MainGUI.py:4310 -msgid "Finish drawing for certain tools" -msgstr "Completa disegno per alcuni utensili" - -#: AppGUI/MainGUI.py:4310 AppGUI/MainGUI.py:4395 AppGUI/MainGUI.py:4515 -msgid "Abort and return to Select" -msgstr "Annulla e torna a Seleziona" - -#: AppGUI/MainGUI.py:4391 -msgid "EXCELLON EDITOR" -msgstr "EDITOR EXCELLON" - -#: AppGUI/MainGUI.py:4391 -msgid "Copy Drill(s)" -msgstr "Copia foro(i)" - -#: AppGUI/MainGUI.py:4392 -msgid "Move Drill(s)" -msgstr "Sposta foro(i)" - -#: AppGUI/MainGUI.py:4393 -msgid "Add a new Tool" -msgstr "Aggiungi un nuovo TOOL" - -#: AppGUI/MainGUI.py:4394 -msgid "Delete Drill(s)" -msgstr "Cancella foro(i)" - -#: AppGUI/MainGUI.py:4394 -msgid "Alternate: Delete Tool(s)" -msgstr "Alternativo: strumenti di cancellazione" - -#: AppGUI/MainGUI.py:4511 -msgid "GERBER EDITOR" -msgstr "EDITOR GERBER" - -#: AppGUI/MainGUI.py:4511 -msgid "Add Disc" -msgstr "Aggiungi disco" - -#: AppGUI/MainGUI.py:4511 -msgid "Add SemiDisc" -msgstr "Aggiungi semidisco" - -#: AppGUI/MainGUI.py:4513 -msgid "Within Track & Region Tools will cycle in REVERSE the bend modes" -msgstr "" -"All'interno dello strumento Tracce & Regioni le modalità piegature " -"scorreranno all'indietro" - -#: AppGUI/MainGUI.py:4514 -msgid "Within Track & Region Tools will cycle FORWARD the bend modes" -msgstr "" -"All'interno dello strumento Tracce & Regioni le modalità piegature " -"scorreranno in avanti" - -#: AppGUI/MainGUI.py:4515 -msgid "Alternate: Delete Apertures" -msgstr "Alternativo: cancella aperture" - -#: AppGUI/MainGUI.py:4516 -msgid "Eraser Tool" -msgstr "Strumento cancella" - -#: AppGUI/MainGUI.py:4517 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:221 -msgid "Mark Area Tool" -msgstr "Strumento marca area" - -#: AppGUI/MainGUI.py:4517 -msgid "Poligonize Tool" -msgstr "Strumento Poligonizza" - -#: AppGUI/MainGUI.py:4517 -msgid "Transformation Tool" -msgstr "Strumento trasformazione" - -#: AppGUI/ObjectUI.py:38 -#, fuzzy -#| msgid "Object" -msgid "App Object" -msgstr "Oggetto" - -#: AppGUI/ObjectUI.py:78 AppTools/ToolIsolation.py:77 -msgid "" -"BASIC is suitable for a beginner. Many parameters\n" -"are hidden from the user in this mode.\n" -"ADVANCED mode will make available all parameters.\n" -"\n" -"To change the application LEVEL, go to:\n" -"Edit -> Preferences -> General and check:\n" -"'APP. LEVEL' radio button." -msgstr "" -"BASIC è adatto per un principiante. Molti parametri\n" -"sono nascosti all'utente in questa modalità.\n" -"La modalità AVANZATA renderà disponibili tutti i parametri.\n" -"\n" -"Per modificare il LIVELLO dell'applicazione, vai su:\n" -"Modifica -> Preferenze -> Generale e seleziona:\n" -"il pulsante 'APP. Livello'." - -#: AppGUI/ObjectUI.py:111 AppGUI/ObjectUI.py:154 -msgid "Geometrical transformations of the current object." -msgstr "Trasformazioni geometriche dell'oggetto corrente." - -#: AppGUI/ObjectUI.py:120 -msgid "" -"Factor by which to multiply\n" -"geometric features of this object.\n" -"Expressions are allowed. E.g: 1/25.4" -msgstr "" -"Fattore per cui moltiplicare\n" -"le feature geometriche dell'oggetto.\n" -"Sono permesse espressioni. Es: 1/25.4" - -#: AppGUI/ObjectUI.py:127 -msgid "Perform scaling operation." -msgstr "Esegui azione di riscalatura." - -#: AppGUI/ObjectUI.py:138 -msgid "" -"Amount by which to move the object\n" -"in the x and y axes in (x, y) format.\n" -"Expressions are allowed. E.g: (1/3.2, 0.5*3)" -msgstr "" -"Quantità per cui muovere l'oggetto\n" -"negli assi X ed Y nel formato (x,y).\n" -"Sono permesse espressioni. Es: (1/3.2,0.5*3)" - -#: AppGUI/ObjectUI.py:145 -msgid "Perform the offset operation." -msgstr "Esegui l'operazione offset." - -#: AppGUI/ObjectUI.py:162 AppGUI/ObjectUI.py:173 AppTool.py:280 AppTool.py:291 -msgid "Edited value is out of range" -msgstr "Il valore modificato è fuori range" - -#: AppGUI/ObjectUI.py:168 AppGUI/ObjectUI.py:175 AppTool.py:286 AppTool.py:293 -msgid "Edited value is within limits." -msgstr "Il valore editato è entro i limiti." - -#: AppGUI/ObjectUI.py:187 -msgid "Gerber Object" -msgstr "Oggetto Gerber" - -#: AppGUI/ObjectUI.py:196 AppGUI/ObjectUI.py:496 AppGUI/ObjectUI.py:1313 -#: AppGUI/ObjectUI.py:2135 AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:30 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:33 -#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:31 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:31 -msgid "Plot Options" -msgstr "Opzioni disegno" - -#: AppGUI/ObjectUI.py:202 AppGUI/ObjectUI.py:502 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:47 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:45 -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:119 -#: AppTools/ToolCopperThieving.py:195 -msgid "Solid" -msgstr "Solido" - -#: AppGUI/ObjectUI.py:204 AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:47 -msgid "Solid color polygons." -msgstr "Poligono colore pieno." - -#: AppGUI/ObjectUI.py:210 AppGUI/ObjectUI.py:510 AppGUI/ObjectUI.py:1319 -msgid "Multi-Color" -msgstr "Multi-Colore" - -#: AppGUI/ObjectUI.py:212 AppGUI/ObjectUI.py:512 AppGUI/ObjectUI.py:1321 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:56 -#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:47 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:54 -msgid "Draw polygons in different colors." -msgstr "Disegna poligoni in colori diversi." - -#: AppGUI/ObjectUI.py:228 AppGUI/ObjectUI.py:548 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:40 -#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:38 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:38 -msgid "Plot" -msgstr "Disegna" - -#: AppGUI/ObjectUI.py:229 AppGUI/ObjectUI.py:550 AppGUI/ObjectUI.py:1383 -#: AppGUI/ObjectUI.py:2245 AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:41 -#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:40 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:40 -msgid "Plot (show) this object." -msgstr "Disegna (mostra) questo oggetto." - -#: AppGUI/ObjectUI.py:258 -msgid "" -"Toggle the display of the Gerber Apertures Table.\n" -"When unchecked, it will delete all mark shapes\n" -"that are drawn on canvas." -msgstr "" -"(Dis)attiva la visualizzazione della tabella delle aperture del Gerber.\n" -"Se deselezionato, eliminerà tutte le forme dei segni disegnati." - -#: AppGUI/ObjectUI.py:268 -msgid "Mark All" -msgstr "Marchia tutto" - -#: AppGUI/ObjectUI.py:270 -msgid "" -"When checked it will display all the apertures.\n" -"When unchecked, it will delete all mark shapes\n" -"that are drawn on canvas." -msgstr "" -"Se selezionato, mostrerà tutte le aperture.\n" -"Se deselezionato, eliminerà tutte le forme disegnati." - -#: AppGUI/ObjectUI.py:298 -msgid "Mark the aperture instances on canvas." -msgstr "Marchia le aperture." - -#: AppGUI/ObjectUI.py:305 AppTools/ToolIsolation.py:579 -msgid "Buffer Solid Geometry" -msgstr "Geometria solida del buffer" - -#: AppGUI/ObjectUI.py:307 AppTools/ToolIsolation.py:581 -msgid "" -"This button is shown only when the Gerber file\n" -"is loaded without buffering.\n" -"Clicking this will create the buffered geometry\n" -"required for isolation." -msgstr "" -"Questo pulsante viene visualizzato solo quando il file Gerber\n" -"viene caricato senza buffering.\n" -"Facendo clic su questo si creerà la geometria bufferizzata\n" -"richiesta per l'isolamento." - -#: AppGUI/ObjectUI.py:332 -msgid "Isolation Routing" -msgstr "Percorso di isolamento" - -#: AppGUI/ObjectUI.py:334 AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:32 -#: AppTools/ToolIsolation.py:67 -#, fuzzy -#| msgid "" -#| "Create a Geometry object with\n" -#| "toolpaths to cut outside polygons." -msgid "" -"Create a Geometry object with\n" -"toolpaths to cut around polygons." -msgstr "" -"Crea un oggetto Geometria con\n" -"percorsi utensile per tagliare esternamente i poligoni." - -#: AppGUI/ObjectUI.py:348 AppGUI/ObjectUI.py:2089 AppTools/ToolNCC.py:599 -msgid "" -"Create the Geometry Object\n" -"for non-copper routing." -msgstr "" -"Crea l'oggetto Geometria\n" -"per l'isolamento non-rame." - -#: AppGUI/ObjectUI.py:362 -msgid "" -"Generate the geometry for\n" -"the board cutout." -msgstr "" -"Genera la geometria per\n" -"il ritaglio della scheda." - -#: AppGUI/ObjectUI.py:379 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:32 -msgid "Non-copper regions" -msgstr "Regioni non-rame" - -#: AppGUI/ObjectUI.py:381 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:34 -msgid "" -"Create polygons covering the\n" -"areas without copper on the PCB.\n" -"Equivalent to the inverse of this\n" -"object. Can be used to remove all\n" -"copper from a specified region." -msgstr "" -"Crea poligoni che coprono le\n" -"aree senza rame sul PCB.\n" -"Equivalente all'inverso di questo\n" -"oggetto. Può essere usato per rimuovere tutto\n" -"il rame da una regione specifica." - -#: AppGUI/ObjectUI.py:391 AppGUI/ObjectUI.py:432 -#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:46 -#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:79 -msgid "Boundary Margin" -msgstr "Margine dei bordi" - -#: AppGUI/ObjectUI.py:393 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:48 -msgid "" -"Specify the edge of the PCB\n" -"by drawing a box around all\n" -"objects with this minimum\n" -"distance." -msgstr "" -"Specifica il bordo del PCB\n" -"disegnando una contenitore intorno a tutti\n" -"gli oggetti con questa distanza minima." - -#: AppGUI/ObjectUI.py:408 AppGUI/ObjectUI.py:446 -#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:61 -#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:92 -msgid "Rounded Geo" -msgstr "Geometria arrotondata" - -#: AppGUI/ObjectUI.py:410 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:63 -msgid "Resulting geometry will have rounded corners." -msgstr "La geometria risultante avrà angoli arrotondati." - -#: AppGUI/ObjectUI.py:414 AppGUI/ObjectUI.py:455 -#: AppTools/ToolSolderPaste.py:373 -msgid "Generate Geo" -msgstr "Genera Geometria" - -#: AppGUI/ObjectUI.py:424 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:73 -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:137 -#: AppTools/ToolPanelize.py:99 AppTools/ToolQRCode.py:201 -msgid "Bounding Box" -msgstr "Rettangolo contenitore" - -#: AppGUI/ObjectUI.py:426 -msgid "" -"Create a geometry surrounding the Gerber object.\n" -"Square shape." -msgstr "" -"Crea una geometria che circonda l'oggetto Gerber.\n" -"Forma quadrata." - -#: AppGUI/ObjectUI.py:434 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:81 -msgid "" -"Distance of the edges of the box\n" -"to the nearest polygon." -msgstr "" -"Distanza del contenitore dai bordi\n" -"al poligono più vicino." - -#: AppGUI/ObjectUI.py:448 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:94 -msgid "" -"If the bounding box is \n" -"to have rounded corners\n" -"their radius is equal to\n" -"the margin." -msgstr "" -"Se il rettangolo contenitore deve\n" -"avere angoli arrotondati\n" -"il loro raggio è uguale al\n" -"margine." - -#: AppGUI/ObjectUI.py:457 -msgid "Generate the Geometry object." -msgstr "Genera l'oggetto geometria." - -#: AppGUI/ObjectUI.py:484 -msgid "Excellon Object" -msgstr "Oggetto Excellon" - -#: AppGUI/ObjectUI.py:504 -msgid "Solid circles." -msgstr "Cercio pieno." - -#: AppGUI/ObjectUI.py:560 AppGUI/ObjectUI.py:655 AppGUI/ObjectUI.py:2266 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:71 -#: AppTools/ToolProperties.py:166 -msgid "Drills" -msgstr "Fori" - -#: AppGUI/ObjectUI.py:560 AppGUI/ObjectUI.py:656 AppGUI/ObjectUI.py:2266 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:158 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:72 -#: AppTools/ToolProperties.py:168 -msgid "Slots" -msgstr "Slots" - -#: AppGUI/ObjectUI.py:565 -msgid "" -"This is the Tool Number.\n" -"When ToolChange is checked, on toolchange event this value\n" -"will be showed as a T1, T2 ... Tn in the Machine Code.\n" -"\n" -"Here the tools are selected for G-code generation." -msgstr "" -"Questo è il numero dello strumento.\n" -"Quando CambioUtensile è attivo, in caso di cambio utensile questo valore\n" -"verrà mostrato come T1, T2 ... Tn nel codice macchina.\n" -"\n" -"Qui vengono selezionati gli utensili per la generazione del codice G." - -#: AppGUI/ObjectUI.py:570 AppGUI/ObjectUI.py:1407 AppTools/ToolPaint.py:141 -msgid "" -"Tool Diameter. It's value (in current FlatCAM units) \n" -"is the cut width into the material." -msgstr "" -"Diametro utensile. Il suo valore (in unità FlatCAM) \n" -"è la larghezza di taglio nel materiale." - -#: AppGUI/ObjectUI.py:573 -msgid "" -"The number of Drill holes. Holes that are drilled with\n" -"a drill bit." -msgstr "" -"Numero di fori da realizzare. Fori realizzati con una\n" -"punta da trapano." - -#: AppGUI/ObjectUI.py:576 -msgid "" -"The number of Slot holes. Holes that are created by\n" -"milling them with an endmill bit." -msgstr "" -"Numero di fori slot da realizzare. Fori realizzati fresando\n" -"con un utensile a candela." - -#: AppGUI/ObjectUI.py:579 -msgid "" -"Toggle display of the drills for the current tool.\n" -"This does not select the tools for G-code generation." -msgstr "" -"(Dis)attiva la visualizzazione delle punte per lo strumento corrente.\n" -"Non seleziona gli utensili per la generazione del codice G." - -#: AppGUI/ObjectUI.py:597 AppGUI/ObjectUI.py:1564 -#: AppObjects/FlatCAMExcellon.py:537 AppObjects/FlatCAMExcellon.py:836 -#: AppObjects/FlatCAMExcellon.py:852 AppObjects/FlatCAMExcellon.py:856 -#: AppObjects/FlatCAMGeometry.py:380 AppObjects/FlatCAMGeometry.py:825 -#: AppObjects/FlatCAMGeometry.py:861 AppTools/ToolIsolation.py:313 -#: AppTools/ToolIsolation.py:1051 AppTools/ToolIsolation.py:1171 -#: AppTools/ToolIsolation.py:1185 AppTools/ToolNCC.py:331 -#: AppTools/ToolNCC.py:797 AppTools/ToolNCC.py:811 AppTools/ToolNCC.py:1214 -#: AppTools/ToolPaint.py:313 AppTools/ToolPaint.py:766 -#: AppTools/ToolPaint.py:778 AppTools/ToolPaint.py:1190 -msgid "Parameters for" -msgstr "Parametri per" - -#: AppGUI/ObjectUI.py:600 AppGUI/ObjectUI.py:1567 AppTools/ToolIsolation.py:316 -#: AppTools/ToolNCC.py:334 AppTools/ToolPaint.py:316 -msgid "" -"The data used for creating GCode.\n" -"Each tool store it's own set of such data." -msgstr "" -"Dati usati per la creazione di GCode.\n" -"Ogni deposito di Utensili ha il proprio set di dati." - -#: AppGUI/ObjectUI.py:626 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:48 -msgid "" -"Operation type:\n" -"- Drilling -> will drill the drills/slots associated with this tool\n" -"- Milling -> will mill the drills/slots" -msgstr "" -"Tipo di operazione:\n" -"- Foratura -> eseguirà i fori/slot associati a questo strumento\n" -"- Fresatura -> freserà i fori(slot" - -#: AppGUI/ObjectUI.py:632 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:54 -msgid "Drilling" -msgstr "Foratura" - -#: AppGUI/ObjectUI.py:633 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:55 -msgid "Milling" -msgstr "Fresatura" - -#: AppGUI/ObjectUI.py:648 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:64 -msgid "" -"Milling type:\n" -"- Drills -> will mill the drills associated with this tool\n" -"- Slots -> will mill the slots associated with this tool\n" -"- Both -> will mill both drills and mills or whatever is available" -msgstr "" -"Tipo di fresatura:\n" -"- Fori -> eseguirà la fresatura dei fori associati a questo strumento\n" -"- Slot -> eseguirà la fresatura degli slot associati a questo strumento\n" -"- Entrambi -> eseguirà la fresatura di trapani e mulini o qualsiasi altra " -"cosa sia disponibile" - -#: AppGUI/ObjectUI.py:657 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:73 -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:199 -#: AppTools/ToolFilm.py:241 -msgid "Both" -msgstr "Entrambi" - -#: AppGUI/ObjectUI.py:665 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:80 -msgid "Milling Diameter" -msgstr "Diametro fresa" - -#: AppGUI/ObjectUI.py:667 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:82 -msgid "The diameter of the tool who will do the milling" -msgstr "Diametro dell'utensile che freserà" - -#: AppGUI/ObjectUI.py:681 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:95 -msgid "" -"Drill depth (negative)\n" -"below the copper surface." -msgstr "" -"Profondità della foratura (negativo)\n" -"sotto la superficie del rame." - -#: AppGUI/ObjectUI.py:700 AppGUI/ObjectUI.py:1626 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:113 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:69 -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:79 -#: AppTools/ToolCutOut.py:159 -msgid "Multi-Depth" -msgstr "Multi-Profondità" - -#: AppGUI/ObjectUI.py:703 AppGUI/ObjectUI.py:1629 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:116 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:72 -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:82 -#: AppTools/ToolCutOut.py:162 -msgid "" -"Use multiple passes to limit\n" -"the cut depth in each pass. Will\n" -"cut multiple times until Cut Z is\n" -"reached." -msgstr "" -"Usa più passaggi per limitare\n" -"la profondità di taglio in ogni passaggio.\n" -"Taglierà più volte fino a quando non avrà raggiunto\n" -"Cut Z (profondità di taglio)." - -#: AppGUI/ObjectUI.py:716 AppGUI/ObjectUI.py:1643 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:128 -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:94 -#: AppTools/ToolCutOut.py:176 -msgid "Depth of each pass (positive)." -msgstr "Profondità di ogni passaggio (positivo)." - -#: AppGUI/ObjectUI.py:727 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:136 -msgid "" -"Tool height when travelling\n" -"across the XY plane." -msgstr "" -"Altezza dell'utensile durante gli spostamenti\n" -"sul piano XY." - -#: AppGUI/ObjectUI.py:748 AppGUI/ObjectUI.py:1673 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:188 -msgid "" -"Cutting speed in the XY\n" -"plane in units per minute" -msgstr "" -"Velocità di taglio sul piano XY\n" -"in unità al minuto" - -#: AppGUI/ObjectUI.py:763 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:209 -msgid "" -"Tool speed while drilling\n" -"(in units per minute).\n" -"So called 'Plunge' feedrate.\n" -"This is for linear move G01." -msgstr "" -"Velocità dell'utensile durante la perforazione\n" -"(in unità al minuto).\n" -"E' la cosiddetta velocità di avanzamento \"a tuffo\".\n" -"Questo è per lo spostamento lineare G01." - -#: AppGUI/ObjectUI.py:778 AppGUI/ObjectUI.py:1700 -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:80 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:67 -msgid "Feedrate Rapids" -msgstr "Avanzamenti rapidi" - -#: AppGUI/ObjectUI.py:780 -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:82 -msgid "" -"Tool speed while drilling\n" -"(in units per minute).\n" -"This is for the rapid move G00.\n" -"It is useful only for Marlin,\n" -"ignore for any other cases." -msgstr "" -"Velocità dell'utensile durante la perforazione\n" -"(in unità al minuto).\n" -"Questo è per la mossa rapida G00.\n" -"È utile solo per Marlin,\n" -"ignora in tutti gli altri casi." - -#: AppGUI/ObjectUI.py:800 AppGUI/ObjectUI.py:1720 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:85 -msgid "Re-cut" -msgstr "Ri-taglia" - -#: AppGUI/ObjectUI.py:802 AppGUI/ObjectUI.py:815 AppGUI/ObjectUI.py:1722 -#: AppGUI/ObjectUI.py:1734 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:87 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:99 -msgid "" -"In order to remove possible\n" -"copper leftovers where first cut\n" -"meet with last cut, we generate an\n" -"extended cut over the first cut section." -msgstr "" -"Per rimuovere possibili residui\n" -"di rame rimasti dove l'inizio del taglio\n" -"incontria l'ultimo taglio, generiamo un\n" -"taglio esteso sulla prima sezione di taglio." - -#: AppGUI/ObjectUI.py:828 AppGUI/ObjectUI.py:1743 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:217 -#: AppObjects/FlatCAMExcellon.py:1512 AppObjects/FlatCAMGeometry.py:1687 -msgid "Spindle speed" -msgstr "Velocità mandrino" - -#: AppGUI/ObjectUI.py:830 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:224 -msgid "" -"Speed of the spindle\n" -"in RPM (optional)" -msgstr "" -"Valocità del mandrino\n" -"in RMP (opzionale)" - -#: AppGUI/ObjectUI.py:845 AppGUI/ObjectUI.py:1762 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:238 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:235 -msgid "" -"Pause to allow the spindle to reach its\n" -"speed before cutting." -msgstr "" -"Pausa per consentire al mandrino di raggiungere la sua\n" -"velocità prima del taglio." - -#: AppGUI/ObjectUI.py:856 AppGUI/ObjectUI.py:1772 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:246 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:240 -msgid "Number of time units for spindle to dwell." -msgstr "Numero di unità di tempo in cui il mandrino deve aspettare." - -#: AppGUI/ObjectUI.py:866 -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:46 -msgid "Offset Z" -msgstr "Distanza Z" - -#: AppGUI/ObjectUI.py:868 -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:48 -msgid "" -"Some drill bits (the larger ones) need to drill deeper\n" -"to create the desired exit hole diameter due of the tip shape.\n" -"The value here can compensate the Cut Z parameter." -msgstr "" -"Alcune punte (quelle più grandi) devono forare più in profondità\n" -"per creare il diametro del foro di uscita desiderato a causa della forma " -"della punta.\n" -"Questo valore può compensare il parametro Cut Z." - -#: AppGUI/ObjectUI.py:928 AppGUI/ObjectUI.py:1826 AppTools/ToolIsolation.py:412 -#: AppTools/ToolNCC.py:492 AppTools/ToolPaint.py:422 -msgid "Apply parameters to all tools" -msgstr "Applica parametri a tutti gli utensili" - -#: AppGUI/ObjectUI.py:930 AppGUI/ObjectUI.py:1828 AppTools/ToolIsolation.py:414 -#: AppTools/ToolNCC.py:494 AppTools/ToolPaint.py:424 -msgid "" -"The parameters in the current form will be applied\n" -"on all the tools from the Tool Table." -msgstr "" -"Saranno applicati i parametri nel modulo corrente\n" -"su tutti gli utensili dalla tabella." - -#: AppGUI/ObjectUI.py:941 AppGUI/ObjectUI.py:1839 AppTools/ToolIsolation.py:425 -#: AppTools/ToolNCC.py:505 AppTools/ToolPaint.py:435 -msgid "Common Parameters" -msgstr "Parametri comuni" - -#: AppGUI/ObjectUI.py:943 AppGUI/ObjectUI.py:1841 AppTools/ToolIsolation.py:427 -#: AppTools/ToolNCC.py:507 AppTools/ToolPaint.py:437 -msgid "Parameters that are common for all tools." -msgstr "Parametri usati da tutti gli utensili." - -#: AppGUI/ObjectUI.py:948 AppGUI/ObjectUI.py:1846 -msgid "Tool change Z" -msgstr "Z cambio utensile" - -#: AppGUI/ObjectUI.py:950 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:154 -msgid "" -"Include tool-change sequence\n" -"in G-Code (Pause for tool change)." -msgstr "" -"Includi sequenza di cambio utensile\n" -"nel codice G (Pausa per cambio utensile)." - -#: AppGUI/ObjectUI.py:957 AppGUI/ObjectUI.py:1857 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:162 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:135 -msgid "" -"Z-axis position (height) for\n" -"tool change." -msgstr "" -"Posizione sull'asse Z (altezza) per\n" -"il cambio utensile." - -#: AppGUI/ObjectUI.py:974 -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:71 -msgid "" -"Height of the tool just after start.\n" -"Delete the value if you don't need this feature." -msgstr "" -"Altezza dell'utensile subito dopo l'avvio.\n" -"Elimina il valore se non hai bisogno di questa funzione." - -#: AppGUI/ObjectUI.py:983 AppGUI/ObjectUI.py:1885 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:178 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:154 -msgid "End move Z" -msgstr "Spostamento finale Z" - -#: AppGUI/ObjectUI.py:985 AppGUI/ObjectUI.py:1887 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:180 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:156 -msgid "" -"Height of the tool after\n" -"the last move at the end of the job." -msgstr "" -"Altezza dell'utensile dopo\n" -"l'ultimo movimento alla fine del lavoro." - -#: AppGUI/ObjectUI.py:1002 AppGUI/ObjectUI.py:1904 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:195 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:174 -msgid "End move X,Y" -msgstr "Spostamento finale X,Y" - -#: AppGUI/ObjectUI.py:1004 AppGUI/ObjectUI.py:1906 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:197 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:176 -msgid "" -"End move X,Y position. In format (x,y).\n" -"If no value is entered then there is no move\n" -"on X,Y plane at the end of the job." -msgstr "" -"Posizione movimento finale X,Y. Nel formato (x, y).\n" -"Se non viene inserito alcun valore, non sarà possibile spostare\n" -"sul piano X,Y alla fine del lavoro." - -#: AppGUI/ObjectUI.py:1014 AppGUI/ObjectUI.py:1780 -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:96 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:108 -msgid "Probe Z depth" -msgstr "Tastatore profondità Z" - -#: AppGUI/ObjectUI.py:1016 AppGUI/ObjectUI.py:1782 -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:98 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:110 -msgid "" -"The maximum depth that the probe is allowed\n" -"to probe. Negative value, in current units." -msgstr "" -"La profondità massima consentita di testare\n" -"alla sonda. Valore negativo, in attuali unità." - -#: AppGUI/ObjectUI.py:1033 AppGUI/ObjectUI.py:1797 -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:109 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:123 -msgid "Feedrate Probe" -msgstr "Velocità avanzamento sonda" - -#: AppGUI/ObjectUI.py:1035 AppGUI/ObjectUI.py:1799 -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:111 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:125 -msgid "The feedrate used while the probe is probing." -msgstr "La velocità usata durante l'avanzamento del tastatore." - -#: AppGUI/ObjectUI.py:1051 -msgid "Preprocessor E" -msgstr "Preprocessore E" - -#: AppGUI/ObjectUI.py:1053 -msgid "" -"The preprocessor JSON file that dictates\n" -"Gcode output for Excellon Objects." -msgstr "" -"File JSON del preprocessore che istruisce\n" -"il GCode di uscita per oggetti Excellon." - -#: AppGUI/ObjectUI.py:1063 -msgid "Preprocessor G" -msgstr "Preprocessore G" - -#: AppGUI/ObjectUI.py:1065 -msgid "" -"The preprocessor JSON file that dictates\n" -"Gcode output for Geometry (Milling) Objects." -msgstr "" -"File JSON del preprocessore che istruisce\n" -"il GCode di uscita da oggetti Geometria (fresatura)." - -#: AppGUI/ObjectUI.py:1079 AppGUI/ObjectUI.py:1934 -msgid "Add exclusion areas" -msgstr "" - -#: AppGUI/ObjectUI.py:1082 AppGUI/ObjectUI.py:1937 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:212 -msgid "" -"Include exclusion areas.\n" -"In those areas the travel of the tools\n" -"is forbidden." -msgstr "" - -#: AppGUI/ObjectUI.py:1103 AppGUI/ObjectUI.py:1958 -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:48 -#: AppTools/ToolCalibration.py:186 AppTools/ToolNCC.py:109 -#: AppTools/ToolPaint.py:102 AppTools/ToolPanelize.py:98 -msgid "Object" -msgstr "Oggetto" - -#: AppGUI/ObjectUI.py:1103 AppGUI/ObjectUI.py:1122 AppGUI/ObjectUI.py:1958 -#: AppGUI/ObjectUI.py:1977 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:232 -msgid "Strategy" -msgstr "" - -#: AppGUI/ObjectUI.py:1103 AppGUI/ObjectUI.py:1134 AppGUI/ObjectUI.py:1958 -#: AppGUI/ObjectUI.py:1989 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:244 -#, fuzzy -#| msgid "Overlap" -msgid "Over Z" -msgstr "Sovrapposizione" - -#: AppGUI/ObjectUI.py:1105 AppGUI/ObjectUI.py:1960 -msgid "This is the Area ID." -msgstr "" - -#: AppGUI/ObjectUI.py:1107 AppGUI/ObjectUI.py:1962 -msgid "Type of the object where the exclusion area was added." -msgstr "" - -#: AppGUI/ObjectUI.py:1109 AppGUI/ObjectUI.py:1964 -msgid "" -"The strategy used for exclusion area. Go around the exclusion areas or over " -"it." -msgstr "" - -#: AppGUI/ObjectUI.py:1111 AppGUI/ObjectUI.py:1966 -msgid "" -"If the strategy is to go over the area then this is the height at which the " -"tool will go to avoid the exclusion area." -msgstr "" - -#: AppGUI/ObjectUI.py:1123 AppGUI/ObjectUI.py:1978 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:233 -msgid "" -"The strategy followed when encountering an exclusion area.\n" -"Can be:\n" -"- Over -> when encountering the area, the tool will go to a set height\n" -"- Around -> will avoid the exclusion area by going around the area" -msgstr "" - -#: AppGUI/ObjectUI.py:1127 AppGUI/ObjectUI.py:1982 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:237 -#, fuzzy -#| msgid "Overlap" -msgid "Over" -msgstr "Sovrapposizione" - -#: AppGUI/ObjectUI.py:1128 AppGUI/ObjectUI.py:1983 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:238 -#, fuzzy -#| msgid "Round" -msgid "Around" -msgstr "Arrotondato" - -#: AppGUI/ObjectUI.py:1135 AppGUI/ObjectUI.py:1990 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:245 -msgid "" -"The height Z to which the tool will rise in order to avoid\n" -"an interdiction area." -msgstr "" - -#: AppGUI/ObjectUI.py:1145 AppGUI/ObjectUI.py:2000 -#, fuzzy -#| msgid "Add Track" -msgid "Add area:" -msgstr "Aggiungi Traccia" - -#: AppGUI/ObjectUI.py:1146 AppGUI/ObjectUI.py:2001 -msgid "Add an Exclusion Area." -msgstr "" - -#: AppGUI/ObjectUI.py:1152 AppGUI/ObjectUI.py:2007 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:222 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:295 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:324 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:288 -#: AppTools/ToolIsolation.py:542 AppTools/ToolNCC.py:580 -#: AppTools/ToolPaint.py:523 -msgid "The kind of selection shape used for area selection." -msgstr "Il tipo di forma di selezione utilizzata per la selezione dell'area." - -#: AppGUI/ObjectUI.py:1162 AppGUI/ObjectUI.py:2017 -#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:32 -#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:42 -#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:32 -#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:32 -msgid "Delete All" -msgstr "Cancella tutto" - -#: AppGUI/ObjectUI.py:1163 AppGUI/ObjectUI.py:2018 -#, fuzzy -#| msgid "Delete all extensions from the list." -msgid "Delete all exclusion areas." -msgstr "Cancella tutte le estensioni dalla lista." - -#: AppGUI/ObjectUI.py:1166 AppGUI/ObjectUI.py:2021 -#, fuzzy -#| msgid "Delete Object" -msgid "Delete Selected" -msgstr "Cancella oggetto" - -#: AppGUI/ObjectUI.py:1167 AppGUI/ObjectUI.py:2022 -#, fuzzy -#| msgid "" -#| "Delete a tool in the tool list\n" -#| "by selecting a row in the tool table." -msgid "Delete all exclusion areas that are selected in the table." -msgstr "" -"Cancella un utensile dalla lista\n" -"selezionandone la riga nella tabella." - -#: AppGUI/ObjectUI.py:1191 AppGUI/ObjectUI.py:2038 -msgid "" -"Add / Select at least one tool in the tool-table.\n" -"Click the # header to select all, or Ctrl + LMB\n" -"for custom selection of tools." -msgstr "" -"Aggiungi almeno un utensile alla tabella degli utensili.\n" -"Fai clic su # per selezionare tutto, oppure Ctrl + click sinistro\n" -"per la selezione personalizzata degli utensili." - -#: AppGUI/ObjectUI.py:1199 AppGUI/ObjectUI.py:2045 -msgid "Generate CNCJob object" -msgstr "Genera oggetto CNCJob" - -#: AppGUI/ObjectUI.py:1201 -msgid "" -"Generate the CNC Job.\n" -"If milling then an additional Geometry object will be created" -msgstr "" -"Generare il lavoro CNC.\n" -"Se si sta fresando, verrà creato un oggetto Geometry aggiuntivo" - -#: AppGUI/ObjectUI.py:1218 -msgid "Milling Geometry" -msgstr "Geometria fresatura" - -#: AppGUI/ObjectUI.py:1220 -msgid "" -"Create Geometry for milling holes.\n" -"Select from the Tools Table above the hole dias to be\n" -"milled. Use the # column to make the selection." -msgstr "" -"Crea geometria per la fresatura dei fori.\n" -"Selezionare dalla tabella degli strumenti sopra i diametri dei fori\n" -"da fresare. Utilizzare la colonna # per effettuare la selezione." - -#: AppGUI/ObjectUI.py:1228 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:296 -msgid "Diameter of the cutting tool." -msgstr "Diametri dell'utensile da taglio." - -#: AppGUI/ObjectUI.py:1238 -msgid "Mill Drills" -msgstr "Fresatura fori" - -#: AppGUI/ObjectUI.py:1240 -msgid "" -"Create the Geometry Object\n" -"for milling DRILLS toolpaths." -msgstr "" -"Crea l'oggetto Geometry\n" -"per la fresatura di percorsi utensile FORI." - -#: AppGUI/ObjectUI.py:1258 -msgid "Mill Slots" -msgstr "Fresatura slot" - -#: AppGUI/ObjectUI.py:1260 -msgid "" -"Create the Geometry Object\n" -"for milling SLOTS toolpaths." -msgstr "" -"Crea oggetto geometria\n" -"per fresare gli slot." - -#: AppGUI/ObjectUI.py:1302 AppTools/ToolCutOut.py:319 -msgid "Geometry Object" -msgstr "Oggetto geometria" - -#: AppGUI/ObjectUI.py:1364 -msgid "" -"Tools in this Geometry object used for cutting.\n" -"The 'Offset' entry will set an offset for the cut.\n" -"'Offset' can be inside, outside, on path (none) and custom.\n" -"'Type' entry is only informative and it allow to know the \n" -"intent of using the current tool. \n" -"It can be Rough(ing), Finish(ing) or Iso(lation).\n" -"The 'Tool type'(TT) can be circular with 1 to 4 teeths(C1..C4),\n" -"ball(B), or V-Shaped(V). \n" -"When V-shaped is selected the 'Type' entry is automatically \n" -"set to Isolation, the CutZ parameter in the UI form is\n" -"grayed out and Cut Z is automatically calculated from the newly \n" -"showed UI form entries named V-Tip Dia and V-Tip Angle." -msgstr "" -"Strumenti in questo oggetto Geometria sono usati per il taglio.\n" -"La voce 'Offset' imposta un offset per il taglio.\n" -"'Offset' può essere all'interno, all'esterno, sul percorso (nessuno) e " -"personalizzato.\n" -"La voce 'Tipo' è solo informativa e consente di conoscere\n" -"lo scopo d'utilizzo dello strumento corrente.\n" -"Può essere grezzo, fine o isolamento.\n" -"Il 'tipo di utensile' (TT) può essere circolare con da 1 a 4 denti (C1.." -"C4),\n" -"a palla (B) o a forma di V (V).\n" -"Quando è selezionata la forma a V, la voce 'Tipo' è automaticamente\n" -"impostato su Isolamento, il parametro CutZ nel modulo UI è\n" -"non selezionabile e Cut Z viene calcolato automaticamente dalla nuova\n" -"UI dalle voci Diametro V-Tip e Angolo V-Tip." - -#: AppGUI/ObjectUI.py:1381 AppGUI/ObjectUI.py:2243 -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:40 -msgid "Plot Object" -msgstr "Disegna oggetto" - -#: AppGUI/ObjectUI.py:1394 AppGUI/ObjectUI.py:2256 AppGUI/ObjectUI.py:2266 -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:138 -#: AppTools/ToolCopperThieving.py:225 -msgid "Dia" -msgstr "Diametro" - -#: AppGUI/ObjectUI.py:1394 AppGUI/ObjectUI.py:2256 -#: AppTools/ToolIsolation.py:130 AppTools/ToolNCC.py:132 -#: AppTools/ToolPaint.py:127 -msgid "TT" -msgstr "TT" - -#: AppGUI/ObjectUI.py:1401 -msgid "" -"This is the Tool Number.\n" -"When ToolChange is checked, on toolchange event this value\n" -"will be showed as a T1, T2 ... Tn" -msgstr "" -"Questo è il numero dell'utensile.\n" -"Quando Cambio Utensile è selezionato, in caso di cambio utensile questo " -"valore\n" -"verrà mostrato come T1, T2 ... Tn" - -#: AppGUI/ObjectUI.py:1412 -msgid "" -"The value for the Offset can be:\n" -"- Path -> There is no offset, the tool cut will be done through the geometry " -"line.\n" -"- In(side) -> The tool cut will follow the geometry inside. It will create a " -"'pocket'.\n" -"- Out(side) -> The tool cut will follow the geometry line on the outside." -msgstr "" -"Il valore per l'offset può essere:\n" -"- Percorso -> Non è presente alcun offset, il taglio dell'utensile verrà " -"eseguito attraverso la linea della geometria.\n" -"- In(terno) -> Il taglio dell'utensile seguirà la geometria all'interno. " -"Creerà una 'tasca'.\n" -"- Est(erno) -> Il taglio dell'utensile seguirà la linea della geometria " -"all'esterno." - -#: AppGUI/ObjectUI.py:1419 -msgid "" -"The (Operation) Type has only informative value. Usually the UI form " -"values \n" -"are choose based on the operation type and this will serve as a reminder.\n" -"Can be 'Roughing', 'Finishing' or 'Isolation'.\n" -"For Roughing we may choose a lower Feedrate and multiDepth cut.\n" -"For Finishing we may choose a higher Feedrate, without multiDepth.\n" -"For Isolation we need a lower Feedrate as it use a milling bit with a fine " -"tip." -msgstr "" -"Il tipo di operazione ha solo valore informativo. Di solito i valori nella " -"UI\n" -"vengono scelti in base al tipo di operazione e questo servirà come " -"promemoria.\n" -"Può essere 'Sgrossatura', 'Finitura' o 'Isolamento'.\n" -"Per la sgrossatura possiamo scegliere un avanzamento inferiore e un taglio " -"multi-profondità.\n" -"Per la finitura possiamo scegliere una velocità di avanzamento più elevata, " -"senza multi-profondità.\n" -"Per l'isolamento abbiamo bisogno di un avanzamento inferiore poiché si una " -"punta di fresatura con una punta fine." - -#: AppGUI/ObjectUI.py:1428 -msgid "" -"The Tool Type (TT) can be:\n" -"- Circular with 1 ... 4 teeth -> it is informative only. Being circular the " -"cut width in material\n" -"is exactly the tool diameter.\n" -"- Ball -> informative only and make reference to the Ball type endmill.\n" -"- V-Shape -> it will disable Z-Cut parameter in the UI form and enable two " -"additional UI form\n" -"fields: V-Tip Dia and V-Tip Angle. Adjusting those two values will adjust " -"the Z-Cut parameter such\n" -"as the cut width into material will be equal with the value in the Tool " -"Diameter column of this table.\n" -"Choosing the V-Shape Tool Type automatically will select the Operation Type " -"as Isolation." -msgstr "" -"Il tipo di utensile (TT) può essere:\n" -"- Circolare con 1 ... 4 denti -> è solo informativo. Essendo circolare la " -"larghezza del taglio nel materiale\n" -"è esattamente il diametro dell'utensile.\n" -"- Sfera -> solo informativo e fare riferimento alla fresa sferica.\n" -"- a V -> disabiliterà il parametro di Z-Cut nel modulo UI e abiliterà due " -"moduli UI aggiuntivi\n" -"campi: Diametro V-Tip e Angolo V-Tip. La regolazione di questi due valori " -"regolerà tale parametro Z-Cut\n" -"poiché la larghezza del taglio nel materiale sarà uguale al valore nella " -"colonna Diametro utensile di questa tabella.\n" -"Scegliendo il tipo di strumento a forma di V si selezionerà automaticamente " -"il tipo di operazione come isolamento." - -#: AppGUI/ObjectUI.py:1440 -msgid "" -"Plot column. It is visible only for MultiGeo geometries, meaning geometries " -"that holds the geometry\n" -"data into the tools. For those geometries, deleting the tool will delete the " -"geometry data also,\n" -"so be WARNED. From the checkboxes on each row it can be enabled/disabled the " -"plot on canvas\n" -"for the corresponding tool." -msgstr "" -"Traccia colonna. È visibile solo per le geometrie MultiGeo, ovvero geometrie " -"che trattengono i dati della\n" -"geometria negli strumenti. Per tali geometrie, l'eliminazione dello " -"strumento eliminerà anche i dati della geometria,\n" -"quindi ATTENZIONE. Dalle caselle di controllo su ogni riga è possibile " -"abilitare/disabilitare la tracciatura\n" -"dello strumento corrispondente." - -#: AppGUI/ObjectUI.py:1458 -msgid "" -"The value to offset the cut when \n" -"the Offset type selected is 'Offset'.\n" -"The value can be positive for 'outside'\n" -"cut and negative for 'inside' cut." -msgstr "" -"Il valore per compensare il taglio quando\n" -"il tipo di offset selezionato è 'Offset'.\n" -"Il valore può essere positivo per 'esterno'\n" -"taglio e negativo per il taglio 'interno'." - -#: AppGUI/ObjectUI.py:1477 AppTools/ToolIsolation.py:195 -#: AppTools/ToolIsolation.py:1257 AppTools/ToolNCC.py:209 -#: AppTools/ToolNCC.py:923 AppTools/ToolPaint.py:191 AppTools/ToolPaint.py:848 -#: AppTools/ToolSolderPaste.py:567 -msgid "New Tool" -msgstr "Nuovo utensile" - -#: AppGUI/ObjectUI.py:1496 AppTools/ToolIsolation.py:278 -#: AppTools/ToolNCC.py:296 AppTools/ToolPaint.py:278 -msgid "" -"Add a new tool to the Tool Table\n" -"with the diameter specified above." -msgstr "" -"Aggiungi un nuovo utensile alla tabella degli utensili\n" -"con il diametro sopra specificato." - -#: AppGUI/ObjectUI.py:1500 AppTools/ToolIsolation.py:282 -#: AppTools/ToolIsolation.py:613 AppTools/ToolNCC.py:300 -#: AppTools/ToolNCC.py:634 AppTools/ToolPaint.py:282 AppTools/ToolPaint.py:678 -msgid "Add from DB" -msgstr "Aggiungi dal DB" - -#: AppGUI/ObjectUI.py:1502 AppTools/ToolIsolation.py:284 -#: AppTools/ToolNCC.py:302 AppTools/ToolPaint.py:284 -msgid "" -"Add a new tool to the Tool Table\n" -"from the Tool DataBase." -msgstr "" -"Aggiungi un nuovo utensile alla tabella degli utensili\n" -"dal DataBase utensili." - -#: AppGUI/ObjectUI.py:1521 -msgid "" -"Copy a selection of tools in the Tool Table\n" -"by first selecting a row in the Tool Table." -msgstr "" -"Copia una selezione di utensili nella tabella degli utensili\n" -"selezionando prima una riga nella tabella." - -#: AppGUI/ObjectUI.py:1527 -msgid "" -"Delete a selection of tools in the Tool Table\n" -"by first selecting a row in the Tool Table." -msgstr "" -"Elimina una selezione di utensili nella tabella degli utensili\n" -"selezionando prima una riga." - -#: AppGUI/ObjectUI.py:1574 AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:89 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:72 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:78 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:85 -#: AppTools/ToolIsolation.py:219 AppTools/ToolNCC.py:233 -#: AppTools/ToolNCC.py:240 AppTools/ToolPaint.py:215 -msgid "V-Tip Dia" -msgstr "Diametro punta a V" - -#: AppGUI/ObjectUI.py:1577 AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:91 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:74 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:80 -#: AppTools/ToolIsolation.py:221 AppTools/ToolNCC.py:235 -#: AppTools/ToolPaint.py:217 -msgid "The tip diameter for V-Shape Tool" -msgstr "Il diametro sulla punta dell'utensile a V" - -#: AppGUI/ObjectUI.py:1589 AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:101 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:84 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:91 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:99 -#: AppTools/ToolIsolation.py:232 AppTools/ToolNCC.py:246 -#: AppTools/ToolNCC.py:254 AppTools/ToolPaint.py:228 -msgid "V-Tip Angle" -msgstr "Angolo punta a V" - -#: AppGUI/ObjectUI.py:1592 AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:86 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:93 -#: AppTools/ToolIsolation.py:234 AppTools/ToolNCC.py:248 -#: AppTools/ToolPaint.py:230 -msgid "" -"The tip angle for V-Shape Tool.\n" -"In degree." -msgstr "" -"L'angolo alla punta dell'utensile a V\n" -"In gradi." - -#: AppGUI/ObjectUI.py:1608 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:51 -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:61 -#: AppObjects/FlatCAMGeometry.py:1238 AppTools/ToolCutOut.py:141 -msgid "" -"Cutting depth (negative)\n" -"below the copper surface." -msgstr "" -"Profondità di taglio (negativo)\n" -"sotto la superficie del rame." - -#: AppGUI/ObjectUI.py:1654 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:104 -msgid "" -"Height of the tool when\n" -"moving without cutting." -msgstr "" -"Altezza dello strumento quando\n" -"si sposta senza tagliare." - -#: AppGUI/ObjectUI.py:1687 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:203 -msgid "" -"Cutting speed in the XY\n" -"plane in units per minute.\n" -"It is called also Plunge." -msgstr "" -"Velocità di taglio nel piano XY\n" -"in unità al minuto.\n" -"Si chiama anche Plunge (affondo)." - -#: AppGUI/ObjectUI.py:1702 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:69 -msgid "" -"Cutting speed in the XY plane\n" -"(in units per minute).\n" -"This is for the rapid move G00.\n" -"It is useful only for Marlin,\n" -"ignore for any other cases." -msgstr "" -"Velocità di taglio nel piano XY\n" -"(in unità al minuto).\n" -"Questo è per la mossa rapida G00.\n" -"È utile solo per Marlin,\n" -"ignorare in tutti gli altri casi." - -#: AppGUI/ObjectUI.py:1746 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:220 -msgid "" -"Speed of the spindle in RPM (optional).\n" -"If LASER preprocessor is used,\n" -"this value is the power of laser." -msgstr "" -"Velocità del mandrino in RPM (opzionale).\n" -"Se si utilizza il preprocessore LASER,\n" -"questo valore è la potenza del laser." - -#: AppGUI/ObjectUI.py:1849 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:125 -msgid "" -"Include tool-change sequence\n" -"in the Machine Code (Pause for tool change)." -msgstr "" -"Includi sequenza di cambio utensile\n" -"nel Codice macchina (Pausa per cambio utensile)." - -#: AppGUI/ObjectUI.py:1918 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:257 -msgid "" -"The Preprocessor file that dictates\n" -"the Machine Code (like GCode, RML, HPGL) output." -msgstr "" -"Il file del preprocessore che guida\n" -"l'output del codice macchina (come GCode, RML, HPGL)." - -#: AppGUI/ObjectUI.py:2047 Common.py:426 Common.py:559 Common.py:619 -msgid "Generate the CNC Job object." -msgstr "Genera l'oggetto CNC Job." - -#: AppGUI/ObjectUI.py:2064 -msgid "Launch Paint Tool in Tools Tab." -msgstr "Esegui lo strumento Disegno dal Tab Disegno." - -#: AppGUI/ObjectUI.py:2072 AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:35 -msgid "" -"Creates tool paths to cover the\n" -"whole area of a polygon (remove\n" -"all copper). You will be asked\n" -"to click on the desired polygon." -msgstr "" -"Crea percorsi utensile per coprire\n" -"l'intera area di un poligono (rimuovi\n" -"tutto rame). Verrà chiesto di\n" -"cliccare sul poligono desiderato." - -#: AppGUI/ObjectUI.py:2127 -msgid "CNC Job Object" -msgstr "Oggetto CNC Job" - -#: AppGUI/ObjectUI.py:2138 AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:45 -msgid "Plot kind" -msgstr "Tipo di plot" - -#: AppGUI/ObjectUI.py:2141 AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:47 -msgid "" -"This selects the kind of geometries on the canvas to plot.\n" -"Those can be either of type 'Travel' which means the moves\n" -"above the work piece or it can be of type 'Cut',\n" -"which means the moves that cut into the material." -msgstr "" -"Questo seleziona il tipo di geometrie da tracciare.\n" -"Possono essere di tipo 'Travel', ovvero movimenti\n" -"sopra al pezzo o di tipo 'Taglia',\n" -"cioè movimenti che tagliano il materiale." - -#: AppGUI/ObjectUI.py:2150 AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:55 -msgid "Travel" -msgstr "Travel" - -#: AppGUI/ObjectUI.py:2154 AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:64 -msgid "Display Annotation" -msgstr "Mostra annotazioni" - -#: AppGUI/ObjectUI.py:2156 AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:66 -msgid "" -"This selects if to display text annotation on the plot.\n" -"When checked it will display numbers in order for each end\n" -"of a travel line." -msgstr "" -"Seleziona se visualizzare l'annotazione di testo.\n" -"Se selezionato, visualizzerà i numeri ordinati su ogni terminazione\n" -"di una linea di spostamento." - -#: AppGUI/ObjectUI.py:2171 -msgid "Travelled dist." -msgstr "Distanza spostamento." - -#: AppGUI/ObjectUI.py:2173 AppGUI/ObjectUI.py:2178 -msgid "" -"This is the total travelled distance on X-Y plane.\n" -"In current units." -msgstr "" -"E' la distanza totale percorsa sul piano X-Y.\n" -"In unità correnti." - -#: AppGUI/ObjectUI.py:2183 -msgid "Estimated time" -msgstr "Tempo stimato" - -#: AppGUI/ObjectUI.py:2185 AppGUI/ObjectUI.py:2190 -msgid "" -"This is the estimated time to do the routing/drilling,\n" -"without the time spent in ToolChange events." -msgstr "" -"E' il tempo stimato per le fresatura, foratura,\n" -"senza il tempo necessario ai cambi utensili." - -#: AppGUI/ObjectUI.py:2225 -msgid "CNC Tools Table" -msgstr "Tabella Utensili CNC" - -#: AppGUI/ObjectUI.py:2228 -msgid "" -"Tools in this CNCJob object used for cutting.\n" -"The tool diameter is used for plotting on canvas.\n" -"The 'Offset' entry will set an offset for the cut.\n" -"'Offset' can be inside, outside, on path (none) and custom.\n" -"'Type' entry is only informative and it allow to know the \n" -"intent of using the current tool. \n" -"It can be Rough(ing), Finish(ing) or Iso(lation).\n" -"The 'Tool type'(TT) can be circular with 1 to 4 teeths(C1..C4),\n" -"ball(B), or V-Shaped(V)." -msgstr "" -"Gli utensili sono quelli usati in questo oggetto CNCJob per il taglio.\n" -"Il diametro dell'utensile è utilizzato per tracciare il disegno a video.\n" -"La voce 'Offset' imposta un offset per il taglio.\n" -"'Offset' può essere interno, esterno, sul percorso (nessuno) e " -"personalizzato.\n" -"La voce 'Tipo' è solo informativa e consente di conoscere il fine\n" -"dell'utensile corrente.\n" -"Può essere per sgrezzatura, finitura o isolamento.\n" -"Il 'tipo di utensile' (TT) può essere circolare da 1 a 4 denti (C1..C4),\n" -"a palla (B) o a V (V)." - -#: AppGUI/ObjectUI.py:2256 AppGUI/ObjectUI.py:2267 -msgid "P" -msgstr "P" - -#: AppGUI/ObjectUI.py:2277 -msgid "Update Plot" -msgstr "Aggiorna Plot" - -#: AppGUI/ObjectUI.py:2279 -msgid "Update the plot." -msgstr "Aggiorna il plot." - -#: AppGUI/ObjectUI.py:2286 -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:30 -msgid "Export CNC Code" -msgstr "Esporta codice CNC" - -#: AppGUI/ObjectUI.py:2288 -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:32 -#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:33 -msgid "" -"Export and save G-Code to\n" -"make this object to a file." -msgstr "" -"Esporta e salva il G-Code per\n" -"fare un file dell'oggetto." - -#: AppGUI/ObjectUI.py:2294 -msgid "Prepend to CNC Code" -msgstr "Anteponi ak codice CNC" - -#: AppGUI/ObjectUI.py:2296 AppGUI/ObjectUI.py:2303 -#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:49 -msgid "" -"Type here any G-Code commands you would\n" -"like to add at the beginning of the G-Code file." -msgstr "" -"Scrivi qui qualsiasi comando G-Code che vuoi\n" -"venga inserito all'inizio del file G-Code." - -#: AppGUI/ObjectUI.py:2309 -msgid "Append to CNC Code" -msgstr "Accoda al Codice CNC" - -#: AppGUI/ObjectUI.py:2311 AppGUI/ObjectUI.py:2319 -#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:65 -msgid "" -"Type here any G-Code commands you would\n" -"like to append to the generated file.\n" -"I.e.: M2 (End of program)" -msgstr "" -"Scrivi qui qualsiasi comando G-Code che vuoi\n" -"venga inserito alla fine del file G-Code.\n" -"Es.: M2 (Fine programma)" - -#: AppGUI/ObjectUI.py:2333 -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:38 -msgid "Toolchange G-Code" -msgstr "G-Code cambio utensile" - -#: AppGUI/ObjectUI.py:2336 -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:41 -msgid "" -"Type here any G-Code commands you would\n" -"like to be executed when Toolchange event is encountered.\n" -"This will constitute a Custom Toolchange GCode,\n" -"or a Toolchange Macro.\n" -"The FlatCAM variables are surrounded by '%' symbol.\n" -"\n" -"WARNING: it can be used only with a preprocessor file\n" -"that has 'toolchange_custom' in it's name and this is built\n" -"having as template the 'Toolchange Custom' posprocessor file." -msgstr "" -"Digita qui qualsiasi comando G-Code che desideri\n" -"sia eseguito quando si incontra un di evento Cambio Utensile.\n" -"Ciò costituirà un GCode di cambio utensile personalizzato,\n" -"o una macro per il cambio utensile.\n" -"Le variabili FlatCAM sono delimitate dal simbolo '%'.\n" -"\n" -"ATTENZIONE: può essere utilizzato solo con un file preprocessore\n" -"che contenga 'toolchange_custom' nel nome e creato\n" -"avendo come modello il file posprocessor 'Toolchange Custom'." - -#: AppGUI/ObjectUI.py:2351 -msgid "" -"Type here any G-Code commands you would\n" -"like to be executed when Toolchange event is encountered.\n" -"This will constitute a Custom Toolchange GCode,\n" -"or a Toolchange Macro.\n" -"The FlatCAM variables are surrounded by '%' symbol.\n" -"WARNING: it can be used only with a preprocessor file\n" -"that has 'toolchange_custom' in it's name." -msgstr "" -"Digita qui qualsiasi comando G-Code che desideri\n" -"sia eseguito quando si incontra un di evento Cambio Utensile.\n" -"Ciò costituirà un GCode di cambio utensile personalizzato,\n" -"o una macro per il cambio utensile.\n" -"Le variabili FlatCAM sono delimitate dal simbolo '%'.\n" -"ATTENZIONE: può essere utilizzato solo con un file preprocessore\n" -"che contenga 'toolchange_custom' nel nome." - -#: AppGUI/ObjectUI.py:2366 -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:80 -msgid "Use Toolchange Macro" -msgstr "Usa Macro Cambio Utensile" - -#: AppGUI/ObjectUI.py:2368 -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:82 -msgid "" -"Check this box if you want to use\n" -"a Custom Toolchange GCode (macro)." -msgstr "" -"Seleziona questa casella se vuoi usare\n" -"un GCode Custom (macro) per il cambio utensile." - -#: AppGUI/ObjectUI.py:2376 -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:94 -msgid "" -"A list of the FlatCAM variables that can be used\n" -"in the Toolchange event.\n" -"They have to be surrounded by the '%' symbol" -msgstr "" -"Una lista di variabili FlatCAM utilizzabili\n" -"nell'evento di Cambio Utensile.\n" -"Devono essere delimitate dal simbolo '%'" - -#: AppGUI/ObjectUI.py:2383 -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:101 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:30 -#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:31 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:31 -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:37 -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:36 -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:36 -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:36 -#: AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py:31 -#: AppGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:31 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:36 -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:31 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:30 -#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:31 -#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:35 -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:32 -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:31 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:30 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:31 -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:31 -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:31 -#: AppGUI/preferences/tools/ToolsSubPrefGroupUI.py:31 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:31 -#: AppTools/ToolCalibration.py:67 AppTools/ToolCopperThieving.py:93 -#: AppTools/ToolCorners.py:115 AppTools/ToolEtchCompensation.py:138 -#: AppTools/ToolFiducials.py:152 AppTools/ToolInvertGerber.py:85 -#: AppTools/ToolQRCode.py:114 -msgid "Parameters" -msgstr "Parametri" - -#: AppGUI/ObjectUI.py:2386 -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:106 -msgid "FlatCAM CNC parameters" -msgstr "Parametri CNC FlatCAM" - -#: AppGUI/ObjectUI.py:2387 -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:111 -msgid "tool number" -msgstr "numero utensile" - -#: AppGUI/ObjectUI.py:2388 -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:112 -msgid "tool diameter" -msgstr "diametro utensile" - -#: AppGUI/ObjectUI.py:2389 -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:113 -msgid "for Excellon, total number of drills" -msgstr "per Excellon, numero totale di fori" - -#: AppGUI/ObjectUI.py:2391 -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:115 -msgid "X coord for Toolchange" -msgstr "Coordinata X per il cambio utensile" - -#: AppGUI/ObjectUI.py:2392 -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:116 -msgid "Y coord for Toolchange" -msgstr "Coordinata Y per il cambio utensile" - -#: AppGUI/ObjectUI.py:2393 -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:118 -msgid "Z coord for Toolchange" -msgstr "Coordinata Z per il cambio utensile" - -#: AppGUI/ObjectUI.py:2394 -msgid "depth where to cut" -msgstr "profondità a cui tagliare" - -#: AppGUI/ObjectUI.py:2395 -msgid "height where to travel" -msgstr "altezza alla quale spostarsi" - -#: AppGUI/ObjectUI.py:2396 -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:121 -msgid "the step value for multidepth cut" -msgstr "il passo per il taglio in più passaggi" - -#: AppGUI/ObjectUI.py:2398 -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:123 -msgid "the value for the spindle speed" -msgstr "il valore della velocità del mandrino" - -#: AppGUI/ObjectUI.py:2400 -msgid "time to dwell to allow the spindle to reach it's set RPM" -msgstr "" -"tempo di attesa per permettere al mandrino di raggiungere la velocità in RPM" - -#: AppGUI/ObjectUI.py:2416 -msgid "View CNC Code" -msgstr "Vedi codice CNC" - -#: AppGUI/ObjectUI.py:2418 -msgid "" -"Opens TAB to view/modify/print G-Code\n" -"file." -msgstr "Apri TAB per vedere/modificare/stampare un file G-Code." - -#: AppGUI/ObjectUI.py:2423 -msgid "Save CNC Code" -msgstr "Calva codice CNC" - -#: AppGUI/ObjectUI.py:2425 -msgid "" -"Opens dialog to save G-Code\n" -"file." -msgstr "" -"Apri la finestra di salvataggio del file\n" -"G-Code." - -#: AppGUI/ObjectUI.py:2459 -msgid "Script Object" -msgstr "Oggetto script" - -#: AppGUI/ObjectUI.py:2479 AppGUI/ObjectUI.py:2553 -msgid "Auto Completer" -msgstr "Auto completatore" - -#: AppGUI/ObjectUI.py:2481 -msgid "This selects if the auto completer is enabled in the Script Editor." -msgstr "Seleziona se l'autocompletatore è attivo nell'editor Script." - -#: AppGUI/ObjectUI.py:2526 -msgid "Document Object" -msgstr "Oggetto documento" - -#: AppGUI/ObjectUI.py:2555 -msgid "This selects if the auto completer is enabled in the Document Editor." -msgstr "Seleziona se l'autocompletatore è attivo nell'editor Documenti." - -#: AppGUI/ObjectUI.py:2573 -msgid "Font Type" -msgstr "Tipo carattere" - -#: AppGUI/ObjectUI.py:2590 -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:189 -msgid "Font Size" -msgstr "Dimensione carattere" - -#: AppGUI/ObjectUI.py:2626 -msgid "Alignment" -msgstr "Allineamento" - -#: AppGUI/ObjectUI.py:2631 -msgid "Align Left" -msgstr "Allinea a sinistra" - -#: AppGUI/ObjectUI.py:2636 App_Main.py:4715 -msgid "Center" -msgstr "Centro" - -#: AppGUI/ObjectUI.py:2641 -msgid "Align Right" -msgstr "Allinea a destra" - -#: AppGUI/ObjectUI.py:2646 -msgid "Justify" -msgstr "Giustifica" - -#: AppGUI/ObjectUI.py:2653 -msgid "Font Color" -msgstr "Colore carattere" - -#: AppGUI/ObjectUI.py:2655 -msgid "Set the font color for the selected text" -msgstr "Imposta il colore del carattere per il testo selezionato" - -#: AppGUI/ObjectUI.py:2669 -msgid "Selection Color" -msgstr "Selezione colore" - -#: AppGUI/ObjectUI.py:2671 -msgid "Set the selection color when doing text selection." -msgstr "Imposta il colore della selezione durante la selezione del testo." - -#: AppGUI/ObjectUI.py:2685 -msgid "Tab Size" -msgstr "Dimensione tab" - -#: AppGUI/ObjectUI.py:2687 -msgid "Set the tab size. In pixels. Default value is 80 pixels." -msgstr "" -"Imposta la dimensione del tab. In pixel. Il valore di default è 80 pixel." - -#: AppGUI/PlotCanvas.py:236 AppGUI/PlotCanvasLegacy.py:345 -#, fuzzy -#| msgid "All plots enabled." -msgid "Axis enabled." -msgstr "Tutte le tracce sono abilitate." - -#: AppGUI/PlotCanvas.py:242 AppGUI/PlotCanvasLegacy.py:352 -#, fuzzy -#| msgid "All plots disabled." -msgid "Axis disabled." -msgstr "Tutte le tracce disabilitate." - -#: AppGUI/PlotCanvas.py:260 AppGUI/PlotCanvasLegacy.py:372 -#, fuzzy -#| msgid "Enabled" -msgid "HUD enabled." -msgstr "Abilitato" - -#: AppGUI/PlotCanvas.py:268 AppGUI/PlotCanvasLegacy.py:378 -#, fuzzy -#| msgid "Disabled" -msgid "HUD disabled." -msgstr "Disabilitato" - -#: AppGUI/PlotCanvas.py:276 AppGUI/PlotCanvasLegacy.py:451 -#, fuzzy -#| msgid "Enabled" -msgid "Grid enabled." -msgstr "Abilitato" - -#: AppGUI/PlotCanvas.py:280 AppGUI/PlotCanvasLegacy.py:459 -#, fuzzy -#| msgid "Disabled" -msgid "Grid disabled." -msgstr "Disabilitato" - -#: AppGUI/PlotCanvasLegacy.py:1523 -msgid "" -"Could not annotate due of a difference between the number of text elements " -"and the number of text positions." -msgstr "" -"Impossibile annotare a causa di una differenza tra il numero di elementi di " -"testo e il numero di posizioni di testo." - -#: AppGUI/preferences/PreferencesUIManager.py:852 -msgid "Preferences applied." -msgstr "Preferenze applicate." - -#: AppGUI/preferences/PreferencesUIManager.py:872 -#, fuzzy -#| msgid "Are you sure you want to delete the GUI Settings? \n" -msgid "Are you sure you want to continue?" -msgstr "Sicuro di voler cancellare le impostazioni GUI?\n" - -#: AppGUI/preferences/PreferencesUIManager.py:873 -#, fuzzy -#| msgid "Application started ..." -msgid "Application will restart" -msgstr "Applicazione avviata ..." - -#: AppGUI/preferences/PreferencesUIManager.py:971 -msgid "Preferences closed without saving." -msgstr "Preferenze chiuse senza salvarle." - -#: AppGUI/preferences/PreferencesUIManager.py:983 -msgid "Preferences default values are restored." -msgstr "I valori predefiniti delle preferenze vengono ripristinati." - -#: AppGUI/preferences/PreferencesUIManager.py:1015 App_Main.py:2498 -#: App_Main.py:2566 -msgid "Failed to write defaults to file." -msgstr "Impossibile scrivere le impostazioni predefinite nel file." - -#: AppGUI/preferences/PreferencesUIManager.py:1019 -#: AppGUI/preferences/PreferencesUIManager.py:1132 -msgid "Preferences saved." -msgstr "Preferenze salvate." - -#: AppGUI/preferences/PreferencesUIManager.py:1069 -msgid "Preferences edited but not saved." -msgstr "Preferenze modificate ma non salvate." - -#: AppGUI/preferences/PreferencesUIManager.py:1117 -msgid "" -"One or more values are changed.\n" -"Do you want to save the Preferences?" -msgstr "" -"Uno o più valori modificati.\n" -"Vuoi salvare le Preferenze?" - -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:27 -msgid "CNC Job Adv. Options" -msgstr "Opzioni avanzate CNC Job" - -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:64 -msgid "" -"Type here any G-Code commands you would like to be executed when Toolchange " -"event is encountered.\n" -"This will constitute a Custom Toolchange GCode, or a Toolchange Macro.\n" -"The FlatCAM variables are surrounded by '%' symbol.\n" -"WARNING: it can be used only with a preprocessor file that has " -"'toolchange_custom' in it's name." -msgstr "" -"Digita qui qualsiasi comando G-Code che desideri sia eseguito quando si " -"incontra un di evento Cambio Utensile.\n" -"Ciò costituirà un GCode di cambio utensile personalizzato, o una macro per " -"il cambio utensile.\n" -"Le variabili FlatCAM sono delimitate dal simbolo '%'.\n" -"ATTENZIONE: può essere utilizzato solo con un file preprocessore che " -"contenga 'toolchange_custom' nel nome." - -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:119 -msgid "Z depth for the cut" -msgstr "Profondità Z per il taglio" - -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:120 -msgid "Z height for travel" -msgstr "Altezza Z per gli spostamenti" - -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:126 -msgid "dwelltime = time to dwell to allow the spindle to reach it's set RPM" -msgstr "" -"tempo attesa = tempo per attendere che il mandrino raggiunga la velocità " -"finale in RPM" - -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:145 -msgid "Annotation Size" -msgstr "Dimensione annotazioni" - -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:147 -msgid "The font size of the annotation text. In pixels." -msgstr "La dimensione del testo delle annotazioni, in pixel." - -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:157 -msgid "Annotation Color" -msgstr "Colore annotazioni" - -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:159 -msgid "Set the font color for the annotation texts." -msgstr "Imposta il colore del carattere per i le annotazioni." - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:26 -msgid "CNC Job General" -msgstr "Generale CNC Job" - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:77 -#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:57 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:59 -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:45 -msgid "Circle Steps" -msgstr "Passi cerchi" - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:79 -msgid "" -"The number of circle steps for GCode \n" -"circle and arc shapes linear approximation." -msgstr "" -"Il numero di passi circolari per approsimazioni lineari\n" -"di cerchi ed archi GCode ." - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:88 -msgid "Travel dia" -msgstr "Diametro spostamenti" - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:90 -msgid "" -"The width of the travel lines to be\n" -"rendered in the plot." -msgstr "" -"La larghezza delle linee da\n" -"disegnare a schermo per gli spostamenti." - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:103 -msgid "G-code Decimals" -msgstr "Decimali G-Code" - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:106 -#: AppTools/ToolFiducials.py:71 -msgid "Coordinates" -msgstr "Coordinate" - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:108 -msgid "" -"The number of decimals to be used for \n" -"the X, Y, Z coordinates in CNC code (GCODE, etc.)" -msgstr "" -"Number di decimali da usare per le coordinate\n" -"X, Y, Z nel codice CNC (GCODE, ecc.)" - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:119 -#: AppTools/ToolProperties.py:519 -msgid "Feedrate" -msgstr "Avanzamento" - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:121 -msgid "" -"The number of decimals to be used for \n" -"the Feedrate parameter in CNC code (GCODE, etc.)" -msgstr "" -"Number di decimali da usare per i parametri\n" -"di avanzamento nel codice CNC (GCODE, ecc.)" - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:132 -msgid "Coordinates type" -msgstr "Tipo coordinate" - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:134 -msgid "" -"The type of coordinates to be used in Gcode.\n" -"Can be:\n" -"- Absolute G90 -> the reference is the origin x=0, y=0\n" -"- Incremental G91 -> the reference is the previous position" -msgstr "" -"Il tipo di coordinate da utilizzare in Gcode.\n" -"Può essere:\n" -"- Asolute G90 -> il riferimento è l'origine x=0, y=0\n" -"- Incrementale G91 -> il riferimento è la posizione precedente" - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:140 -msgid "Absolute G90" -msgstr "Assolute G90" - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:141 -msgid "Incremental G91" -msgstr "Incrementale G91" - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:151 -msgid "Force Windows style line-ending" -msgstr "Imposta il fine linea di Windows" - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:153 -msgid "" -"When checked will force a Windows style line-ending\n" -"(\\r\\n) on non-Windows OS's." -msgstr "" -"Quando abilitato forzerà lo stile fine linea di windows\n" -"(\\r\\n) su sistemi non Windows." - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:165 -msgid "Travel Line Color" -msgstr "Colore linee spostamenti" - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:169 -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:210 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:271 -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:154 -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:195 -#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:94 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:153 -#: AppTools/ToolRulesCheck.py:186 -msgid "Outline" -msgstr "Esterno" - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:171 -msgid "Set the travel line color for plotted objects." -msgstr "Imposta il colore per disegnare le linee degli spostamenti." - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:179 -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:220 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:281 -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:163 -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:205 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:163 -msgid "Fill" -msgstr "Riempi" - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:181 -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:222 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:283 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:165 -msgid "" -"Set the fill color for plotted objects.\n" -"First 6 digits are the color and the last 2\n" -"digits are for alpha (transparency) level." -msgstr "" -"Imposta il colore di riempimento per gli oggetti disegnati.\n" -"Le prime 6 cifre sono il colore e le ultime 2\n" -"cifre sono per il livello alfa (trasparenza)." - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:191 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:293 -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:176 -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:218 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:175 -msgid "Alpha" -msgstr "Alpha" - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:193 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:295 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:177 -msgid "Set the fill transparency for plotted objects." -msgstr "Imposta il livello di trasparenza per gli oggetti disegnati." - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:206 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:267 -#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:90 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:149 -#, fuzzy -#| msgid "CNCJob Object Color" -msgid "Object Color" -msgstr "Colore oggetti CNCJob" - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:212 -msgid "Set the color for plotted objects." -msgstr "Imposta il colore per gli oggetti CNC Job." - -#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:27 -msgid "CNC Job Options" -msgstr "Opzioni CNC Job" - -#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:31 -msgid "Export G-Code" -msgstr "Esporta G-Code" - -#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:47 -msgid "Prepend to G-Code" -msgstr "Anteponi al G-Code" - -#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:56 -msgid "" -"Type here any G-Code commands you would like to add at the beginning of the " -"G-Code file." -msgstr "" -"Scrivi qui qualsiasi comando G-Code che vuoi venga inserito all'inizio del " -"file G-Code." - -#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:63 -msgid "Append to G-Code" -msgstr "Accoda al G-Code" - -#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:73 -msgid "" -"Type here any G-Code commands you would like to append to the generated " -"file.\n" -"I.e.: M2 (End of program)" -msgstr "" -"Scrivi qui qualsiasi comando G-Code che vuoi venga inserito alla fine del " -"file G-Code.\n" -"Es: M2 (Fine programma)" - -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:27 -msgid "Excellon Adv. Options" -msgstr "Opzioni avanzate Ecellon" - -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:34 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:34 -#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:31 -msgid "Advanced Options" -msgstr "Opzioni avanzate" - -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:36 -msgid "" -"A list of Excellon advanced parameters.\n" -"Those parameters are available only for\n" -"Advanced App. Level." -msgstr "" -"Un elenco di parametri avanzati di Excellon.\n" -"Tali parametri sono disponibili solo per\n" -"App a livello avanzato." - -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:59 -msgid "Toolchange X,Y" -msgstr "Cambio Utensile X,Y" - -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:61 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:48 -msgid "Toolchange X,Y position." -msgstr "Posizione X, Y per il cambio utensile." - -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:121 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:137 -msgid "Spindle direction" -msgstr "Direzione mandrino" - -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:123 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:139 -msgid "" -"This sets the direction that the spindle is rotating.\n" -"It can be either:\n" -"- CW = clockwise or\n" -"- CCW = counter clockwise" -msgstr "" -"Questo imposta la direzione in cui il mandrino ruota.\n" -"Può essere:\n" -"- CW = orario o\n" -"- CCW = antiorario" - -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:134 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:151 -msgid "Fast Plunge" -msgstr "Affondo rapido" - -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:136 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:153 -msgid "" -"By checking this, the vertical move from\n" -"Z_Toolchange to Z_move is done with G0,\n" -"meaning the fastest speed available.\n" -"WARNING: the move is done at Toolchange X,Y coords." -msgstr "" -"Controllando questo, lo spostamento da\n" -"Z_Toolchange a Z_move è realizzato con G0,\n" -"ovvero alla velocità massima disponibile.\n" -"ATTENZIONE: la mossa viene eseguita alle coordinate X,Y del Cambio utensile." - -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:143 -msgid "Fast Retract" -msgstr "Ritrazione rapida" - -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:145 -msgid "" -"Exit hole strategy.\n" -" - When uncheked, while exiting the drilled hole the drill bit\n" -"will travel slow, with set feedrate (G1), up to zero depth and then\n" -"travel as fast as possible (G0) to the Z Move (travel height).\n" -" - When checked the travel from Z cut (cut depth) to Z_move\n" -"(travel height) is done as fast as possible (G0) in one move." -msgstr "" -"Strategia di uscita dai fori.\n" -" - Se non abilitata, mentre si esce dal foro, la punta del trapano\n" -"viaggerà lentamente, con avanzamento impostato (G1), fino a zero profondità " -"e poi\n" -"viaggerà il più velocemente possibile (G0) verso Z Move (altezza per gli " -"spostamenti).\n" -" - Se selezionata, la corsa da Z di taglio (profondità di taglio) a Z_move\n" -"(altezza per gli spostamenti) viene eseguita il più velocemente possibile " -"(G0) in una sola mossa." - -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:32 -msgid "A list of Excellon Editor parameters." -msgstr "Una lista di parametri di edit Excellon." - -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:40 -#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:41 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:41 -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:172 -msgid "Selection limit" -msgstr "Limite selezione" - -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:42 -msgid "" -"Set the number of selected Excellon geometry\n" -"items above which the utility geometry\n" -"becomes just a selection rectangle.\n" -"Increases the performance when moving a\n" -"large number of geometric elements." -msgstr "" -"Imposta il numero di elementi di geometria\n" -"Excellon selezionata sopra i quali la geometria\n" -"diventa un rettangolo di selezione.\n" -"Aumenta le prestazioni quando si usano un\n" -"gran numero di elementi geometrici." - -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:55 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:134 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:117 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:123 -msgid "New Dia" -msgstr "Nuovo diametro" - -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:80 -msgid "Linear Drill Array" -msgstr "Matrice lineare di fori" - -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:84 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:232 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:121 -msgid "Linear Direction" -msgstr "Direzione lineare" - -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:126 -msgid "Circular Drill Array" -msgstr "Matrice circolare di fori" - -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:130 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:280 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:165 -msgid "Circular Direction" -msgstr "Direzione circolare" - -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:132 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:282 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:167 -msgid "" -"Direction for circular array.\n" -"Can be CW = clockwise or CCW = counter clockwise." -msgstr "" -"Direzione matrice circolare.\n" -"Può essere CW = senso orario o CCW = senso antiorario." - -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:143 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:293 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:178 -msgid "Circular Angle" -msgstr "Ancolo circolare" - -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:196 -msgid "" -"Angle at which the slot is placed.\n" -"The precision is of max 2 decimals.\n" -"Min value is: -359.99 degrees.\n" -"Max value is: 360.00 degrees." -msgstr "" -"Angolo a cui è posizionata lo slot.\n" -"La precisione è di massimo 2 decimali.\n" -"Il valore minimo è: -359,99 gradi.\n" -"Il valore massimo è: 360,00 gradi." - -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:215 -msgid "Linear Slot Array" -msgstr "Matrice lineare di slot" - -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:276 -msgid "Circular Slot Array" -msgstr "Matrice circolare di slot" - -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:26 -msgid "Excellon Export" -msgstr "Exporta Excellon" - -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:30 -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:31 -msgid "Export Options" -msgstr "Opzioni esportazione" - -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:32 -msgid "" -"The parameters set here are used in the file exported\n" -"when using the File -> Export -> Export Excellon menu entry." -msgstr "" -"I parametri impostati qui vengono utilizzati nel file esportato\n" -"quando si utilizza la voce di menu File -> Esporta -> Esporta Excellon." - -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:41 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:172 -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:39 -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:42 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:82 -#: AppTools/ToolDistance.py:56 AppTools/ToolDistanceMin.py:49 -#: AppTools/ToolPcbWizard.py:127 AppTools/ToolProperties.py:154 -msgid "Units" -msgstr "Unità" - -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:43 -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:49 -msgid "The units used in the Excellon file." -msgstr "Unità usate nel file Excellon." - -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:46 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:96 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:182 -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:47 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:87 -#: AppTools/ToolCalculators.py:61 AppTools/ToolPcbWizard.py:125 -msgid "INCH" -msgstr "POLLICI" - -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:47 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:183 -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:43 -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:48 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:88 -#: AppTools/ToolCalculators.py:62 AppTools/ToolPcbWizard.py:126 -msgid "MM" -msgstr "MM" - -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:55 -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:56 -msgid "Int/Decimals" -msgstr "Int/Decimali" - -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:57 -msgid "" -"The NC drill files, usually named Excellon files\n" -"are files that can be found in different formats.\n" -"Here we set the format used when the provided\n" -"coordinates are not using period." -msgstr "" -"I file di forature NC, generalmente detti file Excellon\n" -"sono file che possono essere trovati in diversi formati.\n" -"Qui impostiamo il formato utilizzato quando le coordinate\n" -"fornite non utilizzano la virgola." - -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:69 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:104 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:133 -msgid "" -"This numbers signify the number of digits in\n" -"the whole part of Excellon coordinates." -msgstr "" -"Questi numeri indicano il numero di cifre nella\n" -"parte intera delle coordinate di Excellon." - -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:82 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:117 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:146 -msgid "" -"This numbers signify the number of digits in\n" -"the decimal part of Excellon coordinates." -msgstr "" -"Questi numeri indicano il numero di cifre nella\n" -"parte decimale delle coordinate di Excellon." - -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:91 -msgid "Format" -msgstr "Formato" - -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:93 -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:103 -msgid "" -"Select the kind of coordinates format used.\n" -"Coordinates can be saved with decimal point or without.\n" -"When there is no decimal point, it is required to specify\n" -"the number of digits for integer part and the number of decimals.\n" -"Also it will have to be specified if LZ = leading zeros are kept\n" -"or TZ = trailing zeros are kept." -msgstr "" -"Seleziona il tipo di formato di coordinate utilizzato.\n" -"Le coordinate possono essere salvate con punto decimale o senza.\n" -"Quando non è presente un punto decimale, è necessario specificare\n" -"il numero di cifre per la parte intera e il numero di decimali.\n" -"Inoltre dovrà essere specificato se ZI = zeri iniziali vengono mantenuti\n" -"o ZF = vengono mantenuti gli zeri finali." - -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:100 -msgid "Decimal" -msgstr "Decimale" - -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:101 -msgid "No-Decimal" -msgstr "Non-decimale" - -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:114 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:154 -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:96 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:97 -msgid "Zeros" -msgstr "Zeri" - -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:117 -msgid "" -"This sets the type of Excellon zeros.\n" -"If LZ then Leading Zeros are kept and\n" -"Trailing Zeros are removed.\n" -"If TZ is checked then Trailing Zeros are kept\n" -"and Leading Zeros are removed." -msgstr "" -"Questo imposta il tipo di zeri di Excellon.\n" -"Se ZI, gli Zeri iniziali vengono mantenuti e\n" -"Gli zeri finali vengono rimossi.\n" -"Se ZF è selezionato, gli Zeri finali vengono mantenuti\n" -"e gli zeri iniziali vengono rimossi." - -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:124 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:167 -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:106 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:107 -#: AppTools/ToolPcbWizard.py:111 -msgid "LZ" -msgstr "ZI" - -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:125 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:168 -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:107 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:108 -#: AppTools/ToolPcbWizard.py:112 -msgid "TZ" -msgstr "ZF" - -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:127 -msgid "" -"This sets the default type of Excellon zeros.\n" -"If LZ then Leading Zeros are kept and\n" -"Trailing Zeros are removed.\n" -"If TZ is checked then Trailing Zeros are kept\n" -"and Leading Zeros are removed." -msgstr "" -"Questo imposta il tipo di default degli zeri di Excellon.\n" -"Se ZI, gli Zeri iniziali vengono mantenuti e\n" -"Gli zeri finali vengono rimossi.\n" -"Se ZF è selezionato, gli Zeri finali vengono mantenuti\n" -"e gli zeri iniziali vengono rimossi." - -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:137 -msgid "Slot type" -msgstr "Tipo slot" - -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:140 -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:150 -msgid "" -"This sets how the slots will be exported.\n" -"If ROUTED then the slots will be routed\n" -"using M15/M16 commands.\n" -"If DRILLED(G85) the slots will be exported\n" -"using the Drilled slot command (G85)." -msgstr "" -"Questo imposta il modo in cui verranno esportati gli slot.\n" -"Se FRESATO, gli slot verranno lavorati\n" -"utilizzando i comandi M15 / M16.\n" -"Se FORATO (G85) gli slot verranno esportati\n" -"utilizzando il comando Drill slot (G85)." - -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:147 -msgid "Routed" -msgstr "Fresato" - -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:148 -msgid "Drilled(G85)" -msgstr "Forato" - -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:29 -msgid "Excellon General" -msgstr "Generali Excellon" - -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:54 -#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:45 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:52 -msgid "M-Color" -msgstr "Colori-M" - -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:71 -msgid "Excellon Format" -msgstr "Formato Excellon" - -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:73 -msgid "" -"The NC drill files, usually named Excellon files\n" -"are files that can be found in different formats.\n" -"Here we set the format used when the provided\n" -"coordinates are not using period.\n" -"\n" -"Possible presets:\n" -"\n" -"PROTEUS 3:3 MM LZ\n" -"DipTrace 5:2 MM TZ\n" -"DipTrace 4:3 MM LZ\n" -"\n" -"EAGLE 3:3 MM TZ\n" -"EAGLE 4:3 MM TZ\n" -"EAGLE 2:5 INCH TZ\n" -"EAGLE 3:5 INCH TZ\n" -"\n" -"ALTIUM 2:4 INCH LZ\n" -"Sprint Layout 2:4 INCH LZ\n" -"KiCAD 3:5 INCH TZ" -msgstr "" -"I file di foratura (NC), generalmente denominati file Excellon,\n" -"sono file che possono essere creati in diversi formati.\n" -"Qui impostiamo il formato utilizzato quando le coordinate\n" -"fornite non utilizzano il punto.\n" -"\n" -"Possibili impostazioni:\n" -"\n" -"PROTEUS 3: 3 MM ZI\n" -"DipTrace 5: 2 MM ZF\n" -"DipTrace 4: 3 MM ZI\n" -"\n" -"EAGLE 3: 3 MM ZF\n" -"EAGLE 4: 3 MM ZF\n" -"EAGLE 2: 5 POLLICI ZF\n" -"EAGLE 3: 5 POLLICI ZF\n" -"\n" -"ALTIUM 2: 4 POLLICI ZI\n" -"Sprint Layout 2: 4 POLLICI ZI\n" -"KiCAD 3: 5 POLLICI ZF" - -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:97 -msgid "Default values for INCH are 2:4" -msgstr "I valori di default per i POLLICI sono 2:4" - -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:125 -msgid "METRIC" -msgstr "METRICA" - -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:126 -msgid "Default values for METRIC are 3:3" -msgstr "I valori di default per i METRICI sono 3:3" - -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:157 -msgid "" -"This sets the type of Excellon zeros.\n" -"If LZ then Leading Zeros are kept and\n" -"Trailing Zeros are removed.\n" -"If TZ is checked then Trailing Zeros are kept\n" -"and Leading Zeros are removed.\n" -"\n" -"This is used when there is no information\n" -"stored in the Excellon file." -msgstr "" -"Questo imposta il tipo di zeri di Excellon.\n" -"Se ZI, gli Zeri iniziali vengono mantenuti e\n" -"Gli zeri finali vengono rimossi.\n" -"Se ZF è selezionato, gli Zeri finali vengono mantenuti\n" -"e gli zeri iniziali vengono rimossi.\n" -"\n" -"Questo è usato quando non ci sono informazioni\n" -"memorizzato nel file Excellon." - -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:175 -msgid "" -"This sets the default units of Excellon files.\n" -"If it is not detected in the parsed file the value here\n" -"will be used.Some Excellon files don't have an header\n" -"therefore this parameter will be used." -msgstr "" -"Questo imposta le unità predefinite dei file Excellon.\n" -"Se non viene rilevato nel file analizzato, sarà usato il valore qui\n" -"contenuto. Alcuni file Excellon non hanno un'intestazione\n" -"pertanto verrà utilizzato questo parametro." - -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:185 -msgid "" -"This sets the units of Excellon files.\n" -"Some Excellon files don't have an header\n" -"therefore this parameter will be used." -msgstr "" -"Questo imposta le unità dei file Excellon.\n" -"Alcuni file di Excellon non hanno un'intestazione\n" -"pertanto verrà utilizzato questo parametro." - -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:193 -msgid "Update Export settings" -msgstr "Aggiorna impostazioni esportazione" - -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:210 -msgid "Excellon Optimization" -msgstr "Ottimizzazione Excellon" - -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:213 -msgid "Algorithm:" -msgstr "Algoritmo:" - -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:215 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:231 -msgid "" -"This sets the optimization type for the Excellon drill path.\n" -"If <> is checked then Google OR-Tools algorithm with\n" -"MetaHeuristic Guided Local Path is used. Default search time is 3sec.\n" -"If <> is checked then Google OR-Tools Basic algorithm is used.\n" -"If <> is checked then Travelling Salesman algorithm is used for\n" -"drill path optimization.\n" -"\n" -"If this control is disabled, then FlatCAM works in 32bit mode and it uses\n" -"Travelling Salesman algorithm for path optimization." -msgstr "" -"Questo imposta il tipo di ottimizzazione per il percorso di perforazione di " -"Excellon.\n" -"Se è selezionato <>, allora sarà usato l'algoritmo di Google " -"OR-Tools con\n" -"percorso locale guidato meta-euristico. Il tempo di ricerca predefinito è 3 " -"secondi.\n" -"Se è selezionato <>, viene utilizzato l'algoritmo Google OR-Tools " -"Basic.\n" -"Se è selezionato <>, viene utilizzato l'algoritmo del commesso " -"viaggiatore per\n" -"l'ottimizzazione del percorso di perforazione.\n" -"\n" -"Se questo controllo è disabilitato, FlatCAM funzionerà in modalità 32 bit e " -"utilizzerà\n" -"l'algoritmo del commesso viaggiatore per l'ottimizzazione del percorso." - -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:226 -msgid "MetaHeuristic" -msgstr "MetaHeuristic" - -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:227 -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:104 -#: AppObjects/FlatCAMExcellon.py:694 AppObjects/FlatCAMGeometry.py:568 -#: AppObjects/FlatCAMGerber.py:219 AppTools/ToolIsolation.py:785 -msgid "Basic" -msgstr "Base" - -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:228 -msgid "TSA" -msgstr "ACV" - -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:245 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:245 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:238 -msgid "Duration" -msgstr "Durata" - -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:248 -msgid "" -"When OR-Tools Metaheuristic (MH) is enabled there is a\n" -"maximum threshold for how much time is spent doing the\n" -"path optimization. This max duration is set here.\n" -"In seconds." -msgstr "" -"Quando OR-Tools Metaheuristic (MH) è abilitato, c'è una\n" -"soglia massima per il tempo impiegato ad ottimizzare i percorsi.\n" -"Questa durata massima è impostata qui.\n" -"In secondi." - -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:273 -#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:96 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:155 -msgid "Set the line color for plotted objects." -msgstr "Imposta il colore della linea che disegna gli oggetti Gerber." - -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:29 -msgid "Excellon Options" -msgstr "Opzioni Excellon" - -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:33 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:35 -msgid "Create CNC Job" -msgstr "Crea lavoro CNC" - -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:35 -msgid "" -"Parameters used to create a CNC Job object\n" -"for this drill object." -msgstr "" -"Parametri usati per creare un oggetto CNC Job\n" -"per questo oggetto foro." - -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:152 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:122 -msgid "Tool change" -msgstr "Cambio utensile" - -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:236 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:233 -msgid "Enable Dwell" -msgstr "Abilita attesa" - -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:259 -msgid "" -"The preprocessor JSON file that dictates\n" -"Gcode output." -msgstr "" -"File JSON del preprocessore che istruisce\n" -"il GCode di uscita." - -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:270 -msgid "Gcode" -msgstr "GCode" - -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:272 -msgid "" -"Choose what to use for GCode generation:\n" -"'Drills', 'Slots' or 'Both'.\n" -"When choosing 'Slots' or 'Both', slots will be\n" -"converted to drills." -msgstr "" -"Scegli cosa utilizzare per la generazione GCode:\n" -"'Forature', 'Slot' o 'Entrambi'.\n" -"Quando si sceglie 'Slot' o 'Entrambi', le slot saranno\n" -"convertite in fori." - -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:288 -msgid "Mill Holes" -msgstr "Fresatura fori" - -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:290 -msgid "Create Geometry for milling holes." -msgstr "Crea Geometrie per forare i buchi." - -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:294 -msgid "Drill Tool dia" -msgstr "Diametro udensile foratura" - -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:305 -msgid "Slot Tool dia" -msgstr "Diametro utensile Slot" - -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:307 -msgid "" -"Diameter of the cutting tool\n" -"when milling slots." -msgstr "" -"Diametro dell'utensile da taglio\n" -"che fresa gli slot." - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:28 -#: AppGUI/preferences/general/GeneralAppSettingsGroupUI.py:74 -msgid "App Settings" -msgstr "Impostazioni App" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:49 -msgid "Grid Settings" -msgstr "Impostazioni Griglia" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:53 -msgid "X value" -msgstr "Valore X" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:55 -msgid "This is the Grid snap value on X axis." -msgstr "Questo è il valore di snap alla griglia sull'asse X." - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:65 -msgid "Y value" -msgstr "Valore Y" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:67 -msgid "This is the Grid snap value on Y axis." -msgstr "Questo è il valore di snap alla griglia sull'asse Y." - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:77 -msgid "Snap Max" -msgstr "Snap massimo" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:92 -msgid "Workspace Settings" -msgstr "Impostazioni area di lavoro" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:95 -msgid "Active" -msgstr "Attivo" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:105 -msgid "" -"Select the type of rectangle to be used on canvas,\n" -"as valid workspace." -msgstr "" -"Seleziona il tipo di rettangolo da utilizzare,\n" -"come spazio di lavoro valido." - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:171 -msgid "Orientation" -msgstr "Orientamento" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:172 -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:228 -#: AppTools/ToolFilm.py:405 -msgid "" -"Can be:\n" -"- Portrait\n" -"- Landscape" -msgstr "" -"Può essere:\n" -"- Verticale\n" -"- Orizzontale" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:176 -#: AppGUI/preferences/general/GeneralAppSettingsGroupUI.py:154 -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:232 -#: AppTools/ToolFilm.py:409 -msgid "Portrait" -msgstr "Verticale" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:177 -#: AppGUI/preferences/general/GeneralAppSettingsGroupUI.py:155 -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:233 -#: AppTools/ToolFilm.py:410 -msgid "Landscape" -msgstr "Orizzontale" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:193 -msgid "Notebook" -msgstr "Blocco note" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:195 -#, fuzzy -#| msgid "" -#| "This sets the font size for the elements found in the Notebook.\n" -#| "The notebook is the collapsible area in the left side of the GUI,\n" -#| "and include the Project, Selected and Tool tabs." -msgid "" -"This sets the font size for the elements found in the Notebook.\n" -"The notebook is the collapsible area in the left side of the AppGUI,\n" -"and include the Project, Selected and Tool tabs." -msgstr "" -"Questo imposta la dimensione del carattere per gli elementi trovati nel " -"blocco note.\n" -"Il blocco note è l'area comprimibile nella parte sinistra della GUI,\n" -"e include le schede Progetto, Selezionato e Strumento." - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:214 -msgid "Axis" -msgstr "Assi" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:216 -msgid "This sets the font size for canvas axis." -msgstr "Questo imposta la dimensione del carattere per gli assi." - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:233 -msgid "Textbox" -msgstr "Box testo" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:235 -#, fuzzy -#| msgid "" -#| "This sets the font size for the Textbox GUI\n" -#| "elements that are used in FlatCAM." -msgid "" -"This sets the font size for the Textbox AppGUI\n" -"elements that are used in the application." -msgstr "" -"Ciò imposta la dimensione del carattere per gli elementi delle box testo\n" -"della GUI utilizzati in FlatCAM." - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:253 -msgid "HUD" -msgstr "" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:255 -#, fuzzy -#| msgid "This sets the font size for canvas axis." -msgid "This sets the font size for the Heads Up Display." -msgstr "Questo imposta la dimensione del carattere per gli assi." - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:280 -msgid "Mouse Settings" -msgstr "Impostazioni mouse" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:284 -msgid "Cursor Shape" -msgstr "Forma cursore" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:286 -msgid "" -"Choose a mouse cursor shape.\n" -"- Small -> with a customizable size.\n" -"- Big -> Infinite lines" -msgstr "" -"Scegli una forma del cursore del mouse.\n" -"- Piccolo -> con dimensioni personalizzabili.\n" -"- Grande -> Linee infinite" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:292 -#: AppGUI/preferences/general/GeneralAppSettingsGroupUI.py:193 -msgid "Small" -msgstr "Piccolo" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:293 -#: AppGUI/preferences/general/GeneralAppSettingsGroupUI.py:194 -msgid "Big" -msgstr "Grande" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:300 -msgid "Cursor Size" -msgstr "Dimensione cursore" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:302 -msgid "Set the size of the mouse cursor, in pixels." -msgstr "Imposta la dimensione del cursore del mouse, in pixel." - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:313 -msgid "Cursor Width" -msgstr "Larghezza cursore" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:315 -msgid "Set the line width of the mouse cursor, in pixels." -msgstr "Imposta la larghezza della linea del cursore del mouse, in pixel." - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:326 -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:333 -msgid "Cursor Color" -msgstr "Colore cursore" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:328 -msgid "Check this box to color mouse cursor." -msgstr "Seleziona questa casella per colorare il cursore del mouse." - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:335 -msgid "Set the color of the mouse cursor." -msgstr "Imposta il colore del cursore del mouse." - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:350 -msgid "Pan Button" -msgstr "Pulsante panorama" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:352 -msgid "" -"Select the mouse button to use for panning:\n" -"- MMB --> Middle Mouse Button\n" -"- RMB --> Right Mouse Button" -msgstr "" -"Seleziona il pulsante del mouse da utilizzare per le panoramiche (panning):\n" -"- PCM -> Pulsante centrale del mouse\n" -"- PDM -> Pulsante destro del mouse" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:356 -#: AppGUI/preferences/general/GeneralAppSettingsGroupUI.py:226 -msgid "MMB" -msgstr "PCM" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:357 -#: AppGUI/preferences/general/GeneralAppSettingsGroupUI.py:227 -msgid "RMB" -msgstr "PDM" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:363 -msgid "Multiple Selection" -msgstr "Selezione multipla" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:365 -msgid "Select the key used for multiple selection." -msgstr "Imposta il tasto per le selezioni multiple." - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:367 -#: AppGUI/preferences/general/GeneralAppSettingsGroupUI.py:233 -msgid "CTRL" -msgstr "CTRL" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:368 -#: AppGUI/preferences/general/GeneralAppSettingsGroupUI.py:234 -msgid "SHIFT" -msgstr "SHIFT" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:379 -msgid "Delete object confirmation" -msgstr "Conferma eliminazione oggetto" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:381 -msgid "" -"When checked the application will ask for user confirmation\n" -"whenever the Delete object(s) event is triggered, either by\n" -"menu shortcut or key shortcut." -msgstr "" -"Se selezionata, l'applicazione richiederà la conferma all'utente\n" -"ogni volta che viene attivato l'evento Elimina oggetto/i, da\n" -"scorciatoia menu o da tasto di scelta rapida." - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:388 -msgid "\"Open\" behavior" -msgstr "Comportamento \"Apri\"" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:390 -msgid "" -"When checked the path for the last saved file is used when saving files,\n" -"and the path for the last opened file is used when opening files.\n" -"\n" -"When unchecked the path for opening files is the one used last: either the\n" -"path for saving files or the path for opening files." -msgstr "" -"Se selezionato, il percorso dell'ultimo file salvato viene utilizzato " -"durante il salvataggio dei file,\n" -"e il percorso dell'ultimo file aperto viene utilizzato durante l'apertura " -"dei file.\n" -"\n" -"Se deselezionato, il percorso di apertura dei file è quello utilizzato per " -"ultimo: sia\n" -"percorso di salvataggio sia percorso di apertura dei file." - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:399 -msgid "Enable ToolTips" -msgstr "Abilita ToolTips" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:401 -msgid "" -"Check this box if you want to have toolTips displayed\n" -"when hovering with mouse over items throughout the App." -msgstr "" -"Selezionare questa casella se si desidera visualizzare le descrizioni " -"comandi\n" -"quando si passa con il mouse sugli oggetti in tutta l'app." - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:408 -msgid "Allow Machinist Unsafe Settings" -msgstr "Consenti le impostazioni non sicure dell'operatore" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:410 -msgid "" -"If checked, some of the application settings will be allowed\n" -"to have values that are usually unsafe to use.\n" -"Like Z travel negative values or Z Cut positive values.\n" -"It will applied at the next application start.\n" -"<>: Don't change this unless you know what you are doing !!!" -msgstr "" -"Se selezionato, alcune impostazioni dell'applicazione potranno\n" -"avere valori che di solito non sono sicuri da usare.\n" -"Come spostamenti in Z con valori negativi o tagli in Z con valori positivi.\n" -"Verrà applicato al successivo avvio dell'applicazione.\n" -"<>: non cambiarlo se non sai cosa stai facendo !!!" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:422 -msgid "Bookmarks limit" -msgstr "Limite segnalibri" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:424 -msgid "" -"The maximum number of bookmarks that may be installed in the menu.\n" -"The number of bookmarks in the bookmark manager may be greater\n" -"but the menu will hold only so much." -msgstr "" -"Il massimo numero di sgnalibri che possono essere installati nel menu.\n" -"Il numero di segnalibri nel gestore segnalibri può essere maggiore\n" -"ma il menu ne conterrà solo la quantità qui specificata." - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:433 -msgid "Activity Icon" -msgstr "Icona attività" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:435 -msgid "Select the GIF that show activity when FlatCAM is active." -msgstr "Selezione una GIF che mostra quando FlatCAM è attivo." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:29 -msgid "App Preferences" -msgstr "Preferenze App" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:40 -msgid "" -"The default value for FlatCAM units.\n" -"Whatever is selected here is set every time\n" -"FlatCAM is started." -msgstr "" -"Il valore predefinito per le unità FlatCAM.\n" -"Qualunque cosa sia qui selezionata verrà impostata ad ogni\n" -"avvio di FlatCAM." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:44 -msgid "IN" -msgstr "IN" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:50 -msgid "Precision MM" -msgstr "Precisione MM" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:52 -msgid "" -"The number of decimals used throughout the application\n" -"when the set units are in METRIC system.\n" -"Any change here require an application restart." -msgstr "" -"Numero di decimali usati nell'applicazione\n" -"quando è impostata l'unità del sistema METRICO.\n" -"Ogni modifica richiederà il riavvio del programma." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:64 -msgid "Precision INCH" -msgstr "Precisione POLLICI" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:66 -msgid "" -"The number of decimals used throughout the application\n" -"when the set units are in INCH system.\n" -"Any change here require an application restart." -msgstr "" -"Numero di decimali usati nell'applicazione\n" -"quando è impostata l'unità del sistema POLLICI.\n" -"Ogni modifica richiederà il riavvio del programma." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:78 -msgid "Graphic Engine" -msgstr "Motore grafico" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:79 -msgid "" -"Choose what graphic engine to use in FlatCAM.\n" -"Legacy(2D) -> reduced functionality, slow performance but enhanced " -"compatibility.\n" -"OpenGL(3D) -> full functionality, high performance\n" -"Some graphic cards are too old and do not work in OpenGL(3D) mode, like:\n" -"Intel HD3000 or older. In this case the plot area will be black therefore\n" -"use the Legacy(2D) mode." -msgstr "" -"Scegli quale motore grafico utilizzare in FlatCAM.\n" -"Legacy (2D) -> funzionalità ridotta, prestazioni lente ma compatibilità " -"migliore.\n" -"OpenGL (3D) -> piena funzionalità, alte prestazioni\n" -"Alcune schede grafiche sono troppo vecchie e non funzionano in modalità " -"OpenGL (3D), come:\n" -"Intel HD3000 o precedente. In questo caso l'area della trama apparirà nera\n" -"quindi usa la modalità Legacy (2D)." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:85 -msgid "Legacy(2D)" -msgstr "Legacy(2D)" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:86 -msgid "OpenGL(3D)" -msgstr "OpenGL(3D)" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:98 -msgid "APP. LEVEL" -msgstr "LIVELLO APP" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:99 -msgid "" -"Choose the default level of usage for FlatCAM.\n" -"BASIC level -> reduced functionality, best for beginner's.\n" -"ADVANCED level -> full functionality.\n" -"\n" -"The choice here will influence the parameters in\n" -"the Selected Tab for all kinds of FlatCAM objects." -msgstr "" -"Scegli il livello di utilizzo predefinito per FlatCAM.\n" -"Livello BASE -> funzionalità ridotta, ideale per i principianti.\n" -"Livello AVANZATO -> piena funzionalità.\n" -"\n" -"La scelta qui influenzerà i parametri nelle\n" -"schede selezionate per tutti i tipi di oggetti FlatCAM." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:105 -#: AppObjects/FlatCAMExcellon.py:707 AppObjects/FlatCAMGeometry.py:589 -#: AppObjects/FlatCAMGerber.py:227 AppTools/ToolIsolation.py:816 -msgid "Advanced" -msgstr "Avanzato" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:111 -msgid "Portable app" -msgstr "App portabile" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:112 -msgid "" -"Choose if the application should run as portable.\n" -"\n" -"If Checked the application will run portable,\n" -"which means that the preferences files will be saved\n" -"in the application folder, in the lib\\config subfolder." -msgstr "" -"Scegli se l'applicazione deve essere eseguita come portabile.\n" -"\n" -"Se selezionata l'applicazione funzionerà come portabile,\n" -"ciò significa che i file delle preferenze verranno salvati\n" -"nella cartella dell'applicazione, nella sottocartella lib\\config." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:125 -msgid "Languages" -msgstr "Lingua" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:126 -msgid "Set the language used throughout FlatCAM." -msgstr "Imposta la lingua usata in FlatCAM." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:132 -msgid "Apply Language" -msgstr "Applica lingua" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:133 -msgid "" -"Set the language used throughout FlatCAM.\n" -"The app will restart after click." -msgstr "" -"Imposta la lingua usata in FlatCAM. L'App verrà riavviata dopo il click." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:147 -msgid "Startup Settings" -msgstr "Impostazioni avvio" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:151 -msgid "Splash Screen" -msgstr "Schermata iniziale" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:153 -msgid "Enable display of the splash screen at application startup." -msgstr "Abilita la visualizzazione della schermata iniziale all'avvio." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:165 -msgid "Sys Tray Icon" -msgstr "Icona barra di sistema" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:167 -msgid "Enable display of FlatCAM icon in Sys Tray." -msgstr "Abilita l'icona di FlatCAM nella barra di sistema." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:172 -msgid "Show Shell" -msgstr "Mostra shell" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:174 -msgid "" -"Check this box if you want the shell to\n" -"start automatically at startup." -msgstr "" -"Seleziona questa casella se vuoi che la shell sia eseguita\n" -"automaticamente all'avvio." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:181 -msgid "Show Project" -msgstr "Mostra progetto" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:183 -msgid "" -"Check this box if you want the project/selected/tool tab area to\n" -"to be shown automatically at startup." -msgstr "" -"Selezionare questa casella se si desidera che l'area del progetto/selezione/" -"scheda strumenti\n" -"sia mostrata automaticamente all'avvio." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:189 -msgid "Version Check" -msgstr "Controllo versione" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:191 -msgid "" -"Check this box if you want to check\n" -"for a new version automatically at startup." -msgstr "" -"Selezionare questa casella se si desidera controllare\n" -"automaticamente all'avvio la presenza di una nuova versione." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:198 -msgid "Send Statistics" -msgstr "Invia statistiche" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:200 -msgid "" -"Check this box if you agree to send anonymous\n" -"stats automatically at startup, to help improve FlatCAM." -msgstr "" -"Seleziona questa casella se accetti di inviare anonimamente\n" -"alcune statistiche all'avvio, per aiutare a migliorare FlatCAM." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:214 -msgid "Workers number" -msgstr "Numero lavori" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:216 -msgid "" -"The number of Qthreads made available to the App.\n" -"A bigger number may finish the jobs more quickly but\n" -"depending on your computer speed, may make the App\n" -"unresponsive. Can have a value between 2 and 16.\n" -"Default value is 2.\n" -"After change, it will be applied at next App start." -msgstr "" -"Il numero di processi resi disponibili all'app.\n" -"Un numero maggiore può finire i lavori più rapidamente ma\n" -"a seconda della velocità del tuo computer, potrebbe rendere l'app\n" -"non responsiva. Può avere un valore compreso tra 2 e 16.\n" -"Il valore predefinito è 2.\n" -"Ogni modifica sarà applicata al prossimo avvio dell'app." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:230 -msgid "Geo Tolerance" -msgstr "Tolleranza geometrie" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:232 -msgid "" -"This value can counter the effect of the Circle Steps\n" -"parameter. Default value is 0.005.\n" -"A lower value will increase the detail both in image\n" -"and in Gcode for the circles, with a higher cost in\n" -"performance. Higher value will provide more\n" -"performance at the expense of level of detail." -msgstr "" -"Questo valore può contenere l'effetto dei passi nei Cerchi.\n" -"Il valore predefinito è 0,005.\n" -"Un valore più basso aumenterà i dettagli sia nell'immagine\n" -"e nel Gcode per i cerchi ma con un costo maggiore in\n" -"termini di prestazioni. Un valore più elevato fornirà più\n" -"prestazioni a scapito del livello di dettaglio." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:252 -msgid "Save Settings" -msgstr "Salva impostazioni" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:256 -msgid "Save Compressed Project" -msgstr "Salva progetti ompressi" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:258 -msgid "" -"Whether to save a compressed or uncompressed project.\n" -"When checked it will save a compressed FlatCAM project." -msgstr "" -"Imposta se salvare un progetto compresso o non compresso.\n" -"Se selezionato, salverà un progetto FlatCAM compresso." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:267 -msgid "Compression" -msgstr "Compressione" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:269 -msgid "" -"The level of compression used when saving\n" -"a FlatCAM project. Higher value means better compression\n" -"but require more RAM usage and more processing time." -msgstr "" -"Il livello di compressione utilizzato durante il salvataggio di\n" -"progetti FlatCAM. Un valore più alto significa una maggior compressione\n" -"ma richiede più utilizzo di RAM e più tempo di elaborazione." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:280 -msgid "Enable Auto Save" -msgstr "Abilita autosalvataggio" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:282 -msgid "" -"Check to enable the autosave feature.\n" -"When enabled, the application will try to save a project\n" -"at the set interval." -msgstr "" -"Attiva per abilitare il salvataggio automatico.\n" -"Quanto attivo, l'applicazione tenterà di salvare il progetto\n" -"ad intervalli regolari." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:292 -msgid "Interval" -msgstr "Intervallo" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:294 -msgid "" -"Time interval for autosaving. In milliseconds.\n" -"The application will try to save periodically but only\n" -"if the project was saved manually at least once.\n" -"While active, some operations may block this feature." -msgstr "" -"Intervallo di tempo per il salvataggio automatico. In millisecondi.\n" -"L'applicazione proverà a salvare periodicamente ma solo\n" -"se il progetto è stato salvato manualmente almeno una volta.\n" -"Quando attivo, alcune operazioni potrebbero bloccare questa funzione." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:310 -msgid "Text to PDF parameters" -msgstr "Parametri conversione da testo a PDF" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:312 -msgid "Used when saving text in Code Editor or in FlatCAM Document objects." -msgstr "" -"Utilizzato quando si salva il testo nell'editor di Codice o negli oggetti " -"documento di FlatCAM." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:321 -msgid "Top Margin" -msgstr "Margine superiore" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:323 -msgid "Distance between text body and the top of the PDF file." -msgstr "Distanza fra il corpo del testo e il bordo superiore del file PDF." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:334 -msgid "Bottom Margin" -msgstr "Margine inferiore" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:336 -msgid "Distance between text body and the bottom of the PDF file." -msgstr "Distanza fra il corpo del testo e il bordo inferiore del file PDF." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:347 -msgid "Left Margin" -msgstr "Margine sinistro" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:349 -msgid "Distance between text body and the left of the PDF file." -msgstr "Distanza fra il corpo del testo e il bordo sinistro del file PDF." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:360 -msgid "Right Margin" -msgstr "Margine destro" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:362 -msgid "Distance between text body and the right of the PDF file." -msgstr "Distanza fra il corpo del testo e il bordo destro del file PDF." - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:26 -msgid "GUI Preferences" -msgstr "Preferenze GUI" - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:36 -msgid "Theme" -msgstr "Tema" - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:38 -#, fuzzy -#| msgid "" -#| "Select a theme for FlatCAM.\n" -#| "It will theme the plot area." -msgid "" -"Select a theme for the application.\n" -"It will theme the plot area." -msgstr "" -"Seleziona un tema per FlatCAM.\n" -"Sarà applicato all'area di plot." - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:43 -msgid "Light" -msgstr "Chiaro" - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:44 -msgid "Dark" -msgstr "Scuro" - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:51 -msgid "Use Gray Icons" -msgstr "Usa icone grige" - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:53 -msgid "" -"Check this box to use a set of icons with\n" -"a lighter (gray) color. To be used when a\n" -"full dark theme is applied." -msgstr "" -"Seleziona questa casella per utilizzare un set di icone con\n" -"un colore più chiaro (grigio). Da usare quando\n" -"viene applicato il tema scuro." - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:73 -msgid "Layout" -msgstr "Livello" - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:75 -#, fuzzy -#| msgid "" -#| "Select an layout for FlatCAM.\n" -#| "It is applied immediately." -msgid "" -"Select a layout for the application.\n" -"It is applied immediately." -msgstr "" -"Seleziona un livello per FlatCAM.\n" -"Sarà applicato immediatamente." - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:95 -msgid "Style" -msgstr "Stile" - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:97 -#, fuzzy -#| msgid "" -#| "Select an style for FlatCAM.\n" -#| "It will be applied at the next app start." -msgid "" -"Select a style for the application.\n" -"It will be applied at the next app start." -msgstr "" -"Seleziona uno stile per FlatCAM.\n" -"Sarà applicato al prossimo riavvio del programma." - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:111 -msgid "Activate HDPI Support" -msgstr "Attiva supporto HDPI" - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:113 -#, fuzzy -#| msgid "" -#| "Enable High DPI support for FlatCAM.\n" -#| "It will be applied at the next app start." -msgid "" -"Enable High DPI support for the application.\n" -"It will be applied at the next app start." -msgstr "" -"Abilita il supporto HDPI per FlatCAM.\n" -"Sarà applicato al prossimo avvio del programma." - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:127 -msgid "Display Hover Shape" -msgstr "Visualizza forme al passaggio del mouse" - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:129 -#, fuzzy -#| msgid "" -#| "Enable display of a hover shape for FlatCAM objects.\n" -#| "It is displayed whenever the mouse cursor is hovering\n" -#| "over any kind of not-selected object." -msgid "" -"Enable display of a hover shape for the application objects.\n" -"It is displayed whenever the mouse cursor is hovering\n" -"over any kind of not-selected object." -msgstr "" -"Abilita la visualizzazione delle forme al passaggio del mouse sugli oggetti " -"FlatCAM.\n" -"Viene visualizzato ogni volta che si sposta il cursore del mouse\n" -"su qualsiasi tipo di oggetto non selezionato." - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:136 -msgid "Display Selection Shape" -msgstr "Mostra forme selezione" - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:138 -#, fuzzy -#| msgid "" -#| "Enable the display of a selection shape for FlatCAM objects.\n" -#| "It is displayed whenever the mouse selects an object\n" -#| "either by clicking or dragging mouse from left to right or\n" -#| "right to left." -msgid "" -"Enable the display of a selection shape for the application objects.\n" -"It is displayed whenever the mouse selects an object\n" -"either by clicking or dragging mouse from left to right or\n" -"right to left." -msgstr "" -"Abilita la visualizzazione delle forma della selezione per gli oggetti " -"FlatCAM.\n" -"Viene visualizzato ogni volta che il mouse seleziona un oggetto\n" -"facendo clic o trascinando il mouse da sinistra a destra o\n" -"da destra a sinistra." - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:151 -msgid "Left-Right Selection Color" -msgstr "Selezione colore sinistra-destra" - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:156 -msgid "Set the line color for the 'left to right' selection box." -msgstr "Imposta il colore per il box selezione 'da sinistra a destra'." - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:165 -msgid "" -"Set the fill color for the selection box\n" -"in case that the selection is done from left to right.\n" -"First 6 digits are the color and the last 2\n" -"digits are for alpha (transparency) level." -msgstr "" -"Imposta il colore di riempimento per la casella di selezione\n" -"nel caso in cui la selezione venga effettuata da sinistra a destra.\n" -"Le prime 6 cifre sono il colore e le ultime 2\n" -"cifre sono per il livello alfa (trasparenza)." - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:178 -msgid "Set the fill transparency for the 'left to right' selection box." -msgstr "" -"Imposta la trasparenza della casella di selezione 'da sinistra a destra'." - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:191 -msgid "Right-Left Selection Color" -msgstr "Selezione colore destra-sinistra" - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:197 -msgid "Set the line color for the 'right to left' selection box." -msgstr "Imposta il colore per il box selezione 'da destra a sinistra'." - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:207 -msgid "" -"Set the fill color for the selection box\n" -"in case that the selection is done from right to left.\n" -"First 6 digits are the color and the last 2\n" -"digits are for alpha (transparency) level." -msgstr "" -"Imposta il colore di riempimento per la casella di selezione\n" -"nel caso in cui la selezione venga effettuata da destra a sinistra.\n" -"Le prime 6 cifre sono il colore e le ultime 2\n" -"cifre sono per il livello alfa (trasparenza)." - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:220 -msgid "Set the fill transparency for selection 'right to left' box." -msgstr "" -"Imposta la trasparenza della casella di selezione 'da destra a sinistra'." - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:236 -msgid "Editor Color" -msgstr "Colore editor" - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:240 -msgid "Drawing" -msgstr "Disegno" - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:242 -msgid "Set the color for the shape." -msgstr "Imposta il colore per le forme." - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:250 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:275 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:311 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:258 -#: AppTools/ToolIsolation.py:494 AppTools/ToolNCC.py:539 -#: AppTools/ToolPaint.py:455 -msgid "Selection" -msgstr "Selezione" - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:252 -msgid "Set the color of the shape when selected." -msgstr "Imposta il colore delle forme quando selezionate." - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:268 -msgid "Project Items Color" -msgstr "Colori oggetti del progetto" - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:272 -msgid "Enabled" -msgstr "Abilitato" - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:274 -msgid "Set the color of the items in Project Tab Tree." -msgstr "Imposta il colore degli elementi nell'albero Tab progetto." - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:281 -msgid "Disabled" -msgstr "Disabilitato" - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:283 -msgid "" -"Set the color of the items in Project Tab Tree,\n" -"for the case when the items are disabled." -msgstr "" -"Imposta il colore degli elementi nell'albero Tab progetto,\n" -"nel caso gli elementi siano disabilitati." - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:292 -msgid "Project AutoHide" -msgstr "Nascondi automaticamente progetto" - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:294 -msgid "" -"Check this box if you want the project/selected/tool tab area to\n" -"hide automatically when there are no objects loaded and\n" -"to show whenever a new object is created." -msgstr "" -"Selezionare questa casella se si desidera che l'area del progetto/" -"selezionato/scheda strumento\n" -"sia nascosta automaticamente quando non ci sono oggetti caricati e\n" -"mostrarla ogni volta che viene creato un nuovo oggetto." - -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:28 -msgid "Geometry Adv. Options" -msgstr "Opzioni avanzate Geometrie" - -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:36 -msgid "" -"A list of Geometry advanced parameters.\n" -"Those parameters are available only for\n" -"Advanced App. Level." -msgstr "" -"Un elenco di parametri avanzati di Geometria.\n" -"Tali parametri sono disponibili solo per\n" -"App a livello avanzato." - -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:46 -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:112 -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:134 -#: AppTools/ToolCalibration.py:125 AppTools/ToolSolderPaste.py:236 -msgid "Toolchange X-Y" -msgstr "Cambio utensile X-Y" - -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:58 -msgid "" -"Height of the tool just after starting the work.\n" -"Delete the value if you don't need this feature." -msgstr "" -"Altezza dell'utensile subito dopo l'inizio del lavoro.\n" -"Elimina il valore se non hai bisogno di questa funzione." - -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:161 -msgid "Segment X size" -msgstr "Dimensione X del segmento" - -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:163 -msgid "" -"The size of the trace segment on the X axis.\n" -"Useful for auto-leveling.\n" -"A value of 0 means no segmentation on the X axis." -msgstr "" -"La dimensione del segmento di traccia sull'asse X.\n" -"Utile per il livellamento automatico.\n" -"Un valore 0 significa nessuna segmentazione sull'asse X." - -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:177 -msgid "Segment Y size" -msgstr "Dimensione Y del segmento" - -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:179 -msgid "" -"The size of the trace segment on the Y axis.\n" -"Useful for auto-leveling.\n" -"A value of 0 means no segmentation on the Y axis." -msgstr "" -"La dimensione del segmento di traccia sull'asse Y.\n" -"Utile per il livellamento automatico.\n" -"Un valore 0 significa nessuna segmentazione sull'asse Y." - -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:200 -#, fuzzy -#| msgid "Area Selection" -msgid "Area Exclusion" -msgstr "Selezione Area" - -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:202 -#, fuzzy -#| msgid "" -#| "A list of Excellon advanced parameters.\n" -#| "Those parameters are available only for\n" -#| "Advanced App. Level." -msgid "" -"Area exclusion parameters.\n" -"Those parameters are available only for\n" -"Advanced App. Level." -msgstr "" -"Un elenco di parametri avanzati di Excellon.\n" -"Tali parametri sono disponibili solo per\n" -"App a livello avanzato." - -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:209 -msgid "Exclusion areas" -msgstr "" - -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:220 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:293 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:322 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:286 -#: AppTools/ToolIsolation.py:540 AppTools/ToolNCC.py:578 -#: AppTools/ToolPaint.py:521 -msgid "Shape" -msgstr "Forma" - -#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:33 -msgid "A list of Geometry Editor parameters." -msgstr "Lista di parametri editor Geometrie." - -#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:43 -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:174 -msgid "" -"Set the number of selected geometry\n" -"items above which the utility geometry\n" -"becomes just a selection rectangle.\n" -"Increases the performance when moving a\n" -"large number of geometric elements." -msgstr "" -"Imposta il numero di elementi della geometria\n" -" selezionata sopra i quali la geometria\n" -"diventa solo un rettangolo di selezione.\n" -"Aumenta le prestazioni quando si usano un\n" -"gran numero di elementi geometrici." - -#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:58 -msgid "" -"Milling type:\n" -"- climb / best for precision milling and to reduce tool usage\n" -"- conventional / useful when there is no backlash compensation" -msgstr "" -"Tipo di fresatura:\n" -"- salita / migliore per fresatura di precisione e riduzione dell'uso degli " -"utensili\n" -"- convenzionale / utile in assenza di compensazione del gioco" - -#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:27 -msgid "Geometry General" -msgstr "Generali geometrie" - -#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:59 -msgid "" -"The number of circle steps for Geometry \n" -"circle and arc shapes linear approximation." -msgstr "" -"Il numero di passi del cerchio per Geometria \n" -"per le approssimazioni lineari di cerchi ed archi." - -#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:73 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:41 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:41 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:48 -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:42 -msgid "Tools Dia" -msgstr "Diametro utensile" - -#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:75 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:108 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:43 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:43 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:50 -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:44 -msgid "" -"Diameters of the tools, separated by comma.\n" -"The value of the diameter has to use the dot decimals separator.\n" -"Valid values: 0.3, 1.0" -msgstr "" -"Diametri degli utensili, separati da virgola.\n" -"Il valore del diametro deve utilizzare il punto come separatore decimale.\n" -"Valori validi: 0.3, 1.0" - -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:29 -msgid "Geometry Options" -msgstr "Opzioni geometria" - -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:37 -msgid "" -"Create a CNC Job object\n" -"tracing the contours of this\n" -"Geometry object." -msgstr "" -"Crea un oggetto CNC Job\n" -"tracciando i contorni di questo\n" -"oggetto geometria." - -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:81 -msgid "Depth/Pass" -msgstr "Profondità/passata" - -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:83 -msgid "" -"The depth to cut on each pass,\n" -"when multidepth is enabled.\n" -"It has positive value although\n" -"it is a fraction from the depth\n" -"which has negative value." -msgstr "" -"La profondità da tagliare ad ogni passaggio,\n" -"quando il multi-profondità è abilitato.\n" -"Ha un valore positivo sebbene\n" -"sia una frazione dalla profondità\n" -"che ha un negativo." - -#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:27 -msgid "Gerber Adv. Options" -msgstr "Opzioni avanzate Gerber" - -#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:33 -msgid "" -"A list of Gerber advanced parameters.\n" -"Those parameters are available only for\n" -"Advanced App. Level." -msgstr "" -"Un elenco di parametri Gerber avanzati.\n" -"Tali parametri sono disponibili solo per\n" -"App a livello avanzato." - -#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:43 -msgid "\"Follow\"" -msgstr "\"Segui\"" - -#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:52 -msgid "Table Show/Hide" -msgstr "Mostra/Nasconti tabella" - -#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:54 -msgid "" -"Toggle the display of the Gerber Apertures Table.\n" -"Also, on hide, it will delete all mark shapes\n" -"that are drawn on canvas." -msgstr "" -"(Dis)attiva la visualizzazione della tabella delle aperrture del Gerber.\n" -"Inoltre, su nascondi, eliminerà tutte le forme dei segni\n" -"che sono disegnati." - -#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:67 -#: AppObjects/FlatCAMGerber.py:391 AppTools/ToolCopperThieving.py:1026 -#: AppTools/ToolCopperThieving.py:1215 AppTools/ToolCopperThieving.py:1227 -#: AppTools/ToolIsolation.py:1593 AppTools/ToolNCC.py:2079 -#: AppTools/ToolNCC.py:2190 AppTools/ToolNCC.py:2205 AppTools/ToolNCC.py:3163 -#: AppTools/ToolNCC.py:3268 AppTools/ToolNCC.py:3283 AppTools/ToolNCC.py:3549 -#: AppTools/ToolNCC.py:3650 AppTools/ToolNCC.py:3665 camlib.py:992 -msgid "Buffering" -msgstr "Riempimento" - -#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:69 -msgid "" -"Buffering type:\n" -"- None --> best performance, fast file loading but no so good display\n" -"- Full --> slow file loading but good visuals. This is the default.\n" -"<>: Don't change this unless you know what you are doing !!!" -msgstr "" -"Tipo di buffer:\n" -"- Nessuno -> migliori prestazioni, caricamento rapido dei file ma " -"visualizzazione non così buona\n" -"- Completo -> caricamento lento dei file ma buona grafica. Questo è il " -"valore predefinito.\n" -"<>: non cambiarlo se non sai cosa stai facendo !!!" - -#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:74 -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:88 -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:196 -#: AppTools/ToolFiducials.py:204 AppTools/ToolFilm.py:238 -#: AppTools/ToolProperties.py:452 AppTools/ToolProperties.py:455 -#: AppTools/ToolProperties.py:458 AppTools/ToolProperties.py:483 -msgid "None" -msgstr "Nessuno" - -#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:80 -msgid "Simplify" -msgstr "Semplifica" - -#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:82 -msgid "" -"When checked all the Gerber polygons will be\n" -"loaded with simplification having a set tolerance.\n" -"<>: Don't change this unless you know what you are doing !!!" -msgstr "" -"Se selezionato, tutti i poligoni del Gerber saranno\n" -"caricati con una semplificazione con la tolleranza impostata.\n" -"<>: non cambiarlo se non sai cosa stai facendo !!!" - -#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:89 -msgid "Tolerance" -msgstr "Tolleranza" - -#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:90 -msgid "Tolerance for polygon simplification." -msgstr "Tolleranza per semplificazione poligoni." - -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:33 -msgid "A list of Gerber Editor parameters." -msgstr "Lista di parametri edito Gerber." - -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:43 -msgid "" -"Set the number of selected Gerber geometry\n" -"items above which the utility geometry\n" -"becomes just a selection rectangle.\n" -"Increases the performance when moving a\n" -"large number of geometric elements." -msgstr "" -"Imposta il numero di geometrie Gerber selezionate\n" -"sopra al quali le geometriediventeranno\n" -"solo dei rettangoli di selezione.\n" -"Aumenta le prestazioni quando si sposta un\n" -"gran numero di elementi geometrici." - -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:56 -msgid "New Aperture code" -msgstr "Nuovo codice Apertura" - -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:69 -msgid "New Aperture size" -msgstr "Nuova dimensione Apertura" - -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:71 -msgid "Size for the new aperture" -msgstr "Dimensione per la nuova apertura" - -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:82 -msgid "New Aperture type" -msgstr "Tipo nuova apertura" - -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:84 -msgid "" -"Type for the new aperture.\n" -"Can be 'C', 'R' or 'O'." -msgstr "" -"Tipo per la nuova apertura.\n" -"Può essere 'C', 'R' o 'O'." - -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:106 -msgid "Aperture Dimensions" -msgstr "Dimensione apertura" - -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:117 -msgid "Linear Pad Array" -msgstr "Matrice lineare di pad" - -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:161 -msgid "Circular Pad Array" -msgstr "Matrice circolare di pad" - -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:197 -msgid "Distance at which to buffer the Gerber element." -msgstr "Distanza alla quale bufferizzare l'elemento Gerber." - -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:206 -msgid "Scale Tool" -msgstr "Strumento scala" - -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:212 -msgid "Factor to scale the Gerber element." -msgstr "Fattore al quale scalare gli elementi Gerber." - -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:225 -msgid "Threshold low" -msgstr "Soglia inferiore" - -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:227 -msgid "Threshold value under which the apertures are not marked." -msgstr "Valore di soglia sotto alla quale le aperture non saranno marchiate." - -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:237 -msgid "Threshold high" -msgstr "Soglia superiore" - -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:239 -msgid "Threshold value over which the apertures are not marked." -msgstr "Valore di soglia sopra alla quale le aperture non saranno marchiate." - -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:27 -msgid "Gerber Export" -msgstr "Esporta Gerber" - -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:33 -msgid "" -"The parameters set here are used in the file exported\n" -"when using the File -> Export -> Export Gerber menu entry." -msgstr "" -"I parametri impostati qui vengono utilizzati nel file esportato\n" -"quando si utilizza la voce di menu File -> Esporta -> Esporta Gerber." - -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:44 -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:50 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:84 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:90 -msgid "The units used in the Gerber file." -msgstr "Le unità utilizzate nei file Gerber." - -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:58 -msgid "" -"The number of digits in the whole part of the number\n" -"and in the fractional part of the number." -msgstr "" -"Numero di cifre nella parte intera del numero\n" -"e nella parte frazionaria del numero." - -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:71 -msgid "" -"This numbers signify the number of digits in\n" -"the whole part of Gerber coordinates." -msgstr "" -"Questi numeri indicano il numero di cifre nella\n" -"parte intera delle coordinate di Gerber." - -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:87 -msgid "" -"This numbers signify the number of digits in\n" -"the decimal part of Gerber coordinates." -msgstr "" -"Questi numeri indicano il numero di cifre nella\n" -"parte decimale delle coordinate di Gerber." - -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:99 -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:109 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:100 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:110 -msgid "" -"This sets the type of Gerber zeros.\n" -"If LZ then Leading Zeros are removed and\n" -"Trailing Zeros are kept.\n" -"If TZ is checked then Trailing Zeros are removed\n" -"and Leading Zeros are kept." -msgstr "" -"Questo imposta il tipo di zeri dei Gerber.\n" -"Se ZI vengono rimossi gli zeri iniziali e\n" -"mantenuti quelli finali.\n" -"Se ZF è selezionato, gli Zeri finali vengono rimossi\n" -"e mantenuti gli Zeri iniziali." - -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:27 -msgid "Gerber General" -msgstr "Generali Gerber" - -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:61 -msgid "" -"The number of circle steps for Gerber \n" -"circular aperture linear approximation." -msgstr "" -"Il numero di passi del cerchio per le aperture circolari\n" -"del Gerber ad approssimazione lineare." - -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:73 -msgid "Default Values" -msgstr "Valori di default" - -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:75 -msgid "" -"Those values will be used as fallback values\n" -"in case that they are not found in the Gerber file." -msgstr "" -"Tali valori verranno utilizzati come valori di ripristino\n" -"nel caso in cui non vengano trovati nel file Gerber." - -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:126 -msgid "Clean Apertures" -msgstr "Pulisci aperture" - -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:128 -msgid "" -"Will remove apertures that do not have geometry\n" -"thus lowering the number of apertures in the Gerber object." -msgstr "" -"Rimuoverà le aperture che non hanno geometria\n" -"riducendo così il numero di aperture nell'oggetto Gerber." - -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:134 -msgid "Polarity change buffer" -msgstr "Buffer di modifica polarità" - -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:136 -msgid "" -"Will apply extra buffering for the\n" -"solid geometry when we have polarity changes.\n" -"May help loading Gerber files that otherwise\n" -"do not load correctly." -msgstr "" -"Applicherà il buffering extra per le geometrie\n" -"solide quando si verificano cambiamenti di polarità.\n" -"Può aiutare a caricare file Gerber che altrimenti\n" -"non si caricherebbe correttamente." - -#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:29 -msgid "Gerber Options" -msgstr "Opzioni gerber" - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:27 -msgid "Copper Thieving Tool Options" -msgstr "Opzioni dello strumento deposito rame (Copper Thieving)" - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:39 -msgid "" -"A tool to generate a Copper Thieving that can be added\n" -"to a selected Gerber file." -msgstr "" -"Uno strumento per generare un deposito di rame che può essere aggiunto\n" -"in un file Gerber selezionato." - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:47 -msgid "Number of steps (lines) used to interpolate circles." -msgstr "Numero di passi (linee) usato per interpolare i cerchi." - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:57 -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:261 -#: AppTools/ToolCopperThieving.py:100 AppTools/ToolCopperThieving.py:435 -msgid "Clearance" -msgstr "Distanza" - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:59 -msgid "" -"This set the distance between the copper Thieving components\n" -"(the polygon fill may be split in multiple polygons)\n" -"and the copper traces in the Gerber file." -msgstr "" -"Imposta la distanza tra componenti del Copper Thieving\n" -"(i poligoni possono essere divisi in sottopoligoni)\n" -"e le tracce di rame nel file Gerber." - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:86 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309 -#: AppTools/ToolCopperThieving.py:129 AppTools/ToolNCC.py:535 -#: AppTools/ToolNCC.py:1324 AppTools/ToolNCC.py:1655 AppTools/ToolNCC.py:1948 -#: AppTools/ToolNCC.py:2012 AppTools/ToolNCC.py:3027 AppTools/ToolNCC.py:3036 -#: defaults.py:419 tclCommands/TclCommandCopperClear.py:190 -msgid "Itself" -msgstr "Stesso" - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:87 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:285 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280 -#: AppTools/ToolCopperThieving.py:130 AppTools/ToolIsolation.py:504 -#: AppTools/ToolIsolation.py:1297 AppTools/ToolIsolation.py:1671 -#: AppTools/ToolNCC.py:535 AppTools/ToolNCC.py:1334 AppTools/ToolNCC.py:1668 -#: AppTools/ToolNCC.py:1964 AppTools/ToolNCC.py:2019 AppTools/ToolPaint.py:485 -#: AppTools/ToolPaint.py:945 AppTools/ToolPaint.py:1471 -msgid "Area Selection" -msgstr "Selezione Area" - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:88 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:285 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280 -#: AppTools/ToolCopperThieving.py:131 AppTools/ToolDblSided.py:216 -#: AppTools/ToolIsolation.py:504 AppTools/ToolIsolation.py:1711 -#: AppTools/ToolNCC.py:535 AppTools/ToolNCC.py:1684 AppTools/ToolNCC.py:1970 -#: AppTools/ToolNCC.py:2027 AppTools/ToolNCC.py:2408 AppTools/ToolNCC.py:2656 -#: AppTools/ToolNCC.py:3072 AppTools/ToolPaint.py:485 AppTools/ToolPaint.py:930 -#: AppTools/ToolPaint.py:1487 tclCommands/TclCommandCopperClear.py:192 -#: tclCommands/TclCommandPaint.py:166 -msgid "Reference Object" -msgstr "Oggetto di riferimento" - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:90 -#: AppTools/ToolCopperThieving.py:133 -msgid "Reference:" -msgstr "Riferimento:" - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:92 -msgid "" -"- 'Itself' - the copper Thieving extent is based on the object extent.\n" -"- 'Area Selection' - left mouse click to start selection of the area to be " -"filled.\n" -"- 'Reference Object' - will do copper thieving within the area specified by " -"another object." -msgstr "" -"- 'Stesso': l'estensione delle aree di Copper Thieving si basa " -"sull'estensione dell'oggetto.\n" -"- 'Selezione area': fare clic con il pulsante sinistro del mouse per avviare " -"la selezione dell'area da riempire.\n" -"- 'Oggetto di riferimento': eseguirà il deposito di rame nell'area " -"specificata da un altro oggetto." - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:101 -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:76 -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:188 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:76 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:190 -#: AppTools/ToolCopperThieving.py:175 AppTools/ToolExtractDrills.py:102 -#: AppTools/ToolExtractDrills.py:240 AppTools/ToolPunchGerber.py:113 -#: AppTools/ToolPunchGerber.py:268 -msgid "Rectangular" -msgstr "Rettangolare" - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:102 -#: AppTools/ToolCopperThieving.py:176 -msgid "Minimal" -msgstr "Minima" - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:104 -#: AppTools/ToolCopperThieving.py:178 AppTools/ToolFilm.py:94 -msgid "Box Type:" -msgstr "Tipo contenitore:" - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:106 -#: AppTools/ToolCopperThieving.py:180 -msgid "" -"- 'Rectangular' - the bounding box will be of rectangular shape.\n" -"- 'Minimal' - the bounding box will be the convex hull shape." -msgstr "" -"- 'Rettangolare': il contenitore di selezione avrà una forma rettangolare.\n" -"- 'Minimo': il riquadro di delimitazione avrà la forma convessa del guscio." - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:120 -#: AppTools/ToolCopperThieving.py:196 -msgid "Dots Grid" -msgstr "Griglia punti" - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:121 -#: AppTools/ToolCopperThieving.py:197 -msgid "Squares Grid" -msgstr "Griglia quadrati" - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:122 -#: AppTools/ToolCopperThieving.py:198 -msgid "Lines Grid" -msgstr "Griglia linee" - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:124 -#: AppTools/ToolCopperThieving.py:200 -msgid "Fill Type:" -msgstr "Tipo riempimento:" - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:126 -#: AppTools/ToolCopperThieving.py:202 -msgid "" -"- 'Solid' - copper thieving will be a solid polygon.\n" -"- 'Dots Grid' - the empty area will be filled with a pattern of dots.\n" -"- 'Squares Grid' - the empty area will be filled with a pattern of squares.\n" -"- 'Lines Grid' - the empty area will be filled with a pattern of lines." -msgstr "" -"- 'Solido': il deposito di rame sarà un poligono solido.\n" -"- 'Dots Grid': l'area vuota verrà riempita con uno schema di punti.\n" -"- 'Squares Grid': l'area vuota verrà riempita con uno schema di quadrati.\n" -"- 'Griglia di linee': l'area vuota verrà riempita con un motivo di linee." - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:134 -#: AppTools/ToolCopperThieving.py:221 -msgid "Dots Grid Parameters" -msgstr "Parametri griglia di punti" - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:140 -#: AppTools/ToolCopperThieving.py:227 -msgid "Dot diameter in Dots Grid." -msgstr "Diametro punti nella griglia di punti." - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:151 -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:180 -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:209 -#: AppTools/ToolCopperThieving.py:238 AppTools/ToolCopperThieving.py:278 -#: AppTools/ToolCopperThieving.py:318 -msgid "Spacing" -msgstr "Spaziatura" - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:153 -#: AppTools/ToolCopperThieving.py:240 -msgid "Distance between each two dots in Dots Grid." -msgstr "Distanza fra ogni coppia di punti nella griglia." - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:163 -#: AppTools/ToolCopperThieving.py:261 -msgid "Squares Grid Parameters" -msgstr "Parametri griglia quadrati" - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:169 -#: AppTools/ToolCopperThieving.py:267 -msgid "Square side size in Squares Grid." -msgstr "Dimensione quadrati nella griglia." - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:182 -#: AppTools/ToolCopperThieving.py:280 -msgid "Distance between each two squares in Squares Grid." -msgstr "Distanza fra ogni coppia di quadrati nella griglia." - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:192 -#: AppTools/ToolCopperThieving.py:301 -msgid "Lines Grid Parameters" -msgstr "Parametri griglia lineei" - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:198 -#: AppTools/ToolCopperThieving.py:307 -msgid "Line thickness size in Lines Grid." -msgstr "Spessore delle linee nella griglia." - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:211 -#: AppTools/ToolCopperThieving.py:320 -msgid "Distance between each two lines in Lines Grid." -msgstr "Distanza fra ogni coppia di linee nella griglia." - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:221 -#: AppTools/ToolCopperThieving.py:358 -msgid "Robber Bar Parameters" -msgstr "Parametri \"rapinatore\"" - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:223 -#: AppTools/ToolCopperThieving.py:360 -msgid "" -"Parameters used for the robber bar.\n" -"Robber bar = copper border to help in pattern hole plating." -msgstr "" -"Parametri usati per il \"rapinatore\".\n" -"\"Rapinatore\" = bordo in rame che aiuta nella placatura dei fori." - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:231 -#: AppTools/ToolCopperThieving.py:368 -msgid "Bounding box margin for robber bar." -msgstr "Margine contenitore \"rapinatore\"." - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:242 -#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:42 -#: AppTools/ToolCopperThieving.py:379 AppTools/ToolCorners.py:122 -#: AppTools/ToolEtchCompensation.py:152 -msgid "Thickness" -msgstr "Spessore" - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:244 -#: AppTools/ToolCopperThieving.py:381 -msgid "The robber bar thickness." -msgstr "Lo spessore del \"rapinatore\"." - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:254 -#: AppTools/ToolCopperThieving.py:412 -msgid "Pattern Plating Mask" -msgstr "Maschera di placatura" - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:256 -#: AppTools/ToolCopperThieving.py:414 -msgid "Generate a mask for pattern plating." -msgstr "Genera una maschera per la placatura." - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:263 -#: AppTools/ToolCopperThieving.py:437 -msgid "" -"The distance between the possible copper thieving elements\n" -"and/or robber bar and the actual openings in the mask." -msgstr "" -"La distanza tra i possibili elementi del Copper Thieving\n" -"e/o barra del \"rapinatore\" e le aperture effettive nella maschera." - -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:27 -msgid "Calibration Tool Options" -msgstr "Opzioni strumento calibrazione" - -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:38 -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:38 -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:38 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:38 -#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:37 -#: AppTools/ToolCopperThieving.py:95 AppTools/ToolCorners.py:117 -#: AppTools/ToolFiducials.py:154 -msgid "Parameters used for this tool." -msgstr "Parametri usati per questo strumento." - -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:43 -#: AppTools/ToolCalibration.py:181 -msgid "Source Type" -msgstr "Tipo sorgente" - -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:44 -#: AppTools/ToolCalibration.py:182 -msgid "" -"The source of calibration points.\n" -"It can be:\n" -"- Object -> click a hole geo for Excellon or a pad for Gerber\n" -"- Free -> click freely on canvas to acquire the calibration points" -msgstr "" -"La sorgente dei punti di calibrazione.\n" -"Può essere:\n" -"- Oggetto -> click una geometria foro per Excellon o un pad per Gerber\n" -"- Libero -> click su un punto libero per acquisirne i punti di calibrazione" - -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:49 -#: AppTools/ToolCalibration.py:187 -msgid "Free" -msgstr "Libero" - -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:63 -#: AppTools/ToolCalibration.py:76 -msgid "Height (Z) for travelling between the points." -msgstr "Altezza (Z) per gli spostamenti fra due punti." - -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:75 -#: AppTools/ToolCalibration.py:88 -msgid "Verification Z" -msgstr "Z di verifica" - -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:77 -#: AppTools/ToolCalibration.py:90 -msgid "Height (Z) for checking the point." -msgstr "Altezza (Z) per il controllo dei punti." - -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:89 -#: AppTools/ToolCalibration.py:102 -msgid "Zero Z tool" -msgstr "Strumento Zero Z" - -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:91 -#: AppTools/ToolCalibration.py:104 -msgid "" -"Include a sequence to zero the height (Z)\n" -"of the verification tool." -msgstr "" -"Include una sequenza per l'azzeramento dell'altezza (Z)\n" -"dello strumento di verifica." - -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:100 -#: AppTools/ToolCalibration.py:113 -msgid "Height (Z) for mounting the verification probe." -msgstr "Altezza (Z) per montare il tastatore." - -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:114 -#: AppTools/ToolCalibration.py:127 -msgid "" -"Toolchange X,Y position.\n" -"If no value is entered then the current\n" -"(x, y) point will be used," -msgstr "" -"Posizione X,Y cambio utensile.\n" -"In mancanza di valori sarà usato\n" -"l'attuale punto (x,y)," - -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:125 -#: AppTools/ToolCalibration.py:153 -msgid "Second point" -msgstr "Secondo punto" - -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:127 -#: AppTools/ToolCalibration.py:155 -msgid "" -"Second point in the Gcode verification can be:\n" -"- top-left -> the user will align the PCB vertically\n" -"- bottom-right -> the user will align the PCB horizontally" -msgstr "" -"Secondo punto nella verifica del GCode può essere:\n" -"- alto-sinistra -> l'utente allineerà il PCB verticalmente\n" -"- basso-destra -> l'utente allineerà il PCB orizzontalmente" - -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:131 -#: AppTools/ToolCalibration.py:159 App_Main.py:4712 -msgid "Top-Left" -msgstr "Alto-Sinistra" - -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:132 -#: AppTools/ToolCalibration.py:160 App_Main.py:4713 -msgid "Bottom-Right" -msgstr "Basso-Destra" - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:27 -msgid "Extract Drills Options" -msgstr "Opzioni fori" - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:42 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:42 -#: AppTools/ToolExtractDrills.py:68 AppTools/ToolPunchGerber.py:75 -msgid "Processed Pads Type" -msgstr "Tipo pad processati" - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:44 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:44 -#: AppTools/ToolExtractDrills.py:70 AppTools/ToolPunchGerber.py:77 -msgid "" -"The type of pads shape to be processed.\n" -"If the PCB has many SMD pads with rectangular pads,\n" -"disable the Rectangular aperture." -msgstr "" -"Il tipo di forma dei pad da elaborare.\n" -"Se il PCB ha molti pad SMD con pad rettangolari,\n" -"disabilita l'apertura rettangolare." - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:54 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:54 -#: AppTools/ToolExtractDrills.py:80 AppTools/ToolPunchGerber.py:91 -msgid "Process Circular Pads." -msgstr "Elabora pad circolari." - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:60 -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:162 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:60 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:164 -#: AppTools/ToolExtractDrills.py:86 AppTools/ToolExtractDrills.py:214 -#: AppTools/ToolPunchGerber.py:97 AppTools/ToolPunchGerber.py:242 -msgid "Oblong" -msgstr "Oblungo" - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:62 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:62 -#: AppTools/ToolExtractDrills.py:88 AppTools/ToolPunchGerber.py:99 -msgid "Process Oblong Pads." -msgstr "Elabora pad oblunghi." - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:70 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:70 -#: AppTools/ToolExtractDrills.py:96 AppTools/ToolPunchGerber.py:107 -msgid "Process Square Pads." -msgstr "Elabora pad quadrati." - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:78 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:78 -#: AppTools/ToolExtractDrills.py:104 AppTools/ToolPunchGerber.py:115 -msgid "Process Rectangular Pads." -msgstr "Elabora pad rettangolari." - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:84 -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:201 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:84 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:203 -#: AppTools/ToolExtractDrills.py:110 AppTools/ToolExtractDrills.py:253 -#: AppTools/ToolProperties.py:172 AppTools/ToolPunchGerber.py:121 -#: AppTools/ToolPunchGerber.py:281 -msgid "Others" -msgstr "Altri" - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:86 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:86 -#: AppTools/ToolExtractDrills.py:112 AppTools/ToolPunchGerber.py:123 -msgid "Process pads not in the categories above." -msgstr "Elabora pad non appartenenti alle categoria sopra." - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:99 -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:123 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:100 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:125 -#: AppTools/ToolExtractDrills.py:139 AppTools/ToolExtractDrills.py:156 -#: AppTools/ToolPunchGerber.py:150 AppTools/ToolPunchGerber.py:184 -msgid "Fixed Diameter" -msgstr "Diametro fisso" - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:100 -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:140 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:101 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:142 -#: AppTools/ToolExtractDrills.py:140 AppTools/ToolExtractDrills.py:192 -#: AppTools/ToolPunchGerber.py:151 AppTools/ToolPunchGerber.py:214 -msgid "Fixed Annular Ring" -msgstr "Anello fisso" - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:101 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:102 -#: AppTools/ToolExtractDrills.py:141 AppTools/ToolPunchGerber.py:152 -msgid "Proportional" -msgstr "Proporzionale" - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:107 -#: AppTools/ToolExtractDrills.py:130 -msgid "" -"The method for processing pads. Can be:\n" -"- Fixed Diameter -> all holes will have a set size\n" -"- Fixed Annular Ring -> all holes will have a set annular ring\n" -"- Proportional -> each hole size will be a fraction of the pad size" -msgstr "" -"Il metodo per l'elaborazione dei pad. Può essere:\n" -"- Diametro fisso -> tutti i fori avranno una dimensione impostata\n" -"- Anello fisso -> tutti i fori avranno un anello anulare impostato\n" -"- Proporzionale -> ogni dimensione del foro sarà una frazione della " -"dimensione del pad" - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:131 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:133 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:220 -#: AppTools/ToolExtractDrills.py:164 AppTools/ToolExtractDrills.py:285 -#: AppTools/ToolPunchGerber.py:192 AppTools/ToolPunchGerber.py:308 -#: AppTools/ToolTransform.py:357 App_Main.py:9698 -msgid "Value" -msgstr "Valore" - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:133 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:135 -#: AppTools/ToolExtractDrills.py:166 AppTools/ToolPunchGerber.py:194 -msgid "Fixed hole diameter." -msgstr "Diametro foro fisso." - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:142 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:144 -#: AppTools/ToolExtractDrills.py:194 AppTools/ToolPunchGerber.py:216 -msgid "" -"The size of annular ring.\n" -"The copper sliver between the hole exterior\n" -"and the margin of the copper pad." -msgstr "" -"La dimensione dell'anello.\n" -"Il nastro di rame tra l'esterno del foro\n" -"e il margine del pad di rame." - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:151 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:153 -#: AppTools/ToolExtractDrills.py:203 AppTools/ToolPunchGerber.py:231 -msgid "The size of annular ring for circular pads." -msgstr "La dimensione dell'anello per pad circolari." - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:164 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:166 -#: AppTools/ToolExtractDrills.py:216 AppTools/ToolPunchGerber.py:244 -msgid "The size of annular ring for oblong pads." -msgstr "La dimensione dell'anello per pad oblunghi." - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:177 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:179 -#: AppTools/ToolExtractDrills.py:229 AppTools/ToolPunchGerber.py:257 -msgid "The size of annular ring for square pads." -msgstr "La dimensione dell'anello per pad quadrati." - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:190 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:192 -#: AppTools/ToolExtractDrills.py:242 AppTools/ToolPunchGerber.py:270 -msgid "The size of annular ring for rectangular pads." -msgstr "La dimensione dell'anello per pad rettangolari." - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:203 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:205 -#: AppTools/ToolExtractDrills.py:255 AppTools/ToolPunchGerber.py:283 -msgid "The size of annular ring for other pads." -msgstr "La dimensione dell'anello per gli altri pad." - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:213 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:215 -#: AppTools/ToolExtractDrills.py:276 AppTools/ToolPunchGerber.py:299 -msgid "Proportional Diameter" -msgstr "Diametro proporzionale" - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:222 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:224 -msgid "Factor" -msgstr "Fattore" - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:224 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:226 -#: AppTools/ToolExtractDrills.py:287 AppTools/ToolPunchGerber.py:310 -msgid "" -"Proportional Diameter.\n" -"The hole diameter will be a fraction of the pad size." -msgstr "" -"Diametro proporzionale.\n" -"Il diametro del foro sarà una frazione della dimensione del pad." - -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:27 -msgid "Fiducials Tool Options" -msgstr "Opzioni strumento fiducial" - -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:45 -#: AppTools/ToolFiducials.py:161 -msgid "" -"This set the fiducial diameter if fiducial type is circular,\n" -"otherwise is the size of the fiducial.\n" -"The soldermask opening is double than that." -msgstr "" -"Imposta il diametro dei fiducial se il tipo di fiducial è circolare,\n" -"altrimenti è la dimensione del fiducial.\n" -"L'apertura del soldermask è il doppia." - -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:73 -#: AppTools/ToolFiducials.py:189 -msgid "Auto" -msgstr "Auto" - -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:74 -#: AppTools/ToolFiducials.py:190 -msgid "Manual" -msgstr "Manuale" - -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:76 -#: AppTools/ToolFiducials.py:192 -msgid "Mode:" -msgstr "Modo:" - -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:78 -msgid "" -"- 'Auto' - automatic placement of fiducials in the corners of the bounding " -"box.\n" -"- 'Manual' - manual placement of fiducials." -msgstr "" -"- 'Auto' - piazzamento automatico dei fiducials negli angoli del " -"contenitore.\n" -"- 'Manuale' - posizionamento manuale dei fiducial." - -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:86 -#: AppTools/ToolFiducials.py:202 -msgid "Up" -msgstr "Su" - -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:87 -#: AppTools/ToolFiducials.py:203 -msgid "Down" -msgstr "Giù" - -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:90 -#: AppTools/ToolFiducials.py:206 -msgid "Second fiducial" -msgstr "Secondo fiducial" - -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:92 -#: AppTools/ToolFiducials.py:208 -msgid "" -"The position for the second fiducial.\n" -"- 'Up' - the order is: bottom-left, top-left, top-right.\n" -"- 'Down' - the order is: bottom-left, bottom-right, top-right.\n" -"- 'None' - there is no second fiducial. The order is: bottom-left, top-right." -msgstr "" -"La posizione del secondo fiducial.\n" -"- 'Su' - l'ordine è: basso-sinistra, alto-sinistra, alto-destra.\n" -"- 'Giù' - l'ordine è: basso-sinistra, basso-destra, alto-destra.\n" -"- 'Nessuno' - non c'è secondo fiducial. L'ordine è: basso-sinistra, alto-" -"destra." - -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:108 -#: AppTools/ToolFiducials.py:224 -msgid "Cross" -msgstr "Croce" - -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:109 -#: AppTools/ToolFiducials.py:225 -msgid "Chess" -msgstr "Schacchiera" - -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:112 -#: AppTools/ToolFiducials.py:227 -msgid "Fiducial Type" -msgstr "Tipo fiducial" - -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:114 -#: AppTools/ToolFiducials.py:229 -msgid "" -"The type of fiducial.\n" -"- 'Circular' - this is the regular fiducial.\n" -"- 'Cross' - cross lines fiducial.\n" -"- 'Chess' - chess pattern fiducial." -msgstr "" -"Il tipo di fiducial.\n" -"- 'Circolare' - fiducial standard.\n" -"- 'Croce' - fiducial con due linee incrociate.\n" -"- 'Scacchiera' - motivo a scacchiera." - -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:123 -#: AppTools/ToolFiducials.py:238 -msgid "Line thickness" -msgstr "Spessore linea" - -#: AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py:27 -msgid "Invert Gerber Tool Options" -msgstr "Opzioni strumento inversione gerber" - -#: AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py:33 -msgid "" -"A tool to invert Gerber geometry from positive to negative\n" -"and in revers." -msgstr "" -"Strumento per invertire geometrie gerber da positive a negative\n" -"e viceversa." - -#: AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py:47 -#: AppTools/ToolInvertGerber.py:93 -msgid "" -"Distance by which to avoid\n" -"the edges of the Gerber object." -msgstr "" -"Distanza alla quale evitare\n" -"i bordi degli oggetti gerber." - -#: AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py:58 -#: AppTools/ToolInvertGerber.py:104 -msgid "Lines Join Style" -msgstr "Stile unione linee" - -#: AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py:60 -#: AppTools/ToolInvertGerber.py:106 -msgid "" -"The way that the lines in the object outline will be joined.\n" -"Can be:\n" -"- rounded -> an arc is added between two joining lines\n" -"- square -> the lines meet in 90 degrees angle\n" -"- bevel -> the lines are joined by a third line" -msgstr "" -"Il modo in cui le linee nel contorno dell'oggetto verranno unite.\n" -"Può essere:\n" -"- arrotondato -> viene aggiunto un arco tra due linee di giunzione\n" -"- quadrato -> le linee si incontrano con un angolo di 90 gradi\n" -"- smussato -> le linee sono unite da una terza linea" - -#: AppGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:27 -msgid "Optimal Tool Options" -msgstr "Opzioni strumento ottimale" - -#: AppGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:33 -msgid "" -"A tool to find the minimum distance between\n" -"every two Gerber geometric elements" -msgstr "" -"Uno strumento per trovare la minima distanza fra\n" -"ogni coppia di elementi geometrici Gerber" - -#: AppGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:48 -#: AppTools/ToolOptimal.py:84 -msgid "Precision" -msgstr "Precisione" - -#: AppGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:50 -msgid "Number of decimals for the distances and coordinates in this tool." -msgstr "" -"Numero di decimali per le distanze e le coordinate in questo strumento." - -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:27 -msgid "Punch Gerber Options" -msgstr "Opzioni punzone gerber" - -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:108 -#: AppTools/ToolPunchGerber.py:141 -msgid "" -"The punch hole source can be:\n" -"- Excellon Object-> the Excellon object drills center will serve as " -"reference.\n" -"- Fixed Diameter -> will try to use the pads center as reference adding " -"fixed diameter holes.\n" -"- Fixed Annular Ring -> will try to keep a set annular ring.\n" -"- Proportional -> will make a Gerber punch hole having the diameter a " -"percentage of the pad diameter." -msgstr "" -"La fonte del foro di punzonatura può essere:\n" -"- Oggetto Excellon-> il centro dei fori dell'oggetto Excellon fungerà da " -"riferimento.\n" -"- Diametro fisso -> proverà a utilizzare il centro dei pad come riferimento " -"aggiungendo fori a diametro fisso.\n" -"- Fisso anello anulare -> proverà a mantenere un anello impostato.\n" -"- Proporzionale -> eseguirà un foro di punzonatura Gerber avente il diametro " -"pari ad una percentuale del diametro del pad." - -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:27 -msgid "QRCode Tool Options" -msgstr "Opzioni strumento QRCode" - -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:33 -msgid "" -"A tool to create a QRCode that can be inserted\n" -"into a selected Gerber file, or it can be exported as a file." -msgstr "" -"Uno strumento per creare QRCode da inserire\n" -"in un file Gerber selezionato o esportato su file." - -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:45 -#: AppTools/ToolQRCode.py:121 -msgid "Version" -msgstr "Versione" - -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:47 -#: AppTools/ToolQRCode.py:123 -msgid "" -"QRCode version can have values from 1 (21x21 boxes)\n" -"to 40 (177x177 boxes)." -msgstr "" -"La versione del QRCode può avere valori da 1 (21x21 punti)\n" -"a 40 (177x177 punti)." - -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:58 -#: AppTools/ToolQRCode.py:134 -msgid "Error correction" -msgstr "Correzione errore" - -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:60 -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:71 -#: AppTools/ToolQRCode.py:136 AppTools/ToolQRCode.py:147 -#, python-format -msgid "" -"Parameter that controls the error correction used for the QR Code.\n" -"L = maximum 7%% errors can be corrected\n" -"M = maximum 15%% errors can be corrected\n" -"Q = maximum 25%% errors can be corrected\n" -"H = maximum 30%% errors can be corrected." -msgstr "" -"Parametro che controlla la correzione errore usata per i QR Code.\n" -"L = possono essere corretti errori al massimo del 7%%\n" -"M = possono essere corretti errori al massimo del 15%%\n" -"Q = possono essere corretti errori al massimo del 25%%\n" -"H = possono essere corretti errori al massimo del 30%%." - -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:81 -#: AppTools/ToolQRCode.py:157 -msgid "Box Size" -msgstr "Dimensione contenitore" - -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:83 -#: AppTools/ToolQRCode.py:159 -msgid "" -"Box size control the overall size of the QRcode\n" -"by adjusting the size of each box in the code." -msgstr "" -"La dimensione del box controlla la dimensione totale del QRcode\n" -"controllando la dimensione dei singoli punti nel codice." - -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:94 -#: AppTools/ToolQRCode.py:170 -msgid "Border Size" -msgstr "Dimensione bordi" - -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:96 -#: AppTools/ToolQRCode.py:172 -msgid "" -"Size of the QRCode border. How many boxes thick is the border.\n" -"Default value is 4. The width of the clearance around the QRCode." -msgstr "" -"Dimensione del bordo del QRCode. Quanto spesso sarà il bordo.\n" -"Valore di default è 4. La larghezza della distanza attorno al QRCode." - -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:107 -#: AppTools/ToolQRCode.py:92 -msgid "QRCode Data" -msgstr "Dati QRCode" - -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:109 -#: AppTools/ToolQRCode.py:94 -msgid "QRCode Data. Alphanumeric text to be encoded in the QRCode." -msgstr "Dati QRCode. Testo alfanumerico da codificare nel QRCode." - -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:113 -#: AppTools/ToolQRCode.py:98 -msgid "Add here the text to be included in the QRCode..." -msgstr "Inserisci qui il testo da includere nel QRCode..." - -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:119 -#: AppTools/ToolQRCode.py:183 -msgid "Polarity" -msgstr "Polarità" - -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:121 -#: AppTools/ToolQRCode.py:185 -msgid "" -"Choose the polarity of the QRCode.\n" -"It can be drawn in a negative way (squares are clear)\n" -"or in a positive way (squares are opaque)." -msgstr "" -"Scegli la polarità del QRCode.\n" -"Può essere disegnato in modo negativo (i quadrati sono chiari)\n" -"o in modo positivo (i quadrati sono scuri)." - -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:125 -#: AppTools/ToolFilm.py:279 AppTools/ToolQRCode.py:189 -msgid "Negative" -msgstr "Negativa" - -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:126 -#: AppTools/ToolFilm.py:278 AppTools/ToolQRCode.py:190 -msgid "Positive" -msgstr "Positiva" - -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:128 -#: AppTools/ToolQRCode.py:192 -msgid "" -"Choose the type of QRCode to be created.\n" -"If added on a Silkscreen Gerber file the QRCode may\n" -"be added as positive. If it is added to a Copper Gerber\n" -"file then perhaps the QRCode can be added as negative." -msgstr "" -"Scegli il tipo di QRCode da creare.\n" -"Se aggiunto su un file Gerber Silkscreen, il QRCode può\n" -"essere aggiunto come positivo. Se viene aggiunto a un file Gerber\n" -"del rame forse il QRCode può essere aggiunto come negativo." - -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:139 -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:145 -#: AppTools/ToolQRCode.py:203 AppTools/ToolQRCode.py:209 -msgid "" -"The bounding box, meaning the empty space that surrounds\n" -"the QRCode geometry, can have a rounded or a square shape." -msgstr "" -"Il rettangolo di selezione, ovvero lo spazio vuoto che circonda\n" -"la geometria QRCode, può avere una forma arrotondata o quadrata." - -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:142 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:239 -#: AppTools/ToolQRCode.py:206 AppTools/ToolTransform.py:383 -msgid "Rounded" -msgstr "Arrotondato" - -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:152 -#: AppTools/ToolQRCode.py:237 -msgid "Fill Color" -msgstr "Colore riempimento" - -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:154 -#: AppTools/ToolQRCode.py:239 -msgid "Set the QRCode fill color (squares color)." -msgstr "Imposta il colore di riempimento del QRCode (colore dei punti)." - -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:162 -#: AppTools/ToolQRCode.py:261 -msgid "Back Color" -msgstr "Colore sfondo" - -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:164 -#: AppTools/ToolQRCode.py:263 -msgid "Set the QRCode background color." -msgstr "Imposta il colore dello sfondo del QRCode." - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:27 -msgid "Check Rules Tool Options" -msgstr "Opzione strumento controllo regole" - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:32 -msgid "" -"A tool to check if Gerber files are within a set\n" -"of Manufacturing Rules." -msgstr "" -"Uno strumento che verifica che i file Gerber rispettino\n" -"una serie di set di parametri del produttore." - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:42 -#: AppTools/ToolRulesCheck.py:265 AppTools/ToolRulesCheck.py:929 -msgid "Trace Size" -msgstr "Dimensione traccia" - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:44 -#: AppTools/ToolRulesCheck.py:267 -msgid "This checks if the minimum size for traces is met." -msgstr "Verifica se la dimensione minima della traccia è rispettata." - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:54 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:74 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:94 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:114 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:134 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:154 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:174 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:194 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:216 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:236 -#: AppTools/ToolRulesCheck.py:277 AppTools/ToolRulesCheck.py:299 -#: AppTools/ToolRulesCheck.py:322 AppTools/ToolRulesCheck.py:345 -#: AppTools/ToolRulesCheck.py:368 AppTools/ToolRulesCheck.py:391 -#: AppTools/ToolRulesCheck.py:414 AppTools/ToolRulesCheck.py:437 -#: AppTools/ToolRulesCheck.py:462 AppTools/ToolRulesCheck.py:485 -msgid "Min value" -msgstr "Valore minimo" - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:56 -#: AppTools/ToolRulesCheck.py:279 -msgid "Minimum acceptable trace size." -msgstr "Dimensione minima accettata delle tracce." - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:61 -#: AppTools/ToolRulesCheck.py:286 AppTools/ToolRulesCheck.py:1157 -#: AppTools/ToolRulesCheck.py:1187 -msgid "Copper to Copper clearance" -msgstr "Spaziatura rame-rame" - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:63 -#: AppTools/ToolRulesCheck.py:288 -msgid "" -"This checks if the minimum clearance between copper\n" -"features is met." -msgstr "" -"Verifica se la spaziatura minima da rame a rame\n" -"è rispettata." - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:76 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:96 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:116 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:136 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:156 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:176 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:238 -#: AppTools/ToolRulesCheck.py:301 AppTools/ToolRulesCheck.py:324 -#: AppTools/ToolRulesCheck.py:347 AppTools/ToolRulesCheck.py:370 -#: AppTools/ToolRulesCheck.py:393 AppTools/ToolRulesCheck.py:416 -#: AppTools/ToolRulesCheck.py:464 -msgid "Minimum acceptable clearance value." -msgstr "Valore minimo di distanza accettata." - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:81 -#: AppTools/ToolRulesCheck.py:309 AppTools/ToolRulesCheck.py:1217 -#: AppTools/ToolRulesCheck.py:1223 AppTools/ToolRulesCheck.py:1236 -#: AppTools/ToolRulesCheck.py:1243 -msgid "Copper to Outline clearance" -msgstr "Distanza rame-bordo" - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:83 -#: AppTools/ToolRulesCheck.py:311 -msgid "" -"This checks if the minimum clearance between copper\n" -"features and the outline is met." -msgstr "" -"Verifica se la spaziatura minima da rame a bordo\n" -"è rispettata." - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:101 -#: AppTools/ToolRulesCheck.py:332 -msgid "Silk to Silk Clearance" -msgstr "Distanza serigrafie" - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:103 -#: AppTools/ToolRulesCheck.py:334 -msgid "" -"This checks if the minimum clearance between silkscreen\n" -"features and silkscreen features is met." -msgstr "" -"Verifica se la spaziatura minima tra serigrafie\n" -"è rispettata." - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:121 -#: AppTools/ToolRulesCheck.py:355 AppTools/ToolRulesCheck.py:1326 -#: AppTools/ToolRulesCheck.py:1332 AppTools/ToolRulesCheck.py:1350 -msgid "Silk to Solder Mask Clearance" -msgstr "Distanza serigrafia-solder" - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:123 -#: AppTools/ToolRulesCheck.py:357 -msgid "" -"This checks if the minimum clearance between silkscreen\n" -"features and soldermask features is met." -msgstr "" -"Verifica se la spaziatura minima da serigrafie\n" -"e solder è rispettata." - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:141 -#: AppTools/ToolRulesCheck.py:378 AppTools/ToolRulesCheck.py:1380 -#: AppTools/ToolRulesCheck.py:1386 AppTools/ToolRulesCheck.py:1400 -#: AppTools/ToolRulesCheck.py:1407 -msgid "Silk to Outline Clearance" -msgstr "Distanza serigrafia-bordo" - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:143 -#: AppTools/ToolRulesCheck.py:380 -msgid "" -"This checks if the minimum clearance between silk\n" -"features and the outline is met." -msgstr "" -"Verifica se la spaziatura minima tra serigrafie\n" -"e bordo è rispettata." - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:161 -#: AppTools/ToolRulesCheck.py:401 AppTools/ToolRulesCheck.py:1418 -#: AppTools/ToolRulesCheck.py:1445 -msgid "Minimum Solder Mask Sliver" -msgstr "Distanza solder mask" - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:163 -#: AppTools/ToolRulesCheck.py:403 -msgid "" -"This checks if the minimum clearance between soldermask\n" -"features and soldermask features is met." -msgstr "" -"Verifica se la spaziatura minima tra vari solder mask\n" -"è rispettata." - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:181 -#: AppTools/ToolRulesCheck.py:424 AppTools/ToolRulesCheck.py:1483 -#: AppTools/ToolRulesCheck.py:1489 AppTools/ToolRulesCheck.py:1505 -#: AppTools/ToolRulesCheck.py:1512 -msgid "Minimum Annular Ring" -msgstr "Anello minimo" - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:183 -#: AppTools/ToolRulesCheck.py:426 -msgid "" -"This checks if the minimum copper ring left by drilling\n" -"a hole into a pad is met." -msgstr "" -"Verifica se l'anello minimo di rame rimasto dopo la foratura\n" -"è rispettato." - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:196 -#: AppTools/ToolRulesCheck.py:439 -msgid "Minimum acceptable ring value." -msgstr "Valore minimo anello." - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:203 -#: AppTools/ToolRulesCheck.py:449 AppTools/ToolRulesCheck.py:873 -msgid "Hole to Hole Clearance" -msgstr "Distanza foro-foro" - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:205 -#: AppTools/ToolRulesCheck.py:451 -msgid "" -"This checks if the minimum clearance between a drill hole\n" -"and another drill hole is met." -msgstr "" -"Verifica se la spaziatura minima tra fori\n" -"è rispettata." - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:218 -#: AppTools/ToolRulesCheck.py:487 -msgid "Minimum acceptable drill size." -msgstr "Misura minima foro." - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:223 -#: AppTools/ToolRulesCheck.py:472 AppTools/ToolRulesCheck.py:847 -msgid "Hole Size" -msgstr "Dimensione foro" - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:225 -#: AppTools/ToolRulesCheck.py:474 -msgid "" -"This checks if the drill holes\n" -"sizes are above the threshold." -msgstr "" -"Controlla se la dimensione dei fori\n" -"sono sopra la soglia." - -#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:27 -msgid "2Sided Tool Options" -msgstr "Opzioni strumento doppia faccia" - -#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:33 -msgid "" -"A tool to help in creating a double sided\n" -"PCB using alignment holes." -msgstr "" -"Uno strumento per aiutare la creazione di un PCB\n" -"doppio faccia mediante fori di allineamento." - -#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:47 -msgid "Drill dia" -msgstr "Diametro fori" - -#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:49 -#: AppTools/ToolDblSided.py:363 AppTools/ToolDblSided.py:368 -msgid "Diameter of the drill for the alignment holes." -msgstr "Diametro per i fori di allineamento." - -#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:56 -#: AppTools/ToolDblSided.py:377 -msgid "Align Axis" -msgstr "Allinea all'asse" - -#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:58 -#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:71 -#: AppTools/ToolDblSided.py:165 AppTools/ToolDblSided.py:379 -msgid "Mirror vertically (X) or horizontally (Y)." -msgstr "Specchia verticale (X) o orizzontale (Y)." - -#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:69 -msgid "Mirror Axis:" -msgstr "Asse di specchio:" - -#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:80 -#: AppTools/ToolDblSided.py:181 -msgid "Point" -msgstr "Punto" - -#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:81 -#: AppTools/ToolDblSided.py:182 -msgid "Box" -msgstr "Contenitore" - -#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:82 -msgid "Axis Ref" -msgstr "Asse di riferimento" - -#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:84 -msgid "" -"The axis should pass through a point or cut\n" -" a specified box (in a FlatCAM object) through \n" -"the center." -msgstr "" -"L'asse dovrebbe passare attraverso un punto o tagliare\n" -" una casella specifica (in un oggetto FlatCAM) attraverso\n" -"il centro." - -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:27 -msgid "Calculators Tool Options" -msgstr "Opzioni calcolatrici" - -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:31 -#: AppTools/ToolCalculators.py:25 -msgid "V-Shape Tool Calculator" -msgstr "Calcolatrice utensile a V" - -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:33 -msgid "" -"Calculate the tool diameter for a given V-shape tool,\n" -"having the tip diameter, tip angle and\n" -"depth-of-cut as parameters." -msgstr "" -"Calcola il diametro dell'utensile per un dato utensile a V,\n" -"conoscendo come parametri il diametro della punta,\n" -"angolo e profondità di taglio." - -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:50 -#: AppTools/ToolCalculators.py:94 -msgid "Tip Diameter" -msgstr "Diametro punta" - -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:52 -#: AppTools/ToolCalculators.py:102 -msgid "" -"This is the tool tip diameter.\n" -"It is specified by manufacturer." -msgstr "" -"Diametro della punta.\n" -"Viene specificato dal produttore." - -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:64 -#: AppTools/ToolCalculators.py:105 -msgid "Tip Angle" -msgstr "Angolo punta" - -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:66 -msgid "" -"This is the angle on the tip of the tool.\n" -"It is specified by manufacturer." -msgstr "" -"E' l'angolo alla punta dell'utensile.\n" -"E' specificato dal produttore." - -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:80 -msgid "" -"This is depth to cut into material.\n" -"In the CNCJob object it is the CutZ parameter." -msgstr "" -"Questa è la profondità a cui tagliare il materiale.\n" -"Nell'oggetto CNCJob è il parametro CutZ." - -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:87 -#: AppTools/ToolCalculators.py:27 -msgid "ElectroPlating Calculator" -msgstr "Calcolatore Galvanotecnica" - -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:89 -#: AppTools/ToolCalculators.py:158 -msgid "" -"This calculator is useful for those who plate the via/pad/drill holes,\n" -"using a method like graphite ink or calcium hypophosphite ink or palladium " -"chloride." -msgstr "" -"Questo calcolatore è utile per chi metallizza i fori di via/pad,\n" -"usando un metodo come inchiostro di grafite o inchiostro di ipofosfito di " -"calcio o cloruro di palladio." - -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:100 -#: AppTools/ToolCalculators.py:167 -msgid "Board Length" -msgstr "Lunghezza scheda" - -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:102 -#: AppTools/ToolCalculators.py:173 -msgid "This is the board length. In centimeters." -msgstr "E' la lunghezza della scheda. In centimetri." - -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:112 -#: AppTools/ToolCalculators.py:175 -msgid "Board Width" -msgstr "Larghezza scheda" - -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:114 -#: AppTools/ToolCalculators.py:181 -msgid "This is the board width.In centimeters." -msgstr "E' la larghezza della scheda. In centimetri." - -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:119 -#: AppTools/ToolCalculators.py:183 -msgid "Current Density" -msgstr "Densità di corrente" - -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:125 -#: AppTools/ToolCalculators.py:190 -msgid "" -"Current density to pass through the board. \n" -"In Amps per Square Feet ASF." -msgstr "" -"Densità di corrente da far passare nella scheda. In Ampere per " -"rad_quadrata(ASF)." - -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:131 -#: AppTools/ToolCalculators.py:193 -msgid "Copper Growth" -msgstr "Crescita rame" - -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:137 -#: AppTools/ToolCalculators.py:200 -msgid "" -"How thick the copper growth is intended to be.\n" -"In microns." -msgstr "" -"Quanto deve accrescere il rame.\n" -"In microns." - -#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:27 -#, fuzzy -#| msgid "Gerber Options" -msgid "Corner Markers Options" -msgstr "Opzioni gerber" - -#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:44 -#: AppTools/ToolCorners.py:124 -msgid "The thickness of the line that makes the corner marker." -msgstr "" - -#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:58 -#: AppTools/ToolCorners.py:138 -msgid "The length of the line that makes the corner marker." -msgstr "" - -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:28 -msgid "Cutout Tool Options" -msgstr "Opzioni strumento ritaglio" - -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:34 -msgid "" -"Create toolpaths to cut around\n" -"the PCB and separate it from\n" -"the original board." -msgstr "" -"Crea percorsi utensile per ritagliare\n" -"il PCB e separarlo dalla\n" -"scheda originale." - -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:43 -#: AppTools/ToolCalculators.py:123 AppTools/ToolCutOut.py:129 -msgid "Tool Diameter" -msgstr "Diametro utensile" - -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:45 -#: AppTools/ToolCutOut.py:131 -msgid "" -"Diameter of the tool used to cutout\n" -"the PCB shape out of the surrounding material." -msgstr "" -"Diametro dello strumento utilizzato per il ritaglio\n" -"della forma del PCB dal materiale circostante." - -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:100 -msgid "Object kind" -msgstr "Tipo oggetto" - -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:102 -#: AppTools/ToolCutOut.py:77 -msgid "" -"Choice of what kind the object we want to cutout is.
    - Single: " -"contain a single PCB Gerber outline object.
    - Panel: a panel PCB " -"Gerber object, which is made\n" -"out of many individual PCB outlines." -msgstr "" -"Scelta del tipo di oggetto da ritagliare.
    - Singolo: contiene un " -"solo oggetto bordo Gerber PCB.
    - Pannleol: un oggetto pannello " -"Gerber PCB, realizzato\n" -"ta tanti bordi singoli di PCB." - -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:109 -#: AppTools/ToolCutOut.py:83 -msgid "Single" -msgstr "Singolo" - -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:110 -#: AppTools/ToolCutOut.py:84 -msgid "Panel" -msgstr "Pannello" - -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:117 -#: AppTools/ToolCutOut.py:192 -msgid "" -"Margin over bounds. A positive value here\n" -"will make the cutout of the PCB further from\n" -"the actual PCB border" -msgstr "" -"Margine oltre i limiti. Un valore positivo qui\n" -"renderà il ritaglio del PCB più lontano dal\n" -"bordo effettivo del PCB" - -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:130 -#: AppTools/ToolCutOut.py:203 -msgid "Gap size" -msgstr "Dimensione ponticello" - -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:132 -#: AppTools/ToolCutOut.py:205 -msgid "" -"The size of the bridge gaps in the cutout\n" -"used to keep the board connected to\n" -"the surrounding material (the one \n" -"from which the PCB is cutout)." -msgstr "" -"Dimensione dei gap ponticello nel ritaglio\n" -"usati per tenere la scheda connessa al\n" -"materiale circostante (quello dal quale\n" -"si sta rimuovendo il PCB)." - -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:146 -#: AppTools/ToolCutOut.py:245 -msgid "Gaps" -msgstr "Ponticelli" - -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:148 -msgid "" -"Number of gaps used for the cutout.\n" -"There can be maximum 8 bridges/gaps.\n" -"The choices are:\n" -"- None - no gaps\n" -"- lr - left + right\n" -"- tb - top + bottom\n" -"- 4 - left + right +top + bottom\n" -"- 2lr - 2*left + 2*right\n" -"- 2tb - 2*top + 2*bottom\n" -"- 8 - 2*left + 2*right +2*top + 2*bottom" -msgstr "" -"Numero di ponticelli usati nel ritaglio\n" -"Possono essere al massimo 8.\n" -"Le scelte sono:\n" -"- Nessuno - nessun ponticello\n" -"- SD - sinistra + destra\n" -"- SS - sopra + sotto\n" -"- 4 - sinistra + destra + sopra + sotto\n" -"- 2SD - 2*sinistra + 2*destra\n" -"- 2SS - 2*sopra + 2*sotto\n" -"- 8 - 2*sinistra + 2*destra +2*sopra + 2*sotto" - -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:170 -#: AppTools/ToolCutOut.py:222 -msgid "Convex Shape" -msgstr "Forma convessa" - -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:172 -#: AppTools/ToolCutOut.py:225 -msgid "" -"Create a convex shape surrounding the entire PCB.\n" -"Used only if the source object type is Gerber." -msgstr "" -"Crea una forma convessa che circonda l'intero PCB.\n" -"Utilizzato solo se il tipo di oggetto di origine è Gerber." - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:27 -msgid "Film Tool Options" -msgstr "Opzioni strumento Film" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:33 -#, fuzzy -#| msgid "" -#| "Create a PCB film from a Gerber or Geometry\n" -#| "FlatCAM object.\n" -#| "The file is saved in SVG format." -msgid "" -"Create a PCB film from a Gerber or Geometry object.\n" -"The file is saved in SVG format." -msgstr "" -"Create a un film PCB da un oggetto Gerber o\n" -"Geometria FlatCAM.\n" -"Il file è salvato in formato SVG." - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:43 -msgid "Film Type" -msgstr "Tipo Film" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:45 AppTools/ToolFilm.py:283 -msgid "" -"Generate a Positive black film or a Negative film.\n" -"Positive means that it will print the features\n" -"with black on a white canvas.\n" -"Negative means that it will print the features\n" -"with white on a black canvas.\n" -"The Film format is SVG." -msgstr "" -"Genera un film nero positivo o negativo.\n" -"Positivo significa che stamperà le funzionalità\n" -"con il nero su una tela bianca.\n" -"Negativo significa che stamperà le funzionalità\n" -"con il bianco su una tela nera.\n" -"Il formato del film è SVG." - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:56 -msgid "Film Color" -msgstr "Colore Film" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:58 -msgid "Set the film color when positive film is selected." -msgstr "Imposta il colore del film se è selezionato film positivo." - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:71 AppTools/ToolFilm.py:299 -msgid "Border" -msgstr "Bordo" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:73 AppTools/ToolFilm.py:301 -msgid "" -"Specify a border around the object.\n" -"Only for negative film.\n" -"It helps if we use as a Box Object the same \n" -"object as in Film Object. It will create a thick\n" -"black bar around the actual print allowing for a\n" -"better delimitation of the outline features which are of\n" -"white color like the rest and which may confound with the\n" -"surroundings if not for this border." -msgstr "" -"Specifica un bordo attorno all'oggetto.\n" -"Solo per film negativo.\n" -"Aiuta se usiamo come Oggetto contenitore lo stesso\n" -"oggetto in Oggetto film. Creerà una barra nera attorno\n" -"alla stampa attuale consentendo una migliore delimitazione\n" -"del contorno di colore bianco e che può confondere con\n" -"le aree circostanti in assenza del bordo stesso." - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:90 AppTools/ToolFilm.py:266 -msgid "Scale Stroke" -msgstr "Scala tratto" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:92 AppTools/ToolFilm.py:268 -msgid "" -"Scale the line stroke thickness of each feature in the SVG file.\n" -"It means that the line that envelope each SVG feature will be thicker or " -"thinner,\n" -"therefore the fine features may be more affected by this parameter." -msgstr "" -"Ridimensiona lo spessore del tratto delle linee di ciascuna funzione nel " -"file SVG.\n" -"Significa che la linea che avvolge ciascuna funzione SVG sarà più spessa o " -"più sottile,\n" -"pertanto le caratteristiche fini potrebbero essere maggiormente influenzate " -"da questo parametro." - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:99 AppTools/ToolFilm.py:124 -msgid "Film Adjustments" -msgstr "Sistemazione film" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:101 -#: AppTools/ToolFilm.py:126 -msgid "" -"Sometime the printers will distort the print shape, especially the Laser " -"types.\n" -"This section provide the tools to compensate for the print distortions." -msgstr "" -"A volte le stampanti distorcono la forma di stampa, in particolare le " -"Laser.\n" -"Questa sezione fornisce gli strumenti per compensare le distorsioni di " -"stampa." - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:108 -#: AppTools/ToolFilm.py:133 -msgid "Scale Film geometry" -msgstr "Scala geometrie Film" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:110 -#: AppTools/ToolFilm.py:135 -msgid "" -"A value greater than 1 will stretch the film\n" -"while a value less than 1 will jolt it." -msgstr "" -"Un valore maggiore di 1 allungherà il film\n" -"mentre un valore inferiore a 1 lo accorcerà." - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:120 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:103 -#: AppTools/ToolFilm.py:145 AppTools/ToolTransform.py:148 -msgid "X factor" -msgstr "Fattore X" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:129 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:116 -#: AppTools/ToolFilm.py:154 AppTools/ToolTransform.py:168 -msgid "Y factor" -msgstr "Fattore Y" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:139 -#: AppTools/ToolFilm.py:172 -msgid "Skew Film geometry" -msgstr "Inclinazione geometria film" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:141 -#: AppTools/ToolFilm.py:174 -msgid "" -"Positive values will skew to the right\n" -"while negative values will skew to the left." -msgstr "" -"I valori positivi inclinano verso destra\n" -"mentre i valori negativi inclinano a sinistra." - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:151 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:72 -#: AppTools/ToolFilm.py:184 AppTools/ToolTransform.py:97 -msgid "X angle" -msgstr "Angolo X" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:160 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:86 -#: AppTools/ToolFilm.py:193 AppTools/ToolTransform.py:118 -msgid "Y angle" -msgstr "Angolo Y" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:171 -#: AppTools/ToolFilm.py:204 -msgid "" -"The reference point to be used as origin for the skew.\n" -"It can be one of the four points of the geometry bounding box." -msgstr "" -"Il punto di riferimento da utilizzare come origine per l'inclinazione.\n" -"Può essere uno dei quattro punti del riquadro di delimitazione della " -"geometria." - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:174 -#: AppTools/ToolCorners.py:80 AppTools/ToolFiducials.py:83 -#: AppTools/ToolFilm.py:207 -msgid "Bottom Left" -msgstr "Basso Sinistra" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:175 -#: AppTools/ToolCorners.py:88 AppTools/ToolFilm.py:208 -msgid "Top Left" -msgstr "Alto Destra" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:176 -#: AppTools/ToolCorners.py:84 AppTools/ToolFilm.py:209 -msgid "Bottom Right" -msgstr "Basso Destra" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:177 -#: AppTools/ToolFilm.py:210 -msgid "Top right" -msgstr "Alto Destra" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:185 -#: AppTools/ToolFilm.py:227 -msgid "Mirror Film geometry" -msgstr "Specchia geometria film" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:187 -#: AppTools/ToolFilm.py:229 -msgid "Mirror the film geometry on the selected axis or on both." -msgstr "Specchia la geometria film sull'asse selezionato o su entrambi." - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:201 -#: AppTools/ToolFilm.py:243 -msgid "Mirror axis" -msgstr "Asse simmetria" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:211 -#: AppTools/ToolFilm.py:388 -msgid "SVG" -msgstr "SVG" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:212 -#: AppTools/ToolFilm.py:389 -msgid "PNG" -msgstr "PNG" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:213 -#: AppTools/ToolFilm.py:390 -msgid "PDF" -msgstr "PDF" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:216 -#: AppTools/ToolFilm.py:281 AppTools/ToolFilm.py:393 -msgid "Film Type:" -msgstr "Tipo film:" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:218 -#: AppTools/ToolFilm.py:395 -msgid "" -"The file type of the saved film. Can be:\n" -"- 'SVG' -> open-source vectorial format\n" -"- 'PNG' -> raster image\n" -"- 'PDF' -> portable document format" -msgstr "" -"Il tipo di file per il film salvato. Può essere:\n" -"- 'SVG' -> formato vettoriale open-source\n" -"- 'PNG' -> immagine raster \n" -"- 'PDF' -> Portable Document Format" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:227 -#: AppTools/ToolFilm.py:404 -msgid "Page Orientation" -msgstr "Orientamento pagina" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:240 -#: AppTools/ToolFilm.py:417 -msgid "Page Size" -msgstr "Dimensiona pagina" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:241 -#: AppTools/ToolFilm.py:418 -msgid "A selection of standard ISO 216 page sizes." -msgstr "Una selezione di pagine standard secondo ISO 216." - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:26 -#, fuzzy -#| msgid "Calibration Tool Options" -msgid "Isolation Tool Options" -msgstr "Opzioni strumento calibrazione" - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:48 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:49 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:57 -msgid "Comma separated values" -msgstr "Valori separati da virgola" - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:54 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:156 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:142 -#: AppTools/ToolIsolation.py:166 AppTools/ToolNCC.py:174 -#: AppTools/ToolPaint.py:157 -msgid "Tool order" -msgstr "Ordine utensili" - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:55 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:157 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:167 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:143 -#: AppTools/ToolIsolation.py:167 AppTools/ToolNCC.py:175 -#: AppTools/ToolNCC.py:185 AppTools/ToolPaint.py:158 AppTools/ToolPaint.py:168 -msgid "" -"This set the way that the tools in the tools table are used.\n" -"'No' --> means that the used order is the one in the tool table\n" -"'Forward' --> means that the tools will be ordered from small to big\n" -"'Reverse' --> means that the tools will ordered from big to small\n" -"\n" -"WARNING: using rest machining will automatically set the order\n" -"in reverse and disable this control." -msgstr "" -"Questo imposta il modo in cui vengono utilizzati gli strumenti nella tabella " -"degli strumenti.\n" -"'No' -> significa che l'ordine utilizzato è quello nella tabella degli " -"strumenti\n" -"'Avanti' -> significa che gli strumenti verranno ordinati da piccoli a " -"grandi\n" -"'Reverse' -> significa che gli strumenti ordineranno da grandi a piccoli\n" -"\n" -"ATTENZIONE: l'utilizzo della lavorazione di ripresa imposterà " -"automaticamente l'ordine\n" -"al contrario e disabiliterà questo controllo." - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:63 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:165 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:151 -#: AppTools/ToolIsolation.py:175 AppTools/ToolNCC.py:183 -#: AppTools/ToolPaint.py:166 -msgid "Forward" -msgstr "Avanti" - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:64 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:166 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:152 -#: AppTools/ToolIsolation.py:176 AppTools/ToolNCC.py:184 -#: AppTools/ToolPaint.py:167 -msgid "Reverse" -msgstr "Indietro" - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:72 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:80 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:55 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:63 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:64 -#: AppTools/ToolIsolation.py:201 AppTools/ToolIsolation.py:209 -#: AppTools/ToolNCC.py:215 AppTools/ToolNCC.py:223 AppTools/ToolPaint.py:197 -#: AppTools/ToolPaint.py:205 -msgid "" -"Default tool type:\n" -"- 'V-shape'\n" -"- Circular" -msgstr "" -"Forma di default dell'Utensile:\n" -"- 'a V'\n" -"- Circolare" - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:77 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:60 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:69 -#: AppTools/ToolIsolation.py:206 AppTools/ToolNCC.py:220 -#: AppTools/ToolPaint.py:202 -msgid "V-shape" -msgstr "A V" - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:103 -#, fuzzy -#| msgid "" -#| "The tip angle for V-Shape Tool.\n" -#| "In degree." -msgid "" -"The tip angle for V-Shape Tool.\n" -"In degrees." -msgstr "" -"L'angolo alla punta dell'utensile a V\n" -"In gradi." - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:117 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:126 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:100 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:109 -#: AppTools/ToolIsolation.py:248 AppTools/ToolNCC.py:262 -#: AppTools/ToolNCC.py:271 AppTools/ToolPaint.py:244 AppTools/ToolPaint.py:253 -msgid "" -"Depth of cut into material. Negative value.\n" -"In FlatCAM units." -msgstr "" -"Profondità di taglio nel materiale. Valori negativi.\n" -"In unità FlatCAM." - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:136 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:119 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:125 -#: AppTools/ToolIsolation.py:262 AppTools/ToolNCC.py:280 -#: AppTools/ToolPaint.py:262 -msgid "" -"Diameter for the new tool to add in the Tool Table.\n" -"If the tool is V-shape type then this value is automatically\n" -"calculated from the other parameters." -msgstr "" -"Diametro per il nuovo utensile da aggiungere nella tabella degli utensili.\n" -"Se lo strumento è di tipo a V, questo valore è automaticamente\n" -"calcolato dagli altri parametri." - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:243 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:288 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:244 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:245 -#: AppTools/ToolIsolation.py:432 AppTools/ToolNCC.py:512 -#: AppTools/ToolPaint.py:441 -#, fuzzy -#| msgid "Restore" -msgid "Rest" -msgstr "Ripristina" - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:246 -#: AppTools/ToolIsolation.py:435 -#, fuzzy -#| msgid "" -#| "If checked, use 'rest machining'.\n" -#| "Basically it will clear copper outside PCB features,\n" -#| "using the biggest tool and continue with the next tools,\n" -#| "from bigger to smaller, to clear areas of copper that\n" -#| "could not be cleared by previous tool, until there is\n" -#| "no more copper to clear or there are no more tools.\n" -#| "If not checked, use the standard algorithm." -msgid "" -"If checked, use 'rest machining'.\n" -"Basically it will isolate outside PCB features,\n" -"using the biggest tool and continue with the next tools,\n" -"from bigger to smaller, to isolate the copper features that\n" -"could not be cleared by previous tool, until there is\n" -"no more copper features to isolate or there are no more tools.\n" -"If not checked, use the standard algorithm." -msgstr "" -"Se selezionato, utilizzare la 'lavorazione di ripresa'.\n" -"Fondamentalmente eliminerà il rame al di fuori del PCB,\n" -"utilizzando lo strumento più grande e continuarà poi con\n" -"gli strumenti successivi, dal più grande al più piccolo, per\n" -"eliminare le aree di rame non rimosse dallo strumento\n" -"precedente, finché non c'è più rame da cancellare o non\n" -"ci sono più strumenti.\n" -"Se non selezionato, usa l'algoritmo standard." - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:258 -#: AppTools/ToolIsolation.py:447 -msgid "Combine" -msgstr "Combinata" - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:260 -#: AppTools/ToolIsolation.py:449 -msgid "Combine all passes into one object" -msgstr "Combina tutti i passaggi in un oggetto" - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:267 -#: AppTools/ToolIsolation.py:456 -msgid "Except" -msgstr "Eccetto" - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:268 -#: AppTools/ToolIsolation.py:457 -msgid "" -"When the isolation geometry is generated,\n" -"by checking this, the area of the object below\n" -"will be subtracted from the isolation geometry." -msgstr "" -"Quando viene generata la geometria di isolamento,\n" -"abilitandolo, l'area dell'oggetto in basso\n" -"sarà sottratto dalla geometria di isolamento." - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:277 -#: AppTools/ToolIsolation.py:496 -#, fuzzy -#| msgid "" -#| "Isolation scope. Choose what to isolate:\n" -#| "- 'All' -> Isolate all the polygons in the object\n" -#| "- 'Selection' -> Isolate a selection of polygons." -msgid "" -"Isolation scope. Choose what to isolate:\n" -"- 'All' -> Isolate all the polygons in the object\n" -"- 'Area Selection' -> Isolate polygons within a selection area.\n" -"- 'Polygon Selection' -> Isolate a selection of polygons.\n" -"- 'Reference Object' - will process the area specified by another object." -msgstr "" -"Obiettivo dell'isolamento. Scegli cosa isolare:\n" -"- 'Tutto' -> Isola tutti i poligoni nell'oggetto\n" -"- 'Selezione' -> Isola una selezione di poligoni." - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:285 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280 -#: AppTools/ToolIsolation.py:504 AppTools/ToolIsolation.py:1308 -#: AppTools/ToolIsolation.py:1690 AppTools/ToolPaint.py:485 -#: AppTools/ToolPaint.py:941 AppTools/ToolPaint.py:1451 -#: tclCommands/TclCommandPaint.py:164 -msgid "Polygon Selection" -msgstr "Selezione poligono" - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:310 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:339 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:303 -msgid "Normal" -msgstr "Normale" - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:311 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:340 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:304 -msgid "Progressive" -msgstr "Progressivo" - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:312 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:341 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:305 -#: AppObjects/AppObject.py:349 AppObjects/FlatCAMObj.py:251 -#: AppObjects/FlatCAMObj.py:282 AppObjects/FlatCAMObj.py:298 -#: AppObjects/FlatCAMObj.py:378 AppTools/ToolCopperThieving.py:1491 -#: AppTools/ToolCorners.py:411 AppTools/ToolFiducials.py:813 -#: AppTools/ToolMove.py:229 AppTools/ToolQRCode.py:737 App_Main.py:4397 -msgid "Plotting" -msgstr "Sto tracciando" - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:314 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:343 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:307 -#, fuzzy -#| msgid "" -#| "- 'Normal' - normal plotting, done at the end of the NCC job\n" -#| "- 'Progressive' - after each shape is generated it will be plotted." -msgid "" -"- 'Normal' - normal plotting, done at the end of the job\n" -"- 'Progressive' - each shape is plotted after it is generated" -msgstr "" -"- \"Normale\": stampa normale, eseguita alla fine del lavoro NCC\n" -"- \"Progressivo\": dopo che ogni forma è stata generata, verrà tracciata." - -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:27 -msgid "NCC Tool Options" -msgstr "Opzioni strumento NCC" - -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:33 -msgid "" -"Create a Geometry object with\n" -"toolpaths to cut all non-copper regions." -msgstr "" -"Crea un oggetto Geometry con\n" -"percorsi utensile per tagliare tutte le regioni non rame." - -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:266 -msgid "Offset value" -msgstr "Valore offset" - -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:268 -msgid "" -"If used, it will add an offset to the copper features.\n" -"The copper clearing will finish to a distance\n" -"from the copper features.\n" -"The value can be between 0.0 and 9999.9 FlatCAM units." -msgstr "" -"Se utilizzato, aggiungerà un offset alle lavorazioni del rame.\n" -"La rimozione del rame finirà ad una data distanza dalle\n" -"lavorazioni di rame.\n" -"Il valore può essere compreso tra 0,0 e 9999,9 unità FlatCAM." - -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:290 AppTools/ToolNCC.py:516 -msgid "" -"If checked, use 'rest machining'.\n" -"Basically it will clear copper outside PCB features,\n" -"using the biggest tool and continue with the next tools,\n" -"from bigger to smaller, to clear areas of copper that\n" -"could not be cleared by previous tool, until there is\n" -"no more copper to clear or there are no more tools.\n" -"If not checked, use the standard algorithm." -msgstr "" -"Se selezionato, utilizzare la 'lavorazione di ripresa'.\n" -"Fondamentalmente eliminerà il rame al di fuori del PCB,\n" -"utilizzando lo strumento più grande e continuarà poi con\n" -"gli strumenti successivi, dal più grande al più piccolo, per\n" -"eliminare le aree di rame non rimosse dallo strumento\n" -"precedente, finché non c'è più rame da cancellare o non\n" -"ci sono più strumenti.\n" -"Se non selezionato, usa l'algoritmo standard." - -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:313 AppTools/ToolNCC.py:541 -msgid "" -"Selection of area to be processed.\n" -"- 'Itself' - the processing extent is based on the object that is " -"processed.\n" -" - 'Area Selection' - left mouse click to start selection of the area to be " -"processed.\n" -"- 'Reference Object' - will process the area specified by another object." -msgstr "" -"Selezione area da processare.\n" -"- 'Stesso': il processo avverrà basandosi sull'oggetto processato.\n" -"- 'Selezione area' - fare clic con il pulsante sinistro del mouse per " -"iniziare a selezionare l'area.\n" -"- 'Oggetto di riferimento' - processerà l'area specificata da un altro " -"oggetto." - -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:27 -msgid "Paint Tool Options" -msgstr "Opzione strumento pittura" - -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:33 -msgid "Parameters:" -msgstr "Parametri:" - -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:107 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:116 -#, fuzzy -#| msgid "" -#| "Depth of cut into material. Negative value.\n" -#| "In FlatCAM units." -msgid "" -"Depth of cut into material. Negative value.\n" -"In application units." -msgstr "" -"Profondità di taglio nel materiale. Valori negativi.\n" -"In unità FlatCAM." - -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:247 -#: AppTools/ToolPaint.py:444 -msgid "" -"If checked, use 'rest machining'.\n" -"Basically it will clear copper outside PCB features,\n" -"using the biggest tool and continue with the next tools,\n" -"from bigger to smaller, to clear areas of copper that\n" -"could not be cleared by previous tool, until there is\n" -"no more copper to clear or there are no more tools.\n" -"\n" -"If not checked, use the standard algorithm." -msgstr "" -"Se selezionato, usa la 'lavorazione di ripresa'.\n" -"Fondamentalmente eliminerà il rame al di fuori del del PCB,\n" -"utilizzando l'utensile più grande e continuando con gli utensili\n" -"successivi, dal più grande al più piccolo, per eliminare le aree di\n" -"rame che non possono essere cancellato dall'utensile precedente,\n" -"fino a quando non ci sarà più rame da cancellare o utensili utili.\n" -"\n" -"Se non selezionato, utilizza l'algoritmo standard." - -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:260 -#: AppTools/ToolPaint.py:457 -msgid "" -"Selection of area to be processed.\n" -"- 'Polygon Selection' - left mouse click to add/remove polygons to be " -"processed.\n" -"- 'Area Selection' - left mouse click to start selection of the area to be " -"processed.\n" -"Keeping a modifier key pressed (CTRL or SHIFT) will allow to add multiple " -"areas.\n" -"- 'All Polygons' - the process will start after click.\n" -"- 'Reference Object' - will process the area specified by another object." -msgstr "" -"Come selezionare i poligoni da processare.\n" -"- 'Selezione poligoni': fare clic con il pulsante sinistro del mouse per " -"aggiungere/rimuovere\n" -"poligoni da processare.\n" -"- 'Selezione area': fare clic con il pulsante sinistro del mouse per " -"iniziare la selezione dell'area da\n" -"processare. Tenendo premuto un tasto modificatore (CTRL o SHIFT) sarà " -"possibile aggiungere più aree.\n" -"- 'Tutti i poligoni': la selezione inizierà dopo il click.\n" -"- 'Oggetto di riferimento': eseguirà il processo dell'area specificata da un " -"altro oggetto." - -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:27 -msgid "Panelize Tool Options" -msgstr "Opzioni strumento Pannello" - -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:33 -msgid "" -"Create an object that contains an array of (x, y) elements,\n" -"each element is a copy of the source object spaced\n" -"at a X distance, Y distance of each other." -msgstr "" -"Crea un oggetto che contiene una matrice di elementi (x, y),\n" -"ogni elemento è una copia dell'oggetto origine spaziati\n" -"di una distanza X e distanza Y ognuno dall'altro." - -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:50 -#: AppTools/ToolPanelize.py:165 -msgid "Spacing cols" -msgstr "Spazio colonne" - -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:52 -#: AppTools/ToolPanelize.py:167 -msgid "" -"Spacing between columns of the desired panel.\n" -"In current units." -msgstr "" -"Spaziatura fra colonne desiderata del pannello.\n" -"In unità attuali." - -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:64 -#: AppTools/ToolPanelize.py:177 -msgid "Spacing rows" -msgstr "Spazio righe" - -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:66 -#: AppTools/ToolPanelize.py:179 -msgid "" -"Spacing between rows of the desired panel.\n" -"In current units." -msgstr "" -"Spaziatura fra righe desiderata del pannello.\n" -"In unità attuali." - -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:77 -#: AppTools/ToolPanelize.py:188 -msgid "Columns" -msgstr "Colonne" - -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:79 -#: AppTools/ToolPanelize.py:190 -msgid "Number of columns of the desired panel" -msgstr "Numero di colonne nel pannello desiderato" - -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:89 -#: AppTools/ToolPanelize.py:198 -msgid "Rows" -msgstr "Righe" - -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:91 -#: AppTools/ToolPanelize.py:200 -msgid "Number of rows of the desired panel" -msgstr "Numero di righe nel pannello desiderato" - -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:97 -#: AppTools/ToolAlignObjects.py:73 AppTools/ToolAlignObjects.py:109 -#: AppTools/ToolCalibration.py:196 AppTools/ToolCalibration.py:631 -#: AppTools/ToolCalibration.py:648 AppTools/ToolCalibration.py:807 -#: AppTools/ToolCalibration.py:815 AppTools/ToolCopperThieving.py:148 -#: AppTools/ToolCopperThieving.py:162 AppTools/ToolCopperThieving.py:608 -#: AppTools/ToolCutOut.py:91 AppTools/ToolDblSided.py:224 -#: AppTools/ToolFilm.py:68 AppTools/ToolFilm.py:91 AppTools/ToolImage.py:49 -#: AppTools/ToolImage.py:252 AppTools/ToolImage.py:273 -#: AppTools/ToolIsolation.py:465 AppTools/ToolIsolation.py:517 -#: AppTools/ToolIsolation.py:1281 AppTools/ToolNCC.py:96 -#: AppTools/ToolNCC.py:558 AppTools/ToolNCC.py:1318 AppTools/ToolPaint.py:501 -#: AppTools/ToolPaint.py:705 AppTools/ToolPanelize.py:116 -#: AppTools/ToolPanelize.py:210 AppTools/ToolPanelize.py:385 -#: AppTools/ToolPanelize.py:402 -msgid "Gerber" -msgstr "Gerber" - -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:98 -#: AppTools/ToolPanelize.py:211 -msgid "Geo" -msgstr "Geo" - -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:99 -#: AppTools/ToolPanelize.py:212 -msgid "Panel Type" -msgstr "Tipo pannello" - -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:101 -msgid "" -"Choose the type of object for the panel object:\n" -"- Gerber\n" -"- Geometry" -msgstr "" -"Scegli in tipo di oggetto per l'oggetto pannello:\n" -"- Gerber\n" -"- Geometria" - -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:110 -msgid "Constrain within" -msgstr "Vincoli contenimento" - -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:112 -#: AppTools/ToolPanelize.py:224 -msgid "" -"Area define by DX and DY within to constrain the panel.\n" -"DX and DY values are in current units.\n" -"Regardless of how many columns and rows are desired,\n" -"the final panel will have as many columns and rows as\n" -"they fit completely within selected area." -msgstr "" -"L'area definita da DX e DY all'interno per vincolare il pannello.\n" -"I valori DX e DY sono in unità correnti.\n" -"Indipendentemente dal numero di colonne e righe desiderate,\n" -"il pannello finale avrà tante colonne e righe quante\n" -"si adattano completamente all'interno dell'area selezionata." - -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:125 -#: AppTools/ToolPanelize.py:236 -msgid "Width (DX)" -msgstr "Larghezza (DX)" - -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:127 -#: AppTools/ToolPanelize.py:238 -msgid "" -"The width (DX) within which the panel must fit.\n" -"In current units." -msgstr "" -"La larghezza (DX) all'interno del quale deve rimanere il pannello.\n" -"In unità correnti." - -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:138 -#: AppTools/ToolPanelize.py:247 -msgid "Height (DY)" -msgstr "Altezza (DY)" - -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:140 -#: AppTools/ToolPanelize.py:249 -msgid "" -"The height (DY)within which the panel must fit.\n" -"In current units." -msgstr "" -"L'altezza (DY) all'interno del quale deve rimanere il pannello.\n" -"In unità correnti." - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:27 -msgid "SolderPaste Tool Options" -msgstr "Opzioni strumento SolderPaste" - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:33 -msgid "" -"A tool to create GCode for dispensing\n" -"solder paste onto a PCB." -msgstr "" -"Uno strumento per creare GCode per\n" -"erogare la pasta sul PCB." - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:54 -msgid "New Nozzle Dia" -msgstr "Nuovo diametro ugello" - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:56 -#: AppTools/ToolSolderPaste.py:112 -msgid "Diameter for the new Nozzle tool to add in the Tool Table" -msgstr "Diametro del nuovo utensile ugello da aggiungere alla tabella" - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:72 -#: AppTools/ToolSolderPaste.py:179 -msgid "Z Dispense Start" -msgstr "Z avvio erogazione" - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:74 -#: AppTools/ToolSolderPaste.py:181 -msgid "The height (Z) when solder paste dispensing starts." -msgstr "L'altezza (Z) quando inizia l'erogazione della pasta." - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:85 -#: AppTools/ToolSolderPaste.py:191 -msgid "Z Dispense" -msgstr "Z erogazione" - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:87 -#: AppTools/ToolSolderPaste.py:193 -msgid "The height (Z) when doing solder paste dispensing." -msgstr "L'altezza (Z) quando l'erogazione è in esecuzione." - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:98 -#: AppTools/ToolSolderPaste.py:203 -msgid "Z Dispense Stop" -msgstr "Z fine erogazione" - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:100 -#: AppTools/ToolSolderPaste.py:205 -msgid "The height (Z) when solder paste dispensing stops." -msgstr "L'altezza (Z) quando finisce l'erogazione della pasta." - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:111 -#: AppTools/ToolSolderPaste.py:215 -msgid "Z Travel" -msgstr "Z spostamento" - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:113 -#: AppTools/ToolSolderPaste.py:217 -msgid "" -"The height (Z) for travel between pads\n" -"(without dispensing solder paste)." -msgstr "" -"L'altezza (Z) per lo spostamento fra pad\n" -"(senza funzione di erogazione pasta)." - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:125 -#: AppTools/ToolSolderPaste.py:228 -msgid "Z Toolchange" -msgstr "Z cambio utensile" - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:127 -#: AppTools/ToolSolderPaste.py:230 -msgid "The height (Z) for tool (nozzle) change." -msgstr "L'altezza (Z) per il cambio utensile (ugello)." - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:136 -#: AppTools/ToolSolderPaste.py:238 -msgid "" -"The X,Y location for tool (nozzle) change.\n" -"The format is (x, y) where x and y are real numbers." -msgstr "" -"La posizione X,Y per il cambio utensile (ugello).\n" -"Il formato è (x,y) dove x e y sono numeri reali." - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:150 -#: AppTools/ToolSolderPaste.py:251 -msgid "Feedrate (speed) while moving on the X-Y plane." -msgstr "Velocità avanzamento durante gli spostamenti sul piano (x,y)." - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:163 -#: AppTools/ToolSolderPaste.py:263 -msgid "" -"Feedrate (speed) while moving vertically\n" -"(on Z plane)." -msgstr "Velocità avanzamento durante gli spostamenti sull'asse Z." - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:175 -#: AppTools/ToolSolderPaste.py:274 -msgid "Feedrate Z Dispense" -msgstr "Avanzamento erogazione Z" - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:177 -msgid "" -"Feedrate (speed) while moving up vertically\n" -"to Dispense position (on Z plane)." -msgstr "" -"Avanzamento (velocità) durante lo spostamento in verticale\n" -"verso la posizione di erogazione (sul piano Z)." - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:188 -#: AppTools/ToolSolderPaste.py:286 -msgid "Spindle Speed FWD" -msgstr "Velocità mandrino AVANTI" - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:190 -#: AppTools/ToolSolderPaste.py:288 -msgid "" -"The dispenser speed while pushing solder paste\n" -"through the dispenser nozzle." -msgstr "" -"La velocità dell'erogatore mentre spinge\n" -"la pasta tramite l'ugello." - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:202 -#: AppTools/ToolSolderPaste.py:299 -msgid "Dwell FWD" -msgstr "Pausa AVANTI" - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:204 -#: AppTools/ToolSolderPaste.py:301 -msgid "Pause after solder dispensing." -msgstr "Pausa dopo l'erogazione del solder." - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:214 -#: AppTools/ToolSolderPaste.py:310 -msgid "Spindle Speed REV" -msgstr "Velocità mandrino INDIETRO" - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:216 -#: AppTools/ToolSolderPaste.py:312 -msgid "" -"The dispenser speed while retracting solder paste\n" -"through the dispenser nozzle." -msgstr "" -"La velocità dell'erogatore mentre ritrae\n" -"la pasta tramite l'ugello." - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:228 -#: AppTools/ToolSolderPaste.py:323 -msgid "Dwell REV" -msgstr "Pausa INDIETRO" - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:230 -#: AppTools/ToolSolderPaste.py:325 -msgid "" -"Pause after solder paste dispenser retracted,\n" -"to allow pressure equilibrium." -msgstr "" -"Pausa dopo la ritrazione,\n" -"per equilibrare la pressione." - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:239 -#: AppTools/ToolSolderPaste.py:333 -msgid "Files that control the GCode generation." -msgstr "Files che controllano la generazione del GCode." - -#: AppGUI/preferences/tools/ToolsSubPrefGroupUI.py:27 -msgid "Substractor Tool Options" -msgstr "Opzioni strumento sottrai" - -#: AppGUI/preferences/tools/ToolsSubPrefGroupUI.py:33 -msgid "" -"A tool to substract one Gerber or Geometry object\n" -"from another of the same type." -msgstr "" -"Uno strumento per sottrarre un oggetto Gerber o\n" -"geometria da un altro dello stesso tipo." - -#: AppGUI/preferences/tools/ToolsSubPrefGroupUI.py:38 AppTools/ToolSub.py:160 -msgid "Close paths" -msgstr "Percorsi chiusi" - -#: AppGUI/preferences/tools/ToolsSubPrefGroupUI.py:39 -msgid "" -"Checking this will close the paths cut by the Geometry substractor object." -msgstr "" -"Abilitandolo chiuderà i percorsi rimasti aperti dopo la sottrazione di " -"oggetti geometria." - -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:27 -msgid "Transform Tool Options" -msgstr "Opzione strumento trasforma" - -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:33 -#, fuzzy -#| msgid "" -#| "Various transformations that can be applied\n" -#| "on a FlatCAM object." -msgid "" -"Various transformations that can be applied\n" -"on a application object." -msgstr "Trasformazioni varie da poter applicare ad un oggetto FlatCAM." - -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:64 -msgid "Skew" -msgstr "Inclina" - -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:105 -#: AppTools/ToolTransform.py:150 -msgid "Factor for scaling on X axis." -msgstr "Fattore di scala sull'asse X." - -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:118 -#: AppTools/ToolTransform.py:170 -msgid "Factor for scaling on Y axis." -msgstr "Fattore di scala sull'asse Y." - -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:126 -#: AppTools/ToolTransform.py:191 -msgid "" -"Scale the selected object(s)\n" -"using the Scale_X factor for both axis." -msgstr "" -"Scala l'oggetto(i) selezionato(i) usando\n" -"il fattore Scala_X per entrambi gli assi." - -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:134 -#: AppTools/ToolTransform.py:198 -msgid "" -"Scale the selected object(s)\n" -"using the origin reference when checked,\n" -"and the center of the biggest bounding box\n" -"of the selected objects when unchecked." -msgstr "" -"Scala l'oggetto(i) selezionato(i) usando\n" -"il riferimento di origine quando abilitato,\n" -"oppure il centro del contenitore più grande\n" -"degli oggetti selezionati quando non attivato." - -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:150 -#: AppTools/ToolTransform.py:217 -msgid "X val" -msgstr "Valore X" - -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:152 -#: AppTools/ToolTransform.py:219 -msgid "Distance to offset on X axis. In current units." -msgstr "Distanza da applicare sull'asse X. In unità correnti." - -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:163 -#: AppTools/ToolTransform.py:237 -msgid "Y val" -msgstr "Valore Y" - -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:165 -#: AppTools/ToolTransform.py:239 -msgid "Distance to offset on Y axis. In current units." -msgstr "Distanza da applicare sull'asse Y. In unità correnti." - -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:171 -#: AppTools/ToolDblSided.py:67 AppTools/ToolDblSided.py:95 -#: AppTools/ToolDblSided.py:125 -msgid "Mirror" -msgstr "Specchia" - -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:175 -#: AppTools/ToolTransform.py:283 -msgid "Mirror Reference" -msgstr "Riferimento specchio" - -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:177 -#: AppTools/ToolTransform.py:285 -msgid "" -"Flip the selected object(s)\n" -"around the point in Point Entry Field.\n" -"\n" -"The point coordinates can be captured by\n" -"left click on canvas together with pressing\n" -"SHIFT key. \n" -"Then click Add button to insert coordinates.\n" -"Or enter the coords in format (x, y) in the\n" -"Point Entry field and click Flip on X(Y)" -msgstr "" -"Capovolgi gli oggetti selezionati\n" -"attorno al punto nel campo di inserimento punti.\n" -"\n" -"Le coordinate del punto possono essere acquisite da\n" -"clic sinistro premendo contemporaneamente al tasto\n" -"SHIFT.\n" -"Quindi fare clic sul pulsante Aggiungi per inserire le coordinate.\n" -"Oppure inserisci le coord nel formato (x,y) in\n" -"Inserisci punto e fai clic su Capovolgi su X(Y)" - -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:188 -msgid "Mirror Reference point" -msgstr "Punto di riferimento specchio" - -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:190 -msgid "" -"Coordinates in format (x, y) used as reference for mirroring.\n" -"The 'x' in (x, y) will be used when using Flip on X and\n" -"the 'y' in (x, y) will be used when using Flip on Y and" -msgstr "" -"Coordinate in formato (x, y) usate come riferimento per la specchiatura.\n" -"La 'x' in (x, y) sarà usata per capovolgere su X e\n" -"la 'y' in (x, y) sarà usata per capovolgere su Y e" - -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:203 -#: AppTools/ToolDistance.py:505 AppTools/ToolDistanceMin.py:286 -#: AppTools/ToolTransform.py:332 -msgid "Distance" -msgstr "Distanza" - -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:205 -#: AppTools/ToolTransform.py:334 -msgid "" -"A positive value will create the effect of dilation,\n" -"while a negative value will create the effect of erosion.\n" -"Each geometry element of the object will be increased\n" -"or decreased with the 'distance'." -msgstr "" -"Un valore positivo creerà l'effetto della dilatazione,\n" -"mentre un valore negativo creerà l'effetto di restringimento.\n" -"Ogni elemento della geometria dell'oggetto verrà aumentato\n" -"o diminuito con la 'distanza'." - -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:222 -#: AppTools/ToolTransform.py:359 -msgid "" -"A positive value will create the effect of dilation,\n" -"while a negative value will create the effect of erosion.\n" -"Each geometry element of the object will be increased\n" -"or decreased to fit the 'Value'. Value is a percentage\n" -"of the initial dimension." -msgstr "" -"Un valore positivo creerà l'effetto della dilatazione,\n" -"mentre un valore negativo creerà l'effetto di restringimento.\n" -"Ogni elemento della geometria dell'oggetto verrà aumentato\n" -"o diminuito in base al 'Valore'." - -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:241 -#: AppTools/ToolTransform.py:385 -msgid "" -"If checked then the buffer will surround the buffered shape,\n" -"every corner will be rounded.\n" -"If not checked then the buffer will follow the exact geometry\n" -"of the buffered shape." -msgstr "" -"Se selezionato, il buffer circonderà la forma del buffer,\n" -"ogni angolo verrà arrotondato.\n" -"Se non selezionato, il buffer seguirà l'esatta geometria\n" -"della forma bufferizzata." - -#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:27 -msgid "Autocompleter Keywords" -msgstr "Autocompletamento parole chiave" - -#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:30 -#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:40 -#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:30 -#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:30 -msgid "Restore" -msgstr "Ripristina" - -#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:31 -msgid "Restore the autocompleter keywords list to the default state." -msgstr "" -"Ripristina l'autocompletamento delle parole chiave allo stato di default." - -#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:33 -msgid "Delete all autocompleter keywords from the list." -msgstr "Cancella tutte le parole chiave della lista." - -#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:41 -msgid "Keywords list" -msgstr "Lista parole chiave" - -#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:43 -msgid "" -"List of keywords used by\n" -"the autocompleter in FlatCAM.\n" -"The autocompleter is installed\n" -"in the Code Editor and for the Tcl Shell." -msgstr "" -"Elenco di parole chiave utilizzate dal\n" -"completamento automatico in FlatCAM.\n" -"Il completamento automatico è attivo\n" -"nell'editor di codice e per la shell Tcl." - -#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:64 -#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:73 -#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:63 -#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:62 -msgid "Extension" -msgstr "Estensione" - -#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:65 -msgid "A keyword to be added or deleted to the list." -msgstr "Parola chiave da aggiungere o cancellare dalla lista." - -#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:73 -msgid "Add keyword" -msgstr "Aggiungi parola chiave" - -#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:74 -msgid "Add a keyword to the list" -msgstr "Aggiungi parola chiave alla lista" - -#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:75 -msgid "Delete keyword" -msgstr "Cancella parola chiave" - -#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:76 -msgid "Delete a keyword from the list" -msgstr "Cancella parola chiave dalla lista" - -#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:27 -msgid "Excellon File associations" -msgstr "Associazione file Excellon" - -#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:41 -#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:31 -#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:31 -msgid "Restore the extension list to the default state." -msgstr "Ripristina la lista estensioni allo stato di default." - -#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:43 -#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:33 -#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:33 -msgid "Delete all extensions from the list." -msgstr "Cancella tutte le estensioni dalla lista." - -#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:51 -#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:41 -#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:41 -msgid "Extensions list" -msgstr "Lista estensioni" - -#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:53 -#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:43 -#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:43 -msgid "" -"List of file extensions to be\n" -"associated with FlatCAM." -msgstr "Lista delle estensioni da associare a FlatCAM." - -#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:74 -#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:64 -#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:63 -msgid "A file extension to be added or deleted to the list." -msgstr "Estensione file da aggiungere o cancellare dalla lista." - -#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:82 -#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:72 -#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:71 -msgid "Add Extension" -msgstr "Aggiungi estensione" - -#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:83 -#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:73 -#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:72 -msgid "Add a file extension to the list" -msgstr "Aggiunge una estensione di file alla lista" - -#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:84 -#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:74 -#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:73 -msgid "Delete Extension" -msgstr "Cancella estensione" - -#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:85 -#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:75 -#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:74 -msgid "Delete a file extension from the list" -msgstr "Cancella una estensione file dalla lista" - -#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:92 -#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:82 -#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:81 -msgid "Apply Association" -msgstr "Applica associazione" - -#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:93 -#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:83 -#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:82 -msgid "" -"Apply the file associations between\n" -"FlatCAM and the files with above extensions.\n" -"They will be active after next logon.\n" -"This work only in Windows." -msgstr "" -"Applica l'associazione tra FlatCAM e i\n" -"files con le estensioni di cui sopra.\n" -"Sarà effettiva dal prossimo logon.\n" -"Funziona solo in Windows." - -#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:27 -msgid "GCode File associations" -msgstr "Associazione file GCode" - -#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:27 -msgid "Gerber File associations" -msgstr "Associazione file Gerber" - -#: AppObjects/AppObject.py:134 -#, python-brace-format -msgid "" -"Object ({kind}) failed because: {error} \n" -"\n" -msgstr "" -"Oggetto ({kind}) fallito a causa di: {error} \n" -"\n" - -#: AppObjects/AppObject.py:149 -msgid "Converting units to " -msgstr "Converti unità in " - -#: AppObjects/AppObject.py:254 -msgid "CREATE A NEW FLATCAM TCL SCRIPT" -msgstr "CREA UN NUOVO SCRIPT TCL FLATCAM" - -#: AppObjects/AppObject.py:255 -msgid "TCL Tutorial is here" -msgstr "Qui c'è il tutorial TCL" - -#: AppObjects/AppObject.py:257 -msgid "FlatCAM commands list" -msgstr "Lista comandi FlatCAM" - -#: AppObjects/AppObject.py:258 -msgid "" -"Type >help< followed by Run Code for a list of FlatCAM Tcl Commands " -"(displayed in Tcl Shell)." -msgstr "" -"Prova >help< seguito dal Run Code per una lista di comandi Tcl FlatCAM " -"(visualizzati nella shell)." - -#: AppObjects/AppObject.py:304 AppObjects/AppObject.py:310 -#: AppObjects/AppObject.py:316 AppObjects/AppObject.py:322 -#: AppObjects/AppObject.py:328 AppObjects/AppObject.py:334 -msgid "created/selected" -msgstr "creato/selezionato" - -#: AppObjects/FlatCAMCNCJob.py:429 AppObjects/FlatCAMDocument.py:71 -#: AppObjects/FlatCAMScript.py:82 -msgid "Basic" -msgstr "Base" - -#: AppObjects/FlatCAMCNCJob.py:435 AppObjects/FlatCAMDocument.py:75 -#: AppObjects/FlatCAMScript.py:86 -msgid "Advanced" -msgstr "Advanzato" - -#: AppObjects/FlatCAMCNCJob.py:478 -msgid "Plotting..." -msgstr "Sto disegnando..." - -#: AppObjects/FlatCAMCNCJob.py:517 AppTools/ToolSolderPaste.py:1511 -#, fuzzy -#| msgid "Export PNG cancelled." -msgid "Export cancelled ..." -msgstr "Esportazione PNG annullata." - -#: AppObjects/FlatCAMCNCJob.py:538 -#, fuzzy -#| msgid "PDF file saved to" -msgid "File saved to" -msgstr "File PDF salvato in" - -#: AppObjects/FlatCAMCNCJob.py:548 AppObjects/FlatCAMScript.py:134 -#: App_Main.py:7301 -msgid "Loading..." -msgstr "Caricamento..." - -#: AppObjects/FlatCAMCNCJob.py:562 App_Main.py:7398 -msgid "Code Editor" -msgstr "Editor del codice" - -#: AppObjects/FlatCAMCNCJob.py:599 AppTools/ToolCalibration.py:1097 -msgid "Loaded Machine Code into Code Editor" -msgstr "Codice macchina caricato nell'editor codice" - -#: AppObjects/FlatCAMCNCJob.py:740 -msgid "This CNCJob object can't be processed because it is a" -msgstr "Questo oggetto CNCJob non può essere processato perché è" - -#: AppObjects/FlatCAMCNCJob.py:742 -msgid "CNCJob object" -msgstr "Oggetto CNCJob" - -#: AppObjects/FlatCAMCNCJob.py:922 -msgid "" -"G-code does not have a G94 code and we will not include the code in the " -"'Prepend to GCode' text box" -msgstr "" -"G-Code non ha un codice G94 e non sarà aggiunto nel box \"anteponi al GCode\"" - -#: AppObjects/FlatCAMCNCJob.py:933 -msgid "Cancelled. The Toolchange Custom code is enabled but it's empty." -msgstr "" -"Annullato. Il codice custom per il cambio utensile è abilitato ma vuoto." - -#: AppObjects/FlatCAMCNCJob.py:938 -msgid "Toolchange G-code was replaced by a custom code." -msgstr "G-Code per il cambio utensile sostituito da un codice custom." - -#: AppObjects/FlatCAMCNCJob.py:986 AppObjects/FlatCAMCNCJob.py:995 -msgid "" -"The used preprocessor file has to have in it's name: 'toolchange_custom'" -msgstr "" -"Il file del preprocessore usato deve avere nel nome: 'toolchange_custom'" - -#: AppObjects/FlatCAMCNCJob.py:998 -msgid "There is no preprocessor file." -msgstr "Non c'è nessun file preprocessore." - -#: AppObjects/FlatCAMDocument.py:175 -msgid "Document Editor" -msgstr "Editor Documenti" - -#: AppObjects/FlatCAMExcellon.py:537 AppObjects/FlatCAMExcellon.py:856 -#: AppObjects/FlatCAMGeometry.py:380 AppObjects/FlatCAMGeometry.py:861 -#: AppTools/ToolIsolation.py:1051 AppTools/ToolIsolation.py:1185 -#: AppTools/ToolNCC.py:811 AppTools/ToolNCC.py:1214 AppTools/ToolPaint.py:778 -#: AppTools/ToolPaint.py:1190 -msgid "Multiple Tools" -msgstr "Strumenti Multipli" - -#: AppObjects/FlatCAMExcellon.py:836 -msgid "No Tool Selected" -msgstr "Nessun utensile selezionato" - -#: AppObjects/FlatCAMExcellon.py:1234 AppObjects/FlatCAMExcellon.py:1348 -#: AppObjects/FlatCAMExcellon.py:1535 -msgid "Please select one or more tools from the list and try again." -msgstr "Seleziona uno o più utensili dalla lista e riprova." - -#: AppObjects/FlatCAMExcellon.py:1241 -msgid "Milling tool for DRILLS is larger than hole size. Cancelled." -msgstr "" -"L'utensile per la foratura è più grande del foro. Operazione annullata." - -#: AppObjects/FlatCAMExcellon.py:1265 AppObjects/FlatCAMExcellon.py:1368 -#: AppObjects/FlatCAMExcellon.py:1553 tclCommands/TclCommandDrillcncjob.py:195 -msgid "Tool_nr" -msgstr "Utensile_nr" - -#: AppObjects/FlatCAMExcellon.py:1265 AppObjects/FlatCAMExcellon.py:1368 -#: AppObjects/FlatCAMExcellon.py:1553 tclCommands/TclCommandDrillcncjob.py:195 -msgid "Drills_Nr" -msgstr "Foro_Nr" - -#: AppObjects/FlatCAMExcellon.py:1265 AppObjects/FlatCAMExcellon.py:1368 -#: AppObjects/FlatCAMExcellon.py:1553 tclCommands/TclCommandDrillcncjob.py:195 -msgid "Slots_Nr" -msgstr "Slot_Nr" - -#: AppObjects/FlatCAMExcellon.py:1357 -msgid "Milling tool for SLOTS is larger than hole size. Cancelled." -msgstr "L'utensile per lo SLOT è più grande del foro. Operazione annullata." - -#: AppObjects/FlatCAMExcellon.py:1461 AppObjects/FlatCAMGeometry.py:1636 -msgid "Focus Z" -msgstr "Z a Fuoco" - -#: AppObjects/FlatCAMExcellon.py:1480 AppObjects/FlatCAMGeometry.py:1655 -msgid "Laser Power" -msgstr "Potenza Laser" - -#: AppObjects/FlatCAMExcellon.py:1610 AppObjects/FlatCAMGeometry.py:2088 -#: AppObjects/FlatCAMGeometry.py:2092 AppObjects/FlatCAMGeometry.py:2243 -msgid "Generating CNC Code" -msgstr "Generazione codice CNC" - -#: AppObjects/FlatCAMExcellon.py:1663 AppObjects/FlatCAMGeometry.py:2553 -#, fuzzy -#| msgid "Delete failed. Select a tool to delete." -msgid "Delete failed. There are no exclusion areas to delete." -msgstr "Cancellazione fallita. Seleziona un utensile da cancellare." - -#: AppObjects/FlatCAMExcellon.py:1680 AppObjects/FlatCAMGeometry.py:2570 -#, fuzzy -#| msgid "Failed. Nothing selected." -msgid "Delete failed. Nothing is selected." -msgstr "Errore. Niente di selezionato." - -#: AppObjects/FlatCAMExcellon.py:1945 AppTools/ToolIsolation.py:1253 -#: AppTools/ToolNCC.py:918 AppTools/ToolPaint.py:843 -msgid "Current Tool parameters were applied to all tools." -msgstr "Parametri attuali applicati a tutti gli utensili." - -#: AppObjects/FlatCAMGeometry.py:124 AppObjects/FlatCAMGeometry.py:1298 -#: AppObjects/FlatCAMGeometry.py:1299 AppObjects/FlatCAMGeometry.py:1308 -msgid "Iso" -msgstr "Iso" - -#: AppObjects/FlatCAMGeometry.py:124 AppObjects/FlatCAMGeometry.py:522 -#: AppObjects/FlatCAMGeometry.py:920 AppObjects/FlatCAMGerber.py:565 -#: AppObjects/FlatCAMGerber.py:708 AppTools/ToolCutOut.py:727 -#: AppTools/ToolCutOut.py:923 AppTools/ToolCutOut.py:1083 -#: AppTools/ToolIsolation.py:1842 AppTools/ToolIsolation.py:1979 -#: AppTools/ToolIsolation.py:2150 -msgid "Rough" -msgstr "Grezzo" - -#: AppObjects/FlatCAMGeometry.py:124 -msgid "Finish" -msgstr "Finito" - -#: AppObjects/FlatCAMGeometry.py:557 -msgid "Add from Tool DB" -msgstr "Aggiungi dal DB utensili" - -#: AppObjects/FlatCAMGeometry.py:939 -msgid "Tool added in Tool Table." -msgstr "Utensile aggiunto nella tavola utensili." - -#: AppObjects/FlatCAMGeometry.py:1048 AppObjects/FlatCAMGeometry.py:1057 -msgid "Failed. Select a tool to copy." -msgstr "Errore. Selezionare un utensile da copiare." - -#: AppObjects/FlatCAMGeometry.py:1086 -msgid "Tool was copied in Tool Table." -msgstr "Utensile copiato nella tabella utensili." - -#: AppObjects/FlatCAMGeometry.py:1113 -msgid "Tool was edited in Tool Table." -msgstr "Utensile editato nella tabella utensili." - -#: AppObjects/FlatCAMGeometry.py:1142 AppObjects/FlatCAMGeometry.py:1151 -msgid "Failed. Select a tool to delete." -msgstr "Errore. Selezionare un utensile da cancellare." - -#: AppObjects/FlatCAMGeometry.py:1175 -msgid "Tool was deleted in Tool Table." -msgstr "Utensile cancellato dalla tabella utensili." - -#: AppObjects/FlatCAMGeometry.py:1212 AppObjects/FlatCAMGeometry.py:1221 -msgid "" -"Disabled because the tool is V-shape.\n" -"For V-shape tools the depth of cut is\n" -"calculated from other parameters like:\n" -"- 'V-tip Angle' -> angle at the tip of the tool\n" -"- 'V-tip Dia' -> diameter at the tip of the tool \n" -"- Tool Dia -> 'Dia' column found in the Tool Table\n" -"NB: a value of zero means that Tool Dia = 'V-tip Dia'" -msgstr "" -"Disabilitato perché lo strumento è a forma di V.\n" -"Per gli strumenti a V la profondità di taglio è\n" -"calcolato da altri parametri come:\n" -"- 'Angolo V' -> angolo sulla punta dell'utensile\n" -"- 'V Dia' -> diametro alla punta dell'utensile\n" -"- Strumento Dia -> colonna 'Dia' trovato nella tabella degli utensili\n" -"NB: un valore zero significa che Tool Dia = 'V Dia'" - -#: AppObjects/FlatCAMGeometry.py:1708 -msgid "This Geometry can't be processed because it is" -msgstr "Geometria non processabile per" - -#: AppObjects/FlatCAMGeometry.py:1708 -msgid "geometry" -msgstr "geometria" - -#: AppObjects/FlatCAMGeometry.py:1749 -msgid "Failed. No tool selected in the tool table ..." -msgstr "Errore. Nessun utensile selezionato nella tabella utensili ..." - -#: AppObjects/FlatCAMGeometry.py:1847 AppObjects/FlatCAMGeometry.py:1997 -msgid "" -"Tool Offset is selected in Tool Table but no value is provided.\n" -"Add a Tool Offset or change the Offset Type." -msgstr "" -"Selezionato Offset utensile nella tabella utensili ma nessun valore " -"inserito.\n" -"Aggiungi un offset utensile o cambia il tipo di Offset." - -#: AppObjects/FlatCAMGeometry.py:1913 AppObjects/FlatCAMGeometry.py:2059 -msgid "G-Code parsing in progress..." -msgstr "Analisi G_Code in corso..." - -#: AppObjects/FlatCAMGeometry.py:1915 AppObjects/FlatCAMGeometry.py:2061 -msgid "G-Code parsing finished..." -msgstr "Analisi G_Code terminata..." - -#: AppObjects/FlatCAMGeometry.py:1923 -msgid "Finished G-Code processing" -msgstr "Generazione G_Code terminata" - -#: AppObjects/FlatCAMGeometry.py:1925 AppObjects/FlatCAMGeometry.py:2073 -msgid "G-Code processing failed with error" -msgstr "Generazione G-Code fallita con errore" - -#: AppObjects/FlatCAMGeometry.py:1967 AppTools/ToolSolderPaste.py:1309 -msgid "Cancelled. Empty file, it has no geometry" -msgstr "Annullato. File vuoto, non ci sono geometrie" - -#: AppObjects/FlatCAMGeometry.py:2071 AppObjects/FlatCAMGeometry.py:2238 -msgid "Finished G-Code processing..." -msgstr "Generazione G_Code terminata..." - -#: AppObjects/FlatCAMGeometry.py:2090 AppObjects/FlatCAMGeometry.py:2094 -#: AppObjects/FlatCAMGeometry.py:2245 -msgid "CNCjob created" -msgstr "CNCjob creato" - -#: AppObjects/FlatCAMGeometry.py:2276 AppObjects/FlatCAMGeometry.py:2285 -#: AppParsers/ParseGerber.py:1866 AppParsers/ParseGerber.py:1876 -msgid "Scale factor has to be a number: integer or float." -msgstr "Il fattore di scala deve essere un numero: intero o float." - -#: AppObjects/FlatCAMGeometry.py:2348 -msgid "Geometry Scale done." -msgstr "Riscala geometria terminata." - -#: AppObjects/FlatCAMGeometry.py:2365 AppParsers/ParseGerber.py:1992 -msgid "" -"An (x,y) pair of values are needed. Probable you entered only one value in " -"the Offset field." -msgstr "" -"E' necessaria una coppia di valori (x,y). Probabilmente è stato inserito " -"solo uno dei valori nel campo Offset." - -#: AppObjects/FlatCAMGeometry.py:2421 -msgid "Geometry Offset done." -msgstr "Offset geometria applicato." - -#: AppObjects/FlatCAMGeometry.py:2450 -msgid "" -"The Toolchange X,Y field in Edit -> Preferences has to be in the format (x, " -"y)\n" -"but now there is only one value, not two." -msgstr "" -"Il campo cambio utensile X,Y in Edit -> Preferenze deve essere nel formato " -"(x, y)\n" -"ma ora c'è un solo valore, non due." - -#: AppObjects/FlatCAMGerber.py:388 AppTools/ToolIsolation.py:1577 -msgid "Buffering solid geometry" -msgstr "Riempimento geometria solida" - -#: AppObjects/FlatCAMGerber.py:397 AppTools/ToolIsolation.py:1599 -msgid "Done" -msgstr "Fatto" - -#: AppObjects/FlatCAMGerber.py:423 AppObjects/FlatCAMGerber.py:449 -msgid "Operation could not be done." -msgstr "L'operazione non può essere eseguita." - -#: AppObjects/FlatCAMGerber.py:581 AppObjects/FlatCAMGerber.py:655 -#: AppTools/ToolIsolation.py:1805 AppTools/ToolIsolation.py:2126 -#: AppTools/ToolNCC.py:2117 AppTools/ToolNCC.py:3197 AppTools/ToolNCC.py:3576 -msgid "Isolation geometry could not be generated." -msgstr "Geometria di isolamento non può essere generata." - -#: AppObjects/FlatCAMGerber.py:606 AppObjects/FlatCAMGerber.py:733 -#: AppTools/ToolIsolation.py:1869 AppTools/ToolIsolation.py:2035 -#: AppTools/ToolIsolation.py:2202 -msgid "Isolation geometry created" -msgstr "Geometria di isolamento creata" - -#: AppObjects/FlatCAMGerber.py:1028 -msgid "Plotting Apertures" -msgstr "Generazione aperture" - -#: AppObjects/FlatCAMObj.py:237 -msgid "Name changed from" -msgstr "Nome cambiato da" - -#: AppObjects/FlatCAMObj.py:237 -msgid "to" -msgstr "a" - -#: AppObjects/FlatCAMObj.py:248 -msgid "Offsetting..." -msgstr "Applicazione offset..." - -#: AppObjects/FlatCAMObj.py:262 AppObjects/FlatCAMObj.py:267 -msgid "Scaling could not be executed." -msgstr "La riscalatura non può essere eseguita." - -#: AppObjects/FlatCAMObj.py:271 AppObjects/FlatCAMObj.py:279 -msgid "Scale done." -msgstr "Riscalatura effettuata." - -#: AppObjects/FlatCAMObj.py:277 -msgid "Scaling..." -msgstr "Riscalatura..." - -#: AppObjects/FlatCAMObj.py:295 -msgid "Skewing..." -msgstr "Inglinazione..." - -#: AppObjects/FlatCAMScript.py:163 -msgid "Script Editor" -msgstr "Editor Script" - -#: AppObjects/ObjectCollection.py:514 -#, python-brace-format -msgid "Object renamed from {old} to {new}" -msgstr "Oggetto rinominato da {old} a {new}" - -#: AppObjects/ObjectCollection.py:926 AppObjects/ObjectCollection.py:932 -#: AppObjects/ObjectCollection.py:938 AppObjects/ObjectCollection.py:944 -#: AppObjects/ObjectCollection.py:950 AppObjects/ObjectCollection.py:956 -#: App_Main.py:6235 App_Main.py:6241 App_Main.py:6247 App_Main.py:6253 -msgid "selected" -msgstr "selezionato" - -#: AppObjects/ObjectCollection.py:987 -msgid "Cause of error" -msgstr "Causa dell'errore" - -#: AppObjects/ObjectCollection.py:1188 -msgid "All objects are selected." -msgstr "Tutti gli oggetti sono selezionati." - -#: AppObjects/ObjectCollection.py:1198 -msgid "Objects selection is cleared." -msgstr "Selezione oggetti svuotata." - -#: AppParsers/ParseExcellon.py:315 -msgid "This is GCODE mark" -msgstr "Marchio GCode" - -#: AppParsers/ParseExcellon.py:432 -msgid "" -"No tool diameter info's. See shell.\n" -"A tool change event: T" -msgstr "" -"Nessuna info sul diametro utensile. Vedi shell.\n" -"Un evento cambio utensile T" - -#: AppParsers/ParseExcellon.py:435 -msgid "" -"was found but the Excellon file have no informations regarding the tool " -"diameters therefore the application will try to load it by using some 'fake' " -"diameters.\n" -"The user needs to edit the resulting Excellon object and change the " -"diameters to reflect the real diameters." -msgstr "" -"è stato rilevato ma il file Excellon non ha informazioni a riguardo del " -"diametro dell'utensile. L'applicazione tenterà di caricarlo usando un " -"diametro \"finto\".\n" -"L'utente dovrà editare l'oggetto Excellon e cambiarle il diametro per " -"contenere il diametro corretto." - -#: AppParsers/ParseExcellon.py:899 -msgid "" -"Excellon Parser error.\n" -"Parsing Failed. Line" -msgstr "Errore analisi Excellon. Analisi fallita. Linea" - -#: AppParsers/ParseExcellon.py:981 -msgid "" -"Excellon.create_geometry() -> a drill location was skipped due of not having " -"a tool associated.\n" -"Check the resulting GCode." -msgstr "" -"Excellon.create_geometry() -> è stata ignorata una posizione di foratura per " -"la mancanza di utensile.\n" -"Controllare il GCode risultante." - -#: AppParsers/ParseFont.py:303 -msgid "Font not supported, try another one." -msgstr "Font non supportato, prova con un altro." - -#: AppParsers/ParseGerber.py:425 -msgid "Gerber processing. Parsing" -msgstr "Processo Gerber. Analisi" - -#: AppParsers/ParseGerber.py:425 AppParsers/ParseHPGL2.py:181 -msgid "lines" -msgstr "righe" - -#: AppParsers/ParseGerber.py:1001 AppParsers/ParseGerber.py:1101 -#: AppParsers/ParseHPGL2.py:274 AppParsers/ParseHPGL2.py:288 -#: AppParsers/ParseHPGL2.py:307 AppParsers/ParseHPGL2.py:331 -#: AppParsers/ParseHPGL2.py:366 -msgid "Coordinates missing, line ignored" -msgstr "Coordinate mancanti, riga ignorata" - -#: AppParsers/ParseGerber.py:1003 AppParsers/ParseGerber.py:1103 -msgid "GERBER file might be CORRUPT. Check the file !!!" -msgstr "Il file GERBER potrebbe essere CORROTTO. Controlla il file !!!" - -#: AppParsers/ParseGerber.py:1057 -msgid "" -"Region does not have enough points. File will be processed but there are " -"parser errors. Line number" -msgstr "" -"La regione non ha sufficienti punti. Il file sarà usato ma ci sono errori di " -"analisi. Riga numero" - -#: AppParsers/ParseGerber.py:1487 AppParsers/ParseHPGL2.py:401 -msgid "Gerber processing. Joining polygons" -msgstr "Gerber analizzato. Unione poligoni" - -#: AppParsers/ParseGerber.py:1504 -msgid "Gerber processing. Applying Gerber polarity." -msgstr "Gerber analizzato. Applico polarità Gerber." - -#: AppParsers/ParseGerber.py:1564 -msgid "Gerber Line" -msgstr "Riga Gerber" - -#: AppParsers/ParseGerber.py:1564 -msgid "Gerber Line Content" -msgstr "Contenuto riga Gerber" - -#: AppParsers/ParseGerber.py:1566 -msgid "Gerber Parser ERROR" -msgstr "ERRORE analisi Gerber" - -#: AppParsers/ParseGerber.py:1956 -msgid "Gerber Scale done." -msgstr "Riscalatura Gerber completata." - -#: AppParsers/ParseGerber.py:2048 -msgid "Gerber Offset done." -msgstr "Spostamento Gerber completato." - -#: AppParsers/ParseGerber.py:2124 -msgid "Gerber Mirror done." -msgstr "Specchiature Gerber completata." - -#: AppParsers/ParseGerber.py:2198 -msgid "Gerber Skew done." -msgstr "Inclinazione Gerber completata." - -#: AppParsers/ParseGerber.py:2260 -msgid "Gerber Rotate done." -msgstr "Rotazione Gerber completata." - -#: AppParsers/ParseGerber.py:2417 -msgid "Gerber Buffer done." -msgstr "Riempimento Gerber completato." - -#: AppParsers/ParseHPGL2.py:181 -msgid "HPGL2 processing. Parsing" -msgstr "Controllo HPGL2. Analisi" - -#: AppParsers/ParseHPGL2.py:413 -msgid "HPGL2 Line" -msgstr "Riga HPGL2" - -#: AppParsers/ParseHPGL2.py:413 -msgid "HPGL2 Line Content" -msgstr "Contenuto riga HPGL2" - -#: AppParsers/ParseHPGL2.py:414 -msgid "HPGL2 Parser ERROR" -msgstr "ERRORE analisi HPGL2" - -#: AppProcess.py:172 -msgid "processes running." -msgstr "processi in esecuzione." - -#: AppTools/ToolAlignObjects.py:32 -msgid "Align Objects" -msgstr "Allinea oggetti" - -#: AppTools/ToolAlignObjects.py:61 -msgid "MOVING object" -msgstr "SPOSTAMENTO oggetto" - -#: AppTools/ToolAlignObjects.py:65 -msgid "" -"Specify the type of object to be aligned.\n" -"It can be of type: Gerber or Excellon.\n" -"The selection here decide the type of objects that will be\n" -"in the Object combobox." -msgstr "" -"Specificare il tipo di oggetto da allineare.\n" -"Può essere di tipo: Gerber o Excellon.\n" -"La selezione decide il tipo di oggetti che saranno\n" -"nella combobox Oggetto." - -#: AppTools/ToolAlignObjects.py:86 -msgid "Object to be aligned." -msgstr "Oggetto da allineare." - -#: AppTools/ToolAlignObjects.py:98 -msgid "TARGET object" -msgstr "Oggetto DESTINAZIONE" - -#: AppTools/ToolAlignObjects.py:100 -msgid "" -"Specify the type of object to be aligned to.\n" -"It can be of type: Gerber or Excellon.\n" -"The selection here decide the type of objects that will be\n" -"in the Object combobox." -msgstr "" -"Specificare il tipo di oggetto da allineare.\n" -"Può essere di tipo: Gerber o Excellon.\n" -"La selezione decide il tipo di oggetti che saranno\n" -"nella combobox Oggetto." - -#: AppTools/ToolAlignObjects.py:122 -msgid "Object to be aligned to. Aligner." -msgstr "Oggetto da allineare. Allineatore." - -#: AppTools/ToolAlignObjects.py:135 -msgid "Alignment Type" -msgstr "Tipo allineamento" - -#: AppTools/ToolAlignObjects.py:137 -msgid "" -"The type of alignment can be:\n" -"- Single Point -> it require a single point of sync, the action will be a " -"translation\n" -"- Dual Point -> it require two points of sync, the action will be " -"translation followed by rotation" -msgstr "" -"Il tipo di allineamento può essere:\n" -"- Punto singolo -> richiede un solo punto di sincronizzazione, l'azione sarà " -"una traslazione\n" -"- Punto doppio -> richiede due punti di sincronizzazione, l'azione sarà la " -"traslazione seguita da rotazione" - -#: AppTools/ToolAlignObjects.py:143 -msgid "Single Point" -msgstr "Punto singolo" - -#: AppTools/ToolAlignObjects.py:144 -msgid "Dual Point" -msgstr "Doppio punto" - -#: AppTools/ToolAlignObjects.py:159 -msgid "Align Object" -msgstr "Allinea oggetto" - -#: AppTools/ToolAlignObjects.py:161 -msgid "" -"Align the specified object to the aligner object.\n" -"If only one point is used then it assumes translation.\n" -"If tho points are used it assume translation and rotation." -msgstr "" -"Allinea l'oggetto specificato all'oggetto allineatore.\n" -"Se viene utilizzato solo un punto, assume la traslazione.\n" -"Se si utilizzano i punti, si assume la traslazione e rotazione." - -#: AppTools/ToolAlignObjects.py:176 AppTools/ToolCalculators.py:246 -#: AppTools/ToolCalibration.py:683 AppTools/ToolCopperThieving.py:488 -#: AppTools/ToolCorners.py:182 AppTools/ToolCutOut.py:362 -#: AppTools/ToolDblSided.py:471 AppTools/ToolEtchCompensation.py:240 -#: AppTools/ToolExtractDrills.py:310 AppTools/ToolFiducials.py:321 -#: AppTools/ToolFilm.py:503 AppTools/ToolInvertGerber.py:143 -#: AppTools/ToolIsolation.py:591 AppTools/ToolNCC.py:612 -#: AppTools/ToolOptimal.py:243 AppTools/ToolPaint.py:555 -#: AppTools/ToolPanelize.py:280 AppTools/ToolPunchGerber.py:339 -#: AppTools/ToolQRCode.py:323 AppTools/ToolRulesCheck.py:516 -#: AppTools/ToolSolderPaste.py:481 AppTools/ToolSub.py:181 -#: AppTools/ToolTransform.py:398 -msgid "Reset Tool" -msgstr "Azzera strumento" - -#: AppTools/ToolAlignObjects.py:178 AppTools/ToolCalculators.py:248 -#: AppTools/ToolCalibration.py:685 AppTools/ToolCopperThieving.py:490 -#: AppTools/ToolCorners.py:184 AppTools/ToolCutOut.py:364 -#: AppTools/ToolDblSided.py:473 AppTools/ToolEtchCompensation.py:242 -#: AppTools/ToolExtractDrills.py:312 AppTools/ToolFiducials.py:323 -#: AppTools/ToolFilm.py:505 AppTools/ToolInvertGerber.py:145 -#: AppTools/ToolIsolation.py:593 AppTools/ToolNCC.py:614 -#: AppTools/ToolOptimal.py:245 AppTools/ToolPaint.py:557 -#: AppTools/ToolPanelize.py:282 AppTools/ToolPunchGerber.py:341 -#: AppTools/ToolQRCode.py:325 AppTools/ToolRulesCheck.py:518 -#: AppTools/ToolSolderPaste.py:483 AppTools/ToolSub.py:183 -#: AppTools/ToolTransform.py:400 -msgid "Will reset the tool parameters." -msgstr "Azzererà i parametri dello strumento." - -#: AppTools/ToolAlignObjects.py:244 -msgid "Align Tool" -msgstr "Strumento allineamento" - -#: AppTools/ToolAlignObjects.py:289 -msgid "There is no aligned FlatCAM object selected..." -msgstr "Non si sono oggetti FlatCAM allineati..." - -#: AppTools/ToolAlignObjects.py:299 -msgid "There is no aligner FlatCAM object selected..." -msgstr "Non si sono oggetti FlatCAM allineatori selezionati..." - -#: AppTools/ToolAlignObjects.py:321 AppTools/ToolAlignObjects.py:385 -msgid "First Point" -msgstr "Primo punto" - -#: AppTools/ToolAlignObjects.py:321 AppTools/ToolAlignObjects.py:400 -msgid "Click on the START point." -msgstr "Fai clic sul punto di PARTENZA." - -#: AppTools/ToolAlignObjects.py:380 AppTools/ToolCalibration.py:920 -msgid "Cancelled by user request." -msgstr "Annullato su richiesta dell'utente." - -#: AppTools/ToolAlignObjects.py:385 AppTools/ToolAlignObjects.py:407 -msgid "Click on the DESTINATION point." -msgstr "Fai clic sul punto di DESTINAZIONE." - -#: AppTools/ToolAlignObjects.py:385 AppTools/ToolAlignObjects.py:400 -#: AppTools/ToolAlignObjects.py:407 -msgid "Or right click to cancel." -msgstr "O click destro per annullare." - -#: AppTools/ToolAlignObjects.py:400 AppTools/ToolAlignObjects.py:407 -#: AppTools/ToolFiducials.py:107 -msgid "Second Point" -msgstr "Secondo punto" - -#: AppTools/ToolCalculators.py:24 -msgid "Calculators" -msgstr "Calcolatrici" - -#: AppTools/ToolCalculators.py:26 -msgid "Units Calculator" -msgstr "Calcolatrice unità" - -#: AppTools/ToolCalculators.py:70 -msgid "Here you enter the value to be converted from INCH to MM" -msgstr "Puoi convertire unita da POLLICI a MM" - -#: AppTools/ToolCalculators.py:75 -msgid "Here you enter the value to be converted from MM to INCH" -msgstr "Puoi convertire unita da MM a POLLICI" - -#: AppTools/ToolCalculators.py:111 -msgid "" -"This is the angle of the tip of the tool.\n" -"It is specified by manufacturer." -msgstr "" -"Questo è l'angolo della punta dell'utensile.\n" -"È specificato dal produttore." - -#: AppTools/ToolCalculators.py:120 -msgid "" -"This is the depth to cut into the material.\n" -"In the CNCJob is the CutZ parameter." -msgstr "" -"Questa è la profondità di taglio nel materiale.\n" -"Nel CNCJob è presente il parametro CutZ." - -#: AppTools/ToolCalculators.py:128 -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 "" -"Questo è il diametro dell'utensile da inserire\n" -"nella sezione FlatCAM Gerber.\n" -"Nella sezione CNCJob si chiama >Tool dia<." - -#: AppTools/ToolCalculators.py:139 AppTools/ToolCalculators.py:235 -msgid "Calculate" -msgstr "Calcola" - -#: AppTools/ToolCalculators.py:142 -msgid "" -"Calculate either the Cut Z or the effective tool diameter,\n" -" depending on which is desired and which is known. " -msgstr "" -"Calcola il taglio Z o il diametro effettivo dell'utensile,\n" -" a seconda del risultato desiderato o dei dati noti. " - -#: AppTools/ToolCalculators.py:205 -msgid "Current Value" -msgstr "Valore corrente" - -#: AppTools/ToolCalculators.py:212 -msgid "" -"This is the current intensity value\n" -"to be set on the Power Supply. In Amps." -msgstr "" -"Intensità di corrente da impostare\n" -"nell'alimentatore. In Ampere." - -#: AppTools/ToolCalculators.py:216 -msgid "Time" -msgstr "Tempo" - -#: AppTools/ToolCalculators.py:223 -msgid "" -"This is the calculated time required for the procedure.\n" -"In minutes." -msgstr "Tempo calcolato per la procedura. In minuti." - -#: AppTools/ToolCalculators.py:238 -msgid "" -"Calculate the current intensity value and the procedure time,\n" -"depending on the parameters above" -msgstr "" -"Calcula l'intensità di corrente e la durata della procedura,\n" -"a seconda dei parametri sopra" - -#: AppTools/ToolCalculators.py:299 -msgid "Calc. Tool" -msgstr "Strumenti Calcolatrici" - -#: AppTools/ToolCalibration.py:69 -msgid "Parameters used when creating the GCode in this tool." -msgstr "Parametri usati nella creazione del GCode in questo strumento." - -#: AppTools/ToolCalibration.py:173 -msgid "STEP 1: Acquire Calibration Points" -msgstr "PASSO 1: Acquisizione dei punti di calibrazione" - -#: AppTools/ToolCalibration.py:175 -msgid "" -"Pick four points by clicking on canvas.\n" -"Those four points should be in the four\n" -"(as much as possible) corners of the object." -msgstr "" -"Calcola il taglio Z o il diametro effettivo dell'utensile,\n" -" a seconda del risultato desiderato o dei dati noti...." - -#: AppTools/ToolCalibration.py:193 AppTools/ToolFilm.py:71 -#: AppTools/ToolImage.py:54 AppTools/ToolPanelize.py:77 -#: AppTools/ToolProperties.py:177 -msgid "Object Type" -msgstr "Tipo oggetto" - -#: AppTools/ToolCalibration.py:210 -msgid "Source object selection" -msgstr "Selezione oggetto di origine" - -#: AppTools/ToolCalibration.py:212 -msgid "FlatCAM Object to be used as a source for reference points." -msgstr "Oggetto FlatCAM da usare come sorgente per i punti di riferimento." - -#: AppTools/ToolCalibration.py:218 -msgid "Calibration Points" -msgstr "Punti di calibrazione" - -#: AppTools/ToolCalibration.py:220 -msgid "" -"Contain the expected calibration points and the\n" -"ones measured." -msgstr "" -"Contiene i punti di calibrazione e\n" -"quelli misurati." - -#: AppTools/ToolCalibration.py:235 AppTools/ToolSub.py:81 -#: AppTools/ToolSub.py:136 -msgid "Target" -msgstr "Destinazione" - -#: AppTools/ToolCalibration.py:236 -msgid "Found Delta" -msgstr "Calcolo Delta" - -#: AppTools/ToolCalibration.py:248 -msgid "Bot Left X" -msgstr "X basso-Sinistra" - -#: AppTools/ToolCalibration.py:257 -msgid "Bot Left Y" -msgstr "Y Basso-Sinistra" - -#: AppTools/ToolCalibration.py:275 -msgid "Bot Right X" -msgstr "X Basso-Destra" - -#: AppTools/ToolCalibration.py:285 -msgid "Bot Right Y" -msgstr "Y Basso-Destra" - -#: AppTools/ToolCalibration.py:300 -msgid "Top Left X" -msgstr "X Alto-Sinistra" - -#: AppTools/ToolCalibration.py:309 -msgid "Top Left Y" -msgstr "Y Alto-Sinistra" - -#: AppTools/ToolCalibration.py:324 -msgid "Top Right X" -msgstr "X Alto-Destra" - -#: AppTools/ToolCalibration.py:334 -msgid "Top Right Y" -msgstr "Y Alto-Destra" - -#: AppTools/ToolCalibration.py:367 -msgid "Get Points" -msgstr "Ottieni punti" - -#: AppTools/ToolCalibration.py:369 -msgid "" -"Pick four points by clicking on canvas if the source choice\n" -"is 'free' or inside the object geometry if the source is 'object'.\n" -"Those four points should be in the four squares of\n" -"the object." -msgstr "" -"Seleziona quattro punti cliccandoci sopra se l'origine scelta è\n" -"'libera' o all'interno dell'oggetto geometria se la sorgente è 'oggetto'.\n" -"Questi quattro punti dovrebbero essere nei quattro angoli\n" -"dell'oggetto." - -#: AppTools/ToolCalibration.py:390 -msgid "STEP 2: Verification GCode" -msgstr "PASSO 2: Verifica del GCode" - -#: AppTools/ToolCalibration.py:392 AppTools/ToolCalibration.py:405 -msgid "" -"Generate GCode file to locate and align the PCB by using\n" -"the four points acquired above.\n" -"The points sequence is:\n" -"- first point -> set the origin\n" -"- second point -> alignment point. Can be: top-left or bottom-right.\n" -"- third point -> check point. Can be: top-left or bottom-right.\n" -"- forth point -> final verification point. Just for evaluation." -msgstr "" -"Genera il file GCode per individuare e allineare il PCB utilizzando\n" -"i quattro punti acquisiti sopra.\n" -"La sequenza di punti è:\n" -"- primo punto -> imposta l'origine\n" -"- secondo punto -> punto di allineamento. Può essere: in alto a sinistra o " -"in basso a destra.\n" -"- terzo punto -> punto di controllo. Può essere: in alto a sinistra o in " -"basso a destra.\n" -"- quarto punto -> punto di verifica finale. Solo per valutazione." - -#: AppTools/ToolCalibration.py:403 AppTools/ToolSolderPaste.py:344 -msgid "Generate GCode" -msgstr "Genera GCode" - -#: AppTools/ToolCalibration.py:429 -msgid "STEP 3: Adjustments" -msgstr "PASSO 3: modifica" - -#: AppTools/ToolCalibration.py:431 AppTools/ToolCalibration.py:440 -msgid "" -"Calculate Scale and Skew factors based on the differences (delta)\n" -"found when checking the PCB pattern. The differences must be filled\n" -"in the fields Found (Delta)." -msgstr "" -"Calcola i fattori di scala e di inclinazione in base alle differenze " -"(delta)\n" -"trovate durante il controllo del PCB. Le differenze devono essere colmate\n" -"nei campi Trovato (Delta)." - -#: AppTools/ToolCalibration.py:438 -msgid "Calculate Factors" -msgstr "Calcola fattori" - -#: AppTools/ToolCalibration.py:460 -msgid "STEP 4: Adjusted GCode" -msgstr "PASSO 4: GCode modificato" - -#: AppTools/ToolCalibration.py:462 -msgid "" -"Generate verification GCode file adjusted with\n" -"the factors above." -msgstr "" -"Genera file GCode di verifica modificato con\n" -"i fattori sopra." - -#: AppTools/ToolCalibration.py:467 -msgid "Scale Factor X:" -msgstr "Fattore X scala:" - -#: AppTools/ToolCalibration.py:479 -msgid "Scale Factor Y:" -msgstr "Fattore Y scala:" - -#: AppTools/ToolCalibration.py:491 -msgid "Apply Scale Factors" -msgstr "Applica fattori di scala" - -#: AppTools/ToolCalibration.py:493 -msgid "Apply Scale factors on the calibration points." -msgstr "Applica fattori di scala sui punti di calibrazione." - -#: AppTools/ToolCalibration.py:503 -msgid "Skew Angle X:" -msgstr "Angolo inclinazione X:" - -#: AppTools/ToolCalibration.py:516 -msgid "Skew Angle Y:" -msgstr "Angolo inclinazione Y:" - -#: AppTools/ToolCalibration.py:529 -msgid "Apply Skew Factors" -msgstr "Applica fattori di inclinazione" - -#: AppTools/ToolCalibration.py:531 -msgid "Apply Skew factors on the calibration points." -msgstr "Applica fattori di inclinazione sui punti di calibrazione." - -#: AppTools/ToolCalibration.py:600 -msgid "Generate Adjusted GCode" -msgstr "Genera GCode modificato" - -#: AppTools/ToolCalibration.py:602 -msgid "" -"Generate verification GCode file adjusted with\n" -"the factors set above.\n" -"The GCode parameters can be readjusted\n" -"before clicking this button." -msgstr "" -"Genera file GCode di verifica modificato con\n" -"i fattori sopra indicati.\n" -"I parametri GCode possono essere riadattati\n" -"prima di fare clic su questo pulsante." - -#: AppTools/ToolCalibration.py:623 -msgid "STEP 5: Calibrate FlatCAM Objects" -msgstr "PASSO 5: Calibra oggetti FlatCAM" - -#: AppTools/ToolCalibration.py:625 -msgid "" -"Adjust the FlatCAM objects\n" -"with the factors determined and verified above." -msgstr "" -"Regola gli oggetti FlatCAM\n" -"con i fattori determinati e verificati sopra." - -#: AppTools/ToolCalibration.py:637 -msgid "Adjusted object type" -msgstr "Tipo oggetto regolato" - -#: AppTools/ToolCalibration.py:638 -msgid "Type of the FlatCAM Object to be adjusted." -msgstr "Tipo di oggetto FlatCAM da regolare." - -#: AppTools/ToolCalibration.py:651 -msgid "Adjusted object selection" -msgstr "Selezione oggetto regolato" - -#: AppTools/ToolCalibration.py:653 -msgid "The FlatCAM Object to be adjusted." -msgstr "L'oggetto FlatCAM da regolare." - -#: AppTools/ToolCalibration.py:660 -msgid "Calibrate" -msgstr "Calibra" - -#: AppTools/ToolCalibration.py:662 -msgid "" -"Adjust (scale and/or skew) the objects\n" -"with the factors determined above." -msgstr "" -"Regola (scala e/o inclina) gli oggetti\n" -"con i fattori determinati sopra." - -#: AppTools/ToolCalibration.py:770 AppTools/ToolCalibration.py:771 -msgid "Origin" -msgstr "Origine" - -#: AppTools/ToolCalibration.py:800 -msgid "Tool initialized" -msgstr "Strumento inizializzato" - -#: AppTools/ToolCalibration.py:838 -msgid "There is no source FlatCAM object selected..." -msgstr "Non si sono oggetti FlatCAM sorgente selezionati..." - -#: AppTools/ToolCalibration.py:859 -msgid "Get First calibration point. Bottom Left..." -msgstr "Primo punto di calibrazione. In basso a sinistra..." - -#: AppTools/ToolCalibration.py:926 -msgid "Get Second calibration point. Bottom Right (Top Left)..." -msgstr "Secondo punto di calibrazione. In basso a destra (Sopra Sinistra) ..." - -#: AppTools/ToolCalibration.py:930 -msgid "Get Third calibration point. Top Left (Bottom Right)..." -msgstr "Terzo punto di calibrazione. Sopra a sinistra (Basso Destra)…." - -#: AppTools/ToolCalibration.py:934 -msgid "Get Forth calibration point. Top Right..." -msgstr "Quarto punto di calibrazione. In alto a destra..." - -#: AppTools/ToolCalibration.py:938 -msgid "Done. All four points have been acquired." -msgstr "Fatto. I quattro punti sono stati ascuisiti." - -#: AppTools/ToolCalibration.py:969 -msgid "Verification GCode for FlatCAM Calibration Tool" -msgstr "Verifica Gcode per lo strumento Calibrazione di FlatCAM" - -#: AppTools/ToolCalibration.py:981 AppTools/ToolCalibration.py:1067 -msgid "Gcode Viewer" -msgstr "Visualizzatore GCode" - -#: AppTools/ToolCalibration.py:997 -msgid "Cancelled. Four points are needed for GCode generation." -msgstr "Annullato. Sono necessari 4 punti per la generazione del GCode." - -#: AppTools/ToolCalibration.py:1253 AppTools/ToolCalibration.py:1349 -msgid "There is no FlatCAM object selected..." -msgstr "Non si sono oggetti FlatCAM selezionati..." - -#: AppTools/ToolCopperThieving.py:76 AppTools/ToolFiducials.py:264 -msgid "Gerber Object to which will be added a copper thieving." -msgstr "Oggetto Gerber a cui verrà aggiunto rame." - -#: AppTools/ToolCopperThieving.py:102 -msgid "" -"This set the distance between the copper thieving components\n" -"(the polygon fill may be split in multiple polygons)\n" -"and the copper traces in the Gerber file." -msgstr "" -"Questo imposta la distanza tra i componenti del Copper Thieving\n" -"(il riempimento poligonale può essere suddiviso in più poligoni)\n" -"e le tracce di rame nel file Gerber." - -#: AppTools/ToolCopperThieving.py:135 -msgid "" -"- 'Itself' - the copper thieving extent is based on the object extent.\n" -"- 'Area Selection' - left mouse click to start selection of the area to be " -"filled.\n" -"- 'Reference Object' - will do copper thieving within the area specified by " -"another object." -msgstr "" -"- 'Stesso': l'estensione del deposito di rame si basa sull'estensione " -"dell'oggetto.\n" -"- 'Selezione area': fare clic con il pulsante sinistro del mouse per avviare " -"la selezione dell'area da riempire.\n" -"- 'Oggetto di riferimento': eseguirà il furto di rame nell'area specificata " -"da un altro oggetto." - -#: AppTools/ToolCopperThieving.py:142 AppTools/ToolIsolation.py:511 -#: AppTools/ToolNCC.py:552 AppTools/ToolPaint.py:495 -msgid "Ref. Type" -msgstr "Tipo riferimento" - -#: AppTools/ToolCopperThieving.py:144 -msgid "" -"The type of FlatCAM object to be used as copper thieving reference.\n" -"It can be Gerber, Excellon or Geometry." -msgstr "" -"Il tipo di oggetto FlatCAM da utilizzare come riferimento Copper Thieving.\n" -"Può essere Gerber, Excellon o Geometry." - -#: AppTools/ToolCopperThieving.py:153 AppTools/ToolIsolation.py:522 -#: AppTools/ToolNCC.py:562 AppTools/ToolPaint.py:505 -msgid "Ref. Object" -msgstr "Oggetto di riferimento" - -#: AppTools/ToolCopperThieving.py:155 AppTools/ToolIsolation.py:524 -#: AppTools/ToolNCC.py:564 AppTools/ToolPaint.py:507 -msgid "The FlatCAM object to be used as non copper clearing reference." -msgstr "Oggetto FlatCAM da usare come riferimento rimozione rame." - -#: AppTools/ToolCopperThieving.py:331 -msgid "Insert Copper thieving" -msgstr "Inserire il Copper Thieving" - -#: AppTools/ToolCopperThieving.py:333 -msgid "" -"Will add a polygon (may be split in multiple parts)\n" -"that will surround the actual Gerber traces at a certain distance." -msgstr "" -"Aggiungerà un poligono (può essere diviso in più parti)\n" -"che circonderà le tracce Gerber attuali ad una certa distanza." - -#: AppTools/ToolCopperThieving.py:392 -msgid "Insert Robber Bar" -msgstr "Inserisci la barra del ladro" - -#: AppTools/ToolCopperThieving.py:394 -msgid "" -"Will add a polygon with a defined thickness\n" -"that will surround the actual Gerber object\n" -"at a certain distance.\n" -"Required when doing holes pattern plating." -msgstr "" -"Aggiungerà un poligono con uno spessore definito\n" -"che circonderà l'oggetto Gerber reale\n" -"ad una certa distanza.\n" -"Richiesto quando si esegue la placcatura di fori." - -#: AppTools/ToolCopperThieving.py:418 -msgid "Select Soldermask object" -msgstr "Seleziona oggetto Soldermask" - -#: AppTools/ToolCopperThieving.py:420 -msgid "" -"Gerber Object with the soldermask.\n" -"It will be used as a base for\n" -"the pattern plating mask." -msgstr "" -"Oggetto Gerber con il soldermask.\n" -"Sarà usato come base per\n" -"la maschera di placcatura del modello." - -#: AppTools/ToolCopperThieving.py:449 -msgid "Plated area" -msgstr "Area ricoperta" - -#: AppTools/ToolCopperThieving.py:451 -msgid "" -"The area to be plated by pattern plating.\n" -"Basically is made from the openings in the plating mask.\n" -"\n" -"<> - the calculated area is actually a bit larger\n" -"due of the fact that the soldermask openings are by design\n" -"a bit larger than the copper pads, and this area is\n" -"calculated from the soldermask openings." -msgstr "" -"L'area da ricoprire mediante placcatura a motivo.\n" -"Fondamentalmente è fatto dalle aperture nella maschera di placcatura.\n" -"\n" -"<>: l'area calcolata è in realtà un po' più grande\n" -"a causa del fatto che le aperture del soldermask sono progettate\n" -"un po' più grandi dei pad di rame, e questa area è\n" -"calcolata dalle aperture del soldermask." - -#: AppTools/ToolCopperThieving.py:462 -msgid "mm" -msgstr "mm" - -#: AppTools/ToolCopperThieving.py:464 -msgid "in" -msgstr "pollici" - -#: AppTools/ToolCopperThieving.py:471 -msgid "Generate pattern plating mask" -msgstr "Genera maschera placcatura modello" - -#: AppTools/ToolCopperThieving.py:473 -msgid "" -"Will add to the soldermask gerber geometry\n" -"the geometries of the copper thieving and/or\n" -"the robber bar if those were generated." -msgstr "" -"Aggiungerà alla geometria gerber soldermask\n" -"le geometrie del deposito di rame e/o\n" -"la barra dei ladri se sono stati generati." - -#: AppTools/ToolCopperThieving.py:629 AppTools/ToolCopperThieving.py:654 -msgid "Lines Grid works only for 'itself' reference ..." -msgstr "Griglia linee funziona solo per riferimento 'stesso' ..." - -#: AppTools/ToolCopperThieving.py:640 -msgid "Solid fill selected." -msgstr "Riempimento solido selezionato." - -#: AppTools/ToolCopperThieving.py:645 -msgid "Dots grid fill selected." -msgstr "Riempimento griglia di punti selezionata." - -#: AppTools/ToolCopperThieving.py:650 -msgid "Squares grid fill selected." -msgstr "Riempimento griglia di quadrati selezionata." - -#: AppTools/ToolCopperThieving.py:671 AppTools/ToolCopperThieving.py:753 -#: AppTools/ToolCopperThieving.py:1355 AppTools/ToolCorners.py:268 -#: AppTools/ToolDblSided.py:657 AppTools/ToolExtractDrills.py:436 -#: AppTools/ToolFiducials.py:470 AppTools/ToolFiducials.py:747 -#: AppTools/ToolOptimal.py:348 AppTools/ToolPunchGerber.py:512 -#: AppTools/ToolQRCode.py:435 -msgid "There is no Gerber object loaded ..." -msgstr "Non ci sono oggetti Gerber caricati ..." - -#: AppTools/ToolCopperThieving.py:684 AppTools/ToolCopperThieving.py:1283 -msgid "Append geometry" -msgstr "Aggiungi geometria" - -#: AppTools/ToolCopperThieving.py:728 AppTools/ToolCopperThieving.py:1316 -#: AppTools/ToolCopperThieving.py:1469 -msgid "Append source file" -msgstr "Aggiungi file sorgente" - -#: AppTools/ToolCopperThieving.py:736 AppTools/ToolCopperThieving.py:1324 -msgid "Copper Thieving Tool done." -msgstr "Strumento Copper Thieving fatto." - -#: AppTools/ToolCopperThieving.py:763 AppTools/ToolCopperThieving.py:796 -#: AppTools/ToolCutOut.py:556 AppTools/ToolCutOut.py:761 -#: AppTools/ToolEtchCompensation.py:360 AppTools/ToolInvertGerber.py:211 -#: AppTools/ToolIsolation.py:1585 AppTools/ToolIsolation.py:1612 -#: AppTools/ToolNCC.py:1617 AppTools/ToolNCC.py:1661 AppTools/ToolNCC.py:1690 -#: AppTools/ToolPaint.py:1493 AppTools/ToolPanelize.py:423 -#: AppTools/ToolPanelize.py:437 AppTools/ToolSub.py:295 AppTools/ToolSub.py:308 -#: AppTools/ToolSub.py:499 AppTools/ToolSub.py:514 -#: tclCommands/TclCommandCopperClear.py:97 tclCommands/TclCommandPaint.py:99 -msgid "Could not retrieve object" -msgstr "Impossibile recuperare l'oggetto" - -#: AppTools/ToolCopperThieving.py:773 AppTools/ToolIsolation.py:1672 -#: AppTools/ToolNCC.py:1669 Common.py:210 -msgid "Click the start point of the area." -msgstr "Fai clic sul punto iniziale dell'area." - -#: AppTools/ToolCopperThieving.py:824 -msgid "Click the end point of the filling area." -msgstr "Fai clic sul punto finale dell'area di riempimento." - -#: AppTools/ToolCopperThieving.py:830 AppTools/ToolIsolation.py:2504 -#: AppTools/ToolIsolation.py:2556 AppTools/ToolNCC.py:1731 -#: AppTools/ToolNCC.py:1783 AppTools/ToolPaint.py:1625 -#: AppTools/ToolPaint.py:1676 Common.py:275 Common.py:377 -msgid "Zone added. Click to start adding next zone or right click to finish." -msgstr "" -"Zona aggiunta. Fare clic per iniziare ad aggiungere la zona successiva o " -"fare clic con il tasto destro per terminare." - -#: AppTools/ToolCopperThieving.py:952 AppTools/ToolCopperThieving.py:956 -#: AppTools/ToolCopperThieving.py:1017 -msgid "Thieving" -msgstr "Deposito" - -#: AppTools/ToolCopperThieving.py:963 -msgid "Copper Thieving Tool started. Reading parameters." -msgstr "Strumento Copper Thieving avviato. Lettura dei parametri." - -#: AppTools/ToolCopperThieving.py:988 -msgid "Copper Thieving Tool. Preparing isolation polygons." -msgstr "" -"Strumento Copper Thieving avviato. Preparazione poligoni di isolamento." - -#: AppTools/ToolCopperThieving.py:1033 -msgid "Copper Thieving Tool. Preparing areas to fill with copper." -msgstr "" -"Strumento Copper Thieving avviato. Preparazione aree da riempire di rame." - -#: AppTools/ToolCopperThieving.py:1044 AppTools/ToolOptimal.py:355 -#: AppTools/ToolPanelize.py:810 AppTools/ToolRulesCheck.py:1127 -msgid "Working..." -msgstr "Elaborazione..." - -#: AppTools/ToolCopperThieving.py:1071 -msgid "Geometry not supported for bounding box" -msgstr "Geometria non supportata per box di selezione" - -#: AppTools/ToolCopperThieving.py:1077 AppTools/ToolNCC.py:1962 -#: AppTools/ToolNCC.py:2017 AppTools/ToolNCC.py:3052 AppTools/ToolPaint.py:3405 -msgid "No object available." -msgstr "Nessun oggetto disponibile." - -#: AppTools/ToolCopperThieving.py:1114 AppTools/ToolNCC.py:1987 -#: AppTools/ToolNCC.py:2040 AppTools/ToolNCC.py:3094 -msgid "The reference object type is not supported." -msgstr "Il tipo di oggetto di riferimento non è supportato." - -#: AppTools/ToolCopperThieving.py:1119 -msgid "Copper Thieving Tool. Appending new geometry and buffering." -msgstr "Strumento Copper Thieving. Aggiunta di nuova geometria e buffering." - -#: AppTools/ToolCopperThieving.py:1135 -msgid "Create geometry" -msgstr "Crea geometria" - -#: AppTools/ToolCopperThieving.py:1335 AppTools/ToolCopperThieving.py:1339 -msgid "P-Plating Mask" -msgstr "Maskera P-Placatura" - -#: AppTools/ToolCopperThieving.py:1361 -msgid "Append PP-M geometry" -msgstr "Aggiunta geometria maschera placatura" - -#: AppTools/ToolCopperThieving.py:1487 -msgid "Generating Pattern Plating Mask done." -msgstr "Generazione maschera Placatura eseguita." - -#: AppTools/ToolCopperThieving.py:1559 -msgid "Copper Thieving Tool exit." -msgstr "Chiudi strumento Copper Thieving." - -#: AppTools/ToolCorners.py:57 -#, fuzzy -#| msgid "Gerber Object to which will be added a copper thieving." -msgid "The Gerber object to which will be added corner markers." -msgstr "Oggetto Gerber a cui verrà aggiunto rame." - -#: AppTools/ToolCorners.py:73 -#, fuzzy -#| msgid "Location" -msgid "Locations" -msgstr "Locazione" - -#: AppTools/ToolCorners.py:75 -msgid "Locations where to place corner markers." -msgstr "" - -#: AppTools/ToolCorners.py:92 AppTools/ToolFiducials.py:95 -msgid "Top Right" -msgstr "Alto destra" - -#: AppTools/ToolCorners.py:101 -#, fuzzy -#| msgid "Toggle Panel" -msgid "Toggle ALL" -msgstr "Attiva / disattiva pannello" - -#: AppTools/ToolCorners.py:167 -#, fuzzy -#| msgid "Add keyword" -msgid "Add Marker" -msgstr "Aggiungi parola chiave" - -#: AppTools/ToolCorners.py:169 -msgid "Will add corner markers to the selected Gerber file." -msgstr "" - -#: AppTools/ToolCorners.py:235 -#, fuzzy -#| msgid "QRCode Tool" -msgid "Corners Tool" -msgstr "Strumento QRCode" - -#: AppTools/ToolCorners.py:305 -msgid "Please select at least a location" -msgstr "" - -#: AppTools/ToolCorners.py:440 -#, fuzzy -#| msgid "Copper Thieving Tool exit." -msgid "Corners Tool exit." -msgstr "Chiudi strumento Copper Thieving." - -#: AppTools/ToolCutOut.py:41 -msgid "Cutout PCB" -msgstr "Taglia PCB" - -#: AppTools/ToolCutOut.py:69 AppTools/ToolPanelize.py:53 -msgid "Source Object" -msgstr "Oggetto sorgente" - -#: AppTools/ToolCutOut.py:70 -msgid "Object to be cutout" -msgstr "Oggetto da tagliare" - -#: AppTools/ToolCutOut.py:75 -msgid "Kind" -msgstr "Tipo" - -#: AppTools/ToolCutOut.py:97 -msgid "" -"Specify the type of object to be cutout.\n" -"It can be of type: Gerber or Geometry.\n" -"What is selected here will dictate the kind\n" -"of objects that will populate the 'Object' combobox." -msgstr "" -"Specificare il tipo di oggetto da ritagliare.\n" -"Può essere di tipo: Gerber o Geometria.\n" -"Ciò che è selezionato qui detterà il tipo\n" -"di oggetti che popoleranno la casella combinata 'Oggetto'." - -#: AppTools/ToolCutOut.py:121 -msgid "Tool Parameters" -msgstr "Parametri Utensile" - -#: AppTools/ToolCutOut.py:238 -msgid "A. Automatic Bridge Gaps" -msgstr "A. Testimoni automatici" - -#: AppTools/ToolCutOut.py:240 -msgid "This section handle creation of automatic bridge gaps." -msgstr "Questa sezione gestisce la creazione di testimoni automatici." - -#: AppTools/ToolCutOut.py:247 -msgid "" -"Number of gaps used for the Automatic cutout.\n" -"There can be maximum 8 bridges/gaps.\n" -"The choices are:\n" -"- None - no gaps\n" -"- lr - left + right\n" -"- tb - top + bottom\n" -"- 4 - left + right +top + bottom\n" -"- 2lr - 2*left + 2*right\n" -"- 2tb - 2*top + 2*bottom\n" -"- 8 - 2*left + 2*right +2*top + 2*bottom" -msgstr "" -"Numero di spazi utilizzati per il ritaglio automatico.\n" -"Possono esserci al massimo 8 ponti/spazi vuoti.\n" -"Le scelte sono:\n" -"- Nessuna - nessuna lacuna\n" -"- SD - sinistra + destra\n" -"- AB - alto + basso\n" -"- 4 - sinistra + destra + sopra + sotto\n" -"- 2SD - 2 * sinistra + 2 * destra\n" -"- 2AB - 2 * in alto + 2 * in basso\n" -"- 8 - 2 * sinistra + 2 * destra + 2 * in alto + 2 * in basso" - -#: AppTools/ToolCutOut.py:269 -msgid "Generate Freeform Geometry" -msgstr "Genera geometria a forma libera" - -#: AppTools/ToolCutOut.py:271 -msgid "" -"Cutout the selected object.\n" -"The cutout shape can be of any shape.\n" -"Useful when the PCB has a non-rectangular shape." -msgstr "" -"Ritaglia l'oggetto selezionato.\n" -"La forma del ritaglio può essere di qualsiasi forma.\n" -"Utile quando il PCB ha una forma non rettangolare." - -#: AppTools/ToolCutOut.py:283 -msgid "Generate Rectangular Geometry" -msgstr "Genera geometria rettangolare" - -#: AppTools/ToolCutOut.py:285 -msgid "" -"Cutout the selected object.\n" -"The resulting cutout shape is\n" -"always a rectangle shape and it will be\n" -"the bounding box of the Object." -msgstr "" -"Ritaglia l'oggetto selezionato.\n" -"La forma di ritaglio risultante è\n" -"sempre una forma rettangolare e sarà\n" -"rettangolare anche la selezione dell'oggetto." - -#: AppTools/ToolCutOut.py:304 -msgid "B. Manual Bridge Gaps" -msgstr "B. Testimoni manuali" - -#: AppTools/ToolCutOut.py:306 -msgid "" -"This section handle creation of manual bridge gaps.\n" -"This is done by mouse clicking on the perimeter of the\n" -"Geometry object that is used as a cutout object. " -msgstr "" -"Questa sezione gestisce la creazione di testimoni manuali.\n" -"Questo viene fatto facendo clic con il mouse sul perimetro\n" -"dell'oggetto Geometria utilizzato come oggetto ritaglio. " - -#: AppTools/ToolCutOut.py:321 -msgid "Geometry object used to create the manual cutout." -msgstr "Oggetto geometria utilizzato per creare il ritaglio manuale." - -#: AppTools/ToolCutOut.py:328 -msgid "Generate Manual Geometry" -msgstr "Genera geometria manuale" - -#: AppTools/ToolCutOut.py:330 -msgid "" -"If the object to be cutout is a Gerber\n" -"first create a Geometry that surrounds it,\n" -"to be used as the cutout, if one doesn't exist yet.\n" -"Select the source Gerber file in the top object combobox." -msgstr "" -"Se l'oggetto da ritagliare è un Gerber\n" -"prima crea una Geometria che la circondi,\n" -"da usare come ritaglio, se non ne esiste ancora uno.\n" -"Seleziona il file Gerber di origine nel box in alto." - -#: AppTools/ToolCutOut.py:343 -msgid "Manual Add Bridge Gaps" -msgstr "Aggiungi testimoni manualmente" - -#: AppTools/ToolCutOut.py:345 -msgid "" -"Use the left mouse button (LMB) click\n" -"to create a bridge gap to separate the PCB from\n" -"the surrounding material.\n" -"The LMB click has to be done on the perimeter of\n" -"the Geometry object used as a cutout geometry." -msgstr "" -"Utilizzare il pulsante sinistro del mouse (PSM)\n" -"per creare un gap ponte da cui separare il PCB\n" -"dal materiale circostante (testimone).\n" -"Il clic PMS deve essere eseguito sul perimetro\n" -"dell'oggetto geometria utilizzato come geometria di ritaglio." - -#: AppTools/ToolCutOut.py:561 -msgid "" -"There is no object selected for Cutout.\n" -"Select one and try again." -msgstr "" -"Nessun oggetto selezionato per Ritaglio.\n" -"Selezionane uno e riprova." - -#: AppTools/ToolCutOut.py:567 AppTools/ToolCutOut.py:770 -#: AppTools/ToolCutOut.py:951 AppTools/ToolCutOut.py:1033 -#: tclCommands/TclCommandGeoCutout.py:184 -msgid "Tool Diameter is zero value. Change it to a positive real number." -msgstr "" -"Il diametro dell'utensile ha valore zero. Modificalo in un numero reale " -"positivo." - -#: AppTools/ToolCutOut.py:581 AppTools/ToolCutOut.py:785 -msgid "Number of gaps value is missing. Add it and retry." -msgstr "Manca il numero dei testimoni. Aggiungilo e riprova." - -#: AppTools/ToolCutOut.py:586 AppTools/ToolCutOut.py:789 -msgid "" -"Gaps value can be only one of: 'None', 'lr', 'tb', '2lr', '2tb', 4 or 8. " -"Fill in a correct value and retry. " -msgstr "" -"Il valore dei testimoni può essere solo uno dei seguenti: 'Nessuno', 'SD', " -"'SS', '2SD', '2SS', 4 o 8. Inserire un valore corretto e riprovare. " - -#: AppTools/ToolCutOut.py:591 AppTools/ToolCutOut.py:795 -msgid "" -"Cutout operation cannot be done on a multi-geo Geometry.\n" -"Optionally, this Multi-geo Geometry can be converted to Single-geo " -"Geometry,\n" -"and after that perform Cutout." -msgstr "" -"L'operazione di ritaglio non può essere eseguita su una geometria multi-" -"geo.\n" -"Opzionalmente, questa geometria multi-geo può essere convertita in geometria " -"single-geo,\n" -"e successivamente esegui il ritaglio." - -#: AppTools/ToolCutOut.py:743 AppTools/ToolCutOut.py:940 -msgid "Any form CutOut operation finished." -msgstr "Tutti i task di CutOut terminati." - -#: AppTools/ToolCutOut.py:765 AppTools/ToolEtchCompensation.py:366 -#: AppTools/ToolInvertGerber.py:217 AppTools/ToolIsolation.py:1589 -#: AppTools/ToolIsolation.py:1616 AppTools/ToolNCC.py:1621 -#: AppTools/ToolPaint.py:1416 AppTools/ToolPanelize.py:428 -#: tclCommands/TclCommandBbox.py:71 tclCommands/TclCommandNregions.py:71 -msgid "Object not found" -msgstr "Oggetto non trovato" - -#: AppTools/ToolCutOut.py:909 -msgid "Rectangular cutout with negative margin is not possible." -msgstr "Ritaglio rettangolare con margine negativo non possibile." - -#: AppTools/ToolCutOut.py:945 -msgid "" -"Click on the selected geometry object perimeter to create a bridge gap ..." -msgstr "" -"Fare clic sul perimetro dell'oggetto geometria selezionato per creare uno " -"spazio tra i testimoni ..." - -#: AppTools/ToolCutOut.py:962 AppTools/ToolCutOut.py:988 -msgid "Could not retrieve Geometry object" -msgstr "Impossibile recuperare l'oggetto Geometry" - -#: AppTools/ToolCutOut.py:993 -msgid "Geometry object for manual cutout not found" -msgstr "Oggetto Geometria per ritaglio manuale non trovato" - -#: AppTools/ToolCutOut.py:1003 -msgid "Added manual Bridge Gap." -msgstr "Aggiunti testimoni manualmente." - -#: AppTools/ToolCutOut.py:1015 -msgid "Could not retrieve Gerber object" -msgstr "Impossibile recuperare l'oggetto Gerber" - -#: AppTools/ToolCutOut.py:1020 -msgid "" -"There is no Gerber object selected for Cutout.\n" -"Select one and try again." -msgstr "" -"Non è stato selezionato alcun oggetto Gerber per il Ritaglio.\n" -"Selezionane uno e riprova." - -#: AppTools/ToolCutOut.py:1026 -msgid "" -"The selected object has to be of Gerber type.\n" -"Select a Gerber file and try again." -msgstr "" -"L'oggetto selezionato deve essere di tipo Gerber.\n" -"Seleziona un file Gerber e riprova." - -#: AppTools/ToolCutOut.py:1061 -msgid "Geometry not supported for cutout" -msgstr "Geometria non supportata per il ritaglio" - -#: AppTools/ToolCutOut.py:1136 -msgid "Making manual bridge gap..." -msgstr "Creare un testimone manualmente ..." - -#: AppTools/ToolDblSided.py:26 -msgid "2-Sided PCB" -msgstr "PCB doppia faccia" - -#: AppTools/ToolDblSided.py:52 -msgid "Mirror Operation" -msgstr "Operazione Specchio" - -#: AppTools/ToolDblSided.py:53 -msgid "Objects to be mirrored" -msgstr "Oggetto da specchiare" - -#: AppTools/ToolDblSided.py:65 -msgid "Gerber to be mirrored" -msgstr "Gerber da specchiare" - -#: AppTools/ToolDblSided.py:69 AppTools/ToolDblSided.py:97 -#: AppTools/ToolDblSided.py:127 -msgid "" -"Mirrors (flips) the specified object around \n" -"the specified axis. Does not create a new \n" -"object, but modifies it." -msgstr "" -"Specchia (capovolge) l'oggetto specificato attorno\n" -"l'asse specificato. Non crea un nuovo oggetto,\n" -"ma lo modifica." - -#: AppTools/ToolDblSided.py:93 -msgid "Excellon Object to be mirrored." -msgstr "Oggetto Excellon da specchiare." - -#: AppTools/ToolDblSided.py:122 -msgid "Geometry Obj to be mirrored." -msgstr "Oggetto Geometria da specchiare." - -#: AppTools/ToolDblSided.py:158 -msgid "Mirror Parameters" -msgstr "Parametri specchio" - -#: AppTools/ToolDblSided.py:159 -msgid "Parameters for the mirror operation" -msgstr "Parametri per l'operazione specchio" - -#: AppTools/ToolDblSided.py:164 -msgid "Mirror Axis" -msgstr "Asse di Specchio" - -#: AppTools/ToolDblSided.py:175 -msgid "" -"The coordinates used as reference for the mirror operation.\n" -"Can be:\n" -"- Point -> a set of coordinates (x,y) around which the object is mirrored\n" -"- Box -> a set of coordinates (x, y) obtained from the center of the\n" -"bounding box of another object selected below" -msgstr "" -"Coordinate utilizzate come riferimento per l'operazione specchio.\n" -"Può essere:\n" -"- Punto -> un insieme di coordinate (x,y) attorno alle quali l'oggetto viene " -"specchiato\n" -"- Riquadro -> un insieme di coordinate (x,y) ottenute dal centro della\n" -"riquadro di selezione di un altro oggetto selezionato sotto" - -#: AppTools/ToolDblSided.py:189 -msgid "Point coordinates" -msgstr "Coordinate punto" - -#: AppTools/ToolDblSided.py:194 -msgid "" -"Add the coordinates in format (x, y) through which the mirroring " -"axis\n" -" selected in 'MIRROR AXIS' pass.\n" -"The (x, y) coordinates are captured by pressing SHIFT key\n" -"and left mouse button click on canvas or you can enter the coordinates " -"manually." -msgstr "" -"Aggiungi le coordinate nel formato (x, y) attraverso le quali passa " -"l'asse di\n" -" mirroring in \"ASSE SPECCHIO\".\n" -"Le coordinate (x, y) vengono acquisite premendo il tasto SHIFT\n" -"e con il clic sinistro del mouse oppure inserite manualmente." - -#: AppTools/ToolDblSided.py:218 -msgid "" -"It can be of type: Gerber or Excellon or Geometry.\n" -"The coordinates of the center of the bounding box are used\n" -"as reference for mirror operation." -msgstr "" -"Può essere di tipo: Gerber o Excellon o Geometry.\n" -"Le coordinate del centro del rettangolo di selezione vengono usate\n" -"come riferimento per l'operazione di specchio." - -#: AppTools/ToolDblSided.py:252 -msgid "Bounds Values" -msgstr "Valori limite" - -#: AppTools/ToolDblSided.py:254 -msgid "" -"Select on canvas the object(s)\n" -"for which to calculate bounds values." -msgstr "" -"Seleziona dal disegno l'oggetto(i)\n" -"per i quali calcolare i valori limite." - -#: AppTools/ToolDblSided.py:264 -msgid "X min" -msgstr "X min" - -#: AppTools/ToolDblSided.py:266 AppTools/ToolDblSided.py:280 -msgid "Minimum location." -msgstr "Locazione minima." - -#: AppTools/ToolDblSided.py:278 -msgid "Y min" -msgstr "Y min" - -#: AppTools/ToolDblSided.py:292 -msgid "X max" -msgstr "X max" - -#: AppTools/ToolDblSided.py:294 AppTools/ToolDblSided.py:308 -msgid "Maximum location." -msgstr "Locazione massima." - -#: AppTools/ToolDblSided.py:306 -msgid "Y max" -msgstr "Y max" - -#: AppTools/ToolDblSided.py:317 -msgid "Center point coordinates" -msgstr "Coordinate punto centrale" - -#: AppTools/ToolDblSided.py:319 -msgid "Centroid" -msgstr "Centroide" - -#: AppTools/ToolDblSided.py:321 -msgid "" -"The center point location for the rectangular\n" -"bounding shape. Centroid. Format is (x, y)." -msgstr "" -"La posizione del punto centrale per il box delimitante\n" -"rettangolare. Centroide. Il formato è (x, y)." - -#: AppTools/ToolDblSided.py:330 -msgid "Calculate Bounds Values" -msgstr "Calcola i valori dei limiti" - -#: AppTools/ToolDblSided.py:332 -msgid "" -"Calculate the enveloping rectangular shape coordinates,\n" -"for the selection of objects.\n" -"The envelope shape is parallel with the X, Y axis." -msgstr "" -"Calcola le coordinate che avvolgano in forma rettangolare,\n" -"per la selezione di oggetti.\n" -"La forma dell'inviluppo è parallela all'asse X, Y." - -#: AppTools/ToolDblSided.py:352 -msgid "PCB Alignment" -msgstr "Allineamento PCB" - -#: AppTools/ToolDblSided.py:354 AppTools/ToolDblSided.py:456 -msgid "" -"Creates an Excellon Object containing the\n" -"specified alignment holes and their mirror\n" -"images." -msgstr "" -"Crea un oggetto Excellon contenente i\n" -"fori di allineamento specificati e la loro\n" -"relativa immagine speculare." - -#: AppTools/ToolDblSided.py:361 -msgid "Drill Diameter" -msgstr "Diametro punta" - -#: AppTools/ToolDblSided.py:390 AppTools/ToolDblSided.py:397 -msgid "" -"The reference point used to create the second alignment drill\n" -"from the first alignment drill, by doing mirror.\n" -"It can be modified in the Mirror Parameters -> Reference section" -msgstr "" -"Il punto di riferimento utilizzato per creare il secondo foro di " -"allineamento\n" -"dal primo foro, facendone la copia speculare.\n" -"Può essere modificato nella sezione Parametri specchio -> Riferimento" - -#: AppTools/ToolDblSided.py:410 -msgid "Alignment Drill Coordinates" -msgstr "Coordinate fori di allineamento" - -#: AppTools/ToolDblSided.py:412 -msgid "" -"Alignment holes (x1, y1), (x2, y2), ... on one side of the mirror axis. For " -"each set of (x, y) coordinates\n" -"entered here, a pair of drills will be created:\n" -"\n" -"- one drill at the coordinates from the field\n" -"- one drill in mirror position over the axis selected above in the 'Align " -"Axis'." -msgstr "" -"Fori di allineamento (x1, y1), (x2, y2), ... su un lato dell'asse dello " -"specchio. Per ogni set di coordinate (x, y)\n" -"qui inserite, verrà creata una coppia di fori:\n" -"\n" -"- un foro alle coordinate dal campo\n" -"- un foro in posizione speculare sull'asse selezionato sopra in 'asse " -"specchio'." - -#: AppTools/ToolDblSided.py:420 -msgid "Drill coordinates" -msgstr "Coordinate fori" - -#: AppTools/ToolDblSided.py:427 -msgid "" -"Add alignment drill holes coordinates in the format: (x1, y1), (x2, " -"y2), ... \n" -"on one side of the alignment axis.\n" -"\n" -"The coordinates set can be obtained:\n" -"- press SHIFT key and left mouse clicking on canvas. Then click Add.\n" -"- press SHIFT key and left mouse clicking on canvas. Then Ctrl+V in the " -"field.\n" -"- press SHIFT key and left mouse clicking on canvas. Then RMB click in the " -"field and click Paste.\n" -"- by entering the coords manually in the format: (x1, y1), (x2, y2), ..." -msgstr "" -"Aggiungi i cordoncini di fori di allineamento nel formato: (x1, y1), (x2, " -"y2), ...\n" -"su un lato dell'asse dello specchio.\n" -"\n" -"Le coordinate impostate possono essere ottenute:\n" -"- premi il tasto SHIFT e fai clic con il tasto sinistro del mouse. Quindi " -"fai clic su Aggiungi.\n" -"- premi il tasto SHIFT e fai clic con il tasto sinistro del mouse. Quindi " -"Ctrl+V nel campo.\n" -"- premi il tasto SHIFT e fai clic con il tasto sinistro del mouse. Quindi " -"col pulsante destro nel campo e fai clic su Incolla.\n" -"- inserendo manualmente le coordinate nel formato: (x1, y1), (x2, y2), ..." - -#: AppTools/ToolDblSided.py:442 -msgid "Delete Last" -msgstr "Cancella ultimo" - -#: AppTools/ToolDblSided.py:444 -msgid "Delete the last coordinates tuple in the list." -msgstr "Cancella l'ultima tupla di coordinate dalla lista." - -#: AppTools/ToolDblSided.py:454 -msgid "Create Excellon Object" -msgstr "Creao oggetto Excellon" - -#: AppTools/ToolDblSided.py:541 -msgid "2-Sided Tool" -msgstr "Strumento doppia faccia" - -#: AppTools/ToolDblSided.py:581 -msgid "" -"'Point' reference is selected and 'Point' coordinates are missing. Add them " -"and retry." -msgstr "" -"'Punto' riferimento selezionato ma coordinate 'Punto' mancanti. Aggiungile e " -"riprova." - -#: AppTools/ToolDblSided.py:600 -msgid "There is no Box reference object loaded. Load one and retry." -msgstr "" -"Non è stato caricato alcun oggetto di riferimento Box. Caricare uno e " -"riprovare." - -#: AppTools/ToolDblSided.py:612 -msgid "No value or wrong format in Drill Dia entry. Add it and retry." -msgstr "" -"Nessun valore o formato errato nella voce Diametro Fori. Aggiungilo e " -"riprova." - -#: AppTools/ToolDblSided.py:623 -msgid "There are no Alignment Drill Coordinates to use. Add them and retry." -msgstr "" -"Non ci sono coordinate per i fori di allineamento da usare. Aggiungili e " -"riprova." - -#: AppTools/ToolDblSided.py:648 -msgid "Excellon object with alignment drills created..." -msgstr "Oggetto Excellon con i fori di allineamento creati ..." - -#: AppTools/ToolDblSided.py:661 AppTools/ToolDblSided.py:704 -#: AppTools/ToolDblSided.py:748 -msgid "Only Gerber, Excellon and Geometry objects can be mirrored." -msgstr "Possono essere specchiati solo oggetti Gerber, Excellon e Geometry." - -#: AppTools/ToolDblSided.py:671 AppTools/ToolDblSided.py:715 -msgid "" -"There are no Point coordinates in the Point field. Add coords and try " -"again ..." -msgstr "" -"Non ci sono coordinate Punto nel campo Punto. Aggiungi corde e riprova ..." - -#: AppTools/ToolDblSided.py:681 AppTools/ToolDblSided.py:725 -#: AppTools/ToolDblSided.py:762 -msgid "There is no Box object loaded ..." -msgstr "Nessun oggetto contenitore caricato ..." - -#: AppTools/ToolDblSided.py:691 AppTools/ToolDblSided.py:735 -#: AppTools/ToolDblSided.py:772 -msgid "was mirrored" -msgstr "è stato specchiato" - -#: AppTools/ToolDblSided.py:700 AppTools/ToolPunchGerber.py:533 -msgid "There is no Excellon object loaded ..." -msgstr "Nessun oggetto Excellon caricato ..." - -#: AppTools/ToolDblSided.py:744 -msgid "There is no Geometry object loaded ..." -msgstr "Nessun oggetto Geometria caricato ..." - -#: AppTools/ToolDblSided.py:818 App_Main.py:4350 App_Main.py:4505 -msgid "Failed. No object(s) selected..." -msgstr "Errore. Nessun oggetto selezionato..." - -#: AppTools/ToolDistance.py:57 AppTools/ToolDistanceMin.py:50 -msgid "Those are the units in which the distance is measured." -msgstr "Quelle sono le unità in cui viene misurata la distanza." - -#: AppTools/ToolDistance.py:58 AppTools/ToolDistanceMin.py:51 -msgid "METRIC (mm)" -msgstr "METRICA (mm)" - -#: AppTools/ToolDistance.py:58 AppTools/ToolDistanceMin.py:51 -msgid "INCH (in)" -msgstr "POLLICI (in)" - -#: AppTools/ToolDistance.py:64 -msgid "Snap to center" -msgstr "Aggancia al centro" - -#: AppTools/ToolDistance.py:66 -msgid "" -"Mouse cursor will snap to the center of the pad/drill\n" -"when it is hovering over the geometry of the pad/drill." -msgstr "" -"Il cursore del mouse si posizionerà al centro del pad/foro\n" -"quando passa sopra la geometria del pad/foro." - -#: AppTools/ToolDistance.py:76 -msgid "Start Coords" -msgstr "Coordinate di partenza" - -#: AppTools/ToolDistance.py:77 AppTools/ToolDistance.py:82 -msgid "This is measuring Start point coordinates." -msgstr "Questo sta misurando le coordinate del punto iniziale." - -#: AppTools/ToolDistance.py:87 -msgid "Stop Coords" -msgstr "Coordinate di stop" - -#: AppTools/ToolDistance.py:88 AppTools/ToolDistance.py:93 -msgid "This is the measuring Stop point coordinates." -msgstr "Queste sono le coordinate del punto di arresto di misurazione." - -#: AppTools/ToolDistance.py:98 AppTools/ToolDistanceMin.py:62 -msgid "Dx" -msgstr "Dx" - -#: AppTools/ToolDistance.py:99 AppTools/ToolDistance.py:104 -#: AppTools/ToolDistanceMin.py:63 AppTools/ToolDistanceMin.py:92 -msgid "This is the distance measured over the X axis." -msgstr "Questa è la distanza misurata sull'asse X." - -#: AppTools/ToolDistance.py:109 AppTools/ToolDistanceMin.py:65 -msgid "Dy" -msgstr "Dy" - -#: AppTools/ToolDistance.py:110 AppTools/ToolDistance.py:115 -#: AppTools/ToolDistanceMin.py:66 AppTools/ToolDistanceMin.py:97 -msgid "This is the distance measured over the Y axis." -msgstr "Questa è la distanza misurata sull'asse Y." - -#: AppTools/ToolDistance.py:121 AppTools/ToolDistance.py:126 -#: AppTools/ToolDistanceMin.py:69 AppTools/ToolDistanceMin.py:102 -msgid "This is orientation angle of the measuring line." -msgstr "Questo è l'angolo di orientamento della linea di misurazione." - -#: AppTools/ToolDistance.py:131 AppTools/ToolDistanceMin.py:71 -msgid "DISTANCE" -msgstr "DISTANZA" - -#: AppTools/ToolDistance.py:132 AppTools/ToolDistance.py:137 -msgid "This is the point to point Euclidian distance." -msgstr "Questo è il punto per indicare la distanza euclidea." - -#: AppTools/ToolDistance.py:142 AppTools/ToolDistance.py:339 -#: AppTools/ToolDistanceMin.py:114 -msgid "Measure" -msgstr "Misura" - -#: AppTools/ToolDistance.py:274 -msgid "Working" -msgstr "Elaborazione" - -#: AppTools/ToolDistance.py:279 -msgid "MEASURING: Click on the Start point ..." -msgstr "MISURA: clicca sul punto di origine ..." - -#: AppTools/ToolDistance.py:389 -msgid "Distance Tool finished." -msgstr "Strumento Distanza completato." - -#: AppTools/ToolDistance.py:461 -msgid "Pads overlapped. Aborting." -msgstr "Pad sovrapposti. Annullo." - -#: AppTools/ToolDistance.py:489 -#, fuzzy -#| msgid "Distance Tool finished." -msgid "Distance Tool cancelled." -msgstr "Strumento Distanza completato." - -#: AppTools/ToolDistance.py:494 -msgid "MEASURING: Click on the Destination point ..." -msgstr "MISURA: clicca sul punto di destinazione ..." - -#: AppTools/ToolDistance.py:503 AppTools/ToolDistanceMin.py:284 -msgid "MEASURING" -msgstr "MISURA" - -#: AppTools/ToolDistance.py:504 AppTools/ToolDistanceMin.py:285 -msgid "Result" -msgstr "Risultato" - -#: AppTools/ToolDistanceMin.py:31 AppTools/ToolDistanceMin.py:143 -msgid "Minimum Distance Tool" -msgstr "Strumento distanza minima" - -#: AppTools/ToolDistanceMin.py:54 -msgid "First object point" -msgstr "Primo punto oggetto" - -#: AppTools/ToolDistanceMin.py:55 AppTools/ToolDistanceMin.py:80 -msgid "" -"This is first object point coordinates.\n" -"This is the start point for measuring distance." -msgstr "" -"Coordinate del primo punto oggetto.\n" -"Questo è il punto di partenza per misurare la distanza." - -#: AppTools/ToolDistanceMin.py:58 -msgid "Second object point" -msgstr "Secondo punto oggetto" - -#: AppTools/ToolDistanceMin.py:59 AppTools/ToolDistanceMin.py:86 -msgid "" -"This is second object point coordinates.\n" -"This is the end point for measuring distance." -msgstr "" -"Coordinate del secondo punto oggetto.\n" -"Questo è il punto di fine per misurare la distanza." - -#: AppTools/ToolDistanceMin.py:72 AppTools/ToolDistanceMin.py:107 -msgid "This is the point to point Euclidean distance." -msgstr "Distanza punto punto euclidea." - -#: AppTools/ToolDistanceMin.py:74 -msgid "Half Point" -msgstr "Punto di mezzo" - -#: AppTools/ToolDistanceMin.py:75 AppTools/ToolDistanceMin.py:112 -msgid "This is the middle point of the point to point Euclidean distance." -msgstr "Punto mediano della distanza punto punto euclidea." - -#: AppTools/ToolDistanceMin.py:117 -msgid "Jump to Half Point" -msgstr "Vai al punto mediano" - -#: AppTools/ToolDistanceMin.py:154 -msgid "" -"Select two objects and no more, to measure the distance between them ..." -msgstr "Seleziona due oggetti e non più, per misurare la distanza tra loro ..." - -#: AppTools/ToolDistanceMin.py:195 AppTools/ToolDistanceMin.py:216 -#: AppTools/ToolDistanceMin.py:225 AppTools/ToolDistanceMin.py:246 -msgid "Select two objects and no more. Currently the selection has objects: " -msgstr "" -"Seleziona due oggetti e non di più. Attualmente la selezione ha oggetti: " - -#: AppTools/ToolDistanceMin.py:293 -msgid "Objects intersects or touch at" -msgstr "Gli oggetti si intersecano o toccano in" - -#: AppTools/ToolDistanceMin.py:299 -msgid "Jumped to the half point between the two selected objects" -msgstr "Salto a metà punto tra i due oggetti selezionati eseguito" - -#: AppTools/ToolEtchCompensation.py:75 AppTools/ToolInvertGerber.py:74 -msgid "Gerber object that will be inverted." -msgstr "Oggetto Gerber da invertire." - -#: AppTools/ToolEtchCompensation.py:86 -msgid "Utilities" -msgstr "" - -#: AppTools/ToolEtchCompensation.py:87 -#, fuzzy -#| msgid "Conversion" -msgid "Conversion utilities" -msgstr "Conversione" - -#: AppTools/ToolEtchCompensation.py:92 -msgid "Oz to Microns" -msgstr "" - -#: AppTools/ToolEtchCompensation.py:94 -msgid "" -"Will convert from oz thickness to microns [um].\n" -"Can use formulas with operators: /, *, +, -, %, .\n" -"The real numbers use the dot decimals separator." -msgstr "" - -#: AppTools/ToolEtchCompensation.py:103 -#, fuzzy -#| msgid "X value" -msgid "Oz value" -msgstr "Valore X" - -#: AppTools/ToolEtchCompensation.py:105 AppTools/ToolEtchCompensation.py:126 -#, fuzzy -#| msgid "Min value" -msgid "Microns value" -msgstr "Valore minimo" - -#: AppTools/ToolEtchCompensation.py:113 -msgid "Mils to Microns" -msgstr "" - -#: AppTools/ToolEtchCompensation.py:115 -msgid "" -"Will convert from mils to microns [um].\n" -"Can use formulas with operators: /, *, +, -, %, .\n" -"The real numbers use the dot decimals separator." -msgstr "" - -#: AppTools/ToolEtchCompensation.py:124 -#, fuzzy -#| msgid "Min value" -msgid "Mils value" -msgstr "Valore minimo" - -#: AppTools/ToolEtchCompensation.py:139 AppTools/ToolInvertGerber.py:86 -msgid "Parameters for this tool" -msgstr "Parametri per questo utensile" - -#: AppTools/ToolEtchCompensation.py:144 -#, fuzzy -#| msgid "Thickness" -msgid "Copper Thickness" -msgstr "Spessore" - -#: AppTools/ToolEtchCompensation.py:146 -#, fuzzy -#| msgid "" -#| "How thick the copper growth is intended to be.\n" -#| "In microns." -msgid "" -"The thickness of the copper foil.\n" -"In microns [um]." -msgstr "" -"Quanto deve accrescere il rame.\n" -"In microns." - -#: AppTools/ToolEtchCompensation.py:157 -#, fuzzy -#| msgid "Location" -msgid "Ratio" -msgstr "Locazione" - -#: AppTools/ToolEtchCompensation.py:159 -msgid "" -"The ratio of lateral etch versus depth etch.\n" -"Can be:\n" -"- custom -> the user will enter a custom value\n" -"- preselection -> value which depends on a selection of etchants" -msgstr "" - -#: AppTools/ToolEtchCompensation.py:165 -#, fuzzy -#| msgid "Factor" -msgid "Etch Factor" -msgstr "Fattore" - -#: AppTools/ToolEtchCompensation.py:166 -#, fuzzy -#| msgid "Extensions list" -msgid "Etchants list" -msgstr "Lista estensioni" - -#: AppTools/ToolEtchCompensation.py:167 -#, fuzzy -#| msgid "Manual" -msgid "Manual offset" -msgstr "Manuale" - -#: AppTools/ToolEtchCompensation.py:174 AppTools/ToolEtchCompensation.py:179 -msgid "Etchants" -msgstr "" - -#: AppTools/ToolEtchCompensation.py:176 -#, fuzzy -#| msgid "Shows list of commands." -msgid "A list of etchants." -msgstr "Mostra lista dei comandi." - -#: AppTools/ToolEtchCompensation.py:180 -msgid "Alkaline baths" -msgstr "" - -#: AppTools/ToolEtchCompensation.py:186 -#, fuzzy -#| msgid "X factor" -msgid "Etch factor" -msgstr "Fattore X" - -#: AppTools/ToolEtchCompensation.py:188 -msgid "" -"The ratio between depth etch and lateral etch .\n" -"Accepts real numbers and formulas using the operators: /,*,+,-,%" -msgstr "" - -#: AppTools/ToolEtchCompensation.py:192 -msgid "Real number or formula" -msgstr "" - -#: AppTools/ToolEtchCompensation.py:193 -#, fuzzy -#| msgid "X factor" -msgid "Etch_factor" -msgstr "Fattore X" - -#: AppTools/ToolEtchCompensation.py:201 -msgid "" -"Value with which to increase or decrease (buffer)\n" -"the copper features. In microns [um]." -msgstr "" - -#: AppTools/ToolEtchCompensation.py:225 -msgid "Compensate" -msgstr "" - -#: AppTools/ToolEtchCompensation.py:227 -msgid "" -"Will increase the copper features thickness to compensate the lateral etch." -msgstr "" - -#: AppTools/ToolExtractDrills.py:29 AppTools/ToolExtractDrills.py:295 -msgid "Extract Drills" -msgstr "Estrai fori" - -#: AppTools/ToolExtractDrills.py:62 -msgid "Gerber from which to extract drill holes" -msgstr "Gerber dal quale estrarre i fori" - -#: AppTools/ToolExtractDrills.py:297 -msgid "Extract drills from a given Gerber file." -msgstr "Estrae i fori da un dato file gerber." - -#: AppTools/ToolExtractDrills.py:478 AppTools/ToolExtractDrills.py:563 -#: AppTools/ToolExtractDrills.py:648 -msgid "No drills extracted. Try different parameters." -msgstr "Nessun foro estratto. Prova con altri parametri." - -#: AppTools/ToolFiducials.py:56 -msgid "Fiducials Coordinates" -msgstr "Coordinate fiducial" - -#: AppTools/ToolFiducials.py:58 -msgid "" -"A table with the fiducial points coordinates,\n" -"in the format (x, y)." -msgstr "" -"Tabella con le coordinate dei punti fiducial,\n" -"nel formato (x, y)." - -#: AppTools/ToolFiducials.py:194 -msgid "" -"- 'Auto' - automatic placement of fiducials in the corners of the bounding " -"box.\n" -" - 'Manual' - manual placement of fiducials." -msgstr "" -"- 'Auto': posizionamento automatico dei fiducial negli angoli del rettangolo " -"di selezione.\n" -" - 'Manuale': posizionamento manuale dei fiducial." - -#: AppTools/ToolFiducials.py:240 -msgid "Thickness of the line that makes the fiducial." -msgstr "" - -#: AppTools/ToolFiducials.py:271 -msgid "Add Fiducial" -msgstr "Aggiungi fiducial" - -#: AppTools/ToolFiducials.py:273 -msgid "Will add a polygon on the copper layer to serve as fiducial." -msgstr "Aggiungerà un poligono sul layer di rame per fungere da fiducial." - -#: AppTools/ToolFiducials.py:289 -msgid "Soldermask Gerber" -msgstr "Gerber soldermask" - -#: AppTools/ToolFiducials.py:291 -msgid "The Soldermask Gerber object." -msgstr "L'oggetto gerber soldermask." - -#: AppTools/ToolFiducials.py:303 -msgid "Add Soldermask Opening" -msgstr "Aggiungi apertura soldermask" - -#: AppTools/ToolFiducials.py:305 -msgid "" -"Will add a polygon on the soldermask layer\n" -"to serve as fiducial opening.\n" -"The diameter is always double of the diameter\n" -"for the copper fiducial." -msgstr "" -"Aggiungerà un poligono sul layer soldermask\n" -"che serva come apertura fiducial.\n" -"Il diametro è sempre il doppio del diametro\n" -"del fiduciale di rame." - -#: AppTools/ToolFiducials.py:520 -msgid "Click to add first Fiducial. Bottom Left..." -msgstr "Fai clic per aggiungere il primo Fiducial. In basso a sinistra..." - -#: AppTools/ToolFiducials.py:784 -msgid "Click to add the last fiducial. Top Right..." -msgstr "Fai clic per aggiungere l'ultimo Fiducial. In alto a destra..." - -#: AppTools/ToolFiducials.py:789 -msgid "Click to add the second fiducial. Top Left or Bottom Right..." -msgstr "" -"Fare clic per aggiungere il secondo fiducial. In alto a sinistra o in basso " -"a destra ..." - -#: AppTools/ToolFiducials.py:792 AppTools/ToolFiducials.py:801 -msgid "Done. All fiducials have been added." -msgstr "Fatto. Tutti i fiduciali sono stati aggiunti." - -#: AppTools/ToolFiducials.py:878 -msgid "Fiducials Tool exit." -msgstr "Esci dallo strumento fiducial." - -#: AppTools/ToolFilm.py:42 -msgid "Film PCB" -msgstr "Film PCB" - -#: AppTools/ToolFilm.py:73 -msgid "" -"Specify the type of object for which to create the film.\n" -"The object can be of type: Gerber or Geometry.\n" -"The selection here decide the type of objects that will be\n" -"in the Film Object combobox." -msgstr "" -"Specifica il tipo di oggetto per cui creare il film.\n" -"L'oggetto può essere di tipo: Gerber o Geometria.\n" -"La selezione decide il tipo di oggetti che saranno\n" -"nella box Oggetto film." - -#: AppTools/ToolFilm.py:96 -msgid "" -"Specify the type of object to be used as an container for\n" -"film creation. It can be: Gerber or Geometry type.The selection here decide " -"the type of objects that will be\n" -"in the Box Object combobox." -msgstr "" -"Specificare il tipo di oggetto da utilizzare come contenitore per la\n" -"creazione del film. Può essere di tipo Gerber o Geometria. La selezione " -"decide il tipo di oggetti che saranno\n" -"presenti nel box Oggetto casella." - -#: AppTools/ToolFilm.py:256 -msgid "Film Parameters" -msgstr "Parametri Film" - -#: AppTools/ToolFilm.py:317 -msgid "Punch drill holes" -msgstr "Praticare fori" - -#: AppTools/ToolFilm.py:318 -msgid "" -"When checked the generated film will have holes in pads when\n" -"the generated film is positive. This is done to help drilling,\n" -"when done manually." -msgstr "" -"Se selezionato, il film generato avrà buchi nei pad quando\n" -"il film generato è positivo. Questo viene fatto per aiutare a perforare,\n" -"quando fatto manualmente." - -#: AppTools/ToolFilm.py:336 -msgid "Source" -msgstr "Sorgente" - -#: AppTools/ToolFilm.py:338 -msgid "" -"The punch hole source can be:\n" -"- Excellon -> an Excellon holes center will serve as reference.\n" -"- Pad Center -> will try to use the pads center as reference." -msgstr "" -"La fonte del foro di perforazione può essere:\n" -"- Excellon -> un centro foro Excellon fungerà da riferimento.\n" -"- Pad Center -> proverà a utilizzare il centro del pad come riferimento." - -#: AppTools/ToolFilm.py:343 -msgid "Pad center" -msgstr "Centro Pad" - -#: AppTools/ToolFilm.py:348 -msgid "Excellon Obj" -msgstr "Oggetto Excellon" - -#: AppTools/ToolFilm.py:350 -msgid "" -"Remove the geometry of Excellon from the Film to create the holes in pads." -msgstr "Rimuovi la geometria Excellon dal Film per creare i fori nei pad." - -#: AppTools/ToolFilm.py:364 -msgid "Punch Size" -msgstr "Dimensione punzone" - -#: AppTools/ToolFilm.py:365 -msgid "The value here will control how big is the punch hole in the pads." -msgstr "Questo valore controllerà quanto è grande il foro nei pad." - -#: AppTools/ToolFilm.py:485 -msgid "Save Film" -msgstr "Salva Film" - -#: AppTools/ToolFilm.py:487 -msgid "" -"Create a Film for the selected object, within\n" -"the specified box. Does not create a new \n" -" FlatCAM object, but directly save it in the\n" -"selected format." -msgstr "" -"Crea un film per l'oggetto selezionato, all'interno\n" -"della casella specificata. Non crea un nuovo\n" -" oggetto FlatCAM, ma lo salva direttamente nel\n" -"formato selezionato." - -#: AppTools/ToolFilm.py:649 -msgid "" -"Using the Pad center does not work on Geometry objects. Only a Gerber object " -"has pads." -msgstr "" -"L'uso del centro del pad non funziona sugli oggetti Geometria. Solo un " -"oggetto Gerber ha i pad." - -#: AppTools/ToolFilm.py:659 -msgid "No FlatCAM object selected. Load an object for Film and retry." -msgstr "" -"Nessun oggetto FlatCAM selezionato. Carica un oggetto per Film e riprova." - -#: AppTools/ToolFilm.py:666 -msgid "No FlatCAM object selected. Load an object for Box and retry." -msgstr "" -"Nessun oggetto FlatCAM selezionato. Carica un oggetto per Box e riprova." - -#: AppTools/ToolFilm.py:670 -msgid "No FlatCAM object selected." -msgstr "Nessun oggetto FlatCAM selezionato." - -#: AppTools/ToolFilm.py:681 -msgid "Generating Film ..." -msgstr "Generazione Film ..." - -#: AppTools/ToolFilm.py:730 AppTools/ToolFilm.py:734 -msgid "Export positive film" -msgstr "Exporta film positivo" - -#: AppTools/ToolFilm.py:767 -msgid "" -"No Excellon object selected. Load an object for punching reference and retry." -msgstr "" -"Nessun oggetto Excellon selezionato. Caricare un oggetto per la punzonatura " -"di riferimento e riprova." - -#: AppTools/ToolFilm.py:791 -msgid "" -" Could not generate punched hole film because the punch hole sizeis bigger " -"than some of the apertures in the Gerber object." -msgstr "" -" Impossibile generare il film del foro punzonato perché la dimensione del " -"foro del punzone è maggiore di alcune delle aperture nell'oggetto Gerber." - -#: AppTools/ToolFilm.py:803 -msgid "" -"Could not generate punched hole film because the punch hole sizeis bigger " -"than some of the apertures in the Gerber object." -msgstr "" -"Impossibile generare il film del foro punzonato perché la dimensione del " -"foro del punzone è maggiore di alcune delle aperture nell'oggetto Gerber." - -#: AppTools/ToolFilm.py:821 -msgid "" -"Could not generate punched hole film because the newly created object " -"geometry is the same as the one in the source object geometry..." -msgstr "" -"Impossibile generare il film del foro punzonato perché la geometria " -"dell'oggetto appena creata è uguale a quella nella geometria dell'oggetto " -"sorgente ..." - -#: AppTools/ToolFilm.py:876 AppTools/ToolFilm.py:880 -msgid "Export negative film" -msgstr "Esporta film negativo" - -#: AppTools/ToolFilm.py:941 AppTools/ToolFilm.py:1124 -#: AppTools/ToolPanelize.py:441 -msgid "No object Box. Using instead" -msgstr "Nessun oggetto Box. Al suo posto si userà" - -#: AppTools/ToolFilm.py:1057 AppTools/ToolFilm.py:1237 -msgid "Film file exported to" -msgstr "File Film esportato in" - -#: AppTools/ToolFilm.py:1060 AppTools/ToolFilm.py:1240 -msgid "Generating Film ... Please wait." -msgstr "Generazione film … Attendere." - -#: AppTools/ToolImage.py:24 -msgid "Image as Object" -msgstr "Immagine come oggetto" - -#: AppTools/ToolImage.py:33 -msgid "Image to PCB" -msgstr "Da immagine a PCB" - -#: AppTools/ToolImage.py:56 -msgid "" -"Specify the type of object to create from the image.\n" -"It can be of type: Gerber or Geometry." -msgstr "" -"Specifica il tipo di oggetto da creare dall'immagine.\n" -"Può essere di tipo: Gerber o Geometria." - -#: AppTools/ToolImage.py:65 -msgid "DPI value" -msgstr "Valore DPI" - -#: AppTools/ToolImage.py:66 -msgid "Specify a DPI value for the image." -msgstr "Specifica un valore DPI per l'immagine." - -#: AppTools/ToolImage.py:72 -msgid "Level of detail" -msgstr "Livello di dettaglio" - -#: AppTools/ToolImage.py:81 -msgid "Image type" -msgstr "Tipo immagine" - -#: AppTools/ToolImage.py:83 -msgid "" -"Choose a method for the image interpretation.\n" -"B/W means a black & white image. Color means a colored image." -msgstr "" -"Scegli un metodo per l'interpretazione dell'immagine.\n" -"B/N significa un'immagine in bianco e nero. Colore significa un'immagine a " -"colori." - -#: AppTools/ToolImage.py:92 AppTools/ToolImage.py:107 AppTools/ToolImage.py:120 -#: AppTools/ToolImage.py:133 -msgid "Mask value" -msgstr "Valore maschera" - -#: AppTools/ToolImage.py:94 -msgid "" -"Mask for monochrome image.\n" -"Takes values between [0 ... 255].\n" -"Decides the level of details to include\n" -"in the resulting geometry.\n" -"0 means no detail and 255 means everything \n" -"(which is totally black)." -msgstr "" -"Maschera per immagine monocromatica.\n" -"Accetta valori tra [0 ... 255].\n" -"Decide il livello di dettagli da includere\n" -"nella geometria risultante.\n" -"0 significa nessun dettaglio e 255 significa tutto\n" -"(che è totalmente nero)." - -#: AppTools/ToolImage.py:109 -msgid "" -"Mask for RED color.\n" -"Takes values between [0 ... 255].\n" -"Decides the level of details to include\n" -"in the resulting geometry." -msgstr "" -"Maschera per il colore ROSSO.\n" -"Accetta valori tra [0 ... 255].\n" -"Decide il livello di dettagli da includere\n" -"nella geometria risultante." - -#: AppTools/ToolImage.py:122 -msgid "" -"Mask for GREEN color.\n" -"Takes values between [0 ... 255].\n" -"Decides the level of details to include\n" -"in the resulting geometry." -msgstr "" -"Maschera per il colore VERDE.\n" -"Accetta valori tra [0 ... 255].\n" -"Decide il livello di dettagli da includere\n" -"nella geometria risultante." - -#: AppTools/ToolImage.py:135 -msgid "" -"Mask for BLUE color.\n" -"Takes values between [0 ... 255].\n" -"Decides the level of details to include\n" -"in the resulting geometry." -msgstr "" -"Maschera per il colore BLU.\n" -"Accetta valori tra [0 ... 255].\n" -"Decide il livello di dettagli da includere\n" -"nella geometria risultante." - -#: AppTools/ToolImage.py:143 -msgid "Import image" -msgstr "Importa immagine" - -#: AppTools/ToolImage.py:145 -msgid "Open a image of raster type and then import it in FlatCAM." -msgstr "Apri un'immagine di tipo raster e quindi importala in FlatCAM." - -#: AppTools/ToolImage.py:182 -msgid "Image Tool" -msgstr "Strumento Immagine" - -#: AppTools/ToolImage.py:234 AppTools/ToolImage.py:237 -msgid "Import IMAGE" -msgstr "Importa IMMAGINE" - -#: AppTools/ToolImage.py:277 App_Main.py:8360 App_Main.py:8407 -msgid "" -"Not supported type is picked as parameter. Only Geometry and Gerber are " -"supported" -msgstr "Parametro non supportato. Utilizzare solo Geometrie o Gerber" - -#: AppTools/ToolImage.py:285 -msgid "Importing Image" -msgstr "Importo immagine" - -#: AppTools/ToolImage.py:297 AppTools/ToolPDF.py:154 App_Main.py:8385 -#: App_Main.py:8431 App_Main.py:8495 App_Main.py:8562 App_Main.py:8628 -#: App_Main.py:8693 App_Main.py:8750 -msgid "Opened" -msgstr "Aperto" - -#: AppTools/ToolInvertGerber.py:126 -msgid "Invert Gerber" -msgstr "Inverti Gerber" - -#: AppTools/ToolInvertGerber.py:128 -msgid "" -"Will invert the Gerber object: areas that have copper\n" -"will be empty of copper and previous empty area will be\n" -"filled with copper." -msgstr "" -"Inverte l'oggetto Gerber: aree che hanno rame\n" -"saranno vuote e le precedenti aree vuote saranno\n" -"riempite di rame." - -#: AppTools/ToolInvertGerber.py:187 -msgid "Invert Tool" -msgstr "Strumento Inverti" - -#: AppTools/ToolIsolation.py:96 -#, fuzzy -#| msgid "Gerber objects for which to check rules." -msgid "Gerber object for isolation routing." -msgstr "Oggetti Gerber sui quali verificare le regole." - -#: AppTools/ToolIsolation.py:120 AppTools/ToolNCC.py:122 -msgid "" -"Tools pool from which the algorithm\n" -"will pick the ones used for copper clearing." -msgstr "" -"Set di strumenti da cui l'algoritmo\n" -"sceglierà quelli usati per la rimozione del rame." - -#: AppTools/ToolIsolation.py:136 -#, fuzzy -#| msgid "" -#| "This is the Tool Number.\n" -#| "Non copper clearing will start with the tool with the biggest \n" -#| "diameter, continuing until there are no more tools.\n" -#| "Only tools that create NCC clearing geometry will still be present\n" -#| "in the resulting geometry. This is because with some tools\n" -#| "this function will not be able to create painting geometry." -msgid "" -"This is the Tool Number.\n" -"Isolation routing will start with the tool with the biggest \n" -"diameter, continuing until there are no more tools.\n" -"Only tools that create Isolation geometry will still be present\n" -"in the resulting geometry. This is because with some tools\n" -"this function will not be able to create routing geometry." -msgstr "" -"Questo è il numero dello strumento.\n" -"La pulizia non-rame inizierà con lo strumento con il diametro più\n" -"grande, continuando fino a quando non ci saranno più strumenti.\n" -"Solo gli strumenti che creano la geometria di clearing NCC saranno ancora " -"presenti\n" -"nella geometria risultante. Questo perché con alcuni strumenti\n" -"questa funzione non sarà in grado di creare la corretta geometria." - -#: AppTools/ToolIsolation.py:144 AppTools/ToolNCC.py:146 -msgid "" -"Tool Diameter. It's value (in current FlatCAM units)\n" -"is the cut width into the material." -msgstr "" -"Diametro utensile. Il suo valore (in unità correnti FlatCAM)\n" -"è l'altezza del taglio nel materiale." - -#: AppTools/ToolIsolation.py:148 AppTools/ToolNCC.py:150 -msgid "" -"The Tool Type (TT) can be:\n" -"- Circular with 1 ... 4 teeth -> it is informative only. Being circular,\n" -"the cut width in material is exactly the tool diameter.\n" -"- Ball -> informative only and make reference to the Ball type endmill.\n" -"- V-Shape -> it will disable Z-Cut parameter in the resulting geometry UI " -"form\n" -"and enable two additional UI form fields in the resulting geometry: V-Tip " -"Dia and\n" -"V-Tip Angle. Adjusting those two values will adjust the Z-Cut parameter " -"such\n" -"as the cut width into material will be equal with the value in the Tool " -"Diameter\n" -"column of this table.\n" -"Choosing the 'V-Shape' Tool Type automatically will select the Operation " -"Type\n" -"in the resulting geometry as Isolation." -msgstr "" -"Il tipo di strumento (TT) può essere:\n" -"- Circolare con 1 ... 4 denti -> è solo informativo. Essendo circolare,\n" -"la larghezza di taglio nel materiale è esattamente il diametro " -"dell'utensile.\n" -"- Sferico -> solo informativo e fa riferimento alla fresa a punta sferica.\n" -"- a V -> disabiliterà il parametro di Z-Cut nel modulo UI della geometria " -"risultante\n" -"e abiliterà due campi aggiuntivi nella geometria risultante: Diametro V-Tip " -"e\n" -"Angolo della punta a V. La regolazione di questi due valori regolerà il " -"parametro Z-Cut\n" -"poiché la larghezza del taglio nel materiale sarà uguale al valore nella " -"colonna Diametro utensile\n" -"di questa tabella.\n" -"Scegliendo il tipo di strumento \"a V\" si selezionerà automaticamente il " -"tipo di operazione\n" -"nella geometria risultante come isolamento." - -#: AppTools/ToolIsolation.py:300 AppTools/ToolNCC.py:318 -#: AppTools/ToolPaint.py:300 AppTools/ToolSolderPaste.py:135 -msgid "" -"Delete a selection of tools in the Tool Table\n" -"by first selecting a row(s) in the Tool Table." -msgstr "" -"Elimina un utensile selezionato dalla tabella degli utensili\n" -"selezionando prima una o più righe nella tabella degli utensili." - -#: AppTools/ToolIsolation.py:467 -msgid "" -"Specify the type of object to be excepted from isolation.\n" -"It can be of type: Gerber or Geometry.\n" -"What is selected here will dictate the kind\n" -"of objects that will populate the 'Object' combobox." -msgstr "" -"Specificare il tipo di oggetto da escludere dall'isolamento.\n" -"Può essere di tipo: Gerber o Geometria.\n" -"Ciò che è selezionato qui detterà il tipo\n" -"di oggetti che popoleranno la casella 'Oggetto'." - -#: AppTools/ToolIsolation.py:477 -msgid "Object whose area will be removed from isolation geometry." -msgstr "Oggetto la cui area verrà rimossa dalla geometria di isolamento." - -#: AppTools/ToolIsolation.py:513 AppTools/ToolNCC.py:554 -msgid "" -"The type of FlatCAM object to be used as non copper clearing reference.\n" -"It can be Gerber, Excellon or Geometry." -msgstr "" -"Il tipo di oggetto FlatCAM da utilizzare come riferimento di eliminazione " -"del rame.\n" -"Può essere Gerber, Excellon o Geometry." - -#: AppTools/ToolIsolation.py:559 -msgid "Generate Isolation Geometry" -msgstr "Genera geometria di isolamento" - -#: AppTools/ToolIsolation.py:567 -msgid "" -"Create a Geometry object with toolpaths to cut \n" -"isolation outside, inside or on both sides of the\n" -"object. For a Gerber object outside means outside\n" -"of the Gerber feature and inside means inside of\n" -"the Gerber feature, if possible at all. This means\n" -"that only if the Gerber feature has openings inside, they\n" -"will be isolated. If what is wanted is to cut isolation\n" -"inside the actual Gerber feature, use a negative tool\n" -"diameter above." -msgstr "" -"Crea un oggetto Geometrie con i percorsi utensile per isolare\n" -"all'esterno, all'interno o su entrambi i lati dell'oggetto.\n" -"Per un oggetto Gerber esterno significa esterno\n" -"della funzione Gerber e dentro significa dentro\n" -"la funzione Gerber, se possibile effettuarlo. Questo significa\n" -"che solo se la funzione Gerber ha delle aperture interne, possono\n" -"essere isolate. Se ciò che si desidera è tagliare l'isolamento\n" -"all'interno dell'attuale funzione Gerber, usa uno strumento con diametro\n" -"negativo." - -#: AppTools/ToolIsolation.py:1266 AppTools/ToolIsolation.py:1426 -#: AppTools/ToolNCC.py:932 AppTools/ToolNCC.py:1449 AppTools/ToolPaint.py:857 -#: AppTools/ToolSolderPaste.py:576 AppTools/ToolSolderPaste.py:901 -#: App_Main.py:4210 -msgid "Please enter a tool diameter with non-zero value, in Float format." -msgstr "" -"Inserire il diametro utensile con un valore non zero, in formato float." - -#: AppTools/ToolIsolation.py:1270 AppTools/ToolNCC.py:936 -#: AppTools/ToolPaint.py:861 AppTools/ToolSolderPaste.py:580 App_Main.py:4214 -msgid "Adding Tool cancelled" -msgstr "Aggiunta utensile annullata" - -#: AppTools/ToolIsolation.py:1420 AppTools/ToolNCC.py:1443 -#: AppTools/ToolPaint.py:1203 AppTools/ToolSolderPaste.py:896 -msgid "Please enter a tool diameter to add, in Float format." -msgstr "Inserisci un diametro utensile da aggiungere, in formato Float." - -#: AppTools/ToolIsolation.py:1451 AppTools/ToolIsolation.py:2959 -#: AppTools/ToolNCC.py:1474 AppTools/ToolNCC.py:4079 AppTools/ToolPaint.py:1227 -#: AppTools/ToolPaint.py:3628 AppTools/ToolSolderPaste.py:925 -msgid "Cancelled. Tool already in Tool Table." -msgstr "Annullato. Utensile già nella tabella utensili." - -#: AppTools/ToolIsolation.py:1458 AppTools/ToolIsolation.py:2977 -#: AppTools/ToolNCC.py:1481 AppTools/ToolNCC.py:4096 AppTools/ToolPaint.py:1232 -#: AppTools/ToolPaint.py:3645 -msgid "New tool added to Tool Table." -msgstr "Nuovo utensile aggiunto alla tabella." - -#: AppTools/ToolIsolation.py:1502 AppTools/ToolNCC.py:1525 -#: AppTools/ToolPaint.py:1276 -msgid "Tool from Tool Table was edited." -msgstr "Utensile dalla tabella modificato." - -#: AppTools/ToolIsolation.py:1514 AppTools/ToolNCC.py:1537 -#: AppTools/ToolPaint.py:1288 AppTools/ToolSolderPaste.py:986 -msgid "Cancelled. New diameter value is already in the Tool Table." -msgstr "Cancellato. Il valore del nuovo diametro è già presente nella tabella." - -#: AppTools/ToolIsolation.py:1566 AppTools/ToolNCC.py:1589 -#: AppTools/ToolPaint.py:1386 -msgid "Delete failed. Select a tool to delete." -msgstr "Cancellazione fallita. Seleziona un utensile da cancellare." - -#: AppTools/ToolIsolation.py:1572 AppTools/ToolNCC.py:1595 -#: AppTools/ToolPaint.py:1392 -msgid "Tool(s) deleted from Tool Table." -msgstr "Utensile(i) cancellato(i) dalla tabella." - -#: AppTools/ToolIsolation.py:1620 -msgid "Isolating..." -msgstr "Isolamento..." - -#: AppTools/ToolIsolation.py:1654 -msgid "Failed to create Follow Geometry with tool diameter" -msgstr "" - -#: AppTools/ToolIsolation.py:1657 -#, fuzzy -#| msgid "NCC Tool clearing with tool diameter" -msgid "Follow Geometry was created with tool diameter" -msgstr "Strumento NCC, uso dell'utensile diametro" - -#: AppTools/ToolIsolation.py:1698 -msgid "Click on a polygon to isolate it." -msgstr "Clicca su un poligono per isolarlo." - -#: AppTools/ToolIsolation.py:1812 AppTools/ToolIsolation.py:1832 -#: AppTools/ToolIsolation.py:1967 AppTools/ToolIsolation.py:2138 -msgid "Subtracting Geo" -msgstr "Sottrazione geometria" - -#: AppTools/ToolIsolation.py:1816 AppTools/ToolIsolation.py:1971 -#: AppTools/ToolIsolation.py:2142 -#, fuzzy -#| msgid "Intersection" -msgid "Intersecting Geo" -msgstr "Intersezione" - -#: AppTools/ToolIsolation.py:1865 AppTools/ToolIsolation.py:2032 -#: AppTools/ToolIsolation.py:2199 -#, fuzzy -#| msgid "Geometry Options" -msgid "Empty Geometry in" -msgstr "Opzioni geometria" - -#: AppTools/ToolIsolation.py:2041 -msgid "" -"Partial failure. The geometry was processed with all tools.\n" -"But there are still not-isolated geometry elements. Try to include a tool " -"with smaller diameter." -msgstr "" - -#: AppTools/ToolIsolation.py:2044 -msgid "" -"The following are coordinates for the copper features that could not be " -"isolated:" -msgstr "" - -#: AppTools/ToolIsolation.py:2356 AppTools/ToolIsolation.py:2465 -#: AppTools/ToolPaint.py:1535 -msgid "Added polygon" -msgstr "Poligono aggiunto" - -#: AppTools/ToolIsolation.py:2357 AppTools/ToolIsolation.py:2467 -msgid "Click to add next polygon or right click to start isolation." -msgstr "" -"Clicca per aggiungere il prossimo poligono o tasto destro per iniziare " -"l'isolamento." - -#: AppTools/ToolIsolation.py:2369 AppTools/ToolPaint.py:1549 -msgid "Removed polygon" -msgstr "Poligono rimosso" - -#: AppTools/ToolIsolation.py:2370 -msgid "Click to add/remove next polygon or right click to start isolation." -msgstr "" -"Clicca per aggiungere/togliere il prossimo poligono o click destro per " -"iniziare l'isolamento." - -#: AppTools/ToolIsolation.py:2375 AppTools/ToolPaint.py:1555 -msgid "No polygon detected under click position." -msgstr "Nessun poligono rilevato sulla posizione cliccata." - -#: AppTools/ToolIsolation.py:2401 AppTools/ToolPaint.py:1584 -msgid "List of single polygons is empty. Aborting." -msgstr "La lista di poligoni singoli è vuota. Operazione annullata." - -#: AppTools/ToolIsolation.py:2470 -msgid "No polygon in selection." -msgstr "Nessun poligono nella selezione." - -#: AppTools/ToolIsolation.py:2498 AppTools/ToolNCC.py:1725 -#: AppTools/ToolPaint.py:1619 -msgid "Click the end point of the paint area." -msgstr "Fai clic sul punto finale dell'area." - -#: AppTools/ToolIsolation.py:2916 AppTools/ToolNCC.py:4036 -#: AppTools/ToolPaint.py:3585 App_Main.py:5318 App_Main.py:5328 -msgid "Tool from DB added in Tool Table." -msgstr "Utensile da DB aggiunto alla tabella utensili." - -#: AppTools/ToolMove.py:102 -msgid "MOVE: Click on the Start point ..." -msgstr "SPOSTA: clicca sul punto di partenza ..." - -#: AppTools/ToolMove.py:113 -msgid "Cancelled. No object(s) to move." -msgstr "Cancellato. Nessun oggetto da spostare." - -#: AppTools/ToolMove.py:140 -msgid "MOVE: Click on the Destination point ..." -msgstr "SPOSTA: clicca sul punto di destinazione ..." - -#: AppTools/ToolMove.py:163 -msgid "Moving..." -msgstr "Spostamento..." - -#: AppTools/ToolMove.py:166 -msgid "No object(s) selected." -msgstr "Nessun oggetto selezionato." - -#: AppTools/ToolMove.py:221 -msgid "Error when mouse left click." -msgstr "Errore con il click sinistro del mouse." - -#: AppTools/ToolNCC.py:42 -msgid "Non-Copper Clearing" -msgstr "Pulizia non-rame (NCC)" - -#: AppTools/ToolNCC.py:86 AppTools/ToolPaint.py:79 -msgid "Obj Type" -msgstr "Tipo oggetto" - -#: AppTools/ToolNCC.py:88 -msgid "" -"Specify the type of object to be cleared of excess copper.\n" -"It can be of type: Gerber or Geometry.\n" -"What is selected here will dictate the kind\n" -"of objects that will populate the 'Object' combobox." -msgstr "" -"Specificare il tipo di oggetto da cui eliminare il rame in eccesso.\n" -"Può essere di tipo: Gerber o Geometria.\n" -"Ciò che è selezionato qui detterà il tipo\n" -"di oggetti che popoleranno la combobox 'Oggetto'." - -#: AppTools/ToolNCC.py:110 -msgid "Object to be cleared of excess copper." -msgstr "Oggetti puliti dall'eccesso di rame." - -#: AppTools/ToolNCC.py:138 -msgid "" -"This is the Tool Number.\n" -"Non copper clearing will start with the tool with the biggest \n" -"diameter, continuing until there are no more tools.\n" -"Only tools that create NCC clearing geometry will still be present\n" -"in the resulting geometry. This is because with some tools\n" -"this function will not be able to create painting geometry." -msgstr "" -"Questo è il numero dello strumento.\n" -"La pulizia non-rame inizierà con lo strumento con il diametro più\n" -"grande, continuando fino a quando non ci saranno più strumenti.\n" -"Solo gli strumenti che creano la geometria di clearing NCC saranno ancora " -"presenti\n" -"nella geometria risultante. Questo perché con alcuni strumenti\n" -"questa funzione non sarà in grado di creare la corretta geometria." - -#: AppTools/ToolNCC.py:597 AppTools/ToolPaint.py:536 -msgid "Generate Geometry" -msgstr "Genera geometria" - -#: AppTools/ToolNCC.py:1638 -msgid "Wrong Tool Dia value format entered, use a number." -msgstr "Errore nel formato nel valore del diametro inserito, usa un numero." - -#: AppTools/ToolNCC.py:1649 AppTools/ToolPaint.py:1443 -msgid "No selected tools in Tool Table." -msgstr "Nessun utensile selezionato nella tabella." - -#: AppTools/ToolNCC.py:2005 AppTools/ToolNCC.py:3024 -msgid "NCC Tool. Preparing non-copper polygons." -msgstr "Strumento NCC. Preparazione poligoni non-rame." - -#: AppTools/ToolNCC.py:2064 AppTools/ToolNCC.py:3152 -msgid "NCC Tool. Calculate 'empty' area." -msgstr "Strumento NCC. Calcolo aree 'vuote'." - -#: AppTools/ToolNCC.py:2083 AppTools/ToolNCC.py:2192 AppTools/ToolNCC.py:2207 -#: AppTools/ToolNCC.py:3165 AppTools/ToolNCC.py:3270 AppTools/ToolNCC.py:3285 -#: AppTools/ToolNCC.py:3551 AppTools/ToolNCC.py:3652 AppTools/ToolNCC.py:3667 -msgid "Buffering finished" -msgstr "Fine buffering" - -#: AppTools/ToolNCC.py:2091 AppTools/ToolNCC.py:2214 AppTools/ToolNCC.py:3173 -#: AppTools/ToolNCC.py:3292 AppTools/ToolNCC.py:3558 AppTools/ToolNCC.py:3674 -msgid "Could not get the extent of the area to be non copper cleared." -msgstr "Impossibile ottenere l'estensione dell'area da cui eliminare il rame." - -#: AppTools/ToolNCC.py:2121 AppTools/ToolNCC.py:2200 AppTools/ToolNCC.py:3200 -#: AppTools/ToolNCC.py:3277 AppTools/ToolNCC.py:3578 AppTools/ToolNCC.py:3659 -msgid "" -"Isolation geometry is broken. Margin is less than isolation tool diameter." -msgstr "" -"La geometria dell'isolamento è rotta. Il margine è inferiore al diametro " -"dell'utensile di isolamento." - -#: AppTools/ToolNCC.py:2217 AppTools/ToolNCC.py:3296 AppTools/ToolNCC.py:3677 -msgid "The selected object is not suitable for copper clearing." -msgstr "L'oggetto selezionato non è idoneo alla pulizia rame." - -#: AppTools/ToolNCC.py:2224 AppTools/ToolNCC.py:3303 -msgid "NCC Tool. Finished calculation of 'empty' area." -msgstr "Strumento NCC. Fine calcolo aree 'vuote'." - -#: AppTools/ToolNCC.py:2267 -#, fuzzy -#| msgid "Painting polygon with method: lines." -msgid "Clearing the polygon with the method: lines." -msgstr "Pittura poligoni con modalità linee." - -#: AppTools/ToolNCC.py:2277 -#, fuzzy -#| msgid "Failed. Painting polygon with method: seed." -msgid "Failed. Clearing the polygon with the method: seed." -msgstr "Pittura poligoni con modalità semi." - -#: AppTools/ToolNCC.py:2286 -#, fuzzy -#| msgid "Failed. Painting polygon with method: standard." -msgid "Failed. Clearing the polygon with the method: standard." -msgstr "Pittura poligoni con modalità standard." - -#: AppTools/ToolNCC.py:2300 -#, fuzzy -#| msgid "Geometry could not be painted completely" -msgid "Geometry could not be cleared completely" -msgstr "La geometria non può essere dipinta completamente" - -#: AppTools/ToolNCC.py:2325 AppTools/ToolNCC.py:2327 AppTools/ToolNCC.py:2973 -#: AppTools/ToolNCC.py:2975 -msgid "Non-Copper clearing ..." -msgstr "NCC cancellazione non-rame ..." - -#: AppTools/ToolNCC.py:2377 AppTools/ToolNCC.py:3120 -msgid "" -"NCC Tool. Finished non-copper polygons. Normal copper clearing task started." -msgstr "" -"Strumento NCC. Fine elaborazione poligoni non-rame. Task rimozione rame " -"completato." - -#: AppTools/ToolNCC.py:2415 AppTools/ToolNCC.py:2663 -msgid "NCC Tool failed creating bounding box." -msgstr "" -"Lo strumento NCC non è riuscito a creare il rettangolo di contenimento." - -#: AppTools/ToolNCC.py:2430 AppTools/ToolNCC.py:2680 AppTools/ToolNCC.py:3316 -#: AppTools/ToolNCC.py:3702 -msgid "NCC Tool clearing with tool diameter" -msgstr "Strumento NCC, uso dell'utensile diametro" - -#: AppTools/ToolNCC.py:2430 AppTools/ToolNCC.py:2680 AppTools/ToolNCC.py:3316 -#: AppTools/ToolNCC.py:3702 -msgid "started." -msgstr "avviato." - -#: AppTools/ToolNCC.py:2588 AppTools/ToolNCC.py:3477 -msgid "" -"There is no NCC Geometry in the file.\n" -"Usually it means that the tool diameter is too big for the painted " -"geometry.\n" -"Change the painting parameters and try again." -msgstr "" -"Nessuna geometria NCC nel file.\n" -"Di solito significa che il diametro dell'utensile è troppo grande per la " -"geometria.\n" -"Modifica i parametri e riprova." - -#: AppTools/ToolNCC.py:2597 AppTools/ToolNCC.py:3486 -msgid "NCC Tool clear all done." -msgstr "Lo strumento NCC ha terminato." - -#: AppTools/ToolNCC.py:2600 AppTools/ToolNCC.py:3489 -msgid "NCC Tool clear all done but the copper features isolation is broken for" -msgstr "Lo strumento NCC ha terminato ma l'isolamento del rame è rotto per" - -#: AppTools/ToolNCC.py:2602 AppTools/ToolNCC.py:2888 AppTools/ToolNCC.py:3491 -#: AppTools/ToolNCC.py:3874 -msgid "tools" -msgstr "utensili" - -#: AppTools/ToolNCC.py:2884 AppTools/ToolNCC.py:3870 -msgid "NCC Tool Rest Machining clear all done." -msgstr "Utensile NCC lavorazione di ripresa completata." - -#: AppTools/ToolNCC.py:2887 AppTools/ToolNCC.py:3873 -msgid "" -"NCC Tool Rest Machining clear all done but the copper features isolation is " -"broken for" -msgstr "" -"Utensile NCC lavorazione di ripresa completata ma l'isolamento del rame è " -"rotto per" - -#: AppTools/ToolNCC.py:2985 -msgid "NCC Tool started. Reading parameters." -msgstr "Strumento NCC avviato. Lettura parametri." - -#: AppTools/ToolNCC.py:3972 -msgid "" -"Try to use the Buffering Type = Full in Preferences -> Gerber General. " -"Reload the Gerber file after this change." -msgstr "" -"Prova a utilizzare il tipo di buffer = Completo in Preferenze -> Gerber " -"Generale. Ricarica il file Gerber dopo questa modifica." - -#: AppTools/ToolOptimal.py:85 -msgid "Number of decimals kept for found distances." -msgstr "Numero di decimali da tenere per le distanze trovate." - -#: AppTools/ToolOptimal.py:93 -msgid "Minimum distance" -msgstr "Distanza minima" - -#: AppTools/ToolOptimal.py:94 -msgid "Display minimum distance between copper features." -msgstr "Visualizza la minima distanza tra aree di rame." - -#: AppTools/ToolOptimal.py:98 -msgid "Determined" -msgstr "Determinato" - -#: AppTools/ToolOptimal.py:112 -msgid "Occurring" -msgstr "Succedendo" - -#: AppTools/ToolOptimal.py:113 -msgid "How many times this minimum is found." -msgstr "Quante volte è rilevato questo minimo." - -#: AppTools/ToolOptimal.py:119 -msgid "Minimum points coordinates" -msgstr "Coordinate punti minimi" - -#: AppTools/ToolOptimal.py:120 AppTools/ToolOptimal.py:126 -msgid "Coordinates for points where minimum distance was found." -msgstr "Coordinate per i punti dove è stata rilevata la distanza minima." - -#: AppTools/ToolOptimal.py:139 AppTools/ToolOptimal.py:215 -msgid "Jump to selected position" -msgstr "Vai alla posizione selezionata" - -#: AppTools/ToolOptimal.py:141 AppTools/ToolOptimal.py:217 -msgid "" -"Select a position in the Locations text box and then\n" -"click this button." -msgstr "" -"Selezionare una posizione nella casella di testo Posizioni e quindi\n" -"fai clic su questo pulsante." - -#: AppTools/ToolOptimal.py:149 -msgid "Other distances" -msgstr "Altre distanze" - -#: AppTools/ToolOptimal.py:150 -msgid "" -"Will display other distances in the Gerber file ordered from\n" -"the minimum to the maximum, not including the absolute minimum." -msgstr "" -"Visualizzerà altre distanze nel file Gerber ordinato dal\n" -"minimo al massimo, escluso il minimo assoluto." - -#: AppTools/ToolOptimal.py:155 -msgid "Other distances points coordinates" -msgstr "Coordinate di punti di altre distanze" - -#: AppTools/ToolOptimal.py:156 AppTools/ToolOptimal.py:170 -#: AppTools/ToolOptimal.py:177 AppTools/ToolOptimal.py:194 -#: AppTools/ToolOptimal.py:201 -msgid "" -"Other distances and the coordinates for points\n" -"where the distance was found." -msgstr "" -"Altre distanze e coordinate per i punti\n" -"dove è stata trovata la distanza." - -#: AppTools/ToolOptimal.py:169 -msgid "Gerber distances" -msgstr "Distanze gerber" - -#: AppTools/ToolOptimal.py:193 -msgid "Points coordinates" -msgstr "Coordinate punti" - -#: AppTools/ToolOptimal.py:225 -msgid "Find Minimum" -msgstr "Trova minimi" - -#: AppTools/ToolOptimal.py:227 -msgid "" -"Calculate the minimum distance between copper features,\n" -"this will allow the determination of the right tool to\n" -"use for isolation or copper clearing." -msgstr "" -"Calcola la distanza minima tra le caratteristiche di rame,\n" -"questo consentirà la determinazione dello strumento giusto per\n" -"utilizzare per l'isolamento o la pulizia del rame." - -#: AppTools/ToolOptimal.py:352 -msgid "Only Gerber objects can be evaluated." -msgstr "Possono essere valutati solo oggetti Gerber." - -#: AppTools/ToolOptimal.py:358 -msgid "" -"Optimal Tool. Started to search for the minimum distance between copper " -"features." -msgstr "" -"Strumento ottimale. Inizio a cercare la distanza minima tra le " -"caratteristiche di rame." - -#: AppTools/ToolOptimal.py:368 -msgid "Optimal Tool. Parsing geometry for aperture" -msgstr "Strumento ottimale. Analisi geometria per aperture" - -#: AppTools/ToolOptimal.py:379 -msgid "Optimal Tool. Creating a buffer for the object geometry." -msgstr "" -"Strumento ottimale. Creazione di un buffer per la geometria dell'oggetto." - -#: AppTools/ToolOptimal.py:389 -msgid "" -"The Gerber object has one Polygon as geometry.\n" -"There are no distances between geometry elements to be found." -msgstr "" -"L'oggetto Gerber ha un poligono come geometria.\n" -"Non ci sono distanze tra gli elementi geometrici da trovare." - -#: AppTools/ToolOptimal.py:394 -msgid "" -"Optimal Tool. Finding the distances between each two elements. Iterations" -msgstr "" -"Strumento ottimale. Trovo le distanze tra ogni coppia di elementi. iterazioni" - -#: AppTools/ToolOptimal.py:429 -msgid "Optimal Tool. Finding the minimum distance." -msgstr "Strumento ottimale. Trovare la distanza minima." - -#: AppTools/ToolOptimal.py:445 -msgid "Optimal Tool. Finished successfully." -msgstr "Strumento ottimale. Finito con successo." - -#: AppTools/ToolPDF.py:91 AppTools/ToolPDF.py:95 -msgid "Open PDF" -msgstr "Apri PDF" - -#: AppTools/ToolPDF.py:98 -msgid "Open PDF cancelled" -msgstr "Apertura PDF annullata" - -#: AppTools/ToolPDF.py:122 -msgid "Parsing PDF file ..." -msgstr "Analisi file PDF ..." - -#: AppTools/ToolPDF.py:138 App_Main.py:8593 -msgid "Failed to open" -msgstr "Errore di apertura" - -#: AppTools/ToolPDF.py:203 AppTools/ToolPcbWizard.py:445 App_Main.py:8542 -msgid "No geometry found in file" -msgstr "Nessuna geometria trovata nel file" - -#: AppTools/ToolPDF.py:206 AppTools/ToolPDF.py:279 -#, python-format -msgid "Rendering PDF layer #%d ..." -msgstr "Rendering del livello PDF #%d ..." - -#: AppTools/ToolPDF.py:210 AppTools/ToolPDF.py:283 -msgid "Open PDF file failed." -msgstr "Apertura file PDF fallita." - -#: AppTools/ToolPDF.py:215 AppTools/ToolPDF.py:288 -msgid "Rendered" -msgstr "Renderizzato" - -#: AppTools/ToolPaint.py:81 -msgid "" -"Specify the type of object to be painted.\n" -"It can be of type: Gerber or Geometry.\n" -"What is selected here will dictate the kind\n" -"of objects that will populate the 'Object' combobox." -msgstr "" -"Specifica il tipo di oggetto da dipingere.\n" -"Può essere di tipo: Gerber o Geometria.\n" -"Ciò che è selezionato qui detterà il tipo\n" -"di oggetti che popoleranno la combobox 'Oggetto'." - -#: AppTools/ToolPaint.py:103 -msgid "Object to be painted." -msgstr "Oggetto da dipingere." - -#: AppTools/ToolPaint.py:116 -msgid "" -"Tools pool from which the algorithm\n" -"will pick the ones used for painting." -msgstr "" -"Set di strumenti da cui l'algoritmo\n" -"sceglierà quelli usati per la pittura." - -#: AppTools/ToolPaint.py:133 -msgid "" -"This is the Tool Number.\n" -"Painting will start with the tool with the biggest diameter,\n" -"continuing until there are no more tools.\n" -"Only tools that create painting geometry will still be present\n" -"in the resulting geometry. This is because with some tools\n" -"this function will not be able to create painting geometry." -msgstr "" -"Questo è il numero dell'utensile.\n" -"La pittura inizierà con lo strumento con il diametro maggiore,\n" -"continuando fino a quando non ci saranno più strumenti.\n" -"Solo gli strumenti che creano la geometria della pittura saranno ancora " -"presenti\n" -"nella geometria risultante. Questo perché con alcuni strumenti\n" -"questa funzione non sarà in grado di creare la geometria della pittura." - -#: AppTools/ToolPaint.py:145 -msgid "" -"The Tool Type (TT) can be:\n" -"- Circular -> it is informative only. Being circular,\n" -"the cut width in material is exactly the tool diameter.\n" -"- Ball -> informative only and make reference to the Ball type endmill.\n" -"- V-Shape -> it will disable Z-Cut parameter in the resulting geometry UI " -"form\n" -"and enable two additional UI form fields in the resulting geometry: V-Tip " -"Dia and\n" -"V-Tip Angle. Adjusting those two values will adjust the Z-Cut parameter " -"such\n" -"as the cut width into material will be equal with the value in the Tool " -"Diameter\n" -"column of this table.\n" -"Choosing the 'V-Shape' Tool Type automatically will select the Operation " -"Type\n" -"in the resulting geometry as Isolation." -msgstr "" -"Il tipo di strumento (TT) può essere:\n" -"- Circolare con 1 ... 4 denti -> è solo informativo. Essendo circolare,\n" -"la larghezza di taglio nel materiale è esattamente il diametro " -"dell'utensile.\n" -"- Sferico -> solo informativo e fa riferimento alla fresa a punta sferica.\n" -"- a V -> disabiliterà il parametro di Z-Cut nel modulo UI della geometria " -"risultante\n" -"e abiliterà due campi aggiuntivi nella geometria risultante: Diametro V-Tip " -"e\n" -"Angolo della punta a V. La regolazione di questi due valori regolerà il " -"parametro Z-Cut\n" -"poiché la larghezza del taglio nel materiale sarà uguale al valore nella " -"colonna Diametro utensile\n" -"di questa tabella.\n" -"Scegliendo il tipo di strumento 'a V' si selezionerà automaticamente il tipo " -"di operazione\n" -"nella geometria risultante come isolamento." - -#: AppTools/ToolPaint.py:497 -msgid "" -"The type of FlatCAM object to be used as paint reference.\n" -"It can be Gerber, Excellon or Geometry." -msgstr "" -"Il tipo di oggetto FlatCAM da utilizzare come riferimento di disegno.\n" -"Può essere Gerber, Excellon o Geometry." - -#: AppTools/ToolPaint.py:538 -msgid "" -"- 'Area Selection' - left mouse click to start selection of the area to be " -"painted.\n" -"Keeping a modifier key pressed (CTRL or SHIFT) will allow to add multiple " -"areas.\n" -"- 'All Polygons' - the Paint will start after click.\n" -"- 'Reference Object' - will do non copper clearing within the area\n" -"specified by another object." -msgstr "" -"- 'Selezione area': fare clic con il pulsante sinistro del mouse per " -"iniziare la selezione dell'area da dipingere.\n" -"Tenendo premuto un tasto modificatore (CTRL o SHIFT) sarà possibile " -"aggiungere più aree.\n" -"- 'Tutti i poligoni': la pittura inizierà dopo il clic.\n" -"- 'Oggetto di riferimento' - eseguirà lo sgombero dal rame all'interno " -"dell'area\n" -"specificata da un altro oggetto." - -#: AppTools/ToolPaint.py:1412 -#, python-format -msgid "Could not retrieve object: %s" -msgstr "Impossibile ottenere l'oggetto: %s" - -#: AppTools/ToolPaint.py:1422 -msgid "Can't do Paint on MultiGeo geometries" -msgstr "Impossibile dipingere in geometrie multigeo" - -#: AppTools/ToolPaint.py:1459 -msgid "Click on a polygon to paint it." -msgstr "Clicca su un poligono per dipingerlo." - -#: AppTools/ToolPaint.py:1472 -msgid "Click the start point of the paint area." -msgstr "Fai clic sul punto iniziale dell'area di disegno." - -#: AppTools/ToolPaint.py:1537 -msgid "Click to add next polygon or right click to start painting." -msgstr "" -"Fai clic per aggiungere il prossimo poligono o fai clic con il tasto destro " -"per iniziare a dipingere." - -#: AppTools/ToolPaint.py:1550 -msgid "Click to add/remove next polygon or right click to start painting." -msgstr "" -"Fai clic per aggiungere/rimuovere il prossimo poligono o fai clic con il " -"tasto destro per iniziare a dipingere." - -#: AppTools/ToolPaint.py:2054 -msgid "Painting polygon with method: lines." -msgstr "Pittura poligoni con modalità linee." - -#: AppTools/ToolPaint.py:2066 -msgid "Failed. Painting polygon with method: seed." -msgstr "Pittura poligoni con modalità semi." - -#: AppTools/ToolPaint.py:2077 -msgid "Failed. Painting polygon with method: standard." -msgstr "Pittura poligoni con modalità standard." - -#: AppTools/ToolPaint.py:2093 -msgid "Geometry could not be painted completely" -msgstr "La geometria non può essere dipinta completamente" - -#: AppTools/ToolPaint.py:2122 AppTools/ToolPaint.py:2125 -#: AppTools/ToolPaint.py:2133 AppTools/ToolPaint.py:2436 -#: AppTools/ToolPaint.py:2439 AppTools/ToolPaint.py:2447 -#: AppTools/ToolPaint.py:2935 AppTools/ToolPaint.py:2938 -#: AppTools/ToolPaint.py:2944 -msgid "Paint Tool." -msgstr "Strumento pittura." - -#: AppTools/ToolPaint.py:2122 AppTools/ToolPaint.py:2125 -#: AppTools/ToolPaint.py:2133 -msgid "Normal painting polygon task started." -msgstr "Attività di poligono di pittura normale avviata." - -#: AppTools/ToolPaint.py:2123 AppTools/ToolPaint.py:2437 -#: AppTools/ToolPaint.py:2936 -msgid "Buffering geometry..." -msgstr "Geometria buffer ..." - -#: AppTools/ToolPaint.py:2145 AppTools/ToolPaint.py:2454 -#: AppTools/ToolPaint.py:2952 -msgid "No polygon found." -msgstr "Nessun poligono trovato." - -#: AppTools/ToolPaint.py:2175 -msgid "Painting polygon..." -msgstr "Pittura poligono ..." - -#: AppTools/ToolPaint.py:2185 AppTools/ToolPaint.py:2500 -#: AppTools/ToolPaint.py:2690 AppTools/ToolPaint.py:2998 -#: AppTools/ToolPaint.py:3177 -msgid "Painting with tool diameter = " -msgstr "Verniciatura con diametro utensile = " - -#: AppTools/ToolPaint.py:2186 AppTools/ToolPaint.py:2501 -#: AppTools/ToolPaint.py:2691 AppTools/ToolPaint.py:2999 -#: AppTools/ToolPaint.py:3178 -msgid "started" -msgstr "avviata" - -#: AppTools/ToolPaint.py:2211 AppTools/ToolPaint.py:2527 -#: AppTools/ToolPaint.py:2717 AppTools/ToolPaint.py:3025 -#: AppTools/ToolPaint.py:3204 -msgid "Margin parameter too big. Tool is not used" -msgstr "Parametro di margine troppo grande. Utensile non usato" - -#: AppTools/ToolPaint.py:2269 AppTools/ToolPaint.py:2596 -#: AppTools/ToolPaint.py:2774 AppTools/ToolPaint.py:3088 -#: AppTools/ToolPaint.py:3266 -msgid "" -"Could not do Paint. Try a different combination of parameters. Or a " -"different strategy of paint" -msgstr "" -"Impossibile dipingere. Prova una diversa combinazione di parametri. O una " -"diversa strategia di pittura" - -#: AppTools/ToolPaint.py:2326 AppTools/ToolPaint.py:2662 -#: AppTools/ToolPaint.py:2831 AppTools/ToolPaint.py:3149 -#: AppTools/ToolPaint.py:3328 -msgid "" -"There is no Painting Geometry in the file.\n" -"Usually it means that the tool diameter is too big for the painted " -"geometry.\n" -"Change the painting parameters and try again." -msgstr "" -"Nel file non è presente una Geometria di pittura.\n" -"Di solito significa che il diametro dell'utensile è troppo grande per la " -"geometria da trattare.\n" -"Modifica i parametri di pittura e riprova." - -#: AppTools/ToolPaint.py:2349 -msgid "Paint Single failed." -msgstr "Pittura singola fallita." - -#: AppTools/ToolPaint.py:2355 -msgid "Paint Single Done." -msgstr "Pittura, fatto." - -#: AppTools/ToolPaint.py:2357 AppTools/ToolPaint.py:2867 -#: AppTools/ToolPaint.py:3364 -msgid "Polygon Paint started ..." -msgstr "Pittura poligoni avviata ..." - -#: AppTools/ToolPaint.py:2436 AppTools/ToolPaint.py:2439 -#: AppTools/ToolPaint.py:2447 -msgid "Paint all polygons task started." -msgstr "Attività di pittura poligoni avviata." - -#: AppTools/ToolPaint.py:2478 AppTools/ToolPaint.py:2976 -msgid "Painting polygons..." -msgstr "Pittura poligoni..." - -#: AppTools/ToolPaint.py:2671 -msgid "Paint All Done." -msgstr "Verniciatura effettuata." - -#: AppTools/ToolPaint.py:2840 AppTools/ToolPaint.py:3337 -msgid "Paint All with Rest-Machining done." -msgstr "Dipingi tutto con Lavorazione a ripresa." - -#: AppTools/ToolPaint.py:2859 -msgid "Paint All failed." -msgstr "Vernicia tutti fallita." - -#: AppTools/ToolPaint.py:2865 -msgid "Paint Poly All Done." -msgstr "Verniciatura di tutti i poligoni effettuata." - -#: AppTools/ToolPaint.py:2935 AppTools/ToolPaint.py:2938 -#: AppTools/ToolPaint.py:2944 -msgid "Painting area task started." -msgstr "Attività di pittura area avviata." - -#: AppTools/ToolPaint.py:3158 -msgid "Paint Area Done." -msgstr "Pittura area completata." - -#: AppTools/ToolPaint.py:3356 -msgid "Paint Area failed." -msgstr "Pittura area fallita." - -#: AppTools/ToolPaint.py:3362 -msgid "Paint Poly Area Done." -msgstr "Pittura area poligono completata." - -#: AppTools/ToolPanelize.py:55 -msgid "" -"Specify the type of object to be panelized\n" -"It can be of type: Gerber, Excellon or Geometry.\n" -"The selection here decide the type of objects that will be\n" -"in the Object combobox." -msgstr "" -"Specificare il tipo di oggetto da pannellare.\n" -"Può essere di tipo: Gerber, Excellon o Geometry.\n" -"La selezione decide il tipo di oggetti che saranno\n" -"nella combobox Oggetto." - -#: AppTools/ToolPanelize.py:88 -msgid "" -"Object to be panelized. This means that it will\n" -"be duplicated in an array of rows and columns." -msgstr "" -"Oggetto da pannellizzare. Questo significa che sarà\n" -"duplicato in una matrice di righe e colonne." - -#: AppTools/ToolPanelize.py:100 -msgid "Penelization Reference" -msgstr "Riferimento pannellizzazione" - -#: AppTools/ToolPanelize.py:102 -msgid "" -"Choose the reference for panelization:\n" -"- Object = the bounding box of a different object\n" -"- Bounding Box = the bounding box of the object to be panelized\n" -"\n" -"The reference is useful when doing panelization for more than one\n" -"object. The spacings (really offsets) will be applied in reference\n" -"to this reference object therefore maintaining the panelized\n" -"objects in sync." -msgstr "" -"Scegli il riferimento per la pannellizzazione:\n" -"- Oggetto = il rettangolo di selezione di un altro oggetto\n" -"- Bounding Box = il riquadro di delimitazione dell'oggetto da pannellare\n" -"\n" -"Il riferimento è utile quando si esegue la pannellizzazione per più di un\n" -"oggetto. Le spaziature (offset) verranno applicate in riferimento\n" -"a questo oggetto di riferimento mantenendo quindi gli oggetti\n" -"pannellizzati sincronizzati." - -#: AppTools/ToolPanelize.py:123 -msgid "Box Type" -msgstr "Tipo box" - -#: AppTools/ToolPanelize.py:125 -msgid "" -"Specify the type of object to be used as an container for\n" -"panelization. It can be: Gerber or Geometry type.\n" -"The selection here decide the type of objects that will be\n" -"in the Box Object combobox." -msgstr "" -"Specificare il tipo di oggetto da utilizzare come contenitore per\n" -"pannelizzazione. Può essere: tipo Gerber o Geometria.\n" -"La selezione decide il tipo di oggetti che saranno\n" -"nella casella combobox Oggetto." - -#: AppTools/ToolPanelize.py:139 -msgid "" -"The actual object that is used as container for the\n" -" selected object that is to be panelized." -msgstr "" -"Oggetto utilizzato come contenitore per\n" -"l'oggetto selezionato da pannellizzare." - -#: AppTools/ToolPanelize.py:149 -msgid "Panel Data" -msgstr "Dati pannello" - -#: AppTools/ToolPanelize.py:151 -msgid "" -"This informations will shape the resulting panel.\n" -"The number of rows and columns will set how many\n" -"duplicates of the original geometry will be generated.\n" -"\n" -"The spacings will set the distance between any two\n" -"elements of the panel array." -msgstr "" -"Queste informazioni daranno forma al pannello risultante.\n" -"Il numero di righe e colonne imposterà quanti\n" -"duplicati della geometria originale verranno generati.\n" -"\n" -"Le distanze imposteranno la distanza tra due qualsiasi\n" -"elementi della matrice di pannelli." - -#: AppTools/ToolPanelize.py:214 -msgid "" -"Choose the type of object for the panel object:\n" -"- Geometry\n" -"- Gerber" -msgstr "" -"Scegli il tipo di oggetto per l'oggetto pannello:\n" -"- Geometria\n" -"- Gerber" - -#: AppTools/ToolPanelize.py:222 -msgid "Constrain panel within" -msgstr "Vincola pannello all'interno" - -#: AppTools/ToolPanelize.py:263 -msgid "Panelize Object" -msgstr "Pannellizza oggetto" - -#: AppTools/ToolPanelize.py:265 AppTools/ToolRulesCheck.py:501 -msgid "" -"Panelize the specified object around the specified box.\n" -"In other words it creates multiple copies of the source object,\n" -"arranged in a 2D array of rows and columns." -msgstr "" -"Panelizza l'oggetto specificato attorno al box specificata.\n" -"In altre parole crea più copie dell'oggetto sorgente,\n" -"disposti in una matrice 2D di righe e colonne." - -#: AppTools/ToolPanelize.py:333 -msgid "Panel. Tool" -msgstr "Pannello, strumento" - -#: AppTools/ToolPanelize.py:468 -msgid "Columns or Rows are zero value. Change them to a positive integer." -msgstr "" -"Le colonne o le righe hanno valore zero. Modificali in un numero intero " -"positivo." - -#: AppTools/ToolPanelize.py:505 -msgid "Generating panel ... " -msgstr "Generazione pannello … " - -#: AppTools/ToolPanelize.py:788 -msgid "Generating panel ... Adding the Gerber code." -msgstr "Generazione pannello … Aggiunta codice gerber." - -#: AppTools/ToolPanelize.py:796 -msgid "Generating panel... Spawning copies" -msgstr "Generazione pannello … Generazione copie" - -#: AppTools/ToolPanelize.py:803 -msgid "Panel done..." -msgstr "Pannellizzazione effettuata..." - -#: AppTools/ToolPanelize.py:806 -#, python-brace-format -msgid "" -"{text} Too big for the constrain area. Final panel has {col} columns and " -"{row} rows" -msgstr "" -"{text} Troppo grande per l'area vincolata. Il pannello finale ha {col} " -"colonne e {row} righe" - -#: AppTools/ToolPanelize.py:815 -msgid "Panel created successfully." -msgstr "Pannello creato con successo." - -#: AppTools/ToolPcbWizard.py:31 -msgid "PcbWizard Import Tool" -msgstr "Strumento importazione PcbWizard" - -#: AppTools/ToolPcbWizard.py:40 -msgid "Import 2-file Excellon" -msgstr "Importazione Excellon doppio file" - -#: AppTools/ToolPcbWizard.py:51 -msgid "Load files" -msgstr "Carica files" - -#: AppTools/ToolPcbWizard.py:57 -msgid "Excellon file" -msgstr "File Excellon" - -#: AppTools/ToolPcbWizard.py:59 -msgid "" -"Load the Excellon file.\n" -"Usually it has a .DRL extension" -msgstr "" -"Carica file Excellon.\n" -"Tipicamente ha estensione .DRL" - -#: AppTools/ToolPcbWizard.py:65 -msgid "INF file" -msgstr "File INF" - -#: AppTools/ToolPcbWizard.py:67 -msgid "Load the INF file." -msgstr "Carica un file INF." - -#: AppTools/ToolPcbWizard.py:79 -msgid "Tool Number" -msgstr "Numero Utensile" - -#: AppTools/ToolPcbWizard.py:81 -msgid "Tool diameter in file units." -msgstr "Diametro utensile in unità del file." - -#: AppTools/ToolPcbWizard.py:87 -msgid "Excellon format" -msgstr "Formato Excellon" - -#: AppTools/ToolPcbWizard.py:95 -msgid "Int. digits" -msgstr "Cifre intere" - -#: AppTools/ToolPcbWizard.py:97 -msgid "The number of digits for the integral part of the coordinates." -msgstr "Numero di cifre per la parte intera delle coordinate." - -#: AppTools/ToolPcbWizard.py:104 -msgid "Frac. digits" -msgstr "Cifre decimali" - -#: AppTools/ToolPcbWizard.py:106 -msgid "The number of digits for the fractional part of the coordinates." -msgstr "Numero di cifre per la parte decimale delle coordinate." - -#: AppTools/ToolPcbWizard.py:113 -msgid "No Suppression" -msgstr "No soppressione" - -#: AppTools/ToolPcbWizard.py:114 -msgid "Zeros supp." -msgstr "Soppressione zeri." - -#: AppTools/ToolPcbWizard.py:116 -msgid "" -"The type of zeros suppression used.\n" -"Can be of type:\n" -"- LZ = leading zeros are kept\n" -"- TZ = trailing zeros are kept\n" -"- No Suppression = no zero suppression" -msgstr "" -"Il tipo di soppressione degli zeri utilizzato.\n" -"Può essere di tipo:\n" -"- ZI = gli zeri iniziali vengono mantenuti\n" -"- ZF = vengono mantenuti gli zeri finali\n" -"- Nessuna soppressione = nessuna soppressione di zeri" - -#: AppTools/ToolPcbWizard.py:129 -msgid "" -"The type of units that the coordinates and tool\n" -"diameters are using. Can be INCH or MM." -msgstr "" -"Il tipo di unità usata da coordinate e dal diametro\n" -"degli utensili. Può essere POLLICI o MM." - -#: AppTools/ToolPcbWizard.py:136 -msgid "Import Excellon" -msgstr "Importa Excellon" - -#: AppTools/ToolPcbWizard.py:138 -msgid "" -"Import in FlatCAM an Excellon file\n" -"that store it's information's in 2 files.\n" -"One usually has .DRL extension while\n" -"the other has .INF extension." -msgstr "" -"Importa in FlatCAM un file Excellon\n" -"che memorizza le informazioni in 2 file.\n" -"Uno di solito ha l'estensione .DRL mentre\n" -"l'altro ha estensione .INF." - -#: AppTools/ToolPcbWizard.py:197 -msgid "PCBWizard Tool" -msgstr "Strumento PCBWizard" - -#: AppTools/ToolPcbWizard.py:291 AppTools/ToolPcbWizard.py:295 -msgid "Load PcbWizard Excellon file" -msgstr "Carica file Excellon PcbWizard" - -#: AppTools/ToolPcbWizard.py:314 AppTools/ToolPcbWizard.py:318 -msgid "Load PcbWizard INF file" -msgstr "Carica file INF PcbWizard" - -#: AppTools/ToolPcbWizard.py:366 -msgid "" -"The INF file does not contain the tool table.\n" -"Try to open the Excellon file from File -> Open -> Excellon\n" -"and edit the drill diameters manually." -msgstr "" -"Il file INF non contiene la tabella degli strumenti.\n" -"Prova ad aprire il file Excellon da File -> Apri -> Excellon\n" -"e modificare manualmente i diametri delle punte." - -#: AppTools/ToolPcbWizard.py:387 -msgid "PcbWizard .INF file loaded." -msgstr "File PcbWizard caricato." - -#: AppTools/ToolPcbWizard.py:392 -msgid "Main PcbWizard Excellon file loaded." -msgstr "File principale PcbWizard caricato." - -#: AppTools/ToolPcbWizard.py:424 App_Main.py:8520 -msgid "This is not Excellon file." -msgstr "Non è un file Excellon." - -#: AppTools/ToolPcbWizard.py:427 -msgid "Cannot parse file" -msgstr "Impossibile analizzare file" - -#: AppTools/ToolPcbWizard.py:450 -msgid "Importing Excellon." -msgstr "Importazione Excellon." - -#: AppTools/ToolPcbWizard.py:457 -msgid "Import Excellon file failed." -msgstr "Importazione file Excellon fallita." - -#: AppTools/ToolPcbWizard.py:464 -msgid "Imported" -msgstr "Importato" - -#: AppTools/ToolPcbWizard.py:467 -msgid "Excellon merging is in progress. Please wait..." -msgstr "Unione Excellon in corso. Attendere..." - -#: AppTools/ToolPcbWizard.py:469 -msgid "The imported Excellon file is empty." -msgstr "Il file Excellon importato è vuoto." - -#: AppTools/ToolProperties.py:116 App_Main.py:4692 App_Main.py:6803 -#: App_Main.py:6903 App_Main.py:6944 App_Main.py:6985 App_Main.py:7027 -#: App_Main.py:7069 App_Main.py:7113 App_Main.py:7157 App_Main.py:7681 -#: App_Main.py:7685 -msgid "No object selected." -msgstr "Nessun oggetto selezionato." - -#: AppTools/ToolProperties.py:131 -msgid "Object Properties are displayed." -msgstr "Proprietà oggetto visualizzate." - -#: AppTools/ToolProperties.py:136 -msgid "Properties Tool" -msgstr "Strumento proprietà" - -#: AppTools/ToolProperties.py:150 -msgid "TYPE" -msgstr "TIPO" - -#: AppTools/ToolProperties.py:151 -msgid "NAME" -msgstr "NOME" - -#: AppTools/ToolProperties.py:153 -msgid "Dimensions" -msgstr "Dimensione" - -#: AppTools/ToolProperties.py:181 -msgid "Geo Type" -msgstr "Tipo Geom" - -#: AppTools/ToolProperties.py:184 -msgid "Single-Geo" -msgstr "Geoi singola" - -#: AppTools/ToolProperties.py:185 -msgid "Multi-Geo" -msgstr "Multi-Geo" - -#: AppTools/ToolProperties.py:196 -msgid "Calculating dimensions ... Please wait." -msgstr "Calcolo dimensioni … Attendere." - -#: AppTools/ToolProperties.py:339 AppTools/ToolProperties.py:343 -#: AppTools/ToolProperties.py:345 -msgid "Inch" -msgstr "Pollici" - -#: AppTools/ToolProperties.py:339 AppTools/ToolProperties.py:344 -#: AppTools/ToolProperties.py:346 -msgid "Metric" -msgstr "Metrico" - -#: AppTools/ToolProperties.py:421 AppTools/ToolProperties.py:486 -msgid "Drills number" -msgstr "Numero fori" - -#: AppTools/ToolProperties.py:422 AppTools/ToolProperties.py:488 -msgid "Slots number" -msgstr "Numero Slot" - -#: AppTools/ToolProperties.py:424 -msgid "Drills total number:" -msgstr "Numero totale di fori:" - -#: AppTools/ToolProperties.py:425 -msgid "Slots total number:" -msgstr "Numero totale di slot:" - -#: AppTools/ToolProperties.py:452 AppTools/ToolProperties.py:455 -#: AppTools/ToolProperties.py:458 AppTools/ToolProperties.py:483 -msgid "Present" -msgstr "Presente" - -#: AppTools/ToolProperties.py:453 AppTools/ToolProperties.py:484 -msgid "Solid Geometry" -msgstr "Geometria solida" - -#: AppTools/ToolProperties.py:456 -msgid "GCode Text" -msgstr "Testo GCode" - -#: AppTools/ToolProperties.py:459 -msgid "GCode Geometry" -msgstr "Geometria GCode" - -#: AppTools/ToolProperties.py:462 -msgid "Data" -msgstr "Dati" - -#: AppTools/ToolProperties.py:495 -msgid "Depth of Cut" -msgstr "Profondità di taglio" - -#: AppTools/ToolProperties.py:507 -msgid "Clearance Height" -msgstr "Altezza di sicurezza" - -#: AppTools/ToolProperties.py:539 -msgid "Routing time" -msgstr "Tempo fresatura" - -#: AppTools/ToolProperties.py:546 -msgid "Travelled distance" -msgstr "Distanza percorsa" - -#: AppTools/ToolProperties.py:564 -msgid "Width" -msgstr "Larghezza" - -#: AppTools/ToolProperties.py:570 AppTools/ToolProperties.py:578 -msgid "Box Area" -msgstr "Area box" - -#: AppTools/ToolProperties.py:573 AppTools/ToolProperties.py:581 -msgid "Convex_Hull Area" -msgstr "Area guscio convesso" - -#: AppTools/ToolProperties.py:588 AppTools/ToolProperties.py:591 -msgid "Copper Area" -msgstr "Area rame" - -#: AppTools/ToolPunchGerber.py:30 AppTools/ToolPunchGerber.py:323 -msgid "Punch Gerber" -msgstr "Punzona Gerber" - -#: AppTools/ToolPunchGerber.py:65 -msgid "Gerber into which to punch holes" -msgstr "Gerber nel quale applicare i punzoni" - -#: AppTools/ToolPunchGerber.py:85 -msgid "ALL" -msgstr "TUTTO" - -#: AppTools/ToolPunchGerber.py:166 -msgid "" -"Remove the geometry of Excellon from the Gerber to create the holes in pads." -msgstr "Rimuovi la geometria Excellon dal Gerber per creare i fori nei pad." - -#: AppTools/ToolPunchGerber.py:325 -msgid "" -"Create a Gerber object from the selected object, within\n" -"the specified box." -msgstr "" -"Crea un oggetto gerber dall'oggetto selezionato, dento\n" -"il box specificato." - -#: AppTools/ToolPunchGerber.py:425 -msgid "Punch Tool" -msgstr "Strumento punzone" - -#: AppTools/ToolPunchGerber.py:599 -msgid "The value of the fixed diameter is 0.0. Aborting." -msgstr "Il valore di diametro fisso è 0.0. Annullamento." - -#: AppTools/ToolPunchGerber.py:602 -msgid "" -"Could not generate punched hole Gerber because the punch hole size is bigger " -"than some of the apertures in the Gerber object." -msgstr "" -"Impossibile generare fori punzonati nel Gerber perché la dimensione del foro " -"del punzone è maggiore di alcune delle aperture nell'oggetto Gerber." - -#: AppTools/ToolPunchGerber.py:665 -msgid "" -"Could not generate punched hole Gerber because the newly created object " -"geometry is the same as the one in the source object geometry..." -msgstr "" -"Impossibile generare fori punzonati nel Gerber perché la geometria " -"dell'oggetto appena creata è uguale a quella nella geometria dell'oggetto " -"sorgente ..." - -#: AppTools/ToolQRCode.py:80 -msgid "Gerber Object to which the QRCode will be added." -msgstr "Oggetto Gerber a cui verrà aggiunto il QRCode." - -#: AppTools/ToolQRCode.py:116 -msgid "The parameters used to shape the QRCode." -msgstr "Parametri usati per formare il QRCode." - -#: AppTools/ToolQRCode.py:216 -msgid "Export QRCode" -msgstr "Esporta QRCode" - -#: AppTools/ToolQRCode.py:218 -msgid "" -"Show a set of controls allowing to export the QRCode\n" -"to a SVG file or an PNG file." -msgstr "" -"Mostra una serie di controlli che consentono di esportare il QRCode\n" -"in un file SVG o in un file PNG." - -#: AppTools/ToolQRCode.py:257 -msgid "Transparent back color" -msgstr "Colore trasparente sfondo" - -#: AppTools/ToolQRCode.py:282 -msgid "Export QRCode SVG" -msgstr "Esporta QRCode su SVG" - -#: AppTools/ToolQRCode.py:284 -msgid "Export a SVG file with the QRCode content." -msgstr "Esporta un file SVG con il contenuto del QRCode." - -#: AppTools/ToolQRCode.py:295 -msgid "Export QRCode PNG" -msgstr "Esporta QRCode su PNG" - -#: AppTools/ToolQRCode.py:297 -msgid "Export a PNG image file with the QRCode content." -msgstr "Esporta file immagine PNG con il contenuto del QRCode." - -#: AppTools/ToolQRCode.py:308 -msgid "Insert QRCode" -msgstr "Inserisci QRCode" - -#: AppTools/ToolQRCode.py:310 -msgid "Create the QRCode object." -msgstr "Crea oggetto QRCode." - -#: AppTools/ToolQRCode.py:424 AppTools/ToolQRCode.py:759 -#: AppTools/ToolQRCode.py:808 -msgid "Cancelled. There is no QRCode Data in the text box." -msgstr "Annullato. Non ci sono dati QRCode nel box testo." - -#: AppTools/ToolQRCode.py:443 -msgid "Generating QRCode geometry" -msgstr "Generazione geometria QRCode" - -#: AppTools/ToolQRCode.py:483 -msgid "Click on the Destination point ..." -msgstr "Clicca sul punto di destinazione ..." - -#: AppTools/ToolQRCode.py:598 -msgid "QRCode Tool done." -msgstr "Strumento QRCode fatto." - -#: AppTools/ToolQRCode.py:791 AppTools/ToolQRCode.py:795 -msgid "Export PNG" -msgstr "Esporta PNG" - -#: AppTools/ToolQRCode.py:838 AppTools/ToolQRCode.py:842 App_Main.py:6835 -#: App_Main.py:6839 -msgid "Export SVG" -msgstr "Esporta SVG" - -#: AppTools/ToolRulesCheck.py:33 -msgid "Check Rules" -msgstr "Controllo regole" - -#: AppTools/ToolRulesCheck.py:63 -msgid "Gerber objects for which to check rules." -msgstr "Oggetti Gerber sui quali verificare le regole." - -#: AppTools/ToolRulesCheck.py:78 -msgid "Top" -msgstr "Top" - -#: AppTools/ToolRulesCheck.py:80 -msgid "The Top Gerber Copper object for which rules are checked." -msgstr "L'oggetto Gerber rame TOP per il quale vengono controllate le regole." - -#: AppTools/ToolRulesCheck.py:96 -msgid "Bottom" -msgstr "Bottom" - -#: AppTools/ToolRulesCheck.py:98 -msgid "The Bottom Gerber Copper object for which rules are checked." -msgstr "" -"L'oggetto Gerber rame BOTTOM per il quale vengono controllate le regole." - -#: AppTools/ToolRulesCheck.py:114 -msgid "SM Top" -msgstr "SM Top" - -#: AppTools/ToolRulesCheck.py:116 -msgid "The Top Gerber Solder Mask object for which rules are checked." -msgstr "" -"L'oggetto Gerber SolderMask TOP per il quale vengono controllate le regole." - -#: AppTools/ToolRulesCheck.py:132 -msgid "SM Bottom" -msgstr "SM Bottom" - -#: AppTools/ToolRulesCheck.py:134 -msgid "The Bottom Gerber Solder Mask object for which rules are checked." -msgstr "" -"L'oggetto Gerber SolderMask BOTTOM per il quale vengono controllate le " -"regole." - -#: AppTools/ToolRulesCheck.py:150 -msgid "Silk Top" -msgstr "Silk Top" - -#: AppTools/ToolRulesCheck.py:152 -msgid "The Top Gerber Silkscreen object for which rules are checked." -msgstr "" -"L'oggetto Gerber Serigrafia TOP per il quale vengono controllate le regole." - -#: AppTools/ToolRulesCheck.py:168 -msgid "Silk Bottom" -msgstr "Silk Bottom" - -#: AppTools/ToolRulesCheck.py:170 -msgid "The Bottom Gerber Silkscreen object for which rules are checked." -msgstr "" -"L'oggetto Gerber Serigrafia BOTTOM per il quale vengono controllate le " -"regole." - -#: AppTools/ToolRulesCheck.py:188 -msgid "The Gerber Outline (Cutout) object for which rules are checked." -msgstr "" -"L'oggetto Gerber Outline (ritaglio) per il quale vengono controllate le " -"regole." - -#: AppTools/ToolRulesCheck.py:201 -msgid "Excellon objects for which to check rules." -msgstr "Oggetto Excellon al quale controllare le regole." - -#: AppTools/ToolRulesCheck.py:213 -msgid "Excellon 1" -msgstr "Excellon 1" - -#: AppTools/ToolRulesCheck.py:215 -msgid "" -"Excellon object for which to check rules.\n" -"Holds the plated holes or a general Excellon file content." -msgstr "" -"Oggetto Excellon per il quale verificare le regole.\n" -"Contiene i fori placcati o un contenuto generale del file Excellon." - -#: AppTools/ToolRulesCheck.py:232 -msgid "Excellon 2" -msgstr "Excellon 2" - -#: AppTools/ToolRulesCheck.py:234 -msgid "" -"Excellon object for which to check rules.\n" -"Holds the non-plated holes." -msgstr "" -"Oggetto Excellon per il quale verificare le regole.\n" -"Contiene i fori non placcati." - -#: AppTools/ToolRulesCheck.py:247 -msgid "All Rules" -msgstr "Tutte le regole" - -#: AppTools/ToolRulesCheck.py:249 -msgid "This check/uncheck all the rules below." -msgstr "Abilita le regole sotto." - -#: AppTools/ToolRulesCheck.py:499 -msgid "Run Rules Check" -msgstr "Esegui controllo regole" - -#: AppTools/ToolRulesCheck.py:1158 AppTools/ToolRulesCheck.py:1218 -#: AppTools/ToolRulesCheck.py:1255 AppTools/ToolRulesCheck.py:1327 -#: AppTools/ToolRulesCheck.py:1381 AppTools/ToolRulesCheck.py:1419 -#: AppTools/ToolRulesCheck.py:1484 -msgid "Value is not valid." -msgstr "Valore non valido." - -#: AppTools/ToolRulesCheck.py:1172 -msgid "TOP -> Copper to Copper clearance" -msgstr "TOP -> distanze rame-rame" - -#: AppTools/ToolRulesCheck.py:1183 -msgid "BOTTOM -> Copper to Copper clearance" -msgstr "BOTTOM -> distanze rame-rame" - -#: AppTools/ToolRulesCheck.py:1188 AppTools/ToolRulesCheck.py:1282 -#: AppTools/ToolRulesCheck.py:1446 -msgid "" -"At least one Gerber object has to be selected for this rule but none is " -"selected." -msgstr "" -"Almeno un oggetto Gerber deve essere selezionato per questa regola ma " -"nessuno è selezionato." - -#: AppTools/ToolRulesCheck.py:1224 -msgid "" -"One of the copper Gerber objects or the Outline Gerber object is not valid." -msgstr "" -"Uno degli oggetti Gerber in rame o l'oggetto Gerber del bordo non è valido." - -#: AppTools/ToolRulesCheck.py:1237 AppTools/ToolRulesCheck.py:1401 -msgid "" -"Outline Gerber object presence is mandatory for this rule but it is not " -"selected." -msgstr "" -"La presenza dell'oggetto Contorno Gerber è obbligatoria per questa regola ma " -"non è stato selezionato." - -#: AppTools/ToolRulesCheck.py:1254 AppTools/ToolRulesCheck.py:1281 -msgid "Silk to Silk clearance" -msgstr "Distanza tra serigrafie" - -#: AppTools/ToolRulesCheck.py:1267 -msgid "TOP -> Silk to Silk clearance" -msgstr "TOP -> distanza tra serigrafie" - -#: AppTools/ToolRulesCheck.py:1277 -msgid "BOTTOM -> Silk to Silk clearance" -msgstr "BOTTOM -> distanza tra serigrafie" - -#: AppTools/ToolRulesCheck.py:1333 -msgid "One or more of the Gerber objects is not valid." -msgstr "Uno o più oggetti gerber non sono validi." - -#: AppTools/ToolRulesCheck.py:1341 -msgid "TOP -> Silk to Solder Mask Clearance" -msgstr "TOP -> distanza tra serigrafie e Solder Mask" - -#: AppTools/ToolRulesCheck.py:1347 -msgid "BOTTOM -> Silk to Solder Mask Clearance" -msgstr "BOTTOM -> distanza tra serigrafie e Solder Mask" - -#: AppTools/ToolRulesCheck.py:1351 -msgid "" -"Both Silk and Solder Mask Gerber objects has to be either both Top or both " -"Bottom." -msgstr "" -"Sia gli oggetti Silk che quelli Solder Mask Gerber devono essere sia Top che " -"Bottom." - -#: AppTools/ToolRulesCheck.py:1387 -msgid "" -"One of the Silk Gerber objects or the Outline Gerber object is not valid." -msgstr "Uno degli oggetti Gerber serigrafia o bordo non è valido." - -#: AppTools/ToolRulesCheck.py:1431 -msgid "TOP -> Minimum Solder Mask Sliver" -msgstr "TOP -> Segmento Minimo solder mask" - -#: AppTools/ToolRulesCheck.py:1441 -msgid "BOTTOM -> Minimum Solder Mask Sliver" -msgstr "BOTTOM -> Segmento Minimo solder mask" - -#: AppTools/ToolRulesCheck.py:1490 -msgid "One of the Copper Gerber objects or the Excellon objects is not valid." -msgstr "Uno degli oggetti Gerber rame o Excellon non è valido." - -#: AppTools/ToolRulesCheck.py:1506 -msgid "" -"Excellon object presence is mandatory for this rule but none is selected." -msgstr "" -"La presenza dell'oggetto Excellon è obbligatoria per questa regola ma " -"nessuna è selezionata." - -#: AppTools/ToolRulesCheck.py:1579 AppTools/ToolRulesCheck.py:1592 -#: AppTools/ToolRulesCheck.py:1603 AppTools/ToolRulesCheck.py:1616 -msgid "STATUS" -msgstr "STATO" - -#: AppTools/ToolRulesCheck.py:1582 AppTools/ToolRulesCheck.py:1606 -msgid "FAILED" -msgstr "FALLITO" - -#: AppTools/ToolRulesCheck.py:1595 AppTools/ToolRulesCheck.py:1619 -msgid "PASSED" -msgstr "PASSATO" - -#: AppTools/ToolRulesCheck.py:1596 AppTools/ToolRulesCheck.py:1620 -msgid "Violations: There are no violations for the current rule." -msgstr "Violazioni: non ci sono violazioni per la regola attuale." - -#: AppTools/ToolShell.py:59 -msgid "Clear the text." -msgstr "" - -#: AppTools/ToolShell.py:91 AppTools/ToolShell.py:93 -msgid "...processing..." -msgstr "...elaborazione..." - -#: AppTools/ToolSolderPaste.py:37 -msgid "Solder Paste Tool" -msgstr "Strumento Solder Paste" - -#: AppTools/ToolSolderPaste.py:68 -#, fuzzy -#| msgid "Select Soldermask object" -msgid "Gerber Solderpaste object." -msgstr "Seleziona oggetto Soldermask" - -#: AppTools/ToolSolderPaste.py:81 -msgid "" -"Tools pool from which the algorithm\n" -"will pick the ones used for dispensing solder paste." -msgstr "" -"Set di strumenti da cui l'algoritmo\n" -"sceglierà quelli usati per l'erogazione della pasta saldante." - -#: AppTools/ToolSolderPaste.py:96 -msgid "" -"This is the Tool Number.\n" -"The solder dispensing will start with the tool with the biggest \n" -"diameter, continuing until there are no more Nozzle tools.\n" -"If there are no longer tools but there are still pads not covered\n" -" with solder paste, the app will issue a warning message box." -msgstr "" -"Questo è il numero dell'utensile.\n" -"L'erogazione della pasta saldante inizierà con l'utensile di diametro\n" -"più grande, continuando fino a quando non ci sono più strumenti ugello.\n" -"Se non ci sono più strumenti ma ci sono ancora pad non coperti\n" -" da pasta saldante, l'app mostrerà una finestra di avviso." - -#: AppTools/ToolSolderPaste.py:103 -msgid "" -"Nozzle tool Diameter. It's value (in current FlatCAM units)\n" -"is the width of the solder paste dispensed." -msgstr "" -"Diametro dell'ugello. Il suo valore (nelle attuali unità FlatCAM)\n" -"è la larghezza dell'erogazione della pasta salda." - -#: AppTools/ToolSolderPaste.py:110 -msgid "New Nozzle Tool" -msgstr "Nuovo utensile ugello" - -#: AppTools/ToolSolderPaste.py:129 -msgid "" -"Add a new nozzle tool to the Tool Table\n" -"with the diameter specified above." -msgstr "" -"Aggiungi un nuovo strumento ugello alla tabella degli strumenti\n" -"con il diametro sopra specificato." - -#: AppTools/ToolSolderPaste.py:151 -msgid "STEP 1" -msgstr "PASSO 1" - -#: AppTools/ToolSolderPaste.py:153 -msgid "" -"First step is to select a number of nozzle tools for usage\n" -"and then optionally modify the GCode parameters below." -msgstr "" -"Il primo passo è selezionare un numero di strumenti ugello da usare\n" -"e quindi (facoltativo) modificare i parametri GCode qui sotto." - -#: AppTools/ToolSolderPaste.py:156 -msgid "" -"Select tools.\n" -"Modify parameters." -msgstr "" -"Seleziona utensile.\n" -"Modifica parametri." - -#: AppTools/ToolSolderPaste.py:276 -msgid "" -"Feedrate (speed) while moving up vertically\n" -" to Dispense position (on Z plane)." -msgstr "" -"Avanzamento (velocità) durante lo spostamento in verticale\n" -" alla posizione di dispensa (sul piano Z)." - -#: AppTools/ToolSolderPaste.py:346 -msgid "" -"Generate GCode for Solder Paste dispensing\n" -"on PCB pads." -msgstr "" -"Genera GCode per l'erogazione della pasta saldante\n" -"sui pad del PCB." - -#: AppTools/ToolSolderPaste.py:367 -msgid "STEP 2" -msgstr "PASSO 2" - -#: AppTools/ToolSolderPaste.py:369 -msgid "" -"Second step is to create a solder paste dispensing\n" -"geometry out of an Solder Paste Mask Gerber file." -msgstr "" -"Il secondo passo è creare una geometria di erogazione\n" -"di pasta salda da un file Gerber di Solder Masck." - -#: AppTools/ToolSolderPaste.py:375 -msgid "Generate solder paste dispensing geometry." -msgstr "Genera geometria di erogazione della pasta saldante." - -#: AppTools/ToolSolderPaste.py:398 -msgid "Geo Result" -msgstr "Risultato Geo" - -#: AppTools/ToolSolderPaste.py:400 -msgid "" -"Geometry Solder Paste object.\n" -"The name of the object has to end in:\n" -"'_solderpaste' as a protection." -msgstr "" -"Oggetto geometria Solder Paste.\n" -"Il nome dell'oggetto deve terminare con:\n" -"'_solderpaste' come protezione." - -#: AppTools/ToolSolderPaste.py:409 -msgid "STEP 3" -msgstr "PASSO 3" - -#: AppTools/ToolSolderPaste.py:411 -msgid "" -"Third step is to select a solder paste dispensing geometry,\n" -"and then generate a CNCJob object.\n" -"\n" -"REMEMBER: if you want to create a CNCJob with new parameters,\n" -"first you need to generate a geometry with those new params,\n" -"and only after that you can generate an updated CNCJob." -msgstr "" -"Il terzo passo è quello di selezionare una geometria di erogazione della " -"pasta salda,\n" -"e quindi generare un oggetto CNCJob.\n" -"\n" -"RICORDA: se vuoi creare un CNCJob con nuovi parametri,\n" -"per prima cosa devi generare una geometria con quei nuovi parametri,\n" -"e solo successivamente puoi generare un CNCJob aggiornato." - -#: AppTools/ToolSolderPaste.py:432 -msgid "CNC Result" -msgstr "Risultato CNC" - -#: AppTools/ToolSolderPaste.py:434 -msgid "" -"CNCJob Solder paste object.\n" -"In order to enable the GCode save section,\n" -"the name of the object has to end in:\n" -"'_solderpaste' as a protection." -msgstr "" -"Oggetto CNCJob per pasta saldante.\n" -"Per abilitare la sezione di salvataggio del GCode,\n" -"il nome dell'oggetto deve terminare in:\n" -"'_solderpaste' come protezione." - -#: AppTools/ToolSolderPaste.py:444 -msgid "View GCode" -msgstr "Vedi GCode" - -#: AppTools/ToolSolderPaste.py:446 -msgid "" -"View the generated GCode for Solder Paste dispensing\n" -"on PCB pads." -msgstr "" -"Visualizza il GCode generato per l'erogazione della pasta salda\n" -"sui pad del PCB." - -#: AppTools/ToolSolderPaste.py:456 -msgid "Save GCode" -msgstr "Salva GCode" - -#: AppTools/ToolSolderPaste.py:458 -msgid "" -"Save the generated GCode for Solder Paste dispensing\n" -"on PCB pads, to a file." -msgstr "" -"Salva il GCode generato per l'erogazione della pasta salda\n" -"sui pad del PCB in un file." - -#: AppTools/ToolSolderPaste.py:468 -msgid "STEP 4" -msgstr "PASSO 4" - -#: AppTools/ToolSolderPaste.py:470 -msgid "" -"Fourth step (and last) is to select a CNCJob made from \n" -"a solder paste dispensing geometry, and then view/save it's GCode." -msgstr "" -"Il quarto (e ultimo) passo è selezionare un CNCJob creato da una geometria\n" -"di distribuzione di pasta salda, quindi visualizza/salva il suo GCode." - -#: AppTools/ToolSolderPaste.py:930 -msgid "New Nozzle tool added to Tool Table." -msgstr "Nuovo utensile ugello aggiunto alla tabella." - -#: AppTools/ToolSolderPaste.py:973 -msgid "Nozzle tool from Tool Table was edited." -msgstr "Utensile ugello modificato nella tabella." - -#: AppTools/ToolSolderPaste.py:1032 -msgid "Delete failed. Select a Nozzle tool to delete." -msgstr "Cancellazione fallita. Scegli un utensile ugello da cancellare." - -#: AppTools/ToolSolderPaste.py:1038 -msgid "Nozzle tool(s) deleted from Tool Table." -msgstr "Utensile(i) ugello cancellato(i) dalla tabella." - -#: AppTools/ToolSolderPaste.py:1094 -msgid "No SolderPaste mask Gerber object loaded." -msgstr "Nessun oggetto Gerber SolderPaste mask caricato." - -#: AppTools/ToolSolderPaste.py:1112 -msgid "Creating Solder Paste dispensing geometry." -msgstr "Creazione della geometria di erogazione della pasta per saldatura." - -#: AppTools/ToolSolderPaste.py:1125 -msgid "No Nozzle tools in the tool table." -msgstr "Nessun utensile ugello nella tabella utensili." - -#: AppTools/ToolSolderPaste.py:1251 -msgid "Cancelled. Empty file, it has no geometry..." -msgstr "Annullato. File vuoto, non ha geometrie..." - -#: AppTools/ToolSolderPaste.py:1254 -msgid "Solder Paste geometry generated successfully" -msgstr "Geometria solder paste generata con successo" - -#: AppTools/ToolSolderPaste.py:1261 -msgid "Some or all pads have no solder due of inadequate nozzle diameters..." -msgstr "" -"Alcuni o tutti i pad non hanno solder a causa di diametri degli ugelli " -"inadeguati ..." - -#: AppTools/ToolSolderPaste.py:1275 -msgid "Generating Solder Paste dispensing geometry..." -msgstr "" -"Generazione della geometria di erogazione della pasta per saldatura ..." - -#: AppTools/ToolSolderPaste.py:1295 -msgid "There is no Geometry object available." -msgstr "Non è disponibile alcun oggetto Geometria." - -#: AppTools/ToolSolderPaste.py:1300 -msgid "This Geometry can't be processed. NOT a solder_paste_tool geometry." -msgstr "" -"Questa geometria non può essere elaborata. NON è una geometria " -"solder_paste_tool." - -#: AppTools/ToolSolderPaste.py:1336 -msgid "An internal error has ocurred. See shell.\n" -msgstr "Errore interno. Vedi shell.\n" - -#: AppTools/ToolSolderPaste.py:1401 -msgid "ToolSolderPaste CNCjob created" -msgstr "CNCjob ToolSolderPaste creato" - -#: AppTools/ToolSolderPaste.py:1420 -msgid "SP GCode Editor" -msgstr "Editor GCode solder past" - -#: AppTools/ToolSolderPaste.py:1432 AppTools/ToolSolderPaste.py:1437 -#: AppTools/ToolSolderPaste.py:1492 -msgid "" -"This CNCJob object can't be processed. NOT a solder_paste_tool CNCJob object." -msgstr "" -"Questo oggetto CNCJob non può essere elaborato. NON è un oggetto CNCJob " -"solder_paste_tool." - -#: AppTools/ToolSolderPaste.py:1462 -msgid "No Gcode in the object" -msgstr "Nessun GCode nell'oggetto" - -#: AppTools/ToolSolderPaste.py:1502 -msgid "Export GCode ..." -msgstr "Esportazione GCode ..." - -#: AppTools/ToolSolderPaste.py:1550 -msgid "Solder paste dispenser GCode file saved to" -msgstr "File GCode del distributore di pasta per saldatura salvato in" - -#: AppTools/ToolSub.py:83 -msgid "" -"Gerber object from which to subtract\n" -"the subtractor Gerber object." -msgstr "" -"Oggetto Gerber da cui sottrarre\n" -"l'oggetto Gerber sottraendo." - -#: AppTools/ToolSub.py:96 AppTools/ToolSub.py:151 -msgid "Subtractor" -msgstr "Sottraendo" - -#: AppTools/ToolSub.py:98 -msgid "" -"Gerber object that will be subtracted\n" -"from the target Gerber object." -msgstr "" -"Oggetto Gerber che verrà sottratto\n" -"dall'oggetto Gerber di destinazione." - -#: AppTools/ToolSub.py:105 -msgid "Subtract Gerber" -msgstr "Sottrai Gerber" - -#: AppTools/ToolSub.py:107 -msgid "" -"Will remove the area occupied by the subtractor\n" -"Gerber from the Target Gerber.\n" -"Can be used to remove the overlapping silkscreen\n" -"over the soldermask." -msgstr "" -"Rimuoverà l'area occupata dal Gerber\n" -"sottrattore dal Gerber Target.\n" -"Può essere usato per rimuovere la serigrafia\n" -"sovrapposta al soldermask." - -#: AppTools/ToolSub.py:138 -msgid "" -"Geometry object from which to subtract\n" -"the subtractor Geometry object." -msgstr "" -"Oggetto geometria da cui sottrarre\n" -"l'oggetto Geometria del sottrattore." - -#: AppTools/ToolSub.py:153 -msgid "" -"Geometry object that will be subtracted\n" -"from the target Geometry object." -msgstr "" -"Oggetto Geometria che verrà sottratto\n" -"dall'oggetto Geometria di destinazione." - -#: AppTools/ToolSub.py:161 -msgid "" -"Checking this will close the paths cut by the Geometry subtractor object." -msgstr "" -"Selezionandolo verranno chiusi i percorsi tagliati dall'oggetto geometria " -"sottrattore." - -#: AppTools/ToolSub.py:164 -msgid "Subtract Geometry" -msgstr "Sottrai geometria" - -#: AppTools/ToolSub.py:166 -msgid "" -"Will remove the area occupied by the subtractor\n" -"Geometry from the Target Geometry." -msgstr "" -"Rimuoverà l'area occupata dalla geometria\n" -"sottrattore dalla geometria target." - -#: AppTools/ToolSub.py:264 -msgid "Sub Tool" -msgstr "Strumento sottrazione" - -#: AppTools/ToolSub.py:285 AppTools/ToolSub.py:490 -msgid "No Target object loaded." -msgstr "Nessun oggetto target caricato." - -#: AppTools/ToolSub.py:288 -msgid "Loading geometry from Gerber objects." -msgstr "Caricamento della geometria dagli oggetti Gerber." - -#: AppTools/ToolSub.py:300 AppTools/ToolSub.py:505 -msgid "No Subtractor object loaded." -msgstr "Nessun oggetto sottrattore caricato." - -#: AppTools/ToolSub.py:342 -msgid "Finished parsing geometry for aperture" -msgstr "Analisi geometria aperture terminate" - -#: AppTools/ToolSub.py:344 -msgid "Subtraction aperture processing finished." -msgstr "" - -#: AppTools/ToolSub.py:464 AppTools/ToolSub.py:662 -msgid "Generating new object ..." -msgstr "Generazione nuovo oggetto ..." - -#: AppTools/ToolSub.py:467 AppTools/ToolSub.py:666 AppTools/ToolSub.py:745 -msgid "Generating new object failed." -msgstr "Generazione nuovo oggetto fallita." - -#: AppTools/ToolSub.py:471 AppTools/ToolSub.py:672 -msgid "Created" -msgstr "Creato" - -#: AppTools/ToolSub.py:519 -msgid "Currently, the Subtractor geometry cannot be of type Multigeo." -msgstr "" -"Attualmente, la geometria del sottrattore non può essere di tipo Multigeo." - -#: AppTools/ToolSub.py:564 -msgid "Parsing solid_geometry ..." -msgstr "Analisi soild_geometry ..." - -#: AppTools/ToolSub.py:566 -msgid "Parsing solid_geometry for tool" -msgstr "Analisi soild_geometry per utensili" - -#: AppTools/ToolTransform.py:23 -msgid "Object Transform" -msgstr "Trasformazione oggetto" - -#: AppTools/ToolTransform.py:78 -msgid "" -"Rotate the selected object(s).\n" -"The point of reference is the middle of\n" -"the bounding box for all selected objects." -msgstr "" -"Ruota gli oggetti selezionati.\n" -"Il punto di riferimento è il centro del\n" -"rettangolo di selezione per tutti gli oggetti selezionati." - -#: AppTools/ToolTransform.py:99 AppTools/ToolTransform.py:120 -msgid "" -"Angle for Skew action, in degrees.\n" -"Float number between -360 and 360." -msgstr "" -"Angolo per l'azione di inclinazione, in gradi.\n" -"Numero float compreso tra -360 e 360." - -#: AppTools/ToolTransform.py:109 AppTools/ToolTransform.py:130 -msgid "" -"Skew/shear the selected object(s).\n" -"The point of reference is the middle of\n" -"the bounding box for all selected objects." -msgstr "" -"Inclina gli oggetti selezionati.\n" -"Il punto di riferimento è il centro del\n" -"rettangolo di selezione per tutti gli oggetti selezionati." - -#: AppTools/ToolTransform.py:159 AppTools/ToolTransform.py:179 -msgid "" -"Scale the selected object(s).\n" -"The point of reference depends on \n" -"the Scale reference checkbox state." -msgstr "" -"Ridimensiona gli oggetti selezionati.\n" -"Il punto di riferimento dipende\n" -"dallo stato della casella di controllo Riferimento scala." - -#: AppTools/ToolTransform.py:228 AppTools/ToolTransform.py:248 -msgid "" -"Offset the selected object(s).\n" -"The point of reference is the middle of\n" -"the bounding box for all selected objects.\n" -msgstr "" -"Sposta gli oggetti selezionati.\n" -"Il punto di riferimento è il centro del\n" -"rettangolo di selezione per tutti gli oggetti selezionati.\n" - -#: AppTools/ToolTransform.py:268 AppTools/ToolTransform.py:273 -msgid "Flip the selected object(s) over the X axis." -msgstr "Capovolgi gli oggetti selezionati sull'asse X." - -#: AppTools/ToolTransform.py:297 -msgid "Ref. Point" -msgstr "Punto di riferimento" - -#: AppTools/ToolTransform.py:348 -msgid "" -"Create the buffer effect on each geometry,\n" -"element from the selected object, using the distance." -msgstr "" -"Crea l'effetto buffer su ogni geometria,\n" -"elemento dall'oggetto selezionato, usando la distanza." - -#: AppTools/ToolTransform.py:374 -msgid "" -"Create the buffer effect on each geometry,\n" -"element from the selected object, using the factor." -msgstr "" -"Crea l'effetto buffer su ogni geometria,\n" -"elemento dall'oggetto selezionato, usando il fattore." - -#: AppTools/ToolTransform.py:479 -msgid "Buffer D" -msgstr "Buffer D" - -#: AppTools/ToolTransform.py:480 -msgid "Buffer F" -msgstr "Buffer F" - -#: AppTools/ToolTransform.py:557 -msgid "Rotate transformation can not be done for a value of 0." -msgstr "" -"La trasformazione di rotazione non può essere eseguita per un valore pari a " -"0." - -#: AppTools/ToolTransform.py:596 AppTools/ToolTransform.py:619 -msgid "Scale transformation can not be done for a factor of 0 or 1." -msgstr "" -"La trasformazione in scala non può essere eseguita per un fattore 0 o 1." - -#: AppTools/ToolTransform.py:634 AppTools/ToolTransform.py:644 -msgid "Offset transformation can not be done for a value of 0." -msgstr "" -"La trasformazione offset non può essere eseguita per un valore pari a 0." - -#: AppTools/ToolTransform.py:676 -msgid "No object selected. Please Select an object to rotate!" -msgstr "Nessun oggetto selezionato. Seleziona un oggetto da ruotare!" - -#: AppTools/ToolTransform.py:702 -msgid "CNCJob objects can't be rotated." -msgstr "Gli oggetti CNCJob non possono essere ruotati." - -#: AppTools/ToolTransform.py:710 -msgid "Rotate done" -msgstr "Rotazione effettuata" - -#: AppTools/ToolTransform.py:713 AppTools/ToolTransform.py:783 -#: AppTools/ToolTransform.py:833 AppTools/ToolTransform.py:887 -#: AppTools/ToolTransform.py:917 AppTools/ToolTransform.py:953 -msgid "Due of" -msgstr "A causa di" - -#: AppTools/ToolTransform.py:713 AppTools/ToolTransform.py:783 -#: AppTools/ToolTransform.py:833 AppTools/ToolTransform.py:887 -#: AppTools/ToolTransform.py:917 AppTools/ToolTransform.py:953 -msgid "action was not executed." -msgstr "l'azione non è stata eseguita." - -#: AppTools/ToolTransform.py:725 -msgid "No object selected. Please Select an object to flip" -msgstr "Nessun oggetto selezionato. Seleziona un oggetto da capovolgere" - -#: AppTools/ToolTransform.py:758 -msgid "CNCJob objects can't be mirrored/flipped." -msgstr "Gli oggetti CNCJob non possono essere specchiati/capovolti." - -#: AppTools/ToolTransform.py:793 -msgid "Skew transformation can not be done for 0, 90 and 180 degrees." -msgstr "" -"La trasformazione dell'inclinazione non può essere eseguita per 0, 90 e 180 " -"gradi." - -#: AppTools/ToolTransform.py:798 -msgid "No object selected. Please Select an object to shear/skew!" -msgstr "Nessun oggetto selezionato. Seleziona un oggetto da inclinare!" - -#: AppTools/ToolTransform.py:818 -msgid "CNCJob objects can't be skewed." -msgstr "Gli oggetti CNCJob non possono essere inclinati." - -#: AppTools/ToolTransform.py:830 -msgid "Skew on the" -msgstr "Inclina su" - -#: AppTools/ToolTransform.py:830 AppTools/ToolTransform.py:884 -#: AppTools/ToolTransform.py:914 -msgid "axis done" -msgstr "asse eseguito" - -#: AppTools/ToolTransform.py:844 -msgid "No object selected. Please Select an object to scale!" -msgstr "Nessun oggetto selezionato. Seleziona un oggetto da ridimensionare!" - -#: AppTools/ToolTransform.py:875 -msgid "CNCJob objects can't be scaled." -msgstr "Gli oggetti CNCJob non possono essere ridimensionati." - -#: AppTools/ToolTransform.py:884 -msgid "Scale on the" -msgstr "Scala su" - -#: AppTools/ToolTransform.py:894 -msgid "No object selected. Please Select an object to offset!" -msgstr "Nessun oggetto selezionato. Seleziona un oggetto da compensare!" - -#: AppTools/ToolTransform.py:901 -msgid "CNCJob objects can't be offset." -msgstr "Gli oggetti CNCJob non possono essere offsettati." - -#: AppTools/ToolTransform.py:914 -msgid "Offset on the" -msgstr "Offset su" - -#: AppTools/ToolTransform.py:924 -msgid "No object selected. Please Select an object to buffer!" -msgstr "Nessun oggetto selezionato. Seleziona un oggetto da bufferizzare!" - -#: AppTools/ToolTransform.py:927 -msgid "Applying Buffer" -msgstr "Applicazione del buffer" - -#: AppTools/ToolTransform.py:931 -msgid "CNCJob objects can't be buffered." -msgstr "Gli oggetti CNCJob non possono essere bufferizzati." - -#: AppTools/ToolTransform.py:948 -msgid "Buffer done" -msgstr "Bugger applicato" - -#: AppTranslation.py:104 -msgid "The application will restart." -msgstr "L'applicazione sarà riavviata." - -#: AppTranslation.py:106 -msgid "Are you sure do you want to change the current language to" -msgstr "Sei sicuro di voler cambiare lingua in" - -#: AppTranslation.py:107 -msgid "Apply Language ..." -msgstr "Applica lingua ..." - -#: AppTranslation.py:203 App_Main.py:3151 -msgid "" -"There are files/objects modified in FlatCAM. \n" -"Do you want to Save the project?" -msgstr "" -"Ci sono files/oggetti modificati in FlatCAM. \n" -"Vuoi salvare il progetto?" - -#: AppTranslation.py:206 App_Main.py:3154 App_Main.py:6411 -msgid "Save changes" -msgstr "Salva modifiche" - -#: App_Main.py:477 +#: FlatCAMApp.py:490 msgid "FlatCAM is initializing ..." msgstr "FlatCAM sta inizializzando ..." -#: App_Main.py:620 +#: FlatCAMApp.py:638 msgid "Could not find the Language files. The App strings are missing." msgstr "Impossibile trovare i file della lingua. Mancano le stringhe dell'app." -#: App_Main.py:692 +#: FlatCAMApp.py:708 msgid "" "FlatCAM is initializing ...\n" "Canvas initialization started." msgstr "" "FlatCAM sta inizializzando ...\n" -"Inizializzazione della Grafica avviata." +"Inizializzazione della tela avviata." -#: App_Main.py:712 +#: FlatCAMApp.py:728 msgid "" "FlatCAM is initializing ...\n" "Canvas initialization started.\n" "Canvas initialization finished in" msgstr "" "FlatCAM sta inizializzando ...\n" -"Inizializzazione della Grafica avviata.\n" -"Inizializzazione della Grafica completata" +"Inizializzazione della tela avviata.\n" +"Inizializzazione della tela completata" -#: App_Main.py:1558 App_Main.py:6524 +#: FlatCAMApp.py:1592 FlatCAMApp.py:7450 msgid "New Project - Not saved" msgstr "Nuovo progetto - Non salvato" -#: App_Main.py:1659 +#: FlatCAMApp.py:1688 msgid "" "Found old default preferences files. Please reboot the application to update." msgstr "" "Trovati vecchi file delle preferenze predefinite. Riavvia l'applicazione per " "l'aggiornamento." -#: App_Main.py:1726 +#: FlatCAMApp.py:1739 FlatCAMApp.py:2511 FlatCAMApp.py:2546 FlatCAMApp.py:2593 +#: FlatCAMApp.py:4539 FlatCAMApp.py:7534 FlatCAMApp.py:7571 FlatCAMApp.py:7613 +#: FlatCAMApp.py:7642 FlatCAMApp.py:7683 FlatCAMApp.py:7708 FlatCAMApp.py:7760 +#: FlatCAMApp.py:7795 FlatCAMApp.py:7840 FlatCAMApp.py:7881 FlatCAMApp.py:7922 +#: FlatCAMApp.py:7963 FlatCAMApp.py:8004 FlatCAMApp.py:8048 FlatCAMApp.py:8104 +#: FlatCAMApp.py:8136 FlatCAMApp.py:8168 FlatCAMApp.py:8401 FlatCAMApp.py:8439 +#: FlatCAMApp.py:8482 FlatCAMApp.py:8559 FlatCAMApp.py:8614 +#: FlatCAMBookmark.py:300 FlatCAMBookmark.py:342 FlatCAMDB.py:663 +#: FlatCAMDB.py:709 FlatCAMDB.py:2125 FlatCAMDB.py:2171 +#: flatcamEditors/FlatCAMExcEditor.py:1023 +#: flatcamEditors/FlatCAMExcEditor.py:1091 +#: flatcamEditors/FlatCAMTextEditor.py:223 flatcamGUI/FlatCAMGUI.py:3443 +#: flatcamGUI/FlatCAMGUI.py:3659 flatcamGUI/FlatCAMGUI.py:3874 +#: flatcamObjects/ObjectCollection.py:126 flatcamTools/ToolFilm.py:754 +#: flatcamTools/ToolFilm.py:900 flatcamTools/ToolImage.py:247 +#: flatcamTools/ToolMove.py:269 flatcamTools/ToolPcbWizard.py:301 +#: flatcamTools/ToolPcbWizard.py:324 flatcamTools/ToolQRCode.py:791 +#: flatcamTools/ToolQRCode.py:838 +msgid "Cancelled." +msgstr "Cancellato." + +#: FlatCAMApp.py:1755 msgid "Open Config file failed." msgstr "Apri file di configurazione non riuscito." -#: App_Main.py:1741 +#: FlatCAMApp.py:1770 msgid "Open Script file failed." msgstr "Apri file di script non riuscito." -#: App_Main.py:1767 +#: FlatCAMApp.py:1796 msgid "Open Excellon file failed." msgstr "Apri file Excellon non riuscito." -#: App_Main.py:1780 +#: FlatCAMApp.py:1809 msgid "Open GCode file failed." msgstr "Apri file GCode non riuscito." -#: App_Main.py:1793 +#: FlatCAMApp.py:1822 msgid "Open Gerber file failed." msgstr "Apri file Gerber non riuscito." -#: App_Main.py:2116 -#, fuzzy -#| msgid "Select a Geometry, Gerber or Excellon Object to edit." -msgid "Select a Geometry, Gerber, Excellon or CNCJob Object to edit." +#: FlatCAMApp.py:2130 +msgid "Select a Geometry, Gerber or Excellon Object to edit." msgstr "Seleziona un oggetto Geometry, Gerber o Excellon da modificare." -#: App_Main.py:2131 +#: FlatCAMApp.py:2145 msgid "" "Simultaneous editing of tools geometry in a MultiGeo Geometry is not " "possible.\n" @@ -17250,91 +114,197 @@ msgstr "" "MultiGeo non è possibile.\n" "Modifica solo una geometria alla volta." -#: App_Main.py:2197 +#: FlatCAMApp.py:2203 msgid "Editor is activated ..." msgstr "L'editor è attivato ..." -#: App_Main.py:2218 +#: FlatCAMApp.py:2224 msgid "Do you want to save the edited object?" msgstr "Vuoi salvare l'oggetto modificato?" -#: App_Main.py:2254 +#: FlatCAMApp.py:2225 flatcamGUI/FlatCAMGUI.py:2288 +msgid "Close Editor" +msgstr "Chiudi Editor" + +#: FlatCAMApp.py:2228 FlatCAMApp.py:3517 FlatCAMApp.py:6084 FlatCAMApp.py:7344 +#: FlatCAMTranslation.py:109 FlatCAMTranslation.py:207 +#: flatcamGUI/FlatCAMGUI.py:2519 +#: flatcamGUI/preferences/PreferencesUIManager.py:1118 +msgid "Yes" +msgstr "Sì" + +#: FlatCAMApp.py:2229 FlatCAMApp.py:3518 FlatCAMApp.py:6085 FlatCAMApp.py:7345 +#: FlatCAMTranslation.py:110 FlatCAMTranslation.py:208 +#: flatcamGUI/FlatCAMGUI.py:2520 +#: flatcamGUI/preferences/PreferencesUIManager.py:1119 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:164 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:150 +#: flatcamTools/ToolNCC.py:182 flatcamTools/ToolPaint.py:166 +msgid "No" +msgstr "No" + +#: FlatCAMApp.py:2230 FlatCAMApp.py:3519 FlatCAMApp.py:4477 FlatCAMApp.py:5102 +#: FlatCAMApp.py:7346 FlatCAMDB.py:128 FlatCAMDB.py:1689 +#: flatcamGUI/FlatCAMGUI.py:1347 +msgid "Cancel" +msgstr "Cancellare" + +#: FlatCAMApp.py:2262 msgid "Object empty after edit." msgstr "Oggetto vuoto dopo la modifica." -#: App_Main.py:2259 App_Main.py:2277 App_Main.py:2296 +#: FlatCAMApp.py:2266 FlatCAMApp.py:2287 FlatCAMApp.py:2309 msgid "Editor exited. Editor content saved." msgstr "Edito chiuso. Contenuto salvato." -#: App_Main.py:2300 App_Main.py:2324 App_Main.py:2342 +#: FlatCAMApp.py:2313 FlatCAMApp.py:2336 FlatCAMApp.py:2354 msgid "Select a Gerber, Geometry or Excellon Object to update." msgstr "Seleziona un oggetto Gerber, Geometry o Excellon da aggiornare." -#: App_Main.py:2303 +#: FlatCAMApp.py:2316 msgid "is updated, returning to App..." msgstr "viene aggiornato, tornando all'App ..." -#: App_Main.py:2310 +#: FlatCAMApp.py:2323 msgid "Editor exited. Editor content was not saved." msgstr "Editor chiuso. Contenuto non salvato." -#: App_Main.py:2443 App_Main.py:2447 +#: FlatCAMApp.py:2503 FlatCAMApp.py:2507 msgid "Import FlatCAM Preferences" msgstr "Importa le preferenze di FlatCAM" -#: App_Main.py:2458 +#: FlatCAMApp.py:2518 msgid "Imported Defaults from" msgstr "Predefiniti importati da" -#: App_Main.py:2478 App_Main.py:2484 +#: FlatCAMApp.py:2538 FlatCAMApp.py:2543 msgid "Export FlatCAM Preferences" msgstr "Esporta le preferenze di FlatCAM" -#: App_Main.py:2504 +#: FlatCAMApp.py:2557 FlatCAMApp.py:2625 +#: flatcamGUI/preferences/PreferencesUIManager.py:1014 +msgid "Failed to write defaults to file." +msgstr "Impossibile scrivere le impostazioni predefinite nel file." + +#: FlatCAMApp.py:2563 msgid "Exported preferences to" msgstr "Preferenze esportate in" -#: App_Main.py:2524 App_Main.py:2529 +#: FlatCAMApp.py:2583 FlatCAMApp.py:2588 msgid "Save to file" msgstr "Salvato su file" -#: App_Main.py:2553 +#: FlatCAMApp.py:2601 FlatCAMApp.py:8858 FlatCAMApp.py:8906 FlatCAMApp.py:9031 +#: FlatCAMApp.py:9167 FlatCAMBookmark.py:308 FlatCAMDB.py:671 FlatCAMDB.py:2133 +#: flatcamEditors/FlatCAMTextEditor.py:276 flatcamObjects/FlatCAMCNCJob.py:959 +#: flatcamTools/ToolFilm.py:1031 flatcamTools/ToolFilm.py:1212 +#: flatcamTools/ToolSolderPaste.py:1534 +msgid "" +"Permission denied, saving not possible.\n" +"Most likely another app is holding the file open and not accessible." +msgstr "" +"Autorizzazione negata, salvataggio impossibile.\n" +"Molto probabilmente un'altra app tiene il file aperto e non accessibile." + +#: FlatCAMApp.py:2612 msgid "Could not load the file." msgstr "Impossibile caricare il file." -#: App_Main.py:2569 +#: FlatCAMApp.py:2628 msgid "Exported file to" msgstr "File esportato su" -#: App_Main.py:2606 +#: FlatCAMApp.py:2711 msgid "Failed to open recent files file for writing." msgstr "Errore durante l'apertura dei file recenti in scrittura." -#: App_Main.py:2617 +#: FlatCAMApp.py:2722 msgid "Failed to open recent projects file for writing." msgstr "Errore durante l'apertura dei progetti recenti in scrittura." -#: App_Main.py:2672 +#: FlatCAMApp.py:2805 FlatCAMApp.py:9376 FlatCAMApp.py:9440 FlatCAMApp.py:9571 +#: FlatCAMApp.py:9636 FlatCAMApp.py:10286 +#: flatcamEditors/FlatCAMGrbEditor.py:4364 +#: flatcamObjects/FlatCAMGeometry.py:1697 flatcamParsers/ParseExcellon.py:897 +#: flatcamTools/ToolPcbWizard.py:432 +msgid "An internal error has occurred. See shell.\n" +msgstr "Errore interno. Vedi shell.\n" + +#: FlatCAMApp.py:2806 +#, python-brace-format +msgid "" +"Object ({kind}) failed because: {error} \n" +"\n" +msgstr "" +"Oggetto ({kind}) fallito a causa di: {error} \n" +"\n" + +#: FlatCAMApp.py:2821 +msgid "Converting units to " +msgstr "Converti unità in " + +#: FlatCAMApp.py:2930 +msgid "CREATE A NEW FLATCAM TCL SCRIPT" +msgstr "CREA UN NUOVO SCRIPT TCL FLATCAM" + +#: FlatCAMApp.py:2931 +msgid "TCL Tutorial is here" +msgstr "Qui c'è il tutorial TCL" + +#: FlatCAMApp.py:2933 +msgid "FlatCAM commands list" +msgstr "Lista comandi FlatCAM" + +#: FlatCAMApp.py:2934 +msgid "" +"Type >help< followed by Run Code for a list of FlatCAM Tcl Commands " +"(displayed in Tcl Shell)." +msgstr "" +"Prova >help< seguito dal Run Code per una lista di comandi Tcl FlatCAM " +"(visualizzati nella shell)." + +#: FlatCAMApp.py:2981 FlatCAMApp.py:2987 FlatCAMApp.py:2993 FlatCAMApp.py:2999 +#: FlatCAMApp.py:3005 FlatCAMApp.py:3011 +msgid "created/selected" +msgstr "creato/selezionato" + +#: FlatCAMApp.py:3026 FlatCAMApp.py:5188 flatcamObjects/FlatCAMObj.py:248 +#: flatcamObjects/FlatCAMObj.py:279 flatcamObjects/FlatCAMObj.py:295 +#: flatcamObjects/FlatCAMObj.py:375 flatcamTools/ToolCopperThieving.py:1481 +#: flatcamTools/ToolFiducials.py:809 flatcamTools/ToolMove.py:229 +#: flatcamTools/ToolQRCode.py:728 +msgid "Plotting" +msgstr "Sto tracciando" + +#: FlatCAMApp.py:3089 flatcamGUI/FlatCAMGUI.py:545 +msgid "About FlatCAM" +msgstr "Informazioni su FlatCAM" + +#: FlatCAMApp.py:3115 msgid "2D Computer-Aided Printed Circuit Board Manufacturing" msgstr "Creazione Printed Circuit Board 2D Assistito da Computer" -#: App_Main.py:2673 +#: FlatCAMApp.py:3116 msgid "Development" msgstr "Sviluppo" -#: App_Main.py:2674 +#: FlatCAMApp.py:3117 msgid "DOWNLOAD" msgstr "DOWNLOAD" -#: App_Main.py:2675 +#: FlatCAMApp.py:3118 msgid "Issue tracker" msgstr "Flusso problemi" -#: App_Main.py:2694 +#: FlatCAMApp.py:3122 FlatCAMApp.py:3483 flatcamGUI/GUIElements.py:2583 +msgid "Close" +msgstr "Chiudi" + +#: FlatCAMApp.py:3137 msgid "Licensed under the MIT license" msgstr "Con licenza MIT" -#: App_Main.py:2703 +#: FlatCAMApp.py:3146 msgid "" "Permission is hereby granted, free of charge, to any person obtaining a " "copy\n" @@ -17387,25 +357,14 @@ msgstr "" "OPERAZIONI\n" "DEL SOFTWARE." -#: App_Main.py:2725 -#, fuzzy -#| msgid "" -#| "Some of the icons used are from the following sources:
    Icons by " -#| "Freepik from www.flaticon.com
    Icons by Icons8
    Icons by oNline Web Fonts" +#: FlatCAMApp.py:3168 msgid "" "Some of the icons used are from the following sources:
    Icons by Icons8
    Icons by oNline Web Fonts" +"onlinewebfonts.com\">oNline Web Fonts" msgstr "" "Alcune delle icone usate provengono dalle seguenti sorgenti:
    Icone " "di Icons8
    Icone di oNline Web Fonts" -#: App_Main.py:2761 +#: FlatCAMApp.py:3201 msgid "Splash" msgstr "Splash" -#: App_Main.py:2767 +#: FlatCAMApp.py:3207 msgid "Programmers" msgstr "Programmatori" -#: App_Main.py:2773 +#: FlatCAMApp.py:3213 msgid "Translators" msgstr "Traduttori" -#: App_Main.py:2779 +#: FlatCAMApp.py:3219 msgid "License" msgstr "Licenza" -#: App_Main.py:2785 +#: FlatCAMApp.py:3225 msgid "Attributions" msgstr "Attribuizioni" -#: App_Main.py:2808 +#: FlatCAMApp.py:3248 msgid "Programmer" msgstr "Programmatori" -#: App_Main.py:2809 +#: FlatCAMApp.py:3249 msgid "Status" msgstr "Stato" -#: App_Main.py:2810 App_Main.py:2890 +#: FlatCAMApp.py:3250 FlatCAMApp.py:3330 msgid "E-mail" msgstr "E-mail" -#: App_Main.py:2813 -#, fuzzy -#| msgid "Programmer" -msgid "Program Author" -msgstr "Programmatori" - -#: App_Main.py:2818 +#: FlatCAMApp.py:3258 msgid "BETA Maintainer >= 2019" msgstr "Manutenzione BETA >= 2019" -#: App_Main.py:2887 +#: FlatCAMApp.py:3327 msgid "Language" msgstr "Lingua" -#: App_Main.py:2888 +#: FlatCAMApp.py:3328 msgid "Translator" msgstr "Traduttore" -#: App_Main.py:2889 +#: FlatCAMApp.py:3329 msgid "Corrections" msgstr "Correzioni" -#: App_Main.py:2963 -#, fuzzy -#| msgid "Transformations" -msgid "Important Information's" -msgstr "Trasformazioni" +#: FlatCAMApp.py:3454 FlatCAMApp.py:3463 flatcamGUI/FlatCAMGUI.py:527 +msgid "Bookmarks Manager" +msgstr "Gestore segnalibri" -#: App_Main.py:3111 +#: FlatCAMApp.py:3474 msgid "" "This entry will resolve to another website if:\n" "\n" @@ -17494,29 +445,45 @@ msgstr "" "Se non riesci ad ottenere informazioni su FlatCAM beta\n" "usa il link al canale YouTube nel menu Aiuto." -#: App_Main.py:3118 +#: FlatCAMApp.py:3481 msgid "Alternative website" msgstr "Sito web alternativo" -#: App_Main.py:3421 +#: FlatCAMApp.py:3507 flatcamGUI/FlatCAMGUI.py:4244 +msgid "Application is saving the project. Please wait ..." +msgstr "L'applicazione sta salvando il progetto. Attendere ..." + +#: FlatCAMApp.py:3512 FlatCAMTranslation.py:202 +msgid "" +"There are files/objects modified in FlatCAM. \n" +"Do you want to Save the project?" +msgstr "" +"Ci sono files/oggetti modificati in FlatCAM. \n" +"Vuoi salvare il progetto?" + +#: FlatCAMApp.py:3515 FlatCAMApp.py:7342 FlatCAMTranslation.py:205 +msgid "Save changes" +msgstr "Salva modifiche" + +#: FlatCAMApp.py:3777 msgid "Selected Excellon file extensions registered with FlatCAM." msgstr "L'estensione file Excellon selezionata è registrata con FlatCAM." -#: App_Main.py:3443 +#: FlatCAMApp.py:3799 msgid "Selected GCode file extensions registered with FlatCAM." msgstr "L'estensione file GCode selezionata è registrata con FlatCAM." -#: App_Main.py:3465 +#: FlatCAMApp.py:3821 msgid "Selected Gerber file extensions registered with FlatCAM." msgstr "L'estensione file Gerber selezionata è registrata con FlatCAM." -#: App_Main.py:3653 App_Main.py:3712 App_Main.py:3740 +#: FlatCAMApp.py:4009 FlatCAMApp.py:4068 FlatCAMApp.py:4096 msgid "At least two objects are required for join. Objects currently selected" msgstr "" "Per eseguire una unione (join) servono almeno due oggetti. Oggetti " "attualmente selezionati" -#: App_Main.py:3662 +#: FlatCAMApp.py:4018 msgid "" "Failed join. The Geometry objects are of different types.\n" "At least one is MultiGeo type and the other is SingleGeo type. A possibility " @@ -17532,47 +499,47 @@ msgstr "" "potrebbero essere perse e il risultato diverso da quello atteso. \n" "Controlla il GCODE generato." -#: App_Main.py:3674 App_Main.py:3684 +#: FlatCAMApp.py:4030 FlatCAMApp.py:4040 msgid "Geometry merging finished" msgstr "Unione geometrie terminato" -#: App_Main.py:3707 +#: FlatCAMApp.py:4063 msgid "Failed. Excellon joining works only on Excellon objects." msgstr "Errore. L'unione Excellon funziona solo con oggetti Excellon." -#: App_Main.py:3717 +#: FlatCAMApp.py:4073 msgid "Excellon merging finished" msgstr "Unione Excellon completata" -#: App_Main.py:3735 +#: FlatCAMApp.py:4091 msgid "Failed. Gerber joining works only on Gerber objects." msgstr "Errore. Unione Gerber funziona solo con oggetti Gerber." -#: App_Main.py:3745 +#: FlatCAMApp.py:4101 msgid "Gerber merging finished" msgstr "Unione Gerber completata" -#: App_Main.py:3765 App_Main.py:3802 +#: FlatCAMApp.py:4121 FlatCAMApp.py:4158 msgid "Failed. Select a Geometry Object and try again." msgstr "Errore. Selezionare un oggetto Geometria e riprovare." -#: App_Main.py:3769 App_Main.py:3807 +#: FlatCAMApp.py:4125 FlatCAMApp.py:4163 msgid "Expected a GeometryObject, got" msgstr "Era atteso un oggetto geometria, ottenuto" -#: App_Main.py:3784 +#: FlatCAMApp.py:4140 msgid "A Geometry object was converted to MultiGeo type." msgstr "Un oggetto Geometria è stato convertito in tipo MultiGeo." -#: App_Main.py:3822 +#: FlatCAMApp.py:4178 msgid "A Geometry object was converted to SingleGeo type." msgstr "Un oggetto Geometria è stato convertito in tipo SingleGeo." -#: App_Main.py:4029 +#: FlatCAMApp.py:4471 msgid "Toggle Units" msgstr "Camba unità" -#: App_Main.py:4033 +#: FlatCAMApp.py:4473 msgid "" "Changing the units of the project\n" "will scale all objects.\n" @@ -17584,32 +551,32 @@ msgstr "" "\n" "Vuoi continuare?" -#: App_Main.py:4036 App_Main.py:4223 App_Main.py:4306 App_Main.py:6809 -#: App_Main.py:6825 App_Main.py:7163 App_Main.py:7175 +#: FlatCAMApp.py:4476 FlatCAMApp.py:5024 FlatCAMApp.py:5101 FlatCAMApp.py:7727 +#: FlatCAMApp.py:7741 FlatCAMApp.py:8074 FlatCAMApp.py:8084 msgid "Ok" msgstr "Ok" -#: App_Main.py:4086 +#: FlatCAMApp.py:4525 msgid "Converted units to" msgstr "Unità convertite in" -#: App_Main.py:4121 +#: FlatCAMApp.py:4927 msgid "Detachable Tabs" msgstr "Tab scollegabili" -#: App_Main.py:4150 -#, fuzzy -#| msgid "Workspace Settings" -msgid "Workspace enabled." -msgstr "Impostazioni area di lavoro" +#: FlatCAMApp.py:5013 flatcamTools/ToolNCC.py:932 flatcamTools/ToolNCC.py:1426 +#: flatcamTools/ToolPaint.py:858 flatcamTools/ToolSolderPaste.py:568 +#: flatcamTools/ToolSolderPaste.py:893 +msgid "Please enter a tool diameter with non-zero value, in Float format." +msgstr "" +"Inserire il diametro utensile con un valore non zero, in formato float." -#: App_Main.py:4153 -#, fuzzy -#| msgid "Workspace Settings" -msgid "Workspace disabled." -msgstr "Impostazioni area di lavoro" +#: FlatCAMApp.py:5017 flatcamTools/ToolNCC.py:936 flatcamTools/ToolPaint.py:862 +#: flatcamTools/ToolSolderPaste.py:572 +msgid "Adding Tool cancelled" +msgstr "Aggiunta utensile annullata" -#: App_Main.py:4217 +#: FlatCAMApp.py:5020 msgid "" "Adding Tool works only when Advanced is checked.\n" "Go to Preferences -> General - Show Advanced Options." @@ -17617,11 +584,11 @@ msgstr "" "Aggiunta utensile funziona solo con le opzioni avanzate.\n" "Vai su Preferenze -> Generale - Mostra Opzioni Avanzate." -#: App_Main.py:4299 +#: FlatCAMApp.py:5096 msgid "Delete objects" msgstr "Cancella oggetti" -#: App_Main.py:4304 +#: FlatCAMApp.py:5099 msgid "" "Are you sure you want to permanently delete\n" "the selected objects?" @@ -17629,84 +596,145 @@ msgstr "" "Sei sicuro di voler cancellare permanentemente\n" "gli oggetti selezionati?" -#: App_Main.py:4348 +#: FlatCAMApp.py:5137 msgid "Object(s) deleted" msgstr "Oggetto(i) cancellato(i)" -#: App_Main.py:4352 +#: FlatCAMApp.py:5141 FlatCAMApp.py:5296 flatcamTools/ToolDblSided.py:818 +msgid "Failed. No object(s) selected..." +msgstr "Errore. Nessun oggetto selezionato..." + +#: FlatCAMApp.py:5143 msgid "Save the work in Editor and try again ..." msgstr "Salva il lavoro nell'editor e riprova..." -#: App_Main.py:4381 +#: FlatCAMApp.py:5172 msgid "Object deleted" msgstr "Oggetto cancellato" -#: App_Main.py:4408 +#: FlatCAMApp.py:5199 msgid "Click to set the origin ..." msgstr "Clicca per impostare l'origine ..." -#: App_Main.py:4430 +#: FlatCAMApp.py:5221 msgid "Setting Origin..." msgstr "Impostazione Origine..." -#: App_Main.py:4443 App_Main.py:4545 +#: FlatCAMApp.py:5234 FlatCAMApp.py:5336 msgid "Origin set" msgstr "Origine impostata" -#: App_Main.py:4460 +#: FlatCAMApp.py:5251 msgid "Origin coordinates specified but incomplete." msgstr "Coordinate Origine non complete." -#: App_Main.py:4501 +#: FlatCAMApp.py:5292 msgid "Moving to Origin..." msgstr "Spostamento sull'origine..." -#: App_Main.py:4582 +#: FlatCAMApp.py:5373 msgid "Jump to ..." msgstr "Salta a ..." -#: App_Main.py:4583 +#: FlatCAMApp.py:5374 msgid "Enter the coordinates in format X,Y:" msgstr "Inserire coordinate nel formato X,Y:" -#: App_Main.py:4593 +#: FlatCAMApp.py:5384 msgid "Wrong coordinates. Enter coordinates in format: X,Y" msgstr "Coordinate errate. Inserire coordinate nel formato X,Y" -#: App_Main.py:4711 +#: FlatCAMApp.py:5462 FlatCAMApp.py:5611 +#: flatcamEditors/FlatCAMExcEditor.py:3624 +#: flatcamEditors/FlatCAMExcEditor.py:3632 +#: flatcamEditors/FlatCAMGeoEditor.py:4349 +#: flatcamEditors/FlatCAMGeoEditor.py:4363 +#: flatcamEditors/FlatCAMGrbEditor.py:1087 +#: flatcamEditors/FlatCAMGrbEditor.py:1204 +#: flatcamEditors/FlatCAMGrbEditor.py:1490 +#: flatcamEditors/FlatCAMGrbEditor.py:1759 +#: flatcamEditors/FlatCAMGrbEditor.py:4622 +#: flatcamEditors/FlatCAMGrbEditor.py:4637 flatcamGUI/FlatCAMGUI.py:3424 +#: flatcamGUI/FlatCAMGUI.py:3436 flatcamTools/ToolAlignObjects.py:393 +#: flatcamTools/ToolAlignObjects.py:415 +msgid "Done." +msgstr "Fatto." + +#: FlatCAMApp.py:5477 FlatCAMApp.py:7723 FlatCAMApp.py:7818 FlatCAMApp.py:7859 +#: FlatCAMApp.py:7900 FlatCAMApp.py:7941 FlatCAMApp.py:7982 FlatCAMApp.py:8026 +#: FlatCAMApp.py:8070 FlatCAMApp.py:8592 FlatCAMApp.py:8596 +#: flatcamTools/ToolProperties.py:116 +msgid "No object selected." +msgstr "Nessun oggetto selezionato." + +#: FlatCAMApp.py:5496 msgid "Bottom-Left" msgstr "Basso-Sinistra" -#: App_Main.py:4714 +#: FlatCAMApp.py:5497 flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:131 +#: flatcamTools/ToolCalibration.py:159 +msgid "Top-Left" +msgstr "Alto-Sinistra" + +#: FlatCAMApp.py:5498 flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:132 +#: flatcamTools/ToolCalibration.py:160 +msgid "Bottom-Right" +msgstr "Basso-Destra" + +#: FlatCAMApp.py:5499 msgid "Top-Right" msgstr "Alto-destra" -#: App_Main.py:4735 +#: FlatCAMApp.py:5500 flatcamGUI/ObjectUI.py:2626 +msgid "Center" +msgstr "Centro" + +#: FlatCAMApp.py:5520 msgid "Locate ..." msgstr "Individua ..." -#: App_Main.py:5008 App_Main.py:5085 +#: FlatCAMApp.py:5778 FlatCAMApp.py:5855 msgid "No object is selected. Select an object and try again." msgstr "Nessun oggetto selezionato. Seleziona un oggetto e riprova." -#: App_Main.py:5111 +#: FlatCAMApp.py:5881 msgid "" "Aborting. The current task will be gracefully closed as soon as possible..." msgstr "Annullamento. Il task attuale sarà chiuso prima possibile..." -#: App_Main.py:5117 +#: FlatCAMApp.py:5887 msgid "The current task was gracefully closed on user request..." msgstr "Il task corrente è stato chiuso su richiesta dell'utente..." -#: App_Main.py:5291 +#: FlatCAMApp.py:5915 flatcamGUI/preferences/PreferencesUIManager.py:901 +#: flatcamGUI/preferences/PreferencesUIManager.py:945 +#: flatcamGUI/preferences/PreferencesUIManager.py:966 +#: flatcamGUI/preferences/PreferencesUIManager.py:1071 +msgid "Preferences" +msgstr "Preferenze" + +#: FlatCAMApp.py:5980 FlatCAMApp.py:6008 FlatCAMApp.py:6035 FlatCAMApp.py:6055 +#: FlatCAMDB.py:738 FlatCAMDB.py:913 FlatCAMDB.py:2200 FlatCAMDB.py:2418 +#: flatcamObjects/FlatCAMGeometry.py:862 flatcamTools/ToolNCC.py:3958 +#: flatcamTools/ToolNCC.py:4042 flatcamTools/ToolPaint.py:3548 +#: flatcamTools/ToolPaint.py:3633 +msgid "Tools Database" +msgstr "Database degli utensili" + +#: FlatCAMApp.py:6032 msgid "Tools in Tools Database edited but not saved." msgstr "Utensili nel Database Utensili modificati ma non salvati." -#: App_Main.py:5330 +#: FlatCAMApp.py:6059 flatcamTools/ToolNCC.py:3965 +#: flatcamTools/ToolPaint.py:3555 +msgid "Tool from DB added in Tool Table." +msgstr "Utensile da DB aggiunto alla tabella utensili." + +#: FlatCAMApp.py:6061 msgid "Adding tool from DB is not allowed for this object." msgstr "Non è permesso aggiungere un untensile dal DB per questo oggetto." -#: App_Main.py:5348 +#: FlatCAMApp.py:6079 msgid "" "One or more Tools are edited.\n" "Do you want to update the Tools Database?" @@ -17714,112 +742,174 @@ msgstr "" "Uno o più Utensili modificati.\n" "Vuoi aggiornare il Database Utensili?" -#: App_Main.py:5350 +#: FlatCAMApp.py:6081 msgid "Save Tools Database" msgstr "Salva Database Utensili" -#: App_Main.py:5404 +#: FlatCAMApp.py:6134 msgid "No object selected to Flip on Y axis." msgstr "Nessun oggetto selezionato da capovolgere sull'asse Y." -#: App_Main.py:5430 +#: FlatCAMApp.py:6160 msgid "Flip on Y axis done." msgstr "Capovolgimento in Y effettuato." -#: App_Main.py:5452 +#: FlatCAMApp.py:6162 FlatCAMApp.py:6210 +#: flatcamEditors/FlatCAMGrbEditor.py:6059 +msgid "Flip action was not executed." +msgstr "Capovolgimento non eseguito." + +#: FlatCAMApp.py:6182 msgid "No object selected to Flip on X axis." msgstr "Nessun oggetto selezionato da capovolgere sull'asse X." -#: App_Main.py:5478 +#: FlatCAMApp.py:6208 msgid "Flip on X axis done." msgstr "Capovolgimento in X effettuato." -#: App_Main.py:5500 +#: FlatCAMApp.py:6230 msgid "No object selected to Rotate." msgstr "Nessun oggetto selezionato da ruotare." -#: App_Main.py:5503 App_Main.py:5554 App_Main.py:5591 +#: FlatCAMApp.py:6233 FlatCAMApp.py:6286 FlatCAMApp.py:6325 msgid "Transform" msgstr "Trasforma" -#: App_Main.py:5503 App_Main.py:5554 App_Main.py:5591 +#: FlatCAMApp.py:6233 FlatCAMApp.py:6286 FlatCAMApp.py:6325 msgid "Enter the Angle value:" msgstr "Inserire il valore dell'angolo:" -#: App_Main.py:5533 +#: FlatCAMApp.py:6264 msgid "Rotation done." msgstr "Rotazione effettuata." -#: App_Main.py:5535 +#: FlatCAMApp.py:6266 msgid "Rotation movement was not executed." msgstr "Movimento di rotazione non eseguito." -#: App_Main.py:5552 +#: FlatCAMApp.py:6284 msgid "No object selected to Skew/Shear on X axis." msgstr "Nessun oggetto selezionato per deformare/tagliare nell'asse X." -#: App_Main.py:5573 +#: FlatCAMApp.py:6306 msgid "Skew on X axis done." msgstr "Deformazione in X applicata." -#: App_Main.py:5589 +#: FlatCAMApp.py:6323 msgid "No object selected to Skew/Shear on Y axis." msgstr "Nessun oggetto selezionato per deformare/tagliare nell'asse Y." -#: App_Main.py:5610 +#: FlatCAMApp.py:6345 msgid "Skew on Y axis done." msgstr "Deformazione in Y applicata." -#: App_Main.py:5688 +#: FlatCAMApp.py:6496 FlatCAMApp.py:6543 flatcamGUI/FlatCAMGUI.py:503 +#: flatcamGUI/FlatCAMGUI.py:1728 +msgid "Select All" +msgstr "Seleziona tutto" + +#: FlatCAMApp.py:6500 FlatCAMApp.py:6547 flatcamGUI/FlatCAMGUI.py:505 +msgid "Deselect All" +msgstr "Deseleziona tutto" + +#: FlatCAMApp.py:6563 +msgid "All objects are selected." +msgstr "Tutti gli oggetti sono selezionati." + +#: FlatCAMApp.py:6573 +msgid "Objects selection is cleared." +msgstr "Selezione oggetti svuotata." + +#: FlatCAMApp.py:6593 flatcamGUI/FlatCAMGUI.py:1721 +msgid "Grid On/Off" +msgstr "Griglia On/Off" + +#: FlatCAMApp.py:6605 flatcamEditors/FlatCAMGeoEditor.py:939 +#: flatcamEditors/FlatCAMGrbEditor.py:2583 +#: flatcamEditors/FlatCAMGrbEditor.py:5641 flatcamGUI/ObjectUI.py:1595 +#: flatcamTools/ToolDblSided.py:192 flatcamTools/ToolDblSided.py:425 +#: flatcamTools/ToolNCC.py:294 flatcamTools/ToolNCC.py:631 +#: flatcamTools/ToolPaint.py:277 flatcamTools/ToolPaint.py:676 +#: flatcamTools/ToolSolderPaste.py:122 flatcamTools/ToolSolderPaste.py:597 +#: flatcamTools/ToolTransform.py:478 +msgid "Add" +msgstr "Aggiungi" + +#: FlatCAMApp.py:6607 flatcamEditors/FlatCAMGrbEditor.py:2588 +#: flatcamEditors/FlatCAMGrbEditor.py:2736 flatcamGUI/FlatCAMGUI.py:751 +#: flatcamGUI/FlatCAMGUI.py:1074 flatcamGUI/FlatCAMGUI.py:2141 +#: flatcamGUI/FlatCAMGUI.py:2284 flatcamGUI/FlatCAMGUI.py:2777 +#: flatcamGUI/ObjectUI.py:1623 flatcamObjects/FlatCAMGeometry.py:480 +#: flatcamTools/ToolNCC.py:316 flatcamTools/ToolNCC.py:637 +#: flatcamTools/ToolPaint.py:299 flatcamTools/ToolPaint.py:682 +#: flatcamTools/ToolSolderPaste.py:128 flatcamTools/ToolSolderPaste.py:600 +msgid "Delete" +msgstr "Cancella" + +#: FlatCAMApp.py:6623 msgid "New Grid ..." msgstr "Nuova griglia ..." -#: App_Main.py:5689 +#: FlatCAMApp.py:6624 msgid "Enter a Grid Value:" msgstr "Valore della griglia:" -#: App_Main.py:5697 App_Main.py:5721 +#: FlatCAMApp.py:6632 FlatCAMApp.py:6659 msgid "Please enter a grid value with non-zero value, in Float format." msgstr "" "Inserire il valore della griglia con un valore non zero, in formato float." -#: App_Main.py:5702 +#: FlatCAMApp.py:6638 msgid "New Grid added" msgstr "Nuova griglia aggiunta" -#: App_Main.py:5704 +#: FlatCAMApp.py:6641 msgid "Grid already exists" msgstr "Griglia già esistente" -#: App_Main.py:5706 +#: FlatCAMApp.py:6644 msgid "Adding New Grid cancelled" msgstr "Aggiunta griglia annullata" -#: App_Main.py:5727 +#: FlatCAMApp.py:6666 msgid " Grid Value does not exist" msgstr " Valore griglia non esistente" -#: App_Main.py:5729 +#: FlatCAMApp.py:6669 msgid "Grid Value deleted" msgstr "Valore griglia cancellato" -#: App_Main.py:5731 +#: FlatCAMApp.py:6672 msgid "Delete Grid value cancelled" msgstr "Cancellazione valore griglia annullata" -#: App_Main.py:5737 +#: FlatCAMApp.py:6678 msgid "Key Shortcut List" msgstr "Lista tasti Shortcuts" -#: App_Main.py:5771 +#: FlatCAMApp.py:6712 msgid " No object selected to copy it's name" msgstr " Nessun oggetto selezionato da cui copiarne il nome" -#: App_Main.py:5775 +#: FlatCAMApp.py:6716 msgid "Name copied on clipboard ..." msgstr "Nomi copiati negli appunti ..." -#: App_Main.py:6408 +#: FlatCAMApp.py:6929 flatcamEditors/FlatCAMGrbEditor.py:4554 +msgid "Coordinates copied to clipboard." +msgstr "Coordinate copiate negli appunti." + +#: FlatCAMApp.py:7166 FlatCAMApp.py:7172 FlatCAMApp.py:7178 FlatCAMApp.py:7184 +#: flatcamObjects/ObjectCollection.py:922 +#: flatcamObjects/ObjectCollection.py:928 +#: flatcamObjects/ObjectCollection.py:934 +#: flatcamObjects/ObjectCollection.py:940 +#: flatcamObjects/ObjectCollection.py:946 +#: flatcamObjects/ObjectCollection.py:952 +msgid "selected" +msgstr "selezionato" + +#: FlatCAMApp.py:7339 msgid "" "There are files/objects opened in FlatCAM.\n" "Creating a New project will delete them.\n" @@ -17829,12 +919,17 @@ msgstr "" "Creare un nuovo progetto li cancellerà.\n" "Vuoi salvare il progetto?" -#: App_Main.py:6431 +#: FlatCAMApp.py:7360 msgid "New Project created" msgstr "Nuovo progetto creato" -#: App_Main.py:6603 App_Main.py:6642 App_Main.py:6686 App_Main.py:6756 -#: App_Main.py:7550 App_Main.py:8763 App_Main.py:8825 +#: FlatCAMApp.py:7518 FlatCAMApp.py:7522 flatcamGUI/FlatCAMGUI.py:836 +#: flatcamGUI/FlatCAMGUI.py:2544 +msgid "Open Gerber" +msgstr "Apri Gerber" + +#: FlatCAMApp.py:7527 FlatCAMApp.py:7564 FlatCAMApp.py:7606 FlatCAMApp.py:7676 +#: FlatCAMApp.py:8461 FlatCAMApp.py:9674 FlatCAMApp.py:9736 msgid "" "Canvas initialization started.\n" "Canvas initialization finished in" @@ -17842,285 +937,338 @@ msgstr "" "Inizializzazione della tela avviata.\n" "Inizializzazione della tela completata" -#: App_Main.py:6605 +#: FlatCAMApp.py:7529 msgid "Opening Gerber file." msgstr "Apertura file Gerber." -#: App_Main.py:6644 +#: FlatCAMApp.py:7556 FlatCAMApp.py:7560 flatcamGUI/FlatCAMGUI.py:838 +#: flatcamGUI/FlatCAMGUI.py:2546 +msgid "Open Excellon" +msgstr "Apri Excellon" + +#: FlatCAMApp.py:7566 msgid "Opening Excellon file." msgstr "Apertura file Excellon." -#: App_Main.py:6675 App_Main.py:6680 +#: FlatCAMApp.py:7597 FlatCAMApp.py:7601 msgid "Open G-Code" msgstr "Apri G-Code" -#: App_Main.py:6688 +#: FlatCAMApp.py:7608 msgid "Opening G-Code file." msgstr "Apertura file G-Code." -#: App_Main.py:6747 App_Main.py:6751 +#: FlatCAMApp.py:7631 FlatCAMApp.py:7634 flatcamGUI/FlatCAMGUI.py:1730 +msgid "Open Project" +msgstr "Apri progetto" + +#: FlatCAMApp.py:7667 FlatCAMApp.py:7671 msgid "Open HPGL2" msgstr "Apri HPGL2" -#: App_Main.py:6758 +#: FlatCAMApp.py:7678 msgid "Opening HPGL2 file." msgstr "Apertura file HPGL2." -#: App_Main.py:6781 App_Main.py:6784 +#: FlatCAMApp.py:7701 FlatCAMApp.py:7704 msgid "Open Configuration File" msgstr "Apri file di configurazione" -#: App_Main.py:6804 App_Main.py:7158 +#: FlatCAMApp.py:7724 FlatCAMApp.py:8071 msgid "Please Select a Geometry object to export" msgstr "Selezionare un oggetto geometria da esportare" -#: App_Main.py:6820 +#: FlatCAMApp.py:7738 msgid "Only Geometry, Gerber and CNCJob objects can be used." msgstr "Possono essere usati solo geometrie, gerber od oggetti CNCJob." -#: App_Main.py:6865 +#: FlatCAMApp.py:7751 FlatCAMApp.py:7755 flatcamTools/ToolQRCode.py:829 +#: flatcamTools/ToolQRCode.py:833 +msgid "Export SVG" +msgstr "Esporta SVG" + +#: FlatCAMApp.py:7780 msgid "Data must be a 3D array with last dimension 3 or 4" msgstr "I dati devono essere una matrice 3D con ultima dimensione pari a 3 o 4" -#: App_Main.py:6871 App_Main.py:6875 +#: FlatCAMApp.py:7786 FlatCAMApp.py:7790 msgid "Export PNG Image" msgstr "Esporta immagine PNG" -#: App_Main.py:6908 App_Main.py:7118 +#: FlatCAMApp.py:7823 FlatCAMApp.py:8031 msgid "Failed. Only Gerber objects can be saved as Gerber files..." msgstr "Errore. Solo oggetti Gerber possono essere salvati come file Gerber..." -#: App_Main.py:6920 +#: FlatCAMApp.py:7835 msgid "Save Gerber source file" msgstr "Salva il file sorgente Gerber" -#: App_Main.py:6949 +#: FlatCAMApp.py:7864 msgid "Failed. Only Script objects can be saved as TCL Script files..." msgstr "" "Errore. Solo oggetti Script possono essere salvati come file Script TCL..." -#: App_Main.py:6961 +#: FlatCAMApp.py:7876 msgid "Save Script source file" msgstr "Salva il file sorgente dello Script" -#: App_Main.py:6990 +#: FlatCAMApp.py:7905 msgid "Failed. Only Document objects can be saved as Document files..." msgstr "" "Errore. Solo oggetti Documenti possono essere salvati come file Documenti..." -#: App_Main.py:7002 +#: FlatCAMApp.py:7917 msgid "Save Document source file" msgstr "Salva il file di origine del Documento" -#: App_Main.py:7032 App_Main.py:7074 App_Main.py:8033 +#: FlatCAMApp.py:7946 FlatCAMApp.py:7987 FlatCAMApp.py:8944 msgid "Failed. Only Excellon objects can be saved as Excellon files..." msgstr "" "Errore. Solo oggetti Excellon possono essere salvati come file Excellon..." -#: App_Main.py:7040 App_Main.py:7045 +#: FlatCAMApp.py:7954 FlatCAMApp.py:7958 msgid "Save Excellon source file" msgstr "Salva il file sorgente di Excellon" -#: App_Main.py:7082 App_Main.py:7086 +#: FlatCAMApp.py:7995 FlatCAMApp.py:7999 msgid "Export Excellon" msgstr "Esporta Excellon" -#: App_Main.py:7126 App_Main.py:7130 +#: FlatCAMApp.py:8039 FlatCAMApp.py:8043 msgid "Export Gerber" msgstr "Esporta Gerber" -#: App_Main.py:7170 +#: FlatCAMApp.py:8081 msgid "Only Geometry objects can be used." msgstr "Possono essere usate solo oggetti Geometrie." -#: App_Main.py:7186 App_Main.py:7190 +#: FlatCAMApp.py:8095 FlatCAMApp.py:8099 msgid "Export DXF" msgstr "Esporta DXF" -#: App_Main.py:7215 App_Main.py:7218 +#: FlatCAMApp.py:8124 FlatCAMApp.py:8127 msgid "Import SVG" msgstr "Importa SVG" -#: App_Main.py:7246 App_Main.py:7250 +#: FlatCAMApp.py:8155 FlatCAMApp.py:8159 msgid "Import DXF" msgstr "Importa DXF" -#: App_Main.py:7300 +#: FlatCAMApp.py:8209 msgid "Viewing the source code of the selected object." msgstr "Vedi il codice sorgente dell'oggetto selezionato." -#: App_Main.py:7307 App_Main.py:7311 +#: FlatCAMApp.py:8210 flatcamObjects/FlatCAMCNCJob.py:548 +#: flatcamObjects/FlatCAMScript.py:134 +msgid "Loading..." +msgstr "Caricamento..." + +#: FlatCAMApp.py:8216 FlatCAMApp.py:8220 msgid "Select an Gerber or Excellon file to view it's source file." msgstr "Seleziona un Gerber o Ecxcellon per vederne il file sorgente." -#: App_Main.py:7325 +#: FlatCAMApp.py:8234 msgid "Source Editor" msgstr "Editor sorgente" -#: App_Main.py:7365 App_Main.py:7372 +#: FlatCAMApp.py:8274 FlatCAMApp.py:8281 msgid "There is no selected object for which to see it's source file code." msgstr "Nessun oggetto di cui vedere il file sorgente." -#: App_Main.py:7384 +#: FlatCAMApp.py:8293 msgid "Failed to load the source code for the selected object" msgstr "Errore durante l'apertura del file sorgente per l'oggetto selezionato" -#: App_Main.py:7420 +#: FlatCAMApp.py:8307 flatcamObjects/FlatCAMCNCJob.py:562 +msgid "Code Editor" +msgstr "Editor del codice" + +#: FlatCAMApp.py:8329 msgid "Go to Line ..." msgstr "Vai alla Riga ..." -#: App_Main.py:7421 +#: FlatCAMApp.py:8330 msgid "Line:" msgstr "Riga:" -#: App_Main.py:7448 +#: FlatCAMApp.py:8359 msgid "New TCL script file created in Code Editor." msgstr "Nuovo Script TCL creato nell'edito di codice." -#: App_Main.py:7484 App_Main.py:7486 App_Main.py:7522 App_Main.py:7524 +#: FlatCAMApp.py:8395 FlatCAMApp.py:8397 FlatCAMApp.py:8433 FlatCAMApp.py:8435 msgid "Open TCL script" msgstr "Apri Script TCL" -#: App_Main.py:7552 +#: FlatCAMApp.py:8463 msgid "Executing ScriptObject file." msgstr "Esecuzione file oggetto Script." -#: App_Main.py:7560 App_Main.py:7563 +#: FlatCAMApp.py:8471 FlatCAMApp.py:8474 msgid "Run TCL script" msgstr "Esegui Script TCL" -#: App_Main.py:7586 +#: FlatCAMApp.py:8497 msgid "TCL script file opened in Code Editor and executed." msgstr "Fil script TCL aperto nell'edito ed eseguito." -#: App_Main.py:7637 App_Main.py:7643 +#: FlatCAMApp.py:8548 FlatCAMApp.py:8554 msgid "Save Project As ..." msgstr "Salva progetto come ..." -#: App_Main.py:7678 +#: FlatCAMApp.py:8550 flatcamGUI/FlatCAMGUI.py:1134 +#: flatcamGUI/FlatCAMGUI.py:2176 +msgid "Project" +msgstr "Progetto" + +#: FlatCAMApp.py:8589 msgid "FlatCAM objects print" msgstr "Stampa oggetto FlatCAM" -#: App_Main.py:7691 App_Main.py:7698 +#: FlatCAMApp.py:8602 FlatCAMApp.py:8609 msgid "Save Object as PDF ..." msgstr "Salva oggetto come PDF ..." -#: App_Main.py:7707 +#: FlatCAMApp.py:8618 msgid "Printing PDF ... Please wait." msgstr "Stampa PDF ... Attendere." -#: App_Main.py:7886 +#: FlatCAMApp.py:8797 msgid "PDF file saved to" msgstr "File PDF salvato in" -#: App_Main.py:7911 +#: FlatCAMApp.py:8822 msgid "Exporting SVG" msgstr "Esportazione SVG" -#: App_Main.py:7954 +#: FlatCAMApp.py:8865 msgid "SVG file exported to" msgstr "File SVG esportato in" -#: App_Main.py:7980 +#: FlatCAMApp.py:8891 msgid "" "Save cancelled because source file is empty. Try to export the Gerber file." msgstr "" "Salvataggio annullato a causa di sorgenti vuoti. Provare ad esportare i file " "Gerber." -#: App_Main.py:8127 +#: FlatCAMApp.py:9038 msgid "Excellon file exported to" msgstr "File Excellon esportato in" -#: App_Main.py:8136 +#: FlatCAMApp.py:9047 msgid "Exporting Excellon" msgstr "Esportazione Excellon" -#: App_Main.py:8141 App_Main.py:8148 +#: FlatCAMApp.py:9052 FlatCAMApp.py:9059 msgid "Could not export Excellon file." msgstr "Impossibile esportare file Excellon." -#: App_Main.py:8263 +#: FlatCAMApp.py:9174 msgid "Gerber file exported to" msgstr "File Gerber esportato in" -#: App_Main.py:8271 +#: FlatCAMApp.py:9182 msgid "Exporting Gerber" msgstr "Esportazione Gerber" -#: App_Main.py:8276 App_Main.py:8283 +#: FlatCAMApp.py:9187 FlatCAMApp.py:9194 msgid "Could not export Gerber file." msgstr "Impossibile esportare file Gerber." -#: App_Main.py:8318 +#: FlatCAMApp.py:9229 msgid "DXF file exported to" msgstr "File DXF esportato in" -#: App_Main.py:8324 +#: FlatCAMApp.py:9235 msgid "Exporting DXF" msgstr "Esportazione DXF" -#: App_Main.py:8329 App_Main.py:8336 +#: FlatCAMApp.py:9240 FlatCAMApp.py:9247 msgid "Could not export DXF file." msgstr "Impossibile esportare file DXF." -#: App_Main.py:8370 +#: FlatCAMApp.py:9271 FlatCAMApp.py:9318 flatcamTools/ToolImage.py:277 +msgid "" +"Not supported type is picked as parameter. Only Geometry and Gerber are " +"supported" +msgstr "Parametro non supportato. Utilizzare solo Geometrie o Gerber" + +#: FlatCAMApp.py:9281 msgid "Importing SVG" msgstr "Importazione SVG" -#: App_Main.py:8378 App_Main.py:8424 +#: FlatCAMApp.py:9289 FlatCAMApp.py:9335 msgid "Import failed." msgstr "Importazione fallita." -#: App_Main.py:8416 +#: FlatCAMApp.py:9296 FlatCAMApp.py:9342 FlatCAMApp.py:9406 FlatCAMApp.py:9473 +#: FlatCAMApp.py:9539 FlatCAMApp.py:9604 FlatCAMApp.py:9661 +#: flatcamTools/ToolImage.py:297 flatcamTools/ToolPDF.py:225 +msgid "Opened" +msgstr "Aperto" + +#: FlatCAMApp.py:9327 msgid "Importing DXF" msgstr "Importazione DXF" -#: App_Main.py:8457 App_Main.py:8652 App_Main.py:8717 +#: FlatCAMApp.py:9368 FlatCAMApp.py:9563 FlatCAMApp.py:9628 msgid "Failed to open file" msgstr "Errore nell'apertura file" -#: App_Main.py:8460 App_Main.py:8655 App_Main.py:8720 +#: FlatCAMApp.py:9371 FlatCAMApp.py:9566 FlatCAMApp.py:9631 msgid "Failed to parse file" msgstr "Errore nell'analisi del file" -#: App_Main.py:8472 +#: FlatCAMApp.py:9383 msgid "Object is not Gerber file or empty. Aborting object creation." msgstr "L'oggetto non è Gerber o è vuoto. Annullo creazione oggetto." -#: App_Main.py:8477 +#: FlatCAMApp.py:9388 msgid "Opening Gerber" msgstr "Apertura Gerber" -#: App_Main.py:8488 +#: FlatCAMApp.py:9399 msgid "Open Gerber failed. Probable not a Gerber file." msgstr "Apertura Gerber fallita. Forse non è un file Gerber." -#: App_Main.py:8524 +#: FlatCAMApp.py:9431 flatcamTools/ToolPcbWizard.py:424 +msgid "This is not Excellon file." +msgstr "Non è un file Excellon." + +#: FlatCAMApp.py:9435 msgid "Cannot open file" msgstr "Impossibile aprire il file" -#: App_Main.py:8545 +#: FlatCAMApp.py:9453 flatcamTools/ToolPDF.py:275 +#: flatcamTools/ToolPcbWizard.py:445 +msgid "No geometry found in file" +msgstr "Nessuna geometria trovata nel file" + +#: FlatCAMApp.py:9456 msgid "Opening Excellon." msgstr "Apertura Excellon." -#: App_Main.py:8555 +#: FlatCAMApp.py:9466 msgid "Open Excellon file failed. Probable not an Excellon file." msgstr "Apertura Excellon fallita. Forse non è un file Excellon." -#: App_Main.py:8587 +#: FlatCAMApp.py:9498 msgid "Reading GCode file" msgstr "Lettura file GCode" -#: App_Main.py:8600 +#: FlatCAMApp.py:9504 +msgid "Failed to open" +msgstr "Errore di apertura" + +#: FlatCAMApp.py:9511 msgid "This is not GCODE" msgstr "Non è G-CODE" -#: App_Main.py:8605 +#: FlatCAMApp.py:9516 msgid "Opening G-Code." msgstr "Apertura G-Code." -#: App_Main.py:8618 +#: FlatCAMApp.py:9529 msgid "" "Failed to create CNCJob Object. Probable not a GCode file. Try to load it " "from File menu.\n" @@ -18132,130 +1280,122 @@ msgstr "" " Tentativo di creazione di oggetto FlatCAM CNCJob da file G-Code fallito " "durante l'analisi" -#: App_Main.py:8674 +#: FlatCAMApp.py:9585 msgid "Object is not HPGL2 file or empty. Aborting object creation." msgstr "L'oggetto non è un file HPGL2 o è vuoto. Annullo creazione oggetto." -#: App_Main.py:8679 +#: FlatCAMApp.py:9590 msgid "Opening HPGL2" msgstr "Apertura HPGL2" -#: App_Main.py:8686 +#: FlatCAMApp.py:9597 msgid " Open HPGL2 failed. Probable not a HPGL2 file." msgstr " Apertura HPGL2 fallita. Forse non è un file HPGL2." -#: App_Main.py:8712 +#: FlatCAMApp.py:9623 msgid "TCL script file opened in Code Editor." msgstr "Script TCL aperto nell'editor." -#: App_Main.py:8732 +#: FlatCAMApp.py:9643 msgid "Opening TCL Script..." msgstr "Apertura Script TCL..." -#: App_Main.py:8743 +#: FlatCAMApp.py:9654 msgid "Failed to open TCL Script." msgstr "Errore nell'apertura dello Script TCL." -#: App_Main.py:8765 +#: FlatCAMApp.py:9676 msgid "Opening FlatCAM Config file." msgstr "Apertura file di configurazione FlatCAM." -#: App_Main.py:8793 +#: FlatCAMApp.py:9704 msgid "Failed to open config file" msgstr "Errore nell'apertura sel file di configurazione" -#: App_Main.py:8822 +#: FlatCAMApp.py:9733 msgid "Loading Project ... Please Wait ..." msgstr "Apertura progetto … Attendere ..." -#: App_Main.py:8827 +#: FlatCAMApp.py:9738 msgid "Opening FlatCAM Project file." msgstr "Apertura file progetto FlatCAM." -#: App_Main.py:8842 App_Main.py:8846 App_Main.py:8863 +#: FlatCAMApp.py:9753 FlatCAMApp.py:9757 FlatCAMApp.py:9774 msgid "Failed to open project file" msgstr "Errore nell'apertura file progetto" -#: App_Main.py:8900 +#: FlatCAMApp.py:9811 msgid "Loading Project ... restoring" msgstr "Apertura progetto … ripristino" -#: App_Main.py:8910 +#: FlatCAMApp.py:9821 msgid "Project loaded from" msgstr "Progetto caricato da" -#: App_Main.py:8936 +#: FlatCAMApp.py:9845 msgid "Redrawing all objects" msgstr "Ridisegno tutti gli oggetti" -#: App_Main.py:9024 +#: FlatCAMApp.py:9933 msgid "Failed to load recent item list." msgstr "Errore nel caricamento della lista dei file recenti." -#: App_Main.py:9031 +#: FlatCAMApp.py:9940 msgid "Failed to parse recent item list." msgstr "Errore nell'analisi della lista dei file recenti." -#: App_Main.py:9041 +#: FlatCAMApp.py:9950 msgid "Failed to load recent projects item list." msgstr "Errore nel caricamento della lista dei progetti recenti." -#: App_Main.py:9048 +#: FlatCAMApp.py:9957 msgid "Failed to parse recent project item list." msgstr "Errore nell'analisi della lista dei progetti recenti." -#: App_Main.py:9109 +#: FlatCAMApp.py:10018 msgid "Clear Recent projects" msgstr "Azzera lista progetti recenti" -#: App_Main.py:9133 +#: FlatCAMApp.py:10042 msgid "Clear Recent files" msgstr "Azzera lista file recenti" -#: App_Main.py:9235 +#: FlatCAMApp.py:10064 flatcamGUI/FlatCAMGUI.py:1363 +msgid "Shortcut Key List" +msgstr "Elenco tasti scorciatoia" + +#: FlatCAMApp.py:10144 msgid "Selected Tab - Choose an Item from Project Tab" msgstr "Tab selezionato - Scegli una voce dal Tab Progetti" -#: App_Main.py:9236 +#: FlatCAMApp.py:10145 msgid "Details" msgstr "Dettagli" -#: App_Main.py:9238 -#, fuzzy -#| msgid "The normal flow when working in FlatCAM is the following:" -msgid "The normal flow when working with the application is the following:" +#: FlatCAMApp.py:10147 +msgid "The normal flow when working in FlatCAM is the following:" msgstr "Il flusso normale lavorando con FlatCAM è il seguente:" -#: App_Main.py:9239 -#, fuzzy -#| msgid "" -#| "Load/Import a Gerber, Excellon, Gcode, DXF, Raster Image or SVG file into " -#| "FlatCAM using either the toolbars, key shortcuts or even dragging and " -#| "dropping the files on the GUI." +#: FlatCAMApp.py:10148 msgid "" "Load/Import a Gerber, Excellon, Gcode, DXF, Raster Image or SVG file into " -"the application using either the toolbars, key shortcuts or even dragging " -"and dropping the files on the AppGUI." +"FlatCAM using either the toolbars, key shortcuts or even dragging and " +"dropping the files on the GUI." msgstr "" "Carica/importa Gerber, Excellon, Gcode, DXF, Immagini Raster o SVG in " "FlatCAM usando la toolbars, tasti scorciatoia o con drag & drop dei file " "nella GUI." -#: App_Main.py:9242 -#, fuzzy -#| msgid "" -#| "You can also load a FlatCAM project by double clicking on the project " -#| "file, drag and drop of the file into the FLATCAM GUI or through the menu " -#| "(or toolbar) actions offered within the app." +#: FlatCAMApp.py:10151 msgid "" -"You can also load a project by double clicking on the project file, drag and " -"drop of the file into the AppGUI or through the menu (or toolbar) actions " -"offered within the app." +"You can also load a FlatCAM project by double clicking on the project file, " +"drag and drop of the file into the FLATCAM GUI or through the menu (or " +"toolbar) actions offered within the app." msgstr "" "Puoi anche caricare un progetto FlatCAM con un doppio click sul file " "progetto, drag & drop del file nella GUI di FLATCAM o dal menu (o toolbar)." -#: App_Main.py:9245 +#: FlatCAMApp.py:10154 msgid "" "Once an object is available in the Project Tab, by selecting it and then " "focusing on SELECTED TAB (more simpler is to double click the object name in " @@ -18268,7 +1408,7 @@ msgstr "" "con le proprietà dell'oggetto a seconda del suo tipo: Gerber, Excellon, " "Geometria od oggetto CNCJob." -#: App_Main.py:9249 +#: FlatCAMApp.py:10158 msgid "" "If the selection of the object is done on the canvas by single click " "instead, and the SELECTED TAB is in focus, again the object properties will " @@ -18281,13 +1421,13 @@ msgstr "" "Selezionata. In alternativa, con un doppio click sull'oggetto la TAB " "SELEZIONATA si riempirà anche se non era focalizzata." -#: App_Main.py:9253 +#: FlatCAMApp.py:10162 msgid "" "You can change the parameters in this screen and the flow direction is like " "this:" msgstr "Puoi cambiare i parametri in questa schermata e le istruzioni così:" -#: App_Main.py:9254 +#: FlatCAMApp.py:10163 msgid "" "Gerber/Excellon Object --> Change Parameter --> Generate Geometry --> " "Geometry Object --> Add tools (change param in Selected Tab) --> Generate " @@ -18300,7 +1440,7 @@ msgstr "" "Modifica Codice CNC) e/o aggiungi in coda o in testa al GCode (di nuovo, " "fatto in TAB SELEZIONATA) --> Salva GCode." -#: App_Main.py:9258 +#: FlatCAMApp.py:10167 msgid "" "A list of key shortcuts is available through an menu entry in Help --> " "Shortcuts List or through its own key shortcut: F3." @@ -18308,32 +1448,32 @@ msgstr "" "Una lista di tasti scorciatoia è disponibile in un menu dell'Aiuto --> Lista " "Scorciatoie o tramite la sua stessa scorciatoia: F3." -#: App_Main.py:9322 +#: FlatCAMApp.py:10231 msgid "Failed checking for latest version. Could not connect." msgstr "" "Errore durante il controllo dell'ultima versione. Impossibile connettersi." -#: App_Main.py:9329 +#: FlatCAMApp.py:10238 msgid "Could not parse information about latest version." msgstr "Impossibile elaborare le info sull'ultima versione." -#: App_Main.py:9339 +#: FlatCAMApp.py:10248 msgid "FlatCAM is up to date!" msgstr "FlatCAM è aggiornato!" -#: App_Main.py:9344 +#: FlatCAMApp.py:10253 msgid "Newer Version Available" msgstr "E' disponibile una nuova versione" -#: App_Main.py:9346 +#: FlatCAMApp.py:10255 msgid "There is a newer version of FlatCAM available for download:" msgstr "E' disponibile una nuova versione di FlatCAM per il download:" -#: App_Main.py:9350 +#: FlatCAMApp.py:10259 msgid "info" msgstr "informazioni" -#: App_Main.py:9378 +#: FlatCAMApp.py:10287 msgid "" "OpenGL canvas initialization failed. HW or HW configuration not supported." "Change the graphic engine to Legacy(2D) in Edit -> Preferences -> General " @@ -18345,75 +1485,129 @@ msgstr "" "Preferenze -> Generale.\n" "\n" -#: App_Main.py:9456 +#: FlatCAMApp.py:10366 msgid "All plots disabled." msgstr "Tutte le tracce disabilitate." -#: App_Main.py:9463 +#: FlatCAMApp.py:10373 msgid "All non selected plots disabled." msgstr "Tutte le tracce non selezionate sono disabilitate." -#: App_Main.py:9470 +#: FlatCAMApp.py:10380 msgid "All plots enabled." msgstr "Tutte le tracce sono abilitate." -#: App_Main.py:9476 +#: FlatCAMApp.py:10386 msgid "Selected plots enabled..." msgstr "Tracce selezionate attive..." -#: App_Main.py:9484 +#: FlatCAMApp.py:10394 msgid "Selected plots disabled..." msgstr "Tracce selezionate disattive..." -#: App_Main.py:9517 +#: FlatCAMApp.py:10427 msgid "Enabling plots ..." msgstr "Abilitazione tracce ..." -#: App_Main.py:9566 +#: FlatCAMApp.py:10479 msgid "Disabling plots ..." msgstr "Disabilitazione tracce ..." -#: App_Main.py:9589 +#: FlatCAMApp.py:10502 msgid "Working ..." msgstr "Elaborazione ..." -#: App_Main.py:9698 +#: FlatCAMApp.py:10557 flatcamGUI/FlatCAMGUI.py:703 +msgid "Red" +msgstr "Rosso" + +#: FlatCAMApp.py:10559 flatcamGUI/FlatCAMGUI.py:706 +msgid "Blue" +msgstr "Blu" + +#: FlatCAMApp.py:10562 flatcamGUI/FlatCAMGUI.py:709 +msgid "Yellow" +msgstr "Giallo" + +#: FlatCAMApp.py:10564 flatcamGUI/FlatCAMGUI.py:712 +msgid "Green" +msgstr "Verde" + +#: FlatCAMApp.py:10566 flatcamGUI/FlatCAMGUI.py:715 +msgid "Purple" +msgstr "Porpora" + +#: FlatCAMApp.py:10568 flatcamGUI/FlatCAMGUI.py:718 +msgid "Brown" +msgstr "Marrone" + +#: FlatCAMApp.py:10570 FlatCAMApp.py:10626 flatcamGUI/FlatCAMGUI.py:721 +msgid "White" +msgstr "Bianco" + +#: FlatCAMApp.py:10572 flatcamGUI/FlatCAMGUI.py:724 +msgid "Black" +msgstr "Nero" + +#: FlatCAMApp.py:10575 flatcamGUI/FlatCAMGUI.py:729 +msgid "Custom" +msgstr "Personalizzato" + +#: FlatCAMApp.py:10585 flatcamGUI/FlatCAMGUI.py:737 +msgid "Default" +msgstr "Valori di default" + +#: FlatCAMApp.py:10609 flatcamGUI/FlatCAMGUI.py:734 +msgid "Opacity" +msgstr "Trasparenza" + +#: FlatCAMApp.py:10611 msgid "Set alpha level ..." msgstr "Imposta livello alfa ..." -#: App_Main.py:9752 +#: FlatCAMApp.py:10611 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:131 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:133 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:220 +#: flatcamTools/ToolExtractDrills.py:164 flatcamTools/ToolExtractDrills.py:285 +#: flatcamTools/ToolPunchGerber.py:192 flatcamTools/ToolPunchGerber.py:308 +#: flatcamTools/ToolTransform.py:357 +msgid "Value" +msgstr "Valore" + +#: FlatCAMApp.py:10665 msgid "Saving FlatCAM Project" msgstr "Salva progetto FlatCAM" -#: App_Main.py:9773 App_Main.py:9809 +#: FlatCAMApp.py:10686 FlatCAMApp.py:10722 msgid "Project saved to" msgstr "Progetto salvato in" -#: App_Main.py:9780 +#: FlatCAMApp.py:10693 msgid "The object is used by another application." msgstr "L'oggetto è usato da un'altra applicazione." -#: App_Main.py:9794 +#: FlatCAMApp.py:10707 msgid "Failed to verify project file" msgstr "Errore durante l'analisi del file progetto" -#: App_Main.py:9794 App_Main.py:9802 App_Main.py:9812 +#: FlatCAMApp.py:10707 FlatCAMApp.py:10715 FlatCAMApp.py:10725 msgid "Retry to save it." msgstr "Ritenta il salvataggio." -#: App_Main.py:9802 App_Main.py:9812 +#: FlatCAMApp.py:10715 FlatCAMApp.py:10725 msgid "Failed to parse saved project file" msgstr "Errore nell'analisi del progetto salvato" -#: Bookmark.py:57 Bookmark.py:84 +#: FlatCAMBookmark.py:57 FlatCAMBookmark.py:84 msgid "Title" msgstr "Titolo" -#: Bookmark.py:58 Bookmark.py:88 +#: FlatCAMBookmark.py:58 FlatCAMBookmark.py:88 msgid "Web Link" msgstr "Collegamento web" -#: Bookmark.py:62 +#: FlatCAMBookmark.py:62 msgid "" "Index.\n" "The rows in gray color will populate the Bookmarks menu.\n" @@ -18423,7 +1617,7 @@ msgstr "" "Le colonne in grigio compileranno il menu Segnalibri.\n" "Il numero di colonne in grigio è impostato in Preferenze." -#: Bookmark.py:66 +#: FlatCAMBookmark.py:66 msgid "" "Description of the link that is set as an menu action.\n" "Try to keep it short because it is installed as a menu item." @@ -18431,128 +1625,1018 @@ msgstr "" "Descrizione del collegamento impostato come azione menu.\n" "Tienila corta perchè apparirà come voce del menu." -#: Bookmark.py:69 +#: FlatCAMBookmark.py:69 msgid "Web Link. E.g: https://your_website.org " msgstr "Collegamento web. Es: https://il_tuo_sito_web.org " -#: Bookmark.py:78 +#: FlatCAMBookmark.py:78 msgid "New Bookmark" msgstr "Nuovo segnalibro" -#: Bookmark.py:97 +#: FlatCAMBookmark.py:97 msgid "Add Entry" msgstr "Aggiungi voce" -#: Bookmark.py:98 +#: FlatCAMBookmark.py:98 msgid "Remove Entry" msgstr "Rimuovi voce" -#: Bookmark.py:99 +#: FlatCAMBookmark.py:99 msgid "Export List" msgstr "Esporta lista" -#: Bookmark.py:100 +#: FlatCAMBookmark.py:100 msgid "Import List" msgstr "Importa lista" -#: Bookmark.py:190 +#: FlatCAMBookmark.py:190 msgid "Title entry is empty." msgstr "Il campo titolo è vuoto." -#: Bookmark.py:199 +#: FlatCAMBookmark.py:199 msgid "Web link entry is empty." msgstr "Il campo \"collegamento web\" è vuoto." -#: Bookmark.py:207 +#: FlatCAMBookmark.py:207 msgid "Either the Title or the Weblink already in the table." msgstr "Il titolo o il link sono già presenti nella tabella." -#: Bookmark.py:227 +#: FlatCAMBookmark.py:227 msgid "Bookmark added." msgstr "Segnalibro aggiunto." -#: Bookmark.py:244 +#: FlatCAMBookmark.py:244 msgid "This bookmark can not be removed" msgstr "Questo segnalibro non può essere rimosso" -#: Bookmark.py:275 +#: FlatCAMBookmark.py:275 msgid "Bookmark removed." msgstr "Segnalibro rimosso." -#: Bookmark.py:290 -#, fuzzy -#| msgid "Exported bookmarks to" -msgid "Export Bookmarks" -msgstr "Segnalibri esportati in" +#: FlatCAMBookmark.py:290 +msgid "Export FlatCAM Bookmarks" +msgstr "Esporta i segnalibri di FlatCAM" -#: Bookmark.py:319 Bookmark.py:349 +#: FlatCAMBookmark.py:293 flatcamGUI/FlatCAMGUI.py:524 +msgid "Bookmarks" +msgstr "Segnalibri" + +#: FlatCAMBookmark.py:319 FlatCAMBookmark.py:349 msgid "Could not load bookmarks file." msgstr "Impossibile caricare il file dei segnalibri." -#: Bookmark.py:329 +#: FlatCAMBookmark.py:329 msgid "Failed to write bookmarks to file." msgstr "Impossibile salvare il file dei segnalibri." -#: Bookmark.py:331 +#: FlatCAMBookmark.py:331 msgid "Exported bookmarks to" msgstr "Segnalibri esportati in" -#: Bookmark.py:337 -#, fuzzy -#| msgid "Imported Bookmarks from" -msgid "Import Bookmarks" -msgstr "Segnalibri importati da" +#: FlatCAMBookmark.py:337 +msgid "Import FlatCAM Bookmarks" +msgstr "Importa segnalibri FlatCAM" -#: Bookmark.py:356 +#: FlatCAMBookmark.py:356 msgid "Imported Bookmarks from" msgstr "Segnalibri importati da" -#: Common.py:42 +#: FlatCAMCommon.py:29 msgid "The user requested a graceful exit of the current task." msgstr "L'utente ha richiesto l'uscita dal task corrente." -#: Common.py:269 -#, fuzzy -#| msgid "Click the end point of the paint area." -msgid "Click the end point of the area." -msgstr "Fai clic sul punto finale dell'area." +#: FlatCAMDB.py:86 +msgid "Add Geometry Tool in DB" +msgstr "Aggiunti strumento geometria in DB" -#: Common.py:408 -msgid "Exclusion areas added. Checking overlap with the object geometry ..." +#: FlatCAMDB.py:88 FlatCAMDB.py:1643 +msgid "" +"Add a new tool in the Tools Database.\n" +"It will be used in the Geometry UI.\n" +"You can edit it after it is added." msgstr "" +"Aggiunge uno strumento nel DataBase degli strumenti.\n" +"Sarà usato nella UI delle Geometrie.\n" +"Puoi modificarlo una volta aggiunto." -#: Common.py:413 -msgid "Failed. Exclusion areas intersects the object geometry ..." +#: FlatCAMDB.py:102 FlatCAMDB.py:1657 +msgid "Delete Tool from DB" +msgstr "Cancella strumento dal DB" + +#: FlatCAMDB.py:104 FlatCAMDB.py:1659 +msgid "Remove a selection of tools in the Tools Database." +msgstr "Rimuovi una selezione di strumenti dal Database strumenti." + +#: FlatCAMDB.py:108 FlatCAMDB.py:1663 +msgid "Export DB" +msgstr "Esporta DB" + +#: FlatCAMDB.py:110 FlatCAMDB.py:1665 +msgid "Save the Tools Database to a custom text file." +msgstr "Salva il Database strumenti in un file." + +#: FlatCAMDB.py:114 FlatCAMDB.py:1669 +msgid "Import DB" +msgstr "Importa DB" + +#: FlatCAMDB.py:116 FlatCAMDB.py:1671 +msgid "Load the Tools Database information's from a custom text file." +msgstr "Carica il Databse strumenti da un file esterno." + +#: FlatCAMDB.py:120 FlatCAMDB.py:1681 +msgid "Add Tool from Tools DB" +msgstr "Aggiungi strumento dal DB strumenti" + +#: FlatCAMDB.py:122 FlatCAMDB.py:1683 +msgid "" +"Add a new tool in the Tools Table of the\n" +"active Geometry object after selecting a tool\n" +"in the Tools Database." msgstr "" +"Add a new tool in the Tools Table of the\n" +"active Geometry object after selecting a tool\n" +"in the Tools Database." -#: Common.py:417 -msgid "Exclusion areas added." +#: FlatCAMDB.py:158 FlatCAMDB.py:833 FlatCAMDB.py:1087 +msgid "Tool Name" +msgstr "Nome utensile" + +#: FlatCAMDB.py:159 FlatCAMDB.py:835 FlatCAMDB.py:1100 +#: flatcamEditors/FlatCAMExcEditor.py:1604 flatcamGUI/ObjectUI.py:1345 +#: flatcamGUI/ObjectUI.py:1583 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:132 +#: flatcamTools/ToolNCC.py:278 flatcamTools/ToolNCC.py:287 +#: flatcamTools/ToolPaint.py:261 +msgid "Tool Dia" +msgstr "Diametro utensile" + +#: FlatCAMDB.py:160 FlatCAMDB.py:837 FlatCAMDB.py:1281 +#: flatcamGUI/ObjectUI.py:1558 +msgid "Tool Offset" +msgstr "Offset utensile" + +#: FlatCAMDB.py:161 FlatCAMDB.py:839 FlatCAMDB.py:1298 +msgid "Custom Offset" +msgstr "Utensile personalizzato" + +#: FlatCAMDB.py:162 FlatCAMDB.py:841 FlatCAMDB.py:1265 +#: flatcamGUI/ObjectUI.py:309 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:67 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:53 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:62 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:72 +#: flatcamTools/ToolNCC.py:213 flatcamTools/ToolNCC.py:227 +#: flatcamTools/ToolPaint.py:196 +msgid "Tool Type" +msgstr "Tipo utensile" + +#: FlatCAMDB.py:163 FlatCAMDB.py:843 FlatCAMDB.py:1113 +msgid "Tool Shape" +msgstr "Forma utensile" + +#: FlatCAMDB.py:164 FlatCAMDB.py:846 FlatCAMDB.py:1129 +#: flatcamGUI/ObjectUI.py:350 flatcamGUI/ObjectUI.py:900 +#: flatcamGUI/ObjectUI.py:1703 flatcamGUI/ObjectUI.py:2256 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:93 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:48 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:107 +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:78 +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:58 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:98 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:105 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:113 +#: flatcamTools/ToolCalculators.py:114 flatcamTools/ToolCutOut.py:138 +#: flatcamTools/ToolNCC.py:260 flatcamTools/ToolNCC.py:268 +#: flatcamTools/ToolPaint.py:243 +msgid "Cut Z" +msgstr "Taglio Z" + +#: FlatCAMDB.py:165 FlatCAMDB.py:848 FlatCAMDB.py:1143 +msgid "MultiDepth" +msgstr "Multi profondità" + +#: FlatCAMDB.py:166 FlatCAMDB.py:850 FlatCAMDB.py:1156 +msgid "DPP" +msgstr "DPP" + +#: FlatCAMDB.py:167 FlatCAMDB.py:852 FlatCAMDB.py:1312 +msgid "V-Dia" +msgstr "Diametro V" + +#: FlatCAMDB.py:168 FlatCAMDB.py:854 FlatCAMDB.py:1326 +msgid "V-Angle" +msgstr "Angolo V" + +#: FlatCAMDB.py:169 FlatCAMDB.py:856 FlatCAMDB.py:1170 +#: flatcamGUI/ObjectUI.py:946 flatcamGUI/ObjectUI.py:1750 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:134 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:101 +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:61 +#: flatcamObjects/FlatCAMExcellon.py:1316 +#: flatcamObjects/FlatCAMGeometry.py:1578 flatcamTools/ToolCalibration.py:74 +msgid "Travel Z" +msgstr "Travel Z" + +#: FlatCAMDB.py:170 FlatCAMDB.py:858 +msgid "FR" +msgstr "FR" + +#: FlatCAMDB.py:171 FlatCAMDB.py:860 +msgid "FR Z" +msgstr "FR Z" + +#: FlatCAMDB.py:172 FlatCAMDB.py:862 FlatCAMDB.py:1340 +msgid "FR Rapids" +msgstr "FR Rapidi" + +#: FlatCAMDB.py:173 FlatCAMDB.py:864 FlatCAMDB.py:1213 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:222 +msgid "Spindle Speed" +msgstr "Velocità mandrino" + +#: FlatCAMDB.py:174 FlatCAMDB.py:866 FlatCAMDB.py:1228 +#: flatcamGUI/ObjectUI.py:1064 flatcamGUI/ObjectUI.py:1857 +msgid "Dwell" +msgstr "Dimora" + +#: FlatCAMDB.py:175 FlatCAMDB.py:868 FlatCAMDB.py:1241 +msgid "Dwelltime" +msgstr "Tempo dimora" + +#: FlatCAMDB.py:176 FlatCAMDB.py:870 flatcamGUI/ObjectUI.py:2014 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:257 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:254 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:237 +#: flatcamTools/ToolSolderPaste.py:335 +msgid "Preprocessor" +msgstr "Preprocessore" + +#: FlatCAMDB.py:177 FlatCAMDB.py:872 FlatCAMDB.py:1356 +msgid "ExtraCut" +msgstr "Taglio extra" + +#: FlatCAMDB.py:178 FlatCAMDB.py:874 FlatCAMDB.py:1371 +msgid "E-Cut Length" +msgstr "Lunghezza E-taglio" + +#: FlatCAMDB.py:179 FlatCAMDB.py:876 +msgid "Toolchange" +msgstr "Cambio utensile" + +#: FlatCAMDB.py:180 FlatCAMDB.py:878 +msgid "Toolchange XY" +msgstr "Cambio utensile XY" + +#: FlatCAMDB.py:181 FlatCAMDB.py:880 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:160 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:131 +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:98 +#: flatcamTools/ToolCalibration.py:111 +msgid "Toolchange Z" +msgstr "Cambio utensile Z" + +#: FlatCAMDB.py:182 FlatCAMDB.py:882 flatcamGUI/ObjectUI.py:1193 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:69 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:54 +msgid "Start Z" +msgstr "Z iniziale" + +#: FlatCAMDB.py:183 FlatCAMDB.py:885 +msgid "End Z" +msgstr "Z finale" + +#: FlatCAMDB.py:187 +msgid "Tool Index." +msgstr "Indice utensile." + +#: FlatCAMDB.py:189 FlatCAMDB.py:1089 +msgid "" +"Tool name.\n" +"This is not used in the app, it's function\n" +"is to serve as a note for the user." msgstr "" +"Nome utensile.\n" +"Non è usato dalla app, la sua funzione\n" +"è solo una nota per l'utente." -#: Common.py:426 -msgid "With Exclusion areas." +#: FlatCAMDB.py:193 FlatCAMDB.py:1102 +msgid "Tool Diameter." +msgstr "Diametro utensile." + +#: FlatCAMDB.py:195 FlatCAMDB.py:1283 +msgid "" +"Tool Offset.\n" +"Can be of a few types:\n" +"Path = zero offset\n" +"In = offset inside by half of tool diameter\n" +"Out = offset outside by half of tool diameter\n" +"Custom = custom offset using the Custom Offset value" msgstr "" +"Offset utensile.\n" +"Può essere di vari tipi:\n" +"Path = senza offset\n" +"In = all'interno per metà del diametro dell'utensile\n" +"Out = all'esterno per metà del diametro dell'utensile\n" +"Custom = offset personalizzato usando il campo Offset Personale" -#: Common.py:461 -msgid "Cancelled. Area exclusion drawing was interrupted." +#: FlatCAMDB.py:202 FlatCAMDB.py:1300 +msgid "" +"Custom Offset.\n" +"A value to be used as offset from the current path." msgstr "" +"Offset Personale.\n" +"Valore da usare come offset nel percorso attuale." -#: Common.py:572 Common.py:621 -#, fuzzy -#| msgid "All objects are selected." -msgid "All exclusion zones deleted." -msgstr "Tutti gli oggetti sono selezionati." +#: FlatCAMDB.py:205 FlatCAMDB.py:1267 +msgid "" +"Tool Type.\n" +"Can be:\n" +"Iso = isolation cut\n" +"Rough = rough cut, low feedrate, multiple passes\n" +"Finish = finishing cut, high feedrate" +msgstr "" +"Tipo di utensile.\n" +"Può essere:\n" +"Iso = taglio isolante\n" +"Rough = taglio grezzo, basso feedrate, passate multiple\n" +"Finish = taglio finale, alto feedrate" -#: Common.py:608 -#, fuzzy -#| msgid "Selected plots enabled..." -msgid "Selected exclusion zones deleted." -msgstr "Tracce selezionate attive..." +#: FlatCAMDB.py:211 FlatCAMDB.py:1115 +msgid "" +"Tool Shape. \n" +"Can be:\n" +"C1 ... C4 = circular tool with x flutes\n" +"B = ball tip milling tool\n" +"V = v-shape milling tool" +msgstr "" +"Forma utensile. \n" +"Può essere:\n" +"C1 ... C4 = utensile circolare con x flutes\n" +"B = punta sferica da incisione\n" +"V = utensile da incisione a V" + +#: FlatCAMDB.py:217 FlatCAMDB.py:1131 +msgid "" +"Cutting Depth.\n" +"The depth at which to cut into material." +msgstr "" +"Profondità taglio.\n" +"Profondità nella quale affondare nel materiale." + +#: FlatCAMDB.py:220 FlatCAMDB.py:1145 +msgid "" +"Multi Depth.\n" +"Selecting this will allow cutting in multiple passes,\n" +"each pass adding a DPP parameter depth." +msgstr "" +"Passaggi multipli.\n" +"Selezionandolo verrà tagliato in più passate,\n" +"ogni passata aggiunge una profondità del parametro DPP." + +#: FlatCAMDB.py:224 FlatCAMDB.py:1158 +msgid "" +"DPP. Depth per Pass.\n" +"The value used to cut into material on each pass." +msgstr "" +"DPP. Profondità per passata.\n" +"Valore usato per tagliare il materiale in più passaggi." + +#: FlatCAMDB.py:227 FlatCAMDB.py:1314 +msgid "" +"V-Dia.\n" +"Diameter of the tip for V-Shape Tools." +msgstr "" +"Diametro V.\n" +"Diameter della punta dell'utensile a V." + +#: FlatCAMDB.py:230 FlatCAMDB.py:1328 +msgid "" +"V-Agle.\n" +"Angle at the tip for the V-Shape Tools." +msgstr "" +"Angolo V.\n" +"Angolo alla punta dell'utensile a V." + +#: FlatCAMDB.py:233 FlatCAMDB.py:1172 +msgid "" +"Clearance Height.\n" +"Height at which the milling bit will travel between cuts,\n" +"above the surface of the material, avoiding all fixtures." +msgstr "" +"Altezza libera.\n" +"Altezza alla quale l'utensile si sposta tra i tagli,\n" +"sopra alla superficie del materiale, evitando collisioni." + +#: FlatCAMDB.py:237 +msgid "" +"FR. Feedrate\n" +"The speed on XY plane used while cutting into material." +msgstr "" +"FR. Feedrate\n" +"Velocità usata sul piano XY durante il taglio nel materiale." + +#: FlatCAMDB.py:240 +msgid "" +"FR Z. Feedrate Z\n" +"The speed on Z plane." +msgstr "" +"FR Z. Feedrate Z\n" +"La velocità nell'asse Z." + +#: FlatCAMDB.py:243 FlatCAMDB.py:1342 +msgid "" +"FR Rapids. Feedrate Rapids\n" +"Speed used while moving as fast as possible.\n" +"This is used only by some devices that can't use\n" +"the G0 g-code command. Mostly 3D printers." +msgstr "" +"FR Rapidi. Feedrate Rapidi\n" +"Velocità degli spostamenti alla velocità massima possibile.\n" +"Usata da alcuni device che non possono usare il comando\n" +"G-code G0. Principalmente stampanti 3D." + +#: FlatCAMDB.py:248 FlatCAMDB.py:1215 +msgid "" +"Spindle Speed.\n" +"If it's left empty it will not be used.\n" +"The speed of the spindle in RPM." +msgstr "" +"Velocità mandrino.\n" +"Se vuota non sarà usata.\n" +"La velocità del mandrino in RPM." + +#: FlatCAMDB.py:252 FlatCAMDB.py:1230 +msgid "" +"Dwell.\n" +"Check this if a delay is needed to allow\n" +"the spindle motor to reach it's set speed." +msgstr "" +"Dimora.\n" +"Abilitare se è necessaria una attesa per permettere\n" +"al motore di raggiungere la velocità impostata." + +#: FlatCAMDB.py:256 FlatCAMDB.py:1243 +msgid "" +"Dwell Time.\n" +"A delay used to allow the motor spindle reach it's set speed." +msgstr "" +"Tempo dimora.\n" +"Il tempo da aspettare affinchè il mandrino raggiunga la sua velocità." + +#: FlatCAMDB.py:259 +msgid "" +"Preprocessor.\n" +"A selection of files that will alter the generated G-code\n" +"to fit for a number of use cases." +msgstr "" +"Preprocessore.\n" +"Una selezione di files che alterano il G-Code generato\n" +"per adattarsi a vari casi." + +#: FlatCAMDB.py:263 FlatCAMDB.py:1358 +msgid "" +"Extra Cut.\n" +"If checked, after a isolation is finished an extra cut\n" +"will be added where the start and end of isolation meet\n" +"such as that this point is covered by this extra cut to\n" +"ensure a complete isolation." +msgstr "" +"Taglio extra.\n" +"Se abilitato, dopo il termine di un isolamento sarà aggiunto\n" +"un taglio extra dove si incontrano l'inizio e la fine del taglio\n" +"così da assicurare un completo isolamento." + +#: FlatCAMDB.py:269 FlatCAMDB.py:1373 +msgid "" +"Extra Cut length.\n" +"If checked, after a isolation is finished an extra cut\n" +"will be added where the start and end of isolation meet\n" +"such as that this point is covered by this extra cut to\n" +"ensure a complete isolation. This is the length of\n" +"the extra cut." +msgstr "" +"Lunghezza taglio extra.\n" +"Se abilitato, dopo il termine di un isolamento sarà aggiunto\n" +"un taglio extra dove si incontrano l'inizio e la fine del taglio\n" +"così da assicurare un completo isolamento. Questa è la\n" +"lunghezza del taglio extra." + +#: FlatCAMDB.py:276 +msgid "" +"Toolchange.\n" +"It will create a toolchange event.\n" +"The kind of toolchange is determined by\n" +"the preprocessor file." +msgstr "" +"Cambio utensile.\n" +"Genererà un evento di cambio utensile.\n" +"Il tipo di cambio utensile è determinato dal\n" +"file del preprocessore." + +#: FlatCAMDB.py:281 +msgid "" +"Toolchange XY.\n" +"A set of coordinates in the format (x, y).\n" +"Will determine the cartesian position of the point\n" +"where the tool change event take place." +msgstr "" +"Cambio utensile XY.\n" +"Set di coordinate in formato (x, y).\n" +"Determinano la posizione cartesiana del punto\n" +"dove avverrà il cambio utensile." + +#: FlatCAMDB.py:286 +msgid "" +"Toolchange Z.\n" +"The position on Z plane where the tool change event take place." +msgstr "" +"Cambio utensile Z.\n" +"La posizione in Z dove avverrà il cambio utensile." + +#: FlatCAMDB.py:289 +msgid "" +"Start Z.\n" +"If it's left empty it will not be used.\n" +"A position on Z plane to move immediately after job start." +msgstr "" +"Z iniziale.\n" +"Se lasciato vuoto non sarà usato.\n" +"Posizione in Z a cui spostarsi per iniziare la lavorazione." + +#: FlatCAMDB.py:293 +msgid "" +"End Z.\n" +"A position on Z plane to move immediately after job stop." +msgstr "" +"Z finale.\n" +"Posizione in Z alla quale posizionarsi a fine lavoro." + +#: FlatCAMDB.py:305 FlatCAMDB.py:682 FlatCAMDB.py:716 FlatCAMDB.py:1898 +#: FlatCAMDB.py:2144 FlatCAMDB.py:2178 +msgid "Could not load Tools DB file." +msgstr "Impossibile caricare il file del DB utensili." + +#: FlatCAMDB.py:313 FlatCAMDB.py:724 FlatCAMDB.py:1906 FlatCAMDB.py:2186 +msgid "Failed to parse Tools DB file." +msgstr "Impossibile processare il file del DB utensili." + +#: FlatCAMDB.py:316 FlatCAMDB.py:727 FlatCAMDB.py:1909 FlatCAMDB.py:2189 +msgid "Loaded FlatCAM Tools DB from" +msgstr "Database utensili FlatCAM caricato da" + +#: FlatCAMDB.py:322 FlatCAMDB.py:1823 +msgid "Add to DB" +msgstr "Aggiungi a DB" + +#: FlatCAMDB.py:324 FlatCAMDB.py:1826 +msgid "Copy from DB" +msgstr "Copia da DB" + +#: FlatCAMDB.py:326 FlatCAMDB.py:1829 +msgid "Delete from DB" +msgstr "Cancella da DB" + +#: FlatCAMDB.py:603 FlatCAMDB.py:2044 +msgid "Tool added to DB." +msgstr "Utensile aggiunto al DB." + +#: FlatCAMDB.py:624 FlatCAMDB.py:2077 +msgid "Tool copied from Tools DB." +msgstr "Utensile copiato dal DB utensile." + +#: FlatCAMDB.py:642 FlatCAMDB.py:2104 +msgid "Tool removed from Tools DB." +msgstr "Utensile rimosso dal DB utensili." + +#: FlatCAMDB.py:653 FlatCAMDB.py:2115 +msgid "Export Tools Database" +msgstr "Esportazione DataBase utensili" + +#: FlatCAMDB.py:656 FlatCAMDB.py:2118 +msgid "Tools_Database" +msgstr "Databse_utensili" + +#: FlatCAMDB.py:693 FlatCAMDB.py:696 FlatCAMDB.py:748 FlatCAMDB.py:2155 +#: FlatCAMDB.py:2158 FlatCAMDB.py:2211 +msgid "Failed to write Tools DB to file." +msgstr "Errore nella scrittura del file del DB utensili." + +#: FlatCAMDB.py:699 FlatCAMDB.py:2161 +msgid "Exported Tools DB to" +msgstr "DB utensili esportato in" + +#: FlatCAMDB.py:706 FlatCAMDB.py:2168 +msgid "Import FlatCAM Tools DB" +msgstr "Importazione DB FlatCAM utensili" + +#: FlatCAMDB.py:752 FlatCAMDB.py:2215 +msgid "Saved Tools DB." +msgstr "DB utensili salvati." + +#: FlatCAMDB.py:899 FlatCAMDB.py:2405 +msgid "No Tool/row selected in the Tools Database table" +msgstr "Nessun utensile/colonna selezionato nella tabella DB degli utensili" + +#: FlatCAMDB.py:917 FlatCAMDB.py:2422 +msgid "Cancelled adding tool from DB." +msgstr "Aggiunta utensile in DB annullata." + +#: FlatCAMDB.py:1018 +msgid "Basic Geo Parameters" +msgstr "Parametri Geo Basic" + +#: FlatCAMDB.py:1030 +msgid "Advanced Geo Parameters" +msgstr "Parametri Geo avanzati" + +#: FlatCAMDB.py:1042 +msgid "NCC Parameters" +msgstr "Parametri NCC" + +#: FlatCAMDB.py:1054 +msgid "Paint Parameters" +msgstr "Parametri pittura" + +#: FlatCAMDB.py:1185 flatcamGUI/ObjectUI.py:967 flatcamGUI/ObjectUI.py:1769 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:185 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:148 +#: flatcamTools/ToolSolderPaste.py:253 +msgid "Feedrate X-Y" +msgstr "Avanzamento X-Y" + +#: FlatCAMDB.py:1187 +msgid "" +"Feedrate X-Y. Feedrate\n" +"The speed on XY plane used while cutting into material." +msgstr "" +"Avanzamento X-Y. Feedrate\n" +"Velocità usata sul piano XY durante il taglio nel materiale." + +#: FlatCAMDB.py:1199 flatcamGUI/ObjectUI.py:982 flatcamGUI/ObjectUI.py:1783 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:207 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:200 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:161 +#: flatcamTools/ToolSolderPaste.py:265 +msgid "Feedrate Z" +msgstr "Avanzamento Z" + +#: FlatCAMDB.py:1201 +msgid "" +"Feedrate Z\n" +"The speed on Z plane." +msgstr "" +"Avanzamento Z. Feedrate Z\n" +"La velocità sull'asse Z." + +#: FlatCAMDB.py:1399 flatcamGUI/ObjectUI.py:845 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:46 +#: flatcamTools/ToolNCC.py:341 +msgid "Operation" +msgstr "Operazione" + +#: FlatCAMDB.py:1401 flatcamTools/ToolNCC.py:343 +msgid "" +"The 'Operation' can be:\n" +"- Isolation -> will ensure that the non-copper clearing is always complete.\n" +"If it's not successful then the non-copper clearing will fail, too.\n" +"- Clear -> the regular non-copper clearing." +msgstr "" +"L' 'Operazione' può essere:\n" +"- Isolamento -> assicurerà che la rimozione non-rame sia sempre completa.\n" +"Se non ha esito positivo, anche la pulizia non-rame avrà esito negativo.\n" +"- Cancella -> la normale pulizia non-rame." + +#: FlatCAMDB.py:1408 flatcamEditors/FlatCAMGrbEditor.py:2742 +#: flatcamGUI/GUIElements.py:2577 flatcamTools/ToolNCC.py:350 +msgid "Clear" +msgstr "Pulisci" + +#: FlatCAMDB.py:1409 flatcamTools/ToolNCC.py:351 flatcamTools/ToolNCC.py:1618 +msgid "Isolation" +msgstr "Isolamento" + +#: FlatCAMDB.py:1417 flatcamGUI/ObjectUI.py:409 flatcamGUI/ObjectUI.py:867 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:62 +#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:56 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:95 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:137 +#: flatcamTools/ToolNCC.py:359 +msgid "Milling Type" +msgstr "Tipo di fresatura" + +#: FlatCAMDB.py:1419 FlatCAMDB.py:1427 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:139 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:147 +#: flatcamTools/ToolNCC.py:361 flatcamTools/ToolNCC.py:369 +msgid "" +"Milling type when the selected tool is of type: 'iso_op':\n" +"- climb / best for precision milling and to reduce tool usage\n" +"- conventional / useful when there is no backlash compensation" +msgstr "" +"Tipo di fresatura quando l'utensile selezionato è di tipo: 'iso_op':\n" +"- salita / migliore per fresatura di precisione e riduzione dell'uso degli " +"utensili\n" +"- convenzionale / utile in assenza di compensazione del gioco" + +#: FlatCAMDB.py:1424 flatcamGUI/ObjectUI.py:415 +#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:62 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:102 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:144 +#: flatcamTools/ToolNCC.py:366 +msgid "Climb" +msgstr "Salita" + +#: FlatCAMDB.py:1425 flatcamGUI/ObjectUI.py:416 +#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:63 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:103 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:145 +#: flatcamTools/ToolNCC.py:367 +msgid "Conventional" +msgstr "Convenzionale" + +#: FlatCAMDB.py:1437 FlatCAMDB.py:1546 flatcamEditors/FlatCAMGeoEditor.py:451 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:182 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:163 +#: flatcamTools/ToolNCC.py:382 flatcamTools/ToolPaint.py:329 +msgid "Overlap" +msgstr "Sovrapposizione" + +#: FlatCAMDB.py:1439 flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:184 +#: flatcamTools/ToolNCC.py:384 +msgid "" +"How much (percentage) of the tool width to overlap each tool pass.\n" +"Adjust the value starting with lower values\n" +"and increasing it if areas that should be cleared are still \n" +"not cleared.\n" +"Lower values = faster processing, faster execution on CNC.\n" +"Higher values = slow processing and slow execution on CNC\n" +"due of too many paths." +msgstr "" +"Quanta (frazione) della larghezza dell'utensile da sovrapporre ad\n" +"ogni passaggio dell'utensile. Regola il valore iniziando con valori\n" +"più bassi e aumentandolo se le aree da eliminare sono ancora\n" +"presenti.\n" +"Valori più bassi = elaborazione più rapida, esecuzione più veloce su CNC.\n" +"Valori più alti = elaborazione lenta ed esecuzione lenta su CNC\n" +"per i molti percorsi." + +#: FlatCAMDB.py:1458 FlatCAMDB.py:1567 flatcamEditors/FlatCAMGeoEditor.py:471 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:72 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:229 +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:59 +#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:45 +#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:53 +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:115 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:202 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:183 +#: flatcamTools/ToolCopperThieving.py:111 +#: flatcamTools/ToolCopperThieving.py:362 flatcamTools/ToolCutOut.py:190 +#: flatcamTools/ToolFiducials.py:172 flatcamTools/ToolInvertGerber.py:88 +#: flatcamTools/ToolInvertGerber.py:96 flatcamTools/ToolNCC.py:403 +#: flatcamTools/ToolPaint.py:350 +msgid "Margin" +msgstr "Margine" + +#: FlatCAMDB.py:1460 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:74 +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:61 +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:125 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:204 +#: flatcamTools/ToolCopperThieving.py:113 flatcamTools/ToolFiducials.py:174 +#: flatcamTools/ToolFiducials.py:237 flatcamTools/ToolNCC.py:405 +msgid "Bounding box margin." +msgstr "Margine del riquadro di delimitazione." + +#: FlatCAMDB.py:1471 FlatCAMDB.py:1582 flatcamEditors/FlatCAMGeoEditor.py:485 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:105 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:106 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:215 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:198 +#: flatcamTools/ToolExtractDrills.py:128 flatcamTools/ToolNCC.py:416 +#: flatcamTools/ToolPaint.py:365 flatcamTools/ToolPunchGerber.py:139 +msgid "Method" +msgstr "Metodo" + +#: FlatCAMDB.py:1473 flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:217 +#: flatcamTools/ToolNCC.py:418 +msgid "" +"Algorithm for copper clearing:\n" +"- Standard: Fixed step inwards.\n" +"- Seed-based: Outwards from seed.\n" +"- Line-based: Parallel lines." +msgstr "" +"Algoritmo per la pittura:\n" +"- Standard: passo fisso verso l'interno.\n" +"- A base di semi: verso l'esterno dal seme.\n" +"- Basato su linee: linee parallele." + +#: FlatCAMDB.py:1481 FlatCAMDB.py:1596 flatcamEditors/FlatCAMGeoEditor.py:499 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:230 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217 +#: flatcamTools/ToolNCC.py:431 flatcamTools/ToolNCC.py:2390 +#: flatcamTools/ToolNCC.py:2419 flatcamTools/ToolNCC.py:2688 +#: flatcamTools/ToolNCC.py:2720 flatcamTools/ToolPaint.py:390 +#: flatcamTools/ToolPaint.py:1829 tclCommands/TclCommandCopperClear.py:126 +#: tclCommands/TclCommandCopperClear.py:134 tclCommands/TclCommandPaint.py:125 +msgid "Standard" +msgstr "Standard" + +#: FlatCAMDB.py:1481 FlatCAMDB.py:1596 defaults.py:391 defaults.py:423 +#: flatcamEditors/FlatCAMGeoEditor.py:499 +#: flatcamEditors/FlatCAMGeoEditor.py:569 +#: flatcamEditors/FlatCAMGeoEditor.py:5152 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:230 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217 +#: flatcamTools/ToolNCC.py:431 flatcamTools/ToolNCC.py:2396 +#: flatcamTools/ToolNCC.py:2424 flatcamTools/ToolNCC.py:2694 +#: flatcamTools/ToolNCC.py:2726 flatcamTools/ToolPaint.py:390 +#: flatcamTools/ToolPaint.py:1843 tclCommands/TclCommandCopperClear.py:128 +#: tclCommands/TclCommandCopperClear.py:136 tclCommands/TclCommandPaint.py:127 +msgid "Seed" +msgstr "Seme" + +#: FlatCAMDB.py:1481 FlatCAMDB.py:1596 flatcamEditors/FlatCAMGeoEditor.py:499 +#: flatcamEditors/FlatCAMGeoEditor.py:5156 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:230 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217 +#: flatcamTools/ToolNCC.py:431 flatcamTools/ToolPaint.py:390 +#: flatcamTools/ToolPaint.py:699 flatcamTools/ToolPaint.py:1857 +#: tclCommands/TclCommandCopperClear.py:130 tclCommands/TclCommandPaint.py:129 +msgid "Lines" +msgstr "Righe" + +#: FlatCAMDB.py:1489 FlatCAMDB.py:1607 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:237 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:224 +#: flatcamTools/ToolNCC.py:439 flatcamTools/ToolPaint.py:401 +msgid "Connect" +msgstr "Connetti" + +#: FlatCAMDB.py:1493 FlatCAMDB.py:1610 flatcamEditors/FlatCAMGeoEditor.py:508 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:239 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:226 +#: flatcamTools/ToolNCC.py:443 flatcamTools/ToolPaint.py:404 +msgid "" +"Draw lines between resulting\n" +"segments to minimize tool lifts." +msgstr "" +"Disegna linee tra segmenti risultanti\n" +"per minimizzare i sollevamenti dell'utensile." + +#: FlatCAMDB.py:1499 FlatCAMDB.py:1614 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:246 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:232 +#: flatcamTools/ToolNCC.py:449 flatcamTools/ToolPaint.py:408 +msgid "Contour" +msgstr "Controno" + +#: FlatCAMDB.py:1503 FlatCAMDB.py:1617 flatcamEditors/FlatCAMGeoEditor.py:518 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:248 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:234 +#: flatcamTools/ToolNCC.py:453 flatcamTools/ToolPaint.py:411 +msgid "" +"Cut around the perimeter of the polygon\n" +"to trim rough edges." +msgstr "" +"Taglia attorno al perimetro del poligono\n" +"per rifinire bordi grezzi." + +#: FlatCAMDB.py:1509 flatcamEditors/FlatCAMGeoEditor.py:612 +#: flatcamEditors/FlatCAMGrbEditor.py:5311 flatcamGUI/ObjectUI.py:143 +#: flatcamGUI/ObjectUI.py:1497 flatcamGUI/ObjectUI.py:2246 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:255 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:142 +#: flatcamTools/ToolNCC.py:459 flatcamTools/ToolTransform.py:28 +msgid "Offset" +msgstr "Offset" + +#: FlatCAMDB.py:1513 flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:257 +#: flatcamTools/ToolNCC.py:463 +msgid "" +"If used, it will add an offset to the copper features.\n" +"The copper clearing will finish to a distance\n" +"from the copper features.\n" +"The value can be between 0 and 10 FlatCAM units." +msgstr "" +"Se utilizzato, aggiungerà un offset alle lavorazioni su rame.\n" +"La rimozione del del rame finirà a una data distanza\n" +"dalle lavorazioni sul rame.\n" +"Il valore può essere compreso tra 0 e 10 unità FlatCAM." + +#: FlatCAMDB.py:1548 flatcamEditors/FlatCAMGeoEditor.py:453 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:165 +#: flatcamTools/ToolPaint.py:331 +msgid "" +"How much (percentage) of the tool width to overlap each tool pass.\n" +"Adjust the value starting with lower values\n" +"and increasing it if areas that should be painted are still \n" +"not painted.\n" +"Lower values = faster processing, faster execution on CNC.\n" +"Higher values = slow processing and slow execution on CNC\n" +"due of too many paths." +msgstr "" +"Quanta larghezza dell'utensile (frazione) da sovrapporre ad ogni passaggio.\n" +"Sistema il valore partendo da valori bassi\n" +"ed aumentalo se aree da colorare non lo sono.\n" +"Valori bassi = velocità di elaborazione, velocità di esecuzione su CNC.\n" +"Valori elevati = bassa velocità di elaborazione e bassa velocità di " +"esecuzione su CNC\n" +"causata dai troppo percorsi." + +#: FlatCAMDB.py:1569 flatcamEditors/FlatCAMGeoEditor.py:473 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:185 +#: flatcamTools/ToolPaint.py:352 +msgid "" +"Distance by which to avoid\n" +"the edges of the polygon to\n" +"be painted." +msgstr "" +"Distanza alla quale evitare\n" +"i bordi dei poligoni da\n" +"disegnare." + +#: FlatCAMDB.py:1584 flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:200 +#: flatcamTools/ToolPaint.py:367 +msgid "" +"Algorithm for painting:\n" +"- Standard: Fixed step inwards.\n" +"- Seed-based: Outwards from seed.\n" +"- Line-based: Parallel lines.\n" +"- Laser-lines: Active only for Gerber objects.\n" +"Will create lines that follow the traces.\n" +"- Combo: In case of failure a new method will be picked from the above\n" +"in the order specified." +msgstr "" +"Algoritmo per la pittura: \n" +"- Standard: passo fisso verso l'interno.\n" +"- A base di semi: verso l'esterno dal seme.\n" +"- Basato su linee: linee parallele.\n" +"- Linee laser: attivo solo per oggetti Gerber.\n" +"Creerà linee che seguono le tracce.\n" +"- Combo: in caso di guasto verrà scelto un nuovo metodo tra quelli sopra " +"indicati\n" +"nell'ordine specificato." + +#: FlatCAMDB.py:1596 FlatCAMDB.py:1598 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217 +#: flatcamTools/ToolPaint.py:390 flatcamTools/ToolPaint.py:392 +#: flatcamTools/ToolPaint.py:693 flatcamTools/ToolPaint.py:698 +#: flatcamTools/ToolPaint.py:1871 tclCommands/TclCommandPaint.py:131 +msgid "Laser_lines" +msgstr "Laser_lines" + +#: FlatCAMDB.py:1596 flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217 +#: flatcamTools/ToolPaint.py:390 flatcamTools/ToolPaint.py:2022 +#: tclCommands/TclCommandPaint.py:133 +msgid "Combo" +msgstr "Combinata" + +#: FlatCAMDB.py:1641 +msgid "Add Tool in DB" +msgstr "Aggiunti utensile nel DB" + +#: FlatCAMDB.py:1675 +msgid "Save DB" +msgstr "Salva DB" + +#: FlatCAMDB.py:1677 +msgid "Save the Tools Database information's." +msgstr "Salva le informazioni del Databse utensili." + +#: FlatCAMProcess.py:172 +msgid "processes running." +msgstr "processi in esecuzione." + +#: FlatCAMTool.py:245 FlatCAMTool.py:252 flatcamGUI/ObjectUI.py:157 +#: flatcamGUI/ObjectUI.py:164 +msgid "Edited value is out of range" +msgstr "Il valore modificato è fuori range" + +#: FlatCAMTool.py:247 FlatCAMTool.py:254 flatcamGUI/ObjectUI.py:159 +#: flatcamGUI/ObjectUI.py:166 +msgid "Edited value is within limits." +msgstr "Il valore editato è entro i limiti." + +#: FlatCAMTranslation.py:104 +msgid "The application will restart." +msgstr "L'applicazione sarà riavviata." + +#: FlatCAMTranslation.py:106 +msgid "Are you sure do you want to change the current language to" +msgstr "Sei sicuro di voler cambiare lingua in" + +#: FlatCAMTranslation.py:107 +msgid "Apply Language ..." +msgstr "Applica lingua ..." #: assets/linux/flatcam-beta.desktop:3 msgid "FlatCAM Beta" msgstr "FlatCAM Beta" +#: assets/linux/flatcam-beta.desktop:7 +msgid "./assets/icon.png" +msgstr "./assets/icon.png" + #: assets/linux/flatcam-beta.desktop:8 msgid "G-Code from GERBERS" msgstr "G-Code da GERBER" @@ -18561,55 +2645,66 @@ msgstr "G-Code da GERBER" msgid "self.solid_geometry is neither BaseGeometry or list." msgstr "self.solid_geometry non è né BaseGeometry né una lista." -#: camlib.py:979 +#: camlib.py:970 msgid "Pass" msgstr "Passato" -#: camlib.py:1001 +#: camlib.py:981 flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:146 +#: flatcamObjects/FlatCAMGerber.py:497 flatcamTools/ToolCopperThieving.py:1016 +#: flatcamTools/ToolCopperThieving.py:1205 +#: flatcamTools/ToolCopperThieving.py:1217 flatcamTools/ToolNCC.py:2045 +#: flatcamTools/ToolNCC.py:2153 flatcamTools/ToolNCC.py:2167 +#: flatcamTools/ToolNCC.py:3098 flatcamTools/ToolNCC.py:3203 +#: flatcamTools/ToolNCC.py:3218 flatcamTools/ToolNCC.py:3484 +#: flatcamTools/ToolNCC.py:3585 flatcamTools/ToolNCC.py:3600 +msgid "Buffering" +msgstr "Riempimento" + +#: camlib.py:990 msgid "Get Exteriors" msgstr "Ottieni esterni" -#: camlib.py:1004 +#: camlib.py:993 msgid "Get Interiors" msgstr "Ottieni interni" -#: camlib.py:2192 +#: camlib.py:2172 msgid "Object was mirrored" msgstr "Oggetti specchiati" -#: camlib.py:2194 +#: camlib.py:2174 msgid "Failed to mirror. No object selected" msgstr "Errore durante la specchiatura. Nessun oggetto selezionato" -#: camlib.py:2259 +#: camlib.py:2239 msgid "Object was rotated" msgstr "Oggetto ruotato" -#: camlib.py:2261 +#: camlib.py:2241 msgid "Failed to rotate. No object selected" msgstr "Errore nella rotazione. Nessun oggetto selezionato" -#: camlib.py:2327 +#: camlib.py:2307 msgid "Object was skewed" msgstr "Oggetto distorto" -#: camlib.py:2329 +#: camlib.py:2309 msgid "Failed to skew. No object selected" msgstr "Errore nella distorsione. Nessun oggetto selezionato" -#: camlib.py:2405 +#: camlib.py:2385 msgid "Object was buffered" msgstr "Oggetto riempito" -#: camlib.py:2407 +#: camlib.py:2387 msgid "Failed to buffer. No object selected" msgstr "Errore nel riempimento. Nessun oggetto selezionato" -#: camlib.py:2650 +#: camlib.py:2594 msgid "There is no such parameter" msgstr "Parametro non esistente" -#: camlib.py:2718 camlib.py:2970 camlib.py:3233 camlib.py:3489 +#: camlib.py:2654 camlib.py:2887 camlib.py:3116 camlib.py:3338 msgid "" "The Cut Z parameter has positive value. It is the depth value to drill into " "material.\n" @@ -18622,13 +2717,13 @@ msgstr "" "Il parametro Cut Z deve avere un valore negativo, potrebbe essere un errore " "e sarà convertito in negativo. Controlla il codice CNC generato (Gcode ecc)." -#: camlib.py:2726 camlib.py:2980 camlib.py:3243 camlib.py:3499 camlib.py:3824 -#: camlib.py:4224 +#: camlib.py:2662 camlib.py:2897 camlib.py:3126 camlib.py:3348 camlib.py:3631 +#: camlib.py:4017 msgid "The Cut Z parameter is zero. There will be no cut, skipping file" msgstr "" "Il parametro Taglio Z (Cut Z) è zero. Non ci sarà alcun taglio, salto il file" -#: camlib.py:2741 camlib.py:4192 +#: camlib.py:2673 camlib.py:3985 msgid "" "The Toolchange X,Y field in Edit -> Preferences has to be in the format (x, " "y) \n" @@ -18638,7 +2733,7 @@ msgstr "" "formato (x, y) \n" "ma ora c'è un solo valore, non due. " -#: camlib.py:2754 camlib.py:3771 camlib.py:4170 +#: camlib.py:2682 camlib.py:3582 camlib.py:3967 msgid "" "The End Move X,Y field in Edit -> Preferences has to be in the format (x, y) " "but now there is only one value, not two." @@ -18646,35 +2741,31 @@ msgstr "" "Il campo X,Y del cambio utensile in Edit -> Preferenze deve essere nel " "formato (x, y) ma ora c'è un solo valore, non due." -#: camlib.py:2842 +#: camlib.py:2770 msgid "Creating a list of points to drill..." msgstr "Creazione lista punti da forare..." -#: camlib.py:2866 -msgid "Failed. Drill points inside the exclusion zones." -msgstr "" - -#: camlib.py:2943 camlib.py:3922 camlib.py:4332 +#: camlib.py:2860 camlib.py:3729 camlib.py:4121 msgid "Starting G-Code" msgstr "Avvio G-Code" -#: camlib.py:3084 camlib.py:3337 camlib.py:3535 camlib.py:3935 camlib.py:4343 +#: camlib.py:3001 camlib.py:3220 camlib.py:3384 camlib.py:3742 camlib.py:4132 msgid "Starting G-Code for tool with diameter" msgstr "Avvio G-Code per utensile con diametro" -#: camlib.py:3201 camlib.py:3453 camlib.py:3655 +#: camlib.py:3084 camlib.py:3302 camlib.py:3470 msgid "G91 coordinates not implemented" msgstr "Coordinate G91 non implementate" -#: camlib.py:3207 camlib.py:3460 camlib.py:3660 +#: camlib.py:3090 camlib.py:3309 camlib.py:3475 msgid "The loaded Excellon file has no drills" msgstr "Il file excellon caricato non ha forature" -#: camlib.py:3683 +#: camlib.py:3498 msgid "Finished G-Code generation..." msgstr "Generazione G-Code terminata..." -#: camlib.py:3793 +#: camlib.py:3600 msgid "" "The Toolchange X,Y field in Edit -> Preferences has to be in the format (x, " "y) \n" @@ -18684,7 +2775,7 @@ msgstr "" "formato (x, y) \n" "ma ora c'è un solo valore, non due." -#: camlib.py:3807 camlib.py:4207 +#: camlib.py:3614 camlib.py:4000 msgid "" "Cut_Z parameter is None or zero. Most likely a bad combinations of other " "parameters." @@ -18692,7 +2783,7 @@ msgstr "" "Il parametro taglio Z (Cut Z) in vuoto o zero. Probabilmente una erronea " "combinazione di altri parametri." -#: camlib.py:3816 camlib.py:4216 +#: camlib.py:3623 camlib.py:4009 msgid "" "The Cut Z parameter has positive value. It is the depth value to cut into " "material.\n" @@ -18705,11 +2796,11 @@ msgstr "" "Il parametro Cut Z deve avere un valore negativo, potrebbe essere un errore " "e sarà convertito in negativo. Controlla il codice CNC generato (Gcode ecc)." -#: camlib.py:3829 camlib.py:4230 +#: camlib.py:3636 camlib.py:4023 msgid "Travel Z parameter is None or zero." msgstr "Il parametro Z di spostamento è vuoto o zero." -#: camlib.py:3834 camlib.py:4235 +#: camlib.py:3641 camlib.py:4028 msgid "" "The Travel Z parameter has negative value. It is the height value to travel " "between cuts.\n" @@ -18723,34 +2814,34 @@ msgstr "" "errore e sarà convertito in positivo. Controlla il codice CNC generato " "(Gcode ecc)." -#: camlib.py:3842 camlib.py:4243 +#: camlib.py:3649 camlib.py:4036 msgid "The Z Travel parameter is zero. This is dangerous, skipping file" msgstr "Il parametro Z Travel è zero. Questo è pericoloso, salto il file" -#: camlib.py:3861 camlib.py:4266 +#: camlib.py:3668 camlib.py:4059 msgid "Indexing geometry before generating G-Code..." msgstr "Indicizzazione geometria prima della generazione del G-Code..." -#: camlib.py:4009 camlib.py:4420 +#: camlib.py:3812 camlib.py:4201 msgid "Finished G-Code generation" msgstr "Fine generazione G-Code" -#: camlib.py:4009 +#: camlib.py:3812 msgid "paths traced" msgstr "percorsi tracciati" -#: camlib.py:4059 +#: camlib.py:3862 msgid "Expected a Geometry, got" msgstr "Era attesa una geometria, c'è" -#: camlib.py:4066 +#: camlib.py:3869 msgid "" "Trying to generate a CNC Job from a Geometry object without solid_geometry." msgstr "" "Tentativo di generare un CNC Job da un oggetto Geometry senza geometria " "solida." -#: camlib.py:4107 +#: camlib.py:3910 msgid "" "The Tool Offset value is too negative to use for the current_geometry.\n" "Raise the value (in module) and try again." @@ -18759,42 +2850,15467 @@ msgstr "" "geometria corrente.\n" "Auemnta il valore (in modulo) e riprova." -#: camlib.py:4420 +#: camlib.py:4201 msgid " paths traced." msgstr " percorsi tracciati." -#: camlib.py:4448 +#: camlib.py:4229 msgid "There is no tool data in the SolderPaste geometry." msgstr "Non ci sono dati utensili nella geometria SolderPaste." -#: camlib.py:4537 +#: camlib.py:4318 msgid "Finished SolderPaste G-Code generation" msgstr "Generazione G-Code SolderPaste terminata" -#: camlib.py:4537 +#: camlib.py:4318 msgid "paths traced." msgstr "percorsi tracciati." -#: camlib.py:4872 +#: camlib.py:4578 msgid "Parsing GCode file. Number of lines" msgstr "Analisi file G-Code. Numero di linee" -#: camlib.py:4979 +#: camlib.py:4685 msgid "Creating Geometry from the parsed GCode file. " msgstr "Creazione geometrie dal file GCode analizzato. " -#: camlib.py:5147 camlib.py:5420 camlib.py:5568 camlib.py:5737 +#: camlib.py:4828 camlib.py:5118 camlib.py:5229 camlib.py:5385 msgid "G91 coordinates not implemented ..." msgstr "Coordinate G91 non implementate ..." -#: defaults.py:771 +#: camlib.py:4960 +msgid "Unifying Geometry from parsed Geometry segments" +msgstr "Unificazione geometrie dai segmenti di geomatria analizzati" + +#: defaults.py:397 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:86 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309 +#: flatcamTools/ToolCopperThieving.py:125 flatcamTools/ToolNCC.py:535 +#: flatcamTools/ToolNCC.py:1301 flatcamTools/ToolNCC.py:1629 +#: flatcamTools/ToolNCC.py:1914 flatcamTools/ToolNCC.py:1978 +#: flatcamTools/ToolNCC.py:2962 flatcamTools/ToolNCC.py:2971 +#: tclCommands/TclCommandCopperClear.py:190 +msgid "Itself" +msgstr "Stesso" + +#: defaults.py:424 flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280 +#: flatcamTools/ToolPaint.py:486 flatcamTools/ToolPaint.py:1422 +#: tclCommands/TclCommandPaint.py:162 +msgid "All Polygons" +msgstr "Tutti i poligoni" + +#: defaults.py:735 msgid "Could not load defaults file." msgstr "Impossibile caricare il file delle impostazioni predefinite." -#: defaults.py:784 +#: defaults.py:748 msgid "Failed to parse defaults file." msgstr "Impossibile analizzare il file delle impostazioni predefinite." +#: flatcamEditors/FlatCAMExcEditor.py:50 flatcamEditors/FlatCAMExcEditor.py:74 +#: flatcamEditors/FlatCAMExcEditor.py:168 +#: flatcamEditors/FlatCAMExcEditor.py:385 +#: flatcamEditors/FlatCAMExcEditor.py:589 +#: flatcamEditors/FlatCAMGrbEditor.py:243 +#: flatcamEditors/FlatCAMGrbEditor.py:250 +msgid "Click to place ..." +msgstr "Clicca per posizionare ..." + +#: flatcamEditors/FlatCAMExcEditor.py:58 +msgid "To add a drill first select a tool" +msgstr "Per aggiungere un foro prima seleziona un utensile" + +#: flatcamEditors/FlatCAMExcEditor.py:122 +msgid "Done. Drill added." +msgstr "Fatto. Foro aggiunto." + +#: flatcamEditors/FlatCAMExcEditor.py:176 +msgid "To add an Drill Array first select a tool in Tool Table" +msgstr "Per aggiungere una matrice di punti prima seleziona un utensile" + +#: flatcamEditors/FlatCAMExcEditor.py:192 +#: flatcamEditors/FlatCAMExcEditor.py:415 +#: flatcamEditors/FlatCAMExcEditor.py:636 +#: flatcamEditors/FlatCAMExcEditor.py:1151 +#: flatcamEditors/FlatCAMExcEditor.py:1178 +#: flatcamEditors/FlatCAMGrbEditor.py:473 +#: flatcamEditors/FlatCAMGrbEditor.py:1937 +#: flatcamEditors/FlatCAMGrbEditor.py:1967 +msgid "Click on target location ..." +msgstr "Clicca sulla posizione di destinazione ..." + +#: flatcamEditors/FlatCAMExcEditor.py:211 +msgid "Click on the Drill Circular Array Start position" +msgstr "Clicca sulla posizione di inizio della matrice fori circolare" + +#: flatcamEditors/FlatCAMExcEditor.py:233 +#: flatcamEditors/FlatCAMExcEditor.py:677 +#: flatcamEditors/FlatCAMGrbEditor.py:518 +msgid "The value is not Float. Check for comma instead of dot separator." +msgstr "Il valore non è float. Controlla che il punto non sia una virgola." + +#: flatcamEditors/FlatCAMExcEditor.py:237 +msgid "The value is mistyped. Check the value" +msgstr "Valore erroneo. Controlla il valore" + +#: flatcamEditors/FlatCAMExcEditor.py:336 +msgid "Too many drills for the selected spacing angle." +msgstr "Troppi fori per l'angolo selezionato." + +#: flatcamEditors/FlatCAMExcEditor.py:354 +msgid "Done. Drill Array added." +msgstr "Fatto. Matrice fori aggiunta." + +#: flatcamEditors/FlatCAMExcEditor.py:394 +msgid "To add a slot first select a tool" +msgstr "Per aggiungere uno slot prima seleziona un utensile" + +#: flatcamEditors/FlatCAMExcEditor.py:454 +#: flatcamEditors/FlatCAMExcEditor.py:461 +#: flatcamEditors/FlatCAMExcEditor.py:742 +#: flatcamEditors/FlatCAMExcEditor.py:749 +msgid "Value is missing or wrong format. Add it and retry." +msgstr "Valore con formato errato o mancante. Aggiungilo e riprova." + +#: flatcamEditors/FlatCAMExcEditor.py:559 +msgid "Done. Adding Slot completed." +msgstr "Fatto. Slot aggiunto." + +#: flatcamEditors/FlatCAMExcEditor.py:597 +msgid "To add an Slot Array first select a tool in Tool Table" +msgstr "" +"Per aggiungere una matrice di slot seleziona prima un utensile dalla tabella" + +#: flatcamEditors/FlatCAMExcEditor.py:655 +msgid "Click on the Slot Circular Array Start position" +msgstr "Clicca sulla posizione iniziale della matrice circolare di slot" + +#: flatcamEditors/FlatCAMExcEditor.py:680 +#: flatcamEditors/FlatCAMGrbEditor.py:521 +msgid "The value is mistyped. Check the value." +msgstr "Valore errato. Controllalo." + +#: flatcamEditors/FlatCAMExcEditor.py:859 +msgid "Too many Slots for the selected spacing angle." +msgstr "Troppi slot per l'angolo selezionato." + +#: flatcamEditors/FlatCAMExcEditor.py:882 +msgid "Done. Slot Array added." +msgstr "Fatto. Matrice di slot aggiunta." + +#: flatcamEditors/FlatCAMExcEditor.py:904 +msgid "Click on the Drill(s) to resize ..." +msgstr "Clicca sul foro(i) da ridimensionare ..." + +#: flatcamEditors/FlatCAMExcEditor.py:934 +msgid "Resize drill(s) failed. Please enter a diameter for resize." +msgstr "" +"Ridimensionamento fallito. Inserisci un diametro per il ridimensionamento." + +#: flatcamEditors/FlatCAMExcEditor.py:1112 +msgid "Done. Drill/Slot Resize completed." +msgstr "Fatto. Ridimensionamento Foro/Slot completato." + +#: flatcamEditors/FlatCAMExcEditor.py:1115 +msgid "Cancelled. No drills/slots selected for resize ..." +msgstr "Cancellato. Nessun foro/slot selezionato per il ridimensionamento ..." + +#: flatcamEditors/FlatCAMExcEditor.py:1153 +#: flatcamEditors/FlatCAMGrbEditor.py:1939 +msgid "Click on reference location ..." +msgstr "Clicca sulla posizione di riferimento ..." + +#: flatcamEditors/FlatCAMExcEditor.py:1210 +msgid "Done. Drill(s) Move completed." +msgstr "Fatto. Foro(i) spostato(i) correttamente." + +#: flatcamEditors/FlatCAMExcEditor.py:1318 +msgid "Done. Drill(s) copied." +msgstr "Fatto. Foro(i) copiato(i)." + +#: flatcamEditors/FlatCAMExcEditor.py:1557 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:26 +msgid "Excellon Editor" +msgstr "Editor Excellon" + +#: flatcamEditors/FlatCAMExcEditor.py:1564 +#: flatcamEditors/FlatCAMGrbEditor.py:2462 +msgid "Name:" +msgstr "Nome:" + +#: flatcamEditors/FlatCAMExcEditor.py:1570 flatcamGUI/ObjectUI.py:761 +#: flatcamGUI/ObjectUI.py:1465 flatcamTools/ToolNCC.py:120 +#: flatcamTools/ToolPaint.py:115 flatcamTools/ToolSolderPaste.py:74 +msgid "Tools Table" +msgstr "Tabella utensili" + +#: flatcamEditors/FlatCAMExcEditor.py:1572 flatcamGUI/ObjectUI.py:763 +msgid "" +"Tools in this Excellon object\n" +"when are used for drilling." +msgstr "" +"Utensili in questo oggetto Excellon\n" +"quando usati per la foratura." + +#: flatcamEditors/FlatCAMExcEditor.py:1584 +#: flatcamEditors/FlatCAMExcEditor.py:3066 flatcamGUI/ObjectUI.py:781 +#: flatcamObjects/FlatCAMExcellon.py:1098 +#: flatcamObjects/FlatCAMExcellon.py:1188 +#: flatcamObjects/FlatCAMExcellon.py:1373 flatcamTools/ToolNCC.py:132 +#: flatcamTools/ToolPaint.py:128 flatcamTools/ToolPcbWizard.py:76 +#: flatcamTools/ToolProperties.py:416 flatcamTools/ToolProperties.py:476 +#: flatcamTools/ToolSolderPaste.py:85 tclCommands/TclCommandDrillcncjob.py:193 +msgid "Diameter" +msgstr "Diametro" + +#: flatcamEditors/FlatCAMExcEditor.py:1592 +msgid "Add/Delete Tool" +msgstr "Aggiungi/Modifica utensile" + +#: flatcamEditors/FlatCAMExcEditor.py:1594 +msgid "" +"Add/Delete a tool to the tool list\n" +"for this Excellon object." +msgstr "" +"Aggiungi/Modifica un utensile dalla lista utensili\n" +"per questo oggetto Excellon." + +#: flatcamEditors/FlatCAMExcEditor.py:1606 flatcamGUI/ObjectUI.py:1585 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:57 +msgid "Diameter for the new tool" +msgstr "Diametro del nuovo utensile" + +#: flatcamEditors/FlatCAMExcEditor.py:1616 +msgid "Add Tool" +msgstr "Aggiunge utensile" + +#: flatcamEditors/FlatCAMExcEditor.py:1618 +msgid "" +"Add a new tool to the tool list\n" +"with the diameter specified above." +msgstr "" +"Aggiungi un nuovo utensile alla lista\n" +"con il diametro specificato sopra." + +#: flatcamEditors/FlatCAMExcEditor.py:1630 +msgid "Delete Tool" +msgstr "Cancella utensile" + +#: flatcamEditors/FlatCAMExcEditor.py:1632 +msgid "" +"Delete a tool in the tool list\n" +"by selecting a row in the tool table." +msgstr "" +"Cancella un utensile dalla lista\n" +"selezionandone la riga nella tabella." + +#: flatcamEditors/FlatCAMExcEditor.py:1650 flatcamGUI/FlatCAMGUI.py:2019 +msgid "Resize Drill(s)" +msgstr "Ridimensiona foro(i)" + +#: flatcamEditors/FlatCAMExcEditor.py:1652 +msgid "Resize a drill or a selection of drills." +msgstr "Ridimensiona un foro o una selezione di fori." + +#: flatcamEditors/FlatCAMExcEditor.py:1659 +msgid "Resize Dia" +msgstr "Diametro ridimensionamento" + +#: flatcamEditors/FlatCAMExcEditor.py:1661 +msgid "Diameter to resize to." +msgstr "Diametro al quale ridimensionare." + +#: flatcamEditors/FlatCAMExcEditor.py:1672 +msgid "Resize" +msgstr "Ridimensiona" + +#: flatcamEditors/FlatCAMExcEditor.py:1674 +msgid "Resize drill(s)" +msgstr "Ridimensiona foro(i)" + +#: flatcamEditors/FlatCAMExcEditor.py:1699 flatcamGUI/FlatCAMGUI.py:2018 +#: flatcamGUI/FlatCAMGUI.py:2270 +msgid "Add Drill Array" +msgstr "Aggiungi matrice di fori" + +#: flatcamEditors/FlatCAMExcEditor.py:1701 +msgid "Add an array of drills (linear or circular array)" +msgstr "Aggiunge una matrice di fori (lineare o circolare)" + +#: flatcamEditors/FlatCAMExcEditor.py:1707 +msgid "" +"Select the type of drills array to create.\n" +"It can be Linear X(Y) or Circular" +msgstr "" +"Seleziona il tipo di matrice di fori da creare.\n" +"Può essere lineare X(Y) o circolare" + +#: flatcamEditors/FlatCAMExcEditor.py:1710 +#: flatcamEditors/FlatCAMExcEditor.py:1924 +#: flatcamEditors/FlatCAMGrbEditor.py:2775 +msgid "Linear" +msgstr "Lineare" + +#: flatcamEditors/FlatCAMExcEditor.py:1711 +#: flatcamEditors/FlatCAMExcEditor.py:1925 +#: flatcamEditors/FlatCAMGrbEditor.py:2776 flatcamGUI/ObjectUI.py:316 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:52 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:149 +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:107 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:52 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:151 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:61 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:70 +#: flatcamTools/ToolExtractDrills.py:78 flatcamTools/ToolExtractDrills.py:201 +#: flatcamTools/ToolFiducials.py:220 flatcamTools/ToolNCC.py:221 +#: flatcamTools/ToolPaint.py:204 flatcamTools/ToolPunchGerber.py:89 +#: flatcamTools/ToolPunchGerber.py:229 +msgid "Circular" +msgstr "Circolare" + +#: flatcamEditors/FlatCAMExcEditor.py:1719 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:68 +msgid "Nr of drills" +msgstr "Numero di fori" + +#: flatcamEditors/FlatCAMExcEditor.py:1720 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:70 +msgid "Specify how many drills to be in the array." +msgstr "Specifica quanti fori sono presenti nella matrice." + +#: flatcamEditors/FlatCAMExcEditor.py:1738 +#: flatcamEditors/FlatCAMExcEditor.py:1788 +#: flatcamEditors/FlatCAMExcEditor.py:1860 +#: flatcamEditors/FlatCAMExcEditor.py:1953 +#: flatcamEditors/FlatCAMExcEditor.py:2004 +#: flatcamEditors/FlatCAMGrbEditor.py:1573 +#: flatcamEditors/FlatCAMGrbEditor.py:2804 +#: flatcamEditors/FlatCAMGrbEditor.py:2853 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:178 +msgid "Direction" +msgstr "Direzione" + +#: flatcamEditors/FlatCAMExcEditor.py:1740 +#: flatcamEditors/FlatCAMExcEditor.py:1955 +#: flatcamEditors/FlatCAMGrbEditor.py:2806 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:86 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:234 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:122 +msgid "" +"Direction on which the linear array is oriented:\n" +"- 'X' - horizontal axis \n" +"- 'Y' - vertical axis or \n" +"- 'Angle' - a custom angle for the array inclination" +msgstr "" +"Direzione di orientamento della matrice lineare:\n" +"- 'X' - asse orizzontale \n" +"- 'Y' - asse verticale o\n" +"- 'Angolo' - angolo per l'inclinazione della matrice" + +#: flatcamEditors/FlatCAMExcEditor.py:1747 +#: flatcamEditors/FlatCAMExcEditor.py:1869 +#: flatcamEditors/FlatCAMExcEditor.py:1962 +#: flatcamEditors/FlatCAMGrbEditor.py:2813 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:92 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:187 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:240 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:128 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:208 +#: flatcamTools/ToolFilm.py:256 +msgid "X" +msgstr "X" + +#: flatcamEditors/FlatCAMExcEditor.py:1748 +#: flatcamEditors/FlatCAMExcEditor.py:1870 +#: flatcamEditors/FlatCAMExcEditor.py:1963 +#: flatcamEditors/FlatCAMGrbEditor.py:2814 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:93 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:188 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:241 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:129 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:209 +#: flatcamTools/ToolFilm.py:257 +msgid "Y" +msgstr "Y" + +#: flatcamEditors/FlatCAMExcEditor.py:1749 +#: flatcamEditors/FlatCAMExcEditor.py:1766 +#: flatcamEditors/FlatCAMExcEditor.py:1800 +#: flatcamEditors/FlatCAMExcEditor.py:1871 +#: flatcamEditors/FlatCAMExcEditor.py:1875 +#: flatcamEditors/FlatCAMExcEditor.py:1964 +#: flatcamEditors/FlatCAMExcEditor.py:1982 +#: flatcamEditors/FlatCAMExcEditor.py:2016 +#: flatcamEditors/FlatCAMGrbEditor.py:2815 +#: flatcamEditors/FlatCAMGrbEditor.py:2832 +#: flatcamEditors/FlatCAMGrbEditor.py:2868 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:94 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:113 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:189 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:194 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:242 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:263 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:130 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:148 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:53 +#: flatcamTools/ToolDistance.py:120 flatcamTools/ToolDistanceMin.py:69 +#: flatcamTools/ToolTransform.py:60 +msgid "Angle" +msgstr "Angolo" + +#: flatcamEditors/FlatCAMExcEditor.py:1753 +#: flatcamEditors/FlatCAMExcEditor.py:1968 +#: flatcamEditors/FlatCAMGrbEditor.py:2819 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:100 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:248 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:136 +msgid "Pitch" +msgstr "Passo" + +#: flatcamEditors/FlatCAMExcEditor.py:1755 +#: flatcamEditors/FlatCAMExcEditor.py:1970 +#: flatcamEditors/FlatCAMGrbEditor.py:2821 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:102 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:250 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:138 +msgid "Pitch = Distance between elements of the array." +msgstr "Passo = distanza tra due elementi della matrice." + +#: flatcamEditors/FlatCAMExcEditor.py:1768 +#: flatcamEditors/FlatCAMExcEditor.py:1984 +msgid "" +"Angle at which the linear array is placed.\n" +"The precision is of max 2 decimals.\n" +"Min value is: -360 degrees.\n" +"Max value is: 360.00 degrees." +msgstr "" +"Angolo al quale è posizionata la matrice lineare.\n" +"La precisione è al massimo di 2 decimali.\n" +"Valore minimo: -360 gradi.\n" +"Valore massimo: 360.00 gradi." + +#: flatcamEditors/FlatCAMExcEditor.py:1789 +#: flatcamEditors/FlatCAMExcEditor.py:2005 +#: flatcamEditors/FlatCAMGrbEditor.py:2855 +msgid "" +"Direction for circular array.Can be CW = clockwise or CCW = counter " +"clockwise." +msgstr "" +"Direzione matrice circolare. Può essere CW = senso orario o CCW = senso " +"antiorario." + +#: flatcamEditors/FlatCAMExcEditor.py:1796 +#: flatcamEditors/FlatCAMExcEditor.py:2012 +#: flatcamEditors/FlatCAMGrbEditor.py:2863 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:129 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:136 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:286 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:142 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:170 +msgid "CW" +msgstr "CW" + +#: flatcamEditors/FlatCAMExcEditor.py:1797 +#: flatcamEditors/FlatCAMExcEditor.py:2013 +#: flatcamEditors/FlatCAMGrbEditor.py:2864 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:130 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:137 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:287 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:143 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:171 +msgid "CCW" +msgstr "CCW" + +#: flatcamEditors/FlatCAMExcEditor.py:1801 +#: flatcamEditors/FlatCAMExcEditor.py:2017 +#: flatcamEditors/FlatCAMGrbEditor.py:2870 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:115 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:145 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:265 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:295 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:150 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:179 +msgid "Angle at which each element in circular array is placed." +msgstr "Angolo al quale è posizionato ogni elementodella matrice circolare." + +#: flatcamEditors/FlatCAMExcEditor.py:1835 +msgid "Slot Parameters" +msgstr "Parametri Slot" + +#: flatcamEditors/FlatCAMExcEditor.py:1837 +msgid "" +"Parameters for adding a slot (hole with oval shape)\n" +"either single or as an part of an array." +msgstr "" +"Parametri per aggiungere uno slot (foro con bordi ovali)\n" +"sia singolo sia come parte di una matrice." + +#: flatcamEditors/FlatCAMExcEditor.py:1846 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:162 +#: flatcamTools/ToolProperties.py:559 +msgid "Length" +msgstr "Lunghezza" + +#: flatcamEditors/FlatCAMExcEditor.py:1848 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:164 +msgid "Length = The length of the slot." +msgstr "Lunghezza = lunghezza dello slot." + +#: flatcamEditors/FlatCAMExcEditor.py:1862 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:180 +msgid "" +"Direction on which the slot is oriented:\n" +"- 'X' - horizontal axis \n" +"- 'Y' - vertical axis or \n" +"- 'Angle' - a custom angle for the slot inclination" +msgstr "" +"Direzione alla quale è orientato lo slot:\n" +"- 'X' - asse orizzontale\n" +"- 'Y' - asse verticale o \n" +"- 'Angolo' - ancolo per l'inclinazione dello slot" + +#: flatcamEditors/FlatCAMExcEditor.py:1877 +msgid "" +"Angle at which the slot is placed.\n" +"The precision is of max 2 decimals.\n" +"Min value is: -360 degrees.\n" +"Max value is: 360.00 degrees." +msgstr "" +"Angolo al quale è posizionato lo slot.\n" +"La precisione è di massimo 2 decimali.\n" +"Valore minimo: -360 gradi.\n" +"Valore massimo: 360.00 gradi." + +#: flatcamEditors/FlatCAMExcEditor.py:1910 +msgid "Slot Array Parameters" +msgstr "Parametri matrice slot" + +#: flatcamEditors/FlatCAMExcEditor.py:1912 +msgid "Parameters for the array of slots (linear or circular array)" +msgstr "Parametri per la matrice di slot (matrice lineare o circolare)" + +#: flatcamEditors/FlatCAMExcEditor.py:1921 +msgid "" +"Select the type of slot array to create.\n" +"It can be Linear X(Y) or Circular" +msgstr "" +"Seleziona il tipo di matrice di slot da creare.\n" +"Può essere lineare (X,Y) o circolare" + +#: flatcamEditors/FlatCAMExcEditor.py:1933 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:219 +msgid "Nr of slots" +msgstr "Numero di Slot" + +#: flatcamEditors/FlatCAMExcEditor.py:1934 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:221 +msgid "Specify how many slots to be in the array." +msgstr "Specifica il numero di slot che comporranno la matrice." + +#: flatcamEditors/FlatCAMExcEditor.py:2452 +#: flatcamObjects/FlatCAMExcellon.py:410 +msgid "Total Drills" +msgstr "Fori totali" + +#: flatcamEditors/FlatCAMExcEditor.py:2484 +#: flatcamObjects/FlatCAMExcellon.py:441 +msgid "Total Slots" +msgstr "Slot totali" + +#: flatcamEditors/FlatCAMExcEditor.py:2559 +#: flatcamEditors/FlatCAMGeoEditor.py:1076 +#: flatcamEditors/FlatCAMGeoEditor.py:1117 +#: flatcamEditors/FlatCAMGeoEditor.py:1145 +#: flatcamEditors/FlatCAMGeoEditor.py:1173 +#: flatcamEditors/FlatCAMGeoEditor.py:1217 +#: flatcamEditors/FlatCAMGeoEditor.py:1252 +#: flatcamEditors/FlatCAMGeoEditor.py:1280 +#: flatcamObjects/FlatCAMGeometry.py:571 flatcamObjects/FlatCAMGeometry.py:1005 +#: flatcamObjects/FlatCAMGeometry.py:1752 +#: flatcamObjects/FlatCAMGeometry.py:2396 flatcamTools/ToolNCC.py:1493 +#: flatcamTools/ToolPaint.py:1244 flatcamTools/ToolPaint.py:1415 +#: flatcamTools/ToolSolderPaste.py:883 flatcamTools/ToolSolderPaste.py:956 +msgid "Wrong value format entered, use a number." +msgstr "Formato valore errato, inserire un numero." + +#: flatcamEditors/FlatCAMExcEditor.py:2570 +msgid "" +"Tool already in the original or actual tool list.\n" +"Save and reedit Excellon if you need to add this tool. " +msgstr "" +"Utensile già presente nella lista.\n" +"Salva e riedita l'Excellon se vuoi aggiungere questo utensile. " + +#: flatcamEditors/FlatCAMExcEditor.py:2579 flatcamGUI/FlatCAMGUI.py:4071 +msgid "Added new tool with dia" +msgstr "Aggiunto nuovo utensile con diametro" + +#: flatcamEditors/FlatCAMExcEditor.py:2612 +msgid "Select a tool in Tool Table" +msgstr "Seleziona un utensile dalla tabella" + +#: flatcamEditors/FlatCAMExcEditor.py:2642 +msgid "Deleted tool with diameter" +msgstr "Eliminato utensile con diametro" + +#: flatcamEditors/FlatCAMExcEditor.py:2790 +msgid "Done. Tool edit completed." +msgstr "Fatto. Modifica utensile completata." + +#: flatcamEditors/FlatCAMExcEditor.py:3352 +msgid "There are no Tools definitions in the file. Aborting Excellon creation." +msgstr "" +"Non ci sono definizioni di utensili nel file. Annullo creazione Excellon." + +#: flatcamEditors/FlatCAMExcEditor.py:3356 +msgid "An internal error has ocurred. See Shell.\n" +msgstr "Errore interno. Vedi shell.\n" + +#: flatcamEditors/FlatCAMExcEditor.py:3361 +msgid "Creating Excellon." +msgstr "Creazione Excellon." + +#: flatcamEditors/FlatCAMExcEditor.py:3373 +msgid "Excellon editing finished." +msgstr "Modifica Excellon terminata." + +#: flatcamEditors/FlatCAMExcEditor.py:3390 +msgid "Cancelled. There is no Tool/Drill selected" +msgstr "Errore: Nessun utensile/Foro selezionato" + +#: flatcamEditors/FlatCAMExcEditor.py:4003 +msgid "Done. Drill(s) deleted." +msgstr "Fatto. Foro(i) cancellato(i)." + +#: flatcamEditors/FlatCAMExcEditor.py:4076 +#: flatcamEditors/FlatCAMExcEditor.py:4086 +#: flatcamEditors/FlatCAMGrbEditor.py:5063 +msgid "Click on the circular array Center position" +msgstr "Clicca sulla posizione centrale della matrice circolare" + +#: flatcamEditors/FlatCAMGeoEditor.py:85 +msgid "Buffer distance:" +msgstr "Riempimento distanza:" + +#: flatcamEditors/FlatCAMGeoEditor.py:86 +msgid "Buffer corner:" +msgstr "Riempimento angolo:" + +#: flatcamEditors/FlatCAMGeoEditor.py:88 +msgid "" +"There are 3 types of corners:\n" +" - 'Round': the corner is rounded for exterior buffer.\n" +" - 'Square': the corner is met in a sharp angle for exterior buffer.\n" +" - 'Beveled': the corner is a line that directly connects the features " +"meeting in the corner" +msgstr "" +"Ci sono 3 tipi di angoli:\n" +"- 'Arrotondato' : l'angolo è arrotondato per il buffer esterno.\n" +"- 'Squadrato': l'angolo fiene raggiunto con un angolo acuto.\n" +"- 'Smussato': l'angolo è una linea che connette direttamente le varie sezioni" + +#: flatcamEditors/FlatCAMGeoEditor.py:94 +#: flatcamEditors/FlatCAMGrbEditor.py:2631 +msgid "Round" +msgstr "Arrotondato" + +#: flatcamEditors/FlatCAMGeoEditor.py:95 +#: flatcamEditors/FlatCAMGrbEditor.py:2632 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:68 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:175 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:68 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:177 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:143 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:327 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:291 +#: flatcamTools/ToolExtractDrills.py:94 flatcamTools/ToolExtractDrills.py:227 +#: flatcamTools/ToolNCC.py:583 flatcamTools/ToolPaint.py:527 +#: flatcamTools/ToolPunchGerber.py:105 flatcamTools/ToolPunchGerber.py:255 +#: flatcamTools/ToolQRCode.py:198 +msgid "Square" +msgstr "Squadrato" + +#: flatcamEditors/FlatCAMGeoEditor.py:96 +#: flatcamEditors/FlatCAMGrbEditor.py:2633 +msgid "Beveled" +msgstr "Smussato" + +#: flatcamEditors/FlatCAMGeoEditor.py:103 +msgid "Buffer Interior" +msgstr "Buffer Interiore" + +#: flatcamEditors/FlatCAMGeoEditor.py:105 +msgid "Buffer Exterior" +msgstr "Buffer Esteriore" + +#: flatcamEditors/FlatCAMGeoEditor.py:111 +msgid "Full Buffer" +msgstr "Buffer completo" + +#: flatcamEditors/FlatCAMGeoEditor.py:132 +#: flatcamEditors/FlatCAMGeoEditor.py:3017 flatcamGUI/FlatCAMGUI.py:1928 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:190 +msgid "Buffer Tool" +msgstr "Utensile buffer" + +#: flatcamEditors/FlatCAMGeoEditor.py:144 +#: flatcamEditors/FlatCAMGeoEditor.py:161 +#: flatcamEditors/FlatCAMGeoEditor.py:178 +#: flatcamEditors/FlatCAMGeoEditor.py:3036 +#: flatcamEditors/FlatCAMGeoEditor.py:3064 +#: flatcamEditors/FlatCAMGeoEditor.py:3092 +#: flatcamEditors/FlatCAMGrbEditor.py:5116 +msgid "Buffer distance value is missing or wrong format. Add it and retry." +msgstr "" +"Valore per la distanza buffer mancante o del formato errato. Aggiungilo e " +"riprova." + +#: flatcamEditors/FlatCAMGeoEditor.py:242 +msgid "Font" +msgstr "Font" + +#: flatcamEditors/FlatCAMGeoEditor.py:323 flatcamGUI/FlatCAMGUI.py:2208 +msgid "Text" +msgstr "Testo" + +#: flatcamEditors/FlatCAMGeoEditor.py:349 +msgid "Text Tool" +msgstr "Utensile testo" + +#: flatcamEditors/FlatCAMGeoEditor.py:405 flatcamGUI/FlatCAMGUI.py:511 +#: flatcamGUI/FlatCAMGUI.py:1158 flatcamGUI/ObjectUI.py:818 +#: flatcamGUI/ObjectUI.py:1662 flatcamObjects/FlatCAMExcellon.py:742 +#: flatcamObjects/FlatCAMExcellon.py:1084 flatcamObjects/FlatCAMGeometry.py:731 +#: flatcamTools/ToolNCC.py:331 flatcamTools/ToolNCC.py:797 +#: flatcamTools/ToolPaint.py:314 flatcamTools/ToolPaint.py:767 +msgid "Tool" +msgstr "Strumenti" + +#: flatcamEditors/FlatCAMGeoEditor.py:439 flatcamGUI/ObjectUI.py:364 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:43 +msgid "Tool dia" +msgstr "Diametro utensile" + +#: flatcamEditors/FlatCAMGeoEditor.py:441 +msgid "Diameter of the tool to be used in the operation." +msgstr "Diametro dell'utensile da usare per questa operazione." + +#: flatcamEditors/FlatCAMGeoEditor.py:487 +msgid "" +"Algorithm to paint the polygons:\n" +"- Standard: Fixed step inwards.\n" +"- Seed-based: Outwards from seed.\n" +"- Line-based: Parallel lines." +msgstr "" +"Algoritmo per la pittura:\n" +"- Standard: passo fisso verso l'interno.\n" +"- A base di semi: verso l'esterno dal seme.\n" +"- Basato su linee: linee parallele." + +#: flatcamEditors/FlatCAMGeoEditor.py:506 +msgid "Connect:" +msgstr "Connetti:" + +#: flatcamEditors/FlatCAMGeoEditor.py:516 +msgid "Contour:" +msgstr "Contorno:" + +#: flatcamEditors/FlatCAMGeoEditor.py:529 flatcamGUI/FlatCAMGUI.py:2212 +msgid "Paint" +msgstr "Disegno" + +#: flatcamEditors/FlatCAMGeoEditor.py:547 flatcamGUI/FlatCAMGUI.py:924 +#: flatcamGUI/FlatCAMGUI.py:2628 flatcamGUI/ObjectUI.py:2059 +#: flatcamTools/ToolPaint.py:43 flatcamTools/ToolPaint.py:738 +msgid "Paint Tool" +msgstr "Strumento disegno" + +#: flatcamEditors/FlatCAMGeoEditor.py:583 +#: flatcamEditors/FlatCAMGeoEditor.py:1055 +#: flatcamEditors/FlatCAMGeoEditor.py:3024 +#: flatcamEditors/FlatCAMGeoEditor.py:3052 +#: flatcamEditors/FlatCAMGeoEditor.py:3080 +#: flatcamEditors/FlatCAMGeoEditor.py:4502 +#: flatcamEditors/FlatCAMGrbEditor.py:5767 +msgid "Cancelled. No shape selected." +msgstr "Cancellato. Nessuna forma selezionata." + +#: flatcamEditors/FlatCAMGeoEditor.py:596 +#: flatcamEditors/FlatCAMGeoEditor.py:3042 +#: flatcamEditors/FlatCAMGeoEditor.py:3070 +#: flatcamEditors/FlatCAMGeoEditor.py:3098 +#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:59 +#: flatcamTools/ToolProperties.py:117 flatcamTools/ToolProperties.py:162 +msgid "Tools" +msgstr "Strumento" + +#: flatcamEditors/FlatCAMGeoEditor.py:607 +#: flatcamEditors/FlatCAMGeoEditor.py:991 +#: flatcamEditors/FlatCAMGrbEditor.py:5306 +#: flatcamEditors/FlatCAMGrbEditor.py:5703 flatcamGUI/FlatCAMGUI.py:945 +#: flatcamGUI/FlatCAMGUI.py:2649 flatcamTools/ToolTransform.py:460 +msgid "Transform Tool" +msgstr "Strumento trasformazione" + +#: flatcamEditors/FlatCAMGeoEditor.py:608 +#: flatcamEditors/FlatCAMGeoEditor.py:673 +#: flatcamEditors/FlatCAMGrbEditor.py:5307 +#: flatcamEditors/FlatCAMGrbEditor.py:5372 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:45 +#: flatcamTools/ToolTransform.py:24 flatcamTools/ToolTransform.py:466 +msgid "Rotate" +msgstr "Ruota" + +#: flatcamEditors/FlatCAMGeoEditor.py:609 +#: flatcamEditors/FlatCAMGrbEditor.py:5308 flatcamTools/ToolTransform.py:25 +msgid "Skew/Shear" +msgstr "Inclina/Taglia" + +#: flatcamEditors/FlatCAMGeoEditor.py:610 +#: flatcamEditors/FlatCAMGrbEditor.py:2680 +#: flatcamEditors/FlatCAMGrbEditor.py:5309 flatcamGUI/FlatCAMGUI.py:1063 +#: flatcamGUI/FlatCAMGUI.py:2140 flatcamGUI/FlatCAMGUI.py:2255 +#: flatcamGUI/FlatCAMGUI.py:2767 flatcamGUI/ObjectUI.py:125 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:95 +#: flatcamTools/ToolTransform.py:26 +msgid "Scale" +msgstr "Scala" + +#: flatcamEditors/FlatCAMGeoEditor.py:611 +#: flatcamEditors/FlatCAMGrbEditor.py:5310 flatcamTools/ToolTransform.py:27 +msgid "Mirror (Flip)" +msgstr "Specchia" + +#: flatcamEditors/FlatCAMGeoEditor.py:625 +#: flatcamEditors/FlatCAMGrbEditor.py:5324 flatcamGUI/FlatCAMGUI.py:856 +#: flatcamGUI/FlatCAMGUI.py:2564 +msgid "Editor" +msgstr "Editor" + +#: flatcamEditors/FlatCAMGeoEditor.py:657 +#: flatcamEditors/FlatCAMGrbEditor.py:5356 +msgid "Angle:" +msgstr "Angolo:" + +#: flatcamEditors/FlatCAMGeoEditor.py:659 +#: flatcamEditors/FlatCAMGrbEditor.py:5358 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:55 +#: flatcamTools/ToolTransform.py:62 +msgid "" +"Angle for Rotation action, in degrees.\n" +"Float number between -360 and 359.\n" +"Positive numbers for CW motion.\n" +"Negative numbers for CCW motion." +msgstr "" +"Angolo per la rotazione, in gradi.\n" +"Numeri float da -360 e 359.\n" +"Numeri positivi per il senso orario.\n" +"Numeri negativi per il senso antiorario." + +#: flatcamEditors/FlatCAMGeoEditor.py:675 +#: flatcamEditors/FlatCAMGrbEditor.py:5374 +msgid "" +"Rotate the selected shape(s).\n" +"The point of reference is the middle of\n" +"the bounding box for all selected shapes." +msgstr "" +"Ruota le forme selezionate.\n" +"Il punto di riferimento è al centro del rettangolo\n" +"di selezione per tutte le forme selezionate." + +#: flatcamEditors/FlatCAMGeoEditor.py:698 +#: flatcamEditors/FlatCAMGrbEditor.py:5397 +msgid "Angle X:" +msgstr "Angolo X:" + +#: flatcamEditors/FlatCAMGeoEditor.py:700 +#: flatcamEditors/FlatCAMGeoEditor.py:720 +#: flatcamEditors/FlatCAMGrbEditor.py:5399 +#: flatcamEditors/FlatCAMGrbEditor.py:5419 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:74 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:88 +#: flatcamTools/ToolCalibration.py:505 flatcamTools/ToolCalibration.py:518 +msgid "" +"Angle for Skew action, in degrees.\n" +"Float number between -360 and 359." +msgstr "" +"Angolo per l'inclinazione, in gradi.\n" +"Numeri float tra -360 e 359." + +#: flatcamEditors/FlatCAMGeoEditor.py:711 +#: flatcamEditors/FlatCAMGrbEditor.py:5410 flatcamTools/ToolTransform.py:467 +msgid "Skew X" +msgstr "Inclinazione X" + +#: flatcamEditors/FlatCAMGeoEditor.py:713 +#: flatcamEditors/FlatCAMGeoEditor.py:733 +#: flatcamEditors/FlatCAMGrbEditor.py:5412 +#: flatcamEditors/FlatCAMGrbEditor.py:5432 +msgid "" +"Skew/shear the selected shape(s).\n" +"The point of reference is the middle of\n" +"the bounding box for all selected shapes." +msgstr "" +"Inclina le forme selezionate.\n" +"Il punto di riferimento è il centro del rettangolo\n" +"che contiene tutte le forme selezionate." + +#: flatcamEditors/FlatCAMGeoEditor.py:718 +#: flatcamEditors/FlatCAMGrbEditor.py:5417 +msgid "Angle Y:" +msgstr "Angolo Y:" + +#: flatcamEditors/FlatCAMGeoEditor.py:731 +#: flatcamEditors/FlatCAMGrbEditor.py:5430 flatcamTools/ToolTransform.py:468 +msgid "Skew Y" +msgstr "Inclina Y" + +#: flatcamEditors/FlatCAMGeoEditor.py:759 +#: flatcamEditors/FlatCAMGrbEditor.py:5458 +msgid "Factor X:" +msgstr "Fattore X:" + +#: flatcamEditors/FlatCAMGeoEditor.py:761 +#: flatcamEditors/FlatCAMGrbEditor.py:5460 flatcamTools/ToolCalibration.py:469 +msgid "Factor for Scale action over X axis." +msgstr "Fattore per l'azione scala sull'asse X." + +#: flatcamEditors/FlatCAMGeoEditor.py:771 +#: flatcamEditors/FlatCAMGrbEditor.py:5470 flatcamTools/ToolTransform.py:469 +msgid "Scale X" +msgstr "Scala X" + +#: flatcamEditors/FlatCAMGeoEditor.py:773 +#: flatcamEditors/FlatCAMGeoEditor.py:792 +#: flatcamEditors/FlatCAMGrbEditor.py:5472 +#: flatcamEditors/FlatCAMGrbEditor.py:5491 +msgid "" +"Scale the selected shape(s).\n" +"The point of reference depends on \n" +"the Scale reference checkbox state." +msgstr "" +"Ridimensiona le forme selezionate.\n" +"Il punto di riferimento dipende dallo\n" +"stato del checkbox Riferimento scala." + +#: flatcamEditors/FlatCAMGeoEditor.py:778 +#: flatcamEditors/FlatCAMGrbEditor.py:5477 +msgid "Factor Y:" +msgstr "Fattore Y:" + +#: flatcamEditors/FlatCAMGeoEditor.py:780 +#: flatcamEditors/FlatCAMGrbEditor.py:5479 flatcamTools/ToolCalibration.py:481 +msgid "Factor for Scale action over Y axis." +msgstr "Fattore per l'azione scala sull'asse Y." + +#: flatcamEditors/FlatCAMGeoEditor.py:790 +#: flatcamEditors/FlatCAMGrbEditor.py:5489 flatcamTools/ToolTransform.py:470 +msgid "Scale Y" +msgstr "Scala Y" + +#: flatcamEditors/FlatCAMGeoEditor.py:799 +#: flatcamEditors/FlatCAMGrbEditor.py:5498 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:124 +#: flatcamTools/ToolTransform.py:189 +msgid "Link" +msgstr "Collegamento" + +#: flatcamEditors/FlatCAMGeoEditor.py:801 +#: flatcamEditors/FlatCAMGrbEditor.py:5500 +msgid "" +"Scale the selected shape(s)\n" +"using the Scale Factor X for both axis." +msgstr "" +"Scale the selected shape(s).\n" +"usando il fattore di scala X per entrambi gli assi." + +#: flatcamEditors/FlatCAMGeoEditor.py:807 +#: flatcamEditors/FlatCAMGrbEditor.py:5506 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:132 +#: flatcamTools/ToolTransform.py:196 +msgid "Scale Reference" +msgstr "Riferimento scala" + +#: flatcamEditors/FlatCAMGeoEditor.py:809 +#: flatcamEditors/FlatCAMGrbEditor.py:5508 +msgid "" +"Scale the selected shape(s)\n" +"using the origin reference when checked,\n" +"and the center of the biggest bounding box\n" +"of the selected shapes when unchecked." +msgstr "" +"Ridimensiona le forme selezionate\n" +"utilizzando il riferimento di origine quando selezionato,\n" +"e il centro del più grande rettangolo di selezione\n" +"delle forme selezionate se non selezionata." + +#: flatcamEditors/FlatCAMGeoEditor.py:837 +#: flatcamEditors/FlatCAMGrbEditor.py:5537 +msgid "Value X:" +msgstr "Valore X:" + +#: flatcamEditors/FlatCAMGeoEditor.py:839 +#: flatcamEditors/FlatCAMGrbEditor.py:5539 +msgid "Value for Offset action on X axis." +msgstr "Valore per l'azione Offset sull'asse X." + +#: flatcamEditors/FlatCAMGeoEditor.py:849 +#: flatcamEditors/FlatCAMGrbEditor.py:5549 flatcamTools/ToolTransform.py:473 +msgid "Offset X" +msgstr "Offset X" + +#: flatcamEditors/FlatCAMGeoEditor.py:851 +#: flatcamEditors/FlatCAMGeoEditor.py:871 +#: flatcamEditors/FlatCAMGrbEditor.py:5551 +#: flatcamEditors/FlatCAMGrbEditor.py:5571 +msgid "" +"Offset the selected shape(s).\n" +"The point of reference is the middle of\n" +"the bounding box for all selected shapes.\n" +msgstr "" +"Offset delle forme selezionate.\n" +"Il punto di riferimento è il centro del\n" +"rettangolo di selezione per tutte le forme selezionate.\n" + +#: flatcamEditors/FlatCAMGeoEditor.py:857 +#: flatcamEditors/FlatCAMGrbEditor.py:5557 +msgid "Value Y:" +msgstr "Valore Y:" + +#: flatcamEditors/FlatCAMGeoEditor.py:859 +#: flatcamEditors/FlatCAMGrbEditor.py:5559 +msgid "Value for Offset action on Y axis." +msgstr "Valore per l'azione Offset sull'asse Y." + +#: flatcamEditors/FlatCAMGeoEditor.py:869 +#: flatcamEditors/FlatCAMGrbEditor.py:5569 flatcamTools/ToolTransform.py:474 +msgid "Offset Y" +msgstr "Offset X" + +#: flatcamEditors/FlatCAMGeoEditor.py:900 +#: flatcamEditors/FlatCAMGrbEditor.py:5600 flatcamTools/ToolTransform.py:475 +msgid "Flip on X" +msgstr "Capovolgi in X" + +#: flatcamEditors/FlatCAMGeoEditor.py:902 +#: flatcamEditors/FlatCAMGeoEditor.py:909 +#: flatcamEditors/FlatCAMGrbEditor.py:5602 +#: flatcamEditors/FlatCAMGrbEditor.py:5609 +msgid "" +"Flip the selected shape(s) over the X axis.\n" +"Does not create a new shape." +msgstr "" +"Capovolgi le forme selezionate sull'asse X.\n" +"Non crea una nuova forma." + +#: flatcamEditors/FlatCAMGeoEditor.py:907 +#: flatcamEditors/FlatCAMGrbEditor.py:5607 flatcamTools/ToolTransform.py:476 +msgid "Flip on Y" +msgstr "Capovolgi in Y" + +#: flatcamEditors/FlatCAMGeoEditor.py:915 +#: flatcamEditors/FlatCAMGrbEditor.py:5615 +msgid "Ref Pt" +msgstr "Punto di riferimento" + +#: flatcamEditors/FlatCAMGeoEditor.py:917 +#: flatcamEditors/FlatCAMGrbEditor.py:5617 +msgid "" +"Flip the selected shape(s)\n" +"around the point in Point Entry Field.\n" +"\n" +"The point coordinates can be captured by\n" +"left click on canvas together with pressing\n" +"SHIFT key. \n" +"Then click Add button to insert coordinates.\n" +"Or enter the coords in format (x, y) in the\n" +"Point Entry field and click Flip on X(Y)" +msgstr "" +"Capovolgi le forme selezionate\n" +"attorno al punto nel campo di inserimento punti.\n" +"\n" +"Le coordinate del punto possono essere acquisite da\n" +"un clic sinistro sui canvas assieme\n" +"al tasto SHIFT.\n" +"Quindi fare clic sul pulsante Aggiungi per inserire le coordinate.\n" +"Oppure inserisci le coordinate nel formato (x, y) nel\n" +"campo Inserisci Punto e fai clic su Capovolgi su X(Y)" + +#: flatcamEditors/FlatCAMGeoEditor.py:929 +#: flatcamEditors/FlatCAMGrbEditor.py:5629 +msgid "Point:" +msgstr "Punto:" + +#: flatcamEditors/FlatCAMGeoEditor.py:931 +#: flatcamEditors/FlatCAMGrbEditor.py:5631 flatcamTools/ToolTransform.py:299 +msgid "" +"Coordinates in format (x, y) used as reference for mirroring.\n" +"The 'x' in (x, y) will be used when using Flip on X and\n" +"the 'y' in (x, y) will be used when using Flip on Y." +msgstr "" +"Coordinate in formato (x, y) utilizzate come riferimento per il mirroring.\n" +"La 'x' in (x, y) verrà utilizzata quando si utilizza Capovolgi su X e\n" +"la 'y' in (x, y) verrà usata quando si usa Capovolgi su Y." + +#: flatcamEditors/FlatCAMGeoEditor.py:941 +#: flatcamEditors/FlatCAMGrbEditor.py:5643 flatcamTools/ToolTransform.py:309 +msgid "" +"The point coordinates can be captured by\n" +"left click on canvas together with pressing\n" +"SHIFT key. Then click Add button to insert." +msgstr "" +"Le coordinate del punto possono essere acquisite da\n" +"un click sinistro sul canvas premendo anche il tasto\n" +"SHIFT. Quindi fare clic sul pulsante Aggiungi per inserire." + +#: flatcamEditors/FlatCAMGeoEditor.py:1304 +#: flatcamEditors/FlatCAMGrbEditor.py:5951 +msgid "No shape selected. Please Select a shape to rotate!" +msgstr "Nessuna forma selezionata. Seleziona una forma da ruotare!" + +#: flatcamEditors/FlatCAMGeoEditor.py:1307 +#: flatcamEditors/FlatCAMGrbEditor.py:5954 flatcamTools/ToolTransform.py:679 +msgid "Appying Rotate" +msgstr "Applico Rotazione" + +#: flatcamEditors/FlatCAMGeoEditor.py:1333 +#: flatcamEditors/FlatCAMGrbEditor.py:5986 +msgid "Done. Rotate completed." +msgstr "Fatto. Rotazione completata." + +#: flatcamEditors/FlatCAMGeoEditor.py:1335 +msgid "Rotation action was not executed" +msgstr "Azione rotazione non effettuata" + +#: flatcamEditors/FlatCAMGeoEditor.py:1354 +#: flatcamEditors/FlatCAMGrbEditor.py:6005 +msgid "No shape selected. Please Select a shape to flip!" +msgstr "Nessuna forma selezionata. Seleziona una forma da capovolgere!" + +#: flatcamEditors/FlatCAMGeoEditor.py:1357 +#: flatcamEditors/FlatCAMGrbEditor.py:6008 flatcamTools/ToolTransform.py:728 +msgid "Applying Flip" +msgstr "Applico il capovolgimento" + +#: flatcamEditors/FlatCAMGeoEditor.py:1386 +#: flatcamEditors/FlatCAMGrbEditor.py:6046 flatcamTools/ToolTransform.py:769 +msgid "Flip on the Y axis done" +msgstr "Capovolgimento sull'asse Y effettuato" + +#: flatcamEditors/FlatCAMGeoEditor.py:1390 +#: flatcamEditors/FlatCAMGrbEditor.py:6055 flatcamTools/ToolTransform.py:778 +msgid "Flip on the X axis done" +msgstr "Capovolgimento sull'asse X effettuato" + +#: flatcamEditors/FlatCAMGeoEditor.py:1398 +msgid "Flip action was not executed" +msgstr "Azione capovolgimento non effettuata" + +#: flatcamEditors/FlatCAMGeoEditor.py:1416 +#: flatcamEditors/FlatCAMGrbEditor.py:6075 +msgid "No shape selected. Please Select a shape to shear/skew!" +msgstr "Nessuna forma selezionata. Seleziona una forma da inclinare!" + +#: flatcamEditors/FlatCAMGeoEditor.py:1419 +#: flatcamEditors/FlatCAMGrbEditor.py:6078 flatcamTools/ToolTransform.py:801 +msgid "Applying Skew" +msgstr "Applico inclinazione" + +#: flatcamEditors/FlatCAMGeoEditor.py:1442 +#: flatcamEditors/FlatCAMGrbEditor.py:6112 +msgid "Skew on the X axis done" +msgstr "Inclinazione sull'asse X effettuata" + +#: flatcamEditors/FlatCAMGeoEditor.py:1444 +#: flatcamEditors/FlatCAMGrbEditor.py:6114 +msgid "Skew on the Y axis done" +msgstr "Inclinazione sull'asse Y effettuata" + +#: flatcamEditors/FlatCAMGeoEditor.py:1447 +msgid "Skew action was not executed" +msgstr "Azione inclinazione non effettuata" + +#: flatcamEditors/FlatCAMGeoEditor.py:1469 +#: flatcamEditors/FlatCAMGrbEditor.py:6136 +msgid "No shape selected. Please Select a shape to scale!" +msgstr "Nessuna forma selezionata. Seleziona una forma da riscalare!" + +#: flatcamEditors/FlatCAMGeoEditor.py:1472 +#: flatcamEditors/FlatCAMGrbEditor.py:6139 flatcamTools/ToolTransform.py:847 +msgid "Applying Scale" +msgstr "Applicare scala" + +#: flatcamEditors/FlatCAMGeoEditor.py:1504 +#: flatcamEditors/FlatCAMGrbEditor.py:6176 +msgid "Scale on the X axis done" +msgstr "Riscalatura su asse X effettuata" + +#: flatcamEditors/FlatCAMGeoEditor.py:1506 +#: flatcamEditors/FlatCAMGrbEditor.py:6178 +msgid "Scale on the Y axis done" +msgstr "Riscalatura su asse Y effettuata" + +#: flatcamEditors/FlatCAMGeoEditor.py:1508 +msgid "Scale action was not executed" +msgstr "Azione riscalatura non effettuata" + +#: flatcamEditors/FlatCAMGeoEditor.py:1523 +#: flatcamEditors/FlatCAMGrbEditor.py:6195 +msgid "No shape selected. Please Select a shape to offset!" +msgstr "Nessuna forma selezionata. Seleziona una forma a cui applicare offset!" + +#: flatcamEditors/FlatCAMGeoEditor.py:1526 +#: flatcamEditors/FlatCAMGrbEditor.py:6198 flatcamTools/ToolTransform.py:897 +msgid "Applying Offset" +msgstr "Applicazione offset" + +#: flatcamEditors/FlatCAMGeoEditor.py:1536 +#: flatcamEditors/FlatCAMGrbEditor.py:6219 +msgid "Offset on the X axis done" +msgstr "Offset sull'asse X applicato" + +#: flatcamEditors/FlatCAMGeoEditor.py:1538 +#: flatcamEditors/FlatCAMGrbEditor.py:6221 +msgid "Offset on the Y axis done" +msgstr "Offset sull'asse Y applicato" + +#: flatcamEditors/FlatCAMGeoEditor.py:1541 +msgid "Offset action was not executed" +msgstr "Offset non applicato" + +#: flatcamEditors/FlatCAMGeoEditor.py:1545 +#: flatcamEditors/FlatCAMGrbEditor.py:6228 +msgid "Rotate ..." +msgstr "Ruota ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:1546 +#: flatcamEditors/FlatCAMGeoEditor.py:1601 +#: flatcamEditors/FlatCAMGeoEditor.py:1618 +#: flatcamEditors/FlatCAMGrbEditor.py:6229 +#: flatcamEditors/FlatCAMGrbEditor.py:6278 +#: flatcamEditors/FlatCAMGrbEditor.py:6293 +msgid "Enter an Angle Value (degrees)" +msgstr "Inserire un angolo (in gradi)" + +#: flatcamEditors/FlatCAMGeoEditor.py:1555 +#: flatcamEditors/FlatCAMGrbEditor.py:6237 +msgid "Geometry shape rotate done" +msgstr "Forme geometriche ruotate" + +#: flatcamEditors/FlatCAMGeoEditor.py:1559 +#: flatcamEditors/FlatCAMGrbEditor.py:6240 +msgid "Geometry shape rotate cancelled" +msgstr "Forme geometriche NON ruotate" + +#: flatcamEditors/FlatCAMGeoEditor.py:1564 +#: flatcamEditors/FlatCAMGrbEditor.py:6245 +msgid "Offset on X axis ..." +msgstr "Offset su asse X ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:1565 +#: flatcamEditors/FlatCAMGeoEditor.py:1584 +#: flatcamEditors/FlatCAMGrbEditor.py:6246 +#: flatcamEditors/FlatCAMGrbEditor.py:6263 +msgid "Enter a distance Value" +msgstr "Valore di distanza" + +#: flatcamEditors/FlatCAMGeoEditor.py:1574 +#: flatcamEditors/FlatCAMGrbEditor.py:6254 +msgid "Geometry shape offset on X axis done" +msgstr "Offset su forme geometria su asse X applicato" + +#: flatcamEditors/FlatCAMGeoEditor.py:1578 +#: flatcamEditors/FlatCAMGrbEditor.py:6257 +msgid "Geometry shape offset X cancelled" +msgstr "Offset su forme geometria su asse X annullato" + +#: flatcamEditors/FlatCAMGeoEditor.py:1583 +#: flatcamEditors/FlatCAMGrbEditor.py:6262 +msgid "Offset on Y axis ..." +msgstr "Offset su asse Y ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:1593 +#: flatcamEditors/FlatCAMGrbEditor.py:6271 +msgid "Geometry shape offset on Y axis done" +msgstr "Offset su forme geometria su asse Y applicato" + +#: flatcamEditors/FlatCAMGeoEditor.py:1597 +msgid "Geometry shape offset on Y axis canceled" +msgstr "Offset su forme geometria su asse Y annullato" + +#: flatcamEditors/FlatCAMGeoEditor.py:1600 +#: flatcamEditors/FlatCAMGrbEditor.py:6277 +msgid "Skew on X axis ..." +msgstr "Inclinazione su asse Y ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:1610 +#: flatcamEditors/FlatCAMGrbEditor.py:6286 +msgid "Geometry shape skew on X axis done" +msgstr "Inclinazione su asse X effettuato" + +#: flatcamEditors/FlatCAMGeoEditor.py:1614 +msgid "Geometry shape skew on X axis canceled" +msgstr "Inclinazione su asse X annullata" + +#: flatcamEditors/FlatCAMGeoEditor.py:1617 +#: flatcamEditors/FlatCAMGrbEditor.py:6292 +msgid "Skew on Y axis ..." +msgstr "Inclinazione su asse Y ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:1627 +#: flatcamEditors/FlatCAMGrbEditor.py:6301 +msgid "Geometry shape skew on Y axis done" +msgstr "Inclinazione su asse Y effettuato" + +#: flatcamEditors/FlatCAMGeoEditor.py:1631 +msgid "Geometry shape skew on Y axis canceled" +msgstr "Inclinazione su asse Y annullata" + +#: flatcamEditors/FlatCAMGeoEditor.py:2008 +#: flatcamEditors/FlatCAMGeoEditor.py:2079 +#: flatcamEditors/FlatCAMGrbEditor.py:1437 +#: flatcamEditors/FlatCAMGrbEditor.py:1515 +msgid "Click on Center point ..." +msgstr "Clicca sul punto centrale ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:2021 +#: flatcamEditors/FlatCAMGrbEditor.py:1447 +msgid "Click on Perimeter point to complete ..." +msgstr "Fare clic sul punto perimetrale per completare ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:2053 +msgid "Done. Adding Circle completed." +msgstr "Fatto. Aggiungi cerchio completato." + +#: flatcamEditors/FlatCAMGeoEditor.py:2107 +#: flatcamEditors/FlatCAMGrbEditor.py:1548 +msgid "Click on Start point ..." +msgstr "Fare clic sul punto iniziale ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:2109 +#: flatcamEditors/FlatCAMGrbEditor.py:1550 +msgid "Click on Point3 ..." +msgstr "Clicca sul punto 3 ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:2111 +#: flatcamEditors/FlatCAMGrbEditor.py:1552 +msgid "Click on Stop point ..." +msgstr "Clicca sul punto di stop ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:2116 +#: flatcamEditors/FlatCAMGrbEditor.py:1557 +msgid "Click on Stop point to complete ..." +msgstr "Clicca sul punto di stop per completare ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:2118 +#: flatcamEditors/FlatCAMGrbEditor.py:1559 +msgid "Click on Point2 to complete ..." +msgstr "Clicca sul punto 2 per completare ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:2120 +#: flatcamEditors/FlatCAMGrbEditor.py:1561 +msgid "Click on Center point to complete ..." +msgstr "Clicca sul punto centrale per completare ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:2132 +#, python-format +msgid "Direction: %s" +msgstr "Direzione: %s" + +#: flatcamEditors/FlatCAMGeoEditor.py:2146 +#: flatcamEditors/FlatCAMGrbEditor.py:1587 +msgid "Mode: Start -> Stop -> Center. Click on Start point ..." +msgstr "Modo: Start -> Stop -> Centro. Clicca sul punto di partenza ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:2149 +#: flatcamEditors/FlatCAMGrbEditor.py:1590 +msgid "Mode: Point1 -> Point3 -> Point2. Click on Point1 ..." +msgstr "Modo: Punto1 -> Punto3 -> Punto2. Clicca sul punto1 ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:2152 +#: flatcamEditors/FlatCAMGrbEditor.py:1593 +msgid "Mode: Center -> Start -> Stop. Click on Center point ..." +msgstr "Modo: Centro -> Start -> Stop. Clicca sul punto centrale ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:2293 +msgid "Done. Arc completed." +msgstr "Fatto. Arco completato." + +#: flatcamEditors/FlatCAMGeoEditor.py:2324 +#: flatcamEditors/FlatCAMGeoEditor.py:2397 +msgid "Click on 1st corner ..." +msgstr "Clicca sul primo angolo ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:2336 +msgid "Click on opposite corner to complete ..." +msgstr "Clicca sull'angolo opposto per completare ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:2366 +msgid "Done. Rectangle completed." +msgstr "Fatto. Rettangolo completato." + +#: flatcamEditors/FlatCAMGeoEditor.py:2410 flatcamTools/ToolNCC.py:1728 +#: flatcamTools/ToolPaint.py:1623 +msgid "Click on next Point or click right mouse button to complete ..." +msgstr "" +"Cliccare sul punto successivo o fare clic con il tasto destro del mouse per " +"completare ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:2441 +msgid "Done. Polygon completed." +msgstr "Fatto. Poligono completato." + +#: flatcamEditors/FlatCAMGeoEditor.py:2455 +#: flatcamEditors/FlatCAMGeoEditor.py:2520 +#: flatcamEditors/FlatCAMGrbEditor.py:1113 +#: flatcamEditors/FlatCAMGrbEditor.py:1324 +msgid "Backtracked one point ..." +msgstr "Indietro di un punto ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:2498 +msgid "Done. Path completed." +msgstr "Fatto. Percorso completato." + +#: flatcamEditors/FlatCAMGeoEditor.py:2657 +msgid "No shape selected. Select a shape to explode" +msgstr "Nessuna forma selezionata. Seleziona una forma da esplodere" + +#: flatcamEditors/FlatCAMGeoEditor.py:2690 +msgid "Done. Polygons exploded into lines." +msgstr "Fatto. Poligono esploso in linee." + +#: flatcamEditors/FlatCAMGeoEditor.py:2722 +msgid "MOVE: No shape selected. Select a shape to move" +msgstr "SPOSTA: nessuna forma selezionata. Seleziona una forma da spostare" + +#: flatcamEditors/FlatCAMGeoEditor.py:2725 +#: flatcamEditors/FlatCAMGeoEditor.py:2745 +msgid " MOVE: Click on reference point ..." +msgstr " SPOSTA: fare clic sul punto di riferimento ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:2730 +msgid " Click on destination point ..." +msgstr " Clicca sul punto di riferimento ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:2770 +msgid "Done. Geometry(s) Move completed." +msgstr "Fatto. Spostamento geometria(e) completato." + +#: flatcamEditors/FlatCAMGeoEditor.py:2903 +msgid "Done. Geometry(s) Copy completed." +msgstr "Fatto. Copia geometria(e) completata." + +#: flatcamEditors/FlatCAMGeoEditor.py:2934 +#: flatcamEditors/FlatCAMGrbEditor.py:899 +msgid "Click on 1st point ..." +msgstr "Clicca sul primo punto ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:2958 +msgid "" +"Font not supported. Only Regular, Bold, Italic and BoldItalic are supported. " +"Error" +msgstr "" +"Font (carattere) non supportato. Sono supportati solo Regular, Bold, Italic " +"e BoldItalic. Errore" + +#: flatcamEditors/FlatCAMGeoEditor.py:2966 +msgid "No text to add." +msgstr "Nessun testo da aggiungere." + +#: flatcamEditors/FlatCAMGeoEditor.py:2976 +msgid " Done. Adding Text completed." +msgstr " Fatto. Testo aggiunto." + +#: flatcamEditors/FlatCAMGeoEditor.py:3013 +msgid "Create buffer geometry ..." +msgstr "Crea geometria buffer ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:3048 +#: flatcamEditors/FlatCAMGrbEditor.py:5160 +msgid "Done. Buffer Tool completed." +msgstr "Fatto. Strumento buffer completato." + +#: flatcamEditors/FlatCAMGeoEditor.py:3076 +msgid "Done. Buffer Int Tool completed." +msgstr "Fatto. Strumento buffer interno completato." + +#: flatcamEditors/FlatCAMGeoEditor.py:3104 +msgid "Done. Buffer Ext Tool completed." +msgstr "Fatto. Strumento buffer esterno completato." + +#: flatcamEditors/FlatCAMGeoEditor.py:3153 +#: flatcamEditors/FlatCAMGrbEditor.py:2153 +msgid "Select a shape to act as deletion area ..." +msgstr "Seleziona una forma da utilizzare come area di eliminazione ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:3155 +#: flatcamEditors/FlatCAMGeoEditor.py:3181 +#: flatcamEditors/FlatCAMGeoEditor.py:3187 +#: flatcamEditors/FlatCAMGrbEditor.py:2155 +msgid "Click to pick-up the erase shape..." +msgstr "Fai clic per selezionare la forma di cancellazione ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:3191 +#: flatcamEditors/FlatCAMGrbEditor.py:2214 +msgid "Click to erase ..." +msgstr "Clicca per cancellare ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:3220 +#: flatcamEditors/FlatCAMGrbEditor.py:2247 +msgid "Done. Eraser tool action completed." +msgstr "Fatto. Azione dello strumento gomma completata." + +#: flatcamEditors/FlatCAMGeoEditor.py:3270 +msgid "Create Paint geometry ..." +msgstr "Crea geometria di disegno ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:3283 +#: flatcamEditors/FlatCAMGrbEditor.py:2410 +msgid "Shape transformations ..." +msgstr "Trasformazioni di forma ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:3339 +#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:27 +msgid "Geometry Editor" +msgstr "Editor Geometrie" + +#: flatcamEditors/FlatCAMGeoEditor.py:3345 +#: flatcamEditors/FlatCAMGrbEditor.py:2488 +#: flatcamEditors/FlatCAMGrbEditor.py:3969 flatcamGUI/ObjectUI.py:263 +#: flatcamGUI/ObjectUI.py:1497 flatcamGUI/ObjectUI.py:2246 +#: flatcamTools/ToolCutOut.py:95 +msgid "Type" +msgstr "Tipo" + +#: flatcamEditors/FlatCAMGeoEditor.py:3345 flatcamGUI/ObjectUI.py:218 +#: flatcamGUI/ObjectUI.py:742 flatcamGUI/ObjectUI.py:1433 +#: flatcamGUI/ObjectUI.py:2155 flatcamGUI/ObjectUI.py:2459 +#: flatcamGUI/ObjectUI.py:2526 flatcamTools/ToolCalibration.py:234 +#: flatcamTools/ToolFiducials.py:73 +msgid "Name" +msgstr "Nome" + +#: flatcamEditors/FlatCAMGeoEditor.py:3587 +msgid "Ring" +msgstr "Anello" + +#: flatcamEditors/FlatCAMGeoEditor.py:3589 +msgid "Line" +msgstr "Linea" + +#: flatcamEditors/FlatCAMGeoEditor.py:3591 flatcamGUI/FlatCAMGUI.py:2202 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:328 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:292 +#: flatcamTools/ToolNCC.py:584 flatcamTools/ToolPaint.py:528 +msgid "Polygon" +msgstr "Poligono" + +#: flatcamEditors/FlatCAMGeoEditor.py:3593 +msgid "Multi-Line" +msgstr "Multi-Linea" + +#: flatcamEditors/FlatCAMGeoEditor.py:3595 +msgid "Multi-Polygon" +msgstr "Multi-Poligono" + +#: flatcamEditors/FlatCAMGeoEditor.py:3602 +msgid "Geo Elem" +msgstr "Elemento Geom" + +#: flatcamEditors/FlatCAMGeoEditor.py:4076 +msgid "Editing MultiGeo Geometry, tool" +msgstr "Modifica di Geometria MultiGeo, strumento" + +#: flatcamEditors/FlatCAMGeoEditor.py:4078 +msgid "with diameter" +msgstr "con diametro" + +#: flatcamEditors/FlatCAMGeoEditor.py:4509 flatcamGUI/FlatCAMGUI.py:3753 +#: flatcamGUI/FlatCAMGUI.py:3799 flatcamGUI/FlatCAMGUI.py:3817 +#: flatcamGUI/FlatCAMGUI.py:3961 flatcamGUI/FlatCAMGUI.py:4000 +#: flatcamGUI/FlatCAMGUI.py:4012 flatcamGUI/FlatCAMGUI.py:4029 +msgid "Click on target point." +msgstr "Fai clic sul punto target." + +#: flatcamEditors/FlatCAMGeoEditor.py:4823 +#: flatcamEditors/FlatCAMGeoEditor.py:4858 +msgid "A selection of at least 2 geo items is required to do Intersection." +msgstr "" +"Per effettuare l'intersezione è necessaria una selezione di almeno 2 " +"elementi geometrici." + +#: flatcamEditors/FlatCAMGeoEditor.py:4944 +#: flatcamEditors/FlatCAMGeoEditor.py:5048 +msgid "" +"Negative buffer value is not accepted. Use Buffer interior to generate an " +"'inside' shape" +msgstr "" +"Valore di buffer negativi non accettati. Usa l'interno del buffer per " +"generare una forma \"interna\"" + +#: flatcamEditors/FlatCAMGeoEditor.py:4954 +#: flatcamEditors/FlatCAMGeoEditor.py:5007 +#: flatcamEditors/FlatCAMGeoEditor.py:5057 +msgid "Nothing selected for buffering." +msgstr "Niente di selezionato per il buffering." + +#: flatcamEditors/FlatCAMGeoEditor.py:4959 +#: flatcamEditors/FlatCAMGeoEditor.py:5011 +#: flatcamEditors/FlatCAMGeoEditor.py:5062 +msgid "Invalid distance for buffering." +msgstr "Distanza non valida per il buffering." + +#: flatcamEditors/FlatCAMGeoEditor.py:4983 +#: flatcamEditors/FlatCAMGeoEditor.py:5082 +msgid "Failed, the result is empty. Choose a different buffer value." +msgstr "Fallito, il risultato è vuoto. Scegli un valore di buffer diverso." + +#: flatcamEditors/FlatCAMGeoEditor.py:4994 +msgid "Full buffer geometry created." +msgstr "Geometria buffer completa creata." + +#: flatcamEditors/FlatCAMGeoEditor.py:5000 +msgid "Negative buffer value is not accepted." +msgstr "Il valore negativo del buffer non è accettato." + +#: flatcamEditors/FlatCAMGeoEditor.py:5031 +msgid "Failed, the result is empty. Choose a smaller buffer value." +msgstr "Fallito, il risultato è vuoto. Scegli un valore di buffer più piccolo." + +#: flatcamEditors/FlatCAMGeoEditor.py:5041 +msgid "Interior buffer geometry created." +msgstr "Geometria del buffer interno creata." + +#: flatcamEditors/FlatCAMGeoEditor.py:5092 +msgid "Exterior buffer geometry created." +msgstr "Geometria del buffer esterno creata." + +#: flatcamEditors/FlatCAMGeoEditor.py:5098 +#, python-format +msgid "Could not do Paint. Overlap value has to be less than 100%%." +msgstr "" +"Impossibile fare Paint. Il valore di sovrapposizione deve essere inferiore a " +"100%%." + +#: flatcamEditors/FlatCAMGeoEditor.py:5105 +msgid "Nothing selected for painting." +msgstr "Nulla di selezionato per Paint." + +#: flatcamEditors/FlatCAMGeoEditor.py:5111 +msgid "Invalid value for" +msgstr "Valore non valido per" + +#: flatcamEditors/FlatCAMGeoEditor.py:5170 +msgid "" +"Could not do Paint. Try a different combination of parameters. Or a " +"different method of Paint" +msgstr "" +"Impossibile fare Paint. Prova una diversa combinazione di parametri. O un " +"metodo diverso di Paint" + +#: flatcamEditors/FlatCAMGeoEditor.py:5181 +msgid "Paint done." +msgstr "Paint fatto." + +#: flatcamEditors/FlatCAMGrbEditor.py:213 +msgid "To add an Pad first select a aperture in Aperture Table" +msgstr "" +"Per aggiungere un pad, seleziona prima un'apertura nella tabella Aperture" + +#: flatcamEditors/FlatCAMGrbEditor.py:220 +#: flatcamEditors/FlatCAMGrbEditor.py:420 +msgid "Aperture size is zero. It needs to be greater than zero." +msgstr "La dimensione dell'apertura è zero. Deve essere maggiore di zero." + +#: flatcamEditors/FlatCAMGrbEditor.py:373 +#: flatcamEditors/FlatCAMGrbEditor.py:686 +msgid "" +"Incompatible aperture type. Select an aperture with type 'C', 'R' or 'O'." +msgstr "" +"Tipo di apertura incompatibile. Seleziona un'apertura con tipo 'C', 'R' o " +"'O'." + +#: flatcamEditors/FlatCAMGrbEditor.py:385 +msgid "Done. Adding Pad completed." +msgstr "Fatto. Aggiunta del pad completata." + +#: flatcamEditors/FlatCAMGrbEditor.py:412 +msgid "To add an Pad Array first select a aperture in Aperture Table" +msgstr "" +"Per aggiungere una matrice pad, selezionare prima un'apertura nella tabella " +"Aperture" + +#: flatcamEditors/FlatCAMGrbEditor.py:492 +msgid "Click on the Pad Circular Array Start position" +msgstr "Fare clic sulla posizione iniziale della matrice circolare del pad" + +#: flatcamEditors/FlatCAMGrbEditor.py:712 +msgid "Too many Pads for the selected spacing angle." +msgstr "Troppi pad per l'angolo di spaziatura selezionato." + +#: flatcamEditors/FlatCAMGrbEditor.py:735 +msgid "Done. Pad Array added." +msgstr "Fatto. Matrice di Pad aggiunta." + +#: flatcamEditors/FlatCAMGrbEditor.py:760 +msgid "Select shape(s) and then click ..." +msgstr "Seleziona la forma(e) e quindi fai clic su ..." + +#: flatcamEditors/FlatCAMGrbEditor.py:772 +msgid "Failed. Nothing selected." +msgstr "Errore. Niente di selezionato." + +#: flatcamEditors/FlatCAMGrbEditor.py:788 +msgid "" +"Failed. Poligonize works only on geometries belonging to the same aperture." +msgstr "" +"Errore. Poligonizza funziona solo su geometrie appartenenti alla stessa " +"apertura." + +#: flatcamEditors/FlatCAMGrbEditor.py:842 +msgid "Done. Poligonize completed." +msgstr "Fatto. Poligonizza completata." + +#: flatcamEditors/FlatCAMGrbEditor.py:897 +#: flatcamEditors/FlatCAMGrbEditor.py:1130 +#: flatcamEditors/FlatCAMGrbEditor.py:1154 +msgid "Corner Mode 1: 45 degrees ..." +msgstr "Modalità angolo 1: 45 gradi ..." + +#: flatcamEditors/FlatCAMGrbEditor.py:909 +#: flatcamEditors/FlatCAMGrbEditor.py:1239 +msgid "Click on next Point or click Right mouse button to complete ..." +msgstr "" +"Fare clic sul punto successivo o fare clic con il pulsante destro del mouse " +"per completare ..." + +#: flatcamEditors/FlatCAMGrbEditor.py:1118 +#: flatcamEditors/FlatCAMGrbEditor.py:1151 +msgid "Corner Mode 2: Reverse 45 degrees ..." +msgstr "Modalità angolo 2: indietro di 45 gradi ..." + +#: flatcamEditors/FlatCAMGrbEditor.py:1121 +#: flatcamEditors/FlatCAMGrbEditor.py:1148 +msgid "Corner Mode 3: 90 degrees ..." +msgstr "Modalità angolo 3: 90 gradi ..." + +#: flatcamEditors/FlatCAMGrbEditor.py:1124 +#: flatcamEditors/FlatCAMGrbEditor.py:1145 +msgid "Corner Mode 4: Reverse 90 degrees ..." +msgstr "Modalità angolo 4: indietro di 90 gradi ..." + +#: flatcamEditors/FlatCAMGrbEditor.py:1127 +#: flatcamEditors/FlatCAMGrbEditor.py:1142 +msgid "Corner Mode 5: Free angle ..." +msgstr "Modalità angolo 5: angolo libero ..." + +#: flatcamEditors/FlatCAMGrbEditor.py:1184 +#: flatcamEditors/FlatCAMGrbEditor.py:1360 +#: flatcamEditors/FlatCAMGrbEditor.py:1399 +msgid "Track Mode 1: 45 degrees ..." +msgstr "Traccia modalità 1: 45 gradi ..." + +#: flatcamEditors/FlatCAMGrbEditor.py:1340 +#: flatcamEditors/FlatCAMGrbEditor.py:1394 +msgid "Track Mode 2: Reverse 45 degrees ..." +msgstr "Traccia modalità 2: indietro 45 gradi ..." + +#: flatcamEditors/FlatCAMGrbEditor.py:1345 +#: flatcamEditors/FlatCAMGrbEditor.py:1389 +msgid "Track Mode 3: 90 degrees ..." +msgstr "Traccia modalità 3: 90 gradi ..." + +#: flatcamEditors/FlatCAMGrbEditor.py:1350 +#: flatcamEditors/FlatCAMGrbEditor.py:1384 +msgid "Track Mode 4: Reverse 90 degrees ..." +msgstr "Traccia modalità 4: indietro 90 gradi ..." + +#: flatcamEditors/FlatCAMGrbEditor.py:1355 +#: flatcamEditors/FlatCAMGrbEditor.py:1379 +msgid "Track Mode 5: Free angle ..." +msgstr "Traccia modalità 5: angolo libero ..." + +#: flatcamEditors/FlatCAMGrbEditor.py:1780 +msgid "Scale the selected Gerber apertures ..." +msgstr "Ridimensiona le aperture Gerber selezionate ..." + +#: flatcamEditors/FlatCAMGrbEditor.py:1822 +msgid "Buffer the selected apertures ..." +msgstr "Buffer delle aperture selezionate ..." + +#: flatcamEditors/FlatCAMGrbEditor.py:1864 +msgid "Mark polygon areas in the edited Gerber ..." +msgstr "Contrassegna le aree poligonali nel Gerber modificato ..." + +#: flatcamEditors/FlatCAMGrbEditor.py:1930 +msgid "Nothing selected to move" +msgstr "Nulla di selezionato da spostare" + +#: flatcamEditors/FlatCAMGrbEditor.py:2055 +msgid "Done. Apertures Move completed." +msgstr "Fatto. Spostamento aperture completato." + +#: flatcamEditors/FlatCAMGrbEditor.py:2137 +msgid "Done. Apertures copied." +msgstr "Fatto. Aperture copiate." + +#: flatcamEditors/FlatCAMGrbEditor.py:2455 flatcamGUI/FlatCAMGUI.py:2233 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:27 +msgid "Gerber Editor" +msgstr "Editor Gerber" + +#: flatcamEditors/FlatCAMGrbEditor.py:2475 flatcamGUI/ObjectUI.py:228 +#: flatcamTools/ToolProperties.py:159 +msgid "Apertures" +msgstr "Aperture" + +#: flatcamEditors/FlatCAMGrbEditor.py:2477 flatcamGUI/ObjectUI.py:230 +msgid "Apertures Table for the Gerber Object." +msgstr "Tabella delle aperture per l'oggetto Gerber." + +#: flatcamEditors/FlatCAMGrbEditor.py:2488 +#: flatcamEditors/FlatCAMGrbEditor.py:3969 flatcamGUI/ObjectUI.py:263 +msgid "Code" +msgstr "Codice" + +#: flatcamEditors/FlatCAMGrbEditor.py:2488 +#: flatcamEditors/FlatCAMGrbEditor.py:3969 flatcamGUI/ObjectUI.py:263 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:103 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:167 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:196 +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:43 +#: flatcamTools/ToolCopperThieving.py:261 +#: flatcamTools/ToolCopperThieving.py:301 flatcamTools/ToolFiducials.py:156 +msgid "Size" +msgstr "Dimensione" + +#: flatcamEditors/FlatCAMGrbEditor.py:2488 +#: flatcamEditors/FlatCAMGrbEditor.py:3969 flatcamGUI/ObjectUI.py:263 +msgid "Dim" +msgstr "Dim" + +#: flatcamEditors/FlatCAMGrbEditor.py:2493 flatcamGUI/ObjectUI.py:267 +msgid "Index" +msgstr "Indice" + +#: flatcamEditors/FlatCAMGrbEditor.py:2495 +#: flatcamEditors/FlatCAMGrbEditor.py:2524 flatcamGUI/ObjectUI.py:269 +msgid "Aperture Code" +msgstr "Codice apertura" + +#: flatcamEditors/FlatCAMGrbEditor.py:2497 flatcamGUI/ObjectUI.py:271 +msgid "Type of aperture: circular, rectangle, macros etc" +msgstr "Tipo di apertura: circolare, rettangolo, macro ecc" + +#: flatcamEditors/FlatCAMGrbEditor.py:2499 flatcamGUI/ObjectUI.py:273 +msgid "Aperture Size:" +msgstr "Dimensione apertura:" + +#: flatcamEditors/FlatCAMGrbEditor.py:2501 flatcamGUI/ObjectUI.py:275 +msgid "" +"Aperture Dimensions:\n" +" - (width, height) for R, O type.\n" +" - (dia, nVertices) for P type" +msgstr "" +"Dimensioni apertura:\n" +"- (larghezza, altezza) per tipo R, O.\n" +"- (diametro, nVertices) per il tipo P" + +#: flatcamEditors/FlatCAMGrbEditor.py:2525 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:58 +msgid "Code for the new aperture" +msgstr "Codice della nuova apertura" + +#: flatcamEditors/FlatCAMGrbEditor.py:2534 +msgid "Aperture Size" +msgstr "Dimensione apertura" + +#: flatcamEditors/FlatCAMGrbEditor.py:2536 +msgid "" +"Size for the new aperture.\n" +"If aperture type is 'R' or 'O' then\n" +"this value is automatically\n" +"calculated as:\n" +"sqrt(width**2 + height**2)" +msgstr "" +"Dimensioni per la nuova apertura.\n" +"Se il tipo di apertura è 'R' o 'O', allora\n" +"questo valore è automaticamente\n" +"calcolato come:\n" +"sqrt (larghezza**2 + altezza**2)" + +#: flatcamEditors/FlatCAMGrbEditor.py:2550 +msgid "Aperture Type" +msgstr "Tipo apertura" + +#: flatcamEditors/FlatCAMGrbEditor.py:2552 +msgid "" +"Select the type of new aperture. Can be:\n" +"C = circular\n" +"R = rectangular\n" +"O = oblong" +msgstr "" +"Seleziona il tipo di nuova apertura. Può essere:\n" +"C = circolare\n" +"R = rettangolare\n" +"O = oblungo" + +#: flatcamEditors/FlatCAMGrbEditor.py:2563 +msgid "Aperture Dim" +msgstr "Dim apertura" + +#: flatcamEditors/FlatCAMGrbEditor.py:2565 +msgid "" +"Dimensions for the new aperture.\n" +"Active only for rectangular apertures (type R).\n" +"The format is (width, height)" +msgstr "" +"Dimensioni per la nuova apertura.\n" +"Attivo solo per aperture rettangolari (tipo R).\n" +"Il formato è (larghezza, altezza)" + +#: flatcamEditors/FlatCAMGrbEditor.py:2574 +msgid "Add/Delete Aperture" +msgstr "Aggiungi/Cancella apertura" + +#: flatcamEditors/FlatCAMGrbEditor.py:2576 +msgid "Add/Delete an aperture in the aperture table" +msgstr "Aggiungi/Cancella apertura dalla tabella" + +#: flatcamEditors/FlatCAMGrbEditor.py:2585 +msgid "Add a new aperture to the aperture list." +msgstr "Aggiungi una apertura nella lista aperture." + +#: flatcamEditors/FlatCAMGrbEditor.py:2590 +msgid "Delete a aperture in the aperture list" +msgstr "Cancella una apertura dalla lista aperture" + +#: flatcamEditors/FlatCAMGrbEditor.py:2607 +msgid "Buffer Aperture" +msgstr "Aperture buffer" + +#: flatcamEditors/FlatCAMGrbEditor.py:2609 +msgid "Buffer a aperture in the aperture list" +msgstr "Buffer di un'apertura nella lista aperture" + +#: flatcamEditors/FlatCAMGrbEditor.py:2622 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:194 +msgid "Buffer distance" +msgstr "Buffer distanza" + +#: flatcamEditors/FlatCAMGrbEditor.py:2623 +msgid "Buffer corner" +msgstr "Buffer angolo" + +#: flatcamEditors/FlatCAMGrbEditor.py:2625 +msgid "" +"There are 3 types of corners:\n" +" - 'Round': the corner is rounded.\n" +" - 'Square': the corner is met in a sharp angle.\n" +" - 'Beveled': the corner is a line that directly connects the features " +"meeting in the corner" +msgstr "" +"Esistono 3 tipi di angoli:\n" +"- 'Round': l'angolo è arrotondato.\n" +"- 'Quadrato': l'angolo è incontrato in un angolo acuto.\n" +"- \"Smussato\": l'angolo è una linea che collega direttamente le funzioni " +"che si incontrano nell'angolo" + +#: flatcamEditors/FlatCAMGrbEditor.py:2640 flatcamGUI/FlatCAMGUI.py:1061 +#: flatcamGUI/FlatCAMGUI.py:2138 flatcamGUI/FlatCAMGUI.py:2210 +#: flatcamGUI/FlatCAMGUI.py:2253 flatcamGUI/FlatCAMGUI.py:2765 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:200 +#: flatcamTools/ToolTransform.py:29 +msgid "Buffer" +msgstr "Buffer" + +#: flatcamEditors/FlatCAMGrbEditor.py:2655 +msgid "Scale Aperture" +msgstr "Scala apertura" + +#: flatcamEditors/FlatCAMGrbEditor.py:2657 +msgid "Scale a aperture in the aperture list" +msgstr "Scala apertura nella lista aperture" + +#: flatcamEditors/FlatCAMGrbEditor.py:2665 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:209 +msgid "Scale factor" +msgstr "Fattore di scala" + +#: flatcamEditors/FlatCAMGrbEditor.py:2667 +msgid "" +"The factor by which to scale the selected aperture.\n" +"Values can be between 0.0000 and 999.9999" +msgstr "" +"Il fattore in base al quale ridimensionare l'apertura selezionata.\n" +"I valori possono essere compresi tra 0,0000 e 999,9999" + +#: flatcamEditors/FlatCAMGrbEditor.py:2695 +msgid "Mark polygons" +msgstr "Marchia poligoni" + +#: flatcamEditors/FlatCAMGrbEditor.py:2697 +msgid "Mark the polygon areas." +msgstr "Marchia aree poligoni." + +#: flatcamEditors/FlatCAMGrbEditor.py:2705 +msgid "Area UPPER threshold" +msgstr "Area Soglia SUPERIORE" + +#: flatcamEditors/FlatCAMGrbEditor.py:2707 +msgid "" +"The threshold value, all areas less than this are marked.\n" +"Can have a value between 0.0000 and 9999.9999" +msgstr "" +"Il valore di soglia, tutte le aree inferiori a questa sono contrassegnate.\n" +"Può avere un valore compreso tra 0,0000 e 9999,9999" + +#: flatcamEditors/FlatCAMGrbEditor.py:2714 +msgid "Area LOWER threshold" +msgstr "Area Soglia INFERIORE" + +#: flatcamEditors/FlatCAMGrbEditor.py:2716 +msgid "" +"The threshold value, all areas more than this are marked.\n" +"Can have a value between 0.0000 and 9999.9999" +msgstr "" +"Il valore di soglia, tutte le aree più di questa sono contrassegnate.\n" +"Può avere un valore compreso tra 0,0000 e 9999,9999" + +#: flatcamEditors/FlatCAMGrbEditor.py:2730 +msgid "Mark" +msgstr "Contrassegna" + +#: flatcamEditors/FlatCAMGrbEditor.py:2732 +msgid "Mark the polygons that fit within limits." +msgstr "Contrassegna i poligoni che rientrano nei limiti." + +#: flatcamEditors/FlatCAMGrbEditor.py:2738 +msgid "Delete all the marked polygons." +msgstr "Cancella i poligoni contrassegnati." + +#: flatcamEditors/FlatCAMGrbEditor.py:2744 +msgid "Clear all the markings." +msgstr "Pulisci tutte le marchiature." + +#: flatcamEditors/FlatCAMGrbEditor.py:2764 flatcamGUI/FlatCAMGUI.py:1046 +#: flatcamGUI/FlatCAMGUI.py:2138 flatcamGUI/FlatCAMGUI.py:2750 +msgid "Add Pad Array" +msgstr "Aggiungi matrice di pad" + +#: flatcamEditors/FlatCAMGrbEditor.py:2766 +msgid "Add an array of pads (linear or circular array)" +msgstr "Aggiunge una matrice di pad (lineare o circolare)" + +#: flatcamEditors/FlatCAMGrbEditor.py:2772 +msgid "" +"Select the type of pads array to create.\n" +"It can be Linear X(Y) or Circular" +msgstr "" +"Seleziona il tipo di array di pad da creare.\n" +"Può essere lineare X(Y) o circolare" + +#: flatcamEditors/FlatCAMGrbEditor.py:2783 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:95 +msgid "Nr of pads" +msgstr "Numero di pad" + +#: flatcamEditors/FlatCAMGrbEditor.py:2785 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:97 +msgid "Specify how many pads to be in the array." +msgstr "Specifica quanti pad inserire nella matrice." + +#: flatcamEditors/FlatCAMGrbEditor.py:2834 +msgid "" +"Angle at which the linear array is placed.\n" +"The precision is of max 2 decimals.\n" +"Min value is: -359.99 degrees.\n" +"Max value is: 360.00 degrees." +msgstr "" +"Angolo a cui è posizionata la matrice lineare.\n" +"La precisione è di massimo 2 decimali.\n" +"Il valore minimo è: -359,99 gradi.\n" +"Il valore massimo è: 360,00 gradi." + +#: flatcamEditors/FlatCAMGrbEditor.py:3328 +#: flatcamEditors/FlatCAMGrbEditor.py:3332 +msgid "Aperture code value is missing or wrong format. Add it and retry." +msgstr "" +"Il valore del codice di apertura è mancante o nel formato errato. Aggiungilo " +"e riprova." + +#: flatcamEditors/FlatCAMGrbEditor.py:3368 +msgid "" +"Aperture dimensions value is missing or wrong format. Add it in format " +"(width, height) and retry." +msgstr "" +"Il valore delle dimensioni dell'apertura è mancante o nel formato errato. " +"Aggiungilo nel formato (larghezza, altezza) e riprova." + +#: flatcamEditors/FlatCAMGrbEditor.py:3381 +msgid "Aperture size value is missing or wrong format. Add it and retry." +msgstr "" +"Il valore della dimensione dell'apertura è mancante o nel formato errato. " +"Aggiungilo e riprova." + +#: flatcamEditors/FlatCAMGrbEditor.py:3392 +msgid "Aperture already in the aperture table." +msgstr "Apertura già nella tabella di apertura." + +#: flatcamEditors/FlatCAMGrbEditor.py:3399 +msgid "Added new aperture with code" +msgstr "Aggiunta nuova apertura con codice" + +#: flatcamEditors/FlatCAMGrbEditor.py:3431 +msgid " Select an aperture in Aperture Table" +msgstr " Seleziona un'apertura nella tabella Aperture" + +#: flatcamEditors/FlatCAMGrbEditor.py:3439 +msgid "Select an aperture in Aperture Table -->" +msgstr "Seleziona un'apertura in Tabella apertura ->" + +#: flatcamEditors/FlatCAMGrbEditor.py:3453 +msgid "Deleted aperture with code" +msgstr "Apertura eliminata con codice" + +#: flatcamEditors/FlatCAMGrbEditor.py:3521 +msgid "Dimensions need two float values separated by comma." +msgstr "Le dimensioni necessitano di valori float separati da una virgola." + +#: flatcamEditors/FlatCAMGrbEditor.py:3530 +msgid "Dimensions edited." +msgstr "Dimensioni modificate." + +#: flatcamEditors/FlatCAMGrbEditor.py:4084 +msgid "Loading Gerber into Editor" +msgstr "Caricamento Gerber in Editor" + +#: flatcamEditors/FlatCAMGrbEditor.py:4212 +msgid "Setting up the UI" +msgstr "Impostazione della UI" + +#: flatcamEditors/FlatCAMGrbEditor.py:4213 +msgid "Adding geometry finished. Preparing the GUI" +msgstr "Aggiunta della geometria terminata. Preparazione della GUI" + +#: flatcamEditors/FlatCAMGrbEditor.py:4222 +msgid "Finished loading the Gerber object into the editor." +msgstr "Terminato il caricamento dell'oggetto Gerber nell'editor." + +#: flatcamEditors/FlatCAMGrbEditor.py:4361 +msgid "" +"There are no Aperture definitions in the file. Aborting Gerber creation." +msgstr "" +"Non ci sono definizioni di Aperture nel file. Interruzione della creazione " +"di Gerber." + +#: flatcamEditors/FlatCAMGrbEditor.py:4371 +msgid "Creating Gerber." +msgstr "Creazioen Gerber." + +#: flatcamEditors/FlatCAMGrbEditor.py:4380 +msgid "Done. Gerber editing finished." +msgstr "Fatto. Modifica di Gerber terminata." + +#: flatcamEditors/FlatCAMGrbEditor.py:4398 +msgid "Cancelled. No aperture is selected" +msgstr "Annullato. Nessuna apertura selezionata" + +#: flatcamEditors/FlatCAMGrbEditor.py:4992 +msgid "Failed. No aperture geometry is selected." +msgstr "Impossibile. Nessuna geometria di apertura selezionata." + +#: flatcamEditors/FlatCAMGrbEditor.py:5001 +#: flatcamEditors/FlatCAMGrbEditor.py:5272 +msgid "Done. Apertures geometry deleted." +msgstr "Fatto. Geometria delle aperture cancellata." + +#: flatcamEditors/FlatCAMGrbEditor.py:5144 +msgid "No aperture to buffer. Select at least one aperture and try again." +msgstr "Nessuna apertura al buffer. Seleziona almeno un'apertura e riprova." + +#: flatcamEditors/FlatCAMGrbEditor.py:5156 +msgid "Failed." +msgstr "Fallito." + +#: flatcamEditors/FlatCAMGrbEditor.py:5175 +msgid "Scale factor value is missing or wrong format. Add it and retry." +msgstr "" +"Valore del fattore di scala mancante o formato errato. Aggiungilo e riprova." + +#: flatcamEditors/FlatCAMGrbEditor.py:5207 +msgid "No aperture to scale. Select at least one aperture and try again." +msgstr "" +"Nessuna apertura da ridimensionare. Seleziona almeno un'apertura e riprova." + +#: flatcamEditors/FlatCAMGrbEditor.py:5223 +msgid "Done. Scale Tool completed." +msgstr "Fatto. Strumento buffer completato." + +#: flatcamEditors/FlatCAMGrbEditor.py:5261 +msgid "Polygons marked." +msgstr "Poligoni contrassegnati." + +#: flatcamEditors/FlatCAMGrbEditor.py:5264 +msgid "No polygons were marked. None fit within the limits." +msgstr "Nessun poligono contrassegnato. Nessuno risponde ai criteri." + +#: flatcamEditors/FlatCAMGrbEditor.py:5988 +msgid "Rotation action was not executed." +msgstr "Azione rotazione non effettuata." + +#: flatcamEditors/FlatCAMGrbEditor.py:6116 +msgid "Skew action was not executed." +msgstr "Azione inclinazione non effettuata." + +#: flatcamEditors/FlatCAMGrbEditor.py:6181 +msgid "Scale action was not executed." +msgstr "Azione riscalatura non effettuata." + +#: flatcamEditors/FlatCAMGrbEditor.py:6224 +msgid "Offset action was not executed." +msgstr "Offset non applicato." + +#: flatcamEditors/FlatCAMGrbEditor.py:6274 +msgid "Geometry shape offset Y cancelled" +msgstr "Offset su forme geometria su asse Y annullato" + +#: flatcamEditors/FlatCAMGrbEditor.py:6289 +msgid "Geometry shape skew X cancelled" +msgstr "Offset su forme geometria su asse X annullato" + +#: flatcamEditors/FlatCAMGrbEditor.py:6304 +msgid "Geometry shape skew Y cancelled" +msgstr "Inclinazione su asse Y annullato" + +#: flatcamEditors/FlatCAMTextEditor.py:74 +msgid "Print Preview" +msgstr "Anteprima di Stampa" + +#: flatcamEditors/FlatCAMTextEditor.py:75 +msgid "Open a OS standard Preview Print window." +msgstr "" +"Aprire una finestra di stampa di anteprima standard del sistema operativo." + +#: flatcamEditors/FlatCAMTextEditor.py:78 +msgid "Print Code" +msgstr "Stampa codice" + +#: flatcamEditors/FlatCAMTextEditor.py:79 +msgid "Open a OS standard Print window." +msgstr "Aprire una finestra di stampa standard del sistema operativo." + +#: flatcamEditors/FlatCAMTextEditor.py:81 +msgid "Find in Code" +msgstr "Cerca nel Codice" + +#: flatcamEditors/FlatCAMTextEditor.py:82 +msgid "Will search and highlight in yellow the string in the Find box." +msgstr "Cercherà ed evidenzierà in giallo la stringa nella casella Trova." + +#: flatcamEditors/FlatCAMTextEditor.py:86 +msgid "Find box. Enter here the strings to be searched in the text." +msgstr "Trova la scatola. Inserisci qui le stringhe da cercare nel testo." + +#: flatcamEditors/FlatCAMTextEditor.py:88 +msgid "Replace With" +msgstr "Sostituisci con" + +#: flatcamEditors/FlatCAMTextEditor.py:89 +msgid "" +"Will replace the string from the Find box with the one in the Replace box." +msgstr "" +"Sostituirà la stringa dalla casella Trova con quella nella casella " +"Sostituisci." + +#: flatcamEditors/FlatCAMTextEditor.py:93 +msgid "String to replace the one in the Find box throughout the text." +msgstr "Stringa per sostituire quella nella casella Trova in tutto il testo." + +#: flatcamEditors/FlatCAMTextEditor.py:95 flatcamGUI/ObjectUI.py:486 +#: flatcamGUI/ObjectUI.py:2139 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:54 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:88 +msgid "All" +msgstr "Tutto" + +#: flatcamEditors/FlatCAMTextEditor.py:96 +msgid "" +"When checked it will replace all instances in the 'Find' box\n" +"with the text in the 'Replace' box.." +msgstr "" +"Se selezionato, sostituirà tutte le istanze nella casella \"Trova\"\n" +"con il testo nella casella \"Sostituisci\"." + +#: flatcamEditors/FlatCAMTextEditor.py:99 +msgid "Copy All" +msgstr "Copia tutto" + +#: flatcamEditors/FlatCAMTextEditor.py:100 +msgid "Will copy all the text in the Code Editor to the clipboard." +msgstr "Copia tutto il testo nell'editor di codice negli Appunti." + +#: flatcamEditors/FlatCAMTextEditor.py:103 +msgid "Open Code" +msgstr "Apri G-Code" + +#: flatcamEditors/FlatCAMTextEditor.py:104 +msgid "Will open a text file in the editor." +msgstr "Aprirà un file di testo nell'editor." + +#: flatcamEditors/FlatCAMTextEditor.py:106 +msgid "Save Code" +msgstr "Salva codice" + +#: flatcamEditors/FlatCAMTextEditor.py:107 +msgid "Will save the text in the editor into a file." +msgstr "Salverà il testo nell'editor in un file." + +#: flatcamEditors/FlatCAMTextEditor.py:109 +msgid "Run Code" +msgstr "Esegui codice" + +#: flatcamEditors/FlatCAMTextEditor.py:110 +msgid "Will run the TCL commands found in the text file, one by one." +msgstr "Saranno eseguiti i comandi TCL trovati nel file di testo, uno per uno." + +#: flatcamEditors/FlatCAMTextEditor.py:184 +msgid "Open file" +msgstr "Apri il file" + +#: flatcamEditors/FlatCAMTextEditor.py:215 +#: flatcamEditors/FlatCAMTextEditor.py:220 +msgid "Export Code ..." +msgstr "Esporta il Codice ..." + +#: flatcamEditors/FlatCAMTextEditor.py:272 flatcamObjects/FlatCAMCNCJob.py:955 +#: flatcamTools/ToolSolderPaste.py:1530 +msgid "No such file or directory" +msgstr "File o directory inesistente" + +#: flatcamEditors/FlatCAMTextEditor.py:284 flatcamObjects/FlatCAMCNCJob.py:969 +msgid "Saved to" +msgstr "Salvato in" + +#: flatcamEditors/FlatCAMTextEditor.py:334 +msgid "Code Editor content copied to clipboard ..." +msgstr "Contenuto dell'editor di codice copiato negli appunti ..." + +#: flatcamGUI/FlatCAMGUI.py:78 flatcamGUI/FlatCAMGUI.py:80 +#: flatcamGUI/FlatCAMGUI.py:2163 +msgid "Toggle Panel" +msgstr "Attiva / disattiva pannello" + +#: flatcamGUI/FlatCAMGUI.py:90 +msgid "File" +msgstr "File" + +#: flatcamGUI/FlatCAMGUI.py:95 +msgid "&New Project ...\tCtrl+N" +msgstr "&Nuovo progetto ...\tCtrl+N" + +#: flatcamGUI/FlatCAMGUI.py:97 +msgid "Will create a new, blank project" +msgstr "Creerà un nuovo progetto vuoto" + +#: flatcamGUI/FlatCAMGUI.py:102 +msgid "&New" +msgstr "&Nuovo" + +#: flatcamGUI/FlatCAMGUI.py:106 +msgid "Geometry\tN" +msgstr "Geometria\tN" + +#: flatcamGUI/FlatCAMGUI.py:108 +msgid "Will create a new, empty Geometry Object." +msgstr "Creerà un nuovo oggetto Geometria vuoto." + +#: flatcamGUI/FlatCAMGUI.py:111 +msgid "Gerber\tB" +msgstr "Gerber\tB" + +#: flatcamGUI/FlatCAMGUI.py:113 +msgid "Will create a new, empty Gerber Object." +msgstr "Creerà un nuovo oggetto Gerber vuoto." + +#: flatcamGUI/FlatCAMGUI.py:116 +msgid "Excellon\tL" +msgstr "Excellon\tL" + +#: flatcamGUI/FlatCAMGUI.py:118 +msgid "Will create a new, empty Excellon Object." +msgstr "Creerà un nuovo oggetto Excellon vuoto." + +#: flatcamGUI/FlatCAMGUI.py:123 +msgid "Document\tD" +msgstr "Documento\tD" + +#: flatcamGUI/FlatCAMGUI.py:125 +msgid "Will create a new, empty Document Object." +msgstr "Creerà un nuovo oggetto Documento vuoto." + +#: flatcamGUI/FlatCAMGUI.py:129 flatcamGUI/FlatCAMGUI.py:4397 +#: flatcamTools/ToolPcbWizard.py:62 flatcamTools/ToolPcbWizard.py:69 +msgid "Open" +msgstr "Apri" + +#: flatcamGUI/FlatCAMGUI.py:134 +msgid "Open &Project ..." +msgstr "Apri &Progetto ..." + +#: flatcamGUI/FlatCAMGUI.py:140 flatcamGUI/FlatCAMGUI.py:4407 +msgid "Open &Gerber ...\tCtrl+G" +msgstr "Apri &Gerber...\tCtrl+G" + +#: flatcamGUI/FlatCAMGUI.py:145 flatcamGUI/FlatCAMGUI.py:4412 +msgid "Open &Excellon ...\tCtrl+E" +msgstr "Apri &Excellon ...\tCtrl+E" + +#: flatcamGUI/FlatCAMGUI.py:150 flatcamGUI/FlatCAMGUI.py:4417 +msgid "Open G-&Code ..." +msgstr "Apri G-&Code ..." + +#: flatcamGUI/FlatCAMGUI.py:157 +msgid "Open Config ..." +msgstr "Apri Config ..." + +#: flatcamGUI/FlatCAMGUI.py:162 +msgid "Recent projects" +msgstr "Progetti recenti" + +#: flatcamGUI/FlatCAMGUI.py:164 +msgid "Recent files" +msgstr "File recenti" + +#: flatcamGUI/FlatCAMGUI.py:167 flatcamGUI/FlatCAMGUI.py:753 +#: flatcamGUI/FlatCAMGUI.py:1339 +msgid "Save" +msgstr "Salva" + +#: flatcamGUI/FlatCAMGUI.py:171 +msgid "&Save Project ...\tCtrl+S" +msgstr "&Salva progetto con nome ...\tCtrl+S" + +#: flatcamGUI/FlatCAMGUI.py:176 +msgid "Save Project &As ...\tCtrl+Shift+S" +msgstr "S&alva progetto con nome ...\tCtrl+Shift+S" + +#: flatcamGUI/FlatCAMGUI.py:191 +msgid "Scripting" +msgstr "Scripting" + +#: flatcamGUI/FlatCAMGUI.py:195 flatcamGUI/FlatCAMGUI.py:903 +#: flatcamGUI/FlatCAMGUI.py:2607 +msgid "New Script ..." +msgstr "Nuovo Script ..." + +#: flatcamGUI/FlatCAMGUI.py:197 flatcamGUI/FlatCAMGUI.py:905 +#: flatcamGUI/FlatCAMGUI.py:2609 +msgid "Open Script ..." +msgstr "Apri Script ..." + +#: flatcamGUI/FlatCAMGUI.py:199 +msgid "Open Example ..." +msgstr "Apri esempio ..." + +#: flatcamGUI/FlatCAMGUI.py:201 flatcamGUI/FlatCAMGUI.py:907 +#: flatcamGUI/FlatCAMGUI.py:2611 flatcamGUI/FlatCAMGUI.py:4386 +msgid "Run Script ..." +msgstr "Esegui Script ..." + +#: flatcamGUI/FlatCAMGUI.py:203 flatcamGUI/FlatCAMGUI.py:4388 +msgid "" +"Will run the opened Tcl Script thus\n" +"enabling the automation of certain\n" +"functions of FlatCAM." +msgstr "" +"Eseguirà lo script Tcl aperto per\n" +"consentire l'automazione di alcune\n" +"funzioni di FlatCAM." + +#: flatcamGUI/FlatCAMGUI.py:218 +msgid "Import" +msgstr "Importa" + +#: flatcamGUI/FlatCAMGUI.py:220 +msgid "&SVG as Geometry Object ..." +msgstr "&SVG come oggetto Geometry ..." + +#: flatcamGUI/FlatCAMGUI.py:223 +msgid "&SVG as Gerber Object ..." +msgstr "&SVG come oggetto Gerber ..." + +#: flatcamGUI/FlatCAMGUI.py:228 +msgid "&DXF as Geometry Object ..." +msgstr "&DXF come oggetto Geometria ..." + +#: flatcamGUI/FlatCAMGUI.py:231 +msgid "&DXF as Gerber Object ..." +msgstr "&DXF come oggetto Gerber ..." + +#: flatcamGUI/FlatCAMGUI.py:235 +msgid "HPGL2 as Geometry Object ..." +msgstr "HPGL2 come oggetto Geometry ..." + +#: flatcamGUI/FlatCAMGUI.py:241 +msgid "Export" +msgstr "Esporta" + +#: flatcamGUI/FlatCAMGUI.py:245 +msgid "Export &SVG ..." +msgstr "Esporta &SVG ..." + +#: flatcamGUI/FlatCAMGUI.py:249 +msgid "Export DXF ..." +msgstr "Esporta &DXF ..." + +#: flatcamGUI/FlatCAMGUI.py:255 +msgid "Export &PNG ..." +msgstr "Esporta &PNG ..." + +#: flatcamGUI/FlatCAMGUI.py:257 +msgid "" +"Will export an image in PNG format,\n" +"the saved image will contain the visual \n" +"information currently in FlatCAM Plot Area." +msgstr "" +"Esporterà un'immagine in formato PNG,\n" +"l'immagine salvata conterrà le informazioni\n" +"visive attualmente nell'area del grafico FlatCAM." + +#: flatcamGUI/FlatCAMGUI.py:266 +msgid "Export &Excellon ..." +msgstr "Export &Excellon ..." + +#: flatcamGUI/FlatCAMGUI.py:268 +msgid "" +"Will export an Excellon Object as Excellon file,\n" +"the coordinates format, the file units and zeros\n" +"are set in Preferences -> Excellon Export." +msgstr "" +"Esporterà un oggetto Excellon come file Excellon,\n" +"il formato delle coordinate, le unità di file e gli zeri\n" +"sono impostati in Preferenze -> Esporta Excellon." + +#: flatcamGUI/FlatCAMGUI.py:275 +msgid "Export &Gerber ..." +msgstr "Esporta &Gerber ..." + +#: flatcamGUI/FlatCAMGUI.py:277 +msgid "" +"Will export an Gerber Object as Gerber file,\n" +"the coordinates format, the file units and zeros\n" +"are set in Preferences -> Gerber Export." +msgstr "" +"Esporterà un oggetto Gerber come file Gerber,\n" +"il formato delle coordinate, le unità di file e gli zeri\n" +"sono impostati in Preferenze -> Esportazione Gerber." + +#: flatcamGUI/FlatCAMGUI.py:287 +msgid "Backup" +msgstr "Backup" + +#: flatcamGUI/FlatCAMGUI.py:292 +msgid "Import Preferences from file ..." +msgstr "Importa preferenze da file ..." + +#: flatcamGUI/FlatCAMGUI.py:298 +msgid "Export Preferences to file ..." +msgstr "Esporta preferenze su file ..." + +#: flatcamGUI/FlatCAMGUI.py:306 +#: flatcamGUI/preferences/PreferencesUIManager.py:1115 +msgid "Save Preferences" +msgstr "Salva Preferenze" + +#: flatcamGUI/FlatCAMGUI.py:312 flatcamGUI/FlatCAMGUI.py:1730 +msgid "Print (PDF)" +msgstr "Stampa (PDF)" + +#: flatcamGUI/FlatCAMGUI.py:320 +msgid "E&xit" +msgstr "Uscita (&x)" + +#: flatcamGUI/FlatCAMGUI.py:328 flatcamGUI/FlatCAMGUI.py:747 +#: flatcamGUI/FlatCAMGUI.py:2286 +msgid "Edit" +msgstr "Modifica" + +#: flatcamGUI/FlatCAMGUI.py:332 +msgid "Edit Object\tE" +msgstr "Modifica oggetto\tE" + +#: flatcamGUI/FlatCAMGUI.py:334 +msgid "Close Editor\tCtrl+S" +msgstr "Chiudi editor\tCtrl+S" + +#: flatcamGUI/FlatCAMGUI.py:343 +msgid "Conversion" +msgstr "Conversione" + +#: flatcamGUI/FlatCAMGUI.py:345 +msgid "&Join Geo/Gerber/Exc -> Geo" +msgstr "&J Unisci Geo/Gerber/Exc -> Geo" + +#: flatcamGUI/FlatCAMGUI.py:347 +msgid "" +"Merge a selection of objects, which can be of type:\n" +"- Gerber\n" +"- Excellon\n" +"- Geometry\n" +"into a new combo Geometry object." +msgstr "" +"Unisci una selezione di oggetti, che possono essere di tipo:\n" +"- Gerber\n" +"- Excellon\n" +"- Geometria\n" +"in un nuovo oggetto Geometria combinato." + +#: flatcamGUI/FlatCAMGUI.py:354 +msgid "Join Excellon(s) -> Excellon" +msgstr "Unisci Excellon -> Excellon" + +#: flatcamGUI/FlatCAMGUI.py:356 +msgid "Merge a selection of Excellon objects into a new combo Excellon object." +msgstr "" +"Unisci una selezione di oggetti Excellon in un nuovo oggetto combinato " +"Excellon." + +#: flatcamGUI/FlatCAMGUI.py:359 +msgid "Join Gerber(s) -> Gerber" +msgstr "Unisci Gerber(s) -> Gerber" + +#: flatcamGUI/FlatCAMGUI.py:361 +msgid "Merge a selection of Gerber objects into a new combo Gerber object." +msgstr "" +"Unisci una selezione di oggetti Gerber in un nuovo oggetto Gerber combinato." + +#: flatcamGUI/FlatCAMGUI.py:366 +msgid "Convert Single to MultiGeo" +msgstr "Converti da Single a MultiGeo" + +#: flatcamGUI/FlatCAMGUI.py:368 +msgid "" +"Will convert a Geometry object from single_geometry type\n" +"to a multi_geometry type." +msgstr "" +"Converte un oggetto Geometry dal tipo single_geometry\n" +"a un tipo multi_geometry." + +#: flatcamGUI/FlatCAMGUI.py:372 +msgid "Convert Multi to SingleGeo" +msgstr "Converti da Multi a SingleGeo" + +#: flatcamGUI/FlatCAMGUI.py:374 +msgid "" +"Will convert a Geometry object from multi_geometry type\n" +"to a single_geometry type." +msgstr "" +"Converte un oggetto Geometry dal tipo multi_geometry\n" +"a un tipo single_geometry." + +#: flatcamGUI/FlatCAMGUI.py:381 +msgid "Convert Any to Geo" +msgstr "Converti tutto in Geo" + +#: flatcamGUI/FlatCAMGUI.py:384 +msgid "Convert Any to Gerber" +msgstr "Converti tutto in Gerber" + +#: flatcamGUI/FlatCAMGUI.py:390 +msgid "&Copy\tCtrl+C" +msgstr "&Copia\tCtrl+C" + +#: flatcamGUI/FlatCAMGUI.py:395 +msgid "&Delete\tDEL" +msgstr "Cancella (&D)\tDEL" + +#: flatcamGUI/FlatCAMGUI.py:400 +msgid "Se&t Origin\tO" +msgstr "Impos&ta Origine\tO" + +#: flatcamGUI/FlatCAMGUI.py:402 +msgid "Move to Origin\tShift+O" +msgstr "Sposta su Origine\tShift+O" + +#: flatcamGUI/FlatCAMGUI.py:405 +msgid "Jump to Location\tJ" +msgstr "Vai a locazione\tJ" + +#: flatcamGUI/FlatCAMGUI.py:407 +msgid "Locate in Object\tShift+J" +msgstr "Trova nell'oggetto\tShift+J" + +#: flatcamGUI/FlatCAMGUI.py:412 +msgid "Toggle Units\tQ" +msgstr "Attiva/disattiva Unità\tQ" + +#: flatcamGUI/FlatCAMGUI.py:414 +msgid "&Select All\tCtrl+A" +msgstr "&Seleziona tutto\tCtrl+A" + +#: flatcamGUI/FlatCAMGUI.py:419 +msgid "&Preferences\tShift+P" +msgstr "&Preferenze\tShift+P" + +#: flatcamGUI/FlatCAMGUI.py:425 flatcamTools/ToolProperties.py:155 +msgid "Options" +msgstr "Opzioni" + +#: flatcamGUI/FlatCAMGUI.py:427 +msgid "&Rotate Selection\tShift+(R)" +msgstr "&Ruota Selezione\tShift+(R)" + +#: flatcamGUI/FlatCAMGUI.py:432 +msgid "&Skew on X axis\tShift+X" +msgstr "Inclina nell'a&sse X\tShift+X" + +#: flatcamGUI/FlatCAMGUI.py:434 +msgid "S&kew on Y axis\tShift+Y" +msgstr "Inclina nell'asse Y\tShift+Y" + +#: flatcamGUI/FlatCAMGUI.py:439 +msgid "Flip on &X axis\tX" +msgstr "Capovolgi in &X\tX" + +#: flatcamGUI/FlatCAMGUI.py:441 +msgid "Flip on &Y axis\tY" +msgstr "Capovolgi in &Y\tY" + +#: flatcamGUI/FlatCAMGUI.py:446 +msgid "View source\tAlt+S" +msgstr "Vedi sorgente\tAlt+S" + +#: flatcamGUI/FlatCAMGUI.py:448 +msgid "Tools DataBase\tCtrl+D" +msgstr "DataBase Utensili\tCtrl+D" + +#: flatcamGUI/FlatCAMGUI.py:455 flatcamGUI/FlatCAMGUI.py:2183 +msgid "View" +msgstr "Vedi" + +#: flatcamGUI/FlatCAMGUI.py:457 +msgid "Enable all plots\tAlt+1" +msgstr "Abilita tutti i plot\tAlt+1" + +#: flatcamGUI/FlatCAMGUI.py:459 +msgid "Disable all plots\tAlt+2" +msgstr "Disabilita tutti i plot\tAlt+2" + +#: flatcamGUI/FlatCAMGUI.py:461 +msgid "Disable non-selected\tAlt+3" +msgstr "Disabilita non selezionati\tAlt+3" + +#: flatcamGUI/FlatCAMGUI.py:465 +msgid "&Zoom Fit\tV" +msgstr "&Zoom tutto\tV" + +#: flatcamGUI/FlatCAMGUI.py:467 +msgid "&Zoom In\t=" +msgstr "&Zoom In\t=" + +#: flatcamGUI/FlatCAMGUI.py:469 +msgid "&Zoom Out\t-" +msgstr "&Zoom Fuori\t-" + +#: flatcamGUI/FlatCAMGUI.py:474 +msgid "Redraw All\tF5" +msgstr "Ridisegna tutto\tF5" + +#: flatcamGUI/FlatCAMGUI.py:478 +msgid "Toggle Code Editor\tShift+E" +msgstr "Attiva/disattiva Editor codice\tShift+E" + +#: flatcamGUI/FlatCAMGUI.py:481 +msgid "&Toggle FullScreen\tAlt+F10" +msgstr "(Dis)abili&ta schermo intero\tAlt+F10" + +#: flatcamGUI/FlatCAMGUI.py:483 +msgid "&Toggle Plot Area\tCtrl+F10" +msgstr "(Dis)a&ttiva area del diagramma\tCtrl+F10" + +#: flatcamGUI/FlatCAMGUI.py:485 +msgid "&Toggle Project/Sel/Tool\t`" +msgstr "(Dis)a&ttiva Progetto/Sel/Strumento\t`" + +#: flatcamGUI/FlatCAMGUI.py:489 +msgid "&Toggle Grid Snap\tG" +msgstr "(Dis)a&ttiva lo snap alla griglia\tG" + +#: flatcamGUI/FlatCAMGUI.py:491 +msgid "&Toggle Grid Lines\tAlt+G" +msgstr "(Dis)&attiva linee griglia\tG" + +#: flatcamGUI/FlatCAMGUI.py:493 +msgid "&Toggle Axis\tShift+G" +msgstr "(Dis)a&ttiva assi\tShift+G" + +#: flatcamGUI/FlatCAMGUI.py:495 +msgid "Toggle Workspace\tShift+W" +msgstr "(Dis)attiva area di lavoro\tShift+W" + +#: flatcamGUI/FlatCAMGUI.py:500 +msgid "Objects" +msgstr "Oggetti" + +#: flatcamGUI/FlatCAMGUI.py:514 +msgid "&Command Line\tS" +msgstr "Riga &Comandi\tS" + +#: flatcamGUI/FlatCAMGUI.py:519 +msgid "Help" +msgstr "Aiuto" + +#: flatcamGUI/FlatCAMGUI.py:521 +msgid "Online Help\tF1" +msgstr "Aiuto Online\tF1" + +#: flatcamGUI/FlatCAMGUI.py:531 +msgid "Report a bug" +msgstr "Riporta un bug" + +#: flatcamGUI/FlatCAMGUI.py:534 +msgid "Excellon Specification" +msgstr "Specifiche Excellon" + +#: flatcamGUI/FlatCAMGUI.py:536 +msgid "Gerber Specification" +msgstr "Specifiche Gerber" + +#: flatcamGUI/FlatCAMGUI.py:541 +msgid "Shortcuts List\tF3" +msgstr "Elenco Shortcuts\tF3" + +#: flatcamGUI/FlatCAMGUI.py:543 +msgid "YouTube Channel\tF4" +msgstr "Canale YouTube\tF4" + +#: flatcamGUI/FlatCAMGUI.py:554 +msgid "Add Circle\tO" +msgstr "Aggiungi cerchio\tO" + +#: flatcamGUI/FlatCAMGUI.py:557 +msgid "Add Arc\tA" +msgstr "Aggiungi Arco\tA" + +#: flatcamGUI/FlatCAMGUI.py:560 +msgid "Add Rectangle\tR" +msgstr "Aggiungi rettangolo\tR" + +#: flatcamGUI/FlatCAMGUI.py:563 +msgid "Add Polygon\tN" +msgstr "Aggiungi poligono\tN" + +#: flatcamGUI/FlatCAMGUI.py:566 +msgid "Add Path\tP" +msgstr "Aggiungi percorso\tP" + +#: flatcamGUI/FlatCAMGUI.py:569 +msgid "Add Text\tT" +msgstr "Aggiungi Testo\tT" + +#: flatcamGUI/FlatCAMGUI.py:572 +msgid "Polygon Union\tU" +msgstr "Unisci poligono\tU" + +#: flatcamGUI/FlatCAMGUI.py:574 +msgid "Polygon Intersection\tE" +msgstr "Interseca poligono\tE" + +#: flatcamGUI/FlatCAMGUI.py:576 +msgid "Polygon Subtraction\tS" +msgstr "Sottrai poligono\tS" + +#: flatcamGUI/FlatCAMGUI.py:580 +msgid "Cut Path\tX" +msgstr "Taglia percorso\tX" + +#: flatcamGUI/FlatCAMGUI.py:584 +msgid "Copy Geom\tC" +msgstr "Copia Geometria\tC" + +#: flatcamGUI/FlatCAMGUI.py:586 +msgid "Delete Shape\tDEL" +msgstr "Cancella forma\tCANC" + +#: flatcamGUI/FlatCAMGUI.py:590 flatcamGUI/FlatCAMGUI.py:677 +msgid "Move\tM" +msgstr "Sposta\tM" + +#: flatcamGUI/FlatCAMGUI.py:592 +msgid "Buffer Tool\tB" +msgstr "Strumento Buffer\tB" + +#: flatcamGUI/FlatCAMGUI.py:595 +msgid "Paint Tool\tI" +msgstr "Strumento Pittura\tI" + +#: flatcamGUI/FlatCAMGUI.py:598 +msgid "Transform Tool\tAlt+R" +msgstr "Strumento Trasforma\tAlt+R" + +#: flatcamGUI/FlatCAMGUI.py:602 +msgid "Toggle Corner Snap\tK" +msgstr "Attiva/disattiva Snap angoli\tK" + +#: flatcamGUI/FlatCAMGUI.py:608 +msgid ">Excellon Editor<" +msgstr ">Editor Excellon<" + +#: flatcamGUI/FlatCAMGUI.py:612 +msgid "Add Drill Array\tA" +msgstr "Aggiungi matrice fori\tA" + +#: flatcamGUI/FlatCAMGUI.py:614 +msgid "Add Drill\tD" +msgstr "Aggiungi Foro\tD" + +#: flatcamGUI/FlatCAMGUI.py:618 +msgid "Add Slot Array\tQ" +msgstr "Aggiungi Matrice slot\tQ" + +#: flatcamGUI/FlatCAMGUI.py:620 +msgid "Add Slot\tW" +msgstr "Aggiungi Slot\tW" + +#: flatcamGUI/FlatCAMGUI.py:624 +msgid "Resize Drill(S)\tR" +msgstr "Ridimensiona Foro(i)\tR" + +#: flatcamGUI/FlatCAMGUI.py:627 flatcamGUI/FlatCAMGUI.py:671 +msgid "Copy\tC" +msgstr "Copia\tC" + +#: flatcamGUI/FlatCAMGUI.py:629 flatcamGUI/FlatCAMGUI.py:673 +msgid "Delete\tDEL" +msgstr "Cancella\tCANC" + +#: flatcamGUI/FlatCAMGUI.py:634 +msgid "Move Drill(s)\tM" +msgstr "Sposta foro(i)\tM" + +#: flatcamGUI/FlatCAMGUI.py:639 +msgid ">Gerber Editor<" +msgstr ">Editor Gerber<" + +#: flatcamGUI/FlatCAMGUI.py:643 +msgid "Add Pad\tP" +msgstr "Aggiungi Pad\tP" + +#: flatcamGUI/FlatCAMGUI.py:645 +msgid "Add Pad Array\tA" +msgstr "Aggiungi matrice Pad\tA" + +#: flatcamGUI/FlatCAMGUI.py:647 +msgid "Add Track\tT" +msgstr "Aggiungi Traccia\tT" + +#: flatcamGUI/FlatCAMGUI.py:649 +msgid "Add Region\tN" +msgstr "Aggiungi regione\tN" + +#: flatcamGUI/FlatCAMGUI.py:653 +msgid "Poligonize\tAlt+N" +msgstr "Poligonizza\tAlt+N" + +#: flatcamGUI/FlatCAMGUI.py:655 +msgid "Add SemiDisc\tE" +msgstr "Aggiungi SemiDisco\tE" + +#: flatcamGUI/FlatCAMGUI.py:657 +msgid "Add Disc\tD" +msgstr "Aggiungi Disco\tD" + +#: flatcamGUI/FlatCAMGUI.py:659 +msgid "Buffer\tB" +msgstr "Buffer\tB" + +#: flatcamGUI/FlatCAMGUI.py:661 +msgid "Scale\tS" +msgstr "Scala\tS" + +#: flatcamGUI/FlatCAMGUI.py:663 +msgid "Mark Area\tAlt+A" +msgstr "Marchia Area\tAlt+A" + +#: flatcamGUI/FlatCAMGUI.py:665 +msgid "Eraser\tCtrl+E" +msgstr "Gomma\tCtrl+E" + +#: flatcamGUI/FlatCAMGUI.py:667 +msgid "Transform\tAlt+R" +msgstr "Trasforma\tAlt+R" + +#: flatcamGUI/FlatCAMGUI.py:694 +msgid "Enable Plot" +msgstr "Abilita Plot" + +#: flatcamGUI/FlatCAMGUI.py:696 +msgid "Disable Plot" +msgstr "Disabilita Plot" + +#: flatcamGUI/FlatCAMGUI.py:700 +msgid "Set Color" +msgstr "Imposta Colore" + +#: flatcamGUI/FlatCAMGUI.py:742 +msgid "Generate CNC" +msgstr "Genera CNC" + +#: flatcamGUI/FlatCAMGUI.py:744 +msgid "View Source" +msgstr "Vedi sorgente" + +#: flatcamGUI/FlatCAMGUI.py:749 flatcamGUI/FlatCAMGUI.py:863 +#: flatcamGUI/FlatCAMGUI.py:1072 flatcamGUI/FlatCAMGUI.py:2138 +#: flatcamGUI/FlatCAMGUI.py:2282 flatcamGUI/FlatCAMGUI.py:2572 +#: flatcamGUI/FlatCAMGUI.py:2775 flatcamGUI/ObjectUI.py:1617 +#: flatcamObjects/FlatCAMGeometry.py:477 flatcamTools/ToolPanelize.py:540 +#: flatcamTools/ToolPanelize.py:567 flatcamTools/ToolPanelize.py:660 +#: flatcamTools/ToolPanelize.py:689 flatcamTools/ToolPanelize.py:751 +msgid "Copy" +msgstr "Copia" + +#: flatcamGUI/FlatCAMGUI.py:757 flatcamGUI/FlatCAMGUI.py:2295 +#: flatcamTools/ToolProperties.py:31 +msgid "Properties" +msgstr "Proprietà" + +#: flatcamGUI/FlatCAMGUI.py:786 +msgid "File Toolbar" +msgstr "Strumenti File" + +#: flatcamGUI/FlatCAMGUI.py:790 +msgid "Edit Toolbar" +msgstr "Strumenti Edit" + +#: flatcamGUI/FlatCAMGUI.py:794 +msgid "View Toolbar" +msgstr "Strumenti Vedi" + +#: flatcamGUI/FlatCAMGUI.py:798 +msgid "Shell Toolbar" +msgstr "Strumenti Shell" + +#: flatcamGUI/FlatCAMGUI.py:802 +msgid "Tools Toolbar" +msgstr "Strumenti Utensili" + +#: flatcamGUI/FlatCAMGUI.py:806 +msgid "Excellon Editor Toolbar" +msgstr "Strumenti Editor Excellon" + +#: flatcamGUI/FlatCAMGUI.py:812 +msgid "Geometry Editor Toolbar" +msgstr "Strumenti Editor Geometrie" + +#: flatcamGUI/FlatCAMGUI.py:816 +msgid "Gerber Editor Toolbar" +msgstr "Strumenti Editor Gerber" + +#: flatcamGUI/FlatCAMGUI.py:820 +msgid "Grid Toolbar" +msgstr "Strumenti Griglia" + +#: flatcamGUI/FlatCAMGUI.py:841 flatcamGUI/FlatCAMGUI.py:2549 +msgid "Open project" +msgstr "Apri progetto" + +#: flatcamGUI/FlatCAMGUI.py:843 flatcamGUI/FlatCAMGUI.py:2551 +msgid "Save project" +msgstr "Salva progetto" + +#: flatcamGUI/FlatCAMGUI.py:849 flatcamGUI/FlatCAMGUI.py:2557 +msgid "New Blank Geometry" +msgstr "Nuova Geometria vuota" + +#: flatcamGUI/FlatCAMGUI.py:851 flatcamGUI/FlatCAMGUI.py:2559 +msgid "New Blank Gerber" +msgstr "Nuovo Gerber vuoto" + +#: flatcamGUI/FlatCAMGUI.py:853 flatcamGUI/FlatCAMGUI.py:2561 +msgid "New Blank Excellon" +msgstr "Nuovo Excellon vuoto" + +#: flatcamGUI/FlatCAMGUI.py:858 flatcamGUI/FlatCAMGUI.py:2567 +msgid "Save Object and close the Editor" +msgstr "Salva Oggetto e chiudi editor" + +#: flatcamGUI/FlatCAMGUI.py:865 flatcamGUI/FlatCAMGUI.py:2574 +msgid "&Delete" +msgstr "&Cancella" + +#: flatcamGUI/FlatCAMGUI.py:868 flatcamGUI/FlatCAMGUI.py:1729 +#: flatcamGUI/FlatCAMGUI.py:1935 flatcamGUI/FlatCAMGUI.py:2577 +#: flatcamTools/ToolDistance.py:35 flatcamTools/ToolDistance.py:195 +msgid "Distance Tool" +msgstr "Strumento distanza" + +#: flatcamGUI/FlatCAMGUI.py:870 flatcamGUI/FlatCAMGUI.py:2579 +msgid "Distance Min Tool" +msgstr "Strumento distanza minima" + +#: flatcamGUI/FlatCAMGUI.py:872 flatcamGUI/FlatCAMGUI.py:1722 +#: flatcamGUI/FlatCAMGUI.py:2581 +msgid "Set Origin" +msgstr "Imposta origine" + +#: flatcamGUI/FlatCAMGUI.py:874 +msgid "Move to Origin" +msgstr "Sposta su origine" + +#: flatcamGUI/FlatCAMGUI.py:877 flatcamGUI/FlatCAMGUI.py:2583 +msgid "Jump to Location" +msgstr "Vai a posizione" + +#: flatcamGUI/FlatCAMGUI.py:879 flatcamGUI/FlatCAMGUI.py:1734 +#: flatcamGUI/FlatCAMGUI.py:2585 +msgid "Locate in Object" +msgstr "Trova nell'oggetto" + +#: flatcamGUI/FlatCAMGUI.py:885 flatcamGUI/FlatCAMGUI.py:2591 +msgid "&Replot" +msgstr "&Ridisegna" + +#: flatcamGUI/FlatCAMGUI.py:887 flatcamGUI/FlatCAMGUI.py:2593 +msgid "&Clear plot" +msgstr "&Cancella plot" + +#: flatcamGUI/FlatCAMGUI.py:889 flatcamGUI/FlatCAMGUI.py:1725 +#: flatcamGUI/FlatCAMGUI.py:2595 +msgid "Zoom In" +msgstr "Zoom In" + +#: flatcamGUI/FlatCAMGUI.py:891 flatcamGUI/FlatCAMGUI.py:1725 +#: flatcamGUI/FlatCAMGUI.py:2597 +msgid "Zoom Out" +msgstr "Zoom Out" + +#: flatcamGUI/FlatCAMGUI.py:893 flatcamGUI/FlatCAMGUI.py:1724 +#: flatcamGUI/FlatCAMGUI.py:2185 flatcamGUI/FlatCAMGUI.py:2599 +msgid "Zoom Fit" +msgstr "Zoom Tutto" + +#: flatcamGUI/FlatCAMGUI.py:901 flatcamGUI/FlatCAMGUI.py:2605 +msgid "&Command Line" +msgstr "Riga &Comandi" + +#: flatcamGUI/FlatCAMGUI.py:913 flatcamGUI/FlatCAMGUI.py:2617 +msgid "2Sided Tool" +msgstr "Strumento 2 facce" + +#: flatcamGUI/FlatCAMGUI.py:915 flatcamGUI/FlatCAMGUI.py:1740 +#: flatcamGUI/FlatCAMGUI.py:2619 +msgid "Align Objects Tool" +msgstr "Strumento allinea oggetti" + +#: flatcamGUI/FlatCAMGUI.py:917 flatcamGUI/FlatCAMGUI.py:1741 +#: flatcamGUI/FlatCAMGUI.py:2621 flatcamTools/ToolExtractDrills.py:393 +msgid "Extract Drills Tool" +msgstr "Strumento estrai fori" + +#: flatcamGUI/FlatCAMGUI.py:920 flatcamGUI/ObjectUI.py:596 +#: flatcamTools/ToolCutOut.py:440 +msgid "Cutout Tool" +msgstr "Strumento Ritaglia" + +#: flatcamGUI/FlatCAMGUI.py:922 flatcamGUI/FlatCAMGUI.py:2626 +#: flatcamGUI/ObjectUI.py:574 flatcamGUI/ObjectUI.py:2077 +#: flatcamTools/ToolNCC.py:974 +msgid "NCC Tool" +msgstr "Strumento NCC" + +#: flatcamGUI/FlatCAMGUI.py:928 flatcamGUI/FlatCAMGUI.py:2632 +msgid "Panel Tool" +msgstr "Stromento Pannello" + +#: flatcamGUI/FlatCAMGUI.py:930 flatcamGUI/FlatCAMGUI.py:2634 +#: flatcamTools/ToolFilm.py:586 +msgid "Film Tool" +msgstr "Strumento Film" + +#: flatcamGUI/FlatCAMGUI.py:932 flatcamGUI/FlatCAMGUI.py:2636 +#: flatcamTools/ToolSolderPaste.py:553 +msgid "SolderPaste Tool" +msgstr "Strumento SolderPaste" + +#: flatcamGUI/FlatCAMGUI.py:934 flatcamGUI/FlatCAMGUI.py:2638 +#: flatcamTools/ToolSub.py:35 +msgid "Subtract Tool" +msgstr "Strumento Sottrai" + +#: flatcamGUI/FlatCAMGUI.py:936 flatcamGUI/FlatCAMGUI.py:2640 +#: flatcamTools/ToolRulesCheck.py:616 +msgid "Rules Tool" +msgstr "Strumento Righello" + +#: flatcamGUI/FlatCAMGUI.py:938 flatcamGUI/FlatCAMGUI.py:1743 +#: flatcamGUI/FlatCAMGUI.py:2642 flatcamTools/ToolOptimal.py:33 +#: flatcamTools/ToolOptimal.py:307 +msgid "Optimal Tool" +msgstr "Strumento Ottimo" + +#: flatcamGUI/FlatCAMGUI.py:943 flatcamGUI/FlatCAMGUI.py:1740 +#: flatcamGUI/FlatCAMGUI.py:2647 +msgid "Calculators Tool" +msgstr "Strumento Calcolatrici" + +#: flatcamGUI/FlatCAMGUI.py:947 flatcamGUI/FlatCAMGUI.py:1744 +#: flatcamGUI/FlatCAMGUI.py:2651 flatcamTools/ToolQRCode.py:43 +#: flatcamTools/ToolQRCode.py:382 +msgid "QRCode Tool" +msgstr "Strumento QRCode" + +#: flatcamGUI/FlatCAMGUI.py:949 flatcamGUI/FlatCAMGUI.py:2653 +#: flatcamTools/ToolCopperThieving.py:39 flatcamTools/ToolCopperThieving.py:568 +msgid "Copper Thieving Tool" +msgstr "Strumento deposito rame" + +#: flatcamGUI/FlatCAMGUI.py:952 flatcamGUI/FlatCAMGUI.py:1741 +#: flatcamGUI/FlatCAMGUI.py:2656 flatcamTools/ToolFiducials.py:33 +#: flatcamTools/ToolFiducials.py:395 +msgid "Fiducials Tool" +msgstr "Strumento Fiducial" + +#: flatcamGUI/FlatCAMGUI.py:954 flatcamGUI/FlatCAMGUI.py:2658 +#: flatcamTools/ToolCalibration.py:37 flatcamTools/ToolCalibration.py:759 +msgid "Calibration Tool" +msgstr "Strumento Calibrazione" + +#: flatcamGUI/FlatCAMGUI.py:956 flatcamGUI/FlatCAMGUI.py:1741 +#: flatcamGUI/FlatCAMGUI.py:2660 +msgid "Punch Gerber Tool" +msgstr "Strumento punzone gerber" + +#: flatcamGUI/FlatCAMGUI.py:958 flatcamGUI/FlatCAMGUI.py:2662 +#: flatcamTools/ToolInvertGerber.py:31 +msgid "Invert Gerber Tool" +msgstr "Strumento inverti gerber" + +#: flatcamGUI/FlatCAMGUI.py:964 flatcamGUI/FlatCAMGUI.py:990 +#: flatcamGUI/FlatCAMGUI.py:1042 flatcamGUI/FlatCAMGUI.py:2668 +#: flatcamGUI/FlatCAMGUI.py:2746 +msgid "Select" +msgstr "Seleziona" + +#: flatcamGUI/FlatCAMGUI.py:966 flatcamGUI/FlatCAMGUI.py:2670 +msgid "Add Drill Hole" +msgstr "Aggiungi Foro" + +#: flatcamGUI/FlatCAMGUI.py:968 flatcamGUI/FlatCAMGUI.py:2672 +msgid "Add Drill Hole Array" +msgstr "Aggiungi matrice Fori" + +#: flatcamGUI/FlatCAMGUI.py:970 flatcamGUI/FlatCAMGUI.py:2020 +#: flatcamGUI/FlatCAMGUI.py:2273 flatcamGUI/FlatCAMGUI.py:2676 +msgid "Add Slot" +msgstr "Aggiungi Slot" + +#: flatcamGUI/FlatCAMGUI.py:972 flatcamGUI/FlatCAMGUI.py:2019 +#: flatcamGUI/FlatCAMGUI.py:2275 flatcamGUI/FlatCAMGUI.py:2678 +msgid "Add Slot Array" +msgstr "Aggiungi matrici Slot" + +#: flatcamGUI/FlatCAMGUI.py:974 flatcamGUI/FlatCAMGUI.py:2278 +#: flatcamGUI/FlatCAMGUI.py:2674 +msgid "Resize Drill" +msgstr "Ridimensiona Foro" + +#: flatcamGUI/FlatCAMGUI.py:978 flatcamGUI/FlatCAMGUI.py:2682 +msgid "Copy Drill" +msgstr "Copia Foro" + +#: flatcamGUI/FlatCAMGUI.py:980 flatcamGUI/FlatCAMGUI.py:2684 +msgid "Delete Drill" +msgstr "Cancella Foro" + +#: flatcamGUI/FlatCAMGUI.py:984 flatcamGUI/FlatCAMGUI.py:2688 +msgid "Move Drill" +msgstr "Sposta Foro" + +#: flatcamGUI/FlatCAMGUI.py:992 flatcamGUI/FlatCAMGUI.py:2696 +msgid "Add Circle" +msgstr "Aggiungi Cerchio" + +#: flatcamGUI/FlatCAMGUI.py:994 flatcamGUI/FlatCAMGUI.py:2698 +msgid "Add Arc" +msgstr "Aggiungi Arco" + +#: flatcamGUI/FlatCAMGUI.py:996 flatcamGUI/FlatCAMGUI.py:2700 +msgid "Add Rectangle" +msgstr "Aggiungi rettangolo" + +#: flatcamGUI/FlatCAMGUI.py:1000 flatcamGUI/FlatCAMGUI.py:2704 +msgid "Add Path" +msgstr "Aggiungi Percorso" + +#: flatcamGUI/FlatCAMGUI.py:1002 flatcamGUI/FlatCAMGUI.py:2706 +msgid "Add Polygon" +msgstr "Aggiungi Poligono" + +#: flatcamGUI/FlatCAMGUI.py:1005 flatcamGUI/FlatCAMGUI.py:2709 +msgid "Add Text" +msgstr "Aggiungi Testo" + +#: flatcamGUI/FlatCAMGUI.py:1007 flatcamGUI/FlatCAMGUI.py:2711 +msgid "Add Buffer" +msgstr "Aggiungi Buffer" + +#: flatcamGUI/FlatCAMGUI.py:1009 flatcamGUI/FlatCAMGUI.py:2713 +msgid "Paint Shape" +msgstr "Disegna Figura" + +#: flatcamGUI/FlatCAMGUI.py:1011 flatcamGUI/FlatCAMGUI.py:1068 +#: flatcamGUI/FlatCAMGUI.py:2214 flatcamGUI/FlatCAMGUI.py:2259 +#: flatcamGUI/FlatCAMGUI.py:2715 flatcamGUI/FlatCAMGUI.py:2771 +msgid "Eraser" +msgstr "Gomma" + +#: flatcamGUI/FlatCAMGUI.py:1015 flatcamGUI/FlatCAMGUI.py:2719 +msgid "Polygon Union" +msgstr "Unione Poligono" + +#: flatcamGUI/FlatCAMGUI.py:1017 flatcamGUI/FlatCAMGUI.py:2721 +msgid "Polygon Explode" +msgstr "Explodi Poligono" + +#: flatcamGUI/FlatCAMGUI.py:1020 flatcamGUI/FlatCAMGUI.py:2724 +msgid "Polygon Intersection" +msgstr "Interseca Poligono" + +#: flatcamGUI/FlatCAMGUI.py:1022 flatcamGUI/FlatCAMGUI.py:2726 +msgid "Polygon Subtraction" +msgstr "Sottrai Poligono" + +#: flatcamGUI/FlatCAMGUI.py:1026 flatcamGUI/FlatCAMGUI.py:2730 +msgid "Cut Path" +msgstr "Taglia Percorso" + +#: flatcamGUI/FlatCAMGUI.py:1028 +msgid "Copy Shape(s)" +msgstr "Copia Forma(e)" + +#: flatcamGUI/FlatCAMGUI.py:1031 +msgid "Delete Shape '-'" +msgstr "Cancella Forme '-'" + +#: flatcamGUI/FlatCAMGUI.py:1033 flatcamGUI/FlatCAMGUI.py:1076 +#: flatcamGUI/FlatCAMGUI.py:2226 flatcamGUI/FlatCAMGUI.py:2263 +#: flatcamGUI/FlatCAMGUI.py:2736 flatcamGUI/FlatCAMGUI.py:2779 +#: flatcamGUI/ObjectUI.py:109 +msgid "Transformations" +msgstr "Trasformazioni" + +#: flatcamGUI/FlatCAMGUI.py:1036 +msgid "Move Objects " +msgstr "Sposta Oggetti " + +#: flatcamGUI/FlatCAMGUI.py:1044 flatcamGUI/FlatCAMGUI.py:2139 +#: flatcamGUI/FlatCAMGUI.py:2748 +msgid "Add Pad" +msgstr "Aggiungi Pad" + +#: flatcamGUI/FlatCAMGUI.py:1048 flatcamGUI/FlatCAMGUI.py:2140 +#: flatcamGUI/FlatCAMGUI.py:2752 +msgid "Add Track" +msgstr "Aggiungi Traccia" + +#: flatcamGUI/FlatCAMGUI.py:1050 flatcamGUI/FlatCAMGUI.py:2139 +#: flatcamGUI/FlatCAMGUI.py:2754 +msgid "Add Region" +msgstr "Aggiungi Regione" + +#: flatcamGUI/FlatCAMGUI.py:1052 flatcamGUI/FlatCAMGUI.py:2245 +#: flatcamGUI/FlatCAMGUI.py:2756 +msgid "Poligonize" +msgstr "Poligonizza" + +#: flatcamGUI/FlatCAMGUI.py:1055 flatcamGUI/FlatCAMGUI.py:2247 +#: flatcamGUI/FlatCAMGUI.py:2759 +msgid "SemiDisc" +msgstr "SemiDisco" + +#: flatcamGUI/FlatCAMGUI.py:1057 flatcamGUI/FlatCAMGUI.py:2249 +#: flatcamGUI/FlatCAMGUI.py:2761 +msgid "Disc" +msgstr "Disco" + +#: flatcamGUI/FlatCAMGUI.py:1065 flatcamGUI/FlatCAMGUI.py:2257 +#: flatcamGUI/FlatCAMGUI.py:2769 +msgid "Mark Area" +msgstr "Marchia Area" + +#: flatcamGUI/FlatCAMGUI.py:1079 flatcamGUI/FlatCAMGUI.py:2139 +#: flatcamGUI/FlatCAMGUI.py:2230 flatcamGUI/FlatCAMGUI.py:2293 +#: flatcamGUI/FlatCAMGUI.py:2782 flatcamTools/ToolMove.py:27 +msgid "Move" +msgstr "Sposta" + +#: flatcamGUI/FlatCAMGUI.py:1087 flatcamGUI/FlatCAMGUI.py:2791 +msgid "Snap to grid" +msgstr "Aggancia alla griglia" + +#: flatcamGUI/FlatCAMGUI.py:1090 flatcamGUI/FlatCAMGUI.py:2794 +msgid "Grid X snapping distance" +msgstr "Distanza aggancio gliglia X" + +#: flatcamGUI/FlatCAMGUI.py:1095 flatcamGUI/FlatCAMGUI.py:2799 +msgid "Grid Y snapping distance" +msgstr "Distanza aggancio gliglia Y" + +#: flatcamGUI/FlatCAMGUI.py:1101 flatcamGUI/FlatCAMGUI.py:2805 +msgid "" +"When active, value on Grid_X\n" +"is copied to the Grid_Y value." +msgstr "" +"Se attivo, valore su Grid_X\n" +"sarà copiato nel valore Grid_Y." + +#: flatcamGUI/FlatCAMGUI.py:1108 flatcamGUI/FlatCAMGUI.py:2812 +msgid "Snap to corner" +msgstr "Aggancia all'angolo" + +#: flatcamGUI/FlatCAMGUI.py:1112 flatcamGUI/FlatCAMGUI.py:2816 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:78 +msgid "Max. magnet distance" +msgstr "Massima distanza magnete" + +#: flatcamGUI/FlatCAMGUI.py:1149 +msgid "Selected" +msgstr "Selezionato" + +#: flatcamGUI/FlatCAMGUI.py:1177 flatcamGUI/FlatCAMGUI.py:1185 +msgid "Plot Area" +msgstr "Disegna Area" + +#: flatcamGUI/FlatCAMGUI.py:1212 +msgid "General" +msgstr "Generale" + +#: flatcamGUI/FlatCAMGUI.py:1227 flatcamTools/ToolCopperThieving.py:74 +#: flatcamTools/ToolDblSided.py:64 flatcamTools/ToolExtractDrills.py:61 +#: flatcamTools/ToolInvertGerber.py:72 flatcamTools/ToolOptimal.py:71 +#: flatcamTools/ToolPunchGerber.py:64 +msgid "GERBER" +msgstr "GERBER" + +#: flatcamGUI/FlatCAMGUI.py:1237 flatcamTools/ToolDblSided.py:92 +msgid "EXCELLON" +msgstr "EXCELLON" + +#: flatcamGUI/FlatCAMGUI.py:1247 flatcamTools/ToolDblSided.py:120 +msgid "GEOMETRY" +msgstr "GEOMETRIA" + +#: flatcamGUI/FlatCAMGUI.py:1257 +msgid "CNC-JOB" +msgstr "CNC-JOB" + +#: flatcamGUI/FlatCAMGUI.py:1266 flatcamGUI/ObjectUI.py:563 +#: flatcamGUI/ObjectUI.py:2052 +msgid "TOOLS" +msgstr "UTENSILI" + +#: flatcamGUI/FlatCAMGUI.py:1275 +msgid "TOOLS 2" +msgstr "UTENSILI 2" + +#: flatcamGUI/FlatCAMGUI.py:1285 +msgid "UTILITIES" +msgstr "UTILITA'" + +#: flatcamGUI/FlatCAMGUI.py:1302 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:192 +msgid "Restore Defaults" +msgstr "Ripristina Defaults" + +#: flatcamGUI/FlatCAMGUI.py:1305 +msgid "" +"Restore the entire set of default values\n" +"to the initial values loaded after first launch." +msgstr "" +"Ripristina l'intero set di valori predefiniti\n" +"ai valori iniziali caricati dopo il primo avvio." + +#: flatcamGUI/FlatCAMGUI.py:1310 +msgid "Open Pref Folder" +msgstr "Aprii cartella preferenze" + +#: flatcamGUI/FlatCAMGUI.py:1313 +msgid "Open the folder where FlatCAM save the preferences files." +msgstr "Apri la cartella dove FlatCAM salva il file delle preferenze." + +#: flatcamGUI/FlatCAMGUI.py:1317 flatcamGUI/FlatCAMGUI.py:2517 +msgid "Clear GUI Settings" +msgstr "Pulisci impostazioni GUI" + +#: flatcamGUI/FlatCAMGUI.py:1321 +msgid "" +"Clear the GUI settings for FlatCAM,\n" +"such as: layout, gui state, style, hdpi support etc." +msgstr "" +"Cancella le impostazioni della GUI per FlatCAM,\n" +"come: layout, stato gui, stile, supporto hdpi ecc." + +#: flatcamGUI/FlatCAMGUI.py:1332 +msgid "Apply" +msgstr "Applica" + +#: flatcamGUI/FlatCAMGUI.py:1335 +msgid "Apply the current preferences without saving to a file." +msgstr "Applica le impostazioni correnti senza salvarle su file." + +#: flatcamGUI/FlatCAMGUI.py:1342 +msgid "" +"Save the current settings in the 'current_defaults' file\n" +"which is the file storing the working default preferences." +msgstr "" +"Salva le impostazioni correnti nel file \"current_defaults\",\n" +"file che memorizza le preferenze predefinite di lavoro." + +#: flatcamGUI/FlatCAMGUI.py:1350 +msgid "Will not save the changes and will close the preferences window." +msgstr "Non salverà le modifiche e chiuderà la finestra delle preferenze." + +#: flatcamGUI/FlatCAMGUI.py:1719 +msgid "SHOW SHORTCUT LIST" +msgstr "Lista tasti Shortcuts" + +#: flatcamGUI/FlatCAMGUI.py:1719 +msgid "Switch to Project Tab" +msgstr "Vai alla Tab Progetto" + +#: flatcamGUI/FlatCAMGUI.py:1719 +msgid "Switch to Selected Tab" +msgstr "Vai alla Tab Seleziona" + +#: flatcamGUI/FlatCAMGUI.py:1720 +msgid "Switch to Tool Tab" +msgstr "Vai alla Tab Strumenti" + +#: flatcamGUI/FlatCAMGUI.py:1721 +msgid "New Gerber" +msgstr "Nuovo Gerber" + +#: flatcamGUI/FlatCAMGUI.py:1721 +msgid "Edit Object (if selected)" +msgstr "Modifica oggetto (se selezionato)" + +#: flatcamGUI/FlatCAMGUI.py:1721 +msgid "Jump to Coordinates" +msgstr "Vai alle coordinate" + +#: flatcamGUI/FlatCAMGUI.py:1722 +msgid "New Excellon" +msgstr "Nuovo Excellon" + +#: flatcamGUI/FlatCAMGUI.py:1722 +msgid "Move Obj" +msgstr "Sposta Oggetto" + +#: flatcamGUI/FlatCAMGUI.py:1722 +msgid "New Geometry" +msgstr "Nuova Geometria" + +#: flatcamGUI/FlatCAMGUI.py:1722 +msgid "Change Units" +msgstr "Cambia unità" + +#: flatcamGUI/FlatCAMGUI.py:1723 +msgid "Open Properties Tool" +msgstr "Apri Strumento Proprietà" + +#: flatcamGUI/FlatCAMGUI.py:1723 +msgid "Rotate by 90 degree CW" +msgstr "Ruota di 90 gradi orari" + +#: flatcamGUI/FlatCAMGUI.py:1723 +msgid "Shell Toggle" +msgstr "Attiva/Disattiva Shell" + +#: flatcamGUI/FlatCAMGUI.py:1724 +msgid "" +"Add a Tool (when in Geometry Selected Tab or in Tools NCC or Tools Paint)" +msgstr "" +"Aggiungi utensile (in Tab Geometrie selezionate o in NCC o Strumento Paint)" + +#: flatcamGUI/FlatCAMGUI.py:1725 +msgid "Flip on X_axis" +msgstr "Capovolsi sull'asse X" + +#: flatcamGUI/FlatCAMGUI.py:1725 +msgid "Flip on Y_axis" +msgstr "Capovolsi sull'asse Y" + +#: flatcamGUI/FlatCAMGUI.py:1728 +msgid "Copy Obj" +msgstr "Copia Oggetto" + +#: flatcamGUI/FlatCAMGUI.py:1728 +msgid "Open Tools Database" +msgstr "Apri DataBase Utensili" + +#: flatcamGUI/FlatCAMGUI.py:1729 +msgid "Open Excellon File" +msgstr "Apri file Excellon" + +#: flatcamGUI/FlatCAMGUI.py:1729 +msgid "Open Gerber File" +msgstr "Apri file Gerber" + +#: flatcamGUI/FlatCAMGUI.py:1729 +msgid "New Project" +msgstr "Nuovo Progetto" + +#: flatcamGUI/FlatCAMGUI.py:1730 flatcamTools/ToolPDF.py:42 +msgid "PDF Import Tool" +msgstr "Strumento importazione PDF" + +#: flatcamGUI/FlatCAMGUI.py:1730 +msgid "Save Project" +msgstr "Salva progetto" + +#: flatcamGUI/FlatCAMGUI.py:1730 +msgid "Toggle Plot Area" +msgstr "Attiva/disattiva Area disegno" + +#: flatcamGUI/FlatCAMGUI.py:1733 +msgid "Copy Obj_Name" +msgstr "Copia Nome Oggetto" + +#: flatcamGUI/FlatCAMGUI.py:1734 +msgid "Toggle Code Editor" +msgstr "Attiva/Disattiva Editor codice" + +#: flatcamGUI/FlatCAMGUI.py:1734 +msgid "Toggle the axis" +msgstr "Commuta assi" + +#: flatcamGUI/FlatCAMGUI.py:1734 flatcamGUI/FlatCAMGUI.py:1933 +#: flatcamGUI/FlatCAMGUI.py:2020 flatcamGUI/FlatCAMGUI.py:2142 +msgid "Distance Minimum Tool" +msgstr "Strumento distanza minima" + +#: flatcamGUI/FlatCAMGUI.py:1735 +msgid "Open Preferences Window" +msgstr "Apri finestra preferenze" + +#: flatcamGUI/FlatCAMGUI.py:1736 +msgid "Rotate by 90 degree CCW" +msgstr "Ruota 90 gradi antiorari" + +#: flatcamGUI/FlatCAMGUI.py:1736 +msgid "Run a Script" +msgstr "Esegui Script" + +#: flatcamGUI/FlatCAMGUI.py:1736 +msgid "Toggle the workspace" +msgstr "(Dis)abilita area di lavoro" + +#: flatcamGUI/FlatCAMGUI.py:1736 +msgid "Skew on X axis" +msgstr "Inclina sull'asse X" + +#: flatcamGUI/FlatCAMGUI.py:1737 +msgid "Skew on Y axis" +msgstr "Inclina sull'asse Y" + +#: flatcamGUI/FlatCAMGUI.py:1740 +msgid "2-Sided PCB Tool" +msgstr "Strumento PCB doppia faccia" + +#: flatcamGUI/FlatCAMGUI.py:1740 +msgid "Transformations Tool" +msgstr "Strumento Trasformazioni" + +#: flatcamGUI/FlatCAMGUI.py:1742 +msgid "Solder Paste Dispensing Tool" +msgstr "Strumento dispensa solder paste" + +#: flatcamGUI/FlatCAMGUI.py:1743 +msgid "Film PCB Tool" +msgstr "Strumento Film PCB" + +#: flatcamGUI/FlatCAMGUI.py:1743 +msgid "Non-Copper Clearing Tool" +msgstr "Strumento No Copper Clearing (No Rame)" + +#: flatcamGUI/FlatCAMGUI.py:1744 +msgid "Paint Area Tool" +msgstr "Strumento disegna area" + +#: flatcamGUI/FlatCAMGUI.py:1744 +msgid "Rules Check Tool" +msgstr "Strumento controllo regole" + +#: flatcamGUI/FlatCAMGUI.py:1745 +msgid "View File Source" +msgstr "Vedi file sorgente" + +#: flatcamGUI/FlatCAMGUI.py:1746 +msgid "Cutout PCB Tool" +msgstr "Strumento ritaglia PCB" + +#: flatcamGUI/FlatCAMGUI.py:1746 +msgid "Enable all Plots" +msgstr "Abilita tutti i plot" + +#: flatcamGUI/FlatCAMGUI.py:1746 +msgid "Disable all Plots" +msgstr "Disabilita tutti i plot" + +#: flatcamGUI/FlatCAMGUI.py:1746 +msgid "Disable Non-selected Plots" +msgstr "Disabilita i plot non selezionati" + +#: flatcamGUI/FlatCAMGUI.py:1747 +msgid "Toggle Full Screen" +msgstr "(Dis)abilita schermo intero" + +#: flatcamGUI/FlatCAMGUI.py:1750 +msgid "Abort current task (gracefully)" +msgstr "Annulla l'azione corrente" + +#: flatcamGUI/FlatCAMGUI.py:1753 +msgid "Save Project As" +msgstr "Salva Progetto con nome" + +#: flatcamGUI/FlatCAMGUI.py:1754 +msgid "" +"Paste Special. Will convert a Windows path style to the one required in Tcl " +"Shell" +msgstr "" +"Incolla speciale. Converte uno stile di percorso Windows in quello richiesto " +"in Tcl Shell" + +#: flatcamGUI/FlatCAMGUI.py:1757 +msgid "Open Online Manual" +msgstr "Apri manuale online" + +#: flatcamGUI/FlatCAMGUI.py:1758 +msgid "Open Online Tutorials" +msgstr "Apri tutorial online" + +#: flatcamGUI/FlatCAMGUI.py:1758 +msgid "Refresh Plots" +msgstr "Aggiorna plot" + +#: flatcamGUI/FlatCAMGUI.py:1758 flatcamTools/ToolSolderPaste.py:509 +msgid "Delete Object" +msgstr "Cancella oggetto" + +#: flatcamGUI/FlatCAMGUI.py:1758 +msgid "Alternate: Delete Tool" +msgstr "Alternativo: strumento elimina" + +#: flatcamGUI/FlatCAMGUI.py:1759 +msgid "(left to Key_1)Toggle Notebook Area (Left Side)" +msgstr "(da sinistra a Key_1) (Dis)attiva area blocco note (lato sinistro)" + +#: flatcamGUI/FlatCAMGUI.py:1759 +msgid "En(Dis)able Obj Plot" +msgstr "(Dis)abilita il plot degli oggetti" + +#: flatcamGUI/FlatCAMGUI.py:1760 +msgid "Deselects all objects" +msgstr "Deseleziona oggetti" + +#: flatcamGUI/FlatCAMGUI.py:1774 +msgid "Editor Shortcut list" +msgstr "Lista shortcut dell'editor" + +#: flatcamGUI/FlatCAMGUI.py:1928 +msgid "GEOMETRY EDITOR" +msgstr "EDITOR GEOMETRIE" + +#: flatcamGUI/FlatCAMGUI.py:1928 +msgid "Draw an Arc" +msgstr "Disegna un arco" + +#: flatcamGUI/FlatCAMGUI.py:1928 +msgid "Copy Geo Item" +msgstr "Copia elemento Geometria" + +#: flatcamGUI/FlatCAMGUI.py:1929 +msgid "Within Add Arc will toogle the ARC direction: CW or CCW" +msgstr "" +"All'interno di Aggiungi arco verrà visualizzata la direzione: oraria CW o " +"antioraria CCW" + +#: flatcamGUI/FlatCAMGUI.py:1929 +msgid "Polygon Intersection Tool" +msgstr "Strumento intersezione poligoni" + +#: flatcamGUI/FlatCAMGUI.py:1930 +msgid "Geo Paint Tool" +msgstr "Strumento disegno geometria" + +#: flatcamGUI/FlatCAMGUI.py:1930 flatcamGUI/FlatCAMGUI.py:2019 +#: flatcamGUI/FlatCAMGUI.py:2139 +msgid "Jump to Location (x, y)" +msgstr "Vai alla posizione (x, y)" + +#: flatcamGUI/FlatCAMGUI.py:1930 +msgid "Toggle Corner Snap" +msgstr "(Dis)abilita l'aggancio agli angoli" + +#: flatcamGUI/FlatCAMGUI.py:1930 +msgid "Move Geo Item" +msgstr "Sposta elemento Geometria" + +#: flatcamGUI/FlatCAMGUI.py:1931 +msgid "Within Add Arc will cycle through the ARC modes" +msgstr "All'interno di Aggiungi arco verranno scorse le modalità degli archi" + +#: flatcamGUI/FlatCAMGUI.py:1931 +msgid "Draw a Polygon" +msgstr "Disegna un poligono" + +#: flatcamGUI/FlatCAMGUI.py:1931 +msgid "Draw a Circle" +msgstr "Disegna un cerchio" + +#: flatcamGUI/FlatCAMGUI.py:1932 +msgid "Draw a Path" +msgstr "Disegna un persorso" + +#: flatcamGUI/FlatCAMGUI.py:1932 +msgid "Draw Rectangle" +msgstr "Disegna un rettangolo" + +#: flatcamGUI/FlatCAMGUI.py:1932 +msgid "Polygon Subtraction Tool" +msgstr "Strumento sottrazione poligono" + +#: flatcamGUI/FlatCAMGUI.py:1932 +msgid "Add Text Tool" +msgstr "Strumento aggiungi testo" + +#: flatcamGUI/FlatCAMGUI.py:1933 +msgid "Polygon Union Tool" +msgstr "Strumento unisci poligono" + +#: flatcamGUI/FlatCAMGUI.py:1933 +msgid "Flip shape on X axis" +msgstr "Ribalta forme sull'asse X" + +#: flatcamGUI/FlatCAMGUI.py:1933 +msgid "Flip shape on Y axis" +msgstr "Ribalta forme sull'asse Y" + +#: flatcamGUI/FlatCAMGUI.py:1934 +msgid "Skew shape on X axis" +msgstr "Inclina forme sull'asse X" + +#: flatcamGUI/FlatCAMGUI.py:1934 +msgid "Skew shape on Y axis" +msgstr "Inclina forme sull'asse Y" + +#: flatcamGUI/FlatCAMGUI.py:1934 +msgid "Editor Transformation Tool" +msgstr "Strumento Edito trasformazione" + +#: flatcamGUI/FlatCAMGUI.py:1935 +msgid "Offset shape on X axis" +msgstr "Applica offset alle forme sull'asse X" + +#: flatcamGUI/FlatCAMGUI.py:1935 +msgid "Offset shape on Y axis" +msgstr "Applica offset alle forme sull'asse Y" + +#: flatcamGUI/FlatCAMGUI.py:1936 flatcamGUI/FlatCAMGUI.py:2022 +#: flatcamGUI/FlatCAMGUI.py:2144 +msgid "Save Object and Exit Editor" +msgstr "Salva oggetto ed esci dall'Editor" + +#: flatcamGUI/FlatCAMGUI.py:1936 +msgid "Polygon Cut Tool" +msgstr "Strumento taglia poligono" + +#: flatcamGUI/FlatCAMGUI.py:1937 +msgid "Rotate Geometry" +msgstr "Ruota Geometria" + +#: flatcamGUI/FlatCAMGUI.py:1937 +msgid "Finish drawing for certain tools" +msgstr "Completa disegno per alcuni utensili" + +#: flatcamGUI/FlatCAMGUI.py:1937 flatcamGUI/FlatCAMGUI.py:2022 +#: flatcamGUI/FlatCAMGUI.py:2142 +msgid "Abort and return to Select" +msgstr "Annulla e torna a Seleziona" + +#: flatcamGUI/FlatCAMGUI.py:1938 flatcamGUI/FlatCAMGUI.py:2734 +msgid "Delete Shape" +msgstr "Cancella forma" + +#: flatcamGUI/FlatCAMGUI.py:2018 +msgid "EXCELLON EDITOR" +msgstr "EDITOR EXCELLON" + +#: flatcamGUI/FlatCAMGUI.py:2018 +msgid "Copy Drill(s)" +msgstr "Copia foro(i)" + +#: flatcamGUI/FlatCAMGUI.py:2018 flatcamGUI/FlatCAMGUI.py:2268 +msgid "Add Drill" +msgstr "Aggiungi foro" + +#: flatcamGUI/FlatCAMGUI.py:2019 +msgid "Move Drill(s)" +msgstr "Sposta foro(i)" + +#: flatcamGUI/FlatCAMGUI.py:2020 +msgid "Add a new Tool" +msgstr "Aggiungi un nuovo TOOL" + +#: flatcamGUI/FlatCAMGUI.py:2021 +msgid "Delete Drill(s)" +msgstr "Cancella foro(i)" + +#: flatcamGUI/FlatCAMGUI.py:2021 +msgid "Alternate: Delete Tool(s)" +msgstr "Alternativo: strumenti di cancellazione" + +#: flatcamGUI/FlatCAMGUI.py:2138 +msgid "GERBER EDITOR" +msgstr "EDITOR GERBER" + +#: flatcamGUI/FlatCAMGUI.py:2138 +msgid "Add Disc" +msgstr "Aggiungi disco" + +#: flatcamGUI/FlatCAMGUI.py:2138 +msgid "Add SemiDisc" +msgstr "Aggiungi semidisco" + +#: flatcamGUI/FlatCAMGUI.py:2140 +msgid "Within Track & Region Tools will cycle in REVERSE the bend modes" +msgstr "" +"All'interno dello strumento Tracce & Regioni le modalità piegature " +"scorreranno all'indietro" + +#: flatcamGUI/FlatCAMGUI.py:2141 +msgid "Within Track & Region Tools will cycle FORWARD the bend modes" +msgstr "" +"All'interno dello strumento Tracce & Regioni le modalità piegature " +"scorreranno in avanti" + +#: flatcamGUI/FlatCAMGUI.py:2142 +msgid "Alternate: Delete Apertures" +msgstr "Alternativo: cancella aperture" + +#: flatcamGUI/FlatCAMGUI.py:2143 +msgid "Eraser Tool" +msgstr "Strumento cancella" + +#: flatcamGUI/FlatCAMGUI.py:2144 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:220 +msgid "Mark Area Tool" +msgstr "Strumento marca area" + +#: flatcamGUI/FlatCAMGUI.py:2144 +msgid "Poligonize Tool" +msgstr "Strumento Poligonizza" + +#: flatcamGUI/FlatCAMGUI.py:2144 +msgid "Transformation Tool" +msgstr "Strumento trasformazione" + +#: flatcamGUI/FlatCAMGUI.py:2161 +msgid "Toggle Visibility" +msgstr "(Dis)abilita visibilità" + +#: flatcamGUI/FlatCAMGUI.py:2167 +msgid "New" +msgstr "Nuovo" + +#: flatcamGUI/FlatCAMGUI.py:2169 flatcamGUI/ObjectUI.py:450 +#: flatcamObjects/FlatCAMGerber.py:239 flatcamObjects/FlatCAMGerber.py:327 +#: flatcamTools/ToolCalibration.py:631 flatcamTools/ToolCalibration.py:648 +#: flatcamTools/ToolCalibration.py:815 flatcamTools/ToolCopperThieving.py:144 +#: flatcamTools/ToolCopperThieving.py:158 +#: flatcamTools/ToolCopperThieving.py:604 flatcamTools/ToolCutOut.py:92 +#: flatcamTools/ToolDblSided.py:226 flatcamTools/ToolFilm.py:69 +#: flatcamTools/ToolFilm.py:102 flatcamTools/ToolFilm.py:549 +#: flatcamTools/ToolFilm.py:557 flatcamTools/ToolImage.py:49 +#: flatcamTools/ToolImage.py:271 flatcamTools/ToolNCC.py:95 +#: flatcamTools/ToolNCC.py:558 flatcamTools/ToolNCC.py:1295 +#: flatcamTools/ToolPaint.py:502 flatcamTools/ToolPaint.py:706 +#: flatcamTools/ToolPanelize.py:118 flatcamTools/ToolPanelize.py:374 +#: flatcamTools/ToolPanelize.py:391 +msgid "Geometry" +msgstr "Geometria" + +#: flatcamGUI/FlatCAMGUI.py:2173 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:99 +#: flatcamTools/ToolAlignObjects.py:74 flatcamTools/ToolAlignObjects.py:110 +#: flatcamTools/ToolCalibration.py:197 flatcamTools/ToolCalibration.py:631 +#: flatcamTools/ToolCalibration.py:648 flatcamTools/ToolCalibration.py:807 +#: flatcamTools/ToolCalibration.py:815 flatcamTools/ToolCopperThieving.py:144 +#: flatcamTools/ToolCopperThieving.py:158 +#: flatcamTools/ToolCopperThieving.py:604 flatcamTools/ToolDblSided.py:225 +#: flatcamTools/ToolFilm.py:359 flatcamTools/ToolNCC.py:558 +#: flatcamTools/ToolNCC.py:1295 flatcamTools/ToolPaint.py:502 +#: flatcamTools/ToolPaint.py:706 flatcamTools/ToolPanelize.py:374 +#: flatcamTools/ToolPunchGerber.py:149 flatcamTools/ToolPunchGerber.py:164 +msgid "Excellon" +msgstr "Excellon" + +#: flatcamGUI/FlatCAMGUI.py:2180 +msgid "Grids" +msgstr "Griglie" + +#: flatcamGUI/FlatCAMGUI.py:2187 +msgid "Clear Plot" +msgstr "Svuota Plot" + +#: flatcamGUI/FlatCAMGUI.py:2189 +msgid "Replot" +msgstr "Ridisegna" + +#: flatcamGUI/FlatCAMGUI.py:2193 +msgid "Geo Editor" +msgstr "Edito geometria" + +#: flatcamGUI/FlatCAMGUI.py:2195 +msgid "Path" +msgstr "Percorso" + +#: flatcamGUI/FlatCAMGUI.py:2197 +msgid "Rectangle" +msgstr "Rettangolo" + +#: flatcamGUI/FlatCAMGUI.py:2200 +msgid "Circle" +msgstr "Cerchio" + +#: flatcamGUI/FlatCAMGUI.py:2204 +msgid "Arc" +msgstr "Arco" + +#: flatcamGUI/FlatCAMGUI.py:2218 +msgid "Union" +msgstr "Unione" + +#: flatcamGUI/FlatCAMGUI.py:2220 +msgid "Intersection" +msgstr "Intersezione" + +#: flatcamGUI/FlatCAMGUI.py:2222 +msgid "Subtraction" +msgstr "Sottrazione" + +#: flatcamGUI/FlatCAMGUI.py:2224 flatcamGUI/ObjectUI.py:2141 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:56 +msgid "Cut" +msgstr "Taglia" + +#: flatcamGUI/FlatCAMGUI.py:2235 +msgid "Pad" +msgstr "Pad" + +#: flatcamGUI/FlatCAMGUI.py:2237 +msgid "Pad Array" +msgstr "Matrice di Pad" + +#: flatcamGUI/FlatCAMGUI.py:2241 +msgid "Track" +msgstr "Traccia" + +#: flatcamGUI/FlatCAMGUI.py:2243 +msgid "Region" +msgstr "RegioneRegione" + +#: flatcamGUI/FlatCAMGUI.py:2266 +msgid "Exc Editor" +msgstr "Editor Excellon" + +#: flatcamGUI/FlatCAMGUI.py:2311 +msgid "" +"Relative measurement.\n" +"Reference is last click position" +msgstr "" +"Misure relative.\n" +"Il riferimento è l'ultima posizione cliccata" + +#: flatcamGUI/FlatCAMGUI.py:2317 +msgid "" +"Absolute measurement.\n" +"Reference is (X=0, Y= 0) position" +msgstr "" +"Misure relative.\n" +"Il riferimento è la posizione (X=0, Y=0)" + +#: flatcamGUI/FlatCAMGUI.py:2419 +msgid "Lock Toolbars" +msgstr "Strumenti di blocco" + +#: flatcamGUI/FlatCAMGUI.py:2505 +msgid "FlatCAM Preferences Folder opened." +msgstr "Cartella preferenze FlatCAM aperta." + +#: flatcamGUI/FlatCAMGUI.py:2516 +msgid "Are you sure you want to delete the GUI Settings? \n" +msgstr "Sicuro di voler cancellare le impostazioni GUI?\n" + +#: flatcamGUI/FlatCAMGUI.py:2624 +msgid "&Cutout Tool" +msgstr "Strumento Ritaglia" + +#: flatcamGUI/FlatCAMGUI.py:2694 +msgid "Select 'Esc'" +msgstr "Seleziona 'Esc'" + +#: flatcamGUI/FlatCAMGUI.py:2732 +msgid "Copy Objects" +msgstr "Copia oggetti" + +#: flatcamGUI/FlatCAMGUI.py:2740 +msgid "Move Objects" +msgstr "Sposta oggetti" + +#: flatcamGUI/FlatCAMGUI.py:3363 +msgid "" +"Please first select a geometry item to be cutted\n" +"then select the geometry item that will be cutted\n" +"out of the first item. In the end press ~X~ key or\n" +"the toolbar button." +msgstr "" +"Seleziona prima un elemento di geometria da tagliare\n" +"quindi seleziona l'elemento della geometria che verrà tagliato\n" +"dal primo elemento. Alla fine premere il tasto ~ X ~ o\n" +"il pulsante della barra degli strumenti." + +#: flatcamGUI/FlatCAMGUI.py:3370 flatcamGUI/FlatCAMGUI.py:3532 +#: flatcamGUI/FlatCAMGUI.py:3577 flatcamGUI/FlatCAMGUI.py:3597 +msgid "Warning" +msgstr "Avvertenza" + +#: flatcamGUI/FlatCAMGUI.py:3527 +msgid "" +"Please select geometry items \n" +"on which to perform Intersection Tool." +msgstr "" +"Seleziona gli elementi della geometria\n" +"su cui eseguire lo strumento Intersezione." + +#: flatcamGUI/FlatCAMGUI.py:3572 +msgid "" +"Please select geometry items \n" +"on which to perform Substraction Tool." +msgstr "" +"Seleziona gli elementi della geometria\n" +"su cui eseguire lo strumento Sottrazione." + +#: flatcamGUI/FlatCAMGUI.py:3592 +msgid "" +"Please select geometry items \n" +"on which to perform union." +msgstr "" +"Seleziona gli elementi della geometria\n" +"su cui eseguire lo strumento Unione." + +#: flatcamGUI/FlatCAMGUI.py:3675 flatcamGUI/FlatCAMGUI.py:3890 +msgid "Cancelled. Nothing selected to delete." +msgstr "Cancellato. Nessuna seleziona da cancellare." + +#: flatcamGUI/FlatCAMGUI.py:3759 flatcamGUI/FlatCAMGUI.py:4006 +msgid "Cancelled. Nothing selected to copy." +msgstr "Cancellato. Nessuna seleziona da copiare." + +#: flatcamGUI/FlatCAMGUI.py:3805 flatcamGUI/FlatCAMGUI.py:4035 +msgid "Cancelled. Nothing selected to move." +msgstr "Cancellato. Nessuna seleziona da spostare." + +#: flatcamGUI/FlatCAMGUI.py:4061 +msgid "New Tool ..." +msgstr "Nuovo utensile ..." + +#: flatcamGUI/FlatCAMGUI.py:4062 flatcamTools/ToolNCC.py:924 +#: flatcamTools/ToolPaint.py:850 flatcamTools/ToolSolderPaste.py:560 +msgid "Enter a Tool Diameter" +msgstr "Diametro utensile" + +#: flatcamGUI/FlatCAMGUI.py:4074 +msgid "Adding Tool cancelled ..." +msgstr "Aggiunta utensile annullata ..." + +#: flatcamGUI/FlatCAMGUI.py:4088 +msgid "Distance Tool exit..." +msgstr "Uscita dallo strumento Distanza..." + +#: flatcamGUI/FlatCAMGUI.py:4300 flatcamGUI/FlatCAMGUI.py:4307 +msgid "Idle." +msgstr "Inattivo." + +#: flatcamGUI/FlatCAMGUI.py:4338 +msgid "Application started ..." +msgstr "Applicazione avviata ..." + +#: flatcamGUI/FlatCAMGUI.py:4339 +msgid "Hello!" +msgstr "Ciao!" + +#: flatcamGUI/FlatCAMGUI.py:4401 +msgid "Open Project ..." +msgstr "Apri progetto ..." + +#: flatcamGUI/FlatCAMGUI.py:4427 +msgid "Exit" +msgstr "Esci" + +#: flatcamGUI/GUIElements.py:2513 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:180 +#: flatcamTools/ToolDblSided.py:173 flatcamTools/ToolDblSided.py:388 +#: flatcamTools/ToolFilm.py:219 +msgid "Reference" +msgstr "Riferimento" + +#: flatcamGUI/GUIElements.py:2515 +msgid "" +"The reference can be:\n" +"- Absolute -> the reference point is point (0,0)\n" +"- Relative -> the reference point is the mouse position before Jump" +msgstr "" +"Il riferimento può essere:\n" +"- Assoluto -> il punto di riferimento è punto (0,0)\n" +"- Relativo -> il punto di riferimento è la posizione del mouse prima del " +"salto" + +#: flatcamGUI/GUIElements.py:2520 +msgid "Abs" +msgstr "Assoluto" + +#: flatcamGUI/GUIElements.py:2521 +msgid "Relative" +msgstr "Relativo" + +#: flatcamGUI/GUIElements.py:2531 +msgid "Location" +msgstr "Locazione" + +#: flatcamGUI/GUIElements.py:2533 +msgid "" +"The Location value is a tuple (x,y).\n" +"If the reference is Absolute then the Jump will be at the position (x,y).\n" +"If the reference is Relative then the Jump will be at the (x,y) distance\n" +"from the current mouse location point." +msgstr "" +"Il valore Posizione è una tupla (x,y).\n" +"Se il riferimento è Assoluto, il Salto sarà nella posizione (x,y).\n" +"Se il riferimento è relativo, il salto sarà alla distanza (x,y)\n" +"dal punto di posizione attuale del mouse." + +#: flatcamGUI/GUIElements.py:2573 +msgid "Save Log" +msgstr "Salva log" + +#: flatcamGUI/GUIElements.py:2592 flatcamTools/ToolShell.py:278 +msgid "Type >help< to get started" +msgstr "Digita >help< per iniziare" + +#: flatcamGUI/ObjectUI.py:38 +msgid "FlatCAM Object" +msgstr "Oggetto FlatCAM" + +#: flatcamGUI/ObjectUI.py:78 +msgid "" +"BASIC is suitable for a beginner. Many parameters\n" +"are hidden from the user in this mode.\n" +"ADVANCED mode will make available all parameters.\n" +"\n" +"To change the application LEVEL, go to:\n" +"Edit -> Preferences -> General and check:\n" +"'APP. LEVEL' radio button." +msgstr "" +"BASIC è adatto per un principiante. Molti parametri\n" +"sono nascosti all'utente in questa modalità.\n" +"La modalità AVANZATA renderà disponibili tutti i parametri.\n" +"\n" +"Per modificare il LIVELLO dell'applicazione, vai su:\n" +"Modifica -> Preferenze -> Generale e seleziona:\n" +"il pulsante 'APP. Livello'." + +#: flatcamGUI/ObjectUI.py:111 +msgid "Geometrical transformations of the current object." +msgstr "Trasformazioni geometriche dell'oggetto corrente." + +#: flatcamGUI/ObjectUI.py:120 +msgid "" +"Factor by which to multiply\n" +"geometric features of this object.\n" +"Expressions are allowed. E.g: 1/25.4" +msgstr "" +"Fattore per cui moltiplicare\n" +"le feature geometriche dell'oggetto.\n" +"Sono permesse espressioni. Es: 1/25.4" + +#: flatcamGUI/ObjectUI.py:127 +msgid "Perform scaling operation." +msgstr "Esegui azione di riscalatura." + +#: flatcamGUI/ObjectUI.py:138 +msgid "" +"Amount by which to move the object\n" +"in the x and y axes in (x, y) format.\n" +"Expressions are allowed. E.g: (1/3.2, 0.5*3)" +msgstr "" +"Quantità per cui muovere l'oggetto\n" +"negli assi X ed Y nel formato (x,y).\n" +"Sono permesse espressioni. Es: (1/3.2,0.5*3)" + +#: flatcamGUI/ObjectUI.py:145 +msgid "Perform the offset operation." +msgstr "Esegui l'operazione offset." + +#: flatcamGUI/ObjectUI.py:178 +msgid "Gerber Object" +msgstr "Oggetto Gerber" + +#: flatcamGUI/ObjectUI.py:187 flatcamGUI/ObjectUI.py:730 +#: flatcamGUI/ObjectUI.py:1426 flatcamGUI/ObjectUI.py:2125 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:30 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:33 +#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:31 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:31 +msgid "Plot Options" +msgstr "Opzioni disegno" + +#: flatcamGUI/ObjectUI.py:193 flatcamGUI/ObjectUI.py:731 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:45 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:38 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:119 +#: flatcamTools/ToolCopperThieving.py:191 +msgid "Solid" +msgstr "Solido" + +#: flatcamGUI/ObjectUI.py:195 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:40 +msgid "Solid color polygons." +msgstr "Poligono colore pieno." + +#: flatcamGUI/ObjectUI.py:201 +msgid "Multi-Color" +msgstr "Multi-Colore" + +#: flatcamGUI/ObjectUI.py:203 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:47 +msgid "Draw polygons in different colors." +msgstr "Disegna poligoni in colori diversi." + +#: flatcamGUI/ObjectUI.py:209 flatcamGUI/ObjectUI.py:769 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:39 +#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:35 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:52 +msgid "Plot" +msgstr "Disegna" + +#: flatcamGUI/ObjectUI.py:211 flatcamGUI/ObjectUI.py:771 +#: flatcamGUI/ObjectUI.py:1486 flatcamGUI/ObjectUI.py:2235 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:41 +#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:37 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:54 +msgid "Plot (show) this object." +msgstr "Disegna (mostra) questo oggetto." + +#: flatcamGUI/ObjectUI.py:239 +msgid "" +"Toggle the display of the Gerber Apertures Table.\n" +"When unchecked, it will delete all mark shapes\n" +"that are drawn on canvas." +msgstr "" +"(Dis)attiva la visualizzazione della tabella delle aperture del Gerber.\n" +"Se deselezionato, eliminerà tutte le forme dei segni disegnati." + +#: flatcamGUI/ObjectUI.py:249 +msgid "Mark All" +msgstr "Marchia tutto" + +#: flatcamGUI/ObjectUI.py:251 +msgid "" +"When checked it will display all the apertures.\n" +"When unchecked, it will delete all mark shapes\n" +"that are drawn on canvas." +msgstr "" +"Se selezionato, mostrerà tutte le aperture.\n" +"Se deselezionato, eliminerà tutte le forme disegnati." + +#: flatcamGUI/ObjectUI.py:279 +msgid "Mark the aperture instances on canvas." +msgstr "Marchia le aperture." + +#: flatcamGUI/ObjectUI.py:291 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:32 +msgid "Isolation Routing" +msgstr "Percorso di isolamento" + +#: flatcamGUI/ObjectUI.py:293 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:34 +msgid "" +"Create a Geometry object with\n" +"toolpaths to cut outside polygons." +msgstr "" +"Crea un oggetto Geometria con\n" +"percorsi utensile per tagliare esternamente i poligoni." + +#: flatcamGUI/ObjectUI.py:311 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:69 +msgid "" +"Choose which tool to use for Gerber isolation:\n" +"'Circular' or 'V-shape'.\n" +"When the 'V-shape' is selected then the tool\n" +"diameter will depend on the chosen cut depth." +msgstr "" +"Scegli quale strumento utilizzare per l'isolamento Gerber:\n" +"'Circolare' o 'a V'.\n" +"Quando è selezionata la forma 'a V', il diametro\n" +"dell'utensile dipenderà dalla profondità di taglio scelta." + +#: flatcamGUI/ObjectUI.py:317 +msgid "V-Shape" +msgstr "Punta a V" + +#: flatcamGUI/ObjectUI.py:323 flatcamGUI/ObjectUI.py:1672 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:81 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:72 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:78 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:85 +#: flatcamTools/ToolNCC.py:233 flatcamTools/ToolNCC.py:240 +#: flatcamTools/ToolPaint.py:216 +msgid "V-Tip Dia" +msgstr "Diametro punta a V" + +#: flatcamGUI/ObjectUI.py:325 flatcamGUI/ObjectUI.py:1675 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:83 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:74 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:80 +#: flatcamTools/ToolNCC.py:235 flatcamTools/ToolPaint.py:218 +msgid "The tip diameter for V-Shape Tool" +msgstr "Il diametro sulla punta dell'utensile a V" + +#: flatcamGUI/ObjectUI.py:336 flatcamGUI/ObjectUI.py:1687 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:94 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:84 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:91 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:99 +#: flatcamTools/ToolNCC.py:246 flatcamTools/ToolNCC.py:254 +#: flatcamTools/ToolPaint.py:229 +msgid "V-Tip Angle" +msgstr "Angolo punta a V" + +#: flatcamGUI/ObjectUI.py:338 flatcamGUI/ObjectUI.py:1690 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:96 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:86 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:93 +#: flatcamTools/ToolNCC.py:248 flatcamTools/ToolPaint.py:231 +msgid "" +"The tip angle for V-Shape Tool.\n" +"In degree." +msgstr "" +"L'angolo alla punta dell'utensile a V\n" +"In gradi." + +#: flatcamGUI/ObjectUI.py:352 flatcamGUI/ObjectUI.py:1706 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:50 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:109 +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:61 +#: flatcamObjects/FlatCAMGeometry.py:1146 flatcamTools/ToolCutOut.py:141 +msgid "" +"Cutting depth (negative)\n" +"below the copper surface." +msgstr "" +"Profondità di taglio (negativo)\n" +"sotto la superficie del rame." + +#: flatcamGUI/ObjectUI.py:366 +msgid "" +"Diameter of the cutting tool.\n" +"If you want to have an isolation path\n" +"inside the actual shape of the Gerber\n" +"feature, use a negative value for\n" +"this parameter." +msgstr "" +"Diametro dell'utensile da taglio.\n" +"Se vuoi avere un percorso di isolamento\n" +"all'interno della forma reale del Gerber,\n" +"usa un valore negativo per questo parametro." + +#: flatcamGUI/ObjectUI.py:382 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:56 +msgid "# Passes" +msgstr "# Passate" + +#: flatcamGUI/ObjectUI.py:384 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:58 +msgid "" +"Width of the isolation gap in\n" +"number (integer) of tool widths." +msgstr "" +"Larghezza della distanza di isolamento in\n" +"numero (intero) di larghezze dell'utensile." + +#: flatcamGUI/ObjectUI.py:395 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:68 +msgid "Pass overlap" +msgstr "Sovrapposizione passate" + +#: flatcamGUI/ObjectUI.py:397 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:70 +msgid "How much (percentage) of the tool width to overlap each tool pass." +msgstr "" +"Quanto (in frazione) della larghezza dell'utensile sarà sovrapposto ad ogni " +"passaggio dell'utensile." + +#: flatcamGUI/ObjectUI.py:411 +#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:58 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:97 +msgid "" +"Milling type:\n" +"- climb / best for precision milling and to reduce tool usage\n" +"- conventional / useful when there is no backlash compensation" +msgstr "" +"Tipo di fresatura:\n" +"- salita / migliore per fresatura di precisione e riduzione dell'uso degli " +"utensili\n" +"- convenzionale / utile in assenza di compensazione del gioco" + +#: flatcamGUI/ObjectUI.py:421 +msgid "Combine" +msgstr "Combinata" + +#: flatcamGUI/ObjectUI.py:423 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:109 +msgid "Combine all passes into one object" +msgstr "Combina tutti i passaggi in un oggetto" + +#: flatcamGUI/ObjectUI.py:427 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:43 +msgid "\"Follow\"" +msgstr "\"Segui\"" + +#: flatcamGUI/ObjectUI.py:428 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:45 +msgid "" +"Generate a 'Follow' geometry.\n" +"This means that it will cut through\n" +"the middle of the trace." +msgstr "" +"Genera una geometria 'Segui'.\n" +"Ciò significa che taglierà\n" +"al centro della traccia." + +#: flatcamGUI/ObjectUI.py:434 +msgid "Except" +msgstr "Eccetto" + +#: flatcamGUI/ObjectUI.py:437 +msgid "" +"When the isolation geometry is generated,\n" +"by checking this, the area of the object below\n" +"will be subtracted from the isolation geometry." +msgstr "" +"Quando viene generata la geometria di isolamento,\n" +"abilitandolo, l'area dell'oggetto in basso\n" +"sarà sottratto dalla geometria di isolamento." + +#: flatcamGUI/ObjectUI.py:450 +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:97 +#: flatcamObjects/FlatCAMGerber.py:239 flatcamObjects/FlatCAMGerber.py:327 +#: flatcamTools/ToolAlignObjects.py:73 flatcamTools/ToolAlignObjects.py:109 +#: flatcamTools/ToolCalibration.py:196 flatcamTools/ToolCalibration.py:631 +#: flatcamTools/ToolCalibration.py:648 flatcamTools/ToolCalibration.py:807 +#: flatcamTools/ToolCalibration.py:815 flatcamTools/ToolCopperThieving.py:144 +#: flatcamTools/ToolCopperThieving.py:158 +#: flatcamTools/ToolCopperThieving.py:604 flatcamTools/ToolCutOut.py:91 +#: flatcamTools/ToolDblSided.py:224 flatcamTools/ToolFilm.py:69 +#: flatcamTools/ToolFilm.py:102 flatcamTools/ToolFilm.py:549 +#: flatcamTools/ToolFilm.py:557 flatcamTools/ToolImage.py:49 +#: flatcamTools/ToolImage.py:252 flatcamTools/ToolImage.py:273 +#: flatcamTools/ToolNCC.py:96 flatcamTools/ToolNCC.py:558 +#: flatcamTools/ToolNCC.py:1295 flatcamTools/ToolPaint.py:502 +#: flatcamTools/ToolPaint.py:706 flatcamTools/ToolPanelize.py:118 +#: flatcamTools/ToolPanelize.py:204 flatcamTools/ToolPanelize.py:374 +#: flatcamTools/ToolPanelize.py:391 +msgid "Gerber" +msgstr "Gerber" + +#: flatcamGUI/ObjectUI.py:457 flatcamTools/ToolNCC.py:86 +#: flatcamTools/ToolPaint.py:80 +msgid "Obj Type" +msgstr "Tipo oggetto" + +#: flatcamGUI/ObjectUI.py:459 +msgid "" +"Specify the type of object to be excepted from isolation.\n" +"It can be of type: Gerber or Geometry.\n" +"What is selected here will dictate the kind\n" +"of objects that will populate the 'Object' combobox." +msgstr "" +"Specificare il tipo di oggetto da escludere dall'isolamento.\n" +"Può essere di tipo: Gerber o Geometria.\n" +"Ciò che è selezionato qui detterà il tipo\n" +"di oggetti che popoleranno la casella 'Oggetto'." + +#: flatcamGUI/ObjectUI.py:472 +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:48 +#: flatcamTools/ToolCalibration.py:186 flatcamTools/ToolNCC.py:109 +#: flatcamTools/ToolPaint.py:103 flatcamTools/ToolPanelize.py:100 +#: flatcamTools/ToolQRCode.py:78 +msgid "Object" +msgstr "Oggetto" + +#: flatcamGUI/ObjectUI.py:473 +msgid "Object whose area will be removed from isolation geometry." +msgstr "Oggetto la cui area verrà rimossa dalla geometria di isolamento." + +#: flatcamGUI/ObjectUI.py:480 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:82 +msgid "Scope" +msgstr "Scopo" + +#: flatcamGUI/ObjectUI.py:482 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:84 +msgid "" +"Isolation scope. Choose what to isolate:\n" +"- 'All' -> Isolate all the polygons in the object\n" +"- 'Selection' -> Isolate a selection of polygons." +msgstr "" +"Obiettivo dell'isolamento. Scegli cosa isolare:\n" +"- 'Tutto' -> Isola tutti i poligoni nell'oggetto\n" +"- 'Selezione' -> Isola una selezione di poligoni." + +#: flatcamGUI/ObjectUI.py:487 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:307 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:89 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:311 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:258 +#: flatcamTools/ToolNCC.py:539 flatcamTools/ToolPaint.py:456 +msgid "Selection" +msgstr "Selezione" + +#: flatcamGUI/ObjectUI.py:495 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:122 +msgid "Isolation Type" +msgstr "Tipo isolamento" + +#: flatcamGUI/ObjectUI.py:497 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:124 +msgid "" +"Choose how the isolation will be executed:\n" +"- 'Full' -> complete isolation of polygons\n" +"- 'Ext' -> will isolate only on the outside\n" +"- 'Int' -> will isolate only on the inside\n" +"'Exterior' isolation is almost always possible\n" +"(with the right tool) but 'Interior'\n" +"isolation can be done only when there is an opening\n" +"inside of the polygon (e.g polygon is a 'doughnut' shape)." +msgstr "" +"Scegli come verrà eseguito l'isolamento:\n" +"- 'Completo' -> completo isolamento dei poligoni\n" +"- 'Ext' -> isolerà solo all'esterno\n" +"- 'Int' -> isolerà solo all'interno\n" +"L'isolamento 'esterno' è quasi sempre possibile\n" +"(con lo strumento giusto) ma 'Interno' può\n" +"essere fatto solo quando c'è un'apertura all'interno\n" +"del poligono (ad esempio il poligono ha una forma a \"ciambella\")." + +#: flatcamGUI/ObjectUI.py:506 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:133 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:154 +msgid "Full" +msgstr "Completo" + +#: flatcamGUI/ObjectUI.py:507 +msgid "Ext" +msgstr "Ext" + +#: flatcamGUI/ObjectUI.py:508 +msgid "Int" +msgstr "Int" + +#: flatcamGUI/ObjectUI.py:513 +msgid "Generate Isolation Geometry" +msgstr "Genera geometria di isolamento" + +#: flatcamGUI/ObjectUI.py:521 +msgid "" +"Create a Geometry object with toolpaths to cut \n" +"isolation outside, inside or on both sides of the\n" +"object. For a Gerber object outside means outside\n" +"of the Gerber feature and inside means inside of\n" +"the Gerber feature, if possible at all. This means\n" +"that only if the Gerber feature has openings inside, they\n" +"will be isolated. If what is wanted is to cut isolation\n" +"inside the actual Gerber feature, use a negative tool\n" +"diameter above." +msgstr "" +"Crea un oggetto Geometrie con i percorsi utensile per isolare\n" +"all'esterno, all'interno o su entrambi i lati dell'oggetto.\n" +"Per un oggetto Gerber esterno significa esterno\n" +"della funzione Gerber e dentro significa dentro\n" +"la funzione Gerber, se possibile effettuarlo. Questo significa\n" +"che solo se la funzione Gerber ha delle aperture interne, possono\n" +"essere isolate. Se ciò che si desidera è tagliare l'isolamento\n" +"all'interno dell'attuale funzione Gerber, usa uno strumento con diametro\n" +"negativo." + +#: flatcamGUI/ObjectUI.py:533 +msgid "Buffer Solid Geometry" +msgstr "Geometria solida del buffer" + +#: flatcamGUI/ObjectUI.py:535 +msgid "" +"This button is shown only when the Gerber file\n" +"is loaded without buffering.\n" +"Clicking this will create the buffered geometry\n" +"required for isolation." +msgstr "" +"Questo pulsante viene visualizzato solo quando il file Gerber\n" +"viene caricato senza buffering.\n" +"Facendo clic su questo si creerà la geometria bufferizzata\n" +"richiesta per l'isolamento." + +#: flatcamGUI/ObjectUI.py:567 +msgid "Clear N-copper" +msgstr "Azzera N-Copper (non rame)" + +#: flatcamGUI/ObjectUI.py:569 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:33 +msgid "" +"Create a Geometry object with\n" +"toolpaths to cut all non-copper regions." +msgstr "" +"Crea un oggetto Geometry con\n" +"percorsi utensile per tagliare tutte le regioni non rame." + +#: flatcamGUI/ObjectUI.py:576 flatcamGUI/ObjectUI.py:2079 +#: flatcamTools/ToolNCC.py:599 +msgid "" +"Create the Geometry Object\n" +"for non-copper routing." +msgstr "" +"Crea l'oggetto Geometria\n" +"per l'isolamento non-rame." + +#: flatcamGUI/ObjectUI.py:589 +msgid "Board cutout" +msgstr "Ritaglia scheda" + +#: flatcamGUI/ObjectUI.py:591 +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:34 +msgid "" +"Create toolpaths to cut around\n" +"the PCB and separate it from\n" +"the original board." +msgstr "" +"Crea percorsi utensile per ritagliare\n" +"il PCB e separarlo dalla\n" +"scheda originale." + +#: flatcamGUI/ObjectUI.py:598 +msgid "" +"Generate the geometry for\n" +"the board cutout." +msgstr "" +"Genera la geometria per\n" +"il ritaglio della scheda." + +#: flatcamGUI/ObjectUI.py:616 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:119 +msgid "Non-copper regions" +msgstr "Regioni non-rame" + +#: flatcamGUI/ObjectUI.py:618 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:121 +msgid "" +"Create polygons covering the\n" +"areas without copper on the PCB.\n" +"Equivalent to the inverse of this\n" +"object. Can be used to remove all\n" +"copper from a specified region." +msgstr "" +"Crea poligoni che coprono le\n" +"aree senza rame sul PCB.\n" +"Equivalente all'inverso di questo\n" +"oggetto. Può essere usato per rimuovere tutto\n" +"il rame da una regione specifica." + +#: flatcamGUI/ObjectUI.py:628 flatcamGUI/ObjectUI.py:669 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:133 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:166 +msgid "Boundary Margin" +msgstr "Margine dei bordi" + +#: flatcamGUI/ObjectUI.py:630 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:135 +msgid "" +"Specify the edge of the PCB\n" +"by drawing a box around all\n" +"objects with this minimum\n" +"distance." +msgstr "" +"Specifica il bordo del PCB\n" +"disegnando una contenitore intorno a tutti\n" +"gli oggetti con questa distanza minima." + +#: flatcamGUI/ObjectUI.py:645 flatcamGUI/ObjectUI.py:683 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:148 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:179 +msgid "Rounded Geo" +msgstr "Geometria arrotondata" + +#: flatcamGUI/ObjectUI.py:647 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:150 +msgid "Resulting geometry will have rounded corners." +msgstr "La geometria risultante avrà angoli arrotondati." + +#: flatcamGUI/ObjectUI.py:651 flatcamGUI/ObjectUI.py:692 +#: flatcamTools/ToolSolderPaste.py:134 +msgid "Generate Geo" +msgstr "Genera Geometria" + +#: flatcamGUI/ObjectUI.py:661 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:160 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:137 +#: flatcamTools/ToolPanelize.py:101 flatcamTools/ToolQRCode.py:192 +msgid "Bounding Box" +msgstr "Rettangolo contenitore" + +#: flatcamGUI/ObjectUI.py:663 +msgid "" +"Create a geometry surrounding the Gerber object.\n" +"Square shape." +msgstr "" +"Crea una geometria che circonda l'oggetto Gerber.\n" +"Forma quadrata." + +#: flatcamGUI/ObjectUI.py:671 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:168 +msgid "" +"Distance of the edges of the box\n" +"to the nearest polygon." +msgstr "" +"Distanza del contenitore dai bordi\n" +"al poligono più vicino." + +#: flatcamGUI/ObjectUI.py:685 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:181 +msgid "" +"If the bounding box is \n" +"to have rounded corners\n" +"their radius is equal to\n" +"the margin." +msgstr "" +"Se il rettangolo contenitore deve\n" +"avere angoli arrotondati\n" +"il loro raggio è uguale al\n" +"margine." + +#: flatcamGUI/ObjectUI.py:694 +msgid "Generate the Geometry object." +msgstr "Genera l'oggetto geometria." + +#: flatcamGUI/ObjectUI.py:721 +msgid "Excellon Object" +msgstr "Oggetto Excellon" + +#: flatcamGUI/ObjectUI.py:733 +msgid "Solid circles." +msgstr "Cercio pieno." + +#: flatcamGUI/ObjectUI.py:781 flatcamGUI/ObjectUI.py:876 +#: flatcamGUI/ObjectUI.py:2256 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:71 +#: flatcamTools/ToolProperties.py:166 +msgid "Drills" +msgstr "Fori" + +#: flatcamGUI/ObjectUI.py:781 flatcamGUI/ObjectUI.py:877 +#: flatcamGUI/ObjectUI.py:2256 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:158 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:72 +#: flatcamTools/ToolProperties.py:168 +msgid "Slots" +msgstr "Slots" + +#: flatcamGUI/ObjectUI.py:786 +msgid "" +"This is the Tool Number.\n" +"When ToolChange is checked, on toolchange event this value\n" +"will be showed as a T1, T2 ... Tn in the Machine Code.\n" +"\n" +"Here the tools are selected for G-code generation." +msgstr "" +"Questo è il numero dello strumento.\n" +"Quando CambioUtensile è attivo, in caso di cambio utensile questo valore\n" +"verrà mostrato come T1, T2 ... Tn nel codice macchina.\n" +"\n" +"Qui vengono selezionati gli utensili per la generazione del codice G." + +#: flatcamGUI/ObjectUI.py:791 flatcamGUI/ObjectUI.py:1510 +#: flatcamTools/ToolPaint.py:142 +msgid "" +"Tool Diameter. It's value (in current FlatCAM units) \n" +"is the cut width into the material." +msgstr "" +"Diametro utensile. Il suo valore (in unità FlatCAM) \n" +"è la larghezza di taglio nel materiale." + +#: flatcamGUI/ObjectUI.py:794 +msgid "" +"The number of Drill holes. Holes that are drilled with\n" +"a drill bit." +msgstr "" +"Numero di fori da realizzare. Fori realizzati con una\n" +"punta da trapano." + +#: flatcamGUI/ObjectUI.py:797 +msgid "" +"The number of Slot holes. Holes that are created by\n" +"milling them with an endmill bit." +msgstr "" +"Numero di fori slot da realizzare. Fori realizzati fresando\n" +"con un utensile a candela." + +#: flatcamGUI/ObjectUI.py:800 +msgid "" +"Toggle display of the drills for the current tool.\n" +"This does not select the tools for G-code generation." +msgstr "" +"(Dis)attiva la visualizzazione delle punte per lo strumento corrente.\n" +"Non seleziona gli utensili per la generazione del codice G." + +#: flatcamGUI/ObjectUI.py:818 flatcamGUI/ObjectUI.py:1662 +#: flatcamObjects/FlatCAMExcellon.py:514 flatcamObjects/FlatCAMExcellon.py:726 +#: flatcamObjects/FlatCAMExcellon.py:742 flatcamObjects/FlatCAMExcellon.py:746 +#: flatcamObjects/FlatCAMGeometry.py:306 flatcamObjects/FlatCAMGeometry.py:731 +#: flatcamObjects/FlatCAMGeometry.py:767 flatcamTools/ToolNCC.py:331 +#: flatcamTools/ToolNCC.py:797 flatcamTools/ToolNCC.py:811 +#: flatcamTools/ToolNCC.py:1191 flatcamTools/ToolPaint.py:314 +#: flatcamTools/ToolPaint.py:767 flatcamTools/ToolPaint.py:779 +#: flatcamTools/ToolPaint.py:1166 +msgid "Parameters for" +msgstr "Parametri per" + +#: flatcamGUI/ObjectUI.py:821 flatcamGUI/ObjectUI.py:1665 +#: flatcamTools/ToolNCC.py:334 flatcamTools/ToolPaint.py:317 +msgid "" +"The data used for creating GCode.\n" +"Each tool store it's own set of such data." +msgstr "" +"Dati usati per la creazione di GCode.\n" +"Ogni deposito di Utensili ha il proprio set di dati." + +#: flatcamGUI/ObjectUI.py:847 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:48 +msgid "" +"Operation type:\n" +"- Drilling -> will drill the drills/slots associated with this tool\n" +"- Milling -> will mill the drills/slots" +msgstr "" +"Tipo di operazione:\n" +"- Foratura -> eseguirà i fori/slot associati a questo strumento\n" +"- Fresatura -> freserà i fori(slot" + +#: flatcamGUI/ObjectUI.py:853 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:54 +msgid "Drilling" +msgstr "Foratura" + +#: flatcamGUI/ObjectUI.py:854 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:55 +msgid "Milling" +msgstr "Fresatura" + +#: flatcamGUI/ObjectUI.py:869 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:64 +msgid "" +"Milling type:\n" +"- Drills -> will mill the drills associated with this tool\n" +"- Slots -> will mill the slots associated with this tool\n" +"- Both -> will mill both drills and mills or whatever is available" +msgstr "" +"Tipo di fresatura:\n" +"- Fori -> eseguirà la fresatura dei fori associati a questo strumento\n" +"- Slot -> eseguirà la fresatura degli slot associati a questo strumento\n" +"- Entrambi -> eseguirà la fresatura di trapani e mulini o qualsiasi altra " +"cosa sia disponibile" + +#: flatcamGUI/ObjectUI.py:878 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:73 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:210 +#: flatcamTools/ToolFilm.py:258 +msgid "Both" +msgstr "Entrambi" + +#: flatcamGUI/ObjectUI.py:886 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:80 +msgid "Milling Diameter" +msgstr "Diametro fresa" + +#: flatcamGUI/ObjectUI.py:888 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:82 +msgid "The diameter of the tool who will do the milling" +msgstr "Diametro dell'utensile che freserà" + +#: flatcamGUI/ObjectUI.py:902 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:95 +msgid "" +"Drill depth (negative)\n" +"below the copper surface." +msgstr "" +"Profondità della foratura (negativo)\n" +"sotto la superficie del rame." + +#: flatcamGUI/ObjectUI.py:921 flatcamGUI/ObjectUI.py:1724 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:113 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:68 +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:79 +#: flatcamTools/ToolCutOut.py:159 +msgid "Multi-Depth" +msgstr "Multi-Profondità" + +#: flatcamGUI/ObjectUI.py:924 flatcamGUI/ObjectUI.py:1727 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:116 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:71 +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:82 +#: flatcamTools/ToolCutOut.py:162 +msgid "" +"Use multiple passes to limit\n" +"the cut depth in each pass. Will\n" +"cut multiple times until Cut Z is\n" +"reached." +msgstr "" +"Usa più passaggi per limitare\n" +"la profondità di taglio in ogni passaggio.\n" +"Taglierà più volte fino a quando non avrà raggiunto\n" +"Cut Z (profondità di taglio)." + +#: flatcamGUI/ObjectUI.py:937 flatcamGUI/ObjectUI.py:1741 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:128 +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:94 +#: flatcamTools/ToolCutOut.py:176 +msgid "Depth of each pass (positive)." +msgstr "Profondità di ogni passaggio (positivo)." + +#: flatcamGUI/ObjectUI.py:948 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:136 +msgid "" +"Tool height when travelling\n" +"across the XY plane." +msgstr "" +"Altezza dell'utensile durante gli spostamenti\n" +"sul piano XY." + +#: flatcamGUI/ObjectUI.py:969 flatcamGUI/ObjectUI.py:1771 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:187 +msgid "" +"Cutting speed in the XY\n" +"plane in units per minute" +msgstr "" +"Velocità di taglio sul piano XY\n" +"in unità al minuto" + +#: flatcamGUI/ObjectUI.py:984 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:209 +msgid "" +"Tool speed while drilling\n" +"(in units per minute).\n" +"So called 'Plunge' feedrate.\n" +"This is for linear move G01." +msgstr "" +"Velocità dell'utensile durante la perforazione\n" +"(in unità al minuto).\n" +"E' la cosiddetta velocità di avanzamento \"a tuffo\".\n" +"Questo è per lo spostamento lineare G01." + +#: flatcamGUI/ObjectUI.py:999 flatcamGUI/ObjectUI.py:1798 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:80 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:64 +msgid "Feedrate Rapids" +msgstr "Avanzamenti rapidi" + +#: flatcamGUI/ObjectUI.py:1001 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:82 +msgid "" +"Tool speed while drilling\n" +"(in units per minute).\n" +"This is for the rapid move G00.\n" +"It is useful only for Marlin,\n" +"ignore for any other cases." +msgstr "" +"Velocità dell'utensile durante la perforazione\n" +"(in unità al minuto).\n" +"Questo è per la mossa rapida G00.\n" +"È utile solo per Marlin,\n" +"ignora in tutti gli altri casi." + +#: flatcamGUI/ObjectUI.py:1021 flatcamGUI/ObjectUI.py:1818 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:82 +msgid "Re-cut" +msgstr "Ri-taglia" + +#: flatcamGUI/ObjectUI.py:1023 flatcamGUI/ObjectUI.py:1036 +#: flatcamGUI/ObjectUI.py:1820 flatcamGUI/ObjectUI.py:1832 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:84 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:96 +msgid "" +"In order to remove possible\n" +"copper leftovers where first cut\n" +"meet with last cut, we generate an\n" +"extended cut over the first cut section." +msgstr "" +"Per rimuovere possibili residui\n" +"di rame rimasti dove l'inizio del taglio\n" +"incontria l'ultimo taglio, generiamo un\n" +"taglio esteso sulla prima sezione di taglio." + +#: flatcamGUI/ObjectUI.py:1049 flatcamGUI/ObjectUI.py:1841 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:216 +#: flatcamObjects/FlatCAMExcellon.py:1332 +#: flatcamObjects/FlatCAMGeometry.py:1594 +msgid "Spindle speed" +msgstr "Velocità mandrino" + +#: flatcamGUI/ObjectUI.py:1051 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:224 +msgid "" +"Speed of the spindle\n" +"in RPM (optional)" +msgstr "" +"Valocità del mandrino\n" +"in RMP (opzionale)" + +#: flatcamGUI/ObjectUI.py:1066 flatcamGUI/ObjectUI.py:1860 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:238 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:234 +msgid "" +"Pause to allow the spindle to reach its\n" +"speed before cutting." +msgstr "" +"Pausa per consentire al mandrino di raggiungere la sua\n" +"velocità prima del taglio." + +#: flatcamGUI/ObjectUI.py:1077 flatcamGUI/ObjectUI.py:1870 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:246 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:239 +msgid "Number of time units for spindle to dwell." +msgstr "Numero di unità di tempo in cui il mandrino deve aspettare." + +#: flatcamGUI/ObjectUI.py:1087 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:46 +msgid "Offset Z" +msgstr "Distanza Z" + +#: flatcamGUI/ObjectUI.py:1089 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:48 +msgid "" +"Some drill bits (the larger ones) need to drill deeper\n" +"to create the desired exit hole diameter due of the tip shape.\n" +"The value here can compensate the Cut Z parameter." +msgstr "" +"Alcune punte (quelle più grandi) devono forare più in profondità\n" +"per creare il diametro del foro di uscita desiderato a causa della forma " +"della punta.\n" +"Questo valore può compensare il parametro Cut Z." + +#: flatcamGUI/ObjectUI.py:1149 flatcamGUI/ObjectUI.py:1924 +#: flatcamTools/ToolNCC.py:492 flatcamTools/ToolPaint.py:423 +msgid "Apply parameters to all tools" +msgstr "Applica parametri a tutti gli utensili" + +#: flatcamGUI/ObjectUI.py:1151 flatcamGUI/ObjectUI.py:1926 +#: flatcamTools/ToolNCC.py:494 flatcamTools/ToolPaint.py:425 +msgid "" +"The parameters in the current form will be applied\n" +"on all the tools from the Tool Table." +msgstr "" +"Saranno applicati i parametri nel modulo corrente\n" +"su tutti gli utensili dalla tabella." + +#: flatcamGUI/ObjectUI.py:1162 flatcamGUI/ObjectUI.py:1937 +#: flatcamTools/ToolNCC.py:505 flatcamTools/ToolPaint.py:436 +msgid "Common Parameters" +msgstr "Parametri comuni" + +#: flatcamGUI/ObjectUI.py:1164 flatcamGUI/ObjectUI.py:1939 +#: flatcamTools/ToolNCC.py:507 flatcamTools/ToolPaint.py:438 +msgid "Parameters that are common for all tools." +msgstr "Parametri usati da tutti gli utensili." + +#: flatcamGUI/ObjectUI.py:1169 flatcamGUI/ObjectUI.py:1944 +msgid "Tool change Z" +msgstr "Z cambio utensile" + +#: flatcamGUI/ObjectUI.py:1171 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:154 +msgid "" +"Include tool-change sequence\n" +"in G-Code (Pause for tool change)." +msgstr "" +"Includi sequenza di cambio utensile\n" +"nel codice G (Pausa per cambio utensile)." + +#: flatcamGUI/ObjectUI.py:1178 flatcamGUI/ObjectUI.py:1955 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:162 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:134 +msgid "" +"Z-axis position (height) for\n" +"tool change." +msgstr "" +"Posizione sull'asse Z (altezza) per\n" +"il cambio utensile." + +#: flatcamGUI/ObjectUI.py:1195 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:71 +msgid "" +"Height of the tool just after start.\n" +"Delete the value if you don't need this feature." +msgstr "" +"Altezza dell'utensile subito dopo l'avvio.\n" +"Elimina il valore se non hai bisogno di questa funzione." + +#: flatcamGUI/ObjectUI.py:1204 flatcamGUI/ObjectUI.py:1983 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:178 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:153 +msgid "End move Z" +msgstr "Spostamento finale Z" + +#: flatcamGUI/ObjectUI.py:1206 flatcamGUI/ObjectUI.py:1985 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:180 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:155 +msgid "" +"Height of the tool after\n" +"the last move at the end of the job." +msgstr "" +"Altezza dell'utensile dopo\n" +"l'ultimo movimento alla fine del lavoro." + +#: flatcamGUI/ObjectUI.py:1223 flatcamGUI/ObjectUI.py:2002 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:195 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:173 +msgid "End move X,Y" +msgstr "Spostamento finale X,Y" + +#: flatcamGUI/ObjectUI.py:1225 flatcamGUI/ObjectUI.py:2004 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:197 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:175 +msgid "" +"End move X,Y position. In format (x,y).\n" +"If no value is entered then there is no move\n" +"on X,Y plane at the end of the job." +msgstr "" +"Posizione movimento finale X,Y. Nel formato (x, y).\n" +"Se non viene inserito alcun valore, non sarà possibile spostare\n" +"sul piano X,Y alla fine del lavoro." + +#: flatcamGUI/ObjectUI.py:1235 flatcamGUI/ObjectUI.py:1878 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:96 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:105 +msgid "Probe Z depth" +msgstr "Tastatore profondità Z" + +#: flatcamGUI/ObjectUI.py:1237 flatcamGUI/ObjectUI.py:1880 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:98 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:107 +msgid "" +"The maximum depth that the probe is allowed\n" +"to probe. Negative value, in current units." +msgstr "" +"La profondità massima consentita di testare\n" +"alla sonda. Valore negativo, in attuali unità." + +#: flatcamGUI/ObjectUI.py:1254 flatcamGUI/ObjectUI.py:1895 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:109 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:120 +msgid "Feedrate Probe" +msgstr "Velocità avanzamento sonda" + +#: flatcamGUI/ObjectUI.py:1256 flatcamGUI/ObjectUI.py:1897 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:111 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:122 +msgid "The feedrate used while the probe is probing." +msgstr "La velocità usata durante l'avanzamento del tastatore." + +#: flatcamGUI/ObjectUI.py:1272 +msgid "Preprocessor E" +msgstr "Preprocessore E" + +#: flatcamGUI/ObjectUI.py:1274 +msgid "" +"The preprocessor JSON file that dictates\n" +"Gcode output for Excellon Objects." +msgstr "" +"File JSON del preprocessore che istruisce\n" +"il GCode di uscita per oggetti Excellon." + +#: flatcamGUI/ObjectUI.py:1284 +msgid "Preprocessor G" +msgstr "Preprocessore G" + +#: flatcamGUI/ObjectUI.py:1286 +msgid "" +"The preprocessor JSON file that dictates\n" +"Gcode output for Geometry (Milling) Objects." +msgstr "" +"File JSON del preprocessore che istruisce\n" +"il GCode di uscita da oggetti Geometria (fresatura)." + +#: flatcamGUI/ObjectUI.py:1310 flatcamGUI/ObjectUI.py:2028 +msgid "" +"Add / Select at least one tool in the tool-table.\n" +"Click the # header to select all, or Ctrl + LMB\n" +"for custom selection of tools." +msgstr "" +"Aggiungi almeno un utensile alla tabella degli utensili.\n" +"Fai clic su # per selezionare tutto, oppure Ctrl + click sinistro\n" +"per la selezione personalizzata degli utensili." + +#: flatcamGUI/ObjectUI.py:1318 flatcamGUI/ObjectUI.py:2035 +msgid "Generate CNCJob object" +msgstr "Genera oggetto CNCJob" + +#: flatcamGUI/ObjectUI.py:1320 +msgid "" +"Generate the CNC Job.\n" +"If milling then an additional Geometry object will be created" +msgstr "" +"Generare il lavoro CNC.\n" +"Se si sta fresando, verrà creato un oggetto Geometry aggiuntivo" + +#: flatcamGUI/ObjectUI.py:1337 +msgid "Milling Geometry" +msgstr "Geometria fresatura" + +#: flatcamGUI/ObjectUI.py:1339 +msgid "" +"Create Geometry for milling holes.\n" +"Select from the Tools Table above the hole dias to be\n" +"milled. Use the # column to make the selection." +msgstr "" +"Crea geometria per la fresatura dei fori.\n" +"Selezionare dalla tabella degli strumenti sopra i diametri dei fori\n" +"da fresare. Utilizzare la colonna # per effettuare la selezione." + +#: flatcamGUI/ObjectUI.py:1347 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:296 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:45 +msgid "Diameter of the cutting tool." +msgstr "Diametri dell'utensile da taglio." + +#: flatcamGUI/ObjectUI.py:1357 +msgid "Mill Drills" +msgstr "Fresatura fori" + +#: flatcamGUI/ObjectUI.py:1359 +msgid "" +"Create the Geometry Object\n" +"for milling DRILLS toolpaths." +msgstr "" +"Crea l'oggetto Geometry\n" +"per la fresatura di percorsi utensile FORI." + +#: flatcamGUI/ObjectUI.py:1377 +msgid "Mill Slots" +msgstr "Fresatura slot" + +#: flatcamGUI/ObjectUI.py:1379 +msgid "" +"Create the Geometry Object\n" +"for milling SLOTS toolpaths." +msgstr "" +"Crea oggetto geometria\n" +"per fresare gli slot." + +#: flatcamGUI/ObjectUI.py:1421 flatcamTools/ToolCutOut.py:319 +msgid "Geometry Object" +msgstr "Oggetto geometria" + +#: flatcamGUI/ObjectUI.py:1467 +msgid "" +"Tools in this Geometry object used for cutting.\n" +"The 'Offset' entry will set an offset for the cut.\n" +"'Offset' can be inside, outside, on path (none) and custom.\n" +"'Type' entry is only informative and it allow to know the \n" +"intent of using the current tool. \n" +"It can be Rough(ing), Finish(ing) or Iso(lation).\n" +"The 'Tool type'(TT) can be circular with 1 to 4 teeths(C1..C4),\n" +"ball(B), or V-Shaped(V). \n" +"When V-shaped is selected the 'Type' entry is automatically \n" +"set to Isolation, the CutZ parameter in the UI form is\n" +"grayed out and Cut Z is automatically calculated from the newly \n" +"showed UI form entries named V-Tip Dia and V-Tip Angle." +msgstr "" +"Strumenti in questo oggetto Geometria sono usati per il taglio.\n" +"La voce 'Offset' imposta un offset per il taglio.\n" +"'Offset' può essere all'interno, all'esterno, sul percorso (nessuno) e " +"personalizzato.\n" +"La voce 'Tipo' è solo informativa e consente di conoscere\n" +"lo scopo d'utilizzo dello strumento corrente.\n" +"Può essere grezzo, fine o isolamento.\n" +"Il 'tipo di utensile' (TT) può essere circolare con da 1 a 4 denti (C1.." +"C4),\n" +"a palla (B) o a forma di V (V).\n" +"Quando è selezionata la forma a V, la voce 'Tipo' è automaticamente\n" +"impostato su Isolamento, il parametro CutZ nel modulo UI è\n" +"non selezionabile e Cut Z viene calcolato automaticamente dalla nuova\n" +"UI dalle voci Diametro V-Tip e Angolo V-Tip." + +#: flatcamGUI/ObjectUI.py:1484 flatcamGUI/ObjectUI.py:2233 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:40 +msgid "Plot Object" +msgstr "Disegna oggetto" + +#: flatcamGUI/ObjectUI.py:1497 flatcamGUI/ObjectUI.py:2246 +#: flatcamGUI/ObjectUI.py:2256 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:138 +#: flatcamTools/ToolCopperThieving.py:221 +msgid "Dia" +msgstr "Diametro" + +#: flatcamGUI/ObjectUI.py:1497 flatcamGUI/ObjectUI.py:2246 +#: flatcamTools/ToolNCC.py:132 flatcamTools/ToolPaint.py:128 +msgid "TT" +msgstr "TT" + +#: flatcamGUI/ObjectUI.py:1504 +msgid "" +"This is the Tool Number.\n" +"When ToolChange is checked, on toolchange event this value\n" +"will be showed as a T1, T2 ... Tn" +msgstr "" +"Questo è il numero dell'utensile.\n" +"Quando Cambio Utensile è selezionato, in caso di cambio utensile questo " +"valore\n" +"verrà mostrato come T1, T2 ... Tn" + +#: flatcamGUI/ObjectUI.py:1515 +msgid "" +"The value for the Offset can be:\n" +"- Path -> There is no offset, the tool cut will be done through the geometry " +"line.\n" +"- In(side) -> The tool cut will follow the geometry inside. It will create a " +"'pocket'.\n" +"- Out(side) -> The tool cut will follow the geometry line on the outside." +msgstr "" +"Il valore per l'offset può essere:\n" +"- Percorso -> Non è presente alcun offset, il taglio dell'utensile verrà " +"eseguito attraverso la linea della geometria.\n" +"- In(terno) -> Il taglio dell'utensile seguirà la geometria all'interno. " +"Creerà una 'tasca'.\n" +"- Est(erno) -> Il taglio dell'utensile seguirà la linea della geometria " +"all'esterno." + +#: flatcamGUI/ObjectUI.py:1522 +msgid "" +"The (Operation) Type has only informative value. Usually the UI form " +"values \n" +"are choose based on the operation type and this will serve as a reminder.\n" +"Can be 'Roughing', 'Finishing' or 'Isolation'.\n" +"For Roughing we may choose a lower Feedrate and multiDepth cut.\n" +"For Finishing we may choose a higher Feedrate, without multiDepth.\n" +"For Isolation we need a lower Feedrate as it use a milling bit with a fine " +"tip." +msgstr "" +"Il tipo di operazione ha solo valore informativo. Di solito i valori nella " +"UI\n" +"vengono scelti in base al tipo di operazione e questo servirà come " +"promemoria.\n" +"Può essere 'Sgrossatura', 'Finitura' o 'Isolamento'.\n" +"Per la sgrossatura possiamo scegliere un avanzamento inferiore e un taglio " +"multi-profondità.\n" +"Per la finitura possiamo scegliere una velocità di avanzamento più elevata, " +"senza multi-profondità.\n" +"Per l'isolamento abbiamo bisogno di un avanzamento inferiore poiché si una " +"punta di fresatura con una punta fine." + +#: flatcamGUI/ObjectUI.py:1531 +msgid "" +"The Tool Type (TT) can be:\n" +"- Circular with 1 ... 4 teeth -> it is informative only. Being circular the " +"cut width in material\n" +"is exactly the tool diameter.\n" +"- Ball -> informative only and make reference to the Ball type endmill.\n" +"- V-Shape -> it will disable Z-Cut parameter in the UI form and enable two " +"additional UI form\n" +"fields: V-Tip Dia and V-Tip Angle. Adjusting those two values will adjust " +"the Z-Cut parameter such\n" +"as the cut width into material will be equal with the value in the Tool " +"Diameter column of this table.\n" +"Choosing the V-Shape Tool Type automatically will select the Operation Type " +"as Isolation." +msgstr "" +"Il tipo di utensile (TT) può essere:\n" +"- Circolare con 1 ... 4 denti -> è solo informativo. Essendo circolare la " +"larghezza del taglio nel materiale\n" +"è esattamente il diametro dell'utensile.\n" +"- Sfera -> solo informativo e fare riferimento alla fresa sferica.\n" +"- a V -> disabiliterà il parametro di Z-Cut nel modulo UI e abiliterà due " +"moduli UI aggiuntivi\n" +"campi: Diametro V-Tip e Angolo V-Tip. La regolazione di questi due valori " +"regolerà tale parametro Z-Cut\n" +"poiché la larghezza del taglio nel materiale sarà uguale al valore nella " +"colonna Diametro utensile di questa tabella.\n" +"Scegliendo il tipo di strumento a forma di V si selezionerà automaticamente " +"il tipo di operazione come isolamento." + +#: flatcamGUI/ObjectUI.py:1543 +msgid "" +"Plot column. It is visible only for MultiGeo geometries, meaning geometries " +"that holds the geometry\n" +"data into the tools. For those geometries, deleting the tool will delete the " +"geometry data also,\n" +"so be WARNED. From the checkboxes on each row it can be enabled/disabled the " +"plot on canvas\n" +"for the corresponding tool." +msgstr "" +"Traccia colonna. È visibile solo per le geometrie MultiGeo, ovvero geometrie " +"che trattengono i dati della\n" +"geometria negli strumenti. Per tali geometrie, l'eliminazione dello " +"strumento eliminerà anche i dati della geometria,\n" +"quindi ATTENZIONE. Dalle caselle di controllo su ogni riga è possibile " +"abilitare/disabilitare la tracciatura\n" +"dello strumento corrispondente." + +#: flatcamGUI/ObjectUI.py:1561 +msgid "" +"The value to offset the cut when \n" +"the Offset type selected is 'Offset'.\n" +"The value can be positive for 'outside'\n" +"cut and negative for 'inside' cut." +msgstr "" +"Il valore per compensare il taglio quando\n" +"il tipo di offset selezionato è 'Offset'.\n" +"Il valore può essere positivo per 'esterno'\n" +"taglio e negativo per il taglio 'interno'." + +#: flatcamGUI/ObjectUI.py:1580 flatcamTools/ToolNCC.py:209 +#: flatcamTools/ToolNCC.py:923 flatcamTools/ToolPaint.py:192 +#: flatcamTools/ToolPaint.py:849 flatcamTools/ToolSolderPaste.py:559 +msgid "New Tool" +msgstr "Nuovo utensile" + +#: flatcamGUI/ObjectUI.py:1597 +msgid "" +"Add a new tool to the Tool Table\n" +"with the specified diameter." +msgstr "" +"Aggiungi un nuovo utensile alla tabella degli utensili\n" +"con il diametro specificato." + +#: flatcamGUI/ObjectUI.py:1602 flatcamTools/ToolNCC.py:300 +#: flatcamTools/ToolNCC.py:634 flatcamTools/ToolPaint.py:283 +#: flatcamTools/ToolPaint.py:679 +msgid "Add from DB" +msgstr "Aggiungi dal DB" + +#: flatcamGUI/ObjectUI.py:1604 flatcamTools/ToolNCC.py:302 +#: flatcamTools/ToolPaint.py:285 +msgid "" +"Add a new tool to the Tool Table\n" +"from the Tool DataBase." +msgstr "" +"Aggiungi un nuovo utensile alla tabella degli utensili\n" +"dal DataBase utensili." + +#: flatcamGUI/ObjectUI.py:1619 +msgid "" +"Copy a selection of tools in the Tool Table\n" +"by first selecting a row in the Tool Table." +msgstr "" +"Copia una selezione di utensili nella tabella degli utensili\n" +"selezionando prima una riga nella tabella." + +#: flatcamGUI/ObjectUI.py:1625 +msgid "" +"Delete a selection of tools in the Tool Table\n" +"by first selecting a row in the Tool Table." +msgstr "" +"Elimina una selezione di utensili nella tabella degli utensili\n" +"selezionando prima una riga." + +#: flatcamGUI/ObjectUI.py:1752 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:103 +msgid "" +"Height of the tool when\n" +"moving without cutting." +msgstr "" +"Altezza dello strumento quando\n" +"si sposta senza tagliare." + +#: flatcamGUI/ObjectUI.py:1785 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:202 +msgid "" +"Cutting speed in the XY\n" +"plane in units per minute.\n" +"It is called also Plunge." +msgstr "" +"Velocità di taglio nel piano XY\n" +"in unità al minuto.\n" +"Si chiama anche Plunge (affondo)." + +#: flatcamGUI/ObjectUI.py:1800 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:66 +msgid "" +"Cutting speed in the XY plane\n" +"(in units per minute).\n" +"This is for the rapid move G00.\n" +"It is useful only for Marlin,\n" +"ignore for any other cases." +msgstr "" +"Velocità di taglio nel piano XY\n" +"(in unità al minuto).\n" +"Questo è per la mossa rapida G00.\n" +"È utile solo per Marlin,\n" +"ignorare in tutti gli altri casi." + +#: flatcamGUI/ObjectUI.py:1844 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:219 +msgid "" +"Speed of the spindle in RPM (optional).\n" +"If LASER preprocessor is used,\n" +"this value is the power of laser." +msgstr "" +"Velocità del mandrino in RPM (opzionale).\n" +"Se si utilizza il preprocessore LASER,\n" +"questo valore è la potenza del laser." + +#: flatcamGUI/ObjectUI.py:1947 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:124 +msgid "" +"Include tool-change sequence\n" +"in the Machine Code (Pause for tool change)." +msgstr "" +"Includi sequenza di cambio utensile\n" +"nel Codice macchina (Pausa per cambio utensile)." + +#: flatcamGUI/ObjectUI.py:2016 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:256 +msgid "" +"The Preprocessor file that dictates\n" +"the Machine Code (like GCode, RML, HPGL) output." +msgstr "" +"Il file del preprocessore che guida\n" +"l'output del codice macchina (come GCode, RML, HPGL)." + +#: flatcamGUI/ObjectUI.py:2037 +msgid "Generate the CNC Job object." +msgstr "Genera l'oggetto CNC Job." + +#: flatcamGUI/ObjectUI.py:2054 +msgid "Launch Paint Tool in Tools Tab." +msgstr "Esegui lo strumento Disegno dal Tab Disegno." + +#: flatcamGUI/ObjectUI.py:2062 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:35 +msgid "" +"Creates tool paths to cover the\n" +"whole area of a polygon (remove\n" +"all copper). You will be asked\n" +"to click on the desired polygon." +msgstr "" +"Crea percorsi utensile per coprire\n" +"l'intera area di un poligono (rimuovi\n" +"tutto rame). Verrà chiesto di\n" +"cliccare sul poligono desiderato." + +#: flatcamGUI/ObjectUI.py:2117 +msgid "CNC Job Object" +msgstr "Oggetto CNC Job" + +#: flatcamGUI/ObjectUI.py:2128 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:45 +msgid "Plot kind" +msgstr "Tipo di plot" + +#: flatcamGUI/ObjectUI.py:2131 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:47 +msgid "" +"This selects the kind of geometries on the canvas to plot.\n" +"Those can be either of type 'Travel' which means the moves\n" +"above the work piece or it can be of type 'Cut',\n" +"which means the moves that cut into the material." +msgstr "" +"Questo seleziona il tipo di geometrie da tracciare.\n" +"Possono essere di tipo 'Travel', ovvero movimenti\n" +"sopra al pezzo o di tipo 'Taglia',\n" +"cioè movimenti che tagliano il materiale." + +#: flatcamGUI/ObjectUI.py:2140 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:55 +msgid "Travel" +msgstr "Travel" + +#: flatcamGUI/ObjectUI.py:2144 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:64 +msgid "Display Annotation" +msgstr "Mostra annotazioni" + +#: flatcamGUI/ObjectUI.py:2146 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:66 +msgid "" +"This selects if to display text annotation on the plot.\n" +"When checked it will display numbers in order for each end\n" +"of a travel line." +msgstr "" +"Seleziona se visualizzare l'annotazione di testo.\n" +"Se selezionato, visualizzerà i numeri ordinati su ogni terminazione\n" +"di una linea di spostamento." + +#: flatcamGUI/ObjectUI.py:2161 +msgid "Travelled dist." +msgstr "Distanza spostamento." + +#: flatcamGUI/ObjectUI.py:2163 flatcamGUI/ObjectUI.py:2168 +msgid "" +"This is the total travelled distance on X-Y plane.\n" +"In current units." +msgstr "" +"E' la distanza totale percorsa sul piano X-Y.\n" +"In unità correnti." + +#: flatcamGUI/ObjectUI.py:2173 +msgid "Estimated time" +msgstr "Tempo stimato" + +#: flatcamGUI/ObjectUI.py:2175 flatcamGUI/ObjectUI.py:2180 +msgid "" +"This is the estimated time to do the routing/drilling,\n" +"without the time spent in ToolChange events." +msgstr "" +"E' il tempo stimato per le fresatura, foratura,\n" +"senza il tempo necessario ai cambi utensili." + +#: flatcamGUI/ObjectUI.py:2215 +msgid "CNC Tools Table" +msgstr "Tabella Utensili CNC" + +#: flatcamGUI/ObjectUI.py:2218 +msgid "" +"Tools in this CNCJob object used for cutting.\n" +"The tool diameter is used for plotting on canvas.\n" +"The 'Offset' entry will set an offset for the cut.\n" +"'Offset' can be inside, outside, on path (none) and custom.\n" +"'Type' entry is only informative and it allow to know the \n" +"intent of using the current tool. \n" +"It can be Rough(ing), Finish(ing) or Iso(lation).\n" +"The 'Tool type'(TT) can be circular with 1 to 4 teeths(C1..C4),\n" +"ball(B), or V-Shaped(V)." +msgstr "" +"Gli utensili sono quelli usati in questo oggetto CNCJob per il taglio.\n" +"Il diametro dell'utensile è utilizzato per tracciare il disegno a video.\n" +"La voce 'Offset' imposta un offset per il taglio.\n" +"'Offset' può essere interno, esterno, sul percorso (nessuno) e " +"personalizzato.\n" +"La voce 'Tipo' è solo informativa e consente di conoscere il fine\n" +"dell'utensile corrente.\n" +"Può essere per sgrezzatura, finitura o isolamento.\n" +"Il 'tipo di utensile' (TT) può essere circolare da 1 a 4 denti (C1..C4),\n" +"a palla (B) o a V (V)." + +#: flatcamGUI/ObjectUI.py:2246 flatcamGUI/ObjectUI.py:2257 +msgid "P" +msgstr "P" + +#: flatcamGUI/ObjectUI.py:2267 +msgid "Update Plot" +msgstr "Aggiorna Plot" + +#: flatcamGUI/ObjectUI.py:2269 +msgid "Update the plot." +msgstr "Aggiorna il plot." + +#: flatcamGUI/ObjectUI.py:2276 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:30 +msgid "Export CNC Code" +msgstr "Esporta codice CNC" + +#: flatcamGUI/ObjectUI.py:2278 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:32 +#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:33 +msgid "" +"Export and save G-Code to\n" +"make this object to a file." +msgstr "" +"Esporta e salva il G-Code per\n" +"fare un file dell'oggetto." + +#: flatcamGUI/ObjectUI.py:2284 +msgid "Prepend to CNC Code" +msgstr "Anteponi ak codice CNC" + +#: flatcamGUI/ObjectUI.py:2286 flatcamGUI/ObjectUI.py:2293 +#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:49 +msgid "" +"Type here any G-Code commands you would\n" +"like to add at the beginning of the G-Code file." +msgstr "" +"Scrivi qui qualsiasi comando G-Code che vuoi\n" +"venga inserito all'inizio del file G-Code." + +#: flatcamGUI/ObjectUI.py:2299 +msgid "Append to CNC Code" +msgstr "Accoda al Codice CNC" + +#: flatcamGUI/ObjectUI.py:2301 flatcamGUI/ObjectUI.py:2309 +#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:65 +msgid "" +"Type here any G-Code commands you would\n" +"like to append to the generated file.\n" +"I.e.: M2 (End of program)" +msgstr "" +"Scrivi qui qualsiasi comando G-Code che vuoi\n" +"venga inserito alla fine del file G-Code.\n" +"Es.: M2 (Fine programma)" + +#: flatcamGUI/ObjectUI.py:2323 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:38 +msgid "Toolchange G-Code" +msgstr "G-Code cambio utensile" + +#: flatcamGUI/ObjectUI.py:2326 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:41 +msgid "" +"Type here any G-Code commands you would\n" +"like to be executed when Toolchange event is encountered.\n" +"This will constitute a Custom Toolchange GCode,\n" +"or a Toolchange Macro.\n" +"The FlatCAM variables are surrounded by '%' symbol.\n" +"\n" +"WARNING: it can be used only with a preprocessor file\n" +"that has 'toolchange_custom' in it's name and this is built\n" +"having as template the 'Toolchange Custom' posprocessor file." +msgstr "" +"Digita qui qualsiasi comando G-Code che desideri\n" +"sia eseguito quando si incontra un di evento Cambio Utensile.\n" +"Ciò costituirà un GCode di cambio utensile personalizzato,\n" +"o una macro per il cambio utensile.\n" +"Le variabili FlatCAM sono delimitate dal simbolo '%'.\n" +"\n" +"ATTENZIONE: può essere utilizzato solo con un file preprocessore\n" +"che contenga 'toolchange_custom' nel nome e creato\n" +"avendo come modello il file posprocessor 'Toolchange Custom'." + +#: flatcamGUI/ObjectUI.py:2341 +msgid "" +"Type here any G-Code commands you would\n" +"like to be executed when Toolchange event is encountered.\n" +"This will constitute a Custom Toolchange GCode,\n" +"or a Toolchange Macro.\n" +"The FlatCAM variables are surrounded by '%' symbol.\n" +"WARNING: it can be used only with a preprocessor file\n" +"that has 'toolchange_custom' in it's name." +msgstr "" +"Digita qui qualsiasi comando G-Code che desideri\n" +"sia eseguito quando si incontra un di evento Cambio Utensile.\n" +"Ciò costituirà un GCode di cambio utensile personalizzato,\n" +"o una macro per il cambio utensile.\n" +"Le variabili FlatCAM sono delimitate dal simbolo '%'.\n" +"ATTENZIONE: può essere utilizzato solo con un file preprocessore\n" +"che contenga 'toolchange_custom' nel nome." + +#: flatcamGUI/ObjectUI.py:2356 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:80 +msgid "Use Toolchange Macro" +msgstr "Usa Macro Cambio Utensile" + +#: flatcamGUI/ObjectUI.py:2358 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:82 +msgid "" +"Check this box if you want to use\n" +"a Custom Toolchange GCode (macro)." +msgstr "" +"Seleziona questa casella se vuoi usare\n" +"un GCode Custom (macro) per il cambio utensile." + +#: flatcamGUI/ObjectUI.py:2366 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:94 +msgid "" +"A list of the FlatCAM variables that can be used\n" +"in the Toolchange event.\n" +"They have to be surrounded by the '%' symbol" +msgstr "" +"Una lista di variabili FlatCAM utilizzabili\n" +"nell'evento di Cambio Utensile.\n" +"Devono essere delimitate dal simbolo '%'" + +#: flatcamGUI/ObjectUI.py:2373 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:101 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:30 +#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:31 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:31 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:37 +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:36 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:36 +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:36 +#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:31 +#: flatcamGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:31 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:36 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:31 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:30 +#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:31 +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:32 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:31 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:31 +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:31 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:31 +#: flatcamGUI/preferences/tools/ToolsSubPrefGroupUI.py:31 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:31 +#: flatcamTools/ToolCopperThieving.py:89 flatcamTools/ToolFiducials.py:149 +#: flatcamTools/ToolInvertGerber.py:82 +msgid "Parameters" +msgstr "Parametri" + +#: flatcamGUI/ObjectUI.py:2376 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:106 +msgid "FlatCAM CNC parameters" +msgstr "Parametri CNC FlatCAM" + +#: flatcamGUI/ObjectUI.py:2377 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:111 +msgid "tool number" +msgstr "numero utensile" + +#: flatcamGUI/ObjectUI.py:2378 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:112 +msgid "tool diameter" +msgstr "diametro utensile" + +#: flatcamGUI/ObjectUI.py:2379 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:113 +msgid "for Excellon, total number of drills" +msgstr "per Excellon, numero totale di fori" + +#: flatcamGUI/ObjectUI.py:2381 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:115 +msgid "X coord for Toolchange" +msgstr "Coordinata X per il cambio utensile" + +#: flatcamGUI/ObjectUI.py:2382 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:116 +msgid "Y coord for Toolchange" +msgstr "Coordinata Y per il cambio utensile" + +#: flatcamGUI/ObjectUI.py:2383 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:118 +msgid "Z coord for Toolchange" +msgstr "Coordinata Z per il cambio utensile" + +#: flatcamGUI/ObjectUI.py:2384 +msgid "depth where to cut" +msgstr "profondità a cui tagliare" + +#: flatcamGUI/ObjectUI.py:2385 +msgid "height where to travel" +msgstr "altezza alla quale spostarsi" + +#: flatcamGUI/ObjectUI.py:2386 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:121 +msgid "the step value for multidepth cut" +msgstr "il passo per il taglio in più passaggi" + +#: flatcamGUI/ObjectUI.py:2388 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:123 +msgid "the value for the spindle speed" +msgstr "il valore della velocità del mandrino" + +#: flatcamGUI/ObjectUI.py:2390 +msgid "time to dwell to allow the spindle to reach it's set RPM" +msgstr "" +"tempo di attesa per permettere al mandrino di raggiungere la velocità in RPM" + +#: flatcamGUI/ObjectUI.py:2406 +msgid "View CNC Code" +msgstr "Vedi codice CNC" + +#: flatcamGUI/ObjectUI.py:2408 +msgid "" +"Opens TAB to view/modify/print G-Code\n" +"file." +msgstr "Apri TAB per vedere/modificare/stampare un file G-Code." + +#: flatcamGUI/ObjectUI.py:2413 +msgid "Save CNC Code" +msgstr "Calva codice CNC" + +#: flatcamGUI/ObjectUI.py:2415 +msgid "" +"Opens dialog to save G-Code\n" +"file." +msgstr "" +"Apri la finestra di salvataggio del file\n" +"G-Code." + +#: flatcamGUI/ObjectUI.py:2449 +msgid "Script Object" +msgstr "Oggetto script" + +#: flatcamGUI/ObjectUI.py:2469 flatcamGUI/ObjectUI.py:2543 +msgid "Auto Completer" +msgstr "Auto completatore" + +#: flatcamGUI/ObjectUI.py:2471 +msgid "This selects if the auto completer is enabled in the Script Editor." +msgstr "Seleziona se l'autocompletatore è attivo nell'editor Script." + +#: flatcamGUI/ObjectUI.py:2516 +msgid "Document Object" +msgstr "Oggetto documento" + +#: flatcamGUI/ObjectUI.py:2545 +msgid "This selects if the auto completer is enabled in the Document Editor." +msgstr "Seleziona se l'autocompletatore è attivo nell'editor Documenti." + +#: flatcamGUI/ObjectUI.py:2563 +msgid "Font Type" +msgstr "Tipo carattere" + +#: flatcamGUI/ObjectUI.py:2580 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:197 +msgid "Font Size" +msgstr "Dimensione carattere" + +#: flatcamGUI/ObjectUI.py:2616 +msgid "Alignment" +msgstr "Allineamento" + +#: flatcamGUI/ObjectUI.py:2621 +msgid "Align Left" +msgstr "Allinea a sinistra" + +#: flatcamGUI/ObjectUI.py:2631 +msgid "Align Right" +msgstr "Allinea a destra" + +#: flatcamGUI/ObjectUI.py:2636 +msgid "Justify" +msgstr "Giustifica" + +#: flatcamGUI/ObjectUI.py:2643 +msgid "Font Color" +msgstr "Colore carattere" + +#: flatcamGUI/ObjectUI.py:2645 +msgid "Set the font color for the selected text" +msgstr "Imposta il colore del carattere per il testo selezionato" + +#: flatcamGUI/ObjectUI.py:2659 +msgid "Selection Color" +msgstr "Selezione colore" + +#: flatcamGUI/ObjectUI.py:2661 +msgid "Set the selection color when doing text selection." +msgstr "Imposta il colore della selezione durante la selezione del testo." + +#: flatcamGUI/ObjectUI.py:2675 +msgid "Tab Size" +msgstr "Dimensione tab" + +#: flatcamGUI/ObjectUI.py:2677 +msgid "Set the tab size. In pixels. Default value is 80 pixels." +msgstr "" +"Imposta la dimensione del tab. In pixel. Il valore di default è 80 pixel." + +#: flatcamGUI/PlotCanvasLegacy.py:1299 +msgid "" +"Could not annotate due of a difference between the number of text elements " +"and the number of text positions." +msgstr "" +"Impossibile annotare a causa di una differenza tra il numero di elementi di " +"testo e il numero di posizioni di testo." + +#: flatcamGUI/preferences/PreferencesUIManager.py:907 +msgid "Preferences applied." +msgstr "Preferenze applicate." + +#: flatcamGUI/preferences/PreferencesUIManager.py:971 +msgid "Preferences closed without saving." +msgstr "Preferenze chiuse senza salvarle." + +#: flatcamGUI/preferences/PreferencesUIManager.py:983 +msgid "Preferences default values are restored." +msgstr "I valori predefiniti delle preferenze vengono ripristinati." + +#: flatcamGUI/preferences/PreferencesUIManager.py:1018 +#: flatcamGUI/preferences/PreferencesUIManager.py:1127 +msgid "Preferences saved." +msgstr "Preferenze salvate." + +#: flatcamGUI/preferences/PreferencesUIManager.py:1068 +msgid "Preferences edited but not saved." +msgstr "Preferenze modificate ma non salvate." + +#: flatcamGUI/preferences/PreferencesUIManager.py:1113 +msgid "" +"One or more values are changed.\n" +"Do you want to save the Preferences?" +msgstr "" +"Uno o più valori modificati.\n" +"Vuoi salvare le Preferenze?" + +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:27 +msgid "CNC Job Adv. Options" +msgstr "Opzioni avanzate CNC Job" + +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:64 +msgid "" +"Type here any G-Code commands you would like to be executed when Toolchange " +"event is encountered.\n" +"This will constitute a Custom Toolchange GCode, or a Toolchange Macro.\n" +"The FlatCAM variables are surrounded by '%' symbol.\n" +"WARNING: it can be used only with a preprocessor file that has " +"'toolchange_custom' in it's name." +msgstr "" +"Digita qui qualsiasi comando G-Code che desideri sia eseguito quando si " +"incontra un di evento Cambio Utensile.\n" +"Ciò costituirà un GCode di cambio utensile personalizzato, o una macro per " +"il cambio utensile.\n" +"Le variabili FlatCAM sono delimitate dal simbolo '%'.\n" +"ATTENZIONE: può essere utilizzato solo con un file preprocessore che " +"contenga 'toolchange_custom' nel nome." + +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:119 +msgid "Z depth for the cut" +msgstr "Profondità Z per il taglio" + +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:120 +msgid "Z height for travel" +msgstr "Altezza Z per gli spostamenti" + +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:126 +msgid "dwelltime = time to dwell to allow the spindle to reach it's set RPM" +msgstr "" +"tempo attesa = tempo per attendere che il mandrino raggiunga la velocità " +"finale in RPM" + +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:145 +msgid "Annotation Size" +msgstr "Dimensione annotazioni" + +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:147 +msgid "The font size of the annotation text. In pixels." +msgstr "La dimensione del testo delle annotazioni, in pixel." + +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:157 +msgid "Annotation Color" +msgstr "Colore annotazioni" + +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:159 +msgid "Set the font color for the annotation texts." +msgstr "Imposta il colore del carattere per i le annotazioni." + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:26 +msgid "CNC Job General" +msgstr "Generale CNC Job" + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:77 +#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:47 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:59 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:45 +msgid "Circle Steps" +msgstr "Passi cerchi" + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:79 +msgid "" +"The number of circle steps for GCode \n" +"circle and arc shapes linear approximation." +msgstr "" +"Il numero di passi circolari per approsimazioni lineari\n" +"di cerchi ed archi GCode ." + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:88 +msgid "Travel dia" +msgstr "Diametro spostamenti" + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:90 +msgid "" +"The width of the travel lines to be\n" +"rendered in the plot." +msgstr "" +"La larghezza delle linee da\n" +"disegnare a schermo per gli spostamenti." + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:103 +msgid "G-code Decimals" +msgstr "Decimali G-Code" + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:106 +#: flatcamTools/ToolFiducials.py:74 +msgid "Coordinates" +msgstr "Coordinate" + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:108 +msgid "" +"The number of decimals to be used for \n" +"the X, Y, Z coordinates in CNC code (GCODE, etc.)" +msgstr "" +"Number di decimali da usare per le coordinate\n" +"X, Y, Z nel codice CNC (GCODE, ecc.)" + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:119 +#: flatcamTools/ToolProperties.py:519 +msgid "Feedrate" +msgstr "Avanzamento" + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:121 +msgid "" +"The number of decimals to be used for \n" +"the Feedrate parameter in CNC code (GCODE, etc.)" +msgstr "" +"Number di decimali da usare per i parametri\n" +"di avanzamento nel codice CNC (GCODE, ecc.)" + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:132 +msgid "Coordinates type" +msgstr "Tipo coordinate" + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:134 +msgid "" +"The type of coordinates to be used in Gcode.\n" +"Can be:\n" +"- Absolute G90 -> the reference is the origin x=0, y=0\n" +"- Incremental G91 -> the reference is the previous position" +msgstr "" +"Il tipo di coordinate da utilizzare in Gcode.\n" +"Può essere:\n" +"- Asolute G90 -> il riferimento è l'origine x=0, y=0\n" +"- Incrementale G91 -> il riferimento è la posizione precedente" + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:140 +msgid "Absolute G90" +msgstr "Assolute G90" + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:141 +msgid "Incremental G91" +msgstr "Incrementale G91" + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:151 +msgid "Force Windows style line-ending" +msgstr "Imposta il fine linea di Windows" + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:153 +msgid "" +"When checked will force a Windows style line-ending\n" +"(\\r\\n) on non-Windows OS's." +msgstr "" +"Quando abilitato forzerà lo stile fine linea di windows\n" +"(\\r\\n) su sistemi non Windows." + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:165 +msgid "Travel Line Color" +msgstr "Colore linee spostamenti" + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:169 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:235 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:262 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:154 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:220 +#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:84 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:153 +#: flatcamTools/ToolRulesCheck.py:186 +msgid "Outline" +msgstr "Esterno" + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:171 +msgid "Set the travel line color for plotted objects." +msgstr "Imposta il colore per disegnare le linee degli spostamenti." + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:186 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:252 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:279 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:170 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:237 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:170 +msgid "Fill" +msgstr "Riempi" + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:188 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:254 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:281 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:172 +msgid "" +"Set the fill color for plotted objects.\n" +"First 6 digits are the color and the last 2\n" +"digits are for alpha (transparency) level." +msgstr "" +"Imposta il colore di riempimento per gli oggetti disegnati.\n" +"Le prime 6 cifre sono il colore e le ultime 2\n" +"cifre sono per il livello alfa (trasparenza)." + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:205 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:298 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:190 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:257 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:189 +msgid "Alpha" +msgstr "Alpha" + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:207 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:300 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:191 +msgid "Set the fill transparency for plotted objects." +msgstr "Imposta il livello di trasparenza per gli oggetti disegnati." + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:231 +msgid "CNCJob Object Color" +msgstr "Colore oggetti CNCJob" + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:237 +msgid "Set the color for plotted objects." +msgstr "Imposta il colore per gli oggetti CNC Job." + +#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:27 +msgid "CNC Job Options" +msgstr "Opzioni CNC Job" + +#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:31 +msgid "Export G-Code" +msgstr "Esporta G-Code" + +#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:47 +msgid "Prepend to G-Code" +msgstr "Anteponi al G-Code" + +#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:56 +msgid "" +"Type here any G-Code commands you would like to add at the beginning of the " +"G-Code file." +msgstr "" +"Scrivi qui qualsiasi comando G-Code che vuoi venga inserito all'inizio del " +"file G-Code." + +#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:63 +msgid "Append to G-Code" +msgstr "Accoda al G-Code" + +#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:73 +msgid "" +"Type here any G-Code commands you would like to append to the generated " +"file.\n" +"I.e.: M2 (End of program)" +msgstr "" +"Scrivi qui qualsiasi comando G-Code che vuoi venga inserito alla fine del " +"file G-Code.\n" +"Es: M2 (Fine programma)" + +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:27 +msgid "Excellon Adv. Options" +msgstr "Opzioni avanzate Ecellon" + +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:34 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:33 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:31 +msgid "Advanced Options" +msgstr "Opzioni avanzate" + +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:36 +msgid "" +"A list of Excellon advanced parameters.\n" +"Those parameters are available only for\n" +"Advanced App. Level." +msgstr "" +"Un elenco di parametri avanzati di Excellon.\n" +"Tali parametri sono disponibili solo per\n" +"App a livello avanzato." + +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:59 +msgid "Toolchange X,Y" +msgstr "Cambio Utensile X,Y" + +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:61 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:47 +msgid "Toolchange X,Y position." +msgstr "Posizione X, Y per il cambio utensile." + +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:121 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:134 +msgid "Spindle direction" +msgstr "Direzione mandrino" + +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:123 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:136 +msgid "" +"This sets the direction that the spindle is rotating.\n" +"It can be either:\n" +"- CW = clockwise or\n" +"- CCW = counter clockwise" +msgstr "" +"Questo imposta la direzione in cui il mandrino ruota.\n" +"Può essere:\n" +"- CW = orario o\n" +"- CCW = antiorario" + +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:134 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:148 +msgid "Fast Plunge" +msgstr "Affondo rapido" + +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:136 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:150 +msgid "" +"By checking this, the vertical move from\n" +"Z_Toolchange to Z_move is done with G0,\n" +"meaning the fastest speed available.\n" +"WARNING: the move is done at Toolchange X,Y coords." +msgstr "" +"Controllando questo, lo spostamento da\n" +"Z_Toolchange a Z_move è realizzato con G0,\n" +"ovvero alla velocità massima disponibile.\n" +"ATTENZIONE: la mossa viene eseguita alle coordinate X,Y del Cambio utensile." + +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:143 +msgid "Fast Retract" +msgstr "Ritrazione rapida" + +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:145 +msgid "" +"Exit hole strategy.\n" +" - When uncheked, while exiting the drilled hole the drill bit\n" +"will travel slow, with set feedrate (G1), up to zero depth and then\n" +"travel as fast as possible (G0) to the Z Move (travel height).\n" +" - When checked the travel from Z cut (cut depth) to Z_move\n" +"(travel height) is done as fast as possible (G0) in one move." +msgstr "" +"Strategia di uscita dai fori.\n" +" - Se non abilitata, mentre si esce dal foro, la punta del trapano\n" +"viaggerà lentamente, con avanzamento impostato (G1), fino a zero profondità " +"e poi\n" +"viaggerà il più velocemente possibile (G0) verso Z Move (altezza per gli " +"spostamenti).\n" +" - Se selezionata, la corsa da Z di taglio (profondità di taglio) a Z_move\n" +"(altezza per gli spostamenti) viene eseguita il più velocemente possibile " +"(G0) in una sola mossa." + +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:32 +msgid "A list of Excellon Editor parameters." +msgstr "Una lista di parametri di edit Excellon." + +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:40 +#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:41 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:41 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:194 +msgid "Selection limit" +msgstr "Limite selezione" + +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:42 +msgid "" +"Set the number of selected Excellon geometry\n" +"items above which the utility geometry\n" +"becomes just a selection rectangle.\n" +"Increases the performance when moving a\n" +"large number of geometric elements." +msgstr "" +"Imposta il numero di elementi di geometria\n" +"Excellon selezionata sopra i quali la geometria\n" +"diventa un rettangolo di selezione.\n" +"Aumenta le prestazioni quando si usano un\n" +"gran numero di elementi geometrici." + +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:55 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:117 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:123 +msgid "New Dia" +msgstr "Nuovo diametro" + +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:80 +msgid "Linear Drill Array" +msgstr "Matrice lineare di fori" + +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:84 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:232 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:120 +msgid "Linear Direction" +msgstr "Direzione lineare" + +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:126 +msgid "Circular Drill Array" +msgstr "Matrice circolare di fori" + +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:130 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:280 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:164 +msgid "Circular Direction" +msgstr "Direzione circolare" + +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:132 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:282 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:166 +msgid "" +"Direction for circular array.\n" +"Can be CW = clockwise or CCW = counter clockwise." +msgstr "" +"Direzione matrice circolare.\n" +"Può essere CW = senso orario o CCW = senso antiorario." + +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:143 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:293 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:177 +msgid "Circular Angle" +msgstr "Ancolo circolare" + +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:196 +msgid "" +"Angle at which the slot is placed.\n" +"The precision is of max 2 decimals.\n" +"Min value is: -359.99 degrees.\n" +"Max value is: 360.00 degrees." +msgstr "" +"Angolo a cui è posizionata lo slot.\n" +"La precisione è di massimo 2 decimali.\n" +"Il valore minimo è: -359,99 gradi.\n" +"Il valore massimo è: 360,00 gradi." + +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:215 +msgid "Linear Slot Array" +msgstr "Matrice lineare di slot" + +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:276 +msgid "Circular Slot Array" +msgstr "Matrice circolare di slot" + +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:26 +msgid "Excellon Export" +msgstr "Exporta Excellon" + +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:30 +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:31 +msgid "Export Options" +msgstr "Opzioni esportazione" + +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:32 +msgid "" +"The parameters set here are used in the file exported\n" +"when using the File -> Export -> Export Excellon menu entry." +msgstr "" +"I parametri impostati qui vengono utilizzati nel file esportato\n" +"quando si utilizza la voce di menu File -> Esporta -> Esporta Excellon." + +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:41 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:163 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:39 +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:42 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:82 +#: flatcamTools/ToolDistance.py:56 flatcamTools/ToolDistanceMin.py:50 +#: flatcamTools/ToolPcbWizard.py:127 flatcamTools/ToolProperties.py:154 +msgid "Units" +msgstr "Unità" + +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:43 +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:49 +msgid "The units used in the Excellon file." +msgstr "Unità usate nel file Excellon." + +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:46 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:87 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:173 +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:47 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:87 +#: flatcamTools/ToolCalculators.py:61 flatcamTools/ToolPcbWizard.py:125 +msgid "INCH" +msgstr "POLLICI" + +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:47 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:174 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:43 +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:48 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:88 +#: flatcamTools/ToolCalculators.py:62 flatcamTools/ToolPcbWizard.py:126 +msgid "MM" +msgstr "MM" + +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:55 +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:56 +msgid "Int/Decimals" +msgstr "Int/Decimali" + +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:57 +msgid "" +"The NC drill files, usually named Excellon files\n" +"are files that can be found in different formats.\n" +"Here we set the format used when the provided\n" +"coordinates are not using period." +msgstr "" +"I file di forature NC, generalmente detti file Excellon\n" +"sono file che possono essere trovati in diversi formati.\n" +"Qui impostiamo il formato utilizzato quando le coordinate\n" +"fornite non utilizzano la virgola." + +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:69 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:95 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:124 +msgid "" +"This numbers signify the number of digits in\n" +"the whole part of Excellon coordinates." +msgstr "" +"Questi numeri indicano il numero di cifre nella\n" +"parte intera delle coordinate di Excellon." + +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:82 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:108 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:137 +msgid "" +"This numbers signify the number of digits in\n" +"the decimal part of Excellon coordinates." +msgstr "" +"Questi numeri indicano il numero di cifre nella\n" +"parte decimale delle coordinate di Excellon." + +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:91 +msgid "Format" +msgstr "Formato" + +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:93 +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:103 +msgid "" +"Select the kind of coordinates format used.\n" +"Coordinates can be saved with decimal point or without.\n" +"When there is no decimal point, it is required to specify\n" +"the number of digits for integer part and the number of decimals.\n" +"Also it will have to be specified if LZ = leading zeros are kept\n" +"or TZ = trailing zeros are kept." +msgstr "" +"Seleziona il tipo di formato di coordinate utilizzato.\n" +"Le coordinate possono essere salvate con punto decimale o senza.\n" +"Quando non è presente un punto decimale, è necessario specificare\n" +"il numero di cifre per la parte intera e il numero di decimali.\n" +"Inoltre dovrà essere specificato se ZI = zeri iniziali vengono mantenuti\n" +"o ZF = vengono mantenuti gli zeri finali." + +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:100 +msgid "Decimal" +msgstr "Decimale" + +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:101 +msgid "No-Decimal" +msgstr "Non-decimale" + +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:114 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:145 +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:96 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:97 +msgid "Zeros" +msgstr "Zeri" + +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:117 +msgid "" +"This sets the type of Excellon zeros.\n" +"If LZ then Leading Zeros are kept and\n" +"Trailing Zeros are removed.\n" +"If TZ is checked then Trailing Zeros are kept\n" +"and Leading Zeros are removed." +msgstr "" +"Questo imposta il tipo di zeri di Excellon.\n" +"Se ZI, gli Zeri iniziali vengono mantenuti e\n" +"Gli zeri finali vengono rimossi.\n" +"Se ZF è selezionato, gli Zeri finali vengono mantenuti\n" +"e gli zeri iniziali vengono rimossi." + +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:124 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:158 +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:106 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:107 +#: flatcamTools/ToolPcbWizard.py:111 +msgid "LZ" +msgstr "ZI" + +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:125 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:159 +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:107 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:108 +#: flatcamTools/ToolPcbWizard.py:112 +msgid "TZ" +msgstr "ZF" + +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:127 +msgid "" +"This sets the default type of Excellon zeros.\n" +"If LZ then Leading Zeros are kept and\n" +"Trailing Zeros are removed.\n" +"If TZ is checked then Trailing Zeros are kept\n" +"and Leading Zeros are removed." +msgstr "" +"Questo imposta il tipo di default degli zeri di Excellon.\n" +"Se ZI, gli Zeri iniziali vengono mantenuti e\n" +"Gli zeri finali vengono rimossi.\n" +"Se ZF è selezionato, gli Zeri finali vengono mantenuti\n" +"e gli zeri iniziali vengono rimossi." + +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:137 +msgid "Slot type" +msgstr "Tipo slot" + +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:140 +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:150 +msgid "" +"This sets how the slots will be exported.\n" +"If ROUTED then the slots will be routed\n" +"using M15/M16 commands.\n" +"If DRILLED(G85) the slots will be exported\n" +"using the Drilled slot command (G85)." +msgstr "" +"Questo imposta il modo in cui verranno esportati gli slot.\n" +"Se FRESATO, gli slot verranno lavorati\n" +"utilizzando i comandi M15 / M16.\n" +"Se FORATO (G85) gli slot verranno esportati\n" +"utilizzando il comando Drill slot (G85)." + +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:147 +msgid "Routed" +msgstr "Fresato" + +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:148 +msgid "Drilled(G85)" +msgstr "Forato" + +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:29 +msgid "Excellon General" +msgstr "Generali Excellon" + +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:62 +msgid "Excellon Format" +msgstr "Formato Excellon" + +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:64 +msgid "" +"The NC drill files, usually named Excellon files\n" +"are files that can be found in different formats.\n" +"Here we set the format used when the provided\n" +"coordinates are not using period.\n" +"\n" +"Possible presets:\n" +"\n" +"PROTEUS 3:3 MM LZ\n" +"DipTrace 5:2 MM TZ\n" +"DipTrace 4:3 MM LZ\n" +"\n" +"EAGLE 3:3 MM TZ\n" +"EAGLE 4:3 MM TZ\n" +"EAGLE 2:5 INCH TZ\n" +"EAGLE 3:5 INCH TZ\n" +"\n" +"ALTIUM 2:4 INCH LZ\n" +"Sprint Layout 2:4 INCH LZ\n" +"KiCAD 3:5 INCH TZ" +msgstr "" +"I file di foratura (NC), generalmente denominati file Excellon,\n" +"sono file che possono essere creati in diversi formati.\n" +"Qui impostiamo il formato utilizzato quando le coordinate\n" +"fornite non utilizzano il punto.\n" +"\n" +"Possibili impostazioni:\n" +"\n" +"PROTEUS 3: 3 MM ZI\n" +"DipTrace 5: 2 MM ZF\n" +"DipTrace 4: 3 MM ZI\n" +"\n" +"EAGLE 3: 3 MM ZF\n" +"EAGLE 4: 3 MM ZF\n" +"EAGLE 2: 5 POLLICI ZF\n" +"EAGLE 3: 5 POLLICI ZF\n" +"\n" +"ALTIUM 2: 4 POLLICI ZI\n" +"Sprint Layout 2: 4 POLLICI ZI\n" +"KiCAD 3: 5 POLLICI ZF" + +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:88 +msgid "Default values for INCH are 2:4" +msgstr "I valori di default per i POLLICI sono 2:4" + +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:116 +msgid "METRIC" +msgstr "METRICA" + +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:117 +msgid "Default values for METRIC are 3:3" +msgstr "I valori di default per i METRICI sono 3:3" + +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:148 +msgid "" +"This sets the type of Excellon zeros.\n" +"If LZ then Leading Zeros are kept and\n" +"Trailing Zeros are removed.\n" +"If TZ is checked then Trailing Zeros are kept\n" +"and Leading Zeros are removed.\n" +"\n" +"This is used when there is no information\n" +"stored in the Excellon file." +msgstr "" +"Questo imposta il tipo di zeri di Excellon.\n" +"Se ZI, gli Zeri iniziali vengono mantenuti e\n" +"Gli zeri finali vengono rimossi.\n" +"Se ZF è selezionato, gli Zeri finali vengono mantenuti\n" +"e gli zeri iniziali vengono rimossi.\n" +"\n" +"Questo è usato quando non ci sono informazioni\n" +"memorizzato nel file Excellon." + +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:166 +msgid "" +"This sets the default units of Excellon files.\n" +"If it is not detected in the parsed file the value here\n" +"will be used.Some Excellon files don't have an header\n" +"therefore this parameter will be used." +msgstr "" +"Questo imposta le unità predefinite dei file Excellon.\n" +"Se non viene rilevato nel file analizzato, sarà usato il valore qui\n" +"contenuto. Alcuni file Excellon non hanno un'intestazione\n" +"pertanto verrà utilizzato questo parametro." + +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:176 +msgid "" +"This sets the units of Excellon files.\n" +"Some Excellon files don't have an header\n" +"therefore this parameter will be used." +msgstr "" +"Questo imposta le unità dei file Excellon.\n" +"Alcuni file di Excellon non hanno un'intestazione\n" +"pertanto verrà utilizzato questo parametro." + +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:184 +msgid "Update Export settings" +msgstr "Aggiorna impostazioni esportazione" + +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:201 +msgid "Excellon Optimization" +msgstr "Ottimizzazione Excellon" + +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:204 +msgid "Algorithm:" +msgstr "Algoritmo:" + +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:206 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:222 +msgid "" +"This sets the optimization type for the Excellon drill path.\n" +"If <> is checked then Google OR-Tools algorithm with\n" +"MetaHeuristic Guided Local Path is used. Default search time is 3sec.\n" +"If <> is checked then Google OR-Tools Basic algorithm is used.\n" +"If <> is checked then Travelling Salesman algorithm is used for\n" +"drill path optimization.\n" +"\n" +"If this control is disabled, then FlatCAM works in 32bit mode and it uses\n" +"Travelling Salesman algorithm for path optimization." +msgstr "" +"Questo imposta il tipo di ottimizzazione per il percorso di perforazione di " +"Excellon.\n" +"Se è selezionato <>, allora sarà usato l'algoritmo di Google " +"OR-Tools con\n" +"percorso locale guidato meta-euristico. Il tempo di ricerca predefinito è 3 " +"secondi.\n" +"Se è selezionato <>, viene utilizzato l'algoritmo Google OR-Tools " +"Basic.\n" +"Se è selezionato <>, viene utilizzato l'algoritmo del commesso " +"viaggiatore per\n" +"l'ottimizzazione del percorso di perforazione.\n" +"\n" +"Se questo controllo è disabilitato, FlatCAM funzionerà in modalità 32 bit e " +"utilizzerà\n" +"l'algoritmo del commesso viaggiatore per l'ottimizzazione del percorso." + +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:217 +msgid "MetaHeuristic" +msgstr "MetaHeuristic" + +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:218 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:104 +#: flatcamObjects/FlatCAMExcellon.py:614 flatcamObjects/FlatCAMGeometry.py:485 +#: flatcamObjects/FlatCAMGerber.py:251 +msgid "Basic" +msgstr "Base" + +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:219 +msgid "TSA" +msgstr "ACV" + +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:236 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:245 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:237 +msgid "Duration" +msgstr "Durata" + +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:239 +msgid "" +"When OR-Tools Metaheuristic (MH) is enabled there is a\n" +"maximum threshold for how much time is spent doing the\n" +"path optimization. This max duration is set here.\n" +"In seconds." +msgstr "" +"Quando OR-Tools Metaheuristic (MH) è abilitato, c'è una\n" +"soglia massima per il tempo impiegato ad ottimizzare i percorsi.\n" +"Questa durata massima è impostata qui.\n" +"In secondi." + +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:258 +msgid "Excellon Object Color" +msgstr "Colore oggetti Excellon" + +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:264 +#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:86 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:155 +msgid "Set the line color for plotted objects." +msgstr "Imposta il colore della linea che disegna gli oggetti Gerber." + +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:29 +msgid "Excellon Options" +msgstr "Opzioni Excellon" + +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:33 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:34 +msgid "Create CNC Job" +msgstr "Crea lavoro CNC" + +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:35 +msgid "" +"Parameters used to create a CNC Job object\n" +"for this drill object." +msgstr "" +"Parametri usati per creare un oggetto CNC Job\n" +"per questo oggetto foro." + +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:152 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:121 +msgid "Tool change" +msgstr "Cambio utensile" + +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:236 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:232 +msgid "Enable Dwell" +msgstr "Abilita attesa" + +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:259 +msgid "" +"The preprocessor JSON file that dictates\n" +"Gcode output." +msgstr "" +"File JSON del preprocessore che istruisce\n" +"il GCode di uscita." + +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:270 +msgid "Gcode" +msgstr "GCode" + +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:272 +msgid "" +"Choose what to use for GCode generation:\n" +"'Drills', 'Slots' or 'Both'.\n" +"When choosing 'Slots' or 'Both', slots will be\n" +"converted to drills." +msgstr "" +"Scegli cosa utilizzare per la generazione GCode:\n" +"'Forature', 'Slot' o 'Entrambi'.\n" +"Quando si sceglie 'Slot' o 'Entrambi', le slot saranno\n" +"convertite in fori." + +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:288 +msgid "Mill Holes" +msgstr "Fresatura fori" + +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:290 +msgid "Create Geometry for milling holes." +msgstr "Crea Geometrie per forare i buchi." + +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:294 +msgid "Drill Tool dia" +msgstr "Diametro udensile foratura" + +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:305 +msgid "Slot Tool dia" +msgstr "Diametro utensile Slot" + +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:307 +msgid "" +"Diameter of the cutting tool\n" +"when milling slots." +msgstr "" +"Diametro dell'utensile da taglio\n" +"che fresa gli slot." + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:28 +msgid "App Settings" +msgstr "Impostazioni App" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:49 +msgid "Grid Settings" +msgstr "Impostazioni Griglia" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:53 +msgid "X value" +msgstr "Valore X" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:55 +msgid "This is the Grid snap value on X axis." +msgstr "Questo è il valore di snap alla griglia sull'asse X." + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:65 +msgid "Y value" +msgstr "Valore Y" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:67 +msgid "This is the Grid snap value on Y axis." +msgstr "Questo è il valore di snap alla griglia sull'asse Y." + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:77 +msgid "Snap Max" +msgstr "Snap massimo" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:92 +msgid "Workspace Settings" +msgstr "Impostazioni area di lavoro" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:95 +msgid "Active" +msgstr "Attivo" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:97 +msgid "" +"Draw a delimiting rectangle on canvas.\n" +"The purpose is to illustrate the limits for our work." +msgstr "" +"Disegna un rettangolo delimitante.\n" +"Lo scopo è quello di mostrare i limiti del nostro lavoro." + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:105 +msgid "" +"Select the type of rectangle to be used on canvas,\n" +"as valid workspace." +msgstr "" +"Seleziona il tipo di rettangolo da utilizzare,\n" +"come spazio di lavoro valido." + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:171 +msgid "Orientation" +msgstr "Orientamento" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:172 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:239 +#: flatcamTools/ToolFilm.py:422 +msgid "" +"Can be:\n" +"- Portrait\n" +"- Landscape" +msgstr "" +"Può essere:\n" +"- Verticale\n" +"- Orizzontale" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:176 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:243 +#: flatcamTools/ToolFilm.py:426 +msgid "Portrait" +msgstr "Verticale" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:177 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:244 +#: flatcamTools/ToolFilm.py:427 +msgid "Landscape" +msgstr "Orizzontale" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:201 +msgid "Notebook" +msgstr "Blocco note" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:203 +msgid "" +"This sets the font size for the elements found in the Notebook.\n" +"The notebook is the collapsible area in the left side of the GUI,\n" +"and include the Project, Selected and Tool tabs." +msgstr "" +"Questo imposta la dimensione del carattere per gli elementi trovati nel " +"blocco note.\n" +"Il blocco note è l'area comprimibile nella parte sinistra della GUI,\n" +"e include le schede Progetto, Selezionato e Strumento." + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:222 +msgid "Axis" +msgstr "Assi" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:224 +msgid "This sets the font size for canvas axis." +msgstr "Questo imposta la dimensione del carattere per gli assi." + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:241 +msgid "Textbox" +msgstr "Box testo" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:243 +msgid "" +"This sets the font size for the Textbox GUI\n" +"elements that are used in FlatCAM." +msgstr "" +"Ciò imposta la dimensione del carattere per gli elementi delle box testo\n" +"della GUI utilizzati in FlatCAM." + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:269 +msgid "Mouse Settings" +msgstr "Impostazioni mouse" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:273 +msgid "Cursor Shape" +msgstr "Forma cursore" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:275 +msgid "" +"Choose a mouse cursor shape.\n" +"- Small -> with a customizable size.\n" +"- Big -> Infinite lines" +msgstr "" +"Scegli una forma del cursore del mouse.\n" +"- Piccolo -> con dimensioni personalizzabili.\n" +"- Grande -> Linee infinite" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:281 +msgid "Small" +msgstr "Piccolo" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:282 +msgid "Big" +msgstr "Grande" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:289 +msgid "Cursor Size" +msgstr "Dimensione cursore" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:291 +msgid "Set the size of the mouse cursor, in pixels." +msgstr "Imposta la dimensione del cursore del mouse, in pixel." + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:302 +msgid "Cursor Width" +msgstr "Larghezza cursore" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:304 +msgid "Set the line width of the mouse cursor, in pixels." +msgstr "Imposta la larghezza della linea del cursore del mouse, in pixel." + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:315 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:322 +msgid "Cursor Color" +msgstr "Colore cursore" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:317 +msgid "Check this box to color mouse cursor." +msgstr "Seleziona questa casella per colorare il cursore del mouse." + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:324 +msgid "Set the color of the mouse cursor." +msgstr "Imposta il colore del cursore del mouse." + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:347 +msgid "Pan Button" +msgstr "Pulsante panorama" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:349 +msgid "" +"Select the mouse button to use for panning:\n" +"- MMB --> Middle Mouse Button\n" +"- RMB --> Right Mouse Button" +msgstr "" +"Seleziona il pulsante del mouse da utilizzare per le panoramiche (panning):\n" +"- PCM -> Pulsante centrale del mouse\n" +"- PDM -> Pulsante destro del mouse" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:353 +msgid "MMB" +msgstr "PCM" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:354 +msgid "RMB" +msgstr "PDM" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:360 +msgid "Multiple Selection" +msgstr "Selezione multipla" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:362 +msgid "Select the key used for multiple selection." +msgstr "Imposta il tasto per le selezioni multiple." + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:364 +msgid "CTRL" +msgstr "CTRL" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:365 +msgid "SHIFT" +msgstr "SHIFT" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:376 +msgid "Delete object confirmation" +msgstr "Conferma eliminazione oggetto" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:378 +msgid "" +"When checked the application will ask for user confirmation\n" +"whenever the Delete object(s) event is triggered, either by\n" +"menu shortcut or key shortcut." +msgstr "" +"Se selezionata, l'applicazione richiederà la conferma all'utente\n" +"ogni volta che viene attivato l'evento Elimina oggetto/i, da\n" +"scorciatoia menu o da tasto di scelta rapida." + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:385 +msgid "\"Open\" behavior" +msgstr "Comportamento \"Apri\"" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:387 +msgid "" +"When checked the path for the last saved file is used when saving files,\n" +"and the path for the last opened file is used when opening files.\n" +"\n" +"When unchecked the path for opening files is the one used last: either the\n" +"path for saving files or the path for opening files." +msgstr "" +"Se selezionato, il percorso dell'ultimo file salvato viene utilizzato " +"durante il salvataggio dei file,\n" +"e il percorso dell'ultimo file aperto viene utilizzato durante l'apertura " +"dei file.\n" +"\n" +"Se deselezionato, il percorso di apertura dei file è quello utilizzato per " +"ultimo: sia\n" +"percorso di salvataggio sia percorso di apertura dei file." + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:396 +msgid "Enable ToolTips" +msgstr "Abilita ToolTips" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:398 +msgid "" +"Check this box if you want to have toolTips displayed\n" +"when hovering with mouse over items throughout the App." +msgstr "" +"Selezionare questa casella se si desidera visualizzare le descrizioni " +"comandi\n" +"quando si passa con il mouse sugli oggetti in tutta l'app." + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:405 +msgid "Allow Machinist Unsafe Settings" +msgstr "Consenti le impostazioni non sicure dell'operatore" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:407 +msgid "" +"If checked, some of the application settings will be allowed\n" +"to have values that are usually unsafe to use.\n" +"Like Z travel negative values or Z Cut positive values.\n" +"It will applied at the next application start.\n" +"<>: Don't change this unless you know what you are doing !!!" +msgstr "" +"Se selezionato, alcune impostazioni dell'applicazione potranno\n" +"avere valori che di solito non sono sicuri da usare.\n" +"Come spostamenti in Z con valori negativi o tagli in Z con valori positivi.\n" +"Verrà applicato al successivo avvio dell'applicazione.\n" +"<>: non cambiarlo se non sai cosa stai facendo !!!" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:419 +msgid "Bookmarks limit" +msgstr "Limite segnalibri" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:421 +msgid "" +"The maximum number of bookmarks that may be installed in the menu.\n" +"The number of bookmarks in the bookmark manager may be greater\n" +"but the menu will hold only so much." +msgstr "" +"Il massimo numero di sgnalibri che possono essere installati nel menu.\n" +"Il numero di segnalibri nel gestore segnalibri può essere maggiore\n" +"ma il menu ne conterrà solo la quantità qui specificata." + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:430 +msgid "Activity Icon" +msgstr "Icona attività" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:432 +msgid "Select the GIF that show activity when FlatCAM is active." +msgstr "Selezione una GIF che mostra quando FlatCAM è attivo." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:29 +msgid "App Preferences" +msgstr "Preferenze App" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:40 +msgid "" +"The default value for FlatCAM units.\n" +"Whatever is selected here is set every time\n" +"FlatCAM is started." +msgstr "" +"Il valore predefinito per le unità FlatCAM.\n" +"Qualunque cosa sia qui selezionata verrà impostata ad ogni\n" +"avvio di FlatCAM." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:44 +msgid "IN" +msgstr "IN" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:50 +msgid "Precision MM" +msgstr "Precisione MM" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:52 +msgid "" +"The number of decimals used throughout the application\n" +"when the set units are in METRIC system.\n" +"Any change here require an application restart." +msgstr "" +"Numero di decimali usati nell'applicazione\n" +"quando è impostata l'unità del sistema METRICO.\n" +"Ogni modifica richiederà il riavvio del programma." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:64 +msgid "Precision INCH" +msgstr "Precisione POLLICI" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:66 +msgid "" +"The number of decimals used throughout the application\n" +"when the set units are in INCH system.\n" +"Any change here require an application restart." +msgstr "" +"Numero di decimali usati nell'applicazione\n" +"quando è impostata l'unità del sistema POLLICI.\n" +"Ogni modifica richiederà il riavvio del programma." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:78 +msgid "Graphic Engine" +msgstr "Motore grafico" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:79 +msgid "" +"Choose what graphic engine to use in FlatCAM.\n" +"Legacy(2D) -> reduced functionality, slow performance but enhanced " +"compatibility.\n" +"OpenGL(3D) -> full functionality, high performance\n" +"Some graphic cards are too old and do not work in OpenGL(3D) mode, like:\n" +"Intel HD3000 or older. In this case the plot area will be black therefore\n" +"use the Legacy(2D) mode." +msgstr "" +"Scegli quale motore grafico utilizzare in FlatCAM.\n" +"Legacy (2D) -> funzionalità ridotta, prestazioni lente ma compatibilità " +"migliore.\n" +"OpenGL (3D) -> piena funzionalità, alte prestazioni\n" +"Alcune schede grafiche sono troppo vecchie e non funzionano in modalità " +"OpenGL (3D), come:\n" +"Intel HD3000 o precedente. In questo caso l'area della trama apparirà nera\n" +"quindi usa la modalità Legacy (2D)." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:85 +msgid "Legacy(2D)" +msgstr "Legacy(2D)" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:86 +msgid "OpenGL(3D)" +msgstr "OpenGL(3D)" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:98 +msgid "APP. LEVEL" +msgstr "LIVELLO APP" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:99 +msgid "" +"Choose the default level of usage for FlatCAM.\n" +"BASIC level -> reduced functionality, best for beginner's.\n" +"ADVANCED level -> full functionality.\n" +"\n" +"The choice here will influence the parameters in\n" +"the Selected Tab for all kinds of FlatCAM objects." +msgstr "" +"Scegli il livello di utilizzo predefinito per FlatCAM.\n" +"Livello BASE -> funzionalità ridotta, ideale per i principianti.\n" +"Livello AVANZATO -> piena funzionalità.\n" +"\n" +"La scelta qui influenzerà i parametri nelle\n" +"schede selezionate per tutti i tipi di oggetti FlatCAM." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:105 +#: flatcamObjects/FlatCAMExcellon.py:627 flatcamObjects/FlatCAMGeometry.py:506 +#: flatcamObjects/FlatCAMGerber.py:278 +msgid "Advanced" +msgstr "Avanzato" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:111 +msgid "Portable app" +msgstr "App portabile" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:112 +msgid "" +"Choose if the application should run as portable.\n" +"\n" +"If Checked the application will run portable,\n" +"which means that the preferences files will be saved\n" +"in the application folder, in the lib\\config subfolder." +msgstr "" +"Scegli se l'applicazione deve essere eseguita come portabile.\n" +"\n" +"Se selezionata l'applicazione funzionerà come portabile,\n" +"ciò significa che i file delle preferenze verranno salvati\n" +"nella cartella dell'applicazione, nella sottocartella lib\\config." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:125 +msgid "Languages" +msgstr "Lingua" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:126 +msgid "Set the language used throughout FlatCAM." +msgstr "Imposta la lingua usata in FlatCAM." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:132 +msgid "Apply Language" +msgstr "Applica lingua" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:133 +msgid "" +"Set the language used throughout FlatCAM.\n" +"The app will restart after click." +msgstr "" +"Imposta la lingua usata in FlatCAM. L'App verrà riavviata dopo il click." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:147 +msgid "Startup Settings" +msgstr "Impostazioni avvio" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:151 +msgid "Splash Screen" +msgstr "Schermata iniziale" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:153 +msgid "Enable display of the splash screen at application startup." +msgstr "Abilita la visualizzazione della schermata iniziale all'avvio." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:165 +msgid "Sys Tray Icon" +msgstr "Icona barra di sistema" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:167 +msgid "Enable display of FlatCAM icon in Sys Tray." +msgstr "Abilita l'icona di FlatCAM nella barra di sistema." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:172 +msgid "Show Shell" +msgstr "Mostra shell" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:174 +msgid "" +"Check this box if you want the shell to\n" +"start automatically at startup." +msgstr "" +"Seleziona questa casella se vuoi che la shell sia eseguita\n" +"automaticamente all'avvio." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:181 +msgid "Show Project" +msgstr "Mostra progetto" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:183 +msgid "" +"Check this box if you want the project/selected/tool tab area to\n" +"to be shown automatically at startup." +msgstr "" +"Selezionare questa casella se si desidera che l'area del progetto/selezione/" +"scheda strumenti\n" +"sia mostrata automaticamente all'avvio." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:189 +msgid "Version Check" +msgstr "Controllo versione" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:191 +msgid "" +"Check this box if you want to check\n" +"for a new version automatically at startup." +msgstr "" +"Selezionare questa casella se si desidera controllare\n" +"automaticamente all'avvio la presenza di una nuova versione." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:198 +msgid "Send Statistics" +msgstr "Invia statistiche" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:200 +msgid "" +"Check this box if you agree to send anonymous\n" +"stats automatically at startup, to help improve FlatCAM." +msgstr "" +"Seleziona questa casella se accetti di inviare anonimamente\n" +"alcune statistiche all'avvio, per aiutare a migliorare FlatCAM." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:214 +msgid "Workers number" +msgstr "Numero lavori" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:216 +msgid "" +"The number of Qthreads made available to the App.\n" +"A bigger number may finish the jobs more quickly but\n" +"depending on your computer speed, may make the App\n" +"unresponsive. Can have a value between 2 and 16.\n" +"Default value is 2.\n" +"After change, it will be applied at next App start." +msgstr "" +"Il numero di processi resi disponibili all'app.\n" +"Un numero maggiore può finire i lavori più rapidamente ma\n" +"a seconda della velocità del tuo computer, potrebbe rendere l'app\n" +"non responsiva. Può avere un valore compreso tra 2 e 16.\n" +"Il valore predefinito è 2.\n" +"Ogni modifica sarà applicata al prossimo avvio dell'app." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:230 +msgid "Geo Tolerance" +msgstr "Tolleranza geometrie" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:232 +msgid "" +"This value can counter the effect of the Circle Steps\n" +"parameter. Default value is 0.005.\n" +"A lower value will increase the detail both in image\n" +"and in Gcode for the circles, with a higher cost in\n" +"performance. Higher value will provide more\n" +"performance at the expense of level of detail." +msgstr "" +"Questo valore può contenere l'effetto dei passi nei Cerchi.\n" +"Il valore predefinito è 0,005.\n" +"Un valore più basso aumenterà i dettagli sia nell'immagine\n" +"e nel Gcode per i cerchi ma con un costo maggiore in\n" +"termini di prestazioni. Un valore più elevato fornirà più\n" +"prestazioni a scapito del livello di dettaglio." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:252 +msgid "Save Settings" +msgstr "Salva impostazioni" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:256 +msgid "Save Compressed Project" +msgstr "Salva progetti ompressi" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:258 +msgid "" +"Whether to save a compressed or uncompressed project.\n" +"When checked it will save a compressed FlatCAM project." +msgstr "" +"Imposta se salvare un progetto compresso o non compresso.\n" +"Se selezionato, salverà un progetto FlatCAM compresso." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:267 +msgid "Compression" +msgstr "Compressione" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:269 +msgid "" +"The level of compression used when saving\n" +"a FlatCAM project. Higher value means better compression\n" +"but require more RAM usage and more processing time." +msgstr "" +"Il livello di compressione utilizzato durante il salvataggio di\n" +"progetti FlatCAM. Un valore più alto significa una maggior compressione\n" +"ma richiede più utilizzo di RAM e più tempo di elaborazione." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:280 +msgid "Enable Auto Save" +msgstr "Abilita autosalvataggio" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:282 +msgid "" +"Check to enable the autosave feature.\n" +"When enabled, the application will try to save a project\n" +"at the set interval." +msgstr "" +"Attiva per abilitare il salvataggio automatico.\n" +"Quanto attivo, l'applicazione tenterà di salvare il progetto\n" +"ad intervalli regolari." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:292 +msgid "Interval" +msgstr "Intervallo" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:294 +msgid "" +"Time interval for autosaving. In milliseconds.\n" +"The application will try to save periodically but only\n" +"if the project was saved manually at least once.\n" +"While active, some operations may block this feature." +msgstr "" +"Intervallo di tempo per il salvataggio automatico. In millisecondi.\n" +"L'applicazione proverà a salvare periodicamente ma solo\n" +"se il progetto è stato salvato manualmente almeno una volta.\n" +"Quando attivo, alcune operazioni potrebbero bloccare questa funzione." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:310 +msgid "Text to PDF parameters" +msgstr "Parametri conversione da testo a PDF" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:312 +msgid "Used when saving text in Code Editor or in FlatCAM Document objects." +msgstr "" +"Utilizzato quando si salva il testo nell'editor di Codice o negli oggetti " +"documento di FlatCAM." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:321 +msgid "Top Margin" +msgstr "Margine superiore" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:323 +msgid "Distance between text body and the top of the PDF file." +msgstr "Distanza fra il corpo del testo e il bordo superiore del file PDF." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:334 +msgid "Bottom Margin" +msgstr "Margine inferiore" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:336 +msgid "Distance between text body and the bottom of the PDF file." +msgstr "Distanza fra il corpo del testo e il bordo inferiore del file PDF." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:347 +msgid "Left Margin" +msgstr "Margine sinistro" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:349 +msgid "Distance between text body and the left of the PDF file." +msgstr "Distanza fra il corpo del testo e il bordo sinistro del file PDF." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:360 +msgid "Right Margin" +msgstr "Margine destro" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:362 +msgid "Distance between text body and the right of the PDF file." +msgstr "Distanza fra il corpo del testo e il bordo destro del file PDF." + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:26 +msgid "GUI Preferences" +msgstr "Preferenze GUI" + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:36 +msgid "Theme" +msgstr "Tema" + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:38 +msgid "" +"Select a theme for FlatCAM.\n" +"It will theme the plot area." +msgstr "" +"Seleziona un tema per FlatCAM.\n" +"Sarà applicato all'area di plot." + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:43 +msgid "Light" +msgstr "Chiaro" + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:44 +msgid "Dark" +msgstr "Scuro" + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:51 +msgid "Use Gray Icons" +msgstr "Usa icone grige" + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:53 +msgid "" +"Check this box to use a set of icons with\n" +"a lighter (gray) color. To be used when a\n" +"full dark theme is applied." +msgstr "" +"Seleziona questa casella per utilizzare un set di icone con\n" +"un colore più chiaro (grigio). Da usare quando\n" +"viene applicato il tema scuro." + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:59 +msgid "Apply Theme" +msgstr "Applica tema" + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:61 +msgid "" +"Select a theme for FlatCAM.\n" +"It will theme the plot area.\n" +"The application will restart after change." +msgstr "" +"Seleziona un tema per FlatCAM.\n" +"Il tema sarà applicato all'area di plot.\n" +"Il programma verrà riavviato dopo la modifica." + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:73 +msgid "Layout" +msgstr "Livello" + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:75 +msgid "" +"Select an layout for FlatCAM.\n" +"It is applied immediately." +msgstr "" +"Seleziona un livello per FlatCAM.\n" +"Sarà applicato immediatamente." + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:95 +msgid "Style" +msgstr "Stile" + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:97 +msgid "" +"Select an style for FlatCAM.\n" +"It will be applied at the next app start." +msgstr "" +"Seleziona uno stile per FlatCAM.\n" +"Sarà applicato al prossimo riavvio del programma." + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:111 +msgid "Activate HDPI Support" +msgstr "Attiva supporto HDPI" + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:113 +msgid "" +"Enable High DPI support for FlatCAM.\n" +"It will be applied at the next app start." +msgstr "" +"Abilita il supporto HDPI per FlatCAM.\n" +"Sarà applicato al prossimo avvio del programma." + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:127 +msgid "Display Hover Shape" +msgstr "Visualizza forme al passaggio del mouse" + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:129 +msgid "" +"Enable display of a hover shape for FlatCAM objects.\n" +"It is displayed whenever the mouse cursor is hovering\n" +"over any kind of not-selected object." +msgstr "" +"Abilita la visualizzazione delle forme al passaggio del mouse sugli oggetti " +"FlatCAM.\n" +"Viene visualizzato ogni volta che si sposta il cursore del mouse\n" +"su qualsiasi tipo di oggetto non selezionato." + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:136 +msgid "Display Selection Shape" +msgstr "Mostra forme selezione" + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:138 +msgid "" +"Enable the display of a selection shape for FlatCAM objects.\n" +"It is displayed whenever the mouse selects an object\n" +"either by clicking or dragging mouse from left to right or\n" +"right to left." +msgstr "" +"Abilita la visualizzazione delle forma della selezione per gli oggetti " +"FlatCAM.\n" +"Viene visualizzato ogni volta che il mouse seleziona un oggetto\n" +"facendo clic o trascinando il mouse da sinistra a destra o\n" +"da destra a sinistra." + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:151 +msgid "Left-Right Selection Color" +msgstr "Selezione colore sinistra-destra" + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:156 +msgid "Set the line color for the 'left to right' selection box." +msgstr "Imposta il colore per il box selezione 'da sinistra a destra'." + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:172 +msgid "" +"Set the fill color for the selection box\n" +"in case that the selection is done from left to right.\n" +"First 6 digits are the color and the last 2\n" +"digits are for alpha (transparency) level." +msgstr "" +"Imposta il colore di riempimento per la casella di selezione\n" +"nel caso in cui la selezione venga effettuata da sinistra a destra.\n" +"Le prime 6 cifre sono il colore e le ultime 2\n" +"cifre sono per il livello alfa (trasparenza)." + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:192 +msgid "Set the fill transparency for the 'left to right' selection box." +msgstr "" +"Imposta la trasparenza della casella di selezione 'da sinistra a destra'." + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:216 +msgid "Right-Left Selection Color" +msgstr "Selezione colore destra-sinistra" + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:222 +msgid "Set the line color for the 'right to left' selection box." +msgstr "Imposta il colore per il box selezione 'da destra a sinistra'." + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:239 +msgid "" +"Set the fill color for the selection box\n" +"in case that the selection is done from right to left.\n" +"First 6 digits are the color and the last 2\n" +"digits are for alpha (transparency) level." +msgstr "" +"Imposta il colore di riempimento per la casella di selezione\n" +"nel caso in cui la selezione venga effettuata da destra a sinistra.\n" +"Le prime 6 cifre sono il colore e le ultime 2\n" +"cifre sono per il livello alfa (trasparenza)." + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:259 +msgid "Set the fill transparency for selection 'right to left' box." +msgstr "" +"Imposta la trasparenza della casella di selezione 'da destra a sinistra'." + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:286 +msgid "Editor Color" +msgstr "Colore editor" + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:290 +msgid "Drawing" +msgstr "Disegno" + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:292 +msgid "Set the color for the shape." +msgstr "Imposta il colore per le forme." + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:309 +msgid "Set the color of the shape when selected." +msgstr "Imposta il colore delle forme quando selezionate." + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:332 +msgid "Project Items Color" +msgstr "Colori oggetti del progetto" + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:336 +msgid "Enabled" +msgstr "Abilitato" + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:338 +msgid "Set the color of the items in Project Tab Tree." +msgstr "Imposta il colore degli elementi nell'albero Tab progetto." + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:352 +msgid "Disabled" +msgstr "Disabilitato" + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:354 +msgid "" +"Set the color of the items in Project Tab Tree,\n" +"for the case when the items are disabled." +msgstr "" +"Imposta il colore degli elementi nell'albero Tab progetto,\n" +"nel caso gli elementi siano disabilitati." + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:370 +msgid "Project AutoHide" +msgstr "Nascondi automaticamente progetto" + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:372 +msgid "" +"Check this box if you want the project/selected/tool tab area to\n" +"hide automatically when there are no objects loaded and\n" +"to show whenever a new object is created." +msgstr "" +"Selezionare questa casella se si desidera che l'area del progetto/" +"selezionato/scheda strumento\n" +"sia nascosta automaticamente quando non ci sono oggetti caricati e\n" +"mostrarla ogni volta che viene creato un nuovo oggetto." + +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:27 +msgid "Geometry Adv. Options" +msgstr "Opzioni avanzate Geometrie" + +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:35 +msgid "" +"A list of Geometry advanced parameters.\n" +"Those parameters are available only for\n" +"Advanced App. Level." +msgstr "" +"Un elenco di parametri avanzati di Geometria.\n" +"Tali parametri sono disponibili solo per\n" +"App a livello avanzato." + +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:45 +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:112 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:134 +#: flatcamTools/ToolCalibration.py:125 flatcamTools/ToolSolderPaste.py:240 +msgid "Toolchange X-Y" +msgstr "Cambio utensile X-Y" + +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:56 +msgid "" +"Height of the tool just after starting the work.\n" +"Delete the value if you don't need this feature." +msgstr "" +"Altezza dell'utensile subito dopo l'inizio del lavoro.\n" +"Elimina il valore se non hai bisogno di questa funzione." + +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:158 +msgid "Segment X size" +msgstr "Dimensione X del segmento" + +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:160 +msgid "" +"The size of the trace segment on the X axis.\n" +"Useful for auto-leveling.\n" +"A value of 0 means no segmentation on the X axis." +msgstr "" +"La dimensione del segmento di traccia sull'asse X.\n" +"Utile per il livellamento automatico.\n" +"Un valore 0 significa nessuna segmentazione sull'asse X." + +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:174 +msgid "Segment Y size" +msgstr "Dimensione Y del segmento" + +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:176 +msgid "" +"The size of the trace segment on the Y axis.\n" +"Useful for auto-leveling.\n" +"A value of 0 means no segmentation on the Y axis." +msgstr "" +"La dimensione del segmento di traccia sull'asse Y.\n" +"Utile per il livellamento automatico.\n" +"Un valore 0 significa nessuna segmentazione sull'asse Y." + +#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:33 +msgid "A list of Geometry Editor parameters." +msgstr "Lista di parametri editor Geometrie." + +#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:43 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:196 +msgid "" +"Set the number of selected geometry\n" +"items above which the utility geometry\n" +"becomes just a selection rectangle.\n" +"Increases the performance when moving a\n" +"large number of geometric elements." +msgstr "" +"Imposta il numero di elementi della geometria\n" +" selezionata sopra i quali la geometria\n" +"diventa solo un rettangolo di selezione.\n" +"Aumenta le prestazioni quando si usano un\n" +"gran numero di elementi geometrici." + +#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:27 +msgid "Geometry General" +msgstr "Generali geometrie" + +#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:49 +msgid "" +"The number of circle steps for Geometry \n" +"circle and arc shapes linear approximation." +msgstr "" +"Il numero di passi del cerchio per Geometria \n" +"per le approssimazioni lineari di cerchi ed archi." + +#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:63 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:41 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:48 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:42 +msgid "Tools Dia" +msgstr "Diametro utensile" + +#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:65 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:108 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:43 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:50 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:44 +msgid "" +"Diameters of the tools, separated by comma.\n" +"The value of the diameter has to use the dot decimals separator.\n" +"Valid values: 0.3, 1.0" +msgstr "" +"Diametri degli utensili, separati da virgola.\n" +"Il valore del diametro deve utilizzare il punto come separatore decimale.\n" +"Valori validi: 0.3, 1.0" + +#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:80 +msgid "Geometry Object Color" +msgstr "Colore oggetti Geometria" + +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:28 +msgid "Geometry Options" +msgstr "Opzioni geometria" + +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:36 +msgid "" +"Create a CNC Job object\n" +"tracing the contours of this\n" +"Geometry object." +msgstr "" +"Crea un oggetto CNC Job\n" +"tracciando i contorni di questo\n" +"oggetto geometria." + +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:80 +msgid "Depth/Pass" +msgstr "Profondità/passata" + +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:82 +msgid "" +"The depth to cut on each pass,\n" +"when multidepth is enabled.\n" +"It has positive value although\n" +"it is a fraction from the depth\n" +"which has negative value." +msgstr "" +"La profondità da tagliare ad ogni passaggio,\n" +"quando il multi-profondità è abilitato.\n" +"Ha un valore positivo sebbene\n" +"sia una frazione dalla profondità\n" +"che ha un negativo." + +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:27 +msgid "Gerber Adv. Options" +msgstr "Opzioni avanzate Gerber" + +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:33 +msgid "" +"A list of Gerber advanced parameters.\n" +"Those parameters are available only for\n" +"Advanced App. Level." +msgstr "" +"Un elenco di parametri Gerber avanzati.\n" +"Tali parametri sono disponibili solo per\n" +"App a livello avanzato." + +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:52 +msgid "Table Show/Hide" +msgstr "Mostra/Nasconti tabella" + +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:54 +msgid "" +"Toggle the display of the Gerber Apertures Table.\n" +"Also, on hide, it will delete all mark shapes\n" +"that are drawn on canvas." +msgstr "" +"(Dis)attiva la visualizzazione della tabella delle aperrture del Gerber.\n" +"Inoltre, su nascondi, eliminerà tutte le forme dei segni\n" +"che sono disegnati." + +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:134 +msgid "Exterior" +msgstr "Esterno" + +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:135 +msgid "Interior" +msgstr "Interno" + +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:148 +msgid "" +"Buffering type:\n" +"- None --> best performance, fast file loading but no so good display\n" +"- Full --> slow file loading but good visuals. This is the default.\n" +"<>: Don't change this unless you know what you are doing !!!" +msgstr "" +"Tipo di buffer:\n" +"- Nessuno -> migliori prestazioni, caricamento rapido dei file ma " +"visualizzazione non così buona\n" +"- Completo -> caricamento lento dei file ma buona grafica. Questo è il " +"valore predefinito.\n" +"<>: non cambiarlo se non sai cosa stai facendo !!!" + +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:153 +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:88 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:207 +#: flatcamTools/ToolFiducials.py:201 flatcamTools/ToolFilm.py:255 +#: flatcamTools/ToolProperties.py:452 flatcamTools/ToolProperties.py:455 +#: flatcamTools/ToolProperties.py:458 flatcamTools/ToolProperties.py:483 +msgid "None" +msgstr "Nessuno" + +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:159 +msgid "Simplify" +msgstr "Semplifica" + +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:161 +msgid "" +"When checked all the Gerber polygons will be\n" +"loaded with simplification having a set tolerance.\n" +"<>: Don't change this unless you know what you are doing !!!" +msgstr "" +"Se selezionato, tutti i poligoni del Gerber saranno\n" +"caricati con una semplificazione con la tolleranza impostata.\n" +"<>: non cambiarlo se non sai cosa stai facendo !!!" + +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:168 +msgid "Tolerance" +msgstr "Tolleranza" + +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:169 +msgid "Tolerance for polygon simplification." +msgstr "Tolleranza per semplificazione poligoni." + +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:33 +msgid "A list of Gerber Editor parameters." +msgstr "Lista di parametri edito Gerber." + +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:43 +msgid "" +"Set the number of selected Gerber geometry\n" +"items above which the utility geometry\n" +"becomes just a selection rectangle.\n" +"Increases the performance when moving a\n" +"large number of geometric elements." +msgstr "" +"Imposta il numero di geometrie Gerber selezionate\n" +"sopra al quali le geometriediventeranno\n" +"solo dei rettangoli di selezione.\n" +"Aumenta le prestazioni quando si sposta un\n" +"gran numero di elementi geometrici." + +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:56 +msgid "New Aperture code" +msgstr "Nuovo codice Apertura" + +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:69 +msgid "New Aperture size" +msgstr "Nuova dimensione Apertura" + +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:71 +msgid "Size for the new aperture" +msgstr "Dimensione per la nuova apertura" + +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:82 +msgid "New Aperture type" +msgstr "Tipo nuova apertura" + +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:84 +msgid "" +"Type for the new aperture.\n" +"Can be 'C', 'R' or 'O'." +msgstr "" +"Tipo per la nuova apertura.\n" +"Può essere 'C', 'R' o 'O'." + +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:106 +msgid "Aperture Dimensions" +msgstr "Dimensione apertura" + +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:116 +msgid "Linear Pad Array" +msgstr "Matrice lineare di pad" + +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:160 +msgid "Circular Pad Array" +msgstr "Matrice circolare di pad" + +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:196 +msgid "Distance at which to buffer the Gerber element." +msgstr "Distanza alla quale bufferizzare l'elemento Gerber." + +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:205 +msgid "Scale Tool" +msgstr "Strumento scala" + +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:211 +msgid "Factor to scale the Gerber element." +msgstr "Fattore al quale scalare gli elementi Gerber." + +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:224 +msgid "Threshold low" +msgstr "Soglia inferiore" + +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:226 +msgid "Threshold value under which the apertures are not marked." +msgstr "Valore di soglia sotto alla quale le aperture non saranno marchiate." + +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:236 +msgid "Threshold high" +msgstr "Soglia superiore" + +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:238 +msgid "Threshold value over which the apertures are not marked." +msgstr "Valore di soglia sopra alla quale le aperture non saranno marchiate." + +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:27 +msgid "Gerber Export" +msgstr "Esporta Gerber" + +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:33 +msgid "" +"The parameters set here are used in the file exported\n" +"when using the File -> Export -> Export Gerber menu entry." +msgstr "" +"I parametri impostati qui vengono utilizzati nel file esportato\n" +"quando si utilizza la voce di menu File -> Esporta -> Esporta Gerber." + +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:44 +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:50 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:84 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:90 +msgid "The units used in the Gerber file." +msgstr "Le unità utilizzate nei file Gerber." + +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:58 +msgid "" +"The number of digits in the whole part of the number\n" +"and in the fractional part of the number." +msgstr "" +"Numero di cifre nella parte intera del numero\n" +"e nella parte frazionaria del numero." + +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:71 +msgid "" +"This numbers signify the number of digits in\n" +"the whole part of Gerber coordinates." +msgstr "" +"Questi numeri indicano il numero di cifre nella\n" +"parte intera delle coordinate di Gerber." + +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:87 +msgid "" +"This numbers signify the number of digits in\n" +"the decimal part of Gerber coordinates." +msgstr "" +"Questi numeri indicano il numero di cifre nella\n" +"parte decimale delle coordinate di Gerber." + +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:99 +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:109 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:100 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:110 +msgid "" +"This sets the type of Gerber zeros.\n" +"If LZ then Leading Zeros are removed and\n" +"Trailing Zeros are kept.\n" +"If TZ is checked then Trailing Zeros are removed\n" +"and Leading Zeros are kept." +msgstr "" +"Questo imposta il tipo di zeri dei Gerber.\n" +"Se ZI vengono rimossi gli zeri iniziali e\n" +"mantenuti quelli finali.\n" +"Se ZF è selezionato, gli Zeri finali vengono rimossi\n" +"e mantenuti gli Zeri iniziali." + +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:27 +msgid "Gerber General" +msgstr "Generali Gerber" + +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:45 +msgid "M-Color" +msgstr "Colori-M" + +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:61 +msgid "" +"The number of circle steps for Gerber \n" +"circular aperture linear approximation." +msgstr "" +"Il numero di passi del cerchio per le aperture circolari\n" +"del Gerber ad approssimazione lineare." + +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:73 +msgid "Default Values" +msgstr "Valori di default" + +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:75 +msgid "" +"Those values will be used as fallback values\n" +"in case that they are not found in the Gerber file." +msgstr "" +"Tali valori verranno utilizzati come valori di ripristino\n" +"nel caso in cui non vengano trovati nel file Gerber." + +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:126 +msgid "Clean Apertures" +msgstr "Pulisci aperture" + +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:128 +msgid "" +"Will remove apertures that do not have geometry\n" +"thus lowering the number of apertures in the Gerber object." +msgstr "" +"Rimuoverà le aperture che non hanno geometria\n" +"riducendo così il numero di aperture nell'oggetto Gerber." + +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:134 +msgid "Polarity change buffer" +msgstr "Buffer di modifica polarità" + +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:136 +msgid "" +"Will apply extra buffering for the\n" +"solid geometry when we have polarity changes.\n" +"May help loading Gerber files that otherwise\n" +"do not load correctly." +msgstr "" +"Applicherà il buffering extra per le geometrie\n" +"solide quando si verificano cambiamenti di polarità.\n" +"Può aiutare a caricare file Gerber che altrimenti\n" +"non si caricherebbe correttamente." + +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:149 +msgid "Gerber Object Color" +msgstr "Colore oggetto Gerber" + +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:29 +msgid "Gerber Options" +msgstr "Opzioni gerber" + +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:107 +msgid "Combine Passes" +msgstr "Combina Passi" + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:27 +msgid "Copper Thieving Tool Options" +msgstr "Opzioni dello strumento deposito rame" + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:39 +msgid "" +"A tool to generate a Copper Thieving that can be added\n" +"to a selected Gerber file." +msgstr "" +"Uno strumento per generare un deposito di rame che può essere aggiunto\n" +"in un file Gerber selezionato." + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:47 +msgid "Number of steps (lines) used to interpolate circles." +msgstr "Numero di passi (linee) usato per interpolare i cerchi." + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:57 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:261 +#: flatcamTools/ToolCopperThieving.py:96 flatcamTools/ToolCopperThieving.py:431 +msgid "Clearance" +msgstr "Distanza" + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:59 +msgid "" +"This set the distance between the copper Thieving components\n" +"(the polygon fill may be split in multiple polygons)\n" +"and the copper traces in the Gerber file." +msgstr "" +"Imposta la distanza tra componenti del deposito di rame\n" +"(i poligoni possono essere divisi in sottopoligoni)\n" +"e le tracce di rame nel file Gerber." + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:87 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280 +#: flatcamTools/ToolCopperThieving.py:126 flatcamTools/ToolNCC.py:535 +#: flatcamTools/ToolNCC.py:1311 flatcamTools/ToolNCC.py:1642 +#: flatcamTools/ToolNCC.py:1930 flatcamTools/ToolNCC.py:1985 +#: flatcamTools/ToolPaint.py:486 flatcamTools/ToolPaint.py:946 +#: flatcamTools/ToolPaint.py:1447 +msgid "Area Selection" +msgstr "Selezione Area" + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:88 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280 +#: flatcamTools/ToolCopperThieving.py:127 flatcamTools/ToolDblSided.py:216 +#: flatcamTools/ToolNCC.py:535 flatcamTools/ToolNCC.py:1658 +#: flatcamTools/ToolNCC.py:1936 flatcamTools/ToolNCC.py:1993 +#: flatcamTools/ToolNCC.py:2301 flatcamTools/ToolNCC.py:2581 +#: flatcamTools/ToolNCC.py:3007 flatcamTools/ToolPaint.py:486 +#: flatcamTools/ToolPaint.py:931 flatcamTools/ToolPaint.py:1463 +#: tclCommands/TclCommandCopperClear.py:192 tclCommands/TclCommandPaint.py:166 +msgid "Reference Object" +msgstr "Oggetto di riferimento" + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:90 +#: flatcamTools/ToolCopperThieving.py:129 +msgid "Reference:" +msgstr "Riferimento:" + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:92 +msgid "" +"- 'Itself' - the copper Thieving extent is based on the object extent.\n" +"- 'Area Selection' - left mouse click to start selection of the area to be " +"filled.\n" +"- 'Reference Object' - will do copper thieving within the area specified by " +"another object." +msgstr "" +"- 'Stesso': l'estensione delle aree di deposito di rame si basa " +"sull'estensione dell'oggetto.\n" +"- 'Selezione area': fare clic con il pulsante sinistro del mouse per avviare " +"la selezione dell'area da riempire.\n" +"- 'Oggetto di riferimento': eseguirà il deposito di rame nell'area " +"specificata da un altro oggetto." + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:101 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:76 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:188 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:76 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:190 +#: flatcamTools/ToolCopperThieving.py:171 flatcamTools/ToolExtractDrills.py:102 +#: flatcamTools/ToolExtractDrills.py:240 flatcamTools/ToolPunchGerber.py:113 +#: flatcamTools/ToolPunchGerber.py:268 +msgid "Rectangular" +msgstr "Rettangolare" + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:102 +#: flatcamTools/ToolCopperThieving.py:172 +msgid "Minimal" +msgstr "Minima" + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:104 +#: flatcamTools/ToolCopperThieving.py:174 flatcamTools/ToolFilm.py:113 +msgid "Box Type:" +msgstr "Tipo contenitore:" + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:106 +#: flatcamTools/ToolCopperThieving.py:176 +msgid "" +"- 'Rectangular' - the bounding box will be of rectangular shape.\n" +"- 'Minimal' - the bounding box will be the convex hull shape." +msgstr "" +"- 'Rettangolare': il contenitore di selezione avrà una forma rettangolare.\n" +"- 'Minimo': il riquadro di delimitazione avrà la forma convessa del guscio." + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:120 +#: flatcamTools/ToolCopperThieving.py:192 +msgid "Dots Grid" +msgstr "Griglia punti" + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:121 +#: flatcamTools/ToolCopperThieving.py:193 +msgid "Squares Grid" +msgstr "Griglia quadrati" + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:122 +#: flatcamTools/ToolCopperThieving.py:194 +msgid "Lines Grid" +msgstr "Griglia linee" + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:124 +#: flatcamTools/ToolCopperThieving.py:196 +msgid "Fill Type:" +msgstr "Tipo riempimento:" + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:126 +#: flatcamTools/ToolCopperThieving.py:198 +msgid "" +"- 'Solid' - copper thieving will be a solid polygon.\n" +"- 'Dots Grid' - the empty area will be filled with a pattern of dots.\n" +"- 'Squares Grid' - the empty area will be filled with a pattern of squares.\n" +"- 'Lines Grid' - the empty area will be filled with a pattern of lines." +msgstr "" +"- 'Solido': il deposito di rame sarà un poligono solido.\n" +"- 'Dots Grid': l'area vuota verrà riempita con uno schema di punti.\n" +"- 'Squares Grid': l'area vuota verrà riempita con uno schema di quadrati.\n" +"- 'Griglia di linee': l'area vuota verrà riempita con un motivo di linee." + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:134 +#: flatcamTools/ToolCopperThieving.py:217 +msgid "Dots Grid Parameters" +msgstr "Parametri griglia di punti" + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:140 +#: flatcamTools/ToolCopperThieving.py:223 +msgid "Dot diameter in Dots Grid." +msgstr "Diametro punti nella griglia di punti." + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:151 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:180 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:209 +#: flatcamTools/ToolCopperThieving.py:234 +#: flatcamTools/ToolCopperThieving.py:274 +#: flatcamTools/ToolCopperThieving.py:314 +msgid "Spacing" +msgstr "Spaziatura" + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:153 +#: flatcamTools/ToolCopperThieving.py:236 +msgid "Distance between each two dots in Dots Grid." +msgstr "Distanza fra ogni coppia di punti nella griglia." + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:163 +#: flatcamTools/ToolCopperThieving.py:257 +msgid "Squares Grid Parameters" +msgstr "Parametri griglia quadrati" + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:169 +#: flatcamTools/ToolCopperThieving.py:263 +msgid "Square side size in Squares Grid." +msgstr "Dimensione quadrati nella griglia." + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:182 +#: flatcamTools/ToolCopperThieving.py:276 +msgid "Distance between each two squares in Squares Grid." +msgstr "Distanza fra ogni coppia di quadrati nella griglia." + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:192 +#: flatcamTools/ToolCopperThieving.py:297 +msgid "Lines Grid Parameters" +msgstr "Parametri griglia lineei" + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:198 +#: flatcamTools/ToolCopperThieving.py:303 +msgid "Line thickness size in Lines Grid." +msgstr "Spessore delle linee nella griglia." + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:211 +#: flatcamTools/ToolCopperThieving.py:316 +msgid "Distance between each two lines in Lines Grid." +msgstr "Distanza fra ogni coppia di linee nella griglia." + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:221 +#: flatcamTools/ToolCopperThieving.py:354 +msgid "Robber Bar Parameters" +msgstr "Parametri \"rapinatore\"" + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:223 +#: flatcamTools/ToolCopperThieving.py:356 +msgid "" +"Parameters used for the robber bar.\n" +"Robber bar = copper border to help in pattern hole plating." +msgstr "" +"Parametri usati per il \"rapinatore\".\n" +"\"Rapinatore\" = bordo in rame che aiuta nella placatura dei fori." + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:231 +#: flatcamTools/ToolCopperThieving.py:364 +msgid "Bounding box margin for robber bar." +msgstr "Margine contenitore \"rapinatore\"." + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:242 +#: flatcamTools/ToolCopperThieving.py:375 +msgid "Thickness" +msgstr "Spessore" + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:244 +#: flatcamTools/ToolCopperThieving.py:377 +msgid "The robber bar thickness." +msgstr "Lo spessore del \"rapinatore\"." + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:254 +#: flatcamTools/ToolCopperThieving.py:408 +msgid "Pattern Plating Mask" +msgstr "Maschera di placatura" + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:256 +#: flatcamTools/ToolCopperThieving.py:410 +msgid "Generate a mask for pattern plating." +msgstr "Genera una maschera per la placatura." + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:263 +#: flatcamTools/ToolCopperThieving.py:433 +msgid "" +"The distance between the possible copper thieving elements\n" +"and/or robber bar and the actual openings in the mask." +msgstr "" +"La distanza tra i possibili elementi del deposito di rame\n" +"e/o barra del \"rapinatore\" e le aperture effettive nella maschera." + +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:27 +msgid "Calibration Tool Options" +msgstr "Opzioni strumento calibrazione" + +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:38 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:38 +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:38 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:38 +#: flatcamTools/ToolCopperThieving.py:91 flatcamTools/ToolFiducials.py:151 +msgid "Parameters used for this tool." +msgstr "Parametri usati per questo strumento." + +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:43 +#: flatcamTools/ToolCalibration.py:181 +msgid "Source Type" +msgstr "Tipo sorgente" + +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:44 +#: flatcamTools/ToolCalibration.py:182 +msgid "" +"The source of calibration points.\n" +"It can be:\n" +"- Object -> click a hole geo for Excellon or a pad for Gerber\n" +"- Free -> click freely on canvas to acquire the calibration points" +msgstr "" +"La sorgente dei punti di calibrazione.\n" +"Può essere:\n" +"- Oggetto -> click una geometria foro per Excellon o un pad per Gerber\n" +"- Libero -> click su un punto libero per acquisirne i punti di calibrazione" + +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:49 +#: flatcamTools/ToolCalibration.py:187 +msgid "Free" +msgstr "Libero" + +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:63 +#: flatcamTools/ToolCalibration.py:76 +msgid "Height (Z) for travelling between the points." +msgstr "Altezza (Z) per gli spostamenti fra due punti." + +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:75 +#: flatcamTools/ToolCalibration.py:88 +msgid "Verification Z" +msgstr "Z di verifica" + +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:77 +#: flatcamTools/ToolCalibration.py:90 +msgid "Height (Z) for checking the point." +msgstr "Altezza (Z) per il controllo dei punti." + +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:89 +#: flatcamTools/ToolCalibration.py:102 +msgid "Zero Z tool" +msgstr "Strumento Zero Z" + +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:91 +#: flatcamTools/ToolCalibration.py:104 +msgid "" +"Include a sequence to zero the height (Z)\n" +"of the verification tool." +msgstr "" +"Include una sequenza per l'azzeramento dell'altezza (Z)\n" +"dello strumento di verifica." + +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:100 +#: flatcamTools/ToolCalibration.py:113 +msgid "Height (Z) for mounting the verification probe." +msgstr "Altezza (Z) per montare il tastatore." + +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:114 +#: flatcamTools/ToolCalibration.py:127 +msgid "" +"Toolchange X,Y position.\n" +"If no value is entered then the current\n" +"(x, y) point will be used," +msgstr "" +"Posizione X,Y cambio utensile.\n" +"In mancanza di valori sarà usato\n" +"l'attuale punto (x,y)," + +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:125 +#: flatcamTools/ToolCalibration.py:153 +msgid "Second point" +msgstr "Secondo punto" + +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:127 +#: flatcamTools/ToolCalibration.py:155 +msgid "" +"Second point in the Gcode verification can be:\n" +"- top-left -> the user will align the PCB vertically\n" +"- bottom-right -> the user will align the PCB horizontally" +msgstr "" +"Secondo punto nella verifica del GCode può essere:\n" +"- alto-sinistra -> l'utente allineerà il PCB verticalmente\n" +"- basso-destra -> l'utente allineerà il PCB orizzontalmente" + +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:27 +msgid "Extract Drills Options" +msgstr "Estrai opzioni fori" + +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:42 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:42 +#: flatcamTools/ToolExtractDrills.py:68 flatcamTools/ToolPunchGerber.py:75 +msgid "Processed Pads Type" +msgstr "Tipo pad processati" + +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:44 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:44 +#: flatcamTools/ToolExtractDrills.py:70 flatcamTools/ToolPunchGerber.py:77 +msgid "" +"The type of pads shape to be processed.\n" +"If the PCB has many SMD pads with rectangular pads,\n" +"disable the Rectangular aperture." +msgstr "" +"Il tipo di forma dei pad da elaborare.\n" +"Se il PCB ha molti pad SMD con pad rettangolari,\n" +"disabilita l'apertura rettangolare." + +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:54 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:54 +#: flatcamTools/ToolExtractDrills.py:80 flatcamTools/ToolPunchGerber.py:91 +msgid "Process Circular Pads." +msgstr "Elabora pad circolarei." + +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:60 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:162 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:60 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:164 +#: flatcamTools/ToolExtractDrills.py:86 flatcamTools/ToolExtractDrills.py:214 +#: flatcamTools/ToolPunchGerber.py:97 flatcamTools/ToolPunchGerber.py:242 +msgid "Oblong" +msgstr "Oblungo" + +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:62 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:62 +#: flatcamTools/ToolExtractDrills.py:88 flatcamTools/ToolPunchGerber.py:99 +msgid "Process Oblong Pads." +msgstr "Elabora pad oblunghi." + +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:70 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:70 +#: flatcamTools/ToolExtractDrills.py:96 flatcamTools/ToolPunchGerber.py:107 +msgid "Process Square Pads." +msgstr "Elabora pad quadrati." + +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:78 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:78 +#: flatcamTools/ToolExtractDrills.py:104 flatcamTools/ToolPunchGerber.py:115 +msgid "Process Rectangular Pads." +msgstr "Elabora pad rettangolari." + +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:84 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:201 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:84 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:203 +#: flatcamTools/ToolExtractDrills.py:110 flatcamTools/ToolExtractDrills.py:253 +#: flatcamTools/ToolProperties.py:172 flatcamTools/ToolPunchGerber.py:121 +#: flatcamTools/ToolPunchGerber.py:281 +msgid "Others" +msgstr "Altri" + +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:86 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:86 +#: flatcamTools/ToolExtractDrills.py:112 flatcamTools/ToolPunchGerber.py:123 +msgid "Process pads not in the categories above." +msgstr "Elabora pad non appartenenti alle categoria sopra." + +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:99 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:123 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:100 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:125 +#: flatcamTools/ToolExtractDrills.py:139 flatcamTools/ToolExtractDrills.py:156 +#: flatcamTools/ToolPunchGerber.py:150 flatcamTools/ToolPunchGerber.py:184 +msgid "Fixed Diameter" +msgstr "Diametro fisso" + +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:100 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:140 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:101 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:142 +#: flatcamTools/ToolExtractDrills.py:140 flatcamTools/ToolExtractDrills.py:192 +#: flatcamTools/ToolPunchGerber.py:151 flatcamTools/ToolPunchGerber.py:214 +msgid "Fixed Annular Ring" +msgstr "Anello fisso" + +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:101 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:102 +#: flatcamTools/ToolExtractDrills.py:141 flatcamTools/ToolPunchGerber.py:152 +msgid "Proportional" +msgstr "Proporzionale" + +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:107 +#: flatcamTools/ToolExtractDrills.py:130 +msgid "" +"The method for processing pads. Can be:\n" +"- Fixed Diameter -> all holes will have a set size\n" +"- Fixed Annular Ring -> all holes will have a set annular ring\n" +"- Proportional -> each hole size will be a fraction of the pad size" +msgstr "" +"Il metodo per l'elaborazione dei pad. Può essere:\n" +"- Diametro fisso -> tutti i fori avranno una dimensione impostata\n" +"- Anello fisso -> tutti i fori avranno un anello anulare impostato\n" +"- Proporzionale -> ogni dimensione del foro sarà una frazione della " +"dimensione del pad" + +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:133 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:135 +#: flatcamTools/ToolExtractDrills.py:166 flatcamTools/ToolPunchGerber.py:194 +msgid "Fixed hole diameter." +msgstr "Diametro foro fisso." + +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:142 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:144 +#: flatcamTools/ToolExtractDrills.py:194 flatcamTools/ToolPunchGerber.py:216 +msgid "" +"The size of annular ring.\n" +"The copper sliver between the hole exterior\n" +"and the margin of the copper pad." +msgstr "" +"La dimensione dell'anello.\n" +"Il nastro di rame tra l'esterno del foro\n" +"e il margine del pad di rame." + +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:151 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:153 +#: flatcamTools/ToolExtractDrills.py:203 flatcamTools/ToolPunchGerber.py:231 +msgid "The size of annular ring for circular pads." +msgstr "La dimensione dell'anello per pad circolari." + +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:164 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:166 +#: flatcamTools/ToolExtractDrills.py:216 flatcamTools/ToolPunchGerber.py:244 +msgid "The size of annular ring for oblong pads." +msgstr "La dimensione dell'anello per pad oblunghi." + +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:177 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:179 +#: flatcamTools/ToolExtractDrills.py:229 flatcamTools/ToolPunchGerber.py:257 +msgid "The size of annular ring for square pads." +msgstr "La dimensione dell'anello per pad quadrati." + +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:190 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:192 +#: flatcamTools/ToolExtractDrills.py:242 flatcamTools/ToolPunchGerber.py:270 +msgid "The size of annular ring for rectangular pads." +msgstr "La dimensione dell'anello per pad rettangolari." + +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:203 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:205 +#: flatcamTools/ToolExtractDrills.py:255 flatcamTools/ToolPunchGerber.py:283 +msgid "The size of annular ring for other pads." +msgstr "La dimensione dell'anello per gli altri pad." + +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:213 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:215 +#: flatcamTools/ToolExtractDrills.py:276 flatcamTools/ToolPunchGerber.py:299 +msgid "Proportional Diameter" +msgstr "Diametro proporzionale" + +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:222 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:224 +msgid "Factor" +msgstr "Fattore" + +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:224 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:226 +#: flatcamTools/ToolExtractDrills.py:287 flatcamTools/ToolPunchGerber.py:310 +msgid "" +"Proportional Diameter.\n" +"The hole diameter will be a fraction of the pad size." +msgstr "" +"Diametro proporzionale.\n" +"Il diametro del foro sarà una frazione della dimensione del pad." + +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:27 +msgid "Fiducials Tool Options" +msgstr "Opzioni strumento fiducial" + +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:45 +#: flatcamTools/ToolFiducials.py:158 +msgid "" +"This set the fiducial diameter if fiducial type is circular,\n" +"otherwise is the size of the fiducial.\n" +"The soldermask opening is double than that." +msgstr "" +"Imposta il diametro dei fiducial se il tipo di fiducial è circolare,\n" +"altrimenti è la dimensione del fiducial.\n" +"L'apertura del soldermask è il doppia." + +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:73 +#: flatcamTools/ToolFiducials.py:186 +msgid "Auto" +msgstr "Auto" + +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:74 +#: flatcamTools/ToolFiducials.py:187 +msgid "Manual" +msgstr "Manuale" + +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:76 +#: flatcamTools/ToolFiducials.py:189 +msgid "Mode:" +msgstr "Modo:" + +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:78 +msgid "" +"- 'Auto' - automatic placement of fiducials in the corners of the bounding " +"box.\n" +"- 'Manual' - manual placement of fiducials." +msgstr "" +"- 'Auto' - piazzamento automatico dei fiducials negli angoli del " +"contenitore.\n" +"- 'Manuale' - posizionamento manuale dei fiducial." + +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:86 +#: flatcamTools/ToolFiducials.py:199 +msgid "Up" +msgstr "Su" + +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:87 +#: flatcamTools/ToolFiducials.py:200 +msgid "Down" +msgstr "Giù" + +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:90 +#: flatcamTools/ToolFiducials.py:203 +msgid "Second fiducial" +msgstr "Secondo fiducial" + +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:92 +#: flatcamTools/ToolFiducials.py:205 +msgid "" +"The position for the second fiducial.\n" +"- 'Up' - the order is: bottom-left, top-left, top-right.\n" +"- 'Down' - the order is: bottom-left, bottom-right, top-right.\n" +"- 'None' - there is no second fiducial. The order is: bottom-left, top-right." +msgstr "" +"La posizione del secondo fiducial.\n" +"- 'Su' - l'ordine è: basso-sinistra, alto-sinistra, alto-destra.\n" +"- 'Giù' - l'ordine è: basso-sinistra, basso-destra, alto-destra.\n" +"- 'Nessuno' - non c'è secondo fiducial. L'ordine è: basso-sinistra, alto-" +"destra." + +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:108 +#: flatcamTools/ToolFiducials.py:221 +msgid "Cross" +msgstr "Croce" + +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:109 +#: flatcamTools/ToolFiducials.py:222 +msgid "Chess" +msgstr "Schacchiera" + +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:112 +#: flatcamTools/ToolFiducials.py:224 +msgid "Fiducial Type" +msgstr "Tipo fiducial" + +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:114 +#: flatcamTools/ToolFiducials.py:226 +msgid "" +"The type of fiducial.\n" +"- 'Circular' - this is the regular fiducial.\n" +"- 'Cross' - cross lines fiducial.\n" +"- 'Chess' - chess pattern fiducial." +msgstr "" +"Il tipo di fiducial.\n" +"- 'Circolare' - fiducial standard.\n" +"- 'Croce' - fiducial con due linee incrociate.\n" +"- 'Scacchiera' - motivo a scacchiera." + +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:123 +#: flatcamTools/ToolFiducials.py:235 +msgid "Line thickness" +msgstr "Spessore linea" + +#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:27 +msgid "Invert Gerber Tool Options" +msgstr "Opzioni strumento inversione gerber" + +#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:33 +msgid "" +"A tool to invert Gerber geometry from positive to negative\n" +"and in revers." +msgstr "" +"Strumento per invertire geometrie gerber da positive a negative\n" +"e viceversa." + +#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:47 +#: flatcamTools/ToolInvertGerber.py:90 +msgid "" +"Distance by which to avoid\n" +"the edges of the Gerber object." +msgstr "" +"Distanza alla quale evitare\n" +"i bordi degli oggetti gerber." + +#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:58 +#: flatcamTools/ToolInvertGerber.py:101 +msgid "Lines Join Style" +msgstr "Stile unione linee" + +#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:60 +#: flatcamTools/ToolInvertGerber.py:103 +msgid "" +"The way that the lines in the object outline will be joined.\n" +"Can be:\n" +"- rounded -> an arc is added between two joining lines\n" +"- square -> the lines meet in 90 degrees angle\n" +"- bevel -> the lines are joined by a third line" +msgstr "" +"Il modo in cui le linee nel contorno dell'oggetto verranno unite.\n" +"Può essere:\n" +"- arrotondato -> viene aggiunto un arco tra due linee di giunzione\n" +"- quadrato -> le linee si incontrano con un angolo di 90 gradi\n" +"- smussato -> le linee sono unite da una terza linea" + +#: flatcamGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:27 +msgid "Optimal Tool Options" +msgstr "Opzioni strumento ottimale" + +#: flatcamGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:33 +msgid "" +"A tool to find the minimum distance between\n" +"every two Gerber geometric elements" +msgstr "" +"Uno strumento per trovare la minima distanza fra\n" +"ogni coppia di elementi geometrici Gerber" + +#: flatcamGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:48 +#: flatcamTools/ToolOptimal.py:78 +msgid "Precision" +msgstr "Precisione" + +#: flatcamGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:50 +msgid "Number of decimals for the distances and coordinates in this tool." +msgstr "" +"Numero di decimali per le distanze e le coordinate in questo strumento." + +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:27 +msgid "Punch Gerber Options" +msgstr "Opzioni punzone gerber" + +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:108 +#: flatcamTools/ToolPunchGerber.py:141 +msgid "" +"The punch hole source can be:\n" +"- Excellon Object-> the Excellon object drills center will serve as " +"reference.\n" +"- Fixed Diameter -> will try to use the pads center as reference adding " +"fixed diameter holes.\n" +"- Fixed Annular Ring -> will try to keep a set annular ring.\n" +"- Proportional -> will make a Gerber punch hole having the diameter a " +"percentage of the pad diameter." +msgstr "" +"La fonte del foro di punzonatura può essere:\n" +"- Oggetto Excellon-> il centro dei fori dell'oggetto Excellon fungerà da " +"riferimento.\n" +"- Diametro fisso -> proverà a utilizzare il centro dei pad come riferimento " +"aggiungendo fori a diametro fisso.\n" +"- Fisso anello anulare -> proverà a mantenere un anello impostato.\n" +"- Proporzionale -> eseguirà un foro di punzonatura Gerber avente il diametro " +"pari ad una percentuale del diametro del pad." + +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:27 +msgid "QRCode Tool Options" +msgstr "Opzioni strumento QRCode" + +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:33 +msgid "" +"A tool to create a QRCode that can be inserted\n" +"into a selected Gerber file, or it can be exported as a file." +msgstr "" +"Uno strumento per creare QRCode da inserire\n" +"in un file Gerber selezionato o esportato su file." + +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:45 +#: flatcamTools/ToolQRCode.py:100 +msgid "Version" +msgstr "Versione" + +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:47 +#: flatcamTools/ToolQRCode.py:102 +msgid "" +"QRCode version can have values from 1 (21x21 boxes)\n" +"to 40 (177x177 boxes)." +msgstr "" +"La versione del QRCode può avere valori da 1 (21x21 punti)\n" +"a 40 (177x177 punti)." + +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:58 +#: flatcamTools/ToolQRCode.py:113 +msgid "Error correction" +msgstr "Correzione errore" + +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:60 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:71 +#: flatcamTools/ToolQRCode.py:115 flatcamTools/ToolQRCode.py:126 +#, python-format +msgid "" +"Parameter that controls the error correction used for the QR Code.\n" +"L = maximum 7%% errors can be corrected\n" +"M = maximum 15%% errors can be corrected\n" +"Q = maximum 25%% errors can be corrected\n" +"H = maximum 30%% errors can be corrected." +msgstr "" +"Parametro che controlla la correzione errore usata per i QR Code.\n" +"L = possono essere corretti errori al massimo del 7%%\n" +"M = possono essere corretti errori al massimo del 15%%\n" +"Q = possono essere corretti errori al massimo del 25%%\n" +"H = possono essere corretti errori al massimo del 30%%." + +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:81 +#: flatcamTools/ToolQRCode.py:136 +msgid "Box Size" +msgstr "Dimensione contenitore" + +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:83 +#: flatcamTools/ToolQRCode.py:138 +msgid "" +"Box size control the overall size of the QRcode\n" +"by adjusting the size of each box in the code." +msgstr "" +"La dimensione del box controlla la dimensione totale del QRcode\n" +"controllando la dimensione dei singoli punti nel codice." + +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:94 +#: flatcamTools/ToolQRCode.py:149 +msgid "Border Size" +msgstr "Dimensione bordi" + +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:96 +#: flatcamTools/ToolQRCode.py:151 +msgid "" +"Size of the QRCode border. How many boxes thick is the border.\n" +"Default value is 4. The width of the clearance around the QRCode." +msgstr "" +"Dimensione del bordo del QRCode. Quanto spesso sarà il bordo.\n" +"Valore di default è 4. La larghezza della distanza attorno al QRCode." + +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:107 +#: flatcamTools/ToolQRCode.py:162 +msgid "QRCode Data" +msgstr "Dati QRCode" + +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:109 +#: flatcamTools/ToolQRCode.py:164 +msgid "QRCode Data. Alphanumeric text to be encoded in the QRCode." +msgstr "Dati QRCode. Testo alfanumerico da codificare nel QRCode." + +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:113 +#: flatcamTools/ToolQRCode.py:168 +msgid "Add here the text to be included in the QRCode..." +msgstr "Inserisci qui il testo da includere nel QRCode..." + +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:119 +#: flatcamTools/ToolQRCode.py:174 +msgid "Polarity" +msgstr "Polarità" + +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:121 +#: flatcamTools/ToolQRCode.py:176 +msgid "" +"Choose the polarity of the QRCode.\n" +"It can be drawn in a negative way (squares are clear)\n" +"or in a positive way (squares are opaque)." +msgstr "" +"Scegli la polarità del QRCode.\n" +"Può essere disegnato in modo negativo (i quadrati sono chiari)\n" +"o in modo positivo (i quadrati sono scuri)." + +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:125 +#: flatcamTools/ToolFilm.py:296 flatcamTools/ToolQRCode.py:180 +msgid "Negative" +msgstr "Negativa" + +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:126 +#: flatcamTools/ToolFilm.py:295 flatcamTools/ToolQRCode.py:181 +msgid "Positive" +msgstr "Positiva" + +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:128 +#: flatcamTools/ToolQRCode.py:183 +msgid "" +"Choose the type of QRCode to be created.\n" +"If added on a Silkscreen Gerber file the QRCode may\n" +"be added as positive. If it is added to a Copper Gerber\n" +"file then perhaps the QRCode can be added as negative." +msgstr "" +"Scegli il tipo di QRCode da creare.\n" +"Se aggiunto su un file Gerber Silkscreen, il QRCode può\n" +"essere aggiunto come positivo. Se viene aggiunto a un file Gerber\n" +"del rame forse il QRCode può essere aggiunto come negativo." + +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:139 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:145 +#: flatcamTools/ToolQRCode.py:194 flatcamTools/ToolQRCode.py:200 +msgid "" +"The bounding box, meaning the empty space that surrounds\n" +"the QRCode geometry, can have a rounded or a square shape." +msgstr "" +"Il rettangolo di selezione, ovvero lo spazio vuoto che circonda\n" +"la geometria QRCode, può avere una forma arrotondata o quadrata." + +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:142 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:239 +#: flatcamTools/ToolQRCode.py:197 flatcamTools/ToolTransform.py:383 +msgid "Rounded" +msgstr "Arrotondato" + +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:152 +#: flatcamTools/ToolQRCode.py:228 +msgid "Fill Color" +msgstr "Colore riempimento" + +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:154 +#: flatcamTools/ToolQRCode.py:230 +msgid "Set the QRCode fill color (squares color)." +msgstr "Imposta il colore di riempimento del QRCode (colore dei punti)." + +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:173 +#: flatcamTools/ToolQRCode.py:252 +msgid "Back Color" +msgstr "Colore sfondo" + +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:175 +#: flatcamTools/ToolQRCode.py:254 +msgid "Set the QRCode background color." +msgstr "Imposta il colore dello sfondo del QRCode." + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:27 +msgid "Check Rules Tool Options" +msgstr "Opzione strumento controllo regole" + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:32 +msgid "" +"A tool to check if Gerber files are within a set\n" +"of Manufacturing Rules." +msgstr "" +"Uno strumento che verifica che i file Gerber rispettino\n" +"una serie di set di parametri del produttore." + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:42 +#: flatcamTools/ToolRulesCheck.py:265 flatcamTools/ToolRulesCheck.py:929 +msgid "Trace Size" +msgstr "Dimensione traccia" + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:44 +#: flatcamTools/ToolRulesCheck.py:267 +msgid "This checks if the minimum size for traces is met." +msgstr "Verifica se la dimensione minima della traccia è rispettata." + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:54 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:74 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:94 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:114 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:134 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:154 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:174 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:194 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:216 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:236 +#: flatcamTools/ToolRulesCheck.py:277 flatcamTools/ToolRulesCheck.py:299 +#: flatcamTools/ToolRulesCheck.py:322 flatcamTools/ToolRulesCheck.py:345 +#: flatcamTools/ToolRulesCheck.py:368 flatcamTools/ToolRulesCheck.py:391 +#: flatcamTools/ToolRulesCheck.py:414 flatcamTools/ToolRulesCheck.py:437 +#: flatcamTools/ToolRulesCheck.py:462 flatcamTools/ToolRulesCheck.py:485 +msgid "Min value" +msgstr "Valore minimo" + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:56 +#: flatcamTools/ToolRulesCheck.py:279 +msgid "Minimum acceptable trace size." +msgstr "Dimensione minima accettata delle tracce." + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:61 +#: flatcamTools/ToolRulesCheck.py:286 flatcamTools/ToolRulesCheck.py:1157 +#: flatcamTools/ToolRulesCheck.py:1187 +msgid "Copper to Copper clearance" +msgstr "Spaziatura rame-rame" + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:63 +#: flatcamTools/ToolRulesCheck.py:288 +msgid "" +"This checks if the minimum clearance between copper\n" +"features is met." +msgstr "" +"Verifica se la spaziatura minima da rame a rame\n" +"è rispettata." + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:76 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:96 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:116 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:136 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:156 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:176 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:238 +#: flatcamTools/ToolRulesCheck.py:301 flatcamTools/ToolRulesCheck.py:324 +#: flatcamTools/ToolRulesCheck.py:347 flatcamTools/ToolRulesCheck.py:370 +#: flatcamTools/ToolRulesCheck.py:393 flatcamTools/ToolRulesCheck.py:416 +#: flatcamTools/ToolRulesCheck.py:464 +msgid "Minimum acceptable clearance value." +msgstr "Valore minimo di distanza accettata." + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:81 +#: flatcamTools/ToolRulesCheck.py:309 flatcamTools/ToolRulesCheck.py:1217 +#: flatcamTools/ToolRulesCheck.py:1223 flatcamTools/ToolRulesCheck.py:1236 +#: flatcamTools/ToolRulesCheck.py:1243 +msgid "Copper to Outline clearance" +msgstr "Distanza rame-bordo" + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:83 +#: flatcamTools/ToolRulesCheck.py:311 +msgid "" +"This checks if the minimum clearance between copper\n" +"features and the outline is met." +msgstr "" +"Verifica se la spaziatura minima da rame a bordo\n" +"è rispettata." + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:101 +#: flatcamTools/ToolRulesCheck.py:332 +msgid "Silk to Silk Clearance" +msgstr "Distanza serigrafie" + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:103 +#: flatcamTools/ToolRulesCheck.py:334 +msgid "" +"This checks if the minimum clearance between silkscreen\n" +"features and silkscreen features is met." +msgstr "" +"Verifica se la spaziatura minima tra serigrafie\n" +"è rispettata." + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:121 +#: flatcamTools/ToolRulesCheck.py:355 flatcamTools/ToolRulesCheck.py:1326 +#: flatcamTools/ToolRulesCheck.py:1332 flatcamTools/ToolRulesCheck.py:1350 +msgid "Silk to Solder Mask Clearance" +msgstr "Distanza serigrafia-solder" + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:123 +#: flatcamTools/ToolRulesCheck.py:357 +msgid "" +"This checks if the minimum clearance between silkscreen\n" +"features and soldermask features is met." +msgstr "" +"Verifica se la spaziatura minima da serigrafie\n" +"e solder è rispettata." + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:141 +#: flatcamTools/ToolRulesCheck.py:378 flatcamTools/ToolRulesCheck.py:1380 +#: flatcamTools/ToolRulesCheck.py:1386 flatcamTools/ToolRulesCheck.py:1400 +#: flatcamTools/ToolRulesCheck.py:1407 +msgid "Silk to Outline Clearance" +msgstr "Distanza serigrafia-bordo" + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:143 +#: flatcamTools/ToolRulesCheck.py:380 +msgid "" +"This checks if the minimum clearance between silk\n" +"features and the outline is met." +msgstr "" +"Verifica se la spaziatura minima tra serigrafie\n" +"e bordo è rispettata." + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:161 +#: flatcamTools/ToolRulesCheck.py:401 flatcamTools/ToolRulesCheck.py:1418 +#: flatcamTools/ToolRulesCheck.py:1445 +msgid "Minimum Solder Mask Sliver" +msgstr "Distanza solder mask" + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:163 +#: flatcamTools/ToolRulesCheck.py:403 +msgid "" +"This checks if the minimum clearance between soldermask\n" +"features and soldermask features is met." +msgstr "" +"Verifica se la spaziatura minima tra vari solder mask\n" +"è rispettata." + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:181 +#: flatcamTools/ToolRulesCheck.py:424 flatcamTools/ToolRulesCheck.py:1483 +#: flatcamTools/ToolRulesCheck.py:1489 flatcamTools/ToolRulesCheck.py:1505 +#: flatcamTools/ToolRulesCheck.py:1512 +msgid "Minimum Annular Ring" +msgstr "Anello minimo" + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:183 +#: flatcamTools/ToolRulesCheck.py:426 +msgid "" +"This checks if the minimum copper ring left by drilling\n" +"a hole into a pad is met." +msgstr "" +"Verifica se l'anello minimo di rame rimasto dopo la foratura\n" +"è rispettato." + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:196 +#: flatcamTools/ToolRulesCheck.py:439 +msgid "Minimum acceptable ring value." +msgstr "Valore minimo anello." + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:203 +#: flatcamTools/ToolRulesCheck.py:449 flatcamTools/ToolRulesCheck.py:873 +msgid "Hole to Hole Clearance" +msgstr "Distanza foro-foro" + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:205 +#: flatcamTools/ToolRulesCheck.py:451 +msgid "" +"This checks if the minimum clearance between a drill hole\n" +"and another drill hole is met." +msgstr "" +"Verifica se la spaziatura minima tra fori\n" +"è rispettata." + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:218 +#: flatcamTools/ToolRulesCheck.py:487 +msgid "Minimum acceptable drill size." +msgstr "Misura minima foro." + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:223 +#: flatcamTools/ToolRulesCheck.py:472 flatcamTools/ToolRulesCheck.py:847 +msgid "Hole Size" +msgstr "Dimensione foro" + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:225 +#: flatcamTools/ToolRulesCheck.py:474 +msgid "" +"This checks if the drill holes\n" +"sizes are above the threshold." +msgstr "" +"Controlla se la dimensione dei fori\n" +"sono sopra la soglia." + +#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:27 +msgid "2Sided Tool Options" +msgstr "Opzioni strumento doppia faccia" + +#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:33 +msgid "" +"A tool to help in creating a double sided\n" +"PCB using alignment holes." +msgstr "" +"Uno strumento per aiutare la creazione di un PCB\n" +"doppio faccia mediante fori di allineamento." + +#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:47 +msgid "Drill dia" +msgstr "Diametro fori" + +#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:49 +#: flatcamTools/ToolDblSided.py:363 flatcamTools/ToolDblSided.py:368 +msgid "Diameter of the drill for the alignment holes." +msgstr "Diametro per i fori di allineamento." + +#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:56 +#: flatcamTools/ToolDblSided.py:377 +msgid "Align Axis" +msgstr "Allinea all'asse" + +#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:58 +#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:71 +#: flatcamTools/ToolDblSided.py:165 flatcamTools/ToolDblSided.py:379 +msgid "Mirror vertically (X) or horizontally (Y)." +msgstr "Specchia verticale (X) o orizzontale (Y)." + +#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:69 +msgid "Mirror Axis:" +msgstr "Asse di specchio:" + +#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:80 +#: flatcamTools/ToolDblSided.py:181 +msgid "Point" +msgstr "Punto" + +#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:81 +#: flatcamTools/ToolDblSided.py:182 +msgid "Box" +msgstr "Contenitore" + +#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:82 +msgid "Axis Ref" +msgstr "Asse di riferimento" + +#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:84 +msgid "" +"The axis should pass through a point or cut\n" +" a specified box (in a FlatCAM object) through \n" +"the center." +msgstr "" +"L'asse dovrebbe passare attraverso un punto o tagliare\n" +" una casella specifica (in un oggetto FlatCAM) attraverso\n" +"il centro." + +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:27 +msgid "Calculators Tool Options" +msgstr "Opzioni calcolatrici" + +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:31 +#: flatcamTools/ToolCalculators.py:25 +msgid "V-Shape Tool Calculator" +msgstr "Calcolatrice utensile a V" + +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:33 +msgid "" +"Calculate the tool diameter for a given V-shape tool,\n" +"having the tip diameter, tip angle and\n" +"depth-of-cut as parameters." +msgstr "" +"Calcola il diametro dell'utensile per un dato utensile a V,\n" +"conoscendo come parametri il diametro della punta,\n" +"angolo e profondità di taglio." + +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:50 +#: flatcamTools/ToolCalculators.py:94 +msgid "Tip Diameter" +msgstr "Diametro punta" + +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:52 +#: flatcamTools/ToolCalculators.py:102 +msgid "" +"This is the tool tip diameter.\n" +"It is specified by manufacturer." +msgstr "" +"Diametro della punta.\n" +"Viene specificato dal produttore." + +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:64 +#: flatcamTools/ToolCalculators.py:105 +msgid "Tip Angle" +msgstr "Angolo punta" + +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:66 +msgid "" +"This is the angle on the tip of the tool.\n" +"It is specified by manufacturer." +msgstr "" +"E' l'angolo alla punta dell'utensile.\n" +"E' specificato dal produttore." + +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:80 +msgid "" +"This is depth to cut into material.\n" +"In the CNCJob object it is the CutZ parameter." +msgstr "" +"Questa è la profondità a cui tagliare il materiale.\n" +"Nell'oggetto CNCJob è il parametro CutZ." + +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:87 +#: flatcamTools/ToolCalculators.py:27 +msgid "ElectroPlating Calculator" +msgstr "Calcolatore Galvanotecnica" + +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:89 +#: flatcamTools/ToolCalculators.py:158 +msgid "" +"This calculator is useful for those who plate the via/pad/drill holes,\n" +"using a method like graphite ink or calcium hypophosphite ink or palladium " +"chloride." +msgstr "" +"Questo calcolatore è utile per chi metallizza i fori di via/pad,\n" +"usando un metodo come inchiostro di grafite o inchiostro di ipofosfito di " +"calcio o cloruro di palladio." + +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:100 +#: flatcamTools/ToolCalculators.py:167 +msgid "Board Length" +msgstr "Lunghezza scheda" + +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:102 +#: flatcamTools/ToolCalculators.py:173 +msgid "This is the board length. In centimeters." +msgstr "E' la lunghezza della scheda. In centimetri." + +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:112 +#: flatcamTools/ToolCalculators.py:175 +msgid "Board Width" +msgstr "Larghezza scheda" + +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:114 +#: flatcamTools/ToolCalculators.py:181 +msgid "This is the board width.In centimeters." +msgstr "E' la larghezza della scheda. In centimetri." + +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:119 +#: flatcamTools/ToolCalculators.py:183 +msgid "Current Density" +msgstr "Densità di corrente" + +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:125 +#: flatcamTools/ToolCalculators.py:190 +msgid "" +"Current density to pass through the board. \n" +"In Amps per Square Feet ASF." +msgstr "" +"Densità di corrente da far passare nella scheda. In Ampere per " +"rad_quadrata(ASF)." + +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:131 +#: flatcamTools/ToolCalculators.py:193 +msgid "Copper Growth" +msgstr "Crescita rame" + +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:137 +#: flatcamTools/ToolCalculators.py:200 +msgid "" +"How thick the copper growth is intended to be.\n" +"In microns." +msgstr "" +"Quanto deve accrescere il rame.\n" +"In microns." + +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:28 +msgid "Cutout Tool Options" +msgstr "Opzioni strumento ritaglio" + +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:43 +#: flatcamTools/ToolCalculators.py:123 flatcamTools/ToolCutOut.py:129 +msgid "Tool Diameter" +msgstr "Diametro utensile" + +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:45 +#: flatcamTools/ToolCutOut.py:131 +msgid "" +"Diameter of the tool used to cutout\n" +"the PCB shape out of the surrounding material." +msgstr "" +"Diametro dello strumento utilizzato per il ritaglio\n" +"della forma del PCB dal materiale circostante." + +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:100 +msgid "Object kind" +msgstr "Tipo oggetto" + +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:102 +#: flatcamTools/ToolCutOut.py:77 +msgid "" +"Choice of what kind the object we want to cutout is.
    - Single: " +"contain a single PCB Gerber outline object.
    - Panel: a panel PCB " +"Gerber object, which is made\n" +"out of many individual PCB outlines." +msgstr "" +"Scelta del tipo di oggetto da ritagliare.
    - Singolo: contiene un " +"solo oggetto bordo Gerber PCB.
    - Pannleol: un oggetto pannello " +"Gerber PCB, realizzato\n" +"ta tanti bordi singoli di PCB." + +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:109 +#: flatcamTools/ToolCutOut.py:83 +msgid "Single" +msgstr "Singolo" + +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:110 +#: flatcamTools/ToolCutOut.py:84 +msgid "Panel" +msgstr "Pannello" + +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:117 +#: flatcamTools/ToolCutOut.py:192 +msgid "" +"Margin over bounds. A positive value here\n" +"will make the cutout of the PCB further from\n" +"the actual PCB border" +msgstr "" +"Margine oltre i limiti. Un valore positivo qui\n" +"renderà il ritaglio del PCB più lontano dal\n" +"bordo effettivo del PCB" + +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:130 +#: flatcamTools/ToolCutOut.py:203 +msgid "Gap size" +msgstr "Dimensione ponticello" + +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:132 +#: flatcamTools/ToolCutOut.py:205 +msgid "" +"The size of the bridge gaps in the cutout\n" +"used to keep the board connected to\n" +"the surrounding material (the one \n" +"from which the PCB is cutout)." +msgstr "" +"Dimensione dei gap ponticello nel ritaglio\n" +"usati per tenere la scheda connessa al\n" +"materiale circostante (quello dal quale\n" +"si sta rimuovendo il PCB)." + +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:146 +#: flatcamTools/ToolCutOut.py:245 +msgid "Gaps" +msgstr "Ponticelli" + +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:148 +msgid "" +"Number of gaps used for the cutout.\n" +"There can be maximum 8 bridges/gaps.\n" +"The choices are:\n" +"- None - no gaps\n" +"- lr - left + right\n" +"- tb - top + bottom\n" +"- 4 - left + right +top + bottom\n" +"- 2lr - 2*left + 2*right\n" +"- 2tb - 2*top + 2*bottom\n" +"- 8 - 2*left + 2*right +2*top + 2*bottom" +msgstr "" +"Numero di ponticelli usati nel ritaglio\n" +"Possono essere al massimo 8.\n" +"Le scelte sono:\n" +"- Nessuno - nessun ponticello\n" +"- SD - sinistra + destra\n" +"- SS - sopra + sotto\n" +"- 4 - sinistra + destra + sopra + sotto\n" +"- 2SD - 2*sinistra + 2*destra\n" +"- 2SS - 2*sopra + 2*sotto\n" +"- 8 - 2*sinistra + 2*destra +2*sopra + 2*sotto" + +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:170 +#: flatcamTools/ToolCutOut.py:222 +msgid "Convex Shape" +msgstr "Forma convessa" + +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:172 +#: flatcamTools/ToolCutOut.py:225 +msgid "" +"Create a convex shape surrounding the entire PCB.\n" +"Used only if the source object type is Gerber." +msgstr "" +"Crea una forma convessa che circonda l'intero PCB.\n" +"Utilizzato solo se il tipo di oggetto di origine è Gerber." + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:27 +msgid "Film Tool Options" +msgstr "Opzioni strumento Film" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:33 +msgid "" +"Create a PCB film from a Gerber or Geometry\n" +"FlatCAM object.\n" +"The file is saved in SVG format." +msgstr "" +"Create a un film PCB da un oggetto Gerber o\n" +"Geometria FlatCAM.\n" +"Il file è salvato in formato SVG." + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:44 +msgid "Film Type" +msgstr "Tipo Film" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:46 +#: flatcamTools/ToolFilm.py:300 +msgid "" +"Generate a Positive black film or a Negative film.\n" +"Positive means that it will print the features\n" +"with black on a white canvas.\n" +"Negative means that it will print the features\n" +"with white on a black canvas.\n" +"The Film format is SVG." +msgstr "" +"Genera un film nero positivo o negativo.\n" +"Positivo significa che stamperà le funzionalità\n" +"con il nero su una tela bianca.\n" +"Negativo significa che stamperà le funzionalità\n" +"con il bianco su una tela nera.\n" +"Il formato del film è SVG." + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:57 +msgid "Film Color" +msgstr "Colore Film" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:59 +msgid "Set the film color when positive film is selected." +msgstr "Imposta il colore del film se è selezionato film positivo." + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:82 +#: flatcamTools/ToolFilm.py:316 +msgid "Border" +msgstr "Bordo" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:84 +#: flatcamTools/ToolFilm.py:318 +msgid "" +"Specify a border around the object.\n" +"Only for negative film.\n" +"It helps if we use as a Box Object the same \n" +"object as in Film Object. It will create a thick\n" +"black bar around the actual print allowing for a\n" +"better delimitation of the outline features which are of\n" +"white color like the rest and which may confound with the\n" +"surroundings if not for this border." +msgstr "" +"Specifica un bordo attorno all'oggetto.\n" +"Solo per film negativo.\n" +"Aiuta se usiamo come Oggetto contenitore lo stesso\n" +"oggetto in Oggetto film. Creerà una barra nera attorno\n" +"alla stampa attuale consentendo una migliore delimitazione\n" +"del contorno di colore bianco e che può confondere con\n" +"le aree circostanti in assenza del bordo stesso." + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:101 +#: flatcamTools/ToolFilm.py:283 +msgid "Scale Stroke" +msgstr "Scala tratto" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:103 +#: flatcamTools/ToolFilm.py:285 +msgid "" +"Scale the line stroke thickness of each feature in the SVG file.\n" +"It means that the line that envelope each SVG feature will be thicker or " +"thinner,\n" +"therefore the fine features may be more affected by this parameter." +msgstr "" +"Ridimensiona lo spessore del tratto delle linee di ciascuna funzione nel " +"file SVG.\n" +"Significa che la linea che avvolge ciascuna funzione SVG sarà più spessa o " +"più sottile,\n" +"pertanto le caratteristiche fini potrebbero essere maggiormente influenzate " +"da questo parametro." + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:110 +#: flatcamTools/ToolFilm.py:141 +msgid "Film Adjustments" +msgstr "Sistemazione film" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:112 +#: flatcamTools/ToolFilm.py:143 +msgid "" +"Sometime the printers will distort the print shape, especially the Laser " +"types.\n" +"This section provide the tools to compensate for the print distortions." +msgstr "" +"A volte le stampanti distorcono la forma di stampa, in particolare le " +"Laser.\n" +"Questa sezione fornisce gli strumenti per compensare le distorsioni di " +"stampa." + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:119 +#: flatcamTools/ToolFilm.py:150 +msgid "Scale Film geometry" +msgstr "Scala geometrie Film" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:121 +#: flatcamTools/ToolFilm.py:152 +msgid "" +"A value greater than 1 will stretch the film\n" +"while a value less than 1 will jolt it." +msgstr "" +"Un valore maggiore di 1 allungherà il film\n" +"mentre un valore inferiore a 1 lo accorcerà." + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:131 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:103 +#: flatcamTools/ToolFilm.py:162 flatcamTools/ToolTransform.py:148 +msgid "X factor" +msgstr "Fattore X" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:140 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:116 +#: flatcamTools/ToolFilm.py:171 flatcamTools/ToolTransform.py:168 +msgid "Y factor" +msgstr "Fattore Y" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:150 +#: flatcamTools/ToolFilm.py:189 +msgid "Skew Film geometry" +msgstr "Inclinazione geometria film" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:152 +#: flatcamTools/ToolFilm.py:191 +msgid "" +"Positive values will skew to the right\n" +"while negative values will skew to the left." +msgstr "" +"I valori positivi inclinano verso destra\n" +"mentre i valori negativi inclinano a sinistra." + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:162 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:72 +#: flatcamTools/ToolFilm.py:201 flatcamTools/ToolTransform.py:97 +msgid "X angle" +msgstr "Angolo X" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:171 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:86 +#: flatcamTools/ToolFilm.py:210 flatcamTools/ToolTransform.py:118 +msgid "Y angle" +msgstr "Angolo Y" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:182 +#: flatcamTools/ToolFilm.py:221 +msgid "" +"The reference point to be used as origin for the skew.\n" +"It can be one of the four points of the geometry bounding box." +msgstr "" +"Il punto di riferimento da utilizzare come origine per l'inclinazione.\n" +"Può essere uno dei quattro punti del riquadro di delimitazione della " +"geometria." + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:185 +#: flatcamTools/ToolFiducials.py:87 flatcamTools/ToolFilm.py:224 +msgid "Bottom Left" +msgstr "Basso Sinistra" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:186 +#: flatcamTools/ToolFilm.py:225 +msgid "Top Left" +msgstr "Alto Destra" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:187 +#: flatcamTools/ToolFilm.py:226 +msgid "Bottom Right" +msgstr "Basso Destra" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:188 +#: flatcamTools/ToolFilm.py:227 +msgid "Top right" +msgstr "Alto Destra" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:196 +#: flatcamTools/ToolFilm.py:244 +msgid "Mirror Film geometry" +msgstr "Specchia geometria film" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:198 +#: flatcamTools/ToolFilm.py:246 +msgid "Mirror the film geometry on the selected axis or on both." +msgstr "Specchia la geometria film sull'asse selezionato o su entrambi." + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:212 +#: flatcamTools/ToolFilm.py:260 +msgid "Mirror axis" +msgstr "Asse simmetria" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:222 +#: flatcamTools/ToolFilm.py:405 +msgid "SVG" +msgstr "SVG" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:223 +#: flatcamTools/ToolFilm.py:406 +msgid "PNG" +msgstr "PNG" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:224 +#: flatcamTools/ToolFilm.py:407 +msgid "PDF" +msgstr "PDF" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:227 +#: flatcamTools/ToolFilm.py:298 flatcamTools/ToolFilm.py:410 +msgid "Film Type:" +msgstr "Tipo film:" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:229 +#: flatcamTools/ToolFilm.py:412 +msgid "" +"The file type of the saved film. Can be:\n" +"- 'SVG' -> open-source vectorial format\n" +"- 'PNG' -> raster image\n" +"- 'PDF' -> portable document format" +msgstr "" +"Il tipo di file per il film salvato. Può essere:\n" +"- 'SVG' -> formato vettoriale open-source\n" +"- 'PNG' -> immagine raster \n" +"- 'PDF' -> Portable Document Format" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:238 +#: flatcamTools/ToolFilm.py:421 +msgid "Page Orientation" +msgstr "Orientamento pagina" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:251 +#: flatcamTools/ToolFilm.py:434 +msgid "Page Size" +msgstr "Dimensiona pagina" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:252 +#: flatcamTools/ToolFilm.py:435 +msgid "A selection of standard ISO 216 page sizes." +msgstr "Una selezione di pagine standard secondo ISO 216." + +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:27 +msgid "NCC Tool Options" +msgstr "Opzioni strumento NCC" + +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:49 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:57 +msgid "Comma separated values" +msgstr "Valori separati da virgola" + +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:55 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:63 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:64 +#: flatcamTools/ToolNCC.py:215 flatcamTools/ToolNCC.py:223 +#: flatcamTools/ToolPaint.py:198 flatcamTools/ToolPaint.py:206 +msgid "" +"Default tool type:\n" +"- 'V-shape'\n" +"- Circular" +msgstr "" +"Forma di default dell'Utensile:\n" +"- 'a V'\n" +"- Circolare" + +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:60 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:69 +#: flatcamTools/ToolNCC.py:220 flatcamTools/ToolPaint.py:203 +msgid "V-shape" +msgstr "A V" + +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:100 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:109 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:107 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:116 +#: flatcamTools/ToolNCC.py:262 flatcamTools/ToolNCC.py:271 +#: flatcamTools/ToolPaint.py:245 flatcamTools/ToolPaint.py:254 +msgid "" +"Depth of cut into material. Negative value.\n" +"In FlatCAM units." +msgstr "" +"Profondità di taglio nel materiale. Valori negativi.\n" +"In unità FlatCAM." + +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:119 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:125 +#: flatcamTools/ToolNCC.py:280 flatcamTools/ToolPaint.py:263 +msgid "" +"Diameter for the new tool to add in the Tool Table.\n" +"If the tool is V-shape type then this value is automatically\n" +"calculated from the other parameters." +msgstr "" +"Diametro per il nuovo utensile da aggiungere nella tabella degli utensili.\n" +"Se lo strumento è di tipo a V, questo valore è automaticamente\n" +"calcolato dagli altri parametri." + +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:156 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:142 +#: flatcamTools/ToolNCC.py:174 flatcamTools/ToolPaint.py:158 +msgid "Tool order" +msgstr "Ordine utensili" + +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:157 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:167 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:143 +#: flatcamTools/ToolNCC.py:175 flatcamTools/ToolNCC.py:185 +#: flatcamTools/ToolPaint.py:159 flatcamTools/ToolPaint.py:169 +msgid "" +"This set the way that the tools in the tools table are used.\n" +"'No' --> means that the used order is the one in the tool table\n" +"'Forward' --> means that the tools will be ordered from small to big\n" +"'Reverse' --> means that the tools will ordered from big to small\n" +"\n" +"WARNING: using rest machining will automatically set the order\n" +"in reverse and disable this control." +msgstr "" +"Questo imposta il modo in cui vengono utilizzati gli strumenti nella tabella " +"degli strumenti.\n" +"'No' -> significa che l'ordine utilizzato è quello nella tabella degli " +"strumenti\n" +"'Avanti' -> significa che gli strumenti verranno ordinati da piccoli a " +"grandi\n" +"'Reverse' -> significa che gli strumenti ordineranno da grandi a piccoli\n" +"\n" +"ATTENZIONE: l'utilizzo della lavorazione di ripresa imposterà " +"automaticamente l'ordine\n" +"al contrario e disabiliterà questo controllo." + +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:165 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:151 +#: flatcamTools/ToolNCC.py:183 flatcamTools/ToolPaint.py:167 +msgid "Forward" +msgstr "Avanti" + +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:166 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:152 +#: flatcamTools/ToolNCC.py:184 flatcamTools/ToolPaint.py:168 +msgid "Reverse" +msgstr "Indietro" + +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:266 +msgid "Offset value" +msgstr "Valore offset" + +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:268 +msgid "" +"If used, it will add an offset to the copper features.\n" +"The copper clearing will finish to a distance\n" +"from the copper features.\n" +"The value can be between 0.0 and 9999.9 FlatCAM units." +msgstr "" +"Se utilizzato, aggiungerà un offset alle lavorazioni del rame.\n" +"La rimozione del rame finirà ad una data distanza dalle\n" +"lavorazioni di rame.\n" +"Il valore può essere compreso tra 0,0 e 9999,9 unità FlatCAM." + +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:288 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:244 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:245 +#: flatcamTools/ToolNCC.py:512 flatcamTools/ToolPaint.py:442 +msgid "Rest Machining" +msgstr "Lavorazione di ripresa" + +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:290 +#: flatcamTools/ToolNCC.py:516 +msgid "" +"If checked, use 'rest machining'.\n" +"Basically it will clear copper outside PCB features,\n" +"using the biggest tool and continue with the next tools,\n" +"from bigger to smaller, to clear areas of copper that\n" +"could not be cleared by previous tool, until there is\n" +"no more copper to clear or there are no more tools.\n" +"If not checked, use the standard algorithm." +msgstr "" +"Se selezionato, utilizzare la 'lavorazione di ripresa'.\n" +"Fondamentalmente eliminerà il rame al di fuori del PCB,\n" +"utilizzando lo strumento più grande e continuarà poi con\n" +"gli strumenti successivi, dal più grande al più piccolo, per\n" +"eliminare le aree di rame non rimosse dallo strumento\n" +"precedente, finché non c'è più rame da cancellare o non\n" +"ci sono più strumenti.\n" +"Se non selezionato, usa l'algoritmo standard." + +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:313 +#: flatcamTools/ToolNCC.py:541 +msgid "" +"Selection of area to be processed.\n" +"- 'Itself' - the processing extent is based on the object that is " +"processed.\n" +" - 'Area Selection' - left mouse click to start selection of the area to be " +"processed.\n" +"- 'Reference Object' - will process the area specified by another object." +msgstr "" +"Selezione area da processare.\n" +"- 'Stesso': il processo avverrà basandosi sull'oggetto processato.\n" +"- 'Selezione area' - fare clic con il pulsante sinistro del mouse per " +"iniziare a selezionare l'area.\n" +"- 'Oggetto di riferimento' - processerà l'area specificata da un altro " +"oggetto." + +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:322 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:286 +#: flatcamTools/ToolNCC.py:578 flatcamTools/ToolPaint.py:522 +msgid "Shape" +msgstr "Forma" + +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:324 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:288 +#: flatcamTools/ToolNCC.py:580 flatcamTools/ToolPaint.py:524 +msgid "The kind of selection shape used for area selection." +msgstr "Il tipo di forma di selezione utilizzata per la selezione dell'area." + +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:339 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:303 +msgid "Normal" +msgstr "Normale" + +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:340 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:304 +msgid "Progressive" +msgstr "Progressivo" + +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:341 +msgid "NCC Plotting" +msgstr "Disegna NCC" + +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:343 +msgid "" +"- 'Normal' - normal plotting, done at the end of the NCC job\n" +"- 'Progressive' - after each shape is generated it will be plotted." +msgstr "" +"- \"Normale\": stampa normale, eseguita alla fine del lavoro NCC\n" +"- \"Progressivo\": dopo che ogni forma è stata generata, verrà tracciata." + +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:27 +msgid "Paint Tool Options" +msgstr "Opzione strumento pittura" + +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:33 +msgid "Parameters:" +msgstr "Parametri:" + +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:247 +#: flatcamTools/ToolPaint.py:445 +msgid "" +"If checked, use 'rest machining'.\n" +"Basically it will clear copper outside PCB features,\n" +"using the biggest tool and continue with the next tools,\n" +"from bigger to smaller, to clear areas of copper that\n" +"could not be cleared by previous tool, until there is\n" +"no more copper to clear or there are no more tools.\n" +"\n" +"If not checked, use the standard algorithm." +msgstr "" +"Se selezionato, usa la 'lavorazione di ripresa'.\n" +"Fondamentalmente eliminerà il rame al di fuori del del PCB,\n" +"utilizzando l'utensile più grande e continuando con gli utensili\n" +"successivi, dal più grande al più piccolo, per eliminare le aree di\n" +"rame che non possono essere cancellato dall'utensile precedente,\n" +"fino a quando non ci sarà più rame da cancellare o utensili utili.\n" +"\n" +"Se non selezionato, utilizza l'algoritmo standard." + +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:260 +#: flatcamTools/ToolPaint.py:458 +msgid "" +"Selection of area to be processed.\n" +"- 'Polygon Selection' - left mouse click to add/remove polygons to be " +"processed.\n" +"- 'Area Selection' - left mouse click to start selection of the area to be " +"processed.\n" +"Keeping a modifier key pressed (CTRL or SHIFT) will allow to add multiple " +"areas.\n" +"- 'All Polygons' - the process will start after click.\n" +"- 'Reference Object' - will process the area specified by another object." +msgstr "" +"Come selezionare i poligoni da processare.\n" +"- 'Selezione poligoni': fare clic con il pulsante sinistro del mouse per " +"aggiungere/rimuovere\n" +"poligoni da processare.\n" +"- 'Selezione area': fare clic con il pulsante sinistro del mouse per " +"iniziare la selezione dell'area da\n" +"processare. Tenendo premuto un tasto modificatore (CTRL o SHIFT) sarà " +"possibile aggiungere più aree.\n" +"- 'Tutti i poligoni': la selezione inizierà dopo il click.\n" +"- 'Oggetto di riferimento': eseguirà il processo dell'area specificata da un " +"altro oggetto." + +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280 +#: flatcamTools/ToolPaint.py:486 flatcamTools/ToolPaint.py:942 +#: flatcamTools/ToolPaint.py:1427 tclCommands/TclCommandPaint.py:164 +msgid "Polygon Selection" +msgstr "Selezione poligono" + +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:305 +msgid "Paint Plotting" +msgstr "Disegna aree dipinte" + +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:307 +msgid "" +"- 'Normal' - normal plotting, done at the end of the Paint job\n" +"- 'Progressive' - after each shape is generated it will be plotted." +msgstr "" +"- 'Normale' - tracciatura normale, eseguita alla fine del lavoro di " +"selezione\n" +"- 'Progressiva' - verrà generata al termine di ogni forma selezionata." + +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:27 +msgid "Panelize Tool Options" +msgstr "Opzioni strumento Pannello" + +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:33 +msgid "" +"Create an object that contains an array of (x, y) elements,\n" +"each element is a copy of the source object spaced\n" +"at a X distance, Y distance of each other." +msgstr "" +"Crea un oggetto che contiene una matrice di elementi (x, y),\n" +"ogni elemento è una copia dell'oggetto origine spaziati\n" +"di una distanza X e distanza Y ognuno dall'altro." + +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:50 +#: flatcamTools/ToolPanelize.py:163 +msgid "Spacing cols" +msgstr "Spazio colonne" + +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:52 +#: flatcamTools/ToolPanelize.py:165 +msgid "" +"Spacing between columns of the desired panel.\n" +"In current units." +msgstr "" +"Spaziatura fra colonne desiderata del pannello.\n" +"In unità attuali." + +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:64 +#: flatcamTools/ToolPanelize.py:175 +msgid "Spacing rows" +msgstr "Spazio righe" + +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:66 +#: flatcamTools/ToolPanelize.py:177 +msgid "" +"Spacing between rows of the desired panel.\n" +"In current units." +msgstr "" +"Spaziatura fra righe desiderata del pannello.\n" +"In unità attuali." + +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:77 +#: flatcamTools/ToolPanelize.py:186 +msgid "Columns" +msgstr "Colonne" + +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:79 +#: flatcamTools/ToolPanelize.py:188 +msgid "Number of columns of the desired panel" +msgstr "Numero di colonne nel pannello desiderato" + +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:89 +#: flatcamTools/ToolPanelize.py:196 +msgid "Rows" +msgstr "Righe" + +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:91 +#: flatcamTools/ToolPanelize.py:198 +msgid "Number of rows of the desired panel" +msgstr "Numero di righe nel pannello desiderato" + +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:98 +#: flatcamTools/ToolPanelize.py:205 +msgid "Geo" +msgstr "Geo" + +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:99 +#: flatcamTools/ToolPanelize.py:206 +msgid "Panel Type" +msgstr "Tipo pannello" + +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:101 +msgid "" +"Choose the type of object for the panel object:\n" +"- Gerber\n" +"- Geometry" +msgstr "" +"Scegli in tipo di oggetto per l'oggetto pannello:\n" +"- Gerber\n" +"- Geometria" + +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:110 +msgid "Constrain within" +msgstr "Vincoli contenimento" + +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:112 +#: flatcamTools/ToolPanelize.py:218 +msgid "" +"Area define by DX and DY within to constrain the panel.\n" +"DX and DY values are in current units.\n" +"Regardless of how many columns and rows are desired,\n" +"the final panel will have as many columns and rows as\n" +"they fit completely within selected area." +msgstr "" +"L'area definita da DX e DY all'interno per vincolare il pannello.\n" +"I valori DX e DY sono in unità correnti.\n" +"Indipendentemente dal numero di colonne e righe desiderate,\n" +"il pannello finale avrà tante colonne e righe quante\n" +"si adattano completamente all'interno dell'area selezionata." + +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:125 +#: flatcamTools/ToolPanelize.py:230 +msgid "Width (DX)" +msgstr "Larghezza (DX)" + +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:127 +#: flatcamTools/ToolPanelize.py:232 +msgid "" +"The width (DX) within which the panel must fit.\n" +"In current units." +msgstr "" +"La larghezza (DX) all'interno del quale deve rimanere il pannello.\n" +"In unità correnti." + +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:138 +#: flatcamTools/ToolPanelize.py:241 +msgid "Height (DY)" +msgstr "Altezza (DY)" + +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:140 +#: flatcamTools/ToolPanelize.py:243 +msgid "" +"The height (DY)within which the panel must fit.\n" +"In current units." +msgstr "" +"L'altezza (DY) all'interno del quale deve rimanere il pannello.\n" +"In unità correnti." + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:27 +msgid "SolderPaste Tool Options" +msgstr "Opzioni strumento SolderPaste" + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:33 +msgid "" +"A tool to create GCode for dispensing\n" +"solder paste onto a PCB." +msgstr "" +"Uno strumento per creare GCode per\n" +"erogare la pasta sul PCB." + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:54 +msgid "New Nozzle Dia" +msgstr "Nuovo diametro ugello" + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:56 +#: flatcamTools/ToolSolderPaste.py:107 +msgid "Diameter for the new Nozzle tool to add in the Tool Table" +msgstr "Diametro del nuovo utensile ugello da aggiungere alla tabella" + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:72 +#: flatcamTools/ToolSolderPaste.py:183 +msgid "Z Dispense Start" +msgstr "Z avvio erogazione" + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:74 +#: flatcamTools/ToolSolderPaste.py:185 +msgid "The height (Z) when solder paste dispensing starts." +msgstr "L'altezza (Z) quando inizia l'erogazione della pasta." + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:85 +#: flatcamTools/ToolSolderPaste.py:195 +msgid "Z Dispense" +msgstr "Z erogazione" + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:87 +#: flatcamTools/ToolSolderPaste.py:197 +msgid "The height (Z) when doing solder paste dispensing." +msgstr "L'altezza (Z) quando l'erogazione è in esecuzione." + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:98 +#: flatcamTools/ToolSolderPaste.py:207 +msgid "Z Dispense Stop" +msgstr "Z fine erogazione" + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:100 +#: flatcamTools/ToolSolderPaste.py:209 +msgid "The height (Z) when solder paste dispensing stops." +msgstr "L'altezza (Z) quando finisce l'erogazione della pasta." + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:111 +#: flatcamTools/ToolSolderPaste.py:219 +msgid "Z Travel" +msgstr "Z spostamento" + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:113 +#: flatcamTools/ToolSolderPaste.py:221 +msgid "" +"The height (Z) for travel between pads\n" +"(without dispensing solder paste)." +msgstr "" +"L'altezza (Z) per lo spostamento fra pad\n" +"(senza funzione di erogazione pasta)." + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:125 +#: flatcamTools/ToolSolderPaste.py:232 +msgid "Z Toolchange" +msgstr "Z cambio utensile" + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:127 +#: flatcamTools/ToolSolderPaste.py:234 +msgid "The height (Z) for tool (nozzle) change." +msgstr "L'altezza (Z) per il cambio utensile (ugello)." + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:136 +#: flatcamTools/ToolSolderPaste.py:242 +msgid "" +"The X,Y location for tool (nozzle) change.\n" +"The format is (x, y) where x and y are real numbers." +msgstr "" +"La posizione X,Y per il cambio utensile (ugello).\n" +"Il formato è (x,y) dove x e y sono numeri reali." + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:150 +#: flatcamTools/ToolSolderPaste.py:255 +msgid "Feedrate (speed) while moving on the X-Y plane." +msgstr "Velocità avanzamento durante gli spostamenti sul piano (x,y)." + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:163 +#: flatcamTools/ToolSolderPaste.py:267 +msgid "" +"Feedrate (speed) while moving vertically\n" +"(on Z plane)." +msgstr "Velocità avanzamento durante gli spostamenti sull'asse Z." + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:175 +#: flatcamTools/ToolSolderPaste.py:278 +msgid "Feedrate Z Dispense" +msgstr "Avanzamento erogazione Z" + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:177 +msgid "" +"Feedrate (speed) while moving up vertically\n" +"to Dispense position (on Z plane)." +msgstr "" +"Avanzamento (velocità) durante lo spostamento in verticale\n" +"verso la posizione di erogazione (sul piano Z)." + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:188 +#: flatcamTools/ToolSolderPaste.py:290 +msgid "Spindle Speed FWD" +msgstr "Velocità mandrino AVANTI" + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:190 +#: flatcamTools/ToolSolderPaste.py:292 +msgid "" +"The dispenser speed while pushing solder paste\n" +"through the dispenser nozzle." +msgstr "" +"La velocità dell'erogatore mentre spinge\n" +"la pasta tramite l'ugello." + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:202 +#: flatcamTools/ToolSolderPaste.py:303 +msgid "Dwell FWD" +msgstr "Pausa AVANTI" + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:204 +#: flatcamTools/ToolSolderPaste.py:305 +msgid "Pause after solder dispensing." +msgstr "Pausa dopo l'erogazione del solder." + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:214 +#: flatcamTools/ToolSolderPaste.py:314 +msgid "Spindle Speed REV" +msgstr "Velocità mandrino INDIETRO" + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:216 +#: flatcamTools/ToolSolderPaste.py:316 +msgid "" +"The dispenser speed while retracting solder paste\n" +"through the dispenser nozzle." +msgstr "" +"La velocità dell'erogatore mentre ritrae\n" +"la pasta tramite l'ugello." + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:228 +#: flatcamTools/ToolSolderPaste.py:327 +msgid "Dwell REV" +msgstr "Pausa INDIETRO" + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:230 +#: flatcamTools/ToolSolderPaste.py:329 +msgid "" +"Pause after solder paste dispenser retracted,\n" +"to allow pressure equilibrium." +msgstr "" +"Pausa dopo la ritrazione,\n" +"per equilibrare la pressione." + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:239 +#: flatcamTools/ToolSolderPaste.py:337 +msgid "Files that control the GCode generation." +msgstr "Files che controllano la generazione del GCode." + +#: flatcamGUI/preferences/tools/ToolsSubPrefGroupUI.py:27 +msgid "Substractor Tool Options" +msgstr "Opzioni strumento sottrai" + +#: flatcamGUI/preferences/tools/ToolsSubPrefGroupUI.py:33 +msgid "" +"A tool to substract one Gerber or Geometry object\n" +"from another of the same type." +msgstr "" +"Uno strumento per sottrarre un oggetto Gerber o\n" +"geometria da un altro dello stesso tipo." + +#: flatcamGUI/preferences/tools/ToolsSubPrefGroupUI.py:38 +#: flatcamTools/ToolSub.py:155 +msgid "Close paths" +msgstr "Percorsi chiusi" + +#: flatcamGUI/preferences/tools/ToolsSubPrefGroupUI.py:39 +msgid "" +"Checking this will close the paths cut by the Geometry substractor object." +msgstr "" +"Abilitandolo chiuderà i percorsi rimasti aperti dopo la sottrazione di " +"oggetti geometria." + +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:27 +msgid "Transform Tool Options" +msgstr "Opzione strumento trasforma" + +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:33 +msgid "" +"Various transformations that can be applied\n" +"on a FlatCAM object." +msgstr "Trasformazioni varie da poter applicare ad un oggetto FlatCAM." + +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:64 +msgid "Skew" +msgstr "Inclina" + +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:105 +#: flatcamTools/ToolTransform.py:150 +msgid "Factor for scaling on X axis." +msgstr "Fattore di scala sull'asse X." + +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:118 +#: flatcamTools/ToolTransform.py:170 +msgid "Factor for scaling on Y axis." +msgstr "Fattore di scala sull'asse Y." + +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:126 +#: flatcamTools/ToolTransform.py:191 +msgid "" +"Scale the selected object(s)\n" +"using the Scale_X factor for both axis." +msgstr "" +"Scala l'oggetto(i) selezionato(i) usando\n" +"il fattore Scala_X per entrambi gli assi." + +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:134 +#: flatcamTools/ToolTransform.py:198 +msgid "" +"Scale the selected object(s)\n" +"using the origin reference when checked,\n" +"and the center of the biggest bounding box\n" +"of the selected objects when unchecked." +msgstr "" +"Scala l'oggetto(i) selezionato(i) usando\n" +"il riferimento di origine quando abilitato,\n" +"oppure il centro del contenitore più grande\n" +"degli oggetti selezionati quando non attivato." + +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:150 +#: flatcamTools/ToolTransform.py:217 +msgid "X val" +msgstr "Valore X" + +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:152 +#: flatcamTools/ToolTransform.py:219 +msgid "Distance to offset on X axis. In current units." +msgstr "Distanza da applicare sull'asse X. In unità correnti." + +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:163 +#: flatcamTools/ToolTransform.py:237 +msgid "Y val" +msgstr "Valore Y" + +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:165 +#: flatcamTools/ToolTransform.py:239 +msgid "Distance to offset on Y axis. In current units." +msgstr "Distanza da applicare sull'asse Y. In unità correnti." + +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:171 +#: flatcamTools/ToolDblSided.py:67 flatcamTools/ToolDblSided.py:95 +#: flatcamTools/ToolDblSided.py:125 +msgid "Mirror" +msgstr "Specchia" + +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:175 +#: flatcamTools/ToolTransform.py:283 +msgid "Mirror Reference" +msgstr "Riferimento specchio" + +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:177 +#: flatcamTools/ToolTransform.py:285 +msgid "" +"Flip the selected object(s)\n" +"around the point in Point Entry Field.\n" +"\n" +"The point coordinates can be captured by\n" +"left click on canvas together with pressing\n" +"SHIFT key. \n" +"Then click Add button to insert coordinates.\n" +"Or enter the coords in format (x, y) in the\n" +"Point Entry field and click Flip on X(Y)" +msgstr "" +"Capovolgi gli oggetti selezionati\n" +"attorno al punto nel campo di inserimento punti.\n" +"\n" +"Le coordinate del punto possono essere acquisite da\n" +"clic sinistro premendo contemporaneamente al tasto\n" +"SHIFT.\n" +"Quindi fare clic sul pulsante Aggiungi per inserire le coordinate.\n" +"Oppure inserisci le coord nel formato (x,y) in\n" +"Inserisci punto e fai clic su Capovolgi su X(Y)" + +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:188 +msgid "Mirror Reference point" +msgstr "Punto di riferimento specchio" + +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:190 +msgid "" +"Coordinates in format (x, y) used as reference for mirroring.\n" +"The 'x' in (x, y) will be used when using Flip on X and\n" +"the 'y' in (x, y) will be used when using Flip on Y and" +msgstr "" +"Coordinate in formato (x, y) usate come riferimento per la specchiatura.\n" +"La 'x' in (x, y) sarà usata per capovolgere su X e\n" +"la 'y' in (x, y) sarà usata per capovolgere su Y e" + +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:203 +#: flatcamTools/ToolDistance.py:496 flatcamTools/ToolDistanceMin.py:287 +#: flatcamTools/ToolTransform.py:332 +msgid "Distance" +msgstr "Distanza" + +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:205 +#: flatcamTools/ToolTransform.py:334 +msgid "" +"A positive value will create the effect of dilation,\n" +"while a negative value will create the effect of erosion.\n" +"Each geometry element of the object will be increased\n" +"or decreased with the 'distance'." +msgstr "" +"Un valore positivo creerà l'effetto della dilatazione,\n" +"mentre un valore negativo creerà l'effetto di restringimento.\n" +"Ogni elemento della geometria dell'oggetto verrà aumentato\n" +"o diminuito con la 'distanza'." + +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:222 +#: flatcamTools/ToolTransform.py:359 +msgid "" +"A positive value will create the effect of dilation,\n" +"while a negative value will create the effect of erosion.\n" +"Each geometry element of the object will be increased\n" +"or decreased to fit the 'Value'. Value is a percentage\n" +"of the initial dimension." +msgstr "" +"Un valore positivo creerà l'effetto della dilatazione,\n" +"mentre un valore negativo creerà l'effetto di restringimento.\n" +"Ogni elemento della geometria dell'oggetto verrà aumentato\n" +"o diminuito in base al 'Valore'." + +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:241 +#: flatcamTools/ToolTransform.py:385 +msgid "" +"If checked then the buffer will surround the buffered shape,\n" +"every corner will be rounded.\n" +"If not checked then the buffer will follow the exact geometry\n" +"of the buffered shape." +msgstr "" +"Se selezionato, il buffer circonderà la forma del buffer,\n" +"ogni angolo verrà arrotondato.\n" +"Se non selezionato, il buffer seguirà l'esatta geometria\n" +"della forma bufferizzata." + +#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:27 +msgid "Autocompleter Keywords" +msgstr "Autocompletamento parole chiave" + +#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:30 +#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:40 +#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:30 +#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:30 +msgid "Restore" +msgstr "Ripristina" + +#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:31 +msgid "Restore the autocompleter keywords list to the default state." +msgstr "" +"Ripristina l'autocompletamento delle parole chiave allo stato di default." + +#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:32 +#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:42 +#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:32 +#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:32 +msgid "Delete All" +msgstr "Cancella tutto" + +#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:33 +msgid "Delete all autocompleter keywords from the list." +msgstr "Cancella tutte le parole chiave della lista." + +#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:41 +msgid "Keywords list" +msgstr "Lista parole chiave" + +#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:43 +msgid "" +"List of keywords used by\n" +"the autocompleter in FlatCAM.\n" +"The autocompleter is installed\n" +"in the Code Editor and for the Tcl Shell." +msgstr "" +"Elenco di parole chiave utilizzate dal\n" +"completamento automatico in FlatCAM.\n" +"Il completamento automatico è attivo\n" +"nell'editor di codice e per la shell Tcl." + +#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:64 +#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:73 +#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:63 +#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:62 +msgid "Extension" +msgstr "Estensione" + +#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:65 +msgid "A keyword to be added or deleted to the list." +msgstr "Parola chiave da aggiungere o cancellare dalla lista." + +#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:73 +msgid "Add keyword" +msgstr "Aggiungi parola chiave" + +#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:74 +msgid "Add a keyword to the list" +msgstr "Aggiungi parola chiave alla lista" + +#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:75 +msgid "Delete keyword" +msgstr "Cancella parola chiave" + +#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:76 +msgid "Delete a keyword from the list" +msgstr "Cancella parola chiave dalla lista" + +#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:27 +msgid "Excellon File associations" +msgstr "Associazione file Excellon" + +#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:41 +#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:31 +#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:31 +msgid "Restore the extension list to the default state." +msgstr "Ripristina la lista estensioni allo stato di default." + +#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:43 +#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:33 +#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:33 +msgid "Delete all extensions from the list." +msgstr "Cancella tutte le estensioni dalla lista." + +#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:51 +#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:41 +#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:41 +msgid "Extensions list" +msgstr "Lista estensioni" + +#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:53 +#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:43 +#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:43 +msgid "" +"List of file extensions to be\n" +"associated with FlatCAM." +msgstr "Lista delle estensioni da associare a FlatCAM." + +#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:74 +#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:64 +#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:63 +msgid "A file extension to be added or deleted to the list." +msgstr "Estensione file da aggiungere o cancellare dalla lista." + +#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:82 +#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:72 +#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:71 +msgid "Add Extension" +msgstr "Aggiungi estensione" + +#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:83 +#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:73 +#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:72 +msgid "Add a file extension to the list" +msgstr "Aggiunge una estensione di file alla lista" + +#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:84 +#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:74 +#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:73 +msgid "Delete Extension" +msgstr "Cancella estensione" + +#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:85 +#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:75 +#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:74 +msgid "Delete a file extension from the list" +msgstr "Cancella una estensione file dalla lista" + +#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:92 +#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:82 +#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:81 +msgid "Apply Association" +msgstr "Applica associazione" + +#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:93 +#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:83 +#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:82 +msgid "" +"Apply the file associations between\n" +"FlatCAM and the files with above extensions.\n" +"They will be active after next logon.\n" +"This work only in Windows." +msgstr "" +"Applica l'associazione tra FlatCAM e i\n" +"files con le estensioni di cui sopra.\n" +"Sarà effettiva dal prossimo logon.\n" +"Funziona solo in Windows." + +#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:27 +msgid "GCode File associations" +msgstr "Associazione file GCode" + +#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:27 +msgid "Gerber File associations" +msgstr "Associazione file Gerber" + +#: flatcamObjects/FlatCAMCNCJob.py:429 flatcamObjects/FlatCAMDocument.py:71 +#: flatcamObjects/FlatCAMScript.py:82 +msgid "Basic" +msgstr "Base" + +#: flatcamObjects/FlatCAMCNCJob.py:435 flatcamObjects/FlatCAMDocument.py:75 +#: flatcamObjects/FlatCAMScript.py:86 +msgid "Advanced" +msgstr "Advanzato" + +#: flatcamObjects/FlatCAMCNCJob.py:478 +msgid "Plotting..." +msgstr "Sto disegnando..." + +#: flatcamObjects/FlatCAMCNCJob.py:507 flatcamObjects/FlatCAMCNCJob.py:512 +#: flatcamTools/ToolSolderPaste.py:1499 +msgid "Export Machine Code ..." +msgstr "Esporta codice macchina ..." + +#: flatcamObjects/FlatCAMCNCJob.py:517 flatcamTools/ToolSolderPaste.py:1503 +msgid "Export Machine Code cancelled ..." +msgstr "Esportazione codice macchina annullato ..." + +#: flatcamObjects/FlatCAMCNCJob.py:538 +msgid "Machine Code file saved to" +msgstr "File codice macchina salvato in" + +#: flatcamObjects/FlatCAMCNCJob.py:599 flatcamTools/ToolCalibration.py:1097 +msgid "Loaded Machine Code into Code Editor" +msgstr "Codice macchina caricato nell'editor codice" + +#: flatcamObjects/FlatCAMCNCJob.py:740 +msgid "This CNCJob object can't be processed because it is a" +msgstr "Questo oggetto CNCJob non può essere processato perché è" + +#: flatcamObjects/FlatCAMCNCJob.py:742 +msgid "CNCJob object" +msgstr "Oggetto CNCJob" + +#: flatcamObjects/FlatCAMCNCJob.py:922 +msgid "" +"G-code does not have a G94 code and we will not include the code in the " +"'Prepend to GCode' text box" +msgstr "" +"G-Code non ha un codice G94 e non sarà aggiunto nel box \"anteponi al GCode\"" + +#: flatcamObjects/FlatCAMCNCJob.py:933 +msgid "Cancelled. The Toolchange Custom code is enabled but it's empty." +msgstr "" +"Annullato. Il codice custom per il cambio utensile è abilitato ma vuoto." + +#: flatcamObjects/FlatCAMCNCJob.py:938 +msgid "Toolchange G-code was replaced by a custom code." +msgstr "G-Code per il cambio utensile sostituito da un codice custom." + +#: flatcamObjects/FlatCAMCNCJob.py:986 flatcamObjects/FlatCAMCNCJob.py:996 +msgid "" +"The used preprocessor file has to have in it's name: 'toolchange_custom'" +msgstr "" +"Il file del preprocessore usato deve avere nel nome: 'toolchange_custom'" + +#: flatcamObjects/FlatCAMCNCJob.py:999 +msgid "There is no preprocessor file." +msgstr "Non c'è nessun file preprocessore." + +#: flatcamObjects/FlatCAMDocument.py:175 +msgid "Document Editor" +msgstr "Editor Documenti" + +#: flatcamObjects/FlatCAMExcellon.py:514 flatcamObjects/FlatCAMExcellon.py:746 +#: flatcamObjects/FlatCAMGeometry.py:306 flatcamObjects/FlatCAMGeometry.py:767 +#: flatcamTools/ToolNCC.py:811 flatcamTools/ToolNCC.py:1191 +#: flatcamTools/ToolPaint.py:779 flatcamTools/ToolPaint.py:1166 +msgid "Multiple Tools" +msgstr "Strumenti Multipli" + +#: flatcamObjects/FlatCAMExcellon.py:726 +msgid "No Tool Selected" +msgstr "Nessun utensile selezionato" + +#: flatcamObjects/FlatCAMExcellon.py:1076 +#: flatcamObjects/FlatCAMExcellon.py:1168 +#: flatcamObjects/FlatCAMExcellon.py:1355 +msgid "Please select one or more tools from the list and try again." +msgstr "Seleziona uno o più utensili dalla lista e riprova." + +#: flatcamObjects/FlatCAMExcellon.py:1083 +msgid "Milling tool for DRILLS is larger than hole size. Cancelled." +msgstr "" +"L'utensile per la foratura è più grande del foro. Operazione annullata." + +#: flatcamObjects/FlatCAMExcellon.py:1098 +#: flatcamObjects/FlatCAMExcellon.py:1188 +#: flatcamObjects/FlatCAMExcellon.py:1373 +#: tclCommands/TclCommandDrillcncjob.py:193 +msgid "Tool_nr" +msgstr "Utensile_nr" + +#: flatcamObjects/FlatCAMExcellon.py:1098 +#: flatcamObjects/FlatCAMExcellon.py:1188 +#: flatcamObjects/FlatCAMExcellon.py:1373 +#: tclCommands/TclCommandDrillcncjob.py:193 +msgid "Drills_Nr" +msgstr "Foro_Nr" + +#: flatcamObjects/FlatCAMExcellon.py:1098 +#: flatcamObjects/FlatCAMExcellon.py:1188 +#: flatcamObjects/FlatCAMExcellon.py:1373 +#: tclCommands/TclCommandDrillcncjob.py:193 +msgid "Slots_Nr" +msgstr "Slot_Nr" + +#: flatcamObjects/FlatCAMExcellon.py:1177 +msgid "Milling tool for SLOTS is larger than hole size. Cancelled." +msgstr "L'utensile per lo SLOT è più grande del foro. Operazione annullata." + +#: flatcamObjects/FlatCAMExcellon.py:1281 +#: flatcamObjects/FlatCAMGeometry.py:1543 +msgid "Focus Z" +msgstr "Z a Fuoco" + +#: flatcamObjects/FlatCAMExcellon.py:1300 +#: flatcamObjects/FlatCAMGeometry.py:1562 +msgid "Laser Power" +msgstr "Potenza Laser" + +#: flatcamObjects/FlatCAMExcellon.py:1430 +#: flatcamObjects/FlatCAMGeometry.py:1999 +#: flatcamObjects/FlatCAMGeometry.py:2003 +#: flatcamObjects/FlatCAMGeometry.py:2148 +msgid "Generating CNC Code" +msgstr "Generazione codice CNC" + +#: flatcamObjects/FlatCAMExcellon.py:1620 flatcamTools/ToolNCC.py:918 +#: flatcamTools/ToolPaint.py:844 +msgid "Current Tool parameters were applied to all tools." +msgstr "Parametri attuali applicati a tutti gli utensili." + +#: flatcamObjects/FlatCAMGeometry.py:119 flatcamObjects/FlatCAMGeometry.py:1207 +#: flatcamObjects/FlatCAMGeometry.py:1208 +#: flatcamObjects/FlatCAMGeometry.py:1217 +msgid "Iso" +msgstr "Iso" + +#: flatcamObjects/FlatCAMGeometry.py:119 flatcamObjects/FlatCAMGeometry.py:439 +#: flatcamObjects/FlatCAMGeometry.py:826 flatcamObjects/FlatCAMGerber.py:891 +#: flatcamObjects/FlatCAMGerber.py:1039 flatcamTools/ToolCutOut.py:686 +#: flatcamTools/ToolCutOut.py:882 flatcamTools/ToolCutOut.py:1042 +msgid "Rough" +msgstr "Grezzo" + +#: flatcamObjects/FlatCAMGeometry.py:119 +msgid "Finish" +msgstr "Finito" + +#: flatcamObjects/FlatCAMGeometry.py:474 +msgid "Add from Tool DB" +msgstr "Aggiungi dal DB utensili" + +#: flatcamObjects/FlatCAMGeometry.py:845 +msgid "Tool added in Tool Table." +msgstr "Utensile aggiunto nella tavola utensili." + +#: flatcamObjects/FlatCAMGeometry.py:954 flatcamObjects/FlatCAMGeometry.py:963 +msgid "Failed. Select a tool to copy." +msgstr "Errore. Selezionare un utensile da copiare." + +#: flatcamObjects/FlatCAMGeometry.py:992 +msgid "Tool was copied in Tool Table." +msgstr "Utensile copiato nella tabella utensili." + +#: flatcamObjects/FlatCAMGeometry.py:1019 +msgid "Tool was edited in Tool Table." +msgstr "Utensile editato nella tabella utensili." + +#: flatcamObjects/FlatCAMGeometry.py:1048 +#: flatcamObjects/FlatCAMGeometry.py:1057 +msgid "Failed. Select a tool to delete." +msgstr "Errore. Selezionare un utensile da cancellare." + +#: flatcamObjects/FlatCAMGeometry.py:1081 +msgid "Tool was deleted in Tool Table." +msgstr "Utensile cancellato dalla tabella utensili." + +#: flatcamObjects/FlatCAMGeometry.py:1118 +#: flatcamObjects/FlatCAMGeometry.py:1128 +msgid "" +"Disabled because the tool is V-shape.\n" +"For V-shape tools the depth of cut is\n" +"calculated from other parameters like:\n" +"- 'V-tip Angle' -> angle at the tip of the tool\n" +"- 'V-tip Dia' -> diameter at the tip of the tool \n" +"- Tool Dia -> 'Dia' column found in the Tool Table\n" +"NB: a value of zero means that Tool Dia = 'V-tip Dia'" +msgstr "" +"Disabilitato perché lo strumento è a forma di V.\n" +"Per gli strumenti a V la profondità di taglio è\n" +"calcolato da altri parametri come:\n" +"- 'Angolo V' -> angolo sulla punta dell'utensile\n" +"- 'V Dia' -> diametro alla punta dell'utensile\n" +"- Strumento Dia -> colonna 'Dia' trovato nella tabella degli utensili\n" +"NB: un valore zero significa che Tool Dia = 'V Dia'" + +#: flatcamObjects/FlatCAMGeometry.py:1615 +msgid "This Geometry can't be processed because it is" +msgstr "Geometria non processabile per" + +#: flatcamObjects/FlatCAMGeometry.py:1615 +msgid "geometry" +msgstr "geometria" + +#: flatcamObjects/FlatCAMGeometry.py:1656 +msgid "Failed. No tool selected in the tool table ..." +msgstr "Errore. Nessun utensile selezionato nella tabella utensili ..." + +#: flatcamObjects/FlatCAMGeometry.py:1758 +#: flatcamObjects/FlatCAMGeometry.py:1908 +msgid "" +"Tool Offset is selected in Tool Table but no value is provided.\n" +"Add a Tool Offset or change the Offset Type." +msgstr "" +"Selezionato Offset utensile nella tabella utensili ma nessun valore " +"inserito.\n" +"Aggiungi un offset utensile o cambia il tipo di Offset." + +#: flatcamObjects/FlatCAMGeometry.py:1824 +#: flatcamObjects/FlatCAMGeometry.py:1970 +msgid "G-Code parsing in progress..." +msgstr "Analisi G_Code in corso..." + +#: flatcamObjects/FlatCAMGeometry.py:1826 +#: flatcamObjects/FlatCAMGeometry.py:1972 +msgid "G-Code parsing finished..." +msgstr "Analisi G_Code terminata..." + +#: flatcamObjects/FlatCAMGeometry.py:1834 +msgid "Finished G-Code processing" +msgstr "Generazione G_Code terminata" + +#: flatcamObjects/FlatCAMGeometry.py:1836 +#: flatcamObjects/FlatCAMGeometry.py:1984 +msgid "G-Code processing failed with error" +msgstr "Generazione G-Code fallita con errore" + +#: flatcamObjects/FlatCAMGeometry.py:1878 flatcamTools/ToolSolderPaste.py:1301 +msgid "Cancelled. Empty file, it has no geometry" +msgstr "Annullato. File vuoto, non ci sono geometrie" + +#: flatcamObjects/FlatCAMGeometry.py:1982 +#: flatcamObjects/FlatCAMGeometry.py:2143 +msgid "Finished G-Code processing..." +msgstr "Generazione G_Code terminata..." + +#: flatcamObjects/FlatCAMGeometry.py:2001 +#: flatcamObjects/FlatCAMGeometry.py:2005 +#: flatcamObjects/FlatCAMGeometry.py:2150 +msgid "CNCjob created" +msgstr "CNCjob creato" + +#: flatcamObjects/FlatCAMGeometry.py:2181 +#: flatcamObjects/FlatCAMGeometry.py:2190 flatcamParsers/ParseGerber.py:1867 +#: flatcamParsers/ParseGerber.py:1877 +msgid "Scale factor has to be a number: integer or float." +msgstr "Il fattore di scala deve essere un numero: intero o float." + +#: flatcamObjects/FlatCAMGeometry.py:2253 +msgid "Geometry Scale done." +msgstr "Riscala geometria terminata." + +#: flatcamObjects/FlatCAMGeometry.py:2270 flatcamParsers/ParseGerber.py:1993 +msgid "" +"An (x,y) pair of values are needed. Probable you entered only one value in " +"the Offset field." +msgstr "" +"E' necessaria una coppia di valori (x,y). Probabilmente è stato inserito " +"solo uno dei valori nel campo Offset." + +#: flatcamObjects/FlatCAMGeometry.py:2326 +msgid "Geometry Offset done." +msgstr "Offset geometria applicato." + +#: flatcamObjects/FlatCAMGeometry.py:2355 +msgid "" +"The Toolchange X,Y field in Edit -> Preferences has to be in the format (x, " +"y)\n" +"but now there is only one value, not two." +msgstr "" +"Il campo cambio utensile X,Y in Edit -> Preferenze deve essere nel formato " +"(x, y)\n" +"ma ora c'è un solo valore, non due." + +#: flatcamObjects/FlatCAMGerber.py:494 +msgid "Buffering solid geometry" +msgstr "Riempimento geometria solida" + +#: flatcamObjects/FlatCAMGerber.py:503 +msgid "Done" +msgstr "Fatto" + +#: flatcamObjects/FlatCAMGerber.py:529 flatcamObjects/FlatCAMGerber.py:555 +msgid "Operation could not be done." +msgstr "L'operazione non può essere eseguita." + +#: flatcamObjects/FlatCAMGerber.py:572 +msgid "Isolating..." +msgstr "Isolamento..." + +#: flatcamObjects/FlatCAMGerber.py:631 +msgid "Click on a polygon to isolate it." +msgstr "Clicca su un poligono per isolarlo." + +#: flatcamObjects/FlatCAMGerber.py:670 flatcamObjects/FlatCAMGerber.py:774 +#: flatcamTools/ToolPaint.py:1511 +msgid "Added polygon" +msgstr "Poligono aggiunto" + +#: flatcamObjects/FlatCAMGerber.py:671 flatcamObjects/FlatCAMGerber.py:776 +msgid "Click to add next polygon or right click to start isolation." +msgstr "" +"Clicca per aggiungere il prossimo poligono o tasto destro per iniziare " +"l'isolamento." + +#: flatcamObjects/FlatCAMGerber.py:683 flatcamTools/ToolPaint.py:1525 +msgid "Removed polygon" +msgstr "Poligono rimosso" + +#: flatcamObjects/FlatCAMGerber.py:684 +msgid "Click to add/remove next polygon or right click to start isolation." +msgstr "" +"Clicca per aggiungere/togliere il prossimo poligono o click destro per " +"iniziare l'isolamento." + +#: flatcamObjects/FlatCAMGerber.py:689 flatcamTools/ToolPaint.py:1531 +msgid "No polygon detected under click position." +msgstr "Nessun poligono rilevato sulla posizione cliccata." + +#: flatcamObjects/FlatCAMGerber.py:710 flatcamTools/ToolPaint.py:1560 +msgid "List of single polygons is empty. Aborting." +msgstr "La lista di poligoni singoli è vuota. Operazione annullata." + +#: flatcamObjects/FlatCAMGerber.py:779 +msgid "No polygon in selection." +msgstr "Nessun poligono nella selezione." + +#: flatcamObjects/FlatCAMGerber.py:907 flatcamObjects/FlatCAMGerber.py:986 +#: flatcamTools/ToolNCC.py:2081 flatcamTools/ToolNCC.py:3132 +#: flatcamTools/ToolNCC.py:3511 +msgid "Isolation geometry could not be generated." +msgstr "Geometria di isolamento non può essere generata." + +#: flatcamObjects/FlatCAMGerber.py:932 flatcamObjects/FlatCAMGerber.py:1064 +msgid "Isolation geometry created" +msgstr "Geometria di isolamento creata" + +#: flatcamObjects/FlatCAMGerber.py:941 flatcamObjects/FlatCAMGerber.py:1071 +msgid "Subtracting Geo" +msgstr "Sottrazione geometria" + +#: flatcamObjects/FlatCAMGerber.py:1396 +msgid "Plotting Apertures" +msgstr "Generazione aperture" + +#: flatcamObjects/FlatCAMObj.py:234 +msgid "Name changed from" +msgstr "Nome cambiato da" + +#: flatcamObjects/FlatCAMObj.py:234 +msgid "to" +msgstr "a" + +#: flatcamObjects/FlatCAMObj.py:245 +msgid "Offsetting..." +msgstr "Applicazione offset..." + +#: flatcamObjects/FlatCAMObj.py:259 flatcamObjects/FlatCAMObj.py:264 +msgid "Scaling could not be executed." +msgstr "La riscalatura non può essere eseguita." + +#: flatcamObjects/FlatCAMObj.py:268 flatcamObjects/FlatCAMObj.py:276 +msgid "Scale done." +msgstr "Riscalatura effettuata." + +#: flatcamObjects/FlatCAMObj.py:274 +msgid "Scaling..." +msgstr "Riscalatura..." + +#: flatcamObjects/FlatCAMObj.py:292 +msgid "Skewing..." +msgstr "Inglinazione..." + +#: flatcamObjects/FlatCAMScript.py:163 +msgid "Script Editor" +msgstr "Editor Script" + +#: flatcamObjects/ObjectCollection.py:510 +#, python-brace-format +msgid "Object renamed from {old} to {new}" +msgstr "Oggetto rinominato da {old} a {new}" + +#: flatcamObjects/ObjectCollection.py:983 +msgid "Cause of error" +msgstr "Causa dell'errore" + +#: flatcamParsers/ParseExcellon.py:316 +msgid "This is GCODE mark" +msgstr "Marchio GCode" + +#: flatcamParsers/ParseExcellon.py:433 +msgid "" +"No tool diameter info's. See shell.\n" +"A tool change event: T" +msgstr "" +"Nessuna info sul diametro utensile. Vedi shell.\n" +"Un evento cambio utensile T" + +#: flatcamParsers/ParseExcellon.py:436 +msgid "" +"was found but the Excellon file have no informations regarding the tool " +"diameters therefore the application will try to load it by using some 'fake' " +"diameters.\n" +"The user needs to edit the resulting Excellon object and change the " +"diameters to reflect the real diameters." +msgstr "" +"è stato rilevato ma il file Excellon non ha informazioni a riguardo del " +"diametro dell'utensile. L'applicazione tenterà di caricarlo usando un " +"diametro \"finto\".\n" +"L'utente dovrà editare l'oggetto Excellon e cambiarle il diametro per " +"contenere il diametro corretto." + +#: flatcamParsers/ParseExcellon.py:900 +msgid "" +"Excellon Parser error.\n" +"Parsing Failed. Line" +msgstr "Errore analisi Excellon. Analisi fallita. Linea" + +#: flatcamParsers/ParseExcellon.py:982 +msgid "" +"Excellon.create_geometry() -> a drill location was skipped due of not having " +"a tool associated.\n" +"Check the resulting GCode." +msgstr "" +"Excellon.create_geometry() -> è stata ignorata una posizione di foratura per " +"la mancanza di utensile.\n" +"Controllare il GCode risultante." + +#: flatcamParsers/ParseFont.py:303 +msgid "Font not supported, try another one." +msgstr "Font non supportato, prova con un altro." + +#: flatcamParsers/ParseGerber.py:426 +msgid "Gerber processing. Parsing" +msgstr "Processo Gerber. Analisi" + +#: flatcamParsers/ParseGerber.py:426 flatcamParsers/ParseHPGL2.py:178 +msgid "lines" +msgstr "righe" + +#: flatcamParsers/ParseGerber.py:1002 flatcamParsers/ParseGerber.py:1102 +#: flatcamParsers/ParseHPGL2.py:271 flatcamParsers/ParseHPGL2.py:285 +#: flatcamParsers/ParseHPGL2.py:304 flatcamParsers/ParseHPGL2.py:328 +#: flatcamParsers/ParseHPGL2.py:363 +msgid "Coordinates missing, line ignored" +msgstr "Coordinate mancanti, riga ignorata" + +#: flatcamParsers/ParseGerber.py:1004 flatcamParsers/ParseGerber.py:1104 +msgid "GERBER file might be CORRUPT. Check the file !!!" +msgstr "Il file GERBER potrebbe essere CORROTTO. Controlla il file !!!" + +#: flatcamParsers/ParseGerber.py:1058 +msgid "" +"Region does not have enough points. File will be processed but there are " +"parser errors. Line number" +msgstr "" +"La regione non ha sufficienti punti. Il file sarà usato ma ci sono errori di " +"analisi. Riga numero" + +#: flatcamParsers/ParseGerber.py:1488 flatcamParsers/ParseHPGL2.py:398 +msgid "Gerber processing. Joining polygons" +msgstr "Gerber analizzato. Unione poligoni" + +#: flatcamParsers/ParseGerber.py:1505 +msgid "Gerber processing. Applying Gerber polarity." +msgstr "Gerber analizzato. Applico polarità Gerber." + +#: flatcamParsers/ParseGerber.py:1565 +msgid "Gerber Line" +msgstr "Riga Gerber" + +#: flatcamParsers/ParseGerber.py:1565 +msgid "Gerber Line Content" +msgstr "Contenuto riga Gerber" + +#: flatcamParsers/ParseGerber.py:1567 +msgid "Gerber Parser ERROR" +msgstr "ERRORE analisi Gerber" + +#: flatcamParsers/ParseGerber.py:1957 +msgid "Gerber Scale done." +msgstr "Riscalatura Gerber completata." + +#: flatcamParsers/ParseGerber.py:2049 +msgid "Gerber Offset done." +msgstr "Spostamento Gerber completato." + +#: flatcamParsers/ParseGerber.py:2125 +msgid "Gerber Mirror done." +msgstr "Specchiature Gerber completata." + +#: flatcamParsers/ParseGerber.py:2199 +msgid "Gerber Skew done." +msgstr "Inclinazione Gerber completata." + +#: flatcamParsers/ParseGerber.py:2261 +msgid "Gerber Rotate done." +msgstr "Rotazione Gerber completata." + +#: flatcamParsers/ParseGerber.py:2418 +msgid "Gerber Buffer done." +msgstr "Riempimento Gerber completato." + +#: flatcamParsers/ParseHPGL2.py:178 +msgid "HPGL2 processing. Parsing" +msgstr "Controllo HPGL2. Analisi" + +#: flatcamParsers/ParseHPGL2.py:410 +msgid "HPGL2 Line" +msgstr "Riga HPGL2" + +#: flatcamParsers/ParseHPGL2.py:410 +msgid "HPGL2 Line Content" +msgstr "Contenuto riga HPGL2" + +#: flatcamParsers/ParseHPGL2.py:411 +msgid "HPGL2 Parser ERROR" +msgstr "ERRORE analisi HPGL2" + +#: flatcamTools/ToolAlignObjects.py:32 +msgid "Align Objects" +msgstr "Allinea oggetti" + +#: flatcamTools/ToolAlignObjects.py:61 +msgid "MOVING object" +msgstr "SPOSTAMENTO oggetto" + +#: flatcamTools/ToolAlignObjects.py:65 +msgid "" +"Specify the type of object to be aligned.\n" +"It can be of type: Gerber or Excellon.\n" +"The selection here decide the type of objects that will be\n" +"in the Object combobox." +msgstr "" +"Specificare il tipo di oggetto da allineare.\n" +"Può essere di tipo: Gerber o Excellon.\n" +"La selezione decide il tipo di oggetti che saranno\n" +"nella combobox Oggetto." + +#: flatcamTools/ToolAlignObjects.py:86 +msgid "Object to be aligned." +msgstr "Oggetto da allineare." + +#: flatcamTools/ToolAlignObjects.py:98 +msgid "TARGET object" +msgstr "Oggetto DESTINAZIONE" + +#: flatcamTools/ToolAlignObjects.py:100 +msgid "" +"Specify the type of object to be aligned to.\n" +"It can be of type: Gerber or Excellon.\n" +"The selection here decide the type of objects that will be\n" +"in the Object combobox." +msgstr "" +"Specificare il tipo di oggetto da allineare.\n" +"Può essere di tipo: Gerber o Excellon.\n" +"La selezione decide il tipo di oggetti che saranno\n" +"nella combobox Oggetto." + +#: flatcamTools/ToolAlignObjects.py:122 +msgid "Object to be aligned to. Aligner." +msgstr "Oggetto da allineare. Allineatore." + +#: flatcamTools/ToolAlignObjects.py:135 +msgid "Alignment Type" +msgstr "Tipo allineamento" + +#: flatcamTools/ToolAlignObjects.py:137 +msgid "" +"The type of alignment can be:\n" +"- Single Point -> it require a single point of sync, the action will be a " +"translation\n" +"- Dual Point -> it require two points of sync, the action will be " +"translation followed by rotation" +msgstr "" +"Il tipo di allineamento può essere:\n" +"- Punto singolo -> richiede un solo punto di sincronizzazione, l'azione sarà " +"una traslazione\n" +"- Punto doppio -> richiede due punti di sincronizzazione, l'azione sarà la " +"traslazione seguita da rotazione" + +#: flatcamTools/ToolAlignObjects.py:143 +msgid "Single Point" +msgstr "Punto singolo" + +#: flatcamTools/ToolAlignObjects.py:144 +msgid "Dual Point" +msgstr "Doppio punto" + +#: flatcamTools/ToolAlignObjects.py:159 +msgid "Align Object" +msgstr "Allinea oggetto" + +#: flatcamTools/ToolAlignObjects.py:161 +msgid "" +"Align the specified object to the aligner object.\n" +"If only one point is used then it assumes translation.\n" +"If tho points are used it assume translation and rotation." +msgstr "" +"Allinea l'oggetto specificato all'oggetto allineatore.\n" +"Se viene utilizzato solo un punto, assume la traslazione.\n" +"Se si utilizzano i punti, si assume la traslazione e rotazione." + +#: flatcamTools/ToolAlignObjects.py:176 flatcamTools/ToolCalculators.py:246 +#: flatcamTools/ToolCalibration.py:683 flatcamTools/ToolCopperThieving.py:484 +#: flatcamTools/ToolCutOut.py:362 flatcamTools/ToolDblSided.py:471 +#: flatcamTools/ToolExtractDrills.py:310 flatcamTools/ToolFiducials.py:318 +#: flatcamTools/ToolFilm.py:520 flatcamTools/ToolInvertGerber.py:140 +#: flatcamTools/ToolNCC.py:612 flatcamTools/ToolOptimal.py:237 +#: flatcamTools/ToolPaint.py:556 flatcamTools/ToolPanelize.py:269 +#: flatcamTools/ToolPunchGerber.py:339 flatcamTools/ToolQRCode.py:314 +#: flatcamTools/ToolRulesCheck.py:516 flatcamTools/ToolSolderPaste.py:473 +#: flatcamTools/ToolSub.py:176 flatcamTools/ToolTransform.py:398 +msgid "Reset Tool" +msgstr "Azzera strumento" + +#: flatcamTools/ToolAlignObjects.py:178 flatcamTools/ToolCalculators.py:248 +#: flatcamTools/ToolCalibration.py:685 flatcamTools/ToolCopperThieving.py:486 +#: flatcamTools/ToolCutOut.py:364 flatcamTools/ToolDblSided.py:473 +#: flatcamTools/ToolExtractDrills.py:312 flatcamTools/ToolFiducials.py:320 +#: flatcamTools/ToolFilm.py:522 flatcamTools/ToolInvertGerber.py:142 +#: flatcamTools/ToolNCC.py:614 flatcamTools/ToolOptimal.py:239 +#: flatcamTools/ToolPaint.py:558 flatcamTools/ToolPanelize.py:271 +#: flatcamTools/ToolPunchGerber.py:341 flatcamTools/ToolQRCode.py:316 +#: flatcamTools/ToolRulesCheck.py:518 flatcamTools/ToolSolderPaste.py:475 +#: flatcamTools/ToolSub.py:178 flatcamTools/ToolTransform.py:400 +msgid "Will reset the tool parameters." +msgstr "Azzererà i parametri dello strumento." + +#: flatcamTools/ToolAlignObjects.py:244 +msgid "Align Tool" +msgstr "Strumento allineamento" + +#: flatcamTools/ToolAlignObjects.py:289 +msgid "There is no aligned FlatCAM object selected..." +msgstr "Non si sono oggetti FlatCAM allineati..." + +#: flatcamTools/ToolAlignObjects.py:299 +msgid "There is no aligner FlatCAM object selected..." +msgstr "Non si sono oggetti FlatCAM allineatori selezionati..." + +#: flatcamTools/ToolAlignObjects.py:325 flatcamTools/ToolAlignObjects.py:385 +msgid "First Point" +msgstr "Primo punto" + +#: flatcamTools/ToolAlignObjects.py:325 flatcamTools/ToolAlignObjects.py:400 +msgid "Click on the START point." +msgstr "Fai clic sul punto di PARTENZA." + +#: flatcamTools/ToolAlignObjects.py:380 flatcamTools/ToolCalibration.py:920 +msgid "Cancelled by user request." +msgstr "Annullato su richiesta dell'utente." + +#: flatcamTools/ToolAlignObjects.py:385 flatcamTools/ToolAlignObjects.py:407 +msgid "Click on the DESTINATION point." +msgstr "Fai clic sul punto di DESTINAZIONE." + +#: flatcamTools/ToolAlignObjects.py:385 flatcamTools/ToolAlignObjects.py:400 +#: flatcamTools/ToolAlignObjects.py:407 +msgid "Or right click to cancel." +msgstr "O click destro per annullare." + +#: flatcamTools/ToolAlignObjects.py:400 flatcamTools/ToolAlignObjects.py:407 +#: flatcamTools/ToolFiducials.py:111 +msgid "Second Point" +msgstr "Secondo punto" + +#: flatcamTools/ToolCalculators.py:24 +msgid "Calculators" +msgstr "Calcolatrici" + +#: flatcamTools/ToolCalculators.py:26 +msgid "Units Calculator" +msgstr "Calcolatrice unità" + +#: flatcamTools/ToolCalculators.py:70 +msgid "Here you enter the value to be converted from INCH to MM" +msgstr "Puoi convertire unita da POLLICI a MM" + +#: flatcamTools/ToolCalculators.py:75 +msgid "Here you enter the value to be converted from MM to INCH" +msgstr "Puoi convertire unita da MM a POLLICI" + +#: flatcamTools/ToolCalculators.py:111 +msgid "" +"This is the angle of the tip of the tool.\n" +"It is specified by manufacturer." +msgstr "" +"Questo è l'angolo della punta dell'utensile.\n" +"È specificato dal produttore." + +#: flatcamTools/ToolCalculators.py:120 +msgid "" +"This is the depth to cut into the material.\n" +"In the CNCJob is the CutZ parameter." +msgstr "" +"Questa è la profondità di taglio nel materiale.\n" +"Nel CNCJob è presente il parametro CutZ." + +#: flatcamTools/ToolCalculators.py:128 +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 "" +"Questo è il diametro dell'utensile da inserire\n" +"nella sezione FlatCAM Gerber.\n" +"Nella sezione CNCJob si chiama >Tool dia<." + +#: flatcamTools/ToolCalculators.py:139 flatcamTools/ToolCalculators.py:235 +msgid "Calculate" +msgstr "Calcola" + +#: flatcamTools/ToolCalculators.py:142 +msgid "" +"Calculate either the Cut Z or the effective tool diameter,\n" +" depending on which is desired and which is known. " +msgstr "" +"Calcola il taglio Z o il diametro effettivo dell'utensile,\n" +" a seconda del risultato desiderato o dei dati noti. " + +#: flatcamTools/ToolCalculators.py:205 +msgid "Current Value" +msgstr "Valore corrente" + +#: flatcamTools/ToolCalculators.py:212 +msgid "" +"This is the current intensity value\n" +"to be set on the Power Supply. In Amps." +msgstr "" +"Intensità di corrente da impostare\n" +"nell'alimentatore. In Ampere." + +#: flatcamTools/ToolCalculators.py:216 +msgid "Time" +msgstr "Tempo" + +#: flatcamTools/ToolCalculators.py:223 +msgid "" +"This is the calculated time required for the procedure.\n" +"In minutes." +msgstr "Tempo calcolato per la procedura. In minuti." + +#: flatcamTools/ToolCalculators.py:238 +msgid "" +"Calculate the current intensity value and the procedure time,\n" +"depending on the parameters above" +msgstr "" +"Calcula l'intensità di corrente e la durata della procedura,\n" +"a seconda dei parametri sopra" + +#: flatcamTools/ToolCalculators.py:299 +msgid "Calc. Tool" +msgstr "Strumenti Calcolatrici" + +#: flatcamTools/ToolCalibration.py:67 +msgid "GCode Parameters" +msgstr "Parametri GCode" + +#: flatcamTools/ToolCalibration.py:69 +msgid "Parameters used when creating the GCode in this tool." +msgstr "Parametri usati nella creazione del GCode in questo strumento." + +#: flatcamTools/ToolCalibration.py:173 +msgid "STEP 1: Acquire Calibration Points" +msgstr "PASSO 1: Acquisizione dei punti di calibrazione" + +#: flatcamTools/ToolCalibration.py:175 +msgid "" +"Pick four points by clicking on canvas.\n" +"Those four points should be in the four\n" +"(as much as possible) corners of the object." +msgstr "" +"Calcola il taglio Z o il diametro effettivo dell'utensile,\n" +" a seconda del risultato desiderato o dei dati noti...." + +#: flatcamTools/ToolCalibration.py:193 flatcamTools/ToolFilm.py:76 +#: flatcamTools/ToolImage.py:54 flatcamTools/ToolPanelize.py:78 +#: flatcamTools/ToolProperties.py:177 +msgid "Object Type" +msgstr "Tipo oggetto" + +#: flatcamTools/ToolCalibration.py:210 +msgid "Source object selection" +msgstr "Selezione oggetto di origine" + +#: flatcamTools/ToolCalibration.py:212 +msgid "FlatCAM Object to be used as a source for reference points." +msgstr "Oggetto FlatCAM da usare come sorgente per i punti di riferimento." + +#: flatcamTools/ToolCalibration.py:218 +msgid "Calibration Points" +msgstr "Punti di calibrazione" + +#: flatcamTools/ToolCalibration.py:220 +msgid "" +"Contain the expected calibration points and the\n" +"ones measured." +msgstr "" +"Contiene i punti di calibrazione e\n" +"quelli misurati." + +#: flatcamTools/ToolCalibration.py:235 flatcamTools/ToolSub.py:76 +#: flatcamTools/ToolSub.py:131 +msgid "Target" +msgstr "Destinazione" + +#: flatcamTools/ToolCalibration.py:236 +msgid "Found Delta" +msgstr "Calcolo Delta" + +#: flatcamTools/ToolCalibration.py:248 +msgid "Bot Left X" +msgstr "X basso-Sinistra" + +#: flatcamTools/ToolCalibration.py:257 +msgid "Bot Left Y" +msgstr "Y Basso-Sinistra" + +#: flatcamTools/ToolCalibration.py:275 +msgid "Bot Right X" +msgstr "X Basso-Destra" + +#: flatcamTools/ToolCalibration.py:285 +msgid "Bot Right Y" +msgstr "Y Basso-Destra" + +#: flatcamTools/ToolCalibration.py:300 +msgid "Top Left X" +msgstr "X Alto-Sinistra" + +#: flatcamTools/ToolCalibration.py:309 +msgid "Top Left Y" +msgstr "Y Alto-Sinistra" + +#: flatcamTools/ToolCalibration.py:324 +msgid "Top Right X" +msgstr "X Alto-Destra" + +#: flatcamTools/ToolCalibration.py:334 +msgid "Top Right Y" +msgstr "Y Alto-Destra" + +#: flatcamTools/ToolCalibration.py:367 +msgid "Get Points" +msgstr "Ottieni punti" + +#: flatcamTools/ToolCalibration.py:369 +msgid "" +"Pick four points by clicking on canvas if the source choice\n" +"is 'free' or inside the object geometry if the source is 'object'.\n" +"Those four points should be in the four squares of\n" +"the object." +msgstr "" +"Seleziona quattro punti cliccandoci sopra se l'origine scelta è\n" +"'libera' o all'interno dell'oggetto geometria se la sorgente è 'oggetto'.\n" +"Questi quattro punti dovrebbero essere nei quattro angoli\n" +"dell'oggetto." + +#: flatcamTools/ToolCalibration.py:390 +msgid "STEP 2: Verification GCode" +msgstr "PASSO 2: Verifica del GCode" + +#: flatcamTools/ToolCalibration.py:392 flatcamTools/ToolCalibration.py:405 +msgid "" +"Generate GCode file to locate and align the PCB by using\n" +"the four points acquired above.\n" +"The points sequence is:\n" +"- first point -> set the origin\n" +"- second point -> alignment point. Can be: top-left or bottom-right.\n" +"- third point -> check point. Can be: top-left or bottom-right.\n" +"- forth point -> final verification point. Just for evaluation." +msgstr "" +"Genera il file GCode per individuare e allineare il PCB utilizzando\n" +"i quattro punti acquisiti sopra.\n" +"La sequenza di punti è:\n" +"- primo punto -> imposta l'origine\n" +"- secondo punto -> punto di allineamento. Può essere: in alto a sinistra o " +"in basso a destra.\n" +"- terzo punto -> punto di controllo. Può essere: in alto a sinistra o in " +"basso a destra.\n" +"- quarto punto -> punto di verifica finale. Solo per valutazione." + +#: flatcamTools/ToolCalibration.py:403 flatcamTools/ToolSolderPaste.py:348 +msgid "Generate GCode" +msgstr "Genera GCode" + +#: flatcamTools/ToolCalibration.py:429 +msgid "STEP 3: Adjustments" +msgstr "PASSO 3: modifica" + +#: flatcamTools/ToolCalibration.py:431 flatcamTools/ToolCalibration.py:440 +msgid "" +"Calculate Scale and Skew factors based on the differences (delta)\n" +"found when checking the PCB pattern. The differences must be filled\n" +"in the fields Found (Delta)." +msgstr "" +"Calcola i fattori di scala e di inclinazione in base alle differenze " +"(delta)\n" +"trovate durante il controllo del PCB. Le differenze devono essere colmate\n" +"nei campi Trovato (Delta)." + +#: flatcamTools/ToolCalibration.py:438 +msgid "Calculate Factors" +msgstr "Calcola fattori" + +#: flatcamTools/ToolCalibration.py:460 +msgid "STEP 4: Adjusted GCode" +msgstr "PASSO 4: GCode modificato" + +#: flatcamTools/ToolCalibration.py:462 +msgid "" +"Generate verification GCode file adjusted with\n" +"the factors above." +msgstr "" +"Genera file GCode di verifica modificato con\n" +"i fattori sopra." + +#: flatcamTools/ToolCalibration.py:467 +msgid "Scale Factor X:" +msgstr "Fattore X scala:" + +#: flatcamTools/ToolCalibration.py:479 +msgid "Scale Factor Y:" +msgstr "Fattore Y scala:" + +#: flatcamTools/ToolCalibration.py:491 +msgid "Apply Scale Factors" +msgstr "Applica fattori di scala" + +#: flatcamTools/ToolCalibration.py:493 +msgid "Apply Scale factors on the calibration points." +msgstr "Applica fattori di scala sui punti di calibrazione." + +#: flatcamTools/ToolCalibration.py:503 +msgid "Skew Angle X:" +msgstr "Angolo inclinazione X:" + +#: flatcamTools/ToolCalibration.py:516 +msgid "Skew Angle Y:" +msgstr "Angolo inclinazione Y:" + +#: flatcamTools/ToolCalibration.py:529 +msgid "Apply Skew Factors" +msgstr "Applica fattori di inclinazione" + +#: flatcamTools/ToolCalibration.py:531 +msgid "Apply Skew factors on the calibration points." +msgstr "Applica fattori di inclinazione sui punti di calibrazione." + +#: flatcamTools/ToolCalibration.py:600 +msgid "Generate Adjusted GCode" +msgstr "Genera GCode modificato" + +#: flatcamTools/ToolCalibration.py:602 +msgid "" +"Generate verification GCode file adjusted with\n" +"the factors set above.\n" +"The GCode parameters can be readjusted\n" +"before clicking this button." +msgstr "" +"Genera file GCode di verifica modificato con\n" +"i fattori sopra indicati.\n" +"I parametri GCode possono essere riadattati\n" +"prima di fare clic su questo pulsante." + +#: flatcamTools/ToolCalibration.py:623 +msgid "STEP 5: Calibrate FlatCAM Objects" +msgstr "PASSO 5: Calibra oggetti FlatCAM" + +#: flatcamTools/ToolCalibration.py:625 +msgid "" +"Adjust the FlatCAM objects\n" +"with the factors determined and verified above." +msgstr "" +"Regola gli oggetti FlatCAM\n" +"con i fattori determinati e verificati sopra." + +#: flatcamTools/ToolCalibration.py:637 +msgid "Adjusted object type" +msgstr "Tipo oggetto regolato" + +#: flatcamTools/ToolCalibration.py:638 +msgid "Type of the FlatCAM Object to be adjusted." +msgstr "Tipo di oggetto FlatCAM da regolare." + +#: flatcamTools/ToolCalibration.py:651 +msgid "Adjusted object selection" +msgstr "Selezione oggetto regolato" + +#: flatcamTools/ToolCalibration.py:653 +msgid "The FlatCAM Object to be adjusted." +msgstr "L'oggetto FlatCAM da regolare." + +#: flatcamTools/ToolCalibration.py:660 +msgid "Calibrate" +msgstr "Calibra" + +#: flatcamTools/ToolCalibration.py:662 +msgid "" +"Adjust (scale and/or skew) the objects\n" +"with the factors determined above." +msgstr "" +"Regola (scala e/o inclina) gli oggetti\n" +"con i fattori determinati sopra." + +#: flatcamTools/ToolCalibration.py:770 flatcamTools/ToolCalibration.py:771 +msgid "Origin" +msgstr "Origine" + +#: flatcamTools/ToolCalibration.py:800 +msgid "Tool initialized" +msgstr "Strumento inizializzato" + +#: flatcamTools/ToolCalibration.py:838 +msgid "There is no source FlatCAM object selected..." +msgstr "Non si sono oggetti FlatCAM sorgente selezionati..." + +#: flatcamTools/ToolCalibration.py:859 +msgid "Get First calibration point. Bottom Left..." +msgstr "Primo punto di calibrazione. In basso a sinistra..." + +#: flatcamTools/ToolCalibration.py:926 +msgid "Get Second calibration point. Bottom Right (Top Left)..." +msgstr "Secondo punto di calibrazione. In basso a destra (Sopra Sinistra) ..." + +#: flatcamTools/ToolCalibration.py:930 +msgid "Get Third calibration point. Top Left (Bottom Right)..." +msgstr "Terzo punto di calibrazione. Sopra a sinistra (Basso Destra)…." + +#: flatcamTools/ToolCalibration.py:934 +msgid "Get Forth calibration point. Top Right..." +msgstr "Quarto punto di calibrazione. In alto a destra..." + +#: flatcamTools/ToolCalibration.py:938 +msgid "Done. All four points have been acquired." +msgstr "Fatto. I quattro punti sono stati ascuisiti." + +#: flatcamTools/ToolCalibration.py:969 +msgid "Verification GCode for FlatCAM Calibration Tool" +msgstr "Verifica Gcode per lo strumento Calibrazione di FlatCAM" + +#: flatcamTools/ToolCalibration.py:981 flatcamTools/ToolCalibration.py:1067 +msgid "Gcode Viewer" +msgstr "Visualizzatore GCode" + +#: flatcamTools/ToolCalibration.py:997 +msgid "Cancelled. Four points are needed for GCode generation." +msgstr "Annullato. Sono necessari 4 punti per la generazione del GCode." + +#: flatcamTools/ToolCalibration.py:1253 flatcamTools/ToolCalibration.py:1349 +msgid "There is no FlatCAM object selected..." +msgstr "Non si sono oggetti FlatCAM selezionati..." + +#: flatcamTools/ToolCopperThieving.py:76 flatcamTools/ToolFiducials.py:261 +msgid "Gerber Object to which will be added a copper thieving." +msgstr "Oggetto Gerber a cui verrà aggiunto rame." + +#: flatcamTools/ToolCopperThieving.py:98 +msgid "" +"This set the distance between the copper thieving components\n" +"(the polygon fill may be split in multiple polygons)\n" +"and the copper traces in the Gerber file." +msgstr "" +"Questo imposta la distanza tra i componenti del deposito di rame\n" +"(il riempimento poligonale può essere suddiviso in più poligoni)\n" +"e le tracce di rame nel file Gerber." + +#: flatcamTools/ToolCopperThieving.py:131 +msgid "" +"- 'Itself' - the copper thieving extent is based on the object extent.\n" +"- 'Area Selection' - left mouse click to start selection of the area to be " +"filled.\n" +"- 'Reference Object' - will do copper thieving within the area specified by " +"another object." +msgstr "" +"- 'Stesso': l'estensione del deposito di rame si basa sull'estensione " +"dell'oggetto.\n" +"- 'Selezione area': fare clic con il pulsante sinistro del mouse per avviare " +"la selezione dell'area da riempire.\n" +"- 'Oggetto di riferimento': eseguirà il furto di rame nell'area specificata " +"da un altro oggetto." + +#: flatcamTools/ToolCopperThieving.py:138 flatcamTools/ToolNCC.py:552 +#: flatcamTools/ToolPaint.py:496 +msgid "Ref. Type" +msgstr "Tipo riferimento" + +#: flatcamTools/ToolCopperThieving.py:140 +msgid "" +"The type of FlatCAM object to be used as copper thieving reference.\n" +"It can be Gerber, Excellon or Geometry." +msgstr "" +"Il tipo di oggetto FlatCAM da utilizzare come deposito di rame di " +"riferimento.\n" +"Può essere Gerber, Excellon o Geometry." + +#: flatcamTools/ToolCopperThieving.py:149 flatcamTools/ToolNCC.py:562 +#: flatcamTools/ToolPaint.py:506 +msgid "Ref. Object" +msgstr "Oggetto di riferimento" + +#: flatcamTools/ToolCopperThieving.py:151 flatcamTools/ToolNCC.py:564 +#: flatcamTools/ToolPaint.py:508 +msgid "The FlatCAM object to be used as non copper clearing reference." +msgstr "Oggetto FlatCAM da usare come riferimento rimozione rame." + +#: flatcamTools/ToolCopperThieving.py:327 +msgid "Insert Copper thieving" +msgstr "Inserire il deposito di rame" + +#: flatcamTools/ToolCopperThieving.py:329 +msgid "" +"Will add a polygon (may be split in multiple parts)\n" +"that will surround the actual Gerber traces at a certain distance." +msgstr "" +"Aggiungerà un poligono (può essere diviso in più parti)\n" +"che circonderà le tracce Gerber attuali ad una certa distanza." + +#: flatcamTools/ToolCopperThieving.py:388 +msgid "Insert Robber Bar" +msgstr "Inserisci la barra del ladro" + +#: flatcamTools/ToolCopperThieving.py:390 +msgid "" +"Will add a polygon with a defined thickness\n" +"that will surround the actual Gerber object\n" +"at a certain distance.\n" +"Required when doing holes pattern plating." +msgstr "" +"Aggiungerà un poligono con uno spessore definito\n" +"che circonderà l'oggetto Gerber reale\n" +"ad una certa distanza.\n" +"Richiesto quando si esegue la placcatura di fori." + +#: flatcamTools/ToolCopperThieving.py:414 +msgid "Select Soldermask object" +msgstr "Seleziona oggetto Soldermask" + +#: flatcamTools/ToolCopperThieving.py:416 +msgid "" +"Gerber Object with the soldermask.\n" +"It will be used as a base for\n" +"the pattern plating mask." +msgstr "" +"Oggetto Gerber con il soldermask.\n" +"Sarà usato come base per\n" +"la maschera di placcatura del modello." + +#: flatcamTools/ToolCopperThieving.py:445 +msgid "Plated area" +msgstr "Area ricoperta" + +#: flatcamTools/ToolCopperThieving.py:447 +msgid "" +"The area to be plated by pattern plating.\n" +"Basically is made from the openings in the plating mask.\n" +"\n" +"<> - the calculated area is actually a bit larger\n" +"due of the fact that the soldermask openings are by design\n" +"a bit larger than the copper pads, and this area is\n" +"calculated from the soldermask openings." +msgstr "" +"L'area da ricoprire mediante placcatura a motivo.\n" +"Fondamentalmente è fatto dalle aperture nella maschera di placcatura.\n" +"\n" +"<>: l'area calcolata è in realtà un po' più grande\n" +"a causa del fatto che le aperture del soldermask sono progettate\n" +"un po' più grandi dei pad di rame, e questa area è\n" +"calcolata dalle aperture del soldermask." + +#: flatcamTools/ToolCopperThieving.py:458 +msgid "mm" +msgstr "mm" + +#: flatcamTools/ToolCopperThieving.py:460 +msgid "in" +msgstr "pollici" + +#: flatcamTools/ToolCopperThieving.py:467 +msgid "Generate pattern plating mask" +msgstr "Genera maschera placcatura modello" + +#: flatcamTools/ToolCopperThieving.py:469 +msgid "" +"Will add to the soldermask gerber geometry\n" +"the geometries of the copper thieving and/or\n" +"the robber bar if those were generated." +msgstr "" +"Aggiungerà alla geometria gerber soldermask\n" +"le geometrie del deposito di rame e/o\n" +"la barra dei ladri se sono stati generati." + +#: flatcamTools/ToolCopperThieving.py:625 +#: flatcamTools/ToolCopperThieving.py:650 +msgid "Lines Grid works only for 'itself' reference ..." +msgstr "Griglia linee funziona solo per riferimento 'stesso' ..." + +#: flatcamTools/ToolCopperThieving.py:636 +msgid "Solid fill selected." +msgstr "Riempimento solido selezionato." + +#: flatcamTools/ToolCopperThieving.py:641 +msgid "Dots grid fill selected." +msgstr "Riempimento griglia di punti selezionata." + +#: flatcamTools/ToolCopperThieving.py:646 +msgid "Squares grid fill selected." +msgstr "Riempimento griglia di quadrati selezionata." + +#: flatcamTools/ToolCopperThieving.py:667 +#: flatcamTools/ToolCopperThieving.py:749 +#: flatcamTools/ToolCopperThieving.py:1345 flatcamTools/ToolDblSided.py:657 +#: flatcamTools/ToolExtractDrills.py:436 flatcamTools/ToolFiducials.py:466 +#: flatcamTools/ToolFiducials.py:743 flatcamTools/ToolOptimal.py:342 +#: flatcamTools/ToolPunchGerber.py:512 flatcamTools/ToolQRCode.py:426 +msgid "There is no Gerber object loaded ..." +msgstr "Non ci sono oggetti Gerber caricati ..." + +#: flatcamTools/ToolCopperThieving.py:680 +#: flatcamTools/ToolCopperThieving.py:1273 +msgid "Append geometry" +msgstr "Aggiungi geometria" + +#: flatcamTools/ToolCopperThieving.py:724 +#: flatcamTools/ToolCopperThieving.py:1306 +#: flatcamTools/ToolCopperThieving.py:1459 +msgid "Append source file" +msgstr "Aggiungi file sorgente" + +#: flatcamTools/ToolCopperThieving.py:732 +#: flatcamTools/ToolCopperThieving.py:1314 +msgid "Copper Thieving Tool done." +msgstr "Strumento deposito di rame fatto." + +#: flatcamTools/ToolCopperThieving.py:759 +#: flatcamTools/ToolCopperThieving.py:792 flatcamTools/ToolCutOut.py:515 +#: flatcamTools/ToolCutOut.py:720 flatcamTools/ToolInvertGerber.py:208 +#: flatcamTools/ToolNCC.py:1594 flatcamTools/ToolNCC.py:1635 +#: flatcamTools/ToolNCC.py:1664 flatcamTools/ToolPaint.py:1469 +#: flatcamTools/ToolPanelize.py:412 flatcamTools/ToolPanelize.py:426 +#: flatcamTools/ToolSub.py:294 flatcamTools/ToolSub.py:307 +#: flatcamTools/ToolSub.py:498 flatcamTools/ToolSub.py:513 +#: tclCommands/TclCommandCopperClear.py:97 tclCommands/TclCommandPaint.py:99 +msgid "Could not retrieve object" +msgstr "Impossibile recuperare l'oggetto" + +#: flatcamTools/ToolCopperThieving.py:769 flatcamTools/ToolNCC.py:1643 +msgid "Click the start point of the area." +msgstr "Fai clic sul punto iniziale dell'area." + +#: flatcamTools/ToolCopperThieving.py:820 +msgid "Click the end point of the filling area." +msgstr "Fai clic sul punto finale dell'area di riempimento." + +#: flatcamTools/ToolCopperThieving.py:826 flatcamTools/ToolNCC.py:1705 +#: flatcamTools/ToolNCC.py:1757 flatcamTools/ToolPaint.py:1601 +#: flatcamTools/ToolPaint.py:1652 +msgid "Zone added. Click to start adding next zone or right click to finish." +msgstr "" +"Zona aggiunta. Fare clic per iniziare ad aggiungere la zona successiva o " +"fare clic con il tasto destro per terminare." + +#: flatcamTools/ToolCopperThieving.py:942 +#: flatcamTools/ToolCopperThieving.py:946 +#: flatcamTools/ToolCopperThieving.py:1007 +msgid "Thieving" +msgstr "Deposito" + +#: flatcamTools/ToolCopperThieving.py:953 +msgid "Copper Thieving Tool started. Reading parameters." +msgstr "Strumento deposito di rame avviato. Lettura dei parametri." + +#: flatcamTools/ToolCopperThieving.py:978 +msgid "Copper Thieving Tool. Preparing isolation polygons." +msgstr "" +"Strumento deposito di rame avviato. Preparazione poligoni di isolamento." + +#: flatcamTools/ToolCopperThieving.py:1023 +msgid "Copper Thieving Tool. Preparing areas to fill with copper." +msgstr "" +"Strumento deposito di rame avviato. Preparazione aree da riempire di rame." + +#: flatcamTools/ToolCopperThieving.py:1034 flatcamTools/ToolOptimal.py:349 +#: flatcamTools/ToolPanelize.py:799 flatcamTools/ToolRulesCheck.py:1127 +msgid "Working..." +msgstr "Elaborazione..." + +#: flatcamTools/ToolCopperThieving.py:1061 +msgid "Geometry not supported for bounding box" +msgstr "Geometria non supportata per box di selezione" + +#: flatcamTools/ToolCopperThieving.py:1067 flatcamTools/ToolNCC.py:1928 +#: flatcamTools/ToolNCC.py:1983 flatcamTools/ToolNCC.py:2987 +#: flatcamTools/ToolPaint.py:3375 +msgid "No object available." +msgstr "Nessun oggetto disponibile." + +#: flatcamTools/ToolCopperThieving.py:1104 flatcamTools/ToolNCC.py:1953 +#: flatcamTools/ToolNCC.py:2006 flatcamTools/ToolNCC.py:3029 +msgid "The reference object type is not supported." +msgstr "Il tipo di oggetto di riferimento non è supportato." + +#: flatcamTools/ToolCopperThieving.py:1109 +msgid "Copper Thieving Tool. Appending new geometry and buffering." +msgstr "Strumento deposito di rame. Aggiunta di nuova geometria e buffering." + +#: flatcamTools/ToolCopperThieving.py:1125 +msgid "Create geometry" +msgstr "Crea geometria" + +#: flatcamTools/ToolCopperThieving.py:1325 +#: flatcamTools/ToolCopperThieving.py:1329 +msgid "P-Plating Mask" +msgstr "Maskera P-Placatura" + +#: flatcamTools/ToolCopperThieving.py:1351 +msgid "Append PP-M geometry" +msgstr "Aggiunta geometria maschera placatura" + +#: flatcamTools/ToolCopperThieving.py:1477 +msgid "Generating Pattern Plating Mask done." +msgstr "Generazione maschera Placatura eseguita." + +#: flatcamTools/ToolCopperThieving.py:1549 +msgid "Copper Thieving Tool exit." +msgstr "Chiudi strumento deposito di rame." + +#: flatcamTools/ToolCutOut.py:41 +msgid "Cutout PCB" +msgstr "Taglia PCB" + +#: flatcamTools/ToolCutOut.py:69 flatcamTools/ToolPanelize.py:54 +msgid "Source Object" +msgstr "Oggetto sorgente" + +#: flatcamTools/ToolCutOut.py:70 +msgid "Object to be cutout" +msgstr "Oggetto da tagliare" + +#: flatcamTools/ToolCutOut.py:75 +msgid "Kind" +msgstr "Tipo" + +#: flatcamTools/ToolCutOut.py:97 +msgid "" +"Specify the type of object to be cutout.\n" +"It can be of type: Gerber or Geometry.\n" +"What is selected here will dictate the kind\n" +"of objects that will populate the 'Object' combobox." +msgstr "" +"Specificare il tipo di oggetto da ritagliare.\n" +"Può essere di tipo: Gerber o Geometria.\n" +"Ciò che è selezionato qui detterà il tipo\n" +"di oggetti che popoleranno la casella combinata 'Oggetto'." + +#: flatcamTools/ToolCutOut.py:121 +msgid "Tool Parameters" +msgstr "Parametri Utensile" + +#: flatcamTools/ToolCutOut.py:238 +msgid "A. Automatic Bridge Gaps" +msgstr "A. Testimoni automatici" + +#: flatcamTools/ToolCutOut.py:240 +msgid "This section handle creation of automatic bridge gaps." +msgstr "Questa sezione gestisce la creazione di testimoni automatici." + +#: flatcamTools/ToolCutOut.py:247 +msgid "" +"Number of gaps used for the Automatic cutout.\n" +"There can be maximum 8 bridges/gaps.\n" +"The choices are:\n" +"- None - no gaps\n" +"- lr - left + right\n" +"- tb - top + bottom\n" +"- 4 - left + right +top + bottom\n" +"- 2lr - 2*left + 2*right\n" +"- 2tb - 2*top + 2*bottom\n" +"- 8 - 2*left + 2*right +2*top + 2*bottom" +msgstr "" +"Numero di spazi utilizzati per il ritaglio automatico.\n" +"Possono esserci al massimo 8 ponti/spazi vuoti.\n" +"Le scelte sono:\n" +"- Nessuna - nessuna lacuna\n" +"- SD - sinistra + destra\n" +"- AB - alto + basso\n" +"- 4 - sinistra + destra + sopra + sotto\n" +"- 2SD - 2 * sinistra + 2 * destra\n" +"- 2AB - 2 * in alto + 2 * in basso\n" +"- 8 - 2 * sinistra + 2 * destra + 2 * in alto + 2 * in basso" + +#: flatcamTools/ToolCutOut.py:269 +msgid "Generate Freeform Geometry" +msgstr "Genera geometria a forma libera" + +#: flatcamTools/ToolCutOut.py:271 +msgid "" +"Cutout the selected object.\n" +"The cutout shape can be of any shape.\n" +"Useful when the PCB has a non-rectangular shape." +msgstr "" +"Ritaglia l'oggetto selezionato.\n" +"La forma del ritaglio può essere di qualsiasi forma.\n" +"Utile quando il PCB ha una forma non rettangolare." + +#: flatcamTools/ToolCutOut.py:283 +msgid "Generate Rectangular Geometry" +msgstr "Genera geometria rettangolare" + +#: flatcamTools/ToolCutOut.py:285 +msgid "" +"Cutout the selected object.\n" +"The resulting cutout shape is\n" +"always a rectangle shape and it will be\n" +"the bounding box of the Object." +msgstr "" +"Ritaglia l'oggetto selezionato.\n" +"La forma di ritaglio risultante è\n" +"sempre una forma rettangolare e sarà\n" +"rettangolare anche la selezione dell'oggetto." + +#: flatcamTools/ToolCutOut.py:304 +msgid "B. Manual Bridge Gaps" +msgstr "B. Testimoni manuali" + +#: flatcamTools/ToolCutOut.py:306 +msgid "" +"This section handle creation of manual bridge gaps.\n" +"This is done by mouse clicking on the perimeter of the\n" +"Geometry object that is used as a cutout object. " +msgstr "" +"Questa sezione gestisce la creazione di testimoni manuali.\n" +"Questo viene fatto facendo clic con il mouse sul perimetro\n" +"dell'oggetto Geometria utilizzato come oggetto ritaglio. " + +#: flatcamTools/ToolCutOut.py:321 +msgid "Geometry object used to create the manual cutout." +msgstr "Oggetto geometria utilizzato per creare il ritaglio manuale." + +#: flatcamTools/ToolCutOut.py:328 +msgid "Generate Manual Geometry" +msgstr "Genera geometria manuale" + +#: flatcamTools/ToolCutOut.py:330 +msgid "" +"If the object to be cutout is a Gerber\n" +"first create a Geometry that surrounds it,\n" +"to be used as the cutout, if one doesn't exist yet.\n" +"Select the source Gerber file in the top object combobox." +msgstr "" +"Se l'oggetto da ritagliare è un Gerber\n" +"prima crea una Geometria che la circondi,\n" +"da usare come ritaglio, se non ne esiste ancora uno.\n" +"Seleziona il file Gerber di origine nel box in alto." + +#: flatcamTools/ToolCutOut.py:343 +msgid "Manual Add Bridge Gaps" +msgstr "Aggiungi testimoni manualmente" + +#: flatcamTools/ToolCutOut.py:345 +msgid "" +"Use the left mouse button (LMB) click\n" +"to create a bridge gap to separate the PCB from\n" +"the surrounding material.\n" +"The LMB click has to be done on the perimeter of\n" +"the Geometry object used as a cutout geometry." +msgstr "" +"Utilizzare il pulsante sinistro del mouse (PSM)\n" +"per creare un gap ponte da cui separare il PCB\n" +"dal materiale circostante (testimone).\n" +"Il clic PMS deve essere eseguito sul perimetro\n" +"dell'oggetto geometria utilizzato come geometria di ritaglio." + +#: flatcamTools/ToolCutOut.py:520 +msgid "" +"There is no object selected for Cutout.\n" +"Select one and try again." +msgstr "" +"Nessun oggetto selezionato per Ritaglio.\n" +"Selezionane uno e riprova." + +#: flatcamTools/ToolCutOut.py:526 flatcamTools/ToolCutOut.py:729 +#: flatcamTools/ToolCutOut.py:910 flatcamTools/ToolCutOut.py:992 +#: tclCommands/TclCommandGeoCutout.py:184 +msgid "Tool Diameter is zero value. Change it to a positive real number." +msgstr "" +"Il diametro dell'utensile ha valore zero. Modificalo in un numero reale " +"positivo." + +#: flatcamTools/ToolCutOut.py:540 flatcamTools/ToolCutOut.py:744 +msgid "Number of gaps value is missing. Add it and retry." +msgstr "Manca il numero dei testimoni. Aggiungilo e riprova." + +#: flatcamTools/ToolCutOut.py:545 flatcamTools/ToolCutOut.py:748 +msgid "" +"Gaps value can be only one of: 'None', 'lr', 'tb', '2lr', '2tb', 4 or 8. " +"Fill in a correct value and retry. " +msgstr "" +"Il valore dei testimoni può essere solo uno dei seguenti: 'Nessuno', 'SD', " +"'SS', '2SD', '2SS', 4 o 8. Inserire un valore corretto e riprovare. " + +#: flatcamTools/ToolCutOut.py:550 flatcamTools/ToolCutOut.py:754 +msgid "" +"Cutout operation cannot be done on a multi-geo Geometry.\n" +"Optionally, this Multi-geo Geometry can be converted to Single-geo " +"Geometry,\n" +"and after that perform Cutout." +msgstr "" +"L'operazione di ritaglio non può essere eseguita su una geometria multi-" +"geo.\n" +"Opzionalmente, questa geometria multi-geo può essere convertita in geometria " +"single-geo,\n" +"e successivamente esegui il ritaglio." + +#: flatcamTools/ToolCutOut.py:702 flatcamTools/ToolCutOut.py:899 +msgid "Any form CutOut operation finished." +msgstr "Tutti i task di CutOut terminati." + +#: flatcamTools/ToolCutOut.py:724 flatcamTools/ToolInvertGerber.py:214 +#: flatcamTools/ToolNCC.py:1598 flatcamTools/ToolPaint.py:1392 +#: flatcamTools/ToolPanelize.py:417 tclCommands/TclCommandBbox.py:71 +#: tclCommands/TclCommandNregions.py:71 +msgid "Object not found" +msgstr "Oggetto non trovato" + +#: flatcamTools/ToolCutOut.py:868 +msgid "Rectangular cutout with negative margin is not possible." +msgstr "Ritaglio rettangolare con margine negativo non possibile." + +#: flatcamTools/ToolCutOut.py:904 +msgid "" +"Click on the selected geometry object perimeter to create a bridge gap ..." +msgstr "" +"Fare clic sul perimetro dell'oggetto geometria selezionato per creare uno " +"spazio tra i testimoni ..." + +#: flatcamTools/ToolCutOut.py:921 flatcamTools/ToolCutOut.py:947 +msgid "Could not retrieve Geometry object" +msgstr "Impossibile recuperare l'oggetto Geometry" + +#: flatcamTools/ToolCutOut.py:952 +msgid "Geometry object for manual cutout not found" +msgstr "Oggetto Geometria per ritaglio manuale non trovato" + +#: flatcamTools/ToolCutOut.py:962 +msgid "Added manual Bridge Gap." +msgstr "Aggiunti testimoni manualmente." + +#: flatcamTools/ToolCutOut.py:974 +msgid "Could not retrieve Gerber object" +msgstr "Impossibile recuperare l'oggetto Gerber" + +#: flatcamTools/ToolCutOut.py:979 +msgid "" +"There is no Gerber object selected for Cutout.\n" +"Select one and try again." +msgstr "" +"Non è stato selezionato alcun oggetto Gerber per il Ritaglio.\n" +"Selezionane uno e riprova." + +#: flatcamTools/ToolCutOut.py:985 +msgid "" +"The selected object has to be of Gerber type.\n" +"Select a Gerber file and try again." +msgstr "" +"L'oggetto selezionato deve essere di tipo Gerber.\n" +"Seleziona un file Gerber e riprova." + +#: flatcamTools/ToolCutOut.py:1020 +msgid "Geometry not supported for cutout" +msgstr "Geometria non supportata per il ritaglio" + +#: flatcamTools/ToolCutOut.py:1095 +msgid "Making manual bridge gap..." +msgstr "Creare un testimone manualmente ..." + +#: flatcamTools/ToolDblSided.py:26 +msgid "2-Sided PCB" +msgstr "PCB doppia faccia" + +#: flatcamTools/ToolDblSided.py:52 +msgid "Mirror Operation" +msgstr "Operazione Specchio" + +#: flatcamTools/ToolDblSided.py:53 +msgid "Objects to be mirrored" +msgstr "Oggetto da specchiare" + +#: flatcamTools/ToolDblSided.py:65 +msgid "Gerber to be mirrored" +msgstr "Gerber da specchiare" + +#: flatcamTools/ToolDblSided.py:69 flatcamTools/ToolDblSided.py:97 +#: flatcamTools/ToolDblSided.py:127 +msgid "" +"Mirrors (flips) the specified object around \n" +"the specified axis. Does not create a new \n" +"object, but modifies it." +msgstr "" +"Specchia (capovolge) l'oggetto specificato attorno\n" +"l'asse specificato. Non crea un nuovo oggetto,\n" +"ma lo modifica." + +#: flatcamTools/ToolDblSided.py:93 +msgid "Excellon Object to be mirrored." +msgstr "Oggetto Excellon da specchiare." + +#: flatcamTools/ToolDblSided.py:122 +msgid "Geometry Obj to be mirrored." +msgstr "Oggetto Geometria da specchiare." + +#: flatcamTools/ToolDblSided.py:158 +msgid "Mirror Parameters" +msgstr "Parametri specchio" + +#: flatcamTools/ToolDblSided.py:159 +msgid "Parameters for the mirror operation" +msgstr "Parametri per l'operazione specchio" + +#: flatcamTools/ToolDblSided.py:164 +msgid "Mirror Axis" +msgstr "Asse di Specchio" + +#: flatcamTools/ToolDblSided.py:175 +msgid "" +"The coordinates used as reference for the mirror operation.\n" +"Can be:\n" +"- Point -> a set of coordinates (x,y) around which the object is mirrored\n" +"- Box -> a set of coordinates (x, y) obtained from the center of the\n" +"bounding box of another object selected below" +msgstr "" +"Coordinate utilizzate come riferimento per l'operazione specchio.\n" +"Può essere:\n" +"- Punto -> un insieme di coordinate (x,y) attorno alle quali l'oggetto viene " +"specchiato\n" +"- Riquadro -> un insieme di coordinate (x,y) ottenute dal centro della\n" +"riquadro di selezione di un altro oggetto selezionato sotto" + +#: flatcamTools/ToolDblSided.py:189 +msgid "Point coordinates" +msgstr "Coordinate punto" + +#: flatcamTools/ToolDblSided.py:194 +msgid "" +"Add the coordinates in format (x, y) through which the mirroring " +"axis\n" +" selected in 'MIRROR AXIS' pass.\n" +"The (x, y) coordinates are captured by pressing SHIFT key\n" +"and left mouse button click on canvas or you can enter the coordinates " +"manually." +msgstr "" +"Aggiungi le coordinate nel formato (x, y) attraverso le quali passa " +"l'asse di\n" +" mirroring in \"ASSE SPECCHIO\".\n" +"Le coordinate (x, y) vengono acquisite premendo il tasto SHIFT\n" +"e con il clic sinistro del mouse oppure inserite manualmente." + +#: flatcamTools/ToolDblSided.py:218 +msgid "" +"It can be of type: Gerber or Excellon or Geometry.\n" +"The coordinates of the center of the bounding box are used\n" +"as reference for mirror operation." +msgstr "" +"Può essere di tipo: Gerber o Excellon o Geometry.\n" +"Le coordinate del centro del rettangolo di selezione vengono usate\n" +"come riferimento per l'operazione di specchio." + +#: flatcamTools/ToolDblSided.py:252 +msgid "Bounds Values" +msgstr "Valori limite" + +#: flatcamTools/ToolDblSided.py:254 +msgid "" +"Select on canvas the object(s)\n" +"for which to calculate bounds values." +msgstr "" +"Seleziona dal disegno l'oggetto(i)\n" +"per i quali calcolare i valori limite." + +#: flatcamTools/ToolDblSided.py:264 +msgid "X min" +msgstr "X min" + +#: flatcamTools/ToolDblSided.py:266 flatcamTools/ToolDblSided.py:280 +msgid "Minimum location." +msgstr "Locazione minima." + +#: flatcamTools/ToolDblSided.py:278 +msgid "Y min" +msgstr "Y min" + +#: flatcamTools/ToolDblSided.py:292 +msgid "X max" +msgstr "X max" + +#: flatcamTools/ToolDblSided.py:294 flatcamTools/ToolDblSided.py:308 +msgid "Maximum location." +msgstr "Locazione massima." + +#: flatcamTools/ToolDblSided.py:306 +msgid "Y max" +msgstr "Y max" + +#: flatcamTools/ToolDblSided.py:317 +msgid "Center point coordinates" +msgstr "Coordinate punto centrale" + +#: flatcamTools/ToolDblSided.py:319 +msgid "Centroid" +msgstr "Centroide" + +#: flatcamTools/ToolDblSided.py:321 +msgid "" +"The center point location for the rectangular\n" +"bounding shape. Centroid. Format is (x, y)." +msgstr "" +"La posizione del punto centrale per il box delimitante\n" +"rettangolare. Centroide. Il formato è (x, y)." + +#: flatcamTools/ToolDblSided.py:330 +msgid "Calculate Bounds Values" +msgstr "Calcola i valori dei limiti" + +#: flatcamTools/ToolDblSided.py:332 +msgid "" +"Calculate the enveloping rectangular shape coordinates,\n" +"for the selection of objects.\n" +"The envelope shape is parallel with the X, Y axis." +msgstr "" +"Calcola le coordinate che avvolgano in forma rettangolare,\n" +"per la selezione di oggetti.\n" +"La forma dell'inviluppo è parallela all'asse X, Y." + +#: flatcamTools/ToolDblSided.py:352 +msgid "PCB Alignment" +msgstr "Allineamento PCB" + +#: flatcamTools/ToolDblSided.py:354 flatcamTools/ToolDblSided.py:456 +msgid "" +"Creates an Excellon Object containing the\n" +"specified alignment holes and their mirror\n" +"images." +msgstr "" +"Crea un oggetto Excellon contenente i\n" +"fori di allineamento specificati e la loro\n" +"relativa immagine speculare." + +#: flatcamTools/ToolDblSided.py:361 +msgid "Drill Diameter" +msgstr "Diametro punta" + +#: flatcamTools/ToolDblSided.py:390 flatcamTools/ToolDblSided.py:397 +msgid "" +"The reference point used to create the second alignment drill\n" +"from the first alignment drill, by doing mirror.\n" +"It can be modified in the Mirror Parameters -> Reference section" +msgstr "" +"Il punto di riferimento utilizzato per creare il secondo foro di " +"allineamento\n" +"dal primo foro, facendone la copia speculare.\n" +"Può essere modificato nella sezione Parametri specchio -> Riferimento" + +#: flatcamTools/ToolDblSided.py:410 +msgid "Alignment Drill Coordinates" +msgstr "Coordinate fori di allineamento" + +#: flatcamTools/ToolDblSided.py:412 +msgid "" +"Alignment holes (x1, y1), (x2, y2), ... on one side of the mirror axis. For " +"each set of (x, y) coordinates\n" +"entered here, a pair of drills will be created:\n" +"\n" +"- one drill at the coordinates from the field\n" +"- one drill in mirror position over the axis selected above in the 'Align " +"Axis'." +msgstr "" +"Fori di allineamento (x1, y1), (x2, y2), ... su un lato dell'asse dello " +"specchio. Per ogni set di coordinate (x, y)\n" +"qui inserite, verrà creata una coppia di fori:\n" +"\n" +"- un foro alle coordinate dal campo\n" +"- un foro in posizione speculare sull'asse selezionato sopra in 'asse " +"specchio'." + +#: flatcamTools/ToolDblSided.py:420 +msgid "Drill coordinates" +msgstr "Coordinate fori" + +#: flatcamTools/ToolDblSided.py:427 +msgid "" +"Add alignment drill holes coordinates in the format: (x1, y1), (x2, " +"y2), ... \n" +"on one side of the alignment axis.\n" +"\n" +"The coordinates set can be obtained:\n" +"- press SHIFT key and left mouse clicking on canvas. Then click Add.\n" +"- press SHIFT key and left mouse clicking on canvas. Then Ctrl+V in the " +"field.\n" +"- press SHIFT key and left mouse clicking on canvas. Then RMB click in the " +"field and click Paste.\n" +"- by entering the coords manually in the format: (x1, y1), (x2, y2), ..." +msgstr "" +"Aggiungi i cordoncini di fori di allineamento nel formato: (x1, y1), (x2, " +"y2), ...\n" +"su un lato dell'asse dello specchio.\n" +"\n" +"Le coordinate impostate possono essere ottenute:\n" +"- premi il tasto SHIFT e fai clic con il tasto sinistro del mouse. Quindi " +"fai clic su Aggiungi.\n" +"- premi il tasto SHIFT e fai clic con il tasto sinistro del mouse. Quindi " +"Ctrl+V nel campo.\n" +"- premi il tasto SHIFT e fai clic con il tasto sinistro del mouse. Quindi " +"col pulsante destro nel campo e fai clic su Incolla.\n" +"- inserendo manualmente le coordinate nel formato: (x1, y1), (x2, y2), ..." + +#: flatcamTools/ToolDblSided.py:442 +msgid "Delete Last" +msgstr "Cancella ultimo" + +#: flatcamTools/ToolDblSided.py:444 +msgid "Delete the last coordinates tuple in the list." +msgstr "Cancella l'ultima tupla di coordinate dalla lista." + +#: flatcamTools/ToolDblSided.py:454 +msgid "Create Excellon Object" +msgstr "Creao oggetto Excellon" + +#: flatcamTools/ToolDblSided.py:541 +msgid "2-Sided Tool" +msgstr "Strumento doppia faccia" + +#: flatcamTools/ToolDblSided.py:581 +msgid "" +"'Point' reference is selected and 'Point' coordinates are missing. Add them " +"and retry." +msgstr "" +"'Punto' riferimento selezionato ma coordinate 'Punto' mancanti. Aggiungile e " +"riprova." + +#: flatcamTools/ToolDblSided.py:600 +msgid "There is no Box reference object loaded. Load one and retry." +msgstr "" +"Non è stato caricato alcun oggetto di riferimento Box. Caricare uno e " +"riprovare." + +#: flatcamTools/ToolDblSided.py:612 +msgid "No value or wrong format in Drill Dia entry. Add it and retry." +msgstr "" +"Nessun valore o formato errato nella voce Diametro Fori. Aggiungilo e " +"riprova." + +#: flatcamTools/ToolDblSided.py:623 +msgid "There are no Alignment Drill Coordinates to use. Add them and retry." +msgstr "" +"Non ci sono coordinate per i fori di allineamento da usare. Aggiungili e " +"riprova." + +#: flatcamTools/ToolDblSided.py:648 +msgid "Excellon object with alignment drills created..." +msgstr "Oggetto Excellon con i fori di allineamento creati ..." + +#: flatcamTools/ToolDblSided.py:661 flatcamTools/ToolDblSided.py:704 +#: flatcamTools/ToolDblSided.py:748 +msgid "Only Gerber, Excellon and Geometry objects can be mirrored." +msgstr "Possono essere specchiati solo oggetti Gerber, Excellon e Geometry." + +#: flatcamTools/ToolDblSided.py:671 flatcamTools/ToolDblSided.py:715 +msgid "" +"There are no Point coordinates in the Point field. Add coords and try " +"again ..." +msgstr "" +"Non ci sono coordinate Punto nel campo Punto. Aggiungi corde e riprova ..." + +#: flatcamTools/ToolDblSided.py:681 flatcamTools/ToolDblSided.py:725 +#: flatcamTools/ToolDblSided.py:762 +msgid "There is no Box object loaded ..." +msgstr "Nessun oggetto contenitore caricato ..." + +#: flatcamTools/ToolDblSided.py:691 flatcamTools/ToolDblSided.py:735 +#: flatcamTools/ToolDblSided.py:772 +msgid "was mirrored" +msgstr "è stato specchiato" + +#: flatcamTools/ToolDblSided.py:700 flatcamTools/ToolPunchGerber.py:533 +msgid "There is no Excellon object loaded ..." +msgstr "Nessun oggetto Excellon caricato ..." + +#: flatcamTools/ToolDblSided.py:744 +msgid "There is no Geometry object loaded ..." +msgstr "Nessun oggetto Geometria caricato ..." + +#: flatcamTools/ToolDistance.py:57 flatcamTools/ToolDistanceMin.py:51 +msgid "Those are the units in which the distance is measured." +msgstr "Quelle sono le unità in cui viene misurata la distanza." + +#: flatcamTools/ToolDistance.py:58 flatcamTools/ToolDistanceMin.py:52 +msgid "METRIC (mm)" +msgstr "METRICA (mm)" + +#: flatcamTools/ToolDistance.py:58 flatcamTools/ToolDistanceMin.py:52 +msgid "INCH (in)" +msgstr "POLLICI (in)" + +#: flatcamTools/ToolDistance.py:64 +msgid "Snap to center" +msgstr "Aggancia al centro" + +#: flatcamTools/ToolDistance.py:66 +msgid "" +"Mouse cursor will snap to the center of the pad/drill\n" +"when it is hovering over the geometry of the pad/drill." +msgstr "" +"Il cursore del mouse si posizionerà al centro del pad/foro\n" +"quando passa sopra la geometria del pad/foro." + +#: flatcamTools/ToolDistance.py:76 +msgid "Start Coords" +msgstr "Coordinate di partenza" + +#: flatcamTools/ToolDistance.py:77 flatcamTools/ToolDistance.py:82 +msgid "This is measuring Start point coordinates." +msgstr "Questo sta misurando le coordinate del punto iniziale." + +#: flatcamTools/ToolDistance.py:87 +msgid "Stop Coords" +msgstr "Coordinate di stop" + +#: flatcamTools/ToolDistance.py:88 flatcamTools/ToolDistance.py:93 +msgid "This is the measuring Stop point coordinates." +msgstr "Queste sono le coordinate del punto di arresto di misurazione." + +#: flatcamTools/ToolDistance.py:98 flatcamTools/ToolDistanceMin.py:63 +msgid "Dx" +msgstr "Dx" + +#: flatcamTools/ToolDistance.py:99 flatcamTools/ToolDistance.py:104 +#: flatcamTools/ToolDistanceMin.py:64 flatcamTools/ToolDistanceMin.py:93 +msgid "This is the distance measured over the X axis." +msgstr "Questa è la distanza misurata sull'asse X." + +#: flatcamTools/ToolDistance.py:109 flatcamTools/ToolDistanceMin.py:66 +msgid "Dy" +msgstr "Dy" + +#: flatcamTools/ToolDistance.py:110 flatcamTools/ToolDistance.py:115 +#: flatcamTools/ToolDistanceMin.py:67 flatcamTools/ToolDistanceMin.py:98 +msgid "This is the distance measured over the Y axis." +msgstr "Questa è la distanza misurata sull'asse Y." + +#: flatcamTools/ToolDistance.py:121 flatcamTools/ToolDistance.py:126 +#: flatcamTools/ToolDistanceMin.py:70 flatcamTools/ToolDistanceMin.py:103 +msgid "This is orientation angle of the measuring line." +msgstr "Questo è l'angolo di orientamento della linea di misurazione." + +#: flatcamTools/ToolDistance.py:131 flatcamTools/ToolDistanceMin.py:72 +msgid "DISTANCE" +msgstr "DISTANZA" + +#: flatcamTools/ToolDistance.py:132 flatcamTools/ToolDistance.py:137 +msgid "This is the point to point Euclidian distance." +msgstr "Questo è il punto per indicare la distanza euclidea." + +#: flatcamTools/ToolDistance.py:142 flatcamTools/ToolDistance.py:337 +#: flatcamTools/ToolDistanceMin.py:115 +msgid "Measure" +msgstr "Misura" + +#: flatcamTools/ToolDistance.py:272 +msgid "Working" +msgstr "Elaborazione" + +#: flatcamTools/ToolDistance.py:277 +msgid "MEASURING: Click on the Start point ..." +msgstr "MISURA: clicca sul punto di origine ..." + +#: flatcamTools/ToolDistance.py:387 +msgid "Distance Tool finished." +msgstr "Strumento Distanza completato." + +#: flatcamTools/ToolDistance.py:455 +msgid "Pads overlapped. Aborting." +msgstr "Pad sovrapposti. Annullo." + +#: flatcamTools/ToolDistance.py:485 +msgid "MEASURING: Click on the Destination point ..." +msgstr "MISURA: clicca sul punto di destinazione ..." + +#: flatcamTools/ToolDistance.py:494 flatcamTools/ToolDistanceMin.py:285 +msgid "MEASURING" +msgstr "MISURA" + +#: flatcamTools/ToolDistance.py:495 flatcamTools/ToolDistanceMin.py:286 +msgid "Result" +msgstr "Risultato" + +#: flatcamTools/ToolDistanceMin.py:32 flatcamTools/ToolDistanceMin.py:144 +msgid "Minimum Distance Tool" +msgstr "Strumento distanza minima" + +#: flatcamTools/ToolDistanceMin.py:55 +msgid "First object point" +msgstr "Primo punto oggetto" + +#: flatcamTools/ToolDistanceMin.py:56 flatcamTools/ToolDistanceMin.py:81 +msgid "" +"This is first object point coordinates.\n" +"This is the start point for measuring distance." +msgstr "" +"Coordinate del primo punto oggetto.\n" +"Questo è il punto di partenza per misurare la distanza." + +#: flatcamTools/ToolDistanceMin.py:59 +msgid "Second object point" +msgstr "Secondo punto oggetto" + +#: flatcamTools/ToolDistanceMin.py:60 flatcamTools/ToolDistanceMin.py:87 +msgid "" +"This is second object point coordinates.\n" +"This is the end point for measuring distance." +msgstr "" +"Coordinate del secondo punto oggetto.\n" +"Questo è il punto di fine per misurare la distanza." + +#: flatcamTools/ToolDistanceMin.py:73 flatcamTools/ToolDistanceMin.py:108 +msgid "This is the point to point Euclidean distance." +msgstr "Distanza punto punto euclidea." + +#: flatcamTools/ToolDistanceMin.py:75 +msgid "Half Point" +msgstr "Punto di mezzo" + +#: flatcamTools/ToolDistanceMin.py:76 flatcamTools/ToolDistanceMin.py:113 +msgid "This is the middle point of the point to point Euclidean distance." +msgstr "Punto mediano della distanza punto punto euclidea." + +#: flatcamTools/ToolDistanceMin.py:118 +msgid "Jump to Half Point" +msgstr "Vai al punto mediano" + +#: flatcamTools/ToolDistanceMin.py:155 +msgid "" +"Select two objects and no more, to measure the distance between them ..." +msgstr "Seleziona due oggetti e non più, per misurare la distanza tra loro ..." + +#: flatcamTools/ToolDistanceMin.py:196 flatcamTools/ToolDistanceMin.py:217 +#: flatcamTools/ToolDistanceMin.py:226 flatcamTools/ToolDistanceMin.py:247 +msgid "Select two objects and no more. Currently the selection has objects: " +msgstr "" +"Seleziona due oggetti e non di più. Attualmente la selezione ha oggetti: " + +#: flatcamTools/ToolDistanceMin.py:294 +msgid "Objects intersects or touch at" +msgstr "Gli oggetti si intersecano o toccano in" + +#: flatcamTools/ToolDistanceMin.py:300 +msgid "Jumped to the half point between the two selected objects" +msgstr "Salto a metà punto tra i due oggetti selezionati eseguito" + +#: flatcamTools/ToolExtractDrills.py:29 flatcamTools/ToolExtractDrills.py:295 +msgid "Extract Drills" +msgstr "Estrai fori" + +#: flatcamTools/ToolExtractDrills.py:62 +msgid "Gerber from which to extract drill holes" +msgstr "Gerber dal quale estrarre i fori" + +#: flatcamTools/ToolExtractDrills.py:297 +msgid "Extract drills from a given Gerber file." +msgstr "Estrae i fori da un dato file gerber." + +#: flatcamTools/ToolExtractDrills.py:478 flatcamTools/ToolExtractDrills.py:563 +#: flatcamTools/ToolExtractDrills.py:648 +msgid "No drills extracted. Try different parameters." +msgstr "Nessun foro estratto. Prova con altri parametri." + +#: flatcamTools/ToolFiducials.py:56 +msgid "Fiducials Coordinates" +msgstr "Coordinate fiducial" + +#: flatcamTools/ToolFiducials.py:58 +msgid "" +"A table with the fiducial points coordinates,\n" +"in the format (x, y)." +msgstr "" +"Tabella con le coordinate dei punti fiducial,\n" +"nel formato (x, y)." + +#: flatcamTools/ToolFiducials.py:99 +msgid "Top Right" +msgstr "Alto destra" + +#: flatcamTools/ToolFiducials.py:191 +msgid "" +"- 'Auto' - automatic placement of fiducials in the corners of the bounding " +"box.\n" +" - 'Manual' - manual placement of fiducials." +msgstr "" +"- 'Auto': posizionamento automatico dei fiducial negli angoli del rettangolo " +"di selezione.\n" +" - 'Manuale': posizionamento manuale dei fiducial." + +#: flatcamTools/ToolFiducials.py:259 +msgid "Copper Gerber" +msgstr "Gerber rame" + +#: flatcamTools/ToolFiducials.py:268 +msgid "Add Fiducial" +msgstr "Aggiungi fiducial" + +#: flatcamTools/ToolFiducials.py:270 +msgid "Will add a polygon on the copper layer to serve as fiducial." +msgstr "Aggiungerà un poligono sul layer di rame per fungere da fiducial." + +#: flatcamTools/ToolFiducials.py:286 +msgid "Soldermask Gerber" +msgstr "Gerber soldermask" + +#: flatcamTools/ToolFiducials.py:288 +msgid "The Soldermask Gerber object." +msgstr "L'oggetto gerber soldermask." + +#: flatcamTools/ToolFiducials.py:300 +msgid "Add Soldermask Opening" +msgstr "Aggiungi apertura soldermask" + +#: flatcamTools/ToolFiducials.py:302 +msgid "" +"Will add a polygon on the soldermask layer\n" +"to serve as fiducial opening.\n" +"The diameter is always double of the diameter\n" +"for the copper fiducial." +msgstr "" +"Aggiungerà un poligono sul layer soldermask\n" +"che serva come apertura fiducial.\n" +"Il diametro è sempre il doppio del diametro\n" +"del fiduciale di rame." + +#: flatcamTools/ToolFiducials.py:516 +msgid "Click to add first Fiducial. Bottom Left..." +msgstr "Fai clic per aggiungere il primo Fiducial. In basso a sinistra..." + +#: flatcamTools/ToolFiducials.py:780 +msgid "Click to add the last fiducial. Top Right..." +msgstr "Fai clic per aggiungere l'ultimo Fiducial. In alto a destra..." + +#: flatcamTools/ToolFiducials.py:785 +msgid "Click to add the second fiducial. Top Left or Bottom Right..." +msgstr "" +"Fare clic per aggiungere il secondo fiducial. In alto a sinistra o in basso " +"a destra ..." + +#: flatcamTools/ToolFiducials.py:788 flatcamTools/ToolFiducials.py:797 +msgid "Done. All fiducials have been added." +msgstr "Fatto. Tutti i fiduciali sono stati aggiunti." + +#: flatcamTools/ToolFiducials.py:874 +msgid "Fiducials Tool exit." +msgstr "Esci dallo strumento fiducial." + +#: flatcamTools/ToolFilm.py:42 +msgid "Film PCB" +msgstr "Film PCB" + +#: flatcamTools/ToolFilm.py:78 +msgid "" +"Specify the type of object for which to create the film.\n" +"The object can be of type: Gerber or Geometry.\n" +"The selection here decide the type of objects that will be\n" +"in the Film Object combobox." +msgstr "" +"Specifica il tipo di oggetto per cui creare il film.\n" +"L'oggetto può essere di tipo: Gerber o Geometria.\n" +"La selezione decide il tipo di oggetti che saranno\n" +"nella box Oggetto film." + +#: flatcamTools/ToolFilm.py:92 +msgid "Film Object" +msgstr "Oggetto Film" + +#: flatcamTools/ToolFilm.py:94 +msgid "Object for which to create the film." +msgstr "Oggetto per cui creare il film." + +#: flatcamTools/ToolFilm.py:115 +msgid "" +"Specify the type of object to be used as an container for\n" +"film creation. It can be: Gerber or Geometry type.The selection here decide " +"the type of objects that will be\n" +"in the Box Object combobox." +msgstr "" +"Specificare il tipo di oggetto da utilizzare come contenitore per la\n" +"creazione del film. Può essere di tipo Gerber o Geometria. La selezione " +"decide il tipo di oggetti che saranno\n" +"presenti nel box Oggetto casella." + +#: flatcamTools/ToolFilm.py:129 +msgid "Box Object" +msgstr "Oggetto box" + +#: flatcamTools/ToolFilm.py:131 +msgid "" +"The actual object that is used as container for the\n" +" selected object for which we create the film.\n" +"Usually it is the PCB outline but it can be also the\n" +"same object for which the film is created." +msgstr "" +"L'oggetto attualmente usato come oggetto\n" +"contenitore per il quale creiamo il film.\n" +"Di solito è il contorno del PCB ma può anche essere\n" +"l'oggetto stesso per cui è stato creato il film." + +#: flatcamTools/ToolFilm.py:273 +msgid "Film Parameters" +msgstr "Parametri Film" + +#: flatcamTools/ToolFilm.py:334 +msgid "Punch drill holes" +msgstr "Praticare fori" + +#: flatcamTools/ToolFilm.py:335 +msgid "" +"When checked the generated film will have holes in pads when\n" +"the generated film is positive. This is done to help drilling,\n" +"when done manually." +msgstr "" +"Se selezionato, il film generato avrà buchi nei pad quando\n" +"il film generato è positivo. Questo viene fatto per aiutare a perforare,\n" +"quando fatto manualmente." + +#: flatcamTools/ToolFilm.py:353 +msgid "Source" +msgstr "Sorgente" + +#: flatcamTools/ToolFilm.py:355 +msgid "" +"The punch hole source can be:\n" +"- Excellon -> an Excellon holes center will serve as reference.\n" +"- Pad Center -> will try to use the pads center as reference." +msgstr "" +"La fonte del foro di perforazione può essere:\n" +"- Excellon -> un centro foro Excellon fungerà da riferimento.\n" +"- Pad Center -> proverà a utilizzare il centro del pad come riferimento." + +#: flatcamTools/ToolFilm.py:360 +msgid "Pad center" +msgstr "Centro Pad" + +#: flatcamTools/ToolFilm.py:365 +msgid "Excellon Obj" +msgstr "Oggetto Excellon" + +#: flatcamTools/ToolFilm.py:367 +msgid "" +"Remove the geometry of Excellon from the Film to create the holes in pads." +msgstr "Rimuovi la geometria Excellon dal Film per creare i fori nei pad." + +#: flatcamTools/ToolFilm.py:381 +msgid "Punch Size" +msgstr "Dimensione punzone" + +#: flatcamTools/ToolFilm.py:382 +msgid "The value here will control how big is the punch hole in the pads." +msgstr "Questo valore controllerà quanto è grande il foro nei pad." + +#: flatcamTools/ToolFilm.py:502 +msgid "Save Film" +msgstr "Salva Film" + +#: flatcamTools/ToolFilm.py:504 +msgid "" +"Create a Film for the selected object, within\n" +"the specified box. Does not create a new \n" +" FlatCAM object, but directly save it in the\n" +"selected format." +msgstr "" +"Crea un film per l'oggetto selezionato, all'interno\n" +"della casella specificata. Non crea un nuovo\n" +" oggetto FlatCAM, ma lo salva direttamente nel\n" +"formato selezionato." + +#: flatcamTools/ToolFilm.py:664 +msgid "" +"Using the Pad center does not work on Geometry objects. Only a Gerber object " +"has pads." +msgstr "" +"L'uso del centro del pad non funziona sugli oggetti Geometria. Solo un " +"oggetto Gerber ha i pad." + +#: flatcamTools/ToolFilm.py:674 +msgid "No FlatCAM object selected. Load an object for Film and retry." +msgstr "" +"Nessun oggetto FlatCAM selezionato. Carica un oggetto per Film e riprova." + +#: flatcamTools/ToolFilm.py:681 +msgid "No FlatCAM object selected. Load an object for Box and retry." +msgstr "" +"Nessun oggetto FlatCAM selezionato. Carica un oggetto per Box e riprova." + +#: flatcamTools/ToolFilm.py:685 +msgid "No FlatCAM object selected." +msgstr "Nessun oggetto FlatCAM selezionato." + +#: flatcamTools/ToolFilm.py:696 +msgid "Generating Film ..." +msgstr "Generazione Film ..." + +#: flatcamTools/ToolFilm.py:745 flatcamTools/ToolFilm.py:749 +msgid "Export positive film" +msgstr "Exporta film positivo" + +#: flatcamTools/ToolFilm.py:782 +msgid "" +"No Excellon object selected. Load an object for punching reference and retry." +msgstr "" +"Nessun oggetto Excellon selezionato. Caricare un oggetto per la punzonatura " +"di riferimento e riprova." + +#: flatcamTools/ToolFilm.py:806 +msgid "" +" Could not generate punched hole film because the punch hole sizeis bigger " +"than some of the apertures in the Gerber object." +msgstr "" +" Impossibile generare il film del foro punzonato perché la dimensione del " +"foro del punzone è maggiore di alcune delle aperture nell'oggetto Gerber." + +#: flatcamTools/ToolFilm.py:818 +msgid "" +"Could not generate punched hole film because the punch hole sizeis bigger " +"than some of the apertures in the Gerber object." +msgstr "" +"Impossibile generare il film del foro punzonato perché la dimensione del " +"foro del punzone è maggiore di alcune delle aperture nell'oggetto Gerber." + +#: flatcamTools/ToolFilm.py:836 +msgid "" +"Could not generate punched hole film because the newly created object " +"geometry is the same as the one in the source object geometry..." +msgstr "" +"Impossibile generare il film del foro punzonato perché la geometria " +"dell'oggetto appena creata è uguale a quella nella geometria dell'oggetto " +"sorgente ..." + +#: flatcamTools/ToolFilm.py:891 flatcamTools/ToolFilm.py:895 +msgid "Export negative film" +msgstr "Esporta film negativo" + +#: flatcamTools/ToolFilm.py:956 flatcamTools/ToolFilm.py:1139 +#: flatcamTools/ToolPanelize.py:430 +msgid "No object Box. Using instead" +msgstr "Nessun oggetto Box. Al suo posto si userà" + +#: flatcamTools/ToolFilm.py:1072 flatcamTools/ToolFilm.py:1252 +msgid "Film file exported to" +msgstr "File Film esportato in" + +#: flatcamTools/ToolFilm.py:1075 flatcamTools/ToolFilm.py:1255 +msgid "Generating Film ... Please wait." +msgstr "Generazione film … Attendere." + +#: flatcamTools/ToolImage.py:24 +msgid "Image as Object" +msgstr "Immagine come oggetto" + +#: flatcamTools/ToolImage.py:33 +msgid "Image to PCB" +msgstr "Da immagine a PCB" + +#: flatcamTools/ToolImage.py:56 +msgid "" +"Specify the type of object to create from the image.\n" +"It can be of type: Gerber or Geometry." +msgstr "" +"Specifica il tipo di oggetto da creare dall'immagine.\n" +"Può essere di tipo: Gerber o Geometria." + +#: flatcamTools/ToolImage.py:65 +msgid "DPI value" +msgstr "Valore DPI" + +#: flatcamTools/ToolImage.py:66 +msgid "Specify a DPI value for the image." +msgstr "Specifica un valore DPI per l'immagine." + +#: flatcamTools/ToolImage.py:72 +msgid "Level of detail" +msgstr "Livello di dettaglio" + +#: flatcamTools/ToolImage.py:81 +msgid "Image type" +msgstr "Tipo immagine" + +#: flatcamTools/ToolImage.py:83 +msgid "" +"Choose a method for the image interpretation.\n" +"B/W means a black & white image. Color means a colored image." +msgstr "" +"Scegli un metodo per l'interpretazione dell'immagine.\n" +"B/N significa un'immagine in bianco e nero. Colore significa un'immagine a " +"colori." + +#: flatcamTools/ToolImage.py:92 flatcamTools/ToolImage.py:107 +#: flatcamTools/ToolImage.py:120 flatcamTools/ToolImage.py:133 +msgid "Mask value" +msgstr "Valore maschera" + +#: flatcamTools/ToolImage.py:94 +msgid "" +"Mask for monochrome image.\n" +"Takes values between [0 ... 255].\n" +"Decides the level of details to include\n" +"in the resulting geometry.\n" +"0 means no detail and 255 means everything \n" +"(which is totally black)." +msgstr "" +"Maschera per immagine monocromatica.\n" +"Accetta valori tra [0 ... 255].\n" +"Decide il livello di dettagli da includere\n" +"nella geometria risultante.\n" +"0 significa nessun dettaglio e 255 significa tutto\n" +"(che è totalmente nero)." + +#: flatcamTools/ToolImage.py:109 +msgid "" +"Mask for RED color.\n" +"Takes values between [0 ... 255].\n" +"Decides the level of details to include\n" +"in the resulting geometry." +msgstr "" +"Maschera per il colore ROSSO.\n" +"Accetta valori tra [0 ... 255].\n" +"Decide il livello di dettagli da includere\n" +"nella geometria risultante." + +#: flatcamTools/ToolImage.py:122 +msgid "" +"Mask for GREEN color.\n" +"Takes values between [0 ... 255].\n" +"Decides the level of details to include\n" +"in the resulting geometry." +msgstr "" +"Maschera per il colore VERDE.\n" +"Accetta valori tra [0 ... 255].\n" +"Decide il livello di dettagli da includere\n" +"nella geometria risultante." + +#: flatcamTools/ToolImage.py:135 +msgid "" +"Mask for BLUE color.\n" +"Takes values between [0 ... 255].\n" +"Decides the level of details to include\n" +"in the resulting geometry." +msgstr "" +"Maschera per il colore BLU.\n" +"Accetta valori tra [0 ... 255].\n" +"Decide il livello di dettagli da includere\n" +"nella geometria risultante." + +#: flatcamTools/ToolImage.py:143 +msgid "Import image" +msgstr "Importa immagine" + +#: flatcamTools/ToolImage.py:145 +msgid "Open a image of raster type and then import it in FlatCAM." +msgstr "Apri un'immagine di tipo raster e quindi importala in FlatCAM." + +#: flatcamTools/ToolImage.py:182 +msgid "Image Tool" +msgstr "Strumento Immagine" + +#: flatcamTools/ToolImage.py:234 flatcamTools/ToolImage.py:237 +msgid "Import IMAGE" +msgstr "Importa IMMAGINE" + +#: flatcamTools/ToolImage.py:285 +msgid "Importing Image" +msgstr "Importo immagine" + +#: flatcamTools/ToolInvertGerber.py:74 +msgid "Gerber object that will be inverted." +msgstr "Oggetto Gerber da invertire." + +#: flatcamTools/ToolInvertGerber.py:83 +msgid "Parameters for this tool" +msgstr "Parametri per questo utensile" + +#: flatcamTools/ToolInvertGerber.py:123 +msgid "Invert Gerber" +msgstr "Inverti Gerber" + +#: flatcamTools/ToolInvertGerber.py:125 +msgid "" +"Will invert the Gerber object: areas that have copper\n" +"will be empty of copper and previous empty area will be\n" +"filled with copper." +msgstr "" +"Inverte l'oggetto Gerber: aree che hanno rame\n" +"saranno vuote e le precedenti aree vuote saranno\n" +"riempite di rame." + +#: flatcamTools/ToolInvertGerber.py:184 +msgid "Invert Tool" +msgstr "Strumento Inverti" + +#: flatcamTools/ToolMove.py:102 +msgid "MOVE: Click on the Start point ..." +msgstr "SPOSTA: clicca sul punto di partenza ..." + +#: flatcamTools/ToolMove.py:113 +msgid "Cancelled. No object(s) to move." +msgstr "Cancellato. Nessun oggetto da spostare." + +#: flatcamTools/ToolMove.py:140 +msgid "MOVE: Click on the Destination point ..." +msgstr "SPOSTA: clicca sul punto di destinazione ..." + +#: flatcamTools/ToolMove.py:163 +msgid "Moving..." +msgstr "Spostamento..." + +#: flatcamTools/ToolMove.py:166 +msgid "No object(s) selected." +msgstr "Nessun oggetto selezionato." + +#: flatcamTools/ToolMove.py:221 +msgid "Error when mouse left click." +msgstr "Errore con il click sinistro del mouse." + +#: flatcamTools/ToolNCC.py:42 +msgid "Non-Copper Clearing" +msgstr "Pulizia non-rame (NCC)" + +#: flatcamTools/ToolNCC.py:88 +msgid "" +"Specify the type of object to be cleared of excess copper.\n" +"It can be of type: Gerber or Geometry.\n" +"What is selected here will dictate the kind\n" +"of objects that will populate the 'Object' combobox." +msgstr "" +"Specificare il tipo di oggetto da cui eliminare il rame in eccesso.\n" +"Può essere di tipo: Gerber o Geometria.\n" +"Ciò che è selezionato qui detterà il tipo\n" +"di oggetti che popoleranno la combobox 'Oggetto'." + +#: flatcamTools/ToolNCC.py:110 +msgid "Object to be cleared of excess copper." +msgstr "Oggetti puliti dall'eccesso di rame." + +#: flatcamTools/ToolNCC.py:122 +msgid "" +"Tools pool from which the algorithm\n" +"will pick the ones used for copper clearing." +msgstr "" +"Set di strumenti da cui l'algoritmo\n" +"sceglierà quelli usati per la rimozione del rame." + +#: flatcamTools/ToolNCC.py:138 +msgid "" +"This is the Tool Number.\n" +"Non copper clearing will start with the tool with the biggest \n" +"diameter, continuing until there are no more tools.\n" +"Only tools that create NCC clearing geometry will still be present\n" +"in the resulting geometry. This is because with some tools\n" +"this function will not be able to create painting geometry." +msgstr "" +"Questo è il numero dello strumento.\n" +"La pulizia non-rame inizierà con lo strumento con il diametro più\n" +"grande, continuando fino a quando non ci saranno più strumenti.\n" +"Solo gli strumenti che creano la geometria di clearing NCC saranno ancora " +"presenti\n" +"nella geometria risultante. Questo perché con alcuni strumenti\n" +"questa funzione non sarà in grado di creare la corretta geometria." + +#: flatcamTools/ToolNCC.py:146 +msgid "" +"Tool Diameter. It's value (in current FlatCAM units)\n" +"is the cut width into the material." +msgstr "" +"Diametro utensile. Il suo valore (in unità correnti FlatCAM)\n" +"è l'altezza del taglio nel materiale." + +#: flatcamTools/ToolNCC.py:150 +msgid "" +"The Tool Type (TT) can be:\n" +"- Circular with 1 ... 4 teeth -> it is informative only. Being circular,\n" +"the cut width in material is exactly the tool diameter.\n" +"- Ball -> informative only and make reference to the Ball type endmill.\n" +"- V-Shape -> it will disable Z-Cut parameter in the resulting geometry UI " +"form\n" +"and enable two additional UI form fields in the resulting geometry: V-Tip " +"Dia and\n" +"V-Tip Angle. Adjusting those two values will adjust the Z-Cut parameter " +"such\n" +"as the cut width into material will be equal with the value in the Tool " +"Diameter\n" +"column of this table.\n" +"Choosing the 'V-Shape' Tool Type automatically will select the Operation " +"Type\n" +"in the resulting geometry as Isolation." +msgstr "" +"Il tipo di strumento (TT) può essere:\n" +"- Circolare con 1 ... 4 denti -> è solo informativo. Essendo circolare,\n" +"la larghezza di taglio nel materiale è esattamente il diametro " +"dell'utensile.\n" +"- Sferico -> solo informativo e fa riferimento alla fresa a punta sferica.\n" +"- a V -> disabiliterà il parametro di Z-Cut nel modulo UI della geometria " +"risultante\n" +"e abiliterà due campi aggiuntivi nella geometria risultante: Diametro V-Tip " +"e\n" +"Angolo della punta a V. La regolazione di questi due valori regolerà il " +"parametro Z-Cut\n" +"poiché la larghezza del taglio nel materiale sarà uguale al valore nella " +"colonna Diametro utensile\n" +"di questa tabella.\n" +"Scegliendo il tipo di strumento \"a V\" si selezionerà automaticamente il " +"tipo di operazione\n" +"nella geometria risultante come isolamento." + +#: flatcamTools/ToolNCC.py:296 flatcamTools/ToolPaint.py:279 +msgid "" +"Add a new tool to the Tool Table\n" +"with the diameter specified above." +msgstr "" +"Aggiungi un nuovo utensile alla tabella degli utensili\n" +"con il diametro sopra specificato." + +#: flatcamTools/ToolNCC.py:318 flatcamTools/ToolPaint.py:301 +#: flatcamTools/ToolSolderPaste.py:130 +msgid "" +"Delete a selection of tools in the Tool Table\n" +"by first selecting a row(s) in the Tool Table." +msgstr "" +"Elimina un utensile selezionato dalla tabella degli utensili\n" +"selezionando prima una o più righe nella tabella degli utensili." + +#: flatcamTools/ToolNCC.py:554 +msgid "" +"The type of FlatCAM object to be used as non copper clearing reference.\n" +"It can be Gerber, Excellon or Geometry." +msgstr "" +"Il tipo di oggetto FlatCAM da utilizzare come riferimento di eliminazione " +"del rame.\n" +"Può essere Gerber, Excellon o Geometry." + +#: flatcamTools/ToolNCC.py:597 flatcamTools/ToolPaint.py:537 +msgid "Generate Geometry" +msgstr "Genera geometria" + +#: flatcamTools/ToolNCC.py:1420 flatcamTools/ToolPaint.py:1179 +#: flatcamTools/ToolSolderPaste.py:888 +msgid "Please enter a tool diameter to add, in Float format." +msgstr "Inserisci un diametro utensile da aggiungere, in formato Float." + +#: flatcamTools/ToolNCC.py:1451 flatcamTools/ToolNCC.py:4008 +#: flatcamTools/ToolPaint.py:1203 flatcamTools/ToolPaint.py:3598 +#: flatcamTools/ToolSolderPaste.py:917 +msgid "Cancelled. Tool already in Tool Table." +msgstr "Annullato. Utensile già nella tabella utensili." + +#: flatcamTools/ToolNCC.py:1458 flatcamTools/ToolNCC.py:4025 +#: flatcamTools/ToolPaint.py:1208 flatcamTools/ToolPaint.py:3615 +msgid "New tool added to Tool Table." +msgstr "Nuovo utensile aggiunto alla tabella." + +#: flatcamTools/ToolNCC.py:1502 flatcamTools/ToolPaint.py:1252 +msgid "Tool from Tool Table was edited." +msgstr "Utensile dalla tabella modificato." + +#: flatcamTools/ToolNCC.py:1514 flatcamTools/ToolPaint.py:1264 +#: flatcamTools/ToolSolderPaste.py:978 +msgid "Cancelled. New diameter value is already in the Tool Table." +msgstr "Cancellato. Il valore del nuovo diametro è già presente nella tabella." + +#: flatcamTools/ToolNCC.py:1566 flatcamTools/ToolPaint.py:1362 +msgid "Delete failed. Select a tool to delete." +msgstr "Cancellazione fallita. Seleziona un utensile da cancellare." + +#: flatcamTools/ToolNCC.py:1572 flatcamTools/ToolPaint.py:1368 +msgid "Tool(s) deleted from Tool Table." +msgstr "Utensile(i) cancellato(i) dalla tabella." + +#: flatcamTools/ToolNCC.py:1614 +msgid "Wrong Tool Dia value format entered, use a number." +msgstr "Errore nel formato nel valore del diametro inserito, usa un numero." + +#: flatcamTools/ToolNCC.py:1623 flatcamTools/ToolPaint.py:1419 +msgid "No selected tools in Tool Table." +msgstr "Nessun utensile selezionato nella tabella." + +#: flatcamTools/ToolNCC.py:1699 flatcamTools/ToolPaint.py:1595 +msgid "Click the end point of the paint area." +msgstr "Fai clic sul punto finale dell'area." + +#: flatcamTools/ToolNCC.py:1971 flatcamTools/ToolNCC.py:2959 +msgid "NCC Tool. Preparing non-copper polygons." +msgstr "Strumento NCC. Preparazione poligoni non-rame." + +#: flatcamTools/ToolNCC.py:2030 flatcamTools/ToolNCC.py:3087 +msgid "NCC Tool. Calculate 'empty' area." +msgstr "Strumento NCC. Calcolo aree 'vuote'." + +#: flatcamTools/ToolNCC.py:2049 flatcamTools/ToolNCC.py:2155 +#: flatcamTools/ToolNCC.py:2169 flatcamTools/ToolNCC.py:3100 +#: flatcamTools/ToolNCC.py:3205 flatcamTools/ToolNCC.py:3220 +#: flatcamTools/ToolNCC.py:3486 flatcamTools/ToolNCC.py:3587 +#: flatcamTools/ToolNCC.py:3602 +msgid "Buffering finished" +msgstr "Fine buffering" + +#: flatcamTools/ToolNCC.py:2057 flatcamTools/ToolNCC.py:2176 +#: flatcamTools/ToolNCC.py:3108 flatcamTools/ToolNCC.py:3227 +#: flatcamTools/ToolNCC.py:3493 flatcamTools/ToolNCC.py:3609 +msgid "Could not get the extent of the area to be non copper cleared." +msgstr "Impossibile ottenere l'estensione dell'area da cui eliminare il rame." + +#: flatcamTools/ToolNCC.py:2084 flatcamTools/ToolNCC.py:2162 +#: flatcamTools/ToolNCC.py:3135 flatcamTools/ToolNCC.py:3212 +#: flatcamTools/ToolNCC.py:3513 flatcamTools/ToolNCC.py:3594 +msgid "" +"Isolation geometry is broken. Margin is less than isolation tool diameter." +msgstr "" +"La geometria dell'isolamento è rotta. Il margine è inferiore al diametro " +"dell'utensile di isolamento." + +#: flatcamTools/ToolNCC.py:2179 flatcamTools/ToolNCC.py:3231 +#: flatcamTools/ToolNCC.py:3612 +msgid "The selected object is not suitable for copper clearing." +msgstr "L'oggetto selezionato non è idoneo alla pulizia rame." + +#: flatcamTools/ToolNCC.py:2186 flatcamTools/ToolNCC.py:3238 +msgid "NCC Tool. Finished calculation of 'empty' area." +msgstr "Strumento NCC. Fine calcolo aree 'vuote'." + +#: flatcamTools/ToolNCC.py:2217 flatcamTools/ToolNCC.py:2219 +#: flatcamTools/ToolNCC.py:2911 flatcamTools/ToolNCC.py:2913 +msgid "Non-Copper clearing ..." +msgstr "NCC cancellazione non-rame ..." + +#: flatcamTools/ToolNCC.py:2273 flatcamTools/ToolNCC.py:3055 +msgid "" +"NCC Tool. Finished non-copper polygons. Normal copper clearing task started." +msgstr "" +"Strumento NCC. Fine elaborazione poligoni non-rame. Task rimozione rame " +"completato." + +#: flatcamTools/ToolNCC.py:2307 flatcamTools/ToolNCC.py:2587 +msgid "NCC Tool failed creating bounding box." +msgstr "" +"Lo strumento NCC non è riuscito a creare il rettangolo di contenimento." + +#: flatcamTools/ToolNCC.py:2321 flatcamTools/ToolNCC.py:2604 +#: flatcamTools/ToolNCC.py:3251 flatcamTools/ToolNCC.py:3637 +msgid "NCC Tool clearing with tool diameter" +msgstr "Strumento NCC, uso dell'utensile diametro" + +#: flatcamTools/ToolNCC.py:2321 flatcamTools/ToolNCC.py:2604 +#: flatcamTools/ToolNCC.py:3251 flatcamTools/ToolNCC.py:3637 +msgid "started." +msgstr "avviato." + +#: flatcamTools/ToolNCC.py:2513 flatcamTools/ToolNCC.py:3412 +msgid "" +"There is no NCC Geometry in the file.\n" +"Usually it means that the tool diameter is too big for the painted " +"geometry.\n" +"Change the painting parameters and try again." +msgstr "" +"Nessuna geometria NCC nel file.\n" +"Di solito significa che il diametro dell'utensile è troppo grande per la " +"geometria.\n" +"Modifica i parametri e riprova." + +#: flatcamTools/ToolNCC.py:2522 flatcamTools/ToolNCC.py:3421 +msgid "NCC Tool clear all done." +msgstr "Lo strumento NCC ha terminato." + +#: flatcamTools/ToolNCC.py:2525 flatcamTools/ToolNCC.py:3424 +msgid "NCC Tool clear all done but the copper features isolation is broken for" +msgstr "Lo strumento NCC ha terminato ma l'isolamento del rame è rotto per" + +#: flatcamTools/ToolNCC.py:2527 flatcamTools/ToolNCC.py:2812 +#: flatcamTools/ToolNCC.py:3426 flatcamTools/ToolNCC.py:3809 +msgid "tools" +msgstr "utensili" + +#: flatcamTools/ToolNCC.py:2808 flatcamTools/ToolNCC.py:3805 +msgid "NCC Tool Rest Machining clear all done." +msgstr "Utensile NCC lavorazione di ripresa completata." + +#: flatcamTools/ToolNCC.py:2811 flatcamTools/ToolNCC.py:3808 +msgid "" +"NCC Tool Rest Machining clear all done but the copper features isolation is " +"broken for" +msgstr "" +"Utensile NCC lavorazione di ripresa completata ma l'isolamento del rame è " +"rotto per" + +#: flatcamTools/ToolNCC.py:2923 +msgid "NCC Tool started. Reading parameters." +msgstr "Strumento NCC avviato. Lettura parametri." + +#: flatcamTools/ToolNCC.py:3901 +msgid "" +"Try to use the Buffering Type = Full in Preferences -> Gerber General. " +"Reload the Gerber file after this change." +msgstr "" +"Prova a utilizzare il tipo di buffer = Completo in Preferenze -> Gerber " +"Generale. Ricarica il file Gerber dopo questa modifica." + +#: flatcamTools/ToolOptimal.py:79 +msgid "Number of decimals kept for found distances." +msgstr "Numero di decimali da tenere per le distanze trovate." + +#: flatcamTools/ToolOptimal.py:87 +msgid "Minimum distance" +msgstr "Distanza minima" + +#: flatcamTools/ToolOptimal.py:88 +msgid "Display minimum distance between copper features." +msgstr "Visualizza la minima distanza tra aree di rame." + +#: flatcamTools/ToolOptimal.py:92 +msgid "Determined" +msgstr "Determinato" + +#: flatcamTools/ToolOptimal.py:106 +msgid "Occurring" +msgstr "Succedendo" + +#: flatcamTools/ToolOptimal.py:107 +msgid "How many times this minimum is found." +msgstr "Quante volte è rilevato questo minimo." + +#: flatcamTools/ToolOptimal.py:113 +msgid "Minimum points coordinates" +msgstr "Coordinate punti minimi" + +#: flatcamTools/ToolOptimal.py:114 flatcamTools/ToolOptimal.py:120 +msgid "Coordinates for points where minimum distance was found." +msgstr "Coordinate per i punti dove è stata rilevata la distanza minima." + +#: flatcamTools/ToolOptimal.py:133 flatcamTools/ToolOptimal.py:209 +msgid "Jump to selected position" +msgstr "Vai alla posizione selezionata" + +#: flatcamTools/ToolOptimal.py:135 flatcamTools/ToolOptimal.py:211 +msgid "" +"Select a position in the Locations text box and then\n" +"click this button." +msgstr "" +"Selezionare una posizione nella casella di testo Posizioni e quindi\n" +"fai clic su questo pulsante." + +#: flatcamTools/ToolOptimal.py:143 +msgid "Other distances" +msgstr "Altre distanze" + +#: flatcamTools/ToolOptimal.py:144 +msgid "" +"Will display other distances in the Gerber file ordered from\n" +"the minimum to the maximum, not including the absolute minimum." +msgstr "" +"Visualizzerà altre distanze nel file Gerber ordinato dal\n" +"minimo al massimo, escluso il minimo assoluto." + +#: flatcamTools/ToolOptimal.py:149 +msgid "Other distances points coordinates" +msgstr "Coordinate di punti di altre distanze" + +#: flatcamTools/ToolOptimal.py:150 flatcamTools/ToolOptimal.py:164 +#: flatcamTools/ToolOptimal.py:171 flatcamTools/ToolOptimal.py:188 +#: flatcamTools/ToolOptimal.py:195 +msgid "" +"Other distances and the coordinates for points\n" +"where the distance was found." +msgstr "" +"Altre distanze e coordinate per i punti\n" +"dove è stata trovata la distanza." + +#: flatcamTools/ToolOptimal.py:163 +msgid "Gerber distances" +msgstr "Distanze gerber" + +#: flatcamTools/ToolOptimal.py:187 +msgid "Points coordinates" +msgstr "Coordinate punti" + +#: flatcamTools/ToolOptimal.py:219 +msgid "Find Minimum" +msgstr "Trova minimi" + +#: flatcamTools/ToolOptimal.py:221 +msgid "" +"Calculate the minimum distance between copper features,\n" +"this will allow the determination of the right tool to\n" +"use for isolation or copper clearing." +msgstr "" +"Calcola la distanza minima tra le caratteristiche di rame,\n" +"questo consentirà la determinazione dello strumento giusto per\n" +"utilizzare per l'isolamento o la pulizia del rame." + +#: flatcamTools/ToolOptimal.py:346 +msgid "Only Gerber objects can be evaluated." +msgstr "Possono essere valutati solo oggetti Gerber." + +#: flatcamTools/ToolOptimal.py:352 +msgid "" +"Optimal Tool. Started to search for the minimum distance between copper " +"features." +msgstr "" +"Strumento ottimale. Inizio a cercare la distanza minima tra le " +"caratteristiche di rame." + +#: flatcamTools/ToolOptimal.py:362 +msgid "Optimal Tool. Parsing geometry for aperture" +msgstr "Strumento ottimale. Analisi geometria per aperture" + +#: flatcamTools/ToolOptimal.py:373 +msgid "Optimal Tool. Creating a buffer for the object geometry." +msgstr "" +"Strumento ottimale. Creazione di un buffer per la geometria dell'oggetto." + +#: flatcamTools/ToolOptimal.py:383 +msgid "" +"The Gerber object has one Polygon as geometry.\n" +"There are no distances between geometry elements to be found." +msgstr "" +"L'oggetto Gerber ha un poligono come geometria.\n" +"Non ci sono distanze tra gli elementi geometrici da trovare." + +#: flatcamTools/ToolOptimal.py:388 +msgid "" +"Optimal Tool. Finding the distances between each two elements. Iterations" +msgstr "" +"Strumento ottimale. Trovo le distanze tra ogni coppia di elementi. iterazioni" + +#: flatcamTools/ToolOptimal.py:423 +msgid "Optimal Tool. Finding the minimum distance." +msgstr "Strumento ottimale. Trovare la distanza minima." + +#: flatcamTools/ToolOptimal.py:439 +msgid "Optimal Tool. Finished successfully." +msgstr "Strumento ottimale. Finito con successo." + +#: flatcamTools/ToolPDF.py:157 flatcamTools/ToolPDF.py:161 +msgid "Open PDF" +msgstr "Apri PDF" + +#: flatcamTools/ToolPDF.py:164 +msgid "Open PDF cancelled" +msgstr "Apertura PDF annullata" + +#: flatcamTools/ToolPDF.py:195 +msgid "Parsing PDF file ..." +msgstr "Analisi file PDF ..." + +#: flatcamTools/ToolPDF.py:278 flatcamTools/ToolPDF.py:353 +#, python-format +msgid "Rendering PDF layer #%d ..." +msgstr "Rendering del livello PDF #%d ..." + +#: flatcamTools/ToolPDF.py:283 flatcamTools/ToolPDF.py:358 +msgid "Open PDF file failed." +msgstr "Apertura file PDF fallita." + +#: flatcamTools/ToolPDF.py:289 flatcamTools/ToolPDF.py:363 +msgid "Rendered" +msgstr "Renderizzato" + +#: flatcamTools/ToolPaint.py:82 +msgid "" +"Specify the type of object to be painted.\n" +"It can be of type: Gerber or Geometry.\n" +"What is selected here will dictate the kind\n" +"of objects that will populate the 'Object' combobox." +msgstr "" +"Specifica il tipo di oggetto da dipingere.\n" +"Può essere di tipo: Gerber o Geometria.\n" +"Ciò che è selezionato qui detterà il tipo\n" +"di oggetti che popoleranno la combobox 'Oggetto'." + +#: flatcamTools/ToolPaint.py:104 +msgid "Object to be painted." +msgstr "Oggetto da dipingere." + +#: flatcamTools/ToolPaint.py:117 +msgid "" +"Tools pool from which the algorithm\n" +"will pick the ones used for painting." +msgstr "" +"Set di strumenti da cui l'algoritmo\n" +"sceglierà quelli usati per la pittura." + +#: flatcamTools/ToolPaint.py:134 +msgid "" +"This is the Tool Number.\n" +"Painting will start with the tool with the biggest diameter,\n" +"continuing until there are no more tools.\n" +"Only tools that create painting geometry will still be present\n" +"in the resulting geometry. This is because with some tools\n" +"this function will not be able to create painting geometry." +msgstr "" +"Questo è il numero dell'utensile.\n" +"La pittura inizierà con lo strumento con il diametro maggiore,\n" +"continuando fino a quando non ci saranno più strumenti.\n" +"Solo gli strumenti che creano la geometria della pittura saranno ancora " +"presenti\n" +"nella geometria risultante. Questo perché con alcuni strumenti\n" +"questa funzione non sarà in grado di creare la geometria della pittura." + +#: flatcamTools/ToolPaint.py:146 +msgid "" +"The Tool Type (TT) can be:\n" +"- Circular -> it is informative only. Being circular,\n" +"the cut width in material is exactly the tool diameter.\n" +"- Ball -> informative only and make reference to the Ball type endmill.\n" +"- V-Shape -> it will disable Z-Cut parameter in the resulting geometry UI " +"form\n" +"and enable two additional UI form fields in the resulting geometry: V-Tip " +"Dia and\n" +"V-Tip Angle. Adjusting those two values will adjust the Z-Cut parameter " +"such\n" +"as the cut width into material will be equal with the value in the Tool " +"Diameter\n" +"column of this table.\n" +"Choosing the 'V-Shape' Tool Type automatically will select the Operation " +"Type\n" +"in the resulting geometry as Isolation." +msgstr "" +"Il tipo di strumento (TT) può essere:\n" +"- Circolare con 1 ... 4 denti -> è solo informativo. Essendo circolare,\n" +"la larghezza di taglio nel materiale è esattamente il diametro " +"dell'utensile.\n" +"- Sferico -> solo informativo e fa riferimento alla fresa a punta sferica.\n" +"- a V -> disabiliterà il parametro di Z-Cut nel modulo UI della geometria " +"risultante\n" +"e abiliterà due campi aggiuntivi nella geometria risultante: Diametro V-Tip " +"e\n" +"Angolo della punta a V. La regolazione di questi due valori regolerà il " +"parametro Z-Cut\n" +"poiché la larghezza del taglio nel materiale sarà uguale al valore nella " +"colonna Diametro utensile\n" +"di questa tabella.\n" +"Scegliendo il tipo di strumento 'a V' si selezionerà automaticamente il tipo " +"di operazione\n" +"nella geometria risultante come isolamento." + +#: flatcamTools/ToolPaint.py:498 +msgid "" +"The type of FlatCAM object to be used as paint reference.\n" +"It can be Gerber, Excellon or Geometry." +msgstr "" +"Il tipo di oggetto FlatCAM da utilizzare come riferimento di disegno.\n" +"Può essere Gerber, Excellon o Geometry." + +#: flatcamTools/ToolPaint.py:539 +msgid "" +"- 'Area Selection' - left mouse click to start selection of the area to be " +"painted.\n" +"Keeping a modifier key pressed (CTRL or SHIFT) will allow to add multiple " +"areas.\n" +"- 'All Polygons' - the Paint will start after click.\n" +"- 'Reference Object' - will do non copper clearing within the area\n" +"specified by another object." +msgstr "" +"- 'Selezione area': fare clic con il pulsante sinistro del mouse per " +"iniziare la selezione dell'area da dipingere.\n" +"Tenendo premuto un tasto modificatore (CTRL o SHIFT) sarà possibile " +"aggiungere più aree.\n" +"- 'Tutti i poligoni': la pittura inizierà dopo il clic.\n" +"- 'Oggetto di riferimento' - eseguirà lo sgombero dal rame all'interno " +"dell'area\n" +"specificata da un altro oggetto." + +#: flatcamTools/ToolPaint.py:1388 +#, python-format +msgid "Could not retrieve object: %s" +msgstr "Impossibile ottenere l'oggetto: %s" + +#: flatcamTools/ToolPaint.py:1398 +msgid "Can't do Paint on MultiGeo geometries" +msgstr "Impossibile dipingere in geometrie multigeo" + +#: flatcamTools/ToolPaint.py:1428 +msgid "Click on a polygon to paint it." +msgstr "Clicca su un poligono per dipingerlo." + +#: flatcamTools/ToolPaint.py:1448 +msgid "Click the start point of the paint area." +msgstr "Fai clic sul punto iniziale dell'area di disegno." + +#: flatcamTools/ToolPaint.py:1513 +msgid "Click to add next polygon or right click to start painting." +msgstr "" +"Fai clic per aggiungere il prossimo poligono o fai clic con il tasto destro " +"per iniziare a dipingere." + +#: flatcamTools/ToolPaint.py:1526 +msgid "Click to add/remove next polygon or right click to start painting." +msgstr "" +"Fai clic per aggiungere/rimuovere il prossimo poligono o fai clic con il " +"tasto destro per iniziare a dipingere." + +#: flatcamTools/ToolPaint.py:2024 +msgid "Painting polygon with method: lines." +msgstr "Pittura poligoni con modalità linee." + +#: flatcamTools/ToolPaint.py:2036 +msgid "Failed. Painting polygon with method: seed." +msgstr "Pittura poligoni con modalità semi." + +#: flatcamTools/ToolPaint.py:2047 +msgid "Failed. Painting polygon with method: standard." +msgstr "Pittura poligoni con modalità standard." + +#: flatcamTools/ToolPaint.py:2063 +msgid "Geometry could not be painted completely" +msgstr "La geometria non può essere dipinta completamente" + +#: flatcamTools/ToolPaint.py:2092 flatcamTools/ToolPaint.py:2095 +#: flatcamTools/ToolPaint.py:2103 flatcamTools/ToolPaint.py:2406 +#: flatcamTools/ToolPaint.py:2409 flatcamTools/ToolPaint.py:2417 +#: flatcamTools/ToolPaint.py:2905 flatcamTools/ToolPaint.py:2908 +#: flatcamTools/ToolPaint.py:2914 +msgid "Paint Tool." +msgstr "Strumento pittura." + +#: flatcamTools/ToolPaint.py:2092 flatcamTools/ToolPaint.py:2095 +#: flatcamTools/ToolPaint.py:2103 +msgid "Normal painting polygon task started." +msgstr "Attività di poligono di pittura normale avviata." + +#: flatcamTools/ToolPaint.py:2093 flatcamTools/ToolPaint.py:2407 +#: flatcamTools/ToolPaint.py:2906 +msgid "Buffering geometry..." +msgstr "Geometria buffer ..." + +#: flatcamTools/ToolPaint.py:2115 flatcamTools/ToolPaint.py:2424 +#: flatcamTools/ToolPaint.py:2922 +msgid "No polygon found." +msgstr "Nessun poligono trovato." + +#: flatcamTools/ToolPaint.py:2145 +msgid "Painting polygon..." +msgstr "Pittura poligono ..." + +#: flatcamTools/ToolPaint.py:2155 flatcamTools/ToolPaint.py:2470 +#: flatcamTools/ToolPaint.py:2660 flatcamTools/ToolPaint.py:2968 +#: flatcamTools/ToolPaint.py:3147 +msgid "Painting with tool diameter = " +msgstr "Verniciatura con diametro utensile = " + +#: flatcamTools/ToolPaint.py:2156 flatcamTools/ToolPaint.py:2471 +#: flatcamTools/ToolPaint.py:2661 flatcamTools/ToolPaint.py:2969 +#: flatcamTools/ToolPaint.py:3148 +msgid "started" +msgstr "avviata" + +#: flatcamTools/ToolPaint.py:2181 flatcamTools/ToolPaint.py:2497 +#: flatcamTools/ToolPaint.py:2687 flatcamTools/ToolPaint.py:2995 +#: flatcamTools/ToolPaint.py:3174 +msgid "Margin parameter too big. Tool is not used" +msgstr "Parametro di margine troppo grande. Utensile non usato" + +#: flatcamTools/ToolPaint.py:2239 flatcamTools/ToolPaint.py:2566 +#: flatcamTools/ToolPaint.py:2744 flatcamTools/ToolPaint.py:3058 +#: flatcamTools/ToolPaint.py:3236 +msgid "" +"Could not do Paint. Try a different combination of parameters. Or a " +"different strategy of paint" +msgstr "" +"Impossibile dipingere. Prova una diversa combinazione di parametri. O una " +"diversa strategia di pittura" + +#: flatcamTools/ToolPaint.py:2296 flatcamTools/ToolPaint.py:2632 +#: flatcamTools/ToolPaint.py:2801 flatcamTools/ToolPaint.py:3119 +#: flatcamTools/ToolPaint.py:3298 +msgid "" +"There is no Painting Geometry in the file.\n" +"Usually it means that the tool diameter is too big for the painted " +"geometry.\n" +"Change the painting parameters and try again." +msgstr "" +"Nel file non è presente una Geometria di pittura.\n" +"Di solito significa che il diametro dell'utensile è troppo grande per la " +"geometria da trattare.\n" +"Modifica i parametri di pittura e riprova." + +#: flatcamTools/ToolPaint.py:2319 +msgid "Paint Single failed." +msgstr "Pittura singola fallita." + +#: flatcamTools/ToolPaint.py:2325 +msgid "Paint Single Done." +msgstr "Pittura, fatto." + +#: flatcamTools/ToolPaint.py:2327 flatcamTools/ToolPaint.py:2837 +#: flatcamTools/ToolPaint.py:3334 +msgid "Polygon Paint started ..." +msgstr "Pittura poligoni avviata ..." + +#: flatcamTools/ToolPaint.py:2406 flatcamTools/ToolPaint.py:2409 +#: flatcamTools/ToolPaint.py:2417 +msgid "Paint all polygons task started." +msgstr "Attività di pittura poligoni avviata." + +#: flatcamTools/ToolPaint.py:2448 flatcamTools/ToolPaint.py:2946 +msgid "Painting polygons..." +msgstr "Pittura poligoni..." + +#: flatcamTools/ToolPaint.py:2641 +msgid "Paint All Done." +msgstr "Verniciatura effettuata." + +#: flatcamTools/ToolPaint.py:2810 flatcamTools/ToolPaint.py:3307 +msgid "Paint All with Rest-Machining done." +msgstr "Dipingi tutto con Lavorazione a ripresa." + +#: flatcamTools/ToolPaint.py:2829 +msgid "Paint All failed." +msgstr "Vernicia tutti fallita." + +#: flatcamTools/ToolPaint.py:2835 +msgid "Paint Poly All Done." +msgstr "Verniciatura di tutti i poligoni effettuata." + +#: flatcamTools/ToolPaint.py:2905 flatcamTools/ToolPaint.py:2908 +#: flatcamTools/ToolPaint.py:2914 +msgid "Painting area task started." +msgstr "Attività di pittura area avviata." + +#: flatcamTools/ToolPaint.py:3128 +msgid "Paint Area Done." +msgstr "Pittura area completata." + +#: flatcamTools/ToolPaint.py:3326 +msgid "Paint Area failed." +msgstr "Pittura area fallita." + +#: flatcamTools/ToolPaint.py:3332 +msgid "Paint Poly Area Done." +msgstr "Pittura area poligono completata." + +#: flatcamTools/ToolPanelize.py:34 +msgid "Panelize PCB" +msgstr "Pannellizza PCB" + +#: flatcamTools/ToolPanelize.py:56 +msgid "" +"Specify the type of object to be panelized\n" +"It can be of type: Gerber, Excellon or Geometry.\n" +"The selection here decide the type of objects that will be\n" +"in the Object combobox." +msgstr "" +"Specificare il tipo di oggetto da pannellare.\n" +"Può essere di tipo: Gerber, Excellon o Geometry.\n" +"La selezione decide il tipo di oggetti che saranno\n" +"nella combobox Oggetto." + +#: flatcamTools/ToolPanelize.py:89 +msgid "" +"Object to be panelized. This means that it will\n" +"be duplicated in an array of rows and columns." +msgstr "" +"Oggetto da pannellizzare. Questo significa che sarà\n" +"duplicato in una matrice di righe e colonne." + +#: flatcamTools/ToolPanelize.py:102 +msgid "Penelization Reference" +msgstr "Riferimento pannellizzazione" + +#: flatcamTools/ToolPanelize.py:104 +msgid "" +"Choose the reference for panelization:\n" +"- Object = the bounding box of a different object\n" +"- Bounding Box = the bounding box of the object to be panelized\n" +"\n" +"The reference is useful when doing panelization for more than one\n" +"object. The spacings (really offsets) will be applied in reference\n" +"to this reference object therefore maintaining the panelized\n" +"objects in sync." +msgstr "" +"Scegli il riferimento per la pannellizzazione:\n" +"- Oggetto = il rettangolo di selezione di un altro oggetto\n" +"- Bounding Box = il riquadro di delimitazione dell'oggetto da pannellare\n" +"\n" +"Il riferimento è utile quando si esegue la pannellizzazione per più di un\n" +"oggetto. Le spaziature (offset) verranno applicate in riferimento\n" +"a questo oggetto di riferimento mantenendo quindi gli oggetti\n" +"pannellizzati sincronizzati." + +#: flatcamTools/ToolPanelize.py:125 +msgid "Box Type" +msgstr "Tipo box" + +#: flatcamTools/ToolPanelize.py:127 +msgid "" +"Specify the type of object to be used as an container for\n" +"panelization. It can be: Gerber or Geometry type.\n" +"The selection here decide the type of objects that will be\n" +"in the Box Object combobox." +msgstr "" +"Specificare il tipo di oggetto da utilizzare come contenitore per\n" +"pannelizzazione. Può essere: tipo Gerber o Geometria.\n" +"La selezione decide il tipo di oggetti che saranno\n" +"nella casella combobox Oggetto." + +#: flatcamTools/ToolPanelize.py:141 +msgid "" +"The actual object that is used as container for the\n" +" selected object that is to be panelized." +msgstr "" +"Oggetto utilizzato come contenitore per\n" +"l'oggetto selezionato da pannellizzare." + +#: flatcamTools/ToolPanelize.py:147 +msgid "Panel Data" +msgstr "Dati pannello" + +#: flatcamTools/ToolPanelize.py:149 +msgid "" +"This informations will shape the resulting panel.\n" +"The number of rows and columns will set how many\n" +"duplicates of the original geometry will be generated.\n" +"\n" +"The spacings will set the distance between any two\n" +"elements of the panel array." +msgstr "" +"Queste informazioni daranno forma al pannello risultante.\n" +"Il numero di righe e colonne imposterà quanti\n" +"duplicati della geometria originale verranno generati.\n" +"\n" +"Le distanze imposteranno la distanza tra due qualsiasi\n" +"elementi della matrice di pannelli." + +#: flatcamTools/ToolPanelize.py:208 +msgid "" +"Choose the type of object for the panel object:\n" +"- Geometry\n" +"- Gerber" +msgstr "" +"Scegli il tipo di oggetto per l'oggetto pannello:\n" +"- Geometria\n" +"- Gerber" + +#: flatcamTools/ToolPanelize.py:216 +msgid "Constrain panel within" +msgstr "Vincola pannello all'interno" + +#: flatcamTools/ToolPanelize.py:252 +msgid "Panelize Object" +msgstr "Pannellizza oggetto" + +#: flatcamTools/ToolPanelize.py:254 flatcamTools/ToolRulesCheck.py:501 +msgid "" +"Panelize the specified object around the specified box.\n" +"In other words it creates multiple copies of the source object,\n" +"arranged in a 2D array of rows and columns." +msgstr "" +"Panelizza l'oggetto specificato attorno al box specificata.\n" +"In altre parole crea più copie dell'oggetto sorgente,\n" +"disposti in una matrice 2D di righe e colonne." + +#: flatcamTools/ToolPanelize.py:322 +msgid "Panel. Tool" +msgstr "Pannello, strumento" + +#: flatcamTools/ToolPanelize.py:457 +msgid "Columns or Rows are zero value. Change them to a positive integer." +msgstr "" +"Le colonne o le righe hanno valore zero. Modificali in un numero intero " +"positivo." + +#: flatcamTools/ToolPanelize.py:494 +msgid "Generating panel ... " +msgstr "Generazione pannello … " + +#: flatcamTools/ToolPanelize.py:777 +msgid "Generating panel ... Adding the Gerber code." +msgstr "Generazione pannello … Aggiunta codice gerber." + +#: flatcamTools/ToolPanelize.py:785 +msgid "Generating panel... Spawning copies" +msgstr "Generazione pannello … Generazione copie" + +#: flatcamTools/ToolPanelize.py:792 +msgid "Panel done..." +msgstr "Pannellizzazione effettuata..." + +#: flatcamTools/ToolPanelize.py:795 +#, python-brace-format +msgid "" +"{text} Too big for the constrain area. Final panel has {col} columns and " +"{row} rows" +msgstr "" +"{text} Troppo grande per l'area vincolata. Il pannello finale ha {col} " +"colonne e {row} righe" + +#: flatcamTools/ToolPanelize.py:804 +msgid "Panel created successfully." +msgstr "Pannello creato con successo." + +#: flatcamTools/ToolPcbWizard.py:31 +msgid "PcbWizard Import Tool" +msgstr "Strumento importazione PcbWizard" + +#: flatcamTools/ToolPcbWizard.py:40 +msgid "Import 2-file Excellon" +msgstr "Importazione Excellon doppio file" + +#: flatcamTools/ToolPcbWizard.py:51 +msgid "Load files" +msgstr "Carica files" + +#: flatcamTools/ToolPcbWizard.py:57 +msgid "Excellon file" +msgstr "File Excellon" + +#: flatcamTools/ToolPcbWizard.py:59 +msgid "" +"Load the Excellon file.\n" +"Usually it has a .DRL extension" +msgstr "" +"Carica file Excellon.\n" +"Tipicamente ha estensione .DRL" + +#: flatcamTools/ToolPcbWizard.py:65 +msgid "INF file" +msgstr "File INF" + +#: flatcamTools/ToolPcbWizard.py:67 +msgid "Load the INF file." +msgstr "Carica un file INF." + +#: flatcamTools/ToolPcbWizard.py:79 +msgid "Tool Number" +msgstr "Numero Utensile" + +#: flatcamTools/ToolPcbWizard.py:81 +msgid "Tool diameter in file units." +msgstr "Diametro utensile in unità del file." + +#: flatcamTools/ToolPcbWizard.py:87 +msgid "Excellon format" +msgstr "Formato Excellon" + +#: flatcamTools/ToolPcbWizard.py:95 +msgid "Int. digits" +msgstr "Cifre intere" + +#: flatcamTools/ToolPcbWizard.py:97 +msgid "The number of digits for the integral part of the coordinates." +msgstr "Numero di cifre per la parte intera delle coordinate." + +#: flatcamTools/ToolPcbWizard.py:104 +msgid "Frac. digits" +msgstr "Cifre decimali" + +#: flatcamTools/ToolPcbWizard.py:106 +msgid "The number of digits for the fractional part of the coordinates." +msgstr "Numero di cifre per la parte decimale delle coordinate." + +#: flatcamTools/ToolPcbWizard.py:113 +msgid "No Suppression" +msgstr "No soppressione" + +#: flatcamTools/ToolPcbWizard.py:114 +msgid "Zeros supp." +msgstr "Soppressione zeri." + +#: flatcamTools/ToolPcbWizard.py:116 +msgid "" +"The type of zeros suppression used.\n" +"Can be of type:\n" +"- LZ = leading zeros are kept\n" +"- TZ = trailing zeros are kept\n" +"- No Suppression = no zero suppression" +msgstr "" +"Il tipo di soppressione degli zeri utilizzato.\n" +"Può essere di tipo:\n" +"- ZI = gli zeri iniziali vengono mantenuti\n" +"- ZF = vengono mantenuti gli zeri finali\n" +"- Nessuna soppressione = nessuna soppressione di zeri" + +#: flatcamTools/ToolPcbWizard.py:129 +msgid "" +"The type of units that the coordinates and tool\n" +"diameters are using. Can be INCH or MM." +msgstr "" +"Il tipo di unità usata da coordinate e dal diametro\n" +"degli utensili. Può essere POLLICI o MM." + +#: flatcamTools/ToolPcbWizard.py:136 +msgid "Import Excellon" +msgstr "Importa Excellon" + +#: flatcamTools/ToolPcbWizard.py:138 +msgid "" +"Import in FlatCAM an Excellon file\n" +"that store it's information's in 2 files.\n" +"One usually has .DRL extension while\n" +"the other has .INF extension." +msgstr "" +"Importa in FlatCAM un file Excellon\n" +"che memorizza le informazioni in 2 file.\n" +"Uno di solito ha l'estensione .DRL mentre\n" +"l'altro ha estensione .INF." + +#: flatcamTools/ToolPcbWizard.py:197 +msgid "PCBWizard Tool" +msgstr "Strumento PCBWizard" + +#: flatcamTools/ToolPcbWizard.py:291 flatcamTools/ToolPcbWizard.py:295 +msgid "Load PcbWizard Excellon file" +msgstr "Carica file Excellon PcbWizard" + +#: flatcamTools/ToolPcbWizard.py:314 flatcamTools/ToolPcbWizard.py:318 +msgid "Load PcbWizard INF file" +msgstr "Carica file INF PcbWizard" + +#: flatcamTools/ToolPcbWizard.py:366 +msgid "" +"The INF file does not contain the tool table.\n" +"Try to open the Excellon file from File -> Open -> Excellon\n" +"and edit the drill diameters manually." +msgstr "" +"Il file INF non contiene la tabella degli strumenti.\n" +"Prova ad aprire il file Excellon da File -> Apri -> Excellon\n" +"e modificare manualmente i diametri delle punte." + +#: flatcamTools/ToolPcbWizard.py:387 +msgid "PcbWizard .INF file loaded." +msgstr "File PcbWizard caricato." + +#: flatcamTools/ToolPcbWizard.py:392 +msgid "Main PcbWizard Excellon file loaded." +msgstr "File principale PcbWizard caricato." + +#: flatcamTools/ToolPcbWizard.py:427 +msgid "Cannot parse file" +msgstr "Impossibile analizzare file" + +#: flatcamTools/ToolPcbWizard.py:450 +msgid "Importing Excellon." +msgstr "Importazione Excellon." + +#: flatcamTools/ToolPcbWizard.py:457 +msgid "Import Excellon file failed." +msgstr "Importazione file Excellon fallita." + +#: flatcamTools/ToolPcbWizard.py:464 +msgid "Imported" +msgstr "Importato" + +#: flatcamTools/ToolPcbWizard.py:467 +msgid "Excellon merging is in progress. Please wait..." +msgstr "Unione Excellon in corso. Attendere..." + +#: flatcamTools/ToolPcbWizard.py:469 +msgid "The imported Excellon file is empty." +msgstr "Il file Excellon importato è vuoto." + +#: flatcamTools/ToolProperties.py:131 +msgid "Object Properties are displayed." +msgstr "Proprietà oggetto visualizzate." + +#: flatcamTools/ToolProperties.py:136 +msgid "Properties Tool" +msgstr "Strumento proprietà" + +#: flatcamTools/ToolProperties.py:150 +msgid "TYPE" +msgstr "TIPO" + +#: flatcamTools/ToolProperties.py:151 +msgid "NAME" +msgstr "NOME" + +#: flatcamTools/ToolProperties.py:153 +msgid "Dimensions" +msgstr "Dimensione" + +#: flatcamTools/ToolProperties.py:181 +msgid "Geo Type" +msgstr "Tipo Geom" + +#: flatcamTools/ToolProperties.py:184 +msgid "Single-Geo" +msgstr "Geoi singola" + +#: flatcamTools/ToolProperties.py:185 +msgid "Multi-Geo" +msgstr "Multi-Geo" + +#: flatcamTools/ToolProperties.py:196 +msgid "Calculating dimensions ... Please wait." +msgstr "Calcolo dimensioni … Attendere." + +#: flatcamTools/ToolProperties.py:339 flatcamTools/ToolProperties.py:343 +#: flatcamTools/ToolProperties.py:345 +msgid "Inch" +msgstr "Pollici" + +#: flatcamTools/ToolProperties.py:339 flatcamTools/ToolProperties.py:344 +#: flatcamTools/ToolProperties.py:346 +msgid "Metric" +msgstr "Metrico" + +#: flatcamTools/ToolProperties.py:421 flatcamTools/ToolProperties.py:486 +msgid "Drills number" +msgstr "Numero fori" + +#: flatcamTools/ToolProperties.py:422 flatcamTools/ToolProperties.py:488 +msgid "Slots number" +msgstr "Numero Slot" + +#: flatcamTools/ToolProperties.py:424 +msgid "Drills total number:" +msgstr "Numero totale di fori:" + +#: flatcamTools/ToolProperties.py:425 +msgid "Slots total number:" +msgstr "Numero totale di slot:" + +#: flatcamTools/ToolProperties.py:452 flatcamTools/ToolProperties.py:455 +#: flatcamTools/ToolProperties.py:458 flatcamTools/ToolProperties.py:483 +msgid "Present" +msgstr "Presente" + +#: flatcamTools/ToolProperties.py:453 flatcamTools/ToolProperties.py:484 +msgid "Solid Geometry" +msgstr "Geometria solida" + +#: flatcamTools/ToolProperties.py:456 +msgid "GCode Text" +msgstr "Testo GCode" + +#: flatcamTools/ToolProperties.py:459 +msgid "GCode Geometry" +msgstr "Geometria GCode" + +#: flatcamTools/ToolProperties.py:462 +msgid "Data" +msgstr "Dati" + +#: flatcamTools/ToolProperties.py:495 +msgid "Depth of Cut" +msgstr "Profondità di taglio" + +#: flatcamTools/ToolProperties.py:507 +msgid "Clearance Height" +msgstr "Altezza di sicurezza" + +#: flatcamTools/ToolProperties.py:539 +msgid "Routing time" +msgstr "Tempo fresatura" + +#: flatcamTools/ToolProperties.py:546 +msgid "Travelled distance" +msgstr "Distanza percorsa" + +#: flatcamTools/ToolProperties.py:564 +msgid "Width" +msgstr "Larghezza" + +#: flatcamTools/ToolProperties.py:570 flatcamTools/ToolProperties.py:578 +msgid "Box Area" +msgstr "Area box" + +#: flatcamTools/ToolProperties.py:573 flatcamTools/ToolProperties.py:581 +msgid "Convex_Hull Area" +msgstr "Area guscio convesso" + +#: flatcamTools/ToolProperties.py:588 flatcamTools/ToolProperties.py:591 +msgid "Copper Area" +msgstr "Area rame" + +#: flatcamTools/ToolPunchGerber.py:30 flatcamTools/ToolPunchGerber.py:323 +msgid "Punch Gerber" +msgstr "Punzona Gerber" + +#: flatcamTools/ToolPunchGerber.py:65 +msgid "Gerber into which to punch holes" +msgstr "Gerber nel quale applicare i punzoni" + +#: flatcamTools/ToolPunchGerber.py:85 +msgid "ALL" +msgstr "TUTTO" + +#: flatcamTools/ToolPunchGerber.py:166 +msgid "" +"Remove the geometry of Excellon from the Gerber to create the holes in pads." +msgstr "Rimuovi la geometria Excellon dal Gerber per creare i fori nei pad." + +#: flatcamTools/ToolPunchGerber.py:325 +msgid "" +"Create a Gerber object from the selected object, within\n" +"the specified box." +msgstr "" +"Crea un oggetto gerber dall'oggetto selezionato, dento\n" +"il box specificato." + +#: flatcamTools/ToolPunchGerber.py:425 +msgid "Punch Tool" +msgstr "Strumento punzone" + +#: flatcamTools/ToolPunchGerber.py:599 +msgid "The value of the fixed diameter is 0.0. Aborting." +msgstr "Il valore di diametro fisso è 0.0. Annullamento." + +#: flatcamTools/ToolPunchGerber.py:607 flatcamTools/ToolPunchGerber.py:619 +msgid "" +"Could not generate punched hole Gerber because the punch hole size is bigger " +"than some of the apertures in the Gerber object." +msgstr "" +"Impossibile generare fori punzonati nel Gerber perché la dimensione del foro " +"del punzone è maggiore di alcune delle aperture nell'oggetto Gerber." + +#: flatcamTools/ToolPunchGerber.py:656 +msgid "" +"Could not generate punched hole Gerber because the newly created object " +"geometry is the same as the one in the source object geometry..." +msgstr "" +"Impossibile generare fori punzonati nel Gerber perché la geometria " +"dell'oggetto appena creata è uguale a quella nella geometria dell'oggetto " +"sorgente ..." + +#: flatcamTools/ToolQRCode.py:80 +msgid "Gerber Object to which the QRCode will be added." +msgstr "Oggetto Gerber a cui verrà aggiunto il QRCode." + +#: flatcamTools/ToolQRCode.py:93 +msgid "QRCode Parameters" +msgstr "Parametri QRCode" + +#: flatcamTools/ToolQRCode.py:95 +msgid "The parameters used to shape the QRCode." +msgstr "Parametri usati per formare il QRCode." + +#: flatcamTools/ToolQRCode.py:207 +msgid "Export QRCode" +msgstr "Esporta QRCode" + +#: flatcamTools/ToolQRCode.py:209 +msgid "" +"Show a set of controls allowing to export the QRCode\n" +"to a SVG file or an PNG file." +msgstr "" +"Mostra una serie di controlli che consentono di esportare il QRCode\n" +"in un file SVG o in un file PNG." + +#: flatcamTools/ToolQRCode.py:248 +msgid "Transparent back color" +msgstr "Colore trasparente sfondo" + +#: flatcamTools/ToolQRCode.py:273 +msgid "Export QRCode SVG" +msgstr "Esporta QRCode su SVG" + +#: flatcamTools/ToolQRCode.py:275 +msgid "Export a SVG file with the QRCode content." +msgstr "Esporta un file SVG con il contenuto del QRCode." + +#: flatcamTools/ToolQRCode.py:286 +msgid "Export QRCode PNG" +msgstr "Esporta QRCode su PNG" + +#: flatcamTools/ToolQRCode.py:288 +msgid "Export a PNG image file with the QRCode content." +msgstr "Esporta file immagine PNG con il contenuto del QRCode." + +#: flatcamTools/ToolQRCode.py:299 +msgid "Insert QRCode" +msgstr "Inserisci QRCode" + +#: flatcamTools/ToolQRCode.py:301 +msgid "Create the QRCode object." +msgstr "Crea oggetto QRCode." + +#: flatcamTools/ToolQRCode.py:415 flatcamTools/ToolQRCode.py:750 +#: flatcamTools/ToolQRCode.py:799 +msgid "Cancelled. There is no QRCode Data in the text box." +msgstr "Annullato. Non ci sono dati QRCode nel box testo." + +#: flatcamTools/ToolQRCode.py:434 +msgid "Generating QRCode geometry" +msgstr "Generazione geometria QRCode" + +#: flatcamTools/ToolQRCode.py:474 +msgid "Click on the Destination point ..." +msgstr "Clicca sul punto di destinazione ..." + +#: flatcamTools/ToolQRCode.py:589 +msgid "QRCode Tool done." +msgstr "Strumento QRCode fatto." + +#: flatcamTools/ToolQRCode.py:782 flatcamTools/ToolQRCode.py:786 +msgid "Export PNG" +msgstr "Esporta PNG" + +#: flatcamTools/ToolRulesCheck.py:33 +msgid "Check Rules" +msgstr "Controllo regole" + +#: flatcamTools/ToolRulesCheck.py:61 +msgid "Gerber Files" +msgstr "Files Gerber" + +#: flatcamTools/ToolRulesCheck.py:63 +msgid "Gerber objects for which to check rules." +msgstr "Oggetti Gerber sui quali verificare le regole." + +#: flatcamTools/ToolRulesCheck.py:78 +msgid "Top" +msgstr "Top" + +#: flatcamTools/ToolRulesCheck.py:80 +msgid "The Top Gerber Copper object for which rules are checked." +msgstr "L'oggetto Gerber rame TOP per il quale vengono controllate le regole." + +#: flatcamTools/ToolRulesCheck.py:96 +msgid "Bottom" +msgstr "Bottom" + +#: flatcamTools/ToolRulesCheck.py:98 +msgid "The Bottom Gerber Copper object for which rules are checked." +msgstr "" +"L'oggetto Gerber rame BOTTOM per il quale vengono controllate le regole." + +#: flatcamTools/ToolRulesCheck.py:114 +msgid "SM Top" +msgstr "SM Top" + +#: flatcamTools/ToolRulesCheck.py:116 +msgid "The Top Gerber Solder Mask object for which rules are checked." +msgstr "" +"L'oggetto Gerber SolderMask TOP per il quale vengono controllate le regole." + +#: flatcamTools/ToolRulesCheck.py:132 +msgid "SM Bottom" +msgstr "SM Bottom" + +#: flatcamTools/ToolRulesCheck.py:134 +msgid "The Bottom Gerber Solder Mask object for which rules are checked." +msgstr "" +"L'oggetto Gerber SolderMask BOTTOM per il quale vengono controllate le " +"regole." + +#: flatcamTools/ToolRulesCheck.py:150 +msgid "Silk Top" +msgstr "Silk Top" + +#: flatcamTools/ToolRulesCheck.py:152 +msgid "The Top Gerber Silkscreen object for which rules are checked." +msgstr "" +"L'oggetto Gerber Serigrafia TOP per il quale vengono controllate le regole." + +#: flatcamTools/ToolRulesCheck.py:168 +msgid "Silk Bottom" +msgstr "Silk Bottom" + +#: flatcamTools/ToolRulesCheck.py:170 +msgid "The Bottom Gerber Silkscreen object for which rules are checked." +msgstr "" +"L'oggetto Gerber Serigrafia BOTTOM per il quale vengono controllate le " +"regole." + +#: flatcamTools/ToolRulesCheck.py:188 +msgid "The Gerber Outline (Cutout) object for which rules are checked." +msgstr "" +"L'oggetto Gerber Outline (ritaglio) per il quale vengono controllate le " +"regole." + +#: flatcamTools/ToolRulesCheck.py:199 +msgid "Excellon Objects" +msgstr "Oggetto Excellon" + +#: flatcamTools/ToolRulesCheck.py:201 +msgid "Excellon objects for which to check rules." +msgstr "Oggetto Excellon al quale controllare le regole." + +#: flatcamTools/ToolRulesCheck.py:213 +msgid "Excellon 1" +msgstr "Excellon 1" + +#: flatcamTools/ToolRulesCheck.py:215 +msgid "" +"Excellon object for which to check rules.\n" +"Holds the plated holes or a general Excellon file content." +msgstr "" +"Oggetto Excellon per il quale verificare le regole.\n" +"Contiene i fori placcati o un contenuto generale del file Excellon." + +#: flatcamTools/ToolRulesCheck.py:232 +msgid "Excellon 2" +msgstr "Excellon 2" + +#: flatcamTools/ToolRulesCheck.py:234 +msgid "" +"Excellon object for which to check rules.\n" +"Holds the non-plated holes." +msgstr "" +"Oggetto Excellon per il quale verificare le regole.\n" +"Contiene i fori non placcati." + +#: flatcamTools/ToolRulesCheck.py:247 +msgid "All Rules" +msgstr "Tutte le regole" + +#: flatcamTools/ToolRulesCheck.py:249 +msgid "This check/uncheck all the rules below." +msgstr "Abilita le regole sotto." + +#: flatcamTools/ToolRulesCheck.py:499 +msgid "Run Rules Check" +msgstr "Esegui controllo regole" + +#: flatcamTools/ToolRulesCheck.py:1158 flatcamTools/ToolRulesCheck.py:1218 +#: flatcamTools/ToolRulesCheck.py:1255 flatcamTools/ToolRulesCheck.py:1327 +#: flatcamTools/ToolRulesCheck.py:1381 flatcamTools/ToolRulesCheck.py:1419 +#: flatcamTools/ToolRulesCheck.py:1484 +msgid "Value is not valid." +msgstr "Valore non valido." + +#: flatcamTools/ToolRulesCheck.py:1172 +msgid "TOP -> Copper to Copper clearance" +msgstr "TOP -> distanze rame-rame" + +#: flatcamTools/ToolRulesCheck.py:1183 +msgid "BOTTOM -> Copper to Copper clearance" +msgstr "BOTTOM -> distanze rame-rame" + +#: flatcamTools/ToolRulesCheck.py:1188 flatcamTools/ToolRulesCheck.py:1282 +#: flatcamTools/ToolRulesCheck.py:1446 +msgid "" +"At least one Gerber object has to be selected for this rule but none is " +"selected." +msgstr "" +"Almeno un oggetto Gerber deve essere selezionato per questa regola ma " +"nessuno è selezionato." + +#: flatcamTools/ToolRulesCheck.py:1224 +msgid "" +"One of the copper Gerber objects or the Outline Gerber object is not valid." +msgstr "" +"Uno degli oggetti Gerber in rame o l'oggetto Gerber del bordo non è valido." + +#: flatcamTools/ToolRulesCheck.py:1237 flatcamTools/ToolRulesCheck.py:1401 +msgid "" +"Outline Gerber object presence is mandatory for this rule but it is not " +"selected." +msgstr "" +"La presenza dell'oggetto Contorno Gerber è obbligatoria per questa regola ma " +"non è stato selezionato." + +#: flatcamTools/ToolRulesCheck.py:1254 flatcamTools/ToolRulesCheck.py:1281 +msgid "Silk to Silk clearance" +msgstr "Distanza tra serigrafie" + +#: flatcamTools/ToolRulesCheck.py:1267 +msgid "TOP -> Silk to Silk clearance" +msgstr "TOP -> distanza tra serigrafie" + +#: flatcamTools/ToolRulesCheck.py:1277 +msgid "BOTTOM -> Silk to Silk clearance" +msgstr "BOTTOM -> distanza tra serigrafie" + +#: flatcamTools/ToolRulesCheck.py:1333 +msgid "One or more of the Gerber objects is not valid." +msgstr "Uno o più oggetti gerber non sono validi." + +#: flatcamTools/ToolRulesCheck.py:1341 +msgid "TOP -> Silk to Solder Mask Clearance" +msgstr "TOP -> distanza tra serigrafie e Solder Mask" + +#: flatcamTools/ToolRulesCheck.py:1347 +msgid "BOTTOM -> Silk to Solder Mask Clearance" +msgstr "BOTTOM -> distanza tra serigrafie e Solder Mask" + +#: flatcamTools/ToolRulesCheck.py:1351 +msgid "" +"Both Silk and Solder Mask Gerber objects has to be either both Top or both " +"Bottom." +msgstr "" +"Sia gli oggetti Silk che quelli Solder Mask Gerber devono essere sia Top che " +"Bottom." + +#: flatcamTools/ToolRulesCheck.py:1387 +msgid "" +"One of the Silk Gerber objects or the Outline Gerber object is not valid." +msgstr "Uno degli oggetti Gerber serigrafia o bordo non è valido." + +#: flatcamTools/ToolRulesCheck.py:1431 +msgid "TOP -> Minimum Solder Mask Sliver" +msgstr "TOP -> Segmento Minimo solder mask" + +#: flatcamTools/ToolRulesCheck.py:1441 +msgid "BOTTOM -> Minimum Solder Mask Sliver" +msgstr "BOTTOM -> Segmento Minimo solder mask" + +#: flatcamTools/ToolRulesCheck.py:1490 +msgid "One of the Copper Gerber objects or the Excellon objects is not valid." +msgstr "Uno degli oggetti Gerber rame o Excellon non è valido." + +#: flatcamTools/ToolRulesCheck.py:1506 +msgid "" +"Excellon object presence is mandatory for this rule but none is selected." +msgstr "" +"La presenza dell'oggetto Excellon è obbligatoria per questa regola ma " +"nessuna è selezionata." + +#: flatcamTools/ToolRulesCheck.py:1579 flatcamTools/ToolRulesCheck.py:1592 +#: flatcamTools/ToolRulesCheck.py:1603 flatcamTools/ToolRulesCheck.py:1616 +msgid "STATUS" +msgstr "STATO" + +#: flatcamTools/ToolRulesCheck.py:1582 flatcamTools/ToolRulesCheck.py:1606 +msgid "FAILED" +msgstr "FALLITO" + +#: flatcamTools/ToolRulesCheck.py:1595 flatcamTools/ToolRulesCheck.py:1619 +msgid "PASSED" +msgstr "PASSATO" + +#: flatcamTools/ToolRulesCheck.py:1596 flatcamTools/ToolRulesCheck.py:1620 +msgid "Violations: There are no violations for the current rule." +msgstr "Violazioni: non ci sono violazioni per la regola attuale." + +#: flatcamTools/ToolShell.py:74 flatcamTools/ToolShell.py:76 +msgid "...processing..." +msgstr "...elaborazione..." + +#: flatcamTools/ToolSolderPaste.py:37 +msgid "Solder Paste Tool" +msgstr "Strumento Solder Paste" + +#: flatcamTools/ToolSolderPaste.py:69 +msgid "Gerber Solder paste object. " +msgstr "Oggetto gerber Solder paste. " + +#: flatcamTools/ToolSolderPaste.py:76 +msgid "" +"Tools pool from which the algorithm\n" +"will pick the ones used for dispensing solder paste." +msgstr "" +"Set di strumenti da cui l'algoritmo\n" +"sceglierà quelli usati per l'erogazione della pasta saldante." + +#: flatcamTools/ToolSolderPaste.py:91 +msgid "" +"This is the Tool Number.\n" +"The solder dispensing will start with the tool with the biggest \n" +"diameter, continuing until there are no more Nozzle tools.\n" +"If there are no longer tools but there are still pads not covered\n" +" with solder paste, the app will issue a warning message box." +msgstr "" +"Questo è il numero dell'utensile.\n" +"L'erogazione della pasta saldante inizierà con l'utensile di diametro\n" +"più grande, continuando fino a quando non ci sono più strumenti ugello.\n" +"Se non ci sono più strumenti ma ci sono ancora pad non coperti\n" +" da pasta saldante, l'app mostrerà una finestra di avviso." + +#: flatcamTools/ToolSolderPaste.py:98 +msgid "" +"Nozzle tool Diameter. It's value (in current FlatCAM units)\n" +"is the width of the solder paste dispensed." +msgstr "" +"Diametro dell'ugello. Il suo valore (nelle attuali unità FlatCAM)\n" +"è la larghezza dell'erogazione della pasta salda." + +#: flatcamTools/ToolSolderPaste.py:105 +msgid "New Nozzle Tool" +msgstr "Nuovo utensile ugello" + +#: flatcamTools/ToolSolderPaste.py:124 +msgid "" +"Add a new nozzle tool to the Tool Table\n" +"with the diameter specified above." +msgstr "" +"Aggiungi un nuovo strumento ugello alla tabella degli strumenti\n" +"con il diametro sopra specificato." + +#: flatcamTools/ToolSolderPaste.py:136 +msgid "Generate solder paste dispensing geometry." +msgstr "Genera geometria di erogazione della pasta saldante." + +#: flatcamTools/ToolSolderPaste.py:155 +msgid "STEP 1" +msgstr "PASSO 1" + +#: flatcamTools/ToolSolderPaste.py:157 +msgid "" +"First step is to select a number of nozzle tools for usage\n" +"and then optionally modify the GCode parameters below." +msgstr "" +"Il primo passo è selezionare un numero di strumenti ugello da usare\n" +"e quindi (facoltativo) modificare i parametri GCode qui sotto." + +#: flatcamTools/ToolSolderPaste.py:160 +msgid "" +"Select tools.\n" +"Modify parameters." +msgstr "" +"Seleziona utensile.\n" +"Modifica parametri." + +#: flatcamTools/ToolSolderPaste.py:280 +msgid "" +"Feedrate (speed) while moving up vertically\n" +" to Dispense position (on Z plane)." +msgstr "" +"Avanzamento (velocità) durante lo spostamento in verticale\n" +" alla posizione di dispensa (sul piano Z)." + +#: flatcamTools/ToolSolderPaste.py:350 +msgid "" +"Generate GCode for Solder Paste dispensing\n" +"on PCB pads." +msgstr "" +"Genera GCode per l'erogazione della pasta saldante\n" +"sui pad del PCB." + +#: flatcamTools/ToolSolderPaste.py:371 +msgid "STEP 2" +msgstr "PASSO 2" + +#: flatcamTools/ToolSolderPaste.py:373 +msgid "" +"Second step is to create a solder paste dispensing\n" +"geometry out of an Solder Paste Mask Gerber file." +msgstr "" +"Il secondo passo è creare una geometria di erogazione\n" +"di pasta salda da un file Gerber di Solder Masck." + +#: flatcamTools/ToolSolderPaste.py:390 +msgid "Geo Result" +msgstr "Risultato Geo" + +#: flatcamTools/ToolSolderPaste.py:392 +msgid "" +"Geometry Solder Paste object.\n" +"The name of the object has to end in:\n" +"'_solderpaste' as a protection." +msgstr "" +"Oggetto geometria Solder Paste.\n" +"Il nome dell'oggetto deve terminare con:\n" +"'_solderpaste' come protezione." + +#: flatcamTools/ToolSolderPaste.py:401 +msgid "STEP 3" +msgstr "PASSO 3" + +#: flatcamTools/ToolSolderPaste.py:403 +msgid "" +"Third step is to select a solder paste dispensing geometry,\n" +"and then generate a CNCJob object.\n" +"\n" +"REMEMBER: if you want to create a CNCJob with new parameters,\n" +"first you need to generate a geometry with those new params,\n" +"and only after that you can generate an updated CNCJob." +msgstr "" +"Il terzo passo è quello di selezionare una geometria di erogazione della " +"pasta salda,\n" +"e quindi generare un oggetto CNCJob.\n" +"\n" +"RICORDA: se vuoi creare un CNCJob con nuovi parametri,\n" +"per prima cosa devi generare una geometria con quei nuovi parametri,\n" +"e solo successivamente puoi generare un CNCJob aggiornato." + +#: flatcamTools/ToolSolderPaste.py:424 +msgid "CNC Result" +msgstr "Risultato CNC" + +#: flatcamTools/ToolSolderPaste.py:426 +msgid "" +"CNCJob Solder paste object.\n" +"In order to enable the GCode save section,\n" +"the name of the object has to end in:\n" +"'_solderpaste' as a protection." +msgstr "" +"Oggetto CNCJob per pasta saldante.\n" +"Per abilitare la sezione di salvataggio del GCode,\n" +"il nome dell'oggetto deve terminare in:\n" +"'_solderpaste' come protezione." + +#: flatcamTools/ToolSolderPaste.py:436 +msgid "View GCode" +msgstr "Vedi GCode" + +#: flatcamTools/ToolSolderPaste.py:438 +msgid "" +"View the generated GCode for Solder Paste dispensing\n" +"on PCB pads." +msgstr "" +"Visualizza il GCode generato per l'erogazione della pasta salda\n" +"sui pad del PCB." + +#: flatcamTools/ToolSolderPaste.py:448 +msgid "Save GCode" +msgstr "Salva GCode" + +#: flatcamTools/ToolSolderPaste.py:450 +msgid "" +"Save the generated GCode for Solder Paste dispensing\n" +"on PCB pads, to a file." +msgstr "" +"Salva il GCode generato per l'erogazione della pasta salda\n" +"sui pad del PCB in un file." + +#: flatcamTools/ToolSolderPaste.py:460 +msgid "STEP 4" +msgstr "PASSO 4" + +#: flatcamTools/ToolSolderPaste.py:462 +msgid "" +"Fourth step (and last) is to select a CNCJob made from \n" +"a solder paste dispensing geometry, and then view/save it's GCode." +msgstr "" +"Il quarto (e ultimo) passo è selezionare un CNCJob creato da una geometria\n" +"di distribuzione di pasta salda, quindi visualizza/salva il suo GCode." + +#: flatcamTools/ToolSolderPaste.py:922 +msgid "New Nozzle tool added to Tool Table." +msgstr "Nuovo utensile ugello aggiunto alla tabella." + +#: flatcamTools/ToolSolderPaste.py:965 +msgid "Nozzle tool from Tool Table was edited." +msgstr "Utensile ugello modificato nella tabella." + +#: flatcamTools/ToolSolderPaste.py:1024 +msgid "Delete failed. Select a Nozzle tool to delete." +msgstr "Cancellazione fallita. Scegli un utensile ugello da cancellare." + +#: flatcamTools/ToolSolderPaste.py:1030 +msgid "Nozzle tool(s) deleted from Tool Table." +msgstr "Utensile(i) ugello cancellato(i) dalla tabella." + +#: flatcamTools/ToolSolderPaste.py:1086 +msgid "No SolderPaste mask Gerber object loaded." +msgstr "Nessun oggetto Gerber SolderPaste mask caricato." + +#: flatcamTools/ToolSolderPaste.py:1104 +msgid "Creating Solder Paste dispensing geometry." +msgstr "Creazione della geometria di erogazione della pasta per saldatura." + +#: flatcamTools/ToolSolderPaste.py:1117 +msgid "No Nozzle tools in the tool table." +msgstr "Nessun utensile ugello nella tabella utensili." + +#: flatcamTools/ToolSolderPaste.py:1243 +msgid "Cancelled. Empty file, it has no geometry..." +msgstr "Annullato. File vuoto, non ha geometrie..." + +#: flatcamTools/ToolSolderPaste.py:1246 +msgid "Solder Paste geometry generated successfully" +msgstr "Geometria solder paste generata con successo" + +#: flatcamTools/ToolSolderPaste.py:1253 +msgid "Some or all pads have no solder due of inadequate nozzle diameters..." +msgstr "" +"Alcuni o tutti i pad non hanno solder a causa di diametri degli ugelli " +"inadeguati ..." + +#: flatcamTools/ToolSolderPaste.py:1267 +msgid "Generating Solder Paste dispensing geometry..." +msgstr "" +"Generazione della geometria di erogazione della pasta per saldatura ..." + +#: flatcamTools/ToolSolderPaste.py:1287 +msgid "There is no Geometry object available." +msgstr "Non è disponibile alcun oggetto Geometria." + +#: flatcamTools/ToolSolderPaste.py:1292 +msgid "This Geometry can't be processed. NOT a solder_paste_tool geometry." +msgstr "" +"Questa geometria non può essere elaborata. NON è una geometria " +"solder_paste_tool." + +#: flatcamTools/ToolSolderPaste.py:1328 +msgid "An internal error has ocurred. See shell.\n" +msgstr "Errore interno. Vedi shell.\n" + +#: flatcamTools/ToolSolderPaste.py:1393 +msgid "ToolSolderPaste CNCjob created" +msgstr "CNCjob ToolSolderPaste creato" + +#: flatcamTools/ToolSolderPaste.py:1412 +msgid "SP GCode Editor" +msgstr "Editor GCode solder past" + +#: flatcamTools/ToolSolderPaste.py:1424 flatcamTools/ToolSolderPaste.py:1429 +#: flatcamTools/ToolSolderPaste.py:1484 +msgid "" +"This CNCJob object can't be processed. NOT a solder_paste_tool CNCJob object." +msgstr "" +"Questo oggetto CNCJob non può essere elaborato. NON è un oggetto CNCJob " +"solder_paste_tool." + +#: flatcamTools/ToolSolderPaste.py:1454 +msgid "No Gcode in the object" +msgstr "Nessun GCode nell'oggetto" + +#: flatcamTools/ToolSolderPaste.py:1494 +msgid "Export GCode ..." +msgstr "Esportazione GCode ..." + +#: flatcamTools/ToolSolderPaste.py:1542 +msgid "Solder paste dispenser GCode file saved to" +msgstr "File GCode del distributore di pasta per saldatura salvato in" + +#: flatcamTools/ToolSub.py:65 +msgid "Gerber Objects" +msgstr "Oggetti Gerber" + +#: flatcamTools/ToolSub.py:78 +msgid "" +"Gerber object from which to subtract\n" +"the subtractor Gerber object." +msgstr "" +"Oggetto Gerber da cui sottrarre\n" +"l'oggetto Gerber sottraendo." + +#: flatcamTools/ToolSub.py:91 flatcamTools/ToolSub.py:146 +msgid "Subtractor" +msgstr "Sottraendo" + +#: flatcamTools/ToolSub.py:93 +msgid "" +"Gerber object that will be subtracted\n" +"from the target Gerber object." +msgstr "" +"Oggetto Gerber che verrà sottratto\n" +"dall'oggetto Gerber di destinazione." + +#: flatcamTools/ToolSub.py:100 +msgid "Subtract Gerber" +msgstr "Sottrai Gerber" + +#: flatcamTools/ToolSub.py:102 +msgid "" +"Will remove the area occupied by the subtractor\n" +"Gerber from the Target Gerber.\n" +"Can be used to remove the overlapping silkscreen\n" +"over the soldermask." +msgstr "" +"Rimuoverà l'area occupata dal Gerber\n" +"sottrattore dal Gerber Target.\n" +"Può essere usato per rimuovere la serigrafia\n" +"sovrapposta al soldermask." + +#: flatcamTools/ToolSub.py:120 +msgid "Geometry Objects" +msgstr "Oggetto geometria" + +#: flatcamTools/ToolSub.py:133 +msgid "" +"Geometry object from which to subtract\n" +"the subtractor Geometry object." +msgstr "" +"Oggetto geometria da cui sottrarre\n" +"l'oggetto Geometria del sottrattore." + +#: flatcamTools/ToolSub.py:148 +msgid "" +"Geometry object that will be subtracted\n" +"from the target Geometry object." +msgstr "" +"Oggetto Geometria che verrà sottratto\n" +"dall'oggetto Geometria di destinazione." + +#: flatcamTools/ToolSub.py:156 +msgid "" +"Checking this will close the paths cut by the Geometry subtractor object." +msgstr "" +"Selezionandolo verranno chiusi i percorsi tagliati dall'oggetto geometria " +"sottrattore." + +#: flatcamTools/ToolSub.py:159 +msgid "Subtract Geometry" +msgstr "Sottrai geometria" + +#: flatcamTools/ToolSub.py:161 +msgid "" +"Will remove the area occupied by the subtractor\n" +"Geometry from the Target Geometry." +msgstr "" +"Rimuoverà l'area occupata dalla geometria\n" +"sottrattore dalla geometria target." + +#: flatcamTools/ToolSub.py:263 +msgid "Sub Tool" +msgstr "Strumento sottrazione" + +#: flatcamTools/ToolSub.py:284 flatcamTools/ToolSub.py:489 +msgid "No Target object loaded." +msgstr "Nessun oggetto target caricato." + +#: flatcamTools/ToolSub.py:287 +msgid "Loading geometry from Gerber objects." +msgstr "Caricamento della geometria dagli oggetti Gerber." + +#: flatcamTools/ToolSub.py:299 flatcamTools/ToolSub.py:504 +msgid "No Subtractor object loaded." +msgstr "Nessun oggetto sottrattore caricato." + +#: flatcamTools/ToolSub.py:331 +msgid "Processing geometry from Subtractor Gerber object." +msgstr "Elaborazione della geometria dall'oggetto sottrattore Gerber." + +#: flatcamTools/ToolSub.py:352 +msgid "Parsing geometry for aperture" +msgstr "Analisi della geometria per l'apertura" + +#: flatcamTools/ToolSub.py:413 +msgid "Finished parsing geometry for aperture" +msgstr "Analisi geometria aperture terminate" + +#: flatcamTools/ToolSub.py:458 flatcamTools/ToolSub.py:661 +msgid "Generating new object ..." +msgstr "Generazione nuovo oggetto ..." + +#: flatcamTools/ToolSub.py:462 flatcamTools/ToolSub.py:665 +#: flatcamTools/ToolSub.py:746 +msgid "Generating new object failed." +msgstr "Generazione nuovo oggetto fallita." + +#: flatcamTools/ToolSub.py:467 flatcamTools/ToolSub.py:671 +msgid "Created" +msgstr "Creato" + +#: flatcamTools/ToolSub.py:518 +msgid "Currently, the Subtractor geometry cannot be of type Multigeo." +msgstr "" +"Attualmente, la geometria del sottrattore non può essere di tipo Multigeo." + +#: flatcamTools/ToolSub.py:563 +msgid "Parsing solid_geometry ..." +msgstr "Analisi soild_geometry ..." + +#: flatcamTools/ToolSub.py:565 +msgid "Parsing solid_geometry for tool" +msgstr "Analisi soild_geometry per utensili" + +#: flatcamTools/ToolTransform.py:23 +msgid "Object Transform" +msgstr "Trasformazione oggetto" + +#: flatcamTools/ToolTransform.py:78 +msgid "" +"Rotate the selected object(s).\n" +"The point of reference is the middle of\n" +"the bounding box for all selected objects." +msgstr "" +"Ruota gli oggetti selezionati.\n" +"Il punto di riferimento è il centro del\n" +"rettangolo di selezione per tutti gli oggetti selezionati." + +#: flatcamTools/ToolTransform.py:99 flatcamTools/ToolTransform.py:120 +msgid "" +"Angle for Skew action, in degrees.\n" +"Float number between -360 and 360." +msgstr "" +"Angolo per l'azione di inclinazione, in gradi.\n" +"Numero float compreso tra -360 e 360." + +#: flatcamTools/ToolTransform.py:109 flatcamTools/ToolTransform.py:130 +msgid "" +"Skew/shear the selected object(s).\n" +"The point of reference is the middle of\n" +"the bounding box for all selected objects." +msgstr "" +"Inclina gli oggetti selezionati.\n" +"Il punto di riferimento è il centro del\n" +"rettangolo di selezione per tutti gli oggetti selezionati." + +#: flatcamTools/ToolTransform.py:159 flatcamTools/ToolTransform.py:179 +msgid "" +"Scale the selected object(s).\n" +"The point of reference depends on \n" +"the Scale reference checkbox state." +msgstr "" +"Ridimensiona gli oggetti selezionati.\n" +"Il punto di riferimento dipende\n" +"dallo stato della casella di controllo Riferimento scala." + +#: flatcamTools/ToolTransform.py:228 flatcamTools/ToolTransform.py:248 +msgid "" +"Offset the selected object(s).\n" +"The point of reference is the middle of\n" +"the bounding box for all selected objects.\n" +msgstr "" +"Sposta gli oggetti selezionati.\n" +"Il punto di riferimento è il centro del\n" +"rettangolo di selezione per tutti gli oggetti selezionati.\n" + +#: flatcamTools/ToolTransform.py:268 flatcamTools/ToolTransform.py:273 +msgid "Flip the selected object(s) over the X axis." +msgstr "Capovolgi gli oggetti selezionati sull'asse X." + +#: flatcamTools/ToolTransform.py:297 +msgid "Ref. Point" +msgstr "Punto di riferimento" + +#: flatcamTools/ToolTransform.py:348 +msgid "" +"Create the buffer effect on each geometry,\n" +"element from the selected object, using the distance." +msgstr "" +"Crea l'effetto buffer su ogni geometria,\n" +"elemento dall'oggetto selezionato, usando la distanza." + +#: flatcamTools/ToolTransform.py:374 +msgid "" +"Create the buffer effect on each geometry,\n" +"element from the selected object, using the factor." +msgstr "" +"Crea l'effetto buffer su ogni geometria,\n" +"elemento dall'oggetto selezionato, usando il fattore." + +#: flatcamTools/ToolTransform.py:479 +msgid "Buffer D" +msgstr "Buffer D" + +#: flatcamTools/ToolTransform.py:480 +msgid "Buffer F" +msgstr "Buffer F" + +#: flatcamTools/ToolTransform.py:557 +msgid "Rotate transformation can not be done for a value of 0." +msgstr "" +"La trasformazione di rotazione non può essere eseguita per un valore pari a " +"0." + +#: flatcamTools/ToolTransform.py:596 flatcamTools/ToolTransform.py:619 +msgid "Scale transformation can not be done for a factor of 0 or 1." +msgstr "" +"La trasformazione in scala non può essere eseguita per un fattore 0 o 1." + +#: flatcamTools/ToolTransform.py:634 flatcamTools/ToolTransform.py:644 +msgid "Offset transformation can not be done for a value of 0." +msgstr "" +"La trasformazione offset non può essere eseguita per un valore pari a 0." + +#: flatcamTools/ToolTransform.py:676 +msgid "No object selected. Please Select an object to rotate!" +msgstr "Nessun oggetto selezionato. Seleziona un oggetto da ruotare!" + +#: flatcamTools/ToolTransform.py:702 +msgid "CNCJob objects can't be rotated." +msgstr "Gli oggetti CNCJob non possono essere ruotati." + +#: flatcamTools/ToolTransform.py:710 +msgid "Rotate done" +msgstr "Rotazione effettuata" + +#: flatcamTools/ToolTransform.py:713 flatcamTools/ToolTransform.py:783 +#: flatcamTools/ToolTransform.py:833 flatcamTools/ToolTransform.py:887 +#: flatcamTools/ToolTransform.py:917 flatcamTools/ToolTransform.py:953 +msgid "Due of" +msgstr "A causa di" + +#: flatcamTools/ToolTransform.py:713 flatcamTools/ToolTransform.py:783 +#: flatcamTools/ToolTransform.py:833 flatcamTools/ToolTransform.py:887 +#: flatcamTools/ToolTransform.py:917 flatcamTools/ToolTransform.py:953 +msgid "action was not executed." +msgstr "l'azione non è stata eseguita." + +#: flatcamTools/ToolTransform.py:725 +msgid "No object selected. Please Select an object to flip" +msgstr "Nessun oggetto selezionato. Seleziona un oggetto da capovolgere" + +#: flatcamTools/ToolTransform.py:758 +msgid "CNCJob objects can't be mirrored/flipped." +msgstr "Gli oggetti CNCJob non possono essere specchiati/capovolti." + +#: flatcamTools/ToolTransform.py:793 +msgid "Skew transformation can not be done for 0, 90 and 180 degrees." +msgstr "" +"La trasformazione dell'inclinazione non può essere eseguita per 0, 90 e 180 " +"gradi." + +#: flatcamTools/ToolTransform.py:798 +msgid "No object selected. Please Select an object to shear/skew!" +msgstr "Nessun oggetto selezionato. Seleziona un oggetto da inclinare!" + +#: flatcamTools/ToolTransform.py:818 +msgid "CNCJob objects can't be skewed." +msgstr "Gli oggetti CNCJob non possono essere inclinati." + +#: flatcamTools/ToolTransform.py:830 +msgid "Skew on the" +msgstr "Inclina su" + +#: flatcamTools/ToolTransform.py:830 flatcamTools/ToolTransform.py:884 +#: flatcamTools/ToolTransform.py:914 +msgid "axis done" +msgstr "asse eseguito" + +#: flatcamTools/ToolTransform.py:844 +msgid "No object selected. Please Select an object to scale!" +msgstr "Nessun oggetto selezionato. Seleziona un oggetto da ridimensionare!" + +#: flatcamTools/ToolTransform.py:875 +msgid "CNCJob objects can't be scaled." +msgstr "Gli oggetti CNCJob non possono essere ridimensionati." + +#: flatcamTools/ToolTransform.py:884 +msgid "Scale on the" +msgstr "Scala su" + +#: flatcamTools/ToolTransform.py:894 +msgid "No object selected. Please Select an object to offset!" +msgstr "Nessun oggetto selezionato. Seleziona un oggetto da compensare!" + +#: flatcamTools/ToolTransform.py:901 +msgid "CNCJob objects can't be offset." +msgstr "Gli oggetti CNCJob non possono essere offsettati." + +#: flatcamTools/ToolTransform.py:914 +msgid "Offset on the" +msgstr "Offset su" + +#: flatcamTools/ToolTransform.py:924 +msgid "No object selected. Please Select an object to buffer!" +msgstr "Nessun oggetto selezionato. Seleziona un oggetto da bufferizzare!" + +#: flatcamTools/ToolTransform.py:927 +msgid "Applying Buffer" +msgstr "Applicazione del buffer" + +#: flatcamTools/ToolTransform.py:931 +msgid "CNCJob objects can't be buffered." +msgstr "Gli oggetti CNCJob non possono essere bufferizzati." + +#: flatcamTools/ToolTransform.py:948 +msgid "Buffer done" +msgstr "Bugger applicato" + #: tclCommands/TclCommandBbox.py:75 tclCommands/TclCommandNregions.py:74 msgid "Expected GerberObject or GeometryObject, got" msgstr "Mi aspettavo un FlatCAMGerber o FlatCAMGeometry, rilevato" @@ -18807,12 +18323,12 @@ msgstr "Previsto un elenco di nomi di oggetti separati da virgola. Rilevato" msgid "TclCommand Bounds done." msgstr "Misura TclCommand effettuata." -#: tclCommands/TclCommandCopperClear.py:281 tclCommands/TclCommandPaint.py:283 +#: tclCommands/TclCommandCopperClear.py:276 tclCommands/TclCommandPaint.py:272 #: tclCommands/TclCommandScale.py:81 msgid "Could not retrieve box object" msgstr "Non posso recuperare l'oggetto box" -#: tclCommands/TclCommandCopperClear.py:304 +#: tclCommands/TclCommandCopperClear.py:299 msgid "Expected either -box or -all." msgstr "Mi aspettavo -box o -all." @@ -18830,11 +18346,11 @@ msgstr "" "'2SS', 4 o 8." #: tclCommands/TclCommandGeoCutout.py:301 -#: tclCommands/TclCommandGeoCutout.py:356 +#: tclCommands/TclCommandGeoCutout.py:359 msgid "Any-form Cutout operation finished." msgstr "Operazione di CutOut terminata." -#: tclCommands/TclCommandGeoCutout.py:362 +#: tclCommands/TclCommandGeoCutout.py:365 msgid "Cancelled. Object type is not supported." msgstr "Annullato. Il tipo di oggetto non è supportato." @@ -18850,15 +18366,15 @@ msgstr "Scrivi help per l'utilizzo." msgid "Example: help open_gerber" msgstr "Esempio: help open_gerber" -#: tclCommands/TclCommandPaint.py:250 tclCommands/TclCommandPaint.py:256 -msgid "Expected a tuple value like -single 3.2,0.1." -msgstr "" +#: tclCommands/TclCommandPaint.py:244 +msgid "Expected -x and -y ." +msgstr "Atteso -x e -y ." -#: tclCommands/TclCommandPaint.py:276 +#: tclCommands/TclCommandPaint.py:265 msgid "Expected -box ." msgstr "Era atteso -box ." -#: tclCommands/TclCommandPaint.py:297 +#: tclCommands/TclCommandPaint.py:286 msgid "" "None of the following args: 'box', 'single', 'all' were used.\n" "Paint failed." @@ -18882,7 +18398,7 @@ msgstr "Atteso -x -y ." msgid "Expected a pair of (x, y) coordinates. Got" msgstr "Attesa una coppia di coordinate (x,y). Ricevuto" -#: tclCommands/TclCommandSetOrigin.py:101 +#: tclCommands/TclCommandSetOrigin.py:102 msgid "Origin set by offsetting all loaded objects with " msgstr "Origine impostata spostando tutti gli oggetti caricati con " @@ -18890,202 +18406,6 @@ msgstr "Origine impostata spostando tutti gli oggetti caricati con " msgid "No Geometry name in args. Provide a name and try again." msgstr "Nessun nome di geometria negli argomenti. Fornisci un nome e riprova." -#~ msgid "Add Tool from Tools DB" -#~ msgstr "Aggiungi strumento dal DB strumenti" - -#~ msgid "FlatCAM Object" -#~ msgstr "Oggetto FlatCAM" - -#~ msgid "" -#~ "Choose which tool to use for Gerber isolation:\n" -#~ "'Circular' or 'V-shape'.\n" -#~ "When the 'V-shape' is selected then the tool\n" -#~ "diameter will depend on the chosen cut depth." -#~ msgstr "" -#~ "Scegli quale strumento utilizzare per l'isolamento Gerber:\n" -#~ "'Circolare' o 'a V'.\n" -#~ "Quando è selezionata la forma 'a V', il diametro\n" -#~ "dell'utensile dipenderà dalla profondità di taglio scelta." - -#~ msgid "V-Shape" -#~ msgstr "Punta a V" - -#~ msgid "" -#~ "Diameter of the cutting tool.\n" -#~ "If you want to have an isolation path\n" -#~ "inside the actual shape of the Gerber\n" -#~ "feature, use a negative value for\n" -#~ "this parameter." -#~ msgstr "" -#~ "Diametro dell'utensile da taglio.\n" -#~ "Se vuoi avere un percorso di isolamento\n" -#~ "all'interno della forma reale del Gerber,\n" -#~ "usa un valore negativo per questo parametro." - -#~ msgid "Pass overlap" -#~ msgstr "Sovrapposizione passate" - -#~ msgid "Scope" -#~ msgstr "Scopo" - -#~ msgid "Clear N-copper" -#~ msgstr "Azzera N-Copper (non rame)" - -#~ msgid "Board cutout" -#~ msgstr "Ritaglia scheda" - -#~ msgid "" -#~ "Add a new tool to the Tool Table\n" -#~ "with the specified diameter." -#~ msgstr "" -#~ "Aggiungi un nuovo utensile alla tabella degli utensili\n" -#~ "con il diametro specificato." - -#~ msgid "Excellon Object Color" -#~ msgstr "Colore oggetti Excellon" - -#~ msgid "Geometry Object Color" -#~ msgstr "Colore oggetti Geometria" - -#~ msgid "Exterior" -#~ msgstr "Esterno" - -#~ msgid "Interior" -#~ msgstr "Interno" - -#~ msgid "Gerber Object Color" -#~ msgstr "Colore oggetto Gerber" - -#~ msgid "Combine Passes" -#~ msgstr "Combina Passi" - -#~ msgid "Rest Machining" -#~ msgstr "Lavorazione di ripresa" - -#~ msgid "NCC Plotting" -#~ msgstr "Disegna NCC" - -#~ msgid "All Polygons" -#~ msgstr "Tutti i poligoni" - -#~ msgid "Paint Plotting" -#~ msgstr "Disegna aree dipinte" - -#~ msgid "" -#~ "- 'Normal' - normal plotting, done at the end of the Paint job\n" -#~ "- 'Progressive' - after each shape is generated it will be plotted." -#~ msgstr "" -#~ "- 'Normale' - tracciatura normale, eseguita alla fine del lavoro di " -#~ "selezione\n" -#~ "- 'Progressiva' - verrà generata al termine di ogni forma selezionata." - -#~ msgid "Export Machine Code ..." -#~ msgstr "Esporta codice macchina ..." - -#~ msgid "Export Machine Code cancelled ..." -#~ msgstr "Esportazione codice macchina annullato ..." - -#~ msgid "Machine Code file saved to" -#~ msgstr "File codice macchina salvato in" - -#~ msgid "GCode Parameters" -#~ msgstr "Parametri GCode" - -#, fuzzy -#~| msgid "Selection" -#~ msgid "PreSelection" -#~ msgstr "Selezione" - -#~ msgid "Copper Gerber" -#~ msgstr "Gerber rame" - -#~ msgid "QRCode Parameters" -#~ msgstr "Parametri QRCode" - -#~ msgid "Gerber Files" -#~ msgstr "Files Gerber" - -#~ msgid "Excellon Objects" -#~ msgstr "Oggetto Excellon" - -#~ msgid "Gerber Solder paste object. " -#~ msgstr "Oggetto gerber Solder paste. " - -#~ msgid "Gerber Objects" -#~ msgstr "Oggetti Gerber" - -#~ msgid "Geometry Objects" -#~ msgstr "Oggetto geometria" - -#~ msgid "Processing geometry from Subtractor Gerber object." -#~ msgstr "Elaborazione della geometria dall'oggetto sottrattore Gerber." - -#~ msgid "Parsing geometry for aperture" -#~ msgstr "Analisi della geometria per l'apertura" - -#~ msgid "Export FlatCAM Bookmarks" -#~ msgstr "Esporta i segnalibri di FlatCAM" - -#~ msgid "Import FlatCAM Bookmarks" -#~ msgstr "Importa segnalibri FlatCAM" - -#~ msgid "Unifying Geometry from parsed Geometry segments" -#~ msgstr "Unificazione geometrie dai segmenti di geomatria analizzati" - -#~ msgid "./assets/icon.png" -#~ msgstr "./assets/icon.png" - -#~ msgid "New Blank Geometry" -#~ msgstr "Nuova Geometria vuota" - -#~ msgid "New Blank Gerber" -#~ msgstr "Nuovo Gerber vuoto" - -#~ msgid "New Blank Excellon" -#~ msgstr "Nuovo Excellon vuoto" - -#~ msgid "" -#~ "Relative measurement.\n" -#~ "Reference is last click position" -#~ msgstr "" -#~ "Misure relative.\n" -#~ "Il riferimento è l'ultima posizione cliccata" - -#~ msgid "Apply Theme" -#~ msgstr "Applica tema" - -#~ msgid "" -#~ "Select a theme for FlatCAM.\n" -#~ "It will theme the plot area.\n" -#~ "The application will restart after change." -#~ msgstr "" -#~ "Seleziona un tema per FlatCAM.\n" -#~ "Il tema sarà applicato all'area di plot.\n" -#~ "Il programma verrà riavviato dopo la modifica." - -#~ msgid "Film Object" -#~ msgstr "Oggetto Film" - -#~ msgid "Object for which to create the film." -#~ msgstr "Oggetto per cui creare il film." - -#~ msgid "Box Object" -#~ msgstr "Oggetto box" - -#~ msgid "" -#~ "The actual object that is used as container for the\n" -#~ " selected object for which we create the film.\n" -#~ "Usually it is the PCB outline but it can be also the\n" -#~ "same object for which the film is created." -#~ msgstr "" -#~ "L'oggetto attualmente usato come oggetto\n" -#~ "contenitore per il quale creiamo il film.\n" -#~ "Di solito è il contorno del PCB ma può anche essere\n" -#~ "l'oggetto stesso per cui è stato creato il film." - -#~ msgid "Expected -x and -y ." -#~ msgstr "Atteso -x e -y ." - #~ msgid "Executing Tcl Script ..." #~ msgstr "Esecuzione dello script Tcl ..." @@ -19147,6 +18467,9 @@ msgstr "Nessun nome di geometria negli argomenti. Fornisci un nome e riprova." #~ msgid " Export SVG cancelled." #~ msgstr " Esportazione SVG annullata." +#~ msgid "Export PNG cancelled." +#~ msgstr "Esportazione PNG annullata." + #~ msgid "No object selected. Please select an Gerber object to export." #~ msgstr "" #~ "Nessun oggetto selezionato. Seleziona un oggetto Gerber da esportare." @@ -19210,6 +18533,9 @@ msgstr "Nessun nome di geometria negli argomenti. Fornisci un nome e riprova." #~ msgid "Save Object PDF cancelled." #~ msgstr "Salvataggio oggetto PDF annullato." +#~ msgid "Shows list of commands." +#~ msgstr "Mostra lista dei comandi." + #~ msgid "FlatCAM bookmarks export cancelled." #~ msgstr "Esportazione segnalibri di FlatCAM annullata." diff --git a/locale/pt_BR/LC_MESSAGES/strings.mo b/locale/pt_BR/LC_MESSAGES/strings.mo index fdf8ed022a75249b689bc60bea95a3fa42b64d9b..45df71a9308088011c2a88d6042462d0224a3418 100644 GIT binary patch delta 74704 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

    |#+HVxPxIY0=2_17s-C0|HgQiBt_Oya4iCk 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\n" "Language-Team: \n" "Language: pt_BR\n" @@ -10,7 +10,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: pygettext.py 1.5\n" -"X-Generator: Poedit 2.3.1\n" +"X-Generator: Poedit 2.2.4\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Poedit-Basepath: ../../..\n" "X-Poedit-SearchPath-0: .\n" @@ -18,17080 +18,17 @@ msgstr "" "X-Poedit-SearchPathExcluded-1: doc\n" "X-Poedit-SearchPathExcluded-2: tests\n" -#: AppDatabase.py:88 -msgid "Add Geometry Tool in DB" -msgstr "Adicionar Ferram de Geo no BD" - -#: AppDatabase.py:90 AppDatabase.py:1757 -msgid "" -"Add a new tool in the Tools Database.\n" -"It will be used in the Geometry UI.\n" -"You can edit it after it is added." -msgstr "" -"Adiciona uma nova ferramenta ao Banco de Dados de Ferramentas.\n" -"Será usado na interface do usuário da Geometria.\n" -"Você pode editar após a adição." - -#: AppDatabase.py:104 AppDatabase.py:1771 -msgid "Delete Tool from DB" -msgstr "Excluir ferramenta do BD" - -#: AppDatabase.py:106 AppDatabase.py:1773 -msgid "Remove a selection of tools in the Tools Database." -msgstr "Remove uma seleção de ferramentas no banco de dados de ferramentas." - -#: AppDatabase.py:110 AppDatabase.py:1777 -msgid "Export DB" -msgstr "Exportar BD" - -#: AppDatabase.py:112 AppDatabase.py:1779 -msgid "Save the Tools Database to a custom text file." -msgstr "" -"Salva o banco de dados de ferramentas em um arquivo de texto personalizado." - -#: AppDatabase.py:116 AppDatabase.py:1783 -msgid "Import DB" -msgstr "Importar BD" - -#: AppDatabase.py:118 AppDatabase.py:1785 -msgid "Load the Tools Database information's from a custom text file." -msgstr "" -"Carregua as informações do banco de dados de ferramentas de um arquivo de " -"texto personalizado." - -#: AppDatabase.py:122 AppDatabase.py:1795 -#, fuzzy -#| msgid "Transform Tool" -msgid "Transfer the Tool" -msgstr "Ferramenta Transformar" - -#: AppDatabase.py:124 -msgid "" -"Add a new tool in the Tools Table of the\n" -"active Geometry object after selecting a tool\n" -"in the Tools Database." -msgstr "" -"Adiciona uma nova ferramenta na Tabela de ferramentas do\n" -"objeto geometria ativo após selecionar uma ferramenta\n" -"no banco de dados de ferramentas." - -#: AppDatabase.py:130 AppDatabase.py:1810 AppGUI/MainGUI.py:1388 -#: AppGUI/preferences/PreferencesUIManager.py:878 App_Main.py:2225 -#: App_Main.py:3160 App_Main.py:4037 App_Main.py:4307 App_Main.py:6417 -msgid "Cancel" -msgstr "Cancelar" - -#: AppDatabase.py:160 AppDatabase.py:835 AppDatabase.py:1106 -msgid "Tool Name" -msgstr "Nome da Ferramenta" - -#: AppDatabase.py:161 AppDatabase.py:837 AppDatabase.py:1119 -#: AppEditors/FlatCAMExcEditor.py:1604 AppGUI/ObjectUI.py:1226 -#: AppGUI/ObjectUI.py:1480 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:132 -#: AppTools/ToolIsolation.py:260 AppTools/ToolNCC.py:278 -#: AppTools/ToolNCC.py:287 AppTools/ToolPaint.py:260 -msgid "Tool Dia" -msgstr "Diâmetro da Ferramenta" - -#: AppDatabase.py:162 AppDatabase.py:839 AppDatabase.py:1300 -#: AppGUI/ObjectUI.py:1455 -msgid "Tool Offset" -msgstr "Deslocamento" - -#: AppDatabase.py:163 AppDatabase.py:841 AppDatabase.py:1317 -msgid "Custom Offset" -msgstr "Deslocamento Personalizado" - -#: AppDatabase.py:164 AppDatabase.py:843 AppDatabase.py:1284 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:70 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:53 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:62 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:72 -#: AppTools/ToolIsolation.py:199 AppTools/ToolNCC.py:213 -#: AppTools/ToolNCC.py:227 AppTools/ToolPaint.py:195 -msgid "Tool Type" -msgstr "Tipo de Ferramenta" - -#: AppDatabase.py:165 AppDatabase.py:845 AppDatabase.py:1132 -msgid "Tool Shape" -msgstr "Formato" - -#: AppDatabase.py:166 AppDatabase.py:848 AppDatabase.py:1148 -#: AppGUI/ObjectUI.py:679 AppGUI/ObjectUI.py:1605 AppGUI/ObjectUI.py:2266 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:93 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:49 -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:78 -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:58 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:115 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:98 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:105 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:113 -#: AppTools/ToolCalculators.py:114 AppTools/ToolCutOut.py:138 -#: AppTools/ToolIsolation.py:246 AppTools/ToolNCC.py:260 -#: AppTools/ToolNCC.py:268 AppTools/ToolPaint.py:242 -msgid "Cut Z" -msgstr "Profundidade de Corte" - -#: AppDatabase.py:167 AppDatabase.py:850 AppDatabase.py:1162 -msgid "MultiDepth" -msgstr "Multi-Profundidade" - -#: AppDatabase.py:168 AppDatabase.py:852 AppDatabase.py:1175 -msgid "DPP" -msgstr "PPP" - -#: AppDatabase.py:169 AppDatabase.py:854 AppDatabase.py:1331 -msgid "V-Dia" -msgstr "Dia-V" - -#: AppDatabase.py:170 AppDatabase.py:856 AppDatabase.py:1345 -msgid "V-Angle" -msgstr "Angulo-V" - -#: AppDatabase.py:171 AppDatabase.py:858 AppDatabase.py:1189 -#: AppGUI/ObjectUI.py:725 AppGUI/ObjectUI.py:1652 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:134 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:102 -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:61 -#: AppObjects/FlatCAMExcellon.py:1496 AppObjects/FlatCAMGeometry.py:1671 -#: AppTools/ToolCalibration.py:74 -msgid "Travel Z" -msgstr "Altura do Deslocamento" - -#: AppDatabase.py:172 AppDatabase.py:860 -msgid "FR" -msgstr "VA" - -#: AppDatabase.py:173 AppDatabase.py:862 -msgid "FR Z" -msgstr "VA Z" - -#: AppDatabase.py:174 AppDatabase.py:864 AppDatabase.py:1359 -msgid "FR Rapids" -msgstr "VA Rápida" - -#: AppDatabase.py:175 AppDatabase.py:866 AppDatabase.py:1232 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:222 -msgid "Spindle Speed" -msgstr "Velocidade do Spindle" - -#: AppDatabase.py:176 AppDatabase.py:868 AppDatabase.py:1247 -#: AppGUI/ObjectUI.py:843 AppGUI/ObjectUI.py:1759 -msgid "Dwell" -msgstr "Esperar Velocidade" - -#: AppDatabase.py:177 AppDatabase.py:870 AppDatabase.py:1260 -msgid "Dwelltime" -msgstr "Tempo de Espera" - -#: AppDatabase.py:178 AppDatabase.py:872 AppGUI/ObjectUI.py:1916 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:257 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:255 -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:237 -#: AppTools/ToolSolderPaste.py:331 -msgid "Preprocessor" -msgstr "Pré-processador" - -#: AppDatabase.py:179 AppDatabase.py:874 AppDatabase.py:1375 -msgid "ExtraCut" -msgstr "Corte Extra" - -#: AppDatabase.py:180 AppDatabase.py:876 AppDatabase.py:1390 -msgid "E-Cut Length" -msgstr "Comprimento de corte extra" - -#: AppDatabase.py:181 AppDatabase.py:878 -msgid "Toolchange" -msgstr "Troca de Ferramentas" - -#: AppDatabase.py:182 AppDatabase.py:880 -msgid "Toolchange XY" -msgstr "Troca de ferramenta XY" - -#: AppDatabase.py:183 AppDatabase.py:882 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:160 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:132 -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:98 -#: AppTools/ToolCalibration.py:111 -msgid "Toolchange Z" -msgstr "Altura da Troca" - -#: AppDatabase.py:184 AppDatabase.py:884 AppGUI/ObjectUI.py:972 -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:69 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:56 -msgid "Start Z" -msgstr "Z Inicial" - -#: AppDatabase.py:185 AppDatabase.py:887 -msgid "End Z" -msgstr "Z Final" - -#: AppDatabase.py:189 -msgid "Tool Index." -msgstr "Índice da Ferramenta." - -#: AppDatabase.py:191 AppDatabase.py:1108 -msgid "" -"Tool name.\n" -"This is not used in the app, it's function\n" -"is to serve as a note for the user." -msgstr "" -"Nome da ferramenta.\n" -"Não é usado no aplicativo, sua função\n" -"é servir como uma nota para o usuário." - -#: AppDatabase.py:195 AppDatabase.py:1121 -msgid "Tool Diameter." -msgstr "Diâmetro." - -#: AppDatabase.py:197 AppDatabase.py:1302 -msgid "" -"Tool Offset.\n" -"Can be of a few types:\n" -"Path = zero offset\n" -"In = offset inside by half of tool diameter\n" -"Out = offset outside by half of tool diameter\n" -"Custom = custom offset using the Custom Offset value" -msgstr "" -"Deslocamento da Ferramenta.\n" -"Pode ser de alguns tipos:\n" -"Caminho = deslocamento zero\n" -"In = deslocamento interno, de metade do diâmetro da ferramenta\n" -"Out = deslocamento externo, de metade do diâmetro da ferramenta\n" -"Personalizado = deslocamento personalizado usando o valor de Deslocamento " -"Personalizado" - -#: AppDatabase.py:204 AppDatabase.py:1319 -msgid "" -"Custom Offset.\n" -"A value to be used as offset from the current path." -msgstr "" -"Deslocamento personalizado.\n" -"Um valor a ser usado como deslocamento do caminho atual." - -#: AppDatabase.py:207 AppDatabase.py:1286 -msgid "" -"Tool Type.\n" -"Can be:\n" -"Iso = isolation cut\n" -"Rough = rough cut, low feedrate, multiple passes\n" -"Finish = finishing cut, high feedrate" -msgstr "" -"Tipo de ferramenta.\n" -"Pode ser:\n" -"ISO = corte de isolação\n" -"Desbaste = corte áspero, avanço lento, múltiplos passes\n" -"Acabamento = corte de acabamento, avanço rápido" - -#: AppDatabase.py:213 AppDatabase.py:1134 -msgid "" -"Tool Shape. \n" -"Can be:\n" -"C1 ... C4 = circular tool with x flutes\n" -"B = ball tip milling tool\n" -"V = v-shape milling tool" -msgstr "" -"Forma da ferramenta.\n" -"Pode ser:\n" -"C1 ... C4 = ferramenta circular com x canais\n" -"B = fresa com ponta esférica\n" -"V = fresa em forma de V" - -#: AppDatabase.py:219 AppDatabase.py:1150 -msgid "" -"Cutting Depth.\n" -"The depth at which to cut into material." -msgstr "" -"Profundidade de corte.\n" -"A profundidade para cortar o material." - -#: AppDatabase.py:222 AppDatabase.py:1164 -msgid "" -"Multi Depth.\n" -"Selecting this will allow cutting in multiple passes,\n" -"each pass adding a DPP parameter depth." -msgstr "" -"Multi-Profundidade.\n" -"Selecionar isso permite cortar em várias passagens,\n" -"cada passagem adicionando uma profundidade de parâmetro PPP." - -#: AppDatabase.py:226 AppDatabase.py:1177 -msgid "" -"DPP. Depth per Pass.\n" -"The value used to cut into material on each pass." -msgstr "" -"PPP. Profundidade por Passe.\n" -"Valor usado para cortar o material em cada passagem." - -#: AppDatabase.py:229 AppDatabase.py:1333 -msgid "" -"V-Dia.\n" -"Diameter of the tip for V-Shape Tools." -msgstr "" -"Dia-V.\n" -"Diâmetro da ponta das ferramentas em forma de V." - -#: AppDatabase.py:232 AppDatabase.py:1347 -msgid "" -"V-Agle.\n" -"Angle at the tip for the V-Shape Tools." -msgstr "" -"Ângulo.\n" -"Ângulo na ponta das ferramentas em forma de V." - -#: AppDatabase.py:235 AppDatabase.py:1191 -msgid "" -"Clearance Height.\n" -"Height at which the milling bit will travel between cuts,\n" -"above the surface of the material, avoiding all fixtures." -msgstr "" -"Altura da folga.\n" -"Altura na qual a broca irá se deslocar entre cortes,\n" -"acima da superfície do material, evitando todos os equipamentos." - -#: AppDatabase.py:239 -msgid "" -"FR. Feedrate\n" -"The speed on XY plane used while cutting into material." -msgstr "" -"VA. Velocidade de Avanço\n" -"A velocidade no plano XY usada ao cortar o material." - -#: AppDatabase.py:242 -msgid "" -"FR Z. Feedrate Z\n" -"The speed on Z plane." -msgstr "" -"VA Z. Velocidade de Avanço Z\n" -"A velocidade no plano Z usada ao cortar o material." - -#: AppDatabase.py:245 AppDatabase.py:1361 -msgid "" -"FR Rapids. Feedrate Rapids\n" -"Speed used while moving as fast as possible.\n" -"This is used only by some devices that can't use\n" -"the G0 g-code command. Mostly 3D printers." -msgstr "" -"VA Rápida. Velocidade de Avanço Rápida\n" -"Velocidade usada enquanto se move o mais rápido possível.\n" -"Isso é usado apenas por alguns dispositivos que não podem usar\n" -"o comando G-Code G0. Principalmente impressoras 3D." - -#: AppDatabase.py:250 AppDatabase.py:1234 -msgid "" -"Spindle Speed.\n" -"If it's left empty it will not be used.\n" -"The speed of the spindle in RPM." -msgstr "" -"Velocidade do Spindle.\n" -"Se for deixado vazio, não será usado.\n" -"Velocidade do spindle em RPM." - -#: AppDatabase.py:254 AppDatabase.py:1249 -msgid "" -"Dwell.\n" -"Check this if a delay is needed to allow\n" -"the spindle motor to reach it's set speed." -msgstr "" -"Esperar Velocidade.\n" -"Marque se é necessário um atraso para permitir\n" -"o motor do spindle atingir a velocidade definida." - -#: AppDatabase.py:258 AppDatabase.py:1262 -msgid "" -"Dwell Time.\n" -"A delay used to allow the motor spindle reach it's set speed." -msgstr "" -"Tempo de espera.\n" -"Atraso usado para permitir que o spindle atinja a velocidade definida." - -#: AppDatabase.py:261 -msgid "" -"Preprocessor.\n" -"A selection of files that will alter the generated G-code\n" -"to fit for a number of use cases." -msgstr "" -"Pré-processador.\n" -"Uma seleção de arquivos que alterarão o G-Code gerado\n" -"para caber em vários casos de uso." - -#: AppDatabase.py:265 AppDatabase.py:1377 -msgid "" -"Extra Cut.\n" -"If checked, after a isolation is finished an extra cut\n" -"will be added where the start and end of isolation meet\n" -"such as that this point is covered by this extra cut to\n" -"ensure a complete isolation." -msgstr "" -"Corte Extra.\n" -"Se marcado, após a conclusão de uma isolação, um corte extra\n" -"será adicionado no encontro entre o início e o fim da isolação,\n" -"para garantir a isolação completa." - -#: AppDatabase.py:271 AppDatabase.py:1392 -msgid "" -"Extra Cut length.\n" -"If checked, after a isolation is finished an extra cut\n" -"will be added where the start and end of isolation meet\n" -"such as that this point is covered by this extra cut to\n" -"ensure a complete isolation. This is the length of\n" -"the extra cut." -msgstr "" -"Comprimento extra de corte.\n" -"Se marcado, após a conclusão de um isolamento, um corte extra\n" -"serão adicionados onde o início e o fim do isolamento se encontrarem\n" -"tal que este ponto seja coberto por este corte extra para\n" -"garantir um isolamento completo. Este é o comprimento de\n" -"o corte extra." - -#: AppDatabase.py:278 -msgid "" -"Toolchange.\n" -"It will create a toolchange event.\n" -"The kind of toolchange is determined by\n" -"the preprocessor file." -msgstr "" -"Troca de ferramentas.\n" -"Será criado um evento de mudança de ferramenta.\n" -"O tipo de troca de ferramentas é determinado pelo\n" -"arquivo do pré-processador." - -#: AppDatabase.py:283 -msgid "" -"Toolchange XY.\n" -"A set of coordinates in the format (x, y).\n" -"Will determine the cartesian position of the point\n" -"where the tool change event take place." -msgstr "" -"Troca de ferramentas XY.\n" -"Um conjunto de coordenadas no formato (x, y).\n" -"Determina a posição cartesiana do ponto\n" -"onde o evento de troca da ferramenta ocorre." - -#: AppDatabase.py:288 -msgid "" -"Toolchange Z.\n" -"The position on Z plane where the tool change event take place." -msgstr "" -"Altura da Troca.\n" -"A posição no plano Z onde o evento de troca da ferramenta ocorre." - -#: AppDatabase.py:291 -msgid "" -"Start Z.\n" -"If it's left empty it will not be used.\n" -"A position on Z plane to move immediately after job start." -msgstr "" -"Z Inicial.\n" -"Se for deixado vazio, não será usado.\n" -"Posição no plano Z para mover-se imediatamente após o início do trabalho." - -#: AppDatabase.py:295 -msgid "" -"End Z.\n" -"A position on Z plane to move immediately after job stop." -msgstr "" -"Z Final.\n" -"Posição no plano Z para mover-se imediatamente após a parada do trabalho." - -#: AppDatabase.py:307 AppDatabase.py:684 AppDatabase.py:718 AppDatabase.py:2033 -#: AppDatabase.py:2298 AppDatabase.py:2332 -msgid "Could not load Tools DB file." -msgstr "Não foi possível carregar o arquivo com o banco de dados." - -#: AppDatabase.py:315 AppDatabase.py:726 AppDatabase.py:2041 -#: AppDatabase.py:2340 -msgid "Failed to parse Tools DB file." -msgstr "Falha ao analisar o arquivo com o banco de dados." - -#: AppDatabase.py:318 AppDatabase.py:729 AppDatabase.py:2044 -#: AppDatabase.py:2343 -#, fuzzy -#| msgid "Loaded FlatCAM Tools DB from" -msgid "Loaded Tools DB from" -msgstr "Carregado o BD de Ferramentas FlatCAM de" - -#: AppDatabase.py:324 AppDatabase.py:1958 -msgid "Add to DB" -msgstr "Adicionar ao BD" - -#: AppDatabase.py:326 AppDatabase.py:1961 -msgid "Copy from DB" -msgstr "Copiar do BD" - -#: AppDatabase.py:328 AppDatabase.py:1964 -msgid "Delete from DB" -msgstr "Excluir do BD" - -#: AppDatabase.py:605 AppDatabase.py:2198 -msgid "Tool added to DB." -msgstr "Ferramenta adicionada ao BD." - -#: AppDatabase.py:626 AppDatabase.py:2231 -msgid "Tool copied from Tools DB." -msgstr "A ferramenta foi copiada do BD." - -#: AppDatabase.py:644 AppDatabase.py:2258 -msgid "Tool removed from Tools DB." -msgstr "Ferramenta(s) excluída(s) do BD." - -#: AppDatabase.py:655 AppDatabase.py:2269 -msgid "Export Tools Database" -msgstr "Exportar Banco de Dados de Ferramentas" - -#: AppDatabase.py:658 AppDatabase.py:2272 -msgid "Tools_Database" -msgstr "Tools_Database" - -#: AppDatabase.py:665 AppDatabase.py:711 AppDatabase.py:2279 -#: AppDatabase.py:2325 AppEditors/FlatCAMExcEditor.py:1023 -#: AppEditors/FlatCAMExcEditor.py:1091 AppEditors/FlatCAMTextEditor.py:223 -#: AppGUI/MainGUI.py:2730 AppGUI/MainGUI.py:2952 AppGUI/MainGUI.py:3167 -#: AppObjects/ObjectCollection.py:127 AppTools/ToolFilm.py:739 -#: AppTools/ToolFilm.py:885 AppTools/ToolImage.py:247 AppTools/ToolMove.py:269 -#: AppTools/ToolPcbWizard.py:301 AppTools/ToolPcbWizard.py:324 -#: AppTools/ToolQRCode.py:800 AppTools/ToolQRCode.py:847 App_Main.py:1710 -#: App_Main.py:2451 App_Main.py:2487 App_Main.py:2534 App_Main.py:4100 -#: App_Main.py:6610 App_Main.py:6649 App_Main.py:6693 App_Main.py:6722 -#: App_Main.py:6763 App_Main.py:6788 App_Main.py:6844 App_Main.py:6880 -#: App_Main.py:6925 App_Main.py:6966 App_Main.py:7008 App_Main.py:7050 -#: App_Main.py:7091 App_Main.py:7135 App_Main.py:7195 App_Main.py:7227 -#: App_Main.py:7259 App_Main.py:7490 App_Main.py:7528 App_Main.py:7571 -#: App_Main.py:7648 App_Main.py:7703 Bookmark.py:300 Bookmark.py:342 -msgid "Cancelled." -msgstr "Cancelado." - -#: AppDatabase.py:673 AppDatabase.py:2287 AppEditors/FlatCAMTextEditor.py:276 -#: AppObjects/FlatCAMCNCJob.py:959 AppTools/ToolFilm.py:1016 -#: AppTools/ToolFilm.py:1197 AppTools/ToolSolderPaste.py:1542 App_Main.py:2542 -#: App_Main.py:7947 App_Main.py:7995 App_Main.py:8120 App_Main.py:8256 -#: Bookmark.py:308 -msgid "" -"Permission denied, saving not possible.\n" -"Most likely another app is holding the file open and not accessible." -msgstr "" -"Permissão negada, não é possível salvar.\n" -"É provável que outro aplicativo esteja mantendo o arquivo aberto e não " -"acessível." - -#: AppDatabase.py:695 AppDatabase.py:698 AppDatabase.py:750 AppDatabase.py:2309 -#: AppDatabase.py:2312 AppDatabase.py:2365 -msgid "Failed to write Tools DB to file." -msgstr "Falha ao gravar no arquivo." - -#: AppDatabase.py:701 AppDatabase.py:2315 -msgid "Exported Tools DB to" -msgstr "Banco de Dados exportado para" - -#: AppDatabase.py:708 AppDatabase.py:2322 -msgid "Import FlatCAM Tools DB" -msgstr "Importar Banco de Dados de Ferramentas do FlatCAM" - -#: AppDatabase.py:740 AppDatabase.py:915 AppDatabase.py:2354 -#: AppDatabase.py:2624 AppObjects/FlatCAMGeometry.py:956 -#: AppTools/ToolIsolation.py:2909 AppTools/ToolIsolation.py:2994 -#: AppTools/ToolNCC.py:4029 AppTools/ToolNCC.py:4113 AppTools/ToolPaint.py:3578 -#: AppTools/ToolPaint.py:3663 App_Main.py:5233 App_Main.py:5267 -#: App_Main.py:5294 App_Main.py:5314 App_Main.py:5324 -msgid "Tools Database" -msgstr "Banco de Dados de Ferramentas" - -#: AppDatabase.py:754 AppDatabase.py:2369 -msgid "Saved Tools DB." -msgstr "BD de Ferramentas Salvo." - -#: AppDatabase.py:901 AppDatabase.py:2611 -msgid "No Tool/row selected in the Tools Database table" -msgstr "" -"Nenhuma ferramenta selecionada na tabela de Banco de Dados de Ferramentas" - -#: AppDatabase.py:919 AppDatabase.py:2628 -msgid "Cancelled adding tool from DB." -msgstr "Adição de ferramenta do BD cancelada." - -#: AppDatabase.py:1020 -msgid "Basic Geo Parameters" -msgstr "Parâmetros Básicos de Geo" - -#: AppDatabase.py:1032 -msgid "Advanced Geo Parameters" -msgstr "Parâmetros Avançados de Geo" - -#: AppDatabase.py:1045 -msgid "NCC Parameters" -msgstr "Parâmetros NCC" - -#: AppDatabase.py:1058 -msgid "Paint Parameters" -msgstr "Parâmetros de Pintura" - -#: AppDatabase.py:1071 -#, fuzzy -#| msgid "Paint Parameters" -msgid "Isolation Parameters" -msgstr "Parâmetros de Pintura" - -#: AppDatabase.py:1204 AppGUI/ObjectUI.py:746 AppGUI/ObjectUI.py:1671 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:186 -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:148 -#: AppTools/ToolSolderPaste.py:249 -msgid "Feedrate X-Y" -msgstr "Avanço X-Y" - -#: AppDatabase.py:1206 -msgid "" -"Feedrate X-Y. Feedrate\n" -"The speed on XY plane used while cutting into material." -msgstr "" -"Velocidade de Avanço X-Y\n" -"A velocidade no plano XY usada ao cortar o material." - -#: AppDatabase.py:1218 AppGUI/ObjectUI.py:761 AppGUI/ObjectUI.py:1685 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:207 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:201 -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:161 -#: AppTools/ToolSolderPaste.py:261 -msgid "Feedrate Z" -msgstr "Taxa de Avanço Z" - -#: AppDatabase.py:1220 -msgid "" -"Feedrate Z\n" -"The speed on Z plane." -msgstr "" -"Velocidade de Avanço Z\n" -"A velocidade no plano Z." - -#: AppDatabase.py:1418 AppGUI/ObjectUI.py:624 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:46 -#: AppTools/ToolNCC.py:341 -msgid "Operation" -msgstr "Operação" - -#: AppDatabase.py:1420 AppTools/ToolNCC.py:343 -msgid "" -"The 'Operation' can be:\n" -"- Isolation -> will ensure that the non-copper clearing is always complete.\n" -"If it's not successful then the non-copper clearing will fail, too.\n" -"- Clear -> the regular non-copper clearing." -msgstr "" -"A 'Operação' pode ser:\n" -"- Isolação -> garantirá que a retirada de cobre seja completa.\n" -"Se não for bem-sucedida, a retirada de cobre também falhará.\n" -"- Limpar -> retirada de cobre padrão." - -#: AppDatabase.py:1427 AppEditors/FlatCAMGrbEditor.py:2749 -#: AppGUI/GUIElements.py:2754 AppTools/ToolNCC.py:350 -msgid "Clear" -msgstr "Limpar" - -#: AppDatabase.py:1428 AppTools/ToolNCC.py:351 -msgid "Isolation" -msgstr "Isolação" - -#: AppDatabase.py:1436 AppDatabase.py:1682 AppGUI/ObjectUI.py:646 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:62 -#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:56 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:182 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:137 -#: AppTools/ToolIsolation.py:351 AppTools/ToolNCC.py:359 -msgid "Milling Type" -msgstr "Tipo de Fresamento" - -#: AppDatabase.py:1438 AppDatabase.py:1446 AppDatabase.py:1684 -#: AppDatabase.py:1692 AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:184 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:192 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:139 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:147 -#: AppTools/ToolIsolation.py:353 AppTools/ToolIsolation.py:361 -#: AppTools/ToolNCC.py:361 AppTools/ToolNCC.py:369 -msgid "" -"Milling type when the selected tool is of type: 'iso_op':\n" -"- climb / best for precision milling and to reduce tool usage\n" -"- conventional / useful when there is no backlash compensation" -msgstr "" -"Tipo de fresamento quando a ferramenta selecionada é do tipo 'iso_op':\n" -"- subida: melhor para fresamento de precisão e para reduzir o uso da " -"ferramenta\n" -"- convencional: útil quando não há compensação de folga" - -#: AppDatabase.py:1443 AppDatabase.py:1689 -#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:62 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:189 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:144 -#: AppTools/ToolIsolation.py:358 AppTools/ToolNCC.py:366 -msgid "Climb" -msgstr "Subida" - -#: AppDatabase.py:1444 AppDatabase.py:1690 -#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:63 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:190 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:145 -#: AppTools/ToolIsolation.py:359 AppTools/ToolNCC.py:367 -msgid "Conventional" -msgstr "Convencional" - -#: AppDatabase.py:1456 AppDatabase.py:1565 AppDatabase.py:1667 -#: AppEditors/FlatCAMGeoEditor.py:450 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:167 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:182 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:163 -#: AppTools/ToolIsolation.py:336 AppTools/ToolNCC.py:382 -#: AppTools/ToolPaint.py:328 -msgid "Overlap" -msgstr "Sobreposição" - -#: AppDatabase.py:1458 AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:184 -#: AppTools/ToolNCC.py:384 -msgid "" -"How much (percentage) of the tool width to overlap each tool pass.\n" -"Adjust the value starting with lower values\n" -"and increasing it if areas that should be cleared are still \n" -"not cleared.\n" -"Lower values = faster processing, faster execution on CNC.\n" -"Higher values = slow processing and slow execution on CNC\n" -"due of too many paths." -msgstr "" -"Quanto da largura da ferramenta (percentual) é sobreposto em cada passagem " -"da ferramenta.\n" -"Ajuste o valor começando com valores menores, e aumente se alguma área que \n" -"deveria ser limpa não foi limpa.\n" -"Valores menores = processamento mais rápido, execução mais rápida no CNC. \n" -"Valores maiores = processamento lento e execução lenta no CNC devido\n" -"ao número de caminhos." - -#: AppDatabase.py:1477 AppDatabase.py:1586 AppEditors/FlatCAMGeoEditor.py:470 -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:72 -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:229 -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:59 -#: AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py:45 -#: AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py:53 -#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:66 -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:115 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:202 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:183 -#: AppTools/ToolCopperThieving.py:115 AppTools/ToolCopperThieving.py:366 -#: AppTools/ToolCorners.py:149 AppTools/ToolCutOut.py:190 -#: AppTools/ToolFiducials.py:175 AppTools/ToolInvertGerber.py:91 -#: AppTools/ToolInvertGerber.py:99 AppTools/ToolNCC.py:403 -#: AppTools/ToolPaint.py:349 -msgid "Margin" -msgstr "Margem" - -#: AppDatabase.py:1479 -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:74 -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:61 -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:125 -#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:68 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:204 -#: AppTools/ToolCopperThieving.py:117 AppTools/ToolCorners.py:151 -#: AppTools/ToolFiducials.py:177 AppTools/ToolNCC.py:405 -msgid "Bounding box margin." -msgstr "Margem da caixa delimitadora." - -#: AppDatabase.py:1490 AppDatabase.py:1601 AppEditors/FlatCAMGeoEditor.py:484 -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:105 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:106 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:215 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:198 -#: AppTools/ToolExtractDrills.py:128 AppTools/ToolNCC.py:416 -#: AppTools/ToolPaint.py:364 AppTools/ToolPunchGerber.py:139 -msgid "Method" -msgstr "Método" - -#: AppDatabase.py:1492 AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:217 -#: AppTools/ToolNCC.py:418 -msgid "" -"Algorithm for copper clearing:\n" -"- Standard: Fixed step inwards.\n" -"- Seed-based: Outwards from seed.\n" -"- Line-based: Parallel lines." -msgstr "" -"Algoritmo para retirada de cobre:\n" -"- Padrão: Passo fixo para dentro.\n" -"- Baseado em semente: Para fora a partir de uma semente.\n" -"- Linhas retas: Linhas paralelas." - -#: AppDatabase.py:1500 AppDatabase.py:1615 AppEditors/FlatCAMGeoEditor.py:498 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:230 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217 -#: AppTools/ToolNCC.py:431 AppTools/ToolNCC.py:2232 AppTools/ToolNCC.py:2764 -#: AppTools/ToolNCC.py:2796 AppTools/ToolPaint.py:389 -#: AppTools/ToolPaint.py:1859 tclCommands/TclCommandCopperClear.py:126 -#: tclCommands/TclCommandCopperClear.py:134 tclCommands/TclCommandPaint.py:125 -msgid "Standard" -msgstr "Padrão" - -#: AppDatabase.py:1500 AppDatabase.py:1615 AppEditors/FlatCAMGeoEditor.py:498 -#: AppEditors/FlatCAMGeoEditor.py:568 AppEditors/FlatCAMGeoEditor.py:5148 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:230 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217 -#: AppTools/ToolNCC.py:431 AppTools/ToolNCC.py:2243 AppTools/ToolNCC.py:2770 -#: AppTools/ToolNCC.py:2802 AppTools/ToolPaint.py:389 -#: AppTools/ToolPaint.py:1873 defaults.py:413 defaults.py:445 -#: tclCommands/TclCommandCopperClear.py:128 -#: tclCommands/TclCommandCopperClear.py:136 tclCommands/TclCommandPaint.py:127 -msgid "Seed" -msgstr "Semente" - -#: AppDatabase.py:1500 AppDatabase.py:1615 AppEditors/FlatCAMGeoEditor.py:498 -#: AppEditors/FlatCAMGeoEditor.py:5152 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:230 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217 -#: AppTools/ToolNCC.py:431 AppTools/ToolNCC.py:2254 AppTools/ToolPaint.py:389 -#: AppTools/ToolPaint.py:698 AppTools/ToolPaint.py:1887 -#: tclCommands/TclCommandCopperClear.py:130 tclCommands/TclCommandPaint.py:129 -msgid "Lines" -msgstr "Linhas" - -#: AppDatabase.py:1500 AppDatabase.py:1615 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:230 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217 -#: AppTools/ToolNCC.py:431 AppTools/ToolNCC.py:2265 AppTools/ToolPaint.py:389 -#: AppTools/ToolPaint.py:2052 tclCommands/TclCommandPaint.py:133 -msgid "Combo" -msgstr "Combo" - -#: AppDatabase.py:1508 AppDatabase.py:1626 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:237 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:224 -#: AppTools/ToolNCC.py:439 AppTools/ToolPaint.py:400 -msgid "Connect" -msgstr "Conectar" - -#: AppDatabase.py:1512 AppDatabase.py:1629 AppEditors/FlatCAMGeoEditor.py:507 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:239 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:226 -#: AppTools/ToolNCC.py:443 AppTools/ToolPaint.py:403 -msgid "" -"Draw lines between resulting\n" -"segments to minimize tool lifts." -msgstr "" -"Desenha linhas entre os segmentos resultantes\n" -"para minimizar as elevações de ferramentas." - -#: AppDatabase.py:1518 AppDatabase.py:1633 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:246 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:232 -#: AppTools/ToolNCC.py:449 AppTools/ToolPaint.py:407 -msgid "Contour" -msgstr "Contorno" - -#: AppDatabase.py:1522 AppDatabase.py:1636 AppEditors/FlatCAMGeoEditor.py:517 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:248 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:234 -#: AppTools/ToolNCC.py:453 AppTools/ToolPaint.py:410 -msgid "" -"Cut around the perimeter of the polygon\n" -"to trim rough edges." -msgstr "Corta no perímetro do polígono para retirar as arestas." - -#: AppDatabase.py:1528 AppEditors/FlatCAMGeoEditor.py:611 -#: AppEditors/FlatCAMGrbEditor.py:5305 AppGUI/ObjectUI.py:143 -#: AppGUI/ObjectUI.py:1394 AppGUI/ObjectUI.py:2256 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:255 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:142 -#: AppTools/ToolEtchCompensation.py:199 AppTools/ToolEtchCompensation.py:207 -#: AppTools/ToolNCC.py:459 AppTools/ToolTransform.py:28 -msgid "Offset" -msgstr "Deslocar" - -#: AppDatabase.py:1532 AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:257 -#: AppTools/ToolNCC.py:463 -msgid "" -"If used, it will add an offset to the copper features.\n" -"The copper clearing will finish to a distance\n" -"from the copper features.\n" -"The value can be between 0 and 10 FlatCAM units." -msgstr "" -"Se usado, será adicionado um deslocamento aos recursos de cobre.\n" -"A retirada de cobre terminará a uma distância dos recursos de cobre.\n" -"O valor pode estar entre 0 e 10 unidades FlatCAM." - -#: AppDatabase.py:1567 AppEditors/FlatCAMGeoEditor.py:452 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:165 -#: AppTools/ToolPaint.py:330 -msgid "" -"How much (percentage) of the tool width to overlap each tool pass.\n" -"Adjust the value starting with lower values\n" -"and increasing it if areas that should be painted are still \n" -"not painted.\n" -"Lower values = faster processing, faster execution on CNC.\n" -"Higher values = slow processing and slow execution on CNC\n" -"due of too many paths." -msgstr "" -"Quanto da largura da ferramenta (percentual) é sobreposto em cada passagem " -"da ferramenta.\n" -"Ajuste o valor começando com valores menores, e aumente se alguma área que \n" -"deveria ser pintada não foi pintada.\n" -"Valores menores = processamento mais rápido, execução mais rápida no CNC. \n" -"Valores maiores = processamento lento e execução lenta no CNC \n" -"devido ao número de caminhos." - -#: AppDatabase.py:1588 AppEditors/FlatCAMGeoEditor.py:472 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:185 -#: AppTools/ToolPaint.py:351 -msgid "" -"Distance by which to avoid\n" -"the edges of the polygon to\n" -"be painted." -msgstr "" -"Distância pela qual evitar \n" -"as bordas do polígono para \n" -"ser pintado." - -#: AppDatabase.py:1603 AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:200 -#: AppTools/ToolPaint.py:366 -msgid "" -"Algorithm for painting:\n" -"- Standard: Fixed step inwards.\n" -"- Seed-based: Outwards from seed.\n" -"- Line-based: Parallel lines.\n" -"- Laser-lines: Active only for Gerber objects.\n" -"Will create lines that follow the traces.\n" -"- Combo: In case of failure a new method will be picked from the above\n" -"in the order specified." -msgstr "" -"Algoritmo para pintura:\n" -"- Padrão: Passo fixo para dentro.\n" -"- Baseado em semente: Para fora a partir de uma semente.\n" -"- Linhas retas: Linhas paralelas.\n" -"- Linhas laser: Ativa apenas para objetos Gerber.\n" -"Criará linhas que seguem os traços.\n" -"- Combo: em caso de falha, um novo método será escolhido dentre os itens " -"acima na ordem especificada." - -#: AppDatabase.py:1615 AppDatabase.py:1617 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217 -#: AppTools/ToolPaint.py:389 AppTools/ToolPaint.py:391 -#: AppTools/ToolPaint.py:692 AppTools/ToolPaint.py:697 -#: AppTools/ToolPaint.py:1901 tclCommands/TclCommandPaint.py:131 -msgid "Laser_lines" -msgstr "Linhas Laser" - -#: AppDatabase.py:1654 AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:154 -#: AppTools/ToolIsolation.py:323 -#, fuzzy -#| msgid "# Passes" -msgid "Passes" -msgstr "Passes" - -#: AppDatabase.py:1656 AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:156 -#: AppTools/ToolIsolation.py:325 -msgid "" -"Width of the isolation gap in\n" -"number (integer) of tool widths." -msgstr "" -"Largura da isolação em relação à\n" -"largura da ferramenta (número inteiro)." - -#: AppDatabase.py:1669 AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:169 -#: AppTools/ToolIsolation.py:338 -msgid "How much (percentage) of the tool width to overlap each tool pass." -msgstr "" -"Quanto (percentual) da largura da ferramenta é sobreposta a cada passagem da " -"ferramenta." - -#: AppDatabase.py:1702 AppGUI/ObjectUI.py:236 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:201 -#: AppTools/ToolIsolation.py:371 -#, fuzzy -#| msgid "\"Follow\"" -msgid "Follow" -msgstr "\"Segue\"" - -#: AppDatabase.py:1704 AppDatabase.py:1710 AppGUI/ObjectUI.py:237 -#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:45 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:203 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:209 -#: AppTools/ToolIsolation.py:373 AppTools/ToolIsolation.py:379 -msgid "" -"Generate a 'Follow' geometry.\n" -"This means that it will cut through\n" -"the middle of the trace." -msgstr "" -"Gera uma geometria 'Segue'.\n" -"Isso significa que ele cortará\n" -"no meio do traço." - -#: AppDatabase.py:1719 AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:218 -#: AppTools/ToolIsolation.py:388 -msgid "Isolation Type" -msgstr "Tipo de Isolação" - -#: AppDatabase.py:1721 AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:220 -#: AppTools/ToolIsolation.py:390 -msgid "" -"Choose how the isolation will be executed:\n" -"- 'Full' -> complete isolation of polygons\n" -"- 'Ext' -> will isolate only on the outside\n" -"- 'Int' -> will isolate only on the inside\n" -"'Exterior' isolation is almost always possible\n" -"(with the right tool) but 'Interior'\n" -"isolation can be done only when there is an opening\n" -"inside of the polygon (e.g polygon is a 'doughnut' shape)." -msgstr "" -"Escolha como a isolação será executada:\n" -"- 'Completa' -> isolação completa de polígonos\n" -"- 'Ext' -> isolará apenas do lado de fora\n" -"- 'Int' -> isolará apenas por dentro\n" -"A isolação 'exterior' é quase sempre possível\n" -"(com a ferramenta certa), mas isolação \"Interior\"\n" -"pode ser feita somente quando houver uma abertura\n" -"dentro do polígono (por exemplo, o polígono é em forma de \"rosca\")." - -#: AppDatabase.py:1730 AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:75 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:229 -#: AppTools/ToolIsolation.py:399 -msgid "Full" -msgstr "Completa" - -#: AppDatabase.py:1731 AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:230 -#: AppTools/ToolIsolation.py:400 -msgid "Ext" -msgstr "Ext" - -#: AppDatabase.py:1732 AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:231 -#: AppTools/ToolIsolation.py:401 -msgid "Int" -msgstr "Int" - -#: AppDatabase.py:1755 -msgid "Add Tool in DB" -msgstr "Adicionar Ferramenta no BD" - -#: AppDatabase.py:1789 -msgid "Save DB" -msgstr "Salvar BD" - -#: AppDatabase.py:1791 -msgid "Save the Tools Database information's." -msgstr "Salve as informações do banco de dados de ferramentas." - -#: AppDatabase.py:1797 -#, fuzzy -#| msgid "" -#| "Add a new tool in the Tools Table of the\n" -#| "active Geometry object after selecting a tool\n" -#| "in the Tools Database." -msgid "" -"Insert a new tool in the Tools Table of the\n" -"object/application tool after selecting a tool\n" -"in the Tools Database." -msgstr "" -"Adiciona uma nova ferramenta na Tabela de ferramentas do\n" -"objeto geometria ativo após selecionar uma ferramenta\n" -"no banco de dados de ferramentas." - -#: AppEditors/FlatCAMExcEditor.py:50 AppEditors/FlatCAMExcEditor.py:74 -#: AppEditors/FlatCAMExcEditor.py:168 AppEditors/FlatCAMExcEditor.py:385 -#: AppEditors/FlatCAMExcEditor.py:589 AppEditors/FlatCAMGrbEditor.py:241 -#: AppEditors/FlatCAMGrbEditor.py:248 -msgid "Click to place ..." -msgstr "Clique para colocar ..." - -#: AppEditors/FlatCAMExcEditor.py:58 -msgid "To add a drill first select a tool" -msgstr "Para adicionar um furo, primeiro selecione uma ferramenta" - -#: AppEditors/FlatCAMExcEditor.py:122 -msgid "Done. Drill added." -msgstr "Feito. Furo adicionado." - -#: AppEditors/FlatCAMExcEditor.py:176 -msgid "To add an Drill Array first select a tool in Tool Table" -msgstr "" -"Para adicionar um Matriz de Furos, primeiro selecione uma ferramenta na " -"Tabela de Ferramentas" - -#: AppEditors/FlatCAMExcEditor.py:192 AppEditors/FlatCAMExcEditor.py:415 -#: AppEditors/FlatCAMExcEditor.py:636 AppEditors/FlatCAMExcEditor.py:1151 -#: AppEditors/FlatCAMExcEditor.py:1178 AppEditors/FlatCAMGrbEditor.py:471 -#: AppEditors/FlatCAMGrbEditor.py:1944 AppEditors/FlatCAMGrbEditor.py:1974 -msgid "Click on target location ..." -msgstr "Clique no local de destino ..." - -#: AppEditors/FlatCAMExcEditor.py:211 -msgid "Click on the Drill Circular Array Start position" -msgstr "Clique na posição inicial da Matriz Circular de Furos" - -#: AppEditors/FlatCAMExcEditor.py:233 AppEditors/FlatCAMExcEditor.py:677 -#: AppEditors/FlatCAMGrbEditor.py:516 -msgid "The value is not Float. Check for comma instead of dot separator." -msgstr "" -"O valor não é flutuante. Verifique se há uma vírgula em vez do ponto no " -"separador decimal." - -#: AppEditors/FlatCAMExcEditor.py:237 -msgid "The value is mistyped. Check the value" -msgstr "O valor foi digitado incorretamente. Verifique o valor" - -#: AppEditors/FlatCAMExcEditor.py:336 -msgid "Too many drills for the selected spacing angle." -msgstr "Muitos furos para o ângulo de espaçamento selecionado." - -#: AppEditors/FlatCAMExcEditor.py:354 -msgid "Done. Drill Array added." -msgstr "Matriz de Furos adicionada." - -#: AppEditors/FlatCAMExcEditor.py:394 -msgid "To add a slot first select a tool" -msgstr "Para adicionar um ranhura, primeiro selecione uma ferramenta" - -#: AppEditors/FlatCAMExcEditor.py:454 AppEditors/FlatCAMExcEditor.py:461 -#: AppEditors/FlatCAMExcEditor.py:742 AppEditors/FlatCAMExcEditor.py:749 -msgid "Value is missing or wrong format. Add it and retry." -msgstr "Valor está faltando ou formato errado. Adicione e tente novamente." - -#: AppEditors/FlatCAMExcEditor.py:559 -msgid "Done. Adding Slot completed." -msgstr "Feito. Ranhura adicionada." - -#: AppEditors/FlatCAMExcEditor.py:597 -msgid "To add an Slot Array first select a tool in Tool Table" -msgstr "" -"Para adicionar uma matriz de ranhuras, primeiro selecione uma ferramenta na " -"Tabela de Ferramentas" - -#: AppEditors/FlatCAMExcEditor.py:655 -msgid "Click on the Slot Circular Array Start position" -msgstr "Clique na posição inicial da matriz circular da ranhura" - -#: AppEditors/FlatCAMExcEditor.py:680 AppEditors/FlatCAMGrbEditor.py:519 -msgid "The value is mistyped. Check the value." -msgstr "O valor digitado está incorreto. Verifique o valor." - -#: AppEditors/FlatCAMExcEditor.py:859 -msgid "Too many Slots for the selected spacing angle." -msgstr "Muitas Ranhuras para o ângulo de espaçamento selecionado." - -#: AppEditors/FlatCAMExcEditor.py:882 -msgid "Done. Slot Array added." -msgstr "Feito. Matriz de Ranhuras adicionada." - -#: AppEditors/FlatCAMExcEditor.py:904 -msgid "Click on the Drill(s) to resize ..." -msgstr "Clique no(s) Furo(s) para redimensionar ..." - -#: AppEditors/FlatCAMExcEditor.py:934 -msgid "Resize drill(s) failed. Please enter a diameter for resize." -msgstr "" -"Redimensionar furo(s) falhou. Por favor insira um diâmetro para " -"redimensionar." - -#: AppEditors/FlatCAMExcEditor.py:1112 -msgid "Done. Drill/Slot Resize completed." -msgstr "Redimensionamento de furo/ranhura concluído." - -#: AppEditors/FlatCAMExcEditor.py:1115 -msgid "Cancelled. No drills/slots selected for resize ..." -msgstr "Cancelado. Nenhum furo/ranhura selecionado para redimensionar ..." - -#: AppEditors/FlatCAMExcEditor.py:1153 AppEditors/FlatCAMGrbEditor.py:1946 -msgid "Click on reference location ..." -msgstr "Clique no local de referência ..." - -#: AppEditors/FlatCAMExcEditor.py:1210 -msgid "Done. Drill(s) Move completed." -msgstr "Movimento do Furo realizado." - -#: AppEditors/FlatCAMExcEditor.py:1318 -msgid "Done. Drill(s) copied." -msgstr "Furo(s) copiado(s)." - -#: AppEditors/FlatCAMExcEditor.py:1557 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:26 -msgid "Excellon Editor" -msgstr "Editor Excellon" - -#: AppEditors/FlatCAMExcEditor.py:1564 AppEditors/FlatCAMGrbEditor.py:2469 -msgid "Name:" -msgstr "Nome:" - -#: AppEditors/FlatCAMExcEditor.py:1570 AppGUI/ObjectUI.py:540 -#: AppGUI/ObjectUI.py:1362 AppTools/ToolIsolation.py:118 -#: AppTools/ToolNCC.py:120 AppTools/ToolPaint.py:114 -#: AppTools/ToolSolderPaste.py:79 -msgid "Tools Table" -msgstr "Tabela de Ferramentas" - -#: AppEditors/FlatCAMExcEditor.py:1572 AppGUI/ObjectUI.py:542 -msgid "" -"Tools in this Excellon object\n" -"when are used for drilling." -msgstr "" -"Ferramentas neste objeto Excellon \n" -"quando são usadas para perfuração." - -#: AppEditors/FlatCAMExcEditor.py:1584 AppEditors/FlatCAMExcEditor.py:3041 -#: AppGUI/ObjectUI.py:560 AppObjects/FlatCAMExcellon.py:1265 -#: AppObjects/FlatCAMExcellon.py:1368 AppObjects/FlatCAMExcellon.py:1553 -#: AppTools/ToolIsolation.py:130 AppTools/ToolNCC.py:132 -#: AppTools/ToolPaint.py:127 AppTools/ToolPcbWizard.py:76 -#: AppTools/ToolProperties.py:416 AppTools/ToolProperties.py:476 -#: AppTools/ToolSolderPaste.py:90 tclCommands/TclCommandDrillcncjob.py:195 -msgid "Diameter" -msgstr "Diâmetro" - -#: AppEditors/FlatCAMExcEditor.py:1592 -msgid "Add/Delete Tool" -msgstr "Adicionar/Excluir Ferramenta" - -#: AppEditors/FlatCAMExcEditor.py:1594 -msgid "" -"Add/Delete a tool to the tool list\n" -"for this Excellon object." -msgstr "" -"Adicionar/Excluir uma ferramenta para a lista de ferramentas\n" -"para este objeto Excellon." - -#: AppEditors/FlatCAMExcEditor.py:1606 AppGUI/ObjectUI.py:1482 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:57 -msgid "Diameter for the new tool" -msgstr "Diâmetro da nova ferramenta" - -#: AppEditors/FlatCAMExcEditor.py:1616 -msgid "Add Tool" -msgstr "Adicionar Ferramenta" - -#: AppEditors/FlatCAMExcEditor.py:1618 -msgid "" -"Add a new tool to the tool list\n" -"with the diameter specified above." -msgstr "" -"Adiciona uma nova ferramenta à lista de ferramentas\n" -"com o diâmetro especificado acima." - -#: AppEditors/FlatCAMExcEditor.py:1630 -msgid "Delete Tool" -msgstr "Excluir Ferramenta" - -#: AppEditors/FlatCAMExcEditor.py:1632 -msgid "" -"Delete a tool in the tool list\n" -"by selecting a row in the tool table." -msgstr "" -"Exclui uma ferramenta da lista de ferramentas selecionando uma linha na " -"tabela de ferramentas." - -#: AppEditors/FlatCAMExcEditor.py:1650 AppGUI/MainGUI.py:4392 -msgid "Resize Drill(s)" -msgstr "Redimensionar Furo(s)" - -#: AppEditors/FlatCAMExcEditor.py:1652 -msgid "Resize a drill or a selection of drills." -msgstr "Redimensiona um furo ou uma seleção de furos." - -#: AppEditors/FlatCAMExcEditor.py:1659 -msgid "Resize Dia" -msgstr "Novo Diâmetro" - -#: AppEditors/FlatCAMExcEditor.py:1661 -msgid "Diameter to resize to." -msgstr "Novo diâmetro para redimensionar." - -#: AppEditors/FlatCAMExcEditor.py:1672 -msgid "Resize" -msgstr "Redimensionar" - -#: AppEditors/FlatCAMExcEditor.py:1674 -msgid "Resize drill(s)" -msgstr "Redimensionar furo(s)" - -#: AppEditors/FlatCAMExcEditor.py:1699 AppGUI/MainGUI.py:1514 -#: AppGUI/MainGUI.py:4391 -msgid "Add Drill Array" -msgstr "Adicionar Matriz de Furos" - -#: AppEditors/FlatCAMExcEditor.py:1701 -msgid "Add an array of drills (linear or circular array)" -msgstr "Adiciona uma matriz de furos (matriz linear ou circular)" - -#: AppEditors/FlatCAMExcEditor.py:1707 -msgid "" -"Select the type of drills array to create.\n" -"It can be Linear X(Y) or Circular" -msgstr "" -"Selecione o tipo de matriz de furos para criar.\n" -"Pode ser Linear X(Y) ou Circular" - -#: AppEditors/FlatCAMExcEditor.py:1710 AppEditors/FlatCAMExcEditor.py:1924 -#: AppEditors/FlatCAMGrbEditor.py:2782 -msgid "Linear" -msgstr "Linear" - -#: AppEditors/FlatCAMExcEditor.py:1711 AppEditors/FlatCAMExcEditor.py:1925 -#: AppEditors/FlatCAMGrbEditor.py:2783 -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:52 -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:149 -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:107 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:52 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:151 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:78 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:61 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:70 -#: AppTools/ToolExtractDrills.py:78 AppTools/ToolExtractDrills.py:201 -#: AppTools/ToolFiducials.py:223 AppTools/ToolIsolation.py:207 -#: AppTools/ToolNCC.py:221 AppTools/ToolPaint.py:203 -#: AppTools/ToolPunchGerber.py:89 AppTools/ToolPunchGerber.py:229 -msgid "Circular" -msgstr "Circular" - -#: AppEditors/FlatCAMExcEditor.py:1719 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:68 -msgid "Nr of drills" -msgstr "Nº de furos" - -#: AppEditors/FlatCAMExcEditor.py:1720 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:70 -msgid "Specify how many drills to be in the array." -msgstr "Especifique quantos furos devem estar na matriz." - -#: AppEditors/FlatCAMExcEditor.py:1738 AppEditors/FlatCAMExcEditor.py:1788 -#: AppEditors/FlatCAMExcEditor.py:1860 AppEditors/FlatCAMExcEditor.py:1953 -#: AppEditors/FlatCAMExcEditor.py:2004 AppEditors/FlatCAMGrbEditor.py:1580 -#: AppEditors/FlatCAMGrbEditor.py:2811 AppEditors/FlatCAMGrbEditor.py:2860 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:178 -msgid "Direction" -msgstr "Direção" - -#: AppEditors/FlatCAMExcEditor.py:1740 AppEditors/FlatCAMExcEditor.py:1955 -#: AppEditors/FlatCAMGrbEditor.py:2813 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:86 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:234 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:123 -msgid "" -"Direction on which the linear array is oriented:\n" -"- 'X' - horizontal axis \n" -"- 'Y' - vertical axis or \n" -"- 'Angle' - a custom angle for the array inclination" -msgstr "" -"Direção na qual a matriz linear é orientada: \n" -"- 'X' - eixo horizontal\n" -"- 'Y' - eixo vertical ou\n" -"- 'Ângulo' - um ângulo personalizado para a inclinação da matriz" - -#: AppEditors/FlatCAMExcEditor.py:1747 AppEditors/FlatCAMExcEditor.py:1869 -#: AppEditors/FlatCAMExcEditor.py:1962 AppEditors/FlatCAMGrbEditor.py:2820 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:92 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:187 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:240 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:129 -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:197 -#: AppTools/ToolFilm.py:239 -msgid "X" -msgstr "X" - -#: AppEditors/FlatCAMExcEditor.py:1748 AppEditors/FlatCAMExcEditor.py:1870 -#: AppEditors/FlatCAMExcEditor.py:1963 AppEditors/FlatCAMGrbEditor.py:2821 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:93 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:188 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:241 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:130 -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:198 -#: AppTools/ToolFilm.py:240 -msgid "Y" -msgstr "Y" - -#: AppEditors/FlatCAMExcEditor.py:1749 AppEditors/FlatCAMExcEditor.py:1766 -#: AppEditors/FlatCAMExcEditor.py:1800 AppEditors/FlatCAMExcEditor.py:1871 -#: AppEditors/FlatCAMExcEditor.py:1875 AppEditors/FlatCAMExcEditor.py:1964 -#: AppEditors/FlatCAMExcEditor.py:1982 AppEditors/FlatCAMExcEditor.py:2016 -#: AppEditors/FlatCAMGrbEditor.py:2822 AppEditors/FlatCAMGrbEditor.py:2839 -#: AppEditors/FlatCAMGrbEditor.py:2875 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:94 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:113 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:189 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:194 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:242 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:263 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:131 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:149 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:53 -#: AppTools/ToolDistance.py:120 AppTools/ToolDistanceMin.py:68 -#: AppTools/ToolTransform.py:60 -msgid "Angle" -msgstr "Ângulo" - -#: AppEditors/FlatCAMExcEditor.py:1753 AppEditors/FlatCAMExcEditor.py:1968 -#: AppEditors/FlatCAMGrbEditor.py:2826 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:100 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:248 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:137 -msgid "Pitch" -msgstr "Passo" - -#: AppEditors/FlatCAMExcEditor.py:1755 AppEditors/FlatCAMExcEditor.py:1970 -#: AppEditors/FlatCAMGrbEditor.py:2828 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:102 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:250 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:139 -msgid "Pitch = Distance between elements of the array." -msgstr "Passo = Distância entre os elementos da matriz." - -#: AppEditors/FlatCAMExcEditor.py:1768 AppEditors/FlatCAMExcEditor.py:1984 -msgid "" -"Angle at which the linear array is placed.\n" -"The precision is of max 2 decimals.\n" -"Min value is: -360 degrees.\n" -"Max value is: 360.00 degrees." -msgstr "" -"Ângulo no qual a matriz linear é colocada.\n" -"A precisão é de no máximo 2 decimais.\n" -"Valor mínimo: -360.00 graus.\n" -"Valor máximo: 360.00 graus." - -#: AppEditors/FlatCAMExcEditor.py:1789 AppEditors/FlatCAMExcEditor.py:2005 -#: AppEditors/FlatCAMGrbEditor.py:2862 -msgid "" -"Direction for circular array.Can be CW = clockwise or CCW = counter " -"clockwise." -msgstr "" -"Sentido da matriz circular. Pode ser CW = horário ou CCW = anti-horário." - -#: AppEditors/FlatCAMExcEditor.py:1796 AppEditors/FlatCAMExcEditor.py:2012 -#: AppEditors/FlatCAMGrbEditor.py:2870 -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:129 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:136 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:286 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:145 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:171 -msgid "CW" -msgstr "CW" - -#: AppEditors/FlatCAMExcEditor.py:1797 AppEditors/FlatCAMExcEditor.py:2013 -#: AppEditors/FlatCAMGrbEditor.py:2871 -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:130 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:137 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:287 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:146 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:172 -msgid "CCW" -msgstr "CCW" - -#: AppEditors/FlatCAMExcEditor.py:1801 AppEditors/FlatCAMExcEditor.py:2017 -#: AppEditors/FlatCAMGrbEditor.py:2877 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:115 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:145 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:265 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:295 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:151 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:180 -msgid "Angle at which each element in circular array is placed." -msgstr "Ângulo no qual cada elemento na matriz circular é colocado." - -#: AppEditors/FlatCAMExcEditor.py:1835 -msgid "Slot Parameters" -msgstr "Parâmetros de Ranhura" - -#: AppEditors/FlatCAMExcEditor.py:1837 -msgid "" -"Parameters for adding a slot (hole with oval shape)\n" -"either single or as an part of an array." -msgstr "" -"Parâmetros para adicionar uma ranhura (furo com forma oval),\n" -"tanto única quanto parte de uma matriz." - -#: AppEditors/FlatCAMExcEditor.py:1846 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:162 -#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:56 -#: AppTools/ToolCorners.py:136 AppTools/ToolProperties.py:559 -msgid "Length" -msgstr "Comprimento" - -#: AppEditors/FlatCAMExcEditor.py:1848 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:164 -msgid "Length = The length of the slot." -msgstr "Comprimento = o comprimento da ranhura." - -#: AppEditors/FlatCAMExcEditor.py:1862 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:180 -msgid "" -"Direction on which the slot is oriented:\n" -"- 'X' - horizontal axis \n" -"- 'Y' - vertical axis or \n" -"- 'Angle' - a custom angle for the slot inclination" -msgstr "" -"Direção na qual a ranhura é orientada:\n" -"- 'X' - eixo horizontal\n" -"- 'Y' - eixo vertical ou\n" -"- 'Angle' - um ângulo personalizado para a inclinação da ranhura" - -#: AppEditors/FlatCAMExcEditor.py:1877 -msgid "" -"Angle at which the slot is placed.\n" -"The precision is of max 2 decimals.\n" -"Min value is: -360 degrees.\n" -"Max value is: 360.00 degrees." -msgstr "" -"Ângulo no qual a ranhura é colocada.\n" -"A precisão é de no máximo 2 decimais.\n" -"Valor mínimo: -360.00 graus.\n" -"Valor máximo: 360.00 graus." - -#: AppEditors/FlatCAMExcEditor.py:1910 -msgid "Slot Array Parameters" -msgstr "Parâm. da matriz de ranhuras" - -#: AppEditors/FlatCAMExcEditor.py:1912 -msgid "Parameters for the array of slots (linear or circular array)" -msgstr "Parâmetros da matriz de ranhuras (matriz linear ou circular)" - -#: AppEditors/FlatCAMExcEditor.py:1921 -msgid "" -"Select the type of slot array to create.\n" -"It can be Linear X(Y) or Circular" -msgstr "" -"Selecione o tipo de matriz de ranhuras para criar.\n" -"Pode ser Linear X(Y) ou Circular" - -#: AppEditors/FlatCAMExcEditor.py:1933 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:219 -msgid "Nr of slots" -msgstr "Nº de ranhuras" - -#: AppEditors/FlatCAMExcEditor.py:1934 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:221 -msgid "Specify how many slots to be in the array." -msgstr "Especifique o número de ranhuras da matriz." - -#: AppEditors/FlatCAMExcEditor.py:2452 AppObjects/FlatCAMExcellon.py:433 -msgid "Total Drills" -msgstr "N° Furos" - -#: AppEditors/FlatCAMExcEditor.py:2484 AppObjects/FlatCAMExcellon.py:464 -msgid "Total Slots" -msgstr "N° Ranhuras" - -#: AppEditors/FlatCAMExcEditor.py:2559 AppEditors/FlatCAMGeoEditor.py:1075 -#: AppEditors/FlatCAMGeoEditor.py:1116 AppEditors/FlatCAMGeoEditor.py:1144 -#: AppEditors/FlatCAMGeoEditor.py:1172 AppEditors/FlatCAMGeoEditor.py:1216 -#: AppEditors/FlatCAMGeoEditor.py:1251 AppEditors/FlatCAMGeoEditor.py:1279 -#: AppObjects/FlatCAMGeometry.py:664 AppObjects/FlatCAMGeometry.py:1099 -#: AppObjects/FlatCAMGeometry.py:1841 AppObjects/FlatCAMGeometry.py:2491 -#: AppTools/ToolIsolation.py:1493 AppTools/ToolNCC.py:1516 -#: AppTools/ToolPaint.py:1268 AppTools/ToolPaint.py:1439 -#: AppTools/ToolSolderPaste.py:891 AppTools/ToolSolderPaste.py:964 -msgid "Wrong value format entered, use a number." -msgstr "Formato incorreto, use um número." - -#: AppEditors/FlatCAMExcEditor.py:2570 -msgid "" -"Tool already in the original or actual tool list.\n" -"Save and reedit Excellon if you need to add this tool. " -msgstr "" -"Ferramenta já na lista de ferramentas original ou atual.\n" -"Salve e reedite Excellon se precisar adicionar essa ferramenta. " - -#: AppEditors/FlatCAMExcEditor.py:2579 AppGUI/MainGUI.py:3364 -msgid "Added new tool with dia" -msgstr "Adicionada nova ferramenta com diâmetro" - -#: AppEditors/FlatCAMExcEditor.py:2612 -msgid "Select a tool in Tool Table" -msgstr "Selecione uma ferramenta na Tabela de Ferramentas" - -#: AppEditors/FlatCAMExcEditor.py:2642 -msgid "Deleted tool with diameter" -msgstr "Ferramenta excluída com diâmetro" - -#: AppEditors/FlatCAMExcEditor.py:2790 -msgid "Done. Tool edit completed." -msgstr "Edição de ferramenta concluída." - -#: AppEditors/FlatCAMExcEditor.py:3327 -msgid "There are no Tools definitions in the file. Aborting Excellon creation." -msgstr "" -"Não há definições de ferramentas no arquivo. Abortando a criação do Excellon." - -#: AppEditors/FlatCAMExcEditor.py:3331 -msgid "An internal error has ocurred. See Shell.\n" -msgstr "Ocorreu um erro interno. Veja shell (linha de comando).\n" - -#: AppEditors/FlatCAMExcEditor.py:3336 -msgid "Creating Excellon." -msgstr "Criando Excellon." - -#: AppEditors/FlatCAMExcEditor.py:3350 -msgid "Excellon editing finished." -msgstr "Edição de Excellon concluída." - -#: AppEditors/FlatCAMExcEditor.py:3367 -msgid "Cancelled. There is no Tool/Drill selected" -msgstr "Cancelado. Não há ferramenta/broca selecionada" - -#: AppEditors/FlatCAMExcEditor.py:3601 AppEditors/FlatCAMExcEditor.py:3609 -#: AppEditors/FlatCAMGeoEditor.py:4343 AppEditors/FlatCAMGeoEditor.py:4357 -#: AppEditors/FlatCAMGrbEditor.py:1085 AppEditors/FlatCAMGrbEditor.py:1312 -#: AppEditors/FlatCAMGrbEditor.py:1497 AppEditors/FlatCAMGrbEditor.py:1766 -#: AppEditors/FlatCAMGrbEditor.py:4609 AppEditors/FlatCAMGrbEditor.py:4626 -#: AppGUI/MainGUI.py:2711 AppGUI/MainGUI.py:2723 -#: AppTools/ToolAlignObjects.py:393 AppTools/ToolAlignObjects.py:415 -#: App_Main.py:4677 App_Main.py:4831 -msgid "Done." -msgstr "Pronto." - -#: AppEditors/FlatCAMExcEditor.py:3984 -msgid "Done. Drill(s) deleted." -msgstr "Furo(s) excluída(s)." - -#: AppEditors/FlatCAMExcEditor.py:4057 AppEditors/FlatCAMExcEditor.py:4067 -#: AppEditors/FlatCAMGrbEditor.py:5057 -msgid "Click on the circular array Center position" -msgstr "Clique na posição central da matriz circular" - -#: AppEditors/FlatCAMGeoEditor.py:84 -msgid "Buffer distance:" -msgstr "Distância do buffer:" - -#: AppEditors/FlatCAMGeoEditor.py:85 -msgid "Buffer corner:" -msgstr "Canto do buffer:" - -#: AppEditors/FlatCAMGeoEditor.py:87 -msgid "" -"There are 3 types of corners:\n" -" - 'Round': the corner is rounded for exterior buffer.\n" -" - 'Square': the corner is met in a sharp angle for exterior buffer.\n" -" - 'Beveled': the corner is a line that directly connects the features " -"meeting in the corner" -msgstr "" -"Existem 3 tipos de cantos:\n" -"- 'Redondo': o canto é arredondado para buffer externo.\n" -"- 'Quadrado:' o canto é em um ângulo agudo para buffer externo.\n" -"- 'Chanfrado:' o canto é uma linha que conecta diretamente os recursos " -"encontrados no canto" - -#: AppEditors/FlatCAMGeoEditor.py:93 AppEditors/FlatCAMGrbEditor.py:2638 -msgid "Round" -msgstr "Redondo" - -#: AppEditors/FlatCAMGeoEditor.py:94 AppEditors/FlatCAMGrbEditor.py:2639 -#: AppGUI/ObjectUI.py:1149 AppGUI/ObjectUI.py:2004 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:225 -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:68 -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:175 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:68 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:177 -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:143 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:298 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:327 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:291 -#: AppTools/ToolExtractDrills.py:94 AppTools/ToolExtractDrills.py:227 -#: AppTools/ToolIsolation.py:545 AppTools/ToolNCC.py:583 -#: AppTools/ToolPaint.py:526 AppTools/ToolPunchGerber.py:105 -#: AppTools/ToolPunchGerber.py:255 AppTools/ToolQRCode.py:207 -msgid "Square" -msgstr "Quadrado" - -#: AppEditors/FlatCAMGeoEditor.py:95 AppEditors/FlatCAMGrbEditor.py:2640 -msgid "Beveled" -msgstr "Chanfrado" - -#: AppEditors/FlatCAMGeoEditor.py:102 -msgid "Buffer Interior" -msgstr "Buffer Interior" - -#: AppEditors/FlatCAMGeoEditor.py:104 -msgid "Buffer Exterior" -msgstr "Buffer Exterior" - -#: AppEditors/FlatCAMGeoEditor.py:110 -msgid "Full Buffer" -msgstr "Buffer Completo" - -#: AppEditors/FlatCAMGeoEditor.py:131 AppEditors/FlatCAMGeoEditor.py:3016 -#: AppGUI/MainGUI.py:4301 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:191 -msgid "Buffer Tool" -msgstr "Ferramenta Buffer" - -#: AppEditors/FlatCAMGeoEditor.py:143 AppEditors/FlatCAMGeoEditor.py:160 -#: AppEditors/FlatCAMGeoEditor.py:177 AppEditors/FlatCAMGeoEditor.py:3035 -#: AppEditors/FlatCAMGeoEditor.py:3063 AppEditors/FlatCAMGeoEditor.py:3091 -#: AppEditors/FlatCAMGrbEditor.py:5110 -msgid "Buffer distance value is missing or wrong format. Add it and retry." -msgstr "" -"O valor da distância do buffer está ausente ou em formato incorreto. Altere " -"e tente novamente." - -#: AppEditors/FlatCAMGeoEditor.py:241 -msgid "Font" -msgstr "Fonte" - -#: AppEditors/FlatCAMGeoEditor.py:322 AppGUI/MainGUI.py:1452 -msgid "Text" -msgstr "Texto" - -#: AppEditors/FlatCAMGeoEditor.py:348 -msgid "Text Tool" -msgstr "Ferramenta de Texto" - -#: AppEditors/FlatCAMGeoEditor.py:404 AppGUI/MainGUI.py:502 -#: AppGUI/MainGUI.py:1199 AppGUI/ObjectUI.py:597 AppGUI/ObjectUI.py:1564 -#: AppObjects/FlatCAMExcellon.py:852 AppObjects/FlatCAMExcellon.py:1242 -#: AppObjects/FlatCAMGeometry.py:825 AppTools/ToolIsolation.py:313 -#: AppTools/ToolIsolation.py:1171 AppTools/ToolNCC.py:331 -#: AppTools/ToolNCC.py:797 AppTools/ToolPaint.py:313 AppTools/ToolPaint.py:766 -msgid "Tool" -msgstr "Ferramenta" - -#: AppEditors/FlatCAMGeoEditor.py:438 -msgid "Tool dia" -msgstr "Diâmetro da Ferramenta" - -#: AppEditors/FlatCAMGeoEditor.py:440 -msgid "Diameter of the tool to be used in the operation." -msgstr "Diâmetro da ferramenta para usar na operação." - -#: AppEditors/FlatCAMGeoEditor.py:486 -msgid "" -"Algorithm to paint the polygons:\n" -"- Standard: Fixed step inwards.\n" -"- Seed-based: Outwards from seed.\n" -"- Line-based: Parallel lines." -msgstr "" -"Algoritmo para pintura:\n" -"- Padrão: Passo fixo para dentro.\n" -"- Baseado em semeste: Para fora a partir de uma semente.\n" -"- Linhas retas: Linhas paralelas." - -#: AppEditors/FlatCAMGeoEditor.py:505 -msgid "Connect:" -msgstr "Conectar:" - -#: AppEditors/FlatCAMGeoEditor.py:515 -msgid "Contour:" -msgstr "Contorno:" - -#: AppEditors/FlatCAMGeoEditor.py:528 AppGUI/MainGUI.py:1456 -msgid "Paint" -msgstr "Pintura" - -#: AppEditors/FlatCAMGeoEditor.py:546 AppGUI/MainGUI.py:912 -#: AppGUI/MainGUI.py:1944 AppGUI/ObjectUI.py:2069 AppTools/ToolPaint.py:42 -#: AppTools/ToolPaint.py:737 -msgid "Paint Tool" -msgstr "Ferramenta de Pintura" - -#: AppEditors/FlatCAMGeoEditor.py:582 AppEditors/FlatCAMGeoEditor.py:1054 -#: AppEditors/FlatCAMGeoEditor.py:3023 AppEditors/FlatCAMGeoEditor.py:3051 -#: AppEditors/FlatCAMGeoEditor.py:3079 AppEditors/FlatCAMGeoEditor.py:4496 -#: AppEditors/FlatCAMGrbEditor.py:5761 -msgid "Cancelled. No shape selected." -msgstr "Cancelado. Nenhuma forma selecionada." - -#: AppEditors/FlatCAMGeoEditor.py:595 AppEditors/FlatCAMGeoEditor.py:3041 -#: AppEditors/FlatCAMGeoEditor.py:3069 AppEditors/FlatCAMGeoEditor.py:3097 -#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:69 -#: AppTools/ToolProperties.py:117 AppTools/ToolProperties.py:162 -msgid "Tools" -msgstr "Ferramentas" - -#: AppEditors/FlatCAMGeoEditor.py:606 AppEditors/FlatCAMGeoEditor.py:990 -#: AppEditors/FlatCAMGrbEditor.py:5300 AppEditors/FlatCAMGrbEditor.py:5697 -#: AppGUI/MainGUI.py:935 AppGUI/MainGUI.py:1967 AppTools/ToolTransform.py:460 -msgid "Transform Tool" -msgstr "Ferramenta Transformar" - -#: AppEditors/FlatCAMGeoEditor.py:607 AppEditors/FlatCAMGeoEditor.py:672 -#: AppEditors/FlatCAMGrbEditor.py:5301 AppEditors/FlatCAMGrbEditor.py:5366 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:45 -#: AppTools/ToolTransform.py:24 AppTools/ToolTransform.py:466 -msgid "Rotate" -msgstr "Girar" - -#: AppEditors/FlatCAMGeoEditor.py:608 AppEditors/FlatCAMGrbEditor.py:5302 -#: AppTools/ToolTransform.py:25 -msgid "Skew/Shear" -msgstr "Inclinar" - -#: AppEditors/FlatCAMGeoEditor.py:609 AppEditors/FlatCAMGrbEditor.py:2687 -#: AppEditors/FlatCAMGrbEditor.py:5303 AppGUI/MainGUI.py:1057 -#: AppGUI/MainGUI.py:1499 AppGUI/MainGUI.py:2089 AppGUI/MainGUI.py:4513 -#: AppGUI/ObjectUI.py:125 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:95 -#: AppTools/ToolTransform.py:26 -msgid "Scale" -msgstr "Redimensionar" - -#: AppEditors/FlatCAMGeoEditor.py:610 AppEditors/FlatCAMGrbEditor.py:5304 -#: AppTools/ToolTransform.py:27 -msgid "Mirror (Flip)" -msgstr "Espelhar (Flip)" - -#: AppEditors/FlatCAMGeoEditor.py:624 AppEditors/FlatCAMGrbEditor.py:5318 -#: AppGUI/MainGUI.py:844 AppGUI/MainGUI.py:1878 -msgid "Editor" -msgstr "Editor" - -#: AppEditors/FlatCAMGeoEditor.py:656 AppEditors/FlatCAMGrbEditor.py:5350 -msgid "Angle:" -msgstr "Ângulo:" - -#: AppEditors/FlatCAMGeoEditor.py:658 AppEditors/FlatCAMGrbEditor.py:5352 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:55 -#: AppTools/ToolTransform.py:62 -msgid "" -"Angle for Rotation action, in degrees.\n" -"Float number between -360 and 359.\n" -"Positive numbers for CW motion.\n" -"Negative numbers for CCW motion." -msgstr "" -"Ângulo para a ação Rotação, em graus. \n" -"Número flutuante entre -360 e 359. \n" -"Números positivos para movimento horário. \n" -"Números negativos para movimento anti-horário." - -#: AppEditors/FlatCAMGeoEditor.py:674 AppEditors/FlatCAMGrbEditor.py:5368 -msgid "" -"Rotate the selected shape(s).\n" -"The point of reference is the middle of\n" -"the bounding box for all selected shapes." -msgstr "" -"Gira a(s) forma(s) selecionada(s). \n" -"O ponto de referência é o meio da caixa\n" -"delimitadora para todas as formas selecionadas." - -#: AppEditors/FlatCAMGeoEditor.py:697 AppEditors/FlatCAMGrbEditor.py:5391 -msgid "Angle X:" -msgstr "Ângulo X:" - -#: AppEditors/FlatCAMGeoEditor.py:699 AppEditors/FlatCAMGeoEditor.py:719 -#: AppEditors/FlatCAMGrbEditor.py:5393 AppEditors/FlatCAMGrbEditor.py:5413 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:74 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:88 -#: AppTools/ToolCalibration.py:505 AppTools/ToolCalibration.py:518 -msgid "" -"Angle for Skew action, in degrees.\n" -"Float number between -360 and 359." -msgstr "" -"Ângulo de inclinação, em graus.\n" -"Número flutuante entre -360 e 359." - -#: AppEditors/FlatCAMGeoEditor.py:710 AppEditors/FlatCAMGrbEditor.py:5404 -#: AppTools/ToolTransform.py:467 -msgid "Skew X" -msgstr "Inclinar X" - -#: AppEditors/FlatCAMGeoEditor.py:712 AppEditors/FlatCAMGeoEditor.py:732 -#: AppEditors/FlatCAMGrbEditor.py:5406 AppEditors/FlatCAMGrbEditor.py:5426 -msgid "" -"Skew/shear the selected shape(s).\n" -"The point of reference is the middle of\n" -"the bounding box for all selected shapes." -msgstr "" -"Inclinar/distorcer a(s) forma(s) selecionada(s).\n" -"O ponto de referência é o meio da caixa\n" -"delimitadora para todas as formas selecionadas." - -#: AppEditors/FlatCAMGeoEditor.py:717 AppEditors/FlatCAMGrbEditor.py:5411 -msgid "Angle Y:" -msgstr "Ângulo Y:" - -#: AppEditors/FlatCAMGeoEditor.py:730 AppEditors/FlatCAMGrbEditor.py:5424 -#: AppTools/ToolTransform.py:468 -msgid "Skew Y" -msgstr "Inclinar Y" - -#: AppEditors/FlatCAMGeoEditor.py:758 AppEditors/FlatCAMGrbEditor.py:5452 -msgid "Factor X:" -msgstr "Fator X:" - -#: AppEditors/FlatCAMGeoEditor.py:760 AppEditors/FlatCAMGrbEditor.py:5454 -#: AppTools/ToolCalibration.py:469 -msgid "Factor for Scale action over X axis." -msgstr "Fator de escala sobre o eixo X." - -#: AppEditors/FlatCAMGeoEditor.py:770 AppEditors/FlatCAMGrbEditor.py:5464 -#: AppTools/ToolTransform.py:469 -msgid "Scale X" -msgstr "Redimensionar X" - -#: AppEditors/FlatCAMGeoEditor.py:772 AppEditors/FlatCAMGeoEditor.py:791 -#: AppEditors/FlatCAMGrbEditor.py:5466 AppEditors/FlatCAMGrbEditor.py:5485 -msgid "" -"Scale the selected shape(s).\n" -"The point of reference depends on \n" -"the Scale reference checkbox state." -msgstr "" -"Redimensiona a(s) forma(s) selecionada(s).\n" -"O ponto de referência depende\n" -"do estado da caixa de seleção." - -#: AppEditors/FlatCAMGeoEditor.py:777 AppEditors/FlatCAMGrbEditor.py:5471 -msgid "Factor Y:" -msgstr "Fator Y:" - -#: AppEditors/FlatCAMGeoEditor.py:779 AppEditors/FlatCAMGrbEditor.py:5473 -#: AppTools/ToolCalibration.py:481 -msgid "Factor for Scale action over Y axis." -msgstr "Fator para ação de escala no eixo Y." - -#: AppEditors/FlatCAMGeoEditor.py:789 AppEditors/FlatCAMGrbEditor.py:5483 -#: AppTools/ToolTransform.py:470 -msgid "Scale Y" -msgstr "Redimensionar Y" - -#: AppEditors/FlatCAMGeoEditor.py:798 AppEditors/FlatCAMGrbEditor.py:5492 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:124 -#: AppTools/ToolTransform.py:189 -msgid "Link" -msgstr "Fixar Taxa" - -#: AppEditors/FlatCAMGeoEditor.py:800 AppEditors/FlatCAMGrbEditor.py:5494 -msgid "" -"Scale the selected shape(s)\n" -"using the Scale Factor X for both axis." -msgstr "" -"Redimensiona a(s) forma(s) selecionada(s)\n" -"usando o Fator de Escala X para ambos os eixos." - -#: AppEditors/FlatCAMGeoEditor.py:806 AppEditors/FlatCAMGrbEditor.py:5500 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:132 -#: AppTools/ToolTransform.py:196 -msgid "Scale Reference" -msgstr "Referência de escala" - -#: AppEditors/FlatCAMGeoEditor.py:808 AppEditors/FlatCAMGrbEditor.py:5502 -msgid "" -"Scale the selected shape(s)\n" -"using the origin reference when checked,\n" -"and the center of the biggest bounding box\n" -"of the selected shapes when unchecked." -msgstr "" -"Redimensiona a(s) forma(s) selecionada(s)\n" -"usando a referência de origem quando marcada,\n" -"e o centro da maior caixa delimitadora\n" -"de formas selecionadas quando desmarcado." - -#: AppEditors/FlatCAMGeoEditor.py:836 AppEditors/FlatCAMGrbEditor.py:5531 -msgid "Value X:" -msgstr "Valor X:" - -#: AppEditors/FlatCAMGeoEditor.py:838 AppEditors/FlatCAMGrbEditor.py:5533 -msgid "Value for Offset action on X axis." -msgstr "Valor para o deslocamento no eixo X." - -#: AppEditors/FlatCAMGeoEditor.py:848 AppEditors/FlatCAMGrbEditor.py:5543 -#: AppTools/ToolTransform.py:473 -msgid "Offset X" -msgstr "Deslocar X" - -#: AppEditors/FlatCAMGeoEditor.py:850 AppEditors/FlatCAMGeoEditor.py:870 -#: AppEditors/FlatCAMGrbEditor.py:5545 AppEditors/FlatCAMGrbEditor.py:5565 -msgid "" -"Offset the selected shape(s).\n" -"The point of reference is the middle of\n" -"the bounding box for all selected shapes.\n" -msgstr "" -"Desloca a(s) forma(s) selecionada(s).\n" -"O ponto de referência é o meio da\n" -"caixa delimitadora para todas as formas selecionadas.\n" - -#: AppEditors/FlatCAMGeoEditor.py:856 AppEditors/FlatCAMGrbEditor.py:5551 -msgid "Value Y:" -msgstr "Valor Y:" - -#: AppEditors/FlatCAMGeoEditor.py:858 AppEditors/FlatCAMGrbEditor.py:5553 -msgid "Value for Offset action on Y axis." -msgstr "Valor para a ação de deslocamento no eixo Y." - -#: AppEditors/FlatCAMGeoEditor.py:868 AppEditors/FlatCAMGrbEditor.py:5563 -#: AppTools/ToolTransform.py:474 -msgid "Offset Y" -msgstr "Deslocar Y" - -#: AppEditors/FlatCAMGeoEditor.py:899 AppEditors/FlatCAMGrbEditor.py:5594 -#: AppTools/ToolTransform.py:475 -msgid "Flip on X" -msgstr "Espelhar no X" - -#: AppEditors/FlatCAMGeoEditor.py:901 AppEditors/FlatCAMGeoEditor.py:908 -#: AppEditors/FlatCAMGrbEditor.py:5596 AppEditors/FlatCAMGrbEditor.py:5603 -msgid "" -"Flip the selected shape(s) over the X axis.\n" -"Does not create a new shape." -msgstr "" -"Espelha as formas selecionadas sobre o eixo X.\n" -"Não cria uma nova forma." - -#: AppEditors/FlatCAMGeoEditor.py:906 AppEditors/FlatCAMGrbEditor.py:5601 -#: AppTools/ToolTransform.py:476 -msgid "Flip on Y" -msgstr "Espelhar no Y" - -#: AppEditors/FlatCAMGeoEditor.py:914 AppEditors/FlatCAMGrbEditor.py:5609 -msgid "Ref Pt" -msgstr "Ponto de Referência" - -#: AppEditors/FlatCAMGeoEditor.py:916 AppEditors/FlatCAMGrbEditor.py:5611 -msgid "" -"Flip the selected shape(s)\n" -"around the point in Point Entry Field.\n" -"\n" -"The point coordinates can be captured by\n" -"left click on canvas together with pressing\n" -"SHIFT key. \n" -"Then click Add button to insert coordinates.\n" -"Or enter the coords in format (x, y) in the\n" -"Point Entry field and click Flip on X(Y)" -msgstr "" -"Espelha a(s) forma(s) selecionada(s)\n" -"em relação às coordenadas abaixo.\n" -"\n" -"As coordenadas do ponto podem ser inseridas:\n" -"- com clique no botão esquerdo junto com a tecla\n" -" SHIFT pressionada, e clicar no botão Adicionar.\n" -"- ou digitar as coordenadas no formato (x, y) no campo\n" -" Ponto de Ref. e clicar em Espelhar no X(Y)" - -#: AppEditors/FlatCAMGeoEditor.py:928 AppEditors/FlatCAMGrbEditor.py:5623 -msgid "Point:" -msgstr "Ponto:" - -#: AppEditors/FlatCAMGeoEditor.py:930 AppEditors/FlatCAMGrbEditor.py:5625 -#: AppTools/ToolTransform.py:299 -msgid "" -"Coordinates in format (x, y) used as reference for mirroring.\n" -"The 'x' in (x, y) will be used when using Flip on X and\n" -"the 'y' in (x, y) will be used when using Flip on Y." -msgstr "" -"Coordenadas no formato (x, y) usadas como referência para espelhamento. \n" -"O 'x' em (x, y) será usado ao usar Espelhar em X e\n" -"o 'y' em (x, y) será usado ao usar Espelhar em Y." - -#: AppEditors/FlatCAMGeoEditor.py:938 AppEditors/FlatCAMGrbEditor.py:2590 -#: AppEditors/FlatCAMGrbEditor.py:5635 AppGUI/ObjectUI.py:1494 -#: AppTools/ToolDblSided.py:192 AppTools/ToolDblSided.py:425 -#: AppTools/ToolIsolation.py:276 AppTools/ToolIsolation.py:610 -#: AppTools/ToolNCC.py:294 AppTools/ToolNCC.py:631 AppTools/ToolPaint.py:276 -#: AppTools/ToolPaint.py:675 AppTools/ToolSolderPaste.py:127 -#: AppTools/ToolSolderPaste.py:605 AppTools/ToolTransform.py:478 -#: App_Main.py:5670 -msgid "Add" -msgstr "Adicionar" - -#: AppEditors/FlatCAMGeoEditor.py:940 AppEditors/FlatCAMGrbEditor.py:5637 -#: AppTools/ToolTransform.py:309 -msgid "" -"The point coordinates can be captured by\n" -"left click on canvas together with pressing\n" -"SHIFT key. Then click Add button to insert." -msgstr "" -"As coordenadas do ponto podem ser capturadas por\n" -"botão esquerdo na tela junto com a tecla\n" -"SHIFT pressionada. Em seguida, clique no botão Adicionar para inserir." - -#: AppEditors/FlatCAMGeoEditor.py:1303 AppEditors/FlatCAMGrbEditor.py:5945 -msgid "No shape selected. Please Select a shape to rotate!" -msgstr "Nenhuma forma selecionada. Por favor, selecione uma forma para girar!" - -#: AppEditors/FlatCAMGeoEditor.py:1306 AppEditors/FlatCAMGrbEditor.py:5948 -#: AppTools/ToolTransform.py:679 -msgid "Appying Rotate" -msgstr "Aplicando Girar" - -#: AppEditors/FlatCAMGeoEditor.py:1332 AppEditors/FlatCAMGrbEditor.py:5980 -msgid "Done. Rotate completed." -msgstr "Girar concluído." - -#: AppEditors/FlatCAMGeoEditor.py:1334 -msgid "Rotation action was not executed" -msgstr "O giro não foi executado" - -#: AppEditors/FlatCAMGeoEditor.py:1353 AppEditors/FlatCAMGrbEditor.py:5999 -msgid "No shape selected. Please Select a shape to flip!" -msgstr "" -"Nenhuma forma selecionada. Por favor, selecione uma forma para espelhar!" - -#: AppEditors/FlatCAMGeoEditor.py:1356 AppEditors/FlatCAMGrbEditor.py:6002 -#: AppTools/ToolTransform.py:728 -msgid "Applying Flip" -msgstr "Aplicando Espelhamento" - -#: AppEditors/FlatCAMGeoEditor.py:1385 AppEditors/FlatCAMGrbEditor.py:6040 -#: AppTools/ToolTransform.py:769 -msgid "Flip on the Y axis done" -msgstr "Concluído o espelhamento no eixo Y" - -#: AppEditors/FlatCAMGeoEditor.py:1389 AppEditors/FlatCAMGrbEditor.py:6049 -#: AppTools/ToolTransform.py:778 -msgid "Flip on the X axis done" -msgstr "Concluído o espelhamento no eixo Y" - -#: AppEditors/FlatCAMGeoEditor.py:1397 -msgid "Flip action was not executed" -msgstr "O espelhamento não foi executado" - -#: AppEditors/FlatCAMGeoEditor.py:1415 AppEditors/FlatCAMGrbEditor.py:6069 -msgid "No shape selected. Please Select a shape to shear/skew!" -msgstr "" -"Nenhuma forma selecionada. Por favor, selecione uma forma para inclinar!" - -#: AppEditors/FlatCAMGeoEditor.py:1418 AppEditors/FlatCAMGrbEditor.py:6072 -#: AppTools/ToolTransform.py:801 -msgid "Applying Skew" -msgstr "Inclinando" - -#: AppEditors/FlatCAMGeoEditor.py:1441 AppEditors/FlatCAMGrbEditor.py:6106 -msgid "Skew on the X axis done" -msgstr "Inclinação no eixo X concluída" - -#: AppEditors/FlatCAMGeoEditor.py:1443 AppEditors/FlatCAMGrbEditor.py:6108 -msgid "Skew on the Y axis done" -msgstr "Inclinação no eixo Y concluída" - -#: AppEditors/FlatCAMGeoEditor.py:1446 -msgid "Skew action was not executed" -msgstr "A inclinação não foi executada" - -#: AppEditors/FlatCAMGeoEditor.py:1468 AppEditors/FlatCAMGrbEditor.py:6130 -msgid "No shape selected. Please Select a shape to scale!" -msgstr "" -"Nenhuma forma selecionada. Por favor, selecione uma forma para redimensionar!" - -#: AppEditors/FlatCAMGeoEditor.py:1471 AppEditors/FlatCAMGrbEditor.py:6133 -#: AppTools/ToolTransform.py:847 -msgid "Applying Scale" -msgstr "Redimensionando" - -#: AppEditors/FlatCAMGeoEditor.py:1503 AppEditors/FlatCAMGrbEditor.py:6170 -msgid "Scale on the X axis done" -msgstr "Redimensionamento no eixo X concluído" - -#: AppEditors/FlatCAMGeoEditor.py:1505 AppEditors/FlatCAMGrbEditor.py:6172 -msgid "Scale on the Y axis done" -msgstr "Redimensionamento no eixo Y concluído" - -#: AppEditors/FlatCAMGeoEditor.py:1507 -msgid "Scale action was not executed" -msgstr "O redimensionamento não foi executado" - -#: AppEditors/FlatCAMGeoEditor.py:1522 AppEditors/FlatCAMGrbEditor.py:6189 -msgid "No shape selected. Please Select a shape to offset!" -msgstr "" -"Nenhuma forma selecionada. Por favor, selecione uma forma para deslocar!" - -#: AppEditors/FlatCAMGeoEditor.py:1525 AppEditors/FlatCAMGrbEditor.py:6192 -#: AppTools/ToolTransform.py:897 -msgid "Applying Offset" -msgstr "Deslocando" - -#: AppEditors/FlatCAMGeoEditor.py:1535 AppEditors/FlatCAMGrbEditor.py:6213 -msgid "Offset on the X axis done" -msgstr "Deslocamento no eixo X concluído" - -#: AppEditors/FlatCAMGeoEditor.py:1537 AppEditors/FlatCAMGrbEditor.py:6215 -msgid "Offset on the Y axis done" -msgstr "Deslocamento no eixo Y concluído" - -#: AppEditors/FlatCAMGeoEditor.py:1540 -msgid "Offset action was not executed" -msgstr "O deslocamento não foi executado" - -#: AppEditors/FlatCAMGeoEditor.py:1544 AppEditors/FlatCAMGrbEditor.py:6222 -msgid "Rotate ..." -msgstr "Girar ..." - -#: AppEditors/FlatCAMGeoEditor.py:1545 AppEditors/FlatCAMGeoEditor.py:1600 -#: AppEditors/FlatCAMGeoEditor.py:1617 AppEditors/FlatCAMGrbEditor.py:6223 -#: AppEditors/FlatCAMGrbEditor.py:6272 AppEditors/FlatCAMGrbEditor.py:6287 -msgid "Enter an Angle Value (degrees)" -msgstr "Digite um valor para o ângulo (graus)" - -#: AppEditors/FlatCAMGeoEditor.py:1554 AppEditors/FlatCAMGrbEditor.py:6231 -msgid "Geometry shape rotate done" -msgstr "Rotação da geometria concluída" - -#: AppEditors/FlatCAMGeoEditor.py:1558 AppEditors/FlatCAMGrbEditor.py:6234 -msgid "Geometry shape rotate cancelled" -msgstr "Rotação da geometria cancelada" - -#: AppEditors/FlatCAMGeoEditor.py:1563 AppEditors/FlatCAMGrbEditor.py:6239 -msgid "Offset on X axis ..." -msgstr "Deslocamento no eixo X ..." - -#: AppEditors/FlatCAMGeoEditor.py:1564 AppEditors/FlatCAMGeoEditor.py:1583 -#: AppEditors/FlatCAMGrbEditor.py:6240 AppEditors/FlatCAMGrbEditor.py:6257 -msgid "Enter a distance Value" -msgstr "Digite um valor para a distância" - -#: AppEditors/FlatCAMGeoEditor.py:1573 AppEditors/FlatCAMGrbEditor.py:6248 -msgid "Geometry shape offset on X axis done" -msgstr "Deslocamento da forma no eixo X concluído" - -#: AppEditors/FlatCAMGeoEditor.py:1577 AppEditors/FlatCAMGrbEditor.py:6251 -msgid "Geometry shape offset X cancelled" -msgstr "Deslocamento da forma no eixo X cancelado" - -#: AppEditors/FlatCAMGeoEditor.py:1582 AppEditors/FlatCAMGrbEditor.py:6256 -msgid "Offset on Y axis ..." -msgstr "Deslocamento no eixo Y ..." - -#: AppEditors/FlatCAMGeoEditor.py:1592 AppEditors/FlatCAMGrbEditor.py:6265 -msgid "Geometry shape offset on Y axis done" -msgstr "Deslocamento da forma no eixo Y concluído" - -#: AppEditors/FlatCAMGeoEditor.py:1596 -msgid "Geometry shape offset on Y axis canceled" -msgstr "Deslocamento da forma no eixo Y cancelado" - -#: AppEditors/FlatCAMGeoEditor.py:1599 AppEditors/FlatCAMGrbEditor.py:6271 -msgid "Skew on X axis ..." -msgstr "Inclinação no eixo X ..." - -#: AppEditors/FlatCAMGeoEditor.py:1609 AppEditors/FlatCAMGrbEditor.py:6280 -msgid "Geometry shape skew on X axis done" -msgstr "Inclinação no eixo X concluída" - -#: AppEditors/FlatCAMGeoEditor.py:1613 -msgid "Geometry shape skew on X axis canceled" -msgstr "Inclinação no eixo X cancelada" - -#: AppEditors/FlatCAMGeoEditor.py:1616 AppEditors/FlatCAMGrbEditor.py:6286 -msgid "Skew on Y axis ..." -msgstr "Inclinação no eixo Y ..." - -#: AppEditors/FlatCAMGeoEditor.py:1626 AppEditors/FlatCAMGrbEditor.py:6295 -msgid "Geometry shape skew on Y axis done" -msgstr "Inclinação no eixo Y concluída" - -#: AppEditors/FlatCAMGeoEditor.py:1630 -msgid "Geometry shape skew on Y axis canceled" -msgstr "Inclinação no eixo Y cancelada" - -#: AppEditors/FlatCAMGeoEditor.py:2007 AppEditors/FlatCAMGeoEditor.py:2078 -#: AppEditors/FlatCAMGrbEditor.py:1444 AppEditors/FlatCAMGrbEditor.py:1522 -msgid "Click on Center point ..." -msgstr "Clique no ponto central ..." - -#: AppEditors/FlatCAMGeoEditor.py:2020 AppEditors/FlatCAMGrbEditor.py:1454 -msgid "Click on Perimeter point to complete ..." -msgstr "Clique no ponto Perímetro para completar ..." - -#: AppEditors/FlatCAMGeoEditor.py:2052 -msgid "Done. Adding Circle completed." -msgstr "Círculo adicionado." - -#: AppEditors/FlatCAMGeoEditor.py:2106 AppEditors/FlatCAMGrbEditor.py:1555 -msgid "Click on Start point ..." -msgstr "Clique no ponto inicial ..." - -#: AppEditors/FlatCAMGeoEditor.py:2108 AppEditors/FlatCAMGrbEditor.py:1557 -msgid "Click on Point3 ..." -msgstr "Clique no ponto 3 ..." - -#: AppEditors/FlatCAMGeoEditor.py:2110 AppEditors/FlatCAMGrbEditor.py:1559 -msgid "Click on Stop point ..." -msgstr "Clique no ponto de parada ..." - -#: AppEditors/FlatCAMGeoEditor.py:2115 AppEditors/FlatCAMGrbEditor.py:1564 -msgid "Click on Stop point to complete ..." -msgstr "Clique no ponto de parada para completar ..." - -#: AppEditors/FlatCAMGeoEditor.py:2117 AppEditors/FlatCAMGrbEditor.py:1566 -msgid "Click on Point2 to complete ..." -msgstr "Clique no ponto 2 para completar ..." - -#: AppEditors/FlatCAMGeoEditor.py:2119 AppEditors/FlatCAMGrbEditor.py:1568 -msgid "Click on Center point to complete ..." -msgstr "Clique no ponto central para completar ..." - -#: AppEditors/FlatCAMGeoEditor.py:2131 -#, python-format -msgid "Direction: %s" -msgstr "Direção: %s" - -#: AppEditors/FlatCAMGeoEditor.py:2145 AppEditors/FlatCAMGrbEditor.py:1594 -msgid "Mode: Start -> Stop -> Center. Click on Start point ..." -msgstr "Modo: Iniciar -> Parar -> Centro. Clique no ponto inicial ..." - -#: AppEditors/FlatCAMGeoEditor.py:2148 AppEditors/FlatCAMGrbEditor.py:1597 -msgid "Mode: Point1 -> Point3 -> Point2. Click on Point1 ..." -msgstr "Modo: Ponto 1 -> Ponto 3 -> Ponto 2. Clique no Ponto 1 ..." - -#: AppEditors/FlatCAMGeoEditor.py:2151 AppEditors/FlatCAMGrbEditor.py:1600 -msgid "Mode: Center -> Start -> Stop. Click on Center point ..." -msgstr "Modo: Centro -> Iniciar -> Parar. Clique no ponto central ..." - -#: AppEditors/FlatCAMGeoEditor.py:2292 -msgid "Done. Arc completed." -msgstr "Arco adicionado." - -#: AppEditors/FlatCAMGeoEditor.py:2323 AppEditors/FlatCAMGeoEditor.py:2396 -msgid "Click on 1st corner ..." -msgstr "Clique no primeiro canto ..." - -#: AppEditors/FlatCAMGeoEditor.py:2335 -msgid "Click on opposite corner to complete ..." -msgstr "Clique no canto oposto para completar ..." - -#: AppEditors/FlatCAMGeoEditor.py:2365 -msgid "Done. Rectangle completed." -msgstr "Retângulo adicionado." - -#: AppEditors/FlatCAMGeoEditor.py:2409 AppTools/ToolIsolation.py:2527 -#: AppTools/ToolNCC.py:1754 AppTools/ToolPaint.py:1647 Common.py:322 -msgid "Click on next Point or click right mouse button to complete ..." -msgstr "" -"Clique no próximo ponto ou clique com o botão direito do mouse para " -"completar ..." - -#: AppEditors/FlatCAMGeoEditor.py:2440 -msgid "Done. Polygon completed." -msgstr "Polígono adicionado." - -#: AppEditors/FlatCAMGeoEditor.py:2454 AppEditors/FlatCAMGeoEditor.py:2519 -#: AppEditors/FlatCAMGrbEditor.py:1102 AppEditors/FlatCAMGrbEditor.py:1322 -msgid "Backtracked one point ..." -msgstr "Retrocedeu um ponto ..." - -#: AppEditors/FlatCAMGeoEditor.py:2497 -msgid "Done. Path completed." -msgstr "Caminho concluído." - -#: AppEditors/FlatCAMGeoEditor.py:2656 -msgid "No shape selected. Select a shape to explode" -msgstr "Nenhuma forma selecionada. Selecione uma forma para explodir" - -#: AppEditors/FlatCAMGeoEditor.py:2689 -msgid "Done. Polygons exploded into lines." -msgstr "Polígono explodido em linhas." - -#: AppEditors/FlatCAMGeoEditor.py:2721 -msgid "MOVE: No shape selected. Select a shape to move" -msgstr "MOVER: Nenhuma forma selecionada. Selecione uma forma para mover" - -#: AppEditors/FlatCAMGeoEditor.py:2724 AppEditors/FlatCAMGeoEditor.py:2744 -msgid " MOVE: Click on reference point ..." -msgstr " MOVER: Clique no ponto de referência ..." - -#: AppEditors/FlatCAMGeoEditor.py:2729 -msgid " Click on destination point ..." -msgstr " Clique no ponto de destino ..." - -#: AppEditors/FlatCAMGeoEditor.py:2769 -msgid "Done. Geometry(s) Move completed." -msgstr "Movimento de Geometria(s) concluído." - -#: AppEditors/FlatCAMGeoEditor.py:2902 -msgid "Done. Geometry(s) Copy completed." -msgstr "Geometria(s) copiada(s)." - -#: AppEditors/FlatCAMGeoEditor.py:2933 AppEditors/FlatCAMGrbEditor.py:897 -msgid "Click on 1st point ..." -msgstr "Clique no primeiro ponto ..." - -#: AppEditors/FlatCAMGeoEditor.py:2957 -msgid "" -"Font not supported. Only Regular, Bold, Italic and BoldItalic are supported. " -"Error" -msgstr "" -"Fonte não suportada. Apenas Regular, Bold, Italic e BoldItalic são " -"suportados. Erro" - -#: AppEditors/FlatCAMGeoEditor.py:2965 -msgid "No text to add." -msgstr "Nenhum texto para adicionar." - -#: AppEditors/FlatCAMGeoEditor.py:2975 -msgid " Done. Adding Text completed." -msgstr " Texto adicionado." - -#: AppEditors/FlatCAMGeoEditor.py:3012 -msgid "Create buffer geometry ..." -msgstr "Criar buffer de geometria ..." - -#: AppEditors/FlatCAMGeoEditor.py:3047 AppEditors/FlatCAMGrbEditor.py:5154 -msgid "Done. Buffer Tool completed." -msgstr "Buffer concluído." - -#: AppEditors/FlatCAMGeoEditor.py:3075 -msgid "Done. Buffer Int Tool completed." -msgstr "Buffer Interno concluído." - -#: AppEditors/FlatCAMGeoEditor.py:3103 -msgid "Done. Buffer Ext Tool completed." -msgstr "Buffer Externo concluído." - -#: AppEditors/FlatCAMGeoEditor.py:3152 AppEditors/FlatCAMGrbEditor.py:2160 -msgid "Select a shape to act as deletion area ..." -msgstr "Selecione uma forma para atuar como área de exclusão ..." - -#: AppEditors/FlatCAMGeoEditor.py:3154 AppEditors/FlatCAMGeoEditor.py:3180 -#: AppEditors/FlatCAMGeoEditor.py:3186 AppEditors/FlatCAMGrbEditor.py:2162 -msgid "Click to pick-up the erase shape..." -msgstr "Clique para pegar a forma a apagar ..." - -#: AppEditors/FlatCAMGeoEditor.py:3190 AppEditors/FlatCAMGrbEditor.py:2221 -msgid "Click to erase ..." -msgstr "Clique para apagar ..." - -#: AppEditors/FlatCAMGeoEditor.py:3219 AppEditors/FlatCAMGrbEditor.py:2254 -msgid "Done. Eraser tool action completed." -msgstr "Apagado." - -#: AppEditors/FlatCAMGeoEditor.py:3269 -msgid "Create Paint geometry ..." -msgstr "Criar geometria de pintura ..." - -#: AppEditors/FlatCAMGeoEditor.py:3282 AppEditors/FlatCAMGrbEditor.py:2417 -msgid "Shape transformations ..." -msgstr "Transformações de forma ..." - -#: AppEditors/FlatCAMGeoEditor.py:3338 -#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:27 -msgid "Geometry Editor" -msgstr "Editor de Geometria" - -#: AppEditors/FlatCAMGeoEditor.py:3344 AppEditors/FlatCAMGrbEditor.py:2495 -#: AppEditors/FlatCAMGrbEditor.py:3952 AppGUI/ObjectUI.py:282 -#: AppGUI/ObjectUI.py:1394 AppGUI/ObjectUI.py:2256 AppTools/ToolCutOut.py:95 -msgid "Type" -msgstr "Tipo" - -#: AppEditors/FlatCAMGeoEditor.py:3344 AppGUI/ObjectUI.py:221 -#: AppGUI/ObjectUI.py:521 AppGUI/ObjectUI.py:1330 AppGUI/ObjectUI.py:2165 -#: AppGUI/ObjectUI.py:2469 AppGUI/ObjectUI.py:2536 -#: AppTools/ToolCalibration.py:234 AppTools/ToolFiducials.py:70 -msgid "Name" -msgstr "Nome" - -#: AppEditors/FlatCAMGeoEditor.py:3596 -msgid "Ring" -msgstr "Anel" - -#: AppEditors/FlatCAMGeoEditor.py:3598 -msgid "Line" -msgstr "Linha" - -#: AppEditors/FlatCAMGeoEditor.py:3600 AppGUI/MainGUI.py:1446 -#: AppGUI/ObjectUI.py:1150 AppGUI/ObjectUI.py:2005 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:226 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:299 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:328 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:292 -#: AppTools/ToolIsolation.py:546 AppTools/ToolNCC.py:584 -#: AppTools/ToolPaint.py:527 -msgid "Polygon" -msgstr "Polígono" - -#: AppEditors/FlatCAMGeoEditor.py:3602 -msgid "Multi-Line" -msgstr "Múlti-Linha" - -#: AppEditors/FlatCAMGeoEditor.py:3604 -msgid "Multi-Polygon" -msgstr "Múlti-Polígono" - -#: AppEditors/FlatCAMGeoEditor.py:3611 -msgid "Geo Elem" -msgstr "Elem Geo" - -#: AppEditors/FlatCAMGeoEditor.py:4064 -msgid "Editing MultiGeo Geometry, tool" -msgstr "Editando Geometria MultiGeo, ferramenta" - -#: AppEditors/FlatCAMGeoEditor.py:4066 -msgid "with diameter" -msgstr "com diâmetro" - -#: AppEditors/FlatCAMGeoEditor.py:4138 -#, fuzzy -#| msgid "Workspace Settings" -msgid "Grid Snap enabled." -msgstr "Configurações da área de trabalho" - -#: AppEditors/FlatCAMGeoEditor.py:4142 -#, fuzzy -#| msgid "Grid X snapping distance" -msgid "Grid Snap disabled." -msgstr "Distância de encaixe Grade X" - -#: AppEditors/FlatCAMGeoEditor.py:4503 AppGUI/MainGUI.py:3046 -#: AppGUI/MainGUI.py:3092 AppGUI/MainGUI.py:3110 AppGUI/MainGUI.py:3254 -#: AppGUI/MainGUI.py:3293 AppGUI/MainGUI.py:3305 AppGUI/MainGUI.py:3322 -msgid "Click on target point." -msgstr "Clique no ponto alvo." - -#: AppEditors/FlatCAMGeoEditor.py:4819 AppEditors/FlatCAMGeoEditor.py:4854 -msgid "A selection of at least 2 geo items is required to do Intersection." -msgstr "" -"É necessária uma seleção de pelo menos 2 itens geométricos para fazer a " -"interseção." - -#: AppEditors/FlatCAMGeoEditor.py:4940 AppEditors/FlatCAMGeoEditor.py:5044 -msgid "" -"Negative buffer value is not accepted. Use Buffer interior to generate an " -"'inside' shape" -msgstr "" -"Valor de buffer negativo não é aceito. Use o Buffer interior para gerar uma " -"forma 'interna'" - -#: AppEditors/FlatCAMGeoEditor.py:4950 AppEditors/FlatCAMGeoEditor.py:5003 -#: AppEditors/FlatCAMGeoEditor.py:5053 -msgid "Nothing selected for buffering." -msgstr "Nada selecionado para armazenamento em buffer." - -#: AppEditors/FlatCAMGeoEditor.py:4955 AppEditors/FlatCAMGeoEditor.py:5007 -#: AppEditors/FlatCAMGeoEditor.py:5058 -msgid "Invalid distance for buffering." -msgstr "Distância inválida para armazenamento em buffer." - -#: AppEditors/FlatCAMGeoEditor.py:4979 AppEditors/FlatCAMGeoEditor.py:5078 -msgid "Failed, the result is empty. Choose a different buffer value." -msgstr "" -"Falhou, o resultado está vazio. Escolha um valor diferente para o buffer." - -#: AppEditors/FlatCAMGeoEditor.py:4990 -msgid "Full buffer geometry created." -msgstr "Buffer de geometria completa criado." - -#: AppEditors/FlatCAMGeoEditor.py:4996 -msgid "Negative buffer value is not accepted." -msgstr "Valor de buffer negativo não é aceito." - -#: AppEditors/FlatCAMGeoEditor.py:5027 -msgid "Failed, the result is empty. Choose a smaller buffer value." -msgstr "Falhou, o resultado está vazio. Escolha um valor menor para o buffer." - -#: AppEditors/FlatCAMGeoEditor.py:5037 -msgid "Interior buffer geometry created." -msgstr "Buffer de Geometria interna criado." - -#: AppEditors/FlatCAMGeoEditor.py:5088 -msgid "Exterior buffer geometry created." -msgstr "Buffer de Geometria externa criado." - -#: AppEditors/FlatCAMGeoEditor.py:5094 -#, python-format -msgid "Could not do Paint. Overlap value has to be less than 100%%." -msgstr "" -"Não foi possível Pintar. O valor de sobreposição deve ser menor do que 100%%." - -#: AppEditors/FlatCAMGeoEditor.py:5101 -msgid "Nothing selected for painting." -msgstr "Nada selecionado para pintura." - -#: AppEditors/FlatCAMGeoEditor.py:5107 -msgid "Invalid value for" -msgstr "Valor inválido para" - -#: AppEditors/FlatCAMGeoEditor.py:5166 -msgid "" -"Could not do Paint. Try a different combination of parameters. Or a " -"different method of Paint" -msgstr "" -"Não foi possível pintar. Tente uma combinação diferente de parâmetros, ou um " -"método diferente de Pintura" - -#: AppEditors/FlatCAMGeoEditor.py:5177 -msgid "Paint done." -msgstr "Pintura concluída." - -#: AppEditors/FlatCAMGrbEditor.py:211 -msgid "To add an Pad first select a aperture in Aperture Table" -msgstr "" -"Para adicionar um Pad, primeiro selecione uma abertura na Tabela de Aberturas" - -#: AppEditors/FlatCAMGrbEditor.py:218 AppEditors/FlatCAMGrbEditor.py:418 -msgid "Aperture size is zero. It needs to be greater than zero." -msgstr "O tamanho da abertura é zero. Precisa ser maior que zero." - -#: AppEditors/FlatCAMGrbEditor.py:371 AppEditors/FlatCAMGrbEditor.py:684 -msgid "" -"Incompatible aperture type. Select an aperture with type 'C', 'R' or 'O'." -msgstr "" -"Tipo de abertura incompatível. Selecione uma abertura do tipo 'C', 'R' ou " -"'O'." - -#: AppEditors/FlatCAMGrbEditor.py:383 -msgid "Done. Adding Pad completed." -msgstr "Pad adicionado." - -#: AppEditors/FlatCAMGrbEditor.py:410 -msgid "To add an Pad Array first select a aperture in Aperture Table" -msgstr "" -"Para adicionar uma Matriz de Pads, primeiro selecione uma abertura na Tabela " -"de Aberturas" - -#: AppEditors/FlatCAMGrbEditor.py:490 -msgid "Click on the Pad Circular Array Start position" -msgstr "Clique na posição inicial da Matriz Circular de Pads" - -#: AppEditors/FlatCAMGrbEditor.py:710 -msgid "Too many Pads for the selected spacing angle." -msgstr "Muitos Pads para o ângulo de espaçamento selecionado." - -#: AppEditors/FlatCAMGrbEditor.py:733 -msgid "Done. Pad Array added." -msgstr "Matriz de pads adicionada." - -#: AppEditors/FlatCAMGrbEditor.py:758 -msgid "Select shape(s) and then click ..." -msgstr "Selecione a(s) forma(s) e então clique ..." - -#: AppEditors/FlatCAMGrbEditor.py:770 -msgid "Failed. Nothing selected." -msgstr "Falhou. Nada selecionado." - -#: AppEditors/FlatCAMGrbEditor.py:786 -msgid "" -"Failed. Poligonize works only on geometries belonging to the same aperture." -msgstr "" -"Falhou. Poligonize funciona apenas em geometrias pertencentes à mesma " -"abertura." - -#: AppEditors/FlatCAMGrbEditor.py:840 -msgid "Done. Poligonize completed." -msgstr "Poligonizar concluído." - -#: AppEditors/FlatCAMGrbEditor.py:895 AppEditors/FlatCAMGrbEditor.py:1119 -#: AppEditors/FlatCAMGrbEditor.py:1143 -msgid "Corner Mode 1: 45 degrees ..." -msgstr "Canto Modo 1: 45 graus ..." - -#: AppEditors/FlatCAMGrbEditor.py:907 AppEditors/FlatCAMGrbEditor.py:1219 -msgid "Click on next Point or click Right mouse button to complete ..." -msgstr "" -"Clique no próximo ponto ou clique com o botão direito do mouse para " -"completar ..." - -#: AppEditors/FlatCAMGrbEditor.py:1107 AppEditors/FlatCAMGrbEditor.py:1140 -msgid "Corner Mode 2: Reverse 45 degrees ..." -msgstr "Canto Modo 2: 45 graus invertido ..." - -#: AppEditors/FlatCAMGrbEditor.py:1110 AppEditors/FlatCAMGrbEditor.py:1137 -msgid "Corner Mode 3: 90 degrees ..." -msgstr "Canto Modo 3: 90 graus ..." - -#: AppEditors/FlatCAMGrbEditor.py:1113 AppEditors/FlatCAMGrbEditor.py:1134 -msgid "Corner Mode 4: Reverse 90 degrees ..." -msgstr "Canto Modo 4: 90 graus invertido ..." - -#: AppEditors/FlatCAMGrbEditor.py:1116 AppEditors/FlatCAMGrbEditor.py:1131 -msgid "Corner Mode 5: Free angle ..." -msgstr "Canto Modo 5: Ângulo livre ..." - -#: AppEditors/FlatCAMGrbEditor.py:1193 AppEditors/FlatCAMGrbEditor.py:1358 -#: AppEditors/FlatCAMGrbEditor.py:1397 -msgid "Track Mode 1: 45 degrees ..." -msgstr "Trilha Modo 1: 45 graus ..." - -#: AppEditors/FlatCAMGrbEditor.py:1338 AppEditors/FlatCAMGrbEditor.py:1392 -msgid "Track Mode 2: Reverse 45 degrees ..." -msgstr "Trilha Modo 2: 45 graus invertido ..." - -#: AppEditors/FlatCAMGrbEditor.py:1343 AppEditors/FlatCAMGrbEditor.py:1387 -msgid "Track Mode 3: 90 degrees ..." -msgstr "Trilha Modo 3: 90 graus ..." - -#: AppEditors/FlatCAMGrbEditor.py:1348 AppEditors/FlatCAMGrbEditor.py:1382 -msgid "Track Mode 4: Reverse 90 degrees ..." -msgstr "Trilha Modo 4: 90 graus invertido ..." - -#: AppEditors/FlatCAMGrbEditor.py:1353 AppEditors/FlatCAMGrbEditor.py:1377 -msgid "Track Mode 5: Free angle ..." -msgstr "Trilha Modo 5: Ângulo livre ..." - -#: AppEditors/FlatCAMGrbEditor.py:1787 -msgid "Scale the selected Gerber apertures ..." -msgstr "Redimensiona as aberturas de Gerber selecionadas ..." - -#: AppEditors/FlatCAMGrbEditor.py:1829 -msgid "Buffer the selected apertures ..." -msgstr "Buffer das aberturas selecionadas ..." - -#: AppEditors/FlatCAMGrbEditor.py:1871 -msgid "Mark polygon areas in the edited Gerber ..." -msgstr "Marca áreas de polígonos no Gerber editado..." - -#: AppEditors/FlatCAMGrbEditor.py:1937 -msgid "Nothing selected to move" -msgstr "Nada selecionado para mover" - -#: AppEditors/FlatCAMGrbEditor.py:2062 -msgid "Done. Apertures Move completed." -msgstr "Aberturas movidas." - -#: AppEditors/FlatCAMGrbEditor.py:2144 -msgid "Done. Apertures copied." -msgstr "Aberturas copiadas." - -#: AppEditors/FlatCAMGrbEditor.py:2462 AppGUI/MainGUI.py:1477 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:27 -msgid "Gerber Editor" -msgstr "Editor Gerber" - -#: AppEditors/FlatCAMGrbEditor.py:2482 AppGUI/ObjectUI.py:247 -#: AppTools/ToolProperties.py:159 -msgid "Apertures" -msgstr "Aberturas" - -#: AppEditors/FlatCAMGrbEditor.py:2484 AppGUI/ObjectUI.py:249 -msgid "Apertures Table for the Gerber Object." -msgstr "Tabela de Aberturas para o Objeto Gerber." - -#: AppEditors/FlatCAMGrbEditor.py:2495 AppEditors/FlatCAMGrbEditor.py:3952 -#: AppGUI/ObjectUI.py:282 -msgid "Code" -msgstr "Código" - -#: AppEditors/FlatCAMGrbEditor.py:2495 AppEditors/FlatCAMGrbEditor.py:3952 -#: AppGUI/ObjectUI.py:282 -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:103 -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:167 -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:196 -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:43 -#: AppTools/ToolCopperThieving.py:265 AppTools/ToolCopperThieving.py:305 -#: AppTools/ToolFiducials.py:159 -msgid "Size" -msgstr "Tamanho" - -#: AppEditors/FlatCAMGrbEditor.py:2495 AppEditors/FlatCAMGrbEditor.py:3952 -#: AppGUI/ObjectUI.py:282 -msgid "Dim" -msgstr "Dim" - -#: AppEditors/FlatCAMGrbEditor.py:2500 AppGUI/ObjectUI.py:286 -msgid "Index" -msgstr "Índice" - -#: AppEditors/FlatCAMGrbEditor.py:2502 AppEditors/FlatCAMGrbEditor.py:2531 -#: AppGUI/ObjectUI.py:288 -msgid "Aperture Code" -msgstr "Código de Abertura" - -#: AppEditors/FlatCAMGrbEditor.py:2504 AppGUI/ObjectUI.py:290 -msgid "Type of aperture: circular, rectangle, macros etc" -msgstr "Tipo de abertura: circular, retângulo, macros etc" - -#: AppEditors/FlatCAMGrbEditor.py:2506 AppGUI/ObjectUI.py:292 -msgid "Aperture Size:" -msgstr "Tamanho da abertura:" - -#: AppEditors/FlatCAMGrbEditor.py:2508 AppGUI/ObjectUI.py:294 -msgid "" -"Aperture Dimensions:\n" -" - (width, height) for R, O type.\n" -" - (dia, nVertices) for P type" -msgstr "" -"Dimensões da abertura: \n" -" - (largura, altura) para o tipo R, O. \n" -" - (dia, nVertices) para o tipo P" - -#: AppEditors/FlatCAMGrbEditor.py:2532 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:58 -msgid "Code for the new aperture" -msgstr "Código para a nova abertura" - -#: AppEditors/FlatCAMGrbEditor.py:2541 -msgid "Aperture Size" -msgstr "Tamanho da abertura" - -#: AppEditors/FlatCAMGrbEditor.py:2543 -msgid "" -"Size for the new aperture.\n" -"If aperture type is 'R' or 'O' then\n" -"this value is automatically\n" -"calculated as:\n" -"sqrt(width**2 + height**2)" -msgstr "" -"Tamanho para a nova abertura.\n" -"Se o tipo de abertura for 'R' ou 'O' então\n" -"este valor será automaticamente\n" -"calculado como:\n" -"sqrt(largura^2 + altura^2)" - -#: AppEditors/FlatCAMGrbEditor.py:2557 -msgid "Aperture Type" -msgstr "Tipo de Abertura" - -#: AppEditors/FlatCAMGrbEditor.py:2559 -msgid "" -"Select the type of new aperture. Can be:\n" -"C = circular\n" -"R = rectangular\n" -"O = oblong" -msgstr "" -"Selecione o tipo da nova abertura. Pode ser:\n" -"C = circular \n" -"R = retangular \n" -"O = oblongo" - -#: AppEditors/FlatCAMGrbEditor.py:2570 -msgid "Aperture Dim" -msgstr "Dim Abertura" - -#: AppEditors/FlatCAMGrbEditor.py:2572 -msgid "" -"Dimensions for the new aperture.\n" -"Active only for rectangular apertures (type R).\n" -"The format is (width, height)" -msgstr "" -"Dimensões da nova abertura.\n" -"Ativa apenas para aberturas retangulares (tipo R).\n" -"O formato é (largura, altura)" - -#: AppEditors/FlatCAMGrbEditor.py:2581 -msgid "Add/Delete Aperture" -msgstr "Adicionar/Excluir Abertura" - -#: AppEditors/FlatCAMGrbEditor.py:2583 -msgid "Add/Delete an aperture in the aperture table" -msgstr "Adicionar/Excluir uma abertura na tabela de aberturas" - -#: AppEditors/FlatCAMGrbEditor.py:2592 -msgid "Add a new aperture to the aperture list." -msgstr "Adiciona uma nova abertura à lista de aberturas." - -#: AppEditors/FlatCAMGrbEditor.py:2595 AppEditors/FlatCAMGrbEditor.py:2743 -#: AppGUI/MainGUI.py:748 AppGUI/MainGUI.py:1068 AppGUI/MainGUI.py:1527 -#: AppGUI/MainGUI.py:2099 AppGUI/MainGUI.py:4514 AppGUI/ObjectUI.py:1525 -#: AppObjects/FlatCAMGeometry.py:563 AppTools/ToolIsolation.py:298 -#: AppTools/ToolIsolation.py:616 AppTools/ToolNCC.py:316 -#: AppTools/ToolNCC.py:637 AppTools/ToolPaint.py:298 AppTools/ToolPaint.py:681 -#: AppTools/ToolSolderPaste.py:133 AppTools/ToolSolderPaste.py:608 -#: App_Main.py:5672 -msgid "Delete" -msgstr "Excluir" - -#: AppEditors/FlatCAMGrbEditor.py:2597 -msgid "Delete a aperture in the aperture list" -msgstr "Exclui uma abertura da lista de aberturas" - -#: AppEditors/FlatCAMGrbEditor.py:2614 -msgid "Buffer Aperture" -msgstr "Buffer Abertura" - -#: AppEditors/FlatCAMGrbEditor.py:2616 -msgid "Buffer a aperture in the aperture list" -msgstr "Buffer de uma abertura na lista de aberturas" - -#: AppEditors/FlatCAMGrbEditor.py:2629 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:195 -msgid "Buffer distance" -msgstr "Distância do buffer" - -#: AppEditors/FlatCAMGrbEditor.py:2630 -msgid "Buffer corner" -msgstr "Canto do buffer" - -#: AppEditors/FlatCAMGrbEditor.py:2632 -msgid "" -"There are 3 types of corners:\n" -" - 'Round': the corner is rounded.\n" -" - 'Square': the corner is met in a sharp angle.\n" -" - 'Beveled': the corner is a line that directly connects the features " -"meeting in the corner" -msgstr "" -"Existem 3 tipos de cantos:\n" -"- 'Redondo': o canto é arredondado.\n" -"- 'Quadrado:' o canto é em um ângulo agudo.\n" -"- 'Chanfrado:' o canto é uma linha que conecta diretamente os recursos " -"reunidos no canto" - -#: AppEditors/FlatCAMGrbEditor.py:2647 AppGUI/MainGUI.py:1055 -#: AppGUI/MainGUI.py:1454 AppGUI/MainGUI.py:1497 AppGUI/MainGUI.py:2087 -#: AppGUI/MainGUI.py:4511 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:200 -#: AppTools/ToolTransform.py:29 -msgid "Buffer" -msgstr "Buffer" - -#: AppEditors/FlatCAMGrbEditor.py:2662 -msgid "Scale Aperture" -msgstr "Redim. Abertura" - -#: AppEditors/FlatCAMGrbEditor.py:2664 -msgid "Scale a aperture in the aperture list" -msgstr "Redimensiona uma abertura na lista de aberturas" - -#: AppEditors/FlatCAMGrbEditor.py:2672 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:210 -msgid "Scale factor" -msgstr "Fator de Escala" - -#: AppEditors/FlatCAMGrbEditor.py:2674 -msgid "" -"The factor by which to scale the selected aperture.\n" -"Values can be between 0.0000 and 999.9999" -msgstr "" -"O fator para redimensionar a abertura selecionada. \n" -"Os valores podem estar entre 0.0000 e 999.9999" - -#: AppEditors/FlatCAMGrbEditor.py:2702 -msgid "Mark polygons" -msgstr "Marcar polígonos" - -#: AppEditors/FlatCAMGrbEditor.py:2704 -msgid "Mark the polygon areas." -msgstr "Marcar as áreas de polígonos." - -#: AppEditors/FlatCAMGrbEditor.py:2712 -msgid "Area UPPER threshold" -msgstr "Limite de área SUPERIOR" - -#: AppEditors/FlatCAMGrbEditor.py:2714 -msgid "" -"The threshold value, all areas less than this are marked.\n" -"Can have a value between 0.0000 and 9999.9999" -msgstr "" -"Valor limite, todas as áreas menores que isso são marcadas.\n" -"Pode ser um valor entre 0.0000 e 9999.9999" - -#: AppEditors/FlatCAMGrbEditor.py:2721 -msgid "Area LOWER threshold" -msgstr "Limite de área INFERIOR" - -#: AppEditors/FlatCAMGrbEditor.py:2723 -msgid "" -"The threshold value, all areas more than this are marked.\n" -"Can have a value between 0.0000 and 9999.9999" -msgstr "" -"Valor limite, todas as áreas maiores que isso são marcadas.\n" -"Pode ser um valor entre 0.0000 e 9999.9999" - -#: AppEditors/FlatCAMGrbEditor.py:2737 -msgid "Mark" -msgstr "Marcar" - -#: AppEditors/FlatCAMGrbEditor.py:2739 -msgid "Mark the polygons that fit within limits." -msgstr "Marcar os polígonos que se encaixam dentro dos limites." - -#: AppEditors/FlatCAMGrbEditor.py:2745 -msgid "Delete all the marked polygons." -msgstr "Excluir todos os polígonos marcados." - -#: AppEditors/FlatCAMGrbEditor.py:2751 -msgid "Clear all the markings." -msgstr "Limpar todas as marcações." - -#: AppEditors/FlatCAMGrbEditor.py:2771 AppGUI/MainGUI.py:1040 -#: AppGUI/MainGUI.py:2072 AppGUI/MainGUI.py:4511 -msgid "Add Pad Array" -msgstr "Adicionar Matriz de Pads" - -#: AppEditors/FlatCAMGrbEditor.py:2773 -msgid "Add an array of pads (linear or circular array)" -msgstr "Adicione uma matriz de pads (matriz linear ou circular)" - -#: AppEditors/FlatCAMGrbEditor.py:2779 -msgid "" -"Select the type of pads array to create.\n" -"It can be Linear X(Y) or Circular" -msgstr "" -"Selecione o tipo de matriz de pads para criar.\n" -"Pode ser Linear X(Y) ou Circular" - -#: AppEditors/FlatCAMGrbEditor.py:2790 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:95 -msgid "Nr of pads" -msgstr "Nº de pads" - -#: AppEditors/FlatCAMGrbEditor.py:2792 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:97 -msgid "Specify how many pads to be in the array." -msgstr "Especifique quantos pads devem estar na matriz." - -#: AppEditors/FlatCAMGrbEditor.py:2841 -msgid "" -"Angle at which the linear array is placed.\n" -"The precision is of max 2 decimals.\n" -"Min value is: -359.99 degrees.\n" -"Max value is: 360.00 degrees." -msgstr "" -"Ângulo no qual a matriz linear é colocada.\n" -"A precisão é de no máximo 2 decimais.\n" -"Valor mínimo: -359.99 graus.\n" -"Valor máximo: 360.00 graus." - -#: AppEditors/FlatCAMGrbEditor.py:3335 AppEditors/FlatCAMGrbEditor.py:3339 -msgid "Aperture code value is missing or wrong format. Add it and retry." -msgstr "" -"O valor do código de abertura está ausente ou em formato incorreto. Altere e " -"tente novamente." - -#: AppEditors/FlatCAMGrbEditor.py:3375 -msgid "" -"Aperture dimensions value is missing or wrong format. Add it in format " -"(width, height) and retry." -msgstr "" -"O valor das dimensões da abertura está ausente ou está no formato errado. " -"Altere (largura, altura) e tente novamente." - -#: AppEditors/FlatCAMGrbEditor.py:3388 -msgid "Aperture size value is missing or wrong format. Add it and retry." -msgstr "" -"O valor do tamanho da abertura está ausente ou está no formato errado. " -"Altere e tente novamente." - -#: AppEditors/FlatCAMGrbEditor.py:3399 -msgid "Aperture already in the aperture table." -msgstr "Abertura já na tabela de aberturas." - -#: AppEditors/FlatCAMGrbEditor.py:3406 -msgid "Added new aperture with code" -msgstr "Adicionada nova abertura com código" - -#: AppEditors/FlatCAMGrbEditor.py:3438 -msgid " Select an aperture in Aperture Table" -msgstr " Selecione uma abertura na Tabela de Aberturas" - -#: AppEditors/FlatCAMGrbEditor.py:3446 -msgid "Select an aperture in Aperture Table -->" -msgstr "Selecione uma abertura na Tabela de Aberturas ->" - -#: AppEditors/FlatCAMGrbEditor.py:3460 -msgid "Deleted aperture with code" -msgstr "Abertura excluída com código" - -#: AppEditors/FlatCAMGrbEditor.py:3528 -msgid "Dimensions need two float values separated by comma." -msgstr "" -"As dimensões precisam de dois valores flutuantes separados por vírgula." - -#: AppEditors/FlatCAMGrbEditor.py:3537 -msgid "Dimensions edited." -msgstr "Dimensões editadas." - -#: AppEditors/FlatCAMGrbEditor.py:4067 -msgid "Loading Gerber into Editor" -msgstr "Lendo Gerber no Editor" - -#: AppEditors/FlatCAMGrbEditor.py:4195 -msgid "Setting up the UI" -msgstr "Configurando a interface do usuário" - -#: AppEditors/FlatCAMGrbEditor.py:4196 -#, fuzzy -#| msgid "Adding geometry finished. Preparing the GUI" -msgid "Adding geometry finished. Preparing the AppGUI" -msgstr "Geometria adicionada. Preparando a GUI" - -#: AppEditors/FlatCAMGrbEditor.py:4205 -msgid "Finished loading the Gerber object into the editor." -msgstr "Carregamento do objeto Gerber no editor concluído." - -#: AppEditors/FlatCAMGrbEditor.py:4346 -msgid "" -"There are no Aperture definitions in the file. Aborting Gerber creation." -msgstr "" -"Não há definições da Abertura no arquivo. Abortando a criação de Gerber." - -#: AppEditors/FlatCAMGrbEditor.py:4348 AppObjects/AppObject.py:133 -#: AppObjects/FlatCAMGeometry.py:1786 AppParsers/ParseExcellon.py:896 -#: AppTools/ToolPcbWizard.py:432 App_Main.py:8465 App_Main.py:8529 -#: App_Main.py:8660 App_Main.py:8725 App_Main.py:9377 -msgid "An internal error has occurred. See shell.\n" -msgstr "Ocorreu um erro interno. Veja shell (linha de comando).\n" - -#: AppEditors/FlatCAMGrbEditor.py:4356 -msgid "Creating Gerber." -msgstr "Criando Gerber." - -#: AppEditors/FlatCAMGrbEditor.py:4368 -msgid "Done. Gerber editing finished." -msgstr "Edição de Gerber concluída." - -#: AppEditors/FlatCAMGrbEditor.py:4384 -msgid "Cancelled. No aperture is selected" -msgstr "Cancelado. Nenhuma abertura selecionada" - -#: AppEditors/FlatCAMGrbEditor.py:4539 App_Main.py:5998 -msgid "Coordinates copied to clipboard." -msgstr "Coordenadas copiadas para a área de transferência." - -#: AppEditors/FlatCAMGrbEditor.py:4986 -msgid "Failed. No aperture geometry is selected." -msgstr "Cancelado. Nenhuma abertura selecionada." - -#: AppEditors/FlatCAMGrbEditor.py:4995 AppEditors/FlatCAMGrbEditor.py:5266 -msgid "Done. Apertures geometry deleted." -msgstr "Abertura excluída." - -#: AppEditors/FlatCAMGrbEditor.py:5138 -msgid "No aperture to buffer. Select at least one aperture and try again." -msgstr "" -"Nenhuma abertura para buffer. Selecione pelo menos uma abertura e tente " -"novamente." - -#: AppEditors/FlatCAMGrbEditor.py:5150 -msgid "Failed." -msgstr "Falhou." - -#: AppEditors/FlatCAMGrbEditor.py:5169 -msgid "Scale factor value is missing or wrong format. Add it and retry." -msgstr "" -"O valor do fator de escala está ausente ou está em formato incorreto. Altere " -"e tente novamente." - -#: AppEditors/FlatCAMGrbEditor.py:5201 -msgid "No aperture to scale. Select at least one aperture and try again." -msgstr "" -"Nenhuma abertura para redimensionar. Selecione pelo menos uma abertura e " -"tente novamente." - -#: AppEditors/FlatCAMGrbEditor.py:5217 -msgid "Done. Scale Tool completed." -msgstr "Redimensionamento concluído." - -#: AppEditors/FlatCAMGrbEditor.py:5255 -msgid "Polygons marked." -msgstr "Polígonos marcados." - -#: AppEditors/FlatCAMGrbEditor.py:5258 -msgid "No polygons were marked. None fit within the limits." -msgstr "Nenhum polígono foi marcado. Nenhum se encaixa dentro dos limites." - -#: AppEditors/FlatCAMGrbEditor.py:5982 -msgid "Rotation action was not executed." -msgstr "A rotação não foi executada." - -#: AppEditors/FlatCAMGrbEditor.py:6053 App_Main.py:5432 App_Main.py:5480 -msgid "Flip action was not executed." -msgstr "A ação de espelhamento não foi executada." - -#: AppEditors/FlatCAMGrbEditor.py:6110 -msgid "Skew action was not executed." -msgstr "A inclinação não foi executada." - -#: AppEditors/FlatCAMGrbEditor.py:6175 -msgid "Scale action was not executed." -msgstr "O redimensionamento não foi executado." - -#: AppEditors/FlatCAMGrbEditor.py:6218 -msgid "Offset action was not executed." -msgstr "O deslocamento não foi executado." - -#: AppEditors/FlatCAMGrbEditor.py:6268 -msgid "Geometry shape offset Y cancelled" -msgstr "Deslocamento Y cancelado" - -#: AppEditors/FlatCAMGrbEditor.py:6283 -msgid "Geometry shape skew X cancelled" -msgstr "Inclinação X cancelada" - -#: AppEditors/FlatCAMGrbEditor.py:6298 -msgid "Geometry shape skew Y cancelled" -msgstr "Inclinação Y cancelada" - -#: AppEditors/FlatCAMTextEditor.py:74 -msgid "Print Preview" -msgstr "Visualizar Impressão" - -#: AppEditors/FlatCAMTextEditor.py:75 -msgid "Open a OS standard Preview Print window." -msgstr "Abre a janela Visualizar Impressão do SO." - -#: AppEditors/FlatCAMTextEditor.py:78 -msgid "Print Code" -msgstr "Imprimir Código" - -#: AppEditors/FlatCAMTextEditor.py:79 -msgid "Open a OS standard Print window." -msgstr "Abre a janela Imprimir do SO." - -#: AppEditors/FlatCAMTextEditor.py:81 -msgid "Find in Code" -msgstr "Encontrar no Código" - -#: AppEditors/FlatCAMTextEditor.py:82 -msgid "Will search and highlight in yellow the string in the Find box." -msgstr "Procurará e destacará em amarelo o texto da caixa Procurar." - -#: AppEditors/FlatCAMTextEditor.py:86 -msgid "Find box. Enter here the strings to be searched in the text." -msgstr "Caixa Procurar. Digite aqui o texto a procurar." - -#: AppEditors/FlatCAMTextEditor.py:88 -msgid "Replace With" -msgstr "Substituir Por" - -#: AppEditors/FlatCAMTextEditor.py:89 -msgid "" -"Will replace the string from the Find box with the one in the Replace box." -msgstr "Substituirá o texto da caixa Localizar pelo texto da caixa Substituir." - -#: AppEditors/FlatCAMTextEditor.py:93 -msgid "String to replace the one in the Find box throughout the text." -msgstr "Texto para substituir o da caixa Localizar ao longo do texto." - -#: AppEditors/FlatCAMTextEditor.py:95 AppGUI/ObjectUI.py:2149 -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:54 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:285 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280 -#: AppTools/ToolIsolation.py:504 AppTools/ToolIsolation.py:1287 -#: AppTools/ToolIsolation.py:1669 AppTools/ToolPaint.py:485 -#: AppTools/ToolPaint.py:1446 defaults.py:403 defaults.py:446 -#: tclCommands/TclCommandPaint.py:162 -msgid "All" -msgstr "Todos" - -#: AppEditors/FlatCAMTextEditor.py:96 -msgid "" -"When checked it will replace all instances in the 'Find' box\n" -"with the text in the 'Replace' box.." -msgstr "" -"Quando marcado, todas as instâncias na caixa 'Localizar'\n" -"serão substituídas pelo texto na caixa 'Substituir'." - -#: AppEditors/FlatCAMTextEditor.py:99 -msgid "Copy All" -msgstr "Copiar tudo" - -#: AppEditors/FlatCAMTextEditor.py:100 -msgid "Will copy all the text in the Code Editor to the clipboard." -msgstr "Copiará todo o texto no Editor de código para a área de transferência." - -#: AppEditors/FlatCAMTextEditor.py:103 -msgid "Open Code" -msgstr "Abrir Código" - -#: AppEditors/FlatCAMTextEditor.py:104 -msgid "Will open a text file in the editor." -msgstr "Abrirá um arquivo de texto no editor." - -#: AppEditors/FlatCAMTextEditor.py:106 -msgid "Save Code" -msgstr "Salvar Código" - -#: AppEditors/FlatCAMTextEditor.py:107 -msgid "Will save the text in the editor into a file." -msgstr "Salvará o texto do editor em um arquivo." - -#: AppEditors/FlatCAMTextEditor.py:109 -msgid "Run Code" -msgstr "Executar Código" - -#: AppEditors/FlatCAMTextEditor.py:110 -msgid "Will run the TCL commands found in the text file, one by one." -msgstr "Executará os comandos TCL do arquivo de texto, um a um." - -#: AppEditors/FlatCAMTextEditor.py:184 -msgid "Open file" -msgstr "Abrir arquivo" - -#: AppEditors/FlatCAMTextEditor.py:215 AppEditors/FlatCAMTextEditor.py:220 -#: AppObjects/FlatCAMCNCJob.py:507 AppObjects/FlatCAMCNCJob.py:512 -#: AppTools/ToolSolderPaste.py:1508 -msgid "Export Code ..." -msgstr "Exportar código ..." - -#: AppEditors/FlatCAMTextEditor.py:272 AppObjects/FlatCAMCNCJob.py:955 -#: AppTools/ToolSolderPaste.py:1538 -msgid "No such file or directory" -msgstr "Nenhum arquivo ou diretório" - -#: AppEditors/FlatCAMTextEditor.py:284 AppObjects/FlatCAMCNCJob.py:969 -msgid "Saved to" -msgstr "Salvo em" - -#: AppEditors/FlatCAMTextEditor.py:334 -msgid "Code Editor content copied to clipboard ..." -msgstr "Conteúdo do Code Editor copiado para a área de transferência ..." - -#: AppGUI/GUIElements.py:2690 -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:169 -#: AppTools/ToolDblSided.py:173 AppTools/ToolDblSided.py:388 -#: AppTools/ToolFilm.py:202 -msgid "Reference" -msgstr "Referência" - -#: AppGUI/GUIElements.py:2692 -msgid "" -"The reference can be:\n" -"- Absolute -> the reference point is point (0,0)\n" -"- Relative -> the reference point is the mouse position before Jump" -msgstr "" -"A referência pode ser:\n" -"- Absoluto -> o ponto de referência é o ponto (0,0)\n" -"- Relativo -> o ponto de referência é a posição do mouse antes de Jump" - -#: AppGUI/GUIElements.py:2697 -msgid "Abs" -msgstr "Abs" - -#: AppGUI/GUIElements.py:2698 -msgid "Relative" -msgstr "Relativo" - -#: AppGUI/GUIElements.py:2708 -msgid "Location" -msgstr "Localização" - -#: AppGUI/GUIElements.py:2710 -msgid "" -"The Location value is a tuple (x,y).\n" -"If the reference is Absolute then the Jump will be at the position (x,y).\n" -"If the reference is Relative then the Jump will be at the (x,y) distance\n" -"from the current mouse location point." -msgstr "" -"O valor do local é uma tupla (x, y).\n" -"Se a referência for Absoluta, o Salto estará na posição (x, y).\n" -"Se a referência for Relativa, o salto estará na distância (x, y)\n" -"a partir do ponto de localização atual do mouse." - -#: AppGUI/GUIElements.py:2750 -msgid "Save Log" -msgstr "Salvar Log" - -#: AppGUI/GUIElements.py:2760 App_Main.py:2679 App_Main.py:2988 -#: App_Main.py:3122 -msgid "Close" -msgstr "Fechar" - -#: AppGUI/GUIElements.py:2769 AppTools/ToolShell.py:296 -msgid "Type >help< to get started" -msgstr "Digite >help< para iniciar" - -#: AppGUI/GUIElements.py:3159 AppGUI/GUIElements.py:3168 -msgid "Idle." -msgstr "Ocioso." - -#: AppGUI/GUIElements.py:3201 -msgid "Application started ..." -msgstr "Aplicativo iniciado ..." - -#: AppGUI/GUIElements.py:3202 -msgid "Hello!" -msgstr "Olá!" - -#: AppGUI/GUIElements.py:3249 AppGUI/MainGUI.py:190 AppGUI/MainGUI.py:895 -#: AppGUI/MainGUI.py:1927 -msgid "Run Script ..." -msgstr "Executar Script ..." - -#: AppGUI/GUIElements.py:3251 AppGUI/MainGUI.py:192 -msgid "" -"Will run the opened Tcl Script thus\n" -"enabling the automation of certain\n" -"functions of FlatCAM." -msgstr "" -"Executará o script TCL aberto,\n" -"ativando a automação de certas\n" -"funções do FlatCAM." - -#: AppGUI/GUIElements.py:3260 AppGUI/MainGUI.py:118 -#: AppTools/ToolPcbWizard.py:62 AppTools/ToolPcbWizard.py:69 -msgid "Open" -msgstr "Abrir" - -#: AppGUI/GUIElements.py:3264 -msgid "Open Project ..." -msgstr "Abrir Projeto ..." - -#: AppGUI/GUIElements.py:3270 AppGUI/MainGUI.py:129 -msgid "Open &Gerber ...\tCtrl+G" -msgstr "Abrir &Gerber ...\tCtrl+G" - -#: AppGUI/GUIElements.py:3275 AppGUI/MainGUI.py:134 -msgid "Open &Excellon ...\tCtrl+E" -msgstr "Abrir &Excellon ...\tCtrl+E" - -#: AppGUI/GUIElements.py:3280 AppGUI/MainGUI.py:139 -msgid "Open G-&Code ..." -msgstr "Abrir G-&Code ..." - -#: AppGUI/GUIElements.py:3290 -msgid "Exit" -msgstr "Sair" - -#: AppGUI/MainGUI.py:67 AppGUI/MainGUI.py:69 AppGUI/MainGUI.py:1407 -msgid "Toggle Panel" -msgstr "Alternar Painel" - -#: AppGUI/MainGUI.py:79 -msgid "File" -msgstr "Arquivo" - -#: AppGUI/MainGUI.py:84 -msgid "&New Project ...\tCtrl+N" -msgstr "&Novo Projeto ...\tCtrl+N" - -#: AppGUI/MainGUI.py:86 -msgid "Will create a new, blank project" -msgstr "Criará um novo projeto em branco" - -#: AppGUI/MainGUI.py:91 -msgid "&New" -msgstr "&Novo" - -#: AppGUI/MainGUI.py:95 -msgid "Geometry\tN" -msgstr "Geometria\tN" - -#: AppGUI/MainGUI.py:97 -msgid "Will create a new, empty Geometry Object." -msgstr "Criará um novo Objeto Geometria vazio." - -#: AppGUI/MainGUI.py:100 -msgid "Gerber\tB" -msgstr "Gerber\tB" - -#: AppGUI/MainGUI.py:102 -msgid "Will create a new, empty Gerber Object." -msgstr "Criará um novo Objeto Gerber vazio." - -#: AppGUI/MainGUI.py:105 -msgid "Excellon\tL" -msgstr "Excellon\tL" - -#: AppGUI/MainGUI.py:107 -msgid "Will create a new, empty Excellon Object." -msgstr "Criará um novo Objeto Excellon vazio." - -#: AppGUI/MainGUI.py:112 -msgid "Document\tD" -msgstr "Documento\tD" - -#: AppGUI/MainGUI.py:114 -msgid "Will create a new, empty Document Object." -msgstr "Criará um novo Objeto Documento vazio." - -#: AppGUI/MainGUI.py:123 -msgid "Open &Project ..." -msgstr "Abrir &Projeto ..." - -#: AppGUI/MainGUI.py:146 -msgid "Open Config ..." -msgstr "Abrir Configuração ..." - -#: AppGUI/MainGUI.py:151 -msgid "Recent projects" -msgstr "Projetos Recentes" - -#: AppGUI/MainGUI.py:153 -msgid "Recent files" -msgstr "Arquivos Recentes" - -#: AppGUI/MainGUI.py:156 AppGUI/MainGUI.py:750 AppGUI/MainGUI.py:1380 -msgid "Save" -msgstr "Salvar" - -#: AppGUI/MainGUI.py:160 -msgid "&Save Project ...\tCtrl+S" -msgstr "&Salvar Projeto ...\tCtrl+S" - -#: AppGUI/MainGUI.py:165 -msgid "Save Project &As ...\tCtrl+Shift+S" -msgstr "S&alvar Projeto Como ...\tCtrl+Shift+S" - -#: AppGUI/MainGUI.py:180 -msgid "Scripting" -msgstr "Scripting" - -#: AppGUI/MainGUI.py:184 AppGUI/MainGUI.py:891 AppGUI/MainGUI.py:1923 -msgid "New Script ..." -msgstr "Novo Script ..." - -#: AppGUI/MainGUI.py:186 AppGUI/MainGUI.py:893 AppGUI/MainGUI.py:1925 -msgid "Open Script ..." -msgstr "Abrir Script ..." - -#: AppGUI/MainGUI.py:188 -msgid "Open Example ..." -msgstr "Abrir Exemplo ..." - -#: AppGUI/MainGUI.py:207 -msgid "Import" -msgstr "Importar" - -#: AppGUI/MainGUI.py:209 -msgid "&SVG as Geometry Object ..." -msgstr "&SVG como Objeto de Geometria ..." - -#: AppGUI/MainGUI.py:212 -msgid "&SVG as Gerber Object ..." -msgstr "&SVG como Objeto Gerber ..." - -#: AppGUI/MainGUI.py:217 -msgid "&DXF as Geometry Object ..." -msgstr "&DXF como Objeto de Geometria ..." - -#: AppGUI/MainGUI.py:220 -msgid "&DXF as Gerber Object ..." -msgstr "&DXF como Objeto Gerber ..." - -#: AppGUI/MainGUI.py:224 -msgid "HPGL2 as Geometry Object ..." -msgstr "HPGL2 como objeto de geometria ..." - -#: AppGUI/MainGUI.py:230 -msgid "Export" -msgstr "Exportar" - -#: AppGUI/MainGUI.py:234 -msgid "Export &SVG ..." -msgstr "Exportar &SVG ..." - -#: AppGUI/MainGUI.py:238 -msgid "Export DXF ..." -msgstr "Exportar DXF ..." - -#: AppGUI/MainGUI.py:244 -msgid "Export &PNG ..." -msgstr "Exportar &PNG ..." - -#: AppGUI/MainGUI.py:246 -msgid "" -"Will export an image in PNG format,\n" -"the saved image will contain the visual \n" -"information currently in FlatCAM Plot Area." -msgstr "" -"Exportará uma imagem em formato PNG.\n" -"A imagem salva conterá as informações\n" -"visuais atualmente na área gráfica FlatCAM." - -#: AppGUI/MainGUI.py:255 -msgid "Export &Excellon ..." -msgstr "Exportar &Excellon ..." - -#: AppGUI/MainGUI.py:257 -msgid "" -"Will export an Excellon Object as Excellon file,\n" -"the coordinates format, the file units and zeros\n" -"are set in Preferences -> Excellon Export." -msgstr "" -"Exportará um Objeto Excellon como arquivo Excellon.\n" -"O formato das coordenadas, das unidades de arquivo e dos zeros\n" -"são definidos em Preferências -> Exportação de Excellon." - -#: AppGUI/MainGUI.py:264 -msgid "Export &Gerber ..." -msgstr "Exportar &Gerber ..." - -#: AppGUI/MainGUI.py:266 -msgid "" -"Will export an Gerber Object as Gerber file,\n" -"the coordinates format, the file units and zeros\n" -"are set in Preferences -> Gerber Export." -msgstr "" -"Exportará um Objeto Gerber como arquivo Gerber.\n" -"O formato das coordenadas, das unidades de arquivo e dos zeros\n" -"são definidos em Preferências -> Exportar Gerber." - -#: AppGUI/MainGUI.py:276 -msgid "Backup" -msgstr "Backup" - -#: AppGUI/MainGUI.py:281 -msgid "Import Preferences from file ..." -msgstr "Importar preferências de um arquivo ..." - -#: AppGUI/MainGUI.py:287 -msgid "Export Preferences to file ..." -msgstr "Exportar Preferências para um arquivo ..." - -#: AppGUI/MainGUI.py:295 AppGUI/preferences/PreferencesUIManager.py:1119 -msgid "Save Preferences" -msgstr "Salvar Preferências" - -#: AppGUI/MainGUI.py:301 AppGUI/MainGUI.py:4101 -msgid "Print (PDF)" -msgstr "Imprimir (PDF)" - -#: AppGUI/MainGUI.py:309 -msgid "E&xit" -msgstr "Sair" - -#: AppGUI/MainGUI.py:317 AppGUI/MainGUI.py:744 AppGUI/MainGUI.py:1529 -msgid "Edit" -msgstr "Editar" - -#: AppGUI/MainGUI.py:321 -msgid "Edit Object\tE" -msgstr "Editar Objeto\tE" - -#: AppGUI/MainGUI.py:323 -msgid "Close Editor\tCtrl+S" -msgstr "Fechar Editor\tCtrl+S" - -#: AppGUI/MainGUI.py:332 -msgid "Conversion" -msgstr "Conversão" - -#: AppGUI/MainGUI.py:334 -msgid "&Join Geo/Gerber/Exc -> Geo" -msgstr "&Unir Geo/Gerber/Exc -> Geo" - -#: AppGUI/MainGUI.py:336 -msgid "" -"Merge a selection of objects, which can be of type:\n" -"- Gerber\n" -"- Excellon\n" -"- Geometry\n" -"into a new combo Geometry object." -msgstr "" -"Mescla uma seleção de objetos, que podem ser do tipo:\n" -"- Gerber\n" -"- Excellon\n" -"- Geometria\n" -" em um novo objeto Geometria." - -#: AppGUI/MainGUI.py:343 -msgid "Join Excellon(s) -> Excellon" -msgstr "Unir Excellon(s) -> Excellon" - -#: AppGUI/MainGUI.py:345 -msgid "Merge a selection of Excellon objects into a new combo Excellon object." -msgstr "Mescla uma seleção de objetos Excellon em um novo objeto Excellon." - -#: AppGUI/MainGUI.py:348 -msgid "Join Gerber(s) -> Gerber" -msgstr "Unir Gerber(s) -> Gerber" - -#: AppGUI/MainGUI.py:350 -msgid "Merge a selection of Gerber objects into a new combo Gerber object." -msgstr "Mescla uma seleção de objetos Gerber em um novo objeto Gerber." - -#: AppGUI/MainGUI.py:355 -msgid "Convert Single to MultiGeo" -msgstr "Converter Único para MultiGeo" - -#: AppGUI/MainGUI.py:357 -msgid "" -"Will convert a Geometry object from single_geometry type\n" -"to a multi_geometry type." -msgstr "" -"Converterá um objeto Geometria do tipo single_geometry\n" -"em um tipo multi_geometry." - -#: AppGUI/MainGUI.py:361 -msgid "Convert Multi to SingleGeo" -msgstr "Converter MultiGeo para Único" - -#: AppGUI/MainGUI.py:363 -msgid "" -"Will convert a Geometry object from multi_geometry type\n" -"to a single_geometry type." -msgstr "" -"Converterá um objeto Geometria do tipo multi_geometry\n" -"em um tipo single_geometry." - -#: AppGUI/MainGUI.py:370 -msgid "Convert Any to Geo" -msgstr "Converter Qualquer para Geo" - -#: AppGUI/MainGUI.py:373 -msgid "Convert Any to Gerber" -msgstr "Converter Qualquer para Gerber" - -#: AppGUI/MainGUI.py:379 -msgid "&Copy\tCtrl+C" -msgstr "&Copiar\tCtrl+C" - -#: AppGUI/MainGUI.py:384 -msgid "&Delete\tDEL" -msgstr "Excluir\tDEL" - -#: AppGUI/MainGUI.py:389 -msgid "Se&t Origin\tO" -msgstr "Definir Origem\tO" - -#: AppGUI/MainGUI.py:391 -msgid "Move to Origin\tShift+O" -msgstr "Mover para Origem\tShift+O" - -#: AppGUI/MainGUI.py:394 -msgid "Jump to Location\tJ" -msgstr "Ir para a localização\tJ" - -#: AppGUI/MainGUI.py:396 -msgid "Locate in Object\tShift+J" -msgstr "Localizar em Objeto\tShift+J" - -#: AppGUI/MainGUI.py:401 -msgid "Toggle Units\tQ" -msgstr "Alternar Unidades\tQ" - -#: AppGUI/MainGUI.py:403 -msgid "&Select All\tCtrl+A" -msgstr "&Selecionar Tudo\tCtrl+A" - -#: AppGUI/MainGUI.py:408 -msgid "&Preferences\tShift+P" -msgstr "&Preferências\tShift+P" - -#: AppGUI/MainGUI.py:414 AppTools/ToolProperties.py:155 -msgid "Options" -msgstr "Opções" - -#: AppGUI/MainGUI.py:416 -msgid "&Rotate Selection\tShift+(R)" -msgstr "Gi&rar Seleção\tShift+(R)" - -#: AppGUI/MainGUI.py:421 -msgid "&Skew on X axis\tShift+X" -msgstr "Inclinar no eixo X\tShift+X" - -#: AppGUI/MainGUI.py:423 -msgid "S&kew on Y axis\tShift+Y" -msgstr "Inclinar no eixo Y\tShift+Y" - -#: AppGUI/MainGUI.py:428 -msgid "Flip on &X axis\tX" -msgstr "Espelhar no eixo &X\tX" - -#: AppGUI/MainGUI.py:430 -msgid "Flip on &Y axis\tY" -msgstr "Espelhar no eixo &Y\tY" - -#: AppGUI/MainGUI.py:435 -msgid "View source\tAlt+S" -msgstr "Ver fonte\tAlt+S" - -#: AppGUI/MainGUI.py:437 -msgid "Tools DataBase\tCtrl+D" -msgstr "Banco de Dados de Ferramentas\tCtrl+D" - -#: AppGUI/MainGUI.py:444 AppGUI/MainGUI.py:1427 -msgid "View" -msgstr "Ver" - -#: AppGUI/MainGUI.py:446 -msgid "Enable all plots\tAlt+1" -msgstr "Habilitar todos os gráficos\tAlt+1" - -#: AppGUI/MainGUI.py:448 -msgid "Disable all plots\tAlt+2" -msgstr "Desabilitar todos os gráficos\tAlt+2" - -#: AppGUI/MainGUI.py:450 -msgid "Disable non-selected\tAlt+3" -msgstr "Desabilitar os não selecionados\tAlt+3" - -#: AppGUI/MainGUI.py:454 -msgid "&Zoom Fit\tV" -msgstr "&Zoom Ajustado\tV" - -#: AppGUI/MainGUI.py:456 -msgid "&Zoom In\t=" -msgstr "&Zoom +\t=" - -#: AppGUI/MainGUI.py:458 -msgid "&Zoom Out\t-" -msgstr "&Zoom -\t-" - -#: AppGUI/MainGUI.py:463 -msgid "Redraw All\tF5" -msgstr "Redesenha Todos\tF5" - -#: AppGUI/MainGUI.py:467 -msgid "Toggle Code Editor\tShift+E" -msgstr "Alternar o Editor de Códigos\tShift+E" - -#: AppGUI/MainGUI.py:470 -msgid "&Toggle FullScreen\tAlt+F10" -msgstr "Alternar &Tela Cheia\tAlt+F10" - -#: AppGUI/MainGUI.py:472 -msgid "&Toggle Plot Area\tCtrl+F10" -msgstr "Al&ternar Área de Gráficos\tCtrl+F10" - -#: AppGUI/MainGUI.py:474 -msgid "&Toggle Project/Sel/Tool\t`" -msgstr "Al&ternar Projeto/Sel/Ferram\t`" - -#: AppGUI/MainGUI.py:478 -msgid "&Toggle Grid Snap\tG" -msgstr "Al&ternar Encaixe na Grade\tG" - -#: AppGUI/MainGUI.py:480 -msgid "&Toggle Grid Lines\tAlt+G" -msgstr "Al&ternar Encaixe na Grade\tAlt+G" - -#: AppGUI/MainGUI.py:482 -msgid "&Toggle Axis\tShift+G" -msgstr "Al&ternar Eixo\tShift+G" - -#: AppGUI/MainGUI.py:484 -msgid "Toggle Workspace\tShift+W" -msgstr "Alternar Área de Trabalho\tShift+W" - -#: AppGUI/MainGUI.py:486 -#, fuzzy -#| msgid "Toggle Units" -msgid "Toggle HUD\tAlt+H" -msgstr "Alternar Unidades" - -#: AppGUI/MainGUI.py:491 -msgid "Objects" -msgstr "Objetos" - -#: AppGUI/MainGUI.py:494 AppGUI/MainGUI.py:4099 -#: AppObjects/ObjectCollection.py:1121 AppObjects/ObjectCollection.py:1168 -msgid "Select All" -msgstr "Selecionar Todos" - -#: AppGUI/MainGUI.py:496 AppObjects/ObjectCollection.py:1125 -#: AppObjects/ObjectCollection.py:1172 -msgid "Deselect All" -msgstr "Desmarcar todos" - -#: AppGUI/MainGUI.py:505 -msgid "&Command Line\tS" -msgstr "Linha de &Comando\tS" - -#: AppGUI/MainGUI.py:510 -msgid "Help" -msgstr "Ajuda" - -#: AppGUI/MainGUI.py:512 -msgid "Online Help\tF1" -msgstr "Ajuda Online\tF1" - -#: AppGUI/MainGUI.py:515 Bookmark.py:293 -msgid "Bookmarks" -msgstr "Favoritos" - -#: AppGUI/MainGUI.py:518 App_Main.py:3091 App_Main.py:3100 -msgid "Bookmarks Manager" -msgstr "Gerenciados de Favoritos" - -#: AppGUI/MainGUI.py:522 -msgid "Report a bug" -msgstr "Reportar um bug" - -#: AppGUI/MainGUI.py:525 -msgid "Excellon Specification" -msgstr "Especificação Excellon" - -#: AppGUI/MainGUI.py:527 -msgid "Gerber Specification" -msgstr "Especificação Gerber" - -#: AppGUI/MainGUI.py:532 -msgid "Shortcuts List\tF3" -msgstr "Lista de Atalhos\tF3" - -#: AppGUI/MainGUI.py:534 -msgid "YouTube Channel\tF4" -msgstr "Canal no YouTube\tF4" - -#: AppGUI/MainGUI.py:539 -msgid "ReadMe?" -msgstr "" - -#: AppGUI/MainGUI.py:542 App_Main.py:2646 -msgid "About FlatCAM" -msgstr "Sobre FlatCAM" - -#: AppGUI/MainGUI.py:551 -msgid "Add Circle\tO" -msgstr "Adicionar Círculo\tO" - -#: AppGUI/MainGUI.py:554 -msgid "Add Arc\tA" -msgstr "Adicionar Arco\tA" - -#: AppGUI/MainGUI.py:557 -msgid "Add Rectangle\tR" -msgstr "Adicionar Retângulo\tR" - -#: AppGUI/MainGUI.py:560 -msgid "Add Polygon\tN" -msgstr "Adicionar Polígono\tN" - -#: AppGUI/MainGUI.py:563 -msgid "Add Path\tP" -msgstr "Adicionar Caminho\tP" - -#: AppGUI/MainGUI.py:566 -msgid "Add Text\tT" -msgstr "Adicionar Texto\tT" - -#: AppGUI/MainGUI.py:569 -msgid "Polygon Union\tU" -msgstr "Unir Polígonos\tU" - -#: AppGUI/MainGUI.py:571 -msgid "Polygon Intersection\tE" -msgstr "Interseção de Polígonos\tE" - -#: AppGUI/MainGUI.py:573 -msgid "Polygon Subtraction\tS" -msgstr "Subtração de Polígonos\tS" - -#: AppGUI/MainGUI.py:577 -msgid "Cut Path\tX" -msgstr "Caminho de Corte\tX" - -#: AppGUI/MainGUI.py:581 -msgid "Copy Geom\tC" -msgstr "Copiar Geom\tC" - -#: AppGUI/MainGUI.py:583 -msgid "Delete Shape\tDEL" -msgstr "Excluir Forma\tDEL" - -#: AppGUI/MainGUI.py:587 AppGUI/MainGUI.py:674 -msgid "Move\tM" -msgstr "Mover\tM" - -#: AppGUI/MainGUI.py:589 -msgid "Buffer Tool\tB" -msgstr "Ferramenta Buffer\tB" - -#: AppGUI/MainGUI.py:592 -msgid "Paint Tool\tI" -msgstr "Ferramenta de Pintura\tI" - -#: AppGUI/MainGUI.py:595 -msgid "Transform Tool\tAlt+R" -msgstr "Ferramenta de Transformação\tAlt+R" - -#: AppGUI/MainGUI.py:599 -msgid "Toggle Corner Snap\tK" -msgstr "Alternar Encaixe de Canto\tK" - -#: AppGUI/MainGUI.py:605 -msgid ">Excellon Editor<" -msgstr ">Editor Excellon<" - -#: AppGUI/MainGUI.py:609 -msgid "Add Drill Array\tA" -msgstr "Adicionar Matriz de Furos\tA" - -#: AppGUI/MainGUI.py:611 -msgid "Add Drill\tD" -msgstr "Adicionar Furo\tD" - -#: AppGUI/MainGUI.py:615 -msgid "Add Slot Array\tQ" -msgstr "Adic. Matriz de Ranhuras\tQ" - -#: AppGUI/MainGUI.py:617 -msgid "Add Slot\tW" -msgstr "Adicionar Ranhura\tW" - -#: AppGUI/MainGUI.py:621 -msgid "Resize Drill(S)\tR" -msgstr "Redimensionar Furo(s)\tR" - -#: AppGUI/MainGUI.py:624 AppGUI/MainGUI.py:668 -msgid "Copy\tC" -msgstr "Copiar\tC" - -#: AppGUI/MainGUI.py:626 AppGUI/MainGUI.py:670 -msgid "Delete\tDEL" -msgstr "Excluir\tDEL" - -#: AppGUI/MainGUI.py:631 -msgid "Move Drill(s)\tM" -msgstr "Mover Furo(s)\tM" - -#: AppGUI/MainGUI.py:636 -msgid ">Gerber Editor<" -msgstr ">Editor Gerber<" - -#: AppGUI/MainGUI.py:640 -msgid "Add Pad\tP" -msgstr "Adicionar Pad\tP" - -#: AppGUI/MainGUI.py:642 -msgid "Add Pad Array\tA" -msgstr "Adicionar Matriz de Pads\tA" - -#: AppGUI/MainGUI.py:644 -msgid "Add Track\tT" -msgstr "Adicionar Trilha\tT" - -#: AppGUI/MainGUI.py:646 -msgid "Add Region\tN" -msgstr "Adicionar Região\tN" - -#: AppGUI/MainGUI.py:650 -msgid "Poligonize\tAlt+N" -msgstr "Poligonizar\tAlt+N" - -#: AppGUI/MainGUI.py:652 -msgid "Add SemiDisc\tE" -msgstr "Adicionar SemiDisco\tE" - -#: AppGUI/MainGUI.py:654 -msgid "Add Disc\tD" -msgstr "Adicionar Disco\tD" - -#: AppGUI/MainGUI.py:656 -msgid "Buffer\tB" -msgstr "Buffer\tB" - -#: AppGUI/MainGUI.py:658 -msgid "Scale\tS" -msgstr "Escala\tS" - -#: AppGUI/MainGUI.py:660 -msgid "Mark Area\tAlt+A" -msgstr "Marcar Área\tAlt+A" - -#: AppGUI/MainGUI.py:662 -msgid "Eraser\tCtrl+E" -msgstr "Borracha\tCtrl+E" - -#: AppGUI/MainGUI.py:664 -msgid "Transform\tAlt+R" -msgstr "Transformar\tAlt+R" - -#: AppGUI/MainGUI.py:691 -msgid "Enable Plot" -msgstr "Habilitar Gráfico" - -#: AppGUI/MainGUI.py:693 -msgid "Disable Plot" -msgstr "Desabilitar Gráfico" - -#: AppGUI/MainGUI.py:697 -msgid "Set Color" -msgstr "Definir cor" - -#: AppGUI/MainGUI.py:700 App_Main.py:9644 -msgid "Red" -msgstr "Vermelho" - -#: AppGUI/MainGUI.py:703 App_Main.py:9646 -msgid "Blue" -msgstr "Azul" - -#: AppGUI/MainGUI.py:706 App_Main.py:9649 -msgid "Yellow" -msgstr "Amarela" - -#: AppGUI/MainGUI.py:709 App_Main.py:9651 -msgid "Green" -msgstr "Verde" - -#: AppGUI/MainGUI.py:712 App_Main.py:9653 -msgid "Purple" -msgstr "Roxo" - -#: AppGUI/MainGUI.py:715 App_Main.py:9655 -msgid "Brown" -msgstr "Marrom" - -#: AppGUI/MainGUI.py:718 App_Main.py:9657 App_Main.py:9713 -msgid "White" -msgstr "Branco" - -#: AppGUI/MainGUI.py:721 App_Main.py:9659 -msgid "Black" -msgstr "Preto" - -#: AppGUI/MainGUI.py:726 App_Main.py:9662 -msgid "Custom" -msgstr "Personalizado" - -#: AppGUI/MainGUI.py:731 App_Main.py:9696 -msgid "Opacity" -msgstr "Opacidade" - -#: AppGUI/MainGUI.py:734 App_Main.py:9672 -msgid "Default" -msgstr "Padrão" - -#: AppGUI/MainGUI.py:739 -msgid "Generate CNC" -msgstr "Gerar CNC" - -#: AppGUI/MainGUI.py:741 -msgid "View Source" -msgstr "Ver Fonte" - -#: AppGUI/MainGUI.py:746 AppGUI/MainGUI.py:851 AppGUI/MainGUI.py:1066 -#: AppGUI/MainGUI.py:1525 AppGUI/MainGUI.py:1886 AppGUI/MainGUI.py:2097 -#: AppGUI/MainGUI.py:4511 AppGUI/ObjectUI.py:1519 -#: AppObjects/FlatCAMGeometry.py:560 AppTools/ToolPanelize.py:551 -#: AppTools/ToolPanelize.py:578 AppTools/ToolPanelize.py:671 -#: AppTools/ToolPanelize.py:700 AppTools/ToolPanelize.py:762 -msgid "Copy" -msgstr "Copiar" - -#: AppGUI/MainGUI.py:754 AppGUI/MainGUI.py:1538 AppTools/ToolProperties.py:31 -msgid "Properties" -msgstr "Propriedades" - -#: AppGUI/MainGUI.py:783 -msgid "File Toolbar" -msgstr "Barra de Ferramentas de Arquivos" - -#: AppGUI/MainGUI.py:787 -msgid "Edit Toolbar" -msgstr "Barra de Ferramentas Editar" - -#: AppGUI/MainGUI.py:791 -msgid "View Toolbar" -msgstr "Barra de Ferramentas Ver" - -#: AppGUI/MainGUI.py:795 -msgid "Shell Toolbar" -msgstr "Barra de Ferramentas Shell" - -#: AppGUI/MainGUI.py:799 -msgid "Tools Toolbar" -msgstr "Barra de Ferramentas Ferramentas" - -#: AppGUI/MainGUI.py:803 -msgid "Excellon Editor Toolbar" -msgstr "Barra de Ferramentas Editor Excellon" - -#: AppGUI/MainGUI.py:809 -msgid "Geometry Editor Toolbar" -msgstr "Barra de Ferramentas Editor de Geometria" - -#: AppGUI/MainGUI.py:813 -msgid "Gerber Editor Toolbar" -msgstr "Barra de Ferramentas Editor Gerber" - -#: AppGUI/MainGUI.py:817 -msgid "Grid Toolbar" -msgstr "Barra de Ferramentas Grade" - -#: AppGUI/MainGUI.py:831 AppGUI/MainGUI.py:1865 App_Main.py:6592 -#: App_Main.py:6597 -msgid "Open Gerber" -msgstr "Abrir Gerber" - -#: AppGUI/MainGUI.py:833 AppGUI/MainGUI.py:1867 App_Main.py:6632 -#: App_Main.py:6637 -msgid "Open Excellon" -msgstr "Abrir Excellon" - -#: AppGUI/MainGUI.py:836 AppGUI/MainGUI.py:1870 -msgid "Open project" -msgstr "Abrir projeto" - -#: AppGUI/MainGUI.py:838 AppGUI/MainGUI.py:1872 -msgid "Save project" -msgstr "Salvar projeto" - -#: AppGUI/MainGUI.py:846 AppGUI/MainGUI.py:1881 -msgid "Save Object and close the Editor" -msgstr "Salvar objeto e fechar o editor" - -#: AppGUI/MainGUI.py:853 AppGUI/MainGUI.py:1888 -msgid "&Delete" -msgstr "&Excluir" - -#: AppGUI/MainGUI.py:856 AppGUI/MainGUI.py:1891 AppGUI/MainGUI.py:4100 -#: AppGUI/MainGUI.py:4308 AppTools/ToolDistance.py:35 -#: AppTools/ToolDistance.py:197 -msgid "Distance Tool" -msgstr "Ferramenta de Distância" - -#: AppGUI/MainGUI.py:858 AppGUI/MainGUI.py:1893 -msgid "Distance Min Tool" -msgstr "Ferramenta Distância Min" - -#: AppGUI/MainGUI.py:860 AppGUI/MainGUI.py:1895 AppGUI/MainGUI.py:4093 -msgid "Set Origin" -msgstr "Definir Origem" - -#: AppGUI/MainGUI.py:862 AppGUI/MainGUI.py:1897 -msgid "Move to Origin" -msgstr "Mover para Origem" - -#: AppGUI/MainGUI.py:865 AppGUI/MainGUI.py:1899 -msgid "Jump to Location" -msgstr "Ir para a localização" - -#: AppGUI/MainGUI.py:867 AppGUI/MainGUI.py:1901 AppGUI/MainGUI.py:4105 -msgid "Locate in Object" -msgstr "Localizar em Objeto" - -#: AppGUI/MainGUI.py:873 AppGUI/MainGUI.py:1907 -msgid "&Replot" -msgstr "&Redesenhar" - -#: AppGUI/MainGUI.py:875 AppGUI/MainGUI.py:1909 -msgid "&Clear plot" -msgstr "Limpar gráfi&co" - -#: AppGUI/MainGUI.py:877 AppGUI/MainGUI.py:1911 AppGUI/MainGUI.py:4096 -msgid "Zoom In" -msgstr "Zoom +" - -#: AppGUI/MainGUI.py:879 AppGUI/MainGUI.py:1913 AppGUI/MainGUI.py:4096 -msgid "Zoom Out" -msgstr "Zoom -" - -#: AppGUI/MainGUI.py:881 AppGUI/MainGUI.py:1429 AppGUI/MainGUI.py:1915 -#: AppGUI/MainGUI.py:4095 -msgid "Zoom Fit" -msgstr "Zoom Ajustado" - -#: AppGUI/MainGUI.py:889 AppGUI/MainGUI.py:1921 -msgid "&Command Line" -msgstr "Linha de &Comando" - -#: AppGUI/MainGUI.py:901 AppGUI/MainGUI.py:1933 -msgid "2Sided Tool" -msgstr "PCB de 2 Faces" - -#: AppGUI/MainGUI.py:903 AppGUI/MainGUI.py:1935 AppGUI/MainGUI.py:4111 -msgid "Align Objects Tool" -msgstr "Ferramenta Alinhar Objetos" - -#: AppGUI/MainGUI.py:905 AppGUI/MainGUI.py:1937 AppGUI/MainGUI.py:4111 -#: AppTools/ToolExtractDrills.py:393 -msgid "Extract Drills Tool" -msgstr "Ferramenta Extrair Furos" - -#: AppGUI/MainGUI.py:908 AppGUI/ObjectUI.py:360 AppTools/ToolCutOut.py:440 -msgid "Cutout Tool" -msgstr "Ferramenta de Recorte" - -#: AppGUI/MainGUI.py:910 AppGUI/MainGUI.py:1942 AppGUI/ObjectUI.py:346 -#: AppGUI/ObjectUI.py:2087 AppTools/ToolNCC.py:974 -msgid "NCC Tool" -msgstr "Ferramenta NCC" - -#: AppGUI/MainGUI.py:914 AppGUI/MainGUI.py:1946 AppGUI/MainGUI.py:4113 -#: AppTools/ToolIsolation.py:38 AppTools/ToolIsolation.py:766 -#, fuzzy -#| msgid "Isolation Type" -msgid "Isolation Tool" -msgstr "Tipo de Isolação" - -#: AppGUI/MainGUI.py:918 AppGUI/MainGUI.py:1950 -msgid "Panel Tool" -msgstr "Ferramenta de Painel" - -#: AppGUI/MainGUI.py:920 AppGUI/MainGUI.py:1952 AppTools/ToolFilm.py:569 -msgid "Film Tool" -msgstr "Ferramenta de Filme" - -#: AppGUI/MainGUI.py:922 AppGUI/MainGUI.py:1954 AppTools/ToolSolderPaste.py:561 -msgid "SolderPaste Tool" -msgstr "Ferramenta Pasta de Solda" - -#: AppGUI/MainGUI.py:924 AppGUI/MainGUI.py:1956 AppGUI/MainGUI.py:4118 -#: AppTools/ToolSub.py:40 -msgid "Subtract Tool" -msgstr "Ferramenta Subtrair" - -#: AppGUI/MainGUI.py:926 AppGUI/MainGUI.py:1958 AppTools/ToolRulesCheck.py:616 -msgid "Rules Tool" -msgstr "Ferramenta de Regras" - -#: AppGUI/MainGUI.py:928 AppGUI/MainGUI.py:1960 AppGUI/MainGUI.py:4115 -#: AppTools/ToolOptimal.py:33 AppTools/ToolOptimal.py:313 -msgid "Optimal Tool" -msgstr "Ferramenta Ideal" - -#: AppGUI/MainGUI.py:933 AppGUI/MainGUI.py:1965 AppGUI/MainGUI.py:4111 -msgid "Calculators Tool" -msgstr "Calculadoras" - -#: AppGUI/MainGUI.py:937 AppGUI/MainGUI.py:1969 AppGUI/MainGUI.py:4116 -#: AppTools/ToolQRCode.py:43 AppTools/ToolQRCode.py:391 -msgid "QRCode Tool" -msgstr "Ferramenta de QRCode" - -#: AppGUI/MainGUI.py:939 AppGUI/MainGUI.py:1971 AppGUI/MainGUI.py:4113 -#: AppTools/ToolCopperThieving.py:39 AppTools/ToolCopperThieving.py:572 -msgid "Copper Thieving Tool" -msgstr "Ferramenta de Adição de Cobre" - -#: AppGUI/MainGUI.py:942 AppGUI/MainGUI.py:1974 AppGUI/MainGUI.py:4112 -#: AppTools/ToolFiducials.py:33 AppTools/ToolFiducials.py:399 -msgid "Fiducials Tool" -msgstr "Ferramenta de Fiduciais" - -#: AppGUI/MainGUI.py:944 AppGUI/MainGUI.py:1976 AppTools/ToolCalibration.py:37 -#: AppTools/ToolCalibration.py:759 -msgid "Calibration Tool" -msgstr "Calibração" - -#: AppGUI/MainGUI.py:946 AppGUI/MainGUI.py:1978 AppGUI/MainGUI.py:4113 -msgid "Punch Gerber Tool" -msgstr "Ferramenta Socar Gerber" - -#: AppGUI/MainGUI.py:948 AppGUI/MainGUI.py:1980 AppTools/ToolInvertGerber.py:31 -msgid "Invert Gerber Tool" -msgstr "Ferramenta Inverter Gerber" - -#: AppGUI/MainGUI.py:950 AppGUI/MainGUI.py:1982 AppGUI/MainGUI.py:4115 -#: AppTools/ToolCorners.py:31 -#, fuzzy -#| msgid "Invert Gerber Tool" -msgid "Corner Markers Tool" -msgstr "Ferramenta Inverter Gerber" - -#: AppGUI/MainGUI.py:952 AppGUI/MainGUI.py:1984 -#: AppTools/ToolEtchCompensation.py:32 AppTools/ToolEtchCompensation.py:288 -#, fuzzy -#| msgid "Editor Transformation Tool" -msgid "Etch Compensation Tool" -msgstr "Ferramenta Transformar" - -#: AppGUI/MainGUI.py:958 AppGUI/MainGUI.py:984 AppGUI/MainGUI.py:1036 -#: AppGUI/MainGUI.py:1990 AppGUI/MainGUI.py:2068 -msgid "Select" -msgstr "Selecionar" - -#: AppGUI/MainGUI.py:960 AppGUI/MainGUI.py:1992 -msgid "Add Drill Hole" -msgstr "Adicionar Furo" - -#: AppGUI/MainGUI.py:962 AppGUI/MainGUI.py:1994 -msgid "Add Drill Hole Array" -msgstr "Adicionar Matriz do Furos" - -#: AppGUI/MainGUI.py:964 AppGUI/MainGUI.py:1517 AppGUI/MainGUI.py:1998 -#: AppGUI/MainGUI.py:4393 -msgid "Add Slot" -msgstr "Adicionar Ranhura" - -#: AppGUI/MainGUI.py:966 AppGUI/MainGUI.py:1519 AppGUI/MainGUI.py:2000 -#: AppGUI/MainGUI.py:4392 -msgid "Add Slot Array" -msgstr "Adicionar Matriz de Ranhuras" - -#: AppGUI/MainGUI.py:968 AppGUI/MainGUI.py:1522 AppGUI/MainGUI.py:1996 -msgid "Resize Drill" -msgstr "Redimensionar Furo" - -#: AppGUI/MainGUI.py:972 AppGUI/MainGUI.py:2004 -msgid "Copy Drill" -msgstr "Copiar Furo" - -#: AppGUI/MainGUI.py:974 AppGUI/MainGUI.py:2006 -msgid "Delete Drill" -msgstr "Excluir Furo" - -#: AppGUI/MainGUI.py:978 AppGUI/MainGUI.py:2010 -msgid "Move Drill" -msgstr "Mover Furo" - -#: AppGUI/MainGUI.py:986 AppGUI/MainGUI.py:2018 -msgid "Add Circle" -msgstr "Adicionar Círculo" - -#: AppGUI/MainGUI.py:988 AppGUI/MainGUI.py:2020 -msgid "Add Arc" -msgstr "Adicionar Arco" - -#: AppGUI/MainGUI.py:990 AppGUI/MainGUI.py:2022 -msgid "Add Rectangle" -msgstr "Adicionar Retângulo" - -#: AppGUI/MainGUI.py:994 AppGUI/MainGUI.py:2026 -msgid "Add Path" -msgstr "Adicionar Caminho" - -#: AppGUI/MainGUI.py:996 AppGUI/MainGUI.py:2028 -msgid "Add Polygon" -msgstr "Adicionar Polígono" - -#: AppGUI/MainGUI.py:999 AppGUI/MainGUI.py:2031 -msgid "Add Text" -msgstr "Adicionar Texto" - -#: AppGUI/MainGUI.py:1001 AppGUI/MainGUI.py:2033 -msgid "Add Buffer" -msgstr "Adicionar Buffer" - -#: AppGUI/MainGUI.py:1003 AppGUI/MainGUI.py:2035 -msgid "Paint Shape" -msgstr "Pintar Forma" - -#: AppGUI/MainGUI.py:1005 AppGUI/MainGUI.py:1062 AppGUI/MainGUI.py:1458 -#: AppGUI/MainGUI.py:1503 AppGUI/MainGUI.py:2037 AppGUI/MainGUI.py:2093 -msgid "Eraser" -msgstr "Borracha" - -#: AppGUI/MainGUI.py:1009 AppGUI/MainGUI.py:2041 -msgid "Polygon Union" -msgstr "União de Polígonos" - -#: AppGUI/MainGUI.py:1011 AppGUI/MainGUI.py:2043 -msgid "Polygon Explode" -msgstr "Explosão de Polígonos" - -#: AppGUI/MainGUI.py:1014 AppGUI/MainGUI.py:2046 -msgid "Polygon Intersection" -msgstr "Interseção de Polígonos" - -#: AppGUI/MainGUI.py:1016 AppGUI/MainGUI.py:2048 -msgid "Polygon Subtraction" -msgstr "Subtração de Polígonos" - -#: AppGUI/MainGUI.py:1020 AppGUI/MainGUI.py:2052 -msgid "Cut Path" -msgstr "Caminho de Corte" - -#: AppGUI/MainGUI.py:1022 -msgid "Copy Shape(s)" -msgstr "Copiar Forma(s)" - -#: AppGUI/MainGUI.py:1025 -msgid "Delete Shape '-'" -msgstr "Excluir Forma '-'" - -#: AppGUI/MainGUI.py:1027 AppGUI/MainGUI.py:1070 AppGUI/MainGUI.py:1470 -#: AppGUI/MainGUI.py:1507 AppGUI/MainGUI.py:2058 AppGUI/MainGUI.py:2101 -#: AppGUI/ObjectUI.py:109 AppGUI/ObjectUI.py:152 -msgid "Transformations" -msgstr "Transformações" - -#: AppGUI/MainGUI.py:1030 -msgid "Move Objects " -msgstr "Mover Objetos " - -#: AppGUI/MainGUI.py:1038 AppGUI/MainGUI.py:2070 AppGUI/MainGUI.py:4512 -msgid "Add Pad" -msgstr "Adicionar Pad" - -#: AppGUI/MainGUI.py:1042 AppGUI/MainGUI.py:2074 AppGUI/MainGUI.py:4513 -msgid "Add Track" -msgstr "Adicionar Trilha" - -#: AppGUI/MainGUI.py:1044 AppGUI/MainGUI.py:2076 AppGUI/MainGUI.py:4512 -msgid "Add Region" -msgstr "Adicionar Região" - -#: AppGUI/MainGUI.py:1046 AppGUI/MainGUI.py:1489 AppGUI/MainGUI.py:2078 -msgid "Poligonize" -msgstr "Poligonizar" - -#: AppGUI/MainGUI.py:1049 AppGUI/MainGUI.py:1491 AppGUI/MainGUI.py:2081 -msgid "SemiDisc" -msgstr "SemiDisco" - -#: AppGUI/MainGUI.py:1051 AppGUI/MainGUI.py:1493 AppGUI/MainGUI.py:2083 -msgid "Disc" -msgstr "Disco" - -#: AppGUI/MainGUI.py:1059 AppGUI/MainGUI.py:1501 AppGUI/MainGUI.py:2091 -msgid "Mark Area" -msgstr "Marcar Área" - -#: AppGUI/MainGUI.py:1073 AppGUI/MainGUI.py:1474 AppGUI/MainGUI.py:1536 -#: AppGUI/MainGUI.py:2104 AppGUI/MainGUI.py:4512 AppTools/ToolMove.py:27 -msgid "Move" -msgstr "Mover" - -#: AppGUI/MainGUI.py:1081 -msgid "Snap to grid" -msgstr "Encaixar na Grade" - -#: AppGUI/MainGUI.py:1084 -msgid "Grid X snapping distance" -msgstr "Distância de encaixe Grade X" - -#: AppGUI/MainGUI.py:1089 -msgid "" -"When active, value on Grid_X\n" -"is copied to the Grid_Y value." -msgstr "" -"Quando ativo, o valor em Grid_X\n" -"é copiado para o valor Grid_Y." - -#: AppGUI/MainGUI.py:1096 -msgid "Grid Y snapping distance" -msgstr "Distância de encaixe Grade Y" - -#: AppGUI/MainGUI.py:1101 -msgid "Toggle the display of axis on canvas" -msgstr "" - -#: AppGUI/MainGUI.py:1107 AppGUI/preferences/PreferencesUIManager.py:846 -#: AppGUI/preferences/PreferencesUIManager.py:938 -#: AppGUI/preferences/PreferencesUIManager.py:966 -#: AppGUI/preferences/PreferencesUIManager.py:1072 App_Main.py:5140 -#: App_Main.py:5145 App_Main.py:5168 -msgid "Preferences" -msgstr "Preferências" - -#: AppGUI/MainGUI.py:1113 -#, fuzzy -#| msgid "&Command Line" -msgid "Command Line" -msgstr "Linha de &Comando" - -#: AppGUI/MainGUI.py:1119 -msgid "HUD (Heads up display)" -msgstr "" - -#: AppGUI/MainGUI.py:1125 AppGUI/preferences/general/GeneralAPPSetGroupUI.py:97 -msgid "" -"Draw a delimiting rectangle on canvas.\n" -"The purpose is to illustrate the limits for our work." -msgstr "" -"Desenha um retângulo de delimitação na tela.\n" -"O objetivo é ilustrar os limites do nosso trabalho." - -#: AppGUI/MainGUI.py:1135 -msgid "Snap to corner" -msgstr "Encaixar no canto" - -#: AppGUI/MainGUI.py:1139 AppGUI/preferences/general/GeneralAPPSetGroupUI.py:78 -msgid "Max. magnet distance" -msgstr "Distância magnética max." - -#: AppGUI/MainGUI.py:1175 AppGUI/MainGUI.py:1420 App_Main.py:7639 -msgid "Project" -msgstr "Projeto" - -#: AppGUI/MainGUI.py:1190 -msgid "Selected" -msgstr "Selecionado" - -#: AppGUI/MainGUI.py:1218 AppGUI/MainGUI.py:1226 -msgid "Plot Area" -msgstr "Área de Gráfico" - -#: AppGUI/MainGUI.py:1253 -msgid "General" -msgstr "Geral" - -#: AppGUI/MainGUI.py:1268 AppTools/ToolCopperThieving.py:74 -#: AppTools/ToolCorners.py:55 AppTools/ToolDblSided.py:64 -#: AppTools/ToolEtchCompensation.py:73 AppTools/ToolExtractDrills.py:61 -#: AppTools/ToolFiducials.py:262 AppTools/ToolInvertGerber.py:72 -#: AppTools/ToolIsolation.py:94 AppTools/ToolOptimal.py:71 -#: AppTools/ToolPunchGerber.py:64 AppTools/ToolQRCode.py:78 -#: AppTools/ToolRulesCheck.py:61 AppTools/ToolSolderPaste.py:67 -#: AppTools/ToolSub.py:70 -msgid "GERBER" -msgstr "Gerber" - -#: AppGUI/MainGUI.py:1278 AppTools/ToolDblSided.py:92 -#: AppTools/ToolRulesCheck.py:199 -msgid "EXCELLON" -msgstr "Excellon" - -#: AppGUI/MainGUI.py:1288 AppTools/ToolDblSided.py:120 AppTools/ToolSub.py:125 -msgid "GEOMETRY" -msgstr "Geometria" - -#: AppGUI/MainGUI.py:1298 -msgid "CNC-JOB" -msgstr "Trabalho CNC" - -#: AppGUI/MainGUI.py:1307 AppGUI/ObjectUI.py:328 AppGUI/ObjectUI.py:2062 -msgid "TOOLS" -msgstr "Ferramentas" - -#: AppGUI/MainGUI.py:1316 -msgid "TOOLS 2" -msgstr "Ferramentas 2" - -#: AppGUI/MainGUI.py:1326 -msgid "UTILITIES" -msgstr "Utilitários" - -#: AppGUI/MainGUI.py:1343 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:201 -msgid "Restore Defaults" -msgstr "Restaurar padrões" - -#: AppGUI/MainGUI.py:1346 -msgid "" -"Restore the entire set of default values\n" -"to the initial values loaded after first launch." -msgstr "" -"Restaurar todo o conjunto de valores padrão\n" -"para os valores iniciais carregados após o primeiro lançamento." - -#: AppGUI/MainGUI.py:1351 -msgid "Open Pref Folder" -msgstr "Abrir a Pasta Pref" - -#: AppGUI/MainGUI.py:1354 -msgid "Open the folder where FlatCAM save the preferences files." -msgstr "Abre a pasta onde o FlatCAM salva os arquivos de preferências." - -#: AppGUI/MainGUI.py:1358 AppGUI/MainGUI.py:1836 -msgid "Clear GUI Settings" -msgstr "Limpar Config. da GUI" - -#: AppGUI/MainGUI.py:1362 -msgid "" -"Clear the GUI settings for FlatCAM,\n" -"such as: layout, gui state, style, hdpi support etc." -msgstr "" -"Limpa as configurações da GUI para FlatCAM,\n" -"como: layout, estado de gui, estilo, suporte a HDPI etc." - -#: AppGUI/MainGUI.py:1373 -msgid "Apply" -msgstr "Aplicar" - -#: AppGUI/MainGUI.py:1376 -msgid "Apply the current preferences without saving to a file." -msgstr "Aplica as preferências atuais sem salvar em um arquivo." - -#: AppGUI/MainGUI.py:1383 -msgid "" -"Save the current settings in the 'current_defaults' file\n" -"which is the file storing the working default preferences." -msgstr "" -"Salva as configurações atuais no arquivo 'current_defaults'\n" -"que armazena as preferências padrão de trabalho." - -#: AppGUI/MainGUI.py:1391 -msgid "Will not save the changes and will close the preferences window." -msgstr "Não salvará as alterações e fechará a janela de preferências." - -#: AppGUI/MainGUI.py:1405 -msgid "Toggle Visibility" -msgstr "Alternar Visibilidade" - -#: AppGUI/MainGUI.py:1411 -msgid "New" -msgstr "Novo" - -#: AppGUI/MainGUI.py:1413 AppTools/ToolCalibration.py:631 -#: AppTools/ToolCalibration.py:648 AppTools/ToolCalibration.py:815 -#: AppTools/ToolCopperThieving.py:148 AppTools/ToolCopperThieving.py:162 -#: AppTools/ToolCopperThieving.py:608 AppTools/ToolCutOut.py:92 -#: AppTools/ToolDblSided.py:226 AppTools/ToolFilm.py:69 AppTools/ToolFilm.py:92 -#: AppTools/ToolImage.py:49 AppTools/ToolImage.py:271 -#: AppTools/ToolIsolation.py:464 AppTools/ToolIsolation.py:517 -#: AppTools/ToolIsolation.py:1281 AppTools/ToolNCC.py:95 -#: AppTools/ToolNCC.py:558 AppTools/ToolNCC.py:1318 AppTools/ToolPaint.py:501 -#: AppTools/ToolPaint.py:705 AppTools/ToolPanelize.py:116 -#: AppTools/ToolPanelize.py:385 AppTools/ToolPanelize.py:402 -msgid "Geometry" -msgstr "Geometria" - -#: AppGUI/MainGUI.py:1417 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:99 -#: AppTools/ToolAlignObjects.py:74 AppTools/ToolAlignObjects.py:110 -#: AppTools/ToolCalibration.py:197 AppTools/ToolCalibration.py:631 -#: AppTools/ToolCalibration.py:648 AppTools/ToolCalibration.py:807 -#: AppTools/ToolCalibration.py:815 AppTools/ToolCopperThieving.py:148 -#: AppTools/ToolCopperThieving.py:162 AppTools/ToolCopperThieving.py:608 -#: AppTools/ToolDblSided.py:225 AppTools/ToolFilm.py:342 -#: AppTools/ToolIsolation.py:517 AppTools/ToolIsolation.py:1281 -#: AppTools/ToolNCC.py:558 AppTools/ToolNCC.py:1318 AppTools/ToolPaint.py:501 -#: AppTools/ToolPaint.py:705 AppTools/ToolPanelize.py:385 -#: AppTools/ToolPunchGerber.py:149 AppTools/ToolPunchGerber.py:164 -msgid "Excellon" -msgstr "Excellon" - -#: AppGUI/MainGUI.py:1424 -msgid "Grids" -msgstr "Grades" - -#: AppGUI/MainGUI.py:1431 -msgid "Clear Plot" -msgstr "Limpar Gráfico" - -#: AppGUI/MainGUI.py:1433 -msgid "Replot" -msgstr "Redesenhar" - -#: AppGUI/MainGUI.py:1437 -msgid "Geo Editor" -msgstr "Editor de Geometria" - -#: AppGUI/MainGUI.py:1439 -msgid "Path" -msgstr "Caminho" - -#: AppGUI/MainGUI.py:1441 -msgid "Rectangle" -msgstr "Retângulo" - -#: AppGUI/MainGUI.py:1444 -msgid "Circle" -msgstr "Círculo" - -#: AppGUI/MainGUI.py:1448 -msgid "Arc" -msgstr "Arco" - -#: AppGUI/MainGUI.py:1462 -msgid "Union" -msgstr "União" - -#: AppGUI/MainGUI.py:1464 -msgid "Intersection" -msgstr "Interseção" - -#: AppGUI/MainGUI.py:1466 -msgid "Subtraction" -msgstr "Substração" - -#: AppGUI/MainGUI.py:1468 AppGUI/ObjectUI.py:2151 -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:56 -msgid "Cut" -msgstr "Cortar" - -#: AppGUI/MainGUI.py:1479 -msgid "Pad" -msgstr "Pad" - -#: AppGUI/MainGUI.py:1481 -msgid "Pad Array" -msgstr "Matriz de Pads" - -#: AppGUI/MainGUI.py:1485 -msgid "Track" -msgstr "Trilha" - -#: AppGUI/MainGUI.py:1487 -msgid "Region" -msgstr "Região" - -#: AppGUI/MainGUI.py:1510 -msgid "Exc Editor" -msgstr "Editor Exc" - -#: AppGUI/MainGUI.py:1512 AppGUI/MainGUI.py:4391 -msgid "Add Drill" -msgstr "Adicionar Furo" - -#: AppGUI/MainGUI.py:1531 App_Main.py:2219 -msgid "Close Editor" -msgstr "Fechar Editor" - -#: AppGUI/MainGUI.py:1555 -msgid "" -"Absolute measurement.\n" -"Reference is (X=0, Y= 0) position" -msgstr "" -"Medição absoluta.\n" -"Em relação à posição (X=0, Y=0)" - -#: AppGUI/MainGUI.py:1563 -#, fuzzy -#| msgid "Application started ..." -msgid "Application units" -msgstr "Aplicativo iniciado ..." - -#: AppGUI/MainGUI.py:1654 -msgid "Lock Toolbars" -msgstr "Travar Barras de Ferramentas" - -#: AppGUI/MainGUI.py:1824 -msgid "FlatCAM Preferences Folder opened." -msgstr "Pasta com Preferências FlatCAM aberta." - -#: AppGUI/MainGUI.py:1835 -msgid "Are you sure you want to delete the GUI Settings? \n" -msgstr "Você tem certeza de que deseja excluir as configurações da GUI? \n" - -#: AppGUI/MainGUI.py:1840 AppGUI/preferences/PreferencesUIManager.py:877 -#: AppGUI/preferences/PreferencesUIManager.py:1123 AppTranslation.py:111 -#: AppTranslation.py:210 App_Main.py:2223 App_Main.py:3158 App_Main.py:5354 -#: App_Main.py:6415 -msgid "Yes" -msgstr "Sim" - -#: AppGUI/MainGUI.py:1841 AppGUI/preferences/PreferencesUIManager.py:1124 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:62 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:164 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:150 -#: AppTools/ToolIsolation.py:174 AppTools/ToolNCC.py:182 -#: AppTools/ToolPaint.py:165 AppTranslation.py:112 AppTranslation.py:211 -#: App_Main.py:2224 App_Main.py:3159 App_Main.py:5355 App_Main.py:6416 -msgid "No" -msgstr "Não" - -#: AppGUI/MainGUI.py:1940 -msgid "&Cutout Tool" -msgstr "Ferramenta de Re&corte" - -#: AppGUI/MainGUI.py:2016 -msgid "Select 'Esc'" -msgstr "Selecionar 'Esc'" - -#: AppGUI/MainGUI.py:2054 -msgid "Copy Objects" -msgstr "Copiar Objetos" - -#: AppGUI/MainGUI.py:2056 AppGUI/MainGUI.py:4311 -msgid "Delete Shape" -msgstr "Excluir Forma" - -#: AppGUI/MainGUI.py:2062 -msgid "Move Objects" -msgstr "Mover Objetos" - -#: AppGUI/MainGUI.py:2648 -msgid "" -"Please first select a geometry item to be cutted\n" -"then select the geometry item that will be cutted\n" -"out of the first item. In the end press ~X~ key or\n" -"the toolbar button." -msgstr "" -"Por favor, primeiro selecione um item de geometria a ser cortado\n" -"e em seguida, selecione o item de geometria que será cortado\n" -"fora do primeiro item. No final, pressione a tecla ~X~ ou\n" -"o botão da barra de ferramentas." - -#: AppGUI/MainGUI.py:2655 AppGUI/MainGUI.py:2819 AppGUI/MainGUI.py:2866 -#: AppGUI/MainGUI.py:2888 -msgid "Warning" -msgstr "Aviso" - -#: AppGUI/MainGUI.py:2814 -msgid "" -"Please select geometry items \n" -"on which to perform Intersection Tool." -msgstr "" -"Por favor, selecione itens de geometria\n" -"para executar a ferramenta de interseção." - -#: AppGUI/MainGUI.py:2861 -msgid "" -"Please select geometry items \n" -"on which to perform Substraction Tool." -msgstr "" -"Por favor, selecione itens de geometria\n" -"para executar a ferramenta de subtração." - -#: AppGUI/MainGUI.py:2883 -msgid "" -"Please select geometry items \n" -"on which to perform union." -msgstr "" -"Por favor, selecione itens de geometria\n" -"para executar a ferramenta de união." - -#: AppGUI/MainGUI.py:2968 AppGUI/MainGUI.py:3183 -msgid "Cancelled. Nothing selected to delete." -msgstr "Cancelado. Nada selecionado para excluir." - -#: AppGUI/MainGUI.py:3052 AppGUI/MainGUI.py:3299 -msgid "Cancelled. Nothing selected to copy." -msgstr "Cancelado. Nada selecionado para copiar." - -#: AppGUI/MainGUI.py:3098 AppGUI/MainGUI.py:3328 -msgid "Cancelled. Nothing selected to move." -msgstr "Cancelado. Nada selecionado para mover." - -#: AppGUI/MainGUI.py:3354 -msgid "New Tool ..." -msgstr "Nova Ferramenta ..." - -#: AppGUI/MainGUI.py:3355 AppTools/ToolIsolation.py:1258 -#: AppTools/ToolNCC.py:924 AppTools/ToolPaint.py:849 -#: AppTools/ToolSolderPaste.py:568 -msgid "Enter a Tool Diameter" -msgstr "Digite um diâmetro de ferramenta" - -#: AppGUI/MainGUI.py:3367 -msgid "Adding Tool cancelled ..." -msgstr "Adicionar ferramenta cancelado ..." - -#: AppGUI/MainGUI.py:3381 -msgid "Distance Tool exit..." -msgstr "Sair da ferramenta de medição ..." - -#: AppGUI/MainGUI.py:3561 App_Main.py:3146 -msgid "Application is saving the project. Please wait ..." -msgstr "O aplicativo está salvando o projeto. Por favor, espere ..." - -#: AppGUI/MainGUI.py:3668 -#, fuzzy -#| msgid "Disabled" -msgid "Shell disabled." -msgstr "Desativado" - -#: AppGUI/MainGUI.py:3678 -#, fuzzy -#| msgid "Enabled" -msgid "Shell enabled." -msgstr "Ativado" - -#: AppGUI/MainGUI.py:3706 App_Main.py:9155 -msgid "Shortcut Key List" -msgstr "Lista de Teclas de Atalho" - -#: AppGUI/MainGUI.py:4089 -#, fuzzy -#| msgid "Key Shortcut List" -msgid "General Shortcut list" -msgstr "Lista de Teclas de Atalho" - -#: AppGUI/MainGUI.py:4090 -msgid "SHOW SHORTCUT LIST" -msgstr "Mostra Lista de Teclas de Atalho" - -#: AppGUI/MainGUI.py:4090 -msgid "Switch to Project Tab" -msgstr "Alterna para a Aba Projeto" - -#: AppGUI/MainGUI.py:4090 -msgid "Switch to Selected Tab" -msgstr "Alterna para a Aba Selecionado" - -#: AppGUI/MainGUI.py:4091 -msgid "Switch to Tool Tab" -msgstr "Alterna para a Aba Ferramentas" - -#: AppGUI/MainGUI.py:4092 -msgid "New Gerber" -msgstr "Novo Gerber" - -#: AppGUI/MainGUI.py:4092 -msgid "Edit Object (if selected)" -msgstr "Editar Objeto (se selecionado)" - -#: AppGUI/MainGUI.py:4092 App_Main.py:5658 -msgid "Grid On/Off" -msgstr "Liga/Desliga a Grade" - -#: AppGUI/MainGUI.py:4092 -msgid "Jump to Coordinates" -msgstr "Ir para a Coordenada" - -#: AppGUI/MainGUI.py:4093 -msgid "New Excellon" -msgstr "Novo Excellon" - -#: AppGUI/MainGUI.py:4093 -msgid "Move Obj" -msgstr "Mover Obj" - -#: AppGUI/MainGUI.py:4093 -msgid "New Geometry" -msgstr "Nova Geometria" - -#: AppGUI/MainGUI.py:4093 -msgid "Change Units" -msgstr "Alternar Unidades" - -#: AppGUI/MainGUI.py:4094 -msgid "Open Properties Tool" -msgstr "Abre Ferramenta Propriedades" - -#: AppGUI/MainGUI.py:4094 -msgid "Rotate by 90 degree CW" -msgstr "Girar 90º sentido horário" - -#: AppGUI/MainGUI.py:4094 -msgid "Shell Toggle" -msgstr "Alterna Linha de Comando" - -#: AppGUI/MainGUI.py:4095 -msgid "" -"Add a Tool (when in Geometry Selected Tab or in Tools NCC or Tools Paint)" -msgstr "" -"Adicionar uma ferramenta (quando estiver na Aba Selecionado ou em " -"Ferramentas NCC ou de Pintura)" - -#: AppGUI/MainGUI.py:4096 -msgid "Flip on X_axis" -msgstr "Espelhar no Eixo X" - -#: AppGUI/MainGUI.py:4096 -msgid "Flip on Y_axis" -msgstr "Espelhar no Eixo Y" - -#: AppGUI/MainGUI.py:4099 -msgid "Copy Obj" -msgstr "Copiar Obj" - -#: AppGUI/MainGUI.py:4099 -msgid "Open Tools Database" -msgstr "Abre Banco de Dados de Ferramentas" - -#: AppGUI/MainGUI.py:4100 -msgid "Open Excellon File" -msgstr "Abrir Excellon" - -#: AppGUI/MainGUI.py:4100 -msgid "Open Gerber File" -msgstr "Abrir Gerber" - -#: AppGUI/MainGUI.py:4100 -msgid "New Project" -msgstr "Novo Projeto" - -#: AppGUI/MainGUI.py:4101 App_Main.py:6711 App_Main.py:6714 -msgid "Open Project" -msgstr "Abrir Projeto" - -#: AppGUI/MainGUI.py:4101 AppTools/ToolPDF.py:41 -msgid "PDF Import Tool" -msgstr "Ferramenta de Importação de PDF" - -#: AppGUI/MainGUI.py:4101 -msgid "Save Project" -msgstr "Salvar Projeto" - -#: AppGUI/MainGUI.py:4101 -msgid "Toggle Plot Area" -msgstr "Alternar Área de Gráficos" - -#: AppGUI/MainGUI.py:4104 -msgid "Copy Obj_Name" -msgstr "Copiar Obj_Name" - -#: AppGUI/MainGUI.py:4105 -msgid "Toggle Code Editor" -msgstr "Alternar o Editor de Códigos" - -#: AppGUI/MainGUI.py:4105 -msgid "Toggle the axis" -msgstr "Alternar o Eixo" - -#: AppGUI/MainGUI.py:4105 AppGUI/MainGUI.py:4306 AppGUI/MainGUI.py:4393 -#: AppGUI/MainGUI.py:4515 -msgid "Distance Minimum Tool" -msgstr "Ferramenta Distância Mínima" - -#: AppGUI/MainGUI.py:4106 -msgid "Open Preferences Window" -msgstr "Abrir Preferências" - -#: AppGUI/MainGUI.py:4107 -msgid "Rotate by 90 degree CCW" -msgstr "Girar 90° sentido anti-horário" - -#: AppGUI/MainGUI.py:4107 -msgid "Run a Script" -msgstr "Executar um Script" - -#: AppGUI/MainGUI.py:4107 -msgid "Toggle the workspace" -msgstr "Alternar Área de Trabalho" - -#: AppGUI/MainGUI.py:4107 -msgid "Skew on X axis" -msgstr "Inclinação no eixo X" - -#: AppGUI/MainGUI.py:4108 -msgid "Skew on Y axis" -msgstr "Inclinação no eixo Y" - -#: AppGUI/MainGUI.py:4111 -msgid "2-Sided PCB Tool" -msgstr "PCB 2 Faces" - -#: AppGUI/MainGUI.py:4112 -#, fuzzy -#| msgid "&Toggle Grid Lines\tAlt+G" -msgid "Toggle Grid Lines" -msgstr "Al&ternar Encaixe na Grade\tAlt+G" - -#: AppGUI/MainGUI.py:4114 -msgid "Solder Paste Dispensing Tool" -msgstr "Pasta de Solda" - -#: AppGUI/MainGUI.py:4115 -msgid "Film PCB Tool" -msgstr "Ferramenta de Filme PCB" - -#: AppGUI/MainGUI.py:4115 -msgid "Non-Copper Clearing Tool" -msgstr "Área Sem Cobre (NCC)" - -#: AppGUI/MainGUI.py:4116 -msgid "Paint Area Tool" -msgstr "Área de Pintura" - -#: AppGUI/MainGUI.py:4116 -msgid "Rules Check Tool" -msgstr "Ferramenta de Verificação de Regras" - -#: AppGUI/MainGUI.py:4117 -msgid "View File Source" -msgstr "Ver Arquivo Fonte" - -#: AppGUI/MainGUI.py:4117 -msgid "Transformations Tool" -msgstr "Transformações" - -#: AppGUI/MainGUI.py:4118 -msgid "Cutout PCB Tool" -msgstr "Ferramenta de Recorte" - -#: AppGUI/MainGUI.py:4118 AppTools/ToolPanelize.py:35 -msgid "Panelize PCB" -msgstr "Criar Painel com PCB" - -#: AppGUI/MainGUI.py:4119 -msgid "Enable all Plots" -msgstr "Habilitar todos os Gráficos" - -#: AppGUI/MainGUI.py:4119 -msgid "Disable all Plots" -msgstr "Desabilitar todos os Gráficos" - -#: AppGUI/MainGUI.py:4119 -msgid "Disable Non-selected Plots" -msgstr "Desabilitar os gráficos não selecionados" - -#: AppGUI/MainGUI.py:4120 -msgid "Toggle Full Screen" -msgstr "Alternar Tela Cheia" - -#: AppGUI/MainGUI.py:4123 -msgid "Abort current task (gracefully)" -msgstr "Abortar a tarefa atual (normalmente)" - -#: AppGUI/MainGUI.py:4126 -msgid "Save Project As" -msgstr "Salvar Projeto Como" - -#: AppGUI/MainGUI.py:4127 -msgid "" -"Paste Special. Will convert a Windows path style to the one required in Tcl " -"Shell" -msgstr "" -"Colar Especial. Converterá um estilo de caminho do Windows para o exigido na " -"Linha de Comando Tcl" - -#: AppGUI/MainGUI.py:4130 -msgid "Open Online Manual" -msgstr "Abrir Manual Online" - -#: AppGUI/MainGUI.py:4131 -msgid "Open Online Tutorials" -msgstr "Abrir Tutoriais Online" - -#: AppGUI/MainGUI.py:4131 -msgid "Refresh Plots" -msgstr "Atualizar Gráfico" - -#: AppGUI/MainGUI.py:4131 AppTools/ToolSolderPaste.py:517 -msgid "Delete Object" -msgstr "Excluir Objeto" - -#: AppGUI/MainGUI.py:4131 -msgid "Alternate: Delete Tool" -msgstr "Alternativo: Excluir Ferramenta" - -#: AppGUI/MainGUI.py:4132 -msgid "(left to Key_1)Toggle Notebook Area (Left Side)" -msgstr "(esquerda da Tecla_1) Alterna Área do Bloco de Notas (lado esquerdo)" - -#: AppGUI/MainGUI.py:4132 -msgid "En(Dis)able Obj Plot" -msgstr "Des(h)abilitar Gráfico" - -#: AppGUI/MainGUI.py:4133 -msgid "Deselects all objects" -msgstr "Desmarca todos os objetos" - -#: AppGUI/MainGUI.py:4147 -msgid "Editor Shortcut list" -msgstr "Lista de Teclas de Atalho" - -#: AppGUI/MainGUI.py:4301 -msgid "GEOMETRY EDITOR" -msgstr "Editor de Geometria" - -#: AppGUI/MainGUI.py:4301 -msgid "Draw an Arc" -msgstr "Desenha um Arco" - -#: AppGUI/MainGUI.py:4301 -msgid "Copy Geo Item" -msgstr "Copiar Geo" - -#: AppGUI/MainGUI.py:4302 -msgid "Within Add Arc will toogle the ARC direction: CW or CCW" -msgstr "Em Adicionar Arco, alterna o sentido: horário ou anti-horário" - -#: AppGUI/MainGUI.py:4302 -msgid "Polygon Intersection Tool" -msgstr "Interseção de Polígonos" - -#: AppGUI/MainGUI.py:4303 -msgid "Geo Paint Tool" -msgstr "Ferramenta de Pintura" - -#: AppGUI/MainGUI.py:4303 AppGUI/MainGUI.py:4392 AppGUI/MainGUI.py:4512 -msgid "Jump to Location (x, y)" -msgstr "Ir para a Localização (x, y)" - -#: AppGUI/MainGUI.py:4303 -msgid "Toggle Corner Snap" -msgstr "Alternar Encaixe de Canto" - -#: AppGUI/MainGUI.py:4303 -msgid "Move Geo Item" -msgstr "Mover Geometria" - -#: AppGUI/MainGUI.py:4304 -msgid "Within Add Arc will cycle through the ARC modes" -msgstr "Em Adicionar Arco, alterna o tipo de arco" - -#: AppGUI/MainGUI.py:4304 -msgid "Draw a Polygon" -msgstr "Desenha um Polígono" - -#: AppGUI/MainGUI.py:4304 -msgid "Draw a Circle" -msgstr "Desenha um Círculo" - -#: AppGUI/MainGUI.py:4305 -msgid "Draw a Path" -msgstr "Desenha um Caminho" - -#: AppGUI/MainGUI.py:4305 -msgid "Draw Rectangle" -msgstr "Desenha um Retângulo" - -#: AppGUI/MainGUI.py:4305 -msgid "Polygon Subtraction Tool" -msgstr "Ferram. de Subtração de Polígono" - -#: AppGUI/MainGUI.py:4305 -msgid "Add Text Tool" -msgstr "Ferramenta de Texto" - -#: AppGUI/MainGUI.py:4306 -msgid "Polygon Union Tool" -msgstr "União de Polígonos" - -#: AppGUI/MainGUI.py:4306 -msgid "Flip shape on X axis" -msgstr "Espelhar no Eixo X" - -#: AppGUI/MainGUI.py:4306 -msgid "Flip shape on Y axis" -msgstr "Espelhar no Eixo Y" - -#: AppGUI/MainGUI.py:4307 -msgid "Skew shape on X axis" -msgstr "Inclinação no eixo X" - -#: AppGUI/MainGUI.py:4307 -msgid "Skew shape on Y axis" -msgstr "Inclinação no eixo Y" - -#: AppGUI/MainGUI.py:4307 -msgid "Editor Transformation Tool" -msgstr "Ferramenta Transformar" - -#: AppGUI/MainGUI.py:4308 -msgid "Offset shape on X axis" -msgstr "Deslocamento no eixo X" - -#: AppGUI/MainGUI.py:4308 -msgid "Offset shape on Y axis" -msgstr "Deslocamento no eixo Y" - -#: AppGUI/MainGUI.py:4309 AppGUI/MainGUI.py:4395 AppGUI/MainGUI.py:4517 -msgid "Save Object and Exit Editor" -msgstr "Salvar Objeto e Fechar o Editor" - -#: AppGUI/MainGUI.py:4309 -msgid "Polygon Cut Tool" -msgstr "Corte de Polígonos" - -#: AppGUI/MainGUI.py:4310 -msgid "Rotate Geometry" -msgstr "Girar Geometria" - -#: AppGUI/MainGUI.py:4310 -msgid "Finish drawing for certain tools" -msgstr "Concluir desenho para certas ferramentas" - -#: AppGUI/MainGUI.py:4310 AppGUI/MainGUI.py:4395 AppGUI/MainGUI.py:4515 -msgid "Abort and return to Select" -msgstr "Abortar e retornar à Seleção" - -#: AppGUI/MainGUI.py:4391 -msgid "EXCELLON EDITOR" -msgstr "Editor Excellon" - -#: AppGUI/MainGUI.py:4391 -msgid "Copy Drill(s)" -msgstr "Copiar Furo(s)" - -#: AppGUI/MainGUI.py:4392 -msgid "Move Drill(s)" -msgstr "Mover Furo(s)" - -#: AppGUI/MainGUI.py:4393 -msgid "Add a new Tool" -msgstr "Adicionar Ferramenta" - -#: AppGUI/MainGUI.py:4394 -msgid "Delete Drill(s)" -msgstr "Excluir Furo(s)" - -#: AppGUI/MainGUI.py:4394 -msgid "Alternate: Delete Tool(s)" -msgstr "Alternativo: Excluir Ferramenta(s)" - -#: AppGUI/MainGUI.py:4511 -msgid "GERBER EDITOR" -msgstr "Editor Gerber" - -#: AppGUI/MainGUI.py:4511 -msgid "Add Disc" -msgstr "Adicionar Disco" - -#: AppGUI/MainGUI.py:4511 -msgid "Add SemiDisc" -msgstr "Adicionar SemiDisco" - -#: AppGUI/MainGUI.py:4513 -msgid "Within Track & Region Tools will cycle in REVERSE the bend modes" -msgstr "" -"Nas Ferramentas de Trilha e Região, alternará REVERSAMENTE entre os modos" - -#: AppGUI/MainGUI.py:4514 -msgid "Within Track & Region Tools will cycle FORWARD the bend modes" -msgstr "" -"Nas Ferramentas de Trilha e Região, alternará para frente entre os modos" - -#: AppGUI/MainGUI.py:4515 -msgid "Alternate: Delete Apertures" -msgstr "Alternativo: Excluir Abertura" - -#: AppGUI/MainGUI.py:4516 -msgid "Eraser Tool" -msgstr "Ferramenta Apagar" - -#: AppGUI/MainGUI.py:4517 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:221 -msgid "Mark Area Tool" -msgstr "Marcar Área" - -#: AppGUI/MainGUI.py:4517 -msgid "Poligonize Tool" -msgstr "Poligonizar" - -#: AppGUI/MainGUI.py:4517 -msgid "Transformation Tool" -msgstr "Ferramenta Transformação" - -#: AppGUI/ObjectUI.py:38 -#, fuzzy -#| msgid "Object" -msgid "App Object" -msgstr "Objeto" - -#: AppGUI/ObjectUI.py:78 AppTools/ToolIsolation.py:77 -msgid "" -"BASIC is suitable for a beginner. Many parameters\n" -"are hidden from the user in this mode.\n" -"ADVANCED mode will make available all parameters.\n" -"\n" -"To change the application LEVEL, go to:\n" -"Edit -> Preferences -> General and check:\n" -"'APP. LEVEL' radio button." -msgstr "" -"BÁSICO é adequado para um iniciante. Muitos parâmetros\n" -" estão ocultos do usuário neste modo.\n" -"O modo AVANÇADO disponibilizará todos os parâmetros.\n" -"\n" -"Para alterar o NÍVEL do aplicativo, vá para:\n" -"Editar -> Preferências -> Geral e verificar\n" -"o botão de rádio 'Nível do Aplicativo\"." - -#: AppGUI/ObjectUI.py:111 AppGUI/ObjectUI.py:154 -msgid "Geometrical transformations of the current object." -msgstr "Transformação geométrica do objeto atual." - -#: AppGUI/ObjectUI.py:120 -msgid "" -"Factor by which to multiply\n" -"geometric features of this object.\n" -"Expressions are allowed. E.g: 1/25.4" -msgstr "" -"Fator pelo qual multiplicar recursos\n" -"geométricos deste objeto.\n" -"Expressões são permitidas. Por exemplo: 1 / 25.4" - -#: AppGUI/ObjectUI.py:127 -msgid "Perform scaling operation." -msgstr "Realiza a operação de dimensionamento." - -#: AppGUI/ObjectUI.py:138 -msgid "" -"Amount by which to move the object\n" -"in the x and y axes in (x, y) format.\n" -"Expressions are allowed. E.g: (1/3.2, 0.5*3)" -msgstr "" -"Quanto mover o objeto\n" -"nos eixos x e y no formato (x, y).\n" -"Expressões são permitidas. Por exemplo: (1/3.2, 0.5*3)" - -#: AppGUI/ObjectUI.py:145 -msgid "Perform the offset operation." -msgstr "Executa a operação de deslocamento." - -#: AppGUI/ObjectUI.py:162 AppGUI/ObjectUI.py:173 AppTool.py:280 AppTool.py:291 -msgid "Edited value is out of range" -msgstr "Valor fora da faixa" - -#: AppGUI/ObjectUI.py:168 AppGUI/ObjectUI.py:175 AppTool.py:286 AppTool.py:293 -msgid "Edited value is within limits." -msgstr "O valor editado está dentro dos limites." - -#: AppGUI/ObjectUI.py:187 -msgid "Gerber Object" -msgstr "Objeto Gerber" - -#: AppGUI/ObjectUI.py:196 AppGUI/ObjectUI.py:496 AppGUI/ObjectUI.py:1313 -#: AppGUI/ObjectUI.py:2135 AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:30 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:33 -#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:31 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:31 -msgid "Plot Options" -msgstr "Opções de Gráfico" - -#: AppGUI/ObjectUI.py:202 AppGUI/ObjectUI.py:502 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:47 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:45 -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:119 -#: AppTools/ToolCopperThieving.py:195 -msgid "Solid" -msgstr "Preenchido" - -#: AppGUI/ObjectUI.py:204 AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:47 -msgid "Solid color polygons." -msgstr "Polígonos com cor sólida." - -#: AppGUI/ObjectUI.py:210 AppGUI/ObjectUI.py:510 AppGUI/ObjectUI.py:1319 -msgid "Multi-Color" -msgstr "Multicolorido" - -#: AppGUI/ObjectUI.py:212 AppGUI/ObjectUI.py:512 AppGUI/ObjectUI.py:1321 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:56 -#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:47 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:54 -msgid "Draw polygons in different colors." -msgstr "Desenha polígonos em cores diferentes." - -#: AppGUI/ObjectUI.py:228 AppGUI/ObjectUI.py:548 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:40 -#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:38 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:38 -msgid "Plot" -msgstr "Gráfico" - -#: AppGUI/ObjectUI.py:229 AppGUI/ObjectUI.py:550 AppGUI/ObjectUI.py:1383 -#: AppGUI/ObjectUI.py:2245 AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:41 -#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:40 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:40 -msgid "Plot (show) this object." -msgstr "Mostra o objeto no gráfico." - -#: AppGUI/ObjectUI.py:258 -msgid "" -"Toggle the display of the Gerber Apertures Table.\n" -"When unchecked, it will delete all mark shapes\n" -"that are drawn on canvas." -msgstr "" -"Alterna a exibição da Tabela de Aberturas Gerber.\n" -"Quando desmarcada, serão excluídas todas as formas de marcas\n" -"desenhadas na tela." - -#: AppGUI/ObjectUI.py:268 -msgid "Mark All" -msgstr "Marcar Todos" - -#: AppGUI/ObjectUI.py:270 -msgid "" -"When checked it will display all the apertures.\n" -"When unchecked, it will delete all mark shapes\n" -"that are drawn on canvas." -msgstr "" -"Quando marcado, serão mostradas todas as aberturas.\n" -"Quando desmarcado, serão apagadas todas as formas de marcas\n" -"desenhadas na tela." - -#: AppGUI/ObjectUI.py:298 -msgid "Mark the aperture instances on canvas." -msgstr "Marque as instâncias de abertura na tela." - -#: AppGUI/ObjectUI.py:305 AppTools/ToolIsolation.py:579 -msgid "Buffer Solid Geometry" -msgstr "Buffer de Geometria Sólida" - -#: AppGUI/ObjectUI.py:307 AppTools/ToolIsolation.py:581 -msgid "" -"This button is shown only when the Gerber file\n" -"is loaded without buffering.\n" -"Clicking this will create the buffered geometry\n" -"required for isolation." -msgstr "" -"Este botão é mostrado apenas quando o arquivo Gerber\n" -"é carregado sem buffer.\n" -"Clicar neste botão criará o buffer da geometria\n" -"necessário para a isolação." - -#: AppGUI/ObjectUI.py:332 -msgid "Isolation Routing" -msgstr "Roteamento de Isolação" - -#: AppGUI/ObjectUI.py:334 AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:32 -#: AppTools/ToolIsolation.py:67 -#, fuzzy -#| msgid "" -#| "Create a Geometry object with\n" -#| "toolpaths to cut outside polygons." -msgid "" -"Create a Geometry object with\n" -"toolpaths to cut around polygons." -msgstr "" -"Cria um objeto Geometria com caminho de\n" -"ferramenta para cortar polígonos externos." - -#: AppGUI/ObjectUI.py:348 AppGUI/ObjectUI.py:2089 AppTools/ToolNCC.py:599 -msgid "" -"Create the Geometry Object\n" -"for non-copper routing." -msgstr "" -"Cria o Objeto de Geometria\n" -"para roteamento de zona sem cobre." - -#: AppGUI/ObjectUI.py:362 -msgid "" -"Generate the geometry for\n" -"the board cutout." -msgstr "Gera a geometria para o recorte da placa." - -#: AppGUI/ObjectUI.py:379 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:32 -msgid "Non-copper regions" -msgstr "Zona sem cobre" - -#: AppGUI/ObjectUI.py:381 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:34 -msgid "" -"Create polygons covering the\n" -"areas without copper on the PCB.\n" -"Equivalent to the inverse of this\n" -"object. Can be used to remove all\n" -"copper from a specified region." -msgstr "" -"Cria polígonos cobrindo as\n" -"zonas sem cobre no PCB.\n" -"Equivalente ao inverso do\n" -"objeto. Pode ser usado para remover todo o\n" -"cobre de uma região especificada." - -#: AppGUI/ObjectUI.py:391 AppGUI/ObjectUI.py:432 -#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:46 -#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:79 -msgid "Boundary Margin" -msgstr "Margem Limite" - -#: AppGUI/ObjectUI.py:393 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:48 -msgid "" -"Specify the edge of the PCB\n" -"by drawing a box around all\n" -"objects with this minimum\n" -"distance." -msgstr "" -"Especifica a borda do PCB\n" -"desenhando uma caixa em volta de todos os\n" -"objetos com esta distância mínima." - -#: AppGUI/ObjectUI.py:408 AppGUI/ObjectUI.py:446 -#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:61 -#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:92 -msgid "Rounded Geo" -msgstr "Geo Arredondado" - -#: AppGUI/ObjectUI.py:410 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:63 -msgid "Resulting geometry will have rounded corners." -msgstr "A geometria resultante terá cantos arredondados." - -#: AppGUI/ObjectUI.py:414 AppGUI/ObjectUI.py:455 -#: AppTools/ToolSolderPaste.py:373 -msgid "Generate Geo" -msgstr "Gerar Geo" - -#: AppGUI/ObjectUI.py:424 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:73 -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:137 -#: AppTools/ToolPanelize.py:99 AppTools/ToolQRCode.py:201 -msgid "Bounding Box" -msgstr "Caixa Delimitadora" - -#: AppGUI/ObjectUI.py:426 -msgid "" -"Create a geometry surrounding the Gerber object.\n" -"Square shape." -msgstr "" -"Crie uma geometria em torno do objeto Gerber.\n" -"Forma quadrada." - -#: AppGUI/ObjectUI.py:434 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:81 -msgid "" -"Distance of the edges of the box\n" -"to the nearest polygon." -msgstr "" -"Distância das bordas da caixa\n" -"para o polígono mais próximo." - -#: AppGUI/ObjectUI.py:448 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:94 -msgid "" -"If the bounding box is \n" -"to have rounded corners\n" -"their radius is equal to\n" -"the margin." -msgstr "" -"Se a caixa delimitadora tiver\n" -"cantos arredondados, o seu raio\n" -"é igual à margem." - -#: AppGUI/ObjectUI.py:457 -msgid "Generate the Geometry object." -msgstr "Gera o objeto Geometria." - -#: AppGUI/ObjectUI.py:484 -msgid "Excellon Object" -msgstr "Objeto Excellon" - -#: AppGUI/ObjectUI.py:504 -msgid "Solid circles." -msgstr "Círculos preenchidos ou vazados." - -#: AppGUI/ObjectUI.py:560 AppGUI/ObjectUI.py:655 AppGUI/ObjectUI.py:2266 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:71 -#: AppTools/ToolProperties.py:166 -msgid "Drills" -msgstr "Furos" - -#: AppGUI/ObjectUI.py:560 AppGUI/ObjectUI.py:656 AppGUI/ObjectUI.py:2266 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:158 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:72 -#: AppTools/ToolProperties.py:168 -msgid "Slots" -msgstr "Ranhuras" - -#: AppGUI/ObjectUI.py:565 -msgid "" -"This is the Tool Number.\n" -"When ToolChange is checked, on toolchange event this value\n" -"will be showed as a T1, T2 ... Tn in the Machine Code.\n" -"\n" -"Here the tools are selected for G-code generation." -msgstr "" -"Número da Ferramenta.\n" -"Quando Trocar Ferramentas estiver marcado, este valor\n" -" será mostrado como T1, T2 ... Tn no Código da Máquina." - -#: AppGUI/ObjectUI.py:570 AppGUI/ObjectUI.py:1407 AppTools/ToolPaint.py:141 -msgid "" -"Tool Diameter. It's value (in current FlatCAM units) \n" -"is the cut width into the material." -msgstr "" -"Diâmetro da Ferramenta. É a largura do corte no material\n" -"(nas unidades atuais do FlatCAM)." - -#: AppGUI/ObjectUI.py:573 -msgid "" -"The number of Drill holes. Holes that are drilled with\n" -"a drill bit." -msgstr "Número de Furos. Serão perfurados com brocas." - -#: AppGUI/ObjectUI.py:576 -msgid "" -"The number of Slot holes. Holes that are created by\n" -"milling them with an endmill bit." -msgstr "Número de Ranhuras (Fendas). Serão criadas com fresas." - -#: AppGUI/ObjectUI.py:579 -msgid "" -"Toggle display of the drills for the current tool.\n" -"This does not select the tools for G-code generation." -msgstr "" -"Alterna a exibição da ferramenta atual. Isto não seleciona a ferramenta para " -"geração do G-Code." - -#: AppGUI/ObjectUI.py:597 AppGUI/ObjectUI.py:1564 -#: AppObjects/FlatCAMExcellon.py:537 AppObjects/FlatCAMExcellon.py:836 -#: AppObjects/FlatCAMExcellon.py:852 AppObjects/FlatCAMExcellon.py:856 -#: AppObjects/FlatCAMGeometry.py:380 AppObjects/FlatCAMGeometry.py:825 -#: AppObjects/FlatCAMGeometry.py:861 AppTools/ToolIsolation.py:313 -#: AppTools/ToolIsolation.py:1051 AppTools/ToolIsolation.py:1171 -#: AppTools/ToolIsolation.py:1185 AppTools/ToolNCC.py:331 -#: AppTools/ToolNCC.py:797 AppTools/ToolNCC.py:811 AppTools/ToolNCC.py:1214 -#: AppTools/ToolPaint.py:313 AppTools/ToolPaint.py:766 -#: AppTools/ToolPaint.py:778 AppTools/ToolPaint.py:1190 -msgid "Parameters for" -msgstr "Parâmetros para" - -#: AppGUI/ObjectUI.py:600 AppGUI/ObjectUI.py:1567 AppTools/ToolIsolation.py:316 -#: AppTools/ToolNCC.py:334 AppTools/ToolPaint.py:316 -msgid "" -"The data used for creating GCode.\n" -"Each tool store it's own set of such data." -msgstr "" -"Os dados usados para criar o G-Code.\n" -"Cada loja de ferramentas possui seu próprio conjunto de dados." - -#: AppGUI/ObjectUI.py:626 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:48 -msgid "" -"Operation type:\n" -"- Drilling -> will drill the drills/slots associated with this tool\n" -"- Milling -> will mill the drills/slots" -msgstr "" -"Tipo de operação:\n" -"- Perfuração -> faz os furos/ranhuras associados a esta ferramenta\n" -"- Fresamento -> fresar os furos/ranhuras" - -#: AppGUI/ObjectUI.py:632 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:54 -msgid "Drilling" -msgstr "Perfuração" - -#: AppGUI/ObjectUI.py:633 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:55 -msgid "Milling" -msgstr "Fresamento" - -#: AppGUI/ObjectUI.py:648 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:64 -msgid "" -"Milling type:\n" -"- Drills -> will mill the drills associated with this tool\n" -"- Slots -> will mill the slots associated with this tool\n" -"- Both -> will mill both drills and mills or whatever is available" -msgstr "" -"Tipo de fresamento:\n" -"- Furos -> fresará os furos associados a esta ferramenta\n" -"- Ranhuras -> fresará as ranhuras associadas a esta ferramenta\n" -"- Ambos -> fresará furos e ranhuras ou o que estiver disponível" - -#: AppGUI/ObjectUI.py:657 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:73 -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:199 -#: AppTools/ToolFilm.py:241 -msgid "Both" -msgstr "Ambos" - -#: AppGUI/ObjectUI.py:665 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:80 -msgid "Milling Diameter" -msgstr "Diâmetro da Fresa" - -#: AppGUI/ObjectUI.py:667 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:82 -msgid "The diameter of the tool who will do the milling" -msgstr "Diâmetro da ferramenta de fresamento." - -#: AppGUI/ObjectUI.py:681 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:95 -msgid "" -"Drill depth (negative)\n" -"below the copper surface." -msgstr "" -"Profundidade do furo (negativo)\n" -"abaixo da superfície de cobre." - -#: AppGUI/ObjectUI.py:700 AppGUI/ObjectUI.py:1626 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:113 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:69 -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:79 -#: AppTools/ToolCutOut.py:159 -msgid "Multi-Depth" -msgstr "Multi-Profundidade" - -#: AppGUI/ObjectUI.py:703 AppGUI/ObjectUI.py:1629 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:116 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:72 -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:82 -#: AppTools/ToolCutOut.py:162 -msgid "" -"Use multiple passes to limit\n" -"the cut depth in each pass. Will\n" -"cut multiple times until Cut Z is\n" -"reached." -msgstr "" -"Use vários passes para limitar\n" -"a profundidade de corte em cada passagem. Vai\n" -"cortar várias vezes até o Corte Z é\n" -"alcançado." - -#: AppGUI/ObjectUI.py:716 AppGUI/ObjectUI.py:1643 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:128 -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:94 -#: AppTools/ToolCutOut.py:176 -msgid "Depth of each pass (positive)." -msgstr "Profundidade de cada passe (positivo)." - -#: AppGUI/ObjectUI.py:727 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:136 -msgid "" -"Tool height when travelling\n" -"across the XY plane." -msgstr "" -"Altura da ferramenta durante os\n" -"deslocamentos sobre o plano XY." - -#: AppGUI/ObjectUI.py:748 AppGUI/ObjectUI.py:1673 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:188 -msgid "" -"Cutting speed in the XY\n" -"plane in units per minute" -msgstr "Velocidade de corte no plano XY em unidades por minuto" - -#: AppGUI/ObjectUI.py:763 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:209 -msgid "" -"Tool speed while drilling\n" -"(in units per minute).\n" -"So called 'Plunge' feedrate.\n" -"This is for linear move G01." -msgstr "" -"Velocidade da ferramenta durante a perfuração\n" -"(em unidades por minuto).\n" -"Também chamado de avanço de 'Mergulho'.\n" -"Para movimento linear G01." - -#: AppGUI/ObjectUI.py:778 AppGUI/ObjectUI.py:1700 -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:80 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:67 -msgid "Feedrate Rapids" -msgstr "Taxa de Avanço Rápida" - -#: AppGUI/ObjectUI.py:780 -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:82 -msgid "" -"Tool speed while drilling\n" -"(in units per minute).\n" -"This is for the rapid move G00.\n" -"It is useful only for Marlin,\n" -"ignore for any other cases." -msgstr "" -"Velocidade da ferramenta durante a perfuração\n" -"(em unidades por minuto).\n" -"Usado para movimento rápido G00.\n" -"É útil apenas para Marlin. Ignore para outros casos." - -#: AppGUI/ObjectUI.py:800 AppGUI/ObjectUI.py:1720 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:85 -msgid "Re-cut" -msgstr "Re-cortar" - -#: AppGUI/ObjectUI.py:802 AppGUI/ObjectUI.py:815 AppGUI/ObjectUI.py:1722 -#: AppGUI/ObjectUI.py:1734 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:87 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:99 -msgid "" -"In order to remove possible\n" -"copper leftovers where first cut\n" -"meet with last cut, we generate an\n" -"extended cut over the first cut section." -msgstr "" -"Para remover possíveis sobras no ponto de encontro\n" -"do primeiro com o último corte, gera-se um corte\n" -"próximo à primeira seção de corte." - -#: AppGUI/ObjectUI.py:828 AppGUI/ObjectUI.py:1743 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:217 -#: AppObjects/FlatCAMExcellon.py:1512 AppObjects/FlatCAMGeometry.py:1687 -msgid "Spindle speed" -msgstr "Velocidade do Spindle" - -#: AppGUI/ObjectUI.py:830 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:224 -msgid "" -"Speed of the spindle\n" -"in RPM (optional)" -msgstr "" -"Velocidade do spindle\n" -"em RPM (opcional)" - -#: AppGUI/ObjectUI.py:845 AppGUI/ObjectUI.py:1762 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:238 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:235 -msgid "" -"Pause to allow the spindle to reach its\n" -"speed before cutting." -msgstr "" -"Pausa para permitir que o spindle atinja sua\n" -"velocidade antes de cortar." - -#: AppGUI/ObjectUI.py:856 AppGUI/ObjectUI.py:1772 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:246 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:240 -msgid "Number of time units for spindle to dwell." -msgstr "Número de unidades de tempo para o fuso residir." - -#: AppGUI/ObjectUI.py:866 -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:46 -msgid "Offset Z" -msgstr "Deslocamento Z" - -#: AppGUI/ObjectUI.py:868 -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:48 -msgid "" -"Some drill bits (the larger ones) need to drill deeper\n" -"to create the desired exit hole diameter due of the tip shape.\n" -"The value here can compensate the Cut Z parameter." -msgstr "" -"Algumas brocas (as maiores) precisam perfurar mais profundamente\n" -"para criar o diâmetro desejado do orifício de saída devido à forma da " -"ponta.\n" -"Este valor pode compensar o parâmetro Profundidade de Corte Z." - -#: AppGUI/ObjectUI.py:928 AppGUI/ObjectUI.py:1826 AppTools/ToolIsolation.py:412 -#: AppTools/ToolNCC.py:492 AppTools/ToolPaint.py:422 -msgid "Apply parameters to all tools" -msgstr "Aplicar parâmetros a todas as ferramentas" - -#: AppGUI/ObjectUI.py:930 AppGUI/ObjectUI.py:1828 AppTools/ToolIsolation.py:414 -#: AppTools/ToolNCC.py:494 AppTools/ToolPaint.py:424 -msgid "" -"The parameters in the current form will be applied\n" -"on all the tools from the Tool Table." -msgstr "" -"Os parâmetros no formulário atual serão aplicados\n" -"em todas as ferramentas da Tabela de Ferramentas." - -#: AppGUI/ObjectUI.py:941 AppGUI/ObjectUI.py:1839 AppTools/ToolIsolation.py:425 -#: AppTools/ToolNCC.py:505 AppTools/ToolPaint.py:435 -msgid "Common Parameters" -msgstr "Parâmetros Comuns" - -#: AppGUI/ObjectUI.py:943 AppGUI/ObjectUI.py:1841 AppTools/ToolIsolation.py:427 -#: AppTools/ToolNCC.py:507 AppTools/ToolPaint.py:437 -msgid "Parameters that are common for all tools." -msgstr "Parâmetros comuns à todas as ferramentas." - -#: AppGUI/ObjectUI.py:948 AppGUI/ObjectUI.py:1846 -msgid "Tool change Z" -msgstr "Altura para a troca" - -#: AppGUI/ObjectUI.py:950 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:154 -msgid "" -"Include tool-change sequence\n" -"in G-Code (Pause for tool change)." -msgstr "" -"Pausa para troca de ferramentas. Inclua a sequência\n" -"de troca de ferramentas em G-Code (em Trabalho CNC)." - -#: AppGUI/ObjectUI.py:957 AppGUI/ObjectUI.py:1857 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:162 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:135 -msgid "" -"Z-axis position (height) for\n" -"tool change." -msgstr "Posição do eixo Z (altura) para a troca de ferramenta." - -#: AppGUI/ObjectUI.py:974 -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:71 -msgid "" -"Height of the tool just after start.\n" -"Delete the value if you don't need this feature." -msgstr "" -"Altura da ferramenta antes de iniciar o trabalho.\n" -"Exclua o valor se você não precisar deste recurso." - -#: AppGUI/ObjectUI.py:983 AppGUI/ObjectUI.py:1885 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:178 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:154 -msgid "End move Z" -msgstr "Altura Z Final" - -#: AppGUI/ObjectUI.py:985 AppGUI/ObjectUI.py:1887 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:180 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:156 -msgid "" -"Height of the tool after\n" -"the last move at the end of the job." -msgstr "Altura da ferramenta após o último movimento, no final do trabalho." - -#: AppGUI/ObjectUI.py:1002 AppGUI/ObjectUI.py:1904 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:195 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:174 -msgid "End move X,Y" -msgstr "Posição X,Y Final" - -#: AppGUI/ObjectUI.py:1004 AppGUI/ObjectUI.py:1906 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:197 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:176 -msgid "" -"End move X,Y position. In format (x,y).\n" -"If no value is entered then there is no move\n" -"on X,Y plane at the end of the job." -msgstr "" -"Posição final X, Y. Em formato (x, y).\n" -"Se nenhum valor for inserido, não haverá movimento\n" -"no plano X, Y no final do trabalho." - -#: AppGUI/ObjectUI.py:1014 AppGUI/ObjectUI.py:1780 -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:96 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:108 -msgid "Probe Z depth" -msgstr "Profundidade Z da Sonda" - -#: AppGUI/ObjectUI.py:1016 AppGUI/ObjectUI.py:1782 -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:98 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:110 -msgid "" -"The maximum depth that the probe is allowed\n" -"to probe. Negative value, in current units." -msgstr "" -"Profundidade máxima permitida para a sonda.\n" -"Valor negativo, em unidades atuais." - -#: AppGUI/ObjectUI.py:1033 AppGUI/ObjectUI.py:1797 -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:109 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:123 -msgid "Feedrate Probe" -msgstr "Avanço da Sonda" - -#: AppGUI/ObjectUI.py:1035 AppGUI/ObjectUI.py:1799 -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:111 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:125 -msgid "The feedrate used while the probe is probing." -msgstr "Velocidade de Avanço usada enquanto a sonda está operando." - -#: AppGUI/ObjectUI.py:1051 -msgid "Preprocessor E" -msgstr "Pré-processador E" - -#: AppGUI/ObjectUI.py:1053 -msgid "" -"The preprocessor JSON file that dictates\n" -"Gcode output for Excellon Objects." -msgstr "" -"O arquivo de pós-processamento (JSON) que define\n" -"a saída G-Code para Objetos Excellon." - -#: AppGUI/ObjectUI.py:1063 -msgid "Preprocessor G" -msgstr "Pré-processador G" - -#: AppGUI/ObjectUI.py:1065 -msgid "" -"The preprocessor JSON file that dictates\n" -"Gcode output for Geometry (Milling) Objects." -msgstr "" -"O arquivo de pós-processamento (JSON) que define\n" -"a saída G-Code para Objetos Geometria (Fresamento)." - -#: AppGUI/ObjectUI.py:1079 AppGUI/ObjectUI.py:1934 -#, fuzzy -#| msgid "Delete all extensions from the list." -msgid "Add exclusion areas" -msgstr "Excluir todas as extensões da lista." - -#: AppGUI/ObjectUI.py:1082 AppGUI/ObjectUI.py:1937 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:212 -msgid "" -"Include exclusion areas.\n" -"In those areas the travel of the tools\n" -"is forbidden." -msgstr "" - -#: AppGUI/ObjectUI.py:1103 AppGUI/ObjectUI.py:1958 -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:48 -#: AppTools/ToolCalibration.py:186 AppTools/ToolNCC.py:109 -#: AppTools/ToolPaint.py:102 AppTools/ToolPanelize.py:98 -msgid "Object" -msgstr "Objeto" - -#: AppGUI/ObjectUI.py:1103 AppGUI/ObjectUI.py:1122 AppGUI/ObjectUI.py:1958 -#: AppGUI/ObjectUI.py:1977 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:232 -msgid "Strategy" -msgstr "" - -#: AppGUI/ObjectUI.py:1103 AppGUI/ObjectUI.py:1134 AppGUI/ObjectUI.py:1958 -#: AppGUI/ObjectUI.py:1989 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:244 -#, fuzzy -#| msgid "Overlap" -msgid "Over Z" -msgstr "Sobreposição" - -#: AppGUI/ObjectUI.py:1105 AppGUI/ObjectUI.py:1960 -msgid "This is the Area ID." -msgstr "" - -#: AppGUI/ObjectUI.py:1107 AppGUI/ObjectUI.py:1962 -msgid "Type of the object where the exclusion area was added." -msgstr "" - -#: AppGUI/ObjectUI.py:1109 AppGUI/ObjectUI.py:1964 -msgid "" -"The strategy used for exclusion area. Go around the exclusion areas or over " -"it." -msgstr "" - -#: AppGUI/ObjectUI.py:1111 AppGUI/ObjectUI.py:1966 -msgid "" -"If the strategy is to go over the area then this is the height at which the " -"tool will go to avoid the exclusion area." -msgstr "" - -#: AppGUI/ObjectUI.py:1123 AppGUI/ObjectUI.py:1978 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:233 -msgid "" -"The strategy followed when encountering an exclusion area.\n" -"Can be:\n" -"- Over -> when encountering the area, the tool will go to a set height\n" -"- Around -> will avoid the exclusion area by going around the area" -msgstr "" - -#: AppGUI/ObjectUI.py:1127 AppGUI/ObjectUI.py:1982 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:237 -#, fuzzy -#| msgid "Overlap" -msgid "Over" -msgstr "Sobreposição" - -#: AppGUI/ObjectUI.py:1128 AppGUI/ObjectUI.py:1983 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:238 -#, fuzzy -#| msgid "Round" -msgid "Around" -msgstr "Redondo" - -#: AppGUI/ObjectUI.py:1135 AppGUI/ObjectUI.py:1990 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:245 -msgid "" -"The height Z to which the tool will rise in order to avoid\n" -"an interdiction area." -msgstr "" - -#: AppGUI/ObjectUI.py:1145 AppGUI/ObjectUI.py:2000 -#, fuzzy -#| msgid "Add Track" -msgid "Add area:" -msgstr "Adicionar Trilha" - -#: AppGUI/ObjectUI.py:1146 AppGUI/ObjectUI.py:2001 -msgid "Add an Exclusion Area." -msgstr "" - -#: AppGUI/ObjectUI.py:1152 AppGUI/ObjectUI.py:2007 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:222 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:295 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:324 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:288 -#: AppTools/ToolIsolation.py:542 AppTools/ToolNCC.py:580 -#: AppTools/ToolPaint.py:523 -msgid "The kind of selection shape used for area selection." -msgstr "O tipo de formato usado para a seleção de área." - -#: AppGUI/ObjectUI.py:1162 AppGUI/ObjectUI.py:2017 -#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:32 -#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:42 -#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:32 -#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:32 -msgid "Delete All" -msgstr "Excluir Tudo" - -#: AppGUI/ObjectUI.py:1163 AppGUI/ObjectUI.py:2018 -#, fuzzy -#| msgid "Delete all extensions from the list." -msgid "Delete all exclusion areas." -msgstr "Excluir todas as extensões da lista." - -#: AppGUI/ObjectUI.py:1166 AppGUI/ObjectUI.py:2021 -#, fuzzy -#| msgid "Delete Object" -msgid "Delete Selected" -msgstr "Excluir Objeto" - -#: AppGUI/ObjectUI.py:1167 AppGUI/ObjectUI.py:2022 -#, fuzzy -#| msgid "Delete all extensions from the list." -msgid "Delete all exclusion areas that are selected in the table." -msgstr "Excluir todas as extensões da lista." - -#: AppGUI/ObjectUI.py:1191 AppGUI/ObjectUI.py:2038 -msgid "" -"Add / Select at least one tool in the tool-table.\n" -"Click the # header to select all, or Ctrl + LMB\n" -"for custom selection of tools." -msgstr "" -"Adicione / Selecione pelo menos uma ferramenta na tabela de ferramentas.\n" -"Clique no cabeçalho # para selecionar todos ou Ctrl + Botão Esquerdo do " -"Mouse\n" -"para seleção personalizada de ferramentas." - -#: AppGUI/ObjectUI.py:1199 AppGUI/ObjectUI.py:2045 -msgid "Generate CNCJob object" -msgstr "Gera o objeto de Trabalho CNC" - -#: AppGUI/ObjectUI.py:1201 -msgid "" -"Generate the CNC Job.\n" -"If milling then an additional Geometry object will be created" -msgstr "" -"Gera o Trabalho CNC.\n" -"Ao fresar, será criado um objeto Geometria adicional" - -#: AppGUI/ObjectUI.py:1218 -msgid "Milling Geometry" -msgstr "Geometria de Fresamento" - -#: AppGUI/ObjectUI.py:1220 -msgid "" -"Create Geometry for milling holes.\n" -"Select from the Tools Table above the hole dias to be\n" -"milled. Use the # column to make the selection." -msgstr "" -"Cria geometria para fresar.\n" -"Selecione na Tabela de Ferramentas acima\n" -"os diâmetros dos furos que serão fresados.\n" -"Use a coluna # para selecionar." - -#: AppGUI/ObjectUI.py:1228 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:296 -msgid "Diameter of the cutting tool." -msgstr "Diâmetro da ferramenta." - -#: AppGUI/ObjectUI.py:1238 -msgid "Mill Drills" -msgstr "Fresa Furos" - -#: AppGUI/ObjectUI.py:1240 -msgid "" -"Create the Geometry Object\n" -"for milling DRILLS toolpaths." -msgstr "" -"Cria o Objeto Geometria com\n" -"os caminhos da ferramenta de FUROS." - -#: AppGUI/ObjectUI.py:1258 -msgid "Mill Slots" -msgstr "Fresa Ranhuras" - -#: AppGUI/ObjectUI.py:1260 -msgid "" -"Create the Geometry Object\n" -"for milling SLOTS toolpaths." -msgstr "" -"Cria o Objeto Geometria com\n" -"os caminhos da ferramenta de RANHURAS." - -#: AppGUI/ObjectUI.py:1302 AppTools/ToolCutOut.py:319 -msgid "Geometry Object" -msgstr "Objeto Geometria" - -#: AppGUI/ObjectUI.py:1364 -msgid "" -"Tools in this Geometry object used for cutting.\n" -"The 'Offset' entry will set an offset for the cut.\n" -"'Offset' can be inside, outside, on path (none) and custom.\n" -"'Type' entry is only informative and it allow to know the \n" -"intent of using the current tool. \n" -"It can be Rough(ing), Finish(ing) or Iso(lation).\n" -"The 'Tool type'(TT) can be circular with 1 to 4 teeths(C1..C4),\n" -"ball(B), or V-Shaped(V). \n" -"When V-shaped is selected the 'Type' entry is automatically \n" -"set to Isolation, the CutZ parameter in the UI form is\n" -"grayed out and Cut Z is automatically calculated from the newly \n" -"showed UI form entries named V-Tip Dia and V-Tip Angle." -msgstr "" -"Ferramentas neste objeto Geometria usados para o corte.\n" -"A entrada 'Deslocamento' define um deslocamento para o corte.\n" -"'Deslocamento' pode ser dentro, fora, no caminho (nenhum) e personalizado. A " -"entrada\n" -"'Tipo' é somente informativo e permite conhecer a necessidade de usar a " -"ferramenta atual.\n" -"Pode ser Desbaste, Acabamento ou Isolação.\n" -"O 'Tipo de Ferramenta' (TF) pode ser circular com 1 a 4 dentes (C1..C4),\n" -"bola (B) ou Em Forma de V (V).\n" -"Quando forma em V é selecionada, a entrada 'Tipo' é automaticamente\n" -"alterada para Isolação, o parâmetro Profundidade de Corte\n" -"no formulário da interface do usuário é desabilitado e a Profundidade\n" -"de Corte é calculada automaticamente a partir das entradas do\n" -"formulário da interface do usuário e do Ângulo da Ponta-V." - -#: AppGUI/ObjectUI.py:1381 AppGUI/ObjectUI.py:2243 -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:40 -msgid "Plot Object" -msgstr "Mostrar" - -#: AppGUI/ObjectUI.py:1394 AppGUI/ObjectUI.py:2256 AppGUI/ObjectUI.py:2266 -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:138 -#: AppTools/ToolCopperThieving.py:225 -msgid "Dia" -msgstr "Dia" - -#: AppGUI/ObjectUI.py:1394 AppGUI/ObjectUI.py:2256 -#: AppTools/ToolIsolation.py:130 AppTools/ToolNCC.py:132 -#: AppTools/ToolPaint.py:127 -msgid "TT" -msgstr "TF" - -#: AppGUI/ObjectUI.py:1401 -msgid "" -"This is the Tool Number.\n" -"When ToolChange is checked, on toolchange event this value\n" -"will be showed as a T1, T2 ... Tn" -msgstr "" -"Número da Ferramenta.\n" -"Quando Trocar Ferramentas estiver marcado, no evento este valor\n" -" será mostrado como T1, T2 ... Tn" - -#: AppGUI/ObjectUI.py:1412 -msgid "" -"The value for the Offset can be:\n" -"- Path -> There is no offset, the tool cut will be done through the geometry " -"line.\n" -"- In(side) -> The tool cut will follow the geometry inside. It will create a " -"'pocket'.\n" -"- Out(side) -> The tool cut will follow the geometry line on the outside." -msgstr "" -"O valor para Deslocamento pode ser:\n" -"- Caminho -> Não há deslocamento, o corte da ferramenta será feito sobre a " -"linha da geometria.\n" -"- In(terno) -> O corte da ferramenta seguirá a geometria interna. Será " -"criado um 'bolso'.\n" -"- Ex(terno) -> O corte da ferramenta seguirá no lado externo da linha da " -"geometria.\n" -"- Personalizado -> Será considerado o valor digitado." - -#: AppGUI/ObjectUI.py:1419 -msgid "" -"The (Operation) Type has only informative value. Usually the UI form " -"values \n" -"are choose based on the operation type and this will serve as a reminder.\n" -"Can be 'Roughing', 'Finishing' or 'Isolation'.\n" -"For Roughing we may choose a lower Feedrate and multiDepth cut.\n" -"For Finishing we may choose a higher Feedrate, without multiDepth.\n" -"For Isolation we need a lower Feedrate as it use a milling bit with a fine " -"tip." -msgstr "" -"O tipo (operação) tem apenas valor informativo. Normalmente, os valores do " -"formulário da interface do usuário\n" -"são escolhidos com base no tipo de operação e isso servirá como um " -"lembrete.\n" -"Pode ser 'Desbaste', 'Acabamento' ou 'Isolação'.\n" -"Para Desbaste, pode-se escolher uma taxa de Avanço inferior e corte de " -"múltiplas profundidades.\n" -"Para Acabamento, pode-se escolher uma taxa de avanço mais alta, sem multi-" -"profundidade.\n" -"Para Isolação, usa-se uma velocidade de avanço menor, pois é usada uma broca " -"com ponta fina." - -#: AppGUI/ObjectUI.py:1428 -msgid "" -"The Tool Type (TT) can be:\n" -"- Circular with 1 ... 4 teeth -> it is informative only. Being circular the " -"cut width in material\n" -"is exactly the tool diameter.\n" -"- Ball -> informative only and make reference to the Ball type endmill.\n" -"- V-Shape -> it will disable Z-Cut parameter in the UI form and enable two " -"additional UI form\n" -"fields: V-Tip Dia and V-Tip Angle. Adjusting those two values will adjust " -"the Z-Cut parameter such\n" -"as the cut width into material will be equal with the value in the Tool " -"Diameter column of this table.\n" -"Choosing the V-Shape Tool Type automatically will select the Operation Type " -"as Isolation." -msgstr "" -"O Tipo de Ferramenta (TF) pode ser:\n" -"- Circular com 1 ... 4 dentes -> apenas informativo. Sendo circular a " -"largura de corte no material\n" -" é exatamente o diâmetro da ferramenta.\n" -"- Bola -> apenas informativo e faz referência à fresa tipo Ball.\n" -"- Em Forma de V -> o parâmetro Corte Z no formulário de interface do usuário " -"será desabilitado e dois campos adicionais\n" -" no formulário UI serão habilitados: Diâmetro Ângulo Ponta-V e Ângulo Ponta-" -"V. O ajuste desses dois valores ajustará o parâmetro Corte Z, como\n" -"a largura do corte no material será igual ao valor da coluna Diâmetro da " -"ferramenta dessa tabela.\n" -"Escolher o tipo de ferramenta Em Forma de V automaticamente alterará o tipo " -"de operação para Isolação." - -#: AppGUI/ObjectUI.py:1440 -msgid "" -"Plot column. It is visible only for MultiGeo geometries, meaning geometries " -"that holds the geometry\n" -"data into the tools. For those geometries, deleting the tool will delete the " -"geometry data also,\n" -"so be WARNED. From the checkboxes on each row it can be enabled/disabled the " -"plot on canvas\n" -"for the corresponding tool." -msgstr "" -"Coluna de plotagem. É visível apenas para geometrias MultiGeo, ou seja, " -"geometrias que contêm os dados da geometria\n" -"das ferramentas. Para essas geometrias, a exclusão da ferramenta também " -"excluirá os dados da geometria,\n" -"assim, esteja ATENTO. Nas caixas de seleção de cada linha, pode ser ativado/" -"desativado o gráfico na tela\n" -"para a ferramenta correspondente." - -#: AppGUI/ObjectUI.py:1458 -msgid "" -"The value to offset the cut when \n" -"the Offset type selected is 'Offset'.\n" -"The value can be positive for 'outside'\n" -"cut and negative for 'inside' cut." -msgstr "" -"O valor para compensar o corte quando\n" -"o tipo selecionado for 'Deslocamento'.\n" -"O valor pode ser positivo para corte 'por fora'\n" -"e negativo para corte 'por dentro'." - -#: AppGUI/ObjectUI.py:1477 AppTools/ToolIsolation.py:195 -#: AppTools/ToolIsolation.py:1257 AppTools/ToolNCC.py:209 -#: AppTools/ToolNCC.py:923 AppTools/ToolPaint.py:191 AppTools/ToolPaint.py:848 -#: AppTools/ToolSolderPaste.py:567 -msgid "New Tool" -msgstr "Nova Ferramenta" - -#: AppGUI/ObjectUI.py:1496 AppTools/ToolIsolation.py:278 -#: AppTools/ToolNCC.py:296 AppTools/ToolPaint.py:278 -msgid "" -"Add a new tool to the Tool Table\n" -"with the diameter specified above." -msgstr "" -"Adicione uma nova ferramenta à Tabela de Ferramentas\n" -"com o diâmetro especificado." - -#: AppGUI/ObjectUI.py:1500 AppTools/ToolIsolation.py:282 -#: AppTools/ToolIsolation.py:613 AppTools/ToolNCC.py:300 -#: AppTools/ToolNCC.py:634 AppTools/ToolPaint.py:282 AppTools/ToolPaint.py:678 -msgid "Add from DB" -msgstr "Adicionar do BD" - -#: AppGUI/ObjectUI.py:1502 AppTools/ToolIsolation.py:284 -#: AppTools/ToolNCC.py:302 AppTools/ToolPaint.py:284 -msgid "" -"Add a new tool to the Tool Table\n" -"from the Tool DataBase." -msgstr "" -"Adiciona uma nova ferramenta à Tabela de Ferramentas\n" -"do Banco de Dados de Ferramentas." - -#: AppGUI/ObjectUI.py:1521 -msgid "" -"Copy a selection of tools in the Tool Table\n" -"by first selecting a row in the Tool Table." -msgstr "" -"Copia uma seleção de ferramentas na Tabela de Ferramentas selecionando " -"primeiro uma linha na Tabela de Ferramentas." - -#: AppGUI/ObjectUI.py:1527 -msgid "" -"Delete a selection of tools in the Tool Table\n" -"by first selecting a row in the Tool Table." -msgstr "" -"Exclui uma seleção de ferramentas na Tabela de Ferramentas selecionando " -"primeiro uma linha na Tabela de Ferramentas." - -#: AppGUI/ObjectUI.py:1574 AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:89 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:72 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:78 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:85 -#: AppTools/ToolIsolation.py:219 AppTools/ToolNCC.py:233 -#: AppTools/ToolNCC.py:240 AppTools/ToolPaint.py:215 -msgid "V-Tip Dia" -msgstr "Diâmetro da Ponta" - -#: AppGUI/ObjectUI.py:1577 AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:91 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:74 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:80 -#: AppTools/ToolIsolation.py:221 AppTools/ToolNCC.py:235 -#: AppTools/ToolPaint.py:217 -msgid "The tip diameter for V-Shape Tool" -msgstr "O diâmetro da ponta da ferramenta em forma de V" - -#: AppGUI/ObjectUI.py:1589 AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:101 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:84 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:91 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:99 -#: AppTools/ToolIsolation.py:232 AppTools/ToolNCC.py:246 -#: AppTools/ToolNCC.py:254 AppTools/ToolPaint.py:228 -msgid "V-Tip Angle" -msgstr "Ângulo Ponta-V" - -#: AppGUI/ObjectUI.py:1592 AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:86 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:93 -#: AppTools/ToolIsolation.py:234 AppTools/ToolNCC.py:248 -#: AppTools/ToolPaint.py:230 -msgid "" -"The tip angle for V-Shape Tool.\n" -"In degree." -msgstr "O ângulo da ponta da ferramenta em forma de V, em graus." - -#: AppGUI/ObjectUI.py:1608 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:51 -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:61 -#: AppObjects/FlatCAMGeometry.py:1238 AppTools/ToolCutOut.py:141 -msgid "" -"Cutting depth (negative)\n" -"below the copper surface." -msgstr "" -"Profundidade de corte (negativo)\n" -"abaixo da superfície de cobre." - -#: AppGUI/ObjectUI.py:1654 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:104 -msgid "" -"Height of the tool when\n" -"moving without cutting." -msgstr "Altura da ferramenta ao mover sem cortar." - -#: AppGUI/ObjectUI.py:1687 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:203 -msgid "" -"Cutting speed in the XY\n" -"plane in units per minute.\n" -"It is called also Plunge." -msgstr "" -"Velocidade de corte no plano Z em unidades por minuto.\n" -"Também é chamado de Mergulho." - -#: AppGUI/ObjectUI.py:1702 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:69 -msgid "" -"Cutting speed in the XY plane\n" -"(in units per minute).\n" -"This is for the rapid move G00.\n" -"It is useful only for Marlin,\n" -"ignore for any other cases." -msgstr "" -"Velocidade de corte no plano XY (em unidades por minuto).\n" -"Para o movimento rápido G00.\n" -"É útil apenas para Marlin, ignore em outros casos." - -#: AppGUI/ObjectUI.py:1746 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:220 -msgid "" -"Speed of the spindle in RPM (optional).\n" -"If LASER preprocessor is used,\n" -"this value is the power of laser." -msgstr "" -"Velocidade do spindle em RPM (opcional).\n" -"Se o pós-processador LASER é usado,\n" -"este valor é a potência do laser." - -#: AppGUI/ObjectUI.py:1849 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:125 -msgid "" -"Include tool-change sequence\n" -"in the Machine Code (Pause for tool change)." -msgstr "" -"Sequência de troca de ferramentas incluída\n" -"no Código da Máquina (Pausa para troca de ferramentas)." - -#: AppGUI/ObjectUI.py:1918 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:257 -msgid "" -"The Preprocessor file that dictates\n" -"the Machine Code (like GCode, RML, HPGL) output." -msgstr "" -"Arquivo de Pós-processamento que determina o código\n" -"de máquina de saída(como G-Code, RML, HPGL)." - -#: AppGUI/ObjectUI.py:2047 Common.py:426 Common.py:559 Common.py:619 -msgid "Generate the CNC Job object." -msgstr "Gera o objeto de Trabalho CNC." - -#: AppGUI/ObjectUI.py:2064 -msgid "Launch Paint Tool in Tools Tab." -msgstr "Inicia a ferramenta de pintura na guia Ferramentas." - -#: AppGUI/ObjectUI.py:2072 AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:35 -msgid "" -"Creates tool paths to cover the\n" -"whole area of a polygon (remove\n" -"all copper). You will be asked\n" -"to click on the desired polygon." -msgstr "" -"Cria caminhos de ferramenta para cobrir a área\n" -"inteira de um polígono (remove todo o cobre).\n" -"Você será solicitado a clicar no polígono desejado." - -#: AppGUI/ObjectUI.py:2127 -msgid "CNC Job Object" -msgstr "Objeto de Trabalho CNC" - -#: AppGUI/ObjectUI.py:2138 AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:45 -msgid "Plot kind" -msgstr "Tipo de Gráfico" - -#: AppGUI/ObjectUI.py:2141 AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:47 -msgid "" -"This selects the kind of geometries on the canvas to plot.\n" -"Those can be either of type 'Travel' which means the moves\n" -"above the work piece or it can be of type 'Cut',\n" -"which means the moves that cut into the material." -msgstr "" -"Seleciona o tipo de geometria mostrada na tela.\n" -"Pode ser do tipo 'Deslocamento', com os movimentos acima da peça, do\n" -"tipo 'Corte', com os movimentos cortando o material ou ambos." - -#: AppGUI/ObjectUI.py:2150 AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:55 -msgid "Travel" -msgstr "Deslocamento" - -#: AppGUI/ObjectUI.py:2154 AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:64 -msgid "Display Annotation" -msgstr "Exibir Anotação" - -#: AppGUI/ObjectUI.py:2156 AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:66 -msgid "" -"This selects if to display text annotation on the plot.\n" -"When checked it will display numbers in order for each end\n" -"of a travel line." -msgstr "" -"Seleciona se deseja exibir a anotação de texto no gráfico.\n" -"Quando marcado, exibirá números para cada final\n" -"de uma linha de deslocamento." - -#: AppGUI/ObjectUI.py:2171 -msgid "Travelled dist." -msgstr "Dist. percorrida" - -#: AppGUI/ObjectUI.py:2173 AppGUI/ObjectUI.py:2178 -msgid "" -"This is the total travelled distance on X-Y plane.\n" -"In current units." -msgstr "" -"Essa é a distância total percorrida no plano XY,\n" -"nas unidades atuais." - -#: AppGUI/ObjectUI.py:2183 -msgid "Estimated time" -msgstr "Tempo estimado" - -#: AppGUI/ObjectUI.py:2185 AppGUI/ObjectUI.py:2190 -msgid "" -"This is the estimated time to do the routing/drilling,\n" -"without the time spent in ToolChange events." -msgstr "" -"Este é o tempo estimado para fazer o roteamento/perfuração,\n" -"sem o tempo gasto em eventos de Alteração de Ferramentas." - -#: AppGUI/ObjectUI.py:2225 -msgid "CNC Tools Table" -msgstr "Tabela de Ferra. CNC" - -#: AppGUI/ObjectUI.py:2228 -msgid "" -"Tools in this CNCJob object used for cutting.\n" -"The tool diameter is used for plotting on canvas.\n" -"The 'Offset' entry will set an offset for the cut.\n" -"'Offset' can be inside, outside, on path (none) and custom.\n" -"'Type' entry is only informative and it allow to know the \n" -"intent of using the current tool. \n" -"It can be Rough(ing), Finish(ing) or Iso(lation).\n" -"The 'Tool type'(TT) can be circular with 1 to 4 teeths(C1..C4),\n" -"ball(B), or V-Shaped(V)." -msgstr "" -"Ferramentas usadas para o corte no Trabalho CNC.\n" -"O diâmetro da ferramenta é usado para plotagem na tela.\n" -"A entrada 'Deslocamento' define um deslocamento para o corte.\n" -"'Deslocamento' pode ser dentro, fora, no caminho (nenhum) e personalizado. A " -"entrada\n" -"'Tipo' é apenas informativa e permite conhecer a necessidade de usar a " -"ferramenta atual.\n" -"Pode ser Desbaste, Acabamento ou Isolação.\n" -"O 'Tipo de Ferramenta' (TF) pode ser circular com 1 a 4 dentes (C1..C4),\n" -"bola (B) ou Em forma de V (V)." - -#: AppGUI/ObjectUI.py:2256 AppGUI/ObjectUI.py:2267 -msgid "P" -msgstr "P" - -#: AppGUI/ObjectUI.py:2277 -msgid "Update Plot" -msgstr "Atualizar Gráfico" - -#: AppGUI/ObjectUI.py:2279 -msgid "Update the plot." -msgstr "Atualiza o gráfico." - -#: AppGUI/ObjectUI.py:2286 -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:30 -msgid "Export CNC Code" -msgstr "Exportar Código CNC" - -#: AppGUI/ObjectUI.py:2288 -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:32 -#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:33 -msgid "" -"Export and save G-Code to\n" -"make this object to a file." -msgstr "" -"Exporta e salva em arquivo\n" -"o G-Code para fazer este objeto." - -#: AppGUI/ObjectUI.py:2294 -msgid "Prepend to CNC Code" -msgstr "Incluir no Início do Código CNC" - -#: AppGUI/ObjectUI.py:2296 AppGUI/ObjectUI.py:2303 -#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:49 -msgid "" -"Type here any G-Code commands you would\n" -"like to add at the beginning of the G-Code file." -msgstr "" -"Digite aqui os comandos G-Code que você gostaria\n" -"de adicionar ao início do arquivo G-Code gerado." - -#: AppGUI/ObjectUI.py:2309 -msgid "Append to CNC Code" -msgstr "Incluir no Final do Código CNC" - -#: AppGUI/ObjectUI.py:2311 AppGUI/ObjectUI.py:2319 -#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:65 -msgid "" -"Type here any G-Code commands you would\n" -"like to append to the generated file.\n" -"I.e.: M2 (End of program)" -msgstr "" -"Digite aqui os comandos G-Code que você gostaria\n" -"de adicionar ao final do arquivo G-Code gerado.\n" -"M2 (Fim do programa)" - -#: AppGUI/ObjectUI.py:2333 -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:38 -msgid "Toolchange G-Code" -msgstr "G-Code para Troca de Ferramentas" - -#: AppGUI/ObjectUI.py:2336 -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:41 -msgid "" -"Type here any G-Code commands you would\n" -"like to be executed when Toolchange event is encountered.\n" -"This will constitute a Custom Toolchange GCode,\n" -"or a Toolchange Macro.\n" -"The FlatCAM variables are surrounded by '%' symbol.\n" -"\n" -"WARNING: it can be used only with a preprocessor file\n" -"that has 'toolchange_custom' in it's name and this is built\n" -"having as template the 'Toolchange Custom' posprocessor file." -msgstr "" -"Digite aqui os comandos do G-Code que você gostaria de executar quando o " -"evento do Troca de Ferramentas for encontrado.\n" -"Ele será um G-Code personalizado para Troca de Ferramentas,\n" -"ou uma Macro.\n" -"As variáveis do FlatCAM são circundadas pelo símbolo '%'.\n" -"\n" -"ATENÇÃO: pode ser usado apenas com um arquivo de pós-processamento\n" -"que tenha 'toolchange_custom' em seu nome e este é construído tendo\n" -"como modelo o arquivo de pós-processamento 'Customização da troca de " -"ferramentas'." - -#: AppGUI/ObjectUI.py:2351 -msgid "" -"Type here any G-Code commands you would\n" -"like to be executed when Toolchange event is encountered.\n" -"This will constitute a Custom Toolchange GCode,\n" -"or a Toolchange Macro.\n" -"The FlatCAM variables are surrounded by '%' symbol.\n" -"WARNING: it can be used only with a preprocessor file\n" -"that has 'toolchange_custom' in it's name." -msgstr "" -"Digite aqui qualquer comando G-Code que você deseja\n" -"gostaria de ser executado quando o evento de troca de ferramentas é " -"encontrado.\n" -"Isso constituirá um G-Code personalizado de troca de ferramentas,\n" -"ou uma macro de troca de ferramentas.\n" -"As variáveis FlatCAM são cercadas pelo símbolo '%'.\n" -"ATENÇÃO: ele pode ser usado apenas com um arquivo de pré-processador\n" -"que possui 'toolchange_custom' em seu nome." - -#: AppGUI/ObjectUI.py:2366 -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:80 -msgid "Use Toolchange Macro" -msgstr "Usar Macro de Troca de Ferramentas" - -#: AppGUI/ObjectUI.py:2368 -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:82 -msgid "" -"Check this box if you want to use\n" -"a Custom Toolchange GCode (macro)." -msgstr "" -"Marque esta caixa se você quiser usar a macro G-Code para Troca de " -"Ferramentas." - -#: AppGUI/ObjectUI.py:2376 -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:94 -msgid "" -"A list of the FlatCAM variables that can be used\n" -"in the Toolchange event.\n" -"They have to be surrounded by the '%' symbol" -msgstr "" -"Uma lista das variáveis FlatCAM que podem ser usadas\n" -"no evento Troca de Ferramentas.\n" -"Elas devem estar cercadas pelo símbolo '%'" - -#: AppGUI/ObjectUI.py:2383 -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:101 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:30 -#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:31 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:31 -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:37 -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:36 -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:36 -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:36 -#: AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py:31 -#: AppGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:31 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:36 -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:31 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:30 -#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:31 -#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:35 -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:32 -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:31 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:30 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:31 -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:31 -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:31 -#: AppGUI/preferences/tools/ToolsSubPrefGroupUI.py:31 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:31 -#: AppTools/ToolCalibration.py:67 AppTools/ToolCopperThieving.py:93 -#: AppTools/ToolCorners.py:115 AppTools/ToolEtchCompensation.py:138 -#: AppTools/ToolFiducials.py:152 AppTools/ToolInvertGerber.py:85 -#: AppTools/ToolQRCode.py:114 -msgid "Parameters" -msgstr "Parâmetros" - -#: AppGUI/ObjectUI.py:2386 -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:106 -msgid "FlatCAM CNC parameters" -msgstr "Parâmetros do FlatCAM CNC" - -#: AppGUI/ObjectUI.py:2387 -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:111 -msgid "tool number" -msgstr "número da ferramenta" - -#: AppGUI/ObjectUI.py:2388 -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:112 -msgid "tool diameter" -msgstr "diâmetro da ferramenta" - -#: AppGUI/ObjectUI.py:2389 -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:113 -msgid "for Excellon, total number of drills" -msgstr "para Excellon, número total de furos" - -#: AppGUI/ObjectUI.py:2391 -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:115 -msgid "X coord for Toolchange" -msgstr "Coordenada X para troca de ferramenta" - -#: AppGUI/ObjectUI.py:2392 -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:116 -msgid "Y coord for Toolchange" -msgstr "Coordenada Y para troca de ferramenta" - -#: AppGUI/ObjectUI.py:2393 -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:118 -msgid "Z coord for Toolchange" -msgstr "Coordenada Z para troca de ferramenta" - -#: AppGUI/ObjectUI.py:2394 -msgid "depth where to cut" -msgstr "profundidade de corte" - -#: AppGUI/ObjectUI.py:2395 -msgid "height where to travel" -msgstr "altura para deslocamentos" - -#: AppGUI/ObjectUI.py:2396 -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:121 -msgid "the step value for multidepth cut" -msgstr "valor do passe para corte múltiplas profundidade" - -#: AppGUI/ObjectUI.py:2398 -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:123 -msgid "the value for the spindle speed" -msgstr "velocidade do spindle" - -#: AppGUI/ObjectUI.py:2400 -msgid "time to dwell to allow the spindle to reach it's set RPM" -msgstr "tempo de espera para o spindle atingir sua vel. RPM" - -#: AppGUI/ObjectUI.py:2416 -msgid "View CNC Code" -msgstr "Ver Código CNC" - -#: AppGUI/ObjectUI.py:2418 -msgid "" -"Opens TAB to view/modify/print G-Code\n" -"file." -msgstr "Abre uma ABA para visualizar/modificar/imprimir o arquivo G-Code." - -#: AppGUI/ObjectUI.py:2423 -msgid "Save CNC Code" -msgstr "Salvar Código CNC" - -#: AppGUI/ObjectUI.py:2425 -msgid "" -"Opens dialog to save G-Code\n" -"file." -msgstr "Abre uma caixa de diálogo para salvar o arquivo G-Code." - -#: AppGUI/ObjectUI.py:2459 -msgid "Script Object" -msgstr "Objeto Script" - -#: AppGUI/ObjectUI.py:2479 AppGUI/ObjectUI.py:2553 -msgid "Auto Completer" -msgstr "Preenchimento Automático" - -#: AppGUI/ObjectUI.py:2481 -msgid "This selects if the auto completer is enabled in the Script Editor." -msgstr "" -"Selecionar se o preenchimento automático está ativado no Editor de Scripts." - -#: AppGUI/ObjectUI.py:2526 -msgid "Document Object" -msgstr "Objeto Documento" - -#: AppGUI/ObjectUI.py:2555 -msgid "This selects if the auto completer is enabled in the Document Editor." -msgstr "" -"Selecionar se o preenchimento automático está ativado no Editor de " -"Documentos." - -#: AppGUI/ObjectUI.py:2573 -msgid "Font Type" -msgstr "Tipo de Fonte" - -#: AppGUI/ObjectUI.py:2590 -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:189 -msgid "Font Size" -msgstr "Tamanho da Fonte" - -#: AppGUI/ObjectUI.py:2626 -msgid "Alignment" -msgstr "Alinhamento" - -#: AppGUI/ObjectUI.py:2631 -msgid "Align Left" -msgstr "Esquerda" - -#: AppGUI/ObjectUI.py:2636 App_Main.py:4715 -msgid "Center" -msgstr "Centro" - -#: AppGUI/ObjectUI.py:2641 -msgid "Align Right" -msgstr "Direita" - -#: AppGUI/ObjectUI.py:2646 -msgid "Justify" -msgstr "Justificado" - -#: AppGUI/ObjectUI.py:2653 -msgid "Font Color" -msgstr "Cor da Fonte" - -#: AppGUI/ObjectUI.py:2655 -msgid "Set the font color for the selected text" -msgstr "Define a cor da fonte para o texto selecionado" - -#: AppGUI/ObjectUI.py:2669 -msgid "Selection Color" -msgstr "Cor da Seleção" - -#: AppGUI/ObjectUI.py:2671 -msgid "Set the selection color when doing text selection." -msgstr "Define a cor da seleção quando selecionando texto." - -#: AppGUI/ObjectUI.py:2685 -msgid "Tab Size" -msgstr "Tamanho da Aba" - -#: AppGUI/ObjectUI.py:2687 -msgid "Set the tab size. In pixels. Default value is 80 pixels." -msgstr "Define o tamanho da aba, em pixels. Valor padrão: 80 pixels." - -#: AppGUI/PlotCanvas.py:236 AppGUI/PlotCanvasLegacy.py:345 -#, fuzzy -#| msgid "All plots enabled." -msgid "Axis enabled." -msgstr "Todos os gráficos habilitados." - -#: AppGUI/PlotCanvas.py:242 AppGUI/PlotCanvasLegacy.py:352 -#, fuzzy -#| msgid "All plots disabled." -msgid "Axis disabled." -msgstr "Todos os gráficos desabilitados." - -#: AppGUI/PlotCanvas.py:260 AppGUI/PlotCanvasLegacy.py:372 -#, fuzzy -#| msgid "Enabled" -msgid "HUD enabled." -msgstr "Ativado" - -#: AppGUI/PlotCanvas.py:268 AppGUI/PlotCanvasLegacy.py:378 -#, fuzzy -#| msgid "Disabled" -msgid "HUD disabled." -msgstr "Desativado" - -#: AppGUI/PlotCanvas.py:276 AppGUI/PlotCanvasLegacy.py:451 -#, fuzzy -#| msgid "Workspace Settings" -msgid "Grid enabled." -msgstr "Configurações da área de trabalho" - -#: AppGUI/PlotCanvas.py:280 AppGUI/PlotCanvasLegacy.py:459 -#, fuzzy -#| msgid "Workspace Settings" -msgid "Grid disabled." -msgstr "Configurações da área de trabalho" - -#: AppGUI/PlotCanvasLegacy.py:1523 -msgid "" -"Could not annotate due of a difference between the number of text elements " -"and the number of text positions." -msgstr "" -"Não foi possível anotar devido a uma diferença entre o número de elementos " -"de texto e o número de posições de texto." - -#: AppGUI/preferences/PreferencesUIManager.py:852 -msgid "Preferences applied." -msgstr "Preferências aplicadas." - -#: AppGUI/preferences/PreferencesUIManager.py:872 -#, fuzzy -#| msgid "Are you sure you want to delete the GUI Settings? \n" -msgid "Are you sure you want to continue?" -msgstr "Você tem certeza de que deseja excluir as configurações da GUI? \n" - -#: AppGUI/preferences/PreferencesUIManager.py:873 -#, fuzzy -#| msgid "Application started ..." -msgid "Application will restart" -msgstr "Aplicativo iniciado ..." - -#: AppGUI/preferences/PreferencesUIManager.py:971 -msgid "Preferences closed without saving." -msgstr "Preferências fechadas sem salvar." - -#: AppGUI/preferences/PreferencesUIManager.py:983 -msgid "Preferences default values are restored." -msgstr "Os valores padrão das preferências são restaurados." - -#: AppGUI/preferences/PreferencesUIManager.py:1015 App_Main.py:2498 -#: App_Main.py:2566 -msgid "Failed to write defaults to file." -msgstr "Falha ao gravar os padrões no arquivo." - -#: AppGUI/preferences/PreferencesUIManager.py:1019 -#: AppGUI/preferences/PreferencesUIManager.py:1132 -msgid "Preferences saved." -msgstr "Preferências salvas." - -#: AppGUI/preferences/PreferencesUIManager.py:1069 -msgid "Preferences edited but not saved." -msgstr "Preferências editadas, mas não salvas." - -#: AppGUI/preferences/PreferencesUIManager.py:1117 -msgid "" -"One or more values are changed.\n" -"Do you want to save the Preferences?" -msgstr "" -"Um ou mais valores foram alterados.\n" -"Você deseja salvar as preferências?" - -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:27 -msgid "CNC Job Adv. Options" -msgstr "Opções Avançadas" - -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:64 -msgid "" -"Type here any G-Code commands you would like to be executed when Toolchange " -"event is encountered.\n" -"This will constitute a Custom Toolchange GCode, or a Toolchange Macro.\n" -"The FlatCAM variables are surrounded by '%' symbol.\n" -"WARNING: it can be used only with a preprocessor file that has " -"'toolchange_custom' in it's name." -msgstr "" -"Digite aqui qualquer comando G-Code que você deseja gostaria de ser " -"executado quando o evento de troca de ferramentas é encontrado.\n" -"Isso constituirá um G-Code personalizado de troca de ferramentas, ou uma " -"macro de troca de ferramentas.\n" -"As variáveis FlatCAM são cercadas pelo símbolo '%'.\n" -"ATENÇÃO: ele pode ser usado apenas com um arquivo de pré-processador que " -"possui 'toolchange_custom' em seu nome." - -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:119 -msgid "Z depth for the cut" -msgstr "Profundidade Z para o corte" - -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:120 -msgid "Z height for travel" -msgstr "Altura Z para deslocamentos" - -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:126 -msgid "dwelltime = time to dwell to allow the spindle to reach it's set RPM" -msgstr "dwelltime = tempo de espera para o spindle atingir sua vel. RPM" - -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:145 -msgid "Annotation Size" -msgstr "Tamanho da Fonte" - -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:147 -msgid "The font size of the annotation text. In pixels." -msgstr "O tamanho da fonte do texto de anotação, em pixels." - -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:157 -msgid "Annotation Color" -msgstr "Cor da Fonte" - -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:159 -msgid "Set the font color for the annotation texts." -msgstr "Define a cor da fonte para os textos de anotação." - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:26 -msgid "CNC Job General" -msgstr "Trabalho CNC Geral" - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:77 -#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:57 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:59 -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:45 -msgid "Circle Steps" -msgstr "Passos do Círculo" - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:79 -msgid "" -"The number of circle steps for GCode \n" -"circle and arc shapes linear approximation." -msgstr "" -"O número de etapas de círculo para G-Code.\n" -"Aproximação linear para círculos e formas de arco." - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:88 -msgid "Travel dia" -msgstr "Diâmetro Desl." - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:90 -msgid "" -"The width of the travel lines to be\n" -"rendered in the plot." -msgstr "Largura da linha a ser renderizada no gráfico." - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:103 -msgid "G-code Decimals" -msgstr "Decimais de código G" - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:106 -#: AppTools/ToolFiducials.py:71 -msgid "Coordinates" -msgstr "Coordenadas" - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:108 -msgid "" -"The number of decimals to be used for \n" -"the X, Y, Z coordinates in CNC code (GCODE, etc.)" -msgstr "" -"Número de decimais a ser usado para as coordenadas\n" -"X, Y, Z no código do CNC (G-Code, etc.)" - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:119 -#: AppTools/ToolProperties.py:519 -msgid "Feedrate" -msgstr "Taxa de Avanço" - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:121 -msgid "" -"The number of decimals to be used for \n" -"the Feedrate parameter in CNC code (GCODE, etc.)" -msgstr "" -"O número de decimais a ser usado para o parâmetro\n" -"Taxa de Avanço no código CNC (G-Code, etc.)" - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:132 -msgid "Coordinates type" -msgstr "Tipo de coordenada" - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:134 -msgid "" -"The type of coordinates to be used in Gcode.\n" -"Can be:\n" -"- Absolute G90 -> the reference is the origin x=0, y=0\n" -"- Incremental G91 -> the reference is the previous position" -msgstr "" -"O tipo de coordenada a ser usada no G-Code.\n" -"Pode ser:\n" -"- Absoluta G90 -> a referência é a origem x=0, y=0\n" -"- Incremental G91 -> a referência é a posição anterior" - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:140 -msgid "Absolute G90" -msgstr "Absoluta G90" - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:141 -msgid "Incremental G91" -msgstr "Incremental G91" - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:151 -msgid "Force Windows style line-ending" -msgstr "Forçar final de linha no estilo Windows" - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:153 -msgid "" -"When checked will force a Windows style line-ending\n" -"(\\r\\n) on non-Windows OS's." -msgstr "" -"Quando marcado forçará um final de linha no estilo Windows\n" -"(\\r\\n) em sistemas operacionais não Windows." - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:165 -msgid "Travel Line Color" -msgstr "Cor da Linha de Viagem" - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:169 -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:210 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:271 -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:154 -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:195 -#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:94 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:153 -#: AppTools/ToolRulesCheck.py:186 -msgid "Outline" -msgstr "Contorno" - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:171 -msgid "Set the travel line color for plotted objects." -msgstr "Defina a cor da linha de viagem para objetos plotados." - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:179 -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:220 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:281 -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:163 -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:205 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:163 -msgid "Fill" -msgstr "Conteúdo" - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:181 -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:222 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:283 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:165 -msgid "" -"Set the fill color for plotted objects.\n" -"First 6 digits are the color and the last 2\n" -"digits are for alpha (transparency) level." -msgstr "" -"Define a cor de preenchimento para os objetos plotados.\n" -"Os primeiros 6 dígitos são a cor e os últimos 2\n" -"dígitos são para o nível alfa (transparência)." - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:191 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:293 -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:176 -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:218 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:175 -msgid "Alpha" -msgstr "Alfa" - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:193 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:295 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:177 -msgid "Set the fill transparency for plotted objects." -msgstr "Define a transparência de preenchimento para objetos plotados." - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:206 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:267 -#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:90 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:149 -#, fuzzy -#| msgid "CNCJob Object Color" -msgid "Object Color" -msgstr "Cor do objeto CNCJob" - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:212 -msgid "Set the color for plotted objects." -msgstr "Defina a cor dos objetos plotados." - -#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:27 -msgid "CNC Job Options" -msgstr "Opções de Trabalho CNC" - -#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:31 -msgid "Export G-Code" -msgstr "Exportar G-Code" - -#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:47 -msgid "Prepend to G-Code" -msgstr "Incluir no Início do G-Code" - -#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:56 -msgid "" -"Type here any G-Code commands you would like to add at the beginning of the " -"G-Code file." -msgstr "" -"Digite aqui os comandos G-Code que você gostaria de adicionar ao início do " -"arquivo G-Code." - -#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:63 -msgid "Append to G-Code" -msgstr "Incluir no final do G-Code" - -#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:73 -msgid "" -"Type here any G-Code commands you would like to append to the generated " -"file.\n" -"I.e.: M2 (End of program)" -msgstr "" -"Digite aqui todos os comandos do código G que você gostaria de acrescentar " -"ao arquivo gerado.\n" -"Por exemplo: M2 (Fim do programa)" - -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:27 -msgid "Excellon Adv. Options" -msgstr "Opções Avançadas Excellon" - -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:34 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:34 -#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:31 -msgid "Advanced Options" -msgstr "Opções Avançadas" - -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:36 -msgid "" -"A list of Excellon advanced parameters.\n" -"Those parameters are available only for\n" -"Advanced App. Level." -msgstr "" -"Uma lista de parâmetros avançados do Excellon.\n" -"Esses parâmetros estão disponíveis somente para\n" -"o nível avançado do aplicativo." - -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:59 -msgid "Toolchange X,Y" -msgstr "Troca de ferramenta X,Y" - -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:61 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:48 -msgid "Toolchange X,Y position." -msgstr "Posição X,Y para troca de ferramentas." - -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:121 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:137 -msgid "Spindle direction" -msgstr "Sentido de Rotação" - -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:123 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:139 -msgid "" -"This sets the direction that the spindle is rotating.\n" -"It can be either:\n" -"- CW = clockwise or\n" -"- CCW = counter clockwise" -msgstr "" -"Define o sentido de rotação do spindle.\n" -"Pode ser:\n" -"- CW = sentido horário ou\n" -"- CCW = sentido anti-horário" - -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:134 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:151 -msgid "Fast Plunge" -msgstr "Mergulho Rápido" - -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:136 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:153 -msgid "" -"By checking this, the vertical move from\n" -"Z_Toolchange to Z_move is done with G0,\n" -"meaning the fastest speed available.\n" -"WARNING: the move is done at Toolchange X,Y coords." -msgstr "" -"Quando marcado, o movimento vertical da altura de Troca de\n" -"Ferramentas para a altura de Deslocamento é feito com G0,\n" -"na velocidade mais rápida disponível.\n" -"AVISO: o movimento é feito nas Coordenadas X,Y de troca de ferramentas." - -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:143 -msgid "Fast Retract" -msgstr "Recolhimento Rápido" - -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:145 -msgid "" -"Exit hole strategy.\n" -" - When uncheked, while exiting the drilled hole the drill bit\n" -"will travel slow, with set feedrate (G1), up to zero depth and then\n" -"travel as fast as possible (G0) to the Z Move (travel height).\n" -" - When checked the travel from Z cut (cut depth) to Z_move\n" -"(travel height) is done as fast as possible (G0) in one move." -msgstr "" -"Estratégia para sair dos furos.\n" -"- Quando desmarcado, ao sair do furo, a broca sobe lentamente, com\n" -" avanço definido (G1), até a profundidade zero e depois some o mais\n" -" rápido possível (G0) até a altura de deslocamento.\n" -"- Quando marcado, a subida da profundidade de corte para a altura de\n" -" deslocamento é feita o mais rápido possível (G0) em um único movimento." - -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:32 -msgid "A list of Excellon Editor parameters." -msgstr "Parâmetros do Editor Excellon." - -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:40 -#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:41 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:41 -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:172 -msgid "Selection limit" -msgstr "Lim. de seleção" - -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:42 -msgid "" -"Set the number of selected Excellon geometry\n" -"items above which the utility geometry\n" -"becomes just a selection rectangle.\n" -"Increases the performance when moving a\n" -"large number of geometric elements." -msgstr "" -"Define o número máximo de ítens de geometria Excellon\n" -"selecionados. Acima desse valor a geometria se torna um\n" -"retângulo de seleção Aumenta o desempenho ao mover um\n" -"grande número de elementos geométricos." - -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:55 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:134 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:117 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:123 -msgid "New Dia" -msgstr "Novo Diâmetro" - -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:80 -msgid "Linear Drill Array" -msgstr "Matriz Linear de Furos" - -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:84 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:232 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:121 -msgid "Linear Direction" -msgstr "Direção Linear" - -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:126 -msgid "Circular Drill Array" -msgstr "Matriz Circular de Furos" - -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:130 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:280 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:165 -msgid "Circular Direction" -msgstr "Direção Circular" - -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:132 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:282 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:167 -msgid "" -"Direction for circular array.\n" -"Can be CW = clockwise or CCW = counter clockwise." -msgstr "" -"Sentido da matriz circular.\n" -"Pode ser CW = sentido horário ou CCW = sentido anti-horário." - -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:143 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:293 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:178 -msgid "Circular Angle" -msgstr "Ângulo Circular" - -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:196 -msgid "" -"Angle at which the slot is placed.\n" -"The precision is of max 2 decimals.\n" -"Min value is: -359.99 degrees.\n" -"Max value is: 360.00 degrees." -msgstr "" -"Ângulo no qual a ranhura é colocada.\n" -"A precisão é de no máximo 2 decimais.\n" -"Valor mínimo: -359.99 graus.\n" -"Valor máximo: 360.00 graus." - -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:215 -msgid "Linear Slot Array" -msgstr "Matriz Linear de Ranhuras" - -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:276 -msgid "Circular Slot Array" -msgstr "Matriz Circular de Ranhuras" - -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:26 -msgid "Excellon Export" -msgstr "Exportar Excellon" - -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:30 -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:31 -msgid "Export Options" -msgstr "Opções da Exportação" - -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:32 -msgid "" -"The parameters set here are used in the file exported\n" -"when using the File -> Export -> Export Excellon menu entry." -msgstr "" -"Os parâmetros definidos aqui são usados no arquivo exportado\n" -"ao usar a entrada de menu Arquivo -> Exportar -> Exportar Excellon." - -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:41 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:172 -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:39 -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:42 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:82 -#: AppTools/ToolDistance.py:56 AppTools/ToolDistanceMin.py:49 -#: AppTools/ToolPcbWizard.py:127 AppTools/ToolProperties.py:154 -msgid "Units" -msgstr "Unidades" - -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:43 -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:49 -msgid "The units used in the Excellon file." -msgstr "A unidade usada no arquivo Excellon gerado." - -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:46 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:96 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:182 -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:47 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:87 -#: AppTools/ToolCalculators.py:61 AppTools/ToolPcbWizard.py:125 -msgid "INCH" -msgstr "in" - -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:47 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:183 -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:43 -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:48 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:88 -#: AppTools/ToolCalculators.py:62 AppTools/ToolPcbWizard.py:126 -msgid "MM" -msgstr "mm" - -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:55 -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:56 -msgid "Int/Decimals" -msgstr "Int/Decimais" - -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:57 -msgid "" -"The NC drill files, usually named Excellon files\n" -"are files that can be found in different formats.\n" -"Here we set the format used when the provided\n" -"coordinates are not using period." -msgstr "" -"Os arquivos NC com a furação, geralmente chamados de arquivos Excellon\n" -"são arquivos que podem ser encontrados em diferentes formatos.\n" -"Aqui é definido o formato usado quando as coordenadas\n" -"fornecidas não usam ponto." - -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:69 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:104 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:133 -msgid "" -"This numbers signify the number of digits in\n" -"the whole part of Excellon coordinates." -msgstr "" -"Este número configura o número de dígitos\n" -"da parte inteira das coordenadas de Excellon." - -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:82 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:117 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:146 -msgid "" -"This numbers signify the number of digits in\n" -"the decimal part of Excellon coordinates." -msgstr "" -"Este número configura o número de dígitos\n" -"da parte decimal das coordenadas de Excellon." - -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:91 -msgid "Format" -msgstr "Formato" - -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:93 -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:103 -msgid "" -"Select the kind of coordinates format used.\n" -"Coordinates can be saved with decimal point or without.\n" -"When there is no decimal point, it is required to specify\n" -"the number of digits for integer part and the number of decimals.\n" -"Also it will have to be specified if LZ = leading zeros are kept\n" -"or TZ = trailing zeros are kept." -msgstr "" -"Selecione o formato de coordenadas a usar.\n" -"As coordenadas podem ser salvas com ou sem ponto decimal.\n" -"Quando não há ponto decimal, é necessário especificar\n" -"o número de dígitos para a parte inteira e o número de casas decimais.\n" -"Deve ser especificado LZ (manter zeros à esquerda)\n" -"ou TZ (manter zeros à direita)." - -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:100 -msgid "Decimal" -msgstr "Decimal" - -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:101 -msgid "No-Decimal" -msgstr "Não Decimal" - -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:114 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:154 -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:96 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:97 -msgid "Zeros" -msgstr "Zeros" - -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:117 -msgid "" -"This sets the type of Excellon zeros.\n" -"If LZ then Leading Zeros are kept and\n" -"Trailing Zeros are removed.\n" -"If TZ is checked then Trailing Zeros are kept\n" -"and Leading Zeros are removed." -msgstr "" -"Define o tipo de zeros de Excellon.\n" -"LZ: mantém os zeros à esquerda e remove os zeros à direita.\n" -"TZ: mantém os zeros à direita e remove os zeros à esquerda." - -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:124 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:167 -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:106 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:107 -#: AppTools/ToolPcbWizard.py:111 -msgid "LZ" -msgstr "LZ" - -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:125 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:168 -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:107 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:108 -#: AppTools/ToolPcbWizard.py:112 -msgid "TZ" -msgstr "TZ" - -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:127 -msgid "" -"This sets the default type of Excellon zeros.\n" -"If LZ then Leading Zeros are kept and\n" -"Trailing Zeros are removed.\n" -"If TZ is checked then Trailing Zeros are kept\n" -"and Leading Zeros are removed." -msgstr "" -"Define o tipo padrão de zeros de Excellon.\n" -"LZ: mantém os zeros à esquerda e remove os zeros à direita.\n" -"TZ: mantém os zeros à direita e remove os zeros à esquerda." - -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:137 -msgid "Slot type" -msgstr "Tipo de Ranhura" - -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:140 -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:150 -msgid "" -"This sets how the slots will be exported.\n" -"If ROUTED then the slots will be routed\n" -"using M15/M16 commands.\n" -"If DRILLED(G85) the slots will be exported\n" -"using the Drilled slot command (G85)." -msgstr "" -"Definição de como as ranhuras serão exportadas.\n" -"Se ROTEADO, as ranhuras serão roteadas\n" -"usando os comandos M15/M16.\n" -"Se PERFURADO as ranhuras serão exportadas\n" -"usando o comando Perfuração (G85)." - -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:147 -msgid "Routed" -msgstr "Roteado" - -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:148 -msgid "Drilled(G85)" -msgstr "Perfurado (G85)" - -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:29 -msgid "Excellon General" -msgstr "Excellon Geral" - -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:54 -#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:45 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:52 -msgid "M-Color" -msgstr "M-Cores" - -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:71 -msgid "Excellon Format" -msgstr "Formato Excellon" - -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:73 -msgid "" -"The NC drill files, usually named Excellon files\n" -"are files that can be found in different formats.\n" -"Here we set the format used when the provided\n" -"coordinates are not using period.\n" -"\n" -"Possible presets:\n" -"\n" -"PROTEUS 3:3 MM LZ\n" -"DipTrace 5:2 MM TZ\n" -"DipTrace 4:3 MM LZ\n" -"\n" -"EAGLE 3:3 MM TZ\n" -"EAGLE 4:3 MM TZ\n" -"EAGLE 2:5 INCH TZ\n" -"EAGLE 3:5 INCH TZ\n" -"\n" -"ALTIUM 2:4 INCH LZ\n" -"Sprint Layout 2:4 INCH LZ\n" -"KiCAD 3:5 INCH TZ" -msgstr "" -"Os arquivos de furos NC, normalmente chamados arquivos Excellon\n" -"são arquivos que podem ser encontrados em diferentes formatos.\n" -"Aqui é definido o formato usado quando as coordenadas\n" -"fornecidas não estiverem usando ponto.\n" -"\n" -"Padrões possíveis:\n" -"\n" -"PROTEUS 3:3 mm LZ\n" -"DipTrace 5:2 mm TZ\n" -"DipTrace 4:3 mm LZ\n" -"\n" -"EAGLE 3:3 mm TZ\n" -"EAGLE 4:3 mm TZ\n" -"EAGLE 2:5 polegadas TZ\n" -"EAGLE 3:5 polegadas TZ\n" -"\n" -"ALTIUM 2:4 polegadas LZ\n" -"Sprint Layout 2:4 polegadas LZ\n" -"KiCAD 3:5 polegadas TZ" - -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:97 -msgid "Default values for INCH are 2:4" -msgstr "Valores padrão para Polegadas: 2:4" - -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:125 -msgid "METRIC" -msgstr "MÉTRICO" - -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:126 -msgid "Default values for METRIC are 3:3" -msgstr "Valores padrão para Métrico: 3:3" - -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:157 -msgid "" -"This sets the type of Excellon zeros.\n" -"If LZ then Leading Zeros are kept and\n" -"Trailing Zeros are removed.\n" -"If TZ is checked then Trailing Zeros are kept\n" -"and Leading Zeros are removed.\n" -"\n" -"This is used when there is no information\n" -"stored in the Excellon file." -msgstr "" -"Define o tipo de zeros de Excellon.\n" -"LZ: mantém os zeros à esquerda e remove os zeros à direita.\n" -"TZ: mantém os zeros à direita e remove os zeros à esquerda.\n" -"\n" -"Isso é usado quando não há informações\n" -"armazenado no arquivo Excellon." - -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:175 -msgid "" -"This sets the default units of Excellon files.\n" -"If it is not detected in the parsed file the value here\n" -"will be used.Some Excellon files don't have an header\n" -"therefore this parameter will be used." -msgstr "" -"Configura as unidades padrão dos arquivos Excellon.\n" -"Alguns arquivos Excellon não possuem um cabeçalho.\n" -"Se não for detectado no arquivo analisado, este padrão\n" -"será usado." - -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:185 -msgid "" -"This sets the units of Excellon files.\n" -"Some Excellon files don't have an header\n" -"therefore this parameter will be used." -msgstr "" -"Configura as unidades dos arquivos Excellon.\n" -"Alguns arquivos Excellon não possuem um cabeçalho,\n" -"e assim este parâmetro será usado." - -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:193 -msgid "Update Export settings" -msgstr "Atualizar config. de exportação" - -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:210 -msgid "Excellon Optimization" -msgstr "Otimização Excellon" - -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:213 -msgid "Algorithm:" -msgstr "Algoritmo:" - -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:215 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:231 -msgid "" -"This sets the optimization type for the Excellon drill path.\n" -"If <> is checked then Google OR-Tools algorithm with\n" -"MetaHeuristic Guided Local Path is used. Default search time is 3sec.\n" -"If <> is checked then Google OR-Tools Basic algorithm is used.\n" -"If <> is checked then Travelling Salesman algorithm is used for\n" -"drill path optimization.\n" -"\n" -"If this control is disabled, then FlatCAM works in 32bit mode and it uses\n" -"Travelling Salesman algorithm for path optimization." -msgstr "" -"Define o tipo de otimização para o caminho de perfuração do Excellon.\n" -"Se <>estiver selecionado, será usado o algoritmo do Google OR-" -"Tools com MetaHeuristic.\n" -"O tempo de pesquisa padrão é de 3s.\n" -"Usar o comando TCL set_sys excellon_search_time para definir outros " -"valores.\n" -"Se <> estiver selecionado, será usado o algoritmo básico do Google " -"OR-Tools.\n" -"Se <> estiver selecionado, será usado o algoritmo Travelling Salesman.\n" -"\n" -"Se este controle está desabilitado, FlatCAM está no modo de 32 bits e usa\n" -"o algoritmo Travelling Salesman para otimização de caminhos." - -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:226 -msgid "MetaHeuristic" -msgstr "MetaHeuristic" - -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:227 -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:104 -#: AppObjects/FlatCAMExcellon.py:694 AppObjects/FlatCAMGeometry.py:568 -#: AppObjects/FlatCAMGerber.py:219 AppTools/ToolIsolation.py:785 -msgid "Basic" -msgstr "Básico" - -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:228 -msgid "TSA" -msgstr "TSA" - -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:245 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:245 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:238 -msgid "Duration" -msgstr "Tempo de espera" - -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:248 -msgid "" -"When OR-Tools Metaheuristic (MH) is enabled there is a\n" -"maximum threshold for how much time is spent doing the\n" -"path optimization. This max duration is set here.\n" -"In seconds." -msgstr "" -"Quando o Metaheuristic (MH) da OR-Tools está ativado, este é o limite\n" -"máximo de tempo para otimizar o caminho, em segundos. Padrão: 3." - -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:273 -#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:96 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:155 -msgid "Set the line color for plotted objects." -msgstr "Define a cor da linha para objetos plotados." - -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:29 -msgid "Excellon Options" -msgstr "Opções Excellon" - -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:33 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:35 -msgid "Create CNC Job" -msgstr "Criar Trabalho CNC" - -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:35 -msgid "" -"Parameters used to create a CNC Job object\n" -"for this drill object." -msgstr "" -"Parâmetros usados para criar um objeto de Trabalho CNC\n" -"para a furação." - -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:152 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:122 -msgid "Tool change" -msgstr "Troca de Ferramentas" - -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:236 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:233 -msgid "Enable Dwell" -msgstr "Ativar Pausa" - -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:259 -msgid "" -"The preprocessor JSON file that dictates\n" -"Gcode output." -msgstr "" -"O arquivo de pós-processamento (JSON) que define\n" -"a saída G-Code." - -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:270 -msgid "Gcode" -msgstr "G-Code" - -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:272 -msgid "" -"Choose what to use for GCode generation:\n" -"'Drills', 'Slots' or 'Both'.\n" -"When choosing 'Slots' or 'Both', slots will be\n" -"converted to drills." -msgstr "" -"Escolha o que usar para a geração de G-Code:\n" -"'Furos', 'Ranhuras' ou 'Ambos'.\n" -"Quando escolher 'Ranhuras' ou 'Ambos', as ranhuras serão\n" -"convertidos para furos." - -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:288 -msgid "Mill Holes" -msgstr "Furação" - -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:290 -msgid "Create Geometry for milling holes." -msgstr "Cria geometria para furação." - -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:294 -msgid "Drill Tool dia" -msgstr "Diâmetro da Broca" - -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:305 -msgid "Slot Tool dia" -msgstr "Diâmetro da Fresa" - -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:307 -msgid "" -"Diameter of the cutting tool\n" -"when milling slots." -msgstr "" -"Diâmetro da ferramenta de corte\n" -"quando fresar fendas (ranhuras)." - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:28 -#: AppGUI/preferences/general/GeneralAppSettingsGroupUI.py:74 -msgid "App Settings" -msgstr "Configurações do Aplicativo" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:49 -msgid "Grid Settings" -msgstr "Configurações de Grade" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:53 -msgid "X value" -msgstr "Valor X" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:55 -msgid "This is the Grid snap value on X axis." -msgstr "Este é o valor do encaixe à grade no eixo X." - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:65 -msgid "Y value" -msgstr "Valor Y" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:67 -msgid "This is the Grid snap value on Y axis." -msgstr "Este é o valor do encaixe à grade no eixo Y." - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:77 -msgid "Snap Max" -msgstr "Encaixe Max" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:92 -msgid "Workspace Settings" -msgstr "Configurações da área de trabalho" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:95 -msgid "Active" -msgstr "Ativo" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:105 -msgid "" -"Select the type of rectangle to be used on canvas,\n" -"as valid workspace." -msgstr "" -"Selecione o tipo de retângulo a ser usado na tela,\n" -"como área de trabalho válida." - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:171 -msgid "Orientation" -msgstr "Orientação" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:172 -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:228 -#: AppTools/ToolFilm.py:405 -msgid "" -"Can be:\n" -"- Portrait\n" -"- Landscape" -msgstr "" -"Pode ser:\n" -"- Retrato\n" -"- Paisagem" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:176 -#: AppGUI/preferences/general/GeneralAppSettingsGroupUI.py:154 -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:232 -#: AppTools/ToolFilm.py:409 -msgid "Portrait" -msgstr "Retrato" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:177 -#: AppGUI/preferences/general/GeneralAppSettingsGroupUI.py:155 -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:233 -#: AppTools/ToolFilm.py:410 -msgid "Landscape" -msgstr "Paisagem" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:193 -msgid "Notebook" -msgstr "Caderno" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:195 -#, fuzzy -#| msgid "" -#| "This sets the font size for the elements found in the Notebook.\n" -#| "The notebook is the collapsible area in the left side of the GUI,\n" -#| "and include the Project, Selected and Tool tabs." -msgid "" -"This sets the font size for the elements found in the Notebook.\n" -"The notebook is the collapsible area in the left side of the AppGUI,\n" -"and include the Project, Selected and Tool tabs." -msgstr "" -"Isso define o tamanho da fonte para os elementos encontrados no bloco de " -"notas.\n" -"O bloco de notas é a área desmontável no lado esquerdo da GUI,\n" -"e inclui as guias Projeto, Selecionado e Ferramenta." - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:214 -msgid "Axis" -msgstr "Eixo" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:216 -msgid "This sets the font size for canvas axis." -msgstr "Define o tamanho da fonte para o eixo da tela." - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:233 -msgid "Textbox" -msgstr "Caixa de texto" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:235 -#, fuzzy -#| msgid "" -#| "This sets the font size for the Textbox GUI\n" -#| "elements that are used in FlatCAM." -msgid "" -"This sets the font size for the Textbox AppGUI\n" -"elements that are used in the application." -msgstr "" -"Define o tamanho da fonte da caixa de texto\n" -"de elementos da GUI usados no FlatCAM." - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:253 -msgid "HUD" -msgstr "" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:255 -#, fuzzy -#| msgid "This sets the font size for canvas axis." -msgid "This sets the font size for the Heads Up Display." -msgstr "Define o tamanho da fonte para o eixo da tela." - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:280 -msgid "Mouse Settings" -msgstr "Configurações do mouse" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:284 -msgid "Cursor Shape" -msgstr "Forma do Cursor" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:286 -msgid "" -"Choose a mouse cursor shape.\n" -"- Small -> with a customizable size.\n" -"- Big -> Infinite lines" -msgstr "" -"Escolha uma forma de cursor do mouse.\n" -"- Pequeno -> com um tamanho personalizável.\n" -"- Grande -> Linhas infinitas" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:292 -#: AppGUI/preferences/general/GeneralAppSettingsGroupUI.py:193 -msgid "Small" -msgstr "Pequeno" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:293 -#: AppGUI/preferences/general/GeneralAppSettingsGroupUI.py:194 -msgid "Big" -msgstr "Grande" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:300 -msgid "Cursor Size" -msgstr "Tamanho do Cursor" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:302 -msgid "Set the size of the mouse cursor, in pixels." -msgstr "Define o tamanho do cursor do mouse, em pixels." - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:313 -msgid "Cursor Width" -msgstr "Largura do Cursor" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:315 -msgid "Set the line width of the mouse cursor, in pixels." -msgstr "Defina a largura da linha do cursor do mouse, em pixels." - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:326 -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:333 -msgid "Cursor Color" -msgstr "Cor do Cursor" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:328 -msgid "Check this box to color mouse cursor." -msgstr "Marque esta caixa para colorir o cursor do mouse." - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:335 -msgid "Set the color of the mouse cursor." -msgstr "Defina a cor do cursor do mouse." - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:350 -msgid "Pan Button" -msgstr "Botão Pan" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:352 -msgid "" -"Select the mouse button to use for panning:\n" -"- MMB --> Middle Mouse Button\n" -"- RMB --> Right Mouse Button" -msgstr "" -"Selecione o botão do mouse para usar o panning:\n" -"- BM -> Botão do meio do mouse\n" -"- BD -> botão direito do mouse" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:356 -#: AppGUI/preferences/general/GeneralAppSettingsGroupUI.py:226 -msgid "MMB" -msgstr "BM" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:357 -#: AppGUI/preferences/general/GeneralAppSettingsGroupUI.py:227 -msgid "RMB" -msgstr "BD" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:363 -msgid "Multiple Selection" -msgstr "Seleção Múltipla" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:365 -msgid "Select the key used for multiple selection." -msgstr "Selecione a tecla usada para seleção múltipla." - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:367 -#: AppGUI/preferences/general/GeneralAppSettingsGroupUI.py:233 -msgid "CTRL" -msgstr "CTRL" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:368 -#: AppGUI/preferences/general/GeneralAppSettingsGroupUI.py:234 -msgid "SHIFT" -msgstr "SHIFT" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:379 -msgid "Delete object confirmation" -msgstr "Confirmação excluir objeto" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:381 -msgid "" -"When checked the application will ask for user confirmation\n" -"whenever the Delete object(s) event is triggered, either by\n" -"menu shortcut or key shortcut." -msgstr "" -"Quando marcada, o aplicativo pedirá a confirmação do usuário\n" -"sempre que o evento Excluir objeto(s) é acionado, seja por\n" -"atalho de menu ou atalho de tecla." - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:388 -msgid "\"Open\" behavior" -msgstr "Comportamento \"Abrir\"" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:390 -msgid "" -"When checked the path for the last saved file is used when saving files,\n" -"and the path for the last opened file is used when opening files.\n" -"\n" -"When unchecked the path for opening files is the one used last: either the\n" -"path for saving files or the path for opening files." -msgstr "" -"Quando marcado, o caminho do último arquivo salvo é usado ao salvar " -"arquivos,\n" -"e o caminho para o último arquivo aberto é usado ao abrir arquivos.\n" -"\n" -"Quando desmarcado, o caminho para abrir arquivos é aquele usado por último:\n" -"o caminho para salvar arquivos ou o caminho para abrir arquivos." - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:399 -msgid "Enable ToolTips" -msgstr "Habilitar Dicas" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:401 -msgid "" -"Check this box if you want to have toolTips displayed\n" -"when hovering with mouse over items throughout the App." -msgstr "" -"Marque esta caixa se quiser que as dicas de ferramentas sejam exibidas\n" -"ao passar o mouse sobre os itens em todo o aplicativo." - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:408 -msgid "Allow Machinist Unsafe Settings" -msgstr "Permitir configurações inseguras de operador" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:410 -msgid "" -"If checked, some of the application settings will be allowed\n" -"to have values that are usually unsafe to use.\n" -"Like Z travel negative values or Z Cut positive values.\n" -"It will applied at the next application start.\n" -"<>: Don't change this unless you know what you are doing !!!" -msgstr "" -"Se marcado, algumas das configurações do aplicativo poderão\n" -"ter valores que geralmente não são seguros.\n" -"Como Deslocamento Z com valores negativos ou Altura de Corte Z com valores " -"positivos.\n" -"Será aplicado no próximo início do aplicativo.\n" -"<>: Não habilite, a menos que você saiba o que está fazendo !!!" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:422 -msgid "Bookmarks limit" -msgstr "Limite de favoritos" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:424 -msgid "" -"The maximum number of bookmarks that may be installed in the menu.\n" -"The number of bookmarks in the bookmark manager may be greater\n" -"but the menu will hold only so much." -msgstr "" -"O número máximo de favoritos que podem ser instalados no menu.\n" -"O número de favoritos no gerenciador de favoritos pode ser maior,\n" -"mas o menu mostrará apenas esse número." - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:433 -msgid "Activity Icon" -msgstr "Ícone de Atividade" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:435 -msgid "Select the GIF that show activity when FlatCAM is active." -msgstr "Selecione o GIF que mostra a atividade quando o FlatCAM está ativo." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:29 -msgid "App Preferences" -msgstr "Preferências do aplicativo" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:40 -msgid "" -"The default value for FlatCAM units.\n" -"Whatever is selected here is set every time\n" -"FlatCAM is started." -msgstr "" -"Unidade utilizada como padrão para os valores no FlatCAM.\n" -"O que estiver selecionado aqui será considerado sempre que\n" -"o FLatCAM for iniciado." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:44 -msgid "IN" -msgstr "in" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:50 -msgid "Precision MM" -msgstr "Precisão mm" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:52 -msgid "" -"The number of decimals used throughout the application\n" -"when the set units are in METRIC system.\n" -"Any change here require an application restart." -msgstr "" -"O número de casas decimais usadas em todo o aplicativo\n" -"quando as unidades definidas estiverem no sistema MÉTRICO.\n" -"Qualquer alteração aqui requer uma reinicialização do aplicativo." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:64 -msgid "Precision INCH" -msgstr "Precisão in" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:66 -msgid "" -"The number of decimals used throughout the application\n" -"when the set units are in INCH system.\n" -"Any change here require an application restart." -msgstr "" -"O número de casas decimais usadas em todo o aplicativo\n" -"quando as unidades definidas estiverem no sistema INGLÊS.\n" -"Qualquer alteração aqui requer uma reinicialização do aplicativo." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:78 -msgid "Graphic Engine" -msgstr "Mecanismo Gráfico" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:79 -msgid "" -"Choose what graphic engine to use in FlatCAM.\n" -"Legacy(2D) -> reduced functionality, slow performance but enhanced " -"compatibility.\n" -"OpenGL(3D) -> full functionality, high performance\n" -"Some graphic cards are too old and do not work in OpenGL(3D) mode, like:\n" -"Intel HD3000 or older. In this case the plot area will be black therefore\n" -"use the Legacy(2D) mode." -msgstr "" -"Escolha qual mecanismo gráfico usar no FlatCAM.\n" -"Legado (2D) -> funcionalidade reduzida, desempenho lento, mas " -"compatibilidade aprimorada.\n" -"OpenGL (3D) -> funcionalidade completa, alto desempenho\n" -"Algumas placas gráficas são muito antigas e não funcionam no modo OpenGL " -"(3D), como:\n" -"Intel HD3000 ou mais antigo. Nesse caso, a área de plotagem será preta. " -"Nesse caso,\n" -"use o modo Legado (2D)." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:85 -msgid "Legacy(2D)" -msgstr "Legado(2D)" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:86 -msgid "OpenGL(3D)" -msgstr "OpenGL(3D)" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:98 -msgid "APP. LEVEL" -msgstr "Nível do Aplicativo" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:99 -msgid "" -"Choose the default level of usage for FlatCAM.\n" -"BASIC level -> reduced functionality, best for beginner's.\n" -"ADVANCED level -> full functionality.\n" -"\n" -"The choice here will influence the parameters in\n" -"the Selected Tab for all kinds of FlatCAM objects." -msgstr "" -"Escolha o nível padrão de uso para FlatCAM.\n" -"Nível BÁSICO -> funcionalidade reduzida, melhor para iniciantes.\n" -"Nível AVANÇADO -> funcionalidade completa.\n" -"\n" -"A escolha influenciará os parâmetros na Aba\n" -"Selecionado para todos os tipos de objetos FlatCAM." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:105 -#: AppObjects/FlatCAMExcellon.py:707 AppObjects/FlatCAMGeometry.py:589 -#: AppObjects/FlatCAMGerber.py:227 AppTools/ToolIsolation.py:816 -msgid "Advanced" -msgstr "Avançado" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:111 -msgid "Portable app" -msgstr "Aplicativo portátil" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:112 -msgid "" -"Choose if the application should run as portable.\n" -"\n" -"If Checked the application will run portable,\n" -"which means that the preferences files will be saved\n" -"in the application folder, in the lib\\config subfolder." -msgstr "" -"Escolha se o aplicativo deve ser executado como portátil.\n" -"\n" -"Se marcado, o aplicativo será executado como portátil,\n" -"o que significa que os arquivos de preferências serão salvos\n" -"na pasta do aplicativo, na subpasta lib\\config." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:125 -msgid "Languages" -msgstr "Idioma" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:126 -msgid "Set the language used throughout FlatCAM." -msgstr "Defina o idioma usado no FlatCAM." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:132 -msgid "Apply Language" -msgstr "Aplicar o Idioma" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:133 -msgid "" -"Set the language used throughout FlatCAM.\n" -"The app will restart after click." -msgstr "" -"Defina o idioma usado no FlatCAM.\n" -"O aplicativo será reiniciado após o clique." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:147 -msgid "Startup Settings" -msgstr "Configurações de Inicialização" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:151 -msgid "Splash Screen" -msgstr "Tela de Abertura" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:153 -msgid "Enable display of the splash screen at application startup." -msgstr "Habilita a Tela de Abertura na inicialização do aplicativo." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:165 -msgid "Sys Tray Icon" -msgstr "Ícone da Bandeja do Sistema" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:167 -msgid "Enable display of FlatCAM icon in Sys Tray." -msgstr "Ativa a exibição do ícone do FlatCAM na bandeja do sistema." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:172 -msgid "Show Shell" -msgstr "Mostrar Shell" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:174 -msgid "" -"Check this box if you want the shell to\n" -"start automatically at startup." -msgstr "" -"Marque esta caixa se você deseja que o shell (linha de comando)\n" -"seja inicializado automaticamente na inicialização." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:181 -msgid "Show Project" -msgstr "Mostrar Projeto" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:183 -msgid "" -"Check this box if you want the project/selected/tool tab area to\n" -"to be shown automatically at startup." -msgstr "" -"Marque esta caixa se você quiser que a aba Projeto/Selecionado/Ferramenta\n" -"seja apresentada automaticamente na inicialização." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:189 -msgid "Version Check" -msgstr "Verificar Versão" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:191 -msgid "" -"Check this box if you want to check\n" -"for a new version automatically at startup." -msgstr "" -"Marque esta caixa se você quiser verificar\n" -"por nova versão automaticamente na inicialização." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:198 -msgid "Send Statistics" -msgstr "Enviar estatísticas" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:200 -msgid "" -"Check this box if you agree to send anonymous\n" -"stats automatically at startup, to help improve FlatCAM." -msgstr "" -"Marque esta caixa se você concorda em enviar dados anônimos\n" -"automaticamente na inicialização, para ajudar a melhorar o FlatCAM." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:214 -msgid "Workers number" -msgstr "Número de trabalhadores" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:216 -msgid "" -"The number of Qthreads made available to the App.\n" -"A bigger number may finish the jobs more quickly but\n" -"depending on your computer speed, may make the App\n" -"unresponsive. Can have a value between 2 and 16.\n" -"Default value is 2.\n" -"After change, it will be applied at next App start." -msgstr "" -"O número de Qthreads disponibilizados para o App.\n" -"Um número maior pode executar os trabalhos mais rapidamente, mas\n" -"dependendo da velocidade do computador, pode fazer com que o App\n" -"não responda. Pode ter um valor entre 2 e 16. O valor padrão é 2.\n" -"Após a mudança, ele será aplicado na próxima inicialização." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:230 -msgid "Geo Tolerance" -msgstr "Tolerância Geo" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:232 -msgid "" -"This value can counter the effect of the Circle Steps\n" -"parameter. Default value is 0.005.\n" -"A lower value will increase the detail both in image\n" -"and in Gcode for the circles, with a higher cost in\n" -"performance. Higher value will provide more\n" -"performance at the expense of level of detail." -msgstr "" -"Este valor pode contrariar o efeito do parâmetro Passos do Círculo.\n" -"O valor padrão é 0.005.\n" -"Um valor mais baixo aumentará os detalhes na imagem e no G-Code\n" -"para os círculos, com um custo maior em desempenho.\n" -"Um valor maior proporcionará mais desempenho à custa do nível\n" -"de detalhes." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:252 -msgid "Save Settings" -msgstr "Configurações para Salvar" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:256 -msgid "Save Compressed Project" -msgstr "Salvar Projeto Compactado" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:258 -msgid "" -"Whether to save a compressed or uncompressed project.\n" -"When checked it will save a compressed FlatCAM project." -msgstr "" -"Para salvar um projeto compactado ou descompactado.\n" -"Quando marcado, o projeto FlatCAM será salvo compactado." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:267 -msgid "Compression" -msgstr "Compressão" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:269 -msgid "" -"The level of compression used when saving\n" -"a FlatCAM project. Higher value means better compression\n" -"but require more RAM usage and more processing time." -msgstr "" -"O nível de compactação usado ao salvar o Projeto FlatCAM.\n" -"Um valor maior significa melhor compactação, mas é necessário mais uso de " -"RAM e mais tempo de processamento." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:280 -msgid "Enable Auto Save" -msgstr "Salvar Automaticamente" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:282 -msgid "" -"Check to enable the autosave feature.\n" -"When enabled, the application will try to save a project\n" -"at the set interval." -msgstr "" -"Marcar para ativar o recurso de salvamento automático.\n" -"Quando ativado, o aplicativo tentará salvar um projeto\n" -"no intervalo definido." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:292 -msgid "Interval" -msgstr "Intervalo" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:294 -msgid "" -"Time interval for autosaving. In milliseconds.\n" -"The application will try to save periodically but only\n" -"if the project was saved manually at least once.\n" -"While active, some operations may block this feature." -msgstr "" -"Intervalo de tempo para gravação automática, em milissegundos.\n" -"O aplicativo tentará salvar periodicamente, mas apenas\n" -"se o projeto foi salvo manualmente pelo menos uma vez.\n" -"Algumas operações podem bloquear esse recurso enquanto estiverem ativas." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:310 -msgid "Text to PDF parameters" -msgstr "Parâmetros de texto para PDF" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:312 -msgid "Used when saving text in Code Editor or in FlatCAM Document objects." -msgstr "" -"Usado ao salvar texto no Editor de código ou nos objetos de documento do " -"FlatCAM." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:321 -msgid "Top Margin" -msgstr "Margem superiorMargem" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:323 -msgid "Distance between text body and the top of the PDF file." -msgstr "Distância entre o corpo do texto e a parte superior do arquivo PDF." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:334 -msgid "Bottom Margin" -msgstr "Margem inferior" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:336 -msgid "Distance between text body and the bottom of the PDF file." -msgstr "Distância entre o corpo do texto e a parte inferior do arquivo PDF." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:347 -msgid "Left Margin" -msgstr "Margem esquerdaMargem" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:349 -msgid "Distance between text body and the left of the PDF file." -msgstr "Distância entre o corpo do texto e a esquerda do arquivo PDF." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:360 -msgid "Right Margin" -msgstr "Margem direita" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:362 -msgid "Distance between text body and the right of the PDF file." -msgstr "Distância entre o corpo do texto e o direito do arquivo PDF." - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:26 -msgid "GUI Preferences" -msgstr "Preferências da GUI" - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:36 -msgid "Theme" -msgstr "Tema" - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:38 -#, fuzzy -#| msgid "" -#| "Select a theme for FlatCAM.\n" -#| "It will theme the plot area." -msgid "" -"Select a theme for the application.\n" -"It will theme the plot area." -msgstr "" -"Selecione um tema para FlatCAM.\n" -"Ele será aplicado na área do gráfico." - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:43 -msgid "Light" -msgstr "Claro" - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:44 -msgid "Dark" -msgstr "Escuro" - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:51 -msgid "Use Gray Icons" -msgstr "Use ícones cinza" - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:53 -msgid "" -"Check this box to use a set of icons with\n" -"a lighter (gray) color. To be used when a\n" -"full dark theme is applied." -msgstr "" -"Marque esta caixa para usar um conjunto de ícones com\n" -"uma cor mais clara (cinza). Para ser usado quando um\n" -"o tema escuro total é aplicado." - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:73 -msgid "Layout" -msgstr "Layout" - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:75 -#, fuzzy -#| msgid "" -#| "Select an layout for FlatCAM.\n" -#| "It is applied immediately." -msgid "" -"Select a layout for the application.\n" -"It is applied immediately." -msgstr "" -"Selecione um layout para o FlatCAM.\n" -"É aplicado imediatamente." - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:95 -msgid "Style" -msgstr "Estilo" - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:97 -#, fuzzy -#| msgid "" -#| "Select an style for FlatCAM.\n" -#| "It will be applied at the next app start." -msgid "" -"Select a style for the application.\n" -"It will be applied at the next app start." -msgstr "" -"Selecione um estilo para FlatCAM.\n" -"Ele será aplicado na próxima inicialização." - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:111 -msgid "Activate HDPI Support" -msgstr "Ativar HDPI" - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:113 -#, fuzzy -#| msgid "" -#| "Enable High DPI support for FlatCAM.\n" -#| "It will be applied at the next app start." -msgid "" -"Enable High DPI support for the application.\n" -"It will be applied at the next app start." -msgstr "" -"Ativa o suporte de alta DPI para FlatCAM.\n" -"Ele será aplicado na próxima inicialização." - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:127 -msgid "Display Hover Shape" -msgstr "Exibir forma de foco suspenso" - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:129 -#, fuzzy -#| msgid "" -#| "Enable display of a hover shape for FlatCAM objects.\n" -#| "It is displayed whenever the mouse cursor is hovering\n" -#| "over any kind of not-selected object." -msgid "" -"Enable display of a hover shape for the application objects.\n" -"It is displayed whenever the mouse cursor is hovering\n" -"over any kind of not-selected object." -msgstr "" -"Habilita a exibição de uma forma flutuante para objetos FlatCAM.\n" -"É exibido sempre que o cursor do mouse estiver pairando\n" -"sobre qualquer tipo de objeto não selecionado." - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:136 -msgid "Display Selection Shape" -msgstr "Exibir forma de seleção" - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:138 -#, fuzzy -#| msgid "" -#| "Enable the display of a selection shape for FlatCAM objects.\n" -#| "It is displayed whenever the mouse selects an object\n" -#| "either by clicking or dragging mouse from left to right or\n" -#| "right to left." -msgid "" -"Enable the display of a selection shape for the application objects.\n" -"It is displayed whenever the mouse selects an object\n" -"either by clicking or dragging mouse from left to right or\n" -"right to left." -msgstr "" -"Ativa a exibição de seleção de forma para objetos FlatCAM.\n" -"É exibido sempre que o mouse seleciona um objeto\n" -"seja clicando ou arrastando o mouse da esquerda para a direita ou da direita " -"para a esquerda." - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:151 -msgid "Left-Right Selection Color" -msgstr "Cor da seleção esquerda-direita" - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:156 -msgid "Set the line color for the 'left to right' selection box." -msgstr "" -"Define a cor da linha para a caixa de seleção 'da esquerda para a direita'." - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:165 -msgid "" -"Set the fill color for the selection box\n" -"in case that the selection is done from left to right.\n" -"First 6 digits are the color and the last 2\n" -"digits are for alpha (transparency) level." -msgstr "" -"Define a cor de preenchimento para a caixa de seleção\n" -"no caso de a seleção ser feita da esquerda para a direita.\n" -"Os primeiros 6 dígitos são a cor e os últimos 2\n" -"dígitos são para o nível alfa (transparência)." - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:178 -msgid "Set the fill transparency for the 'left to right' selection box." -msgstr "" -"Define a transparência de preenchimento para a caixa de seleção 'da esquerda " -"para a direita'." - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:191 -msgid "Right-Left Selection Color" -msgstr "Cor da seleção direita-esquerda" - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:197 -msgid "Set the line color for the 'right to left' selection box." -msgstr "" -"Define a cor da linha para a caixa de seleção 'direita para a esquerda'." - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:207 -msgid "" -"Set the fill color for the selection box\n" -"in case that the selection is done from right to left.\n" -"First 6 digits are the color and the last 2\n" -"digits are for alpha (transparency) level." -msgstr "" -"Define a cor de preenchimento para a caixa de seleção, caso a seleção seja " -"feita da direita para a esquerda.\n" -"Os primeiros 6 dígitos são a cor e os últimos 2\n" -"dígitos são para o nível alfa (transparência)." - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:220 -msgid "Set the fill transparency for selection 'right to left' box." -msgstr "" -"Define a transparência de preenchimento para a seleção da caixa 'direita " -"para a esquerda'." - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:236 -msgid "Editor Color" -msgstr "Cor do editor" - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:240 -msgid "Drawing" -msgstr "Desenhando" - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:242 -msgid "Set the color for the shape." -msgstr "Define a cor da forma." - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:250 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:275 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:311 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:258 -#: AppTools/ToolIsolation.py:494 AppTools/ToolNCC.py:539 -#: AppTools/ToolPaint.py:455 -msgid "Selection" -msgstr "Seleção" - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:252 -msgid "Set the color of the shape when selected." -msgstr "Define a cor da forma quando selecionada." - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:268 -msgid "Project Items Color" -msgstr "Cor dos itens do projeto" - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:272 -msgid "Enabled" -msgstr "Ativado" - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:274 -msgid "Set the color of the items in Project Tab Tree." -msgstr "Define a cor dos itens na Árvore do Guia de Projeto." - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:281 -msgid "Disabled" -msgstr "Desativado" - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:283 -msgid "" -"Set the color of the items in Project Tab Tree,\n" -"for the case when the items are disabled." -msgstr "" -"Define a cor dos itens na Árvore da guia Projeto,\n" -"para o caso em que os itens estão desativados." - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:292 -msgid "Project AutoHide" -msgstr "Auto Ocultar" - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:294 -msgid "" -"Check this box if you want the project/selected/tool tab area to\n" -"hide automatically when there are no objects loaded and\n" -"to show whenever a new object is created." -msgstr "" -"Marque esta caixa se você deseja que a aba Projeto/Selecionado/Ferramenta\n" -"desapareça automaticamente quando não houver objetos carregados e\n" -"apareça sempre que um novo objeto for criado." - -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:28 -msgid "Geometry Adv. Options" -msgstr "Opções Avançadas" - -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:36 -msgid "" -"A list of Geometry advanced parameters.\n" -"Those parameters are available only for\n" -"Advanced App. Level." -msgstr "" -"Uma lista de parâmetros avançados de Geometria.\n" -"Esses parâmetros estão disponíveis somente para\n" -"o nível avançado do aplicativo." - -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:46 -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:112 -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:134 -#: AppTools/ToolCalibration.py:125 AppTools/ToolSolderPaste.py:236 -msgid "Toolchange X-Y" -msgstr "Troca de ferramenta X-Y" - -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:58 -msgid "" -"Height of the tool just after starting the work.\n" -"Delete the value if you don't need this feature." -msgstr "" -"Altura da ferramenta ao iniciar o trabalho.\n" -"Exclua o valor se você não precisar deste recurso." - -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:161 -msgid "Segment X size" -msgstr "Tamanho do Segmento X" - -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:163 -msgid "" -"The size of the trace segment on the X axis.\n" -"Useful for auto-leveling.\n" -"A value of 0 means no segmentation on the X axis." -msgstr "" -"O tamanho do segmento de rastreio no eixo X.\n" -"Útil para nivelamento automático.\n" -"Valor 0 significa que não há segmentação no eixo X." - -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:177 -msgid "Segment Y size" -msgstr "Tamanho do Segmento Y" - -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:179 -msgid "" -"The size of the trace segment on the Y axis.\n" -"Useful for auto-leveling.\n" -"A value of 0 means no segmentation on the Y axis." -msgstr "" -"O tamanho do segmento de rastreio no eixo Y.\n" -"Útil para nivelamento automático.\n" -"Valor 0 significa que não há segmentação no eixo Y." - -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:200 -#, fuzzy -#| msgid "Area Selection" -msgid "Area Exclusion" -msgstr "Seleção de Área" - -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:202 -#, fuzzy -#| msgid "" -#| "A list of Excellon advanced parameters.\n" -#| "Those parameters are available only for\n" -#| "Advanced App. Level." -msgid "" -"Area exclusion parameters.\n" -"Those parameters are available only for\n" -"Advanced App. Level." -msgstr "" -"Uma lista de parâmetros avançados do Excellon.\n" -"Esses parâmetros estão disponíveis somente para\n" -"o nível avançado do aplicativo." - -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:209 -msgid "Exclusion areas" -msgstr "" - -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:220 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:293 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:322 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:286 -#: AppTools/ToolIsolation.py:540 AppTools/ToolNCC.py:578 -#: AppTools/ToolPaint.py:521 -msgid "Shape" -msgstr "Formato" - -#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:33 -msgid "A list of Geometry Editor parameters." -msgstr "Parâmetros do Editor de Geometria." - -#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:43 -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:174 -msgid "" -"Set the number of selected geometry\n" -"items above which the utility geometry\n" -"becomes just a selection rectangle.\n" -"Increases the performance when moving a\n" -"large number of geometric elements." -msgstr "" -"Define o número máximo de ítens de geometria selecionados.\n" -"Acima desse valor a geometria se torna um retângulo de seleção.\n" -"Aumenta o desempenho ao mover um grande número de elementos geométricos." - -#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:58 -msgid "" -"Milling type:\n" -"- climb / best for precision milling and to reduce tool usage\n" -"- conventional / useful when there is no backlash compensation" -msgstr "" -"Tipo de fresamento:\n" -"- subida: melhor para fresamento de precisão e para reduzir o uso da " -"ferramenta\n" -"- convencional: útil quando não há compensação de folga" - -#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:27 -msgid "Geometry General" -msgstr "Geometria Geral" - -#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:59 -msgid "" -"The number of circle steps for Geometry \n" -"circle and arc shapes linear approximation." -msgstr "" -"Número de etapas do círculo para a aproximação linear\n" -"de Geometria círculo e arco." - -#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:73 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:41 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:41 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:48 -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:42 -msgid "Tools Dia" -msgstr "Diâ. da Ferramenta" - -#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:75 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:108 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:43 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:43 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:50 -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:44 -msgid "" -"Diameters of the tools, separated by comma.\n" -"The value of the diameter has to use the dot decimals separator.\n" -"Valid values: 0.3, 1.0" -msgstr "" -"Diâmetros das ferramentas, separados por vírgula.\n" -"Deve ser utilizado PONTO como separador de casas decimais.\n" -"Valores válidos: 0.3, 1.0" - -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:29 -msgid "Geometry Options" -msgstr "Opções de Geometria" - -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:37 -msgid "" -"Create a CNC Job object\n" -"tracing the contours of this\n" -"Geometry object." -msgstr "" -"Cria um objeto de Trabalho CNC\n" -"traçando os contornos deste objeto\n" -"Geometria." - -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:81 -msgid "Depth/Pass" -msgstr "Profundidade por Passe" - -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:83 -msgid "" -"The depth to cut on each pass,\n" -"when multidepth is enabled.\n" -"It has positive value although\n" -"it is a fraction from the depth\n" -"which has negative value." -msgstr "" -"A profundidade a ser cortada em cada passe,\n" -"quando Múltiplas Profundidades estiver ativo.\n" -"Tem valor positivo, embora seja uma fração\n" -"da profundidade, que tem valor negativo." - -#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:27 -msgid "Gerber Adv. Options" -msgstr "Opções Avançadas" - -#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:33 -msgid "" -"A list of Gerber advanced parameters.\n" -"Those parameters are available only for\n" -"Advanced App. Level." -msgstr "" -"Uma lista de parâmetros avançados do Gerber.\n" -"Esses parâmetros estão disponíveis somente para\n" -"o nível avançado do aplicativo." - -#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:43 -msgid "\"Follow\"" -msgstr "\"Segue\"" - -#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:52 -msgid "Table Show/Hide" -msgstr "Mostra/Esconde Tabela" - -#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:54 -msgid "" -"Toggle the display of the Gerber Apertures Table.\n" -"Also, on hide, it will delete all mark shapes\n" -"that are drawn on canvas." -msgstr "" -"Alterna a exibição da Tabela de Aberturas Gerber.\n" -"Além disso, ao ocultar, ele excluirá todas as formas de marcas\n" -"que estão desenhadas na tela." - -#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:67 -#: AppObjects/FlatCAMGerber.py:391 AppTools/ToolCopperThieving.py:1026 -#: AppTools/ToolCopperThieving.py:1215 AppTools/ToolCopperThieving.py:1227 -#: AppTools/ToolIsolation.py:1593 AppTools/ToolNCC.py:2079 -#: AppTools/ToolNCC.py:2190 AppTools/ToolNCC.py:2205 AppTools/ToolNCC.py:3163 -#: AppTools/ToolNCC.py:3268 AppTools/ToolNCC.py:3283 AppTools/ToolNCC.py:3549 -#: AppTools/ToolNCC.py:3650 AppTools/ToolNCC.py:3665 camlib.py:992 -msgid "Buffering" -msgstr "Criando buffer" - -#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:69 -msgid "" -"Buffering type:\n" -"- None --> best performance, fast file loading but no so good display\n" -"- Full --> slow file loading but good visuals. This is the default.\n" -"<>: Don't change this unless you know what you are doing !!!" -msgstr "" -"Tipo de Buffer:\n" -"- Nenhum --> melhor desempenho, abertura de arquivos rápida, mas não tão boa " -"aparência\n" -"- Completo --> abertura de arquivos lenta, mas boa aparência. Este é o " -"padrão.\n" -"<>: Não altere isso, a menos que você saiba o que está fazendo !!!" - -#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:74 -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:88 -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:196 -#: AppTools/ToolFiducials.py:204 AppTools/ToolFilm.py:238 -#: AppTools/ToolProperties.py:452 AppTools/ToolProperties.py:455 -#: AppTools/ToolProperties.py:458 AppTools/ToolProperties.py:483 -msgid "None" -msgstr "Nenhum" - -#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:80 -msgid "Simplify" -msgstr "Simplificar" - -#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:82 -msgid "" -"When checked all the Gerber polygons will be\n" -"loaded with simplification having a set tolerance.\n" -"<>: Don't change this unless you know what you are doing !!!" -msgstr "" -"Quando marcado, todos os polígonos Gerber serão\n" -"carregados com simplificação com uma tolerância definida.\n" -"<>: Não altere, a menos que saiba o que está fazendo !!!" - -#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:89 -msgid "Tolerance" -msgstr "Tolerância" - -#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:90 -msgid "Tolerance for polygon simplification." -msgstr "Tolerância para a simplificação de polígonos." - -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:33 -msgid "A list of Gerber Editor parameters." -msgstr "Uma lista de parâmetros do Editor Gerber." - -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:43 -msgid "" -"Set the number of selected Gerber geometry\n" -"items above which the utility geometry\n" -"becomes just a selection rectangle.\n" -"Increases the performance when moving a\n" -"large number of geometric elements." -msgstr "" -"Define o número máximo de ítens de geometria Gerber selecionados.\n" -"Acima desse valor a geometria se torna um retângulo de seleção.\n" -"Aumenta o desempenho ao mover um grande número de elementos geométricos." - -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:56 -msgid "New Aperture code" -msgstr "Novo código de Aber." - -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:69 -msgid "New Aperture size" -msgstr "Novo tamanho de Aber." - -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:71 -msgid "Size for the new aperture" -msgstr "Tamanho para a nova abertura" - -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:82 -msgid "New Aperture type" -msgstr "Novo tipo de Aber." - -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:84 -msgid "" -"Type for the new aperture.\n" -"Can be 'C', 'R' or 'O'." -msgstr "" -"Tipo para a nova abertura.\n" -"Pode ser 'C', 'R' ou 'O'." - -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:106 -msgid "Aperture Dimensions" -msgstr "Dimensão" - -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:117 -msgid "Linear Pad Array" -msgstr "Matriz Linear de Pads" - -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:161 -msgid "Circular Pad Array" -msgstr "Matriz Circular de Pads" - -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:197 -msgid "Distance at which to buffer the Gerber element." -msgstr "Distância na qual armazenar o elemento Gerber." - -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:206 -msgid "Scale Tool" -msgstr "Ferramenta de Escala" - -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:212 -msgid "Factor to scale the Gerber element." -msgstr "Fator para redimensionar o elemento Gerber." - -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:225 -msgid "Threshold low" -msgstr "Limiar baixo" - -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:227 -msgid "Threshold value under which the apertures are not marked." -msgstr "Valor limiar sob o qual as aberturas não são marcadas." - -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:237 -msgid "Threshold high" -msgstr "Limiar alto" - -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:239 -msgid "Threshold value over which the apertures are not marked." -msgstr "Valor limite sobre o qual as aberturas não são marcadas." - -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:27 -msgid "Gerber Export" -msgstr "Exportar Gerber" - -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:33 -msgid "" -"The parameters set here are used in the file exported\n" -"when using the File -> Export -> Export Gerber menu entry." -msgstr "" -"Os parâmetros definidos aqui são usados no arquivo exportado\n" -"ao usar a entrada de menu Arquivo -> Exportar -> Exportar Gerber." - -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:44 -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:50 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:84 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:90 -msgid "The units used in the Gerber file." -msgstr "As unidades usadas no arquivo Gerber." - -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:58 -msgid "" -"The number of digits in the whole part of the number\n" -"and in the fractional part of the number." -msgstr "" -"O número de dígitos da parte inteira\n" -"e da parte fracionária do número." - -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:71 -msgid "" -"This numbers signify the number of digits in\n" -"the whole part of Gerber coordinates." -msgstr "" -"Esse número configura o número de dígitos\n" -"da parte inteira das coordenadas de Gerber." - -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:87 -msgid "" -"This numbers signify the number of digits in\n" -"the decimal part of Gerber coordinates." -msgstr "" -"Este número configura o número de dígitos\n" -"da parte decimal das coordenadas de Gerber." - -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:99 -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:109 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:100 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:110 -msgid "" -"This sets the type of Gerber zeros.\n" -"If LZ then Leading Zeros are removed and\n" -"Trailing Zeros are kept.\n" -"If TZ is checked then Trailing Zeros are removed\n" -"and Leading Zeros are kept." -msgstr "" -"Define o tipo padrão de zeros de Gerber.\n" -"LZ: remove os zeros à esquerda e mantém os zeros à direita.\n" -"TZ: remove os zeros à direita e mantém os zeros à esquerda." - -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:27 -msgid "Gerber General" -msgstr "Gerber Geral" - -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:61 -msgid "" -"The number of circle steps for Gerber \n" -"circular aperture linear approximation." -msgstr "" -"Número de passos de círculo para Gerber.\n" -"Aproximação linear de abertura circular." - -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:73 -msgid "Default Values" -msgstr "Valores Padrão" - -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:75 -msgid "" -"Those values will be used as fallback values\n" -"in case that they are not found in the Gerber file." -msgstr "" -"Esses valores serão usados como valores padrão\n" -"caso eles não sejam encontrados no arquivo Gerber." - -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:126 -msgid "Clean Apertures" -msgstr "Limpe as Aberturas" - -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:128 -msgid "" -"Will remove apertures that do not have geometry\n" -"thus lowering the number of apertures in the Gerber object." -msgstr "" -"Remove aberturas que não possuem geometria\n" -"diminuindo assim o número de aberturas no objeto Gerber." - -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:134 -msgid "Polarity change buffer" -msgstr "Buffer de mudança de polaridade" - -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:136 -msgid "" -"Will apply extra buffering for the\n" -"solid geometry when we have polarity changes.\n" -"May help loading Gerber files that otherwise\n" -"do not load correctly." -msgstr "" -"Aplicará buffer extra para o\n" -"geometria sólida quando temos mudanças de polaridade.\n" -"Pode ajudar a carregar arquivos Gerber que de outra forma\n" -"Não carregue corretamente." - -#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:29 -msgid "Gerber Options" -msgstr "Opções Gerber" - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:27 -msgid "Copper Thieving Tool Options" -msgstr "Opções da ferramenta Adição de Cobre" - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:39 -msgid "" -"A tool to generate a Copper Thieving that can be added\n" -"to a selected Gerber file." -msgstr "" -"Uma ferramenta para gerar uma Adição de cobre que pode ser adicionada\n" -"para um arquivo Gerber selecionado." - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:47 -msgid "Number of steps (lines) used to interpolate circles." -msgstr "Número de etapas (linhas) usadas para interpolar círculos." - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:57 -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:261 -#: AppTools/ToolCopperThieving.py:100 AppTools/ToolCopperThieving.py:435 -msgid "Clearance" -msgstr "Espaço" - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:59 -msgid "" -"This set the distance between the copper Thieving components\n" -"(the polygon fill may be split in multiple polygons)\n" -"and the copper traces in the Gerber file." -msgstr "" -"Define a distância entre os componentes Adição de cobre\n" -"(o preenchimento de polígono pode ser dividido em vários polígonos)\n" -"e os vestígios de cobre no arquivo Gerber." - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:86 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309 -#: AppTools/ToolCopperThieving.py:129 AppTools/ToolNCC.py:535 -#: AppTools/ToolNCC.py:1324 AppTools/ToolNCC.py:1655 AppTools/ToolNCC.py:1948 -#: AppTools/ToolNCC.py:2012 AppTools/ToolNCC.py:3027 AppTools/ToolNCC.py:3036 -#: defaults.py:419 tclCommands/TclCommandCopperClear.py:190 -msgid "Itself" -msgstr "Própria" - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:87 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:285 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280 -#: AppTools/ToolCopperThieving.py:130 AppTools/ToolIsolation.py:504 -#: AppTools/ToolIsolation.py:1297 AppTools/ToolIsolation.py:1671 -#: AppTools/ToolNCC.py:535 AppTools/ToolNCC.py:1334 AppTools/ToolNCC.py:1668 -#: AppTools/ToolNCC.py:1964 AppTools/ToolNCC.py:2019 AppTools/ToolPaint.py:485 -#: AppTools/ToolPaint.py:945 AppTools/ToolPaint.py:1471 -msgid "Area Selection" -msgstr "Seleção de Área" - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:88 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:285 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280 -#: AppTools/ToolCopperThieving.py:131 AppTools/ToolDblSided.py:216 -#: AppTools/ToolIsolation.py:504 AppTools/ToolIsolation.py:1711 -#: AppTools/ToolNCC.py:535 AppTools/ToolNCC.py:1684 AppTools/ToolNCC.py:1970 -#: AppTools/ToolNCC.py:2027 AppTools/ToolNCC.py:2408 AppTools/ToolNCC.py:2656 -#: AppTools/ToolNCC.py:3072 AppTools/ToolPaint.py:485 AppTools/ToolPaint.py:930 -#: AppTools/ToolPaint.py:1487 tclCommands/TclCommandCopperClear.py:192 -#: tclCommands/TclCommandPaint.py:166 -msgid "Reference Object" -msgstr "Objeto de Referência" - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:90 -#: AppTools/ToolCopperThieving.py:133 -msgid "Reference:" -msgstr "Referência:" - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:92 -msgid "" -"- 'Itself' - the copper Thieving extent is based on the object extent.\n" -"- 'Area Selection' - left mouse click to start selection of the area to be " -"filled.\n" -"- 'Reference Object' - will do copper thieving within the area specified by " -"another object." -msgstr "" -"- 'Própria' - a adição de cobre é baseada no próprio objeto a ser limpo.\n" -"- 'Seleção de Área' - clique com o botão esquerdo do mouse para iniciar a " -"seleção da área a ser pintada.\n" -"- 'Objeto de Referência' - adicionará o cobre dentro da área do objeto " -"especificado." - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:101 -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:76 -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:188 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:76 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:190 -#: AppTools/ToolCopperThieving.py:175 AppTools/ToolExtractDrills.py:102 -#: AppTools/ToolExtractDrills.py:240 AppTools/ToolPunchGerber.py:113 -#: AppTools/ToolPunchGerber.py:268 -msgid "Rectangular" -msgstr "Retangular" - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:102 -#: AppTools/ToolCopperThieving.py:176 -msgid "Minimal" -msgstr "Mínima" - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:104 -#: AppTools/ToolCopperThieving.py:178 AppTools/ToolFilm.py:94 -msgid "Box Type:" -msgstr "Tipo de Caixa:" - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:106 -#: AppTools/ToolCopperThieving.py:180 -msgid "" -"- 'Rectangular' - the bounding box will be of rectangular shape.\n" -"- 'Minimal' - the bounding box will be the convex hull shape." -msgstr "" -"- 'Retangular' - a caixa delimitadora será de forma retangular.\n" -"- 'Mínima' - a caixa delimitadora terá a forma convexa do casco." - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:120 -#: AppTools/ToolCopperThieving.py:196 -msgid "Dots Grid" -msgstr "Pontos" - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:121 -#: AppTools/ToolCopperThieving.py:197 -msgid "Squares Grid" -msgstr "Quadrados" - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:122 -#: AppTools/ToolCopperThieving.py:198 -msgid "Lines Grid" -msgstr "Linhas" - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:124 -#: AppTools/ToolCopperThieving.py:200 -msgid "Fill Type:" -msgstr "Tipo de Preenchimento:" - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:126 -#: AppTools/ToolCopperThieving.py:202 -msgid "" -"- 'Solid' - copper thieving will be a solid polygon.\n" -"- 'Dots Grid' - the empty area will be filled with a pattern of dots.\n" -"- 'Squares Grid' - the empty area will be filled with a pattern of squares.\n" -"- 'Lines Grid' - the empty area will be filled with a pattern of lines." -msgstr "" -"- 'Sólido' - a adição de cobre será um polígono sólido.\n" -"- 'Pontos' - a área vazia será preenchida com um padrão de pontos.\n" -"- 'Quadrados' - a área vazia será preenchida com um padrão de quadrados.\n" -"- 'Linhas' - a área vazia será preenchida com um padrão de linhas." - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:134 -#: AppTools/ToolCopperThieving.py:221 -msgid "Dots Grid Parameters" -msgstr "Parâmetros dos Pontos" - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:140 -#: AppTools/ToolCopperThieving.py:227 -msgid "Dot diameter in Dots Grid." -msgstr "Diâmetro dos Pontos." - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:151 -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:180 -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:209 -#: AppTools/ToolCopperThieving.py:238 AppTools/ToolCopperThieving.py:278 -#: AppTools/ToolCopperThieving.py:318 -msgid "Spacing" -msgstr "Espaçamento" - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:153 -#: AppTools/ToolCopperThieving.py:240 -msgid "Distance between each two dots in Dots Grid." -msgstr "Distância entre dois pontos." - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:163 -#: AppTools/ToolCopperThieving.py:261 -msgid "Squares Grid Parameters" -msgstr "Parâmetros dos Quadrados" - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:169 -#: AppTools/ToolCopperThieving.py:267 -msgid "Square side size in Squares Grid." -msgstr "Lado do quadrado." - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:182 -#: AppTools/ToolCopperThieving.py:280 -msgid "Distance between each two squares in Squares Grid." -msgstr "Distância entre dois quadrados." - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:192 -#: AppTools/ToolCopperThieving.py:301 -msgid "Lines Grid Parameters" -msgstr "Parâmetros das Linhas" - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:198 -#: AppTools/ToolCopperThieving.py:307 -msgid "Line thickness size in Lines Grid." -msgstr "Espessura das Linhas." - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:211 -#: AppTools/ToolCopperThieving.py:320 -msgid "Distance between each two lines in Lines Grid." -msgstr "Distância entre duas linhas." - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:221 -#: AppTools/ToolCopperThieving.py:358 -msgid "Robber Bar Parameters" -msgstr "Parâmetros da Barra" - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:223 -#: AppTools/ToolCopperThieving.py:360 -msgid "" -"Parameters used for the robber bar.\n" -"Robber bar = copper border to help in pattern hole plating." -msgstr "" -"Parâmetros usados para a barra de assalto.\n" -"Barra = borda de cobre para ajudar no revestimento do furo do padrão." - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:231 -#: AppTools/ToolCopperThieving.py:368 -msgid "Bounding box margin for robber bar." -msgstr "Margem da caixa delimitadora para Robber Bar." - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:242 -#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:42 -#: AppTools/ToolCopperThieving.py:379 AppTools/ToolCorners.py:122 -#: AppTools/ToolEtchCompensation.py:152 -msgid "Thickness" -msgstr "Espessura" - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:244 -#: AppTools/ToolCopperThieving.py:381 -msgid "The robber bar thickness." -msgstr "Espessura da barra." - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:254 -#: AppTools/ToolCopperThieving.py:412 -msgid "Pattern Plating Mask" -msgstr "Máscara do Revestimento Padrão" - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:256 -#: AppTools/ToolCopperThieving.py:414 -msgid "Generate a mask for pattern plating." -msgstr "Gera uma máscara para o revestimento padrão." - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:263 -#: AppTools/ToolCopperThieving.py:437 -msgid "" -"The distance between the possible copper thieving elements\n" -"and/or robber bar and the actual openings in the mask." -msgstr "" -"Distância entre os possíveis elementos de adição de cobre\n" -"e/ou barra e as aberturas reais na máscara." - -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:27 -msgid "Calibration Tool Options" -msgstr "Opções da Ferramenta de Calibração" - -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:38 -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:38 -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:38 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:38 -#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:37 -#: AppTools/ToolCopperThieving.py:95 AppTools/ToolCorners.py:117 -#: AppTools/ToolFiducials.py:154 -msgid "Parameters used for this tool." -msgstr "Parâmetros usados para esta ferramenta." - -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:43 -#: AppTools/ToolCalibration.py:181 -msgid "Source Type" -msgstr "Tipo de Fonte" - -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:44 -#: AppTools/ToolCalibration.py:182 -msgid "" -"The source of calibration points.\n" -"It can be:\n" -"- Object -> click a hole geo for Excellon or a pad for Gerber\n" -"- Free -> click freely on canvas to acquire the calibration points" -msgstr "" -"A fonte dos pontos de calibração.\n" -"Pode ser:\n" -"- Objeto -> clique em uma área geográfica do furo para o Excellon ou em um " -"pad para o Gerber\n" -"- Livre -> clique livremente na tela para adquirir os pontos de calibração" - -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:49 -#: AppTools/ToolCalibration.py:187 -msgid "Free" -msgstr "Livre" - -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:63 -#: AppTools/ToolCalibration.py:76 -msgid "Height (Z) for travelling between the points." -msgstr "Altura (Z) para deslocamento entre os pontos." - -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:75 -#: AppTools/ToolCalibration.py:88 -msgid "Verification Z" -msgstr "Verificação Z" - -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:77 -#: AppTools/ToolCalibration.py:90 -msgid "Height (Z) for checking the point." -msgstr "Altura (Z) para verificar o ponto." - -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:89 -#: AppTools/ToolCalibration.py:102 -msgid "Zero Z tool" -msgstr "Ferramenta Zero Z" - -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:91 -#: AppTools/ToolCalibration.py:104 -msgid "" -"Include a sequence to zero the height (Z)\n" -"of the verification tool." -msgstr "" -"Inclui uma sequência para zerar a altura (Z)\n" -"da ferramenta de verificação." - -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:100 -#: AppTools/ToolCalibration.py:113 -msgid "Height (Z) for mounting the verification probe." -msgstr "Altura (Z) para montar a sonda de verificação." - -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:114 -#: AppTools/ToolCalibration.py:127 -msgid "" -"Toolchange X,Y position.\n" -"If no value is entered then the current\n" -"(x, y) point will be used," -msgstr "" -"Troca de ferramentas nas posições X, Y.\n" -"Se nenhum valor for inserido, o valor atual\n" -"ponto (x, y) será usado," - -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:125 -#: AppTools/ToolCalibration.py:153 -msgid "Second point" -msgstr "Segundo Ponto" - -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:127 -#: AppTools/ToolCalibration.py:155 -msgid "" -"Second point in the Gcode verification can be:\n" -"- top-left -> the user will align the PCB vertically\n" -"- bottom-right -> the user will align the PCB horizontally" -msgstr "" -"O segundo ponto na verificação do G-Code pode ser:\n" -"- canto superior esquerdo -> o usuário alinhará o PCB verticalmente\n" -"- canto inferior direito -> o usuário alinhará o PCB horizontalmente" - -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:131 -#: AppTools/ToolCalibration.py:159 App_Main.py:4712 -msgid "Top-Left" -msgstr "Esquerda Superior" - -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:132 -#: AppTools/ToolCalibration.py:160 App_Main.py:4713 -msgid "Bottom-Right" -msgstr "Direita Inferior" - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:27 -msgid "Extract Drills Options" -msgstr "Opções de Extração de Furos" - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:42 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:42 -#: AppTools/ToolExtractDrills.py:68 AppTools/ToolPunchGerber.py:75 -msgid "Processed Pads Type" -msgstr "Tipo de Pads Processados" - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:44 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:44 -#: AppTools/ToolExtractDrills.py:70 AppTools/ToolPunchGerber.py:77 -msgid "" -"The type of pads shape to be processed.\n" -"If the PCB has many SMD pads with rectangular pads,\n" -"disable the Rectangular aperture." -msgstr "" -"O tipo de formato dos pads a serem processadas.\n" -"Se o PCB tiver muitos blocos SMD com pads retangulares,\n" -"desative a abertura retangular." - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:54 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:54 -#: AppTools/ToolExtractDrills.py:80 AppTools/ToolPunchGerber.py:91 -msgid "Process Circular Pads." -msgstr "Pads Circulares" - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:60 -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:162 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:60 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:164 -#: AppTools/ToolExtractDrills.py:86 AppTools/ToolExtractDrills.py:214 -#: AppTools/ToolPunchGerber.py:97 AppTools/ToolPunchGerber.py:242 -msgid "Oblong" -msgstr "Oblongo" - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:62 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:62 -#: AppTools/ToolExtractDrills.py:88 AppTools/ToolPunchGerber.py:99 -msgid "Process Oblong Pads." -msgstr "Pads Oblongos." - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:70 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:70 -#: AppTools/ToolExtractDrills.py:96 AppTools/ToolPunchGerber.py:107 -msgid "Process Square Pads." -msgstr "Pads Quadrados." - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:78 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:78 -#: AppTools/ToolExtractDrills.py:104 AppTools/ToolPunchGerber.py:115 -msgid "Process Rectangular Pads." -msgstr "Pads Retangulares" - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:84 -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:201 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:84 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:203 -#: AppTools/ToolExtractDrills.py:110 AppTools/ToolExtractDrills.py:253 -#: AppTools/ToolProperties.py:172 AppTools/ToolPunchGerber.py:121 -#: AppTools/ToolPunchGerber.py:281 -msgid "Others" -msgstr "Outros" - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:86 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:86 -#: AppTools/ToolExtractDrills.py:112 AppTools/ToolPunchGerber.py:123 -msgid "Process pads not in the categories above." -msgstr "Processa pads fora das categorias acima." - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:99 -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:123 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:100 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:125 -#: AppTools/ToolExtractDrills.py:139 AppTools/ToolExtractDrills.py:156 -#: AppTools/ToolPunchGerber.py:150 AppTools/ToolPunchGerber.py:184 -msgid "Fixed Diameter" -msgstr "Diâmetro Fixo" - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:100 -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:140 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:101 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:142 -#: AppTools/ToolExtractDrills.py:140 AppTools/ToolExtractDrills.py:192 -#: AppTools/ToolPunchGerber.py:151 AppTools/ToolPunchGerber.py:214 -msgid "Fixed Annular Ring" -msgstr "Anel Anular Fixo" - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:101 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:102 -#: AppTools/ToolExtractDrills.py:141 AppTools/ToolPunchGerber.py:152 -msgid "Proportional" -msgstr "Proporcional" - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:107 -#: AppTools/ToolExtractDrills.py:130 -msgid "" -"The method for processing pads. Can be:\n" -"- Fixed Diameter -> all holes will have a set size\n" -"- Fixed Annular Ring -> all holes will have a set annular ring\n" -"- Proportional -> each hole size will be a fraction of the pad size" -msgstr "" -"Método para processar pads. Pode ser:\n" -"- Diâmetro fixo -> todos os furos terão um tamanho definido\n" -"- Anel Anular fixo -> todos os furos terão um anel anular definido\n" -"- Proporcional -> cada tamanho de furo será uma fração do tamanho do pad" - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:131 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:133 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:220 -#: AppTools/ToolExtractDrills.py:164 AppTools/ToolExtractDrills.py:285 -#: AppTools/ToolPunchGerber.py:192 AppTools/ToolPunchGerber.py:308 -#: AppTools/ToolTransform.py:357 App_Main.py:9698 -msgid "Value" -msgstr "Valor" - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:133 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:135 -#: AppTools/ToolExtractDrills.py:166 AppTools/ToolPunchGerber.py:194 -msgid "Fixed hole diameter." -msgstr "Diâmetro fixo." - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:142 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:144 -#: AppTools/ToolExtractDrills.py:194 AppTools/ToolPunchGerber.py:216 -msgid "" -"The size of annular ring.\n" -"The copper sliver between the hole exterior\n" -"and the margin of the copper pad." -msgstr "" -"Tamanho do anel anular.\n" -"A tira de cobre entre o exterior do furo\n" -"e a margem do pad de cobre." - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:151 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:153 -#: AppTools/ToolExtractDrills.py:203 AppTools/ToolPunchGerber.py:231 -msgid "The size of annular ring for circular pads." -msgstr "Tamanho do anel anular para pads circulares." - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:164 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:166 -#: AppTools/ToolExtractDrills.py:216 AppTools/ToolPunchGerber.py:244 -msgid "The size of annular ring for oblong pads." -msgstr "Tamanho do anel anular para pads oblongos." - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:177 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:179 -#: AppTools/ToolExtractDrills.py:229 AppTools/ToolPunchGerber.py:257 -msgid "The size of annular ring for square pads." -msgstr "Tamanho do anel anular para pads quadrados." - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:190 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:192 -#: AppTools/ToolExtractDrills.py:242 AppTools/ToolPunchGerber.py:270 -msgid "The size of annular ring for rectangular pads." -msgstr "Tamanho do anel anular para pads retangulares." - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:203 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:205 -#: AppTools/ToolExtractDrills.py:255 AppTools/ToolPunchGerber.py:283 -msgid "The size of annular ring for other pads." -msgstr "Tamanho do anel anular para outros pads." - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:213 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:215 -#: AppTools/ToolExtractDrills.py:276 AppTools/ToolPunchGerber.py:299 -msgid "Proportional Diameter" -msgstr "Diâmetro Proporcional" - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:222 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:224 -msgid "Factor" -msgstr "Fator" - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:224 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:226 -#: AppTools/ToolExtractDrills.py:287 AppTools/ToolPunchGerber.py:310 -msgid "" -"Proportional Diameter.\n" -"The hole diameter will be a fraction of the pad size." -msgstr "" -"Diâmetro Proporcional.\n" -"O diâmetro do furo será uma fração do tamanho do pad." - -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:27 -msgid "Fiducials Tool Options" -msgstr "Opções da Ferramenta de Fiduciais" - -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:45 -#: AppTools/ToolFiducials.py:161 -msgid "" -"This set the fiducial diameter if fiducial type is circular,\n" -"otherwise is the size of the fiducial.\n" -"The soldermask opening is double than that." -msgstr "" -"Define o diâmetro fiducial se o tipo fiducial for circular,\n" -"caso contrário, é o tamanho do fiducial.\n" -"A abertura da máscara de solda é o dobro disso." - -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:73 -#: AppTools/ToolFiducials.py:189 -msgid "Auto" -msgstr "Auto" - -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:74 -#: AppTools/ToolFiducials.py:190 -msgid "Manual" -msgstr "Manual" - -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:76 -#: AppTools/ToolFiducials.py:192 -msgid "Mode:" -msgstr "Modo:" - -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:78 -msgid "" -"- 'Auto' - automatic placement of fiducials in the corners of the bounding " -"box.\n" -"- 'Manual' - manual placement of fiducials." -msgstr "" -"- 'Auto' - colocação automática de fiduciais nos cantos da caixa " -"delimitadora.\n" -"- 'Manual' - colocação manual de fiduciais." - -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:86 -#: AppTools/ToolFiducials.py:202 -msgid "Up" -msgstr "Acima" - -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:87 -#: AppTools/ToolFiducials.py:203 -msgid "Down" -msgstr "Abaixo" - -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:90 -#: AppTools/ToolFiducials.py:206 -msgid "Second fiducial" -msgstr "Segundo fiducial" - -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:92 -#: AppTools/ToolFiducials.py:208 -msgid "" -"The position for the second fiducial.\n" -"- 'Up' - the order is: bottom-left, top-left, top-right.\n" -"- 'Down' - the order is: bottom-left, bottom-right, top-right.\n" -"- 'None' - there is no second fiducial. The order is: bottom-left, top-right." -msgstr "" -"Posição do segundo fiducial.\n" -"- 'Acima' - a ordem é: canto inferior esquerdo, superior esquerdo, superior " -"direito\n" -"- 'Abaixo' - a ordem é: canto inferior esquerdo, inferior direito, superior " -"direito.\n" -"- 'Nenhum' - não há um segundo fiducial. A ordem é: canto inferior esquerdo, " -"superior direito." - -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:108 -#: AppTools/ToolFiducials.py:224 -msgid "Cross" -msgstr "Cruz" - -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:109 -#: AppTools/ToolFiducials.py:225 -msgid "Chess" -msgstr "Xadrez" - -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:112 -#: AppTools/ToolFiducials.py:227 -msgid "Fiducial Type" -msgstr "Tipo de Fiducial" - -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:114 -#: AppTools/ToolFiducials.py:229 -msgid "" -"The type of fiducial.\n" -"- 'Circular' - this is the regular fiducial.\n" -"- 'Cross' - cross lines fiducial.\n" -"- 'Chess' - chess pattern fiducial." -msgstr "" -"O tipo de fiducial.\n" -"- 'Circular' - este é o fiducial regular.\n" -"- 'Cruz' - linhas cruzadas fiduciais.\n" -"- 'Xadrez' - padrão de xadrez fiducial." - -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:123 -#: AppTools/ToolFiducials.py:238 -msgid "Line thickness" -msgstr "Espessura da linha" - -#: AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py:27 -msgid "Invert Gerber Tool Options" -msgstr "Opções Inverter Gerber" - -#: AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py:33 -msgid "" -"A tool to invert Gerber geometry from positive to negative\n" -"and in revers." -msgstr "" -"Uma ferramenta para converter a geometria Gerber de positiva para negativa\n" -"e vice-versa." - -#: AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py:47 -#: AppTools/ToolInvertGerber.py:93 -msgid "" -"Distance by which to avoid\n" -"the edges of the Gerber object." -msgstr "" -"Distância pela qual evitar \n" -"as bordas do objeto gerber." - -#: AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py:58 -#: AppTools/ToolInvertGerber.py:104 -msgid "Lines Join Style" -msgstr "Estilo de Junção de Linhas" - -#: AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py:60 -#: AppTools/ToolInvertGerber.py:106 -msgid "" -"The way that the lines in the object outline will be joined.\n" -"Can be:\n" -"- rounded -> an arc is added between two joining lines\n" -"- square -> the lines meet in 90 degrees angle\n" -"- bevel -> the lines are joined by a third line" -msgstr "" -"A maneira como as linhas no contorno do objeto serão unidas.\n" -"Pode ser:\n" -"- arredondado -> um arco é adicionado entre duas linhas de junção\n" -"- quadrado -> as linhas se encontram em um ângulo de 90 graus\n" -"- chanfro -> as linhas são unidas por uma terceira linha" - -#: AppGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:27 -msgid "Optimal Tool Options" -msgstr "Opções de Ferramentas Ideais" - -#: AppGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:33 -msgid "" -"A tool to find the minimum distance between\n" -"every two Gerber geometric elements" -msgstr "" -"Uma ferramenta para encontrar a distância mínima entre\n" -"cada dois elementos geométricos Gerber" - -#: AppGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:48 -#: AppTools/ToolOptimal.py:84 -msgid "Precision" -msgstr "Precisão" - -#: AppGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:50 -msgid "Number of decimals for the distances and coordinates in this tool." -msgstr "" -"Número de casas decimais para as distâncias e coordenadas nesta ferramenta." - -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:27 -msgid "Punch Gerber Options" -msgstr "Opções Gerber para Furo" - -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:108 -#: AppTools/ToolPunchGerber.py:141 -msgid "" -"The punch hole source can be:\n" -"- Excellon Object-> the Excellon object drills center will serve as " -"reference.\n" -"- Fixed Diameter -> will try to use the pads center as reference adding " -"fixed diameter holes.\n" -"- Fixed Annular Ring -> will try to keep a set annular ring.\n" -"- Proportional -> will make a Gerber punch hole having the diameter a " -"percentage of the pad diameter." -msgstr "" -"A fonte do furo pode ser:\n" -"- Objeto Excellon-> o centro da broca servirá como referência.\n" -"- Diâmetro fixo -> tentará usar o centro dos pads como referência, " -"adicionando furos de diâmetro fixo.\n" -"- Anel anular fixo -> tentará manter um anel anular definido.\n" -"- Proporcional -> fará um furo Gerber com o diâmetro de uma porcentagem do " -"diâmetro do pad." - -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:27 -msgid "QRCode Tool Options" -msgstr "Opções Ferramenta QRCode" - -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:33 -msgid "" -"A tool to create a QRCode that can be inserted\n" -"into a selected Gerber file, or it can be exported as a file." -msgstr "" -"Uma ferramenta para criar um QRCode que pode ser inserido\n" -"em um arquivo Gerber selecionado ou pode ser exportado como um arquivo." - -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:45 -#: AppTools/ToolQRCode.py:121 -msgid "Version" -msgstr "Versão" - -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:47 -#: AppTools/ToolQRCode.py:123 -msgid "" -"QRCode version can have values from 1 (21x21 boxes)\n" -"to 40 (177x177 boxes)." -msgstr "" -"A versão QRCode pode ter valores de 1 (caixas 21x21)\n" -"a 40 (caixas 177x177)." - -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:58 -#: AppTools/ToolQRCode.py:134 -msgid "Error correction" -msgstr "Correção de erros" - -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:60 -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:71 -#: AppTools/ToolQRCode.py:136 AppTools/ToolQRCode.py:147 -#, python-format -msgid "" -"Parameter that controls the error correction used for the QR Code.\n" -"L = maximum 7%% errors can be corrected\n" -"M = maximum 15%% errors can be corrected\n" -"Q = maximum 25%% errors can be corrected\n" -"H = maximum 30%% errors can be corrected." -msgstr "" -"Parâmetro que controla a correção de erros usada para o QRCode.\n" -"L = máximo de 7%% dos erros pode ser corrigido\n" -"M = máximo de 15%% dos erros pode ser corrigido\n" -"Q = máximo de 25%% dos erros pode ser corrigido\n" -"H = máximo de 30%% dos erros pode ser corrigido." - -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:81 -#: AppTools/ToolQRCode.py:157 -msgid "Box Size" -msgstr "Tamanho da Caixa" - -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:83 -#: AppTools/ToolQRCode.py:159 -msgid "" -"Box size control the overall size of the QRcode\n" -"by adjusting the size of each box in the code." -msgstr "" -"O tamanho da caixa controla o tamanho geral do QRCode\n" -"ajustando o tamanho de cada caixa no código." - -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:94 -#: AppTools/ToolQRCode.py:170 -msgid "Border Size" -msgstr "Tamanho da Borda" - -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:96 -#: AppTools/ToolQRCode.py:172 -msgid "" -"Size of the QRCode border. How many boxes thick is the border.\n" -"Default value is 4. The width of the clearance around the QRCode." -msgstr "" -"Tamanho da borda do QRCode. Quantas caixas grossas tem a borda.\n" -"O valor padrão é 4. A largura da folga ao redor do QRCode." - -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:107 -#: AppTools/ToolQRCode.py:92 -msgid "QRCode Data" -msgstr "Dado QRCode" - -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:109 -#: AppTools/ToolQRCode.py:94 -msgid "QRCode Data. Alphanumeric text to be encoded in the QRCode." -msgstr "Dado QRCode. Texto alfanumérico a ser codificado no QRCode." - -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:113 -#: AppTools/ToolQRCode.py:98 -msgid "Add here the text to be included in the QRCode..." -msgstr "Adicione aqui o texto a ser incluído no QRCode..." - -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:119 -#: AppTools/ToolQRCode.py:183 -msgid "Polarity" -msgstr "Polaridade" - -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:121 -#: AppTools/ToolQRCode.py:185 -msgid "" -"Choose the polarity of the QRCode.\n" -"It can be drawn in a negative way (squares are clear)\n" -"or in a positive way (squares are opaque)." -msgstr "" -"Escolha a polaridade do QRCode.\n" -"Pode ser desenhado de forma negativa (os quadrados são claros)\n" -"ou de maneira positiva (os quadrados são opacos)." - -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:125 -#: AppTools/ToolFilm.py:279 AppTools/ToolQRCode.py:189 -msgid "Negative" -msgstr "Negativo" - -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:126 -#: AppTools/ToolFilm.py:278 AppTools/ToolQRCode.py:190 -msgid "Positive" -msgstr "Positivo" - -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:128 -#: AppTools/ToolQRCode.py:192 -msgid "" -"Choose the type of QRCode to be created.\n" -"If added on a Silkscreen Gerber file the QRCode may\n" -"be added as positive. If it is added to a Copper Gerber\n" -"file then perhaps the QRCode can be added as negative." -msgstr "" -"Escolha o tipo de QRCode a ser criado.\n" -"Se adicionado a um arquivo Silkscreen Gerber, o QRCode poderá\n" -"ser adicionado como positivo. Se for adicionado a um arquivo Gerber\n" -"de cobre, talvez o QRCode possa ser adicionado como negativo." - -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:139 -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:145 -#: AppTools/ToolQRCode.py:203 AppTools/ToolQRCode.py:209 -msgid "" -"The bounding box, meaning the empty space that surrounds\n" -"the QRCode geometry, can have a rounded or a square shape." -msgstr "" -"A caixa delimitadora, significando o espaço vazio que circunda\n" -"a geometria QRCode, pode ter uma forma arredondada ou quadrada." - -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:142 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:239 -#: AppTools/ToolQRCode.py:206 AppTools/ToolTransform.py:383 -msgid "Rounded" -msgstr "Arredondado" - -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:152 -#: AppTools/ToolQRCode.py:237 -msgid "Fill Color" -msgstr "Cor de Preenchimento" - -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:154 -#: AppTools/ToolQRCode.py:239 -msgid "Set the QRCode fill color (squares color)." -msgstr "Define a cor de preenchimento do QRCode (cor dos quadrados)." - -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:162 -#: AppTools/ToolQRCode.py:261 -msgid "Back Color" -msgstr "Cor de Fundo" - -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:164 -#: AppTools/ToolQRCode.py:263 -msgid "Set the QRCode background color." -msgstr "Define a cor de fundo do QRCode." - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:27 -msgid "Check Rules Tool Options" -msgstr "Opções das Regras" - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:32 -msgid "" -"A tool to check if Gerber files are within a set\n" -"of Manufacturing Rules." -msgstr "" -"Uma ferramenta para verificar se os arquivos Gerber estão dentro de um " -"conjunto\n" -"das regras de fabricação." - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:42 -#: AppTools/ToolRulesCheck.py:265 AppTools/ToolRulesCheck.py:929 -msgid "Trace Size" -msgstr "Tamanho do Traçado" - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:44 -#: AppTools/ToolRulesCheck.py:267 -msgid "This checks if the minimum size for traces is met." -msgstr "Verifica se o tamanho mínimo para traçados é atendido." - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:54 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:74 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:94 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:114 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:134 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:154 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:174 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:194 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:216 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:236 -#: AppTools/ToolRulesCheck.py:277 AppTools/ToolRulesCheck.py:299 -#: AppTools/ToolRulesCheck.py:322 AppTools/ToolRulesCheck.py:345 -#: AppTools/ToolRulesCheck.py:368 AppTools/ToolRulesCheck.py:391 -#: AppTools/ToolRulesCheck.py:414 AppTools/ToolRulesCheck.py:437 -#: AppTools/ToolRulesCheck.py:462 AppTools/ToolRulesCheck.py:485 -msgid "Min value" -msgstr "Valor Min" - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:56 -#: AppTools/ToolRulesCheck.py:279 -msgid "Minimum acceptable trace size." -msgstr "Mínimo tamanho de traçado aceito." - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:61 -#: AppTools/ToolRulesCheck.py:286 AppTools/ToolRulesCheck.py:1157 -#: AppTools/ToolRulesCheck.py:1187 -msgid "Copper to Copper clearance" -msgstr "Espaço Cobre Cobre" - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:63 -#: AppTools/ToolRulesCheck.py:288 -msgid "" -"This checks if the minimum clearance between copper\n" -"features is met." -msgstr "" -"Verifica se o espaço mínimo entre recursos de cobre\n" -"é atendido." - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:76 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:96 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:116 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:136 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:156 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:176 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:238 -#: AppTools/ToolRulesCheck.py:301 AppTools/ToolRulesCheck.py:324 -#: AppTools/ToolRulesCheck.py:347 AppTools/ToolRulesCheck.py:370 -#: AppTools/ToolRulesCheck.py:393 AppTools/ToolRulesCheck.py:416 -#: AppTools/ToolRulesCheck.py:464 -msgid "Minimum acceptable clearance value." -msgstr "Espaço mínimo aceitável." - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:81 -#: AppTools/ToolRulesCheck.py:309 AppTools/ToolRulesCheck.py:1217 -#: AppTools/ToolRulesCheck.py:1223 AppTools/ToolRulesCheck.py:1236 -#: AppTools/ToolRulesCheck.py:1243 -msgid "Copper to Outline clearance" -msgstr "Espaço Cobre Contorno" - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:83 -#: AppTools/ToolRulesCheck.py:311 -msgid "" -"This checks if the minimum clearance between copper\n" -"features and the outline is met." -msgstr "" -"Verifica se o espaço mínimo entre recursos de cobre\n" -"e o contorno é atendido." - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:101 -#: AppTools/ToolRulesCheck.py:332 -msgid "Silk to Silk Clearance" -msgstr "Espaço Silk Silk" - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:103 -#: AppTools/ToolRulesCheck.py:334 -msgid "" -"This checks if the minimum clearance between silkscreen\n" -"features and silkscreen features is met." -msgstr "" -"Verifica se o espaço mínimo entre recursos de silkscreen\n" -"é atendido." - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:121 -#: AppTools/ToolRulesCheck.py:355 AppTools/ToolRulesCheck.py:1326 -#: AppTools/ToolRulesCheck.py:1332 AppTools/ToolRulesCheck.py:1350 -msgid "Silk to Solder Mask Clearance" -msgstr "Espaço Silk Máscara de Solda" - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:123 -#: AppTools/ToolRulesCheck.py:357 -msgid "" -"This checks if the minimum clearance between silkscreen\n" -"features and soldermask features is met." -msgstr "" -"Verifica se o espaço mínimo entre recursos de silkscreen\n" -"e máscara de solda é atendido." - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:141 -#: AppTools/ToolRulesCheck.py:378 AppTools/ToolRulesCheck.py:1380 -#: AppTools/ToolRulesCheck.py:1386 AppTools/ToolRulesCheck.py:1400 -#: AppTools/ToolRulesCheck.py:1407 -msgid "Silk to Outline Clearance" -msgstr "Espaço Silk Contorno" - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:143 -#: AppTools/ToolRulesCheck.py:380 -msgid "" -"This checks if the minimum clearance between silk\n" -"features and the outline is met." -msgstr "" -"Verifica se o espaço mínimo entre recursos de silkscreen\n" -"e o contorno é atendido." - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:161 -#: AppTools/ToolRulesCheck.py:401 AppTools/ToolRulesCheck.py:1418 -#: AppTools/ToolRulesCheck.py:1445 -msgid "Minimum Solder Mask Sliver" -msgstr "Máscara de Solda Mínima" - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:163 -#: AppTools/ToolRulesCheck.py:403 -msgid "" -"This checks if the minimum clearance between soldermask\n" -"features and soldermask features is met." -msgstr "" -"Verifica se o espaço mínimo entre recursos de máscara de solda\n" -"é atendido." - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:181 -#: AppTools/ToolRulesCheck.py:424 AppTools/ToolRulesCheck.py:1483 -#: AppTools/ToolRulesCheck.py:1489 AppTools/ToolRulesCheck.py:1505 -#: AppTools/ToolRulesCheck.py:1512 -msgid "Minimum Annular Ring" -msgstr "Anel Anular Mínimo" - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:183 -#: AppTools/ToolRulesCheck.py:426 -msgid "" -"This checks if the minimum copper ring left by drilling\n" -"a hole into a pad is met." -msgstr "" -"Verifica se o anel de cobre mínimo deixado pela perfuração\n" -"de um buraco em um pad é atendido." - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:196 -#: AppTools/ToolRulesCheck.py:439 -msgid "Minimum acceptable ring value." -msgstr "Valor mínimo do anel." - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:203 -#: AppTools/ToolRulesCheck.py:449 AppTools/ToolRulesCheck.py:873 -msgid "Hole to Hole Clearance" -msgstr "Espaço Entre Furos" - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:205 -#: AppTools/ToolRulesCheck.py:451 -msgid "" -"This checks if the minimum clearance between a drill hole\n" -"and another drill hole is met." -msgstr "" -"Verifica se o espaço mínimo entre furos\n" -"é atendido." - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:218 -#: AppTools/ToolRulesCheck.py:487 -msgid "Minimum acceptable drill size." -msgstr "Espaço mínimo entre furos." - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:223 -#: AppTools/ToolRulesCheck.py:472 AppTools/ToolRulesCheck.py:847 -msgid "Hole Size" -msgstr "Tamanho Furo" - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:225 -#: AppTools/ToolRulesCheck.py:474 -msgid "" -"This checks if the drill holes\n" -"sizes are above the threshold." -msgstr "" -"Verifica se os tamanhos dos furos\n" -"estão acima do limite." - -#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:27 -msgid "2Sided Tool Options" -msgstr "Opções de PCB 2 Faces" - -#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:33 -msgid "" -"A tool to help in creating a double sided\n" -"PCB using alignment holes." -msgstr "" -"Uma ferramenta para ajudar na criação de um\n" -"PCB de dupla face usando furos de alinhamento." - -#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:47 -msgid "Drill dia" -msgstr "Diâmetro" - -#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:49 -#: AppTools/ToolDblSided.py:363 AppTools/ToolDblSided.py:368 -msgid "Diameter of the drill for the alignment holes." -msgstr "Diâmetro da broca para os furos de alinhamento." - -#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:56 -#: AppTools/ToolDblSided.py:377 -msgid "Align Axis" -msgstr "Alinhar Eixo" - -#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:58 -#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:71 -#: AppTools/ToolDblSided.py:165 AppTools/ToolDblSided.py:379 -msgid "Mirror vertically (X) or horizontally (Y)." -msgstr "Espelha verticalmente (X) ou horizontalmente (Y)." - -#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:69 -msgid "Mirror Axis:" -msgstr "Espelhar Eixo:" - -#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:80 -#: AppTools/ToolDblSided.py:181 -msgid "Point" -msgstr "Ponto" - -#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:81 -#: AppTools/ToolDblSided.py:182 -msgid "Box" -msgstr "Caixa" - -#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:82 -msgid "Axis Ref" -msgstr "Eixo de Ref" - -#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:84 -msgid "" -"The axis should pass through a point or cut\n" -" a specified box (in a FlatCAM object) through \n" -"the center." -msgstr "" -"O eixo deve passar por um ponto ou cortar o centro de uma caixa especificada (em um objeto FlatCAM)." - -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:27 -msgid "Calculators Tool Options" -msgstr "Opções das Calculadoras" - -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:31 -#: AppTools/ToolCalculators.py:25 -msgid "V-Shape Tool Calculator" -msgstr "Calculadora Ferramenta Ponta-em-V" - -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:33 -msgid "" -"Calculate the tool diameter for a given V-shape tool,\n" -"having the tip diameter, tip angle and\n" -"depth-of-cut as parameters." -msgstr "" -"Calcula o diâmetro equvalente da ferramenta para uma determinada\n" -"ferramenta em forma de V, com o diâmetro da ponta, o ângulo da ponta e a\n" -"profundidade de corte como parâmetros." - -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:50 -#: AppTools/ToolCalculators.py:94 -msgid "Tip Diameter" -msgstr "Diâmetro da Ponta" - -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:52 -#: AppTools/ToolCalculators.py:102 -msgid "" -"This is the tool tip diameter.\n" -"It is specified by manufacturer." -msgstr "" -"Diâmetro da ponta da ferramenta.\n" -"Especificado pelo fabricante." - -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:64 -#: AppTools/ToolCalculators.py:105 -msgid "Tip Angle" -msgstr "Ângulo da Ponta" - -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:66 -msgid "" -"This is the angle on the tip of the tool.\n" -"It is specified by manufacturer." -msgstr "" -"Ângulo na ponta da ferramenta.\n" -"Especificado pelo fabricante." - -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:80 -msgid "" -"This is depth to cut into material.\n" -"In the CNCJob object it is the CutZ parameter." -msgstr "" -"Profundidade para cortar o material.\n" -"No objeto CNC, é o parâmetro Profundidade de Corte (z_cut)." - -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:87 -#: AppTools/ToolCalculators.py:27 -msgid "ElectroPlating Calculator" -msgstr "Calculadora Eletrolítica" - -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:89 -#: AppTools/ToolCalculators.py:158 -msgid "" -"This calculator is useful for those who plate the via/pad/drill holes,\n" -"using a method like graphite ink or calcium hypophosphite ink or palladium " -"chloride." -msgstr "" -"Esta calculadora é útil para aqueles que fazem os furos\n" -"(via/pad/furos) usando um método como tinta graphite ou tinta \n" -"hipofosfito de cálcio ou cloreto de paládio." - -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:100 -#: AppTools/ToolCalculators.py:167 -msgid "Board Length" -msgstr "Comprimento da Placa" - -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:102 -#: AppTools/ToolCalculators.py:173 -msgid "This is the board length. In centimeters." -msgstr "Comprimento da placa, em centímetros." - -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:112 -#: AppTools/ToolCalculators.py:175 -msgid "Board Width" -msgstr "Largura da Placa" - -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:114 -#: AppTools/ToolCalculators.py:181 -msgid "This is the board width.In centimeters." -msgstr "Largura da placa, em centímetros." - -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:119 -#: AppTools/ToolCalculators.py:183 -msgid "Current Density" -msgstr "Densidade de Corrente" - -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:125 -#: AppTools/ToolCalculators.py:190 -msgid "" -"Current density to pass through the board. \n" -"In Amps per Square Feet ASF." -msgstr "" -"Densidade de corrente para passar pela placa.\n" -"Em Ampères por Pés Quadrados ASF." - -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:131 -#: AppTools/ToolCalculators.py:193 -msgid "Copper Growth" -msgstr "Espessura do Cobre" - -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:137 -#: AppTools/ToolCalculators.py:200 -msgid "" -"How thick the copper growth is intended to be.\n" -"In microns." -msgstr "Espessura da camada de cobre, em microns." - -#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:27 -#, fuzzy -#| msgid "Gerber Options" -msgid "Corner Markers Options" -msgstr "Opções Gerber" - -#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:44 -#: AppTools/ToolCorners.py:124 -msgid "The thickness of the line that makes the corner marker." -msgstr "" - -#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:58 -#: AppTools/ToolCorners.py:138 -msgid "The length of the line that makes the corner marker." -msgstr "" - -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:28 -msgid "Cutout Tool Options" -msgstr "Opções da Ferramenta de Recorte" - -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:34 -msgid "" -"Create toolpaths to cut around\n" -"the PCB and separate it from\n" -"the original board." -msgstr "" -"Cria caminhos da ferramenta para cortar\n" -"o PCB e separá-lo da placa original." - -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:43 -#: AppTools/ToolCalculators.py:123 AppTools/ToolCutOut.py:129 -msgid "Tool Diameter" -msgstr "Diâmetro" - -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:45 -#: AppTools/ToolCutOut.py:131 -msgid "" -"Diameter of the tool used to cutout\n" -"the PCB shape out of the surrounding material." -msgstr "Diâmetro da ferramenta usada para cortar o entorno do PCB." - -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:100 -msgid "Object kind" -msgstr "Tipo de objeto" - -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:102 -#: AppTools/ToolCutOut.py:77 -msgid "" -"Choice of what kind the object we want to cutout is.
    - Single: " -"contain a single PCB Gerber outline object.
    - Panel: a panel PCB " -"Gerber object, which is made\n" -"out of many individual PCB outlines." -msgstr "" -"Escolha o tipo do objeto a recortar.
    - Único: contém um único " -"objeto Gerber de contorno PCB.
    - Painel: um painel de objetos " -"Gerber PCB, composto por muitos contornos PCB individuais." - -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:109 -#: AppTools/ToolCutOut.py:83 -msgid "Single" -msgstr "Único" - -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:110 -#: AppTools/ToolCutOut.py:84 -msgid "Panel" -msgstr "Painel" - -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:117 -#: AppTools/ToolCutOut.py:192 -msgid "" -"Margin over bounds. A positive value here\n" -"will make the cutout of the PCB further from\n" -"the actual PCB border" -msgstr "" -"Margem além das bordas. Um valor positivo\n" -"tornará o recorte do PCB mais longe da borda da PCB" - -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:130 -#: AppTools/ToolCutOut.py:203 -msgid "Gap size" -msgstr "Tamanho da Ponte" - -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:132 -#: AppTools/ToolCutOut.py:205 -msgid "" -"The size of the bridge gaps in the cutout\n" -"used to keep the board connected to\n" -"the surrounding material (the one \n" -"from which the PCB is cutout)." -msgstr "" -"Tamanho das pontes no recorte, utilizadas\n" -"para manter a placa conectada ao material\n" -"circundante (de onde o PCB é recortado)." - -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:146 -#: AppTools/ToolCutOut.py:245 -msgid "Gaps" -msgstr "Pontes" - -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:148 -msgid "" -"Number of gaps used for the cutout.\n" -"There can be maximum 8 bridges/gaps.\n" -"The choices are:\n" -"- None - no gaps\n" -"- lr - left + right\n" -"- tb - top + bottom\n" -"- 4 - left + right +top + bottom\n" -"- 2lr - 2*left + 2*right\n" -"- 2tb - 2*top + 2*bottom\n" -"- 8 - 2*left + 2*right +2*top + 2*bottom" -msgstr "" -"Número de pontes utilizadas para o recorte.\n" -"Pode haver um máximo de 8 pontes/lacunas.\n" -"As opções são:\n" -"- Nenhum - sem pontes\n" -"- LR: esquerda + direita\n" -"- TB: topo + baixo\n" -"- 4: esquerda + direita + topo + baixo\n" -"- 2LR: 2*esquerda + 2*direita\n" -"- 2TB: 2*topo + 2*baixo\n" -"- 8: 2*esquerda + 2*direita + 2*topo + 2*baixo" - -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:170 -#: AppTools/ToolCutOut.py:222 -msgid "Convex Shape" -msgstr "Forma Convexa" - -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:172 -#: AppTools/ToolCutOut.py:225 -msgid "" -"Create a convex shape surrounding the entire PCB.\n" -"Used only if the source object type is Gerber." -msgstr "" -"Cria uma forma convexa ao redor de toda a PCB.\n" -"Utilize somente se o tipo de objeto de origem for Gerber." - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:27 -msgid "Film Tool Options" -msgstr "Opções da Ferramenta de Filme" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:33 -#, fuzzy -#| msgid "" -#| "Create a PCB film from a Gerber or Geometry\n" -#| "FlatCAM object.\n" -#| "The file is saved in SVG format." -msgid "" -"Create a PCB film from a Gerber or Geometry object.\n" -"The file is saved in SVG format." -msgstr "" -"Cria um filme de PCB a partir de um objeto Gerber\n" -"ou Geometria FlatCAM.\n" -"O arquivo é salvo no formato SVG." - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:43 -msgid "Film Type" -msgstr "Tipo de Filme" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:45 AppTools/ToolFilm.py:283 -msgid "" -"Generate a Positive black film or a Negative film.\n" -"Positive means that it will print the features\n" -"with black on a white canvas.\n" -"Negative means that it will print the features\n" -"with white on a black canvas.\n" -"The Film format is SVG." -msgstr "" -"Gera um filme Positivo ou Negativo.\n" -"Positivo significa que os recursos são impressos\n" -"em preto em uma tela branca.\n" -"Negativo significa que os recursos são impressos\n" -"em branco em uma tela preta.\n" -"O formato do arquivo do filme é SVG ." - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:56 -msgid "Film Color" -msgstr "Cor do Filme" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:58 -msgid "Set the film color when positive film is selected." -msgstr "Define a cor do filme, se filme positivo estiver selecionado." - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:71 AppTools/ToolFilm.py:299 -msgid "Border" -msgstr "Borda" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:73 AppTools/ToolFilm.py:301 -msgid "" -"Specify a border around the object.\n" -"Only for negative film.\n" -"It helps if we use as a Box Object the same \n" -"object as in Film Object. It will create a thick\n" -"black bar around the actual print allowing for a\n" -"better delimitation of the outline features which are of\n" -"white color like the rest and which may confound with the\n" -"surroundings if not for this border." -msgstr "" -"Especifica uma borda ao redor do objeto.\n" -"Somente para filme negativo.\n" -"Ajuda se for usado como Objeto Caixa o mesmo\n" -"objeto do Filme. Será criada uma barra preta\n" -"ao redor da impressão, permitindo uma melhor\n" -"delimitação dos contornos dos recursos (que são\n" -"brancos como o restante e podem ser confundidos\n" -"com os limites, se não for usada essa borda)." - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:90 AppTools/ToolFilm.py:266 -msgid "Scale Stroke" -msgstr "Espessura da Linha" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:92 AppTools/ToolFilm.py:268 -msgid "" -"Scale the line stroke thickness of each feature in the SVG file.\n" -"It means that the line that envelope each SVG feature will be thicker or " -"thinner,\n" -"therefore the fine features may be more affected by this parameter." -msgstr "" -"Espessura da linha de cada recurso no arquivo SVG.\n" -"A linha que envolve cada recurso SVG será mais espessa ou mais fina.\n" -"Os recursos mais finos podem ser afetados por esse parâmetro." - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:99 AppTools/ToolFilm.py:124 -msgid "Film Adjustments" -msgstr "Ajustes do Filme" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:101 -#: AppTools/ToolFilm.py:126 -msgid "" -"Sometime the printers will distort the print shape, especially the Laser " -"types.\n" -"This section provide the tools to compensate for the print distortions." -msgstr "" -"Algumas vezes, as impressoras distorcem o formato da impressão, " -"especialmente as laser.\n" -"Esta seção fornece as ferramentas para compensar as distorções na impressão." - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:108 -#: AppTools/ToolFilm.py:133 -msgid "Scale Film geometry" -msgstr "Escala da Geometria de Filme" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:110 -#: AppTools/ToolFilm.py:135 -msgid "" -"A value greater than 1 will stretch the film\n" -"while a value less than 1 will jolt it." -msgstr "" -"Um valor maior que 1 esticará o filme\n" -"enquanto um valor menor que 1 o reduzirá." - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:120 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:103 -#: AppTools/ToolFilm.py:145 AppTools/ToolTransform.py:148 -msgid "X factor" -msgstr "Fator X" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:129 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:116 -#: AppTools/ToolFilm.py:154 AppTools/ToolTransform.py:168 -msgid "Y factor" -msgstr "Fator Y" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:139 -#: AppTools/ToolFilm.py:172 -msgid "Skew Film geometry" -msgstr "Inclinar a Geometria de Filme" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:141 -#: AppTools/ToolFilm.py:174 -msgid "" -"Positive values will skew to the right\n" -"while negative values will skew to the left." -msgstr "" -"Valores positivos inclinam para a direita\n" -"enquanto valores negativos inclinam para a esquerda." - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:151 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:72 -#: AppTools/ToolFilm.py:184 AppTools/ToolTransform.py:97 -msgid "X angle" -msgstr "Ângulo X" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:160 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:86 -#: AppTools/ToolFilm.py:193 AppTools/ToolTransform.py:118 -msgid "Y angle" -msgstr "Ângulo Y" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:171 -#: AppTools/ToolFilm.py:204 -msgid "" -"The reference point to be used as origin for the skew.\n" -"It can be one of the four points of the geometry bounding box." -msgstr "" -"O ponto de referência a ser usado como origem para a inclinação.\n" -"Pode ser um dos quatro pontos da caixa delimitadora de geometria." - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:174 -#: AppTools/ToolCorners.py:80 AppTools/ToolFiducials.py:83 -#: AppTools/ToolFilm.py:207 -msgid "Bottom Left" -msgstr "Esquerda Inferior" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:175 -#: AppTools/ToolCorners.py:88 AppTools/ToolFilm.py:208 -msgid "Top Left" -msgstr "Esquerda Superior" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:176 -#: AppTools/ToolCorners.py:84 AppTools/ToolFilm.py:209 -msgid "Bottom Right" -msgstr "Direita Inferior" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:177 -#: AppTools/ToolFilm.py:210 -msgid "Top right" -msgstr "Direita Superior" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:185 -#: AppTools/ToolFilm.py:227 -msgid "Mirror Film geometry" -msgstr "Espelhar geometria de filme" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:187 -#: AppTools/ToolFilm.py:229 -msgid "Mirror the film geometry on the selected axis or on both." -msgstr "Espelha a geometria do filme no eixo selecionado ou em ambos." - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:201 -#: AppTools/ToolFilm.py:243 -msgid "Mirror axis" -msgstr "Espelhar eixo" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:211 -#: AppTools/ToolFilm.py:388 -msgid "SVG" -msgstr "SVG" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:212 -#: AppTools/ToolFilm.py:389 -msgid "PNG" -msgstr "PNG" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:213 -#: AppTools/ToolFilm.py:390 -msgid "PDF" -msgstr "PDF" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:216 -#: AppTools/ToolFilm.py:281 AppTools/ToolFilm.py:393 -msgid "Film Type:" -msgstr "Tipo de Filme:" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:218 -#: AppTools/ToolFilm.py:395 -msgid "" -"The file type of the saved film. Can be:\n" -"- 'SVG' -> open-source vectorial format\n" -"- 'PNG' -> raster image\n" -"- 'PDF' -> portable document format" -msgstr "" -"O tipo de arquivo do filme salvo. Pode ser:\n" -"- 'SVG' -> formato vetorial de código aberto\n" -"- 'PNG' -> imagem raster\n" -"- 'PDF' -> formato de documento portátil" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:227 -#: AppTools/ToolFilm.py:404 -msgid "Page Orientation" -msgstr "Orientação da Página" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:240 -#: AppTools/ToolFilm.py:417 -msgid "Page Size" -msgstr "Tamanho da Página" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:241 -#: AppTools/ToolFilm.py:418 -msgid "A selection of standard ISO 216 page sizes." -msgstr "Uma seleção de tamanhos de página padrão ISO 216." - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:26 -#, fuzzy -#| msgid "Calibration Tool Options" -msgid "Isolation Tool Options" -msgstr "Opções da Ferramenta de Calibração" - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:48 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:49 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:57 -msgid "Comma separated values" -msgstr "Valores Separados Por Virgula" - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:54 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:156 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:142 -#: AppTools/ToolIsolation.py:166 AppTools/ToolNCC.py:174 -#: AppTools/ToolPaint.py:157 -msgid "Tool order" -msgstr "Ordem das Ferramentas" - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:55 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:157 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:167 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:143 -#: AppTools/ToolIsolation.py:167 AppTools/ToolNCC.py:175 -#: AppTools/ToolNCC.py:185 AppTools/ToolPaint.py:158 AppTools/ToolPaint.py:168 -msgid "" -"This set the way that the tools in the tools table are used.\n" -"'No' --> means that the used order is the one in the tool table\n" -"'Forward' --> means that the tools will be ordered from small to big\n" -"'Reverse' --> means that the tools will ordered from big to small\n" -"\n" -"WARNING: using rest machining will automatically set the order\n" -"in reverse and disable this control." -msgstr "" -"Define a ordem em que as ferramentas da Tabela de Ferramentas são usadas.\n" -"'Não' -> utiliza a ordem da tabela de ferramentas\n" -"'Crescente' -> as ferramentas são ordenadas de menor para maior\n" -"'Decrescente' -> as ferramentas são ordenadas de maior para menor\n" -"\n" -"ATENÇÃO: se for utilizada usinagem de descanso, será utilizada " -"automaticamente a ordem\n" -"decrescente e este controle é desativado." - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:63 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:165 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:151 -#: AppTools/ToolIsolation.py:175 AppTools/ToolNCC.py:183 -#: AppTools/ToolPaint.py:166 -msgid "Forward" -msgstr "Crescente" - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:64 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:166 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:152 -#: AppTools/ToolIsolation.py:176 AppTools/ToolNCC.py:184 -#: AppTools/ToolPaint.py:167 -msgid "Reverse" -msgstr "Decrescente" - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:72 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:80 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:55 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:63 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:64 -#: AppTools/ToolIsolation.py:201 AppTools/ToolIsolation.py:209 -#: AppTools/ToolNCC.py:215 AppTools/ToolNCC.py:223 AppTools/ToolPaint.py:197 -#: AppTools/ToolPaint.py:205 -msgid "" -"Default tool type:\n" -"- 'V-shape'\n" -"- Circular" -msgstr "" -"Tipo padrão das ferramentas:\n" -"- 'Ponta-V'\n" -"- Circular" - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:77 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:60 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:69 -#: AppTools/ToolIsolation.py:206 AppTools/ToolNCC.py:220 -#: AppTools/ToolPaint.py:202 -msgid "V-shape" -msgstr "Ponta-V" - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:103 -#, fuzzy -#| msgid "" -#| "The tip angle for V-Shape Tool.\n" -#| "In degree." -msgid "" -"The tip angle for V-Shape Tool.\n" -"In degrees." -msgstr "O ângulo da ponta da ferramenta em forma de V, em graus." - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:117 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:126 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:100 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:109 -#: AppTools/ToolIsolation.py:248 AppTools/ToolNCC.py:262 -#: AppTools/ToolNCC.py:271 AppTools/ToolPaint.py:244 AppTools/ToolPaint.py:253 -msgid "" -"Depth of cut into material. Negative value.\n" -"In FlatCAM units." -msgstr "" -"Profundidade de corte no material. Valor negativo.\n" -"Em unidades FlatCAM." - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:136 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:119 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:125 -#: AppTools/ToolIsolation.py:262 AppTools/ToolNCC.py:280 -#: AppTools/ToolPaint.py:262 -msgid "" -"Diameter for the new tool to add in the Tool Table.\n" -"If the tool is V-shape type then this value is automatically\n" -"calculated from the other parameters." -msgstr "" -"Diâmetro da nova ferramenta a ser adicionada na Tabela de Ferramentas.\n" -"Se a ferramenta for do tipo V, esse valor será automaticamente\n" -"calculado a partir dos outros parâmetros." - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:243 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:288 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:244 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:245 -#: AppTools/ToolIsolation.py:432 AppTools/ToolNCC.py:512 -#: AppTools/ToolPaint.py:441 -#, fuzzy -#| msgid "Restore" -msgid "Rest" -msgstr "Restaurar" - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:246 -#: AppTools/ToolIsolation.py:435 -#, fuzzy -#| msgid "" -#| "If checked, use 'rest machining'.\n" -#| "Basically it will clear copper outside PCB features,\n" -#| "using the biggest tool and continue with the next tools,\n" -#| "from bigger to smaller, to clear areas of copper that\n" -#| "could not be cleared by previous tool, until there is\n" -#| "no more copper to clear or there are no more tools.\n" -#| "If not checked, use the standard algorithm." -msgid "" -"If checked, use 'rest machining'.\n" -"Basically it will isolate outside PCB features,\n" -"using the biggest tool and continue with the next tools,\n" -"from bigger to smaller, to isolate the copper features that\n" -"could not be cleared by previous tool, until there is\n" -"no more copper features to isolate or there are no more tools.\n" -"If not checked, use the standard algorithm." -msgstr "" -"Se marcada, usa 'usinagem de descanso'.\n" -"Basicamente, limpará o cobre fora dos recursos do PCB, utilizando\n" -"a maior ferramenta e continuará com as próximas ferramentas, da\n" -"maior para a menor, para limpar áreas de cobre que não puderam ser\n" -"retiradas com a ferramenta anterior.\n" -"Se não estiver marcada, usa o algoritmo padrão." - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:258 -#: AppTools/ToolIsolation.py:447 -msgid "Combine" -msgstr "Combinar" - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:260 -#: AppTools/ToolIsolation.py:449 -msgid "Combine all passes into one object" -msgstr "Combinar todos os passes em um objeto" - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:267 -#: AppTools/ToolIsolation.py:456 -msgid "Except" -msgstr "Exceto" - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:268 -#: AppTools/ToolIsolation.py:457 -msgid "" -"When the isolation geometry is generated,\n" -"by checking this, the area of the object below\n" -"will be subtracted from the isolation geometry." -msgstr "" -"Quando marcado, na geração da geometria de isolação,\n" -"a área do objeto abaixo será subtraída da geometria\n" -"de isolação." - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:277 -#: AppTools/ToolIsolation.py:496 -#, fuzzy -#| msgid "" -#| "Isolation scope. Choose what to isolate:\n" -#| "- 'All' -> Isolate all the polygons in the object\n" -#| "- 'Selection' -> Isolate a selection of polygons." -msgid "" -"Isolation scope. Choose what to isolate:\n" -"- 'All' -> Isolate all the polygons in the object\n" -"- 'Area Selection' -> Isolate polygons within a selection area.\n" -"- 'Polygon Selection' -> Isolate a selection of polygons.\n" -"- 'Reference Object' - will process the area specified by another object." -msgstr "" -"Escopo de isolação. Escolha o que isolar:\n" -"- 'Tudo' -> Isola todos os polígonos no objeto\n" -"- 'Seleção' -> Isola uma seleção de polígonos." - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:285 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280 -#: AppTools/ToolIsolation.py:504 AppTools/ToolIsolation.py:1308 -#: AppTools/ToolIsolation.py:1690 AppTools/ToolPaint.py:485 -#: AppTools/ToolPaint.py:941 AppTools/ToolPaint.py:1451 -#: tclCommands/TclCommandPaint.py:164 -msgid "Polygon Selection" -msgstr "Seleção de Polígonos" - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:310 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:339 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:303 -msgid "Normal" -msgstr "Normal" - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:311 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:340 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:304 -msgid "Progressive" -msgstr "Progressivo" - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:312 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:341 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:305 -#: AppObjects/AppObject.py:349 AppObjects/FlatCAMObj.py:251 -#: AppObjects/FlatCAMObj.py:282 AppObjects/FlatCAMObj.py:298 -#: AppObjects/FlatCAMObj.py:378 AppTools/ToolCopperThieving.py:1491 -#: AppTools/ToolCorners.py:411 AppTools/ToolFiducials.py:813 -#: AppTools/ToolMove.py:229 AppTools/ToolQRCode.py:737 App_Main.py:4397 -msgid "Plotting" -msgstr "Plotando" - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:314 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:343 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:307 -#, fuzzy -#| msgid "" -#| "- 'Normal' - normal plotting, done at the end of the NCC job\n" -#| "- 'Progressive' - after each shape is generated it will be plotted." -msgid "" -"- 'Normal' - normal plotting, done at the end of the job\n" -"- 'Progressive' - each shape is plotted after it is generated" -msgstr "" -"- 'Normal' - plotagem normal, realizada no final do trabalho de NCC\n" -"- 'Progressivo' - após cada forma ser gerada, ela será plotada." - -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:27 -msgid "NCC Tool Options" -msgstr "Opções Área Sem Cobre (NCC)" - -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:33 -msgid "" -"Create a Geometry object with\n" -"toolpaths to cut all non-copper regions." -msgstr "" -"Cria um objeto Geometria com caminho de ferramenta\n" -"para cortar todas as regiões com retirada de cobre." - -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:266 -msgid "Offset value" -msgstr "Valor do deslocamento" - -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:268 -msgid "" -"If used, it will add an offset to the copper features.\n" -"The copper clearing will finish to a distance\n" -"from the copper features.\n" -"The value can be between 0.0 and 9999.9 FlatCAM units." -msgstr "" -"Se usado, será adicionado um deslocamento aos recursos de cobre.\n" -"A retirada de cobre terminará a uma distância dos recursos de cobre.\n" -"O valor pode estar entre 0 e 9999.9 unidades FlatCAM." - -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:290 AppTools/ToolNCC.py:516 -msgid "" -"If checked, use 'rest machining'.\n" -"Basically it will clear copper outside PCB features,\n" -"using the biggest tool and continue with the next tools,\n" -"from bigger to smaller, to clear areas of copper that\n" -"could not be cleared by previous tool, until there is\n" -"no more copper to clear or there are no more tools.\n" -"If not checked, use the standard algorithm." -msgstr "" -"Se marcada, usa 'usinagem de descanso'.\n" -"Basicamente, limpará o cobre fora dos recursos do PCB, utilizando\n" -"a maior ferramenta e continuará com as próximas ferramentas, da\n" -"maior para a menor, para limpar áreas de cobre que não puderam ser\n" -"retiradas com a ferramenta anterior.\n" -"Se não estiver marcada, usa o algoritmo padrão." - -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:313 AppTools/ToolNCC.py:541 -msgid "" -"Selection of area to be processed.\n" -"- 'Itself' - the processing extent is based on the object that is " -"processed.\n" -" - 'Area Selection' - left mouse click to start selection of the area to be " -"processed.\n" -"- 'Reference Object' - will process the area specified by another object." -msgstr "" -"Seleção da área a ser processada.\n" -"- 'Própria' - a extensão de processamento é baseada no próprio objeto a ser " -"limpo.\n" -"- 'Seleção de Área' - clique com o botão esquerdo do mouse para iniciar a " -"seleção da área a ser processada.\n" -"- 'Objeto de Referência' - processará a área especificada por outro objeto." - -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:27 -msgid "Paint Tool Options" -msgstr "Opções da Ferramenta de Pintura" - -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:33 -msgid "Parameters:" -msgstr "Parâmetros:" - -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:107 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:116 -#, fuzzy -#| msgid "" -#| "Depth of cut into material. Negative value.\n" -#| "In FlatCAM units." -msgid "" -"Depth of cut into material. Negative value.\n" -"In application units." -msgstr "" -"Profundidade de corte no material. Valor negativo.\n" -"Em unidades FlatCAM." - -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:247 -#: AppTools/ToolPaint.py:444 -msgid "" -"If checked, use 'rest machining'.\n" -"Basically it will clear copper outside PCB features,\n" -"using the biggest tool and continue with the next tools,\n" -"from bigger to smaller, to clear areas of copper that\n" -"could not be cleared by previous tool, until there is\n" -"no more copper to clear or there are no more tools.\n" -"\n" -"If not checked, use the standard algorithm." -msgstr "" -"Se marcada, usa 'usinagem de descanso'.\n" -"Basicamente, limpará o cobre fora dos recursos do PCB, utilizando\n" -"a maior ferramenta e continuará com as próximas ferramentas, da\n" -"maior para a menor, para limpar áreas de cobre que não puderam ser\n" -"retiradas com a ferramenta anterior.\n" -"Se não estiver marcada, usa o algoritmo padrão." - -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:260 -#: AppTools/ToolPaint.py:457 -msgid "" -"Selection of area to be processed.\n" -"- 'Polygon Selection' - left mouse click to add/remove polygons to be " -"processed.\n" -"- 'Area Selection' - left mouse click to start selection of the area to be " -"processed.\n" -"Keeping a modifier key pressed (CTRL or SHIFT) will allow to add multiple " -"areas.\n" -"- 'All Polygons' - the process will start after click.\n" -"- 'Reference Object' - will process the area specified by another object." -msgstr "" -"Seleção da área para processar.\n" -"- 'Seleção de polígonos' - clique com o botão esquerdo do mouse para " -"adicionar/remover polígonos a serem processados.\n" -"- 'Seleção de Área' - clique com o botão esquerdo do mouse para iniciar a " -"seleção da área a ser processada.\n" -"Manter uma tecla modificadora pressionada (CTRL ou SHIFT) permite adicionar " -"várias áreas.\n" -"- 'Todos os polígonos' - o processamento iniciará após o clique.\n" -"- 'Objeto de Referência' - processará dentro da área do objeto especificado." - -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:27 -msgid "Panelize Tool Options" -msgstr "Opções da Ferramenta Criar Painel" - -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:33 -msgid "" -"Create an object that contains an array of (x, y) elements,\n" -"each element is a copy of the source object spaced\n" -"at a X distance, Y distance of each other." -msgstr "" -"Cria um objeto que contém uma matriz de elementos (x, y).\n" -"Cada elemento é uma cópia do objeto de origem espaçado\n" -"dos demais por uma distância X, Y." - -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:50 -#: AppTools/ToolPanelize.py:165 -msgid "Spacing cols" -msgstr "Espaço entre Colunas" - -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:52 -#: AppTools/ToolPanelize.py:167 -msgid "" -"Spacing between columns of the desired panel.\n" -"In current units." -msgstr "" -"Espaçamento desejado entre colunas do painel.\n" -"Nas unidades atuais." - -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:64 -#: AppTools/ToolPanelize.py:177 -msgid "Spacing rows" -msgstr "Espaço entre Linhas" - -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:66 -#: AppTools/ToolPanelize.py:179 -msgid "" -"Spacing between rows of the desired panel.\n" -"In current units." -msgstr "" -"Espaçamento desejado entre linhas do painel.\n" -"Nas unidades atuais." - -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:77 -#: AppTools/ToolPanelize.py:188 -msgid "Columns" -msgstr "Colunas" - -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:79 -#: AppTools/ToolPanelize.py:190 -msgid "Number of columns of the desired panel" -msgstr "Número de colunas do painel desejado" - -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:89 -#: AppTools/ToolPanelize.py:198 -msgid "Rows" -msgstr "Linhas" - -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:91 -#: AppTools/ToolPanelize.py:200 -msgid "Number of rows of the desired panel" -msgstr "Número de linhas do painel desejado" - -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:97 -#: AppTools/ToolAlignObjects.py:73 AppTools/ToolAlignObjects.py:109 -#: AppTools/ToolCalibration.py:196 AppTools/ToolCalibration.py:631 -#: AppTools/ToolCalibration.py:648 AppTools/ToolCalibration.py:807 -#: AppTools/ToolCalibration.py:815 AppTools/ToolCopperThieving.py:148 -#: AppTools/ToolCopperThieving.py:162 AppTools/ToolCopperThieving.py:608 -#: AppTools/ToolCutOut.py:91 AppTools/ToolDblSided.py:224 -#: AppTools/ToolFilm.py:68 AppTools/ToolFilm.py:91 AppTools/ToolImage.py:49 -#: AppTools/ToolImage.py:252 AppTools/ToolImage.py:273 -#: AppTools/ToolIsolation.py:465 AppTools/ToolIsolation.py:517 -#: AppTools/ToolIsolation.py:1281 AppTools/ToolNCC.py:96 -#: AppTools/ToolNCC.py:558 AppTools/ToolNCC.py:1318 AppTools/ToolPaint.py:501 -#: AppTools/ToolPaint.py:705 AppTools/ToolPanelize.py:116 -#: AppTools/ToolPanelize.py:210 AppTools/ToolPanelize.py:385 -#: AppTools/ToolPanelize.py:402 -msgid "Gerber" -msgstr "Gerber" - -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:98 -#: AppTools/ToolPanelize.py:211 -msgid "Geo" -msgstr "Geo" - -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:99 -#: AppTools/ToolPanelize.py:212 -msgid "Panel Type" -msgstr "Tipo de Painel" - -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:101 -msgid "" -"Choose the type of object for the panel object:\n" -"- Gerber\n" -"- Geometry" -msgstr "" -"Escolha o tipo de objeto para o painel:\n" -"- Gerber\n" -"- Geometria" - -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:110 -msgid "Constrain within" -msgstr "Restringir dentro de" - -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:112 -#: AppTools/ToolPanelize.py:224 -msgid "" -"Area define by DX and DY within to constrain the panel.\n" -"DX and DY values are in current units.\n" -"Regardless of how many columns and rows are desired,\n" -"the final panel will have as many columns and rows as\n" -"they fit completely within selected area." -msgstr "" -"Área definida por DX e DY para restringir o painel.\n" -"Os valores DX e DY estão nas unidades atuais.\n" -"Desde quantas colunas e linhas forem desejadas,\n" -"o painel final terá tantas colunas e linhas quantas\n" -"couberem completamente dentro de área selecionada." - -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:125 -#: AppTools/ToolPanelize.py:236 -msgid "Width (DX)" -msgstr "Largura (DX)" - -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:127 -#: AppTools/ToolPanelize.py:238 -msgid "" -"The width (DX) within which the panel must fit.\n" -"In current units." -msgstr "" -"A largura (DX) na qual o painel deve caber.\n" -"Nas unidades atuais." - -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:138 -#: AppTools/ToolPanelize.py:247 -msgid "Height (DY)" -msgstr "Altura (DY)" - -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:140 -#: AppTools/ToolPanelize.py:249 -msgid "" -"The height (DY)within which the panel must fit.\n" -"In current units." -msgstr "" -"A altura (DY) na qual o painel deve se ajustar.\n" -"Nas unidades atuais." - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:27 -msgid "SolderPaste Tool Options" -msgstr "Opções da Ferramenta Pasta de Solda" - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:33 -msgid "" -"A tool to create GCode for dispensing\n" -"solder paste onto a PCB." -msgstr "" -"Uma ferramenta para criar G-Code para dispensar pasta\n" -"de solda em um PCB." - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:54 -msgid "New Nozzle Dia" -msgstr "Diâmetro do Novo Bico" - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:56 -#: AppTools/ToolSolderPaste.py:112 -msgid "Diameter for the new Nozzle tool to add in the Tool Table" -msgstr "" -"Diâmetro da nova ferramenta Bico para adicionar na tabela de ferramentas" - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:72 -#: AppTools/ToolSolderPaste.py:179 -msgid "Z Dispense Start" -msgstr "Altura Inicial" - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:74 -#: AppTools/ToolSolderPaste.py:181 -msgid "The height (Z) when solder paste dispensing starts." -msgstr "A altura (Z) que inicia a distribuição de pasta de solda." - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:85 -#: AppTools/ToolSolderPaste.py:191 -msgid "Z Dispense" -msgstr "Altura para Distribuir" - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:87 -#: AppTools/ToolSolderPaste.py:193 -msgid "The height (Z) when doing solder paste dispensing." -msgstr "Altura (Z) para distribuir a pasta de solda." - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:98 -#: AppTools/ToolSolderPaste.py:203 -msgid "Z Dispense Stop" -msgstr "Altura Final" - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:100 -#: AppTools/ToolSolderPaste.py:205 -msgid "The height (Z) when solder paste dispensing stops." -msgstr "Altura (Z) após a distribuição de pasta de solda." - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:111 -#: AppTools/ToolSolderPaste.py:215 -msgid "Z Travel" -msgstr "Altura para Deslocamento" - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:113 -#: AppTools/ToolSolderPaste.py:217 -msgid "" -"The height (Z) for travel between pads\n" -"(without dispensing solder paste)." -msgstr "" -"Altura (Z) para deslocamento entre pads\n" -"(sem dispensar pasta de solda)." - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:125 -#: AppTools/ToolSolderPaste.py:228 -msgid "Z Toolchange" -msgstr "Altura Troca de Ferram." - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:127 -#: AppTools/ToolSolderPaste.py:230 -msgid "The height (Z) for tool (nozzle) change." -msgstr "Altura (Z) para trocar ferramenta (bico)." - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:136 -#: AppTools/ToolSolderPaste.py:238 -msgid "" -"The X,Y location for tool (nozzle) change.\n" -"The format is (x, y) where x and y are real numbers." -msgstr "" -"Posição X,Y para trocar ferramenta (bico).\n" -"O formato é (x, y) onde x e y são números reais." - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:150 -#: AppTools/ToolSolderPaste.py:251 -msgid "Feedrate (speed) while moving on the X-Y plane." -msgstr "Avanço (velocidade) para movimento no plano XY." - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:163 -#: AppTools/ToolSolderPaste.py:263 -msgid "" -"Feedrate (speed) while moving vertically\n" -"(on Z plane)." -msgstr "" -"Avanço (velocidade) para movimento vertical\n" -"(no plano Z)." - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:175 -#: AppTools/ToolSolderPaste.py:274 -msgid "Feedrate Z Dispense" -msgstr "Avanço Z Distribuição" - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:177 -msgid "" -"Feedrate (speed) while moving up vertically\n" -"to Dispense position (on Z plane)." -msgstr "" -"Avanço (velocidade) para subir verticalmente\n" -"para a posição Dispensar (no plano Z)." - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:188 -#: AppTools/ToolSolderPaste.py:286 -msgid "Spindle Speed FWD" -msgstr "Velocidade Spindle FWD" - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:190 -#: AppTools/ToolSolderPaste.py:288 -msgid "" -"The dispenser speed while pushing solder paste\n" -"through the dispenser nozzle." -msgstr "" -"A velocidade do dispensador ao empurrar a pasta de solda\n" -"através do bico do distribuidor." - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:202 -#: AppTools/ToolSolderPaste.py:299 -msgid "Dwell FWD" -msgstr "Espera FWD" - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:204 -#: AppTools/ToolSolderPaste.py:301 -msgid "Pause after solder dispensing." -msgstr "Pausa após a dispensação de solda." - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:214 -#: AppTools/ToolSolderPaste.py:310 -msgid "Spindle Speed REV" -msgstr "Velocidade Spindle REV" - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:216 -#: AppTools/ToolSolderPaste.py:312 -msgid "" -"The dispenser speed while retracting solder paste\n" -"through the dispenser nozzle." -msgstr "" -"A velocidade do dispensador enquanto retrai a pasta de solda\n" -"através do bico do dispensador." - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:228 -#: AppTools/ToolSolderPaste.py:323 -msgid "Dwell REV" -msgstr "Espera REV" - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:230 -#: AppTools/ToolSolderPaste.py:325 -msgid "" -"Pause after solder paste dispenser retracted,\n" -"to allow pressure equilibrium." -msgstr "" -"Pausa após o dispensador de pasta de solda retrair, para permitir o " -"equilíbrio de pressão." - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:239 -#: AppTools/ToolSolderPaste.py:333 -msgid "Files that control the GCode generation." -msgstr "Arquivos que controlam a geração de G-Code." - -#: AppGUI/preferences/tools/ToolsSubPrefGroupUI.py:27 -msgid "Substractor Tool Options" -msgstr "Opções da ferramenta Substração" - -#: AppGUI/preferences/tools/ToolsSubPrefGroupUI.py:33 -msgid "" -"A tool to substract one Gerber or Geometry object\n" -"from another of the same type." -msgstr "" -"Uma ferramenta para subtrair um objeto Gerber ou Geometry\n" -"de outro do mesmo tipo." - -#: AppGUI/preferences/tools/ToolsSubPrefGroupUI.py:38 AppTools/ToolSub.py:160 -msgid "Close paths" -msgstr "Fechar caminhos" - -#: AppGUI/preferences/tools/ToolsSubPrefGroupUI.py:39 -msgid "" -"Checking this will close the paths cut by the Geometry substractor object." -msgstr "" -"Marcar isso fechará os caminhos cortados pelo objeto substrair Geometria." - -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:27 -msgid "Transform Tool Options" -msgstr "Opções Transformações" - -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:33 -#, fuzzy -#| msgid "" -#| "Various transformations that can be applied\n" -#| "on a FlatCAM object." -msgid "" -"Various transformations that can be applied\n" -"on a application object." -msgstr "" -"Várias transformações que podem ser aplicadas\n" -"a um objeto FlatCAM." - -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:64 -msgid "Skew" -msgstr "Inclinar" - -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:105 -#: AppTools/ToolTransform.py:150 -msgid "Factor for scaling on X axis." -msgstr "Fator para redimensionamento no eixo X." - -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:118 -#: AppTools/ToolTransform.py:170 -msgid "Factor for scaling on Y axis." -msgstr "Fator para redimensionamento no eixo Y." - -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:126 -#: AppTools/ToolTransform.py:191 -msgid "" -"Scale the selected object(s)\n" -"using the Scale_X factor for both axis." -msgstr "" -"Redimensiona o(s) objeto(s) selecionado(s)\n" -"usando o Fator de Escala X para ambos os eixos." - -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:134 -#: AppTools/ToolTransform.py:198 -msgid "" -"Scale the selected object(s)\n" -"using the origin reference when checked,\n" -"and the center of the biggest bounding box\n" -"of the selected objects when unchecked." -msgstr "" -"Redimensiona o(s) objeto(s) selecionado(s) usando a referência\n" -"de origem quando marcado, e o centro da maior caixa delimitadora\n" -"do objeto selecionado quando desmarcado." - -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:150 -#: AppTools/ToolTransform.py:217 -msgid "X val" -msgstr "X" - -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:152 -#: AppTools/ToolTransform.py:219 -msgid "Distance to offset on X axis. In current units." -msgstr "Distância para deslocar no eixo X, nas unidades atuais." - -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:163 -#: AppTools/ToolTransform.py:237 -msgid "Y val" -msgstr "Y" - -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:165 -#: AppTools/ToolTransform.py:239 -msgid "Distance to offset on Y axis. In current units." -msgstr "Distância para deslocar no eixo Y, nas unidades atuais." - -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:171 -#: AppTools/ToolDblSided.py:67 AppTools/ToolDblSided.py:95 -#: AppTools/ToolDblSided.py:125 -msgid "Mirror" -msgstr "Espelhar" - -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:175 -#: AppTools/ToolTransform.py:283 -msgid "Mirror Reference" -msgstr "Referência do Espelhamento" - -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:177 -#: AppTools/ToolTransform.py:285 -msgid "" -"Flip the selected object(s)\n" -"around the point in Point Entry Field.\n" -"\n" -"The point coordinates can be captured by\n" -"left click on canvas together with pressing\n" -"SHIFT key. \n" -"Then click Add button to insert coordinates.\n" -"Or enter the coords in format (x, y) in the\n" -"Point Entry field and click Flip on X(Y)" -msgstr "" -"Espelha o(s) objeto(s) selecionado(s)\n" -"em relação às coordenadas abaixo. \n" -"\n" -"As coordenadas do ponto podem ser inseridas:\n" -"- com clique no botão esquerdo junto com a tecla\n" -" SHIFT pressionada, e clicar no botão Adicionar.\n" -"- ou digitar as coordenadas no formato (x, y) no campo\n" -" Ponto de Ref. e clicar em Espelhar no X(Y)" - -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:188 -msgid "Mirror Reference point" -msgstr "Referência do Espelhamento" - -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:190 -msgid "" -"Coordinates in format (x, y) used as reference for mirroring.\n" -"The 'x' in (x, y) will be used when using Flip on X and\n" -"the 'y' in (x, y) will be used when using Flip on Y and" -msgstr "" -"Coordenadas no formato (x, y) usadas como referência para espelhamento.\n" -"O 'x' em (x, y) será usado ao usar Espelhar em X e\n" -"o 'y' em (x, y) será usado ao usar Espelhar em Y e" - -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:203 -#: AppTools/ToolDistance.py:505 AppTools/ToolDistanceMin.py:286 -#: AppTools/ToolTransform.py:332 -msgid "Distance" -msgstr "Distância" - -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:205 -#: AppTools/ToolTransform.py:334 -msgid "" -"A positive value will create the effect of dilation,\n" -"while a negative value will create the effect of erosion.\n" -"Each geometry element of the object will be increased\n" -"or decreased with the 'distance'." -msgstr "" -"Um valor positivo criará o efeito de dilatação,\n" -"enquanto um valor negativo criará o efeito de erosão.\n" -"Cada elemento geométrico do objeto será aumentado\n" -"ou diminuiu com a 'distância'." - -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:222 -#: AppTools/ToolTransform.py:359 -msgid "" -"A positive value will create the effect of dilation,\n" -"while a negative value will create the effect of erosion.\n" -"Each geometry element of the object will be increased\n" -"or decreased to fit the 'Value'. Value is a percentage\n" -"of the initial dimension." -msgstr "" -"Um valor positivo criará o efeito de dilatação,\n" -"enquanto um valor negativo criará o efeito de erosão.\n" -"Cada elemento geométrico do objeto será aumentado\n" -"ou diminuído com a 'distância'. Esse valor é um\n" -"percentual da dimensão inicial." - -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:241 -#: AppTools/ToolTransform.py:385 -msgid "" -"If checked then the buffer will surround the buffered shape,\n" -"every corner will be rounded.\n" -"If not checked then the buffer will follow the exact geometry\n" -"of the buffered shape." -msgstr "" -"Se marcado, o buffer cercará a forma do buffer,\n" -"cada canto será arredondado.\n" -"Se não marcado, o buffer seguirá a geometria exata\n" -"da forma em buffer." - -#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:27 -msgid "Autocompleter Keywords" -msgstr "Palavras-chave do preenchimento automático" - -#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:30 -#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:40 -#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:30 -#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:30 -msgid "Restore" -msgstr "Restaurar" - -#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:31 -msgid "Restore the autocompleter keywords list to the default state." -msgstr "" -"Restaurar a lista de palavras-chave do preenchimento automático para o " -"estado padrão." - -#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:33 -msgid "Delete all autocompleter keywords from the list." -msgstr "Excluir todas as palavras-chave do preenchimento automático da lista." - -#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:41 -msgid "Keywords list" -msgstr "Lista de palavras-chave" - -#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:43 -msgid "" -"List of keywords used by\n" -"the autocompleter in FlatCAM.\n" -"The autocompleter is installed\n" -"in the Code Editor and for the Tcl Shell." -msgstr "" -"Lista de palavras-chave usadas no\n" -"preenchimento automático no FlatCAM.\n" -"O preenchimento automático está instalado\n" -"no Editor de Código e na Linha de Comandos Tcl." - -#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:64 -#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:73 -#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:63 -#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:62 -msgid "Extension" -msgstr "Extensão" - -#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:65 -msgid "A keyword to be added or deleted to the list." -msgstr "Uma palavra-chave a ser adicionada ou excluída da lista." - -#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:73 -msgid "Add keyword" -msgstr "Adicionar palavra-chave" - -#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:74 -msgid "Add a keyword to the list" -msgstr "Adiciona uma palavra-chave à lista" - -#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:75 -msgid "Delete keyword" -msgstr "Excluir palavra-chave" - -#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:76 -msgid "Delete a keyword from the list" -msgstr "Exclui uma palavra-chave da lista" - -#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:27 -msgid "Excellon File associations" -msgstr "Associação de Arquivos Excellon" - -#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:41 -#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:31 -#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:31 -msgid "Restore the extension list to the default state." -msgstr "Restaure a lista de extensões para o estado padrão." - -#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:43 -#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:33 -#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:33 -msgid "Delete all extensions from the list." -msgstr "Excluir todas as extensões da lista." - -#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:51 -#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:41 -#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:41 -msgid "Extensions list" -msgstr "Lista de extensões" - -#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:53 -#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:43 -#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:43 -msgid "" -"List of file extensions to be\n" -"associated with FlatCAM." -msgstr "Lista de extensões de arquivos que serão associadas ao FlatCAM." - -#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:74 -#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:64 -#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:63 -msgid "A file extension to be added or deleted to the list." -msgstr "Uma extensão de arquivo a ser adicionada ou excluída da lista." - -#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:82 -#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:72 -#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:71 -msgid "Add Extension" -msgstr "Adicionar Extensão" - -#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:83 -#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:73 -#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:72 -msgid "Add a file extension to the list" -msgstr "Adiciona uma nova extensão à lista" - -#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:84 -#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:74 -#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:73 -msgid "Delete Extension" -msgstr "Excluir Extensão" - -#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:85 -#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:75 -#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:74 -msgid "Delete a file extension from the list" -msgstr "Exclui uma extensão da lista" - -#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:92 -#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:82 -#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:81 -msgid "Apply Association" -msgstr "Aplicar Associação" - -#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:93 -#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:83 -#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:82 -msgid "" -"Apply the file associations between\n" -"FlatCAM and the files with above extensions.\n" -"They will be active after next logon.\n" -"This work only in Windows." -msgstr "" -"Aplica as associações de arquivos entre o\n" -"FlatCAM e os arquivos com as extensões acima.\n" -"Elas serão ativas após o próximo logon.\n" -"Isso funciona apenas no Windows." - -#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:27 -msgid "GCode File associations" -msgstr "Associação de arquivos G-Code" - -#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:27 -msgid "Gerber File associations" -msgstr "Associação de arquivos Gerber" - -#: AppObjects/AppObject.py:134 -#, python-brace-format -msgid "" -"Object ({kind}) failed because: {error} \n" -"\n" -msgstr "" -"Objeto ({kind}) falhou porque: {error} \n" -"\n" - -#: AppObjects/AppObject.py:149 -msgid "Converting units to " -msgstr "Convertendo unidades para " - -#: AppObjects/AppObject.py:254 -msgid "CREATE A NEW FLATCAM TCL SCRIPT" -msgstr "CRIAR UM NOVO SCRIPT FLATCAM TCL" - -#: AppObjects/AppObject.py:255 -msgid "TCL Tutorial is here" -msgstr "Tutorial TCL está aqui" - -#: AppObjects/AppObject.py:257 -msgid "FlatCAM commands list" -msgstr "Lista de comandos FlatCAM" - -#: AppObjects/AppObject.py:258 -msgid "" -"Type >help< followed by Run Code for a list of FlatCAM Tcl Commands " -"(displayed in Tcl Shell)." -msgstr "" -"Digite >help< Run Code para uma lista de comandos TCL FlatCAM (mostrados na " -"linha de comando)." - -#: AppObjects/AppObject.py:304 AppObjects/AppObject.py:310 -#: AppObjects/AppObject.py:316 AppObjects/AppObject.py:322 -#: AppObjects/AppObject.py:328 AppObjects/AppObject.py:334 -msgid "created/selected" -msgstr "criado / selecionado" - -#: AppObjects/FlatCAMCNCJob.py:429 AppObjects/FlatCAMDocument.py:71 -#: AppObjects/FlatCAMScript.py:82 -msgid "Basic" -msgstr "Básico" - -#: AppObjects/FlatCAMCNCJob.py:435 AppObjects/FlatCAMDocument.py:75 -#: AppObjects/FlatCAMScript.py:86 -msgid "Advanced" -msgstr "Avançado" - -#: AppObjects/FlatCAMCNCJob.py:478 -msgid "Plotting..." -msgstr "Plotando..." - -#: AppObjects/FlatCAMCNCJob.py:517 AppTools/ToolSolderPaste.py:1511 -#, fuzzy -#| msgid "Export PNG cancelled." -msgid "Export cancelled ..." -msgstr "Exportar PNG cancelado." - -#: AppObjects/FlatCAMCNCJob.py:538 -#, fuzzy -#| msgid "PDF file saved to" -msgid "File saved to" -msgstr "Arquivo PDF salvo em" - -#: AppObjects/FlatCAMCNCJob.py:548 AppObjects/FlatCAMScript.py:134 -#: App_Main.py:7301 -msgid "Loading..." -msgstr "Lendo..." - -#: AppObjects/FlatCAMCNCJob.py:562 App_Main.py:7398 -msgid "Code Editor" -msgstr "Editor de Códigos" - -#: AppObjects/FlatCAMCNCJob.py:599 AppTools/ToolCalibration.py:1097 -msgid "Loaded Machine Code into Code Editor" -msgstr "G-Code aberto no Editor de Códigos" - -#: AppObjects/FlatCAMCNCJob.py:740 -msgid "This CNCJob object can't be processed because it is a" -msgstr "Este objeto Trabalho CNC não pode ser processado porque é um" - -#: AppObjects/FlatCAMCNCJob.py:742 -msgid "CNCJob object" -msgstr "Objeto de Trabalho CNC" - -#: AppObjects/FlatCAMCNCJob.py:922 -msgid "" -"G-code does not have a G94 code and we will not include the code in the " -"'Prepend to GCode' text box" -msgstr "" -"O G-Code não possui um código G94 e não será incluído na caixa de texto " -"'Anexar ao G-Code'" - -#: AppObjects/FlatCAMCNCJob.py:933 -msgid "Cancelled. The Toolchange Custom code is enabled but it's empty." -msgstr "" -"Cancelado. O código personalizado para Troca de Ferramentas está ativado, " -"mas está vazio." - -#: AppObjects/FlatCAMCNCJob.py:938 -msgid "Toolchange G-code was replaced by a custom code." -msgstr "" -"O G-Code para Troca de Ferramentas foi substituído por um código " -"personalizado." - -#: AppObjects/FlatCAMCNCJob.py:986 AppObjects/FlatCAMCNCJob.py:995 -msgid "" -"The used preprocessor file has to have in it's name: 'toolchange_custom'" -msgstr "" -"O arquivo de pós-processamento deve ter em seu nome: 'toolchange_custom'" - -#: AppObjects/FlatCAMCNCJob.py:998 -msgid "There is no preprocessor file." -msgstr "Não há arquivo de pós-processamento." - -#: AppObjects/FlatCAMDocument.py:175 -msgid "Document Editor" -msgstr "Editor de Documento" - -#: AppObjects/FlatCAMExcellon.py:537 AppObjects/FlatCAMExcellon.py:856 -#: AppObjects/FlatCAMGeometry.py:380 AppObjects/FlatCAMGeometry.py:861 -#: AppTools/ToolIsolation.py:1051 AppTools/ToolIsolation.py:1185 -#: AppTools/ToolNCC.py:811 AppTools/ToolNCC.py:1214 AppTools/ToolPaint.py:778 -#: AppTools/ToolPaint.py:1190 -msgid "Multiple Tools" -msgstr "Ferramentas Múltiplas" - -#: AppObjects/FlatCAMExcellon.py:836 -msgid "No Tool Selected" -msgstr "Nenhuma Ferramenta Selecionada" - -#: AppObjects/FlatCAMExcellon.py:1234 AppObjects/FlatCAMExcellon.py:1348 -#: AppObjects/FlatCAMExcellon.py:1535 -msgid "Please select one or more tools from the list and try again." -msgstr "Selecione uma ou mais ferramentas da lista e tente novamente." - -#: AppObjects/FlatCAMExcellon.py:1241 -msgid "Milling tool for DRILLS is larger than hole size. Cancelled." -msgstr "A ferramenta BROCA é maior que o tamanho do furo. Cancelado." - -#: AppObjects/FlatCAMExcellon.py:1265 AppObjects/FlatCAMExcellon.py:1368 -#: AppObjects/FlatCAMExcellon.py:1553 tclCommands/TclCommandDrillcncjob.py:195 -msgid "Tool_nr" -msgstr "Ferramenta_nr" - -#: AppObjects/FlatCAMExcellon.py:1265 AppObjects/FlatCAMExcellon.py:1368 -#: AppObjects/FlatCAMExcellon.py:1553 tclCommands/TclCommandDrillcncjob.py:195 -msgid "Drills_Nr" -msgstr "Furo_Nr" - -#: AppObjects/FlatCAMExcellon.py:1265 AppObjects/FlatCAMExcellon.py:1368 -#: AppObjects/FlatCAMExcellon.py:1553 tclCommands/TclCommandDrillcncjob.py:195 -msgid "Slots_Nr" -msgstr "Ranhura_Nr" - -#: AppObjects/FlatCAMExcellon.py:1357 -msgid "Milling tool for SLOTS is larger than hole size. Cancelled." -msgstr "" -"A ferramenta fresa para RANHURAS é maior que o tamanho do furo. Cancelado." - -#: AppObjects/FlatCAMExcellon.py:1461 AppObjects/FlatCAMGeometry.py:1636 -msgid "Focus Z" -msgstr "Foco Z" - -#: AppObjects/FlatCAMExcellon.py:1480 AppObjects/FlatCAMGeometry.py:1655 -msgid "Laser Power" -msgstr "Potência Laser" - -#: AppObjects/FlatCAMExcellon.py:1610 AppObjects/FlatCAMGeometry.py:2088 -#: AppObjects/FlatCAMGeometry.py:2092 AppObjects/FlatCAMGeometry.py:2243 -msgid "Generating CNC Code" -msgstr "Gerando Código CNC" - -#: AppObjects/FlatCAMExcellon.py:1663 AppObjects/FlatCAMGeometry.py:2553 -#, fuzzy -#| msgid "Delete failed. Select a tool to delete." -msgid "Delete failed. There are no exclusion areas to delete." -msgstr "Exclusão falhou. Selecione uma ferramenta para excluir." - -#: AppObjects/FlatCAMExcellon.py:1680 AppObjects/FlatCAMGeometry.py:2570 -#, fuzzy -#| msgid "Failed. Nothing selected." -msgid "Delete failed. Nothing is selected." -msgstr "Falhou. Nada selecionado." - -#: AppObjects/FlatCAMExcellon.py:1945 AppTools/ToolIsolation.py:1253 -#: AppTools/ToolNCC.py:918 AppTools/ToolPaint.py:843 -msgid "Current Tool parameters were applied to all tools." -msgstr "Parâmetros aplicados a todas as ferramentas." - -#: AppObjects/FlatCAMGeometry.py:124 AppObjects/FlatCAMGeometry.py:1298 -#: AppObjects/FlatCAMGeometry.py:1299 AppObjects/FlatCAMGeometry.py:1308 -msgid "Iso" -msgstr "Isolação" - -#: AppObjects/FlatCAMGeometry.py:124 AppObjects/FlatCAMGeometry.py:522 -#: AppObjects/FlatCAMGeometry.py:920 AppObjects/FlatCAMGerber.py:565 -#: AppObjects/FlatCAMGerber.py:708 AppTools/ToolCutOut.py:727 -#: AppTools/ToolCutOut.py:923 AppTools/ToolCutOut.py:1083 -#: AppTools/ToolIsolation.py:1842 AppTools/ToolIsolation.py:1979 -#: AppTools/ToolIsolation.py:2150 -msgid "Rough" -msgstr "Desbaste" - -#: AppObjects/FlatCAMGeometry.py:124 -msgid "Finish" -msgstr "Acabamento" - -#: AppObjects/FlatCAMGeometry.py:557 -msgid "Add from Tool DB" -msgstr "Adicionar Ferramenta do BD" - -#: AppObjects/FlatCAMGeometry.py:939 -msgid "Tool added in Tool Table." -msgstr "Ferramenta adicionada na Tabela de Ferramentas." - -#: AppObjects/FlatCAMGeometry.py:1048 AppObjects/FlatCAMGeometry.py:1057 -msgid "Failed. Select a tool to copy." -msgstr "Falhou. Selecione uma ferramenta para copiar." - -#: AppObjects/FlatCAMGeometry.py:1086 -msgid "Tool was copied in Tool Table." -msgstr "A ferramenta foi copiada na tabela de ferramentas." - -#: AppObjects/FlatCAMGeometry.py:1113 -msgid "Tool was edited in Tool Table." -msgstr "A ferramenta foi editada na Tabela de Ferramentas." - -#: AppObjects/FlatCAMGeometry.py:1142 AppObjects/FlatCAMGeometry.py:1151 -msgid "Failed. Select a tool to delete." -msgstr "Falhou. Selecione uma ferramenta para excluir." - -#: AppObjects/FlatCAMGeometry.py:1175 -msgid "Tool was deleted in Tool Table." -msgstr "A ferramenta foi eliminada da Tabela de Ferramentas." - -#: AppObjects/FlatCAMGeometry.py:1212 AppObjects/FlatCAMGeometry.py:1221 -msgid "" -"Disabled because the tool is V-shape.\n" -"For V-shape tools the depth of cut is\n" -"calculated from other parameters like:\n" -"- 'V-tip Angle' -> angle at the tip of the tool\n" -"- 'V-tip Dia' -> diameter at the tip of the tool \n" -"- Tool Dia -> 'Dia' column found in the Tool Table\n" -"NB: a value of zero means that Tool Dia = 'V-tip Dia'" -msgstr "" -"Desativado porque a ferramenta é em forma de V.\n" -"Para ferramentas em forma de V, a profundidade de corte é\n" -"calculado a partir de outros parâmetros, como:\n" -"- 'Ângulo da ponta em V' -> ângulo na ponta da ferramenta\n" -"- 'Diâmetro da ponta em V' -> diâmetro na ponta da ferramenta\n" -"- Dia da ferramenta -> coluna 'Dia' encontrada na tabela de ferramentas\n" -"NB: um valor igual a zero significa que o Dia da Ferramenta = 'Dia da ponta " -"em V'" - -#: AppObjects/FlatCAMGeometry.py:1708 -msgid "This Geometry can't be processed because it is" -msgstr "Esta Geometria não pode ser processada porque é" - -#: AppObjects/FlatCAMGeometry.py:1708 -msgid "geometry" -msgstr "geometria" - -#: AppObjects/FlatCAMGeometry.py:1749 -msgid "Failed. No tool selected in the tool table ..." -msgstr "Falhou. Nenhuma ferramenta selecionada na tabela de ferramentas ..." - -#: AppObjects/FlatCAMGeometry.py:1847 AppObjects/FlatCAMGeometry.py:1997 -msgid "" -"Tool Offset is selected in Tool Table but no value is provided.\n" -"Add a Tool Offset or change the Offset Type." -msgstr "" -"Deslocamento de Ferramenta selecionado na Tabela de Ferramentas, mas nenhum " -"valor foi fornecido.\n" -"Adicione um Deslocamento de Ferramenta ou altere o Tipo de Deslocamento." - -#: AppObjects/FlatCAMGeometry.py:1913 AppObjects/FlatCAMGeometry.py:2059 -msgid "G-Code parsing in progress..." -msgstr "Análisando o G-Code..." - -#: AppObjects/FlatCAMGeometry.py:1915 AppObjects/FlatCAMGeometry.py:2061 -msgid "G-Code parsing finished..." -msgstr "Análise do G-Code finalisada..." - -#: AppObjects/FlatCAMGeometry.py:1923 -msgid "Finished G-Code processing" -msgstr "Processamento do G-Code concluído" - -#: AppObjects/FlatCAMGeometry.py:1925 AppObjects/FlatCAMGeometry.py:2073 -msgid "G-Code processing failed with error" -msgstr "Processamento do G-Code falhou com erro" - -#: AppObjects/FlatCAMGeometry.py:1967 AppTools/ToolSolderPaste.py:1309 -msgid "Cancelled. Empty file, it has no geometry" -msgstr "Cancelado. Arquivo vazio, não tem geometria" - -#: AppObjects/FlatCAMGeometry.py:2071 AppObjects/FlatCAMGeometry.py:2238 -msgid "Finished G-Code processing..." -msgstr "Processamento do G-Code finalisado..." - -#: AppObjects/FlatCAMGeometry.py:2090 AppObjects/FlatCAMGeometry.py:2094 -#: AppObjects/FlatCAMGeometry.py:2245 -msgid "CNCjob created" -msgstr "Trabalho CNC criado" - -#: AppObjects/FlatCAMGeometry.py:2276 AppObjects/FlatCAMGeometry.py:2285 -#: AppParsers/ParseGerber.py:1866 AppParsers/ParseGerber.py:1876 -msgid "Scale factor has to be a number: integer or float." -msgstr "O fator de escala deve ser um número: inteiro ou flutuante." - -#: AppObjects/FlatCAMGeometry.py:2348 -msgid "Geometry Scale done." -msgstr "Redimensionamento de geometria feita." - -#: AppObjects/FlatCAMGeometry.py:2365 AppParsers/ParseGerber.py:1992 -msgid "" -"An (x,y) pair of values are needed. Probable you entered only one value in " -"the Offset field." -msgstr "" -"Um par (x,y) de valores é necessário. Provavelmente você digitou apenas um " -"valor no campo Deslocamento." - -#: AppObjects/FlatCAMGeometry.py:2421 -msgid "Geometry Offset done." -msgstr "Deslocamento de Geometria concluído." - -#: AppObjects/FlatCAMGeometry.py:2450 -msgid "" -"The Toolchange X,Y field in Edit -> Preferences has to be in the format (x, " -"y)\n" -"but now there is only one value, not two." -msgstr "" -"O campo Troca de Ferramentas X, Y em Editar -> Preferências deve estar no " -"formato (x, y).\n" -"Agora está com apenas um valor, não dois." - -#: AppObjects/FlatCAMGerber.py:388 AppTools/ToolIsolation.py:1577 -msgid "Buffering solid geometry" -msgstr "Buffer de geometria sólida" - -#: AppObjects/FlatCAMGerber.py:397 AppTools/ToolIsolation.py:1599 -msgid "Done" -msgstr "Pronto" - -#: AppObjects/FlatCAMGerber.py:423 AppObjects/FlatCAMGerber.py:449 -msgid "Operation could not be done." -msgstr "Não foi possível executar a operação." - -#: AppObjects/FlatCAMGerber.py:581 AppObjects/FlatCAMGerber.py:655 -#: AppTools/ToolIsolation.py:1805 AppTools/ToolIsolation.py:2126 -#: AppTools/ToolNCC.py:2117 AppTools/ToolNCC.py:3197 AppTools/ToolNCC.py:3576 -msgid "Isolation geometry could not be generated." -msgstr "A geometria de isolação não pôde ser gerada." - -#: AppObjects/FlatCAMGerber.py:606 AppObjects/FlatCAMGerber.py:733 -#: AppTools/ToolIsolation.py:1869 AppTools/ToolIsolation.py:2035 -#: AppTools/ToolIsolation.py:2202 -msgid "Isolation geometry created" -msgstr "Geometria de isolação criada" - -#: AppObjects/FlatCAMGerber.py:1028 -msgid "Plotting Apertures" -msgstr "Mostrando Aberturas" - -#: AppObjects/FlatCAMObj.py:237 -msgid "Name changed from" -msgstr "Nome alterado de" - -#: AppObjects/FlatCAMObj.py:237 -msgid "to" -msgstr "para" - -#: AppObjects/FlatCAMObj.py:248 -msgid "Offsetting..." -msgstr "Deslocando..." - -#: AppObjects/FlatCAMObj.py:262 AppObjects/FlatCAMObj.py:267 -msgid "Scaling could not be executed." -msgstr "Não foi possível executar o redimensionamento." - -#: AppObjects/FlatCAMObj.py:271 AppObjects/FlatCAMObj.py:279 -msgid "Scale done." -msgstr "Redimensionamento concluída." - -#: AppObjects/FlatCAMObj.py:277 -msgid "Scaling..." -msgstr "Dimensionando..." - -#: AppObjects/FlatCAMObj.py:295 -msgid "Skewing..." -msgstr "Inclinando..." - -#: AppObjects/FlatCAMScript.py:163 -msgid "Script Editor" -msgstr "Editor de Script" - -#: AppObjects/ObjectCollection.py:514 -#, python-brace-format -msgid "Object renamed from {old} to {new}" -msgstr "Objeto renomeado de {old} para {new}" - -#: AppObjects/ObjectCollection.py:926 AppObjects/ObjectCollection.py:932 -#: AppObjects/ObjectCollection.py:938 AppObjects/ObjectCollection.py:944 -#: AppObjects/ObjectCollection.py:950 AppObjects/ObjectCollection.py:956 -#: App_Main.py:6235 App_Main.py:6241 App_Main.py:6247 App_Main.py:6253 -msgid "selected" -msgstr "selecionado" - -#: AppObjects/ObjectCollection.py:987 -msgid "Cause of error" -msgstr "Motivo do erro" - -#: AppObjects/ObjectCollection.py:1188 -msgid "All objects are selected." -msgstr "Todos os objetos estão selecionados." - -#: AppObjects/ObjectCollection.py:1198 -msgid "Objects selection is cleared." -msgstr "A seleção de objetos é limpa." - -#: AppParsers/ParseExcellon.py:315 -msgid "This is GCODE mark" -msgstr "Esta é a marca G-CODE" - -#: AppParsers/ParseExcellon.py:432 -msgid "" -"No tool diameter info's. See shell.\n" -"A tool change event: T" -msgstr "" -"Sem informação do diâmetro da ferramenta. Veja linha de comando.\n" -"Evento de troca de ferramenta: T" - -#: AppParsers/ParseExcellon.py:435 -msgid "" -"was found but the Excellon file have no informations regarding the tool " -"diameters therefore the application will try to load it by using some 'fake' " -"diameters.\n" -"The user needs to edit the resulting Excellon object and change the " -"diameters to reflect the real diameters." -msgstr "" -"foi encontrado mas o arquivo Excellon não possui informações sobre os " -"diâmetros da ferramenta. \n" -"O aplicativo tentará carregá-lo usando alguns diâmetros 'falsos'./nO usuário " -"precisa editar o objeto Excellon resultante e\n" -"alterar os diâmetros para os valores reais." - -#: AppParsers/ParseExcellon.py:899 -msgid "" -"Excellon Parser error.\n" -"Parsing Failed. Line" -msgstr "" -"Erro do Analisador Excellon.\n" -"Análise falhou. Linha" - -#: AppParsers/ParseExcellon.py:981 -msgid "" -"Excellon.create_geometry() -> a drill location was skipped due of not having " -"a tool associated.\n" -"Check the resulting GCode." -msgstr "" -"Excellon.create_geometry () -> um furo foi ignorado por não ter uma " -"ferramenta associada.\n" -"Verifique o G-Code resultante." - -#: AppParsers/ParseFont.py:303 -msgid "Font not supported, try another one." -msgstr "Fonte não suportada. Tente outra." - -#: AppParsers/ParseGerber.py:425 -msgid "Gerber processing. Parsing" -msgstr "Processando Gerber. Analisando" - -#: AppParsers/ParseGerber.py:425 AppParsers/ParseHPGL2.py:181 -msgid "lines" -msgstr "linhas" - -#: AppParsers/ParseGerber.py:1001 AppParsers/ParseGerber.py:1101 -#: AppParsers/ParseHPGL2.py:274 AppParsers/ParseHPGL2.py:288 -#: AppParsers/ParseHPGL2.py:307 AppParsers/ParseHPGL2.py:331 -#: AppParsers/ParseHPGL2.py:366 -msgid "Coordinates missing, line ignored" -msgstr "Coordenadas faltando, linha ignorada" - -#: AppParsers/ParseGerber.py:1003 AppParsers/ParseGerber.py:1103 -msgid "GERBER file might be CORRUPT. Check the file !!!" -msgstr "O arquivo GERBER pode estar CORROMPIDO. Verifique o arquivo !!!" - -#: AppParsers/ParseGerber.py:1057 -msgid "" -"Region does not have enough points. File will be processed but there are " -"parser errors. Line number" -msgstr "" -"A região não possui pontos suficientes. O arquivo será processado, mas há " -"erros na análise. Número da linha" - -#: AppParsers/ParseGerber.py:1487 AppParsers/ParseHPGL2.py:401 -msgid "Gerber processing. Joining polygons" -msgstr "Processando Gerber. Unindo polígonos" - -#: AppParsers/ParseGerber.py:1504 -msgid "Gerber processing. Applying Gerber polarity." -msgstr "Processando Gerber. Aplicando polaridade Gerber." - -#: AppParsers/ParseGerber.py:1564 -msgid "Gerber Line" -msgstr "Linha Gerber" - -#: AppParsers/ParseGerber.py:1564 -msgid "Gerber Line Content" -msgstr "Conteúdo" - -#: AppParsers/ParseGerber.py:1566 -msgid "Gerber Parser ERROR" -msgstr "Erro de Análise" - -#: AppParsers/ParseGerber.py:1956 -msgid "Gerber Scale done." -msgstr "Redimensionamento Gerber pronto." - -#: AppParsers/ParseGerber.py:2048 -msgid "Gerber Offset done." -msgstr "Deslocamento Gerber pronto." - -#: AppParsers/ParseGerber.py:2124 -msgid "Gerber Mirror done." -msgstr "Espelhamento Gerber pronto." - -#: AppParsers/ParseGerber.py:2198 -msgid "Gerber Skew done." -msgstr "Inclinação Gerber pronta." - -#: AppParsers/ParseGerber.py:2260 -msgid "Gerber Rotate done." -msgstr "Rotação Gerber pronta." - -#: AppParsers/ParseGerber.py:2417 -msgid "Gerber Buffer done." -msgstr "Buffer Gerber pronto." - -#: AppParsers/ParseHPGL2.py:181 -msgid "HPGL2 processing. Parsing" -msgstr "Processando HPGL2 . Analisando" - -#: AppParsers/ParseHPGL2.py:413 -msgid "HPGL2 Line" -msgstr "Linha HPGL2" - -#: AppParsers/ParseHPGL2.py:413 -msgid "HPGL2 Line Content" -msgstr "Conteúdo da linha HPGL2" - -#: AppParsers/ParseHPGL2.py:414 -msgid "HPGL2 Parser ERROR" -msgstr "ERRO do Analisador HPGL2" - -#: AppProcess.py:172 -msgid "processes running." -msgstr "processos executando." - -#: AppTools/ToolAlignObjects.py:32 -msgid "Align Objects" -msgstr "Alinhar Objetos" - -#: AppTools/ToolAlignObjects.py:61 -msgid "MOVING object" -msgstr "MOVENDO Objeto" - -#: AppTools/ToolAlignObjects.py:65 -msgid "" -"Specify the type of object to be aligned.\n" -"It can be of type: Gerber or Excellon.\n" -"The selection here decide the type of objects that will be\n" -"in the Object combobox." -msgstr "" -"Especifique o tipo de objeto para alinhar\n" -"Pode ser do tipo: Gerber ou Excellon.\n" -"A seleção aqui decide o tipo de objetos que estarão\n" -"na Caixa de Objetos." - -#: AppTools/ToolAlignObjects.py:86 -msgid "Object to be aligned." -msgstr "Objeto a ser alinhado." - -#: AppTools/ToolAlignObjects.py:98 -msgid "TARGET object" -msgstr "Objeto ALVO" - -#: AppTools/ToolAlignObjects.py:100 -msgid "" -"Specify the type of object to be aligned to.\n" -"It can be of type: Gerber or Excellon.\n" -"The selection here decide the type of objects that will be\n" -"in the Object combobox." -msgstr "" -"Especifique o tipo de objeto para alinhar\n" -"Pode ser do tipo: Gerber ou Excellon.\n" -"A seleção aqui decide o tipo de objetos que estarão\n" -"na Caixa de Objetos." - -#: AppTools/ToolAlignObjects.py:122 -msgid "Object to be aligned to. Aligner." -msgstr "Objeto a ser alinhado. Alinhador." - -#: AppTools/ToolAlignObjects.py:135 -msgid "Alignment Type" -msgstr "Tipo de Alinhamento" - -#: AppTools/ToolAlignObjects.py:137 -msgid "" -"The type of alignment can be:\n" -"- Single Point -> it require a single point of sync, the action will be a " -"translation\n" -"- Dual Point -> it require two points of sync, the action will be " -"translation followed by rotation" -msgstr "" -"O tipo de alinhamento pode ser:\n" -"- Ponto único -> requer um único ponto de sincronização, a ação será uma " -"translação\n" -"- Ponto duplo -> requer dois pontos de sincronização, a ação será translada " -"seguida de rotação" - -#: AppTools/ToolAlignObjects.py:143 -msgid "Single Point" -msgstr "Ponto Único" - -#: AppTools/ToolAlignObjects.py:144 -msgid "Dual Point" -msgstr "Ponto Duplo" - -#: AppTools/ToolAlignObjects.py:159 -msgid "Align Object" -msgstr "Alinhar Objeto" - -#: AppTools/ToolAlignObjects.py:161 -msgid "" -"Align the specified object to the aligner object.\n" -"If only one point is used then it assumes translation.\n" -"If tho points are used it assume translation and rotation." -msgstr "" -"Alinhe o objeto especificado ao objeto alinhador.\n" -"Se apenas um ponto for usado, ele assumirá a translação.\n" -"Se forem usados dois pontos, assume translação e rotação." - -#: AppTools/ToolAlignObjects.py:176 AppTools/ToolCalculators.py:246 -#: AppTools/ToolCalibration.py:683 AppTools/ToolCopperThieving.py:488 -#: AppTools/ToolCorners.py:182 AppTools/ToolCutOut.py:362 -#: AppTools/ToolDblSided.py:471 AppTools/ToolEtchCompensation.py:240 -#: AppTools/ToolExtractDrills.py:310 AppTools/ToolFiducials.py:321 -#: AppTools/ToolFilm.py:503 AppTools/ToolInvertGerber.py:143 -#: AppTools/ToolIsolation.py:591 AppTools/ToolNCC.py:612 -#: AppTools/ToolOptimal.py:243 AppTools/ToolPaint.py:555 -#: AppTools/ToolPanelize.py:280 AppTools/ToolPunchGerber.py:339 -#: AppTools/ToolQRCode.py:323 AppTools/ToolRulesCheck.py:516 -#: AppTools/ToolSolderPaste.py:481 AppTools/ToolSub.py:181 -#: AppTools/ToolTransform.py:398 -msgid "Reset Tool" -msgstr "Redefinir Ferramenta" - -#: AppTools/ToolAlignObjects.py:178 AppTools/ToolCalculators.py:248 -#: AppTools/ToolCalibration.py:685 AppTools/ToolCopperThieving.py:490 -#: AppTools/ToolCorners.py:184 AppTools/ToolCutOut.py:364 -#: AppTools/ToolDblSided.py:473 AppTools/ToolEtchCompensation.py:242 -#: AppTools/ToolExtractDrills.py:312 AppTools/ToolFiducials.py:323 -#: AppTools/ToolFilm.py:505 AppTools/ToolInvertGerber.py:145 -#: AppTools/ToolIsolation.py:593 AppTools/ToolNCC.py:614 -#: AppTools/ToolOptimal.py:245 AppTools/ToolPaint.py:557 -#: AppTools/ToolPanelize.py:282 AppTools/ToolPunchGerber.py:341 -#: AppTools/ToolQRCode.py:325 AppTools/ToolRulesCheck.py:518 -#: AppTools/ToolSolderPaste.py:483 AppTools/ToolSub.py:183 -#: AppTools/ToolTransform.py:400 -msgid "Will reset the tool parameters." -msgstr "Redefinirá os parâmetros da ferramenta." - -#: AppTools/ToolAlignObjects.py:244 -msgid "Align Tool" -msgstr "Ferramenta Alinhar" - -#: AppTools/ToolAlignObjects.py:289 -msgid "There is no aligned FlatCAM object selected..." -msgstr "Não há nenhum objeto FlatCAM alinhado selecionado ..." - -#: AppTools/ToolAlignObjects.py:299 -msgid "There is no aligner FlatCAM object selected..." -msgstr "Não há nenhum objeto FlatCAM do alinhador selecionado ..." - -#: AppTools/ToolAlignObjects.py:321 AppTools/ToolAlignObjects.py:385 -msgid "First Point" -msgstr "Ponto Inicial" - -#: AppTools/ToolAlignObjects.py:321 AppTools/ToolAlignObjects.py:400 -msgid "Click on the START point." -msgstr "Clique no ponto INICIAL." - -#: AppTools/ToolAlignObjects.py:380 AppTools/ToolCalibration.py:920 -msgid "Cancelled by user request." -msgstr "Cancelado por solicitação do usuário." - -#: AppTools/ToolAlignObjects.py:385 AppTools/ToolAlignObjects.py:407 -msgid "Click on the DESTINATION point." -msgstr "Clique no ponto DESTINO." - -#: AppTools/ToolAlignObjects.py:385 AppTools/ToolAlignObjects.py:400 -#: AppTools/ToolAlignObjects.py:407 -msgid "Or right click to cancel." -msgstr "ou clique esquerdo para cancelar." - -#: AppTools/ToolAlignObjects.py:400 AppTools/ToolAlignObjects.py:407 -#: AppTools/ToolFiducials.py:107 -msgid "Second Point" -msgstr "Segundo Ponto" - -#: AppTools/ToolCalculators.py:24 -msgid "Calculators" -msgstr "Calculadoras" - -#: AppTools/ToolCalculators.py:26 -msgid "Units Calculator" -msgstr "Calculadora de Unidades" - -#: AppTools/ToolCalculators.py:70 -msgid "Here you enter the value to be converted from INCH to MM" -msgstr "Aqui você insere o valor a ser convertido de polegadas para mm" - -#: AppTools/ToolCalculators.py:75 -msgid "Here you enter the value to be converted from MM to INCH" -msgstr "Aqui você insere o valor a ser convertido de mm para polegadas" - -#: AppTools/ToolCalculators.py:111 -msgid "" -"This is the angle of the tip of the tool.\n" -"It is specified by manufacturer." -msgstr "" -"Ângulo da ponta da ferramenta.\n" -"Especificado pelo fabricante." - -#: AppTools/ToolCalculators.py:120 -msgid "" -"This is the depth to cut into the material.\n" -"In the CNCJob is the CutZ parameter." -msgstr "" -"Esta é a profundidade para cortar material.\n" -"No Trabalho CNC é o parâmetro Profundidade de Corte." - -#: AppTools/ToolCalculators.py:128 -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 "" -"Este é o diâmetro da ferramenta a ser inserido na seção\n" -"FlatCAM Gerber.\n" -"Na seção Trabalho CNC é chamado de >Diâmetro da Ferramenta<." - -#: AppTools/ToolCalculators.py:139 AppTools/ToolCalculators.py:235 -msgid "Calculate" -msgstr "Calcular" - -#: AppTools/ToolCalculators.py:142 -msgid "" -"Calculate either the Cut Z or the effective tool diameter,\n" -" depending on which is desired and which is known. " -msgstr "" -"Calcula a Profundidade de Corte Z ou o diâmetro efetivo da\n" -"ferramenta, dependendo do que é desejado e do que é conhecido. " - -#: AppTools/ToolCalculators.py:205 -msgid "Current Value" -msgstr "Valor da Corrente" - -#: AppTools/ToolCalculators.py:212 -msgid "" -"This is the current intensity value\n" -"to be set on the Power Supply. In Amps." -msgstr "" -"Este é o valor de intensidade de corrente\n" -"a ser ajustado na fonte de alimentação. Em Ampères." - -#: AppTools/ToolCalculators.py:216 -msgid "Time" -msgstr "Tempo" - -#: AppTools/ToolCalculators.py:223 -msgid "" -"This is the calculated time required for the procedure.\n" -"In minutes." -msgstr "Tempo calculado necessário para o procedimento, em minutos." - -#: AppTools/ToolCalculators.py:238 -msgid "" -"Calculate the current intensity value and the procedure time,\n" -"depending on the parameters above" -msgstr "" -"Calcula o valor da intensidade atual e o tempo do\n" -"procedimento, dependendo dos parâmetros acima" - -#: AppTools/ToolCalculators.py:299 -msgid "Calc. Tool" -msgstr "Calculadoras" - -#: AppTools/ToolCalibration.py:69 -msgid "Parameters used when creating the GCode in this tool." -msgstr "Parâmetros usados nesta ferramenta para criar o G-Code." - -#: AppTools/ToolCalibration.py:173 -msgid "STEP 1: Acquire Calibration Points" -msgstr "PASSO 1: Adquirir Pontos de Calibração" - -#: AppTools/ToolCalibration.py:175 -msgid "" -"Pick four points by clicking on canvas.\n" -"Those four points should be in the four\n" -"(as much as possible) corners of the object." -msgstr "" -"Escolha quatro pontos clicando na tela.\n" -"Esses quatro pontos devem estar nos quatro\n" -"(o máximo possível) cantos do objeto." - -#: AppTools/ToolCalibration.py:193 AppTools/ToolFilm.py:71 -#: AppTools/ToolImage.py:54 AppTools/ToolPanelize.py:77 -#: AppTools/ToolProperties.py:177 -msgid "Object Type" -msgstr "Tipo de Objeto" - -#: AppTools/ToolCalibration.py:210 -msgid "Source object selection" -msgstr "Seleção do objeto fonte" - -#: AppTools/ToolCalibration.py:212 -msgid "FlatCAM Object to be used as a source for reference points." -msgstr "Objeto FlatCAM a ser usado como fonte para os pontos de referência." - -#: AppTools/ToolCalibration.py:218 -msgid "Calibration Points" -msgstr "Pontos de Calibração" - -#: AppTools/ToolCalibration.py:220 -msgid "" -"Contain the expected calibration points and the\n" -"ones measured." -msgstr "" -"Contém os pontos de calibração esperados e\n" -"os medidos." - -#: AppTools/ToolCalibration.py:235 AppTools/ToolSub.py:81 -#: AppTools/ToolSub.py:136 -msgid "Target" -msgstr "Alvo" - -#: AppTools/ToolCalibration.py:236 -msgid "Found Delta" -msgstr "Delta Encontrado" - -#: AppTools/ToolCalibration.py:248 -msgid "Bot Left X" -msgstr "Esquerda Inferior X" - -#: AppTools/ToolCalibration.py:257 -msgid "Bot Left Y" -msgstr "Esquerda Inferior Y" - -#: AppTools/ToolCalibration.py:275 -msgid "Bot Right X" -msgstr "Direita Inferior X" - -#: AppTools/ToolCalibration.py:285 -msgid "Bot Right Y" -msgstr "Direita Inferior Y" - -#: AppTools/ToolCalibration.py:300 -msgid "Top Left X" -msgstr "Esquerda Superior X" - -#: AppTools/ToolCalibration.py:309 -msgid "Top Left Y" -msgstr "Esquerda Superior Y" - -#: AppTools/ToolCalibration.py:324 -msgid "Top Right X" -msgstr "Direita Superior X" - -#: AppTools/ToolCalibration.py:334 -msgid "Top Right Y" -msgstr "Direita Superior Y" - -#: AppTools/ToolCalibration.py:367 -msgid "Get Points" -msgstr "Obter Pontos" - -#: AppTools/ToolCalibration.py:369 -msgid "" -"Pick four points by clicking on canvas if the source choice\n" -"is 'free' or inside the object geometry if the source is 'object'.\n" -"Those four points should be in the four squares of\n" -"the object." -msgstr "" -"Escolha quatro pontos clicando na tela se a opção de origem\n" -"for 'livre' ou dentro da geometria do objeto se a origem for 'objeto'.\n" -"Esses quatro pontos devem estar nos quatro cantos do\n" -"objeto." - -#: AppTools/ToolCalibration.py:390 -msgid "STEP 2: Verification GCode" -msgstr "PASSO 2: G-Code de Verificação" - -#: AppTools/ToolCalibration.py:392 AppTools/ToolCalibration.py:405 -msgid "" -"Generate GCode file to locate and align the PCB by using\n" -"the four points acquired above.\n" -"The points sequence is:\n" -"- first point -> set the origin\n" -"- second point -> alignment point. Can be: top-left or bottom-right.\n" -"- third point -> check point. Can be: top-left or bottom-right.\n" -"- forth point -> final verification point. Just for evaluation." -msgstr "" -"Gere o arquivo G-Code para localizar e alinhar o PCB usando\n" -"os quatro pontos adquiridos acima.\n" -"A sequência de pontos é:\n" -"- primeiro ponto -> defina a origem\n" -"- segundo ponto -> ponto de alinhamento. Pode ser: superior esquerdo ou " -"inferior direito.\n" -"- terceiro ponto -> ponto de verificação. Pode ser: superior esquerdo ou " -"inferior direito.\n" -"- quarto ponto -> ponto de verificação final. Apenas para avaliação." - -#: AppTools/ToolCalibration.py:403 AppTools/ToolSolderPaste.py:344 -msgid "Generate GCode" -msgstr "Gerar o G-Code" - -#: AppTools/ToolCalibration.py:429 -msgid "STEP 3: Adjustments" -msgstr "PASSO 3: Ajustes" - -#: AppTools/ToolCalibration.py:431 AppTools/ToolCalibration.py:440 -msgid "" -"Calculate Scale and Skew factors based on the differences (delta)\n" -"found when checking the PCB pattern. The differences must be filled\n" -"in the fields Found (Delta)." -msgstr "" -"Calcular fatores de escala e de inclinação com base nas diferenças (delta)\n" -"encontradas ao verificar o padrão PCB. As diferenças devem ser preenchidas\n" -"nos campos Encontrados (Delta)." - -#: AppTools/ToolCalibration.py:438 -msgid "Calculate Factors" -msgstr "Calculas Fatores" - -#: AppTools/ToolCalibration.py:460 -msgid "STEP 4: Adjusted GCode" -msgstr "PASSO 4: G-Code ajustado" - -#: AppTools/ToolCalibration.py:462 -msgid "" -"Generate verification GCode file adjusted with\n" -"the factors above." -msgstr "" -"Gera o arquivo G-Code de verificação ajustado com\n" -"os fatores acima." - -#: AppTools/ToolCalibration.py:467 -msgid "Scale Factor X:" -msgstr "Fator de Escala X:" - -#: AppTools/ToolCalibration.py:479 -msgid "Scale Factor Y:" -msgstr "Fator de Escala Y:" - -#: AppTools/ToolCalibration.py:491 -msgid "Apply Scale Factors" -msgstr "Aplicar Fatores de Escala" - -#: AppTools/ToolCalibration.py:493 -msgid "Apply Scale factors on the calibration points." -msgstr "Aplica os fatores de escala nos pontos de calibração." - -#: AppTools/ToolCalibration.py:503 -msgid "Skew Angle X:" -msgstr "Ângulo de inclinação X:" - -#: AppTools/ToolCalibration.py:516 -msgid "Skew Angle Y:" -msgstr "Ângulo de inclinação Y:" - -#: AppTools/ToolCalibration.py:529 -msgid "Apply Skew Factors" -msgstr "Aplicar Fatores de Inclinação" - -#: AppTools/ToolCalibration.py:531 -msgid "Apply Skew factors on the calibration points." -msgstr "Aplica os fatores de inclinação nos pontos de calibração." - -#: AppTools/ToolCalibration.py:600 -msgid "Generate Adjusted GCode" -msgstr "Gerar o G-Code Ajustado" - -#: AppTools/ToolCalibration.py:602 -msgid "" -"Generate verification GCode file adjusted with\n" -"the factors set above.\n" -"The GCode parameters can be readjusted\n" -"before clicking this button." -msgstr "" -"Gera o arquivo G-Code de verificação ajustado com\n" -"os fatores definidos acima.\n" -"Os parâmetros do G-Code podem ser reajustados\n" -"antes de clicar neste botão." - -#: AppTools/ToolCalibration.py:623 -msgid "STEP 5: Calibrate FlatCAM Objects" -msgstr "PASSO 5: Calibrar Objetos FlatCAM" - -#: AppTools/ToolCalibration.py:625 -msgid "" -"Adjust the FlatCAM objects\n" -"with the factors determined and verified above." -msgstr "" -"Ajustar os objetos FlatCAM\n" -"com os fatores determinados e verificados acima." - -#: AppTools/ToolCalibration.py:637 -msgid "Adjusted object type" -msgstr "Tipo de objeto ajustado" - -#: AppTools/ToolCalibration.py:638 -msgid "Type of the FlatCAM Object to be adjusted." -msgstr "Tipo do objeto FlatCAM a ser ajustado." - -#: AppTools/ToolCalibration.py:651 -msgid "Adjusted object selection" -msgstr "Seleção do objeto ajustado" - -#: AppTools/ToolCalibration.py:653 -msgid "The FlatCAM Object to be adjusted." -msgstr "Objeto FlatCAM a ser ajustado." - -#: AppTools/ToolCalibration.py:660 -msgid "Calibrate" -msgstr "Calibrar" - -#: AppTools/ToolCalibration.py:662 -msgid "" -"Adjust (scale and/or skew) the objects\n" -"with the factors determined above." -msgstr "" -"Ajustar (dimensionar e/ou inclinar) os objetos\n" -"com os fatores determinados acima." - -#: AppTools/ToolCalibration.py:770 AppTools/ToolCalibration.py:771 -msgid "Origin" -msgstr "Origem" - -#: AppTools/ToolCalibration.py:800 -msgid "Tool initialized" -msgstr "Ferramenta inicializada" - -#: AppTools/ToolCalibration.py:838 -msgid "There is no source FlatCAM object selected..." -msgstr "Não há nenhum objeto FlatCAM de origem selecionado..." - -#: AppTools/ToolCalibration.py:859 -msgid "Get First calibration point. Bottom Left..." -msgstr "Obtenha o primeiro ponto de calibração. Inferior Esquerdo..." - -#: AppTools/ToolCalibration.py:926 -msgid "Get Second calibration point. Bottom Right (Top Left)..." -msgstr "" -"Obtenha o segundo ponto de calibração. Inferior direito (canto superior " -"esquerdo) ..." - -#: AppTools/ToolCalibration.py:930 -msgid "Get Third calibration point. Top Left (Bottom Right)..." -msgstr "" -"Obtenha o terceiro ponto de calibração. Superior esquerdo (canto inferior " -"direito) ..." - -#: AppTools/ToolCalibration.py:934 -msgid "Get Forth calibration point. Top Right..." -msgstr "Obtenha o quarto ponto de calibração. Superior Direito..." - -#: AppTools/ToolCalibration.py:938 -msgid "Done. All four points have been acquired." -msgstr "Feito. Todos os quatro pontos foram adquiridos." - -#: AppTools/ToolCalibration.py:969 -msgid "Verification GCode for FlatCAM Calibration Tool" -msgstr "G-Code de Verificação para a Ferramenta de Calibração FlatCAM" - -#: AppTools/ToolCalibration.py:981 AppTools/ToolCalibration.py:1067 -msgid "Gcode Viewer" -msgstr "G-Code Viewer" - -#: AppTools/ToolCalibration.py:997 -msgid "Cancelled. Four points are needed for GCode generation." -msgstr "Cancelado. São necessários quatro pontos para a geração do G-Code." - -#: AppTools/ToolCalibration.py:1253 AppTools/ToolCalibration.py:1349 -msgid "There is no FlatCAM object selected..." -msgstr "Não há nenhum objeto FlatCAM selecionado ..." - -#: AppTools/ToolCopperThieving.py:76 AppTools/ToolFiducials.py:264 -msgid "Gerber Object to which will be added a copper thieving." -msgstr "Objeto Gerber ao qual será adicionada uma adição de cobre." - -#: AppTools/ToolCopperThieving.py:102 -msgid "" -"This set the distance between the copper thieving components\n" -"(the polygon fill may be split in multiple polygons)\n" -"and the copper traces in the Gerber file." -msgstr "" -"Define a distância entre os componentes de adição de cobre\n" -"(o preenchimento de polígono pode ser dividido em vários polígonos)\n" -"e os vestígios de cobre no arquivo Gerber." - -#: AppTools/ToolCopperThieving.py:135 -msgid "" -"- 'Itself' - the copper thieving extent is based on the object extent.\n" -"- 'Area Selection' - left mouse click to start selection of the area to be " -"filled.\n" -"- 'Reference Object' - will do copper thieving within the area specified by " -"another object." -msgstr "" -"- 'Próprio' - a extensão do Copper Thieving é baseada na extensão do " -"objeto.\n" -"- 'Seleção de área' - clique esquerdo do mouse para iniciar a seleção da " -"área a ser preenchida.\n" -"- 'Objeto de referência' - fará Copper Thieving dentro da área especificada " -"por outro objeto." - -#: AppTools/ToolCopperThieving.py:142 AppTools/ToolIsolation.py:511 -#: AppTools/ToolNCC.py:552 AppTools/ToolPaint.py:495 -msgid "Ref. Type" -msgstr "Tipo de Ref" - -#: AppTools/ToolCopperThieving.py:144 -msgid "" -"The type of FlatCAM object to be used as copper thieving reference.\n" -"It can be Gerber, Excellon or Geometry." -msgstr "" -"O tipo de objeto FlatCAM a ser usado como referência para adição de cobre.\n" -"Pode ser Gerber, Excellon ou Geometria." - -#: AppTools/ToolCopperThieving.py:153 AppTools/ToolIsolation.py:522 -#: AppTools/ToolNCC.py:562 AppTools/ToolPaint.py:505 -msgid "Ref. Object" -msgstr "Objeto de Ref" - -#: AppTools/ToolCopperThieving.py:155 AppTools/ToolIsolation.py:524 -#: AppTools/ToolNCC.py:564 AppTools/ToolPaint.py:507 -msgid "The FlatCAM object to be used as non copper clearing reference." -msgstr "O objeto FlatCAM a ser usado como referência para retirada de cobre." - -#: AppTools/ToolCopperThieving.py:331 -msgid "Insert Copper thieving" -msgstr "Inserir adição de cobre" - -#: AppTools/ToolCopperThieving.py:333 -msgid "" -"Will add a polygon (may be split in multiple parts)\n" -"that will surround the actual Gerber traces at a certain distance." -msgstr "" -"Adicionará um polígono (pode ser dividido em várias partes)\n" -"que cercará os traços atuais de Gerber a uma certa distância." - -#: AppTools/ToolCopperThieving.py:392 -msgid "Insert Robber Bar" -msgstr "Inserir Barra" - -#: AppTools/ToolCopperThieving.py:394 -msgid "" -"Will add a polygon with a defined thickness\n" -"that will surround the actual Gerber object\n" -"at a certain distance.\n" -"Required when doing holes pattern plating." -msgstr "" -"Adicionará um polígono com uma espessura definida\n" -"que cercará o objeto Gerber atual\n" -"a uma certa distância.\n" -"Necessário ao fazer o padrão de furos." - -#: AppTools/ToolCopperThieving.py:418 -msgid "Select Soldermask object" -msgstr "Selecionar objeto Máscara de Solda" - -#: AppTools/ToolCopperThieving.py:420 -msgid "" -"Gerber Object with the soldermask.\n" -"It will be used as a base for\n" -"the pattern plating mask." -msgstr "" -"Objeto Gerber com a Máscara de Solda.\n" -"Será usado como base para\n" -"a máscara de revestimento padrão." - -#: AppTools/ToolCopperThieving.py:449 -msgid "Plated area" -msgstr "Área revestida" - -#: AppTools/ToolCopperThieving.py:451 -msgid "" -"The area to be plated by pattern plating.\n" -"Basically is made from the openings in the plating mask.\n" -"\n" -"<> - the calculated area is actually a bit larger\n" -"due of the fact that the soldermask openings are by design\n" -"a bit larger than the copper pads, and this area is\n" -"calculated from the soldermask openings." -msgstr "" -"A área a ser revestida pelo revestimento padrão.\n" -"Basicamente é feito a partir das aberturas na máscara de revestimento.\n" -"\n" -"<> - a área calculada é realmente um pouco maior\n" -"devido ao fato de que as aberturas da máscara de solda são projetadas\n" -"um pouco maior que os pads de cobre, e essa área é\n" -"calculada a partir das aberturas da máscara de solda." - -#: AppTools/ToolCopperThieving.py:462 -msgid "mm" -msgstr "mm" - -#: AppTools/ToolCopperThieving.py:464 -msgid "in" -msgstr "in" - -#: AppTools/ToolCopperThieving.py:471 -msgid "Generate pattern plating mask" -msgstr "Gerar máscara de revestimento padrão" - -#: AppTools/ToolCopperThieving.py:473 -msgid "" -"Will add to the soldermask gerber geometry\n" -"the geometries of the copper thieving and/or\n" -"the robber bar if those were generated." -msgstr "" -"Adicionará à geometria do gerber máscara de solda\n" -"as geometrias da adição de cobre e/ou\n" -"a barra, se elas foram geradas." - -#: AppTools/ToolCopperThieving.py:629 AppTools/ToolCopperThieving.py:654 -msgid "Lines Grid works only for 'itself' reference ..." -msgstr "Linhas funciona apenas para referência 'própria' ..." - -#: AppTools/ToolCopperThieving.py:640 -msgid "Solid fill selected." -msgstr "Preenchimento sólido selecionado." - -#: AppTools/ToolCopperThieving.py:645 -msgid "Dots grid fill selected." -msgstr "Preenchimento de pontos selecionado." - -#: AppTools/ToolCopperThieving.py:650 -msgid "Squares grid fill selected." -msgstr "Preenchimento de quadrados selecionado." - -#: AppTools/ToolCopperThieving.py:671 AppTools/ToolCopperThieving.py:753 -#: AppTools/ToolCopperThieving.py:1355 AppTools/ToolCorners.py:268 -#: AppTools/ToolDblSided.py:657 AppTools/ToolExtractDrills.py:436 -#: AppTools/ToolFiducials.py:470 AppTools/ToolFiducials.py:747 -#: AppTools/ToolOptimal.py:348 AppTools/ToolPunchGerber.py:512 -#: AppTools/ToolQRCode.py:435 -msgid "There is no Gerber object loaded ..." -msgstr "Não há objeto Gerber carregado ..." - -#: AppTools/ToolCopperThieving.py:684 AppTools/ToolCopperThieving.py:1283 -msgid "Append geometry" -msgstr "Anexar geometria" - -#: AppTools/ToolCopperThieving.py:728 AppTools/ToolCopperThieving.py:1316 -#: AppTools/ToolCopperThieving.py:1469 -msgid "Append source file" -msgstr "Anexar arquivo fonte" - -#: AppTools/ToolCopperThieving.py:736 AppTools/ToolCopperThieving.py:1324 -msgid "Copper Thieving Tool done." -msgstr "Área de Adição de Cobre." - -#: AppTools/ToolCopperThieving.py:763 AppTools/ToolCopperThieving.py:796 -#: AppTools/ToolCutOut.py:556 AppTools/ToolCutOut.py:761 -#: AppTools/ToolEtchCompensation.py:360 AppTools/ToolInvertGerber.py:211 -#: AppTools/ToolIsolation.py:1585 AppTools/ToolIsolation.py:1612 -#: AppTools/ToolNCC.py:1617 AppTools/ToolNCC.py:1661 AppTools/ToolNCC.py:1690 -#: AppTools/ToolPaint.py:1493 AppTools/ToolPanelize.py:423 -#: AppTools/ToolPanelize.py:437 AppTools/ToolSub.py:295 AppTools/ToolSub.py:308 -#: AppTools/ToolSub.py:499 AppTools/ToolSub.py:514 -#: tclCommands/TclCommandCopperClear.py:97 tclCommands/TclCommandPaint.py:99 -msgid "Could not retrieve object" -msgstr "Não foi possível recuperar o objeto" - -#: AppTools/ToolCopperThieving.py:773 AppTools/ToolIsolation.py:1672 -#: AppTools/ToolNCC.py:1669 Common.py:210 -msgid "Click the start point of the area." -msgstr "Clique no ponto inicial da área." - -#: AppTools/ToolCopperThieving.py:824 -msgid "Click the end point of the filling area." -msgstr "Clique no ponto final da área de preenchimento." - -#: AppTools/ToolCopperThieving.py:830 AppTools/ToolIsolation.py:2504 -#: AppTools/ToolIsolation.py:2556 AppTools/ToolNCC.py:1731 -#: AppTools/ToolNCC.py:1783 AppTools/ToolPaint.py:1625 -#: AppTools/ToolPaint.py:1676 Common.py:275 Common.py:377 -msgid "Zone added. Click to start adding next zone or right click to finish." -msgstr "" -"Zona adicionada. Clique para iniciar a adição da próxima zona ou clique com " -"o botão direito para terminar." - -#: AppTools/ToolCopperThieving.py:952 AppTools/ToolCopperThieving.py:956 -#: AppTools/ToolCopperThieving.py:1017 -msgid "Thieving" -msgstr "Adição" - -#: AppTools/ToolCopperThieving.py:963 -msgid "Copper Thieving Tool started. Reading parameters." -msgstr "Ferramenta de Adição de Cobre iniciada. Lendo parâmetros." - -#: AppTools/ToolCopperThieving.py:988 -msgid "Copper Thieving Tool. Preparing isolation polygons." -msgstr "Ferramenta de Adição de Cobre. Preparando polígonos de isolação." - -#: AppTools/ToolCopperThieving.py:1033 -msgid "Copper Thieving Tool. Preparing areas to fill with copper." -msgstr "" -"Ferramenta de Adição de Cobre. Preparando áreas para preencher com cobre." - -#: AppTools/ToolCopperThieving.py:1044 AppTools/ToolOptimal.py:355 -#: AppTools/ToolPanelize.py:810 AppTools/ToolRulesCheck.py:1127 -msgid "Working..." -msgstr "Trabalhando..." - -#: AppTools/ToolCopperThieving.py:1071 -msgid "Geometry not supported for bounding box" -msgstr "Geometria não suportada para caixa delimitadora" - -#: AppTools/ToolCopperThieving.py:1077 AppTools/ToolNCC.py:1962 -#: AppTools/ToolNCC.py:2017 AppTools/ToolNCC.py:3052 AppTools/ToolPaint.py:3405 -msgid "No object available." -msgstr "Nenhum objeto disponível." - -#: AppTools/ToolCopperThieving.py:1114 AppTools/ToolNCC.py:1987 -#: AppTools/ToolNCC.py:2040 AppTools/ToolNCC.py:3094 -msgid "The reference object type is not supported." -msgstr "O tipo do objeto de referência não é suportado." - -#: AppTools/ToolCopperThieving.py:1119 -msgid "Copper Thieving Tool. Appending new geometry and buffering." -msgstr "Ferramenta de Adição de Cobre. Anexando nova geometria e buffer." - -#: AppTools/ToolCopperThieving.py:1135 -msgid "Create geometry" -msgstr "Criar Geometria" - -#: AppTools/ToolCopperThieving.py:1335 AppTools/ToolCopperThieving.py:1339 -msgid "P-Plating Mask" -msgstr "Máscara de Revestimento Padrão" - -#: AppTools/ToolCopperThieving.py:1361 -msgid "Append PP-M geometry" -msgstr "Anexar geometria" - -#: AppTools/ToolCopperThieving.py:1487 -msgid "Generating Pattern Plating Mask done." -msgstr "Geração de Máscara de Revestimento Padrão concluída." - -#: AppTools/ToolCopperThieving.py:1559 -msgid "Copper Thieving Tool exit." -msgstr "Sair da Ferramenta de Adição de Cobre." - -#: AppTools/ToolCorners.py:57 -#, fuzzy -#| msgid "Gerber Object to which will be added a copper thieving." -msgid "The Gerber object to which will be added corner markers." -msgstr "Objeto Gerber ao qual será adicionada uma adição de cobre." - -#: AppTools/ToolCorners.py:73 -#, fuzzy -#| msgid "Location" -msgid "Locations" -msgstr "Localização" - -#: AppTools/ToolCorners.py:75 -msgid "Locations where to place corner markers." -msgstr "" - -#: AppTools/ToolCorners.py:92 AppTools/ToolFiducials.py:95 -msgid "Top Right" -msgstr "Direita Superior" - -#: AppTools/ToolCorners.py:101 -#, fuzzy -#| msgid "Toggle Panel" -msgid "Toggle ALL" -msgstr "Alternar Painel" - -#: AppTools/ToolCorners.py:167 -#, fuzzy -#| msgid "Add Track" -msgid "Add Marker" -msgstr "Adicionar Trilha" - -#: AppTools/ToolCorners.py:169 -msgid "Will add corner markers to the selected Gerber file." -msgstr "" - -#: AppTools/ToolCorners.py:235 -#, fuzzy -#| msgid "QRCode Tool" -msgid "Corners Tool" -msgstr "Ferramenta de QRCode" - -#: AppTools/ToolCorners.py:305 -msgid "Please select at least a location" -msgstr "" - -#: AppTools/ToolCorners.py:440 -#, fuzzy -#| msgid "Copper Thieving Tool exit." -msgid "Corners Tool exit." -msgstr "Sair da Ferramenta de Adição de Cobre." - -#: AppTools/ToolCutOut.py:41 -msgid "Cutout PCB" -msgstr "Recorte PCB" - -#: AppTools/ToolCutOut.py:69 AppTools/ToolPanelize.py:53 -msgid "Source Object" -msgstr "Objeto Fonte" - -#: AppTools/ToolCutOut.py:70 -msgid "Object to be cutout" -msgstr "Objeto a ser recortado" - -#: AppTools/ToolCutOut.py:75 -msgid "Kind" -msgstr "Tipo" - -#: AppTools/ToolCutOut.py:97 -msgid "" -"Specify the type of object to be cutout.\n" -"It can be of type: Gerber or Geometry.\n" -"What is selected here will dictate the kind\n" -"of objects that will populate the 'Object' combobox." -msgstr "" -"Especifica o tipo de objeto a ser cortado.\n" -"Pode ser do tipo: Gerber ou Geometria.\n" -"O que estiver selecionado aqui irá ditar o tipo\n" -"de objetos que preencherão a caixa de combinação 'Objeto'." - -#: AppTools/ToolCutOut.py:121 -msgid "Tool Parameters" -msgstr "Parâmetros de Ferramenta" - -#: AppTools/ToolCutOut.py:238 -msgid "A. Automatic Bridge Gaps" -msgstr "A. Pontes Automáticas" - -#: AppTools/ToolCutOut.py:240 -msgid "This section handle creation of automatic bridge gaps." -msgstr "Esta seção trata da criação de pontes automáticas." - -#: AppTools/ToolCutOut.py:247 -msgid "" -"Number of gaps used for the Automatic cutout.\n" -"There can be maximum 8 bridges/gaps.\n" -"The choices are:\n" -"- None - no gaps\n" -"- lr - left + right\n" -"- tb - top + bottom\n" -"- 4 - left + right +top + bottom\n" -"- 2lr - 2*left + 2*right\n" -"- 2tb - 2*top + 2*bottom\n" -"- 8 - 2*left + 2*right +2*top + 2*bottom" -msgstr "" -"Número de pontes utilizadas no recorte automático.\n" -"Pode haver um máximo de 8 pontes/lacunas.\n" -"As opções são:\n" -"- Nenhum - sem pontes\n" -"- LR - esquerda + direita\n" -"- TB - topo + baixo\n" -"- 4 - esquerda + direita + topo + baixo\n" -"- 2LR - 2*esquerda + 2*direita\n" -"- 2TB - 2*topo + 2*baixo\n" -"- 8 - 2*esquerda + 2*direita + 2*topo + 2*baixo" - -#: AppTools/ToolCutOut.py:269 -msgid "Generate Freeform Geometry" -msgstr "Gerar Geometria de Forma Livre" - -#: AppTools/ToolCutOut.py:271 -msgid "" -"Cutout the selected object.\n" -"The cutout shape can be of any shape.\n" -"Useful when the PCB has a non-rectangular shape." -msgstr "" -"Recorta o objeto selecionado.\n" -"O recorte pode ter qualquer forma.\n" -"Útil quando o PCB tem uma forma não retangular." - -#: AppTools/ToolCutOut.py:283 -msgid "Generate Rectangular Geometry" -msgstr "Gerar Geometria Retangular" - -#: AppTools/ToolCutOut.py:285 -msgid "" -"Cutout the selected object.\n" -"The resulting cutout shape is\n" -"always a rectangle shape and it will be\n" -"the bounding box of the Object." -msgstr "" -"Recorta o objeto selecionado.\n" -"O recorte resultante é\n" -"sempre em forma de retângulo e será\n" -"a caixa delimitadora do objeto." - -#: AppTools/ToolCutOut.py:304 -msgid "B. Manual Bridge Gaps" -msgstr "B. Pontes Manuais" - -#: AppTools/ToolCutOut.py:306 -msgid "" -"This section handle creation of manual bridge gaps.\n" -"This is done by mouse clicking on the perimeter of the\n" -"Geometry object that is used as a cutout object. " -msgstr "" -"Esta seção trata da criação de pontes manuais.\n" -"Isso é feito clicando com o mouse no perímetro do objeto\n" -"de Geometria que é usado como objeto de recorte. " - -#: AppTools/ToolCutOut.py:321 -msgid "Geometry object used to create the manual cutout." -msgstr "Objeto de geometria usado para criar o recorte manual." - -#: AppTools/ToolCutOut.py:328 -msgid "Generate Manual Geometry" -msgstr "Gerar Geometria Manual" - -#: AppTools/ToolCutOut.py:330 -msgid "" -"If the object to be cutout is a Gerber\n" -"first create a Geometry that surrounds it,\n" -"to be used as the cutout, if one doesn't exist yet.\n" -"Select the source Gerber file in the top object combobox." -msgstr "" -"Se o objeto a ser recortado for um Gerber\n" -"primeiro crie uma Geometria que o rodeia,\n" -"para ser usado como recorte, caso ainda não exista.\n" -"Selecione o arquivo Gerber de origem na combobox do objeto." - -#: AppTools/ToolCutOut.py:343 -msgid "Manual Add Bridge Gaps" -msgstr "Adicionar Pontes Manuais" - -#: AppTools/ToolCutOut.py:345 -msgid "" -"Use the left mouse button (LMB) click\n" -"to create a bridge gap to separate the PCB from\n" -"the surrounding material.\n" -"The LMB click has to be done on the perimeter of\n" -"the Geometry object used as a cutout geometry." -msgstr "" -"Use o botão esquerdo do mouse (BEM): clique\n" -"para criar uma ponte para separar a PCB do material adjacente.\n" -"O clique deve ser feito no perímetro\n" -"do objeto Geometria usado como uma geometria de recorte." - -#: AppTools/ToolCutOut.py:561 -msgid "" -"There is no object selected for Cutout.\n" -"Select one and try again." -msgstr "" -"Não há objeto selecionado para Recorte.\n" -"Selecione um e tente novamente." - -#: AppTools/ToolCutOut.py:567 AppTools/ToolCutOut.py:770 -#: AppTools/ToolCutOut.py:951 AppTools/ToolCutOut.py:1033 -#: tclCommands/TclCommandGeoCutout.py:184 -msgid "Tool Diameter is zero value. Change it to a positive real number." -msgstr "" -"O diâmetro da ferramenta está zerado. Mude para um número real positivo." - -#: AppTools/ToolCutOut.py:581 AppTools/ToolCutOut.py:785 -msgid "Number of gaps value is missing. Add it and retry." -msgstr "O número de pontes está ausente. Altere e tente novamente." - -#: AppTools/ToolCutOut.py:586 AppTools/ToolCutOut.py:789 -msgid "" -"Gaps value can be only one of: 'None', 'lr', 'tb', '2lr', '2tb', 4 or 8. " -"Fill in a correct value and retry. " -msgstr "" -"O valor das lacunas pode ser apenas um de: 'Nenhum', 'lr', 'tb', '2lr', " -"'2tb', 4 ou 8. Preencha um valor correto e tente novamente. " - -#: AppTools/ToolCutOut.py:591 AppTools/ToolCutOut.py:795 -msgid "" -"Cutout operation cannot be done on a multi-geo Geometry.\n" -"Optionally, this Multi-geo Geometry can be converted to Single-geo " -"Geometry,\n" -"and after that perform Cutout." -msgstr "" -"A operação de recorte não pode ser feita em uma Geometria multi-geo.\n" -"Opcionalmente, essa Geometria Multi-Geo pode ser convertida em Geometria " -"Única,\n" -"e depois disso, executar Recorte." - -#: AppTools/ToolCutOut.py:743 AppTools/ToolCutOut.py:940 -msgid "Any form CutOut operation finished." -msgstr "Recorte concluído." - -#: AppTools/ToolCutOut.py:765 AppTools/ToolEtchCompensation.py:366 -#: AppTools/ToolInvertGerber.py:217 AppTools/ToolIsolation.py:1589 -#: AppTools/ToolIsolation.py:1616 AppTools/ToolNCC.py:1621 -#: AppTools/ToolPaint.py:1416 AppTools/ToolPanelize.py:428 -#: tclCommands/TclCommandBbox.py:71 tclCommands/TclCommandNregions.py:71 -msgid "Object not found" -msgstr "Objeto não encontrado" - -#: AppTools/ToolCutOut.py:909 -msgid "Rectangular cutout with negative margin is not possible." -msgstr "Recorte retangular com margem negativa não é possível." - -#: AppTools/ToolCutOut.py:945 -msgid "" -"Click on the selected geometry object perimeter to create a bridge gap ..." -msgstr "" -"Clique no perímetro do objeto de geometria selecionado para criar uma " -"ponte ..." - -#: AppTools/ToolCutOut.py:962 AppTools/ToolCutOut.py:988 -msgid "Could not retrieve Geometry object" -msgstr "Não foi possível recuperar o objeto Geometria" - -#: AppTools/ToolCutOut.py:993 -msgid "Geometry object for manual cutout not found" -msgstr "Objeto de geometria para recorte manual não encontrado" - -#: AppTools/ToolCutOut.py:1003 -msgid "Added manual Bridge Gap." -msgstr "Ponte Manual Adicionada." - -#: AppTools/ToolCutOut.py:1015 -msgid "Could not retrieve Gerber object" -msgstr "Não foi possível recuperar o objeto Gerber" - -#: AppTools/ToolCutOut.py:1020 -msgid "" -"There is no Gerber object selected for Cutout.\n" -"Select one and try again." -msgstr "" -"Não há nenhum objeto Gerber selecionado para o Recorte.\n" -"Selecione um e tente novamente." - -#: AppTools/ToolCutOut.py:1026 -msgid "" -"The selected object has to be of Gerber type.\n" -"Select a Gerber file and try again." -msgstr "" -"O objeto selecionado deve ser do tipo Gerber.\n" -"Selecione um arquivo Gerber e tente novamente." - -#: AppTools/ToolCutOut.py:1061 -msgid "Geometry not supported for cutout" -msgstr "Geometria não suportada para recorte" - -#: AppTools/ToolCutOut.py:1136 -msgid "Making manual bridge gap..." -msgstr "Fazendo ponte manual..." - -#: AppTools/ToolDblSided.py:26 -msgid "2-Sided PCB" -msgstr "PCB de 2 faces" - -#: AppTools/ToolDblSided.py:52 -msgid "Mirror Operation" -msgstr "Operação Espelho" - -#: AppTools/ToolDblSided.py:53 -msgid "Objects to be mirrored" -msgstr "Objetos a espelhar" - -#: AppTools/ToolDblSided.py:65 -msgid "Gerber to be mirrored" -msgstr "Gerber a espelhar" - -#: AppTools/ToolDblSided.py:69 AppTools/ToolDblSided.py:97 -#: AppTools/ToolDblSided.py:127 -msgid "" -"Mirrors (flips) the specified object around \n" -"the specified axis. Does not create a new \n" -"object, but modifies it." -msgstr "" -"Espelha (inverte) o objeto especificado em torno do eixo especificado.\n" -"Não é criado um novo objeto, o objeto atual é modificado." - -#: AppTools/ToolDblSided.py:93 -msgid "Excellon Object to be mirrored." -msgstr "Objeto Excellon a ser espelhado." - -#: AppTools/ToolDblSided.py:122 -msgid "Geometry Obj to be mirrored." -msgstr "Objeto Geometria a ser espelhado." - -#: AppTools/ToolDblSided.py:158 -msgid "Mirror Parameters" -msgstr "Parâmetros de Espelho" - -#: AppTools/ToolDblSided.py:159 -msgid "Parameters for the mirror operation" -msgstr "Parâmetros para a operação de espelhamento" - -#: AppTools/ToolDblSided.py:164 -msgid "Mirror Axis" -msgstr "Espelhar Eixo" - -#: AppTools/ToolDblSided.py:175 -msgid "" -"The coordinates used as reference for the mirror operation.\n" -"Can be:\n" -"- Point -> a set of coordinates (x,y) around which the object is mirrored\n" -"- Box -> a set of coordinates (x, y) obtained from the center of the\n" -"bounding box of another object selected below" -msgstr "" -"As coordenadas usadas como referência para a operação de espelho.\n" -"Pode ser:\n" -"- Ponto -> um conjunto de coordenadas (x, y) em torno do qual o objeto é " -"espelhado\n" -"- Caixa -> um conjunto de coordenadas (x, y) obtidas do centro da\n" -"caixa delimitadora de outro objeto selecionado abaixo" - -#: AppTools/ToolDblSided.py:189 -msgid "Point coordinates" -msgstr "Coords dos pontos" - -#: AppTools/ToolDblSided.py:194 -msgid "" -"Add the coordinates in format (x, y) through which the mirroring " -"axis\n" -" selected in 'MIRROR AXIS' pass.\n" -"The (x, y) coordinates are captured by pressing SHIFT key\n" -"and left mouse button click on canvas or you can enter the coordinates " -"manually." -msgstr "" -"Adicione as coordenadas no formato (x, y) para o eixo de espelhamento " -"passar.\n" -"As coordenadas (x, y) são capturadas pressionando a tecla SHIFT\n" -"e clicar o botão esquerdo do mouse na tela ou inseridas manualmente." - -#: AppTools/ToolDblSided.py:218 -msgid "" -"It can be of type: Gerber or Excellon or Geometry.\n" -"The coordinates of the center of the bounding box are used\n" -"as reference for mirror operation." -msgstr "" -"Pode ser do tipo: Gerber, Excellon ou Geometria.\n" -"As coordenadas do centro da caixa delimitadora são usadas\n" -"como referência para operação de espelho." - -#: AppTools/ToolDblSided.py:252 -msgid "Bounds Values" -msgstr "Valores Limite" - -#: AppTools/ToolDblSided.py:254 -msgid "" -"Select on canvas the object(s)\n" -"for which to calculate bounds values." -msgstr "" -"Selecione na tela o(s) objeto(s)\n" -"para o qual calcular valores limites." - -#: AppTools/ToolDblSided.py:264 -msgid "X min" -msgstr "X min" - -#: AppTools/ToolDblSided.py:266 AppTools/ToolDblSided.py:280 -msgid "Minimum location." -msgstr "Localização mínima." - -#: AppTools/ToolDblSided.py:278 -msgid "Y min" -msgstr "Y min" - -#: AppTools/ToolDblSided.py:292 -msgid "X max" -msgstr "X max" - -#: AppTools/ToolDblSided.py:294 AppTools/ToolDblSided.py:308 -msgid "Maximum location." -msgstr "Localização máxima." - -#: AppTools/ToolDblSided.py:306 -msgid "Y max" -msgstr "Y max" - -#: AppTools/ToolDblSided.py:317 -msgid "Center point coordinates" -msgstr "Coordenadas do ponto central" - -#: AppTools/ToolDblSided.py:319 -msgid "Centroid" -msgstr "Centroid" - -#: AppTools/ToolDblSided.py:321 -msgid "" -"The center point location for the rectangular\n" -"bounding shape. Centroid. Format is (x, y)." -msgstr "" -"A localização do ponto central do retângulo\n" -"forma delimitadora. Centroid. O formato é (x, y)." - -#: AppTools/ToolDblSided.py:330 -msgid "Calculate Bounds Values" -msgstr "Calcular valores de limitesCalculadoras" - -#: AppTools/ToolDblSided.py:332 -msgid "" -"Calculate the enveloping rectangular shape coordinates,\n" -"for the selection of objects.\n" -"The envelope shape is parallel with the X, Y axis." -msgstr "" -"Calcular as coordenadas de forma retangular envolventes,\n" -"para a seleção de objetos.\n" -"A forma do envelope é paralela ao eixo X, Y." - -#: AppTools/ToolDblSided.py:352 -msgid "PCB Alignment" -msgstr "Alinhamento PCB" - -#: AppTools/ToolDblSided.py:354 AppTools/ToolDblSided.py:456 -msgid "" -"Creates an Excellon Object containing the\n" -"specified alignment holes and their mirror\n" -"images." -msgstr "" -"Cria um Objeto Excellon contendo os\n" -"furos de alinhamento especificados e suas\n" -"imagens espelhadas." - -#: AppTools/ToolDblSided.py:361 -msgid "Drill Diameter" -msgstr "Diâmetro da Broca" - -#: AppTools/ToolDblSided.py:390 AppTools/ToolDblSided.py:397 -msgid "" -"The reference point used to create the second alignment drill\n" -"from the first alignment drill, by doing mirror.\n" -"It can be modified in the Mirror Parameters -> Reference section" -msgstr "" -"O ponto de referência usado para criar o segundo furo de alinhamento\n" -"do primeiro furo de alinhamento, fazendo espelho.\n" -"Pode ser modificado na seção Parâmetros de espelho -> Referência" - -#: AppTools/ToolDblSided.py:410 -msgid "Alignment Drill Coordinates" -msgstr "Coords Furos de Alinhamento" - -#: AppTools/ToolDblSided.py:412 -msgid "" -"Alignment holes (x1, y1), (x2, y2), ... on one side of the mirror axis. For " -"each set of (x, y) coordinates\n" -"entered here, a pair of drills will be created:\n" -"\n" -"- one drill at the coordinates from the field\n" -"- one drill in mirror position over the axis selected above in the 'Align " -"Axis'." -msgstr "" -"Furos de alinhamento (x1, y1), (x2, y2), ... em um lado do eixo do espelho. " -"Para cada conjunto de coordenadas (x, y)\n" -"indicado aqui, um par de furos será criado:\n" -"\n" -"- uma furo nas coordenadas do campo\n" -"- uma furo na posição espelhada sobre o eixo selecionado acima no 'Alinhar " -"eixo'." - -#: AppTools/ToolDblSided.py:420 -msgid "Drill coordinates" -msgstr "Coordenadas dos furos" - -#: AppTools/ToolDblSided.py:427 -msgid "" -"Add alignment drill holes coordinates in the format: (x1, y1), (x2, " -"y2), ... \n" -"on one side of the alignment axis.\n" -"\n" -"The coordinates set can be obtained:\n" -"- press SHIFT key and left mouse clicking on canvas. Then click Add.\n" -"- press SHIFT key and left mouse clicking on canvas. Then Ctrl+V in the " -"field.\n" -"- press SHIFT key and left mouse clicking on canvas. Then RMB click in the " -"field and click Paste.\n" -"- by entering the coords manually in the format: (x1, y1), (x2, y2), ..." -msgstr "" -"Adicione as coordenadas dos furos de alinhamento no formato (x1, y1), (x2, " -"y2), ...\n" -"em um lado do eixo do espelho.\n" -"\n" -"O conjunto de coordenadas pode ser obtido:\n" -"- tecla SHIFT e clique com o botão esquerdo do mouse na tela. Em seguida, " -"clicar em Adicionar.\n" -"- tecla SHIFT e clique com o botão esquerdo do mouse na tela. Então CTRL + V " -"no campo.\n" -"- tecla SHIFT e clique com o botão esquerdo do mouse na tela. Em seguida, " -"clicar no campo e em Colar.\n" -"- inserindo as coordenadas manualmente no formato: (x1, y1), (x2, y2), ..." - -#: AppTools/ToolDblSided.py:442 -msgid "Delete Last" -msgstr "Excluir Último" - -#: AppTools/ToolDblSided.py:444 -msgid "Delete the last coordinates tuple in the list." -msgstr "Exclua a última dupla de coordenadas da lista." - -#: AppTools/ToolDblSided.py:454 -msgid "Create Excellon Object" -msgstr "Criar Objeto Excellon" - -#: AppTools/ToolDblSided.py:541 -msgid "2-Sided Tool" -msgstr "PCB 2 Faces" - -#: AppTools/ToolDblSided.py:581 -msgid "" -"'Point' reference is selected and 'Point' coordinates are missing. Add them " -"and retry." -msgstr "" -"A referência 'Ponto' está selecionada e as coordenadas do 'Ponto' estão " -"faltando. Adicione-as e tente novamente." - -#: AppTools/ToolDblSided.py:600 -msgid "There is no Box reference object loaded. Load one and retry." -msgstr "" -"Não há objeto Caixa de referência carregado. Carregue um e tente novamente." - -#: AppTools/ToolDblSided.py:612 -msgid "No value or wrong format in Drill Dia entry. Add it and retry." -msgstr "" -"Nenhum valor ou formato incorreto para o Diâmetro do Furo. Altere e tente " -"novamente." - -#: AppTools/ToolDblSided.py:623 -msgid "There are no Alignment Drill Coordinates to use. Add them and retry." -msgstr "" -"Não há Coordenadas para usar no Furo de Alinhamento. Adicione-as e tente " -"novamente." - -#: AppTools/ToolDblSided.py:648 -msgid "Excellon object with alignment drills created..." -msgstr "Objeto Excellon com furos de alinhamento criado ..." - -#: AppTools/ToolDblSided.py:661 AppTools/ToolDblSided.py:704 -#: AppTools/ToolDblSided.py:748 -msgid "Only Gerber, Excellon and Geometry objects can be mirrored." -msgstr "Apenas objetos Gerber, Excellon e Geometria podem ser espelhados." - -#: AppTools/ToolDblSided.py:671 AppTools/ToolDblSided.py:715 -msgid "" -"There are no Point coordinates in the Point field. Add coords and try " -"again ..." -msgstr "" -"Faltando as Coordenadas do 'Ponto'. Adicione as coordenadas e tente " -"novamente ..." - -#: AppTools/ToolDblSided.py:681 AppTools/ToolDblSided.py:725 -#: AppTools/ToolDblSided.py:762 -msgid "There is no Box object loaded ..." -msgstr "Não há objeto Caixa carregado ..." - -#: AppTools/ToolDblSided.py:691 AppTools/ToolDblSided.py:735 -#: AppTools/ToolDblSided.py:772 -msgid "was mirrored" -msgstr "foi espelhado" - -#: AppTools/ToolDblSided.py:700 AppTools/ToolPunchGerber.py:533 -msgid "There is no Excellon object loaded ..." -msgstr "Não há objeto Excellon carregado ..." - -#: AppTools/ToolDblSided.py:744 -msgid "There is no Geometry object loaded ..." -msgstr "Não há objeto Geometria carregado ..." - -#: AppTools/ToolDblSided.py:818 App_Main.py:4350 App_Main.py:4505 -msgid "Failed. No object(s) selected..." -msgstr "Falha. Nenhum objeto selecionado..." - -#: AppTools/ToolDistance.py:57 AppTools/ToolDistanceMin.py:50 -msgid "Those are the units in which the distance is measured." -msgstr "Unidade em que a distância é medida." - -#: AppTools/ToolDistance.py:58 AppTools/ToolDistanceMin.py:51 -msgid "METRIC (mm)" -msgstr "Métrico (mm):" - -#: AppTools/ToolDistance.py:58 AppTools/ToolDistanceMin.py:51 -msgid "INCH (in)" -msgstr "Inglês (in)" - -#: AppTools/ToolDistance.py:64 -msgid "Snap to center" -msgstr "Alinhar ao centro" - -#: AppTools/ToolDistance.py:66 -msgid "" -"Mouse cursor will snap to the center of the pad/drill\n" -"when it is hovering over the geometry of the pad/drill." -msgstr "" -"O cursor do mouse se encaixará no centro do pad/furo\n" -"quando está pairando sobre a geometria do pad/furo." - -#: AppTools/ToolDistance.py:76 -msgid "Start Coords" -msgstr "Coords Iniciais" - -#: AppTools/ToolDistance.py:77 AppTools/ToolDistance.py:82 -msgid "This is measuring Start point coordinates." -msgstr "Coordenadas do ponto inicial da medição." - -#: AppTools/ToolDistance.py:87 -msgid "Stop Coords" -msgstr "Coords Finais" - -#: AppTools/ToolDistance.py:88 AppTools/ToolDistance.py:93 -msgid "This is the measuring Stop point coordinates." -msgstr "Coordenadas do ponto final da medição." - -#: AppTools/ToolDistance.py:98 AppTools/ToolDistanceMin.py:62 -msgid "Dx" -msgstr "Dx" - -#: AppTools/ToolDistance.py:99 AppTools/ToolDistance.py:104 -#: AppTools/ToolDistanceMin.py:63 AppTools/ToolDistanceMin.py:92 -msgid "This is the distance measured over the X axis." -msgstr "Distância medida no eixo X." - -#: AppTools/ToolDistance.py:109 AppTools/ToolDistanceMin.py:65 -msgid "Dy" -msgstr "Dy" - -#: AppTools/ToolDistance.py:110 AppTools/ToolDistance.py:115 -#: AppTools/ToolDistanceMin.py:66 AppTools/ToolDistanceMin.py:97 -msgid "This is the distance measured over the Y axis." -msgstr "Distância medida no eixo Y." - -#: AppTools/ToolDistance.py:121 AppTools/ToolDistance.py:126 -#: AppTools/ToolDistanceMin.py:69 AppTools/ToolDistanceMin.py:102 -msgid "This is orientation angle of the measuring line." -msgstr "Ângulo de orientação da linha de medição." - -#: AppTools/ToolDistance.py:131 AppTools/ToolDistanceMin.py:71 -msgid "DISTANCE" -msgstr "DISTÂNCIA" - -#: AppTools/ToolDistance.py:132 AppTools/ToolDistance.py:137 -msgid "This is the point to point Euclidian distance." -msgstr "Este é o ponto a apontar a distância euclidiana." - -#: AppTools/ToolDistance.py:142 AppTools/ToolDistance.py:339 -#: AppTools/ToolDistanceMin.py:114 -msgid "Measure" -msgstr "Medir" - -#: AppTools/ToolDistance.py:274 -msgid "Working" -msgstr "Trabalhando" - -#: AppTools/ToolDistance.py:279 -msgid "MEASURING: Click on the Start point ..." -msgstr "MEDIÇÃO: Clique no ponto Inicial ..." - -#: AppTools/ToolDistance.py:389 -msgid "Distance Tool finished." -msgstr "Ferramenta de distância concluída." - -#: AppTools/ToolDistance.py:461 -msgid "Pads overlapped. Aborting." -msgstr "Pads sobrepostos. Abortando." - -#: AppTools/ToolDistance.py:489 -#, fuzzy -#| msgid "Distance Tool finished." -msgid "Distance Tool cancelled." -msgstr "Ferramenta de distância concluída." - -#: AppTools/ToolDistance.py:494 -msgid "MEASURING: Click on the Destination point ..." -msgstr "MEDIÇÃO: Clique no ponto Final ..." - -#: AppTools/ToolDistance.py:503 AppTools/ToolDistanceMin.py:284 -msgid "MEASURING" -msgstr "MEDINDO" - -#: AppTools/ToolDistance.py:504 AppTools/ToolDistanceMin.py:285 -msgid "Result" -msgstr "Resultado" - -#: AppTools/ToolDistanceMin.py:31 AppTools/ToolDistanceMin.py:143 -msgid "Minimum Distance Tool" -msgstr "Ferramenta Distância Mínima" - -#: AppTools/ToolDistanceMin.py:54 -msgid "First object point" -msgstr "Ponto inicial" - -#: AppTools/ToolDistanceMin.py:55 AppTools/ToolDistanceMin.py:80 -msgid "" -"This is first object point coordinates.\n" -"This is the start point for measuring distance." -msgstr "" -"Coordenadas do ponto inicial.\n" -"Este é o ponto inicial para a medição de distância." - -#: AppTools/ToolDistanceMin.py:58 -msgid "Second object point" -msgstr "Ponto final" - -#: AppTools/ToolDistanceMin.py:59 AppTools/ToolDistanceMin.py:86 -msgid "" -"This is second object point coordinates.\n" -"This is the end point for measuring distance." -msgstr "" -"Coordenadas do ponto final.\n" -"Este é o ponto final para a medição de distância." - -#: AppTools/ToolDistanceMin.py:72 AppTools/ToolDistanceMin.py:107 -msgid "This is the point to point Euclidean distance." -msgstr "Este é o ponto a apontar a distância euclidiana." - -#: AppTools/ToolDistanceMin.py:74 -msgid "Half Point" -msgstr "Ponto Médio" - -#: AppTools/ToolDistanceMin.py:75 AppTools/ToolDistanceMin.py:112 -msgid "This is the middle point of the point to point Euclidean distance." -msgstr "Este é o ponto médio da distância euclidiana." - -#: AppTools/ToolDistanceMin.py:117 -msgid "Jump to Half Point" -msgstr "Ir para o Ponto Médio" - -#: AppTools/ToolDistanceMin.py:154 -msgid "" -"Select two objects and no more, to measure the distance between them ..." -msgstr "" -"Selecione dois objetos (apenas dois) para medir a distância entre eles..." - -#: AppTools/ToolDistanceMin.py:195 AppTools/ToolDistanceMin.py:216 -#: AppTools/ToolDistanceMin.py:225 AppTools/ToolDistanceMin.py:246 -msgid "Select two objects and no more. Currently the selection has objects: " -msgstr "Selecione dois objetos (apenas dois). A seleção atual tem objetos: " - -#: AppTools/ToolDistanceMin.py:293 -msgid "Objects intersects or touch at" -msgstr "Os objetos se cruzam ou tocam em" - -#: AppTools/ToolDistanceMin.py:299 -msgid "Jumped to the half point between the two selected objects" -msgstr "Pulou para o ponto médio entre os dois objetos selecionados" - -#: AppTools/ToolEtchCompensation.py:75 AppTools/ToolInvertGerber.py:74 -msgid "Gerber object that will be inverted." -msgstr "Objeto Gerber que será invertido." - -#: AppTools/ToolEtchCompensation.py:86 -msgid "Utilities" -msgstr "" - -#: AppTools/ToolEtchCompensation.py:87 -#, fuzzy -#| msgid "Conversion" -msgid "Conversion utilities" -msgstr "Conversão" - -#: AppTools/ToolEtchCompensation.py:92 -msgid "Oz to Microns" -msgstr "" - -#: AppTools/ToolEtchCompensation.py:94 -msgid "" -"Will convert from oz thickness to microns [um].\n" -"Can use formulas with operators: /, *, +, -, %, .\n" -"The real numbers use the dot decimals separator." -msgstr "" - -#: AppTools/ToolEtchCompensation.py:103 -#, fuzzy -#| msgid "X value" -msgid "Oz value" -msgstr "Valor X" - -#: AppTools/ToolEtchCompensation.py:105 AppTools/ToolEtchCompensation.py:126 -#, fuzzy -#| msgid "Min value" -msgid "Microns value" -msgstr "Valor Min" - -#: AppTools/ToolEtchCompensation.py:113 -msgid "Mils to Microns" -msgstr "" - -#: AppTools/ToolEtchCompensation.py:115 -msgid "" -"Will convert from mils to microns [um].\n" -"Can use formulas with operators: /, *, +, -, %, .\n" -"The real numbers use the dot decimals separator." -msgstr "" - -#: AppTools/ToolEtchCompensation.py:124 -#, fuzzy -#| msgid "Min value" -msgid "Mils value" -msgstr "Valor Min" - -#: AppTools/ToolEtchCompensation.py:139 AppTools/ToolInvertGerber.py:86 -msgid "Parameters for this tool" -msgstr "Parâmetros usados para esta ferramenta" - -#: AppTools/ToolEtchCompensation.py:144 -#, fuzzy -#| msgid "Thickness" -msgid "Copper Thickness" -msgstr "Espessura" - -#: AppTools/ToolEtchCompensation.py:146 -#, fuzzy -#| msgid "" -#| "How thick the copper growth is intended to be.\n" -#| "In microns." -msgid "" -"The thickness of the copper foil.\n" -"In microns [um]." -msgstr "Espessura da camada de cobre, em microns." - -#: AppTools/ToolEtchCompensation.py:157 -#, fuzzy -#| msgid "Location" -msgid "Ratio" -msgstr "Localização" - -#: AppTools/ToolEtchCompensation.py:159 -msgid "" -"The ratio of lateral etch versus depth etch.\n" -"Can be:\n" -"- custom -> the user will enter a custom value\n" -"- preselection -> value which depends on a selection of etchants" -msgstr "" - -#: AppTools/ToolEtchCompensation.py:165 -#, fuzzy -#| msgid "Factor" -msgid "Etch Factor" -msgstr "Fator" - -#: AppTools/ToolEtchCompensation.py:166 -#, fuzzy -#| msgid "Extensions list" -msgid "Etchants list" -msgstr "Lista de extensões" - -#: AppTools/ToolEtchCompensation.py:167 -#, fuzzy -#| msgid "Manual" -msgid "Manual offset" -msgstr "Manual" - -#: AppTools/ToolEtchCompensation.py:174 AppTools/ToolEtchCompensation.py:179 -msgid "Etchants" -msgstr "" - -#: AppTools/ToolEtchCompensation.py:176 -#, fuzzy -#| msgid "Shows list of commands." -msgid "A list of etchants." -msgstr "Mostra a lista de comandos." - -#: AppTools/ToolEtchCompensation.py:180 -msgid "Alkaline baths" -msgstr "" - -#: AppTools/ToolEtchCompensation.py:186 -#, fuzzy -#| msgid "X factor" -msgid "Etch factor" -msgstr "Fator X" - -#: AppTools/ToolEtchCompensation.py:188 -msgid "" -"The ratio between depth etch and lateral etch .\n" -"Accepts real numbers and formulas using the operators: /,*,+,-,%" -msgstr "" - -#: AppTools/ToolEtchCompensation.py:192 -msgid "Real number or formula" -msgstr "" - -#: AppTools/ToolEtchCompensation.py:193 -#, fuzzy -#| msgid "X factor" -msgid "Etch_factor" -msgstr "Fator X" - -#: AppTools/ToolEtchCompensation.py:201 -msgid "" -"Value with which to increase or decrease (buffer)\n" -"the copper features. In microns [um]." -msgstr "" - -#: AppTools/ToolEtchCompensation.py:225 -msgid "Compensate" -msgstr "" - -#: AppTools/ToolEtchCompensation.py:227 -msgid "" -"Will increase the copper features thickness to compensate the lateral etch." -msgstr "" - -#: AppTools/ToolExtractDrills.py:29 AppTools/ToolExtractDrills.py:295 -msgid "Extract Drills" -msgstr "Extrair Furos" - -#: AppTools/ToolExtractDrills.py:62 -msgid "Gerber from which to extract drill holes" -msgstr "Objeto para extrair furos." - -#: AppTools/ToolExtractDrills.py:297 -msgid "Extract drills from a given Gerber file." -msgstr "Extrai furos de um arquivo Gerber." - -#: AppTools/ToolExtractDrills.py:478 AppTools/ToolExtractDrills.py:563 -#: AppTools/ToolExtractDrills.py:648 -msgid "No drills extracted. Try different parameters." -msgstr "Nenhum furo extraído. Tente parâmetros diferentes." - -#: AppTools/ToolFiducials.py:56 -msgid "Fiducials Coordinates" -msgstr "Coordenadas dos Fiduciais" - -#: AppTools/ToolFiducials.py:58 -msgid "" -"A table with the fiducial points coordinates,\n" -"in the format (x, y)." -msgstr "" -"Uma tabela com as coordenadas dos pontos fiduciais,\n" -"no formato (x, y)." - -#: AppTools/ToolFiducials.py:194 -msgid "" -"- 'Auto' - automatic placement of fiducials in the corners of the bounding " -"box.\n" -" - 'Manual' - manual placement of fiducials." -msgstr "" -"- 'Auto' - colocação automática de fiduciais nos cantos da caixa " -"delimitadora.\n" -"- 'Manual' - colocação manual de fiduciais." - -#: AppTools/ToolFiducials.py:240 -msgid "Thickness of the line that makes the fiducial." -msgstr "" - -#: AppTools/ToolFiducials.py:271 -msgid "Add Fiducial" -msgstr "Adicionar Fiducial" - -#: AppTools/ToolFiducials.py:273 -msgid "Will add a polygon on the copper layer to serve as fiducial." -msgstr "Adicionará um polígono na camada de cobre para servir como fiducial." - -#: AppTools/ToolFiducials.py:289 -msgid "Soldermask Gerber" -msgstr "Gerber Máscara de Solda" - -#: AppTools/ToolFiducials.py:291 -msgid "The Soldermask Gerber object." -msgstr "Objeto Gerber de Máscara de Solda." - -#: AppTools/ToolFiducials.py:303 -msgid "Add Soldermask Opening" -msgstr "Adicionar Máscara de Solda" - -#: AppTools/ToolFiducials.py:305 -msgid "" -"Will add a polygon on the soldermask layer\n" -"to serve as fiducial opening.\n" -"The diameter is always double of the diameter\n" -"for the copper fiducial." -msgstr "" -"Adicionará um polígono na camada de máscara de solda\n" -"para servir como abertura fiducial.\n" -"O diâmetro é sempre o dobro do diâmetro\n" -"para o fiducial de cobre." - -#: AppTools/ToolFiducials.py:520 -msgid "Click to add first Fiducial. Bottom Left..." -msgstr "Clique para adicionar o primeiro Fiducial. Inferior Esquerdo..." - -#: AppTools/ToolFiducials.py:784 -msgid "Click to add the last fiducial. Top Right..." -msgstr "Clique para adicionar o último fiducial. Superior Direito..." - -#: AppTools/ToolFiducials.py:789 -msgid "Click to add the second fiducial. Top Left or Bottom Right..." -msgstr "" -"Clique para adicionar o segundo fiducial. Superior Esquerdo ou Inferior " -"Direito..." - -#: AppTools/ToolFiducials.py:792 AppTools/ToolFiducials.py:801 -msgid "Done. All fiducials have been added." -msgstr "Feito. Todos os fiduciais foram adicionados." - -#: AppTools/ToolFiducials.py:878 -msgid "Fiducials Tool exit." -msgstr "Sair da ferramenta de fiduciais." - -#: AppTools/ToolFilm.py:42 -msgid "Film PCB" -msgstr "Filme PCB" - -#: AppTools/ToolFilm.py:73 -msgid "" -"Specify the type of object for which to create the film.\n" -"The object can be of type: Gerber or Geometry.\n" -"The selection here decide the type of objects that will be\n" -"in the Film Object combobox." -msgstr "" -"Especifique o tipo de objeto para o qual criar o filme.\n" -"O objeto pode ser do tipo: Gerber ou Geometria.\n" -"A seleção aqui decide o tipo de objetos que estará\n" -"na caixa de combinação Objeto de Filme." - -#: AppTools/ToolFilm.py:96 -msgid "" -"Specify the type of object to be used as an container for\n" -"film creation. It can be: Gerber or Geometry type.The selection here decide " -"the type of objects that will be\n" -"in the Box Object combobox." -msgstr "" -"Especifique o tipo de objeto a ser usado como um contêiner para a criação " -"de\n" -"filme. Pode ser: tipo Gerber ou Geometria. A seleção aqui decide o tipo de " -"objetos que estará\n" -"na caixa de combinação Objeto Caixa." - -#: AppTools/ToolFilm.py:256 -msgid "Film Parameters" -msgstr "Parâmetros de Filme" - -#: AppTools/ToolFilm.py:317 -msgid "Punch drill holes" -msgstr "Furar manualmente" - -#: AppTools/ToolFilm.py:318 -msgid "" -"When checked the generated film will have holes in pads when\n" -"the generated film is positive. This is done to help drilling,\n" -"when done manually." -msgstr "" -"Quando marcado, o filme gerado terá furos nos pads quando\n" -"o filme gerado é positivo. Isso é feito para ajudar na perfuração,\n" -"quando feito manualmente." - -#: AppTools/ToolFilm.py:336 -msgid "Source" -msgstr "Fonte" - -#: AppTools/ToolFilm.py:338 -msgid "" -"The punch hole source can be:\n" -"- Excellon -> an Excellon holes center will serve as reference.\n" -"- Pad Center -> will try to use the pads center as reference." -msgstr "" -"A fonte do furo pode ser:\n" -"- Excellon -> o centro de um furo Excellon servirá como referência.\n" -"- Centro de Pad -> tentará usar o centro de pads como referência." - -#: AppTools/ToolFilm.py:343 -msgid "Pad center" -msgstr "Centro de Pad" - -#: AppTools/ToolFilm.py:348 -msgid "Excellon Obj" -msgstr "Objeto Excellon" - -#: AppTools/ToolFilm.py:350 -msgid "" -"Remove the geometry of Excellon from the Film to create the holes in pads." -msgstr "Remove a geometria do Excellon do filme para criar os furos nos pads." - -#: AppTools/ToolFilm.py:364 -msgid "Punch Size" -msgstr "Tamanho do Perfurador" - -#: AppTools/ToolFilm.py:365 -msgid "The value here will control how big is the punch hole in the pads." -msgstr "Valor para controlar o tamanho dos furos dos pads." - -#: AppTools/ToolFilm.py:485 -msgid "Save Film" -msgstr "Salvar Filme" - -#: AppTools/ToolFilm.py:487 -msgid "" -"Create a Film for the selected object, within\n" -"the specified box. Does not create a new \n" -" FlatCAM object, but directly save it in the\n" -"selected format." -msgstr "" -"Cria um filme para o objeto selecionado, dentro da caixa\n" -"especificada. Não cria um novo objeto\n" -"FlatCAM, mas salva-o diretamente no formato selecionado." - -#: AppTools/ToolFilm.py:649 -msgid "" -"Using the Pad center does not work on Geometry objects. Only a Gerber object " -"has pads." -msgstr "" -"O uso de Centro de Pad não funciona em objetos Geometria. Somente um objeto " -"Gerber possui pads." - -#: AppTools/ToolFilm.py:659 -msgid "No FlatCAM object selected. Load an object for Film and retry." -msgstr "" -"Nenhum objeto FlatCAM selecionado. Carregue um objeto para Filme e tente " -"novamente." - -#: AppTools/ToolFilm.py:666 -msgid "No FlatCAM object selected. Load an object for Box and retry." -msgstr "" -"Nenhum objeto FlatCAM selecionado. Carregue um objeto para Caixa e tente " -"novamente." - -#: AppTools/ToolFilm.py:670 -msgid "No FlatCAM object selected." -msgstr "Nenhum objeto FlatCAM selecionado." - -#: AppTools/ToolFilm.py:681 -msgid "Generating Film ..." -msgstr "Gerando Filme ..." - -#: AppTools/ToolFilm.py:730 AppTools/ToolFilm.py:734 -msgid "Export positive film" -msgstr "Exportar filme positivo" - -#: AppTools/ToolFilm.py:767 -msgid "" -"No Excellon object selected. Load an object for punching reference and retry." -msgstr "" -"Nenhum objeto Excellon selecionado. Carregue um objeto para referência de " -"perfuração manual e tente novamente." - -#: AppTools/ToolFilm.py:791 -msgid "" -" Could not generate punched hole film because the punch hole sizeis bigger " -"than some of the apertures in the Gerber object." -msgstr "" -" Não foi possível gerar o filme de furos manuais porque o tamanho do " -"perfurador é maior que algumas das aberturas no objeto Gerber." - -#: AppTools/ToolFilm.py:803 -msgid "" -"Could not generate punched hole film because the punch hole sizeis bigger " -"than some of the apertures in the Gerber object." -msgstr "" -"Não foi possível gerar o filme de furos manuais porque o tamanho do " -"perfurador é maior que algumas das aberturas no objeto Gerber." - -#: AppTools/ToolFilm.py:821 -msgid "" -"Could not generate punched hole film because the newly created object " -"geometry is the same as the one in the source object geometry..." -msgstr "" -"Não foi possível gerar o filme de furos manuais porque a geometria do objeto " -"recém-criada é a mesma da geometria do objeto de origem ..." - -#: AppTools/ToolFilm.py:876 AppTools/ToolFilm.py:880 -msgid "Export negative film" -msgstr "Exportar filme negativo" - -#: AppTools/ToolFilm.py:941 AppTools/ToolFilm.py:1124 -#: AppTools/ToolPanelize.py:441 -msgid "No object Box. Using instead" -msgstr "Nenhuma caixa de objeto. Usando" - -#: AppTools/ToolFilm.py:1057 AppTools/ToolFilm.py:1237 -msgid "Film file exported to" -msgstr "Arquivo filme exportado para" - -#: AppTools/ToolFilm.py:1060 AppTools/ToolFilm.py:1240 -msgid "Generating Film ... Please wait." -msgstr "Gerando Filme ... Por favor, aguarde." - -#: AppTools/ToolImage.py:24 -msgid "Image as Object" -msgstr "Imagem como Objeto" - -#: AppTools/ToolImage.py:33 -msgid "Image to PCB" -msgstr "Imagem para PCB" - -#: AppTools/ToolImage.py:56 -msgid "" -"Specify the type of object to create from the image.\n" -"It can be of type: Gerber or Geometry." -msgstr "" -"Especifique o tipo de objeto a ser criado a partir da imagem.\n" -"Pode ser do tipo: Gerber ou Geometria." - -#: AppTools/ToolImage.py:65 -msgid "DPI value" -msgstr "Valor de DPI" - -#: AppTools/ToolImage.py:66 -msgid "Specify a DPI value for the image." -msgstr "Especifique um valor de DPI (pontos por polegada) para a imagem." - -#: AppTools/ToolImage.py:72 -msgid "Level of detail" -msgstr "Nível de detalhe" - -#: AppTools/ToolImage.py:81 -msgid "Image type" -msgstr "Tipo de imagem" - -#: AppTools/ToolImage.py:83 -msgid "" -"Choose a method for the image interpretation.\n" -"B/W means a black & white image. Color means a colored image." -msgstr "" -"Escolha um método para a interpretação da imagem.\n" -"P/B significa uma imagem em preto e branco. Cor significa uma imagem " -"colorida." - -#: AppTools/ToolImage.py:92 AppTools/ToolImage.py:107 AppTools/ToolImage.py:120 -#: AppTools/ToolImage.py:133 -msgid "Mask value" -msgstr "Valor da máscara" - -#: AppTools/ToolImage.py:94 -msgid "" -"Mask for monochrome image.\n" -"Takes values between [0 ... 255].\n" -"Decides the level of details to include\n" -"in the resulting geometry.\n" -"0 means no detail and 255 means everything \n" -"(which is totally black)." -msgstr "" -"Máscara para imagem monocromática.\n" -"Valores entre [0 ... 255].\n" -"Define o nível de detalhes para incluir\n" -"na geometria resultante.\n" -"0 significa nenhum detalhe e 255 significa tudo\n" -"(que é totalmente preto)." - -#: AppTools/ToolImage.py:109 -msgid "" -"Mask for RED color.\n" -"Takes values between [0 ... 255].\n" -"Decides the level of details to include\n" -"in the resulting geometry." -msgstr "" -"Máscara para a cor VERMELHA.\n" -"Valores entre [0 ... 255].\n" -"Define o nível de detalhes para incluir\n" -"na geometria resultante." - -#: AppTools/ToolImage.py:122 -msgid "" -"Mask for GREEN color.\n" -"Takes values between [0 ... 255].\n" -"Decides the level of details to include\n" -"in the resulting geometry." -msgstr "" -"Máscara para a cor VERDE.\n" -"Valores entre [0 ... 255].\n" -"Define o nível de detalhes para incluir\n" -"na geometria resultante." - -#: AppTools/ToolImage.py:135 -msgid "" -"Mask for BLUE color.\n" -"Takes values between [0 ... 255].\n" -"Decides the level of details to include\n" -"in the resulting geometry." -msgstr "" -"Máscara para a cor AZUL.\n" -"Valores entre [0 ... 255].\n" -"Define o nível de detalhes para incluir\n" -"na geometria resultante." - -#: AppTools/ToolImage.py:143 -msgid "Import image" -msgstr "Importar imagem" - -#: AppTools/ToolImage.py:145 -msgid "Open a image of raster type and then import it in FlatCAM." -msgstr "Abre uma imagem do tipo raster e importe-a no FlatCAM." - -#: AppTools/ToolImage.py:182 -msgid "Image Tool" -msgstr "Ferramenta de Imagem" - -#: AppTools/ToolImage.py:234 AppTools/ToolImage.py:237 -msgid "Import IMAGE" -msgstr "Importar IMAGEM" - -#: AppTools/ToolImage.py:277 App_Main.py:8360 App_Main.py:8407 -msgid "" -"Not supported type is picked as parameter. Only Geometry and Gerber are " -"supported" -msgstr "" -"O tipo escolhido não é suportado como parâmetro. Apenas Geometria e Gerber " -"são suportados" - -#: AppTools/ToolImage.py:285 -msgid "Importing Image" -msgstr "Importando Imagem" - -#: AppTools/ToolImage.py:297 AppTools/ToolPDF.py:154 App_Main.py:8385 -#: App_Main.py:8431 App_Main.py:8495 App_Main.py:8562 App_Main.py:8628 -#: App_Main.py:8693 App_Main.py:8750 -msgid "Opened" -msgstr "Aberto" - -#: AppTools/ToolInvertGerber.py:126 -msgid "Invert Gerber" -msgstr "Inverter Gerber" - -#: AppTools/ToolInvertGerber.py:128 -msgid "" -"Will invert the Gerber object: areas that have copper\n" -"will be empty of copper and previous empty area will be\n" -"filled with copper." -msgstr "" -"Inverter o objeto Gerber: áreas que possuem cobre\n" -"ficarão vazias de cobre e a área vazia anterior será\n" -"preenchida com cobre." - -#: AppTools/ToolInvertGerber.py:187 -msgid "Invert Tool" -msgstr "Ferramenta Inverter" - -#: AppTools/ToolIsolation.py:96 -#, fuzzy -#| msgid "Gerber objects for which to check rules." -msgid "Gerber object for isolation routing." -msgstr "Objeto para o qual verificar regras." - -#: AppTools/ToolIsolation.py:120 AppTools/ToolNCC.py:122 -msgid "" -"Tools pool from which the algorithm\n" -"will pick the ones used for copper clearing." -msgstr "" -"Conjunto de ferramentas do qual o algoritmo\n" -"escolherá para usar na retirada de cobre." - -#: AppTools/ToolIsolation.py:136 -#, fuzzy -#| msgid "" -#| "This is the Tool Number.\n" -#| "Non copper clearing will start with the tool with the biggest \n" -#| "diameter, continuing until there are no more tools.\n" -#| "Only tools that create NCC clearing geometry will still be present\n" -#| "in the resulting geometry. This is because with some tools\n" -#| "this function will not be able to create painting geometry." -msgid "" -"This is the Tool Number.\n" -"Isolation routing will start with the tool with the biggest \n" -"diameter, continuing until there are no more tools.\n" -"Only tools that create Isolation geometry will still be present\n" -"in the resulting geometry. This is because with some tools\n" -"this function will not be able to create routing geometry." -msgstr "" -"Este é o Número da Ferramenta.\n" -"A retirada de cobre (NCC) começará com a ferramenta de maior diâmetro,\n" -"continuando até que não haja mais ferramentas. Somente ferramentas\n" -"que criam a geometria de NCC estarão presentes na geometria\n" -"resultante. Isso ocorre porque com algumas ferramentas esta função\n" -"não será capaz de criar geometria de pintura." - -#: AppTools/ToolIsolation.py:144 AppTools/ToolNCC.py:146 -msgid "" -"Tool Diameter. It's value (in current FlatCAM units)\n" -"is the cut width into the material." -msgstr "" -"Diâmetro da ferramenta. É a largura do corte no material.\n" -"(nas unidades atuais do FlatCAM)" - -#: AppTools/ToolIsolation.py:148 AppTools/ToolNCC.py:150 -msgid "" -"The Tool Type (TT) can be:\n" -"- Circular with 1 ... 4 teeth -> it is informative only. Being circular,\n" -"the cut width in material is exactly the tool diameter.\n" -"- Ball -> informative only and make reference to the Ball type endmill.\n" -"- V-Shape -> it will disable Z-Cut parameter in the resulting geometry UI " -"form\n" -"and enable two additional UI form fields in the resulting geometry: V-Tip " -"Dia and\n" -"V-Tip Angle. Adjusting those two values will adjust the Z-Cut parameter " -"such\n" -"as the cut width into material will be equal with the value in the Tool " -"Diameter\n" -"column of this table.\n" -"Choosing the 'V-Shape' Tool Type automatically will select the Operation " -"Type\n" -"in the resulting geometry as Isolation." -msgstr "" -"O Tipo de Ferramenta (TF) pode ser:\n" -"- Circular com 1 ... 4 dentes -> é apenas informativo. Como é circular,\n" -"a largura do corte é igual ao diâmetro da ferramenta.\n" -"- Bola -> apenas informativo e faz referência a uma fresa do tipo bola.\n" -"- Forma em V -> o parâmetro corte Z será desativado no formulário e serão " -"habilitados\n" -"dois campos adicionais: Diâmetro da Ponta-V e Ângulo da Ponta-V.\n" -"Ajustando esses dois parâmetros irá alterar o parâmetro Corte Z como a " -"largura de corte\n" -"no material, será igual ao valor na coluna Diâmetro da Ferramenta desta " -"tabela.\n" -"Escolhendo o tipo \"Forma em V\" automaticamente selecionará o Tipo de " -"Operação Isolação." - -#: AppTools/ToolIsolation.py:300 AppTools/ToolNCC.py:318 -#: AppTools/ToolPaint.py:300 AppTools/ToolSolderPaste.py:135 -msgid "" -"Delete a selection of tools in the Tool Table\n" -"by first selecting a row(s) in the Tool Table." -msgstr "" -"Apague uma seleção de ferramentas na Tabela de Ferramentas selecionando " -"primeiro a(s) linha(s) na Tabela de Ferramentas." - -#: AppTools/ToolIsolation.py:467 -msgid "" -"Specify the type of object to be excepted from isolation.\n" -"It can be of type: Gerber or Geometry.\n" -"What is selected here will dictate the kind\n" -"of objects that will populate the 'Object' combobox." -msgstr "" -"Especifica o tipo de objeto a ser excluído da isolação.\n" -"Pode ser do tipo: Gerber ou Geometria.\n" -"Esta seleção ditará o tipo de objetos que preencherão\n" -"a caixa de combinação 'Objeto'." - -#: AppTools/ToolIsolation.py:477 -msgid "Object whose area will be removed from isolation geometry." -msgstr "Objeto cuja área será removida da geometria de isolação." - -#: AppTools/ToolIsolation.py:513 AppTools/ToolNCC.py:554 -msgid "" -"The type of FlatCAM object to be used as non copper clearing reference.\n" -"It can be Gerber, Excellon or Geometry." -msgstr "" -"O tipo de objeto FlatCAM a ser usado como referência para retirada de " -"cobre.\n" -"Pode ser Gerber, Excellon ou Geometria." - -#: AppTools/ToolIsolation.py:559 -msgid "Generate Isolation Geometry" -msgstr "Gerar Geometria de Isolação" - -#: AppTools/ToolIsolation.py:567 -msgid "" -"Create a Geometry object with toolpaths to cut \n" -"isolation outside, inside or on both sides of the\n" -"object. For a Gerber object outside means outside\n" -"of the Gerber feature and inside means inside of\n" -"the Gerber feature, if possible at all. This means\n" -"that only if the Gerber feature has openings inside, they\n" -"will be isolated. If what is wanted is to cut isolation\n" -"inside the actual Gerber feature, use a negative tool\n" -"diameter above." -msgstr "" -"Cria um objeto Geometria com caminhos da ferramenta para\n" -"cortar a isolação por fora, por dentro ou em ambos os lados\n" -"do objeto. Para um objeto Gerber externo significa por fora\n" -"do recurso Gerber e interno significa por dentro do recurso\n" -"Gerber, se possível. Isso significa que somente se o recurso\n" -"Gerber tiver aberturas internas, elas serão isoladas. Se o\n" -"desejado é cortar a isolação dentro do recurso Gerber, use uma\n" -"ferramenta negativa diâmetro acima." - -#: AppTools/ToolIsolation.py:1266 AppTools/ToolIsolation.py:1426 -#: AppTools/ToolNCC.py:932 AppTools/ToolNCC.py:1449 AppTools/ToolPaint.py:857 -#: AppTools/ToolSolderPaste.py:576 AppTools/ToolSolderPaste.py:901 -#: App_Main.py:4210 -msgid "Please enter a tool diameter with non-zero value, in Float format." -msgstr "" -"Insira um diâmetro de ferramenta com valor diferente de zero, no formato " -"Flutuante." - -#: AppTools/ToolIsolation.py:1270 AppTools/ToolNCC.py:936 -#: AppTools/ToolPaint.py:861 AppTools/ToolSolderPaste.py:580 App_Main.py:4214 -msgid "Adding Tool cancelled" -msgstr "Adicionar ferramenta cancelada" - -#: AppTools/ToolIsolation.py:1420 AppTools/ToolNCC.py:1443 -#: AppTools/ToolPaint.py:1203 AppTools/ToolSolderPaste.py:896 -msgid "Please enter a tool diameter to add, in Float format." -msgstr "Insira um diâmetro de ferramenta para adicionar, no formato Flutuante." - -#: AppTools/ToolIsolation.py:1451 AppTools/ToolIsolation.py:2959 -#: AppTools/ToolNCC.py:1474 AppTools/ToolNCC.py:4079 AppTools/ToolPaint.py:1227 -#: AppTools/ToolPaint.py:3628 AppTools/ToolSolderPaste.py:925 -msgid "Cancelled. Tool already in Tool Table." -msgstr "Cancelada. Ferramenta já está na Tabela de Ferramentas." - -#: AppTools/ToolIsolation.py:1458 AppTools/ToolIsolation.py:2977 -#: AppTools/ToolNCC.py:1481 AppTools/ToolNCC.py:4096 AppTools/ToolPaint.py:1232 -#: AppTools/ToolPaint.py:3645 -msgid "New tool added to Tool Table." -msgstr "Nova ferramenta adicionada à Tabela de Ferramentas." - -#: AppTools/ToolIsolation.py:1502 AppTools/ToolNCC.py:1525 -#: AppTools/ToolPaint.py:1276 -msgid "Tool from Tool Table was edited." -msgstr "A ferramenta da Tabela de Ferramentas foi editada." - -#: AppTools/ToolIsolation.py:1514 AppTools/ToolNCC.py:1537 -#: AppTools/ToolPaint.py:1288 AppTools/ToolSolderPaste.py:986 -msgid "Cancelled. New diameter value is already in the Tool Table." -msgstr "Cancelado. O novo valor de diâmetro já está na tabela de ferramentas." - -#: AppTools/ToolIsolation.py:1566 AppTools/ToolNCC.py:1589 -#: AppTools/ToolPaint.py:1386 -msgid "Delete failed. Select a tool to delete." -msgstr "Exclusão falhou. Selecione uma ferramenta para excluir." - -#: AppTools/ToolIsolation.py:1572 AppTools/ToolNCC.py:1595 -#: AppTools/ToolPaint.py:1392 -msgid "Tool(s) deleted from Tool Table." -msgstr "Ferramenta(s) excluída(s) da Tabela de Ferramentas." - -#: AppTools/ToolIsolation.py:1620 -msgid "Isolating..." -msgstr "Isolando..." - -#: AppTools/ToolIsolation.py:1654 -msgid "Failed to create Follow Geometry with tool diameter" -msgstr "" - -#: AppTools/ToolIsolation.py:1657 -#, fuzzy -#| msgid "NCC Tool clearing with tool diameter" -msgid "Follow Geometry was created with tool diameter" -msgstr "NCC. Ferramenta com Diâmetro" - -#: AppTools/ToolIsolation.py:1698 -msgid "Click on a polygon to isolate it." -msgstr "Clique em um polígono para isolá-lo." - -#: AppTools/ToolIsolation.py:1812 AppTools/ToolIsolation.py:1832 -#: AppTools/ToolIsolation.py:1967 AppTools/ToolIsolation.py:2138 -msgid "Subtracting Geo" -msgstr "Subtraindo Geo" - -#: AppTools/ToolIsolation.py:1816 AppTools/ToolIsolation.py:1971 -#: AppTools/ToolIsolation.py:2142 -#, fuzzy -#| msgid "Intersection" -msgid "Intersecting Geo" -msgstr "Interseção" - -#: AppTools/ToolIsolation.py:1865 AppTools/ToolIsolation.py:2032 -#: AppTools/ToolIsolation.py:2199 -#, fuzzy -#| msgid "Geometry Options" -msgid "Empty Geometry in" -msgstr "Opções de Geometria" - -#: AppTools/ToolIsolation.py:2041 -msgid "" -"Partial failure. The geometry was processed with all tools.\n" -"But there are still not-isolated geometry elements. Try to include a tool " -"with smaller diameter." -msgstr "" - -#: AppTools/ToolIsolation.py:2044 -msgid "" -"The following are coordinates for the copper features that could not be " -"isolated:" -msgstr "" - -#: AppTools/ToolIsolation.py:2356 AppTools/ToolIsolation.py:2465 -#: AppTools/ToolPaint.py:1535 -msgid "Added polygon" -msgstr "Polígono adicionado" - -#: AppTools/ToolIsolation.py:2357 AppTools/ToolIsolation.py:2467 -msgid "Click to add next polygon or right click to start isolation." -msgstr "" -"Clique para adicionar o próximo polígono ou clique com o botão direito do " -"mouse para iniciar a isolação." - -#: AppTools/ToolIsolation.py:2369 AppTools/ToolPaint.py:1549 -msgid "Removed polygon" -msgstr "Polígono removido" - -#: AppTools/ToolIsolation.py:2370 -msgid "Click to add/remove next polygon or right click to start isolation." -msgstr "" -"Clique para adicionar/remover o próximo polígono ou clique com o botão " -"direito do mouse para iniciar a isolação." - -#: AppTools/ToolIsolation.py:2375 AppTools/ToolPaint.py:1555 -msgid "No polygon detected under click position." -msgstr "Nenhum polígono detectado na posição do clique." - -#: AppTools/ToolIsolation.py:2401 AppTools/ToolPaint.py:1584 -msgid "List of single polygons is empty. Aborting." -msgstr "A lista de polígonos únicos está vazia. Abortando." - -#: AppTools/ToolIsolation.py:2470 -msgid "No polygon in selection." -msgstr "Nenhum polígono na seleção." - -#: AppTools/ToolIsolation.py:2498 AppTools/ToolNCC.py:1725 -#: AppTools/ToolPaint.py:1619 -msgid "Click the end point of the paint area." -msgstr "Clique no ponto final da área." - -#: AppTools/ToolIsolation.py:2916 AppTools/ToolNCC.py:4036 -#: AppTools/ToolPaint.py:3585 App_Main.py:5318 App_Main.py:5328 -msgid "Tool from DB added in Tool Table." -msgstr "Ferramenta do Banco de Dados adicionada na Tabela de Ferramentas." - -#: AppTools/ToolMove.py:102 -msgid "MOVE: Click on the Start point ..." -msgstr "MOVER: Clique no ponto inicial ..." - -#: AppTools/ToolMove.py:113 -msgid "Cancelled. No object(s) to move." -msgstr "Cancelado. Nenhum objeto para mover." - -#: AppTools/ToolMove.py:140 -msgid "MOVE: Click on the Destination point ..." -msgstr "MOVER: Clique no ponto de destino ..." - -#: AppTools/ToolMove.py:163 -msgid "Moving..." -msgstr "Movendo ..." - -#: AppTools/ToolMove.py:166 -msgid "No object(s) selected." -msgstr "Nenhum objeto selecionado." - -#: AppTools/ToolMove.py:221 -msgid "Error when mouse left click." -msgstr "Erro ao clicar no botão esquerdo do mouse." - -#: AppTools/ToolNCC.py:42 -msgid "Non-Copper Clearing" -msgstr "Área Sem Cobre (NCC)" - -#: AppTools/ToolNCC.py:86 AppTools/ToolPaint.py:79 -msgid "Obj Type" -msgstr "Tipo Obj" - -#: AppTools/ToolNCC.py:88 -msgid "" -"Specify the type of object to be cleared of excess copper.\n" -"It can be of type: Gerber or Geometry.\n" -"What is selected here will dictate the kind\n" -"of objects that will populate the 'Object' combobox." -msgstr "" -"Especifique o tipo de objeto a ser limpo do excesso de cobre.\n" -"Pode ser do tipo: Gerber ou Geometria.\n" -"O tipo selecionado aqui ditará o tipo\n" -"de objetos da caixa de combinação 'Objeto'." - -#: AppTools/ToolNCC.py:110 -msgid "Object to be cleared of excess copper." -msgstr "Objeto a retirar o excesso de cobre." - -#: AppTools/ToolNCC.py:138 -msgid "" -"This is the Tool Number.\n" -"Non copper clearing will start with the tool with the biggest \n" -"diameter, continuing until there are no more tools.\n" -"Only tools that create NCC clearing geometry will still be present\n" -"in the resulting geometry. This is because with some tools\n" -"this function will not be able to create painting geometry." -msgstr "" -"Este é o Número da Ferramenta.\n" -"A retirada de cobre (NCC) começará com a ferramenta de maior diâmetro,\n" -"continuando até que não haja mais ferramentas. Somente ferramentas\n" -"que criam a geometria de NCC estarão presentes na geometria\n" -"resultante. Isso ocorre porque com algumas ferramentas esta função\n" -"não será capaz de criar geometria de pintura." - -#: AppTools/ToolNCC.py:597 AppTools/ToolPaint.py:536 -msgid "Generate Geometry" -msgstr "Gerar Geometria" - -#: AppTools/ToolNCC.py:1638 -msgid "Wrong Tool Dia value format entered, use a number." -msgstr "Valor errado para o diâmetro. Use um número." - -#: AppTools/ToolNCC.py:1649 AppTools/ToolPaint.py:1443 -msgid "No selected tools in Tool Table." -msgstr "Nenhuma ferramenta selecionada na Tabela." - -#: AppTools/ToolNCC.py:2005 AppTools/ToolNCC.py:3024 -msgid "NCC Tool. Preparing non-copper polygons." -msgstr "Ferramenta NCC. Preparando polígonos." - -#: AppTools/ToolNCC.py:2064 AppTools/ToolNCC.py:3152 -msgid "NCC Tool. Calculate 'empty' area." -msgstr "Ferramenta NCC. Cálculo de áreas 'vazias'." - -#: AppTools/ToolNCC.py:2083 AppTools/ToolNCC.py:2192 AppTools/ToolNCC.py:2207 -#: AppTools/ToolNCC.py:3165 AppTools/ToolNCC.py:3270 AppTools/ToolNCC.py:3285 -#: AppTools/ToolNCC.py:3551 AppTools/ToolNCC.py:3652 AppTools/ToolNCC.py:3667 -msgid "Buffering finished" -msgstr "Criar Buffer concluído" - -#: AppTools/ToolNCC.py:2091 AppTools/ToolNCC.py:2214 AppTools/ToolNCC.py:3173 -#: AppTools/ToolNCC.py:3292 AppTools/ToolNCC.py:3558 AppTools/ToolNCC.py:3674 -msgid "Could not get the extent of the area to be non copper cleared." -msgstr "Não foi possível obter a extensão da área para retirada de cobre." - -#: AppTools/ToolNCC.py:2121 AppTools/ToolNCC.py:2200 AppTools/ToolNCC.py:3200 -#: AppTools/ToolNCC.py:3277 AppTools/ToolNCC.py:3578 AppTools/ToolNCC.py:3659 -msgid "" -"Isolation geometry is broken. Margin is less than isolation tool diameter." -msgstr "" -"A geometria de isolação está quebrada. A margem é menor que o diâmetro da " -"ferramenta de isolação." - -#: AppTools/ToolNCC.py:2217 AppTools/ToolNCC.py:3296 AppTools/ToolNCC.py:3677 -msgid "The selected object is not suitable for copper clearing." -msgstr "O objeto selecionado não é adequado para retirada de cobre." - -#: AppTools/ToolNCC.py:2224 AppTools/ToolNCC.py:3303 -msgid "NCC Tool. Finished calculation of 'empty' area." -msgstr "Ferramenta NCC. Cálculo de área 'vazia' concluído." - -#: AppTools/ToolNCC.py:2267 -#, fuzzy -#| msgid "Painting polygon with method: lines." -msgid "Clearing the polygon with the method: lines." -msgstr "Pintando o polígono com método: linhas." - -#: AppTools/ToolNCC.py:2277 -#, fuzzy -#| msgid "Failed. Painting polygon with method: seed." -msgid "Failed. Clearing the polygon with the method: seed." -msgstr "Falhou. Pintando o polígono com método: semente." - -#: AppTools/ToolNCC.py:2286 -#, fuzzy -#| msgid "Failed. Painting polygon with method: standard." -msgid "Failed. Clearing the polygon with the method: standard." -msgstr "Falhou. Pintando o polígono com método: padrão." - -#: AppTools/ToolNCC.py:2300 -#, fuzzy -#| msgid "Geometry could not be painted completely" -msgid "Geometry could not be cleared completely" -msgstr "A geometria não pode ser pintada completamente" - -#: AppTools/ToolNCC.py:2325 AppTools/ToolNCC.py:2327 AppTools/ToolNCC.py:2973 -#: AppTools/ToolNCC.py:2975 -msgid "Non-Copper clearing ..." -msgstr "Retirando cobre da área..." - -#: AppTools/ToolNCC.py:2377 AppTools/ToolNCC.py:3120 -msgid "" -"NCC Tool. Finished non-copper polygons. Normal copper clearing task started." -msgstr "" -"Ferramenta NCC. Polígonos concluídos. Tarefa de retirada de cobre iniciada." - -#: AppTools/ToolNCC.py:2415 AppTools/ToolNCC.py:2663 -msgid "NCC Tool failed creating bounding box." -msgstr "A Ferramenta NCC falhou ao criar a caixa delimitadora." - -#: AppTools/ToolNCC.py:2430 AppTools/ToolNCC.py:2680 AppTools/ToolNCC.py:3316 -#: AppTools/ToolNCC.py:3702 -msgid "NCC Tool clearing with tool diameter" -msgstr "NCC. Ferramenta com Diâmetro" - -#: AppTools/ToolNCC.py:2430 AppTools/ToolNCC.py:2680 AppTools/ToolNCC.py:3316 -#: AppTools/ToolNCC.py:3702 -msgid "started." -msgstr "iniciada." - -#: AppTools/ToolNCC.py:2588 AppTools/ToolNCC.py:3477 -msgid "" -"There is no NCC Geometry in the file.\n" -"Usually it means that the tool diameter is too big for the painted " -"geometry.\n" -"Change the painting parameters and try again." -msgstr "" -"Não há geometria de retirada de cobre no arquivo.\n" -"Geralmente significa que o diâmetro da ferramenta é muito grande para a " -"geometria pintada.\n" -"Altere os parâmetros de pintura e tente novamente." - -#: AppTools/ToolNCC.py:2597 AppTools/ToolNCC.py:3486 -msgid "NCC Tool clear all done." -msgstr "Retirada de cobre concluída." - -#: AppTools/ToolNCC.py:2600 AppTools/ToolNCC.py:3489 -msgid "NCC Tool clear all done but the copper features isolation is broken for" -msgstr "Retirada de cobre concluída, mas a isolação está quebrada por" - -#: AppTools/ToolNCC.py:2602 AppTools/ToolNCC.py:2888 AppTools/ToolNCC.py:3491 -#: AppTools/ToolNCC.py:3874 -msgid "tools" -msgstr "ferramentas" - -#: AppTools/ToolNCC.py:2884 AppTools/ToolNCC.py:3870 -msgid "NCC Tool Rest Machining clear all done." -msgstr "Retirada de cobre por usinagem de descanso concluída." - -#: AppTools/ToolNCC.py:2887 AppTools/ToolNCC.py:3873 -msgid "" -"NCC Tool Rest Machining clear all done but the copper features isolation is " -"broken for" -msgstr "" -"Retirada de cobre por usinagem de descanso concluída, mas a isolação está " -"quebrada por" - -#: AppTools/ToolNCC.py:2985 -msgid "NCC Tool started. Reading parameters." -msgstr "Ferramenta NCC iniciada. Lendo parâmetros." - -#: AppTools/ToolNCC.py:3972 -msgid "" -"Try to use the Buffering Type = Full in Preferences -> Gerber General. " -"Reload the Gerber file after this change." -msgstr "" -"Tente usar o Tipo de Buffer = Completo em Preferências -> Gerber Geral." -"Recarregue o arquivo Gerber após esta alteração." - -#: AppTools/ToolOptimal.py:85 -msgid "Number of decimals kept for found distances." -msgstr "Número de casas decimais mantido para as distâncias encontradas." - -#: AppTools/ToolOptimal.py:93 -msgid "Minimum distance" -msgstr "Distância mínima" - -#: AppTools/ToolOptimal.py:94 -msgid "Display minimum distance between copper features." -msgstr "Mostra a distância mínima entre elementos de cobre." - -#: AppTools/ToolOptimal.py:98 -msgid "Determined" -msgstr "Determinado" - -#: AppTools/ToolOptimal.py:112 -msgid "Occurring" -msgstr "Ocorrendo" - -#: AppTools/ToolOptimal.py:113 -msgid "How many times this minimum is found." -msgstr "Quantas vezes o mínimo foi encontrado." - -#: AppTools/ToolOptimal.py:119 -msgid "Minimum points coordinates" -msgstr "Coordenadas da distância mínima" - -#: AppTools/ToolOptimal.py:120 AppTools/ToolOptimal.py:126 -msgid "Coordinates for points where minimum distance was found." -msgstr "Coordenadas dos pontos onde a distância mínima foi encontrada." - -#: AppTools/ToolOptimal.py:139 AppTools/ToolOptimal.py:215 -msgid "Jump to selected position" -msgstr "Ir para a posição selecionada" - -#: AppTools/ToolOptimal.py:141 AppTools/ToolOptimal.py:217 -msgid "" -"Select a position in the Locations text box and then\n" -"click this button." -msgstr "" -"Selecione uma posição na caixa de texto Locais e, em seguida,\n" -"clique neste botão." - -#: AppTools/ToolOptimal.py:149 -msgid "Other distances" -msgstr "Outras distâncias" - -#: AppTools/ToolOptimal.py:150 -msgid "" -"Will display other distances in the Gerber file ordered from\n" -"the minimum to the maximum, not including the absolute minimum." -msgstr "" -"Exibe outras distâncias no arquivo Gerber ordenadas do\n" -"mínimo ao máximo, sem incluir o mínimo absoluto." - -#: AppTools/ToolOptimal.py:155 -msgid "Other distances points coordinates" -msgstr "Coordenadas dos pontos das outras distâncias" - -#: AppTools/ToolOptimal.py:156 AppTools/ToolOptimal.py:170 -#: AppTools/ToolOptimal.py:177 AppTools/ToolOptimal.py:194 -#: AppTools/ToolOptimal.py:201 -msgid "" -"Other distances and the coordinates for points\n" -"where the distance was found." -msgstr "" -"Outras distâncias e coordenadas dos pontos\n" -"onde a distância foi encontrada." - -#: AppTools/ToolOptimal.py:169 -msgid "Gerber distances" -msgstr "Distâncias Gerber" - -#: AppTools/ToolOptimal.py:193 -msgid "Points coordinates" -msgstr "Coordenadas dos pontos" - -#: AppTools/ToolOptimal.py:225 -msgid "Find Minimum" -msgstr "Encontrar o Mínimo" - -#: AppTools/ToolOptimal.py:227 -msgid "" -"Calculate the minimum distance between copper features,\n" -"this will allow the determination of the right tool to\n" -"use for isolation or copper clearing." -msgstr "" -"Calcula a distância mínima entre os recursos de cobre.\n" -"Isso permite a determinação da ferramenta certa para\n" -"usar na isolação ou remoção de cobre." - -#: AppTools/ToolOptimal.py:352 -msgid "Only Gerber objects can be evaluated." -msgstr "Apenas objetos Gerber podem ser usados." - -#: AppTools/ToolOptimal.py:358 -msgid "" -"Optimal Tool. Started to search for the minimum distance between copper " -"features." -msgstr "" -"Ferramenta Ideal. Começou a procurar a distância mínima entre os recursos de " -"cobre." - -#: AppTools/ToolOptimal.py:368 -msgid "Optimal Tool. Parsing geometry for aperture" -msgstr "Ferramenta Ideal. Analisando a geometria para abertura" - -#: AppTools/ToolOptimal.py:379 -msgid "Optimal Tool. Creating a buffer for the object geometry." -msgstr "Ferramenta Ideal. Criando um buffer para objeto geometria." - -#: AppTools/ToolOptimal.py:389 -msgid "" -"The Gerber object has one Polygon as geometry.\n" -"There are no distances between geometry elements to be found." -msgstr "" -"O objeto Gerber possui um polígono como geometria.\n" -"Não há distâncias entre os elementos geométricos a serem encontrados." - -#: AppTools/ToolOptimal.py:394 -msgid "" -"Optimal Tool. Finding the distances between each two elements. Iterations" -msgstr "" -"Ferramenta Ideal. Encontrando as distâncias entre cada dois elementos. " -"Iterações" - -#: AppTools/ToolOptimal.py:429 -msgid "Optimal Tool. Finding the minimum distance." -msgstr "Ferramenta Ideal. Encontrando a distância mínima." - -#: AppTools/ToolOptimal.py:445 -msgid "Optimal Tool. Finished successfully." -msgstr "Ferramenta Ideal. Finalizado com sucesso." - -#: AppTools/ToolPDF.py:91 AppTools/ToolPDF.py:95 -msgid "Open PDF" -msgstr "Abrir PDF" - -#: AppTools/ToolPDF.py:98 -msgid "Open PDF cancelled" -msgstr "Abrir PDF cancelado" - -#: AppTools/ToolPDF.py:122 -msgid "Parsing PDF file ..." -msgstr "Analisando arquivo PDF ..." - -#: AppTools/ToolPDF.py:138 App_Main.py:8593 -msgid "Failed to open" -msgstr "Falha ao abrir" - -#: AppTools/ToolPDF.py:203 AppTools/ToolPcbWizard.py:445 App_Main.py:8542 -msgid "No geometry found in file" -msgstr "Nenhuma geometria encontrada no arquivo" - -#: AppTools/ToolPDF.py:206 AppTools/ToolPDF.py:279 -#, python-format -msgid "Rendering PDF layer #%d ..." -msgstr "Renderizando camada PDF #%d ..." - -#: AppTools/ToolPDF.py:210 AppTools/ToolPDF.py:283 -msgid "Open PDF file failed." -msgstr "Falha ao abrir arquivo PDF." - -#: AppTools/ToolPDF.py:215 AppTools/ToolPDF.py:288 -msgid "Rendered" -msgstr "Processado" - -#: AppTools/ToolPaint.py:81 -msgid "" -"Specify the type of object to be painted.\n" -"It can be of type: Gerber or Geometry.\n" -"What is selected here will dictate the kind\n" -"of objects that will populate the 'Object' combobox." -msgstr "" -"Especifique o tipo de objeto a ser pintado.\n" -"Pode ser do tipo: Gerber ou Geometry.\n" -"O que é selecionado aqui irá ditar o tipo\n" -"de objetos que preencherão a caixa de combinação 'Objeto'." - -#: AppTools/ToolPaint.py:103 -msgid "Object to be painted." -msgstr "Objeto a ser pintado." - -#: AppTools/ToolPaint.py:116 -msgid "" -"Tools pool from which the algorithm\n" -"will pick the ones used for painting." -msgstr "" -"Conjunto de ferramentas do qual o algoritmo\n" -"escolherá para a pintura." - -#: AppTools/ToolPaint.py:133 -msgid "" -"This is the Tool Number.\n" -"Painting will start with the tool with the biggest diameter,\n" -"continuing until there are no more tools.\n" -"Only tools that create painting geometry will still be present\n" -"in the resulting geometry. This is because with some tools\n" -"this function will not be able to create painting geometry." -msgstr "" -"Este é o Número da Ferramenta.\n" -"A pintura começará com a ferramenta com o maior diâmetro,\n" -"continuando até que não haja mais ferramentas.\n" -"As únicas ferramentas que criam a geometria da pintura ainda estarão " -"presentes\n" -"na geometria resultante. Isso ocorre porque com algumas ferramentas\n" -"não são capazes de criar geometria de pintura nesta função." - -#: AppTools/ToolPaint.py:145 -msgid "" -"The Tool Type (TT) can be:\n" -"- Circular -> it is informative only. Being circular,\n" -"the cut width in material is exactly the tool diameter.\n" -"- Ball -> informative only and make reference to the Ball type endmill.\n" -"- V-Shape -> it will disable Z-Cut parameter in the resulting geometry UI " -"form\n" -"and enable two additional UI form fields in the resulting geometry: V-Tip " -"Dia and\n" -"V-Tip Angle. Adjusting those two values will adjust the Z-Cut parameter " -"such\n" -"as the cut width into material will be equal with the value in the Tool " -"Diameter\n" -"column of this table.\n" -"Choosing the 'V-Shape' Tool Type automatically will select the Operation " -"Type\n" -"in the resulting geometry as Isolation." -msgstr "" -"O Tipo de Ferramenta (TF) pode ser:\n" -"- Circular com 1 ... 4 dentes -> é apenas informativo. Como é circular,\n" -"a largura do corte é igual ao diâmetro da ferramenta.\n" -"- Bola -> apenas informativo e faz referência a uma fresa do tipo bola.\n" -"- Forma em V -> o parâmetro corte Z será desativado no formulário e serão\n" -"habilitados dois campos adicionais: Diâmetro da Ponta-V e Ângulo da Ponta-" -"V.\n" -"Ajustando esses dois parâmetros irá alterar o parâmetro Corte Z como a " -"largura\n" -"de corte no material, será igual ao valor na coluna Diâmetro da Ferramenta " -"desta tabela.\n" -"Escolhendo o tipo \"Forma em V\" automaticamente selecionará o Tipo de " -"Operação Isolação." - -#: AppTools/ToolPaint.py:497 -msgid "" -"The type of FlatCAM object to be used as paint reference.\n" -"It can be Gerber, Excellon or Geometry." -msgstr "" -"O tipo de objeto FlatCAM a ser usado como referência de pintura.\n" -"Pode ser Gerber, Excellon ou Geometria." - -#: AppTools/ToolPaint.py:538 -msgid "" -"- 'Area Selection' - left mouse click to start selection of the area to be " -"painted.\n" -"Keeping a modifier key pressed (CTRL or SHIFT) will allow to add multiple " -"areas.\n" -"- 'All Polygons' - the Paint will start after click.\n" -"- 'Reference Object' - will do non copper clearing within the area\n" -"specified by another object." -msgstr "" -"- 'Seleção de Área' - clique com o botão esquerdo do mouse para iniciar a " -"seleção da área a ser pintada.\n" -"Manter uma tecla modificadora pressionada (CTRL ou SHIFT) permite adicionar " -"várias áreas.\n" -"- 'Todos os polígonos' - a Pintura será iniciada após o clique.\n" -"- 'Objeto de Referência' - pintará dentro da área do objeto especificado." - -#: AppTools/ToolPaint.py:1412 -#, python-format -msgid "Could not retrieve object: %s" -msgstr "Não foi possível recuperar o objeto: %s" - -#: AppTools/ToolPaint.py:1422 -msgid "Can't do Paint on MultiGeo geometries" -msgstr "Não é possível pintar geometrias MultiGeo" - -#: AppTools/ToolPaint.py:1459 -msgid "Click on a polygon to paint it." -msgstr "Clique em um polígono para pintá-lo." - -#: AppTools/ToolPaint.py:1472 -msgid "Click the start point of the paint area." -msgstr "Clique no ponto inicial da área de pintura." - -#: AppTools/ToolPaint.py:1537 -msgid "Click to add next polygon or right click to start painting." -msgstr "" -"Clique para adicionar o próximo polígono ou clique com o botão direito do " -"mouse para começar a pintar." - -#: AppTools/ToolPaint.py:1550 -msgid "Click to add/remove next polygon or right click to start painting." -msgstr "" -"Clique para adicionar/remover o próximo polígono ou clique com o botão " -"direito do mouse para começar a pintar." - -#: AppTools/ToolPaint.py:2054 -msgid "Painting polygon with method: lines." -msgstr "Pintando o polígono com método: linhas." - -#: AppTools/ToolPaint.py:2066 -msgid "Failed. Painting polygon with method: seed." -msgstr "Falhou. Pintando o polígono com método: semente." - -#: AppTools/ToolPaint.py:2077 -msgid "Failed. Painting polygon with method: standard." -msgstr "Falhou. Pintando o polígono com método: padrão." - -#: AppTools/ToolPaint.py:2093 -msgid "Geometry could not be painted completely" -msgstr "A geometria não pode ser pintada completamente" - -#: AppTools/ToolPaint.py:2122 AppTools/ToolPaint.py:2125 -#: AppTools/ToolPaint.py:2133 AppTools/ToolPaint.py:2436 -#: AppTools/ToolPaint.py:2439 AppTools/ToolPaint.py:2447 -#: AppTools/ToolPaint.py:2935 AppTools/ToolPaint.py:2938 -#: AppTools/ToolPaint.py:2944 -msgid "Paint Tool." -msgstr "Ferramenta de Pintura." - -#: AppTools/ToolPaint.py:2122 AppTools/ToolPaint.py:2125 -#: AppTools/ToolPaint.py:2133 -msgid "Normal painting polygon task started." -msgstr "Tarefa normal de pintura de polígono iniciada." - -#: AppTools/ToolPaint.py:2123 AppTools/ToolPaint.py:2437 -#: AppTools/ToolPaint.py:2936 -msgid "Buffering geometry..." -msgstr "Fazendo buffer de polígono..." - -#: AppTools/ToolPaint.py:2145 AppTools/ToolPaint.py:2454 -#: AppTools/ToolPaint.py:2952 -msgid "No polygon found." -msgstr "Nenhum polígono encontrado." - -#: AppTools/ToolPaint.py:2175 -msgid "Painting polygon..." -msgstr "Pintando o polígono..." - -#: AppTools/ToolPaint.py:2185 AppTools/ToolPaint.py:2500 -#: AppTools/ToolPaint.py:2690 AppTools/ToolPaint.py:2998 -#: AppTools/ToolPaint.py:3177 -msgid "Painting with tool diameter = " -msgstr "Pintura com diâmetro = " - -#: AppTools/ToolPaint.py:2186 AppTools/ToolPaint.py:2501 -#: AppTools/ToolPaint.py:2691 AppTools/ToolPaint.py:2999 -#: AppTools/ToolPaint.py:3178 -msgid "started" -msgstr "iniciada" - -#: AppTools/ToolPaint.py:2211 AppTools/ToolPaint.py:2527 -#: AppTools/ToolPaint.py:2717 AppTools/ToolPaint.py:3025 -#: AppTools/ToolPaint.py:3204 -msgid "Margin parameter too big. Tool is not used" -msgstr "Parâmetro de margem muito grande. A ferramenta não é usada" - -#: AppTools/ToolPaint.py:2269 AppTools/ToolPaint.py:2596 -#: AppTools/ToolPaint.py:2774 AppTools/ToolPaint.py:3088 -#: AppTools/ToolPaint.py:3266 -msgid "" -"Could not do Paint. Try a different combination of parameters. Or a " -"different strategy of paint" -msgstr "" -"Não foi possível pintar. Tente uma combinação diferente de parâmetros ou uma " -"estratégia diferente de pintura" - -#: AppTools/ToolPaint.py:2326 AppTools/ToolPaint.py:2662 -#: AppTools/ToolPaint.py:2831 AppTools/ToolPaint.py:3149 -#: AppTools/ToolPaint.py:3328 -msgid "" -"There is no Painting Geometry in the file.\n" -"Usually it means that the tool diameter is too big for the painted " -"geometry.\n" -"Change the painting parameters and try again." -msgstr "" -"Não há geometria de pintura no arquivo.\n" -"Geralmente significa que o diâmetro da ferramenta é muito grande para a " -"geometria pintada.\n" -"Altere os parâmetros de pintura e tente novamente." - -#: AppTools/ToolPaint.py:2349 -msgid "Paint Single failed." -msgstr "Pintura falhou." - -#: AppTools/ToolPaint.py:2355 -msgid "Paint Single Done." -msgstr "Pintura concluída." - -#: AppTools/ToolPaint.py:2357 AppTools/ToolPaint.py:2867 -#: AppTools/ToolPaint.py:3364 -msgid "Polygon Paint started ..." -msgstr "Pintura de polígonos iniciada ..." - -#: AppTools/ToolPaint.py:2436 AppTools/ToolPaint.py:2439 -#: AppTools/ToolPaint.py:2447 -msgid "Paint all polygons task started." -msgstr "Tarefa pintar todos os polígonos iniciada." - -#: AppTools/ToolPaint.py:2478 AppTools/ToolPaint.py:2976 -msgid "Painting polygons..." -msgstr "Pintando políginos..." - -#: AppTools/ToolPaint.py:2671 -msgid "Paint All Done." -msgstr "Pintura concluída." - -#: AppTools/ToolPaint.py:2840 AppTools/ToolPaint.py:3337 -msgid "Paint All with Rest-Machining done." -msgstr "Pintura total com usinagem de descanso concluída." - -#: AppTools/ToolPaint.py:2859 -msgid "Paint All failed." -msgstr "Pintura falhou." - -#: AppTools/ToolPaint.py:2865 -msgid "Paint Poly All Done." -msgstr "Pinte Todos os Polígonos feitos." - -#: AppTools/ToolPaint.py:2935 AppTools/ToolPaint.py:2938 -#: AppTools/ToolPaint.py:2944 -msgid "Painting area task started." -msgstr "Iniciada a pintura de área." - -#: AppTools/ToolPaint.py:3158 -msgid "Paint Area Done." -msgstr "Pintura de Área concluída." - -#: AppTools/ToolPaint.py:3356 -msgid "Paint Area failed." -msgstr "Pintura de Área falhou." - -#: AppTools/ToolPaint.py:3362 -msgid "Paint Poly Area Done." -msgstr "Pintura de Área concluída." - -#: AppTools/ToolPanelize.py:55 -msgid "" -"Specify the type of object to be panelized\n" -"It can be of type: Gerber, Excellon or Geometry.\n" -"The selection here decide the type of objects that will be\n" -"in the Object combobox." -msgstr "" -"Especifique o tipo de objeto para criar um painel\n" -"Pode ser do tipo: Gerber, Excellon ou Geometria.\n" -"A seleção aqui decide o tipo de objetos que estarão\n" -"na Caixa de Objetos." - -#: AppTools/ToolPanelize.py:88 -msgid "" -"Object to be panelized. This means that it will\n" -"be duplicated in an array of rows and columns." -msgstr "" -"Objeto para criar painel. Isso significa\n" -"que ele será duplicado em uma matriz de linhas e colunas." - -#: AppTools/ToolPanelize.py:100 -msgid "Penelization Reference" -msgstr "Referência para Criação de Painel" - -#: AppTools/ToolPanelize.py:102 -msgid "" -"Choose the reference for panelization:\n" -"- Object = the bounding box of a different object\n" -"- Bounding Box = the bounding box of the object to be panelized\n" -"\n" -"The reference is useful when doing panelization for more than one\n" -"object. The spacings (really offsets) will be applied in reference\n" -"to this reference object therefore maintaining the panelized\n" -"objects in sync." -msgstr "" -"Escolha a referência para criação do painel:\n" -"- Objeto = a caixa delimitadora de um objeto diferente\n" -"- Caixa Delimitadora = a caixa delimitadora do objeto para criar o painel\n" -"\n" -"A referência é útil ao criar um painel para mais de um objeto.\n" -"Os espaçamentos (deslocamentos) serão aplicados em referência\n" -"a este objeto de referência, portanto, mantendo os objetos\n" -"sincronizados no painel." - -#: AppTools/ToolPanelize.py:123 -msgid "Box Type" -msgstr "Tipo de Caixa" - -#: AppTools/ToolPanelize.py:125 -msgid "" -"Specify the type of object to be used as an container for\n" -"panelization. It can be: Gerber or Geometry type.\n" -"The selection here decide the type of objects that will be\n" -"in the Box Object combobox." -msgstr "" -"Especifique o tipo de objeto a ser usado como um contêiner para\n" -"o painel criado. Pode ser: tipo Gerber ou Geometria.\n" -"A seleção aqui decide o tipo de objetos que estarão na\n" -"Caixa de Objetos." - -#: AppTools/ToolPanelize.py:139 -msgid "" -"The actual object that is used as container for the\n" -" selected object that is to be panelized." -msgstr "" -"O objeto usado como contêiner para o objeto\n" -"selecionado para o qual será criado um painel." - -#: AppTools/ToolPanelize.py:149 -msgid "Panel Data" -msgstr "Dados do Painel" - -#: AppTools/ToolPanelize.py:151 -msgid "" -"This informations will shape the resulting panel.\n" -"The number of rows and columns will set how many\n" -"duplicates of the original geometry will be generated.\n" -"\n" -"The spacings will set the distance between any two\n" -"elements of the panel array." -msgstr "" -"Essas informações moldarão o painel resultante.\n" -"O número de linhas e colunas definirá quantas\n" -"duplicatas da geometria original serão geradas.\n" -"\n" -"Os espaçamentos definirão a distância entre os\n" -"elementos da matriz do painel." - -#: AppTools/ToolPanelize.py:214 -msgid "" -"Choose the type of object for the panel object:\n" -"- Geometry\n" -"- Gerber" -msgstr "" -"Escolha o tipo de objeto para o objeto de painel:\n" -"- Geometria\n" -"- Gerber" - -#: AppTools/ToolPanelize.py:222 -msgid "Constrain panel within" -msgstr "Restringir painel dentro de" - -#: AppTools/ToolPanelize.py:263 -msgid "Panelize Object" -msgstr "Criar Painel" - -#: AppTools/ToolPanelize.py:265 AppTools/ToolRulesCheck.py:501 -msgid "" -"Panelize the specified object around the specified box.\n" -"In other words it creates multiple copies of the source object,\n" -"arranged in a 2D array of rows and columns." -msgstr "" -"Cria um painel do objeto especificado ao redor da caixa especificada.\n" -"Em outras palavras, ele cria várias cópias do objeto de origem,\n" -"arranjado em uma matriz 2D de linhas e colunas." - -#: AppTools/ToolPanelize.py:333 -msgid "Panel. Tool" -msgstr "Ferramenta de Painel" - -#: AppTools/ToolPanelize.py:468 -msgid "Columns or Rows are zero value. Change them to a positive integer." -msgstr "Colunas ou Linhas com valor zero. Altere-os para um inteiro positivo." - -#: AppTools/ToolPanelize.py:505 -msgid "Generating panel ... " -msgstr "Gerando painel … " - -#: AppTools/ToolPanelize.py:788 -msgid "Generating panel ... Adding the Gerber code." -msgstr "Gerando painel ... Adicionando o código Gerber." - -#: AppTools/ToolPanelize.py:796 -msgid "Generating panel... Spawning copies" -msgstr "Gerando painel ... Cópias geradas" - -#: AppTools/ToolPanelize.py:803 -msgid "Panel done..." -msgstr "Painel criado..." - -#: AppTools/ToolPanelize.py:806 -#, python-brace-format -msgid "" -"{text} Too big for the constrain area. Final panel has {col} columns and " -"{row} rows" -msgstr "" -"{text} Grande demais para a área restrita.. O painel final tem {col} colunas " -"e {row} linhas" - -#: AppTools/ToolPanelize.py:815 -msgid "Panel created successfully." -msgstr "Painel criado com sucesso." - -#: AppTools/ToolPcbWizard.py:31 -msgid "PcbWizard Import Tool" -msgstr "Ferramenta de Importação PcbWizard" - -#: AppTools/ToolPcbWizard.py:40 -msgid "Import 2-file Excellon" -msgstr "Importar Excellon 2-arquivos" - -#: AppTools/ToolPcbWizard.py:51 -msgid "Load files" -msgstr "Carregar arquivos" - -#: AppTools/ToolPcbWizard.py:57 -msgid "Excellon file" -msgstr "Arquivo Excellon" - -#: AppTools/ToolPcbWizard.py:59 -msgid "" -"Load the Excellon file.\n" -"Usually it has a .DRL extension" -msgstr "" -"Carrega o arquivo Excellon.\n" -"Normalmente ele tem uma extensão .DRL" - -#: AppTools/ToolPcbWizard.py:65 -msgid "INF file" -msgstr "Arquivo INF" - -#: AppTools/ToolPcbWizard.py:67 -msgid "Load the INF file." -msgstr "Carrega o arquivo INF." - -#: AppTools/ToolPcbWizard.py:79 -msgid "Tool Number" -msgstr "Número da Ferramenta" - -#: AppTools/ToolPcbWizard.py:81 -msgid "Tool diameter in file units." -msgstr "Diâmetro da ferramenta em unidades de arquivo." - -#: AppTools/ToolPcbWizard.py:87 -msgid "Excellon format" -msgstr "Formato Excellon" - -#: AppTools/ToolPcbWizard.py:95 -msgid "Int. digits" -msgstr "Dígitos Int." - -#: AppTools/ToolPcbWizard.py:97 -msgid "The number of digits for the integral part of the coordinates." -msgstr "O número de dígitos da parte inteira das coordenadas." - -#: AppTools/ToolPcbWizard.py:104 -msgid "Frac. digits" -msgstr "Dígitos Frac." - -#: AppTools/ToolPcbWizard.py:106 -msgid "The number of digits for the fractional part of the coordinates." -msgstr "O número de dígitos para a parte fracionária das coordenadas." - -#: AppTools/ToolPcbWizard.py:113 -msgid "No Suppression" -msgstr "Sem supressão" - -#: AppTools/ToolPcbWizard.py:114 -msgid "Zeros supp." -msgstr "Sup. Zeros" - -#: AppTools/ToolPcbWizard.py:116 -msgid "" -"The type of zeros suppression used.\n" -"Can be of type:\n" -"- LZ = leading zeros are kept\n" -"- TZ = trailing zeros are kept\n" -"- No Suppression = no zero suppression" -msgstr "" -"O tipo de supressão de zeros usado.\n" -"Pode ser do tipo:\n" -"- LZ = zeros à esquerda são mantidos\n" -"- TZ = zeros à direita são mantidos\n" -"- Sem supressão = sem supressão de zeros" - -#: AppTools/ToolPcbWizard.py:129 -msgid "" -"The type of units that the coordinates and tool\n" -"diameters are using. Can be INCH or MM." -msgstr "" -"A unidade para as coordenadas e os diâmetros\n" -"de ferramentas. Pode ser Polegada ou mm." - -#: AppTools/ToolPcbWizard.py:136 -msgid "Import Excellon" -msgstr "Importar Excellon" - -#: AppTools/ToolPcbWizard.py:138 -msgid "" -"Import in FlatCAM an Excellon file\n" -"that store it's information's in 2 files.\n" -"One usually has .DRL extension while\n" -"the other has .INF extension." -msgstr "" -"Importa no FlatCAM um arquivo Excellon\n" -"que armazena suas informações em 2 arquivos.\n" -"Um geralmente possui extensão .DRL e o outro tem extensão .INF." - -#: AppTools/ToolPcbWizard.py:197 -msgid "PCBWizard Tool" -msgstr "Ferramenta PCBWizard" - -#: AppTools/ToolPcbWizard.py:291 AppTools/ToolPcbWizard.py:295 -msgid "Load PcbWizard Excellon file" -msgstr "Carregar o arquivo PCBWizard Excellon" - -#: AppTools/ToolPcbWizard.py:314 AppTools/ToolPcbWizard.py:318 -msgid "Load PcbWizard INF file" -msgstr "Carregar arquivo PCBWizard INF" - -#: AppTools/ToolPcbWizard.py:366 -msgid "" -"The INF file does not contain the tool table.\n" -"Try to open the Excellon file from File -> Open -> Excellon\n" -"and edit the drill diameters manually." -msgstr "" -"O arquivo INF não contém a tabela de ferramentas.\n" -"Tente abrir o arquivo Excellon em Arquivo -> Abrir -> Excellon\n" -"e edite os diâmetros dos furos manualmente." - -#: AppTools/ToolPcbWizard.py:387 -msgid "PcbWizard .INF file loaded." -msgstr "Arquivo PcbWizard .INF carregado." - -#: AppTools/ToolPcbWizard.py:392 -msgid "Main PcbWizard Excellon file loaded." -msgstr "Arquivo PcbWizard Excellon carregado." - -#: AppTools/ToolPcbWizard.py:424 App_Main.py:8520 -msgid "This is not Excellon file." -msgstr "Este não é um arquivo Excellon." - -#: AppTools/ToolPcbWizard.py:427 -msgid "Cannot parse file" -msgstr "Não é possível analisar o arquivo" - -#: AppTools/ToolPcbWizard.py:450 -msgid "Importing Excellon." -msgstr "Importando Excellon." - -#: AppTools/ToolPcbWizard.py:457 -msgid "Import Excellon file failed." -msgstr "Falha na importação do arquivo Excellon." - -#: AppTools/ToolPcbWizard.py:464 -msgid "Imported" -msgstr "Importado" - -#: AppTools/ToolPcbWizard.py:467 -msgid "Excellon merging is in progress. Please wait..." -msgstr "A união Excellon está em andamento. Por favor, espere..." - -#: AppTools/ToolPcbWizard.py:469 -msgid "The imported Excellon file is empty." -msgstr "O arquivo Excellon importado está Vazio." - -#: AppTools/ToolProperties.py:116 App_Main.py:4692 App_Main.py:6803 -#: App_Main.py:6903 App_Main.py:6944 App_Main.py:6985 App_Main.py:7027 -#: App_Main.py:7069 App_Main.py:7113 App_Main.py:7157 App_Main.py:7681 -#: App_Main.py:7685 -msgid "No object selected." -msgstr "Nenhum objeto selecionado." - -#: AppTools/ToolProperties.py:131 -msgid "Object Properties are displayed." -msgstr "Propriedades do Objeto exibidas." - -#: AppTools/ToolProperties.py:136 -msgid "Properties Tool" -msgstr "Ferramenta Propriedades" - -#: AppTools/ToolProperties.py:150 -msgid "TYPE" -msgstr "TIPO" - -#: AppTools/ToolProperties.py:151 -msgid "NAME" -msgstr "NOME" - -#: AppTools/ToolProperties.py:153 -msgid "Dimensions" -msgstr "Dimensões" - -#: AppTools/ToolProperties.py:181 -msgid "Geo Type" -msgstr "Tipo Geo" - -#: AppTools/ToolProperties.py:184 -msgid "Single-Geo" -msgstr "Geo. Única" - -#: AppTools/ToolProperties.py:185 -msgid "Multi-Geo" -msgstr "Geo. Múltipla" - -#: AppTools/ToolProperties.py:196 -msgid "Calculating dimensions ... Please wait." -msgstr "Calculando dimensões ... Por favor, espere." - -#: AppTools/ToolProperties.py:339 AppTools/ToolProperties.py:343 -#: AppTools/ToolProperties.py:345 -msgid "Inch" -msgstr "Polegada" - -#: AppTools/ToolProperties.py:339 AppTools/ToolProperties.py:344 -#: AppTools/ToolProperties.py:346 -msgid "Metric" -msgstr "Métrico" - -#: AppTools/ToolProperties.py:421 AppTools/ToolProperties.py:486 -msgid "Drills number" -msgstr "Número de furos" - -#: AppTools/ToolProperties.py:422 AppTools/ToolProperties.py:488 -msgid "Slots number" -msgstr "Número de Ranhuras" - -#: AppTools/ToolProperties.py:424 -msgid "Drills total number:" -msgstr "Número total de furos:" - -#: AppTools/ToolProperties.py:425 -msgid "Slots total number:" -msgstr "Número total de ranhuras:" - -#: AppTools/ToolProperties.py:452 AppTools/ToolProperties.py:455 -#: AppTools/ToolProperties.py:458 AppTools/ToolProperties.py:483 -msgid "Present" -msgstr "Presente" - -#: AppTools/ToolProperties.py:453 AppTools/ToolProperties.py:484 -msgid "Solid Geometry" -msgstr "Geometria Sólida" - -#: AppTools/ToolProperties.py:456 -msgid "GCode Text" -msgstr "Texto G-Code" - -#: AppTools/ToolProperties.py:459 -msgid "GCode Geometry" -msgstr "Geometria G-Code" - -#: AppTools/ToolProperties.py:462 -msgid "Data" -msgstr "Dados" - -#: AppTools/ToolProperties.py:495 -msgid "Depth of Cut" -msgstr "Profundidade de Corte" - -#: AppTools/ToolProperties.py:507 -msgid "Clearance Height" -msgstr "Altura do Espaço" - -#: AppTools/ToolProperties.py:539 -msgid "Routing time" -msgstr "Tempo de roteamento" - -#: AppTools/ToolProperties.py:546 -msgid "Travelled distance" -msgstr "Distância percorrida" - -#: AppTools/ToolProperties.py:564 -msgid "Width" -msgstr "Largura" - -#: AppTools/ToolProperties.py:570 AppTools/ToolProperties.py:578 -msgid "Box Area" -msgstr "Área da Caixa" - -#: AppTools/ToolProperties.py:573 AppTools/ToolProperties.py:581 -msgid "Convex_Hull Area" -msgstr "Área Convexa do Casco" - -#: AppTools/ToolProperties.py:588 AppTools/ToolProperties.py:591 -msgid "Copper Area" -msgstr "Área de Cobre" - -#: AppTools/ToolPunchGerber.py:30 AppTools/ToolPunchGerber.py:323 -msgid "Punch Gerber" -msgstr "Gerber a Furar" - -#: AppTools/ToolPunchGerber.py:65 -msgid "Gerber into which to punch holes" -msgstr "Gerber no qual fazer furos" - -#: AppTools/ToolPunchGerber.py:85 -msgid "ALL" -msgstr "TODOS" - -#: AppTools/ToolPunchGerber.py:166 -msgid "" -"Remove the geometry of Excellon from the Gerber to create the holes in pads." -msgstr "Remove a geometria do Excellon do Gerber para criar os furos nos pads." - -#: AppTools/ToolPunchGerber.py:325 -msgid "" -"Create a Gerber object from the selected object, within\n" -"the specified box." -msgstr "" -"Cria um objeto Gerber a partir do objeto selecionado, dentro\n" -"da caixa especificada." - -#: AppTools/ToolPunchGerber.py:425 -msgid "Punch Tool" -msgstr "Ferramenta de Furos" - -#: AppTools/ToolPunchGerber.py:599 -msgid "The value of the fixed diameter is 0.0. Aborting." -msgstr "O valor do diâmetro fixo é 0.0. Abortando." - -#: AppTools/ToolPunchGerber.py:602 -msgid "" -"Could not generate punched hole Gerber because the punch hole size is bigger " -"than some of the apertures in the Gerber object." -msgstr "" -"Não foi possível gerar o Gerber dos furos porque o tamanho do perfurador é " -"maior que algumas das aberturas no objeto Gerber." - -#: AppTools/ToolPunchGerber.py:665 -msgid "" -"Could not generate punched hole Gerber because the newly created object " -"geometry is the same as the one in the source object geometry..." -msgstr "" -"Não foi possível gerar o Gerber dos furos porque a geometria do objeto recém-" -"criada é a mesma da geometria do objeto de origem ..." - -#: AppTools/ToolQRCode.py:80 -msgid "Gerber Object to which the QRCode will be added." -msgstr "Objeto Gerber ao qual o QRCode será adicionado." - -#: AppTools/ToolQRCode.py:116 -msgid "The parameters used to shape the QRCode." -msgstr "Os parâmetros usados para modelar o QRCode." - -#: AppTools/ToolQRCode.py:216 -msgid "Export QRCode" -msgstr "Exportar QRCode" - -#: AppTools/ToolQRCode.py:218 -msgid "" -"Show a set of controls allowing to export the QRCode\n" -"to a SVG file or an PNG file." -msgstr "" -"Mostrar um conjunto de controles que permitem exportar o QRCode\n" -"para um arquivo SVG ou PNG." - -#: AppTools/ToolQRCode.py:257 -msgid "Transparent back color" -msgstr "Cor transparente de fundo" - -#: AppTools/ToolQRCode.py:282 -msgid "Export QRCode SVG" -msgstr "Exportar QRCode SVG" - -#: AppTools/ToolQRCode.py:284 -msgid "Export a SVG file with the QRCode content." -msgstr "Exporta um arquivo SVG com o conteúdo QRCode." - -#: AppTools/ToolQRCode.py:295 -msgid "Export QRCode PNG" -msgstr "Exportar QRCode PNG" - -#: AppTools/ToolQRCode.py:297 -msgid "Export a PNG image file with the QRCode content." -msgstr "Exporta um arquivo PNG com o conteúdo QRCode." - -#: AppTools/ToolQRCode.py:308 -msgid "Insert QRCode" -msgstr "Inserir QRCode" - -#: AppTools/ToolQRCode.py:310 -msgid "Create the QRCode object." -msgstr "Cria o objeto QRCode." - -#: AppTools/ToolQRCode.py:424 AppTools/ToolQRCode.py:759 -#: AppTools/ToolQRCode.py:808 -msgid "Cancelled. There is no QRCode Data in the text box." -msgstr "Cancelado. Não há dados para o QRCode na caixa de texto." - -#: AppTools/ToolQRCode.py:443 -msgid "Generating QRCode geometry" -msgstr "Gerando Geometria QRCode" - -#: AppTools/ToolQRCode.py:483 -msgid "Click on the Destination point ..." -msgstr "Clique no ponto de destino ..." - -#: AppTools/ToolQRCode.py:598 -msgid "QRCode Tool done." -msgstr "Ferramenta QRCode pronta." - -#: AppTools/ToolQRCode.py:791 AppTools/ToolQRCode.py:795 -msgid "Export PNG" -msgstr "Exportar PNG" - -#: AppTools/ToolQRCode.py:838 AppTools/ToolQRCode.py:842 App_Main.py:6835 -#: App_Main.py:6839 -msgid "Export SVG" -msgstr "Exportar SVG" - -#: AppTools/ToolRulesCheck.py:33 -msgid "Check Rules" -msgstr "Verificar Regras" - -#: AppTools/ToolRulesCheck.py:63 -msgid "Gerber objects for which to check rules." -msgstr "Objeto para o qual verificar regras." - -#: AppTools/ToolRulesCheck.py:78 -msgid "Top" -msgstr "Topo" - -#: AppTools/ToolRulesCheck.py:80 -msgid "The Top Gerber Copper object for which rules are checked." -msgstr "Camada Gerber Superior para verificar regras." - -#: AppTools/ToolRulesCheck.py:96 -msgid "Bottom" -msgstr "Baixo" - -#: AppTools/ToolRulesCheck.py:98 -msgid "The Bottom Gerber Copper object for which rules are checked." -msgstr "Camada Gerber Inferior para verificar regras." - -#: AppTools/ToolRulesCheck.py:114 -msgid "SM Top" -msgstr "MS Topo" - -#: AppTools/ToolRulesCheck.py:116 -msgid "The Top Gerber Solder Mask object for which rules are checked." -msgstr "Máscara de Solda Superior para verificar regras." - -#: AppTools/ToolRulesCheck.py:132 -msgid "SM Bottom" -msgstr "MS Baixo" - -#: AppTools/ToolRulesCheck.py:134 -msgid "The Bottom Gerber Solder Mask object for which rules are checked." -msgstr "Máscara de Solda Inferior para verificar regras." - -#: AppTools/ToolRulesCheck.py:150 -msgid "Silk Top" -msgstr "Silk Topo" - -#: AppTools/ToolRulesCheck.py:152 -msgid "The Top Gerber Silkscreen object for which rules are checked." -msgstr "Silkscreen Superior para verificar regras." - -#: AppTools/ToolRulesCheck.py:168 -msgid "Silk Bottom" -msgstr "Silk Baixo" - -#: AppTools/ToolRulesCheck.py:170 -msgid "The Bottom Gerber Silkscreen object for which rules are checked." -msgstr "Silkscreen Inferior para verificar regras." - -#: AppTools/ToolRulesCheck.py:188 -msgid "The Gerber Outline (Cutout) object for which rules are checked." -msgstr "Objeto Gerber de Contorno (Recorte) para verificar regras." - -#: AppTools/ToolRulesCheck.py:201 -msgid "Excellon objects for which to check rules." -msgstr "Objetos Excellon para verificar regras." - -#: AppTools/ToolRulesCheck.py:213 -msgid "Excellon 1" -msgstr "Excellon 1" - -#: AppTools/ToolRulesCheck.py:215 -msgid "" -"Excellon object for which to check rules.\n" -"Holds the plated holes or a general Excellon file content." -msgstr "" -"Objeto Excellon para verificar regras.\n" -"Contém os furos galvanizados ou um conteúdo geral do arquivo Excellon." - -#: AppTools/ToolRulesCheck.py:232 -msgid "Excellon 2" -msgstr "Excellon 2" - -#: AppTools/ToolRulesCheck.py:234 -msgid "" -"Excellon object for which to check rules.\n" -"Holds the non-plated holes." -msgstr "" -"Objeto Excellon para verificar regras.\n" -"Contém os furos não galvanizados." - -#: AppTools/ToolRulesCheck.py:247 -msgid "All Rules" -msgstr "Todas as Regras" - -#: AppTools/ToolRulesCheck.py:249 -msgid "This check/uncheck all the rules below." -msgstr "Seleciona/deseleciona todas as regras abaixo." - -#: AppTools/ToolRulesCheck.py:499 -msgid "Run Rules Check" -msgstr "Avaliar Regras" - -#: AppTools/ToolRulesCheck.py:1158 AppTools/ToolRulesCheck.py:1218 -#: AppTools/ToolRulesCheck.py:1255 AppTools/ToolRulesCheck.py:1327 -#: AppTools/ToolRulesCheck.py:1381 AppTools/ToolRulesCheck.py:1419 -#: AppTools/ToolRulesCheck.py:1484 -msgid "Value is not valid." -msgstr "Valor inválido." - -#: AppTools/ToolRulesCheck.py:1172 -msgid "TOP -> Copper to Copper clearance" -msgstr "TOPO -> Espaço Cobre Cobre" - -#: AppTools/ToolRulesCheck.py:1183 -msgid "BOTTOM -> Copper to Copper clearance" -msgstr "BAIXO -> Espaço Cobre Cobre" - -#: AppTools/ToolRulesCheck.py:1188 AppTools/ToolRulesCheck.py:1282 -#: AppTools/ToolRulesCheck.py:1446 -msgid "" -"At least one Gerber object has to be selected for this rule but none is " -"selected." -msgstr "" -"Pelo menos um objeto Gerber deve ser selecionado para esta regra, mas nenhum " -"está selecionado." - -#: AppTools/ToolRulesCheck.py:1224 -msgid "" -"One of the copper Gerber objects or the Outline Gerber object is not valid." -msgstr "" -"Um dos objetos Gerber de cobre ou o objeto Gerber de Contorno não é válido." - -#: AppTools/ToolRulesCheck.py:1237 AppTools/ToolRulesCheck.py:1401 -msgid "" -"Outline Gerber object presence is mandatory for this rule but it is not " -"selected." -msgstr "" -"A presença do objeto Gerber de Contorno é obrigatória para esta regra, mas " -"não está selecionada." - -#: AppTools/ToolRulesCheck.py:1254 AppTools/ToolRulesCheck.py:1281 -msgid "Silk to Silk clearance" -msgstr "Espaço Silk Silk" - -#: AppTools/ToolRulesCheck.py:1267 -msgid "TOP -> Silk to Silk clearance" -msgstr "TOPO -> Espaço Silk Silk" - -#: AppTools/ToolRulesCheck.py:1277 -msgid "BOTTOM -> Silk to Silk clearance" -msgstr "BAIXO -> Espaço Silk Silk" - -#: AppTools/ToolRulesCheck.py:1333 -msgid "One or more of the Gerber objects is not valid." -msgstr "Um ou mais dos objetos Gerber não são válidos." - -#: AppTools/ToolRulesCheck.py:1341 -msgid "TOP -> Silk to Solder Mask Clearance" -msgstr "TOPO -> Espaço Silk Máscara de Solda" - -#: AppTools/ToolRulesCheck.py:1347 -msgid "BOTTOM -> Silk to Solder Mask Clearance" -msgstr "BAIXO -> Espaço Silk Máscara de Solda" - -#: AppTools/ToolRulesCheck.py:1351 -msgid "" -"Both Silk and Solder Mask Gerber objects has to be either both Top or both " -"Bottom." -msgstr "" -"Os objetos Gerber de Silkscreen e da Máscara de Solda devem estar no mesmo " -"lado: superior ou inferior." - -#: AppTools/ToolRulesCheck.py:1387 -msgid "" -"One of the Silk Gerber objects or the Outline Gerber object is not valid." -msgstr "Um dos objetos do Gerber não é válido: Silkscreen ou Contorno." - -#: AppTools/ToolRulesCheck.py:1431 -msgid "TOP -> Minimum Solder Mask Sliver" -msgstr "TOPO -> Máscara de Solda Mínima" - -#: AppTools/ToolRulesCheck.py:1441 -msgid "BOTTOM -> Minimum Solder Mask Sliver" -msgstr "BAIXO -> Máscara de Solda Mínima" - -#: AppTools/ToolRulesCheck.py:1490 -msgid "One of the Copper Gerber objects or the Excellon objects is not valid." -msgstr "Um dos objetos não é válido: Gerber Cobre ou Excellon." - -#: AppTools/ToolRulesCheck.py:1506 -msgid "" -"Excellon object presence is mandatory for this rule but none is selected." -msgstr "" -"A presença de objeto Excellon é obrigatória para esta regra, mas nenhum está " -"selecionado." - -#: AppTools/ToolRulesCheck.py:1579 AppTools/ToolRulesCheck.py:1592 -#: AppTools/ToolRulesCheck.py:1603 AppTools/ToolRulesCheck.py:1616 -msgid "STATUS" -msgstr "ESTADO" - -#: AppTools/ToolRulesCheck.py:1582 AppTools/ToolRulesCheck.py:1606 -msgid "FAILED" -msgstr "FALHOU" - -#: AppTools/ToolRulesCheck.py:1595 AppTools/ToolRulesCheck.py:1619 -msgid "PASSED" -msgstr "PASSOU" - -#: AppTools/ToolRulesCheck.py:1596 AppTools/ToolRulesCheck.py:1620 -msgid "Violations: There are no violations for the current rule." -msgstr "Violações: não há violações para a regra atual." - -#: AppTools/ToolShell.py:59 -msgid "Clear the text." -msgstr "" - -#: AppTools/ToolShell.py:91 AppTools/ToolShell.py:93 -msgid "...processing..." -msgstr "...processando..." - -#: AppTools/ToolSolderPaste.py:37 -msgid "Solder Paste Tool" -msgstr "Pasta de Solda" - -#: AppTools/ToolSolderPaste.py:68 -#, fuzzy -#| msgid "Select Soldermask object" -msgid "Gerber Solderpaste object." -msgstr "Selecionar objeto Máscara de Solda" - -#: AppTools/ToolSolderPaste.py:81 -msgid "" -"Tools pool from which the algorithm\n" -"will pick the ones used for dispensing solder paste." -msgstr "" -"Conjunto de ferramentas a partir do qual o algoritmo selecionará para " -"distribuir pasta de solda." - -#: AppTools/ToolSolderPaste.py:96 -msgid "" -"This is the Tool Number.\n" -"The solder dispensing will start with the tool with the biggest \n" -"diameter, continuing until there are no more Nozzle tools.\n" -"If there are no longer tools but there are still pads not covered\n" -" with solder paste, the app will issue a warning message box." -msgstr "" -"Este é o número da ferramenta.\n" -"A colocação de pasta de solda começa com a ferramenta com o maior diâmetro,\n" -"continuando até que não haja mais ferramentas do bico.\n" -"Se não houver mais ferramentas, mas ainda houver blocos não cobertos\n" -"com pasta de solda, o aplicativo emitirá uma caixa de mensagem de aviso." - -#: AppTools/ToolSolderPaste.py:103 -msgid "" -"Nozzle tool Diameter. It's value (in current FlatCAM units)\n" -"is the width of the solder paste dispensed." -msgstr "" -"Diâmetro do bico da ferramenta. É o valor (em unidades FlatCAM atuais)\n" -"da largura da pasta de solda dispensada." - -#: AppTools/ToolSolderPaste.py:110 -msgid "New Nozzle Tool" -msgstr "Nova Ferramenta de Bico" - -#: AppTools/ToolSolderPaste.py:129 -msgid "" -"Add a new nozzle tool to the Tool Table\n" -"with the diameter specified above." -msgstr "" -"Adiciona uma nova ferramenta de bico à tabela de ferramentas\n" -"com o diâmetro especificado acima." - -#: AppTools/ToolSolderPaste.py:151 -msgid "STEP 1" -msgstr "PASSO 1" - -#: AppTools/ToolSolderPaste.py:153 -msgid "" -"First step is to select a number of nozzle tools for usage\n" -"and then optionally modify the GCode parameters below." -msgstr "" -"O primeiro passo é selecionar um número de ferramentas de bico para usar,\n" -"e opcionalmente, modificar os parâmetros do G-Code abaixo." - -#: AppTools/ToolSolderPaste.py:156 -msgid "" -"Select tools.\n" -"Modify parameters." -msgstr "" -"Selecione ferramentas.\n" -"Modifique os parâmetros." - -#: AppTools/ToolSolderPaste.py:276 -msgid "" -"Feedrate (speed) while moving up vertically\n" -" to Dispense position (on Z plane)." -msgstr "" -"Avanço (velocidade) enquanto sobe verticalmente\n" -"para a posição Dispensar (no plano Z)." - -#: AppTools/ToolSolderPaste.py:346 -msgid "" -"Generate GCode for Solder Paste dispensing\n" -"on PCB pads." -msgstr "" -"Gera o G-Code para dispensar pasta de solda\n" -"nos pads da PCB." - -#: AppTools/ToolSolderPaste.py:367 -msgid "STEP 2" -msgstr "PASSO 2" - -#: AppTools/ToolSolderPaste.py:369 -msgid "" -"Second step is to create a solder paste dispensing\n" -"geometry out of an Solder Paste Mask Gerber file." -msgstr "" -"O segundo passo é criar uma geometria de distribuição de pasta de solda\n" -"de um arquivo Gerber Máscara de Pasta de Solda." - -#: AppTools/ToolSolderPaste.py:375 -msgid "Generate solder paste dispensing geometry." -msgstr "Gerar geometria de distribuição de pasta de solda." - -#: AppTools/ToolSolderPaste.py:398 -msgid "Geo Result" -msgstr "Geo Result" - -#: AppTools/ToolSolderPaste.py:400 -msgid "" -"Geometry Solder Paste object.\n" -"The name of the object has to end in:\n" -"'_solderpaste' as a protection." -msgstr "" -"Objeto de Geometria Pasta de Solda.\n" -"Como proteção, o nome do objeto deve terminar com: \n" -"'_solderpaste'." - -#: AppTools/ToolSolderPaste.py:409 -msgid "STEP 3" -msgstr "PASSO 3" - -#: AppTools/ToolSolderPaste.py:411 -msgid "" -"Third step is to select a solder paste dispensing geometry,\n" -"and then generate a CNCJob object.\n" -"\n" -"REMEMBER: if you want to create a CNCJob with new parameters,\n" -"first you need to generate a geometry with those new params,\n" -"and only after that you can generate an updated CNCJob." -msgstr "" -"O terceiro passo é selecionar uma geometria dispensadora de pasta de solda,\n" -"e então gerar um objeto de Trabalho CNC.\n" -"\n" -"LEMBRE: se você quiser criar um Trabalho CNC com novos parâmetros,\n" -" primeiro você precisa gerar uma geometria com esses novos parâmetros,\n" -"e só depois disso você pode gerar um Trabalho CNC atualizado." - -#: AppTools/ToolSolderPaste.py:432 -msgid "CNC Result" -msgstr "Resultado CNC" - -#: AppTools/ToolSolderPaste.py:434 -msgid "" -"CNCJob Solder paste object.\n" -"In order to enable the GCode save section,\n" -"the name of the object has to end in:\n" -"'_solderpaste' as a protection." -msgstr "" -"Objeto Trabalho CNC Pasta de Solda.\n" -"Como proteção, para habilitar a seção de salvar o G-Code,\n" -"o nome do objeto tem que terminar com:\n" -"'_solderpaste'." - -#: AppTools/ToolSolderPaste.py:444 -msgid "View GCode" -msgstr "Ver G-Code" - -#: AppTools/ToolSolderPaste.py:446 -msgid "" -"View the generated GCode for Solder Paste dispensing\n" -"on PCB pads." -msgstr "" -"Ver o G-Code gerado para dispensação de pasta de solda\n" -"nos pads da PCB." - -#: AppTools/ToolSolderPaste.py:456 -msgid "Save GCode" -msgstr "Salvar o G-Code" - -#: AppTools/ToolSolderPaste.py:458 -msgid "" -"Save the generated GCode for Solder Paste dispensing\n" -"on PCB pads, to a file." -msgstr "" -"Salva o G-Code gerado para distribuição de pasta de solda\n" -"nos pads de PCB, em um arquivo." - -#: AppTools/ToolSolderPaste.py:468 -msgid "STEP 4" -msgstr "PASSO 4" - -#: AppTools/ToolSolderPaste.py:470 -msgid "" -"Fourth step (and last) is to select a CNCJob made from \n" -"a solder paste dispensing geometry, and then view/save it's GCode." -msgstr "" -"O quarto (e último) passo é selecionar um Trabalho CNC feito de\n" -"uma geometria de distribuição de pasta de solda e, em seguida, visualizar/" -"salvar o G-Code." - -#: AppTools/ToolSolderPaste.py:930 -msgid "New Nozzle tool added to Tool Table." -msgstr "Nova Ferramenta Bocal adicionada à tabela de ferramentas." - -#: AppTools/ToolSolderPaste.py:973 -msgid "Nozzle tool from Tool Table was edited." -msgstr "A ferramenta do bocal da tabela de ferramentas foi editada." - -#: AppTools/ToolSolderPaste.py:1032 -msgid "Delete failed. Select a Nozzle tool to delete." -msgstr "Exclusão falhou. Selecione uma ferramenta bico para excluir." - -#: AppTools/ToolSolderPaste.py:1038 -msgid "Nozzle tool(s) deleted from Tool Table." -msgstr "Ferramenta(s) de bico excluída(s) da tabela de ferramentas." - -#: AppTools/ToolSolderPaste.py:1094 -msgid "No SolderPaste mask Gerber object loaded." -msgstr "Nenhum objeto Gerber de máscara de Pasta de Solda carregado." - -#: AppTools/ToolSolderPaste.py:1112 -msgid "Creating Solder Paste dispensing geometry." -msgstr "Criação da geometria de distribuição da pasta de solda." - -#: AppTools/ToolSolderPaste.py:1125 -msgid "No Nozzle tools in the tool table." -msgstr "Nenhuma ferramenta de Bico na tabela de ferramentas." - -#: AppTools/ToolSolderPaste.py:1251 -msgid "Cancelled. Empty file, it has no geometry..." -msgstr "Cancelado. Arquivo vazio, não há geometria..." - -#: AppTools/ToolSolderPaste.py:1254 -msgid "Solder Paste geometry generated successfully" -msgstr "Geometria da pasta de solda gerada com sucesso" - -#: AppTools/ToolSolderPaste.py:1261 -msgid "Some or all pads have no solder due of inadequate nozzle diameters..." -msgstr "" -"Alguns ou todos os pads não possuem pasta de solda devido a diâmetros " -"inadequados dos bicos..." - -#: AppTools/ToolSolderPaste.py:1275 -msgid "Generating Solder Paste dispensing geometry..." -msgstr "Gerando geometria dispensadora de Pasta de Solda ..." - -#: AppTools/ToolSolderPaste.py:1295 -msgid "There is no Geometry object available." -msgstr "Não há objeto de Geometria disponível." - -#: AppTools/ToolSolderPaste.py:1300 -msgid "This Geometry can't be processed. NOT a solder_paste_tool geometry." -msgstr "" -"Esta geometria não pode ser processada. NÃO é uma geometria " -"solder_paste_tool." - -#: AppTools/ToolSolderPaste.py:1336 -msgid "An internal error has ocurred. See shell.\n" -msgstr "Ocorreu um erro interno. Veja shell (linha de comando).\n" - -#: AppTools/ToolSolderPaste.py:1401 -msgid "ToolSolderPaste CNCjob created" -msgstr "Trabalho CNC para Ferramenta de Pasta de Solda criado" - -#: AppTools/ToolSolderPaste.py:1420 -msgid "SP GCode Editor" -msgstr "Editor SP G-Code" - -#: AppTools/ToolSolderPaste.py:1432 AppTools/ToolSolderPaste.py:1437 -#: AppTools/ToolSolderPaste.py:1492 -msgid "" -"This CNCJob object can't be processed. NOT a solder_paste_tool CNCJob object." -msgstr "" -"Este objeto Trabalho CNC não pode ser processado. NÃO é um objeto " -"solder_paste_tool." - -#: AppTools/ToolSolderPaste.py:1462 -msgid "No Gcode in the object" -msgstr "Nenhum G-Code no objeto" - -#: AppTools/ToolSolderPaste.py:1502 -msgid "Export GCode ..." -msgstr "Exportar G-Code ..." - -#: AppTools/ToolSolderPaste.py:1550 -msgid "Solder paste dispenser GCode file saved to" -msgstr "Arquivo G-Code com dispensador de pasta de solda salvo em" - -#: AppTools/ToolSub.py:83 -msgid "" -"Gerber object from which to subtract\n" -"the subtractor Gerber object." -msgstr "" -"Objeto Gerber do qual subtrair\n" -"o objeto Gerber subtrator." - -#: AppTools/ToolSub.py:96 AppTools/ToolSub.py:151 -msgid "Subtractor" -msgstr "Subtrator" - -#: AppTools/ToolSub.py:98 -msgid "" -"Gerber object that will be subtracted\n" -"from the target Gerber object." -msgstr "" -"Objeto Gerber que será subtraído\n" -"do objeto Gerber de destino." - -#: AppTools/ToolSub.py:105 -msgid "Subtract Gerber" -msgstr "Subtrair Gerber" - -#: AppTools/ToolSub.py:107 -msgid "" -"Will remove the area occupied by the subtractor\n" -"Gerber from the Target Gerber.\n" -"Can be used to remove the overlapping silkscreen\n" -"over the soldermask." -msgstr "" -"Removerá a área ocupada pelo Gerber substrator\n" -"do Gerber de destino.\n" -"Pode ser usado para remover a serigrafia sobreposta\n" -"sobre a máscara de solda." - -#: AppTools/ToolSub.py:138 -msgid "" -"Geometry object from which to subtract\n" -"the subtractor Geometry object." -msgstr "" -"Objeto de geometria a partir do qual subtrair\n" -"o objeto de geometria do substrator." - -#: AppTools/ToolSub.py:153 -msgid "" -"Geometry object that will be subtracted\n" -"from the target Geometry object." -msgstr "" -"Objeto de geometria que será subtraído\n" -"do objeto de geometria de destino." - -#: AppTools/ToolSub.py:161 -msgid "" -"Checking this will close the paths cut by the Geometry subtractor object." -msgstr "" -"Marcar isso fechará os caminhos cortados pelo objeto substrair Geometria." - -#: AppTools/ToolSub.py:164 -msgid "Subtract Geometry" -msgstr "Subtrair Geometria" - -#: AppTools/ToolSub.py:166 -msgid "" -"Will remove the area occupied by the subtractor\n" -"Geometry from the Target Geometry." -msgstr "" -"Removerá a área ocupada pela geometria subtrator\n" -"da Geometria de destino." - -#: AppTools/ToolSub.py:264 -msgid "Sub Tool" -msgstr "Ferramenta Sub" - -#: AppTools/ToolSub.py:285 AppTools/ToolSub.py:490 -msgid "No Target object loaded." -msgstr "Nenhum objeto de destino foi carregado." - -#: AppTools/ToolSub.py:288 -msgid "Loading geometry from Gerber objects." -msgstr "Carregando geometria de objetos Gerber." - -#: AppTools/ToolSub.py:300 AppTools/ToolSub.py:505 -msgid "No Subtractor object loaded." -msgstr "Nenhum objeto Subtrator carregado." - -#: AppTools/ToolSub.py:342 -msgid "Finished parsing geometry for aperture" -msgstr "Análise de geometria para abertura concluída" - -#: AppTools/ToolSub.py:344 -msgid "Subtraction aperture processing finished." -msgstr "" - -#: AppTools/ToolSub.py:464 AppTools/ToolSub.py:662 -msgid "Generating new object ..." -msgstr "Gerando novo objeto ..." - -#: AppTools/ToolSub.py:467 AppTools/ToolSub.py:666 AppTools/ToolSub.py:745 -msgid "Generating new object failed." -msgstr "A geração de novo objeto falhou." - -#: AppTools/ToolSub.py:471 AppTools/ToolSub.py:672 -msgid "Created" -msgstr "Criado" - -#: AppTools/ToolSub.py:519 -msgid "Currently, the Subtractor geometry cannot be of type Multigeo." -msgstr "Atualmente, a geometria do Subtrator não pode ser do tipo MultiGeo." - -#: AppTools/ToolSub.py:564 -msgid "Parsing solid_geometry ..." -msgstr "Analisando solid_geometry ..." - -#: AppTools/ToolSub.py:566 -msgid "Parsing solid_geometry for tool" -msgstr "Analisando solid_geometry para ferramenta" - -#: AppTools/ToolTransform.py:23 -msgid "Object Transform" -msgstr "Transformação de Objeto" - -#: AppTools/ToolTransform.py:78 -msgid "" -"Rotate the selected object(s).\n" -"The point of reference is the middle of\n" -"the bounding box for all selected objects." -msgstr "" -"Gira o(s) objeto(s) selecionado(s).\n" -"O ponto de referência é o meio da\n" -"caixa delimitadora para todos os objetos selecionados." - -#: AppTools/ToolTransform.py:99 AppTools/ToolTransform.py:120 -msgid "" -"Angle for Skew action, in degrees.\n" -"Float number between -360 and 360." -msgstr "" -"Ângulo de inclinação, em graus.\n" -"Número flutuante entre -360 e 360." - -#: AppTools/ToolTransform.py:109 AppTools/ToolTransform.py:130 -msgid "" -"Skew/shear the selected object(s).\n" -"The point of reference is the middle of\n" -"the bounding box for all selected objects." -msgstr "" -"Inclinar/distorcer o(s) objeto(s) selecionado(s).\n" -"O ponto de referência é o meio da\n" -"caixa delimitadora para todos os objetos selecionados." - -#: AppTools/ToolTransform.py:159 AppTools/ToolTransform.py:179 -msgid "" -"Scale the selected object(s).\n" -"The point of reference depends on \n" -"the Scale reference checkbox state." -msgstr "" -"Redimensiona o(s) objeto(s) selecionado(s).\n" -"O ponto de referência depende\n" -"do estado da caixa de seleção Escala de referência." - -#: AppTools/ToolTransform.py:228 AppTools/ToolTransform.py:248 -msgid "" -"Offset the selected object(s).\n" -"The point of reference is the middle of\n" -"the bounding box for all selected objects.\n" -msgstr "" -"Desloca o(s) objeto(s) selecionado(s).\n" -"O ponto de referência é o meio da\n" -"caixa delimitadora para todos os objetos selecionados.\n" - -#: AppTools/ToolTransform.py:268 AppTools/ToolTransform.py:273 -msgid "Flip the selected object(s) over the X axis." -msgstr "Espelha o(s) objeto(s) selecionado(s) no eixo X." - -#: AppTools/ToolTransform.py:297 -msgid "Ref. Point" -msgstr "Ponto de Referência" - -#: AppTools/ToolTransform.py:348 -msgid "" -"Create the buffer effect on each geometry,\n" -"element from the selected object, using the distance." -msgstr "" -"Crie o efeito de buffer em cada geometria,\n" -"elemento do objeto selecionado, usando a distância." - -#: AppTools/ToolTransform.py:374 -msgid "" -"Create the buffer effect on each geometry,\n" -"element from the selected object, using the factor." -msgstr "" -"Crie o efeito de buffer em cada geometria,\n" -"elemento do objeto selecionado, usando o fator." - -#: AppTools/ToolTransform.py:479 -msgid "Buffer D" -msgstr "Buffer D" - -#: AppTools/ToolTransform.py:480 -msgid "Buffer F" -msgstr "Buffer F" - -#: AppTools/ToolTransform.py:557 -msgid "Rotate transformation can not be done for a value of 0." -msgstr "A rotação não pode ser feita para um valor 0." - -#: AppTools/ToolTransform.py:596 AppTools/ToolTransform.py:619 -msgid "Scale transformation can not be done for a factor of 0 or 1." -msgstr "O redimensionamento não pode ser feito para um fator 0 ou 1." - -#: AppTools/ToolTransform.py:634 AppTools/ToolTransform.py:644 -msgid "Offset transformation can not be done for a value of 0." -msgstr "O deslocamento não pode ser feito para um valor 0." - -#: AppTools/ToolTransform.py:676 -msgid "No object selected. Please Select an object to rotate!" -msgstr "Nenhum objeto selecionado. Por favor, selecione um objeto para girar!" - -#: AppTools/ToolTransform.py:702 -msgid "CNCJob objects can't be rotated." -msgstr "Objetos Trabalho CNC não podem ser girados." - -#: AppTools/ToolTransform.py:710 -msgid "Rotate done" -msgstr "Rotação pronta" - -#: AppTools/ToolTransform.py:713 AppTools/ToolTransform.py:783 -#: AppTools/ToolTransform.py:833 AppTools/ToolTransform.py:887 -#: AppTools/ToolTransform.py:917 AppTools/ToolTransform.py:953 -msgid "Due of" -msgstr "Devido" - -#: AppTools/ToolTransform.py:713 AppTools/ToolTransform.py:783 -#: AppTools/ToolTransform.py:833 AppTools/ToolTransform.py:887 -#: AppTools/ToolTransform.py:917 AppTools/ToolTransform.py:953 -msgid "action was not executed." -msgstr "a ação não foi realizada." - -#: AppTools/ToolTransform.py:725 -msgid "No object selected. Please Select an object to flip" -msgstr "" -"Nenhum objeto selecionado. Por favor, selecione um objeto para espelhar" - -#: AppTools/ToolTransform.py:758 -msgid "CNCJob objects can't be mirrored/flipped." -msgstr "Objetos Trabalho CNC não podem ser espelhados/invertidos." - -#: AppTools/ToolTransform.py:793 -msgid "Skew transformation can not be done for 0, 90 and 180 degrees." -msgstr "A inclinação não pode ser feita para 0, 90 e 180 graus." - -#: AppTools/ToolTransform.py:798 -msgid "No object selected. Please Select an object to shear/skew!" -msgstr "" -"Nenhum objeto selecionado. Por favor, selecione um objeto para inclinar!" - -#: AppTools/ToolTransform.py:818 -msgid "CNCJob objects can't be skewed." -msgstr "Objetos Trabalho CNC não podem ser inclinados." - -#: AppTools/ToolTransform.py:830 -msgid "Skew on the" -msgstr "Inclinando no eixo" - -#: AppTools/ToolTransform.py:830 AppTools/ToolTransform.py:884 -#: AppTools/ToolTransform.py:914 -msgid "axis done" -msgstr "concluído" - -#: AppTools/ToolTransform.py:844 -msgid "No object selected. Please Select an object to scale!" -msgstr "" -"Nenhum objeto selecionado. Por favor, selecione um objeto para redimensionar!" - -#: AppTools/ToolTransform.py:875 -msgid "CNCJob objects can't be scaled." -msgstr "Objetos Trabalho CNC não podem ser redimensionados." - -#: AppTools/ToolTransform.py:884 -msgid "Scale on the" -msgstr "Redimensionamento no eixo" - -#: AppTools/ToolTransform.py:894 -msgid "No object selected. Please Select an object to offset!" -msgstr "" -"Nenhum objeto selecionado. Por favor, selecione um objeto para deslocar!" - -#: AppTools/ToolTransform.py:901 -msgid "CNCJob objects can't be offset." -msgstr "Objetos Trabalho CNC não podem ser deslocados." - -#: AppTools/ToolTransform.py:914 -msgid "Offset on the" -msgstr "Deslocamento no eixo" - -#: AppTools/ToolTransform.py:924 -msgid "No object selected. Please Select an object to buffer!" -msgstr "" -"Nenhum objeto selecionado. Por favor, selecione um objeto para armazenar em " -"buffer!" - -#: AppTools/ToolTransform.py:927 -msgid "Applying Buffer" -msgstr "Aplicando Buffer" - -#: AppTools/ToolTransform.py:931 -msgid "CNCJob objects can't be buffered." -msgstr "Os objetos CNCJob não podem ser armazenados em buffer." - -#: AppTools/ToolTransform.py:948 -msgid "Buffer done" -msgstr "Buffer concluído" - -#: AppTranslation.py:104 -msgid "The application will restart." -msgstr "O aplicativo reiniciará." - -#: AppTranslation.py:106 -msgid "Are you sure do you want to change the current language to" -msgstr "Você tem certeza de que quer alterar o idioma para" - -#: AppTranslation.py:107 -msgid "Apply Language ..." -msgstr "Aplicar o Idioma ..." - -#: AppTranslation.py:203 App_Main.py:3151 -msgid "" -"There are files/objects modified in FlatCAM. \n" -"Do you want to Save the project?" -msgstr "" -"Existem arquivos/objetos modificados no FlatCAM. \n" -"Você quer salvar o projeto?" - -#: AppTranslation.py:206 App_Main.py:3154 App_Main.py:6411 -msgid "Save changes" -msgstr "Salvar alterações" - -#: App_Main.py:477 +#: FlatCAMApp.py:491 msgid "FlatCAM is initializing ..." msgstr "FlatCAM está inicializando...." -#: App_Main.py:620 +#: FlatCAMApp.py:639 msgid "Could not find the Language files. The App strings are missing." msgstr "" "Não foi possível encontrar os arquivos de idioma. Estão faltando as strings " "do aplicativo." -#: App_Main.py:692 +#: FlatCAMApp.py:709 msgid "" "FlatCAM is initializing ...\n" "Canvas initialization started." @@ -17099,7 +36,7 @@ msgstr "" "FlatCAM está inicializando....\n" "Inicialização do Canvas iniciada." -#: App_Main.py:712 +#: FlatCAMApp.py:729 msgid "" "FlatCAM is initializing ...\n" "Canvas initialization started.\n" @@ -17109,44 +46,63 @@ msgstr "" "Inicialização do Canvas iniciada.\n" "Inicialização do Canvas concluída em" -#: App_Main.py:1558 App_Main.py:6524 +#: FlatCAMApp.py:1593 FlatCAMApp.py:7451 msgid "New Project - Not saved" msgstr "Novo Projeto - Não salvo" -#: App_Main.py:1659 +#: FlatCAMApp.py:1689 msgid "" "Found old default preferences files. Please reboot the application to update." msgstr "" "Arquivos de preferências padrão antigos encontrados. Por favor, reinicie o " "aplicativo para atualizar." -#: App_Main.py:1726 +#: FlatCAMApp.py:1740 FlatCAMApp.py:2512 FlatCAMApp.py:2547 FlatCAMApp.py:2594 +#: FlatCAMApp.py:4540 FlatCAMApp.py:7535 FlatCAMApp.py:7572 FlatCAMApp.py:7614 +#: FlatCAMApp.py:7643 FlatCAMApp.py:7684 FlatCAMApp.py:7709 FlatCAMApp.py:7761 +#: FlatCAMApp.py:7796 FlatCAMApp.py:7841 FlatCAMApp.py:7882 FlatCAMApp.py:7923 +#: FlatCAMApp.py:7964 FlatCAMApp.py:8005 FlatCAMApp.py:8049 FlatCAMApp.py:8105 +#: FlatCAMApp.py:8137 FlatCAMApp.py:8169 FlatCAMApp.py:8402 FlatCAMApp.py:8440 +#: FlatCAMApp.py:8483 FlatCAMApp.py:8560 FlatCAMApp.py:8615 +#: FlatCAMBookmark.py:300 FlatCAMBookmark.py:342 FlatCAMDB.py:663 +#: FlatCAMDB.py:709 FlatCAMDB.py:2125 FlatCAMDB.py:2171 +#: flatcamEditors/FlatCAMExcEditor.py:1023 +#: flatcamEditors/FlatCAMExcEditor.py:1091 +#: flatcamEditors/FlatCAMTextEditor.py:223 flatcamGUI/FlatCAMGUI.py:3443 +#: flatcamGUI/FlatCAMGUI.py:3659 flatcamGUI/FlatCAMGUI.py:3874 +#: flatcamObjects/ObjectCollection.py:126 flatcamTools/ToolFilm.py:754 +#: flatcamTools/ToolFilm.py:900 flatcamTools/ToolImage.py:247 +#: flatcamTools/ToolMove.py:269 flatcamTools/ToolPcbWizard.py:301 +#: flatcamTools/ToolPcbWizard.py:324 flatcamTools/ToolQRCode.py:791 +#: flatcamTools/ToolQRCode.py:838 +msgid "Cancelled." +msgstr "Cancelado." + +#: FlatCAMApp.py:1756 msgid "Open Config file failed." msgstr "Falha ao abrir o arquivo de Configuração." -#: App_Main.py:1741 +#: FlatCAMApp.py:1771 msgid "Open Script file failed." msgstr "Falha ao abrir o arquivo de Script." -#: App_Main.py:1767 +#: FlatCAMApp.py:1797 msgid "Open Excellon file failed." msgstr "Falha ao abrir o arquivo Excellon." -#: App_Main.py:1780 +#: FlatCAMApp.py:1810 msgid "Open GCode file failed." msgstr "Falha ao abrir o arquivo G-Code." -#: App_Main.py:1793 +#: FlatCAMApp.py:1823 msgid "Open Gerber file failed." msgstr "Falha ao abrir o arquivo Gerber." -#: App_Main.py:2116 -#, fuzzy -#| msgid "Select a Geometry, Gerber or Excellon Object to edit." -msgid "Select a Geometry, Gerber, Excellon or CNCJob Object to edit." +#: FlatCAMApp.py:2131 +msgid "Select a Geometry, Gerber or Excellon Object to edit." msgstr "Selecione um Objeto Geometria, Gerber ou Excellon para editar." -#: App_Main.py:2131 +#: FlatCAMApp.py:2146 msgid "" "Simultaneous editing of tools geometry in a MultiGeo Geometry is not " "possible.\n" @@ -17156,91 +112,198 @@ msgstr "" "possível. \n" "Edite apenas uma geometria por vez." -#: App_Main.py:2197 +#: FlatCAMApp.py:2204 msgid "Editor is activated ..." msgstr "Editor está ativado ..." -#: App_Main.py:2218 +#: FlatCAMApp.py:2225 msgid "Do you want to save the edited object?" msgstr "Você quer salvar o objeto editado?" -#: App_Main.py:2254 +#: FlatCAMApp.py:2226 flatcamGUI/FlatCAMGUI.py:2288 +msgid "Close Editor" +msgstr "Fechar Editor" + +#: FlatCAMApp.py:2229 FlatCAMApp.py:3518 FlatCAMApp.py:6085 FlatCAMApp.py:7345 +#: FlatCAMTranslation.py:109 FlatCAMTranslation.py:207 +#: flatcamGUI/FlatCAMGUI.py:2519 +#: flatcamGUI/preferences/PreferencesUIManager.py:1122 +msgid "Yes" +msgstr "Sim" + +#: FlatCAMApp.py:2230 FlatCAMApp.py:3519 FlatCAMApp.py:6086 FlatCAMApp.py:7346 +#: FlatCAMTranslation.py:110 FlatCAMTranslation.py:208 +#: flatcamGUI/FlatCAMGUI.py:2520 +#: flatcamGUI/preferences/PreferencesUIManager.py:1123 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:164 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:150 +#: flatcamTools/ToolNCC.py:182 flatcamTools/ToolPaint.py:166 +msgid "No" +msgstr "Não" + +#: FlatCAMApp.py:2231 FlatCAMApp.py:3520 FlatCAMApp.py:4478 FlatCAMApp.py:5103 +#: FlatCAMApp.py:7347 FlatCAMDB.py:128 FlatCAMDB.py:1689 +#: flatcamGUI/FlatCAMGUI.py:1347 +msgid "Cancel" +msgstr "Cancelar" + +#: FlatCAMApp.py:2263 msgid "Object empty after edit." msgstr "Objeto vazio após a edição." -#: App_Main.py:2259 App_Main.py:2277 App_Main.py:2296 +#: FlatCAMApp.py:2267 FlatCAMApp.py:2288 FlatCAMApp.py:2310 msgid "Editor exited. Editor content saved." msgstr "Editor fechado. Conteúdo salvo." -#: App_Main.py:2300 App_Main.py:2324 App_Main.py:2342 +#: FlatCAMApp.py:2314 FlatCAMApp.py:2337 FlatCAMApp.py:2355 msgid "Select a Gerber, Geometry or Excellon Object to update." msgstr "Selecione um objeto Gerber, Geometria ou Excellon para atualizar." -#: App_Main.py:2303 +#: FlatCAMApp.py:2317 msgid "is updated, returning to App..." msgstr "está atualizado, retornando ao App..." -#: App_Main.py:2310 +#: FlatCAMApp.py:2324 msgid "Editor exited. Editor content was not saved." msgstr "Editor fechado. Conteúdo não salvo." -#: App_Main.py:2443 App_Main.py:2447 +#: FlatCAMApp.py:2504 FlatCAMApp.py:2508 msgid "Import FlatCAM Preferences" msgstr "Importar Preferências do FlatCAM" -#: App_Main.py:2458 +#: FlatCAMApp.py:2519 msgid "Imported Defaults from" msgstr "Padrões importados de" -#: App_Main.py:2478 App_Main.py:2484 +#: FlatCAMApp.py:2539 FlatCAMApp.py:2544 msgid "Export FlatCAM Preferences" msgstr "Exportar Preferências do FlatCAM" -#: App_Main.py:2504 +#: FlatCAMApp.py:2558 FlatCAMApp.py:2626 +#: flatcamGUI/preferences/PreferencesUIManager.py:1018 +msgid "Failed to write defaults to file." +msgstr "Falha ao gravar os padrões no arquivo." + +#: FlatCAMApp.py:2564 msgid "Exported preferences to" msgstr "Preferências exportadas para" -#: App_Main.py:2524 App_Main.py:2529 +#: FlatCAMApp.py:2584 FlatCAMApp.py:2589 msgid "Save to file" msgstr "Salvar em arquivo" -#: App_Main.py:2553 +#: FlatCAMApp.py:2602 FlatCAMApp.py:8859 FlatCAMApp.py:8907 FlatCAMApp.py:9032 +#: FlatCAMApp.py:9168 FlatCAMBookmark.py:308 FlatCAMDB.py:671 FlatCAMDB.py:2133 +#: flatcamEditors/FlatCAMTextEditor.py:276 flatcamObjects/FlatCAMCNCJob.py:959 +#: flatcamTools/ToolFilm.py:1031 flatcamTools/ToolFilm.py:1212 +#: flatcamTools/ToolSolderPaste.py:1534 +msgid "" +"Permission denied, saving not possible.\n" +"Most likely another app is holding the file open and not accessible." +msgstr "" +"Permissão negada, não é possível salvar.\n" +"É provável que outro aplicativo esteja mantendo o arquivo aberto e não " +"acessível." + +#: FlatCAMApp.py:2613 msgid "Could not load the file." msgstr "Não foi possível carregar o arquivo." -#: App_Main.py:2569 +#: FlatCAMApp.py:2629 msgid "Exported file to" msgstr "Arquivo exportado para" -#: App_Main.py:2606 +#: FlatCAMApp.py:2712 msgid "Failed to open recent files file for writing." msgstr "Falha ao abrir o arquivo com lista de arquivos recentes para gravação." -#: App_Main.py:2617 +#: FlatCAMApp.py:2723 msgid "Failed to open recent projects file for writing." msgstr "Falha ao abrir o arquivo com lista de projetos recentes para gravação." -#: App_Main.py:2672 +#: FlatCAMApp.py:2806 FlatCAMApp.py:9377 FlatCAMApp.py:9441 FlatCAMApp.py:9572 +#: FlatCAMApp.py:9637 FlatCAMApp.py:10287 +#: flatcamEditors/FlatCAMGrbEditor.py:4364 +#: flatcamObjects/FlatCAMGeometry.py:1725 flatcamParsers/ParseExcellon.py:897 +#: flatcamTools/ToolPcbWizard.py:432 +msgid "An internal error has occurred. See shell.\n" +msgstr "Ocorreu um erro interno. Veja shell (linha de comando).\n" + +#: FlatCAMApp.py:2807 +#, python-brace-format +msgid "" +"Object ({kind}) failed because: {error} \n" +"\n" +msgstr "" +"Objeto ({kind}) falhou porque: {error} \n" +"\n" + +#: FlatCAMApp.py:2822 +msgid "Converting units to " +msgstr "Convertendo unidades para " + +#: FlatCAMApp.py:2931 +msgid "CREATE A NEW FLATCAM TCL SCRIPT" +msgstr "CRIAR UM NOVO SCRIPT FLATCAM TCL" + +#: FlatCAMApp.py:2932 +msgid "TCL Tutorial is here" +msgstr "Tutorial TCL está aqui" + +#: FlatCAMApp.py:2934 +msgid "FlatCAM commands list" +msgstr "Lista de comandos FlatCAM" + +#: FlatCAMApp.py:2935 +msgid "" +"Type >help< followed by Run Code for a list of FlatCAM Tcl Commands " +"(displayed in Tcl Shell)." +msgstr "" +"Digite >help< Run Code para uma lista de comandos TCL FlatCAM (mostrados na " +"linha de comando)." + +#: FlatCAMApp.py:2982 FlatCAMApp.py:2988 FlatCAMApp.py:2994 FlatCAMApp.py:3000 +#: FlatCAMApp.py:3006 FlatCAMApp.py:3012 +msgid "created/selected" +msgstr "criado / selecionado" + +#: FlatCAMApp.py:3027 FlatCAMApp.py:5189 flatcamObjects/FlatCAMObj.py:248 +#: flatcamObjects/FlatCAMObj.py:279 flatcamObjects/FlatCAMObj.py:295 +#: flatcamObjects/FlatCAMObj.py:375 flatcamTools/ToolCopperThieving.py:1481 +#: flatcamTools/ToolFiducials.py:809 flatcamTools/ToolMove.py:229 +#: flatcamTools/ToolQRCode.py:728 +msgid "Plotting" +msgstr "Plotando" + +#: FlatCAMApp.py:3090 flatcamGUI/FlatCAMGUI.py:545 +msgid "About FlatCAM" +msgstr "Sobre FlatCAM" + +#: FlatCAMApp.py:3116 msgid "2D Computer-Aided Printed Circuit Board Manufacturing" msgstr "Fabricação de Placas de Circuito Impresso 2D Assistida por Computador" -#: App_Main.py:2673 +#: FlatCAMApp.py:3117 msgid "Development" msgstr "Desenvolvimento" -#: App_Main.py:2674 +#: FlatCAMApp.py:3118 msgid "DOWNLOAD" msgstr "DOWNLOAD" -#: App_Main.py:2675 +#: FlatCAMApp.py:3119 msgid "Issue tracker" msgstr "Rastreador de problemas" -#: App_Main.py:2694 +#: FlatCAMApp.py:3123 FlatCAMApp.py:3484 flatcamGUI/GUIElements.py:2583 +msgid "Close" +msgstr "Fechar" + +#: FlatCAMApp.py:3138 msgid "Licensed under the MIT license" msgstr "Licenciado sob licença do MIT" -#: App_Main.py:2703 +#: FlatCAMApp.py:3147 msgid "" "Permission is hereby granted, free of charge, to any person obtaining a " "copy\n" @@ -17288,25 +351,14 @@ msgstr "" "OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n" "THE SOFTWARE." -#: App_Main.py:2725 -#, fuzzy -#| msgid "" -#| "Some of the icons used are from the following sources:

    Icons by Icons8
    Icons by oNline Web Fonts" +#: FlatCAMApp.py:3169 msgid "" "Some of the icons used are from the following sources:
    Icons by Icons8
    Icons by oNline Web Fonts" +"onlinewebfonts.com\">oNline Web Fonts" msgstr "" "Alguns dos ícones utilizados são das seguintes fontes:
    Ícones por " "Icons8
    Ícones por oNline Web Fonts" -#: App_Main.py:2761 +#: FlatCAMApp.py:3202 msgid "Splash" msgstr "Abertura" -#: App_Main.py:2767 +#: FlatCAMApp.py:3208 msgid "Programmers" msgstr "Programadores" -#: App_Main.py:2773 +#: FlatCAMApp.py:3214 msgid "Translators" msgstr "Tradutores" -#: App_Main.py:2779 +#: FlatCAMApp.py:3220 msgid "License" msgstr "Licença" -#: App_Main.py:2785 +#: FlatCAMApp.py:3226 msgid "Attributions" msgstr "Atribuições" -#: App_Main.py:2808 +#: FlatCAMApp.py:3249 msgid "Programmer" msgstr "Programador" -#: App_Main.py:2809 +#: FlatCAMApp.py:3250 msgid "Status" msgstr "Status" -#: App_Main.py:2810 App_Main.py:2890 +#: FlatCAMApp.py:3251 FlatCAMApp.py:3331 msgid "E-mail" msgstr "E-mail" -#: App_Main.py:2813 -msgid "Program Author" -msgstr "Autor do Programa" - -#: App_Main.py:2818 +#: FlatCAMApp.py:3259 msgid "BETA Maintainer >= 2019" msgstr "Mantenedor BETA >= 2019" -#: App_Main.py:2887 +#: FlatCAMApp.py:3328 msgid "Language" msgstr "Idioma" -#: App_Main.py:2888 +#: FlatCAMApp.py:3329 msgid "Translator" msgstr "Tradutor" -#: App_Main.py:2889 +#: FlatCAMApp.py:3330 msgid "Corrections" msgstr "Correções" -#: App_Main.py:2963 -#, fuzzy -#| msgid "Transformations" -msgid "Important Information's" -msgstr "Transformações" +#: FlatCAMApp.py:3455 FlatCAMApp.py:3464 flatcamGUI/FlatCAMGUI.py:527 +msgid "Bookmarks Manager" +msgstr "Gerenciados de Favoritos" -#: App_Main.py:3111 +#: FlatCAMApp.py:3475 msgid "" "This entry will resolve to another website if:\n" "\n" @@ -17393,33 +439,49 @@ msgstr "" "Se você não conseguir obter informações sobre o FlatCAM beta\n" "use o link do canal do YouTube no menu Ajuda." -#: App_Main.py:3118 +#: FlatCAMApp.py:3482 msgid "Alternative website" msgstr "Site alternativo" -#: App_Main.py:3421 +#: FlatCAMApp.py:3508 flatcamGUI/FlatCAMGUI.py:4267 +msgid "Application is saving the project. Please wait ..." +msgstr "O aplicativo está salvando o projeto. Por favor, espere ..." + +#: FlatCAMApp.py:3513 FlatCAMTranslation.py:202 +msgid "" +"There are files/objects modified in FlatCAM. \n" +"Do you want to Save the project?" +msgstr "" +"Existem arquivos/objetos modificados no FlatCAM. \n" +"Você quer salvar o projeto?" + +#: FlatCAMApp.py:3516 FlatCAMApp.py:7343 FlatCAMTranslation.py:205 +msgid "Save changes" +msgstr "Salvar alterações" + +#: FlatCAMApp.py:3778 msgid "Selected Excellon file extensions registered with FlatCAM." msgstr "" "As extensões de arquivo Excellon selecionadas foram registradas para o " "FlatCAM." -#: App_Main.py:3443 +#: FlatCAMApp.py:3800 msgid "Selected GCode file extensions registered with FlatCAM." msgstr "" "As extensões de arquivo G-Code selecionadas foram registradas para o FlatCAM." -#: App_Main.py:3465 +#: FlatCAMApp.py:3822 msgid "Selected Gerber file extensions registered with FlatCAM." msgstr "" "As extensões de arquivo Gerber selecionadas foram registradas para o FlatCAM." -#: App_Main.py:3653 App_Main.py:3712 App_Main.py:3740 +#: FlatCAMApp.py:4010 FlatCAMApp.py:4069 FlatCAMApp.py:4097 msgid "At least two objects are required for join. Objects currently selected" msgstr "" "São necessários pelo menos dois objetos para unir. Objetos atualmente " "selecionados" -#: App_Main.py:3662 +#: FlatCAMApp.py:4019 msgid "" "Failed join. The Geometry objects are of different types.\n" "At least one is MultiGeo type and the other is SingleGeo type. A possibility " @@ -17435,47 +497,47 @@ msgstr "" "perdidas e o resultado pode não ser o esperado.\n" "Verifique o G-CODE gerado." -#: App_Main.py:3674 App_Main.py:3684 +#: FlatCAMApp.py:4031 FlatCAMApp.py:4041 msgid "Geometry merging finished" msgstr "Fusão de geometria concluída" -#: App_Main.py:3707 +#: FlatCAMApp.py:4064 msgid "Failed. Excellon joining works only on Excellon objects." msgstr "Falha. A união de Excellon funciona apenas em objetos Excellon." -#: App_Main.py:3717 +#: FlatCAMApp.py:4074 msgid "Excellon merging finished" msgstr "Fusão de Excellon concluída" -#: App_Main.py:3735 +#: FlatCAMApp.py:4092 msgid "Failed. Gerber joining works only on Gerber objects." msgstr "Falha. A união de Gerber funciona apenas em objetos Gerber." -#: App_Main.py:3745 +#: FlatCAMApp.py:4102 msgid "Gerber merging finished" msgstr "Fusão de Gerber concluída" -#: App_Main.py:3765 App_Main.py:3802 +#: FlatCAMApp.py:4122 FlatCAMApp.py:4159 msgid "Failed. Select a Geometry Object and try again." msgstr "Falha. Selecione um Objeto de Geometria e tente novamente." -#: App_Main.py:3769 App_Main.py:3807 +#: FlatCAMApp.py:4126 FlatCAMApp.py:4164 msgid "Expected a GeometryObject, got" msgstr "Geometria FlatCAM esperada, recebido" -#: App_Main.py:3784 +#: FlatCAMApp.py:4141 msgid "A Geometry object was converted to MultiGeo type." msgstr "Um objeto Geometria foi convertido para o tipo MultiGeo." -#: App_Main.py:3822 +#: FlatCAMApp.py:4179 msgid "A Geometry object was converted to SingleGeo type." msgstr "Um objeto Geometria foi convertido para o tipo Único." -#: App_Main.py:4029 +#: FlatCAMApp.py:4472 msgid "Toggle Units" msgstr "Alternar Unidades" -#: App_Main.py:4033 +#: FlatCAMApp.py:4474 msgid "" "Changing the units of the project\n" "will scale all objects.\n" @@ -17487,32 +549,33 @@ msgstr "" "\n" "Você quer continuar?" -#: App_Main.py:4036 App_Main.py:4223 App_Main.py:4306 App_Main.py:6809 -#: App_Main.py:6825 App_Main.py:7163 App_Main.py:7175 +#: FlatCAMApp.py:4477 FlatCAMApp.py:5025 FlatCAMApp.py:5102 FlatCAMApp.py:7728 +#: FlatCAMApp.py:7742 FlatCAMApp.py:8075 FlatCAMApp.py:8085 msgid "Ok" msgstr "Ok" -#: App_Main.py:4086 +#: FlatCAMApp.py:4526 msgid "Converted units to" msgstr "Unidades convertidas para" -#: App_Main.py:4121 +#: FlatCAMApp.py:4928 msgid "Detachable Tabs" msgstr "Abas Destacáveis" -#: App_Main.py:4150 -#, fuzzy -#| msgid "Workspace Settings" -msgid "Workspace enabled." -msgstr "Configurações da área de trabalho" +#: FlatCAMApp.py:5014 flatcamTools/ToolNCC.py:932 flatcamTools/ToolNCC.py:1431 +#: flatcamTools/ToolPaint.py:858 flatcamTools/ToolSolderPaste.py:568 +#: flatcamTools/ToolSolderPaste.py:893 +msgid "Please enter a tool diameter with non-zero value, in Float format." +msgstr "" +"Insira um diâmetro de ferramenta com valor diferente de zero, no formato " +"Flutuante." -#: App_Main.py:4153 -#, fuzzy -#| msgid "Workspace Settings" -msgid "Workspace disabled." -msgstr "Configurações da área de trabalho" +#: FlatCAMApp.py:5018 flatcamTools/ToolNCC.py:936 flatcamTools/ToolPaint.py:862 +#: flatcamTools/ToolSolderPaste.py:572 +msgid "Adding Tool cancelled" +msgstr "Adicionar ferramenta cancelada" -#: App_Main.py:4217 +#: FlatCAMApp.py:5021 msgid "" "Adding Tool works only when Advanced is checked.\n" "Go to Preferences -> General - Show Advanced Options." @@ -17520,11 +583,11 @@ msgstr "" "Adicionar Ferramenta funciona somente no modo Avançado.\n" "Vá em Preferências -> Geral - Mostrar Opções Avançadas." -#: App_Main.py:4299 +#: FlatCAMApp.py:5097 msgid "Delete objects" msgstr "Excluir objetos" -#: App_Main.py:4304 +#: FlatCAMApp.py:5100 msgid "" "Are you sure you want to permanently delete\n" "the selected objects?" @@ -17532,86 +595,147 @@ msgstr "" "Você tem certeza de que deseja excluir permanentemente\n" "os objetos selecionados?" -#: App_Main.py:4348 +#: FlatCAMApp.py:5138 msgid "Object(s) deleted" msgstr "Objeto(s) excluído(s)" -#: App_Main.py:4352 +#: FlatCAMApp.py:5142 FlatCAMApp.py:5297 flatcamTools/ToolDblSided.py:818 +msgid "Failed. No object(s) selected..." +msgstr "Falha. Nenhum objeto selecionado..." + +#: FlatCAMApp.py:5144 msgid "Save the work in Editor and try again ..." msgstr "Salve o trabalho no Editor e tente novamente ..." -#: App_Main.py:4381 +#: FlatCAMApp.py:5173 msgid "Object deleted" msgstr "Objeto excluído" -#: App_Main.py:4408 +#: FlatCAMApp.py:5200 msgid "Click to set the origin ..." msgstr "Clique para definir a origem ..." -#: App_Main.py:4430 +#: FlatCAMApp.py:5222 msgid "Setting Origin..." msgstr "Definindo Origem..." -#: App_Main.py:4443 App_Main.py:4545 +#: FlatCAMApp.py:5235 FlatCAMApp.py:5337 msgid "Origin set" msgstr "Origem definida" -#: App_Main.py:4460 +#: FlatCAMApp.py:5252 msgid "Origin coordinates specified but incomplete." msgstr "Coordenadas de origem especificadas, mas incompletas." -#: App_Main.py:4501 +#: FlatCAMApp.py:5293 msgid "Moving to Origin..." msgstr "Movendo para Origem..." -#: App_Main.py:4582 +#: FlatCAMApp.py:5374 msgid "Jump to ..." msgstr "Pular para ..." -#: App_Main.py:4583 +#: FlatCAMApp.py:5375 msgid "Enter the coordinates in format X,Y:" msgstr "Digite as coordenadas no formato X,Y:" -#: App_Main.py:4593 +#: FlatCAMApp.py:5385 msgid "Wrong coordinates. Enter coordinates in format: X,Y" msgstr "Coordenadas erradas. Insira as coordenadas no formato X,Y" -#: App_Main.py:4711 +#: FlatCAMApp.py:5463 FlatCAMApp.py:5612 +#: flatcamEditors/FlatCAMExcEditor.py:3624 +#: flatcamEditors/FlatCAMExcEditor.py:3632 +#: flatcamEditors/FlatCAMGeoEditor.py:4349 +#: flatcamEditors/FlatCAMGeoEditor.py:4363 +#: flatcamEditors/FlatCAMGrbEditor.py:1087 +#: flatcamEditors/FlatCAMGrbEditor.py:1204 +#: flatcamEditors/FlatCAMGrbEditor.py:1490 +#: flatcamEditors/FlatCAMGrbEditor.py:1759 +#: flatcamEditors/FlatCAMGrbEditor.py:4622 +#: flatcamEditors/FlatCAMGrbEditor.py:4637 flatcamGUI/FlatCAMGUI.py:3424 +#: flatcamGUI/FlatCAMGUI.py:3436 flatcamTools/ToolAlignObjects.py:393 +#: flatcamTools/ToolAlignObjects.py:415 +msgid "Done." +msgstr "Pronto." + +#: FlatCAMApp.py:5478 FlatCAMApp.py:7724 FlatCAMApp.py:7819 FlatCAMApp.py:7860 +#: FlatCAMApp.py:7901 FlatCAMApp.py:7942 FlatCAMApp.py:7983 FlatCAMApp.py:8027 +#: FlatCAMApp.py:8071 FlatCAMApp.py:8593 FlatCAMApp.py:8597 +#: flatcamTools/ToolProperties.py:116 +msgid "No object selected." +msgstr "Nenhum objeto selecionado." + +#: FlatCAMApp.py:5497 msgid "Bottom-Left" msgstr "Esquerda Inferior" -#: App_Main.py:4714 +#: FlatCAMApp.py:5498 flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:131 +#: flatcamTools/ToolCalibration.py:159 +msgid "Top-Left" +msgstr "Esquerda Superior" + +#: FlatCAMApp.py:5499 flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:132 +#: flatcamTools/ToolCalibration.py:160 +msgid "Bottom-Right" +msgstr "Direita Inferior" + +#: FlatCAMApp.py:5500 msgid "Top-Right" msgstr "Direita Superior" -#: App_Main.py:4735 +#: FlatCAMApp.py:5501 flatcamGUI/ObjectUI.py:2706 +msgid "Center" +msgstr "Centro" + +#: FlatCAMApp.py:5521 msgid "Locate ..." msgstr "Localizar ..." -#: App_Main.py:5008 App_Main.py:5085 +#: FlatCAMApp.py:5779 FlatCAMApp.py:5856 msgid "No object is selected. Select an object and try again." msgstr "Nenhum objeto está selecionado. Selecione um objeto e tente novamente." -#: App_Main.py:5111 +#: FlatCAMApp.py:5882 msgid "" "Aborting. The current task will be gracefully closed as soon as possible..." msgstr "" "Abortando. A tarefa atual será fechada normalmente o mais rápido possível ..." -#: App_Main.py:5117 +#: FlatCAMApp.py:5888 msgid "The current task was gracefully closed on user request..." msgstr "" "A tarefa atual foi fechada normalmente mediante solicitação do usuário ..." -#: App_Main.py:5291 +#: FlatCAMApp.py:5916 flatcamGUI/preferences/PreferencesUIManager.py:905 +#: flatcamGUI/preferences/PreferencesUIManager.py:949 +#: flatcamGUI/preferences/PreferencesUIManager.py:970 +#: flatcamGUI/preferences/PreferencesUIManager.py:1075 +msgid "Preferences" +msgstr "Preferências" + +#: FlatCAMApp.py:5981 FlatCAMApp.py:6009 FlatCAMApp.py:6036 FlatCAMApp.py:6056 +#: FlatCAMDB.py:738 FlatCAMDB.py:913 FlatCAMDB.py:2200 FlatCAMDB.py:2418 +#: flatcamObjects/FlatCAMGeometry.py:890 flatcamTools/ToolNCC.py:3963 +#: flatcamTools/ToolNCC.py:4047 flatcamTools/ToolPaint.py:3553 +#: flatcamTools/ToolPaint.py:3638 +msgid "Tools Database" +msgstr "Banco de Dados de Ferramentas" + +#: FlatCAMApp.py:6033 msgid "Tools in Tools Database edited but not saved." msgstr "Ferramenta editada, mas não salva." -#: App_Main.py:5330 +#: FlatCAMApp.py:6060 flatcamTools/ToolNCC.py:3970 +#: flatcamTools/ToolPaint.py:3560 +msgid "Tool from DB added in Tool Table." +msgstr "Ferramenta do Banco de Dados adicionada na Tabela de Ferramentas." + +#: FlatCAMApp.py:6062 msgid "Adding tool from DB is not allowed for this object." msgstr "Adição de ferramenta do Banco de Dados não permitida para este objeto." -#: App_Main.py:5348 +#: FlatCAMApp.py:6080 msgid "" "One or more Tools are edited.\n" "Do you want to update the Tools Database?" @@ -17619,113 +743,175 @@ msgstr "" "Um ou mais Ferramentas foram editadas.\n" "Você deseja salvar o Banco de Dados de Ferramentas?" -#: App_Main.py:5350 +#: FlatCAMApp.py:6082 msgid "Save Tools Database" msgstr "Salvar Banco de Dados" -#: App_Main.py:5404 +#: FlatCAMApp.py:6135 msgid "No object selected to Flip on Y axis." msgstr "Nenhum objeto selecionado para Espelhar no eixo Y." -#: App_Main.py:5430 +#: FlatCAMApp.py:6161 msgid "Flip on Y axis done." msgstr "Espelhado no eixo Y." -#: App_Main.py:5452 +#: FlatCAMApp.py:6163 FlatCAMApp.py:6211 +#: flatcamEditors/FlatCAMGrbEditor.py:6059 +msgid "Flip action was not executed." +msgstr "A ação de espelhamento não foi executada." + +#: FlatCAMApp.py:6183 msgid "No object selected to Flip on X axis." msgstr "Nenhum objeto selecionado para Espelhar no eixo X." -#: App_Main.py:5478 +#: FlatCAMApp.py:6209 msgid "Flip on X axis done." msgstr "Espelhado no eixo X." -#: App_Main.py:5500 +#: FlatCAMApp.py:6231 msgid "No object selected to Rotate." msgstr "Nenhum objeto selecionado para Girar." -#: App_Main.py:5503 App_Main.py:5554 App_Main.py:5591 +#: FlatCAMApp.py:6234 FlatCAMApp.py:6287 FlatCAMApp.py:6326 msgid "Transform" msgstr "Transformar" -#: App_Main.py:5503 App_Main.py:5554 App_Main.py:5591 +#: FlatCAMApp.py:6234 FlatCAMApp.py:6287 FlatCAMApp.py:6326 msgid "Enter the Angle value:" msgstr "Digite o valor do Ângulo:" -#: App_Main.py:5533 +#: FlatCAMApp.py:6265 msgid "Rotation done." msgstr "Rotação realizada." -#: App_Main.py:5535 +#: FlatCAMApp.py:6267 msgid "Rotation movement was not executed." msgstr "O movimento de rotação não foi executado." -#: App_Main.py:5552 +#: FlatCAMApp.py:6285 msgid "No object selected to Skew/Shear on X axis." msgstr "Nenhum objeto selecionado para Inclinar no eixo X." -#: App_Main.py:5573 +#: FlatCAMApp.py:6307 msgid "Skew on X axis done." msgstr "Inclinação no eixo X concluída." -#: App_Main.py:5589 +#: FlatCAMApp.py:6324 msgid "No object selected to Skew/Shear on Y axis." msgstr "Nenhum objeto selecionado para Inclinar no eixo Y." -#: App_Main.py:5610 +#: FlatCAMApp.py:6346 msgid "Skew on Y axis done." msgstr "Inclinação no eixo Y concluída." -#: App_Main.py:5688 +#: FlatCAMApp.py:6497 FlatCAMApp.py:6544 flatcamGUI/FlatCAMGUI.py:503 +#: flatcamGUI/FlatCAMGUI.py:1728 +msgid "Select All" +msgstr "Selecionar Todos" + +#: FlatCAMApp.py:6501 FlatCAMApp.py:6548 flatcamGUI/FlatCAMGUI.py:505 +msgid "Deselect All" +msgstr "Desmarcar todos" + +#: FlatCAMApp.py:6564 +msgid "All objects are selected." +msgstr "Todos os objetos estão selecionados." + +#: FlatCAMApp.py:6574 +msgid "Objects selection is cleared." +msgstr "A seleção de objetos é limpa." + +#: FlatCAMApp.py:6594 flatcamGUI/FlatCAMGUI.py:1721 +msgid "Grid On/Off" +msgstr "Liga/Desliga a Grade" + +#: FlatCAMApp.py:6606 flatcamEditors/FlatCAMGeoEditor.py:939 +#: flatcamEditors/FlatCAMGrbEditor.py:2583 +#: flatcamEditors/FlatCAMGrbEditor.py:5641 flatcamGUI/ObjectUI.py:1595 +#: flatcamTools/ToolDblSided.py:192 flatcamTools/ToolDblSided.py:425 +#: flatcamTools/ToolNCC.py:294 flatcamTools/ToolNCC.py:631 +#: flatcamTools/ToolPaint.py:277 flatcamTools/ToolPaint.py:676 +#: flatcamTools/ToolSolderPaste.py:122 flatcamTools/ToolSolderPaste.py:597 +#: flatcamTools/ToolTransform.py:478 +msgid "Add" +msgstr "Adicionar" + +#: FlatCAMApp.py:6608 flatcamEditors/FlatCAMGrbEditor.py:2588 +#: flatcamEditors/FlatCAMGrbEditor.py:2736 flatcamGUI/FlatCAMGUI.py:751 +#: flatcamGUI/FlatCAMGUI.py:1074 flatcamGUI/FlatCAMGUI.py:2141 +#: flatcamGUI/FlatCAMGUI.py:2284 flatcamGUI/FlatCAMGUI.py:2777 +#: flatcamGUI/ObjectUI.py:1623 flatcamObjects/FlatCAMGeometry.py:505 +#: flatcamTools/ToolNCC.py:316 flatcamTools/ToolNCC.py:637 +#: flatcamTools/ToolPaint.py:299 flatcamTools/ToolPaint.py:682 +#: flatcamTools/ToolSolderPaste.py:128 flatcamTools/ToolSolderPaste.py:600 +msgid "Delete" +msgstr "Excluir" + +#: FlatCAMApp.py:6624 msgid "New Grid ..." msgstr "Nova Grade ..." -#: App_Main.py:5689 +#: FlatCAMApp.py:6625 msgid "Enter a Grid Value:" msgstr "Digite um valor para grade:" -#: App_Main.py:5697 App_Main.py:5721 +#: FlatCAMApp.py:6633 FlatCAMApp.py:6660 msgid "Please enter a grid value with non-zero value, in Float format." msgstr "" "Por favor, insira um valor de grade com valor diferente de zero, no formato " "Flutuante." -#: App_Main.py:5702 +#: FlatCAMApp.py:6639 msgid "New Grid added" msgstr "Nova Grade adicionada" -#: App_Main.py:5704 +#: FlatCAMApp.py:6642 msgid "Grid already exists" msgstr "Grade já existe" -#: App_Main.py:5706 +#: FlatCAMApp.py:6645 msgid "Adding New Grid cancelled" msgstr "Adicionar nova grade cancelada" -#: App_Main.py:5727 +#: FlatCAMApp.py:6667 msgid " Grid Value does not exist" msgstr " O valor da grade não existe" -#: App_Main.py:5729 +#: FlatCAMApp.py:6670 msgid "Grid Value deleted" msgstr "Grade apagada" -#: App_Main.py:5731 +#: FlatCAMApp.py:6673 msgid "Delete Grid value cancelled" msgstr "Excluir valor de grade cancelado" -#: App_Main.py:5737 +#: FlatCAMApp.py:6679 msgid "Key Shortcut List" msgstr "Lista de Teclas de Atalho" -#: App_Main.py:5771 +#: FlatCAMApp.py:6713 msgid " No object selected to copy it's name" msgstr " Nenhum objeto selecionado para copiar nome" -#: App_Main.py:5775 +#: FlatCAMApp.py:6717 msgid "Name copied on clipboard ..." msgstr "Nome copiado para a área de transferência..." -#: App_Main.py:6408 +#: FlatCAMApp.py:6930 flatcamEditors/FlatCAMGrbEditor.py:4554 +msgid "Coordinates copied to clipboard." +msgstr "Coordenadas copiadas para a área de transferência." + +#: FlatCAMApp.py:7167 FlatCAMApp.py:7173 FlatCAMApp.py:7179 FlatCAMApp.py:7185 +#: flatcamObjects/ObjectCollection.py:922 +#: flatcamObjects/ObjectCollection.py:928 +#: flatcamObjects/ObjectCollection.py:934 +#: flatcamObjects/ObjectCollection.py:940 +#: flatcamObjects/ObjectCollection.py:946 +#: flatcamObjects/ObjectCollection.py:952 +msgid "selected" +msgstr "selecionado" + +#: FlatCAMApp.py:7340 msgid "" "There are files/objects opened in FlatCAM.\n" "Creating a New project will delete them.\n" @@ -17735,12 +921,17 @@ msgstr "" "Criar um novo projeto irá apagá-los.\n" "Você deseja Salvar o Projeto?" -#: App_Main.py:6431 +#: FlatCAMApp.py:7361 msgid "New Project created" msgstr "Novo Projeto criado" -#: App_Main.py:6603 App_Main.py:6642 App_Main.py:6686 App_Main.py:6756 -#: App_Main.py:7550 App_Main.py:8763 App_Main.py:8825 +#: FlatCAMApp.py:7519 FlatCAMApp.py:7523 flatcamGUI/FlatCAMGUI.py:836 +#: flatcamGUI/FlatCAMGUI.py:2544 +msgid "Open Gerber" +msgstr "Abrir Gerber" + +#: FlatCAMApp.py:7528 FlatCAMApp.py:7565 FlatCAMApp.py:7607 FlatCAMApp.py:7677 +#: FlatCAMApp.py:8462 FlatCAMApp.py:9675 FlatCAMApp.py:9737 msgid "" "Canvas initialization started.\n" "Canvas initialization finished in" @@ -17748,289 +939,344 @@ msgstr "" "Inicialização do Canvas iniciada.\n" "Inicialização do Canvas concluída em" -#: App_Main.py:6605 +#: FlatCAMApp.py:7530 msgid "Opening Gerber file." msgstr "Abrindo Arquivo Gerber." -#: App_Main.py:6644 +#: FlatCAMApp.py:7557 FlatCAMApp.py:7561 flatcamGUI/FlatCAMGUI.py:838 +#: flatcamGUI/FlatCAMGUI.py:2546 +msgid "Open Excellon" +msgstr "Abrir Excellon" + +#: FlatCAMApp.py:7567 msgid "Opening Excellon file." msgstr "Abrindo Arquivo Excellon." -#: App_Main.py:6675 App_Main.py:6680 +#: FlatCAMApp.py:7598 FlatCAMApp.py:7602 msgid "Open G-Code" msgstr "Abrir G-Code" -#: App_Main.py:6688 +#: FlatCAMApp.py:7609 msgid "Opening G-Code file." msgstr "Abrindo Arquivo G-Code." -#: App_Main.py:6747 App_Main.py:6751 +#: FlatCAMApp.py:7632 FlatCAMApp.py:7635 flatcamGUI/FlatCAMGUI.py:1730 +msgid "Open Project" +msgstr "Abrir Projeto" + +#: FlatCAMApp.py:7668 FlatCAMApp.py:7672 msgid "Open HPGL2" msgstr "Abrir HPGL2" -#: App_Main.py:6758 +#: FlatCAMApp.py:7679 msgid "Opening HPGL2 file." msgstr "Abrindo Arquivo HPGL2 ." -#: App_Main.py:6781 App_Main.py:6784 +#: FlatCAMApp.py:7702 FlatCAMApp.py:7705 msgid "Open Configuration File" msgstr "Abrir Arquivo de Configuração" -#: App_Main.py:6804 App_Main.py:7158 +#: FlatCAMApp.py:7725 FlatCAMApp.py:8072 msgid "Please Select a Geometry object to export" msgstr "Por favor, selecione um objeto Geometria para exportar" -#: App_Main.py:6820 +#: FlatCAMApp.py:7739 msgid "Only Geometry, Gerber and CNCJob objects can be used." msgstr "Somente objetos Geometria, Gerber e Trabalho CNC podem ser usados." -#: App_Main.py:6865 +#: FlatCAMApp.py:7752 FlatCAMApp.py:7756 flatcamTools/ToolQRCode.py:829 +#: flatcamTools/ToolQRCode.py:833 +msgid "Export SVG" +msgstr "Exportar SVG" + +#: FlatCAMApp.py:7781 msgid "Data must be a 3D array with last dimension 3 or 4" msgstr "Os dados devem ser uma matriz 3D com a última dimensão 3 ou 4" -#: App_Main.py:6871 App_Main.py:6875 +#: FlatCAMApp.py:7787 FlatCAMApp.py:7791 msgid "Export PNG Image" msgstr "Exportar Imagem PNG" -#: App_Main.py:6908 App_Main.py:7118 +#: FlatCAMApp.py:7824 FlatCAMApp.py:8032 msgid "Failed. Only Gerber objects can be saved as Gerber files..." msgstr "" "Falhou. Somente objetos Gerber podem ser salvos como arquivos Gerber..." -#: App_Main.py:6920 +#: FlatCAMApp.py:7836 msgid "Save Gerber source file" msgstr "Salvar arquivo fonte Gerber" -#: App_Main.py:6949 +#: FlatCAMApp.py:7865 msgid "Failed. Only Script objects can be saved as TCL Script files..." msgstr "Falhou. Somente Scripts podem ser salvos como arquivos Scripts TCL..." -#: App_Main.py:6961 +#: FlatCAMApp.py:7877 msgid "Save Script source file" msgstr "Salvar arquivo fonte do Script" -#: App_Main.py:6990 +#: FlatCAMApp.py:7906 msgid "Failed. Only Document objects can be saved as Document files..." msgstr "" "Falhou. Somente objetos Documentos podem ser salvos como arquivos " "Documentos..." -#: App_Main.py:7002 +#: FlatCAMApp.py:7918 msgid "Save Document source file" msgstr "Salvar o arquivo fonte Documento" -#: App_Main.py:7032 App_Main.py:7074 App_Main.py:8033 +#: FlatCAMApp.py:7947 FlatCAMApp.py:7988 FlatCAMApp.py:8945 msgid "Failed. Only Excellon objects can be saved as Excellon files..." msgstr "" "Falhou. Somente objetos Excellon podem ser salvos como arquivos Excellon..." -#: App_Main.py:7040 App_Main.py:7045 +#: FlatCAMApp.py:7955 FlatCAMApp.py:7959 msgid "Save Excellon source file" msgstr "Salvar o arquivo fonte Excellon" -#: App_Main.py:7082 App_Main.py:7086 +#: FlatCAMApp.py:7996 FlatCAMApp.py:8000 msgid "Export Excellon" msgstr "Exportar Excellon" -#: App_Main.py:7126 App_Main.py:7130 +#: FlatCAMApp.py:8040 FlatCAMApp.py:8044 msgid "Export Gerber" msgstr "Exportar Gerber" -#: App_Main.py:7170 +#: FlatCAMApp.py:8082 msgid "Only Geometry objects can be used." msgstr "Apenas objetos Geometria podem ser usados." -#: App_Main.py:7186 App_Main.py:7190 +#: FlatCAMApp.py:8096 FlatCAMApp.py:8100 msgid "Export DXF" msgstr "Exportar DXF" -#: App_Main.py:7215 App_Main.py:7218 +#: FlatCAMApp.py:8125 FlatCAMApp.py:8128 msgid "Import SVG" msgstr "Importar SVG" -#: App_Main.py:7246 App_Main.py:7250 +#: FlatCAMApp.py:8156 FlatCAMApp.py:8160 msgid "Import DXF" msgstr "Importar DXF" -#: App_Main.py:7300 +#: FlatCAMApp.py:8210 msgid "Viewing the source code of the selected object." msgstr "Vendo o código fonte do objeto selecionado." -#: App_Main.py:7307 App_Main.py:7311 +#: FlatCAMApp.py:8211 flatcamObjects/FlatCAMCNCJob.py:548 +#: flatcamObjects/FlatCAMScript.py:134 +msgid "Loading..." +msgstr "Lendo..." + +#: FlatCAMApp.py:8217 FlatCAMApp.py:8221 msgid "Select an Gerber or Excellon file to view it's source file." msgstr "" "Selecione um arquivo Gerber ou Excellon para visualizar o arquivo fonte." -#: App_Main.py:7325 +#: FlatCAMApp.py:8235 msgid "Source Editor" msgstr "Editor de Fontes" -#: App_Main.py:7365 App_Main.py:7372 +#: FlatCAMApp.py:8275 FlatCAMApp.py:8282 msgid "There is no selected object for which to see it's source file code." msgstr "Nenhum objeto selecionado para ver o código fonte do arquivo." -#: App_Main.py:7384 +#: FlatCAMApp.py:8294 msgid "Failed to load the source code for the selected object" msgstr "Falha ao ler o código fonte do objeto selecionado" -#: App_Main.py:7420 +#: FlatCAMApp.py:8308 flatcamObjects/FlatCAMCNCJob.py:562 +msgid "Code Editor" +msgstr "Editor de Códigos" + +#: FlatCAMApp.py:8330 msgid "Go to Line ..." msgstr "Ir para Linha ..." -#: App_Main.py:7421 +#: FlatCAMApp.py:8331 msgid "Line:" msgstr "Linha:" -#: App_Main.py:7448 +#: FlatCAMApp.py:8360 msgid "New TCL script file created in Code Editor." msgstr "Novo arquivo de script TCL criado no Editor de Códigos." -#: App_Main.py:7484 App_Main.py:7486 App_Main.py:7522 App_Main.py:7524 +#: FlatCAMApp.py:8396 FlatCAMApp.py:8398 FlatCAMApp.py:8434 FlatCAMApp.py:8436 msgid "Open TCL script" msgstr "Abrir script TCL" -#: App_Main.py:7552 +#: FlatCAMApp.py:8464 msgid "Executing ScriptObject file." msgstr "Executando arquivo de Script FlatCAM." -#: App_Main.py:7560 App_Main.py:7563 +#: FlatCAMApp.py:8472 FlatCAMApp.py:8475 msgid "Run TCL script" msgstr "Executar script TCL" -#: App_Main.py:7586 +#: FlatCAMApp.py:8498 msgid "TCL script file opened in Code Editor and executed." msgstr "Arquivo de script TCL aberto no Editor de Código e executado." -#: App_Main.py:7637 App_Main.py:7643 +#: FlatCAMApp.py:8549 FlatCAMApp.py:8555 msgid "Save Project As ..." msgstr "Salvar Projeto Como..." -#: App_Main.py:7678 +#: FlatCAMApp.py:8551 flatcamGUI/FlatCAMGUI.py:1134 +#: flatcamGUI/FlatCAMGUI.py:2176 +msgid "Project" +msgstr "Projeto" + +#: FlatCAMApp.py:8590 msgid "FlatCAM objects print" msgstr "Objetos FlatCAM imprimem" -#: App_Main.py:7691 App_Main.py:7698 +#: FlatCAMApp.py:8603 FlatCAMApp.py:8610 msgid "Save Object as PDF ..." msgstr "Salvar objeto como PDF ..." -#: App_Main.py:7707 +#: FlatCAMApp.py:8619 msgid "Printing PDF ... Please wait." msgstr "Imprimindo PDF ... Aguarde." -#: App_Main.py:7886 +#: FlatCAMApp.py:8798 msgid "PDF file saved to" msgstr "Arquivo PDF salvo em" -#: App_Main.py:7911 +#: FlatCAMApp.py:8823 msgid "Exporting SVG" msgstr "Exportando SVG" -#: App_Main.py:7954 +#: FlatCAMApp.py:8866 msgid "SVG file exported to" msgstr "Arquivo SVG exportado para" -#: App_Main.py:7980 +#: FlatCAMApp.py:8892 msgid "" "Save cancelled because source file is empty. Try to export the Gerber file." msgstr "" "Salvar cancelado porque o arquivo de origem está vazio. Tente exportar o " "arquivo Gerber." -#: App_Main.py:8127 +#: FlatCAMApp.py:9039 msgid "Excellon file exported to" msgstr "Arquivo Excellon exportado para" -#: App_Main.py:8136 +#: FlatCAMApp.py:9048 msgid "Exporting Excellon" msgstr "Exportando Excellon" -#: App_Main.py:8141 App_Main.py:8148 +#: FlatCAMApp.py:9053 FlatCAMApp.py:9060 msgid "Could not export Excellon file." msgstr "Não foi possível exportar o arquivo Excellon." -#: App_Main.py:8263 +#: FlatCAMApp.py:9175 msgid "Gerber file exported to" msgstr "Arquivo Gerber exportado para" -#: App_Main.py:8271 +#: FlatCAMApp.py:9183 msgid "Exporting Gerber" msgstr "Exportando Gerber" -#: App_Main.py:8276 App_Main.py:8283 +#: FlatCAMApp.py:9188 FlatCAMApp.py:9195 msgid "Could not export Gerber file." msgstr "Não foi possível exportar o arquivo Gerber." -#: App_Main.py:8318 +#: FlatCAMApp.py:9230 msgid "DXF file exported to" msgstr "Arquivo DXF exportado para" -#: App_Main.py:8324 +#: FlatCAMApp.py:9236 msgid "Exporting DXF" msgstr "Exportando DXF" -#: App_Main.py:8329 App_Main.py:8336 +#: FlatCAMApp.py:9241 FlatCAMApp.py:9248 msgid "Could not export DXF file." msgstr "Não foi possível exportar o arquivo DXF." -#: App_Main.py:8370 +#: FlatCAMApp.py:9272 FlatCAMApp.py:9319 flatcamTools/ToolImage.py:277 +msgid "" +"Not supported type is picked as parameter. Only Geometry and Gerber are " +"supported" +msgstr "" +"O tipo escolhido não é suportado como parâmetro. Apenas Geometria e Gerber " +"são suportados" + +#: FlatCAMApp.py:9282 msgid "Importing SVG" msgstr "Importando SVG" -#: App_Main.py:8378 App_Main.py:8424 +#: FlatCAMApp.py:9290 FlatCAMApp.py:9336 msgid "Import failed." msgstr "Importação falhou." -#: App_Main.py:8416 +#: FlatCAMApp.py:9297 FlatCAMApp.py:9343 FlatCAMApp.py:9407 FlatCAMApp.py:9474 +#: FlatCAMApp.py:9540 FlatCAMApp.py:9605 FlatCAMApp.py:9662 +#: flatcamTools/ToolImage.py:297 flatcamTools/ToolPDF.py:225 +msgid "Opened" +msgstr "Aberto" + +#: FlatCAMApp.py:9328 msgid "Importing DXF" msgstr "Importando DXF" -#: App_Main.py:8457 App_Main.py:8652 App_Main.py:8717 +#: FlatCAMApp.py:9369 FlatCAMApp.py:9564 FlatCAMApp.py:9629 msgid "Failed to open file" msgstr "Falha ao abrir o arquivo" -#: App_Main.py:8460 App_Main.py:8655 App_Main.py:8720 +#: FlatCAMApp.py:9372 FlatCAMApp.py:9567 FlatCAMApp.py:9632 msgid "Failed to parse file" msgstr "Falha ao analisar o arquivo" -#: App_Main.py:8472 +#: FlatCAMApp.py:9384 msgid "Object is not Gerber file or empty. Aborting object creation." msgstr "" "O objeto não é um arquivo Gerber ou está vazio. Abortando a criação de " "objetos." -#: App_Main.py:8477 +#: FlatCAMApp.py:9389 msgid "Opening Gerber" msgstr "Abrindo Gerber" -#: App_Main.py:8488 +#: FlatCAMApp.py:9400 msgid "Open Gerber failed. Probable not a Gerber file." msgstr "Abrir Gerber falhou. Provavelmente não é um arquivo Gerber." -#: App_Main.py:8524 +#: FlatCAMApp.py:9432 flatcamTools/ToolPcbWizard.py:424 +msgid "This is not Excellon file." +msgstr "Este não é um arquivo Excellon." + +#: FlatCAMApp.py:9436 msgid "Cannot open file" msgstr "Não é possível abrir o arquivo" -#: App_Main.py:8545 +#: FlatCAMApp.py:9454 flatcamTools/ToolPDF.py:275 +#: flatcamTools/ToolPcbWizard.py:445 +msgid "No geometry found in file" +msgstr "Nenhuma geometria encontrada no arquivo" + +#: FlatCAMApp.py:9457 msgid "Opening Excellon." msgstr "Abrindo Excellon." -#: App_Main.py:8555 +#: FlatCAMApp.py:9467 msgid "Open Excellon file failed. Probable not an Excellon file." msgstr "Falha ao abrir Excellon. Provavelmente não é um arquivo Excellon." -#: App_Main.py:8587 +#: FlatCAMApp.py:9499 msgid "Reading GCode file" msgstr "Lendo Arquivo G-Code" -#: App_Main.py:8600 +#: FlatCAMApp.py:9505 +msgid "Failed to open" +msgstr "Falha ao abrir" + +#: FlatCAMApp.py:9512 msgid "This is not GCODE" msgstr "Não é G-Code" -#: App_Main.py:8605 +#: FlatCAMApp.py:9517 msgid "Opening G-Code." msgstr "Abrindo G-Code." -#: App_Main.py:8618 +#: FlatCAMApp.py:9530 msgid "" "Failed to create CNCJob Object. Probable not a GCode file. Try to load it " "from File menu.\n" @@ -18042,133 +1288,125 @@ msgstr "" "A tentativa de criar um objeto de Trabalho CNC do arquivo G-Code falhou " "durante o processamento" -#: App_Main.py:8674 +#: FlatCAMApp.py:9586 msgid "Object is not HPGL2 file or empty. Aborting object creation." msgstr "" "O objeto não é um arquivo HPGL2 ou está vazio. Interrompendo a criação de " "objetos." -#: App_Main.py:8679 +#: FlatCAMApp.py:9591 msgid "Opening HPGL2" msgstr "Abrindo o HPGL2" -#: App_Main.py:8686 +#: FlatCAMApp.py:9598 msgid " Open HPGL2 failed. Probable not a HPGL2 file." msgstr " Falha no HPGL2 aberto. Provavelmente não é um arquivo HPGL2." -#: App_Main.py:8712 +#: FlatCAMApp.py:9624 msgid "TCL script file opened in Code Editor." msgstr "Arquivo de script TCL aberto no Editor de Códigos." -#: App_Main.py:8732 +#: FlatCAMApp.py:9644 msgid "Opening TCL Script..." msgstr "Abrindo script TCL..." -#: App_Main.py:8743 +#: FlatCAMApp.py:9655 msgid "Failed to open TCL Script." msgstr "Falha ao abrir o Script TCL." -#: App_Main.py:8765 +#: FlatCAMApp.py:9677 msgid "Opening FlatCAM Config file." msgstr "Abrindo arquivo de Configuração." -#: App_Main.py:8793 +#: FlatCAMApp.py:9705 msgid "Failed to open config file" msgstr "Falha ao abrir o arquivo de configuração" -#: App_Main.py:8822 +#: FlatCAMApp.py:9734 msgid "Loading Project ... Please Wait ..." msgstr "Carregando projeto ... Por favor aguarde ..." -#: App_Main.py:8827 +#: FlatCAMApp.py:9739 msgid "Opening FlatCAM Project file." msgstr "Abrindo Projeto FlatCAM." -#: App_Main.py:8842 App_Main.py:8846 App_Main.py:8863 +#: FlatCAMApp.py:9754 FlatCAMApp.py:9758 FlatCAMApp.py:9775 msgid "Failed to open project file" msgstr "Falha ao abrir o arquivo de projeto" -#: App_Main.py:8900 +#: FlatCAMApp.py:9812 msgid "Loading Project ... restoring" msgstr "Carregando projeto ... restaurando" -#: App_Main.py:8910 +#: FlatCAMApp.py:9822 msgid "Project loaded from" msgstr "Projeto carregado de" -#: App_Main.py:8936 +#: FlatCAMApp.py:9846 msgid "Redrawing all objects" msgstr "Redesenha todos os objetos" -#: App_Main.py:9024 +#: FlatCAMApp.py:9934 msgid "Failed to load recent item list." msgstr "Falha ao carregar a lista de itens recentes." -#: App_Main.py:9031 +#: FlatCAMApp.py:9941 msgid "Failed to parse recent item list." msgstr "Falha ao analisar a lista de itens recentes." -#: App_Main.py:9041 +#: FlatCAMApp.py:9951 msgid "Failed to load recent projects item list." msgstr "Falha ao carregar a lista de projetos recentes." -#: App_Main.py:9048 +#: FlatCAMApp.py:9958 msgid "Failed to parse recent project item list." msgstr "Falha ao analisar a lista de projetos recentes." -#: App_Main.py:9109 +#: FlatCAMApp.py:10019 msgid "Clear Recent projects" msgstr "Limpar Projetos Recentes" -#: App_Main.py:9133 +#: FlatCAMApp.py:10043 msgid "Clear Recent files" msgstr "Limpar Arquivos Recentes" -#: App_Main.py:9235 +#: FlatCAMApp.py:10065 flatcamGUI/FlatCAMGUI.py:1363 +msgid "Shortcut Key List" +msgstr "Lista de Teclas de Atalho" + +#: FlatCAMApp.py:10145 msgid "Selected Tab - Choose an Item from Project Tab" msgstr "Guia Selecionado - Escolha um item na guia Projeto" -#: App_Main.py:9236 +#: FlatCAMApp.py:10146 msgid "Details" msgstr "Detalhes" -#: App_Main.py:9238 -#, fuzzy -#| msgid "The normal flow when working in FlatCAM is the following:" -msgid "The normal flow when working with the application is the following:" +#: FlatCAMApp.py:10148 +msgid "The normal flow when working in FlatCAM is the following:" msgstr "O fluxo normal ao trabalhar no FlatCAM é o seguinte:" -#: App_Main.py:9239 -#, fuzzy -#| msgid "" -#| "Load/Import a Gerber, Excellon, Gcode, DXF, Raster Image or SVG file into " -#| "FlatCAM using either the toolbars, key shortcuts or even dragging and " -#| "dropping the files on the GUI." +#: FlatCAMApp.py:10149 msgid "" "Load/Import a Gerber, Excellon, Gcode, DXF, Raster Image or SVG file into " -"the application using either the toolbars, key shortcuts or even dragging " -"and dropping the files on the AppGUI." +"FlatCAM using either the toolbars, key shortcuts or even dragging and " +"dropping the files on the GUI." msgstr "" "Abrir/Importar um arquivo Gerber, Excellon, G-Code, DXF, Raster Image ou SVG " "para o FlatCAM usando a barra de ferramentas, tecla de atalho ou arrastando " "e soltando um arquivo na GUI." -#: App_Main.py:9242 -#, fuzzy -#| msgid "" -#| "You can also load a FlatCAM project by double clicking on the project " -#| "file, drag and drop of the file into the FLATCAM GUI or through the menu " -#| "(or toolbar) actions offered within the app." +#: FlatCAMApp.py:10152 msgid "" -"You can also load a project by double clicking on the project file, drag and " -"drop of the file into the AppGUI or through the menu (or toolbar) actions " -"offered within the app." +"You can also load a FlatCAM project by double clicking on the project file, " +"drag and drop of the file into the FLATCAM GUI or through the menu (or " +"toolbar) actions offered within the app." msgstr "" "Você pode abrir um projeto FlatCAM clicando duas vezes sobre o arquivo, " "usando o menu ou a barra de ferramentas, tecla de atalho ou arrastando e " "soltando um arquivo na GUI." -#: App_Main.py:9245 +#: FlatCAMApp.py:10155 msgid "" "Once an object is available in the Project Tab, by selecting it and then " "focusing on SELECTED TAB (more simpler is to double click the object name in " @@ -18180,7 +1418,7 @@ msgstr "" "Projeto, a ABA SELECIONADO será atualizada com as propriedades do objeto de " "acordo com seu tipo: Gerber, Excellon, Geometria ou Trabalho CNC." -#: App_Main.py:9249 +#: FlatCAMApp.py:10159 msgid "" "If the selection of the object is done on the canvas by single click " "instead, and the SELECTED TAB is in focus, again the object properties will " @@ -18194,14 +1432,14 @@ msgstr "" "na tela exibirá a ABA SELECIONADO e a preencherá mesmo que ela esteja fora " "de foco." -#: App_Main.py:9253 +#: FlatCAMApp.py:10163 msgid "" "You can change the parameters in this screen and the flow direction is like " "this:" msgstr "" "Você pode alterar os parâmetros nesta tela e a direção do fluxo é assim:" -#: App_Main.py:9254 +#: FlatCAMApp.py:10164 msgid "" "Gerber/Excellon Object --> Change Parameter --> Generate Geometry --> " "Geometry Object --> Add tools (change param in Selected Tab) --> Generate " @@ -18214,7 +1452,7 @@ msgstr "" "Código CNC) e/ou adicionar código no início ou no final do G-Code (na Aba " "Selecionado) --> Salvar G-Code." -#: App_Main.py:9258 +#: FlatCAMApp.py:10168 msgid "" "A list of key shortcuts is available through an menu entry in Help --> " "Shortcuts List or through its own key shortcut: F3." @@ -18223,32 +1461,32 @@ msgstr "" "menu em Ajuda --> Lista de Atalhos ou através da sua própria tecla de " "atalho: F3." -#: App_Main.py:9322 +#: FlatCAMApp.py:10232 msgid "Failed checking for latest version. Could not connect." msgstr "" "Falha na verificação da versão mais recente. Não foi possível conectar." -#: App_Main.py:9329 +#: FlatCAMApp.py:10239 msgid "Could not parse information about latest version." msgstr "Não foi possível analisar informações sobre a versão mais recente." -#: App_Main.py:9339 +#: FlatCAMApp.py:10249 msgid "FlatCAM is up to date!" msgstr "O FlatCAM está atualizado!" -#: App_Main.py:9344 +#: FlatCAMApp.py:10254 msgid "Newer Version Available" msgstr "Nova Versão Disponível" -#: App_Main.py:9346 +#: FlatCAMApp.py:10256 msgid "There is a newer version of FlatCAM available for download:" msgstr "Existe uma versão nova do FlatCAM disponível para download:" -#: App_Main.py:9350 +#: FlatCAMApp.py:10260 msgid "info" msgstr "info" -#: App_Main.py:9378 +#: FlatCAMApp.py:10288 msgid "" "OpenGL canvas initialization failed. HW or HW configuration not supported." "Change the graphic engine to Legacy(2D) in Edit -> Preferences -> General " @@ -18260,75 +1498,129 @@ msgstr "" "Preferências -> aba Geral.\n" "\n" -#: App_Main.py:9456 +#: FlatCAMApp.py:10367 msgid "All plots disabled." msgstr "Todos os gráficos desabilitados." -#: App_Main.py:9463 +#: FlatCAMApp.py:10374 msgid "All non selected plots disabled." msgstr "Todos os gráficos não selecionados desabilitados." -#: App_Main.py:9470 +#: FlatCAMApp.py:10381 msgid "All plots enabled." msgstr "Todos os gráficos habilitados." -#: App_Main.py:9476 +#: FlatCAMApp.py:10387 msgid "Selected plots enabled..." msgstr "Gráficos selecionados habilitados..." -#: App_Main.py:9484 +#: FlatCAMApp.py:10395 msgid "Selected plots disabled..." msgstr "Gráficos selecionados desabilitados..." -#: App_Main.py:9517 +#: FlatCAMApp.py:10428 msgid "Enabling plots ..." msgstr "Habilitando gráficos..." -#: App_Main.py:9566 +#: FlatCAMApp.py:10480 msgid "Disabling plots ..." msgstr "Desabilitando gráficos..." -#: App_Main.py:9589 +#: FlatCAMApp.py:10503 msgid "Working ..." msgstr "Trabalhando ..." -#: App_Main.py:9698 +#: FlatCAMApp.py:10558 flatcamGUI/FlatCAMGUI.py:703 +msgid "Red" +msgstr "Vermelho" + +#: FlatCAMApp.py:10560 flatcamGUI/FlatCAMGUI.py:706 +msgid "Blue" +msgstr "Azul" + +#: FlatCAMApp.py:10563 flatcamGUI/FlatCAMGUI.py:709 +msgid "Yellow" +msgstr "Amarela" + +#: FlatCAMApp.py:10565 flatcamGUI/FlatCAMGUI.py:712 +msgid "Green" +msgstr "Verde" + +#: FlatCAMApp.py:10567 flatcamGUI/FlatCAMGUI.py:715 +msgid "Purple" +msgstr "Roxo" + +#: FlatCAMApp.py:10569 flatcamGUI/FlatCAMGUI.py:718 +msgid "Brown" +msgstr "Marrom" + +#: FlatCAMApp.py:10571 FlatCAMApp.py:10627 flatcamGUI/FlatCAMGUI.py:721 +msgid "White" +msgstr "Branco" + +#: FlatCAMApp.py:10573 flatcamGUI/FlatCAMGUI.py:724 +msgid "Black" +msgstr "Preto" + +#: FlatCAMApp.py:10576 flatcamGUI/FlatCAMGUI.py:729 +msgid "Custom" +msgstr "Personalizado" + +#: FlatCAMApp.py:10586 flatcamGUI/FlatCAMGUI.py:737 +msgid "Default" +msgstr "Padrão" + +#: FlatCAMApp.py:10610 flatcamGUI/FlatCAMGUI.py:734 +msgid "Opacity" +msgstr "Opacidade" + +#: FlatCAMApp.py:10612 msgid "Set alpha level ..." msgstr "Ajustar nível alfa ..." -#: App_Main.py:9752 +#: FlatCAMApp.py:10612 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:131 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:133 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:220 +#: flatcamTools/ToolExtractDrills.py:164 flatcamTools/ToolExtractDrills.py:285 +#: flatcamTools/ToolPunchGerber.py:192 flatcamTools/ToolPunchGerber.py:308 +#: flatcamTools/ToolTransform.py:357 +msgid "Value" +msgstr "Valor" + +#: FlatCAMApp.py:10666 msgid "Saving FlatCAM Project" msgstr "Salvando o Projeto FlatCAM" -#: App_Main.py:9773 App_Main.py:9809 +#: FlatCAMApp.py:10687 FlatCAMApp.py:10723 msgid "Project saved to" msgstr "Projeto salvo em" -#: App_Main.py:9780 +#: FlatCAMApp.py:10694 msgid "The object is used by another application." msgstr "O objeto é usado por outro aplicativo." -#: App_Main.py:9794 +#: FlatCAMApp.py:10708 msgid "Failed to verify project file" msgstr "Falha ao verificar o arquivo do projeto" -#: App_Main.py:9794 App_Main.py:9802 App_Main.py:9812 +#: FlatCAMApp.py:10708 FlatCAMApp.py:10716 FlatCAMApp.py:10726 msgid "Retry to save it." msgstr "Tente salvá-lo novamente." -#: App_Main.py:9802 App_Main.py:9812 +#: FlatCAMApp.py:10716 FlatCAMApp.py:10726 msgid "Failed to parse saved project file" msgstr "Falha ao analisar o arquivo de projeto salvo" -#: Bookmark.py:57 Bookmark.py:84 +#: FlatCAMBookmark.py:57 FlatCAMBookmark.py:84 msgid "Title" msgstr "Título" -#: Bookmark.py:58 Bookmark.py:88 +#: FlatCAMBookmark.py:58 FlatCAMBookmark.py:88 msgid "Web Link" msgstr "Link" -#: Bookmark.py:62 +#: FlatCAMBookmark.py:62 msgid "" "Index.\n" "The rows in gray color will populate the Bookmarks menu.\n" @@ -18338,7 +1630,7 @@ msgstr "" "As linhas na cor cinza preencherão o menu Favoritos.\n" "O número de linhas cinza é definido em Preferências." -#: Bookmark.py:66 +#: FlatCAMBookmark.py:66 msgid "" "Description of the link that is set as an menu action.\n" "Try to keep it short because it is installed as a menu item." @@ -18346,132 +1638,1020 @@ msgstr "" "Descrição do link que está definido como uma ação de menu.\n" "Tente mantê-lo curto, pois ele aparece como um item de menu." -#: Bookmark.py:69 +#: FlatCAMBookmark.py:69 msgid "Web Link. E.g: https://your_website.org " msgstr "Link. Ex: https://seu_site.org " -#: Bookmark.py:78 +#: FlatCAMBookmark.py:78 msgid "New Bookmark" msgstr "Novo Favorito" -#: Bookmark.py:97 +#: FlatCAMBookmark.py:97 msgid "Add Entry" msgstr "Adicionar Entrada" -#: Bookmark.py:98 +#: FlatCAMBookmark.py:98 msgid "Remove Entry" msgstr "Remover Entrada" -#: Bookmark.py:99 +#: FlatCAMBookmark.py:99 msgid "Export List" msgstr "Exportar Lista" -#: Bookmark.py:100 +#: FlatCAMBookmark.py:100 msgid "Import List" msgstr "Importar Lista" -#: Bookmark.py:190 +#: FlatCAMBookmark.py:190 msgid "Title entry is empty." msgstr "A entrada do título está vazia." -#: Bookmark.py:199 +#: FlatCAMBookmark.py:199 msgid "Web link entry is empty." msgstr "A entrada do link da Web está vazia." -#: Bookmark.py:207 +#: FlatCAMBookmark.py:207 msgid "Either the Title or the Weblink already in the table." msgstr "O título ou o link da Web já está na tabela." -#: Bookmark.py:227 +#: FlatCAMBookmark.py:227 msgid "Bookmark added." msgstr "Favorito adicionado." -#: Bookmark.py:244 +#: FlatCAMBookmark.py:244 msgid "This bookmark can not be removed" msgstr "Este favorito não pode ser removido" -#: Bookmark.py:275 +#: FlatCAMBookmark.py:275 msgid "Bookmark removed." msgstr "Favorito removido." -#: Bookmark.py:290 -#, fuzzy -#| msgid "Exported bookmarks to" -msgid "Export Bookmarks" -msgstr "Favoritos exportados para" +#: FlatCAMBookmark.py:290 +msgid "Export FlatCAM Bookmarks" +msgstr "Exportar Favoritos do FlatCAM" -#: Bookmark.py:319 Bookmark.py:349 +#: FlatCAMBookmark.py:293 flatcamGUI/FlatCAMGUI.py:524 +msgid "Bookmarks" +msgstr "Favoritos" + +#: FlatCAMBookmark.py:319 FlatCAMBookmark.py:349 msgid "Could not load bookmarks file." msgstr "Não foi possível carregar o arquivo com os favoritos." -#: Bookmark.py:329 +#: FlatCAMBookmark.py:329 msgid "Failed to write bookmarks to file." msgstr "Falha ao gravar os favoritos no arquivo." -#: Bookmark.py:331 +#: FlatCAMBookmark.py:331 msgid "Exported bookmarks to" msgstr "Favoritos exportados para" -#: Bookmark.py:337 -#, fuzzy -#| msgid "Imported Bookmarks from" -msgid "Import Bookmarks" -msgstr "Favoritos importados de" +#: FlatCAMBookmark.py:337 +msgid "Import FlatCAM Bookmarks" +msgstr "Importar Favoritos do FlatCAM" -#: Bookmark.py:356 +#: FlatCAMBookmark.py:356 msgid "Imported Bookmarks from" msgstr "Favoritos importados de" -#: Common.py:42 +#: FlatCAMCommon.py:29 msgid "The user requested a graceful exit of the current task." msgstr "O usuário solicitou uma saída normal da tarefa atual." -#: Common.py:269 -#, fuzzy -#| msgid "Click the end point of the paint area." -msgid "Click the end point of the area." -msgstr "Clique no ponto final da área." +#: FlatCAMDB.py:86 +msgid "Add Geometry Tool in DB" +msgstr "Adicionar Ferram de Geo no BD" -#: Common.py:408 -msgid "Exclusion areas added. Checking overlap with the object geometry ..." +#: FlatCAMDB.py:88 FlatCAMDB.py:1643 +msgid "" +"Add a new tool in the Tools Database.\n" +"It will be used in the Geometry UI.\n" +"You can edit it after it is added." msgstr "" +"Adiciona uma nova ferramenta ao Banco de Dados de Ferramentas.\n" +"Será usado na interface do usuário da Geometria.\n" +"Você pode editar após a adição." -#: Common.py:413 -msgid "Failed. Exclusion areas intersects the object geometry ..." +#: FlatCAMDB.py:102 FlatCAMDB.py:1657 +msgid "Delete Tool from DB" +msgstr "Excluir ferramenta do BD" + +#: FlatCAMDB.py:104 FlatCAMDB.py:1659 +msgid "Remove a selection of tools in the Tools Database." +msgstr "Remove uma seleção de ferramentas no banco de dados de ferramentas." + +#: FlatCAMDB.py:108 FlatCAMDB.py:1663 +msgid "Export DB" +msgstr "Exportar BD" + +#: FlatCAMDB.py:110 FlatCAMDB.py:1665 +msgid "Save the Tools Database to a custom text file." msgstr "" +"Salva o banco de dados de ferramentas em um arquivo de texto personalizado." -#: Common.py:417 -#, fuzzy -#| msgid "Delete all extensions from the list." -msgid "Exclusion areas added." -msgstr "Excluir todas as extensões da lista." +#: FlatCAMDB.py:114 FlatCAMDB.py:1669 +msgid "Import DB" +msgstr "Importar BD" -#: Common.py:426 -#, fuzzy -#| msgid "Delete all extensions from the list." -msgid "With Exclusion areas." -msgstr "Excluir todas as extensões da lista." - -#: Common.py:461 -msgid "Cancelled. Area exclusion drawing was interrupted." +#: FlatCAMDB.py:116 FlatCAMDB.py:1671 +msgid "Load the Tools Database information's from a custom text file." msgstr "" +"Carregua as informações do banco de dados de ferramentas de um arquivo de " +"texto personalizado." -#: Common.py:572 Common.py:621 -#, fuzzy -#| msgid "All objects are selected." -msgid "All exclusion zones deleted." -msgstr "Todos os objetos estão selecionados." +#: FlatCAMDB.py:120 FlatCAMDB.py:1681 +msgid "Add Tool from Tools DB" +msgstr "Adiciona Ferramenta do BD de Ferramentas" -#: Common.py:608 -#, fuzzy -#| msgid "Delete all extensions from the list." -msgid "Selected exclusion zones deleted." -msgstr "Excluir todas as extensões da lista." +#: FlatCAMDB.py:122 FlatCAMDB.py:1683 +msgid "" +"Add a new tool in the Tools Table of the\n" +"active Geometry object after selecting a tool\n" +"in the Tools Database." +msgstr "" +"Adiciona uma nova ferramenta na Tabela de ferramentas do\n" +"objeto geometria ativo após selecionar uma ferramenta\n" +"no banco de dados de ferramentas." + +#: FlatCAMDB.py:158 FlatCAMDB.py:833 FlatCAMDB.py:1087 +msgid "Tool Name" +msgstr "Nome da Ferramenta" + +#: FlatCAMDB.py:159 FlatCAMDB.py:835 FlatCAMDB.py:1100 +#: flatcamEditors/FlatCAMExcEditor.py:1604 flatcamGUI/ObjectUI.py:1345 +#: flatcamGUI/ObjectUI.py:1583 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:132 +#: flatcamTools/ToolNCC.py:278 flatcamTools/ToolNCC.py:287 +#: flatcamTools/ToolPaint.py:261 +msgid "Tool Dia" +msgstr "Diâmetro da Ferramenta" + +#: FlatCAMDB.py:160 FlatCAMDB.py:837 FlatCAMDB.py:1281 +#: flatcamGUI/ObjectUI.py:1558 +msgid "Tool Offset" +msgstr "Deslocamento" + +#: FlatCAMDB.py:161 FlatCAMDB.py:839 FlatCAMDB.py:1298 +msgid "Custom Offset" +msgstr "Deslocamento Personalizado" + +#: FlatCAMDB.py:162 FlatCAMDB.py:841 FlatCAMDB.py:1265 +#: flatcamGUI/ObjectUI.py:309 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:67 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:53 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:62 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:72 +#: flatcamTools/ToolNCC.py:213 flatcamTools/ToolNCC.py:227 +#: flatcamTools/ToolPaint.py:196 +msgid "Tool Type" +msgstr "Tipo de Ferramenta" + +#: FlatCAMDB.py:163 FlatCAMDB.py:843 FlatCAMDB.py:1113 +msgid "Tool Shape" +msgstr "Formato" + +#: FlatCAMDB.py:164 FlatCAMDB.py:846 FlatCAMDB.py:1129 +#: flatcamGUI/ObjectUI.py:350 flatcamGUI/ObjectUI.py:900 +#: flatcamGUI/ObjectUI.py:1703 flatcamGUI/ObjectUI.py:2336 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:93 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:48 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:107 +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:78 +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:58 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:98 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:105 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:113 +#: flatcamTools/ToolCalculators.py:114 flatcamTools/ToolCutOut.py:138 +#: flatcamTools/ToolNCC.py:260 flatcamTools/ToolNCC.py:268 +#: flatcamTools/ToolPaint.py:243 +msgid "Cut Z" +msgstr "Profundidade de Corte" + +#: FlatCAMDB.py:165 FlatCAMDB.py:848 FlatCAMDB.py:1143 +msgid "MultiDepth" +msgstr "Multi-Profundidade" + +#: FlatCAMDB.py:166 FlatCAMDB.py:850 FlatCAMDB.py:1156 +msgid "DPP" +msgstr "PPP" + +#: FlatCAMDB.py:167 FlatCAMDB.py:852 FlatCAMDB.py:1312 +msgid "V-Dia" +msgstr "Dia-V" + +#: FlatCAMDB.py:168 FlatCAMDB.py:854 FlatCAMDB.py:1326 +msgid "V-Angle" +msgstr "Angulo-V" + +#: FlatCAMDB.py:169 FlatCAMDB.py:856 FlatCAMDB.py:1170 +#: flatcamGUI/ObjectUI.py:946 flatcamGUI/ObjectUI.py:1750 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:134 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:101 +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:61 +#: flatcamObjects/FlatCAMExcellon.py:1316 +#: flatcamObjects/FlatCAMGeometry.py:1606 flatcamTools/ToolCalibration.py:74 +msgid "Travel Z" +msgstr "Altura do Deslocamento" + +#: FlatCAMDB.py:170 FlatCAMDB.py:858 +msgid "FR" +msgstr "VA" + +#: FlatCAMDB.py:171 FlatCAMDB.py:860 +msgid "FR Z" +msgstr "VA Z" + +#: FlatCAMDB.py:172 FlatCAMDB.py:862 FlatCAMDB.py:1340 +msgid "FR Rapids" +msgstr "VA Rápida" + +#: FlatCAMDB.py:173 FlatCAMDB.py:864 FlatCAMDB.py:1213 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:222 +msgid "Spindle Speed" +msgstr "Velocidade do Spindle" + +#: FlatCAMDB.py:174 FlatCAMDB.py:866 FlatCAMDB.py:1228 +#: flatcamGUI/ObjectUI.py:1064 flatcamGUI/ObjectUI.py:1857 +msgid "Dwell" +msgstr "Esperar Velocidade" + +#: FlatCAMDB.py:175 FlatCAMDB.py:868 FlatCAMDB.py:1241 +msgid "Dwelltime" +msgstr "Tempo de Espera" + +#: FlatCAMDB.py:176 FlatCAMDB.py:870 flatcamGUI/ObjectUI.py:2014 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:257 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:254 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:237 +#: flatcamTools/ToolSolderPaste.py:335 +msgid "Preprocessor" +msgstr "Pré-processador" + +#: FlatCAMDB.py:177 FlatCAMDB.py:872 FlatCAMDB.py:1356 +msgid "ExtraCut" +msgstr "Corte Extra" + +#: FlatCAMDB.py:178 FlatCAMDB.py:874 FlatCAMDB.py:1371 +msgid "E-Cut Length" +msgstr "Comprimento de corte extra" + +#: FlatCAMDB.py:179 FlatCAMDB.py:876 +msgid "Toolchange" +msgstr "Troca de Ferramentas" + +#: FlatCAMDB.py:180 FlatCAMDB.py:878 +msgid "Toolchange XY" +msgstr "Troca de ferramenta XY" + +#: FlatCAMDB.py:181 FlatCAMDB.py:880 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:160 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:131 +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:98 +#: flatcamTools/ToolCalibration.py:111 +msgid "Toolchange Z" +msgstr "Altura da Troca" + +#: FlatCAMDB.py:182 FlatCAMDB.py:882 flatcamGUI/ObjectUI.py:1193 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:69 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:54 +msgid "Start Z" +msgstr "Z Inicial" + +#: FlatCAMDB.py:183 FlatCAMDB.py:885 +msgid "End Z" +msgstr "Z Final" + +#: FlatCAMDB.py:187 +msgid "Tool Index." +msgstr "Índice da Ferramenta." + +#: FlatCAMDB.py:189 FlatCAMDB.py:1089 +msgid "" +"Tool name.\n" +"This is not used in the app, it's function\n" +"is to serve as a note for the user." +msgstr "" +"Nome da ferramenta.\n" +"Não é usado no aplicativo, sua função\n" +"é servir como uma nota para o usuário." + +#: FlatCAMDB.py:193 FlatCAMDB.py:1102 +msgid "Tool Diameter." +msgstr "Diâmetro." + +#: FlatCAMDB.py:195 FlatCAMDB.py:1283 +msgid "" +"Tool Offset.\n" +"Can be of a few types:\n" +"Path = zero offset\n" +"In = offset inside by half of tool diameter\n" +"Out = offset outside by half of tool diameter\n" +"Custom = custom offset using the Custom Offset value" +msgstr "" +"Deslocamento da Ferramenta.\n" +"Pode ser de alguns tipos:\n" +"Caminho = deslocamento zero\n" +"In = deslocamento interno, de metade do diâmetro da ferramenta\n" +"Out = deslocamento externo, de metade do diâmetro da ferramenta\n" +"Personalizado = deslocamento personalizado usando o valor de Deslocamento " +"Personalizado" + +#: FlatCAMDB.py:202 FlatCAMDB.py:1300 +msgid "" +"Custom Offset.\n" +"A value to be used as offset from the current path." +msgstr "" +"Deslocamento personalizado.\n" +"Um valor a ser usado como deslocamento do caminho atual." + +#: FlatCAMDB.py:205 FlatCAMDB.py:1267 +msgid "" +"Tool Type.\n" +"Can be:\n" +"Iso = isolation cut\n" +"Rough = rough cut, low feedrate, multiple passes\n" +"Finish = finishing cut, high feedrate" +msgstr "" +"Tipo de ferramenta.\n" +"Pode ser:\n" +"ISO = corte de isolação\n" +"Desbaste = corte áspero, avanço lento, múltiplos passes\n" +"Acabamento = corte de acabamento, avanço rápido" + +#: FlatCAMDB.py:211 FlatCAMDB.py:1115 +msgid "" +"Tool Shape. \n" +"Can be:\n" +"C1 ... C4 = circular tool with x flutes\n" +"B = ball tip milling tool\n" +"V = v-shape milling tool" +msgstr "" +"Forma da ferramenta.\n" +"Pode ser:\n" +"C1 ... C4 = ferramenta circular com x canais\n" +"B = fresa com ponta esférica\n" +"V = fresa em forma de V" + +#: FlatCAMDB.py:217 FlatCAMDB.py:1131 +msgid "" +"Cutting Depth.\n" +"The depth at which to cut into material." +msgstr "" +"Profundidade de corte.\n" +"A profundidade para cortar o material." + +#: FlatCAMDB.py:220 FlatCAMDB.py:1145 +msgid "" +"Multi Depth.\n" +"Selecting this will allow cutting in multiple passes,\n" +"each pass adding a DPP parameter depth." +msgstr "" +"Multi-Profundidade.\n" +"Selecionar isso permite cortar em várias passagens,\n" +"cada passagem adicionando uma profundidade de parâmetro PPP." + +#: FlatCAMDB.py:224 FlatCAMDB.py:1158 +msgid "" +"DPP. Depth per Pass.\n" +"The value used to cut into material on each pass." +msgstr "" +"PPP. Profundidade por Passe.\n" +"Valor usado para cortar o material em cada passagem." + +#: FlatCAMDB.py:227 FlatCAMDB.py:1314 +msgid "" +"V-Dia.\n" +"Diameter of the tip for V-Shape Tools." +msgstr "" +"Dia-V.\n" +"Diâmetro da ponta das ferramentas em forma de V." + +#: FlatCAMDB.py:230 FlatCAMDB.py:1328 +msgid "" +"V-Agle.\n" +"Angle at the tip for the V-Shape Tools." +msgstr "" +"Ângulo.\n" +"Ângulo na ponta das ferramentas em forma de V." + +#: FlatCAMDB.py:233 FlatCAMDB.py:1172 +msgid "" +"Clearance Height.\n" +"Height at which the milling bit will travel between cuts,\n" +"above the surface of the material, avoiding all fixtures." +msgstr "" +"Altura da folga.\n" +"Altura na qual a broca irá se deslocar entre cortes,\n" +"acima da superfície do material, evitando todos os equipamentos." + +#: FlatCAMDB.py:237 +msgid "" +"FR. Feedrate\n" +"The speed on XY plane used while cutting into material." +msgstr "" +"VA. Velocidade de Avanço\n" +"A velocidade no plano XY usada ao cortar o material." + +#: FlatCAMDB.py:240 +msgid "" +"FR Z. Feedrate Z\n" +"The speed on Z plane." +msgstr "" +"VA Z. Velocidade de Avanço Z\n" +"A velocidade no plano Z usada ao cortar o material." + +#: FlatCAMDB.py:243 FlatCAMDB.py:1342 +msgid "" +"FR Rapids. Feedrate Rapids\n" +"Speed used while moving as fast as possible.\n" +"This is used only by some devices that can't use\n" +"the G0 g-code command. Mostly 3D printers." +msgstr "" +"VA Rápida. Velocidade de Avanço Rápida\n" +"Velocidade usada enquanto se move o mais rápido possível.\n" +"Isso é usado apenas por alguns dispositivos que não podem usar\n" +"o comando G-Code G0. Principalmente impressoras 3D." + +#: FlatCAMDB.py:248 FlatCAMDB.py:1215 +msgid "" +"Spindle Speed.\n" +"If it's left empty it will not be used.\n" +"The speed of the spindle in RPM." +msgstr "" +"Velocidade do Spindle.\n" +"Se for deixado vazio, não será usado.\n" +"Velocidade do spindle em RPM." + +#: FlatCAMDB.py:252 FlatCAMDB.py:1230 +msgid "" +"Dwell.\n" +"Check this if a delay is needed to allow\n" +"the spindle motor to reach it's set speed." +msgstr "" +"Esperar Velocidade.\n" +"Marque se é necessário um atraso para permitir\n" +"o motor do spindle atingir a velocidade definida." + +#: FlatCAMDB.py:256 FlatCAMDB.py:1243 +msgid "" +"Dwell Time.\n" +"A delay used to allow the motor spindle reach it's set speed." +msgstr "" +"Tempo de espera.\n" +"Atraso usado para permitir que o spindle atinja a velocidade definida." + +#: FlatCAMDB.py:259 +msgid "" +"Preprocessor.\n" +"A selection of files that will alter the generated G-code\n" +"to fit for a number of use cases." +msgstr "" +"Pré-processador.\n" +"Uma seleção de arquivos que alterarão o G-Code gerado\n" +"para caber em vários casos de uso." + +#: FlatCAMDB.py:263 FlatCAMDB.py:1358 +msgid "" +"Extra Cut.\n" +"If checked, after a isolation is finished an extra cut\n" +"will be added where the start and end of isolation meet\n" +"such as that this point is covered by this extra cut to\n" +"ensure a complete isolation." +msgstr "" +"Corte Extra.\n" +"Se marcado, após a conclusão de uma isolação, um corte extra\n" +"será adicionado no encontro entre o início e o fim da isolação,\n" +"para garantir a isolação completa." + +#: FlatCAMDB.py:269 FlatCAMDB.py:1373 +msgid "" +"Extra Cut length.\n" +"If checked, after a isolation is finished an extra cut\n" +"will be added where the start and end of isolation meet\n" +"such as that this point is covered by this extra cut to\n" +"ensure a complete isolation. This is the length of\n" +"the extra cut." +msgstr "" +"Comprimento extra de corte.\n" +"Se marcado, após a conclusão de um isolamento, um corte extra\n" +"serão adicionados onde o início e o fim do isolamento se encontrarem\n" +"tal que este ponto seja coberto por este corte extra para\n" +"garantir um isolamento completo. Este é o comprimento de\n" +"o corte extra." + +#: FlatCAMDB.py:276 +msgid "" +"Toolchange.\n" +"It will create a toolchange event.\n" +"The kind of toolchange is determined by\n" +"the preprocessor file." +msgstr "" +"Troca de ferramentas.\n" +"Será criado um evento de mudança de ferramenta.\n" +"O tipo de troca de ferramentas é determinado pelo\n" +"arquivo do pré-processador." + +#: FlatCAMDB.py:281 +msgid "" +"Toolchange XY.\n" +"A set of coordinates in the format (x, y).\n" +"Will determine the cartesian position of the point\n" +"where the tool change event take place." +msgstr "" +"Troca de ferramentas XY.\n" +"Um conjunto de coordenadas no formato (x, y).\n" +"Determina a posição cartesiana do ponto\n" +"onde o evento de troca da ferramenta ocorre." + +#: FlatCAMDB.py:286 +msgid "" +"Toolchange Z.\n" +"The position on Z plane where the tool change event take place." +msgstr "" +"Altura da Troca.\n" +"A posição no plano Z onde o evento de troca da ferramenta ocorre." + +#: FlatCAMDB.py:289 +msgid "" +"Start Z.\n" +"If it's left empty it will not be used.\n" +"A position on Z plane to move immediately after job start." +msgstr "" +"Z Inicial.\n" +"Se for deixado vazio, não será usado.\n" +"Posição no plano Z para mover-se imediatamente após o início do trabalho." + +#: FlatCAMDB.py:293 +msgid "" +"End Z.\n" +"A position on Z plane to move immediately after job stop." +msgstr "" +"Z Final.\n" +"Posição no plano Z para mover-se imediatamente após a parada do trabalho." + +#: FlatCAMDB.py:305 FlatCAMDB.py:682 FlatCAMDB.py:716 FlatCAMDB.py:1898 +#: FlatCAMDB.py:2144 FlatCAMDB.py:2178 +msgid "Could not load Tools DB file." +msgstr "Não foi possível carregar o arquivo com o banco de dados." + +#: FlatCAMDB.py:313 FlatCAMDB.py:724 FlatCAMDB.py:1906 FlatCAMDB.py:2186 +msgid "Failed to parse Tools DB file." +msgstr "Falha ao analisar o arquivo com o banco de dados." + +#: FlatCAMDB.py:316 FlatCAMDB.py:727 FlatCAMDB.py:1909 FlatCAMDB.py:2189 +msgid "Loaded FlatCAM Tools DB from" +msgstr "Carregado o BD de Ferramentas FlatCAM de" + +#: FlatCAMDB.py:322 FlatCAMDB.py:1823 +msgid "Add to DB" +msgstr "Adicionar ao BD" + +#: FlatCAMDB.py:324 FlatCAMDB.py:1826 +msgid "Copy from DB" +msgstr "Copiar do BD" + +#: FlatCAMDB.py:326 FlatCAMDB.py:1829 +msgid "Delete from DB" +msgstr "Excluir do BD" + +#: FlatCAMDB.py:603 FlatCAMDB.py:2044 +msgid "Tool added to DB." +msgstr "Ferramenta adicionada ao BD." + +#: FlatCAMDB.py:624 FlatCAMDB.py:2077 +msgid "Tool copied from Tools DB." +msgstr "A ferramenta foi copiada do BD." + +#: FlatCAMDB.py:642 FlatCAMDB.py:2104 +msgid "Tool removed from Tools DB." +msgstr "Ferramenta(s) excluída(s) do BD." + +#: FlatCAMDB.py:653 FlatCAMDB.py:2115 +msgid "Export Tools Database" +msgstr "Exportar Banco de Dados de Ferramentas" + +#: FlatCAMDB.py:656 FlatCAMDB.py:2118 +msgid "Tools_Database" +msgstr "Tools_Database" + +#: FlatCAMDB.py:693 FlatCAMDB.py:696 FlatCAMDB.py:748 FlatCAMDB.py:2155 +#: FlatCAMDB.py:2158 FlatCAMDB.py:2211 +msgid "Failed to write Tools DB to file." +msgstr "Falha ao gravar no arquivo." + +#: FlatCAMDB.py:699 FlatCAMDB.py:2161 +msgid "Exported Tools DB to" +msgstr "Banco de Dados exportado para" + +#: FlatCAMDB.py:706 FlatCAMDB.py:2168 +msgid "Import FlatCAM Tools DB" +msgstr "Importar Banco de Dados de Ferramentas do FlatCAM" + +#: FlatCAMDB.py:752 FlatCAMDB.py:2215 +msgid "Saved Tools DB." +msgstr "BD de Ferramentas Salvo." + +#: FlatCAMDB.py:899 FlatCAMDB.py:2405 +msgid "No Tool/row selected in the Tools Database table" +msgstr "" +"Nenhuma ferramenta selecionada na tabela de Banco de Dados de Ferramentas" + +#: FlatCAMDB.py:917 FlatCAMDB.py:2422 +msgid "Cancelled adding tool from DB." +msgstr "Adição de ferramenta do BD cancelada." + +#: FlatCAMDB.py:1018 +msgid "Basic Geo Parameters" +msgstr "Parâmetros Básicos de Geo" + +#: FlatCAMDB.py:1030 +msgid "Advanced Geo Parameters" +msgstr "Parâmetros Avançados de Geo" + +#: FlatCAMDB.py:1042 +msgid "NCC Parameters" +msgstr "Parâmetros NCC" + +#: FlatCAMDB.py:1054 +msgid "Paint Parameters" +msgstr "Parâmetros de Pintura" + +#: FlatCAMDB.py:1185 flatcamGUI/ObjectUI.py:967 flatcamGUI/ObjectUI.py:1769 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:185 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:148 +#: flatcamTools/ToolSolderPaste.py:253 +msgid "Feedrate X-Y" +msgstr "Avanço X-Y" + +#: FlatCAMDB.py:1187 +msgid "" +"Feedrate X-Y. Feedrate\n" +"The speed on XY plane used while cutting into material." +msgstr "" +"Velocidade de Avanço X-Y\n" +"A velocidade no plano XY usada ao cortar o material." + +#: FlatCAMDB.py:1199 flatcamGUI/ObjectUI.py:982 flatcamGUI/ObjectUI.py:1783 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:207 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:200 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:161 +#: flatcamTools/ToolSolderPaste.py:265 +msgid "Feedrate Z" +msgstr "Taxa de Avanço Z" + +#: FlatCAMDB.py:1201 +msgid "" +"Feedrate Z\n" +"The speed on Z plane." +msgstr "" +"Velocidade de Avanço Z\n" +"A velocidade no plano Z." + +#: FlatCAMDB.py:1399 flatcamGUI/ObjectUI.py:845 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:46 +#: flatcamTools/ToolNCC.py:341 +msgid "Operation" +msgstr "Operação" + +#: FlatCAMDB.py:1401 flatcamTools/ToolNCC.py:343 +msgid "" +"The 'Operation' can be:\n" +"- Isolation -> will ensure that the non-copper clearing is always complete.\n" +"If it's not successful then the non-copper clearing will fail, too.\n" +"- Clear -> the regular non-copper clearing." +msgstr "" +"A 'Operação' pode ser:\n" +"- Isolação -> garantirá que a retirada de cobre seja completa.\n" +"Se não for bem-sucedida, a retirada de cobre também falhará.\n" +"- Limpar -> retirada de cobre padrão." + +#: FlatCAMDB.py:1408 flatcamEditors/FlatCAMGrbEditor.py:2742 +#: flatcamGUI/GUIElements.py:2577 flatcamTools/ToolNCC.py:350 +msgid "Clear" +msgstr "Limpar" + +#: FlatCAMDB.py:1409 flatcamTools/ToolNCC.py:351 flatcamTools/ToolNCC.py:1623 +msgid "Isolation" +msgstr "Isolação" + +#: FlatCAMDB.py:1417 flatcamGUI/ObjectUI.py:409 flatcamGUI/ObjectUI.py:867 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:62 +#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:56 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:95 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:137 +#: flatcamTools/ToolNCC.py:359 +msgid "Milling Type" +msgstr "Tipo de Fresamento" + +#: FlatCAMDB.py:1419 FlatCAMDB.py:1427 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:139 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:147 +#: flatcamTools/ToolNCC.py:361 flatcamTools/ToolNCC.py:369 +msgid "" +"Milling type when the selected tool is of type: 'iso_op':\n" +"- climb / best for precision milling and to reduce tool usage\n" +"- conventional / useful when there is no backlash compensation" +msgstr "" +"Tipo de fresamento quando a ferramenta selecionada é do tipo 'iso_op':\n" +"- subida: melhor para fresamento de precisão e para reduzir o uso da " +"ferramenta\n" +"- convencional: útil quando não há compensação de folga" + +#: FlatCAMDB.py:1424 flatcamGUI/ObjectUI.py:415 +#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:62 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:102 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:144 +#: flatcamTools/ToolNCC.py:366 +msgid "Climb" +msgstr "Subida" + +#: FlatCAMDB.py:1425 flatcamGUI/ObjectUI.py:416 +#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:63 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:103 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:145 +#: flatcamTools/ToolNCC.py:367 +msgid "Conventional" +msgstr "Convencional" + +#: FlatCAMDB.py:1437 FlatCAMDB.py:1546 flatcamEditors/FlatCAMGeoEditor.py:451 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:182 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:163 +#: flatcamTools/ToolNCC.py:382 flatcamTools/ToolPaint.py:329 +msgid "Overlap" +msgstr "Sobreposição" + +#: FlatCAMDB.py:1439 flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:184 +#: flatcamTools/ToolNCC.py:384 +msgid "" +"How much (percentage) of the tool width to overlap each tool pass.\n" +"Adjust the value starting with lower values\n" +"and increasing it if areas that should be cleared are still \n" +"not cleared.\n" +"Lower values = faster processing, faster execution on CNC.\n" +"Higher values = slow processing and slow execution on CNC\n" +"due of too many paths." +msgstr "" +"Quanto da largura da ferramenta (percentual) é sobreposto em cada passagem " +"da ferramenta.\n" +"Ajuste o valor começando com valores menores, e aumente se alguma área que \n" +"deveria ser limpa não foi limpa.\n" +"Valores menores = processamento mais rápido, execução mais rápida no CNC. \n" +"Valores maiores = processamento lento e execução lenta no CNC devido\n" +"ao número de caminhos." + +#: FlatCAMDB.py:1458 FlatCAMDB.py:1567 flatcamEditors/FlatCAMGeoEditor.py:471 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:72 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:229 +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:59 +#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:45 +#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:53 +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:115 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:202 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:183 +#: flatcamTools/ToolCopperThieving.py:111 +#: flatcamTools/ToolCopperThieving.py:362 flatcamTools/ToolCutOut.py:190 +#: flatcamTools/ToolFiducials.py:172 flatcamTools/ToolInvertGerber.py:88 +#: flatcamTools/ToolInvertGerber.py:96 flatcamTools/ToolNCC.py:403 +#: flatcamTools/ToolPaint.py:350 +msgid "Margin" +msgstr "Margem" + +#: FlatCAMDB.py:1460 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:74 +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:61 +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:125 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:204 +#: flatcamTools/ToolCopperThieving.py:113 flatcamTools/ToolFiducials.py:174 +#: flatcamTools/ToolFiducials.py:237 flatcamTools/ToolNCC.py:405 +msgid "Bounding box margin." +msgstr "Margem da caixa delimitadora." + +#: FlatCAMDB.py:1471 FlatCAMDB.py:1582 flatcamEditors/FlatCAMGeoEditor.py:485 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:105 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:106 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:215 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:198 +#: flatcamTools/ToolExtractDrills.py:128 flatcamTools/ToolNCC.py:416 +#: flatcamTools/ToolPaint.py:365 flatcamTools/ToolPunchGerber.py:139 +msgid "Method" +msgstr "Método" + +#: FlatCAMDB.py:1473 flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:217 +#: flatcamTools/ToolNCC.py:418 +msgid "" +"Algorithm for copper clearing:\n" +"- Standard: Fixed step inwards.\n" +"- Seed-based: Outwards from seed.\n" +"- Line-based: Parallel lines." +msgstr "" +"Algoritmo para retirada de cobre:\n" +"- Padrão: Passo fixo para dentro.\n" +"- Baseado em semente: Para fora a partir de uma semente.\n" +"- Linhas retas: Linhas paralelas." + +#: FlatCAMDB.py:1481 FlatCAMDB.py:1596 flatcamEditors/FlatCAMGeoEditor.py:499 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:230 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217 +#: flatcamTools/ToolNCC.py:431 flatcamTools/ToolNCC.py:2395 +#: flatcamTools/ToolNCC.py:2424 flatcamTools/ToolNCC.py:2693 +#: flatcamTools/ToolNCC.py:2725 flatcamTools/ToolPaint.py:390 +#: flatcamTools/ToolPaint.py:1834 tclCommands/TclCommandCopperClear.py:126 +#: tclCommands/TclCommandCopperClear.py:134 tclCommands/TclCommandPaint.py:125 +msgid "Standard" +msgstr "Padrão" + +#: FlatCAMDB.py:1481 FlatCAMDB.py:1596 defaults.py:395 defaults.py:427 +#: flatcamEditors/FlatCAMGeoEditor.py:499 +#: flatcamEditors/FlatCAMGeoEditor.py:569 +#: flatcamEditors/FlatCAMGeoEditor.py:5152 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:230 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217 +#: flatcamTools/ToolNCC.py:431 flatcamTools/ToolNCC.py:2401 +#: flatcamTools/ToolNCC.py:2429 flatcamTools/ToolNCC.py:2699 +#: flatcamTools/ToolNCC.py:2731 flatcamTools/ToolPaint.py:390 +#: flatcamTools/ToolPaint.py:1848 tclCommands/TclCommandCopperClear.py:128 +#: tclCommands/TclCommandCopperClear.py:136 tclCommands/TclCommandPaint.py:127 +msgid "Seed" +msgstr "Semente" + +#: FlatCAMDB.py:1481 FlatCAMDB.py:1596 flatcamEditors/FlatCAMGeoEditor.py:499 +#: flatcamEditors/FlatCAMGeoEditor.py:5156 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:230 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217 +#: flatcamTools/ToolNCC.py:431 flatcamTools/ToolPaint.py:390 +#: flatcamTools/ToolPaint.py:699 flatcamTools/ToolPaint.py:1862 +#: tclCommands/TclCommandCopperClear.py:130 tclCommands/TclCommandPaint.py:129 +msgid "Lines" +msgstr "Linhas" + +#: FlatCAMDB.py:1489 FlatCAMDB.py:1607 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:237 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:224 +#: flatcamTools/ToolNCC.py:439 flatcamTools/ToolPaint.py:401 +msgid "Connect" +msgstr "Conectar" + +#: FlatCAMDB.py:1493 FlatCAMDB.py:1610 flatcamEditors/FlatCAMGeoEditor.py:508 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:239 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:226 +#: flatcamTools/ToolNCC.py:443 flatcamTools/ToolPaint.py:404 +msgid "" +"Draw lines between resulting\n" +"segments to minimize tool lifts." +msgstr "" +"Desenha linhas entre os segmentos resultantes\n" +"para minimizar as elevações de ferramentas." + +#: FlatCAMDB.py:1499 FlatCAMDB.py:1614 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:246 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:232 +#: flatcamTools/ToolNCC.py:449 flatcamTools/ToolPaint.py:408 +msgid "Contour" +msgstr "Contorno" + +#: FlatCAMDB.py:1503 FlatCAMDB.py:1617 flatcamEditors/FlatCAMGeoEditor.py:518 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:248 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:234 +#: flatcamTools/ToolNCC.py:453 flatcamTools/ToolPaint.py:411 +msgid "" +"Cut around the perimeter of the polygon\n" +"to trim rough edges." +msgstr "Corta no perímetro do polígono para retirar as arestas." + +#: FlatCAMDB.py:1509 flatcamEditors/FlatCAMGeoEditor.py:612 +#: flatcamEditors/FlatCAMGrbEditor.py:5311 flatcamGUI/ObjectUI.py:143 +#: flatcamGUI/ObjectUI.py:1497 flatcamGUI/ObjectUI.py:2326 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:255 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:142 +#: flatcamTools/ToolNCC.py:459 flatcamTools/ToolTransform.py:28 +msgid "Offset" +msgstr "Deslocar" + +#: FlatCAMDB.py:1513 flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:257 +#: flatcamTools/ToolNCC.py:463 +msgid "" +"If used, it will add an offset to the copper features.\n" +"The copper clearing will finish to a distance\n" +"from the copper features.\n" +"The value can be between 0 and 10 FlatCAM units." +msgstr "" +"Se usado, será adicionado um deslocamento aos recursos de cobre.\n" +"A retirada de cobre terminará a uma distância dos recursos de cobre.\n" +"O valor pode estar entre 0 e 10 unidades FlatCAM." + +#: FlatCAMDB.py:1548 flatcamEditors/FlatCAMGeoEditor.py:453 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:165 +#: flatcamTools/ToolPaint.py:331 +msgid "" +"How much (percentage) of the tool width to overlap each tool pass.\n" +"Adjust the value starting with lower values\n" +"and increasing it if areas that should be painted are still \n" +"not painted.\n" +"Lower values = faster processing, faster execution on CNC.\n" +"Higher values = slow processing and slow execution on CNC\n" +"due of too many paths." +msgstr "" +"Quanto da largura da ferramenta (percentual) é sobreposto em cada passagem " +"da ferramenta.\n" +"Ajuste o valor começando com valores menores, e aumente se alguma área que \n" +"deveria ser pintada não foi pintada.\n" +"Valores menores = processamento mais rápido, execução mais rápida no CNC. \n" +"Valores maiores = processamento lento e execução lenta no CNC \n" +"devido ao número de caminhos." + +#: FlatCAMDB.py:1569 flatcamEditors/FlatCAMGeoEditor.py:473 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:185 +#: flatcamTools/ToolPaint.py:352 +msgid "" +"Distance by which to avoid\n" +"the edges of the polygon to\n" +"be painted." +msgstr "" +"Distância pela qual evitar \n" +"as bordas do polígono para \n" +"ser pintado." + +#: FlatCAMDB.py:1584 flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:200 +#: flatcamTools/ToolPaint.py:367 +msgid "" +"Algorithm for painting:\n" +"- Standard: Fixed step inwards.\n" +"- Seed-based: Outwards from seed.\n" +"- Line-based: Parallel lines.\n" +"- Laser-lines: Active only for Gerber objects.\n" +"Will create lines that follow the traces.\n" +"- Combo: In case of failure a new method will be picked from the above\n" +"in the order specified." +msgstr "" +"Algoritmo para pintura:\n" +"- Padrão: Passo fixo para dentro.\n" +"- Baseado em semente: Para fora a partir de uma semente.\n" +"- Linhas retas: Linhas paralelas.\n" +"- Linhas laser: Ativa apenas para objetos Gerber.\n" +"Criará linhas que seguem os traços.\n" +"- Combo: em caso de falha, um novo método será escolhido dentre os itens " +"acima na ordem especificada." + +#: FlatCAMDB.py:1596 FlatCAMDB.py:1598 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217 +#: flatcamTools/ToolPaint.py:390 flatcamTools/ToolPaint.py:392 +#: flatcamTools/ToolPaint.py:693 flatcamTools/ToolPaint.py:698 +#: flatcamTools/ToolPaint.py:1876 tclCommands/TclCommandPaint.py:131 +msgid "Laser_lines" +msgstr "Linhas Laser" + +#: FlatCAMDB.py:1596 flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217 +#: flatcamTools/ToolPaint.py:390 flatcamTools/ToolPaint.py:2027 +#: tclCommands/TclCommandPaint.py:133 +msgid "Combo" +msgstr "Combo" + +#: FlatCAMDB.py:1641 +msgid "Add Tool in DB" +msgstr "Adicionar Ferramenta no BD" + +#: FlatCAMDB.py:1675 +msgid "Save DB" +msgstr "Salvar BD" + +#: FlatCAMDB.py:1677 +msgid "Save the Tools Database information's." +msgstr "Salve as informações do banco de dados de ferramentas." + +#: FlatCAMProcess.py:172 +msgid "processes running." +msgstr "processos executando." + +#: FlatCAMTool.py:245 FlatCAMTool.py:252 flatcamGUI/ObjectUI.py:157 +#: flatcamGUI/ObjectUI.py:164 +msgid "Edited value is out of range" +msgstr "Valor fora da faixa" + +#: FlatCAMTool.py:247 FlatCAMTool.py:254 flatcamGUI/ObjectUI.py:159 +#: flatcamGUI/ObjectUI.py:166 +msgid "Edited value is within limits." +msgstr "O valor editado está dentro dos limites." + +#: FlatCAMTranslation.py:104 +msgid "The application will restart." +msgstr "O aplicativo reiniciará." + +#: FlatCAMTranslation.py:106 +msgid "Are you sure do you want to change the current language to" +msgstr "Você tem certeza de que quer alterar o idioma para" + +#: FlatCAMTranslation.py:107 +msgid "Apply Language ..." +msgstr "Aplicar o Idioma ..." #: assets/linux/flatcam-beta.desktop:3 msgid "FlatCAM Beta" msgstr "FlatCAM Beta" +#: assets/linux/flatcam-beta.desktop:7 +msgid "./assets/icon.png" +msgstr "./assets/icon.png" + #: assets/linux/flatcam-beta.desktop:8 msgid "G-Code from GERBERS" msgstr "G-Code de Gerbers" @@ -18480,55 +2660,66 @@ msgstr "G-Code de Gerbers" msgid "self.solid_geometry is neither BaseGeometry or list." msgstr "self.solid_geometry não é nem BaseGeometry nem lista." -#: camlib.py:979 +#: camlib.py:970 msgid "Pass" msgstr "Passo" -#: camlib.py:1001 +#: camlib.py:981 flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:146 +#: flatcamObjects/FlatCAMGerber.py:497 flatcamTools/ToolCopperThieving.py:1016 +#: flatcamTools/ToolCopperThieving.py:1205 +#: flatcamTools/ToolCopperThieving.py:1217 flatcamTools/ToolNCC.py:2050 +#: flatcamTools/ToolNCC.py:2158 flatcamTools/ToolNCC.py:2172 +#: flatcamTools/ToolNCC.py:3103 flatcamTools/ToolNCC.py:3208 +#: flatcamTools/ToolNCC.py:3223 flatcamTools/ToolNCC.py:3489 +#: flatcamTools/ToolNCC.py:3590 flatcamTools/ToolNCC.py:3605 +msgid "Buffering" +msgstr "Criando buffer" + +#: camlib.py:990 msgid "Get Exteriors" msgstr "Obter Exterior" -#: camlib.py:1004 +#: camlib.py:993 msgid "Get Interiors" msgstr "Obter Interior" -#: camlib.py:2192 +#: camlib.py:2172 msgid "Object was mirrored" msgstr "O objeto foi espelhado" -#: camlib.py:2194 +#: camlib.py:2174 msgid "Failed to mirror. No object selected" msgstr "Falha ao espelhar. Nenhum objeto selecionado" -#: camlib.py:2259 +#: camlib.py:2239 msgid "Object was rotated" msgstr "O objeto foi rotacionado" -#: camlib.py:2261 +#: camlib.py:2241 msgid "Failed to rotate. No object selected" msgstr "Falha ao girar. Nenhum objeto selecionado" -#: camlib.py:2327 +#: camlib.py:2307 msgid "Object was skewed" msgstr "O objeto foi inclinado" -#: camlib.py:2329 +#: camlib.py:2309 msgid "Failed to skew. No object selected" msgstr "Falha ao inclinar. Nenhum objeto selecionado" -#: camlib.py:2405 +#: camlib.py:2385 msgid "Object was buffered" msgstr "O objeto foi armazenado em buffer" -#: camlib.py:2407 +#: camlib.py:2387 msgid "Failed to buffer. No object selected" msgstr "Falha no buffer. Nenhum objeto selecionado" -#: camlib.py:2650 +#: camlib.py:2594 msgid "There is no such parameter" msgstr "Não existe esse parâmetro" -#: camlib.py:2718 camlib.py:2970 camlib.py:3233 camlib.py:3489 +#: camlib.py:2654 camlib.py:2887 camlib.py:3116 camlib.py:3338 msgid "" "The Cut Z parameter has positive value. It is the depth value to drill into " "material.\n" @@ -18541,13 +2732,13 @@ msgstr "" "um erro de digitação, o aplicativo converterá o valor para negativo.\n" "Verifique o código CNC resultante (G-Code, etc.)." -#: camlib.py:2726 camlib.py:2980 camlib.py:3243 camlib.py:3499 camlib.py:3824 -#: camlib.py:4224 +#: camlib.py:2662 camlib.py:2897 camlib.py:3126 camlib.py:3348 camlib.py:3631 +#: camlib.py:4017 msgid "The Cut Z parameter is zero. There will be no cut, skipping file" msgstr "" "O parâmetro Profundidade de Corte é zero. Não haverá corte, ignorando arquivo" -#: camlib.py:2741 camlib.py:4192 +#: camlib.py:2673 camlib.py:3985 msgid "" "The Toolchange X,Y field in Edit -> Preferences has to be in the format (x, " "y) \n" @@ -18557,7 +2748,7 @@ msgstr "" "formato (x, y).\n" "Agora existe apenas um valor, não dois. " -#: camlib.py:2754 camlib.py:3771 camlib.py:4170 +#: camlib.py:2682 camlib.py:3582 camlib.py:3967 msgid "" "The End Move X,Y field in Edit -> Preferences has to be in the format (x, y) " "but now there is only one value, not two." @@ -18565,35 +2756,31 @@ msgstr "" "O campo Movimento Final X, Y em Editar -> Preferências deve estar no formato " "(x, y), mas agora está com apenas um valor, não dois." -#: camlib.py:2842 +#: camlib.py:2770 msgid "Creating a list of points to drill..." msgstr "Criando uma lista de pontos para furar..." -#: camlib.py:2866 -msgid "Failed. Drill points inside the exclusion zones." -msgstr "" - -#: camlib.py:2943 camlib.py:3922 camlib.py:4332 +#: camlib.py:2860 camlib.py:3729 camlib.py:4121 msgid "Starting G-Code" msgstr "Iniciando o G-Code" -#: camlib.py:3084 camlib.py:3337 camlib.py:3535 camlib.py:3935 camlib.py:4343 +#: camlib.py:3001 camlib.py:3220 camlib.py:3384 camlib.py:3742 camlib.py:4132 msgid "Starting G-Code for tool with diameter" msgstr "Iniciando o G-Code para ferramenta com diâmetro" -#: camlib.py:3201 camlib.py:3453 camlib.py:3655 +#: camlib.py:3084 camlib.py:3302 camlib.py:3470 msgid "G91 coordinates not implemented" msgstr "Coordenadas G91 não implementadas" -#: camlib.py:3207 camlib.py:3460 camlib.py:3660 +#: camlib.py:3090 camlib.py:3309 camlib.py:3475 msgid "The loaded Excellon file has no drills" msgstr "O arquivo Excellon carregado não tem furos" -#: camlib.py:3683 +#: camlib.py:3498 msgid "Finished G-Code generation..." msgstr "Geração de G-Code concluída..." -#: camlib.py:3793 +#: camlib.py:3600 msgid "" "The Toolchange X,Y field in Edit -> Preferences has to be in the format (x, " "y) \n" @@ -18603,7 +2790,7 @@ msgstr "" "formato (x, y).\n" "Agora está com apenas um valor, não dois." -#: camlib.py:3807 camlib.py:4207 +#: camlib.py:3614 camlib.py:4000 msgid "" "Cut_Z parameter is None or zero. Most likely a bad combinations of other " "parameters." @@ -18611,7 +2798,7 @@ msgstr "" "Profundidade de Corte está vazio ou é zero. Provavelmente é uma combinação " "ruim de outros parâmetros." -#: camlib.py:3816 camlib.py:4216 +#: camlib.py:3623 camlib.py:4009 msgid "" "The Cut Z parameter has positive value. It is the depth value to cut into " "material.\n" @@ -18624,11 +2811,11 @@ msgstr "" "um erro de digitação, o aplicativo converterá o valor para negativo.\n" "Verifique o código CNC resultante (G-Code, etc.)." -#: camlib.py:3829 camlib.py:4230 +#: camlib.py:3636 camlib.py:4023 msgid "Travel Z parameter is None or zero." msgstr "O parâmetro Altura de Deslocamento Z é Nulo ou zero." -#: camlib.py:3834 camlib.py:4235 +#: camlib.py:3641 camlib.py:4028 msgid "" "The Travel Z parameter has negative value. It is the height value to travel " "between cuts.\n" @@ -18642,35 +2829,35 @@ msgstr "" "positivo.\n" "Verifique o código CNC resultante (G-Code, etc.)." -#: camlib.py:3842 camlib.py:4243 +#: camlib.py:3649 camlib.py:4036 msgid "The Z Travel parameter is zero. This is dangerous, skipping file" msgstr "" "O parâmetro Altura de Deslocamento é zero. Isso é perigoso, ignorando arquivo" -#: camlib.py:3861 camlib.py:4266 +#: camlib.py:3668 camlib.py:4059 msgid "Indexing geometry before generating G-Code..." msgstr "Indexando geometrias antes de gerar o G-Code..." -#: camlib.py:4009 camlib.py:4420 +#: camlib.py:3812 camlib.py:4201 msgid "Finished G-Code generation" msgstr "Geração de G-Code concluída" -#: camlib.py:4009 +#: camlib.py:3812 msgid "paths traced" msgstr "caminho traçado" -#: camlib.py:4059 +#: camlib.py:3862 msgid "Expected a Geometry, got" msgstr "Esperando uma geometria, recebido" -#: camlib.py:4066 +#: camlib.py:3869 msgid "" "Trying to generate a CNC Job from a Geometry object without solid_geometry." msgstr "" "Tentando gerar um trabalho CNC a partir de um objeto Geometria sem " "solid_geometry." -#: camlib.py:4107 +#: camlib.py:3910 msgid "" "The Tool Offset value is too negative to use for the current_geometry.\n" "Raise the value (in module) and try again." @@ -18679,42 +2866,15495 @@ msgstr "" "current_geometry.\n" "Aumente o valor (em módulo) e tente novamente." -#: camlib.py:4420 +#: camlib.py:4201 msgid " paths traced." msgstr " caminhos traçados." -#: camlib.py:4448 +#: camlib.py:4229 msgid "There is no tool data in the SolderPaste geometry." msgstr "Não há dados de ferramenta na geometria de Pasta de Solda." -#: camlib.py:4537 +#: camlib.py:4318 msgid "Finished SolderPaste G-Code generation" msgstr "Geração de G-Code para Pasta de Solda concluída" -#: camlib.py:4537 +#: camlib.py:4318 msgid "paths traced." msgstr "caminhos traçados." -#: camlib.py:4872 +#: camlib.py:4578 msgid "Parsing GCode file. Number of lines" msgstr "Analisando o arquivo G-Code. Número de linhas" -#: camlib.py:4979 +#: camlib.py:4685 msgid "Creating Geometry from the parsed GCode file. " msgstr "Criando Geometria a partir do arquivo G-Code analisado. " -#: camlib.py:5147 camlib.py:5420 camlib.py:5568 camlib.py:5737 +#: camlib.py:4828 camlib.py:5118 camlib.py:5229 camlib.py:5385 msgid "G91 coordinates not implemented ..." msgstr "Coordenadas G91 não implementadas..." -#: defaults.py:771 +#: camlib.py:4960 +msgid "Unifying Geometry from parsed Geometry segments" +msgstr "Unificando Gometria a partir de segmentos de geometria analisados" + +#: defaults.py:401 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:86 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309 +#: flatcamTools/ToolCopperThieving.py:125 flatcamTools/ToolNCC.py:535 +#: flatcamTools/ToolNCC.py:1306 flatcamTools/ToolNCC.py:1634 +#: flatcamTools/ToolNCC.py:1919 flatcamTools/ToolNCC.py:1983 +#: flatcamTools/ToolNCC.py:2967 flatcamTools/ToolNCC.py:2976 +#: tclCommands/TclCommandCopperClear.py:190 +msgid "Itself" +msgstr "Própria" + +#: defaults.py:428 flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280 +#: flatcamTools/ToolPaint.py:486 flatcamTools/ToolPaint.py:1427 +#: tclCommands/TclCommandPaint.py:162 +msgid "All Polygons" +msgstr "Todos os polígonos" + +#: defaults.py:739 msgid "Could not load defaults file." msgstr "Não foi possível carregar o arquivo com os padrões." -#: defaults.py:784 +#: defaults.py:752 msgid "Failed to parse defaults file." msgstr "Falha ao analisar o arquivo com os padrões." +#: flatcamEditors/FlatCAMExcEditor.py:50 flatcamEditors/FlatCAMExcEditor.py:74 +#: flatcamEditors/FlatCAMExcEditor.py:168 +#: flatcamEditors/FlatCAMExcEditor.py:385 +#: flatcamEditors/FlatCAMExcEditor.py:589 +#: flatcamEditors/FlatCAMGrbEditor.py:243 +#: flatcamEditors/FlatCAMGrbEditor.py:250 +msgid "Click to place ..." +msgstr "Clique para colocar ..." + +#: flatcamEditors/FlatCAMExcEditor.py:58 +msgid "To add a drill first select a tool" +msgstr "Para adicionar um furo, primeiro selecione uma ferramenta" + +#: flatcamEditors/FlatCAMExcEditor.py:122 +msgid "Done. Drill added." +msgstr "Feito. Furo adicionado." + +#: flatcamEditors/FlatCAMExcEditor.py:176 +msgid "To add an Drill Array first select a tool in Tool Table" +msgstr "" +"Para adicionar um Matriz de Furos, primeiro selecione uma ferramenta na " +"Tabela de Ferramentas" + +#: flatcamEditors/FlatCAMExcEditor.py:192 +#: flatcamEditors/FlatCAMExcEditor.py:415 +#: flatcamEditors/FlatCAMExcEditor.py:636 +#: flatcamEditors/FlatCAMExcEditor.py:1151 +#: flatcamEditors/FlatCAMExcEditor.py:1178 +#: flatcamEditors/FlatCAMGrbEditor.py:473 +#: flatcamEditors/FlatCAMGrbEditor.py:1937 +#: flatcamEditors/FlatCAMGrbEditor.py:1967 +msgid "Click on target location ..." +msgstr "Clique no local de destino ..." + +#: flatcamEditors/FlatCAMExcEditor.py:211 +msgid "Click on the Drill Circular Array Start position" +msgstr "Clique na posição inicial da Matriz Circular de Furos" + +#: flatcamEditors/FlatCAMExcEditor.py:233 +#: flatcamEditors/FlatCAMExcEditor.py:677 +#: flatcamEditors/FlatCAMGrbEditor.py:518 +msgid "The value is not Float. Check for comma instead of dot separator." +msgstr "" +"O valor não é flutuante. Verifique se há uma vírgula em vez do ponto no " +"separador decimal." + +#: flatcamEditors/FlatCAMExcEditor.py:237 +msgid "The value is mistyped. Check the value" +msgstr "O valor foi digitado incorretamente. Verifique o valor" + +#: flatcamEditors/FlatCAMExcEditor.py:336 +msgid "Too many drills for the selected spacing angle." +msgstr "Muitos furos para o ângulo de espaçamento selecionado." + +#: flatcamEditors/FlatCAMExcEditor.py:354 +msgid "Done. Drill Array added." +msgstr "Matriz de Furos adicionada." + +#: flatcamEditors/FlatCAMExcEditor.py:394 +msgid "To add a slot first select a tool" +msgstr "Para adicionar um ranhura, primeiro selecione uma ferramenta" + +#: flatcamEditors/FlatCAMExcEditor.py:454 +#: flatcamEditors/FlatCAMExcEditor.py:461 +#: flatcamEditors/FlatCAMExcEditor.py:742 +#: flatcamEditors/FlatCAMExcEditor.py:749 +msgid "Value is missing or wrong format. Add it and retry." +msgstr "Valor está faltando ou formato errado. Adicione e tente novamente." + +#: flatcamEditors/FlatCAMExcEditor.py:559 +msgid "Done. Adding Slot completed." +msgstr "Feito. Ranhura adicionada." + +#: flatcamEditors/FlatCAMExcEditor.py:597 +msgid "To add an Slot Array first select a tool in Tool Table" +msgstr "" +"Para adicionar uma matriz de ranhuras, primeiro selecione uma ferramenta na " +"Tabela de Ferramentas" + +#: flatcamEditors/FlatCAMExcEditor.py:655 +msgid "Click on the Slot Circular Array Start position" +msgstr "Clique na posição inicial da matriz circular da ranhura" + +#: flatcamEditors/FlatCAMExcEditor.py:680 +#: flatcamEditors/FlatCAMGrbEditor.py:521 +msgid "The value is mistyped. Check the value." +msgstr "O valor digitado está incorreto. Verifique o valor." + +#: flatcamEditors/FlatCAMExcEditor.py:859 +msgid "Too many Slots for the selected spacing angle." +msgstr "Muitas Ranhuras para o ângulo de espaçamento selecionado." + +#: flatcamEditors/FlatCAMExcEditor.py:882 +msgid "Done. Slot Array added." +msgstr "Feito. Matriz de Ranhuras adicionada." + +#: flatcamEditors/FlatCAMExcEditor.py:904 +msgid "Click on the Drill(s) to resize ..." +msgstr "Clique no(s) Furo(s) para redimensionar ..." + +#: flatcamEditors/FlatCAMExcEditor.py:934 +msgid "Resize drill(s) failed. Please enter a diameter for resize." +msgstr "" +"Redimensionar furo(s) falhou. Por favor insira um diâmetro para " +"redimensionar." + +#: flatcamEditors/FlatCAMExcEditor.py:1112 +msgid "Done. Drill/Slot Resize completed." +msgstr "Redimensionamento de furo/ranhura concluído." + +#: flatcamEditors/FlatCAMExcEditor.py:1115 +msgid "Cancelled. No drills/slots selected for resize ..." +msgstr "Cancelado. Nenhum furo/ranhura selecionado para redimensionar ..." + +#: flatcamEditors/FlatCAMExcEditor.py:1153 +#: flatcamEditors/FlatCAMGrbEditor.py:1939 +msgid "Click on reference location ..." +msgstr "Clique no local de referência ..." + +#: flatcamEditors/FlatCAMExcEditor.py:1210 +msgid "Done. Drill(s) Move completed." +msgstr "Movimento do Furo realizado." + +#: flatcamEditors/FlatCAMExcEditor.py:1318 +msgid "Done. Drill(s) copied." +msgstr "Furo(s) copiado(s)." + +#: flatcamEditors/FlatCAMExcEditor.py:1557 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:26 +msgid "Excellon Editor" +msgstr "Editor Excellon" + +#: flatcamEditors/FlatCAMExcEditor.py:1564 +#: flatcamEditors/FlatCAMGrbEditor.py:2462 +msgid "Name:" +msgstr "Nome:" + +#: flatcamEditors/FlatCAMExcEditor.py:1570 flatcamGUI/ObjectUI.py:761 +#: flatcamGUI/ObjectUI.py:1465 flatcamTools/ToolNCC.py:120 +#: flatcamTools/ToolPaint.py:115 flatcamTools/ToolSolderPaste.py:74 +msgid "Tools Table" +msgstr "Tabela de Ferramentas" + +#: flatcamEditors/FlatCAMExcEditor.py:1572 flatcamGUI/ObjectUI.py:763 +msgid "" +"Tools in this Excellon object\n" +"when are used for drilling." +msgstr "" +"Ferramentas neste objeto Excellon \n" +"quando são usadas para perfuração." + +#: flatcamEditors/FlatCAMExcEditor.py:1584 +#: flatcamEditors/FlatCAMExcEditor.py:3066 flatcamGUI/ObjectUI.py:781 +#: flatcamObjects/FlatCAMExcellon.py:1098 +#: flatcamObjects/FlatCAMExcellon.py:1188 +#: flatcamObjects/FlatCAMExcellon.py:1373 flatcamTools/ToolNCC.py:132 +#: flatcamTools/ToolPaint.py:128 flatcamTools/ToolPcbWizard.py:76 +#: flatcamTools/ToolProperties.py:416 flatcamTools/ToolProperties.py:476 +#: flatcamTools/ToolSolderPaste.py:85 tclCommands/TclCommandDrillcncjob.py:193 +msgid "Diameter" +msgstr "Diâmetro" + +#: flatcamEditors/FlatCAMExcEditor.py:1592 +msgid "Add/Delete Tool" +msgstr "Adicionar/Excluir Ferramenta" + +#: flatcamEditors/FlatCAMExcEditor.py:1594 +msgid "" +"Add/Delete a tool to the tool list\n" +"for this Excellon object." +msgstr "" +"Adicionar/Excluir uma ferramenta para a lista de ferramentas\n" +"para este objeto Excellon." + +#: flatcamEditors/FlatCAMExcEditor.py:1606 flatcamGUI/ObjectUI.py:1585 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:57 +msgid "Diameter for the new tool" +msgstr "Diâmetro da nova ferramenta" + +#: flatcamEditors/FlatCAMExcEditor.py:1616 +msgid "Add Tool" +msgstr "Adicionar Ferramenta" + +#: flatcamEditors/FlatCAMExcEditor.py:1618 +msgid "" +"Add a new tool to the tool list\n" +"with the diameter specified above." +msgstr "" +"Adiciona uma nova ferramenta à lista de ferramentas\n" +"com o diâmetro especificado acima." + +#: flatcamEditors/FlatCAMExcEditor.py:1630 +msgid "Delete Tool" +msgstr "Excluir Ferramenta" + +#: flatcamEditors/FlatCAMExcEditor.py:1632 +msgid "" +"Delete a tool in the tool list\n" +"by selecting a row in the tool table." +msgstr "" +"Exclui uma ferramenta da lista de ferramentas selecionando uma linha na " +"tabela de ferramentas." + +#: flatcamEditors/FlatCAMExcEditor.py:1650 flatcamGUI/FlatCAMGUI.py:2019 +msgid "Resize Drill(s)" +msgstr "Redimensionar Furo(s)" + +#: flatcamEditors/FlatCAMExcEditor.py:1652 +msgid "Resize a drill or a selection of drills." +msgstr "Redimensiona um furo ou uma seleção de furos." + +#: flatcamEditors/FlatCAMExcEditor.py:1659 +msgid "Resize Dia" +msgstr "Novo Diâmetro" + +#: flatcamEditors/FlatCAMExcEditor.py:1661 +msgid "Diameter to resize to." +msgstr "Novo diâmetro para redimensionar." + +#: flatcamEditors/FlatCAMExcEditor.py:1672 +msgid "Resize" +msgstr "Redimensionar" + +#: flatcamEditors/FlatCAMExcEditor.py:1674 +msgid "Resize drill(s)" +msgstr "Redimensionar furo(s)" + +#: flatcamEditors/FlatCAMExcEditor.py:1699 flatcamGUI/FlatCAMGUI.py:2018 +#: flatcamGUI/FlatCAMGUI.py:2270 +msgid "Add Drill Array" +msgstr "Adicionar Matriz de Furos" + +#: flatcamEditors/FlatCAMExcEditor.py:1701 +msgid "Add an array of drills (linear or circular array)" +msgstr "Adiciona uma matriz de furos (matriz linear ou circular)" + +#: flatcamEditors/FlatCAMExcEditor.py:1707 +msgid "" +"Select the type of drills array to create.\n" +"It can be Linear X(Y) or Circular" +msgstr "" +"Selecione o tipo de matriz de furos para criar.\n" +"Pode ser Linear X(Y) ou Circular" + +#: flatcamEditors/FlatCAMExcEditor.py:1710 +#: flatcamEditors/FlatCAMExcEditor.py:1924 +#: flatcamEditors/FlatCAMGrbEditor.py:2775 +msgid "Linear" +msgstr "Linear" + +#: flatcamEditors/FlatCAMExcEditor.py:1711 +#: flatcamEditors/FlatCAMExcEditor.py:1925 +#: flatcamEditors/FlatCAMGrbEditor.py:2776 flatcamGUI/ObjectUI.py:316 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:52 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:149 +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:107 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:52 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:151 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:61 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:70 +#: flatcamTools/ToolExtractDrills.py:78 flatcamTools/ToolExtractDrills.py:201 +#: flatcamTools/ToolFiducials.py:220 flatcamTools/ToolNCC.py:221 +#: flatcamTools/ToolPaint.py:204 flatcamTools/ToolPunchGerber.py:89 +#: flatcamTools/ToolPunchGerber.py:229 +msgid "Circular" +msgstr "Circular" + +#: flatcamEditors/FlatCAMExcEditor.py:1719 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:68 +msgid "Nr of drills" +msgstr "Nº de furos" + +#: flatcamEditors/FlatCAMExcEditor.py:1720 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:70 +msgid "Specify how many drills to be in the array." +msgstr "Especifique quantos furos devem estar na matriz." + +#: flatcamEditors/FlatCAMExcEditor.py:1738 +#: flatcamEditors/FlatCAMExcEditor.py:1788 +#: flatcamEditors/FlatCAMExcEditor.py:1860 +#: flatcamEditors/FlatCAMExcEditor.py:1953 +#: flatcamEditors/FlatCAMExcEditor.py:2004 +#: flatcamEditors/FlatCAMGrbEditor.py:1573 +#: flatcamEditors/FlatCAMGrbEditor.py:2804 +#: flatcamEditors/FlatCAMGrbEditor.py:2853 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:178 +msgid "Direction" +msgstr "Direção" + +#: flatcamEditors/FlatCAMExcEditor.py:1740 +#: flatcamEditors/FlatCAMExcEditor.py:1955 +#: flatcamEditors/FlatCAMGrbEditor.py:2806 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:86 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:234 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:122 +msgid "" +"Direction on which the linear array is oriented:\n" +"- 'X' - horizontal axis \n" +"- 'Y' - vertical axis or \n" +"- 'Angle' - a custom angle for the array inclination" +msgstr "" +"Direção na qual a matriz linear é orientada: \n" +"- 'X' - eixo horizontal\n" +"- 'Y' - eixo vertical ou\n" +"- 'Ângulo' - um ângulo personalizado para a inclinação da matriz" + +#: flatcamEditors/FlatCAMExcEditor.py:1747 +#: flatcamEditors/FlatCAMExcEditor.py:1869 +#: flatcamEditors/FlatCAMExcEditor.py:1962 +#: flatcamEditors/FlatCAMGrbEditor.py:2813 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:92 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:187 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:240 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:128 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:208 +#: flatcamTools/ToolFilm.py:256 +msgid "X" +msgstr "X" + +#: flatcamEditors/FlatCAMExcEditor.py:1748 +#: flatcamEditors/FlatCAMExcEditor.py:1870 +#: flatcamEditors/FlatCAMExcEditor.py:1963 +#: flatcamEditors/FlatCAMGrbEditor.py:2814 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:93 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:188 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:241 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:129 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:209 +#: flatcamTools/ToolFilm.py:257 +msgid "Y" +msgstr "Y" + +#: flatcamEditors/FlatCAMExcEditor.py:1749 +#: flatcamEditors/FlatCAMExcEditor.py:1766 +#: flatcamEditors/FlatCAMExcEditor.py:1800 +#: flatcamEditors/FlatCAMExcEditor.py:1871 +#: flatcamEditors/FlatCAMExcEditor.py:1875 +#: flatcamEditors/FlatCAMExcEditor.py:1964 +#: flatcamEditors/FlatCAMExcEditor.py:1982 +#: flatcamEditors/FlatCAMExcEditor.py:2016 +#: flatcamEditors/FlatCAMGrbEditor.py:2815 +#: flatcamEditors/FlatCAMGrbEditor.py:2832 +#: flatcamEditors/FlatCAMGrbEditor.py:2868 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:94 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:113 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:189 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:194 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:242 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:263 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:130 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:148 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:53 +#: flatcamTools/ToolDistance.py:120 flatcamTools/ToolDistanceMin.py:69 +#: flatcamTools/ToolTransform.py:60 +msgid "Angle" +msgstr "Ângulo" + +#: flatcamEditors/FlatCAMExcEditor.py:1753 +#: flatcamEditors/FlatCAMExcEditor.py:1968 +#: flatcamEditors/FlatCAMGrbEditor.py:2819 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:100 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:248 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:136 +msgid "Pitch" +msgstr "Passo" + +#: flatcamEditors/FlatCAMExcEditor.py:1755 +#: flatcamEditors/FlatCAMExcEditor.py:1970 +#: flatcamEditors/FlatCAMGrbEditor.py:2821 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:102 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:250 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:138 +msgid "Pitch = Distance between elements of the array." +msgstr "Passo = Distância entre os elementos da matriz." + +#: flatcamEditors/FlatCAMExcEditor.py:1768 +#: flatcamEditors/FlatCAMExcEditor.py:1984 +msgid "" +"Angle at which the linear array is placed.\n" +"The precision is of max 2 decimals.\n" +"Min value is: -360 degrees.\n" +"Max value is: 360.00 degrees." +msgstr "" +"Ângulo no qual a matriz linear é colocada.\n" +"A precisão é de no máximo 2 decimais.\n" +"Valor mínimo: -360.00 graus.\n" +"Valor máximo: 360.00 graus." + +#: flatcamEditors/FlatCAMExcEditor.py:1789 +#: flatcamEditors/FlatCAMExcEditor.py:2005 +#: flatcamEditors/FlatCAMGrbEditor.py:2855 +msgid "" +"Direction for circular array.Can be CW = clockwise or CCW = counter " +"clockwise." +msgstr "" +"Sentido da matriz circular. Pode ser CW = horário ou CCW = anti-horário." + +#: flatcamEditors/FlatCAMExcEditor.py:1796 +#: flatcamEditors/FlatCAMExcEditor.py:2012 +#: flatcamEditors/FlatCAMGrbEditor.py:2863 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:129 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:136 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:286 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:142 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:170 +msgid "CW" +msgstr "CW" + +#: flatcamEditors/FlatCAMExcEditor.py:1797 +#: flatcamEditors/FlatCAMExcEditor.py:2013 +#: flatcamEditors/FlatCAMGrbEditor.py:2864 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:130 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:137 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:287 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:143 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:171 +msgid "CCW" +msgstr "CCW" + +#: flatcamEditors/FlatCAMExcEditor.py:1801 +#: flatcamEditors/FlatCAMExcEditor.py:2017 +#: flatcamEditors/FlatCAMGrbEditor.py:2870 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:115 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:145 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:265 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:295 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:150 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:179 +msgid "Angle at which each element in circular array is placed." +msgstr "Ângulo no qual cada elemento na matriz circular é colocado." + +#: flatcamEditors/FlatCAMExcEditor.py:1835 +msgid "Slot Parameters" +msgstr "Parâmetros de Ranhura" + +#: flatcamEditors/FlatCAMExcEditor.py:1837 +msgid "" +"Parameters for adding a slot (hole with oval shape)\n" +"either single or as an part of an array." +msgstr "" +"Parâmetros para adicionar uma ranhura (furo com forma oval),\n" +"tanto única quanto parte de uma matriz." + +#: flatcamEditors/FlatCAMExcEditor.py:1846 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:162 +#: flatcamTools/ToolProperties.py:559 +msgid "Length" +msgstr "Comprimento" + +#: flatcamEditors/FlatCAMExcEditor.py:1848 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:164 +msgid "Length = The length of the slot." +msgstr "Comprimento = o comprimento da ranhura." + +#: flatcamEditors/FlatCAMExcEditor.py:1862 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:180 +msgid "" +"Direction on which the slot is oriented:\n" +"- 'X' - horizontal axis \n" +"- 'Y' - vertical axis or \n" +"- 'Angle' - a custom angle for the slot inclination" +msgstr "" +"Direção na qual a ranhura é orientada:\n" +"- 'X' - eixo horizontal\n" +"- 'Y' - eixo vertical ou\n" +"- 'Angle' - um ângulo personalizado para a inclinação da ranhura" + +#: flatcamEditors/FlatCAMExcEditor.py:1877 +msgid "" +"Angle at which the slot is placed.\n" +"The precision is of max 2 decimals.\n" +"Min value is: -360 degrees.\n" +"Max value is: 360.00 degrees." +msgstr "" +"Ângulo no qual a ranhura é colocada.\n" +"A precisão é de no máximo 2 decimais.\n" +"Valor mínimo: -360.00 graus.\n" +"Valor máximo: 360.00 graus." + +#: flatcamEditors/FlatCAMExcEditor.py:1910 +msgid "Slot Array Parameters" +msgstr "Parâm. da matriz de ranhuras" + +#: flatcamEditors/FlatCAMExcEditor.py:1912 +msgid "Parameters for the array of slots (linear or circular array)" +msgstr "Parâmetros da matriz de ranhuras (matriz linear ou circular)" + +#: flatcamEditors/FlatCAMExcEditor.py:1921 +msgid "" +"Select the type of slot array to create.\n" +"It can be Linear X(Y) or Circular" +msgstr "" +"Selecione o tipo de matriz de ranhuras para criar.\n" +"Pode ser Linear X(Y) ou Circular" + +#: flatcamEditors/FlatCAMExcEditor.py:1933 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:219 +msgid "Nr of slots" +msgstr "Nº de ranhuras" + +#: flatcamEditors/FlatCAMExcEditor.py:1934 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:221 +msgid "Specify how many slots to be in the array." +msgstr "Especifique o número de ranhuras da matriz." + +#: flatcamEditors/FlatCAMExcEditor.py:2452 +#: flatcamObjects/FlatCAMExcellon.py:410 +msgid "Total Drills" +msgstr "N° Furos" + +#: flatcamEditors/FlatCAMExcEditor.py:2484 +#: flatcamObjects/FlatCAMExcellon.py:441 +msgid "Total Slots" +msgstr "N° Ranhuras" + +#: flatcamEditors/FlatCAMExcEditor.py:2559 +#: flatcamEditors/FlatCAMGeoEditor.py:1076 +#: flatcamEditors/FlatCAMGeoEditor.py:1117 +#: flatcamEditors/FlatCAMGeoEditor.py:1145 +#: flatcamEditors/FlatCAMGeoEditor.py:1173 +#: flatcamEditors/FlatCAMGeoEditor.py:1217 +#: flatcamEditors/FlatCAMGeoEditor.py:1252 +#: flatcamEditors/FlatCAMGeoEditor.py:1280 +#: flatcamObjects/FlatCAMGeometry.py:599 flatcamObjects/FlatCAMGeometry.py:1033 +#: flatcamObjects/FlatCAMGeometry.py:1780 +#: flatcamObjects/FlatCAMGeometry.py:2424 flatcamTools/ToolNCC.py:1498 +#: flatcamTools/ToolPaint.py:1249 flatcamTools/ToolPaint.py:1420 +#: flatcamTools/ToolSolderPaste.py:883 flatcamTools/ToolSolderPaste.py:956 +msgid "Wrong value format entered, use a number." +msgstr "Formato incorreto, use um número." + +#: flatcamEditors/FlatCAMExcEditor.py:2570 +msgid "" +"Tool already in the original or actual tool list.\n" +"Save and reedit Excellon if you need to add this tool. " +msgstr "" +"Ferramenta já na lista de ferramentas original ou atual.\n" +"Salve e reedite Excellon se precisar adicionar essa ferramenta. " + +#: flatcamEditors/FlatCAMExcEditor.py:2579 flatcamGUI/FlatCAMGUI.py:4071 +msgid "Added new tool with dia" +msgstr "Adicionada nova ferramenta com diâmetro" + +#: flatcamEditors/FlatCAMExcEditor.py:2612 +msgid "Select a tool in Tool Table" +msgstr "Selecione uma ferramenta na Tabela de Ferramentas" + +#: flatcamEditors/FlatCAMExcEditor.py:2642 +msgid "Deleted tool with diameter" +msgstr "Ferramenta excluída com diâmetro" + +#: flatcamEditors/FlatCAMExcEditor.py:2790 +msgid "Done. Tool edit completed." +msgstr "Edição de ferramenta concluída." + +#: flatcamEditors/FlatCAMExcEditor.py:3352 +msgid "There are no Tools definitions in the file. Aborting Excellon creation." +msgstr "" +"Não há definições de ferramentas no arquivo. Abortando a criação do Excellon." + +#: flatcamEditors/FlatCAMExcEditor.py:3356 +msgid "An internal error has ocurred. See Shell.\n" +msgstr "Ocorreu um erro interno. Veja shell (linha de comando).\n" + +#: flatcamEditors/FlatCAMExcEditor.py:3361 +msgid "Creating Excellon." +msgstr "Criando Excellon." + +#: flatcamEditors/FlatCAMExcEditor.py:3373 +msgid "Excellon editing finished." +msgstr "Edição de Excellon concluída." + +#: flatcamEditors/FlatCAMExcEditor.py:3390 +msgid "Cancelled. There is no Tool/Drill selected" +msgstr "Cancelado. Não há ferramenta/broca selecionada" + +#: flatcamEditors/FlatCAMExcEditor.py:4003 +msgid "Done. Drill(s) deleted." +msgstr "Furo(s) excluída(s)." + +#: flatcamEditors/FlatCAMExcEditor.py:4076 +#: flatcamEditors/FlatCAMExcEditor.py:4086 +#: flatcamEditors/FlatCAMGrbEditor.py:5063 +msgid "Click on the circular array Center position" +msgstr "Clique na posição central da matriz circular" + +#: flatcamEditors/FlatCAMGeoEditor.py:85 +msgid "Buffer distance:" +msgstr "Distância do buffer:" + +#: flatcamEditors/FlatCAMGeoEditor.py:86 +msgid "Buffer corner:" +msgstr "Canto do buffer:" + +#: flatcamEditors/FlatCAMGeoEditor.py:88 +msgid "" +"There are 3 types of corners:\n" +" - 'Round': the corner is rounded for exterior buffer.\n" +" - 'Square': the corner is met in a sharp angle for exterior buffer.\n" +" - 'Beveled': the corner is a line that directly connects the features " +"meeting in the corner" +msgstr "" +"Existem 3 tipos de cantos:\n" +"- 'Redondo': o canto é arredondado para buffer externo.\n" +"- 'Quadrado:' o canto é em um ângulo agudo para buffer externo.\n" +"- 'Chanfrado:' o canto é uma linha que conecta diretamente os recursos " +"encontrados no canto" + +#: flatcamEditors/FlatCAMGeoEditor.py:94 +#: flatcamEditors/FlatCAMGrbEditor.py:2631 +msgid "Round" +msgstr "Redondo" + +#: flatcamEditors/FlatCAMGeoEditor.py:95 +#: flatcamEditors/FlatCAMGrbEditor.py:2632 flatcamGUI/ObjectUI.py:2073 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:217 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:68 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:175 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:68 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:177 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:143 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:327 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:291 +#: flatcamTools/ToolExtractDrills.py:94 flatcamTools/ToolExtractDrills.py:227 +#: flatcamTools/ToolNCC.py:583 flatcamTools/ToolPaint.py:527 +#: flatcamTools/ToolPunchGerber.py:105 flatcamTools/ToolPunchGerber.py:255 +#: flatcamTools/ToolQRCode.py:198 +msgid "Square" +msgstr "Quadrado" + +#: flatcamEditors/FlatCAMGeoEditor.py:96 +#: flatcamEditors/FlatCAMGrbEditor.py:2633 +msgid "Beveled" +msgstr "Chanfrado" + +#: flatcamEditors/FlatCAMGeoEditor.py:103 +msgid "Buffer Interior" +msgstr "Buffer Interior" + +#: flatcamEditors/FlatCAMGeoEditor.py:105 +msgid "Buffer Exterior" +msgstr "Buffer Exterior" + +#: flatcamEditors/FlatCAMGeoEditor.py:111 +msgid "Full Buffer" +msgstr "Buffer Completo" + +#: flatcamEditors/FlatCAMGeoEditor.py:132 +#: flatcamEditors/FlatCAMGeoEditor.py:3017 flatcamGUI/FlatCAMGUI.py:1928 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:190 +msgid "Buffer Tool" +msgstr "Ferramenta Buffer" + +#: flatcamEditors/FlatCAMGeoEditor.py:144 +#: flatcamEditors/FlatCAMGeoEditor.py:161 +#: flatcamEditors/FlatCAMGeoEditor.py:178 +#: flatcamEditors/FlatCAMGeoEditor.py:3036 +#: flatcamEditors/FlatCAMGeoEditor.py:3064 +#: flatcamEditors/FlatCAMGeoEditor.py:3092 +#: flatcamEditors/FlatCAMGrbEditor.py:5116 +msgid "Buffer distance value is missing or wrong format. Add it and retry." +msgstr "" +"O valor da distância do buffer está ausente ou em formato incorreto. Altere " +"e tente novamente." + +#: flatcamEditors/FlatCAMGeoEditor.py:242 +msgid "Font" +msgstr "Fonte" + +#: flatcamEditors/FlatCAMGeoEditor.py:323 flatcamGUI/FlatCAMGUI.py:2208 +msgid "Text" +msgstr "Texto" + +#: flatcamEditors/FlatCAMGeoEditor.py:349 +msgid "Text Tool" +msgstr "Ferramenta de Texto" + +#: flatcamEditors/FlatCAMGeoEditor.py:405 flatcamGUI/FlatCAMGUI.py:511 +#: flatcamGUI/FlatCAMGUI.py:1158 flatcamGUI/ObjectUI.py:818 +#: flatcamGUI/ObjectUI.py:1662 flatcamObjects/FlatCAMExcellon.py:742 +#: flatcamObjects/FlatCAMExcellon.py:1084 flatcamObjects/FlatCAMGeometry.py:759 +#: flatcamTools/ToolNCC.py:331 flatcamTools/ToolNCC.py:797 +#: flatcamTools/ToolPaint.py:314 flatcamTools/ToolPaint.py:767 +msgid "Tool" +msgstr "Ferramenta" + +#: flatcamEditors/FlatCAMGeoEditor.py:439 flatcamGUI/ObjectUI.py:364 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:43 +msgid "Tool dia" +msgstr "Diâmetro da Ferramenta" + +#: flatcamEditors/FlatCAMGeoEditor.py:441 +msgid "Diameter of the tool to be used in the operation." +msgstr "Diâmetro da ferramenta para usar na operação." + +#: flatcamEditors/FlatCAMGeoEditor.py:487 +msgid "" +"Algorithm to paint the polygons:\n" +"- Standard: Fixed step inwards.\n" +"- Seed-based: Outwards from seed.\n" +"- Line-based: Parallel lines." +msgstr "" +"Algoritmo para pintura:\n" +"- Padrão: Passo fixo para dentro.\n" +"- Baseado em semeste: Para fora a partir de uma semente.\n" +"- Linhas retas: Linhas paralelas." + +#: flatcamEditors/FlatCAMGeoEditor.py:506 +msgid "Connect:" +msgstr "Conectar:" + +#: flatcamEditors/FlatCAMGeoEditor.py:516 +msgid "Contour:" +msgstr "Contorno:" + +#: flatcamEditors/FlatCAMGeoEditor.py:529 flatcamGUI/FlatCAMGUI.py:2212 +msgid "Paint" +msgstr "Pintura" + +#: flatcamEditors/FlatCAMGeoEditor.py:547 flatcamGUI/FlatCAMGUI.py:924 +#: flatcamGUI/FlatCAMGUI.py:2628 flatcamGUI/ObjectUI.py:2139 +#: flatcamTools/ToolPaint.py:43 flatcamTools/ToolPaint.py:738 +msgid "Paint Tool" +msgstr "Ferramenta de Pintura" + +#: flatcamEditors/FlatCAMGeoEditor.py:583 +#: flatcamEditors/FlatCAMGeoEditor.py:1055 +#: flatcamEditors/FlatCAMGeoEditor.py:3024 +#: flatcamEditors/FlatCAMGeoEditor.py:3052 +#: flatcamEditors/FlatCAMGeoEditor.py:3080 +#: flatcamEditors/FlatCAMGeoEditor.py:4502 +#: flatcamEditors/FlatCAMGrbEditor.py:5767 +msgid "Cancelled. No shape selected." +msgstr "Cancelado. Nenhuma forma selecionada." + +#: flatcamEditors/FlatCAMGeoEditor.py:596 +#: flatcamEditors/FlatCAMGeoEditor.py:3042 +#: flatcamEditors/FlatCAMGeoEditor.py:3070 +#: flatcamEditors/FlatCAMGeoEditor.py:3098 +#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:59 +#: flatcamTools/ToolProperties.py:117 flatcamTools/ToolProperties.py:162 +msgid "Tools" +msgstr "Ferramentas" + +#: flatcamEditors/FlatCAMGeoEditor.py:607 +#: flatcamEditors/FlatCAMGeoEditor.py:991 +#: flatcamEditors/FlatCAMGrbEditor.py:5306 +#: flatcamEditors/FlatCAMGrbEditor.py:5703 flatcamGUI/FlatCAMGUI.py:945 +#: flatcamGUI/FlatCAMGUI.py:2649 flatcamTools/ToolTransform.py:460 +msgid "Transform Tool" +msgstr "Ferramenta Transformar" + +#: flatcamEditors/FlatCAMGeoEditor.py:608 +#: flatcamEditors/FlatCAMGeoEditor.py:673 +#: flatcamEditors/FlatCAMGrbEditor.py:5307 +#: flatcamEditors/FlatCAMGrbEditor.py:5372 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:45 +#: flatcamTools/ToolTransform.py:24 flatcamTools/ToolTransform.py:466 +msgid "Rotate" +msgstr "Girar" + +#: flatcamEditors/FlatCAMGeoEditor.py:609 +#: flatcamEditors/FlatCAMGrbEditor.py:5308 flatcamTools/ToolTransform.py:25 +msgid "Skew/Shear" +msgstr "Inclinar" + +#: flatcamEditors/FlatCAMGeoEditor.py:610 +#: flatcamEditors/FlatCAMGrbEditor.py:2680 +#: flatcamEditors/FlatCAMGrbEditor.py:5309 flatcamGUI/FlatCAMGUI.py:1063 +#: flatcamGUI/FlatCAMGUI.py:2140 flatcamGUI/FlatCAMGUI.py:2255 +#: flatcamGUI/FlatCAMGUI.py:2767 flatcamGUI/ObjectUI.py:125 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:95 +#: flatcamTools/ToolTransform.py:26 +msgid "Scale" +msgstr "Redimensionar" + +#: flatcamEditors/FlatCAMGeoEditor.py:611 +#: flatcamEditors/FlatCAMGrbEditor.py:5310 flatcamTools/ToolTransform.py:27 +msgid "Mirror (Flip)" +msgstr "Espelhar (Flip)" + +#: flatcamEditors/FlatCAMGeoEditor.py:625 +#: flatcamEditors/FlatCAMGrbEditor.py:5324 flatcamGUI/FlatCAMGUI.py:856 +#: flatcamGUI/FlatCAMGUI.py:2564 +msgid "Editor" +msgstr "Editor" + +#: flatcamEditors/FlatCAMGeoEditor.py:657 +#: flatcamEditors/FlatCAMGrbEditor.py:5356 +msgid "Angle:" +msgstr "Ângulo:" + +#: flatcamEditors/FlatCAMGeoEditor.py:659 +#: flatcamEditors/FlatCAMGrbEditor.py:5358 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:55 +#: flatcamTools/ToolTransform.py:62 +msgid "" +"Angle for Rotation action, in degrees.\n" +"Float number between -360 and 359.\n" +"Positive numbers for CW motion.\n" +"Negative numbers for CCW motion." +msgstr "" +"Ângulo para a ação Rotação, em graus. \n" +"Número flutuante entre -360 e 359. \n" +"Números positivos para movimento horário. \n" +"Números negativos para movimento anti-horário." + +#: flatcamEditors/FlatCAMGeoEditor.py:675 +#: flatcamEditors/FlatCAMGrbEditor.py:5374 +msgid "" +"Rotate the selected shape(s).\n" +"The point of reference is the middle of\n" +"the bounding box for all selected shapes." +msgstr "" +"Gira a(s) forma(s) selecionada(s). \n" +"O ponto de referência é o meio da caixa\n" +"delimitadora para todas as formas selecionadas." + +#: flatcamEditors/FlatCAMGeoEditor.py:698 +#: flatcamEditors/FlatCAMGrbEditor.py:5397 +msgid "Angle X:" +msgstr "Ângulo X:" + +#: flatcamEditors/FlatCAMGeoEditor.py:700 +#: flatcamEditors/FlatCAMGeoEditor.py:720 +#: flatcamEditors/FlatCAMGrbEditor.py:5399 +#: flatcamEditors/FlatCAMGrbEditor.py:5419 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:74 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:88 +#: flatcamTools/ToolCalibration.py:505 flatcamTools/ToolCalibration.py:518 +msgid "" +"Angle for Skew action, in degrees.\n" +"Float number between -360 and 359." +msgstr "" +"Ângulo de inclinação, em graus.\n" +"Número flutuante entre -360 e 359." + +#: flatcamEditors/FlatCAMGeoEditor.py:711 +#: flatcamEditors/FlatCAMGrbEditor.py:5410 flatcamTools/ToolTransform.py:467 +msgid "Skew X" +msgstr "Inclinar X" + +#: flatcamEditors/FlatCAMGeoEditor.py:713 +#: flatcamEditors/FlatCAMGeoEditor.py:733 +#: flatcamEditors/FlatCAMGrbEditor.py:5412 +#: flatcamEditors/FlatCAMGrbEditor.py:5432 +msgid "" +"Skew/shear the selected shape(s).\n" +"The point of reference is the middle of\n" +"the bounding box for all selected shapes." +msgstr "" +"Inclinar/distorcer a(s) forma(s) selecionada(s).\n" +"O ponto de referência é o meio da caixa\n" +"delimitadora para todas as formas selecionadas." + +#: flatcamEditors/FlatCAMGeoEditor.py:718 +#: flatcamEditors/FlatCAMGrbEditor.py:5417 +msgid "Angle Y:" +msgstr "Ângulo Y:" + +#: flatcamEditors/FlatCAMGeoEditor.py:731 +#: flatcamEditors/FlatCAMGrbEditor.py:5430 flatcamTools/ToolTransform.py:468 +msgid "Skew Y" +msgstr "Inclinar Y" + +#: flatcamEditors/FlatCAMGeoEditor.py:759 +#: flatcamEditors/FlatCAMGrbEditor.py:5458 +msgid "Factor X:" +msgstr "Fator X:" + +#: flatcamEditors/FlatCAMGeoEditor.py:761 +#: flatcamEditors/FlatCAMGrbEditor.py:5460 flatcamTools/ToolCalibration.py:469 +msgid "Factor for Scale action over X axis." +msgstr "Fator de escala sobre o eixo X." + +#: flatcamEditors/FlatCAMGeoEditor.py:771 +#: flatcamEditors/FlatCAMGrbEditor.py:5470 flatcamTools/ToolTransform.py:469 +msgid "Scale X" +msgstr "Redimensionar X" + +#: flatcamEditors/FlatCAMGeoEditor.py:773 +#: flatcamEditors/FlatCAMGeoEditor.py:792 +#: flatcamEditors/FlatCAMGrbEditor.py:5472 +#: flatcamEditors/FlatCAMGrbEditor.py:5491 +msgid "" +"Scale the selected shape(s).\n" +"The point of reference depends on \n" +"the Scale reference checkbox state." +msgstr "" +"Redimensiona a(s) forma(s) selecionada(s).\n" +"O ponto de referência depende\n" +"do estado da caixa de seleção." + +#: flatcamEditors/FlatCAMGeoEditor.py:778 +#: flatcamEditors/FlatCAMGrbEditor.py:5477 +msgid "Factor Y:" +msgstr "Fator Y:" + +#: flatcamEditors/FlatCAMGeoEditor.py:780 +#: flatcamEditors/FlatCAMGrbEditor.py:5479 flatcamTools/ToolCalibration.py:481 +msgid "Factor for Scale action over Y axis." +msgstr "Fator para ação de escala no eixo Y." + +#: flatcamEditors/FlatCAMGeoEditor.py:790 +#: flatcamEditors/FlatCAMGrbEditor.py:5489 flatcamTools/ToolTransform.py:470 +msgid "Scale Y" +msgstr "Redimensionar Y" + +#: flatcamEditors/FlatCAMGeoEditor.py:799 +#: flatcamEditors/FlatCAMGrbEditor.py:5498 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:124 +#: flatcamTools/ToolTransform.py:189 +msgid "Link" +msgstr "Fixar Taxa" + +#: flatcamEditors/FlatCAMGeoEditor.py:801 +#: flatcamEditors/FlatCAMGrbEditor.py:5500 +msgid "" +"Scale the selected shape(s)\n" +"using the Scale Factor X for both axis." +msgstr "" +"Redimensiona a(s) forma(s) selecionada(s)\n" +"usando o Fator de Escala X para ambos os eixos." + +#: flatcamEditors/FlatCAMGeoEditor.py:807 +#: flatcamEditors/FlatCAMGrbEditor.py:5506 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:132 +#: flatcamTools/ToolTransform.py:196 +msgid "Scale Reference" +msgstr "Referência de escala" + +#: flatcamEditors/FlatCAMGeoEditor.py:809 +#: flatcamEditors/FlatCAMGrbEditor.py:5508 +msgid "" +"Scale the selected shape(s)\n" +"using the origin reference when checked,\n" +"and the center of the biggest bounding box\n" +"of the selected shapes when unchecked." +msgstr "" +"Redimensiona a(s) forma(s) selecionada(s)\n" +"usando a referência de origem quando marcada,\n" +"e o centro da maior caixa delimitadora\n" +"de formas selecionadas quando desmarcado." + +#: flatcamEditors/FlatCAMGeoEditor.py:837 +#: flatcamEditors/FlatCAMGrbEditor.py:5537 +msgid "Value X:" +msgstr "Valor X:" + +#: flatcamEditors/FlatCAMGeoEditor.py:839 +#: flatcamEditors/FlatCAMGrbEditor.py:5539 +msgid "Value for Offset action on X axis." +msgstr "Valor para o deslocamento no eixo X." + +#: flatcamEditors/FlatCAMGeoEditor.py:849 +#: flatcamEditors/FlatCAMGrbEditor.py:5549 flatcamTools/ToolTransform.py:473 +msgid "Offset X" +msgstr "Deslocar X" + +#: flatcamEditors/FlatCAMGeoEditor.py:851 +#: flatcamEditors/FlatCAMGeoEditor.py:871 +#: flatcamEditors/FlatCAMGrbEditor.py:5551 +#: flatcamEditors/FlatCAMGrbEditor.py:5571 +msgid "" +"Offset the selected shape(s).\n" +"The point of reference is the middle of\n" +"the bounding box for all selected shapes.\n" +msgstr "" +"Desloca a(s) forma(s) selecionada(s).\n" +"O ponto de referência é o meio da\n" +"caixa delimitadora para todas as formas selecionadas.\n" + +#: flatcamEditors/FlatCAMGeoEditor.py:857 +#: flatcamEditors/FlatCAMGrbEditor.py:5557 +msgid "Value Y:" +msgstr "Valor Y:" + +#: flatcamEditors/FlatCAMGeoEditor.py:859 +#: flatcamEditors/FlatCAMGrbEditor.py:5559 +msgid "Value for Offset action on Y axis." +msgstr "Valor para a ação de deslocamento no eixo Y." + +#: flatcamEditors/FlatCAMGeoEditor.py:869 +#: flatcamEditors/FlatCAMGrbEditor.py:5569 flatcamTools/ToolTransform.py:474 +msgid "Offset Y" +msgstr "Deslocar Y" + +#: flatcamEditors/FlatCAMGeoEditor.py:900 +#: flatcamEditors/FlatCAMGrbEditor.py:5600 flatcamTools/ToolTransform.py:475 +msgid "Flip on X" +msgstr "Espelhar no X" + +#: flatcamEditors/FlatCAMGeoEditor.py:902 +#: flatcamEditors/FlatCAMGeoEditor.py:909 +#: flatcamEditors/FlatCAMGrbEditor.py:5602 +#: flatcamEditors/FlatCAMGrbEditor.py:5609 +msgid "" +"Flip the selected shape(s) over the X axis.\n" +"Does not create a new shape." +msgstr "" +"Espelha as formas selecionadas sobre o eixo X.\n" +"Não cria uma nova forma." + +#: flatcamEditors/FlatCAMGeoEditor.py:907 +#: flatcamEditors/FlatCAMGrbEditor.py:5607 flatcamTools/ToolTransform.py:476 +msgid "Flip on Y" +msgstr "Espelhar no Y" + +#: flatcamEditors/FlatCAMGeoEditor.py:915 +#: flatcamEditors/FlatCAMGrbEditor.py:5615 +msgid "Ref Pt" +msgstr "Ponto de Referência" + +#: flatcamEditors/FlatCAMGeoEditor.py:917 +#: flatcamEditors/FlatCAMGrbEditor.py:5617 +msgid "" +"Flip the selected shape(s)\n" +"around the point in Point Entry Field.\n" +"\n" +"The point coordinates can be captured by\n" +"left click on canvas together with pressing\n" +"SHIFT key. \n" +"Then click Add button to insert coordinates.\n" +"Or enter the coords in format (x, y) in the\n" +"Point Entry field and click Flip on X(Y)" +msgstr "" +"Espelha a(s) forma(s) selecionada(s)\n" +"em relação às coordenadas abaixo.\n" +"\n" +"As coordenadas do ponto podem ser inseridas:\n" +"- com clique no botão esquerdo junto com a tecla\n" +" SHIFT pressionada, e clicar no botão Adicionar.\n" +"- ou digitar as coordenadas no formato (x, y) no campo\n" +" Ponto de Ref. e clicar em Espelhar no X(Y)" + +#: flatcamEditors/FlatCAMGeoEditor.py:929 +#: flatcamEditors/FlatCAMGrbEditor.py:5629 +msgid "Point:" +msgstr "Ponto:" + +#: flatcamEditors/FlatCAMGeoEditor.py:931 +#: flatcamEditors/FlatCAMGrbEditor.py:5631 flatcamTools/ToolTransform.py:299 +msgid "" +"Coordinates in format (x, y) used as reference for mirroring.\n" +"The 'x' in (x, y) will be used when using Flip on X and\n" +"the 'y' in (x, y) will be used when using Flip on Y." +msgstr "" +"Coordenadas no formato (x, y) usadas como referência para espelhamento. \n" +"O 'x' em (x, y) será usado ao usar Espelhar em X e\n" +"o 'y' em (x, y) será usado ao usar Espelhar em Y." + +#: flatcamEditors/FlatCAMGeoEditor.py:941 +#: flatcamEditors/FlatCAMGrbEditor.py:5643 flatcamTools/ToolTransform.py:309 +msgid "" +"The point coordinates can be captured by\n" +"left click on canvas together with pressing\n" +"SHIFT key. Then click Add button to insert." +msgstr "" +"As coordenadas do ponto podem ser capturadas por\n" +"botão esquerdo na tela junto com a tecla\n" +"SHIFT pressionada. Em seguida, clique no botão Adicionar para inserir." + +#: flatcamEditors/FlatCAMGeoEditor.py:1304 +#: flatcamEditors/FlatCAMGrbEditor.py:5951 +msgid "No shape selected. Please Select a shape to rotate!" +msgstr "Nenhuma forma selecionada. Por favor, selecione uma forma para girar!" + +#: flatcamEditors/FlatCAMGeoEditor.py:1307 +#: flatcamEditors/FlatCAMGrbEditor.py:5954 flatcamTools/ToolTransform.py:679 +msgid "Appying Rotate" +msgstr "Aplicando Girar" + +#: flatcamEditors/FlatCAMGeoEditor.py:1333 +#: flatcamEditors/FlatCAMGrbEditor.py:5986 +msgid "Done. Rotate completed." +msgstr "Girar concluído." + +#: flatcamEditors/FlatCAMGeoEditor.py:1335 +msgid "Rotation action was not executed" +msgstr "O giro não foi executado" + +#: flatcamEditors/FlatCAMGeoEditor.py:1354 +#: flatcamEditors/FlatCAMGrbEditor.py:6005 +msgid "No shape selected. Please Select a shape to flip!" +msgstr "" +"Nenhuma forma selecionada. Por favor, selecione uma forma para espelhar!" + +#: flatcamEditors/FlatCAMGeoEditor.py:1357 +#: flatcamEditors/FlatCAMGrbEditor.py:6008 flatcamTools/ToolTransform.py:728 +msgid "Applying Flip" +msgstr "Aplicando Espelhamento" + +#: flatcamEditors/FlatCAMGeoEditor.py:1386 +#: flatcamEditors/FlatCAMGrbEditor.py:6046 flatcamTools/ToolTransform.py:769 +msgid "Flip on the Y axis done" +msgstr "Concluído o espelhamento no eixo Y" + +#: flatcamEditors/FlatCAMGeoEditor.py:1390 +#: flatcamEditors/FlatCAMGrbEditor.py:6055 flatcamTools/ToolTransform.py:778 +msgid "Flip on the X axis done" +msgstr "Concluído o espelhamento no eixo Y" + +#: flatcamEditors/FlatCAMGeoEditor.py:1398 +msgid "Flip action was not executed" +msgstr "O espelhamento não foi executado" + +#: flatcamEditors/FlatCAMGeoEditor.py:1416 +#: flatcamEditors/FlatCAMGrbEditor.py:6075 +msgid "No shape selected. Please Select a shape to shear/skew!" +msgstr "" +"Nenhuma forma selecionada. Por favor, selecione uma forma para inclinar!" + +#: flatcamEditors/FlatCAMGeoEditor.py:1419 +#: flatcamEditors/FlatCAMGrbEditor.py:6078 flatcamTools/ToolTransform.py:801 +msgid "Applying Skew" +msgstr "Inclinando" + +#: flatcamEditors/FlatCAMGeoEditor.py:1442 +#: flatcamEditors/FlatCAMGrbEditor.py:6112 +msgid "Skew on the X axis done" +msgstr "Inclinação no eixo X concluída" + +#: flatcamEditors/FlatCAMGeoEditor.py:1444 +#: flatcamEditors/FlatCAMGrbEditor.py:6114 +msgid "Skew on the Y axis done" +msgstr "Inclinação no eixo Y concluída" + +#: flatcamEditors/FlatCAMGeoEditor.py:1447 +msgid "Skew action was not executed" +msgstr "A inclinação não foi executada" + +#: flatcamEditors/FlatCAMGeoEditor.py:1469 +#: flatcamEditors/FlatCAMGrbEditor.py:6136 +msgid "No shape selected. Please Select a shape to scale!" +msgstr "" +"Nenhuma forma selecionada. Por favor, selecione uma forma para redimensionar!" + +#: flatcamEditors/FlatCAMGeoEditor.py:1472 +#: flatcamEditors/FlatCAMGrbEditor.py:6139 flatcamTools/ToolTransform.py:847 +msgid "Applying Scale" +msgstr "Redimensionando" + +#: flatcamEditors/FlatCAMGeoEditor.py:1504 +#: flatcamEditors/FlatCAMGrbEditor.py:6176 +msgid "Scale on the X axis done" +msgstr "Redimensionamento no eixo X concluído" + +#: flatcamEditors/FlatCAMGeoEditor.py:1506 +#: flatcamEditors/FlatCAMGrbEditor.py:6178 +msgid "Scale on the Y axis done" +msgstr "Redimensionamento no eixo Y concluído" + +#: flatcamEditors/FlatCAMGeoEditor.py:1508 +msgid "Scale action was not executed" +msgstr "O redimensionamento não foi executado" + +#: flatcamEditors/FlatCAMGeoEditor.py:1523 +#: flatcamEditors/FlatCAMGrbEditor.py:6195 +msgid "No shape selected. Please Select a shape to offset!" +msgstr "" +"Nenhuma forma selecionada. Por favor, selecione uma forma para deslocar!" + +#: flatcamEditors/FlatCAMGeoEditor.py:1526 +#: flatcamEditors/FlatCAMGrbEditor.py:6198 flatcamTools/ToolTransform.py:897 +msgid "Applying Offset" +msgstr "Deslocando" + +#: flatcamEditors/FlatCAMGeoEditor.py:1536 +#: flatcamEditors/FlatCAMGrbEditor.py:6219 +msgid "Offset on the X axis done" +msgstr "Deslocamento no eixo X concluído" + +#: flatcamEditors/FlatCAMGeoEditor.py:1538 +#: flatcamEditors/FlatCAMGrbEditor.py:6221 +msgid "Offset on the Y axis done" +msgstr "Deslocamento no eixo Y concluído" + +#: flatcamEditors/FlatCAMGeoEditor.py:1541 +msgid "Offset action was not executed" +msgstr "O deslocamento não foi executado" + +#: flatcamEditors/FlatCAMGeoEditor.py:1545 +#: flatcamEditors/FlatCAMGrbEditor.py:6228 +msgid "Rotate ..." +msgstr "Girar ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:1546 +#: flatcamEditors/FlatCAMGeoEditor.py:1601 +#: flatcamEditors/FlatCAMGeoEditor.py:1618 +#: flatcamEditors/FlatCAMGrbEditor.py:6229 +#: flatcamEditors/FlatCAMGrbEditor.py:6278 +#: flatcamEditors/FlatCAMGrbEditor.py:6293 +msgid "Enter an Angle Value (degrees)" +msgstr "Digite um valor para o ângulo (graus)" + +#: flatcamEditors/FlatCAMGeoEditor.py:1555 +#: flatcamEditors/FlatCAMGrbEditor.py:6237 +msgid "Geometry shape rotate done" +msgstr "Rotação da geometria concluída" + +#: flatcamEditors/FlatCAMGeoEditor.py:1559 +#: flatcamEditors/FlatCAMGrbEditor.py:6240 +msgid "Geometry shape rotate cancelled" +msgstr "Rotação da geometria cancelada" + +#: flatcamEditors/FlatCAMGeoEditor.py:1564 +#: flatcamEditors/FlatCAMGrbEditor.py:6245 +msgid "Offset on X axis ..." +msgstr "Deslocamento no eixo X ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:1565 +#: flatcamEditors/FlatCAMGeoEditor.py:1584 +#: flatcamEditors/FlatCAMGrbEditor.py:6246 +#: flatcamEditors/FlatCAMGrbEditor.py:6263 +msgid "Enter a distance Value" +msgstr "Digite um valor para a distância" + +#: flatcamEditors/FlatCAMGeoEditor.py:1574 +#: flatcamEditors/FlatCAMGrbEditor.py:6254 +msgid "Geometry shape offset on X axis done" +msgstr "Deslocamento da forma no eixo X concluído" + +#: flatcamEditors/FlatCAMGeoEditor.py:1578 +#: flatcamEditors/FlatCAMGrbEditor.py:6257 +msgid "Geometry shape offset X cancelled" +msgstr "Deslocamento da forma no eixo X cancelado" + +#: flatcamEditors/FlatCAMGeoEditor.py:1583 +#: flatcamEditors/FlatCAMGrbEditor.py:6262 +msgid "Offset on Y axis ..." +msgstr "Deslocamento no eixo Y ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:1593 +#: flatcamEditors/FlatCAMGrbEditor.py:6271 +msgid "Geometry shape offset on Y axis done" +msgstr "Deslocamento da forma no eixo Y concluído" + +#: flatcamEditors/FlatCAMGeoEditor.py:1597 +msgid "Geometry shape offset on Y axis canceled" +msgstr "Deslocamento da forma no eixo Y cancelado" + +#: flatcamEditors/FlatCAMGeoEditor.py:1600 +#: flatcamEditors/FlatCAMGrbEditor.py:6277 +msgid "Skew on X axis ..." +msgstr "Inclinação no eixo X ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:1610 +#: flatcamEditors/FlatCAMGrbEditor.py:6286 +msgid "Geometry shape skew on X axis done" +msgstr "Inclinação no eixo X concluída" + +#: flatcamEditors/FlatCAMGeoEditor.py:1614 +msgid "Geometry shape skew on X axis canceled" +msgstr "Inclinação no eixo X cancelada" + +#: flatcamEditors/FlatCAMGeoEditor.py:1617 +#: flatcamEditors/FlatCAMGrbEditor.py:6292 +msgid "Skew on Y axis ..." +msgstr "Inclinação no eixo Y ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:1627 +#: flatcamEditors/FlatCAMGrbEditor.py:6301 +msgid "Geometry shape skew on Y axis done" +msgstr "Inclinação no eixo Y concluída" + +#: flatcamEditors/FlatCAMGeoEditor.py:1631 +msgid "Geometry shape skew on Y axis canceled" +msgstr "Inclinação no eixo Y cancelada" + +#: flatcamEditors/FlatCAMGeoEditor.py:2008 +#: flatcamEditors/FlatCAMGeoEditor.py:2079 +#: flatcamEditors/FlatCAMGrbEditor.py:1437 +#: flatcamEditors/FlatCAMGrbEditor.py:1515 +msgid "Click on Center point ..." +msgstr "Clique no ponto central ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:2021 +#: flatcamEditors/FlatCAMGrbEditor.py:1447 +msgid "Click on Perimeter point to complete ..." +msgstr "Clique no ponto Perímetro para completar ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:2053 +msgid "Done. Adding Circle completed." +msgstr "Círculo adicionado." + +#: flatcamEditors/FlatCAMGeoEditor.py:2107 +#: flatcamEditors/FlatCAMGrbEditor.py:1548 +msgid "Click on Start point ..." +msgstr "Clique no ponto inicial ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:2109 +#: flatcamEditors/FlatCAMGrbEditor.py:1550 +msgid "Click on Point3 ..." +msgstr "Clique no ponto 3 ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:2111 +#: flatcamEditors/FlatCAMGrbEditor.py:1552 +msgid "Click on Stop point ..." +msgstr "Clique no ponto de parada ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:2116 +#: flatcamEditors/FlatCAMGrbEditor.py:1557 +msgid "Click on Stop point to complete ..." +msgstr "Clique no ponto de parada para completar ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:2118 +#: flatcamEditors/FlatCAMGrbEditor.py:1559 +msgid "Click on Point2 to complete ..." +msgstr "Clique no ponto 2 para completar ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:2120 +#: flatcamEditors/FlatCAMGrbEditor.py:1561 +msgid "Click on Center point to complete ..." +msgstr "Clique no ponto central para completar ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:2132 +#, python-format +msgid "Direction: %s" +msgstr "Direção: %s" + +#: flatcamEditors/FlatCAMGeoEditor.py:2146 +#: flatcamEditors/FlatCAMGrbEditor.py:1587 +msgid "Mode: Start -> Stop -> Center. Click on Start point ..." +msgstr "Modo: Iniciar -> Parar -> Centro. Clique no ponto inicial ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:2149 +#: flatcamEditors/FlatCAMGrbEditor.py:1590 +msgid "Mode: Point1 -> Point3 -> Point2. Click on Point1 ..." +msgstr "Modo: Ponto 1 -> Ponto 3 -> Ponto 2. Clique no Ponto 1 ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:2152 +#: flatcamEditors/FlatCAMGrbEditor.py:1593 +msgid "Mode: Center -> Start -> Stop. Click on Center point ..." +msgstr "Modo: Centro -> Iniciar -> Parar. Clique no ponto central ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:2293 +msgid "Done. Arc completed." +msgstr "Arco adicionado." + +#: flatcamEditors/FlatCAMGeoEditor.py:2324 +#: flatcamEditors/FlatCAMGeoEditor.py:2397 +msgid "Click on 1st corner ..." +msgstr "Clique no primeiro canto ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:2336 +msgid "Click on opposite corner to complete ..." +msgstr "Clique no canto oposto para completar ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:2366 +msgid "Done. Rectangle completed." +msgstr "Retângulo adicionado." + +#: flatcamEditors/FlatCAMGeoEditor.py:2410 +#: flatcamObjects/FlatCAMGeometry.py:2648 flatcamTools/ToolNCC.py:1733 +#: flatcamTools/ToolPaint.py:1628 +msgid "Click on next Point or click right mouse button to complete ..." +msgstr "" +"Clique no próximo ponto ou clique com o botão direito do mouse para " +"completar ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:2441 +msgid "Done. Polygon completed." +msgstr "Polígono adicionado." + +#: flatcamEditors/FlatCAMGeoEditor.py:2455 +#: flatcamEditors/FlatCAMGeoEditor.py:2520 +#: flatcamEditors/FlatCAMGrbEditor.py:1113 +#: flatcamEditors/FlatCAMGrbEditor.py:1324 +msgid "Backtracked one point ..." +msgstr "Retrocedeu um ponto ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:2498 +msgid "Done. Path completed." +msgstr "Caminho concluído." + +#: flatcamEditors/FlatCAMGeoEditor.py:2657 +msgid "No shape selected. Select a shape to explode" +msgstr "Nenhuma forma selecionada. Selecione uma forma para explodir" + +#: flatcamEditors/FlatCAMGeoEditor.py:2690 +msgid "Done. Polygons exploded into lines." +msgstr "Polígono explodido em linhas." + +#: flatcamEditors/FlatCAMGeoEditor.py:2722 +msgid "MOVE: No shape selected. Select a shape to move" +msgstr "MOVER: Nenhuma forma selecionada. Selecione uma forma para mover" + +#: flatcamEditors/FlatCAMGeoEditor.py:2725 +#: flatcamEditors/FlatCAMGeoEditor.py:2745 +msgid " MOVE: Click on reference point ..." +msgstr " MOVER: Clique no ponto de referência ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:2730 +msgid " Click on destination point ..." +msgstr " Clique no ponto de destino ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:2770 +msgid "Done. Geometry(s) Move completed." +msgstr "Movimento de Geometria(s) concluído." + +#: flatcamEditors/FlatCAMGeoEditor.py:2903 +msgid "Done. Geometry(s) Copy completed." +msgstr "Geometria(s) copiada(s)." + +#: flatcamEditors/FlatCAMGeoEditor.py:2934 +#: flatcamEditors/FlatCAMGrbEditor.py:899 +msgid "Click on 1st point ..." +msgstr "Clique no primeiro ponto ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:2958 +msgid "" +"Font not supported. Only Regular, Bold, Italic and BoldItalic are supported. " +"Error" +msgstr "" +"Fonte não suportada. Apenas Regular, Bold, Italic e BoldItalic são " +"suportados. Erro" + +#: flatcamEditors/FlatCAMGeoEditor.py:2966 +msgid "No text to add." +msgstr "Nenhum texto para adicionar." + +#: flatcamEditors/FlatCAMGeoEditor.py:2976 +msgid " Done. Adding Text completed." +msgstr " Texto adicionado." + +#: flatcamEditors/FlatCAMGeoEditor.py:3013 +msgid "Create buffer geometry ..." +msgstr "Criar buffer de geometria ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:3048 +#: flatcamEditors/FlatCAMGrbEditor.py:5160 +msgid "Done. Buffer Tool completed." +msgstr "Buffer concluído." + +#: flatcamEditors/FlatCAMGeoEditor.py:3076 +msgid "Done. Buffer Int Tool completed." +msgstr "Buffer Interno concluído." + +#: flatcamEditors/FlatCAMGeoEditor.py:3104 +msgid "Done. Buffer Ext Tool completed." +msgstr "Buffer Externo concluído." + +#: flatcamEditors/FlatCAMGeoEditor.py:3153 +#: flatcamEditors/FlatCAMGrbEditor.py:2153 +msgid "Select a shape to act as deletion area ..." +msgstr "Selecione uma forma para atuar como área de exclusão ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:3155 +#: flatcamEditors/FlatCAMGeoEditor.py:3181 +#: flatcamEditors/FlatCAMGeoEditor.py:3187 +#: flatcamEditors/FlatCAMGrbEditor.py:2155 +msgid "Click to pick-up the erase shape..." +msgstr "Clique para pegar a forma a apagar ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:3191 +#: flatcamEditors/FlatCAMGrbEditor.py:2214 +msgid "Click to erase ..." +msgstr "Clique para apagar ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:3220 +#: flatcamEditors/FlatCAMGrbEditor.py:2247 +msgid "Done. Eraser tool action completed." +msgstr "Apagado." + +#: flatcamEditors/FlatCAMGeoEditor.py:3270 +msgid "Create Paint geometry ..." +msgstr "Criar geometria de pintura ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:3283 +#: flatcamEditors/FlatCAMGrbEditor.py:2410 +msgid "Shape transformations ..." +msgstr "Transformações de forma ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:3339 +#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:27 +msgid "Geometry Editor" +msgstr "Editor de Geometria" + +#: flatcamEditors/FlatCAMGeoEditor.py:3345 +#: flatcamEditors/FlatCAMGrbEditor.py:2488 +#: flatcamEditors/FlatCAMGrbEditor.py:3969 flatcamGUI/ObjectUI.py:263 +#: flatcamGUI/ObjectUI.py:1497 flatcamGUI/ObjectUI.py:2326 +#: flatcamTools/ToolCutOut.py:95 +msgid "Type" +msgstr "Tipo" + +#: flatcamEditors/FlatCAMGeoEditor.py:3345 flatcamGUI/ObjectUI.py:218 +#: flatcamGUI/ObjectUI.py:742 flatcamGUI/ObjectUI.py:1433 +#: flatcamGUI/ObjectUI.py:2235 flatcamGUI/ObjectUI.py:2539 +#: flatcamGUI/ObjectUI.py:2606 flatcamTools/ToolCalibration.py:234 +#: flatcamTools/ToolFiducials.py:73 +msgid "Name" +msgstr "Nome" + +#: flatcamEditors/FlatCAMGeoEditor.py:3587 +msgid "Ring" +msgstr "Anel" + +#: flatcamEditors/FlatCAMGeoEditor.py:3589 +msgid "Line" +msgstr "Linha" + +#: flatcamEditors/FlatCAMGeoEditor.py:3591 flatcamGUI/FlatCAMGUI.py:2202 +#: flatcamGUI/ObjectUI.py:2074 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:218 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:328 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:292 +#: flatcamTools/ToolNCC.py:584 flatcamTools/ToolPaint.py:528 +msgid "Polygon" +msgstr "Polígono" + +#: flatcamEditors/FlatCAMGeoEditor.py:3593 +msgid "Multi-Line" +msgstr "Múlti-Linha" + +#: flatcamEditors/FlatCAMGeoEditor.py:3595 +msgid "Multi-Polygon" +msgstr "Múlti-Polígono" + +#: flatcamEditors/FlatCAMGeoEditor.py:3602 +msgid "Geo Elem" +msgstr "Elem Geo" + +#: flatcamEditors/FlatCAMGeoEditor.py:4076 +msgid "Editing MultiGeo Geometry, tool" +msgstr "Editando Geometria MultiGeo, ferramenta" + +#: flatcamEditors/FlatCAMGeoEditor.py:4078 +msgid "with diameter" +msgstr "com diâmetro" + +#: flatcamEditors/FlatCAMGeoEditor.py:4509 flatcamGUI/FlatCAMGUI.py:3753 +#: flatcamGUI/FlatCAMGUI.py:3799 flatcamGUI/FlatCAMGUI.py:3817 +#: flatcamGUI/FlatCAMGUI.py:3961 flatcamGUI/FlatCAMGUI.py:4000 +#: flatcamGUI/FlatCAMGUI.py:4012 flatcamGUI/FlatCAMGUI.py:4029 +msgid "Click on target point." +msgstr "Clique no ponto alvo." + +#: flatcamEditors/FlatCAMGeoEditor.py:4823 +#: flatcamEditors/FlatCAMGeoEditor.py:4858 +msgid "A selection of at least 2 geo items is required to do Intersection." +msgstr "" +"É necessária uma seleção de pelo menos 2 itens geométricos para fazer a " +"interseção." + +#: flatcamEditors/FlatCAMGeoEditor.py:4944 +#: flatcamEditors/FlatCAMGeoEditor.py:5048 +msgid "" +"Negative buffer value is not accepted. Use Buffer interior to generate an " +"'inside' shape" +msgstr "" +"Valor de buffer negativo não é aceito. Use o Buffer interior para gerar uma " +"forma 'interna'" + +#: flatcamEditors/FlatCAMGeoEditor.py:4954 +#: flatcamEditors/FlatCAMGeoEditor.py:5007 +#: flatcamEditors/FlatCAMGeoEditor.py:5057 +msgid "Nothing selected for buffering." +msgstr "Nada selecionado para armazenamento em buffer." + +#: flatcamEditors/FlatCAMGeoEditor.py:4959 +#: flatcamEditors/FlatCAMGeoEditor.py:5011 +#: flatcamEditors/FlatCAMGeoEditor.py:5062 +msgid "Invalid distance for buffering." +msgstr "Distância inválida para armazenamento em buffer." + +#: flatcamEditors/FlatCAMGeoEditor.py:4983 +#: flatcamEditors/FlatCAMGeoEditor.py:5082 +msgid "Failed, the result is empty. Choose a different buffer value." +msgstr "" +"Falhou, o resultado está vazio. Escolha um valor diferente para o buffer." + +#: flatcamEditors/FlatCAMGeoEditor.py:4994 +msgid "Full buffer geometry created." +msgstr "Buffer de geometria completa criado." + +#: flatcamEditors/FlatCAMGeoEditor.py:5000 +msgid "Negative buffer value is not accepted." +msgstr "Valor de buffer negativo não é aceito." + +#: flatcamEditors/FlatCAMGeoEditor.py:5031 +msgid "Failed, the result is empty. Choose a smaller buffer value." +msgstr "Falhou, o resultado está vazio. Escolha um valor menor para o buffer." + +#: flatcamEditors/FlatCAMGeoEditor.py:5041 +msgid "Interior buffer geometry created." +msgstr "Buffer de Geometria interna criado." + +#: flatcamEditors/FlatCAMGeoEditor.py:5092 +msgid "Exterior buffer geometry created." +msgstr "Buffer de Geometria externa criado." + +#: flatcamEditors/FlatCAMGeoEditor.py:5098 +#, python-format +msgid "Could not do Paint. Overlap value has to be less than 100%%." +msgstr "" +"Não foi possível Pintar. O valor de sobreposição deve ser menor do que 100%%." + +#: flatcamEditors/FlatCAMGeoEditor.py:5105 +msgid "Nothing selected for painting." +msgstr "Nada selecionado para pintura." + +#: flatcamEditors/FlatCAMGeoEditor.py:5111 +msgid "Invalid value for" +msgstr "Valor inválido para" + +#: flatcamEditors/FlatCAMGeoEditor.py:5170 +msgid "" +"Could not do Paint. Try a different combination of parameters. Or a " +"different method of Paint" +msgstr "" +"Não foi possível pintar. Tente uma combinação diferente de parâmetros, ou um " +"método diferente de Pintura" + +#: flatcamEditors/FlatCAMGeoEditor.py:5181 +msgid "Paint done." +msgstr "Pintura concluída." + +#: flatcamEditors/FlatCAMGrbEditor.py:213 +msgid "To add an Pad first select a aperture in Aperture Table" +msgstr "" +"Para adicionar um Pad, primeiro selecione uma abertura na Tabela de Aberturas" + +#: flatcamEditors/FlatCAMGrbEditor.py:220 +#: flatcamEditors/FlatCAMGrbEditor.py:420 +msgid "Aperture size is zero. It needs to be greater than zero." +msgstr "O tamanho da abertura é zero. Precisa ser maior que zero." + +#: flatcamEditors/FlatCAMGrbEditor.py:373 +#: flatcamEditors/FlatCAMGrbEditor.py:686 +msgid "" +"Incompatible aperture type. Select an aperture with type 'C', 'R' or 'O'." +msgstr "" +"Tipo de abertura incompatível. Selecione uma abertura do tipo 'C', 'R' ou " +"'O'." + +#: flatcamEditors/FlatCAMGrbEditor.py:385 +msgid "Done. Adding Pad completed." +msgstr "Pad adicionado." + +#: flatcamEditors/FlatCAMGrbEditor.py:412 +msgid "To add an Pad Array first select a aperture in Aperture Table" +msgstr "" +"Para adicionar uma Matriz de Pads, primeiro selecione uma abertura na Tabela " +"de Aberturas" + +#: flatcamEditors/FlatCAMGrbEditor.py:492 +msgid "Click on the Pad Circular Array Start position" +msgstr "Clique na posição inicial da Matriz Circular de Pads" + +#: flatcamEditors/FlatCAMGrbEditor.py:712 +msgid "Too many Pads for the selected spacing angle." +msgstr "Muitos Pads para o ângulo de espaçamento selecionado." + +#: flatcamEditors/FlatCAMGrbEditor.py:735 +msgid "Done. Pad Array added." +msgstr "Matriz de pads adicionada." + +#: flatcamEditors/FlatCAMGrbEditor.py:760 +msgid "Select shape(s) and then click ..." +msgstr "Selecione a(s) forma(s) e então clique ..." + +#: flatcamEditors/FlatCAMGrbEditor.py:772 +msgid "Failed. Nothing selected." +msgstr "Falhou. Nada selecionado." + +#: flatcamEditors/FlatCAMGrbEditor.py:788 +msgid "" +"Failed. Poligonize works only on geometries belonging to the same aperture." +msgstr "" +"Falhou. Poligonize funciona apenas em geometrias pertencentes à mesma " +"abertura." + +#: flatcamEditors/FlatCAMGrbEditor.py:842 +msgid "Done. Poligonize completed." +msgstr "Poligonizar concluído." + +#: flatcamEditors/FlatCAMGrbEditor.py:897 +#: flatcamEditors/FlatCAMGrbEditor.py:1130 +#: flatcamEditors/FlatCAMGrbEditor.py:1154 +msgid "Corner Mode 1: 45 degrees ..." +msgstr "Canto Modo 1: 45 graus ..." + +#: flatcamEditors/FlatCAMGrbEditor.py:909 +#: flatcamEditors/FlatCAMGrbEditor.py:1239 +msgid "Click on next Point or click Right mouse button to complete ..." +msgstr "" +"Clique no próximo ponto ou clique com o botão direito do mouse para " +"completar ..." + +#: flatcamEditors/FlatCAMGrbEditor.py:1118 +#: flatcamEditors/FlatCAMGrbEditor.py:1151 +msgid "Corner Mode 2: Reverse 45 degrees ..." +msgstr "Canto Modo 2: 45 graus invertido ..." + +#: flatcamEditors/FlatCAMGrbEditor.py:1121 +#: flatcamEditors/FlatCAMGrbEditor.py:1148 +msgid "Corner Mode 3: 90 degrees ..." +msgstr "Canto Modo 3: 90 graus ..." + +#: flatcamEditors/FlatCAMGrbEditor.py:1124 +#: flatcamEditors/FlatCAMGrbEditor.py:1145 +msgid "Corner Mode 4: Reverse 90 degrees ..." +msgstr "Canto Modo 4: 90 graus invertido ..." + +#: flatcamEditors/FlatCAMGrbEditor.py:1127 +#: flatcamEditors/FlatCAMGrbEditor.py:1142 +msgid "Corner Mode 5: Free angle ..." +msgstr "Canto Modo 5: Ângulo livre ..." + +#: flatcamEditors/FlatCAMGrbEditor.py:1184 +#: flatcamEditors/FlatCAMGrbEditor.py:1360 +#: flatcamEditors/FlatCAMGrbEditor.py:1399 +msgid "Track Mode 1: 45 degrees ..." +msgstr "Trilha Modo 1: 45 graus ..." + +#: flatcamEditors/FlatCAMGrbEditor.py:1340 +#: flatcamEditors/FlatCAMGrbEditor.py:1394 +msgid "Track Mode 2: Reverse 45 degrees ..." +msgstr "Trilha Modo 2: 45 graus invertido ..." + +#: flatcamEditors/FlatCAMGrbEditor.py:1345 +#: flatcamEditors/FlatCAMGrbEditor.py:1389 +msgid "Track Mode 3: 90 degrees ..." +msgstr "Trilha Modo 3: 90 graus ..." + +#: flatcamEditors/FlatCAMGrbEditor.py:1350 +#: flatcamEditors/FlatCAMGrbEditor.py:1384 +msgid "Track Mode 4: Reverse 90 degrees ..." +msgstr "Trilha Modo 4: 90 graus invertido ..." + +#: flatcamEditors/FlatCAMGrbEditor.py:1355 +#: flatcamEditors/FlatCAMGrbEditor.py:1379 +msgid "Track Mode 5: Free angle ..." +msgstr "Trilha Modo 5: Ângulo livre ..." + +#: flatcamEditors/FlatCAMGrbEditor.py:1780 +msgid "Scale the selected Gerber apertures ..." +msgstr "Redimensiona as aberturas de Gerber selecionadas ..." + +#: flatcamEditors/FlatCAMGrbEditor.py:1822 +msgid "Buffer the selected apertures ..." +msgstr "Buffer das aberturas selecionadas ..." + +#: flatcamEditors/FlatCAMGrbEditor.py:1864 +msgid "Mark polygon areas in the edited Gerber ..." +msgstr "Marca áreas de polígonos no Gerber editado..." + +#: flatcamEditors/FlatCAMGrbEditor.py:1930 +msgid "Nothing selected to move" +msgstr "Nada selecionado para mover" + +#: flatcamEditors/FlatCAMGrbEditor.py:2055 +msgid "Done. Apertures Move completed." +msgstr "Aberturas movidas." + +#: flatcamEditors/FlatCAMGrbEditor.py:2137 +msgid "Done. Apertures copied." +msgstr "Aberturas copiadas." + +#: flatcamEditors/FlatCAMGrbEditor.py:2455 flatcamGUI/FlatCAMGUI.py:2233 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:27 +msgid "Gerber Editor" +msgstr "Editor Gerber" + +#: flatcamEditors/FlatCAMGrbEditor.py:2475 flatcamGUI/ObjectUI.py:228 +#: flatcamTools/ToolProperties.py:159 +msgid "Apertures" +msgstr "Aberturas" + +#: flatcamEditors/FlatCAMGrbEditor.py:2477 flatcamGUI/ObjectUI.py:230 +msgid "Apertures Table for the Gerber Object." +msgstr "Tabela de Aberturas para o Objeto Gerber." + +#: flatcamEditors/FlatCAMGrbEditor.py:2488 +#: flatcamEditors/FlatCAMGrbEditor.py:3969 flatcamGUI/ObjectUI.py:263 +msgid "Code" +msgstr "Código" + +#: flatcamEditors/FlatCAMGrbEditor.py:2488 +#: flatcamEditors/FlatCAMGrbEditor.py:3969 flatcamGUI/ObjectUI.py:263 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:103 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:167 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:196 +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:43 +#: flatcamTools/ToolCopperThieving.py:261 +#: flatcamTools/ToolCopperThieving.py:301 flatcamTools/ToolFiducials.py:156 +msgid "Size" +msgstr "Tamanho" + +#: flatcamEditors/FlatCAMGrbEditor.py:2488 +#: flatcamEditors/FlatCAMGrbEditor.py:3969 flatcamGUI/ObjectUI.py:263 +msgid "Dim" +msgstr "Dim" + +#: flatcamEditors/FlatCAMGrbEditor.py:2493 flatcamGUI/ObjectUI.py:267 +msgid "Index" +msgstr "Índice" + +#: flatcamEditors/FlatCAMGrbEditor.py:2495 +#: flatcamEditors/FlatCAMGrbEditor.py:2524 flatcamGUI/ObjectUI.py:269 +msgid "Aperture Code" +msgstr "Código de Abertura" + +#: flatcamEditors/FlatCAMGrbEditor.py:2497 flatcamGUI/ObjectUI.py:271 +msgid "Type of aperture: circular, rectangle, macros etc" +msgstr "Tipo de abertura: circular, retângulo, macros etc" + +#: flatcamEditors/FlatCAMGrbEditor.py:2499 flatcamGUI/ObjectUI.py:273 +msgid "Aperture Size:" +msgstr "Tamanho da abertura:" + +#: flatcamEditors/FlatCAMGrbEditor.py:2501 flatcamGUI/ObjectUI.py:275 +msgid "" +"Aperture Dimensions:\n" +" - (width, height) for R, O type.\n" +" - (dia, nVertices) for P type" +msgstr "" +"Dimensões da abertura: \n" +" - (largura, altura) para o tipo R, O. \n" +" - (dia, nVertices) para o tipo P" + +#: flatcamEditors/FlatCAMGrbEditor.py:2525 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:58 +msgid "Code for the new aperture" +msgstr "Código para a nova abertura" + +#: flatcamEditors/FlatCAMGrbEditor.py:2534 +msgid "Aperture Size" +msgstr "Tamanho da abertura" + +#: flatcamEditors/FlatCAMGrbEditor.py:2536 +msgid "" +"Size for the new aperture.\n" +"If aperture type is 'R' or 'O' then\n" +"this value is automatically\n" +"calculated as:\n" +"sqrt(width**2 + height**2)" +msgstr "" +"Tamanho para a nova abertura.\n" +"Se o tipo de abertura for 'R' ou 'O' então\n" +"este valor será automaticamente\n" +"calculado como:\n" +"sqrt(largura^2 + altura^2)" + +#: flatcamEditors/FlatCAMGrbEditor.py:2550 +msgid "Aperture Type" +msgstr "Tipo de Abertura" + +#: flatcamEditors/FlatCAMGrbEditor.py:2552 +msgid "" +"Select the type of new aperture. Can be:\n" +"C = circular\n" +"R = rectangular\n" +"O = oblong" +msgstr "" +"Selecione o tipo da nova abertura. Pode ser:\n" +"C = circular \n" +"R = retangular \n" +"O = oblongo" + +#: flatcamEditors/FlatCAMGrbEditor.py:2563 +msgid "Aperture Dim" +msgstr "Dim Abertura" + +#: flatcamEditors/FlatCAMGrbEditor.py:2565 +msgid "" +"Dimensions for the new aperture.\n" +"Active only for rectangular apertures (type R).\n" +"The format is (width, height)" +msgstr "" +"Dimensões da nova abertura.\n" +"Ativa apenas para aberturas retangulares (tipo R).\n" +"O formato é (largura, altura)" + +#: flatcamEditors/FlatCAMGrbEditor.py:2574 +msgid "Add/Delete Aperture" +msgstr "Adicionar/Excluir Abertura" + +#: flatcamEditors/FlatCAMGrbEditor.py:2576 +msgid "Add/Delete an aperture in the aperture table" +msgstr "Adicionar/Excluir uma abertura na tabela de aberturas" + +#: flatcamEditors/FlatCAMGrbEditor.py:2585 +msgid "Add a new aperture to the aperture list." +msgstr "Adiciona uma nova abertura à lista de aberturas." + +#: flatcamEditors/FlatCAMGrbEditor.py:2590 +msgid "Delete a aperture in the aperture list" +msgstr "Exclui uma abertura da lista de aberturas" + +#: flatcamEditors/FlatCAMGrbEditor.py:2607 +msgid "Buffer Aperture" +msgstr "Buffer Abertura" + +#: flatcamEditors/FlatCAMGrbEditor.py:2609 +msgid "Buffer a aperture in the aperture list" +msgstr "Buffer de uma abertura na lista de aberturas" + +#: flatcamEditors/FlatCAMGrbEditor.py:2622 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:194 +msgid "Buffer distance" +msgstr "Distância do buffer" + +#: flatcamEditors/FlatCAMGrbEditor.py:2623 +msgid "Buffer corner" +msgstr "Canto do buffer" + +#: flatcamEditors/FlatCAMGrbEditor.py:2625 +msgid "" +"There are 3 types of corners:\n" +" - 'Round': the corner is rounded.\n" +" - 'Square': the corner is met in a sharp angle.\n" +" - 'Beveled': the corner is a line that directly connects the features " +"meeting in the corner" +msgstr "" +"Existem 3 tipos de cantos:\n" +"- 'Redondo': o canto é arredondado.\n" +"- 'Quadrado:' o canto é em um ângulo agudo.\n" +"- 'Chanfrado:' o canto é uma linha que conecta diretamente os recursos " +"reunidos no canto" + +#: flatcamEditors/FlatCAMGrbEditor.py:2640 flatcamGUI/FlatCAMGUI.py:1061 +#: flatcamGUI/FlatCAMGUI.py:2138 flatcamGUI/FlatCAMGUI.py:2210 +#: flatcamGUI/FlatCAMGUI.py:2253 flatcamGUI/FlatCAMGUI.py:2765 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:200 +#: flatcamTools/ToolTransform.py:29 +msgid "Buffer" +msgstr "Buffer" + +#: flatcamEditors/FlatCAMGrbEditor.py:2655 +msgid "Scale Aperture" +msgstr "Redim. Abertura" + +#: flatcamEditors/FlatCAMGrbEditor.py:2657 +msgid "Scale a aperture in the aperture list" +msgstr "Redimensiona uma abertura na lista de aberturas" + +#: flatcamEditors/FlatCAMGrbEditor.py:2665 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:209 +msgid "Scale factor" +msgstr "Fator de Escala" + +#: flatcamEditors/FlatCAMGrbEditor.py:2667 +msgid "" +"The factor by which to scale the selected aperture.\n" +"Values can be between 0.0000 and 999.9999" +msgstr "" +"O fator para redimensionar a abertura selecionada. \n" +"Os valores podem estar entre 0.0000 e 999.9999" + +#: flatcamEditors/FlatCAMGrbEditor.py:2695 +msgid "Mark polygons" +msgstr "Marcar polígonos" + +#: flatcamEditors/FlatCAMGrbEditor.py:2697 +msgid "Mark the polygon areas." +msgstr "Marcar as áreas de polígonos." + +#: flatcamEditors/FlatCAMGrbEditor.py:2705 +msgid "Area UPPER threshold" +msgstr "Limite de área SUPERIOR" + +#: flatcamEditors/FlatCAMGrbEditor.py:2707 +msgid "" +"The threshold value, all areas less than this are marked.\n" +"Can have a value between 0.0000 and 9999.9999" +msgstr "" +"Valor limite, todas as áreas menores que isso são marcadas.\n" +"Pode ser um valor entre 0.0000 e 9999.9999" + +#: flatcamEditors/FlatCAMGrbEditor.py:2714 +msgid "Area LOWER threshold" +msgstr "Limite de área INFERIOR" + +#: flatcamEditors/FlatCAMGrbEditor.py:2716 +msgid "" +"The threshold value, all areas more than this are marked.\n" +"Can have a value between 0.0000 and 9999.9999" +msgstr "" +"Valor limite, todas as áreas maiores que isso são marcadas.\n" +"Pode ser um valor entre 0.0000 e 9999.9999" + +#: flatcamEditors/FlatCAMGrbEditor.py:2730 +msgid "Mark" +msgstr "Marcar" + +#: flatcamEditors/FlatCAMGrbEditor.py:2732 +msgid "Mark the polygons that fit within limits." +msgstr "Marcar os polígonos que se encaixam dentro dos limites." + +#: flatcamEditors/FlatCAMGrbEditor.py:2738 +msgid "Delete all the marked polygons." +msgstr "Excluir todos os polígonos marcados." + +#: flatcamEditors/FlatCAMGrbEditor.py:2744 +msgid "Clear all the markings." +msgstr "Limpar todas as marcações." + +#: flatcamEditors/FlatCAMGrbEditor.py:2764 flatcamGUI/FlatCAMGUI.py:1046 +#: flatcamGUI/FlatCAMGUI.py:2138 flatcamGUI/FlatCAMGUI.py:2750 +msgid "Add Pad Array" +msgstr "Adicionar Matriz de Pads" + +#: flatcamEditors/FlatCAMGrbEditor.py:2766 +msgid "Add an array of pads (linear or circular array)" +msgstr "Adicione uma matriz de pads (matriz linear ou circular)" + +#: flatcamEditors/FlatCAMGrbEditor.py:2772 +msgid "" +"Select the type of pads array to create.\n" +"It can be Linear X(Y) or Circular" +msgstr "" +"Selecione o tipo de matriz de pads para criar.\n" +"Pode ser Linear X(Y) ou Circular" + +#: flatcamEditors/FlatCAMGrbEditor.py:2783 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:95 +msgid "Nr of pads" +msgstr "Nº de pads" + +#: flatcamEditors/FlatCAMGrbEditor.py:2785 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:97 +msgid "Specify how many pads to be in the array." +msgstr "Especifique quantos pads devem estar na matriz." + +#: flatcamEditors/FlatCAMGrbEditor.py:2834 +msgid "" +"Angle at which the linear array is placed.\n" +"The precision is of max 2 decimals.\n" +"Min value is: -359.99 degrees.\n" +"Max value is: 360.00 degrees." +msgstr "" +"Ângulo no qual a matriz linear é colocada.\n" +"A precisão é de no máximo 2 decimais.\n" +"Valor mínimo: -359.99 graus.\n" +"Valor máximo: 360.00 graus." + +#: flatcamEditors/FlatCAMGrbEditor.py:3328 +#: flatcamEditors/FlatCAMGrbEditor.py:3332 +msgid "Aperture code value is missing or wrong format. Add it and retry." +msgstr "" +"O valor do código de abertura está ausente ou em formato incorreto. Altere e " +"tente novamente." + +#: flatcamEditors/FlatCAMGrbEditor.py:3368 +msgid "" +"Aperture dimensions value is missing or wrong format. Add it in format " +"(width, height) and retry." +msgstr "" +"O valor das dimensões da abertura está ausente ou está no formato errado. " +"Altere (largura, altura) e tente novamente." + +#: flatcamEditors/FlatCAMGrbEditor.py:3381 +msgid "Aperture size value is missing or wrong format. Add it and retry." +msgstr "" +"O valor do tamanho da abertura está ausente ou está no formato errado. " +"Altere e tente novamente." + +#: flatcamEditors/FlatCAMGrbEditor.py:3392 +msgid "Aperture already in the aperture table." +msgstr "Abertura já na tabela de aberturas." + +#: flatcamEditors/FlatCAMGrbEditor.py:3399 +msgid "Added new aperture with code" +msgstr "Adicionada nova abertura com código" + +#: flatcamEditors/FlatCAMGrbEditor.py:3431 +msgid " Select an aperture in Aperture Table" +msgstr " Selecione uma abertura na Tabela de Aberturas" + +#: flatcamEditors/FlatCAMGrbEditor.py:3439 +msgid "Select an aperture in Aperture Table -->" +msgstr "Selecione uma abertura na Tabela de Aberturas ->" + +#: flatcamEditors/FlatCAMGrbEditor.py:3453 +msgid "Deleted aperture with code" +msgstr "Abertura excluída com código" + +#: flatcamEditors/FlatCAMGrbEditor.py:3521 +msgid "Dimensions need two float values separated by comma." +msgstr "" +"As dimensões precisam de dois valores flutuantes separados por vírgula." + +#: flatcamEditors/FlatCAMGrbEditor.py:3530 +msgid "Dimensions edited." +msgstr "Dimensões editadas." + +#: flatcamEditors/FlatCAMGrbEditor.py:4084 +msgid "Loading Gerber into Editor" +msgstr "Lendo Gerber no Editor" + +#: flatcamEditors/FlatCAMGrbEditor.py:4212 +msgid "Setting up the UI" +msgstr "Configurando a interface do usuário" + +#: flatcamEditors/FlatCAMGrbEditor.py:4213 +msgid "Adding geometry finished. Preparing the GUI" +msgstr "Geometria adicionada. Preparando a GUI" + +#: flatcamEditors/FlatCAMGrbEditor.py:4222 +msgid "Finished loading the Gerber object into the editor." +msgstr "Carregamento do objeto Gerber no editor concluído." + +#: flatcamEditors/FlatCAMGrbEditor.py:4361 +msgid "" +"There are no Aperture definitions in the file. Aborting Gerber creation." +msgstr "" +"Não há definições da Abertura no arquivo. Abortando a criação de Gerber." + +#: flatcamEditors/FlatCAMGrbEditor.py:4371 +msgid "Creating Gerber." +msgstr "Criando Gerber." + +#: flatcamEditors/FlatCAMGrbEditor.py:4380 +msgid "Done. Gerber editing finished." +msgstr "Edição de Gerber concluída." + +#: flatcamEditors/FlatCAMGrbEditor.py:4398 +msgid "Cancelled. No aperture is selected" +msgstr "Cancelado. Nenhuma abertura selecionada" + +#: flatcamEditors/FlatCAMGrbEditor.py:4992 +msgid "Failed. No aperture geometry is selected." +msgstr "Cancelado. Nenhuma abertura selecionada." + +#: flatcamEditors/FlatCAMGrbEditor.py:5001 +#: flatcamEditors/FlatCAMGrbEditor.py:5272 +msgid "Done. Apertures geometry deleted." +msgstr "Abertura excluída." + +#: flatcamEditors/FlatCAMGrbEditor.py:5144 +msgid "No aperture to buffer. Select at least one aperture and try again." +msgstr "" +"Nenhuma abertura para buffer. Selecione pelo menos uma abertura e tente " +"novamente." + +#: flatcamEditors/FlatCAMGrbEditor.py:5156 +msgid "Failed." +msgstr "Falhou." + +#: flatcamEditors/FlatCAMGrbEditor.py:5175 +msgid "Scale factor value is missing or wrong format. Add it and retry." +msgstr "" +"O valor do fator de escala está ausente ou está em formato incorreto. Altere " +"e tente novamente." + +#: flatcamEditors/FlatCAMGrbEditor.py:5207 +msgid "No aperture to scale. Select at least one aperture and try again." +msgstr "" +"Nenhuma abertura para redimensionar. Selecione pelo menos uma abertura e " +"tente novamente." + +#: flatcamEditors/FlatCAMGrbEditor.py:5223 +msgid "Done. Scale Tool completed." +msgstr "Redimensionamento concluído." + +#: flatcamEditors/FlatCAMGrbEditor.py:5261 +msgid "Polygons marked." +msgstr "Polígonos marcados." + +#: flatcamEditors/FlatCAMGrbEditor.py:5264 +msgid "No polygons were marked. None fit within the limits." +msgstr "Nenhum polígono foi marcado. Nenhum se encaixa dentro dos limites." + +#: flatcamEditors/FlatCAMGrbEditor.py:5988 +msgid "Rotation action was not executed." +msgstr "A rotação não foi executada." + +#: flatcamEditors/FlatCAMGrbEditor.py:6116 +msgid "Skew action was not executed." +msgstr "A inclinação não foi executada." + +#: flatcamEditors/FlatCAMGrbEditor.py:6181 +msgid "Scale action was not executed." +msgstr "O redimensionamento não foi executado." + +#: flatcamEditors/FlatCAMGrbEditor.py:6224 +msgid "Offset action was not executed." +msgstr "O deslocamento não foi executado." + +#: flatcamEditors/FlatCAMGrbEditor.py:6274 +msgid "Geometry shape offset Y cancelled" +msgstr "Deslocamento Y cancelado" + +#: flatcamEditors/FlatCAMGrbEditor.py:6289 +msgid "Geometry shape skew X cancelled" +msgstr "Inclinação X cancelada" + +#: flatcamEditors/FlatCAMGrbEditor.py:6304 +msgid "Geometry shape skew Y cancelled" +msgstr "Inclinação Y cancelada" + +#: flatcamEditors/FlatCAMTextEditor.py:74 +msgid "Print Preview" +msgstr "Visualizar Impressão" + +#: flatcamEditors/FlatCAMTextEditor.py:75 +msgid "Open a OS standard Preview Print window." +msgstr "Abre a janela Visualizar Impressão do SO." + +#: flatcamEditors/FlatCAMTextEditor.py:78 +msgid "Print Code" +msgstr "Imprimir Código" + +#: flatcamEditors/FlatCAMTextEditor.py:79 +msgid "Open a OS standard Print window." +msgstr "Abre a janela Imprimir do SO." + +#: flatcamEditors/FlatCAMTextEditor.py:81 +msgid "Find in Code" +msgstr "Encontrar no Código" + +#: flatcamEditors/FlatCAMTextEditor.py:82 +msgid "Will search and highlight in yellow the string in the Find box." +msgstr "Procurará e destacará em amarelo o texto da caixa Procurar." + +#: flatcamEditors/FlatCAMTextEditor.py:86 +msgid "Find box. Enter here the strings to be searched in the text." +msgstr "Caixa Procurar. Digite aqui o texto a procurar." + +#: flatcamEditors/FlatCAMTextEditor.py:88 +msgid "Replace With" +msgstr "Substituir Por" + +#: flatcamEditors/FlatCAMTextEditor.py:89 +msgid "" +"Will replace the string from the Find box with the one in the Replace box." +msgstr "Substituirá o texto da caixa Localizar pelo texto da caixa Substituir." + +#: flatcamEditors/FlatCAMTextEditor.py:93 +msgid "String to replace the one in the Find box throughout the text." +msgstr "Texto para substituir o da caixa Localizar ao longo do texto." + +#: flatcamEditors/FlatCAMTextEditor.py:95 flatcamGUI/ObjectUI.py:486 +#: flatcamGUI/ObjectUI.py:2219 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:54 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:88 +msgid "All" +msgstr "Todos" + +#: flatcamEditors/FlatCAMTextEditor.py:96 +msgid "" +"When checked it will replace all instances in the 'Find' box\n" +"with the text in the 'Replace' box.." +msgstr "" +"Quando marcado, todas as instâncias na caixa 'Localizar'\n" +"serão substituídas pelo texto na caixa 'Substituir'." + +#: flatcamEditors/FlatCAMTextEditor.py:99 +msgid "Copy All" +msgstr "Copiar tudo" + +#: flatcamEditors/FlatCAMTextEditor.py:100 +msgid "Will copy all the text in the Code Editor to the clipboard." +msgstr "Copiará todo o texto no Editor de código para a área de transferência." + +#: flatcamEditors/FlatCAMTextEditor.py:103 +msgid "Open Code" +msgstr "Abrir Código" + +#: flatcamEditors/FlatCAMTextEditor.py:104 +msgid "Will open a text file in the editor." +msgstr "Abrirá um arquivo de texto no editor." + +#: flatcamEditors/FlatCAMTextEditor.py:106 +msgid "Save Code" +msgstr "Salvar Código" + +#: flatcamEditors/FlatCAMTextEditor.py:107 +msgid "Will save the text in the editor into a file." +msgstr "Salvará o texto do editor em um arquivo." + +#: flatcamEditors/FlatCAMTextEditor.py:109 +msgid "Run Code" +msgstr "Executar Código" + +#: flatcamEditors/FlatCAMTextEditor.py:110 +msgid "Will run the TCL commands found in the text file, one by one." +msgstr "Executará os comandos TCL do arquivo de texto, um a um." + +#: flatcamEditors/FlatCAMTextEditor.py:184 +msgid "Open file" +msgstr "Abrir arquivo" + +#: flatcamEditors/FlatCAMTextEditor.py:215 +#: flatcamEditors/FlatCAMTextEditor.py:220 +msgid "Export Code ..." +msgstr "Exportar código ..." + +#: flatcamEditors/FlatCAMTextEditor.py:272 flatcamObjects/FlatCAMCNCJob.py:955 +#: flatcamTools/ToolSolderPaste.py:1530 +msgid "No such file or directory" +msgstr "Nenhum arquivo ou diretório" + +#: flatcamEditors/FlatCAMTextEditor.py:284 flatcamObjects/FlatCAMCNCJob.py:969 +msgid "Saved to" +msgstr "Salvo em" + +#: flatcamEditors/FlatCAMTextEditor.py:334 +msgid "Code Editor content copied to clipboard ..." +msgstr "Conteúdo do Code Editor copiado para a área de transferência ..." + +#: flatcamGUI/FlatCAMGUI.py:78 flatcamGUI/FlatCAMGUI.py:80 +#: flatcamGUI/FlatCAMGUI.py:2163 +msgid "Toggle Panel" +msgstr "Alternar Painel" + +#: flatcamGUI/FlatCAMGUI.py:90 +msgid "File" +msgstr "Arquivo" + +#: flatcamGUI/FlatCAMGUI.py:95 +msgid "&New Project ...\tCtrl+N" +msgstr "&Novo Projeto ...\tCtrl+N" + +#: flatcamGUI/FlatCAMGUI.py:97 +msgid "Will create a new, blank project" +msgstr "Criará um novo projeto em branco" + +#: flatcamGUI/FlatCAMGUI.py:102 +msgid "&New" +msgstr "&Novo" + +#: flatcamGUI/FlatCAMGUI.py:106 +msgid "Geometry\tN" +msgstr "Geometria\tN" + +#: flatcamGUI/FlatCAMGUI.py:108 +msgid "Will create a new, empty Geometry Object." +msgstr "Criará um novo Objeto Geometria vazio." + +#: flatcamGUI/FlatCAMGUI.py:111 +msgid "Gerber\tB" +msgstr "Gerber\tB" + +#: flatcamGUI/FlatCAMGUI.py:113 +msgid "Will create a new, empty Gerber Object." +msgstr "Criará um novo Objeto Gerber vazio." + +#: flatcamGUI/FlatCAMGUI.py:116 +msgid "Excellon\tL" +msgstr "Excellon\tL" + +#: flatcamGUI/FlatCAMGUI.py:118 +msgid "Will create a new, empty Excellon Object." +msgstr "Criará um novo Objeto Excellon vazio." + +#: flatcamGUI/FlatCAMGUI.py:123 +msgid "Document\tD" +msgstr "Documento\tD" + +#: flatcamGUI/FlatCAMGUI.py:125 +msgid "Will create a new, empty Document Object." +msgstr "Criará um novo Objeto Documento vazio." + +#: flatcamGUI/FlatCAMGUI.py:129 flatcamGUI/FlatCAMGUI.py:4420 +#: flatcamTools/ToolPcbWizard.py:62 flatcamTools/ToolPcbWizard.py:69 +msgid "Open" +msgstr "Abrir" + +#: flatcamGUI/FlatCAMGUI.py:134 +msgid "Open &Project ..." +msgstr "Abrir &Projeto ..." + +#: flatcamGUI/FlatCAMGUI.py:140 flatcamGUI/FlatCAMGUI.py:4430 +msgid "Open &Gerber ...\tCtrl+G" +msgstr "Abrir &Gerber ...\tCtrl+G" + +#: flatcamGUI/FlatCAMGUI.py:145 flatcamGUI/FlatCAMGUI.py:4435 +msgid "Open &Excellon ...\tCtrl+E" +msgstr "Abrir &Excellon ...\tCtrl+E" + +#: flatcamGUI/FlatCAMGUI.py:150 flatcamGUI/FlatCAMGUI.py:4440 +msgid "Open G-&Code ..." +msgstr "Abrir G-&Code ..." + +#: flatcamGUI/FlatCAMGUI.py:157 +msgid "Open Config ..." +msgstr "Abrir Configuração ..." + +#: flatcamGUI/FlatCAMGUI.py:162 +msgid "Recent projects" +msgstr "Projetos Recentes" + +#: flatcamGUI/FlatCAMGUI.py:164 +msgid "Recent files" +msgstr "Arquivos Recentes" + +#: flatcamGUI/FlatCAMGUI.py:167 flatcamGUI/FlatCAMGUI.py:753 +#: flatcamGUI/FlatCAMGUI.py:1339 +msgid "Save" +msgstr "Salvar" + +#: flatcamGUI/FlatCAMGUI.py:171 +msgid "&Save Project ...\tCtrl+S" +msgstr "&Salvar Projeto ...\tCtrl+S" + +#: flatcamGUI/FlatCAMGUI.py:176 +msgid "Save Project &As ...\tCtrl+Shift+S" +msgstr "S&alvar Projeto Como ...\tCtrl+Shift+S" + +#: flatcamGUI/FlatCAMGUI.py:191 +msgid "Scripting" +msgstr "Scripting" + +#: flatcamGUI/FlatCAMGUI.py:195 flatcamGUI/FlatCAMGUI.py:903 +#: flatcamGUI/FlatCAMGUI.py:2607 +msgid "New Script ..." +msgstr "Novo Script ..." + +#: flatcamGUI/FlatCAMGUI.py:197 flatcamGUI/FlatCAMGUI.py:905 +#: flatcamGUI/FlatCAMGUI.py:2609 +msgid "Open Script ..." +msgstr "Abrir Script ..." + +#: flatcamGUI/FlatCAMGUI.py:199 +msgid "Open Example ..." +msgstr "Abrir Exemplo ..." + +#: flatcamGUI/FlatCAMGUI.py:201 flatcamGUI/FlatCAMGUI.py:907 +#: flatcamGUI/FlatCAMGUI.py:2611 flatcamGUI/FlatCAMGUI.py:4409 +msgid "Run Script ..." +msgstr "Executar Script ..." + +#: flatcamGUI/FlatCAMGUI.py:203 flatcamGUI/FlatCAMGUI.py:4411 +msgid "" +"Will run the opened Tcl Script thus\n" +"enabling the automation of certain\n" +"functions of FlatCAM." +msgstr "" +"Executará o script TCL aberto,\n" +"ativando a automação de certas\n" +"funções do FlatCAM." + +#: flatcamGUI/FlatCAMGUI.py:218 +msgid "Import" +msgstr "Importar" + +#: flatcamGUI/FlatCAMGUI.py:220 +msgid "&SVG as Geometry Object ..." +msgstr "&SVG como Objeto de Geometria ..." + +#: flatcamGUI/FlatCAMGUI.py:223 +msgid "&SVG as Gerber Object ..." +msgstr "&SVG como Objeto Gerber ..." + +#: flatcamGUI/FlatCAMGUI.py:228 +msgid "&DXF as Geometry Object ..." +msgstr "&DXF como Objeto de Geometria ..." + +#: flatcamGUI/FlatCAMGUI.py:231 +msgid "&DXF as Gerber Object ..." +msgstr "&DXF como Objeto Gerber ..." + +#: flatcamGUI/FlatCAMGUI.py:235 +msgid "HPGL2 as Geometry Object ..." +msgstr "HPGL2 como objeto de geometria ..." + +#: flatcamGUI/FlatCAMGUI.py:241 +msgid "Export" +msgstr "Exportar" + +#: flatcamGUI/FlatCAMGUI.py:245 +msgid "Export &SVG ..." +msgstr "Exportar &SVG ..." + +#: flatcamGUI/FlatCAMGUI.py:249 +msgid "Export DXF ..." +msgstr "Exportar DXF ..." + +#: flatcamGUI/FlatCAMGUI.py:255 +msgid "Export &PNG ..." +msgstr "Exportar &PNG ..." + +#: flatcamGUI/FlatCAMGUI.py:257 +msgid "" +"Will export an image in PNG format,\n" +"the saved image will contain the visual \n" +"information currently in FlatCAM Plot Area." +msgstr "" +"Exportará uma imagem em formato PNG.\n" +"A imagem salva conterá as informações\n" +"visuais atualmente na área gráfica FlatCAM." + +#: flatcamGUI/FlatCAMGUI.py:266 +msgid "Export &Excellon ..." +msgstr "Exportar &Excellon ..." + +#: flatcamGUI/FlatCAMGUI.py:268 +msgid "" +"Will export an Excellon Object as Excellon file,\n" +"the coordinates format, the file units and zeros\n" +"are set in Preferences -> Excellon Export." +msgstr "" +"Exportará um Objeto Excellon como arquivo Excellon.\n" +"O formato das coordenadas, das unidades de arquivo e dos zeros\n" +"são definidos em Preferências -> Exportação de Excellon." + +#: flatcamGUI/FlatCAMGUI.py:275 +msgid "Export &Gerber ..." +msgstr "Exportar &Gerber ..." + +#: flatcamGUI/FlatCAMGUI.py:277 +msgid "" +"Will export an Gerber Object as Gerber file,\n" +"the coordinates format, the file units and zeros\n" +"are set in Preferences -> Gerber Export." +msgstr "" +"Exportará um Objeto Gerber como arquivo Gerber.\n" +"O formato das coordenadas, das unidades de arquivo e dos zeros\n" +"são definidos em Preferências -> Exportar Gerber." + +#: flatcamGUI/FlatCAMGUI.py:287 +msgid "Backup" +msgstr "Backup" + +#: flatcamGUI/FlatCAMGUI.py:292 +msgid "Import Preferences from file ..." +msgstr "Importar preferências de um arquivo ..." + +#: flatcamGUI/FlatCAMGUI.py:298 +msgid "Export Preferences to file ..." +msgstr "Exportar Preferências para um arquivo ..." + +#: flatcamGUI/FlatCAMGUI.py:306 +#: flatcamGUI/preferences/PreferencesUIManager.py:1119 +msgid "Save Preferences" +msgstr "Salvar Preferências" + +#: flatcamGUI/FlatCAMGUI.py:312 flatcamGUI/FlatCAMGUI.py:1730 +msgid "Print (PDF)" +msgstr "Imprimir (PDF)" + +#: flatcamGUI/FlatCAMGUI.py:320 +msgid "E&xit" +msgstr "Sair" + +#: flatcamGUI/FlatCAMGUI.py:328 flatcamGUI/FlatCAMGUI.py:747 +#: flatcamGUI/FlatCAMGUI.py:2286 +msgid "Edit" +msgstr "Editar" + +#: flatcamGUI/FlatCAMGUI.py:332 +msgid "Edit Object\tE" +msgstr "Editar Objeto\tE" + +#: flatcamGUI/FlatCAMGUI.py:334 +msgid "Close Editor\tCtrl+S" +msgstr "Fechar Editor\tCtrl+S" + +#: flatcamGUI/FlatCAMGUI.py:343 +msgid "Conversion" +msgstr "Conversão" + +#: flatcamGUI/FlatCAMGUI.py:345 +msgid "&Join Geo/Gerber/Exc -> Geo" +msgstr "&Unir Geo/Gerber/Exc -> Geo" + +#: flatcamGUI/FlatCAMGUI.py:347 +msgid "" +"Merge a selection of objects, which can be of type:\n" +"- Gerber\n" +"- Excellon\n" +"- Geometry\n" +"into a new combo Geometry object." +msgstr "" +"Mescla uma seleção de objetos, que podem ser do tipo:\n" +"- Gerber\n" +"- Excellon\n" +"- Geometria\n" +" em um novo objeto Geometria." + +#: flatcamGUI/FlatCAMGUI.py:354 +msgid "Join Excellon(s) -> Excellon" +msgstr "Unir Excellon(s) -> Excellon" + +#: flatcamGUI/FlatCAMGUI.py:356 +msgid "Merge a selection of Excellon objects into a new combo Excellon object." +msgstr "Mescla uma seleção de objetos Excellon em um novo objeto Excellon." + +#: flatcamGUI/FlatCAMGUI.py:359 +msgid "Join Gerber(s) -> Gerber" +msgstr "Unir Gerber(s) -> Gerber" + +#: flatcamGUI/FlatCAMGUI.py:361 +msgid "Merge a selection of Gerber objects into a new combo Gerber object." +msgstr "Mescla uma seleção de objetos Gerber em um novo objeto Gerber." + +#: flatcamGUI/FlatCAMGUI.py:366 +msgid "Convert Single to MultiGeo" +msgstr "Converter Único para MultiGeo" + +#: flatcamGUI/FlatCAMGUI.py:368 +msgid "" +"Will convert a Geometry object from single_geometry type\n" +"to a multi_geometry type." +msgstr "" +"Converterá um objeto Geometria do tipo single_geometry\n" +"em um tipo multi_geometry." + +#: flatcamGUI/FlatCAMGUI.py:372 +msgid "Convert Multi to SingleGeo" +msgstr "Converter MultiGeo para Único" + +#: flatcamGUI/FlatCAMGUI.py:374 +msgid "" +"Will convert a Geometry object from multi_geometry type\n" +"to a single_geometry type." +msgstr "" +"Converterá um objeto Geometria do tipo multi_geometry\n" +"em um tipo single_geometry." + +#: flatcamGUI/FlatCAMGUI.py:381 +msgid "Convert Any to Geo" +msgstr "Converter Qualquer para Geo" + +#: flatcamGUI/FlatCAMGUI.py:384 +msgid "Convert Any to Gerber" +msgstr "Converter Qualquer para Gerber" + +#: flatcamGUI/FlatCAMGUI.py:390 +msgid "&Copy\tCtrl+C" +msgstr "&Copiar\tCtrl+C" + +#: flatcamGUI/FlatCAMGUI.py:395 +msgid "&Delete\tDEL" +msgstr "Excluir\tDEL" + +#: flatcamGUI/FlatCAMGUI.py:400 +msgid "Se&t Origin\tO" +msgstr "Definir Origem\tO" + +#: flatcamGUI/FlatCAMGUI.py:402 +msgid "Move to Origin\tShift+O" +msgstr "Mover para Origem\tShift+O" + +#: flatcamGUI/FlatCAMGUI.py:405 +msgid "Jump to Location\tJ" +msgstr "Ir para a localização\tJ" + +#: flatcamGUI/FlatCAMGUI.py:407 +msgid "Locate in Object\tShift+J" +msgstr "Localizar em Objeto\tShift+J" + +#: flatcamGUI/FlatCAMGUI.py:412 +msgid "Toggle Units\tQ" +msgstr "Alternar Unidades\tQ" + +#: flatcamGUI/FlatCAMGUI.py:414 +msgid "&Select All\tCtrl+A" +msgstr "&Selecionar Tudo\tCtrl+A" + +#: flatcamGUI/FlatCAMGUI.py:419 +msgid "&Preferences\tShift+P" +msgstr "&Preferências\tShift+P" + +#: flatcamGUI/FlatCAMGUI.py:425 flatcamTools/ToolProperties.py:155 +msgid "Options" +msgstr "Opções" + +#: flatcamGUI/FlatCAMGUI.py:427 +msgid "&Rotate Selection\tShift+(R)" +msgstr "Gi&rar Seleção\tShift+(R)" + +#: flatcamGUI/FlatCAMGUI.py:432 +msgid "&Skew on X axis\tShift+X" +msgstr "Inclinar no eixo X\tShift+X" + +#: flatcamGUI/FlatCAMGUI.py:434 +msgid "S&kew on Y axis\tShift+Y" +msgstr "Inclinar no eixo Y\tShift+Y" + +#: flatcamGUI/FlatCAMGUI.py:439 +msgid "Flip on &X axis\tX" +msgstr "Espelhar no eixo &X\tX" + +#: flatcamGUI/FlatCAMGUI.py:441 +msgid "Flip on &Y axis\tY" +msgstr "Espelhar no eixo &Y\tY" + +#: flatcamGUI/FlatCAMGUI.py:446 +msgid "View source\tAlt+S" +msgstr "Ver fonte\tAlt+S" + +#: flatcamGUI/FlatCAMGUI.py:448 +msgid "Tools DataBase\tCtrl+D" +msgstr "Banco de Dados de Ferramentas\tCtrl+D" + +#: flatcamGUI/FlatCAMGUI.py:455 flatcamGUI/FlatCAMGUI.py:2183 +msgid "View" +msgstr "Ver" + +#: flatcamGUI/FlatCAMGUI.py:457 +msgid "Enable all plots\tAlt+1" +msgstr "Habilitar todos os gráficos\tAlt+1" + +#: flatcamGUI/FlatCAMGUI.py:459 +msgid "Disable all plots\tAlt+2" +msgstr "Desabilitar todos os gráficos\tAlt+2" + +#: flatcamGUI/FlatCAMGUI.py:461 +msgid "Disable non-selected\tAlt+3" +msgstr "Desabilitar os não selecionados\tAlt+3" + +#: flatcamGUI/FlatCAMGUI.py:465 +msgid "&Zoom Fit\tV" +msgstr "&Zoom Ajustado\tV" + +#: flatcamGUI/FlatCAMGUI.py:467 +msgid "&Zoom In\t=" +msgstr "&Zoom +\t=" + +#: flatcamGUI/FlatCAMGUI.py:469 +msgid "&Zoom Out\t-" +msgstr "&Zoom -\t-" + +#: flatcamGUI/FlatCAMGUI.py:474 +msgid "Redraw All\tF5" +msgstr "Redesenha Todos\tF5" + +#: flatcamGUI/FlatCAMGUI.py:478 +msgid "Toggle Code Editor\tShift+E" +msgstr "Alternar o Editor de Códigos\tShift+E" + +#: flatcamGUI/FlatCAMGUI.py:481 +msgid "&Toggle FullScreen\tAlt+F10" +msgstr "Alternar &Tela Cheia\tAlt+F10" + +#: flatcamGUI/FlatCAMGUI.py:483 +msgid "&Toggle Plot Area\tCtrl+F10" +msgstr "Al&ternar Área de Gráficos\tCtrl+F10" + +#: flatcamGUI/FlatCAMGUI.py:485 +msgid "&Toggle Project/Sel/Tool\t`" +msgstr "Al&ternar Projeto/Sel/Ferram\t`" + +#: flatcamGUI/FlatCAMGUI.py:489 +msgid "&Toggle Grid Snap\tG" +msgstr "Al&ternar Encaixe na Grade\tG" + +#: flatcamGUI/FlatCAMGUI.py:491 +msgid "&Toggle Grid Lines\tAlt+G" +msgstr "Al&ternar Encaixe na Grade\tAlt+G" + +#: flatcamGUI/FlatCAMGUI.py:493 +msgid "&Toggle Axis\tShift+G" +msgstr "Al&ternar Eixo\tShift+G" + +#: flatcamGUI/FlatCAMGUI.py:495 +msgid "Toggle Workspace\tShift+W" +msgstr "Alternar Área de Trabalho\tShift+W" + +#: flatcamGUI/FlatCAMGUI.py:500 +msgid "Objects" +msgstr "Objetos" + +#: flatcamGUI/FlatCAMGUI.py:514 +msgid "&Command Line\tS" +msgstr "Linha de &Comando\tS" + +#: flatcamGUI/FlatCAMGUI.py:519 +msgid "Help" +msgstr "Ajuda" + +#: flatcamGUI/FlatCAMGUI.py:521 +msgid "Online Help\tF1" +msgstr "Ajuda Online\tF1" + +#: flatcamGUI/FlatCAMGUI.py:531 +msgid "Report a bug" +msgstr "Reportar um bug" + +#: flatcamGUI/FlatCAMGUI.py:534 +msgid "Excellon Specification" +msgstr "Especificação Excellon" + +#: flatcamGUI/FlatCAMGUI.py:536 +msgid "Gerber Specification" +msgstr "Especificação Gerber" + +#: flatcamGUI/FlatCAMGUI.py:541 +msgid "Shortcuts List\tF3" +msgstr "Lista de Atalhos\tF3" + +#: flatcamGUI/FlatCAMGUI.py:543 +msgid "YouTube Channel\tF4" +msgstr "Canal no YouTube\tF4" + +#: flatcamGUI/FlatCAMGUI.py:554 +msgid "Add Circle\tO" +msgstr "Adicionar Círculo\tO" + +#: flatcamGUI/FlatCAMGUI.py:557 +msgid "Add Arc\tA" +msgstr "Adicionar Arco\tA" + +#: flatcamGUI/FlatCAMGUI.py:560 +msgid "Add Rectangle\tR" +msgstr "Adicionar Retângulo\tR" + +#: flatcamGUI/FlatCAMGUI.py:563 +msgid "Add Polygon\tN" +msgstr "Adicionar Polígono\tN" + +#: flatcamGUI/FlatCAMGUI.py:566 +msgid "Add Path\tP" +msgstr "Adicionar Caminho\tP" + +#: flatcamGUI/FlatCAMGUI.py:569 +msgid "Add Text\tT" +msgstr "Adicionar Texto\tT" + +#: flatcamGUI/FlatCAMGUI.py:572 +msgid "Polygon Union\tU" +msgstr "Unir Polígonos\tU" + +#: flatcamGUI/FlatCAMGUI.py:574 +msgid "Polygon Intersection\tE" +msgstr "Interseção de Polígonos\tE" + +#: flatcamGUI/FlatCAMGUI.py:576 +msgid "Polygon Subtraction\tS" +msgstr "Subtração de Polígonos\tS" + +#: flatcamGUI/FlatCAMGUI.py:580 +msgid "Cut Path\tX" +msgstr "Caminho de Corte\tX" + +#: flatcamGUI/FlatCAMGUI.py:584 +msgid "Copy Geom\tC" +msgstr "Copiar Geom\tC" + +#: flatcamGUI/FlatCAMGUI.py:586 +msgid "Delete Shape\tDEL" +msgstr "Excluir Forma\tDEL" + +#: flatcamGUI/FlatCAMGUI.py:590 flatcamGUI/FlatCAMGUI.py:677 +msgid "Move\tM" +msgstr "Mover\tM" + +#: flatcamGUI/FlatCAMGUI.py:592 +msgid "Buffer Tool\tB" +msgstr "Ferramenta Buffer\tB" + +#: flatcamGUI/FlatCAMGUI.py:595 +msgid "Paint Tool\tI" +msgstr "Ferramenta de Pintura\tI" + +#: flatcamGUI/FlatCAMGUI.py:598 +msgid "Transform Tool\tAlt+R" +msgstr "Ferramenta de Transformação\tAlt+R" + +#: flatcamGUI/FlatCAMGUI.py:602 +msgid "Toggle Corner Snap\tK" +msgstr "Alternar Encaixe de Canto\tK" + +#: flatcamGUI/FlatCAMGUI.py:608 +msgid ">Excellon Editor<" +msgstr ">Editor Excellon<" + +#: flatcamGUI/FlatCAMGUI.py:612 +msgid "Add Drill Array\tA" +msgstr "Adicionar Matriz de Furos\tA" + +#: flatcamGUI/FlatCAMGUI.py:614 +msgid "Add Drill\tD" +msgstr "Adicionar Furo\tD" + +#: flatcamGUI/FlatCAMGUI.py:618 +msgid "Add Slot Array\tQ" +msgstr "Adic. Matriz de Ranhuras\tQ" + +#: flatcamGUI/FlatCAMGUI.py:620 +msgid "Add Slot\tW" +msgstr "Adicionar Ranhura\tW" + +#: flatcamGUI/FlatCAMGUI.py:624 +msgid "Resize Drill(S)\tR" +msgstr "Redimensionar Furo(s)\tR" + +#: flatcamGUI/FlatCAMGUI.py:627 flatcamGUI/FlatCAMGUI.py:671 +msgid "Copy\tC" +msgstr "Copiar\tC" + +#: flatcamGUI/FlatCAMGUI.py:629 flatcamGUI/FlatCAMGUI.py:673 +msgid "Delete\tDEL" +msgstr "Excluir\tDEL" + +#: flatcamGUI/FlatCAMGUI.py:634 +msgid "Move Drill(s)\tM" +msgstr "Mover Furo(s)\tM" + +#: flatcamGUI/FlatCAMGUI.py:639 +msgid ">Gerber Editor<" +msgstr ">Editor Gerber<" + +#: flatcamGUI/FlatCAMGUI.py:643 +msgid "Add Pad\tP" +msgstr "Adicionar Pad\tP" + +#: flatcamGUI/FlatCAMGUI.py:645 +msgid "Add Pad Array\tA" +msgstr "Adicionar Matriz de Pads\tA" + +#: flatcamGUI/FlatCAMGUI.py:647 +msgid "Add Track\tT" +msgstr "Adicionar Trilha\tT" + +#: flatcamGUI/FlatCAMGUI.py:649 +msgid "Add Region\tN" +msgstr "Adicionar Região\tN" + +#: flatcamGUI/FlatCAMGUI.py:653 +msgid "Poligonize\tAlt+N" +msgstr "Poligonizar\tAlt+N" + +#: flatcamGUI/FlatCAMGUI.py:655 +msgid "Add SemiDisc\tE" +msgstr "Adicionar SemiDisco\tE" + +#: flatcamGUI/FlatCAMGUI.py:657 +msgid "Add Disc\tD" +msgstr "Adicionar Disco\tD" + +#: flatcamGUI/FlatCAMGUI.py:659 +msgid "Buffer\tB" +msgstr "Buffer\tB" + +#: flatcamGUI/FlatCAMGUI.py:661 +msgid "Scale\tS" +msgstr "Escala\tS" + +#: flatcamGUI/FlatCAMGUI.py:663 +msgid "Mark Area\tAlt+A" +msgstr "Marcar Área\tAlt+A" + +#: flatcamGUI/FlatCAMGUI.py:665 +msgid "Eraser\tCtrl+E" +msgstr "Borracha\tCtrl+E" + +#: flatcamGUI/FlatCAMGUI.py:667 +msgid "Transform\tAlt+R" +msgstr "Transformar\tAlt+R" + +#: flatcamGUI/FlatCAMGUI.py:694 +msgid "Enable Plot" +msgstr "Habilitar Gráfico" + +#: flatcamGUI/FlatCAMGUI.py:696 +msgid "Disable Plot" +msgstr "Desabilitar Gráfico" + +#: flatcamGUI/FlatCAMGUI.py:700 +msgid "Set Color" +msgstr "Definir cor" + +#: flatcamGUI/FlatCAMGUI.py:742 +msgid "Generate CNC" +msgstr "Gerar CNC" + +#: flatcamGUI/FlatCAMGUI.py:744 +msgid "View Source" +msgstr "Ver Fonte" + +#: flatcamGUI/FlatCAMGUI.py:749 flatcamGUI/FlatCAMGUI.py:863 +#: flatcamGUI/FlatCAMGUI.py:1072 flatcamGUI/FlatCAMGUI.py:2138 +#: flatcamGUI/FlatCAMGUI.py:2282 flatcamGUI/FlatCAMGUI.py:2572 +#: flatcamGUI/FlatCAMGUI.py:2775 flatcamGUI/ObjectUI.py:1617 +#: flatcamObjects/FlatCAMGeometry.py:502 flatcamTools/ToolPanelize.py:540 +#: flatcamTools/ToolPanelize.py:567 flatcamTools/ToolPanelize.py:660 +#: flatcamTools/ToolPanelize.py:689 flatcamTools/ToolPanelize.py:751 +msgid "Copy" +msgstr "Copiar" + +#: flatcamGUI/FlatCAMGUI.py:757 flatcamGUI/FlatCAMGUI.py:2295 +#: flatcamTools/ToolProperties.py:31 +msgid "Properties" +msgstr "Propriedades" + +#: flatcamGUI/FlatCAMGUI.py:786 +msgid "File Toolbar" +msgstr "Barra de Ferramentas de Arquivos" + +#: flatcamGUI/FlatCAMGUI.py:790 +msgid "Edit Toolbar" +msgstr "Barra de Ferramentas Editar" + +#: flatcamGUI/FlatCAMGUI.py:794 +msgid "View Toolbar" +msgstr "Barra de Ferramentas Ver" + +#: flatcamGUI/FlatCAMGUI.py:798 +msgid "Shell Toolbar" +msgstr "Barra de Ferramentas Shell" + +#: flatcamGUI/FlatCAMGUI.py:802 +msgid "Tools Toolbar" +msgstr "Barra de Ferramentas Ferramentas" + +#: flatcamGUI/FlatCAMGUI.py:806 +msgid "Excellon Editor Toolbar" +msgstr "Barra de Ferramentas Editor Excellon" + +#: flatcamGUI/FlatCAMGUI.py:812 +msgid "Geometry Editor Toolbar" +msgstr "Barra de Ferramentas Editor de Geometria" + +#: flatcamGUI/FlatCAMGUI.py:816 +msgid "Gerber Editor Toolbar" +msgstr "Barra de Ferramentas Editor Gerber" + +#: flatcamGUI/FlatCAMGUI.py:820 +msgid "Grid Toolbar" +msgstr "Barra de Ferramentas Grade" + +#: flatcamGUI/FlatCAMGUI.py:841 flatcamGUI/FlatCAMGUI.py:2549 +msgid "Open project" +msgstr "Abrir projeto" + +#: flatcamGUI/FlatCAMGUI.py:843 flatcamGUI/FlatCAMGUI.py:2551 +msgid "Save project" +msgstr "Salvar projeto" + +#: flatcamGUI/FlatCAMGUI.py:849 flatcamGUI/FlatCAMGUI.py:2557 +msgid "New Blank Geometry" +msgstr "Nova Geometria em Branco" + +#: flatcamGUI/FlatCAMGUI.py:851 flatcamGUI/FlatCAMGUI.py:2559 +msgid "New Blank Gerber" +msgstr "Novo Gerber em Branco" + +#: flatcamGUI/FlatCAMGUI.py:853 flatcamGUI/FlatCAMGUI.py:2561 +msgid "New Blank Excellon" +msgstr "Novo Excellon em Branco" + +#: flatcamGUI/FlatCAMGUI.py:858 flatcamGUI/FlatCAMGUI.py:2567 +msgid "Save Object and close the Editor" +msgstr "Salvar objeto e fechar o editor" + +#: flatcamGUI/FlatCAMGUI.py:865 flatcamGUI/FlatCAMGUI.py:2574 +msgid "&Delete" +msgstr "&Excluir" + +#: flatcamGUI/FlatCAMGUI.py:868 flatcamGUI/FlatCAMGUI.py:1729 +#: flatcamGUI/FlatCAMGUI.py:1935 flatcamGUI/FlatCAMGUI.py:2577 +#: flatcamTools/ToolDistance.py:35 flatcamTools/ToolDistance.py:195 +msgid "Distance Tool" +msgstr "Ferramenta de Distância" + +#: flatcamGUI/FlatCAMGUI.py:870 flatcamGUI/FlatCAMGUI.py:2579 +msgid "Distance Min Tool" +msgstr "Ferramenta Distância Min" + +#: flatcamGUI/FlatCAMGUI.py:872 flatcamGUI/FlatCAMGUI.py:1722 +#: flatcamGUI/FlatCAMGUI.py:2581 +msgid "Set Origin" +msgstr "Definir Origem" + +#: flatcamGUI/FlatCAMGUI.py:874 +msgid "Move to Origin" +msgstr "Mover para Origem" + +#: flatcamGUI/FlatCAMGUI.py:877 flatcamGUI/FlatCAMGUI.py:2583 +msgid "Jump to Location" +msgstr "Ir para a localização" + +#: flatcamGUI/FlatCAMGUI.py:879 flatcamGUI/FlatCAMGUI.py:1734 +#: flatcamGUI/FlatCAMGUI.py:2585 +msgid "Locate in Object" +msgstr "Localizar em Objeto" + +#: flatcamGUI/FlatCAMGUI.py:885 flatcamGUI/FlatCAMGUI.py:2591 +msgid "&Replot" +msgstr "&Redesenhar" + +#: flatcamGUI/FlatCAMGUI.py:887 flatcamGUI/FlatCAMGUI.py:2593 +msgid "&Clear plot" +msgstr "Limpar gráfi&co" + +#: flatcamGUI/FlatCAMGUI.py:889 flatcamGUI/FlatCAMGUI.py:1725 +#: flatcamGUI/FlatCAMGUI.py:2595 +msgid "Zoom In" +msgstr "Zoom +" + +#: flatcamGUI/FlatCAMGUI.py:891 flatcamGUI/FlatCAMGUI.py:1725 +#: flatcamGUI/FlatCAMGUI.py:2597 +msgid "Zoom Out" +msgstr "Zoom -" + +#: flatcamGUI/FlatCAMGUI.py:893 flatcamGUI/FlatCAMGUI.py:1724 +#: flatcamGUI/FlatCAMGUI.py:2185 flatcamGUI/FlatCAMGUI.py:2599 +msgid "Zoom Fit" +msgstr "Zoom Ajustado" + +#: flatcamGUI/FlatCAMGUI.py:901 flatcamGUI/FlatCAMGUI.py:2605 +msgid "&Command Line" +msgstr "Linha de &Comando" + +#: flatcamGUI/FlatCAMGUI.py:913 flatcamGUI/FlatCAMGUI.py:2617 +msgid "2Sided Tool" +msgstr "PCB de 2 Faces" + +#: flatcamGUI/FlatCAMGUI.py:915 flatcamGUI/FlatCAMGUI.py:1740 +#: flatcamGUI/FlatCAMGUI.py:2619 +msgid "Align Objects Tool" +msgstr "Ferramenta Alinhar Objetos" + +#: flatcamGUI/FlatCAMGUI.py:917 flatcamGUI/FlatCAMGUI.py:1741 +#: flatcamGUI/FlatCAMGUI.py:2621 flatcamTools/ToolExtractDrills.py:393 +msgid "Extract Drills Tool" +msgstr "Ferramenta Extrair Furos" + +#: flatcamGUI/FlatCAMGUI.py:920 flatcamGUI/ObjectUI.py:596 +#: flatcamTools/ToolCutOut.py:440 +msgid "Cutout Tool" +msgstr "Ferramenta de Recorte" + +#: flatcamGUI/FlatCAMGUI.py:922 flatcamGUI/FlatCAMGUI.py:2626 +#: flatcamGUI/ObjectUI.py:574 flatcamGUI/ObjectUI.py:2157 +#: flatcamTools/ToolNCC.py:974 +msgid "NCC Tool" +msgstr "Ferramenta NCC" + +#: flatcamGUI/FlatCAMGUI.py:928 flatcamGUI/FlatCAMGUI.py:2632 +msgid "Panel Tool" +msgstr "Ferramenta de Painel" + +#: flatcamGUI/FlatCAMGUI.py:930 flatcamGUI/FlatCAMGUI.py:2634 +#: flatcamTools/ToolFilm.py:586 +msgid "Film Tool" +msgstr "Ferramenta de Filme" + +#: flatcamGUI/FlatCAMGUI.py:932 flatcamGUI/FlatCAMGUI.py:2636 +#: flatcamTools/ToolSolderPaste.py:553 +msgid "SolderPaste Tool" +msgstr "Ferramenta Pasta de Solda" + +#: flatcamGUI/FlatCAMGUI.py:934 flatcamGUI/FlatCAMGUI.py:2638 +#: flatcamTools/ToolSub.py:35 +msgid "Subtract Tool" +msgstr "Ferramenta Subtrair" + +#: flatcamGUI/FlatCAMGUI.py:936 flatcamGUI/FlatCAMGUI.py:2640 +#: flatcamTools/ToolRulesCheck.py:616 +msgid "Rules Tool" +msgstr "Ferramenta de Regras" + +#: flatcamGUI/FlatCAMGUI.py:938 flatcamGUI/FlatCAMGUI.py:1743 +#: flatcamGUI/FlatCAMGUI.py:2642 flatcamTools/ToolOptimal.py:33 +#: flatcamTools/ToolOptimal.py:307 +msgid "Optimal Tool" +msgstr "Ferramenta Ideal" + +#: flatcamGUI/FlatCAMGUI.py:943 flatcamGUI/FlatCAMGUI.py:1740 +#: flatcamGUI/FlatCAMGUI.py:2647 +msgid "Calculators Tool" +msgstr "Calculadoras" + +#: flatcamGUI/FlatCAMGUI.py:947 flatcamGUI/FlatCAMGUI.py:1744 +#: flatcamGUI/FlatCAMGUI.py:2651 flatcamTools/ToolQRCode.py:43 +#: flatcamTools/ToolQRCode.py:382 +msgid "QRCode Tool" +msgstr "Ferramenta de QRCode" + +#: flatcamGUI/FlatCAMGUI.py:949 flatcamGUI/FlatCAMGUI.py:2653 +#: flatcamTools/ToolCopperThieving.py:39 flatcamTools/ToolCopperThieving.py:568 +msgid "Copper Thieving Tool" +msgstr "Ferramenta de Adição de Cobre" + +#: flatcamGUI/FlatCAMGUI.py:952 flatcamGUI/FlatCAMGUI.py:1741 +#: flatcamGUI/FlatCAMGUI.py:2656 flatcamTools/ToolFiducials.py:33 +#: flatcamTools/ToolFiducials.py:395 +msgid "Fiducials Tool" +msgstr "Ferramenta de Fiduciais" + +#: flatcamGUI/FlatCAMGUI.py:954 flatcamGUI/FlatCAMGUI.py:2658 +#: flatcamTools/ToolCalibration.py:37 flatcamTools/ToolCalibration.py:759 +msgid "Calibration Tool" +msgstr "Calibração" + +#: flatcamGUI/FlatCAMGUI.py:956 flatcamGUI/FlatCAMGUI.py:1741 +#: flatcamGUI/FlatCAMGUI.py:2660 +msgid "Punch Gerber Tool" +msgstr "Ferramenta Socar Gerber" + +#: flatcamGUI/FlatCAMGUI.py:958 flatcamGUI/FlatCAMGUI.py:2662 +#: flatcamTools/ToolInvertGerber.py:31 +msgid "Invert Gerber Tool" +msgstr "Ferramenta Inverter Gerber" + +#: flatcamGUI/FlatCAMGUI.py:964 flatcamGUI/FlatCAMGUI.py:990 +#: flatcamGUI/FlatCAMGUI.py:1042 flatcamGUI/FlatCAMGUI.py:2668 +#: flatcamGUI/FlatCAMGUI.py:2746 +msgid "Select" +msgstr "Selecionar" + +#: flatcamGUI/FlatCAMGUI.py:966 flatcamGUI/FlatCAMGUI.py:2670 +msgid "Add Drill Hole" +msgstr "Adicionar Furo" + +#: flatcamGUI/FlatCAMGUI.py:968 flatcamGUI/FlatCAMGUI.py:2672 +msgid "Add Drill Hole Array" +msgstr "Adicionar Matriz do Furos" + +#: flatcamGUI/FlatCAMGUI.py:970 flatcamGUI/FlatCAMGUI.py:2020 +#: flatcamGUI/FlatCAMGUI.py:2273 flatcamGUI/FlatCAMGUI.py:2676 +msgid "Add Slot" +msgstr "Adicionar Ranhura" + +#: flatcamGUI/FlatCAMGUI.py:972 flatcamGUI/FlatCAMGUI.py:2019 +#: flatcamGUI/FlatCAMGUI.py:2275 flatcamGUI/FlatCAMGUI.py:2678 +msgid "Add Slot Array" +msgstr "Adicionar Matriz de Ranhuras" + +#: flatcamGUI/FlatCAMGUI.py:974 flatcamGUI/FlatCAMGUI.py:2278 +#: flatcamGUI/FlatCAMGUI.py:2674 +msgid "Resize Drill" +msgstr "Redimensionar Furo" + +#: flatcamGUI/FlatCAMGUI.py:978 flatcamGUI/FlatCAMGUI.py:2682 +msgid "Copy Drill" +msgstr "Copiar Furo" + +#: flatcamGUI/FlatCAMGUI.py:980 flatcamGUI/FlatCAMGUI.py:2684 +msgid "Delete Drill" +msgstr "Excluir Furo" + +#: flatcamGUI/FlatCAMGUI.py:984 flatcamGUI/FlatCAMGUI.py:2688 +msgid "Move Drill" +msgstr "Mover Furo" + +#: flatcamGUI/FlatCAMGUI.py:992 flatcamGUI/FlatCAMGUI.py:2696 +msgid "Add Circle" +msgstr "Adicionar Círculo" + +#: flatcamGUI/FlatCAMGUI.py:994 flatcamGUI/FlatCAMGUI.py:2698 +msgid "Add Arc" +msgstr "Adicionar Arco" + +#: flatcamGUI/FlatCAMGUI.py:996 flatcamGUI/FlatCAMGUI.py:2700 +msgid "Add Rectangle" +msgstr "Adicionar Retângulo" + +#: flatcamGUI/FlatCAMGUI.py:1000 flatcamGUI/FlatCAMGUI.py:2704 +msgid "Add Path" +msgstr "Adicionar Caminho" + +#: flatcamGUI/FlatCAMGUI.py:1002 flatcamGUI/FlatCAMGUI.py:2706 +msgid "Add Polygon" +msgstr "Adicionar Polígono" + +#: flatcamGUI/FlatCAMGUI.py:1005 flatcamGUI/FlatCAMGUI.py:2709 +msgid "Add Text" +msgstr "Adicionar Texto" + +#: flatcamGUI/FlatCAMGUI.py:1007 flatcamGUI/FlatCAMGUI.py:2711 +msgid "Add Buffer" +msgstr "Adicionar Buffer" + +#: flatcamGUI/FlatCAMGUI.py:1009 flatcamGUI/FlatCAMGUI.py:2713 +msgid "Paint Shape" +msgstr "Pintar Forma" + +#: flatcamGUI/FlatCAMGUI.py:1011 flatcamGUI/FlatCAMGUI.py:1068 +#: flatcamGUI/FlatCAMGUI.py:2214 flatcamGUI/FlatCAMGUI.py:2259 +#: flatcamGUI/FlatCAMGUI.py:2715 flatcamGUI/FlatCAMGUI.py:2771 +msgid "Eraser" +msgstr "Borracha" + +#: flatcamGUI/FlatCAMGUI.py:1015 flatcamGUI/FlatCAMGUI.py:2719 +msgid "Polygon Union" +msgstr "União de Polígonos" + +#: flatcamGUI/FlatCAMGUI.py:1017 flatcamGUI/FlatCAMGUI.py:2721 +msgid "Polygon Explode" +msgstr "Explosão de Polígonos" + +#: flatcamGUI/FlatCAMGUI.py:1020 flatcamGUI/FlatCAMGUI.py:2724 +msgid "Polygon Intersection" +msgstr "Interseção de Polígonos" + +#: flatcamGUI/FlatCAMGUI.py:1022 flatcamGUI/FlatCAMGUI.py:2726 +msgid "Polygon Subtraction" +msgstr "Subtração de Polígonos" + +#: flatcamGUI/FlatCAMGUI.py:1026 flatcamGUI/FlatCAMGUI.py:2730 +msgid "Cut Path" +msgstr "Caminho de Corte" + +#: flatcamGUI/FlatCAMGUI.py:1028 +msgid "Copy Shape(s)" +msgstr "Copiar Forma(s)" + +#: flatcamGUI/FlatCAMGUI.py:1031 +msgid "Delete Shape '-'" +msgstr "Excluir Forma '-'" + +#: flatcamGUI/FlatCAMGUI.py:1033 flatcamGUI/FlatCAMGUI.py:1076 +#: flatcamGUI/FlatCAMGUI.py:2226 flatcamGUI/FlatCAMGUI.py:2263 +#: flatcamGUI/FlatCAMGUI.py:2736 flatcamGUI/FlatCAMGUI.py:2779 +#: flatcamGUI/ObjectUI.py:109 +msgid "Transformations" +msgstr "Transformações" + +#: flatcamGUI/FlatCAMGUI.py:1036 +msgid "Move Objects " +msgstr "Mover Objetos " + +#: flatcamGUI/FlatCAMGUI.py:1044 flatcamGUI/FlatCAMGUI.py:2139 +#: flatcamGUI/FlatCAMGUI.py:2748 +msgid "Add Pad" +msgstr "Adicionar Pad" + +#: flatcamGUI/FlatCAMGUI.py:1048 flatcamGUI/FlatCAMGUI.py:2140 +#: flatcamGUI/FlatCAMGUI.py:2752 +msgid "Add Track" +msgstr "Adicionar Trilha" + +#: flatcamGUI/FlatCAMGUI.py:1050 flatcamGUI/FlatCAMGUI.py:2139 +#: flatcamGUI/FlatCAMGUI.py:2754 +msgid "Add Region" +msgstr "Adicionar Região" + +#: flatcamGUI/FlatCAMGUI.py:1052 flatcamGUI/FlatCAMGUI.py:2245 +#: flatcamGUI/FlatCAMGUI.py:2756 +msgid "Poligonize" +msgstr "Poligonizar" + +#: flatcamGUI/FlatCAMGUI.py:1055 flatcamGUI/FlatCAMGUI.py:2247 +#: flatcamGUI/FlatCAMGUI.py:2759 +msgid "SemiDisc" +msgstr "SemiDisco" + +#: flatcamGUI/FlatCAMGUI.py:1057 flatcamGUI/FlatCAMGUI.py:2249 +#: flatcamGUI/FlatCAMGUI.py:2761 +msgid "Disc" +msgstr "Disco" + +#: flatcamGUI/FlatCAMGUI.py:1065 flatcamGUI/FlatCAMGUI.py:2257 +#: flatcamGUI/FlatCAMGUI.py:2769 +msgid "Mark Area" +msgstr "Marcar Área" + +#: flatcamGUI/FlatCAMGUI.py:1079 flatcamGUI/FlatCAMGUI.py:2139 +#: flatcamGUI/FlatCAMGUI.py:2230 flatcamGUI/FlatCAMGUI.py:2293 +#: flatcamGUI/FlatCAMGUI.py:2782 flatcamTools/ToolMove.py:27 +msgid "Move" +msgstr "Mover" + +#: flatcamGUI/FlatCAMGUI.py:1087 flatcamGUI/FlatCAMGUI.py:2791 +msgid "Snap to grid" +msgstr "Encaixar na Grade" + +#: flatcamGUI/FlatCAMGUI.py:1090 flatcamGUI/FlatCAMGUI.py:2794 +msgid "Grid X snapping distance" +msgstr "Distância de encaixe Grade X" + +#: flatcamGUI/FlatCAMGUI.py:1095 flatcamGUI/FlatCAMGUI.py:2799 +msgid "Grid Y snapping distance" +msgstr "Distância de encaixe Grade Y" + +#: flatcamGUI/FlatCAMGUI.py:1101 flatcamGUI/FlatCAMGUI.py:2805 +msgid "" +"When active, value on Grid_X\n" +"is copied to the Grid_Y value." +msgstr "" +"Quando ativo, o valor em Grid_X\n" +"é copiado para o valor Grid_Y." + +#: flatcamGUI/FlatCAMGUI.py:1108 flatcamGUI/FlatCAMGUI.py:2812 +msgid "Snap to corner" +msgstr "Encaixar no canto" + +#: flatcamGUI/FlatCAMGUI.py:1112 flatcamGUI/FlatCAMGUI.py:2816 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:78 +msgid "Max. magnet distance" +msgstr "Distância magnética max." + +#: flatcamGUI/FlatCAMGUI.py:1149 +msgid "Selected" +msgstr "Selecionado" + +#: flatcamGUI/FlatCAMGUI.py:1177 flatcamGUI/FlatCAMGUI.py:1185 +msgid "Plot Area" +msgstr "Área de Gráfico" + +#: flatcamGUI/FlatCAMGUI.py:1212 +msgid "General" +msgstr "Geral" + +#: flatcamGUI/FlatCAMGUI.py:1227 flatcamTools/ToolCopperThieving.py:74 +#: flatcamTools/ToolDblSided.py:64 flatcamTools/ToolExtractDrills.py:61 +#: flatcamTools/ToolInvertGerber.py:72 flatcamTools/ToolOptimal.py:71 +#: flatcamTools/ToolPunchGerber.py:64 +msgid "GERBER" +msgstr "Gerber" + +#: flatcamGUI/FlatCAMGUI.py:1237 flatcamTools/ToolDblSided.py:92 +msgid "EXCELLON" +msgstr "Excellon" + +#: flatcamGUI/FlatCAMGUI.py:1247 flatcamTools/ToolDblSided.py:120 +msgid "GEOMETRY" +msgstr "Geometria" + +#: flatcamGUI/FlatCAMGUI.py:1257 +msgid "CNC-JOB" +msgstr "Trabalho CNC" + +#: flatcamGUI/FlatCAMGUI.py:1266 flatcamGUI/ObjectUI.py:563 +#: flatcamGUI/ObjectUI.py:2132 +msgid "TOOLS" +msgstr "Ferramentas" + +#: flatcamGUI/FlatCAMGUI.py:1275 +msgid "TOOLS 2" +msgstr "Ferramentas 2" + +#: flatcamGUI/FlatCAMGUI.py:1285 +msgid "UTILITIES" +msgstr "Utilitários" + +#: flatcamGUI/FlatCAMGUI.py:1302 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:192 +msgid "Restore Defaults" +msgstr "Restaurar padrões" + +#: flatcamGUI/FlatCAMGUI.py:1305 +msgid "" +"Restore the entire set of default values\n" +"to the initial values loaded after first launch." +msgstr "" +"Restaurar todo o conjunto de valores padrão\n" +"para os valores iniciais carregados após o primeiro lançamento." + +#: flatcamGUI/FlatCAMGUI.py:1310 +msgid "Open Pref Folder" +msgstr "Abrir a Pasta Pref" + +#: flatcamGUI/FlatCAMGUI.py:1313 +msgid "Open the folder where FlatCAM save the preferences files." +msgstr "Abre a pasta onde o FlatCAM salva os arquivos de preferências." + +#: flatcamGUI/FlatCAMGUI.py:1317 flatcamGUI/FlatCAMGUI.py:2517 +msgid "Clear GUI Settings" +msgstr "Limpar Config. da GUI" + +#: flatcamGUI/FlatCAMGUI.py:1321 +msgid "" +"Clear the GUI settings for FlatCAM,\n" +"such as: layout, gui state, style, hdpi support etc." +msgstr "" +"Limpa as configurações da GUI para FlatCAM,\n" +"como: layout, estado de gui, estilo, suporte a HDPI etc." + +#: flatcamGUI/FlatCAMGUI.py:1332 +msgid "Apply" +msgstr "Aplicar" + +#: flatcamGUI/FlatCAMGUI.py:1335 +msgid "Apply the current preferences without saving to a file." +msgstr "Aplica as preferências atuais sem salvar em um arquivo." + +#: flatcamGUI/FlatCAMGUI.py:1342 +msgid "" +"Save the current settings in the 'current_defaults' file\n" +"which is the file storing the working default preferences." +msgstr "" +"Salva as configurações atuais no arquivo 'current_defaults'\n" +"que armazena as preferências padrão de trabalho." + +#: flatcamGUI/FlatCAMGUI.py:1350 +msgid "Will not save the changes and will close the preferences window." +msgstr "Não salvará as alterações e fechará a janela de preferências." + +#: flatcamGUI/FlatCAMGUI.py:1719 +msgid "SHOW SHORTCUT LIST" +msgstr "Mostra Lista de Teclas de Atalho" + +#: flatcamGUI/FlatCAMGUI.py:1719 +msgid "Switch to Project Tab" +msgstr "Alterna para a Aba Projeto" + +#: flatcamGUI/FlatCAMGUI.py:1719 +msgid "Switch to Selected Tab" +msgstr "Alterna para a Aba Selecionado" + +#: flatcamGUI/FlatCAMGUI.py:1720 +msgid "Switch to Tool Tab" +msgstr "Alterna para a Aba Ferramentas" + +#: flatcamGUI/FlatCAMGUI.py:1721 +msgid "New Gerber" +msgstr "Novo Gerber" + +#: flatcamGUI/FlatCAMGUI.py:1721 +msgid "Edit Object (if selected)" +msgstr "Editar Objeto (se selecionado)" + +#: flatcamGUI/FlatCAMGUI.py:1721 +msgid "Jump to Coordinates" +msgstr "Ir para a Coordenada" + +#: flatcamGUI/FlatCAMGUI.py:1722 +msgid "New Excellon" +msgstr "Novo Excellon" + +#: flatcamGUI/FlatCAMGUI.py:1722 +msgid "Move Obj" +msgstr "Mover Obj" + +#: flatcamGUI/FlatCAMGUI.py:1722 +msgid "New Geometry" +msgstr "Nova Geometria" + +#: flatcamGUI/FlatCAMGUI.py:1722 +msgid "Change Units" +msgstr "Alternar Unidades" + +#: flatcamGUI/FlatCAMGUI.py:1723 +msgid "Open Properties Tool" +msgstr "Abre Ferramenta Propriedades" + +#: flatcamGUI/FlatCAMGUI.py:1723 +msgid "Rotate by 90 degree CW" +msgstr "Girar 90º sentido horário" + +#: flatcamGUI/FlatCAMGUI.py:1723 +msgid "Shell Toggle" +msgstr "Alterna Linha de Comando" + +#: flatcamGUI/FlatCAMGUI.py:1724 +msgid "" +"Add a Tool (when in Geometry Selected Tab or in Tools NCC or Tools Paint)" +msgstr "" +"Adicionar uma ferramenta (quando estiver na Aba Selecionado ou em " +"Ferramentas NCC ou de Pintura)" + +#: flatcamGUI/FlatCAMGUI.py:1725 +msgid "Flip on X_axis" +msgstr "Espelhar no Eixo X" + +#: flatcamGUI/FlatCAMGUI.py:1725 +msgid "Flip on Y_axis" +msgstr "Espelhar no Eixo Y" + +#: flatcamGUI/FlatCAMGUI.py:1728 +msgid "Copy Obj" +msgstr "Copiar Obj" + +#: flatcamGUI/FlatCAMGUI.py:1728 +msgid "Open Tools Database" +msgstr "Abre Banco de Dados de Ferramentas" + +#: flatcamGUI/FlatCAMGUI.py:1729 +msgid "Open Excellon File" +msgstr "Abrir Excellon" + +#: flatcamGUI/FlatCAMGUI.py:1729 +msgid "Open Gerber File" +msgstr "Abrir Gerber" + +#: flatcamGUI/FlatCAMGUI.py:1729 +msgid "New Project" +msgstr "Novo Projeto" + +#: flatcamGUI/FlatCAMGUI.py:1730 flatcamTools/ToolPDF.py:42 +msgid "PDF Import Tool" +msgstr "Ferramenta de Importação de PDF" + +#: flatcamGUI/FlatCAMGUI.py:1730 +msgid "Save Project" +msgstr "Salvar Projeto" + +#: flatcamGUI/FlatCAMGUI.py:1730 +msgid "Toggle Plot Area" +msgstr "Alternar Área de Gráficos" + +#: flatcamGUI/FlatCAMGUI.py:1733 +msgid "Copy Obj_Name" +msgstr "Copiar Obj_Name" + +#: flatcamGUI/FlatCAMGUI.py:1734 +msgid "Toggle Code Editor" +msgstr "Alternar o Editor de Códigos" + +#: flatcamGUI/FlatCAMGUI.py:1734 +msgid "Toggle the axis" +msgstr "Alternar o Eixo" + +#: flatcamGUI/FlatCAMGUI.py:1734 flatcamGUI/FlatCAMGUI.py:1933 +#: flatcamGUI/FlatCAMGUI.py:2020 flatcamGUI/FlatCAMGUI.py:2142 +msgid "Distance Minimum Tool" +msgstr "Ferramenta Distância Mínima" + +#: flatcamGUI/FlatCAMGUI.py:1735 +msgid "Open Preferences Window" +msgstr "Abrir Preferências" + +#: flatcamGUI/FlatCAMGUI.py:1736 +msgid "Rotate by 90 degree CCW" +msgstr "Girar 90° sentido anti-horário" + +#: flatcamGUI/FlatCAMGUI.py:1736 +msgid "Run a Script" +msgstr "Executar um Script" + +#: flatcamGUI/FlatCAMGUI.py:1736 +msgid "Toggle the workspace" +msgstr "Alternar Área de Trabalho" + +#: flatcamGUI/FlatCAMGUI.py:1736 +msgid "Skew on X axis" +msgstr "Inclinação no eixo X" + +#: flatcamGUI/FlatCAMGUI.py:1737 +msgid "Skew on Y axis" +msgstr "Inclinação no eixo Y" + +#: flatcamGUI/FlatCAMGUI.py:1740 +msgid "2-Sided PCB Tool" +msgstr "PCB 2 Faces" + +#: flatcamGUI/FlatCAMGUI.py:1740 +msgid "Transformations Tool" +msgstr "Transformações" + +#: flatcamGUI/FlatCAMGUI.py:1742 +msgid "Solder Paste Dispensing Tool" +msgstr "Pasta de Solda" + +#: flatcamGUI/FlatCAMGUI.py:1743 +msgid "Film PCB Tool" +msgstr "Ferramenta de Filme PCB" + +#: flatcamGUI/FlatCAMGUI.py:1743 +msgid "Non-Copper Clearing Tool" +msgstr "Área Sem Cobre (NCC)" + +#: flatcamGUI/FlatCAMGUI.py:1744 +msgid "Paint Area Tool" +msgstr "Área de Pintura" + +#: flatcamGUI/FlatCAMGUI.py:1744 +msgid "Rules Check Tool" +msgstr "Ferramenta de Verificação de Regras" + +#: flatcamGUI/FlatCAMGUI.py:1745 +msgid "View File Source" +msgstr "Ver Arquivo Fonte" + +#: flatcamGUI/FlatCAMGUI.py:1746 +msgid "Cutout PCB Tool" +msgstr "Ferramenta de Recorte" + +#: flatcamGUI/FlatCAMGUI.py:1746 +msgid "Enable all Plots" +msgstr "Habilitar todos os Gráficos" + +#: flatcamGUI/FlatCAMGUI.py:1746 +msgid "Disable all Plots" +msgstr "Desabilitar todos os Gráficos" + +#: flatcamGUI/FlatCAMGUI.py:1746 +msgid "Disable Non-selected Plots" +msgstr "Desabilitar os gráficos não selecionados" + +#: flatcamGUI/FlatCAMGUI.py:1747 +msgid "Toggle Full Screen" +msgstr "Alternar Tela Cheia" + +#: flatcamGUI/FlatCAMGUI.py:1750 +msgid "Abort current task (gracefully)" +msgstr "Abortar a tarefa atual (normalmente)" + +#: flatcamGUI/FlatCAMGUI.py:1753 +msgid "Save Project As" +msgstr "Salvar Projeto Como" + +#: flatcamGUI/FlatCAMGUI.py:1754 +msgid "" +"Paste Special. Will convert a Windows path style to the one required in Tcl " +"Shell" +msgstr "" +"Colar Especial. Converterá um estilo de caminho do Windows para o exigido na " +"Linha de Comando Tcl" + +#: flatcamGUI/FlatCAMGUI.py:1757 +msgid "Open Online Manual" +msgstr "Abrir Manual Online" + +#: flatcamGUI/FlatCAMGUI.py:1758 +msgid "Open Online Tutorials" +msgstr "Abrir Tutoriais Online" + +#: flatcamGUI/FlatCAMGUI.py:1758 +msgid "Refresh Plots" +msgstr "Atualizar Gráfico" + +#: flatcamGUI/FlatCAMGUI.py:1758 flatcamTools/ToolSolderPaste.py:509 +msgid "Delete Object" +msgstr "Excluir Objeto" + +#: flatcamGUI/FlatCAMGUI.py:1758 +msgid "Alternate: Delete Tool" +msgstr "Alternativo: Excluir Ferramenta" + +#: flatcamGUI/FlatCAMGUI.py:1759 +msgid "(left to Key_1)Toggle Notebook Area (Left Side)" +msgstr "(esquerda da Tecla_1) Alterna Área do Bloco de Notas (lado esquerdo)" + +#: flatcamGUI/FlatCAMGUI.py:1759 +msgid "En(Dis)able Obj Plot" +msgstr "Des(h)abilitar Gráfico" + +#: flatcamGUI/FlatCAMGUI.py:1760 +msgid "Deselects all objects" +msgstr "Desmarca todos os objetos" + +#: flatcamGUI/FlatCAMGUI.py:1774 +msgid "Editor Shortcut list" +msgstr "Lista de Teclas de Atalho" + +#: flatcamGUI/FlatCAMGUI.py:1928 +msgid "GEOMETRY EDITOR" +msgstr "Editor de Geometria" + +#: flatcamGUI/FlatCAMGUI.py:1928 +msgid "Draw an Arc" +msgstr "Desenha um Arco" + +#: flatcamGUI/FlatCAMGUI.py:1928 +msgid "Copy Geo Item" +msgstr "Copiar Geo" + +#: flatcamGUI/FlatCAMGUI.py:1929 +msgid "Within Add Arc will toogle the ARC direction: CW or CCW" +msgstr "Em Adicionar Arco, alterna o sentido: horário ou anti-horário" + +#: flatcamGUI/FlatCAMGUI.py:1929 +msgid "Polygon Intersection Tool" +msgstr "Interseção de Polígonos" + +#: flatcamGUI/FlatCAMGUI.py:1930 +msgid "Geo Paint Tool" +msgstr "Ferramenta de Pintura" + +#: flatcamGUI/FlatCAMGUI.py:1930 flatcamGUI/FlatCAMGUI.py:2019 +#: flatcamGUI/FlatCAMGUI.py:2139 +msgid "Jump to Location (x, y)" +msgstr "Ir para a Localização (x, y)" + +#: flatcamGUI/FlatCAMGUI.py:1930 +msgid "Toggle Corner Snap" +msgstr "Alternar Encaixe de Canto" + +#: flatcamGUI/FlatCAMGUI.py:1930 +msgid "Move Geo Item" +msgstr "Mover Geometria" + +#: flatcamGUI/FlatCAMGUI.py:1931 +msgid "Within Add Arc will cycle through the ARC modes" +msgstr "Em Adicionar Arco, alterna o tipo de arco" + +#: flatcamGUI/FlatCAMGUI.py:1931 +msgid "Draw a Polygon" +msgstr "Desenha um Polígono" + +#: flatcamGUI/FlatCAMGUI.py:1931 +msgid "Draw a Circle" +msgstr "Desenha um Círculo" + +#: flatcamGUI/FlatCAMGUI.py:1932 +msgid "Draw a Path" +msgstr "Desenha um Caminho" + +#: flatcamGUI/FlatCAMGUI.py:1932 +msgid "Draw Rectangle" +msgstr "Desenha um Retângulo" + +#: flatcamGUI/FlatCAMGUI.py:1932 +msgid "Polygon Subtraction Tool" +msgstr "Ferram. de Subtração de Polígono" + +#: flatcamGUI/FlatCAMGUI.py:1932 +msgid "Add Text Tool" +msgstr "Ferramenta de Texto" + +#: flatcamGUI/FlatCAMGUI.py:1933 +msgid "Polygon Union Tool" +msgstr "União de Polígonos" + +#: flatcamGUI/FlatCAMGUI.py:1933 +msgid "Flip shape on X axis" +msgstr "Espelhar no Eixo X" + +#: flatcamGUI/FlatCAMGUI.py:1933 +msgid "Flip shape on Y axis" +msgstr "Espelhar no Eixo Y" + +#: flatcamGUI/FlatCAMGUI.py:1934 +msgid "Skew shape on X axis" +msgstr "Inclinação no eixo X" + +#: flatcamGUI/FlatCAMGUI.py:1934 +msgid "Skew shape on Y axis" +msgstr "Inclinação no eixo Y" + +#: flatcamGUI/FlatCAMGUI.py:1934 +msgid "Editor Transformation Tool" +msgstr "Ferramenta Transformar" + +#: flatcamGUI/FlatCAMGUI.py:1935 +msgid "Offset shape on X axis" +msgstr "Deslocamento no eixo X" + +#: flatcamGUI/FlatCAMGUI.py:1935 +msgid "Offset shape on Y axis" +msgstr "Deslocamento no eixo Y" + +#: flatcamGUI/FlatCAMGUI.py:1936 flatcamGUI/FlatCAMGUI.py:2022 +#: flatcamGUI/FlatCAMGUI.py:2144 +msgid "Save Object and Exit Editor" +msgstr "Salvar Objeto e Fechar o Editor" + +#: flatcamGUI/FlatCAMGUI.py:1936 +msgid "Polygon Cut Tool" +msgstr "Corte de Polígonos" + +#: flatcamGUI/FlatCAMGUI.py:1937 +msgid "Rotate Geometry" +msgstr "Girar Geometria" + +#: flatcamGUI/FlatCAMGUI.py:1937 +msgid "Finish drawing for certain tools" +msgstr "Concluir desenho para certas ferramentas" + +#: flatcamGUI/FlatCAMGUI.py:1937 flatcamGUI/FlatCAMGUI.py:2022 +#: flatcamGUI/FlatCAMGUI.py:2142 +msgid "Abort and return to Select" +msgstr "Abortar e retornar à Seleção" + +#: flatcamGUI/FlatCAMGUI.py:1938 flatcamGUI/FlatCAMGUI.py:2734 +msgid "Delete Shape" +msgstr "Excluir Forma" + +#: flatcamGUI/FlatCAMGUI.py:2018 +msgid "EXCELLON EDITOR" +msgstr "Editor Excellon" + +#: flatcamGUI/FlatCAMGUI.py:2018 +msgid "Copy Drill(s)" +msgstr "Copiar Furo(s)" + +#: flatcamGUI/FlatCAMGUI.py:2018 flatcamGUI/FlatCAMGUI.py:2268 +msgid "Add Drill" +msgstr "Adicionar Furo" + +#: flatcamGUI/FlatCAMGUI.py:2019 +msgid "Move Drill(s)" +msgstr "Mover Furo(s)" + +#: flatcamGUI/FlatCAMGUI.py:2020 +msgid "Add a new Tool" +msgstr "Adicionar Ferramenta" + +#: flatcamGUI/FlatCAMGUI.py:2021 +msgid "Delete Drill(s)" +msgstr "Excluir Furo(s)" + +#: flatcamGUI/FlatCAMGUI.py:2021 +msgid "Alternate: Delete Tool(s)" +msgstr "Alternativo: Excluir Ferramenta(s)" + +#: flatcamGUI/FlatCAMGUI.py:2138 +msgid "GERBER EDITOR" +msgstr "Editor Gerber" + +#: flatcamGUI/FlatCAMGUI.py:2138 +msgid "Add Disc" +msgstr "Adicionar Disco" + +#: flatcamGUI/FlatCAMGUI.py:2138 +msgid "Add SemiDisc" +msgstr "Adicionar SemiDisco" + +#: flatcamGUI/FlatCAMGUI.py:2140 +msgid "Within Track & Region Tools will cycle in REVERSE the bend modes" +msgstr "" +"Nas Ferramentas de Trilha e Região, alternará REVERSAMENTE entre os modos" + +#: flatcamGUI/FlatCAMGUI.py:2141 +msgid "Within Track & Region Tools will cycle FORWARD the bend modes" +msgstr "" +"Nas Ferramentas de Trilha e Região, alternará para frente entre os modos" + +#: flatcamGUI/FlatCAMGUI.py:2142 +msgid "Alternate: Delete Apertures" +msgstr "Alternativo: Excluir Abertura" + +#: flatcamGUI/FlatCAMGUI.py:2143 +msgid "Eraser Tool" +msgstr "Ferramenta Apagar" + +#: flatcamGUI/FlatCAMGUI.py:2144 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:220 +msgid "Mark Area Tool" +msgstr "Marcar Área" + +#: flatcamGUI/FlatCAMGUI.py:2144 +msgid "Poligonize Tool" +msgstr "Poligonizar" + +#: flatcamGUI/FlatCAMGUI.py:2144 +msgid "Transformation Tool" +msgstr "Ferramenta Transformação" + +#: flatcamGUI/FlatCAMGUI.py:2161 +msgid "Toggle Visibility" +msgstr "Alternar Visibilidade" + +#: flatcamGUI/FlatCAMGUI.py:2167 +msgid "New" +msgstr "Novo" + +#: flatcamGUI/FlatCAMGUI.py:2169 flatcamGUI/ObjectUI.py:450 +#: flatcamObjects/FlatCAMGerber.py:239 flatcamObjects/FlatCAMGerber.py:327 +#: flatcamTools/ToolCalibration.py:631 flatcamTools/ToolCalibration.py:648 +#: flatcamTools/ToolCalibration.py:815 flatcamTools/ToolCopperThieving.py:144 +#: flatcamTools/ToolCopperThieving.py:158 +#: flatcamTools/ToolCopperThieving.py:604 flatcamTools/ToolCutOut.py:92 +#: flatcamTools/ToolDblSided.py:226 flatcamTools/ToolFilm.py:69 +#: flatcamTools/ToolFilm.py:102 flatcamTools/ToolFilm.py:549 +#: flatcamTools/ToolFilm.py:557 flatcamTools/ToolImage.py:49 +#: flatcamTools/ToolImage.py:271 flatcamTools/ToolNCC.py:95 +#: flatcamTools/ToolNCC.py:558 flatcamTools/ToolNCC.py:1300 +#: flatcamTools/ToolPaint.py:502 flatcamTools/ToolPaint.py:706 +#: flatcamTools/ToolPanelize.py:118 flatcamTools/ToolPanelize.py:374 +#: flatcamTools/ToolPanelize.py:391 +msgid "Geometry" +msgstr "Geometria" + +#: flatcamGUI/FlatCAMGUI.py:2173 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:99 +#: flatcamTools/ToolAlignObjects.py:74 flatcamTools/ToolAlignObjects.py:110 +#: flatcamTools/ToolCalibration.py:197 flatcamTools/ToolCalibration.py:631 +#: flatcamTools/ToolCalibration.py:648 flatcamTools/ToolCalibration.py:807 +#: flatcamTools/ToolCalibration.py:815 flatcamTools/ToolCopperThieving.py:144 +#: flatcamTools/ToolCopperThieving.py:158 +#: flatcamTools/ToolCopperThieving.py:604 flatcamTools/ToolDblSided.py:225 +#: flatcamTools/ToolFilm.py:359 flatcamTools/ToolNCC.py:558 +#: flatcamTools/ToolNCC.py:1300 flatcamTools/ToolPaint.py:502 +#: flatcamTools/ToolPaint.py:706 flatcamTools/ToolPanelize.py:374 +#: flatcamTools/ToolPunchGerber.py:149 flatcamTools/ToolPunchGerber.py:164 +msgid "Excellon" +msgstr "Excellon" + +#: flatcamGUI/FlatCAMGUI.py:2180 +msgid "Grids" +msgstr "Grades" + +#: flatcamGUI/FlatCAMGUI.py:2187 +msgid "Clear Plot" +msgstr "Limpar Gráfico" + +#: flatcamGUI/FlatCAMGUI.py:2189 +msgid "Replot" +msgstr "Redesenhar" + +#: flatcamGUI/FlatCAMGUI.py:2193 +msgid "Geo Editor" +msgstr "Editor de Geometria" + +#: flatcamGUI/FlatCAMGUI.py:2195 +msgid "Path" +msgstr "Caminho" + +#: flatcamGUI/FlatCAMGUI.py:2197 +msgid "Rectangle" +msgstr "Retângulo" + +#: flatcamGUI/FlatCAMGUI.py:2200 +msgid "Circle" +msgstr "Círculo" + +#: flatcamGUI/FlatCAMGUI.py:2204 +msgid "Arc" +msgstr "Arco" + +#: flatcamGUI/FlatCAMGUI.py:2218 +msgid "Union" +msgstr "União" + +#: flatcamGUI/FlatCAMGUI.py:2220 +msgid "Intersection" +msgstr "Interseção" + +#: flatcamGUI/FlatCAMGUI.py:2222 +msgid "Subtraction" +msgstr "Substração" + +#: flatcamGUI/FlatCAMGUI.py:2224 flatcamGUI/ObjectUI.py:2221 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:56 +msgid "Cut" +msgstr "Cortar" + +#: flatcamGUI/FlatCAMGUI.py:2235 +msgid "Pad" +msgstr "Pad" + +#: flatcamGUI/FlatCAMGUI.py:2237 +msgid "Pad Array" +msgstr "Matriz de Pads" + +#: flatcamGUI/FlatCAMGUI.py:2241 +msgid "Track" +msgstr "Trilha" + +#: flatcamGUI/FlatCAMGUI.py:2243 +msgid "Region" +msgstr "Região" + +#: flatcamGUI/FlatCAMGUI.py:2266 +msgid "Exc Editor" +msgstr "Editor Exc" + +#: flatcamGUI/FlatCAMGUI.py:2311 +msgid "" +"Relative measurement.\n" +"Reference is last click position" +msgstr "" +"Medição relativa.\n" +"Em relação à posição do último clique" + +#: flatcamGUI/FlatCAMGUI.py:2317 +msgid "" +"Absolute measurement.\n" +"Reference is (X=0, Y= 0) position" +msgstr "" +"Medição absoluta.\n" +"Em relação à posição (X=0, Y=0)" + +#: flatcamGUI/FlatCAMGUI.py:2419 +msgid "Lock Toolbars" +msgstr "Travar Barras de Ferramentas" + +#: flatcamGUI/FlatCAMGUI.py:2505 +msgid "FlatCAM Preferences Folder opened." +msgstr "Pasta com Preferências FlatCAM aberta." + +#: flatcamGUI/FlatCAMGUI.py:2516 +msgid "Are you sure you want to delete the GUI Settings? \n" +msgstr "Você tem certeza de que deseja excluir as configurações da GUI? \n" + +#: flatcamGUI/FlatCAMGUI.py:2624 +msgid "&Cutout Tool" +msgstr "Ferramenta de Re&corte" + +#: flatcamGUI/FlatCAMGUI.py:2694 +msgid "Select 'Esc'" +msgstr "Selecionar 'Esc'" + +#: flatcamGUI/FlatCAMGUI.py:2732 +msgid "Copy Objects" +msgstr "Copiar Objetos" + +#: flatcamGUI/FlatCAMGUI.py:2740 +msgid "Move Objects" +msgstr "Mover Objetos" + +#: flatcamGUI/FlatCAMGUI.py:3363 +msgid "" +"Please first select a geometry item to be cutted\n" +"then select the geometry item that will be cutted\n" +"out of the first item. In the end press ~X~ key or\n" +"the toolbar button." +msgstr "" +"Por favor, primeiro selecione um item de geometria a ser cortado\n" +"e em seguida, selecione o item de geometria que será cortado\n" +"fora do primeiro item. No final, pressione a tecla ~X~ ou\n" +"o botão da barra de ferramentas." + +#: flatcamGUI/FlatCAMGUI.py:3370 flatcamGUI/FlatCAMGUI.py:3532 +#: flatcamGUI/FlatCAMGUI.py:3577 flatcamGUI/FlatCAMGUI.py:3597 +msgid "Warning" +msgstr "Aviso" + +#: flatcamGUI/FlatCAMGUI.py:3527 +msgid "" +"Please select geometry items \n" +"on which to perform Intersection Tool." +msgstr "" +"Por favor, selecione itens de geometria\n" +"para executar a ferramenta de interseção." + +#: flatcamGUI/FlatCAMGUI.py:3572 +msgid "" +"Please select geometry items \n" +"on which to perform Substraction Tool." +msgstr "" +"Por favor, selecione itens de geometria\n" +"para executar a ferramenta de subtração." + +#: flatcamGUI/FlatCAMGUI.py:3592 +msgid "" +"Please select geometry items \n" +"on which to perform union." +msgstr "" +"Por favor, selecione itens de geometria\n" +"para executar a ferramenta de união." + +#: flatcamGUI/FlatCAMGUI.py:3675 flatcamGUI/FlatCAMGUI.py:3890 +msgid "Cancelled. Nothing selected to delete." +msgstr "Cancelado. Nada selecionado para excluir." + +#: flatcamGUI/FlatCAMGUI.py:3759 flatcamGUI/FlatCAMGUI.py:4006 +msgid "Cancelled. Nothing selected to copy." +msgstr "Cancelado. Nada selecionado para copiar." + +#: flatcamGUI/FlatCAMGUI.py:3805 flatcamGUI/FlatCAMGUI.py:4035 +msgid "Cancelled. Nothing selected to move." +msgstr "Cancelado. Nada selecionado para mover." + +#: flatcamGUI/FlatCAMGUI.py:4061 +msgid "New Tool ..." +msgstr "Nova Ferramenta ..." + +#: flatcamGUI/FlatCAMGUI.py:4062 flatcamTools/ToolNCC.py:924 +#: flatcamTools/ToolPaint.py:850 flatcamTools/ToolSolderPaste.py:560 +msgid "Enter a Tool Diameter" +msgstr "Digite um diâmetro de ferramenta" + +#: flatcamGUI/FlatCAMGUI.py:4074 +msgid "Adding Tool cancelled ..." +msgstr "Adicionar ferramenta cancelado ..." + +#: flatcamGUI/FlatCAMGUI.py:4088 +msgid "Distance Tool exit..." +msgstr "Sair da ferramenta de medição ..." + +#: flatcamGUI/FlatCAMGUI.py:4323 flatcamGUI/FlatCAMGUI.py:4330 +msgid "Idle." +msgstr "Ocioso." + +#: flatcamGUI/FlatCAMGUI.py:4361 +msgid "Application started ..." +msgstr "Aplicativo iniciado ..." + +#: flatcamGUI/FlatCAMGUI.py:4362 +msgid "Hello!" +msgstr "Olá!" + +#: flatcamGUI/FlatCAMGUI.py:4424 +msgid "Open Project ..." +msgstr "Abrir Projeto ..." + +#: flatcamGUI/FlatCAMGUI.py:4450 +msgid "Exit" +msgstr "Sair" + +#: flatcamGUI/GUIElements.py:2513 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:180 +#: flatcamTools/ToolDblSided.py:173 flatcamTools/ToolDblSided.py:388 +#: flatcamTools/ToolFilm.py:219 +msgid "Reference" +msgstr "Referência" + +#: flatcamGUI/GUIElements.py:2515 +msgid "" +"The reference can be:\n" +"- Absolute -> the reference point is point (0,0)\n" +"- Relative -> the reference point is the mouse position before Jump" +msgstr "" +"A referência pode ser:\n" +"- Absoluto -> o ponto de referência é o ponto (0,0)\n" +"- Relativo -> o ponto de referência é a posição do mouse antes de Jump" + +#: flatcamGUI/GUIElements.py:2520 +msgid "Abs" +msgstr "Abs" + +#: flatcamGUI/GUIElements.py:2521 +msgid "Relative" +msgstr "Relativo" + +#: flatcamGUI/GUIElements.py:2531 +msgid "Location" +msgstr "Localização" + +#: flatcamGUI/GUIElements.py:2533 +msgid "" +"The Location value is a tuple (x,y).\n" +"If the reference is Absolute then the Jump will be at the position (x,y).\n" +"If the reference is Relative then the Jump will be at the (x,y) distance\n" +"from the current mouse location point." +msgstr "" +"O valor do local é uma tupla (x, y).\n" +"Se a referência for Absoluta, o Salto estará na posição (x, y).\n" +"Se a referência for Relativa, o salto estará na distância (x, y)\n" +"a partir do ponto de localização atual do mouse." + +#: flatcamGUI/GUIElements.py:2573 +msgid "Save Log" +msgstr "Salvar Log" + +#: flatcamGUI/GUIElements.py:2592 flatcamTools/ToolShell.py:278 +msgid "Type >help< to get started" +msgstr "Digite >help< para iniciar" + +#: flatcamGUI/ObjectUI.py:38 +msgid "FlatCAM Object" +msgstr "Objeto FlatCAM" + +#: flatcamGUI/ObjectUI.py:78 +msgid "" +"BASIC is suitable for a beginner. Many parameters\n" +"are hidden from the user in this mode.\n" +"ADVANCED mode will make available all parameters.\n" +"\n" +"To change the application LEVEL, go to:\n" +"Edit -> Preferences -> General and check:\n" +"'APP. LEVEL' radio button." +msgstr "" +"BÁSICO é adequado para um iniciante. Muitos parâmetros\n" +" estão ocultos do usuário neste modo.\n" +"O modo AVANÇADO disponibilizará todos os parâmetros.\n" +"\n" +"Para alterar o NÍVEL do aplicativo, vá para:\n" +"Editar -> Preferências -> Geral e verificar\n" +"o botão de rádio 'Nível do Aplicativo\"." + +#: flatcamGUI/ObjectUI.py:111 +msgid "Geometrical transformations of the current object." +msgstr "Transformação geométrica do objeto atual." + +#: flatcamGUI/ObjectUI.py:120 +msgid "" +"Factor by which to multiply\n" +"geometric features of this object.\n" +"Expressions are allowed. E.g: 1/25.4" +msgstr "" +"Fator pelo qual multiplicar recursos\n" +"geométricos deste objeto.\n" +"Expressões são permitidas. Por exemplo: 1 / 25.4" + +#: flatcamGUI/ObjectUI.py:127 +msgid "Perform scaling operation." +msgstr "Realiza a operação de dimensionamento." + +#: flatcamGUI/ObjectUI.py:138 +msgid "" +"Amount by which to move the object\n" +"in the x and y axes in (x, y) format.\n" +"Expressions are allowed. E.g: (1/3.2, 0.5*3)" +msgstr "" +"Quanto mover o objeto\n" +"nos eixos x e y no formato (x, y).\n" +"Expressões são permitidas. Por exemplo: (1/3.2, 0.5*3)" + +#: flatcamGUI/ObjectUI.py:145 +msgid "Perform the offset operation." +msgstr "Executa a operação de deslocamento." + +#: flatcamGUI/ObjectUI.py:178 +msgid "Gerber Object" +msgstr "Objeto Gerber" + +#: flatcamGUI/ObjectUI.py:187 flatcamGUI/ObjectUI.py:730 +#: flatcamGUI/ObjectUI.py:1426 flatcamGUI/ObjectUI.py:2205 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:30 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:33 +#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:31 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:31 +msgid "Plot Options" +msgstr "Opções de Gráfico" + +#: flatcamGUI/ObjectUI.py:193 flatcamGUI/ObjectUI.py:731 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:45 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:38 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:119 +#: flatcamTools/ToolCopperThieving.py:191 +msgid "Solid" +msgstr "Preenchido" + +#: flatcamGUI/ObjectUI.py:195 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:40 +msgid "Solid color polygons." +msgstr "Polígonos com cor sólida." + +#: flatcamGUI/ObjectUI.py:201 +msgid "Multi-Color" +msgstr "Multicolorido" + +#: flatcamGUI/ObjectUI.py:203 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:47 +msgid "Draw polygons in different colors." +msgstr "Desenha polígonos em cores diferentes." + +#: flatcamGUI/ObjectUI.py:209 flatcamGUI/ObjectUI.py:769 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:39 +#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:35 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:52 +msgid "Plot" +msgstr "Gráfico" + +#: flatcamGUI/ObjectUI.py:211 flatcamGUI/ObjectUI.py:771 +#: flatcamGUI/ObjectUI.py:1486 flatcamGUI/ObjectUI.py:2315 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:41 +#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:37 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:54 +msgid "Plot (show) this object." +msgstr "Mostra o objeto no gráfico." + +#: flatcamGUI/ObjectUI.py:239 +msgid "" +"Toggle the display of the Gerber Apertures Table.\n" +"When unchecked, it will delete all mark shapes\n" +"that are drawn on canvas." +msgstr "" +"Alterna a exibição da Tabela de Aberturas Gerber.\n" +"Quando desmarcada, serão excluídas todas as formas de marcas\n" +"desenhadas na tela." + +#: flatcamGUI/ObjectUI.py:249 +msgid "Mark All" +msgstr "Marcar Todos" + +#: flatcamGUI/ObjectUI.py:251 +msgid "" +"When checked it will display all the apertures.\n" +"When unchecked, it will delete all mark shapes\n" +"that are drawn on canvas." +msgstr "" +"Quando marcado, serão mostradas todas as aberturas.\n" +"Quando desmarcado, serão apagadas todas as formas de marcas\n" +"desenhadas na tela." + +#: flatcamGUI/ObjectUI.py:279 +msgid "Mark the aperture instances on canvas." +msgstr "Marque as instâncias de abertura na tela." + +#: flatcamGUI/ObjectUI.py:291 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:32 +msgid "Isolation Routing" +msgstr "Roteamento de Isolação" + +#: flatcamGUI/ObjectUI.py:293 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:34 +msgid "" +"Create a Geometry object with\n" +"toolpaths to cut outside polygons." +msgstr "" +"Cria um objeto Geometria com caminho de\n" +"ferramenta para cortar polígonos externos." + +#: flatcamGUI/ObjectUI.py:311 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:69 +msgid "" +"Choose which tool to use for Gerber isolation:\n" +"'Circular' or 'V-shape'.\n" +"When the 'V-shape' is selected then the tool\n" +"diameter will depend on the chosen cut depth." +msgstr "" +"Escolha qual ferramenta usar para a isolação do Gerber:\n" +"'Circular' ou 'ponta-V'.\n" +"Quando 'ponta em V' for selecionada, o diâmetro da\n" +"ferramenta dependerá da profundidade de corte escolhida." + +#: flatcamGUI/ObjectUI.py:317 +msgid "V-Shape" +msgstr "Forma-V" + +#: flatcamGUI/ObjectUI.py:323 flatcamGUI/ObjectUI.py:1672 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:81 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:72 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:78 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:85 +#: flatcamTools/ToolNCC.py:233 flatcamTools/ToolNCC.py:240 +#: flatcamTools/ToolPaint.py:216 +msgid "V-Tip Dia" +msgstr "Diâmetro da Ponta" + +#: flatcamGUI/ObjectUI.py:325 flatcamGUI/ObjectUI.py:1675 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:83 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:74 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:80 +#: flatcamTools/ToolNCC.py:235 flatcamTools/ToolPaint.py:218 +msgid "The tip diameter for V-Shape Tool" +msgstr "O diâmetro da ponta da ferramenta em forma de V" + +#: flatcamGUI/ObjectUI.py:336 flatcamGUI/ObjectUI.py:1687 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:94 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:84 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:91 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:99 +#: flatcamTools/ToolNCC.py:246 flatcamTools/ToolNCC.py:254 +#: flatcamTools/ToolPaint.py:229 +msgid "V-Tip Angle" +msgstr "Ângulo Ponta-V" + +#: flatcamGUI/ObjectUI.py:338 flatcamGUI/ObjectUI.py:1690 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:96 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:86 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:93 +#: flatcamTools/ToolNCC.py:248 flatcamTools/ToolPaint.py:231 +msgid "" +"The tip angle for V-Shape Tool.\n" +"In degree." +msgstr "O ângulo da ponta da ferramenta em forma de V, em graus." + +#: flatcamGUI/ObjectUI.py:352 flatcamGUI/ObjectUI.py:1706 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:50 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:109 +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:61 +#: flatcamObjects/FlatCAMGeometry.py:1174 flatcamTools/ToolCutOut.py:141 +msgid "" +"Cutting depth (negative)\n" +"below the copper surface." +msgstr "" +"Profundidade de corte (negativo)\n" +"abaixo da superfície de cobre." + +#: flatcamGUI/ObjectUI.py:366 +msgid "" +"Diameter of the cutting tool.\n" +"If you want to have an isolation path\n" +"inside the actual shape of the Gerber\n" +"feature, use a negative value for\n" +"this parameter." +msgstr "" +"Diâmetro da ferramenta de corte.\n" +"Se desejar ter um caminho de isolação dentro da forma\n" +"atual do recurso Gerber, use um valor negativo para\n" +"este parâmetro." + +#: flatcamGUI/ObjectUI.py:382 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:56 +msgid "# Passes" +msgstr "Passes" + +#: flatcamGUI/ObjectUI.py:384 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:58 +msgid "" +"Width of the isolation gap in\n" +"number (integer) of tool widths." +msgstr "" +"Largura da isolação em relação à\n" +"largura da ferramenta (número inteiro)." + +#: flatcamGUI/ObjectUI.py:395 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:68 +msgid "Pass overlap" +msgstr "Sobreposição" + +#: flatcamGUI/ObjectUI.py:397 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:70 +msgid "How much (percentage) of the tool width to overlap each tool pass." +msgstr "" +"Quanto (percentual) da largura da ferramenta é sobreposta a cada passagem da " +"ferramenta." + +#: flatcamGUI/ObjectUI.py:411 +#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:58 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:97 +msgid "" +"Milling type:\n" +"- climb / best for precision milling and to reduce tool usage\n" +"- conventional / useful when there is no backlash compensation" +msgstr "" +"Tipo de fresamento:\n" +"- subida: melhor para fresamento de precisão e para reduzir o uso da " +"ferramenta\n" +"- convencional: útil quando não há compensação de folga" + +#: flatcamGUI/ObjectUI.py:421 +msgid "Combine" +msgstr "Combinar" + +#: flatcamGUI/ObjectUI.py:423 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:109 +msgid "Combine all passes into one object" +msgstr "Combinar todos os passes em um objeto" + +#: flatcamGUI/ObjectUI.py:427 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:43 +msgid "\"Follow\"" +msgstr "\"Segue\"" + +#: flatcamGUI/ObjectUI.py:428 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:45 +msgid "" +"Generate a 'Follow' geometry.\n" +"This means that it will cut through\n" +"the middle of the trace." +msgstr "" +"Gera uma geometria 'Segue'.\n" +"Isso significa que ele cortará\n" +"no meio do traço." + +#: flatcamGUI/ObjectUI.py:434 +msgid "Except" +msgstr "Exceto" + +#: flatcamGUI/ObjectUI.py:437 +msgid "" +"When the isolation geometry is generated,\n" +"by checking this, the area of the object below\n" +"will be subtracted from the isolation geometry." +msgstr "" +"Quando marcado, na geração da geometria de isolação,\n" +"a área do objeto abaixo será subtraída da geometria\n" +"de isolação." + +#: flatcamGUI/ObjectUI.py:450 +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:97 +#: flatcamObjects/FlatCAMGerber.py:239 flatcamObjects/FlatCAMGerber.py:327 +#: flatcamTools/ToolAlignObjects.py:73 flatcamTools/ToolAlignObjects.py:109 +#: flatcamTools/ToolCalibration.py:196 flatcamTools/ToolCalibration.py:631 +#: flatcamTools/ToolCalibration.py:648 flatcamTools/ToolCalibration.py:807 +#: flatcamTools/ToolCalibration.py:815 flatcamTools/ToolCopperThieving.py:144 +#: flatcamTools/ToolCopperThieving.py:158 +#: flatcamTools/ToolCopperThieving.py:604 flatcamTools/ToolCutOut.py:91 +#: flatcamTools/ToolDblSided.py:224 flatcamTools/ToolFilm.py:69 +#: flatcamTools/ToolFilm.py:102 flatcamTools/ToolFilm.py:549 +#: flatcamTools/ToolFilm.py:557 flatcamTools/ToolImage.py:49 +#: flatcamTools/ToolImage.py:252 flatcamTools/ToolImage.py:273 +#: flatcamTools/ToolNCC.py:96 flatcamTools/ToolNCC.py:558 +#: flatcamTools/ToolNCC.py:1300 flatcamTools/ToolPaint.py:502 +#: flatcamTools/ToolPaint.py:706 flatcamTools/ToolPanelize.py:118 +#: flatcamTools/ToolPanelize.py:204 flatcamTools/ToolPanelize.py:374 +#: flatcamTools/ToolPanelize.py:391 +msgid "Gerber" +msgstr "Gerber" + +#: flatcamGUI/ObjectUI.py:457 flatcamTools/ToolNCC.py:86 +#: flatcamTools/ToolPaint.py:80 +msgid "Obj Type" +msgstr "Tipo Obj" + +#: flatcamGUI/ObjectUI.py:459 +msgid "" +"Specify the type of object to be excepted from isolation.\n" +"It can be of type: Gerber or Geometry.\n" +"What is selected here will dictate the kind\n" +"of objects that will populate the 'Object' combobox." +msgstr "" +"Especifica o tipo de objeto a ser excluído da isolação.\n" +"Pode ser do tipo: Gerber ou Geometria.\n" +"Esta seleção ditará o tipo de objetos que preencherão\n" +"a caixa de combinação 'Objeto'." + +#: flatcamGUI/ObjectUI.py:472 +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:48 +#: flatcamTools/ToolCalibration.py:186 flatcamTools/ToolNCC.py:109 +#: flatcamTools/ToolPaint.py:103 flatcamTools/ToolPanelize.py:100 +#: flatcamTools/ToolQRCode.py:78 +msgid "Object" +msgstr "Objeto" + +#: flatcamGUI/ObjectUI.py:473 +msgid "Object whose area will be removed from isolation geometry." +msgstr "Objeto cuja área será removida da geometria de isolação." + +#: flatcamGUI/ObjectUI.py:480 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:82 +msgid "Scope" +msgstr "Escopo" + +#: flatcamGUI/ObjectUI.py:482 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:84 +msgid "" +"Isolation scope. Choose what to isolate:\n" +"- 'All' -> Isolate all the polygons in the object\n" +"- 'Selection' -> Isolate a selection of polygons." +msgstr "" +"Escopo de isolação. Escolha o que isolar:\n" +"- 'Tudo' -> Isola todos os polígonos no objeto\n" +"- 'Seleção' -> Isola uma seleção de polígonos." + +#: flatcamGUI/ObjectUI.py:487 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:307 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:89 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:311 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:258 +#: flatcamTools/ToolNCC.py:539 flatcamTools/ToolPaint.py:456 +msgid "Selection" +msgstr "Seleção" + +#: flatcamGUI/ObjectUI.py:495 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:122 +msgid "Isolation Type" +msgstr "Tipo de Isolação" + +#: flatcamGUI/ObjectUI.py:497 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:124 +msgid "" +"Choose how the isolation will be executed:\n" +"- 'Full' -> complete isolation of polygons\n" +"- 'Ext' -> will isolate only on the outside\n" +"- 'Int' -> will isolate only on the inside\n" +"'Exterior' isolation is almost always possible\n" +"(with the right tool) but 'Interior'\n" +"isolation can be done only when there is an opening\n" +"inside of the polygon (e.g polygon is a 'doughnut' shape)." +msgstr "" +"Escolha como a isolação será executada:\n" +"- 'Completa' -> isolação completa de polígonos\n" +"- 'Ext' -> isolará apenas do lado de fora\n" +"- 'Int' -> isolará apenas por dentro\n" +"A isolação 'exterior' é quase sempre possível\n" +"(com a ferramenta certa), mas isolação \"Interior\"\n" +"pode ser feita somente quando houver uma abertura\n" +"dentro do polígono (por exemplo, o polígono é em forma de \"rosca\")." + +#: flatcamGUI/ObjectUI.py:506 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:133 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:154 +msgid "Full" +msgstr "Completa" + +#: flatcamGUI/ObjectUI.py:507 +msgid "Ext" +msgstr "Ext" + +#: flatcamGUI/ObjectUI.py:508 +msgid "Int" +msgstr "Int" + +#: flatcamGUI/ObjectUI.py:513 +msgid "Generate Isolation Geometry" +msgstr "Gerar Geometria de Isolação" + +#: flatcamGUI/ObjectUI.py:521 +msgid "" +"Create a Geometry object with toolpaths to cut \n" +"isolation outside, inside or on both sides of the\n" +"object. For a Gerber object outside means outside\n" +"of the Gerber feature and inside means inside of\n" +"the Gerber feature, if possible at all. This means\n" +"that only if the Gerber feature has openings inside, they\n" +"will be isolated. If what is wanted is to cut isolation\n" +"inside the actual Gerber feature, use a negative tool\n" +"diameter above." +msgstr "" +"Cria um objeto Geometria com caminhos da ferramenta para\n" +"cortar a isolação por fora, por dentro ou em ambos os lados\n" +"do objeto. Para um objeto Gerber externo significa por fora\n" +"do recurso Gerber e interno significa por dentro do recurso\n" +"Gerber, se possível. Isso significa que somente se o recurso\n" +"Gerber tiver aberturas internas, elas serão isoladas. Se o\n" +"desejado é cortar a isolação dentro do recurso Gerber, use uma\n" +"ferramenta negativa diâmetro acima." + +#: flatcamGUI/ObjectUI.py:533 +msgid "Buffer Solid Geometry" +msgstr "Buffer de Geometria Sólida" + +#: flatcamGUI/ObjectUI.py:535 +msgid "" +"This button is shown only when the Gerber file\n" +"is loaded without buffering.\n" +"Clicking this will create the buffered geometry\n" +"required for isolation." +msgstr "" +"Este botão é mostrado apenas quando o arquivo Gerber\n" +"é carregado sem buffer.\n" +"Clicar neste botão criará o buffer da geometria\n" +"necessário para a isolação." + +#: flatcamGUI/ObjectUI.py:567 +msgid "Clear N-copper" +msgstr "Limpa N-cobre" + +#: flatcamGUI/ObjectUI.py:569 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:33 +msgid "" +"Create a Geometry object with\n" +"toolpaths to cut all non-copper regions." +msgstr "" +"Cria um objeto Geometria com caminho de ferramenta\n" +"para cortar todas as regiões com retirada de cobre." + +#: flatcamGUI/ObjectUI.py:576 flatcamGUI/ObjectUI.py:2159 +#: flatcamTools/ToolNCC.py:599 +msgid "" +"Create the Geometry Object\n" +"for non-copper routing." +msgstr "" +"Cria o Objeto de Geometria\n" +"para roteamento de zona sem cobre." + +#: flatcamGUI/ObjectUI.py:589 +msgid "Board cutout" +msgstr "Recorte da placa" + +#: flatcamGUI/ObjectUI.py:591 +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:34 +msgid "" +"Create toolpaths to cut around\n" +"the PCB and separate it from\n" +"the original board." +msgstr "" +"Cria caminhos da ferramenta para cortar\n" +"o PCB e separá-lo da placa original." + +#: flatcamGUI/ObjectUI.py:598 +msgid "" +"Generate the geometry for\n" +"the board cutout." +msgstr "Gera a geometria para o recorte da placa." + +#: flatcamGUI/ObjectUI.py:616 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:119 +msgid "Non-copper regions" +msgstr "Zona sem cobre" + +#: flatcamGUI/ObjectUI.py:618 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:121 +msgid "" +"Create polygons covering the\n" +"areas without copper on the PCB.\n" +"Equivalent to the inverse of this\n" +"object. Can be used to remove all\n" +"copper from a specified region." +msgstr "" +"Cria polígonos cobrindo as\n" +"zonas sem cobre no PCB.\n" +"Equivalente ao inverso do\n" +"objeto. Pode ser usado para remover todo o\n" +"cobre de uma região especificada." + +#: flatcamGUI/ObjectUI.py:628 flatcamGUI/ObjectUI.py:669 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:133 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:166 +msgid "Boundary Margin" +msgstr "Margem Limite" + +#: flatcamGUI/ObjectUI.py:630 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:135 +msgid "" +"Specify the edge of the PCB\n" +"by drawing a box around all\n" +"objects with this minimum\n" +"distance." +msgstr "" +"Especifica a borda do PCB\n" +"desenhando uma caixa em volta de todos os\n" +"objetos com esta distância mínima." + +#: flatcamGUI/ObjectUI.py:645 flatcamGUI/ObjectUI.py:683 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:148 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:179 +msgid "Rounded Geo" +msgstr "Geo Arredondado" + +#: flatcamGUI/ObjectUI.py:647 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:150 +msgid "Resulting geometry will have rounded corners." +msgstr "A geometria resultante terá cantos arredondados." + +#: flatcamGUI/ObjectUI.py:651 flatcamGUI/ObjectUI.py:692 +#: flatcamTools/ToolSolderPaste.py:134 +msgid "Generate Geo" +msgstr "Gerar Geo" + +#: flatcamGUI/ObjectUI.py:661 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:160 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:137 +#: flatcamTools/ToolPanelize.py:101 flatcamTools/ToolQRCode.py:192 +msgid "Bounding Box" +msgstr "Caixa Delimitadora" + +#: flatcamGUI/ObjectUI.py:663 +msgid "" +"Create a geometry surrounding the Gerber object.\n" +"Square shape." +msgstr "" +"Crie uma geometria em torno do objeto Gerber.\n" +"Forma quadrada." + +#: flatcamGUI/ObjectUI.py:671 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:168 +msgid "" +"Distance of the edges of the box\n" +"to the nearest polygon." +msgstr "" +"Distância das bordas da caixa\n" +"para o polígono mais próximo." + +#: flatcamGUI/ObjectUI.py:685 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:181 +msgid "" +"If the bounding box is \n" +"to have rounded corners\n" +"their radius is equal to\n" +"the margin." +msgstr "" +"Se a caixa delimitadora tiver\n" +"cantos arredondados, o seu raio\n" +"é igual à margem." + +#: flatcamGUI/ObjectUI.py:694 +msgid "Generate the Geometry object." +msgstr "Gera o objeto Geometria." + +#: flatcamGUI/ObjectUI.py:721 +msgid "Excellon Object" +msgstr "Objeto Excellon" + +#: flatcamGUI/ObjectUI.py:733 +msgid "Solid circles." +msgstr "Círculos preenchidos ou vazados." + +#: flatcamGUI/ObjectUI.py:781 flatcamGUI/ObjectUI.py:876 +#: flatcamGUI/ObjectUI.py:2336 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:71 +#: flatcamTools/ToolProperties.py:166 +msgid "Drills" +msgstr "Furos" + +#: flatcamGUI/ObjectUI.py:781 flatcamGUI/ObjectUI.py:877 +#: flatcamGUI/ObjectUI.py:2336 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:158 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:72 +#: flatcamTools/ToolProperties.py:168 +msgid "Slots" +msgstr "Ranhuras" + +#: flatcamGUI/ObjectUI.py:786 +msgid "" +"This is the Tool Number.\n" +"When ToolChange is checked, on toolchange event this value\n" +"will be showed as a T1, T2 ... Tn in the Machine Code.\n" +"\n" +"Here the tools are selected for G-code generation." +msgstr "" +"Número da Ferramenta.\n" +"Quando Trocar Ferramentas estiver marcado, este valor\n" +" será mostrado como T1, T2 ... Tn no Código da Máquina." + +#: flatcamGUI/ObjectUI.py:791 flatcamGUI/ObjectUI.py:1510 +#: flatcamTools/ToolPaint.py:142 +msgid "" +"Tool Diameter. It's value (in current FlatCAM units) \n" +"is the cut width into the material." +msgstr "" +"Diâmetro da Ferramenta. É a largura do corte no material\n" +"(nas unidades atuais do FlatCAM)." + +#: flatcamGUI/ObjectUI.py:794 +msgid "" +"The number of Drill holes. Holes that are drilled with\n" +"a drill bit." +msgstr "Número de Furos. Serão perfurados com brocas." + +#: flatcamGUI/ObjectUI.py:797 +msgid "" +"The number of Slot holes. Holes that are created by\n" +"milling them with an endmill bit." +msgstr "Número de Ranhuras (Fendas). Serão criadas com fresas." + +#: flatcamGUI/ObjectUI.py:800 +msgid "" +"Toggle display of the drills for the current tool.\n" +"This does not select the tools for G-code generation." +msgstr "" +"Alterna a exibição da ferramenta atual. Isto não seleciona a ferramenta para " +"geração do G-Code." + +#: flatcamGUI/ObjectUI.py:818 flatcamGUI/ObjectUI.py:1662 +#: flatcamObjects/FlatCAMExcellon.py:514 flatcamObjects/FlatCAMExcellon.py:726 +#: flatcamObjects/FlatCAMExcellon.py:742 flatcamObjects/FlatCAMExcellon.py:746 +#: flatcamObjects/FlatCAMGeometry.py:323 flatcamObjects/FlatCAMGeometry.py:759 +#: flatcamObjects/FlatCAMGeometry.py:795 flatcamTools/ToolNCC.py:331 +#: flatcamTools/ToolNCC.py:797 flatcamTools/ToolNCC.py:811 +#: flatcamTools/ToolNCC.py:1196 flatcamTools/ToolPaint.py:314 +#: flatcamTools/ToolPaint.py:767 flatcamTools/ToolPaint.py:779 +#: flatcamTools/ToolPaint.py:1171 +msgid "Parameters for" +msgstr "Parâmetros para" + +#: flatcamGUI/ObjectUI.py:821 flatcamGUI/ObjectUI.py:1665 +#: flatcamTools/ToolNCC.py:334 flatcamTools/ToolPaint.py:317 +msgid "" +"The data used for creating GCode.\n" +"Each tool store it's own set of such data." +msgstr "" +"Os dados usados para criar o G-Code.\n" +"Cada loja de ferramentas possui seu próprio conjunto de dados." + +#: flatcamGUI/ObjectUI.py:847 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:48 +msgid "" +"Operation type:\n" +"- Drilling -> will drill the drills/slots associated with this tool\n" +"- Milling -> will mill the drills/slots" +msgstr "" +"Tipo de operação:\n" +"- Perfuração -> faz os furos/ranhuras associados a esta ferramenta\n" +"- Fresamento -> fresar os furos/ranhuras" + +#: flatcamGUI/ObjectUI.py:853 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:54 +msgid "Drilling" +msgstr "Perfuração" + +#: flatcamGUI/ObjectUI.py:854 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:55 +msgid "Milling" +msgstr "Fresamento" + +#: flatcamGUI/ObjectUI.py:869 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:64 +msgid "" +"Milling type:\n" +"- Drills -> will mill the drills associated with this tool\n" +"- Slots -> will mill the slots associated with this tool\n" +"- Both -> will mill both drills and mills or whatever is available" +msgstr "" +"Tipo de fresamento:\n" +"- Furos -> fresará os furos associados a esta ferramenta\n" +"- Ranhuras -> fresará as ranhuras associadas a esta ferramenta\n" +"- Ambos -> fresará furos e ranhuras ou o que estiver disponível" + +#: flatcamGUI/ObjectUI.py:878 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:73 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:210 +#: flatcamTools/ToolFilm.py:258 +msgid "Both" +msgstr "Ambos" + +#: flatcamGUI/ObjectUI.py:886 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:80 +msgid "Milling Diameter" +msgstr "Diâmetro da Fresa" + +#: flatcamGUI/ObjectUI.py:888 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:82 +msgid "The diameter of the tool who will do the milling" +msgstr "Diâmetro da ferramenta de fresamento." + +#: flatcamGUI/ObjectUI.py:902 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:95 +msgid "" +"Drill depth (negative)\n" +"below the copper surface." +msgstr "" +"Profundidade do furo (negativo)\n" +"abaixo da superfície de cobre." + +#: flatcamGUI/ObjectUI.py:921 flatcamGUI/ObjectUI.py:1724 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:113 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:68 +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:79 +#: flatcamTools/ToolCutOut.py:159 +msgid "Multi-Depth" +msgstr "Multi-Profundidade" + +#: flatcamGUI/ObjectUI.py:924 flatcamGUI/ObjectUI.py:1727 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:116 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:71 +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:82 +#: flatcamTools/ToolCutOut.py:162 +msgid "" +"Use multiple passes to limit\n" +"the cut depth in each pass. Will\n" +"cut multiple times until Cut Z is\n" +"reached." +msgstr "" +"Use vários passes para limitar\n" +"a profundidade de corte em cada passagem. Vai\n" +"cortar várias vezes até o Corte Z é\n" +"alcançado." + +#: flatcamGUI/ObjectUI.py:937 flatcamGUI/ObjectUI.py:1741 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:128 +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:94 +#: flatcamTools/ToolCutOut.py:176 +msgid "Depth of each pass (positive)." +msgstr "Profundidade de cada passe (positivo)." + +#: flatcamGUI/ObjectUI.py:948 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:136 +msgid "" +"Tool height when travelling\n" +"across the XY plane." +msgstr "" +"Altura da ferramenta durante os\n" +"deslocamentos sobre o plano XY." + +#: flatcamGUI/ObjectUI.py:969 flatcamGUI/ObjectUI.py:1771 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:187 +msgid "" +"Cutting speed in the XY\n" +"plane in units per minute" +msgstr "Velocidade de corte no plano XY em unidades por minuto" + +#: flatcamGUI/ObjectUI.py:984 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:209 +msgid "" +"Tool speed while drilling\n" +"(in units per minute).\n" +"So called 'Plunge' feedrate.\n" +"This is for linear move G01." +msgstr "" +"Velocidade da ferramenta durante a perfuração\n" +"(em unidades por minuto).\n" +"Também chamado de avanço de 'Mergulho'.\n" +"Para movimento linear G01." + +#: flatcamGUI/ObjectUI.py:999 flatcamGUI/ObjectUI.py:1798 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:80 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:64 +msgid "Feedrate Rapids" +msgstr "Taxa de Avanço Rápida" + +#: flatcamGUI/ObjectUI.py:1001 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:82 +msgid "" +"Tool speed while drilling\n" +"(in units per minute).\n" +"This is for the rapid move G00.\n" +"It is useful only for Marlin,\n" +"ignore for any other cases." +msgstr "" +"Velocidade da ferramenta durante a perfuração\n" +"(em unidades por minuto).\n" +"Usado para movimento rápido G00.\n" +"É útil apenas para Marlin. Ignore para outros casos." + +#: flatcamGUI/ObjectUI.py:1021 flatcamGUI/ObjectUI.py:1818 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:82 +msgid "Re-cut" +msgstr "Re-cortar" + +#: flatcamGUI/ObjectUI.py:1023 flatcamGUI/ObjectUI.py:1036 +#: flatcamGUI/ObjectUI.py:1820 flatcamGUI/ObjectUI.py:1832 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:84 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:96 +msgid "" +"In order to remove possible\n" +"copper leftovers where first cut\n" +"meet with last cut, we generate an\n" +"extended cut over the first cut section." +msgstr "" +"Para remover possíveis sobras no ponto de encontro\n" +"do primeiro com o último corte, gera-se um corte\n" +"próximo à primeira seção de corte." + +#: flatcamGUI/ObjectUI.py:1049 flatcamGUI/ObjectUI.py:1841 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:216 +#: flatcamObjects/FlatCAMExcellon.py:1332 +#: flatcamObjects/FlatCAMGeometry.py:1622 +msgid "Spindle speed" +msgstr "Velocidade do Spindle" + +#: flatcamGUI/ObjectUI.py:1051 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:224 +msgid "" +"Speed of the spindle\n" +"in RPM (optional)" +msgstr "" +"Velocidade do spindle\n" +"em RPM (opcional)" + +#: flatcamGUI/ObjectUI.py:1066 flatcamGUI/ObjectUI.py:1860 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:238 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:234 +msgid "" +"Pause to allow the spindle to reach its\n" +"speed before cutting." +msgstr "" +"Pausa para permitir que o spindle atinja sua\n" +"velocidade antes de cortar." + +#: flatcamGUI/ObjectUI.py:1077 flatcamGUI/ObjectUI.py:1870 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:246 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:239 +msgid "Number of time units for spindle to dwell." +msgstr "Número de unidades de tempo para o fuso residir." + +#: flatcamGUI/ObjectUI.py:1087 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:46 +msgid "Offset Z" +msgstr "Deslocamento Z" + +#: flatcamGUI/ObjectUI.py:1089 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:48 +msgid "" +"Some drill bits (the larger ones) need to drill deeper\n" +"to create the desired exit hole diameter due of the tip shape.\n" +"The value here can compensate the Cut Z parameter." +msgstr "" +"Algumas brocas (as maiores) precisam perfurar mais profundamente\n" +"para criar o diâmetro desejado do orifício de saída devido à forma da " +"ponta.\n" +"Este valor pode compensar o parâmetro Profundidade de Corte Z." + +#: flatcamGUI/ObjectUI.py:1149 flatcamGUI/ObjectUI.py:1924 +#: flatcamTools/ToolNCC.py:492 flatcamTools/ToolPaint.py:423 +msgid "Apply parameters to all tools" +msgstr "Aplicar parâmetros a todas as ferramentas" + +#: flatcamGUI/ObjectUI.py:1151 flatcamGUI/ObjectUI.py:1926 +#: flatcamTools/ToolNCC.py:494 flatcamTools/ToolPaint.py:425 +msgid "" +"The parameters in the current form will be applied\n" +"on all the tools from the Tool Table." +msgstr "" +"Os parâmetros no formulário atual serão aplicados\n" +"em todas as ferramentas da Tabela de Ferramentas." + +#: flatcamGUI/ObjectUI.py:1162 flatcamGUI/ObjectUI.py:1937 +#: flatcamTools/ToolNCC.py:505 flatcamTools/ToolPaint.py:436 +msgid "Common Parameters" +msgstr "Parâmetros Comuns" + +#: flatcamGUI/ObjectUI.py:1164 flatcamGUI/ObjectUI.py:1939 +#: flatcamTools/ToolNCC.py:507 flatcamTools/ToolPaint.py:438 +msgid "Parameters that are common for all tools." +msgstr "Parâmetros comuns à todas as ferramentas." + +#: flatcamGUI/ObjectUI.py:1169 flatcamGUI/ObjectUI.py:1944 +msgid "Tool change Z" +msgstr "Altura para a troca" + +#: flatcamGUI/ObjectUI.py:1171 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:154 +msgid "" +"Include tool-change sequence\n" +"in G-Code (Pause for tool change)." +msgstr "" +"Pausa para troca de ferramentas. Inclua a sequência\n" +"de troca de ferramentas em G-Code (em Trabalho CNC)." + +#: flatcamGUI/ObjectUI.py:1178 flatcamGUI/ObjectUI.py:1955 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:162 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:134 +msgid "" +"Z-axis position (height) for\n" +"tool change." +msgstr "Posição do eixo Z (altura) para a troca de ferramenta." + +#: flatcamGUI/ObjectUI.py:1195 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:71 +msgid "" +"Height of the tool just after start.\n" +"Delete the value if you don't need this feature." +msgstr "" +"Altura da ferramenta antes de iniciar o trabalho.\n" +"Exclua o valor se você não precisar deste recurso." + +#: flatcamGUI/ObjectUI.py:1204 flatcamGUI/ObjectUI.py:1983 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:178 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:153 +msgid "End move Z" +msgstr "Altura Z Final" + +#: flatcamGUI/ObjectUI.py:1206 flatcamGUI/ObjectUI.py:1985 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:180 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:155 +msgid "" +"Height of the tool after\n" +"the last move at the end of the job." +msgstr "Altura da ferramenta após o último movimento, no final do trabalho." + +#: flatcamGUI/ObjectUI.py:1223 flatcamGUI/ObjectUI.py:2002 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:195 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:173 +msgid "End move X,Y" +msgstr "Posição X,Y Final" + +#: flatcamGUI/ObjectUI.py:1225 flatcamGUI/ObjectUI.py:2004 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:197 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:175 +msgid "" +"End move X,Y position. In format (x,y).\n" +"If no value is entered then there is no move\n" +"on X,Y plane at the end of the job." +msgstr "" +"Posição final X, Y. Em formato (x, y).\n" +"Se nenhum valor for inserido, não haverá movimento\n" +"no plano X, Y no final do trabalho." + +#: flatcamGUI/ObjectUI.py:1235 flatcamGUI/ObjectUI.py:1878 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:96 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:105 +msgid "Probe Z depth" +msgstr "Profundidade Z da Sonda" + +#: flatcamGUI/ObjectUI.py:1237 flatcamGUI/ObjectUI.py:1880 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:98 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:107 +msgid "" +"The maximum depth that the probe is allowed\n" +"to probe. Negative value, in current units." +msgstr "" +"Profundidade máxima permitida para a sonda.\n" +"Valor negativo, em unidades atuais." + +#: flatcamGUI/ObjectUI.py:1254 flatcamGUI/ObjectUI.py:1895 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:109 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:120 +msgid "Feedrate Probe" +msgstr "Avanço da Sonda" + +#: flatcamGUI/ObjectUI.py:1256 flatcamGUI/ObjectUI.py:1897 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:111 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:122 +msgid "The feedrate used while the probe is probing." +msgstr "Velocidade de Avanço usada enquanto a sonda está operando." + +#: flatcamGUI/ObjectUI.py:1272 +msgid "Preprocessor E" +msgstr "Pré-processador E" + +#: flatcamGUI/ObjectUI.py:1274 +msgid "" +"The preprocessor JSON file that dictates\n" +"Gcode output for Excellon Objects." +msgstr "" +"O arquivo de pós-processamento (JSON) que define\n" +"a saída G-Code para Objetos Excellon." + +#: flatcamGUI/ObjectUI.py:1284 +msgid "Preprocessor G" +msgstr "Pré-processador G" + +#: flatcamGUI/ObjectUI.py:1286 +msgid "" +"The preprocessor JSON file that dictates\n" +"Gcode output for Geometry (Milling) Objects." +msgstr "" +"O arquivo de pós-processamento (JSON) que define\n" +"a saída G-Code para Objetos Geometria (Fresamento)." + +#: flatcamGUI/ObjectUI.py:1310 flatcamGUI/ObjectUI.py:2108 +msgid "" +"Add / Select at least one tool in the tool-table.\n" +"Click the # header to select all, or Ctrl + LMB\n" +"for custom selection of tools." +msgstr "" +"Adicione / Selecione pelo menos uma ferramenta na tabela de ferramentas.\n" +"Clique no cabeçalho # para selecionar todos ou Ctrl + Botão Esquerdo do " +"Mouse\n" +"para seleção personalizada de ferramentas." + +#: flatcamGUI/ObjectUI.py:1318 flatcamGUI/ObjectUI.py:2115 +msgid "Generate CNCJob object" +msgstr "Gera o objeto de Trabalho CNC" + +#: flatcamGUI/ObjectUI.py:1320 +msgid "" +"Generate the CNC Job.\n" +"If milling then an additional Geometry object will be created" +msgstr "" +"Gera o Trabalho CNC.\n" +"Ao fresar, será criado um objeto Geometria adicional" + +#: flatcamGUI/ObjectUI.py:1337 +msgid "Milling Geometry" +msgstr "Geometria de Fresamento" + +#: flatcamGUI/ObjectUI.py:1339 +msgid "" +"Create Geometry for milling holes.\n" +"Select from the Tools Table above the hole dias to be\n" +"milled. Use the # column to make the selection." +msgstr "" +"Cria geometria para fresar.\n" +"Selecione na Tabela de Ferramentas acima\n" +"os diâmetros dos furos que serão fresados.\n" +"Use a coluna # para selecionar." + +#: flatcamGUI/ObjectUI.py:1347 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:296 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:45 +msgid "Diameter of the cutting tool." +msgstr "Diâmetro da ferramenta." + +#: flatcamGUI/ObjectUI.py:1357 +msgid "Mill Drills" +msgstr "Fresa Furos" + +#: flatcamGUI/ObjectUI.py:1359 +msgid "" +"Create the Geometry Object\n" +"for milling DRILLS toolpaths." +msgstr "" +"Cria o Objeto Geometria com\n" +"os caminhos da ferramenta de FUROS." + +#: flatcamGUI/ObjectUI.py:1377 +msgid "Mill Slots" +msgstr "Fresa Ranhuras" + +#: flatcamGUI/ObjectUI.py:1379 +msgid "" +"Create the Geometry Object\n" +"for milling SLOTS toolpaths." +msgstr "" +"Cria o Objeto Geometria com\n" +"os caminhos da ferramenta de RANHURAS." + +#: flatcamGUI/ObjectUI.py:1421 flatcamTools/ToolCutOut.py:319 +msgid "Geometry Object" +msgstr "Objeto Geometria" + +#: flatcamGUI/ObjectUI.py:1467 +msgid "" +"Tools in this Geometry object used for cutting.\n" +"The 'Offset' entry will set an offset for the cut.\n" +"'Offset' can be inside, outside, on path (none) and custom.\n" +"'Type' entry is only informative and it allow to know the \n" +"intent of using the current tool. \n" +"It can be Rough(ing), Finish(ing) or Iso(lation).\n" +"The 'Tool type'(TT) can be circular with 1 to 4 teeths(C1..C4),\n" +"ball(B), or V-Shaped(V). \n" +"When V-shaped is selected the 'Type' entry is automatically \n" +"set to Isolation, the CutZ parameter in the UI form is\n" +"grayed out and Cut Z is automatically calculated from the newly \n" +"showed UI form entries named V-Tip Dia and V-Tip Angle." +msgstr "" +"Ferramentas neste objeto Geometria usados para o corte.\n" +"A entrada 'Deslocamento' define um deslocamento para o corte.\n" +"'Deslocamento' pode ser dentro, fora, no caminho (nenhum) e personalizado. A " +"entrada\n" +"'Tipo' é somente informativo e permite conhecer a necessidade de usar a " +"ferramenta atual.\n" +"Pode ser Desbaste, Acabamento ou Isolação.\n" +"O 'Tipo de Ferramenta' (TF) pode ser circular com 1 a 4 dentes (C1..C4),\n" +"bola (B) ou Em Forma de V (V).\n" +"Quando forma em V é selecionada, a entrada 'Tipo' é automaticamente\n" +"alterada para Isolação, o parâmetro Profundidade de Corte\n" +"no formulário da interface do usuário é desabilitado e a Profundidade\n" +"de Corte é calculada automaticamente a partir das entradas do\n" +"formulário da interface do usuário e do Ângulo da Ponta-V." + +#: flatcamGUI/ObjectUI.py:1484 flatcamGUI/ObjectUI.py:2313 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:40 +msgid "Plot Object" +msgstr "Mostrar" + +#: flatcamGUI/ObjectUI.py:1497 flatcamGUI/ObjectUI.py:2326 +#: flatcamGUI/ObjectUI.py:2336 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:138 +#: flatcamTools/ToolCopperThieving.py:221 +msgid "Dia" +msgstr "Dia" + +#: flatcamGUI/ObjectUI.py:1497 flatcamGUI/ObjectUI.py:2326 +#: flatcamTools/ToolNCC.py:132 flatcamTools/ToolPaint.py:128 +msgid "TT" +msgstr "TF" + +#: flatcamGUI/ObjectUI.py:1504 +msgid "" +"This is the Tool Number.\n" +"When ToolChange is checked, on toolchange event this value\n" +"will be showed as a T1, T2 ... Tn" +msgstr "" +"Número da Ferramenta.\n" +"Quando Trocar Ferramentas estiver marcado, no evento este valor\n" +" será mostrado como T1, T2 ... Tn" + +#: flatcamGUI/ObjectUI.py:1515 +msgid "" +"The value for the Offset can be:\n" +"- Path -> There is no offset, the tool cut will be done through the geometry " +"line.\n" +"- In(side) -> The tool cut will follow the geometry inside. It will create a " +"'pocket'.\n" +"- Out(side) -> The tool cut will follow the geometry line on the outside." +msgstr "" +"O valor para Deslocamento pode ser:\n" +"- Caminho -> Não há deslocamento, o corte da ferramenta será feito sobre a " +"linha da geometria.\n" +"- In(terno) -> O corte da ferramenta seguirá a geometria interna. Será " +"criado um 'bolso'.\n" +"- Ex(terno) -> O corte da ferramenta seguirá no lado externo da linha da " +"geometria.\n" +"- Personalizado -> Será considerado o valor digitado." + +#: flatcamGUI/ObjectUI.py:1522 +msgid "" +"The (Operation) Type has only informative value. Usually the UI form " +"values \n" +"are choose based on the operation type and this will serve as a reminder.\n" +"Can be 'Roughing', 'Finishing' or 'Isolation'.\n" +"For Roughing we may choose a lower Feedrate and multiDepth cut.\n" +"For Finishing we may choose a higher Feedrate, without multiDepth.\n" +"For Isolation we need a lower Feedrate as it use a milling bit with a fine " +"tip." +msgstr "" +"O tipo (operação) tem apenas valor informativo. Normalmente, os valores do " +"formulário da interface do usuário\n" +"são escolhidos com base no tipo de operação e isso servirá como um " +"lembrete.\n" +"Pode ser 'Desbaste', 'Acabamento' ou 'Isolação'.\n" +"Para Desbaste, pode-se escolher uma taxa de Avanço inferior e corte de " +"múltiplas profundidades.\n" +"Para Acabamento, pode-se escolher uma taxa de avanço mais alta, sem multi-" +"profundidade.\n" +"Para Isolação, usa-se uma velocidade de avanço menor, pois é usada uma broca " +"com ponta fina." + +#: flatcamGUI/ObjectUI.py:1531 +msgid "" +"The Tool Type (TT) can be:\n" +"- Circular with 1 ... 4 teeth -> it is informative only. Being circular the " +"cut width in material\n" +"is exactly the tool diameter.\n" +"- Ball -> informative only and make reference to the Ball type endmill.\n" +"- V-Shape -> it will disable Z-Cut parameter in the UI form and enable two " +"additional UI form\n" +"fields: V-Tip Dia and V-Tip Angle. Adjusting those two values will adjust " +"the Z-Cut parameter such\n" +"as the cut width into material will be equal with the value in the Tool " +"Diameter column of this table.\n" +"Choosing the V-Shape Tool Type automatically will select the Operation Type " +"as Isolation." +msgstr "" +"O Tipo de Ferramenta (TF) pode ser:\n" +"- Circular com 1 ... 4 dentes -> apenas informativo. Sendo circular a " +"largura de corte no material\n" +" é exatamente o diâmetro da ferramenta.\n" +"- Bola -> apenas informativo e faz referência à fresa tipo Ball.\n" +"- Em Forma de V -> o parâmetro Corte Z no formulário de interface do usuário " +"será desabilitado e dois campos adicionais\n" +" no formulário UI serão habilitados: Diâmetro Ângulo Ponta-V e Ângulo Ponta-" +"V. O ajuste desses dois valores ajustará o parâmetro Corte Z, como\n" +"a largura do corte no material será igual ao valor da coluna Diâmetro da " +"ferramenta dessa tabela.\n" +"Escolher o tipo de ferramenta Em Forma de V automaticamente alterará o tipo " +"de operação para Isolação." + +#: flatcamGUI/ObjectUI.py:1543 +msgid "" +"Plot column. It is visible only for MultiGeo geometries, meaning geometries " +"that holds the geometry\n" +"data into the tools. For those geometries, deleting the tool will delete the " +"geometry data also,\n" +"so be WARNED. From the checkboxes on each row it can be enabled/disabled the " +"plot on canvas\n" +"for the corresponding tool." +msgstr "" +"Coluna de plotagem. É visível apenas para geometrias MultiGeo, ou seja, " +"geometrias que contêm os dados da geometria\n" +"das ferramentas. Para essas geometrias, a exclusão da ferramenta também " +"excluirá os dados da geometria,\n" +"assim, esteja ATENTO. Nas caixas de seleção de cada linha, pode ser ativado/" +"desativado o gráfico na tela\n" +"para a ferramenta correspondente." + +#: flatcamGUI/ObjectUI.py:1561 +msgid "" +"The value to offset the cut when \n" +"the Offset type selected is 'Offset'.\n" +"The value can be positive for 'outside'\n" +"cut and negative for 'inside' cut." +msgstr "" +"O valor para compensar o corte quando\n" +"o tipo selecionado for 'Deslocamento'.\n" +"O valor pode ser positivo para corte 'por fora'\n" +"e negativo para corte 'por dentro'." + +#: flatcamGUI/ObjectUI.py:1580 flatcamTools/ToolNCC.py:209 +#: flatcamTools/ToolNCC.py:923 flatcamTools/ToolPaint.py:192 +#: flatcamTools/ToolPaint.py:849 flatcamTools/ToolSolderPaste.py:559 +msgid "New Tool" +msgstr "Nova Ferramenta" + +#: flatcamGUI/ObjectUI.py:1597 +msgid "" +"Add a new tool to the Tool Table\n" +"with the specified diameter." +msgstr "" +"Adiciona uma nova ferramenta à Tabela de Ferramentas\n" +"com o diâmetro especificado." + +#: flatcamGUI/ObjectUI.py:1602 flatcamTools/ToolNCC.py:300 +#: flatcamTools/ToolNCC.py:634 flatcamTools/ToolPaint.py:283 +#: flatcamTools/ToolPaint.py:679 +msgid "Add from DB" +msgstr "Adicionar do BD" + +#: flatcamGUI/ObjectUI.py:1604 flatcamTools/ToolNCC.py:302 +#: flatcamTools/ToolPaint.py:285 +msgid "" +"Add a new tool to the Tool Table\n" +"from the Tool DataBase." +msgstr "" +"Adiciona uma nova ferramenta à Tabela de Ferramentas\n" +"do Banco de Dados de Ferramentas." + +#: flatcamGUI/ObjectUI.py:1619 +msgid "" +"Copy a selection of tools in the Tool Table\n" +"by first selecting a row in the Tool Table." +msgstr "" +"Copia uma seleção de ferramentas na Tabela de Ferramentas selecionando " +"primeiro uma linha na Tabela de Ferramentas." + +#: flatcamGUI/ObjectUI.py:1625 +msgid "" +"Delete a selection of tools in the Tool Table\n" +"by first selecting a row in the Tool Table." +msgstr "" +"Exclui uma seleção de ferramentas na Tabela de Ferramentas selecionando " +"primeiro uma linha na Tabela de Ferramentas." + +#: flatcamGUI/ObjectUI.py:1752 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:103 +msgid "" +"Height of the tool when\n" +"moving without cutting." +msgstr "Altura da ferramenta ao mover sem cortar." + +#: flatcamGUI/ObjectUI.py:1785 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:202 +msgid "" +"Cutting speed in the XY\n" +"plane in units per minute.\n" +"It is called also Plunge." +msgstr "" +"Velocidade de corte no plano Z em unidades por minuto.\n" +"Também é chamado de Mergulho." + +#: flatcamGUI/ObjectUI.py:1800 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:66 +msgid "" +"Cutting speed in the XY plane\n" +"(in units per minute).\n" +"This is for the rapid move G00.\n" +"It is useful only for Marlin,\n" +"ignore for any other cases." +msgstr "" +"Velocidade de corte no plano XY (em unidades por minuto).\n" +"Para o movimento rápido G00.\n" +"É útil apenas para Marlin, ignore em outros casos." + +#: flatcamGUI/ObjectUI.py:1844 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:219 +msgid "" +"Speed of the spindle in RPM (optional).\n" +"If LASER preprocessor is used,\n" +"this value is the power of laser." +msgstr "" +"Velocidade do spindle em RPM (opcional).\n" +"Se o pós-processador LASER é usado,\n" +"este valor é a potência do laser." + +#: flatcamGUI/ObjectUI.py:1947 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:124 +msgid "" +"Include tool-change sequence\n" +"in the Machine Code (Pause for tool change)." +msgstr "" +"Sequência de troca de ferramentas incluída\n" +"no Código da Máquina (Pausa para troca de ferramentas)." + +#: flatcamGUI/ObjectUI.py:2016 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:256 +msgid "" +"The Preprocessor file that dictates\n" +"the Machine Code (like GCode, RML, HPGL) output." +msgstr "" +"Arquivo de Pós-processamento que determina o código\n" +"de máquina de saída(como G-Code, RML, HPGL)." + +#: flatcamGUI/ObjectUI.py:2028 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:201 +msgid "Exclusion areas" +msgstr "" + +#: flatcamGUI/ObjectUI.py:2031 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:204 +msgid "" +"Include exclusion areas.\n" +"In those areas the travel of the tools\n" +"is forbidden." +msgstr "" + +#: flatcamGUI/ObjectUI.py:2053 +#, fuzzy +#| msgid "Add Track" +msgid "Add area" +msgstr "Adicionar Trilha" + +#: flatcamGUI/ObjectUI.py:2054 +msgid "Add an Exclusion Area." +msgstr "" + +#: flatcamGUI/ObjectUI.py:2058 +#, fuzzy +#| msgid "Clearance" +msgid "Clear areas" +msgstr "Espaço" + +#: flatcamGUI/ObjectUI.py:2059 +#, fuzzy +#| msgid "Delete all extensions from the list." +msgid "Delete all exclusion areas." +msgstr "Excluir todas as extensões da lista." + +#: flatcamGUI/ObjectUI.py:2068 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:212 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:322 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:286 +#: flatcamTools/ToolNCC.py:578 flatcamTools/ToolPaint.py:522 +msgid "Shape" +msgstr "Formato" + +#: flatcamGUI/ObjectUI.py:2070 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:214 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:324 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:288 +#: flatcamTools/ToolNCC.py:580 flatcamTools/ToolPaint.py:524 +msgid "The kind of selection shape used for area selection." +msgstr "O tipo de formato usado para a seleção de área." + +#: flatcamGUI/ObjectUI.py:2080 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:224 +msgid "Strategy" +msgstr "" + +#: flatcamGUI/ObjectUI.py:2081 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:225 +msgid "" +"The strategy followed when encountering an exclusion area.\n" +"Can be:\n" +"- Over -> when encountering the area, the tool will go to a set height\n" +"- Around -> will avoid the exclusion area by going around the area" +msgstr "" + +#: flatcamGUI/ObjectUI.py:2085 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:229 +#, fuzzy +#| msgid "Overlap" +msgid "Over" +msgstr "Sobreposição" + +#: flatcamGUI/ObjectUI.py:2086 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:230 +#, fuzzy +#| msgid "Round" +msgid "Around" +msgstr "Redondo" + +#: flatcamGUI/ObjectUI.py:2092 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:236 +#, fuzzy +#| msgid "Overlap" +msgid "Over Z" +msgstr "Sobreposição" + +#: flatcamGUI/ObjectUI.py:2093 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:237 +msgid "" +"The height Z to which the tool will rise in order to avoid\n" +"an interdiction area." +msgstr "" + +#: flatcamGUI/ObjectUI.py:2117 +msgid "Generate the CNC Job object." +msgstr "Gera o objeto de Trabalho CNC." + +#: flatcamGUI/ObjectUI.py:2134 +msgid "Launch Paint Tool in Tools Tab." +msgstr "Inicia a ferramenta de pintura na guia Ferramentas." + +#: flatcamGUI/ObjectUI.py:2142 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:35 +msgid "" +"Creates tool paths to cover the\n" +"whole area of a polygon (remove\n" +"all copper). You will be asked\n" +"to click on the desired polygon." +msgstr "" +"Cria caminhos de ferramenta para cobrir a área\n" +"inteira de um polígono (remove todo o cobre).\n" +"Você será solicitado a clicar no polígono desejado." + +#: flatcamGUI/ObjectUI.py:2197 +msgid "CNC Job Object" +msgstr "Objeto de Trabalho CNC" + +#: flatcamGUI/ObjectUI.py:2208 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:45 +msgid "Plot kind" +msgstr "Tipo de Gráfico" + +#: flatcamGUI/ObjectUI.py:2211 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:47 +msgid "" +"This selects the kind of geometries on the canvas to plot.\n" +"Those can be either of type 'Travel' which means the moves\n" +"above the work piece or it can be of type 'Cut',\n" +"which means the moves that cut into the material." +msgstr "" +"Seleciona o tipo de geometria mostrada na tela.\n" +"Pode ser do tipo 'Deslocamento', com os movimentos acima da peça, do\n" +"tipo 'Corte', com os movimentos cortando o material ou ambos." + +#: flatcamGUI/ObjectUI.py:2220 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:55 +msgid "Travel" +msgstr "Deslocamento" + +#: flatcamGUI/ObjectUI.py:2224 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:64 +msgid "Display Annotation" +msgstr "Exibir Anotação" + +#: flatcamGUI/ObjectUI.py:2226 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:66 +msgid "" +"This selects if to display text annotation on the plot.\n" +"When checked it will display numbers in order for each end\n" +"of a travel line." +msgstr "" +"Seleciona se deseja exibir a anotação de texto no gráfico.\n" +"Quando marcado, exibirá números para cada final\n" +"de uma linha de deslocamento." + +#: flatcamGUI/ObjectUI.py:2241 +msgid "Travelled dist." +msgstr "Dist. percorrida" + +#: flatcamGUI/ObjectUI.py:2243 flatcamGUI/ObjectUI.py:2248 +msgid "" +"This is the total travelled distance on X-Y plane.\n" +"In current units." +msgstr "" +"Essa é a distância total percorrida no plano XY,\n" +"nas unidades atuais." + +#: flatcamGUI/ObjectUI.py:2253 +msgid "Estimated time" +msgstr "Tempo estimado" + +#: flatcamGUI/ObjectUI.py:2255 flatcamGUI/ObjectUI.py:2260 +msgid "" +"This is the estimated time to do the routing/drilling,\n" +"without the time spent in ToolChange events." +msgstr "" +"Este é o tempo estimado para fazer o roteamento/perfuração,\n" +"sem o tempo gasto em eventos de Alteração de Ferramentas." + +#: flatcamGUI/ObjectUI.py:2295 +msgid "CNC Tools Table" +msgstr "Tabela de Ferra. CNC" + +#: flatcamGUI/ObjectUI.py:2298 +msgid "" +"Tools in this CNCJob object used for cutting.\n" +"The tool diameter is used for plotting on canvas.\n" +"The 'Offset' entry will set an offset for the cut.\n" +"'Offset' can be inside, outside, on path (none) and custom.\n" +"'Type' entry is only informative and it allow to know the \n" +"intent of using the current tool. \n" +"It can be Rough(ing), Finish(ing) or Iso(lation).\n" +"The 'Tool type'(TT) can be circular with 1 to 4 teeths(C1..C4),\n" +"ball(B), or V-Shaped(V)." +msgstr "" +"Ferramentas usadas para o corte no Trabalho CNC.\n" +"O diâmetro da ferramenta é usado para plotagem na tela.\n" +"A entrada 'Deslocamento' define um deslocamento para o corte.\n" +"'Deslocamento' pode ser dentro, fora, no caminho (nenhum) e personalizado. A " +"entrada\n" +"'Tipo' é apenas informativa e permite conhecer a necessidade de usar a " +"ferramenta atual.\n" +"Pode ser Desbaste, Acabamento ou Isolação.\n" +"O 'Tipo de Ferramenta' (TF) pode ser circular com 1 a 4 dentes (C1..C4),\n" +"bola (B) ou Em forma de V (V)." + +#: flatcamGUI/ObjectUI.py:2326 flatcamGUI/ObjectUI.py:2337 +msgid "P" +msgstr "P" + +#: flatcamGUI/ObjectUI.py:2347 +msgid "Update Plot" +msgstr "Atualizar Gráfico" + +#: flatcamGUI/ObjectUI.py:2349 +msgid "Update the plot." +msgstr "Atualiza o gráfico." + +#: flatcamGUI/ObjectUI.py:2356 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:30 +msgid "Export CNC Code" +msgstr "Exportar Código CNC" + +#: flatcamGUI/ObjectUI.py:2358 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:32 +#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:33 +msgid "" +"Export and save G-Code to\n" +"make this object to a file." +msgstr "" +"Exporta e salva em arquivo\n" +"o G-Code para fazer este objeto." + +#: flatcamGUI/ObjectUI.py:2364 +msgid "Prepend to CNC Code" +msgstr "Incluir no Início do Código CNC" + +#: flatcamGUI/ObjectUI.py:2366 flatcamGUI/ObjectUI.py:2373 +#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:49 +msgid "" +"Type here any G-Code commands you would\n" +"like to add at the beginning of the G-Code file." +msgstr "" +"Digite aqui os comandos G-Code que você gostaria\n" +"de adicionar ao início do arquivo G-Code gerado." + +#: flatcamGUI/ObjectUI.py:2379 +msgid "Append to CNC Code" +msgstr "Incluir no Final do Código CNC" + +#: flatcamGUI/ObjectUI.py:2381 flatcamGUI/ObjectUI.py:2389 +#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:65 +msgid "" +"Type here any G-Code commands you would\n" +"like to append to the generated file.\n" +"I.e.: M2 (End of program)" +msgstr "" +"Digite aqui os comandos G-Code que você gostaria\n" +"de adicionar ao final do arquivo G-Code gerado.\n" +"M2 (Fim do programa)" + +#: flatcamGUI/ObjectUI.py:2403 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:38 +msgid "Toolchange G-Code" +msgstr "G-Code para Troca de Ferramentas" + +#: flatcamGUI/ObjectUI.py:2406 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:41 +msgid "" +"Type here any G-Code commands you would\n" +"like to be executed when Toolchange event is encountered.\n" +"This will constitute a Custom Toolchange GCode,\n" +"or a Toolchange Macro.\n" +"The FlatCAM variables are surrounded by '%' symbol.\n" +"\n" +"WARNING: it can be used only with a preprocessor file\n" +"that has 'toolchange_custom' in it's name and this is built\n" +"having as template the 'Toolchange Custom' posprocessor file." +msgstr "" +"Digite aqui os comandos do G-Code que você gostaria de executar quando o " +"evento do Troca de Ferramentas for encontrado.\n" +"Ele será um G-Code personalizado para Troca de Ferramentas,\n" +"ou uma Macro.\n" +"As variáveis do FlatCAM são circundadas pelo símbolo '%'.\n" +"\n" +"ATENÇÃO: pode ser usado apenas com um arquivo de pós-processamento\n" +"que tenha 'toolchange_custom' em seu nome e este é construído tendo\n" +"como modelo o arquivo de pós-processamento 'Customização da troca de " +"ferramentas'." + +#: flatcamGUI/ObjectUI.py:2421 +msgid "" +"Type here any G-Code commands you would\n" +"like to be executed when Toolchange event is encountered.\n" +"This will constitute a Custom Toolchange GCode,\n" +"or a Toolchange Macro.\n" +"The FlatCAM variables are surrounded by '%' symbol.\n" +"WARNING: it can be used only with a preprocessor file\n" +"that has 'toolchange_custom' in it's name." +msgstr "" +"Digite aqui qualquer comando G-Code que você deseja\n" +"gostaria de ser executado quando o evento de troca de ferramentas é " +"encontrado.\n" +"Isso constituirá um G-Code personalizado de troca de ferramentas,\n" +"ou uma macro de troca de ferramentas.\n" +"As variáveis FlatCAM são cercadas pelo símbolo '%'.\n" +"ATENÇÃO: ele pode ser usado apenas com um arquivo de pré-processador\n" +"que possui 'toolchange_custom' em seu nome." + +#: flatcamGUI/ObjectUI.py:2436 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:80 +msgid "Use Toolchange Macro" +msgstr "Usar Macro de Troca de Ferramentas" + +#: flatcamGUI/ObjectUI.py:2438 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:82 +msgid "" +"Check this box if you want to use\n" +"a Custom Toolchange GCode (macro)." +msgstr "" +"Marque esta caixa se você quiser usar a macro G-Code para Troca de " +"Ferramentas." + +#: flatcamGUI/ObjectUI.py:2446 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:94 +msgid "" +"A list of the FlatCAM variables that can be used\n" +"in the Toolchange event.\n" +"They have to be surrounded by the '%' symbol" +msgstr "" +"Uma lista das variáveis FlatCAM que podem ser usadas\n" +"no evento Troca de Ferramentas.\n" +"Elas devem estar cercadas pelo símbolo '%'" + +#: flatcamGUI/ObjectUI.py:2453 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:101 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:30 +#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:31 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:31 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:37 +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:36 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:36 +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:36 +#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:31 +#: flatcamGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:31 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:36 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:31 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:30 +#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:31 +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:32 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:31 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:31 +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:31 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:31 +#: flatcamGUI/preferences/tools/ToolsSubPrefGroupUI.py:31 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:31 +#: flatcamTools/ToolCopperThieving.py:89 flatcamTools/ToolFiducials.py:149 +#: flatcamTools/ToolInvertGerber.py:82 +msgid "Parameters" +msgstr "Parâmetros" + +#: flatcamGUI/ObjectUI.py:2456 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:106 +msgid "FlatCAM CNC parameters" +msgstr "Parâmetros do FlatCAM CNC" + +#: flatcamGUI/ObjectUI.py:2457 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:111 +msgid "tool number" +msgstr "número da ferramenta" + +#: flatcamGUI/ObjectUI.py:2458 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:112 +msgid "tool diameter" +msgstr "diâmetro da ferramenta" + +#: flatcamGUI/ObjectUI.py:2459 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:113 +msgid "for Excellon, total number of drills" +msgstr "para Excellon, número total de furos" + +#: flatcamGUI/ObjectUI.py:2461 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:115 +msgid "X coord for Toolchange" +msgstr "Coordenada X para troca de ferramenta" + +#: flatcamGUI/ObjectUI.py:2462 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:116 +msgid "Y coord for Toolchange" +msgstr "Coordenada Y para troca de ferramenta" + +#: flatcamGUI/ObjectUI.py:2463 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:118 +msgid "Z coord for Toolchange" +msgstr "Coordenada Z para troca de ferramenta" + +#: flatcamGUI/ObjectUI.py:2464 +msgid "depth where to cut" +msgstr "profundidade de corte" + +#: flatcamGUI/ObjectUI.py:2465 +msgid "height where to travel" +msgstr "altura para deslocamentos" + +#: flatcamGUI/ObjectUI.py:2466 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:121 +msgid "the step value for multidepth cut" +msgstr "valor do passe para corte múltiplas profundidade" + +#: flatcamGUI/ObjectUI.py:2468 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:123 +msgid "the value for the spindle speed" +msgstr "velocidade do spindle" + +#: flatcamGUI/ObjectUI.py:2470 +msgid "time to dwell to allow the spindle to reach it's set RPM" +msgstr "tempo de espera para o spindle atingir sua vel. RPM" + +#: flatcamGUI/ObjectUI.py:2486 +msgid "View CNC Code" +msgstr "Ver Código CNC" + +#: flatcamGUI/ObjectUI.py:2488 +msgid "" +"Opens TAB to view/modify/print G-Code\n" +"file." +msgstr "Abre uma ABA para visualizar/modificar/imprimir o arquivo G-Code." + +#: flatcamGUI/ObjectUI.py:2493 +msgid "Save CNC Code" +msgstr "Salvar Código CNC" + +#: flatcamGUI/ObjectUI.py:2495 +msgid "" +"Opens dialog to save G-Code\n" +"file." +msgstr "Abre uma caixa de diálogo para salvar o arquivo G-Code." + +#: flatcamGUI/ObjectUI.py:2529 +msgid "Script Object" +msgstr "Objeto Script" + +#: flatcamGUI/ObjectUI.py:2549 flatcamGUI/ObjectUI.py:2623 +msgid "Auto Completer" +msgstr "Preenchimento Automático" + +#: flatcamGUI/ObjectUI.py:2551 +msgid "This selects if the auto completer is enabled in the Script Editor." +msgstr "" +"Selecionar se o preenchimento automático está ativado no Editor de Scripts." + +#: flatcamGUI/ObjectUI.py:2596 +msgid "Document Object" +msgstr "Objeto Documento" + +#: flatcamGUI/ObjectUI.py:2625 +msgid "This selects if the auto completer is enabled in the Document Editor." +msgstr "" +"Selecionar se o preenchimento automático está ativado no Editor de " +"Documentos." + +#: flatcamGUI/ObjectUI.py:2643 +msgid "Font Type" +msgstr "Tipo de Fonte" + +#: flatcamGUI/ObjectUI.py:2660 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:197 +msgid "Font Size" +msgstr "Tamanho da Fonte" + +#: flatcamGUI/ObjectUI.py:2696 +msgid "Alignment" +msgstr "Alinhamento" + +#: flatcamGUI/ObjectUI.py:2701 +msgid "Align Left" +msgstr "Esquerda" + +#: flatcamGUI/ObjectUI.py:2711 +msgid "Align Right" +msgstr "Direita" + +#: flatcamGUI/ObjectUI.py:2716 +msgid "Justify" +msgstr "Justificado" + +#: flatcamGUI/ObjectUI.py:2723 +msgid "Font Color" +msgstr "Cor da Fonte" + +#: flatcamGUI/ObjectUI.py:2725 +msgid "Set the font color for the selected text" +msgstr "Define a cor da fonte para o texto selecionado" + +#: flatcamGUI/ObjectUI.py:2739 +msgid "Selection Color" +msgstr "Cor da Seleção" + +#: flatcamGUI/ObjectUI.py:2741 +msgid "Set the selection color when doing text selection." +msgstr "Define a cor da seleção quando selecionando texto." + +#: flatcamGUI/ObjectUI.py:2755 +msgid "Tab Size" +msgstr "Tamanho da Aba" + +#: flatcamGUI/ObjectUI.py:2757 +msgid "Set the tab size. In pixels. Default value is 80 pixels." +msgstr "Define o tamanho da aba, em pixels. Valor padrão: 80 pixels." + +#: flatcamGUI/PlotCanvasLegacy.py:1299 +msgid "" +"Could not annotate due of a difference between the number of text elements " +"and the number of text positions." +msgstr "" +"Não foi possível anotar devido a uma diferença entre o número de elementos " +"de texto e o número de posições de texto." + +#: flatcamGUI/preferences/PreferencesUIManager.py:911 +msgid "Preferences applied." +msgstr "Preferências aplicadas." + +#: flatcamGUI/preferences/PreferencesUIManager.py:975 +msgid "Preferences closed without saving." +msgstr "Preferências fechadas sem salvar." + +#: flatcamGUI/preferences/PreferencesUIManager.py:987 +msgid "Preferences default values are restored." +msgstr "Os valores padrão das preferências são restaurados." + +#: flatcamGUI/preferences/PreferencesUIManager.py:1022 +#: flatcamGUI/preferences/PreferencesUIManager.py:1131 +msgid "Preferences saved." +msgstr "Preferências salvas." + +#: flatcamGUI/preferences/PreferencesUIManager.py:1072 +msgid "Preferences edited but not saved." +msgstr "Preferências editadas, mas não salvas." + +#: flatcamGUI/preferences/PreferencesUIManager.py:1117 +msgid "" +"One or more values are changed.\n" +"Do you want to save the Preferences?" +msgstr "" +"Um ou mais valores foram alterados.\n" +"Você deseja salvar as preferências?" + +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:27 +msgid "CNC Job Adv. Options" +msgstr "Opções Avançadas" + +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:64 +msgid "" +"Type here any G-Code commands you would like to be executed when Toolchange " +"event is encountered.\n" +"This will constitute a Custom Toolchange GCode, or a Toolchange Macro.\n" +"The FlatCAM variables are surrounded by '%' symbol.\n" +"WARNING: it can be used only with a preprocessor file that has " +"'toolchange_custom' in it's name." +msgstr "" +"Digite aqui qualquer comando G-Code que você deseja gostaria de ser " +"executado quando o evento de troca de ferramentas é encontrado.\n" +"Isso constituirá um G-Code personalizado de troca de ferramentas, ou uma " +"macro de troca de ferramentas.\n" +"As variáveis FlatCAM são cercadas pelo símbolo '%'.\n" +"ATENÇÃO: ele pode ser usado apenas com um arquivo de pré-processador que " +"possui 'toolchange_custom' em seu nome." + +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:119 +msgid "Z depth for the cut" +msgstr "Profundidade Z para o corte" + +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:120 +msgid "Z height for travel" +msgstr "Altura Z para deslocamentos" + +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:126 +msgid "dwelltime = time to dwell to allow the spindle to reach it's set RPM" +msgstr "dwelltime = tempo de espera para o spindle atingir sua vel. RPM" + +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:145 +msgid "Annotation Size" +msgstr "Tamanho da Fonte" + +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:147 +msgid "The font size of the annotation text. In pixels." +msgstr "O tamanho da fonte do texto de anotação, em pixels." + +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:157 +msgid "Annotation Color" +msgstr "Cor da Fonte" + +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:159 +msgid "Set the font color for the annotation texts." +msgstr "Define a cor da fonte para os textos de anotação." + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:26 +msgid "CNC Job General" +msgstr "Trabalho CNC Geral" + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:77 +#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:47 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:59 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:45 +msgid "Circle Steps" +msgstr "Passos do Círculo" + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:79 +msgid "" +"The number of circle steps for GCode \n" +"circle and arc shapes linear approximation." +msgstr "" +"O número de etapas de círculo para G-Code.\n" +"Aproximação linear para círculos e formas de arco." + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:88 +msgid "Travel dia" +msgstr "Diâmetro Desl." + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:90 +msgid "" +"The width of the travel lines to be\n" +"rendered in the plot." +msgstr "Largura da linha a ser renderizada no gráfico." + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:103 +msgid "G-code Decimals" +msgstr "Decimais de código G" + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:106 +#: flatcamTools/ToolFiducials.py:74 +msgid "Coordinates" +msgstr "Coordenadas" + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:108 +msgid "" +"The number of decimals to be used for \n" +"the X, Y, Z coordinates in CNC code (GCODE, etc.)" +msgstr "" +"Número de decimais a ser usado para as coordenadas\n" +"X, Y, Z no código do CNC (G-Code, etc.)" + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:119 +#: flatcamTools/ToolProperties.py:519 +msgid "Feedrate" +msgstr "Taxa de Avanço" + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:121 +msgid "" +"The number of decimals to be used for \n" +"the Feedrate parameter in CNC code (GCODE, etc.)" +msgstr "" +"O número de decimais a ser usado para o parâmetro\n" +"Taxa de Avanço no código CNC (G-Code, etc.)" + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:132 +msgid "Coordinates type" +msgstr "Tipo de coordenada" + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:134 +msgid "" +"The type of coordinates to be used in Gcode.\n" +"Can be:\n" +"- Absolute G90 -> the reference is the origin x=0, y=0\n" +"- Incremental G91 -> the reference is the previous position" +msgstr "" +"O tipo de coordenada a ser usada no G-Code.\n" +"Pode ser:\n" +"- Absoluta G90 -> a referência é a origem x=0, y=0\n" +"- Incremental G91 -> a referência é a posição anterior" + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:140 +msgid "Absolute G90" +msgstr "Absoluta G90" + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:141 +msgid "Incremental G91" +msgstr "Incremental G91" + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:151 +msgid "Force Windows style line-ending" +msgstr "Forçar final de linha no estilo Windows" + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:153 +msgid "" +"When checked will force a Windows style line-ending\n" +"(\\r\\n) on non-Windows OS's." +msgstr "" +"Quando marcado forçará um final de linha no estilo Windows\n" +"(\\r\\n) em sistemas operacionais não Windows." + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:165 +msgid "Travel Line Color" +msgstr "Cor da Linha de Viagem" + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:169 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:235 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:262 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:154 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:220 +#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:84 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:153 +#: flatcamTools/ToolRulesCheck.py:186 +msgid "Outline" +msgstr "Contorno" + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:171 +msgid "Set the travel line color for plotted objects." +msgstr "Defina a cor da linha de viagem para objetos plotados." + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:186 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:252 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:279 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:170 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:237 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:170 +msgid "Fill" +msgstr "Conteúdo" + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:188 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:254 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:281 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:172 +msgid "" +"Set the fill color for plotted objects.\n" +"First 6 digits are the color and the last 2\n" +"digits are for alpha (transparency) level." +msgstr "" +"Define a cor de preenchimento para os objetos plotados.\n" +"Os primeiros 6 dígitos são a cor e os últimos 2\n" +"dígitos são para o nível alfa (transparência)." + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:205 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:298 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:190 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:257 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:189 +msgid "Alpha" +msgstr "Alfa" + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:207 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:300 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:191 +msgid "Set the fill transparency for plotted objects." +msgstr "Define a transparência de preenchimento para objetos plotados." + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:231 +msgid "CNCJob Object Color" +msgstr "Cor do objeto CNCJob" + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:237 +msgid "Set the color for plotted objects." +msgstr "Defina a cor dos objetos plotados." + +#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:27 +msgid "CNC Job Options" +msgstr "Opções de Trabalho CNC" + +#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:31 +msgid "Export G-Code" +msgstr "Exportar G-Code" + +#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:47 +msgid "Prepend to G-Code" +msgstr "Incluir no Início do G-Code" + +#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:56 +msgid "" +"Type here any G-Code commands you would like to add at the beginning of the " +"G-Code file." +msgstr "" +"Digite aqui os comandos G-Code que você gostaria de adicionar ao início do " +"arquivo G-Code." + +#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:63 +msgid "Append to G-Code" +msgstr "Incluir no final do G-Code" + +#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:73 +msgid "" +"Type here any G-Code commands you would like to append to the generated " +"file.\n" +"I.e.: M2 (End of program)" +msgstr "" +"Digite aqui todos os comandos do código G que você gostaria de acrescentar " +"ao arquivo gerado.\n" +"Por exemplo: M2 (Fim do programa)" + +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:27 +msgid "Excellon Adv. Options" +msgstr "Opções Avançadas Excellon" + +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:34 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:33 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:31 +msgid "Advanced Options" +msgstr "Opções Avançadas" + +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:36 +msgid "" +"A list of Excellon advanced parameters.\n" +"Those parameters are available only for\n" +"Advanced App. Level." +msgstr "" +"Uma lista de parâmetros avançados do Excellon.\n" +"Esses parâmetros estão disponíveis somente para\n" +"o nível avançado do aplicativo." + +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:59 +msgid "Toolchange X,Y" +msgstr "Troca de ferramenta X,Y" + +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:61 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:47 +msgid "Toolchange X,Y position." +msgstr "Posição X,Y para troca de ferramentas." + +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:121 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:134 +msgid "Spindle direction" +msgstr "Sentido de Rotação" + +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:123 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:136 +msgid "" +"This sets the direction that the spindle is rotating.\n" +"It can be either:\n" +"- CW = clockwise or\n" +"- CCW = counter clockwise" +msgstr "" +"Define o sentido de rotação do spindle.\n" +"Pode ser:\n" +"- CW = sentido horário ou\n" +"- CCW = sentido anti-horário" + +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:134 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:148 +msgid "Fast Plunge" +msgstr "Mergulho Rápido" + +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:136 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:150 +msgid "" +"By checking this, the vertical move from\n" +"Z_Toolchange to Z_move is done with G0,\n" +"meaning the fastest speed available.\n" +"WARNING: the move is done at Toolchange X,Y coords." +msgstr "" +"Quando marcado, o movimento vertical da altura de Troca de\n" +"Ferramentas para a altura de Deslocamento é feito com G0,\n" +"na velocidade mais rápida disponível.\n" +"AVISO: o movimento é feito nas Coordenadas X,Y de troca de ferramentas." + +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:143 +msgid "Fast Retract" +msgstr "Recolhimento Rápido" + +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:145 +msgid "" +"Exit hole strategy.\n" +" - When uncheked, while exiting the drilled hole the drill bit\n" +"will travel slow, with set feedrate (G1), up to zero depth and then\n" +"travel as fast as possible (G0) to the Z Move (travel height).\n" +" - When checked the travel from Z cut (cut depth) to Z_move\n" +"(travel height) is done as fast as possible (G0) in one move." +msgstr "" +"Estratégia para sair dos furos.\n" +"- Quando desmarcado, ao sair do furo, a broca sobe lentamente, com\n" +" avanço definido (G1), até a profundidade zero e depois some o mais\n" +" rápido possível (G0) até a altura de deslocamento.\n" +"- Quando marcado, a subida da profundidade de corte para a altura de\n" +" deslocamento é feita o mais rápido possível (G0) em um único movimento." + +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:32 +msgid "A list of Excellon Editor parameters." +msgstr "Parâmetros do Editor Excellon." + +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:40 +#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:41 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:41 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:194 +msgid "Selection limit" +msgstr "Lim. de seleção" + +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:42 +msgid "" +"Set the number of selected Excellon geometry\n" +"items above which the utility geometry\n" +"becomes just a selection rectangle.\n" +"Increases the performance when moving a\n" +"large number of geometric elements." +msgstr "" +"Define o número máximo de ítens de geometria Excellon\n" +"selecionados. Acima desse valor a geometria se torna um\n" +"retângulo de seleção Aumenta o desempenho ao mover um\n" +"grande número de elementos geométricos." + +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:55 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:117 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:123 +msgid "New Dia" +msgstr "Novo Diâmetro" + +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:80 +msgid "Linear Drill Array" +msgstr "Matriz Linear de Furos" + +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:84 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:232 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:120 +msgid "Linear Direction" +msgstr "Direção Linear" + +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:126 +msgid "Circular Drill Array" +msgstr "Matriz Circular de Furos" + +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:130 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:280 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:164 +msgid "Circular Direction" +msgstr "Direção Circular" + +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:132 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:282 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:166 +msgid "" +"Direction for circular array.\n" +"Can be CW = clockwise or CCW = counter clockwise." +msgstr "" +"Sentido da matriz circular.\n" +"Pode ser CW = sentido horário ou CCW = sentido anti-horário." + +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:143 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:293 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:177 +msgid "Circular Angle" +msgstr "Ângulo Circular" + +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:196 +msgid "" +"Angle at which the slot is placed.\n" +"The precision is of max 2 decimals.\n" +"Min value is: -359.99 degrees.\n" +"Max value is: 360.00 degrees." +msgstr "" +"Ângulo no qual a ranhura é colocada.\n" +"A precisão é de no máximo 2 decimais.\n" +"Valor mínimo: -359.99 graus.\n" +"Valor máximo: 360.00 graus." + +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:215 +msgid "Linear Slot Array" +msgstr "Matriz Linear de Ranhuras" + +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:276 +msgid "Circular Slot Array" +msgstr "Matriz Circular de Ranhuras" + +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:26 +msgid "Excellon Export" +msgstr "Exportar Excellon" + +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:30 +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:31 +msgid "Export Options" +msgstr "Opções da Exportação" + +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:32 +msgid "" +"The parameters set here are used in the file exported\n" +"when using the File -> Export -> Export Excellon menu entry." +msgstr "" +"Os parâmetros definidos aqui são usados no arquivo exportado\n" +"ao usar a entrada de menu Arquivo -> Exportar -> Exportar Excellon." + +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:41 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:163 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:39 +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:42 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:82 +#: flatcamTools/ToolDistance.py:56 flatcamTools/ToolDistanceMin.py:50 +#: flatcamTools/ToolPcbWizard.py:127 flatcamTools/ToolProperties.py:154 +msgid "Units" +msgstr "Unidades" + +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:43 +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:49 +msgid "The units used in the Excellon file." +msgstr "A unidade usada no arquivo Excellon gerado." + +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:46 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:87 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:173 +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:47 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:87 +#: flatcamTools/ToolCalculators.py:61 flatcamTools/ToolPcbWizard.py:125 +msgid "INCH" +msgstr "in" + +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:47 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:174 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:43 +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:48 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:88 +#: flatcamTools/ToolCalculators.py:62 flatcamTools/ToolPcbWizard.py:126 +msgid "MM" +msgstr "mm" + +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:55 +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:56 +msgid "Int/Decimals" +msgstr "Int/Decimais" + +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:57 +msgid "" +"The NC drill files, usually named Excellon files\n" +"are files that can be found in different formats.\n" +"Here we set the format used when the provided\n" +"coordinates are not using period." +msgstr "" +"Os arquivos NC com a furação, geralmente chamados de arquivos Excellon\n" +"são arquivos que podem ser encontrados em diferentes formatos.\n" +"Aqui é definido o formato usado quando as coordenadas\n" +"fornecidas não usam ponto." + +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:69 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:95 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:124 +msgid "" +"This numbers signify the number of digits in\n" +"the whole part of Excellon coordinates." +msgstr "" +"Este número configura o número de dígitos\n" +"da parte inteira das coordenadas de Excellon." + +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:82 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:108 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:137 +msgid "" +"This numbers signify the number of digits in\n" +"the decimal part of Excellon coordinates." +msgstr "" +"Este número configura o número de dígitos\n" +"da parte decimal das coordenadas de Excellon." + +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:91 +msgid "Format" +msgstr "Formato" + +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:93 +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:103 +msgid "" +"Select the kind of coordinates format used.\n" +"Coordinates can be saved with decimal point or without.\n" +"When there is no decimal point, it is required to specify\n" +"the number of digits for integer part and the number of decimals.\n" +"Also it will have to be specified if LZ = leading zeros are kept\n" +"or TZ = trailing zeros are kept." +msgstr "" +"Selecione o formato de coordenadas a usar.\n" +"As coordenadas podem ser salvas com ou sem ponto decimal.\n" +"Quando não há ponto decimal, é necessário especificar\n" +"o número de dígitos para a parte inteira e o número de casas decimais.\n" +"Deve ser especificado LZ (manter zeros à esquerda)\n" +"ou TZ (manter zeros à direita)." + +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:100 +msgid "Decimal" +msgstr "Decimal" + +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:101 +msgid "No-Decimal" +msgstr "Não Decimal" + +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:114 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:145 +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:96 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:97 +msgid "Zeros" +msgstr "Zeros" + +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:117 +msgid "" +"This sets the type of Excellon zeros.\n" +"If LZ then Leading Zeros are kept and\n" +"Trailing Zeros are removed.\n" +"If TZ is checked then Trailing Zeros are kept\n" +"and Leading Zeros are removed." +msgstr "" +"Define o tipo de zeros de Excellon.\n" +"LZ: mantém os zeros à esquerda e remove os zeros à direita.\n" +"TZ: mantém os zeros à direita e remove os zeros à esquerda." + +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:124 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:158 +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:106 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:107 +#: flatcamTools/ToolPcbWizard.py:111 +msgid "LZ" +msgstr "LZ" + +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:125 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:159 +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:107 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:108 +#: flatcamTools/ToolPcbWizard.py:112 +msgid "TZ" +msgstr "TZ" + +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:127 +msgid "" +"This sets the default type of Excellon zeros.\n" +"If LZ then Leading Zeros are kept and\n" +"Trailing Zeros are removed.\n" +"If TZ is checked then Trailing Zeros are kept\n" +"and Leading Zeros are removed." +msgstr "" +"Define o tipo padrão de zeros de Excellon.\n" +"LZ: mantém os zeros à esquerda e remove os zeros à direita.\n" +"TZ: mantém os zeros à direita e remove os zeros à esquerda." + +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:137 +msgid "Slot type" +msgstr "Tipo de Ranhura" + +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:140 +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:150 +msgid "" +"This sets how the slots will be exported.\n" +"If ROUTED then the slots will be routed\n" +"using M15/M16 commands.\n" +"If DRILLED(G85) the slots will be exported\n" +"using the Drilled slot command (G85)." +msgstr "" +"Definição de como as ranhuras serão exportadas.\n" +"Se ROTEADO, as ranhuras serão roteadas\n" +"usando os comandos M15/M16.\n" +"Se PERFURADO as ranhuras serão exportadas\n" +"usando o comando Perfuração (G85)." + +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:147 +msgid "Routed" +msgstr "Roteado" + +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:148 +msgid "Drilled(G85)" +msgstr "Perfurado (G85)" + +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:29 +msgid "Excellon General" +msgstr "Excellon Geral" + +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:62 +msgid "Excellon Format" +msgstr "Formato Excellon" + +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:64 +msgid "" +"The NC drill files, usually named Excellon files\n" +"are files that can be found in different formats.\n" +"Here we set the format used when the provided\n" +"coordinates are not using period.\n" +"\n" +"Possible presets:\n" +"\n" +"PROTEUS 3:3 MM LZ\n" +"DipTrace 5:2 MM TZ\n" +"DipTrace 4:3 MM LZ\n" +"\n" +"EAGLE 3:3 MM TZ\n" +"EAGLE 4:3 MM TZ\n" +"EAGLE 2:5 INCH TZ\n" +"EAGLE 3:5 INCH TZ\n" +"\n" +"ALTIUM 2:4 INCH LZ\n" +"Sprint Layout 2:4 INCH LZ\n" +"KiCAD 3:5 INCH TZ" +msgstr "" +"Os arquivos de furos NC, normalmente chamados arquivos Excellon\n" +"são arquivos que podem ser encontrados em diferentes formatos.\n" +"Aqui é definido o formato usado quando as coordenadas\n" +"fornecidas não estiverem usando ponto.\n" +"\n" +"Padrões possíveis:\n" +"\n" +"PROTEUS 3:3 mm LZ\n" +"DipTrace 5:2 mm TZ\n" +"DipTrace 4:3 mm LZ\n" +"\n" +"EAGLE 3:3 mm TZ\n" +"EAGLE 4:3 mm TZ\n" +"EAGLE 2:5 polegadas TZ\n" +"EAGLE 3:5 polegadas TZ\n" +"\n" +"ALTIUM 2:4 polegadas LZ\n" +"Sprint Layout 2:4 polegadas LZ\n" +"KiCAD 3:5 polegadas TZ" + +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:88 +msgid "Default values for INCH are 2:4" +msgstr "Valores padrão para Polegadas: 2:4" + +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:116 +msgid "METRIC" +msgstr "MÉTRICO" + +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:117 +msgid "Default values for METRIC are 3:3" +msgstr "Valores padrão para Métrico: 3:3" + +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:148 +msgid "" +"This sets the type of Excellon zeros.\n" +"If LZ then Leading Zeros are kept and\n" +"Trailing Zeros are removed.\n" +"If TZ is checked then Trailing Zeros are kept\n" +"and Leading Zeros are removed.\n" +"\n" +"This is used when there is no information\n" +"stored in the Excellon file." +msgstr "" +"Define o tipo de zeros de Excellon.\n" +"LZ: mantém os zeros à esquerda e remove os zeros à direita.\n" +"TZ: mantém os zeros à direita e remove os zeros à esquerda.\n" +"\n" +"Isso é usado quando não há informações\n" +"armazenado no arquivo Excellon." + +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:166 +msgid "" +"This sets the default units of Excellon files.\n" +"If it is not detected in the parsed file the value here\n" +"will be used.Some Excellon files don't have an header\n" +"therefore this parameter will be used." +msgstr "" +"Configura as unidades padrão dos arquivos Excellon.\n" +"Alguns arquivos Excellon não possuem um cabeçalho.\n" +"Se não for detectado no arquivo analisado, este padrão\n" +"será usado." + +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:176 +msgid "" +"This sets the units of Excellon files.\n" +"Some Excellon files don't have an header\n" +"therefore this parameter will be used." +msgstr "" +"Configura as unidades dos arquivos Excellon.\n" +"Alguns arquivos Excellon não possuem um cabeçalho,\n" +"e assim este parâmetro será usado." + +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:184 +msgid "Update Export settings" +msgstr "Atualizar config. de exportação" + +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:201 +msgid "Excellon Optimization" +msgstr "Otimização Excellon" + +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:204 +msgid "Algorithm:" +msgstr "Algoritmo:" + +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:206 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:222 +msgid "" +"This sets the optimization type for the Excellon drill path.\n" +"If <> is checked then Google OR-Tools algorithm with\n" +"MetaHeuristic Guided Local Path is used. Default search time is 3sec.\n" +"If <> is checked then Google OR-Tools Basic algorithm is used.\n" +"If <> is checked then Travelling Salesman algorithm is used for\n" +"drill path optimization.\n" +"\n" +"If this control is disabled, then FlatCAM works in 32bit mode and it uses\n" +"Travelling Salesman algorithm for path optimization." +msgstr "" +"Define o tipo de otimização para o caminho de perfuração do Excellon.\n" +"Se <>estiver selecionado, será usado o algoritmo do Google OR-" +"Tools com MetaHeuristic.\n" +"O tempo de pesquisa padrão é de 3s.\n" +"Usar o comando TCL set_sys excellon_search_time para definir outros " +"valores.\n" +"Se <> estiver selecionado, será usado o algoritmo básico do Google " +"OR-Tools.\n" +"Se <> estiver selecionado, será usado o algoritmo Travelling Salesman.\n" +"\n" +"Se este controle está desabilitado, FlatCAM está no modo de 32 bits e usa\n" +"o algoritmo Travelling Salesman para otimização de caminhos." + +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:217 +msgid "MetaHeuristic" +msgstr "MetaHeuristic" + +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:218 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:104 +#: flatcamObjects/FlatCAMExcellon.py:614 flatcamObjects/FlatCAMGeometry.py:510 +#: flatcamObjects/FlatCAMGerber.py:251 +msgid "Basic" +msgstr "Básico" + +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:219 +msgid "TSA" +msgstr "TSA" + +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:236 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:245 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:237 +msgid "Duration" +msgstr "Tempo de espera" + +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:239 +msgid "" +"When OR-Tools Metaheuristic (MH) is enabled there is a\n" +"maximum threshold for how much time is spent doing the\n" +"path optimization. This max duration is set here.\n" +"In seconds." +msgstr "" +"Quando o Metaheuristic (MH) da OR-Tools está ativado, este é o limite\n" +"máximo de tempo para otimizar o caminho, em segundos. Padrão: 3." + +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:258 +msgid "Excellon Object Color" +msgstr "Cor do objeto Excellon" + +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:264 +#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:86 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:155 +msgid "Set the line color for plotted objects." +msgstr "Define a cor da linha para objetos plotados." + +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:29 +msgid "Excellon Options" +msgstr "Opções Excellon" + +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:33 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:34 +msgid "Create CNC Job" +msgstr "Criar Trabalho CNC" + +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:35 +msgid "" +"Parameters used to create a CNC Job object\n" +"for this drill object." +msgstr "" +"Parâmetros usados para criar um objeto de Trabalho CNC\n" +"para a furação." + +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:152 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:121 +msgid "Tool change" +msgstr "Troca de Ferramentas" + +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:236 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:232 +msgid "Enable Dwell" +msgstr "Ativar Pausa" + +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:259 +msgid "" +"The preprocessor JSON file that dictates\n" +"Gcode output." +msgstr "" +"O arquivo de pós-processamento (JSON) que define\n" +"a saída G-Code." + +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:270 +msgid "Gcode" +msgstr "G-Code" + +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:272 +msgid "" +"Choose what to use for GCode generation:\n" +"'Drills', 'Slots' or 'Both'.\n" +"When choosing 'Slots' or 'Both', slots will be\n" +"converted to drills." +msgstr "" +"Escolha o que usar para a geração de G-Code:\n" +"'Furos', 'Ranhuras' ou 'Ambos'.\n" +"Quando escolher 'Ranhuras' ou 'Ambos', as ranhuras serão\n" +"convertidos para furos." + +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:288 +msgid "Mill Holes" +msgstr "Furação" + +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:290 +msgid "Create Geometry for milling holes." +msgstr "Cria geometria para furação." + +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:294 +msgid "Drill Tool dia" +msgstr "Diâmetro da Broca" + +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:305 +msgid "Slot Tool dia" +msgstr "Diâmetro da Fresa" + +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:307 +msgid "" +"Diameter of the cutting tool\n" +"when milling slots." +msgstr "" +"Diâmetro da ferramenta de corte\n" +"quando fresar fendas (ranhuras)." + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:28 +msgid "App Settings" +msgstr "Configurações do Aplicativo" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:49 +msgid "Grid Settings" +msgstr "Configurações de Grade" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:53 +msgid "X value" +msgstr "Valor X" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:55 +msgid "This is the Grid snap value on X axis." +msgstr "Este é o valor do encaixe à grade no eixo X." + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:65 +msgid "Y value" +msgstr "Valor Y" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:67 +msgid "This is the Grid snap value on Y axis." +msgstr "Este é o valor do encaixe à grade no eixo Y." + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:77 +msgid "Snap Max" +msgstr "Encaixe Max" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:92 +msgid "Workspace Settings" +msgstr "Configurações da área de trabalho" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:95 +msgid "Active" +msgstr "Ativo" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:97 +msgid "" +"Draw a delimiting rectangle on canvas.\n" +"The purpose is to illustrate the limits for our work." +msgstr "" +"Desenha um retângulo de delimitação na tela.\n" +"O objetivo é ilustrar os limites do nosso trabalho." + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:105 +msgid "" +"Select the type of rectangle to be used on canvas,\n" +"as valid workspace." +msgstr "" +"Selecione o tipo de retângulo a ser usado na tela,\n" +"como área de trabalho válida." + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:171 +msgid "Orientation" +msgstr "Orientação" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:172 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:239 +#: flatcamTools/ToolFilm.py:422 +msgid "" +"Can be:\n" +"- Portrait\n" +"- Landscape" +msgstr "" +"Pode ser:\n" +"- Retrato\n" +"- Paisagem" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:176 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:243 +#: flatcamTools/ToolFilm.py:426 +msgid "Portrait" +msgstr "Retrato" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:177 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:244 +#: flatcamTools/ToolFilm.py:427 +msgid "Landscape" +msgstr "Paisagem" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:201 +msgid "Notebook" +msgstr "Caderno" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:203 +msgid "" +"This sets the font size for the elements found in the Notebook.\n" +"The notebook is the collapsible area in the left side of the GUI,\n" +"and include the Project, Selected and Tool tabs." +msgstr "" +"Isso define o tamanho da fonte para os elementos encontrados no bloco de " +"notas.\n" +"O bloco de notas é a área desmontável no lado esquerdo da GUI,\n" +"e inclui as guias Projeto, Selecionado e Ferramenta." + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:222 +msgid "Axis" +msgstr "Eixo" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:224 +msgid "This sets the font size for canvas axis." +msgstr "Define o tamanho da fonte para o eixo da tela." + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:241 +msgid "Textbox" +msgstr "Caixa de texto" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:243 +msgid "" +"This sets the font size for the Textbox GUI\n" +"elements that are used in FlatCAM." +msgstr "" +"Define o tamanho da fonte da caixa de texto\n" +"de elementos da GUI usados no FlatCAM." + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:269 +msgid "Mouse Settings" +msgstr "Configurações do mouse" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:273 +msgid "Cursor Shape" +msgstr "Forma do Cursor" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:275 +msgid "" +"Choose a mouse cursor shape.\n" +"- Small -> with a customizable size.\n" +"- Big -> Infinite lines" +msgstr "" +"Escolha uma forma de cursor do mouse.\n" +"- Pequeno -> com um tamanho personalizável.\n" +"- Grande -> Linhas infinitas" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:281 +msgid "Small" +msgstr "Pequeno" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:282 +msgid "Big" +msgstr "Grande" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:289 +msgid "Cursor Size" +msgstr "Tamanho do Cursor" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:291 +msgid "Set the size of the mouse cursor, in pixels." +msgstr "Define o tamanho do cursor do mouse, em pixels." + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:302 +msgid "Cursor Width" +msgstr "Largura do Cursor" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:304 +msgid "Set the line width of the mouse cursor, in pixels." +msgstr "Defina a largura da linha do cursor do mouse, em pixels." + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:315 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:322 +msgid "Cursor Color" +msgstr "Cor do Cursor" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:317 +msgid "Check this box to color mouse cursor." +msgstr "Marque esta caixa para colorir o cursor do mouse." + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:324 +msgid "Set the color of the mouse cursor." +msgstr "Defina a cor do cursor do mouse." + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:347 +msgid "Pan Button" +msgstr "Botão Pan" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:349 +msgid "" +"Select the mouse button to use for panning:\n" +"- MMB --> Middle Mouse Button\n" +"- RMB --> Right Mouse Button" +msgstr "" +"Selecione o botão do mouse para usar o panning:\n" +"- BM -> Botão do meio do mouse\n" +"- BD -> botão direito do mouse" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:353 +msgid "MMB" +msgstr "BM" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:354 +msgid "RMB" +msgstr "BD" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:360 +msgid "Multiple Selection" +msgstr "Seleção Múltipla" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:362 +msgid "Select the key used for multiple selection." +msgstr "Selecione a tecla usada para seleção múltipla." + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:364 +msgid "CTRL" +msgstr "CTRL" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:365 +msgid "SHIFT" +msgstr "SHIFT" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:376 +msgid "Delete object confirmation" +msgstr "Confirmação excluir objeto" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:378 +msgid "" +"When checked the application will ask for user confirmation\n" +"whenever the Delete object(s) event is triggered, either by\n" +"menu shortcut or key shortcut." +msgstr "" +"Quando marcada, o aplicativo pedirá a confirmação do usuário\n" +"sempre que o evento Excluir objeto(s) é acionado, seja por\n" +"atalho de menu ou atalho de tecla." + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:385 +msgid "\"Open\" behavior" +msgstr "Comportamento \"Abrir\"" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:387 +msgid "" +"When checked the path for the last saved file is used when saving files,\n" +"and the path for the last opened file is used when opening files.\n" +"\n" +"When unchecked the path for opening files is the one used last: either the\n" +"path for saving files or the path for opening files." +msgstr "" +"Quando marcado, o caminho do último arquivo salvo é usado ao salvar " +"arquivos,\n" +"e o caminho para o último arquivo aberto é usado ao abrir arquivos.\n" +"\n" +"Quando desmarcado, o caminho para abrir arquivos é aquele usado por último:\n" +"o caminho para salvar arquivos ou o caminho para abrir arquivos." + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:396 +msgid "Enable ToolTips" +msgstr "Habilitar Dicas" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:398 +msgid "" +"Check this box if you want to have toolTips displayed\n" +"when hovering with mouse over items throughout the App." +msgstr "" +"Marque esta caixa se quiser que as dicas de ferramentas sejam exibidas\n" +"ao passar o mouse sobre os itens em todo o aplicativo." + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:405 +msgid "Allow Machinist Unsafe Settings" +msgstr "Permitir configurações inseguras de operador" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:407 +msgid "" +"If checked, some of the application settings will be allowed\n" +"to have values that are usually unsafe to use.\n" +"Like Z travel negative values or Z Cut positive values.\n" +"It will applied at the next application start.\n" +"<>: Don't change this unless you know what you are doing !!!" +msgstr "" +"Se marcado, algumas das configurações do aplicativo poderão\n" +"ter valores que geralmente não são seguros.\n" +"Como Deslocamento Z com valores negativos ou Altura de Corte Z com valores " +"positivos.\n" +"Será aplicado no próximo início do aplicativo.\n" +"<>: Não habilite, a menos que você saiba o que está fazendo !!!" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:419 +msgid "Bookmarks limit" +msgstr "Limite de favoritos" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:421 +msgid "" +"The maximum number of bookmarks that may be installed in the menu.\n" +"The number of bookmarks in the bookmark manager may be greater\n" +"but the menu will hold only so much." +msgstr "" +"O número máximo de favoritos que podem ser instalados no menu.\n" +"O número de favoritos no gerenciador de favoritos pode ser maior,\n" +"mas o menu mostrará apenas esse número." + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:430 +msgid "Activity Icon" +msgstr "Ícone de Atividade" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:432 +msgid "Select the GIF that show activity when FlatCAM is active." +msgstr "Selecione o GIF que mostra a atividade quando o FlatCAM está ativo." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:29 +msgid "App Preferences" +msgstr "Preferências do aplicativo" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:40 +msgid "" +"The default value for FlatCAM units.\n" +"Whatever is selected here is set every time\n" +"FlatCAM is started." +msgstr "" +"Unidade utilizada como padrão para os valores no FlatCAM.\n" +"O que estiver selecionado aqui será considerado sempre que\n" +"o FLatCAM for iniciado." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:44 +msgid "IN" +msgstr "in" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:50 +msgid "Precision MM" +msgstr "Precisão mm" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:52 +msgid "" +"The number of decimals used throughout the application\n" +"when the set units are in METRIC system.\n" +"Any change here require an application restart." +msgstr "" +"O número de casas decimais usadas em todo o aplicativo\n" +"quando as unidades definidas estiverem no sistema MÉTRICO.\n" +"Qualquer alteração aqui requer uma reinicialização do aplicativo." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:64 +msgid "Precision INCH" +msgstr "Precisão in" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:66 +msgid "" +"The number of decimals used throughout the application\n" +"when the set units are in INCH system.\n" +"Any change here require an application restart." +msgstr "" +"O número de casas decimais usadas em todo o aplicativo\n" +"quando as unidades definidas estiverem no sistema INGLÊS.\n" +"Qualquer alteração aqui requer uma reinicialização do aplicativo." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:78 +msgid "Graphic Engine" +msgstr "Mecanismo Gráfico" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:79 +msgid "" +"Choose what graphic engine to use in FlatCAM.\n" +"Legacy(2D) -> reduced functionality, slow performance but enhanced " +"compatibility.\n" +"OpenGL(3D) -> full functionality, high performance\n" +"Some graphic cards are too old and do not work in OpenGL(3D) mode, like:\n" +"Intel HD3000 or older. In this case the plot area will be black therefore\n" +"use the Legacy(2D) mode." +msgstr "" +"Escolha qual mecanismo gráfico usar no FlatCAM.\n" +"Legado (2D) -> funcionalidade reduzida, desempenho lento, mas " +"compatibilidade aprimorada.\n" +"OpenGL (3D) -> funcionalidade completa, alto desempenho\n" +"Algumas placas gráficas são muito antigas e não funcionam no modo OpenGL " +"(3D), como:\n" +"Intel HD3000 ou mais antigo. Nesse caso, a área de plotagem será preta. " +"Nesse caso,\n" +"use o modo Legado (2D)." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:85 +msgid "Legacy(2D)" +msgstr "Legado(2D)" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:86 +msgid "OpenGL(3D)" +msgstr "OpenGL(3D)" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:98 +msgid "APP. LEVEL" +msgstr "Nível do Aplicativo" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:99 +msgid "" +"Choose the default level of usage for FlatCAM.\n" +"BASIC level -> reduced functionality, best for beginner's.\n" +"ADVANCED level -> full functionality.\n" +"\n" +"The choice here will influence the parameters in\n" +"the Selected Tab for all kinds of FlatCAM objects." +msgstr "" +"Escolha o nível padrão de uso para FlatCAM.\n" +"Nível BÁSICO -> funcionalidade reduzida, melhor para iniciantes.\n" +"Nível AVANÇADO -> funcionalidade completa.\n" +"\n" +"A escolha influenciará os parâmetros na Aba\n" +"Selecionado para todos os tipos de objetos FlatCAM." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:105 +#: flatcamObjects/FlatCAMExcellon.py:627 flatcamObjects/FlatCAMGeometry.py:531 +#: flatcamObjects/FlatCAMGerber.py:278 +msgid "Advanced" +msgstr "Avançado" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:111 +msgid "Portable app" +msgstr "Aplicativo portátil" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:112 +msgid "" +"Choose if the application should run as portable.\n" +"\n" +"If Checked the application will run portable,\n" +"which means that the preferences files will be saved\n" +"in the application folder, in the lib\\config subfolder." +msgstr "" +"Escolha se o aplicativo deve ser executado como portátil.\n" +"\n" +"Se marcado, o aplicativo será executado como portátil,\n" +"o que significa que os arquivos de preferências serão salvos\n" +"na pasta do aplicativo, na subpasta lib\\config." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:125 +msgid "Languages" +msgstr "Idioma" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:126 +msgid "Set the language used throughout FlatCAM." +msgstr "Defina o idioma usado no FlatCAM." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:132 +msgid "Apply Language" +msgstr "Aplicar o Idioma" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:133 +msgid "" +"Set the language used throughout FlatCAM.\n" +"The app will restart after click." +msgstr "" +"Defina o idioma usado no FlatCAM.\n" +"O aplicativo será reiniciado após o clique." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:147 +msgid "Startup Settings" +msgstr "Configurações de Inicialização" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:151 +msgid "Splash Screen" +msgstr "Tela de Abertura" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:153 +msgid "Enable display of the splash screen at application startup." +msgstr "Habilita a Tela de Abertura na inicialização do aplicativo." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:165 +msgid "Sys Tray Icon" +msgstr "Ícone da Bandeja do Sistema" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:167 +msgid "Enable display of FlatCAM icon in Sys Tray." +msgstr "Ativa a exibição do ícone do FlatCAM na bandeja do sistema." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:172 +msgid "Show Shell" +msgstr "Mostrar Shell" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:174 +msgid "" +"Check this box if you want the shell to\n" +"start automatically at startup." +msgstr "" +"Marque esta caixa se você deseja que o shell (linha de comando)\n" +"seja inicializado automaticamente na inicialização." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:181 +msgid "Show Project" +msgstr "Mostrar Projeto" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:183 +msgid "" +"Check this box if you want the project/selected/tool tab area to\n" +"to be shown automatically at startup." +msgstr "" +"Marque esta caixa se você quiser que a aba Projeto/Selecionado/Ferramenta\n" +"seja apresentada automaticamente na inicialização." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:189 +msgid "Version Check" +msgstr "Verificar Versão" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:191 +msgid "" +"Check this box if you want to check\n" +"for a new version automatically at startup." +msgstr "" +"Marque esta caixa se você quiser verificar\n" +"por nova versão automaticamente na inicialização." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:198 +msgid "Send Statistics" +msgstr "Enviar estatísticas" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:200 +msgid "" +"Check this box if you agree to send anonymous\n" +"stats automatically at startup, to help improve FlatCAM." +msgstr "" +"Marque esta caixa se você concorda em enviar dados anônimos\n" +"automaticamente na inicialização, para ajudar a melhorar o FlatCAM." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:214 +msgid "Workers number" +msgstr "Número de trabalhadores" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:216 +msgid "" +"The number of Qthreads made available to the App.\n" +"A bigger number may finish the jobs more quickly but\n" +"depending on your computer speed, may make the App\n" +"unresponsive. Can have a value between 2 and 16.\n" +"Default value is 2.\n" +"After change, it will be applied at next App start." +msgstr "" +"O número de Qthreads disponibilizados para o App.\n" +"Um número maior pode executar os trabalhos mais rapidamente, mas\n" +"dependendo da velocidade do computador, pode fazer com que o App\n" +"não responda. Pode ter um valor entre 2 e 16. O valor padrão é 2.\n" +"Após a mudança, ele será aplicado na próxima inicialização." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:230 +msgid "Geo Tolerance" +msgstr "Tolerância Geo" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:232 +msgid "" +"This value can counter the effect of the Circle Steps\n" +"parameter. Default value is 0.005.\n" +"A lower value will increase the detail both in image\n" +"and in Gcode for the circles, with a higher cost in\n" +"performance. Higher value will provide more\n" +"performance at the expense of level of detail." +msgstr "" +"Este valor pode contrariar o efeito do parâmetro Passos do Círculo.\n" +"O valor padrão é 0.005.\n" +"Um valor mais baixo aumentará os detalhes na imagem e no G-Code\n" +"para os círculos, com um custo maior em desempenho.\n" +"Um valor maior proporcionará mais desempenho à custa do nível\n" +"de detalhes." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:252 +msgid "Save Settings" +msgstr "Configurações para Salvar" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:256 +msgid "Save Compressed Project" +msgstr "Salvar Projeto Compactado" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:258 +msgid "" +"Whether to save a compressed or uncompressed project.\n" +"When checked it will save a compressed FlatCAM project." +msgstr "" +"Para salvar um projeto compactado ou descompactado.\n" +"Quando marcado, o projeto FlatCAM será salvo compactado." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:267 +msgid "Compression" +msgstr "Compressão" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:269 +msgid "" +"The level of compression used when saving\n" +"a FlatCAM project. Higher value means better compression\n" +"but require more RAM usage and more processing time." +msgstr "" +"O nível de compactação usado ao salvar o Projeto FlatCAM.\n" +"Um valor maior significa melhor compactação, mas é necessário mais uso de " +"RAM e mais tempo de processamento." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:280 +msgid "Enable Auto Save" +msgstr "Salvar Automaticamente" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:282 +msgid "" +"Check to enable the autosave feature.\n" +"When enabled, the application will try to save a project\n" +"at the set interval." +msgstr "" +"Marcar para ativar o recurso de salvamento automático.\n" +"Quando ativado, o aplicativo tentará salvar um projeto\n" +"no intervalo definido." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:292 +msgid "Interval" +msgstr "Intervalo" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:294 +msgid "" +"Time interval for autosaving. In milliseconds.\n" +"The application will try to save periodically but only\n" +"if the project was saved manually at least once.\n" +"While active, some operations may block this feature." +msgstr "" +"Intervalo de tempo para gravação automática, em milissegundos.\n" +"O aplicativo tentará salvar periodicamente, mas apenas\n" +"se o projeto foi salvo manualmente pelo menos uma vez.\n" +"Algumas operações podem bloquear esse recurso enquanto estiverem ativas." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:310 +msgid "Text to PDF parameters" +msgstr "Parâmetros de texto para PDF" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:312 +msgid "Used when saving text in Code Editor or in FlatCAM Document objects." +msgstr "" +"Usado ao salvar texto no Editor de código ou nos objetos de documento do " +"FlatCAM." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:321 +msgid "Top Margin" +msgstr "Margem superiorMargem" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:323 +msgid "Distance between text body and the top of the PDF file." +msgstr "Distância entre o corpo do texto e a parte superior do arquivo PDF." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:334 +msgid "Bottom Margin" +msgstr "Margem inferior" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:336 +msgid "Distance between text body and the bottom of the PDF file." +msgstr "Distância entre o corpo do texto e a parte inferior do arquivo PDF." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:347 +msgid "Left Margin" +msgstr "Margem esquerdaMargem" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:349 +msgid "Distance between text body and the left of the PDF file." +msgstr "Distância entre o corpo do texto e a esquerda do arquivo PDF." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:360 +msgid "Right Margin" +msgstr "Margem direita" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:362 +msgid "Distance between text body and the right of the PDF file." +msgstr "Distância entre o corpo do texto e o direito do arquivo PDF." + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:26 +msgid "GUI Preferences" +msgstr "Preferências da GUI" + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:36 +msgid "Theme" +msgstr "Tema" + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:38 +msgid "" +"Select a theme for FlatCAM.\n" +"It will theme the plot area." +msgstr "" +"Selecione um tema para FlatCAM.\n" +"Ele será aplicado na área do gráfico." + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:43 +msgid "Light" +msgstr "Claro" + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:44 +msgid "Dark" +msgstr "Escuro" + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:51 +msgid "Use Gray Icons" +msgstr "Use ícones cinza" + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:53 +msgid "" +"Check this box to use a set of icons with\n" +"a lighter (gray) color. To be used when a\n" +"full dark theme is applied." +msgstr "" +"Marque esta caixa para usar um conjunto de ícones com\n" +"uma cor mais clara (cinza). Para ser usado quando um\n" +"o tema escuro total é aplicado." + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:59 +msgid "Apply Theme" +msgstr "Aplicar temaAplicar" + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:61 +msgid "" +"Select a theme for FlatCAM.\n" +"It will theme the plot area.\n" +"The application will restart after change." +msgstr "" +"Selecione um tema para FlatCAM.\n" +"Ele será aplicado na área do gráfico.\n" +"O aplicativo reiniciará após a troca." + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:73 +msgid "Layout" +msgstr "Layout" + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:75 +msgid "" +"Select an layout for FlatCAM.\n" +"It is applied immediately." +msgstr "" +"Selecione um layout para o FlatCAM.\n" +"É aplicado imediatamente." + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:95 +msgid "Style" +msgstr "Estilo" + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:97 +msgid "" +"Select an style for FlatCAM.\n" +"It will be applied at the next app start." +msgstr "" +"Selecione um estilo para FlatCAM.\n" +"Ele será aplicado na próxima inicialização." + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:111 +msgid "Activate HDPI Support" +msgstr "Ativar HDPI" + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:113 +msgid "" +"Enable High DPI support for FlatCAM.\n" +"It will be applied at the next app start." +msgstr "" +"Ativa o suporte de alta DPI para FlatCAM.\n" +"Ele será aplicado na próxima inicialização." + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:127 +msgid "Display Hover Shape" +msgstr "Exibir forma de foco suspenso" + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:129 +msgid "" +"Enable display of a hover shape for FlatCAM objects.\n" +"It is displayed whenever the mouse cursor is hovering\n" +"over any kind of not-selected object." +msgstr "" +"Habilita a exibição de uma forma flutuante para objetos FlatCAM.\n" +"É exibido sempre que o cursor do mouse estiver pairando\n" +"sobre qualquer tipo de objeto não selecionado." + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:136 +msgid "Display Selection Shape" +msgstr "Exibir forma de seleção" + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:138 +msgid "" +"Enable the display of a selection shape for FlatCAM objects.\n" +"It is displayed whenever the mouse selects an object\n" +"either by clicking or dragging mouse from left to right or\n" +"right to left." +msgstr "" +"Ativa a exibição de seleção de forma para objetos FlatCAM.\n" +"É exibido sempre que o mouse seleciona um objeto\n" +"seja clicando ou arrastando o mouse da esquerda para a direita ou da direita " +"para a esquerda." + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:151 +msgid "Left-Right Selection Color" +msgstr "Cor da seleção esquerda-direita" + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:156 +msgid "Set the line color for the 'left to right' selection box." +msgstr "" +"Define a cor da linha para a caixa de seleção 'da esquerda para a direita'." + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:172 +msgid "" +"Set the fill color for the selection box\n" +"in case that the selection is done from left to right.\n" +"First 6 digits are the color and the last 2\n" +"digits are for alpha (transparency) level." +msgstr "" +"Define a cor de preenchimento para a caixa de seleção\n" +"no caso de a seleção ser feita da esquerda para a direita.\n" +"Os primeiros 6 dígitos são a cor e os últimos 2\n" +"dígitos são para o nível alfa (transparência)." + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:192 +msgid "Set the fill transparency for the 'left to right' selection box." +msgstr "" +"Define a transparência de preenchimento para a caixa de seleção 'da esquerda " +"para a direita'." + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:216 +msgid "Right-Left Selection Color" +msgstr "Cor da seleção direita-esquerda" + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:222 +msgid "Set the line color for the 'right to left' selection box." +msgstr "" +"Define a cor da linha para a caixa de seleção 'direita para a esquerda'." + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:239 +msgid "" +"Set the fill color for the selection box\n" +"in case that the selection is done from right to left.\n" +"First 6 digits are the color and the last 2\n" +"digits are for alpha (transparency) level." +msgstr "" +"Define a cor de preenchimento para a caixa de seleção, caso a seleção seja " +"feita da direita para a esquerda.\n" +"Os primeiros 6 dígitos são a cor e os últimos 2\n" +"dígitos são para o nível alfa (transparência)." + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:259 +msgid "Set the fill transparency for selection 'right to left' box." +msgstr "" +"Define a transparência de preenchimento para a seleção da caixa 'direita " +"para a esquerda'." + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:286 +msgid "Editor Color" +msgstr "Cor do editor" + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:290 +msgid "Drawing" +msgstr "Desenhando" + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:292 +msgid "Set the color for the shape." +msgstr "Define a cor da forma." + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:309 +msgid "Set the color of the shape when selected." +msgstr "Define a cor da forma quando selecionada." + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:332 +msgid "Project Items Color" +msgstr "Cor dos itens do projeto" + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:336 +msgid "Enabled" +msgstr "Ativado" + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:338 +msgid "Set the color of the items in Project Tab Tree." +msgstr "Define a cor dos itens na Árvore do Guia de Projeto." + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:352 +msgid "Disabled" +msgstr "Desativado" + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:354 +msgid "" +"Set the color of the items in Project Tab Tree,\n" +"for the case when the items are disabled." +msgstr "" +"Define a cor dos itens na Árvore da guia Projeto,\n" +"para o caso em que os itens estão desativados." + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:370 +msgid "Project AutoHide" +msgstr "Auto Ocultar" + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:372 +msgid "" +"Check this box if you want the project/selected/tool tab area to\n" +"hide automatically when there are no objects loaded and\n" +"to show whenever a new object is created." +msgstr "" +"Marque esta caixa se você deseja que a aba Projeto/Selecionado/Ferramenta\n" +"desapareça automaticamente quando não houver objetos carregados e\n" +"apareça sempre que um novo objeto for criado." + +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:27 +msgid "Geometry Adv. Options" +msgstr "Opções Avançadas" + +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:35 +msgid "" +"A list of Geometry advanced parameters.\n" +"Those parameters are available only for\n" +"Advanced App. Level." +msgstr "" +"Uma lista de parâmetros avançados de Geometria.\n" +"Esses parâmetros estão disponíveis somente para\n" +"o nível avançado do aplicativo." + +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:45 +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:112 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:134 +#: flatcamTools/ToolCalibration.py:125 flatcamTools/ToolSolderPaste.py:240 +msgid "Toolchange X-Y" +msgstr "Troca de ferramenta X-Y" + +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:56 +msgid "" +"Height of the tool just after starting the work.\n" +"Delete the value if you don't need this feature." +msgstr "" +"Altura da ferramenta ao iniciar o trabalho.\n" +"Exclua o valor se você não precisar deste recurso." + +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:158 +msgid "Segment X size" +msgstr "Tamanho do Segmento X" + +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:160 +msgid "" +"The size of the trace segment on the X axis.\n" +"Useful for auto-leveling.\n" +"A value of 0 means no segmentation on the X axis." +msgstr "" +"O tamanho do segmento de rastreio no eixo X.\n" +"Útil para nivelamento automático.\n" +"Valor 0 significa que não há segmentação no eixo X." + +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:174 +msgid "Segment Y size" +msgstr "Tamanho do Segmento Y" + +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:176 +msgid "" +"The size of the trace segment on the Y axis.\n" +"Useful for auto-leveling.\n" +"A value of 0 means no segmentation on the Y axis." +msgstr "" +"O tamanho do segmento de rastreio no eixo Y.\n" +"Útil para nivelamento automático.\n" +"Valor 0 significa que não há segmentação no eixo Y." + +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:192 +#, fuzzy +#| msgid "Area Selection" +msgid "Area Exclusion" +msgstr "Seleção de Área" + +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:194 +#, fuzzy +#| msgid "" +#| "A list of Excellon advanced parameters.\n" +#| "Those parameters are available only for\n" +#| "Advanced App. Level." +msgid "" +"Area exclusion parameters.\n" +"Those parameters are available only for\n" +"Advanced App. Level." +msgstr "" +"Uma lista de parâmetros avançados do Excellon.\n" +"Esses parâmetros estão disponíveis somente para\n" +"o nível avançado do aplicativo." + +#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:33 +msgid "A list of Geometry Editor parameters." +msgstr "Parâmetros do Editor de Geometria." + +#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:43 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:196 +msgid "" +"Set the number of selected geometry\n" +"items above which the utility geometry\n" +"becomes just a selection rectangle.\n" +"Increases the performance when moving a\n" +"large number of geometric elements." +msgstr "" +"Define o número máximo de ítens de geometria selecionados.\n" +"Acima desse valor a geometria se torna um retângulo de seleção.\n" +"Aumenta o desempenho ao mover um grande número de elementos geométricos." + +#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:27 +msgid "Geometry General" +msgstr "Geometria Geral" + +#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:49 +msgid "" +"The number of circle steps for Geometry \n" +"circle and arc shapes linear approximation." +msgstr "" +"Número de etapas do círculo para a aproximação linear\n" +"de Geometria círculo e arco." + +#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:63 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:41 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:48 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:42 +msgid "Tools Dia" +msgstr "Diâ. da Ferramenta" + +#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:65 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:108 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:43 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:50 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:44 +msgid "" +"Diameters of the tools, separated by comma.\n" +"The value of the diameter has to use the dot decimals separator.\n" +"Valid values: 0.3, 1.0" +msgstr "" +"Diâmetros das ferramentas, separados por vírgula.\n" +"Deve ser utilizado PONTO como separador de casas decimais.\n" +"Valores válidos: 0.3, 1.0" + +#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:80 +msgid "Geometry Object Color" +msgstr "Cor do objeto de Geometria" + +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:28 +msgid "Geometry Options" +msgstr "Opções de Geometria" + +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:36 +msgid "" +"Create a CNC Job object\n" +"tracing the contours of this\n" +"Geometry object." +msgstr "" +"Cria um objeto de Trabalho CNC\n" +"traçando os contornos deste objeto\n" +"Geometria." + +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:80 +msgid "Depth/Pass" +msgstr "Profundidade por Passe" + +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:82 +msgid "" +"The depth to cut on each pass,\n" +"when multidepth is enabled.\n" +"It has positive value although\n" +"it is a fraction from the depth\n" +"which has negative value." +msgstr "" +"A profundidade a ser cortada em cada passe,\n" +"quando Múltiplas Profundidades estiver ativo.\n" +"Tem valor positivo, embora seja uma fração\n" +"da profundidade, que tem valor negativo." + +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:27 +msgid "Gerber Adv. Options" +msgstr "Opções Avançadas" + +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:33 +msgid "" +"A list of Gerber advanced parameters.\n" +"Those parameters are available only for\n" +"Advanced App. Level." +msgstr "" +"Uma lista de parâmetros avançados do Gerber.\n" +"Esses parâmetros estão disponíveis somente para\n" +"o nível avançado do aplicativo." + +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:52 +msgid "Table Show/Hide" +msgstr "Mostra/Esconde Tabela" + +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:54 +msgid "" +"Toggle the display of the Gerber Apertures Table.\n" +"Also, on hide, it will delete all mark shapes\n" +"that are drawn on canvas." +msgstr "" +"Alterna a exibição da Tabela de Aberturas Gerber.\n" +"Além disso, ao ocultar, ele excluirá todas as formas de marcas\n" +"que estão desenhadas na tela." + +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:134 +msgid "Exterior" +msgstr "Exterior" + +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:135 +msgid "Interior" +msgstr "Interior" + +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:148 +msgid "" +"Buffering type:\n" +"- None --> best performance, fast file loading but no so good display\n" +"- Full --> slow file loading but good visuals. This is the default.\n" +"<>: Don't change this unless you know what you are doing !!!" +msgstr "" +"Tipo de Buffer:\n" +"- Nenhum --> melhor desempenho, abertura de arquivos rápida, mas não tão boa " +"aparência\n" +"- Completo --> abertura de arquivos lenta, mas boa aparência. Este é o " +"padrão.\n" +"<>: Não altere isso, a menos que você saiba o que está fazendo !!!" + +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:153 +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:88 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:207 +#: flatcamTools/ToolFiducials.py:201 flatcamTools/ToolFilm.py:255 +#: flatcamTools/ToolProperties.py:452 flatcamTools/ToolProperties.py:455 +#: flatcamTools/ToolProperties.py:458 flatcamTools/ToolProperties.py:483 +msgid "None" +msgstr "Nenhum" + +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:159 +msgid "Simplify" +msgstr "Simplificar" + +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:161 +msgid "" +"When checked all the Gerber polygons will be\n" +"loaded with simplification having a set tolerance.\n" +"<>: Don't change this unless you know what you are doing !!!" +msgstr "" +"Quando marcado, todos os polígonos Gerber serão\n" +"carregados com simplificação com uma tolerância definida.\n" +"<>: Não altere, a menos que saiba o que está fazendo !!!" + +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:168 +msgid "Tolerance" +msgstr "Tolerância" + +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:169 +msgid "Tolerance for polygon simplification." +msgstr "Tolerância para a simplificação de polígonos." + +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:33 +msgid "A list of Gerber Editor parameters." +msgstr "Uma lista de parâmetros do Editor Gerber." + +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:43 +msgid "" +"Set the number of selected Gerber geometry\n" +"items above which the utility geometry\n" +"becomes just a selection rectangle.\n" +"Increases the performance when moving a\n" +"large number of geometric elements." +msgstr "" +"Define o número máximo de ítens de geometria Gerber selecionados.\n" +"Acima desse valor a geometria se torna um retângulo de seleção.\n" +"Aumenta o desempenho ao mover um grande número de elementos geométricos." + +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:56 +msgid "New Aperture code" +msgstr "Novo código de Aber." + +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:69 +msgid "New Aperture size" +msgstr "Novo tamanho de Aber." + +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:71 +msgid "Size for the new aperture" +msgstr "Tamanho para a nova abertura" + +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:82 +msgid "New Aperture type" +msgstr "Novo tipo de Aber." + +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:84 +msgid "" +"Type for the new aperture.\n" +"Can be 'C', 'R' or 'O'." +msgstr "" +"Tipo para a nova abertura.\n" +"Pode ser 'C', 'R' ou 'O'." + +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:106 +msgid "Aperture Dimensions" +msgstr "Dimensão" + +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:116 +msgid "Linear Pad Array" +msgstr "Matriz Linear de Pads" + +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:160 +msgid "Circular Pad Array" +msgstr "Matriz Circular de Pads" + +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:196 +msgid "Distance at which to buffer the Gerber element." +msgstr "Distância na qual armazenar o elemento Gerber." + +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:205 +msgid "Scale Tool" +msgstr "Ferramenta de Escala" + +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:211 +msgid "Factor to scale the Gerber element." +msgstr "Fator para redimensionar o elemento Gerber." + +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:224 +msgid "Threshold low" +msgstr "Limiar baixo" + +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:226 +msgid "Threshold value under which the apertures are not marked." +msgstr "Valor limiar sob o qual as aberturas não são marcadas." + +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:236 +msgid "Threshold high" +msgstr "Limiar alto" + +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:238 +msgid "Threshold value over which the apertures are not marked." +msgstr "Valor limite sobre o qual as aberturas não são marcadas." + +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:27 +msgid "Gerber Export" +msgstr "Exportar Gerber" + +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:33 +msgid "" +"The parameters set here are used in the file exported\n" +"when using the File -> Export -> Export Gerber menu entry." +msgstr "" +"Os parâmetros definidos aqui são usados no arquivo exportado\n" +"ao usar a entrada de menu Arquivo -> Exportar -> Exportar Gerber." + +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:44 +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:50 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:84 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:90 +msgid "The units used in the Gerber file." +msgstr "As unidades usadas no arquivo Gerber." + +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:58 +msgid "" +"The number of digits in the whole part of the number\n" +"and in the fractional part of the number." +msgstr "" +"O número de dígitos da parte inteira\n" +"e da parte fracionária do número." + +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:71 +msgid "" +"This numbers signify the number of digits in\n" +"the whole part of Gerber coordinates." +msgstr "" +"Esse número configura o número de dígitos\n" +"da parte inteira das coordenadas de Gerber." + +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:87 +msgid "" +"This numbers signify the number of digits in\n" +"the decimal part of Gerber coordinates." +msgstr "" +"Este número configura o número de dígitos\n" +"da parte decimal das coordenadas de Gerber." + +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:99 +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:109 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:100 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:110 +msgid "" +"This sets the type of Gerber zeros.\n" +"If LZ then Leading Zeros are removed and\n" +"Trailing Zeros are kept.\n" +"If TZ is checked then Trailing Zeros are removed\n" +"and Leading Zeros are kept." +msgstr "" +"Define o tipo padrão de zeros de Gerber.\n" +"LZ: remove os zeros à esquerda e mantém os zeros à direita.\n" +"TZ: remove os zeros à direita e mantém os zeros à esquerda." + +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:27 +msgid "Gerber General" +msgstr "Gerber Geral" + +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:45 +msgid "M-Color" +msgstr "M-Cores" + +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:61 +msgid "" +"The number of circle steps for Gerber \n" +"circular aperture linear approximation." +msgstr "" +"Número de passos de círculo para Gerber.\n" +"Aproximação linear de abertura circular." + +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:73 +msgid "Default Values" +msgstr "Valores Padrão" + +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:75 +msgid "" +"Those values will be used as fallback values\n" +"in case that they are not found in the Gerber file." +msgstr "" +"Esses valores serão usados como valores padrão\n" +"caso eles não sejam encontrados no arquivo Gerber." + +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:126 +msgid "Clean Apertures" +msgstr "Limpe as Aberturas" + +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:128 +msgid "" +"Will remove apertures that do not have geometry\n" +"thus lowering the number of apertures in the Gerber object." +msgstr "" +"Remove aberturas que não possuem geometria\n" +"diminuindo assim o número de aberturas no objeto Gerber." + +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:134 +msgid "Polarity change buffer" +msgstr "Buffer de mudança de polaridade" + +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:136 +msgid "" +"Will apply extra buffering for the\n" +"solid geometry when we have polarity changes.\n" +"May help loading Gerber files that otherwise\n" +"do not load correctly." +msgstr "" +"Aplicará buffer extra para o\n" +"geometria sólida quando temos mudanças de polaridade.\n" +"Pode ajudar a carregar arquivos Gerber que de outra forma\n" +"Não carregue corretamente." + +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:149 +msgid "Gerber Object Color" +msgstr "Cor do objeto Gerber" + +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:29 +msgid "Gerber Options" +msgstr "Opções Gerber" + +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:107 +msgid "Combine Passes" +msgstr "Combinar Passes" + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:27 +msgid "Copper Thieving Tool Options" +msgstr "Opções da ferramenta Adição de Cobre" + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:39 +msgid "" +"A tool to generate a Copper Thieving that can be added\n" +"to a selected Gerber file." +msgstr "" +"Uma ferramenta para gerar uma Adição de cobre que pode ser adicionada\n" +"para um arquivo Gerber selecionado." + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:47 +msgid "Number of steps (lines) used to interpolate circles." +msgstr "Número de etapas (linhas) usadas para interpolar círculos." + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:57 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:261 +#: flatcamTools/ToolCopperThieving.py:96 flatcamTools/ToolCopperThieving.py:431 +msgid "Clearance" +msgstr "Espaço" + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:59 +msgid "" +"This set the distance between the copper Thieving components\n" +"(the polygon fill may be split in multiple polygons)\n" +"and the copper traces in the Gerber file." +msgstr "" +"Define a distância entre os componentes Adição de cobre\n" +"(o preenchimento de polígono pode ser dividido em vários polígonos)\n" +"e os vestígios de cobre no arquivo Gerber." + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:87 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280 +#: flatcamTools/ToolCopperThieving.py:126 flatcamTools/ToolNCC.py:535 +#: flatcamTools/ToolNCC.py:1316 flatcamTools/ToolNCC.py:1647 +#: flatcamTools/ToolNCC.py:1935 flatcamTools/ToolNCC.py:1990 +#: flatcamTools/ToolPaint.py:486 flatcamTools/ToolPaint.py:946 +#: flatcamTools/ToolPaint.py:1452 +msgid "Area Selection" +msgstr "Seleção de Área" + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:88 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280 +#: flatcamTools/ToolCopperThieving.py:127 flatcamTools/ToolDblSided.py:216 +#: flatcamTools/ToolNCC.py:535 flatcamTools/ToolNCC.py:1663 +#: flatcamTools/ToolNCC.py:1941 flatcamTools/ToolNCC.py:1998 +#: flatcamTools/ToolNCC.py:2306 flatcamTools/ToolNCC.py:2586 +#: flatcamTools/ToolNCC.py:3012 flatcamTools/ToolPaint.py:486 +#: flatcamTools/ToolPaint.py:931 flatcamTools/ToolPaint.py:1468 +#: tclCommands/TclCommandCopperClear.py:192 tclCommands/TclCommandPaint.py:166 +msgid "Reference Object" +msgstr "Objeto de Referência" + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:90 +#: flatcamTools/ToolCopperThieving.py:129 +msgid "Reference:" +msgstr "Referência:" + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:92 +msgid "" +"- 'Itself' - the copper Thieving extent is based on the object extent.\n" +"- 'Area Selection' - left mouse click to start selection of the area to be " +"filled.\n" +"- 'Reference Object' - will do copper thieving within the area specified by " +"another object." +msgstr "" +"- 'Própria' - a adição de cobre é baseada no próprio objeto a ser limpo.\n" +"- 'Seleção de Área' - clique com o botão esquerdo do mouse para iniciar a " +"seleção da área a ser pintada.\n" +"- 'Objeto de Referência' - adicionará o cobre dentro da área do objeto " +"especificado." + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:101 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:76 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:188 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:76 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:190 +#: flatcamTools/ToolCopperThieving.py:171 flatcamTools/ToolExtractDrills.py:102 +#: flatcamTools/ToolExtractDrills.py:240 flatcamTools/ToolPunchGerber.py:113 +#: flatcamTools/ToolPunchGerber.py:268 +msgid "Rectangular" +msgstr "Retangular" + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:102 +#: flatcamTools/ToolCopperThieving.py:172 +msgid "Minimal" +msgstr "Mínima" + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:104 +#: flatcamTools/ToolCopperThieving.py:174 flatcamTools/ToolFilm.py:113 +msgid "Box Type:" +msgstr "Tipo de Caixa:" + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:106 +#: flatcamTools/ToolCopperThieving.py:176 +msgid "" +"- 'Rectangular' - the bounding box will be of rectangular shape.\n" +"- 'Minimal' - the bounding box will be the convex hull shape." +msgstr "" +"- 'Retangular' - a caixa delimitadora será de forma retangular.\n" +"- 'Mínima' - a caixa delimitadora terá a forma convexa do casco." + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:120 +#: flatcamTools/ToolCopperThieving.py:192 +msgid "Dots Grid" +msgstr "Pontos" + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:121 +#: flatcamTools/ToolCopperThieving.py:193 +msgid "Squares Grid" +msgstr "Quadrados" + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:122 +#: flatcamTools/ToolCopperThieving.py:194 +msgid "Lines Grid" +msgstr "Linhas" + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:124 +#: flatcamTools/ToolCopperThieving.py:196 +msgid "Fill Type:" +msgstr "Tipo de Preenchimento:" + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:126 +#: flatcamTools/ToolCopperThieving.py:198 +msgid "" +"- 'Solid' - copper thieving will be a solid polygon.\n" +"- 'Dots Grid' - the empty area will be filled with a pattern of dots.\n" +"- 'Squares Grid' - the empty area will be filled with a pattern of squares.\n" +"- 'Lines Grid' - the empty area will be filled with a pattern of lines." +msgstr "" +"- 'Sólido' - a adição de cobre será um polígono sólido.\n" +"- 'Pontos' - a área vazia será preenchida com um padrão de pontos.\n" +"- 'Quadrados' - a área vazia será preenchida com um padrão de quadrados.\n" +"- 'Linhas' - a área vazia será preenchida com um padrão de linhas." + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:134 +#: flatcamTools/ToolCopperThieving.py:217 +msgid "Dots Grid Parameters" +msgstr "Parâmetros dos Pontos" + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:140 +#: flatcamTools/ToolCopperThieving.py:223 +msgid "Dot diameter in Dots Grid." +msgstr "Diâmetro dos Pontos." + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:151 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:180 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:209 +#: flatcamTools/ToolCopperThieving.py:234 +#: flatcamTools/ToolCopperThieving.py:274 +#: flatcamTools/ToolCopperThieving.py:314 +msgid "Spacing" +msgstr "Espaçamento" + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:153 +#: flatcamTools/ToolCopperThieving.py:236 +msgid "Distance between each two dots in Dots Grid." +msgstr "Distância entre dois pontos." + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:163 +#: flatcamTools/ToolCopperThieving.py:257 +msgid "Squares Grid Parameters" +msgstr "Parâmetros dos Quadrados" + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:169 +#: flatcamTools/ToolCopperThieving.py:263 +msgid "Square side size in Squares Grid." +msgstr "Lado do quadrado." + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:182 +#: flatcamTools/ToolCopperThieving.py:276 +msgid "Distance between each two squares in Squares Grid." +msgstr "Distância entre dois quadrados." + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:192 +#: flatcamTools/ToolCopperThieving.py:297 +msgid "Lines Grid Parameters" +msgstr "Parâmetros das Linhas" + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:198 +#: flatcamTools/ToolCopperThieving.py:303 +msgid "Line thickness size in Lines Grid." +msgstr "Espessura das Linhas." + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:211 +#: flatcamTools/ToolCopperThieving.py:316 +msgid "Distance between each two lines in Lines Grid." +msgstr "Distância entre duas linhas." + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:221 +#: flatcamTools/ToolCopperThieving.py:354 +msgid "Robber Bar Parameters" +msgstr "Parâmetros da Barra" + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:223 +#: flatcamTools/ToolCopperThieving.py:356 +msgid "" +"Parameters used for the robber bar.\n" +"Robber bar = copper border to help in pattern hole plating." +msgstr "" +"Parâmetros usados para a barra de assalto.\n" +"Barra = borda de cobre para ajudar no revestimento do furo do padrão." + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:231 +#: flatcamTools/ToolCopperThieving.py:364 +msgid "Bounding box margin for robber bar." +msgstr "Margem da caixa delimitadora para Robber Bar." + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:242 +#: flatcamTools/ToolCopperThieving.py:375 +msgid "Thickness" +msgstr "Espessura" + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:244 +#: flatcamTools/ToolCopperThieving.py:377 +msgid "The robber bar thickness." +msgstr "Espessura da barra." + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:254 +#: flatcamTools/ToolCopperThieving.py:408 +msgid "Pattern Plating Mask" +msgstr "Máscara do Revestimento Padrão" + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:256 +#: flatcamTools/ToolCopperThieving.py:410 +msgid "Generate a mask for pattern plating." +msgstr "Gera uma máscara para o revestimento padrão." + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:263 +#: flatcamTools/ToolCopperThieving.py:433 +msgid "" +"The distance between the possible copper thieving elements\n" +"and/or robber bar and the actual openings in the mask." +msgstr "" +"Distância entre os possíveis elementos de adição de cobre\n" +"e/ou barra e as aberturas reais na máscara." + +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:27 +msgid "Calibration Tool Options" +msgstr "Opções da Ferramenta de Calibração" + +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:38 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:38 +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:38 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:38 +#: flatcamTools/ToolCopperThieving.py:91 flatcamTools/ToolFiducials.py:151 +msgid "Parameters used for this tool." +msgstr "Parâmetros usados para esta ferramenta." + +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:43 +#: flatcamTools/ToolCalibration.py:181 +msgid "Source Type" +msgstr "Tipo de Fonte" + +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:44 +#: flatcamTools/ToolCalibration.py:182 +msgid "" +"The source of calibration points.\n" +"It can be:\n" +"- Object -> click a hole geo for Excellon or a pad for Gerber\n" +"- Free -> click freely on canvas to acquire the calibration points" +msgstr "" +"A fonte dos pontos de calibração.\n" +"Pode ser:\n" +"- Objeto -> clique em uma área geográfica do furo para o Excellon ou em um " +"pad para o Gerber\n" +"- Livre -> clique livremente na tela para adquirir os pontos de calibração" + +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:49 +#: flatcamTools/ToolCalibration.py:187 +msgid "Free" +msgstr "Livre" + +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:63 +#: flatcamTools/ToolCalibration.py:76 +msgid "Height (Z) for travelling between the points." +msgstr "Altura (Z) para deslocamento entre os pontos." + +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:75 +#: flatcamTools/ToolCalibration.py:88 +msgid "Verification Z" +msgstr "Verificação Z" + +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:77 +#: flatcamTools/ToolCalibration.py:90 +msgid "Height (Z) for checking the point." +msgstr "Altura (Z) para verificar o ponto." + +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:89 +#: flatcamTools/ToolCalibration.py:102 +msgid "Zero Z tool" +msgstr "Ferramenta Zero Z" + +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:91 +#: flatcamTools/ToolCalibration.py:104 +msgid "" +"Include a sequence to zero the height (Z)\n" +"of the verification tool." +msgstr "" +"Inclui uma sequência para zerar a altura (Z)\n" +"da ferramenta de verificação." + +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:100 +#: flatcamTools/ToolCalibration.py:113 +msgid "Height (Z) for mounting the verification probe." +msgstr "Altura (Z) para montar a sonda de verificação." + +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:114 +#: flatcamTools/ToolCalibration.py:127 +msgid "" +"Toolchange X,Y position.\n" +"If no value is entered then the current\n" +"(x, y) point will be used," +msgstr "" +"Troca de ferramentas nas posições X, Y.\n" +"Se nenhum valor for inserido, o valor atual\n" +"ponto (x, y) será usado," + +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:125 +#: flatcamTools/ToolCalibration.py:153 +msgid "Second point" +msgstr "Segundo Ponto" + +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:127 +#: flatcamTools/ToolCalibration.py:155 +msgid "" +"Second point in the Gcode verification can be:\n" +"- top-left -> the user will align the PCB vertically\n" +"- bottom-right -> the user will align the PCB horizontally" +msgstr "" +"O segundo ponto na verificação do G-Code pode ser:\n" +"- canto superior esquerdo -> o usuário alinhará o PCB verticalmente\n" +"- canto inferior direito -> o usuário alinhará o PCB horizontalmente" + +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:27 +msgid "Extract Drills Options" +msgstr "Opções de Extração de Furos" + +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:42 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:42 +#: flatcamTools/ToolExtractDrills.py:68 flatcamTools/ToolPunchGerber.py:75 +msgid "Processed Pads Type" +msgstr "Tipo de Pads Processados" + +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:44 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:44 +#: flatcamTools/ToolExtractDrills.py:70 flatcamTools/ToolPunchGerber.py:77 +msgid "" +"The type of pads shape to be processed.\n" +"If the PCB has many SMD pads with rectangular pads,\n" +"disable the Rectangular aperture." +msgstr "" +"O tipo de formato dos pads a serem processadas.\n" +"Se o PCB tiver muitos blocos SMD com pads retangulares,\n" +"desative a abertura retangular." + +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:54 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:54 +#: flatcamTools/ToolExtractDrills.py:80 flatcamTools/ToolPunchGerber.py:91 +msgid "Process Circular Pads." +msgstr "Pads Circulares" + +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:60 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:162 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:60 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:164 +#: flatcamTools/ToolExtractDrills.py:86 flatcamTools/ToolExtractDrills.py:214 +#: flatcamTools/ToolPunchGerber.py:97 flatcamTools/ToolPunchGerber.py:242 +msgid "Oblong" +msgstr "Oblongo" + +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:62 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:62 +#: flatcamTools/ToolExtractDrills.py:88 flatcamTools/ToolPunchGerber.py:99 +msgid "Process Oblong Pads." +msgstr "Pads Oblongos." + +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:70 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:70 +#: flatcamTools/ToolExtractDrills.py:96 flatcamTools/ToolPunchGerber.py:107 +msgid "Process Square Pads." +msgstr "Pads Quadrados." + +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:78 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:78 +#: flatcamTools/ToolExtractDrills.py:104 flatcamTools/ToolPunchGerber.py:115 +msgid "Process Rectangular Pads." +msgstr "Pads Retangulares" + +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:84 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:201 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:84 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:203 +#: flatcamTools/ToolExtractDrills.py:110 flatcamTools/ToolExtractDrills.py:253 +#: flatcamTools/ToolProperties.py:172 flatcamTools/ToolPunchGerber.py:121 +#: flatcamTools/ToolPunchGerber.py:281 +msgid "Others" +msgstr "Outros" + +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:86 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:86 +#: flatcamTools/ToolExtractDrills.py:112 flatcamTools/ToolPunchGerber.py:123 +msgid "Process pads not in the categories above." +msgstr "Processa pads fora das categorias acima." + +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:99 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:123 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:100 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:125 +#: flatcamTools/ToolExtractDrills.py:139 flatcamTools/ToolExtractDrills.py:156 +#: flatcamTools/ToolPunchGerber.py:150 flatcamTools/ToolPunchGerber.py:184 +msgid "Fixed Diameter" +msgstr "Diâmetro Fixo" + +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:100 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:140 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:101 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:142 +#: flatcamTools/ToolExtractDrills.py:140 flatcamTools/ToolExtractDrills.py:192 +#: flatcamTools/ToolPunchGerber.py:151 flatcamTools/ToolPunchGerber.py:214 +msgid "Fixed Annular Ring" +msgstr "Anel Anular Fixo" + +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:101 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:102 +#: flatcamTools/ToolExtractDrills.py:141 flatcamTools/ToolPunchGerber.py:152 +msgid "Proportional" +msgstr "Proporcional" + +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:107 +#: flatcamTools/ToolExtractDrills.py:130 +msgid "" +"The method for processing pads. Can be:\n" +"- Fixed Diameter -> all holes will have a set size\n" +"- Fixed Annular Ring -> all holes will have a set annular ring\n" +"- Proportional -> each hole size will be a fraction of the pad size" +msgstr "" +"Método para processar pads. Pode ser:\n" +"- Diâmetro fixo -> todos os furos terão um tamanho definido\n" +"- Anel Anular fixo -> todos os furos terão um anel anular definido\n" +"- Proporcional -> cada tamanho de furo será uma fração do tamanho do pad" + +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:133 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:135 +#: flatcamTools/ToolExtractDrills.py:166 flatcamTools/ToolPunchGerber.py:194 +msgid "Fixed hole diameter." +msgstr "Diâmetro fixo." + +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:142 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:144 +#: flatcamTools/ToolExtractDrills.py:194 flatcamTools/ToolPunchGerber.py:216 +msgid "" +"The size of annular ring.\n" +"The copper sliver between the hole exterior\n" +"and the margin of the copper pad." +msgstr "" +"Tamanho do anel anular.\n" +"A tira de cobre entre o exterior do furo\n" +"e a margem do pad de cobre." + +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:151 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:153 +#: flatcamTools/ToolExtractDrills.py:203 flatcamTools/ToolPunchGerber.py:231 +msgid "The size of annular ring for circular pads." +msgstr "Tamanho do anel anular para pads circulares." + +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:164 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:166 +#: flatcamTools/ToolExtractDrills.py:216 flatcamTools/ToolPunchGerber.py:244 +msgid "The size of annular ring for oblong pads." +msgstr "Tamanho do anel anular para pads oblongos." + +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:177 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:179 +#: flatcamTools/ToolExtractDrills.py:229 flatcamTools/ToolPunchGerber.py:257 +msgid "The size of annular ring for square pads." +msgstr "Tamanho do anel anular para pads quadrados." + +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:190 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:192 +#: flatcamTools/ToolExtractDrills.py:242 flatcamTools/ToolPunchGerber.py:270 +msgid "The size of annular ring for rectangular pads." +msgstr "Tamanho do anel anular para pads retangulares." + +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:203 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:205 +#: flatcamTools/ToolExtractDrills.py:255 flatcamTools/ToolPunchGerber.py:283 +msgid "The size of annular ring for other pads." +msgstr "Tamanho do anel anular para outros pads." + +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:213 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:215 +#: flatcamTools/ToolExtractDrills.py:276 flatcamTools/ToolPunchGerber.py:299 +msgid "Proportional Diameter" +msgstr "Diâmetro Proporcional" + +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:222 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:224 +msgid "Factor" +msgstr "Fator" + +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:224 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:226 +#: flatcamTools/ToolExtractDrills.py:287 flatcamTools/ToolPunchGerber.py:310 +msgid "" +"Proportional Diameter.\n" +"The hole diameter will be a fraction of the pad size." +msgstr "" +"Diâmetro Proporcional.\n" +"O diâmetro do furo será uma fração do tamanho do pad." + +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:27 +msgid "Fiducials Tool Options" +msgstr "Opções da Ferramenta de Fiduciais" + +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:45 +#: flatcamTools/ToolFiducials.py:158 +msgid "" +"This set the fiducial diameter if fiducial type is circular,\n" +"otherwise is the size of the fiducial.\n" +"The soldermask opening is double than that." +msgstr "" +"Define o diâmetro fiducial se o tipo fiducial for circular,\n" +"caso contrário, é o tamanho do fiducial.\n" +"A abertura da máscara de solda é o dobro disso." + +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:73 +#: flatcamTools/ToolFiducials.py:186 +msgid "Auto" +msgstr "Auto" + +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:74 +#: flatcamTools/ToolFiducials.py:187 +msgid "Manual" +msgstr "Manual" + +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:76 +#: flatcamTools/ToolFiducials.py:189 +msgid "Mode:" +msgstr "Modo:" + +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:78 +msgid "" +"- 'Auto' - automatic placement of fiducials in the corners of the bounding " +"box.\n" +"- 'Manual' - manual placement of fiducials." +msgstr "" +"- 'Auto' - colocação automática de fiduciais nos cantos da caixa " +"delimitadora.\n" +"- 'Manual' - colocação manual de fiduciais." + +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:86 +#: flatcamTools/ToolFiducials.py:199 +msgid "Up" +msgstr "Acima" + +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:87 +#: flatcamTools/ToolFiducials.py:200 +msgid "Down" +msgstr "Abaixo" + +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:90 +#: flatcamTools/ToolFiducials.py:203 +msgid "Second fiducial" +msgstr "Segundo fiducial" + +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:92 +#: flatcamTools/ToolFiducials.py:205 +msgid "" +"The position for the second fiducial.\n" +"- 'Up' - the order is: bottom-left, top-left, top-right.\n" +"- 'Down' - the order is: bottom-left, bottom-right, top-right.\n" +"- 'None' - there is no second fiducial. The order is: bottom-left, top-right." +msgstr "" +"Posição do segundo fiducial.\n" +"- 'Acima' - a ordem é: canto inferior esquerdo, superior esquerdo, superior " +"direito\n" +"- 'Abaixo' - a ordem é: canto inferior esquerdo, inferior direito, superior " +"direito.\n" +"- 'Nenhum' - não há um segundo fiducial. A ordem é: canto inferior esquerdo, " +"superior direito." + +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:108 +#: flatcamTools/ToolFiducials.py:221 +msgid "Cross" +msgstr "Cruz" + +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:109 +#: flatcamTools/ToolFiducials.py:222 +msgid "Chess" +msgstr "Xadrez" + +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:112 +#: flatcamTools/ToolFiducials.py:224 +msgid "Fiducial Type" +msgstr "Tipo de Fiducial" + +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:114 +#: flatcamTools/ToolFiducials.py:226 +msgid "" +"The type of fiducial.\n" +"- 'Circular' - this is the regular fiducial.\n" +"- 'Cross' - cross lines fiducial.\n" +"- 'Chess' - chess pattern fiducial." +msgstr "" +"O tipo de fiducial.\n" +"- 'Circular' - este é o fiducial regular.\n" +"- 'Cruz' - linhas cruzadas fiduciais.\n" +"- 'Xadrez' - padrão de xadrez fiducial." + +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:123 +#: flatcamTools/ToolFiducials.py:235 +msgid "Line thickness" +msgstr "Espessura da linha" + +#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:27 +msgid "Invert Gerber Tool Options" +msgstr "Opções Inverter Gerber" + +#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:33 +msgid "" +"A tool to invert Gerber geometry from positive to negative\n" +"and in revers." +msgstr "" +"Uma ferramenta para converter a geometria Gerber de positiva para negativa\n" +"e vice-versa." + +#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:47 +#: flatcamTools/ToolInvertGerber.py:90 +msgid "" +"Distance by which to avoid\n" +"the edges of the Gerber object." +msgstr "" +"Distância pela qual evitar \n" +"as bordas do objeto gerber." + +#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:58 +#: flatcamTools/ToolInvertGerber.py:101 +msgid "Lines Join Style" +msgstr "Estilo de Junção de Linhas" + +#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:60 +#: flatcamTools/ToolInvertGerber.py:103 +msgid "" +"The way that the lines in the object outline will be joined.\n" +"Can be:\n" +"- rounded -> an arc is added between two joining lines\n" +"- square -> the lines meet in 90 degrees angle\n" +"- bevel -> the lines are joined by a third line" +msgstr "" +"A maneira como as linhas no contorno do objeto serão unidas.\n" +"Pode ser:\n" +"- arredondado -> um arco é adicionado entre duas linhas de junção\n" +"- quadrado -> as linhas se encontram em um ângulo de 90 graus\n" +"- chanfro -> as linhas são unidas por uma terceira linha" + +#: flatcamGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:27 +msgid "Optimal Tool Options" +msgstr "Opções de Ferramentas Ideais" + +#: flatcamGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:33 +msgid "" +"A tool to find the minimum distance between\n" +"every two Gerber geometric elements" +msgstr "" +"Uma ferramenta para encontrar a distância mínima entre\n" +"cada dois elementos geométricos Gerber" + +#: flatcamGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:48 +#: flatcamTools/ToolOptimal.py:78 +msgid "Precision" +msgstr "Precisão" + +#: flatcamGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:50 +msgid "Number of decimals for the distances and coordinates in this tool." +msgstr "" +"Número de casas decimais para as distâncias e coordenadas nesta ferramenta." + +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:27 +msgid "Punch Gerber Options" +msgstr "Opções Gerber para Furo" + +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:108 +#: flatcamTools/ToolPunchGerber.py:141 +msgid "" +"The punch hole source can be:\n" +"- Excellon Object-> the Excellon object drills center will serve as " +"reference.\n" +"- Fixed Diameter -> will try to use the pads center as reference adding " +"fixed diameter holes.\n" +"- Fixed Annular Ring -> will try to keep a set annular ring.\n" +"- Proportional -> will make a Gerber punch hole having the diameter a " +"percentage of the pad diameter." +msgstr "" +"A fonte do furo pode ser:\n" +"- Objeto Excellon-> o centro da broca servirá como referência.\n" +"- Diâmetro fixo -> tentará usar o centro dos pads como referência, " +"adicionando furos de diâmetro fixo.\n" +"- Anel anular fixo -> tentará manter um anel anular definido.\n" +"- Proporcional -> fará um furo Gerber com o diâmetro de uma porcentagem do " +"diâmetro do pad." + +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:27 +msgid "QRCode Tool Options" +msgstr "Opções Ferramenta QRCode" + +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:33 +msgid "" +"A tool to create a QRCode that can be inserted\n" +"into a selected Gerber file, or it can be exported as a file." +msgstr "" +"Uma ferramenta para criar um QRCode que pode ser inserido\n" +"em um arquivo Gerber selecionado ou pode ser exportado como um arquivo." + +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:45 +#: flatcamTools/ToolQRCode.py:100 +msgid "Version" +msgstr "Versão" + +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:47 +#: flatcamTools/ToolQRCode.py:102 +msgid "" +"QRCode version can have values from 1 (21x21 boxes)\n" +"to 40 (177x177 boxes)." +msgstr "" +"A versão QRCode pode ter valores de 1 (caixas 21x21)\n" +"a 40 (caixas 177x177)." + +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:58 +#: flatcamTools/ToolQRCode.py:113 +msgid "Error correction" +msgstr "Correção de erros" + +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:60 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:71 +#: flatcamTools/ToolQRCode.py:115 flatcamTools/ToolQRCode.py:126 +#, python-format +msgid "" +"Parameter that controls the error correction used for the QR Code.\n" +"L = maximum 7%% errors can be corrected\n" +"M = maximum 15%% errors can be corrected\n" +"Q = maximum 25%% errors can be corrected\n" +"H = maximum 30%% errors can be corrected." +msgstr "" +"Parâmetro que controla a correção de erros usada para o QRCode.\n" +"L = máximo de 7%% dos erros pode ser corrigido\n" +"M = máximo de 15%% dos erros pode ser corrigido\n" +"Q = máximo de 25%% dos erros pode ser corrigido\n" +"H = máximo de 30%% dos erros pode ser corrigido." + +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:81 +#: flatcamTools/ToolQRCode.py:136 +msgid "Box Size" +msgstr "Tamanho da Caixa" + +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:83 +#: flatcamTools/ToolQRCode.py:138 +msgid "" +"Box size control the overall size of the QRcode\n" +"by adjusting the size of each box in the code." +msgstr "" +"O tamanho da caixa controla o tamanho geral do QRCode\n" +"ajustando o tamanho de cada caixa no código." + +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:94 +#: flatcamTools/ToolQRCode.py:149 +msgid "Border Size" +msgstr "Tamanho da Borda" + +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:96 +#: flatcamTools/ToolQRCode.py:151 +msgid "" +"Size of the QRCode border. How many boxes thick is the border.\n" +"Default value is 4. The width of the clearance around the QRCode." +msgstr "" +"Tamanho da borda do QRCode. Quantas caixas grossas tem a borda.\n" +"O valor padrão é 4. A largura da folga ao redor do QRCode." + +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:107 +#: flatcamTools/ToolQRCode.py:162 +msgid "QRCode Data" +msgstr "Dado QRCode" + +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:109 +#: flatcamTools/ToolQRCode.py:164 +msgid "QRCode Data. Alphanumeric text to be encoded in the QRCode." +msgstr "Dado QRCode. Texto alfanumérico a ser codificado no QRCode." + +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:113 +#: flatcamTools/ToolQRCode.py:168 +msgid "Add here the text to be included in the QRCode..." +msgstr "Adicione aqui o texto a ser incluído no QRCode..." + +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:119 +#: flatcamTools/ToolQRCode.py:174 +msgid "Polarity" +msgstr "Polaridade" + +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:121 +#: flatcamTools/ToolQRCode.py:176 +msgid "" +"Choose the polarity of the QRCode.\n" +"It can be drawn in a negative way (squares are clear)\n" +"or in a positive way (squares are opaque)." +msgstr "" +"Escolha a polaridade do QRCode.\n" +"Pode ser desenhado de forma negativa (os quadrados são claros)\n" +"ou de maneira positiva (os quadrados são opacos)." + +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:125 +#: flatcamTools/ToolFilm.py:296 flatcamTools/ToolQRCode.py:180 +msgid "Negative" +msgstr "Negativo" + +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:126 +#: flatcamTools/ToolFilm.py:295 flatcamTools/ToolQRCode.py:181 +msgid "Positive" +msgstr "Positivo" + +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:128 +#: flatcamTools/ToolQRCode.py:183 +msgid "" +"Choose the type of QRCode to be created.\n" +"If added on a Silkscreen Gerber file the QRCode may\n" +"be added as positive. If it is added to a Copper Gerber\n" +"file then perhaps the QRCode can be added as negative." +msgstr "" +"Escolha o tipo de QRCode a ser criado.\n" +"Se adicionado a um arquivo Silkscreen Gerber, o QRCode poderá\n" +"ser adicionado como positivo. Se for adicionado a um arquivo Gerber\n" +"de cobre, talvez o QRCode possa ser adicionado como negativo." + +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:139 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:145 +#: flatcamTools/ToolQRCode.py:194 flatcamTools/ToolQRCode.py:200 +msgid "" +"The bounding box, meaning the empty space that surrounds\n" +"the QRCode geometry, can have a rounded or a square shape." +msgstr "" +"A caixa delimitadora, significando o espaço vazio que circunda\n" +"a geometria QRCode, pode ter uma forma arredondada ou quadrada." + +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:142 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:239 +#: flatcamTools/ToolQRCode.py:197 flatcamTools/ToolTransform.py:383 +msgid "Rounded" +msgstr "Arredondado" + +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:152 +#: flatcamTools/ToolQRCode.py:228 +msgid "Fill Color" +msgstr "Cor de Preenchimento" + +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:154 +#: flatcamTools/ToolQRCode.py:230 +msgid "Set the QRCode fill color (squares color)." +msgstr "Define a cor de preenchimento do QRCode (cor dos quadrados)." + +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:173 +#: flatcamTools/ToolQRCode.py:252 +msgid "Back Color" +msgstr "Cor de Fundo" + +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:175 +#: flatcamTools/ToolQRCode.py:254 +msgid "Set the QRCode background color." +msgstr "Define a cor de fundo do QRCode." + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:27 +msgid "Check Rules Tool Options" +msgstr "Opções das Regras" + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:32 +msgid "" +"A tool to check if Gerber files are within a set\n" +"of Manufacturing Rules." +msgstr "" +"Uma ferramenta para verificar se os arquivos Gerber estão dentro de um " +"conjunto\n" +"das regras de fabricação." + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:42 +#: flatcamTools/ToolRulesCheck.py:265 flatcamTools/ToolRulesCheck.py:929 +msgid "Trace Size" +msgstr "Tamanho do Traçado" + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:44 +#: flatcamTools/ToolRulesCheck.py:267 +msgid "This checks if the minimum size for traces is met." +msgstr "Verifica se o tamanho mínimo para traçados é atendido." + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:54 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:74 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:94 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:114 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:134 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:154 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:174 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:194 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:216 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:236 +#: flatcamTools/ToolRulesCheck.py:277 flatcamTools/ToolRulesCheck.py:299 +#: flatcamTools/ToolRulesCheck.py:322 flatcamTools/ToolRulesCheck.py:345 +#: flatcamTools/ToolRulesCheck.py:368 flatcamTools/ToolRulesCheck.py:391 +#: flatcamTools/ToolRulesCheck.py:414 flatcamTools/ToolRulesCheck.py:437 +#: flatcamTools/ToolRulesCheck.py:462 flatcamTools/ToolRulesCheck.py:485 +msgid "Min value" +msgstr "Valor Min" + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:56 +#: flatcamTools/ToolRulesCheck.py:279 +msgid "Minimum acceptable trace size." +msgstr "Mínimo tamanho de traçado aceito." + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:61 +#: flatcamTools/ToolRulesCheck.py:286 flatcamTools/ToolRulesCheck.py:1157 +#: flatcamTools/ToolRulesCheck.py:1187 +msgid "Copper to Copper clearance" +msgstr "Espaço Cobre Cobre" + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:63 +#: flatcamTools/ToolRulesCheck.py:288 +msgid "" +"This checks if the minimum clearance between copper\n" +"features is met." +msgstr "" +"Verifica se o espaço mínimo entre recursos de cobre\n" +"é atendido." + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:76 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:96 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:116 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:136 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:156 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:176 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:238 +#: flatcamTools/ToolRulesCheck.py:301 flatcamTools/ToolRulesCheck.py:324 +#: flatcamTools/ToolRulesCheck.py:347 flatcamTools/ToolRulesCheck.py:370 +#: flatcamTools/ToolRulesCheck.py:393 flatcamTools/ToolRulesCheck.py:416 +#: flatcamTools/ToolRulesCheck.py:464 +msgid "Minimum acceptable clearance value." +msgstr "Espaço mínimo aceitável." + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:81 +#: flatcamTools/ToolRulesCheck.py:309 flatcamTools/ToolRulesCheck.py:1217 +#: flatcamTools/ToolRulesCheck.py:1223 flatcamTools/ToolRulesCheck.py:1236 +#: flatcamTools/ToolRulesCheck.py:1243 +msgid "Copper to Outline clearance" +msgstr "Espaço Cobre Contorno" + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:83 +#: flatcamTools/ToolRulesCheck.py:311 +msgid "" +"This checks if the minimum clearance between copper\n" +"features and the outline is met." +msgstr "" +"Verifica se o espaço mínimo entre recursos de cobre\n" +"e o contorno é atendido." + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:101 +#: flatcamTools/ToolRulesCheck.py:332 +msgid "Silk to Silk Clearance" +msgstr "Espaço Silk Silk" + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:103 +#: flatcamTools/ToolRulesCheck.py:334 +msgid "" +"This checks if the minimum clearance between silkscreen\n" +"features and silkscreen features is met." +msgstr "" +"Verifica se o espaço mínimo entre recursos de silkscreen\n" +"é atendido." + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:121 +#: flatcamTools/ToolRulesCheck.py:355 flatcamTools/ToolRulesCheck.py:1326 +#: flatcamTools/ToolRulesCheck.py:1332 flatcamTools/ToolRulesCheck.py:1350 +msgid "Silk to Solder Mask Clearance" +msgstr "Espaço Silk Máscara de Solda" + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:123 +#: flatcamTools/ToolRulesCheck.py:357 +msgid "" +"This checks if the minimum clearance between silkscreen\n" +"features and soldermask features is met." +msgstr "" +"Verifica se o espaço mínimo entre recursos de silkscreen\n" +"e máscara de solda é atendido." + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:141 +#: flatcamTools/ToolRulesCheck.py:378 flatcamTools/ToolRulesCheck.py:1380 +#: flatcamTools/ToolRulesCheck.py:1386 flatcamTools/ToolRulesCheck.py:1400 +#: flatcamTools/ToolRulesCheck.py:1407 +msgid "Silk to Outline Clearance" +msgstr "Espaço Silk Contorno" + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:143 +#: flatcamTools/ToolRulesCheck.py:380 +msgid "" +"This checks if the minimum clearance between silk\n" +"features and the outline is met." +msgstr "" +"Verifica se o espaço mínimo entre recursos de silkscreen\n" +"e o contorno é atendido." + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:161 +#: flatcamTools/ToolRulesCheck.py:401 flatcamTools/ToolRulesCheck.py:1418 +#: flatcamTools/ToolRulesCheck.py:1445 +msgid "Minimum Solder Mask Sliver" +msgstr "Máscara de Solda Mínima" + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:163 +#: flatcamTools/ToolRulesCheck.py:403 +msgid "" +"This checks if the minimum clearance between soldermask\n" +"features and soldermask features is met." +msgstr "" +"Verifica se o espaço mínimo entre recursos de máscara de solda\n" +"é atendido." + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:181 +#: flatcamTools/ToolRulesCheck.py:424 flatcamTools/ToolRulesCheck.py:1483 +#: flatcamTools/ToolRulesCheck.py:1489 flatcamTools/ToolRulesCheck.py:1505 +#: flatcamTools/ToolRulesCheck.py:1512 +msgid "Minimum Annular Ring" +msgstr "Anel Anular Mínimo" + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:183 +#: flatcamTools/ToolRulesCheck.py:426 +msgid "" +"This checks if the minimum copper ring left by drilling\n" +"a hole into a pad is met." +msgstr "" +"Verifica se o anel de cobre mínimo deixado pela perfuração\n" +"de um buraco em um pad é atendido." + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:196 +#: flatcamTools/ToolRulesCheck.py:439 +msgid "Minimum acceptable ring value." +msgstr "Valor mínimo do anel." + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:203 +#: flatcamTools/ToolRulesCheck.py:449 flatcamTools/ToolRulesCheck.py:873 +msgid "Hole to Hole Clearance" +msgstr "Espaço Entre Furos" + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:205 +#: flatcamTools/ToolRulesCheck.py:451 +msgid "" +"This checks if the minimum clearance between a drill hole\n" +"and another drill hole is met." +msgstr "" +"Verifica se o espaço mínimo entre furos\n" +"é atendido." + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:218 +#: flatcamTools/ToolRulesCheck.py:487 +msgid "Minimum acceptable drill size." +msgstr "Espaço mínimo entre furos." + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:223 +#: flatcamTools/ToolRulesCheck.py:472 flatcamTools/ToolRulesCheck.py:847 +msgid "Hole Size" +msgstr "Tamanho Furo" + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:225 +#: flatcamTools/ToolRulesCheck.py:474 +msgid "" +"This checks if the drill holes\n" +"sizes are above the threshold." +msgstr "" +"Verifica se os tamanhos dos furos\n" +"estão acima do limite." + +#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:27 +msgid "2Sided Tool Options" +msgstr "Opções de PCB 2 Faces" + +#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:33 +msgid "" +"A tool to help in creating a double sided\n" +"PCB using alignment holes." +msgstr "" +"Uma ferramenta para ajudar na criação de um\n" +"PCB de dupla face usando furos de alinhamento." + +#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:47 +msgid "Drill dia" +msgstr "Diâmetro" + +#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:49 +#: flatcamTools/ToolDblSided.py:363 flatcamTools/ToolDblSided.py:368 +msgid "Diameter of the drill for the alignment holes." +msgstr "Diâmetro da broca para os furos de alinhamento." + +#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:56 +#: flatcamTools/ToolDblSided.py:377 +msgid "Align Axis" +msgstr "Alinhar Eixo" + +#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:58 +#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:71 +#: flatcamTools/ToolDblSided.py:165 flatcamTools/ToolDblSided.py:379 +msgid "Mirror vertically (X) or horizontally (Y)." +msgstr "Espelha verticalmente (X) ou horizontalmente (Y)." + +#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:69 +msgid "Mirror Axis:" +msgstr "Espelhar Eixo:" + +#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:80 +#: flatcamTools/ToolDblSided.py:181 +msgid "Point" +msgstr "Ponto" + +#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:81 +#: flatcamTools/ToolDblSided.py:182 +msgid "Box" +msgstr "Caixa" + +#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:82 +msgid "Axis Ref" +msgstr "Eixo de Ref" + +#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:84 +msgid "" +"The axis should pass through a point or cut\n" +" a specified box (in a FlatCAM object) through \n" +"the center." +msgstr "" +"O eixo deve passar por um ponto ou cortar o centro de uma caixa especificada (em um objeto FlatCAM)." + +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:27 +msgid "Calculators Tool Options" +msgstr "Opções das Calculadoras" + +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:31 +#: flatcamTools/ToolCalculators.py:25 +msgid "V-Shape Tool Calculator" +msgstr "Calculadora Ferramenta Ponta-em-V" + +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:33 +msgid "" +"Calculate the tool diameter for a given V-shape tool,\n" +"having the tip diameter, tip angle and\n" +"depth-of-cut as parameters." +msgstr "" +"Calcula o diâmetro equvalente da ferramenta para uma determinada\n" +"ferramenta em forma de V, com o diâmetro da ponta, o ângulo da ponta e a\n" +"profundidade de corte como parâmetros." + +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:50 +#: flatcamTools/ToolCalculators.py:94 +msgid "Tip Diameter" +msgstr "Diâmetro da Ponta" + +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:52 +#: flatcamTools/ToolCalculators.py:102 +msgid "" +"This is the tool tip diameter.\n" +"It is specified by manufacturer." +msgstr "" +"Diâmetro da ponta da ferramenta.\n" +"Especificado pelo fabricante." + +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:64 +#: flatcamTools/ToolCalculators.py:105 +msgid "Tip Angle" +msgstr "Ângulo da Ponta" + +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:66 +msgid "" +"This is the angle on the tip of the tool.\n" +"It is specified by manufacturer." +msgstr "" +"Ângulo na ponta da ferramenta.\n" +"Especificado pelo fabricante." + +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:80 +msgid "" +"This is depth to cut into material.\n" +"In the CNCJob object it is the CutZ parameter." +msgstr "" +"Profundidade para cortar o material.\n" +"No objeto CNC, é o parâmetro Profundidade de Corte (z_cut)." + +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:87 +#: flatcamTools/ToolCalculators.py:27 +msgid "ElectroPlating Calculator" +msgstr "Calculadora Eletrolítica" + +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:89 +#: flatcamTools/ToolCalculators.py:158 +msgid "" +"This calculator is useful for those who plate the via/pad/drill holes,\n" +"using a method like graphite ink or calcium hypophosphite ink or palladium " +"chloride." +msgstr "" +"Esta calculadora é útil para aqueles que fazem os furos\n" +"(via/pad/furos) usando um método como tinta graphite ou tinta \n" +"hipofosfito de cálcio ou cloreto de paládio." + +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:100 +#: flatcamTools/ToolCalculators.py:167 +msgid "Board Length" +msgstr "Comprimento da Placa" + +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:102 +#: flatcamTools/ToolCalculators.py:173 +msgid "This is the board length. In centimeters." +msgstr "Comprimento da placa, em centímetros." + +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:112 +#: flatcamTools/ToolCalculators.py:175 +msgid "Board Width" +msgstr "Largura da Placa" + +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:114 +#: flatcamTools/ToolCalculators.py:181 +msgid "This is the board width.In centimeters." +msgstr "Largura da placa, em centímetros." + +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:119 +#: flatcamTools/ToolCalculators.py:183 +msgid "Current Density" +msgstr "Densidade de Corrente" + +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:125 +#: flatcamTools/ToolCalculators.py:190 +msgid "" +"Current density to pass through the board. \n" +"In Amps per Square Feet ASF." +msgstr "" +"Densidade de corrente para passar pela placa.\n" +"Em Ampères por Pés Quadrados ASF." + +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:131 +#: flatcamTools/ToolCalculators.py:193 +msgid "Copper Growth" +msgstr "Espessura do Cobre" + +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:137 +#: flatcamTools/ToolCalculators.py:200 +msgid "" +"How thick the copper growth is intended to be.\n" +"In microns." +msgstr "Espessura da camada de cobre, em microns." + +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:28 +msgid "Cutout Tool Options" +msgstr "Opções da Ferramenta de Recorte" + +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:43 +#: flatcamTools/ToolCalculators.py:123 flatcamTools/ToolCutOut.py:129 +msgid "Tool Diameter" +msgstr "Diâmetro" + +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:45 +#: flatcamTools/ToolCutOut.py:131 +msgid "" +"Diameter of the tool used to cutout\n" +"the PCB shape out of the surrounding material." +msgstr "Diâmetro da ferramenta usada para cortar o entorno do PCB." + +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:100 +msgid "Object kind" +msgstr "Tipo de objeto" + +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:102 +#: flatcamTools/ToolCutOut.py:77 +msgid "" +"Choice of what kind the object we want to cutout is.
    - Single: " +"contain a single PCB Gerber outline object.
    - Panel: a panel PCB " +"Gerber object, which is made\n" +"out of many individual PCB outlines." +msgstr "" +"Escolha o tipo do objeto a recortar.
    - Único: contém um único " +"objeto Gerber de contorno PCB.
    - Painel: um painel de objetos " +"Gerber PCB, composto por muitos contornos PCB individuais." + +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:109 +#: flatcamTools/ToolCutOut.py:83 +msgid "Single" +msgstr "Único" + +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:110 +#: flatcamTools/ToolCutOut.py:84 +msgid "Panel" +msgstr "Painel" + +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:117 +#: flatcamTools/ToolCutOut.py:192 +msgid "" +"Margin over bounds. A positive value here\n" +"will make the cutout of the PCB further from\n" +"the actual PCB border" +msgstr "" +"Margem além das bordas. Um valor positivo\n" +"tornará o recorte do PCB mais longe da borda da PCB" + +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:130 +#: flatcamTools/ToolCutOut.py:203 +msgid "Gap size" +msgstr "Tamanho da Ponte" + +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:132 +#: flatcamTools/ToolCutOut.py:205 +msgid "" +"The size of the bridge gaps in the cutout\n" +"used to keep the board connected to\n" +"the surrounding material (the one \n" +"from which the PCB is cutout)." +msgstr "" +"Tamanho das pontes no recorte, utilizadas\n" +"para manter a placa conectada ao material\n" +"circundante (de onde o PCB é recortado)." + +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:146 +#: flatcamTools/ToolCutOut.py:245 +msgid "Gaps" +msgstr "Pontes" + +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:148 +msgid "" +"Number of gaps used for the cutout.\n" +"There can be maximum 8 bridges/gaps.\n" +"The choices are:\n" +"- None - no gaps\n" +"- lr - left + right\n" +"- tb - top + bottom\n" +"- 4 - left + right +top + bottom\n" +"- 2lr - 2*left + 2*right\n" +"- 2tb - 2*top + 2*bottom\n" +"- 8 - 2*left + 2*right +2*top + 2*bottom" +msgstr "" +"Número de pontes utilizadas para o recorte.\n" +"Pode haver um máximo de 8 pontes/lacunas.\n" +"As opções são:\n" +"- Nenhum - sem pontes\n" +"- LR: esquerda + direita\n" +"- TB: topo + baixo\n" +"- 4: esquerda + direita + topo + baixo\n" +"- 2LR: 2*esquerda + 2*direita\n" +"- 2TB: 2*topo + 2*baixo\n" +"- 8: 2*esquerda + 2*direita + 2*topo + 2*baixo" + +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:170 +#: flatcamTools/ToolCutOut.py:222 +msgid "Convex Shape" +msgstr "Forma Convexa" + +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:172 +#: flatcamTools/ToolCutOut.py:225 +msgid "" +"Create a convex shape surrounding the entire PCB.\n" +"Used only if the source object type is Gerber." +msgstr "" +"Cria uma forma convexa ao redor de toda a PCB.\n" +"Utilize somente se o tipo de objeto de origem for Gerber." + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:27 +msgid "Film Tool Options" +msgstr "Opções da Ferramenta de Filme" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:33 +msgid "" +"Create a PCB film from a Gerber or Geometry\n" +"FlatCAM object.\n" +"The file is saved in SVG format." +msgstr "" +"Cria um filme de PCB a partir de um objeto Gerber\n" +"ou Geometria FlatCAM.\n" +"O arquivo é salvo no formato SVG." + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:44 +msgid "Film Type" +msgstr "Tipo de Filme" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:46 +#: flatcamTools/ToolFilm.py:300 +msgid "" +"Generate a Positive black film or a Negative film.\n" +"Positive means that it will print the features\n" +"with black on a white canvas.\n" +"Negative means that it will print the features\n" +"with white on a black canvas.\n" +"The Film format is SVG." +msgstr "" +"Gera um filme Positivo ou Negativo.\n" +"Positivo significa que os recursos são impressos\n" +"em preto em uma tela branca.\n" +"Negativo significa que os recursos são impressos\n" +"em branco em uma tela preta.\n" +"O formato do arquivo do filme é SVG ." + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:57 +msgid "Film Color" +msgstr "Cor do Filme" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:59 +msgid "Set the film color when positive film is selected." +msgstr "Define a cor do filme, se filme positivo estiver selecionado." + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:82 +#: flatcamTools/ToolFilm.py:316 +msgid "Border" +msgstr "Borda" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:84 +#: flatcamTools/ToolFilm.py:318 +msgid "" +"Specify a border around the object.\n" +"Only for negative film.\n" +"It helps if we use as a Box Object the same \n" +"object as in Film Object. It will create a thick\n" +"black bar around the actual print allowing for a\n" +"better delimitation of the outline features which are of\n" +"white color like the rest and which may confound with the\n" +"surroundings if not for this border." +msgstr "" +"Especifica uma borda ao redor do objeto.\n" +"Somente para filme negativo.\n" +"Ajuda se for usado como Objeto Caixa o mesmo\n" +"objeto do Filme. Será criada uma barra preta\n" +"ao redor da impressão, permitindo uma melhor\n" +"delimitação dos contornos dos recursos (que são\n" +"brancos como o restante e podem ser confundidos\n" +"com os limites, se não for usada essa borda)." + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:101 +#: flatcamTools/ToolFilm.py:283 +msgid "Scale Stroke" +msgstr "Espessura da Linha" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:103 +#: flatcamTools/ToolFilm.py:285 +msgid "" +"Scale the line stroke thickness of each feature in the SVG file.\n" +"It means that the line that envelope each SVG feature will be thicker or " +"thinner,\n" +"therefore the fine features may be more affected by this parameter." +msgstr "" +"Espessura da linha de cada recurso no arquivo SVG.\n" +"A linha que envolve cada recurso SVG será mais espessa ou mais fina.\n" +"Os recursos mais finos podem ser afetados por esse parâmetro." + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:110 +#: flatcamTools/ToolFilm.py:141 +msgid "Film Adjustments" +msgstr "Ajustes do Filme" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:112 +#: flatcamTools/ToolFilm.py:143 +msgid "" +"Sometime the printers will distort the print shape, especially the Laser " +"types.\n" +"This section provide the tools to compensate for the print distortions." +msgstr "" +"Algumas vezes, as impressoras distorcem o formato da impressão, " +"especialmente as laser.\n" +"Esta seção fornece as ferramentas para compensar as distorções na impressão." + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:119 +#: flatcamTools/ToolFilm.py:150 +msgid "Scale Film geometry" +msgstr "Escala da Geometria de Filme" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:121 +#: flatcamTools/ToolFilm.py:152 +msgid "" +"A value greater than 1 will stretch the film\n" +"while a value less than 1 will jolt it." +msgstr "" +"Um valor maior que 1 esticará o filme\n" +"enquanto um valor menor que 1 o reduzirá." + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:131 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:103 +#: flatcamTools/ToolFilm.py:162 flatcamTools/ToolTransform.py:148 +msgid "X factor" +msgstr "Fator X" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:140 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:116 +#: flatcamTools/ToolFilm.py:171 flatcamTools/ToolTransform.py:168 +msgid "Y factor" +msgstr "Fator Y" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:150 +#: flatcamTools/ToolFilm.py:189 +msgid "Skew Film geometry" +msgstr "Inclinar a Geometria de Filme" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:152 +#: flatcamTools/ToolFilm.py:191 +msgid "" +"Positive values will skew to the right\n" +"while negative values will skew to the left." +msgstr "" +"Valores positivos inclinam para a direita\n" +"enquanto valores negativos inclinam para a esquerda." + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:162 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:72 +#: flatcamTools/ToolFilm.py:201 flatcamTools/ToolTransform.py:97 +msgid "X angle" +msgstr "Ângulo X" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:171 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:86 +#: flatcamTools/ToolFilm.py:210 flatcamTools/ToolTransform.py:118 +msgid "Y angle" +msgstr "Ângulo Y" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:182 +#: flatcamTools/ToolFilm.py:221 +msgid "" +"The reference point to be used as origin for the skew.\n" +"It can be one of the four points of the geometry bounding box." +msgstr "" +"O ponto de referência a ser usado como origem para a inclinação.\n" +"Pode ser um dos quatro pontos da caixa delimitadora de geometria." + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:185 +#: flatcamTools/ToolFiducials.py:87 flatcamTools/ToolFilm.py:224 +msgid "Bottom Left" +msgstr "Esquerda Inferior" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:186 +#: flatcamTools/ToolFilm.py:225 +msgid "Top Left" +msgstr "Esquerda Superior" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:187 +#: flatcamTools/ToolFilm.py:226 +msgid "Bottom Right" +msgstr "Direita Inferior" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:188 +#: flatcamTools/ToolFilm.py:227 +msgid "Top right" +msgstr "Direita Superior" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:196 +#: flatcamTools/ToolFilm.py:244 +msgid "Mirror Film geometry" +msgstr "Espelhar geometria de filme" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:198 +#: flatcamTools/ToolFilm.py:246 +msgid "Mirror the film geometry on the selected axis or on both." +msgstr "Espelha a geometria do filme no eixo selecionado ou em ambos." + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:212 +#: flatcamTools/ToolFilm.py:260 +msgid "Mirror axis" +msgstr "Espelhar eixo" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:222 +#: flatcamTools/ToolFilm.py:405 +msgid "SVG" +msgstr "SVG" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:223 +#: flatcamTools/ToolFilm.py:406 +msgid "PNG" +msgstr "PNG" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:224 +#: flatcamTools/ToolFilm.py:407 +msgid "PDF" +msgstr "PDF" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:227 +#: flatcamTools/ToolFilm.py:298 flatcamTools/ToolFilm.py:410 +msgid "Film Type:" +msgstr "Tipo de Filme:" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:229 +#: flatcamTools/ToolFilm.py:412 +msgid "" +"The file type of the saved film. Can be:\n" +"- 'SVG' -> open-source vectorial format\n" +"- 'PNG' -> raster image\n" +"- 'PDF' -> portable document format" +msgstr "" +"O tipo de arquivo do filme salvo. Pode ser:\n" +"- 'SVG' -> formato vetorial de código aberto\n" +"- 'PNG' -> imagem raster\n" +"- 'PDF' -> formato de documento portátil" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:238 +#: flatcamTools/ToolFilm.py:421 +msgid "Page Orientation" +msgstr "Orientação da Página" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:251 +#: flatcamTools/ToolFilm.py:434 +msgid "Page Size" +msgstr "Tamanho da Página" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:252 +#: flatcamTools/ToolFilm.py:435 +msgid "A selection of standard ISO 216 page sizes." +msgstr "Uma seleção de tamanhos de página padrão ISO 216." + +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:27 +msgid "NCC Tool Options" +msgstr "Opções Área Sem Cobre (NCC)" + +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:49 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:57 +msgid "Comma separated values" +msgstr "Valores Separados Por Virgula" + +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:55 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:63 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:64 +#: flatcamTools/ToolNCC.py:215 flatcamTools/ToolNCC.py:223 +#: flatcamTools/ToolPaint.py:198 flatcamTools/ToolPaint.py:206 +msgid "" +"Default tool type:\n" +"- 'V-shape'\n" +"- Circular" +msgstr "" +"Tipo padrão das ferramentas:\n" +"- 'Ponta-V'\n" +"- Circular" + +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:60 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:69 +#: flatcamTools/ToolNCC.py:220 flatcamTools/ToolPaint.py:203 +msgid "V-shape" +msgstr "Ponta-V" + +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:100 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:109 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:107 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:116 +#: flatcamTools/ToolNCC.py:262 flatcamTools/ToolNCC.py:271 +#: flatcamTools/ToolPaint.py:245 flatcamTools/ToolPaint.py:254 +msgid "" +"Depth of cut into material. Negative value.\n" +"In FlatCAM units." +msgstr "" +"Profundidade de corte no material. Valor negativo.\n" +"Em unidades FlatCAM." + +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:119 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:125 +#: flatcamTools/ToolNCC.py:280 flatcamTools/ToolPaint.py:263 +msgid "" +"Diameter for the new tool to add in the Tool Table.\n" +"If the tool is V-shape type then this value is automatically\n" +"calculated from the other parameters." +msgstr "" +"Diâmetro da nova ferramenta a ser adicionada na Tabela de Ferramentas.\n" +"Se a ferramenta for do tipo V, esse valor será automaticamente\n" +"calculado a partir dos outros parâmetros." + +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:156 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:142 +#: flatcamTools/ToolNCC.py:174 flatcamTools/ToolPaint.py:158 +msgid "Tool order" +msgstr "Ordem das Ferramentas" + +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:157 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:167 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:143 +#: flatcamTools/ToolNCC.py:175 flatcamTools/ToolNCC.py:185 +#: flatcamTools/ToolPaint.py:159 flatcamTools/ToolPaint.py:169 +msgid "" +"This set the way that the tools in the tools table are used.\n" +"'No' --> means that the used order is the one in the tool table\n" +"'Forward' --> means that the tools will be ordered from small to big\n" +"'Reverse' --> means that the tools will ordered from big to small\n" +"\n" +"WARNING: using rest machining will automatically set the order\n" +"in reverse and disable this control." +msgstr "" +"Define a ordem em que as ferramentas da Tabela de Ferramentas são usadas.\n" +"'Não' -> utiliza a ordem da tabela de ferramentas\n" +"'Crescente' -> as ferramentas são ordenadas de menor para maior\n" +"'Decrescente' -> as ferramentas são ordenadas de maior para menor\n" +"\n" +"ATENÇÃO: se for utilizada usinagem de descanso, será utilizada " +"automaticamente a ordem\n" +"decrescente e este controle é desativado." + +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:165 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:151 +#: flatcamTools/ToolNCC.py:183 flatcamTools/ToolPaint.py:167 +msgid "Forward" +msgstr "Crescente" + +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:166 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:152 +#: flatcamTools/ToolNCC.py:184 flatcamTools/ToolPaint.py:168 +msgid "Reverse" +msgstr "Decrescente" + +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:266 +msgid "Offset value" +msgstr "Valor do deslocamento" + +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:268 +msgid "" +"If used, it will add an offset to the copper features.\n" +"The copper clearing will finish to a distance\n" +"from the copper features.\n" +"The value can be between 0.0 and 9999.9 FlatCAM units." +msgstr "" +"Se usado, será adicionado um deslocamento aos recursos de cobre.\n" +"A retirada de cobre terminará a uma distância dos recursos de cobre.\n" +"O valor pode estar entre 0 e 9999.9 unidades FlatCAM." + +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:288 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:244 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:245 +#: flatcamTools/ToolNCC.py:512 flatcamTools/ToolPaint.py:442 +msgid "Rest Machining" +msgstr "Usinagem em Repouso" + +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:290 +#: flatcamTools/ToolNCC.py:516 +msgid "" +"If checked, use 'rest machining'.\n" +"Basically it will clear copper outside PCB features,\n" +"using the biggest tool and continue with the next tools,\n" +"from bigger to smaller, to clear areas of copper that\n" +"could not be cleared by previous tool, until there is\n" +"no more copper to clear or there are no more tools.\n" +"If not checked, use the standard algorithm." +msgstr "" +"Se marcada, usa 'usinagem de descanso'.\n" +"Basicamente, limpará o cobre fora dos recursos do PCB, utilizando\n" +"a maior ferramenta e continuará com as próximas ferramentas, da\n" +"maior para a menor, para limpar áreas de cobre que não puderam ser\n" +"retiradas com a ferramenta anterior.\n" +"Se não estiver marcada, usa o algoritmo padrão." + +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:313 +#: flatcamTools/ToolNCC.py:541 +msgid "" +"Selection of area to be processed.\n" +"- 'Itself' - the processing extent is based on the object that is " +"processed.\n" +" - 'Area Selection' - left mouse click to start selection of the area to be " +"processed.\n" +"- 'Reference Object' - will process the area specified by another object." +msgstr "" +"Seleção da área a ser processada.\n" +"- 'Própria' - a extensão de processamento é baseada no próprio objeto a ser " +"limpo.\n" +"- 'Seleção de Área' - clique com o botão esquerdo do mouse para iniciar a " +"seleção da área a ser processada.\n" +"- 'Objeto de Referência' - processará a área especificada por outro objeto." + +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:339 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:303 +msgid "Normal" +msgstr "Normal" + +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:340 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:304 +msgid "Progressive" +msgstr "Progressivo" + +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:341 +msgid "NCC Plotting" +msgstr "Gráfico NCC" + +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:343 +msgid "" +"- 'Normal' - normal plotting, done at the end of the NCC job\n" +"- 'Progressive' - after each shape is generated it will be plotted." +msgstr "" +"- 'Normal' - plotagem normal, realizada no final do trabalho de NCC\n" +"- 'Progressivo' - após cada forma ser gerada, ela será plotada." + +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:27 +msgid "Paint Tool Options" +msgstr "Opções da Ferramenta de Pintura" + +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:33 +msgid "Parameters:" +msgstr "Parâmetros:" + +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:247 +#: flatcamTools/ToolPaint.py:445 +msgid "" +"If checked, use 'rest machining'.\n" +"Basically it will clear copper outside PCB features,\n" +"using the biggest tool and continue with the next tools,\n" +"from bigger to smaller, to clear areas of copper that\n" +"could not be cleared by previous tool, until there is\n" +"no more copper to clear or there are no more tools.\n" +"\n" +"If not checked, use the standard algorithm." +msgstr "" +"Se marcada, usa 'usinagem de descanso'.\n" +"Basicamente, limpará o cobre fora dos recursos do PCB, utilizando\n" +"a maior ferramenta e continuará com as próximas ferramentas, da\n" +"maior para a menor, para limpar áreas de cobre que não puderam ser\n" +"retiradas com a ferramenta anterior.\n" +"Se não estiver marcada, usa o algoritmo padrão." + +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:260 +#: flatcamTools/ToolPaint.py:458 +msgid "" +"Selection of area to be processed.\n" +"- 'Polygon Selection' - left mouse click to add/remove polygons to be " +"processed.\n" +"- 'Area Selection' - left mouse click to start selection of the area to be " +"processed.\n" +"Keeping a modifier key pressed (CTRL or SHIFT) will allow to add multiple " +"areas.\n" +"- 'All Polygons' - the process will start after click.\n" +"- 'Reference Object' - will process the area specified by another object." +msgstr "" +"Seleção da área para processar.\n" +"- 'Seleção de polígonos' - clique com o botão esquerdo do mouse para " +"adicionar/remover polígonos a serem processados.\n" +"- 'Seleção de Área' - clique com o botão esquerdo do mouse para iniciar a " +"seleção da área a ser processada.\n" +"Manter uma tecla modificadora pressionada (CTRL ou SHIFT) permite adicionar " +"várias áreas.\n" +"- 'Todos os polígonos' - o processamento iniciará após o clique.\n" +"- 'Objeto de Referência' - processará dentro da área do objeto especificado." + +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280 +#: flatcamTools/ToolPaint.py:486 flatcamTools/ToolPaint.py:942 +#: flatcamTools/ToolPaint.py:1432 tclCommands/TclCommandPaint.py:164 +msgid "Polygon Selection" +msgstr "Seleção de Polígonos" + +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:305 +msgid "Paint Plotting" +msgstr "Mostrar Pinturas" + +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:307 +msgid "" +"- 'Normal' - normal plotting, done at the end of the Paint job\n" +"- 'Progressive' - after each shape is generated it will be plotted." +msgstr "" +"- 'Normal' - plotagem normal, realizada no final do trabalho de pintura\n" +"- 'Progressivo' - após cada forma ser gerada, ela será plotada." + +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:27 +msgid "Panelize Tool Options" +msgstr "Opções da Ferramenta Criar Painel" + +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:33 +msgid "" +"Create an object that contains an array of (x, y) elements,\n" +"each element is a copy of the source object spaced\n" +"at a X distance, Y distance of each other." +msgstr "" +"Cria um objeto que contém uma matriz de elementos (x, y).\n" +"Cada elemento é uma cópia do objeto de origem espaçado\n" +"dos demais por uma distância X, Y." + +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:50 +#: flatcamTools/ToolPanelize.py:163 +msgid "Spacing cols" +msgstr "Espaço entre Colunas" + +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:52 +#: flatcamTools/ToolPanelize.py:165 +msgid "" +"Spacing between columns of the desired panel.\n" +"In current units." +msgstr "" +"Espaçamento desejado entre colunas do painel.\n" +"Nas unidades atuais." + +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:64 +#: flatcamTools/ToolPanelize.py:175 +msgid "Spacing rows" +msgstr "Espaço entre Linhas" + +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:66 +#: flatcamTools/ToolPanelize.py:177 +msgid "" +"Spacing between rows of the desired panel.\n" +"In current units." +msgstr "" +"Espaçamento desejado entre linhas do painel.\n" +"Nas unidades atuais." + +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:77 +#: flatcamTools/ToolPanelize.py:186 +msgid "Columns" +msgstr "Colunas" + +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:79 +#: flatcamTools/ToolPanelize.py:188 +msgid "Number of columns of the desired panel" +msgstr "Número de colunas do painel desejado" + +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:89 +#: flatcamTools/ToolPanelize.py:196 +msgid "Rows" +msgstr "Linhas" + +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:91 +#: flatcamTools/ToolPanelize.py:198 +msgid "Number of rows of the desired panel" +msgstr "Número de linhas do painel desejado" + +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:98 +#: flatcamTools/ToolPanelize.py:205 +msgid "Geo" +msgstr "Geo" + +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:99 +#: flatcamTools/ToolPanelize.py:206 +msgid "Panel Type" +msgstr "Tipo de Painel" + +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:101 +msgid "" +"Choose the type of object for the panel object:\n" +"- Gerber\n" +"- Geometry" +msgstr "" +"Escolha o tipo de objeto para o painel:\n" +"- Gerber\n" +"- Geometria" + +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:110 +msgid "Constrain within" +msgstr "Restringir dentro de" + +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:112 +#: flatcamTools/ToolPanelize.py:218 +msgid "" +"Area define by DX and DY within to constrain the panel.\n" +"DX and DY values are in current units.\n" +"Regardless of how many columns and rows are desired,\n" +"the final panel will have as many columns and rows as\n" +"they fit completely within selected area." +msgstr "" +"Área definida por DX e DY para restringir o painel.\n" +"Os valores DX e DY estão nas unidades atuais.\n" +"Desde quantas colunas e linhas forem desejadas,\n" +"o painel final terá tantas colunas e linhas quantas\n" +"couberem completamente dentro de área selecionada." + +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:125 +#: flatcamTools/ToolPanelize.py:230 +msgid "Width (DX)" +msgstr "Largura (DX)" + +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:127 +#: flatcamTools/ToolPanelize.py:232 +msgid "" +"The width (DX) within which the panel must fit.\n" +"In current units." +msgstr "" +"A largura (DX) na qual o painel deve caber.\n" +"Nas unidades atuais." + +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:138 +#: flatcamTools/ToolPanelize.py:241 +msgid "Height (DY)" +msgstr "Altura (DY)" + +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:140 +#: flatcamTools/ToolPanelize.py:243 +msgid "" +"The height (DY)within which the panel must fit.\n" +"In current units." +msgstr "" +"A altura (DY) na qual o painel deve se ajustar.\n" +"Nas unidades atuais." + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:27 +msgid "SolderPaste Tool Options" +msgstr "Opções da Ferramenta Pasta de Solda" + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:33 +msgid "" +"A tool to create GCode for dispensing\n" +"solder paste onto a PCB." +msgstr "" +"Uma ferramenta para criar G-Code para dispensar pasta\n" +"de solda em um PCB." + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:54 +msgid "New Nozzle Dia" +msgstr "Diâmetro do Novo Bico" + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:56 +#: flatcamTools/ToolSolderPaste.py:107 +msgid "Diameter for the new Nozzle tool to add in the Tool Table" +msgstr "" +"Diâmetro da nova ferramenta Bico para adicionar na tabela de ferramentas" + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:72 +#: flatcamTools/ToolSolderPaste.py:183 +msgid "Z Dispense Start" +msgstr "Altura Inicial" + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:74 +#: flatcamTools/ToolSolderPaste.py:185 +msgid "The height (Z) when solder paste dispensing starts." +msgstr "A altura (Z) que inicia a distribuição de pasta de solda." + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:85 +#: flatcamTools/ToolSolderPaste.py:195 +msgid "Z Dispense" +msgstr "Altura para Distribuir" + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:87 +#: flatcamTools/ToolSolderPaste.py:197 +msgid "The height (Z) when doing solder paste dispensing." +msgstr "Altura (Z) para distribuir a pasta de solda." + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:98 +#: flatcamTools/ToolSolderPaste.py:207 +msgid "Z Dispense Stop" +msgstr "Altura Final" + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:100 +#: flatcamTools/ToolSolderPaste.py:209 +msgid "The height (Z) when solder paste dispensing stops." +msgstr "Altura (Z) após a distribuição de pasta de solda." + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:111 +#: flatcamTools/ToolSolderPaste.py:219 +msgid "Z Travel" +msgstr "Altura para Deslocamento" + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:113 +#: flatcamTools/ToolSolderPaste.py:221 +msgid "" +"The height (Z) for travel between pads\n" +"(without dispensing solder paste)." +msgstr "" +"Altura (Z) para deslocamento entre pads\n" +"(sem dispensar pasta de solda)." + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:125 +#: flatcamTools/ToolSolderPaste.py:232 +msgid "Z Toolchange" +msgstr "Altura Troca de Ferram." + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:127 +#: flatcamTools/ToolSolderPaste.py:234 +msgid "The height (Z) for tool (nozzle) change." +msgstr "Altura (Z) para trocar ferramenta (bico)." + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:136 +#: flatcamTools/ToolSolderPaste.py:242 +msgid "" +"The X,Y location for tool (nozzle) change.\n" +"The format is (x, y) where x and y are real numbers." +msgstr "" +"Posição X,Y para trocar ferramenta (bico).\n" +"O formato é (x, y) onde x e y são números reais." + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:150 +#: flatcamTools/ToolSolderPaste.py:255 +msgid "Feedrate (speed) while moving on the X-Y plane." +msgstr "Avanço (velocidade) para movimento no plano XY." + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:163 +#: flatcamTools/ToolSolderPaste.py:267 +msgid "" +"Feedrate (speed) while moving vertically\n" +"(on Z plane)." +msgstr "" +"Avanço (velocidade) para movimento vertical\n" +"(no plano Z)." + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:175 +#: flatcamTools/ToolSolderPaste.py:278 +msgid "Feedrate Z Dispense" +msgstr "Avanço Z Distribuição" + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:177 +msgid "" +"Feedrate (speed) while moving up vertically\n" +"to Dispense position (on Z plane)." +msgstr "" +"Avanço (velocidade) para subir verticalmente\n" +"para a posição Dispensar (no plano Z)." + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:188 +#: flatcamTools/ToolSolderPaste.py:290 +msgid "Spindle Speed FWD" +msgstr "Velocidade Spindle FWD" + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:190 +#: flatcamTools/ToolSolderPaste.py:292 +msgid "" +"The dispenser speed while pushing solder paste\n" +"through the dispenser nozzle." +msgstr "" +"A velocidade do dispensador ao empurrar a pasta de solda\n" +"através do bico do distribuidor." + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:202 +#: flatcamTools/ToolSolderPaste.py:303 +msgid "Dwell FWD" +msgstr "Espera FWD" + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:204 +#: flatcamTools/ToolSolderPaste.py:305 +msgid "Pause after solder dispensing." +msgstr "Pausa após a dispensação de solda." + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:214 +#: flatcamTools/ToolSolderPaste.py:314 +msgid "Spindle Speed REV" +msgstr "Velocidade Spindle REV" + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:216 +#: flatcamTools/ToolSolderPaste.py:316 +msgid "" +"The dispenser speed while retracting solder paste\n" +"through the dispenser nozzle." +msgstr "" +"A velocidade do dispensador enquanto retrai a pasta de solda\n" +"através do bico do dispensador." + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:228 +#: flatcamTools/ToolSolderPaste.py:327 +msgid "Dwell REV" +msgstr "Espera REV" + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:230 +#: flatcamTools/ToolSolderPaste.py:329 +msgid "" +"Pause after solder paste dispenser retracted,\n" +"to allow pressure equilibrium." +msgstr "" +"Pausa após o dispensador de pasta de solda retrair, para permitir o " +"equilíbrio de pressão." + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:239 +#: flatcamTools/ToolSolderPaste.py:337 +msgid "Files that control the GCode generation." +msgstr "Arquivos que controlam a geração de G-Code." + +#: flatcamGUI/preferences/tools/ToolsSubPrefGroupUI.py:27 +msgid "Substractor Tool Options" +msgstr "Opções da ferramenta Substração" + +#: flatcamGUI/preferences/tools/ToolsSubPrefGroupUI.py:33 +msgid "" +"A tool to substract one Gerber or Geometry object\n" +"from another of the same type." +msgstr "" +"Uma ferramenta para subtrair um objeto Gerber ou Geometry\n" +"de outro do mesmo tipo." + +#: flatcamGUI/preferences/tools/ToolsSubPrefGroupUI.py:38 +#: flatcamTools/ToolSub.py:155 +msgid "Close paths" +msgstr "Fechar caminhos" + +#: flatcamGUI/preferences/tools/ToolsSubPrefGroupUI.py:39 +msgid "" +"Checking this will close the paths cut by the Geometry substractor object." +msgstr "" +"Marcar isso fechará os caminhos cortados pelo objeto substrair Geometria." + +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:27 +msgid "Transform Tool Options" +msgstr "Opções Transformações" + +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:33 +msgid "" +"Various transformations that can be applied\n" +"on a FlatCAM object." +msgstr "" +"Várias transformações que podem ser aplicadas\n" +"a um objeto FlatCAM." + +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:64 +msgid "Skew" +msgstr "Inclinar" + +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:105 +#: flatcamTools/ToolTransform.py:150 +msgid "Factor for scaling on X axis." +msgstr "Fator para redimensionamento no eixo X." + +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:118 +#: flatcamTools/ToolTransform.py:170 +msgid "Factor for scaling on Y axis." +msgstr "Fator para redimensionamento no eixo Y." + +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:126 +#: flatcamTools/ToolTransform.py:191 +msgid "" +"Scale the selected object(s)\n" +"using the Scale_X factor for both axis." +msgstr "" +"Redimensiona o(s) objeto(s) selecionado(s)\n" +"usando o Fator de Escala X para ambos os eixos." + +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:134 +#: flatcamTools/ToolTransform.py:198 +msgid "" +"Scale the selected object(s)\n" +"using the origin reference when checked,\n" +"and the center of the biggest bounding box\n" +"of the selected objects when unchecked." +msgstr "" +"Redimensiona o(s) objeto(s) selecionado(s) usando a referência\n" +"de origem quando marcado, e o centro da maior caixa delimitadora\n" +"do objeto selecionado quando desmarcado." + +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:150 +#: flatcamTools/ToolTransform.py:217 +msgid "X val" +msgstr "X" + +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:152 +#: flatcamTools/ToolTransform.py:219 +msgid "Distance to offset on X axis. In current units." +msgstr "Distância para deslocar no eixo X, nas unidades atuais." + +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:163 +#: flatcamTools/ToolTransform.py:237 +msgid "Y val" +msgstr "Y" + +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:165 +#: flatcamTools/ToolTransform.py:239 +msgid "Distance to offset on Y axis. In current units." +msgstr "Distância para deslocar no eixo Y, nas unidades atuais." + +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:171 +#: flatcamTools/ToolDblSided.py:67 flatcamTools/ToolDblSided.py:95 +#: flatcamTools/ToolDblSided.py:125 +msgid "Mirror" +msgstr "Espelhar" + +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:175 +#: flatcamTools/ToolTransform.py:283 +msgid "Mirror Reference" +msgstr "Referência do Espelhamento" + +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:177 +#: flatcamTools/ToolTransform.py:285 +msgid "" +"Flip the selected object(s)\n" +"around the point in Point Entry Field.\n" +"\n" +"The point coordinates can be captured by\n" +"left click on canvas together with pressing\n" +"SHIFT key. \n" +"Then click Add button to insert coordinates.\n" +"Or enter the coords in format (x, y) in the\n" +"Point Entry field and click Flip on X(Y)" +msgstr "" +"Espelha o(s) objeto(s) selecionado(s)\n" +"em relação às coordenadas abaixo. \n" +"\n" +"As coordenadas do ponto podem ser inseridas:\n" +"- com clique no botão esquerdo junto com a tecla\n" +" SHIFT pressionada, e clicar no botão Adicionar.\n" +"- ou digitar as coordenadas no formato (x, y) no campo\n" +" Ponto de Ref. e clicar em Espelhar no X(Y)" + +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:188 +msgid "Mirror Reference point" +msgstr "Referência do Espelhamento" + +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:190 +msgid "" +"Coordinates in format (x, y) used as reference for mirroring.\n" +"The 'x' in (x, y) will be used when using Flip on X and\n" +"the 'y' in (x, y) will be used when using Flip on Y and" +msgstr "" +"Coordenadas no formato (x, y) usadas como referência para espelhamento.\n" +"O 'x' em (x, y) será usado ao usar Espelhar em X e\n" +"o 'y' em (x, y) será usado ao usar Espelhar em Y e" + +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:203 +#: flatcamTools/ToolDistance.py:496 flatcamTools/ToolDistanceMin.py:287 +#: flatcamTools/ToolTransform.py:332 +msgid "Distance" +msgstr "Distância" + +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:205 +#: flatcamTools/ToolTransform.py:334 +msgid "" +"A positive value will create the effect of dilation,\n" +"while a negative value will create the effect of erosion.\n" +"Each geometry element of the object will be increased\n" +"or decreased with the 'distance'." +msgstr "" +"Um valor positivo criará o efeito de dilatação,\n" +"enquanto um valor negativo criará o efeito de erosão.\n" +"Cada elemento geométrico do objeto será aumentado\n" +"ou diminuiu com a 'distância'." + +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:222 +#: flatcamTools/ToolTransform.py:359 +msgid "" +"A positive value will create the effect of dilation,\n" +"while a negative value will create the effect of erosion.\n" +"Each geometry element of the object will be increased\n" +"or decreased to fit the 'Value'. Value is a percentage\n" +"of the initial dimension." +msgstr "" +"Um valor positivo criará o efeito de dilatação,\n" +"enquanto um valor negativo criará o efeito de erosão.\n" +"Cada elemento geométrico do objeto será aumentado\n" +"ou diminuído com a 'distância'. Esse valor é um\n" +"percentual da dimensão inicial." + +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:241 +#: flatcamTools/ToolTransform.py:385 +msgid "" +"If checked then the buffer will surround the buffered shape,\n" +"every corner will be rounded.\n" +"If not checked then the buffer will follow the exact geometry\n" +"of the buffered shape." +msgstr "" +"Se marcado, o buffer cercará a forma do buffer,\n" +"cada canto será arredondado.\n" +"Se não marcado, o buffer seguirá a geometria exata\n" +"da forma em buffer." + +#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:27 +msgid "Autocompleter Keywords" +msgstr "Palavras-chave do preenchimento automático" + +#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:30 +#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:40 +#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:30 +#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:30 +msgid "Restore" +msgstr "Restaurar" + +#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:31 +msgid "Restore the autocompleter keywords list to the default state." +msgstr "" +"Restaurar a lista de palavras-chave do preenchimento automático para o " +"estado padrão." + +#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:32 +#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:42 +#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:32 +#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:32 +msgid "Delete All" +msgstr "Excluir Tudo" + +#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:33 +msgid "Delete all autocompleter keywords from the list." +msgstr "Excluir todas as palavras-chave do preenchimento automático da lista." + +#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:41 +msgid "Keywords list" +msgstr "Lista de palavras-chave" + +#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:43 +msgid "" +"List of keywords used by\n" +"the autocompleter in FlatCAM.\n" +"The autocompleter is installed\n" +"in the Code Editor and for the Tcl Shell." +msgstr "" +"Lista de palavras-chave usadas no\n" +"preenchimento automático no FlatCAM.\n" +"O preenchimento automático está instalado\n" +"no Editor de Código e na Linha de Comandos Tcl." + +#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:64 +#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:73 +#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:63 +#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:62 +msgid "Extension" +msgstr "Extensão" + +#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:65 +msgid "A keyword to be added or deleted to the list." +msgstr "Uma palavra-chave a ser adicionada ou excluída da lista." + +#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:73 +msgid "Add keyword" +msgstr "Adicionar palavra-chave" + +#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:74 +msgid "Add a keyword to the list" +msgstr "Adiciona uma palavra-chave à lista" + +#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:75 +msgid "Delete keyword" +msgstr "Excluir palavra-chave" + +#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:76 +msgid "Delete a keyword from the list" +msgstr "Exclui uma palavra-chave da lista" + +#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:27 +msgid "Excellon File associations" +msgstr "Associação de Arquivos Excellon" + +#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:41 +#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:31 +#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:31 +msgid "Restore the extension list to the default state." +msgstr "Restaure a lista de extensões para o estado padrão." + +#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:43 +#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:33 +#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:33 +msgid "Delete all extensions from the list." +msgstr "Excluir todas as extensões da lista." + +#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:51 +#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:41 +#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:41 +msgid "Extensions list" +msgstr "Lista de extensões" + +#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:53 +#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:43 +#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:43 +msgid "" +"List of file extensions to be\n" +"associated with FlatCAM." +msgstr "Lista de extensões de arquivos que serão associadas ao FlatCAM." + +#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:74 +#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:64 +#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:63 +msgid "A file extension to be added or deleted to the list." +msgstr "Uma extensão de arquivo a ser adicionada ou excluída da lista." + +#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:82 +#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:72 +#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:71 +msgid "Add Extension" +msgstr "Adicionar Extensão" + +#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:83 +#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:73 +#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:72 +msgid "Add a file extension to the list" +msgstr "Adiciona uma nova extensão à lista" + +#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:84 +#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:74 +#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:73 +msgid "Delete Extension" +msgstr "Excluir Extensão" + +#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:85 +#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:75 +#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:74 +msgid "Delete a file extension from the list" +msgstr "Exclui uma extensão da lista" + +#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:92 +#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:82 +#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:81 +msgid "Apply Association" +msgstr "Aplicar Associação" + +#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:93 +#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:83 +#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:82 +msgid "" +"Apply the file associations between\n" +"FlatCAM and the files with above extensions.\n" +"They will be active after next logon.\n" +"This work only in Windows." +msgstr "" +"Aplica as associações de arquivos entre o\n" +"FlatCAM e os arquivos com as extensões acima.\n" +"Elas serão ativas após o próximo logon.\n" +"Isso funciona apenas no Windows." + +#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:27 +msgid "GCode File associations" +msgstr "Associação de arquivos G-Code" + +#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:27 +msgid "Gerber File associations" +msgstr "Associação de arquivos Gerber" + +#: flatcamObjects/FlatCAMCNCJob.py:429 flatcamObjects/FlatCAMDocument.py:71 +#: flatcamObjects/FlatCAMScript.py:82 +msgid "Basic" +msgstr "Básico" + +#: flatcamObjects/FlatCAMCNCJob.py:435 flatcamObjects/FlatCAMDocument.py:75 +#: flatcamObjects/FlatCAMScript.py:86 +msgid "Advanced" +msgstr "Avançado" + +#: flatcamObjects/FlatCAMCNCJob.py:478 +msgid "Plotting..." +msgstr "Plotando..." + +#: flatcamObjects/FlatCAMCNCJob.py:507 flatcamObjects/FlatCAMCNCJob.py:512 +#: flatcamTools/ToolSolderPaste.py:1499 +msgid "Export Machine Code ..." +msgstr "Exportar Código da Máquina ..." + +#: flatcamObjects/FlatCAMCNCJob.py:517 flatcamTools/ToolSolderPaste.py:1503 +msgid "Export Machine Code cancelled ..." +msgstr "Exportar código da máquina cancelado ..." + +#: flatcamObjects/FlatCAMCNCJob.py:538 +msgid "Machine Code file saved to" +msgstr "Arquivo G-Code salvo em" + +#: flatcamObjects/FlatCAMCNCJob.py:599 flatcamTools/ToolCalibration.py:1097 +msgid "Loaded Machine Code into Code Editor" +msgstr "G-Code aberto no Editor de Códigos" + +#: flatcamObjects/FlatCAMCNCJob.py:740 +msgid "This CNCJob object can't be processed because it is a" +msgstr "Este objeto Trabalho CNC não pode ser processado porque é um" + +#: flatcamObjects/FlatCAMCNCJob.py:742 +msgid "CNCJob object" +msgstr "Objeto de Trabalho CNC" + +#: flatcamObjects/FlatCAMCNCJob.py:922 +msgid "" +"G-code does not have a G94 code and we will not include the code in the " +"'Prepend to GCode' text box" +msgstr "" +"O G-Code não possui um código G94 e não será incluído na caixa de texto " +"'Anexar ao G-Code'" + +#: flatcamObjects/FlatCAMCNCJob.py:933 +msgid "Cancelled. The Toolchange Custom code is enabled but it's empty." +msgstr "" +"Cancelado. O código personalizado para Troca de Ferramentas está ativado, " +"mas está vazio." + +#: flatcamObjects/FlatCAMCNCJob.py:938 +msgid "Toolchange G-code was replaced by a custom code." +msgstr "" +"O G-Code para Troca de Ferramentas foi substituído por um código " +"personalizado." + +#: flatcamObjects/FlatCAMCNCJob.py:986 flatcamObjects/FlatCAMCNCJob.py:996 +msgid "" +"The used preprocessor file has to have in it's name: 'toolchange_custom'" +msgstr "" +"O arquivo de pós-processamento deve ter em seu nome: 'toolchange_custom'" + +#: flatcamObjects/FlatCAMCNCJob.py:999 +msgid "There is no preprocessor file." +msgstr "Não há arquivo de pós-processamento." + +#: flatcamObjects/FlatCAMDocument.py:175 +msgid "Document Editor" +msgstr "Editor de Documento" + +#: flatcamObjects/FlatCAMExcellon.py:514 flatcamObjects/FlatCAMExcellon.py:746 +#: flatcamObjects/FlatCAMGeometry.py:323 flatcamObjects/FlatCAMGeometry.py:795 +#: flatcamTools/ToolNCC.py:811 flatcamTools/ToolNCC.py:1196 +#: flatcamTools/ToolPaint.py:779 flatcamTools/ToolPaint.py:1171 +msgid "Multiple Tools" +msgstr "Ferramentas Múltiplas" + +#: flatcamObjects/FlatCAMExcellon.py:726 +msgid "No Tool Selected" +msgstr "Nenhuma Ferramenta Selecionada" + +#: flatcamObjects/FlatCAMExcellon.py:1076 +#: flatcamObjects/FlatCAMExcellon.py:1168 +#: flatcamObjects/FlatCAMExcellon.py:1355 +msgid "Please select one or more tools from the list and try again." +msgstr "Selecione uma ou mais ferramentas da lista e tente novamente." + +#: flatcamObjects/FlatCAMExcellon.py:1083 +msgid "Milling tool for DRILLS is larger than hole size. Cancelled." +msgstr "A ferramenta BROCA é maior que o tamanho do furo. Cancelado." + +#: flatcamObjects/FlatCAMExcellon.py:1098 +#: flatcamObjects/FlatCAMExcellon.py:1188 +#: flatcamObjects/FlatCAMExcellon.py:1373 +#: tclCommands/TclCommandDrillcncjob.py:193 +msgid "Tool_nr" +msgstr "Ferramenta_nr" + +#: flatcamObjects/FlatCAMExcellon.py:1098 +#: flatcamObjects/FlatCAMExcellon.py:1188 +#: flatcamObjects/FlatCAMExcellon.py:1373 +#: tclCommands/TclCommandDrillcncjob.py:193 +msgid "Drills_Nr" +msgstr "Furo_Nr" + +#: flatcamObjects/FlatCAMExcellon.py:1098 +#: flatcamObjects/FlatCAMExcellon.py:1188 +#: flatcamObjects/FlatCAMExcellon.py:1373 +#: tclCommands/TclCommandDrillcncjob.py:193 +msgid "Slots_Nr" +msgstr "Ranhura_Nr" + +#: flatcamObjects/FlatCAMExcellon.py:1177 +msgid "Milling tool for SLOTS is larger than hole size. Cancelled." +msgstr "" +"A ferramenta fresa para RANHURAS é maior que o tamanho do furo. Cancelado." + +#: flatcamObjects/FlatCAMExcellon.py:1281 +#: flatcamObjects/FlatCAMGeometry.py:1571 +msgid "Focus Z" +msgstr "Foco Z" + +#: flatcamObjects/FlatCAMExcellon.py:1300 +#: flatcamObjects/FlatCAMGeometry.py:1590 +msgid "Laser Power" +msgstr "Potência Laser" + +#: flatcamObjects/FlatCAMExcellon.py:1430 +#: flatcamObjects/FlatCAMGeometry.py:2027 +#: flatcamObjects/FlatCAMGeometry.py:2031 +#: flatcamObjects/FlatCAMGeometry.py:2176 +msgid "Generating CNC Code" +msgstr "Gerando Código CNC" + +#: flatcamObjects/FlatCAMExcellon.py:1620 flatcamTools/ToolNCC.py:918 +#: flatcamTools/ToolPaint.py:844 +msgid "Current Tool parameters were applied to all tools." +msgstr "Parâmetros aplicados a todas as ferramentas." + +#: flatcamObjects/FlatCAMGeometry.py:124 flatcamObjects/FlatCAMGeometry.py:1235 +#: flatcamObjects/FlatCAMGeometry.py:1236 +#: flatcamObjects/FlatCAMGeometry.py:1245 +msgid "Iso" +msgstr "Isolação" + +#: flatcamObjects/FlatCAMGeometry.py:124 flatcamObjects/FlatCAMGeometry.py:464 +#: flatcamObjects/FlatCAMGeometry.py:854 flatcamObjects/FlatCAMGerber.py:891 +#: flatcamObjects/FlatCAMGerber.py:1039 flatcamTools/ToolCutOut.py:690 +#: flatcamTools/ToolCutOut.py:886 flatcamTools/ToolCutOut.py:1046 +msgid "Rough" +msgstr "Desbaste" + +#: flatcamObjects/FlatCAMGeometry.py:124 +msgid "Finish" +msgstr "Acabamento" + +#: flatcamObjects/FlatCAMGeometry.py:499 +msgid "Add from Tool DB" +msgstr "Adicionar Ferramenta do BD" + +#: flatcamObjects/FlatCAMGeometry.py:873 +msgid "Tool added in Tool Table." +msgstr "Ferramenta adicionada na Tabela de Ferramentas." + +#: flatcamObjects/FlatCAMGeometry.py:982 flatcamObjects/FlatCAMGeometry.py:991 +msgid "Failed. Select a tool to copy." +msgstr "Falhou. Selecione uma ferramenta para copiar." + +#: flatcamObjects/FlatCAMGeometry.py:1020 +msgid "Tool was copied in Tool Table." +msgstr "A ferramenta foi copiada na tabela de ferramentas." + +#: flatcamObjects/FlatCAMGeometry.py:1047 +msgid "Tool was edited in Tool Table." +msgstr "A ferramenta foi editada na Tabela de Ferramentas." + +#: flatcamObjects/FlatCAMGeometry.py:1076 +#: flatcamObjects/FlatCAMGeometry.py:1085 +msgid "Failed. Select a tool to delete." +msgstr "Falhou. Selecione uma ferramenta para excluir." + +#: flatcamObjects/FlatCAMGeometry.py:1109 +msgid "Tool was deleted in Tool Table." +msgstr "A ferramenta foi eliminada da Tabela de Ferramentas." + +#: flatcamObjects/FlatCAMGeometry.py:1146 +#: flatcamObjects/FlatCAMGeometry.py:1156 +msgid "" +"Disabled because the tool is V-shape.\n" +"For V-shape tools the depth of cut is\n" +"calculated from other parameters like:\n" +"- 'V-tip Angle' -> angle at the tip of the tool\n" +"- 'V-tip Dia' -> diameter at the tip of the tool \n" +"- Tool Dia -> 'Dia' column found in the Tool Table\n" +"NB: a value of zero means that Tool Dia = 'V-tip Dia'" +msgstr "" +"Desativado porque a ferramenta é em forma de V.\n" +"Para ferramentas em forma de V, a profundidade de corte é\n" +"calculado a partir de outros parâmetros, como:\n" +"- 'Ângulo da ponta em V' -> ângulo na ponta da ferramenta\n" +"- 'Diâmetro da ponta em V' -> diâmetro na ponta da ferramenta\n" +"- Dia da ferramenta -> coluna 'Dia' encontrada na tabela de ferramentas\n" +"NB: um valor igual a zero significa que o Dia da Ferramenta = 'Dia da ponta " +"em V'" + +#: flatcamObjects/FlatCAMGeometry.py:1643 +msgid "This Geometry can't be processed because it is" +msgstr "Esta Geometria não pode ser processada porque é" + +#: flatcamObjects/FlatCAMGeometry.py:1643 +msgid "geometry" +msgstr "geometria" + +#: flatcamObjects/FlatCAMGeometry.py:1684 +msgid "Failed. No tool selected in the tool table ..." +msgstr "Falhou. Nenhuma ferramenta selecionada na tabela de ferramentas ..." + +#: flatcamObjects/FlatCAMGeometry.py:1786 +#: flatcamObjects/FlatCAMGeometry.py:1936 +msgid "" +"Tool Offset is selected in Tool Table but no value is provided.\n" +"Add a Tool Offset or change the Offset Type." +msgstr "" +"Deslocamento de Ferramenta selecionado na Tabela de Ferramentas, mas nenhum " +"valor foi fornecido.\n" +"Adicione um Deslocamento de Ferramenta ou altere o Tipo de Deslocamento." + +#: flatcamObjects/FlatCAMGeometry.py:1852 +#: flatcamObjects/FlatCAMGeometry.py:1998 +msgid "G-Code parsing in progress..." +msgstr "Análisando o G-Code..." + +#: flatcamObjects/FlatCAMGeometry.py:1854 +#: flatcamObjects/FlatCAMGeometry.py:2000 +msgid "G-Code parsing finished..." +msgstr "Análise do G-Code finalisada..." + +#: flatcamObjects/FlatCAMGeometry.py:1862 +msgid "Finished G-Code processing" +msgstr "Processamento do G-Code concluído" + +#: flatcamObjects/FlatCAMGeometry.py:1864 +#: flatcamObjects/FlatCAMGeometry.py:2012 +msgid "G-Code processing failed with error" +msgstr "Processamento do G-Code falhou com erro" + +#: flatcamObjects/FlatCAMGeometry.py:1906 flatcamTools/ToolSolderPaste.py:1301 +msgid "Cancelled. Empty file, it has no geometry" +msgstr "Cancelado. Arquivo vazio, não tem geometria" + +#: flatcamObjects/FlatCAMGeometry.py:2010 +#: flatcamObjects/FlatCAMGeometry.py:2171 +msgid "Finished G-Code processing..." +msgstr "Processamento do G-Code finalisado..." + +#: flatcamObjects/FlatCAMGeometry.py:2029 +#: flatcamObjects/FlatCAMGeometry.py:2033 +#: flatcamObjects/FlatCAMGeometry.py:2178 +msgid "CNCjob created" +msgstr "Trabalho CNC criado" + +#: flatcamObjects/FlatCAMGeometry.py:2209 +#: flatcamObjects/FlatCAMGeometry.py:2218 flatcamParsers/ParseGerber.py:1867 +#: flatcamParsers/ParseGerber.py:1877 +msgid "Scale factor has to be a number: integer or float." +msgstr "O fator de escala deve ser um número: inteiro ou flutuante." + +#: flatcamObjects/FlatCAMGeometry.py:2281 +msgid "Geometry Scale done." +msgstr "Redimensionamento de geometria feita." + +#: flatcamObjects/FlatCAMGeometry.py:2298 flatcamParsers/ParseGerber.py:1993 +msgid "" +"An (x,y) pair of values are needed. Probable you entered only one value in " +"the Offset field." +msgstr "" +"Um par (x,y) de valores é necessário. Provavelmente você digitou apenas um " +"valor no campo Deslocamento." + +#: flatcamObjects/FlatCAMGeometry.py:2354 +msgid "Geometry Offset done." +msgstr "Deslocamento de Geometria concluído." + +#: flatcamObjects/FlatCAMGeometry.py:2383 +msgid "" +"The Toolchange X,Y field in Edit -> Preferences has to be in the format (x, " +"y)\n" +"but now there is only one value, not two." +msgstr "" +"O campo Troca de Ferramentas X, Y em Editar -> Preferências deve estar no " +"formato (x, y).\n" +"Agora está com apenas um valor, não dois." + +#: flatcamObjects/FlatCAMGeometry.py:2577 +#: flatcamTools/ToolCopperThieving.py:769 flatcamTools/ToolNCC.py:1648 +msgid "Click the start point of the area." +msgstr "Clique no ponto inicial da área." + +#: flatcamObjects/FlatCAMGeometry.py:2619 +#, fuzzy +#| msgid "Click the end point of the paint area." +msgid "Click the end point of the area." +msgstr "Clique no ponto final da área." + +#: flatcamObjects/FlatCAMGeometry.py:2625 +#: flatcamObjects/FlatCAMGeometry.py:2677 +#: flatcamTools/ToolCopperThieving.py:826 flatcamTools/ToolNCC.py:1710 +#: flatcamTools/ToolNCC.py:1762 flatcamTools/ToolPaint.py:1606 +#: flatcamTools/ToolPaint.py:1657 +msgid "Zone added. Click to start adding next zone or right click to finish." +msgstr "" +"Zona adicionada. Clique para iniciar a adição da próxima zona ou clique com " +"o botão direito para terminar." + +#: flatcamObjects/FlatCAMGeometry.py:2729 +msgid "Cancelled. Area exclusion drawing was interrupted." +msgstr "" + +#: flatcamObjects/FlatCAMGerber.py:494 +msgid "Buffering solid geometry" +msgstr "Buffer de geometria sólida" + +#: flatcamObjects/FlatCAMGerber.py:503 +msgid "Done" +msgstr "Pronto" + +#: flatcamObjects/FlatCAMGerber.py:529 flatcamObjects/FlatCAMGerber.py:555 +msgid "Operation could not be done." +msgstr "Não foi possível executar a operação." + +#: flatcamObjects/FlatCAMGerber.py:572 +msgid "Isolating..." +msgstr "Isolando..." + +#: flatcamObjects/FlatCAMGerber.py:631 +msgid "Click on a polygon to isolate it." +msgstr "Clique em um polígono para isolá-lo." + +#: flatcamObjects/FlatCAMGerber.py:670 flatcamObjects/FlatCAMGerber.py:774 +#: flatcamTools/ToolPaint.py:1516 +msgid "Added polygon" +msgstr "Polígono adicionado" + +#: flatcamObjects/FlatCAMGerber.py:671 flatcamObjects/FlatCAMGerber.py:776 +msgid "Click to add next polygon or right click to start isolation." +msgstr "" +"Clique para adicionar o próximo polígono ou clique com o botão direito do " +"mouse para iniciar a isolação." + +#: flatcamObjects/FlatCAMGerber.py:683 flatcamTools/ToolPaint.py:1530 +msgid "Removed polygon" +msgstr "Polígono removido" + +#: flatcamObjects/FlatCAMGerber.py:684 +msgid "Click to add/remove next polygon or right click to start isolation." +msgstr "" +"Clique para adicionar/remover o próximo polígono ou clique com o botão " +"direito do mouse para iniciar a isolação." + +#: flatcamObjects/FlatCAMGerber.py:689 flatcamTools/ToolPaint.py:1536 +msgid "No polygon detected under click position." +msgstr "Nenhum polígono detectado na posição do clique." + +#: flatcamObjects/FlatCAMGerber.py:710 flatcamTools/ToolPaint.py:1565 +msgid "List of single polygons is empty. Aborting." +msgstr "A lista de polígonos únicos está vazia. Abortando." + +#: flatcamObjects/FlatCAMGerber.py:779 +msgid "No polygon in selection." +msgstr "Nenhum polígono na seleção." + +#: flatcamObjects/FlatCAMGerber.py:907 flatcamObjects/FlatCAMGerber.py:986 +#: flatcamTools/ToolNCC.py:2086 flatcamTools/ToolNCC.py:3137 +#: flatcamTools/ToolNCC.py:3516 +msgid "Isolation geometry could not be generated." +msgstr "A geometria de isolação não pôde ser gerada." + +#: flatcamObjects/FlatCAMGerber.py:932 flatcamObjects/FlatCAMGerber.py:1064 +msgid "Isolation geometry created" +msgstr "Geometria de isolação criada" + +#: flatcamObjects/FlatCAMGerber.py:941 flatcamObjects/FlatCAMGerber.py:1071 +msgid "Subtracting Geo" +msgstr "Subtraindo Geo" + +#: flatcamObjects/FlatCAMGerber.py:1396 +msgid "Plotting Apertures" +msgstr "Mostrando Aberturas" + +#: flatcamObjects/FlatCAMObj.py:234 +msgid "Name changed from" +msgstr "Nome alterado de" + +#: flatcamObjects/FlatCAMObj.py:234 +msgid "to" +msgstr "para" + +#: flatcamObjects/FlatCAMObj.py:245 +msgid "Offsetting..." +msgstr "Deslocando..." + +#: flatcamObjects/FlatCAMObj.py:259 flatcamObjects/FlatCAMObj.py:264 +msgid "Scaling could not be executed." +msgstr "Não foi possível executar o redimensionamento." + +#: flatcamObjects/FlatCAMObj.py:268 flatcamObjects/FlatCAMObj.py:276 +msgid "Scale done." +msgstr "Redimensionamento concluída." + +#: flatcamObjects/FlatCAMObj.py:274 +msgid "Scaling..." +msgstr "Dimensionando..." + +#: flatcamObjects/FlatCAMObj.py:292 +msgid "Skewing..." +msgstr "Inclinando..." + +#: flatcamObjects/FlatCAMScript.py:163 +msgid "Script Editor" +msgstr "Editor de Script" + +#: flatcamObjects/ObjectCollection.py:510 +#, python-brace-format +msgid "Object renamed from {old} to {new}" +msgstr "Objeto renomeado de {old} para {new}" + +#: flatcamObjects/ObjectCollection.py:983 +msgid "Cause of error" +msgstr "Motivo do erro" + +#: flatcamParsers/ParseExcellon.py:316 +msgid "This is GCODE mark" +msgstr "Esta é a marca G-CODE" + +#: flatcamParsers/ParseExcellon.py:433 +msgid "" +"No tool diameter info's. See shell.\n" +"A tool change event: T" +msgstr "" +"Sem informação do diâmetro da ferramenta. Veja linha de comando.\n" +"Evento de troca de ferramenta: T" + +#: flatcamParsers/ParseExcellon.py:436 +msgid "" +"was found but the Excellon file have no informations regarding the tool " +"diameters therefore the application will try to load it by using some 'fake' " +"diameters.\n" +"The user needs to edit the resulting Excellon object and change the " +"diameters to reflect the real diameters." +msgstr "" +"foi encontrado mas o arquivo Excellon não possui informações sobre os " +"diâmetros da ferramenta. \n" +"O aplicativo tentará carregá-lo usando alguns diâmetros 'falsos'./nO usuário " +"precisa editar o objeto Excellon resultante e\n" +"alterar os diâmetros para os valores reais." + +#: flatcamParsers/ParseExcellon.py:900 +msgid "" +"Excellon Parser error.\n" +"Parsing Failed. Line" +msgstr "" +"Erro do Analisador Excellon.\n" +"Análise falhou. Linha" + +#: flatcamParsers/ParseExcellon.py:982 +msgid "" +"Excellon.create_geometry() -> a drill location was skipped due of not having " +"a tool associated.\n" +"Check the resulting GCode." +msgstr "" +"Excellon.create_geometry () -> um furo foi ignorado por não ter uma " +"ferramenta associada.\n" +"Verifique o G-Code resultante." + +#: flatcamParsers/ParseFont.py:303 +msgid "Font not supported, try another one." +msgstr "Fonte não suportada. Tente outra." + +#: flatcamParsers/ParseGerber.py:426 +msgid "Gerber processing. Parsing" +msgstr "Processando Gerber. Analisando" + +#: flatcamParsers/ParseGerber.py:426 flatcamParsers/ParseHPGL2.py:182 +msgid "lines" +msgstr "linhas" + +#: flatcamParsers/ParseGerber.py:1002 flatcamParsers/ParseGerber.py:1102 +#: flatcamParsers/ParseHPGL2.py:275 flatcamParsers/ParseHPGL2.py:289 +#: flatcamParsers/ParseHPGL2.py:308 flatcamParsers/ParseHPGL2.py:332 +#: flatcamParsers/ParseHPGL2.py:367 +msgid "Coordinates missing, line ignored" +msgstr "Coordenadas faltando, linha ignorada" + +#: flatcamParsers/ParseGerber.py:1004 flatcamParsers/ParseGerber.py:1104 +msgid "GERBER file might be CORRUPT. Check the file !!!" +msgstr "O arquivo GERBER pode estar CORROMPIDO. Verifique o arquivo !!!" + +#: flatcamParsers/ParseGerber.py:1058 +msgid "" +"Region does not have enough points. File will be processed but there are " +"parser errors. Line number" +msgstr "" +"A região não possui pontos suficientes. O arquivo será processado, mas há " +"erros na análise. Número da linha" + +#: flatcamParsers/ParseGerber.py:1488 flatcamParsers/ParseHPGL2.py:402 +msgid "Gerber processing. Joining polygons" +msgstr "Processando Gerber. Unindo polígonos" + +#: flatcamParsers/ParseGerber.py:1505 +msgid "Gerber processing. Applying Gerber polarity." +msgstr "Processando Gerber. Aplicando polaridade Gerber." + +#: flatcamParsers/ParseGerber.py:1565 +msgid "Gerber Line" +msgstr "Linha Gerber" + +#: flatcamParsers/ParseGerber.py:1565 +msgid "Gerber Line Content" +msgstr "Conteúdo" + +#: flatcamParsers/ParseGerber.py:1567 +msgid "Gerber Parser ERROR" +msgstr "Erro de Análise" + +#: flatcamParsers/ParseGerber.py:1957 +msgid "Gerber Scale done." +msgstr "Redimensionamento Gerber pronto." + +#: flatcamParsers/ParseGerber.py:2049 +msgid "Gerber Offset done." +msgstr "Deslocamento Gerber pronto." + +#: flatcamParsers/ParseGerber.py:2125 +msgid "Gerber Mirror done." +msgstr "Espelhamento Gerber pronto." + +#: flatcamParsers/ParseGerber.py:2199 +msgid "Gerber Skew done." +msgstr "Inclinação Gerber pronta." + +#: flatcamParsers/ParseGerber.py:2261 +msgid "Gerber Rotate done." +msgstr "Rotação Gerber pronta." + +#: flatcamParsers/ParseGerber.py:2418 +msgid "Gerber Buffer done." +msgstr "Buffer Gerber pronto." + +#: flatcamParsers/ParseHPGL2.py:182 +msgid "HPGL2 processing. Parsing" +msgstr "Processando HPGL2 . Analisando" + +#: flatcamParsers/ParseHPGL2.py:414 +msgid "HPGL2 Line" +msgstr "Linha HPGL2" + +#: flatcamParsers/ParseHPGL2.py:414 +msgid "HPGL2 Line Content" +msgstr "Conteúdo da linha HPGL2" + +#: flatcamParsers/ParseHPGL2.py:415 +msgid "HPGL2 Parser ERROR" +msgstr "ERRO do Analisador HPGL2" + +#: flatcamTools/ToolAlignObjects.py:32 +msgid "Align Objects" +msgstr "Alinhar Objetos" + +#: flatcamTools/ToolAlignObjects.py:61 +msgid "MOVING object" +msgstr "MOVENDO Objeto" + +#: flatcamTools/ToolAlignObjects.py:65 +msgid "" +"Specify the type of object to be aligned.\n" +"It can be of type: Gerber or Excellon.\n" +"The selection here decide the type of objects that will be\n" +"in the Object combobox." +msgstr "" +"Especifique o tipo de objeto para alinhar\n" +"Pode ser do tipo: Gerber ou Excellon.\n" +"A seleção aqui decide o tipo de objetos que estarão\n" +"na Caixa de Objetos." + +#: flatcamTools/ToolAlignObjects.py:86 +msgid "Object to be aligned." +msgstr "Objeto a ser alinhado." + +#: flatcamTools/ToolAlignObjects.py:98 +msgid "TARGET object" +msgstr "Objeto ALVO" + +#: flatcamTools/ToolAlignObjects.py:100 +msgid "" +"Specify the type of object to be aligned to.\n" +"It can be of type: Gerber or Excellon.\n" +"The selection here decide the type of objects that will be\n" +"in the Object combobox." +msgstr "" +"Especifique o tipo de objeto para alinhar\n" +"Pode ser do tipo: Gerber ou Excellon.\n" +"A seleção aqui decide o tipo de objetos que estarão\n" +"na Caixa de Objetos." + +#: flatcamTools/ToolAlignObjects.py:122 +msgid "Object to be aligned to. Aligner." +msgstr "Objeto a ser alinhado. Alinhador." + +#: flatcamTools/ToolAlignObjects.py:135 +msgid "Alignment Type" +msgstr "Tipo de Alinhamento" + +#: flatcamTools/ToolAlignObjects.py:137 +msgid "" +"The type of alignment can be:\n" +"- Single Point -> it require a single point of sync, the action will be a " +"translation\n" +"- Dual Point -> it require two points of sync, the action will be " +"translation followed by rotation" +msgstr "" +"O tipo de alinhamento pode ser:\n" +"- Ponto único -> requer um único ponto de sincronização, a ação será uma " +"translação\n" +"- Ponto duplo -> requer dois pontos de sincronização, a ação será translada " +"seguida de rotação" + +#: flatcamTools/ToolAlignObjects.py:143 +msgid "Single Point" +msgstr "Ponto Único" + +#: flatcamTools/ToolAlignObjects.py:144 +msgid "Dual Point" +msgstr "Ponto Duplo" + +#: flatcamTools/ToolAlignObjects.py:159 +msgid "Align Object" +msgstr "Alinhar Objeto" + +#: flatcamTools/ToolAlignObjects.py:161 +msgid "" +"Align the specified object to the aligner object.\n" +"If only one point is used then it assumes translation.\n" +"If tho points are used it assume translation and rotation." +msgstr "" +"Alinhe o objeto especificado ao objeto alinhador.\n" +"Se apenas um ponto for usado, ele assumirá a translação.\n" +"Se forem usados dois pontos, assume translação e rotação." + +#: flatcamTools/ToolAlignObjects.py:176 flatcamTools/ToolCalculators.py:246 +#: flatcamTools/ToolCalibration.py:683 flatcamTools/ToolCopperThieving.py:484 +#: flatcamTools/ToolCutOut.py:362 flatcamTools/ToolDblSided.py:471 +#: flatcamTools/ToolExtractDrills.py:310 flatcamTools/ToolFiducials.py:318 +#: flatcamTools/ToolFilm.py:520 flatcamTools/ToolInvertGerber.py:140 +#: flatcamTools/ToolNCC.py:612 flatcamTools/ToolOptimal.py:237 +#: flatcamTools/ToolPaint.py:556 flatcamTools/ToolPanelize.py:269 +#: flatcamTools/ToolPunchGerber.py:339 flatcamTools/ToolQRCode.py:314 +#: flatcamTools/ToolRulesCheck.py:516 flatcamTools/ToolSolderPaste.py:473 +#: flatcamTools/ToolSub.py:176 flatcamTools/ToolTransform.py:398 +msgid "Reset Tool" +msgstr "Redefinir Ferramenta" + +#: flatcamTools/ToolAlignObjects.py:178 flatcamTools/ToolCalculators.py:248 +#: flatcamTools/ToolCalibration.py:685 flatcamTools/ToolCopperThieving.py:486 +#: flatcamTools/ToolCutOut.py:364 flatcamTools/ToolDblSided.py:473 +#: flatcamTools/ToolExtractDrills.py:312 flatcamTools/ToolFiducials.py:320 +#: flatcamTools/ToolFilm.py:522 flatcamTools/ToolInvertGerber.py:142 +#: flatcamTools/ToolNCC.py:614 flatcamTools/ToolOptimal.py:239 +#: flatcamTools/ToolPaint.py:558 flatcamTools/ToolPanelize.py:271 +#: flatcamTools/ToolPunchGerber.py:341 flatcamTools/ToolQRCode.py:316 +#: flatcamTools/ToolRulesCheck.py:518 flatcamTools/ToolSolderPaste.py:475 +#: flatcamTools/ToolSub.py:178 flatcamTools/ToolTransform.py:400 +msgid "Will reset the tool parameters." +msgstr "Redefinirá os parâmetros da ferramenta." + +#: flatcamTools/ToolAlignObjects.py:244 +msgid "Align Tool" +msgstr "Ferramenta Alinhar" + +#: flatcamTools/ToolAlignObjects.py:289 +msgid "There is no aligned FlatCAM object selected..." +msgstr "Não há nenhum objeto FlatCAM alinhado selecionado ..." + +#: flatcamTools/ToolAlignObjects.py:299 +msgid "There is no aligner FlatCAM object selected..." +msgstr "Não há nenhum objeto FlatCAM do alinhador selecionado ..." + +#: flatcamTools/ToolAlignObjects.py:325 flatcamTools/ToolAlignObjects.py:385 +msgid "First Point" +msgstr "Ponto Inicial" + +#: flatcamTools/ToolAlignObjects.py:325 flatcamTools/ToolAlignObjects.py:400 +msgid "Click on the START point." +msgstr "Clique no ponto INICIAL." + +#: flatcamTools/ToolAlignObjects.py:380 flatcamTools/ToolCalibration.py:920 +msgid "Cancelled by user request." +msgstr "Cancelado por solicitação do usuário." + +#: flatcamTools/ToolAlignObjects.py:385 flatcamTools/ToolAlignObjects.py:407 +msgid "Click on the DESTINATION point." +msgstr "Clique no ponto DESTINO." + +#: flatcamTools/ToolAlignObjects.py:385 flatcamTools/ToolAlignObjects.py:400 +#: flatcamTools/ToolAlignObjects.py:407 +msgid "Or right click to cancel." +msgstr "ou clique esquerdo para cancelar." + +#: flatcamTools/ToolAlignObjects.py:400 flatcamTools/ToolAlignObjects.py:407 +#: flatcamTools/ToolFiducials.py:111 +msgid "Second Point" +msgstr "Segundo Ponto" + +#: flatcamTools/ToolCalculators.py:24 +msgid "Calculators" +msgstr "Calculadoras" + +#: flatcamTools/ToolCalculators.py:26 +msgid "Units Calculator" +msgstr "Calculadora de Unidades" + +#: flatcamTools/ToolCalculators.py:70 +msgid "Here you enter the value to be converted from INCH to MM" +msgstr "Aqui você insere o valor a ser convertido de polegadas para mm" + +#: flatcamTools/ToolCalculators.py:75 +msgid "Here you enter the value to be converted from MM to INCH" +msgstr "Aqui você insere o valor a ser convertido de mm para polegadas" + +#: flatcamTools/ToolCalculators.py:111 +msgid "" +"This is the angle of the tip of the tool.\n" +"It is specified by manufacturer." +msgstr "" +"Ângulo da ponta da ferramenta.\n" +"Especificado pelo fabricante." + +#: flatcamTools/ToolCalculators.py:120 +msgid "" +"This is the depth to cut into the material.\n" +"In the CNCJob is the CutZ parameter." +msgstr "" +"Esta é a profundidade para cortar material.\n" +"No Trabalho CNC é o parâmetro Profundidade de Corte." + +#: flatcamTools/ToolCalculators.py:128 +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 "" +"Este é o diâmetro da ferramenta a ser inserido na seção\n" +"FlatCAM Gerber.\n" +"Na seção Trabalho CNC é chamado de >Diâmetro da Ferramenta<." + +#: flatcamTools/ToolCalculators.py:139 flatcamTools/ToolCalculators.py:235 +msgid "Calculate" +msgstr "Calcular" + +#: flatcamTools/ToolCalculators.py:142 +msgid "" +"Calculate either the Cut Z or the effective tool diameter,\n" +" depending on which is desired and which is known. " +msgstr "" +"Calcula a Profundidade de Corte Z ou o diâmetro efetivo da\n" +"ferramenta, dependendo do que é desejado e do que é conhecido. " + +#: flatcamTools/ToolCalculators.py:205 +msgid "Current Value" +msgstr "Valor da Corrente" + +#: flatcamTools/ToolCalculators.py:212 +msgid "" +"This is the current intensity value\n" +"to be set on the Power Supply. In Amps." +msgstr "" +"Este é o valor de intensidade de corrente\n" +"a ser ajustado na fonte de alimentação. Em Ampères." + +#: flatcamTools/ToolCalculators.py:216 +msgid "Time" +msgstr "Tempo" + +#: flatcamTools/ToolCalculators.py:223 +msgid "" +"This is the calculated time required for the procedure.\n" +"In minutes." +msgstr "Tempo calculado necessário para o procedimento, em minutos." + +#: flatcamTools/ToolCalculators.py:238 +msgid "" +"Calculate the current intensity value and the procedure time,\n" +"depending on the parameters above" +msgstr "" +"Calcula o valor da intensidade atual e o tempo do\n" +"procedimento, dependendo dos parâmetros acima" + +#: flatcamTools/ToolCalculators.py:299 +msgid "Calc. Tool" +msgstr "Calculadoras" + +#: flatcamTools/ToolCalibration.py:67 +msgid "GCode Parameters" +msgstr "Parâmetros do G-Code" + +#: flatcamTools/ToolCalibration.py:69 +msgid "Parameters used when creating the GCode in this tool." +msgstr "Parâmetros usados nesta ferramenta para criar o G-Code." + +#: flatcamTools/ToolCalibration.py:173 +msgid "STEP 1: Acquire Calibration Points" +msgstr "PASSO 1: Adquirir Pontos de Calibração" + +#: flatcamTools/ToolCalibration.py:175 +msgid "" +"Pick four points by clicking on canvas.\n" +"Those four points should be in the four\n" +"(as much as possible) corners of the object." +msgstr "" +"Escolha quatro pontos clicando na tela.\n" +"Esses quatro pontos devem estar nos quatro\n" +"(o máximo possível) cantos do objeto." + +#: flatcamTools/ToolCalibration.py:193 flatcamTools/ToolFilm.py:76 +#: flatcamTools/ToolImage.py:54 flatcamTools/ToolPanelize.py:78 +#: flatcamTools/ToolProperties.py:177 +msgid "Object Type" +msgstr "Tipo de Objeto" + +#: flatcamTools/ToolCalibration.py:210 +msgid "Source object selection" +msgstr "Seleção do objeto fonte" + +#: flatcamTools/ToolCalibration.py:212 +msgid "FlatCAM Object to be used as a source for reference points." +msgstr "Objeto FlatCAM a ser usado como fonte para os pontos de referência." + +#: flatcamTools/ToolCalibration.py:218 +msgid "Calibration Points" +msgstr "Pontos de Calibração" + +#: flatcamTools/ToolCalibration.py:220 +msgid "" +"Contain the expected calibration points and the\n" +"ones measured." +msgstr "" +"Contém os pontos de calibração esperados e\n" +"os medidos." + +#: flatcamTools/ToolCalibration.py:235 flatcamTools/ToolSub.py:76 +#: flatcamTools/ToolSub.py:131 +msgid "Target" +msgstr "Alvo" + +#: flatcamTools/ToolCalibration.py:236 +msgid "Found Delta" +msgstr "Delta Encontrado" + +#: flatcamTools/ToolCalibration.py:248 +msgid "Bot Left X" +msgstr "Esquerda Inferior X" + +#: flatcamTools/ToolCalibration.py:257 +msgid "Bot Left Y" +msgstr "Esquerda Inferior Y" + +#: flatcamTools/ToolCalibration.py:275 +msgid "Bot Right X" +msgstr "Direita Inferior X" + +#: flatcamTools/ToolCalibration.py:285 +msgid "Bot Right Y" +msgstr "Direita Inferior Y" + +#: flatcamTools/ToolCalibration.py:300 +msgid "Top Left X" +msgstr "Esquerda Superior X" + +#: flatcamTools/ToolCalibration.py:309 +msgid "Top Left Y" +msgstr "Esquerda Superior Y" + +#: flatcamTools/ToolCalibration.py:324 +msgid "Top Right X" +msgstr "Direita Superior X" + +#: flatcamTools/ToolCalibration.py:334 +msgid "Top Right Y" +msgstr "Direita Superior Y" + +#: flatcamTools/ToolCalibration.py:367 +msgid "Get Points" +msgstr "Obter Pontos" + +#: flatcamTools/ToolCalibration.py:369 +msgid "" +"Pick four points by clicking on canvas if the source choice\n" +"is 'free' or inside the object geometry if the source is 'object'.\n" +"Those four points should be in the four squares of\n" +"the object." +msgstr "" +"Escolha quatro pontos clicando na tela se a opção de origem\n" +"for 'livre' ou dentro da geometria do objeto se a origem for 'objeto'.\n" +"Esses quatro pontos devem estar nos quatro cantos do\n" +"objeto." + +#: flatcamTools/ToolCalibration.py:390 +msgid "STEP 2: Verification GCode" +msgstr "PASSO 2: G-Code de Verificação" + +#: flatcamTools/ToolCalibration.py:392 flatcamTools/ToolCalibration.py:405 +msgid "" +"Generate GCode file to locate and align the PCB by using\n" +"the four points acquired above.\n" +"The points sequence is:\n" +"- first point -> set the origin\n" +"- second point -> alignment point. Can be: top-left or bottom-right.\n" +"- third point -> check point. Can be: top-left or bottom-right.\n" +"- forth point -> final verification point. Just for evaluation." +msgstr "" +"Gere o arquivo G-Code para localizar e alinhar o PCB usando\n" +"os quatro pontos adquiridos acima.\n" +"A sequência de pontos é:\n" +"- primeiro ponto -> defina a origem\n" +"- segundo ponto -> ponto de alinhamento. Pode ser: superior esquerdo ou " +"inferior direito.\n" +"- terceiro ponto -> ponto de verificação. Pode ser: superior esquerdo ou " +"inferior direito.\n" +"- quarto ponto -> ponto de verificação final. Apenas para avaliação." + +#: flatcamTools/ToolCalibration.py:403 flatcamTools/ToolSolderPaste.py:348 +msgid "Generate GCode" +msgstr "Gerar o G-Code" + +#: flatcamTools/ToolCalibration.py:429 +msgid "STEP 3: Adjustments" +msgstr "PASSO 3: Ajustes" + +#: flatcamTools/ToolCalibration.py:431 flatcamTools/ToolCalibration.py:440 +msgid "" +"Calculate Scale and Skew factors based on the differences (delta)\n" +"found when checking the PCB pattern. The differences must be filled\n" +"in the fields Found (Delta)." +msgstr "" +"Calcular fatores de escala e de inclinação com base nas diferenças (delta)\n" +"encontradas ao verificar o padrão PCB. As diferenças devem ser preenchidas\n" +"nos campos Encontrados (Delta)." + +#: flatcamTools/ToolCalibration.py:438 +msgid "Calculate Factors" +msgstr "Calculas Fatores" + +#: flatcamTools/ToolCalibration.py:460 +msgid "STEP 4: Adjusted GCode" +msgstr "PASSO 4: G-Code ajustado" + +#: flatcamTools/ToolCalibration.py:462 +msgid "" +"Generate verification GCode file adjusted with\n" +"the factors above." +msgstr "" +"Gera o arquivo G-Code de verificação ajustado com\n" +"os fatores acima." + +#: flatcamTools/ToolCalibration.py:467 +msgid "Scale Factor X:" +msgstr "Fator de Escala X:" + +#: flatcamTools/ToolCalibration.py:479 +msgid "Scale Factor Y:" +msgstr "Fator de Escala Y:" + +#: flatcamTools/ToolCalibration.py:491 +msgid "Apply Scale Factors" +msgstr "Aplicar Fatores de Escala" + +#: flatcamTools/ToolCalibration.py:493 +msgid "Apply Scale factors on the calibration points." +msgstr "Aplica os fatores de escala nos pontos de calibração." + +#: flatcamTools/ToolCalibration.py:503 +msgid "Skew Angle X:" +msgstr "Ângulo de inclinação X:" + +#: flatcamTools/ToolCalibration.py:516 +msgid "Skew Angle Y:" +msgstr "Ângulo de inclinação Y:" + +#: flatcamTools/ToolCalibration.py:529 +msgid "Apply Skew Factors" +msgstr "Aplicar Fatores de Inclinação" + +#: flatcamTools/ToolCalibration.py:531 +msgid "Apply Skew factors on the calibration points." +msgstr "Aplica os fatores de inclinação nos pontos de calibração." + +#: flatcamTools/ToolCalibration.py:600 +msgid "Generate Adjusted GCode" +msgstr "Gerar o G-Code Ajustado" + +#: flatcamTools/ToolCalibration.py:602 +msgid "" +"Generate verification GCode file adjusted with\n" +"the factors set above.\n" +"The GCode parameters can be readjusted\n" +"before clicking this button." +msgstr "" +"Gera o arquivo G-Code de verificação ajustado com\n" +"os fatores definidos acima.\n" +"Os parâmetros do G-Code podem ser reajustados\n" +"antes de clicar neste botão." + +#: flatcamTools/ToolCalibration.py:623 +msgid "STEP 5: Calibrate FlatCAM Objects" +msgstr "PASSO 5: Calibrar Objetos FlatCAM" + +#: flatcamTools/ToolCalibration.py:625 +msgid "" +"Adjust the FlatCAM objects\n" +"with the factors determined and verified above." +msgstr "" +"Ajustar os objetos FlatCAM\n" +"com os fatores determinados e verificados acima." + +#: flatcamTools/ToolCalibration.py:637 +msgid "Adjusted object type" +msgstr "Tipo de objeto ajustado" + +#: flatcamTools/ToolCalibration.py:638 +msgid "Type of the FlatCAM Object to be adjusted." +msgstr "Tipo do objeto FlatCAM a ser ajustado." + +#: flatcamTools/ToolCalibration.py:651 +msgid "Adjusted object selection" +msgstr "Seleção do objeto ajustado" + +#: flatcamTools/ToolCalibration.py:653 +msgid "The FlatCAM Object to be adjusted." +msgstr "Objeto FlatCAM a ser ajustado." + +#: flatcamTools/ToolCalibration.py:660 +msgid "Calibrate" +msgstr "Calibrar" + +#: flatcamTools/ToolCalibration.py:662 +msgid "" +"Adjust (scale and/or skew) the objects\n" +"with the factors determined above." +msgstr "" +"Ajustar (dimensionar e/ou inclinar) os objetos\n" +"com os fatores determinados acima." + +#: flatcamTools/ToolCalibration.py:770 flatcamTools/ToolCalibration.py:771 +msgid "Origin" +msgstr "Origem" + +#: flatcamTools/ToolCalibration.py:800 +msgid "Tool initialized" +msgstr "Ferramenta inicializada" + +#: flatcamTools/ToolCalibration.py:838 +msgid "There is no source FlatCAM object selected..." +msgstr "Não há nenhum objeto FlatCAM de origem selecionado..." + +#: flatcamTools/ToolCalibration.py:859 +msgid "Get First calibration point. Bottom Left..." +msgstr "Obtenha o primeiro ponto de calibração. Inferior Esquerdo..." + +#: flatcamTools/ToolCalibration.py:926 +msgid "Get Second calibration point. Bottom Right (Top Left)..." +msgstr "" +"Obtenha o segundo ponto de calibração. Inferior direito (canto superior " +"esquerdo) ..." + +#: flatcamTools/ToolCalibration.py:930 +msgid "Get Third calibration point. Top Left (Bottom Right)..." +msgstr "" +"Obtenha o terceiro ponto de calibração. Superior esquerdo (canto inferior " +"direito) ..." + +#: flatcamTools/ToolCalibration.py:934 +msgid "Get Forth calibration point. Top Right..." +msgstr "Obtenha o quarto ponto de calibração. Superior Direito..." + +#: flatcamTools/ToolCalibration.py:938 +msgid "Done. All four points have been acquired." +msgstr "Feito. Todos os quatro pontos foram adquiridos." + +#: flatcamTools/ToolCalibration.py:969 +msgid "Verification GCode for FlatCAM Calibration Tool" +msgstr "G-Code de Verificação para a Ferramenta de Calibração FlatCAM" + +#: flatcamTools/ToolCalibration.py:981 flatcamTools/ToolCalibration.py:1067 +msgid "Gcode Viewer" +msgstr "G-Code Viewer" + +#: flatcamTools/ToolCalibration.py:997 +msgid "Cancelled. Four points are needed for GCode generation." +msgstr "Cancelado. São necessários quatro pontos para a geração do G-Code." + +#: flatcamTools/ToolCalibration.py:1253 flatcamTools/ToolCalibration.py:1349 +msgid "There is no FlatCAM object selected..." +msgstr "Não há nenhum objeto FlatCAM selecionado ..." + +#: flatcamTools/ToolCopperThieving.py:76 flatcamTools/ToolFiducials.py:261 +msgid "Gerber Object to which will be added a copper thieving." +msgstr "Objeto Gerber ao qual será adicionada uma adição de cobre." + +#: flatcamTools/ToolCopperThieving.py:98 +msgid "" +"This set the distance between the copper thieving components\n" +"(the polygon fill may be split in multiple polygons)\n" +"and the copper traces in the Gerber file." +msgstr "" +"Define a distância entre os componentes de adição de cobre\n" +"(o preenchimento de polígono pode ser dividido em vários polígonos)\n" +"e os vestígios de cobre no arquivo Gerber." + +#: flatcamTools/ToolCopperThieving.py:131 +msgid "" +"- 'Itself' - the copper thieving extent is based on the object extent.\n" +"- 'Area Selection' - left mouse click to start selection of the area to be " +"filled.\n" +"- 'Reference Object' - will do copper thieving within the area specified by " +"another object." +msgstr "" +"- 'Próprio' - a extensão do Copper Thieving é baseada na extensão do " +"objeto.\n" +"- 'Seleção de área' - clique esquerdo do mouse para iniciar a seleção da " +"área a ser preenchida.\n" +"- 'Objeto de referência' - fará Copper Thieving dentro da área especificada " +"por outro objeto." + +#: flatcamTools/ToolCopperThieving.py:138 flatcamTools/ToolNCC.py:552 +#: flatcamTools/ToolPaint.py:496 +msgid "Ref. Type" +msgstr "Tipo de Ref" + +#: flatcamTools/ToolCopperThieving.py:140 +msgid "" +"The type of FlatCAM object to be used as copper thieving reference.\n" +"It can be Gerber, Excellon or Geometry." +msgstr "" +"O tipo de objeto FlatCAM a ser usado como referência para adição de cobre.\n" +"Pode ser Gerber, Excellon ou Geometria." + +#: flatcamTools/ToolCopperThieving.py:149 flatcamTools/ToolNCC.py:562 +#: flatcamTools/ToolPaint.py:506 +msgid "Ref. Object" +msgstr "Objeto de Ref" + +#: flatcamTools/ToolCopperThieving.py:151 flatcamTools/ToolNCC.py:564 +#: flatcamTools/ToolPaint.py:508 +msgid "The FlatCAM object to be used as non copper clearing reference." +msgstr "O objeto FlatCAM a ser usado como referência para retirada de cobre." + +#: flatcamTools/ToolCopperThieving.py:327 +msgid "Insert Copper thieving" +msgstr "Inserir adição de cobre" + +#: flatcamTools/ToolCopperThieving.py:329 +msgid "" +"Will add a polygon (may be split in multiple parts)\n" +"that will surround the actual Gerber traces at a certain distance." +msgstr "" +"Adicionará um polígono (pode ser dividido em várias partes)\n" +"que cercará os traços atuais de Gerber a uma certa distância." + +#: flatcamTools/ToolCopperThieving.py:388 +msgid "Insert Robber Bar" +msgstr "Inserir Barra" + +#: flatcamTools/ToolCopperThieving.py:390 +msgid "" +"Will add a polygon with a defined thickness\n" +"that will surround the actual Gerber object\n" +"at a certain distance.\n" +"Required when doing holes pattern plating." +msgstr "" +"Adicionará um polígono com uma espessura definida\n" +"que cercará o objeto Gerber atual\n" +"a uma certa distância.\n" +"Necessário ao fazer o padrão de furos." + +#: flatcamTools/ToolCopperThieving.py:414 +msgid "Select Soldermask object" +msgstr "Selecionar objeto Máscara de Solda" + +#: flatcamTools/ToolCopperThieving.py:416 +msgid "" +"Gerber Object with the soldermask.\n" +"It will be used as a base for\n" +"the pattern plating mask." +msgstr "" +"Objeto Gerber com a Máscara de Solda.\n" +"Será usado como base para\n" +"a máscara de revestimento padrão." + +#: flatcamTools/ToolCopperThieving.py:445 +msgid "Plated area" +msgstr "Área revestida" + +#: flatcamTools/ToolCopperThieving.py:447 +msgid "" +"The area to be plated by pattern plating.\n" +"Basically is made from the openings in the plating mask.\n" +"\n" +"<> - the calculated area is actually a bit larger\n" +"due of the fact that the soldermask openings are by design\n" +"a bit larger than the copper pads, and this area is\n" +"calculated from the soldermask openings." +msgstr "" +"A área a ser revestida pelo revestimento padrão.\n" +"Basicamente é feito a partir das aberturas na máscara de revestimento.\n" +"\n" +"<> - a área calculada é realmente um pouco maior\n" +"devido ao fato de que as aberturas da máscara de solda são projetadas\n" +"um pouco maior que os pads de cobre, e essa área é\n" +"calculada a partir das aberturas da máscara de solda." + +#: flatcamTools/ToolCopperThieving.py:458 +msgid "mm" +msgstr "mm" + +#: flatcamTools/ToolCopperThieving.py:460 +msgid "in" +msgstr "in" + +#: flatcamTools/ToolCopperThieving.py:467 +msgid "Generate pattern plating mask" +msgstr "Gerar máscara de revestimento padrão" + +#: flatcamTools/ToolCopperThieving.py:469 +msgid "" +"Will add to the soldermask gerber geometry\n" +"the geometries of the copper thieving and/or\n" +"the robber bar if those were generated." +msgstr "" +"Adicionará à geometria do gerber máscara de solda\n" +"as geometrias da adição de cobre e/ou\n" +"a barra, se elas foram geradas." + +#: flatcamTools/ToolCopperThieving.py:625 +#: flatcamTools/ToolCopperThieving.py:650 +msgid "Lines Grid works only for 'itself' reference ..." +msgstr "Linhas funciona apenas para referência 'própria' ..." + +#: flatcamTools/ToolCopperThieving.py:636 +msgid "Solid fill selected." +msgstr "Preenchimento sólido selecionado." + +#: flatcamTools/ToolCopperThieving.py:641 +msgid "Dots grid fill selected." +msgstr "Preenchimento de pontos selecionado." + +#: flatcamTools/ToolCopperThieving.py:646 +msgid "Squares grid fill selected." +msgstr "Preenchimento de quadrados selecionado." + +#: flatcamTools/ToolCopperThieving.py:667 +#: flatcamTools/ToolCopperThieving.py:749 +#: flatcamTools/ToolCopperThieving.py:1345 flatcamTools/ToolDblSided.py:657 +#: flatcamTools/ToolExtractDrills.py:436 flatcamTools/ToolFiducials.py:466 +#: flatcamTools/ToolFiducials.py:743 flatcamTools/ToolOptimal.py:342 +#: flatcamTools/ToolPunchGerber.py:512 flatcamTools/ToolQRCode.py:426 +msgid "There is no Gerber object loaded ..." +msgstr "Não há objeto Gerber carregado ..." + +#: flatcamTools/ToolCopperThieving.py:680 +#: flatcamTools/ToolCopperThieving.py:1273 +msgid "Append geometry" +msgstr "Anexar geometria" + +#: flatcamTools/ToolCopperThieving.py:724 +#: flatcamTools/ToolCopperThieving.py:1306 +#: flatcamTools/ToolCopperThieving.py:1459 +msgid "Append source file" +msgstr "Anexar arquivo fonte" + +#: flatcamTools/ToolCopperThieving.py:732 +#: flatcamTools/ToolCopperThieving.py:1314 +msgid "Copper Thieving Tool done." +msgstr "Área de Adição de Cobre." + +#: flatcamTools/ToolCopperThieving.py:759 +#: flatcamTools/ToolCopperThieving.py:792 flatcamTools/ToolCutOut.py:519 +#: flatcamTools/ToolCutOut.py:724 flatcamTools/ToolInvertGerber.py:208 +#: flatcamTools/ToolNCC.py:1599 flatcamTools/ToolNCC.py:1640 +#: flatcamTools/ToolNCC.py:1669 flatcamTools/ToolPaint.py:1474 +#: flatcamTools/ToolPanelize.py:412 flatcamTools/ToolPanelize.py:426 +#: flatcamTools/ToolSub.py:294 flatcamTools/ToolSub.py:307 +#: flatcamTools/ToolSub.py:498 flatcamTools/ToolSub.py:513 +#: tclCommands/TclCommandCopperClear.py:97 tclCommands/TclCommandPaint.py:99 +msgid "Could not retrieve object" +msgstr "Não foi possível recuperar o objeto" + +#: flatcamTools/ToolCopperThieving.py:820 +msgid "Click the end point of the filling area." +msgstr "Clique no ponto final da área de preenchimento." + +#: flatcamTools/ToolCopperThieving.py:942 +#: flatcamTools/ToolCopperThieving.py:946 +#: flatcamTools/ToolCopperThieving.py:1007 +msgid "Thieving" +msgstr "Adição" + +#: flatcamTools/ToolCopperThieving.py:953 +msgid "Copper Thieving Tool started. Reading parameters." +msgstr "Ferramenta de Adição de Cobre iniciada. Lendo parâmetros." + +#: flatcamTools/ToolCopperThieving.py:978 +msgid "Copper Thieving Tool. Preparing isolation polygons." +msgstr "Ferramenta de Adição de Cobre. Preparando polígonos de isolação." + +#: flatcamTools/ToolCopperThieving.py:1023 +msgid "Copper Thieving Tool. Preparing areas to fill with copper." +msgstr "" +"Ferramenta de Adição de Cobre. Preparando áreas para preencher com cobre." + +#: flatcamTools/ToolCopperThieving.py:1034 flatcamTools/ToolOptimal.py:349 +#: flatcamTools/ToolPanelize.py:799 flatcamTools/ToolRulesCheck.py:1127 +msgid "Working..." +msgstr "Trabalhando..." + +#: flatcamTools/ToolCopperThieving.py:1061 +msgid "Geometry not supported for bounding box" +msgstr "Geometria não suportada para caixa delimitadora" + +#: flatcamTools/ToolCopperThieving.py:1067 flatcamTools/ToolNCC.py:1933 +#: flatcamTools/ToolNCC.py:1988 flatcamTools/ToolNCC.py:2992 +#: flatcamTools/ToolPaint.py:3380 +msgid "No object available." +msgstr "Nenhum objeto disponível." + +#: flatcamTools/ToolCopperThieving.py:1104 flatcamTools/ToolNCC.py:1958 +#: flatcamTools/ToolNCC.py:2011 flatcamTools/ToolNCC.py:3034 +msgid "The reference object type is not supported." +msgstr "O tipo do objeto de referência não é suportado." + +#: flatcamTools/ToolCopperThieving.py:1109 +msgid "Copper Thieving Tool. Appending new geometry and buffering." +msgstr "Ferramenta de Adição de Cobre. Anexando nova geometria e buffer." + +#: flatcamTools/ToolCopperThieving.py:1125 +msgid "Create geometry" +msgstr "Criar Geometria" + +#: flatcamTools/ToolCopperThieving.py:1325 +#: flatcamTools/ToolCopperThieving.py:1329 +msgid "P-Plating Mask" +msgstr "Máscara de Revestimento Padrão" + +#: flatcamTools/ToolCopperThieving.py:1351 +msgid "Append PP-M geometry" +msgstr "Anexar geometria" + +#: flatcamTools/ToolCopperThieving.py:1477 +msgid "Generating Pattern Plating Mask done." +msgstr "Geração de Máscara de Revestimento Padrão concluída." + +#: flatcamTools/ToolCopperThieving.py:1549 +msgid "Copper Thieving Tool exit." +msgstr "Sair da Ferramenta de Adição de Cobre." + +#: flatcamTools/ToolCutOut.py:41 +msgid "Cutout PCB" +msgstr "Recorte PCB" + +#: flatcamTools/ToolCutOut.py:69 flatcamTools/ToolPanelize.py:54 +msgid "Source Object" +msgstr "Objeto Fonte" + +#: flatcamTools/ToolCutOut.py:70 +msgid "Object to be cutout" +msgstr "Objeto a ser recortado" + +#: flatcamTools/ToolCutOut.py:75 +msgid "Kind" +msgstr "Tipo" + +#: flatcamTools/ToolCutOut.py:97 +msgid "" +"Specify the type of object to be cutout.\n" +"It can be of type: Gerber or Geometry.\n" +"What is selected here will dictate the kind\n" +"of objects that will populate the 'Object' combobox." +msgstr "" +"Especifica o tipo de objeto a ser cortado.\n" +"Pode ser do tipo: Gerber ou Geometria.\n" +"O que estiver selecionado aqui irá ditar o tipo\n" +"de objetos que preencherão a caixa de combinação 'Objeto'." + +#: flatcamTools/ToolCutOut.py:121 +msgid "Tool Parameters" +msgstr "Parâmetros de Ferramenta" + +#: flatcamTools/ToolCutOut.py:238 +msgid "A. Automatic Bridge Gaps" +msgstr "A. Pontes Automáticas" + +#: flatcamTools/ToolCutOut.py:240 +msgid "This section handle creation of automatic bridge gaps." +msgstr "Esta seção trata da criação de pontes automáticas." + +#: flatcamTools/ToolCutOut.py:247 +msgid "" +"Number of gaps used for the Automatic cutout.\n" +"There can be maximum 8 bridges/gaps.\n" +"The choices are:\n" +"- None - no gaps\n" +"- lr - left + right\n" +"- tb - top + bottom\n" +"- 4 - left + right +top + bottom\n" +"- 2lr - 2*left + 2*right\n" +"- 2tb - 2*top + 2*bottom\n" +"- 8 - 2*left + 2*right +2*top + 2*bottom" +msgstr "" +"Número de pontes utilizadas no recorte automático.\n" +"Pode haver um máximo de 8 pontes/lacunas.\n" +"As opções são:\n" +"- Nenhum - sem pontes\n" +"- LR - esquerda + direita\n" +"- TB - topo + baixo\n" +"- 4 - esquerda + direita + topo + baixo\n" +"- 2LR - 2*esquerda + 2*direita\n" +"- 2TB - 2*topo + 2*baixo\n" +"- 8 - 2*esquerda + 2*direita + 2*topo + 2*baixo" + +#: flatcamTools/ToolCutOut.py:269 +msgid "Generate Freeform Geometry" +msgstr "Gerar Geometria de Forma Livre" + +#: flatcamTools/ToolCutOut.py:271 +msgid "" +"Cutout the selected object.\n" +"The cutout shape can be of any shape.\n" +"Useful when the PCB has a non-rectangular shape." +msgstr "" +"Recorta o objeto selecionado.\n" +"O recorte pode ter qualquer forma.\n" +"Útil quando o PCB tem uma forma não retangular." + +#: flatcamTools/ToolCutOut.py:283 +msgid "Generate Rectangular Geometry" +msgstr "Gerar Geometria Retangular" + +#: flatcamTools/ToolCutOut.py:285 +msgid "" +"Cutout the selected object.\n" +"The resulting cutout shape is\n" +"always a rectangle shape and it will be\n" +"the bounding box of the Object." +msgstr "" +"Recorta o objeto selecionado.\n" +"O recorte resultante é\n" +"sempre em forma de retângulo e será\n" +"a caixa delimitadora do objeto." + +#: flatcamTools/ToolCutOut.py:304 +msgid "B. Manual Bridge Gaps" +msgstr "B. Pontes Manuais" + +#: flatcamTools/ToolCutOut.py:306 +msgid "" +"This section handle creation of manual bridge gaps.\n" +"This is done by mouse clicking on the perimeter of the\n" +"Geometry object that is used as a cutout object. " +msgstr "" +"Esta seção trata da criação de pontes manuais.\n" +"Isso é feito clicando com o mouse no perímetro do objeto\n" +"de Geometria que é usado como objeto de recorte. " + +#: flatcamTools/ToolCutOut.py:321 +msgid "Geometry object used to create the manual cutout." +msgstr "Objeto de geometria usado para criar o recorte manual." + +#: flatcamTools/ToolCutOut.py:328 +msgid "Generate Manual Geometry" +msgstr "Gerar Geometria Manual" + +#: flatcamTools/ToolCutOut.py:330 +msgid "" +"If the object to be cutout is a Gerber\n" +"first create a Geometry that surrounds it,\n" +"to be used as the cutout, if one doesn't exist yet.\n" +"Select the source Gerber file in the top object combobox." +msgstr "" +"Se o objeto a ser recortado for um Gerber\n" +"primeiro crie uma Geometria que o rodeia,\n" +"para ser usado como recorte, caso ainda não exista.\n" +"Selecione o arquivo Gerber de origem na combobox do objeto." + +#: flatcamTools/ToolCutOut.py:343 +msgid "Manual Add Bridge Gaps" +msgstr "Adicionar Pontes Manuais" + +#: flatcamTools/ToolCutOut.py:345 +msgid "" +"Use the left mouse button (LMB) click\n" +"to create a bridge gap to separate the PCB from\n" +"the surrounding material.\n" +"The LMB click has to be done on the perimeter of\n" +"the Geometry object used as a cutout geometry." +msgstr "" +"Use o botão esquerdo do mouse (BEM): clique\n" +"para criar uma ponte para separar a PCB do material adjacente.\n" +"O clique deve ser feito no perímetro\n" +"do objeto Geometria usado como uma geometria de recorte." + +#: flatcamTools/ToolCutOut.py:524 +msgid "" +"There is no object selected for Cutout.\n" +"Select one and try again." +msgstr "" +"Não há objeto selecionado para Recorte.\n" +"Selecione um e tente novamente." + +#: flatcamTools/ToolCutOut.py:530 flatcamTools/ToolCutOut.py:733 +#: flatcamTools/ToolCutOut.py:914 flatcamTools/ToolCutOut.py:996 +#: tclCommands/TclCommandGeoCutout.py:184 +msgid "Tool Diameter is zero value. Change it to a positive real number." +msgstr "" +"O diâmetro da ferramenta está zerado. Mude para um número real positivo." + +#: flatcamTools/ToolCutOut.py:544 flatcamTools/ToolCutOut.py:748 +msgid "Number of gaps value is missing. Add it and retry." +msgstr "O número de pontes está ausente. Altere e tente novamente." + +#: flatcamTools/ToolCutOut.py:549 flatcamTools/ToolCutOut.py:752 +msgid "" +"Gaps value can be only one of: 'None', 'lr', 'tb', '2lr', '2tb', 4 or 8. " +"Fill in a correct value and retry. " +msgstr "" +"O valor das lacunas pode ser apenas um de: 'Nenhum', 'lr', 'tb', '2lr', " +"'2tb', 4 ou 8. Preencha um valor correto e tente novamente. " + +#: flatcamTools/ToolCutOut.py:554 flatcamTools/ToolCutOut.py:758 +msgid "" +"Cutout operation cannot be done on a multi-geo Geometry.\n" +"Optionally, this Multi-geo Geometry can be converted to Single-geo " +"Geometry,\n" +"and after that perform Cutout." +msgstr "" +"A operação de recorte não pode ser feita em uma Geometria multi-geo.\n" +"Opcionalmente, essa Geometria Multi-Geo pode ser convertida em Geometria " +"Única,\n" +"e depois disso, executar Recorte." + +#: flatcamTools/ToolCutOut.py:706 flatcamTools/ToolCutOut.py:903 +msgid "Any form CutOut operation finished." +msgstr "Recorte concluído." + +#: flatcamTools/ToolCutOut.py:728 flatcamTools/ToolInvertGerber.py:214 +#: flatcamTools/ToolNCC.py:1603 flatcamTools/ToolPaint.py:1397 +#: flatcamTools/ToolPanelize.py:417 tclCommands/TclCommandBbox.py:71 +#: tclCommands/TclCommandNregions.py:71 +msgid "Object not found" +msgstr "Objeto não encontrado" + +#: flatcamTools/ToolCutOut.py:872 +msgid "Rectangular cutout with negative margin is not possible." +msgstr "Recorte retangular com margem negativa não é possível." + +#: flatcamTools/ToolCutOut.py:908 +msgid "" +"Click on the selected geometry object perimeter to create a bridge gap ..." +msgstr "" +"Clique no perímetro do objeto de geometria selecionado para criar uma " +"ponte ..." + +#: flatcamTools/ToolCutOut.py:925 flatcamTools/ToolCutOut.py:951 +msgid "Could not retrieve Geometry object" +msgstr "Não foi possível recuperar o objeto Geometria" + +#: flatcamTools/ToolCutOut.py:956 +msgid "Geometry object for manual cutout not found" +msgstr "Objeto de geometria para recorte manual não encontrado" + +#: flatcamTools/ToolCutOut.py:966 +msgid "Added manual Bridge Gap." +msgstr "Ponte Manual Adicionada." + +#: flatcamTools/ToolCutOut.py:978 +msgid "Could not retrieve Gerber object" +msgstr "Não foi possível recuperar o objeto Gerber" + +#: flatcamTools/ToolCutOut.py:983 +msgid "" +"There is no Gerber object selected for Cutout.\n" +"Select one and try again." +msgstr "" +"Não há nenhum objeto Gerber selecionado para o Recorte.\n" +"Selecione um e tente novamente." + +#: flatcamTools/ToolCutOut.py:989 +msgid "" +"The selected object has to be of Gerber type.\n" +"Select a Gerber file and try again." +msgstr "" +"O objeto selecionado deve ser do tipo Gerber.\n" +"Selecione um arquivo Gerber e tente novamente." + +#: flatcamTools/ToolCutOut.py:1024 +msgid "Geometry not supported for cutout" +msgstr "Geometria não suportada para recorte" + +#: flatcamTools/ToolCutOut.py:1099 +msgid "Making manual bridge gap..." +msgstr "Fazendo ponte manual..." + +#: flatcamTools/ToolDblSided.py:26 +msgid "2-Sided PCB" +msgstr "PCB de 2 faces" + +#: flatcamTools/ToolDblSided.py:52 +msgid "Mirror Operation" +msgstr "Operação Espelho" + +#: flatcamTools/ToolDblSided.py:53 +msgid "Objects to be mirrored" +msgstr "Objetos a espelhar" + +#: flatcamTools/ToolDblSided.py:65 +msgid "Gerber to be mirrored" +msgstr "Gerber a espelhar" + +#: flatcamTools/ToolDblSided.py:69 flatcamTools/ToolDblSided.py:97 +#: flatcamTools/ToolDblSided.py:127 +msgid "" +"Mirrors (flips) the specified object around \n" +"the specified axis. Does not create a new \n" +"object, but modifies it." +msgstr "" +"Espelha (inverte) o objeto especificado em torno do eixo especificado.\n" +"Não é criado um novo objeto, o objeto atual é modificado." + +#: flatcamTools/ToolDblSided.py:93 +msgid "Excellon Object to be mirrored." +msgstr "Objeto Excellon a ser espelhado." + +#: flatcamTools/ToolDblSided.py:122 +msgid "Geometry Obj to be mirrored." +msgstr "Objeto Geometria a ser espelhado." + +#: flatcamTools/ToolDblSided.py:158 +msgid "Mirror Parameters" +msgstr "Parâmetros de Espelho" + +#: flatcamTools/ToolDblSided.py:159 +msgid "Parameters for the mirror operation" +msgstr "Parâmetros para a operação de espelhamento" + +#: flatcamTools/ToolDblSided.py:164 +msgid "Mirror Axis" +msgstr "Espelhar Eixo" + +#: flatcamTools/ToolDblSided.py:175 +msgid "" +"The coordinates used as reference for the mirror operation.\n" +"Can be:\n" +"- Point -> a set of coordinates (x,y) around which the object is mirrored\n" +"- Box -> a set of coordinates (x, y) obtained from the center of the\n" +"bounding box of another object selected below" +msgstr "" +"As coordenadas usadas como referência para a operação de espelho.\n" +"Pode ser:\n" +"- Ponto -> um conjunto de coordenadas (x, y) em torno do qual o objeto é " +"espelhado\n" +"- Caixa -> um conjunto de coordenadas (x, y) obtidas do centro da\n" +"caixa delimitadora de outro objeto selecionado abaixo" + +#: flatcamTools/ToolDblSided.py:189 +msgid "Point coordinates" +msgstr "Coords dos pontos" + +#: flatcamTools/ToolDblSided.py:194 +msgid "" +"Add the coordinates in format (x, y) through which the mirroring " +"axis\n" +" selected in 'MIRROR AXIS' pass.\n" +"The (x, y) coordinates are captured by pressing SHIFT key\n" +"and left mouse button click on canvas or you can enter the coordinates " +"manually." +msgstr "" +"Adicione as coordenadas no formato (x, y) para o eixo de espelhamento " +"passar.\n" +"As coordenadas (x, y) são capturadas pressionando a tecla SHIFT\n" +"e clicar o botão esquerdo do mouse na tela ou inseridas manualmente." + +#: flatcamTools/ToolDblSided.py:218 +msgid "" +"It can be of type: Gerber or Excellon or Geometry.\n" +"The coordinates of the center of the bounding box are used\n" +"as reference for mirror operation." +msgstr "" +"Pode ser do tipo: Gerber, Excellon ou Geometria.\n" +"As coordenadas do centro da caixa delimitadora são usadas\n" +"como referência para operação de espelho." + +#: flatcamTools/ToolDblSided.py:252 +msgid "Bounds Values" +msgstr "Valores Limite" + +#: flatcamTools/ToolDblSided.py:254 +msgid "" +"Select on canvas the object(s)\n" +"for which to calculate bounds values." +msgstr "" +"Selecione na tela o(s) objeto(s)\n" +"para o qual calcular valores limites." + +#: flatcamTools/ToolDblSided.py:264 +msgid "X min" +msgstr "X min" + +#: flatcamTools/ToolDblSided.py:266 flatcamTools/ToolDblSided.py:280 +msgid "Minimum location." +msgstr "Localização mínima." + +#: flatcamTools/ToolDblSided.py:278 +msgid "Y min" +msgstr "Y min" + +#: flatcamTools/ToolDblSided.py:292 +msgid "X max" +msgstr "X max" + +#: flatcamTools/ToolDblSided.py:294 flatcamTools/ToolDblSided.py:308 +msgid "Maximum location." +msgstr "Localização máxima." + +#: flatcamTools/ToolDblSided.py:306 +msgid "Y max" +msgstr "Y max" + +#: flatcamTools/ToolDblSided.py:317 +msgid "Center point coordinates" +msgstr "Coordenadas do ponto central" + +#: flatcamTools/ToolDblSided.py:319 +msgid "Centroid" +msgstr "Centroid" + +#: flatcamTools/ToolDblSided.py:321 +msgid "" +"The center point location for the rectangular\n" +"bounding shape. Centroid. Format is (x, y)." +msgstr "" +"A localização do ponto central do retângulo\n" +"forma delimitadora. Centroid. O formato é (x, y)." + +#: flatcamTools/ToolDblSided.py:330 +msgid "Calculate Bounds Values" +msgstr "Calcular valores de limitesCalculadoras" + +#: flatcamTools/ToolDblSided.py:332 +msgid "" +"Calculate the enveloping rectangular shape coordinates,\n" +"for the selection of objects.\n" +"The envelope shape is parallel with the X, Y axis." +msgstr "" +"Calcular as coordenadas de forma retangular envolventes,\n" +"para a seleção de objetos.\n" +"A forma do envelope é paralela ao eixo X, Y." + +#: flatcamTools/ToolDblSided.py:352 +msgid "PCB Alignment" +msgstr "Alinhamento PCB" + +#: flatcamTools/ToolDblSided.py:354 flatcamTools/ToolDblSided.py:456 +msgid "" +"Creates an Excellon Object containing the\n" +"specified alignment holes and their mirror\n" +"images." +msgstr "" +"Cria um Objeto Excellon contendo os\n" +"furos de alinhamento especificados e suas\n" +"imagens espelhadas." + +#: flatcamTools/ToolDblSided.py:361 +msgid "Drill Diameter" +msgstr "Diâmetro da Broca" + +#: flatcamTools/ToolDblSided.py:390 flatcamTools/ToolDblSided.py:397 +msgid "" +"The reference point used to create the second alignment drill\n" +"from the first alignment drill, by doing mirror.\n" +"It can be modified in the Mirror Parameters -> Reference section" +msgstr "" +"O ponto de referência usado para criar o segundo furo de alinhamento\n" +"do primeiro furo de alinhamento, fazendo espelho.\n" +"Pode ser modificado na seção Parâmetros de espelho -> Referência" + +#: flatcamTools/ToolDblSided.py:410 +msgid "Alignment Drill Coordinates" +msgstr "Coords Furos de Alinhamento" + +#: flatcamTools/ToolDblSided.py:412 +msgid "" +"Alignment holes (x1, y1), (x2, y2), ... on one side of the mirror axis. For " +"each set of (x, y) coordinates\n" +"entered here, a pair of drills will be created:\n" +"\n" +"- one drill at the coordinates from the field\n" +"- one drill in mirror position over the axis selected above in the 'Align " +"Axis'." +msgstr "" +"Furos de alinhamento (x1, y1), (x2, y2), ... em um lado do eixo do espelho. " +"Para cada conjunto de coordenadas (x, y)\n" +"indicado aqui, um par de furos será criado:\n" +"\n" +"- uma furo nas coordenadas do campo\n" +"- uma furo na posição espelhada sobre o eixo selecionado acima no 'Alinhar " +"eixo'." + +#: flatcamTools/ToolDblSided.py:420 +msgid "Drill coordinates" +msgstr "Coordenadas dos furos" + +#: flatcamTools/ToolDblSided.py:427 +msgid "" +"Add alignment drill holes coordinates in the format: (x1, y1), (x2, " +"y2), ... \n" +"on one side of the alignment axis.\n" +"\n" +"The coordinates set can be obtained:\n" +"- press SHIFT key and left mouse clicking on canvas. Then click Add.\n" +"- press SHIFT key and left mouse clicking on canvas. Then Ctrl+V in the " +"field.\n" +"- press SHIFT key and left mouse clicking on canvas. Then RMB click in the " +"field and click Paste.\n" +"- by entering the coords manually in the format: (x1, y1), (x2, y2), ..." +msgstr "" +"Adicione as coordenadas dos furos de alinhamento no formato (x1, y1), (x2, " +"y2), ...\n" +"em um lado do eixo do espelho.\n" +"\n" +"O conjunto de coordenadas pode ser obtido:\n" +"- tecla SHIFT e clique com o botão esquerdo do mouse na tela. Em seguida, " +"clicar em Adicionar.\n" +"- tecla SHIFT e clique com o botão esquerdo do mouse na tela. Então CTRL + V " +"no campo.\n" +"- tecla SHIFT e clique com o botão esquerdo do mouse na tela. Em seguida, " +"clicar no campo e em Colar.\n" +"- inserindo as coordenadas manualmente no formato: (x1, y1), (x2, y2), ..." + +#: flatcamTools/ToolDblSided.py:442 +msgid "Delete Last" +msgstr "Excluir Último" + +#: flatcamTools/ToolDblSided.py:444 +msgid "Delete the last coordinates tuple in the list." +msgstr "Exclua a última dupla de coordenadas da lista." + +#: flatcamTools/ToolDblSided.py:454 +msgid "Create Excellon Object" +msgstr "Criar Objeto Excellon" + +#: flatcamTools/ToolDblSided.py:541 +msgid "2-Sided Tool" +msgstr "PCB 2 Faces" + +#: flatcamTools/ToolDblSided.py:581 +msgid "" +"'Point' reference is selected and 'Point' coordinates are missing. Add them " +"and retry." +msgstr "" +"A referência 'Ponto' está selecionada e as coordenadas do 'Ponto' estão " +"faltando. Adicione-as e tente novamente." + +#: flatcamTools/ToolDblSided.py:600 +msgid "There is no Box reference object loaded. Load one and retry." +msgstr "" +"Não há objeto Caixa de referência carregado. Carregue um e tente novamente." + +#: flatcamTools/ToolDblSided.py:612 +msgid "No value or wrong format in Drill Dia entry. Add it and retry." +msgstr "" +"Nenhum valor ou formato incorreto para o Diâmetro do Furo. Altere e tente " +"novamente." + +#: flatcamTools/ToolDblSided.py:623 +msgid "There are no Alignment Drill Coordinates to use. Add them and retry." +msgstr "" +"Não há Coordenadas para usar no Furo de Alinhamento. Adicione-as e tente " +"novamente." + +#: flatcamTools/ToolDblSided.py:648 +msgid "Excellon object with alignment drills created..." +msgstr "Objeto Excellon com furos de alinhamento criado ..." + +#: flatcamTools/ToolDblSided.py:661 flatcamTools/ToolDblSided.py:704 +#: flatcamTools/ToolDblSided.py:748 +msgid "Only Gerber, Excellon and Geometry objects can be mirrored." +msgstr "Apenas objetos Gerber, Excellon e Geometria podem ser espelhados." + +#: flatcamTools/ToolDblSided.py:671 flatcamTools/ToolDblSided.py:715 +msgid "" +"There are no Point coordinates in the Point field. Add coords and try " +"again ..." +msgstr "" +"Faltando as Coordenadas do 'Ponto'. Adicione as coordenadas e tente " +"novamente ..." + +#: flatcamTools/ToolDblSided.py:681 flatcamTools/ToolDblSided.py:725 +#: flatcamTools/ToolDblSided.py:762 +msgid "There is no Box object loaded ..." +msgstr "Não há objeto Caixa carregado ..." + +#: flatcamTools/ToolDblSided.py:691 flatcamTools/ToolDblSided.py:735 +#: flatcamTools/ToolDblSided.py:772 +msgid "was mirrored" +msgstr "foi espelhado" + +#: flatcamTools/ToolDblSided.py:700 flatcamTools/ToolPunchGerber.py:533 +msgid "There is no Excellon object loaded ..." +msgstr "Não há objeto Excellon carregado ..." + +#: flatcamTools/ToolDblSided.py:744 +msgid "There is no Geometry object loaded ..." +msgstr "Não há objeto Geometria carregado ..." + +#: flatcamTools/ToolDistance.py:57 flatcamTools/ToolDistanceMin.py:51 +msgid "Those are the units in which the distance is measured." +msgstr "Unidade em que a distância é medida." + +#: flatcamTools/ToolDistance.py:58 flatcamTools/ToolDistanceMin.py:52 +msgid "METRIC (mm)" +msgstr "Métrico (mm):" + +#: flatcamTools/ToolDistance.py:58 flatcamTools/ToolDistanceMin.py:52 +msgid "INCH (in)" +msgstr "Inglês (in)" + +#: flatcamTools/ToolDistance.py:64 +msgid "Snap to center" +msgstr "Alinhar ao centro" + +#: flatcamTools/ToolDistance.py:66 +msgid "" +"Mouse cursor will snap to the center of the pad/drill\n" +"when it is hovering over the geometry of the pad/drill." +msgstr "" +"O cursor do mouse se encaixará no centro do pad/furo\n" +"quando está pairando sobre a geometria do pad/furo." + +#: flatcamTools/ToolDistance.py:76 +msgid "Start Coords" +msgstr "Coords Iniciais" + +#: flatcamTools/ToolDistance.py:77 flatcamTools/ToolDistance.py:82 +msgid "This is measuring Start point coordinates." +msgstr "Coordenadas do ponto inicial da medição." + +#: flatcamTools/ToolDistance.py:87 +msgid "Stop Coords" +msgstr "Coords Finais" + +#: flatcamTools/ToolDistance.py:88 flatcamTools/ToolDistance.py:93 +msgid "This is the measuring Stop point coordinates." +msgstr "Coordenadas do ponto final da medição." + +#: flatcamTools/ToolDistance.py:98 flatcamTools/ToolDistanceMin.py:63 +msgid "Dx" +msgstr "Dx" + +#: flatcamTools/ToolDistance.py:99 flatcamTools/ToolDistance.py:104 +#: flatcamTools/ToolDistanceMin.py:64 flatcamTools/ToolDistanceMin.py:93 +msgid "This is the distance measured over the X axis." +msgstr "Distância medida no eixo X." + +#: flatcamTools/ToolDistance.py:109 flatcamTools/ToolDistanceMin.py:66 +msgid "Dy" +msgstr "Dy" + +#: flatcamTools/ToolDistance.py:110 flatcamTools/ToolDistance.py:115 +#: flatcamTools/ToolDistanceMin.py:67 flatcamTools/ToolDistanceMin.py:98 +msgid "This is the distance measured over the Y axis." +msgstr "Distância medida no eixo Y." + +#: flatcamTools/ToolDistance.py:121 flatcamTools/ToolDistance.py:126 +#: flatcamTools/ToolDistanceMin.py:70 flatcamTools/ToolDistanceMin.py:103 +msgid "This is orientation angle of the measuring line." +msgstr "Ângulo de orientação da linha de medição." + +#: flatcamTools/ToolDistance.py:131 flatcamTools/ToolDistanceMin.py:72 +msgid "DISTANCE" +msgstr "DISTÂNCIA" + +#: flatcamTools/ToolDistance.py:132 flatcamTools/ToolDistance.py:137 +msgid "This is the point to point Euclidian distance." +msgstr "Este é o ponto a apontar a distância euclidiana." + +#: flatcamTools/ToolDistance.py:142 flatcamTools/ToolDistance.py:337 +#: flatcamTools/ToolDistanceMin.py:115 +msgid "Measure" +msgstr "Medir" + +#: flatcamTools/ToolDistance.py:272 +msgid "Working" +msgstr "Trabalhando" + +#: flatcamTools/ToolDistance.py:277 +msgid "MEASURING: Click on the Start point ..." +msgstr "MEDIÇÃO: Clique no ponto Inicial ..." + +#: flatcamTools/ToolDistance.py:387 +msgid "Distance Tool finished." +msgstr "Ferramenta de distância concluída." + +#: flatcamTools/ToolDistance.py:455 +msgid "Pads overlapped. Aborting." +msgstr "Pads sobrepostos. Abortando." + +#: flatcamTools/ToolDistance.py:485 +msgid "MEASURING: Click on the Destination point ..." +msgstr "MEDIÇÃO: Clique no ponto Final ..." + +#: flatcamTools/ToolDistance.py:494 flatcamTools/ToolDistanceMin.py:285 +msgid "MEASURING" +msgstr "MEDINDO" + +#: flatcamTools/ToolDistance.py:495 flatcamTools/ToolDistanceMin.py:286 +msgid "Result" +msgstr "Resultado" + +#: flatcamTools/ToolDistanceMin.py:32 flatcamTools/ToolDistanceMin.py:144 +msgid "Minimum Distance Tool" +msgstr "Ferramenta Distância Mínima" + +#: flatcamTools/ToolDistanceMin.py:55 +msgid "First object point" +msgstr "Ponto inicial" + +#: flatcamTools/ToolDistanceMin.py:56 flatcamTools/ToolDistanceMin.py:81 +msgid "" +"This is first object point coordinates.\n" +"This is the start point for measuring distance." +msgstr "" +"Coordenadas do ponto inicial.\n" +"Este é o ponto inicial para a medição de distância." + +#: flatcamTools/ToolDistanceMin.py:59 +msgid "Second object point" +msgstr "Ponto final" + +#: flatcamTools/ToolDistanceMin.py:60 flatcamTools/ToolDistanceMin.py:87 +msgid "" +"This is second object point coordinates.\n" +"This is the end point for measuring distance." +msgstr "" +"Coordenadas do ponto final.\n" +"Este é o ponto final para a medição de distância." + +#: flatcamTools/ToolDistanceMin.py:73 flatcamTools/ToolDistanceMin.py:108 +msgid "This is the point to point Euclidean distance." +msgstr "Este é o ponto a apontar a distância euclidiana." + +#: flatcamTools/ToolDistanceMin.py:75 +msgid "Half Point" +msgstr "Ponto Médio" + +#: flatcamTools/ToolDistanceMin.py:76 flatcamTools/ToolDistanceMin.py:113 +msgid "This is the middle point of the point to point Euclidean distance." +msgstr "Este é o ponto médio da distância euclidiana." + +#: flatcamTools/ToolDistanceMin.py:118 +msgid "Jump to Half Point" +msgstr "Ir para o Ponto Médio" + +#: flatcamTools/ToolDistanceMin.py:155 +msgid "" +"Select two objects and no more, to measure the distance between them ..." +msgstr "" +"Selecione dois objetos (apenas dois) para medir a distância entre eles..." + +#: flatcamTools/ToolDistanceMin.py:196 flatcamTools/ToolDistanceMin.py:217 +#: flatcamTools/ToolDistanceMin.py:226 flatcamTools/ToolDistanceMin.py:247 +msgid "Select two objects and no more. Currently the selection has objects: " +msgstr "Selecione dois objetos (apenas dois). A seleção atual tem objetos: " + +#: flatcamTools/ToolDistanceMin.py:294 +msgid "Objects intersects or touch at" +msgstr "Os objetos se cruzam ou tocam em" + +#: flatcamTools/ToolDistanceMin.py:300 +msgid "Jumped to the half point between the two selected objects" +msgstr "Pulou para o ponto médio entre os dois objetos selecionados" + +#: flatcamTools/ToolExtractDrills.py:29 flatcamTools/ToolExtractDrills.py:295 +msgid "Extract Drills" +msgstr "Extrair Furos" + +#: flatcamTools/ToolExtractDrills.py:62 +msgid "Gerber from which to extract drill holes" +msgstr "Objeto para extrair furos." + +#: flatcamTools/ToolExtractDrills.py:297 +msgid "Extract drills from a given Gerber file." +msgstr "Extrai furos de um arquivo Gerber." + +#: flatcamTools/ToolExtractDrills.py:478 flatcamTools/ToolExtractDrills.py:563 +#: flatcamTools/ToolExtractDrills.py:648 +msgid "No drills extracted. Try different parameters." +msgstr "Nenhum furo extraído. Tente parâmetros diferentes." + +#: flatcamTools/ToolFiducials.py:56 +msgid "Fiducials Coordinates" +msgstr "Coordenadas dos Fiduciais" + +#: flatcamTools/ToolFiducials.py:58 +msgid "" +"A table with the fiducial points coordinates,\n" +"in the format (x, y)." +msgstr "" +"Uma tabela com as coordenadas dos pontos fiduciais,\n" +"no formato (x, y)." + +#: flatcamTools/ToolFiducials.py:99 +msgid "Top Right" +msgstr "Direita Superior" + +#: flatcamTools/ToolFiducials.py:191 +msgid "" +"- 'Auto' - automatic placement of fiducials in the corners of the bounding " +"box.\n" +" - 'Manual' - manual placement of fiducials." +msgstr "" +"- 'Auto' - colocação automática de fiduciais nos cantos da caixa " +"delimitadora.\n" +"- 'Manual' - colocação manual de fiduciais." + +#: flatcamTools/ToolFiducials.py:259 +msgid "Copper Gerber" +msgstr "Gerber Cobre" + +#: flatcamTools/ToolFiducials.py:268 +msgid "Add Fiducial" +msgstr "Adicionar Fiducial" + +#: flatcamTools/ToolFiducials.py:270 +msgid "Will add a polygon on the copper layer to serve as fiducial." +msgstr "Adicionará um polígono na camada de cobre para servir como fiducial." + +#: flatcamTools/ToolFiducials.py:286 +msgid "Soldermask Gerber" +msgstr "Gerber Máscara de Solda" + +#: flatcamTools/ToolFiducials.py:288 +msgid "The Soldermask Gerber object." +msgstr "Objeto Gerber de Máscara de Solda." + +#: flatcamTools/ToolFiducials.py:300 +msgid "Add Soldermask Opening" +msgstr "Adicionar Máscara de Solda" + +#: flatcamTools/ToolFiducials.py:302 +msgid "" +"Will add a polygon on the soldermask layer\n" +"to serve as fiducial opening.\n" +"The diameter is always double of the diameter\n" +"for the copper fiducial." +msgstr "" +"Adicionará um polígono na camada de máscara de solda\n" +"para servir como abertura fiducial.\n" +"O diâmetro é sempre o dobro do diâmetro\n" +"para o fiducial de cobre." + +#: flatcamTools/ToolFiducials.py:516 +msgid "Click to add first Fiducial. Bottom Left..." +msgstr "Clique para adicionar o primeiro Fiducial. Inferior Esquerdo..." + +#: flatcamTools/ToolFiducials.py:780 +msgid "Click to add the last fiducial. Top Right..." +msgstr "Clique para adicionar o último fiducial. Superior Direito..." + +#: flatcamTools/ToolFiducials.py:785 +msgid "Click to add the second fiducial. Top Left or Bottom Right..." +msgstr "" +"Clique para adicionar o segundo fiducial. Superior Esquerdo ou Inferior " +"Direito..." + +#: flatcamTools/ToolFiducials.py:788 flatcamTools/ToolFiducials.py:797 +msgid "Done. All fiducials have been added." +msgstr "Feito. Todos os fiduciais foram adicionados." + +#: flatcamTools/ToolFiducials.py:874 +msgid "Fiducials Tool exit." +msgstr "Sair da ferramenta de fiduciais." + +#: flatcamTools/ToolFilm.py:42 +msgid "Film PCB" +msgstr "Filme PCB" + +#: flatcamTools/ToolFilm.py:78 +msgid "" +"Specify the type of object for which to create the film.\n" +"The object can be of type: Gerber or Geometry.\n" +"The selection here decide the type of objects that will be\n" +"in the Film Object combobox." +msgstr "" +"Especifique o tipo de objeto para o qual criar o filme.\n" +"O objeto pode ser do tipo: Gerber ou Geometria.\n" +"A seleção aqui decide o tipo de objetos que estará\n" +"na caixa de combinação Objeto de Filme." + +#: flatcamTools/ToolFilm.py:92 +msgid "Film Object" +msgstr "Objeto de Filme" + +#: flatcamTools/ToolFilm.py:94 +msgid "Object for which to create the film." +msgstr "Objeto para o qual criar o filme." + +#: flatcamTools/ToolFilm.py:115 +msgid "" +"Specify the type of object to be used as an container for\n" +"film creation. It can be: Gerber or Geometry type.The selection here decide " +"the type of objects that will be\n" +"in the Box Object combobox." +msgstr "" +"Especifique o tipo de objeto a ser usado como um contêiner para a criação " +"de\n" +"filme. Pode ser: tipo Gerber ou Geometria. A seleção aqui decide o tipo de " +"objetos que estará\n" +"na caixa de combinação Objeto Caixa." + +#: flatcamTools/ToolFilm.py:129 +msgid "Box Object" +msgstr "Objeto Caixa" + +#: flatcamTools/ToolFilm.py:131 +msgid "" +"The actual object that is used as container for the\n" +" selected object for which we create the film.\n" +"Usually it is the PCB outline but it can be also the\n" +"same object for which the film is created." +msgstr "" +"O objeto que é usado como um container para o objeto\n" +"selecionado para o qual criamos o filme.\n" +"Normalmente, é o contorno do PCB, mas também pode ser\n" +"do mesmo objeto para o qual o filme é criado." + +#: flatcamTools/ToolFilm.py:273 +msgid "Film Parameters" +msgstr "Parâmetros de Filme" + +#: flatcamTools/ToolFilm.py:334 +msgid "Punch drill holes" +msgstr "Furar manualmente" + +#: flatcamTools/ToolFilm.py:335 +msgid "" +"When checked the generated film will have holes in pads when\n" +"the generated film is positive. This is done to help drilling,\n" +"when done manually." +msgstr "" +"Quando marcado, o filme gerado terá furos nos pads quando\n" +"o filme gerado é positivo. Isso é feito para ajudar na perfuração,\n" +"quando feito manualmente." + +#: flatcamTools/ToolFilm.py:353 +msgid "Source" +msgstr "Fonte" + +#: flatcamTools/ToolFilm.py:355 +msgid "" +"The punch hole source can be:\n" +"- Excellon -> an Excellon holes center will serve as reference.\n" +"- Pad Center -> will try to use the pads center as reference." +msgstr "" +"A fonte do furo pode ser:\n" +"- Excellon -> o centro de um furo Excellon servirá como referência.\n" +"- Centro de Pad -> tentará usar o centro de pads como referência." + +#: flatcamTools/ToolFilm.py:360 +msgid "Pad center" +msgstr "Centro de Pad" + +#: flatcamTools/ToolFilm.py:365 +msgid "Excellon Obj" +msgstr "Objeto Excellon" + +#: flatcamTools/ToolFilm.py:367 +msgid "" +"Remove the geometry of Excellon from the Film to create the holes in pads." +msgstr "Remove a geometria do Excellon do filme para criar os furos nos pads." + +#: flatcamTools/ToolFilm.py:381 +msgid "Punch Size" +msgstr "Tamanho do Perfurador" + +#: flatcamTools/ToolFilm.py:382 +msgid "The value here will control how big is the punch hole in the pads." +msgstr "Valor para controlar o tamanho dos furos dos pads." + +#: flatcamTools/ToolFilm.py:502 +msgid "Save Film" +msgstr "Salvar Filme" + +#: flatcamTools/ToolFilm.py:504 +msgid "" +"Create a Film for the selected object, within\n" +"the specified box. Does not create a new \n" +" FlatCAM object, but directly save it in the\n" +"selected format." +msgstr "" +"Cria um filme para o objeto selecionado, dentro da caixa\n" +"especificada. Não cria um novo objeto\n" +"FlatCAM, mas salva-o diretamente no formato selecionado." + +#: flatcamTools/ToolFilm.py:664 +msgid "" +"Using the Pad center does not work on Geometry objects. Only a Gerber object " +"has pads." +msgstr "" +"O uso de Centro de Pad não funciona em objetos Geometria. Somente um objeto " +"Gerber possui pads." + +#: flatcamTools/ToolFilm.py:674 +msgid "No FlatCAM object selected. Load an object for Film and retry." +msgstr "" +"Nenhum objeto FlatCAM selecionado. Carregue um objeto para Filme e tente " +"novamente." + +#: flatcamTools/ToolFilm.py:681 +msgid "No FlatCAM object selected. Load an object for Box and retry." +msgstr "" +"Nenhum objeto FlatCAM selecionado. Carregue um objeto para Caixa e tente " +"novamente." + +#: flatcamTools/ToolFilm.py:685 +msgid "No FlatCAM object selected." +msgstr "Nenhum objeto FlatCAM selecionado." + +#: flatcamTools/ToolFilm.py:696 +msgid "Generating Film ..." +msgstr "Gerando Filme ..." + +#: flatcamTools/ToolFilm.py:745 flatcamTools/ToolFilm.py:749 +msgid "Export positive film" +msgstr "Exportar filme positivo" + +#: flatcamTools/ToolFilm.py:782 +msgid "" +"No Excellon object selected. Load an object for punching reference and retry." +msgstr "" +"Nenhum objeto Excellon selecionado. Carregue um objeto para referência de " +"perfuração manual e tente novamente." + +#: flatcamTools/ToolFilm.py:806 +msgid "" +" Could not generate punched hole film because the punch hole sizeis bigger " +"than some of the apertures in the Gerber object." +msgstr "" +" Não foi possível gerar o filme de furos manuais porque o tamanho do " +"perfurador é maior que algumas das aberturas no objeto Gerber." + +#: flatcamTools/ToolFilm.py:818 +msgid "" +"Could not generate punched hole film because the punch hole sizeis bigger " +"than some of the apertures in the Gerber object." +msgstr "" +"Não foi possível gerar o filme de furos manuais porque o tamanho do " +"perfurador é maior que algumas das aberturas no objeto Gerber." + +#: flatcamTools/ToolFilm.py:836 +msgid "" +"Could not generate punched hole film because the newly created object " +"geometry is the same as the one in the source object geometry..." +msgstr "" +"Não foi possível gerar o filme de furos manuais porque a geometria do objeto " +"recém-criada é a mesma da geometria do objeto de origem ..." + +#: flatcamTools/ToolFilm.py:891 flatcamTools/ToolFilm.py:895 +msgid "Export negative film" +msgstr "Exportar filme negativo" + +#: flatcamTools/ToolFilm.py:956 flatcamTools/ToolFilm.py:1139 +#: flatcamTools/ToolPanelize.py:430 +msgid "No object Box. Using instead" +msgstr "Nenhuma caixa de objeto. Usando" + +#: flatcamTools/ToolFilm.py:1072 flatcamTools/ToolFilm.py:1252 +msgid "Film file exported to" +msgstr "Arquivo filme exportado para" + +#: flatcamTools/ToolFilm.py:1075 flatcamTools/ToolFilm.py:1255 +msgid "Generating Film ... Please wait." +msgstr "Gerando Filme ... Por favor, aguarde." + +#: flatcamTools/ToolImage.py:24 +msgid "Image as Object" +msgstr "Imagem como Objeto" + +#: flatcamTools/ToolImage.py:33 +msgid "Image to PCB" +msgstr "Imagem para PCB" + +#: flatcamTools/ToolImage.py:56 +msgid "" +"Specify the type of object to create from the image.\n" +"It can be of type: Gerber or Geometry." +msgstr "" +"Especifique o tipo de objeto a ser criado a partir da imagem.\n" +"Pode ser do tipo: Gerber ou Geometria." + +#: flatcamTools/ToolImage.py:65 +msgid "DPI value" +msgstr "Valor de DPI" + +#: flatcamTools/ToolImage.py:66 +msgid "Specify a DPI value for the image." +msgstr "Especifique um valor de DPI (pontos por polegada) para a imagem." + +#: flatcamTools/ToolImage.py:72 +msgid "Level of detail" +msgstr "Nível de detalhe" + +#: flatcamTools/ToolImage.py:81 +msgid "Image type" +msgstr "Tipo de imagem" + +#: flatcamTools/ToolImage.py:83 +msgid "" +"Choose a method for the image interpretation.\n" +"B/W means a black & white image. Color means a colored image." +msgstr "" +"Escolha um método para a interpretação da imagem.\n" +"P/B significa uma imagem em preto e branco. Cor significa uma imagem " +"colorida." + +#: flatcamTools/ToolImage.py:92 flatcamTools/ToolImage.py:107 +#: flatcamTools/ToolImage.py:120 flatcamTools/ToolImage.py:133 +msgid "Mask value" +msgstr "Valor da máscara" + +#: flatcamTools/ToolImage.py:94 +msgid "" +"Mask for monochrome image.\n" +"Takes values between [0 ... 255].\n" +"Decides the level of details to include\n" +"in the resulting geometry.\n" +"0 means no detail and 255 means everything \n" +"(which is totally black)." +msgstr "" +"Máscara para imagem monocromática.\n" +"Valores entre [0 ... 255].\n" +"Define o nível de detalhes para incluir\n" +"na geometria resultante.\n" +"0 significa nenhum detalhe e 255 significa tudo\n" +"(que é totalmente preto)." + +#: flatcamTools/ToolImage.py:109 +msgid "" +"Mask for RED color.\n" +"Takes values between [0 ... 255].\n" +"Decides the level of details to include\n" +"in the resulting geometry." +msgstr "" +"Máscara para a cor VERMELHA.\n" +"Valores entre [0 ... 255].\n" +"Define o nível de detalhes para incluir\n" +"na geometria resultante." + +#: flatcamTools/ToolImage.py:122 +msgid "" +"Mask for GREEN color.\n" +"Takes values between [0 ... 255].\n" +"Decides the level of details to include\n" +"in the resulting geometry." +msgstr "" +"Máscara para a cor VERDE.\n" +"Valores entre [0 ... 255].\n" +"Define o nível de detalhes para incluir\n" +"na geometria resultante." + +#: flatcamTools/ToolImage.py:135 +msgid "" +"Mask for BLUE color.\n" +"Takes values between [0 ... 255].\n" +"Decides the level of details to include\n" +"in the resulting geometry." +msgstr "" +"Máscara para a cor AZUL.\n" +"Valores entre [0 ... 255].\n" +"Define o nível de detalhes para incluir\n" +"na geometria resultante." + +#: flatcamTools/ToolImage.py:143 +msgid "Import image" +msgstr "Importar imagem" + +#: flatcamTools/ToolImage.py:145 +msgid "Open a image of raster type and then import it in FlatCAM." +msgstr "Abre uma imagem do tipo raster e importe-a no FlatCAM." + +#: flatcamTools/ToolImage.py:182 +msgid "Image Tool" +msgstr "Ferramenta de Imagem" + +#: flatcamTools/ToolImage.py:234 flatcamTools/ToolImage.py:237 +msgid "Import IMAGE" +msgstr "Importar IMAGEM" + +#: flatcamTools/ToolImage.py:285 +msgid "Importing Image" +msgstr "Importando Imagem" + +#: flatcamTools/ToolInvertGerber.py:74 +msgid "Gerber object that will be inverted." +msgstr "Objeto Gerber que será invertido." + +#: flatcamTools/ToolInvertGerber.py:83 +msgid "Parameters for this tool" +msgstr "Parâmetros usados para esta ferramenta" + +#: flatcamTools/ToolInvertGerber.py:123 +msgid "Invert Gerber" +msgstr "Inverter Gerber" + +#: flatcamTools/ToolInvertGerber.py:125 +msgid "" +"Will invert the Gerber object: areas that have copper\n" +"will be empty of copper and previous empty area will be\n" +"filled with copper." +msgstr "" +"Inverter o objeto Gerber: áreas que possuem cobre\n" +"ficarão vazias de cobre e a área vazia anterior será\n" +"preenchida com cobre." + +#: flatcamTools/ToolInvertGerber.py:184 +msgid "Invert Tool" +msgstr "Ferramenta Inverter" + +#: flatcamTools/ToolMove.py:102 +msgid "MOVE: Click on the Start point ..." +msgstr "MOVER: Clique no ponto inicial ..." + +#: flatcamTools/ToolMove.py:113 +msgid "Cancelled. No object(s) to move." +msgstr "Cancelado. Nenhum objeto para mover." + +#: flatcamTools/ToolMove.py:140 +msgid "MOVE: Click on the Destination point ..." +msgstr "MOVER: Clique no ponto de destino ..." + +#: flatcamTools/ToolMove.py:163 +msgid "Moving..." +msgstr "Movendo ..." + +#: flatcamTools/ToolMove.py:166 +msgid "No object(s) selected." +msgstr "Nenhum objeto selecionado." + +#: flatcamTools/ToolMove.py:221 +msgid "Error when mouse left click." +msgstr "Erro ao clicar no botão esquerdo do mouse." + +#: flatcamTools/ToolNCC.py:42 +msgid "Non-Copper Clearing" +msgstr "Área Sem Cobre (NCC)" + +#: flatcamTools/ToolNCC.py:88 +msgid "" +"Specify the type of object to be cleared of excess copper.\n" +"It can be of type: Gerber or Geometry.\n" +"What is selected here will dictate the kind\n" +"of objects that will populate the 'Object' combobox." +msgstr "" +"Especifique o tipo de objeto a ser limpo do excesso de cobre.\n" +"Pode ser do tipo: Gerber ou Geometria.\n" +"O tipo selecionado aqui ditará o tipo\n" +"de objetos da caixa de combinação 'Objeto'." + +#: flatcamTools/ToolNCC.py:110 +msgid "Object to be cleared of excess copper." +msgstr "Objeto a retirar o excesso de cobre." + +#: flatcamTools/ToolNCC.py:122 +msgid "" +"Tools pool from which the algorithm\n" +"will pick the ones used for copper clearing." +msgstr "" +"Conjunto de ferramentas do qual o algoritmo\n" +"escolherá para usar na retirada de cobre." + +#: flatcamTools/ToolNCC.py:138 +msgid "" +"This is the Tool Number.\n" +"Non copper clearing will start with the tool with the biggest \n" +"diameter, continuing until there are no more tools.\n" +"Only tools that create NCC clearing geometry will still be present\n" +"in the resulting geometry. This is because with some tools\n" +"this function will not be able to create painting geometry." +msgstr "" +"Este é o Número da Ferramenta.\n" +"A retirada de cobre (NCC) começará com a ferramenta de maior diâmetro,\n" +"continuando até que não haja mais ferramentas. Somente ferramentas\n" +"que criam a geometria de NCC estarão presentes na geometria\n" +"resultante. Isso ocorre porque com algumas ferramentas esta função\n" +"não será capaz de criar geometria de pintura." + +#: flatcamTools/ToolNCC.py:146 +msgid "" +"Tool Diameter. It's value (in current FlatCAM units)\n" +"is the cut width into the material." +msgstr "" +"Diâmetro da ferramenta. É a largura do corte no material.\n" +"(nas unidades atuais do FlatCAM)" + +#: flatcamTools/ToolNCC.py:150 +msgid "" +"The Tool Type (TT) can be:\n" +"- Circular with 1 ... 4 teeth -> it is informative only. Being circular,\n" +"the cut width in material is exactly the tool diameter.\n" +"- Ball -> informative only and make reference to the Ball type endmill.\n" +"- V-Shape -> it will disable Z-Cut parameter in the resulting geometry UI " +"form\n" +"and enable two additional UI form fields in the resulting geometry: V-Tip " +"Dia and\n" +"V-Tip Angle. Adjusting those two values will adjust the Z-Cut parameter " +"such\n" +"as the cut width into material will be equal with the value in the Tool " +"Diameter\n" +"column of this table.\n" +"Choosing the 'V-Shape' Tool Type automatically will select the Operation " +"Type\n" +"in the resulting geometry as Isolation." +msgstr "" +"O Tipo de Ferramenta (TF) pode ser:\n" +"- Circular com 1 ... 4 dentes -> é apenas informativo. Como é circular,\n" +"a largura do corte é igual ao diâmetro da ferramenta.\n" +"- Bola -> apenas informativo e faz referência a uma fresa do tipo bola.\n" +"- Forma em V -> o parâmetro corte Z será desativado no formulário e serão " +"habilitados\n" +"dois campos adicionais: Diâmetro da Ponta-V e Ângulo da Ponta-V.\n" +"Ajustando esses dois parâmetros irá alterar o parâmetro Corte Z como a " +"largura de corte\n" +"no material, será igual ao valor na coluna Diâmetro da Ferramenta desta " +"tabela.\n" +"Escolhendo o tipo \"Forma em V\" automaticamente selecionará o Tipo de " +"Operação Isolação." + +#: flatcamTools/ToolNCC.py:296 flatcamTools/ToolPaint.py:279 +msgid "" +"Add a new tool to the Tool Table\n" +"with the diameter specified above." +msgstr "" +"Adicione uma nova ferramenta à Tabela de Ferramentas\n" +"com o diâmetro especificado." + +#: flatcamTools/ToolNCC.py:318 flatcamTools/ToolPaint.py:301 +#: flatcamTools/ToolSolderPaste.py:130 +msgid "" +"Delete a selection of tools in the Tool Table\n" +"by first selecting a row(s) in the Tool Table." +msgstr "" +"Apague uma seleção de ferramentas na Tabela de Ferramentas selecionando " +"primeiro a(s) linha(s) na Tabela de Ferramentas." + +#: flatcamTools/ToolNCC.py:554 +msgid "" +"The type of FlatCAM object to be used as non copper clearing reference.\n" +"It can be Gerber, Excellon or Geometry." +msgstr "" +"O tipo de objeto FlatCAM a ser usado como referência para retirada de " +"cobre.\n" +"Pode ser Gerber, Excellon ou Geometria." + +#: flatcamTools/ToolNCC.py:597 flatcamTools/ToolPaint.py:537 +msgid "Generate Geometry" +msgstr "Gerar Geometria" + +#: flatcamTools/ToolNCC.py:1425 flatcamTools/ToolPaint.py:1184 +#: flatcamTools/ToolSolderPaste.py:888 +msgid "Please enter a tool diameter to add, in Float format." +msgstr "Insira um diâmetro de ferramenta para adicionar, no formato Flutuante." + +#: flatcamTools/ToolNCC.py:1456 flatcamTools/ToolNCC.py:4013 +#: flatcamTools/ToolPaint.py:1208 flatcamTools/ToolPaint.py:3603 +#: flatcamTools/ToolSolderPaste.py:917 +msgid "Cancelled. Tool already in Tool Table." +msgstr "Cancelada. Ferramenta já está na Tabela de Ferramentas." + +#: flatcamTools/ToolNCC.py:1463 flatcamTools/ToolNCC.py:4030 +#: flatcamTools/ToolPaint.py:1213 flatcamTools/ToolPaint.py:3620 +msgid "New tool added to Tool Table." +msgstr "Nova ferramenta adicionada à Tabela de Ferramentas." + +#: flatcamTools/ToolNCC.py:1507 flatcamTools/ToolPaint.py:1257 +msgid "Tool from Tool Table was edited." +msgstr "A ferramenta da Tabela de Ferramentas foi editada." + +#: flatcamTools/ToolNCC.py:1519 flatcamTools/ToolPaint.py:1269 +#: flatcamTools/ToolSolderPaste.py:978 +msgid "Cancelled. New diameter value is already in the Tool Table." +msgstr "Cancelado. O novo valor de diâmetro já está na tabela de ferramentas." + +#: flatcamTools/ToolNCC.py:1571 flatcamTools/ToolPaint.py:1367 +msgid "Delete failed. Select a tool to delete." +msgstr "Exclusão falhou. Selecione uma ferramenta para excluir." + +#: flatcamTools/ToolNCC.py:1577 flatcamTools/ToolPaint.py:1373 +msgid "Tool(s) deleted from Tool Table." +msgstr "Ferramenta(s) excluída(s) da Tabela de Ferramentas." + +#: flatcamTools/ToolNCC.py:1619 +msgid "Wrong Tool Dia value format entered, use a number." +msgstr "Valor errado para o diâmetro. Use um número." + +#: flatcamTools/ToolNCC.py:1628 flatcamTools/ToolPaint.py:1424 +msgid "No selected tools in Tool Table." +msgstr "Nenhuma ferramenta selecionada na Tabela." + +#: flatcamTools/ToolNCC.py:1704 flatcamTools/ToolPaint.py:1600 +msgid "Click the end point of the paint area." +msgstr "Clique no ponto final da área." + +#: flatcamTools/ToolNCC.py:1976 flatcamTools/ToolNCC.py:2964 +msgid "NCC Tool. Preparing non-copper polygons." +msgstr "Ferramenta NCC. Preparando polígonos." + +#: flatcamTools/ToolNCC.py:2035 flatcamTools/ToolNCC.py:3092 +msgid "NCC Tool. Calculate 'empty' area." +msgstr "Ferramenta NCC. Cálculo de áreas 'vazias'." + +#: flatcamTools/ToolNCC.py:2054 flatcamTools/ToolNCC.py:2160 +#: flatcamTools/ToolNCC.py:2174 flatcamTools/ToolNCC.py:3105 +#: flatcamTools/ToolNCC.py:3210 flatcamTools/ToolNCC.py:3225 +#: flatcamTools/ToolNCC.py:3491 flatcamTools/ToolNCC.py:3592 +#: flatcamTools/ToolNCC.py:3607 +msgid "Buffering finished" +msgstr "Criar Buffer concluído" + +#: flatcamTools/ToolNCC.py:2062 flatcamTools/ToolNCC.py:2181 +#: flatcamTools/ToolNCC.py:3113 flatcamTools/ToolNCC.py:3232 +#: flatcamTools/ToolNCC.py:3498 flatcamTools/ToolNCC.py:3614 +msgid "Could not get the extent of the area to be non copper cleared." +msgstr "Não foi possível obter a extensão da área para retirada de cobre." + +#: flatcamTools/ToolNCC.py:2089 flatcamTools/ToolNCC.py:2167 +#: flatcamTools/ToolNCC.py:3140 flatcamTools/ToolNCC.py:3217 +#: flatcamTools/ToolNCC.py:3518 flatcamTools/ToolNCC.py:3599 +msgid "" +"Isolation geometry is broken. Margin is less than isolation tool diameter." +msgstr "" +"A geometria de isolação está quebrada. A margem é menor que o diâmetro da " +"ferramenta de isolação." + +#: flatcamTools/ToolNCC.py:2184 flatcamTools/ToolNCC.py:3236 +#: flatcamTools/ToolNCC.py:3617 +msgid "The selected object is not suitable for copper clearing." +msgstr "O objeto selecionado não é adequado para retirada de cobre." + +#: flatcamTools/ToolNCC.py:2191 flatcamTools/ToolNCC.py:3243 +msgid "NCC Tool. Finished calculation of 'empty' area." +msgstr "Ferramenta NCC. Cálculo de área 'vazia' concluído." + +#: flatcamTools/ToolNCC.py:2222 flatcamTools/ToolNCC.py:2224 +#: flatcamTools/ToolNCC.py:2916 flatcamTools/ToolNCC.py:2918 +msgid "Non-Copper clearing ..." +msgstr "Retirando cobre da área..." + +#: flatcamTools/ToolNCC.py:2278 flatcamTools/ToolNCC.py:3060 +msgid "" +"NCC Tool. Finished non-copper polygons. Normal copper clearing task started." +msgstr "" +"Ferramenta NCC. Polígonos concluídos. Tarefa de retirada de cobre iniciada." + +#: flatcamTools/ToolNCC.py:2312 flatcamTools/ToolNCC.py:2592 +msgid "NCC Tool failed creating bounding box." +msgstr "A Ferramenta NCC falhou ao criar a caixa delimitadora." + +#: flatcamTools/ToolNCC.py:2326 flatcamTools/ToolNCC.py:2609 +#: flatcamTools/ToolNCC.py:3256 flatcamTools/ToolNCC.py:3642 +msgid "NCC Tool clearing with tool diameter" +msgstr "NCC. Ferramenta com Diâmetro" + +#: flatcamTools/ToolNCC.py:2326 flatcamTools/ToolNCC.py:2609 +#: flatcamTools/ToolNCC.py:3256 flatcamTools/ToolNCC.py:3642 +msgid "started." +msgstr "iniciada." + +#: flatcamTools/ToolNCC.py:2518 flatcamTools/ToolNCC.py:3417 +msgid "" +"There is no NCC Geometry in the file.\n" +"Usually it means that the tool diameter is too big for the painted " +"geometry.\n" +"Change the painting parameters and try again." +msgstr "" +"Não há geometria de retirada de cobre no arquivo.\n" +"Geralmente significa que o diâmetro da ferramenta é muito grande para a " +"geometria pintada.\n" +"Altere os parâmetros de pintura e tente novamente." + +#: flatcamTools/ToolNCC.py:2527 flatcamTools/ToolNCC.py:3426 +msgid "NCC Tool clear all done." +msgstr "Retirada de cobre concluída." + +#: flatcamTools/ToolNCC.py:2530 flatcamTools/ToolNCC.py:3429 +msgid "NCC Tool clear all done but the copper features isolation is broken for" +msgstr "Retirada de cobre concluída, mas a isolação está quebrada por" + +#: flatcamTools/ToolNCC.py:2532 flatcamTools/ToolNCC.py:2817 +#: flatcamTools/ToolNCC.py:3431 flatcamTools/ToolNCC.py:3814 +msgid "tools" +msgstr "ferramentas" + +#: flatcamTools/ToolNCC.py:2813 flatcamTools/ToolNCC.py:3810 +msgid "NCC Tool Rest Machining clear all done." +msgstr "Retirada de cobre por usinagem de descanso concluída." + +#: flatcamTools/ToolNCC.py:2816 flatcamTools/ToolNCC.py:3813 +msgid "" +"NCC Tool Rest Machining clear all done but the copper features isolation is " +"broken for" +msgstr "" +"Retirada de cobre por usinagem de descanso concluída, mas a isolação está " +"quebrada por" + +#: flatcamTools/ToolNCC.py:2928 +msgid "NCC Tool started. Reading parameters." +msgstr "Ferramenta NCC iniciada. Lendo parâmetros." + +#: flatcamTools/ToolNCC.py:3906 +msgid "" +"Try to use the Buffering Type = Full in Preferences -> Gerber General. " +"Reload the Gerber file after this change." +msgstr "" +"Tente usar o Tipo de Buffer = Completo em Preferências -> Gerber Geral." +"Recarregue o arquivo Gerber após esta alteração." + +#: flatcamTools/ToolOptimal.py:79 +msgid "Number of decimals kept for found distances." +msgstr "Número de casas decimais mantido para as distâncias encontradas." + +#: flatcamTools/ToolOptimal.py:87 +msgid "Minimum distance" +msgstr "Distância mínima" + +#: flatcamTools/ToolOptimal.py:88 +msgid "Display minimum distance between copper features." +msgstr "Mostra a distância mínima entre elementos de cobre." + +#: flatcamTools/ToolOptimal.py:92 +msgid "Determined" +msgstr "Determinado" + +#: flatcamTools/ToolOptimal.py:106 +msgid "Occurring" +msgstr "Ocorrendo" + +#: flatcamTools/ToolOptimal.py:107 +msgid "How many times this minimum is found." +msgstr "Quantas vezes o mínimo foi encontrado." + +#: flatcamTools/ToolOptimal.py:113 +msgid "Minimum points coordinates" +msgstr "Coordenadas da distância mínima" + +#: flatcamTools/ToolOptimal.py:114 flatcamTools/ToolOptimal.py:120 +msgid "Coordinates for points where minimum distance was found." +msgstr "Coordenadas dos pontos onde a distância mínima foi encontrada." + +#: flatcamTools/ToolOptimal.py:133 flatcamTools/ToolOptimal.py:209 +msgid "Jump to selected position" +msgstr "Ir para a posição selecionada" + +#: flatcamTools/ToolOptimal.py:135 flatcamTools/ToolOptimal.py:211 +msgid "" +"Select a position in the Locations text box and then\n" +"click this button." +msgstr "" +"Selecione uma posição na caixa de texto Locais e, em seguida,\n" +"clique neste botão." + +#: flatcamTools/ToolOptimal.py:143 +msgid "Other distances" +msgstr "Outras distâncias" + +#: flatcamTools/ToolOptimal.py:144 +msgid "" +"Will display other distances in the Gerber file ordered from\n" +"the minimum to the maximum, not including the absolute minimum." +msgstr "" +"Exibe outras distâncias no arquivo Gerber ordenadas do\n" +"mínimo ao máximo, sem incluir o mínimo absoluto." + +#: flatcamTools/ToolOptimal.py:149 +msgid "Other distances points coordinates" +msgstr "Coordenadas dos pontos das outras distâncias" + +#: flatcamTools/ToolOptimal.py:150 flatcamTools/ToolOptimal.py:164 +#: flatcamTools/ToolOptimal.py:171 flatcamTools/ToolOptimal.py:188 +#: flatcamTools/ToolOptimal.py:195 +msgid "" +"Other distances and the coordinates for points\n" +"where the distance was found." +msgstr "" +"Outras distâncias e coordenadas dos pontos\n" +"onde a distância foi encontrada." + +#: flatcamTools/ToolOptimal.py:163 +msgid "Gerber distances" +msgstr "Distâncias Gerber" + +#: flatcamTools/ToolOptimal.py:187 +msgid "Points coordinates" +msgstr "Coordenadas dos pontos" + +#: flatcamTools/ToolOptimal.py:219 +msgid "Find Minimum" +msgstr "Encontrar o Mínimo" + +#: flatcamTools/ToolOptimal.py:221 +msgid "" +"Calculate the minimum distance between copper features,\n" +"this will allow the determination of the right tool to\n" +"use for isolation or copper clearing." +msgstr "" +"Calcula a distância mínima entre os recursos de cobre.\n" +"Isso permite a determinação da ferramenta certa para\n" +"usar na isolação ou remoção de cobre." + +#: flatcamTools/ToolOptimal.py:346 +msgid "Only Gerber objects can be evaluated." +msgstr "Apenas objetos Gerber podem ser usados." + +#: flatcamTools/ToolOptimal.py:352 +msgid "" +"Optimal Tool. Started to search for the minimum distance between copper " +"features." +msgstr "" +"Ferramenta Ideal. Começou a procurar a distância mínima entre os recursos de " +"cobre." + +#: flatcamTools/ToolOptimal.py:362 +msgid "Optimal Tool. Parsing geometry for aperture" +msgstr "Ferramenta Ideal. Analisando a geometria para abertura" + +#: flatcamTools/ToolOptimal.py:373 +msgid "Optimal Tool. Creating a buffer for the object geometry." +msgstr "Ferramenta Ideal. Criando um buffer para objeto geometria." + +#: flatcamTools/ToolOptimal.py:383 +msgid "" +"The Gerber object has one Polygon as geometry.\n" +"There are no distances between geometry elements to be found." +msgstr "" +"O objeto Gerber possui um polígono como geometria.\n" +"Não há distâncias entre os elementos geométricos a serem encontrados." + +#: flatcamTools/ToolOptimal.py:388 +msgid "" +"Optimal Tool. Finding the distances between each two elements. Iterations" +msgstr "" +"Ferramenta Ideal. Encontrando as distâncias entre cada dois elementos. " +"Iterações" + +#: flatcamTools/ToolOptimal.py:423 +msgid "Optimal Tool. Finding the minimum distance." +msgstr "Ferramenta Ideal. Encontrando a distância mínima." + +#: flatcamTools/ToolOptimal.py:439 +msgid "Optimal Tool. Finished successfully." +msgstr "Ferramenta Ideal. Finalizado com sucesso." + +#: flatcamTools/ToolPDF.py:157 flatcamTools/ToolPDF.py:161 +msgid "Open PDF" +msgstr "Abrir PDF" + +#: flatcamTools/ToolPDF.py:164 +msgid "Open PDF cancelled" +msgstr "Abrir PDF cancelado" + +#: flatcamTools/ToolPDF.py:195 +msgid "Parsing PDF file ..." +msgstr "Analisando arquivo PDF ..." + +#: flatcamTools/ToolPDF.py:278 flatcamTools/ToolPDF.py:353 +#, python-format +msgid "Rendering PDF layer #%d ..." +msgstr "Renderizando camada PDF #%d ..." + +#: flatcamTools/ToolPDF.py:283 flatcamTools/ToolPDF.py:358 +msgid "Open PDF file failed." +msgstr "Falha ao abrir arquivo PDF." + +#: flatcamTools/ToolPDF.py:289 flatcamTools/ToolPDF.py:363 +msgid "Rendered" +msgstr "Processado" + +#: flatcamTools/ToolPaint.py:82 +msgid "" +"Specify the type of object to be painted.\n" +"It can be of type: Gerber or Geometry.\n" +"What is selected here will dictate the kind\n" +"of objects that will populate the 'Object' combobox." +msgstr "" +"Especifique o tipo de objeto a ser pintado.\n" +"Pode ser do tipo: Gerber ou Geometry.\n" +"O que é selecionado aqui irá ditar o tipo\n" +"de objetos que preencherão a caixa de combinação 'Objeto'." + +#: flatcamTools/ToolPaint.py:104 +msgid "Object to be painted." +msgstr "Objeto a ser pintado." + +#: flatcamTools/ToolPaint.py:117 +msgid "" +"Tools pool from which the algorithm\n" +"will pick the ones used for painting." +msgstr "" +"Conjunto de ferramentas do qual o algoritmo\n" +"escolherá para a pintura." + +#: flatcamTools/ToolPaint.py:134 +msgid "" +"This is the Tool Number.\n" +"Painting will start with the tool with the biggest diameter,\n" +"continuing until there are no more tools.\n" +"Only tools that create painting geometry will still be present\n" +"in the resulting geometry. This is because with some tools\n" +"this function will not be able to create painting geometry." +msgstr "" +"Este é o Número da Ferramenta.\n" +"A pintura começará com a ferramenta com o maior diâmetro,\n" +"continuando até que não haja mais ferramentas.\n" +"As únicas ferramentas que criam a geometria da pintura ainda estarão " +"presentes\n" +"na geometria resultante. Isso ocorre porque com algumas ferramentas\n" +"não são capazes de criar geometria de pintura nesta função." + +#: flatcamTools/ToolPaint.py:146 +msgid "" +"The Tool Type (TT) can be:\n" +"- Circular -> it is informative only. Being circular,\n" +"the cut width in material is exactly the tool diameter.\n" +"- Ball -> informative only and make reference to the Ball type endmill.\n" +"- V-Shape -> it will disable Z-Cut parameter in the resulting geometry UI " +"form\n" +"and enable two additional UI form fields in the resulting geometry: V-Tip " +"Dia and\n" +"V-Tip Angle. Adjusting those two values will adjust the Z-Cut parameter " +"such\n" +"as the cut width into material will be equal with the value in the Tool " +"Diameter\n" +"column of this table.\n" +"Choosing the 'V-Shape' Tool Type automatically will select the Operation " +"Type\n" +"in the resulting geometry as Isolation." +msgstr "" +"O Tipo de Ferramenta (TF) pode ser:\n" +"- Circular com 1 ... 4 dentes -> é apenas informativo. Como é circular,\n" +"a largura do corte é igual ao diâmetro da ferramenta.\n" +"- Bola -> apenas informativo e faz referência a uma fresa do tipo bola.\n" +"- Forma em V -> o parâmetro corte Z será desativado no formulário e serão\n" +"habilitados dois campos adicionais: Diâmetro da Ponta-V e Ângulo da Ponta-" +"V.\n" +"Ajustando esses dois parâmetros irá alterar o parâmetro Corte Z como a " +"largura\n" +"de corte no material, será igual ao valor na coluna Diâmetro da Ferramenta " +"desta tabela.\n" +"Escolhendo o tipo \"Forma em V\" automaticamente selecionará o Tipo de " +"Operação Isolação." + +#: flatcamTools/ToolPaint.py:498 +msgid "" +"The type of FlatCAM object to be used as paint reference.\n" +"It can be Gerber, Excellon or Geometry." +msgstr "" +"O tipo de objeto FlatCAM a ser usado como referência de pintura.\n" +"Pode ser Gerber, Excellon ou Geometria." + +#: flatcamTools/ToolPaint.py:539 +msgid "" +"- 'Area Selection' - left mouse click to start selection of the area to be " +"painted.\n" +"Keeping a modifier key pressed (CTRL or SHIFT) will allow to add multiple " +"areas.\n" +"- 'All Polygons' - the Paint will start after click.\n" +"- 'Reference Object' - will do non copper clearing within the area\n" +"specified by another object." +msgstr "" +"- 'Seleção de Área' - clique com o botão esquerdo do mouse para iniciar a " +"seleção da área a ser pintada.\n" +"Manter uma tecla modificadora pressionada (CTRL ou SHIFT) permite adicionar " +"várias áreas.\n" +"- 'Todos os polígonos' - a Pintura será iniciada após o clique.\n" +"- 'Objeto de Referência' - pintará dentro da área do objeto especificado." + +#: flatcamTools/ToolPaint.py:1393 +#, python-format +msgid "Could not retrieve object: %s" +msgstr "Não foi possível recuperar o objeto: %s" + +#: flatcamTools/ToolPaint.py:1403 +msgid "Can't do Paint on MultiGeo geometries" +msgstr "Não é possível pintar geometrias MultiGeo" + +#: flatcamTools/ToolPaint.py:1433 +msgid "Click on a polygon to paint it." +msgstr "Clique em um polígono para pintá-lo." + +#: flatcamTools/ToolPaint.py:1453 +msgid "Click the start point of the paint area." +msgstr "Clique no ponto inicial da área de pintura." + +#: flatcamTools/ToolPaint.py:1518 +msgid "Click to add next polygon or right click to start painting." +msgstr "" +"Clique para adicionar o próximo polígono ou clique com o botão direito do " +"mouse para começar a pintar." + +#: flatcamTools/ToolPaint.py:1531 +msgid "Click to add/remove next polygon or right click to start painting." +msgstr "" +"Clique para adicionar/remover o próximo polígono ou clique com o botão " +"direito do mouse para começar a pintar." + +#: flatcamTools/ToolPaint.py:2029 +msgid "Painting polygon with method: lines." +msgstr "Pintando o polígono com método: linhas." + +#: flatcamTools/ToolPaint.py:2041 +msgid "Failed. Painting polygon with method: seed." +msgstr "Falhou. Pintando o polígono com método: semente." + +#: flatcamTools/ToolPaint.py:2052 +msgid "Failed. Painting polygon with method: standard." +msgstr "Falhou. Pintando o polígono com método: padrão." + +#: flatcamTools/ToolPaint.py:2068 +msgid "Geometry could not be painted completely" +msgstr "A geometria não pode ser pintada completamente" + +#: flatcamTools/ToolPaint.py:2097 flatcamTools/ToolPaint.py:2100 +#: flatcamTools/ToolPaint.py:2108 flatcamTools/ToolPaint.py:2411 +#: flatcamTools/ToolPaint.py:2414 flatcamTools/ToolPaint.py:2422 +#: flatcamTools/ToolPaint.py:2910 flatcamTools/ToolPaint.py:2913 +#: flatcamTools/ToolPaint.py:2919 +msgid "Paint Tool." +msgstr "Ferramenta de Pintura." + +#: flatcamTools/ToolPaint.py:2097 flatcamTools/ToolPaint.py:2100 +#: flatcamTools/ToolPaint.py:2108 +msgid "Normal painting polygon task started." +msgstr "Tarefa normal de pintura de polígono iniciada." + +#: flatcamTools/ToolPaint.py:2098 flatcamTools/ToolPaint.py:2412 +#: flatcamTools/ToolPaint.py:2911 +msgid "Buffering geometry..." +msgstr "Fazendo buffer de polígono..." + +#: flatcamTools/ToolPaint.py:2120 flatcamTools/ToolPaint.py:2429 +#: flatcamTools/ToolPaint.py:2927 +msgid "No polygon found." +msgstr "Nenhum polígono encontrado." + +#: flatcamTools/ToolPaint.py:2150 +msgid "Painting polygon..." +msgstr "Pintando o polígono..." + +#: flatcamTools/ToolPaint.py:2160 flatcamTools/ToolPaint.py:2475 +#: flatcamTools/ToolPaint.py:2665 flatcamTools/ToolPaint.py:2973 +#: flatcamTools/ToolPaint.py:3152 +msgid "Painting with tool diameter = " +msgstr "Pintura com diâmetro = " + +#: flatcamTools/ToolPaint.py:2161 flatcamTools/ToolPaint.py:2476 +#: flatcamTools/ToolPaint.py:2666 flatcamTools/ToolPaint.py:2974 +#: flatcamTools/ToolPaint.py:3153 +msgid "started" +msgstr "iniciada" + +#: flatcamTools/ToolPaint.py:2186 flatcamTools/ToolPaint.py:2502 +#: flatcamTools/ToolPaint.py:2692 flatcamTools/ToolPaint.py:3000 +#: flatcamTools/ToolPaint.py:3179 +msgid "Margin parameter too big. Tool is not used" +msgstr "Parâmetro de margem muito grande. A ferramenta não é usada" + +#: flatcamTools/ToolPaint.py:2244 flatcamTools/ToolPaint.py:2571 +#: flatcamTools/ToolPaint.py:2749 flatcamTools/ToolPaint.py:3063 +#: flatcamTools/ToolPaint.py:3241 +msgid "" +"Could not do Paint. Try a different combination of parameters. Or a " +"different strategy of paint" +msgstr "" +"Não foi possível pintar. Tente uma combinação diferente de parâmetros ou uma " +"estratégia diferente de pintura" + +#: flatcamTools/ToolPaint.py:2301 flatcamTools/ToolPaint.py:2637 +#: flatcamTools/ToolPaint.py:2806 flatcamTools/ToolPaint.py:3124 +#: flatcamTools/ToolPaint.py:3303 +msgid "" +"There is no Painting Geometry in the file.\n" +"Usually it means that the tool diameter is too big for the painted " +"geometry.\n" +"Change the painting parameters and try again." +msgstr "" +"Não há geometria de pintura no arquivo.\n" +"Geralmente significa que o diâmetro da ferramenta é muito grande para a " +"geometria pintada.\n" +"Altere os parâmetros de pintura e tente novamente." + +#: flatcamTools/ToolPaint.py:2324 +msgid "Paint Single failed." +msgstr "Pintura falhou." + +#: flatcamTools/ToolPaint.py:2330 +msgid "Paint Single Done." +msgstr "Pintura concluída." + +#: flatcamTools/ToolPaint.py:2332 flatcamTools/ToolPaint.py:2842 +#: flatcamTools/ToolPaint.py:3339 +msgid "Polygon Paint started ..." +msgstr "Pintura de polígonos iniciada ..." + +#: flatcamTools/ToolPaint.py:2411 flatcamTools/ToolPaint.py:2414 +#: flatcamTools/ToolPaint.py:2422 +msgid "Paint all polygons task started." +msgstr "Tarefa pintar todos os polígonos iniciada." + +#: flatcamTools/ToolPaint.py:2453 flatcamTools/ToolPaint.py:2951 +msgid "Painting polygons..." +msgstr "Pintando políginos..." + +#: flatcamTools/ToolPaint.py:2646 +msgid "Paint All Done." +msgstr "Pintura concluída." + +#: flatcamTools/ToolPaint.py:2815 flatcamTools/ToolPaint.py:3312 +msgid "Paint All with Rest-Machining done." +msgstr "Pintura total com usinagem de descanso concluída." + +#: flatcamTools/ToolPaint.py:2834 +msgid "Paint All failed." +msgstr "Pintura falhou." + +#: flatcamTools/ToolPaint.py:2840 +msgid "Paint Poly All Done." +msgstr "Pinte Todos os Polígonos feitos." + +#: flatcamTools/ToolPaint.py:2910 flatcamTools/ToolPaint.py:2913 +#: flatcamTools/ToolPaint.py:2919 +msgid "Painting area task started." +msgstr "Iniciada a pintura de área." + +#: flatcamTools/ToolPaint.py:3133 +msgid "Paint Area Done." +msgstr "Pintura de Área concluída." + +#: flatcamTools/ToolPaint.py:3331 +msgid "Paint Area failed." +msgstr "Pintura de Área falhou." + +#: flatcamTools/ToolPaint.py:3337 +msgid "Paint Poly Area Done." +msgstr "Pintura de Área concluída." + +#: flatcamTools/ToolPanelize.py:34 +msgid "Panelize PCB" +msgstr "Criar Painel com PCB" + +#: flatcamTools/ToolPanelize.py:56 +msgid "" +"Specify the type of object to be panelized\n" +"It can be of type: Gerber, Excellon or Geometry.\n" +"The selection here decide the type of objects that will be\n" +"in the Object combobox." +msgstr "" +"Especifique o tipo de objeto para criar um painel\n" +"Pode ser do tipo: Gerber, Excellon ou Geometria.\n" +"A seleção aqui decide o tipo de objetos que estarão\n" +"na Caixa de Objetos." + +#: flatcamTools/ToolPanelize.py:89 +msgid "" +"Object to be panelized. This means that it will\n" +"be duplicated in an array of rows and columns." +msgstr "" +"Objeto para criar painel. Isso significa\n" +"que ele será duplicado em uma matriz de linhas e colunas." + +#: flatcamTools/ToolPanelize.py:102 +msgid "Penelization Reference" +msgstr "Referência para Criação de Painel" + +#: flatcamTools/ToolPanelize.py:104 +msgid "" +"Choose the reference for panelization:\n" +"- Object = the bounding box of a different object\n" +"- Bounding Box = the bounding box of the object to be panelized\n" +"\n" +"The reference is useful when doing panelization for more than one\n" +"object. The spacings (really offsets) will be applied in reference\n" +"to this reference object therefore maintaining the panelized\n" +"objects in sync." +msgstr "" +"Escolha a referência para criação do painel:\n" +"- Objeto = a caixa delimitadora de um objeto diferente\n" +"- Caixa Delimitadora = a caixa delimitadora do objeto para criar o painel\n" +"\n" +"A referência é útil ao criar um painel para mais de um objeto.\n" +"Os espaçamentos (deslocamentos) serão aplicados em referência\n" +"a este objeto de referência, portanto, mantendo os objetos\n" +"sincronizados no painel." + +#: flatcamTools/ToolPanelize.py:125 +msgid "Box Type" +msgstr "Tipo de Caixa" + +#: flatcamTools/ToolPanelize.py:127 +msgid "" +"Specify the type of object to be used as an container for\n" +"panelization. It can be: Gerber or Geometry type.\n" +"The selection here decide the type of objects that will be\n" +"in the Box Object combobox." +msgstr "" +"Especifique o tipo de objeto a ser usado como um contêiner para\n" +"o painel criado. Pode ser: tipo Gerber ou Geometria.\n" +"A seleção aqui decide o tipo de objetos que estarão na\n" +"Caixa de Objetos." + +#: flatcamTools/ToolPanelize.py:141 +msgid "" +"The actual object that is used as container for the\n" +" selected object that is to be panelized." +msgstr "" +"O objeto usado como contêiner para o objeto\n" +"selecionado para o qual será criado um painel." + +#: flatcamTools/ToolPanelize.py:147 +msgid "Panel Data" +msgstr "Dados do Painel" + +#: flatcamTools/ToolPanelize.py:149 +msgid "" +"This informations will shape the resulting panel.\n" +"The number of rows and columns will set how many\n" +"duplicates of the original geometry will be generated.\n" +"\n" +"The spacings will set the distance between any two\n" +"elements of the panel array." +msgstr "" +"Essas informações moldarão o painel resultante.\n" +"O número de linhas e colunas definirá quantas\n" +"duplicatas da geometria original serão geradas.\n" +"\n" +"Os espaçamentos definirão a distância entre os\n" +"elementos da matriz do painel." + +#: flatcamTools/ToolPanelize.py:208 +msgid "" +"Choose the type of object for the panel object:\n" +"- Geometry\n" +"- Gerber" +msgstr "" +"Escolha o tipo de objeto para o objeto de painel:\n" +"- Geometria\n" +"- Gerber" + +#: flatcamTools/ToolPanelize.py:216 +msgid "Constrain panel within" +msgstr "Restringir painel dentro de" + +#: flatcamTools/ToolPanelize.py:252 +msgid "Panelize Object" +msgstr "Criar Painel" + +#: flatcamTools/ToolPanelize.py:254 flatcamTools/ToolRulesCheck.py:501 +msgid "" +"Panelize the specified object around the specified box.\n" +"In other words it creates multiple copies of the source object,\n" +"arranged in a 2D array of rows and columns." +msgstr "" +"Cria um painel do objeto especificado ao redor da caixa especificada.\n" +"Em outras palavras, ele cria várias cópias do objeto de origem,\n" +"arranjado em uma matriz 2D de linhas e colunas." + +#: flatcamTools/ToolPanelize.py:322 +msgid "Panel. Tool" +msgstr "Ferramenta de Painel" + +#: flatcamTools/ToolPanelize.py:457 +msgid "Columns or Rows are zero value. Change them to a positive integer." +msgstr "Colunas ou Linhas com valor zero. Altere-os para um inteiro positivo." + +#: flatcamTools/ToolPanelize.py:494 +msgid "Generating panel ... " +msgstr "Gerando painel … " + +#: flatcamTools/ToolPanelize.py:777 +msgid "Generating panel ... Adding the Gerber code." +msgstr "Gerando painel ... Adicionando o código Gerber." + +#: flatcamTools/ToolPanelize.py:785 +msgid "Generating panel... Spawning copies" +msgstr "Gerando painel ... Cópias geradas" + +#: flatcamTools/ToolPanelize.py:792 +msgid "Panel done..." +msgstr "Painel criado..." + +#: flatcamTools/ToolPanelize.py:795 +#, python-brace-format +msgid "" +"{text} Too big for the constrain area. Final panel has {col} columns and " +"{row} rows" +msgstr "" +"{text} Grande demais para a área restrita.. O painel final tem {col} colunas " +"e {row} linhas" + +#: flatcamTools/ToolPanelize.py:804 +msgid "Panel created successfully." +msgstr "Painel criado com sucesso." + +#: flatcamTools/ToolPcbWizard.py:31 +msgid "PcbWizard Import Tool" +msgstr "Ferramenta de Importação PcbWizard" + +#: flatcamTools/ToolPcbWizard.py:40 +msgid "Import 2-file Excellon" +msgstr "Importar Excellon 2-arquivos" + +#: flatcamTools/ToolPcbWizard.py:51 +msgid "Load files" +msgstr "Carregar arquivos" + +#: flatcamTools/ToolPcbWizard.py:57 +msgid "Excellon file" +msgstr "Arquivo Excellon" + +#: flatcamTools/ToolPcbWizard.py:59 +msgid "" +"Load the Excellon file.\n" +"Usually it has a .DRL extension" +msgstr "" +"Carrega o arquivo Excellon.\n" +"Normalmente ele tem uma extensão .DRL" + +#: flatcamTools/ToolPcbWizard.py:65 +msgid "INF file" +msgstr "Arquivo INF" + +#: flatcamTools/ToolPcbWizard.py:67 +msgid "Load the INF file." +msgstr "Carrega o arquivo INF." + +#: flatcamTools/ToolPcbWizard.py:79 +msgid "Tool Number" +msgstr "Número da Ferramenta" + +#: flatcamTools/ToolPcbWizard.py:81 +msgid "Tool diameter in file units." +msgstr "Diâmetro da ferramenta em unidades de arquivo." + +#: flatcamTools/ToolPcbWizard.py:87 +msgid "Excellon format" +msgstr "Formato Excellon" + +#: flatcamTools/ToolPcbWizard.py:95 +msgid "Int. digits" +msgstr "Dígitos Int." + +#: flatcamTools/ToolPcbWizard.py:97 +msgid "The number of digits for the integral part of the coordinates." +msgstr "O número de dígitos da parte inteira das coordenadas." + +#: flatcamTools/ToolPcbWizard.py:104 +msgid "Frac. digits" +msgstr "Dígitos Frac." + +#: flatcamTools/ToolPcbWizard.py:106 +msgid "The number of digits for the fractional part of the coordinates." +msgstr "O número de dígitos para a parte fracionária das coordenadas." + +#: flatcamTools/ToolPcbWizard.py:113 +msgid "No Suppression" +msgstr "Sem supressão" + +#: flatcamTools/ToolPcbWizard.py:114 +msgid "Zeros supp." +msgstr "Sup. Zeros" + +#: flatcamTools/ToolPcbWizard.py:116 +msgid "" +"The type of zeros suppression used.\n" +"Can be of type:\n" +"- LZ = leading zeros are kept\n" +"- TZ = trailing zeros are kept\n" +"- No Suppression = no zero suppression" +msgstr "" +"O tipo de supressão de zeros usado.\n" +"Pode ser do tipo:\n" +"- LZ = zeros à esquerda são mantidos\n" +"- TZ = zeros à direita são mantidos\n" +"- Sem supressão = sem supressão de zeros" + +#: flatcamTools/ToolPcbWizard.py:129 +msgid "" +"The type of units that the coordinates and tool\n" +"diameters are using. Can be INCH or MM." +msgstr "" +"A unidade para as coordenadas e os diâmetros\n" +"de ferramentas. Pode ser Polegada ou mm." + +#: flatcamTools/ToolPcbWizard.py:136 +msgid "Import Excellon" +msgstr "Importar Excellon" + +#: flatcamTools/ToolPcbWizard.py:138 +msgid "" +"Import in FlatCAM an Excellon file\n" +"that store it's information's in 2 files.\n" +"One usually has .DRL extension while\n" +"the other has .INF extension." +msgstr "" +"Importa no FlatCAM um arquivo Excellon\n" +"que armazena suas informações em 2 arquivos.\n" +"Um geralmente possui extensão .DRL e o outro tem extensão .INF." + +#: flatcamTools/ToolPcbWizard.py:197 +msgid "PCBWizard Tool" +msgstr "Ferramenta PCBWizard" + +#: flatcamTools/ToolPcbWizard.py:291 flatcamTools/ToolPcbWizard.py:295 +msgid "Load PcbWizard Excellon file" +msgstr "Carregar o arquivo PCBWizard Excellon" + +#: flatcamTools/ToolPcbWizard.py:314 flatcamTools/ToolPcbWizard.py:318 +msgid "Load PcbWizard INF file" +msgstr "Carregar arquivo PCBWizard INF" + +#: flatcamTools/ToolPcbWizard.py:366 +msgid "" +"The INF file does not contain the tool table.\n" +"Try to open the Excellon file from File -> Open -> Excellon\n" +"and edit the drill diameters manually." +msgstr "" +"O arquivo INF não contém a tabela de ferramentas.\n" +"Tente abrir o arquivo Excellon em Arquivo -> Abrir -> Excellon\n" +"e edite os diâmetros dos furos manualmente." + +#: flatcamTools/ToolPcbWizard.py:387 +msgid "PcbWizard .INF file loaded." +msgstr "Arquivo PcbWizard .INF carregado." + +#: flatcamTools/ToolPcbWizard.py:392 +msgid "Main PcbWizard Excellon file loaded." +msgstr "Arquivo PcbWizard Excellon carregado." + +#: flatcamTools/ToolPcbWizard.py:427 +msgid "Cannot parse file" +msgstr "Não é possível analisar o arquivo" + +#: flatcamTools/ToolPcbWizard.py:450 +msgid "Importing Excellon." +msgstr "Importando Excellon." + +#: flatcamTools/ToolPcbWizard.py:457 +msgid "Import Excellon file failed." +msgstr "Falha na importação do arquivo Excellon." + +#: flatcamTools/ToolPcbWizard.py:464 +msgid "Imported" +msgstr "Importado" + +#: flatcamTools/ToolPcbWizard.py:467 +msgid "Excellon merging is in progress. Please wait..." +msgstr "A união Excellon está em andamento. Por favor, espere..." + +#: flatcamTools/ToolPcbWizard.py:469 +msgid "The imported Excellon file is empty." +msgstr "O arquivo Excellon importado está Vazio." + +#: flatcamTools/ToolProperties.py:131 +msgid "Object Properties are displayed." +msgstr "Propriedades do Objeto exibidas." + +#: flatcamTools/ToolProperties.py:136 +msgid "Properties Tool" +msgstr "Ferramenta Propriedades" + +#: flatcamTools/ToolProperties.py:150 +msgid "TYPE" +msgstr "TIPO" + +#: flatcamTools/ToolProperties.py:151 +msgid "NAME" +msgstr "NOME" + +#: flatcamTools/ToolProperties.py:153 +msgid "Dimensions" +msgstr "Dimensões" + +#: flatcamTools/ToolProperties.py:181 +msgid "Geo Type" +msgstr "Tipo Geo" + +#: flatcamTools/ToolProperties.py:184 +msgid "Single-Geo" +msgstr "Geo. Única" + +#: flatcamTools/ToolProperties.py:185 +msgid "Multi-Geo" +msgstr "Geo. Múltipla" + +#: flatcamTools/ToolProperties.py:196 +msgid "Calculating dimensions ... Please wait." +msgstr "Calculando dimensões ... Por favor, espere." + +#: flatcamTools/ToolProperties.py:339 flatcamTools/ToolProperties.py:343 +#: flatcamTools/ToolProperties.py:345 +msgid "Inch" +msgstr "Polegada" + +#: flatcamTools/ToolProperties.py:339 flatcamTools/ToolProperties.py:344 +#: flatcamTools/ToolProperties.py:346 +msgid "Metric" +msgstr "Métrico" + +#: flatcamTools/ToolProperties.py:421 flatcamTools/ToolProperties.py:486 +msgid "Drills number" +msgstr "Número de furos" + +#: flatcamTools/ToolProperties.py:422 flatcamTools/ToolProperties.py:488 +msgid "Slots number" +msgstr "Número de Ranhuras" + +#: flatcamTools/ToolProperties.py:424 +msgid "Drills total number:" +msgstr "Número total de furos:" + +#: flatcamTools/ToolProperties.py:425 +msgid "Slots total number:" +msgstr "Número total de ranhuras:" + +#: flatcamTools/ToolProperties.py:452 flatcamTools/ToolProperties.py:455 +#: flatcamTools/ToolProperties.py:458 flatcamTools/ToolProperties.py:483 +msgid "Present" +msgstr "Presente" + +#: flatcamTools/ToolProperties.py:453 flatcamTools/ToolProperties.py:484 +msgid "Solid Geometry" +msgstr "Geometria Sólida" + +#: flatcamTools/ToolProperties.py:456 +msgid "GCode Text" +msgstr "Texto G-Code" + +#: flatcamTools/ToolProperties.py:459 +msgid "GCode Geometry" +msgstr "Geometria G-Code" + +#: flatcamTools/ToolProperties.py:462 +msgid "Data" +msgstr "Dados" + +#: flatcamTools/ToolProperties.py:495 +msgid "Depth of Cut" +msgstr "Profundidade de Corte" + +#: flatcamTools/ToolProperties.py:507 +msgid "Clearance Height" +msgstr "Altura do Espaço" + +#: flatcamTools/ToolProperties.py:539 +msgid "Routing time" +msgstr "Tempo de roteamento" + +#: flatcamTools/ToolProperties.py:546 +msgid "Travelled distance" +msgstr "Distância percorrida" + +#: flatcamTools/ToolProperties.py:564 +msgid "Width" +msgstr "Largura" + +#: flatcamTools/ToolProperties.py:570 flatcamTools/ToolProperties.py:578 +msgid "Box Area" +msgstr "Área da Caixa" + +#: flatcamTools/ToolProperties.py:573 flatcamTools/ToolProperties.py:581 +msgid "Convex_Hull Area" +msgstr "Área Convexa do Casco" + +#: flatcamTools/ToolProperties.py:588 flatcamTools/ToolProperties.py:591 +msgid "Copper Area" +msgstr "Área de Cobre" + +#: flatcamTools/ToolPunchGerber.py:30 flatcamTools/ToolPunchGerber.py:323 +msgid "Punch Gerber" +msgstr "Gerber a Furar" + +#: flatcamTools/ToolPunchGerber.py:65 +msgid "Gerber into which to punch holes" +msgstr "Gerber no qual fazer furos" + +#: flatcamTools/ToolPunchGerber.py:85 +msgid "ALL" +msgstr "TODOS" + +#: flatcamTools/ToolPunchGerber.py:166 +msgid "" +"Remove the geometry of Excellon from the Gerber to create the holes in pads." +msgstr "Remove a geometria do Excellon do Gerber para criar os furos nos pads." + +#: flatcamTools/ToolPunchGerber.py:325 +msgid "" +"Create a Gerber object from the selected object, within\n" +"the specified box." +msgstr "" +"Cria um objeto Gerber a partir do objeto selecionado, dentro\n" +"da caixa especificada." + +#: flatcamTools/ToolPunchGerber.py:425 +msgid "Punch Tool" +msgstr "Ferramenta de Furos" + +#: flatcamTools/ToolPunchGerber.py:599 +msgid "The value of the fixed diameter is 0.0. Aborting." +msgstr "O valor do diâmetro fixo é 0.0. Abortando." + +#: flatcamTools/ToolPunchGerber.py:607 flatcamTools/ToolPunchGerber.py:619 +msgid "" +"Could not generate punched hole Gerber because the punch hole size is bigger " +"than some of the apertures in the Gerber object." +msgstr "" +"Não foi possível gerar o Gerber dos furos porque o tamanho do perfurador é " +"maior que algumas das aberturas no objeto Gerber." + +#: flatcamTools/ToolPunchGerber.py:656 +msgid "" +"Could not generate punched hole Gerber because the newly created object " +"geometry is the same as the one in the source object geometry..." +msgstr "" +"Não foi possível gerar o Gerber dos furos porque a geometria do objeto recém-" +"criada é a mesma da geometria do objeto de origem ..." + +#: flatcamTools/ToolQRCode.py:80 +msgid "Gerber Object to which the QRCode will be added." +msgstr "Objeto Gerber ao qual o QRCode será adicionado." + +#: flatcamTools/ToolQRCode.py:93 +msgid "QRCode Parameters" +msgstr "Parâmetros de QRCode" + +#: flatcamTools/ToolQRCode.py:95 +msgid "The parameters used to shape the QRCode." +msgstr "Os parâmetros usados para modelar o QRCode." + +#: flatcamTools/ToolQRCode.py:207 +msgid "Export QRCode" +msgstr "Exportar QRCode" + +#: flatcamTools/ToolQRCode.py:209 +msgid "" +"Show a set of controls allowing to export the QRCode\n" +"to a SVG file or an PNG file." +msgstr "" +"Mostrar um conjunto de controles que permitem exportar o QRCode\n" +"para um arquivo SVG ou PNG." + +#: flatcamTools/ToolQRCode.py:248 +msgid "Transparent back color" +msgstr "Cor transparente de fundo" + +#: flatcamTools/ToolQRCode.py:273 +msgid "Export QRCode SVG" +msgstr "Exportar QRCode SVG" + +#: flatcamTools/ToolQRCode.py:275 +msgid "Export a SVG file with the QRCode content." +msgstr "Exporta um arquivo SVG com o conteúdo QRCode." + +#: flatcamTools/ToolQRCode.py:286 +msgid "Export QRCode PNG" +msgstr "Exportar QRCode PNG" + +#: flatcamTools/ToolQRCode.py:288 +msgid "Export a PNG image file with the QRCode content." +msgstr "Exporta um arquivo PNG com o conteúdo QRCode." + +#: flatcamTools/ToolQRCode.py:299 +msgid "Insert QRCode" +msgstr "Inserir QRCode" + +#: flatcamTools/ToolQRCode.py:301 +msgid "Create the QRCode object." +msgstr "Cria o objeto QRCode." + +#: flatcamTools/ToolQRCode.py:415 flatcamTools/ToolQRCode.py:750 +#: flatcamTools/ToolQRCode.py:799 +msgid "Cancelled. There is no QRCode Data in the text box." +msgstr "Cancelado. Não há dados para o QRCode na caixa de texto." + +#: flatcamTools/ToolQRCode.py:434 +msgid "Generating QRCode geometry" +msgstr "Gerando Geometria QRCode" + +#: flatcamTools/ToolQRCode.py:474 +msgid "Click on the Destination point ..." +msgstr "Clique no ponto de destino ..." + +#: flatcamTools/ToolQRCode.py:589 +msgid "QRCode Tool done." +msgstr "Ferramenta QRCode pronta." + +#: flatcamTools/ToolQRCode.py:782 flatcamTools/ToolQRCode.py:786 +msgid "Export PNG" +msgstr "Exportar PNG" + +#: flatcamTools/ToolRulesCheck.py:33 +msgid "Check Rules" +msgstr "Verificar Regras" + +#: flatcamTools/ToolRulesCheck.py:61 +msgid "Gerber Files" +msgstr "Arquivos Gerber" + +#: flatcamTools/ToolRulesCheck.py:63 +msgid "Gerber objects for which to check rules." +msgstr "Objeto para o qual verificar regras." + +#: flatcamTools/ToolRulesCheck.py:78 +msgid "Top" +msgstr "Topo" + +#: flatcamTools/ToolRulesCheck.py:80 +msgid "The Top Gerber Copper object for which rules are checked." +msgstr "Camada Gerber Superior para verificar regras." + +#: flatcamTools/ToolRulesCheck.py:96 +msgid "Bottom" +msgstr "Baixo" + +#: flatcamTools/ToolRulesCheck.py:98 +msgid "The Bottom Gerber Copper object for which rules are checked." +msgstr "Camada Gerber Inferior para verificar regras." + +#: flatcamTools/ToolRulesCheck.py:114 +msgid "SM Top" +msgstr "MS Topo" + +#: flatcamTools/ToolRulesCheck.py:116 +msgid "The Top Gerber Solder Mask object for which rules are checked." +msgstr "Máscara de Solda Superior para verificar regras." + +#: flatcamTools/ToolRulesCheck.py:132 +msgid "SM Bottom" +msgstr "MS Baixo" + +#: flatcamTools/ToolRulesCheck.py:134 +msgid "The Bottom Gerber Solder Mask object for which rules are checked." +msgstr "Máscara de Solda Inferior para verificar regras." + +#: flatcamTools/ToolRulesCheck.py:150 +msgid "Silk Top" +msgstr "Silk Topo" + +#: flatcamTools/ToolRulesCheck.py:152 +msgid "The Top Gerber Silkscreen object for which rules are checked." +msgstr "Silkscreen Superior para verificar regras." + +#: flatcamTools/ToolRulesCheck.py:168 +msgid "Silk Bottom" +msgstr "Silk Baixo" + +#: flatcamTools/ToolRulesCheck.py:170 +msgid "The Bottom Gerber Silkscreen object for which rules are checked." +msgstr "Silkscreen Inferior para verificar regras." + +#: flatcamTools/ToolRulesCheck.py:188 +msgid "The Gerber Outline (Cutout) object for which rules are checked." +msgstr "Objeto Gerber de Contorno (Recorte) para verificar regras." + +#: flatcamTools/ToolRulesCheck.py:199 +msgid "Excellon Objects" +msgstr "Objetos Excellon" + +#: flatcamTools/ToolRulesCheck.py:201 +msgid "Excellon objects for which to check rules." +msgstr "Objetos Excellon para verificar regras." + +#: flatcamTools/ToolRulesCheck.py:213 +msgid "Excellon 1" +msgstr "Excellon 1" + +#: flatcamTools/ToolRulesCheck.py:215 +msgid "" +"Excellon object for which to check rules.\n" +"Holds the plated holes or a general Excellon file content." +msgstr "" +"Objeto Excellon para verificar regras.\n" +"Contém os furos galvanizados ou um conteúdo geral do arquivo Excellon." + +#: flatcamTools/ToolRulesCheck.py:232 +msgid "Excellon 2" +msgstr "Excellon 2" + +#: flatcamTools/ToolRulesCheck.py:234 +msgid "" +"Excellon object for which to check rules.\n" +"Holds the non-plated holes." +msgstr "" +"Objeto Excellon para verificar regras.\n" +"Contém os furos não galvanizados." + +#: flatcamTools/ToolRulesCheck.py:247 +msgid "All Rules" +msgstr "Todas as Regras" + +#: flatcamTools/ToolRulesCheck.py:249 +msgid "This check/uncheck all the rules below." +msgstr "Seleciona/deseleciona todas as regras abaixo." + +#: flatcamTools/ToolRulesCheck.py:499 +msgid "Run Rules Check" +msgstr "Avaliar Regras" + +#: flatcamTools/ToolRulesCheck.py:1158 flatcamTools/ToolRulesCheck.py:1218 +#: flatcamTools/ToolRulesCheck.py:1255 flatcamTools/ToolRulesCheck.py:1327 +#: flatcamTools/ToolRulesCheck.py:1381 flatcamTools/ToolRulesCheck.py:1419 +#: flatcamTools/ToolRulesCheck.py:1484 +msgid "Value is not valid." +msgstr "Valor inválido." + +#: flatcamTools/ToolRulesCheck.py:1172 +msgid "TOP -> Copper to Copper clearance" +msgstr "TOPO -> Espaço Cobre Cobre" + +#: flatcamTools/ToolRulesCheck.py:1183 +msgid "BOTTOM -> Copper to Copper clearance" +msgstr "BAIXO -> Espaço Cobre Cobre" + +#: flatcamTools/ToolRulesCheck.py:1188 flatcamTools/ToolRulesCheck.py:1282 +#: flatcamTools/ToolRulesCheck.py:1446 +msgid "" +"At least one Gerber object has to be selected for this rule but none is " +"selected." +msgstr "" +"Pelo menos um objeto Gerber deve ser selecionado para esta regra, mas nenhum " +"está selecionado." + +#: flatcamTools/ToolRulesCheck.py:1224 +msgid "" +"One of the copper Gerber objects or the Outline Gerber object is not valid." +msgstr "" +"Um dos objetos Gerber de cobre ou o objeto Gerber de Contorno não é válido." + +#: flatcamTools/ToolRulesCheck.py:1237 flatcamTools/ToolRulesCheck.py:1401 +msgid "" +"Outline Gerber object presence is mandatory for this rule but it is not " +"selected." +msgstr "" +"A presença do objeto Gerber de Contorno é obrigatória para esta regra, mas " +"não está selecionada." + +#: flatcamTools/ToolRulesCheck.py:1254 flatcamTools/ToolRulesCheck.py:1281 +msgid "Silk to Silk clearance" +msgstr "Espaço Silk Silk" + +#: flatcamTools/ToolRulesCheck.py:1267 +msgid "TOP -> Silk to Silk clearance" +msgstr "TOPO -> Espaço Silk Silk" + +#: flatcamTools/ToolRulesCheck.py:1277 +msgid "BOTTOM -> Silk to Silk clearance" +msgstr "BAIXO -> Espaço Silk Silk" + +#: flatcamTools/ToolRulesCheck.py:1333 +msgid "One or more of the Gerber objects is not valid." +msgstr "Um ou mais dos objetos Gerber não são válidos." + +#: flatcamTools/ToolRulesCheck.py:1341 +msgid "TOP -> Silk to Solder Mask Clearance" +msgstr "TOPO -> Espaço Silk Máscara de Solda" + +#: flatcamTools/ToolRulesCheck.py:1347 +msgid "BOTTOM -> Silk to Solder Mask Clearance" +msgstr "BAIXO -> Espaço Silk Máscara de Solda" + +#: flatcamTools/ToolRulesCheck.py:1351 +msgid "" +"Both Silk and Solder Mask Gerber objects has to be either both Top or both " +"Bottom." +msgstr "" +"Os objetos Gerber de Silkscreen e da Máscara de Solda devem estar no mesmo " +"lado: superior ou inferior." + +#: flatcamTools/ToolRulesCheck.py:1387 +msgid "" +"One of the Silk Gerber objects or the Outline Gerber object is not valid." +msgstr "Um dos objetos do Gerber não é válido: Silkscreen ou Contorno." + +#: flatcamTools/ToolRulesCheck.py:1431 +msgid "TOP -> Minimum Solder Mask Sliver" +msgstr "TOPO -> Máscara de Solda Mínima" + +#: flatcamTools/ToolRulesCheck.py:1441 +msgid "BOTTOM -> Minimum Solder Mask Sliver" +msgstr "BAIXO -> Máscara de Solda Mínima" + +#: flatcamTools/ToolRulesCheck.py:1490 +msgid "One of the Copper Gerber objects or the Excellon objects is not valid." +msgstr "Um dos objetos não é válido: Gerber Cobre ou Excellon." + +#: flatcamTools/ToolRulesCheck.py:1506 +msgid "" +"Excellon object presence is mandatory for this rule but none is selected." +msgstr "" +"A presença de objeto Excellon é obrigatória para esta regra, mas nenhum está " +"selecionado." + +#: flatcamTools/ToolRulesCheck.py:1579 flatcamTools/ToolRulesCheck.py:1592 +#: flatcamTools/ToolRulesCheck.py:1603 flatcamTools/ToolRulesCheck.py:1616 +msgid "STATUS" +msgstr "ESTADO" + +#: flatcamTools/ToolRulesCheck.py:1582 flatcamTools/ToolRulesCheck.py:1606 +msgid "FAILED" +msgstr "FALHOU" + +#: flatcamTools/ToolRulesCheck.py:1595 flatcamTools/ToolRulesCheck.py:1619 +msgid "PASSED" +msgstr "PASSOU" + +#: flatcamTools/ToolRulesCheck.py:1596 flatcamTools/ToolRulesCheck.py:1620 +msgid "Violations: There are no violations for the current rule." +msgstr "Violações: não há violações para a regra atual." + +#: flatcamTools/ToolShell.py:74 flatcamTools/ToolShell.py:76 +msgid "...processing..." +msgstr "...processando..." + +#: flatcamTools/ToolSolderPaste.py:37 +msgid "Solder Paste Tool" +msgstr "Pasta de Solda" + +#: flatcamTools/ToolSolderPaste.py:69 +msgid "Gerber Solder paste object. " +msgstr "Objeto Gerber de Pasta de Solda. " + +#: flatcamTools/ToolSolderPaste.py:76 +msgid "" +"Tools pool from which the algorithm\n" +"will pick the ones used for dispensing solder paste." +msgstr "" +"Conjunto de ferramentas a partir do qual o algoritmo selecionará para " +"distribuir pasta de solda." + +#: flatcamTools/ToolSolderPaste.py:91 +msgid "" +"This is the Tool Number.\n" +"The solder dispensing will start with the tool with the biggest \n" +"diameter, continuing until there are no more Nozzle tools.\n" +"If there are no longer tools but there are still pads not covered\n" +" with solder paste, the app will issue a warning message box." +msgstr "" +"Este é o número da ferramenta.\n" +"A colocação de pasta de solda começa com a ferramenta com o maior diâmetro,\n" +"continuando até que não haja mais ferramentas do bico.\n" +"Se não houver mais ferramentas, mas ainda houver blocos não cobertos\n" +"com pasta de solda, o aplicativo emitirá uma caixa de mensagem de aviso." + +#: flatcamTools/ToolSolderPaste.py:98 +msgid "" +"Nozzle tool Diameter. It's value (in current FlatCAM units)\n" +"is the width of the solder paste dispensed." +msgstr "" +"Diâmetro do bico da ferramenta. É o valor (em unidades FlatCAM atuais)\n" +"da largura da pasta de solda dispensada." + +#: flatcamTools/ToolSolderPaste.py:105 +msgid "New Nozzle Tool" +msgstr "Nova Ferramenta de Bico" + +#: flatcamTools/ToolSolderPaste.py:124 +msgid "" +"Add a new nozzle tool to the Tool Table\n" +"with the diameter specified above." +msgstr "" +"Adiciona uma nova ferramenta de bico à tabela de ferramentas\n" +"com o diâmetro especificado acima." + +#: flatcamTools/ToolSolderPaste.py:136 +msgid "Generate solder paste dispensing geometry." +msgstr "Gerar geometria de distribuição de pasta de solda." + +#: flatcamTools/ToolSolderPaste.py:155 +msgid "STEP 1" +msgstr "PASSO 1" + +#: flatcamTools/ToolSolderPaste.py:157 +msgid "" +"First step is to select a number of nozzle tools for usage\n" +"and then optionally modify the GCode parameters below." +msgstr "" +"O primeiro passo é selecionar um número de ferramentas de bico para usar,\n" +"e opcionalmente, modificar os parâmetros do G-Code abaixo." + +#: flatcamTools/ToolSolderPaste.py:160 +msgid "" +"Select tools.\n" +"Modify parameters." +msgstr "" +"Selecione ferramentas.\n" +"Modifique os parâmetros." + +#: flatcamTools/ToolSolderPaste.py:280 +msgid "" +"Feedrate (speed) while moving up vertically\n" +" to Dispense position (on Z plane)." +msgstr "" +"Avanço (velocidade) enquanto sobe verticalmente\n" +"para a posição Dispensar (no plano Z)." + +#: flatcamTools/ToolSolderPaste.py:350 +msgid "" +"Generate GCode for Solder Paste dispensing\n" +"on PCB pads." +msgstr "" +"Gera o G-Code para dispensar pasta de solda\n" +"nos pads da PCB." + +#: flatcamTools/ToolSolderPaste.py:371 +msgid "STEP 2" +msgstr "PASSO 2" + +#: flatcamTools/ToolSolderPaste.py:373 +msgid "" +"Second step is to create a solder paste dispensing\n" +"geometry out of an Solder Paste Mask Gerber file." +msgstr "" +"O segundo passo é criar uma geometria de distribuição de pasta de solda\n" +"de um arquivo Gerber Máscara de Pasta de Solda." + +#: flatcamTools/ToolSolderPaste.py:390 +msgid "Geo Result" +msgstr "Geo Result" + +#: flatcamTools/ToolSolderPaste.py:392 +msgid "" +"Geometry Solder Paste object.\n" +"The name of the object has to end in:\n" +"'_solderpaste' as a protection." +msgstr "" +"Objeto de Geometria Pasta de Solda.\n" +"Como proteção, o nome do objeto deve terminar com: \n" +"'_solderpaste'." + +#: flatcamTools/ToolSolderPaste.py:401 +msgid "STEP 3" +msgstr "PASSO 3" + +#: flatcamTools/ToolSolderPaste.py:403 +msgid "" +"Third step is to select a solder paste dispensing geometry,\n" +"and then generate a CNCJob object.\n" +"\n" +"REMEMBER: if you want to create a CNCJob with new parameters,\n" +"first you need to generate a geometry with those new params,\n" +"and only after that you can generate an updated CNCJob." +msgstr "" +"O terceiro passo é selecionar uma geometria dispensadora de pasta de solda,\n" +"e então gerar um objeto de Trabalho CNC.\n" +"\n" +"LEMBRE: se você quiser criar um Trabalho CNC com novos parâmetros,\n" +" primeiro você precisa gerar uma geometria com esses novos parâmetros,\n" +"e só depois disso você pode gerar um Trabalho CNC atualizado." + +#: flatcamTools/ToolSolderPaste.py:424 +msgid "CNC Result" +msgstr "Resultado CNC" + +#: flatcamTools/ToolSolderPaste.py:426 +msgid "" +"CNCJob Solder paste object.\n" +"In order to enable the GCode save section,\n" +"the name of the object has to end in:\n" +"'_solderpaste' as a protection." +msgstr "" +"Objeto Trabalho CNC Pasta de Solda.\n" +"Como proteção, para habilitar a seção de salvar o G-Code,\n" +"o nome do objeto tem que terminar com:\n" +"'_solderpaste'." + +#: flatcamTools/ToolSolderPaste.py:436 +msgid "View GCode" +msgstr "Ver G-Code" + +#: flatcamTools/ToolSolderPaste.py:438 +msgid "" +"View the generated GCode for Solder Paste dispensing\n" +"on PCB pads." +msgstr "" +"Ver o G-Code gerado para dispensação de pasta de solda\n" +"nos pads da PCB." + +#: flatcamTools/ToolSolderPaste.py:448 +msgid "Save GCode" +msgstr "Salvar o G-Code" + +#: flatcamTools/ToolSolderPaste.py:450 +msgid "" +"Save the generated GCode for Solder Paste dispensing\n" +"on PCB pads, to a file." +msgstr "" +"Salva o G-Code gerado para distribuição de pasta de solda\n" +"nos pads de PCB, em um arquivo." + +#: flatcamTools/ToolSolderPaste.py:460 +msgid "STEP 4" +msgstr "PASSO 4" + +#: flatcamTools/ToolSolderPaste.py:462 +msgid "" +"Fourth step (and last) is to select a CNCJob made from \n" +"a solder paste dispensing geometry, and then view/save it's GCode." +msgstr "" +"O quarto (e último) passo é selecionar um Trabalho CNC feito de\n" +"uma geometria de distribuição de pasta de solda e, em seguida, visualizar/" +"salvar o G-Code." + +#: flatcamTools/ToolSolderPaste.py:922 +msgid "New Nozzle tool added to Tool Table." +msgstr "Nova Ferramenta Bocal adicionada à tabela de ferramentas." + +#: flatcamTools/ToolSolderPaste.py:965 +msgid "Nozzle tool from Tool Table was edited." +msgstr "A ferramenta do bocal da tabela de ferramentas foi editada." + +#: flatcamTools/ToolSolderPaste.py:1024 +msgid "Delete failed. Select a Nozzle tool to delete." +msgstr "Exclusão falhou. Selecione uma ferramenta bico para excluir." + +#: flatcamTools/ToolSolderPaste.py:1030 +msgid "Nozzle tool(s) deleted from Tool Table." +msgstr "Ferramenta(s) de bico excluída(s) da tabela de ferramentas." + +#: flatcamTools/ToolSolderPaste.py:1086 +msgid "No SolderPaste mask Gerber object loaded." +msgstr "Nenhum objeto Gerber de máscara de Pasta de Solda carregado." + +#: flatcamTools/ToolSolderPaste.py:1104 +msgid "Creating Solder Paste dispensing geometry." +msgstr "Criação da geometria de distribuição da pasta de solda." + +#: flatcamTools/ToolSolderPaste.py:1117 +msgid "No Nozzle tools in the tool table." +msgstr "Nenhuma ferramenta de Bico na tabela de ferramentas." + +#: flatcamTools/ToolSolderPaste.py:1243 +msgid "Cancelled. Empty file, it has no geometry..." +msgstr "Cancelado. Arquivo vazio, não há geometria..." + +#: flatcamTools/ToolSolderPaste.py:1246 +msgid "Solder Paste geometry generated successfully" +msgstr "Geometria da pasta de solda gerada com sucesso" + +#: flatcamTools/ToolSolderPaste.py:1253 +msgid "Some or all pads have no solder due of inadequate nozzle diameters..." +msgstr "" +"Alguns ou todos os pads não possuem pasta de solda devido a diâmetros " +"inadequados dos bicos..." + +#: flatcamTools/ToolSolderPaste.py:1267 +msgid "Generating Solder Paste dispensing geometry..." +msgstr "Gerando geometria dispensadora de Pasta de Solda ..." + +#: flatcamTools/ToolSolderPaste.py:1287 +msgid "There is no Geometry object available." +msgstr "Não há objeto de Geometria disponível." + +#: flatcamTools/ToolSolderPaste.py:1292 +msgid "This Geometry can't be processed. NOT a solder_paste_tool geometry." +msgstr "" +"Esta geometria não pode ser processada. NÃO é uma geometria " +"solder_paste_tool." + +#: flatcamTools/ToolSolderPaste.py:1328 +msgid "An internal error has ocurred. See shell.\n" +msgstr "Ocorreu um erro interno. Veja shell (linha de comando).\n" + +#: flatcamTools/ToolSolderPaste.py:1393 +msgid "ToolSolderPaste CNCjob created" +msgstr "Trabalho CNC para Ferramenta de Pasta de Solda criado" + +#: flatcamTools/ToolSolderPaste.py:1412 +msgid "SP GCode Editor" +msgstr "Editor SP G-Code" + +#: flatcamTools/ToolSolderPaste.py:1424 flatcamTools/ToolSolderPaste.py:1429 +#: flatcamTools/ToolSolderPaste.py:1484 +msgid "" +"This CNCJob object can't be processed. NOT a solder_paste_tool CNCJob object." +msgstr "" +"Este objeto Trabalho CNC não pode ser processado. NÃO é um objeto " +"solder_paste_tool." + +#: flatcamTools/ToolSolderPaste.py:1454 +msgid "No Gcode in the object" +msgstr "Nenhum G-Code no objeto" + +#: flatcamTools/ToolSolderPaste.py:1494 +msgid "Export GCode ..." +msgstr "Exportar G-Code ..." + +#: flatcamTools/ToolSolderPaste.py:1542 +msgid "Solder paste dispenser GCode file saved to" +msgstr "Arquivo G-Code com dispensador de pasta de solda salvo em" + +#: flatcamTools/ToolSub.py:65 +msgid "Gerber Objects" +msgstr "Objetos Gerber" + +#: flatcamTools/ToolSub.py:78 +msgid "" +"Gerber object from which to subtract\n" +"the subtractor Gerber object." +msgstr "" +"Objeto Gerber do qual subtrair\n" +"o objeto Gerber subtrator." + +#: flatcamTools/ToolSub.py:91 flatcamTools/ToolSub.py:146 +msgid "Subtractor" +msgstr "Subtrator" + +#: flatcamTools/ToolSub.py:93 +msgid "" +"Gerber object that will be subtracted\n" +"from the target Gerber object." +msgstr "" +"Objeto Gerber que será subtraído\n" +"do objeto Gerber de destino." + +#: flatcamTools/ToolSub.py:100 +msgid "Subtract Gerber" +msgstr "Subtrair Gerber" + +#: flatcamTools/ToolSub.py:102 +msgid "" +"Will remove the area occupied by the subtractor\n" +"Gerber from the Target Gerber.\n" +"Can be used to remove the overlapping silkscreen\n" +"over the soldermask." +msgstr "" +"Removerá a área ocupada pelo Gerber substrator\n" +"do Gerber de destino.\n" +"Pode ser usado para remover a serigrafia sobreposta\n" +"sobre a máscara de solda." + +#: flatcamTools/ToolSub.py:120 +msgid "Geometry Objects" +msgstr "Objetos Geometria" + +#: flatcamTools/ToolSub.py:133 +msgid "" +"Geometry object from which to subtract\n" +"the subtractor Geometry object." +msgstr "" +"Objeto de geometria a partir do qual subtrair\n" +"o objeto de geometria do substrator." + +#: flatcamTools/ToolSub.py:148 +msgid "" +"Geometry object that will be subtracted\n" +"from the target Geometry object." +msgstr "" +"Objeto de geometria que será subtraído\n" +"do objeto de geometria de destino." + +#: flatcamTools/ToolSub.py:156 +msgid "" +"Checking this will close the paths cut by the Geometry subtractor object." +msgstr "" +"Marcar isso fechará os caminhos cortados pelo objeto substrair Geometria." + +#: flatcamTools/ToolSub.py:159 +msgid "Subtract Geometry" +msgstr "Subtrair Geometria" + +#: flatcamTools/ToolSub.py:161 +msgid "" +"Will remove the area occupied by the subtractor\n" +"Geometry from the Target Geometry." +msgstr "" +"Removerá a área ocupada pela geometria subtrator\n" +"da Geometria de destino." + +#: flatcamTools/ToolSub.py:263 +msgid "Sub Tool" +msgstr "Ferramenta Sub" + +#: flatcamTools/ToolSub.py:284 flatcamTools/ToolSub.py:489 +msgid "No Target object loaded." +msgstr "Nenhum objeto de destino foi carregado." + +#: flatcamTools/ToolSub.py:287 +msgid "Loading geometry from Gerber objects." +msgstr "Carregando geometria de objetos Gerber." + +#: flatcamTools/ToolSub.py:299 flatcamTools/ToolSub.py:504 +msgid "No Subtractor object loaded." +msgstr "Nenhum objeto Subtrator carregado." + +#: flatcamTools/ToolSub.py:331 +msgid "Processing geometry from Subtractor Gerber object." +msgstr "Processando Geometria do objeto Subtrator Gerber." + +#: flatcamTools/ToolSub.py:352 +msgid "Parsing geometry for aperture" +msgstr "Analisando geometria para abertura" + +#: flatcamTools/ToolSub.py:413 +msgid "Finished parsing geometry for aperture" +msgstr "Análise de geometria para abertura concluída" + +#: flatcamTools/ToolSub.py:458 flatcamTools/ToolSub.py:661 +msgid "Generating new object ..." +msgstr "Gerando novo objeto ..." + +#: flatcamTools/ToolSub.py:462 flatcamTools/ToolSub.py:665 +#: flatcamTools/ToolSub.py:746 +msgid "Generating new object failed." +msgstr "A geração de novo objeto falhou." + +#: flatcamTools/ToolSub.py:467 flatcamTools/ToolSub.py:671 +msgid "Created" +msgstr "Criado" + +#: flatcamTools/ToolSub.py:518 +msgid "Currently, the Subtractor geometry cannot be of type Multigeo." +msgstr "Atualmente, a geometria do Subtrator não pode ser do tipo MultiGeo." + +#: flatcamTools/ToolSub.py:563 +msgid "Parsing solid_geometry ..." +msgstr "Analisando solid_geometry ..." + +#: flatcamTools/ToolSub.py:565 +msgid "Parsing solid_geometry for tool" +msgstr "Analisando solid_geometry para ferramenta" + +#: flatcamTools/ToolTransform.py:23 +msgid "Object Transform" +msgstr "Transformação de Objeto" + +#: flatcamTools/ToolTransform.py:78 +msgid "" +"Rotate the selected object(s).\n" +"The point of reference is the middle of\n" +"the bounding box for all selected objects." +msgstr "" +"Gira o(s) objeto(s) selecionado(s).\n" +"O ponto de referência é o meio da\n" +"caixa delimitadora para todos os objetos selecionados." + +#: flatcamTools/ToolTransform.py:99 flatcamTools/ToolTransform.py:120 +msgid "" +"Angle for Skew action, in degrees.\n" +"Float number between -360 and 360." +msgstr "" +"Ângulo de inclinação, em graus.\n" +"Número flutuante entre -360 e 360." + +#: flatcamTools/ToolTransform.py:109 flatcamTools/ToolTransform.py:130 +msgid "" +"Skew/shear the selected object(s).\n" +"The point of reference is the middle of\n" +"the bounding box for all selected objects." +msgstr "" +"Inclinar/distorcer o(s) objeto(s) selecionado(s).\n" +"O ponto de referência é o meio da\n" +"caixa delimitadora para todos os objetos selecionados." + +#: flatcamTools/ToolTransform.py:159 flatcamTools/ToolTransform.py:179 +msgid "" +"Scale the selected object(s).\n" +"The point of reference depends on \n" +"the Scale reference checkbox state." +msgstr "" +"Redimensiona o(s) objeto(s) selecionado(s).\n" +"O ponto de referência depende\n" +"do estado da caixa de seleção Escala de referência." + +#: flatcamTools/ToolTransform.py:228 flatcamTools/ToolTransform.py:248 +msgid "" +"Offset the selected object(s).\n" +"The point of reference is the middle of\n" +"the bounding box for all selected objects.\n" +msgstr "" +"Desloca o(s) objeto(s) selecionado(s).\n" +"O ponto de referência é o meio da\n" +"caixa delimitadora para todos os objetos selecionados.\n" + +#: flatcamTools/ToolTransform.py:268 flatcamTools/ToolTransform.py:273 +msgid "Flip the selected object(s) over the X axis." +msgstr "Espelha o(s) objeto(s) selecionado(s) no eixo X." + +#: flatcamTools/ToolTransform.py:297 +msgid "Ref. Point" +msgstr "Ponto de Referência" + +#: flatcamTools/ToolTransform.py:348 +msgid "" +"Create the buffer effect on each geometry,\n" +"element from the selected object, using the distance." +msgstr "" +"Crie o efeito de buffer em cada geometria,\n" +"elemento do objeto selecionado, usando a distância." + +#: flatcamTools/ToolTransform.py:374 +msgid "" +"Create the buffer effect on each geometry,\n" +"element from the selected object, using the factor." +msgstr "" +"Crie o efeito de buffer em cada geometria,\n" +"elemento do objeto selecionado, usando o fator." + +#: flatcamTools/ToolTransform.py:479 +msgid "Buffer D" +msgstr "Buffer D" + +#: flatcamTools/ToolTransform.py:480 +msgid "Buffer F" +msgstr "Buffer F" + +#: flatcamTools/ToolTransform.py:557 +msgid "Rotate transformation can not be done for a value of 0." +msgstr "A rotação não pode ser feita para um valor 0." + +#: flatcamTools/ToolTransform.py:596 flatcamTools/ToolTransform.py:619 +msgid "Scale transformation can not be done for a factor of 0 or 1." +msgstr "O redimensionamento não pode ser feito para um fator 0 ou 1." + +#: flatcamTools/ToolTransform.py:634 flatcamTools/ToolTransform.py:644 +msgid "Offset transformation can not be done for a value of 0." +msgstr "O deslocamento não pode ser feito para um valor 0." + +#: flatcamTools/ToolTransform.py:676 +msgid "No object selected. Please Select an object to rotate!" +msgstr "Nenhum objeto selecionado. Por favor, selecione um objeto para girar!" + +#: flatcamTools/ToolTransform.py:702 +msgid "CNCJob objects can't be rotated." +msgstr "Objetos Trabalho CNC não podem ser girados." + +#: flatcamTools/ToolTransform.py:710 +msgid "Rotate done" +msgstr "Rotação pronta" + +#: flatcamTools/ToolTransform.py:713 flatcamTools/ToolTransform.py:783 +#: flatcamTools/ToolTransform.py:833 flatcamTools/ToolTransform.py:887 +#: flatcamTools/ToolTransform.py:917 flatcamTools/ToolTransform.py:953 +msgid "Due of" +msgstr "Devido" + +#: flatcamTools/ToolTransform.py:713 flatcamTools/ToolTransform.py:783 +#: flatcamTools/ToolTransform.py:833 flatcamTools/ToolTransform.py:887 +#: flatcamTools/ToolTransform.py:917 flatcamTools/ToolTransform.py:953 +msgid "action was not executed." +msgstr "a ação não foi realizada." + +#: flatcamTools/ToolTransform.py:725 +msgid "No object selected. Please Select an object to flip" +msgstr "" +"Nenhum objeto selecionado. Por favor, selecione um objeto para espelhar" + +#: flatcamTools/ToolTransform.py:758 +msgid "CNCJob objects can't be mirrored/flipped." +msgstr "Objetos Trabalho CNC não podem ser espelhados/invertidos." + +#: flatcamTools/ToolTransform.py:793 +msgid "Skew transformation can not be done for 0, 90 and 180 degrees." +msgstr "A inclinação não pode ser feita para 0, 90 e 180 graus." + +#: flatcamTools/ToolTransform.py:798 +msgid "No object selected. Please Select an object to shear/skew!" +msgstr "" +"Nenhum objeto selecionado. Por favor, selecione um objeto para inclinar!" + +#: flatcamTools/ToolTransform.py:818 +msgid "CNCJob objects can't be skewed." +msgstr "Objetos Trabalho CNC não podem ser inclinados." + +#: flatcamTools/ToolTransform.py:830 +msgid "Skew on the" +msgstr "Inclinando no eixo" + +#: flatcamTools/ToolTransform.py:830 flatcamTools/ToolTransform.py:884 +#: flatcamTools/ToolTransform.py:914 +msgid "axis done" +msgstr "concluído" + +#: flatcamTools/ToolTransform.py:844 +msgid "No object selected. Please Select an object to scale!" +msgstr "" +"Nenhum objeto selecionado. Por favor, selecione um objeto para redimensionar!" + +#: flatcamTools/ToolTransform.py:875 +msgid "CNCJob objects can't be scaled." +msgstr "Objetos Trabalho CNC não podem ser redimensionados." + +#: flatcamTools/ToolTransform.py:884 +msgid "Scale on the" +msgstr "Redimensionamento no eixo" + +#: flatcamTools/ToolTransform.py:894 +msgid "No object selected. Please Select an object to offset!" +msgstr "" +"Nenhum objeto selecionado. Por favor, selecione um objeto para deslocar!" + +#: flatcamTools/ToolTransform.py:901 +msgid "CNCJob objects can't be offset." +msgstr "Objetos Trabalho CNC não podem ser deslocados." + +#: flatcamTools/ToolTransform.py:914 +msgid "Offset on the" +msgstr "Deslocamento no eixo" + +#: flatcamTools/ToolTransform.py:924 +msgid "No object selected. Please Select an object to buffer!" +msgstr "" +"Nenhum objeto selecionado. Por favor, selecione um objeto para armazenar em " +"buffer!" + +#: flatcamTools/ToolTransform.py:927 +msgid "Applying Buffer" +msgstr "Aplicando Buffer" + +#: flatcamTools/ToolTransform.py:931 +msgid "CNCJob objects can't be buffered." +msgstr "Os objetos CNCJob não podem ser armazenados em buffer." + +#: flatcamTools/ToolTransform.py:948 +msgid "Buffer done" +msgstr "Buffer concluído" + #: tclCommands/TclCommandBbox.py:75 tclCommands/TclCommandNregions.py:74 msgid "Expected GerberObject or GeometryObject, got" msgstr "Esperando GerberObject ou GeometryObject, recebido" @@ -18728,7 +18368,7 @@ msgstr "" msgid "TclCommand Bounds done." msgstr "Limites de TclCommand concluídos." -#: tclCommands/TclCommandCopperClear.py:281 tclCommands/TclCommandPaint.py:283 +#: tclCommands/TclCommandCopperClear.py:281 tclCommands/TclCommandPaint.py:277 #: tclCommands/TclCommandScale.py:81 msgid "Could not retrieve box object" msgstr "Não foi possível recuperar o objeto caixa" @@ -18747,11 +18387,11 @@ msgid "Gaps value can be only one of: 'lr', 'tb', '2lr', '2tb', 4 or 8." msgstr "O valor das lacunas pode ser apenas: 'lr', 'tb', '2lr', '2tb', 4 ou 8." #: tclCommands/TclCommandGeoCutout.py:301 -#: tclCommands/TclCommandGeoCutout.py:356 +#: tclCommands/TclCommandGeoCutout.py:359 msgid "Any-form Cutout operation finished." msgstr "Operação de recorte de qualquer formato concluída." -#: tclCommands/TclCommandGeoCutout.py:362 +#: tclCommands/TclCommandGeoCutout.py:365 msgid "Cancelled. Object type is not supported." msgstr "O tipo do objeto não é suportado." @@ -18767,15 +18407,15 @@ msgstr "Digite help para forma de uso." msgid "Example: help open_gerber" msgstr "Exemplo: help open_gerber" -#: tclCommands/TclCommandPaint.py:250 tclCommands/TclCommandPaint.py:256 -msgid "Expected a tuple value like -single 3.2,0.1." -msgstr "" +#: tclCommands/TclCommandPaint.py:249 +msgid "Expected -x and -y ." +msgstr "Esperando -x e -y ." -#: tclCommands/TclCommandPaint.py:276 +#: tclCommands/TclCommandPaint.py:270 msgid "Expected -box ." msgstr "Esperando -caixa." -#: tclCommands/TclCommandPaint.py:297 +#: tclCommands/TclCommandPaint.py:291 msgid "" "None of the following args: 'box', 'single', 'all' were used.\n" "Paint failed." @@ -18799,7 +18439,7 @@ msgstr "Esperando -x -y ." msgid "Expected a pair of (x, y) coordinates. Got" msgstr "Esperando um par de coordenadas (x, y). Recebeu" -#: tclCommands/TclCommandSetOrigin.py:101 +#: tclCommands/TclCommandSetOrigin.py:102 msgid "Origin set by offsetting all loaded objects with " msgstr "Origem definida deslocando todos os objetos carregados com " @@ -18807,206 +18447,6 @@ msgstr "Origem definida deslocando todos os objetos carregados com " msgid "No Geometry name in args. Provide a name and try again." msgstr "Nenhum nome de geometria nos argumentos. Altere e tente novamente." -#~ msgid "Add Tool from Tools DB" -#~ msgstr "Adiciona Ferramenta do BD de Ferramentas" - -#~ msgid "FlatCAM Object" -#~ msgstr "Objeto FlatCAM" - -#~ msgid "" -#~ "Choose which tool to use for Gerber isolation:\n" -#~ "'Circular' or 'V-shape'.\n" -#~ "When the 'V-shape' is selected then the tool\n" -#~ "diameter will depend on the chosen cut depth." -#~ msgstr "" -#~ "Escolha qual ferramenta usar para a isolação do Gerber:\n" -#~ "'Circular' ou 'ponta-V'.\n" -#~ "Quando 'ponta em V' for selecionada, o diâmetro da\n" -#~ "ferramenta dependerá da profundidade de corte escolhida." - -#~ msgid "V-Shape" -#~ msgstr "Forma-V" - -#~ msgid "" -#~ "Diameter of the cutting tool.\n" -#~ "If you want to have an isolation path\n" -#~ "inside the actual shape of the Gerber\n" -#~ "feature, use a negative value for\n" -#~ "this parameter." -#~ msgstr "" -#~ "Diâmetro da ferramenta de corte.\n" -#~ "Se desejar ter um caminho de isolação dentro da forma\n" -#~ "atual do recurso Gerber, use um valor negativo para\n" -#~ "este parâmetro." - -#~ msgid "Pass overlap" -#~ msgstr "Sobreposição" - -#~ msgid "Scope" -#~ msgstr "Escopo" - -#~ msgid "Clear N-copper" -#~ msgstr "Limpa N-cobre" - -#~ msgid "Board cutout" -#~ msgstr "Recorte da placa" - -#~ msgid "" -#~ "Add a new tool to the Tool Table\n" -#~ "with the specified diameter." -#~ msgstr "" -#~ "Adiciona uma nova ferramenta à Tabela de Ferramentas\n" -#~ "com o diâmetro especificado." - -#~ msgid "Excellon Object Color" -#~ msgstr "Cor do objeto Excellon" - -#~ msgid "Geometry Object Color" -#~ msgstr "Cor do objeto de Geometria" - -#~ msgid "Exterior" -#~ msgstr "Exterior" - -#~ msgid "Interior" -#~ msgstr "Interior" - -#~ msgid "Gerber Object Color" -#~ msgstr "Cor do objeto Gerber" - -#~ msgid "Combine Passes" -#~ msgstr "Combinar Passes" - -#~ msgid "Rest Machining" -#~ msgstr "Usinagem em Repouso" - -#~ msgid "NCC Plotting" -#~ msgstr "Gráfico NCC" - -#~ msgid "All Polygons" -#~ msgstr "Todos os polígonos" - -#~ msgid "Paint Plotting" -#~ msgstr "Mostrar Pinturas" - -#~ msgid "" -#~ "- 'Normal' - normal plotting, done at the end of the Paint job\n" -#~ "- 'Progressive' - after each shape is generated it will be plotted." -#~ msgstr "" -#~ "- 'Normal' - plotagem normal, realizada no final do trabalho de pintura\n" -#~ "- 'Progressivo' - após cada forma ser gerada, ela será plotada." - -#~ msgid "Export Machine Code ..." -#~ msgstr "Exportar Código da Máquina ..." - -#~ msgid "Export Machine Code cancelled ..." -#~ msgstr "Exportar código da máquina cancelado ..." - -#~ msgid "Machine Code file saved to" -#~ msgstr "Arquivo G-Code salvo em" - -#~ msgid "GCode Parameters" -#~ msgstr "Parâmetros do G-Code" - -#, fuzzy -#~| msgid "Selection" -#~ msgid "PreSelection" -#~ msgstr "Seleção" - -#~ msgid "Copper Gerber" -#~ msgstr "Gerber Cobre" - -#~ msgid "QRCode Parameters" -#~ msgstr "Parâmetros de QRCode" - -#~ msgid "Gerber Files" -#~ msgstr "Arquivos Gerber" - -#~ msgid "Excellon Objects" -#~ msgstr "Objetos Excellon" - -#~ msgid "Gerber Solder paste object. " -#~ msgstr "Objeto Gerber de Pasta de Solda. " - -#~ msgid "Gerber Objects" -#~ msgstr "Objetos Gerber" - -#~ msgid "Geometry Objects" -#~ msgstr "Objetos Geometria" - -#~ msgid "Processing geometry from Subtractor Gerber object." -#~ msgstr "Processando Geometria do objeto Subtrator Gerber." - -#~ msgid "Parsing geometry for aperture" -#~ msgstr "Analisando geometria para abertura" - -#~ msgid "Export FlatCAM Bookmarks" -#~ msgstr "Exportar Favoritos do FlatCAM" - -#~ msgid "Import FlatCAM Bookmarks" -#~ msgstr "Importar Favoritos do FlatCAM" - -#~ msgid "Unifying Geometry from parsed Geometry segments" -#~ msgstr "Unificando Gometria a partir de segmentos de geometria analisados" - -#~ msgid "./assets/icon.png" -#~ msgstr "./assets/icon.png" - -#~ msgid "New Blank Geometry" -#~ msgstr "Nova Geometria em Branco" - -#~ msgid "New Blank Gerber" -#~ msgstr "Novo Gerber em Branco" - -#~ msgid "New Blank Excellon" -#~ msgstr "Novo Excellon em Branco" - -#~ msgid "" -#~ "Relative measurement.\n" -#~ "Reference is last click position" -#~ msgstr "" -#~ "Medição relativa.\n" -#~ "Em relação à posição do último clique" - -#, fuzzy -#~| msgid "Clearance" -#~ msgid "Clear areas" -#~ msgstr "Espaço" - -#~ msgid "Apply Theme" -#~ msgstr "Aplicar temaAplicar" - -#~ msgid "" -#~ "Select a theme for FlatCAM.\n" -#~ "It will theme the plot area.\n" -#~ "The application will restart after change." -#~ msgstr "" -#~ "Selecione um tema para FlatCAM.\n" -#~ "Ele será aplicado na área do gráfico.\n" -#~ "O aplicativo reiniciará após a troca." - -#~ msgid "Film Object" -#~ msgstr "Objeto de Filme" - -#~ msgid "Object for which to create the film." -#~ msgstr "Objeto para o qual criar o filme." - -#~ msgid "Box Object" -#~ msgstr "Objeto Caixa" - -#~ msgid "" -#~ "The actual object that is used as container for the\n" -#~ " selected object for which we create the film.\n" -#~ "Usually it is the PCB outline but it can be also the\n" -#~ "same object for which the film is created." -#~ msgstr "" -#~ "O objeto que é usado como um container para o objeto\n" -#~ "selecionado para o qual criamos o filme.\n" -#~ "Normalmente, é o contorno do PCB, mas também pode ser\n" -#~ "do mesmo objeto para o qual o filme é criado." - -#~ msgid "Expected -x and -y ." -#~ msgstr "Esperando -x e -y ." - #~ msgid "Could not load factory defaults file." #~ msgstr "Não foi possível carregar o arquivo de padrões de fábrica." @@ -19088,6 +18528,9 @@ msgstr "Nenhum nome de geometria nos argumentos. Altere e tente novamente." #~ msgid " Export SVG cancelled." #~ msgstr " Exportar SVG cancelado." +#~ msgid "Export PNG cancelled." +#~ msgstr "Exportar PNG cancelado." + #~ msgid "No object selected. Please select an Gerber object to export." #~ msgstr "" #~ "Nenhum objeto selecionado. Por favor, selecione um objeto Gerber para " @@ -19156,6 +18599,9 @@ msgstr "Nenhum nome de geometria nos argumentos. Altere e tente novamente." #~ msgid "Save Object PDF cancelled." #~ msgstr "Salvar PDF do objeto cancelado." +#~ msgid "Shows list of commands." +#~ msgstr "Mostra a lista de comandos." + #~ msgid "FlatCAM bookmarks export cancelled." #~ msgstr "Exportação de favoritos do FlatCAM cancelada." @@ -19692,6 +19138,9 @@ msgstr "Nenhum nome de geometria nos argumentos. Altere e tente novamente." #~ "#\n" #~ "\n" +#~ msgid "Program Author" +#~ msgstr "Autor do Programa" + #~ msgid "Change project units ..." #~ msgstr "Alterar unidades do projeto ..." diff --git a/locale/ro/LC_MESSAGES/strings.mo b/locale/ro/LC_MESSAGES/strings.mo index e5f077ba878d63574636302dd09246b8e982bdbe..96cf02aed08b21501eb8ec354c416a3ce43c9a90 100644 GIT binary patch delta 72598 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 U(vj;BH+%KiZk&AX3Q6^U0Ms9BfdBvi delta 78970 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 IS5%h&1M1gl%>V!Z diff --git a/locale/ro/LC_MESSAGES/strings.po b/locale/ro/LC_MESSAGES/strings.po index 72a31bfe..3e7d19d2 100644 --- a/locale/ro/LC_MESSAGES/strings.po +++ b/locale/ro/LC_MESSAGES/strings.po @@ -5,8 +5,8 @@ msgid "" msgstr "" "Project-Id-Version: \n" -"POT-Creation-Date: 2020-06-02 17:37+0300\n" -"PO-Revision-Date: 2020-06-02 17:37+0300\n" +"POT-Creation-Date: 2020-05-03 16:07+0300\n" +"PO-Revision-Date: 2020-05-03 16:11+0300\n" "Last-Translator: \n" "Language-Team: \n" "Language: ro\n" @@ -14,7 +14,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: pygettext.py 1.5\n" -"X-Generator: Poedit 2.3.1\n" +"X-Generator: Poedit 2.2.4\n" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n==0 || (n!=1 && n%100>=1 && n" "%100<=19) ? 1 : 2);\n" "X-Poedit-Basepath: ../../..\n" @@ -23,17095 +23,15 @@ msgstr "" "X-Poedit-SearchPathExcluded-1: tests\n" "X-Poedit-SearchPathExcluded-2: doc\n" -#: AppDatabase.py:88 -msgid "Add Geometry Tool in DB" -msgstr "Adăugați Unealta de Geometrie în DB" - -#: AppDatabase.py:90 AppDatabase.py:1757 -msgid "" -"Add a new tool in the Tools Database.\n" -"It will be used in the Geometry UI.\n" -"You can edit it after it is added." -msgstr "" -"Adăugați o unealtă nouă în baza de date.\n" -"Acesta va fi utilizată în UI de Geometrie.\n" -"O puteți edita după ce este adăugată." - -#: AppDatabase.py:104 AppDatabase.py:1771 -msgid "Delete Tool from DB" -msgstr "Ștergeți unealta din DB" - -#: AppDatabase.py:106 AppDatabase.py:1773 -msgid "Remove a selection of tools in the Tools Database." -msgstr "Stergeți o selecție de Unelte din baza de date Unelte." - -#: AppDatabase.py:110 AppDatabase.py:1777 -msgid "Export DB" -msgstr "Exportă DB" - -#: AppDatabase.py:112 AppDatabase.py:1779 -msgid "Save the Tools Database to a custom text file." -msgstr "Salvați baza de date Unelte într-un fișier text." - -#: AppDatabase.py:116 AppDatabase.py:1783 -msgid "Import DB" -msgstr "Importă DB" - -#: AppDatabase.py:118 AppDatabase.py:1785 -msgid "Load the Tools Database information's from a custom text file." -msgstr "Încărcați informațiile din baza de date Unelte dintr-un fișier text." - -#: AppDatabase.py:122 AppDatabase.py:1795 -msgid "Transfer the Tool" -msgstr "Transferați Unealta" - -#: AppDatabase.py:124 -msgid "" -"Add a new tool in the Tools Table of the\n" -"active Geometry object after selecting a tool\n" -"in the Tools Database." -msgstr "" -"Adăugați o Unealta noua în Tabelul Unelte din\n" -"obiectul Geometrie activ după selectarea unei Unelte\n" -"în baza de date Unelte." - -#: AppDatabase.py:130 AppDatabase.py:1810 AppGUI/MainGUI.py:1388 -#: AppGUI/preferences/PreferencesUIManager.py:878 App_Main.py:2225 -#: App_Main.py:3160 App_Main.py:4037 App_Main.py:4307 App_Main.py:6417 -msgid "Cancel" -msgstr "Anuleaza" - -#: AppDatabase.py:160 AppDatabase.py:835 AppDatabase.py:1106 -msgid "Tool Name" -msgstr "Nume unealtă" - -#: AppDatabase.py:161 AppDatabase.py:837 AppDatabase.py:1119 -#: AppEditors/FlatCAMExcEditor.py:1604 AppGUI/ObjectUI.py:1226 -#: AppGUI/ObjectUI.py:1480 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:132 -#: AppTools/ToolIsolation.py:260 AppTools/ToolNCC.py:278 -#: AppTools/ToolNCC.py:287 AppTools/ToolPaint.py:260 -msgid "Tool Dia" -msgstr "Dia Unealtă" - -#: AppDatabase.py:162 AppDatabase.py:839 AppDatabase.py:1300 -#: AppGUI/ObjectUI.py:1455 -msgid "Tool Offset" -msgstr "Ofset unealtă" - -#: AppDatabase.py:163 AppDatabase.py:841 AppDatabase.py:1317 -msgid "Custom Offset" -msgstr "Ofset Personalizat" - -#: AppDatabase.py:164 AppDatabase.py:843 AppDatabase.py:1284 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:70 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:53 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:62 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:72 -#: AppTools/ToolIsolation.py:199 AppTools/ToolNCC.py:213 -#: AppTools/ToolNCC.py:227 AppTools/ToolPaint.py:195 -msgid "Tool Type" -msgstr "Tip Unealtă" - -#: AppDatabase.py:165 AppDatabase.py:845 AppDatabase.py:1132 -msgid "Tool Shape" -msgstr "Formă unealtă" - -#: AppDatabase.py:166 AppDatabase.py:848 AppDatabase.py:1148 -#: AppGUI/ObjectUI.py:679 AppGUI/ObjectUI.py:1605 AppGUI/ObjectUI.py:2266 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:93 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:49 -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:78 -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:58 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:115 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:98 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:105 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:113 -#: AppTools/ToolCalculators.py:114 AppTools/ToolCutOut.py:138 -#: AppTools/ToolIsolation.py:246 AppTools/ToolNCC.py:260 -#: AppTools/ToolNCC.py:268 AppTools/ToolPaint.py:242 -msgid "Cut Z" -msgstr "Z tăiere" - -#: AppDatabase.py:167 AppDatabase.py:850 AppDatabase.py:1162 -msgid "MultiDepth" -msgstr "Multi-Pas" - -#: AppDatabase.py:168 AppDatabase.py:852 AppDatabase.py:1175 -msgid "DPP" -msgstr "DPP" - -#: AppDatabase.py:169 AppDatabase.py:854 AppDatabase.py:1331 -msgid "V-Dia" -msgstr "V-Dia" - -#: AppDatabase.py:170 AppDatabase.py:856 AppDatabase.py:1345 -msgid "V-Angle" -msgstr "V-Unghi" - -#: AppDatabase.py:171 AppDatabase.py:858 AppDatabase.py:1189 -#: AppGUI/ObjectUI.py:725 AppGUI/ObjectUI.py:1652 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:134 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:102 -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:61 -#: AppObjects/FlatCAMExcellon.py:1496 AppObjects/FlatCAMGeometry.py:1671 -#: AppTools/ToolCalibration.py:74 -msgid "Travel Z" -msgstr "Z Deplasare" - -#: AppDatabase.py:172 AppDatabase.py:860 -msgid "FR" -msgstr "Feedrate" - -#: AppDatabase.py:173 AppDatabase.py:862 -msgid "FR Z" -msgstr "Z feedrate" - -#: AppDatabase.py:174 AppDatabase.py:864 AppDatabase.py:1359 -msgid "FR Rapids" -msgstr "Feedrate rapizi" - -#: AppDatabase.py:175 AppDatabase.py:866 AppDatabase.py:1232 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:222 -msgid "Spindle Speed" -msgstr "Viteza Motor" - -#: AppDatabase.py:176 AppDatabase.py:868 AppDatabase.py:1247 -#: AppGUI/ObjectUI.py:843 AppGUI/ObjectUI.py:1759 -msgid "Dwell" -msgstr "Pauza" - -#: AppDatabase.py:177 AppDatabase.py:870 AppDatabase.py:1260 -msgid "Dwelltime" -msgstr "Durata pauza" - -#: AppDatabase.py:178 AppDatabase.py:872 AppGUI/ObjectUI.py:1916 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:257 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:255 -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:237 -#: AppTools/ToolSolderPaste.py:331 -msgid "Preprocessor" -msgstr "Postprocesor" - -#: AppDatabase.py:179 AppDatabase.py:874 AppDatabase.py:1375 -msgid "ExtraCut" -msgstr "Extra taiere" - -#: AppDatabase.py:180 AppDatabase.py:876 AppDatabase.py:1390 -msgid "E-Cut Length" -msgstr "Lungime E-taiere" - -#: AppDatabase.py:181 AppDatabase.py:878 -msgid "Toolchange" -msgstr "Schimb unealtă" - -#: AppDatabase.py:182 AppDatabase.py:880 -msgid "Toolchange XY" -msgstr "X,Y schimb unealtă" - -#: AppDatabase.py:183 AppDatabase.py:882 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:160 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:132 -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:98 -#: AppTools/ToolCalibration.py:111 -msgid "Toolchange Z" -msgstr "Z schimb. unealtă" - -#: AppDatabase.py:184 AppDatabase.py:884 AppGUI/ObjectUI.py:972 -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:69 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:56 -msgid "Start Z" -msgstr "Z Start" - -#: AppDatabase.py:185 AppDatabase.py:887 -msgid "End Z" -msgstr "Z Oprire" - -#: AppDatabase.py:189 -msgid "Tool Index." -msgstr "Index unealta." - -#: AppDatabase.py:191 AppDatabase.py:1108 -msgid "" -"Tool name.\n" -"This is not used in the app, it's function\n" -"is to serve as a note for the user." -msgstr "" -"Numele uneltei.\n" -"Aceasta nu este folosită în aplicație, funcția sa\n" -"este să servească drept notă pentru utilizator." - -#: AppDatabase.py:195 AppDatabase.py:1121 -msgid "Tool Diameter." -msgstr "Diametru unealtă." - -#: AppDatabase.py:197 AppDatabase.py:1302 -msgid "" -"Tool Offset.\n" -"Can be of a few types:\n" -"Path = zero offset\n" -"In = offset inside by half of tool diameter\n" -"Out = offset outside by half of tool diameter\n" -"Custom = custom offset using the Custom Offset value" -msgstr "" -"Offset-ul uneltei.\n" -"Poate fi de câteva tipuri:\n" -"Cale = decalare zero\n" -"Interior = compensat în interior cu jumătate din diametrul sculei\n" -"Exterior = compensat în exterior cu jumătate din diametrul sculei\n" -"Custom = compensare personalizată folosind valoarea Offset personalizat" - -#: AppDatabase.py:204 AppDatabase.py:1319 -msgid "" -"Custom Offset.\n" -"A value to be used as offset from the current path." -msgstr "" -"Ofset personalizat.\n" -"O valoare care trebuie utilizată ca compensare din Calea curentă." - -#: AppDatabase.py:207 AppDatabase.py:1286 -msgid "" -"Tool Type.\n" -"Can be:\n" -"Iso = isolation cut\n" -"Rough = rough cut, low feedrate, multiple passes\n" -"Finish = finishing cut, high feedrate" -msgstr "" -"Tip uneltei.\n" -"Poate fi:\n" -"Iso = tăiere de izolare\n" -"Aspră = tăietură aspră, viteză scăzută, treceri multiple\n" -"Finisare = tăiere de finisare, avans mare" - -#: AppDatabase.py:213 AppDatabase.py:1134 -msgid "" -"Tool Shape. \n" -"Can be:\n" -"C1 ... C4 = circular tool with x flutes\n" -"B = ball tip milling tool\n" -"V = v-shape milling tool" -msgstr "" -"Forma uneltei.\n" -"Poate fi:\n" -"C1 ... C4 = unealtă circulară cu x dinti\n" -"B = instrument de frezare cu vârf formal bila\n" -"V = instrument de frezare în formă V" - -#: AppDatabase.py:219 AppDatabase.py:1150 -msgid "" -"Cutting Depth.\n" -"The depth at which to cut into material." -msgstr "" -"Adâncimea de tăiere.\n" -"Adâncimea la care se taie în material." - -#: AppDatabase.py:222 AppDatabase.py:1164 -msgid "" -"Multi Depth.\n" -"Selecting this will allow cutting in multiple passes,\n" -"each pass adding a DPP parameter depth." -msgstr "" -"Adâncime multiplă\n" -"Selectarea acestui lucru va permite tăierea în mai multe treceri,\n" -"fiecare trecere adăugând o adâncime a parametrului DPP." - -#: AppDatabase.py:226 AppDatabase.py:1177 -msgid "" -"DPP. Depth per Pass.\n" -"The value used to cut into material on each pass." -msgstr "" -"DPP. Adâncimea pe trecere.\n" -"Valoarea folosită pentru a tăia în material la fiecare trecere." - -#: AppDatabase.py:229 AppDatabase.py:1333 -msgid "" -"V-Dia.\n" -"Diameter of the tip for V-Shape Tools." -msgstr "" -"V-Dia.\n" -"Diametrul vârfului pentru uneltele în formă de V." - -#: AppDatabase.py:232 AppDatabase.py:1347 -msgid "" -"V-Agle.\n" -"Angle at the tip for the V-Shape Tools." -msgstr "" -"V-Unghi.\n" -"Unghiul în vârf pentru instrumentele în formă de V." - -#: AppDatabase.py:235 AppDatabase.py:1191 -msgid "" -"Clearance Height.\n" -"Height at which the milling bit will travel between cuts,\n" -"above the surface of the material, avoiding all fixtures." -msgstr "" -"Înălțimea de Siguranta.\n" -"Înălțimea la care bitul de frezare va călători între tăieturi,\n" -"deasupra suprafeței materialului, evitând toate accesoriile." - -#: AppDatabase.py:239 -msgid "" -"FR. Feedrate\n" -"The speed on XY plane used while cutting into material." -msgstr "" -"FR. Avans.\n" -"Viteza pe planul XY utilizat la tăierea în material." - -#: AppDatabase.py:242 -msgid "" -"FR Z. Feedrate Z\n" -"The speed on Z plane." -msgstr "" -"FR Z. Feedrate Z. Avans Z.\n" -"Viteza de deplasare in planul Z." - -#: AppDatabase.py:245 AppDatabase.py:1361 -msgid "" -"FR Rapids. Feedrate Rapids\n" -"Speed used while moving as fast as possible.\n" -"This is used only by some devices that can't use\n" -"the G0 g-code command. Mostly 3D printers." -msgstr "" -"FR Rapid. Feedrate Rapids. Avans Rapid.\n" -"Viteza folosită în timpul deplasarii pe cât mai repede posibil.\n" -"Acesta este folosit doar de unele dispozitive in care nu poate fi utilizata\n" -"comanda G-cod G0. În mare parte este vorda de imprimante 3D." - -#: AppDatabase.py:250 AppDatabase.py:1234 -msgid "" -"Spindle Speed.\n" -"If it's left empty it will not be used.\n" -"The speed of the spindle in RPM." -msgstr "" -"Viteza motorului.\n" -"Dacă este lăsat gol, nu va fi folosit.\n" -"Viteza rotorului în RPM." - -#: AppDatabase.py:254 AppDatabase.py:1249 -msgid "" -"Dwell.\n" -"Check this if a delay is needed to allow\n" -"the spindle motor to reach it's set speed." -msgstr "" -"Pauză.\n" -"Verificați dacă este necesară o întârziere pentru a permite\n" -"motorului sa ajungă la viteza setată." - -#: AppDatabase.py:258 AppDatabase.py:1262 -msgid "" -"Dwell Time.\n" -"A delay used to allow the motor spindle reach it's set speed." -msgstr "" -"Durata pauzei.\n" -"O întârziere pentru a permite motorului sa ajungă la viteza setată." - -#: AppDatabase.py:261 -msgid "" -"Preprocessor.\n" -"A selection of files that will alter the generated G-code\n" -"to fit for a number of use cases." -msgstr "" -"Preprocesorul.\n" -"O selecție de fișiere care vor modifica codul G generat\n" -"pentru a se potrivi pentru o serie de cazuri de utilizare." - -#: AppDatabase.py:265 AppDatabase.py:1377 -msgid "" -"Extra Cut.\n" -"If checked, after a isolation is finished an extra cut\n" -"will be added where the start and end of isolation meet\n" -"such as that this point is covered by this extra cut to\n" -"ensure a complete isolation." -msgstr "" -"Taietura suplimentara\n" -"Dacă este bifat, după terminarea izolării, tăieri suplimentare\n" -"vor fi adăugate acolo unde se întâlnesc începutul și sfârșitul izolării\n" -"astfel că acest punct este acoperit de aceste tăieri suplimentare si\n" -"asigură o izolare completă." - -#: AppDatabase.py:271 AppDatabase.py:1392 -msgid "" -"Extra Cut length.\n" -"If checked, after a isolation is finished an extra cut\n" -"will be added where the start and end of isolation meet\n" -"such as that this point is covered by this extra cut to\n" -"ensure a complete isolation. This is the length of\n" -"the extra cut." -msgstr "" -"Lungime suplimentară tăiată\n" -"Dacă este bifat, după terminarea izolării, tăieri suplimentare\n" -"vor fi adăugate acolo unde se întâlnesc începutul și sfârșitul izolării\n" -"astfel că acest punct este acoperit de aceste tăieri suplimentare si\n" -"asigură o izolare completă." - -#: AppDatabase.py:278 -msgid "" -"Toolchange.\n" -"It will create a toolchange event.\n" -"The kind of toolchange is determined by\n" -"the preprocessor file." -msgstr "" -"Schimbarea Uneltei.\n" -"Va crea un eveniment de schimbare a uneltelor.\n" -"Tipul schimbului de unelte este determinat de\n" -"fișierul preprocesor." - -#: AppDatabase.py:283 -msgid "" -"Toolchange XY.\n" -"A set of coordinates in the format (x, y).\n" -"Will determine the cartesian position of the point\n" -"where the tool change event take place." -msgstr "" -"Schimb de unelte - locatia XY.\n" -"Un set de coordonate în format (x, y).\n" -"Va determina poziția carteziană a punctului\n" -"unde are loc evenimentul schimbării instrumentelor." - -#: AppDatabase.py:288 -msgid "" -"Toolchange Z.\n" -"The position on Z plane where the tool change event take place." -msgstr "" -"Schimb de unelte - locatia Z.\n" -"Poziția in planul Z unde are loc evenimentul de schimbare a sculei." - -#: AppDatabase.py:291 -msgid "" -"Start Z.\n" -"If it's left empty it will not be used.\n" -"A position on Z plane to move immediately after job start." -msgstr "" -"Z Start.\n" -"Dacă este lăsat gol, nu va fi folosit.\n" -"O poziție pe planul Z pentru a se deplasa imediat după începerea lucrului." - -#: AppDatabase.py:295 -msgid "" -"End Z.\n" -"A position on Z plane to move immediately after job stop." -msgstr "" -"Z Sfârșit.\n" -"O poziție pe planul Z pentru a se deplasa imediat după oprirea executiei." - -#: AppDatabase.py:307 AppDatabase.py:684 AppDatabase.py:718 AppDatabase.py:2033 -#: AppDatabase.py:2298 AppDatabase.py:2332 -msgid "Could not load Tools DB file." -msgstr "Nu s-a putut încărca fișierul DB Unelte." - -#: AppDatabase.py:315 AppDatabase.py:726 AppDatabase.py:2041 -#: AppDatabase.py:2340 -msgid "Failed to parse Tools DB file." -msgstr "Eroare la analizarea fișierului DB Unelte." - -#: AppDatabase.py:318 AppDatabase.py:729 AppDatabase.py:2044 -#: AppDatabase.py:2343 -msgid "Loaded Tools DB from" -msgstr "S-a incărcat DB Unelte din" - -#: AppDatabase.py:324 AppDatabase.py:1958 -msgid "Add to DB" -msgstr "Adăugați la DB Unelte" - -#: AppDatabase.py:326 AppDatabase.py:1961 -msgid "Copy from DB" -msgstr "Copiați din DB Unelte" - -#: AppDatabase.py:328 AppDatabase.py:1964 -msgid "Delete from DB" -msgstr "Ștergeți din DB Unelte" - -#: AppDatabase.py:605 AppDatabase.py:2198 -msgid "Tool added to DB." -msgstr "Unealtă adăugată in DB." - -#: AppDatabase.py:626 AppDatabase.py:2231 -msgid "Tool copied from Tools DB." -msgstr "Unealta a fost copiată din DB Unelte." - -#: AppDatabase.py:644 AppDatabase.py:2258 -msgid "Tool removed from Tools DB." -msgstr "Unealta a fost ștearsă din DB Unelte." - -#: AppDatabase.py:655 AppDatabase.py:2269 -msgid "Export Tools Database" -msgstr "Export DB Unelte" - -#: AppDatabase.py:658 AppDatabase.py:2272 -msgid "Tools_Database" -msgstr "DB Unelte" - -#: AppDatabase.py:665 AppDatabase.py:711 AppDatabase.py:2279 -#: AppDatabase.py:2325 AppEditors/FlatCAMExcEditor.py:1023 -#: AppEditors/FlatCAMExcEditor.py:1091 AppEditors/FlatCAMTextEditor.py:223 -#: AppGUI/MainGUI.py:2730 AppGUI/MainGUI.py:2952 AppGUI/MainGUI.py:3167 -#: AppObjects/ObjectCollection.py:127 AppTools/ToolFilm.py:739 -#: AppTools/ToolFilm.py:885 AppTools/ToolImage.py:247 AppTools/ToolMove.py:269 -#: AppTools/ToolPcbWizard.py:301 AppTools/ToolPcbWizard.py:324 -#: AppTools/ToolQRCode.py:800 AppTools/ToolQRCode.py:847 App_Main.py:1710 -#: App_Main.py:2451 App_Main.py:2487 App_Main.py:2534 App_Main.py:4100 -#: App_Main.py:6610 App_Main.py:6649 App_Main.py:6693 App_Main.py:6722 -#: App_Main.py:6763 App_Main.py:6788 App_Main.py:6844 App_Main.py:6880 -#: App_Main.py:6925 App_Main.py:6966 App_Main.py:7008 App_Main.py:7050 -#: App_Main.py:7091 App_Main.py:7135 App_Main.py:7195 App_Main.py:7227 -#: App_Main.py:7259 App_Main.py:7490 App_Main.py:7528 App_Main.py:7571 -#: App_Main.py:7648 App_Main.py:7703 Bookmark.py:300 Bookmark.py:342 -msgid "Cancelled." -msgstr "Anulat." - -#: AppDatabase.py:673 AppDatabase.py:2287 AppEditors/FlatCAMTextEditor.py:276 -#: AppObjects/FlatCAMCNCJob.py:959 AppTools/ToolFilm.py:1016 -#: AppTools/ToolFilm.py:1197 AppTools/ToolSolderPaste.py:1542 App_Main.py:2542 -#: App_Main.py:7947 App_Main.py:7995 App_Main.py:8120 App_Main.py:8256 -#: Bookmark.py:308 -msgid "" -"Permission denied, saving not possible.\n" -"Most likely another app is holding the file open and not accessible." -msgstr "" -"Permisiune refuzată, salvarea nu este posibilă.\n" -"Cel mai probabil o altă aplicație ține fișierul deschis și inaccesibil." - -#: AppDatabase.py:695 AppDatabase.py:698 AppDatabase.py:750 AppDatabase.py:2309 -#: AppDatabase.py:2312 AppDatabase.py:2365 -msgid "Failed to write Tools DB to file." -msgstr "Eroare la scrierea DB Unelte în fișier." - -#: AppDatabase.py:701 AppDatabase.py:2315 -msgid "Exported Tools DB to" -msgstr "S-a exportat DB Unelte in" - -#: AppDatabase.py:708 AppDatabase.py:2322 -msgid "Import FlatCAM Tools DB" -msgstr "Importă DB Unelte" - -#: AppDatabase.py:740 AppDatabase.py:915 AppDatabase.py:2354 -#: AppDatabase.py:2624 AppObjects/FlatCAMGeometry.py:956 -#: AppTools/ToolIsolation.py:2909 AppTools/ToolIsolation.py:2994 -#: AppTools/ToolNCC.py:4029 AppTools/ToolNCC.py:4113 AppTools/ToolPaint.py:3578 -#: AppTools/ToolPaint.py:3663 App_Main.py:5233 App_Main.py:5267 -#: App_Main.py:5294 App_Main.py:5314 App_Main.py:5324 -msgid "Tools Database" -msgstr "Baza de Date Unelte" - -#: AppDatabase.py:754 AppDatabase.py:2369 -msgid "Saved Tools DB." -msgstr "DB unelte salvată." - -#: AppDatabase.py:901 AppDatabase.py:2611 -msgid "No Tool/row selected in the Tools Database table" -msgstr "Nu a fost selectat nici-o Unealta / rând în tabela DB Unelte" - -#: AppDatabase.py:919 AppDatabase.py:2628 -msgid "Cancelled adding tool from DB." -msgstr "S-a anulat adăugarea de Unealtă din DB Unelte." - -#: AppDatabase.py:1020 -msgid "Basic Geo Parameters" -msgstr "Parametrii bază Geometrie" - -#: AppDatabase.py:1032 -msgid "Advanced Geo Parameters" -msgstr "Param. Avansați Geometrie" - -#: AppDatabase.py:1045 -msgid "NCC Parameters" -msgstr "Parametrii NCC" - -#: AppDatabase.py:1058 -msgid "Paint Parameters" -msgstr "Parametrii Paint" - -#: AppDatabase.py:1071 -msgid "Isolation Parameters" -msgstr "Parametrii de Izolare" - -#: AppDatabase.py:1204 AppGUI/ObjectUI.py:746 AppGUI/ObjectUI.py:1671 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:186 -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:148 -#: AppTools/ToolSolderPaste.py:249 -msgid "Feedrate X-Y" -msgstr "Feedrate X-Y" - -#: AppDatabase.py:1206 -msgid "" -"Feedrate X-Y. Feedrate\n" -"The speed on XY plane used while cutting into material." -msgstr "" -"Avans X-Y. Avans.\n" -"Viteza pe planul XY utilizat la tăierea în material." - -#: AppDatabase.py:1218 AppGUI/ObjectUI.py:761 AppGUI/ObjectUI.py:1685 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:207 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:201 -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:161 -#: AppTools/ToolSolderPaste.py:261 -msgid "Feedrate Z" -msgstr "Feedrate Z" - -#: AppDatabase.py:1220 -msgid "" -"Feedrate Z\n" -"The speed on Z plane." -msgstr "" -"Feedrate Z. Avans Z.\n" -"Viteza de deplasare in planul Z." - -#: AppDatabase.py:1418 AppGUI/ObjectUI.py:624 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:46 -#: AppTools/ToolNCC.py:341 -msgid "Operation" -msgstr "Operațiuni" - -#: AppDatabase.py:1420 AppTools/ToolNCC.py:343 -msgid "" -"The 'Operation' can be:\n" -"- Isolation -> will ensure that the non-copper clearing is always complete.\n" -"If it's not successful then the non-copper clearing will fail, too.\n" -"- Clear -> the regular non-copper clearing." -msgstr "" -"„Operațiunea” poate fi:\n" -"- Izolare -> se va asigura că curățarea non-cupru este întotdeauna " -"completă.\n" -"Dacă nu are succes, atunci curățarea din cupru nu va reuși.\n" -"- Curățare -> curățarea obișnuită de cupru." - -#: AppDatabase.py:1427 AppEditors/FlatCAMGrbEditor.py:2749 -#: AppGUI/GUIElements.py:2754 AppTools/ToolNCC.py:350 -msgid "Clear" -msgstr "Șterge" - -#: AppDatabase.py:1428 AppTools/ToolNCC.py:351 -msgid "Isolation" -msgstr "Tip de izolare" - -#: AppDatabase.py:1436 AppDatabase.py:1682 AppGUI/ObjectUI.py:646 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:62 -#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:56 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:182 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:137 -#: AppTools/ToolIsolation.py:351 AppTools/ToolNCC.py:359 -msgid "Milling Type" -msgstr "Tip Frezare" - -#: AppDatabase.py:1438 AppDatabase.py:1446 AppDatabase.py:1684 -#: AppDatabase.py:1692 AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:184 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:192 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:139 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:147 -#: AppTools/ToolIsolation.py:353 AppTools/ToolIsolation.py:361 -#: AppTools/ToolNCC.py:361 AppTools/ToolNCC.py:369 -msgid "" -"Milling type when the selected tool is of type: 'iso_op':\n" -"- climb / best for precision milling and to reduce tool usage\n" -"- conventional / useful when there is no backlash compensation" -msgstr "" -"Tipul de frezare cand unealta selectată este de tipul: 'iso_op':\n" -"- urcare -> potrivit pentru frezare de precizie și pt a reduce uzura " -"uneltei\n" -"- conventional -> pentru cazul când nu exista o compensare a 'backlash-ului'" - -#: AppDatabase.py:1443 AppDatabase.py:1689 -#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:62 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:189 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:144 -#: AppTools/ToolIsolation.py:358 AppTools/ToolNCC.py:366 -msgid "Climb" -msgstr "Urcare" - -#: AppDatabase.py:1444 AppDatabase.py:1690 -#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:63 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:190 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:145 -#: AppTools/ToolIsolation.py:359 AppTools/ToolNCC.py:367 -msgid "Conventional" -msgstr "Convenţional" - -#: AppDatabase.py:1456 AppDatabase.py:1565 AppDatabase.py:1667 -#: AppEditors/FlatCAMGeoEditor.py:450 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:167 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:182 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:163 -#: AppTools/ToolIsolation.py:336 AppTools/ToolNCC.py:382 -#: AppTools/ToolPaint.py:328 -msgid "Overlap" -msgstr "Rată suprapunere" - -#: AppDatabase.py:1458 AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:184 -#: AppTools/ToolNCC.py:384 -msgid "" -"How much (percentage) of the tool width to overlap each tool pass.\n" -"Adjust the value starting with lower values\n" -"and increasing it if areas that should be cleared are still \n" -"not cleared.\n" -"Lower values = faster processing, faster execution on CNC.\n" -"Higher values = slow processing and slow execution on CNC\n" -"due of too many paths." -msgstr "" -"Cât de mult (fracţie) din diametrul uneltei să se suprapună la fiecare " -"trecere a uneltei.\n" -"Ajustează valoarea incepând de la valori mici\n" -"și pe urmă crește dacă ariile care ar trebui >curățate< incă\n" -"nu sunt procesate.\n" -"Valori scăzute = procesare rapidă, execuţie rapidă a PCB-ului.\n" -"Valori mari= procesare lentă cât și o execuţie la fel de lentă a PCB-ului,\n" -"datorită numărului mai mare de treceri-tăiere." - -#: AppDatabase.py:1477 AppDatabase.py:1586 AppEditors/FlatCAMGeoEditor.py:470 -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:72 -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:229 -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:59 -#: AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py:45 -#: AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py:53 -#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:66 -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:115 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:202 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:183 -#: AppTools/ToolCopperThieving.py:115 AppTools/ToolCopperThieving.py:366 -#: AppTools/ToolCorners.py:149 AppTools/ToolCutOut.py:190 -#: AppTools/ToolFiducials.py:175 AppTools/ToolInvertGerber.py:91 -#: AppTools/ToolInvertGerber.py:99 AppTools/ToolNCC.py:403 -#: AppTools/ToolPaint.py:349 -msgid "Margin" -msgstr "Margine" - -#: AppDatabase.py:1479 -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:74 -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:61 -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:125 -#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:68 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:204 -#: AppTools/ToolCopperThieving.py:117 AppTools/ToolCorners.py:151 -#: AppTools/ToolFiducials.py:177 AppTools/ToolNCC.py:405 -msgid "Bounding box margin." -msgstr "Marginea pentru forma înconjurătoare." - -#: AppDatabase.py:1490 AppDatabase.py:1601 AppEditors/FlatCAMGeoEditor.py:484 -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:105 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:106 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:215 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:198 -#: AppTools/ToolExtractDrills.py:128 AppTools/ToolNCC.py:416 -#: AppTools/ToolPaint.py:364 AppTools/ToolPunchGerber.py:139 -msgid "Method" -msgstr "Metodă" - -#: AppDatabase.py:1492 AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:217 -#: AppTools/ToolNCC.py:418 -msgid "" -"Algorithm for copper clearing:\n" -"- Standard: Fixed step inwards.\n" -"- Seed-based: Outwards from seed.\n" -"- Line-based: Parallel lines." -msgstr "" -"Algoritm pentru curătare cupru:\n" -"- Standard: pas fix spre interior.\n" -"- Punct-origine: înspre exterior porning de la punctul sămanță.\n" -"- Linii: linii paralele." - -#: AppDatabase.py:1500 AppDatabase.py:1615 AppEditors/FlatCAMGeoEditor.py:498 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:230 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217 -#: AppTools/ToolNCC.py:431 AppTools/ToolNCC.py:2232 AppTools/ToolNCC.py:2764 -#: AppTools/ToolNCC.py:2796 AppTools/ToolPaint.py:389 -#: AppTools/ToolPaint.py:1859 tclCommands/TclCommandCopperClear.py:126 -#: tclCommands/TclCommandCopperClear.py:134 tclCommands/TclCommandPaint.py:125 -msgid "Standard" -msgstr "Standard" - -#: AppDatabase.py:1500 AppDatabase.py:1615 AppEditors/FlatCAMGeoEditor.py:498 -#: AppEditors/FlatCAMGeoEditor.py:568 AppEditors/FlatCAMGeoEditor.py:5148 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:230 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217 -#: AppTools/ToolNCC.py:431 AppTools/ToolNCC.py:2243 AppTools/ToolNCC.py:2770 -#: AppTools/ToolNCC.py:2802 AppTools/ToolPaint.py:389 -#: AppTools/ToolPaint.py:1873 defaults.py:413 defaults.py:445 -#: tclCommands/TclCommandCopperClear.py:128 -#: tclCommands/TclCommandCopperClear.py:136 tclCommands/TclCommandPaint.py:127 -msgid "Seed" -msgstr "Punct_arbitrar" - -#: AppDatabase.py:1500 AppDatabase.py:1615 AppEditors/FlatCAMGeoEditor.py:498 -#: AppEditors/FlatCAMGeoEditor.py:5152 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:230 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217 -#: AppTools/ToolNCC.py:431 AppTools/ToolNCC.py:2254 AppTools/ToolPaint.py:389 -#: AppTools/ToolPaint.py:698 AppTools/ToolPaint.py:1887 -#: tclCommands/TclCommandCopperClear.py:130 tclCommands/TclCommandPaint.py:129 -msgid "Lines" -msgstr "Linii" - -#: AppDatabase.py:1500 AppDatabase.py:1615 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:230 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217 -#: AppTools/ToolNCC.py:431 AppTools/ToolNCC.py:2265 AppTools/ToolPaint.py:389 -#: AppTools/ToolPaint.py:2052 tclCommands/TclCommandPaint.py:133 -msgid "Combo" -msgstr "Combinat" - -#: AppDatabase.py:1508 AppDatabase.py:1626 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:237 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:224 -#: AppTools/ToolNCC.py:439 AppTools/ToolPaint.py:400 -msgid "Connect" -msgstr "Conectează" - -#: AppDatabase.py:1512 AppDatabase.py:1629 AppEditors/FlatCAMGeoEditor.py:507 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:239 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:226 -#: AppTools/ToolNCC.py:443 AppTools/ToolPaint.py:403 -msgid "" -"Draw lines between resulting\n" -"segments to minimize tool lifts." -msgstr "" -"Desenează linii între segmentele\n" -"rezultate pentru a minimiza miscarile\n" -"de ridicare a uneltei." - -#: AppDatabase.py:1518 AppDatabase.py:1633 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:246 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:232 -#: AppTools/ToolNCC.py:449 AppTools/ToolPaint.py:407 -msgid "Contour" -msgstr "Contur" - -#: AppDatabase.py:1522 AppDatabase.py:1636 AppEditors/FlatCAMGeoEditor.py:517 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:248 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:234 -#: AppTools/ToolNCC.py:453 AppTools/ToolPaint.py:410 -msgid "" -"Cut around the perimeter of the polygon\n" -"to trim rough edges." -msgstr "" -"Taie de-a lungul perimetrului poligonului\n" -"pentru a elimina bavurile." - -#: AppDatabase.py:1528 AppEditors/FlatCAMGeoEditor.py:611 -#: AppEditors/FlatCAMGrbEditor.py:5305 AppGUI/ObjectUI.py:143 -#: AppGUI/ObjectUI.py:1394 AppGUI/ObjectUI.py:2256 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:255 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:142 -#: AppTools/ToolEtchCompensation.py:199 AppTools/ToolEtchCompensation.py:207 -#: AppTools/ToolNCC.py:459 AppTools/ToolTransform.py:28 -msgid "Offset" -msgstr "Ofset" - -#: AppDatabase.py:1532 AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:257 -#: AppTools/ToolNCC.py:463 -msgid "" -"If used, it will add an offset to the copper features.\n" -"The copper clearing will finish to a distance\n" -"from the copper features.\n" -"The value can be between 0 and 10 FlatCAM units." -msgstr "" -"Dacă este folosit, va adăuga un offset la traseele de cupru.\n" -"Curătarea de cupru se va termina la o anume distanță\n" -"de traseele de cupru.\n" -"Valoarea poate fi cuprinsă între 0 și 10 unități FlatCAM." - -#: AppDatabase.py:1567 AppEditors/FlatCAMGeoEditor.py:452 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:165 -#: AppTools/ToolPaint.py:330 -msgid "" -"How much (percentage) of the tool width to overlap each tool pass.\n" -"Adjust the value starting with lower values\n" -"and increasing it if areas that should be painted are still \n" -"not painted.\n" -"Lower values = faster processing, faster execution on CNC.\n" -"Higher values = slow processing and slow execution on CNC\n" -"due of too many paths." -msgstr "" -"Cat de mult (fracţie) din diametrul uneltei să se suprapună la fiecare " -"trecere a uneltei.\n" -"Ajustează valoarea incepand de la valori mici și pe urma creste dacă ariile " -"care ar trebui\n" -" >pictate< incă nu sunt procesate.\n" -"Valori scăzute = procesare rapidă, execuţie rapidă a PCB-ului.\n" -"Valori mari= procesare lentă cat și o execuţie la fel de lentă a PCB-ului,\n" -"datorită numărului mai mare de treceri-tăiere." - -#: AppDatabase.py:1588 AppEditors/FlatCAMGeoEditor.py:472 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:185 -#: AppTools/ToolPaint.py:351 -msgid "" -"Distance by which to avoid\n" -"the edges of the polygon to\n" -"be painted." -msgstr "" -"Distanta fata de marginile\n" -"poligonului care trebuie\n" -"să fie >pictat<." - -#: AppDatabase.py:1603 AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:200 -#: AppTools/ToolPaint.py:366 -msgid "" -"Algorithm for painting:\n" -"- Standard: Fixed step inwards.\n" -"- Seed-based: Outwards from seed.\n" -"- Line-based: Parallel lines.\n" -"- Laser-lines: Active only for Gerber objects.\n" -"Will create lines that follow the traces.\n" -"- Combo: In case of failure a new method will be picked from the above\n" -"in the order specified." -msgstr "" -"Algoritm pentru 'pictare':\n" -"- Standard: pasi fixi spre interior\n" -"- Punct_origine: spre exterior plecand de la punctul samantă\n" -"- Linii: linii paralele\n" -"- Linii-laser: Activ numai pentru fisierele Gerber.\n" -"Va crea treceri-unelte care vor urmari traseele.\n" -"- Combinat: In caz de esec, o noua metodă va fi aleasă dintre cele enumerate " -"mai sus\n" -"intr-o ordine specificată." - -#: AppDatabase.py:1615 AppDatabase.py:1617 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217 -#: AppTools/ToolPaint.py:389 AppTools/ToolPaint.py:391 -#: AppTools/ToolPaint.py:692 AppTools/ToolPaint.py:697 -#: AppTools/ToolPaint.py:1901 tclCommands/TclCommandPaint.py:131 -msgid "Laser_lines" -msgstr "Linii-laser" - -#: AppDatabase.py:1654 AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:154 -#: AppTools/ToolIsolation.py:323 -msgid "Passes" -msgstr "Treceri" - -#: AppDatabase.py:1656 AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:156 -#: AppTools/ToolIsolation.py:325 -msgid "" -"Width of the isolation gap in\n" -"number (integer) of tool widths." -msgstr "" -"Lăţimea spatiului de izolare\n" -"in număr intreg de grosimi ale uneltei." - -#: AppDatabase.py:1669 AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:169 -#: AppTools/ToolIsolation.py:338 -msgid "How much (percentage) of the tool width to overlap each tool pass." -msgstr "" -"Cat de mult (procent) din diametrul uneltei, (lăţimea de tăiere), să se " -"suprapună peste trecerea anterioară." - -#: AppDatabase.py:1702 AppGUI/ObjectUI.py:236 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:201 -#: AppTools/ToolIsolation.py:371 -msgid "Follow" -msgstr "Urmează" - -#: AppDatabase.py:1704 AppDatabase.py:1710 AppGUI/ObjectUI.py:237 -#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:45 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:203 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:209 -#: AppTools/ToolIsolation.py:373 AppTools/ToolIsolation.py:379 -msgid "" -"Generate a 'Follow' geometry.\n" -"This means that it will cut through\n" -"the middle of the trace." -msgstr "" -"Generează o geometrie de tip 'urmăritor'.\n" -"Mai exact, in loc să se genereze un poligon se va genera o 'linie'.\n" -"In acest fel se taie prin mijlocul unui traseu și nu in jurul lui." - -#: AppDatabase.py:1719 AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:218 -#: AppTools/ToolIsolation.py:388 -msgid "Isolation Type" -msgstr "Tip de izolare" - -#: AppDatabase.py:1721 AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:220 -#: AppTools/ToolIsolation.py:390 -msgid "" -"Choose how the isolation will be executed:\n" -"- 'Full' -> complete isolation of polygons\n" -"- 'Ext' -> will isolate only on the outside\n" -"- 'Int' -> will isolate only on the inside\n" -"'Exterior' isolation is almost always possible\n" -"(with the right tool) but 'Interior'\n" -"isolation can be done only when there is an opening\n" -"inside of the polygon (e.g polygon is a 'doughnut' shape)." -msgstr "" -"Alegeți modul în care se va executa izolarea:\n" -"- 'Complet' -> izolarea completă a poligoanelor din obiect\n" -"- „Ext” -> se va izola doar la exterior\n" -"- „Int” -> se va izola doar pe interior\n" -"Izolarea „exterioară” este aproape întotdeauna posibilă\n" -"(cu instrumentul potrivit), dar izolarea\n" -"„Interior”se poate face numai atunci când există o deschidere\n" -"în interiorul poligonului (de exemplu, poligonul are o formă de „gogoașă”)." - -#: AppDatabase.py:1730 AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:75 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:229 -#: AppTools/ToolIsolation.py:399 -msgid "Full" -msgstr "Complet" - -#: AppDatabase.py:1731 AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:230 -#: AppTools/ToolIsolation.py:400 -msgid "Ext" -msgstr "Ext" - -#: AppDatabase.py:1732 AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:231 -#: AppTools/ToolIsolation.py:401 -msgid "Int" -msgstr "Int" - -#: AppDatabase.py:1755 -msgid "Add Tool in DB" -msgstr "Adăugați Unealta în DB" - -#: AppDatabase.py:1789 -msgid "Save DB" -msgstr "Salvează DB" - -#: AppDatabase.py:1791 -msgid "Save the Tools Database information's." -msgstr "Salvați informațiile din DB de Unelte." - -#: AppDatabase.py:1797 -msgid "" -"Insert a new tool in the Tools Table of the\n" -"object/application tool after selecting a tool\n" -"in the Tools Database." -msgstr "" -"Introduceți o unealtă nouă în tabela de Unelte a obiectului / Unealta " -"aplicației după selectarea unei unelte în baza de date a Uneltelor." - -#: AppEditors/FlatCAMExcEditor.py:50 AppEditors/FlatCAMExcEditor.py:74 -#: AppEditors/FlatCAMExcEditor.py:168 AppEditors/FlatCAMExcEditor.py:385 -#: AppEditors/FlatCAMExcEditor.py:589 AppEditors/FlatCAMGrbEditor.py:241 -#: AppEditors/FlatCAMGrbEditor.py:248 -msgid "Click to place ..." -msgstr "Click pt a plasa ..." - -#: AppEditors/FlatCAMExcEditor.py:58 -msgid "To add a drill first select a tool" -msgstr "" -"Pentru a adăuga o operaţie de găurire mai intai selectează un burghiu " -"(unealtă)" - -#: AppEditors/FlatCAMExcEditor.py:122 -msgid "Done. Drill added." -msgstr "Executat. Operaţie de găurire adăugată." - -#: AppEditors/FlatCAMExcEditor.py:176 -msgid "To add an Drill Array first select a tool in Tool Table" -msgstr "" -"Pentru a adăuga o arie de operațiuni de găurire mai intai selectează un " -"burghiu (unealtă)" - -#: AppEditors/FlatCAMExcEditor.py:192 AppEditors/FlatCAMExcEditor.py:415 -#: AppEditors/FlatCAMExcEditor.py:636 AppEditors/FlatCAMExcEditor.py:1151 -#: AppEditors/FlatCAMExcEditor.py:1178 AppEditors/FlatCAMGrbEditor.py:471 -#: AppEditors/FlatCAMGrbEditor.py:1944 AppEditors/FlatCAMGrbEditor.py:1974 -msgid "Click on target location ..." -msgstr "Click pe locatia tintă ..." - -#: AppEditors/FlatCAMExcEditor.py:211 -msgid "Click on the Drill Circular Array Start position" -msgstr "Click pe punctul de Start al ariei de operațiuni de găurire" - -#: AppEditors/FlatCAMExcEditor.py:233 AppEditors/FlatCAMExcEditor.py:677 -#: AppEditors/FlatCAMGrbEditor.py:516 -msgid "The value is not Float. Check for comma instead of dot separator." -msgstr "" -"Valoarea nu este număr Real. Verifică să nu fi folosit virgula in loc de " -"punct ca și separator decimal." - -#: AppEditors/FlatCAMExcEditor.py:237 -msgid "The value is mistyped. Check the value" -msgstr "Valoarea este gresită. Verifică ce ai introdus" - -#: AppEditors/FlatCAMExcEditor.py:336 -msgid "Too many drills for the selected spacing angle." -msgstr "Prea multe operațiuni de găurire pentru unghiul selectat." - -#: AppEditors/FlatCAMExcEditor.py:354 -msgid "Done. Drill Array added." -msgstr "Executat. Aria de operațiuni de găurire a fost adăugată." - -#: AppEditors/FlatCAMExcEditor.py:394 -msgid "To add a slot first select a tool" -msgstr "Pentru a adăuga un slot mai întâi, selectați o unealtă" - -#: AppEditors/FlatCAMExcEditor.py:454 AppEditors/FlatCAMExcEditor.py:461 -#: AppEditors/FlatCAMExcEditor.py:742 AppEditors/FlatCAMExcEditor.py:749 -msgid "Value is missing or wrong format. Add it and retry." -msgstr "" -"Valoarea lipsește sau formatul greșit. Adăugați-l și încercați din nou." - -#: AppEditors/FlatCAMExcEditor.py:559 -msgid "Done. Adding Slot completed." -msgstr "Terminat. Adăugarea slotului finalizată." - -#: AppEditors/FlatCAMExcEditor.py:597 -msgid "To add an Slot Array first select a tool in Tool Table" -msgstr "" -"Pentru a adăuga o arie de sloturi, selectați mai întâi o unealtă din tabelul " -"de unelte" - -#: AppEditors/FlatCAMExcEditor.py:655 -msgid "Click on the Slot Circular Array Start position" -msgstr "Faceți clic pe poziția de pornire a ariei circulare de slotuluri" - -#: AppEditors/FlatCAMExcEditor.py:680 AppEditors/FlatCAMGrbEditor.py:519 -msgid "The value is mistyped. Check the value." -msgstr "Valoarea este gresită. Verifică ce ai introdus." - -#: AppEditors/FlatCAMExcEditor.py:859 -msgid "Too many Slots for the selected spacing angle." -msgstr "Prea multe sloturi pentru unghiul de distanțare selectat." - -#: AppEditors/FlatCAMExcEditor.py:882 -msgid "Done. Slot Array added." -msgstr "Terminat. S-a adăugat aria de sloturi." - -#: AppEditors/FlatCAMExcEditor.py:904 -msgid "Click on the Drill(s) to resize ..." -msgstr "" -"Click pe operațiunile de găurire care se dorește să fie redimensionate ..." - -#: AppEditors/FlatCAMExcEditor.py:934 -msgid "Resize drill(s) failed. Please enter a diameter for resize." -msgstr "" -"Redimensionarea operațiunilor de găurire a eșuat. Adaugă o valoare pentru " -"dimetrul la care se face redimensionarea." - -#: AppEditors/FlatCAMExcEditor.py:1112 -msgid "Done. Drill/Slot Resize completed." -msgstr "Executat. Redimensionarea Perforării / slotului finalizată." - -#: AppEditors/FlatCAMExcEditor.py:1115 -msgid "Cancelled. No drills/slots selected for resize ..." -msgstr "Anulat. Nu au fost selectate găuri / sloturi pentru redimensionare ..." - -#: AppEditors/FlatCAMExcEditor.py:1153 AppEditors/FlatCAMGrbEditor.py:1946 -msgid "Click on reference location ..." -msgstr "Click pe locatia de referinţă ..." - -#: AppEditors/FlatCAMExcEditor.py:1210 -msgid "Done. Drill(s) Move completed." -msgstr "Executat. Operatiile de găurire au fost mutate." - -#: AppEditors/FlatCAMExcEditor.py:1318 -msgid "Done. Drill(s) copied." -msgstr "Executat. Operatiile de găurire au fost copiate." - -#: AppEditors/FlatCAMExcEditor.py:1557 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:26 -msgid "Excellon Editor" -msgstr "Editor Excellon" - -#: AppEditors/FlatCAMExcEditor.py:1564 AppEditors/FlatCAMGrbEditor.py:2469 -msgid "Name:" -msgstr "Nume:" - -#: AppEditors/FlatCAMExcEditor.py:1570 AppGUI/ObjectUI.py:540 -#: AppGUI/ObjectUI.py:1362 AppTools/ToolIsolation.py:118 -#: AppTools/ToolNCC.py:120 AppTools/ToolPaint.py:114 -#: AppTools/ToolSolderPaste.py:79 -msgid "Tools Table" -msgstr "Tabela Unelte" - -#: AppEditors/FlatCAMExcEditor.py:1572 AppGUI/ObjectUI.py:542 -msgid "" -"Tools in this Excellon object\n" -"when are used for drilling." -msgstr "" -"Burghie (unelte) in acest obiect Excellon\n" -"când se face găurire." - -#: AppEditors/FlatCAMExcEditor.py:1584 AppEditors/FlatCAMExcEditor.py:3041 -#: AppGUI/ObjectUI.py:560 AppObjects/FlatCAMExcellon.py:1265 -#: AppObjects/FlatCAMExcellon.py:1368 AppObjects/FlatCAMExcellon.py:1553 -#: AppTools/ToolIsolation.py:130 AppTools/ToolNCC.py:132 -#: AppTools/ToolPaint.py:127 AppTools/ToolPcbWizard.py:76 -#: AppTools/ToolProperties.py:416 AppTools/ToolProperties.py:476 -#: AppTools/ToolSolderPaste.py:90 tclCommands/TclCommandDrillcncjob.py:195 -msgid "Diameter" -msgstr "Diametru" - -#: AppEditors/FlatCAMExcEditor.py:1592 -msgid "Add/Delete Tool" -msgstr "Adaugă/Șterge Unealta" - -#: AppEditors/FlatCAMExcEditor.py:1594 -msgid "" -"Add/Delete a tool to the tool list\n" -"for this Excellon object." -msgstr "" -"Adaugă/Șterge o unealtă la lista de unelte\n" -"pentru acest obiect Excellon." - -#: AppEditors/FlatCAMExcEditor.py:1606 AppGUI/ObjectUI.py:1482 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:57 -msgid "Diameter for the new tool" -msgstr "Diametru pentru noua unealtă (burghiu, freza)" - -#: AppEditors/FlatCAMExcEditor.py:1616 -msgid "Add Tool" -msgstr "Adaugă Unealta" - -#: AppEditors/FlatCAMExcEditor.py:1618 -msgid "" -"Add a new tool to the tool list\n" -"with the diameter specified above." -msgstr "" -"Adaugă o unealtă noua la lista de unelte\n" -"cu diametrul specificat deasupra." - -#: AppEditors/FlatCAMExcEditor.py:1630 -msgid "Delete Tool" -msgstr "Șterge Unealta" - -#: AppEditors/FlatCAMExcEditor.py:1632 -msgid "" -"Delete a tool in the tool list\n" -"by selecting a row in the tool table." -msgstr "" -"Șterge o unealtă in lista de unelte\n" -"prin selectarea unei linii in tabela de unelte." - -#: AppEditors/FlatCAMExcEditor.py:1650 AppGUI/MainGUI.py:4392 -msgid "Resize Drill(s)" -msgstr "Redimensionare operațiuni de găurire" - -#: AppEditors/FlatCAMExcEditor.py:1652 -msgid "Resize a drill or a selection of drills." -msgstr "" -"Redimensionează o operaţie de găurire sau o selecţie de operațiuni de " -"găurire." - -#: AppEditors/FlatCAMExcEditor.py:1659 -msgid "Resize Dia" -msgstr "Redimens. Dia" - -#: AppEditors/FlatCAMExcEditor.py:1661 -msgid "Diameter to resize to." -msgstr "Diametrul la care se face redimensionarea." - -#: AppEditors/FlatCAMExcEditor.py:1672 -msgid "Resize" -msgstr "Redimensionează" - -#: AppEditors/FlatCAMExcEditor.py:1674 -msgid "Resize drill(s)" -msgstr "Redimensionează op. de găurire." - -#: AppEditors/FlatCAMExcEditor.py:1699 AppGUI/MainGUI.py:1514 -#: AppGUI/MainGUI.py:4391 -msgid "Add Drill Array" -msgstr "Adaugă o arie de op. găurire" - -#: AppEditors/FlatCAMExcEditor.py:1701 -msgid "Add an array of drills (linear or circular array)" -msgstr "Adaugă o arie de operațiuni de găurire (arie lineara sau circulara)." - -#: AppEditors/FlatCAMExcEditor.py:1707 -msgid "" -"Select the type of drills array to create.\n" -"It can be Linear X(Y) or Circular" -msgstr "" -"Selectează tipul de arii de operațiuni de găurire.\n" -"Poate fi Liniar X(Y) sau Circular" - -#: AppEditors/FlatCAMExcEditor.py:1710 AppEditors/FlatCAMExcEditor.py:1924 -#: AppEditors/FlatCAMGrbEditor.py:2782 -msgid "Linear" -msgstr "Liniar" - -#: AppEditors/FlatCAMExcEditor.py:1711 AppEditors/FlatCAMExcEditor.py:1925 -#: AppEditors/FlatCAMGrbEditor.py:2783 -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:52 -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:149 -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:107 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:52 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:151 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:78 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:61 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:70 -#: AppTools/ToolExtractDrills.py:78 AppTools/ToolExtractDrills.py:201 -#: AppTools/ToolFiducials.py:223 AppTools/ToolIsolation.py:207 -#: AppTools/ToolNCC.py:221 AppTools/ToolPaint.py:203 -#: AppTools/ToolPunchGerber.py:89 AppTools/ToolPunchGerber.py:229 -msgid "Circular" -msgstr "Circular" - -#: AppEditors/FlatCAMExcEditor.py:1719 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:68 -msgid "Nr of drills" -msgstr "Nr. op. găurire" - -#: AppEditors/FlatCAMExcEditor.py:1720 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:70 -msgid "Specify how many drills to be in the array." -msgstr "Specifica cate operațiuni de găurire să fie incluse in arie." - -#: AppEditors/FlatCAMExcEditor.py:1738 AppEditors/FlatCAMExcEditor.py:1788 -#: AppEditors/FlatCAMExcEditor.py:1860 AppEditors/FlatCAMExcEditor.py:1953 -#: AppEditors/FlatCAMExcEditor.py:2004 AppEditors/FlatCAMGrbEditor.py:1580 -#: AppEditors/FlatCAMGrbEditor.py:2811 AppEditors/FlatCAMGrbEditor.py:2860 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:178 -msgid "Direction" -msgstr "Direcţie" - -#: AppEditors/FlatCAMExcEditor.py:1740 AppEditors/FlatCAMExcEditor.py:1955 -#: AppEditors/FlatCAMGrbEditor.py:2813 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:86 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:234 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:123 -msgid "" -"Direction on which the linear array is oriented:\n" -"- 'X' - horizontal axis \n" -"- 'Y' - vertical axis or \n" -"- 'Angle' - a custom angle for the array inclination" -msgstr "" -"Directia in care aria lineara este orientata:\n" -"- 'X' - pe axa orizontala \n" -"- 'Y' - pe axa verticala sau \n" -"- 'Unghi' - un unghi particular pentru inclinatia ariei" - -#: AppEditors/FlatCAMExcEditor.py:1747 AppEditors/FlatCAMExcEditor.py:1869 -#: AppEditors/FlatCAMExcEditor.py:1962 AppEditors/FlatCAMGrbEditor.py:2820 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:92 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:187 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:240 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:129 -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:197 -#: AppTools/ToolFilm.py:239 -msgid "X" -msgstr "X" - -#: AppEditors/FlatCAMExcEditor.py:1748 AppEditors/FlatCAMExcEditor.py:1870 -#: AppEditors/FlatCAMExcEditor.py:1963 AppEditors/FlatCAMGrbEditor.py:2821 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:93 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:188 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:241 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:130 -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:198 -#: AppTools/ToolFilm.py:240 -msgid "Y" -msgstr "Y" - -#: AppEditors/FlatCAMExcEditor.py:1749 AppEditors/FlatCAMExcEditor.py:1766 -#: AppEditors/FlatCAMExcEditor.py:1800 AppEditors/FlatCAMExcEditor.py:1871 -#: AppEditors/FlatCAMExcEditor.py:1875 AppEditors/FlatCAMExcEditor.py:1964 -#: AppEditors/FlatCAMExcEditor.py:1982 AppEditors/FlatCAMExcEditor.py:2016 -#: AppEditors/FlatCAMGrbEditor.py:2822 AppEditors/FlatCAMGrbEditor.py:2839 -#: AppEditors/FlatCAMGrbEditor.py:2875 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:94 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:113 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:189 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:194 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:242 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:263 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:131 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:149 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:53 -#: AppTools/ToolDistance.py:120 AppTools/ToolDistanceMin.py:68 -#: AppTools/ToolTransform.py:60 -msgid "Angle" -msgstr "Unghi" - -#: AppEditors/FlatCAMExcEditor.py:1753 AppEditors/FlatCAMExcEditor.py:1968 -#: AppEditors/FlatCAMGrbEditor.py:2826 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:100 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:248 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:137 -msgid "Pitch" -msgstr "Pas" - -#: AppEditors/FlatCAMExcEditor.py:1755 AppEditors/FlatCAMExcEditor.py:1970 -#: AppEditors/FlatCAMGrbEditor.py:2828 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:102 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:250 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:139 -msgid "Pitch = Distance between elements of the array." -msgstr "Pas = Distanta între elementele ariei." - -#: AppEditors/FlatCAMExcEditor.py:1768 AppEditors/FlatCAMExcEditor.py:1984 -msgid "" -"Angle at which the linear array is placed.\n" -"The precision is of max 2 decimals.\n" -"Min value is: -360 degrees.\n" -"Max value is: 360.00 degrees." -msgstr "" -"Unghiul global la care aria lineara este plasata.\n" -"Precizia este de max 2 zecimale.\n" -"Val minima este: -360grade.\n" -"Val maxima este: 360.00 grade." - -#: AppEditors/FlatCAMExcEditor.py:1789 AppEditors/FlatCAMExcEditor.py:2005 -#: AppEditors/FlatCAMGrbEditor.py:2862 -msgid "" -"Direction for circular array.Can be CW = clockwise or CCW = counter " -"clockwise." -msgstr "" -"Directia pentru aria circulară. Poate fi CW = in sensul acelor de ceasornic " -"sau CCW = invers acelor de ceasornic." - -#: AppEditors/FlatCAMExcEditor.py:1796 AppEditors/FlatCAMExcEditor.py:2012 -#: AppEditors/FlatCAMGrbEditor.py:2870 -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:129 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:136 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:286 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:145 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:171 -msgid "CW" -msgstr "Orar" - -#: AppEditors/FlatCAMExcEditor.py:1797 AppEditors/FlatCAMExcEditor.py:2013 -#: AppEditors/FlatCAMGrbEditor.py:2871 -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:130 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:137 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:287 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:146 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:172 -msgid "CCW" -msgstr "Antiorar" - -#: AppEditors/FlatCAMExcEditor.py:1801 AppEditors/FlatCAMExcEditor.py:2017 -#: AppEditors/FlatCAMGrbEditor.py:2877 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:115 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:145 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:265 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:295 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:151 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:180 -msgid "Angle at which each element in circular array is placed." -msgstr "" -"Unghiul la care fiecare element al ariei circulare este plasat fata de " -"originea ariei." - -#: AppEditors/FlatCAMExcEditor.py:1835 -msgid "Slot Parameters" -msgstr "Parametrii pt slot" - -#: AppEditors/FlatCAMExcEditor.py:1837 -msgid "" -"Parameters for adding a slot (hole with oval shape)\n" -"either single or as an part of an array." -msgstr "" -"Parametri pentru adăugarea unui slot (gaură cu formă ovală)\n" -"fie single sau ca parte a unei arii." - -#: AppEditors/FlatCAMExcEditor.py:1846 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:162 -#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:56 -#: AppTools/ToolCorners.py:136 AppTools/ToolProperties.py:559 -msgid "Length" -msgstr "Lungime" - -#: AppEditors/FlatCAMExcEditor.py:1848 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:164 -msgid "Length = The length of the slot." -msgstr "Lungime = Lungimea slotului." - -#: AppEditors/FlatCAMExcEditor.py:1862 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:180 -msgid "" -"Direction on which the slot is oriented:\n" -"- 'X' - horizontal axis \n" -"- 'Y' - vertical axis or \n" -"- 'Angle' - a custom angle for the slot inclination" -msgstr "" -"Direcția spre care este orientat slotul:\n" -"- „X” - axa orizontală\n" -"- „Y” - axa verticală sau\n" -"- „Unghi” - un unghi personalizat pentru înclinarea slotului" - -#: AppEditors/FlatCAMExcEditor.py:1877 -msgid "" -"Angle at which the slot is placed.\n" -"The precision is of max 2 decimals.\n" -"Min value is: -360 degrees.\n" -"Max value is: 360.00 degrees." -msgstr "" -"Unghiul la care este plasat slotul.\n" -"Precizia este de maxim 2 zecimale.\n" -"Valoarea minimă este: -360 grade.\n" -"Valoarea maximă este: 360.00 grade." - -#: AppEditors/FlatCAMExcEditor.py:1910 -msgid "Slot Array Parameters" -msgstr "Parametri Arie sloturi" - -#: AppEditors/FlatCAMExcEditor.py:1912 -msgid "Parameters for the array of slots (linear or circular array)" -msgstr "Parametri pentru Aria de sloturi (arie circulară sau liniară)" - -#: AppEditors/FlatCAMExcEditor.py:1921 -msgid "" -"Select the type of slot array to create.\n" -"It can be Linear X(Y) or Circular" -msgstr "" -"Selectați tipul de slot pentru creare.\n" -"Poate fi liniar X (Y) sau circular" - -#: AppEditors/FlatCAMExcEditor.py:1933 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:219 -msgid "Nr of slots" -msgstr "Nr de sloturi" - -#: AppEditors/FlatCAMExcEditor.py:1934 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:221 -msgid "Specify how many slots to be in the array." -msgstr "Specificați câte sloturi trebuie să fie în arie." - -#: AppEditors/FlatCAMExcEditor.py:2452 AppObjects/FlatCAMExcellon.py:433 -msgid "Total Drills" -msgstr "Nr. Tot. Op. Găurire" - -#: AppEditors/FlatCAMExcEditor.py:2484 AppObjects/FlatCAMExcellon.py:464 -msgid "Total Slots" -msgstr "Nr. Tot. Sloturi" - -#: AppEditors/FlatCAMExcEditor.py:2559 AppEditors/FlatCAMGeoEditor.py:1075 -#: AppEditors/FlatCAMGeoEditor.py:1116 AppEditors/FlatCAMGeoEditor.py:1144 -#: AppEditors/FlatCAMGeoEditor.py:1172 AppEditors/FlatCAMGeoEditor.py:1216 -#: AppEditors/FlatCAMGeoEditor.py:1251 AppEditors/FlatCAMGeoEditor.py:1279 -#: AppObjects/FlatCAMGeometry.py:664 AppObjects/FlatCAMGeometry.py:1099 -#: AppObjects/FlatCAMGeometry.py:1841 AppObjects/FlatCAMGeometry.py:2491 -#: AppTools/ToolIsolation.py:1493 AppTools/ToolNCC.py:1516 -#: AppTools/ToolPaint.py:1268 AppTools/ToolPaint.py:1439 -#: AppTools/ToolSolderPaste.py:891 AppTools/ToolSolderPaste.py:964 -msgid "Wrong value format entered, use a number." -msgstr "Valoare in format incorect, foloseşte un număr." - -#: AppEditors/FlatCAMExcEditor.py:2570 -msgid "" -"Tool already in the original or actual tool list.\n" -"Save and reedit Excellon if you need to add this tool. " -msgstr "" -"Unealta este deja in lista originală sau actuală de unelte.\n" -"Salvează și reeditează obiectul Excellon dacă ai nevoie să adaugi această " -"unealtă. " - -#: AppEditors/FlatCAMExcEditor.py:2579 AppGUI/MainGUI.py:3364 -msgid "Added new tool with dia" -msgstr "O nouă unealtă este adăugată cu diametrul" - -#: AppEditors/FlatCAMExcEditor.py:2612 -msgid "Select a tool in Tool Table" -msgstr "Selectează o unealtă in Tabela de Unelte" - -#: AppEditors/FlatCAMExcEditor.py:2642 -msgid "Deleted tool with diameter" -msgstr "Unealtă ștearsă cu diametrul" - -#: AppEditors/FlatCAMExcEditor.py:2790 -msgid "Done. Tool edit completed." -msgstr "Terminat. Editarea uneltei a fost finalizată." - -#: AppEditors/FlatCAMExcEditor.py:3327 -msgid "There are no Tools definitions in the file. Aborting Excellon creation." -msgstr "" -"Nu exista definitii de unelte in fişier. Se anulează crearea de obiect " -"Excellon." - -#: AppEditors/FlatCAMExcEditor.py:3331 -msgid "An internal error has ocurred. See Shell.\n" -msgstr "" -"A apărut o eroare internă. Verifică in TCL Shell pt mai multe detalii.\n" - -#: AppEditors/FlatCAMExcEditor.py:3336 -msgid "Creating Excellon." -msgstr "In curs de creere Excellon." - -#: AppEditors/FlatCAMExcEditor.py:3350 -msgid "Excellon editing finished." -msgstr "Editarea Excellon a fost terminată." - -#: AppEditors/FlatCAMExcEditor.py:3367 -msgid "Cancelled. There is no Tool/Drill selected" -msgstr "Anulat. Nu este selectată nici-o unealtă sau op. de găurire" - -#: AppEditors/FlatCAMExcEditor.py:3601 AppEditors/FlatCAMExcEditor.py:3609 -#: AppEditors/FlatCAMGeoEditor.py:4343 AppEditors/FlatCAMGeoEditor.py:4357 -#: AppEditors/FlatCAMGrbEditor.py:1085 AppEditors/FlatCAMGrbEditor.py:1312 -#: AppEditors/FlatCAMGrbEditor.py:1497 AppEditors/FlatCAMGrbEditor.py:1766 -#: AppEditors/FlatCAMGrbEditor.py:4609 AppEditors/FlatCAMGrbEditor.py:4626 -#: AppGUI/MainGUI.py:2711 AppGUI/MainGUI.py:2723 -#: AppTools/ToolAlignObjects.py:393 AppTools/ToolAlignObjects.py:415 -#: App_Main.py:4677 App_Main.py:4831 -msgid "Done." -msgstr "Executat." - -#: AppEditors/FlatCAMExcEditor.py:3984 -msgid "Done. Drill(s) deleted." -msgstr "Executat. Operatiile de găurire șterse." - -#: AppEditors/FlatCAMExcEditor.py:4057 AppEditors/FlatCAMExcEditor.py:4067 -#: AppEditors/FlatCAMGrbEditor.py:5057 -msgid "Click on the circular array Center position" -msgstr "Click pe punctul de Centru al ariei circulare" - -#: AppEditors/FlatCAMGeoEditor.py:84 -msgid "Buffer distance:" -msgstr "Distanta pt bufer:" - -#: AppEditors/FlatCAMGeoEditor.py:85 -msgid "Buffer corner:" -msgstr "Coltul pt bufer:" - -#: AppEditors/FlatCAMGeoEditor.py:87 -msgid "" -"There are 3 types of corners:\n" -" - 'Round': the corner is rounded for exterior buffer.\n" -" - 'Square': the corner is met in a sharp angle for exterior buffer.\n" -" - 'Beveled': the corner is a line that directly connects the features " -"meeting in the corner" -msgstr "" -"Sunt disponibile 3 tipuri de colțuri:\n" -"- 'Rotund': coltul este rotunjit in cazul buferului exterior.\n" -"- 'Patrat:' colțurile formează unghi de 90 grade pt buferul exterior\n" -"- 'Beveled:' coltul este inlocuit cu o linie care uneste capetele liniilor " -"care formează coltul" - -#: AppEditors/FlatCAMGeoEditor.py:93 AppEditors/FlatCAMGrbEditor.py:2638 -msgid "Round" -msgstr "Rotund" - -#: AppEditors/FlatCAMGeoEditor.py:94 AppEditors/FlatCAMGrbEditor.py:2639 -#: AppGUI/ObjectUI.py:1149 AppGUI/ObjectUI.py:2004 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:225 -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:68 -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:175 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:68 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:177 -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:143 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:298 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:327 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:291 -#: AppTools/ToolExtractDrills.py:94 AppTools/ToolExtractDrills.py:227 -#: AppTools/ToolIsolation.py:545 AppTools/ToolNCC.py:583 -#: AppTools/ToolPaint.py:526 AppTools/ToolPunchGerber.py:105 -#: AppTools/ToolPunchGerber.py:255 AppTools/ToolQRCode.py:207 -msgid "Square" -msgstr "Patrat" - -#: AppEditors/FlatCAMGeoEditor.py:95 AppEditors/FlatCAMGrbEditor.py:2640 -msgid "Beveled" -msgstr "Beveled" - -#: AppEditors/FlatCAMGeoEditor.py:102 -msgid "Buffer Interior" -msgstr "Bufer interior" - -#: AppEditors/FlatCAMGeoEditor.py:104 -msgid "Buffer Exterior" -msgstr "Bufer Exterior" - -#: AppEditors/FlatCAMGeoEditor.py:110 -msgid "Full Buffer" -msgstr "Bufer complet" - -#: AppEditors/FlatCAMGeoEditor.py:131 AppEditors/FlatCAMGeoEditor.py:3016 -#: AppGUI/MainGUI.py:4301 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:191 -msgid "Buffer Tool" -msgstr "Unealta Bufer" - -#: AppEditors/FlatCAMGeoEditor.py:143 AppEditors/FlatCAMGeoEditor.py:160 -#: AppEditors/FlatCAMGeoEditor.py:177 AppEditors/FlatCAMGeoEditor.py:3035 -#: AppEditors/FlatCAMGeoEditor.py:3063 AppEditors/FlatCAMGeoEditor.py:3091 -#: AppEditors/FlatCAMGrbEditor.py:5110 -msgid "Buffer distance value is missing or wrong format. Add it and retry." -msgstr "" -"Valoarea distantei bufer lipseste sau este intr-un format gresit. Adaugă din " -"nou și reîncearcă." - -#: AppEditors/FlatCAMGeoEditor.py:241 -msgid "Font" -msgstr "Font" - -#: AppEditors/FlatCAMGeoEditor.py:322 AppGUI/MainGUI.py:1452 -msgid "Text" -msgstr "Text" - -#: AppEditors/FlatCAMGeoEditor.py:348 -msgid "Text Tool" -msgstr "Unealta Text" - -#: AppEditors/FlatCAMGeoEditor.py:404 AppGUI/MainGUI.py:502 -#: AppGUI/MainGUI.py:1199 AppGUI/ObjectUI.py:597 AppGUI/ObjectUI.py:1564 -#: AppObjects/FlatCAMExcellon.py:852 AppObjects/FlatCAMExcellon.py:1242 -#: AppObjects/FlatCAMGeometry.py:825 AppTools/ToolIsolation.py:313 -#: AppTools/ToolIsolation.py:1171 AppTools/ToolNCC.py:331 -#: AppTools/ToolNCC.py:797 AppTools/ToolPaint.py:313 AppTools/ToolPaint.py:766 -msgid "Tool" -msgstr "Unealta" - -#: AppEditors/FlatCAMGeoEditor.py:438 -msgid "Tool dia" -msgstr "Dia unealtă" - -#: AppEditors/FlatCAMGeoEditor.py:440 -msgid "Diameter of the tool to be used in the operation." -msgstr "Diametrul uneltei care este utilizata in operaţie." - -#: AppEditors/FlatCAMGeoEditor.py:486 -msgid "" -"Algorithm to paint the polygons:\n" -"- Standard: Fixed step inwards.\n" -"- Seed-based: Outwards from seed.\n" -"- Line-based: Parallel lines." -msgstr "" -"Algoritm pentru picture poligoane:\n" -"- Standard: pas fix spre interior.\n" -"- Semințe: înspre exterior porning de la punctul sămanță.\n" -"- Linii: linii paralele." - -#: AppEditors/FlatCAMGeoEditor.py:505 -msgid "Connect:" -msgstr "Conectează:" - -#: AppEditors/FlatCAMGeoEditor.py:515 -msgid "Contour:" -msgstr "Contur:" - -#: AppEditors/FlatCAMGeoEditor.py:528 AppGUI/MainGUI.py:1456 -msgid "Paint" -msgstr "Pictează" - -#: AppEditors/FlatCAMGeoEditor.py:546 AppGUI/MainGUI.py:912 -#: AppGUI/MainGUI.py:1944 AppGUI/ObjectUI.py:2069 AppTools/ToolPaint.py:42 -#: AppTools/ToolPaint.py:737 -msgid "Paint Tool" -msgstr "Unealta Paint" - -#: AppEditors/FlatCAMGeoEditor.py:582 AppEditors/FlatCAMGeoEditor.py:1054 -#: AppEditors/FlatCAMGeoEditor.py:3023 AppEditors/FlatCAMGeoEditor.py:3051 -#: AppEditors/FlatCAMGeoEditor.py:3079 AppEditors/FlatCAMGeoEditor.py:4496 -#: AppEditors/FlatCAMGrbEditor.py:5761 -msgid "Cancelled. No shape selected." -msgstr "Anulat. Nici-o forma geometrică nu este selectată." - -#: AppEditors/FlatCAMGeoEditor.py:595 AppEditors/FlatCAMGeoEditor.py:3041 -#: AppEditors/FlatCAMGeoEditor.py:3069 AppEditors/FlatCAMGeoEditor.py:3097 -#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:69 -#: AppTools/ToolProperties.py:117 AppTools/ToolProperties.py:162 -msgid "Tools" -msgstr "Unelte" - -#: AppEditors/FlatCAMGeoEditor.py:606 AppEditors/FlatCAMGeoEditor.py:990 -#: AppEditors/FlatCAMGrbEditor.py:5300 AppEditors/FlatCAMGrbEditor.py:5697 -#: AppGUI/MainGUI.py:935 AppGUI/MainGUI.py:1967 AppTools/ToolTransform.py:460 -msgid "Transform Tool" -msgstr "Unealta Transformare" - -#: AppEditors/FlatCAMGeoEditor.py:607 AppEditors/FlatCAMGeoEditor.py:672 -#: AppEditors/FlatCAMGrbEditor.py:5301 AppEditors/FlatCAMGrbEditor.py:5366 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:45 -#: AppTools/ToolTransform.py:24 AppTools/ToolTransform.py:466 -msgid "Rotate" -msgstr "Rotaţie" - -#: AppEditors/FlatCAMGeoEditor.py:608 AppEditors/FlatCAMGrbEditor.py:5302 -#: AppTools/ToolTransform.py:25 -msgid "Skew/Shear" -msgstr "Deformare" - -#: AppEditors/FlatCAMGeoEditor.py:609 AppEditors/FlatCAMGrbEditor.py:2687 -#: AppEditors/FlatCAMGrbEditor.py:5303 AppGUI/MainGUI.py:1057 -#: AppGUI/MainGUI.py:1499 AppGUI/MainGUI.py:2089 AppGUI/MainGUI.py:4513 -#: AppGUI/ObjectUI.py:125 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:95 -#: AppTools/ToolTransform.py:26 -msgid "Scale" -msgstr "Scalare" - -#: AppEditors/FlatCAMGeoEditor.py:610 AppEditors/FlatCAMGrbEditor.py:5304 -#: AppTools/ToolTransform.py:27 -msgid "Mirror (Flip)" -msgstr "Oglindire" - -#: AppEditors/FlatCAMGeoEditor.py:624 AppEditors/FlatCAMGrbEditor.py:5318 -#: AppGUI/MainGUI.py:844 AppGUI/MainGUI.py:1878 -msgid "Editor" -msgstr "Editor" - -#: AppEditors/FlatCAMGeoEditor.py:656 AppEditors/FlatCAMGrbEditor.py:5350 -msgid "Angle:" -msgstr "Unghi:" - -#: AppEditors/FlatCAMGeoEditor.py:658 AppEditors/FlatCAMGrbEditor.py:5352 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:55 -#: AppTools/ToolTransform.py:62 -msgid "" -"Angle for Rotation action, in degrees.\n" -"Float number between -360 and 359.\n" -"Positive numbers for CW motion.\n" -"Negative numbers for CCW motion." -msgstr "" -"Unghiul pentru Rotaţie, in grade. Număr Real cu valori între -360 și 359.\n" -"Numerele pozitive inseamna o mișcare in sens ace ceasornic.\n" -"Numerele negative inseamna o mișcare in sens invers ace ceasornic." - -#: AppEditors/FlatCAMGeoEditor.py:674 AppEditors/FlatCAMGrbEditor.py:5368 -msgid "" -"Rotate the selected shape(s).\n" -"The point of reference is the middle of\n" -"the bounding box for all selected shapes." -msgstr "" -"Roteste formele selectate.\n" -"Punctul de referinţă este mijlocul\n" -"formei înconjurătoare care cuprinde\n" -"toate formele selectate." - -#: AppEditors/FlatCAMGeoEditor.py:697 AppEditors/FlatCAMGrbEditor.py:5391 -msgid "Angle X:" -msgstr "Unghi X:" - -#: AppEditors/FlatCAMGeoEditor.py:699 AppEditors/FlatCAMGeoEditor.py:719 -#: AppEditors/FlatCAMGrbEditor.py:5393 AppEditors/FlatCAMGrbEditor.py:5413 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:74 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:88 -#: AppTools/ToolCalibration.py:505 AppTools/ToolCalibration.py:518 -msgid "" -"Angle for Skew action, in degrees.\n" -"Float number between -360 and 359." -msgstr "" -"Valoarea unghiului de Deformare, in grade.\n" -"Ia valori Reale între -360 and 359 grade." - -#: AppEditors/FlatCAMGeoEditor.py:710 AppEditors/FlatCAMGrbEditor.py:5404 -#: AppTools/ToolTransform.py:467 -msgid "Skew X" -msgstr "Deformare X" - -#: AppEditors/FlatCAMGeoEditor.py:712 AppEditors/FlatCAMGeoEditor.py:732 -#: AppEditors/FlatCAMGrbEditor.py:5406 AppEditors/FlatCAMGrbEditor.py:5426 -msgid "" -"Skew/shear the selected shape(s).\n" -"The point of reference is the middle of\n" -"the bounding box for all selected shapes." -msgstr "" -"Deformează formele selectate.\n" -"Punctul de referinţă este mijlocul\n" -"formei înconjurătoare care cuprinde\n" -"toate formele selectate." - -#: AppEditors/FlatCAMGeoEditor.py:717 AppEditors/FlatCAMGrbEditor.py:5411 -msgid "Angle Y:" -msgstr "Unghi Y:" - -#: AppEditors/FlatCAMGeoEditor.py:730 AppEditors/FlatCAMGrbEditor.py:5424 -#: AppTools/ToolTransform.py:468 -msgid "Skew Y" -msgstr "Deformare Y" - -#: AppEditors/FlatCAMGeoEditor.py:758 AppEditors/FlatCAMGrbEditor.py:5452 -msgid "Factor X:" -msgstr "Factor X:" - -#: AppEditors/FlatCAMGeoEditor.py:760 AppEditors/FlatCAMGrbEditor.py:5454 -#: AppTools/ToolCalibration.py:469 -msgid "Factor for Scale action over X axis." -msgstr "Factor pentru scalarea pe axa X." - -#: AppEditors/FlatCAMGeoEditor.py:770 AppEditors/FlatCAMGrbEditor.py:5464 -#: AppTools/ToolTransform.py:469 -msgid "Scale X" -msgstr "Scalează X" - -#: AppEditors/FlatCAMGeoEditor.py:772 AppEditors/FlatCAMGeoEditor.py:791 -#: AppEditors/FlatCAMGrbEditor.py:5466 AppEditors/FlatCAMGrbEditor.py:5485 -msgid "" -"Scale the selected shape(s).\n" -"The point of reference depends on \n" -"the Scale reference checkbox state." -msgstr "" -"Scalează formele selectate.\n" -"Punctul de referinţă depinde de \n" -"starea checkbox-ului >Referința scalare<." - -#: AppEditors/FlatCAMGeoEditor.py:777 AppEditors/FlatCAMGrbEditor.py:5471 -msgid "Factor Y:" -msgstr "Factor Y:" - -#: AppEditors/FlatCAMGeoEditor.py:779 AppEditors/FlatCAMGrbEditor.py:5473 -#: AppTools/ToolCalibration.py:481 -msgid "Factor for Scale action over Y axis." -msgstr "Factor pentru scalarea pe axa Y." - -#: AppEditors/FlatCAMGeoEditor.py:789 AppEditors/FlatCAMGrbEditor.py:5483 -#: AppTools/ToolTransform.py:470 -msgid "Scale Y" -msgstr "Scalează Y" - -#: AppEditors/FlatCAMGeoEditor.py:798 AppEditors/FlatCAMGrbEditor.py:5492 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:124 -#: AppTools/ToolTransform.py:189 -msgid "Link" -msgstr "Legatura" - -#: AppEditors/FlatCAMGeoEditor.py:800 AppEditors/FlatCAMGrbEditor.py:5494 -msgid "" -"Scale the selected shape(s)\n" -"using the Scale Factor X for both axis." -msgstr "" -"Scalează formele selectate\n" -"folsoind factorul: Factor X pentru ambele axe." - -#: AppEditors/FlatCAMGeoEditor.py:806 AppEditors/FlatCAMGrbEditor.py:5500 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:132 -#: AppTools/ToolTransform.py:196 -msgid "Scale Reference" -msgstr "Referința scalare" - -#: AppEditors/FlatCAMGeoEditor.py:808 AppEditors/FlatCAMGrbEditor.py:5502 -msgid "" -"Scale the selected shape(s)\n" -"using the origin reference when checked,\n" -"and the center of the biggest bounding box\n" -"of the selected shapes when unchecked." -msgstr "" -"Scalează formele selectate.\n" -"Punctul de referinţă este mijlocul\n" -"formei înconjurătoare care cuprinde\n" -"toate formele selectate când nu este\n" -"bifat și este originea când este bifat." - -#: AppEditors/FlatCAMGeoEditor.py:836 AppEditors/FlatCAMGrbEditor.py:5531 -msgid "Value X:" -msgstr "Valoare X:" - -#: AppEditors/FlatCAMGeoEditor.py:838 AppEditors/FlatCAMGrbEditor.py:5533 -msgid "Value for Offset action on X axis." -msgstr "Valoare pentru deplasarea pe axa X." - -#: AppEditors/FlatCAMGeoEditor.py:848 AppEditors/FlatCAMGrbEditor.py:5543 -#: AppTools/ToolTransform.py:473 -msgid "Offset X" -msgstr "Ofset pe X" - -#: AppEditors/FlatCAMGeoEditor.py:850 AppEditors/FlatCAMGeoEditor.py:870 -#: AppEditors/FlatCAMGrbEditor.py:5545 AppEditors/FlatCAMGrbEditor.py:5565 -msgid "" -"Offset the selected shape(s).\n" -"The point of reference is the middle of\n" -"the bounding box for all selected shapes.\n" -msgstr "" -"Deplasează formele selectate\n" -"Punctul de referinţă este mijlocul\n" -"formei înconjurătoare care cuprinde\n" -"toate formele selectate.\n" - -#: AppEditors/FlatCAMGeoEditor.py:856 AppEditors/FlatCAMGrbEditor.py:5551 -msgid "Value Y:" -msgstr "Valoare Y:" - -#: AppEditors/FlatCAMGeoEditor.py:858 AppEditors/FlatCAMGrbEditor.py:5553 -msgid "Value for Offset action on Y axis." -msgstr "Valoare pentru deplasarea pe axa Y." - -#: AppEditors/FlatCAMGeoEditor.py:868 AppEditors/FlatCAMGrbEditor.py:5563 -#: AppTools/ToolTransform.py:474 -msgid "Offset Y" -msgstr "Ofset pe Y" - -#: AppEditors/FlatCAMGeoEditor.py:899 AppEditors/FlatCAMGrbEditor.py:5594 -#: AppTools/ToolTransform.py:475 -msgid "Flip on X" -msgstr "Oglindește pe X" - -#: AppEditors/FlatCAMGeoEditor.py:901 AppEditors/FlatCAMGeoEditor.py:908 -#: AppEditors/FlatCAMGrbEditor.py:5596 AppEditors/FlatCAMGrbEditor.py:5603 -msgid "" -"Flip the selected shape(s) over the X axis.\n" -"Does not create a new shape." -msgstr "" -"Oglindește formele selectate peste axa X\n" -"Nu crează noi forme." - -#: AppEditors/FlatCAMGeoEditor.py:906 AppEditors/FlatCAMGrbEditor.py:5601 -#: AppTools/ToolTransform.py:476 -msgid "Flip on Y" -msgstr "Oglindește pe Y" - -#: AppEditors/FlatCAMGeoEditor.py:914 AppEditors/FlatCAMGrbEditor.py:5609 -msgid "Ref Pt" -msgstr "Pt ref" - -#: AppEditors/FlatCAMGeoEditor.py:916 AppEditors/FlatCAMGrbEditor.py:5611 -msgid "" -"Flip the selected shape(s)\n" -"around the point in Point Entry Field.\n" -"\n" -"The point coordinates can be captured by\n" -"left click on canvas together with pressing\n" -"SHIFT key. \n" -"Then click Add button to insert coordinates.\n" -"Or enter the coords in format (x, y) in the\n" -"Point Entry field and click Flip on X(Y)" -msgstr "" -"Oglindește formele selectate\n" -"in jurul punctului din câmpul >Punct<\n" -"\n" -"Coordonatele punctului pot fi obtinute\n" -"prin click pe canvas in timp ce se tine apasata\n" -"tasta SHIFT.\n" -"Apoi click pe butonul >Adaugă< pentru a insera\n" -"coordonatele.\n" -"Alternativ se pot introduce manual in formatul (x, y). \n" -"La final click pe >Oglindește pe X(Y)<." - -#: AppEditors/FlatCAMGeoEditor.py:928 AppEditors/FlatCAMGrbEditor.py:5623 -msgid "Point:" -msgstr "Punct:" - -#: AppEditors/FlatCAMGeoEditor.py:930 AppEditors/FlatCAMGrbEditor.py:5625 -#: AppTools/ToolTransform.py:299 -msgid "" -"Coordinates in format (x, y) used as reference for mirroring.\n" -"The 'x' in (x, y) will be used when using Flip on X and\n" -"the 'y' in (x, y) will be used when using Flip on Y." -msgstr "" -"Coordonatele in format (x, y) folosite pentru oglindire.\n" -"Valoarea 'x' in (x, y) va fi folosita când se face oglindire pe X\n" -"și valoarea 'y' in (x, y) va fi folosita când se face oglindire pe Y." - -#: AppEditors/FlatCAMGeoEditor.py:938 AppEditors/FlatCAMGrbEditor.py:2590 -#: AppEditors/FlatCAMGrbEditor.py:5635 AppGUI/ObjectUI.py:1494 -#: AppTools/ToolDblSided.py:192 AppTools/ToolDblSided.py:425 -#: AppTools/ToolIsolation.py:276 AppTools/ToolIsolation.py:610 -#: AppTools/ToolNCC.py:294 AppTools/ToolNCC.py:631 AppTools/ToolPaint.py:276 -#: AppTools/ToolPaint.py:675 AppTools/ToolSolderPaste.py:127 -#: AppTools/ToolSolderPaste.py:605 AppTools/ToolTransform.py:478 -#: App_Main.py:5670 -msgid "Add" -msgstr "Adaugă" - -#: AppEditors/FlatCAMGeoEditor.py:940 AppEditors/FlatCAMGrbEditor.py:5637 -#: AppTools/ToolTransform.py:309 -msgid "" -"The point coordinates can be captured by\n" -"left click on canvas together with pressing\n" -"SHIFT key. Then click Add button to insert." -msgstr "" -"Coordonatele punctului se pot obtine\n" -"prin click pe canvas in timp ce se tine apasata\n" -"tasta SHIFT.\n" -"La final, apasa butonul >Adaugă< pt a le insera." - -#: AppEditors/FlatCAMGeoEditor.py:1303 AppEditors/FlatCAMGrbEditor.py:5945 -msgid "No shape selected. Please Select a shape to rotate!" -msgstr "" -"Nici-o forma nu este selectată. Selectează o forma pentru a putea face " -"Rotaţie!" - -#: AppEditors/FlatCAMGeoEditor.py:1306 AppEditors/FlatCAMGrbEditor.py:5948 -#: AppTools/ToolTransform.py:679 -msgid "Appying Rotate" -msgstr "Execuţie Rotaţie" - -#: AppEditors/FlatCAMGeoEditor.py:1332 AppEditors/FlatCAMGrbEditor.py:5980 -msgid "Done. Rotate completed." -msgstr "Executat. Rotaţie finalizată." - -#: AppEditors/FlatCAMGeoEditor.py:1334 -msgid "Rotation action was not executed" -msgstr "Actiunea de rotatie nu a fost efectuată" - -#: AppEditors/FlatCAMGeoEditor.py:1353 AppEditors/FlatCAMGrbEditor.py:5999 -msgid "No shape selected. Please Select a shape to flip!" -msgstr "" -"Nici-o formă nu este selectată. Selectează o formă pentru a putea face " -"Oglindire!" - -#: AppEditors/FlatCAMGeoEditor.py:1356 AppEditors/FlatCAMGrbEditor.py:6002 -#: AppTools/ToolTransform.py:728 -msgid "Applying Flip" -msgstr "Execuţie Oglindire" - -#: AppEditors/FlatCAMGeoEditor.py:1385 AppEditors/FlatCAMGrbEditor.py:6040 -#: AppTools/ToolTransform.py:769 -msgid "Flip on the Y axis done" -msgstr "Oglindire pe axa Y executată" - -#: AppEditors/FlatCAMGeoEditor.py:1389 AppEditors/FlatCAMGrbEditor.py:6049 -#: AppTools/ToolTransform.py:778 -msgid "Flip on the X axis done" -msgstr "Oglindire pe axa X executată" - -#: AppEditors/FlatCAMGeoEditor.py:1397 -msgid "Flip action was not executed" -msgstr "Actiunea de oglindire nu a fost efectuată" - -#: AppEditors/FlatCAMGeoEditor.py:1415 AppEditors/FlatCAMGrbEditor.py:6069 -msgid "No shape selected. Please Select a shape to shear/skew!" -msgstr "" -"Nici-o formă nu este selectată. Selectează o formă pentru a putea face " -"Deformare!" - -#: AppEditors/FlatCAMGeoEditor.py:1418 AppEditors/FlatCAMGrbEditor.py:6072 -#: AppTools/ToolTransform.py:801 -msgid "Applying Skew" -msgstr "Execuţie Deformare" - -#: AppEditors/FlatCAMGeoEditor.py:1441 AppEditors/FlatCAMGrbEditor.py:6106 -msgid "Skew on the X axis done" -msgstr "Oglindire pe axa X executată" - -#: AppEditors/FlatCAMGeoEditor.py:1443 AppEditors/FlatCAMGrbEditor.py:6108 -msgid "Skew on the Y axis done" -msgstr "Oglindire pe axa Y executată" - -#: AppEditors/FlatCAMGeoEditor.py:1446 -msgid "Skew action was not executed" -msgstr "Actiunea de deformare nu a fost efectuată" - -#: AppEditors/FlatCAMGeoEditor.py:1468 AppEditors/FlatCAMGrbEditor.py:6130 -msgid "No shape selected. Please Select a shape to scale!" -msgstr "" -"Nici-o formă nu este selectată. Selectează o formă pentru a putea face " -"Scalare!" - -#: AppEditors/FlatCAMGeoEditor.py:1471 AppEditors/FlatCAMGrbEditor.py:6133 -#: AppTools/ToolTransform.py:847 -msgid "Applying Scale" -msgstr "Execuţie Scalare" - -#: AppEditors/FlatCAMGeoEditor.py:1503 AppEditors/FlatCAMGrbEditor.py:6170 -msgid "Scale on the X axis done" -msgstr "Scalarea pe axa X executată" - -#: AppEditors/FlatCAMGeoEditor.py:1505 AppEditors/FlatCAMGrbEditor.py:6172 -msgid "Scale on the Y axis done" -msgstr "Scalarea pe axa Y executată" - -#: AppEditors/FlatCAMGeoEditor.py:1507 -msgid "Scale action was not executed" -msgstr "Scalarea nu a fost efectuată" - -#: AppEditors/FlatCAMGeoEditor.py:1522 AppEditors/FlatCAMGrbEditor.py:6189 -msgid "No shape selected. Please Select a shape to offset!" -msgstr "" -"Nici-o formă nu este selectată. Selectează o formă pentru a putea face Ofset!" - -#: AppEditors/FlatCAMGeoEditor.py:1525 AppEditors/FlatCAMGrbEditor.py:6192 -#: AppTools/ToolTransform.py:897 -msgid "Applying Offset" -msgstr "Execuţie Ofset" - -#: AppEditors/FlatCAMGeoEditor.py:1535 AppEditors/FlatCAMGrbEditor.py:6213 -msgid "Offset on the X axis done" -msgstr "Ofset pe axa X efectuat" - -#: AppEditors/FlatCAMGeoEditor.py:1537 AppEditors/FlatCAMGrbEditor.py:6215 -msgid "Offset on the Y axis done" -msgstr "Ofset pe axa Y efectuat" - -#: AppEditors/FlatCAMGeoEditor.py:1540 -msgid "Offset action was not executed" -msgstr "Actiuena de Ofset nu a fost efectuată" - -#: AppEditors/FlatCAMGeoEditor.py:1544 AppEditors/FlatCAMGrbEditor.py:6222 -msgid "Rotate ..." -msgstr "Rotaţie ..." - -#: AppEditors/FlatCAMGeoEditor.py:1545 AppEditors/FlatCAMGeoEditor.py:1600 -#: AppEditors/FlatCAMGeoEditor.py:1617 AppEditors/FlatCAMGrbEditor.py:6223 -#: AppEditors/FlatCAMGrbEditor.py:6272 AppEditors/FlatCAMGrbEditor.py:6287 -msgid "Enter an Angle Value (degrees)" -msgstr "Introdu o valoare in grade pt Unghi" - -#: AppEditors/FlatCAMGeoEditor.py:1554 AppEditors/FlatCAMGrbEditor.py:6231 -msgid "Geometry shape rotate done" -msgstr "Rotatia formei geometrice executată" - -#: AppEditors/FlatCAMGeoEditor.py:1558 AppEditors/FlatCAMGrbEditor.py:6234 -msgid "Geometry shape rotate cancelled" -msgstr "Rotatia formei geometrice anulată" - -#: AppEditors/FlatCAMGeoEditor.py:1563 AppEditors/FlatCAMGrbEditor.py:6239 -msgid "Offset on X axis ..." -msgstr "Ofset pe axa X ..." - -#: AppEditors/FlatCAMGeoEditor.py:1564 AppEditors/FlatCAMGeoEditor.py:1583 -#: AppEditors/FlatCAMGrbEditor.py:6240 AppEditors/FlatCAMGrbEditor.py:6257 -msgid "Enter a distance Value" -msgstr "Introdu of valoare pt Distantă" - -#: AppEditors/FlatCAMGeoEditor.py:1573 AppEditors/FlatCAMGrbEditor.py:6248 -msgid "Geometry shape offset on X axis done" -msgstr "Ofset pe axa X executat" - -#: AppEditors/FlatCAMGeoEditor.py:1577 AppEditors/FlatCAMGrbEditor.py:6251 -msgid "Geometry shape offset X cancelled" -msgstr "Ofset pe axa X anulat" - -#: AppEditors/FlatCAMGeoEditor.py:1582 AppEditors/FlatCAMGrbEditor.py:6256 -msgid "Offset on Y axis ..." -msgstr "Ofset pe axa Y ..." - -#: AppEditors/FlatCAMGeoEditor.py:1592 AppEditors/FlatCAMGrbEditor.py:6265 -msgid "Geometry shape offset on Y axis done" -msgstr "Ofset pe axa Y executat" - -#: AppEditors/FlatCAMGeoEditor.py:1596 -msgid "Geometry shape offset on Y axis canceled" -msgstr "Ofset pe axa Y anulat" - -#: AppEditors/FlatCAMGeoEditor.py:1599 AppEditors/FlatCAMGrbEditor.py:6271 -msgid "Skew on X axis ..." -msgstr "Deformare pe axa X ..." - -#: AppEditors/FlatCAMGeoEditor.py:1609 AppEditors/FlatCAMGrbEditor.py:6280 -msgid "Geometry shape skew on X axis done" -msgstr "Deformarea pe axa X executată" - -#: AppEditors/FlatCAMGeoEditor.py:1613 -msgid "Geometry shape skew on X axis canceled" -msgstr "Deformarea pe axa X anulată" - -#: AppEditors/FlatCAMGeoEditor.py:1616 AppEditors/FlatCAMGrbEditor.py:6286 -msgid "Skew on Y axis ..." -msgstr "Deformare pe axa Y ..." - -#: AppEditors/FlatCAMGeoEditor.py:1626 AppEditors/FlatCAMGrbEditor.py:6295 -msgid "Geometry shape skew on Y axis done" -msgstr "Deformarea pe axa Y executată" - -#: AppEditors/FlatCAMGeoEditor.py:1630 -msgid "Geometry shape skew on Y axis canceled" -msgstr "Deformarea pe axa Y anulată" - -#: AppEditors/FlatCAMGeoEditor.py:2007 AppEditors/FlatCAMGeoEditor.py:2078 -#: AppEditors/FlatCAMGrbEditor.py:1444 AppEditors/FlatCAMGrbEditor.py:1522 -msgid "Click on Center point ..." -msgstr "Click pe punctul de Centru ..." - -#: AppEditors/FlatCAMGeoEditor.py:2020 AppEditors/FlatCAMGrbEditor.py:1454 -msgid "Click on Perimeter point to complete ..." -msgstr "Click pe un punct aflat pe Circumferintă pentru terminare ..." - -#: AppEditors/FlatCAMGeoEditor.py:2052 -msgid "Done. Adding Circle completed." -msgstr "Executat. Adăugarea unei forme Cerc terminată." - -#: AppEditors/FlatCAMGeoEditor.py:2106 AppEditors/FlatCAMGrbEditor.py:1555 -msgid "Click on Start point ..." -msgstr "Click pe punctul de Start ..." - -#: AppEditors/FlatCAMGeoEditor.py:2108 AppEditors/FlatCAMGrbEditor.py:1557 -msgid "Click on Point3 ..." -msgstr "Click pe Punctul3 ..." - -#: AppEditors/FlatCAMGeoEditor.py:2110 AppEditors/FlatCAMGrbEditor.py:1559 -msgid "Click on Stop point ..." -msgstr "Click pe punctulde Stop ..." - -#: AppEditors/FlatCAMGeoEditor.py:2115 AppEditors/FlatCAMGrbEditor.py:1564 -msgid "Click on Stop point to complete ..." -msgstr "Click pe punctul de Stop pentru terminare ..." - -#: AppEditors/FlatCAMGeoEditor.py:2117 AppEditors/FlatCAMGrbEditor.py:1566 -msgid "Click on Point2 to complete ..." -msgstr "Click pe Punctul2 pentru terminare ..." - -#: AppEditors/FlatCAMGeoEditor.py:2119 AppEditors/FlatCAMGrbEditor.py:1568 -msgid "Click on Center point to complete ..." -msgstr "Click pe punctul de Centru pentru terminare ..." - -#: AppEditors/FlatCAMGeoEditor.py:2131 -#, python-format -msgid "Direction: %s" -msgstr "Direcţie: %s" - -#: AppEditors/FlatCAMGeoEditor.py:2145 AppEditors/FlatCAMGrbEditor.py:1594 -msgid "Mode: Start -> Stop -> Center. Click on Start point ..." -msgstr "Mod: Start -> Stop -> Centru. Click pe punctul de Start ..." - -#: AppEditors/FlatCAMGeoEditor.py:2148 AppEditors/FlatCAMGrbEditor.py:1597 -msgid "Mode: Point1 -> Point3 -> Point2. Click on Point1 ..." -msgstr "Mod: Point1 -> Point3 -> Point2. Click pe Punctul1 ..." - -#: AppEditors/FlatCAMGeoEditor.py:2151 AppEditors/FlatCAMGrbEditor.py:1600 -msgid "Mode: Center -> Start -> Stop. Click on Center point ..." -msgstr "Mod: Center -> Start -> Stop. Click pe punctul de Centru ..." - -#: AppEditors/FlatCAMGeoEditor.py:2292 -msgid "Done. Arc completed." -msgstr "Executat. Adăugarea unei forme Arc terminată." - -#: AppEditors/FlatCAMGeoEditor.py:2323 AppEditors/FlatCAMGeoEditor.py:2396 -msgid "Click on 1st corner ..." -msgstr "Click pe primul colt ..." - -#: AppEditors/FlatCAMGeoEditor.py:2335 -msgid "Click on opposite corner to complete ..." -msgstr "Click pe punctul opus pentru terminare ..." - -#: AppEditors/FlatCAMGeoEditor.py:2365 -msgid "Done. Rectangle completed." -msgstr "Executat. Adăugare Pătrat terminată." - -#: AppEditors/FlatCAMGeoEditor.py:2409 AppTools/ToolIsolation.py:2527 -#: AppTools/ToolNCC.py:1754 AppTools/ToolPaint.py:1647 Common.py:322 -msgid "Click on next Point or click right mouse button to complete ..." -msgstr "" -"Click pe punctul următor sau click buton dreapta al mousului pentru " -"terminare ..." - -#: AppEditors/FlatCAMGeoEditor.py:2440 -msgid "Done. Polygon completed." -msgstr "Executat. Adăugarea unei forme Poligon terminată." - -#: AppEditors/FlatCAMGeoEditor.py:2454 AppEditors/FlatCAMGeoEditor.py:2519 -#: AppEditors/FlatCAMGrbEditor.py:1102 AppEditors/FlatCAMGrbEditor.py:1322 -msgid "Backtracked one point ..." -msgstr "Revenit la penultimul Punct ..." - -#: AppEditors/FlatCAMGeoEditor.py:2497 -msgid "Done. Path completed." -msgstr "Executat. Traseu finalizat." - -#: AppEditors/FlatCAMGeoEditor.py:2656 -msgid "No shape selected. Select a shape to explode" -msgstr "Nicio formă selectată. Selectați o formă pentru a o exploda" - -#: AppEditors/FlatCAMGeoEditor.py:2689 -msgid "Done. Polygons exploded into lines." -msgstr "Terminat. Poligoanele au fost descompuse în linii." - -#: AppEditors/FlatCAMGeoEditor.py:2721 -msgid "MOVE: No shape selected. Select a shape to move" -msgstr "" -"MUTARE: Nici-o formă nu este selectată. Selectează o formă pentru a putea " -"face deplasare" - -#: AppEditors/FlatCAMGeoEditor.py:2724 AppEditors/FlatCAMGeoEditor.py:2744 -msgid " MOVE: Click on reference point ..." -msgstr " MUTARE: Click pe punctul de referinţă ..." - -#: AppEditors/FlatCAMGeoEditor.py:2729 -msgid " Click on destination point ..." -msgstr " Click pe punctul de Destinaţie ..." - -#: AppEditors/FlatCAMGeoEditor.py:2769 -msgid "Done. Geometry(s) Move completed." -msgstr "Executat. Mutarea Geometriilor terminată." - -#: AppEditors/FlatCAMGeoEditor.py:2902 -msgid "Done. Geometry(s) Copy completed." -msgstr "Executat. Copierea Geometriilor terminată." - -#: AppEditors/FlatCAMGeoEditor.py:2933 AppEditors/FlatCAMGrbEditor.py:897 -msgid "Click on 1st point ..." -msgstr "Click pe primul punct ..." - -#: AppEditors/FlatCAMGeoEditor.py:2957 -msgid "" -"Font not supported. Only Regular, Bold, Italic and BoldItalic are supported. " -"Error" -msgstr "" -"Fontul nu este compatibil. Doar cele tip: Regular, Bold, Italic și " -"BoldItalic sunt acceptate. Eroarea" - -#: AppEditors/FlatCAMGeoEditor.py:2965 -msgid "No text to add." -msgstr "Niciun text de adăugat." - -#: AppEditors/FlatCAMGeoEditor.py:2975 -msgid " Done. Adding Text completed." -msgstr " Executat. Adăugarea de Text terminată." - -#: AppEditors/FlatCAMGeoEditor.py:3012 -msgid "Create buffer geometry ..." -msgstr "Crează o geometrie de tipe Bufer ..." - -#: AppEditors/FlatCAMGeoEditor.py:3047 AppEditors/FlatCAMGrbEditor.py:5154 -msgid "Done. Buffer Tool completed." -msgstr "Executat. Unealta Bufer terminată." - -#: AppEditors/FlatCAMGeoEditor.py:3075 -msgid "Done. Buffer Int Tool completed." -msgstr "Executat. Unealta Bufer Intern terminată." - -#: AppEditors/FlatCAMGeoEditor.py:3103 -msgid "Done. Buffer Ext Tool completed." -msgstr "Executat. Unealta Bufer Extern terminată." - -#: AppEditors/FlatCAMGeoEditor.py:3152 AppEditors/FlatCAMGrbEditor.py:2160 -msgid "Select a shape to act as deletion area ..." -msgstr "Selectează o formă geometrică ca formă de stergere ..." - -#: AppEditors/FlatCAMGeoEditor.py:3154 AppEditors/FlatCAMGeoEditor.py:3180 -#: AppEditors/FlatCAMGeoEditor.py:3186 AppEditors/FlatCAMGrbEditor.py:2162 -msgid "Click to pick-up the erase shape..." -msgstr "Click pentru a activa forma de stergere..." - -#: AppEditors/FlatCAMGeoEditor.py:3190 AppEditors/FlatCAMGrbEditor.py:2221 -msgid "Click to erase ..." -msgstr "Click pt a sterge ..." - -#: AppEditors/FlatCAMGeoEditor.py:3219 AppEditors/FlatCAMGrbEditor.py:2254 -msgid "Done. Eraser tool action completed." -msgstr "Executat. Unealta Stergere s-a terminat." - -#: AppEditors/FlatCAMGeoEditor.py:3269 -msgid "Create Paint geometry ..." -msgstr "Crează o geometrie Paint ..." - -#: AppEditors/FlatCAMGeoEditor.py:3282 AppEditors/FlatCAMGrbEditor.py:2417 -msgid "Shape transformations ..." -msgstr "Transformări de forme geometrice ..." - -#: AppEditors/FlatCAMGeoEditor.py:3338 -#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:27 -msgid "Geometry Editor" -msgstr "Editor Geometrii" - -#: AppEditors/FlatCAMGeoEditor.py:3344 AppEditors/FlatCAMGrbEditor.py:2495 -#: AppEditors/FlatCAMGrbEditor.py:3952 AppGUI/ObjectUI.py:282 -#: AppGUI/ObjectUI.py:1394 AppGUI/ObjectUI.py:2256 AppTools/ToolCutOut.py:95 -msgid "Type" -msgstr "Tip" - -#: AppEditors/FlatCAMGeoEditor.py:3344 AppGUI/ObjectUI.py:221 -#: AppGUI/ObjectUI.py:521 AppGUI/ObjectUI.py:1330 AppGUI/ObjectUI.py:2165 -#: AppGUI/ObjectUI.py:2469 AppGUI/ObjectUI.py:2536 -#: AppTools/ToolCalibration.py:234 AppTools/ToolFiducials.py:70 -msgid "Name" -msgstr "Nume" - -#: AppEditors/FlatCAMGeoEditor.py:3596 -msgid "Ring" -msgstr "Inel" - -#: AppEditors/FlatCAMGeoEditor.py:3598 -msgid "Line" -msgstr "Linie" - -#: AppEditors/FlatCAMGeoEditor.py:3600 AppGUI/MainGUI.py:1446 -#: AppGUI/ObjectUI.py:1150 AppGUI/ObjectUI.py:2005 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:226 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:299 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:328 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:292 -#: AppTools/ToolIsolation.py:546 AppTools/ToolNCC.py:584 -#: AppTools/ToolPaint.py:527 -msgid "Polygon" -msgstr "Poligon" - -#: AppEditors/FlatCAMGeoEditor.py:3602 -msgid "Multi-Line" -msgstr "Multi-Linie" - -#: AppEditors/FlatCAMGeoEditor.py:3604 -msgid "Multi-Polygon" -msgstr "Multi-Poligon" - -#: AppEditors/FlatCAMGeoEditor.py:3611 -msgid "Geo Elem" -msgstr "Element Geo" - -#: AppEditors/FlatCAMGeoEditor.py:4064 -msgid "Editing MultiGeo Geometry, tool" -msgstr "Se editează Geometrie tip MultiGeo. unealta" - -#: AppEditors/FlatCAMGeoEditor.py:4066 -msgid "with diameter" -msgstr "cu diametrul" - -#: AppEditors/FlatCAMGeoEditor.py:4138 -msgid "Grid Snap enabled." -msgstr "Captura pr grilă activată." - -#: AppEditors/FlatCAMGeoEditor.py:4142 -msgid "Grid Snap disabled." -msgstr "Captura pe grilă dezactivată." - -#: AppEditors/FlatCAMGeoEditor.py:4503 AppGUI/MainGUI.py:3046 -#: AppGUI/MainGUI.py:3092 AppGUI/MainGUI.py:3110 AppGUI/MainGUI.py:3254 -#: AppGUI/MainGUI.py:3293 AppGUI/MainGUI.py:3305 AppGUI/MainGUI.py:3322 -msgid "Click on target point." -msgstr "Click pe punctul tinta." - -#: AppEditors/FlatCAMGeoEditor.py:4819 AppEditors/FlatCAMGeoEditor.py:4854 -msgid "A selection of at least 2 geo items is required to do Intersection." -msgstr "" -"Cel puțin o selecţie de doua forme geometrice este necesară pentru a face o " -"Intersecţie." - -#: AppEditors/FlatCAMGeoEditor.py:4940 AppEditors/FlatCAMGeoEditor.py:5044 -msgid "" -"Negative buffer value is not accepted. Use Buffer interior to generate an " -"'inside' shape" -msgstr "" -"O valoare de bufer negativă nu se acceptă. Foloseste Bufer Interior pentru a " -"genera o formă geo. interioară" - -#: AppEditors/FlatCAMGeoEditor.py:4950 AppEditors/FlatCAMGeoEditor.py:5003 -#: AppEditors/FlatCAMGeoEditor.py:5053 -msgid "Nothing selected for buffering." -msgstr "Nici-o forma geometrică nu este selectată pentru a face Bufer." - -#: AppEditors/FlatCAMGeoEditor.py:4955 AppEditors/FlatCAMGeoEditor.py:5007 -#: AppEditors/FlatCAMGeoEditor.py:5058 -msgid "Invalid distance for buffering." -msgstr "Distanta invalida pentru a face Bufer." - -#: AppEditors/FlatCAMGeoEditor.py:4979 AppEditors/FlatCAMGeoEditor.py:5078 -msgid "Failed, the result is empty. Choose a different buffer value." -msgstr "Eșuat, rezultatul este gol. Foloseşte o valoare diferita pentru Bufer." - -#: AppEditors/FlatCAMGeoEditor.py:4990 -msgid "Full buffer geometry created." -msgstr "Geometrie tip Bufer Complet creată." - -#: AppEditors/FlatCAMGeoEditor.py:4996 -msgid "Negative buffer value is not accepted." -msgstr "Valoarea bufer negativă nu este acceptată." - -#: AppEditors/FlatCAMGeoEditor.py:5027 -msgid "Failed, the result is empty. Choose a smaller buffer value." -msgstr "Eșuat, rezultatul este gol. Foloseşte of valoare mai mica pt. Bufer." - -#: AppEditors/FlatCAMGeoEditor.py:5037 -msgid "Interior buffer geometry created." -msgstr "Geometrie Bufer interior creată." - -#: AppEditors/FlatCAMGeoEditor.py:5088 -msgid "Exterior buffer geometry created." -msgstr "Geometrie Bufer Exterior creată." - -#: AppEditors/FlatCAMGeoEditor.py:5094 -#, python-format -msgid "Could not do Paint. Overlap value has to be less than 100%%." -msgstr "" -"Nu se poate face Paint. Valoarea de suprapunere trebuie să fie mai puțin de " -"100%%." - -#: AppEditors/FlatCAMGeoEditor.py:5101 -msgid "Nothing selected for painting." -msgstr "Nici-o forma geometrică nu este selectată pentru Paint." - -#: AppEditors/FlatCAMGeoEditor.py:5107 -msgid "Invalid value for" -msgstr "Valoare invalida pentru" - -#: AppEditors/FlatCAMGeoEditor.py:5166 -msgid "" -"Could not do Paint. Try a different combination of parameters. Or a " -"different method of Paint" -msgstr "" -"Nu se poate face Paint. Incearcă o combinaţie diferita de parametri. Or o " -"metoda diferita de Paint" - -#: AppEditors/FlatCAMGeoEditor.py:5177 -msgid "Paint done." -msgstr "Pictare executata." - -#: AppEditors/FlatCAMGrbEditor.py:211 -msgid "To add an Pad first select a aperture in Aperture Table" -msgstr "" -"Pentru a adăuga un Pad mai intai selectează o apertură (unealtă) in Tabela " -"de Aperturi" - -#: AppEditors/FlatCAMGrbEditor.py:218 AppEditors/FlatCAMGrbEditor.py:418 -msgid "Aperture size is zero. It needs to be greater than zero." -msgstr "Dimens. aperturii este zero. Trebuie sa fie mai mare ca zero." - -#: AppEditors/FlatCAMGrbEditor.py:371 AppEditors/FlatCAMGrbEditor.py:684 -msgid "" -"Incompatible aperture type. Select an aperture with type 'C', 'R' or 'O'." -msgstr "" -"Tip de apertură incompatibil. Selectează o apertură cu tipul 'C', 'R' sau " -"'O'." - -#: AppEditors/FlatCAMGrbEditor.py:383 -msgid "Done. Adding Pad completed." -msgstr "Executat. Adăugarea padului terminată." - -#: AppEditors/FlatCAMGrbEditor.py:410 -msgid "To add an Pad Array first select a aperture in Aperture Table" -msgstr "" -"Pentru a adăuga o arie de paduri mai intai selectează o apertura (unealtă) " -"in Tabela de Aperturi" - -#: AppEditors/FlatCAMGrbEditor.py:490 -msgid "Click on the Pad Circular Array Start position" -msgstr "Click pe punctul de Start al ariei de paduri" - -#: AppEditors/FlatCAMGrbEditor.py:710 -msgid "Too many Pads for the selected spacing angle." -msgstr "Prea multe paduri pentru unghiul selectat." - -#: AppEditors/FlatCAMGrbEditor.py:733 -msgid "Done. Pad Array added." -msgstr "Executat. Aria de paduri a fost adăugată." - -#: AppEditors/FlatCAMGrbEditor.py:758 -msgid "Select shape(s) and then click ..." -msgstr "Selectează formele si apoi click ..." - -#: AppEditors/FlatCAMGrbEditor.py:770 -msgid "Failed. Nothing selected." -msgstr "Eșuat. Nu este nimic selectat." - -#: AppEditors/FlatCAMGrbEditor.py:786 -msgid "" -"Failed. Poligonize works only on geometries belonging to the same aperture." -msgstr "" -"Esuat. Poligonizarea lucrează doar asupra geometriilor care apartin aceleasi " -"aperturi." - -#: AppEditors/FlatCAMGrbEditor.py:840 -msgid "Done. Poligonize completed." -msgstr "Executat. Poligonizare completă." - -#: AppEditors/FlatCAMGrbEditor.py:895 AppEditors/FlatCAMGrbEditor.py:1119 -#: AppEditors/FlatCAMGrbEditor.py:1143 -msgid "Corner Mode 1: 45 degrees ..." -msgstr "Mod Colt 1: 45 grade ..." - -#: AppEditors/FlatCAMGrbEditor.py:907 AppEditors/FlatCAMGrbEditor.py:1219 -msgid "Click on next Point or click Right mouse button to complete ..." -msgstr "" -"Click pe punctul următor sau click buton dreapta al mousului pentru " -"terminare ..." - -#: AppEditors/FlatCAMGrbEditor.py:1107 AppEditors/FlatCAMGrbEditor.py:1140 -msgid "Corner Mode 2: Reverse 45 degrees ..." -msgstr "Mod Colt 2: Invers 45 grade ..." - -#: AppEditors/FlatCAMGrbEditor.py:1110 AppEditors/FlatCAMGrbEditor.py:1137 -msgid "Corner Mode 3: 90 degrees ..." -msgstr "Mod Colt 3: 90 grade ..." - -#: AppEditors/FlatCAMGrbEditor.py:1113 AppEditors/FlatCAMGrbEditor.py:1134 -msgid "Corner Mode 4: Reverse 90 degrees ..." -msgstr "Mod Colt 4: Invers 90 grade ..." - -#: AppEditors/FlatCAMGrbEditor.py:1116 AppEditors/FlatCAMGrbEditor.py:1131 -msgid "Corner Mode 5: Free angle ..." -msgstr "Mod Colt 5: Unghi liber ..." - -#: AppEditors/FlatCAMGrbEditor.py:1193 AppEditors/FlatCAMGrbEditor.py:1358 -#: AppEditors/FlatCAMGrbEditor.py:1397 -msgid "Track Mode 1: 45 degrees ..." -msgstr "Mod Traseu 1: 45 grade ..." - -#: AppEditors/FlatCAMGrbEditor.py:1338 AppEditors/FlatCAMGrbEditor.py:1392 -msgid "Track Mode 2: Reverse 45 degrees ..." -msgstr "Mod Traseu 2: Invers 45 grade ..." - -#: AppEditors/FlatCAMGrbEditor.py:1343 AppEditors/FlatCAMGrbEditor.py:1387 -msgid "Track Mode 3: 90 degrees ..." -msgstr "Mod Traseu 3: 90 grade ..." - -#: AppEditors/FlatCAMGrbEditor.py:1348 AppEditors/FlatCAMGrbEditor.py:1382 -msgid "Track Mode 4: Reverse 90 degrees ..." -msgstr "Mod Traseu 4: Invers 90 grade ..." - -#: AppEditors/FlatCAMGrbEditor.py:1353 AppEditors/FlatCAMGrbEditor.py:1377 -msgid "Track Mode 5: Free angle ..." -msgstr "Mod Traseu 5: Unghi liber ..." - -#: AppEditors/FlatCAMGrbEditor.py:1787 -msgid "Scale the selected Gerber apertures ..." -msgstr "Șterge aperturile Gerber selectate ..." - -#: AppEditors/FlatCAMGrbEditor.py:1829 -msgid "Buffer the selected apertures ..." -msgstr "Bufereaza aperturile selectate." - -#: AppEditors/FlatCAMGrbEditor.py:1871 -msgid "Mark polygon areas in the edited Gerber ..." -msgstr "Marchează ariile poligonale in obiectul Gerber editat ..." - -#: AppEditors/FlatCAMGrbEditor.py:1937 -msgid "Nothing selected to move" -msgstr "Nimic nu este selectat pentru mutare" - -#: AppEditors/FlatCAMGrbEditor.py:2062 -msgid "Done. Apertures Move completed." -msgstr "Executat. Mutarea Aperturilor terminată." - -#: AppEditors/FlatCAMGrbEditor.py:2144 -msgid "Done. Apertures copied." -msgstr "Executat. Aperturile au fost copiate." - -#: AppEditors/FlatCAMGrbEditor.py:2462 AppGUI/MainGUI.py:1477 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:27 -msgid "Gerber Editor" -msgstr "Editor Gerber" - -#: AppEditors/FlatCAMGrbEditor.py:2482 AppGUI/ObjectUI.py:247 -#: AppTools/ToolProperties.py:159 -msgid "Apertures" -msgstr "Aperturi" - -#: AppEditors/FlatCAMGrbEditor.py:2484 AppGUI/ObjectUI.py:249 -msgid "Apertures Table for the Gerber Object." -msgstr "Tabela de aperturi pt obiectul Gerber." - -#: AppEditors/FlatCAMGrbEditor.py:2495 AppEditors/FlatCAMGrbEditor.py:3952 -#: AppGUI/ObjectUI.py:282 -msgid "Code" -msgstr "Cod" - -#: AppEditors/FlatCAMGrbEditor.py:2495 AppEditors/FlatCAMGrbEditor.py:3952 -#: AppGUI/ObjectUI.py:282 -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:103 -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:167 -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:196 -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:43 -#: AppTools/ToolCopperThieving.py:265 AppTools/ToolCopperThieving.py:305 -#: AppTools/ToolFiducials.py:159 -msgid "Size" -msgstr "Dimensiune" - -#: AppEditors/FlatCAMGrbEditor.py:2495 AppEditors/FlatCAMGrbEditor.py:3952 -#: AppGUI/ObjectUI.py:282 -msgid "Dim" -msgstr "Dim" - -#: AppEditors/FlatCAMGrbEditor.py:2500 AppGUI/ObjectUI.py:286 -msgid "Index" -msgstr "Index" - -#: AppEditors/FlatCAMGrbEditor.py:2502 AppEditors/FlatCAMGrbEditor.py:2531 -#: AppGUI/ObjectUI.py:288 -msgid "Aperture Code" -msgstr "Cod" - -#: AppEditors/FlatCAMGrbEditor.py:2504 AppGUI/ObjectUI.py:290 -msgid "Type of aperture: circular, rectangle, macros etc" -msgstr "" -"Tipul aperturilor:\n" -"- circular\n" -"- patrulater\n" -"- macro-uri\n" -"etc" - -#: AppEditors/FlatCAMGrbEditor.py:2506 AppGUI/ObjectUI.py:292 -msgid "Aperture Size:" -msgstr "Dim. aper.:" - -#: AppEditors/FlatCAMGrbEditor.py:2508 AppGUI/ObjectUI.py:294 -msgid "" -"Aperture Dimensions:\n" -" - (width, height) for R, O type.\n" -" - (dia, nVertices) for P type" -msgstr "" -"Dimensiunile aperturilor:\n" -"- (latime, inaltime) pt tipurile R, O.\n" -"- (diametru, nVertices) pt tipul P" - -#: AppEditors/FlatCAMGrbEditor.py:2532 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:58 -msgid "Code for the new aperture" -msgstr "Diametru pentru noua apertură" - -#: AppEditors/FlatCAMGrbEditor.py:2541 -msgid "Aperture Size" -msgstr "Dim. aper" - -#: AppEditors/FlatCAMGrbEditor.py:2543 -msgid "" -"Size for the new aperture.\n" -"If aperture type is 'R' or 'O' then\n" -"this value is automatically\n" -"calculated as:\n" -"sqrt(width**2 + height**2)" -msgstr "" -"Dimensiunea pt noua apertură.\n" -"Dacă tipul aperturii este 'R' sau 'O'\n" -"valoarea este calculată automat prin:\n" -"sqrt(lătime**2 + inăltime**2)" - -#: AppEditors/FlatCAMGrbEditor.py:2557 -msgid "Aperture Type" -msgstr "Tip aper" - -#: AppEditors/FlatCAMGrbEditor.py:2559 -msgid "" -"Select the type of new aperture. Can be:\n" -"C = circular\n" -"R = rectangular\n" -"O = oblong" -msgstr "" -"Selectează noul tip de apertură. Poate fi:\n" -"C = circular\n" -"R = rectangular\n" -"O = oval" - -#: AppEditors/FlatCAMGrbEditor.py:2570 -msgid "Aperture Dim" -msgstr "Dim. aper" - -#: AppEditors/FlatCAMGrbEditor.py:2572 -msgid "" -"Dimensions for the new aperture.\n" -"Active only for rectangular apertures (type R).\n" -"The format is (width, height)" -msgstr "" -"Dimensiunile pentru noua apertură.\n" -"Activă doar pentru aperturile rectangulare (tip 'R').\n" -"Formatul este (lătime, inăltime)" - -#: AppEditors/FlatCAMGrbEditor.py:2581 -msgid "Add/Delete Aperture" -msgstr "Adaugă/Șterge apertură" - -#: AppEditors/FlatCAMGrbEditor.py:2583 -msgid "Add/Delete an aperture in the aperture table" -msgstr "Adaugă/Șterge o apertură din lista de aperturi" - -#: AppEditors/FlatCAMGrbEditor.py:2592 -msgid "Add a new aperture to the aperture list." -msgstr "Adaugă o nouă apertură in lista de aperturi." - -#: AppEditors/FlatCAMGrbEditor.py:2595 AppEditors/FlatCAMGrbEditor.py:2743 -#: AppGUI/MainGUI.py:748 AppGUI/MainGUI.py:1068 AppGUI/MainGUI.py:1527 -#: AppGUI/MainGUI.py:2099 AppGUI/MainGUI.py:4514 AppGUI/ObjectUI.py:1525 -#: AppObjects/FlatCAMGeometry.py:563 AppTools/ToolIsolation.py:298 -#: AppTools/ToolIsolation.py:616 AppTools/ToolNCC.py:316 -#: AppTools/ToolNCC.py:637 AppTools/ToolPaint.py:298 AppTools/ToolPaint.py:681 -#: AppTools/ToolSolderPaste.py:133 AppTools/ToolSolderPaste.py:608 -#: App_Main.py:5672 -msgid "Delete" -msgstr "Șterge" - -#: AppEditors/FlatCAMGrbEditor.py:2597 -msgid "Delete a aperture in the aperture list" -msgstr "Șterge o apertură din lista de aperturi" - -#: AppEditors/FlatCAMGrbEditor.py:2614 -msgid "Buffer Aperture" -msgstr "Bufer pt apertură" - -#: AppEditors/FlatCAMGrbEditor.py:2616 -msgid "Buffer a aperture in the aperture list" -msgstr "Fă bufer pt o apertură din lista de aperturi" - -#: AppEditors/FlatCAMGrbEditor.py:2629 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:195 -msgid "Buffer distance" -msgstr "Distanta pt bufer" - -#: AppEditors/FlatCAMGrbEditor.py:2630 -msgid "Buffer corner" -msgstr "Coltul pt bufer" - -#: AppEditors/FlatCAMGrbEditor.py:2632 -msgid "" -"There are 3 types of corners:\n" -" - 'Round': the corner is rounded.\n" -" - 'Square': the corner is met in a sharp angle.\n" -" - 'Beveled': the corner is a line that directly connects the features " -"meeting in the corner" -msgstr "" -"Sunt disponibile 3 tipuri de colțuri:\n" -"- 'Rotund': coltul este rotunjit.\n" -"- 'Patrat:' colțurile formează unghi de 90 grade.\n" -"- 'Beveled:' coltul este inlocuit cu o linie care uneste capetele liniilor " -"care formează coltul" - -#: AppEditors/FlatCAMGrbEditor.py:2647 AppGUI/MainGUI.py:1055 -#: AppGUI/MainGUI.py:1454 AppGUI/MainGUI.py:1497 AppGUI/MainGUI.py:2087 -#: AppGUI/MainGUI.py:4511 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:200 -#: AppTools/ToolTransform.py:29 -msgid "Buffer" -msgstr "Bufer" - -#: AppEditors/FlatCAMGrbEditor.py:2662 -msgid "Scale Aperture" -msgstr "Scalează aper" - -#: AppEditors/FlatCAMGrbEditor.py:2664 -msgid "Scale a aperture in the aperture list" -msgstr "Scalează o apertură in lista de aperturi" - -#: AppEditors/FlatCAMGrbEditor.py:2672 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:210 -msgid "Scale factor" -msgstr "Factor Scalare" - -#: AppEditors/FlatCAMGrbEditor.py:2674 -msgid "" -"The factor by which to scale the selected aperture.\n" -"Values can be between 0.0000 and 999.9999" -msgstr "" -"Factorul cu care se va face scalarea aperturii selectate.\n" -"Poate lua valori intre: 0.000 si 999.9999" - -#: AppEditors/FlatCAMGrbEditor.py:2702 -msgid "Mark polygons" -msgstr "Marchează poligoanele" - -#: AppEditors/FlatCAMGrbEditor.py:2704 -msgid "Mark the polygon areas." -msgstr "Marchează ariile poligonale." - -#: AppEditors/FlatCAMGrbEditor.py:2712 -msgid "Area UPPER threshold" -msgstr "Pragul de sus pt. arie" - -#: AppEditors/FlatCAMGrbEditor.py:2714 -msgid "" -"The threshold value, all areas less than this are marked.\n" -"Can have a value between 0.0000 and 9999.9999" -msgstr "" -"Valoare de prag, toate poligoanele cu arii mai mici vor fi marcate.\n" -"Poate lua valori intre: 0.000 si 999.9999" - -#: AppEditors/FlatCAMGrbEditor.py:2721 -msgid "Area LOWER threshold" -msgstr "Pragul de jos pt. arie" - -#: AppEditors/FlatCAMGrbEditor.py:2723 -msgid "" -"The threshold value, all areas more than this are marked.\n" -"Can have a value between 0.0000 and 9999.9999" -msgstr "" -"Valoare de prag, toate poligoanele cu arii mai mari vor fi marcate.\n" -"Poate lua valori intre: 0.000 si 999.9999" - -#: AppEditors/FlatCAMGrbEditor.py:2737 -msgid "Mark" -msgstr "Marchează" - -#: AppEditors/FlatCAMGrbEditor.py:2739 -msgid "Mark the polygons that fit within limits." -msgstr "Marcați poligoanele care se încadrează în limite." - -#: AppEditors/FlatCAMGrbEditor.py:2745 -msgid "Delete all the marked polygons." -msgstr "Ștergeți toate poligoanele marcate." - -#: AppEditors/FlatCAMGrbEditor.py:2751 -msgid "Clear all the markings." -msgstr "Ștergeți toate marcajele." - -#: AppEditors/FlatCAMGrbEditor.py:2771 AppGUI/MainGUI.py:1040 -#: AppGUI/MainGUI.py:2072 AppGUI/MainGUI.py:4511 -msgid "Add Pad Array" -msgstr "Adaugă o arie de paduri" - -#: AppEditors/FlatCAMGrbEditor.py:2773 -msgid "Add an array of pads (linear or circular array)" -msgstr "Adaugă o arie de paduri (arie lineara sau circulara)." - -#: AppEditors/FlatCAMGrbEditor.py:2779 -msgid "" -"Select the type of pads array to create.\n" -"It can be Linear X(Y) or Circular" -msgstr "" -"Selectează tipul de arii de paduri.\n" -"Poate fi Liniar X(Y) sau Circular" - -#: AppEditors/FlatCAMGrbEditor.py:2790 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:95 -msgid "Nr of pads" -msgstr "Nr. paduri" - -#: AppEditors/FlatCAMGrbEditor.py:2792 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:97 -msgid "Specify how many pads to be in the array." -msgstr "Specifica cate paduri să fie incluse in arie." - -#: AppEditors/FlatCAMGrbEditor.py:2841 -msgid "" -"Angle at which the linear array is placed.\n" -"The precision is of max 2 decimals.\n" -"Min value is: -359.99 degrees.\n" -"Max value is: 360.00 degrees." -msgstr "" -"Unghiul global la care aria lineara este plasata.\n" -"Precizia este de max 2 zecimale.\n" -"Val minima este: -359.99 grade.\n" -"Val maxima este: 360.00 grade." - -#: AppEditors/FlatCAMGrbEditor.py:3335 AppEditors/FlatCAMGrbEditor.py:3339 -msgid "Aperture code value is missing or wrong format. Add it and retry." -msgstr "" -"Valoarea codului aperturii lipseste sau este in format greșit. Adaugă din " -"nou și reîncearcă." - -#: AppEditors/FlatCAMGrbEditor.py:3375 -msgid "" -"Aperture dimensions value is missing or wrong format. Add it in format " -"(width, height) and retry." -msgstr "" -"Dimensiunile aperturii lipsesc sau sunt intr-un format greșit. Adaugă din " -"nou și reîncearcă." - -#: AppEditors/FlatCAMGrbEditor.py:3388 -msgid "Aperture size value is missing or wrong format. Add it and retry." -msgstr "" -"Valoarea mărimii aperturii lipseste sau este in format greșit. Adaugă din " -"nou și reîncearcă." - -#: AppEditors/FlatCAMGrbEditor.py:3399 -msgid "Aperture already in the aperture table." -msgstr "Apertura este deja in lista de aperturi." - -#: AppEditors/FlatCAMGrbEditor.py:3406 -msgid "Added new aperture with code" -msgstr "O nouă apertură este adăugată cu codul" - -#: AppEditors/FlatCAMGrbEditor.py:3438 -msgid " Select an aperture in Aperture Table" -msgstr " Selectează o unealtă in Tabela de Aperturi" - -#: AppEditors/FlatCAMGrbEditor.py:3446 -msgid "Select an aperture in Aperture Table -->" -msgstr "Selectează o unealtă in Tabela de Aperturi -->" - -#: AppEditors/FlatCAMGrbEditor.py:3460 -msgid "Deleted aperture with code" -msgstr "A fost stearsă unealta cu codul" - -#: AppEditors/FlatCAMGrbEditor.py:3528 -msgid "Dimensions need two float values separated by comma." -msgstr "Dimensiunile au nevoie de două valori float separate prin virgulă." - -#: AppEditors/FlatCAMGrbEditor.py:3537 -msgid "Dimensions edited." -msgstr "Dimensiuni editate." - -#: AppEditors/FlatCAMGrbEditor.py:4067 -msgid "Loading Gerber into Editor" -msgstr "Se încarcă Gerber în editor" - -#: AppEditors/FlatCAMGrbEditor.py:4195 -msgid "Setting up the UI" -msgstr "Configurarea UI" - -#: AppEditors/FlatCAMGrbEditor.py:4196 -msgid "Adding geometry finished. Preparing the AppGUI" -msgstr "Adăugarea geometriei s-a terminat. Se pregăteste AppGUI" - -#: AppEditors/FlatCAMGrbEditor.py:4205 -msgid "Finished loading the Gerber object into the editor." -msgstr "S-a terminat încărcarea obiectului Gerber în editor." - -#: AppEditors/FlatCAMGrbEditor.py:4346 -msgid "" -"There are no Aperture definitions in the file. Aborting Gerber creation." -msgstr "" -"Nu există definitii de aperturi in fişier. Se anulează crearea de obiect " -"Gerber." - -#: AppEditors/FlatCAMGrbEditor.py:4348 AppObjects/AppObject.py:133 -#: AppObjects/FlatCAMGeometry.py:1786 AppParsers/ParseExcellon.py:896 -#: AppTools/ToolPcbWizard.py:432 App_Main.py:8465 App_Main.py:8529 -#: App_Main.py:8660 App_Main.py:8725 App_Main.py:9377 -msgid "An internal error has occurred. See shell.\n" -msgstr "" -"A apărut o eroare internă. Verifică in TCL Shell pt mai multe detalii.\n" - -#: AppEditors/FlatCAMGrbEditor.py:4356 -msgid "Creating Gerber." -msgstr "Gerber in curs de creare." - -#: AppEditors/FlatCAMGrbEditor.py:4368 -msgid "Done. Gerber editing finished." -msgstr "Editarea Gerber a fost terminată." - -#: AppEditors/FlatCAMGrbEditor.py:4384 -msgid "Cancelled. No aperture is selected" -msgstr "Anulat. Nici-o apertură nu este selectată" - -#: AppEditors/FlatCAMGrbEditor.py:4539 App_Main.py:5998 -msgid "Coordinates copied to clipboard." -msgstr "Coordonatele au fost copiate in clipboard." - -#: AppEditors/FlatCAMGrbEditor.py:4986 -msgid "Failed. No aperture geometry is selected." -msgstr "Anulat. Nici-o geometrie de apertură nu este selectată." - -#: AppEditors/FlatCAMGrbEditor.py:4995 AppEditors/FlatCAMGrbEditor.py:5266 -msgid "Done. Apertures geometry deleted." -msgstr "Executat. Geometriile aperturilor au fost șterse." - -#: AppEditors/FlatCAMGrbEditor.py:5138 -msgid "No aperture to buffer. Select at least one aperture and try again." -msgstr "" -"Nici-o apertură sel. pt a face bufer. Selectează cel puțin o apertură și " -"încearcă din nou." - -#: AppEditors/FlatCAMGrbEditor.py:5150 -msgid "Failed." -msgstr "Esuat." - -#: AppEditors/FlatCAMGrbEditor.py:5169 -msgid "Scale factor value is missing or wrong format. Add it and retry." -msgstr "" -"Valoarea factorului de scalare lipseste sau este in format gresit. Adaugă " -"din nou și reîncearcă." - -#: AppEditors/FlatCAMGrbEditor.py:5201 -msgid "No aperture to scale. Select at least one aperture and try again." -msgstr "" -"Nici-o apertură sel. pt scalare. Selectează cel puțin o apertură și încearcă " -"din nou." - -#: AppEditors/FlatCAMGrbEditor.py:5217 -msgid "Done. Scale Tool completed." -msgstr "Executat. Unealta Scalare a terminat." - -#: AppEditors/FlatCAMGrbEditor.py:5255 -msgid "Polygons marked." -msgstr "Poligoanele sunt marcate." - -#: AppEditors/FlatCAMGrbEditor.py:5258 -msgid "No polygons were marked. None fit within the limits." -msgstr "Nu au fost marcate poligoane. Niciunul nu se încadrează în limite." - -#: AppEditors/FlatCAMGrbEditor.py:5982 -msgid "Rotation action was not executed." -msgstr "Actiuena de rotatie nu a fost efectuatăt." - -#: AppEditors/FlatCAMGrbEditor.py:6053 App_Main.py:5432 App_Main.py:5480 -msgid "Flip action was not executed." -msgstr "Acțiunea de Oglindire nu a fost executată." - -#: AppEditors/FlatCAMGrbEditor.py:6110 -msgid "Skew action was not executed." -msgstr "Actiunea de deformare nu a fost efectuată." - -#: AppEditors/FlatCAMGrbEditor.py:6175 -msgid "Scale action was not executed." -msgstr "Actiuena de scalare nu a fost efectuată." - -#: AppEditors/FlatCAMGrbEditor.py:6218 -msgid "Offset action was not executed." -msgstr "Actiuena de offset nu a fost efectuată." - -#: AppEditors/FlatCAMGrbEditor.py:6268 -msgid "Geometry shape offset Y cancelled" -msgstr "Deplasarea formei geometrice pe axa Y anulată" - -#: AppEditors/FlatCAMGrbEditor.py:6283 -msgid "Geometry shape skew X cancelled" -msgstr "Deformarea formei geometrice pe axa X anulată" - -#: AppEditors/FlatCAMGrbEditor.py:6298 -msgid "Geometry shape skew Y cancelled" -msgstr "Deformarea formei geometrice pe axa Y executată" - -#: AppEditors/FlatCAMTextEditor.py:74 -msgid "Print Preview" -msgstr "Preview tiparire" - -#: AppEditors/FlatCAMTextEditor.py:75 -msgid "Open a OS standard Preview Print window." -msgstr "Deschide o fereastra standard a OS cu Previzualizare Tiparire." - -#: AppEditors/FlatCAMTextEditor.py:78 -msgid "Print Code" -msgstr "Tipareste Cod" - -#: AppEditors/FlatCAMTextEditor.py:79 -msgid "Open a OS standard Print window." -msgstr "Deschide o fereastra standard a OS pt Tiparire." - -#: AppEditors/FlatCAMTextEditor.py:81 -msgid "Find in Code" -msgstr "Cauta in Cod" - -#: AppEditors/FlatCAMTextEditor.py:82 -msgid "Will search and highlight in yellow the string in the Find box." -msgstr "Va cauta si va sublinia in galben acele stringuri din campul Cautare." - -#: AppEditors/FlatCAMTextEditor.py:86 -msgid "Find box. Enter here the strings to be searched in the text." -msgstr "" -"Campul Cautare. Introduceti aici acele stringuri care sa fie cautate in text." - -#: AppEditors/FlatCAMTextEditor.py:88 -msgid "Replace With" -msgstr "Inlocuieste cu" - -#: AppEditors/FlatCAMTextEditor.py:89 -msgid "" -"Will replace the string from the Find box with the one in the Replace box." -msgstr "" -"Va inlocui toate cuvintele gasite conform cu ce este in 'Căutare'\n" -"cu textul din casuta 'Inlocuieste'." - -#: AppEditors/FlatCAMTextEditor.py:93 -msgid "String to replace the one in the Find box throughout the text." -msgstr "" -"String care sa inlocuiasca pe acele din campul 'Cautare' in cadrul textului." - -#: AppEditors/FlatCAMTextEditor.py:95 AppGUI/ObjectUI.py:2149 -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:54 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:285 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280 -#: AppTools/ToolIsolation.py:504 AppTools/ToolIsolation.py:1287 -#: AppTools/ToolIsolation.py:1669 AppTools/ToolPaint.py:485 -#: AppTools/ToolPaint.py:1446 defaults.py:403 defaults.py:446 -#: tclCommands/TclCommandPaint.py:162 -msgid "All" -msgstr "Toate" - -#: AppEditors/FlatCAMTextEditor.py:96 -msgid "" -"When checked it will replace all instances in the 'Find' box\n" -"with the text in the 'Replace' box.." -msgstr "" -"Când este bifat, va inlocui toate cuvintele gasite conform cu ce este in " -"'Caută'\n" -"cu textul din casuta 'Inlocuieste'..." - -#: AppEditors/FlatCAMTextEditor.py:99 -msgid "Copy All" -msgstr "Copiază tot" - -#: AppEditors/FlatCAMTextEditor.py:100 -msgid "Will copy all the text in the Code Editor to the clipboard." -msgstr "Va copia textul din editorul de cod în clipboard." - -#: AppEditors/FlatCAMTextEditor.py:103 -msgid "Open Code" -msgstr "Deschide Cod" - -#: AppEditors/FlatCAMTextEditor.py:104 -msgid "Will open a text file in the editor." -msgstr "Va deschide un fisier text in Editor." - -#: AppEditors/FlatCAMTextEditor.py:106 -msgid "Save Code" -msgstr "Salvează Cod" - -#: AppEditors/FlatCAMTextEditor.py:107 -msgid "Will save the text in the editor into a file." -msgstr "Va salva textul din Editor intr-un fisier." - -#: AppEditors/FlatCAMTextEditor.py:109 -msgid "Run Code" -msgstr "Rulează Cod" - -#: AppEditors/FlatCAMTextEditor.py:110 -msgid "Will run the TCL commands found in the text file, one by one." -msgstr "" -"Va rula instructiunile/comenzile TCL care se găsesc in textul din Editor, " -"una cate una." - -#: AppEditors/FlatCAMTextEditor.py:184 -msgid "Open file" -msgstr "Deschide fişierul" - -#: AppEditors/FlatCAMTextEditor.py:215 AppEditors/FlatCAMTextEditor.py:220 -#: AppObjects/FlatCAMCNCJob.py:507 AppObjects/FlatCAMCNCJob.py:512 -#: AppTools/ToolSolderPaste.py:1508 -msgid "Export Code ..." -msgstr "Exportă GCode ..." - -#: AppEditors/FlatCAMTextEditor.py:272 AppObjects/FlatCAMCNCJob.py:955 -#: AppTools/ToolSolderPaste.py:1538 -msgid "No such file or directory" -msgstr "Nu exista un aşa fişier sau director" - -#: AppEditors/FlatCAMTextEditor.py:284 AppObjects/FlatCAMCNCJob.py:969 -msgid "Saved to" -msgstr "Salvat in" - -#: AppEditors/FlatCAMTextEditor.py:334 -msgid "Code Editor content copied to clipboard ..." -msgstr "Conținut Editor de cod copiat în clipboard ..." - -#: AppGUI/GUIElements.py:2690 -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:169 -#: AppTools/ToolDblSided.py:173 AppTools/ToolDblSided.py:388 -#: AppTools/ToolFilm.py:202 -msgid "Reference" -msgstr "Referinţă" - -#: AppGUI/GUIElements.py:2692 -msgid "" -"The reference can be:\n" -"- Absolute -> the reference point is point (0,0)\n" -"- Relative -> the reference point is the mouse position before Jump" -msgstr "" -"Referința poate fi:\n" -"- Absolut -> punctul de referință este punctul (0,0)\n" -"- Relativ -> punctul de referință este poziția mouse-ului înainte de Salt" - -#: AppGUI/GUIElements.py:2697 -msgid "Abs" -msgstr "Abs" - -#: AppGUI/GUIElements.py:2698 -msgid "Relative" -msgstr "Relativ" - -#: AppGUI/GUIElements.py:2708 -msgid "Location" -msgstr "Locaţie" - -#: AppGUI/GUIElements.py:2710 -msgid "" -"The Location value is a tuple (x,y).\n" -"If the reference is Absolute then the Jump will be at the position (x,y).\n" -"If the reference is Relative then the Jump will be at the (x,y) distance\n" -"from the current mouse location point." -msgstr "" -"Valoarea locației este un tuple (x, y).\n" -"Dacă referința este Absolută, Saltul va fi în poziția (x, y).\n" -"Dacă referința este Relativă, Saltul se va face la distanța (x, y)\n" -"din punctul de locație al mouse-ului curent." - -#: AppGUI/GUIElements.py:2750 -msgid "Save Log" -msgstr "Salvează Log" - -#: AppGUI/GUIElements.py:2760 App_Main.py:2679 App_Main.py:2988 -#: App_Main.py:3122 -msgid "Close" -msgstr "Închide" - -#: AppGUI/GUIElements.py:2769 AppTools/ToolShell.py:296 -msgid "Type >help< to get started" -msgstr "Tastați >help< pentru a începe" - -#: AppGUI/GUIElements.py:3159 AppGUI/GUIElements.py:3168 -msgid "Idle." -msgstr "Inactiv." - -#: AppGUI/GUIElements.py:3201 -msgid "Application started ..." -msgstr "Aplicaţia a pornit ..." - -#: AppGUI/GUIElements.py:3202 -msgid "Hello!" -msgstr "Bună!" - -#: AppGUI/GUIElements.py:3249 AppGUI/MainGUI.py:190 AppGUI/MainGUI.py:895 -#: AppGUI/MainGUI.py:1927 -msgid "Run Script ..." -msgstr "Rulează Script..." - -#: AppGUI/GUIElements.py:3251 AppGUI/MainGUI.py:192 -msgid "" -"Will run the opened Tcl Script thus\n" -"enabling the automation of certain\n" -"functions of FlatCAM." -msgstr "" -"Va rula un script TCL astfel oferind\n" -"o automatizare a anumitor functii\n" -"din FlatCAM." - -#: AppGUI/GUIElements.py:3260 AppGUI/MainGUI.py:118 -#: AppTools/ToolPcbWizard.py:62 AppTools/ToolPcbWizard.py:69 -msgid "Open" -msgstr "Încarcă" - -#: AppGUI/GUIElements.py:3264 -msgid "Open Project ..." -msgstr "Încarcă Project ..." - -#: AppGUI/GUIElements.py:3270 AppGUI/MainGUI.py:129 -msgid "Open &Gerber ...\tCtrl+G" -msgstr "Încarcă &Gerber ...\tCtrl+G" - -#: AppGUI/GUIElements.py:3275 AppGUI/MainGUI.py:134 -msgid "Open &Excellon ...\tCtrl+E" -msgstr "Încarcă &Excellon ...\tCtrl+E" - -#: AppGUI/GUIElements.py:3280 AppGUI/MainGUI.py:139 -msgid "Open G-&Code ..." -msgstr "Încarcă G-&Code ..." - -#: AppGUI/GUIElements.py:3290 -msgid "Exit" -msgstr "Iesiere" - -#: AppGUI/MainGUI.py:67 AppGUI/MainGUI.py:69 AppGUI/MainGUI.py:1407 -msgid "Toggle Panel" -msgstr "Comută Panel" - -#: AppGUI/MainGUI.py:79 -msgid "File" -msgstr "Fişiere" - -#: AppGUI/MainGUI.py:84 -msgid "&New Project ...\tCtrl+N" -msgstr "&Proiect Nou...\tCtrl+N" - -#: AppGUI/MainGUI.py:86 -msgid "Will create a new, blank project" -msgstr "Se va crea un proiect nou, fără continut" - -#: AppGUI/MainGUI.py:91 -msgid "&New" -msgstr "&Nou" - -#: AppGUI/MainGUI.py:95 -msgid "Geometry\tN" -msgstr "Geometrie\tN" - -#: AppGUI/MainGUI.py:97 -msgid "Will create a new, empty Geometry Object." -msgstr "Va crea un obiect nou de tip Geometrie, fără continut." - -#: AppGUI/MainGUI.py:100 -msgid "Gerber\tB" -msgstr "Gerber\tB" - -#: AppGUI/MainGUI.py:102 -msgid "Will create a new, empty Gerber Object." -msgstr "Va crea un obiect nou de tip Gerber, fără continut." - -#: AppGUI/MainGUI.py:105 -msgid "Excellon\tL" -msgstr "Excellon\tL" - -#: AppGUI/MainGUI.py:107 -msgid "Will create a new, empty Excellon Object." -msgstr "Va crea un obiect nou de tip Excellon, fără continut." - -#: AppGUI/MainGUI.py:112 -msgid "Document\tD" -msgstr "Document\tD" - -#: AppGUI/MainGUI.py:114 -msgid "Will create a new, empty Document Object." -msgstr "Va crea un obiect nou de tip Document, fără continut." - -#: AppGUI/MainGUI.py:123 -msgid "Open &Project ..." -msgstr "Încarcă &Project ..." - -#: AppGUI/MainGUI.py:146 -msgid "Open Config ..." -msgstr "Încarcă Config ..." - -#: AppGUI/MainGUI.py:151 -msgid "Recent projects" -msgstr "Proiectele recente" - -#: AppGUI/MainGUI.py:153 -msgid "Recent files" -msgstr "Fişierele Recente" - -#: AppGUI/MainGUI.py:156 AppGUI/MainGUI.py:750 AppGUI/MainGUI.py:1380 -msgid "Save" -msgstr "Salvează" - -#: AppGUI/MainGUI.py:160 -msgid "&Save Project ...\tCtrl+S" -msgstr "Salvează Proiect ...\tCtrl+S" - -#: AppGUI/MainGUI.py:165 -msgid "Save Project &As ...\tCtrl+Shift+S" -msgstr "Salvează Proiect ca ...\tCtrl+Shift+S" - -#: AppGUI/MainGUI.py:180 -msgid "Scripting" -msgstr "Scripting" - -#: AppGUI/MainGUI.py:184 AppGUI/MainGUI.py:891 AppGUI/MainGUI.py:1923 -msgid "New Script ..." -msgstr "Script nou ..." - -#: AppGUI/MainGUI.py:186 AppGUI/MainGUI.py:893 AppGUI/MainGUI.py:1925 -msgid "Open Script ..." -msgstr "Încarcă &Script..." - -#: AppGUI/MainGUI.py:188 -msgid "Open Example ..." -msgstr "Deschideți exemplul ..." - -#: AppGUI/MainGUI.py:207 -msgid "Import" -msgstr "Import" - -#: AppGUI/MainGUI.py:209 -msgid "&SVG as Geometry Object ..." -msgstr "&SVG ca și obiect Geometrie ..." - -#: AppGUI/MainGUI.py:212 -msgid "&SVG as Gerber Object ..." -msgstr "&SVG ca și obiect Gerber ..." - -#: AppGUI/MainGUI.py:217 -msgid "&DXF as Geometry Object ..." -msgstr "&DXF ca și obiect Geometrie ..." - -#: AppGUI/MainGUI.py:220 -msgid "&DXF as Gerber Object ..." -msgstr "&DXF ca și obiect Gerber ..." - -#: AppGUI/MainGUI.py:224 -msgid "HPGL2 as Geometry Object ..." -msgstr "HPGL2 ca obiect de geometrie ..." - -#: AppGUI/MainGUI.py:230 -msgid "Export" -msgstr "Export" - -#: AppGUI/MainGUI.py:234 -msgid "Export &SVG ..." -msgstr "Exporta &SVG ..." - -#: AppGUI/MainGUI.py:238 -msgid "Export DXF ..." -msgstr "Exporta DXF ..." - -#: AppGUI/MainGUI.py:244 -msgid "Export &PNG ..." -msgstr "Exporta &PNG ..." - -#: AppGUI/MainGUI.py:246 -msgid "" -"Will export an image in PNG format,\n" -"the saved image will contain the visual \n" -"information currently in FlatCAM Plot Area." -msgstr "" -"Va exporta o imagine in format PNG,\n" -"imagina salvata va contine elementele vizuale\n" -"afisate in zona de afișare." - -#: AppGUI/MainGUI.py:255 -msgid "Export &Excellon ..." -msgstr "Exporta Excellon ..." - -#: AppGUI/MainGUI.py:257 -msgid "" -"Will export an Excellon Object as Excellon file,\n" -"the coordinates format, the file units and zeros\n" -"are set in Preferences -> Excellon Export." -msgstr "" -"Va exporta un obiect Excellon intr-un fişier Excellon.\n" -"Formatul coordonatelor, unitatile de masura și tipul\n" -"de zerouri se vor seta in Preferințe -> Export Excellon." - -#: AppGUI/MainGUI.py:264 -msgid "Export &Gerber ..." -msgstr "Exporta &Gerber ..." - -#: AppGUI/MainGUI.py:266 -msgid "" -"Will export an Gerber Object as Gerber file,\n" -"the coordinates format, the file units and zeros\n" -"are set in Preferences -> Gerber Export." -msgstr "" -"Va exporta un obiect Gerber intr-un fişier Gerber.\n" -"Formatul coordonatelor, unitatile de măsură și tipul\n" -"de zerouri se vor seta in Preferințe -> Export Gerber." - -#: AppGUI/MainGUI.py:276 -msgid "Backup" -msgstr "Backup" - -#: AppGUI/MainGUI.py:281 -msgid "Import Preferences from file ..." -msgstr "Importați Preferințele din fișier ..." - -#: AppGUI/MainGUI.py:287 -msgid "Export Preferences to file ..." -msgstr "Exportați Preferințele într-un fișier ..." - -#: AppGUI/MainGUI.py:295 AppGUI/preferences/PreferencesUIManager.py:1119 -msgid "Save Preferences" -msgstr "Salvează Pref" - -#: AppGUI/MainGUI.py:301 AppGUI/MainGUI.py:4101 -msgid "Print (PDF)" -msgstr "Tipărire (PDF)" - -#: AppGUI/MainGUI.py:309 -msgid "E&xit" -msgstr "Iesire" - -#: AppGUI/MainGUI.py:317 AppGUI/MainGUI.py:744 AppGUI/MainGUI.py:1529 -msgid "Edit" -msgstr "Editează" - -#: AppGUI/MainGUI.py:321 -msgid "Edit Object\tE" -msgstr "Editare Obiect\tE" - -#: AppGUI/MainGUI.py:323 -msgid "Close Editor\tCtrl+S" -msgstr "Salvează Editor\tCtrl+S" - -#: AppGUI/MainGUI.py:332 -msgid "Conversion" -msgstr "Conversii" - -#: AppGUI/MainGUI.py:334 -msgid "&Join Geo/Gerber/Exc -> Geo" -msgstr "&Fuzionează Geo/Gerber/Exc -> Geo" - -#: AppGUI/MainGUI.py:336 -msgid "" -"Merge a selection of objects, which can be of type:\n" -"- Gerber\n" -"- Excellon\n" -"- Geometry\n" -"into a new combo Geometry object." -msgstr "" -"Fuzionează o selecţie de obiecte care pot fi de tipul:\n" -"- Gerber\n" -"- Excellon\n" -"- Geometrie\n" -"intr-un nou obiect tip Geometrie >combo<." - -#: AppGUI/MainGUI.py:343 -msgid "Join Excellon(s) -> Excellon" -msgstr "Fuzionează Excellon(s) -> Excellon" - -#: AppGUI/MainGUI.py:345 -msgid "Merge a selection of Excellon objects into a new combo Excellon object." -msgstr "" -"Fuzionează o selecţie de obiecte Excellon intr-un nou obiect Excellon " -">combo<." - -#: AppGUI/MainGUI.py:348 -msgid "Join Gerber(s) -> Gerber" -msgstr "Fuzionează Gerber(s) -> Gerber" - -#: AppGUI/MainGUI.py:350 -msgid "Merge a selection of Gerber objects into a new combo Gerber object." -msgstr "" -"Fuzionează o selecţie de obiecte Gerber intr-un nou obiect Gerber >combo<." - -#: AppGUI/MainGUI.py:355 -msgid "Convert Single to MultiGeo" -msgstr "Converteste SingleGeo in MultiGeo" - -#: AppGUI/MainGUI.py:357 -msgid "" -"Will convert a Geometry object from single_geometry type\n" -"to a multi_geometry type." -msgstr "" -"Va converti un obiect Geometrie din tipul simpla geometrie (SingleGeo)\n" -"la tipul geometrie complexa (MultiGeo)." - -#: AppGUI/MainGUI.py:361 -msgid "Convert Multi to SingleGeo" -msgstr "Converteste MultiGeo in SingleGeo" - -#: AppGUI/MainGUI.py:363 -msgid "" -"Will convert a Geometry object from multi_geometry type\n" -"to a single_geometry type." -msgstr "" -"Va converti un obiect Geometrie din tipul geometrie complexa (MultiGeo)\n" -"la tipul geometrie simpla (SingleGeo)." - -#: AppGUI/MainGUI.py:370 -msgid "Convert Any to Geo" -msgstr "Converteste Oricare to Geo" - -#: AppGUI/MainGUI.py:373 -msgid "Convert Any to Gerber" -msgstr "Converteste Oricare in Gerber" - -#: AppGUI/MainGUI.py:379 -msgid "&Copy\tCtrl+C" -msgstr "&Copiază\tCtrl+C" - -#: AppGUI/MainGUI.py:384 -msgid "&Delete\tDEL" -msgstr "&Șterge\tDEL" - -#: AppGUI/MainGUI.py:389 -msgid "Se&t Origin\tO" -msgstr "Se&tează Originea\tO" - -#: AppGUI/MainGUI.py:391 -msgid "Move to Origin\tShift+O" -msgstr "Deplasează la Origine\tShift+O" - -#: AppGUI/MainGUI.py:394 -msgid "Jump to Location\tJ" -msgstr "Sari la Locaţie\tJ" - -#: AppGUI/MainGUI.py:396 -msgid "Locate in Object\tShift+J" -msgstr "Localizează in Obiect\tShift+J" - -#: AppGUI/MainGUI.py:401 -msgid "Toggle Units\tQ" -msgstr "Comută Unitati\tQ" - -#: AppGUI/MainGUI.py:403 -msgid "&Select All\tCtrl+A" -msgstr "&Selectează Tot\tCtrl+A" - -#: AppGUI/MainGUI.py:408 -msgid "&Preferences\tShift+P" -msgstr "&Preferințe\tShift+P" - -#: AppGUI/MainGUI.py:414 AppTools/ToolProperties.py:155 -msgid "Options" -msgstr "Opțiuni" - -#: AppGUI/MainGUI.py:416 -msgid "&Rotate Selection\tShift+(R)" -msgstr "&Roteste Selectia\tShift+(R)" - -#: AppGUI/MainGUI.py:421 -msgid "&Skew on X axis\tShift+X" -msgstr "&Deformează pe axa X\tShift+X" - -#: AppGUI/MainGUI.py:423 -msgid "S&kew on Y axis\tShift+Y" -msgstr "Deformează pe axa Y\tShift+Y" - -#: AppGUI/MainGUI.py:428 -msgid "Flip on &X axis\tX" -msgstr "Oglindește pe axa &X\tX" - -#: AppGUI/MainGUI.py:430 -msgid "Flip on &Y axis\tY" -msgstr "Oglindește pe axa &Y\tY" - -#: AppGUI/MainGUI.py:435 -msgid "View source\tAlt+S" -msgstr "Vezi sursa\tAlt+S" - -#: AppGUI/MainGUI.py:437 -msgid "Tools DataBase\tCtrl+D" -msgstr "Baza de data Unelte\tCtrl+D" - -#: AppGUI/MainGUI.py:444 AppGUI/MainGUI.py:1427 -msgid "View" -msgstr "Vizualizare" - -#: AppGUI/MainGUI.py:446 -msgid "Enable all plots\tAlt+1" -msgstr "Activează toate afişările\tAlt+1" - -#: AppGUI/MainGUI.py:448 -msgid "Disable all plots\tAlt+2" -msgstr "Dezactivează toate afişările\tAlt+2" - -#: AppGUI/MainGUI.py:450 -msgid "Disable non-selected\tAlt+3" -msgstr "Dezactivează non-selectate\tAlt+3" - -#: AppGUI/MainGUI.py:454 -msgid "&Zoom Fit\tV" -msgstr "&Mărește și potrivește\tV" - -#: AppGUI/MainGUI.py:456 -msgid "&Zoom In\t=" -msgstr "&Măreste\t=" - -#: AppGUI/MainGUI.py:458 -msgid "&Zoom Out\t-" -msgstr "&Micșorează\t-" - -#: AppGUI/MainGUI.py:463 -msgid "Redraw All\tF5" -msgstr "Reafisare Toate\tF5" - -#: AppGUI/MainGUI.py:467 -msgid "Toggle Code Editor\tShift+E" -msgstr "Comută Editorul de cod\tShift+E" - -#: AppGUI/MainGUI.py:470 -msgid "&Toggle FullScreen\tAlt+F10" -msgstr "Comută FullScreen\tAlt+F10" - -#: AppGUI/MainGUI.py:472 -msgid "&Toggle Plot Area\tCtrl+F10" -msgstr "Comută Aria de Afișare\tCtrl+F10" - -#: AppGUI/MainGUI.py:474 -msgid "&Toggle Project/Sel/Tool\t`" -msgstr "Comută Proiect/Sel/Unealta\t`" - -#: AppGUI/MainGUI.py:478 -msgid "&Toggle Grid Snap\tG" -msgstr "Comută Grid\tG" - -#: AppGUI/MainGUI.py:480 -msgid "&Toggle Grid Lines\tAlt+G" -msgstr "Comută Linii Grid\tAlt+G" - -#: AppGUI/MainGUI.py:482 -msgid "&Toggle Axis\tShift+G" -msgstr "Comută Axe\tShift+G" - -#: AppGUI/MainGUI.py:484 -msgid "Toggle Workspace\tShift+W" -msgstr "Comută Suprafata de lucru\tShift+W" - -#: AppGUI/MainGUI.py:486 -msgid "Toggle HUD\tAlt+H" -msgstr "Comută HUD\tAlt+H" - -#: AppGUI/MainGUI.py:491 -msgid "Objects" -msgstr "Obiecte" - -#: AppGUI/MainGUI.py:494 AppGUI/MainGUI.py:4099 -#: AppObjects/ObjectCollection.py:1121 AppObjects/ObjectCollection.py:1168 -msgid "Select All" -msgstr "Selectează toate" - -#: AppGUI/MainGUI.py:496 AppObjects/ObjectCollection.py:1125 -#: AppObjects/ObjectCollection.py:1172 -msgid "Deselect All" -msgstr "Deselectează toate" - -#: AppGUI/MainGUI.py:505 -msgid "&Command Line\tS" -msgstr "&Linie de comanda\tS" - -#: AppGUI/MainGUI.py:510 -msgid "Help" -msgstr "Ajutor" - -#: AppGUI/MainGUI.py:512 -msgid "Online Help\tF1" -msgstr "Resurse online\tF1" - -#: AppGUI/MainGUI.py:515 Bookmark.py:293 -msgid "Bookmarks" -msgstr "Bookmarks" - -#: AppGUI/MainGUI.py:518 App_Main.py:3091 App_Main.py:3100 -msgid "Bookmarks Manager" -msgstr "Bookmarks Manager" - -#: AppGUI/MainGUI.py:522 -msgid "Report a bug" -msgstr "Raportati o eroare program" - -#: AppGUI/MainGUI.py:525 -msgid "Excellon Specification" -msgstr "Specificatii Excellon" - -#: AppGUI/MainGUI.py:527 -msgid "Gerber Specification" -msgstr "Specificatii Gerber" - -#: AppGUI/MainGUI.py:532 -msgid "Shortcuts List\tF3" -msgstr "Lista shortcut-uri\tF3" - -#: AppGUI/MainGUI.py:534 -msgid "YouTube Channel\tF4" -msgstr "YouTube \tF4" - -#: AppGUI/MainGUI.py:539 -msgid "ReadMe?" -msgstr "Citește-mă?" - -#: AppGUI/MainGUI.py:542 App_Main.py:2646 -msgid "About FlatCAM" -msgstr "Despre FlatCAM" - -#: AppGUI/MainGUI.py:551 -msgid "Add Circle\tO" -msgstr "Adaugă Cerc\tO" - -#: AppGUI/MainGUI.py:554 -msgid "Add Arc\tA" -msgstr "Adaugă Arc\tA" - -#: AppGUI/MainGUI.py:557 -msgid "Add Rectangle\tR" -msgstr "Adaugă Patrulater\tR" - -#: AppGUI/MainGUI.py:560 -msgid "Add Polygon\tN" -msgstr "Adaugă Poligon\tN" - -#: AppGUI/MainGUI.py:563 -msgid "Add Path\tP" -msgstr "Adaugă Cale\tP" - -#: AppGUI/MainGUI.py:566 -msgid "Add Text\tT" -msgstr "Adaugă Text\tT" - -#: AppGUI/MainGUI.py:569 -msgid "Polygon Union\tU" -msgstr "Uniune Poligoane\tU" - -#: AppGUI/MainGUI.py:571 -msgid "Polygon Intersection\tE" -msgstr "Intersecţie Poligoane\tE" - -#: AppGUI/MainGUI.py:573 -msgid "Polygon Subtraction\tS" -msgstr "Substracţie Poligoane\tS" - -#: AppGUI/MainGUI.py:577 -msgid "Cut Path\tX" -msgstr "Tăiere Cale\tX" - -#: AppGUI/MainGUI.py:581 -msgid "Copy Geom\tC" -msgstr "Copiază Geo\tC" - -#: AppGUI/MainGUI.py:583 -msgid "Delete Shape\tDEL" -msgstr "Șterge forma Geo.\tDEL" - -#: AppGUI/MainGUI.py:587 AppGUI/MainGUI.py:674 -msgid "Move\tM" -msgstr "Muta\tM" - -#: AppGUI/MainGUI.py:589 -msgid "Buffer Tool\tB" -msgstr "Unealta Bufer\tB" - -#: AppGUI/MainGUI.py:592 -msgid "Paint Tool\tI" -msgstr "Unealta Paint\tI" - -#: AppGUI/MainGUI.py:595 -msgid "Transform Tool\tAlt+R" -msgstr "Unealta Transformare\tAlt+R" - -#: AppGUI/MainGUI.py:599 -msgid "Toggle Corner Snap\tK" -msgstr "Comută lipire colt\tK" - -#: AppGUI/MainGUI.py:605 -msgid ">Excellon Editor<" -msgstr ">Editor Excellon<" - -#: AppGUI/MainGUI.py:609 -msgid "Add Drill Array\tA" -msgstr "Adaugă Arie Găuriri\tA" - -#: AppGUI/MainGUI.py:611 -msgid "Add Drill\tD" -msgstr "Adaugă Găurire\tD" - -#: AppGUI/MainGUI.py:615 -msgid "Add Slot Array\tQ" -msgstr "Adăugați Arie de Sloturi\tQ" - -#: AppGUI/MainGUI.py:617 -msgid "Add Slot\tW" -msgstr "Adăugați Slot\tW" - -#: AppGUI/MainGUI.py:621 -msgid "Resize Drill(S)\tR" -msgstr "Redimens. Găuriri\tR" - -#: AppGUI/MainGUI.py:624 AppGUI/MainGUI.py:668 -msgid "Copy\tC" -msgstr "Copiază\tC" - -#: AppGUI/MainGUI.py:626 AppGUI/MainGUI.py:670 -msgid "Delete\tDEL" -msgstr "Șterge\tDEL" - -#: AppGUI/MainGUI.py:631 -msgid "Move Drill(s)\tM" -msgstr "Muta Găuriri\tM" - -#: AppGUI/MainGUI.py:636 -msgid ">Gerber Editor<" -msgstr ">Editor Gerber<" - -#: AppGUI/MainGUI.py:640 -msgid "Add Pad\tP" -msgstr "Adaugă Pad\tP" - -#: AppGUI/MainGUI.py:642 -msgid "Add Pad Array\tA" -msgstr "Adaugă Arie paduri\tA" - -#: AppGUI/MainGUI.py:644 -msgid "Add Track\tT" -msgstr "Adaugă Traseu\tA" - -#: AppGUI/MainGUI.py:646 -msgid "Add Region\tN" -msgstr "Adaugă Regiune\tN" - -#: AppGUI/MainGUI.py:650 -msgid "Poligonize\tAlt+N" -msgstr "Poligonizare\tAlt+N" - -#: AppGUI/MainGUI.py:652 -msgid "Add SemiDisc\tE" -msgstr "Adaugă SemiDisc\tE" - -#: AppGUI/MainGUI.py:654 -msgid "Add Disc\tD" -msgstr "Adaugă Disc\tD" - -#: AppGUI/MainGUI.py:656 -msgid "Buffer\tB" -msgstr "Bufer\tB" - -#: AppGUI/MainGUI.py:658 -msgid "Scale\tS" -msgstr "Scalare\tS" - -#: AppGUI/MainGUI.py:660 -msgid "Mark Area\tAlt+A" -msgstr "Marchează aria\tAlt+A" - -#: AppGUI/MainGUI.py:662 -msgid "Eraser\tCtrl+E" -msgstr "Radieră\tCtrl+E" - -#: AppGUI/MainGUI.py:664 -msgid "Transform\tAlt+R" -msgstr "Unealta Transformare\tAlt+R" - -#: AppGUI/MainGUI.py:691 -msgid "Enable Plot" -msgstr "Activează Afișare" - -#: AppGUI/MainGUI.py:693 -msgid "Disable Plot" -msgstr "Dezactivează Afișare" - -#: AppGUI/MainGUI.py:697 -msgid "Set Color" -msgstr "Setați culoarea" - -#: AppGUI/MainGUI.py:700 App_Main.py:9644 -msgid "Red" -msgstr "Roșu" - -#: AppGUI/MainGUI.py:703 App_Main.py:9646 -msgid "Blue" -msgstr "Albastru" - -#: AppGUI/MainGUI.py:706 App_Main.py:9649 -msgid "Yellow" -msgstr "Galben" - -#: AppGUI/MainGUI.py:709 App_Main.py:9651 -msgid "Green" -msgstr "Verde" - -#: AppGUI/MainGUI.py:712 App_Main.py:9653 -msgid "Purple" -msgstr "Violet" - -#: AppGUI/MainGUI.py:715 App_Main.py:9655 -msgid "Brown" -msgstr "Maro" - -#: AppGUI/MainGUI.py:718 App_Main.py:9657 App_Main.py:9713 -msgid "White" -msgstr "Alb" - -#: AppGUI/MainGUI.py:721 App_Main.py:9659 -msgid "Black" -msgstr "Negru" - -#: AppGUI/MainGUI.py:726 App_Main.py:9662 -msgid "Custom" -msgstr "Personalizat" - -#: AppGUI/MainGUI.py:731 App_Main.py:9696 -msgid "Opacity" -msgstr "Opacitate" - -#: AppGUI/MainGUI.py:734 App_Main.py:9672 -msgid "Default" -msgstr "Implicit" - -#: AppGUI/MainGUI.py:739 -msgid "Generate CNC" -msgstr "Generează CNC" - -#: AppGUI/MainGUI.py:741 -msgid "View Source" -msgstr "Vizualiz. Sursa" - -#: AppGUI/MainGUI.py:746 AppGUI/MainGUI.py:851 AppGUI/MainGUI.py:1066 -#: AppGUI/MainGUI.py:1525 AppGUI/MainGUI.py:1886 AppGUI/MainGUI.py:2097 -#: AppGUI/MainGUI.py:4511 AppGUI/ObjectUI.py:1519 -#: AppObjects/FlatCAMGeometry.py:560 AppTools/ToolPanelize.py:551 -#: AppTools/ToolPanelize.py:578 AppTools/ToolPanelize.py:671 -#: AppTools/ToolPanelize.py:700 AppTools/ToolPanelize.py:762 -msgid "Copy" -msgstr "Copiază" - -#: AppGUI/MainGUI.py:754 AppGUI/MainGUI.py:1538 AppTools/ToolProperties.py:31 -msgid "Properties" -msgstr "Proprietati" - -#: AppGUI/MainGUI.py:783 -msgid "File Toolbar" -msgstr "Toolbar Fişiere" - -#: AppGUI/MainGUI.py:787 -msgid "Edit Toolbar" -msgstr "Toolbar Editare" - -#: AppGUI/MainGUI.py:791 -msgid "View Toolbar" -msgstr "Toolbar Vizualizare" - -#: AppGUI/MainGUI.py:795 -msgid "Shell Toolbar" -msgstr "Toolbar Linie de comanda" - -#: AppGUI/MainGUI.py:799 -msgid "Tools Toolbar" -msgstr "Toolbar Unelte" - -#: AppGUI/MainGUI.py:803 -msgid "Excellon Editor Toolbar" -msgstr "Toolbar Editor Excellon" - -#: AppGUI/MainGUI.py:809 -msgid "Geometry Editor Toolbar" -msgstr "Toolbar Editor Geometrii" - -#: AppGUI/MainGUI.py:813 -msgid "Gerber Editor Toolbar" -msgstr "Toolbar Editor Gerber" - -#: AppGUI/MainGUI.py:817 -msgid "Grid Toolbar" -msgstr "Toolbar Grid-uri" - -#: AppGUI/MainGUI.py:831 AppGUI/MainGUI.py:1865 App_Main.py:6592 -#: App_Main.py:6597 -msgid "Open Gerber" -msgstr "Încarcă Gerber" - -#: AppGUI/MainGUI.py:833 AppGUI/MainGUI.py:1867 App_Main.py:6632 -#: App_Main.py:6637 -msgid "Open Excellon" -msgstr "Încarcă Excellon" - -#: AppGUI/MainGUI.py:836 AppGUI/MainGUI.py:1870 -msgid "Open project" -msgstr "Încarcă Proiect" - -#: AppGUI/MainGUI.py:838 AppGUI/MainGUI.py:1872 -msgid "Save project" -msgstr "Salvează Proiect" - -#: AppGUI/MainGUI.py:846 AppGUI/MainGUI.py:1881 -msgid "Save Object and close the Editor" -msgstr "Salvează Obiectul și inchide Editorul" - -#: AppGUI/MainGUI.py:853 AppGUI/MainGUI.py:1888 -msgid "&Delete" -msgstr "&Șterge" - -#: AppGUI/MainGUI.py:856 AppGUI/MainGUI.py:1891 AppGUI/MainGUI.py:4100 -#: AppGUI/MainGUI.py:4308 AppTools/ToolDistance.py:35 -#: AppTools/ToolDistance.py:197 -msgid "Distance Tool" -msgstr "Unealta Distanță" - -#: AppGUI/MainGUI.py:858 AppGUI/MainGUI.py:1893 -msgid "Distance Min Tool" -msgstr "Unealta Distanță min" - -#: AppGUI/MainGUI.py:860 AppGUI/MainGUI.py:1895 AppGUI/MainGUI.py:4093 -msgid "Set Origin" -msgstr "Setează Originea" - -#: AppGUI/MainGUI.py:862 AppGUI/MainGUI.py:1897 -msgid "Move to Origin" -msgstr "Deplasează-te la Origine" - -#: AppGUI/MainGUI.py:865 AppGUI/MainGUI.py:1899 -msgid "Jump to Location" -msgstr "Sari la Locaţie" - -#: AppGUI/MainGUI.py:867 AppGUI/MainGUI.py:1901 AppGUI/MainGUI.py:4105 -msgid "Locate in Object" -msgstr "Localizează in Obiect" - -#: AppGUI/MainGUI.py:873 AppGUI/MainGUI.py:1907 -msgid "&Replot" -msgstr "&Reafișare" - -#: AppGUI/MainGUI.py:875 AppGUI/MainGUI.py:1909 -msgid "&Clear plot" -msgstr "&Șterge Afișare" - -#: AppGUI/MainGUI.py:877 AppGUI/MainGUI.py:1911 AppGUI/MainGUI.py:4096 -msgid "Zoom In" -msgstr "Marire" - -#: AppGUI/MainGUI.py:879 AppGUI/MainGUI.py:1913 AppGUI/MainGUI.py:4096 -msgid "Zoom Out" -msgstr "Micsorare" - -#: AppGUI/MainGUI.py:881 AppGUI/MainGUI.py:1429 AppGUI/MainGUI.py:1915 -#: AppGUI/MainGUI.py:4095 -msgid "Zoom Fit" -msgstr "Marire și ajustare" - -#: AppGUI/MainGUI.py:889 AppGUI/MainGUI.py:1921 -msgid "&Command Line" -msgstr "&Linie de comanda" - -#: AppGUI/MainGUI.py:901 AppGUI/MainGUI.py:1933 -msgid "2Sided Tool" -msgstr "Unealta 2-fețe" - -#: AppGUI/MainGUI.py:903 AppGUI/MainGUI.py:1935 AppGUI/MainGUI.py:4111 -msgid "Align Objects Tool" -msgstr "Unealta de Aliniere" - -#: AppGUI/MainGUI.py:905 AppGUI/MainGUI.py:1937 AppGUI/MainGUI.py:4111 -#: AppTools/ToolExtractDrills.py:393 -msgid "Extract Drills Tool" -msgstr "Unealta de Extragere Găuri" - -#: AppGUI/MainGUI.py:908 AppGUI/ObjectUI.py:360 AppTools/ToolCutOut.py:440 -msgid "Cutout Tool" -msgstr "Unealta Decupare" - -#: AppGUI/MainGUI.py:910 AppGUI/MainGUI.py:1942 AppGUI/ObjectUI.py:346 -#: AppGUI/ObjectUI.py:2087 AppTools/ToolNCC.py:974 -msgid "NCC Tool" -msgstr "Unealta NCC" - -#: AppGUI/MainGUI.py:914 AppGUI/MainGUI.py:1946 AppGUI/MainGUI.py:4113 -#: AppTools/ToolIsolation.py:38 AppTools/ToolIsolation.py:766 -msgid "Isolation Tool" -msgstr "Unealta de Izolare" - -#: AppGUI/MainGUI.py:918 AppGUI/MainGUI.py:1950 -msgid "Panel Tool" -msgstr "Unealta Panel" - -#: AppGUI/MainGUI.py:920 AppGUI/MainGUI.py:1952 AppTools/ToolFilm.py:569 -msgid "Film Tool" -msgstr "Unealta Film" - -#: AppGUI/MainGUI.py:922 AppGUI/MainGUI.py:1954 AppTools/ToolSolderPaste.py:561 -msgid "SolderPaste Tool" -msgstr "Unealta Dispenser SP" - -#: AppGUI/MainGUI.py:924 AppGUI/MainGUI.py:1956 AppGUI/MainGUI.py:4118 -#: AppTools/ToolSub.py:40 -msgid "Subtract Tool" -msgstr "Unealta Scădere" - -#: AppGUI/MainGUI.py:926 AppGUI/MainGUI.py:1958 AppTools/ToolRulesCheck.py:616 -msgid "Rules Tool" -msgstr "Unalta Verif. Reguli" - -#: AppGUI/MainGUI.py:928 AppGUI/MainGUI.py:1960 AppGUI/MainGUI.py:4115 -#: AppTools/ToolOptimal.py:33 AppTools/ToolOptimal.py:313 -msgid "Optimal Tool" -msgstr "Unealta Optim" - -#: AppGUI/MainGUI.py:933 AppGUI/MainGUI.py:1965 AppGUI/MainGUI.py:4111 -msgid "Calculators Tool" -msgstr "Unealta Calculatoare" - -#: AppGUI/MainGUI.py:937 AppGUI/MainGUI.py:1969 AppGUI/MainGUI.py:4116 -#: AppTools/ToolQRCode.py:43 AppTools/ToolQRCode.py:391 -msgid "QRCode Tool" -msgstr "Unealta QRCode" - -#: AppGUI/MainGUI.py:939 AppGUI/MainGUI.py:1971 AppGUI/MainGUI.py:4113 -#: AppTools/ToolCopperThieving.py:39 AppTools/ToolCopperThieving.py:572 -msgid "Copper Thieving Tool" -msgstr "Unealta Copper Thieving" - -#: AppGUI/MainGUI.py:942 AppGUI/MainGUI.py:1974 AppGUI/MainGUI.py:4112 -#: AppTools/ToolFiducials.py:33 AppTools/ToolFiducials.py:399 -msgid "Fiducials Tool" -msgstr "Unealta Fiducials" - -#: AppGUI/MainGUI.py:944 AppGUI/MainGUI.py:1976 AppTools/ToolCalibration.py:37 -#: AppTools/ToolCalibration.py:759 -msgid "Calibration Tool" -msgstr "Unealta Calibrare" - -#: AppGUI/MainGUI.py:946 AppGUI/MainGUI.py:1978 AppGUI/MainGUI.py:4113 -msgid "Punch Gerber Tool" -msgstr "Unealta Punctare Gerber" - -#: AppGUI/MainGUI.py:948 AppGUI/MainGUI.py:1980 AppTools/ToolInvertGerber.py:31 -msgid "Invert Gerber Tool" -msgstr "Unealta Inversare Gerber" - -#: AppGUI/MainGUI.py:950 AppGUI/MainGUI.py:1982 AppGUI/MainGUI.py:4115 -#: AppTools/ToolCorners.py:31 -msgid "Corner Markers Tool" -msgstr "Unealta pentru Semne la Colț" - -#: AppGUI/MainGUI.py:952 AppGUI/MainGUI.py:1984 -#: AppTools/ToolEtchCompensation.py:32 AppTools/ToolEtchCompensation.py:288 -msgid "Etch Compensation Tool" -msgstr "Unealta de Comp. Corodare" - -#: AppGUI/MainGUI.py:958 AppGUI/MainGUI.py:984 AppGUI/MainGUI.py:1036 -#: AppGUI/MainGUI.py:1990 AppGUI/MainGUI.py:2068 -msgid "Select" -msgstr "Selectează" - -#: AppGUI/MainGUI.py:960 AppGUI/MainGUI.py:1992 -msgid "Add Drill Hole" -msgstr "Adaugă o Găurire" - -#: AppGUI/MainGUI.py:962 AppGUI/MainGUI.py:1994 -msgid "Add Drill Hole Array" -msgstr "Adaugă o arie de Găuriri" - -#: AppGUI/MainGUI.py:964 AppGUI/MainGUI.py:1517 AppGUI/MainGUI.py:1998 -#: AppGUI/MainGUI.py:4393 -msgid "Add Slot" -msgstr "Adaugă Slot" - -#: AppGUI/MainGUI.py:966 AppGUI/MainGUI.py:1519 AppGUI/MainGUI.py:2000 -#: AppGUI/MainGUI.py:4392 -msgid "Add Slot Array" -msgstr "Adaugă o Arie sloturi" - -#: AppGUI/MainGUI.py:968 AppGUI/MainGUI.py:1522 AppGUI/MainGUI.py:1996 -msgid "Resize Drill" -msgstr "Redimens. Găurire" - -#: AppGUI/MainGUI.py:972 AppGUI/MainGUI.py:2004 -msgid "Copy Drill" -msgstr "Copiază Găurire" - -#: AppGUI/MainGUI.py:974 AppGUI/MainGUI.py:2006 -msgid "Delete Drill" -msgstr "Șterge Găurire" - -#: AppGUI/MainGUI.py:978 AppGUI/MainGUI.py:2010 -msgid "Move Drill" -msgstr "Muta Găurire" - -#: AppGUI/MainGUI.py:986 AppGUI/MainGUI.py:2018 -msgid "Add Circle" -msgstr "Adaugă Cerc" - -#: AppGUI/MainGUI.py:988 AppGUI/MainGUI.py:2020 -msgid "Add Arc" -msgstr "Adaugă Arc" - -#: AppGUI/MainGUI.py:990 AppGUI/MainGUI.py:2022 -msgid "Add Rectangle" -msgstr "Adaugă Patrulater" - -#: AppGUI/MainGUI.py:994 AppGUI/MainGUI.py:2026 -msgid "Add Path" -msgstr "Adaugă Cale" - -#: AppGUI/MainGUI.py:996 AppGUI/MainGUI.py:2028 -msgid "Add Polygon" -msgstr "Adaugă Poligon" - -#: AppGUI/MainGUI.py:999 AppGUI/MainGUI.py:2031 -msgid "Add Text" -msgstr "Adaugă Text" - -#: AppGUI/MainGUI.py:1001 AppGUI/MainGUI.py:2033 -msgid "Add Buffer" -msgstr "Adaugă Bufer" - -#: AppGUI/MainGUI.py:1003 AppGUI/MainGUI.py:2035 -msgid "Paint Shape" -msgstr "Paint o forma" - -#: AppGUI/MainGUI.py:1005 AppGUI/MainGUI.py:1062 AppGUI/MainGUI.py:1458 -#: AppGUI/MainGUI.py:1503 AppGUI/MainGUI.py:2037 AppGUI/MainGUI.py:2093 -msgid "Eraser" -msgstr "Stergere Selectivă" - -#: AppGUI/MainGUI.py:1009 AppGUI/MainGUI.py:2041 -msgid "Polygon Union" -msgstr "Uniune Poligoane" - -#: AppGUI/MainGUI.py:1011 AppGUI/MainGUI.py:2043 -msgid "Polygon Explode" -msgstr "Explodare Poligoane" - -#: AppGUI/MainGUI.py:1014 AppGUI/MainGUI.py:2046 -msgid "Polygon Intersection" -msgstr "Intersecţie Poligoane" - -#: AppGUI/MainGUI.py:1016 AppGUI/MainGUI.py:2048 -msgid "Polygon Subtraction" -msgstr "Substracţie Poligoane" - -#: AppGUI/MainGUI.py:1020 AppGUI/MainGUI.py:2052 -msgid "Cut Path" -msgstr "Taie Cale" - -#: AppGUI/MainGUI.py:1022 -msgid "Copy Shape(s)" -msgstr "Copiază forme geo." - -#: AppGUI/MainGUI.py:1025 -msgid "Delete Shape '-'" -msgstr "Șterge forme geo" - -#: AppGUI/MainGUI.py:1027 AppGUI/MainGUI.py:1070 AppGUI/MainGUI.py:1470 -#: AppGUI/MainGUI.py:1507 AppGUI/MainGUI.py:2058 AppGUI/MainGUI.py:2101 -#: AppGUI/ObjectUI.py:109 AppGUI/ObjectUI.py:152 -msgid "Transformations" -msgstr "Transformări" - -#: AppGUI/MainGUI.py:1030 -msgid "Move Objects " -msgstr "Mută Obiecte " - -#: AppGUI/MainGUI.py:1038 AppGUI/MainGUI.py:2070 AppGUI/MainGUI.py:4512 -msgid "Add Pad" -msgstr "Adaugă Pad" - -#: AppGUI/MainGUI.py:1042 AppGUI/MainGUI.py:2074 AppGUI/MainGUI.py:4513 -msgid "Add Track" -msgstr "Adaugă Traseu" - -#: AppGUI/MainGUI.py:1044 AppGUI/MainGUI.py:2076 AppGUI/MainGUI.py:4512 -msgid "Add Region" -msgstr "Adaugă Regiune" - -#: AppGUI/MainGUI.py:1046 AppGUI/MainGUI.py:1489 AppGUI/MainGUI.py:2078 -msgid "Poligonize" -msgstr "Poligonizare" - -#: AppGUI/MainGUI.py:1049 AppGUI/MainGUI.py:1491 AppGUI/MainGUI.py:2081 -msgid "SemiDisc" -msgstr "SemiDisc" - -#: AppGUI/MainGUI.py:1051 AppGUI/MainGUI.py:1493 AppGUI/MainGUI.py:2083 -msgid "Disc" -msgstr "Disc" - -#: AppGUI/MainGUI.py:1059 AppGUI/MainGUI.py:1501 AppGUI/MainGUI.py:2091 -msgid "Mark Area" -msgstr "Marc. aria" - -#: AppGUI/MainGUI.py:1073 AppGUI/MainGUI.py:1474 AppGUI/MainGUI.py:1536 -#: AppGUI/MainGUI.py:2104 AppGUI/MainGUI.py:4512 AppTools/ToolMove.py:27 -msgid "Move" -msgstr "Mutare" - -#: AppGUI/MainGUI.py:1081 -msgid "Snap to grid" -msgstr "Lipire la grid" - -#: AppGUI/MainGUI.py:1084 -msgid "Grid X snapping distance" -msgstr "Distanta de lipire la grid pe axa X" - -#: AppGUI/MainGUI.py:1089 -msgid "" -"When active, value on Grid_X\n" -"is copied to the Grid_Y value." -msgstr "" -"Când este activ, valoarea de pe Grid_X\n" -"este copiata și in Grid_Y." - -#: AppGUI/MainGUI.py:1096 -msgid "Grid Y snapping distance" -msgstr "Distanta de lipire la grid pe axa Y" - -#: AppGUI/MainGUI.py:1101 -msgid "Toggle the display of axis on canvas" -msgstr "Comutați afișarea Axelor" - -#: AppGUI/MainGUI.py:1107 AppGUI/preferences/PreferencesUIManager.py:846 -#: AppGUI/preferences/PreferencesUIManager.py:938 -#: AppGUI/preferences/PreferencesUIManager.py:966 -#: AppGUI/preferences/PreferencesUIManager.py:1072 App_Main.py:5140 -#: App_Main.py:5145 App_Main.py:5168 -msgid "Preferences" -msgstr "Preferințe" - -#: AppGUI/MainGUI.py:1113 -msgid "Command Line" -msgstr "Linie de comanda" - -#: AppGUI/MainGUI.py:1119 -msgid "HUD (Heads up display)" -msgstr "HUD (Afisaj In Zona Superioara)" - -#: AppGUI/MainGUI.py:1125 AppGUI/preferences/general/GeneralAPPSetGroupUI.py:97 -msgid "" -"Draw a delimiting rectangle on canvas.\n" -"The purpose is to illustrate the limits for our work." -msgstr "" -"Desenează un patrulater care delimitează o suprafată de lucru.\n" -"Scopul este de a ilustra limitele suprafetei noastre de lucru." - -#: AppGUI/MainGUI.py:1135 -msgid "Snap to corner" -msgstr "Lipire la colt" - -#: AppGUI/MainGUI.py:1139 AppGUI/preferences/general/GeneralAPPSetGroupUI.py:78 -msgid "Max. magnet distance" -msgstr "Distanta magnetica maxima" - -#: AppGUI/MainGUI.py:1175 AppGUI/MainGUI.py:1420 App_Main.py:7639 -msgid "Project" -msgstr "Proiect" - -#: AppGUI/MainGUI.py:1190 -msgid "Selected" -msgstr "Selectat" - -#: AppGUI/MainGUI.py:1218 AppGUI/MainGUI.py:1226 -msgid "Plot Area" -msgstr "Arie Afișare" - -#: AppGUI/MainGUI.py:1253 -msgid "General" -msgstr "General" - -#: AppGUI/MainGUI.py:1268 AppTools/ToolCopperThieving.py:74 -#: AppTools/ToolCorners.py:55 AppTools/ToolDblSided.py:64 -#: AppTools/ToolEtchCompensation.py:73 AppTools/ToolExtractDrills.py:61 -#: AppTools/ToolFiducials.py:262 AppTools/ToolInvertGerber.py:72 -#: AppTools/ToolIsolation.py:94 AppTools/ToolOptimal.py:71 -#: AppTools/ToolPunchGerber.py:64 AppTools/ToolQRCode.py:78 -#: AppTools/ToolRulesCheck.py:61 AppTools/ToolSolderPaste.py:67 -#: AppTools/ToolSub.py:70 -msgid "GERBER" -msgstr "GERBER" - -#: AppGUI/MainGUI.py:1278 AppTools/ToolDblSided.py:92 -#: AppTools/ToolRulesCheck.py:199 -msgid "EXCELLON" -msgstr "EXCELLON" - -#: AppGUI/MainGUI.py:1288 AppTools/ToolDblSided.py:120 AppTools/ToolSub.py:125 -msgid "GEOMETRY" -msgstr "GEOMETRIE" - -#: AppGUI/MainGUI.py:1298 -msgid "CNC-JOB" -msgstr "CNCJob" - -#: AppGUI/MainGUI.py:1307 AppGUI/ObjectUI.py:328 AppGUI/ObjectUI.py:2062 -msgid "TOOLS" -msgstr "Unelte" - -#: AppGUI/MainGUI.py:1316 -msgid "TOOLS 2" -msgstr "UNELTE 2" - -#: AppGUI/MainGUI.py:1326 -msgid "UTILITIES" -msgstr "UTILITARE" - -#: AppGUI/MainGUI.py:1343 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:201 -msgid "Restore Defaults" -msgstr "Restabiliți setările de bază" - -#: AppGUI/MainGUI.py:1346 -msgid "" -"Restore the entire set of default values\n" -"to the initial values loaded after first launch." -msgstr "" -"Restaurați întregul set de valori implicite\n" -"la valorile inițiale încărcate după prima lansare." - -#: AppGUI/MainGUI.py:1351 -msgid "Open Pref Folder" -msgstr "Deschide Pref Dir" - -#: AppGUI/MainGUI.py:1354 -msgid "Open the folder where FlatCAM save the preferences files." -msgstr "Deschide directorul unde FlatCAM salvează fişierele cu setări." - -#: AppGUI/MainGUI.py:1358 AppGUI/MainGUI.py:1836 -msgid "Clear GUI Settings" -msgstr "Șterge Setările GUI" - -#: AppGUI/MainGUI.py:1362 -msgid "" -"Clear the GUI settings for FlatCAM,\n" -"such as: layout, gui state, style, hdpi support etc." -msgstr "" -"Șterge setările GUI pentru FlatCAM,\n" -"cum ar fi: amplasare, stare UI, suport HDPI sau traducerea." - -#: AppGUI/MainGUI.py:1373 -msgid "Apply" -msgstr "Aplicați" - -#: AppGUI/MainGUI.py:1376 -msgid "Apply the current preferences without saving to a file." -msgstr "Aplicați preferințele actuale fără a salva într-un fișier." - -#: AppGUI/MainGUI.py:1383 -msgid "" -"Save the current settings in the 'current_defaults' file\n" -"which is the file storing the working default preferences." -msgstr "" -"Salvează setările curente in fişierul numit: 'current_defaults'\n" -"fişier care este cel unde se salvează preferințele cu care se va lucra." - -#: AppGUI/MainGUI.py:1391 -msgid "Will not save the changes and will close the preferences window." -msgstr "Nu va salva modificările și va închide fereastra de preferințe." - -#: AppGUI/MainGUI.py:1405 -msgid "Toggle Visibility" -msgstr "Comută Vizibilitate" - -#: AppGUI/MainGUI.py:1411 -msgid "New" -msgstr "Nou" - -#: AppGUI/MainGUI.py:1413 AppTools/ToolCalibration.py:631 -#: AppTools/ToolCalibration.py:648 AppTools/ToolCalibration.py:815 -#: AppTools/ToolCopperThieving.py:148 AppTools/ToolCopperThieving.py:162 -#: AppTools/ToolCopperThieving.py:608 AppTools/ToolCutOut.py:92 -#: AppTools/ToolDblSided.py:226 AppTools/ToolFilm.py:69 AppTools/ToolFilm.py:92 -#: AppTools/ToolImage.py:49 AppTools/ToolImage.py:271 -#: AppTools/ToolIsolation.py:464 AppTools/ToolIsolation.py:517 -#: AppTools/ToolIsolation.py:1281 AppTools/ToolNCC.py:95 -#: AppTools/ToolNCC.py:558 AppTools/ToolNCC.py:1318 AppTools/ToolPaint.py:501 -#: AppTools/ToolPaint.py:705 AppTools/ToolPanelize.py:116 -#: AppTools/ToolPanelize.py:385 AppTools/ToolPanelize.py:402 -msgid "Geometry" -msgstr "Geometrie" - -#: AppGUI/MainGUI.py:1417 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:99 -#: AppTools/ToolAlignObjects.py:74 AppTools/ToolAlignObjects.py:110 -#: AppTools/ToolCalibration.py:197 AppTools/ToolCalibration.py:631 -#: AppTools/ToolCalibration.py:648 AppTools/ToolCalibration.py:807 -#: AppTools/ToolCalibration.py:815 AppTools/ToolCopperThieving.py:148 -#: AppTools/ToolCopperThieving.py:162 AppTools/ToolCopperThieving.py:608 -#: AppTools/ToolDblSided.py:225 AppTools/ToolFilm.py:342 -#: AppTools/ToolIsolation.py:517 AppTools/ToolIsolation.py:1281 -#: AppTools/ToolNCC.py:558 AppTools/ToolNCC.py:1318 AppTools/ToolPaint.py:501 -#: AppTools/ToolPaint.py:705 AppTools/ToolPanelize.py:385 -#: AppTools/ToolPunchGerber.py:149 AppTools/ToolPunchGerber.py:164 -msgid "Excellon" -msgstr "Excellon" - -#: AppGUI/MainGUI.py:1424 -msgid "Grids" -msgstr "Grid-uri" - -#: AppGUI/MainGUI.py:1431 -msgid "Clear Plot" -msgstr "Șterge Afișare" - -#: AppGUI/MainGUI.py:1433 -msgid "Replot" -msgstr "Reafișare" - -#: AppGUI/MainGUI.py:1437 -msgid "Geo Editor" -msgstr "Editor Geometrii" - -#: AppGUI/MainGUI.py:1439 -msgid "Path" -msgstr "Pe cale" - -#: AppGUI/MainGUI.py:1441 -msgid "Rectangle" -msgstr "Patrulater" - -#: AppGUI/MainGUI.py:1444 -msgid "Circle" -msgstr "Cerc" - -#: AppGUI/MainGUI.py:1448 -msgid "Arc" -msgstr "Arc" - -#: AppGUI/MainGUI.py:1462 -msgid "Union" -msgstr "Uniune" - -#: AppGUI/MainGUI.py:1464 -msgid "Intersection" -msgstr "Intersecţie" - -#: AppGUI/MainGUI.py:1466 -msgid "Subtraction" -msgstr "Scădere" - -#: AppGUI/MainGUI.py:1468 AppGUI/ObjectUI.py:2151 -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:56 -msgid "Cut" -msgstr "Tăiere" - -#: AppGUI/MainGUI.py:1479 -msgid "Pad" -msgstr "Pad" - -#: AppGUI/MainGUI.py:1481 -msgid "Pad Array" -msgstr "Arie de paduri" - -#: AppGUI/MainGUI.py:1485 -msgid "Track" -msgstr "Traseu" - -#: AppGUI/MainGUI.py:1487 -msgid "Region" -msgstr "Regiune" - -#: AppGUI/MainGUI.py:1510 -msgid "Exc Editor" -msgstr "Editor EXC" - -#: AppGUI/MainGUI.py:1512 AppGUI/MainGUI.py:4391 -msgid "Add Drill" -msgstr "Adaugă găurire" - -#: AppGUI/MainGUI.py:1531 App_Main.py:2219 -msgid "Close Editor" -msgstr "Inchide Editorul" - -#: AppGUI/MainGUI.py:1555 -msgid "" -"Absolute measurement.\n" -"Reference is (X=0, Y= 0) position" -msgstr "" -"Măsurătoare absolută.\n" -"Referința este originea (0, 0)" - -#: AppGUI/MainGUI.py:1563 -msgid "Application units" -msgstr "Unitățile aplicației" - -#: AppGUI/MainGUI.py:1654 -msgid "Lock Toolbars" -msgstr "Blochează Toolbar-uri" - -#: AppGUI/MainGUI.py:1824 -msgid "FlatCAM Preferences Folder opened." -msgstr "Folderul de preferințe FlatCAM a fost deschis." - -#: AppGUI/MainGUI.py:1835 -msgid "Are you sure you want to delete the GUI Settings? \n" -msgstr "Esti sigur că dorești să ștergi setările GUI?\n" - -#: AppGUI/MainGUI.py:1840 AppGUI/preferences/PreferencesUIManager.py:877 -#: AppGUI/preferences/PreferencesUIManager.py:1123 AppTranslation.py:111 -#: AppTranslation.py:210 App_Main.py:2223 App_Main.py:3158 App_Main.py:5354 -#: App_Main.py:6415 -msgid "Yes" -msgstr "Da" - -#: AppGUI/MainGUI.py:1841 AppGUI/preferences/PreferencesUIManager.py:1124 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:62 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:164 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:150 -#: AppTools/ToolIsolation.py:174 AppTools/ToolNCC.py:182 -#: AppTools/ToolPaint.py:165 AppTranslation.py:112 AppTranslation.py:211 -#: App_Main.py:2224 App_Main.py:3159 App_Main.py:5355 App_Main.py:6416 -msgid "No" -msgstr "Nu" - -#: AppGUI/MainGUI.py:1940 -msgid "&Cutout Tool" -msgstr "Unealta Decupare" - -#: AppGUI/MainGUI.py:2016 -msgid "Select 'Esc'" -msgstr "Select" - -#: AppGUI/MainGUI.py:2054 -msgid "Copy Objects" -msgstr "Copiază Obiecte" - -#: AppGUI/MainGUI.py:2056 AppGUI/MainGUI.py:4311 -msgid "Delete Shape" -msgstr "Șterge forme geo" - -#: AppGUI/MainGUI.py:2062 -msgid "Move Objects" -msgstr "Mută Obiecte" - -#: AppGUI/MainGUI.py:2648 -msgid "" -"Please first select a geometry item to be cutted\n" -"then select the geometry item that will be cutted\n" -"out of the first item. In the end press ~X~ key or\n" -"the toolbar button." -msgstr "" -"Mai intai selectează o forma geometrică care trebuie tăiată\n" -"apoi selectează forma geo. tăietoare. La final apasă tasta ~X~ sau\n" -"butonul corespunzator din Toolbar." - -#: AppGUI/MainGUI.py:2655 AppGUI/MainGUI.py:2819 AppGUI/MainGUI.py:2866 -#: AppGUI/MainGUI.py:2888 -msgid "Warning" -msgstr "Atenţie" - -#: AppGUI/MainGUI.py:2814 -msgid "" -"Please select geometry items \n" -"on which to perform Intersection Tool." -msgstr "" -"Selectează forma geometrică asupra căreia să se\n" -"aplice Unealta Intersecţie." - -#: AppGUI/MainGUI.py:2861 -msgid "" -"Please select geometry items \n" -"on which to perform Substraction Tool." -msgstr "" -"Selectează forma geometrică asupra căreia să se\n" -"aplice Unealta Substracţie." - -#: AppGUI/MainGUI.py:2883 -msgid "" -"Please select geometry items \n" -"on which to perform union." -msgstr "" -"Selectează forma geometrică asupra căreia să se\n" -"aplice Unealta Uniune." - -#: AppGUI/MainGUI.py:2968 AppGUI/MainGUI.py:3183 -msgid "Cancelled. Nothing selected to delete." -msgstr "Anulat. Nimic nu este selectat pentru ștergere." - -#: AppGUI/MainGUI.py:3052 AppGUI/MainGUI.py:3299 -msgid "Cancelled. Nothing selected to copy." -msgstr "Anulat. Nimic nu este selectat pentru copiere." - -#: AppGUI/MainGUI.py:3098 AppGUI/MainGUI.py:3328 -msgid "Cancelled. Nothing selected to move." -msgstr "Anulat. Nimic nu este selectat pentru mutare." - -#: AppGUI/MainGUI.py:3354 -msgid "New Tool ..." -msgstr "O noua Unealtă ..." - -#: AppGUI/MainGUI.py:3355 AppTools/ToolIsolation.py:1258 -#: AppTools/ToolNCC.py:924 AppTools/ToolPaint.py:849 -#: AppTools/ToolSolderPaste.py:568 -msgid "Enter a Tool Diameter" -msgstr "Introduceti un Diametru de Unealtă" - -#: AppGUI/MainGUI.py:3367 -msgid "Adding Tool cancelled ..." -msgstr "Adăugarea unei unelte anulată..." - -#: AppGUI/MainGUI.py:3381 -msgid "Distance Tool exit..." -msgstr "Măsurătoarea s-a terminat ..." - -#: AppGUI/MainGUI.py:3561 App_Main.py:3146 -msgid "Application is saving the project. Please wait ..." -msgstr "Aplicația salvează proiectul. Vă rugăm aşteptați ..." - -#: AppGUI/MainGUI.py:3668 -msgid "Shell disabled." -msgstr "Shell dezactivat." - -#: AppGUI/MainGUI.py:3678 -msgid "Shell enabled." -msgstr "Shell activat." - -#: AppGUI/MainGUI.py:3706 App_Main.py:9155 -msgid "Shortcut Key List" -msgstr "Lista cu taste Shortcut" - -#: AppGUI/MainGUI.py:4089 -msgid "General Shortcut list" -msgstr "Lista de shortcut-uri" - -#: AppGUI/MainGUI.py:4090 -msgid "SHOW SHORTCUT LIST" -msgstr "ARATA LISTA DE TASTE SHORTCUT" - -#: AppGUI/MainGUI.py:4090 -msgid "Switch to Project Tab" -msgstr "Treci la Tab-ul Proiect" - -#: AppGUI/MainGUI.py:4090 -msgid "Switch to Selected Tab" -msgstr "Treci la Tab-ul Selectat" - -#: AppGUI/MainGUI.py:4091 -msgid "Switch to Tool Tab" -msgstr "Treci la Tab-ul 'Unealta'" - -#: AppGUI/MainGUI.py:4092 -msgid "New Gerber" -msgstr "Gerber Nou" - -#: AppGUI/MainGUI.py:4092 -msgid "Edit Object (if selected)" -msgstr "Editeaza obiectul (daca este selectat)" - -#: AppGUI/MainGUI.py:4092 App_Main.py:5658 -msgid "Grid On/Off" -msgstr "Grid On/Off" - -#: AppGUI/MainGUI.py:4092 -msgid "Jump to Coordinates" -msgstr "Sari la Coordonatele" - -#: AppGUI/MainGUI.py:4093 -msgid "New Excellon" -msgstr "Excellon nou" - -#: AppGUI/MainGUI.py:4093 -msgid "Move Obj" -msgstr "Mută Obiecte" - -#: AppGUI/MainGUI.py:4093 -msgid "New Geometry" -msgstr "Geometrie Noua" - -#: AppGUI/MainGUI.py:4093 -msgid "Change Units" -msgstr "Comută Unitati" - -#: AppGUI/MainGUI.py:4094 -msgid "Open Properties Tool" -msgstr "Deschide Unealta Proprietati" - -#: AppGUI/MainGUI.py:4094 -msgid "Rotate by 90 degree CW" -msgstr "Roteste cu 90 grade CW" - -#: AppGUI/MainGUI.py:4094 -msgid "Shell Toggle" -msgstr "Comuta Linie de comanda" - -#: AppGUI/MainGUI.py:4095 -msgid "" -"Add a Tool (when in Geometry Selected Tab or in Tools NCC or Tools Paint)" -msgstr "" -"Adaugă o Unealtă (cand ne aflam in tab-ul Selected al Geometriei sau in " -"Unealta NCC sau in unealta Paint)" - -#: AppGUI/MainGUI.py:4096 -msgid "Flip on X_axis" -msgstr "Oglindește pe axa X" - -#: AppGUI/MainGUI.py:4096 -msgid "Flip on Y_axis" -msgstr "Oglindește pe axa Y" - -#: AppGUI/MainGUI.py:4099 -msgid "Copy Obj" -msgstr "Copiază Obiecte" - -#: AppGUI/MainGUI.py:4099 -msgid "Open Tools Database" -msgstr "Deschide baza de date Unelte" - -#: AppGUI/MainGUI.py:4100 -msgid "Open Excellon File" -msgstr "Încarcă un fisier Excellon" - -#: AppGUI/MainGUI.py:4100 -msgid "Open Gerber File" -msgstr "Încarcă un fisier Gerber" - -#: AppGUI/MainGUI.py:4100 -msgid "New Project" -msgstr "Un Nou Project" - -#: AppGUI/MainGUI.py:4101 App_Main.py:6711 App_Main.py:6714 -msgid "Open Project" -msgstr "Încarcă Project" - -#: AppGUI/MainGUI.py:4101 AppTools/ToolPDF.py:41 -msgid "PDF Import Tool" -msgstr "Unealta import PDF" - -#: AppGUI/MainGUI.py:4101 -msgid "Save Project" -msgstr "Salvează Proiectul" - -#: AppGUI/MainGUI.py:4101 -msgid "Toggle Plot Area" -msgstr "Comută Aria de Afișare" - -#: AppGUI/MainGUI.py:4104 -msgid "Copy Obj_Name" -msgstr "Copiază Nume Obiect" - -#: AppGUI/MainGUI.py:4105 -msgid "Toggle Code Editor" -msgstr "Comută Editorul de cod" - -#: AppGUI/MainGUI.py:4105 -msgid "Toggle the axis" -msgstr "Comută Reprezentare Axe" - -#: AppGUI/MainGUI.py:4105 AppGUI/MainGUI.py:4306 AppGUI/MainGUI.py:4393 -#: AppGUI/MainGUI.py:4515 -msgid "Distance Minimum Tool" -msgstr "Unealta Distanță minimă" - -#: AppGUI/MainGUI.py:4106 -msgid "Open Preferences Window" -msgstr "Deschide Preferințe" - -#: AppGUI/MainGUI.py:4107 -msgid "Rotate by 90 degree CCW" -msgstr "Roteste cu 90 grade CCW" - -#: AppGUI/MainGUI.py:4107 -msgid "Run a Script" -msgstr "Rulează TCL script" - -#: AppGUI/MainGUI.py:4107 -msgid "Toggle the workspace" -msgstr "Comută Suprafata de lucru" - -#: AppGUI/MainGUI.py:4107 -msgid "Skew on X axis" -msgstr "Deformare pe axa X" - -#: AppGUI/MainGUI.py:4108 -msgid "Skew on Y axis" -msgstr "Deformare pe axa Y" - -#: AppGUI/MainGUI.py:4111 -msgid "2-Sided PCB Tool" -msgstr "Unealta 2-fețe" - -#: AppGUI/MainGUI.py:4112 -msgid "Toggle Grid Lines" -msgstr "Comută Linii Grid" - -#: AppGUI/MainGUI.py:4114 -msgid "Solder Paste Dispensing Tool" -msgstr "Unealta DispensorPF" - -#: AppGUI/MainGUI.py:4115 -msgid "Film PCB Tool" -msgstr "Unealta Film" - -#: AppGUI/MainGUI.py:4115 -msgid "Non-Copper Clearing Tool" -msgstr "Curățăre Non-Cupru" - -#: AppGUI/MainGUI.py:4116 -msgid "Paint Area Tool" -msgstr "Unealta Paint" - -#: AppGUI/MainGUI.py:4116 -msgid "Rules Check Tool" -msgstr "Unealta Verificari Reguli" - -#: AppGUI/MainGUI.py:4117 -msgid "View File Source" -msgstr "Vizualiz. Cod Sursă" - -#: AppGUI/MainGUI.py:4117 -msgid "Transformations Tool" -msgstr "Unealta Transformări" - -#: AppGUI/MainGUI.py:4118 -msgid "Cutout PCB Tool" -msgstr "Unealta Decupare" - -#: AppGUI/MainGUI.py:4118 AppTools/ToolPanelize.py:35 -msgid "Panelize PCB" -msgstr "Panelizează PCB" - -#: AppGUI/MainGUI.py:4119 -msgid "Enable all Plots" -msgstr "Activează Afișare pt Tot" - -#: AppGUI/MainGUI.py:4119 -msgid "Disable all Plots" -msgstr "Dezactivează Afișare pt Tot" - -#: AppGUI/MainGUI.py:4119 -msgid "Disable Non-selected Plots" -msgstr "Dezactivează ne-selectate" - -#: AppGUI/MainGUI.py:4120 -msgid "Toggle Full Screen" -msgstr "Comută FullScreen" - -#: AppGUI/MainGUI.py:4123 -msgid "Abort current task (gracefully)" -msgstr "Renutna la task" - -#: AppGUI/MainGUI.py:4126 -msgid "Save Project As" -msgstr "Salvează Proiectul ca" - -#: AppGUI/MainGUI.py:4127 -msgid "" -"Paste Special. Will convert a Windows path style to the one required in Tcl " -"Shell" -msgstr "" -"Lipire specială. Va converti stilul de adresa cale Windows in cel necesar in " -"Tcl Shell" - -#: AppGUI/MainGUI.py:4130 -msgid "Open Online Manual" -msgstr "Deschide Manualul Online" - -#: AppGUI/MainGUI.py:4131 -msgid "Open Online Tutorials" -msgstr "Deschide Tutoriale Online" - -#: AppGUI/MainGUI.py:4131 -msgid "Refresh Plots" -msgstr "Improspatare Afișare" - -#: AppGUI/MainGUI.py:4131 AppTools/ToolSolderPaste.py:517 -msgid "Delete Object" -msgstr "Șterge Obiectul" - -#: AppGUI/MainGUI.py:4131 -msgid "Alternate: Delete Tool" -msgstr "Alternativ: Șterge Unealta" - -#: AppGUI/MainGUI.py:4132 -msgid "(left to Key_1)Toggle Notebook Area (Left Side)" -msgstr "(in stanga tasta 1) Comutați zona Notebook (partea stângă)" - -#: AppGUI/MainGUI.py:4132 -msgid "En(Dis)able Obj Plot" -msgstr "(Dez)activează Afișare" - -#: AppGUI/MainGUI.py:4133 -msgid "Deselects all objects" -msgstr "Deselectează toate obiectele" - -#: AppGUI/MainGUI.py:4147 -msgid "Editor Shortcut list" -msgstr "Lista de shortcut-uri" - -#: AppGUI/MainGUI.py:4301 -msgid "GEOMETRY EDITOR" -msgstr "EDITOR GEOMETRIE" - -#: AppGUI/MainGUI.py:4301 -msgid "Draw an Arc" -msgstr "Deseneaza un Arc" - -#: AppGUI/MainGUI.py:4301 -msgid "Copy Geo Item" -msgstr "Copiază Geo" - -#: AppGUI/MainGUI.py:4302 -msgid "Within Add Arc will toogle the ARC direction: CW or CCW" -msgstr "In cadrul 'Aadauga Arc' va comuta intre directiile arcului: CW sau CCW" - -#: AppGUI/MainGUI.py:4302 -msgid "Polygon Intersection Tool" -msgstr "Unealta Intersecţie Poligoane" - -#: AppGUI/MainGUI.py:4303 -msgid "Geo Paint Tool" -msgstr "Unealta Paint Geo" - -#: AppGUI/MainGUI.py:4303 AppGUI/MainGUI.py:4392 AppGUI/MainGUI.py:4512 -msgid "Jump to Location (x, y)" -msgstr "Sari la Locaţia (x, y)" - -#: AppGUI/MainGUI.py:4303 -msgid "Toggle Corner Snap" -msgstr "Comută lipire colt" - -#: AppGUI/MainGUI.py:4303 -msgid "Move Geo Item" -msgstr "Muta El. Geo" - -#: AppGUI/MainGUI.py:4304 -msgid "Within Add Arc will cycle through the ARC modes" -msgstr "In cadrul 'Adauga Arc' va trece circular prin tipurile de Arc" - -#: AppGUI/MainGUI.py:4304 -msgid "Draw a Polygon" -msgstr "Deseneaza un Poligon" - -#: AppGUI/MainGUI.py:4304 -msgid "Draw a Circle" -msgstr "Deseneaza un Cerc" - -#: AppGUI/MainGUI.py:4305 -msgid "Draw a Path" -msgstr "Deseneaza un Traseu" - -#: AppGUI/MainGUI.py:4305 -msgid "Draw Rectangle" -msgstr "Deseneaza un Patrulater" - -#: AppGUI/MainGUI.py:4305 -msgid "Polygon Subtraction Tool" -msgstr "Unealta Substracţie Poligoane" - -#: AppGUI/MainGUI.py:4305 -msgid "Add Text Tool" -msgstr "Unealta Adaugare Text" - -#: AppGUI/MainGUI.py:4306 -msgid "Polygon Union Tool" -msgstr "Unealta Uniune Poligoane" - -#: AppGUI/MainGUI.py:4306 -msgid "Flip shape on X axis" -msgstr "Oglindește pe axa X" - -#: AppGUI/MainGUI.py:4306 -msgid "Flip shape on Y axis" -msgstr "Oglindește pe axa Y" - -#: AppGUI/MainGUI.py:4307 -msgid "Skew shape on X axis" -msgstr "Deformare pe axa X" - -#: AppGUI/MainGUI.py:4307 -msgid "Skew shape on Y axis" -msgstr "Deformare pe axa Y" - -#: AppGUI/MainGUI.py:4307 -msgid "Editor Transformation Tool" -msgstr "Unealta Transformare in Editor" - -#: AppGUI/MainGUI.py:4308 -msgid "Offset shape on X axis" -msgstr "Ofset pe axa X" - -#: AppGUI/MainGUI.py:4308 -msgid "Offset shape on Y axis" -msgstr "Ofset pe axa Y" - -#: AppGUI/MainGUI.py:4309 AppGUI/MainGUI.py:4395 AppGUI/MainGUI.py:4517 -msgid "Save Object and Exit Editor" -msgstr "Salvează Obiectul și inchide Editorul" - -#: AppGUI/MainGUI.py:4309 -msgid "Polygon Cut Tool" -msgstr "Unealta Taiere Poligoane" - -#: AppGUI/MainGUI.py:4310 -msgid "Rotate Geometry" -msgstr "Roteste Geometrie" - -#: AppGUI/MainGUI.py:4310 -msgid "Finish drawing for certain tools" -msgstr "Termina de desenat (pt anumite unelte)" - -#: AppGUI/MainGUI.py:4310 AppGUI/MainGUI.py:4395 AppGUI/MainGUI.py:4515 -msgid "Abort and return to Select" -msgstr "Renutna si intoarce-te la Selectie" - -#: AppGUI/MainGUI.py:4391 -msgid "EXCELLON EDITOR" -msgstr "EDITOR EXCELLON" - -#: AppGUI/MainGUI.py:4391 -msgid "Copy Drill(s)" -msgstr "Copiaza Găurire" - -#: AppGUI/MainGUI.py:4392 -msgid "Move Drill(s)" -msgstr "Muta Găuri" - -#: AppGUI/MainGUI.py:4393 -msgid "Add a new Tool" -msgstr "Adaugă Unealta Noua" - -#: AppGUI/MainGUI.py:4394 -msgid "Delete Drill(s)" -msgstr "Șterge Găuri" - -#: AppGUI/MainGUI.py:4394 -msgid "Alternate: Delete Tool(s)" -msgstr "Alternativ: Șterge Unealta" - -#: AppGUI/MainGUI.py:4511 -msgid "GERBER EDITOR" -msgstr "EDITOR GERBER" - -#: AppGUI/MainGUI.py:4511 -msgid "Add Disc" -msgstr "Adaugă Disc" - -#: AppGUI/MainGUI.py:4511 -msgid "Add SemiDisc" -msgstr "Adaugă SemiDisc" - -#: AppGUI/MainGUI.py:4513 -msgid "Within Track & Region Tools will cycle in REVERSE the bend modes" -msgstr "" -"In cadrul uneltelor Traseu si Regiune va trece circular in Revers prin " -"modurile de indoire" - -#: AppGUI/MainGUI.py:4514 -msgid "Within Track & Region Tools will cycle FORWARD the bend modes" -msgstr "" -"In cadrul uneltelor Traseu si Regiune va trece circular in Avans prin " -"modurile de indoire" - -#: AppGUI/MainGUI.py:4515 -msgid "Alternate: Delete Apertures" -msgstr "Alternativ: Șterge Apertură" - -#: AppGUI/MainGUI.py:4516 -msgid "Eraser Tool" -msgstr "Unealta Stergere" - -#: AppGUI/MainGUI.py:4517 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:221 -msgid "Mark Area Tool" -msgstr "Unealta de Marc. Arie" - -#: AppGUI/MainGUI.py:4517 -msgid "Poligonize Tool" -msgstr "Unealta Poligonizare" - -#: AppGUI/MainGUI.py:4517 -msgid "Transformation Tool" -msgstr "Unealta Transformare" - -#: AppGUI/ObjectUI.py:38 -msgid "App Object" -msgstr "Obiect" - -#: AppGUI/ObjectUI.py:78 AppTools/ToolIsolation.py:77 -msgid "" -"BASIC is suitable for a beginner. Many parameters\n" -"are hidden from the user in this mode.\n" -"ADVANCED mode will make available all parameters.\n" -"\n" -"To change the application LEVEL, go to:\n" -"Edit -> Preferences -> General and check:\n" -"'APP. LEVEL' radio button." -msgstr "" -"Modul de Bază este potrivit pt incepatori. Multi parametri sunt\n" -"ascunsi de user in acest mod.\n" -"Modul Avansat face disponibili toti parametrii programului.\n" -"\n" -"Pt a schimba modul de lucru al aplicaţiei mergi in:\n" -"Edit -> Preferințe -> General și bifează:\n" -"butonul radio: >Nivel App<." - -#: AppGUI/ObjectUI.py:111 AppGUI/ObjectUI.py:154 -msgid "Geometrical transformations of the current object." -msgstr "Transformări geometrice ale obictului curent." - -#: AppGUI/ObjectUI.py:120 -msgid "" -"Factor by which to multiply\n" -"geometric features of this object.\n" -"Expressions are allowed. E.g: 1/25.4" -msgstr "" -"Factor cu care se multiplica \n" -"caracteristicile geometrice ale\n" -"acestui obiect.\n" -"Expresiile sunt permise. De ex: 1 / 25.4" - -#: AppGUI/ObjectUI.py:127 -msgid "Perform scaling operation." -msgstr "Efectuează operatia de scalare." - -#: AppGUI/ObjectUI.py:138 -msgid "" -"Amount by which to move the object\n" -"in the x and y axes in (x, y) format.\n" -"Expressions are allowed. E.g: (1/3.2, 0.5*3)" -msgstr "" -"Valoare cu cat să se deplaseze obiectul\n" -"pe axele X și /sau Y in formatul (x,y).\n" -"Expresiile sunt permise. De ex: (1/3.2, 0.5*3)" - -#: AppGUI/ObjectUI.py:145 -msgid "Perform the offset operation." -msgstr "Efectuează operația de Ofset." - -#: AppGUI/ObjectUI.py:162 AppGUI/ObjectUI.py:173 AppTool.py:280 AppTool.py:291 -msgid "Edited value is out of range" -msgstr "Valoarea editată este in afara limitelor" - -#: AppGUI/ObjectUI.py:168 AppGUI/ObjectUI.py:175 AppTool.py:286 AppTool.py:293 -msgid "Edited value is within limits." -msgstr "Valoarea editată este in limite." - -#: AppGUI/ObjectUI.py:187 -msgid "Gerber Object" -msgstr "Obiect Gerber" - -#: AppGUI/ObjectUI.py:196 AppGUI/ObjectUI.py:496 AppGUI/ObjectUI.py:1313 -#: AppGUI/ObjectUI.py:2135 AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:30 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:33 -#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:31 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:31 -msgid "Plot Options" -msgstr "Opțiuni afișare" - -#: AppGUI/ObjectUI.py:202 AppGUI/ObjectUI.py:502 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:47 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:45 -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:119 -#: AppTools/ToolCopperThieving.py:195 -msgid "Solid" -msgstr "Solid" - -#: AppGUI/ObjectUI.py:204 AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:47 -msgid "Solid color polygons." -msgstr "Poligoane color solide." - -#: AppGUI/ObjectUI.py:210 AppGUI/ObjectUI.py:510 AppGUI/ObjectUI.py:1319 -msgid "Multi-Color" -msgstr "Multicolor" - -#: AppGUI/ObjectUI.py:212 AppGUI/ObjectUI.py:512 AppGUI/ObjectUI.py:1321 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:56 -#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:47 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:54 -msgid "Draw polygons in different colors." -msgstr "" -"Desenează poligoanele Gerber din multiple culori\n" -"alese in mod aleator." - -#: AppGUI/ObjectUI.py:228 AppGUI/ObjectUI.py:548 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:40 -#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:38 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:38 -msgid "Plot" -msgstr "Afisează" - -#: AppGUI/ObjectUI.py:229 AppGUI/ObjectUI.py:550 AppGUI/ObjectUI.py:1383 -#: AppGUI/ObjectUI.py:2245 AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:41 -#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:40 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:40 -msgid "Plot (show) this object." -msgstr "Afisează (arata) acest obiect." - -#: AppGUI/ObjectUI.py:258 -msgid "" -"Toggle the display of the Gerber Apertures Table.\n" -"When unchecked, it will delete all mark shapes\n" -"that are drawn on canvas." -msgstr "" -"Comută afișarea tabelei de aperturi Gerber.\n" -"Când se debifează, toate marcajele aperturilor\n" -"care sutn curent afisate, vor fi șterse." - -#: AppGUI/ObjectUI.py:268 -msgid "Mark All" -msgstr "Marc. Toate" - -#: AppGUI/ObjectUI.py:270 -msgid "" -"When checked it will display all the apertures.\n" -"When unchecked, it will delete all mark shapes\n" -"that are drawn on canvas." -msgstr "" -"Când este bifat se vor afisa toate aperturile.\n" -"Când este debifat se vor șterge toate marcajele de aperturi." - -#: AppGUI/ObjectUI.py:298 -msgid "Mark the aperture instances on canvas." -msgstr "Marchează aperturile pe canvas." - -#: AppGUI/ObjectUI.py:305 AppTools/ToolIsolation.py:579 -msgid "Buffer Solid Geometry" -msgstr "Creează Bufer Geometrie Solidă" - -#: AppGUI/ObjectUI.py:307 AppTools/ToolIsolation.py:581 -msgid "" -"This button is shown only when the Gerber file\n" -"is loaded without buffering.\n" -"Clicking this will create the buffered geometry\n" -"required for isolation." -msgstr "" -"Acest control este afisat doar cand este incărcat un\n" -"fisier Gerber fără să fie buferată geometria sa.\n" -"Bifarea aici va crea această buferare care este necesară\n" -"pentru a crea geometrie de tip Izolare." - -#: AppGUI/ObjectUI.py:332 -msgid "Isolation Routing" -msgstr "Izolare" - -#: AppGUI/ObjectUI.py:334 AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:32 -#: AppTools/ToolIsolation.py:67 -msgid "" -"Create a Geometry object with\n" -"toolpaths to cut around polygons." -msgstr "" -"Creați un obiect Geometrie cu\n" -"căi de tăiere pentru tăierea imprejurul poligoanelor." - -#: AppGUI/ObjectUI.py:348 AppGUI/ObjectUI.py:2089 AppTools/ToolNCC.py:599 -msgid "" -"Create the Geometry Object\n" -"for non-copper routing." -msgstr "" -"Crează un obiect Geometrie\n" -"pt rutare non-cupru (adica pt\n" -"curățare zone de cupru)." - -#: AppGUI/ObjectUI.py:362 -msgid "" -"Generate the geometry for\n" -"the board cutout." -msgstr "" -"Generează un obiect Geometrie\n" -"pt decuparea PCB." - -#: AppGUI/ObjectUI.py:379 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:32 -msgid "Non-copper regions" -msgstr "Regiuni fără Cu" - -#: AppGUI/ObjectUI.py:381 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:34 -msgid "" -"Create polygons covering the\n" -"areas without copper on the PCB.\n" -"Equivalent to the inverse of this\n" -"object. Can be used to remove all\n" -"copper from a specified region." -msgstr "" -"Crează poligoane acopering zonele fără\n" -"cupru de pe PCB. Echivalent cu inversul\n" -"obiectului sursa. Poate fi folosit pt a indeparta\n" -"cuprul din zona specificata." - -#: AppGUI/ObjectUI.py:391 AppGUI/ObjectUI.py:432 -#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:46 -#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:79 -msgid "Boundary Margin" -msgstr "Margine" - -#: AppGUI/ObjectUI.py:393 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:48 -msgid "" -"Specify the edge of the PCB\n" -"by drawing a box around all\n" -"objects with this minimum\n" -"distance." -msgstr "" -"Specificati marginea PCB-ului prin desenarea\n" -"unei forme patratice de jur imprejurul la toate obiectele\n" -"la o distanţa minima cu valoarea din acest câmp." - -#: AppGUI/ObjectUI.py:408 AppGUI/ObjectUI.py:446 -#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:61 -#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:92 -msgid "Rounded Geo" -msgstr "Geo rotunjita" - -#: AppGUI/ObjectUI.py:410 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:63 -msgid "Resulting geometry will have rounded corners." -msgstr "" -"Obiectul Geometrie rezultat \n" -"va avea colțurile rotunjite." - -#: AppGUI/ObjectUI.py:414 AppGUI/ObjectUI.py:455 -#: AppTools/ToolSolderPaste.py:373 -msgid "Generate Geo" -msgstr "Crează Geo" - -#: AppGUI/ObjectUI.py:424 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:73 -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:137 -#: AppTools/ToolPanelize.py:99 AppTools/ToolQRCode.py:201 -msgid "Bounding Box" -msgstr "Forma înconjurătoare" - -#: AppGUI/ObjectUI.py:426 -msgid "" -"Create a geometry surrounding the Gerber object.\n" -"Square shape." -msgstr "" -"Generează un obiect tip Geometrie care va inconjura\n" -"obiectul Gerber. Forma patratica (rectangulara)." - -#: AppGUI/ObjectUI.py:434 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:81 -msgid "" -"Distance of the edges of the box\n" -"to the nearest polygon." -msgstr "" -"Distanta de la marginile formei înconjurătoare\n" -"pana la cel mai apropiat poligon." - -#: AppGUI/ObjectUI.py:448 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:94 -msgid "" -"If the bounding box is \n" -"to have rounded corners\n" -"their radius is equal to\n" -"the margin." -msgstr "" -"Daca forma înconjurătoare să aibă colțuri rotunjite.\n" -"Raza acesor colțuri va fi egală cu parametrul Margine." - -#: AppGUI/ObjectUI.py:457 -msgid "Generate the Geometry object." -msgstr "Generează obiectul Geometrie." - -#: AppGUI/ObjectUI.py:484 -msgid "Excellon Object" -msgstr "Obiect Excellon" - -#: AppGUI/ObjectUI.py:504 -msgid "Solid circles." -msgstr "Cercuri solide." - -#: AppGUI/ObjectUI.py:560 AppGUI/ObjectUI.py:655 AppGUI/ObjectUI.py:2266 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:71 -#: AppTools/ToolProperties.py:166 -msgid "Drills" -msgstr "Găuri" - -#: AppGUI/ObjectUI.py:560 AppGUI/ObjectUI.py:656 AppGUI/ObjectUI.py:2266 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:158 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:72 -#: AppTools/ToolProperties.py:168 -msgid "Slots" -msgstr "Sloturi" - -#: AppGUI/ObjectUI.py:565 -msgid "" -"This is the Tool Number.\n" -"When ToolChange is checked, on toolchange event this value\n" -"will be showed as a T1, T2 ... Tn in the Machine Code.\n" -"\n" -"Here the tools are selected for G-code generation." -msgstr "" -"Acesta este numărul uneltei.\n" -"Când se foloseşte optiunea de pauza pt schimb unealtă,\n" -"la evenim. de schimb unealtă, va aparea sub forma T1, T2, etc\n" -"in codul masina CNC.\n" -"Aici se selectează uneltele pt generarea de G-Code." - -#: AppGUI/ObjectUI.py:570 AppGUI/ObjectUI.py:1407 AppTools/ToolPaint.py:141 -msgid "" -"Tool Diameter. It's value (in current FlatCAM units) \n" -"is the cut width into the material." -msgstr "" -"Diametrul uneltei. Valoarea să (in unitati curente)\n" -"reprezinta lăţimea taieturii in material." - -#: AppGUI/ObjectUI.py:573 -msgid "" -"The number of Drill holes. Holes that are drilled with\n" -"a drill bit." -msgstr "" -"Numărul de găuri. Sunt găuri efectuate prin\n" -"operațiuni de găurire efectuate cu un burghiu." - -#: AppGUI/ObjectUI.py:576 -msgid "" -"The number of Slot holes. Holes that are created by\n" -"milling them with an endmill bit." -msgstr "" -"Numărul de sloturi. Sunt găuri efectuate\n" -"prin op. de frezare cu o freza." - -#: AppGUI/ObjectUI.py:579 -msgid "" -"Toggle display of the drills for the current tool.\n" -"This does not select the tools for G-code generation." -msgstr "" -"Comută afișarea găurilor pt unealta curentă.\n" -"Aceata nu selectează uneltele pt generarea G-Code." - -#: AppGUI/ObjectUI.py:597 AppGUI/ObjectUI.py:1564 -#: AppObjects/FlatCAMExcellon.py:537 AppObjects/FlatCAMExcellon.py:836 -#: AppObjects/FlatCAMExcellon.py:852 AppObjects/FlatCAMExcellon.py:856 -#: AppObjects/FlatCAMGeometry.py:380 AppObjects/FlatCAMGeometry.py:825 -#: AppObjects/FlatCAMGeometry.py:861 AppTools/ToolIsolation.py:313 -#: AppTools/ToolIsolation.py:1051 AppTools/ToolIsolation.py:1171 -#: AppTools/ToolIsolation.py:1185 AppTools/ToolNCC.py:331 -#: AppTools/ToolNCC.py:797 AppTools/ToolNCC.py:811 AppTools/ToolNCC.py:1214 -#: AppTools/ToolPaint.py:313 AppTools/ToolPaint.py:766 -#: AppTools/ToolPaint.py:778 AppTools/ToolPaint.py:1190 -msgid "Parameters for" -msgstr "Parametri pt" - -#: AppGUI/ObjectUI.py:600 AppGUI/ObjectUI.py:1567 AppTools/ToolIsolation.py:316 -#: AppTools/ToolNCC.py:334 AppTools/ToolPaint.py:316 -msgid "" -"The data used for creating GCode.\n" -"Each tool store it's own set of such data." -msgstr "" -"Datele folosite pentru crearea codului GCode.\n" -"Fiecare unealtă stochează un subset de asemenea date." - -#: AppGUI/ObjectUI.py:626 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:48 -msgid "" -"Operation type:\n" -"- Drilling -> will drill the drills/slots associated with this tool\n" -"- Milling -> will mill the drills/slots" -msgstr "" -"Tip operatie:\n" -"- Găurire -> va găuri găurile/sloturile associate acestei unelte\n" -"- Frezare -> va freza găurile/sloturile" - -#: AppGUI/ObjectUI.py:632 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:54 -msgid "Drilling" -msgstr "Găurire" - -#: AppGUI/ObjectUI.py:633 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:55 -msgid "Milling" -msgstr "Frezare" - -#: AppGUI/ObjectUI.py:648 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:64 -msgid "" -"Milling type:\n" -"- Drills -> will mill the drills associated with this tool\n" -"- Slots -> will mill the slots associated with this tool\n" -"- Both -> will mill both drills and mills or whatever is available" -msgstr "" -"Tip frezare:\n" -"- Găuri -> va freza găurile asociate acestei unelte\n" -"- Sloturi -> va freza sloturile asociate acestei unelte\n" -"- Ambele -> va freza atat găurile cat si sloturile sau doar acelea care sunt " -"disponibile" - -#: AppGUI/ObjectUI.py:657 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:73 -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:199 -#: AppTools/ToolFilm.py:241 -msgid "Both" -msgstr "Ambele" - -#: AppGUI/ObjectUI.py:665 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:80 -msgid "Milling Diameter" -msgstr "Dia frezare" - -#: AppGUI/ObjectUI.py:667 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:82 -msgid "The diameter of the tool who will do the milling" -msgstr "Diametrul frezei când se frezează sloturile" - -#: AppGUI/ObjectUI.py:681 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:95 -msgid "" -"Drill depth (negative)\n" -"below the copper surface." -msgstr "" -"Adâncimea de tăiere (valoare negativă).\n" -"Daca se foloseşte o val. pozitivă, aplicaţia\n" -"va incerca in mod automat să schimbe semnul." - -#: AppGUI/ObjectUI.py:700 AppGUI/ObjectUI.py:1626 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:113 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:69 -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:79 -#: AppTools/ToolCutOut.py:159 -msgid "Multi-Depth" -msgstr "Multi-Pas" - -#: AppGUI/ObjectUI.py:703 AppGUI/ObjectUI.py:1629 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:116 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:72 -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:82 -#: AppTools/ToolCutOut.py:162 -msgid "" -"Use multiple passes to limit\n" -"the cut depth in each pass. Will\n" -"cut multiple times until Cut Z is\n" -"reached." -msgstr "" -"Folosiți mai multe pase pentru a limita\n" -"adâncimea tăiată în fiecare trecere. Se\n" -"va tăia de mai multe ori până când este\n" -"atins Z de tăiere, Z Cut." - -#: AppGUI/ObjectUI.py:716 AppGUI/ObjectUI.py:1643 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:128 -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:94 -#: AppTools/ToolCutOut.py:176 -msgid "Depth of each pass (positive)." -msgstr "" -"Adâncimea pentru fiecare trecere.\n" -"Valoare pozitivă, in unitatile curente." - -#: AppGUI/ObjectUI.py:727 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:136 -msgid "" -"Tool height when travelling\n" -"across the XY plane." -msgstr "" -"Înălţimea la care unealtă se deplasează\n" -"in planul X-Y, fără a efectua taieri, adica\n" -"in afara materialului." - -#: AppGUI/ObjectUI.py:748 AppGUI/ObjectUI.py:1673 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:188 -msgid "" -"Cutting speed in the XY\n" -"plane in units per minute" -msgstr "" -"Viteza de tăiere in planul X-Y\n" -"in unitati pe minut" - -#: AppGUI/ObjectUI.py:763 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:209 -msgid "" -"Tool speed while drilling\n" -"(in units per minute).\n" -"So called 'Plunge' feedrate.\n" -"This is for linear move G01." -msgstr "" -"Viteza uneltei când se face găuriea\n" -"(in unitati pe minut).\n" -"Asa numita viteza unealta tip \"plunge\".\n" -"Aceasta este mișcarea lineara G01." - -#: AppGUI/ObjectUI.py:778 AppGUI/ObjectUI.py:1700 -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:80 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:67 -msgid "Feedrate Rapids" -msgstr "Feedrate rapizi" - -#: AppGUI/ObjectUI.py:780 -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:82 -msgid "" -"Tool speed while drilling\n" -"(in units per minute).\n" -"This is for the rapid move G00.\n" -"It is useful only for Marlin,\n" -"ignore for any other cases." -msgstr "" -"Viteza de găurire, in unitati pe minut.\n" -"Corespunde comenzii G0 și este utila doar pentru\n" -"printerul 3D Marlin, implicit când se foloseşte fişierul\n" -"postprocesor: Marlin. Ignora aceasta parametru in rest." - -#: AppGUI/ObjectUI.py:800 AppGUI/ObjectUI.py:1720 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:85 -msgid "Re-cut" -msgstr "Re-tăiere" - -#: AppGUI/ObjectUI.py:802 AppGUI/ObjectUI.py:815 AppGUI/ObjectUI.py:1722 -#: AppGUI/ObjectUI.py:1734 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:87 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:99 -msgid "" -"In order to remove possible\n" -"copper leftovers where first cut\n" -"meet with last cut, we generate an\n" -"extended cut over the first cut section." -msgstr "" -"Bifează daca se dorește o siguranţă ca resturile de cupru\n" -"care pot ramane acolo unde se intalneste inceputul taierii\n" -"cu sfârşitul acesteia (este vorba de un contur), sunt eliminate\n" -"prin taierea peste acest punct." - -#: AppGUI/ObjectUI.py:828 AppGUI/ObjectUI.py:1743 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:217 -#: AppObjects/FlatCAMExcellon.py:1512 AppObjects/FlatCAMGeometry.py:1687 -msgid "Spindle speed" -msgstr "Viteza motor" - -#: AppGUI/ObjectUI.py:830 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:224 -msgid "" -"Speed of the spindle\n" -"in RPM (optional)" -msgstr "" -"Viteza cu care se roteste motorul ('Spindle').\n" -"In RPM (rotatii pe minut).\n" -"Acest parametru este optional și se poate lasa gol\n" -"daca nu se foloseşte." - -#: AppGUI/ObjectUI.py:845 AppGUI/ObjectUI.py:1762 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:238 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:235 -msgid "" -"Pause to allow the spindle to reach its\n" -"speed before cutting." -msgstr "" -"O pauza care permite motorului să ajunga la turatia specificata,\n" -"inainte de a incepe mișcarea spre poziţia de tăiere (găurire)." - -#: AppGUI/ObjectUI.py:856 AppGUI/ObjectUI.py:1772 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:246 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:240 -msgid "Number of time units for spindle to dwell." -msgstr "Timpul (ori secunde ori milisec) cat se stă in pauză." - -#: AppGUI/ObjectUI.py:866 -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:46 -msgid "Offset Z" -msgstr "Ofset Z" - -#: AppGUI/ObjectUI.py:868 -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:48 -msgid "" -"Some drill bits (the larger ones) need to drill deeper\n" -"to create the desired exit hole diameter due of the tip shape.\n" -"The value here can compensate the Cut Z parameter." -msgstr "" -"Unele burghie (in special cele cu diametru mai mare)\n" -"au nevoie să găurească mai adanc pentru a depăși conul\n" -"din vârful burghiului astfel încât diametrul găurii de ieșire\n" -"să fie cel dorit.\n" -"Valoarea de aici efectuează o compensare asupra\n" -"parametrului >Z tăiere<." - -#: AppGUI/ObjectUI.py:928 AppGUI/ObjectUI.py:1826 AppTools/ToolIsolation.py:412 -#: AppTools/ToolNCC.py:492 AppTools/ToolPaint.py:422 -msgid "Apply parameters to all tools" -msgstr "Aplicați parametrii la toate Uneltele" - -#: AppGUI/ObjectUI.py:930 AppGUI/ObjectUI.py:1828 AppTools/ToolIsolation.py:414 -#: AppTools/ToolNCC.py:494 AppTools/ToolPaint.py:424 -msgid "" -"The parameters in the current form will be applied\n" -"on all the tools from the Tool Table." -msgstr "" -"Parametrii din formularul curent vor fi aplicați\n" -"la toate Uneltele din Tabelul Unelte." - -#: AppGUI/ObjectUI.py:941 AppGUI/ObjectUI.py:1839 AppTools/ToolIsolation.py:425 -#: AppTools/ToolNCC.py:505 AppTools/ToolPaint.py:435 -msgid "Common Parameters" -msgstr "Parametrii Comuni" - -#: AppGUI/ObjectUI.py:943 AppGUI/ObjectUI.py:1841 AppTools/ToolIsolation.py:427 -#: AppTools/ToolNCC.py:507 AppTools/ToolPaint.py:437 -msgid "Parameters that are common for all tools." -msgstr "Parametrii care sunt comuni pentru toate uneltele." - -#: AppGUI/ObjectUI.py:948 AppGUI/ObjectUI.py:1846 -msgid "Tool change Z" -msgstr "Z schimb unealtă" - -#: AppGUI/ObjectUI.py:950 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:154 -msgid "" -"Include tool-change sequence\n" -"in G-Code (Pause for tool change)." -msgstr "" -"Include o secventa de schimbare unealtă\n" -"in codul G-Code (pauza pentru schimbare unealtă).\n" -"De obicei este folosita comanda G-Code M6." - -#: AppGUI/ObjectUI.py:957 AppGUI/ObjectUI.py:1857 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:162 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:135 -msgid "" -"Z-axis position (height) for\n" -"tool change." -msgstr "Înălţimea, pe axa Z, pentru schimbul uneltei." - -#: AppGUI/ObjectUI.py:974 -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:71 -msgid "" -"Height of the tool just after start.\n" -"Delete the value if you don't need this feature." -msgstr "" -"Înălţimea uneltei imediat dupa ce se porneste operatia CNC.\n" -"Lasa casuta goala daca nu se foloseşte." - -#: AppGUI/ObjectUI.py:983 AppGUI/ObjectUI.py:1885 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:178 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:154 -msgid "End move Z" -msgstr "Z oprire" - -#: AppGUI/ObjectUI.py:985 AppGUI/ObjectUI.py:1887 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:180 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:156 -msgid "" -"Height of the tool after\n" -"the last move at the end of the job." -msgstr "Înălţimea la care se parchează freza dupa ce se termina lucrul." - -#: AppGUI/ObjectUI.py:1002 AppGUI/ObjectUI.py:1904 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:195 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:174 -msgid "End move X,Y" -msgstr "X-Y Ultima miscare" - -#: AppGUI/ObjectUI.py:1004 AppGUI/ObjectUI.py:1906 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:197 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:176 -msgid "" -"End move X,Y position. In format (x,y).\n" -"If no value is entered then there is no move\n" -"on X,Y plane at the end of the job." -msgstr "" -"Pozitia X-Y pt ultima miscare. In format (x,y).\n" -"Dacă nici-o valoare nu este introdusă atunci nici-o miscare nu va fi\n" -"efectuată la final." - -#: AppGUI/ObjectUI.py:1014 AppGUI/ObjectUI.py:1780 -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:96 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:108 -msgid "Probe Z depth" -msgstr "Z sonda" - -#: AppGUI/ObjectUI.py:1016 AppGUI/ObjectUI.py:1782 -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:98 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:110 -msgid "" -"The maximum depth that the probe is allowed\n" -"to probe. Negative value, in current units." -msgstr "" -"Adâncimea maxima la care este permis sondei să coboare.\n" -"Are o valoare negativă, in unitatile curente." - -#: AppGUI/ObjectUI.py:1033 AppGUI/ObjectUI.py:1797 -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:109 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:123 -msgid "Feedrate Probe" -msgstr "Feedrate sonda" - -#: AppGUI/ObjectUI.py:1035 AppGUI/ObjectUI.py:1799 -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:111 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:125 -msgid "The feedrate used while the probe is probing." -msgstr "Viteza sondei când aceasta coboara." - -#: AppGUI/ObjectUI.py:1051 -msgid "Preprocessor E" -msgstr "Postprocesor E" - -#: AppGUI/ObjectUI.py:1053 -msgid "" -"The preprocessor JSON file that dictates\n" -"Gcode output for Excellon Objects." -msgstr "" -"Fișierul JSON postprocesor care dictează\n" -"codul Gcode pentru obiectele Excellon." - -#: AppGUI/ObjectUI.py:1063 -msgid "Preprocessor G" -msgstr "Postprocesor G" - -#: AppGUI/ObjectUI.py:1065 -msgid "" -"The preprocessor JSON file that dictates\n" -"Gcode output for Geometry (Milling) Objects." -msgstr "" -"Fișierul JSON postprocesor care dictează\n" -"codul Gcode pentru obiectele Geometrie (cand se frezează)." - -#: AppGUI/ObjectUI.py:1079 AppGUI/ObjectUI.py:1934 -msgid "Add exclusion areas" -msgstr "Adăugați zone de excludere" - -#: AppGUI/ObjectUI.py:1082 AppGUI/ObjectUI.py:1937 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:212 -msgid "" -"Include exclusion areas.\n" -"In those areas the travel of the tools\n" -"is forbidden." -msgstr "" -"Includeți zone de excludere.\n" -"În acele zone deplasarea uneltelor\n" -"este interzisă." - -#: AppGUI/ObjectUI.py:1103 AppGUI/ObjectUI.py:1958 -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:48 -#: AppTools/ToolCalibration.py:186 AppTools/ToolNCC.py:109 -#: AppTools/ToolPaint.py:102 AppTools/ToolPanelize.py:98 -msgid "Object" -msgstr "Obiect" - -#: AppGUI/ObjectUI.py:1103 AppGUI/ObjectUI.py:1122 AppGUI/ObjectUI.py:1958 -#: AppGUI/ObjectUI.py:1977 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:232 -msgid "Strategy" -msgstr "Strategie" - -#: AppGUI/ObjectUI.py:1103 AppGUI/ObjectUI.py:1134 AppGUI/ObjectUI.py:1958 -#: AppGUI/ObjectUI.py:1989 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:244 -msgid "Over Z" -msgstr "Peste Z" - -#: AppGUI/ObjectUI.py:1105 AppGUI/ObjectUI.py:1960 -msgid "This is the Area ID." -msgstr "Acesta este ID-ul zonei." - -#: AppGUI/ObjectUI.py:1107 AppGUI/ObjectUI.py:1962 -msgid "Type of the object where the exclusion area was added." -msgstr "Tipul obiectului în care a fost adăugată zona de excludere." - -#: AppGUI/ObjectUI.py:1109 AppGUI/ObjectUI.py:1964 -msgid "" -"The strategy used for exclusion area. Go around the exclusion areas or over " -"it." -msgstr "" -"Strategia folosită pentru zona de excludere. Du-te în jurul zonelor de " -"excludere sau peste ele." - -#: AppGUI/ObjectUI.py:1111 AppGUI/ObjectUI.py:1966 -msgid "" -"If the strategy is to go over the area then this is the height at which the " -"tool will go to avoid the exclusion area." -msgstr "" -"Dacă strategia este de a trece peste zonă, atunci aceasta este înălțimea la " -"care unealta va merge pentru a evita zona de excludere." - -#: AppGUI/ObjectUI.py:1123 AppGUI/ObjectUI.py:1978 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:233 -msgid "" -"The strategy followed when encountering an exclusion area.\n" -"Can be:\n" -"- Over -> when encountering the area, the tool will go to a set height\n" -"- Around -> will avoid the exclusion area by going around the area" -msgstr "" -"Strategia urmată atunci când întâlnești o zonă de excludere.\n" -"Poate fi:\n" -"- Peste -> când întâlniți zona, instrumentul va merge la o înălțime setată\n" -"- În jur -> va evita zona de excludere ocolind zona" - -#: AppGUI/ObjectUI.py:1127 AppGUI/ObjectUI.py:1982 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:237 -msgid "Over" -msgstr "Peste" - -#: AppGUI/ObjectUI.py:1128 AppGUI/ObjectUI.py:1983 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:238 -msgid "Around" -msgstr "Inconjurare" - -#: AppGUI/ObjectUI.py:1135 AppGUI/ObjectUI.py:1990 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:245 -msgid "" -"The height Z to which the tool will rise in order to avoid\n" -"an interdiction area." -msgstr "" -"Înălțimea Z până la care unealta se va ridica pentru a evita\n" -"o zonă de interdicție." - -#: AppGUI/ObjectUI.py:1145 AppGUI/ObjectUI.py:2000 -msgid "Add area:" -msgstr "Adaugă Zonă:" - -#: AppGUI/ObjectUI.py:1146 AppGUI/ObjectUI.py:2001 -msgid "Add an Exclusion Area." -msgstr "Adăugați o zonă de excludere." - -#: AppGUI/ObjectUI.py:1152 AppGUI/ObjectUI.py:2007 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:222 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:295 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:324 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:288 -#: AppTools/ToolIsolation.py:542 AppTools/ToolNCC.py:580 -#: AppTools/ToolPaint.py:523 -msgid "The kind of selection shape used for area selection." -msgstr "Selectează forma de selectie folosita pentru selectia zonală." - -#: AppGUI/ObjectUI.py:1162 AppGUI/ObjectUI.py:2017 -#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:32 -#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:42 -#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:32 -#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:32 -msgid "Delete All" -msgstr "Sterge tot" - -#: AppGUI/ObjectUI.py:1163 AppGUI/ObjectUI.py:2018 -msgid "Delete all exclusion areas." -msgstr "" -"Ștergeți toate zonele de excludere.Ștergeți toate extensiile din listă." - -#: AppGUI/ObjectUI.py:1166 AppGUI/ObjectUI.py:2021 -msgid "Delete Selected" -msgstr "Șterge Obiectul Selectat" - -#: AppGUI/ObjectUI.py:1167 AppGUI/ObjectUI.py:2022 -msgid "Delete all exclusion areas that are selected in the table." -msgstr "Ștergeți toate zonele de excludere care sunt selectate în tabel." - -#: AppGUI/ObjectUI.py:1191 AppGUI/ObjectUI.py:2038 -msgid "" -"Add / Select at least one tool in the tool-table.\n" -"Click the # header to select all, or Ctrl + LMB\n" -"for custom selection of tools." -msgstr "" -"Adaugă/selectează cel puțin o unealtă in Tabela de Unelte.\n" -"Click pe header coloana # pentru selectarea a toate sau CTRL + LMB click\n" -"pentru o selecţie personalizată de unelte." - -#: AppGUI/ObjectUI.py:1199 AppGUI/ObjectUI.py:2045 -msgid "Generate CNCJob object" -msgstr "Generează un obiect CNCJob" - -#: AppGUI/ObjectUI.py:1201 -msgid "" -"Generate the CNC Job.\n" -"If milling then an additional Geometry object will be created" -msgstr "" -"Generează obiectul CNCJob.\n" -"Dacă se frezează atunci va fi creat un obiect Geometrie additional" - -#: AppGUI/ObjectUI.py:1218 -msgid "Milling Geometry" -msgstr "Geometrie Frezare" - -#: AppGUI/ObjectUI.py:1220 -msgid "" -"Create Geometry for milling holes.\n" -"Select from the Tools Table above the hole dias to be\n" -"milled. Use the # column to make the selection." -msgstr "" -"Creați Geometrie pentru frezare de găuri.\n" -"Selectați din tabelul Unelte de deasupra găurile\n" -"care trebuie frezate. Utilizați coloana # pentru a face selecția." - -#: AppGUI/ObjectUI.py:1228 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:296 -msgid "Diameter of the cutting tool." -msgstr "Diametrul uneltei taietoare." - -#: AppGUI/ObjectUI.py:1238 -msgid "Mill Drills" -msgstr "Frezare Găuri" - -#: AppGUI/ObjectUI.py:1240 -msgid "" -"Create the Geometry Object\n" -"for milling DRILLS toolpaths." -msgstr "" -"Crează un obiect tip Geometrie pt.\n" -"frezarea rutelor create din Găuri." - -#: AppGUI/ObjectUI.py:1258 -msgid "Mill Slots" -msgstr "Frezare Sloturi" - -#: AppGUI/ObjectUI.py:1260 -msgid "" -"Create the Geometry Object\n" -"for milling SLOTS toolpaths." -msgstr "" -"Crează un obiect tip Geometrie pt.\n" -"frezarea rutelor create din Sloturi." - -#: AppGUI/ObjectUI.py:1302 AppTools/ToolCutOut.py:319 -msgid "Geometry Object" -msgstr "Obiect Geometrie" - -#: AppGUI/ObjectUI.py:1364 -msgid "" -"Tools in this Geometry object used for cutting.\n" -"The 'Offset' entry will set an offset for the cut.\n" -"'Offset' can be inside, outside, on path (none) and custom.\n" -"'Type' entry is only informative and it allow to know the \n" -"intent of using the current tool. \n" -"It can be Rough(ing), Finish(ing) or Iso(lation).\n" -"The 'Tool type'(TT) can be circular with 1 to 4 teeths(C1..C4),\n" -"ball(B), or V-Shaped(V). \n" -"When V-shaped is selected the 'Type' entry is automatically \n" -"set to Isolation, the CutZ parameter in the UI form is\n" -"grayed out and Cut Z is automatically calculated from the newly \n" -"showed UI form entries named V-Tip Dia and V-Tip Angle." -msgstr "" -"Uneltele din acest obiect Geometrie folosit pentru tăiere.\n" -"Intrarea >Ofset< va seta un ofset pentru tăiere.\n" -"Acesta poate fi Inauntru, In afară, Pe cale și Personalizat.\n" -"Intrarea >Tip< este doar informativa și permite să stim intenția\n" -"pentru care folosim unealta aleasă.\n" -"Poate să fie Grosier, Finisare și Izolaţie.\n" -"Intrarea >Tip unealta< (TU) poate fi: Circular (cu unul sau mai\n" -"multi dinti C1 ...C4), rotunda (B) sau cu vârf V-Shape (V).\n" -"\n" -"Când V-shape este selectat atunci și >Tip< este automat setat \n" -"in 'Izolare', prametrul >Z tăiere< din UI este dezactivat (gri) pt că\n" -"este acum calculat automat din doi noi parametri care sunt afisati:\n" -"- V-Dia \n" -"- V-unghi." - -#: AppGUI/ObjectUI.py:1381 AppGUI/ObjectUI.py:2243 -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:40 -msgid "Plot Object" -msgstr "Afisează" - -#: AppGUI/ObjectUI.py:1394 AppGUI/ObjectUI.py:2256 AppGUI/ObjectUI.py:2266 -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:138 -#: AppTools/ToolCopperThieving.py:225 -msgid "Dia" -msgstr "Dia" - -#: AppGUI/ObjectUI.py:1394 AppGUI/ObjectUI.py:2256 -#: AppTools/ToolIsolation.py:130 AppTools/ToolNCC.py:132 -#: AppTools/ToolPaint.py:127 -msgid "TT" -msgstr "TU" - -#: AppGUI/ObjectUI.py:1401 -msgid "" -"This is the Tool Number.\n" -"When ToolChange is checked, on toolchange event this value\n" -"will be showed as a T1, T2 ... Tn" -msgstr "" -"Acesta este numărul uneltei.\n" -"Când se foloseşte optiunea de pauza pt schimb unealtă,\n" -"la evenim. de schimb unealtă, va aparea sub forma T1, T2, etc\n" -"in codul masina CNC" - -#: AppGUI/ObjectUI.py:1412 -msgid "" -"The value for the Offset can be:\n" -"- Path -> There is no offset, the tool cut will be done through the geometry " -"line.\n" -"- In(side) -> The tool cut will follow the geometry inside. It will create a " -"'pocket'.\n" -"- Out(side) -> The tool cut will follow the geometry line on the outside." -msgstr "" -"Valorile pt Ofset pot fi:\n" -"- Pe cale -> Ofsetul este zero, tăietura va fi efectuatat pe linia " -"geometrică\n" -"- În(ăuntru) -> Tăietura va urma geometria pe interior. Va crea un " -"'buzunar'\n" -"- Afară-> Tăietura va urma geometria pe exterior." - -#: AppGUI/ObjectUI.py:1419 -msgid "" -"The (Operation) Type has only informative value. Usually the UI form " -"values \n" -"are choose based on the operation type and this will serve as a reminder.\n" -"Can be 'Roughing', 'Finishing' or 'Isolation'.\n" -"For Roughing we may choose a lower Feedrate and multiDepth cut.\n" -"For Finishing we may choose a higher Feedrate, without multiDepth.\n" -"For Isolation we need a lower Feedrate as it use a milling bit with a fine " -"tip." -msgstr "" -"Tipul (operaţiei efectuate cu unealta) are doar o valoare informativa. De " -"obicei\n" -"valorile din UI sunt alese bazate pe tipul operaţiei și acesta ne serveste " -"ca și\n" -"notificare. Poate să fie: Grosier, Finisare sau Izolare.\n" -"Grosier -> putem alege de ex un feedrate scazut și tăiere in mai multe " -"etape.\n" -"Finisare -> alegem un feedrate mai mare și tăiere dintr-o singură operaţie\n" -"Izolare -> avem nevoie de un feedrate scazut pt ca se foloseşte o freza cu " -"un\n" -"vârf fin, ascuțit." - -#: AppGUI/ObjectUI.py:1428 -msgid "" -"The Tool Type (TT) can be:\n" -"- Circular with 1 ... 4 teeth -> it is informative only. Being circular the " -"cut width in material\n" -"is exactly the tool diameter.\n" -"- Ball -> informative only and make reference to the Ball type endmill.\n" -"- V-Shape -> it will disable Z-Cut parameter in the UI form and enable two " -"additional UI form\n" -"fields: V-Tip Dia and V-Tip Angle. Adjusting those two values will adjust " -"the Z-Cut parameter such\n" -"as the cut width into material will be equal with the value in the Tool " -"Diameter column of this table.\n" -"Choosing the V-Shape Tool Type automatically will select the Operation Type " -"as Isolation." -msgstr "" -"Tipul Uneltei (TU) poate fi:\n" -"- Circular cu 1 ... 4 dinti -> are aspect informativ. Lăţimea de tăiere este " -"exact diametrul uneltei.\n" -"- Rotund (ball) -> val. informativa și face referinţă la tipul de freza " -"Ball\n" -"- V-Shape -> produce modificari in UI. Va dezactiva parametrul >Z tăiere< " -"deoarece acesta va fi\n" -"calculat automat din valorile >V-dia< și >V-unghi, parametri care sunt acum " -"afisati in UI, cat și din\n" -"lăţimea de tăiere in material care este de fapt valoarea diametrului " -"uneltei.\n" -"Alegerea tipului V-Shape (forma in V) va selecta automat Tipul de Operaţie " -"ca Izolare." - -#: AppGUI/ObjectUI.py:1440 -msgid "" -"Plot column. It is visible only for MultiGeo geometries, meaning geometries " -"that holds the geometry\n" -"data into the tools. For those geometries, deleting the tool will delete the " -"geometry data also,\n" -"so be WARNED. From the checkboxes on each row it can be enabled/disabled the " -"plot on canvas\n" -"for the corresponding tool." -msgstr "" -"Coloana de afișare. Este vizibila doar pentru obiecte Geometrie de tip " -"MultiGeo, ceea ce inseamna că\n" -"obiectul stochează datele geometrice in variabilele unelte. \n" -"\n" -"ATENTIE: Pentru aceste obiecte, ștergerea unei unelte conduce automat și la " -"ștergerea \n" -"datelor geometrice asociate. Din checkbox-urile asociate, fiecarei unelte i " -"se poate activa/dezactiva\n" -"afișarea in canvas." - -#: AppGUI/ObjectUI.py:1458 -msgid "" -"The value to offset the cut when \n" -"the Offset type selected is 'Offset'.\n" -"The value can be positive for 'outside'\n" -"cut and negative for 'inside' cut." -msgstr "" -"Valoarea cu care se face ofset când tipul de ofset selectat\n" -"este >Ofset<. Aceasta valoare poate fi pozitivă pentru un ofset\n" -"in exterior sau poate fi negativă pentru un ofset in interior." - -#: AppGUI/ObjectUI.py:1477 AppTools/ToolIsolation.py:195 -#: AppTools/ToolIsolation.py:1257 AppTools/ToolNCC.py:209 -#: AppTools/ToolNCC.py:923 AppTools/ToolPaint.py:191 AppTools/ToolPaint.py:848 -#: AppTools/ToolSolderPaste.py:567 -msgid "New Tool" -msgstr "O Noua Unealtă" - -#: AppGUI/ObjectUI.py:1496 AppTools/ToolIsolation.py:278 -#: AppTools/ToolNCC.py:296 AppTools/ToolPaint.py:278 -msgid "" -"Add a new tool to the Tool Table\n" -"with the diameter specified above." -msgstr "" -"Adaugă o noua unelata in Tabela de Unelte,\n" -"cu diametrul specificat mai sus." - -#: AppGUI/ObjectUI.py:1500 AppTools/ToolIsolation.py:282 -#: AppTools/ToolIsolation.py:613 AppTools/ToolNCC.py:300 -#: AppTools/ToolNCC.py:634 AppTools/ToolPaint.py:282 AppTools/ToolPaint.py:678 -msgid "Add from DB" -msgstr "Adaugă Unealtă din DB" - -#: AppGUI/ObjectUI.py:1502 AppTools/ToolIsolation.py:284 -#: AppTools/ToolNCC.py:302 AppTools/ToolPaint.py:284 -msgid "" -"Add a new tool to the Tool Table\n" -"from the Tool DataBase." -msgstr "" -"Adaugă o noua unealta in Tabela de Unelte,\n" -"din DB Unelte." - -#: AppGUI/ObjectUI.py:1521 -msgid "" -"Copy a selection of tools in the Tool Table\n" -"by first selecting a row in the Tool Table." -msgstr "" -"Copiază o selecţie de unelte in Tabela de Unelte prin\n" -"selectarea unei linii (sau mai multe) in Tabela de Unelte." - -#: AppGUI/ObjectUI.py:1527 -msgid "" -"Delete a selection of tools in the Tool Table\n" -"by first selecting a row in the Tool Table." -msgstr "" -"Șterge o selecţie de unelte in Tabela de Unelte prin\n" -"selectarea unei linii (sau mai multe) in Tabela de Unelte." - -#: AppGUI/ObjectUI.py:1574 AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:89 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:72 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:78 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:85 -#: AppTools/ToolIsolation.py:219 AppTools/ToolNCC.py:233 -#: AppTools/ToolNCC.py:240 AppTools/ToolPaint.py:215 -msgid "V-Tip Dia" -msgstr "V-dia" - -#: AppGUI/ObjectUI.py:1577 AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:91 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:74 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:80 -#: AppTools/ToolIsolation.py:221 AppTools/ToolNCC.py:235 -#: AppTools/ToolPaint.py:217 -msgid "The tip diameter for V-Shape Tool" -msgstr "" -"Diametrul la vârf al uneltei tip V-Shape.\n" -"Forma in V" - -#: AppGUI/ObjectUI.py:1589 AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:101 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:84 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:91 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:99 -#: AppTools/ToolIsolation.py:232 AppTools/ToolNCC.py:246 -#: AppTools/ToolNCC.py:254 AppTools/ToolPaint.py:228 -msgid "V-Tip Angle" -msgstr "V-unghi" - -#: AppGUI/ObjectUI.py:1592 AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:86 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:93 -#: AppTools/ToolIsolation.py:234 AppTools/ToolNCC.py:248 -#: AppTools/ToolPaint.py:230 -msgid "" -"The tip angle for V-Shape Tool.\n" -"In degree." -msgstr "" -"Unghiul la vârf pentru unealta tip V-Shape. \n" -"In grade." - -#: AppGUI/ObjectUI.py:1608 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:51 -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:61 -#: AppObjects/FlatCAMGeometry.py:1238 AppTools/ToolCutOut.py:141 -msgid "" -"Cutting depth (negative)\n" -"below the copper surface." -msgstr "" -"Adâncimea la care se taie sub suprafata de cupru.\n" -"Valoare negativă." - -#: AppGUI/ObjectUI.py:1654 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:104 -msgid "" -"Height of the tool when\n" -"moving without cutting." -msgstr "" -"Înălţimea la care se misca unealta când nu taie,\n" -"deasupra materialului." - -#: AppGUI/ObjectUI.py:1687 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:203 -msgid "" -"Cutting speed in the XY\n" -"plane in units per minute.\n" -"It is called also Plunge." -msgstr "" -"Viteza de tăiere in planul Z\n" -"in unitati pe minut.\n" -"Mai este numita și viteza de plonjare." - -#: AppGUI/ObjectUI.py:1702 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:69 -msgid "" -"Cutting speed in the XY plane\n" -"(in units per minute).\n" -"This is for the rapid move G00.\n" -"It is useful only for Marlin,\n" -"ignore for any other cases." -msgstr "" -"Viteza de tăiere in planul X-Y, in unitati pe minut,\n" -"in legatura cu comanda G00.\n" -"Este utila doar când se foloseşte cu un printer 3D Marlin,\n" -"pentru toate celelalte cazuri ignora acest parametru." - -#: AppGUI/ObjectUI.py:1746 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:220 -msgid "" -"Speed of the spindle in RPM (optional).\n" -"If LASER preprocessor is used,\n" -"this value is the power of laser." -msgstr "" -"Viteza motorului in RPM (optional).\n" -"Daca postprocesorul Laser este folosit,\n" -"valoarea să este puterea laserului." - -#: AppGUI/ObjectUI.py:1849 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:125 -msgid "" -"Include tool-change sequence\n" -"in the Machine Code (Pause for tool change)." -msgstr "" -"Include o secventa de schimb unealtă in \n" -"codul masina CNC. O pauza pentru schimbul\n" -"uneltei (M6)." - -#: AppGUI/ObjectUI.py:1918 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:257 -msgid "" -"The Preprocessor file that dictates\n" -"the Machine Code (like GCode, RML, HPGL) output." -msgstr "" -"Fişierul postprocesor care controlează generarea\n" -"codului masina CNC (GCode, RML, HPGL) care \n" -"mai apoi este salvat." - -#: AppGUI/ObjectUI.py:2047 Common.py:426 Common.py:559 Common.py:619 -msgid "Generate the CNC Job object." -msgstr "Generează un obiect CNCJob." - -#: AppGUI/ObjectUI.py:2064 -msgid "Launch Paint Tool in Tools Tab." -msgstr "" -"Lansează unealta FlatCAM numita Paint și\n" -"o instalează in Tab-ul Unealta." - -#: AppGUI/ObjectUI.py:2072 AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:35 -msgid "" -"Creates tool paths to cover the\n" -"whole area of a polygon (remove\n" -"all copper). You will be asked\n" -"to click on the desired polygon." -msgstr "" -"Crează treceri taietoare pentru a acoperi\n" -"intreaga arie a unui poligon (pentru a indeparta\n" -"to cuprul, spre ex.). Când se actionează peste un\n" -"singur poligon se va cere să faceti click pe poligonul\n" -"dorit." - -#: AppGUI/ObjectUI.py:2127 -msgid "CNC Job Object" -msgstr "Obiect CNCJob" - -#: AppGUI/ObjectUI.py:2138 AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:45 -msgid "Plot kind" -msgstr "Tip afișare" - -#: AppGUI/ObjectUI.py:2141 AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:47 -msgid "" -"This selects the kind of geometries on the canvas to plot.\n" -"Those can be either of type 'Travel' which means the moves\n" -"above the work piece or it can be of type 'Cut',\n" -"which means the moves that cut into the material." -msgstr "" -"Aici se poate selecta tipul de afișare a geometriilor.\n" -"Acestea pot fi:\n" -"- Voiaj -> miscarile deasupra materialului\n" -"- Tăiere -> miscarile in material, tăiere." - -#: AppGUI/ObjectUI.py:2150 AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:55 -msgid "Travel" -msgstr "Voiaj" - -#: AppGUI/ObjectUI.py:2154 AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:64 -msgid "Display Annotation" -msgstr "Afişează notații" - -#: AppGUI/ObjectUI.py:2156 AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:66 -msgid "" -"This selects if to display text annotation on the plot.\n" -"When checked it will display numbers in order for each end\n" -"of a travel line." -msgstr "" -"Aici se poate seta daca sa se afiseze notatiile text.\n" -"Cand este selectat va afisa numerele in ordine pt fiecare\n" -"capat al liniilor de traversare." - -#: AppGUI/ObjectUI.py:2171 -msgid "Travelled dist." -msgstr "Dist. parcursă" - -#: AppGUI/ObjectUI.py:2173 AppGUI/ObjectUI.py:2178 -msgid "" -"This is the total travelled distance on X-Y plane.\n" -"In current units." -msgstr "" -"Aceasta este distanţa totala parcursa in planul X-Y.\n" -"In unitatile curente." - -#: AppGUI/ObjectUI.py:2183 -msgid "Estimated time" -msgstr "Durată estimată" - -#: AppGUI/ObjectUI.py:2185 AppGUI/ObjectUI.py:2190 -msgid "" -"This is the estimated time to do the routing/drilling,\n" -"without the time spent in ToolChange events." -msgstr "" -"Acesta este timpul estimat pentru efectuarea traseului / găuririi,\n" -"fără timpul petrecut în evenimentele ToolChange." - -#: AppGUI/ObjectUI.py:2225 -msgid "CNC Tools Table" -msgstr "Tabela Unelte CNC" - -#: AppGUI/ObjectUI.py:2228 -msgid "" -"Tools in this CNCJob object used for cutting.\n" -"The tool diameter is used for plotting on canvas.\n" -"The 'Offset' entry will set an offset for the cut.\n" -"'Offset' can be inside, outside, on path (none) and custom.\n" -"'Type' entry is only informative and it allow to know the \n" -"intent of using the current tool. \n" -"It can be Rough(ing), Finish(ing) or Iso(lation).\n" -"The 'Tool type'(TT) can be circular with 1 to 4 teeths(C1..C4),\n" -"ball(B), or V-Shaped(V)." -msgstr "" -"Unelete folosite in acest obiect CNCJob pentru tăiere.\n" -"Diametrul uneltei este folosit pentru afișarea pe canvas.\n" -"Coloanele sunt:\n" -"- 'Ofset' -> poate fi in interior, in exterior, pe cale sau personalizat.\n" -"- 'Tipul' -> este doar informativ și poate fi: Grosier, Finisaj, Izolaţie\n" -"- 'Tipul uneltei' -> poate fi circular cu 1 ... 4 dinti, tip bila sau V-" -"Shape\n" -"(cu forma in V)." - -#: AppGUI/ObjectUI.py:2256 AppGUI/ObjectUI.py:2267 -msgid "P" -msgstr "P" - -#: AppGUI/ObjectUI.py:2277 -msgid "Update Plot" -msgstr "Actualiz. afișare" - -#: AppGUI/ObjectUI.py:2279 -msgid "Update the plot." -msgstr "Actualizează afișarea obiectelor." - -#: AppGUI/ObjectUI.py:2286 -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:30 -msgid "Export CNC Code" -msgstr "Exporta codul masina CNC" - -#: AppGUI/ObjectUI.py:2288 -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:32 -#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:33 -msgid "" -"Export and save G-Code to\n" -"make this object to a file." -msgstr "" -"Exportă și salvează codul G-Code intr-un fişier\n" -"care este salvat pe HDD." - -#: AppGUI/ObjectUI.py:2294 -msgid "Prepend to CNC Code" -msgstr "Adaugă la inceput in codul G-Code" - -#: AppGUI/ObjectUI.py:2296 AppGUI/ObjectUI.py:2303 -#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:49 -msgid "" -"Type here any G-Code commands you would\n" -"like to add at the beginning of the G-Code file." -msgstr "" -"Adaugă aici orice comenzi G-Code care se dorește să fie\n" -"inserate la inceputul codului G-Code." - -#: AppGUI/ObjectUI.py:2309 -msgid "Append to CNC Code" -msgstr "Adaugă la sfârşit in codul G-Code" - -#: AppGUI/ObjectUI.py:2311 AppGUI/ObjectUI.py:2319 -#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:65 -msgid "" -"Type here any G-Code commands you would\n" -"like to append to the generated file.\n" -"I.e.: M2 (End of program)" -msgstr "" -"Adaugă aici orice comenzi G-Code care se dorește să fie\n" -"inserate la sfârşitul codului G-Code." - -#: AppGUI/ObjectUI.py:2333 -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:38 -msgid "Toolchange G-Code" -msgstr "G-Code pt schimb unealtă" - -#: AppGUI/ObjectUI.py:2336 -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:41 -msgid "" -"Type here any G-Code commands you would\n" -"like to be executed when Toolchange event is encountered.\n" -"This will constitute a Custom Toolchange GCode,\n" -"or a Toolchange Macro.\n" -"The FlatCAM variables are surrounded by '%' symbol.\n" -"\n" -"WARNING: it can be used only with a preprocessor file\n" -"that has 'toolchange_custom' in it's name and this is built\n" -"having as template the 'Toolchange Custom' posprocessor file." -msgstr "" -"Plasează aici acele comenzi G-Code care se dorește să fie executate\n" -"atunci când evenimentul de tip Schimb Unealtă este intalnit.\n" -"Aceasta va constitui un Macro pentru schimbare unealtă.\n" -"Variabilele FlatCAM folosite aici sunt inconjurate de simbolul %.\n" -"\n" -"ATENTIE:\n" -"poate fi folosit doar cu un fişier postprocesor care contine " -"'toolchange_custom'\n" -"in numele sau." - -#: AppGUI/ObjectUI.py:2351 -msgid "" -"Type here any G-Code commands you would\n" -"like to be executed when Toolchange event is encountered.\n" -"This will constitute a Custom Toolchange GCode,\n" -"or a Toolchange Macro.\n" -"The FlatCAM variables are surrounded by '%' symbol.\n" -"WARNING: it can be used only with a preprocessor file\n" -"that has 'toolchange_custom' in it's name." -msgstr "" -"Plasează aici acele comenzi G-Code care se dorește să fie executate\n" -"atunci când evenimentul de tip Schimb Unealtă este intalnit.\n" -"Aceasta va constitui un Macro pentru schimbare unealtă.\n" -"Variabilele FlatCAM folosite aici sunt inconjurate de simbolul %.\n" -"ATENTIE:\n" -"Poate fi folosit doar cu un fişier pretprocesor care contine " -"'toolchange_custom'\n" -"in numele sau." - -#: AppGUI/ObjectUI.py:2366 -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:80 -msgid "Use Toolchange Macro" -msgstr "Fol. Macro schimb unealtă" - -#: AppGUI/ObjectUI.py:2368 -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:82 -msgid "" -"Check this box if you want to use\n" -"a Custom Toolchange GCode (macro)." -msgstr "" -"Bifează aici daca dorești să folosești Macro pentru\n" -"schimb unelte." - -#: AppGUI/ObjectUI.py:2376 -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:94 -msgid "" -"A list of the FlatCAM variables that can be used\n" -"in the Toolchange event.\n" -"They have to be surrounded by the '%' symbol" -msgstr "" -"O lista de variabile FlatCAM care se pot folosi in evenimentul \n" -"de schimb al uneltei (când se intalneste comanda M6).\n" -"Este necesar să fie inconjurate de simbolul '%'" - -#: AppGUI/ObjectUI.py:2383 -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:101 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:30 -#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:31 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:31 -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:37 -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:36 -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:36 -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:36 -#: AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py:31 -#: AppGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:31 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:36 -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:31 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:30 -#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:31 -#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:35 -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:32 -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:31 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:30 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:31 -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:31 -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:31 -#: AppGUI/preferences/tools/ToolsSubPrefGroupUI.py:31 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:31 -#: AppTools/ToolCalibration.py:67 AppTools/ToolCopperThieving.py:93 -#: AppTools/ToolCorners.py:115 AppTools/ToolEtchCompensation.py:138 -#: AppTools/ToolFiducials.py:152 AppTools/ToolInvertGerber.py:85 -#: AppTools/ToolQRCode.py:114 -msgid "Parameters" -msgstr "Parametri" - -#: AppGUI/ObjectUI.py:2386 -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:106 -msgid "FlatCAM CNC parameters" -msgstr "Parametri FlatCAM CNC" - -#: AppGUI/ObjectUI.py:2387 -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:111 -msgid "tool number" -msgstr "numărul uneltei" - -#: AppGUI/ObjectUI.py:2388 -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:112 -msgid "tool diameter" -msgstr "diametrul sculei" - -#: AppGUI/ObjectUI.py:2389 -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:113 -msgid "for Excellon, total number of drills" -msgstr "pentru Excellon, numărul total de operațiuni găurire" - -#: AppGUI/ObjectUI.py:2391 -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:115 -msgid "X coord for Toolchange" -msgstr "Coordonata X pentru schimbarea uneltei" - -#: AppGUI/ObjectUI.py:2392 -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:116 -msgid "Y coord for Toolchange" -msgstr "Coordonata Y pentru schimbarea uneltei" - -#: AppGUI/ObjectUI.py:2393 -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:118 -msgid "Z coord for Toolchange" -msgstr "Coordonata Z pentru schimbarea uneltei" - -#: AppGUI/ObjectUI.py:2394 -msgid "depth where to cut" -msgstr "adâncimea de tăiere" - -#: AppGUI/ObjectUI.py:2395 -msgid "height where to travel" -msgstr "inălţimea deplasare" - -#: AppGUI/ObjectUI.py:2396 -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:121 -msgid "the step value for multidepth cut" -msgstr "pasul pentru taierea progresiva" - -#: AppGUI/ObjectUI.py:2398 -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:123 -msgid "the value for the spindle speed" -msgstr "valoarea viteza motor" - -#: AppGUI/ObjectUI.py:2400 -msgid "time to dwell to allow the spindle to reach it's set RPM" -msgstr "durata de asteptare ca motorul să ajunga la turatia setată" - -#: AppGUI/ObjectUI.py:2416 -msgid "View CNC Code" -msgstr "Vizualiz. codul CNC" - -#: AppGUI/ObjectUI.py:2418 -msgid "" -"Opens TAB to view/modify/print G-Code\n" -"file." -msgstr "" -"Deschide un nou tab pentru a vizualiza, modifica\n" -"sau tipari codul G-Code." - -#: AppGUI/ObjectUI.py:2423 -msgid "Save CNC Code" -msgstr "Salvează codul CNC" - -#: AppGUI/ObjectUI.py:2425 -msgid "" -"Opens dialog to save G-Code\n" -"file." -msgstr "" -"Deshide o fereastra dialog pentru salvarea codului\n" -"G-Code intr-un fişier." - -#: AppGUI/ObjectUI.py:2459 -msgid "Script Object" -msgstr "Editare Script" - -#: AppGUI/ObjectUI.py:2479 AppGUI/ObjectUI.py:2553 -msgid "Auto Completer" -msgstr "Autocompletare" - -#: AppGUI/ObjectUI.py:2481 -msgid "This selects if the auto completer is enabled in the Script Editor." -msgstr "" -"Aceasta selectează dacă completatorul automat este activat în Script Editor." - -#: AppGUI/ObjectUI.py:2526 -msgid "Document Object" -msgstr "Obiect document" - -#: AppGUI/ObjectUI.py:2555 -msgid "This selects if the auto completer is enabled in the Document Editor." -msgstr "" -"Aceasta selectează dacă completatorul automat este activat în Editorul de " -"documente." - -#: AppGUI/ObjectUI.py:2573 -msgid "Font Type" -msgstr "Tipul Font" - -#: AppGUI/ObjectUI.py:2590 -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:189 -msgid "Font Size" -msgstr "Dim. Font" - -#: AppGUI/ObjectUI.py:2626 -msgid "Alignment" -msgstr "Aliniere" - -#: AppGUI/ObjectUI.py:2631 -msgid "Align Left" -msgstr "Aliniați la stânga" - -#: AppGUI/ObjectUI.py:2636 App_Main.py:4715 -msgid "Center" -msgstr "Centru" - -#: AppGUI/ObjectUI.py:2641 -msgid "Align Right" -msgstr "Aliniați la dreapta" - -#: AppGUI/ObjectUI.py:2646 -msgid "Justify" -msgstr "Aliniere duala" - -#: AppGUI/ObjectUI.py:2653 -msgid "Font Color" -msgstr "Culoare FOnt" - -#: AppGUI/ObjectUI.py:2655 -msgid "Set the font color for the selected text" -msgstr "Setați culoarea fontului pentru textul selectat" - -#: AppGUI/ObjectUI.py:2669 -msgid "Selection Color" -msgstr "Culoare de selecție" - -#: AppGUI/ObjectUI.py:2671 -msgid "Set the selection color when doing text selection." -msgstr "Setați culoarea de selecție atunci când faceți selecția textului." - -#: AppGUI/ObjectUI.py:2685 -msgid "Tab Size" -msgstr "Dimens. filei" - -#: AppGUI/ObjectUI.py:2687 -msgid "Set the tab size. In pixels. Default value is 80 pixels." -msgstr "" -"Setați dimensiunea filei. În pixeli. Valoarea implicită este de 80 pixeli." - -#: AppGUI/PlotCanvas.py:236 AppGUI/PlotCanvasLegacy.py:345 -msgid "Axis enabled." -msgstr "Axe activate." - -#: AppGUI/PlotCanvas.py:242 AppGUI/PlotCanvasLegacy.py:352 -msgid "Axis disabled." -msgstr "Axe dezactivate." - -#: AppGUI/PlotCanvas.py:260 AppGUI/PlotCanvasLegacy.py:372 -msgid "HUD enabled." -msgstr "HUD activat." - -#: AppGUI/PlotCanvas.py:268 AppGUI/PlotCanvasLegacy.py:378 -msgid "HUD disabled." -msgstr "HUD dezactivat." - -#: AppGUI/PlotCanvas.py:276 AppGUI/PlotCanvasLegacy.py:451 -msgid "Grid enabled." -msgstr "Grid activat." - -#: AppGUI/PlotCanvas.py:280 AppGUI/PlotCanvasLegacy.py:459 -msgid "Grid disabled." -msgstr "Grid dezactivat." - -#: AppGUI/PlotCanvasLegacy.py:1523 -msgid "" -"Could not annotate due of a difference between the number of text elements " -"and the number of text positions." -msgstr "" -"Nu s-a putut adnota datorită unei diferențe între numărul de elemente de " -"text și numărul de locații de text." - -#: AppGUI/preferences/PreferencesUIManager.py:852 -msgid "Preferences applied." -msgstr "Preferințele au fost aplicate." - -#: AppGUI/preferences/PreferencesUIManager.py:872 -msgid "Are you sure you want to continue?" -msgstr "Ești sigur că vrei să continui?" - -#: AppGUI/preferences/PreferencesUIManager.py:873 -msgid "Application will restart" -msgstr "Aplicaţia va reporni" - -#: AppGUI/preferences/PreferencesUIManager.py:971 -msgid "Preferences closed without saving." -msgstr "Tab-ul Preferințe a fost închis fără a salva." - -#: AppGUI/preferences/PreferencesUIManager.py:983 -msgid "Preferences default values are restored." -msgstr "Valorile implicite pt preferințe sunt restabilite." - -#: AppGUI/preferences/PreferencesUIManager.py:1015 App_Main.py:2498 -#: App_Main.py:2566 -msgid "Failed to write defaults to file." -msgstr "Salvarea valorilor default intr-un fişier a eșuat." - -#: AppGUI/preferences/PreferencesUIManager.py:1019 -#: AppGUI/preferences/PreferencesUIManager.py:1132 -msgid "Preferences saved." -msgstr "Preferințele au fost salvate." - -#: AppGUI/preferences/PreferencesUIManager.py:1069 -msgid "Preferences edited but not saved." -msgstr "Preferințele au fost editate dar nu au fost salvate." - -#: AppGUI/preferences/PreferencesUIManager.py:1117 -msgid "" -"One or more values are changed.\n" -"Do you want to save the Preferences?" -msgstr "" -"Una sau mai multe valori au fost schimbate.\n" -"Dorești să salvezi Preferințele?" - -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:27 -msgid "CNC Job Adv. Options" -msgstr "Opțiuni Avans. CNCJob" - -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:64 -msgid "" -"Type here any G-Code commands you would like to be executed when Toolchange " -"event is encountered.\n" -"This will constitute a Custom Toolchange GCode, or a Toolchange Macro.\n" -"The FlatCAM variables are surrounded by '%' symbol.\n" -"WARNING: it can be used only with a preprocessor file that has " -"'toolchange_custom' in it's name." -msgstr "" -"Plasează aici acele comenzi G-Code care se dorește să fie executate atunci " -"când evenimentul de tip Schimb Unealtă este intalnit.\n" -"Aceasta va constitui un Macro pentru schimbare unealtă.\n" -"Variabilele FlatCAM folosite aici sunt inconjurate de simbolul %.\n" -"\n" -"ATENTIE:\n" -"poate fi folosit doar cu un fişier postprocesor care contine " -"'toolchange_custom' în nume." - -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:119 -msgid "Z depth for the cut" -msgstr "Z adâncimea de tăiere" - -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:120 -msgid "Z height for travel" -msgstr "Z Înălţimea deplasare" - -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:126 -msgid "dwelltime = time to dwell to allow the spindle to reach it's set RPM" -msgstr "dwelltime = durata de asteptare ca motorul să ajunga la turatia setată" - -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:145 -msgid "Annotation Size" -msgstr "Dim. anotate" - -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:147 -msgid "The font size of the annotation text. In pixels." -msgstr "Dimensiunea fontului pt. textul cu notatii. In pixeli." - -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:157 -msgid "Annotation Color" -msgstr "Culoarea anotatii" - -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:159 -msgid "Set the font color for the annotation texts." -msgstr "Setează culoarea pentru textul cu anotatii." - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:26 -msgid "CNC Job General" -msgstr "CNCJob General" - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:77 -#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:57 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:59 -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:45 -msgid "Circle Steps" -msgstr "Pași pt. cerc" - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:79 -msgid "" -"The number of circle steps for GCode \n" -"circle and arc shapes linear approximation." -msgstr "" -"Numărul de segmente utilizate pentru\n" -"aproximarea lineara a reprezentarilor GCodului circular." - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:88 -msgid "Travel dia" -msgstr "Dia Deplasare" - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:90 -msgid "" -"The width of the travel lines to be\n" -"rendered in the plot." -msgstr "Diametrul liniilor de deplasare care să fie redate prin afișare." - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:103 -msgid "G-code Decimals" -msgstr "Zecimale G-Code" - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:106 -#: AppTools/ToolFiducials.py:71 -msgid "Coordinates" -msgstr "Coordinate" - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:108 -msgid "" -"The number of decimals to be used for \n" -"the X, Y, Z coordinates in CNC code (GCODE, etc.)" -msgstr "" -"Numărul de zecimale care să fie folosit in \n" -"coordonatele X,Y,Z in codul CNC (GCode etc)." - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:119 -#: AppTools/ToolProperties.py:519 -msgid "Feedrate" -msgstr "Feedrate" - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:121 -msgid "" -"The number of decimals to be used for \n" -"the Feedrate parameter in CNC code (GCODE, etc.)" -msgstr "" -"Numărul de zecimale care să fie folosit in \n" -"parametrul >Feedrate< in codul CNC (GCode etc)." - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:132 -msgid "Coordinates type" -msgstr "Tip coordinate" - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:134 -msgid "" -"The type of coordinates to be used in Gcode.\n" -"Can be:\n" -"- Absolute G90 -> the reference is the origin x=0, y=0\n" -"- Incremental G91 -> the reference is the previous position" -msgstr "" -"Tipul de coordinate care să fie folosite in G-Code.\n" -"Poate fi:\n" -"- Absolut G90 -> referinta este originea x=0, y=0\n" -"- Incrementator G91 -> referinta este pozitia anterioară" - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:140 -msgid "Absolute G90" -msgstr "Absolut G90" - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:141 -msgid "Incremental G91" -msgstr "Incrementator G91" - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:151 -msgid "Force Windows style line-ending" -msgstr "Forțați finalizarea liniei în stil Windows" - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:153 -msgid "" -"When checked will force a Windows style line-ending\n" -"(\\r\\n) on non-Windows OS's." -msgstr "" -"Când este bifat, va forța o linie de finalizare a stilului Windows\n" -"(\\r \\n) pe sistemele de operare non-Windows." - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:165 -msgid "Travel Line Color" -msgstr "Culoare Linie Trecere" - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:169 -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:210 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:271 -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:154 -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:195 -#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:94 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:153 -#: AppTools/ToolRulesCheck.py:186 -msgid "Outline" -msgstr "Contur" - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:171 -msgid "Set the travel line color for plotted objects." -msgstr "Setați culoarea liniei de trecere pentru obiectele trasate." - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:179 -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:220 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:281 -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:163 -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:205 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:163 -msgid "Fill" -msgstr "Continut" - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:181 -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:222 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:283 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:165 -msgid "" -"Set the fill color for plotted objects.\n" -"First 6 digits are the color and the last 2\n" -"digits are for alpha (transparency) level." -msgstr "" -"Setează culoarea pentru obiectele afisate.\n" -"Primii 6 digiti sunt culoarea efectivă și ultimii\n" -"doi sunt pentru nivelul de transparenţă (alfa)." - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:191 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:293 -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:176 -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:218 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:175 -msgid "Alpha" -msgstr "Alfa" - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:193 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:295 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:177 -msgid "Set the fill transparency for plotted objects." -msgstr "Setează nivelul de transparenţă pentru obiectele afisate." - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:206 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:267 -#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:90 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:149 -msgid "Object Color" -msgstr "Culoare obiect" - -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:212 -msgid "Set the color for plotted objects." -msgstr "Setați culoarea pentru obiectele trasate." - -#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:27 -msgid "CNC Job Options" -msgstr "Opțiuni CNCJob" - -#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:31 -msgid "Export G-Code" -msgstr "Exportă G-Code" - -#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:47 -msgid "Prepend to G-Code" -msgstr "Adaugă la inceputul G-Code" - -#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:56 -msgid "" -"Type here any G-Code commands you would like to add at the beginning of the " -"G-Code file." -msgstr "" -"Introduceți aici orice comandă G-Code pe care doriți să o adăugați la " -"începutul fișierului G-Code." - -#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:63 -msgid "Append to G-Code" -msgstr "Adaugă la sfârşitul G-Code" - -#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:73 -msgid "" -"Type here any G-Code commands you would like to append to the generated " -"file.\n" -"I.e.: M2 (End of program)" -msgstr "" -"Adaugă aici orice comenzi G-Code care se dorește să fie\n" -"inserate la sfârşitul codului G-Code.\n" -"De exemplu: M2 (Sfârșitul programului)" - -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:27 -msgid "Excellon Adv. Options" -msgstr "Opțiuni Avans. Excellon" - -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:34 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:34 -#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:31 -msgid "Advanced Options" -msgstr "Opțiuni avansate" - -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:36 -msgid "" -"A list of Excellon advanced parameters.\n" -"Those parameters are available only for\n" -"Advanced App. Level." -msgstr "" -"O lista de parametri Excellon avansati.\n" -"Acesti parametri sunt disponibili doar\n" -"când este selectat Nivelul Avansat pentru\n" -"aplicaţie in Preferințe - > General." - -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:59 -msgid "Toolchange X,Y" -msgstr "X,Y schimb. unealtă" - -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:61 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:48 -msgid "Toolchange X,Y position." -msgstr "Poziţia X,Y in format (x,y) unde se face schimbarea uneltei." - -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:121 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:137 -msgid "Spindle direction" -msgstr "Directie rotatie Motor" - -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:123 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:139 -msgid "" -"This sets the direction that the spindle is rotating.\n" -"It can be either:\n" -"- CW = clockwise or\n" -"- CCW = counter clockwise" -msgstr "" -"Aici se setează directia in care motorul se roteste.\n" -"Poate fi:\n" -"- CW = in sensul acelor de ceasornic\n" -"- CCW = in sensul invers acelor de ceasornic" - -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:134 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:151 -msgid "Fast Plunge" -msgstr "Plonjare rapidă" - -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:136 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:153 -msgid "" -"By checking this, the vertical move from\n" -"Z_Toolchange to Z_move is done with G0,\n" -"meaning the fastest speed available.\n" -"WARNING: the move is done at Toolchange X,Y coords." -msgstr "" -"Prin bifarea de aici, mișcarea de la Înălţimea unde se face schimbarea " -"uneltei\n" -"pana la Înălţimea unde se face deplasarea între taieri, se va face cu " -"comanda G0.\n" -"Aceasta inseamna că se va folosi viteza maxima disponibila.\n" -"\n" -"ATENTIE: mișcarea aceasta pe verticala se face la coordonatele X, Y unde se " -"schimba\n" -"unealta. Daca aveti ceva plasat sub unealtă ceva se va strica." - -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:143 -msgid "Fast Retract" -msgstr "Retragere rapida" - -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:145 -msgid "" -"Exit hole strategy.\n" -" - When uncheked, while exiting the drilled hole the drill bit\n" -"will travel slow, with set feedrate (G1), up to zero depth and then\n" -"travel as fast as possible (G0) to the Z Move (travel height).\n" -" - When checked the travel from Z cut (cut depth) to Z_move\n" -"(travel height) is done as fast as possible (G0) in one move." -msgstr "" -"Strategia de evacuare a găurii tocmai găurite.\n" -"- când nu este bifat, burghiul va ieși din gaura cu viteza feedrate " -"setată, \n" -"G1, pana ajunge la nivelul zero, ulterior ridicându-se pana la Înălţimea de " -"deplasare\n" -"cu viteza maxima G0\n" -"- când este bifat, burghiul se va deplasa de la adâncimea de tăiere pana la " -"adâncimea\n" -"de deplasare cu viteza maxima G0, intr-o singură mișcare." - -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:32 -msgid "A list of Excellon Editor parameters." -msgstr "O listă de parametri ai Editorului Excellon." - -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:40 -#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:41 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:41 -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:172 -msgid "Selection limit" -msgstr "Limita selecţie" - -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:42 -msgid "" -"Set the number of selected Excellon geometry\n" -"items above which the utility geometry\n" -"becomes just a selection rectangle.\n" -"Increases the performance when moving a\n" -"large number of geometric elements." -msgstr "" -"Setează numărul de geometrii Excellon selectate peste care\n" -"geometria utilitară devine o simplă formă pătratica de \n" -"selectie.\n" -"Creste performanta cand se muta un număr mai mare de \n" -"elemente geometrice." - -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:55 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:134 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:117 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:123 -msgid "New Dia" -msgstr "Dia. nou" - -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:80 -msgid "Linear Drill Array" -msgstr "Arie lineară de găuri" - -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:84 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:232 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:121 -msgid "Linear Direction" -msgstr "Direcție liniară" - -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:126 -msgid "Circular Drill Array" -msgstr "Arie circ. de găuri" - -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:130 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:280 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:165 -msgid "Circular Direction" -msgstr "Direcția circulară" - -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:132 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:282 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:167 -msgid "" -"Direction for circular array.\n" -"Can be CW = clockwise or CCW = counter clockwise." -msgstr "" -"Directia pentru aria circulară.\n" -"Poate fi CW = in sensul acelor de ceasornic sau CCW = invers acelor de " -"ceasornic." - -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:143 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:293 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:178 -msgid "Circular Angle" -msgstr "Unghi circular" - -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:196 -msgid "" -"Angle at which the slot is placed.\n" -"The precision is of max 2 decimals.\n" -"Min value is: -359.99 degrees.\n" -"Max value is: 360.00 degrees." -msgstr "" -"Unghiul la care este plasat slotul.\n" -"Precizia este de maxim 2 zecimale.\n" -"Valoarea minimă este: -359,99 grade.\n" -"Valoarea maximă este: 360,00 grade." - -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:215 -msgid "Linear Slot Array" -msgstr "Arie lineară de Sloturi" - -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:276 -msgid "Circular Slot Array" -msgstr "Arie circ. de Sloturi" - -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:26 -msgid "Excellon Export" -msgstr "Export Excellon" - -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:30 -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:31 -msgid "Export Options" -msgstr "Opțiuni de Export" - -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:32 -msgid "" -"The parameters set here are used in the file exported\n" -"when using the File -> Export -> Export Excellon menu entry." -msgstr "" -"Acesti parametri listati aici sunt folositi atunci când\n" -"se exporta un fişier Excellon folosind:\n" -"File -> Exporta -> Exporta Excellon." - -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:41 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:172 -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:39 -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:42 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:82 -#: AppTools/ToolDistance.py:56 AppTools/ToolDistanceMin.py:49 -#: AppTools/ToolPcbWizard.py:127 AppTools/ToolProperties.py:154 -msgid "Units" -msgstr "Unităti" - -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:43 -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:49 -msgid "The units used in the Excellon file." -msgstr "Unitatile de masura folosite in fişierul Excellon." - -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:46 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:96 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:182 -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:47 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:87 -#: AppTools/ToolCalculators.py:61 AppTools/ToolPcbWizard.py:125 -msgid "INCH" -msgstr "Inch" - -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:47 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:183 -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:43 -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:48 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:88 -#: AppTools/ToolCalculators.py:62 AppTools/ToolPcbWizard.py:126 -msgid "MM" -msgstr "MM" - -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:55 -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:56 -msgid "Int/Decimals" -msgstr "Înt/Zecimale" - -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:57 -msgid "" -"The NC drill files, usually named Excellon files\n" -"are files that can be found in different formats.\n" -"Here we set the format used when the provided\n" -"coordinates are not using period." -msgstr "" -"Fişierele NC, numite usual fişiere Excellon\n" -"sunt fişiere care pot fi gasite in diverse formate.\n" -"Aici se setează formatul Excellon când nu se utilizează\n" -"coordonate cu zecimale." - -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:69 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:104 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:133 -msgid "" -"This numbers signify the number of digits in\n" -"the whole part of Excellon coordinates." -msgstr "" -"Acest număr reprezinta numărul de digiti din partea\n" -"intreaga a coordonatelor Excellon." - -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:82 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:117 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:146 -msgid "" -"This numbers signify the number of digits in\n" -"the decimal part of Excellon coordinates." -msgstr "" -"Acest număr reprezinta numărul de digiti din partea\n" -"zecimala a coordonatelor Excellon." - -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:91 -msgid "Format" -msgstr "Format" - -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:93 -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:103 -msgid "" -"Select the kind of coordinates format used.\n" -"Coordinates can be saved with decimal point or without.\n" -"When there is no decimal point, it is required to specify\n" -"the number of digits for integer part and the number of decimals.\n" -"Also it will have to be specified if LZ = leading zeros are kept\n" -"or TZ = trailing zeros are kept." -msgstr "" -"Selectati tipul formatului de coordonate folosit.\n" -"Coordonatele se pot salva cu punct zecimal sau fără.\n" -"Când nu se foloseşte punctul zecimal ca separator între\n" -"partea intreaga și partea zecimala, este necesar să se\n" -"specifice numărul de digiti folosit pentru partea intreaga\n" -"și numărul de digiti folosit pentru partea zecimala.\n" -"Trebuie specificat și modul in care sunt tratate zerourile:\n" -"- LZ = zerourile prefix sunt pastrate și cele sufix eliminate\n" -"- TZ = zerourile prefix sunt eliminate și cele sufix pastrate." - -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:100 -msgid "Decimal" -msgstr "Zecimale" - -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:101 -msgid "No-Decimal" -msgstr "Fără zecimale" - -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:114 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:154 -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:96 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:97 -msgid "Zeros" -msgstr "Zero-uri" - -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:117 -msgid "" -"This sets the type of Excellon zeros.\n" -"If LZ then Leading Zeros are kept and\n" -"Trailing Zeros are removed.\n" -"If TZ is checked then Trailing Zeros are kept\n" -"and Leading Zeros are removed." -msgstr "" -"Aici se setează tipul de suprimare a zerourilor,\n" -"in cazul unui fişier Excellon.\n" -"LZ = zerourile din fata numărului sunt pastrate și\n" -"cele de la final sunt indepartate.\n" -"TZ = zerourile din fata numărului sunt indepartate și\n" -"cele de la final sunt pastrate.\n" -"(Invers fata de fişierele Gerber)." - -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:124 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:167 -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:106 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:107 -#: AppTools/ToolPcbWizard.py:111 -msgid "LZ" -msgstr "LZ" - -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:125 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:168 -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:107 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:108 -#: AppTools/ToolPcbWizard.py:112 -msgid "TZ" -msgstr "TZ" - -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:127 -msgid "" -"This sets the default type of Excellon zeros.\n" -"If LZ then Leading Zeros are kept and\n" -"Trailing Zeros are removed.\n" -"If TZ is checked then Trailing Zeros are kept\n" -"and Leading Zeros are removed." -msgstr "" -"Acesta este tipul implicit de zero-uri Excellon.\n" -"- LZ = zerourile prefix sunt pastrate și cele sufix eliminate\n" -"- TZ = zerourile prefix sunt eliminate și cele sufix pastrate." - -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:137 -msgid "Slot type" -msgstr "Tip slot" - -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:140 -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:150 -msgid "" -"This sets how the slots will be exported.\n" -"If ROUTED then the slots will be routed\n" -"using M15/M16 commands.\n" -"If DRILLED(G85) the slots will be exported\n" -"using the Drilled slot command (G85)." -msgstr "" -"Aceasta stabilește modul în care sloturile vor fi exportate.\n" -"Dacă sunt Decupate, atunci sloturile vor fi procesate\n" -"folosind comenzile M15 / M16.\n" -"Dacă sunt Găurite (G85) sloturile vor fi exportate\n" -"folosind comanda slotului găurit (G85)." - -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:147 -msgid "Routed" -msgstr "Decupate" - -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:148 -msgid "Drilled(G85)" -msgstr "Găurite(G85)" - -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:29 -msgid "Excellon General" -msgstr "Excellon General" - -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:54 -#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:45 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:52 -msgid "M-Color" -msgstr "M-Color" - -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:71 -msgid "Excellon Format" -msgstr "Format Excellon" - -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:73 -msgid "" -"The NC drill files, usually named Excellon files\n" -"are files that can be found in different formats.\n" -"Here we set the format used when the provided\n" -"coordinates are not using period.\n" -"\n" -"Possible presets:\n" -"\n" -"PROTEUS 3:3 MM LZ\n" -"DipTrace 5:2 MM TZ\n" -"DipTrace 4:3 MM LZ\n" -"\n" -"EAGLE 3:3 MM TZ\n" -"EAGLE 4:3 MM TZ\n" -"EAGLE 2:5 INCH TZ\n" -"EAGLE 3:5 INCH TZ\n" -"\n" -"ALTIUM 2:4 INCH LZ\n" -"Sprint Layout 2:4 INCH LZ\n" -"KiCAD 3:5 INCH TZ" -msgstr "" -"Fişierele de găurire NC drills numite generic Excellon\n" -"sunt fişiere care nu respecta clar un format.\n" -"Fiecare companie și-a aplicat propria viziune aşa încât\n" -"s-a ajuns că nu se poate face o recunoaștere automata\n" -"a formatului Excellon in fiecare caz.\n" -"Aici putem seta manual ce format ne asteptăm să gasim,\n" -"când coordonatele nu sunt reprezentate cu\n" -"separator zecimal.\n" -"\n" -"Setări posibile:\n" -"\n" -"PROTEUS 3:3 MM LZ\n" -"DipTrace 5:2 MM TZ\n" -"DipTrace 4:3 MM LZ\n" -"\n" -"EAGLE 3:3 MM TZ\n" -"EAGLE 4:3 MM TZ\n" -"EAGLE 2:5 INCH TZ\n" -"EAGLE 3:5 INCH TZ\n" -"\n" -"ALTIUM 2:4 INCH LZ\n" -"Sprint Layout 2:4 INCH LZ\n" -"KiCAD 3:5 INCH TZ" - -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:97 -msgid "Default values for INCH are 2:4" -msgstr "" -"Valorile default pentru Inch sunt 2:4\n" -"adica 2 parti intregi și 4 zecimale" - -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:125 -msgid "METRIC" -msgstr "Metric" - -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:126 -msgid "Default values for METRIC are 3:3" -msgstr "" -"Valorile default pentru Metric sunt 3:3\n" -"adica 3 parti intregi și 3 zecimale" - -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:157 -msgid "" -"This sets the type of Excellon zeros.\n" -"If LZ then Leading Zeros are kept and\n" -"Trailing Zeros are removed.\n" -"If TZ is checked then Trailing Zeros are kept\n" -"and Leading Zeros are removed.\n" -"\n" -"This is used when there is no information\n" -"stored in the Excellon file." -msgstr "" -"Aici se setează tipul de suprimare a zerourilor,\n" -"in cazul unui fişier Excellon.\n" -"LZ = zerourile din fata numărului sunt pastrate și\n" -"cele de la final sunt indepartate.\n" -"TZ = zerourile din fata numărului sunt indepartate și\n" -"cele de la final sunt pastrate.\n" -"(Invers fata de fişierele Gerber).\n" -"Se foloseşte atunci când nu există informații\n" -"stocate în fișierul Excellon." - -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:175 -msgid "" -"This sets the default units of Excellon files.\n" -"If it is not detected in the parsed file the value here\n" -"will be used.Some Excellon files don't have an header\n" -"therefore this parameter will be used." -msgstr "" -"Aceasta valoare este valoarea la care se recurge\n" -"in cazul in care nu se poate determina automat\n" -"atunci când se face parsarea fişierlui Excellon.\n" -"Unele fişiere de găurire (Excellon) nu au header\n" -"(unde se gasesc unitatile) și atunci se va folosi\n" -"aceasta valoare." - -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:185 -msgid "" -"This sets the units of Excellon files.\n" -"Some Excellon files don't have an header\n" -"therefore this parameter will be used." -msgstr "" -"Aceasta valoare este valoarea la care se recurge\n" -"in cazul in care nu se poate determina automat\n" -"atunci când se face parsarea fişierlui Excellon.\n" -"Unele fişiere de găurire (Excellon) nu au header\n" -"(unde se gasesc unitatile) și atunci se va folosi\n" -"aceasta valoare." - -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:193 -msgid "Update Export settings" -msgstr "Actualizeaza setarile de Export" - -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:210 -msgid "Excellon Optimization" -msgstr "Optimizare Excellon" - -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:213 -msgid "Algorithm:" -msgstr "Algoritm:" - -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:215 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:231 -msgid "" -"This sets the optimization type for the Excellon drill path.\n" -"If <> is checked then Google OR-Tools algorithm with\n" -"MetaHeuristic Guided Local Path is used. Default search time is 3sec.\n" -"If <> is checked then Google OR-Tools Basic algorithm is used.\n" -"If <> is checked then Travelling Salesman algorithm is used for\n" -"drill path optimization.\n" -"\n" -"If this control is disabled, then FlatCAM works in 32bit mode and it uses\n" -"Travelling Salesman algorithm for path optimization." -msgstr "" -"Aceasta setează tipul de optimizare pentru calea de găurire Excellon.\n" -"Dacă <> este bifat, atunci algoritmul Google OR-Tools cu\n" -"Calea locală ghidată MetaHeuristic este utilizat. Timpul implicit de căutare " -"este de 3 secunde.\n" -"Dacă <> este bifat, atunci algoritmul Google OR-Tools Basic este " -"utilizat.\n" -"Dacă <> este bifat, atunci algoritmul Traveling Salesman este utilizat " -"pentru\n" -"optimizarea căii de găurire\n" -"\n" -"Dacă acest control este dezactivat, FlatCAM funcționează în modul 32 biți și " -"folosește\n" -"Algoritmul Traveling Salesman pentru optimizarea căii." - -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:226 -msgid "MetaHeuristic" -msgstr "MetaHeuristic" - -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:227 -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:104 -#: AppObjects/FlatCAMExcellon.py:694 AppObjects/FlatCAMGeometry.py:568 -#: AppObjects/FlatCAMGerber.py:219 AppTools/ToolIsolation.py:785 -msgid "Basic" -msgstr "Baza" - -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:228 -msgid "TSA" -msgstr "TSA" - -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:245 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:245 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:238 -msgid "Duration" -msgstr "Durată" - -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:248 -msgid "" -"When OR-Tools Metaheuristic (MH) is enabled there is a\n" -"maximum threshold for how much time is spent doing the\n" -"path optimization. This max duration is set here.\n" -"In seconds." -msgstr "" -"Când se foloseşte optimziarea MH, aceasta valoare\n" -"reprezinta cat timp se sta pentru fiecare element in\n" -"incercarea de a afla calea optima." - -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:273 -#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:96 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:155 -msgid "Set the line color for plotted objects." -msgstr "Setează culoarea conturului." - -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:29 -msgid "Excellon Options" -msgstr "Opțiuni Excellon" - -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:33 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:35 -msgid "Create CNC Job" -msgstr "Crează CNCJob" - -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:35 -msgid "" -"Parameters used to create a CNC Job object\n" -"for this drill object." -msgstr "" -"Parametrii folositi pentru a crea un obiect FlatCAM tip CNCJob\n" -"din acest obiect Excellon." - -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:152 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:122 -msgid "Tool change" -msgstr "Schimb unealtă" - -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:236 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:233 -msgid "Enable Dwell" -msgstr "Activați Pauză" - -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:259 -msgid "" -"The preprocessor JSON file that dictates\n" -"Gcode output." -msgstr "" -"Fișierul JSON postprocesor care dictează\n" -"codul Gcode." - -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:270 -msgid "Gcode" -msgstr "Gcode" - -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:272 -msgid "" -"Choose what to use for GCode generation:\n" -"'Drills', 'Slots' or 'Both'.\n" -"When choosing 'Slots' or 'Both', slots will be\n" -"converted to drills." -msgstr "" -"Alege ce anume să fie folot ca sursa pentru generarea de GCode:\n" -"- Găuri\n" -"- Sloturi\n" -"- Ambele.\n" -"Când se alege Sloturi sau Ambele, sloturile vor fi convertite in serii de " -"găuri." - -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:288 -msgid "Mill Holes" -msgstr "Frezare găuri" - -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:290 -msgid "Create Geometry for milling holes." -msgstr "Crează un obiect tip Geometrie pentru frezarea găurilor." - -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:294 -msgid "Drill Tool dia" -msgstr "Dia. Burghiu Găurire" - -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:305 -msgid "Slot Tool dia" -msgstr "Dia. Freza Slot" - -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:307 -msgid "" -"Diameter of the cutting tool\n" -"when milling slots." -msgstr "Diametrul frezei când se frezează sloturile." - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:28 -#: AppGUI/preferences/general/GeneralAppSettingsGroupUI.py:74 -msgid "App Settings" -msgstr "Setări Aplicație" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:49 -msgid "Grid Settings" -msgstr "Setări Grilă" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:53 -msgid "X value" -msgstr "Val X" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:55 -msgid "This is the Grid snap value on X axis." -msgstr "Aceasta este valoare pentru lipire pe Grid pe axa X." - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:65 -msgid "Y value" -msgstr "Val Y" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:67 -msgid "This is the Grid snap value on Y axis." -msgstr "Aceasta este valoare pentru lipire pe Grid pe axa Y." - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:77 -msgid "Snap Max" -msgstr "Lipire Max" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:92 -msgid "Workspace Settings" -msgstr "Setări ale Spațiului de Lucru" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:95 -msgid "Active" -msgstr "Activ" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:105 -msgid "" -"Select the type of rectangle to be used on canvas,\n" -"as valid workspace." -msgstr "" -"Selectează tipul de patrulater care va fi desenat pe canvas,\n" -"pentru a delimita suprafata de lucru disponibilă (SL)." - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:171 -msgid "Orientation" -msgstr "Orientare" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:172 -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:228 -#: AppTools/ToolFilm.py:405 -msgid "" -"Can be:\n" -"- Portrait\n" -"- Landscape" -msgstr "" -"Poate fi:\n" -"- Portret\n" -"- Peisaj" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:176 -#: AppGUI/preferences/general/GeneralAppSettingsGroupUI.py:154 -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:232 -#: AppTools/ToolFilm.py:409 -msgid "Portrait" -msgstr "Portret" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:177 -#: AppGUI/preferences/general/GeneralAppSettingsGroupUI.py:155 -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:233 -#: AppTools/ToolFilm.py:410 -msgid "Landscape" -msgstr "Peisaj" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:193 -msgid "Notebook" -msgstr "Agendă" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:195 -msgid "" -"This sets the font size for the elements found in the Notebook.\n" -"The notebook is the collapsible area in the left side of the AppGUI,\n" -"and include the Project, Selected and Tool tabs." -msgstr "" -"Aceasta stabilește dimensiunea fontului pentru elementele \n" -"găsite în Notebook.\n" -"Notebook-ul este zona pliabilă din partea stângă a GUI,\n" -"și include filele Proiect, Selectat și Unelte." - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:214 -msgid "Axis" -msgstr "Axă" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:216 -msgid "This sets the font size for canvas axis." -msgstr "Aceasta setează dimensiunea fontului pentru axele zonei de afisare." - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:233 -msgid "Textbox" -msgstr "Casetă de text" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:235 -msgid "" -"This sets the font size for the Textbox AppGUI\n" -"elements that are used in the application." -msgstr "" -"Aceasta setează dimensiunea fontului pentru elementele \n" -"din interfața GUI care sunt utilizate în aplicație." - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:253 -msgid "HUD" -msgstr "HUD" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:255 -msgid "This sets the font size for the Heads Up Display." -msgstr "Aceasta setează dimensiunea fontului pentru afisajul HUD." - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:280 -msgid "Mouse Settings" -msgstr "Setări mouse" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:284 -msgid "Cursor Shape" -msgstr "Forma cursorului" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:286 -msgid "" -"Choose a mouse cursor shape.\n" -"- Small -> with a customizable size.\n" -"- Big -> Infinite lines" -msgstr "" -"Alegeți o formă de cursor a mouse-ului.\n" -"- Mic -> cu o dimensiune personalizabilă.\n" -"- Mare -> Linii infinite" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:292 -#: AppGUI/preferences/general/GeneralAppSettingsGroupUI.py:193 -msgid "Small" -msgstr "Mic" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:293 -#: AppGUI/preferences/general/GeneralAppSettingsGroupUI.py:194 -msgid "Big" -msgstr "Mare" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:300 -msgid "Cursor Size" -msgstr "Dimensiunea cursorului" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:302 -msgid "Set the size of the mouse cursor, in pixels." -msgstr "Setați dimensiunea cursorului mouse-ului, în pixeli." - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:313 -msgid "Cursor Width" -msgstr "Lățimea cursorului" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:315 -msgid "Set the line width of the mouse cursor, in pixels." -msgstr "Setați lățimea liniei cursorului mouse-ului, în pixeli." - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:326 -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:333 -msgid "Cursor Color" -msgstr "Culoarea cursorului" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:328 -msgid "Check this box to color mouse cursor." -msgstr "Bifează această casetă pentru a colora cursorul mouse-ului." - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:335 -msgid "Set the color of the mouse cursor." -msgstr "Setați culoarea cursorului mouse-ului." - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:350 -msgid "Pan Button" -msgstr "Buton Pan (mișcare)" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:352 -msgid "" -"Select the mouse button to use for panning:\n" -"- MMB --> Middle Mouse Button\n" -"- RMB --> Right Mouse Button" -msgstr "" -"Selectează butonul folosit pentru 'mișcare':\n" -"- MMB - butonul din mijloc al mouse-ului\n" -"- RMB - butonul in dreapta al mouse-ului" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:356 -#: AppGUI/preferences/general/GeneralAppSettingsGroupUI.py:226 -msgid "MMB" -msgstr "MMB" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:357 -#: AppGUI/preferences/general/GeneralAppSettingsGroupUI.py:227 -msgid "RMB" -msgstr "RMB" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:363 -msgid "Multiple Selection" -msgstr "Selecție Multiplă" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:365 -msgid "Select the key used for multiple selection." -msgstr "Selectează tasta folosita pentru selectia multipla." - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:367 -#: AppGUI/preferences/general/GeneralAppSettingsGroupUI.py:233 -msgid "CTRL" -msgstr "CTRL" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:368 -#: AppGUI/preferences/general/GeneralAppSettingsGroupUI.py:234 -msgid "SHIFT" -msgstr "SHIFT" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:379 -msgid "Delete object confirmation" -msgstr "Confirmare de ștergere a obiectului" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:381 -msgid "" -"When checked the application will ask for user confirmation\n" -"whenever the Delete object(s) event is triggered, either by\n" -"menu shortcut or key shortcut." -msgstr "" -"Când este bifat, aplicația va cere confirmarea utilizatorului\n" -"ori de câte ori este declanșat evenimentul de Ștergere a \n" -"unor obiecte, fie de cu ajutorul meniurilor sau cu combinatii de taste." - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:388 -msgid "\"Open\" behavior" -msgstr "Stil \"Încarcare\"" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:390 -msgid "" -"When checked the path for the last saved file is used when saving files,\n" -"and the path for the last opened file is used when opening files.\n" -"\n" -"When unchecked the path for opening files is the one used last: either the\n" -"path for saving files or the path for opening files." -msgstr "" -"Cand este bifat, calea de salvare a ultimului fiser salvat este folosită " -"cand se \n" -"salvează fisiere si calea de deschidere pt ultimul fisier este folosită cand " -"se \n" -"deschide fisiere.\n" -"\n" -"Cand este debifat, calea de deshidere pt ultimul fisier este folosită pt " -"ambele \n" -"cazuri: fie că se deschide un fisier, fie că se salvează un fisier." - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:399 -msgid "Enable ToolTips" -msgstr "Activează ToolTip-uri" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:401 -msgid "" -"Check this box if you want to have toolTips displayed\n" -"when hovering with mouse over items throughout the App." -msgstr "" -"Bifează daca dorești ca să fie afisate texte explicative când se\n" -"tine mouse-ul deasupra diverselor texte din FlatCAM." - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:408 -msgid "Allow Machinist Unsafe Settings" -msgstr "Permiteți setări nesigure pt Mașiniști" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:410 -msgid "" -"If checked, some of the application settings will be allowed\n" -"to have values that are usually unsafe to use.\n" -"Like Z travel negative values or Z Cut positive values.\n" -"It will applied at the next application start.\n" -"<>: Don't change this unless you know what you are doing !!!" -msgstr "" -"Dacă este bifat, unele dintre setările aplicației vor fi permise\n" -"pentru a avea valori de obicei nesigure de utilizat.\n" -"Cum ar fi valori negative pt Z Travel sau valori positive pt Z Tăieri .\n" -"Se va aplica la următoarea pornire a aplicatiei.\n" -"<>: Nu schimbați acest lucru decât dacă știți ce faceți !!!" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:422 -msgid "Bookmarks limit" -msgstr "Limită nr. bookmark-uri" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:424 -msgid "" -"The maximum number of bookmarks that may be installed in the menu.\n" -"The number of bookmarks in the bookmark manager may be greater\n" -"but the menu will hold only so much." -msgstr "" -"Numărul maxim de bookmark-uri care pot fi instalate în meniu.\n" -"Numărul de bookmark-uri în managerul de bookmark-uri poate fi mai mare\n" -"dar meniul va conține doar atât de mult." - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:433 -msgid "Activity Icon" -msgstr "Icon activitare" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:435 -msgid "Select the GIF that show activity when FlatCAM is active." -msgstr "Selectați GIF-ul care arată activitatea când FlatCAM este activ." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:29 -msgid "App Preferences" -msgstr "Preferințele Aplicaţie" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:40 -msgid "" -"The default value for FlatCAM units.\n" -"Whatever is selected here is set every time\n" -"FlatCAM is started." -msgstr "" -"Unitatea de masura pt FlatCAM.\n" -"Este setată la fiecare pornire a programului." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:44 -msgid "IN" -msgstr "Inch" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:50 -msgid "Precision MM" -msgstr "Precizie MM" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:52 -msgid "" -"The number of decimals used throughout the application\n" -"when the set units are in METRIC system.\n" -"Any change here require an application restart." -msgstr "" -"Numărul de zecimale utilizate în întreaga aplicație\n" -"când unitățile setate sunt în sistem METRIC.\n" -"Orice modificare necesită repornirea aplicației." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:64 -msgid "Precision INCH" -msgstr "Precizie INCH" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:66 -msgid "" -"The number of decimals used throughout the application\n" -"when the set units are in INCH system.\n" -"Any change here require an application restart." -msgstr "" -"Numărul de zecimale utilizate în întreaga aplicație\n" -"când unitățile setate sunt în sistem INCH.\n" -"Orice modificare necesită repornirea aplicației." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:78 -msgid "Graphic Engine" -msgstr "Motor grafic" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:79 -msgid "" -"Choose what graphic engine to use in FlatCAM.\n" -"Legacy(2D) -> reduced functionality, slow performance but enhanced " -"compatibility.\n" -"OpenGL(3D) -> full functionality, high performance\n" -"Some graphic cards are too old and do not work in OpenGL(3D) mode, like:\n" -"Intel HD3000 or older. In this case the plot area will be black therefore\n" -"use the Legacy(2D) mode." -msgstr "" -"Alegeți ce motor grafic să utilizați în FlatCAM.\n" -"Legacy (2D) -> funcționalitate redusă, performanțe lente, dar " -"compatibilitate îmbunătățită.\n" -"OpenGL (3D) -> funcționalitate completă, performanță ridicată\n" -"Unele placi video sunt prea vechi și nu funcționează în modul OpenGL (3D), " -"cum ar fi:\n" -"Intel HD3000 sau mai vechi. În acest caz, suprafața de afisare va fi neagră\n" -"prin urmare folosiți modul Legacy (2D)." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:85 -msgid "Legacy(2D)" -msgstr "Legacy(2D)" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:86 -msgid "OpenGL(3D)" -msgstr "OpenGL(3D)" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:98 -msgid "APP. LEVEL" -msgstr "Nivel aplicatie" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:99 -msgid "" -"Choose the default level of usage for FlatCAM.\n" -"BASIC level -> reduced functionality, best for beginner's.\n" -"ADVANCED level -> full functionality.\n" -"\n" -"The choice here will influence the parameters in\n" -"the Selected Tab for all kinds of FlatCAM objects." -msgstr "" -"Nivelul default de utilizare pt FlatCAM.\n" -"Nivel BAZA -> functionalitate simplificata, potrivit pt incepatori\n" -"Nivel AVANSAT -> functionalitate completa.\n" -"\n" -"Alegerea efectuata aici va influenta ce aparamtri sunt disponibili\n" -"in Tab-ul SELECTAT dar și in alte parti ale FlatCAM." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:105 -#: AppObjects/FlatCAMExcellon.py:707 AppObjects/FlatCAMGeometry.py:589 -#: AppObjects/FlatCAMGerber.py:227 AppTools/ToolIsolation.py:816 -msgid "Advanced" -msgstr "Avansat" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:111 -msgid "Portable app" -msgstr "Aplicație portabilă" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:112 -msgid "" -"Choose if the application should run as portable.\n" -"\n" -"If Checked the application will run portable,\n" -"which means that the preferences files will be saved\n" -"in the application folder, in the lib\\config subfolder." -msgstr "" -"Alegeți dacă aplicația ar trebui să funcționeze in modul portabil.\n" -"\n" -"Dacă e bifat, aplicația va rula portabil,\n" -"ceea ce înseamnă că fișierele de preferințe vor fi salvate\n" -"în folderul aplicației, în subfolderul lib \\ config." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:125 -msgid "Languages" -msgstr "Traduceri" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:126 -msgid "Set the language used throughout FlatCAM." -msgstr "Setează limba folosita pentru textele din FlatCAM." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:132 -msgid "Apply Language" -msgstr "Aplica Traducere" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:133 -msgid "" -"Set the language used throughout FlatCAM.\n" -"The app will restart after click." -msgstr "" -"Setați limba folosită în FlatCAM.\n" -"Aplicația va reporni după clic." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:147 -msgid "Startup Settings" -msgstr "Setări de Pornire" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:151 -msgid "Splash Screen" -msgstr "Ecran Pornire" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:153 -msgid "Enable display of the splash screen at application startup." -msgstr "Activeaza afisarea unui ecran de pornire la pornirea aplicatiei." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:165 -msgid "Sys Tray Icon" -msgstr "Icon in Sys Tray" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:167 -msgid "Enable display of FlatCAM icon in Sys Tray." -msgstr "Activare pentru afișarea pictogramei FlatCAM în Sys Tray." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:172 -msgid "Show Shell" -msgstr "Arată Shell" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:174 -msgid "" -"Check this box if you want the shell to\n" -"start automatically at startup." -msgstr "" -"Bifează in cazul in care se dorește pornirea\n" -"automata a ferestrei Shell (linia de comanda)\n" -"la initializarea aplicaţiei." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:181 -msgid "Show Project" -msgstr "Afișați Proiectul" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:183 -msgid "" -"Check this box if you want the project/selected/tool tab area to\n" -"to be shown automatically at startup." -msgstr "" -"Bifează aici daca dorești ca zona Notebook să fie\n" -"afișată automat la pornire." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:189 -msgid "Version Check" -msgstr "Verificare versiune" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:191 -msgid "" -"Check this box if you want to check\n" -"for a new version automatically at startup." -msgstr "" -"Bifează daca se dorește verificarea automata\n" -"daca exista o versiune mai noua,\n" -"la pornirea aplicaţiei." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:198 -msgid "Send Statistics" -msgstr "Trimiteți statistici" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:200 -msgid "" -"Check this box if you agree to send anonymous\n" -"stats automatically at startup, to help improve FlatCAM." -msgstr "" -"Bifează daca esti de acord ca aplicaţia să trimita la pornire\n" -"un set de informatii cu privire la modul in care folosești\n" -"aplicaţia. In acest fel dezvoltatorii vor sti unde să se focalizeze\n" -"in crearea de inbunatatiri." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:214 -msgid "Workers number" -msgstr "Număr de worker's" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:216 -msgid "" -"The number of Qthreads made available to the App.\n" -"A bigger number may finish the jobs more quickly but\n" -"depending on your computer speed, may make the App\n" -"unresponsive. Can have a value between 2 and 16.\n" -"Default value is 2.\n" -"After change, it will be applied at next App start." -msgstr "" -"Număarul de QThread-uri care sunt disponibile pt aplicatie.\n" -"Un număr mai mare va permite terminarea operatiilor mai rapida\n" -"dar in functie de cat de rapid este calculatorul, poate face ca aplicatia\n" -"sa devina temporar blocată. Poate lua o valoare intre 2 si 16.\n" -"Valoarea standard este 2.\n" -"Dupa schimbarea valoarii, se va aplica la următoarea pornire a aplicatiei." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:230 -msgid "Geo Tolerance" -msgstr "Toleranta geometrică" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:232 -msgid "" -"This value can counter the effect of the Circle Steps\n" -"parameter. Default value is 0.005.\n" -"A lower value will increase the detail both in image\n" -"and in Gcode for the circles, with a higher cost in\n" -"performance. Higher value will provide more\n" -"performance at the expense of level of detail." -msgstr "" -"Această valoare afectează efectul prametrului Pasi Cerc.\n" -"Valoarea default este 0.005.\n" -"O valoare mai mică va creste detaliile atat in imagine cat si\n" -"in GCode pentru cercuri dar cu pretul unei scăderi in performantă.\n" -"O valoare mai mare va oferi o performantă crescută dar in\n" -"defavoarea nievelului de detalii." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:252 -msgid "Save Settings" -msgstr "Setări pentru Salvare" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:256 -msgid "Save Compressed Project" -msgstr "Salvează Proiectul comprimat" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:258 -msgid "" -"Whether to save a compressed or uncompressed project.\n" -"When checked it will save a compressed FlatCAM project." -msgstr "" -"Daca să se salveze proiectul in mod arhivat.\n" -"Când este bifat aici, se va salva o arhiva a proiectului\n" -"lucru care poate reduce dimensiunea semnificativ." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:267 -msgid "Compression" -msgstr "Compresie" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:269 -msgid "" -"The level of compression used when saving\n" -"a FlatCAM project. Higher value means better compression\n" -"but require more RAM usage and more processing time." -msgstr "" -"Nivelul de compresie folosit când se salvează un proiect FlatCAM.\n" -"Valorile posibile sunt [0 ... 9]. Valoarea 0 inseamna compresie minimala\n" -"dar cu consum redus de resurse in timp ce valoarea 9 cere multa memorie RAM\n" -"și in plus, durează semnificativ mai mult." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:280 -msgid "Enable Auto Save" -msgstr "Activează Salvarea Automată" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:282 -msgid "" -"Check to enable the autosave feature.\n" -"When enabled, the application will try to save a project\n" -"at the set interval." -msgstr "" -"Bifează pentru activarea optiunii de auto-salvare.\n" -"Cand este activate, aplicatia va incereca sa salveze\n" -"proiectul intr-un mod periodic." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:292 -msgid "Interval" -msgstr "Interval" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:294 -msgid "" -"Time interval for autosaving. In milliseconds.\n" -"The application will try to save periodically but only\n" -"if the project was saved manually at least once.\n" -"While active, some operations may block this feature." -msgstr "" -"Interval periodic pentru autosalvare. In milisecunde.\n" -"Aplicatia va incerca sa salveze periodic doar dacă\n" -"proiectul a fost salvat manual cel putin odată.\n" -"Cand unele operatii sunt active, această capabilitate poate fi sistată." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:310 -msgid "Text to PDF parameters" -msgstr "Parametri text la PDF" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:312 -msgid "Used when saving text in Code Editor or in FlatCAM Document objects." -msgstr "" -"Utilizat la salvarea textului în Codul Editor sau în obiectele FlatCAM " -"Document." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:321 -msgid "Top Margin" -msgstr "Margine Sus" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:323 -msgid "Distance between text body and the top of the PDF file." -msgstr "Distanța dintre corpul textului și partea superioară a fișierului PDF." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:334 -msgid "Bottom Margin" -msgstr "Margine Jos" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:336 -msgid "Distance between text body and the bottom of the PDF file." -msgstr "Distanța dintre corpul textului și partea de jos a fișierului PDF." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:347 -msgid "Left Margin" -msgstr "Margine Stânga" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:349 -msgid "Distance between text body and the left of the PDF file." -msgstr "Distanța dintre corpul textului și stânga fișierului PDF." - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:360 -msgid "Right Margin" -msgstr "Margine Dreapta" - -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:362 -msgid "Distance between text body and the right of the PDF file." -msgstr "Distanța dintre corpul textului și dreapta fișierului PDF." - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:26 -msgid "GUI Preferences" -msgstr "Preferințe GUI" - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:36 -msgid "Theme" -msgstr "Temă" - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:38 -msgid "" -"Select a theme for the application.\n" -"It will theme the plot area." -msgstr "" -"Selectează o Temă pentru aplicație.\n" -"Va afecta zona de afisare." - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:43 -msgid "Light" -msgstr "Luminos" - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:44 -msgid "Dark" -msgstr "Întunecat" - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:51 -msgid "Use Gray Icons" -msgstr "Utilizați pictogramele gri" - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:53 -msgid "" -"Check this box to use a set of icons with\n" -"a lighter (gray) color. To be used when a\n" -"full dark theme is applied." -msgstr "" -"Bifează această casetă pentru a utiliza un set de pictograme cu\n" -"o culoare mai deschisă (gri). Pentru a fi utilizat atunci când\n" -"se aplică o temă complet întunecată." - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:73 -msgid "Layout" -msgstr "Amplasare" - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:75 -msgid "" -"Select a layout for the application.\n" -"It is applied immediately." -msgstr "" -"Selectează un stil de amplasare a elementelor GUI in aplicație.\n" -"Se aplică imediat." - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:95 -msgid "Style" -msgstr "Stil" - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:97 -msgid "" -"Select a style for the application.\n" -"It will be applied at the next app start." -msgstr "" -"Selectează un stil pentru aplicație.\n" -"Se va aplica la următoarea pornire a aplicaţiei." - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:111 -msgid "Activate HDPI Support" -msgstr "Activați HDPI" - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:113 -msgid "" -"Enable High DPI support for the application.\n" -"It will be applied at the next app start." -msgstr "" -"Activează capabilitatea de DPI cu valoare mare.\n" -"Util pentru monitoarele 4k.\n" -"Va fi aplicată la următoarea pornire a aplicaţiei." - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:127 -msgid "Display Hover Shape" -msgstr "Afișează forma Hover" - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:129 -msgid "" -"Enable display of a hover shape for the application objects.\n" -"It is displayed whenever the mouse cursor is hovering\n" -"over any kind of not-selected object." -msgstr "" -"Activează o formă când se tine mouse-ul deasupra unui obiect\n" -"in canvas-ul aplicației. Forma este afișată doar dacă obiectul \n" -"nu este selectat." - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:136 -msgid "Display Selection Shape" -msgstr "Afișați forma de selecție" - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:138 -msgid "" -"Enable the display of a selection shape for the application objects.\n" -"It is displayed whenever the mouse selects an object\n" -"either by clicking or dragging mouse from left to right or\n" -"right to left." -msgstr "" -"Activează o formă de selectie pt obiectele aplicației.\n" -"Se afisează când mouse-ul selectează un obiect\n" -"pe canvas-ul FlatCAM fie făcând click pe obiect fie prin\n" -"crearea unei ferestre de selectie." - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:151 -msgid "Left-Right Selection Color" -msgstr "Culoare de selecție stânga-dreapta" - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:156 -msgid "Set the line color for the 'left to right' selection box." -msgstr "" -"Setează transparenţa conturului formei de selecţie\n" -"când selectia se face de la stânga la dreapta." - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:165 -msgid "" -"Set the fill color for the selection box\n" -"in case that the selection is done from left to right.\n" -"First 6 digits are the color and the last 2\n" -"digits are for alpha (transparency) level." -msgstr "" -"Setează culoarea pentru forma de selectare in cazul\n" -"in care selectia se face de la stânga la dreapta.\n" -"Primii 6 digiti sunt culoarea efectivă și ultimii\n" -"doi sunt pentru nivelul de transparenţă (alfa)." - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:178 -msgid "Set the fill transparency for the 'left to right' selection box." -msgstr "" -"Setează transparenţa formei de selecţie când selectia\n" -"se face de la stânga la dreapta." - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:191 -msgid "Right-Left Selection Color" -msgstr "Culoare de selecție dreapta-stânga" - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:197 -msgid "Set the line color for the 'right to left' selection box." -msgstr "" -"Setează transparenţa conturului formei de selecţie\n" -"când selectia se face de la dreapta la stânga." - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:207 -msgid "" -"Set the fill color for the selection box\n" -"in case that the selection is done from right to left.\n" -"First 6 digits are the color and the last 2\n" -"digits are for alpha (transparency) level." -msgstr "" -"Setează culoarea pentru forma de selectare in cazul\n" -"in care selectia se face de la dreapta la stânga.\n" -"Primii 6 digiti sunt culoarea efectiva și ultimii\n" -"doi sunt pentru nivelul de transparenţă (alfa)." - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:220 -msgid "Set the fill transparency for selection 'right to left' box." -msgstr "" -"Setează transparenţa formei de selecţie când selectia\n" -"se face de la dreapta la stânga." - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:236 -msgid "Editor Color" -msgstr "Culoare editor" - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:240 -msgid "Drawing" -msgstr "Desen" - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:242 -msgid "Set the color for the shape." -msgstr "Setează culoarea pentru forma geometrică din Editor." - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:250 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:275 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:311 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:258 -#: AppTools/ToolIsolation.py:494 AppTools/ToolNCC.py:539 -#: AppTools/ToolPaint.py:455 -msgid "Selection" -msgstr "Selecţie" - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:252 -msgid "Set the color of the shape when selected." -msgstr "" -"Setează culoarea formei geometrice in Editor\n" -"când se face o selecţie." - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:268 -msgid "Project Items Color" -msgstr "Culoarea articolelor din Proiect" - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:272 -msgid "Enabled" -msgstr "Activat" - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:274 -msgid "Set the color of the items in Project Tab Tree." -msgstr "Setează culoarea elementelor din tab-ul Proiect." - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:281 -msgid "Disabled" -msgstr "Dezactivat" - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:283 -msgid "" -"Set the color of the items in Project Tab Tree,\n" -"for the case when the items are disabled." -msgstr "" -"Setează culoarea elementelor din tab-ul Proiect\n" -"in cazul in care elementele sunt dezactivate." - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:292 -msgid "Project AutoHide" -msgstr "Ascundere Proiect" - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:294 -msgid "" -"Check this box if you want the project/selected/tool tab area to\n" -"hide automatically when there are no objects loaded and\n" -"to show whenever a new object is created." -msgstr "" -"Bifează daca dorești ca zona Notebook să fie ascunsă automat\n" -"când nu sunt obiecte incărcate și să fie afișată automat\n" -"când un obiect nou este creat/incărcat." - -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:28 -msgid "Geometry Adv. Options" -msgstr "Opțiuni Avans. Geometrie" - -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:36 -msgid "" -"A list of Geometry advanced parameters.\n" -"Those parameters are available only for\n" -"Advanced App. Level." -msgstr "" -"O lista de parametri Geometrie avansati.\n" -"Acesti parametri sunt disponibili doar\n" -"când este selectat Nivelul Avansat pentru\n" -"aplicaţie in Preferințe - > General." - -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:46 -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:112 -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:134 -#: AppTools/ToolCalibration.py:125 AppTools/ToolSolderPaste.py:236 -msgid "Toolchange X-Y" -msgstr "X,Y schimb. unealtă" - -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:58 -msgid "" -"Height of the tool just after starting the work.\n" -"Delete the value if you don't need this feature." -msgstr "" -"Înălţimea uneltei la care se gaseste la inceputul lucrului.\n" -"Lasa câmpul gol daca nu folosești aceasta." - -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:161 -msgid "Segment X size" -msgstr "Dim. seg X" - -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:163 -msgid "" -"The size of the trace segment on the X axis.\n" -"Useful for auto-leveling.\n" -"A value of 0 means no segmentation on the X axis." -msgstr "" -"Dimensiunea segmentului de traseu pe axa X.\n" -"Folositor pentru auto-nivelare.\n" -"O valoare de 0 inseamnaca nu se face segmentare\n" -"pe axa X." - -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:177 -msgid "Segment Y size" -msgstr "Dim. seg Y" - -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:179 -msgid "" -"The size of the trace segment on the Y axis.\n" -"Useful for auto-leveling.\n" -"A value of 0 means no segmentation on the Y axis." -msgstr "" -"Dimensiunea segmentului de traseu pe axa Y.\n" -"Folositor pentru auto-nivelare.\n" -"O valoare de 0 inseamnaca nu se face segmentare\n" -"pe axa Y." - -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:200 -msgid "Area Exclusion" -msgstr "Zonă de Excludere" - -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:202 -msgid "" -"Area exclusion parameters.\n" -"Those parameters are available only for\n" -"Advanced App. Level." -msgstr "" -"Parametrii Excludere Zonă.\n" -"Acesti parametri sunt disponibili doar\n" -"când este selectat Nivelul Avansat pentru\n" -"aplicaţie in Preferințe - > General." - -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:209 -msgid "Exclusion areas" -msgstr "Zone de Excludere" - -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:220 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:293 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:322 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:286 -#: AppTools/ToolIsolation.py:540 AppTools/ToolNCC.py:578 -#: AppTools/ToolPaint.py:521 -msgid "Shape" -msgstr "Formă" - -#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:33 -msgid "A list of Geometry Editor parameters." -msgstr "O lista de parametri ai Editorului de Geometrii." - -#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:43 -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:174 -msgid "" -"Set the number of selected geometry\n" -"items above which the utility geometry\n" -"becomes just a selection rectangle.\n" -"Increases the performance when moving a\n" -"large number of geometric elements." -msgstr "" -"Setează numărul de geometriil selectate peste care\n" -"geometria utilitară devine o simplă formă pătratica de \n" -"selectie.\n" -"Creste performanta cand se muta un număr mai mare de \n" -"elemente geometrice." - -#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:58 -msgid "" -"Milling type:\n" -"- climb / best for precision milling and to reduce tool usage\n" -"- conventional / useful when there is no backlash compensation" -msgstr "" -"Tipul de frezare:\n" -"- urcare -> potrivit pentru frezare de precizie și pt a reduce uzura " -"uneltei\n" -"- conventional -> pentru cazul când nu exista o compensare a 'backlash-ului'" - -#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:27 -msgid "Geometry General" -msgstr "Geometrie General" - -#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:59 -msgid "" -"The number of circle steps for Geometry \n" -"circle and arc shapes linear approximation." -msgstr "" -"Numărul de segmente utilizate pentru\n" -"aproximarea lineara a Geometriilor circulare." - -#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:73 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:41 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:41 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:48 -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:42 -msgid "Tools Dia" -msgstr "Dia Unealtă" - -#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:75 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:108 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:43 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:43 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:50 -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:44 -msgid "" -"Diameters of the tools, separated by comma.\n" -"The value of the diameter has to use the dot decimals separator.\n" -"Valid values: 0.3, 1.0" -msgstr "" -"Diametrele uneltelor separate cu virgulă.\n" -"Valoarea diametrului trebuie sa folosească punctul ca si separator zecimal.\n" -"Valori valide: 0.3, 1.0" - -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:29 -msgid "Geometry Options" -msgstr "Opțiuni Geometrie" - -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:37 -msgid "" -"Create a CNC Job object\n" -"tracing the contours of this\n" -"Geometry object." -msgstr "" -"Crează un obiect CNCJob care urmăreste conturul\n" -"acestui obiect tip Geometrie." - -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:81 -msgid "Depth/Pass" -msgstr "Adânc./Trecere" - -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:83 -msgid "" -"The depth to cut on each pass,\n" -"when multidepth is enabled.\n" -"It has positive value although\n" -"it is a fraction from the depth\n" -"which has negative value." -msgstr "" -"Adâncimea la care se taie la fiecare trecere,\n" -"atunci când >MultiPas< este folosit.\n" -"Valoarea este pozitivă desi reprezinta o fracţie\n" -"a adancimii de tăiere care este o valoare negativă." - -#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:27 -msgid "Gerber Adv. Options" -msgstr "Opțiuni Av. Gerber" - -#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:33 -msgid "" -"A list of Gerber advanced parameters.\n" -"Those parameters are available only for\n" -"Advanced App. Level." -msgstr "" -"O lista de parametri Gerber avansati.\n" -"Acesti parametri sunt disponibili doar\n" -"când este selectat Nivelul Avansat pentru\n" -"aplicaţie in Preferințe - > General." - -#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:43 -msgid "\"Follow\"" -msgstr "\"Urmareste\"" - -#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:52 -msgid "Table Show/Hide" -msgstr "Arata/Ascunde Tabela" - -#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:54 -msgid "" -"Toggle the display of the Gerber Apertures Table.\n" -"Also, on hide, it will delete all mark shapes\n" -"that are drawn on canvas." -msgstr "" -"Comută afișarea tabelei de aperturi Gerber.\n" -"când se ascunde aceasta, se vor șterge și toate\n" -"posibil afisatele marcaje ale aperturilor." - -#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:67 -#: AppObjects/FlatCAMGerber.py:391 AppTools/ToolCopperThieving.py:1026 -#: AppTools/ToolCopperThieving.py:1215 AppTools/ToolCopperThieving.py:1227 -#: AppTools/ToolIsolation.py:1593 AppTools/ToolNCC.py:2079 -#: AppTools/ToolNCC.py:2190 AppTools/ToolNCC.py:2205 AppTools/ToolNCC.py:3163 -#: AppTools/ToolNCC.py:3268 AppTools/ToolNCC.py:3283 AppTools/ToolNCC.py:3549 -#: AppTools/ToolNCC.py:3650 AppTools/ToolNCC.py:3665 camlib.py:992 -msgid "Buffering" -msgstr "Buferare" - -#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:69 -msgid "" -"Buffering type:\n" -"- None --> best performance, fast file loading but no so good display\n" -"- Full --> slow file loading but good visuals. This is the default.\n" -"<>: Don't change this unless you know what you are doing !!!" -msgstr "" -"Tip de buferare:\n" -"- Nimic --> performanta superioară, incărcare rapidă a fisierului dar " -"afisarea nu este prea bună\n" -"- Complet --> incărcare lentă dar calitate vizuală bună. Aceasta este " -"valoarea de bază.\n" -"<>: Nu schimba această valoare decat dacă stii ce faci !!!" - -#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:74 -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:88 -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:196 -#: AppTools/ToolFiducials.py:204 AppTools/ToolFilm.py:238 -#: AppTools/ToolProperties.py:452 AppTools/ToolProperties.py:455 -#: AppTools/ToolProperties.py:458 AppTools/ToolProperties.py:483 -msgid "None" -msgstr "Nimic" - -#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:80 -msgid "Simplify" -msgstr "Simplifica" - -#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:82 -msgid "" -"When checked all the Gerber polygons will be\n" -"loaded with simplification having a set tolerance.\n" -"<>: Don't change this unless you know what you are doing !!!" -msgstr "" -"Când este bifat, toate poligoanele Gerber vor fi\n" -"încărcate simplificat cu o toleranță stabilită.\n" -"<>: Nu schimbați acest lucru decât dacă știți ce faceți !!!" - -#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:89 -msgid "Tolerance" -msgstr "Toleranta" - -#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:90 -msgid "Tolerance for polygon simplification." -msgstr "Toleranță pentru simplificarea poligoanelor." - -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:33 -msgid "A list of Gerber Editor parameters." -msgstr "O listă de parametri ai Editorului Gerber." - -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:43 -msgid "" -"Set the number of selected Gerber geometry\n" -"items above which the utility geometry\n" -"becomes just a selection rectangle.\n" -"Increases the performance when moving a\n" -"large number of geometric elements." -msgstr "" -"Setează numărul de geometrii selectate peste care\n" -"geometria utilitară devine un simplu pătrat de selectie.\n" -"Creste performanta cand se mută un număr mai mare\n" -"de elemente geometrice." - -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:56 -msgid "New Aperture code" -msgstr "Cod pt aperture noua" - -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:69 -msgid "New Aperture size" -msgstr "Dim. pt aperture noua" - -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:71 -msgid "Size for the new aperture" -msgstr "Dim. pentru noua apertură" - -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:82 -msgid "New Aperture type" -msgstr "Tip pt noua apaertura" - -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:84 -msgid "" -"Type for the new aperture.\n" -"Can be 'C', 'R' or 'O'." -msgstr "" -"Tipul noii aperture.\n" -"Poate fi „C”, „R” sau „O”." - -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:106 -msgid "Aperture Dimensions" -msgstr "Dim. aper" - -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:117 -msgid "Linear Pad Array" -msgstr "Arie Lineară de Sloturi" - -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:161 -msgid "Circular Pad Array" -msgstr "Arie de Sloturi circ" - -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:197 -msgid "Distance at which to buffer the Gerber element." -msgstr "Distanța la care se bufferează elementul Gerber." - -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:206 -msgid "Scale Tool" -msgstr "Unalta de Scalare" - -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:212 -msgid "Factor to scale the Gerber element." -msgstr "Factor pentru scalarea elementului Gerber." - -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:225 -msgid "Threshold low" -msgstr "Prag minim" - -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:227 -msgid "Threshold value under which the apertures are not marked." -msgstr "Valoarea pragului sub care aperturile nu sunt marcate." - -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:237 -msgid "Threshold high" -msgstr "Prag mare" - -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:239 -msgid "Threshold value over which the apertures are not marked." -msgstr "Valoarea pragului peste care nu sunt marcate aperturile." - -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:27 -msgid "Gerber Export" -msgstr "Export Gerber" - -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:33 -msgid "" -"The parameters set here are used in the file exported\n" -"when using the File -> Export -> Export Gerber menu entry." -msgstr "" -"Acesti parametri listati aici sunt folositi atunci când\n" -"se exporta un fişier Gerber folosind:\n" -"File -> Exportă -> Exportă Gerber." - -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:44 -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:50 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:84 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:90 -msgid "The units used in the Gerber file." -msgstr "Unitătile de măsură folosite in fişierul Gerber." - -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:58 -msgid "" -"The number of digits in the whole part of the number\n" -"and in the fractional part of the number." -msgstr "" -"Acest număr reprezinta numărul de digiti din partea\n" -"intreagă si in partea fractională a numărului." - -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:71 -msgid "" -"This numbers signify the number of digits in\n" -"the whole part of Gerber coordinates." -msgstr "" -"Acest număr reprezinta numărul de digiti din partea\n" -"intreagă a coordonatelor Gerber." - -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:87 -msgid "" -"This numbers signify the number of digits in\n" -"the decimal part of Gerber coordinates." -msgstr "" -"Acest număr reprezinta numărul de digiti din partea\n" -"zecimală a coordonatelor Gerber." - -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:99 -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:109 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:100 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:110 -msgid "" -"This sets the type of Gerber zeros.\n" -"If LZ then Leading Zeros are removed and\n" -"Trailing Zeros are kept.\n" -"If TZ is checked then Trailing Zeros are removed\n" -"and Leading Zeros are kept." -msgstr "" -"Aici se setează tipul de suprimare a zerourilor,\n" -"in cazul unui fişier Gerber.\n" -"TZ = zerourile din fata numărului sunt păstrate și\n" -"cele de la final sunt indepărtate.\n" -"LZ = zerourile din fata numărului sunt indepărtate și\n" -"cele de la final sunt păstrate.\n" -"(Invers fată de fişierele Excellon)." - -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:27 -msgid "Gerber General" -msgstr "Gerber General" - -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:61 -msgid "" -"The number of circle steps for Gerber \n" -"circular aperture linear approximation." -msgstr "" -"Numărul de segmente utilizate pentru\n" -"aproximarea lineara a aperturilor Gerber circulare." - -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:73 -msgid "Default Values" -msgstr "Val. Implicite" - -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:75 -msgid "" -"Those values will be used as fallback values\n" -"in case that they are not found in the Gerber file." -msgstr "" -"Aceste valori vor fi utilizate ca valori de baza\n" -"în cazul în care acestea nu sunt găsite în fișierul Gerber." - -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:126 -msgid "Clean Apertures" -msgstr "Curățați Aperturile" - -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:128 -msgid "" -"Will remove apertures that do not have geometry\n" -"thus lowering the number of apertures in the Gerber object." -msgstr "" -"Va elimina Aperturile care nu au geometrie\n" -"scăzând astfel numărul de aperturi în obiectul Gerber." - -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:134 -msgid "Polarity change buffer" -msgstr "Tampon la Schimbarea polarității" - -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:136 -msgid "" -"Will apply extra buffering for the\n" -"solid geometry when we have polarity changes.\n" -"May help loading Gerber files that otherwise\n" -"do not load correctly." -msgstr "" -"Vor aplica un buffering suplimentar pentru\n" -"geometrie solidă când avem schimbări de polaritate.\n" -"Poate ajuta la încărcarea fișierelor Gerber care altfel\n" -"nu se încarcă corect." - -#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:29 -msgid "Gerber Options" -msgstr "Opțiuni Gerber" - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:27 -msgid "Copper Thieving Tool Options" -msgstr "Opțiunile Uneltei Copper Thieving" - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:39 -msgid "" -"A tool to generate a Copper Thieving that can be added\n" -"to a selected Gerber file." -msgstr "" -"Un instrument pentru a genera o Copper Thieving care poate fi adăugat\n" -"la un fișier Gerber selectat." - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:47 -msgid "Number of steps (lines) used to interpolate circles." -msgstr "Numărul de pași (linii) utilizate pentru interpolarea cercurilor." - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:57 -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:261 -#: AppTools/ToolCopperThieving.py:100 AppTools/ToolCopperThieving.py:435 -msgid "Clearance" -msgstr "Degajare" - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:59 -msgid "" -"This set the distance between the copper Thieving components\n" -"(the polygon fill may be split in multiple polygons)\n" -"and the copper traces in the Gerber file." -msgstr "" -"Acest lucru a stabilit distanța dintre componentele Copper Thieving\n" -"(umplutura poligonului poate fi împărțită în mai multe poligoane)\n" -"si traseele de cupru din fisierul Gerber." - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:86 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309 -#: AppTools/ToolCopperThieving.py:129 AppTools/ToolNCC.py:535 -#: AppTools/ToolNCC.py:1324 AppTools/ToolNCC.py:1655 AppTools/ToolNCC.py:1948 -#: AppTools/ToolNCC.py:2012 AppTools/ToolNCC.py:3027 AppTools/ToolNCC.py:3036 -#: defaults.py:419 tclCommands/TclCommandCopperClear.py:190 -msgid "Itself" -msgstr "Însuşi" - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:87 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:285 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280 -#: AppTools/ToolCopperThieving.py:130 AppTools/ToolIsolation.py:504 -#: AppTools/ToolIsolation.py:1297 AppTools/ToolIsolation.py:1671 -#: AppTools/ToolNCC.py:535 AppTools/ToolNCC.py:1334 AppTools/ToolNCC.py:1668 -#: AppTools/ToolNCC.py:1964 AppTools/ToolNCC.py:2019 AppTools/ToolPaint.py:485 -#: AppTools/ToolPaint.py:945 AppTools/ToolPaint.py:1471 -msgid "Area Selection" -msgstr "Selecţie zonă" - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:88 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:285 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280 -#: AppTools/ToolCopperThieving.py:131 AppTools/ToolDblSided.py:216 -#: AppTools/ToolIsolation.py:504 AppTools/ToolIsolation.py:1711 -#: AppTools/ToolNCC.py:535 AppTools/ToolNCC.py:1684 AppTools/ToolNCC.py:1970 -#: AppTools/ToolNCC.py:2027 AppTools/ToolNCC.py:2408 AppTools/ToolNCC.py:2656 -#: AppTools/ToolNCC.py:3072 AppTools/ToolPaint.py:485 AppTools/ToolPaint.py:930 -#: AppTools/ToolPaint.py:1487 tclCommands/TclCommandCopperClear.py:192 -#: tclCommands/TclCommandPaint.py:166 -msgid "Reference Object" -msgstr "Obiect Ref" - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:90 -#: AppTools/ToolCopperThieving.py:133 -msgid "Reference:" -msgstr "Referinţă:" - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:92 -msgid "" -"- 'Itself' - the copper Thieving extent is based on the object extent.\n" -"- 'Area Selection' - left mouse click to start selection of the area to be " -"filled.\n" -"- 'Reference Object' - will do copper thieving within the area specified by " -"another object." -msgstr "" -"- „Însuși” - dimensiunea Copper Thieving se bazează pe obiectul care este " -"curățat de cupru.\n" -"- „Selecție zonă” - faceți clic stânga cu mouse-ul pentru a începe selecția " -"zonei de completat.\n" -"- „Obiect de referință” - va face Copper Thieving în zona specificată de un " -"alt obiect." - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:101 -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:76 -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:188 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:76 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:190 -#: AppTools/ToolCopperThieving.py:175 AppTools/ToolExtractDrills.py:102 -#: AppTools/ToolExtractDrills.py:240 AppTools/ToolPunchGerber.py:113 -#: AppTools/ToolPunchGerber.py:268 -msgid "Rectangular" -msgstr "Patrulater" - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:102 -#: AppTools/ToolCopperThieving.py:176 -msgid "Minimal" -msgstr "Minimal" - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:104 -#: AppTools/ToolCopperThieving.py:178 AppTools/ToolFilm.py:94 -msgid "Box Type:" -msgstr "Tip container:" - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:106 -#: AppTools/ToolCopperThieving.py:180 -msgid "" -"- 'Rectangular' - the bounding box will be of rectangular shape.\n" -"- 'Minimal' - the bounding box will be the convex hull shape." -msgstr "" -"- „Dreptunghiular” - caseta de delimitare va avea o formă dreptunghiulară.\n" -"- „Minimal” - caseta de delimitare va fi forma arie convexă." - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:120 -#: AppTools/ToolCopperThieving.py:196 -msgid "Dots Grid" -msgstr "Grilă de puncte" - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:121 -#: AppTools/ToolCopperThieving.py:197 -msgid "Squares Grid" -msgstr "Grilă de pătrate" - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:122 -#: AppTools/ToolCopperThieving.py:198 -msgid "Lines Grid" -msgstr "Grilă de linii" - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:124 -#: AppTools/ToolCopperThieving.py:200 -msgid "Fill Type:" -msgstr "Tip de umplere:" - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:126 -#: AppTools/ToolCopperThieving.py:202 -msgid "" -"- 'Solid' - copper thieving will be a solid polygon.\n" -"- 'Dots Grid' - the empty area will be filled with a pattern of dots.\n" -"- 'Squares Grid' - the empty area will be filled with a pattern of squares.\n" -"- 'Lines Grid' - the empty area will be filled with a pattern of lines." -msgstr "" -"- „Solid” - Copper Thieving va fi un poligon solid.\n" -"- „Grilă de puncte” - zona goală va fi umplută cu un model de puncte.\n" -"- „Grilă de pătrate” - zona goală va fi umplută cu un model de pătrate.\n" -"- „Grilă de linii” - zona goală va fi umplută cu un model de linii." - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:134 -#: AppTools/ToolCopperThieving.py:221 -msgid "Dots Grid Parameters" -msgstr "Parametri grilă puncte" - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:140 -#: AppTools/ToolCopperThieving.py:227 -msgid "Dot diameter in Dots Grid." -msgstr "Diametrul punctului în Grila de Puncte." - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:151 -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:180 -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:209 -#: AppTools/ToolCopperThieving.py:238 AppTools/ToolCopperThieving.py:278 -#: AppTools/ToolCopperThieving.py:318 -msgid "Spacing" -msgstr "Spaţiere" - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:153 -#: AppTools/ToolCopperThieving.py:240 -msgid "Distance between each two dots in Dots Grid." -msgstr "Distanța dintre fiecare două puncte din Grila de Puncte." - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:163 -#: AppTools/ToolCopperThieving.py:261 -msgid "Squares Grid Parameters" -msgstr "Parametri grilă de patrate" - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:169 -#: AppTools/ToolCopperThieving.py:267 -msgid "Square side size in Squares Grid." -msgstr "Dimensiunea pătratului în Grila de Pătrate." - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:182 -#: AppTools/ToolCopperThieving.py:280 -msgid "Distance between each two squares in Squares Grid." -msgstr "Distanța dintre fiecare două pătrate din Grila Pătrate." - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:192 -#: AppTools/ToolCopperThieving.py:301 -msgid "Lines Grid Parameters" -msgstr "Parametri grilă de linii" - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:198 -#: AppTools/ToolCopperThieving.py:307 -msgid "Line thickness size in Lines Grid." -msgstr "Mărimea grosimii liniei în Grila de linii." - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:211 -#: AppTools/ToolCopperThieving.py:320 -msgid "Distance between each two lines in Lines Grid." -msgstr "Distanța dintre fiecare două linii în Grial de linii." - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:221 -#: AppTools/ToolCopperThieving.py:358 -msgid "Robber Bar Parameters" -msgstr "Parametri pentru Robber Bar" - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:223 -#: AppTools/ToolCopperThieving.py:360 -msgid "" -"Parameters used for the robber bar.\n" -"Robber bar = copper border to help in pattern hole plating." -msgstr "" -"Parametrii folosiți pentru Robber Bar.\n" -"Robber Bar = bordura de cupru pentru a ajuta la placarea de găuri, cu model." - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:231 -#: AppTools/ToolCopperThieving.py:368 -msgid "Bounding box margin for robber bar." -msgstr "" -"Marginea pentru forma înconjurătoare\n" -"a Robber Bar." - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:242 -#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:42 -#: AppTools/ToolCopperThieving.py:379 AppTools/ToolCorners.py:122 -#: AppTools/ToolEtchCompensation.py:152 -msgid "Thickness" -msgstr "Grosime" - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:244 -#: AppTools/ToolCopperThieving.py:381 -msgid "The robber bar thickness." -msgstr "Grosimea Robber Bar." - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:254 -#: AppTools/ToolCopperThieving.py:412 -msgid "Pattern Plating Mask" -msgstr "Masca de placare cu model" - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:256 -#: AppTools/ToolCopperThieving.py:414 -msgid "Generate a mask for pattern plating." -msgstr "Generați o mască pentru placarea cu model." - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:263 -#: AppTools/ToolCopperThieving.py:437 -msgid "" -"The distance between the possible copper thieving elements\n" -"and/or robber bar and the actual openings in the mask." -msgstr "" -"Distanța dintre posibilele elemente Copper Thieving\n" -"și / sau Robber Bar și deschiderile efective ale măștii." - -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:27 -msgid "Calibration Tool Options" -msgstr "Opțiuni Unealta Calibrare" - -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:38 -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:38 -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:38 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:38 -#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:37 -#: AppTools/ToolCopperThieving.py:95 AppTools/ToolCorners.py:117 -#: AppTools/ToolFiducials.py:154 -msgid "Parameters used for this tool." -msgstr "Parametrii folosiți pentru aceasta unealta." - -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:43 -#: AppTools/ToolCalibration.py:181 -msgid "Source Type" -msgstr "Tipul sursei" - -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:44 -#: AppTools/ToolCalibration.py:182 -msgid "" -"The source of calibration points.\n" -"It can be:\n" -"- Object -> click a hole geo for Excellon or a pad for Gerber\n" -"- Free -> click freely on canvas to acquire the calibration points" -msgstr "" -"Sursa punctelor de calibrare.\n" -"Poate fi:\n" -"- Obiect -> faceți clic pe o geometrie gaură pentru Excellon sau pe un pad " -"pentru Gerber\n" -"- Liber -> faceți clic liber pe ecran pentru a obține punctele de calibrare" - -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:49 -#: AppTools/ToolCalibration.py:187 -msgid "Free" -msgstr "Liber" - -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:63 -#: AppTools/ToolCalibration.py:76 -msgid "Height (Z) for travelling between the points." -msgstr "Înălțime (Z) pentru deplasarea între puncte." - -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:75 -#: AppTools/ToolCalibration.py:88 -msgid "Verification Z" -msgstr "Z Verificare" - -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:77 -#: AppTools/ToolCalibration.py:90 -msgid "Height (Z) for checking the point." -msgstr "Înălțimea (Z) pentru verificarea punctului." - -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:89 -#: AppTools/ToolCalibration.py:102 -msgid "Zero Z tool" -msgstr "Realizare Zero Z" - -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:91 -#: AppTools/ToolCalibration.py:104 -msgid "" -"Include a sequence to zero the height (Z)\n" -"of the verification tool." -msgstr "" -"Includeți o secvență pentru aliniere la zero a înălțimii (Z)\n" -"uneltei de verificare." - -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:100 -#: AppTools/ToolCalibration.py:113 -msgid "Height (Z) for mounting the verification probe." -msgstr "Înălțime (Z) pentru montarea sondei de verificare." - -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:114 -#: AppTools/ToolCalibration.py:127 -msgid "" -"Toolchange X,Y position.\n" -"If no value is entered then the current\n" -"(x, y) point will be used," -msgstr "" -"Poziția X, Y pt schimbare unealtă.\n" -"Dacă nu este introdusă nicio valoare, atunci poziția\n" -"(x, y) curentă se va folosi," - -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:125 -#: AppTools/ToolCalibration.py:153 -msgid "Second point" -msgstr "Al doilea punct" - -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:127 -#: AppTools/ToolCalibration.py:155 -msgid "" -"Second point in the Gcode verification can be:\n" -"- top-left -> the user will align the PCB vertically\n" -"- bottom-right -> the user will align the PCB horizontally" -msgstr "" -"Al doilea punct al verificării Gcode poate fi:\n" -"- în stânga sus -> utilizatorul va alinia PCB-ul pe verticală\n" -"- în jos-dreapta -> utilizatorul va alinia PCB-ul pe orizontală" - -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:131 -#: AppTools/ToolCalibration.py:159 App_Main.py:4712 -msgid "Top-Left" -msgstr "Stânga-sus" - -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:132 -#: AppTools/ToolCalibration.py:160 App_Main.py:4713 -msgid "Bottom-Right" -msgstr "Dreapta-jos" - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:27 -msgid "Extract Drills Options" -msgstr "Opțiuni Extractie Găuri" - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:42 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:42 -#: AppTools/ToolExtractDrills.py:68 AppTools/ToolPunchGerber.py:75 -msgid "Processed Pads Type" -msgstr "Tipul de pad-uri procesate" - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:44 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:44 -#: AppTools/ToolExtractDrills.py:70 AppTools/ToolPunchGerber.py:77 -msgid "" -"The type of pads shape to be processed.\n" -"If the PCB has many SMD pads with rectangular pads,\n" -"disable the Rectangular aperture." -msgstr "" -"Tipul de forme ale pad-urilor care vor fi procesate.\n" -"Daca PCB-ul are multe paduri SMD cu formă rectangulară,\n" -"dezactivează apertura Rectangular." - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:54 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:54 -#: AppTools/ToolExtractDrills.py:80 AppTools/ToolPunchGerber.py:91 -msgid "Process Circular Pads." -msgstr "Procesează paduri Circulare." - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:60 -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:162 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:60 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:164 -#: AppTools/ToolExtractDrills.py:86 AppTools/ToolExtractDrills.py:214 -#: AppTools/ToolPunchGerber.py:97 AppTools/ToolPunchGerber.py:242 -msgid "Oblong" -msgstr "Oval" - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:62 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:62 -#: AppTools/ToolExtractDrills.py:88 AppTools/ToolPunchGerber.py:99 -msgid "Process Oblong Pads." -msgstr "Procesează paduri Ovale." - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:70 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:70 -#: AppTools/ToolExtractDrills.py:96 AppTools/ToolPunchGerber.py:107 -msgid "Process Square Pads." -msgstr "Procesează paduri Pătratice." - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:78 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:78 -#: AppTools/ToolExtractDrills.py:104 AppTools/ToolPunchGerber.py:115 -msgid "Process Rectangular Pads." -msgstr "Procesează paduri Rectangulare." - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:84 -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:201 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:84 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:203 -#: AppTools/ToolExtractDrills.py:110 AppTools/ToolExtractDrills.py:253 -#: AppTools/ToolProperties.py:172 AppTools/ToolPunchGerber.py:121 -#: AppTools/ToolPunchGerber.py:281 -msgid "Others" -msgstr "Altele" - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:86 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:86 -#: AppTools/ToolExtractDrills.py:112 AppTools/ToolPunchGerber.py:123 -msgid "Process pads not in the categories above." -msgstr "Procesează paduri care nu se regăsesc in alte categorii." - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:99 -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:123 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:100 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:125 -#: AppTools/ToolExtractDrills.py:139 AppTools/ToolExtractDrills.py:156 -#: AppTools/ToolPunchGerber.py:150 AppTools/ToolPunchGerber.py:184 -msgid "Fixed Diameter" -msgstr "Dia fix" - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:100 -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:140 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:101 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:142 -#: AppTools/ToolExtractDrills.py:140 AppTools/ToolExtractDrills.py:192 -#: AppTools/ToolPunchGerber.py:151 AppTools/ToolPunchGerber.py:214 -msgid "Fixed Annular Ring" -msgstr "Inel anular Fix" - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:101 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:102 -#: AppTools/ToolExtractDrills.py:141 AppTools/ToolPunchGerber.py:152 -msgid "Proportional" -msgstr "Proportional" - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:107 -#: AppTools/ToolExtractDrills.py:130 -msgid "" -"The method for processing pads. Can be:\n" -"- Fixed Diameter -> all holes will have a set size\n" -"- Fixed Annular Ring -> all holes will have a set annular ring\n" -"- Proportional -> each hole size will be a fraction of the pad size" -msgstr "" -"Metoda de procesare a padurilor. Poate fi:\n" -"- Diametru fix -> toate găurile vor avea o dimensiune prestabilită\n" -"- Inel anular fix -> toate găurile vor avea un inel anular cu dimensiune " -"prestabilită\n" -"- Proportional -> fiecare gaură va avea un diametru cu dimensiunea fractie a " -"dimensiunii padului" - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:131 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:133 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:220 -#: AppTools/ToolExtractDrills.py:164 AppTools/ToolExtractDrills.py:285 -#: AppTools/ToolPunchGerber.py:192 AppTools/ToolPunchGerber.py:308 -#: AppTools/ToolTransform.py:357 App_Main.py:9698 -msgid "Value" -msgstr "Valoare" - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:133 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:135 -#: AppTools/ToolExtractDrills.py:166 AppTools/ToolPunchGerber.py:194 -msgid "Fixed hole diameter." -msgstr "Dia gaură fix." - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:142 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:144 -#: AppTools/ToolExtractDrills.py:194 AppTools/ToolPunchGerber.py:216 -msgid "" -"The size of annular ring.\n" -"The copper sliver between the hole exterior\n" -"and the margin of the copper pad." -msgstr "" -"Dimensiunea Inelului Anular.\n" -"Inelul de cupru dintre exteriorul găurii si\n" -"marginea exterioară a padului de cupru." - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:151 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:153 -#: AppTools/ToolExtractDrills.py:203 AppTools/ToolPunchGerber.py:231 -msgid "The size of annular ring for circular pads." -msgstr "Dimensiunea inelului anular pentru paduri Circulare." - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:164 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:166 -#: AppTools/ToolExtractDrills.py:216 AppTools/ToolPunchGerber.py:244 -msgid "The size of annular ring for oblong pads." -msgstr "Dimensiunea inelului anular pentru paduri Ovale." - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:177 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:179 -#: AppTools/ToolExtractDrills.py:229 AppTools/ToolPunchGerber.py:257 -msgid "The size of annular ring for square pads." -msgstr "Dimensiunea inelului anular pentru paduri Pătratice." - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:190 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:192 -#: AppTools/ToolExtractDrills.py:242 AppTools/ToolPunchGerber.py:270 -msgid "The size of annular ring for rectangular pads." -msgstr "Dimnensiunea inelului anular pentru paduri Rectangulare." - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:203 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:205 -#: AppTools/ToolExtractDrills.py:255 AppTools/ToolPunchGerber.py:283 -msgid "The size of annular ring for other pads." -msgstr "" -"Dimensiunea inelului anular pentru alte tipuri de paduri decat cele de mai " -"sus." - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:213 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:215 -#: AppTools/ToolExtractDrills.py:276 AppTools/ToolPunchGerber.py:299 -msgid "Proportional Diameter" -msgstr "Diametru Proportional" - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:222 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:224 -msgid "Factor" -msgstr "Factor" - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:224 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:226 -#: AppTools/ToolExtractDrills.py:287 AppTools/ToolPunchGerber.py:310 -msgid "" -"Proportional Diameter.\n" -"The hole diameter will be a fraction of the pad size." -msgstr "" -"Diametru Proportional.\n" -"Diametrul găurii va fi un procent din dimensiunea padului." - -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:27 -msgid "Fiducials Tool Options" -msgstr "Opțiuni Unealta Fiducials" - -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:45 -#: AppTools/ToolFiducials.py:161 -msgid "" -"This set the fiducial diameter if fiducial type is circular,\n" -"otherwise is the size of the fiducial.\n" -"The soldermask opening is double than that." -msgstr "" -"Aceasta setează diametrul pt fiducial dacă tipul fiducial-ul este circular,\n" -"altfel este dimensiunea fiducial-ului.\n" -"Deschiderea soldermask este dublă." - -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:73 -#: AppTools/ToolFiducials.py:189 -msgid "Auto" -msgstr "Auto" - -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:74 -#: AppTools/ToolFiducials.py:190 -msgid "Manual" -msgstr "Manual" - -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:76 -#: AppTools/ToolFiducials.py:192 -msgid "Mode:" -msgstr "Mod:" - -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:78 -msgid "" -"- 'Auto' - automatic placement of fiducials in the corners of the bounding " -"box.\n" -"- 'Manual' - manual placement of fiducials." -msgstr "" -"- „Auto” - plasarea automată a fiducial în colțurile casetei de delimitare.\n" -"- „Manual” - plasarea manuală a fiducial." - -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:86 -#: AppTools/ToolFiducials.py:202 -msgid "Up" -msgstr "Sus" - -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:87 -#: AppTools/ToolFiducials.py:203 -msgid "Down" -msgstr "Jos" - -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:90 -#: AppTools/ToolFiducials.py:206 -msgid "Second fiducial" -msgstr "Al 2-lea Fiducial" - -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:92 -#: AppTools/ToolFiducials.py:208 -msgid "" -"The position for the second fiducial.\n" -"- 'Up' - the order is: bottom-left, top-left, top-right.\n" -"- 'Down' - the order is: bottom-left, bottom-right, top-right.\n" -"- 'None' - there is no second fiducial. The order is: bottom-left, top-right." -msgstr "" -"Poziția pentru cel de-al doilea fiducal.\n" -"- „Sus” - ordinea este: jos-stânga, sus-stânga, sus-dreapta.\n" -"- „Jos” - ordinea este: jos-stânga, jos-dreapta, sus-dreapta.\n" -"- „Niciuna” - nu există un al doilea fiduțial. Ordinea este: jos-stânga, sus-" -"dreapta." - -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:108 -#: AppTools/ToolFiducials.py:224 -msgid "Cross" -msgstr "Cruce" - -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:109 -#: AppTools/ToolFiducials.py:225 -msgid "Chess" -msgstr "Şah" - -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:112 -#: AppTools/ToolFiducials.py:227 -msgid "Fiducial Type" -msgstr "Tip Fiducial" - -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:114 -#: AppTools/ToolFiducials.py:229 -msgid "" -"The type of fiducial.\n" -"- 'Circular' - this is the regular fiducial.\n" -"- 'Cross' - cross lines fiducial.\n" -"- 'Chess' - chess pattern fiducial." -msgstr "" -"Tipul de fiducial.\n" -"- „Circular” - acesta este un Fiducial obișnuit.\n" -"- „Cross” - linii încrucișate fiduciare.\n" -"- „Șah” - model de șah fiduciar." - -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:123 -#: AppTools/ToolFiducials.py:238 -msgid "Line thickness" -msgstr "Grosimea liniei" - -#: AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py:27 -msgid "Invert Gerber Tool Options" -msgstr "Opțiuni Unalta de Inversare Gerber" - -#: AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py:33 -msgid "" -"A tool to invert Gerber geometry from positive to negative\n" -"and in revers." -msgstr "" -"O unealtă de inversare a geometriei unui obiect Gerber \n" -"din pozitiv in negative si invers." - -#: AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py:47 -#: AppTools/ToolInvertGerber.py:93 -msgid "" -"Distance by which to avoid\n" -"the edges of the Gerber object." -msgstr "" -"Distanta cu care trebuie evitate\n" -"marginile obiectului Gerber." - -#: AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py:58 -#: AppTools/ToolInvertGerber.py:104 -msgid "Lines Join Style" -msgstr "Stil Unire Linii" - -#: AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py:60 -#: AppTools/ToolInvertGerber.py:106 -msgid "" -"The way that the lines in the object outline will be joined.\n" -"Can be:\n" -"- rounded -> an arc is added between two joining lines\n" -"- square -> the lines meet in 90 degrees angle\n" -"- bevel -> the lines are joined by a third line" -msgstr "" -"Modul in care liniile dintr-un perimetru al unui obiect vor fi unite.\n" -"Poate fi:\n" -"- rotunjit -> un arc este adăugat intre oricare doua linii care se " -"intalnesc\n" -"- pătrat -> liniile se vor intalni intr-un unghi de 90 grade\n" -"- Teşit -> liniile sunt unite de o a 3-a linie" - -#: AppGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:27 -msgid "Optimal Tool Options" -msgstr "Opțiuni Unealta Optim" - -#: AppGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:33 -msgid "" -"A tool to find the minimum distance between\n" -"every two Gerber geometric elements" -msgstr "" -"Un instrument pentru a găsi distanța minimă între\n" -"la fiecare două elemente geometrice Gerber" - -#: AppGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:48 -#: AppTools/ToolOptimal.py:84 -msgid "Precision" -msgstr "Precizie" - -#: AppGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:50 -msgid "Number of decimals for the distances and coordinates in this tool." -msgstr "" -"Numărul de zecimale pentru distanțele și coordonatele din acest instrument." - -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:27 -msgid "Punch Gerber Options" -msgstr "Opțiuni Punctare Gerber" - -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:108 -#: AppTools/ToolPunchGerber.py:141 -msgid "" -"The punch hole source can be:\n" -"- Excellon Object-> the Excellon object drills center will serve as " -"reference.\n" -"- Fixed Diameter -> will try to use the pads center as reference adding " -"fixed diameter holes.\n" -"- Fixed Annular Ring -> will try to keep a set annular ring.\n" -"- Proportional -> will make a Gerber punch hole having the diameter a " -"percentage of the pad diameter." -msgstr "" -"Sursa de punctare pt găuri poate fi:\n" -"- Obiect Excellon -> centrul găurilor din obiectul Excellon va servi ca " -"referintă.\n" -"- Diametru Fix -> se va incerca să se folosească centrul padurilor ca " -"referintă adăungand diametrul fix al găurilor.\n" -"- Inel anular Fix -> va incerca să mentină un inele anular cu dimensiune " -"prestabilită.\n" -"- Proportional -> găurile de punctare vor avea diametrul un procent " -"prestabilit din diametrul padului." - -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:27 -msgid "QRCode Tool Options" -msgstr "Opțiuni Unealta QRCode" - -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:33 -msgid "" -"A tool to create a QRCode that can be inserted\n" -"into a selected Gerber file, or it can be exported as a file." -msgstr "" -"O unealta pentru a crea un cod QRC care poate fi inserat\n" -"într-un fișier Gerber selectat sau care poate fi exportat ca fișier." - -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:45 -#: AppTools/ToolQRCode.py:121 -msgid "Version" -msgstr "Versiune" - -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:47 -#: AppTools/ToolQRCode.py:123 -msgid "" -"QRCode version can have values from 1 (21x21 boxes)\n" -"to 40 (177x177 boxes)." -msgstr "" -"Versiunea QRCode poate avea valori de la 1 (21x21 elemente)\n" -"la 40 (177x177 elemente)." - -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:58 -#: AppTools/ToolQRCode.py:134 -msgid "Error correction" -msgstr "Corectarea erorii" - -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:60 -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:71 -#: AppTools/ToolQRCode.py:136 AppTools/ToolQRCode.py:147 -#, python-format -msgid "" -"Parameter that controls the error correction used for the QR Code.\n" -"L = maximum 7%% errors can be corrected\n" -"M = maximum 15%% errors can be corrected\n" -"Q = maximum 25%% errors can be corrected\n" -"H = maximum 30%% errors can be corrected." -msgstr "" -"Parametru care controlează corectarea erorilor utilizate pentru codul QR.\n" -"L = maxim 7%% erorile pot fi corectate\n" -"M = maxim 15%% erorile pot fi corectate\n" -"Q = erorile maxime de 25%% pot fi corectate\n" -"H = maxim 30%% erorile pot fi corectate." - -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:81 -#: AppTools/ToolQRCode.py:157 -msgid "Box Size" -msgstr "Dim. Element" - -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:83 -#: AppTools/ToolQRCode.py:159 -msgid "" -"Box size control the overall size of the QRcode\n" -"by adjusting the size of each box in the code." -msgstr "" -"Dimensiunea Element controlează dimensiunea generală a codului QR\n" -"prin ajustarea dimensiunii fiecărui element din cod." - -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:94 -#: AppTools/ToolQRCode.py:170 -msgid "Border Size" -msgstr "Dim Bordură" - -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:96 -#: AppTools/ToolQRCode.py:172 -msgid "" -"Size of the QRCode border. How many boxes thick is the border.\n" -"Default value is 4. The width of the clearance around the QRCode." -msgstr "" -"Dimensiunea chenarului QRCode. Câte elemente va contine bordura.\n" -"Valoarea implicită este 4. Lățimea spatiului liber în jurul codului QRC." - -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:107 -#: AppTools/ToolQRCode.py:92 -msgid "QRCode Data" -msgstr "Date QRCode" - -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:109 -#: AppTools/ToolQRCode.py:94 -msgid "QRCode Data. Alphanumeric text to be encoded in the QRCode." -msgstr "Date QRCode. Text alfanumeric care va fi codat în codul QRC." - -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:113 -#: AppTools/ToolQRCode.py:98 -msgid "Add here the text to be included in the QRCode..." -msgstr "Adăugați aici textul care va fi inclus în codul QR ..." - -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:119 -#: AppTools/ToolQRCode.py:183 -msgid "Polarity" -msgstr "Polaritate" - -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:121 -#: AppTools/ToolQRCode.py:185 -msgid "" -"Choose the polarity of the QRCode.\n" -"It can be drawn in a negative way (squares are clear)\n" -"or in a positive way (squares are opaque)." -msgstr "" -"Alegeți polaritatea codului QRC.\n" -"Poate fi desenat într-un mod negativ (pătratele sunt clare)\n" -"sau într-un mod pozitiv (pătratele sunt opace)." - -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:125 -#: AppTools/ToolFilm.py:279 AppTools/ToolQRCode.py:189 -msgid "Negative" -msgstr "Negativ" - -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:126 -#: AppTools/ToolFilm.py:278 AppTools/ToolQRCode.py:190 -msgid "Positive" -msgstr "Pozitiv" - -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:128 -#: AppTools/ToolQRCode.py:192 -msgid "" -"Choose the type of QRCode to be created.\n" -"If added on a Silkscreen Gerber file the QRCode may\n" -"be added as positive. If it is added to a Copper Gerber\n" -"file then perhaps the QRCode can be added as negative." -msgstr "" -"Alegeți tipul de cod QRC care urmează să fie creat.\n" -"Dacă este adăugat într-un fișier Silkscreen Gerber, codul QR poate\n" -"să fie adăugat ca fiind pozitiv. Dacă este adăugat la un Gerber de cupru\n" -"atunci codul QR poate fi adăugat ca negativ." - -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:139 -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:145 -#: AppTools/ToolQRCode.py:203 AppTools/ToolQRCode.py:209 -msgid "" -"The bounding box, meaning the empty space that surrounds\n" -"the QRCode geometry, can have a rounded or a square shape." -msgstr "" -"Caseta de încadrare, adică spațiul gol care înconjoară\n" -"geometria QRCode, poate avea o formă rotunjită sau pătrată." - -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:142 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:239 -#: AppTools/ToolQRCode.py:206 AppTools/ToolTransform.py:383 -msgid "Rounded" -msgstr "Rotunjit" - -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:152 -#: AppTools/ToolQRCode.py:237 -msgid "Fill Color" -msgstr "Culoare Continut" - -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:154 -#: AppTools/ToolQRCode.py:239 -msgid "Set the QRCode fill color (squares color)." -msgstr "Setați culoarea QRCode de umplere (culoarea elementelor)." - -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:162 -#: AppTools/ToolQRCode.py:261 -msgid "Back Color" -msgstr "Culoare de fundal" - -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:164 -#: AppTools/ToolQRCode.py:263 -msgid "Set the QRCode background color." -msgstr "Setați culoarea de fundal QRCode." - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:27 -msgid "Check Rules Tool Options" -msgstr "Opțiuni Unealta Verificare Reguli" - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:32 -msgid "" -"A tool to check if Gerber files are within a set\n" -"of Manufacturing Rules." -msgstr "" -"Un instrument pentru a verifica dacă fișierele Gerber se află într-un set\n" -"de Norme de fabricație." - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:42 -#: AppTools/ToolRulesCheck.py:265 AppTools/ToolRulesCheck.py:929 -msgid "Trace Size" -msgstr "Dim. traseu" - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:44 -#: AppTools/ToolRulesCheck.py:267 -msgid "This checks if the minimum size for traces is met." -msgstr "Aceasta verifică dacă dimensiunea minimă a traseelor este respectată." - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:54 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:74 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:94 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:114 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:134 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:154 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:174 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:194 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:216 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:236 -#: AppTools/ToolRulesCheck.py:277 AppTools/ToolRulesCheck.py:299 -#: AppTools/ToolRulesCheck.py:322 AppTools/ToolRulesCheck.py:345 -#: AppTools/ToolRulesCheck.py:368 AppTools/ToolRulesCheck.py:391 -#: AppTools/ToolRulesCheck.py:414 AppTools/ToolRulesCheck.py:437 -#: AppTools/ToolRulesCheck.py:462 AppTools/ToolRulesCheck.py:485 -msgid "Min value" -msgstr "Val. min" - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:56 -#: AppTools/ToolRulesCheck.py:279 -msgid "Minimum acceptable trace size." -msgstr "Dimensiunea minimă acceptabilă a traseelor." - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:61 -#: AppTools/ToolRulesCheck.py:286 AppTools/ToolRulesCheck.py:1157 -#: AppTools/ToolRulesCheck.py:1187 -msgid "Copper to Copper clearance" -msgstr "Distanta de la cupru până la cupru" - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:63 -#: AppTools/ToolRulesCheck.py:288 -msgid "" -"This checks if the minimum clearance between copper\n" -"features is met." -msgstr "" -"Aceasta verifică dacă distanța minimă dintre traseele cupru\n" -"este îndeplinita." - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:76 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:96 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:116 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:136 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:156 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:176 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:238 -#: AppTools/ToolRulesCheck.py:301 AppTools/ToolRulesCheck.py:324 -#: AppTools/ToolRulesCheck.py:347 AppTools/ToolRulesCheck.py:370 -#: AppTools/ToolRulesCheck.py:393 AppTools/ToolRulesCheck.py:416 -#: AppTools/ToolRulesCheck.py:464 -msgid "Minimum acceptable clearance value." -msgstr "Valoarea minimă acceptabilă a distantei." - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:81 -#: AppTools/ToolRulesCheck.py:309 AppTools/ToolRulesCheck.py:1217 -#: AppTools/ToolRulesCheck.py:1223 AppTools/ToolRulesCheck.py:1236 -#: AppTools/ToolRulesCheck.py:1243 -msgid "Copper to Outline clearance" -msgstr "Distanta de la Cupru până la contur" - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:83 -#: AppTools/ToolRulesCheck.py:311 -msgid "" -"This checks if the minimum clearance between copper\n" -"features and the outline is met." -msgstr "" -"Aceasta verifică dacă distanța minimă dintre\n" -"traseele de cupru și conturul este îndeplinit." - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:101 -#: AppTools/ToolRulesCheck.py:332 -msgid "Silk to Silk Clearance" -msgstr "Distanta Silk până la Silk Clearance" - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:103 -#: AppTools/ToolRulesCheck.py:334 -msgid "" -"This checks if the minimum clearance between silkscreen\n" -"features and silkscreen features is met." -msgstr "" -"Acest lucru verifică dacă distanța minimă între silk (anotari)\n" -"sunt îndeplinite." - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:121 -#: AppTools/ToolRulesCheck.py:355 AppTools/ToolRulesCheck.py:1326 -#: AppTools/ToolRulesCheck.py:1332 AppTools/ToolRulesCheck.py:1350 -msgid "Silk to Solder Mask Clearance" -msgstr "Distanta intre Silk (anotari) si Solder mask (masca fludor)" - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:123 -#: AppTools/ToolRulesCheck.py:357 -msgid "" -"This checks if the minimum clearance between silkscreen\n" -"features and soldermask features is met." -msgstr "" -"Acest lucru verifică dacă distanța minimă între Silk (anotari)\n" -"și Solder Mask (masca de fludor) este îndeplinită." - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:141 -#: AppTools/ToolRulesCheck.py:378 AppTools/ToolRulesCheck.py:1380 -#: AppTools/ToolRulesCheck.py:1386 AppTools/ToolRulesCheck.py:1400 -#: AppTools/ToolRulesCheck.py:1407 -msgid "Silk to Outline Clearance" -msgstr "Distanta Silk (anotari) si Contur" - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:143 -#: AppTools/ToolRulesCheck.py:380 -msgid "" -"This checks if the minimum clearance between silk\n" -"features and the outline is met." -msgstr "" -"Acest lucru verifică dacă distanța minimă dintre Silk (anotari)\n" -"și Contur este îndeplinită." - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:161 -#: AppTools/ToolRulesCheck.py:401 AppTools/ToolRulesCheck.py:1418 -#: AppTools/ToolRulesCheck.py:1445 -msgid "Minimum Solder Mask Sliver" -msgstr "" -"Dim. minima a separatorului din Solder Mask\n" -"(masca de fludor)" - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:163 -#: AppTools/ToolRulesCheck.py:403 -msgid "" -"This checks if the minimum clearance between soldermask\n" -"features and soldermask features is met." -msgstr "" -"Acest lucru verifică dacă distanta minimă între\n" -"elementele soldermask (masca de fludor) este îndeplinită." - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:181 -#: AppTools/ToolRulesCheck.py:424 AppTools/ToolRulesCheck.py:1483 -#: AppTools/ToolRulesCheck.py:1489 AppTools/ToolRulesCheck.py:1505 -#: AppTools/ToolRulesCheck.py:1512 -msgid "Minimum Annular Ring" -msgstr "Inel anular minim" - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:183 -#: AppTools/ToolRulesCheck.py:426 -msgid "" -"This checks if the minimum copper ring left by drilling\n" -"a hole into a pad is met." -msgstr "" -"Acest lucru verifică dacă inelul de cupru minim rămas prin găurire\n" -"unde se întâlnește o gaură cu pad-ul depășește valoarea minimă." - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:196 -#: AppTools/ToolRulesCheck.py:439 -msgid "Minimum acceptable ring value." -msgstr "Valoarea minimă acceptabilă a inelului." - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:203 -#: AppTools/ToolRulesCheck.py:449 AppTools/ToolRulesCheck.py:873 -msgid "Hole to Hole Clearance" -msgstr "Distanta de la Gaură la Gaură" - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:205 -#: AppTools/ToolRulesCheck.py:451 -msgid "" -"This checks if the minimum clearance between a drill hole\n" -"and another drill hole is met." -msgstr "" -"Acest lucru verifică dacă distanța minimă dintre o gaură\n" -"și o altă gaură este îndeplinită." - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:218 -#: AppTools/ToolRulesCheck.py:487 -msgid "Minimum acceptable drill size." -msgstr "Dimensiunea minimă acceptabilă a gaurii." - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:223 -#: AppTools/ToolRulesCheck.py:472 AppTools/ToolRulesCheck.py:847 -msgid "Hole Size" -msgstr "Dimens. gaura" - -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:225 -#: AppTools/ToolRulesCheck.py:474 -msgid "" -"This checks if the drill holes\n" -"sizes are above the threshold." -msgstr "" -"Acest lucru verifică dacă\n" -"dimensiunile găurilor sunt peste prag." - -#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:27 -msgid "2Sided Tool Options" -msgstr "Opțiuni Unealta 2Fețe" - -#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:33 -msgid "" -"A tool to help in creating a double sided\n" -"PCB using alignment holes." -msgstr "" -"O unealtă care ajuta in crearea de PCB-uri cu 2 fețe\n" -"folosind găuri de aliniere." - -#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:47 -msgid "Drill dia" -msgstr "Dia gaură" - -#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:49 -#: AppTools/ToolDblSided.py:363 AppTools/ToolDblSided.py:368 -msgid "Diameter of the drill for the alignment holes." -msgstr "Diametrul găurii pentru găurile de aliniere." - -#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:56 -#: AppTools/ToolDblSided.py:377 -msgid "Align Axis" -msgstr "Aliniați Axa" - -#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:58 -#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:71 -#: AppTools/ToolDblSided.py:165 AppTools/ToolDblSided.py:379 -msgid "Mirror vertically (X) or horizontally (Y)." -msgstr "Oglindește vertical (X) sau orizontal (Y)." - -#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:69 -msgid "Mirror Axis:" -msgstr "Axe oglindire:" - -#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:80 -#: AppTools/ToolDblSided.py:181 -msgid "Point" -msgstr "Punct" - -#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:81 -#: AppTools/ToolDblSided.py:182 -msgid "Box" -msgstr "Forma" - -#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:82 -msgid "Axis Ref" -msgstr "Axa de Ref" - -#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:84 -msgid "" -"The axis should pass through a point or cut\n" -" a specified box (in a FlatCAM object) through \n" -"the center." -msgstr "" -"Axa de referinţă ar trebui să treacă printr-un punct ori să strabata\n" -" o forma (obiect FlatCAM) prin mijloc." - -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:27 -msgid "Calculators Tool Options" -msgstr "Opțiuni Unealta Calculatoare" - -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:31 -#: AppTools/ToolCalculators.py:25 -msgid "V-Shape Tool Calculator" -msgstr "Calculator Unealta V-Shape" - -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:33 -msgid "" -"Calculate the tool diameter for a given V-shape tool,\n" -"having the tip diameter, tip angle and\n" -"depth-of-cut as parameters." -msgstr "" -"Calculează diametrul pentru o unealtă V-Shape data,\n" -"avand diametrul vârfului și unghiul la vârf cat și\n" -"adâncimea de tăiere, ca parametri." - -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:50 -#: AppTools/ToolCalculators.py:94 -msgid "Tip Diameter" -msgstr "Dia vârf" - -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:52 -#: AppTools/ToolCalculators.py:102 -msgid "" -"This is the tool tip diameter.\n" -"It is specified by manufacturer." -msgstr "" -"Acesta este diametrul la vârf al uneltei.\n" -"Este specificat de producator." - -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:64 -#: AppTools/ToolCalculators.py:105 -msgid "Tip Angle" -msgstr "V-Unghi" - -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:66 -msgid "" -"This is the angle on the tip of the tool.\n" -"It is specified by manufacturer." -msgstr "" -"Acesta este unghiul la vârf al uneltei.\n" -"Este specificat de producator." - -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:80 -msgid "" -"This is depth to cut into material.\n" -"In the CNCJob object it is the CutZ parameter." -msgstr "" -"Aceasta este adâncimea la care se taie in material.\n" -"In obiectul CNCJob este parametrul >Z tăiere<." - -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:87 -#: AppTools/ToolCalculators.py:27 -msgid "ElectroPlating Calculator" -msgstr "Calculator ElectroPlacare" - -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:89 -#: AppTools/ToolCalculators.py:158 -msgid "" -"This calculator is useful for those who plate the via/pad/drill holes,\n" -"using a method like graphite ink or calcium hypophosphite ink or palladium " -"chloride." -msgstr "" -"Acest calculator este util pentru aceia care plachează găuri/vias\n" -"folosind o metoda cum ar fi:\n" -"- cerneala grafitate (carbon)\n" -"- clorura paladiu\n" -"- hipofosfit de calciu." - -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:100 -#: AppTools/ToolCalculators.py:167 -msgid "Board Length" -msgstr "Lung. plăcii" - -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:102 -#: AppTools/ToolCalculators.py:173 -msgid "This is the board length. In centimeters." -msgstr "" -"Aceasta este lungimea PCB-ului.\n" -"In centimetri." - -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:112 -#: AppTools/ToolCalculators.py:175 -msgid "Board Width" -msgstr "Lăt. plăcii" - -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:114 -#: AppTools/ToolCalculators.py:181 -msgid "This is the board width.In centimeters." -msgstr "" -"Aceasta este lăţimea PCB-ului.\n" -"In centimetri." - -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:119 -#: AppTools/ToolCalculators.py:183 -msgid "Current Density" -msgstr "Densitate I" - -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:125 -#: AppTools/ToolCalculators.py:190 -msgid "" -"Current density to pass through the board. \n" -"In Amps per Square Feet ASF." -msgstr "" -"Densitatea de curent care să treaca prin placa.\n" -"In ASF (amperi pe picior la patrat)." - -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:131 -#: AppTools/ToolCalculators.py:193 -msgid "Copper Growth" -msgstr "Grosime Cu" - -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:137 -#: AppTools/ToolCalculators.py:200 -msgid "" -"How thick the copper growth is intended to be.\n" -"In microns." -msgstr "" -"Cat de gros se dorește să fie stratul de cupru depus.\n" -"In microni." - -#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:27 -msgid "Corner Markers Options" -msgstr "Opțiuni Marcaje Colțuri" - -#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:44 -#: AppTools/ToolCorners.py:124 -msgid "The thickness of the line that makes the corner marker." -msgstr "Grosimea liniei care face marcajul de colț." - -#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:58 -#: AppTools/ToolCorners.py:138 -msgid "The length of the line that makes the corner marker." -msgstr "Lungimea liniei care face marcajul de colț." - -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:28 -msgid "Cutout Tool Options" -msgstr "Opțiuni Unealta Decupare" - -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:34 -msgid "" -"Create toolpaths to cut around\n" -"the PCB and separate it from\n" -"the original board." -msgstr "" -"Crează taieturi de jur inprejurul PCB-ului,\n" -"lasand punţi pentru a separa PCB-ul de \n" -"placa din care a fost taiat." - -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:43 -#: AppTools/ToolCalculators.py:123 AppTools/ToolCutOut.py:129 -msgid "Tool Diameter" -msgstr "Dia unealtă" - -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:45 -#: AppTools/ToolCutOut.py:131 -msgid "" -"Diameter of the tool used to cutout\n" -"the PCB shape out of the surrounding material." -msgstr "" -"Diametrul uneltei folosita pt decuparea\n" -"PCB-ului din materialului inconjurator." - -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:100 -msgid "Object kind" -msgstr "Tipul de obiect" - -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:102 -#: AppTools/ToolCutOut.py:77 -msgid "" -"Choice of what kind the object we want to cutout is.
    - Single: " -"contain a single PCB Gerber outline object.
    - Panel: a panel PCB " -"Gerber object, which is made\n" -"out of many individual PCB outlines." -msgstr "" -"Genul de obiect pe care vrem să il decupăm..
    - Unic: contine un " -"singur contur PCB in obiectul Gerber .
    - Panel: un obiect Gerber " -"tip panel, care este făcut\n" -"din mai multe contururi PCB." - -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:109 -#: AppTools/ToolCutOut.py:83 -msgid "Single" -msgstr "Unic" - -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:110 -#: AppTools/ToolCutOut.py:84 -msgid "Panel" -msgstr "Panel" - -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:117 -#: AppTools/ToolCutOut.py:192 -msgid "" -"Margin over bounds. A positive value here\n" -"will make the cutout of the PCB further from\n" -"the actual PCB border" -msgstr "" -"Marginea (zona de siguranţă). O val. pozitivă\n" -"va face decuparea distanțat cu aceasta valoare \n" -"fata de PCB-ul efectiv" - -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:130 -#: AppTools/ToolCutOut.py:203 -msgid "Gap size" -msgstr "Dim. punte" - -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:132 -#: AppTools/ToolCutOut.py:205 -msgid "" -"The size of the bridge gaps in the cutout\n" -"used to keep the board connected to\n" -"the surrounding material (the one \n" -"from which the PCB is cutout)." -msgstr "" -"Dimenisunea punţilor in decupaj care servesc\n" -"in a mentine ataşat PCB-ul la materialul de unde \n" -"este decupat." - -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:146 -#: AppTools/ToolCutOut.py:245 -msgid "Gaps" -msgstr "Punţi" - -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:148 -msgid "" -"Number of gaps used for the cutout.\n" -"There can be maximum 8 bridges/gaps.\n" -"The choices are:\n" -"- None - no gaps\n" -"- lr - left + right\n" -"- tb - top + bottom\n" -"- 4 - left + right +top + bottom\n" -"- 2lr - 2*left + 2*right\n" -"- 2tb - 2*top + 2*bottom\n" -"- 8 - 2*left + 2*right +2*top + 2*bottom" -msgstr "" -"Numărul de punţi folosite in decupare.\n" -"Pot fi un număr maxim de 8 punţi aranjate in felul\n" -"următor:\n" -"- Nici unul - nu există spatii\n" -"- lr = stânga -dreapta\n" -"- tb = sus - jos\n" -"- 4 = stânga -dreapta - sus - jos\n" -"- 2lr = 2* stânga - 2* dreapta\n" -"- 2tb = 2* sus - 2* jos\n" -"- 8 = 2* stânga - 2* dreapta - 2* sus - 2* jos" - -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:170 -#: AppTools/ToolCutOut.py:222 -msgid "Convex Shape" -msgstr "Forma convexă" - -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:172 -#: AppTools/ToolCutOut.py:225 -msgid "" -"Create a convex shape surrounding the entire PCB.\n" -"Used only if the source object type is Gerber." -msgstr "" -"Generează un obiect tip Geometrie care va inconjura\n" -"tot PCB-ul. Forma sa este convexa.\n" -"Se foloseste doar daca obiectul sursă este de tip Gerber." - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:27 -msgid "Film Tool Options" -msgstr "Opțiuni Unealta Film" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:33 -msgid "" -"Create a PCB film from a Gerber or Geometry object.\n" -"The file is saved in SVG format." -msgstr "" -"Crează un film PCB dintr-un obiect Gerber sau tip Geometrie.\n" -"Fişierul este salvat in format SVG." - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:43 -msgid "Film Type" -msgstr "Tip film" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:45 AppTools/ToolFilm.py:283 -msgid "" -"Generate a Positive black film or a Negative film.\n" -"Positive means that it will print the features\n" -"with black on a white canvas.\n" -"Negative means that it will print the features\n" -"with white on a black canvas.\n" -"The Film format is SVG." -msgstr "" -"Generează un film negru Pozitiv sau un film Negativ.\n" -"Pozitiv = traseele vor fi negre pe un fundal alb.\n" -"Negativ = traseele vor fi albe pe un fundal negru.\n" -"Formatul fişierului pt filmul salvat este SVG." - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:56 -msgid "Film Color" -msgstr "Film Color" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:58 -msgid "Set the film color when positive film is selected." -msgstr "Setați culoarea filmului atunci când este selectat filmul pozitiv." - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:71 AppTools/ToolFilm.py:299 -msgid "Border" -msgstr "Bordură" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:73 AppTools/ToolFilm.py:301 -msgid "" -"Specify a border around the object.\n" -"Only for negative film.\n" -"It helps if we use as a Box Object the same \n" -"object as in Film Object. It will create a thick\n" -"black bar around the actual print allowing for a\n" -"better delimitation of the outline features which are of\n" -"white color like the rest and which may confound with the\n" -"surroundings if not for this border." -msgstr "" -"Specifică o bordură de jur imprejurul obiectului.\n" -"Doar pt filmele negative.\n" -"Ajută dacă folosim in Obiect Forma aceluiasi obiect ca in Obiect Film.\n" -"Va crea o bara solidă neagră in jurul printului efectiv permitand o\n" -"delimitare exactă." - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:90 AppTools/ToolFilm.py:266 -msgid "Scale Stroke" -msgstr "Scalează" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:92 AppTools/ToolFilm.py:268 -msgid "" -"Scale the line stroke thickness of each feature in the SVG file.\n" -"It means that the line that envelope each SVG feature will be thicker or " -"thinner,\n" -"therefore the fine features may be more affected by this parameter." -msgstr "" -"Scalează grosimea conturului fiecarui element din fişierul SVG.\n" -"Elementele mai mici vor fi afectate mai mult." - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:99 AppTools/ToolFilm.py:124 -msgid "Film Adjustments" -msgstr "Reglarea filmelor" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:101 -#: AppTools/ToolFilm.py:126 -msgid "" -"Sometime the printers will distort the print shape, especially the Laser " -"types.\n" -"This section provide the tools to compensate for the print distortions." -msgstr "" -"Unori imprimantele vor denatura forma de imprimare, în special tipurile " -"Laser.\n" -"Această secțiune oferă instrumentele pentru a compensa distorsiunile de " -"tipărire." - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:108 -#: AppTools/ToolFilm.py:133 -msgid "Scale Film geometry" -msgstr "Scalați geo film" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:110 -#: AppTools/ToolFilm.py:135 -msgid "" -"A value greater than 1 will stretch the film\n" -"while a value less than 1 will jolt it." -msgstr "" -"O valoare mai mare de 1 va întinde filmul\n" -"în timp ce o valoare mai mică de 1 il va compacta." - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:120 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:103 -#: AppTools/ToolFilm.py:145 AppTools/ToolTransform.py:148 -msgid "X factor" -msgstr "Factor X" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:129 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:116 -#: AppTools/ToolFilm.py:154 AppTools/ToolTransform.py:168 -msgid "Y factor" -msgstr "Factor Y" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:139 -#: AppTools/ToolFilm.py:172 -msgid "Skew Film geometry" -msgstr "Deformeaza Geo Film" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:141 -#: AppTools/ToolFilm.py:174 -msgid "" -"Positive values will skew to the right\n" -"while negative values will skew to the left." -msgstr "" -"Valorile pozitive vor înclina spre dreapta\n" -"în timp ce valorile negative vor înclina spre stânga." - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:151 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:72 -#: AppTools/ToolFilm.py:184 AppTools/ToolTransform.py:97 -msgid "X angle" -msgstr "Unghi X" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:160 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:86 -#: AppTools/ToolFilm.py:193 AppTools/ToolTransform.py:118 -msgid "Y angle" -msgstr "Unghi Y" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:171 -#: AppTools/ToolFilm.py:204 -msgid "" -"The reference point to be used as origin for the skew.\n" -"It can be one of the four points of the geometry bounding box." -msgstr "" -"Punctul de referință care trebuie utilizat ca origine pentru Deformare.\n" -"Poate fi unul dintre cele patru puncte ale căsuței de delimitare a " -"geometriei." - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:174 -#: AppTools/ToolCorners.py:80 AppTools/ToolFiducials.py:83 -#: AppTools/ToolFilm.py:207 -msgid "Bottom Left" -msgstr "Stânga jos" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:175 -#: AppTools/ToolCorners.py:88 AppTools/ToolFilm.py:208 -msgid "Top Left" -msgstr "Stânga sus" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:176 -#: AppTools/ToolCorners.py:84 AppTools/ToolFilm.py:209 -msgid "Bottom Right" -msgstr "Dreapta-jos" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:177 -#: AppTools/ToolFilm.py:210 -msgid "Top right" -msgstr "Dreapta-sus" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:185 -#: AppTools/ToolFilm.py:227 -msgid "Mirror Film geometry" -msgstr "Oglindeste Geo Film" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:187 -#: AppTools/ToolFilm.py:229 -msgid "Mirror the film geometry on the selected axis or on both." -msgstr "Oglindeste geometria filmului pe axa selectată sau pe ambele." - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:201 -#: AppTools/ToolFilm.py:243 -msgid "Mirror axis" -msgstr "Axe oglindire" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:211 -#: AppTools/ToolFilm.py:388 -msgid "SVG" -msgstr "SVG" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:212 -#: AppTools/ToolFilm.py:389 -msgid "PNG" -msgstr "PNG" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:213 -#: AppTools/ToolFilm.py:390 -msgid "PDF" -msgstr "PDF" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:216 -#: AppTools/ToolFilm.py:281 AppTools/ToolFilm.py:393 -msgid "Film Type:" -msgstr "Tip film:" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:218 -#: AppTools/ToolFilm.py:395 -msgid "" -"The file type of the saved film. Can be:\n" -"- 'SVG' -> open-source vectorial format\n" -"- 'PNG' -> raster image\n" -"- 'PDF' -> portable document format" -msgstr "" -"Tipul de fișier al filmului salvat. Poate fi:\n" -"- 'SVG' -> format vectorial open-source\n" -"- „PNG” -> imagine raster\n" -"- „PDF” -> format document portabil" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:227 -#: AppTools/ToolFilm.py:404 -msgid "Page Orientation" -msgstr "Orientarea paginii" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:240 -#: AppTools/ToolFilm.py:417 -msgid "Page Size" -msgstr "Mărimea paginii" - -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:241 -#: AppTools/ToolFilm.py:418 -msgid "A selection of standard ISO 216 page sizes." -msgstr "O selecție de dimensiuni standard de pagină conform ISO 216." - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:26 -msgid "Isolation Tool Options" -msgstr "Opțiuni Unealta Izolare" - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:48 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:49 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:57 -msgid "Comma separated values" -msgstr "Valori separate cu virgulă" - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:54 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:156 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:142 -#: AppTools/ToolIsolation.py:166 AppTools/ToolNCC.py:174 -#: AppTools/ToolPaint.py:157 -msgid "Tool order" -msgstr "Ordine unelte" - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:55 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:157 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:167 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:143 -#: AppTools/ToolIsolation.py:167 AppTools/ToolNCC.py:175 -#: AppTools/ToolNCC.py:185 AppTools/ToolPaint.py:158 AppTools/ToolPaint.py:168 -msgid "" -"This set the way that the tools in the tools table are used.\n" -"'No' --> means that the used order is the one in the tool table\n" -"'Forward' --> means that the tools will be ordered from small to big\n" -"'Reverse' --> means that the tools will ordered from big to small\n" -"\n" -"WARNING: using rest machining will automatically set the order\n" -"in reverse and disable this control." -msgstr "" -"Aceasta stabilește modul în care sunt utilizate uneltele din tabelul de " -"unelte.\n" -"„Nu” -> înseamnă că ordinea utilizată este cea din tabelul de unelte\n" -"„Înainte” -> înseamnă că uneltele vor fi ordonate de la mic la mare\n" -"'Înapoi' -> înseamnă pe care uneltele vor fi ordonate de la mari la mici\n" -"\n" -"AVERTIZARE: folosirea prelucrării 'resturi' va seta automat ordonarea\n" -"în sens invers și va dezactiva acest control." - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:63 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:165 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:151 -#: AppTools/ToolIsolation.py:175 AppTools/ToolNCC.py:183 -#: AppTools/ToolPaint.py:166 -msgid "Forward" -msgstr "Înainte" - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:64 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:166 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:152 -#: AppTools/ToolIsolation.py:176 AppTools/ToolNCC.py:184 -#: AppTools/ToolPaint.py:167 -msgid "Reverse" -msgstr "Înapoi" - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:72 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:80 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:55 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:63 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:64 -#: AppTools/ToolIsolation.py:201 AppTools/ToolIsolation.py:209 -#: AppTools/ToolNCC.py:215 AppTools/ToolNCC.py:223 AppTools/ToolPaint.py:197 -#: AppTools/ToolPaint.py:205 -msgid "" -"Default tool type:\n" -"- 'V-shape'\n" -"- Circular" -msgstr "" -"Tipul de unealtă default:\n" -"- 'Forma-V'\n" -"- Circular" - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:77 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:60 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:69 -#: AppTools/ToolIsolation.py:206 AppTools/ToolNCC.py:220 -#: AppTools/ToolPaint.py:202 -msgid "V-shape" -msgstr "Forma-V" - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:103 -msgid "" -"The tip angle for V-Shape Tool.\n" -"In degrees." -msgstr "" -"Unghiul la vârf pentru unealta tip V-Shape. \n" -"In grade." - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:117 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:126 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:100 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:109 -#: AppTools/ToolIsolation.py:248 AppTools/ToolNCC.py:262 -#: AppTools/ToolNCC.py:271 AppTools/ToolPaint.py:244 AppTools/ToolPaint.py:253 -msgid "" -"Depth of cut into material. Negative value.\n" -"In FlatCAM units." -msgstr "" -"Adancimea de tăiere in material. Valoare negative.\n" -"In unitătile FlatCAM." - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:136 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:119 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:125 -#: AppTools/ToolIsolation.py:262 AppTools/ToolNCC.py:280 -#: AppTools/ToolPaint.py:262 -msgid "" -"Diameter for the new tool to add in the Tool Table.\n" -"If the tool is V-shape type then this value is automatically\n" -"calculated from the other parameters." -msgstr "" -"Diametru pentru Unealta nouă de adăugat în Tabelul Uneltelor.\n" -"Dacă instrumentul este în formă de V, atunci această valoare este automat\n" -"calculată din ceilalți parametri." - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:243 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:288 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:244 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:245 -#: AppTools/ToolIsolation.py:432 AppTools/ToolNCC.py:512 -#: AppTools/ToolPaint.py:441 -msgid "Rest" -msgstr "Resturi" - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:246 -#: AppTools/ToolIsolation.py:435 -msgid "" -"If checked, use 'rest machining'.\n" -"Basically it will isolate outside PCB features,\n" -"using the biggest tool and continue with the next tools,\n" -"from bigger to smaller, to isolate the copper features that\n" -"could not be cleared by previous tool, until there is\n" -"no more copper features to isolate or there are no more tools.\n" -"If not checked, use the standard algorithm." -msgstr "" -"Daca este bifat foloseşte strategia de izolare tip 'rest'.\n" -"Izolarea va incepe cu unealta cu diametrul cel mai mare\n" -"continuand ulterior cu cele cu diametru mai mic pana numai sunt unelte\n" -"sau s-a terminat procesul.\n" -"Doar uneltele care efectiv au creat geometrie vor fi prezente in obiectul\n" -"final. Aceasta deaorece unele unelte nu vor putea genera geometrie.\n" -"Daca nu este bifat, foloseşte algoritmul standard." - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:258 -#: AppTools/ToolIsolation.py:447 -msgid "Combine" -msgstr "Combina" - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:260 -#: AppTools/ToolIsolation.py:449 -msgid "Combine all passes into one object" -msgstr "Combina toate trecerile intr-un singur obiect" - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:267 -#: AppTools/ToolIsolation.py:456 -msgid "Except" -msgstr "Exceptie" - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:268 -#: AppTools/ToolIsolation.py:457 -msgid "" -"When the isolation geometry is generated,\n" -"by checking this, the area of the object below\n" -"will be subtracted from the isolation geometry." -msgstr "" -"Cand un obiect de geometrie tip Izolare este creat,\n" -"prin bifarea aici, aria obiectului de mai jos va fi\n" -"scăzută din geometria de tip Izolare." - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:277 -#: AppTools/ToolIsolation.py:496 -msgid "" -"Isolation scope. Choose what to isolate:\n" -"- 'All' -> Isolate all the polygons in the object\n" -"- 'Area Selection' -> Isolate polygons within a selection area.\n" -"- 'Polygon Selection' -> Isolate a selection of polygons.\n" -"- 'Reference Object' - will process the area specified by another object." -msgstr "" -"Domeniul de izolare. Alegeți ce să izolați:\n" -"- 'Toate' -> Izolați toate poligonii din obiect\n" -"- „Selecție zonă” -> Izolați poligoanele într-o zonă de selecție.\n" -"- „Selecție poligon” -> Izolați o selecție de poligoane.\n" -"- „Obiect de referință” - va procesa zona specificată de un alt obiect." - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:285 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280 -#: AppTools/ToolIsolation.py:504 AppTools/ToolIsolation.py:1308 -#: AppTools/ToolIsolation.py:1690 AppTools/ToolPaint.py:485 -#: AppTools/ToolPaint.py:941 AppTools/ToolPaint.py:1451 -#: tclCommands/TclCommandPaint.py:164 -msgid "Polygon Selection" -msgstr "Selecție Poligon" - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:310 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:339 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:303 -msgid "Normal" -msgstr "Normal" - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:311 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:340 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:304 -msgid "Progressive" -msgstr "Progresiv" - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:312 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:341 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:305 -#: AppObjects/AppObject.py:349 AppObjects/FlatCAMObj.py:251 -#: AppObjects/FlatCAMObj.py:282 AppObjects/FlatCAMObj.py:298 -#: AppObjects/FlatCAMObj.py:378 AppTools/ToolCopperThieving.py:1491 -#: AppTools/ToolCorners.py:411 AppTools/ToolFiducials.py:813 -#: AppTools/ToolMove.py:229 AppTools/ToolQRCode.py:737 App_Main.py:4397 -msgid "Plotting" -msgstr "Se afișeaz" - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:314 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:343 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:307 -msgid "" -"- 'Normal' - normal plotting, done at the end of the job\n" -"- 'Progressive' - each shape is plotted after it is generated" -msgstr "" -"- „Normal” - afișare normală, realizată la sfârșitul lucrării\n" -"- „Progresiv” - fiecare formă este afișată după ce este generată" - -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:27 -msgid "NCC Tool Options" -msgstr "Opțiuni Unealta NCC" - -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:33 -msgid "" -"Create a Geometry object with\n" -"toolpaths to cut all non-copper regions." -msgstr "" -"Crează un obiect tip Geometrie cu traiectorii unealtă\n" -"care să curete de cupru toate zonele unde se dorește să nu \n" -"fie cupru." - -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:266 -msgid "Offset value" -msgstr "Valoare Ofset" - -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:268 -msgid "" -"If used, it will add an offset to the copper features.\n" -"The copper clearing will finish to a distance\n" -"from the copper features.\n" -"The value can be between 0.0 and 9999.9 FlatCAM units." -msgstr "" -"Dacă este folosit, va adăuga un offset la traseele de cupru.\n" -"Curătarea de cupru se va termina la o anume distanță\n" -"de traseele de cupru.\n" -"Valoarea poate fi cuprinsă între 0 și 9999.9 unități FlatCAM." - -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:290 AppTools/ToolNCC.py:516 -msgid "" -"If checked, use 'rest machining'.\n" -"Basically it will clear copper outside PCB features,\n" -"using the biggest tool and continue with the next tools,\n" -"from bigger to smaller, to clear areas of copper that\n" -"could not be cleared by previous tool, until there is\n" -"no more copper to clear or there are no more tools.\n" -"If not checked, use the standard algorithm." -msgstr "" -"Daca este bifat foloseşte strategia de curățare tip 'rest'.\n" -"Curățarea de cupru va incepe cu unealta cu diametrul cel mai mare\n" -"continuand ulterior cu cele cu dia mai mic pana numai sunt unelte\n" -"sau s-a terminat procesul.\n" -"Doar uneltele care efectiv au creat geometrie vor fi prezente in obiectul\n" -"final. Aceasta deaorece unele unelte nu vor putea genera geometrie.\n" -"Daca nu este bifat, foloseşte algoritmul standard." - -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:313 AppTools/ToolNCC.py:541 -msgid "" -"Selection of area to be processed.\n" -"- 'Itself' - the processing extent is based on the object that is " -"processed.\n" -" - 'Area Selection' - left mouse click to start selection of the area to be " -"processed.\n" -"- 'Reference Object' - will process the area specified by another object." -msgstr "" -"Selectia suprafetei pt procesare.\n" -"- „Însuși” - suprafața de procesare se bazează pe obiectul care este " -"procesat.\n" -"- „Selecție zonă” - faceți clic stânga cu mouse-ul pentru a începe selecția " -"zonei care va fi procesată.\n" -"- „Obiect de referință” - va procesa în zona specificată de un alt obiect." - -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:27 -msgid "Paint Tool Options" -msgstr "Opțiuni Unealta Paint" - -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:33 -msgid "Parameters:" -msgstr "Parametri:" - -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:107 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:116 -msgid "" -"Depth of cut into material. Negative value.\n" -"In application units." -msgstr "" -"Adancimea de tăiere in material. Valoare negativă.\n" -"In unitătile aplicatiei." - -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:247 -#: AppTools/ToolPaint.py:444 -msgid "" -"If checked, use 'rest machining'.\n" -"Basically it will clear copper outside PCB features,\n" -"using the biggest tool and continue with the next tools,\n" -"from bigger to smaller, to clear areas of copper that\n" -"could not be cleared by previous tool, until there is\n" -"no more copper to clear or there are no more tools.\n" -"\n" -"If not checked, use the standard algorithm." -msgstr "" -"Daca este bifat, foloste 'rest machining'.\n" -"Mai exact, se va curăța cuprul din afara traseelor,\n" -"folosind mai intai unealta cu diametrul cel mai mare\n" -"apoi folosindu-se progresiv unelte cu diametrul tot\n" -"mai mic, din cele disponibile in tabela de unelte, pt a\n" -"curăța zonele care nu s-au putut curăța cu unealta\n" -"precedenta.\n" -"Daca nu este bifat, foloseşte algoritmul standard." - -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:260 -#: AppTools/ToolPaint.py:457 -msgid "" -"Selection of area to be processed.\n" -"- 'Polygon Selection' - left mouse click to add/remove polygons to be " -"processed.\n" -"- 'Area Selection' - left mouse click to start selection of the area to be " -"processed.\n" -"Keeping a modifier key pressed (CTRL or SHIFT) will allow to add multiple " -"areas.\n" -"- 'All Polygons' - the process will start after click.\n" -"- 'Reference Object' - will process the area specified by another object." -msgstr "" -"Selectia suprafetei care va fi procesată.\n" -"- „Selecție poligon” - faceți clic stânga pentru a adăuga / elimina " -"poligoane care urmează să fie procesate.\n" -"- „Selecție zonă” - faceți clic stânga cu mouse-ul pentru a începe selecția " -"zonei care va fi procesată.\n" -"Menținerea unei taste modificatoare apăsată (CTRL sau SHIFT) va permite " -"adăugarea mai multor zone.\n" -"- „Toate Poligoanele” - procesarea va începe după clic.\n" -"- „Obiect de referință” - se va procesa zona specificată de un alt obiect." - -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:27 -msgid "Panelize Tool Options" -msgstr "Opțiuni Unealta Panelizare" - -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:33 -msgid "" -"Create an object that contains an array of (x, y) elements,\n" -"each element is a copy of the source object spaced\n" -"at a X distance, Y distance of each other." -msgstr "" -"Crează un obiect care contine o arie de (linii, coloane) elemente,\n" -"unde fiecare element este o copie a obiectului sursa, separat la o\n" -"distanţă X, Y unul de celalalt." - -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:50 -#: AppTools/ToolPanelize.py:165 -msgid "Spacing cols" -msgstr "Sep. coloane" - -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:52 -#: AppTools/ToolPanelize.py:167 -msgid "" -"Spacing between columns of the desired panel.\n" -"In current units." -msgstr "" -"Spatiul de separare între coloane.\n" -"In unitatile curente." - -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:64 -#: AppTools/ToolPanelize.py:177 -msgid "Spacing rows" -msgstr "Sep. linii" - -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:66 -#: AppTools/ToolPanelize.py:179 -msgid "" -"Spacing between rows of the desired panel.\n" -"In current units." -msgstr "" -"Spatiul de separare între linii.\n" -"In unitatile curente." - -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:77 -#: AppTools/ToolPanelize.py:188 -msgid "Columns" -msgstr "Coloane" - -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:79 -#: AppTools/ToolPanelize.py:190 -msgid "Number of columns of the desired panel" -msgstr "Numărul de coloane ale panel-ului dorit" - -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:89 -#: AppTools/ToolPanelize.py:198 -msgid "Rows" -msgstr "Linii" - -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:91 -#: AppTools/ToolPanelize.py:200 -msgid "Number of rows of the desired panel" -msgstr "Numărul de linii ale panel-ului dorit" - -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:97 -#: AppTools/ToolAlignObjects.py:73 AppTools/ToolAlignObjects.py:109 -#: AppTools/ToolCalibration.py:196 AppTools/ToolCalibration.py:631 -#: AppTools/ToolCalibration.py:648 AppTools/ToolCalibration.py:807 -#: AppTools/ToolCalibration.py:815 AppTools/ToolCopperThieving.py:148 -#: AppTools/ToolCopperThieving.py:162 AppTools/ToolCopperThieving.py:608 -#: AppTools/ToolCutOut.py:91 AppTools/ToolDblSided.py:224 -#: AppTools/ToolFilm.py:68 AppTools/ToolFilm.py:91 AppTools/ToolImage.py:49 -#: AppTools/ToolImage.py:252 AppTools/ToolImage.py:273 -#: AppTools/ToolIsolation.py:465 AppTools/ToolIsolation.py:517 -#: AppTools/ToolIsolation.py:1281 AppTools/ToolNCC.py:96 -#: AppTools/ToolNCC.py:558 AppTools/ToolNCC.py:1318 AppTools/ToolPaint.py:501 -#: AppTools/ToolPaint.py:705 AppTools/ToolPanelize.py:116 -#: AppTools/ToolPanelize.py:210 AppTools/ToolPanelize.py:385 -#: AppTools/ToolPanelize.py:402 -msgid "Gerber" -msgstr "Gerber" - -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:98 -#: AppTools/ToolPanelize.py:211 -msgid "Geo" -msgstr "Geo" - -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:99 -#: AppTools/ToolPanelize.py:212 -msgid "Panel Type" -msgstr "Tip panel" - -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:101 -msgid "" -"Choose the type of object for the panel object:\n" -"- Gerber\n" -"- Geometry" -msgstr "" -"Alege tipul obiectului panel:\n" -"- Gerber\n" -"- Geometrie" - -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:110 -msgid "Constrain within" -msgstr "Constrange" - -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:112 -#: AppTools/ToolPanelize.py:224 -msgid "" -"Area define by DX and DY within to constrain the panel.\n" -"DX and DY values are in current units.\n" -"Regardless of how many columns and rows are desired,\n" -"the final panel will have as many columns and rows as\n" -"they fit completely within selected area." -msgstr "" -"Arie definita de Dx și Dy in care se constrange panel-ul.\n" -"Dx și Dy sunt valori in unitati curente.\n" -"Indiferent de cat de multe coloane și/sau linii sunt selectate mai sus\n" -"panelul final va contine numai acel număr de linii/coloane care se inscrie\n" -"complet in aria desemnata." - -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:125 -#: AppTools/ToolPanelize.py:236 -msgid "Width (DX)" -msgstr "Lătime (Dx)" - -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:127 -#: AppTools/ToolPanelize.py:238 -msgid "" -"The width (DX) within which the panel must fit.\n" -"In current units." -msgstr "" -"Lăţimea (Dx) in care panelul trebuie să se inscrie.\n" -"In unitati curente." - -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:138 -#: AppTools/ToolPanelize.py:247 -msgid "Height (DY)" -msgstr "Inăltime (Dy)" - -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:140 -#: AppTools/ToolPanelize.py:249 -msgid "" -"The height (DY)within which the panel must fit.\n" -"In current units." -msgstr "" -"Înălţimea (Dy) in care panelul trebuie să se inscrie.\n" -"In unitati curente." - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:27 -msgid "SolderPaste Tool Options" -msgstr "Opțiuni Unealta Pasta Fludor" - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:33 -msgid "" -"A tool to create GCode for dispensing\n" -"solder paste onto a PCB." -msgstr "" -"O unealtă care crează cod G-Code pentru dispensarea de pastă de fludor\n" -"pe padurile unui PCB." - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:54 -msgid "New Nozzle Dia" -msgstr "Dia nou" - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:56 -#: AppTools/ToolSolderPaste.py:112 -msgid "Diameter for the new Nozzle tool to add in the Tool Table" -msgstr "" -"Valoarea pentru diametrul unei noi unelte (nozzle) pentru adaugare in Tabela " -"de Unelte" - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:72 -#: AppTools/ToolSolderPaste.py:179 -msgid "Z Dispense Start" -msgstr "Z start dispensare" - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:74 -#: AppTools/ToolSolderPaste.py:181 -msgid "The height (Z) when solder paste dispensing starts." -msgstr "Înălţimea (Z) când incepe dispensarea de pastă de fludor." - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:85 -#: AppTools/ToolSolderPaste.py:191 -msgid "Z Dispense" -msgstr "Z dispensare" - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:87 -#: AppTools/ToolSolderPaste.py:193 -msgid "The height (Z) when doing solder paste dispensing." -msgstr "Înălţimea (Z) in timp ce se face dispensarea de pastă de fludor." - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:98 -#: AppTools/ToolSolderPaste.py:203 -msgid "Z Dispense Stop" -msgstr "Z stop dispensare" - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:100 -#: AppTools/ToolSolderPaste.py:205 -msgid "The height (Z) when solder paste dispensing stops." -msgstr "Înălţimea (Z) când se opreste dispensarea de pastă de fludor." - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:111 -#: AppTools/ToolSolderPaste.py:215 -msgid "Z Travel" -msgstr "Z deplasare" - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:113 -#: AppTools/ToolSolderPaste.py:217 -msgid "" -"The height (Z) for travel between pads\n" -"(without dispensing solder paste)." -msgstr "" -"Înălţimea (Z) când se face deplasare între pad-uri.\n" -"(fără dispensare de pastă de fludor)." - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:125 -#: AppTools/ToolSolderPaste.py:228 -msgid "Z Toolchange" -msgstr "Z schimb. unealtă" - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:127 -#: AppTools/ToolSolderPaste.py:230 -msgid "The height (Z) for tool (nozzle) change." -msgstr "Înălţimea (Z) când se schimbă unealta (nozzle-ul)." - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:136 -#: AppTools/ToolSolderPaste.py:238 -msgid "" -"The X,Y location for tool (nozzle) change.\n" -"The format is (x, y) where x and y are real numbers." -msgstr "" -"Coordonatele X, Y pentru schimbarea uneltei (nozzle).\n" -"Formatul este (x,y) unde x și y sunt numere Reale." - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:150 -#: AppTools/ToolSolderPaste.py:251 -msgid "Feedrate (speed) while moving on the X-Y plane." -msgstr "Viteza de deplasare a uneltei când se deplasează in planul X-Y." - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:163 -#: AppTools/ToolSolderPaste.py:263 -msgid "" -"Feedrate (speed) while moving vertically\n" -"(on Z plane)." -msgstr "" -"Viteza de deplasare a uneltei când se misca in plan vertical (planul Z)." - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:175 -#: AppTools/ToolSolderPaste.py:274 -msgid "Feedrate Z Dispense" -msgstr "Feedrate Z dispensare" - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:177 -msgid "" -"Feedrate (speed) while moving up vertically\n" -"to Dispense position (on Z plane)." -msgstr "" -"Viteza de deplasare la mișcarea pe verticala spre\n" -"poziţia de dispensare (in planul Z)." - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:188 -#: AppTools/ToolSolderPaste.py:286 -msgid "Spindle Speed FWD" -msgstr "Viteza motor inainte" - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:190 -#: AppTools/ToolSolderPaste.py:288 -msgid "" -"The dispenser speed while pushing solder paste\n" -"through the dispenser nozzle." -msgstr "" -"Viteza motorului de dispensare in timp ce impinge pastă de fludor\n" -"prin orificiul uneltei de dispensare." - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:202 -#: AppTools/ToolSolderPaste.py:299 -msgid "Dwell FWD" -msgstr "Pauza FWD" - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:204 -#: AppTools/ToolSolderPaste.py:301 -msgid "Pause after solder dispensing." -msgstr "Pauza dupa dispensarea de pastă de fludor." - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:214 -#: AppTools/ToolSolderPaste.py:310 -msgid "Spindle Speed REV" -msgstr "Viteza motor inapoi" - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:216 -#: AppTools/ToolSolderPaste.py:312 -msgid "" -"The dispenser speed while retracting solder paste\n" -"through the dispenser nozzle." -msgstr "" -"Viteza motorului de dispensare in timp ce retrage pasta de fludor\n" -"prin orificiul uneltei de dispensare." - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:228 -#: AppTools/ToolSolderPaste.py:323 -msgid "Dwell REV" -msgstr "Pauza REV" - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:230 -#: AppTools/ToolSolderPaste.py:325 -msgid "" -"Pause after solder paste dispenser retracted,\n" -"to allow pressure equilibrium." -msgstr "" -"Pauza dupa ce pasta de fludor a fost retrasă,\n" -"necesară pt a ajunge la un echilibru al presiunilor." - -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:239 -#: AppTools/ToolSolderPaste.py:333 -msgid "Files that control the GCode generation." -msgstr "Fişiere care controlează generarea codului G-Code." - -#: AppGUI/preferences/tools/ToolsSubPrefGroupUI.py:27 -msgid "Substractor Tool Options" -msgstr "Opțiuni Unealta Substracţie" - -#: AppGUI/preferences/tools/ToolsSubPrefGroupUI.py:33 -msgid "" -"A tool to substract one Gerber or Geometry object\n" -"from another of the same type." -msgstr "" -"O unealtă pentru scăderea unui obiect Gerber sau Geometry\n" -"din altul de același tip." - -#: AppGUI/preferences/tools/ToolsSubPrefGroupUI.py:38 AppTools/ToolSub.py:160 -msgid "Close paths" -msgstr "Închide căile" - -#: AppGUI/preferences/tools/ToolsSubPrefGroupUI.py:39 -msgid "" -"Checking this will close the paths cut by the Geometry substractor object." -msgstr "" -"Verificând aceasta, se vor închide căile tăiate de obiectul tăietor de tip " -"Geometrie." - -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:27 -msgid "Transform Tool Options" -msgstr "Opțiuni Unealta Transformare" - -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:33 -msgid "" -"Various transformations that can be applied\n" -"on a application object." -msgstr "" -"Diverse transformări care pot fi aplicate\n" -"asupra unui obiect al aplicatiei." - -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:64 -msgid "Skew" -msgstr "Deformare" - -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:105 -#: AppTools/ToolTransform.py:150 -msgid "Factor for scaling on X axis." -msgstr "Factor de scalare pe axa X." - -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:118 -#: AppTools/ToolTransform.py:170 -msgid "Factor for scaling on Y axis." -msgstr "Factor de scalare pe axa Y." - -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:126 -#: AppTools/ToolTransform.py:191 -msgid "" -"Scale the selected object(s)\n" -"using the Scale_X factor for both axis." -msgstr "" -"Scalează obiectele selectate folosind\n" -"Factor Scal_X pentru ambele axe." - -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:134 -#: AppTools/ToolTransform.py:198 -msgid "" -"Scale the selected object(s)\n" -"using the origin reference when checked,\n" -"and the center of the biggest bounding box\n" -"of the selected objects when unchecked." -msgstr "" -"Scalează obiectele selectate folosind\n" -"originea ca referinţă atunci când este bifat.\n" -"Când nu este bifat, foloseşte ca referinţă\n" -"centrul formei inconjuatoare care cuprinde\n" -"toate obiectele selectate." - -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:150 -#: AppTools/ToolTransform.py:217 -msgid "X val" -msgstr "Val X" - -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:152 -#: AppTools/ToolTransform.py:219 -msgid "Distance to offset on X axis. In current units." -msgstr "Distanta la care se face ofset pe axa X. In unitatile curente." - -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:163 -#: AppTools/ToolTransform.py:237 -msgid "Y val" -msgstr "Val Y" - -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:165 -#: AppTools/ToolTransform.py:239 -msgid "Distance to offset on Y axis. In current units." -msgstr "Distanta la care se face ofset pe axa Y. In unitatile curente." - -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:171 -#: AppTools/ToolDblSided.py:67 AppTools/ToolDblSided.py:95 -#: AppTools/ToolDblSided.py:125 -msgid "Mirror" -msgstr "Oglindește" - -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:175 -#: AppTools/ToolTransform.py:283 -msgid "Mirror Reference" -msgstr "Referinţă Oglindire" - -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:177 -#: AppTools/ToolTransform.py:285 -msgid "" -"Flip the selected object(s)\n" -"around the point in Point Entry Field.\n" -"\n" -"The point coordinates can be captured by\n" -"left click on canvas together with pressing\n" -"SHIFT key. \n" -"Then click Add button to insert coordinates.\n" -"Or enter the coords in format (x, y) in the\n" -"Point Entry field and click Flip on X(Y)" -msgstr "" -"Oglindește obiectele selectate in jurul punctului\n" -"de referinţă.\n" -"\n" -"Coordonatele punctului se pot obtine prin click pe \n" -"canvas simultan cu apăsarea tastei SHIFT.\n" -"Apoi apasă pe butonul >Adaugă< pentru a insera\n" -"coordonatele.\n" -"Alternativ se pot introduce coordonatele manual,\n" -"in forma (x, y).\n" -"La final apasă butonul de oglindire pe axa dorită" - -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:188 -msgid "Mirror Reference point" -msgstr "Punct referinţă Oglindire" - -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:190 -msgid "" -"Coordinates in format (x, y) used as reference for mirroring.\n" -"The 'x' in (x, y) will be used when using Flip on X and\n" -"the 'y' in (x, y) will be used when using Flip on Y and" -msgstr "" -"Coordonatele in format (x, y) ale punctului de referinţă pentru\n" -"oglindire.\n" -"X din (x,y) se va folosi când se face oglindirea pe axa X\n" -"Y din (x,y) se va folosi când se face oglindirea pe axa Y si" - -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:203 -#: AppTools/ToolDistance.py:505 AppTools/ToolDistanceMin.py:286 -#: AppTools/ToolTransform.py:332 -msgid "Distance" -msgstr "Distanță" - -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:205 -#: AppTools/ToolTransform.py:334 -msgid "" -"A positive value will create the effect of dilation,\n" -"while a negative value will create the effect of erosion.\n" -"Each geometry element of the object will be increased\n" -"or decreased with the 'distance'." -msgstr "" -"O valoare pozitivă va crea efectul dilatării,\n" -"în timp ce o valoare negativă va crea efectul eroziunii.\n" -"Fiecare element de geometrie al obiectului va fi mărit\n" -"sau scăzut proportional cu „distanța”." - -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:222 -#: AppTools/ToolTransform.py:359 -msgid "" -"A positive value will create the effect of dilation,\n" -"while a negative value will create the effect of erosion.\n" -"Each geometry element of the object will be increased\n" -"or decreased to fit the 'Value'. Value is a percentage\n" -"of the initial dimension." -msgstr "" -"O valoare pozitivă va crea efectul dilatării,\n" -"în timp ce o valoare negativă va crea efectul eroziunii.\n" -"Fiecare element de geometrie al obiectului va fi mărit\n" -"sau scăzut proportional cu „distanța”. Valoarea este\n" -"un procent din dimensiunea initială." - -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:241 -#: AppTools/ToolTransform.py:385 -msgid "" -"If checked then the buffer will surround the buffered shape,\n" -"every corner will be rounded.\n" -"If not checked then the buffer will follow the exact geometry\n" -"of the buffered shape." -msgstr "" -"Dacă este bifat, atunci bufferul va înconjura forma tamponată,\n" -"fiecare colț va fi rotunjit.\n" -"Dacă nu este bifat, bufferul va urma geometria exactă\n" -"de forma tamponată." - -#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:27 -msgid "Autocompleter Keywords" -msgstr "Cuvinte cheie pt autocomplete" - -#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:30 -#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:40 -#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:30 -#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:30 -msgid "Restore" -msgstr "Restabilire" - -#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:31 -msgid "Restore the autocompleter keywords list to the default state." -msgstr "" -"Restaurați lista cuvinte cheie pentru autocompletere la starea implicită." - -#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:33 -msgid "Delete all autocompleter keywords from the list." -msgstr "Ștergeți din listă toate cuvintele cheie pentru autocompletare." - -#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:41 -msgid "Keywords list" -msgstr "Lista de cuvinte cheie" - -#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:43 -msgid "" -"List of keywords used by\n" -"the autocompleter in FlatCAM.\n" -"The autocompleter is installed\n" -"in the Code Editor and for the Tcl Shell." -msgstr "" -"Lista cuvintelor cheie utilizate de\n" -"autocompleter în FlatCAM.\n" -"Autocompleterul este instalat\n" -"în Editorul de coduri și pentru Shell Tcl." - -#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:64 -#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:73 -#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:63 -#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:62 -msgid "Extension" -msgstr "Extensie fișier" - -#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:65 -msgid "A keyword to be added or deleted to the list." -msgstr "Un cuvânt cheie care trebuie adăugat sau șters la listă." - -#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:73 -msgid "Add keyword" -msgstr "Adăugați cuvant cheie" - -#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:74 -msgid "Add a keyword to the list" -msgstr "Adăugați un cuvânt cheie la listă" - -#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:75 -msgid "Delete keyword" -msgstr "Ștergeți cuvântul cheie" - -#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:76 -msgid "Delete a keyword from the list" -msgstr "Ștergeți un cuvânt cheie din listă" - -#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:27 -msgid "Excellon File associations" -msgstr "Asocieri fisiere Excellon" - -#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:41 -#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:31 -#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:31 -msgid "Restore the extension list to the default state." -msgstr "Restabiliți lista de extensii la starea implicită." - -#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:43 -#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:33 -#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:33 -msgid "Delete all extensions from the list." -msgstr "Ștergeți toate extensiile din listă." - -#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:51 -#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:41 -#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:41 -msgid "Extensions list" -msgstr "Lista de extensii" - -#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:53 -#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:43 -#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:43 -msgid "" -"List of file extensions to be\n" -"associated with FlatCAM." -msgstr "" -"Listă de extensii fisiere care să fie\n" -"associate cu FlatCAM." - -#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:74 -#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:64 -#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:63 -msgid "A file extension to be added or deleted to the list." -msgstr "O extensie de fișier care trebuie adăugată sau ștersă din listă." - -#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:82 -#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:72 -#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:71 -msgid "Add Extension" -msgstr "Adaugă Extensie" - -#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:83 -#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:73 -#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:72 -msgid "Add a file extension to the list" -msgstr "Adăugați o extensie de fișier la listă" - -#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:84 -#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:74 -#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:73 -msgid "Delete Extension" -msgstr "Ștergeți Extensia" - -#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:85 -#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:75 -#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:74 -msgid "Delete a file extension from the list" -msgstr "Ștergeți o extensie de fișier din listă" - -#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:92 -#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:82 -#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:81 -msgid "Apply Association" -msgstr "Aplicați Asociere" - -#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:93 -#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:83 -#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:82 -msgid "" -"Apply the file associations between\n" -"FlatCAM and the files with above extensions.\n" -"They will be active after next logon.\n" -"This work only in Windows." -msgstr "" -"Aplică asocierea de fisiere intre\n" -"FlatCAM si fisierele cu extensiile de mai sus.\n" -"Vor fi active după următorul login.\n" -"Functionează numai pt Windows." - -#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:27 -msgid "GCode File associations" -msgstr "Asocierile de fisiere G-Code" - -#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:27 -msgid "Gerber File associations" -msgstr "Asocierile de fisiere Gerber" - -#: AppObjects/AppObject.py:134 -#, python-brace-format -msgid "" -"Object ({kind}) failed because: {error} \n" -"\n" -msgstr "" -"Obiectul ({kind}) a eșuat din cauza: {error} \n" -"\n" - -#: AppObjects/AppObject.py:149 -msgid "Converting units to " -msgstr "Se convertesc unitătile la " - -#: AppObjects/AppObject.py:254 -msgid "CREATE A NEW FLATCAM TCL SCRIPT" -msgstr "CREAȚI UN SCRIPT FLATCAM TCL NOU" - -#: AppObjects/AppObject.py:255 -msgid "TCL Tutorial is here" -msgstr "Tutorialul TCL este aici" - -#: AppObjects/AppObject.py:257 -msgid "FlatCAM commands list" -msgstr "Lista de comenzi FlatCAM" - -#: AppObjects/AppObject.py:258 -msgid "" -"Type >help< followed by Run Code for a list of FlatCAM Tcl Commands " -"(displayed in Tcl Shell)." -msgstr "" -"Tastați >ajutor< urmat de Run Code pentru o listă de comenzi Tcl FlatCAM " -"(afișate în Tcl Shell)." - -#: AppObjects/AppObject.py:304 AppObjects/AppObject.py:310 -#: AppObjects/AppObject.py:316 AppObjects/AppObject.py:322 -#: AppObjects/AppObject.py:328 AppObjects/AppObject.py:334 -msgid "created/selected" -msgstr "creat / selectat" - -#: AppObjects/FlatCAMCNCJob.py:429 AppObjects/FlatCAMDocument.py:71 -#: AppObjects/FlatCAMScript.py:82 -msgid "Basic" -msgstr "Baza" - -#: AppObjects/FlatCAMCNCJob.py:435 AppObjects/FlatCAMDocument.py:75 -#: AppObjects/FlatCAMScript.py:86 -msgid "Advanced" -msgstr "Avansat" - -#: AppObjects/FlatCAMCNCJob.py:478 -msgid "Plotting..." -msgstr "Se afișează..." - -#: AppObjects/FlatCAMCNCJob.py:517 AppTools/ToolSolderPaste.py:1511 -msgid "Export cancelled ..." -msgstr "Exportul anulat ..." - -#: AppObjects/FlatCAMCNCJob.py:538 -msgid "File saved to" -msgstr "Fișierul salvat în" - -#: AppObjects/FlatCAMCNCJob.py:548 AppObjects/FlatCAMScript.py:134 -#: App_Main.py:7301 -msgid "Loading..." -msgstr "Se incarcă..." - -#: AppObjects/FlatCAMCNCJob.py:562 App_Main.py:7398 -msgid "Code Editor" -msgstr "Editor Cod" - -#: AppObjects/FlatCAMCNCJob.py:599 AppTools/ToolCalibration.py:1097 -msgid "Loaded Machine Code into Code Editor" -msgstr "S-a încărcat Codul Maşină în Editorul Cod" - -#: AppObjects/FlatCAMCNCJob.py:740 -msgid "This CNCJob object can't be processed because it is a" -msgstr "Acest obiect CNCJob nu poate fi procesat deoarece este un" - -#: AppObjects/FlatCAMCNCJob.py:742 -msgid "CNCJob object" -msgstr "Obiect CNCJob" - -#: AppObjects/FlatCAMCNCJob.py:922 -msgid "" -"G-code does not have a G94 code and we will not include the code in the " -"'Prepend to GCode' text box" -msgstr "" -"Codul G nu are un cod G94 și nu vom include codul din caseta de text „Adaugă " -"la GCode”" - -#: AppObjects/FlatCAMCNCJob.py:933 -msgid "Cancelled. The Toolchange Custom code is enabled but it's empty." -msgstr "" -"Anulat. Codul G-Code din Macro-ul Schimbare unealtă este activat dar nu " -"contine nimic." - -#: AppObjects/FlatCAMCNCJob.py:938 -msgid "Toolchange G-code was replaced by a custom code." -msgstr "G-Code-ul pt schimbare unealtă a fost inlocuit cu un cod pesonalizat." - -#: AppObjects/FlatCAMCNCJob.py:986 AppObjects/FlatCAMCNCJob.py:995 -msgid "" -"The used preprocessor file has to have in it's name: 'toolchange_custom'" -msgstr "" -"Postprocesorul folosit trebuie să aibă in numele sau: 'toolchange_custom'" - -#: AppObjects/FlatCAMCNCJob.py:998 -msgid "There is no preprocessor file." -msgstr "Nu exista nici-un fişier postprocesor." - -#: AppObjects/FlatCAMDocument.py:175 -msgid "Document Editor" -msgstr "Editor Documente" - -#: AppObjects/FlatCAMExcellon.py:537 AppObjects/FlatCAMExcellon.py:856 -#: AppObjects/FlatCAMGeometry.py:380 AppObjects/FlatCAMGeometry.py:861 -#: AppTools/ToolIsolation.py:1051 AppTools/ToolIsolation.py:1185 -#: AppTools/ToolNCC.py:811 AppTools/ToolNCC.py:1214 AppTools/ToolPaint.py:778 -#: AppTools/ToolPaint.py:1190 -msgid "Multiple Tools" -msgstr "Unelte multiple" - -#: AppObjects/FlatCAMExcellon.py:836 -msgid "No Tool Selected" -msgstr "Nici-o Unealtă selectată" - -#: AppObjects/FlatCAMExcellon.py:1234 AppObjects/FlatCAMExcellon.py:1348 -#: AppObjects/FlatCAMExcellon.py:1535 -msgid "Please select one or more tools from the list and try again." -msgstr "Selectează una sau mai multe unelte din lista și încearcă din nou." - -#: AppObjects/FlatCAMExcellon.py:1241 -msgid "Milling tool for DRILLS is larger than hole size. Cancelled." -msgstr "" -"Anulat. Freza pt frezarea găurilor este mai mare decat diametrul găurii." - -#: AppObjects/FlatCAMExcellon.py:1265 AppObjects/FlatCAMExcellon.py:1368 -#: AppObjects/FlatCAMExcellon.py:1553 tclCommands/TclCommandDrillcncjob.py:195 -msgid "Tool_nr" -msgstr "Nr. Unealtă" - -#: AppObjects/FlatCAMExcellon.py:1265 AppObjects/FlatCAMExcellon.py:1368 -#: AppObjects/FlatCAMExcellon.py:1553 tclCommands/TclCommandDrillcncjob.py:195 -msgid "Drills_Nr" -msgstr "Nr. gaura" - -#: AppObjects/FlatCAMExcellon.py:1265 AppObjects/FlatCAMExcellon.py:1368 -#: AppObjects/FlatCAMExcellon.py:1553 tclCommands/TclCommandDrillcncjob.py:195 -msgid "Slots_Nr" -msgstr "Nr. slot" - -#: AppObjects/FlatCAMExcellon.py:1357 -msgid "Milling tool for SLOTS is larger than hole size. Cancelled." -msgstr "Anulat. Freza este mai mare decat diametrul slotului de frezat." - -#: AppObjects/FlatCAMExcellon.py:1461 AppObjects/FlatCAMGeometry.py:1636 -msgid "Focus Z" -msgstr "Focalizare Z" - -#: AppObjects/FlatCAMExcellon.py:1480 AppObjects/FlatCAMGeometry.py:1655 -msgid "Laser Power" -msgstr "Putere Laser" - -#: AppObjects/FlatCAMExcellon.py:1610 AppObjects/FlatCAMGeometry.py:2088 -#: AppObjects/FlatCAMGeometry.py:2092 AppObjects/FlatCAMGeometry.py:2243 -msgid "Generating CNC Code" -msgstr "CNC Code in curs de generare" - -#: AppObjects/FlatCAMExcellon.py:1663 AppObjects/FlatCAMGeometry.py:2553 -msgid "Delete failed. There are no exclusion areas to delete." -msgstr "Ștergere eșuată. Nu există zone de excludere de șters." - -#: AppObjects/FlatCAMExcellon.py:1680 AppObjects/FlatCAMGeometry.py:2570 -msgid "Delete failed. Nothing is selected." -msgstr "Ștergerea a eșuat. Nu este nimic selectat." - -#: AppObjects/FlatCAMExcellon.py:1945 AppTools/ToolIsolation.py:1253 -#: AppTools/ToolNCC.py:918 AppTools/ToolPaint.py:843 -msgid "Current Tool parameters were applied to all tools." -msgstr "Parametrii Uneltei curente sunt aplicați la toate Uneltele." - -#: AppObjects/FlatCAMGeometry.py:124 AppObjects/FlatCAMGeometry.py:1298 -#: AppObjects/FlatCAMGeometry.py:1299 AppObjects/FlatCAMGeometry.py:1308 -msgid "Iso" -msgstr "Izo" - -#: AppObjects/FlatCAMGeometry.py:124 AppObjects/FlatCAMGeometry.py:522 -#: AppObjects/FlatCAMGeometry.py:920 AppObjects/FlatCAMGerber.py:565 -#: AppObjects/FlatCAMGerber.py:708 AppTools/ToolCutOut.py:727 -#: AppTools/ToolCutOut.py:923 AppTools/ToolCutOut.py:1083 -#: AppTools/ToolIsolation.py:1842 AppTools/ToolIsolation.py:1979 -#: AppTools/ToolIsolation.py:2150 -msgid "Rough" -msgstr "Grosier" - -#: AppObjects/FlatCAMGeometry.py:124 -msgid "Finish" -msgstr "Finisare" - -#: AppObjects/FlatCAMGeometry.py:557 -msgid "Add from Tool DB" -msgstr "Adaugă Unealta din DB Unelte" - -#: AppObjects/FlatCAMGeometry.py:939 -msgid "Tool added in Tool Table." -msgstr "Unealtă adăugată in Tabela de Unelte." - -#: AppObjects/FlatCAMGeometry.py:1048 AppObjects/FlatCAMGeometry.py:1057 -msgid "Failed. Select a tool to copy." -msgstr "Eșuat. Selectează o unealtă pt copiere." - -#: AppObjects/FlatCAMGeometry.py:1086 -msgid "Tool was copied in Tool Table." -msgstr "Unealta a fost copiata in Tabela de Unelte." - -#: AppObjects/FlatCAMGeometry.py:1113 -msgid "Tool was edited in Tool Table." -msgstr "Unealta a fost editata in Tabela de Unelte." - -#: AppObjects/FlatCAMGeometry.py:1142 AppObjects/FlatCAMGeometry.py:1151 -msgid "Failed. Select a tool to delete." -msgstr "Eșuat. Selectează o unealtă pentru ștergere." - -#: AppObjects/FlatCAMGeometry.py:1175 -msgid "Tool was deleted in Tool Table." -msgstr "Unealta a fost stearsa din Tabela de Unelte." - -#: AppObjects/FlatCAMGeometry.py:1212 AppObjects/FlatCAMGeometry.py:1221 -msgid "" -"Disabled because the tool is V-shape.\n" -"For V-shape tools the depth of cut is\n" -"calculated from other parameters like:\n" -"- 'V-tip Angle' -> angle at the tip of the tool\n" -"- 'V-tip Dia' -> diameter at the tip of the tool \n" -"- Tool Dia -> 'Dia' column found in the Tool Table\n" -"NB: a value of zero means that Tool Dia = 'V-tip Dia'" -msgstr "" -"Dezactivat deoarece unealta este în formă V.\n" -"Pentru uneltele în formă V adâncimea de tăiere este\n" -"calculată din alți parametri precum:\n" -"- „V-tip Unghi” -> unghiul din vârful uneltei\n" -"- 'V-tip Dia' -> diametrul în vârful sculei\n" -"- Diametrul Uneltei-> coloana „Dia” găsită în tabelul uneltelor\n" -"NB: o valoare de zero înseamnă că Dia Unealta = 'V-tip Dia'" - -#: AppObjects/FlatCAMGeometry.py:1708 -msgid "This Geometry can't be processed because it is" -msgstr "Acest obiect Geometrie nu poate fi procesat deoarece" - -#: AppObjects/FlatCAMGeometry.py:1708 -msgid "geometry" -msgstr "geometria" - -#: AppObjects/FlatCAMGeometry.py:1749 -msgid "Failed. No tool selected in the tool table ..." -msgstr "Eșuat. Nici-o unealtă nu este selectată in Tabela de Unelte ..." - -#: AppObjects/FlatCAMGeometry.py:1847 AppObjects/FlatCAMGeometry.py:1997 -msgid "" -"Tool Offset is selected in Tool Table but no value is provided.\n" -"Add a Tool Offset or change the Offset Type." -msgstr "" -"Un ofset pt unealtă este selectat in Tabela de Unelte dar nici-o val. nu " -"este oferita.\n" -"Adaugă un ofset pt unealtă sau schimbă Tipul Ofset." - -#: AppObjects/FlatCAMGeometry.py:1913 AppObjects/FlatCAMGeometry.py:2059 -msgid "G-Code parsing in progress..." -msgstr "Analiza codului G în curs ..." - -#: AppObjects/FlatCAMGeometry.py:1915 AppObjects/FlatCAMGeometry.py:2061 -msgid "G-Code parsing finished..." -msgstr "Analizarea codului G s-a terminat ..." - -#: AppObjects/FlatCAMGeometry.py:1923 -msgid "Finished G-Code processing" -msgstr "Prelucrarea G-Code terminată" - -#: AppObjects/FlatCAMGeometry.py:1925 AppObjects/FlatCAMGeometry.py:2073 -msgid "G-Code processing failed with error" -msgstr "Procesarea G-Code a eșuat cu eroarea" - -#: AppObjects/FlatCAMGeometry.py:1967 AppTools/ToolSolderPaste.py:1309 -msgid "Cancelled. Empty file, it has no geometry" -msgstr "Anulat. Fişier gol, nu are geometrie" - -#: AppObjects/FlatCAMGeometry.py:2071 AppObjects/FlatCAMGeometry.py:2238 -msgid "Finished G-Code processing..." -msgstr "Prelucrarea G-Code terminată ..." - -#: AppObjects/FlatCAMGeometry.py:2090 AppObjects/FlatCAMGeometry.py:2094 -#: AppObjects/FlatCAMGeometry.py:2245 -msgid "CNCjob created" -msgstr "CNCjob creat" - -#: AppObjects/FlatCAMGeometry.py:2276 AppObjects/FlatCAMGeometry.py:2285 -#: AppParsers/ParseGerber.py:1866 AppParsers/ParseGerber.py:1876 -msgid "Scale factor has to be a number: integer or float." -msgstr "Factorul de scalare trebuie să fie un număr: natural sau real." - -#: AppObjects/FlatCAMGeometry.py:2348 -msgid "Geometry Scale done." -msgstr "Scalare Geometrie executată." - -#: AppObjects/FlatCAMGeometry.py:2365 AppParsers/ParseGerber.py:1992 -msgid "" -"An (x,y) pair of values are needed. Probable you entered only one value in " -"the Offset field." -msgstr "" -"O pereche de valori (x,y) este necesară. Probabil că ai introdus numai o " -"singură valoare in câmpul Offset." - -#: AppObjects/FlatCAMGeometry.py:2421 -msgid "Geometry Offset done." -msgstr "Ofset Geometrie executat." - -#: AppObjects/FlatCAMGeometry.py:2450 -msgid "" -"The Toolchange X,Y field in Edit -> Preferences has to be in the format (x, " -"y)\n" -"but now there is only one value, not two." -msgstr "" -"Parametrul >Schimbare Unealtă X, Y< in Editare -> Peferințele trebuie să fie " -"in formatul (x, y) \n" -"dar are o singură valoare in loc de două." - -#: AppObjects/FlatCAMGerber.py:388 AppTools/ToolIsolation.py:1577 -msgid "Buffering solid geometry" -msgstr "Buferarea geometriei solide" - -#: AppObjects/FlatCAMGerber.py:397 AppTools/ToolIsolation.py:1599 -msgid "Done" -msgstr "Executat" - -#: AppObjects/FlatCAMGerber.py:423 AppObjects/FlatCAMGerber.py:449 -msgid "Operation could not be done." -msgstr "Operatia nu a putut fi executată." - -#: AppObjects/FlatCAMGerber.py:581 AppObjects/FlatCAMGerber.py:655 -#: AppTools/ToolIsolation.py:1805 AppTools/ToolIsolation.py:2126 -#: AppTools/ToolNCC.py:2117 AppTools/ToolNCC.py:3197 AppTools/ToolNCC.py:3576 -msgid "Isolation geometry could not be generated." -msgstr "Geometria de izolare nu a fost posibil să fie generată." - -#: AppObjects/FlatCAMGerber.py:606 AppObjects/FlatCAMGerber.py:733 -#: AppTools/ToolIsolation.py:1869 AppTools/ToolIsolation.py:2035 -#: AppTools/ToolIsolation.py:2202 -msgid "Isolation geometry created" -msgstr "Geometria de izolare creată" - -#: AppObjects/FlatCAMGerber.py:1028 -msgid "Plotting Apertures" -msgstr "Aperturile sunt in curs de afișare" - -#: AppObjects/FlatCAMObj.py:237 -msgid "Name changed from" -msgstr "Nume schimbat din" - -#: AppObjects/FlatCAMObj.py:237 -msgid "to" -msgstr "la" - -#: AppObjects/FlatCAMObj.py:248 -msgid "Offsetting..." -msgstr "Ofsetare..." - -#: AppObjects/FlatCAMObj.py:262 AppObjects/FlatCAMObj.py:267 -msgid "Scaling could not be executed." -msgstr "Scalarea nu a putut fi executată." - -#: AppObjects/FlatCAMObj.py:271 AppObjects/FlatCAMObj.py:279 -msgid "Scale done." -msgstr "Scalare efectuată." - -#: AppObjects/FlatCAMObj.py:277 -msgid "Scaling..." -msgstr "Scalare..." - -#: AppObjects/FlatCAMObj.py:295 -msgid "Skewing..." -msgstr "Deformare..." - -#: AppObjects/FlatCAMScript.py:163 -msgid "Script Editor" -msgstr "Editor Script" - -#: AppObjects/ObjectCollection.py:514 -#, python-brace-format -msgid "Object renamed from {old} to {new}" -msgstr "Obiectul este redenumit din {old} in {new}" - -#: AppObjects/ObjectCollection.py:926 AppObjects/ObjectCollection.py:932 -#: AppObjects/ObjectCollection.py:938 AppObjects/ObjectCollection.py:944 -#: AppObjects/ObjectCollection.py:950 AppObjects/ObjectCollection.py:956 -#: App_Main.py:6235 App_Main.py:6241 App_Main.py:6247 App_Main.py:6253 -msgid "selected" -msgstr "selectat" - -#: AppObjects/ObjectCollection.py:987 -msgid "Cause of error" -msgstr "Motivul erorii" - -#: AppObjects/ObjectCollection.py:1188 -msgid "All objects are selected." -msgstr "Totate obiectele sunt selectate." - -#: AppObjects/ObjectCollection.py:1198 -msgid "Objects selection is cleared." -msgstr "Nici-un obiect nu este selectat." - -#: AppParsers/ParseExcellon.py:315 -msgid "This is GCODE mark" -msgstr "Acesta este un marcaj Gerber" - -#: AppParsers/ParseExcellon.py:432 -msgid "" -"No tool diameter info's. See shell.\n" -"A tool change event: T" -msgstr "" -"Nu există informații despre diametrul uneltei. Vezi Shell.\n" -"Un eveniment de schimbare a uneltei: T" - -#: AppParsers/ParseExcellon.py:435 -msgid "" -"was found but the Excellon file have no informations regarding the tool " -"diameters therefore the application will try to load it by using some 'fake' " -"diameters.\n" -"The user needs to edit the resulting Excellon object and change the " -"diameters to reflect the real diameters." -msgstr "" -"a fost gasită dar fisierul Excellon nu are info's despre diametrele " -"uneltelor prin urmare aplicatia va folosi valori 'false'.\n" -"Userul trebuie să editeze obictul Excellon rezultat si sa ajusteze " -"diametrele a.i sa reflecte diametrele reale." - -#: AppParsers/ParseExcellon.py:899 -msgid "" -"Excellon Parser error.\n" -"Parsing Failed. Line" -msgstr "" -"Eroare de analiza Excellon.\n" -"Analizarea a esuat. Linia" - -#: AppParsers/ParseExcellon.py:981 -msgid "" -"Excellon.create_geometry() -> a drill location was skipped due of not having " -"a tool associated.\n" -"Check the resulting GCode." -msgstr "" -"Excellon.create_geometry() -> o locaţie de găurire a fost sarita deoarece nu " -"are o unealtă asociata.\n" -"Verifică codul G-Code rezultat." - -#: AppParsers/ParseFont.py:303 -msgid "Font not supported, try another one." -msgstr "Fontul nu este acceptat, incearcă altul." - -#: AppParsers/ParseGerber.py:425 -msgid "Gerber processing. Parsing" -msgstr "Prelucrare Gerber. Analizare" - -#: AppParsers/ParseGerber.py:425 AppParsers/ParseHPGL2.py:181 -msgid "lines" -msgstr "linii" - -#: AppParsers/ParseGerber.py:1001 AppParsers/ParseGerber.py:1101 -#: AppParsers/ParseHPGL2.py:274 AppParsers/ParseHPGL2.py:288 -#: AppParsers/ParseHPGL2.py:307 AppParsers/ParseHPGL2.py:331 -#: AppParsers/ParseHPGL2.py:366 -msgid "Coordinates missing, line ignored" -msgstr "Coordonatele lipsesc, linia este ignorată" - -#: AppParsers/ParseGerber.py:1003 AppParsers/ParseGerber.py:1103 -msgid "GERBER file might be CORRUPT. Check the file !!!" -msgstr "Fişierul Gerber poate fi corrupt. Verificati fişierul!!!" - -#: AppParsers/ParseGerber.py:1057 -msgid "" -"Region does not have enough points. File will be processed but there are " -"parser errors. Line number" -msgstr "" -"Regiunea Gerber nu are suficiente puncte. Fişierul va fi procesat dar sunt " -"erori de parsare. Numărul liniei" - -#: AppParsers/ParseGerber.py:1487 AppParsers/ParseHPGL2.py:401 -msgid "Gerber processing. Joining polygons" -msgstr "Prelucrare Gerber. Se combină poligoanele" - -#: AppParsers/ParseGerber.py:1504 -msgid "Gerber processing. Applying Gerber polarity." -msgstr "Prelucrare Gerber. Se aplica polaritatea Gerber." - -#: AppParsers/ParseGerber.py:1564 -msgid "Gerber Line" -msgstr "Linia Gerber" - -#: AppParsers/ParseGerber.py:1564 -msgid "Gerber Line Content" -msgstr "Continut linie Gerber" - -#: AppParsers/ParseGerber.py:1566 -msgid "Gerber Parser ERROR" -msgstr "Eroare in parserul Gerber" - -#: AppParsers/ParseGerber.py:1956 -msgid "Gerber Scale done." -msgstr "Scalarea Gerber efectuată." - -#: AppParsers/ParseGerber.py:2048 -msgid "Gerber Offset done." -msgstr "Offsetare Gerber efectuată." - -#: AppParsers/ParseGerber.py:2124 -msgid "Gerber Mirror done." -msgstr "Oglindirea Gerber efectuată." - -#: AppParsers/ParseGerber.py:2198 -msgid "Gerber Skew done." -msgstr "Deformarea Gerber efectuată." - -#: AppParsers/ParseGerber.py:2260 -msgid "Gerber Rotate done." -msgstr "Rotatia Gerber efectuată." - -#: AppParsers/ParseGerber.py:2417 -msgid "Gerber Buffer done." -msgstr "Buffer Gerber efectuat." - -#: AppParsers/ParseHPGL2.py:181 -msgid "HPGL2 processing. Parsing" -msgstr "Prelucrare HPGL2. Analizare" - -#: AppParsers/ParseHPGL2.py:413 -msgid "HPGL2 Line" -msgstr "Linie HPGL2" - -#: AppParsers/ParseHPGL2.py:413 -msgid "HPGL2 Line Content" -msgstr "Continut linie HPGL2" - -#: AppParsers/ParseHPGL2.py:414 -msgid "HPGL2 Parser ERROR" -msgstr "Eroare in parserul HPGL2" - -#: AppProcess.py:172 -msgid "processes running." -msgstr "procesele care rulează." - -#: AppTools/ToolAlignObjects.py:32 -msgid "Align Objects" -msgstr "Aliniere Obiecte" - -#: AppTools/ToolAlignObjects.py:61 -msgid "MOVING object" -msgstr "MISCARE obiect" - -#: AppTools/ToolAlignObjects.py:65 -msgid "" -"Specify the type of object to be aligned.\n" -"It can be of type: Gerber or Excellon.\n" -"The selection here decide the type of objects that will be\n" -"in the Object combobox." -msgstr "" -"Specifică tipul de obiect care va fi aliniat.\n" -"Poate fi de tipul: Gerber sau Excellon.\n" -"Selectia făcută aici va dicta tipul de obiecte care se vor\n" -"regăsi in combobox-ul >Obiect<." - -#: AppTools/ToolAlignObjects.py:86 -msgid "Object to be aligned." -msgstr "Obiect care trebuie aliniat." - -#: AppTools/ToolAlignObjects.py:98 -msgid "TARGET object" -msgstr "Obiectul TINTA" - -#: AppTools/ToolAlignObjects.py:100 -msgid "" -"Specify the type of object to be aligned to.\n" -"It can be of type: Gerber or Excellon.\n" -"The selection here decide the type of objects that will be\n" -"in the Object combobox." -msgstr "" -"Specifică tipul de obiect la care se va alinia un alt obiect.\n" -"Poate fi de tipul: Gerbe sau Excellon.\n" -"Selectia făcută aici va dicta tipul de obiecte care se vor\n" -"regăsi in combobox-ul >Obiect<." - -#: AppTools/ToolAlignObjects.py:122 -msgid "Object to be aligned to. Aligner." -msgstr "Obiectul către care se face alinierea. Aliniator." - -#: AppTools/ToolAlignObjects.py:135 -msgid "Alignment Type" -msgstr "Tip Aliniere" - -#: AppTools/ToolAlignObjects.py:137 -msgid "" -"The type of alignment can be:\n" -"- Single Point -> it require a single point of sync, the action will be a " -"translation\n" -"- Dual Point -> it require two points of sync, the action will be " -"translation followed by rotation" -msgstr "" -"Tipul de aliniere poate fi:\n" -"- Punct Singular -> necesită un singur punct de sincronizare, actiunea va fi " -"o translatie\n" -"- Punct Dublu -> necesita două puncta de sincronizare, actiunea va di o " -"translatie urmată de o posibilă rotatie" - -#: AppTools/ToolAlignObjects.py:143 -msgid "Single Point" -msgstr "Punct Singular" - -#: AppTools/ToolAlignObjects.py:144 -msgid "Dual Point" -msgstr "Punct Dublu" - -#: AppTools/ToolAlignObjects.py:159 -msgid "Align Object" -msgstr "Aliniază Obiectul" - -#: AppTools/ToolAlignObjects.py:161 -msgid "" -"Align the specified object to the aligner object.\n" -"If only one point is used then it assumes translation.\n" -"If tho points are used it assume translation and rotation." -msgstr "" -"Aliniază obiectul specificat la obiectul aliniator.\n" -"Dacă doar un singul punct de aliniere este folosit atunci se presupune o " -"simplă translatie.\n" -"Daca se folosesc două puncte atunci va fi o translatie urmată de o posibilă " -"rotatie." - -#: AppTools/ToolAlignObjects.py:176 AppTools/ToolCalculators.py:246 -#: AppTools/ToolCalibration.py:683 AppTools/ToolCopperThieving.py:488 -#: AppTools/ToolCorners.py:182 AppTools/ToolCutOut.py:362 -#: AppTools/ToolDblSided.py:471 AppTools/ToolEtchCompensation.py:240 -#: AppTools/ToolExtractDrills.py:310 AppTools/ToolFiducials.py:321 -#: AppTools/ToolFilm.py:503 AppTools/ToolInvertGerber.py:143 -#: AppTools/ToolIsolation.py:591 AppTools/ToolNCC.py:612 -#: AppTools/ToolOptimal.py:243 AppTools/ToolPaint.py:555 -#: AppTools/ToolPanelize.py:280 AppTools/ToolPunchGerber.py:339 -#: AppTools/ToolQRCode.py:323 AppTools/ToolRulesCheck.py:516 -#: AppTools/ToolSolderPaste.py:481 AppTools/ToolSub.py:181 -#: AppTools/ToolTransform.py:398 -msgid "Reset Tool" -msgstr "Resetați Unealta" - -#: AppTools/ToolAlignObjects.py:178 AppTools/ToolCalculators.py:248 -#: AppTools/ToolCalibration.py:685 AppTools/ToolCopperThieving.py:490 -#: AppTools/ToolCorners.py:184 AppTools/ToolCutOut.py:364 -#: AppTools/ToolDblSided.py:473 AppTools/ToolEtchCompensation.py:242 -#: AppTools/ToolExtractDrills.py:312 AppTools/ToolFiducials.py:323 -#: AppTools/ToolFilm.py:505 AppTools/ToolInvertGerber.py:145 -#: AppTools/ToolIsolation.py:593 AppTools/ToolNCC.py:614 -#: AppTools/ToolOptimal.py:245 AppTools/ToolPaint.py:557 -#: AppTools/ToolPanelize.py:282 AppTools/ToolPunchGerber.py:341 -#: AppTools/ToolQRCode.py:325 AppTools/ToolRulesCheck.py:518 -#: AppTools/ToolSolderPaste.py:483 AppTools/ToolSub.py:183 -#: AppTools/ToolTransform.py:400 -msgid "Will reset the tool parameters." -msgstr "Va reseta parametrii uneltei." - -#: AppTools/ToolAlignObjects.py:244 -msgid "Align Tool" -msgstr "Unealta Aliniere" - -#: AppTools/ToolAlignObjects.py:289 -msgid "There is no aligned FlatCAM object selected..." -msgstr "Nu a fost selectat niciun obiect FlatCAM pentru a fi aliniat..." - -#: AppTools/ToolAlignObjects.py:299 -msgid "There is no aligner FlatCAM object selected..." -msgstr "" -"Nu a fost selectat niciun obiect FlatCAM către care să se facă alinierea..." - -#: AppTools/ToolAlignObjects.py:321 AppTools/ToolAlignObjects.py:385 -msgid "First Point" -msgstr "Primul punct" - -#: AppTools/ToolAlignObjects.py:321 AppTools/ToolAlignObjects.py:400 -msgid "Click on the START point." -msgstr "Click pe punctul START." - -#: AppTools/ToolAlignObjects.py:380 AppTools/ToolCalibration.py:920 -msgid "Cancelled by user request." -msgstr "Anulat prin solicitarea utilizatorului." - -#: AppTools/ToolAlignObjects.py:385 AppTools/ToolAlignObjects.py:407 -msgid "Click on the DESTINATION point." -msgstr "Click pe punctul DESTINATIE." - -#: AppTools/ToolAlignObjects.py:385 AppTools/ToolAlignObjects.py:400 -#: AppTools/ToolAlignObjects.py:407 -msgid "Or right click to cancel." -msgstr "Sau fă click dreapta pentru anulare." - -#: AppTools/ToolAlignObjects.py:400 AppTools/ToolAlignObjects.py:407 -#: AppTools/ToolFiducials.py:107 -msgid "Second Point" -msgstr "Al doilea punct" - -#: AppTools/ToolCalculators.py:24 -msgid "Calculators" -msgstr "Calculatoare" - -#: AppTools/ToolCalculators.py:26 -msgid "Units Calculator" -msgstr "Calculator Unitati" - -#: AppTools/ToolCalculators.py:70 -msgid "Here you enter the value to be converted from INCH to MM" -msgstr "Valorile pentru conversie din INCH in MM" - -#: AppTools/ToolCalculators.py:75 -msgid "Here you enter the value to be converted from MM to INCH" -msgstr "Valorile pentru conversie din MM in INCH" - -#: AppTools/ToolCalculators.py:111 -msgid "" -"This is the angle of the tip of the tool.\n" -"It is specified by manufacturer." -msgstr "" -"Acesta este unghiul uneltei la vârf.\n" -"Producatorul il specifica in foaia de catalog." - -#: AppTools/ToolCalculators.py:120 -msgid "" -"This is the depth to cut into the material.\n" -"In the CNCJob is the CutZ parameter." -msgstr "" -"Acest param. este adâncimea de tăiere in material.\n" -"In obiectul CNCJob este parametrul >Z tăiere<." - -#: AppTools/ToolCalculators.py:128 -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 "" -"Acesta este diametrul uneltei care trebuie introdus in\n" -"sectiunea FlatCAM Gerber.\n" -"In sectiunea CNCJob este numit >Dia unealtă<." - -#: AppTools/ToolCalculators.py:139 AppTools/ToolCalculators.py:235 -msgid "Calculate" -msgstr "Calculează" - -#: AppTools/ToolCalculators.py:142 -msgid "" -"Calculate either the Cut Z or the effective tool diameter,\n" -" depending on which is desired and which is known. " -msgstr "" -"Calculează ori valorea >Z tăiere< ori valoarea efectiva a diametrului " -"uneltei,\n" -"depinzand de care dintre acestea este cunoscuta. " - -#: AppTools/ToolCalculators.py:205 -msgid "Current Value" -msgstr "Intensitate" - -#: AppTools/ToolCalculators.py:212 -msgid "" -"This is the current intensity value\n" -"to be set on the Power Supply. In Amps." -msgstr "" -"Intensitatea curentului electric care se va seta\n" -"in sursa de alimentare. In Amperi." - -#: AppTools/ToolCalculators.py:216 -msgid "Time" -msgstr "Durată" - -#: AppTools/ToolCalculators.py:223 -msgid "" -"This is the calculated time required for the procedure.\n" -"In minutes." -msgstr "" -"TImpul necesar (calculat) pentru\n" -"efectuarea procedurii. In minute." - -#: AppTools/ToolCalculators.py:238 -msgid "" -"Calculate the current intensity value and the procedure time,\n" -"depending on the parameters above" -msgstr "" -"Calculează intensitatea curentului cat și durata procedurii\n" -"in funcţie de parametrii de mai sus" - -#: AppTools/ToolCalculators.py:299 -msgid "Calc. Tool" -msgstr "Unealta Calc" - -#: AppTools/ToolCalibration.py:69 -msgid "Parameters used when creating the GCode in this tool." -msgstr "Parametrii folosiți la crearea codului GC pentru aceasta unealta." - -#: AppTools/ToolCalibration.py:173 -msgid "STEP 1: Acquire Calibration Points" -msgstr "PASUL 1: Obțineți punctele de calibrare" - -#: AppTools/ToolCalibration.py:175 -msgid "" -"Pick four points by clicking on canvas.\n" -"Those four points should be in the four\n" -"(as much as possible) corners of the object." -msgstr "" -"Alege patru puncte făcând clic pe ecran.\n" -"Aceste patru puncte ar trebui să fie în cele patru\n" -"(pe cât posibil) colțurile obiectului." - -#: AppTools/ToolCalibration.py:193 AppTools/ToolFilm.py:71 -#: AppTools/ToolImage.py:54 AppTools/ToolPanelize.py:77 -#: AppTools/ToolProperties.py:177 -msgid "Object Type" -msgstr "Tip Obiect" - -#: AppTools/ToolCalibration.py:210 -msgid "Source object selection" -msgstr "Selectarea obiectului sursă" - -#: AppTools/ToolCalibration.py:212 -msgid "FlatCAM Object to be used as a source for reference points." -msgstr "" -"Obiect FlatCAM care trebuie utilizat ca sursă pentru punctele de referință." - -#: AppTools/ToolCalibration.py:218 -msgid "Calibration Points" -msgstr "Puncte de calibrare" - -#: AppTools/ToolCalibration.py:220 -msgid "" -"Contain the expected calibration points and the\n" -"ones measured." -msgstr "" -"Conține punctele de calibrare așteptate și\n" -"cele măsurate." - -#: AppTools/ToolCalibration.py:235 AppTools/ToolSub.py:81 -#: AppTools/ToolSub.py:136 -msgid "Target" -msgstr "Tintă" - -#: AppTools/ToolCalibration.py:236 -msgid "Found Delta" -msgstr "Delta găsit" - -#: AppTools/ToolCalibration.py:248 -msgid "Bot Left X" -msgstr "Stânga jos X" - -#: AppTools/ToolCalibration.py:257 -msgid "Bot Left Y" -msgstr "Stânga jos Y" - -#: AppTools/ToolCalibration.py:275 -msgid "Bot Right X" -msgstr "Dreapta-jos X" - -#: AppTools/ToolCalibration.py:285 -msgid "Bot Right Y" -msgstr "Dreapta-jos Y" - -#: AppTools/ToolCalibration.py:300 -msgid "Top Left X" -msgstr "Stânga sus X" - -#: AppTools/ToolCalibration.py:309 -msgid "Top Left Y" -msgstr "Stânga sus Y" - -#: AppTools/ToolCalibration.py:324 -msgid "Top Right X" -msgstr "Dreapta-sus X" - -#: AppTools/ToolCalibration.py:334 -msgid "Top Right Y" -msgstr "Dreapta-sus Y" - -#: AppTools/ToolCalibration.py:367 -msgid "Get Points" -msgstr "Obține puncte" - -#: AppTools/ToolCalibration.py:369 -msgid "" -"Pick four points by clicking on canvas if the source choice\n" -"is 'free' or inside the object geometry if the source is 'object'.\n" -"Those four points should be in the four squares of\n" -"the object." -msgstr "" -"Alegeți patru puncte dând clic pe ecran dacă alegeți sursa\n" -"„liber” sau în interiorul geometriei obiectului dacă sursa este „obiect”.\n" -"Aceste patru puncte ar trebui să se afle în cele patru colțuri ale\n" -"obiectului." - -#: AppTools/ToolCalibration.py:390 -msgid "STEP 2: Verification GCode" -msgstr "PASUL 2: GCode de verificare" - -#: AppTools/ToolCalibration.py:392 AppTools/ToolCalibration.py:405 -msgid "" -"Generate GCode file to locate and align the PCB by using\n" -"the four points acquired above.\n" -"The points sequence is:\n" -"- first point -> set the origin\n" -"- second point -> alignment point. Can be: top-left or bottom-right.\n" -"- third point -> check point. Can be: top-left or bottom-right.\n" -"- forth point -> final verification point. Just for evaluation." -msgstr "" -"Generați fișier GCode pentru a localiza și alinia PCB-ul utilizând\n" -"cele patru puncte dobândite mai sus.\n" -"Secvența punctelor este:\n" -"- primul punct -> setați originea\n" -"- al doilea punct -> punctul de aliniere. Poate fi: sus-stânga sau jos-" -"dreapta.\n" -"- al treilea punct -> punctul de verificare. Poate fi: sus-stânga sau jos-" -"dreapta.\n" -"- punctul înainte -> punctul de verificare final. Doar pentru evaluare." - -#: AppTools/ToolCalibration.py:403 AppTools/ToolSolderPaste.py:344 -msgid "Generate GCode" -msgstr "Generează GCode" - -#: AppTools/ToolCalibration.py:429 -msgid "STEP 3: Adjustments" -msgstr "PASUL 3: Reglaje" - -#: AppTools/ToolCalibration.py:431 AppTools/ToolCalibration.py:440 -msgid "" -"Calculate Scale and Skew factors based on the differences (delta)\n" -"found when checking the PCB pattern. The differences must be filled\n" -"in the fields Found (Delta)." -msgstr "" -"Calculați factorii de Scalare și Deformare pe baza diferențelor (delta)\n" -"găsite la verificarea modelului PCB. Diferențele trebuie completate\n" -"în câmpurile găsite (Delta)." - -#: AppTools/ToolCalibration.py:438 -msgid "Calculate Factors" -msgstr "Calculați factorii" - -#: AppTools/ToolCalibration.py:460 -msgid "STEP 4: Adjusted GCode" -msgstr "PASUL 4: GCode ajustat" - -#: AppTools/ToolCalibration.py:462 -msgid "" -"Generate verification GCode file adjusted with\n" -"the factors above." -msgstr "" -"Generați fișierul GCode de verificare ajustat cu\n" -"factorii de mai sus." - -#: AppTools/ToolCalibration.py:467 -msgid "Scale Factor X:" -msgstr "Factor scalare X:" - -#: AppTools/ToolCalibration.py:479 -msgid "Scale Factor Y:" -msgstr "Factor scalare Y:" - -#: AppTools/ToolCalibration.py:491 -msgid "Apply Scale Factors" -msgstr "Aplicați factorii de scalare" - -#: AppTools/ToolCalibration.py:493 -msgid "Apply Scale factors on the calibration points." -msgstr "Aplicați factorii de Scalare asupra punctelor de calibrare." - -#: AppTools/ToolCalibration.py:503 -msgid "Skew Angle X:" -msgstr "Unghi X Deformare:" - -#: AppTools/ToolCalibration.py:516 -msgid "Skew Angle Y:" -msgstr "Unghi Y Deformare:" - -#: AppTools/ToolCalibration.py:529 -msgid "Apply Skew Factors" -msgstr "Aplicați factorii de deformare" - -#: AppTools/ToolCalibration.py:531 -msgid "Apply Skew factors on the calibration points." -msgstr "Aplicați factorii de Deformare asupra punctelor de calibrare." - -#: AppTools/ToolCalibration.py:600 -msgid "Generate Adjusted GCode" -msgstr "Generați GCode ajustat" - -#: AppTools/ToolCalibration.py:602 -msgid "" -"Generate verification GCode file adjusted with\n" -"the factors set above.\n" -"The GCode parameters can be readjusted\n" -"before clicking this button." -msgstr "" -"Generați fișierul GCode de verificare ajustat cu\n" -"factorii stabiliți mai sus.\n" -"Parametrii GCode pot fi reglați\n" -"înainte de a face clic pe acest buton." - -#: AppTools/ToolCalibration.py:623 -msgid "STEP 5: Calibrate FlatCAM Objects" -msgstr "PASUL 5: Calibrați obiectele FlatCAM" - -#: AppTools/ToolCalibration.py:625 -msgid "" -"Adjust the FlatCAM objects\n" -"with the factors determined and verified above." -msgstr "" -"Reglați obiectele FlatCAM\n" -"cu factorii determinați și verificați mai sus." - -#: AppTools/ToolCalibration.py:637 -msgid "Adjusted object type" -msgstr "Tipul obiectului ajustat" - -#: AppTools/ToolCalibration.py:638 -msgid "Type of the FlatCAM Object to be adjusted." -msgstr "Tipul obiectului FlatCAM care trebuie ajustat." - -#: AppTools/ToolCalibration.py:651 -msgid "Adjusted object selection" -msgstr "Selectarea obiectului ajustat" - -#: AppTools/ToolCalibration.py:653 -msgid "The FlatCAM Object to be adjusted." -msgstr "Obiectul FlatCAM care trebuie ajustat." - -#: AppTools/ToolCalibration.py:660 -msgid "Calibrate" -msgstr "Calibreaza" - -#: AppTools/ToolCalibration.py:662 -msgid "" -"Adjust (scale and/or skew) the objects\n" -"with the factors determined above." -msgstr "" -"Reglați (Scalați și / sau Deformați) obiectele\n" -"cu factorii determinați mai sus." - -#: AppTools/ToolCalibration.py:770 AppTools/ToolCalibration.py:771 -msgid "Origin" -msgstr "Originea" - -#: AppTools/ToolCalibration.py:800 -msgid "Tool initialized" -msgstr "Unealtă initializată" - -#: AppTools/ToolCalibration.py:838 -msgid "There is no source FlatCAM object selected..." -msgstr "Nu a fost selectat niciun obiect FlatCAM sursă ..." - -#: AppTools/ToolCalibration.py:859 -msgid "Get First calibration point. Bottom Left..." -msgstr "Obțineți primul punct de calibrare. Stânga jos..." - -#: AppTools/ToolCalibration.py:926 -msgid "Get Second calibration point. Bottom Right (Top Left)..." -msgstr "" -"Obțineți al doilea punct de calibrare. Dreapta jos (sau în stânga sus) ..." - -#: AppTools/ToolCalibration.py:930 -msgid "Get Third calibration point. Top Left (Bottom Right)..." -msgstr "" -"Obțineți al treilea punct de calibrare. Sus stanga (sau în jos dreapta)..." - -#: AppTools/ToolCalibration.py:934 -msgid "Get Forth calibration point. Top Right..." -msgstr "Obțineți punctul de calibrare Forth. Sus în dreapta..." - -#: AppTools/ToolCalibration.py:938 -msgid "Done. All four points have been acquired." -msgstr "Terminat. Toate cele patru puncte au fost obținute." - -#: AppTools/ToolCalibration.py:969 -msgid "Verification GCode for FlatCAM Calibration Tool" -msgstr "GCode de verificare pentru Unealta FlatCAM de Calibrare" - -#: AppTools/ToolCalibration.py:981 AppTools/ToolCalibration.py:1067 -msgid "Gcode Viewer" -msgstr "Gcode Viewer" - -#: AppTools/ToolCalibration.py:997 -msgid "Cancelled. Four points are needed for GCode generation." -msgstr "Anulat. Patru puncte sunt necesare pentru generarea GCode." - -#: AppTools/ToolCalibration.py:1253 AppTools/ToolCalibration.py:1349 -msgid "There is no FlatCAM object selected..." -msgstr "Nu a fost selectat niciun obiect FlatCAM ..." - -#: AppTools/ToolCopperThieving.py:76 AppTools/ToolFiducials.py:264 -msgid "Gerber Object to which will be added a copper thieving." -msgstr "Obiect Gerber căruia i se va adăuga Copper Thieving." - -#: AppTools/ToolCopperThieving.py:102 -msgid "" -"This set the distance between the copper thieving components\n" -"(the polygon fill may be split in multiple polygons)\n" -"and the copper traces in the Gerber file." -msgstr "" -"Aceasta stabileste distanța dintre componentele Copper Thieving\n" -"(umplutura poligonului poate fi împărțită în mai multe poligoane)\n" -"si traseele de cupru din fisierul Gerber." - -#: AppTools/ToolCopperThieving.py:135 -msgid "" -"- 'Itself' - the copper thieving extent is based on the object extent.\n" -"- 'Area Selection' - left mouse click to start selection of the area to be " -"filled.\n" -"- 'Reference Object' - will do copper thieving within the area specified by " -"another object." -msgstr "" -"- „Însuși” - amploarea Copper Thieving se bazează pe suprafata obiectului.\n" -"- „Selecție zonă” - faceți clic stânga cu mouse-ul pentru a începe selecția " -"zonei.\n" -"- „Obiect de referință” - va face Copper Thieving în zona specificată de un " -"alt obiect." - -#: AppTools/ToolCopperThieving.py:142 AppTools/ToolIsolation.py:511 -#: AppTools/ToolNCC.py:552 AppTools/ToolPaint.py:495 -msgid "Ref. Type" -msgstr "Tip Ref" - -#: AppTools/ToolCopperThieving.py:144 -msgid "" -"The type of FlatCAM object to be used as copper thieving reference.\n" -"It can be Gerber, Excellon or Geometry." -msgstr "" -"Tipul obiectului FlatCAM care va fi utilizat ca referință la Copper " -"Thieving.\n" -"Poate fi Gerber, Excellon sau Geometrie." - -#: AppTools/ToolCopperThieving.py:153 AppTools/ToolIsolation.py:522 -#: AppTools/ToolNCC.py:562 AppTools/ToolPaint.py:505 -msgid "Ref. Object" -msgstr "Obiect Ref" - -#: AppTools/ToolCopperThieving.py:155 AppTools/ToolIsolation.py:524 -#: AppTools/ToolNCC.py:564 AppTools/ToolPaint.py:507 -msgid "The FlatCAM object to be used as non copper clearing reference." -msgstr "" -"Obiectul FlatCAM pentru a fi utilizat ca referință pt. curățarea de cupru." - -#: AppTools/ToolCopperThieving.py:331 -msgid "Insert Copper thieving" -msgstr "Inserați Copper Thieving" - -#: AppTools/ToolCopperThieving.py:333 -msgid "" -"Will add a polygon (may be split in multiple parts)\n" -"that will surround the actual Gerber traces at a certain distance." -msgstr "" -"Se va adăuga un poligon (poate fi împărțit în mai multe părți)\n" -"care va înconjura traseele Gerber la o anumită distanță." - -#: AppTools/ToolCopperThieving.py:392 -msgid "Insert Robber Bar" -msgstr "Inserați Rober Bar" - -#: AppTools/ToolCopperThieving.py:394 -msgid "" -"Will add a polygon with a defined thickness\n" -"that will surround the actual Gerber object\n" -"at a certain distance.\n" -"Required when doing holes pattern plating." -msgstr "" -"Se va adăuga un poligon cu o grosime definită\n" -"care va înconjura obiectul Gerber\n" -"la o anumită distanță.\n" -"Necesar atunci când faceți placare găuri cu model." - -#: AppTools/ToolCopperThieving.py:418 -msgid "Select Soldermask object" -msgstr "Selectați obiectul Soldermask" - -#: AppTools/ToolCopperThieving.py:420 -msgid "" -"Gerber Object with the soldermask.\n" -"It will be used as a base for\n" -"the pattern plating mask." -msgstr "" -"Obiect Gerber cu Soldermask.\n" -"Acesta va fi folosit ca bază pentru\n" -"generarea de masca pentru placare cu model." - -#: AppTools/ToolCopperThieving.py:449 -msgid "Plated area" -msgstr "Zona placată" - -#: AppTools/ToolCopperThieving.py:451 -msgid "" -"The area to be plated by pattern plating.\n" -"Basically is made from the openings in the plating mask.\n" -"\n" -"<> - the calculated area is actually a bit larger\n" -"due of the fact that the soldermask openings are by design\n" -"a bit larger than the copper pads, and this area is\n" -"calculated from the soldermask openings." -msgstr "" -"Zona de placat prin placare cu model.\n" -"Practic este realizată din deschiderile din masca de placare.\n" -"\n" -"<> - suprafața calculată este de fapt un pic mai mare\n" -"datorită faptului că deschiderile de soldermask sunt prin design\n" -"un pic mai mari decât padurile de cupru, iar această zonă este\n" -"calculată din deschiderile soldermask." - -#: AppTools/ToolCopperThieving.py:462 -msgid "mm" -msgstr "mm" - -#: AppTools/ToolCopperThieving.py:464 -msgid "in" -msgstr "in" - -#: AppTools/ToolCopperThieving.py:471 -msgid "Generate pattern plating mask" -msgstr "Generați mască de placare cu model" - -#: AppTools/ToolCopperThieving.py:473 -msgid "" -"Will add to the soldermask gerber geometry\n" -"the geometries of the copper thieving and/or\n" -"the robber bar if those were generated." -msgstr "" -"Se va adăuga la geometria soldermask Gerber \n" -"geometriile Copper Thieving și / sau\n" -"Robber Bar dacă acestea au fost generate." - -#: AppTools/ToolCopperThieving.py:629 AppTools/ToolCopperThieving.py:654 -msgid "Lines Grid works only for 'itself' reference ..." -msgstr "Gridul de Linii funcționează numai pentru referința „în sine” ..." - -#: AppTools/ToolCopperThieving.py:640 -msgid "Solid fill selected." -msgstr "Umplere solidă selectată." - -#: AppTools/ToolCopperThieving.py:645 -msgid "Dots grid fill selected." -msgstr "Umplere Grila de Puncte selectată." - -#: AppTools/ToolCopperThieving.py:650 -msgid "Squares grid fill selected." -msgstr "Umplere Grila de Pătrate selectată." - -#: AppTools/ToolCopperThieving.py:671 AppTools/ToolCopperThieving.py:753 -#: AppTools/ToolCopperThieving.py:1355 AppTools/ToolCorners.py:268 -#: AppTools/ToolDblSided.py:657 AppTools/ToolExtractDrills.py:436 -#: AppTools/ToolFiducials.py:470 AppTools/ToolFiducials.py:747 -#: AppTools/ToolOptimal.py:348 AppTools/ToolPunchGerber.py:512 -#: AppTools/ToolQRCode.py:435 -msgid "There is no Gerber object loaded ..." -msgstr "Nu este nici-un obiect Gerber incărcat ..." - -#: AppTools/ToolCopperThieving.py:684 AppTools/ToolCopperThieving.py:1283 -msgid "Append geometry" -msgstr "Adăugați geometria" - -#: AppTools/ToolCopperThieving.py:728 AppTools/ToolCopperThieving.py:1316 -#: AppTools/ToolCopperThieving.py:1469 -msgid "Append source file" -msgstr "Adăugați fișierul sursă" - -#: AppTools/ToolCopperThieving.py:736 AppTools/ToolCopperThieving.py:1324 -msgid "Copper Thieving Tool done." -msgstr "Unealta Copper Thieving efectuata." - -#: AppTools/ToolCopperThieving.py:763 AppTools/ToolCopperThieving.py:796 -#: AppTools/ToolCutOut.py:556 AppTools/ToolCutOut.py:761 -#: AppTools/ToolEtchCompensation.py:360 AppTools/ToolInvertGerber.py:211 -#: AppTools/ToolIsolation.py:1585 AppTools/ToolIsolation.py:1612 -#: AppTools/ToolNCC.py:1617 AppTools/ToolNCC.py:1661 AppTools/ToolNCC.py:1690 -#: AppTools/ToolPaint.py:1493 AppTools/ToolPanelize.py:423 -#: AppTools/ToolPanelize.py:437 AppTools/ToolSub.py:295 AppTools/ToolSub.py:308 -#: AppTools/ToolSub.py:499 AppTools/ToolSub.py:514 -#: tclCommands/TclCommandCopperClear.py:97 tclCommands/TclCommandPaint.py:99 -msgid "Could not retrieve object" -msgstr "Nu s-a putut incărca obiectul" - -#: AppTools/ToolCopperThieving.py:773 AppTools/ToolIsolation.py:1672 -#: AppTools/ToolNCC.py:1669 Common.py:210 -msgid "Click the start point of the area." -msgstr "Faceți clic pe punctul de pornire al zonei." - -#: AppTools/ToolCopperThieving.py:824 -msgid "Click the end point of the filling area." -msgstr "Faceți clic pe punctul final al zonei de umplere." - -#: AppTools/ToolCopperThieving.py:830 AppTools/ToolIsolation.py:2504 -#: AppTools/ToolIsolation.py:2556 AppTools/ToolNCC.py:1731 -#: AppTools/ToolNCC.py:1783 AppTools/ToolPaint.py:1625 -#: AppTools/ToolPaint.py:1676 Common.py:275 Common.py:377 -msgid "Zone added. Click to start adding next zone or right click to finish." -msgstr "" -"Zona adăugată. Faceți clic stanga pt a continua adăugarea de zone sau click " -"dreapta pentru a termina." - -#: AppTools/ToolCopperThieving.py:952 AppTools/ToolCopperThieving.py:956 -#: AppTools/ToolCopperThieving.py:1017 -msgid "Thieving" -msgstr "Thieving" - -#: AppTools/ToolCopperThieving.py:963 -msgid "Copper Thieving Tool started. Reading parameters." -msgstr "Unealta Thieving Tool a pornit. Se citesc parametrii." - -#: AppTools/ToolCopperThieving.py:988 -msgid "Copper Thieving Tool. Preparing isolation polygons." -msgstr "Unealta Thieving Tool. Se pregătesc poligoanele de isolare." - -#: AppTools/ToolCopperThieving.py:1033 -msgid "Copper Thieving Tool. Preparing areas to fill with copper." -msgstr "Unealta Thieving Tool. Se pregătesc zonele de umplut cu cupru." - -#: AppTools/ToolCopperThieving.py:1044 AppTools/ToolOptimal.py:355 -#: AppTools/ToolPanelize.py:810 AppTools/ToolRulesCheck.py:1127 -msgid "Working..." -msgstr "Se lucrează..." - -#: AppTools/ToolCopperThieving.py:1071 -msgid "Geometry not supported for bounding box" -msgstr "Geometria nu este acceptată pentru caseta de delimitare" - -#: AppTools/ToolCopperThieving.py:1077 AppTools/ToolNCC.py:1962 -#: AppTools/ToolNCC.py:2017 AppTools/ToolNCC.py:3052 AppTools/ToolPaint.py:3405 -msgid "No object available." -msgstr "Nici-un obiect disponibil." - -#: AppTools/ToolCopperThieving.py:1114 AppTools/ToolNCC.py:1987 -#: AppTools/ToolNCC.py:2040 AppTools/ToolNCC.py:3094 -msgid "The reference object type is not supported." -msgstr "Tipul de obiect de referintă nu este acceptat." - -#: AppTools/ToolCopperThieving.py:1119 -msgid "Copper Thieving Tool. Appending new geometry and buffering." -msgstr "" -"Unealta Copper Thieving. Se adauga o noua geometrie si se fuzioneaza acestea." - -#: AppTools/ToolCopperThieving.py:1135 -msgid "Create geometry" -msgstr "Creați geometrie" - -#: AppTools/ToolCopperThieving.py:1335 AppTools/ToolCopperThieving.py:1339 -msgid "P-Plating Mask" -msgstr "Mască M-Placare" - -#: AppTools/ToolCopperThieving.py:1361 -msgid "Append PP-M geometry" -msgstr "Adaugă geometrie mască PM" - -#: AppTools/ToolCopperThieving.py:1487 -msgid "Generating Pattern Plating Mask done." -msgstr "Generarea măștii de placare cu model efectuată." - -#: AppTools/ToolCopperThieving.py:1559 -msgid "Copper Thieving Tool exit." -msgstr "Unealta Copper Thieving terminata." - -#: AppTools/ToolCorners.py:57 -msgid "The Gerber object to which will be added corner markers." -msgstr "Obiect Gerber căruia i se va adăuga marcaje de colt." - -#: AppTools/ToolCorners.py:73 -msgid "Locations" -msgstr "Locaţii" - -#: AppTools/ToolCorners.py:75 -msgid "Locations where to place corner markers." -msgstr "Locații unde să plasați markerele de colț." - -#: AppTools/ToolCorners.py:92 AppTools/ToolFiducials.py:95 -msgid "Top Right" -msgstr "Dreapta-sus" - -#: AppTools/ToolCorners.py:101 -msgid "Toggle ALL" -msgstr "Comută Toate" - -#: AppTools/ToolCorners.py:167 -msgid "Add Marker" -msgstr "Adaugă Marcaj" - -#: AppTools/ToolCorners.py:169 -msgid "Will add corner markers to the selected Gerber file." -msgstr "Va adăuga marcaje de colț în fișierul Gerber selectat." - -#: AppTools/ToolCorners.py:235 -msgid "Corners Tool" -msgstr "Unealta Marcaje Colt" - -#: AppTools/ToolCorners.py:305 -msgid "Please select at least a location" -msgstr "Vă rugăm să selectați cel puțin o locație" - -#: AppTools/ToolCorners.py:440 -msgid "Corners Tool exit." -msgstr "Unealta Marcaj Colturi a terminat." - -#: AppTools/ToolCutOut.py:41 -msgid "Cutout PCB" -msgstr "Decupare PCB" - -#: AppTools/ToolCutOut.py:69 AppTools/ToolPanelize.py:53 -msgid "Source Object" -msgstr "Obiect Sursă" - -#: AppTools/ToolCutOut.py:70 -msgid "Object to be cutout" -msgstr "Obiect care trebuie decupat" - -#: AppTools/ToolCutOut.py:75 -msgid "Kind" -msgstr "Fel" - -#: AppTools/ToolCutOut.py:97 -msgid "" -"Specify the type of object to be cutout.\n" -"It can be of type: Gerber or Geometry.\n" -"What is selected here will dictate the kind\n" -"of objects that will populate the 'Object' combobox." -msgstr "" -"Specifica obiectul care va fi decupat.\n" -"Poate fi de tip: Gerber sau Geometrie.\n" -"Ce se va selecta aici va controla tipul de \n" -"obiecte care vor aparea in combobox-ul\n" -"numit >Obiect<." - -#: AppTools/ToolCutOut.py:121 -msgid "Tool Parameters" -msgstr "Parametrii Unealtă" - -#: AppTools/ToolCutOut.py:238 -msgid "A. Automatic Bridge Gaps" -msgstr "A. Punţi realiz. automat" - -#: AppTools/ToolCutOut.py:240 -msgid "This section handle creation of automatic bridge gaps." -msgstr "" -"Aceasta sectiune va permite crearea in mod automat\n" -"a pana la 8 punţi." - -#: AppTools/ToolCutOut.py:247 -msgid "" -"Number of gaps used for the Automatic cutout.\n" -"There can be maximum 8 bridges/gaps.\n" -"The choices are:\n" -"- None - no gaps\n" -"- lr - left + right\n" -"- tb - top + bottom\n" -"- 4 - left + right +top + bottom\n" -"- 2lr - 2*left + 2*right\n" -"- 2tb - 2*top + 2*bottom\n" -"- 8 - 2*left + 2*right +2*top + 2*bottom" -msgstr "" -"Numărul de punţi folosite in decupare.\n" -"Pot fi un număr maxim de 8 punţi aranjate in felul\n" -"următor:\n" -"- Nici unul - nu există spatii\n" -"- lr = stânga -dreapta\n" -"- tb = sus - jos\n" -"- 4 = stânga -dreapta - sus - jos\n" -"- 2lr = 2* stânga - 2* dreapta\n" -"- 2tb = 2* sus - 2* jos\n" -"- 8 = 2* stânga - 2* dreapta - 2* sus - 2* jos" - -#: AppTools/ToolCutOut.py:269 -msgid "Generate Freeform Geometry" -msgstr "Generați geometrie cu formă liberă" - -#: AppTools/ToolCutOut.py:271 -msgid "" -"Cutout the selected object.\n" -"The cutout shape can be of any shape.\n" -"Useful when the PCB has a non-rectangular shape." -msgstr "" -"Decupează obiectul selectat.\n" -"Forma decupajului poate avea orice forma.\n" -"Folositor când PCB-ul are o forma neregulata." - -#: AppTools/ToolCutOut.py:283 -msgid "Generate Rectangular Geometry" -msgstr "Generați geometrie dreptunghiulară" - -#: AppTools/ToolCutOut.py:285 -msgid "" -"Cutout the selected object.\n" -"The resulting cutout shape is\n" -"always a rectangle shape and it will be\n" -"the bounding box of the Object." -msgstr "" -"Decupează obiectul selectat.\n" -"Forma decupajului este tot timpul dreptunghiulara.." - -#: AppTools/ToolCutOut.py:304 -msgid "B. Manual Bridge Gaps" -msgstr "B. Punţi realiz. manual" - -#: AppTools/ToolCutOut.py:306 -msgid "" -"This section handle creation of manual bridge gaps.\n" -"This is done by mouse clicking on the perimeter of the\n" -"Geometry object that is used as a cutout object. " -msgstr "" -"Permite realizarea de punţi de sustinere in mod manual.\n" -"Se apasa butonul corepsunzator și apoi click cu mouse-ul\n" -"pe perimetrul formei de decupaj. Daca se face simultan cu\n" -"apasarea tastei CTRL, operatia se va repeta automat pana când\n" -"se va apasa tasta 'Escape'. " - -#: AppTools/ToolCutOut.py:321 -msgid "Geometry object used to create the manual cutout." -msgstr "Obiect tip Geometrie folosit pentru crearea decupajului manual." - -#: AppTools/ToolCutOut.py:328 -msgid "Generate Manual Geometry" -msgstr "Generați geometrie manuală" - -#: AppTools/ToolCutOut.py:330 -msgid "" -"If the object to be cutout is a Gerber\n" -"first create a Geometry that surrounds it,\n" -"to be used as the cutout, if one doesn't exist yet.\n" -"Select the source Gerber file in the top object combobox." -msgstr "" -"Daca obiectul care se decupează este un obiect Gerber,\n" -"atunci mai intai crează un obiect Geometrie care il inconjoara\n" -"urmărindu-i forma.\n" -"Selectează obiectul sursa Gerber in combobox-ul de mai sus,\n" -"numit >Obiect<." - -#: AppTools/ToolCutOut.py:343 -msgid "Manual Add Bridge Gaps" -msgstr "Adaugă punţi manual" - -#: AppTools/ToolCutOut.py:345 -msgid "" -"Use the left mouse button (LMB) click\n" -"to create a bridge gap to separate the PCB from\n" -"the surrounding material.\n" -"The LMB click has to be done on the perimeter of\n" -"the Geometry object used as a cutout geometry." -msgstr "" -"Permite realizarea de punţi de sustinere in mod manual.\n" -"Se apasa butonul corepsunzator și apoi click cu mouse-ul\n" -"pe perimetrul formei de decupaj. Daca se face simultan cu\n" -"apasarea tastei CTRL, operatia se va repeta automat pana când\n" -"se va apasa tasta 'Escape'." - -#: AppTools/ToolCutOut.py:561 -msgid "" -"There is no object selected for Cutout.\n" -"Select one and try again." -msgstr "" -"Nu este nici-un obiect selectat pentru decupaj.\n" -"Selectează unul și încearcă din nou." - -#: AppTools/ToolCutOut.py:567 AppTools/ToolCutOut.py:770 -#: AppTools/ToolCutOut.py:951 AppTools/ToolCutOut.py:1033 -#: tclCommands/TclCommandGeoCutout.py:184 -msgid "Tool Diameter is zero value. Change it to a positive real number." -msgstr "Diametrul uneltei este zero. Schimbă intr-o valoare pozitivă Reală." - -#: AppTools/ToolCutOut.py:581 AppTools/ToolCutOut.py:785 -msgid "Number of gaps value is missing. Add it and retry." -msgstr "" -"Numărul de punţi lipseste sau este in format gresit. Adaugă din nou și " -"reîncearcă." - -#: AppTools/ToolCutOut.py:586 AppTools/ToolCutOut.py:789 -msgid "" -"Gaps value can be only one of: 'None', 'lr', 'tb', '2lr', '2tb', 4 or 8. " -"Fill in a correct value and retry. " -msgstr "" -"Valoarea spatiilor poate fi doar una dintre: „Niciuna”, „lr”, „tb”, „2lr”, " -"„2tb”, 4 sau 8. Completați o valoare corectă și încercați din nou. " - -#: AppTools/ToolCutOut.py:591 AppTools/ToolCutOut.py:795 -msgid "" -"Cutout operation cannot be done on a multi-geo Geometry.\n" -"Optionally, this Multi-geo Geometry can be converted to Single-geo " -"Geometry,\n" -"and after that perform Cutout." -msgstr "" -"Operatia de decupaj nu se poate efectua cu un obiect Geometrie tip " -"MultiGeo.\n" -"Se poate insa converti MultiGeo in tip SingleGeo și apoi se poate efectua " -"decupajul." - -#: AppTools/ToolCutOut.py:743 AppTools/ToolCutOut.py:940 -msgid "Any form CutOut operation finished." -msgstr "Operatia de decupaj cu formă liberă s-a terminat." - -#: AppTools/ToolCutOut.py:765 AppTools/ToolEtchCompensation.py:366 -#: AppTools/ToolInvertGerber.py:217 AppTools/ToolIsolation.py:1589 -#: AppTools/ToolIsolation.py:1616 AppTools/ToolNCC.py:1621 -#: AppTools/ToolPaint.py:1416 AppTools/ToolPanelize.py:428 -#: tclCommands/TclCommandBbox.py:71 tclCommands/TclCommandNregions.py:71 -msgid "Object not found" -msgstr "Obiectul nu a fost gasit" - -#: AppTools/ToolCutOut.py:909 -msgid "Rectangular cutout with negative margin is not possible." -msgstr "Tăierea rectangulară cu marginea negativă nu este posibilă." - -#: AppTools/ToolCutOut.py:945 -msgid "" -"Click on the selected geometry object perimeter to create a bridge gap ..." -msgstr "" -"Click pe perimetrul obiectului tip Geometrie selectat\n" -"pentru a crea o punte separatoare." - -#: AppTools/ToolCutOut.py:962 AppTools/ToolCutOut.py:988 -msgid "Could not retrieve Geometry object" -msgstr "Nu s-a putut incărca obiectul Geometrie" - -#: AppTools/ToolCutOut.py:993 -msgid "Geometry object for manual cutout not found" -msgstr "Obiectul Geometrie pentru decupaj manual nu este găsit" - -#: AppTools/ToolCutOut.py:1003 -msgid "Added manual Bridge Gap." -msgstr "O punte a fost adăugată in mod manual." - -#: AppTools/ToolCutOut.py:1015 -msgid "Could not retrieve Gerber object" -msgstr "Nu s-a putut incărca obiectul Gerber" - -#: AppTools/ToolCutOut.py:1020 -msgid "" -"There is no Gerber object selected for Cutout.\n" -"Select one and try again." -msgstr "" -"Nu există obiect selectat pt operatia de decupare.\n" -"Selectează un obiect si incearcă din nou." - -#: AppTools/ToolCutOut.py:1026 -msgid "" -"The selected object has to be of Gerber type.\n" -"Select a Gerber file and try again." -msgstr "" -"Obiectul selectat trebuie să fie de tip Gerber.\n" -"Selectează un obiect Gerber si incearcă din nou." - -#: AppTools/ToolCutOut.py:1061 -msgid "Geometry not supported for cutout" -msgstr "Geometria nu este acceptată pentru decupaj" - -#: AppTools/ToolCutOut.py:1136 -msgid "Making manual bridge gap..." -msgstr "Se generează o punte separatoare in mod manual..." - -#: AppTools/ToolDblSided.py:26 -msgid "2-Sided PCB" -msgstr "2-fețe PCB" - -#: AppTools/ToolDblSided.py:52 -msgid "Mirror Operation" -msgstr "Operațiune Oglindire" - -#: AppTools/ToolDblSided.py:53 -msgid "Objects to be mirrored" -msgstr "Obiecte care vor fi Oglindite" - -#: AppTools/ToolDblSided.py:65 -msgid "Gerber to be mirrored" -msgstr "Gerber pentru oglindit" - -#: AppTools/ToolDblSided.py:69 AppTools/ToolDblSided.py:97 -#: AppTools/ToolDblSided.py:127 -msgid "" -"Mirrors (flips) the specified object around \n" -"the specified axis. Does not create a new \n" -"object, but modifies it." -msgstr "" -"Oglindește obiectul specificat pe axa specificata.\n" -"Nu crează un obiect nou ci il modifica." - -#: AppTools/ToolDblSided.py:93 -msgid "Excellon Object to be mirrored." -msgstr "Obiectul Excellon care va fi oglindit." - -#: AppTools/ToolDblSided.py:122 -msgid "Geometry Obj to be mirrored." -msgstr "Obiectul Geometrie care va fi oglindit." - -#: AppTools/ToolDblSided.py:158 -msgid "Mirror Parameters" -msgstr "Parametrii Oglindire" - -#: AppTools/ToolDblSided.py:159 -msgid "Parameters for the mirror operation" -msgstr "Parametri pt operația de Oglindire" - -#: AppTools/ToolDblSided.py:164 -msgid "Mirror Axis" -msgstr "Axa Oglindire" - -#: AppTools/ToolDblSided.py:175 -msgid "" -"The coordinates used as reference for the mirror operation.\n" -"Can be:\n" -"- Point -> a set of coordinates (x,y) around which the object is mirrored\n" -"- Box -> a set of coordinates (x, y) obtained from the center of the\n" -"bounding box of another object selected below" -msgstr "" -"Coordinatele folosite ca referintă pentru operatia de Oglindire.\n" -"Pot fi:\n" -"- Punct -> un set de coordinate (x,y) in jurul cărora se va face oglindirea\n" -"- Cuie -> un set de coordinate (x,y) obtinute din centrul formei " -"inconjurătoare\n" -"al unui alt obiect, selectat mai jos" - -#: AppTools/ToolDblSided.py:189 -msgid "Point coordinates" -msgstr "Coordonatele Punct" - -#: AppTools/ToolDblSided.py:194 -msgid "" -"Add the coordinates in format (x, y) through which the mirroring " -"axis\n" -" selected in 'MIRROR AXIS' pass.\n" -"The (x, y) coordinates are captured by pressing SHIFT key\n" -"and left mouse button click on canvas or you can enter the coordinates " -"manually." -msgstr "" -"Adaugă coordonatele in formatul (x, y) prin care trece\n" -"axa de oglindire selectată mai sus, in pasul 'AXA OGLINDIRE'.\n" -"Coordonatele (x,y) pot fi obtinute prin combinatia tasta SHIFT + click mouse " -"pe\n" -"suprafata de afisare sau le puteti introduce manual." - -#: AppTools/ToolDblSided.py:218 -msgid "" -"It can be of type: Gerber or Excellon or Geometry.\n" -"The coordinates of the center of the bounding box are used\n" -"as reference for mirror operation." -msgstr "" -"Poate fi de tipul: Gerber, Excellon sau Geometrie.\n" -"Coordonatele centrului formei inconjurătoare sunt folosite\n" -"ca si referintă pentru operatiunea de Oglindire." - -#: AppTools/ToolDblSided.py:252 -msgid "Bounds Values" -msgstr "Valorile Limitelor" - -#: AppTools/ToolDblSided.py:254 -msgid "" -"Select on canvas the object(s)\n" -"for which to calculate bounds values." -msgstr "" -"Selectati pe suprafata de afisare obiectul(e)\n" -"pentru care se calculează valorile limitelor." - -#: AppTools/ToolDblSided.py:264 -msgid "X min" -msgstr "X min" - -#: AppTools/ToolDblSided.py:266 AppTools/ToolDblSided.py:280 -msgid "Minimum location." -msgstr "Locație minimă." - -#: AppTools/ToolDblSided.py:278 -msgid "Y min" -msgstr "Y min" - -#: AppTools/ToolDblSided.py:292 -msgid "X max" -msgstr "X max" - -#: AppTools/ToolDblSided.py:294 AppTools/ToolDblSided.py:308 -msgid "Maximum location." -msgstr "Locație maximă." - -#: AppTools/ToolDblSided.py:306 -msgid "Y max" -msgstr "Y max" - -#: AppTools/ToolDblSided.py:317 -msgid "Center point coordinates" -msgstr "Coordonatele punctului central" - -#: AppTools/ToolDblSided.py:319 -msgid "Centroid" -msgstr "Centroid" - -#: AppTools/ToolDblSided.py:321 -msgid "" -"The center point location for the rectangular\n" -"bounding shape. Centroid. Format is (x, y)." -msgstr "" -"Locația punctului central pentru dreptunghiul\n" -"formă de delimitare. Centroid. Formatul este (x, y)." - -#: AppTools/ToolDblSided.py:330 -msgid "Calculate Bounds Values" -msgstr "Calculați valorile limitelor" - -#: AppTools/ToolDblSided.py:332 -msgid "" -"Calculate the enveloping rectangular shape coordinates,\n" -"for the selection of objects.\n" -"The envelope shape is parallel with the X, Y axis." -msgstr "" -"Calculați coordonatele pt forma dreptunghiulară învelitoare,\n" -"pentru selectarea obiectelor.\n" -"Forma este paralelă cu axele X, Y." - -#: AppTools/ToolDblSided.py:352 -msgid "PCB Alignment" -msgstr "Aliniere PCB" - -#: AppTools/ToolDblSided.py:354 AppTools/ToolDblSided.py:456 -msgid "" -"Creates an Excellon Object containing the\n" -"specified alignment holes and their mirror\n" -"images." -msgstr "" -"Crează un obiect Excellon care contine găurile\n" -"de aliniere specificate cat și cele in oglinda." - -#: AppTools/ToolDblSided.py:361 -msgid "Drill Diameter" -msgstr "Dia Găurire" - -#: AppTools/ToolDblSided.py:390 AppTools/ToolDblSided.py:397 -msgid "" -"The reference point used to create the second alignment drill\n" -"from the first alignment drill, by doing mirror.\n" -"It can be modified in the Mirror Parameters -> Reference section" -msgstr "" -"Punctul de referintă folosit pentru crearea găurii de aliniere secundară,\n" -"din prima gaură de aliniere prin oglindire.\n" -"Poate fi modificat in Parametri Oglindire -> Sectiunea Referintă" - -#: AppTools/ToolDblSided.py:410 -msgid "Alignment Drill Coordinates" -msgstr "Dia. găuri de aliniere" - -#: AppTools/ToolDblSided.py:412 -msgid "" -"Alignment holes (x1, y1), (x2, y2), ... on one side of the mirror axis. For " -"each set of (x, y) coordinates\n" -"entered here, a pair of drills will be created:\n" -"\n" -"- one drill at the coordinates from the field\n" -"- one drill in mirror position over the axis selected above in the 'Align " -"Axis'." -msgstr "" -"Găuri de aliniere in formatul unei liste: (x1, y1), (x2, y2) samd.\n" -"Pentru fiecare punct din lista de mai sus (cu coord. (x,y) )\n" -"vor fi create o pereche de găuri:\n" -"- o gaură cu coord. specificate in campul de editare\n" -"- o gaură cu coord. in poziţia oglindită pe axa selectată mai sus in 'Axa " -"Aliniere'." - -#: AppTools/ToolDblSided.py:420 -msgid "Drill coordinates" -msgstr "Coordonatele găuri" - -#: AppTools/ToolDblSided.py:427 -msgid "" -"Add alignment drill holes coordinates in the format: (x1, y1), (x2, " -"y2), ... \n" -"on one side of the alignment axis.\n" -"\n" -"The coordinates set can be obtained:\n" -"- press SHIFT key and left mouse clicking on canvas. Then click Add.\n" -"- press SHIFT key and left mouse clicking on canvas. Then Ctrl+V in the " -"field.\n" -"- press SHIFT key and left mouse clicking on canvas. Then RMB click in the " -"field and click Paste.\n" -"- by entering the coords manually in the format: (x1, y1), (x2, y2), ..." -msgstr "" -"Adăugă coordonatele pt găurile de aliniere in formatul: (x1,y1), (x2,y2) " -"samd\n" -"\n" -"Coordonatele pot fi obtinute prin urmatoarele metodă:\n" -"- apăsare tasta SHIFT + click mouse pe canvas. Apoi apasa butonul 'Adaugă'.\n" -"- apăsare tasta SHIFT + click mouse pe canvas. Apoi CTRL + V combo in câmpul " -"de editare\n" -"- apăsare tasta SHIFT + click mouse pe canvas. Apoi click dreapta și Paste " -"in câmpul de edit.\n" -"- se introduc manual in formatul (x1,y1), (x2,y2) ..." - -#: AppTools/ToolDblSided.py:442 -msgid "Delete Last" -msgstr "Șterge Ultima" - -#: AppTools/ToolDblSided.py:444 -msgid "Delete the last coordinates tuple in the list." -msgstr "Șterge ultimul set de coordinate din listă." - -#: AppTools/ToolDblSided.py:454 -msgid "Create Excellon Object" -msgstr "Crează un obiect Excellon" - -#: AppTools/ToolDblSided.py:541 -msgid "2-Sided Tool" -msgstr "Unealta 2-fețe" - -#: AppTools/ToolDblSided.py:581 -msgid "" -"'Point' reference is selected and 'Point' coordinates are missing. Add them " -"and retry." -msgstr "" -"Referința 'Punct' este selectată dar coordonatele sale lipsesc. Adăugă-le si " -"încearcă din nou." - -#: AppTools/ToolDblSided.py:600 -msgid "There is no Box reference object loaded. Load one and retry." -msgstr "" -"Nici-un obiect container nu este incărcat. Încarcă unul și încearcă din nou." - -#: AppTools/ToolDblSided.py:612 -msgid "No value or wrong format in Drill Dia entry. Add it and retry." -msgstr "" -"Val. pt dia burghiu lipseste sau este in format gresit. Adaugă una și " -"încearcă din nou." - -#: AppTools/ToolDblSided.py:623 -msgid "There are no Alignment Drill Coordinates to use. Add them and retry." -msgstr "" -"Nu exista coord. pentru găurile de aliniere. Adaugă-le și încearcă din nou." - -#: AppTools/ToolDblSided.py:648 -msgid "Excellon object with alignment drills created..." -msgstr "Obiectul Excellon conținând găurile de aliniere a fost creat ..." - -#: AppTools/ToolDblSided.py:661 AppTools/ToolDblSided.py:704 -#: AppTools/ToolDblSided.py:748 -msgid "Only Gerber, Excellon and Geometry objects can be mirrored." -msgstr "Doar obiectele de tip Geometrie, Excellon și Gerber pot fi oglindite." - -#: AppTools/ToolDblSided.py:671 AppTools/ToolDblSided.py:715 -msgid "" -"There are no Point coordinates in the Point field. Add coords and try " -"again ..." -msgstr "" -"Nu există coord. in câmpul 'Punct'. Adaugă coord. și încearcă din nou..." - -#: AppTools/ToolDblSided.py:681 AppTools/ToolDblSided.py:725 -#: AppTools/ToolDblSided.py:762 -msgid "There is no Box object loaded ..." -msgstr "Nu este incărcat nici-un obiect container ..." - -#: AppTools/ToolDblSided.py:691 AppTools/ToolDblSided.py:735 -#: AppTools/ToolDblSided.py:772 -msgid "was mirrored" -msgstr "a fost oglindit" - -#: AppTools/ToolDblSided.py:700 AppTools/ToolPunchGerber.py:533 -msgid "There is no Excellon object loaded ..." -msgstr "Nici-un obiect tip Excellon nu este incărcat ..." - -#: AppTools/ToolDblSided.py:744 -msgid "There is no Geometry object loaded ..." -msgstr "Nici-un obiect tip Geometrie nu este incărcat ..." - -#: AppTools/ToolDblSided.py:818 App_Main.py:4350 App_Main.py:4505 -msgid "Failed. No object(s) selected..." -msgstr "Eșuat. Nici-un obiect nu este selectat." - -#: AppTools/ToolDistance.py:57 AppTools/ToolDistanceMin.py:50 -msgid "Those are the units in which the distance is measured." -msgstr "Unitatile de masura in care se masoara distanța." - -#: AppTools/ToolDistance.py:58 AppTools/ToolDistanceMin.py:51 -msgid "METRIC (mm)" -msgstr "Metric (mm)" - -#: AppTools/ToolDistance.py:58 AppTools/ToolDistanceMin.py:51 -msgid "INCH (in)" -msgstr "INCH (in)" - -#: AppTools/ToolDistance.py:64 -msgid "Snap to center" -msgstr "Sari in Centru" - -#: AppTools/ToolDistance.py:66 -msgid "" -"Mouse cursor will snap to the center of the pad/drill\n" -"when it is hovering over the geometry of the pad/drill." -msgstr "" -"Cursorul mouse-ului va sari (automat) pozitionandu-se in centrul padului/" -"găurii\n" -"atunci cand se găseste deasupra geometriei acelui pad/gaură." - -#: AppTools/ToolDistance.py:76 -msgid "Start Coords" -msgstr "Coordonate Start" - -#: AppTools/ToolDistance.py:77 AppTools/ToolDistance.py:82 -msgid "This is measuring Start point coordinates." -msgstr "Coordonatele punctului de Start." - -#: AppTools/ToolDistance.py:87 -msgid "Stop Coords" -msgstr "Coordonate Stop" - -#: AppTools/ToolDistance.py:88 AppTools/ToolDistance.py:93 -msgid "This is the measuring Stop point coordinates." -msgstr "Coordonatele punctului de Stop." - -#: AppTools/ToolDistance.py:98 AppTools/ToolDistanceMin.py:62 -msgid "Dx" -msgstr "Dx" - -#: AppTools/ToolDistance.py:99 AppTools/ToolDistance.py:104 -#: AppTools/ToolDistanceMin.py:63 AppTools/ToolDistanceMin.py:92 -msgid "This is the distance measured over the X axis." -msgstr "Distanta masurata pe axa X." - -#: AppTools/ToolDistance.py:109 AppTools/ToolDistanceMin.py:65 -msgid "Dy" -msgstr "Dy" - -#: AppTools/ToolDistance.py:110 AppTools/ToolDistance.py:115 -#: AppTools/ToolDistanceMin.py:66 AppTools/ToolDistanceMin.py:97 -msgid "This is the distance measured over the Y axis." -msgstr "Distanta masurata pe axa Y." - -#: AppTools/ToolDistance.py:121 AppTools/ToolDistance.py:126 -#: AppTools/ToolDistanceMin.py:69 AppTools/ToolDistanceMin.py:102 -msgid "This is orientation angle of the measuring line." -msgstr "Acesta este unghiul de orientare al liniei de măsurare." - -#: AppTools/ToolDistance.py:131 AppTools/ToolDistanceMin.py:71 -msgid "DISTANCE" -msgstr "DISTANTA" - -#: AppTools/ToolDistance.py:132 AppTools/ToolDistance.py:137 -msgid "This is the point to point Euclidian distance." -msgstr "Distanta euclidiana de la punct la punct." - -#: AppTools/ToolDistance.py:142 AppTools/ToolDistance.py:339 -#: AppTools/ToolDistanceMin.py:114 -msgid "Measure" -msgstr "Măsoară" - -#: AppTools/ToolDistance.py:274 -msgid "Working" -msgstr "Se lucrează" - -#: AppTools/ToolDistance.py:279 -msgid "MEASURING: Click on the Start point ..." -msgstr "Masoara: Click pe punctul de Start ..." - -#: AppTools/ToolDistance.py:389 -msgid "Distance Tool finished." -msgstr "Măsurătoarea s-a terminat." - -#: AppTools/ToolDistance.py:461 -msgid "Pads overlapped. Aborting." -msgstr "Pad-urile sunt suprapuse. Operatie anulată." - -#: AppTools/ToolDistance.py:489 -msgid "Distance Tool cancelled." -msgstr "Măsurătoarea s-a terminat." - -#: AppTools/ToolDistance.py:494 -msgid "MEASURING: Click on the Destination point ..." -msgstr "Masoara: Click pe punctul Destinaţie..." - -#: AppTools/ToolDistance.py:503 AppTools/ToolDistanceMin.py:284 -msgid "MEASURING" -msgstr "MĂSURARE" - -#: AppTools/ToolDistance.py:504 AppTools/ToolDistanceMin.py:285 -msgid "Result" -msgstr "Rezultat" - -#: AppTools/ToolDistanceMin.py:31 AppTools/ToolDistanceMin.py:143 -msgid "Minimum Distance Tool" -msgstr "Unealta de distanță minimă" - -#: AppTools/ToolDistanceMin.py:54 -msgid "First object point" -msgstr "Primul punct" - -#: AppTools/ToolDistanceMin.py:55 AppTools/ToolDistanceMin.py:80 -msgid "" -"This is first object point coordinates.\n" -"This is the start point for measuring distance." -msgstr "" -"Aceasta este prima coordonată a punctelor obiectului.\n" -"Acesta este punctul de pornire pentru măsurarea distanței." - -#: AppTools/ToolDistanceMin.py:58 -msgid "Second object point" -msgstr "Al doilea punct" - -#: AppTools/ToolDistanceMin.py:59 AppTools/ToolDistanceMin.py:86 -msgid "" -"This is second object point coordinates.\n" -"This is the end point for measuring distance." -msgstr "" -"Aceasta este a doua coordonata a punctelor obiectului.\n" -"Acesta este punctul final pentru măsurarea distanței." - -#: AppTools/ToolDistanceMin.py:72 AppTools/ToolDistanceMin.py:107 -msgid "This is the point to point Euclidean distance." -msgstr "Distanta euclidiana de la punct la punct." - -#: AppTools/ToolDistanceMin.py:74 -msgid "Half Point" -msgstr "Punctul de mijloc" - -#: AppTools/ToolDistanceMin.py:75 AppTools/ToolDistanceMin.py:112 -msgid "This is the middle point of the point to point Euclidean distance." -msgstr "Acesta este punctul de mijloc al distanței euclidiană." - -#: AppTools/ToolDistanceMin.py:117 -msgid "Jump to Half Point" -msgstr "Sari la Punctul de Mijloc" - -#: AppTools/ToolDistanceMin.py:154 -msgid "" -"Select two objects and no more, to measure the distance between them ..." -msgstr "" -"Selectați două obiecte și nu mai mult, pentru a măsura distanța dintre " -"ele ..." - -#: AppTools/ToolDistanceMin.py:195 AppTools/ToolDistanceMin.py:216 -#: AppTools/ToolDistanceMin.py:225 AppTools/ToolDistanceMin.py:246 -msgid "Select two objects and no more. Currently the selection has objects: " -msgstr "" -"Selectați două obiecte și nu mai mult. În prezent, selecția are nr obiecte: " - -#: AppTools/ToolDistanceMin.py:293 -msgid "Objects intersects or touch at" -msgstr "Obiectele se intersectează sau ating la" - -#: AppTools/ToolDistanceMin.py:299 -msgid "Jumped to the half point between the two selected objects" -msgstr "A sărit la jumătatea punctului dintre cele două obiecte selectate" - -#: AppTools/ToolEtchCompensation.py:75 AppTools/ToolInvertGerber.py:74 -msgid "Gerber object that will be inverted." -msgstr "" -"Obiect Gerber care va fi inversat\n" -"(din pozitiv in negativ)." - -#: AppTools/ToolEtchCompensation.py:86 -msgid "Utilities" -msgstr "Utilități" - -#: AppTools/ToolEtchCompensation.py:87 -msgid "Conversion utilities" -msgstr "Utilitare de conversie" - -#: AppTools/ToolEtchCompensation.py:92 -msgid "Oz to Microns" -msgstr "Oz la Microni" - -#: AppTools/ToolEtchCompensation.py:94 -msgid "" -"Will convert from oz thickness to microns [um].\n" -"Can use formulas with operators: /, *, +, -, %, .\n" -"The real numbers use the dot decimals separator." -msgstr "" -"Se va converti de la grosime in oz la grosime in micron [um].\n" -"Poate folosi formule cu operatorii: /, *, +, -,%,.\n" -"Numerele reale folosesc ca separator de zecimale, punctul." - -#: AppTools/ToolEtchCompensation.py:103 -msgid "Oz value" -msgstr "Valoarea in Oz" - -#: AppTools/ToolEtchCompensation.py:105 AppTools/ToolEtchCompensation.py:126 -msgid "Microns value" -msgstr "Valoarea in Microni" - -#: AppTools/ToolEtchCompensation.py:113 -msgid "Mils to Microns" -msgstr "Mils la Miconi" - -#: AppTools/ToolEtchCompensation.py:115 -msgid "" -"Will convert from mils to microns [um].\n" -"Can use formulas with operators: /, *, +, -, %, .\n" -"The real numbers use the dot decimals separator." -msgstr "" -"Se va converti de la mils la microni [um].\n" -"Poate folosi formule cu operatorii: /, *, +, -,%,.\n" -"Numerele reale folosesc ca separator de zecimale, punctul." - -#: AppTools/ToolEtchCompensation.py:124 -msgid "Mils value" -msgstr "Valoarea in Mils" - -#: AppTools/ToolEtchCompensation.py:139 AppTools/ToolInvertGerber.py:86 -msgid "Parameters for this tool" -msgstr "Parametrii pt această unealtă" - -#: AppTools/ToolEtchCompensation.py:144 -msgid "Copper Thickness" -msgstr "Grosimea cuprului" - -#: AppTools/ToolEtchCompensation.py:146 -msgid "" -"The thickness of the copper foil.\n" -"In microns [um]." -msgstr "" -"Grosimea foliei de cupru.\n" -"În microni [um]." - -#: AppTools/ToolEtchCompensation.py:157 -msgid "Ratio" -msgstr "Raţie" - -#: AppTools/ToolEtchCompensation.py:159 -msgid "" -"The ratio of lateral etch versus depth etch.\n" -"Can be:\n" -"- custom -> the user will enter a custom value\n" -"- preselection -> value which depends on a selection of etchants" -msgstr "" -"Raportul dintre corodarea laterală și corodarea in adâncime.\n" -"Poate fi:\n" -"- personalizat -> utilizatorul va introduce o valoare personalizată\n" -"- preselecție -> valoare care depinde de o selecție de substante corozive" - -#: AppTools/ToolEtchCompensation.py:165 -msgid "Etch Factor" -msgstr "Factor de corodare" - -#: AppTools/ToolEtchCompensation.py:166 -msgid "Etchants list" -msgstr "Lista de Substante Corozive" - -#: AppTools/ToolEtchCompensation.py:167 -msgid "Manual offset" -msgstr "Ofset Manual" - -#: AppTools/ToolEtchCompensation.py:174 AppTools/ToolEtchCompensation.py:179 -msgid "Etchants" -msgstr "Substane corozive" - -#: AppTools/ToolEtchCompensation.py:176 -msgid "A list of etchants." -msgstr "Lista de substante corozive." - -#: AppTools/ToolEtchCompensation.py:180 -msgid "Alkaline baths" -msgstr "Bai alcaline" - -#: AppTools/ToolEtchCompensation.py:186 -msgid "Etch factor" -msgstr "Factor Corodare" - -#: AppTools/ToolEtchCompensation.py:188 -msgid "" -"The ratio between depth etch and lateral etch .\n" -"Accepts real numbers and formulas using the operators: /,*,+,-,%" -msgstr "" -"Raportul dintre corodarea de adâncime și corodarea laterală.\n" -"Acceptă numere reale și formule folosind operatorii: /, *, +, -,%" - -#: AppTools/ToolEtchCompensation.py:192 -msgid "Real number or formula" -msgstr "Număr real sau formule" - -#: AppTools/ToolEtchCompensation.py:193 -msgid "Etch_factor" -msgstr "Factor Corodare" - -#: AppTools/ToolEtchCompensation.py:201 -msgid "" -"Value with which to increase or decrease (buffer)\n" -"the copper features. In microns [um]." -msgstr "" -"Valoarea cu care să crească sau să scadă (tampon)\n" -"caracteristicile de cupru din PCB. În microni [um]." - -#: AppTools/ToolEtchCompensation.py:225 -msgid "Compensate" -msgstr "Compensează" - -#: AppTools/ToolEtchCompensation.py:227 -msgid "" -"Will increase the copper features thickness to compensate the lateral etch." -msgstr "" -"Va crește grosimea caracteristicilor de cupru pentru a compensa corodarea " -"laterală." - -#: AppTools/ToolExtractDrills.py:29 AppTools/ToolExtractDrills.py:295 -msgid "Extract Drills" -msgstr "Extrage Găuri" - -#: AppTools/ToolExtractDrills.py:62 -msgid "Gerber from which to extract drill holes" -msgstr "Obiect Gerber din care se vor extrage găurile" - -#: AppTools/ToolExtractDrills.py:297 -msgid "Extract drills from a given Gerber file." -msgstr "Extrage găuri dintr-un fisier Gerber." - -#: AppTools/ToolExtractDrills.py:478 AppTools/ToolExtractDrills.py:563 -#: AppTools/ToolExtractDrills.py:648 -msgid "No drills extracted. Try different parameters." -msgstr "Nu s-au extras găuri. Incearcă alti parametri." - -#: AppTools/ToolFiducials.py:56 -msgid "Fiducials Coordinates" -msgstr "Coordonatele Fiducials" - -#: AppTools/ToolFiducials.py:58 -msgid "" -"A table with the fiducial points coordinates,\n" -"in the format (x, y)." -msgstr "" -"Un tabel cu coordonatele punctelor fiduțiale,\n" -"în format (x, y)." - -#: AppTools/ToolFiducials.py:194 -msgid "" -"- 'Auto' - automatic placement of fiducials in the corners of the bounding " -"box.\n" -" - 'Manual' - manual placement of fiducials." -msgstr "" -"- „Auto” - plasarea automată a fiduciarelor în colțurile casetei de " -"delimitare.\n" -"  - „Manual” - plasarea manuală a fiduciarelor." - -#: AppTools/ToolFiducials.py:240 -msgid "Thickness of the line that makes the fiducial." -msgstr "Grosimea liniei din care este facuta fiduciala." - -#: AppTools/ToolFiducials.py:271 -msgid "Add Fiducial" -msgstr "Adaugă Fiducial" - -#: AppTools/ToolFiducials.py:273 -msgid "Will add a polygon on the copper layer to serve as fiducial." -msgstr "" -"Va adăuga un poligon pe stratul de cupru pentru a servi drept fiduciar." - -#: AppTools/ToolFiducials.py:289 -msgid "Soldermask Gerber" -msgstr "Gerber Soldermask" - -#: AppTools/ToolFiducials.py:291 -msgid "The Soldermask Gerber object." -msgstr "Obiectul Soldermask Gerber." - -#: AppTools/ToolFiducials.py:303 -msgid "Add Soldermask Opening" -msgstr "Adăugați deschidere Soldermask" - -#: AppTools/ToolFiducials.py:305 -msgid "" -"Will add a polygon on the soldermask layer\n" -"to serve as fiducial opening.\n" -"The diameter is always double of the diameter\n" -"for the copper fiducial." -msgstr "" -"Se va adăuga un poligon pe stratul de Soldermask\n" -"pentru a servi drept deschidere fiduciară.\n" -"Diametrul este întotdeauna dublu față de diametrul\n" -"pentru fiduciarul de cupru." - -#: AppTools/ToolFiducials.py:520 -msgid "Click to add first Fiducial. Bottom Left..." -msgstr "Faceți clic pentru a adăuga primul Fiducial. Stânga jos..." - -#: AppTools/ToolFiducials.py:784 -msgid "Click to add the last fiducial. Top Right..." -msgstr "Faceți clic pentru a adăuga ultimul Fiducial. Dreapta Sus..." - -#: AppTools/ToolFiducials.py:789 -msgid "Click to add the second fiducial. Top Left or Bottom Right..." -msgstr "" -"Faceți clic pentru a adăuga cel de-al doilea Fiducial. Stânga sus sau " -"dreapta jos ..." - -#: AppTools/ToolFiducials.py:792 AppTools/ToolFiducials.py:801 -msgid "Done. All fiducials have been added." -msgstr "Terminat. Au fost adăugate toate Fiducials." - -#: AppTools/ToolFiducials.py:878 -msgid "Fiducials Tool exit." -msgstr "Unealta Fiducials terminate." - -#: AppTools/ToolFilm.py:42 -msgid "Film PCB" -msgstr "Film PCB" - -#: AppTools/ToolFilm.py:73 -msgid "" -"Specify the type of object for which to create the film.\n" -"The object can be of type: Gerber or Geometry.\n" -"The selection here decide the type of objects that will be\n" -"in the Film Object combobox." -msgstr "" -"Specificati tipul de obiect pt care se va crea filmul.\n" -"Obiectul poate avea tipul: Gerber sau Geometrie.\n" -"Selectia facuta aici controlează ce obiecte vor fi \n" -"gasite in combobox-ul >Obiect Film<." - -#: AppTools/ToolFilm.py:96 -msgid "" -"Specify the type of object to be used as an container for\n" -"film creation. It can be: Gerber or Geometry type.The selection here decide " -"the type of objects that will be\n" -"in the Box Object combobox." -msgstr "" -"Specificati tipul obiectului care să fie folosit ca și container\n" -"pt crearea filmului. Poate fi de tipul Geometrie sau Gerber.\n" -"Selectia facuta aici controlează ce obiecte vor fi \n" -"gasite in combobox-ul >Container<." - -#: AppTools/ToolFilm.py:256 -msgid "Film Parameters" -msgstr "Parametrii filmului" - -#: AppTools/ToolFilm.py:317 -msgid "Punch drill holes" -msgstr "Perforează găurii" - -#: AppTools/ToolFilm.py:318 -msgid "" -"When checked the generated film will have holes in pads when\n" -"the generated film is positive. This is done to help drilling,\n" -"when done manually." -msgstr "" -"Când este bifat, filmul generat va avea găuri în pad-uri când\n" -"filmul generat este pozitiv. Acest lucru este realizat pentru a ajuta la " -"găurire,\n" -"când este făcută manual." - -#: AppTools/ToolFilm.py:336 -msgid "Source" -msgstr "Sursă" - -#: AppTools/ToolFilm.py:338 -msgid "" -"The punch hole source can be:\n" -"- Excellon -> an Excellon holes center will serve as reference.\n" -"- Pad Center -> will try to use the pads center as reference." -msgstr "" -"Sursa de perforare poate fi:\n" -"- Excellon -> centrul găurilor Excellon va servi ca referință.\n" -"- Centru Pad-> va încerca să utilizeze centrul de pad-uri ca referință." - -#: AppTools/ToolFilm.py:343 -msgid "Pad center" -msgstr "Centru Pad" - -#: AppTools/ToolFilm.py:348 -msgid "Excellon Obj" -msgstr "Obiect Excellon" - -#: AppTools/ToolFilm.py:350 -msgid "" -"Remove the geometry of Excellon from the Film to create the holes in pads." -msgstr "" -"Îndepărtați geometria Excellon din film pentru a crea găurile din pad-uri." - -#: AppTools/ToolFilm.py:364 -msgid "Punch Size" -msgstr "Mărimea Perforatii" - -#: AppTools/ToolFilm.py:365 -msgid "The value here will control how big is the punch hole in the pads." -msgstr "" -"Valoarea de aici va controla cât de mare este gaura de perforare în pad-uri." - -#: AppTools/ToolFilm.py:485 -msgid "Save Film" -msgstr "Salveaa filmul" - -#: AppTools/ToolFilm.py:487 -msgid "" -"Create a Film for the selected object, within\n" -"the specified box. Does not create a new \n" -" FlatCAM object, but directly save it in the\n" -"selected format." -msgstr "" -"Crează un film pt obiectul selectat, in cadrul obiectului\n" -"container selectat. Nu crează un obiect nou FlatCAM ci\n" -"salvează pe HDD un fişier in formatul selectat." - -#: AppTools/ToolFilm.py:649 -msgid "" -"Using the Pad center does not work on Geometry objects. Only a Gerber object " -"has pads." -msgstr "" -"Utilizarea centrului Pad nu funcționează pe obiecte de Geometrie. Doar un " -"obiect Gerber are pad-uri." - -#: AppTools/ToolFilm.py:659 -msgid "No FlatCAM object selected. Load an object for Film and retry." -msgstr "" -"Nici-un obiect FlaCAM nu este selectat. Incarcă un obiect pt Film și " -"încearcă din nou." - -#: AppTools/ToolFilm.py:666 -msgid "No FlatCAM object selected. Load an object for Box and retry." -msgstr "" -"Nici-un obiect FlatCAM nu este selectat. Încarcă un obiect container și " -"încearcă din nou." - -#: AppTools/ToolFilm.py:670 -msgid "No FlatCAM object selected." -msgstr "Nici-un obiect nu este selectat." - -#: AppTools/ToolFilm.py:681 -msgid "Generating Film ..." -msgstr "Se generează Film-ul ..." - -#: AppTools/ToolFilm.py:730 AppTools/ToolFilm.py:734 -msgid "Export positive film" -msgstr "Export film pozitiv" - -#: AppTools/ToolFilm.py:767 -msgid "" -"No Excellon object selected. Load an object for punching reference and retry." -msgstr "" -"Nici-un obiect Excellon nu este selectat. Incarcă un obiect ca referinta " -"pentru perforare și încearcă din nou." - -#: AppTools/ToolFilm.py:791 -msgid "" -" Could not generate punched hole film because the punch hole sizeis bigger " -"than some of the apertures in the Gerber object." -msgstr "" -" Nu a putut genera un film cu găuri perforate, deoarece dimensiunea găurii " -"de perforare este mai mare decât unele dintre aperturile din obiectul Gerber." - -#: AppTools/ToolFilm.py:803 -msgid "" -"Could not generate punched hole film because the punch hole sizeis bigger " -"than some of the apertures in the Gerber object." -msgstr "" -"Nu s-a putut genera un film cu găuri perforate, deoarece dimensiunea găurii " -"de perforare este mai mare decât unele dintre aperturile din obiectul Gerber." - -#: AppTools/ToolFilm.py:821 -msgid "" -"Could not generate punched hole film because the newly created object " -"geometry is the same as the one in the source object geometry..." -msgstr "" -"Nu s-a putut genera Film cu găuri perforate, deoarece geometria obiectului " -"nou creat este aceeași cu cea din geometria obiectului sursă ..." - -#: AppTools/ToolFilm.py:876 AppTools/ToolFilm.py:880 -msgid "Export negative film" -msgstr "Export film negativ" - -#: AppTools/ToolFilm.py:941 AppTools/ToolFilm.py:1124 -#: AppTools/ToolPanelize.py:441 -msgid "No object Box. Using instead" -msgstr "Nu exista container. Se foloseşte in schimb" - -#: AppTools/ToolFilm.py:1057 AppTools/ToolFilm.py:1237 -msgid "Film file exported to" -msgstr "Fișierul Film exportat în" - -#: AppTools/ToolFilm.py:1060 AppTools/ToolFilm.py:1240 -msgid "Generating Film ... Please wait." -msgstr "Filmul se generează ... Aşteaptă." - -#: AppTools/ToolImage.py:24 -msgid "Image as Object" -msgstr "Imagine ca Obiect" - -#: AppTools/ToolImage.py:33 -msgid "Image to PCB" -msgstr "Imagine -> PCB" - -#: AppTools/ToolImage.py:56 -msgid "" -"Specify the type of object to create from the image.\n" -"It can be of type: Gerber or Geometry." -msgstr "" -"Specifica tipul de obiect care se vrea a fi creat din imagine.\n" -"Tipul sau poate să fie ori Gerber ori Geometrie." - -#: AppTools/ToolImage.py:65 -msgid "DPI value" -msgstr "Val. DPI" - -#: AppTools/ToolImage.py:66 -msgid "Specify a DPI value for the image." -msgstr "Specifica o valoare DPI pt imagine." - -#: AppTools/ToolImage.py:72 -msgid "Level of detail" -msgstr "Nivel Detaliu" - -#: AppTools/ToolImage.py:81 -msgid "Image type" -msgstr "Tip imagine" - -#: AppTools/ToolImage.py:83 -msgid "" -"Choose a method for the image interpretation.\n" -"B/W means a black & white image. Color means a colored image." -msgstr "" -"Alege o metoda de interpretare a imaginii.\n" -"B/W = imagine alb-negru\n" -"Color = imagine in culori." - -#: AppTools/ToolImage.py:92 AppTools/ToolImage.py:107 AppTools/ToolImage.py:120 -#: AppTools/ToolImage.py:133 -msgid "Mask value" -msgstr "Val. masca" - -#: AppTools/ToolImage.py:94 -msgid "" -"Mask for monochrome image.\n" -"Takes values between [0 ... 255].\n" -"Decides the level of details to include\n" -"in the resulting geometry.\n" -"0 means no detail and 255 means everything \n" -"(which is totally black)." -msgstr "" -"Masca pt imaginile monocrome.\n" -"Ia valori in intervalul [0 ... 255]\n" -"Decide nivelul de detalii care să fie\n" -"incluse in obiectul rezultat.\n" -"0 = nici-un detaliu\n" -"255 = include totul (ceeace ce inseamna\n" -"negru complet)." - -#: AppTools/ToolImage.py:109 -msgid "" -"Mask for RED color.\n" -"Takes values between [0 ... 255].\n" -"Decides the level of details to include\n" -"in the resulting geometry." -msgstr "" -"Masca pt culoarea ROSU.\n" -"Ia valori in intervalul [0 ... 255].\n" -"Decide nivelul de detalii care să fie\n" -"incluse in obiectul rezultat." - -#: AppTools/ToolImage.py:122 -msgid "" -"Mask for GREEN color.\n" -"Takes values between [0 ... 255].\n" -"Decides the level of details to include\n" -"in the resulting geometry." -msgstr "" -"Masca pt culoarea VERDE.\n" -"Ia valori in intervalul [0 ... 255].\n" -"Decide nivelul de detalii care să fie\n" -"incluse in obiectul rezultat." - -#: AppTools/ToolImage.py:135 -msgid "" -"Mask for BLUE color.\n" -"Takes values between [0 ... 255].\n" -"Decides the level of details to include\n" -"in the resulting geometry." -msgstr "" -"Masca pt culoarea ALBASTRU.\n" -"Ia valori in intervalul [0 ... 255].\n" -"Decide nivelul de detalii care să fie\n" -"incluse in obiectul rezultat." - -#: AppTools/ToolImage.py:143 -msgid "Import image" -msgstr "Importa imagine" - -#: AppTools/ToolImage.py:145 -msgid "Open a image of raster type and then import it in FlatCAM." -msgstr "Deschide o imagine tip raster și importa aceasta in FlatCAM." - -#: AppTools/ToolImage.py:182 -msgid "Image Tool" -msgstr "Unealta Imagine" - -#: AppTools/ToolImage.py:234 AppTools/ToolImage.py:237 -msgid "Import IMAGE" -msgstr "Importa Imagine" - -#: AppTools/ToolImage.py:277 App_Main.py:8360 App_Main.py:8407 -msgid "" -"Not supported type is picked as parameter. Only Geometry and Gerber are " -"supported" -msgstr "" -"Tipul parametrului nu este compatibil. Doar obiectele tip Geometrie si " -"Gerber sunt acceptate" - -#: AppTools/ToolImage.py:285 -msgid "Importing Image" -msgstr "Imaginea in curs de a fi importata" - -#: AppTools/ToolImage.py:297 AppTools/ToolPDF.py:154 App_Main.py:8385 -#: App_Main.py:8431 App_Main.py:8495 App_Main.py:8562 App_Main.py:8628 -#: App_Main.py:8693 App_Main.py:8750 -msgid "Opened" -msgstr "Încarcat" - -#: AppTools/ToolInvertGerber.py:126 -msgid "Invert Gerber" -msgstr "Inversează Gerber" - -#: AppTools/ToolInvertGerber.py:128 -msgid "" -"Will invert the Gerber object: areas that have copper\n" -"will be empty of copper and previous empty area will be\n" -"filled with copper." -msgstr "" -"Va inversa obiectul Gerber: ariile care contin cupru vor devein goale,\n" -"iar ariile care nu aveau cupru vor fi pline." - -#: AppTools/ToolInvertGerber.py:187 -msgid "Invert Tool" -msgstr "Unealta Inversie" - -#: AppTools/ToolIsolation.py:96 -msgid "Gerber object for isolation routing." -msgstr "Obiect Gerber pentru rutare de izolare." - -#: AppTools/ToolIsolation.py:120 AppTools/ToolNCC.py:122 -msgid "" -"Tools pool from which the algorithm\n" -"will pick the ones used for copper clearing." -msgstr "" -"Un număr de unelte din care algoritmul va alege\n" -"pe acelea care vor fi folosite pentru curățarea de Cu." - -#: AppTools/ToolIsolation.py:136 -msgid "" -"This is the Tool Number.\n" -"Isolation routing will start with the tool with the biggest \n" -"diameter, continuing until there are no more tools.\n" -"Only tools that create Isolation geometry will still be present\n" -"in the resulting geometry. This is because with some tools\n" -"this function will not be able to create routing geometry." -msgstr "" -"Numărul uneltei.\n" -"Izolarea va incepe cu unealta cu diametrul cel mai mare\n" -"continuand ulterior cu cele cu dia mai mic pana numai sunt unelte\n" -"sau s-a terminat procesul.\n" -"Doar uneltele care efectiv au creat geometrie de Izolare vor fi prezente in " -"obiectul\n" -"final. Aceasta deaorece unele unelte nu vor putea genera geometrie de rutare." - -#: AppTools/ToolIsolation.py:144 AppTools/ToolNCC.py:146 -msgid "" -"Tool Diameter. It's value (in current FlatCAM units)\n" -"is the cut width into the material." -msgstr "" -"Diametrul uneltei. Valoarea să (in unitati curente FlatCAM)\n" -"reprezintă lăţimea tăieturii in material." - -#: AppTools/ToolIsolation.py:148 AppTools/ToolNCC.py:150 -msgid "" -"The Tool Type (TT) can be:\n" -"- Circular with 1 ... 4 teeth -> it is informative only. Being circular,\n" -"the cut width in material is exactly the tool diameter.\n" -"- Ball -> informative only and make reference to the Ball type endmill.\n" -"- V-Shape -> it will disable Z-Cut parameter in the resulting geometry UI " -"form\n" -"and enable two additional UI form fields in the resulting geometry: V-Tip " -"Dia and\n" -"V-Tip Angle. Adjusting those two values will adjust the Z-Cut parameter " -"such\n" -"as the cut width into material will be equal with the value in the Tool " -"Diameter\n" -"column of this table.\n" -"Choosing the 'V-Shape' Tool Type automatically will select the Operation " -"Type\n" -"in the resulting geometry as Isolation." -msgstr "" -"Tipul de instrument (TT) poate fi:\n" -"- Circular cu 1 ... 4 dinți -> este doar informativ. Fiind circular,\n" -"lățimea tăiată în material este exact diametrul sculei.\n" -"- Ball -> numai informativ și face referire la freza de tip Ball.\n" -"- V-Shape -> va dezactiva parametrul Z-Cut în GUI\n" -"și v-a activa două câmpuri de GUII suplimentare în geometria rezultată: V-" -"Tip Dia și\n" -"V-Tip Angle. Ajustarea celor două valori va ajusta parametrul Z-Cut astfel\n" -"incat lățimea tăiată în material va fi egală cu valoarea din coloana " -"tabelului cu Diametrul sculei.\n" -"Alegerea tipului de instrument „Forma V” va selecta automat tipul de " -"operare\n" -"în geometria rezultată ca fiind Izolare." - -#: AppTools/ToolIsolation.py:300 AppTools/ToolNCC.py:318 -#: AppTools/ToolPaint.py:300 AppTools/ToolSolderPaste.py:135 -msgid "" -"Delete a selection of tools in the Tool Table\n" -"by first selecting a row(s) in the Tool Table." -msgstr "" -"Șterge o selecţie de unelte in Tabela de Unelte,\n" -"efectuata prin selectia liniilot din Tabela de Unelte." - -#: AppTools/ToolIsolation.py:467 -msgid "" -"Specify the type of object to be excepted from isolation.\n" -"It can be of type: Gerber or Geometry.\n" -"What is selected here will dictate the kind\n" -"of objects that will populate the 'Object' combobox." -msgstr "" -"Specifica obiectul care va fi exceptat de la izolare.\n" -"Poate fi de tip: Gerber sau Geometrie.\n" -"Ce se va selecta aici va controla tipul de \n" -"obiecte care vor aparea in combobox-ul\n" -"numit >Obiect<." - -#: AppTools/ToolIsolation.py:477 -msgid "Object whose area will be removed from isolation geometry." -msgstr "" -"Obiectul a cărui suprafată va fi indepărtată din geometria tip Izolare." - -#: AppTools/ToolIsolation.py:513 AppTools/ToolNCC.py:554 -msgid "" -"The type of FlatCAM object to be used as non copper clearing reference.\n" -"It can be Gerber, Excellon or Geometry." -msgstr "" -"Tipul de obiect FlatCAM care trebuie utilizat ca referință pt. curățarea de " -"non-cupru.\n" -"Poate fi Gerber, Excellon sau Geometry." - -#: AppTools/ToolIsolation.py:559 -msgid "Generate Isolation Geometry" -msgstr "Creează Geometrie de Izolare" - -#: AppTools/ToolIsolation.py:567 -msgid "" -"Create a Geometry object with toolpaths to cut \n" -"isolation outside, inside or on both sides of the\n" -"object. For a Gerber object outside means outside\n" -"of the Gerber feature and inside means inside of\n" -"the Gerber feature, if possible at all. This means\n" -"that only if the Gerber feature has openings inside, they\n" -"will be isolated. If what is wanted is to cut isolation\n" -"inside the actual Gerber feature, use a negative tool\n" -"diameter above." -msgstr "" -"Crează un obiect Geometrie cu treceri taietoare pentru\n" -"a efectua o izolare in afară, in interior sau pe ambele parti\n" -"ale obiectului.\n" -"Pt un Gerber >in afară< inseamna in exteriorul elem. Gerber\n" -"(traseu, zona etc) iar >in interior< inseamna efectiv in interiorul\n" -"acelui elem. Gerber (daca poate fi posibil)." - -#: AppTools/ToolIsolation.py:1266 AppTools/ToolIsolation.py:1426 -#: AppTools/ToolNCC.py:932 AppTools/ToolNCC.py:1449 AppTools/ToolPaint.py:857 -#: AppTools/ToolSolderPaste.py:576 AppTools/ToolSolderPaste.py:901 -#: App_Main.py:4210 -msgid "Please enter a tool diameter with non-zero value, in Float format." -msgstr "" -"Introduceti un diametru al uneltei valid: valoare ne-nula in format Real." - -#: AppTools/ToolIsolation.py:1270 AppTools/ToolNCC.py:936 -#: AppTools/ToolPaint.py:861 AppTools/ToolSolderPaste.py:580 App_Main.py:4214 -msgid "Adding Tool cancelled" -msgstr "Adăugarea unei unelte anulată" - -#: AppTools/ToolIsolation.py:1420 AppTools/ToolNCC.py:1443 -#: AppTools/ToolPaint.py:1203 AppTools/ToolSolderPaste.py:896 -msgid "Please enter a tool diameter to add, in Float format." -msgstr "Introduce diametrul unei unelte pt a fi adăugată, in format Real." - -#: AppTools/ToolIsolation.py:1451 AppTools/ToolIsolation.py:2959 -#: AppTools/ToolNCC.py:1474 AppTools/ToolNCC.py:4079 AppTools/ToolPaint.py:1227 -#: AppTools/ToolPaint.py:3628 AppTools/ToolSolderPaste.py:925 -msgid "Cancelled. Tool already in Tool Table." -msgstr "Anulat. Unealta există deja in Tabela de Unelte." - -#: AppTools/ToolIsolation.py:1458 AppTools/ToolIsolation.py:2977 -#: AppTools/ToolNCC.py:1481 AppTools/ToolNCC.py:4096 AppTools/ToolPaint.py:1232 -#: AppTools/ToolPaint.py:3645 -msgid "New tool added to Tool Table." -msgstr "O noua unealtă a fost adăugată in Tabela de Unelte." - -#: AppTools/ToolIsolation.py:1502 AppTools/ToolNCC.py:1525 -#: AppTools/ToolPaint.py:1276 -msgid "Tool from Tool Table was edited." -msgstr "O unealtă din Tabela de Unelte a fost editata." - -#: AppTools/ToolIsolation.py:1514 AppTools/ToolNCC.py:1537 -#: AppTools/ToolPaint.py:1288 AppTools/ToolSolderPaste.py:986 -msgid "Cancelled. New diameter value is already in the Tool Table." -msgstr "" -"Anulat. Noua valoare pt diametrul uneltei este deja in Tabela de Unelte." - -#: AppTools/ToolIsolation.py:1566 AppTools/ToolNCC.py:1589 -#: AppTools/ToolPaint.py:1386 -msgid "Delete failed. Select a tool to delete." -msgstr "Ștergere eșuată. Selectează o unealtă pt ștergere." - -#: AppTools/ToolIsolation.py:1572 AppTools/ToolNCC.py:1595 -#: AppTools/ToolPaint.py:1392 -msgid "Tool(s) deleted from Tool Table." -msgstr "Au fost șterse unelte din Tabela de Unelte." - -#: AppTools/ToolIsolation.py:1620 -msgid "Isolating..." -msgstr "Se izoleaza..." - -#: AppTools/ToolIsolation.py:1654 -msgid "Failed to create Follow Geometry with tool diameter" -msgstr "Nu a reușit să creeze Geometria de Urmarire cu diametrul uneltei" - -#: AppTools/ToolIsolation.py:1657 -msgid "Follow Geometry was created with tool diameter" -msgstr "Geometria de tip Urmarire a fost creata cu diametrul uneltei" - -#: AppTools/ToolIsolation.py:1698 -msgid "Click on a polygon to isolate it." -msgstr "Faceți clic pe un poligon pentru a-l izola." - -#: AppTools/ToolIsolation.py:1812 AppTools/ToolIsolation.py:1832 -#: AppTools/ToolIsolation.py:1967 AppTools/ToolIsolation.py:2138 -msgid "Subtracting Geo" -msgstr "Scădere Geo" - -#: AppTools/ToolIsolation.py:1816 AppTools/ToolIsolation.py:1971 -#: AppTools/ToolIsolation.py:2142 -msgid "Intersecting Geo" -msgstr "Geometria de Intersecţie" - -#: AppTools/ToolIsolation.py:1865 AppTools/ToolIsolation.py:2032 -#: AppTools/ToolIsolation.py:2199 -msgid "Empty Geometry in" -msgstr "Geometrie goala in" - -#: AppTools/ToolIsolation.py:2041 -msgid "" -"Partial failure. The geometry was processed with all tools.\n" -"But there are still not-isolated geometry elements. Try to include a tool " -"with smaller diameter." -msgstr "" -"Eșec parțial. Geometria a fost procesată cu toate uneltele.\n" -"Dar mai există elemente de geometrie care nu sunt izolate. Încercați să " -"includeți o unealtă cu diametrul mai mic." - -#: AppTools/ToolIsolation.py:2044 -msgid "" -"The following are coordinates for the copper features that could not be " -"isolated:" -msgstr "" -"Următoarele sunt coordonatele poligoanelor care nu au putut fi izolate:" - -#: AppTools/ToolIsolation.py:2356 AppTools/ToolIsolation.py:2465 -#: AppTools/ToolPaint.py:1535 -msgid "Added polygon" -msgstr "S-a adăugat poligon" - -#: AppTools/ToolIsolation.py:2357 AppTools/ToolIsolation.py:2467 -msgid "Click to add next polygon or right click to start isolation." -msgstr "" -"Faceți clic pentru a adăuga următorul poligon sau faceți clic dreapta pentru " -"a începe izolarea." - -#: AppTools/ToolIsolation.py:2369 AppTools/ToolPaint.py:1549 -msgid "Removed polygon" -msgstr "Poligon eliminat" - -#: AppTools/ToolIsolation.py:2370 -msgid "Click to add/remove next polygon or right click to start isolation." -msgstr "" -"Faceți clic pentru a adăuga / elimina următorul poligon sau faceți clic " -"dreapta pentru a începe izolarea." - -#: AppTools/ToolIsolation.py:2375 AppTools/ToolPaint.py:1555 -msgid "No polygon detected under click position." -msgstr "Nu a fost detectat niciun poligon sub poziția clicului." - -#: AppTools/ToolIsolation.py:2401 AppTools/ToolPaint.py:1584 -msgid "List of single polygons is empty. Aborting." -msgstr "Lista Poligoanelor este goală. Intrerup." - -#: AppTools/ToolIsolation.py:2470 -msgid "No polygon in selection." -msgstr "Niciun poligon în selecție." - -#: AppTools/ToolIsolation.py:2498 AppTools/ToolNCC.py:1725 -#: AppTools/ToolPaint.py:1619 -msgid "Click the end point of the paint area." -msgstr "Faceți clic pe punctul final al zonei de pictat." - -#: AppTools/ToolIsolation.py:2916 AppTools/ToolNCC.py:4036 -#: AppTools/ToolPaint.py:3585 App_Main.py:5318 App_Main.py:5328 -msgid "Tool from DB added in Tool Table." -msgstr "Unealtă din Baza de date adăugată in Tabela de Unelte." - -#: AppTools/ToolMove.py:102 -msgid "MOVE: Click on the Start point ..." -msgstr "MUTARE: Click pe punctul de Start ..." - -#: AppTools/ToolMove.py:113 -msgid "Cancelled. No object(s) to move." -msgstr "Anulat. Nu sunt obiecte care să fie mutate." - -#: AppTools/ToolMove.py:140 -msgid "MOVE: Click on the Destination point ..." -msgstr "MUTARE: Click pe punctul Destinaţie..." - -#: AppTools/ToolMove.py:163 -msgid "Moving..." -msgstr "In mișcare ..." - -#: AppTools/ToolMove.py:166 -msgid "No object(s) selected." -msgstr "Nici-un obiect nu este selectat." - -#: AppTools/ToolMove.py:221 -msgid "Error when mouse left click." -msgstr "Eroare atunci când faceți clic pe butonul stânga al mouse-ului." - -#: AppTools/ToolNCC.py:42 -msgid "Non-Copper Clearing" -msgstr "Curățăre Non-Cu" - -#: AppTools/ToolNCC.py:86 AppTools/ToolPaint.py:79 -msgid "Obj Type" -msgstr "Tip obiect" - -#: AppTools/ToolNCC.py:88 -msgid "" -"Specify the type of object to be cleared of excess copper.\n" -"It can be of type: Gerber or Geometry.\n" -"What is selected here will dictate the kind\n" -"of objects that will populate the 'Object' combobox." -msgstr "" -"Precizați tipul de obiect care trebuie curățat de excesul de cupru.\n" -"Poate fi de tip: Gerber sau Geometry.\n" -"Ceea ce este selectat aici va dicta genul\n" -"de obiecte care vor popula combobox-ul „Obiect”." - -#: AppTools/ToolNCC.py:110 -msgid "Object to be cleared of excess copper." -msgstr "Obiect care trebuie curatat de excesul de cupru." - -#: AppTools/ToolNCC.py:138 -msgid "" -"This is the Tool Number.\n" -"Non copper clearing will start with the tool with the biggest \n" -"diameter, continuing until there are no more tools.\n" -"Only tools that create NCC clearing geometry will still be present\n" -"in the resulting geometry. This is because with some tools\n" -"this function will not be able to create painting geometry." -msgstr "" -"Numărul uneltei.\n" -"Curățarea de cupru va incepe cu unealta cu diametrul cel mai mare\n" -"continuand ulterior cu cele cu dia mai mic pana numai sunt unelte\n" -"sau s-a terminat procesul.\n" -"Doar uneltele care efectiv au creat geometrie vor fi prezente in obiectul\n" -"final. Aceasta deaorece unele unelte nu vor putea genera geometrie." - -#: AppTools/ToolNCC.py:597 AppTools/ToolPaint.py:536 -msgid "Generate Geometry" -msgstr "Genereza Geometrie" - -#: AppTools/ToolNCC.py:1638 -msgid "Wrong Tool Dia value format entered, use a number." -msgstr "Diametrul uneltei este in format gresit, foloseşte un număr Real." - -#: AppTools/ToolNCC.py:1649 AppTools/ToolPaint.py:1443 -msgid "No selected tools in Tool Table." -msgstr "Nu sunt unelte selectate in Tabela de Unelte." - -#: AppTools/ToolNCC.py:2005 AppTools/ToolNCC.py:3024 -msgid "NCC Tool. Preparing non-copper polygons." -msgstr "Unealta NCC. Se pregătesc poligoanele non-cupru." - -#: AppTools/ToolNCC.py:2064 AppTools/ToolNCC.py:3152 -msgid "NCC Tool. Calculate 'empty' area." -msgstr "Unealta NCC. Calculează aria 'goală'." - -#: AppTools/ToolNCC.py:2083 AppTools/ToolNCC.py:2192 AppTools/ToolNCC.py:2207 -#: AppTools/ToolNCC.py:3165 AppTools/ToolNCC.py:3270 AppTools/ToolNCC.py:3285 -#: AppTools/ToolNCC.py:3551 AppTools/ToolNCC.py:3652 AppTools/ToolNCC.py:3667 -msgid "Buffering finished" -msgstr "Buferarea terminată" - -#: AppTools/ToolNCC.py:2091 AppTools/ToolNCC.py:2214 AppTools/ToolNCC.py:3173 -#: AppTools/ToolNCC.py:3292 AppTools/ToolNCC.py:3558 AppTools/ToolNCC.py:3674 -msgid "Could not get the extent of the area to be non copper cleared." -msgstr "" -"Nu s-a putut obtine intinderea suprafaței care să fie curățată de cupru." - -#: AppTools/ToolNCC.py:2121 AppTools/ToolNCC.py:2200 AppTools/ToolNCC.py:3200 -#: AppTools/ToolNCC.py:3277 AppTools/ToolNCC.py:3578 AppTools/ToolNCC.py:3659 -msgid "" -"Isolation geometry is broken. Margin is less than isolation tool diameter." -msgstr "" -"Geometria de Izolare este discontinuă.\n" -"Marginea este mai mic decat diametrul uneltei de izolare." - -#: AppTools/ToolNCC.py:2217 AppTools/ToolNCC.py:3296 AppTools/ToolNCC.py:3677 -msgid "The selected object is not suitable for copper clearing." -msgstr "Obiectul selectat nu este potrivit pentru curățarea cuprului." - -#: AppTools/ToolNCC.py:2224 AppTools/ToolNCC.py:3303 -msgid "NCC Tool. Finished calculation of 'empty' area." -msgstr "Unealta NCC. S-a terminat calculul suprafetei 'goale'." - -#: AppTools/ToolNCC.py:2267 -msgid "Clearing the polygon with the method: lines." -msgstr "Curatarea poligonului cu metoda: linii." - -#: AppTools/ToolNCC.py:2277 -msgid "Failed. Clearing the polygon with the method: seed." -msgstr "A eșuat. Se sterge poligonul cu metoda: punct sursa." - -#: AppTools/ToolNCC.py:2286 -msgid "Failed. Clearing the polygon with the method: standard." -msgstr "A eșuat. Se curate poligonul cu metoda: standard." - -#: AppTools/ToolNCC.py:2300 -msgid "Geometry could not be cleared completely" -msgstr "Geometria nu a putut fi stearsă complet" - -#: AppTools/ToolNCC.py:2325 AppTools/ToolNCC.py:2327 AppTools/ToolNCC.py:2973 -#: AppTools/ToolNCC.py:2975 -msgid "Non-Copper clearing ..." -msgstr "Curățare Non-Cupru ..." - -#: AppTools/ToolNCC.py:2377 AppTools/ToolNCC.py:3120 -msgid "" -"NCC Tool. Finished non-copper polygons. Normal copper clearing task started." -msgstr "" -"Unelata NCC. S-a terminat pregătirea poligoanelor non-cupru. Taskul de " -"curatare normal de cupru a inceput." - -#: AppTools/ToolNCC.py:2415 AppTools/ToolNCC.py:2663 -msgid "NCC Tool failed creating bounding box." -msgstr "Unealta NCC a esuat in a crea forma inconjurătoare." - -#: AppTools/ToolNCC.py:2430 AppTools/ToolNCC.py:2680 AppTools/ToolNCC.py:3316 -#: AppTools/ToolNCC.py:3702 -msgid "NCC Tool clearing with tool diameter" -msgstr "Unealta NCC cu diametrul uneltei" - -#: AppTools/ToolNCC.py:2430 AppTools/ToolNCC.py:2680 AppTools/ToolNCC.py:3316 -#: AppTools/ToolNCC.py:3702 -msgid "started." -msgstr "a inceput." - -#: AppTools/ToolNCC.py:2588 AppTools/ToolNCC.py:3477 -msgid "" -"There is no NCC Geometry in the file.\n" -"Usually it means that the tool diameter is too big for the painted " -"geometry.\n" -"Change the painting parameters and try again." -msgstr "" -"Nu există nicio Geometrie NCC în fișier.\n" -"De obicei, înseamnă că diametrul uneltei este prea mare pentru geometria " -"pictată.\n" -"Schimbați parametrii Paint și încercați din nou." - -#: AppTools/ToolNCC.py:2597 AppTools/ToolNCC.py:3486 -msgid "NCC Tool clear all done." -msgstr "Unealta NCC curătare toate efectuată." - -#: AppTools/ToolNCC.py:2600 AppTools/ToolNCC.py:3489 -msgid "NCC Tool clear all done but the copper features isolation is broken for" -msgstr "" -"Unealta NCC curătare toate efectuată dar izolatia este intreruptă pentru" - -#: AppTools/ToolNCC.py:2602 AppTools/ToolNCC.py:2888 AppTools/ToolNCC.py:3491 -#: AppTools/ToolNCC.py:3874 -msgid "tools" -msgstr "unelte" - -#: AppTools/ToolNCC.py:2884 AppTools/ToolNCC.py:3870 -msgid "NCC Tool Rest Machining clear all done." -msgstr "Unealta NCC curătare cu prelucrare tip 'rest' efectuată." - -#: AppTools/ToolNCC.py:2887 AppTools/ToolNCC.py:3873 -msgid "" -"NCC Tool Rest Machining clear all done but the copper features isolation is " -"broken for" -msgstr "" -"Unealta NCC curătare toate cu prelucrare tip 'rest' efectuată dar izolatia " -"este intreruptă pentru" - -#: AppTools/ToolNCC.py:2985 -msgid "NCC Tool started. Reading parameters." -msgstr "Unealta NCC a pornit. Se citesc parametrii." - -#: AppTools/ToolNCC.py:3972 -msgid "" -"Try to use the Buffering Type = Full in Preferences -> Gerber General. " -"Reload the Gerber file after this change." -msgstr "" -"Incearcă să folosesti optiunea Tipul de buffering = Complet in Preferinte -> " -"Gerber General. Reincarcă fisierul Gerber după această schimbare." - -#: AppTools/ToolOptimal.py:85 -msgid "Number of decimals kept for found distances." -msgstr "Numărul de zecimale păstrate pentru distanțele găsite." - -#: AppTools/ToolOptimal.py:93 -msgid "Minimum distance" -msgstr "Distanta minima" - -#: AppTools/ToolOptimal.py:94 -msgid "Display minimum distance between copper features." -msgstr "Afișează distanța minimă între caracteristicile de cupru." - -#: AppTools/ToolOptimal.py:98 -msgid "Determined" -msgstr "Determinat" - -#: AppTools/ToolOptimal.py:112 -msgid "Occurring" -msgstr "Aparute" - -#: AppTools/ToolOptimal.py:113 -msgid "How many times this minimum is found." -msgstr "De câte ori este găsit acest minim." - -#: AppTools/ToolOptimal.py:119 -msgid "Minimum points coordinates" -msgstr "Coordonatele punctelor minime" - -#: AppTools/ToolOptimal.py:120 AppTools/ToolOptimal.py:126 -msgid "Coordinates for points where minimum distance was found." -msgstr "Coordonate pentru puncte în care a fost găsită distanța minimă." - -#: AppTools/ToolOptimal.py:139 AppTools/ToolOptimal.py:215 -msgid "Jump to selected position" -msgstr "Salt la poziția selectată" - -#: AppTools/ToolOptimal.py:141 AppTools/ToolOptimal.py:217 -msgid "" -"Select a position in the Locations text box and then\n" -"click this button." -msgstr "" -"Selectați o poziție în caseta de text Locații, apoi\n" -"faceți clic pe acest buton." - -#: AppTools/ToolOptimal.py:149 -msgid "Other distances" -msgstr "Alte distanțe" - -#: AppTools/ToolOptimal.py:150 -msgid "" -"Will display other distances in the Gerber file ordered from\n" -"the minimum to the maximum, not including the absolute minimum." -msgstr "" -"Va afișa alte distanțe din fișierul Gerber ordonate de la\n" -"minim până la maxim, neincluzând minimul absolut." - -#: AppTools/ToolOptimal.py:155 -msgid "Other distances points coordinates" -msgstr "Coordonatele altor puncte distanțe" - -#: AppTools/ToolOptimal.py:156 AppTools/ToolOptimal.py:170 -#: AppTools/ToolOptimal.py:177 AppTools/ToolOptimal.py:194 -#: AppTools/ToolOptimal.py:201 -msgid "" -"Other distances and the coordinates for points\n" -"where the distance was found." -msgstr "" -"Alte distanțe și coordonatele pentru puncte\n" -"unde a fost găsită distanța." - -#: AppTools/ToolOptimal.py:169 -msgid "Gerber distances" -msgstr "Distanțele Gerber" - -#: AppTools/ToolOptimal.py:193 -msgid "Points coordinates" -msgstr "Coordonatele punctelor" - -#: AppTools/ToolOptimal.py:225 -msgid "Find Minimum" -msgstr "Găsiți Minim" - -#: AppTools/ToolOptimal.py:227 -msgid "" -"Calculate the minimum distance between copper features,\n" -"this will allow the determination of the right tool to\n" -"use for isolation or copper clearing." -msgstr "" -"Calculați distanța minimă între caracteristicile de cupru,\n" -"acest lucru va permite determinarea uneltei potrivite\n" -"pentru izolare sau curatare de cupru." - -#: AppTools/ToolOptimal.py:352 -msgid "Only Gerber objects can be evaluated." -msgstr "Doar obiecte tip Gerber pot fi folosite." - -#: AppTools/ToolOptimal.py:358 -msgid "" -"Optimal Tool. Started to search for the minimum distance between copper " -"features." -msgstr "" -"Unealta Optim. A început să caute distanța minimă între caracteristicile de " -"cupru." - -#: AppTools/ToolOptimal.py:368 -msgid "Optimal Tool. Parsing geometry for aperture" -msgstr "Unealta Optim. Analiza geometriei pentru apertura" - -#: AppTools/ToolOptimal.py:379 -msgid "Optimal Tool. Creating a buffer for the object geometry." -msgstr "" -"Unealta Optim. Se creeaza o Geometrie la o distanta de geometria obiectului." - -#: AppTools/ToolOptimal.py:389 -msgid "" -"The Gerber object has one Polygon as geometry.\n" -"There are no distances between geometry elements to be found." -msgstr "" -"Obiectul Gerber are un poligon ca geometrie.\n" -"Nu există distanțe între elementele de geometrie care sa poata fi gasite." - -#: AppTools/ToolOptimal.py:394 -msgid "" -"Optimal Tool. Finding the distances between each two elements. Iterations" -msgstr "" -"Unealta Optim. Se caută distanțele dintre fiecare două elemente. Iterații" - -#: AppTools/ToolOptimal.py:429 -msgid "Optimal Tool. Finding the minimum distance." -msgstr "Unealta Optim. Se caută distanța minimă." - -#: AppTools/ToolOptimal.py:445 -msgid "Optimal Tool. Finished successfully." -msgstr "Unealta Optim. Procesul s-a terminat cu succes." - -#: AppTools/ToolPDF.py:91 AppTools/ToolPDF.py:95 -msgid "Open PDF" -msgstr "Încarcă PDF" - -#: AppTools/ToolPDF.py:98 -msgid "Open PDF cancelled" -msgstr "Deschidere PDF anulată" - -#: AppTools/ToolPDF.py:122 -msgid "Parsing PDF file ..." -msgstr "Se parsează fisierul PDF ..." - -#: AppTools/ToolPDF.py:138 App_Main.py:8593 -msgid "Failed to open" -msgstr "A eșuat incărcarea fişierului" - -#: AppTools/ToolPDF.py:203 AppTools/ToolPcbWizard.py:445 App_Main.py:8542 -msgid "No geometry found in file" -msgstr "Nici-o informaţie de tip geometrie nu s-a gasit in fişierul" - -#: AppTools/ToolPDF.py:206 AppTools/ToolPDF.py:279 -#, python-format -msgid "Rendering PDF layer #%d ..." -msgstr "Se generează layer-ul PDF #%d ..." - -#: AppTools/ToolPDF.py:210 AppTools/ToolPDF.py:283 -msgid "Open PDF file failed." -msgstr "Deschiderea fişierului PDF a eşuat." - -#: AppTools/ToolPDF.py:215 AppTools/ToolPDF.py:288 -msgid "Rendered" -msgstr "Randat" - -#: AppTools/ToolPaint.py:81 -msgid "" -"Specify the type of object to be painted.\n" -"It can be of type: Gerber or Geometry.\n" -"What is selected here will dictate the kind\n" -"of objects that will populate the 'Object' combobox." -msgstr "" -"Specificați tipul de obiect care urmează să fie pictat.\n" -"Poate fi de tip: Gerber sau Geometry.\n" -"Ceea ce este selectat aici va dicta genul\n" -"de obiecte care vor popula combobox-ul „Obiect”." - -#: AppTools/ToolPaint.py:103 -msgid "Object to be painted." -msgstr "Obiect care trebuie pictat." - -#: AppTools/ToolPaint.py:116 -msgid "" -"Tools pool from which the algorithm\n" -"will pick the ones used for painting." -msgstr "" -"O suma de unelte din care algoritmul va alege pe acelea\n" -"care vor fi folosite pentru 'pictare'." - -#: AppTools/ToolPaint.py:133 -msgid "" -"This is the Tool Number.\n" -"Painting will start with the tool with the biggest diameter,\n" -"continuing until there are no more tools.\n" -"Only tools that create painting geometry will still be present\n" -"in the resulting geometry. This is because with some tools\n" -"this function will not be able to create painting geometry." -msgstr "" -"Numărul uneltei.\n" -"'Pictarea' va incepe cu unealta cu diametrul cel mai mare\n" -"continuand ulterior cu cele cu dia mai mic pana numai sunt unelte\n" -"sau s-a terminat procesul.\n" -"Doar uneltele care efectiv au creat geometrie vor fi prezente in obiectul\n" -"final. Aceasta deaorece unele unelte nu vor putea genera geometrie." - -#: AppTools/ToolPaint.py:145 -msgid "" -"The Tool Type (TT) can be:\n" -"- Circular -> it is informative only. Being circular,\n" -"the cut width in material is exactly the tool diameter.\n" -"- Ball -> informative only and make reference to the Ball type endmill.\n" -"- V-Shape -> it will disable Z-Cut parameter in the resulting geometry UI " -"form\n" -"and enable two additional UI form fields in the resulting geometry: V-Tip " -"Dia and\n" -"V-Tip Angle. Adjusting those two values will adjust the Z-Cut parameter " -"such\n" -"as the cut width into material will be equal with the value in the Tool " -"Diameter\n" -"column of this table.\n" -"Choosing the 'V-Shape' Tool Type automatically will select the Operation " -"Type\n" -"in the resulting geometry as Isolation." -msgstr "" -"Tipul de instrument (TT) poate fi:\n" -"- Circular -> este doar informativ. Fiind circular,\n" -"lățimea tăiată în material este exact diametrul sculei.\n" -"- Ball -> numai informativ și face referire la freza de tip Ball.\n" -"- V-Shape -> va dezactiva parametrul Z-Cut în GUI\n" -"și v-a activa două câmpuri de GUII suplimentare în geometria rezultată: V-" -"Tip Dia și\n" -"V-Tip Angle. Ajustarea celor două valori va ajusta parametrul Z-Cut astfel\n" -"incat lățimea tăiată în material va fi egală cu valoarea din coloana " -"tabelului cu Diametrul sculei.\n" -"Alegerea tipului de instrument „Forma V” va selecta automat tipul de " -"operare\n" -"în geometria rezultată ca fiind Izolare." - -#: AppTools/ToolPaint.py:497 -msgid "" -"The type of FlatCAM object to be used as paint reference.\n" -"It can be Gerber, Excellon or Geometry." -msgstr "" -"Tipul de obiect FlatCAM care trebuie utilizat ca referință pt. pictare.\n" -"Poate fi Gerber, Excellon sau Geometry." - -#: AppTools/ToolPaint.py:538 -msgid "" -"- 'Area Selection' - left mouse click to start selection of the area to be " -"painted.\n" -"Keeping a modifier key pressed (CTRL or SHIFT) will allow to add multiple " -"areas.\n" -"- 'All Polygons' - the Paint will start after click.\n" -"- 'Reference Object' - will do non copper clearing within the area\n" -"specified by another object." -msgstr "" -"- „Selecție zonă” - faceți clic stânga cu mouse-ul pentru a începe selecția " -"zonei care va fi pictată.\n" -"Menținerea unei taste de modificare apăsată (CTRL sau SHIFT) va permite " -"adăugarea mai multor zone.\n" -"- „Toate Poligoanele” - Pictarea va începe după clic.\n" -"- „Obiect de referință” - va face o curățare fără cupru în zona specificată " -"de un alt obiect." - -#: AppTools/ToolPaint.py:1412 -#, python-format -msgid "Could not retrieve object: %s" -msgstr "Nu s-a putut incărca obiectul: %s" - -#: AppTools/ToolPaint.py:1422 -msgid "Can't do Paint on MultiGeo geometries" -msgstr "Nu se poate face 'pictare' pe geometrii MultiGeo" - -#: AppTools/ToolPaint.py:1459 -msgid "Click on a polygon to paint it." -msgstr "Faceți clic pe un poligon pentru a-l picta." - -#: AppTools/ToolPaint.py:1472 -msgid "Click the start point of the paint area." -msgstr "Faceți clic pe punctul de pornire al zonei de pictat." - -#: AppTools/ToolPaint.py:1537 -msgid "Click to add next polygon or right click to start painting." -msgstr "" -"Faceți clic pentru a adăuga următorul poligon sau faceți clic dreapta pentru " -"a începe Paint." - -#: AppTools/ToolPaint.py:1550 -msgid "Click to add/remove next polygon or right click to start painting." -msgstr "" -"Faceți clic pentru a adăuga / elimina următorul poligon sau faceți clic " -"dreapta pentru a începe Paint." - -#: AppTools/ToolPaint.py:2054 -msgid "Painting polygon with method: lines." -msgstr "Se pictează poligonul cu metoda: linii." - -#: AppTools/ToolPaint.py:2066 -msgid "Failed. Painting polygon with method: seed." -msgstr "Esuat. Se pictează poligonul cu metoda: sămantă." - -#: AppTools/ToolPaint.py:2077 -msgid "Failed. Painting polygon with method: standard." -msgstr "Esuat. Se picteaza poligonul cu metoda: standard." - -#: AppTools/ToolPaint.py:2093 -msgid "Geometry could not be painted completely" -msgstr "Geometria nu a fost posibil să fie 'pictată' complet" - -#: AppTools/ToolPaint.py:2122 AppTools/ToolPaint.py:2125 -#: AppTools/ToolPaint.py:2133 AppTools/ToolPaint.py:2436 -#: AppTools/ToolPaint.py:2439 AppTools/ToolPaint.py:2447 -#: AppTools/ToolPaint.py:2935 AppTools/ToolPaint.py:2938 -#: AppTools/ToolPaint.py:2944 -msgid "Paint Tool." -msgstr "Unealta Paint." - -#: AppTools/ToolPaint.py:2122 AppTools/ToolPaint.py:2125 -#: AppTools/ToolPaint.py:2133 -msgid "Normal painting polygon task started." -msgstr "Taskul de pictare normal a unui polygon a inceput." - -#: AppTools/ToolPaint.py:2123 AppTools/ToolPaint.py:2437 -#: AppTools/ToolPaint.py:2936 -msgid "Buffering geometry..." -msgstr "Crează o geometrie de tipul Bufer..." - -#: AppTools/ToolPaint.py:2145 AppTools/ToolPaint.py:2454 -#: AppTools/ToolPaint.py:2952 -msgid "No polygon found." -msgstr "Nu s-a gasit nici-un poligon." - -#: AppTools/ToolPaint.py:2175 -msgid "Painting polygon..." -msgstr "Se 'pictează' un poligon..." - -#: AppTools/ToolPaint.py:2185 AppTools/ToolPaint.py:2500 -#: AppTools/ToolPaint.py:2690 AppTools/ToolPaint.py:2998 -#: AppTools/ToolPaint.py:3177 -msgid "Painting with tool diameter = " -msgstr "Pictand cu o unealtă cu diametrul = " - -#: AppTools/ToolPaint.py:2186 AppTools/ToolPaint.py:2501 -#: AppTools/ToolPaint.py:2691 AppTools/ToolPaint.py:2999 -#: AppTools/ToolPaint.py:3178 -msgid "started" -msgstr "a inceput" - -#: AppTools/ToolPaint.py:2211 AppTools/ToolPaint.py:2527 -#: AppTools/ToolPaint.py:2717 AppTools/ToolPaint.py:3025 -#: AppTools/ToolPaint.py:3204 -msgid "Margin parameter too big. Tool is not used" -msgstr "Parametrul Margine este prea mare. Unealta nu este folosită" - -#: AppTools/ToolPaint.py:2269 AppTools/ToolPaint.py:2596 -#: AppTools/ToolPaint.py:2774 AppTools/ToolPaint.py:3088 -#: AppTools/ToolPaint.py:3266 -msgid "" -"Could not do Paint. Try a different combination of parameters. Or a " -"different strategy of paint" -msgstr "" -"Nu s-a putut face operatia de 'pictare'. Incearcă o combinaţie diferita de " -"parametri. Sau o strategie diferita de 'pictare'" - -#: AppTools/ToolPaint.py:2326 AppTools/ToolPaint.py:2662 -#: AppTools/ToolPaint.py:2831 AppTools/ToolPaint.py:3149 -#: AppTools/ToolPaint.py:3328 -msgid "" -"There is no Painting Geometry in the file.\n" -"Usually it means that the tool diameter is too big for the painted " -"geometry.\n" -"Change the painting parameters and try again." -msgstr "" -"Nu exista nici-o Geometrie rezultata din 'pictare' in acest fişier.\n" -"De obicei inseamna că diametrul uneltei este prea mare pentru elemetele " -"geometrice.\n" -"Schimbă parametrii de 'pictare' și încearcă din nou." - -#: AppTools/ToolPaint.py:2349 -msgid "Paint Single failed." -msgstr "Pictarea unui polygon a esuat." - -#: AppTools/ToolPaint.py:2355 -msgid "Paint Single Done." -msgstr "Pictarea unui polygon efectuată." - -#: AppTools/ToolPaint.py:2357 AppTools/ToolPaint.py:2867 -#: AppTools/ToolPaint.py:3364 -msgid "Polygon Paint started ..." -msgstr "Paint pt poligon a inceput ..." - -#: AppTools/ToolPaint.py:2436 AppTools/ToolPaint.py:2439 -#: AppTools/ToolPaint.py:2447 -msgid "Paint all polygons task started." -msgstr "Taskul de pictare pt toate poligoanele a inceput." - -#: AppTools/ToolPaint.py:2478 AppTools/ToolPaint.py:2976 -msgid "Painting polygons..." -msgstr "Se 'pictează' poligoane..." - -#: AppTools/ToolPaint.py:2671 -msgid "Paint All Done." -msgstr "Pictarea Tuturor poligoanelor efectuată." - -#: AppTools/ToolPaint.py:2840 AppTools/ToolPaint.py:3337 -msgid "Paint All with Rest-Machining done." -msgstr "'Paint' pentru toate poligoanele cu strategia Rest a fost efectuată." - -#: AppTools/ToolPaint.py:2859 -msgid "Paint All failed." -msgstr "Pictarea pt toate poligoanele a easuat." - -#: AppTools/ToolPaint.py:2865 -msgid "Paint Poly All Done." -msgstr "Pictarea pt toate poligoanele efectuată." - -#: AppTools/ToolPaint.py:2935 AppTools/ToolPaint.py:2938 -#: AppTools/ToolPaint.py:2944 -msgid "Painting area task started." -msgstr "Taskul de pictare a unei arii a inceput." - -#: AppTools/ToolPaint.py:3158 -msgid "Paint Area Done." -msgstr "Paint pt o zona efectuata." - -#: AppTools/ToolPaint.py:3356 -msgid "Paint Area failed." -msgstr "Pictarea unei Zone a esuat." - -#: AppTools/ToolPaint.py:3362 -msgid "Paint Poly Area Done." -msgstr "Paint pt o Zonă efectuat." - -#: AppTools/ToolPanelize.py:55 -msgid "" -"Specify the type of object to be panelized\n" -"It can be of type: Gerber, Excellon or Geometry.\n" -"The selection here decide the type of objects that will be\n" -"in the Object combobox." -msgstr "" -"Specifica tipul de obiect care va fi panelizat.\n" -"Poate fi de tipul: Gerber, Excellon sau Geometrie.\n" -"Selectia facuta aici va dicta tipul de obiecte care se vor\n" -"regasi in combobox-ul >Obiect<." - -#: AppTools/ToolPanelize.py:88 -msgid "" -"Object to be panelized. This means that it will\n" -"be duplicated in an array of rows and columns." -msgstr "" -"Obiectul care va fi panelizat.\n" -"Acesta va fi multiplicat intr-o arie\n" -"de linii și coloane." - -#: AppTools/ToolPanelize.py:100 -msgid "Penelization Reference" -msgstr "Referintă panelizare" - -#: AppTools/ToolPanelize.py:102 -msgid "" -"Choose the reference for panelization:\n" -"- Object = the bounding box of a different object\n" -"- Bounding Box = the bounding box of the object to be panelized\n" -"\n" -"The reference is useful when doing panelization for more than one\n" -"object. The spacings (really offsets) will be applied in reference\n" -"to this reference object therefore maintaining the panelized\n" -"objects in sync." -msgstr "" -"Alege referinta pt panelizare:\n" -"- Obiect = forma inconjurătoare a unui alt obiect\n" -"- Forma inconjurătoare = forma inconjurătoare a obiectului care tb " -"panelizat\n" -"\n" -"Referinta este utila cand se face panelizarea pt mai mult de un obiect. " -"Spatierile\n" -"(mai degraba ofsetări) vor fi aplicate avand ca referintă acest obiect de " -"referintă,\n" -"prin urmare mentinand obiectele paenlizate in sincronizare unul cu altul." - -#: AppTools/ToolPanelize.py:123 -msgid "Box Type" -msgstr "Tip container" - -#: AppTools/ToolPanelize.py:125 -msgid "" -"Specify the type of object to be used as an container for\n" -"panelization. It can be: Gerber or Geometry type.\n" -"The selection here decide the type of objects that will be\n" -"in the Box Object combobox." -msgstr "" -"Tipul de obiect care va fi folosit ca și container pt panelizare.\n" -"Poate fi de tiul: Gerber sau Geometrie.\n" -"Selectia facuta aici va dicta tipul de obiecte care se vor\n" -"regasi in combobox-ul >Container<." - -#: AppTools/ToolPanelize.py:139 -msgid "" -"The actual object that is used as container for the\n" -" selected object that is to be panelized." -msgstr "" -"Obiectul care este folosit ca și container \n" -"pt obiectul care va fi panelizat." - -#: AppTools/ToolPanelize.py:149 -msgid "Panel Data" -msgstr "Date panel" - -#: AppTools/ToolPanelize.py:151 -msgid "" -"This informations will shape the resulting panel.\n" -"The number of rows and columns will set how many\n" -"duplicates of the original geometry will be generated.\n" -"\n" -"The spacings will set the distance between any two\n" -"elements of the panel array." -msgstr "" -"Aceste informatii vor determina forma panelului rezultant.\n" -"Numărul de linii si de coloane va determina cat de multe \n" -"copii ale geometriei obiectului original vor fi create.\n" -"\n" -"Spatierile sunt de fapt distante intre oricare două elemente ale \n" -"ariei panelului." - -#: AppTools/ToolPanelize.py:214 -msgid "" -"Choose the type of object for the panel object:\n" -"- Geometry\n" -"- Gerber" -msgstr "" -"Alege tipul de obiect care va fi creat pt obiectul panelizat:\n" -"- Geometrie\n" -"-Gerber" - -#: AppTools/ToolPanelize.py:222 -msgid "Constrain panel within" -msgstr "Mentine panelul in" - -#: AppTools/ToolPanelize.py:263 -msgid "Panelize Object" -msgstr "Panelizează obiectul" - -#: AppTools/ToolPanelize.py:265 AppTools/ToolRulesCheck.py:501 -msgid "" -"Panelize the specified object around the specified box.\n" -"In other words it creates multiple copies of the source object,\n" -"arranged in a 2D array of rows and columns." -msgstr "" -"Se panelizează obiectul conform containerului selectat.\n" -"Cu alte cuvinte se crează copii multiple ale obiectului sursa,\n" -"aranjate intr-o arie 2D de linii și coloane." - -#: AppTools/ToolPanelize.py:333 -msgid "Panel. Tool" -msgstr "Unealta Panel" - -#: AppTools/ToolPanelize.py:468 -msgid "Columns or Rows are zero value. Change them to a positive integer." -msgstr "" -"Val. coloane sau linii este zero. Schimbă aceasta val. intr-un număr pozitiv " -"intreg." - -#: AppTools/ToolPanelize.py:505 -msgid "Generating panel ... " -msgstr "Se generează Panel-ul… " - -#: AppTools/ToolPanelize.py:788 -msgid "Generating panel ... Adding the Gerber code." -msgstr "Generarea panelului ... Adăugarea codului Gerber." - -#: AppTools/ToolPanelize.py:796 -msgid "Generating panel... Spawning copies" -msgstr "Generarea panelului ... Se fac copii" - -#: AppTools/ToolPanelize.py:803 -msgid "Panel done..." -msgstr "Panel executat ..." - -#: AppTools/ToolPanelize.py:806 -#, python-brace-format -msgid "" -"{text} Too big for the constrain area. Final panel has {col} columns and " -"{row} rows" -msgstr "" -"{text} Prea mare pt aria desemnată. Panelul final are {col} coloane si {row} " -"linii" - -#: AppTools/ToolPanelize.py:815 -msgid "Panel created successfully." -msgstr "Panel creat cu succes." - -#: AppTools/ToolPcbWizard.py:31 -msgid "PcbWizard Import Tool" -msgstr "Unealta import PcbWizard" - -#: AppTools/ToolPcbWizard.py:40 -msgid "Import 2-file Excellon" -msgstr "Importa un Excellon bi-fisier" - -#: AppTools/ToolPcbWizard.py:51 -msgid "Load files" -msgstr "Încărcați fișierele" - -#: AppTools/ToolPcbWizard.py:57 -msgid "Excellon file" -msgstr "Fisier Excellon" - -#: AppTools/ToolPcbWizard.py:59 -msgid "" -"Load the Excellon file.\n" -"Usually it has a .DRL extension" -msgstr "" -"Incarcă fisierul Excellon.\n" -"De obicei are extensia .DRL" - -#: AppTools/ToolPcbWizard.py:65 -msgid "INF file" -msgstr "Fisierul INF" - -#: AppTools/ToolPcbWizard.py:67 -msgid "Load the INF file." -msgstr "Incarca fisierul INF." - -#: AppTools/ToolPcbWizard.py:79 -msgid "Tool Number" -msgstr "Număr unealtă" - -#: AppTools/ToolPcbWizard.py:81 -msgid "Tool diameter in file units." -msgstr "Dimaetrul uneltei in unitătile fisierului." - -#: AppTools/ToolPcbWizard.py:87 -msgid "Excellon format" -msgstr "Format Excellon" - -#: AppTools/ToolPcbWizard.py:95 -msgid "Int. digits" -msgstr "Partea intreagă" - -#: AppTools/ToolPcbWizard.py:97 -msgid "The number of digits for the integral part of the coordinates." -msgstr "" -"Acest număr reprezinta numărul de digiti din partea\n" -"intreagă a coordonatelor." - -#: AppTools/ToolPcbWizard.py:104 -msgid "Frac. digits" -msgstr "Partea zecimală" - -#: AppTools/ToolPcbWizard.py:106 -msgid "The number of digits for the fractional part of the coordinates." -msgstr "" -"Acest număr reprezinta numărul de digiti din partea\n" -"zecimala a coordonatelor." - -#: AppTools/ToolPcbWizard.py:113 -msgid "No Suppression" -msgstr "Fără supresie" - -#: AppTools/ToolPcbWizard.py:114 -msgid "Zeros supp." -msgstr "Supresie Zero" - -#: AppTools/ToolPcbWizard.py:116 -msgid "" -"The type of zeros suppression used.\n" -"Can be of type:\n" -"- LZ = leading zeros are kept\n" -"- TZ = trailing zeros are kept\n" -"- No Suppression = no zero suppression" -msgstr "" -"Tipul de supresie de zerouri care\n" -"este folosit.\n" -"Poate fi:\n" -"- LZ = zerourile din fată sunt păstrate\n" -"- TZ = zerourile de la coadă sunt păstrate\n" -"- Fără Supresie = nu se face supresie de zerouri" - -#: AppTools/ToolPcbWizard.py:129 -msgid "" -"The type of units that the coordinates and tool\n" -"diameters are using. Can be INCH or MM." -msgstr "" -"Tipul de unităti folosite pt coordonate si\n" -"pentru diametrul uneltelor. Poate fi INCH sau MM." - -#: AppTools/ToolPcbWizard.py:136 -msgid "Import Excellon" -msgstr "Importă Excellon" - -#: AppTools/ToolPcbWizard.py:138 -msgid "" -"Import in FlatCAM an Excellon file\n" -"that store it's information's in 2 files.\n" -"One usually has .DRL extension while\n" -"the other has .INF extension." -msgstr "" -"Importă in FlatCAM un fisier Excellon\n" -"care isi stochează informatia in 2 fisiere.\n" -"Unul are de obicei extensia .DRL in timp\n" -"ce celălalt are extensia .INF." - -#: AppTools/ToolPcbWizard.py:197 -msgid "PCBWizard Tool" -msgstr "Unealta PCBWizard" - -#: AppTools/ToolPcbWizard.py:291 AppTools/ToolPcbWizard.py:295 -msgid "Load PcbWizard Excellon file" -msgstr "Incarcă un fisier Excellon tip PCBWizard" - -#: AppTools/ToolPcbWizard.py:314 AppTools/ToolPcbWizard.py:318 -msgid "Load PcbWizard INF file" -msgstr "Incarcă un fisier INF tip PCBWizard" - -#: AppTools/ToolPcbWizard.py:366 -msgid "" -"The INF file does not contain the tool table.\n" -"Try to open the Excellon file from File -> Open -> Excellon\n" -"and edit the drill diameters manually." -msgstr "" -"Fisierul INF nu contine tabela de unelte.\n" -"Incearcă să deschizi fisierul Excellon din Fisier -> Deschide -> \n" -"Excellon si să editezi manual diametrele uneltelor." - -#: AppTools/ToolPcbWizard.py:387 -msgid "PcbWizard .INF file loaded." -msgstr "Fisierul .INF tip PCBWizard a fost incărcat." - -#: AppTools/ToolPcbWizard.py:392 -msgid "Main PcbWizard Excellon file loaded." -msgstr "Fişierul Excellon tip PCBWizard a fost incărcat." - -#: AppTools/ToolPcbWizard.py:424 App_Main.py:8520 -msgid "This is not Excellon file." -msgstr "Acesta nu este un fişier Excellon." - -#: AppTools/ToolPcbWizard.py:427 -msgid "Cannot parse file" -msgstr "Nu se poate parsa fişierul" - -#: AppTools/ToolPcbWizard.py:450 -msgid "Importing Excellon." -msgstr "Excellon in curs de import." - -#: AppTools/ToolPcbWizard.py:457 -msgid "Import Excellon file failed." -msgstr "Fişierul Excellon nu a fost posibil să fie importat." - -#: AppTools/ToolPcbWizard.py:464 -msgid "Imported" -msgstr "Importat" - -#: AppTools/ToolPcbWizard.py:467 -msgid "Excellon merging is in progress. Please wait..." -msgstr "Fuziunea fisiere Excellon este in curs. Vă rugăm aşteptați ..." - -#: AppTools/ToolPcbWizard.py:469 -msgid "The imported Excellon file is empty." -msgstr "Fişierul Excellon importat este gol." - -#: AppTools/ToolProperties.py:116 App_Main.py:4692 App_Main.py:6803 -#: App_Main.py:6903 App_Main.py:6944 App_Main.py:6985 App_Main.py:7027 -#: App_Main.py:7069 App_Main.py:7113 App_Main.py:7157 App_Main.py:7681 -#: App_Main.py:7685 -msgid "No object selected." -msgstr "Nici-un obiect nu este selectat." - -#: AppTools/ToolProperties.py:131 -msgid "Object Properties are displayed." -msgstr "Proprietatile obiectului sunt afisate in Tab-ul Unealta." - -#: AppTools/ToolProperties.py:136 -msgid "Properties Tool" -msgstr "Unealta Proprietati" - -#: AppTools/ToolProperties.py:150 -msgid "TYPE" -msgstr "TIP" - -#: AppTools/ToolProperties.py:151 -msgid "NAME" -msgstr "NUME" - -#: AppTools/ToolProperties.py:153 -msgid "Dimensions" -msgstr "Dimensiuni" - -#: AppTools/ToolProperties.py:181 -msgid "Geo Type" -msgstr "Tip Geo" - -#: AppTools/ToolProperties.py:184 -msgid "Single-Geo" -msgstr "Geo-Unică" - -#: AppTools/ToolProperties.py:185 -msgid "Multi-Geo" -msgstr "Geo-Multi" - -#: AppTools/ToolProperties.py:196 -msgid "Calculating dimensions ... Please wait." -msgstr "Se calculează dimensiunile ... Aşteaptă." - -#: AppTools/ToolProperties.py:339 AppTools/ToolProperties.py:343 -#: AppTools/ToolProperties.py:345 -msgid "Inch" -msgstr "Inch" - -#: AppTools/ToolProperties.py:339 AppTools/ToolProperties.py:344 -#: AppTools/ToolProperties.py:346 -msgid "Metric" -msgstr "Metric" - -#: AppTools/ToolProperties.py:421 AppTools/ToolProperties.py:486 -msgid "Drills number" -msgstr "Numărul de găuri" - -#: AppTools/ToolProperties.py:422 AppTools/ToolProperties.py:488 -msgid "Slots number" -msgstr "Numărul de sloturi" - -#: AppTools/ToolProperties.py:424 -msgid "Drills total number:" -msgstr "Număr total de gauri:" - -#: AppTools/ToolProperties.py:425 -msgid "Slots total number:" -msgstr "Număr total de sloturi:" - -#: AppTools/ToolProperties.py:452 AppTools/ToolProperties.py:455 -#: AppTools/ToolProperties.py:458 AppTools/ToolProperties.py:483 -msgid "Present" -msgstr "Prezent" - -#: AppTools/ToolProperties.py:453 AppTools/ToolProperties.py:484 -msgid "Solid Geometry" -msgstr "Geometrie Solidă" - -#: AppTools/ToolProperties.py:456 -msgid "GCode Text" -msgstr "Text GCode" - -#: AppTools/ToolProperties.py:459 -msgid "GCode Geometry" -msgstr "Geometrie GCode" - -#: AppTools/ToolProperties.py:462 -msgid "Data" -msgstr "Date" - -#: AppTools/ToolProperties.py:495 -msgid "Depth of Cut" -msgstr "Adâncimea de Tăiere" - -#: AppTools/ToolProperties.py:507 -msgid "Clearance Height" -msgstr "Înălțime Sigură" - -#: AppTools/ToolProperties.py:539 -msgid "Routing time" -msgstr "Timpul de rutare" - -#: AppTools/ToolProperties.py:546 -msgid "Travelled distance" -msgstr "Distanța parcursă" - -#: AppTools/ToolProperties.py:564 -msgid "Width" -msgstr "Lătime" - -#: AppTools/ToolProperties.py:570 AppTools/ToolProperties.py:578 -msgid "Box Area" -msgstr "Arie pătratică" - -#: AppTools/ToolProperties.py:573 AppTools/ToolProperties.py:581 -msgid "Convex_Hull Area" -msgstr "Arie convexă" - -#: AppTools/ToolProperties.py:588 AppTools/ToolProperties.py:591 -msgid "Copper Area" -msgstr "Aria de Cupru" - -#: AppTools/ToolPunchGerber.py:30 AppTools/ToolPunchGerber.py:323 -msgid "Punch Gerber" -msgstr "Punctează Gerber" - -#: AppTools/ToolPunchGerber.py:65 -msgid "Gerber into which to punch holes" -msgstr "Obiect Gerber pentru Punctare găuri" - -#: AppTools/ToolPunchGerber.py:85 -msgid "ALL" -msgstr "TOATE" - -#: AppTools/ToolPunchGerber.py:166 -msgid "" -"Remove the geometry of Excellon from the Gerber to create the holes in pads." -msgstr "" -"Îndepărtați geometria Excellon din obiectul Gerber pentru a crea găurile din " -"pad-uri." - -#: AppTools/ToolPunchGerber.py:325 -msgid "" -"Create a Gerber object from the selected object, within\n" -"the specified box." -msgstr "" -"Creează un obiect Gerber din obiectul selectat, in cadrul\n" -"formei 'cutie' specificate." - -#: AppTools/ToolPunchGerber.py:425 -msgid "Punch Tool" -msgstr "Unealta Punctare" - -#: AppTools/ToolPunchGerber.py:599 -msgid "The value of the fixed diameter is 0.0. Aborting." -msgstr "Valoarea pentru diametrul fix ste 0.0. Renuntăm." - -#: AppTools/ToolPunchGerber.py:602 -msgid "" -"Could not generate punched hole Gerber because the punch hole size is bigger " -"than some of the apertures in the Gerber object." -msgstr "" -"Nu s-a putut genera un obiect Gerber cu găuri punctate, deoarece dimensiunea " -"găurii de perforare este mai mare decât unele dintre aperturile din obiectul " -"Gerber." - -#: AppTools/ToolPunchGerber.py:665 -msgid "" -"Could not generate punched hole Gerber because the newly created object " -"geometry is the same as the one in the source object geometry..." -msgstr "" -"Nu s-a putut genera un obiect cu găuri puctate, deoarece geometria " -"obiectului nou creat este aceeași cu cea din geometria obiectului sursă ..." - -#: AppTools/ToolQRCode.py:80 -msgid "Gerber Object to which the QRCode will be added." -msgstr "Obiect Gerber la care se va adăuga codul QR." - -#: AppTools/ToolQRCode.py:116 -msgid "The parameters used to shape the QRCode." -msgstr "Parametrii utilizați pentru modelarea codului QR." - -#: AppTools/ToolQRCode.py:216 -msgid "Export QRCode" -msgstr "Exportă Codul QR" - -#: AppTools/ToolQRCode.py:218 -msgid "" -"Show a set of controls allowing to export the QRCode\n" -"to a SVG file or an PNG file." -msgstr "" -"Afișați un set de controale care permit exportul codului QR\n" -"într-un fișier SVG sau într-un fișier PNG." - -#: AppTools/ToolQRCode.py:257 -msgid "Transparent back color" -msgstr "Culoare de fundal transparentă" - -#: AppTools/ToolQRCode.py:282 -msgid "Export QRCode SVG" -msgstr "Exporta QRCode SVG" - -#: AppTools/ToolQRCode.py:284 -msgid "Export a SVG file with the QRCode content." -msgstr "Exportați un fișier SVG cu conținutul QRCode." - -#: AppTools/ToolQRCode.py:295 -msgid "Export QRCode PNG" -msgstr "Exportă QRCode PNG" - -#: AppTools/ToolQRCode.py:297 -msgid "Export a PNG image file with the QRCode content." -msgstr "Exportați un fișier imagine PNG cu conținutul QRCode." - -#: AppTools/ToolQRCode.py:308 -msgid "Insert QRCode" -msgstr "Inserați codul QR" - -#: AppTools/ToolQRCode.py:310 -msgid "Create the QRCode object." -msgstr "Creați obiectul QRCode." - -#: AppTools/ToolQRCode.py:424 AppTools/ToolQRCode.py:759 -#: AppTools/ToolQRCode.py:808 -msgid "Cancelled. There is no QRCode Data in the text box." -msgstr "Anulat. Nu există date QRCode în caseta de text." - -#: AppTools/ToolQRCode.py:443 -msgid "Generating QRCode geometry" -msgstr "Generarea geometriei QRCode" - -#: AppTools/ToolQRCode.py:483 -msgid "Click on the Destination point ..." -msgstr "Click pe punctul de Destinaţie ..." - -#: AppTools/ToolQRCode.py:598 -msgid "QRCode Tool done." -msgstr "Unealta QRCode efectuata." - -#: AppTools/ToolQRCode.py:791 AppTools/ToolQRCode.py:795 -msgid "Export PNG" -msgstr "Exporta PNG" - -#: AppTools/ToolQRCode.py:838 AppTools/ToolQRCode.py:842 App_Main.py:6835 -#: App_Main.py:6839 -msgid "Export SVG" -msgstr "Exporta SVG" - -#: AppTools/ToolRulesCheck.py:33 -msgid "Check Rules" -msgstr "Verificați regulile" - -#: AppTools/ToolRulesCheck.py:63 -msgid "Gerber objects for which to check rules." -msgstr "Obiecte Gerber pentru care trebuie verificate regulile." - -#: AppTools/ToolRulesCheck.py:78 -msgid "Top" -msgstr "Top" - -#: AppTools/ToolRulesCheck.py:80 -msgid "The Top Gerber Copper object for which rules are checked." -msgstr "Obiectul Top Gerber cupru pentru care sunt verificate regulile." - -#: AppTools/ToolRulesCheck.py:96 -msgid "Bottom" -msgstr "Bottom" - -#: AppTools/ToolRulesCheck.py:98 -msgid "The Bottom Gerber Copper object for which rules are checked." -msgstr "Obiectul Bottom Gerber cupru pentru care sunt verificate regulile." - -#: AppTools/ToolRulesCheck.py:114 -msgid "SM Top" -msgstr "SM Top" - -#: AppTools/ToolRulesCheck.py:116 -msgid "The Top Gerber Solder Mask object for which rules are checked." -msgstr "" -"Obiectul Top (superior) Gerber Solder Mask pentru care sunt verificate " -"regulile." - -#: AppTools/ToolRulesCheck.py:132 -msgid "SM Bottom" -msgstr "SM Bottom" - -#: AppTools/ToolRulesCheck.py:134 -msgid "The Bottom Gerber Solder Mask object for which rules are checked." -msgstr "" -"Obiectul Bottom (inferior) Gerber Solder Mask pentru care sunt verificate " -"regulile." - -#: AppTools/ToolRulesCheck.py:150 -msgid "Silk Top" -msgstr "Silk Top" - -#: AppTools/ToolRulesCheck.py:152 -msgid "The Top Gerber Silkscreen object for which rules are checked." -msgstr "Obiectul Top Gerber Silkscreen pentru care sunt verificate regulile." - -#: AppTools/ToolRulesCheck.py:168 -msgid "Silk Bottom" -msgstr "Silk Bottom" - -#: AppTools/ToolRulesCheck.py:170 -msgid "The Bottom Gerber Silkscreen object for which rules are checked." -msgstr "" -"Obiectul Bottom Gerber Silkscreen pentru care sunt verificate regulile." - -#: AppTools/ToolRulesCheck.py:188 -msgid "The Gerber Outline (Cutout) object for which rules are checked." -msgstr "" -"Obiectul Gerber Outline (decupaj) pentru care sunt verificate regulile." - -#: AppTools/ToolRulesCheck.py:201 -msgid "Excellon objects for which to check rules." -msgstr "Obiecte Excellon pentru care trebuie verificate regulile." - -#: AppTools/ToolRulesCheck.py:213 -msgid "Excellon 1" -msgstr "Excellon 1" - -#: AppTools/ToolRulesCheck.py:215 -msgid "" -"Excellon object for which to check rules.\n" -"Holds the plated holes or a general Excellon file content." -msgstr "" -"Obiect Excellon pentru care trebuie verificate regulile.\n" -"Contine găurile placate sau un conținut general Excellon." - -#: AppTools/ToolRulesCheck.py:232 -msgid "Excellon 2" -msgstr "Excellon 2" - -#: AppTools/ToolRulesCheck.py:234 -msgid "" -"Excellon object for which to check rules.\n" -"Holds the non-plated holes." -msgstr "" -"Obiect Excellon pentru care trebuie verificate regulile.\n" -"Contine găurile ne-placate." - -#: AppTools/ToolRulesCheck.py:247 -msgid "All Rules" -msgstr "Totate Regulile" - -#: AppTools/ToolRulesCheck.py:249 -msgid "This check/uncheck all the rules below." -msgstr "Aceasta bifează/debifează toate regulile de mai jos." - -#: AppTools/ToolRulesCheck.py:499 -msgid "Run Rules Check" -msgstr "Executați Verificarea regulilor" - -#: AppTools/ToolRulesCheck.py:1158 AppTools/ToolRulesCheck.py:1218 -#: AppTools/ToolRulesCheck.py:1255 AppTools/ToolRulesCheck.py:1327 -#: AppTools/ToolRulesCheck.py:1381 AppTools/ToolRulesCheck.py:1419 -#: AppTools/ToolRulesCheck.py:1484 -msgid "Value is not valid." -msgstr "Valoarea nu este valabilă." - -#: AppTools/ToolRulesCheck.py:1172 -msgid "TOP -> Copper to Copper clearance" -msgstr "TOP -> Distanta de la Cupru la Cupru" - -#: AppTools/ToolRulesCheck.py:1183 -msgid "BOTTOM -> Copper to Copper clearance" -msgstr "BOTTOM -> Distanta de la Cupru la Cupru" - -#: AppTools/ToolRulesCheck.py:1188 AppTools/ToolRulesCheck.py:1282 -#: AppTools/ToolRulesCheck.py:1446 -msgid "" -"At least one Gerber object has to be selected for this rule but none is " -"selected." -msgstr "" -"Pentru această regulă trebuie selectat cel puțin un obiect Gerber, dar " -"niciunul nu este selectat." - -#: AppTools/ToolRulesCheck.py:1224 -msgid "" -"One of the copper Gerber objects or the Outline Gerber object is not valid." -msgstr "" -"Unul dintre obiectele Gerber din cupru sau obiectul Gerber contur nu este " -"valid." - -#: AppTools/ToolRulesCheck.py:1237 AppTools/ToolRulesCheck.py:1401 -msgid "" -"Outline Gerber object presence is mandatory for this rule but it is not " -"selected." -msgstr "" -"Prezenta obiectului Gerber contur este obligatorie pentru această regulă, " -"dar nu este selectată." - -#: AppTools/ToolRulesCheck.py:1254 AppTools/ToolRulesCheck.py:1281 -msgid "Silk to Silk clearance" -msgstr "Distanta Silk la Silk" - -#: AppTools/ToolRulesCheck.py:1267 -msgid "TOP -> Silk to Silk clearance" -msgstr "TOP -> Distanta Silk la Silk" - -#: AppTools/ToolRulesCheck.py:1277 -msgid "BOTTOM -> Silk to Silk clearance" -msgstr "BOTTOM -> Distanta Silk la Silk" - -#: AppTools/ToolRulesCheck.py:1333 -msgid "One or more of the Gerber objects is not valid." -msgstr "Unul sau mai multe dintre obiectele Gerber nu sunt valabile." - -#: AppTools/ToolRulesCheck.py:1341 -msgid "TOP -> Silk to Solder Mask Clearance" -msgstr "TOP -> Distanta Silk la Solder mask" - -#: AppTools/ToolRulesCheck.py:1347 -msgid "BOTTOM -> Silk to Solder Mask Clearance" -msgstr "BOTTOM -> Distanta Silk la Solder mask" - -#: AppTools/ToolRulesCheck.py:1351 -msgid "" -"Both Silk and Solder Mask Gerber objects has to be either both Top or both " -"Bottom." -msgstr "" -"Atât obiectele Silk cat si cele Solder Mask trebuie ori ambele TOP ori " -"ambele BOTTOM." - -#: AppTools/ToolRulesCheck.py:1387 -msgid "" -"One of the Silk Gerber objects or the Outline Gerber object is not valid." -msgstr "" -"Unul dintre obiectele Silk Gerber sau obiectul Contur Gerber nu este valid." - -#: AppTools/ToolRulesCheck.py:1431 -msgid "TOP -> Minimum Solder Mask Sliver" -msgstr "TOP -> Distanta minima intre elementele Solder Mask" - -#: AppTools/ToolRulesCheck.py:1441 -msgid "BOTTOM -> Minimum Solder Mask Sliver" -msgstr "BOTTOM -> Distanta minima intre elementele Solder Mask" - -#: AppTools/ToolRulesCheck.py:1490 -msgid "One of the Copper Gerber objects or the Excellon objects is not valid." -msgstr "" -"Unul dintre obiectele Gerber Cupru sau obiectele Excellon nu este valabil." - -#: AppTools/ToolRulesCheck.py:1506 -msgid "" -"Excellon object presence is mandatory for this rule but none is selected." -msgstr "" -"Prezența obiectului Excellon este obligatorie pentru această regulă, dar " -"niciunul nu este selectat." - -#: AppTools/ToolRulesCheck.py:1579 AppTools/ToolRulesCheck.py:1592 -#: AppTools/ToolRulesCheck.py:1603 AppTools/ToolRulesCheck.py:1616 -msgid "STATUS" -msgstr "STARE" - -#: AppTools/ToolRulesCheck.py:1582 AppTools/ToolRulesCheck.py:1606 -msgid "FAILED" -msgstr "A EȘUAT" - -#: AppTools/ToolRulesCheck.py:1595 AppTools/ToolRulesCheck.py:1619 -msgid "PASSED" -msgstr "A TRECUT" - -#: AppTools/ToolRulesCheck.py:1596 AppTools/ToolRulesCheck.py:1620 -msgid "Violations: There are no violations for the current rule." -msgstr "Încălcări: nu există încălcări pentru regula actuală." - -#: AppTools/ToolShell.py:59 -msgid "Clear the text." -msgstr "Ștergeți textul." - -#: AppTools/ToolShell.py:91 AppTools/ToolShell.py:93 -msgid "...processing..." -msgstr "...in procesare..." - -#: AppTools/ToolSolderPaste.py:37 -msgid "Solder Paste Tool" -msgstr "Unealta DispensorPF" - -#: AppTools/ToolSolderPaste.py:68 -msgid "Gerber Solderpaste object." -msgstr "Obiectul Gerber Soldermask." - -#: AppTools/ToolSolderPaste.py:81 -msgid "" -"Tools pool from which the algorithm\n" -"will pick the ones used for dispensing solder paste." -msgstr "" -"Un număr de unelte (nozzle) din care algoritmul va alege pe acelea\n" -"care vor fi folosite pentru dispensarea pastei de fludor." - -#: AppTools/ToolSolderPaste.py:96 -msgid "" -"This is the Tool Number.\n" -"The solder dispensing will start with the tool with the biggest \n" -"diameter, continuing until there are no more Nozzle tools.\n" -"If there are no longer tools but there are still pads not covered\n" -" with solder paste, the app will issue a warning message box." -msgstr "" -"Numărul Uneltei.\n" -"Dispensarea de pastă de fludor va incepe cu unealta care are dia\n" -"cel mai mare și va continua pana numai sunt unelte Nozzle disponibile\n" -"sau procesul s-a terminat.\n" -"Daca numai sunt unelte dar mai sunt inca paduri neacoperite de pastă de \n" -"fludor, aplicaţia va afisa un mesaj de avertizare in Status Bar." - -#: AppTools/ToolSolderPaste.py:103 -msgid "" -"Nozzle tool Diameter. It's value (in current FlatCAM units)\n" -"is the width of the solder paste dispensed." -msgstr "" -"Diametrul uneltei Nozzle. Valoarea sa (in unitati de maura curente)\n" -"este lăţimea cantiatii de pastă de fludor dispensata." - -#: AppTools/ToolSolderPaste.py:110 -msgid "New Nozzle Tool" -msgstr "Unealtă noua" - -#: AppTools/ToolSolderPaste.py:129 -msgid "" -"Add a new nozzle tool to the Tool Table\n" -"with the diameter specified above." -msgstr "" -"Adaugă o unealtă nouă tip Nozzle in Tabela de Unelte\n" -"cu diametrul specificat mai sus." - -#: AppTools/ToolSolderPaste.py:151 -msgid "STEP 1" -msgstr "PAS 1" - -#: AppTools/ToolSolderPaste.py:153 -msgid "" -"First step is to select a number of nozzle tools for usage\n" -"and then optionally modify the GCode parameters below." -msgstr "" -"Primul pas este să se efectueza o selecţie de unelte Nozzl pt \n" -"utilizare și apoi in mod optional, să se modifice parametrii\n" -"GCode de mai jos." - -#: AppTools/ToolSolderPaste.py:156 -msgid "" -"Select tools.\n" -"Modify parameters." -msgstr "" -"Selectează unelte.\n" -"Modifica parametri." - -#: AppTools/ToolSolderPaste.py:276 -msgid "" -"Feedrate (speed) while moving up vertically\n" -" to Dispense position (on Z plane)." -msgstr "" -"Viteza de deplasare la mișcarea pe verticala spre\n" -"poziţia de dispensare (in planul Z)." - -#: AppTools/ToolSolderPaste.py:346 -msgid "" -"Generate GCode for Solder Paste dispensing\n" -"on PCB pads." -msgstr "" -"Generează GCode pt dispensarea\n" -"de pastă de fludor pe padurile PCB." - -#: AppTools/ToolSolderPaste.py:367 -msgid "STEP 2" -msgstr "PAS 2" - -#: AppTools/ToolSolderPaste.py:369 -msgid "" -"Second step is to create a solder paste dispensing\n" -"geometry out of an Solder Paste Mask Gerber file." -msgstr "" -"Al 2-lea pas este să se creeze un obiect Geometrie pt dispensarea\n" -"de pastă de fludor, dintr-un fişier Gerber cu datele mastii de plasare\n" -"a pastei de fludor." - -#: AppTools/ToolSolderPaste.py:375 -msgid "Generate solder paste dispensing geometry." -msgstr "Generează un obiect Geometrie pt dispensarea de pastă de fludor." - -#: AppTools/ToolSolderPaste.py:398 -msgid "Geo Result" -msgstr "Rezultat Geo" - -#: AppTools/ToolSolderPaste.py:400 -msgid "" -"Geometry Solder Paste object.\n" -"The name of the object has to end in:\n" -"'_solderpaste' as a protection." -msgstr "" -"Obiect Geometrie pt dispensare pastă de fludor.\n" -"Numele obiectului trebuie să se termine obligatoriu\n" -"in: '_solderpaste'." - -#: AppTools/ToolSolderPaste.py:409 -msgid "STEP 3" -msgstr "PAS 3" - -#: AppTools/ToolSolderPaste.py:411 -msgid "" -"Third step is to select a solder paste dispensing geometry,\n" -"and then generate a CNCJob object.\n" -"\n" -"REMEMBER: if you want to create a CNCJob with new parameters,\n" -"first you need to generate a geometry with those new params,\n" -"and only after that you can generate an updated CNCJob." -msgstr "" -"Al 3-lea pas este selectia unei geometrii de dispensare a pastei de fludor\n" -"urmata de generarea unui obiect tip CNCJob.\n" -"\n" -"ATENTIE: daca se dorește crearea un ui obiect CNCJob cu param. noi,\n" -"mai intai trebuie generat obiectul Geometrie cu acei parametri noi și abia\n" -"apoi se poate genera un obiect CNCJob actualizat." - -#: AppTools/ToolSolderPaste.py:432 -msgid "CNC Result" -msgstr "Rezultat CNC" - -#: AppTools/ToolSolderPaste.py:434 -msgid "" -"CNCJob Solder paste object.\n" -"In order to enable the GCode save section,\n" -"the name of the object has to end in:\n" -"'_solderpaste' as a protection." -msgstr "" -"Obiect CNCJob pt dispensare pastă de fludor.\n" -"Pt a activa sectiunea de Salvare GCode,\n" -"numele obiectului trebuie să se termine obligatoriu in:\n" -"'_solderpaste'." - -#: AppTools/ToolSolderPaste.py:444 -msgid "View GCode" -msgstr "Vizualiz. GCode" - -#: AppTools/ToolSolderPaste.py:446 -msgid "" -"View the generated GCode for Solder Paste dispensing\n" -"on PCB pads." -msgstr "" -"Vizualizează codul GCode generat pt dispensarea de \n" -"pastă de fludor pe padurile PCB-ului." - -#: AppTools/ToolSolderPaste.py:456 -msgid "Save GCode" -msgstr "Salvează GCode" - -#: AppTools/ToolSolderPaste.py:458 -msgid "" -"Save the generated GCode for Solder Paste dispensing\n" -"on PCB pads, to a file." -msgstr "" -"Salvează codul GCode generat pt dispensare pastă de fludor\n" -"pe padurile unui PCB, intr-un fişier pe HDD." - -#: AppTools/ToolSolderPaste.py:468 -msgid "STEP 4" -msgstr "PAS 4" - -#: AppTools/ToolSolderPaste.py:470 -msgid "" -"Fourth step (and last) is to select a CNCJob made from \n" -"a solder paste dispensing geometry, and then view/save it's GCode." -msgstr "" -"Al 4-lea pas (ultimul) este să se selecteze un obiect CNCJob realizat\n" -"dintr-un obiect Geometrie pt dispensarea de pastă de fludor, apoi \n" -"avand posibilitatea de a vizualiza continutul acestuia sau de a-l salva\n" -"intr-un fişier GCode pe HDD." - -#: AppTools/ToolSolderPaste.py:930 -msgid "New Nozzle tool added to Tool Table." -msgstr "A fost adăugată o noua unealtă Nozzle in Tabela de Unelte." - -#: AppTools/ToolSolderPaste.py:973 -msgid "Nozzle tool from Tool Table was edited." -msgstr "Unealta Nozzle din Tabela de Unelte a fost editată." - -#: AppTools/ToolSolderPaste.py:1032 -msgid "Delete failed. Select a Nozzle tool to delete." -msgstr "Ștergerea a eșuat. Selectează o unealtă Nozzle pt a o șterge." - -#: AppTools/ToolSolderPaste.py:1038 -msgid "Nozzle tool(s) deleted from Tool Table." -msgstr "Uneltele (nozzle) au fost șterse din Tabela de Unelte." - -#: AppTools/ToolSolderPaste.py:1094 -msgid "No SolderPaste mask Gerber object loaded." -msgstr "" -"Nu este incărcat ni-un obiect Gerber cu informatia măstii pt pasta de fludor." - -#: AppTools/ToolSolderPaste.py:1112 -msgid "Creating Solder Paste dispensing geometry." -msgstr "Se creează Geometrie pt dispensare pastă de fludor." - -#: AppTools/ToolSolderPaste.py:1125 -msgid "No Nozzle tools in the tool table." -msgstr "Nu sunt unelte Nozzle in Tabela de Unelte." - -#: AppTools/ToolSolderPaste.py:1251 -msgid "Cancelled. Empty file, it has no geometry..." -msgstr "Anulat. Fişier gol, nu are geometrie ..." - -#: AppTools/ToolSolderPaste.py:1254 -msgid "Solder Paste geometry generated successfully" -msgstr "" -"Obiectul Geometrie pt dispens. de pastă de fludor a fost generat cu succes" - -#: AppTools/ToolSolderPaste.py:1261 -msgid "Some or all pads have no solder due of inadequate nozzle diameters..." -msgstr "" -"Cel puțin unele pad-uri nu au pastă de fludor datorita diametrelor uneltelor " -"(nozzle) ne adecvate." - -#: AppTools/ToolSolderPaste.py:1275 -msgid "Generating Solder Paste dispensing geometry..." -msgstr "Se generează Geometria de dispensare a pastei de fludor ..." - -#: AppTools/ToolSolderPaste.py:1295 -msgid "There is no Geometry object available." -msgstr "Nu există obiect Geometrie disponibil." - -#: AppTools/ToolSolderPaste.py:1300 -msgid "This Geometry can't be processed. NOT a solder_paste_tool geometry." -msgstr "" -"Acest obiect Geometrie nu poate fi procesat Nu este o Geometrie tip " -"solder_paste_tool." - -#: AppTools/ToolSolderPaste.py:1336 -msgid "An internal error has ocurred. See shell.\n" -msgstr "" -"A apărut o eroare internă. Verifică in TCL Shell pt mai multe detalii.\n" - -#: AppTools/ToolSolderPaste.py:1401 -msgid "ToolSolderPaste CNCjob created" -msgstr "ToolSolderPaste CNCjob a fost creat" - -#: AppTools/ToolSolderPaste.py:1420 -msgid "SP GCode Editor" -msgstr "Editor GCode SP" - -#: AppTools/ToolSolderPaste.py:1432 AppTools/ToolSolderPaste.py:1437 -#: AppTools/ToolSolderPaste.py:1492 -msgid "" -"This CNCJob object can't be processed. NOT a solder_paste_tool CNCJob object." -msgstr "" -"Acest obiect CNCJob nu poate fi procesat. Nu este un obiect CNCJob tip " -"'solder_paste_tool'." - -#: AppTools/ToolSolderPaste.py:1462 -msgid "No Gcode in the object" -msgstr "Nu există cod GCode in acest obiect" - -#: AppTools/ToolSolderPaste.py:1502 -msgid "Export GCode ..." -msgstr "Exporta GCode ..." - -#: AppTools/ToolSolderPaste.py:1550 -msgid "Solder paste dispenser GCode file saved to" -msgstr "Fişierul GCode pt dispensare pastă de fludor este salvat in" - -#: AppTools/ToolSub.py:83 -msgid "" -"Gerber object from which to subtract\n" -"the subtractor Gerber object." -msgstr "" -"Obiectul Gerber din care se scade \n" -"obiectul Gerber substractor." - -#: AppTools/ToolSub.py:96 AppTools/ToolSub.py:151 -msgid "Subtractor" -msgstr "Substractor" - -#: AppTools/ToolSub.py:98 -msgid "" -"Gerber object that will be subtracted\n" -"from the target Gerber object." -msgstr "" -"Obiectul Gerber care se scade din \n" -"obiectul Gerber tintă." - -#: AppTools/ToolSub.py:105 -msgid "Subtract Gerber" -msgstr "Execută" - -#: AppTools/ToolSub.py:107 -msgid "" -"Will remove the area occupied by the subtractor\n" -"Gerber from the Target Gerber.\n" -"Can be used to remove the overlapping silkscreen\n" -"over the soldermask." -msgstr "" -"Va indepărta aria ocupată de obiectul \n" -"Gerber substractor din obiectul Gerber tintă.\n" -"Poate fi utilizat pt. a indepărta silkscreen-ul\n" -"care se suprapune peste soldermask." - -#: AppTools/ToolSub.py:138 -msgid "" -"Geometry object from which to subtract\n" -"the subtractor Geometry object." -msgstr "" -"Obiectul Geometrie din care se scade \n" -"obiectul Geometrie substractor." - -#: AppTools/ToolSub.py:153 -msgid "" -"Geometry object that will be subtracted\n" -"from the target Geometry object." -msgstr "" -"Obiectul Geometrie care se va scădea \n" -"din obiectul Geometrie tintă." - -#: AppTools/ToolSub.py:161 -msgid "" -"Checking this will close the paths cut by the Geometry subtractor object." -msgstr "" -"Verificând aceasta, se vor închide căile tăiate de obiectul tăietor de tip " -"Geometrie." - -#: AppTools/ToolSub.py:164 -msgid "Subtract Geometry" -msgstr "Scadeti Geometria" - -#: AppTools/ToolSub.py:166 -msgid "" -"Will remove the area occupied by the subtractor\n" -"Geometry from the Target Geometry." -msgstr "" -"Va indepărta aria ocupată de obiectul Geometrie \n" -"substractor din obiectul Geometrie tintă." - -#: AppTools/ToolSub.py:264 -msgid "Sub Tool" -msgstr "Unealta Scădere" - -#: AppTools/ToolSub.py:285 AppTools/ToolSub.py:490 -msgid "No Target object loaded." -msgstr "Nu este incărcat un obiect Tintă." - -#: AppTools/ToolSub.py:288 -msgid "Loading geometry from Gerber objects." -msgstr "Se Încarcă geometria din obiectele Gerber." - -#: AppTools/ToolSub.py:300 AppTools/ToolSub.py:505 -msgid "No Subtractor object loaded." -msgstr "Nu este incărcat obiect Substractor (scăzător)." - -#: AppTools/ToolSub.py:342 -msgid "Finished parsing geometry for aperture" -msgstr "S-a terminat analiza geometriei pt apertura" - -#: AppTools/ToolSub.py:344 -msgid "Subtraction aperture processing finished." -msgstr "Procesarea de scădere a aperturii s-a încheiat." - -#: AppTools/ToolSub.py:464 AppTools/ToolSub.py:662 -msgid "Generating new object ..." -msgstr "Se generează un obiect nou ..." - -#: AppTools/ToolSub.py:467 AppTools/ToolSub.py:666 AppTools/ToolSub.py:745 -msgid "Generating new object failed." -msgstr "Generarea unui obiect nou a esuat." - -#: AppTools/ToolSub.py:471 AppTools/ToolSub.py:672 -msgid "Created" -msgstr "Creat" - -#: AppTools/ToolSub.py:519 -msgid "Currently, the Subtractor geometry cannot be of type Multigeo." -msgstr "Momentan, obiectul substractor Geometrie nu poate fi de tip Multigeo." - -#: AppTools/ToolSub.py:564 -msgid "Parsing solid_geometry ..." -msgstr "Analizează geometria solidă..." - -#: AppTools/ToolSub.py:566 -msgid "Parsing solid_geometry for tool" -msgstr "Se analizează Geometria pt unealta" - -#: AppTools/ToolTransform.py:23 -msgid "Object Transform" -msgstr "Transformare Obiect" - -#: AppTools/ToolTransform.py:78 -msgid "" -"Rotate the selected object(s).\n" -"The point of reference is the middle of\n" -"the bounding box for all selected objects." -msgstr "" -"Roteste obiectele selectate.\n" -"Punctul de referinţă este mijlocul \n" -"formei înconjurătoare pt toate obiectele." - -#: AppTools/ToolTransform.py:99 AppTools/ToolTransform.py:120 -msgid "" -"Angle for Skew action, in degrees.\n" -"Float number between -360 and 360." -msgstr "" -"Valoarea unghiului de Deformare, in grade.\n" -"Ia valori Reale între -360 si 360 grade." - -#: AppTools/ToolTransform.py:109 AppTools/ToolTransform.py:130 -msgid "" -"Skew/shear the selected object(s).\n" -"The point of reference is the middle of\n" -"the bounding box for all selected objects." -msgstr "" -"Deformează obiectele selectate.\n" -"Punctul de referinţă este mijlocul \n" -"formei înconjurătoare pt toate obiectele." - -#: AppTools/ToolTransform.py:159 AppTools/ToolTransform.py:179 -msgid "" -"Scale the selected object(s).\n" -"The point of reference depends on \n" -"the Scale reference checkbox state." -msgstr "" -"Scalează obiectele selectate.\n" -"Punctul de referinţă depinde de\n" -"starea checkbox-ului >Referința Scalare<." - -#: AppTools/ToolTransform.py:228 AppTools/ToolTransform.py:248 -msgid "" -"Offset the selected object(s).\n" -"The point of reference is the middle of\n" -"the bounding box for all selected objects.\n" -msgstr "" -"Deplasează obiectele selectate.\n" -"Punctul de referinţă este mijlocul formei înconjurătoare\n" -"pentru toate obiectele selectate.\n" - -#: AppTools/ToolTransform.py:268 AppTools/ToolTransform.py:273 -msgid "Flip the selected object(s) over the X axis." -msgstr "Oglindește obiectele selectate pe axa X." - -#: AppTools/ToolTransform.py:297 -msgid "Ref. Point" -msgstr "Pt. Ref" - -#: AppTools/ToolTransform.py:348 -msgid "" -"Create the buffer effect on each geometry,\n" -"element from the selected object, using the distance." -msgstr "" -"Creați efectul buffer pe fiecare geometrie,\n" -"element din obiectul selectat, folosind distanta." - -#: AppTools/ToolTransform.py:374 -msgid "" -"Create the buffer effect on each geometry,\n" -"element from the selected object, using the factor." -msgstr "" -"Creați efectul buffer pe fiecare geometrie,\n" -"element din obiectul selectat, folosing un factor." - -#: AppTools/ToolTransform.py:479 -msgid "Buffer D" -msgstr "Bufer D" - -#: AppTools/ToolTransform.py:480 -msgid "Buffer F" -msgstr "Bufer F" - -#: AppTools/ToolTransform.py:557 -msgid "Rotate transformation can not be done for a value of 0." -msgstr "Transformarea Rotire nu se poate face pentru o valoare de 0." - -#: AppTools/ToolTransform.py:596 AppTools/ToolTransform.py:619 -msgid "Scale transformation can not be done for a factor of 0 or 1." -msgstr "Transformarea Scalare nu se poate face pentru un factor de 0 sau 1." - -#: AppTools/ToolTransform.py:634 AppTools/ToolTransform.py:644 -msgid "Offset transformation can not be done for a value of 0." -msgstr "Transformarea Deplasare nu se poate face pentru o valoare de 0." - -#: AppTools/ToolTransform.py:676 -msgid "No object selected. Please Select an object to rotate!" -msgstr "" -"Nici-un obiect nu este selectat. Selectează un obiect pentru a fi Rotit!" - -#: AppTools/ToolTransform.py:702 -msgid "CNCJob objects can't be rotated." -msgstr "Obiectele tip CNCJob nu pot fi Rotite." - -#: AppTools/ToolTransform.py:710 -msgid "Rotate done" -msgstr "Rotaţie efectuată" - -#: AppTools/ToolTransform.py:713 AppTools/ToolTransform.py:783 -#: AppTools/ToolTransform.py:833 AppTools/ToolTransform.py:887 -#: AppTools/ToolTransform.py:917 AppTools/ToolTransform.py:953 -msgid "Due of" -msgstr "Datorită" - -#: AppTools/ToolTransform.py:713 AppTools/ToolTransform.py:783 -#: AppTools/ToolTransform.py:833 AppTools/ToolTransform.py:887 -#: AppTools/ToolTransform.py:917 AppTools/ToolTransform.py:953 -msgid "action was not executed." -msgstr "actiunea nu a fost efectuată." - -#: AppTools/ToolTransform.py:725 -msgid "No object selected. Please Select an object to flip" -msgstr "" -"Nici-un obiect nu este selectat. Selectează un obiect pentru a fi Oglindit" - -#: AppTools/ToolTransform.py:758 -msgid "CNCJob objects can't be mirrored/flipped." -msgstr "Obiectele tip CNCJob nu pot fi Oglindite." - -#: AppTools/ToolTransform.py:793 -msgid "Skew transformation can not be done for 0, 90 and 180 degrees." -msgstr "Transformarea Inclinare nu se poate face la 0, 90 și 180 de grade." - -#: AppTools/ToolTransform.py:798 -msgid "No object selected. Please Select an object to shear/skew!" -msgstr "" -"Nici-un obiect nu este selectat. Selectează un obiect pentru a fi Deformat!" - -#: AppTools/ToolTransform.py:818 -msgid "CNCJob objects can't be skewed." -msgstr "Obiectele tip CNCJob nu pot fi deformate." - -#: AppTools/ToolTransform.py:830 -msgid "Skew on the" -msgstr "Deformează pe" - -#: AppTools/ToolTransform.py:830 AppTools/ToolTransform.py:884 -#: AppTools/ToolTransform.py:914 -msgid "axis done" -msgstr "axa efectuată" - -#: AppTools/ToolTransform.py:844 -msgid "No object selected. Please Select an object to scale!" -msgstr "" -"Nici-un obiect nu este selectat. Selectează un obiect pentru a fi Scalat!" - -#: AppTools/ToolTransform.py:875 -msgid "CNCJob objects can't be scaled." -msgstr "Obiectele tip CNCJob nu pot fi scalate." - -#: AppTools/ToolTransform.py:884 -msgid "Scale on the" -msgstr "Scalează pe" - -#: AppTools/ToolTransform.py:894 -msgid "No object selected. Please Select an object to offset!" -msgstr "" -"Nici-un obiect nu este selectat. Selectează un obiect pentru a fi Ofsetat!" - -#: AppTools/ToolTransform.py:901 -msgid "CNCJob objects can't be offset." -msgstr "Obiectele tip CNCJob nu pot fi deplasate." - -#: AppTools/ToolTransform.py:914 -msgid "Offset on the" -msgstr "Ofset pe" - -#: AppTools/ToolTransform.py:924 -msgid "No object selected. Please Select an object to buffer!" -msgstr "" -"Nu a fost selectat niciun obiect. Vă rugăm să selectați un obiect de " -"tamponat (buffer)" - -#: AppTools/ToolTransform.py:927 -msgid "Applying Buffer" -msgstr "Aplicarea tampon (Buffer)" - -#: AppTools/ToolTransform.py:931 -msgid "CNCJob objects can't be buffered." -msgstr "CNCJob objects can't be buffered (buffer)." - -#: AppTools/ToolTransform.py:948 -msgid "Buffer done" -msgstr "Buffer finalizat" - -#: AppTranslation.py:104 -msgid "The application will restart." -msgstr "Aplicaţia va reporni ..." - -#: AppTranslation.py:106 -msgid "Are you sure do you want to change the current language to" -msgstr "Esti sigur că dorești să schimbi din limba curentă in" - -#: AppTranslation.py:107 -msgid "Apply Language ..." -msgstr "Aplică Traducere ..." - -#: AppTranslation.py:203 App_Main.py:3151 -msgid "" -"There are files/objects modified in FlatCAM. \n" -"Do you want to Save the project?" -msgstr "" -"FlatCAM are fişiere/obiecte care au fost modificate. \n" -"Dorești să Salvezi proiectul?" - -#: AppTranslation.py:206 App_Main.py:3154 App_Main.py:6411 -msgid "Save changes" -msgstr "Salvează modificarile" - -#: App_Main.py:477 +#: FlatCAMApp.py:491 msgid "FlatCAM is initializing ..." msgstr "FlatCAM se inițializează ..." -#: App_Main.py:620 +#: FlatCAMApp.py:639 msgid "Could not find the Language files. The App strings are missing." msgstr "Nu am gasit fişierele cu traduceri. Mesajele aplicaţiei lipsesc." -#: App_Main.py:692 +#: FlatCAMApp.py:709 msgid "" "FlatCAM is initializing ...\n" "Canvas initialization started." @@ -17119,7 +39,7 @@ msgstr "" "FlatCAM se inițializează ...\n" "Initializarea spațiului de afisare a inceput." -#: App_Main.py:712 +#: FlatCAMApp.py:729 msgid "" "FlatCAM is initializing ...\n" "Canvas initialization started.\n" @@ -17129,44 +49,63 @@ msgstr "" "Initializarea spațiului de afisare a inceput.\n" "Initializarea spatiului de afisare s-a terminat in" -#: App_Main.py:1558 App_Main.py:6524 +#: FlatCAMApp.py:1593 FlatCAMApp.py:7451 msgid "New Project - Not saved" msgstr "Proiect nou - Nu a fost salvat" -#: App_Main.py:1659 +#: FlatCAMApp.py:1689 msgid "" "Found old default preferences files. Please reboot the application to update." msgstr "" "Au fost găsite fișiere de preferințe implicite vechi. Vă rugăm să reporniți " "aplicația pentru a le actualiza." -#: App_Main.py:1726 +#: FlatCAMApp.py:1740 FlatCAMApp.py:2512 FlatCAMApp.py:2547 FlatCAMApp.py:2594 +#: FlatCAMApp.py:4540 FlatCAMApp.py:7535 FlatCAMApp.py:7572 FlatCAMApp.py:7614 +#: FlatCAMApp.py:7643 FlatCAMApp.py:7684 FlatCAMApp.py:7709 FlatCAMApp.py:7761 +#: FlatCAMApp.py:7796 FlatCAMApp.py:7841 FlatCAMApp.py:7882 FlatCAMApp.py:7923 +#: FlatCAMApp.py:7964 FlatCAMApp.py:8005 FlatCAMApp.py:8049 FlatCAMApp.py:8105 +#: FlatCAMApp.py:8137 FlatCAMApp.py:8169 FlatCAMApp.py:8402 FlatCAMApp.py:8440 +#: FlatCAMApp.py:8483 FlatCAMApp.py:8560 FlatCAMApp.py:8615 +#: FlatCAMBookmark.py:300 FlatCAMBookmark.py:342 FlatCAMDB.py:663 +#: FlatCAMDB.py:709 FlatCAMDB.py:2125 FlatCAMDB.py:2171 +#: flatcamEditors/FlatCAMExcEditor.py:1023 +#: flatcamEditors/FlatCAMExcEditor.py:1091 +#: flatcamEditors/FlatCAMTextEditor.py:223 flatcamGUI/FlatCAMGUI.py:3443 +#: flatcamGUI/FlatCAMGUI.py:3659 flatcamGUI/FlatCAMGUI.py:3874 +#: flatcamObjects/ObjectCollection.py:126 flatcamTools/ToolFilm.py:754 +#: flatcamTools/ToolFilm.py:900 flatcamTools/ToolImage.py:247 +#: flatcamTools/ToolMove.py:269 flatcamTools/ToolPcbWizard.py:301 +#: flatcamTools/ToolPcbWizard.py:324 flatcamTools/ToolQRCode.py:791 +#: flatcamTools/ToolQRCode.py:838 +msgid "Cancelled." +msgstr "Anulat." + +#: FlatCAMApp.py:1756 msgid "Open Config file failed." msgstr "Deschiderea fişierului de configurare a eşuat." -#: App_Main.py:1741 +#: FlatCAMApp.py:1771 msgid "Open Script file failed." msgstr "Deschiderea fişierului Script eşuat." -#: App_Main.py:1767 +#: FlatCAMApp.py:1797 msgid "Open Excellon file failed." msgstr "Deschiderea fişierului Excellon a eşuat." -#: App_Main.py:1780 +#: FlatCAMApp.py:1810 msgid "Open GCode file failed." msgstr "Deschiderea fişierului GCode a eşuat." -#: App_Main.py:1793 +#: FlatCAMApp.py:1823 msgid "Open Gerber file failed." msgstr "Deschiderea fişierului Gerber a eşuat." -#: App_Main.py:2116 -msgid "Select a Geometry, Gerber, Excellon or CNCJob Object to edit." -msgstr "" -"Selectează un obiect tip Geometrie Gerber, CNCJob sau Excellon pentru " -"editare." +#: FlatCAMApp.py:2131 +msgid "Select a Geometry, Gerber or Excellon Object to edit." +msgstr "Selectează un obiect tip Geometrie Gerber sau Excellon pentru editare." -#: App_Main.py:2131 +#: FlatCAMApp.py:2146 msgid "" "Simultaneous editing of tools geometry in a MultiGeo Geometry is not " "possible.\n" @@ -17176,94 +115,201 @@ msgstr "" "MultiGeo nu este posibilă.\n" "Se poate edita numai o singură geometrie de fiecare dată." -#: App_Main.py:2197 +#: FlatCAMApp.py:2204 msgid "Editor is activated ..." msgstr "Editorul este activ ..." -#: App_Main.py:2218 +#: FlatCAMApp.py:2225 msgid "Do you want to save the edited object?" msgstr "Vrei sa salvezi obiectul editat?" -#: App_Main.py:2254 +#: FlatCAMApp.py:2226 flatcamGUI/FlatCAMGUI.py:2288 +msgid "Close Editor" +msgstr "Inchide Editorul" + +#: FlatCAMApp.py:2229 FlatCAMApp.py:3518 FlatCAMApp.py:6085 FlatCAMApp.py:7345 +#: FlatCAMTranslation.py:109 FlatCAMTranslation.py:207 +#: flatcamGUI/FlatCAMGUI.py:2519 +#: flatcamGUI/preferences/PreferencesUIManager.py:1122 +msgid "Yes" +msgstr "Da" + +#: FlatCAMApp.py:2230 FlatCAMApp.py:3519 FlatCAMApp.py:6086 FlatCAMApp.py:7346 +#: FlatCAMTranslation.py:110 FlatCAMTranslation.py:208 +#: flatcamGUI/FlatCAMGUI.py:2520 +#: flatcamGUI/preferences/PreferencesUIManager.py:1123 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:164 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:150 +#: flatcamTools/ToolNCC.py:182 flatcamTools/ToolPaint.py:166 +msgid "No" +msgstr "Nu" + +#: FlatCAMApp.py:2231 FlatCAMApp.py:3520 FlatCAMApp.py:4478 FlatCAMApp.py:5103 +#: FlatCAMApp.py:7347 FlatCAMDB.py:128 FlatCAMDB.py:1689 +#: flatcamGUI/FlatCAMGUI.py:1347 +msgid "Cancel" +msgstr "Anuleaza" + +#: FlatCAMApp.py:2263 msgid "Object empty after edit." msgstr "Obiectul nu are date dupa editare." -#: App_Main.py:2259 App_Main.py:2277 App_Main.py:2296 +#: FlatCAMApp.py:2267 FlatCAMApp.py:2288 FlatCAMApp.py:2310 msgid "Editor exited. Editor content saved." msgstr "Ieşire din Editor. Continuțul editorului este salvat." -#: App_Main.py:2300 App_Main.py:2324 App_Main.py:2342 +#: FlatCAMApp.py:2314 FlatCAMApp.py:2337 FlatCAMApp.py:2355 msgid "Select a Gerber, Geometry or Excellon Object to update." msgstr "" "Selectează un obiect tip Gerber, Geometrie sau Excellon pentru actualizare." -#: App_Main.py:2303 +#: FlatCAMApp.py:2317 msgid "is updated, returning to App..." msgstr "este actualizat, întoarcere la aplicaţie..." -#: App_Main.py:2310 +#: FlatCAMApp.py:2324 msgid "Editor exited. Editor content was not saved." msgstr "Ieşire din Editor. Continuțul editorului nu a fost salvat." -#: App_Main.py:2443 App_Main.py:2447 +#: FlatCAMApp.py:2504 FlatCAMApp.py:2508 msgid "Import FlatCAM Preferences" msgstr "Importă Preferințele FlatCAM" -#: App_Main.py:2458 +#: FlatCAMApp.py:2519 msgid "Imported Defaults from" msgstr "Valorile default au fost importate din" -#: App_Main.py:2478 App_Main.py:2484 +#: FlatCAMApp.py:2539 FlatCAMApp.py:2544 msgid "Export FlatCAM Preferences" msgstr "Exportă Preferințele FlatCAM" -#: App_Main.py:2504 +#: FlatCAMApp.py:2558 FlatCAMApp.py:2626 +#: flatcamGUI/preferences/PreferencesUIManager.py:1018 +msgid "Failed to write defaults to file." +msgstr "Salvarea valorilor default intr-un fişier a eșuat." + +#: FlatCAMApp.py:2564 msgid "Exported preferences to" msgstr "Exportă Preferințele in" -#: App_Main.py:2524 App_Main.py:2529 +#: FlatCAMApp.py:2584 FlatCAMApp.py:2589 msgid "Save to file" msgstr "Salvat in" -#: App_Main.py:2553 +#: FlatCAMApp.py:2602 FlatCAMApp.py:8859 FlatCAMApp.py:8907 FlatCAMApp.py:9032 +#: FlatCAMApp.py:9168 FlatCAMBookmark.py:308 FlatCAMDB.py:671 FlatCAMDB.py:2133 +#: flatcamEditors/FlatCAMTextEditor.py:276 flatcamObjects/FlatCAMCNCJob.py:959 +#: flatcamTools/ToolFilm.py:1031 flatcamTools/ToolFilm.py:1212 +#: flatcamTools/ToolSolderPaste.py:1534 +msgid "" +"Permission denied, saving not possible.\n" +"Most likely another app is holding the file open and not accessible." +msgstr "" +"Permisiune refuzată, salvarea nu este posibilă.\n" +"Cel mai probabil o altă aplicație ține fișierul deschis și inaccesibil." + +#: FlatCAMApp.py:2613 msgid "Could not load the file." msgstr "Nu am putut incărca fişierul." -#: App_Main.py:2569 +#: FlatCAMApp.py:2629 msgid "Exported file to" msgstr "S-a exportat fişierul in" -#: App_Main.py:2606 +#: FlatCAMApp.py:2712 msgid "Failed to open recent files file for writing." msgstr "" "Deschiderea fişierului cu >fişiere recente< pentru a fi salvat a eșuat." -#: App_Main.py:2617 +#: FlatCAMApp.py:2723 msgid "Failed to open recent projects file for writing." msgstr "" "Deschiderea fişierului cu >proiecte recente< pentru a fi salvat a eșuat." -#: App_Main.py:2672 +#: FlatCAMApp.py:2806 FlatCAMApp.py:9377 FlatCAMApp.py:9441 FlatCAMApp.py:9572 +#: FlatCAMApp.py:9637 FlatCAMApp.py:10287 +#: flatcamEditors/FlatCAMGrbEditor.py:4364 +#: flatcamObjects/FlatCAMGeometry.py:1725 flatcamParsers/ParseExcellon.py:897 +#: flatcamTools/ToolPcbWizard.py:432 +msgid "An internal error has occurred. See shell.\n" +msgstr "" +"A apărut o eroare internă. Verifică in TCL Shell pt mai multe detalii.\n" + +#: FlatCAMApp.py:2807 +#, python-brace-format +msgid "" +"Object ({kind}) failed because: {error} \n" +"\n" +msgstr "" +"Obiectul ({kind}) a eșuat din cauza: {error} \n" +"\n" + +#: FlatCAMApp.py:2822 +msgid "Converting units to " +msgstr "Se convertesc unitătile la " + +#: FlatCAMApp.py:2931 +msgid "CREATE A NEW FLATCAM TCL SCRIPT" +msgstr "CREAȚI UN SCRIPT FLATCAM TCL NOU" + +#: FlatCAMApp.py:2932 +msgid "TCL Tutorial is here" +msgstr "Tutorialul TCL este aici" + +#: FlatCAMApp.py:2934 +msgid "FlatCAM commands list" +msgstr "Lista de comenzi FlatCAM" + +#: FlatCAMApp.py:2935 +msgid "" +"Type >help< followed by Run Code for a list of FlatCAM Tcl Commands " +"(displayed in Tcl Shell)." +msgstr "" +"Tastați >ajutor< urmat de Run Code pentru o listă de comenzi Tcl FlatCAM " +"(afișate în Tcl Shell)." + +#: FlatCAMApp.py:2982 FlatCAMApp.py:2988 FlatCAMApp.py:2994 FlatCAMApp.py:3000 +#: FlatCAMApp.py:3006 FlatCAMApp.py:3012 +msgid "created/selected" +msgstr "creat / selectat" + +#: FlatCAMApp.py:3027 FlatCAMApp.py:5189 flatcamObjects/FlatCAMObj.py:248 +#: flatcamObjects/FlatCAMObj.py:279 flatcamObjects/FlatCAMObj.py:295 +#: flatcamObjects/FlatCAMObj.py:375 flatcamTools/ToolCopperThieving.py:1481 +#: flatcamTools/ToolFiducials.py:809 flatcamTools/ToolMove.py:229 +#: flatcamTools/ToolQRCode.py:728 +msgid "Plotting" +msgstr "Se afișeaz" + +#: FlatCAMApp.py:3090 flatcamGUI/FlatCAMGUI.py:545 +msgid "About FlatCAM" +msgstr "Despre FlatCAM" + +#: FlatCAMApp.py:3116 msgid "2D Computer-Aided Printed Circuit Board Manufacturing" msgstr "Productie Cablaje Imprimate asistate 2D de PC" -#: App_Main.py:2673 +#: FlatCAMApp.py:3117 msgid "Development" msgstr "Dezvoltare" -#: App_Main.py:2674 +#: FlatCAMApp.py:3118 msgid "DOWNLOAD" msgstr "DOWNLOAD" -#: App_Main.py:2675 +#: FlatCAMApp.py:3119 msgid "Issue tracker" msgstr "Raportare probleme" -#: App_Main.py:2694 +#: FlatCAMApp.py:3123 FlatCAMApp.py:3484 flatcamGUI/GUIElements.py:2583 +msgid "Close" +msgstr "Închide" + +#: FlatCAMApp.py:3138 msgid "Licensed under the MIT license" msgstr "Licențiat sub licența MIT" -#: App_Main.py:2703 +#: FlatCAMApp.py:3147 msgid "" "Permission is hereby granted, free of charge, to any person obtaining a " "copy\n" @@ -17316,17 +362,14 @@ msgstr "" "UTILIZAREA SA,\n" "SAU ORICE TRATĂRI ÎN ACEST SOFTWARE." -#: App_Main.py:2725 +#: FlatCAMApp.py:3169 msgid "" "Some of the icons used are from the following sources:

    Icons by Icons8
    Icons by oNline Web Fonts" +"onlinewebfonts.com\">oNline Web Fonts" msgstr "" "Unele dintre icon-uri sunt preluate din urmatoarele surse: " "
    Pictograme create de www.flaticon.com
    Pictograme create de Icons8Pictograme create de oNline Web Fonts" +"com\">oNline Web Fonts" -#: App_Main.py:2761 +#: FlatCAMApp.py:3202 msgid "Splash" msgstr "Splash" -#: App_Main.py:2767 +#: FlatCAMApp.py:3208 msgid "Programmers" msgstr "Programatori" -#: App_Main.py:2773 +#: FlatCAMApp.py:3214 msgid "Translators" msgstr "Traducatori" -#: App_Main.py:2779 +#: FlatCAMApp.py:3220 msgid "License" msgstr "Licență" -#: App_Main.py:2785 +#: FlatCAMApp.py:3226 msgid "Attributions" msgstr "Atribuiri" -#: App_Main.py:2808 +#: FlatCAMApp.py:3249 msgid "Programmer" msgstr "Programator" -#: App_Main.py:2809 +#: FlatCAMApp.py:3250 msgid "Status" msgstr "Statut" -#: App_Main.py:2810 App_Main.py:2890 +#: FlatCAMApp.py:3251 FlatCAMApp.py:3331 msgid "E-mail" msgstr "E-mail" -#: App_Main.py:2813 -msgid "Program Author" -msgstr "Autorul Programului" - -#: App_Main.py:2818 +#: FlatCAMApp.py:3259 msgid "BETA Maintainer >= 2019" msgstr "Programator Beta >= 2019" -#: App_Main.py:2887 +#: FlatCAMApp.py:3328 msgid "Language" msgstr "Limba" -#: App_Main.py:2888 +#: FlatCAMApp.py:3329 msgid "Translator" msgstr "Traducător" -#: App_Main.py:2889 +#: FlatCAMApp.py:3330 msgid "Corrections" msgstr "Corecţii" -#: App_Main.py:2963 -msgid "Important Information's" -msgstr "Informații importante" +#: FlatCAMApp.py:3455 FlatCAMApp.py:3464 flatcamGUI/FlatCAMGUI.py:527 +msgid "Bookmarks Manager" +msgstr "Bookmarks Manager" -#: App_Main.py:3111 +#: FlatCAMApp.py:3475 msgid "" "This entry will resolve to another website if:\n" "\n" @@ -17415,29 +451,45 @@ msgstr "" "Dacă nu puteți obține informații despre FlatCAM beta\n" "utilizați linkul canalului YouTube din meniul Ajutor." -#: App_Main.py:3118 +#: FlatCAMApp.py:3482 msgid "Alternative website" msgstr "Site alternativ" -#: App_Main.py:3421 +#: FlatCAMApp.py:3508 flatcamGUI/FlatCAMGUI.py:4267 +msgid "Application is saving the project. Please wait ..." +msgstr "Aplicația salvează proiectul. Vă rugăm aşteptați ..." + +#: FlatCAMApp.py:3513 FlatCAMTranslation.py:202 +msgid "" +"There are files/objects modified in FlatCAM. \n" +"Do you want to Save the project?" +msgstr "" +"FlatCAM are fişiere/obiecte care au fost modificate. \n" +"Dorești să Salvezi proiectul?" + +#: FlatCAMApp.py:3516 FlatCAMApp.py:7343 FlatCAMTranslation.py:205 +msgid "Save changes" +msgstr "Salvează modificarile" + +#: FlatCAMApp.py:3778 msgid "Selected Excellon file extensions registered with FlatCAM." msgstr "Extensiile de fișiere Excellon selectate înregistrate cu FlatCAM." -#: App_Main.py:3443 +#: FlatCAMApp.py:3800 msgid "Selected GCode file extensions registered with FlatCAM." msgstr "Extensii de fișiere GCode selectate înregistrate cu FlatCAM." -#: App_Main.py:3465 +#: FlatCAMApp.py:3822 msgid "Selected Gerber file extensions registered with FlatCAM." msgstr "Extensii de fișiere Gerber selectate înregistrate cu FlatCAM." -#: App_Main.py:3653 App_Main.py:3712 App_Main.py:3740 +#: FlatCAMApp.py:4010 FlatCAMApp.py:4069 FlatCAMApp.py:4097 msgid "At least two objects are required for join. Objects currently selected" msgstr "" "Cel puțin două obiecte sunt necesare pentru a fi unite. Obiectele selectate " "în prezent" -#: App_Main.py:3662 +#: FlatCAMApp.py:4019 msgid "" "Failed join. The Geometry objects are of different types.\n" "At least one is MultiGeo type and the other is SingleGeo type. A possibility " @@ -17454,48 +506,48 @@ msgstr "" "informatii și rezultatul ar putea să nu fie cel dorit. \n" "Verifică codul G-Code generat." -#: App_Main.py:3674 App_Main.py:3684 +#: FlatCAMApp.py:4031 FlatCAMApp.py:4041 msgid "Geometry merging finished" msgstr "Fuziunea geometriei s-a terminat" -#: App_Main.py:3707 +#: FlatCAMApp.py:4064 msgid "Failed. Excellon joining works only on Excellon objects." msgstr "" "Eșuat. Fuzionarea Excellon functionează doar cu obiecte de tip Excellon." -#: App_Main.py:3717 +#: FlatCAMApp.py:4074 msgid "Excellon merging finished" msgstr "Fuziunea Excellon a fost terminată" -#: App_Main.py:3735 +#: FlatCAMApp.py:4092 msgid "Failed. Gerber joining works only on Gerber objects." msgstr "Eșuat. Fuzionarea Gerber functionează doar cu obiecte de tip Gerber ." -#: App_Main.py:3745 +#: FlatCAMApp.py:4102 msgid "Gerber merging finished" msgstr "Fuziunea Gerber a fost terminată" -#: App_Main.py:3765 App_Main.py:3802 +#: FlatCAMApp.py:4122 FlatCAMApp.py:4159 msgid "Failed. Select a Geometry Object and try again." msgstr "Eșuat. Selectează un obiect Geometrie și încearcă din nou." -#: App_Main.py:3769 App_Main.py:3807 +#: FlatCAMApp.py:4126 FlatCAMApp.py:4164 msgid "Expected a GeometryObject, got" msgstr "Se astepta o Geometrie FlatCAM, s-a primit" -#: App_Main.py:3784 +#: FlatCAMApp.py:4141 msgid "A Geometry object was converted to MultiGeo type." msgstr "Un obiect Geometrie a fost convertit la tipul MultiGeo." -#: App_Main.py:3822 +#: FlatCAMApp.py:4179 msgid "A Geometry object was converted to SingleGeo type." msgstr "Un obiect Geometrie a fost convertit la tipul SingleGeo ." -#: App_Main.py:4029 +#: FlatCAMApp.py:4472 msgid "Toggle Units" msgstr "Comută Unitati" -#: App_Main.py:4033 +#: FlatCAMApp.py:4474 msgid "" "Changing the units of the project\n" "will scale all objects.\n" @@ -17507,28 +559,32 @@ msgstr "" "\n" "Doriți să continuați?" -#: App_Main.py:4036 App_Main.py:4223 App_Main.py:4306 App_Main.py:6809 -#: App_Main.py:6825 App_Main.py:7163 App_Main.py:7175 +#: FlatCAMApp.py:4477 FlatCAMApp.py:5025 FlatCAMApp.py:5102 FlatCAMApp.py:7728 +#: FlatCAMApp.py:7742 FlatCAMApp.py:8075 FlatCAMApp.py:8085 msgid "Ok" msgstr "Ok" -#: App_Main.py:4086 +#: FlatCAMApp.py:4526 msgid "Converted units to" msgstr "Unitătile au fost convertite in" -#: App_Main.py:4121 +#: FlatCAMApp.py:4928 msgid "Detachable Tabs" msgstr "Taburi detașabile" -#: App_Main.py:4150 -msgid "Workspace enabled." -msgstr "Spațiul de lucru activat." +#: FlatCAMApp.py:5014 flatcamTools/ToolNCC.py:932 flatcamTools/ToolNCC.py:1431 +#: flatcamTools/ToolPaint.py:858 flatcamTools/ToolSolderPaste.py:568 +#: flatcamTools/ToolSolderPaste.py:893 +msgid "Please enter a tool diameter with non-zero value, in Float format." +msgstr "" +"Introduceti un diametru al uneltei valid: valoare ne-nula in format Real." -#: App_Main.py:4153 -msgid "Workspace disabled." -msgstr "Spațiul de lucru este dezactivat." +#: FlatCAMApp.py:5018 flatcamTools/ToolNCC.py:936 flatcamTools/ToolPaint.py:862 +#: flatcamTools/ToolSolderPaste.py:572 +msgid "Adding Tool cancelled" +msgstr "Adăugarea unei unelte anulată" -#: App_Main.py:4217 +#: FlatCAMApp.py:5021 msgid "" "Adding Tool works only when Advanced is checked.\n" "Go to Preferences -> General - Show Advanced Options." @@ -17536,11 +592,11 @@ msgstr "" "Adăugarea de unelte noi functionează doar in modul Avansat.\n" "Pentru aceasta mergi in Preferințe -> General - Activează Modul Avansat." -#: App_Main.py:4299 +#: FlatCAMApp.py:5097 msgid "Delete objects" msgstr "Șterge obiectele" -#: App_Main.py:4304 +#: FlatCAMApp.py:5100 msgid "" "Are you sure you want to permanently delete\n" "the selected objects?" @@ -17548,86 +604,147 @@ msgstr "" "Sigur doriți să ștergeți definitiv\n" "obiectele selectate?" -#: App_Main.py:4348 +#: FlatCAMApp.py:5138 msgid "Object(s) deleted" msgstr "Obiect(ele) șters(e)" -#: App_Main.py:4352 +#: FlatCAMApp.py:5142 FlatCAMApp.py:5297 flatcamTools/ToolDblSided.py:818 +msgid "Failed. No object(s) selected..." +msgstr "Eșuat. Nici-un obiect nu este selectat." + +#: FlatCAMApp.py:5144 msgid "Save the work in Editor and try again ..." msgstr "Salvează continutul din Editor și încearcă din nou." -#: App_Main.py:4381 +#: FlatCAMApp.py:5173 msgid "Object deleted" msgstr "Obiectul este șters" -#: App_Main.py:4408 +#: FlatCAMApp.py:5200 msgid "Click to set the origin ..." msgstr "Click pentru a seta originea..." -#: App_Main.py:4430 +#: FlatCAMApp.py:5222 msgid "Setting Origin..." msgstr "Setează Originea..." -#: App_Main.py:4443 App_Main.py:4545 +#: FlatCAMApp.py:5235 FlatCAMApp.py:5337 msgid "Origin set" msgstr "Originea a fost setată" -#: App_Main.py:4460 +#: FlatCAMApp.py:5252 msgid "Origin coordinates specified but incomplete." msgstr "Coordonate pentru origine specificate, dar incomplete." -#: App_Main.py:4501 +#: FlatCAMApp.py:5293 msgid "Moving to Origin..." msgstr "Deplasare către Origine..." -#: App_Main.py:4582 +#: FlatCAMApp.py:5374 msgid "Jump to ..." msgstr "Sari la ..." -#: App_Main.py:4583 +#: FlatCAMApp.py:5375 msgid "Enter the coordinates in format X,Y:" msgstr "Introduceți coordonatele in format X,Y:" -#: App_Main.py:4593 +#: FlatCAMApp.py:5385 msgid "Wrong coordinates. Enter coordinates in format: X,Y" msgstr "Coordonate gresite. Introduceți coordonatele in format X,Y" -#: App_Main.py:4711 +#: FlatCAMApp.py:5463 FlatCAMApp.py:5612 +#: flatcamEditors/FlatCAMExcEditor.py:3624 +#: flatcamEditors/FlatCAMExcEditor.py:3632 +#: flatcamEditors/FlatCAMGeoEditor.py:4349 +#: flatcamEditors/FlatCAMGeoEditor.py:4363 +#: flatcamEditors/FlatCAMGrbEditor.py:1087 +#: flatcamEditors/FlatCAMGrbEditor.py:1204 +#: flatcamEditors/FlatCAMGrbEditor.py:1490 +#: flatcamEditors/FlatCAMGrbEditor.py:1759 +#: flatcamEditors/FlatCAMGrbEditor.py:4622 +#: flatcamEditors/FlatCAMGrbEditor.py:4637 flatcamGUI/FlatCAMGUI.py:3424 +#: flatcamGUI/FlatCAMGUI.py:3436 flatcamTools/ToolAlignObjects.py:393 +#: flatcamTools/ToolAlignObjects.py:415 +msgid "Done." +msgstr "Executat." + +#: FlatCAMApp.py:5478 FlatCAMApp.py:7724 FlatCAMApp.py:7819 FlatCAMApp.py:7860 +#: FlatCAMApp.py:7901 FlatCAMApp.py:7942 FlatCAMApp.py:7983 FlatCAMApp.py:8027 +#: FlatCAMApp.py:8071 FlatCAMApp.py:8593 FlatCAMApp.py:8597 +#: flatcamTools/ToolProperties.py:116 +msgid "No object selected." +msgstr "Nici-un obiect nu este selectat." + +#: FlatCAMApp.py:5497 msgid "Bottom-Left" msgstr "Stânga jos" -#: App_Main.py:4714 +#: FlatCAMApp.py:5498 flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:131 +#: flatcamTools/ToolCalibration.py:159 +msgid "Top-Left" +msgstr "Stânga-sus" + +#: FlatCAMApp.py:5499 flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:132 +#: flatcamTools/ToolCalibration.py:160 +msgid "Bottom-Right" +msgstr "Dreapta-jos" + +#: FlatCAMApp.py:5500 msgid "Top-Right" msgstr "Dreapta-sus" -#: App_Main.py:4735 +#: FlatCAMApp.py:5501 flatcamGUI/ObjectUI.py:2706 +msgid "Center" +msgstr "Centru" + +#: FlatCAMApp.py:5521 msgid "Locate ..." msgstr "Localizează ..." -#: App_Main.py:5008 App_Main.py:5085 +#: FlatCAMApp.py:5779 FlatCAMApp.py:5856 msgid "No object is selected. Select an object and try again." msgstr "" "Nici-un obiect nu este selectat. Selectează un obiect și incearcă din nou." -#: App_Main.py:5111 +#: FlatCAMApp.py:5882 msgid "" "Aborting. The current task will be gracefully closed as soon as possible..." msgstr "Intrerup. Taskul curent va fi închis cât mai curând posibil ..." -#: App_Main.py:5117 +#: FlatCAMApp.py:5888 msgid "The current task was gracefully closed on user request..." msgstr "Taskul curent a fost închis la cererea utilizatorului ..." -#: App_Main.py:5291 +#: FlatCAMApp.py:5916 flatcamGUI/preferences/PreferencesUIManager.py:905 +#: flatcamGUI/preferences/PreferencesUIManager.py:949 +#: flatcamGUI/preferences/PreferencesUIManager.py:970 +#: flatcamGUI/preferences/PreferencesUIManager.py:1075 +msgid "Preferences" +msgstr "Preferințe" + +#: FlatCAMApp.py:5981 FlatCAMApp.py:6009 FlatCAMApp.py:6036 FlatCAMApp.py:6056 +#: FlatCAMDB.py:738 FlatCAMDB.py:913 FlatCAMDB.py:2200 FlatCAMDB.py:2418 +#: flatcamObjects/FlatCAMGeometry.py:890 flatcamTools/ToolNCC.py:3963 +#: flatcamTools/ToolNCC.py:4047 flatcamTools/ToolPaint.py:3553 +#: flatcamTools/ToolPaint.py:3638 +msgid "Tools Database" +msgstr "Baza de Date Unelte" + +#: FlatCAMApp.py:6033 msgid "Tools in Tools Database edited but not saved." msgstr "Uneltele din Baza de date au fost editate dar nu au fost salvate." -#: App_Main.py:5330 +#: FlatCAMApp.py:6060 flatcamTools/ToolNCC.py:3970 +#: flatcamTools/ToolPaint.py:3560 +msgid "Tool from DB added in Tool Table." +msgstr "Unealtă din Baza de date adăugată in Tabela de Unelte." + +#: FlatCAMApp.py:6062 msgid "Adding tool from DB is not allowed for this object." msgstr "" "Adaugarea unei unelte din Baza de date nu este permisa pt acest obiect." -#: App_Main.py:5348 +#: FlatCAMApp.py:6080 msgid "" "One or more Tools are edited.\n" "Do you want to update the Tools Database?" @@ -17635,111 +752,173 @@ msgstr "" "Unul sau mai multe Unelte sunt editate.\n" "Doriți să actualizați baza de date a Uneltelor?" -#: App_Main.py:5350 +#: FlatCAMApp.py:6082 msgid "Save Tools Database" msgstr "Salvează baza de date Unelte" -#: App_Main.py:5404 +#: FlatCAMApp.py:6135 msgid "No object selected to Flip on Y axis." msgstr "Nu sete nici-un obiect selectat pentru oglindire pe axa Y." -#: App_Main.py:5430 +#: FlatCAMApp.py:6161 msgid "Flip on Y axis done." msgstr "Oglindire pe axa Y executată." -#: App_Main.py:5452 +#: FlatCAMApp.py:6163 FlatCAMApp.py:6211 +#: flatcamEditors/FlatCAMGrbEditor.py:6059 +msgid "Flip action was not executed." +msgstr "Acțiunea de Oglindire nu a fost executată." + +#: FlatCAMApp.py:6183 msgid "No object selected to Flip on X axis." msgstr "Nu este nici-un obiect selectat pentru oglindire pe axa X." -#: App_Main.py:5478 +#: FlatCAMApp.py:6209 msgid "Flip on X axis done." msgstr "Oglindirea pe axa X executată." -#: App_Main.py:5500 +#: FlatCAMApp.py:6231 msgid "No object selected to Rotate." msgstr "Nici-un obiect selectat pentru Rotaţie." -#: App_Main.py:5503 App_Main.py:5554 App_Main.py:5591 +#: FlatCAMApp.py:6234 FlatCAMApp.py:6287 FlatCAMApp.py:6326 msgid "Transform" msgstr "Transformare" -#: App_Main.py:5503 App_Main.py:5554 App_Main.py:5591 +#: FlatCAMApp.py:6234 FlatCAMApp.py:6287 FlatCAMApp.py:6326 msgid "Enter the Angle value:" msgstr "Introduceți valoaea Unghiului:" -#: App_Main.py:5533 +#: FlatCAMApp.py:6265 msgid "Rotation done." msgstr "Rotaţie executată." -#: App_Main.py:5535 +#: FlatCAMApp.py:6267 msgid "Rotation movement was not executed." msgstr "Mișcarea de rotație nu a fost executată." -#: App_Main.py:5552 +#: FlatCAMApp.py:6285 msgid "No object selected to Skew/Shear on X axis." msgstr "Nici-un obiect nu este selectat pentru Deformare pe axa X." -#: App_Main.py:5573 +#: FlatCAMApp.py:6307 msgid "Skew on X axis done." msgstr "Deformare pe axa X terminată." -#: App_Main.py:5589 +#: FlatCAMApp.py:6324 msgid "No object selected to Skew/Shear on Y axis." msgstr "Nici-un obiect nu este selectat pentru Deformare pe axa Y." -#: App_Main.py:5610 +#: FlatCAMApp.py:6346 msgid "Skew on Y axis done." msgstr "Deformare pe axa Y terminată." -#: App_Main.py:5688 +#: FlatCAMApp.py:6497 FlatCAMApp.py:6544 flatcamGUI/FlatCAMGUI.py:503 +#: flatcamGUI/FlatCAMGUI.py:1728 +msgid "Select All" +msgstr "Selectează toate" + +#: FlatCAMApp.py:6501 FlatCAMApp.py:6548 flatcamGUI/FlatCAMGUI.py:505 +msgid "Deselect All" +msgstr "Deselectează toate" + +#: FlatCAMApp.py:6564 +msgid "All objects are selected." +msgstr "Totate obiectele sunt selectate." + +#: FlatCAMApp.py:6574 +msgid "Objects selection is cleared." +msgstr "Nici-un obiect nu este selectat." + +#: FlatCAMApp.py:6594 flatcamGUI/FlatCAMGUI.py:1721 +msgid "Grid On/Off" +msgstr "Grid On/Off" + +#: FlatCAMApp.py:6606 flatcamEditors/FlatCAMGeoEditor.py:939 +#: flatcamEditors/FlatCAMGrbEditor.py:2583 +#: flatcamEditors/FlatCAMGrbEditor.py:5641 flatcamGUI/ObjectUI.py:1595 +#: flatcamTools/ToolDblSided.py:192 flatcamTools/ToolDblSided.py:425 +#: flatcamTools/ToolNCC.py:294 flatcamTools/ToolNCC.py:631 +#: flatcamTools/ToolPaint.py:277 flatcamTools/ToolPaint.py:676 +#: flatcamTools/ToolSolderPaste.py:122 flatcamTools/ToolSolderPaste.py:597 +#: flatcamTools/ToolTransform.py:478 +msgid "Add" +msgstr "Adaugă" + +#: FlatCAMApp.py:6608 flatcamEditors/FlatCAMGrbEditor.py:2588 +#: flatcamEditors/FlatCAMGrbEditor.py:2736 flatcamGUI/FlatCAMGUI.py:751 +#: flatcamGUI/FlatCAMGUI.py:1074 flatcamGUI/FlatCAMGUI.py:2141 +#: flatcamGUI/FlatCAMGUI.py:2284 flatcamGUI/FlatCAMGUI.py:2777 +#: flatcamGUI/ObjectUI.py:1623 flatcamObjects/FlatCAMGeometry.py:505 +#: flatcamTools/ToolNCC.py:316 flatcamTools/ToolNCC.py:637 +#: flatcamTools/ToolPaint.py:299 flatcamTools/ToolPaint.py:682 +#: flatcamTools/ToolSolderPaste.py:128 flatcamTools/ToolSolderPaste.py:600 +msgid "Delete" +msgstr "Șterge" + +#: FlatCAMApp.py:6624 msgid "New Grid ..." msgstr "Grid nou ..." -#: App_Main.py:5689 +#: FlatCAMApp.py:6625 msgid "Enter a Grid Value:" msgstr "Introduceti of valoare pt Grid:" -#: App_Main.py:5697 App_Main.py:5721 +#: FlatCAMApp.py:6633 FlatCAMApp.py:6660 msgid "Please enter a grid value with non-zero value, in Float format." msgstr "Introduceți o valoare pentru Grila ne-nula și in format Real." -#: App_Main.py:5702 +#: FlatCAMApp.py:6639 msgid "New Grid added" msgstr "Grid nou" -#: App_Main.py:5704 +#: FlatCAMApp.py:6642 msgid "Grid already exists" msgstr "Grila există deja" -#: App_Main.py:5706 +#: FlatCAMApp.py:6645 msgid "Adding New Grid cancelled" msgstr "Adăugarea unei valori de Grilă a fost anulată" -#: App_Main.py:5727 +#: FlatCAMApp.py:6667 msgid " Grid Value does not exist" msgstr " Valoarea Grilei nu există" -#: App_Main.py:5729 +#: FlatCAMApp.py:6670 msgid "Grid Value deleted" msgstr "Valoarea Grila a fost stearsă" -#: App_Main.py:5731 +#: FlatCAMApp.py:6673 msgid "Delete Grid value cancelled" msgstr "Ștergerea unei valori de Grilă a fost anulată" -#: App_Main.py:5737 +#: FlatCAMApp.py:6679 msgid "Key Shortcut List" msgstr "Lista de shortcut-uri" -#: App_Main.py:5771 +#: FlatCAMApp.py:6713 msgid " No object selected to copy it's name" msgstr " Nici-un obiect nu este selectat pentru i se copia valoarea" -#: App_Main.py:5775 +#: FlatCAMApp.py:6717 msgid "Name copied on clipboard ..." msgstr "Numele a fost copiat pe Clipboard ..." -#: App_Main.py:6408 +#: FlatCAMApp.py:6930 flatcamEditors/FlatCAMGrbEditor.py:4554 +msgid "Coordinates copied to clipboard." +msgstr "Coordonatele au fost copiate in clipboard." + +#: FlatCAMApp.py:7167 FlatCAMApp.py:7173 FlatCAMApp.py:7179 FlatCAMApp.py:7185 +#: flatcamObjects/ObjectCollection.py:922 +#: flatcamObjects/ObjectCollection.py:928 +#: flatcamObjects/ObjectCollection.py:934 +#: flatcamObjects/ObjectCollection.py:940 +#: flatcamObjects/ObjectCollection.py:946 +#: flatcamObjects/ObjectCollection.py:952 +msgid "selected" +msgstr "selectat" + +#: FlatCAMApp.py:7340 msgid "" "There are files/objects opened in FlatCAM.\n" "Creating a New project will delete them.\n" @@ -17749,12 +928,17 @@ msgstr "" "Crearea unui nou Proiect le va șterge..\n" "Doriti să Salvati proiectul curentt?" -#: App_Main.py:6431 +#: FlatCAMApp.py:7361 msgid "New Project created" msgstr "Un nou Proiect a fost creat" -#: App_Main.py:6603 App_Main.py:6642 App_Main.py:6686 App_Main.py:6756 -#: App_Main.py:7550 App_Main.py:8763 App_Main.py:8825 +#: FlatCAMApp.py:7519 FlatCAMApp.py:7523 flatcamGUI/FlatCAMGUI.py:836 +#: flatcamGUI/FlatCAMGUI.py:2544 +msgid "Open Gerber" +msgstr "Încarcă Gerber" + +#: FlatCAMApp.py:7528 FlatCAMApp.py:7565 FlatCAMApp.py:7607 FlatCAMApp.py:7677 +#: FlatCAMApp.py:8462 FlatCAMApp.py:9675 FlatCAMApp.py:9737 msgid "" "Canvas initialization started.\n" "Canvas initialization finished in" @@ -17762,288 +946,343 @@ msgstr "" "FlatCAM se inițializează ...\n" "Initializarea spațiului de afisare s-a terminat in" -#: App_Main.py:6605 +#: FlatCAMApp.py:7530 msgid "Opening Gerber file." msgstr "Se incarcă un fişier Gerber." -#: App_Main.py:6644 +#: FlatCAMApp.py:7557 FlatCAMApp.py:7561 flatcamGUI/FlatCAMGUI.py:838 +#: flatcamGUI/FlatCAMGUI.py:2546 +msgid "Open Excellon" +msgstr "Încarcă Excellon" + +#: FlatCAMApp.py:7567 msgid "Opening Excellon file." msgstr "Se incarcă un fişier Excellon." -#: App_Main.py:6675 App_Main.py:6680 +#: FlatCAMApp.py:7598 FlatCAMApp.py:7602 msgid "Open G-Code" msgstr "Încarcă G-Code" -#: App_Main.py:6688 +#: FlatCAMApp.py:7609 msgid "Opening G-Code file." msgstr "Se incarcă un fişier G-Code." -#: App_Main.py:6747 App_Main.py:6751 +#: FlatCAMApp.py:7632 FlatCAMApp.py:7635 flatcamGUI/FlatCAMGUI.py:1730 +msgid "Open Project" +msgstr "Încarcă Project" + +#: FlatCAMApp.py:7668 FlatCAMApp.py:7672 msgid "Open HPGL2" msgstr "Încarcă HPGL2" -#: App_Main.py:6758 +#: FlatCAMApp.py:7679 msgid "Opening HPGL2 file." msgstr "Se incarcă un fişier HPGL2." -#: App_Main.py:6781 App_Main.py:6784 +#: FlatCAMApp.py:7702 FlatCAMApp.py:7705 msgid "Open Configuration File" msgstr "Încarcă un fişier de Configurare" -#: App_Main.py:6804 App_Main.py:7158 +#: FlatCAMApp.py:7725 FlatCAMApp.py:8072 msgid "Please Select a Geometry object to export" msgstr "Selectează un obiect Geometrie pentru export" -#: App_Main.py:6820 +#: FlatCAMApp.py:7739 msgid "Only Geometry, Gerber and CNCJob objects can be used." msgstr "Doar obiectele Geometrie, Gerber și CNCJob pot fi folosite." -#: App_Main.py:6865 +#: FlatCAMApp.py:7752 FlatCAMApp.py:7756 flatcamTools/ToolQRCode.py:829 +#: flatcamTools/ToolQRCode.py:833 +msgid "Export SVG" +msgstr "Exporta SVG" + +#: FlatCAMApp.py:7781 msgid "Data must be a 3D array with last dimension 3 or 4" msgstr "" "Datele trebuie să fie organizate intr-o arie 3D cu ultima dimensiune cu " "valoarea 3 sau 4" -#: App_Main.py:6871 App_Main.py:6875 +#: FlatCAMApp.py:7787 FlatCAMApp.py:7791 msgid "Export PNG Image" msgstr "Exporta imagine PNG" -#: App_Main.py:6908 App_Main.py:7118 +#: FlatCAMApp.py:7824 FlatCAMApp.py:8032 msgid "Failed. Only Gerber objects can be saved as Gerber files..." msgstr "Eșuat. Doar obiectele tip Gerber pot fi salvate ca fişiere Gerber..." -#: App_Main.py:6920 +#: FlatCAMApp.py:7836 msgid "Save Gerber source file" msgstr "Salvează codul sursa Gerber ca fişier" -#: App_Main.py:6949 +#: FlatCAMApp.py:7865 msgid "Failed. Only Script objects can be saved as TCL Script files..." msgstr "" "Eșuat. Doar obiectele tip Script pot fi salvate ca fişiere TCL Script..." -#: App_Main.py:6961 +#: FlatCAMApp.py:7877 msgid "Save Script source file" msgstr "Salvează codul sursa Script ca fişier" -#: App_Main.py:6990 +#: FlatCAMApp.py:7906 msgid "Failed. Only Document objects can be saved as Document files..." msgstr "" "Eșuat. Doar obiectele tip Document pot fi salvate ca fişiere Document ..." -#: App_Main.py:7002 +#: FlatCAMApp.py:7918 msgid "Save Document source file" msgstr "Salvează codul sursa Document ca fişier" -#: App_Main.py:7032 App_Main.py:7074 App_Main.py:8033 +#: FlatCAMApp.py:7947 FlatCAMApp.py:7988 FlatCAMApp.py:8945 msgid "Failed. Only Excellon objects can be saved as Excellon files..." msgstr "" "Eșuat. Doar obiectele tip Excellon pot fi salvate ca fişiere Excellon ..." -#: App_Main.py:7040 App_Main.py:7045 +#: FlatCAMApp.py:7955 FlatCAMApp.py:7959 msgid "Save Excellon source file" msgstr "Salvează codul sursa Excellon ca fişier" -#: App_Main.py:7082 App_Main.py:7086 +#: FlatCAMApp.py:7996 FlatCAMApp.py:8000 msgid "Export Excellon" msgstr "Exportă Excellon" -#: App_Main.py:7126 App_Main.py:7130 +#: FlatCAMApp.py:8040 FlatCAMApp.py:8044 msgid "Export Gerber" msgstr "Exportă Gerber" -#: App_Main.py:7170 +#: FlatCAMApp.py:8082 msgid "Only Geometry objects can be used." msgstr "Doar obiecte tip Geometrie pot fi folosite." -#: App_Main.py:7186 App_Main.py:7190 +#: FlatCAMApp.py:8096 FlatCAMApp.py:8100 msgid "Export DXF" msgstr "Exportă DXF" -#: App_Main.py:7215 App_Main.py:7218 +#: FlatCAMApp.py:8125 FlatCAMApp.py:8128 msgid "Import SVG" msgstr "Importă SVG" -#: App_Main.py:7246 App_Main.py:7250 +#: FlatCAMApp.py:8156 FlatCAMApp.py:8160 msgid "Import DXF" msgstr "Importa DXF" -#: App_Main.py:7300 +#: FlatCAMApp.py:8210 msgid "Viewing the source code of the selected object." msgstr "Vizualizarea codului sursă a obiectului selectat." -#: App_Main.py:7307 App_Main.py:7311 +#: FlatCAMApp.py:8211 flatcamObjects/FlatCAMCNCJob.py:548 +#: flatcamObjects/FlatCAMScript.py:134 +msgid "Loading..." +msgstr "Se incarcă..." + +#: FlatCAMApp.py:8217 FlatCAMApp.py:8221 msgid "Select an Gerber or Excellon file to view it's source file." msgstr "Selectati un obiect Gerber sau Excellon pentru a-i vedea codul sursa." -#: App_Main.py:7325 +#: FlatCAMApp.py:8235 msgid "Source Editor" msgstr "Editor Cod Sursă" -#: App_Main.py:7365 App_Main.py:7372 +#: FlatCAMApp.py:8275 FlatCAMApp.py:8282 msgid "There is no selected object for which to see it's source file code." msgstr "Nici-un obiect selectat pentru a-i vedea codul sursa." -#: App_Main.py:7384 +#: FlatCAMApp.py:8294 msgid "Failed to load the source code for the selected object" msgstr "Codul sursă pentru obiectul selectat nu a putut fi încărcat" -#: App_Main.py:7420 +#: FlatCAMApp.py:8308 flatcamObjects/FlatCAMCNCJob.py:562 +msgid "Code Editor" +msgstr "Editor Cod" + +#: FlatCAMApp.py:8330 msgid "Go to Line ..." msgstr "Mergi la Linia ..." -#: App_Main.py:7421 +#: FlatCAMApp.py:8331 msgid "Line:" msgstr "Linia:" -#: App_Main.py:7448 +#: FlatCAMApp.py:8360 msgid "New TCL script file created in Code Editor." msgstr "Un nou script TCL a fost creat in Editorul de cod." -#: App_Main.py:7484 App_Main.py:7486 App_Main.py:7522 App_Main.py:7524 +#: FlatCAMApp.py:8396 FlatCAMApp.py:8398 FlatCAMApp.py:8434 FlatCAMApp.py:8436 msgid "Open TCL script" msgstr "Încarcă TCL script" -#: App_Main.py:7552 +#: FlatCAMApp.py:8464 msgid "Executing ScriptObject file." msgstr "Se executa un fisier script FlatCAM." -#: App_Main.py:7560 App_Main.py:7563 +#: FlatCAMApp.py:8472 FlatCAMApp.py:8475 msgid "Run TCL script" msgstr "Ruleaza TCL script" -#: App_Main.py:7586 +#: FlatCAMApp.py:8498 msgid "TCL script file opened in Code Editor and executed." msgstr "Un fisier script TCL a fost deschis in Editorul de cod si executat." -#: App_Main.py:7637 App_Main.py:7643 +#: FlatCAMApp.py:8549 FlatCAMApp.py:8555 msgid "Save Project As ..." msgstr "Salvează Proiectul ca ..." -#: App_Main.py:7678 +#: FlatCAMApp.py:8551 flatcamGUI/FlatCAMGUI.py:1134 +#: flatcamGUI/FlatCAMGUI.py:2176 +msgid "Project" +msgstr "Proiect" + +#: FlatCAMApp.py:8590 msgid "FlatCAM objects print" msgstr "Tipărirea obiectelor FlatCAM" -#: App_Main.py:7691 App_Main.py:7698 +#: FlatCAMApp.py:8603 FlatCAMApp.py:8610 msgid "Save Object as PDF ..." msgstr "Salvați obiectul în format PDF ..." -#: App_Main.py:7707 +#: FlatCAMApp.py:8619 msgid "Printing PDF ... Please wait." msgstr "Se tipărește PDF ... Vă rugăm să așteptați." -#: App_Main.py:7886 +#: FlatCAMApp.py:8798 msgid "PDF file saved to" msgstr "Fișierul PDF salvat în" -#: App_Main.py:7911 +#: FlatCAMApp.py:8823 msgid "Exporting SVG" msgstr "SVG in curs de export" -#: App_Main.py:7954 +#: FlatCAMApp.py:8866 msgid "SVG file exported to" msgstr "Fişier SVG exportat in" -#: App_Main.py:7980 +#: FlatCAMApp.py:8892 msgid "" "Save cancelled because source file is empty. Try to export the Gerber file." msgstr "" "Salvare anulată deoarece fișierul sursă este gol. Încercați să exportați " "fișierul Gerber." -#: App_Main.py:8127 +#: FlatCAMApp.py:9039 msgid "Excellon file exported to" msgstr "Fişierul Excellon exportat in" -#: App_Main.py:8136 +#: FlatCAMApp.py:9048 msgid "Exporting Excellon" msgstr "Excellon in curs de export" -#: App_Main.py:8141 App_Main.py:8148 +#: FlatCAMApp.py:9053 FlatCAMApp.py:9060 msgid "Could not export Excellon file." msgstr "Fişierul Excellon nu a fost posibil să fie exportat." -#: App_Main.py:8263 +#: FlatCAMApp.py:9175 msgid "Gerber file exported to" msgstr "Fişier Gerber exportat in" -#: App_Main.py:8271 +#: FlatCAMApp.py:9183 msgid "Exporting Gerber" msgstr "Gerber in curs de export" -#: App_Main.py:8276 App_Main.py:8283 +#: FlatCAMApp.py:9188 FlatCAMApp.py:9195 msgid "Could not export Gerber file." msgstr "Fişierul Gerber nu a fost posibil să fie exportat." -#: App_Main.py:8318 +#: FlatCAMApp.py:9230 msgid "DXF file exported to" msgstr "Fişierul DXF exportat in" -#: App_Main.py:8324 +#: FlatCAMApp.py:9236 msgid "Exporting DXF" msgstr "DXF in curs de export" -#: App_Main.py:8329 App_Main.py:8336 +#: FlatCAMApp.py:9241 FlatCAMApp.py:9248 msgid "Could not export DXF file." msgstr "Fişierul DXF nu a fost posibil să fie exportat." -#: App_Main.py:8370 +#: FlatCAMApp.py:9272 FlatCAMApp.py:9319 flatcamTools/ToolImage.py:277 +msgid "" +"Not supported type is picked as parameter. Only Geometry and Gerber are " +"supported" +msgstr "" +"Tipul parametrului nu este compatibil. Doar obiectele tip Geometrie si " +"Gerber sunt acceptate" + +#: FlatCAMApp.py:9282 msgid "Importing SVG" msgstr "SVG in curs de ia fi importat" -#: App_Main.py:8378 App_Main.py:8424 +#: FlatCAMApp.py:9290 FlatCAMApp.py:9336 msgid "Import failed." msgstr "Importul a eșuat." -#: App_Main.py:8416 +#: FlatCAMApp.py:9297 FlatCAMApp.py:9343 FlatCAMApp.py:9407 FlatCAMApp.py:9474 +#: FlatCAMApp.py:9540 FlatCAMApp.py:9605 FlatCAMApp.py:9662 +#: flatcamTools/ToolImage.py:297 flatcamTools/ToolPDF.py:225 +msgid "Opened" +msgstr "Încarcat" + +#: FlatCAMApp.py:9328 msgid "Importing DXF" msgstr "DXF in curs de a fi importat" -#: App_Main.py:8457 App_Main.py:8652 App_Main.py:8717 +#: FlatCAMApp.py:9369 FlatCAMApp.py:9564 FlatCAMApp.py:9629 msgid "Failed to open file" msgstr "Eşec in incărcarea fişierului" -#: App_Main.py:8460 App_Main.py:8655 App_Main.py:8720 +#: FlatCAMApp.py:9372 FlatCAMApp.py:9567 FlatCAMApp.py:9632 msgid "Failed to parse file" msgstr "Parsarea fişierului a eșuat" -#: App_Main.py:8472 +#: FlatCAMApp.py:9384 msgid "Object is not Gerber file or empty. Aborting object creation." msgstr "" "Obiectul nu estetip Gerber sau este gol. Se anulează crearea obiectului." -#: App_Main.py:8477 +#: FlatCAMApp.py:9389 msgid "Opening Gerber" msgstr "Gerber in curs de incărcare" -#: App_Main.py:8488 +#: FlatCAMApp.py:9400 msgid "Open Gerber failed. Probable not a Gerber file." msgstr "Incărcarea Gerber a eșuat. Probabil că nu este un fișier Gerber." -#: App_Main.py:8524 +#: FlatCAMApp.py:9432 flatcamTools/ToolPcbWizard.py:424 +msgid "This is not Excellon file." +msgstr "Acesta nu este un fişier Excellon." + +#: FlatCAMApp.py:9436 msgid "Cannot open file" msgstr "Nu se poate incărca fişierul" -#: App_Main.py:8545 +#: FlatCAMApp.py:9454 flatcamTools/ToolPDF.py:275 +#: flatcamTools/ToolPcbWizard.py:445 +msgid "No geometry found in file" +msgstr "Nici-o informaţie de tip geometrie nu s-a gasit in fişierul" + +#: FlatCAMApp.py:9457 msgid "Opening Excellon." msgstr "Excellon in curs de incărcare." -#: App_Main.py:8555 +#: FlatCAMApp.py:9467 msgid "Open Excellon file failed. Probable not an Excellon file." msgstr "Incărcarea Excellon a eșuat. Probabil nu este de tip Excellon." -#: App_Main.py:8587 +#: FlatCAMApp.py:9499 msgid "Reading GCode file" msgstr "Se citeşte un fişier G-Code" -#: App_Main.py:8600 +#: FlatCAMApp.py:9505 +msgid "Failed to open" +msgstr "A eșuat incărcarea fişierului" + +#: FlatCAMApp.py:9512 msgid "This is not GCODE" msgstr "Acest obiect nu este de tip GCode" -#: App_Main.py:8605 +#: FlatCAMApp.py:9517 msgid "Opening G-Code." msgstr "G-Code in curs de incărcare." -#: App_Main.py:8618 +#: FlatCAMApp.py:9530 msgid "" "Failed to create CNCJob Object. Probable not a GCode file. Try to load it " "from File menu.\n" @@ -18054,120 +1293,124 @@ msgstr "" "Încercați să-l încărcați din meniul Fișier. \n" "Incercarea de a crea un obiect CNCJob din G-Code a eșuat in timpul procesarii" -#: App_Main.py:8674 +#: FlatCAMApp.py:9586 msgid "Object is not HPGL2 file or empty. Aborting object creation." msgstr "" "Obiectul nu este fișier HPGL2 sau este gol. Se renunta la crearea obiectului." -#: App_Main.py:8679 +#: FlatCAMApp.py:9591 msgid "Opening HPGL2" msgstr "HPGL2 in curs de incărcare" -#: App_Main.py:8686 +#: FlatCAMApp.py:9598 msgid " Open HPGL2 failed. Probable not a HPGL2 file." msgstr " Incărcarea HPGL2 a eșuat. Probabil nu este de tip HPGL2 ." -#: App_Main.py:8712 +#: FlatCAMApp.py:9624 msgid "TCL script file opened in Code Editor." msgstr "S-a încărcat un script TCL în Editorul Cod." -#: App_Main.py:8732 +#: FlatCAMApp.py:9644 msgid "Opening TCL Script..." msgstr "Încarcă TCL script..." -#: App_Main.py:8743 +#: FlatCAMApp.py:9655 msgid "Failed to open TCL Script." msgstr "Eşec in incărcarea fişierului TCL." -#: App_Main.py:8765 +#: FlatCAMApp.py:9677 msgid "Opening FlatCAM Config file." msgstr "Se incarca un fişier FlatCAM de configurare." -#: App_Main.py:8793 +#: FlatCAMApp.py:9705 msgid "Failed to open config file" msgstr "Eşec in incărcarea fişierului de configurare" -#: App_Main.py:8822 +#: FlatCAMApp.py:9734 msgid "Loading Project ... Please Wait ..." msgstr "Se încarcă proiectul ... Vă rugăm să așteptați ..." -#: App_Main.py:8827 +#: FlatCAMApp.py:9739 msgid "Opening FlatCAM Project file." msgstr "Se incarca un fisier proiect FlatCAM." -#: App_Main.py:8842 App_Main.py:8846 App_Main.py:8863 +#: FlatCAMApp.py:9754 FlatCAMApp.py:9758 FlatCAMApp.py:9775 msgid "Failed to open project file" msgstr "Eşec in incărcarea fişierului proiect" -#: App_Main.py:8900 +#: FlatCAMApp.py:9812 msgid "Loading Project ... restoring" msgstr "Se încarcă proiectul ... se restabileste" -#: App_Main.py:8910 +#: FlatCAMApp.py:9822 msgid "Project loaded from" msgstr "Proiectul a fost incărcat din" -#: App_Main.py:8936 +#: FlatCAMApp.py:9846 msgid "Redrawing all objects" msgstr "Toate obiectele sunt reafisate" -#: App_Main.py:9024 +#: FlatCAMApp.py:9934 msgid "Failed to load recent item list." msgstr "Eşec in incărcarea listei cu fişiere recente." -#: App_Main.py:9031 +#: FlatCAMApp.py:9941 msgid "Failed to parse recent item list." msgstr "Eşec in parsarea listei cu fişiere recente." -#: App_Main.py:9041 +#: FlatCAMApp.py:9951 msgid "Failed to load recent projects item list." msgstr "Eşec in incărcarea listei cu proiecte recente." -#: App_Main.py:9048 +#: FlatCAMApp.py:9958 msgid "Failed to parse recent project item list." msgstr "Eşec in parsarea listei cu proiecte recente." -#: App_Main.py:9109 +#: FlatCAMApp.py:10019 msgid "Clear Recent projects" msgstr "Sterge Proiectele recente" -#: App_Main.py:9133 +#: FlatCAMApp.py:10043 msgid "Clear Recent files" msgstr "Sterge fişierele recente" -#: App_Main.py:9235 +#: FlatCAMApp.py:10065 flatcamGUI/FlatCAMGUI.py:1363 +msgid "Shortcut Key List" +msgstr "Lista cu taste Shortcut" + +#: FlatCAMApp.py:10145 msgid "Selected Tab - Choose an Item from Project Tab" msgstr "Tab-ul Selectat - Alege un obiect din Tab-ul Proiect" -#: App_Main.py:9236 +#: FlatCAMApp.py:10146 msgid "Details" msgstr "Detalii" -#: App_Main.py:9238 -msgid "The normal flow when working with the application is the following:" -msgstr "Fluxul normal atunci când lucrați cu aplicația este următorul:" +#: FlatCAMApp.py:10148 +msgid "The normal flow when working in FlatCAM is the following:" +msgstr "Fluxul normal cand se lucreaza in FlatCAM este urmatorul:" -#: App_Main.py:9239 +#: FlatCAMApp.py:10149 msgid "" "Load/Import a Gerber, Excellon, Gcode, DXF, Raster Image or SVG file into " -"the application using either the toolbars, key shortcuts or even dragging " -"and dropping the files on the AppGUI." +"FlatCAM using either the toolbars, key shortcuts or even dragging and " +"dropping the files on the GUI." msgstr "" -"Încărcați / importați un fișier Gerber, Excellon, Gcode, DXF, Imagine Raster " -"sau SVG în aplicatie utilizând fie barele de instrumente, combinatii de " -"taste sau chiar tragând fișierele în GUI." +"Încărcați / importați un fișier Gerber, Excellon, Gcode, DXF, Raster Image " +"sau SVG în FlatCAM utilizând fie barele de instrumente, combinatii de taste " +"sau chiar tragând fișierele în GUI." -#: App_Main.py:9242 +#: FlatCAMApp.py:10152 msgid "" -"You can also load a project by double clicking on the project file, drag and " -"drop of the file into the AppGUI or through the menu (or toolbar) actions " -"offered within the app." +"You can also load a FlatCAM project by double clicking on the project file, " +"drag and drop of the file into the FLATCAM GUI or through the menu (or " +"toolbar) actions offered within the app." msgstr "" -"De asemenea, puteți încărca un proiect făcând dublu clic pe fișierul " -"proiectului, tragând fișierul în GUI-ul aplicatiei sau prin icon-urile din " +"De asemenea, puteți încărca un proiect FlatCAM făcând dublu clic pe fișierul " +"proiectului, tragând fișierul în fereastra FLATCAM sau prin icon-urile din " "meniu (sau din bara de instrumente) oferite în aplicație." -#: App_Main.py:9245 +#: FlatCAMApp.py:10155 msgid "" "Once an object is available in the Project Tab, by selecting it and then " "focusing on SELECTED TAB (more simpler is to double click the object name in " @@ -18180,7 +1423,7 @@ msgstr "" "proprietățile obiectului în funcție de tipul său: Gerber, Excellon, " "Geometrie sau obiect CNCJob." -#: App_Main.py:9249 +#: FlatCAMApp.py:10159 msgid "" "If the selection of the object is done on the canvas by single click " "instead, and the SELECTED TAB is in focus, again the object properties will " @@ -18194,14 +1437,14 @@ msgstr "" "de pe ecran va aduce fila SELECTAT și o va popula chiar dacă nu a fost in " "focus." -#: App_Main.py:9253 +#: FlatCAMApp.py:10163 msgid "" "You can change the parameters in this screen and the flow direction is like " "this:" msgstr "" "Se pot schimba parametrii in acest ecran si directia de executive este asa:" -#: App_Main.py:9254 +#: FlatCAMApp.py:10164 msgid "" "Gerber/Excellon Object --> Change Parameter --> Generate Geometry --> " "Geometry Object --> Add tools (change param in Selected Tab) --> Generate " @@ -18214,7 +1457,7 @@ msgstr "" "CNC) și / sau adăugați in fata / la final codul G-code (din nou, efectuat în " "fila SELECȚIONATĂ) -> Salvați codul G-code." -#: App_Main.py:9258 +#: FlatCAMApp.py:10168 msgid "" "A list of key shortcuts is available through an menu entry in Help --> " "Shortcuts List or through its own key shortcut: F3." @@ -18223,33 +1466,33 @@ msgstr "" "meniul Ajutor -> Lista de combinatii taste sau prin propria tasta asociata: " "F3." -#: App_Main.py:9322 +#: FlatCAMApp.py:10232 msgid "Failed checking for latest version. Could not connect." msgstr "" "Verificarea pentru ultima versiune a eșuat. Nu a fost posibilă conectarea la " "server." -#: App_Main.py:9329 +#: FlatCAMApp.py:10239 msgid "Could not parse information about latest version." msgstr "Informatia cu privire la ultima versiune nu s-a putut interpreta." -#: App_Main.py:9339 +#: FlatCAMApp.py:10249 msgid "FlatCAM is up to date!" msgstr "FlatCAM este la ultima versiune!" -#: App_Main.py:9344 +#: FlatCAMApp.py:10254 msgid "Newer Version Available" msgstr "O nouă versiune este disponibila" -#: App_Main.py:9346 +#: FlatCAMApp.py:10256 msgid "There is a newer version of FlatCAM available for download:" msgstr "O nouă versiune de FlatCAM este disponibilă pentru download:" -#: App_Main.py:9350 +#: FlatCAMApp.py:10260 msgid "info" msgstr "informaţie" -#: App_Main.py:9378 +#: FlatCAMApp.py:10288 msgid "" "OpenGL canvas initialization failed. HW or HW configuration not supported." "Change the graphic engine to Legacy(2D) in Edit -> Preferences -> General " @@ -18261,75 +1504,129 @@ msgstr "" "Preferinţe -> General\n" "\n" -#: App_Main.py:9456 +#: FlatCAMApp.py:10367 msgid "All plots disabled." msgstr "Toate afişările sunt dezactivate." -#: App_Main.py:9463 +#: FlatCAMApp.py:10374 msgid "All non selected plots disabled." msgstr "Toate afişările care nu sunt selectate sunt dezactivate." -#: App_Main.py:9470 +#: FlatCAMApp.py:10381 msgid "All plots enabled." msgstr "Toate afişările sunt activate." -#: App_Main.py:9476 +#: FlatCAMApp.py:10387 msgid "Selected plots enabled..." msgstr "Toate afişările selectate sunt activate..." -#: App_Main.py:9484 +#: FlatCAMApp.py:10395 msgid "Selected plots disabled..." msgstr "Toate afişările selectate sunt dezactivate..." -#: App_Main.py:9517 +#: FlatCAMApp.py:10428 msgid "Enabling plots ..." msgstr "Activează Afișare ..." -#: App_Main.py:9566 +#: FlatCAMApp.py:10480 msgid "Disabling plots ..." msgstr "Dezactivează Afișare ..." -#: App_Main.py:9589 +#: FlatCAMApp.py:10503 msgid "Working ..." msgstr "Se lucrează..." -#: App_Main.py:9698 +#: FlatCAMApp.py:10558 flatcamGUI/FlatCAMGUI.py:703 +msgid "Red" +msgstr "Roșu" + +#: FlatCAMApp.py:10560 flatcamGUI/FlatCAMGUI.py:706 +msgid "Blue" +msgstr "Albastru" + +#: FlatCAMApp.py:10563 flatcamGUI/FlatCAMGUI.py:709 +msgid "Yellow" +msgstr "Galben" + +#: FlatCAMApp.py:10565 flatcamGUI/FlatCAMGUI.py:712 +msgid "Green" +msgstr "Verde" + +#: FlatCAMApp.py:10567 flatcamGUI/FlatCAMGUI.py:715 +msgid "Purple" +msgstr "Violet" + +#: FlatCAMApp.py:10569 flatcamGUI/FlatCAMGUI.py:718 +msgid "Brown" +msgstr "Maro" + +#: FlatCAMApp.py:10571 FlatCAMApp.py:10627 flatcamGUI/FlatCAMGUI.py:721 +msgid "White" +msgstr "Alb" + +#: FlatCAMApp.py:10573 flatcamGUI/FlatCAMGUI.py:724 +msgid "Black" +msgstr "Negru" + +#: FlatCAMApp.py:10576 flatcamGUI/FlatCAMGUI.py:729 +msgid "Custom" +msgstr "Personalizat" + +#: FlatCAMApp.py:10586 flatcamGUI/FlatCAMGUI.py:737 +msgid "Default" +msgstr "Implicit" + +#: FlatCAMApp.py:10610 flatcamGUI/FlatCAMGUI.py:734 +msgid "Opacity" +msgstr "Opacitate" + +#: FlatCAMApp.py:10612 msgid "Set alpha level ..." msgstr "Setează transparenta ..." -#: App_Main.py:9752 +#: FlatCAMApp.py:10612 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:131 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:133 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:220 +#: flatcamTools/ToolExtractDrills.py:164 flatcamTools/ToolExtractDrills.py:285 +#: flatcamTools/ToolPunchGerber.py:192 flatcamTools/ToolPunchGerber.py:308 +#: flatcamTools/ToolTransform.py:357 +msgid "Value" +msgstr "Valoare" + +#: FlatCAMApp.py:10666 msgid "Saving FlatCAM Project" msgstr "Proiectul FlatCAM este in curs de salvare" -#: App_Main.py:9773 App_Main.py:9809 +#: FlatCAMApp.py:10687 FlatCAMApp.py:10723 msgid "Project saved to" msgstr "Proiectul s-a salvat in" -#: App_Main.py:9780 +#: FlatCAMApp.py:10694 msgid "The object is used by another application." msgstr "Obiectul este folosit de o altă aplicație." -#: App_Main.py:9794 +#: FlatCAMApp.py:10708 msgid "Failed to verify project file" msgstr "Eşec in incărcarea fişierului proiect" -#: App_Main.py:9794 App_Main.py:9802 App_Main.py:9812 +#: FlatCAMApp.py:10708 FlatCAMApp.py:10716 FlatCAMApp.py:10726 msgid "Retry to save it." msgstr "Încercați din nou pentru a-l salva." -#: App_Main.py:9802 App_Main.py:9812 +#: FlatCAMApp.py:10716 FlatCAMApp.py:10726 msgid "Failed to parse saved project file" msgstr "Esec in analizarea fişierului Proiect" -#: Bookmark.py:57 Bookmark.py:84 +#: FlatCAMBookmark.py:57 FlatCAMBookmark.py:84 msgid "Title" msgstr "Titlu" -#: Bookmark.py:58 Bookmark.py:88 +#: FlatCAMBookmark.py:58 FlatCAMBookmark.py:88 msgid "Web Link" msgstr "Website" -#: Bookmark.py:62 +#: FlatCAMBookmark.py:62 msgid "" "Index.\n" "The rows in gray color will populate the Bookmarks menu.\n" @@ -18339,7 +1636,7 @@ msgstr "" "Rândurile în culoare gri vor fi adăugate in meniul de Bookmarks.\n" "Numărul de rânduri colorate gri este setat în Preferințe." -#: Bookmark.py:66 +#: FlatCAMBookmark.py:66 msgid "" "Description of the link that is set as an menu action.\n" "Try to keep it short because it is installed as a menu item." @@ -18347,118 +1644,1023 @@ msgstr "" "Descrierea Website care este setată ca acțiune de meniu.\n" "Încercați să o mențineți scurtă, deoarece este instalată ca element de meniu." -#: Bookmark.py:69 +#: FlatCAMBookmark.py:69 msgid "Web Link. E.g: https://your_website.org " msgstr "Website. De ex: https://your_website.org " -#: Bookmark.py:78 +#: FlatCAMBookmark.py:78 msgid "New Bookmark" msgstr "Bookmark Nou" -#: Bookmark.py:97 +#: FlatCAMBookmark.py:97 msgid "Add Entry" msgstr "Adaugă Intrare" -#: Bookmark.py:98 +#: FlatCAMBookmark.py:98 msgid "Remove Entry" msgstr "Elimina Intrare" -#: Bookmark.py:99 +#: FlatCAMBookmark.py:99 msgid "Export List" msgstr "Exportă lista" -#: Bookmark.py:100 +#: FlatCAMBookmark.py:100 msgid "Import List" msgstr "Importă lista" -#: Bookmark.py:190 +#: FlatCAMBookmark.py:190 msgid "Title entry is empty." msgstr "Caseta de introducere Titlu este goală." -#: Bookmark.py:199 +#: FlatCAMBookmark.py:199 msgid "Web link entry is empty." msgstr "Caseta de introducere a link-ului web este goală." -#: Bookmark.py:207 +#: FlatCAMBookmark.py:207 msgid "Either the Title or the Weblink already in the table." msgstr "Fie Titlul, fie Weblink-ul deja sunt in tabel." -#: Bookmark.py:227 +#: FlatCAMBookmark.py:227 msgid "Bookmark added." msgstr "Bookmark adăugat." -#: Bookmark.py:244 +#: FlatCAMBookmark.py:244 msgid "This bookmark can not be removed" msgstr "Acest bookmark nu poate fi eliminat" -#: Bookmark.py:275 +#: FlatCAMBookmark.py:275 msgid "Bookmark removed." msgstr "Bookmark-ul a fost eliminat." -#: Bookmark.py:290 -msgid "Export Bookmarks" -msgstr "Exportă Bookmark-uri" +#: FlatCAMBookmark.py:290 +msgid "Export FlatCAM Bookmarks" +msgstr "Exportați bookmark-urile FlatCAM" -#: Bookmark.py:319 Bookmark.py:349 +#: FlatCAMBookmark.py:293 flatcamGUI/FlatCAMGUI.py:524 +msgid "Bookmarks" +msgstr "Bookmarks" + +#: FlatCAMBookmark.py:319 FlatCAMBookmark.py:349 msgid "Could not load bookmarks file." msgstr "Nu am putut incărca fişierul cu bookmark-uri." -#: Bookmark.py:329 +#: FlatCAMBookmark.py:329 msgid "Failed to write bookmarks to file." msgstr "Salvarea bookmark-urilor intr-un fişier a eșuat." -#: Bookmark.py:331 +#: FlatCAMBookmark.py:331 msgid "Exported bookmarks to" msgstr "Exportă Bookmark-uri in" -#: Bookmark.py:337 -msgid "Import Bookmarks" -msgstr "Importă Bookmark-uri" +#: FlatCAMBookmark.py:337 +msgid "Import FlatCAM Bookmarks" +msgstr "Importă Bookmark-uri FlatCAM" -#: Bookmark.py:356 +#: FlatCAMBookmark.py:356 msgid "Imported Bookmarks from" msgstr "Bookmark-uri au fost importate din" -#: Common.py:42 +#: FlatCAMCommon.py:29 msgid "The user requested a graceful exit of the current task." msgstr "Utilizatorul a solicitat o inchidere grațioasă a taskului curent." -#: Common.py:269 -msgid "Click the end point of the area." -msgstr "Faceți clic pe punctul final al zonei." +#: FlatCAMDB.py:86 +msgid "Add Geometry Tool in DB" +msgstr "Adăugați Unealta de Geometrie în DB" -#: Common.py:408 -msgid "Exclusion areas added. Checking overlap with the object geometry ..." -msgstr "Exclusion areas added. Checking overlap with the object geometry ..." +#: FlatCAMDB.py:88 FlatCAMDB.py:1643 +msgid "" +"Add a new tool in the Tools Database.\n" +"It will be used in the Geometry UI.\n" +"You can edit it after it is added." +msgstr "" +"Adăugați o unealtă nouă în baza de date.\n" +"Acesta va fi utilizată în UI de Geometrie.\n" +"O puteți edita după ce este adăugată." -#: Common.py:413 -msgid "Failed. Exclusion areas intersects the object geometry ..." -msgstr "A eșuat. Zonele de excludere intersectează geometria obiectului ..." +#: FlatCAMDB.py:102 FlatCAMDB.py:1657 +msgid "Delete Tool from DB" +msgstr "Ștergeți unealta din DB" -#: Common.py:417 -msgid "Exclusion areas added." -msgstr "S-au adăugat zone de excludere." +#: FlatCAMDB.py:104 FlatCAMDB.py:1659 +msgid "Remove a selection of tools in the Tools Database." +msgstr "Stergeți o selecție de Unelte din baza de date Unelte." -#: Common.py:426 -msgid "With Exclusion areas." -msgstr "Cu zone de excludere." +#: FlatCAMDB.py:108 FlatCAMDB.py:1663 +msgid "Export DB" +msgstr "Exportă DB" -#: Common.py:461 -msgid "Cancelled. Area exclusion drawing was interrupted." -msgstr "Anulat. Desenarea Zonei de Excludere a fost întreruptă." +#: FlatCAMDB.py:110 FlatCAMDB.py:1665 +msgid "Save the Tools Database to a custom text file." +msgstr "Salvați baza de date Unelte într-un fișier text." -#: Common.py:572 Common.py:621 -msgid "All exclusion zones deleted." -msgstr "Toate zonele de excludere au fost șterse." +#: FlatCAMDB.py:114 FlatCAMDB.py:1669 +msgid "Import DB" +msgstr "Importă DB" -#: Common.py:608 -msgid "Selected exclusion zones deleted." -msgstr "Zonele de excludere selectate au fost șterse." +#: FlatCAMDB.py:116 FlatCAMDB.py:1671 +msgid "Load the Tools Database information's from a custom text file." +msgstr "Încărcați informațiile din baza de date Unelte dintr-un fișier text." + +#: FlatCAMDB.py:120 FlatCAMDB.py:1681 +msgid "Add Tool from Tools DB" +msgstr "Adăugați Unealta din DB Unelte" + +#: FlatCAMDB.py:122 FlatCAMDB.py:1683 +msgid "" +"Add a new tool in the Tools Table of the\n" +"active Geometry object after selecting a tool\n" +"in the Tools Database." +msgstr "" +"Adăugați o Unealta noua în Tabelul Unelte din\n" +"obiectul Geometrie activ după selectarea unei Unelte\n" +"în baza de date Unelte." + +#: FlatCAMDB.py:158 FlatCAMDB.py:833 FlatCAMDB.py:1087 +msgid "Tool Name" +msgstr "Nume unealtă" + +#: FlatCAMDB.py:159 FlatCAMDB.py:835 FlatCAMDB.py:1100 +#: flatcamEditors/FlatCAMExcEditor.py:1604 flatcamGUI/ObjectUI.py:1345 +#: flatcamGUI/ObjectUI.py:1583 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:132 +#: flatcamTools/ToolNCC.py:278 flatcamTools/ToolNCC.py:287 +#: flatcamTools/ToolPaint.py:261 +msgid "Tool Dia" +msgstr "Dia Unealtă" + +#: FlatCAMDB.py:160 FlatCAMDB.py:837 FlatCAMDB.py:1281 +#: flatcamGUI/ObjectUI.py:1558 +msgid "Tool Offset" +msgstr "Ofset unealtă" + +#: FlatCAMDB.py:161 FlatCAMDB.py:839 FlatCAMDB.py:1298 +msgid "Custom Offset" +msgstr "Ofset Personalizat" + +#: FlatCAMDB.py:162 FlatCAMDB.py:841 FlatCAMDB.py:1265 +#: flatcamGUI/ObjectUI.py:309 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:67 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:53 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:62 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:72 +#: flatcamTools/ToolNCC.py:213 flatcamTools/ToolNCC.py:227 +#: flatcamTools/ToolPaint.py:196 +msgid "Tool Type" +msgstr "Tip Unealtă" + +#: FlatCAMDB.py:163 FlatCAMDB.py:843 FlatCAMDB.py:1113 +msgid "Tool Shape" +msgstr "Formă unealtă" + +#: FlatCAMDB.py:164 FlatCAMDB.py:846 FlatCAMDB.py:1129 +#: flatcamGUI/ObjectUI.py:350 flatcamGUI/ObjectUI.py:900 +#: flatcamGUI/ObjectUI.py:1703 flatcamGUI/ObjectUI.py:2336 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:93 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:48 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:107 +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:78 +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:58 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:98 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:105 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:113 +#: flatcamTools/ToolCalculators.py:114 flatcamTools/ToolCutOut.py:138 +#: flatcamTools/ToolNCC.py:260 flatcamTools/ToolNCC.py:268 +#: flatcamTools/ToolPaint.py:243 +msgid "Cut Z" +msgstr "Z tăiere" + +#: FlatCAMDB.py:165 FlatCAMDB.py:848 FlatCAMDB.py:1143 +msgid "MultiDepth" +msgstr "Multi-Pas" + +#: FlatCAMDB.py:166 FlatCAMDB.py:850 FlatCAMDB.py:1156 +msgid "DPP" +msgstr "DPP" + +#: FlatCAMDB.py:167 FlatCAMDB.py:852 FlatCAMDB.py:1312 +msgid "V-Dia" +msgstr "V-Dia" + +#: FlatCAMDB.py:168 FlatCAMDB.py:854 FlatCAMDB.py:1326 +msgid "V-Angle" +msgstr "V-Unghi" + +#: FlatCAMDB.py:169 FlatCAMDB.py:856 FlatCAMDB.py:1170 +#: flatcamGUI/ObjectUI.py:946 flatcamGUI/ObjectUI.py:1750 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:134 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:101 +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:61 +#: flatcamObjects/FlatCAMExcellon.py:1316 +#: flatcamObjects/FlatCAMGeometry.py:1606 flatcamTools/ToolCalibration.py:74 +msgid "Travel Z" +msgstr "Z Deplasare" + +#: FlatCAMDB.py:170 FlatCAMDB.py:858 +msgid "FR" +msgstr "Feedrate" + +#: FlatCAMDB.py:171 FlatCAMDB.py:860 +msgid "FR Z" +msgstr "Z feedrate" + +#: FlatCAMDB.py:172 FlatCAMDB.py:862 FlatCAMDB.py:1340 +msgid "FR Rapids" +msgstr "Feedrate rapizi" + +#: FlatCAMDB.py:173 FlatCAMDB.py:864 FlatCAMDB.py:1213 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:222 +msgid "Spindle Speed" +msgstr "Viteza Motor" + +#: FlatCAMDB.py:174 FlatCAMDB.py:866 FlatCAMDB.py:1228 +#: flatcamGUI/ObjectUI.py:1064 flatcamGUI/ObjectUI.py:1857 +msgid "Dwell" +msgstr "Pauza" + +#: FlatCAMDB.py:175 FlatCAMDB.py:868 FlatCAMDB.py:1241 +msgid "Dwelltime" +msgstr "Durata pauza" + +#: FlatCAMDB.py:176 FlatCAMDB.py:870 flatcamGUI/ObjectUI.py:2014 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:257 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:254 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:237 +#: flatcamTools/ToolSolderPaste.py:335 +msgid "Preprocessor" +msgstr "Postprocesor" + +#: FlatCAMDB.py:177 FlatCAMDB.py:872 FlatCAMDB.py:1356 +msgid "ExtraCut" +msgstr "Extra taiere" + +#: FlatCAMDB.py:178 FlatCAMDB.py:874 FlatCAMDB.py:1371 +msgid "E-Cut Length" +msgstr "Lungime E-taiere" + +#: FlatCAMDB.py:179 FlatCAMDB.py:876 +msgid "Toolchange" +msgstr "Schimb unealtă" + +#: FlatCAMDB.py:180 FlatCAMDB.py:878 +msgid "Toolchange XY" +msgstr "X,Y schimb unealtă" + +#: FlatCAMDB.py:181 FlatCAMDB.py:880 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:160 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:131 +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:98 +#: flatcamTools/ToolCalibration.py:111 +msgid "Toolchange Z" +msgstr "Z schimb. unealtă" + +#: FlatCAMDB.py:182 FlatCAMDB.py:882 flatcamGUI/ObjectUI.py:1193 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:69 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:54 +msgid "Start Z" +msgstr "Z Start" + +#: FlatCAMDB.py:183 FlatCAMDB.py:885 +msgid "End Z" +msgstr "Z Oprire" + +#: FlatCAMDB.py:187 +msgid "Tool Index." +msgstr "Index unealta." + +#: FlatCAMDB.py:189 FlatCAMDB.py:1089 +msgid "" +"Tool name.\n" +"This is not used in the app, it's function\n" +"is to serve as a note for the user." +msgstr "" +"Numele uneltei.\n" +"Aceasta nu este folosită în aplicație, funcția sa\n" +"este să servească drept notă pentru utilizator." + +#: FlatCAMDB.py:193 FlatCAMDB.py:1102 +msgid "Tool Diameter." +msgstr "Diametru unealtă." + +#: FlatCAMDB.py:195 FlatCAMDB.py:1283 +msgid "" +"Tool Offset.\n" +"Can be of a few types:\n" +"Path = zero offset\n" +"In = offset inside by half of tool diameter\n" +"Out = offset outside by half of tool diameter\n" +"Custom = custom offset using the Custom Offset value" +msgstr "" +"Offset-ul uneltei.\n" +"Poate fi de câteva tipuri:\n" +"Cale = decalare zero\n" +"Interior = compensat în interior cu jumătate din diametrul sculei\n" +"Exterior = compensat în exterior cu jumătate din diametrul sculei\n" +"Custom = compensare personalizată folosind valoarea Offset personalizat" + +#: FlatCAMDB.py:202 FlatCAMDB.py:1300 +msgid "" +"Custom Offset.\n" +"A value to be used as offset from the current path." +msgstr "" +"Ofset personalizat.\n" +"O valoare care trebuie utilizată ca compensare din Calea curentă." + +#: FlatCAMDB.py:205 FlatCAMDB.py:1267 +msgid "" +"Tool Type.\n" +"Can be:\n" +"Iso = isolation cut\n" +"Rough = rough cut, low feedrate, multiple passes\n" +"Finish = finishing cut, high feedrate" +msgstr "" +"Tip uneltei.\n" +"Poate fi:\n" +"Iso = tăiere de izolare\n" +"Aspră = tăietură aspră, viteză scăzută, treceri multiple\n" +"Finisare = tăiere de finisare, avans mare" + +#: FlatCAMDB.py:211 FlatCAMDB.py:1115 +msgid "" +"Tool Shape. \n" +"Can be:\n" +"C1 ... C4 = circular tool with x flutes\n" +"B = ball tip milling tool\n" +"V = v-shape milling tool" +msgstr "" +"Forma uneltei.\n" +"Poate fi:\n" +"C1 ... C4 = unealtă circulară cu x dinti\n" +"B = instrument de frezare cu vârf formal bila\n" +"V = instrument de frezare în formă V" + +#: FlatCAMDB.py:217 FlatCAMDB.py:1131 +msgid "" +"Cutting Depth.\n" +"The depth at which to cut into material." +msgstr "" +"Adâncimea de tăiere.\n" +"Adâncimea la care se taie în material." + +#: FlatCAMDB.py:220 FlatCAMDB.py:1145 +msgid "" +"Multi Depth.\n" +"Selecting this will allow cutting in multiple passes,\n" +"each pass adding a DPP parameter depth." +msgstr "" +"Adâncime multiplă\n" +"Selectarea acestui lucru va permite tăierea în mai multe treceri,\n" +"fiecare trecere adăugând o adâncime a parametrului DPP." + +#: FlatCAMDB.py:224 FlatCAMDB.py:1158 +msgid "" +"DPP. Depth per Pass.\n" +"The value used to cut into material on each pass." +msgstr "" +"DPP. Adâncimea pe trecere.\n" +"Valoarea folosită pentru a tăia în material la fiecare trecere." + +#: FlatCAMDB.py:227 FlatCAMDB.py:1314 +msgid "" +"V-Dia.\n" +"Diameter of the tip for V-Shape Tools." +msgstr "" +"V-Dia.\n" +"Diametrul vârfului pentru uneltele în formă de V." + +#: FlatCAMDB.py:230 FlatCAMDB.py:1328 +msgid "" +"V-Agle.\n" +"Angle at the tip for the V-Shape Tools." +msgstr "" +"V-Unghi.\n" +"Unghiul în vârf pentru instrumentele în formă de V." + +#: FlatCAMDB.py:233 FlatCAMDB.py:1172 +msgid "" +"Clearance Height.\n" +"Height at which the milling bit will travel between cuts,\n" +"above the surface of the material, avoiding all fixtures." +msgstr "" +"Înălțimea de Siguranta.\n" +"Înălțimea la care bitul de frezare va călători între tăieturi,\n" +"deasupra suprafeței materialului, evitând toate accesoriile." + +#: FlatCAMDB.py:237 +msgid "" +"FR. Feedrate\n" +"The speed on XY plane used while cutting into material." +msgstr "" +"FR. Avans.\n" +"Viteza pe planul XY utilizat la tăierea în material." + +#: FlatCAMDB.py:240 +msgid "" +"FR Z. Feedrate Z\n" +"The speed on Z plane." +msgstr "" +"FR Z. Feedrate Z. Avans Z.\n" +"Viteza de deplasare in planul Z." + +#: FlatCAMDB.py:243 FlatCAMDB.py:1342 +msgid "" +"FR Rapids. Feedrate Rapids\n" +"Speed used while moving as fast as possible.\n" +"This is used only by some devices that can't use\n" +"the G0 g-code command. Mostly 3D printers." +msgstr "" +"FR Rapid. Feedrate Rapids. Avans Rapid.\n" +"Viteza folosită în timpul deplasarii pe cât mai repede posibil.\n" +"Acesta este folosit doar de unele dispozitive in care nu poate fi utilizata\n" +"comanda G-cod G0. În mare parte este vorda de imprimante 3D." + +#: FlatCAMDB.py:248 FlatCAMDB.py:1215 +msgid "" +"Spindle Speed.\n" +"If it's left empty it will not be used.\n" +"The speed of the spindle in RPM." +msgstr "" +"Viteza motorului.\n" +"Dacă este lăsat gol, nu va fi folosit.\n" +"Viteza rotorului în RPM." + +#: FlatCAMDB.py:252 FlatCAMDB.py:1230 +msgid "" +"Dwell.\n" +"Check this if a delay is needed to allow\n" +"the spindle motor to reach it's set speed." +msgstr "" +"Pauză.\n" +"Verificați dacă este necesară o întârziere pentru a permite\n" +"motorului sa ajungă la viteza setată." + +#: FlatCAMDB.py:256 FlatCAMDB.py:1243 +msgid "" +"Dwell Time.\n" +"A delay used to allow the motor spindle reach it's set speed." +msgstr "" +"Durata pauzei.\n" +"O întârziere pentru a permite motorului sa ajungă la viteza setată." + +#: FlatCAMDB.py:259 +msgid "" +"Preprocessor.\n" +"A selection of files that will alter the generated G-code\n" +"to fit for a number of use cases." +msgstr "" +"Preprocesorul.\n" +"O selecție de fișiere care vor modifica codul G generat\n" +"pentru a se potrivi pentru o serie de cazuri de utilizare." + +#: FlatCAMDB.py:263 FlatCAMDB.py:1358 +msgid "" +"Extra Cut.\n" +"If checked, after a isolation is finished an extra cut\n" +"will be added where the start and end of isolation meet\n" +"such as that this point is covered by this extra cut to\n" +"ensure a complete isolation." +msgstr "" +"Taietura suplimentara\n" +"Dacă este bifat, după terminarea izolării, tăieri suplimentare\n" +"vor fi adăugate acolo unde se întâlnesc începutul și sfârșitul izolării\n" +"astfel că acest punct este acoperit de aceste tăieri suplimentare si\n" +"asigură o izolare completă." + +#: FlatCAMDB.py:269 FlatCAMDB.py:1373 +msgid "" +"Extra Cut length.\n" +"If checked, after a isolation is finished an extra cut\n" +"will be added where the start and end of isolation meet\n" +"such as that this point is covered by this extra cut to\n" +"ensure a complete isolation. This is the length of\n" +"the extra cut." +msgstr "" +"Lungime suplimentară tăiată\n" +"Dacă este bifat, după terminarea izolării, tăieri suplimentare\n" +"vor fi adăugate acolo unde se întâlnesc începutul și sfârșitul izolării\n" +"astfel că acest punct este acoperit de aceste tăieri suplimentare si\n" +"asigură o izolare completă." + +#: FlatCAMDB.py:276 +msgid "" +"Toolchange.\n" +"It will create a toolchange event.\n" +"The kind of toolchange is determined by\n" +"the preprocessor file." +msgstr "" +"Schimbarea Uneltei.\n" +"Va crea un eveniment de schimbare a uneltelor.\n" +"Tipul schimbului de unelte este determinat de\n" +"fișierul preprocesor." + +#: FlatCAMDB.py:281 +msgid "" +"Toolchange XY.\n" +"A set of coordinates in the format (x, y).\n" +"Will determine the cartesian position of the point\n" +"where the tool change event take place." +msgstr "" +"Schimb de unelte - locatia XY.\n" +"Un set de coordonate în format (x, y).\n" +"Va determina poziția carteziană a punctului\n" +"unde are loc evenimentul schimbării instrumentelor." + +#: FlatCAMDB.py:286 +msgid "" +"Toolchange Z.\n" +"The position on Z plane where the tool change event take place." +msgstr "" +"Schimb de unelte - locatia Z.\n" +"Poziția in planul Z unde are loc evenimentul de schimbare a sculei." + +#: FlatCAMDB.py:289 +msgid "" +"Start Z.\n" +"If it's left empty it will not be used.\n" +"A position on Z plane to move immediately after job start." +msgstr "" +"Z Start.\n" +"Dacă este lăsat gol, nu va fi folosit.\n" +"O poziție pe planul Z pentru a se deplasa imediat după începerea lucrului." + +#: FlatCAMDB.py:293 +msgid "" +"End Z.\n" +"A position on Z plane to move immediately after job stop." +msgstr "" +"Z Sfârșit.\n" +"O poziție pe planul Z pentru a se deplasa imediat după oprirea executiei." + +#: FlatCAMDB.py:305 FlatCAMDB.py:682 FlatCAMDB.py:716 FlatCAMDB.py:1898 +#: FlatCAMDB.py:2144 FlatCAMDB.py:2178 +msgid "Could not load Tools DB file." +msgstr "Nu s-a putut încărca fișierul DB Unelte." + +#: FlatCAMDB.py:313 FlatCAMDB.py:724 FlatCAMDB.py:1906 FlatCAMDB.py:2186 +msgid "Failed to parse Tools DB file." +msgstr "Eroare la analizarea fișierului DB Unelte." + +#: FlatCAMDB.py:316 FlatCAMDB.py:727 FlatCAMDB.py:1909 FlatCAMDB.py:2189 +msgid "Loaded FlatCAM Tools DB from" +msgstr "S-a incărcat DB Unelte din" + +#: FlatCAMDB.py:322 FlatCAMDB.py:1823 +msgid "Add to DB" +msgstr "Adăugați la DB Unelte" + +#: FlatCAMDB.py:324 FlatCAMDB.py:1826 +msgid "Copy from DB" +msgstr "Copiați din DB Unelte" + +#: FlatCAMDB.py:326 FlatCAMDB.py:1829 +msgid "Delete from DB" +msgstr "Ștergeți din DB Unelte" + +#: FlatCAMDB.py:603 FlatCAMDB.py:2044 +msgid "Tool added to DB." +msgstr "Unealtă adăugată in DB." + +#: FlatCAMDB.py:624 FlatCAMDB.py:2077 +msgid "Tool copied from Tools DB." +msgstr "Unealta a fost copiată din DB Unelte." + +#: FlatCAMDB.py:642 FlatCAMDB.py:2104 +msgid "Tool removed from Tools DB." +msgstr "Unealta a fost ștearsă din DB Unelte." + +#: FlatCAMDB.py:653 FlatCAMDB.py:2115 +msgid "Export Tools Database" +msgstr "Export DB Unelte" + +#: FlatCAMDB.py:656 FlatCAMDB.py:2118 +msgid "Tools_Database" +msgstr "DB Unelte" + +#: FlatCAMDB.py:693 FlatCAMDB.py:696 FlatCAMDB.py:748 FlatCAMDB.py:2155 +#: FlatCAMDB.py:2158 FlatCAMDB.py:2211 +msgid "Failed to write Tools DB to file." +msgstr "Eroare la scrierea DB Unelte în fișier." + +#: FlatCAMDB.py:699 FlatCAMDB.py:2161 +msgid "Exported Tools DB to" +msgstr "S-a exportat DB Unelte in" + +#: FlatCAMDB.py:706 FlatCAMDB.py:2168 +msgid "Import FlatCAM Tools DB" +msgstr "Importă DB Unelte" + +#: FlatCAMDB.py:752 FlatCAMDB.py:2215 +msgid "Saved Tools DB." +msgstr "DB unelte salvată." + +#: FlatCAMDB.py:899 FlatCAMDB.py:2405 +msgid "No Tool/row selected in the Tools Database table" +msgstr "Nu a fost selectat nici-o Unealta / rând în tabela DB Unelte" + +#: FlatCAMDB.py:917 FlatCAMDB.py:2422 +msgid "Cancelled adding tool from DB." +msgstr "S-a anulat adăugarea de Unealtă din DB Unelte." + +#: FlatCAMDB.py:1018 +msgid "Basic Geo Parameters" +msgstr "Parametrii bază Geometrie" + +#: FlatCAMDB.py:1030 +msgid "Advanced Geo Parameters" +msgstr "Param. Avansați Geometrie" + +#: FlatCAMDB.py:1042 +msgid "NCC Parameters" +msgstr "Parametrii NCC" + +#: FlatCAMDB.py:1054 +msgid "Paint Parameters" +msgstr "Parametrii Paint" + +#: FlatCAMDB.py:1185 flatcamGUI/ObjectUI.py:967 flatcamGUI/ObjectUI.py:1769 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:185 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:148 +#: flatcamTools/ToolSolderPaste.py:253 +msgid "Feedrate X-Y" +msgstr "Feedrate X-Y" + +#: FlatCAMDB.py:1187 +msgid "" +"Feedrate X-Y. Feedrate\n" +"The speed on XY plane used while cutting into material." +msgstr "" +"Avans X-Y. Avans.\n" +"Viteza pe planul XY utilizat la tăierea în material." + +#: FlatCAMDB.py:1199 flatcamGUI/ObjectUI.py:982 flatcamGUI/ObjectUI.py:1783 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:207 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:200 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:161 +#: flatcamTools/ToolSolderPaste.py:265 +msgid "Feedrate Z" +msgstr "Feedrate Z" + +#: FlatCAMDB.py:1201 +msgid "" +"Feedrate Z\n" +"The speed on Z plane." +msgstr "" +"Feedrate Z. Avans Z.\n" +"Viteza de deplasare in planul Z." + +#: FlatCAMDB.py:1399 flatcamGUI/ObjectUI.py:845 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:46 +#: flatcamTools/ToolNCC.py:341 +msgid "Operation" +msgstr "Operațiuni" + +#: FlatCAMDB.py:1401 flatcamTools/ToolNCC.py:343 +msgid "" +"The 'Operation' can be:\n" +"- Isolation -> will ensure that the non-copper clearing is always complete.\n" +"If it's not successful then the non-copper clearing will fail, too.\n" +"- Clear -> the regular non-copper clearing." +msgstr "" +"„Operațiunea” poate fi:\n" +"- Izolare -> se va asigura că curățarea non-cupru este întotdeauna " +"completă.\n" +"Dacă nu are succes, atunci curățarea din cupru nu va reuși.\n" +"- Curățare -> curățarea obișnuită de cupru." + +#: FlatCAMDB.py:1408 flatcamEditors/FlatCAMGrbEditor.py:2742 +#: flatcamGUI/GUIElements.py:2577 flatcamTools/ToolNCC.py:350 +msgid "Clear" +msgstr "Șterge" + +#: FlatCAMDB.py:1409 flatcamTools/ToolNCC.py:351 flatcamTools/ToolNCC.py:1623 +msgid "Isolation" +msgstr "Tip de izolare" + +#: FlatCAMDB.py:1417 flatcamGUI/ObjectUI.py:409 flatcamGUI/ObjectUI.py:867 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:62 +#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:56 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:95 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:137 +#: flatcamTools/ToolNCC.py:359 +msgid "Milling Type" +msgstr "Tip Frezare" + +#: FlatCAMDB.py:1419 FlatCAMDB.py:1427 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:139 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:147 +#: flatcamTools/ToolNCC.py:361 flatcamTools/ToolNCC.py:369 +msgid "" +"Milling type when the selected tool is of type: 'iso_op':\n" +"- climb / best for precision milling and to reduce tool usage\n" +"- conventional / useful when there is no backlash compensation" +msgstr "" +"Tipul de frezare cand unealta selectată este de tipul: 'iso_op':\n" +"- urcare -> potrivit pentru frezare de precizie și pt a reduce uzura " +"uneltei\n" +"- conventional -> pentru cazul când nu exista o compensare a 'backlash-ului'" + +#: FlatCAMDB.py:1424 flatcamGUI/ObjectUI.py:415 +#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:62 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:102 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:144 +#: flatcamTools/ToolNCC.py:366 +msgid "Climb" +msgstr "Urcare" + +#: FlatCAMDB.py:1425 flatcamGUI/ObjectUI.py:416 +#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:63 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:103 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:145 +#: flatcamTools/ToolNCC.py:367 +msgid "Conventional" +msgstr "Convenţional" + +#: FlatCAMDB.py:1437 FlatCAMDB.py:1546 flatcamEditors/FlatCAMGeoEditor.py:451 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:182 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:163 +#: flatcamTools/ToolNCC.py:382 flatcamTools/ToolPaint.py:329 +msgid "Overlap" +msgstr "Rată suprapunere" + +#: FlatCAMDB.py:1439 flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:184 +#: flatcamTools/ToolNCC.py:384 +msgid "" +"How much (percentage) of the tool width to overlap each tool pass.\n" +"Adjust the value starting with lower values\n" +"and increasing it if areas that should be cleared are still \n" +"not cleared.\n" +"Lower values = faster processing, faster execution on CNC.\n" +"Higher values = slow processing and slow execution on CNC\n" +"due of too many paths." +msgstr "" +"Cât de mult (fracţie) din diametrul uneltei să se suprapună la fiecare " +"trecere a uneltei.\n" +"Ajustează valoarea incepând de la valori mici\n" +"și pe urmă crește dacă ariile care ar trebui >curățate< incă\n" +"nu sunt procesate.\n" +"Valori scăzute = procesare rapidă, execuţie rapidă a PCB-ului.\n" +"Valori mari= procesare lentă cât și o execuţie la fel de lentă a PCB-ului,\n" +"datorită numărului mai mare de treceri-tăiere." + +#: FlatCAMDB.py:1458 FlatCAMDB.py:1567 flatcamEditors/FlatCAMGeoEditor.py:471 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:72 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:229 +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:59 +#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:45 +#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:53 +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:115 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:202 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:183 +#: flatcamTools/ToolCopperThieving.py:111 +#: flatcamTools/ToolCopperThieving.py:362 flatcamTools/ToolCutOut.py:190 +#: flatcamTools/ToolFiducials.py:172 flatcamTools/ToolInvertGerber.py:88 +#: flatcamTools/ToolInvertGerber.py:96 flatcamTools/ToolNCC.py:403 +#: flatcamTools/ToolPaint.py:350 +msgid "Margin" +msgstr "Margine" + +#: FlatCAMDB.py:1460 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:74 +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:61 +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:125 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:204 +#: flatcamTools/ToolCopperThieving.py:113 flatcamTools/ToolFiducials.py:174 +#: flatcamTools/ToolFiducials.py:237 flatcamTools/ToolNCC.py:405 +msgid "Bounding box margin." +msgstr "Marginea pentru forma înconjurătoare." + +#: FlatCAMDB.py:1471 FlatCAMDB.py:1582 flatcamEditors/FlatCAMGeoEditor.py:485 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:105 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:106 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:215 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:198 +#: flatcamTools/ToolExtractDrills.py:128 flatcamTools/ToolNCC.py:416 +#: flatcamTools/ToolPaint.py:365 flatcamTools/ToolPunchGerber.py:139 +msgid "Method" +msgstr "Metodă" + +#: FlatCAMDB.py:1473 flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:217 +#: flatcamTools/ToolNCC.py:418 +msgid "" +"Algorithm for copper clearing:\n" +"- Standard: Fixed step inwards.\n" +"- Seed-based: Outwards from seed.\n" +"- Line-based: Parallel lines." +msgstr "" +"Algoritm pentru curătare cupru:\n" +"- Standard: pas fix spre interior.\n" +"- Punct-origine: înspre exterior porning de la punctul sămanță.\n" +"- Linii: linii paralele." + +#: FlatCAMDB.py:1481 FlatCAMDB.py:1596 flatcamEditors/FlatCAMGeoEditor.py:499 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:230 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217 +#: flatcamTools/ToolNCC.py:431 flatcamTools/ToolNCC.py:2395 +#: flatcamTools/ToolNCC.py:2424 flatcamTools/ToolNCC.py:2693 +#: flatcamTools/ToolNCC.py:2725 flatcamTools/ToolPaint.py:390 +#: flatcamTools/ToolPaint.py:1834 tclCommands/TclCommandCopperClear.py:126 +#: tclCommands/TclCommandCopperClear.py:134 tclCommands/TclCommandPaint.py:125 +msgid "Standard" +msgstr "Standard" + +#: FlatCAMDB.py:1481 FlatCAMDB.py:1596 defaults.py:395 defaults.py:427 +#: flatcamEditors/FlatCAMGeoEditor.py:499 +#: flatcamEditors/FlatCAMGeoEditor.py:569 +#: flatcamEditors/FlatCAMGeoEditor.py:5152 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:230 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217 +#: flatcamTools/ToolNCC.py:431 flatcamTools/ToolNCC.py:2401 +#: flatcamTools/ToolNCC.py:2429 flatcamTools/ToolNCC.py:2699 +#: flatcamTools/ToolNCC.py:2731 flatcamTools/ToolPaint.py:390 +#: flatcamTools/ToolPaint.py:1848 tclCommands/TclCommandCopperClear.py:128 +#: tclCommands/TclCommandCopperClear.py:136 tclCommands/TclCommandPaint.py:127 +msgid "Seed" +msgstr "Punct_arbitrar" + +#: FlatCAMDB.py:1481 FlatCAMDB.py:1596 flatcamEditors/FlatCAMGeoEditor.py:499 +#: flatcamEditors/FlatCAMGeoEditor.py:5156 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:230 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217 +#: flatcamTools/ToolNCC.py:431 flatcamTools/ToolPaint.py:390 +#: flatcamTools/ToolPaint.py:699 flatcamTools/ToolPaint.py:1862 +#: tclCommands/TclCommandCopperClear.py:130 tclCommands/TclCommandPaint.py:129 +msgid "Lines" +msgstr "Linii" + +#: FlatCAMDB.py:1489 FlatCAMDB.py:1607 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:237 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:224 +#: flatcamTools/ToolNCC.py:439 flatcamTools/ToolPaint.py:401 +msgid "Connect" +msgstr "Conectează" + +#: FlatCAMDB.py:1493 FlatCAMDB.py:1610 flatcamEditors/FlatCAMGeoEditor.py:508 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:239 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:226 +#: flatcamTools/ToolNCC.py:443 flatcamTools/ToolPaint.py:404 +msgid "" +"Draw lines between resulting\n" +"segments to minimize tool lifts." +msgstr "" +"Desenează linii între segmentele\n" +"rezultate pentru a minimiza miscarile\n" +"de ridicare a uneltei." + +#: FlatCAMDB.py:1499 FlatCAMDB.py:1614 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:246 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:232 +#: flatcamTools/ToolNCC.py:449 flatcamTools/ToolPaint.py:408 +msgid "Contour" +msgstr "Contur" + +#: FlatCAMDB.py:1503 FlatCAMDB.py:1617 flatcamEditors/FlatCAMGeoEditor.py:518 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:248 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:234 +#: flatcamTools/ToolNCC.py:453 flatcamTools/ToolPaint.py:411 +msgid "" +"Cut around the perimeter of the polygon\n" +"to trim rough edges." +msgstr "" +"Taie de-a lungul perimetrului poligonului\n" +"pentru a elimina bavurile." + +#: FlatCAMDB.py:1509 flatcamEditors/FlatCAMGeoEditor.py:612 +#: flatcamEditors/FlatCAMGrbEditor.py:5311 flatcamGUI/ObjectUI.py:143 +#: flatcamGUI/ObjectUI.py:1497 flatcamGUI/ObjectUI.py:2326 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:255 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:142 +#: flatcamTools/ToolNCC.py:459 flatcamTools/ToolTransform.py:28 +msgid "Offset" +msgstr "Ofset" + +#: FlatCAMDB.py:1513 flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:257 +#: flatcamTools/ToolNCC.py:463 +msgid "" +"If used, it will add an offset to the copper features.\n" +"The copper clearing will finish to a distance\n" +"from the copper features.\n" +"The value can be between 0 and 10 FlatCAM units." +msgstr "" +"Dacă este folosit, va adăuga un offset la traseele de cupru.\n" +"Curătarea de cupru se va termina la o anume distanță\n" +"de traseele de cupru.\n" +"Valoarea poate fi cuprinsă între 0 și 10 unități FlatCAM." + +#: FlatCAMDB.py:1548 flatcamEditors/FlatCAMGeoEditor.py:453 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:165 +#: flatcamTools/ToolPaint.py:331 +msgid "" +"How much (percentage) of the tool width to overlap each tool pass.\n" +"Adjust the value starting with lower values\n" +"and increasing it if areas that should be painted are still \n" +"not painted.\n" +"Lower values = faster processing, faster execution on CNC.\n" +"Higher values = slow processing and slow execution on CNC\n" +"due of too many paths." +msgstr "" +"Cat de mult (fracţie) din diametrul uneltei să se suprapună la fiecare " +"trecere a uneltei.\n" +"Ajustează valoarea incepand de la valori mici și pe urma creste dacă ariile " +"care ar trebui\n" +" >pictate< incă nu sunt procesate.\n" +"Valori scăzute = procesare rapidă, execuţie rapidă a PCB-ului.\n" +"Valori mari= procesare lentă cat și o execuţie la fel de lentă a PCB-ului,\n" +"datorită numărului mai mare de treceri-tăiere." + +#: FlatCAMDB.py:1569 flatcamEditors/FlatCAMGeoEditor.py:473 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:185 +#: flatcamTools/ToolPaint.py:352 +msgid "" +"Distance by which to avoid\n" +"the edges of the polygon to\n" +"be painted." +msgstr "" +"Distanta fata de marginile\n" +"poligonului care trebuie\n" +"să fie >pictat<." + +#: FlatCAMDB.py:1584 flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:200 +#: flatcamTools/ToolPaint.py:367 +msgid "" +"Algorithm for painting:\n" +"- Standard: Fixed step inwards.\n" +"- Seed-based: Outwards from seed.\n" +"- Line-based: Parallel lines.\n" +"- Laser-lines: Active only for Gerber objects.\n" +"Will create lines that follow the traces.\n" +"- Combo: In case of failure a new method will be picked from the above\n" +"in the order specified." +msgstr "" +"Algoritm pentru 'pictare':\n" +"- Standard: pasi fixi spre interior\n" +"- Punct_origine: spre exterior plecand de la punctul samantă\n" +"- Linii: linii paralele\n" +"- Linii-laser: Activ numai pentru fisierele Gerber.\n" +"Va crea treceri-unelte care vor urmari traseele.\n" +"- Combinat: In caz de esec, o noua metodă va fi aleasă dintre cele enumerate " +"mai sus\n" +"intr-o ordine specificată." + +#: FlatCAMDB.py:1596 FlatCAMDB.py:1598 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217 +#: flatcamTools/ToolPaint.py:390 flatcamTools/ToolPaint.py:392 +#: flatcamTools/ToolPaint.py:693 flatcamTools/ToolPaint.py:698 +#: flatcamTools/ToolPaint.py:1876 tclCommands/TclCommandPaint.py:131 +msgid "Laser_lines" +msgstr "Linii-laser" + +#: FlatCAMDB.py:1596 flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217 +#: flatcamTools/ToolPaint.py:390 flatcamTools/ToolPaint.py:2027 +#: tclCommands/TclCommandPaint.py:133 +msgid "Combo" +msgstr "Combinat" + +#: FlatCAMDB.py:1641 +msgid "Add Tool in DB" +msgstr "Adăugați Unealta în DB" + +#: FlatCAMDB.py:1675 +msgid "Save DB" +msgstr "Salvează DB" + +#: FlatCAMDB.py:1677 +msgid "Save the Tools Database information's." +msgstr "Salvați informațiile din DB de Unelte." + +#: FlatCAMProcess.py:172 +msgid "processes running." +msgstr "procesele care rulează." + +#: FlatCAMTool.py:245 FlatCAMTool.py:252 flatcamGUI/ObjectUI.py:157 +#: flatcamGUI/ObjectUI.py:164 +msgid "Edited value is out of range" +msgstr "Valoarea editată este in afara limitelor" + +#: FlatCAMTool.py:247 FlatCAMTool.py:254 flatcamGUI/ObjectUI.py:159 +#: flatcamGUI/ObjectUI.py:166 +msgid "Edited value is within limits." +msgstr "Valoarea editată este in limite." + +#: FlatCAMTranslation.py:104 +msgid "The application will restart." +msgstr "Aplicaţia va reporni ..." + +#: FlatCAMTranslation.py:106 +msgid "Are you sure do you want to change the current language to" +msgstr "Esti sigur că dorești să schimbi din limba curentă in" + +#: FlatCAMTranslation.py:107 +msgid "Apply Language ..." +msgstr "Aplică Traducere ..." #: assets/linux/flatcam-beta.desktop:3 msgid "FlatCAM Beta" msgstr "FlatCAM Beta" +#: assets/linux/flatcam-beta.desktop:7 +msgid "./assets/icon.png" +msgstr "./assets/icon.png" + #: assets/linux/flatcam-beta.desktop:8 msgid "G-Code from GERBERS" msgstr "G-Code din GERBERS" @@ -18467,55 +2669,66 @@ msgstr "G-Code din GERBERS" msgid "self.solid_geometry is neither BaseGeometry or list." msgstr "self.solid_geometry nu este tip BaseGeometry sau tip listă." -#: camlib.py:979 +#: camlib.py:970 msgid "Pass" msgstr "Treceri" -#: camlib.py:1001 +#: camlib.py:981 flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:146 +#: flatcamObjects/FlatCAMGerber.py:497 flatcamTools/ToolCopperThieving.py:1016 +#: flatcamTools/ToolCopperThieving.py:1205 +#: flatcamTools/ToolCopperThieving.py:1217 flatcamTools/ToolNCC.py:2050 +#: flatcamTools/ToolNCC.py:2158 flatcamTools/ToolNCC.py:2172 +#: flatcamTools/ToolNCC.py:3103 flatcamTools/ToolNCC.py:3208 +#: flatcamTools/ToolNCC.py:3223 flatcamTools/ToolNCC.py:3489 +#: flatcamTools/ToolNCC.py:3590 flatcamTools/ToolNCC.py:3605 +msgid "Buffering" +msgstr "Buferare" + +#: camlib.py:990 msgid "Get Exteriors" msgstr "Obtine Exterior" -#: camlib.py:1004 +#: camlib.py:993 msgid "Get Interiors" msgstr "Obtine Interioare" -#: camlib.py:2192 +#: camlib.py:2172 msgid "Object was mirrored" msgstr "Obiectul a fost oglindit" -#: camlib.py:2194 +#: camlib.py:2174 msgid "Failed to mirror. No object selected" msgstr "Oglindire eșuată. Nici-un obiect nu este selectat" -#: camlib.py:2259 +#: camlib.py:2239 msgid "Object was rotated" msgstr "Obiectul a fost rotit" -#: camlib.py:2261 +#: camlib.py:2241 msgid "Failed to rotate. No object selected" msgstr "Rotaţie eșuată. Nici-un obiect nu este selectat" -#: camlib.py:2327 +#: camlib.py:2307 msgid "Object was skewed" msgstr "Obiectul a fost deformat" -#: camlib.py:2329 +#: camlib.py:2309 msgid "Failed to skew. No object selected" msgstr "Deformare eșuată. Nici-un obiect nu este selectat" -#: camlib.py:2405 +#: camlib.py:2385 msgid "Object was buffered" msgstr "Obiectul a fost tamponat" -#: camlib.py:2407 +#: camlib.py:2387 msgid "Failed to buffer. No object selected" msgstr "Eroare in a face buffer. Nu a fost selectat niciun obiect" -#: camlib.py:2650 +#: camlib.py:2594 msgid "There is no such parameter" msgstr "Nu exista un asemenea parametru" -#: camlib.py:2718 camlib.py:2970 camlib.py:3233 camlib.py:3489 +#: camlib.py:2654 camlib.py:2887 camlib.py:3116 camlib.py:3338 msgid "" "The Cut Z parameter has positive value. It is the depth value to drill into " "material.\n" @@ -18528,14 +2741,14 @@ msgstr "" "Se presupune că este o eroare de tastare astfel ca aplicaţia va converti " "intr-o valoare negativă. Verifică codul masina (G-Code etc) rezultat." -#: camlib.py:2726 camlib.py:2980 camlib.py:3243 camlib.py:3499 camlib.py:3824 -#: camlib.py:4224 +#: camlib.py:2662 camlib.py:2897 camlib.py:3126 camlib.py:3348 camlib.py:3631 +#: camlib.py:4017 msgid "The Cut Z parameter is zero. There will be no cut, skipping file" msgstr "" "Parametrul >Z tăiere< este nul. Nu va fi nici-o tăiere prin urmare nu " "procesam fişierul" -#: camlib.py:2741 camlib.py:4192 +#: camlib.py:2673 camlib.py:3985 msgid "" "The Toolchange X,Y field in Edit -> Preferences has to be in the format (x, " "y) \n" @@ -18545,7 +2758,7 @@ msgstr "" "in formatul (x, y) \n" "dar are o singură valoare in loc de doua. " -#: camlib.py:2754 camlib.py:3771 camlib.py:4170 +#: camlib.py:2682 camlib.py:3582 camlib.py:3967 msgid "" "The End Move X,Y field in Edit -> Preferences has to be in the format (x, y) " "but now there is only one value, not two." @@ -18553,35 +2766,31 @@ msgstr "" "Parametrul >Schimbare Unealtă X, Y< in Editare -> Peferințe trebuie să fie " "in formatul (x, y) dar are o singură valoare in loc de două." -#: camlib.py:2842 +#: camlib.py:2770 msgid "Creating a list of points to drill..." msgstr "Crearea unei liste de puncte pentru găurire ..." -#: camlib.py:2866 -msgid "Failed. Drill points inside the exclusion zones." -msgstr "A eșuat. Puncte de gaurire în zonele de excludere." - -#: camlib.py:2943 camlib.py:3922 camlib.py:4332 +#: camlib.py:2860 camlib.py:3729 camlib.py:4121 msgid "Starting G-Code" msgstr "Începând G-Code" -#: camlib.py:3084 camlib.py:3337 camlib.py:3535 camlib.py:3935 camlib.py:4343 +#: camlib.py:3001 camlib.py:3220 camlib.py:3384 camlib.py:3742 camlib.py:4132 msgid "Starting G-Code for tool with diameter" msgstr "Pornirea codului G pentru scula cu diametrul" -#: camlib.py:3201 camlib.py:3453 camlib.py:3655 +#: camlib.py:3084 camlib.py:3302 camlib.py:3470 msgid "G91 coordinates not implemented" msgstr "Coordonatele G91 nu au fost implementate" -#: camlib.py:3207 camlib.py:3460 camlib.py:3660 +#: camlib.py:3090 camlib.py:3309 camlib.py:3475 msgid "The loaded Excellon file has no drills" msgstr "Fişierul Excellon incărcat nu are găuri" -#: camlib.py:3683 +#: camlib.py:3498 msgid "Finished G-Code generation..." msgstr "Generarea G-Code finalizata ..." -#: camlib.py:3793 +#: camlib.py:3600 msgid "" "The Toolchange X,Y field in Edit -> Preferences has to be in the format (x, " "y) \n" @@ -18591,7 +2800,7 @@ msgstr "" "in formatul (x, y) \n" "dar are o singură valoare in loc de doua." -#: camlib.py:3807 camlib.py:4207 +#: camlib.py:3614 camlib.py:4000 msgid "" "Cut_Z parameter is None or zero. Most likely a bad combinations of other " "parameters." @@ -18599,7 +2808,7 @@ msgstr "" "Parametrul >Z tăiere< este None sau zero. Cel mai probabil o combinaţie " "nefericita de parametri." -#: camlib.py:3816 camlib.py:4216 +#: camlib.py:3623 camlib.py:4009 msgid "" "The Cut Z parameter has positive value. It is the depth value to cut into " "material.\n" @@ -18612,11 +2821,11 @@ msgstr "" "Se presupune că este o eroare de tastare astfel ca aplicaţia va converti " "intr-o valoare negativă. Verifică codul masina (G-Code etc) rezultat." -#: camlib.py:3829 camlib.py:4230 +#: camlib.py:3636 camlib.py:4023 msgid "Travel Z parameter is None or zero." msgstr "Parametrul >Z deplasare< este None sau zero." -#: camlib.py:3834 camlib.py:4235 +#: camlib.py:3641 camlib.py:4028 msgid "" "The Travel Z parameter has negative value. It is the height value to travel " "between cuts.\n" @@ -18629,36 +2838,36 @@ msgstr "" "Se presupune că este o eroare de tastare astfel ca aplicaţia va converti " "intr-o valoare pozitivă. Verifică codul masina (G-Code etc) rezultat." -#: camlib.py:3842 camlib.py:4243 +#: camlib.py:3649 camlib.py:4036 msgid "The Z Travel parameter is zero. This is dangerous, skipping file" msgstr "" "Parametrul >Z deplasare< este zero. Aceasta este periculos, prin urmare nu " "se procesează fişierul" -#: camlib.py:3861 camlib.py:4266 +#: camlib.py:3668 camlib.py:4059 msgid "Indexing geometry before generating G-Code..." msgstr "Geometria se indexeaza înainte de a genera G-Code..." -#: camlib.py:4009 camlib.py:4420 +#: camlib.py:3812 camlib.py:4201 msgid "Finished G-Code generation" msgstr "Generarea G-Code terminată" -#: camlib.py:4009 +#: camlib.py:3812 msgid "paths traced" msgstr "căi trasate" -#: camlib.py:4059 +#: camlib.py:3862 msgid "Expected a Geometry, got" msgstr "Se astepta o Geometrie, am primit in schimb" -#: camlib.py:4066 +#: camlib.py:3869 msgid "" "Trying to generate a CNC Job from a Geometry object without solid_geometry." msgstr "" "Se încearcă generarea unui CNC Job dintr-un obiect Geometrie fără atributul " "solid_geometry." -#: camlib.py:4107 +#: camlib.py:3910 msgid "" "The Tool Offset value is too negative to use for the current_geometry.\n" "Raise the value (in module) and try again." @@ -18667,42 +2876,15701 @@ msgstr "" "current_geometry \n" "Mareste valoarea absoluta și încearcă din nou." -#: camlib.py:4420 +#: camlib.py:4201 msgid " paths traced." msgstr " căi trasate." -#: camlib.py:4448 +#: camlib.py:4229 msgid "There is no tool data in the SolderPaste geometry." msgstr "Nu există date cu privire la unealtă in Geometria SolderPaste." -#: camlib.py:4537 +#: camlib.py:4318 msgid "Finished SolderPaste G-Code generation" msgstr "Generarea G-Code SolderPaste s-a terminat" -#: camlib.py:4537 +#: camlib.py:4318 msgid "paths traced." msgstr "căi trasate." -#: camlib.py:4872 +#: camlib.py:4578 msgid "Parsing GCode file. Number of lines" msgstr "Analizând fișierul GCode. Numărul de linii" -#: camlib.py:4979 +#: camlib.py:4685 msgid "Creating Geometry from the parsed GCode file. " msgstr "Crează un obiect tip Geometrie din fisierul GCode analizat. " -#: camlib.py:5147 camlib.py:5420 camlib.py:5568 camlib.py:5737 +#: camlib.py:4828 camlib.py:5118 camlib.py:5229 camlib.py:5385 msgid "G91 coordinates not implemented ..." msgstr "Coordonatele G91 nu au fost implementate ..." -#: defaults.py:771 +#: camlib.py:4960 +msgid "Unifying Geometry from parsed Geometry segments" +msgstr "Se unifica Geometria din segmentele de Geometrie parsate" + +#: defaults.py:401 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:86 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309 +#: flatcamTools/ToolCopperThieving.py:125 flatcamTools/ToolNCC.py:535 +#: flatcamTools/ToolNCC.py:1306 flatcamTools/ToolNCC.py:1634 +#: flatcamTools/ToolNCC.py:1919 flatcamTools/ToolNCC.py:1983 +#: flatcamTools/ToolNCC.py:2967 flatcamTools/ToolNCC.py:2976 +#: tclCommands/TclCommandCopperClear.py:190 +msgid "Itself" +msgstr "Însuşi" + +#: defaults.py:428 flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280 +#: flatcamTools/ToolPaint.py:486 flatcamTools/ToolPaint.py:1427 +#: tclCommands/TclCommandPaint.py:162 +msgid "All Polygons" +msgstr "Toate Poligoanele" + +#: defaults.py:739 msgid "Could not load defaults file." msgstr "Nu am putut incărca fişierul cu valori default." -#: defaults.py:784 +#: defaults.py:752 msgid "Failed to parse defaults file." msgstr "Parsarea fişierului cu valori default a eșuat." +#: flatcamEditors/FlatCAMExcEditor.py:50 flatcamEditors/FlatCAMExcEditor.py:74 +#: flatcamEditors/FlatCAMExcEditor.py:168 +#: flatcamEditors/FlatCAMExcEditor.py:385 +#: flatcamEditors/FlatCAMExcEditor.py:589 +#: flatcamEditors/FlatCAMGrbEditor.py:243 +#: flatcamEditors/FlatCAMGrbEditor.py:250 +msgid "Click to place ..." +msgstr "Click pt a plasa ..." + +#: flatcamEditors/FlatCAMExcEditor.py:58 +msgid "To add a drill first select a tool" +msgstr "" +"Pentru a adăuga o operaţie de găurire mai intai selectează un burghiu " +"(unealtă)" + +#: flatcamEditors/FlatCAMExcEditor.py:122 +msgid "Done. Drill added." +msgstr "Executat. Operaţie de găurire adăugată." + +#: flatcamEditors/FlatCAMExcEditor.py:176 +msgid "To add an Drill Array first select a tool in Tool Table" +msgstr "" +"Pentru a adăuga o arie de operațiuni de găurire mai intai selectează un " +"burghiu (unealtă)" + +#: flatcamEditors/FlatCAMExcEditor.py:192 +#: flatcamEditors/FlatCAMExcEditor.py:415 +#: flatcamEditors/FlatCAMExcEditor.py:636 +#: flatcamEditors/FlatCAMExcEditor.py:1151 +#: flatcamEditors/FlatCAMExcEditor.py:1178 +#: flatcamEditors/FlatCAMGrbEditor.py:473 +#: flatcamEditors/FlatCAMGrbEditor.py:1937 +#: flatcamEditors/FlatCAMGrbEditor.py:1967 +msgid "Click on target location ..." +msgstr "Click pe locatia tintă ..." + +#: flatcamEditors/FlatCAMExcEditor.py:211 +msgid "Click on the Drill Circular Array Start position" +msgstr "Click pe punctul de Start al ariei de operațiuni de găurire" + +#: flatcamEditors/FlatCAMExcEditor.py:233 +#: flatcamEditors/FlatCAMExcEditor.py:677 +#: flatcamEditors/FlatCAMGrbEditor.py:518 +msgid "The value is not Float. Check for comma instead of dot separator." +msgstr "" +"Valoarea nu este număr Real. Verifică să nu fi folosit virgula in loc de " +"punct ca și separator decimal." + +#: flatcamEditors/FlatCAMExcEditor.py:237 +msgid "The value is mistyped. Check the value" +msgstr "Valoarea este gresită. Verifică ce ai introdus" + +#: flatcamEditors/FlatCAMExcEditor.py:336 +msgid "Too many drills for the selected spacing angle." +msgstr "Prea multe operațiuni de găurire pentru unghiul selectat." + +#: flatcamEditors/FlatCAMExcEditor.py:354 +msgid "Done. Drill Array added." +msgstr "Executat. Aria de operațiuni de găurire a fost adăugată." + +#: flatcamEditors/FlatCAMExcEditor.py:394 +msgid "To add a slot first select a tool" +msgstr "Pentru a adăuga un slot mai întâi, selectați o unealtă" + +#: flatcamEditors/FlatCAMExcEditor.py:454 +#: flatcamEditors/FlatCAMExcEditor.py:461 +#: flatcamEditors/FlatCAMExcEditor.py:742 +#: flatcamEditors/FlatCAMExcEditor.py:749 +msgid "Value is missing or wrong format. Add it and retry." +msgstr "" +"Valoarea lipsește sau formatul greșit. Adăugați-l și încercați din nou." + +#: flatcamEditors/FlatCAMExcEditor.py:559 +msgid "Done. Adding Slot completed." +msgstr "Terminat. Adăugarea slotului finalizată." + +#: flatcamEditors/FlatCAMExcEditor.py:597 +msgid "To add an Slot Array first select a tool in Tool Table" +msgstr "" +"Pentru a adăuga o arie de sloturi, selectați mai întâi o unealtă din tabelul " +"de unelte" + +#: flatcamEditors/FlatCAMExcEditor.py:655 +msgid "Click on the Slot Circular Array Start position" +msgstr "Faceți clic pe poziția de pornire a ariei circulare de slotuluri" + +#: flatcamEditors/FlatCAMExcEditor.py:680 +#: flatcamEditors/FlatCAMGrbEditor.py:521 +msgid "The value is mistyped. Check the value." +msgstr "Valoarea este gresită. Verifică ce ai introdus." + +#: flatcamEditors/FlatCAMExcEditor.py:859 +msgid "Too many Slots for the selected spacing angle." +msgstr "Prea multe sloturi pentru unghiul de distanțare selectat." + +#: flatcamEditors/FlatCAMExcEditor.py:882 +msgid "Done. Slot Array added." +msgstr "Terminat. S-a adăugat aria de sloturi." + +#: flatcamEditors/FlatCAMExcEditor.py:904 +msgid "Click on the Drill(s) to resize ..." +msgstr "" +"Click pe operațiunile de găurire care se dorește să fie redimensionate ..." + +#: flatcamEditors/FlatCAMExcEditor.py:934 +msgid "Resize drill(s) failed. Please enter a diameter for resize." +msgstr "" +"Redimensionarea operațiunilor de găurire a eșuat. Adaugă o valoare pentru " +"dimetrul la care se face redimensionarea." + +#: flatcamEditors/FlatCAMExcEditor.py:1112 +msgid "Done. Drill/Slot Resize completed." +msgstr "Executat. Redimensionarea Perforării / slotului finalizată." + +#: flatcamEditors/FlatCAMExcEditor.py:1115 +msgid "Cancelled. No drills/slots selected for resize ..." +msgstr "Anulat. Nu au fost selectate găuri / sloturi pentru redimensionare ..." + +#: flatcamEditors/FlatCAMExcEditor.py:1153 +#: flatcamEditors/FlatCAMGrbEditor.py:1939 +msgid "Click on reference location ..." +msgstr "Click pe locatia de referinţă ..." + +#: flatcamEditors/FlatCAMExcEditor.py:1210 +msgid "Done. Drill(s) Move completed." +msgstr "Executat. Operatiile de găurire au fost mutate." + +#: flatcamEditors/FlatCAMExcEditor.py:1318 +msgid "Done. Drill(s) copied." +msgstr "Executat. Operatiile de găurire au fost copiate." + +#: flatcamEditors/FlatCAMExcEditor.py:1557 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:26 +msgid "Excellon Editor" +msgstr "Editor Excellon" + +#: flatcamEditors/FlatCAMExcEditor.py:1564 +#: flatcamEditors/FlatCAMGrbEditor.py:2462 +msgid "Name:" +msgstr "Nume:" + +#: flatcamEditors/FlatCAMExcEditor.py:1570 flatcamGUI/ObjectUI.py:761 +#: flatcamGUI/ObjectUI.py:1465 flatcamTools/ToolNCC.py:120 +#: flatcamTools/ToolPaint.py:115 flatcamTools/ToolSolderPaste.py:74 +msgid "Tools Table" +msgstr "Tabela Unelte" + +#: flatcamEditors/FlatCAMExcEditor.py:1572 flatcamGUI/ObjectUI.py:763 +msgid "" +"Tools in this Excellon object\n" +"when are used for drilling." +msgstr "" +"Burghie (unelte) in acest obiect Excellon\n" +"când se face găurire." + +#: flatcamEditors/FlatCAMExcEditor.py:1584 +#: flatcamEditors/FlatCAMExcEditor.py:3066 flatcamGUI/ObjectUI.py:781 +#: flatcamObjects/FlatCAMExcellon.py:1098 +#: flatcamObjects/FlatCAMExcellon.py:1188 +#: flatcamObjects/FlatCAMExcellon.py:1373 flatcamTools/ToolNCC.py:132 +#: flatcamTools/ToolPaint.py:128 flatcamTools/ToolPcbWizard.py:76 +#: flatcamTools/ToolProperties.py:416 flatcamTools/ToolProperties.py:476 +#: flatcamTools/ToolSolderPaste.py:85 tclCommands/TclCommandDrillcncjob.py:193 +msgid "Diameter" +msgstr "Diametru" + +#: flatcamEditors/FlatCAMExcEditor.py:1592 +msgid "Add/Delete Tool" +msgstr "Adaugă/Șterge Unealta" + +#: flatcamEditors/FlatCAMExcEditor.py:1594 +msgid "" +"Add/Delete a tool to the tool list\n" +"for this Excellon object." +msgstr "" +"Adaugă/Șterge o unealtă la lista de unelte\n" +"pentru acest obiect Excellon." + +#: flatcamEditors/FlatCAMExcEditor.py:1606 flatcamGUI/ObjectUI.py:1585 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:57 +msgid "Diameter for the new tool" +msgstr "Diametru pentru noua unealtă (burghiu, freza)" + +#: flatcamEditors/FlatCAMExcEditor.py:1616 +msgid "Add Tool" +msgstr "Adaugă Unealta" + +#: flatcamEditors/FlatCAMExcEditor.py:1618 +msgid "" +"Add a new tool to the tool list\n" +"with the diameter specified above." +msgstr "" +"Adaugă o unealtă noua la lista de unelte\n" +"cu diametrul specificat deasupra." + +#: flatcamEditors/FlatCAMExcEditor.py:1630 +msgid "Delete Tool" +msgstr "Șterge Unealta" + +#: flatcamEditors/FlatCAMExcEditor.py:1632 +msgid "" +"Delete a tool in the tool list\n" +"by selecting a row in the tool table." +msgstr "" +"Șterge o unealtă in lista de unelte\n" +"prin selectarea unei linii in tabela de unelte." + +#: flatcamEditors/FlatCAMExcEditor.py:1650 flatcamGUI/FlatCAMGUI.py:2019 +msgid "Resize Drill(s)" +msgstr "Redimensionare operațiuni de găurire" + +#: flatcamEditors/FlatCAMExcEditor.py:1652 +msgid "Resize a drill or a selection of drills." +msgstr "" +"Redimensionează o operaţie de găurire sau o selecţie de operațiuni de " +"găurire." + +#: flatcamEditors/FlatCAMExcEditor.py:1659 +msgid "Resize Dia" +msgstr "Redimens. Dia" + +#: flatcamEditors/FlatCAMExcEditor.py:1661 +msgid "Diameter to resize to." +msgstr "Diametrul la care se face redimensionarea." + +#: flatcamEditors/FlatCAMExcEditor.py:1672 +msgid "Resize" +msgstr "Redimensionează" + +#: flatcamEditors/FlatCAMExcEditor.py:1674 +msgid "Resize drill(s)" +msgstr "Redimensionează op. de găurire." + +#: flatcamEditors/FlatCAMExcEditor.py:1699 flatcamGUI/FlatCAMGUI.py:2018 +#: flatcamGUI/FlatCAMGUI.py:2270 +msgid "Add Drill Array" +msgstr "Adaugă o arie de op. găurire" + +#: flatcamEditors/FlatCAMExcEditor.py:1701 +msgid "Add an array of drills (linear or circular array)" +msgstr "Adaugă o arie de operațiuni de găurire (arie lineara sau circulara)." + +#: flatcamEditors/FlatCAMExcEditor.py:1707 +msgid "" +"Select the type of drills array to create.\n" +"It can be Linear X(Y) or Circular" +msgstr "" +"Selectează tipul de arii de operațiuni de găurire.\n" +"Poate fi Liniar X(Y) sau Circular" + +#: flatcamEditors/FlatCAMExcEditor.py:1710 +#: flatcamEditors/FlatCAMExcEditor.py:1924 +#: flatcamEditors/FlatCAMGrbEditor.py:2775 +msgid "Linear" +msgstr "Liniar" + +#: flatcamEditors/FlatCAMExcEditor.py:1711 +#: flatcamEditors/FlatCAMExcEditor.py:1925 +#: flatcamEditors/FlatCAMGrbEditor.py:2776 flatcamGUI/ObjectUI.py:316 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:52 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:149 +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:107 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:52 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:151 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:61 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:70 +#: flatcamTools/ToolExtractDrills.py:78 flatcamTools/ToolExtractDrills.py:201 +#: flatcamTools/ToolFiducials.py:220 flatcamTools/ToolNCC.py:221 +#: flatcamTools/ToolPaint.py:204 flatcamTools/ToolPunchGerber.py:89 +#: flatcamTools/ToolPunchGerber.py:229 +msgid "Circular" +msgstr "Circular" + +#: flatcamEditors/FlatCAMExcEditor.py:1719 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:68 +msgid "Nr of drills" +msgstr "Nr. op. găurire" + +#: flatcamEditors/FlatCAMExcEditor.py:1720 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:70 +msgid "Specify how many drills to be in the array." +msgstr "Specifica cate operațiuni de găurire să fie incluse in arie." + +#: flatcamEditors/FlatCAMExcEditor.py:1738 +#: flatcamEditors/FlatCAMExcEditor.py:1788 +#: flatcamEditors/FlatCAMExcEditor.py:1860 +#: flatcamEditors/FlatCAMExcEditor.py:1953 +#: flatcamEditors/FlatCAMExcEditor.py:2004 +#: flatcamEditors/FlatCAMGrbEditor.py:1573 +#: flatcamEditors/FlatCAMGrbEditor.py:2804 +#: flatcamEditors/FlatCAMGrbEditor.py:2853 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:178 +msgid "Direction" +msgstr "Direcţie" + +#: flatcamEditors/FlatCAMExcEditor.py:1740 +#: flatcamEditors/FlatCAMExcEditor.py:1955 +#: flatcamEditors/FlatCAMGrbEditor.py:2806 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:86 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:234 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:122 +msgid "" +"Direction on which the linear array is oriented:\n" +"- 'X' - horizontal axis \n" +"- 'Y' - vertical axis or \n" +"- 'Angle' - a custom angle for the array inclination" +msgstr "" +"Directia in care aria lineara este orientata:\n" +"- 'X' - pe axa orizontala \n" +"- 'Y' - pe axa verticala sau \n" +"- 'Unghi' - un unghi particular pentru inclinatia ariei" + +#: flatcamEditors/FlatCAMExcEditor.py:1747 +#: flatcamEditors/FlatCAMExcEditor.py:1869 +#: flatcamEditors/FlatCAMExcEditor.py:1962 +#: flatcamEditors/FlatCAMGrbEditor.py:2813 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:92 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:187 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:240 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:128 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:208 +#: flatcamTools/ToolFilm.py:256 +msgid "X" +msgstr "X" + +#: flatcamEditors/FlatCAMExcEditor.py:1748 +#: flatcamEditors/FlatCAMExcEditor.py:1870 +#: flatcamEditors/FlatCAMExcEditor.py:1963 +#: flatcamEditors/FlatCAMGrbEditor.py:2814 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:93 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:188 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:241 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:129 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:209 +#: flatcamTools/ToolFilm.py:257 +msgid "Y" +msgstr "Y" + +#: flatcamEditors/FlatCAMExcEditor.py:1749 +#: flatcamEditors/FlatCAMExcEditor.py:1766 +#: flatcamEditors/FlatCAMExcEditor.py:1800 +#: flatcamEditors/FlatCAMExcEditor.py:1871 +#: flatcamEditors/FlatCAMExcEditor.py:1875 +#: flatcamEditors/FlatCAMExcEditor.py:1964 +#: flatcamEditors/FlatCAMExcEditor.py:1982 +#: flatcamEditors/FlatCAMExcEditor.py:2016 +#: flatcamEditors/FlatCAMGrbEditor.py:2815 +#: flatcamEditors/FlatCAMGrbEditor.py:2832 +#: flatcamEditors/FlatCAMGrbEditor.py:2868 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:94 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:113 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:189 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:194 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:242 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:263 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:130 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:148 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:53 +#: flatcamTools/ToolDistance.py:120 flatcamTools/ToolDistanceMin.py:69 +#: flatcamTools/ToolTransform.py:60 +msgid "Angle" +msgstr "Unghi" + +#: flatcamEditors/FlatCAMExcEditor.py:1753 +#: flatcamEditors/FlatCAMExcEditor.py:1968 +#: flatcamEditors/FlatCAMGrbEditor.py:2819 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:100 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:248 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:136 +msgid "Pitch" +msgstr "Pas" + +#: flatcamEditors/FlatCAMExcEditor.py:1755 +#: flatcamEditors/FlatCAMExcEditor.py:1970 +#: flatcamEditors/FlatCAMGrbEditor.py:2821 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:102 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:250 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:138 +msgid "Pitch = Distance between elements of the array." +msgstr "Pas = Distanta între elementele ariei." + +#: flatcamEditors/FlatCAMExcEditor.py:1768 +#: flatcamEditors/FlatCAMExcEditor.py:1984 +msgid "" +"Angle at which the linear array is placed.\n" +"The precision is of max 2 decimals.\n" +"Min value is: -360 degrees.\n" +"Max value is: 360.00 degrees." +msgstr "" +"Unghiul global la care aria lineara este plasata.\n" +"Precizia este de max 2 zecimale.\n" +"Val minima este: -360grade.\n" +"Val maxima este: 360.00 grade." + +#: flatcamEditors/FlatCAMExcEditor.py:1789 +#: flatcamEditors/FlatCAMExcEditor.py:2005 +#: flatcamEditors/FlatCAMGrbEditor.py:2855 +msgid "" +"Direction for circular array.Can be CW = clockwise or CCW = counter " +"clockwise." +msgstr "" +"Directia pentru aria circulară. Poate fi CW = in sensul acelor de ceasornic " +"sau CCW = invers acelor de ceasornic." + +#: flatcamEditors/FlatCAMExcEditor.py:1796 +#: flatcamEditors/FlatCAMExcEditor.py:2012 +#: flatcamEditors/FlatCAMGrbEditor.py:2863 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:129 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:136 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:286 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:142 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:170 +msgid "CW" +msgstr "Orar" + +#: flatcamEditors/FlatCAMExcEditor.py:1797 +#: flatcamEditors/FlatCAMExcEditor.py:2013 +#: flatcamEditors/FlatCAMGrbEditor.py:2864 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:130 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:137 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:287 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:143 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:171 +msgid "CCW" +msgstr "Antiorar" + +#: flatcamEditors/FlatCAMExcEditor.py:1801 +#: flatcamEditors/FlatCAMExcEditor.py:2017 +#: flatcamEditors/FlatCAMGrbEditor.py:2870 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:115 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:145 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:265 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:295 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:150 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:179 +msgid "Angle at which each element in circular array is placed." +msgstr "" +"Unghiul la care fiecare element al ariei circulare este plasat fata de " +"originea ariei." + +#: flatcamEditors/FlatCAMExcEditor.py:1835 +msgid "Slot Parameters" +msgstr "Parametrii pt slot" + +#: flatcamEditors/FlatCAMExcEditor.py:1837 +msgid "" +"Parameters for adding a slot (hole with oval shape)\n" +"either single or as an part of an array." +msgstr "" +"Parametri pentru adăugarea unui slot (gaură cu formă ovală)\n" +"fie single sau ca parte a unei arii." + +#: flatcamEditors/FlatCAMExcEditor.py:1846 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:162 +#: flatcamTools/ToolProperties.py:559 +msgid "Length" +msgstr "Lungime" + +#: flatcamEditors/FlatCAMExcEditor.py:1848 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:164 +msgid "Length = The length of the slot." +msgstr "Lungime = Lungimea slotului." + +#: flatcamEditors/FlatCAMExcEditor.py:1862 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:180 +msgid "" +"Direction on which the slot is oriented:\n" +"- 'X' - horizontal axis \n" +"- 'Y' - vertical axis or \n" +"- 'Angle' - a custom angle for the slot inclination" +msgstr "" +"Direcția spre care este orientat slotul:\n" +"- „X” - axa orizontală\n" +"- „Y” - axa verticală sau\n" +"- „Unghi” - un unghi personalizat pentru înclinarea slotului" + +#: flatcamEditors/FlatCAMExcEditor.py:1877 +msgid "" +"Angle at which the slot is placed.\n" +"The precision is of max 2 decimals.\n" +"Min value is: -360 degrees.\n" +"Max value is: 360.00 degrees." +msgstr "" +"Unghiul la care este plasat slotul.\n" +"Precizia este de maxim 2 zecimale.\n" +"Valoarea minimă este: -360 grade.\n" +"Valoarea maximă este: 360.00 grade." + +#: flatcamEditors/FlatCAMExcEditor.py:1910 +msgid "Slot Array Parameters" +msgstr "Parametri Arie sloturi" + +#: flatcamEditors/FlatCAMExcEditor.py:1912 +msgid "Parameters for the array of slots (linear or circular array)" +msgstr "Parametri pentru Aria de sloturi (arie circulară sau liniară)" + +#: flatcamEditors/FlatCAMExcEditor.py:1921 +msgid "" +"Select the type of slot array to create.\n" +"It can be Linear X(Y) or Circular" +msgstr "" +"Selectați tipul de slot pentru creare.\n" +"Poate fi liniar X (Y) sau circular" + +#: flatcamEditors/FlatCAMExcEditor.py:1933 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:219 +msgid "Nr of slots" +msgstr "Nr de sloturi" + +#: flatcamEditors/FlatCAMExcEditor.py:1934 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:221 +msgid "Specify how many slots to be in the array." +msgstr "Specificați câte sloturi trebuie să fie în arie." + +#: flatcamEditors/FlatCAMExcEditor.py:2452 +#: flatcamObjects/FlatCAMExcellon.py:410 +msgid "Total Drills" +msgstr "Nr. Tot. Op. Găurire" + +#: flatcamEditors/FlatCAMExcEditor.py:2484 +#: flatcamObjects/FlatCAMExcellon.py:441 +msgid "Total Slots" +msgstr "Nr. Tot. Sloturi" + +#: flatcamEditors/FlatCAMExcEditor.py:2559 +#: flatcamEditors/FlatCAMGeoEditor.py:1076 +#: flatcamEditors/FlatCAMGeoEditor.py:1117 +#: flatcamEditors/FlatCAMGeoEditor.py:1145 +#: flatcamEditors/FlatCAMGeoEditor.py:1173 +#: flatcamEditors/FlatCAMGeoEditor.py:1217 +#: flatcamEditors/FlatCAMGeoEditor.py:1252 +#: flatcamEditors/FlatCAMGeoEditor.py:1280 +#: flatcamObjects/FlatCAMGeometry.py:599 flatcamObjects/FlatCAMGeometry.py:1033 +#: flatcamObjects/FlatCAMGeometry.py:1780 +#: flatcamObjects/FlatCAMGeometry.py:2424 flatcamTools/ToolNCC.py:1498 +#: flatcamTools/ToolPaint.py:1249 flatcamTools/ToolPaint.py:1420 +#: flatcamTools/ToolSolderPaste.py:883 flatcamTools/ToolSolderPaste.py:956 +msgid "Wrong value format entered, use a number." +msgstr "Valoare in format incorect, foloseşte un număr." + +#: flatcamEditors/FlatCAMExcEditor.py:2570 +msgid "" +"Tool already in the original or actual tool list.\n" +"Save and reedit Excellon if you need to add this tool. " +msgstr "" +"Unealta este deja in lista originală sau actuală de unelte.\n" +"Salvează și reeditează obiectul Excellon dacă ai nevoie să adaugi această " +"unealtă. " + +#: flatcamEditors/FlatCAMExcEditor.py:2579 flatcamGUI/FlatCAMGUI.py:4071 +msgid "Added new tool with dia" +msgstr "O nouă unealtă este adăugată cu diametrul" + +#: flatcamEditors/FlatCAMExcEditor.py:2612 +msgid "Select a tool in Tool Table" +msgstr "Selectează o unealtă in Tabela de Unelte" + +#: flatcamEditors/FlatCAMExcEditor.py:2642 +msgid "Deleted tool with diameter" +msgstr "Unealtă ștearsă cu diametrul" + +#: flatcamEditors/FlatCAMExcEditor.py:2790 +msgid "Done. Tool edit completed." +msgstr "Terminat. Editarea uneltei a fost finalizată." + +#: flatcamEditors/FlatCAMExcEditor.py:3352 +msgid "There are no Tools definitions in the file. Aborting Excellon creation." +msgstr "" +"Nu exista definitii de unelte in fişier. Se anulează crearea de obiect " +"Excellon." + +#: flatcamEditors/FlatCAMExcEditor.py:3356 +msgid "An internal error has ocurred. See Shell.\n" +msgstr "" +"A apărut o eroare internă. Verifică in TCL Shell pt mai multe detalii.\n" + +#: flatcamEditors/FlatCAMExcEditor.py:3361 +msgid "Creating Excellon." +msgstr "In curs de creere Excellon." + +#: flatcamEditors/FlatCAMExcEditor.py:3373 +msgid "Excellon editing finished." +msgstr "Editarea Excellon a fost terminată." + +#: flatcamEditors/FlatCAMExcEditor.py:3390 +msgid "Cancelled. There is no Tool/Drill selected" +msgstr "Anulat. Nu este selectată nici-o unealtă sau op. de găurire" + +#: flatcamEditors/FlatCAMExcEditor.py:4003 +msgid "Done. Drill(s) deleted." +msgstr "Executat. Operatiile de găurire șterse." + +#: flatcamEditors/FlatCAMExcEditor.py:4076 +#: flatcamEditors/FlatCAMExcEditor.py:4086 +#: flatcamEditors/FlatCAMGrbEditor.py:5063 +msgid "Click on the circular array Center position" +msgstr "Click pe punctul de Centru al ariei circulare" + +#: flatcamEditors/FlatCAMGeoEditor.py:85 +msgid "Buffer distance:" +msgstr "Distanta pt bufer:" + +#: flatcamEditors/FlatCAMGeoEditor.py:86 +msgid "Buffer corner:" +msgstr "Coltul pt bufer:" + +#: flatcamEditors/FlatCAMGeoEditor.py:88 +msgid "" +"There are 3 types of corners:\n" +" - 'Round': the corner is rounded for exterior buffer.\n" +" - 'Square': the corner is met in a sharp angle for exterior buffer.\n" +" - 'Beveled': the corner is a line that directly connects the features " +"meeting in the corner" +msgstr "" +"Sunt disponibile 3 tipuri de colțuri:\n" +"- 'Rotund': coltul este rotunjit in cazul buferului exterior.\n" +"- 'Patrat:' colțurile formează unghi de 90 grade pt buferul exterior\n" +"- 'Beveled:' coltul este inlocuit cu o linie care uneste capetele liniilor " +"care formează coltul" + +#: flatcamEditors/FlatCAMGeoEditor.py:94 +#: flatcamEditors/FlatCAMGrbEditor.py:2631 +msgid "Round" +msgstr "Rotund" + +#: flatcamEditors/FlatCAMGeoEditor.py:95 +#: flatcamEditors/FlatCAMGrbEditor.py:2632 flatcamGUI/ObjectUI.py:2073 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:217 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:68 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:175 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:68 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:177 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:143 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:327 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:291 +#: flatcamTools/ToolExtractDrills.py:94 flatcamTools/ToolExtractDrills.py:227 +#: flatcamTools/ToolNCC.py:583 flatcamTools/ToolPaint.py:527 +#: flatcamTools/ToolPunchGerber.py:105 flatcamTools/ToolPunchGerber.py:255 +#: flatcamTools/ToolQRCode.py:198 +msgid "Square" +msgstr "Patrat" + +#: flatcamEditors/FlatCAMGeoEditor.py:96 +#: flatcamEditors/FlatCAMGrbEditor.py:2633 +msgid "Beveled" +msgstr "Beveled" + +#: flatcamEditors/FlatCAMGeoEditor.py:103 +msgid "Buffer Interior" +msgstr "Bufer interior" + +#: flatcamEditors/FlatCAMGeoEditor.py:105 +msgid "Buffer Exterior" +msgstr "Bufer Exterior" + +#: flatcamEditors/FlatCAMGeoEditor.py:111 +msgid "Full Buffer" +msgstr "Bufer complet" + +#: flatcamEditors/FlatCAMGeoEditor.py:132 +#: flatcamEditors/FlatCAMGeoEditor.py:3017 flatcamGUI/FlatCAMGUI.py:1928 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:190 +msgid "Buffer Tool" +msgstr "Unealta Bufer" + +#: flatcamEditors/FlatCAMGeoEditor.py:144 +#: flatcamEditors/FlatCAMGeoEditor.py:161 +#: flatcamEditors/FlatCAMGeoEditor.py:178 +#: flatcamEditors/FlatCAMGeoEditor.py:3036 +#: flatcamEditors/FlatCAMGeoEditor.py:3064 +#: flatcamEditors/FlatCAMGeoEditor.py:3092 +#: flatcamEditors/FlatCAMGrbEditor.py:5116 +msgid "Buffer distance value is missing or wrong format. Add it and retry." +msgstr "" +"Valoarea distantei bufer lipseste sau este intr-un format gresit. Adaugă din " +"nou și reîncearcă." + +#: flatcamEditors/FlatCAMGeoEditor.py:242 +msgid "Font" +msgstr "Font" + +#: flatcamEditors/FlatCAMGeoEditor.py:323 flatcamGUI/FlatCAMGUI.py:2208 +msgid "Text" +msgstr "Text" + +#: flatcamEditors/FlatCAMGeoEditor.py:349 +msgid "Text Tool" +msgstr "Unealta Text" + +#: flatcamEditors/FlatCAMGeoEditor.py:405 flatcamGUI/FlatCAMGUI.py:511 +#: flatcamGUI/FlatCAMGUI.py:1158 flatcamGUI/ObjectUI.py:818 +#: flatcamGUI/ObjectUI.py:1662 flatcamObjects/FlatCAMExcellon.py:742 +#: flatcamObjects/FlatCAMExcellon.py:1084 flatcamObjects/FlatCAMGeometry.py:759 +#: flatcamTools/ToolNCC.py:331 flatcamTools/ToolNCC.py:797 +#: flatcamTools/ToolPaint.py:314 flatcamTools/ToolPaint.py:767 +msgid "Tool" +msgstr "Unealta" + +#: flatcamEditors/FlatCAMGeoEditor.py:439 flatcamGUI/ObjectUI.py:364 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:43 +msgid "Tool dia" +msgstr "Dia unealtă" + +#: flatcamEditors/FlatCAMGeoEditor.py:441 +msgid "Diameter of the tool to be used in the operation." +msgstr "Diametrul uneltei care este utilizata in operaţie." + +#: flatcamEditors/FlatCAMGeoEditor.py:487 +msgid "" +"Algorithm to paint the polygons:\n" +"- Standard: Fixed step inwards.\n" +"- Seed-based: Outwards from seed.\n" +"- Line-based: Parallel lines." +msgstr "" +"Algoritm pentru picture poligoane:\n" +"- Standard: pas fix spre interior.\n" +"- Semințe: înspre exterior porning de la punctul sămanță.\n" +"- Linii: linii paralele." + +#: flatcamEditors/FlatCAMGeoEditor.py:506 +msgid "Connect:" +msgstr "Conectează:" + +#: flatcamEditors/FlatCAMGeoEditor.py:516 +msgid "Contour:" +msgstr "Contur:" + +#: flatcamEditors/FlatCAMGeoEditor.py:529 flatcamGUI/FlatCAMGUI.py:2212 +msgid "Paint" +msgstr "Pictează" + +#: flatcamEditors/FlatCAMGeoEditor.py:547 flatcamGUI/FlatCAMGUI.py:924 +#: flatcamGUI/FlatCAMGUI.py:2628 flatcamGUI/ObjectUI.py:2139 +#: flatcamTools/ToolPaint.py:43 flatcamTools/ToolPaint.py:738 +msgid "Paint Tool" +msgstr "Unealta Paint" + +#: flatcamEditors/FlatCAMGeoEditor.py:583 +#: flatcamEditors/FlatCAMGeoEditor.py:1055 +#: flatcamEditors/FlatCAMGeoEditor.py:3024 +#: flatcamEditors/FlatCAMGeoEditor.py:3052 +#: flatcamEditors/FlatCAMGeoEditor.py:3080 +#: flatcamEditors/FlatCAMGeoEditor.py:4502 +#: flatcamEditors/FlatCAMGrbEditor.py:5767 +msgid "Cancelled. No shape selected." +msgstr "Anulat. Nici-o forma geometrică nu este selectată." + +#: flatcamEditors/FlatCAMGeoEditor.py:596 +#: flatcamEditors/FlatCAMGeoEditor.py:3042 +#: flatcamEditors/FlatCAMGeoEditor.py:3070 +#: flatcamEditors/FlatCAMGeoEditor.py:3098 +#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:59 +#: flatcamTools/ToolProperties.py:117 flatcamTools/ToolProperties.py:162 +msgid "Tools" +msgstr "Unelte" + +#: flatcamEditors/FlatCAMGeoEditor.py:607 +#: flatcamEditors/FlatCAMGeoEditor.py:991 +#: flatcamEditors/FlatCAMGrbEditor.py:5306 +#: flatcamEditors/FlatCAMGrbEditor.py:5703 flatcamGUI/FlatCAMGUI.py:945 +#: flatcamGUI/FlatCAMGUI.py:2649 flatcamTools/ToolTransform.py:460 +msgid "Transform Tool" +msgstr "Unealta Transformare" + +#: flatcamEditors/FlatCAMGeoEditor.py:608 +#: flatcamEditors/FlatCAMGeoEditor.py:673 +#: flatcamEditors/FlatCAMGrbEditor.py:5307 +#: flatcamEditors/FlatCAMGrbEditor.py:5372 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:45 +#: flatcamTools/ToolTransform.py:24 flatcamTools/ToolTransform.py:466 +msgid "Rotate" +msgstr "Rotaţie" + +#: flatcamEditors/FlatCAMGeoEditor.py:609 +#: flatcamEditors/FlatCAMGrbEditor.py:5308 flatcamTools/ToolTransform.py:25 +msgid "Skew/Shear" +msgstr "Deformare" + +#: flatcamEditors/FlatCAMGeoEditor.py:610 +#: flatcamEditors/FlatCAMGrbEditor.py:2680 +#: flatcamEditors/FlatCAMGrbEditor.py:5309 flatcamGUI/FlatCAMGUI.py:1063 +#: flatcamGUI/FlatCAMGUI.py:2140 flatcamGUI/FlatCAMGUI.py:2255 +#: flatcamGUI/FlatCAMGUI.py:2767 flatcamGUI/ObjectUI.py:125 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:95 +#: flatcamTools/ToolTransform.py:26 +msgid "Scale" +msgstr "Scalare" + +#: flatcamEditors/FlatCAMGeoEditor.py:611 +#: flatcamEditors/FlatCAMGrbEditor.py:5310 flatcamTools/ToolTransform.py:27 +msgid "Mirror (Flip)" +msgstr "Oglindire" + +#: flatcamEditors/FlatCAMGeoEditor.py:625 +#: flatcamEditors/FlatCAMGrbEditor.py:5324 flatcamGUI/FlatCAMGUI.py:856 +#: flatcamGUI/FlatCAMGUI.py:2564 +msgid "Editor" +msgstr "Editor" + +#: flatcamEditors/FlatCAMGeoEditor.py:657 +#: flatcamEditors/FlatCAMGrbEditor.py:5356 +msgid "Angle:" +msgstr "Unghi:" + +#: flatcamEditors/FlatCAMGeoEditor.py:659 +#: flatcamEditors/FlatCAMGrbEditor.py:5358 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:55 +#: flatcamTools/ToolTransform.py:62 +msgid "" +"Angle for Rotation action, in degrees.\n" +"Float number between -360 and 359.\n" +"Positive numbers for CW motion.\n" +"Negative numbers for CCW motion." +msgstr "" +"Unghiul pentru Rotaţie, in grade. Număr Real cu valori între -360 și 359.\n" +"Numerele pozitive inseamna o mișcare in sens ace ceasornic.\n" +"Numerele negative inseamna o mișcare in sens invers ace ceasornic." + +#: flatcamEditors/FlatCAMGeoEditor.py:675 +#: flatcamEditors/FlatCAMGrbEditor.py:5374 +msgid "" +"Rotate the selected shape(s).\n" +"The point of reference is the middle of\n" +"the bounding box for all selected shapes." +msgstr "" +"Roteste formele selectate.\n" +"Punctul de referinţă este mijlocul\n" +"formei înconjurătoare care cuprinde\n" +"toate formele selectate." + +#: flatcamEditors/FlatCAMGeoEditor.py:698 +#: flatcamEditors/FlatCAMGrbEditor.py:5397 +msgid "Angle X:" +msgstr "Unghi X:" + +#: flatcamEditors/FlatCAMGeoEditor.py:700 +#: flatcamEditors/FlatCAMGeoEditor.py:720 +#: flatcamEditors/FlatCAMGrbEditor.py:5399 +#: flatcamEditors/FlatCAMGrbEditor.py:5419 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:74 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:88 +#: flatcamTools/ToolCalibration.py:505 flatcamTools/ToolCalibration.py:518 +msgid "" +"Angle for Skew action, in degrees.\n" +"Float number between -360 and 359." +msgstr "" +"Valoarea unghiului de Deformare, in grade.\n" +"Ia valori Reale între -360 and 359 grade." + +#: flatcamEditors/FlatCAMGeoEditor.py:711 +#: flatcamEditors/FlatCAMGrbEditor.py:5410 flatcamTools/ToolTransform.py:467 +msgid "Skew X" +msgstr "Deformare X" + +#: flatcamEditors/FlatCAMGeoEditor.py:713 +#: flatcamEditors/FlatCAMGeoEditor.py:733 +#: flatcamEditors/FlatCAMGrbEditor.py:5412 +#: flatcamEditors/FlatCAMGrbEditor.py:5432 +msgid "" +"Skew/shear the selected shape(s).\n" +"The point of reference is the middle of\n" +"the bounding box for all selected shapes." +msgstr "" +"Deformează formele selectate.\n" +"Punctul de referinţă este mijlocul\n" +"formei înconjurătoare care cuprinde\n" +"toate formele selectate." + +#: flatcamEditors/FlatCAMGeoEditor.py:718 +#: flatcamEditors/FlatCAMGrbEditor.py:5417 +msgid "Angle Y:" +msgstr "Unghi Y:" + +#: flatcamEditors/FlatCAMGeoEditor.py:731 +#: flatcamEditors/FlatCAMGrbEditor.py:5430 flatcamTools/ToolTransform.py:468 +msgid "Skew Y" +msgstr "Deformare Y" + +#: flatcamEditors/FlatCAMGeoEditor.py:759 +#: flatcamEditors/FlatCAMGrbEditor.py:5458 +msgid "Factor X:" +msgstr "Factor X:" + +#: flatcamEditors/FlatCAMGeoEditor.py:761 +#: flatcamEditors/FlatCAMGrbEditor.py:5460 flatcamTools/ToolCalibration.py:469 +msgid "Factor for Scale action over X axis." +msgstr "Factor pentru scalarea pe axa X." + +#: flatcamEditors/FlatCAMGeoEditor.py:771 +#: flatcamEditors/FlatCAMGrbEditor.py:5470 flatcamTools/ToolTransform.py:469 +msgid "Scale X" +msgstr "Scalează X" + +#: flatcamEditors/FlatCAMGeoEditor.py:773 +#: flatcamEditors/FlatCAMGeoEditor.py:792 +#: flatcamEditors/FlatCAMGrbEditor.py:5472 +#: flatcamEditors/FlatCAMGrbEditor.py:5491 +msgid "" +"Scale the selected shape(s).\n" +"The point of reference depends on \n" +"the Scale reference checkbox state." +msgstr "" +"Scalează formele selectate.\n" +"Punctul de referinţă depinde de \n" +"starea checkbox-ului >Referința scalare<." + +#: flatcamEditors/FlatCAMGeoEditor.py:778 +#: flatcamEditors/FlatCAMGrbEditor.py:5477 +msgid "Factor Y:" +msgstr "Factor Y:" + +#: flatcamEditors/FlatCAMGeoEditor.py:780 +#: flatcamEditors/FlatCAMGrbEditor.py:5479 flatcamTools/ToolCalibration.py:481 +msgid "Factor for Scale action over Y axis." +msgstr "Factor pentru scalarea pe axa Y." + +#: flatcamEditors/FlatCAMGeoEditor.py:790 +#: flatcamEditors/FlatCAMGrbEditor.py:5489 flatcamTools/ToolTransform.py:470 +msgid "Scale Y" +msgstr "Scalează Y" + +#: flatcamEditors/FlatCAMGeoEditor.py:799 +#: flatcamEditors/FlatCAMGrbEditor.py:5498 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:124 +#: flatcamTools/ToolTransform.py:189 +msgid "Link" +msgstr "Legatura" + +#: flatcamEditors/FlatCAMGeoEditor.py:801 +#: flatcamEditors/FlatCAMGrbEditor.py:5500 +msgid "" +"Scale the selected shape(s)\n" +"using the Scale Factor X for both axis." +msgstr "" +"Scalează formele selectate\n" +"folsoind factorul: Factor X pentru ambele axe." + +#: flatcamEditors/FlatCAMGeoEditor.py:807 +#: flatcamEditors/FlatCAMGrbEditor.py:5506 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:132 +#: flatcamTools/ToolTransform.py:196 +msgid "Scale Reference" +msgstr "Referința scalare" + +#: flatcamEditors/FlatCAMGeoEditor.py:809 +#: flatcamEditors/FlatCAMGrbEditor.py:5508 +msgid "" +"Scale the selected shape(s)\n" +"using the origin reference when checked,\n" +"and the center of the biggest bounding box\n" +"of the selected shapes when unchecked." +msgstr "" +"Scalează formele selectate.\n" +"Punctul de referinţă este mijlocul\n" +"formei înconjurătoare care cuprinde\n" +"toate formele selectate când nu este\n" +"bifat și este originea când este bifat." + +#: flatcamEditors/FlatCAMGeoEditor.py:837 +#: flatcamEditors/FlatCAMGrbEditor.py:5537 +msgid "Value X:" +msgstr "Valoare X:" + +#: flatcamEditors/FlatCAMGeoEditor.py:839 +#: flatcamEditors/FlatCAMGrbEditor.py:5539 +msgid "Value for Offset action on X axis." +msgstr "Valoare pentru deplasarea pe axa X." + +#: flatcamEditors/FlatCAMGeoEditor.py:849 +#: flatcamEditors/FlatCAMGrbEditor.py:5549 flatcamTools/ToolTransform.py:473 +msgid "Offset X" +msgstr "Ofset pe X" + +#: flatcamEditors/FlatCAMGeoEditor.py:851 +#: flatcamEditors/FlatCAMGeoEditor.py:871 +#: flatcamEditors/FlatCAMGrbEditor.py:5551 +#: flatcamEditors/FlatCAMGrbEditor.py:5571 +msgid "" +"Offset the selected shape(s).\n" +"The point of reference is the middle of\n" +"the bounding box for all selected shapes.\n" +msgstr "" +"Deplasează formele selectate\n" +"Punctul de referinţă este mijlocul\n" +"formei înconjurătoare care cuprinde\n" +"toate formele selectate.\n" + +#: flatcamEditors/FlatCAMGeoEditor.py:857 +#: flatcamEditors/FlatCAMGrbEditor.py:5557 +msgid "Value Y:" +msgstr "Valoare Y:" + +#: flatcamEditors/FlatCAMGeoEditor.py:859 +#: flatcamEditors/FlatCAMGrbEditor.py:5559 +msgid "Value for Offset action on Y axis." +msgstr "Valoare pentru deplasarea pe axa Y." + +#: flatcamEditors/FlatCAMGeoEditor.py:869 +#: flatcamEditors/FlatCAMGrbEditor.py:5569 flatcamTools/ToolTransform.py:474 +msgid "Offset Y" +msgstr "Ofset pe Y" + +#: flatcamEditors/FlatCAMGeoEditor.py:900 +#: flatcamEditors/FlatCAMGrbEditor.py:5600 flatcamTools/ToolTransform.py:475 +msgid "Flip on X" +msgstr "Oglindește pe X" + +#: flatcamEditors/FlatCAMGeoEditor.py:902 +#: flatcamEditors/FlatCAMGeoEditor.py:909 +#: flatcamEditors/FlatCAMGrbEditor.py:5602 +#: flatcamEditors/FlatCAMGrbEditor.py:5609 +msgid "" +"Flip the selected shape(s) over the X axis.\n" +"Does not create a new shape." +msgstr "" +"Oglindește formele selectate peste axa X\n" +"Nu crează noi forme." + +#: flatcamEditors/FlatCAMGeoEditor.py:907 +#: flatcamEditors/FlatCAMGrbEditor.py:5607 flatcamTools/ToolTransform.py:476 +msgid "Flip on Y" +msgstr "Oglindește pe Y" + +#: flatcamEditors/FlatCAMGeoEditor.py:915 +#: flatcamEditors/FlatCAMGrbEditor.py:5615 +msgid "Ref Pt" +msgstr "Pt ref" + +#: flatcamEditors/FlatCAMGeoEditor.py:917 +#: flatcamEditors/FlatCAMGrbEditor.py:5617 +msgid "" +"Flip the selected shape(s)\n" +"around the point in Point Entry Field.\n" +"\n" +"The point coordinates can be captured by\n" +"left click on canvas together with pressing\n" +"SHIFT key. \n" +"Then click Add button to insert coordinates.\n" +"Or enter the coords in format (x, y) in the\n" +"Point Entry field and click Flip on X(Y)" +msgstr "" +"Oglindește formele selectate\n" +"in jurul punctului din câmpul >Punct<\n" +"\n" +"Coordonatele punctului pot fi obtinute\n" +"prin click pe canvas in timp ce se tine apasata\n" +"tasta SHIFT.\n" +"Apoi click pe butonul >Adaugă< pentru a insera\n" +"coordonatele.\n" +"Alternativ se pot introduce manual in formatul (x, y). \n" +"La final click pe >Oglindește pe X(Y)<." + +#: flatcamEditors/FlatCAMGeoEditor.py:929 +#: flatcamEditors/FlatCAMGrbEditor.py:5629 +msgid "Point:" +msgstr "Punct:" + +#: flatcamEditors/FlatCAMGeoEditor.py:931 +#: flatcamEditors/FlatCAMGrbEditor.py:5631 flatcamTools/ToolTransform.py:299 +msgid "" +"Coordinates in format (x, y) used as reference for mirroring.\n" +"The 'x' in (x, y) will be used when using Flip on X and\n" +"the 'y' in (x, y) will be used when using Flip on Y." +msgstr "" +"Coordonatele in format (x, y) folosite pentru oglindire.\n" +"Valoarea 'x' in (x, y) va fi folosita când se face oglindire pe X\n" +"și valoarea 'y' in (x, y) va fi folosita când se face oglindire pe Y." + +#: flatcamEditors/FlatCAMGeoEditor.py:941 +#: flatcamEditors/FlatCAMGrbEditor.py:5643 flatcamTools/ToolTransform.py:309 +msgid "" +"The point coordinates can be captured by\n" +"left click on canvas together with pressing\n" +"SHIFT key. Then click Add button to insert." +msgstr "" +"Coordonatele punctului se pot obtine\n" +"prin click pe canvas in timp ce se tine apasata\n" +"tasta SHIFT.\n" +"La final, apasa butonul >Adaugă< pt a le insera." + +#: flatcamEditors/FlatCAMGeoEditor.py:1304 +#: flatcamEditors/FlatCAMGrbEditor.py:5951 +msgid "No shape selected. Please Select a shape to rotate!" +msgstr "" +"Nici-o forma nu este selectată. Selectează o forma pentru a putea face " +"Rotaţie!" + +#: flatcamEditors/FlatCAMGeoEditor.py:1307 +#: flatcamEditors/FlatCAMGrbEditor.py:5954 flatcamTools/ToolTransform.py:679 +msgid "Appying Rotate" +msgstr "Execuţie Rotaţie" + +#: flatcamEditors/FlatCAMGeoEditor.py:1333 +#: flatcamEditors/FlatCAMGrbEditor.py:5986 +msgid "Done. Rotate completed." +msgstr "Executat. Rotaţie finalizată." + +#: flatcamEditors/FlatCAMGeoEditor.py:1335 +msgid "Rotation action was not executed" +msgstr "Actiunea de rotatie nu a fost efectuată" + +#: flatcamEditors/FlatCAMGeoEditor.py:1354 +#: flatcamEditors/FlatCAMGrbEditor.py:6005 +msgid "No shape selected. Please Select a shape to flip!" +msgstr "" +"Nici-o formă nu este selectată. Selectează o formă pentru a putea face " +"Oglindire!" + +#: flatcamEditors/FlatCAMGeoEditor.py:1357 +#: flatcamEditors/FlatCAMGrbEditor.py:6008 flatcamTools/ToolTransform.py:728 +msgid "Applying Flip" +msgstr "Execuţie Oglindire" + +#: flatcamEditors/FlatCAMGeoEditor.py:1386 +#: flatcamEditors/FlatCAMGrbEditor.py:6046 flatcamTools/ToolTransform.py:769 +msgid "Flip on the Y axis done" +msgstr "Oglindire pe axa Y executată" + +#: flatcamEditors/FlatCAMGeoEditor.py:1390 +#: flatcamEditors/FlatCAMGrbEditor.py:6055 flatcamTools/ToolTransform.py:778 +msgid "Flip on the X axis done" +msgstr "Oglindire pe axa X executată" + +#: flatcamEditors/FlatCAMGeoEditor.py:1398 +msgid "Flip action was not executed" +msgstr "Actiunea de oglindire nu a fost efectuată" + +#: flatcamEditors/FlatCAMGeoEditor.py:1416 +#: flatcamEditors/FlatCAMGrbEditor.py:6075 +msgid "No shape selected. Please Select a shape to shear/skew!" +msgstr "" +"Nici-o formă nu este selectată. Selectează o formă pentru a putea face " +"Deformare!" + +#: flatcamEditors/FlatCAMGeoEditor.py:1419 +#: flatcamEditors/FlatCAMGrbEditor.py:6078 flatcamTools/ToolTransform.py:801 +msgid "Applying Skew" +msgstr "Execuţie Deformare" + +#: flatcamEditors/FlatCAMGeoEditor.py:1442 +#: flatcamEditors/FlatCAMGrbEditor.py:6112 +msgid "Skew on the X axis done" +msgstr "Oglindire pe axa X executată" + +#: flatcamEditors/FlatCAMGeoEditor.py:1444 +#: flatcamEditors/FlatCAMGrbEditor.py:6114 +msgid "Skew on the Y axis done" +msgstr "Oglindire pe axa Y executată" + +#: flatcamEditors/FlatCAMGeoEditor.py:1447 +msgid "Skew action was not executed" +msgstr "Actiunea de deformare nu a fost efectuată" + +#: flatcamEditors/FlatCAMGeoEditor.py:1469 +#: flatcamEditors/FlatCAMGrbEditor.py:6136 +msgid "No shape selected. Please Select a shape to scale!" +msgstr "" +"Nici-o formă nu este selectată. Selectează o formă pentru a putea face " +"Scalare!" + +#: flatcamEditors/FlatCAMGeoEditor.py:1472 +#: flatcamEditors/FlatCAMGrbEditor.py:6139 flatcamTools/ToolTransform.py:847 +msgid "Applying Scale" +msgstr "Execuţie Scalare" + +#: flatcamEditors/FlatCAMGeoEditor.py:1504 +#: flatcamEditors/FlatCAMGrbEditor.py:6176 +msgid "Scale on the X axis done" +msgstr "Scalarea pe axa X executată" + +#: flatcamEditors/FlatCAMGeoEditor.py:1506 +#: flatcamEditors/FlatCAMGrbEditor.py:6178 +msgid "Scale on the Y axis done" +msgstr "Scalarea pe axa Y executată" + +#: flatcamEditors/FlatCAMGeoEditor.py:1508 +msgid "Scale action was not executed" +msgstr "Scalarea nu a fost efectuată" + +#: flatcamEditors/FlatCAMGeoEditor.py:1523 +#: flatcamEditors/FlatCAMGrbEditor.py:6195 +msgid "No shape selected. Please Select a shape to offset!" +msgstr "" +"Nici-o formă nu este selectată. Selectează o formă pentru a putea face Ofset!" + +#: flatcamEditors/FlatCAMGeoEditor.py:1526 +#: flatcamEditors/FlatCAMGrbEditor.py:6198 flatcamTools/ToolTransform.py:897 +msgid "Applying Offset" +msgstr "Execuţie Ofset" + +#: flatcamEditors/FlatCAMGeoEditor.py:1536 +#: flatcamEditors/FlatCAMGrbEditor.py:6219 +msgid "Offset on the X axis done" +msgstr "Ofset pe axa X efectuat" + +#: flatcamEditors/FlatCAMGeoEditor.py:1538 +#: flatcamEditors/FlatCAMGrbEditor.py:6221 +msgid "Offset on the Y axis done" +msgstr "Ofset pe axa Y efectuat" + +#: flatcamEditors/FlatCAMGeoEditor.py:1541 +msgid "Offset action was not executed" +msgstr "Actiuena de Ofset nu a fost efectuată" + +#: flatcamEditors/FlatCAMGeoEditor.py:1545 +#: flatcamEditors/FlatCAMGrbEditor.py:6228 +msgid "Rotate ..." +msgstr "Rotaţie ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:1546 +#: flatcamEditors/FlatCAMGeoEditor.py:1601 +#: flatcamEditors/FlatCAMGeoEditor.py:1618 +#: flatcamEditors/FlatCAMGrbEditor.py:6229 +#: flatcamEditors/FlatCAMGrbEditor.py:6278 +#: flatcamEditors/FlatCAMGrbEditor.py:6293 +msgid "Enter an Angle Value (degrees)" +msgstr "Introdu o valoare in grade pt Unghi" + +#: flatcamEditors/FlatCAMGeoEditor.py:1555 +#: flatcamEditors/FlatCAMGrbEditor.py:6237 +msgid "Geometry shape rotate done" +msgstr "Rotatia formei geometrice executată" + +#: flatcamEditors/FlatCAMGeoEditor.py:1559 +#: flatcamEditors/FlatCAMGrbEditor.py:6240 +msgid "Geometry shape rotate cancelled" +msgstr "Rotatia formei geometrice anulată" + +#: flatcamEditors/FlatCAMGeoEditor.py:1564 +#: flatcamEditors/FlatCAMGrbEditor.py:6245 +msgid "Offset on X axis ..." +msgstr "Ofset pe axa X ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:1565 +#: flatcamEditors/FlatCAMGeoEditor.py:1584 +#: flatcamEditors/FlatCAMGrbEditor.py:6246 +#: flatcamEditors/FlatCAMGrbEditor.py:6263 +msgid "Enter a distance Value" +msgstr "Introdu of valoare pt Distantă" + +#: flatcamEditors/FlatCAMGeoEditor.py:1574 +#: flatcamEditors/FlatCAMGrbEditor.py:6254 +msgid "Geometry shape offset on X axis done" +msgstr "Ofset pe axa X executat" + +#: flatcamEditors/FlatCAMGeoEditor.py:1578 +#: flatcamEditors/FlatCAMGrbEditor.py:6257 +msgid "Geometry shape offset X cancelled" +msgstr "Ofset pe axa X anulat" + +#: flatcamEditors/FlatCAMGeoEditor.py:1583 +#: flatcamEditors/FlatCAMGrbEditor.py:6262 +msgid "Offset on Y axis ..." +msgstr "Ofset pe axa Y ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:1593 +#: flatcamEditors/FlatCAMGrbEditor.py:6271 +msgid "Geometry shape offset on Y axis done" +msgstr "Ofset pe axa Y executat" + +#: flatcamEditors/FlatCAMGeoEditor.py:1597 +msgid "Geometry shape offset on Y axis canceled" +msgstr "Ofset pe axa Y anulat" + +#: flatcamEditors/FlatCAMGeoEditor.py:1600 +#: flatcamEditors/FlatCAMGrbEditor.py:6277 +msgid "Skew on X axis ..." +msgstr "Deformare pe axa X ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:1610 +#: flatcamEditors/FlatCAMGrbEditor.py:6286 +msgid "Geometry shape skew on X axis done" +msgstr "Deformarea pe axa X executată" + +#: flatcamEditors/FlatCAMGeoEditor.py:1614 +msgid "Geometry shape skew on X axis canceled" +msgstr "Deformarea pe axa X anulată" + +#: flatcamEditors/FlatCAMGeoEditor.py:1617 +#: flatcamEditors/FlatCAMGrbEditor.py:6292 +msgid "Skew on Y axis ..." +msgstr "Deformare pe axa Y ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:1627 +#: flatcamEditors/FlatCAMGrbEditor.py:6301 +msgid "Geometry shape skew on Y axis done" +msgstr "Deformarea pe axa Y executată" + +#: flatcamEditors/FlatCAMGeoEditor.py:1631 +msgid "Geometry shape skew on Y axis canceled" +msgstr "Deformarea pe axa Y anulată" + +#: flatcamEditors/FlatCAMGeoEditor.py:2008 +#: flatcamEditors/FlatCAMGeoEditor.py:2079 +#: flatcamEditors/FlatCAMGrbEditor.py:1437 +#: flatcamEditors/FlatCAMGrbEditor.py:1515 +msgid "Click on Center point ..." +msgstr "Click pe punctul de Centru ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:2021 +#: flatcamEditors/FlatCAMGrbEditor.py:1447 +msgid "Click on Perimeter point to complete ..." +msgstr "Click pe un punct aflat pe Circumferintă pentru terminare ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:2053 +msgid "Done. Adding Circle completed." +msgstr "Executat. Adăugarea unei forme Cerc terminată." + +#: flatcamEditors/FlatCAMGeoEditor.py:2107 +#: flatcamEditors/FlatCAMGrbEditor.py:1548 +msgid "Click on Start point ..." +msgstr "Click pe punctul de Start ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:2109 +#: flatcamEditors/FlatCAMGrbEditor.py:1550 +msgid "Click on Point3 ..." +msgstr "Click pe Punctul3 ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:2111 +#: flatcamEditors/FlatCAMGrbEditor.py:1552 +msgid "Click on Stop point ..." +msgstr "Click pe punctulde Stop ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:2116 +#: flatcamEditors/FlatCAMGrbEditor.py:1557 +msgid "Click on Stop point to complete ..." +msgstr "Click pe punctul de Stop pentru terminare ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:2118 +#: flatcamEditors/FlatCAMGrbEditor.py:1559 +msgid "Click on Point2 to complete ..." +msgstr "Click pe Punctul2 pentru terminare ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:2120 +#: flatcamEditors/FlatCAMGrbEditor.py:1561 +msgid "Click on Center point to complete ..." +msgstr "Click pe punctul de Centru pentru terminare ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:2132 +#, python-format +msgid "Direction: %s" +msgstr "Direcţie: %s" + +#: flatcamEditors/FlatCAMGeoEditor.py:2146 +#: flatcamEditors/FlatCAMGrbEditor.py:1587 +msgid "Mode: Start -> Stop -> Center. Click on Start point ..." +msgstr "Mod: Start -> Stop -> Centru. Click pe punctul de Start ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:2149 +#: flatcamEditors/FlatCAMGrbEditor.py:1590 +msgid "Mode: Point1 -> Point3 -> Point2. Click on Point1 ..." +msgstr "Mod: Point1 -> Point3 -> Point2. Click pe Punctul1 ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:2152 +#: flatcamEditors/FlatCAMGrbEditor.py:1593 +msgid "Mode: Center -> Start -> Stop. Click on Center point ..." +msgstr "Mod: Center -> Start -> Stop. Click pe punctul de Centru ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:2293 +msgid "Done. Arc completed." +msgstr "Executat. Adăugarea unei forme Arc terminată." + +#: flatcamEditors/FlatCAMGeoEditor.py:2324 +#: flatcamEditors/FlatCAMGeoEditor.py:2397 +msgid "Click on 1st corner ..." +msgstr "Click pe primul colt ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:2336 +msgid "Click on opposite corner to complete ..." +msgstr "Click pe punctul opus pentru terminare ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:2366 +msgid "Done. Rectangle completed." +msgstr "Executat. Adăugare Pătrat terminată." + +#: flatcamEditors/FlatCAMGeoEditor.py:2410 +#: flatcamObjects/FlatCAMGeometry.py:2648 flatcamTools/ToolNCC.py:1733 +#: flatcamTools/ToolPaint.py:1628 +msgid "Click on next Point or click right mouse button to complete ..." +msgstr "" +"Click pe punctul următor sau click buton dreapta al mousului pentru " +"terminare ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:2441 +msgid "Done. Polygon completed." +msgstr "Executat. Adăugarea unei forme Poligon terminată." + +#: flatcamEditors/FlatCAMGeoEditor.py:2455 +#: flatcamEditors/FlatCAMGeoEditor.py:2520 +#: flatcamEditors/FlatCAMGrbEditor.py:1113 +#: flatcamEditors/FlatCAMGrbEditor.py:1324 +msgid "Backtracked one point ..." +msgstr "Revenit la penultimul Punct ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:2498 +msgid "Done. Path completed." +msgstr "Executat. Traseu finalizat." + +#: flatcamEditors/FlatCAMGeoEditor.py:2657 +msgid "No shape selected. Select a shape to explode" +msgstr "Nicio formă selectată. Selectați o formă pentru a o exploda" + +#: flatcamEditors/FlatCAMGeoEditor.py:2690 +msgid "Done. Polygons exploded into lines." +msgstr "Terminat. Poligoanele au fost descompuse în linii." + +#: flatcamEditors/FlatCAMGeoEditor.py:2722 +msgid "MOVE: No shape selected. Select a shape to move" +msgstr "" +"MUTARE: Nici-o formă nu este selectată. Selectează o formă pentru a putea " +"face deplasare" + +#: flatcamEditors/FlatCAMGeoEditor.py:2725 +#: flatcamEditors/FlatCAMGeoEditor.py:2745 +msgid " MOVE: Click on reference point ..." +msgstr " MUTARE: Click pe punctul de referinţă ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:2730 +msgid " Click on destination point ..." +msgstr " Click pe punctul de Destinaţie ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:2770 +msgid "Done. Geometry(s) Move completed." +msgstr "Executat. Mutarea Geometriilor terminată." + +#: flatcamEditors/FlatCAMGeoEditor.py:2903 +msgid "Done. Geometry(s) Copy completed." +msgstr "Executat. Copierea Geometriilor terminată." + +#: flatcamEditors/FlatCAMGeoEditor.py:2934 +#: flatcamEditors/FlatCAMGrbEditor.py:899 +msgid "Click on 1st point ..." +msgstr "Click pe primul punct ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:2958 +msgid "" +"Font not supported. Only Regular, Bold, Italic and BoldItalic are supported. " +"Error" +msgstr "" +"Fontul nu este compatibil. Doar cele tip: Regular, Bold, Italic și " +"BoldItalic sunt acceptate. Eroarea" + +#: flatcamEditors/FlatCAMGeoEditor.py:2966 +msgid "No text to add." +msgstr "Niciun text de adăugat." + +#: flatcamEditors/FlatCAMGeoEditor.py:2976 +msgid " Done. Adding Text completed." +msgstr " Executat. Adăugarea de Text terminată." + +#: flatcamEditors/FlatCAMGeoEditor.py:3013 +msgid "Create buffer geometry ..." +msgstr "Crează o geometrie de tipe Bufer ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:3048 +#: flatcamEditors/FlatCAMGrbEditor.py:5160 +msgid "Done. Buffer Tool completed." +msgstr "Executat. Unealta Bufer terminată." + +#: flatcamEditors/FlatCAMGeoEditor.py:3076 +msgid "Done. Buffer Int Tool completed." +msgstr "Executat. Unealta Bufer Intern terminată." + +#: flatcamEditors/FlatCAMGeoEditor.py:3104 +msgid "Done. Buffer Ext Tool completed." +msgstr "Executat. Unealta Bufer Extern terminată." + +#: flatcamEditors/FlatCAMGeoEditor.py:3153 +#: flatcamEditors/FlatCAMGrbEditor.py:2153 +msgid "Select a shape to act as deletion area ..." +msgstr "Selectează o formă geometrică ca formă de stergere ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:3155 +#: flatcamEditors/FlatCAMGeoEditor.py:3181 +#: flatcamEditors/FlatCAMGeoEditor.py:3187 +#: flatcamEditors/FlatCAMGrbEditor.py:2155 +msgid "Click to pick-up the erase shape..." +msgstr "Click pentru a activa forma de stergere..." + +#: flatcamEditors/FlatCAMGeoEditor.py:3191 +#: flatcamEditors/FlatCAMGrbEditor.py:2214 +msgid "Click to erase ..." +msgstr "Click pt a sterge ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:3220 +#: flatcamEditors/FlatCAMGrbEditor.py:2247 +msgid "Done. Eraser tool action completed." +msgstr "Executat. Unealta Stergere s-a terminat." + +#: flatcamEditors/FlatCAMGeoEditor.py:3270 +msgid "Create Paint geometry ..." +msgstr "Crează o geometrie Paint ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:3283 +#: flatcamEditors/FlatCAMGrbEditor.py:2410 +msgid "Shape transformations ..." +msgstr "Transformări de forme geometrice ..." + +#: flatcamEditors/FlatCAMGeoEditor.py:3339 +#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:27 +msgid "Geometry Editor" +msgstr "Editor Geometrii" + +#: flatcamEditors/FlatCAMGeoEditor.py:3345 +#: flatcamEditors/FlatCAMGrbEditor.py:2488 +#: flatcamEditors/FlatCAMGrbEditor.py:3969 flatcamGUI/ObjectUI.py:263 +#: flatcamGUI/ObjectUI.py:1497 flatcamGUI/ObjectUI.py:2326 +#: flatcamTools/ToolCutOut.py:95 +msgid "Type" +msgstr "Tip" + +#: flatcamEditors/FlatCAMGeoEditor.py:3345 flatcamGUI/ObjectUI.py:218 +#: flatcamGUI/ObjectUI.py:742 flatcamGUI/ObjectUI.py:1433 +#: flatcamGUI/ObjectUI.py:2235 flatcamGUI/ObjectUI.py:2539 +#: flatcamGUI/ObjectUI.py:2606 flatcamTools/ToolCalibration.py:234 +#: flatcamTools/ToolFiducials.py:73 +msgid "Name" +msgstr "Nume" + +#: flatcamEditors/FlatCAMGeoEditor.py:3587 +msgid "Ring" +msgstr "Inel" + +#: flatcamEditors/FlatCAMGeoEditor.py:3589 +msgid "Line" +msgstr "Linie" + +#: flatcamEditors/FlatCAMGeoEditor.py:3591 flatcamGUI/FlatCAMGUI.py:2202 +#: flatcamGUI/ObjectUI.py:2074 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:218 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:328 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:292 +#: flatcamTools/ToolNCC.py:584 flatcamTools/ToolPaint.py:528 +msgid "Polygon" +msgstr "Poligon" + +#: flatcamEditors/FlatCAMGeoEditor.py:3593 +msgid "Multi-Line" +msgstr "Multi-Linie" + +#: flatcamEditors/FlatCAMGeoEditor.py:3595 +msgid "Multi-Polygon" +msgstr "Multi-Poligon" + +#: flatcamEditors/FlatCAMGeoEditor.py:3602 +msgid "Geo Elem" +msgstr "Element Geo" + +#: flatcamEditors/FlatCAMGeoEditor.py:4076 +msgid "Editing MultiGeo Geometry, tool" +msgstr "Se editează Geometrie tip MultiGeo. unealta" + +#: flatcamEditors/FlatCAMGeoEditor.py:4078 +msgid "with diameter" +msgstr "cu diametrul" + +#: flatcamEditors/FlatCAMGeoEditor.py:4509 flatcamGUI/FlatCAMGUI.py:3753 +#: flatcamGUI/FlatCAMGUI.py:3799 flatcamGUI/FlatCAMGUI.py:3817 +#: flatcamGUI/FlatCAMGUI.py:3961 flatcamGUI/FlatCAMGUI.py:4000 +#: flatcamGUI/FlatCAMGUI.py:4012 flatcamGUI/FlatCAMGUI.py:4029 +msgid "Click on target point." +msgstr "Click pe punctul tinta." + +#: flatcamEditors/FlatCAMGeoEditor.py:4823 +#: flatcamEditors/FlatCAMGeoEditor.py:4858 +msgid "A selection of at least 2 geo items is required to do Intersection." +msgstr "" +"Cel puțin o selecţie de doua forme geometrice este necesară pentru a face o " +"Intersecţie." + +#: flatcamEditors/FlatCAMGeoEditor.py:4944 +#: flatcamEditors/FlatCAMGeoEditor.py:5048 +msgid "" +"Negative buffer value is not accepted. Use Buffer interior to generate an " +"'inside' shape" +msgstr "" +"O valoare de bufer negativă nu se acceptă. Foloseste Bufer Interior pentru a " +"genera o formă geo. interioară" + +#: flatcamEditors/FlatCAMGeoEditor.py:4954 +#: flatcamEditors/FlatCAMGeoEditor.py:5007 +#: flatcamEditors/FlatCAMGeoEditor.py:5057 +msgid "Nothing selected for buffering." +msgstr "Nici-o forma geometrică nu este selectată pentru a face Bufer." + +#: flatcamEditors/FlatCAMGeoEditor.py:4959 +#: flatcamEditors/FlatCAMGeoEditor.py:5011 +#: flatcamEditors/FlatCAMGeoEditor.py:5062 +msgid "Invalid distance for buffering." +msgstr "Distanta invalida pentru a face Bufer." + +#: flatcamEditors/FlatCAMGeoEditor.py:4983 +#: flatcamEditors/FlatCAMGeoEditor.py:5082 +msgid "Failed, the result is empty. Choose a different buffer value." +msgstr "Eșuat, rezultatul este gol. Foloseşte o valoare diferita pentru Bufer." + +#: flatcamEditors/FlatCAMGeoEditor.py:4994 +msgid "Full buffer geometry created." +msgstr "Geometrie tip Bufer Complet creată." + +#: flatcamEditors/FlatCAMGeoEditor.py:5000 +msgid "Negative buffer value is not accepted." +msgstr "Valoarea bufer negativă nu este acceptată." + +#: flatcamEditors/FlatCAMGeoEditor.py:5031 +msgid "Failed, the result is empty. Choose a smaller buffer value." +msgstr "Eșuat, rezultatul este gol. Foloseşte of valoare mai mica pt. Bufer." + +#: flatcamEditors/FlatCAMGeoEditor.py:5041 +msgid "Interior buffer geometry created." +msgstr "Geometrie Bufer interior creată." + +#: flatcamEditors/FlatCAMGeoEditor.py:5092 +msgid "Exterior buffer geometry created." +msgstr "Geometrie Bufer Exterior creată." + +#: flatcamEditors/FlatCAMGeoEditor.py:5098 +#, python-format +msgid "Could not do Paint. Overlap value has to be less than 100%%." +msgstr "" +"Nu se poate face Paint. Valoarea de suprapunere trebuie să fie mai puțin de " +"100%%." + +#: flatcamEditors/FlatCAMGeoEditor.py:5105 +msgid "Nothing selected for painting." +msgstr "Nici-o forma geometrică nu este selectată pentru Paint." + +#: flatcamEditors/FlatCAMGeoEditor.py:5111 +msgid "Invalid value for" +msgstr "Valoare invalida pentru" + +#: flatcamEditors/FlatCAMGeoEditor.py:5170 +msgid "" +"Could not do Paint. Try a different combination of parameters. Or a " +"different method of Paint" +msgstr "" +"Nu se poate face Paint. Incearcă o combinaţie diferita de parametri. Or o " +"metoda diferita de Paint" + +#: flatcamEditors/FlatCAMGeoEditor.py:5181 +msgid "Paint done." +msgstr "Pictare executata." + +#: flatcamEditors/FlatCAMGrbEditor.py:213 +msgid "To add an Pad first select a aperture in Aperture Table" +msgstr "" +"Pentru a adăuga un Pad mai intai selectează o apertură (unealtă) in Tabela " +"de Aperturi" + +#: flatcamEditors/FlatCAMGrbEditor.py:220 +#: flatcamEditors/FlatCAMGrbEditor.py:420 +msgid "Aperture size is zero. It needs to be greater than zero." +msgstr "Dimens. aperturii este zero. Trebuie sa fie mai mare ca zero." + +#: flatcamEditors/FlatCAMGrbEditor.py:373 +#: flatcamEditors/FlatCAMGrbEditor.py:686 +msgid "" +"Incompatible aperture type. Select an aperture with type 'C', 'R' or 'O'." +msgstr "" +"Tip de apertură incompatibil. Selectează o apertură cu tipul 'C', 'R' sau " +"'O'." + +#: flatcamEditors/FlatCAMGrbEditor.py:385 +msgid "Done. Adding Pad completed." +msgstr "Executat. Adăugarea padului terminată." + +#: flatcamEditors/FlatCAMGrbEditor.py:412 +msgid "To add an Pad Array first select a aperture in Aperture Table" +msgstr "" +"Pentru a adăuga o arie de paduri mai intai selectează o apertura (unealtă) " +"in Tabela de Aperturi" + +#: flatcamEditors/FlatCAMGrbEditor.py:492 +msgid "Click on the Pad Circular Array Start position" +msgstr "Click pe punctul de Start al ariei de paduri" + +#: flatcamEditors/FlatCAMGrbEditor.py:712 +msgid "Too many Pads for the selected spacing angle." +msgstr "Prea multe paduri pentru unghiul selectat." + +#: flatcamEditors/FlatCAMGrbEditor.py:735 +msgid "Done. Pad Array added." +msgstr "Executat. Aria de paduri a fost adăugată." + +#: flatcamEditors/FlatCAMGrbEditor.py:760 +msgid "Select shape(s) and then click ..." +msgstr "Selectează formele si apoi click ..." + +#: flatcamEditors/FlatCAMGrbEditor.py:772 +msgid "Failed. Nothing selected." +msgstr "Eșuat. Nu este nimic selectat." + +#: flatcamEditors/FlatCAMGrbEditor.py:788 +msgid "" +"Failed. Poligonize works only on geometries belonging to the same aperture." +msgstr "" +"Esuat. Poligonizarea lucrează doar asupra geometriilor care apartin aceleasi " +"aperturi." + +#: flatcamEditors/FlatCAMGrbEditor.py:842 +msgid "Done. Poligonize completed." +msgstr "Executat. Poligonizare completă." + +#: flatcamEditors/FlatCAMGrbEditor.py:897 +#: flatcamEditors/FlatCAMGrbEditor.py:1130 +#: flatcamEditors/FlatCAMGrbEditor.py:1154 +msgid "Corner Mode 1: 45 degrees ..." +msgstr "Mod Colt 1: 45 grade ..." + +#: flatcamEditors/FlatCAMGrbEditor.py:909 +#: flatcamEditors/FlatCAMGrbEditor.py:1239 +msgid "Click on next Point or click Right mouse button to complete ..." +msgstr "" +"Click pe punctul următor sau click buton dreapta al mousului pentru " +"terminare ..." + +#: flatcamEditors/FlatCAMGrbEditor.py:1118 +#: flatcamEditors/FlatCAMGrbEditor.py:1151 +msgid "Corner Mode 2: Reverse 45 degrees ..." +msgstr "Mod Colt 2: Invers 45 grade ..." + +#: flatcamEditors/FlatCAMGrbEditor.py:1121 +#: flatcamEditors/FlatCAMGrbEditor.py:1148 +msgid "Corner Mode 3: 90 degrees ..." +msgstr "Mod Colt 3: 90 grade ..." + +#: flatcamEditors/FlatCAMGrbEditor.py:1124 +#: flatcamEditors/FlatCAMGrbEditor.py:1145 +msgid "Corner Mode 4: Reverse 90 degrees ..." +msgstr "Mod Colt 4: Invers 90 grade ..." + +#: flatcamEditors/FlatCAMGrbEditor.py:1127 +#: flatcamEditors/FlatCAMGrbEditor.py:1142 +msgid "Corner Mode 5: Free angle ..." +msgstr "Mod Colt 5: Unghi liber ..." + +#: flatcamEditors/FlatCAMGrbEditor.py:1184 +#: flatcamEditors/FlatCAMGrbEditor.py:1360 +#: flatcamEditors/FlatCAMGrbEditor.py:1399 +msgid "Track Mode 1: 45 degrees ..." +msgstr "Mod Traseu 1: 45 grade ..." + +#: flatcamEditors/FlatCAMGrbEditor.py:1340 +#: flatcamEditors/FlatCAMGrbEditor.py:1394 +msgid "Track Mode 2: Reverse 45 degrees ..." +msgstr "Mod Traseu 2: Invers 45 grade ..." + +#: flatcamEditors/FlatCAMGrbEditor.py:1345 +#: flatcamEditors/FlatCAMGrbEditor.py:1389 +msgid "Track Mode 3: 90 degrees ..." +msgstr "Mod Traseu 3: 90 grade ..." + +#: flatcamEditors/FlatCAMGrbEditor.py:1350 +#: flatcamEditors/FlatCAMGrbEditor.py:1384 +msgid "Track Mode 4: Reverse 90 degrees ..." +msgstr "Mod Traseu 4: Invers 90 grade ..." + +#: flatcamEditors/FlatCAMGrbEditor.py:1355 +#: flatcamEditors/FlatCAMGrbEditor.py:1379 +msgid "Track Mode 5: Free angle ..." +msgstr "Mod Traseu 5: Unghi liber ..." + +#: flatcamEditors/FlatCAMGrbEditor.py:1780 +msgid "Scale the selected Gerber apertures ..." +msgstr "Șterge aperturile Gerber selectate ..." + +#: flatcamEditors/FlatCAMGrbEditor.py:1822 +msgid "Buffer the selected apertures ..." +msgstr "Bufereaza aperturile selectate." + +#: flatcamEditors/FlatCAMGrbEditor.py:1864 +msgid "Mark polygon areas in the edited Gerber ..." +msgstr "Marchează ariile poligonale in obiectul Gerber editat ..." + +#: flatcamEditors/FlatCAMGrbEditor.py:1930 +msgid "Nothing selected to move" +msgstr "Nimic nu este selectat pentru mutare" + +#: flatcamEditors/FlatCAMGrbEditor.py:2055 +msgid "Done. Apertures Move completed." +msgstr "Executat. Mutarea Aperturilor terminată." + +#: flatcamEditors/FlatCAMGrbEditor.py:2137 +msgid "Done. Apertures copied." +msgstr "Executat. Aperturile au fost copiate." + +#: flatcamEditors/FlatCAMGrbEditor.py:2455 flatcamGUI/FlatCAMGUI.py:2233 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:27 +msgid "Gerber Editor" +msgstr "Editor Gerber" + +#: flatcamEditors/FlatCAMGrbEditor.py:2475 flatcamGUI/ObjectUI.py:228 +#: flatcamTools/ToolProperties.py:159 +msgid "Apertures" +msgstr "Aperturi" + +#: flatcamEditors/FlatCAMGrbEditor.py:2477 flatcamGUI/ObjectUI.py:230 +msgid "Apertures Table for the Gerber Object." +msgstr "Tabela de aperturi pt obiectul Gerber." + +#: flatcamEditors/FlatCAMGrbEditor.py:2488 +#: flatcamEditors/FlatCAMGrbEditor.py:3969 flatcamGUI/ObjectUI.py:263 +msgid "Code" +msgstr "Cod" + +#: flatcamEditors/FlatCAMGrbEditor.py:2488 +#: flatcamEditors/FlatCAMGrbEditor.py:3969 flatcamGUI/ObjectUI.py:263 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:103 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:167 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:196 +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:43 +#: flatcamTools/ToolCopperThieving.py:261 +#: flatcamTools/ToolCopperThieving.py:301 flatcamTools/ToolFiducials.py:156 +msgid "Size" +msgstr "Dimensiune" + +#: flatcamEditors/FlatCAMGrbEditor.py:2488 +#: flatcamEditors/FlatCAMGrbEditor.py:3969 flatcamGUI/ObjectUI.py:263 +msgid "Dim" +msgstr "Dim" + +#: flatcamEditors/FlatCAMGrbEditor.py:2493 flatcamGUI/ObjectUI.py:267 +msgid "Index" +msgstr "Index" + +#: flatcamEditors/FlatCAMGrbEditor.py:2495 +#: flatcamEditors/FlatCAMGrbEditor.py:2524 flatcamGUI/ObjectUI.py:269 +msgid "Aperture Code" +msgstr "Cod" + +#: flatcamEditors/FlatCAMGrbEditor.py:2497 flatcamGUI/ObjectUI.py:271 +msgid "Type of aperture: circular, rectangle, macros etc" +msgstr "" +"Tipul aperturilor:\n" +"- circular\n" +"- patrulater\n" +"- macro-uri\n" +"etc" + +#: flatcamEditors/FlatCAMGrbEditor.py:2499 flatcamGUI/ObjectUI.py:273 +msgid "Aperture Size:" +msgstr "Dim. aper.:" + +#: flatcamEditors/FlatCAMGrbEditor.py:2501 flatcamGUI/ObjectUI.py:275 +msgid "" +"Aperture Dimensions:\n" +" - (width, height) for R, O type.\n" +" - (dia, nVertices) for P type" +msgstr "" +"Dimensiunile aperturilor:\n" +"- (latime, inaltime) pt tipurile R, O.\n" +"- (diametru, nVertices) pt tipul P" + +#: flatcamEditors/FlatCAMGrbEditor.py:2525 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:58 +msgid "Code for the new aperture" +msgstr "Diametru pentru noua apertură" + +#: flatcamEditors/FlatCAMGrbEditor.py:2534 +msgid "Aperture Size" +msgstr "Dim. aper" + +#: flatcamEditors/FlatCAMGrbEditor.py:2536 +msgid "" +"Size for the new aperture.\n" +"If aperture type is 'R' or 'O' then\n" +"this value is automatically\n" +"calculated as:\n" +"sqrt(width**2 + height**2)" +msgstr "" +"Dimensiunea pt noua apertură.\n" +"Dacă tipul aperturii este 'R' sau 'O'\n" +"valoarea este calculată automat prin:\n" +"sqrt(lătime**2 + inăltime**2)" + +#: flatcamEditors/FlatCAMGrbEditor.py:2550 +msgid "Aperture Type" +msgstr "Tip aper" + +#: flatcamEditors/FlatCAMGrbEditor.py:2552 +msgid "" +"Select the type of new aperture. Can be:\n" +"C = circular\n" +"R = rectangular\n" +"O = oblong" +msgstr "" +"Selectează noul tip de apertură. Poate fi:\n" +"C = circular\n" +"R = rectangular\n" +"O = oval" + +#: flatcamEditors/FlatCAMGrbEditor.py:2563 +msgid "Aperture Dim" +msgstr "Dim. aper" + +#: flatcamEditors/FlatCAMGrbEditor.py:2565 +msgid "" +"Dimensions for the new aperture.\n" +"Active only for rectangular apertures (type R).\n" +"The format is (width, height)" +msgstr "" +"Dimensiunile pentru noua apertură.\n" +"Activă doar pentru aperturile rectangulare (tip 'R').\n" +"Formatul este (lătime, inăltime)" + +#: flatcamEditors/FlatCAMGrbEditor.py:2574 +msgid "Add/Delete Aperture" +msgstr "Adaugă/Șterge apertură" + +#: flatcamEditors/FlatCAMGrbEditor.py:2576 +msgid "Add/Delete an aperture in the aperture table" +msgstr "Adaugă/Șterge o apertură din lista de aperturi" + +#: flatcamEditors/FlatCAMGrbEditor.py:2585 +msgid "Add a new aperture to the aperture list." +msgstr "Adaugă o nouă apertură in lista de aperturi." + +#: flatcamEditors/FlatCAMGrbEditor.py:2590 +msgid "Delete a aperture in the aperture list" +msgstr "Șterge o apertură din lista de aperturi" + +#: flatcamEditors/FlatCAMGrbEditor.py:2607 +msgid "Buffer Aperture" +msgstr "Bufer pt apertură" + +#: flatcamEditors/FlatCAMGrbEditor.py:2609 +msgid "Buffer a aperture in the aperture list" +msgstr "Fă bufer pt o apertură din lista de aperturi" + +#: flatcamEditors/FlatCAMGrbEditor.py:2622 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:194 +msgid "Buffer distance" +msgstr "Distanta pt bufer" + +#: flatcamEditors/FlatCAMGrbEditor.py:2623 +msgid "Buffer corner" +msgstr "Coltul pt bufer" + +#: flatcamEditors/FlatCAMGrbEditor.py:2625 +msgid "" +"There are 3 types of corners:\n" +" - 'Round': the corner is rounded.\n" +" - 'Square': the corner is met in a sharp angle.\n" +" - 'Beveled': the corner is a line that directly connects the features " +"meeting in the corner" +msgstr "" +"Sunt disponibile 3 tipuri de colțuri:\n" +"- 'Rotund': coltul este rotunjit.\n" +"- 'Patrat:' colțurile formează unghi de 90 grade.\n" +"- 'Beveled:' coltul este inlocuit cu o linie care uneste capetele liniilor " +"care formează coltul" + +#: flatcamEditors/FlatCAMGrbEditor.py:2640 flatcamGUI/FlatCAMGUI.py:1061 +#: flatcamGUI/FlatCAMGUI.py:2138 flatcamGUI/FlatCAMGUI.py:2210 +#: flatcamGUI/FlatCAMGUI.py:2253 flatcamGUI/FlatCAMGUI.py:2765 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:200 +#: flatcamTools/ToolTransform.py:29 +msgid "Buffer" +msgstr "Bufer" + +#: flatcamEditors/FlatCAMGrbEditor.py:2655 +msgid "Scale Aperture" +msgstr "Scalează aper" + +#: flatcamEditors/FlatCAMGrbEditor.py:2657 +msgid "Scale a aperture in the aperture list" +msgstr "Scalează o apertură in lista de aperturi" + +#: flatcamEditors/FlatCAMGrbEditor.py:2665 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:209 +msgid "Scale factor" +msgstr "Factor Scalare" + +#: flatcamEditors/FlatCAMGrbEditor.py:2667 +msgid "" +"The factor by which to scale the selected aperture.\n" +"Values can be between 0.0000 and 999.9999" +msgstr "" +"Factorul cu care se va face scalarea aperturii selectate.\n" +"Poate lua valori intre: 0.000 si 999.9999" + +#: flatcamEditors/FlatCAMGrbEditor.py:2695 +msgid "Mark polygons" +msgstr "Marchează poligoanele" + +#: flatcamEditors/FlatCAMGrbEditor.py:2697 +msgid "Mark the polygon areas." +msgstr "Marchează ariile poligonale." + +#: flatcamEditors/FlatCAMGrbEditor.py:2705 +msgid "Area UPPER threshold" +msgstr "Pragul de sus pt. arie" + +#: flatcamEditors/FlatCAMGrbEditor.py:2707 +msgid "" +"The threshold value, all areas less than this are marked.\n" +"Can have a value between 0.0000 and 9999.9999" +msgstr "" +"Valoare de prag, toate poligoanele cu arii mai mici vor fi marcate.\n" +"Poate lua valori intre: 0.000 si 999.9999" + +#: flatcamEditors/FlatCAMGrbEditor.py:2714 +msgid "Area LOWER threshold" +msgstr "Pragul de jos pt. arie" + +#: flatcamEditors/FlatCAMGrbEditor.py:2716 +msgid "" +"The threshold value, all areas more than this are marked.\n" +"Can have a value between 0.0000 and 9999.9999" +msgstr "" +"Valoare de prag, toate poligoanele cu arii mai mari vor fi marcate.\n" +"Poate lua valori intre: 0.000 si 999.9999" + +#: flatcamEditors/FlatCAMGrbEditor.py:2730 +msgid "Mark" +msgstr "Marchează" + +#: flatcamEditors/FlatCAMGrbEditor.py:2732 +msgid "Mark the polygons that fit within limits." +msgstr "Marcați poligoanele care se încadrează în limite." + +#: flatcamEditors/FlatCAMGrbEditor.py:2738 +msgid "Delete all the marked polygons." +msgstr "Ștergeți toate poligoanele marcate." + +#: flatcamEditors/FlatCAMGrbEditor.py:2744 +msgid "Clear all the markings." +msgstr "Ștergeți toate marcajele." + +#: flatcamEditors/FlatCAMGrbEditor.py:2764 flatcamGUI/FlatCAMGUI.py:1046 +#: flatcamGUI/FlatCAMGUI.py:2138 flatcamGUI/FlatCAMGUI.py:2750 +msgid "Add Pad Array" +msgstr "Adaugă o arie de paduri" + +#: flatcamEditors/FlatCAMGrbEditor.py:2766 +msgid "Add an array of pads (linear or circular array)" +msgstr "Adaugă o arie de paduri (arie lineara sau circulara)." + +#: flatcamEditors/FlatCAMGrbEditor.py:2772 +msgid "" +"Select the type of pads array to create.\n" +"It can be Linear X(Y) or Circular" +msgstr "" +"Selectează tipul de arii de paduri.\n" +"Poate fi Liniar X(Y) sau Circular" + +#: flatcamEditors/FlatCAMGrbEditor.py:2783 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:95 +msgid "Nr of pads" +msgstr "Nr. paduri" + +#: flatcamEditors/FlatCAMGrbEditor.py:2785 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:97 +msgid "Specify how many pads to be in the array." +msgstr "Specifica cate paduri să fie incluse in arie." + +#: flatcamEditors/FlatCAMGrbEditor.py:2834 +msgid "" +"Angle at which the linear array is placed.\n" +"The precision is of max 2 decimals.\n" +"Min value is: -359.99 degrees.\n" +"Max value is: 360.00 degrees." +msgstr "" +"Unghiul global la care aria lineara este plasata.\n" +"Precizia este de max 2 zecimale.\n" +"Val minima este: -359.99 grade.\n" +"Val maxima este: 360.00 grade." + +#: flatcamEditors/FlatCAMGrbEditor.py:3328 +#: flatcamEditors/FlatCAMGrbEditor.py:3332 +msgid "Aperture code value is missing or wrong format. Add it and retry." +msgstr "" +"Valoarea codului aperturii lipseste sau este in format greșit. Adaugă din " +"nou și reîncearcă." + +#: flatcamEditors/FlatCAMGrbEditor.py:3368 +msgid "" +"Aperture dimensions value is missing or wrong format. Add it in format " +"(width, height) and retry." +msgstr "" +"Dimensiunile aperturii lipsesc sau sunt intr-un format greșit. Adaugă din " +"nou și reîncearcă." + +#: flatcamEditors/FlatCAMGrbEditor.py:3381 +msgid "Aperture size value is missing or wrong format. Add it and retry." +msgstr "" +"Valoarea mărimii aperturii lipseste sau este in format greșit. Adaugă din " +"nou și reîncearcă." + +#: flatcamEditors/FlatCAMGrbEditor.py:3392 +msgid "Aperture already in the aperture table." +msgstr "Apertura este deja in lista de aperturi." + +#: flatcamEditors/FlatCAMGrbEditor.py:3399 +msgid "Added new aperture with code" +msgstr "O nouă apertură este adăugată cu codul" + +#: flatcamEditors/FlatCAMGrbEditor.py:3431 +msgid " Select an aperture in Aperture Table" +msgstr " Selectează o unealtă in Tabela de Aperturi" + +#: flatcamEditors/FlatCAMGrbEditor.py:3439 +msgid "Select an aperture in Aperture Table -->" +msgstr "Selectează o unealtă in Tabela de Aperturi -->" + +#: flatcamEditors/FlatCAMGrbEditor.py:3453 +msgid "Deleted aperture with code" +msgstr "A fost stearsă unealta cu codul" + +#: flatcamEditors/FlatCAMGrbEditor.py:3521 +msgid "Dimensions need two float values separated by comma." +msgstr "Dimensiunile au nevoie de două valori float separate prin virgulă." + +#: flatcamEditors/FlatCAMGrbEditor.py:3530 +msgid "Dimensions edited." +msgstr "Dimensiuni editate." + +#: flatcamEditors/FlatCAMGrbEditor.py:4084 +msgid "Loading Gerber into Editor" +msgstr "Se încarcă Gerber în editor" + +#: flatcamEditors/FlatCAMGrbEditor.py:4212 +msgid "Setting up the UI" +msgstr "Configurarea UI" + +#: flatcamEditors/FlatCAMGrbEditor.py:4213 +msgid "Adding geometry finished. Preparing the GUI" +msgstr "Adăugarea geometriei terminate. Pregătirea GUI" + +#: flatcamEditors/FlatCAMGrbEditor.py:4222 +msgid "Finished loading the Gerber object into the editor." +msgstr "S-a terminat încărcarea obiectului Gerber în editor." + +#: flatcamEditors/FlatCAMGrbEditor.py:4361 +msgid "" +"There are no Aperture definitions in the file. Aborting Gerber creation." +msgstr "" +"Nu există definitii de aperturi in fişier. Se anulează crearea de obiect " +"Gerber." + +#: flatcamEditors/FlatCAMGrbEditor.py:4371 +msgid "Creating Gerber." +msgstr "Gerber in curs de creare." + +#: flatcamEditors/FlatCAMGrbEditor.py:4380 +msgid "Done. Gerber editing finished." +msgstr "Editarea Gerber a fost terminată." + +#: flatcamEditors/FlatCAMGrbEditor.py:4398 +msgid "Cancelled. No aperture is selected" +msgstr "Anulat. Nici-o apertură nu este selectată" + +#: flatcamEditors/FlatCAMGrbEditor.py:4992 +msgid "Failed. No aperture geometry is selected." +msgstr "Anulat. Nici-o geometrie de apertură nu este selectată." + +#: flatcamEditors/FlatCAMGrbEditor.py:5001 +#: flatcamEditors/FlatCAMGrbEditor.py:5272 +msgid "Done. Apertures geometry deleted." +msgstr "Executat. Geometriile aperturilor au fost șterse." + +#: flatcamEditors/FlatCAMGrbEditor.py:5144 +msgid "No aperture to buffer. Select at least one aperture and try again." +msgstr "" +"Nici-o apertură sel. pt a face bufer. Selectează cel puțin o apertură și " +"încearcă din nou." + +#: flatcamEditors/FlatCAMGrbEditor.py:5156 +msgid "Failed." +msgstr "Esuat." + +#: flatcamEditors/FlatCAMGrbEditor.py:5175 +msgid "Scale factor value is missing or wrong format. Add it and retry." +msgstr "" +"Valoarea factorului de scalare lipseste sau este in format gresit. Adaugă " +"din nou și reîncearcă." + +#: flatcamEditors/FlatCAMGrbEditor.py:5207 +msgid "No aperture to scale. Select at least one aperture and try again." +msgstr "" +"Nici-o apertură sel. pt scalare. Selectează cel puțin o apertură și încearcă " +"din nou." + +#: flatcamEditors/FlatCAMGrbEditor.py:5223 +msgid "Done. Scale Tool completed." +msgstr "Executat. Unealta Scalare a terminat." + +#: flatcamEditors/FlatCAMGrbEditor.py:5261 +msgid "Polygons marked." +msgstr "Poligoanele sunt marcate." + +#: flatcamEditors/FlatCAMGrbEditor.py:5264 +msgid "No polygons were marked. None fit within the limits." +msgstr "Nu au fost marcate poligoane. Niciunul nu se încadrează în limite." + +#: flatcamEditors/FlatCAMGrbEditor.py:5988 +msgid "Rotation action was not executed." +msgstr "Actiuena de rotatie nu a fost efectuatăt." + +#: flatcamEditors/FlatCAMGrbEditor.py:6116 +msgid "Skew action was not executed." +msgstr "Actiunea de deformare nu a fost efectuată." + +#: flatcamEditors/FlatCAMGrbEditor.py:6181 +msgid "Scale action was not executed." +msgstr "Actiuena de scalare nu a fost efectuată." + +#: flatcamEditors/FlatCAMGrbEditor.py:6224 +msgid "Offset action was not executed." +msgstr "Actiuena de offset nu a fost efectuată." + +#: flatcamEditors/FlatCAMGrbEditor.py:6274 +msgid "Geometry shape offset Y cancelled" +msgstr "Deplasarea formei geometrice pe axa Y anulată" + +#: flatcamEditors/FlatCAMGrbEditor.py:6289 +msgid "Geometry shape skew X cancelled" +msgstr "Deformarea formei geometrice pe axa X anulată" + +#: flatcamEditors/FlatCAMGrbEditor.py:6304 +msgid "Geometry shape skew Y cancelled" +msgstr "Deformarea formei geometrice pe axa Y executată" + +#: flatcamEditors/FlatCAMTextEditor.py:74 +msgid "Print Preview" +msgstr "Preview tiparire" + +#: flatcamEditors/FlatCAMTextEditor.py:75 +msgid "Open a OS standard Preview Print window." +msgstr "Deschide o fereastra standard a OS cu Previzualizare Tiparire." + +#: flatcamEditors/FlatCAMTextEditor.py:78 +msgid "Print Code" +msgstr "Tipareste Cod" + +#: flatcamEditors/FlatCAMTextEditor.py:79 +msgid "Open a OS standard Print window." +msgstr "Deschide o fereastra standard a OS pt Tiparire." + +#: flatcamEditors/FlatCAMTextEditor.py:81 +msgid "Find in Code" +msgstr "Cauta in Cod" + +#: flatcamEditors/FlatCAMTextEditor.py:82 +msgid "Will search and highlight in yellow the string in the Find box." +msgstr "Va cauta si va sublinia in galben acele stringuri din campul Cautare." + +#: flatcamEditors/FlatCAMTextEditor.py:86 +msgid "Find box. Enter here the strings to be searched in the text." +msgstr "" +"Campul Cautare. Introduceti aici acele stringuri care sa fie cautate in text." + +#: flatcamEditors/FlatCAMTextEditor.py:88 +msgid "Replace With" +msgstr "Inlocuieste cu" + +#: flatcamEditors/FlatCAMTextEditor.py:89 +msgid "" +"Will replace the string from the Find box with the one in the Replace box." +msgstr "" +"Va inlocui toate cuvintele gasite conform cu ce este in 'Căutare'\n" +"cu textul din casuta 'Inlocuieste'." + +#: flatcamEditors/FlatCAMTextEditor.py:93 +msgid "String to replace the one in the Find box throughout the text." +msgstr "" +"String care sa inlocuiasca pe acele din campul 'Cautare' in cadrul textului." + +#: flatcamEditors/FlatCAMTextEditor.py:95 flatcamGUI/ObjectUI.py:486 +#: flatcamGUI/ObjectUI.py:2219 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:54 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:88 +msgid "All" +msgstr "Toate" + +#: flatcamEditors/FlatCAMTextEditor.py:96 +msgid "" +"When checked it will replace all instances in the 'Find' box\n" +"with the text in the 'Replace' box.." +msgstr "" +"Când este bifat, va inlocui toate cuvintele gasite conform cu ce este in " +"'Caută'\n" +"cu textul din casuta 'Inlocuieste'..." + +#: flatcamEditors/FlatCAMTextEditor.py:99 +msgid "Copy All" +msgstr "Copiază tot" + +#: flatcamEditors/FlatCAMTextEditor.py:100 +msgid "Will copy all the text in the Code Editor to the clipboard." +msgstr "Va copia textul din editorul de cod în clipboard." + +#: flatcamEditors/FlatCAMTextEditor.py:103 +msgid "Open Code" +msgstr "Deschide Cod" + +#: flatcamEditors/FlatCAMTextEditor.py:104 +msgid "Will open a text file in the editor." +msgstr "Va deschide un fisier text in Editor." + +#: flatcamEditors/FlatCAMTextEditor.py:106 +msgid "Save Code" +msgstr "Salvează Cod" + +#: flatcamEditors/FlatCAMTextEditor.py:107 +msgid "Will save the text in the editor into a file." +msgstr "Va salva textul din Editor intr-un fisier." + +#: flatcamEditors/FlatCAMTextEditor.py:109 +msgid "Run Code" +msgstr "Rulează Cod" + +#: flatcamEditors/FlatCAMTextEditor.py:110 +msgid "Will run the TCL commands found in the text file, one by one." +msgstr "" +"Va rula instructiunile/comenzile TCL care se găsesc in textul din Editor, " +"una cate una." + +#: flatcamEditors/FlatCAMTextEditor.py:184 +msgid "Open file" +msgstr "Deschide fişierul" + +#: flatcamEditors/FlatCAMTextEditor.py:215 +#: flatcamEditors/FlatCAMTextEditor.py:220 +msgid "Export Code ..." +msgstr "Exportă GCode ..." + +#: flatcamEditors/FlatCAMTextEditor.py:272 flatcamObjects/FlatCAMCNCJob.py:955 +#: flatcamTools/ToolSolderPaste.py:1530 +msgid "No such file or directory" +msgstr "Nu exista un aşa fişier sau director" + +#: flatcamEditors/FlatCAMTextEditor.py:284 flatcamObjects/FlatCAMCNCJob.py:969 +msgid "Saved to" +msgstr "Salvat in" + +#: flatcamEditors/FlatCAMTextEditor.py:334 +msgid "Code Editor content copied to clipboard ..." +msgstr "Conținut Editor de cod copiat în clipboard ..." + +#: flatcamGUI/FlatCAMGUI.py:78 flatcamGUI/FlatCAMGUI.py:80 +#: flatcamGUI/FlatCAMGUI.py:2163 +msgid "Toggle Panel" +msgstr "Comută Panel" + +#: flatcamGUI/FlatCAMGUI.py:90 +msgid "File" +msgstr "Fişiere" + +#: flatcamGUI/FlatCAMGUI.py:95 +msgid "&New Project ...\tCtrl+N" +msgstr "&Proiect Nou...\tCtrl+N" + +#: flatcamGUI/FlatCAMGUI.py:97 +msgid "Will create a new, blank project" +msgstr "Se va crea un proiect nou, fără continut" + +#: flatcamGUI/FlatCAMGUI.py:102 +msgid "&New" +msgstr "&Nou" + +#: flatcamGUI/FlatCAMGUI.py:106 +msgid "Geometry\tN" +msgstr "Geometrie\tN" + +#: flatcamGUI/FlatCAMGUI.py:108 +msgid "Will create a new, empty Geometry Object." +msgstr "Va crea un obiect nou de tip Geometrie, fără continut." + +#: flatcamGUI/FlatCAMGUI.py:111 +msgid "Gerber\tB" +msgstr "Gerber\tB" + +#: flatcamGUI/FlatCAMGUI.py:113 +msgid "Will create a new, empty Gerber Object." +msgstr "Va crea un obiect nou de tip Gerber, fără continut." + +#: flatcamGUI/FlatCAMGUI.py:116 +msgid "Excellon\tL" +msgstr "Excellon\tL" + +#: flatcamGUI/FlatCAMGUI.py:118 +msgid "Will create a new, empty Excellon Object." +msgstr "Va crea un obiect nou de tip Excellon, fără continut." + +#: flatcamGUI/FlatCAMGUI.py:123 +msgid "Document\tD" +msgstr "Document\tD" + +#: flatcamGUI/FlatCAMGUI.py:125 +msgid "Will create a new, empty Document Object." +msgstr "Va crea un obiect nou de tip Document, fără continut." + +#: flatcamGUI/FlatCAMGUI.py:129 flatcamGUI/FlatCAMGUI.py:4420 +#: flatcamTools/ToolPcbWizard.py:62 flatcamTools/ToolPcbWizard.py:69 +msgid "Open" +msgstr "Încarcă" + +#: flatcamGUI/FlatCAMGUI.py:134 +msgid "Open &Project ..." +msgstr "Încarcă &Project ..." + +#: flatcamGUI/FlatCAMGUI.py:140 flatcamGUI/FlatCAMGUI.py:4430 +msgid "Open &Gerber ...\tCtrl+G" +msgstr "Încarcă &Gerber ...\tCtrl+G" + +#: flatcamGUI/FlatCAMGUI.py:145 flatcamGUI/FlatCAMGUI.py:4435 +msgid "Open &Excellon ...\tCtrl+E" +msgstr "Încarcă &Excellon ...\tCtrl+E" + +#: flatcamGUI/FlatCAMGUI.py:150 flatcamGUI/FlatCAMGUI.py:4440 +msgid "Open G-&Code ..." +msgstr "Încarcă G-&Code ..." + +#: flatcamGUI/FlatCAMGUI.py:157 +msgid "Open Config ..." +msgstr "Încarcă Config ..." + +#: flatcamGUI/FlatCAMGUI.py:162 +msgid "Recent projects" +msgstr "Proiectele recente" + +#: flatcamGUI/FlatCAMGUI.py:164 +msgid "Recent files" +msgstr "Fişierele Recente" + +#: flatcamGUI/FlatCAMGUI.py:167 flatcamGUI/FlatCAMGUI.py:753 +#: flatcamGUI/FlatCAMGUI.py:1339 +msgid "Save" +msgstr "Salvează" + +#: flatcamGUI/FlatCAMGUI.py:171 +msgid "&Save Project ...\tCtrl+S" +msgstr "Salvează Proiect ...\tCtrl+S" + +#: flatcamGUI/FlatCAMGUI.py:176 +msgid "Save Project &As ...\tCtrl+Shift+S" +msgstr "Salvează Proiect ca ...\tCtrl+Shift+S" + +#: flatcamGUI/FlatCAMGUI.py:191 +msgid "Scripting" +msgstr "Scripting" + +#: flatcamGUI/FlatCAMGUI.py:195 flatcamGUI/FlatCAMGUI.py:903 +#: flatcamGUI/FlatCAMGUI.py:2607 +msgid "New Script ..." +msgstr "Script nou ..." + +#: flatcamGUI/FlatCAMGUI.py:197 flatcamGUI/FlatCAMGUI.py:905 +#: flatcamGUI/FlatCAMGUI.py:2609 +msgid "Open Script ..." +msgstr "Încarcă &Script..." + +#: flatcamGUI/FlatCAMGUI.py:199 +msgid "Open Example ..." +msgstr "Deschideți exemplul ..." + +#: flatcamGUI/FlatCAMGUI.py:201 flatcamGUI/FlatCAMGUI.py:907 +#: flatcamGUI/FlatCAMGUI.py:2611 flatcamGUI/FlatCAMGUI.py:4409 +msgid "Run Script ..." +msgstr "Rulează Script..." + +#: flatcamGUI/FlatCAMGUI.py:203 flatcamGUI/FlatCAMGUI.py:4411 +msgid "" +"Will run the opened Tcl Script thus\n" +"enabling the automation of certain\n" +"functions of FlatCAM." +msgstr "" +"Va rula un script TCL astfel oferind\n" +"o automatizare a anumitor functii\n" +"din FlatCAM." + +#: flatcamGUI/FlatCAMGUI.py:218 +msgid "Import" +msgstr "Import" + +#: flatcamGUI/FlatCAMGUI.py:220 +msgid "&SVG as Geometry Object ..." +msgstr "&SVG ca și obiect Geometrie ..." + +#: flatcamGUI/FlatCAMGUI.py:223 +msgid "&SVG as Gerber Object ..." +msgstr "&SVG ca și obiect Gerber ..." + +#: flatcamGUI/FlatCAMGUI.py:228 +msgid "&DXF as Geometry Object ..." +msgstr "&DXF ca și obiect Geometrie ..." + +#: flatcamGUI/FlatCAMGUI.py:231 +msgid "&DXF as Gerber Object ..." +msgstr "&DXF ca și obiect Gerber ..." + +#: flatcamGUI/FlatCAMGUI.py:235 +msgid "HPGL2 as Geometry Object ..." +msgstr "HPGL2 ca obiect de geometrie ..." + +#: flatcamGUI/FlatCAMGUI.py:241 +msgid "Export" +msgstr "Export" + +#: flatcamGUI/FlatCAMGUI.py:245 +msgid "Export &SVG ..." +msgstr "Exporta &SVG ..." + +#: flatcamGUI/FlatCAMGUI.py:249 +msgid "Export DXF ..." +msgstr "Exporta DXF ..." + +#: flatcamGUI/FlatCAMGUI.py:255 +msgid "Export &PNG ..." +msgstr "Exporta &PNG ..." + +#: flatcamGUI/FlatCAMGUI.py:257 +msgid "" +"Will export an image in PNG format,\n" +"the saved image will contain the visual \n" +"information currently in FlatCAM Plot Area." +msgstr "" +"Va exporta o imagine in format PNG,\n" +"imagina salvata va contine elementele vizuale\n" +"afisate in zona de afișare." + +#: flatcamGUI/FlatCAMGUI.py:266 +msgid "Export &Excellon ..." +msgstr "Exporta Excellon ..." + +#: flatcamGUI/FlatCAMGUI.py:268 +msgid "" +"Will export an Excellon Object as Excellon file,\n" +"the coordinates format, the file units and zeros\n" +"are set in Preferences -> Excellon Export." +msgstr "" +"Va exporta un obiect Excellon intr-un fişier Excellon.\n" +"Formatul coordonatelor, unitatile de masura și tipul\n" +"de zerouri se vor seta in Preferințe -> Export Excellon." + +#: flatcamGUI/FlatCAMGUI.py:275 +msgid "Export &Gerber ..." +msgstr "Exporta &Gerber ..." + +#: flatcamGUI/FlatCAMGUI.py:277 +msgid "" +"Will export an Gerber Object as Gerber file,\n" +"the coordinates format, the file units and zeros\n" +"are set in Preferences -> Gerber Export." +msgstr "" +"Va exporta un obiect Gerber intr-un fişier Gerber.\n" +"Formatul coordonatelor, unitatile de măsură și tipul\n" +"de zerouri se vor seta in Preferințe -> Export Gerber." + +#: flatcamGUI/FlatCAMGUI.py:287 +msgid "Backup" +msgstr "Backup" + +#: flatcamGUI/FlatCAMGUI.py:292 +msgid "Import Preferences from file ..." +msgstr "Importați Preferințele din fișier ..." + +#: flatcamGUI/FlatCAMGUI.py:298 +msgid "Export Preferences to file ..." +msgstr "Exportați Preferințele într-un fișier ..." + +#: flatcamGUI/FlatCAMGUI.py:306 +#: flatcamGUI/preferences/PreferencesUIManager.py:1119 +msgid "Save Preferences" +msgstr "Salvează Pref" + +#: flatcamGUI/FlatCAMGUI.py:312 flatcamGUI/FlatCAMGUI.py:1730 +msgid "Print (PDF)" +msgstr "Tipărire (PDF)" + +#: flatcamGUI/FlatCAMGUI.py:320 +msgid "E&xit" +msgstr "Iesire" + +#: flatcamGUI/FlatCAMGUI.py:328 flatcamGUI/FlatCAMGUI.py:747 +#: flatcamGUI/FlatCAMGUI.py:2286 +msgid "Edit" +msgstr "Editează" + +#: flatcamGUI/FlatCAMGUI.py:332 +msgid "Edit Object\tE" +msgstr "Editare Obiect\tE" + +#: flatcamGUI/FlatCAMGUI.py:334 +msgid "Close Editor\tCtrl+S" +msgstr "Salvează Editor\tCtrl+S" + +#: flatcamGUI/FlatCAMGUI.py:343 +msgid "Conversion" +msgstr "Conversii" + +#: flatcamGUI/FlatCAMGUI.py:345 +msgid "&Join Geo/Gerber/Exc -> Geo" +msgstr "&Fuzionează Geo/Gerber/Exc -> Geo" + +#: flatcamGUI/FlatCAMGUI.py:347 +msgid "" +"Merge a selection of objects, which can be of type:\n" +"- Gerber\n" +"- Excellon\n" +"- Geometry\n" +"into a new combo Geometry object." +msgstr "" +"Fuzionează o selecţie de obiecte care pot fi de tipul:\n" +"- Gerber\n" +"- Excellon\n" +"- Geometrie\n" +"intr-un nou obiect tip Geometrie >combo<." + +#: flatcamGUI/FlatCAMGUI.py:354 +msgid "Join Excellon(s) -> Excellon" +msgstr "Fuzionează Excellon(s) -> Excellon" + +#: flatcamGUI/FlatCAMGUI.py:356 +msgid "Merge a selection of Excellon objects into a new combo Excellon object." +msgstr "" +"Fuzionează o selecţie de obiecte Excellon intr-un nou obiect Excellon " +">combo<." + +#: flatcamGUI/FlatCAMGUI.py:359 +msgid "Join Gerber(s) -> Gerber" +msgstr "Fuzionează Gerber(s) -> Gerber" + +#: flatcamGUI/FlatCAMGUI.py:361 +msgid "Merge a selection of Gerber objects into a new combo Gerber object." +msgstr "" +"Fuzionează o selecţie de obiecte Gerber intr-un nou obiect Gerber >combo<." + +#: flatcamGUI/FlatCAMGUI.py:366 +msgid "Convert Single to MultiGeo" +msgstr "Converteste SingleGeo in MultiGeo" + +#: flatcamGUI/FlatCAMGUI.py:368 +msgid "" +"Will convert a Geometry object from single_geometry type\n" +"to a multi_geometry type." +msgstr "" +"Va converti un obiect Geometrie din tipul simpla geometrie (SingleGeo)\n" +"la tipul geometrie complexa (MultiGeo)." + +#: flatcamGUI/FlatCAMGUI.py:372 +msgid "Convert Multi to SingleGeo" +msgstr "Converteste MultiGeo in SingleGeo" + +#: flatcamGUI/FlatCAMGUI.py:374 +msgid "" +"Will convert a Geometry object from multi_geometry type\n" +"to a single_geometry type." +msgstr "" +"Va converti un obiect Geometrie din tipul geometrie complexa (MultiGeo)\n" +"la tipul geometrie simpla (SingleGeo)." + +#: flatcamGUI/FlatCAMGUI.py:381 +msgid "Convert Any to Geo" +msgstr "Converteste Oricare to Geo" + +#: flatcamGUI/FlatCAMGUI.py:384 +msgid "Convert Any to Gerber" +msgstr "Converteste Oricare in Gerber" + +#: flatcamGUI/FlatCAMGUI.py:390 +msgid "&Copy\tCtrl+C" +msgstr "&Copiază\tCtrl+C" + +#: flatcamGUI/FlatCAMGUI.py:395 +msgid "&Delete\tDEL" +msgstr "&Șterge\tDEL" + +#: flatcamGUI/FlatCAMGUI.py:400 +msgid "Se&t Origin\tO" +msgstr "Se&tează Originea\tO" + +#: flatcamGUI/FlatCAMGUI.py:402 +msgid "Move to Origin\tShift+O" +msgstr "Deplasează la Origine\tShift+O" + +#: flatcamGUI/FlatCAMGUI.py:405 +msgid "Jump to Location\tJ" +msgstr "Sari la Locaţie\tJ" + +#: flatcamGUI/FlatCAMGUI.py:407 +msgid "Locate in Object\tShift+J" +msgstr "Localizează in Obiect\tShift+J" + +#: flatcamGUI/FlatCAMGUI.py:412 +msgid "Toggle Units\tQ" +msgstr "Comută Unitati\tQ" + +#: flatcamGUI/FlatCAMGUI.py:414 +msgid "&Select All\tCtrl+A" +msgstr "&Selectează Tot\tCtrl+A" + +#: flatcamGUI/FlatCAMGUI.py:419 +msgid "&Preferences\tShift+P" +msgstr "&Preferințe\tShift+P" + +#: flatcamGUI/FlatCAMGUI.py:425 flatcamTools/ToolProperties.py:155 +msgid "Options" +msgstr "Opțiuni" + +#: flatcamGUI/FlatCAMGUI.py:427 +msgid "&Rotate Selection\tShift+(R)" +msgstr "&Roteste Selectia\tShift+(R)" + +#: flatcamGUI/FlatCAMGUI.py:432 +msgid "&Skew on X axis\tShift+X" +msgstr "&Deformează pe axa X\tShift+X" + +#: flatcamGUI/FlatCAMGUI.py:434 +msgid "S&kew on Y axis\tShift+Y" +msgstr "Deformează pe axa Y\tShift+Y" + +#: flatcamGUI/FlatCAMGUI.py:439 +msgid "Flip on &X axis\tX" +msgstr "Oglindește pe axa &X\tX" + +#: flatcamGUI/FlatCAMGUI.py:441 +msgid "Flip on &Y axis\tY" +msgstr "Oglindește pe axa &Y\tY" + +#: flatcamGUI/FlatCAMGUI.py:446 +msgid "View source\tAlt+S" +msgstr "Vezi sursa\tAlt+S" + +#: flatcamGUI/FlatCAMGUI.py:448 +msgid "Tools DataBase\tCtrl+D" +msgstr "Baza de data Unelte\tCtrl+D" + +#: flatcamGUI/FlatCAMGUI.py:455 flatcamGUI/FlatCAMGUI.py:2183 +msgid "View" +msgstr "Vizualizare" + +#: flatcamGUI/FlatCAMGUI.py:457 +msgid "Enable all plots\tAlt+1" +msgstr "Activează toate afişările\tAlt+1" + +#: flatcamGUI/FlatCAMGUI.py:459 +msgid "Disable all plots\tAlt+2" +msgstr "Dezactivează toate afişările\tAlt+2" + +#: flatcamGUI/FlatCAMGUI.py:461 +msgid "Disable non-selected\tAlt+3" +msgstr "Dezactivează non-selectate\tAlt+3" + +#: flatcamGUI/FlatCAMGUI.py:465 +msgid "&Zoom Fit\tV" +msgstr "&Mărește și potrivește\tV" + +#: flatcamGUI/FlatCAMGUI.py:467 +msgid "&Zoom In\t=" +msgstr "&Măreste\t=" + +#: flatcamGUI/FlatCAMGUI.py:469 +msgid "&Zoom Out\t-" +msgstr "&Micșorează\t-" + +#: flatcamGUI/FlatCAMGUI.py:474 +msgid "Redraw All\tF5" +msgstr "Reafisare Toate\tF5" + +#: flatcamGUI/FlatCAMGUI.py:478 +msgid "Toggle Code Editor\tShift+E" +msgstr "Comută Editorul de cod\tShift+E" + +#: flatcamGUI/FlatCAMGUI.py:481 +msgid "&Toggle FullScreen\tAlt+F10" +msgstr "Comută FullScreen\tAlt+F10" + +#: flatcamGUI/FlatCAMGUI.py:483 +msgid "&Toggle Plot Area\tCtrl+F10" +msgstr "Comută Aria de Afișare\tCtrl+F10" + +#: flatcamGUI/FlatCAMGUI.py:485 +msgid "&Toggle Project/Sel/Tool\t`" +msgstr "Comută Proiect/Sel/Unealta\t`" + +#: flatcamGUI/FlatCAMGUI.py:489 +msgid "&Toggle Grid Snap\tG" +msgstr "Comută Grid\tG" + +#: flatcamGUI/FlatCAMGUI.py:491 +msgid "&Toggle Grid Lines\tAlt+G" +msgstr "Comută Linii Grid\tAlt+G" + +#: flatcamGUI/FlatCAMGUI.py:493 +msgid "&Toggle Axis\tShift+G" +msgstr "Comută Axe\tShift+G" + +#: flatcamGUI/FlatCAMGUI.py:495 +msgid "Toggle Workspace\tShift+W" +msgstr "Comută Suprafata de lucru\tShift+W" + +#: flatcamGUI/FlatCAMGUI.py:500 +msgid "Objects" +msgstr "Obiecte" + +#: flatcamGUI/FlatCAMGUI.py:514 +msgid "&Command Line\tS" +msgstr "&Linie de comanda\tS" + +#: flatcamGUI/FlatCAMGUI.py:519 +msgid "Help" +msgstr "Ajutor" + +#: flatcamGUI/FlatCAMGUI.py:521 +msgid "Online Help\tF1" +msgstr "Resurse online\tF1" + +#: flatcamGUI/FlatCAMGUI.py:531 +msgid "Report a bug" +msgstr "Raportati o eroare program" + +#: flatcamGUI/FlatCAMGUI.py:534 +msgid "Excellon Specification" +msgstr "Specificatii Excellon" + +#: flatcamGUI/FlatCAMGUI.py:536 +msgid "Gerber Specification" +msgstr "Specificatii Gerber" + +#: flatcamGUI/FlatCAMGUI.py:541 +msgid "Shortcuts List\tF3" +msgstr "Lista shortcut-uri\tF3" + +#: flatcamGUI/FlatCAMGUI.py:543 +msgid "YouTube Channel\tF4" +msgstr "YouTube \tF4" + +#: flatcamGUI/FlatCAMGUI.py:554 +msgid "Add Circle\tO" +msgstr "Adaugă Cerc\tO" + +#: flatcamGUI/FlatCAMGUI.py:557 +msgid "Add Arc\tA" +msgstr "Adaugă Arc\tA" + +#: flatcamGUI/FlatCAMGUI.py:560 +msgid "Add Rectangle\tR" +msgstr "Adaugă Patrulater\tR" + +#: flatcamGUI/FlatCAMGUI.py:563 +msgid "Add Polygon\tN" +msgstr "Adaugă Poligon\tN" + +#: flatcamGUI/FlatCAMGUI.py:566 +msgid "Add Path\tP" +msgstr "Adaugă Cale\tP" + +#: flatcamGUI/FlatCAMGUI.py:569 +msgid "Add Text\tT" +msgstr "Adaugă Text\tT" + +#: flatcamGUI/FlatCAMGUI.py:572 +msgid "Polygon Union\tU" +msgstr "Uniune Poligoane\tU" + +#: flatcamGUI/FlatCAMGUI.py:574 +msgid "Polygon Intersection\tE" +msgstr "Intersecţie Poligoane\tE" + +#: flatcamGUI/FlatCAMGUI.py:576 +msgid "Polygon Subtraction\tS" +msgstr "Substracţie Poligoane\tS" + +#: flatcamGUI/FlatCAMGUI.py:580 +msgid "Cut Path\tX" +msgstr "Tăiere Cale\tX" + +#: flatcamGUI/FlatCAMGUI.py:584 +msgid "Copy Geom\tC" +msgstr "Copiază Geo\tC" + +#: flatcamGUI/FlatCAMGUI.py:586 +msgid "Delete Shape\tDEL" +msgstr "Șterge forma Geo.\tDEL" + +#: flatcamGUI/FlatCAMGUI.py:590 flatcamGUI/FlatCAMGUI.py:677 +msgid "Move\tM" +msgstr "Muta\tM" + +#: flatcamGUI/FlatCAMGUI.py:592 +msgid "Buffer Tool\tB" +msgstr "Unealta Bufer\tB" + +#: flatcamGUI/FlatCAMGUI.py:595 +msgid "Paint Tool\tI" +msgstr "Unealta Paint\tI" + +#: flatcamGUI/FlatCAMGUI.py:598 +msgid "Transform Tool\tAlt+R" +msgstr "Unealta Transformare\tAlt+R" + +#: flatcamGUI/FlatCAMGUI.py:602 +msgid "Toggle Corner Snap\tK" +msgstr "Comută lipire colt\tK" + +#: flatcamGUI/FlatCAMGUI.py:608 +msgid ">Excellon Editor<" +msgstr ">Editor Excellon<" + +#: flatcamGUI/FlatCAMGUI.py:612 +msgid "Add Drill Array\tA" +msgstr "Adaugă Arie Găuriri\tA" + +#: flatcamGUI/FlatCAMGUI.py:614 +msgid "Add Drill\tD" +msgstr "Adaugă Găurire\tD" + +#: flatcamGUI/FlatCAMGUI.py:618 +msgid "Add Slot Array\tQ" +msgstr "Adăugați Arie de Sloturi\tQ" + +#: flatcamGUI/FlatCAMGUI.py:620 +msgid "Add Slot\tW" +msgstr "Adăugați Slot\tW" + +#: flatcamGUI/FlatCAMGUI.py:624 +msgid "Resize Drill(S)\tR" +msgstr "Redimens. Găuriri\tR" + +#: flatcamGUI/FlatCAMGUI.py:627 flatcamGUI/FlatCAMGUI.py:671 +msgid "Copy\tC" +msgstr "Copiază\tC" + +#: flatcamGUI/FlatCAMGUI.py:629 flatcamGUI/FlatCAMGUI.py:673 +msgid "Delete\tDEL" +msgstr "Șterge\tDEL" + +#: flatcamGUI/FlatCAMGUI.py:634 +msgid "Move Drill(s)\tM" +msgstr "Muta Găuriri\tM" + +#: flatcamGUI/FlatCAMGUI.py:639 +msgid ">Gerber Editor<" +msgstr ">Editor Gerber<" + +#: flatcamGUI/FlatCAMGUI.py:643 +msgid "Add Pad\tP" +msgstr "Adaugă Pad\tP" + +#: flatcamGUI/FlatCAMGUI.py:645 +msgid "Add Pad Array\tA" +msgstr "Adaugă Arie paduri\tA" + +#: flatcamGUI/FlatCAMGUI.py:647 +msgid "Add Track\tT" +msgstr "Adaugă Traseu\tA" + +#: flatcamGUI/FlatCAMGUI.py:649 +msgid "Add Region\tN" +msgstr "Adaugă Regiune\tN" + +#: flatcamGUI/FlatCAMGUI.py:653 +msgid "Poligonize\tAlt+N" +msgstr "Poligonizare\tAlt+N" + +#: flatcamGUI/FlatCAMGUI.py:655 +msgid "Add SemiDisc\tE" +msgstr "Adaugă SemiDisc\tE" + +#: flatcamGUI/FlatCAMGUI.py:657 +msgid "Add Disc\tD" +msgstr "Adaugă Disc\tD" + +#: flatcamGUI/FlatCAMGUI.py:659 +msgid "Buffer\tB" +msgstr "Bufer\tB" + +#: flatcamGUI/FlatCAMGUI.py:661 +msgid "Scale\tS" +msgstr "Scalare\tS" + +#: flatcamGUI/FlatCAMGUI.py:663 +msgid "Mark Area\tAlt+A" +msgstr "Marchează aria\tAlt+A" + +#: flatcamGUI/FlatCAMGUI.py:665 +msgid "Eraser\tCtrl+E" +msgstr "Radieră\tCtrl+E" + +#: flatcamGUI/FlatCAMGUI.py:667 +msgid "Transform\tAlt+R" +msgstr "Unealta Transformare\tAlt+R" + +#: flatcamGUI/FlatCAMGUI.py:694 +msgid "Enable Plot" +msgstr "Activează Afișare" + +#: flatcamGUI/FlatCAMGUI.py:696 +msgid "Disable Plot" +msgstr "Dezactivează Afișare" + +#: flatcamGUI/FlatCAMGUI.py:700 +msgid "Set Color" +msgstr "Setați culoarea" + +#: flatcamGUI/FlatCAMGUI.py:742 +msgid "Generate CNC" +msgstr "Generează CNC" + +#: flatcamGUI/FlatCAMGUI.py:744 +msgid "View Source" +msgstr "Vizualiz. Sursa" + +#: flatcamGUI/FlatCAMGUI.py:749 flatcamGUI/FlatCAMGUI.py:863 +#: flatcamGUI/FlatCAMGUI.py:1072 flatcamGUI/FlatCAMGUI.py:2138 +#: flatcamGUI/FlatCAMGUI.py:2282 flatcamGUI/FlatCAMGUI.py:2572 +#: flatcamGUI/FlatCAMGUI.py:2775 flatcamGUI/ObjectUI.py:1617 +#: flatcamObjects/FlatCAMGeometry.py:502 flatcamTools/ToolPanelize.py:540 +#: flatcamTools/ToolPanelize.py:567 flatcamTools/ToolPanelize.py:660 +#: flatcamTools/ToolPanelize.py:689 flatcamTools/ToolPanelize.py:751 +msgid "Copy" +msgstr "Copiază" + +#: flatcamGUI/FlatCAMGUI.py:757 flatcamGUI/FlatCAMGUI.py:2295 +#: flatcamTools/ToolProperties.py:31 +msgid "Properties" +msgstr "Proprietati" + +#: flatcamGUI/FlatCAMGUI.py:786 +msgid "File Toolbar" +msgstr "Toolbar Fişiere" + +#: flatcamGUI/FlatCAMGUI.py:790 +msgid "Edit Toolbar" +msgstr "Toolbar Editare" + +#: flatcamGUI/FlatCAMGUI.py:794 +msgid "View Toolbar" +msgstr "Toolbar Vizualizare" + +#: flatcamGUI/FlatCAMGUI.py:798 +msgid "Shell Toolbar" +msgstr "Toolbar Linie de comanda" + +#: flatcamGUI/FlatCAMGUI.py:802 +msgid "Tools Toolbar" +msgstr "Toolbar Unelte" + +#: flatcamGUI/FlatCAMGUI.py:806 +msgid "Excellon Editor Toolbar" +msgstr "Toolbar Editor Excellon" + +#: flatcamGUI/FlatCAMGUI.py:812 +msgid "Geometry Editor Toolbar" +msgstr "Toolbar Editor Geometrii" + +#: flatcamGUI/FlatCAMGUI.py:816 +msgid "Gerber Editor Toolbar" +msgstr "Toolbar Editor Gerber" + +#: flatcamGUI/FlatCAMGUI.py:820 +msgid "Grid Toolbar" +msgstr "Toolbar Grid-uri" + +#: flatcamGUI/FlatCAMGUI.py:841 flatcamGUI/FlatCAMGUI.py:2549 +msgid "Open project" +msgstr "Încarcă Proiect" + +#: flatcamGUI/FlatCAMGUI.py:843 flatcamGUI/FlatCAMGUI.py:2551 +msgid "Save project" +msgstr "Salvează Proiect" + +#: flatcamGUI/FlatCAMGUI.py:849 flatcamGUI/FlatCAMGUI.py:2557 +msgid "New Blank Geometry" +msgstr "Geometrie Noua (goală)" + +#: flatcamGUI/FlatCAMGUI.py:851 flatcamGUI/FlatCAMGUI.py:2559 +msgid "New Blank Gerber" +msgstr "Gerber Nou (gol)" + +#: flatcamGUI/FlatCAMGUI.py:853 flatcamGUI/FlatCAMGUI.py:2561 +msgid "New Blank Excellon" +msgstr "Excellon nou (gol)" + +#: flatcamGUI/FlatCAMGUI.py:858 flatcamGUI/FlatCAMGUI.py:2567 +msgid "Save Object and close the Editor" +msgstr "Salvează Obiectul și inchide Editorul" + +#: flatcamGUI/FlatCAMGUI.py:865 flatcamGUI/FlatCAMGUI.py:2574 +msgid "&Delete" +msgstr "&Șterge" + +#: flatcamGUI/FlatCAMGUI.py:868 flatcamGUI/FlatCAMGUI.py:1729 +#: flatcamGUI/FlatCAMGUI.py:1935 flatcamGUI/FlatCAMGUI.py:2577 +#: flatcamTools/ToolDistance.py:35 flatcamTools/ToolDistance.py:195 +msgid "Distance Tool" +msgstr "Unealta Distanță" + +#: flatcamGUI/FlatCAMGUI.py:870 flatcamGUI/FlatCAMGUI.py:2579 +msgid "Distance Min Tool" +msgstr "Unealta Distanță min" + +#: flatcamGUI/FlatCAMGUI.py:872 flatcamGUI/FlatCAMGUI.py:1722 +#: flatcamGUI/FlatCAMGUI.py:2581 +msgid "Set Origin" +msgstr "Setează Originea" + +#: flatcamGUI/FlatCAMGUI.py:874 +msgid "Move to Origin" +msgstr "Deplasează-te la Origine" + +#: flatcamGUI/FlatCAMGUI.py:877 flatcamGUI/FlatCAMGUI.py:2583 +msgid "Jump to Location" +msgstr "Sari la Locaţie" + +#: flatcamGUI/FlatCAMGUI.py:879 flatcamGUI/FlatCAMGUI.py:1734 +#: flatcamGUI/FlatCAMGUI.py:2585 +msgid "Locate in Object" +msgstr "Localizează in Obiect" + +#: flatcamGUI/FlatCAMGUI.py:885 flatcamGUI/FlatCAMGUI.py:2591 +msgid "&Replot" +msgstr "&Reafișare" + +#: flatcamGUI/FlatCAMGUI.py:887 flatcamGUI/FlatCAMGUI.py:2593 +msgid "&Clear plot" +msgstr "&Șterge Afișare" + +#: flatcamGUI/FlatCAMGUI.py:889 flatcamGUI/FlatCAMGUI.py:1725 +#: flatcamGUI/FlatCAMGUI.py:2595 +msgid "Zoom In" +msgstr "Marire" + +#: flatcamGUI/FlatCAMGUI.py:891 flatcamGUI/FlatCAMGUI.py:1725 +#: flatcamGUI/FlatCAMGUI.py:2597 +msgid "Zoom Out" +msgstr "Micsorare" + +#: flatcamGUI/FlatCAMGUI.py:893 flatcamGUI/FlatCAMGUI.py:1724 +#: flatcamGUI/FlatCAMGUI.py:2185 flatcamGUI/FlatCAMGUI.py:2599 +msgid "Zoom Fit" +msgstr "Marire și ajustare" + +#: flatcamGUI/FlatCAMGUI.py:901 flatcamGUI/FlatCAMGUI.py:2605 +msgid "&Command Line" +msgstr "&Linie de comanda" + +#: flatcamGUI/FlatCAMGUI.py:913 flatcamGUI/FlatCAMGUI.py:2617 +msgid "2Sided Tool" +msgstr "Unealta 2-fețe" + +#: flatcamGUI/FlatCAMGUI.py:915 flatcamGUI/FlatCAMGUI.py:1740 +#: flatcamGUI/FlatCAMGUI.py:2619 +msgid "Align Objects Tool" +msgstr "Unealta de Aliniere" + +#: flatcamGUI/FlatCAMGUI.py:917 flatcamGUI/FlatCAMGUI.py:1741 +#: flatcamGUI/FlatCAMGUI.py:2621 flatcamTools/ToolExtractDrills.py:393 +msgid "Extract Drills Tool" +msgstr "Unealta de Extragere Găuri" + +#: flatcamGUI/FlatCAMGUI.py:920 flatcamGUI/ObjectUI.py:596 +#: flatcamTools/ToolCutOut.py:440 +msgid "Cutout Tool" +msgstr "Unealta Decupare" + +#: flatcamGUI/FlatCAMGUI.py:922 flatcamGUI/FlatCAMGUI.py:2626 +#: flatcamGUI/ObjectUI.py:574 flatcamGUI/ObjectUI.py:2157 +#: flatcamTools/ToolNCC.py:974 +msgid "NCC Tool" +msgstr "Unealta NCC" + +#: flatcamGUI/FlatCAMGUI.py:928 flatcamGUI/FlatCAMGUI.py:2632 +msgid "Panel Tool" +msgstr "Unealta Panel" + +#: flatcamGUI/FlatCAMGUI.py:930 flatcamGUI/FlatCAMGUI.py:2634 +#: flatcamTools/ToolFilm.py:586 +msgid "Film Tool" +msgstr "Unealta Film" + +#: flatcamGUI/FlatCAMGUI.py:932 flatcamGUI/FlatCAMGUI.py:2636 +#: flatcamTools/ToolSolderPaste.py:553 +msgid "SolderPaste Tool" +msgstr "Unealta Dispenser SP" + +#: flatcamGUI/FlatCAMGUI.py:934 flatcamGUI/FlatCAMGUI.py:2638 +#: flatcamTools/ToolSub.py:35 +msgid "Subtract Tool" +msgstr "Unealta Scădere" + +#: flatcamGUI/FlatCAMGUI.py:936 flatcamGUI/FlatCAMGUI.py:2640 +#: flatcamTools/ToolRulesCheck.py:616 +msgid "Rules Tool" +msgstr "Unalta Verif. Reguli" + +#: flatcamGUI/FlatCAMGUI.py:938 flatcamGUI/FlatCAMGUI.py:1743 +#: flatcamGUI/FlatCAMGUI.py:2642 flatcamTools/ToolOptimal.py:33 +#: flatcamTools/ToolOptimal.py:307 +msgid "Optimal Tool" +msgstr "Unealta Optim" + +#: flatcamGUI/FlatCAMGUI.py:943 flatcamGUI/FlatCAMGUI.py:1740 +#: flatcamGUI/FlatCAMGUI.py:2647 +msgid "Calculators Tool" +msgstr "Unealta Calculatoare" + +#: flatcamGUI/FlatCAMGUI.py:947 flatcamGUI/FlatCAMGUI.py:1744 +#: flatcamGUI/FlatCAMGUI.py:2651 flatcamTools/ToolQRCode.py:43 +#: flatcamTools/ToolQRCode.py:382 +msgid "QRCode Tool" +msgstr "Unealta QRCode" + +#: flatcamGUI/FlatCAMGUI.py:949 flatcamGUI/FlatCAMGUI.py:2653 +#: flatcamTools/ToolCopperThieving.py:39 flatcamTools/ToolCopperThieving.py:568 +msgid "Copper Thieving Tool" +msgstr "Unealta Copper Thieving" + +#: flatcamGUI/FlatCAMGUI.py:952 flatcamGUI/FlatCAMGUI.py:1741 +#: flatcamGUI/FlatCAMGUI.py:2656 flatcamTools/ToolFiducials.py:33 +#: flatcamTools/ToolFiducials.py:395 +msgid "Fiducials Tool" +msgstr "Unealta Fiducials" + +#: flatcamGUI/FlatCAMGUI.py:954 flatcamGUI/FlatCAMGUI.py:2658 +#: flatcamTools/ToolCalibration.py:37 flatcamTools/ToolCalibration.py:759 +msgid "Calibration Tool" +msgstr "Unealta Calibrare" + +#: flatcamGUI/FlatCAMGUI.py:956 flatcamGUI/FlatCAMGUI.py:1741 +#: flatcamGUI/FlatCAMGUI.py:2660 +msgid "Punch Gerber Tool" +msgstr "Unealta Punctare Gerber" + +#: flatcamGUI/FlatCAMGUI.py:958 flatcamGUI/FlatCAMGUI.py:2662 +#: flatcamTools/ToolInvertGerber.py:31 +msgid "Invert Gerber Tool" +msgstr "Unealta Inversare Gerber" + +#: flatcamGUI/FlatCAMGUI.py:964 flatcamGUI/FlatCAMGUI.py:990 +#: flatcamGUI/FlatCAMGUI.py:1042 flatcamGUI/FlatCAMGUI.py:2668 +#: flatcamGUI/FlatCAMGUI.py:2746 +msgid "Select" +msgstr "Selectează" + +#: flatcamGUI/FlatCAMGUI.py:966 flatcamGUI/FlatCAMGUI.py:2670 +msgid "Add Drill Hole" +msgstr "Adaugă o Găurire" + +#: flatcamGUI/FlatCAMGUI.py:968 flatcamGUI/FlatCAMGUI.py:2672 +msgid "Add Drill Hole Array" +msgstr "Adaugă o arie de Găuriri" + +#: flatcamGUI/FlatCAMGUI.py:970 flatcamGUI/FlatCAMGUI.py:2020 +#: flatcamGUI/FlatCAMGUI.py:2273 flatcamGUI/FlatCAMGUI.py:2676 +msgid "Add Slot" +msgstr "Adaugă Slot" + +#: flatcamGUI/FlatCAMGUI.py:972 flatcamGUI/FlatCAMGUI.py:2019 +#: flatcamGUI/FlatCAMGUI.py:2275 flatcamGUI/FlatCAMGUI.py:2678 +msgid "Add Slot Array" +msgstr "Adaugă o Arie sloturi" + +#: flatcamGUI/FlatCAMGUI.py:974 flatcamGUI/FlatCAMGUI.py:2278 +#: flatcamGUI/FlatCAMGUI.py:2674 +msgid "Resize Drill" +msgstr "Redimens. Găurire" + +#: flatcamGUI/FlatCAMGUI.py:978 flatcamGUI/FlatCAMGUI.py:2682 +msgid "Copy Drill" +msgstr "Copiază Găurire" + +#: flatcamGUI/FlatCAMGUI.py:980 flatcamGUI/FlatCAMGUI.py:2684 +msgid "Delete Drill" +msgstr "Șterge Găurire" + +#: flatcamGUI/FlatCAMGUI.py:984 flatcamGUI/FlatCAMGUI.py:2688 +msgid "Move Drill" +msgstr "Muta Găurire" + +#: flatcamGUI/FlatCAMGUI.py:992 flatcamGUI/FlatCAMGUI.py:2696 +msgid "Add Circle" +msgstr "Adaugă Cerc" + +#: flatcamGUI/FlatCAMGUI.py:994 flatcamGUI/FlatCAMGUI.py:2698 +msgid "Add Arc" +msgstr "Adaugă Arc" + +#: flatcamGUI/FlatCAMGUI.py:996 flatcamGUI/FlatCAMGUI.py:2700 +msgid "Add Rectangle" +msgstr "Adaugă Patrulater" + +#: flatcamGUI/FlatCAMGUI.py:1000 flatcamGUI/FlatCAMGUI.py:2704 +msgid "Add Path" +msgstr "Adaugă Cale" + +#: flatcamGUI/FlatCAMGUI.py:1002 flatcamGUI/FlatCAMGUI.py:2706 +msgid "Add Polygon" +msgstr "Adaugă Poligon" + +#: flatcamGUI/FlatCAMGUI.py:1005 flatcamGUI/FlatCAMGUI.py:2709 +msgid "Add Text" +msgstr "Adaugă Text" + +#: flatcamGUI/FlatCAMGUI.py:1007 flatcamGUI/FlatCAMGUI.py:2711 +msgid "Add Buffer" +msgstr "Adaugă Bufer" + +#: flatcamGUI/FlatCAMGUI.py:1009 flatcamGUI/FlatCAMGUI.py:2713 +msgid "Paint Shape" +msgstr "Paint o forma" + +#: flatcamGUI/FlatCAMGUI.py:1011 flatcamGUI/FlatCAMGUI.py:1068 +#: flatcamGUI/FlatCAMGUI.py:2214 flatcamGUI/FlatCAMGUI.py:2259 +#: flatcamGUI/FlatCAMGUI.py:2715 flatcamGUI/FlatCAMGUI.py:2771 +msgid "Eraser" +msgstr "Stergere Selectivă" + +#: flatcamGUI/FlatCAMGUI.py:1015 flatcamGUI/FlatCAMGUI.py:2719 +msgid "Polygon Union" +msgstr "Uniune Poligoane" + +#: flatcamGUI/FlatCAMGUI.py:1017 flatcamGUI/FlatCAMGUI.py:2721 +msgid "Polygon Explode" +msgstr "Explodare Poligoane" + +#: flatcamGUI/FlatCAMGUI.py:1020 flatcamGUI/FlatCAMGUI.py:2724 +msgid "Polygon Intersection" +msgstr "Intersecţie Poligoane" + +#: flatcamGUI/FlatCAMGUI.py:1022 flatcamGUI/FlatCAMGUI.py:2726 +msgid "Polygon Subtraction" +msgstr "Substracţie Poligoane" + +#: flatcamGUI/FlatCAMGUI.py:1026 flatcamGUI/FlatCAMGUI.py:2730 +msgid "Cut Path" +msgstr "Taie Cale" + +#: flatcamGUI/FlatCAMGUI.py:1028 +msgid "Copy Shape(s)" +msgstr "Copiază forme geo." + +#: flatcamGUI/FlatCAMGUI.py:1031 +msgid "Delete Shape '-'" +msgstr "Șterge forme geo" + +#: flatcamGUI/FlatCAMGUI.py:1033 flatcamGUI/FlatCAMGUI.py:1076 +#: flatcamGUI/FlatCAMGUI.py:2226 flatcamGUI/FlatCAMGUI.py:2263 +#: flatcamGUI/FlatCAMGUI.py:2736 flatcamGUI/FlatCAMGUI.py:2779 +#: flatcamGUI/ObjectUI.py:109 +msgid "Transformations" +msgstr "Transformări" + +#: flatcamGUI/FlatCAMGUI.py:1036 +msgid "Move Objects " +msgstr "Mută Obiecte " + +#: flatcamGUI/FlatCAMGUI.py:1044 flatcamGUI/FlatCAMGUI.py:2139 +#: flatcamGUI/FlatCAMGUI.py:2748 +msgid "Add Pad" +msgstr "Adaugă Pad" + +#: flatcamGUI/FlatCAMGUI.py:1048 flatcamGUI/FlatCAMGUI.py:2140 +#: flatcamGUI/FlatCAMGUI.py:2752 +msgid "Add Track" +msgstr "Adaugă Traseu" + +#: flatcamGUI/FlatCAMGUI.py:1050 flatcamGUI/FlatCAMGUI.py:2139 +#: flatcamGUI/FlatCAMGUI.py:2754 +msgid "Add Region" +msgstr "Adaugă Regiune" + +#: flatcamGUI/FlatCAMGUI.py:1052 flatcamGUI/FlatCAMGUI.py:2245 +#: flatcamGUI/FlatCAMGUI.py:2756 +msgid "Poligonize" +msgstr "Poligonizare" + +#: flatcamGUI/FlatCAMGUI.py:1055 flatcamGUI/FlatCAMGUI.py:2247 +#: flatcamGUI/FlatCAMGUI.py:2759 +msgid "SemiDisc" +msgstr "SemiDisc" + +#: flatcamGUI/FlatCAMGUI.py:1057 flatcamGUI/FlatCAMGUI.py:2249 +#: flatcamGUI/FlatCAMGUI.py:2761 +msgid "Disc" +msgstr "Disc" + +#: flatcamGUI/FlatCAMGUI.py:1065 flatcamGUI/FlatCAMGUI.py:2257 +#: flatcamGUI/FlatCAMGUI.py:2769 +msgid "Mark Area" +msgstr "Marc. aria" + +#: flatcamGUI/FlatCAMGUI.py:1079 flatcamGUI/FlatCAMGUI.py:2139 +#: flatcamGUI/FlatCAMGUI.py:2230 flatcamGUI/FlatCAMGUI.py:2293 +#: flatcamGUI/FlatCAMGUI.py:2782 flatcamTools/ToolMove.py:27 +msgid "Move" +msgstr "Mutare" + +#: flatcamGUI/FlatCAMGUI.py:1087 flatcamGUI/FlatCAMGUI.py:2791 +msgid "Snap to grid" +msgstr "Lipire la grid" + +#: flatcamGUI/FlatCAMGUI.py:1090 flatcamGUI/FlatCAMGUI.py:2794 +msgid "Grid X snapping distance" +msgstr "Distanta de lipire la grid pe axa X" + +#: flatcamGUI/FlatCAMGUI.py:1095 flatcamGUI/FlatCAMGUI.py:2799 +msgid "Grid Y snapping distance" +msgstr "Distanta de lipire la grid pe axa Y" + +#: flatcamGUI/FlatCAMGUI.py:1101 flatcamGUI/FlatCAMGUI.py:2805 +msgid "" +"When active, value on Grid_X\n" +"is copied to the Grid_Y value." +msgstr "" +"Când este activ, valoarea de pe Grid_X\n" +"este copiata și in Grid_Y." + +#: flatcamGUI/FlatCAMGUI.py:1108 flatcamGUI/FlatCAMGUI.py:2812 +msgid "Snap to corner" +msgstr "Lipire la colt" + +#: flatcamGUI/FlatCAMGUI.py:1112 flatcamGUI/FlatCAMGUI.py:2816 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:78 +msgid "Max. magnet distance" +msgstr "Distanta magnetica maxima" + +#: flatcamGUI/FlatCAMGUI.py:1149 +msgid "Selected" +msgstr "Selectat" + +#: flatcamGUI/FlatCAMGUI.py:1177 flatcamGUI/FlatCAMGUI.py:1185 +msgid "Plot Area" +msgstr "Arie Afișare" + +#: flatcamGUI/FlatCAMGUI.py:1212 +msgid "General" +msgstr "General" + +#: flatcamGUI/FlatCAMGUI.py:1227 flatcamTools/ToolCopperThieving.py:74 +#: flatcamTools/ToolDblSided.py:64 flatcamTools/ToolExtractDrills.py:61 +#: flatcamTools/ToolInvertGerber.py:72 flatcamTools/ToolOptimal.py:71 +#: flatcamTools/ToolPunchGerber.py:64 +msgid "GERBER" +msgstr "GERBER" + +#: flatcamGUI/FlatCAMGUI.py:1237 flatcamTools/ToolDblSided.py:92 +msgid "EXCELLON" +msgstr "EXCELLON" + +#: flatcamGUI/FlatCAMGUI.py:1247 flatcamTools/ToolDblSided.py:120 +msgid "GEOMETRY" +msgstr "GEOMETRIE" + +#: flatcamGUI/FlatCAMGUI.py:1257 +msgid "CNC-JOB" +msgstr "CNCJob" + +#: flatcamGUI/FlatCAMGUI.py:1266 flatcamGUI/ObjectUI.py:563 +#: flatcamGUI/ObjectUI.py:2132 +msgid "TOOLS" +msgstr "Unelte" + +#: flatcamGUI/FlatCAMGUI.py:1275 +msgid "TOOLS 2" +msgstr "UNELTE 2" + +#: flatcamGUI/FlatCAMGUI.py:1285 +msgid "UTILITIES" +msgstr "UTILITARE" + +#: flatcamGUI/FlatCAMGUI.py:1302 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:192 +msgid "Restore Defaults" +msgstr "Restabiliți setările de bază" + +#: flatcamGUI/FlatCAMGUI.py:1305 +msgid "" +"Restore the entire set of default values\n" +"to the initial values loaded after first launch." +msgstr "" +"Restaurați întregul set de valori implicite\n" +"la valorile inițiale încărcate după prima lansare." + +#: flatcamGUI/FlatCAMGUI.py:1310 +msgid "Open Pref Folder" +msgstr "Deschide Pref Dir" + +#: flatcamGUI/FlatCAMGUI.py:1313 +msgid "Open the folder where FlatCAM save the preferences files." +msgstr "Deschide directorul unde FlatCAM salvează fişierele cu setări." + +#: flatcamGUI/FlatCAMGUI.py:1317 flatcamGUI/FlatCAMGUI.py:2517 +msgid "Clear GUI Settings" +msgstr "Șterge Setările GUI" + +#: flatcamGUI/FlatCAMGUI.py:1321 +msgid "" +"Clear the GUI settings for FlatCAM,\n" +"such as: layout, gui state, style, hdpi support etc." +msgstr "" +"Șterge setările GUI pentru FlatCAM,\n" +"cum ar fi: amplasare, stare UI, suport HDPI sau traducerea." + +#: flatcamGUI/FlatCAMGUI.py:1332 +msgid "Apply" +msgstr "Aplicați" + +#: flatcamGUI/FlatCAMGUI.py:1335 +msgid "Apply the current preferences without saving to a file." +msgstr "Aplicați preferințele actuale fără a salva într-un fișier." + +#: flatcamGUI/FlatCAMGUI.py:1342 +msgid "" +"Save the current settings in the 'current_defaults' file\n" +"which is the file storing the working default preferences." +msgstr "" +"Salvează setările curente in fişierul numit: 'current_defaults'\n" +"fişier care este cel unde se salvează preferințele cu care se va lucra." + +#: flatcamGUI/FlatCAMGUI.py:1350 +msgid "Will not save the changes and will close the preferences window." +msgstr "Nu va salva modificările și va închide fereastra de preferințe." + +#: flatcamGUI/FlatCAMGUI.py:1719 +msgid "SHOW SHORTCUT LIST" +msgstr "ARATA LISTA DE TASTE SHORTCUT" + +#: flatcamGUI/FlatCAMGUI.py:1719 +msgid "Switch to Project Tab" +msgstr "Treci la Tab-ul Proiect" + +#: flatcamGUI/FlatCAMGUI.py:1719 +msgid "Switch to Selected Tab" +msgstr "Treci la Tab-ul Selectat" + +#: flatcamGUI/FlatCAMGUI.py:1720 +msgid "Switch to Tool Tab" +msgstr "Treci la Tab-ul 'Unealta'" + +#: flatcamGUI/FlatCAMGUI.py:1721 +msgid "New Gerber" +msgstr "Gerber Nou" + +#: flatcamGUI/FlatCAMGUI.py:1721 +msgid "Edit Object (if selected)" +msgstr "Editeaza obiectul (daca este selectat)" + +#: flatcamGUI/FlatCAMGUI.py:1721 +msgid "Jump to Coordinates" +msgstr "Sari la Coordonatele" + +#: flatcamGUI/FlatCAMGUI.py:1722 +msgid "New Excellon" +msgstr "Excellon nou" + +#: flatcamGUI/FlatCAMGUI.py:1722 +msgid "Move Obj" +msgstr "Mută Obiecte" + +#: flatcamGUI/FlatCAMGUI.py:1722 +msgid "New Geometry" +msgstr "Geometrie Noua" + +#: flatcamGUI/FlatCAMGUI.py:1722 +msgid "Change Units" +msgstr "Comută Unitati" + +#: flatcamGUI/FlatCAMGUI.py:1723 +msgid "Open Properties Tool" +msgstr "Deschide Unealta Proprietati" + +#: flatcamGUI/FlatCAMGUI.py:1723 +msgid "Rotate by 90 degree CW" +msgstr "Roteste cu 90 grade CW" + +#: flatcamGUI/FlatCAMGUI.py:1723 +msgid "Shell Toggle" +msgstr "Comuta Linie de comanda" + +#: flatcamGUI/FlatCAMGUI.py:1724 +msgid "" +"Add a Tool (when in Geometry Selected Tab or in Tools NCC or Tools Paint)" +msgstr "" +"Adaugă o Unealtă (cand ne aflam in tab-ul Selected al Geometriei sau in " +"Unealta NCC sau in unealta Paint)" + +#: flatcamGUI/FlatCAMGUI.py:1725 +msgid "Flip on X_axis" +msgstr "Oglindește pe axa X" + +#: flatcamGUI/FlatCAMGUI.py:1725 +msgid "Flip on Y_axis" +msgstr "Oglindește pe axa Y" + +#: flatcamGUI/FlatCAMGUI.py:1728 +msgid "Copy Obj" +msgstr "Copiază Obiecte" + +#: flatcamGUI/FlatCAMGUI.py:1728 +msgid "Open Tools Database" +msgstr "Deschide baza de date Unelte" + +#: flatcamGUI/FlatCAMGUI.py:1729 +msgid "Open Excellon File" +msgstr "Încarcă un fisier Excellon" + +#: flatcamGUI/FlatCAMGUI.py:1729 +msgid "Open Gerber File" +msgstr "Încarcă un fisier Gerber" + +#: flatcamGUI/FlatCAMGUI.py:1729 +msgid "New Project" +msgstr "Un Nou Project" + +#: flatcamGUI/FlatCAMGUI.py:1730 flatcamTools/ToolPDF.py:42 +msgid "PDF Import Tool" +msgstr "Unealta import PDF" + +#: flatcamGUI/FlatCAMGUI.py:1730 +msgid "Save Project" +msgstr "Salvează Proiectul" + +#: flatcamGUI/FlatCAMGUI.py:1730 +msgid "Toggle Plot Area" +msgstr "Comută Aria de Afișare" + +#: flatcamGUI/FlatCAMGUI.py:1733 +msgid "Copy Obj_Name" +msgstr "Copiază Nume Obiect" + +#: flatcamGUI/FlatCAMGUI.py:1734 +msgid "Toggle Code Editor" +msgstr "Comută Editorul de cod" + +#: flatcamGUI/FlatCAMGUI.py:1734 +msgid "Toggle the axis" +msgstr "Comută Reprezentare Axe" + +#: flatcamGUI/FlatCAMGUI.py:1734 flatcamGUI/FlatCAMGUI.py:1933 +#: flatcamGUI/FlatCAMGUI.py:2020 flatcamGUI/FlatCAMGUI.py:2142 +msgid "Distance Minimum Tool" +msgstr "Unealta Distanță minimă" + +#: flatcamGUI/FlatCAMGUI.py:1735 +msgid "Open Preferences Window" +msgstr "Deschide Preferințe" + +#: flatcamGUI/FlatCAMGUI.py:1736 +msgid "Rotate by 90 degree CCW" +msgstr "Roteste cu 90 grade CCW" + +#: flatcamGUI/FlatCAMGUI.py:1736 +msgid "Run a Script" +msgstr "Rulează TCL script" + +#: flatcamGUI/FlatCAMGUI.py:1736 +msgid "Toggle the workspace" +msgstr "Comută Suprafata de lucru" + +#: flatcamGUI/FlatCAMGUI.py:1736 +msgid "Skew on X axis" +msgstr "Deformare pe axa X" + +#: flatcamGUI/FlatCAMGUI.py:1737 +msgid "Skew on Y axis" +msgstr "Deformare pe axa Y" + +#: flatcamGUI/FlatCAMGUI.py:1740 +msgid "2-Sided PCB Tool" +msgstr "Unealta 2-fețe" + +#: flatcamGUI/FlatCAMGUI.py:1740 +msgid "Transformations Tool" +msgstr "Unealta Transformări" + +#: flatcamGUI/FlatCAMGUI.py:1742 +msgid "Solder Paste Dispensing Tool" +msgstr "Unealta DispensorPF" + +#: flatcamGUI/FlatCAMGUI.py:1743 +msgid "Film PCB Tool" +msgstr "Unealta Film" + +#: flatcamGUI/FlatCAMGUI.py:1743 +msgid "Non-Copper Clearing Tool" +msgstr "Curățăre Non-Cupru" + +#: flatcamGUI/FlatCAMGUI.py:1744 +msgid "Paint Area Tool" +msgstr "Unealta Paint" + +#: flatcamGUI/FlatCAMGUI.py:1744 +msgid "Rules Check Tool" +msgstr "Unealta Verificari Reguli" + +#: flatcamGUI/FlatCAMGUI.py:1745 +msgid "View File Source" +msgstr "Vizualiz. Cod Sursă" + +#: flatcamGUI/FlatCAMGUI.py:1746 +msgid "Cutout PCB Tool" +msgstr "Unealta Decupare" + +#: flatcamGUI/FlatCAMGUI.py:1746 +msgid "Enable all Plots" +msgstr "Activează Afișare pt Tot" + +#: flatcamGUI/FlatCAMGUI.py:1746 +msgid "Disable all Plots" +msgstr "Dezactivează Afișare pt Tot" + +#: flatcamGUI/FlatCAMGUI.py:1746 +msgid "Disable Non-selected Plots" +msgstr "Dezactivează ne-selectate" + +#: flatcamGUI/FlatCAMGUI.py:1747 +msgid "Toggle Full Screen" +msgstr "Comută FullScreen" + +#: flatcamGUI/FlatCAMGUI.py:1750 +msgid "Abort current task (gracefully)" +msgstr "Renutna la task" + +#: flatcamGUI/FlatCAMGUI.py:1753 +msgid "Save Project As" +msgstr "Salvează Proiectul ca" + +#: flatcamGUI/FlatCAMGUI.py:1754 +msgid "" +"Paste Special. Will convert a Windows path style to the one required in Tcl " +"Shell" +msgstr "" +"Lipire specială. Va converti stilul de adresa cale Windows in cel necesar in " +"Tcl Shell" + +#: flatcamGUI/FlatCAMGUI.py:1757 +msgid "Open Online Manual" +msgstr "Deschide Manualul Online" + +#: flatcamGUI/FlatCAMGUI.py:1758 +msgid "Open Online Tutorials" +msgstr "Deschide Tutoriale Online" + +#: flatcamGUI/FlatCAMGUI.py:1758 +msgid "Refresh Plots" +msgstr "Improspatare Afișare" + +#: flatcamGUI/FlatCAMGUI.py:1758 flatcamTools/ToolSolderPaste.py:509 +msgid "Delete Object" +msgstr "Șterge Obiectul" + +#: flatcamGUI/FlatCAMGUI.py:1758 +msgid "Alternate: Delete Tool" +msgstr "Alternativ: Șterge Unealta" + +#: flatcamGUI/FlatCAMGUI.py:1759 +msgid "(left to Key_1)Toggle Notebook Area (Left Side)" +msgstr "(in stanga tasta 1) Comutați zona Notebook (partea stângă)" + +#: flatcamGUI/FlatCAMGUI.py:1759 +msgid "En(Dis)able Obj Plot" +msgstr "(Dez)activează Afișare" + +#: flatcamGUI/FlatCAMGUI.py:1760 +msgid "Deselects all objects" +msgstr "Deselectează toate obiectele" + +#: flatcamGUI/FlatCAMGUI.py:1774 +msgid "Editor Shortcut list" +msgstr "Lista de shortcut-uri" + +#: flatcamGUI/FlatCAMGUI.py:1928 +msgid "GEOMETRY EDITOR" +msgstr "EDITOR GEOMETRIE" + +#: flatcamGUI/FlatCAMGUI.py:1928 +msgid "Draw an Arc" +msgstr "Deseneaza un Arc" + +#: flatcamGUI/FlatCAMGUI.py:1928 +msgid "Copy Geo Item" +msgstr "Copiază Geo" + +#: flatcamGUI/FlatCAMGUI.py:1929 +msgid "Within Add Arc will toogle the ARC direction: CW or CCW" +msgstr "In cadrul 'Aadauga Arc' va comuta intre directiile arcului: CW sau CCW" + +#: flatcamGUI/FlatCAMGUI.py:1929 +msgid "Polygon Intersection Tool" +msgstr "Unealta Intersecţie Poligoane" + +#: flatcamGUI/FlatCAMGUI.py:1930 +msgid "Geo Paint Tool" +msgstr "Unealta Paint Geo" + +#: flatcamGUI/FlatCAMGUI.py:1930 flatcamGUI/FlatCAMGUI.py:2019 +#: flatcamGUI/FlatCAMGUI.py:2139 +msgid "Jump to Location (x, y)" +msgstr "Sari la Locaţia (x, y)" + +#: flatcamGUI/FlatCAMGUI.py:1930 +msgid "Toggle Corner Snap" +msgstr "Comută lipire colt" + +#: flatcamGUI/FlatCAMGUI.py:1930 +msgid "Move Geo Item" +msgstr "Muta El. Geo" + +#: flatcamGUI/FlatCAMGUI.py:1931 +msgid "Within Add Arc will cycle through the ARC modes" +msgstr "In cadrul 'Adauga Arc' va trece circular prin tipurile de Arc" + +#: flatcamGUI/FlatCAMGUI.py:1931 +msgid "Draw a Polygon" +msgstr "Deseneaza un Poligon" + +#: flatcamGUI/FlatCAMGUI.py:1931 +msgid "Draw a Circle" +msgstr "Deseneaza un Cerc" + +#: flatcamGUI/FlatCAMGUI.py:1932 +msgid "Draw a Path" +msgstr "Deseneaza un Traseu" + +#: flatcamGUI/FlatCAMGUI.py:1932 +msgid "Draw Rectangle" +msgstr "Deseneaza un Patrulater" + +#: flatcamGUI/FlatCAMGUI.py:1932 +msgid "Polygon Subtraction Tool" +msgstr "Unealta Substracţie Poligoane" + +#: flatcamGUI/FlatCAMGUI.py:1932 +msgid "Add Text Tool" +msgstr "Unealta Adaugare Text" + +#: flatcamGUI/FlatCAMGUI.py:1933 +msgid "Polygon Union Tool" +msgstr "Unealta Uniune Poligoane" + +#: flatcamGUI/FlatCAMGUI.py:1933 +msgid "Flip shape on X axis" +msgstr "Oglindește pe axa X" + +#: flatcamGUI/FlatCAMGUI.py:1933 +msgid "Flip shape on Y axis" +msgstr "Oglindește pe axa Y" + +#: flatcamGUI/FlatCAMGUI.py:1934 +msgid "Skew shape on X axis" +msgstr "Deformare pe axa X" + +#: flatcamGUI/FlatCAMGUI.py:1934 +msgid "Skew shape on Y axis" +msgstr "Deformare pe axa Y" + +#: flatcamGUI/FlatCAMGUI.py:1934 +msgid "Editor Transformation Tool" +msgstr "Unealta Transformare in Editor" + +#: flatcamGUI/FlatCAMGUI.py:1935 +msgid "Offset shape on X axis" +msgstr "Ofset pe axa X" + +#: flatcamGUI/FlatCAMGUI.py:1935 +msgid "Offset shape on Y axis" +msgstr "Ofset pe axa Y" + +#: flatcamGUI/FlatCAMGUI.py:1936 flatcamGUI/FlatCAMGUI.py:2022 +#: flatcamGUI/FlatCAMGUI.py:2144 +msgid "Save Object and Exit Editor" +msgstr "Salvează Obiectul și inchide Editorul" + +#: flatcamGUI/FlatCAMGUI.py:1936 +msgid "Polygon Cut Tool" +msgstr "Unealta Taiere Poligoane" + +#: flatcamGUI/FlatCAMGUI.py:1937 +msgid "Rotate Geometry" +msgstr "Roteste Geometrie" + +#: flatcamGUI/FlatCAMGUI.py:1937 +msgid "Finish drawing for certain tools" +msgstr "Termina de desenat (pt anumite unelte)" + +#: flatcamGUI/FlatCAMGUI.py:1937 flatcamGUI/FlatCAMGUI.py:2022 +#: flatcamGUI/FlatCAMGUI.py:2142 +msgid "Abort and return to Select" +msgstr "Renutna si intoarce-te la Selectie" + +#: flatcamGUI/FlatCAMGUI.py:1938 flatcamGUI/FlatCAMGUI.py:2734 +msgid "Delete Shape" +msgstr "Șterge forme geo" + +#: flatcamGUI/FlatCAMGUI.py:2018 +msgid "EXCELLON EDITOR" +msgstr "EDITOR EXCELLON" + +#: flatcamGUI/FlatCAMGUI.py:2018 +msgid "Copy Drill(s)" +msgstr "Copiaza Găurire" + +#: flatcamGUI/FlatCAMGUI.py:2018 flatcamGUI/FlatCAMGUI.py:2268 +msgid "Add Drill" +msgstr "Adaugă găurire" + +#: flatcamGUI/FlatCAMGUI.py:2019 +msgid "Move Drill(s)" +msgstr "Muta Găuri" + +#: flatcamGUI/FlatCAMGUI.py:2020 +msgid "Add a new Tool" +msgstr "Adaugă Unealta Noua" + +#: flatcamGUI/FlatCAMGUI.py:2021 +msgid "Delete Drill(s)" +msgstr "Șterge Găuri" + +#: flatcamGUI/FlatCAMGUI.py:2021 +msgid "Alternate: Delete Tool(s)" +msgstr "Alternativ: Șterge Unealta" + +#: flatcamGUI/FlatCAMGUI.py:2138 +msgid "GERBER EDITOR" +msgstr "EDITOR GERBER" + +#: flatcamGUI/FlatCAMGUI.py:2138 +msgid "Add Disc" +msgstr "Adaugă Disc" + +#: flatcamGUI/FlatCAMGUI.py:2138 +msgid "Add SemiDisc" +msgstr "Adaugă SemiDisc" + +#: flatcamGUI/FlatCAMGUI.py:2140 +msgid "Within Track & Region Tools will cycle in REVERSE the bend modes" +msgstr "" +"In cadrul uneltelor Traseu si Regiune va trece circular in Revers prin " +"modurile de indoire" + +#: flatcamGUI/FlatCAMGUI.py:2141 +msgid "Within Track & Region Tools will cycle FORWARD the bend modes" +msgstr "" +"In cadrul uneltelor Traseu si Regiune va trece circular in Avans prin " +"modurile de indoire" + +#: flatcamGUI/FlatCAMGUI.py:2142 +msgid "Alternate: Delete Apertures" +msgstr "Alternativ: Șterge Apertură" + +#: flatcamGUI/FlatCAMGUI.py:2143 +msgid "Eraser Tool" +msgstr "Unealta Stergere" + +#: flatcamGUI/FlatCAMGUI.py:2144 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:220 +msgid "Mark Area Tool" +msgstr "Unealta de Marc. Arie" + +#: flatcamGUI/FlatCAMGUI.py:2144 +msgid "Poligonize Tool" +msgstr "Unealta Poligonizare" + +#: flatcamGUI/FlatCAMGUI.py:2144 +msgid "Transformation Tool" +msgstr "Unealta Transformare" + +#: flatcamGUI/FlatCAMGUI.py:2161 +msgid "Toggle Visibility" +msgstr "Comută Vizibilitate" + +#: flatcamGUI/FlatCAMGUI.py:2167 +msgid "New" +msgstr "Nou" + +#: flatcamGUI/FlatCAMGUI.py:2169 flatcamGUI/ObjectUI.py:450 +#: flatcamObjects/FlatCAMGerber.py:239 flatcamObjects/FlatCAMGerber.py:327 +#: flatcamTools/ToolCalibration.py:631 flatcamTools/ToolCalibration.py:648 +#: flatcamTools/ToolCalibration.py:815 flatcamTools/ToolCopperThieving.py:144 +#: flatcamTools/ToolCopperThieving.py:158 +#: flatcamTools/ToolCopperThieving.py:604 flatcamTools/ToolCutOut.py:92 +#: flatcamTools/ToolDblSided.py:226 flatcamTools/ToolFilm.py:69 +#: flatcamTools/ToolFilm.py:102 flatcamTools/ToolFilm.py:549 +#: flatcamTools/ToolFilm.py:557 flatcamTools/ToolImage.py:49 +#: flatcamTools/ToolImage.py:271 flatcamTools/ToolNCC.py:95 +#: flatcamTools/ToolNCC.py:558 flatcamTools/ToolNCC.py:1300 +#: flatcamTools/ToolPaint.py:502 flatcamTools/ToolPaint.py:706 +#: flatcamTools/ToolPanelize.py:118 flatcamTools/ToolPanelize.py:374 +#: flatcamTools/ToolPanelize.py:391 +msgid "Geometry" +msgstr "Geometrie" + +#: flatcamGUI/FlatCAMGUI.py:2173 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:99 +#: flatcamTools/ToolAlignObjects.py:74 flatcamTools/ToolAlignObjects.py:110 +#: flatcamTools/ToolCalibration.py:197 flatcamTools/ToolCalibration.py:631 +#: flatcamTools/ToolCalibration.py:648 flatcamTools/ToolCalibration.py:807 +#: flatcamTools/ToolCalibration.py:815 flatcamTools/ToolCopperThieving.py:144 +#: flatcamTools/ToolCopperThieving.py:158 +#: flatcamTools/ToolCopperThieving.py:604 flatcamTools/ToolDblSided.py:225 +#: flatcamTools/ToolFilm.py:359 flatcamTools/ToolNCC.py:558 +#: flatcamTools/ToolNCC.py:1300 flatcamTools/ToolPaint.py:502 +#: flatcamTools/ToolPaint.py:706 flatcamTools/ToolPanelize.py:374 +#: flatcamTools/ToolPunchGerber.py:149 flatcamTools/ToolPunchGerber.py:164 +msgid "Excellon" +msgstr "Excellon" + +#: flatcamGUI/FlatCAMGUI.py:2180 +msgid "Grids" +msgstr "Grid-uri" + +#: flatcamGUI/FlatCAMGUI.py:2187 +msgid "Clear Plot" +msgstr "Șterge Afișare" + +#: flatcamGUI/FlatCAMGUI.py:2189 +msgid "Replot" +msgstr "Reafișare" + +#: flatcamGUI/FlatCAMGUI.py:2193 +msgid "Geo Editor" +msgstr "Editor Geometrii" + +#: flatcamGUI/FlatCAMGUI.py:2195 +msgid "Path" +msgstr "Pe cale" + +#: flatcamGUI/FlatCAMGUI.py:2197 +msgid "Rectangle" +msgstr "Patrulater" + +#: flatcamGUI/FlatCAMGUI.py:2200 +msgid "Circle" +msgstr "Cerc" + +#: flatcamGUI/FlatCAMGUI.py:2204 +msgid "Arc" +msgstr "Arc" + +#: flatcamGUI/FlatCAMGUI.py:2218 +msgid "Union" +msgstr "Uniune" + +#: flatcamGUI/FlatCAMGUI.py:2220 +msgid "Intersection" +msgstr "Intersecţie" + +#: flatcamGUI/FlatCAMGUI.py:2222 +msgid "Subtraction" +msgstr "Scădere" + +#: flatcamGUI/FlatCAMGUI.py:2224 flatcamGUI/ObjectUI.py:2221 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:56 +msgid "Cut" +msgstr "Tăiere" + +#: flatcamGUI/FlatCAMGUI.py:2235 +msgid "Pad" +msgstr "Pad" + +#: flatcamGUI/FlatCAMGUI.py:2237 +msgid "Pad Array" +msgstr "Arie de paduri" + +#: flatcamGUI/FlatCAMGUI.py:2241 +msgid "Track" +msgstr "Traseu" + +#: flatcamGUI/FlatCAMGUI.py:2243 +msgid "Region" +msgstr "Regiune" + +#: flatcamGUI/FlatCAMGUI.py:2266 +msgid "Exc Editor" +msgstr "Editor EXC" + +#: flatcamGUI/FlatCAMGUI.py:2311 +msgid "" +"Relative measurement.\n" +"Reference is last click position" +msgstr "" +"Măsurătoare relativă.\n" +"Referința este poziţia ultimului click pe canvas" + +#: flatcamGUI/FlatCAMGUI.py:2317 +msgid "" +"Absolute measurement.\n" +"Reference is (X=0, Y= 0) position" +msgstr "" +"Măsurătoare absolută.\n" +"Referința este originea (0, 0)" + +#: flatcamGUI/FlatCAMGUI.py:2419 +msgid "Lock Toolbars" +msgstr "Blochează Toolbar-uri" + +#: flatcamGUI/FlatCAMGUI.py:2505 +msgid "FlatCAM Preferences Folder opened." +msgstr "Folderul de preferințe FlatCAM a fost deschis." + +#: flatcamGUI/FlatCAMGUI.py:2516 +msgid "Are you sure you want to delete the GUI Settings? \n" +msgstr "Esti sigur că dorești să ștergi setările GUI?\n" + +#: flatcamGUI/FlatCAMGUI.py:2624 +msgid "&Cutout Tool" +msgstr "Unealta Decupare" + +#: flatcamGUI/FlatCAMGUI.py:2694 +msgid "Select 'Esc'" +msgstr "Select" + +#: flatcamGUI/FlatCAMGUI.py:2732 +msgid "Copy Objects" +msgstr "Copiază Obiecte" + +#: flatcamGUI/FlatCAMGUI.py:2740 +msgid "Move Objects" +msgstr "Mută Obiecte" + +#: flatcamGUI/FlatCAMGUI.py:3363 +msgid "" +"Please first select a geometry item to be cutted\n" +"then select the geometry item that will be cutted\n" +"out of the first item. In the end press ~X~ key or\n" +"the toolbar button." +msgstr "" +"Mai intai selectează o forma geometrică care trebuie tăiată\n" +"apoi selectează forma geo. tăietoare. La final apasă tasta ~X~ sau\n" +"butonul corespunzator din Toolbar." + +#: flatcamGUI/FlatCAMGUI.py:3370 flatcamGUI/FlatCAMGUI.py:3532 +#: flatcamGUI/FlatCAMGUI.py:3577 flatcamGUI/FlatCAMGUI.py:3597 +msgid "Warning" +msgstr "Atenţie" + +#: flatcamGUI/FlatCAMGUI.py:3527 +msgid "" +"Please select geometry items \n" +"on which to perform Intersection Tool." +msgstr "" +"Selectează forma geometrică asupra căreia să se\n" +"aplice Unealta Intersecţie." + +#: flatcamGUI/FlatCAMGUI.py:3572 +msgid "" +"Please select geometry items \n" +"on which to perform Substraction Tool." +msgstr "" +"Selectează forma geometrică asupra căreia să se\n" +"aplice Unealta Substracţie." + +#: flatcamGUI/FlatCAMGUI.py:3592 +msgid "" +"Please select geometry items \n" +"on which to perform union." +msgstr "" +"Selectează forma geometrică asupra căreia să se\n" +"aplice Unealta Uniune." + +#: flatcamGUI/FlatCAMGUI.py:3675 flatcamGUI/FlatCAMGUI.py:3890 +msgid "Cancelled. Nothing selected to delete." +msgstr "Anulat. Nimic nu este selectat pentru ștergere." + +#: flatcamGUI/FlatCAMGUI.py:3759 flatcamGUI/FlatCAMGUI.py:4006 +msgid "Cancelled. Nothing selected to copy." +msgstr "Anulat. Nimic nu este selectat pentru copiere." + +#: flatcamGUI/FlatCAMGUI.py:3805 flatcamGUI/FlatCAMGUI.py:4035 +msgid "Cancelled. Nothing selected to move." +msgstr "Anulat. Nimic nu este selectat pentru mutare." + +#: flatcamGUI/FlatCAMGUI.py:4061 +msgid "New Tool ..." +msgstr "O noua Unealtă ..." + +#: flatcamGUI/FlatCAMGUI.py:4062 flatcamTools/ToolNCC.py:924 +#: flatcamTools/ToolPaint.py:850 flatcamTools/ToolSolderPaste.py:560 +msgid "Enter a Tool Diameter" +msgstr "Introduceti un Diametru de Unealtă" + +#: flatcamGUI/FlatCAMGUI.py:4074 +msgid "Adding Tool cancelled ..." +msgstr "Adăugarea unei unelte anulată..." + +#: flatcamGUI/FlatCAMGUI.py:4088 +msgid "Distance Tool exit..." +msgstr "Măsurătoarea s-a terminat ..." + +#: flatcamGUI/FlatCAMGUI.py:4323 flatcamGUI/FlatCAMGUI.py:4330 +msgid "Idle." +msgstr "Inactiv." + +#: flatcamGUI/FlatCAMGUI.py:4361 +msgid "Application started ..." +msgstr "Aplicaţia a pornit ..." + +#: flatcamGUI/FlatCAMGUI.py:4362 +msgid "Hello!" +msgstr "Bună!" + +#: flatcamGUI/FlatCAMGUI.py:4424 +msgid "Open Project ..." +msgstr "Încarcă Project ..." + +#: flatcamGUI/FlatCAMGUI.py:4450 +msgid "Exit" +msgstr "Iesiere" + +#: flatcamGUI/GUIElements.py:2513 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:180 +#: flatcamTools/ToolDblSided.py:173 flatcamTools/ToolDblSided.py:388 +#: flatcamTools/ToolFilm.py:219 +msgid "Reference" +msgstr "Referinţă" + +#: flatcamGUI/GUIElements.py:2515 +msgid "" +"The reference can be:\n" +"- Absolute -> the reference point is point (0,0)\n" +"- Relative -> the reference point is the mouse position before Jump" +msgstr "" +"Referința poate fi:\n" +"- Absolut -> punctul de referință este punctul (0,0)\n" +"- Relativ -> punctul de referință este poziția mouse-ului înainte de Salt" + +#: flatcamGUI/GUIElements.py:2520 +msgid "Abs" +msgstr "Abs" + +#: flatcamGUI/GUIElements.py:2521 +msgid "Relative" +msgstr "Relativ" + +#: flatcamGUI/GUIElements.py:2531 +msgid "Location" +msgstr "Locaţie" + +#: flatcamGUI/GUIElements.py:2533 +msgid "" +"The Location value is a tuple (x,y).\n" +"If the reference is Absolute then the Jump will be at the position (x,y).\n" +"If the reference is Relative then the Jump will be at the (x,y) distance\n" +"from the current mouse location point." +msgstr "" +"Valoarea locației este un tuple (x, y).\n" +"Dacă referința este Absolută, Saltul va fi în poziția (x, y).\n" +"Dacă referința este Relativă, Saltul se va face la distanța (x, y)\n" +"din punctul de locație al mouse-ului curent." + +#: flatcamGUI/GUIElements.py:2573 +msgid "Save Log" +msgstr "Salvează Log" + +#: flatcamGUI/GUIElements.py:2592 flatcamTools/ToolShell.py:278 +msgid "Type >help< to get started" +msgstr "Tastați >help< pentru a începe" + +#: flatcamGUI/ObjectUI.py:38 +msgid "FlatCAM Object" +msgstr "Obiect FlatCAM" + +#: flatcamGUI/ObjectUI.py:78 +msgid "" +"BASIC is suitable for a beginner. Many parameters\n" +"are hidden from the user in this mode.\n" +"ADVANCED mode will make available all parameters.\n" +"\n" +"To change the application LEVEL, go to:\n" +"Edit -> Preferences -> General and check:\n" +"'APP. LEVEL' radio button." +msgstr "" +"Modul de Bază este potrivit pt incepatori. Multi parametri sunt\n" +"ascunsi de user in acest mod.\n" +"Modul Avansat face disponibili toti parametrii programului.\n" +"\n" +"Pt a schimba modul de lucru al aplicaţiei mergi in:\n" +"Edit -> Preferințe -> General și bifează:\n" +"butonul radio: >Nivel App<." + +#: flatcamGUI/ObjectUI.py:111 +msgid "Geometrical transformations of the current object." +msgstr "Transformări geometrice ale obictului curent." + +#: flatcamGUI/ObjectUI.py:120 +msgid "" +"Factor by which to multiply\n" +"geometric features of this object.\n" +"Expressions are allowed. E.g: 1/25.4" +msgstr "" +"Factor cu care se multiplica \n" +"caracteristicile geometrice ale\n" +"acestui obiect.\n" +"Expresiile sunt permise. De ex: 1 / 25.4" + +#: flatcamGUI/ObjectUI.py:127 +msgid "Perform scaling operation." +msgstr "Efectuează operatia de scalare." + +#: flatcamGUI/ObjectUI.py:138 +msgid "" +"Amount by which to move the object\n" +"in the x and y axes in (x, y) format.\n" +"Expressions are allowed. E.g: (1/3.2, 0.5*3)" +msgstr "" +"Valoare cu cat să se deplaseze obiectul\n" +"pe axele X și /sau Y in formatul (x,y).\n" +"Expresiile sunt permise. De ex: (1/3.2, 0.5*3)" + +#: flatcamGUI/ObjectUI.py:145 +msgid "Perform the offset operation." +msgstr "Efectuează operația de Ofset." + +#: flatcamGUI/ObjectUI.py:178 +msgid "Gerber Object" +msgstr "Obiect Gerber" + +#: flatcamGUI/ObjectUI.py:187 flatcamGUI/ObjectUI.py:730 +#: flatcamGUI/ObjectUI.py:1426 flatcamGUI/ObjectUI.py:2205 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:30 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:33 +#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:31 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:31 +msgid "Plot Options" +msgstr "Opțiuni afișare" + +#: flatcamGUI/ObjectUI.py:193 flatcamGUI/ObjectUI.py:731 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:45 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:38 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:119 +#: flatcamTools/ToolCopperThieving.py:191 +msgid "Solid" +msgstr "Solid" + +#: flatcamGUI/ObjectUI.py:195 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:40 +msgid "Solid color polygons." +msgstr "Poligoane color solide." + +#: flatcamGUI/ObjectUI.py:201 +msgid "Multi-Color" +msgstr "Multicolor" + +#: flatcamGUI/ObjectUI.py:203 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:47 +msgid "Draw polygons in different colors." +msgstr "" +"Desenează poligoanele Gerber din multiple culori\n" +"alese in mod aleator." + +#: flatcamGUI/ObjectUI.py:209 flatcamGUI/ObjectUI.py:769 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:39 +#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:35 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:52 +msgid "Plot" +msgstr "Afisează" + +#: flatcamGUI/ObjectUI.py:211 flatcamGUI/ObjectUI.py:771 +#: flatcamGUI/ObjectUI.py:1486 flatcamGUI/ObjectUI.py:2315 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:41 +#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:37 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:54 +msgid "Plot (show) this object." +msgstr "Afisează (arata) acest obiect." + +#: flatcamGUI/ObjectUI.py:239 +msgid "" +"Toggle the display of the Gerber Apertures Table.\n" +"When unchecked, it will delete all mark shapes\n" +"that are drawn on canvas." +msgstr "" +"Comută afișarea tabelei de aperturi Gerber.\n" +"Când se debifează, toate marcajele aperturilor\n" +"care sutn curent afisate, vor fi șterse." + +#: flatcamGUI/ObjectUI.py:249 +msgid "Mark All" +msgstr "Marc. Toate" + +#: flatcamGUI/ObjectUI.py:251 +msgid "" +"When checked it will display all the apertures.\n" +"When unchecked, it will delete all mark shapes\n" +"that are drawn on canvas." +msgstr "" +"Când este bifat se vor afisa toate aperturile.\n" +"Când este debifat se vor șterge toate marcajele de aperturi." + +#: flatcamGUI/ObjectUI.py:279 +msgid "Mark the aperture instances on canvas." +msgstr "Marchează aperturile pe canvas." + +#: flatcamGUI/ObjectUI.py:291 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:32 +msgid "Isolation Routing" +msgstr "Izolare" + +#: flatcamGUI/ObjectUI.py:293 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:34 +msgid "" +"Create a Geometry object with\n" +"toolpaths to cut outside polygons." +msgstr "" +"Crează un obiect tip Geometrie cu trasee\n" +"care să fie taiate in afara poligoanelor,\n" +"urmărindu-le conturul." + +#: flatcamGUI/ObjectUI.py:311 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:69 +msgid "" +"Choose which tool to use for Gerber isolation:\n" +"'Circular' or 'V-shape'.\n" +"When the 'V-shape' is selected then the tool\n" +"diameter will depend on the chosen cut depth." +msgstr "" +"Alegeți ce unealtă să utilizați pentru izolarea Gerber:\n" +"„Circulară” sau „în formă de V”.\n" +"Când este selectată „forma V”, atunci\n" +"diametrul uneltei va depinde de adâncimea de tăiere aleasă." + +#: flatcamGUI/ObjectUI.py:317 +msgid "V-Shape" +msgstr "Forma-V" + +#: flatcamGUI/ObjectUI.py:323 flatcamGUI/ObjectUI.py:1672 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:81 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:72 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:78 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:85 +#: flatcamTools/ToolNCC.py:233 flatcamTools/ToolNCC.py:240 +#: flatcamTools/ToolPaint.py:216 +msgid "V-Tip Dia" +msgstr "V-dia" + +#: flatcamGUI/ObjectUI.py:325 flatcamGUI/ObjectUI.py:1675 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:83 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:74 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:80 +#: flatcamTools/ToolNCC.py:235 flatcamTools/ToolPaint.py:218 +msgid "The tip diameter for V-Shape Tool" +msgstr "" +"Diametrul la vârf al uneltei tip V-Shape.\n" +"Forma in V" + +#: flatcamGUI/ObjectUI.py:336 flatcamGUI/ObjectUI.py:1687 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:94 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:84 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:91 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:99 +#: flatcamTools/ToolNCC.py:246 flatcamTools/ToolNCC.py:254 +#: flatcamTools/ToolPaint.py:229 +msgid "V-Tip Angle" +msgstr "V-unghi" + +#: flatcamGUI/ObjectUI.py:338 flatcamGUI/ObjectUI.py:1690 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:96 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:86 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:93 +#: flatcamTools/ToolNCC.py:248 flatcamTools/ToolPaint.py:231 +msgid "" +"The tip angle for V-Shape Tool.\n" +"In degree." +msgstr "" +"Unghiul la vârf pentru unealta tip V-Shape. \n" +"In grade." + +#: flatcamGUI/ObjectUI.py:352 flatcamGUI/ObjectUI.py:1706 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:50 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:109 +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:61 +#: flatcamObjects/FlatCAMGeometry.py:1174 flatcamTools/ToolCutOut.py:141 +msgid "" +"Cutting depth (negative)\n" +"below the copper surface." +msgstr "" +"Adâncimea la care se taie sub suprafata de cupru.\n" +"Valoare negativă." + +#: flatcamGUI/ObjectUI.py:366 +msgid "" +"Diameter of the cutting tool.\n" +"If you want to have an isolation path\n" +"inside the actual shape of the Gerber\n" +"feature, use a negative value for\n" +"this parameter." +msgstr "" +"Diametrul uneltei taietoare.\n" +"Daca se dorește să se aibă o trecere de izolaţie\n" +"in interiorul poligonului Gerber (traseu), foloseşte\n" +"o valoare negativă pt acest parametru." + +#: flatcamGUI/ObjectUI.py:382 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:56 +msgid "# Passes" +msgstr "# Treceri" + +#: flatcamGUI/ObjectUI.py:384 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:58 +msgid "" +"Width of the isolation gap in\n" +"number (integer) of tool widths." +msgstr "" +"Lăţimea spatiului de izolare\n" +"in număr intreg de grosimi ale uneltei." + +#: flatcamGUI/ObjectUI.py:395 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:68 +msgid "Pass overlap" +msgstr "Suprapunere" + +#: flatcamGUI/ObjectUI.py:397 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:70 +msgid "How much (percentage) of the tool width to overlap each tool pass." +msgstr "" +"Cat de mult (procent) din diametrul uneltei, (lăţimea de tăiere), să se " +"suprapună peste trecerea anterioară." + +#: flatcamGUI/ObjectUI.py:411 +#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:58 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:97 +msgid "" +"Milling type:\n" +"- climb / best for precision milling and to reduce tool usage\n" +"- conventional / useful when there is no backlash compensation" +msgstr "" +"Tipul de frezare:\n" +"- urcare -> potrivit pentru frezare de precizie și pt a reduce uzura " +"uneltei\n" +"- conventional -> pentru cazul când nu exista o compensare a 'backlash-ului'" + +#: flatcamGUI/ObjectUI.py:421 +msgid "Combine" +msgstr "Combina" + +#: flatcamGUI/ObjectUI.py:423 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:109 +msgid "Combine all passes into one object" +msgstr "Combina toate trecerile intr-un singur obiect" + +#: flatcamGUI/ObjectUI.py:427 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:43 +msgid "\"Follow\"" +msgstr "\"Urmareste\"" + +#: flatcamGUI/ObjectUI.py:428 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:45 +msgid "" +"Generate a 'Follow' geometry.\n" +"This means that it will cut through\n" +"the middle of the trace." +msgstr "" +"Generează o geometrie de tip 'urmăritor'.\n" +"Mai exact, in loc să se genereze un poligon se va genera o 'linie'.\n" +"In acest fel se taie prin mijlocul unui traseu și nu in jurul lui." + +#: flatcamGUI/ObjectUI.py:434 +msgid "Except" +msgstr "Exceptie" + +#: flatcamGUI/ObjectUI.py:437 +msgid "" +"When the isolation geometry is generated,\n" +"by checking this, the area of the object below\n" +"will be subtracted from the isolation geometry." +msgstr "" +"Cand un obiect de geometrie tip Izolare este creat,\n" +"prin bifarea aici, aria obiectului de mai jos va fi\n" +"scăzută din geometria de tip Izolare." + +#: flatcamGUI/ObjectUI.py:450 +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:97 +#: flatcamObjects/FlatCAMGerber.py:239 flatcamObjects/FlatCAMGerber.py:327 +#: flatcamTools/ToolAlignObjects.py:73 flatcamTools/ToolAlignObjects.py:109 +#: flatcamTools/ToolCalibration.py:196 flatcamTools/ToolCalibration.py:631 +#: flatcamTools/ToolCalibration.py:648 flatcamTools/ToolCalibration.py:807 +#: flatcamTools/ToolCalibration.py:815 flatcamTools/ToolCopperThieving.py:144 +#: flatcamTools/ToolCopperThieving.py:158 +#: flatcamTools/ToolCopperThieving.py:604 flatcamTools/ToolCutOut.py:91 +#: flatcamTools/ToolDblSided.py:224 flatcamTools/ToolFilm.py:69 +#: flatcamTools/ToolFilm.py:102 flatcamTools/ToolFilm.py:549 +#: flatcamTools/ToolFilm.py:557 flatcamTools/ToolImage.py:49 +#: flatcamTools/ToolImage.py:252 flatcamTools/ToolImage.py:273 +#: flatcamTools/ToolNCC.py:96 flatcamTools/ToolNCC.py:558 +#: flatcamTools/ToolNCC.py:1300 flatcamTools/ToolPaint.py:502 +#: flatcamTools/ToolPaint.py:706 flatcamTools/ToolPanelize.py:118 +#: flatcamTools/ToolPanelize.py:204 flatcamTools/ToolPanelize.py:374 +#: flatcamTools/ToolPanelize.py:391 +msgid "Gerber" +msgstr "Gerber" + +#: flatcamGUI/ObjectUI.py:457 flatcamTools/ToolNCC.py:86 +#: flatcamTools/ToolPaint.py:80 +msgid "Obj Type" +msgstr "Tip obiect" + +#: flatcamGUI/ObjectUI.py:459 +msgid "" +"Specify the type of object to be excepted from isolation.\n" +"It can be of type: Gerber or Geometry.\n" +"What is selected here will dictate the kind\n" +"of objects that will populate the 'Object' combobox." +msgstr "" +"Specifica obiectul care va fi exceptat de la izolare.\n" +"Poate fi de tip: Gerber sau Geometrie.\n" +"Ce se va selecta aici va controla tipul de \n" +"obiecte care vor aparea in combobox-ul\n" +"numit >Obiect<." + +#: flatcamGUI/ObjectUI.py:472 +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:48 +#: flatcamTools/ToolCalibration.py:186 flatcamTools/ToolNCC.py:109 +#: flatcamTools/ToolPaint.py:103 flatcamTools/ToolPanelize.py:100 +#: flatcamTools/ToolQRCode.py:78 +msgid "Object" +msgstr "Obiect" + +#: flatcamGUI/ObjectUI.py:473 +msgid "Object whose area will be removed from isolation geometry." +msgstr "" +"Obiectul a cărui suprafată va fi indepărtată din geometria tip Izolare." + +#: flatcamGUI/ObjectUI.py:480 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:82 +msgid "Scope" +msgstr "Domeniu" + +#: flatcamGUI/ObjectUI.py:482 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:84 +msgid "" +"Isolation scope. Choose what to isolate:\n" +"- 'All' -> Isolate all the polygons in the object\n" +"- 'Selection' -> Isolate a selection of polygons." +msgstr "" +"Domeniul de izolare. Alegeți ce să izolați:\n" +"- 'Toate' -> Izolați toate poligoanele din obiect\n" +"- 'Selecție' -> Izolați o selecție de poligoane." + +#: flatcamGUI/ObjectUI.py:487 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:307 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:89 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:311 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:258 +#: flatcamTools/ToolNCC.py:539 flatcamTools/ToolPaint.py:456 +msgid "Selection" +msgstr "Selecţie" + +#: flatcamGUI/ObjectUI.py:495 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:122 +msgid "Isolation Type" +msgstr "Tip de izolare" + +#: flatcamGUI/ObjectUI.py:497 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:124 +msgid "" +"Choose how the isolation will be executed:\n" +"- 'Full' -> complete isolation of polygons\n" +"- 'Ext' -> will isolate only on the outside\n" +"- 'Int' -> will isolate only on the inside\n" +"'Exterior' isolation is almost always possible\n" +"(with the right tool) but 'Interior'\n" +"isolation can be done only when there is an opening\n" +"inside of the polygon (e.g polygon is a 'doughnut' shape)." +msgstr "" +"Alegeți modul în care se va executa izolarea:\n" +"- 'Complet' -> izolarea completă a poligoanelor din obiect\n" +"- „Ext” -> se va izola doar la exterior\n" +"- „Int” -> se va izola doar pe interior\n" +"Izolarea „exterioară” este aproape întotdeauna posibilă\n" +"(cu instrumentul potrivit), dar izolarea\n" +"„Interior”se poate face numai atunci când există o deschidere\n" +"în interiorul poligonului (de exemplu, poligonul are o formă de „gogoașă”)." + +#: flatcamGUI/ObjectUI.py:506 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:133 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:154 +msgid "Full" +msgstr "Complet" + +#: flatcamGUI/ObjectUI.py:507 +msgid "Ext" +msgstr "Ext" + +#: flatcamGUI/ObjectUI.py:508 +msgid "Int" +msgstr "Int" + +#: flatcamGUI/ObjectUI.py:513 +msgid "Generate Isolation Geometry" +msgstr "Creează Geometrie de Izolare" + +#: flatcamGUI/ObjectUI.py:521 +msgid "" +"Create a Geometry object with toolpaths to cut \n" +"isolation outside, inside or on both sides of the\n" +"object. For a Gerber object outside means outside\n" +"of the Gerber feature and inside means inside of\n" +"the Gerber feature, if possible at all. This means\n" +"that only if the Gerber feature has openings inside, they\n" +"will be isolated. If what is wanted is to cut isolation\n" +"inside the actual Gerber feature, use a negative tool\n" +"diameter above." +msgstr "" +"Crează un obiect Geometrie cu treceri taietoare pentru\n" +"a efectua o izolare in afară, in interior sau pe ambele parti\n" +"ale obiectului.\n" +"Pt un Gerber >in afară< inseamna in exteriorul elem. Gerber\n" +"(traseu, zona etc) iar >in interior< inseamna efectiv in interiorul\n" +"acelui elem. Gerber (daca poate fi posibil)." + +#: flatcamGUI/ObjectUI.py:533 +msgid "Buffer Solid Geometry" +msgstr "Creează Bufer Geometrie Solidă" + +#: flatcamGUI/ObjectUI.py:535 +msgid "" +"This button is shown only when the Gerber file\n" +"is loaded without buffering.\n" +"Clicking this will create the buffered geometry\n" +"required for isolation." +msgstr "" +"Acest control este afisat doar cand este incărcat un\n" +"fisier Gerber fără să fie buferată geometria sa.\n" +"Bifarea aici va crea această buferare care este necesară\n" +"pentru a crea geometrie de tip Izolare." + +#: flatcamGUI/ObjectUI.py:567 +msgid "Clear N-copper" +msgstr "Curăță Non-Cu" + +#: flatcamGUI/ObjectUI.py:569 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:33 +msgid "" +"Create a Geometry object with\n" +"toolpaths to cut all non-copper regions." +msgstr "" +"Crează un obiect tip Geometrie cu traiectorii unealtă\n" +"care să curete de cupru toate zonele unde se dorește să nu \n" +"fie cupru." + +#: flatcamGUI/ObjectUI.py:576 flatcamGUI/ObjectUI.py:2159 +#: flatcamTools/ToolNCC.py:599 +msgid "" +"Create the Geometry Object\n" +"for non-copper routing." +msgstr "" +"Crează un obiect Geometrie\n" +"pt rutare non-cupru (adica pt\n" +"curățare zone de cupru)." + +#: flatcamGUI/ObjectUI.py:589 +msgid "Board cutout" +msgstr "Decupare PCB" + +#: flatcamGUI/ObjectUI.py:591 +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:34 +msgid "" +"Create toolpaths to cut around\n" +"the PCB and separate it from\n" +"the original board." +msgstr "" +"Crează taieturi de jur inprejurul PCB-ului,\n" +"lasand punţi pentru a separa PCB-ul de \n" +"placa din care a fost taiat." + +#: flatcamGUI/ObjectUI.py:598 +msgid "" +"Generate the geometry for\n" +"the board cutout." +msgstr "" +"Generează un obiect Geometrie\n" +"pt decuparea PCB." + +#: flatcamGUI/ObjectUI.py:616 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:119 +msgid "Non-copper regions" +msgstr "Regiuni fără Cu" + +#: flatcamGUI/ObjectUI.py:618 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:121 +msgid "" +"Create polygons covering the\n" +"areas without copper on the PCB.\n" +"Equivalent to the inverse of this\n" +"object. Can be used to remove all\n" +"copper from a specified region." +msgstr "" +"Crează poligoane acopering zonele fără\n" +"cupru de pe PCB. Echivalent cu inversul\n" +"obiectului sursa. Poate fi folosit pt a indeparta\n" +"cuprul din zona specificata." + +#: flatcamGUI/ObjectUI.py:628 flatcamGUI/ObjectUI.py:669 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:133 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:166 +msgid "Boundary Margin" +msgstr "Margine" + +#: flatcamGUI/ObjectUI.py:630 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:135 +msgid "" +"Specify the edge of the PCB\n" +"by drawing a box around all\n" +"objects with this minimum\n" +"distance." +msgstr "" +"Specificati marginea PCB-ului prin desenarea\n" +"unei forme patratice de jur imprejurul la toate obiectele\n" +"la o distanţa minima cu valoarea din acest câmp." + +#: flatcamGUI/ObjectUI.py:645 flatcamGUI/ObjectUI.py:683 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:148 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:179 +msgid "Rounded Geo" +msgstr "Geo rotunjita" + +#: flatcamGUI/ObjectUI.py:647 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:150 +msgid "Resulting geometry will have rounded corners." +msgstr "" +"Obiectul Geometrie rezultat \n" +"va avea colțurile rotunjite." + +#: flatcamGUI/ObjectUI.py:651 flatcamGUI/ObjectUI.py:692 +#: flatcamTools/ToolSolderPaste.py:134 +msgid "Generate Geo" +msgstr "Crează Geo" + +#: flatcamGUI/ObjectUI.py:661 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:160 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:137 +#: flatcamTools/ToolPanelize.py:101 flatcamTools/ToolQRCode.py:192 +msgid "Bounding Box" +msgstr "Forma înconjurătoare" + +#: flatcamGUI/ObjectUI.py:663 +msgid "" +"Create a geometry surrounding the Gerber object.\n" +"Square shape." +msgstr "" +"Generează un obiect tip Geometrie care va inconjura\n" +"obiectul Gerber. Forma patratica (rectangulara)." + +#: flatcamGUI/ObjectUI.py:671 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:168 +msgid "" +"Distance of the edges of the box\n" +"to the nearest polygon." +msgstr "" +"Distanta de la marginile formei înconjurătoare\n" +"pana la cel mai apropiat poligon." + +#: flatcamGUI/ObjectUI.py:685 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:181 +msgid "" +"If the bounding box is \n" +"to have rounded corners\n" +"their radius is equal to\n" +"the margin." +msgstr "" +"Daca forma înconjurătoare să aibă colțuri rotunjite.\n" +"Raza acesor colțuri va fi egală cu parametrul Margine." + +#: flatcamGUI/ObjectUI.py:694 +msgid "Generate the Geometry object." +msgstr "Generează obiectul Geometrie." + +#: flatcamGUI/ObjectUI.py:721 +msgid "Excellon Object" +msgstr "Obiect Excellon" + +#: flatcamGUI/ObjectUI.py:733 +msgid "Solid circles." +msgstr "Cercuri solide." + +#: flatcamGUI/ObjectUI.py:781 flatcamGUI/ObjectUI.py:876 +#: flatcamGUI/ObjectUI.py:2336 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:71 +#: flatcamTools/ToolProperties.py:166 +msgid "Drills" +msgstr "Găuri" + +#: flatcamGUI/ObjectUI.py:781 flatcamGUI/ObjectUI.py:877 +#: flatcamGUI/ObjectUI.py:2336 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:158 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:72 +#: flatcamTools/ToolProperties.py:168 +msgid "Slots" +msgstr "Sloturi" + +#: flatcamGUI/ObjectUI.py:786 +msgid "" +"This is the Tool Number.\n" +"When ToolChange is checked, on toolchange event this value\n" +"will be showed as a T1, T2 ... Tn in the Machine Code.\n" +"\n" +"Here the tools are selected for G-code generation." +msgstr "" +"Acesta este numărul uneltei.\n" +"Când se foloseşte optiunea de pauza pt schimb unealtă,\n" +"la evenim. de schimb unealtă, va aparea sub forma T1, T2, etc\n" +"in codul masina CNC.\n" +"Aici se selectează uneltele pt generarea de G-Code." + +#: flatcamGUI/ObjectUI.py:791 flatcamGUI/ObjectUI.py:1510 +#: flatcamTools/ToolPaint.py:142 +msgid "" +"Tool Diameter. It's value (in current FlatCAM units) \n" +"is the cut width into the material." +msgstr "" +"Diametrul uneltei. Valoarea să (in unitati curente)\n" +"reprezinta lăţimea taieturii in material." + +#: flatcamGUI/ObjectUI.py:794 +msgid "" +"The number of Drill holes. Holes that are drilled with\n" +"a drill bit." +msgstr "" +"Numărul de găuri. Sunt găuri efectuate prin\n" +"operațiuni de găurire efectuate cu un burghiu." + +#: flatcamGUI/ObjectUI.py:797 +msgid "" +"The number of Slot holes. Holes that are created by\n" +"milling them with an endmill bit." +msgstr "" +"Numărul de sloturi. Sunt găuri efectuate\n" +"prin op. de frezare cu o freza." + +#: flatcamGUI/ObjectUI.py:800 +msgid "" +"Toggle display of the drills for the current tool.\n" +"This does not select the tools for G-code generation." +msgstr "" +"Comută afișarea găurilor pt unealta curentă.\n" +"Aceata nu selectează uneltele pt generarea G-Code." + +#: flatcamGUI/ObjectUI.py:818 flatcamGUI/ObjectUI.py:1662 +#: flatcamObjects/FlatCAMExcellon.py:514 flatcamObjects/FlatCAMExcellon.py:726 +#: flatcamObjects/FlatCAMExcellon.py:742 flatcamObjects/FlatCAMExcellon.py:746 +#: flatcamObjects/FlatCAMGeometry.py:323 flatcamObjects/FlatCAMGeometry.py:759 +#: flatcamObjects/FlatCAMGeometry.py:795 flatcamTools/ToolNCC.py:331 +#: flatcamTools/ToolNCC.py:797 flatcamTools/ToolNCC.py:811 +#: flatcamTools/ToolNCC.py:1196 flatcamTools/ToolPaint.py:314 +#: flatcamTools/ToolPaint.py:767 flatcamTools/ToolPaint.py:779 +#: flatcamTools/ToolPaint.py:1171 +msgid "Parameters for" +msgstr "Parametri pt" + +#: flatcamGUI/ObjectUI.py:821 flatcamGUI/ObjectUI.py:1665 +#: flatcamTools/ToolNCC.py:334 flatcamTools/ToolPaint.py:317 +msgid "" +"The data used for creating GCode.\n" +"Each tool store it's own set of such data." +msgstr "" +"Datele folosite pentru crearea codului GCode.\n" +"Fiecare unealtă stochează un subset de asemenea date." + +#: flatcamGUI/ObjectUI.py:847 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:48 +msgid "" +"Operation type:\n" +"- Drilling -> will drill the drills/slots associated with this tool\n" +"- Milling -> will mill the drills/slots" +msgstr "" +"Tip operatie:\n" +"- Găurire -> va găuri găurile/sloturile associate acestei unelte\n" +"- Frezare -> va freza găurile/sloturile" + +#: flatcamGUI/ObjectUI.py:853 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:54 +msgid "Drilling" +msgstr "Găurire" + +#: flatcamGUI/ObjectUI.py:854 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:55 +msgid "Milling" +msgstr "Frezare" + +#: flatcamGUI/ObjectUI.py:869 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:64 +msgid "" +"Milling type:\n" +"- Drills -> will mill the drills associated with this tool\n" +"- Slots -> will mill the slots associated with this tool\n" +"- Both -> will mill both drills and mills or whatever is available" +msgstr "" +"Tip frezare:\n" +"- Găuri -> va freza găurile asociate acestei unelte\n" +"- Sloturi -> va freza sloturile asociate acestei unelte\n" +"- Ambele -> va freza atat găurile cat si sloturile sau doar acelea care sunt " +"disponibile" + +#: flatcamGUI/ObjectUI.py:878 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:73 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:210 +#: flatcamTools/ToolFilm.py:258 +msgid "Both" +msgstr "Ambele" + +#: flatcamGUI/ObjectUI.py:886 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:80 +msgid "Milling Diameter" +msgstr "Dia frezare" + +#: flatcamGUI/ObjectUI.py:888 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:82 +msgid "The diameter of the tool who will do the milling" +msgstr "Diametrul frezei când se frezează sloturile" + +#: flatcamGUI/ObjectUI.py:902 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:95 +msgid "" +"Drill depth (negative)\n" +"below the copper surface." +msgstr "" +"Adâncimea de tăiere (valoare negativă).\n" +"Daca se foloseşte o val. pozitivă, aplicaţia\n" +"va incerca in mod automat să schimbe semnul." + +#: flatcamGUI/ObjectUI.py:921 flatcamGUI/ObjectUI.py:1724 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:113 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:68 +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:79 +#: flatcamTools/ToolCutOut.py:159 +msgid "Multi-Depth" +msgstr "Multi-Pas" + +#: flatcamGUI/ObjectUI.py:924 flatcamGUI/ObjectUI.py:1727 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:116 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:71 +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:82 +#: flatcamTools/ToolCutOut.py:162 +msgid "" +"Use multiple passes to limit\n" +"the cut depth in each pass. Will\n" +"cut multiple times until Cut Z is\n" +"reached." +msgstr "" +"Folosiți mai multe pase pentru a limita\n" +"adâncimea tăiată în fiecare trecere. Se\n" +"va tăia de mai multe ori până când este\n" +"atins Z de tăiere, Z Cut." + +#: flatcamGUI/ObjectUI.py:937 flatcamGUI/ObjectUI.py:1741 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:128 +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:94 +#: flatcamTools/ToolCutOut.py:176 +msgid "Depth of each pass (positive)." +msgstr "" +"Adâncimea pentru fiecare trecere.\n" +"Valoare pozitivă, in unitatile curente." + +#: flatcamGUI/ObjectUI.py:948 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:136 +msgid "" +"Tool height when travelling\n" +"across the XY plane." +msgstr "" +"Înălţimea la care unealtă se deplasează\n" +"in planul X-Y, fără a efectua taieri, adica\n" +"in afara materialului." + +#: flatcamGUI/ObjectUI.py:969 flatcamGUI/ObjectUI.py:1771 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:187 +msgid "" +"Cutting speed in the XY\n" +"plane in units per minute" +msgstr "" +"Viteza de tăiere in planul X-Y\n" +"in unitati pe minut" + +#: flatcamGUI/ObjectUI.py:984 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:209 +msgid "" +"Tool speed while drilling\n" +"(in units per minute).\n" +"So called 'Plunge' feedrate.\n" +"This is for linear move G01." +msgstr "" +"Viteza uneltei când se face găuriea\n" +"(in unitati pe minut).\n" +"Asa numita viteza unealta tip \"plunge\".\n" +"Aceasta este mișcarea lineara G01." + +#: flatcamGUI/ObjectUI.py:999 flatcamGUI/ObjectUI.py:1798 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:80 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:64 +msgid "Feedrate Rapids" +msgstr "Feedrate rapizi" + +#: flatcamGUI/ObjectUI.py:1001 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:82 +msgid "" +"Tool speed while drilling\n" +"(in units per minute).\n" +"This is for the rapid move G00.\n" +"It is useful only for Marlin,\n" +"ignore for any other cases." +msgstr "" +"Viteza de găurire, in unitati pe minut.\n" +"Corespunde comenzii G0 și este utila doar pentru\n" +"printerul 3D Marlin, implicit când se foloseşte fişierul\n" +"postprocesor: Marlin. Ignora aceasta parametru in rest." + +#: flatcamGUI/ObjectUI.py:1021 flatcamGUI/ObjectUI.py:1818 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:82 +msgid "Re-cut" +msgstr "Re-tăiere" + +#: flatcamGUI/ObjectUI.py:1023 flatcamGUI/ObjectUI.py:1036 +#: flatcamGUI/ObjectUI.py:1820 flatcamGUI/ObjectUI.py:1832 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:84 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:96 +msgid "" +"In order to remove possible\n" +"copper leftovers where first cut\n" +"meet with last cut, we generate an\n" +"extended cut over the first cut section." +msgstr "" +"Bifează daca se dorește o siguranţă ca resturile de cupru\n" +"care pot ramane acolo unde se intalneste inceputul taierii\n" +"cu sfârşitul acesteia (este vorba de un contur), sunt eliminate\n" +"prin taierea peste acest punct." + +#: flatcamGUI/ObjectUI.py:1049 flatcamGUI/ObjectUI.py:1841 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:216 +#: flatcamObjects/FlatCAMExcellon.py:1332 +#: flatcamObjects/FlatCAMGeometry.py:1622 +msgid "Spindle speed" +msgstr "Viteza motor" + +#: flatcamGUI/ObjectUI.py:1051 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:224 +msgid "" +"Speed of the spindle\n" +"in RPM (optional)" +msgstr "" +"Viteza cu care se roteste motorul ('Spindle').\n" +"In RPM (rotatii pe minut).\n" +"Acest parametru este optional și se poate lasa gol\n" +"daca nu se foloseşte." + +#: flatcamGUI/ObjectUI.py:1066 flatcamGUI/ObjectUI.py:1860 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:238 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:234 +msgid "" +"Pause to allow the spindle to reach its\n" +"speed before cutting." +msgstr "" +"O pauza care permite motorului să ajunga la turatia specificata,\n" +"inainte de a incepe mișcarea spre poziţia de tăiere (găurire)." + +#: flatcamGUI/ObjectUI.py:1077 flatcamGUI/ObjectUI.py:1870 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:246 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:239 +msgid "Number of time units for spindle to dwell." +msgstr "Timpul (ori secunde ori milisec) cat se stă in pauză." + +#: flatcamGUI/ObjectUI.py:1087 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:46 +msgid "Offset Z" +msgstr "Ofset Z" + +#: flatcamGUI/ObjectUI.py:1089 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:48 +msgid "" +"Some drill bits (the larger ones) need to drill deeper\n" +"to create the desired exit hole diameter due of the tip shape.\n" +"The value here can compensate the Cut Z parameter." +msgstr "" +"Unele burghie (in special cele cu diametru mai mare)\n" +"au nevoie să găurească mai adanc pentru a depăși conul\n" +"din vârful burghiului astfel încât diametrul găurii de ieșire\n" +"să fie cel dorit.\n" +"Valoarea de aici efectuează o compensare asupra\n" +"parametrului >Z tăiere<." + +#: flatcamGUI/ObjectUI.py:1149 flatcamGUI/ObjectUI.py:1924 +#: flatcamTools/ToolNCC.py:492 flatcamTools/ToolPaint.py:423 +msgid "Apply parameters to all tools" +msgstr "Aplicați parametrii la toate Uneltele" + +#: flatcamGUI/ObjectUI.py:1151 flatcamGUI/ObjectUI.py:1926 +#: flatcamTools/ToolNCC.py:494 flatcamTools/ToolPaint.py:425 +msgid "" +"The parameters in the current form will be applied\n" +"on all the tools from the Tool Table." +msgstr "" +"Parametrii din formularul curent vor fi aplicați\n" +"la toate Uneltele din Tabelul Unelte." + +#: flatcamGUI/ObjectUI.py:1162 flatcamGUI/ObjectUI.py:1937 +#: flatcamTools/ToolNCC.py:505 flatcamTools/ToolPaint.py:436 +msgid "Common Parameters" +msgstr "Parametrii Comuni" + +#: flatcamGUI/ObjectUI.py:1164 flatcamGUI/ObjectUI.py:1939 +#: flatcamTools/ToolNCC.py:507 flatcamTools/ToolPaint.py:438 +msgid "Parameters that are common for all tools." +msgstr "Parametrii care sunt comuni pentru toate uneltele." + +#: flatcamGUI/ObjectUI.py:1169 flatcamGUI/ObjectUI.py:1944 +msgid "Tool change Z" +msgstr "Z schimb unealtă" + +#: flatcamGUI/ObjectUI.py:1171 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:154 +msgid "" +"Include tool-change sequence\n" +"in G-Code (Pause for tool change)." +msgstr "" +"Include o secventa de schimbare unealtă\n" +"in codul G-Code (pauza pentru schimbare unealtă).\n" +"De obicei este folosita comanda G-Code M6." + +#: flatcamGUI/ObjectUI.py:1178 flatcamGUI/ObjectUI.py:1955 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:162 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:134 +msgid "" +"Z-axis position (height) for\n" +"tool change." +msgstr "Înălţimea, pe axa Z, pentru schimbul uneltei." + +#: flatcamGUI/ObjectUI.py:1195 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:71 +msgid "" +"Height of the tool just after start.\n" +"Delete the value if you don't need this feature." +msgstr "" +"Înălţimea uneltei imediat dupa ce se porneste operatia CNC.\n" +"Lasa casuta goala daca nu se foloseşte." + +#: flatcamGUI/ObjectUI.py:1204 flatcamGUI/ObjectUI.py:1983 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:178 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:153 +msgid "End move Z" +msgstr "Z oprire" + +#: flatcamGUI/ObjectUI.py:1206 flatcamGUI/ObjectUI.py:1985 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:180 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:155 +msgid "" +"Height of the tool after\n" +"the last move at the end of the job." +msgstr "Înălţimea la care se parchează freza dupa ce se termina lucrul." + +#: flatcamGUI/ObjectUI.py:1223 flatcamGUI/ObjectUI.py:2002 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:195 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:173 +msgid "End move X,Y" +msgstr "X-Y Ultima miscare" + +#: flatcamGUI/ObjectUI.py:1225 flatcamGUI/ObjectUI.py:2004 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:197 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:175 +msgid "" +"End move X,Y position. In format (x,y).\n" +"If no value is entered then there is no move\n" +"on X,Y plane at the end of the job." +msgstr "" +"Pozitia X-Y pt ultima miscare. In format (x,y).\n" +"Dacă nici-o valoare nu este introdusă atunci nici-o miscare nu va fi\n" +"efectuată la final." + +#: flatcamGUI/ObjectUI.py:1235 flatcamGUI/ObjectUI.py:1878 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:96 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:105 +msgid "Probe Z depth" +msgstr "Z sonda" + +#: flatcamGUI/ObjectUI.py:1237 flatcamGUI/ObjectUI.py:1880 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:98 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:107 +msgid "" +"The maximum depth that the probe is allowed\n" +"to probe. Negative value, in current units." +msgstr "" +"Adâncimea maxima la care este permis sondei să coboare.\n" +"Are o valoare negativă, in unitatile curente." + +#: flatcamGUI/ObjectUI.py:1254 flatcamGUI/ObjectUI.py:1895 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:109 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:120 +msgid "Feedrate Probe" +msgstr "Feedrate sonda" + +#: flatcamGUI/ObjectUI.py:1256 flatcamGUI/ObjectUI.py:1897 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:111 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:122 +msgid "The feedrate used while the probe is probing." +msgstr "Viteza sondei când aceasta coboara." + +#: flatcamGUI/ObjectUI.py:1272 +msgid "Preprocessor E" +msgstr "Postprocesor E" + +#: flatcamGUI/ObjectUI.py:1274 +msgid "" +"The preprocessor JSON file that dictates\n" +"Gcode output for Excellon Objects." +msgstr "" +"Fișierul JSON postprocesor care dictează\n" +"codul Gcode pentru obiectele Excellon." + +#: flatcamGUI/ObjectUI.py:1284 +msgid "Preprocessor G" +msgstr "Postprocesor G" + +#: flatcamGUI/ObjectUI.py:1286 +msgid "" +"The preprocessor JSON file that dictates\n" +"Gcode output for Geometry (Milling) Objects." +msgstr "" +"Fișierul JSON postprocesor care dictează\n" +"codul Gcode pentru obiectele Geometrie (cand se frezează)." + +#: flatcamGUI/ObjectUI.py:1310 flatcamGUI/ObjectUI.py:2108 +msgid "" +"Add / Select at least one tool in the tool-table.\n" +"Click the # header to select all, or Ctrl + LMB\n" +"for custom selection of tools." +msgstr "" +"Adaugă/selectează cel puțin o unealtă in Tabela de Unelte.\n" +"Click pe header coloana # pentru selectarea a toate sau CTRL + LMB click\n" +"pentru o selecţie personalizată de unelte." + +#: flatcamGUI/ObjectUI.py:1318 flatcamGUI/ObjectUI.py:2115 +msgid "Generate CNCJob object" +msgstr "Generează un obiect CNCJob" + +#: flatcamGUI/ObjectUI.py:1320 +msgid "" +"Generate the CNC Job.\n" +"If milling then an additional Geometry object will be created" +msgstr "" +"Generează obiectul CNCJob.\n" +"Dacă se frezează atunci va fi creat un obiect Geometrie additional" + +#: flatcamGUI/ObjectUI.py:1337 +msgid "Milling Geometry" +msgstr "Geometrie Frezare" + +#: flatcamGUI/ObjectUI.py:1339 +msgid "" +"Create Geometry for milling holes.\n" +"Select from the Tools Table above the hole dias to be\n" +"milled. Use the # column to make the selection." +msgstr "" +"Creați Geometrie pentru frezare de găuri.\n" +"Selectați din tabelul Unelte de deasupra găurile\n" +"care trebuie frezate. Utilizați coloana # pentru a face selecția." + +#: flatcamGUI/ObjectUI.py:1347 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:296 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:45 +msgid "Diameter of the cutting tool." +msgstr "Diametrul uneltei taietoare." + +#: flatcamGUI/ObjectUI.py:1357 +msgid "Mill Drills" +msgstr "Frezare Găuri" + +#: flatcamGUI/ObjectUI.py:1359 +msgid "" +"Create the Geometry Object\n" +"for milling DRILLS toolpaths." +msgstr "" +"Crează un obiect tip Geometrie pt.\n" +"frezarea rutelor create din Găuri." + +#: flatcamGUI/ObjectUI.py:1377 +msgid "Mill Slots" +msgstr "Frezare Sloturi" + +#: flatcamGUI/ObjectUI.py:1379 +msgid "" +"Create the Geometry Object\n" +"for milling SLOTS toolpaths." +msgstr "" +"Crează un obiect tip Geometrie pt.\n" +"frezarea rutelor create din Sloturi." + +#: flatcamGUI/ObjectUI.py:1421 flatcamTools/ToolCutOut.py:319 +msgid "Geometry Object" +msgstr "Obiect Geometrie" + +#: flatcamGUI/ObjectUI.py:1467 +msgid "" +"Tools in this Geometry object used for cutting.\n" +"The 'Offset' entry will set an offset for the cut.\n" +"'Offset' can be inside, outside, on path (none) and custom.\n" +"'Type' entry is only informative and it allow to know the \n" +"intent of using the current tool. \n" +"It can be Rough(ing), Finish(ing) or Iso(lation).\n" +"The 'Tool type'(TT) can be circular with 1 to 4 teeths(C1..C4),\n" +"ball(B), or V-Shaped(V). \n" +"When V-shaped is selected the 'Type' entry is automatically \n" +"set to Isolation, the CutZ parameter in the UI form is\n" +"grayed out and Cut Z is automatically calculated from the newly \n" +"showed UI form entries named V-Tip Dia and V-Tip Angle." +msgstr "" +"Uneltele din acest obiect Geometrie folosit pentru tăiere.\n" +"Intrarea >Ofset< va seta un ofset pentru tăiere.\n" +"Acesta poate fi Inauntru, In afară, Pe cale și Personalizat.\n" +"Intrarea >Tip< este doar informativa și permite să stim intenția\n" +"pentru care folosim unealta aleasă.\n" +"Poate să fie Grosier, Finisare și Izolaţie.\n" +"Intrarea >Tip unealta< (TU) poate fi: Circular (cu unul sau mai\n" +"multi dinti C1 ...C4), rotunda (B) sau cu vârf V-Shape (V).\n" +"\n" +"Când V-shape este selectat atunci și >Tip< este automat setat \n" +"in 'Izolare', prametrul >Z tăiere< din UI este dezactivat (gri) pt că\n" +"este acum calculat automat din doi noi parametri care sunt afisati:\n" +"- V-Dia \n" +"- V-unghi." + +#: flatcamGUI/ObjectUI.py:1484 flatcamGUI/ObjectUI.py:2313 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:40 +msgid "Plot Object" +msgstr "Afisează" + +#: flatcamGUI/ObjectUI.py:1497 flatcamGUI/ObjectUI.py:2326 +#: flatcamGUI/ObjectUI.py:2336 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:138 +#: flatcamTools/ToolCopperThieving.py:221 +msgid "Dia" +msgstr "Dia" + +#: flatcamGUI/ObjectUI.py:1497 flatcamGUI/ObjectUI.py:2326 +#: flatcamTools/ToolNCC.py:132 flatcamTools/ToolPaint.py:128 +msgid "TT" +msgstr "TU" + +#: flatcamGUI/ObjectUI.py:1504 +msgid "" +"This is the Tool Number.\n" +"When ToolChange is checked, on toolchange event this value\n" +"will be showed as a T1, T2 ... Tn" +msgstr "" +"Acesta este numărul uneltei.\n" +"Când se foloseşte optiunea de pauza pt schimb unealtă,\n" +"la evenim. de schimb unealtă, va aparea sub forma T1, T2, etc\n" +"in codul masina CNC" + +#: flatcamGUI/ObjectUI.py:1515 +msgid "" +"The value for the Offset can be:\n" +"- Path -> There is no offset, the tool cut will be done through the geometry " +"line.\n" +"- In(side) -> The tool cut will follow the geometry inside. It will create a " +"'pocket'.\n" +"- Out(side) -> The tool cut will follow the geometry line on the outside." +msgstr "" +"Valorile pt Ofset pot fi:\n" +"- Pe cale -> Ofsetul este zero, tăietura va fi efectuatat pe linia " +"geometrică\n" +"- În(ăuntru) -> Tăietura va urma geometria pe interior. Va crea un " +"'buzunar'\n" +"- Afară-> Tăietura va urma geometria pe exterior." + +#: flatcamGUI/ObjectUI.py:1522 +msgid "" +"The (Operation) Type has only informative value. Usually the UI form " +"values \n" +"are choose based on the operation type and this will serve as a reminder.\n" +"Can be 'Roughing', 'Finishing' or 'Isolation'.\n" +"For Roughing we may choose a lower Feedrate and multiDepth cut.\n" +"For Finishing we may choose a higher Feedrate, without multiDepth.\n" +"For Isolation we need a lower Feedrate as it use a milling bit with a fine " +"tip." +msgstr "" +"Tipul (operaţiei efectuate cu unealta) are doar o valoare informativa. De " +"obicei\n" +"valorile din UI sunt alese bazate pe tipul operaţiei și acesta ne serveste " +"ca și\n" +"notificare. Poate să fie: Grosier, Finisare sau Izolare.\n" +"Grosier -> putem alege de ex un feedrate scazut și tăiere in mai multe " +"etape.\n" +"Finisare -> alegem un feedrate mai mare și tăiere dintr-o singură operaţie\n" +"Izolare -> avem nevoie de un feedrate scazut pt ca se foloseşte o freza cu " +"un\n" +"vârf fin, ascuțit." + +#: flatcamGUI/ObjectUI.py:1531 +msgid "" +"The Tool Type (TT) can be:\n" +"- Circular with 1 ... 4 teeth -> it is informative only. Being circular the " +"cut width in material\n" +"is exactly the tool diameter.\n" +"- Ball -> informative only and make reference to the Ball type endmill.\n" +"- V-Shape -> it will disable Z-Cut parameter in the UI form and enable two " +"additional UI form\n" +"fields: V-Tip Dia and V-Tip Angle. Adjusting those two values will adjust " +"the Z-Cut parameter such\n" +"as the cut width into material will be equal with the value in the Tool " +"Diameter column of this table.\n" +"Choosing the V-Shape Tool Type automatically will select the Operation Type " +"as Isolation." +msgstr "" +"Tipul Uneltei (TU) poate fi:\n" +"- Circular cu 1 ... 4 dinti -> are aspect informativ. Lăţimea de tăiere este " +"exact diametrul uneltei.\n" +"- Rotund (ball) -> val. informativa și face referinţă la tipul de freza " +"Ball\n" +"- V-Shape -> produce modificari in UI. Va dezactiva parametrul >Z tăiere< " +"deoarece acesta va fi\n" +"calculat automat din valorile >V-dia< și >V-unghi, parametri care sunt acum " +"afisati in UI, cat și din\n" +"lăţimea de tăiere in material care este de fapt valoarea diametrului " +"uneltei.\n" +"Alegerea tipului V-Shape (forma in V) va selecta automat Tipul de Operaţie " +"ca Izolare." + +#: flatcamGUI/ObjectUI.py:1543 +msgid "" +"Plot column. It is visible only for MultiGeo geometries, meaning geometries " +"that holds the geometry\n" +"data into the tools. For those geometries, deleting the tool will delete the " +"geometry data also,\n" +"so be WARNED. From the checkboxes on each row it can be enabled/disabled the " +"plot on canvas\n" +"for the corresponding tool." +msgstr "" +"Coloana de afișare. Este vizibila doar pentru obiecte Geometrie de tip " +"MultiGeo, ceea ce inseamna că\n" +"obiectul stochează datele geometrice in variabilele unelte. \n" +"\n" +"ATENTIE: Pentru aceste obiecte, ștergerea unei unelte conduce automat și la " +"ștergerea \n" +"datelor geometrice asociate. Din checkbox-urile asociate, fiecarei unelte i " +"se poate activa/dezactiva\n" +"afișarea in canvas." + +#: flatcamGUI/ObjectUI.py:1561 +msgid "" +"The value to offset the cut when \n" +"the Offset type selected is 'Offset'.\n" +"The value can be positive for 'outside'\n" +"cut and negative for 'inside' cut." +msgstr "" +"Valoarea cu care se face ofset când tipul de ofset selectat\n" +"este >Ofset<. Aceasta valoare poate fi pozitivă pentru un ofset\n" +"in exterior sau poate fi negativă pentru un ofset in interior." + +#: flatcamGUI/ObjectUI.py:1580 flatcamTools/ToolNCC.py:209 +#: flatcamTools/ToolNCC.py:923 flatcamTools/ToolPaint.py:192 +#: flatcamTools/ToolPaint.py:849 flatcamTools/ToolSolderPaste.py:559 +msgid "New Tool" +msgstr "O Noua Unealtă" + +#: flatcamGUI/ObjectUI.py:1597 +msgid "" +"Add a new tool to the Tool Table\n" +"with the specified diameter." +msgstr "" +"Adăugați o Unealta noua in Tabelul de Unelte\n" +"cu diametrul specificat." + +#: flatcamGUI/ObjectUI.py:1602 flatcamTools/ToolNCC.py:300 +#: flatcamTools/ToolNCC.py:634 flatcamTools/ToolPaint.py:283 +#: flatcamTools/ToolPaint.py:679 +msgid "Add from DB" +msgstr "Adaugă Unealtă din DB" + +#: flatcamGUI/ObjectUI.py:1604 flatcamTools/ToolNCC.py:302 +#: flatcamTools/ToolPaint.py:285 +msgid "" +"Add a new tool to the Tool Table\n" +"from the Tool DataBase." +msgstr "" +"Adaugă o noua unealta in Tabela de Unelte,\n" +"din DB Unelte." + +#: flatcamGUI/ObjectUI.py:1619 +msgid "" +"Copy a selection of tools in the Tool Table\n" +"by first selecting a row in the Tool Table." +msgstr "" +"Copiază o selecţie de unelte in Tabela de Unelte prin\n" +"selectarea unei linii (sau mai multe) in Tabela de Unelte." + +#: flatcamGUI/ObjectUI.py:1625 +msgid "" +"Delete a selection of tools in the Tool Table\n" +"by first selecting a row in the Tool Table." +msgstr "" +"Șterge o selecţie de unelte in Tabela de Unelte prin\n" +"selectarea unei linii (sau mai multe) in Tabela de Unelte." + +#: flatcamGUI/ObjectUI.py:1752 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:103 +msgid "" +"Height of the tool when\n" +"moving without cutting." +msgstr "" +"Înălţimea la care se misca unealta când nu taie,\n" +"deasupra materialului." + +#: flatcamGUI/ObjectUI.py:1785 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:202 +msgid "" +"Cutting speed in the XY\n" +"plane in units per minute.\n" +"It is called also Plunge." +msgstr "" +"Viteza de tăiere in planul Z\n" +"in unitati pe minut.\n" +"Mai este numita și viteza de plonjare." + +#: flatcamGUI/ObjectUI.py:1800 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:66 +msgid "" +"Cutting speed in the XY plane\n" +"(in units per minute).\n" +"This is for the rapid move G00.\n" +"It is useful only for Marlin,\n" +"ignore for any other cases." +msgstr "" +"Viteza de tăiere in planul X-Y, in unitati pe minut,\n" +"in legatura cu comanda G00.\n" +"Este utila doar când se foloseşte cu un printer 3D Marlin,\n" +"pentru toate celelalte cazuri ignora acest parametru." + +#: flatcamGUI/ObjectUI.py:1844 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:219 +msgid "" +"Speed of the spindle in RPM (optional).\n" +"If LASER preprocessor is used,\n" +"this value is the power of laser." +msgstr "" +"Viteza motorului in RPM (optional).\n" +"Daca postprocesorul Laser este folosit,\n" +"valoarea să este puterea laserului." + +#: flatcamGUI/ObjectUI.py:1947 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:124 +msgid "" +"Include tool-change sequence\n" +"in the Machine Code (Pause for tool change)." +msgstr "" +"Include o secventa de schimb unealtă in \n" +"codul masina CNC. O pauza pentru schimbul\n" +"uneltei (M6)." + +#: flatcamGUI/ObjectUI.py:2016 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:256 +msgid "" +"The Preprocessor file that dictates\n" +"the Machine Code (like GCode, RML, HPGL) output." +msgstr "" +"Fişierul postprocesor care controlează generarea\n" +"codului masina CNC (GCode, RML, HPGL) care \n" +"mai apoi este salvat." + +#: flatcamGUI/ObjectUI.py:2028 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:201 +msgid "Exclusion areas" +msgstr "Zone de Excludere" + +#: flatcamGUI/ObjectUI.py:2031 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:204 +msgid "" +"Include exclusion areas.\n" +"In those areas the travel of the tools\n" +"is forbidden." +msgstr "" +"Includeți zone de excludere.\n" +"În acele zone deplasarea uneltelor\n" +"este interzisă." + +#: flatcamGUI/ObjectUI.py:2053 +msgid "Add area" +msgstr "Adaugă Zonă" + +#: flatcamGUI/ObjectUI.py:2054 +msgid "Add an Exclusion Area." +msgstr "Adăugați o zonă de excludere." + +#: flatcamGUI/ObjectUI.py:2058 +msgid "Clear areas" +msgstr "Ștergeți Zonele" + +#: flatcamGUI/ObjectUI.py:2059 +msgid "Delete all exclusion areas." +msgstr "" +"Ștergeți toate zonele de excludere.Ștergeți toate extensiile din listă." + +#: flatcamGUI/ObjectUI.py:2068 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:212 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:322 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:286 +#: flatcamTools/ToolNCC.py:578 flatcamTools/ToolPaint.py:522 +msgid "Shape" +msgstr "Formă" + +#: flatcamGUI/ObjectUI.py:2070 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:214 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:324 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:288 +#: flatcamTools/ToolNCC.py:580 flatcamTools/ToolPaint.py:524 +msgid "The kind of selection shape used for area selection." +msgstr "Selectează forma de selectie folosita pentru selectia zonală." + +#: flatcamGUI/ObjectUI.py:2080 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:224 +msgid "Strategy" +msgstr "Strategie" + +#: flatcamGUI/ObjectUI.py:2081 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:225 +msgid "" +"The strategy followed when encountering an exclusion area.\n" +"Can be:\n" +"- Over -> when encountering the area, the tool will go to a set height\n" +"- Around -> will avoid the exclusion area by going around the area" +msgstr "" +"Strategia urmată atunci când întâlnești o zonă de excludere.\n" +"Poate fi:\n" +"- Peste -> când întâlniți zona, instrumentul va merge la o înălțime setată\n" +"- În jur -> va evita zona de excludere ocolind zona" + +#: flatcamGUI/ObjectUI.py:2085 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:229 +msgid "Over" +msgstr "Peste" + +#: flatcamGUI/ObjectUI.py:2086 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:230 +msgid "Around" +msgstr "Inconjurare" + +#: flatcamGUI/ObjectUI.py:2092 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:236 +msgid "Over Z" +msgstr "Peste Z" + +#: flatcamGUI/ObjectUI.py:2093 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:237 +msgid "" +"The height Z to which the tool will rise in order to avoid\n" +"an interdiction area." +msgstr "" +"Înălțimea Z până la care unealta se va ridica pentru a evita\n" +"o zonă de interdicție." + +#: flatcamGUI/ObjectUI.py:2117 +msgid "Generate the CNC Job object." +msgstr "Generează un obiect CNCJob." + +#: flatcamGUI/ObjectUI.py:2134 +msgid "Launch Paint Tool in Tools Tab." +msgstr "" +"Lansează unealta FlatCAM numita Paint și\n" +"o instalează in Tab-ul Unealta." + +#: flatcamGUI/ObjectUI.py:2142 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:35 +msgid "" +"Creates tool paths to cover the\n" +"whole area of a polygon (remove\n" +"all copper). You will be asked\n" +"to click on the desired polygon." +msgstr "" +"Crează treceri taietoare pentru a acoperi\n" +"intreaga arie a unui poligon (pentru a indeparta\n" +"to cuprul, spre ex.). Când se actionează peste un\n" +"singur poligon se va cere să faceti click pe poligonul\n" +"dorit." + +#: flatcamGUI/ObjectUI.py:2197 +msgid "CNC Job Object" +msgstr "Obiect CNCJob" + +#: flatcamGUI/ObjectUI.py:2208 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:45 +msgid "Plot kind" +msgstr "Tip afișare" + +#: flatcamGUI/ObjectUI.py:2211 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:47 +msgid "" +"This selects the kind of geometries on the canvas to plot.\n" +"Those can be either of type 'Travel' which means the moves\n" +"above the work piece or it can be of type 'Cut',\n" +"which means the moves that cut into the material." +msgstr "" +"Aici se poate selecta tipul de afișare a geometriilor.\n" +"Acestea pot fi:\n" +"- Voiaj -> miscarile deasupra materialului\n" +"- Tăiere -> miscarile in material, tăiere." + +#: flatcamGUI/ObjectUI.py:2220 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:55 +msgid "Travel" +msgstr "Voiaj" + +#: flatcamGUI/ObjectUI.py:2224 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:64 +msgid "Display Annotation" +msgstr "Afişează notații" + +#: flatcamGUI/ObjectUI.py:2226 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:66 +msgid "" +"This selects if to display text annotation on the plot.\n" +"When checked it will display numbers in order for each end\n" +"of a travel line." +msgstr "" +"Aici se poate seta daca sa se afiseze notatiile text.\n" +"Cand este selectat va afisa numerele in ordine pt fiecare\n" +"capat al liniilor de traversare." + +#: flatcamGUI/ObjectUI.py:2241 +msgid "Travelled dist." +msgstr "Dist. parcursă" + +#: flatcamGUI/ObjectUI.py:2243 flatcamGUI/ObjectUI.py:2248 +msgid "" +"This is the total travelled distance on X-Y plane.\n" +"In current units." +msgstr "" +"Aceasta este distanţa totala parcursa in planul X-Y.\n" +"In unitatile curente." + +#: flatcamGUI/ObjectUI.py:2253 +msgid "Estimated time" +msgstr "Durată estimată" + +#: flatcamGUI/ObjectUI.py:2255 flatcamGUI/ObjectUI.py:2260 +msgid "" +"This is the estimated time to do the routing/drilling,\n" +"without the time spent in ToolChange events." +msgstr "" +"Acesta este timpul estimat pentru efectuarea traseului / găuririi,\n" +"fără timpul petrecut în evenimentele ToolChange." + +#: flatcamGUI/ObjectUI.py:2295 +msgid "CNC Tools Table" +msgstr "Tabela Unelte CNC" + +#: flatcamGUI/ObjectUI.py:2298 +msgid "" +"Tools in this CNCJob object used for cutting.\n" +"The tool diameter is used for plotting on canvas.\n" +"The 'Offset' entry will set an offset for the cut.\n" +"'Offset' can be inside, outside, on path (none) and custom.\n" +"'Type' entry is only informative and it allow to know the \n" +"intent of using the current tool. \n" +"It can be Rough(ing), Finish(ing) or Iso(lation).\n" +"The 'Tool type'(TT) can be circular with 1 to 4 teeths(C1..C4),\n" +"ball(B), or V-Shaped(V)." +msgstr "" +"Unelete folosite in acest obiect CNCJob pentru tăiere.\n" +"Diametrul uneltei este folosit pentru afișarea pe canvas.\n" +"Coloanele sunt:\n" +"- 'Ofset' -> poate fi in interior, in exterior, pe cale sau personalizat.\n" +"- 'Tipul' -> este doar informativ și poate fi: Grosier, Finisaj, Izolaţie\n" +"- 'Tipul uneltei' -> poate fi circular cu 1 ... 4 dinti, tip bila sau V-" +"Shape\n" +"(cu forma in V)." + +#: flatcamGUI/ObjectUI.py:2326 flatcamGUI/ObjectUI.py:2337 +msgid "P" +msgstr "P" + +#: flatcamGUI/ObjectUI.py:2347 +msgid "Update Plot" +msgstr "Actualiz. afișare" + +#: flatcamGUI/ObjectUI.py:2349 +msgid "Update the plot." +msgstr "Actualizează afișarea obiectelor." + +#: flatcamGUI/ObjectUI.py:2356 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:30 +msgid "Export CNC Code" +msgstr "Exporta codul masina CNC" + +#: flatcamGUI/ObjectUI.py:2358 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:32 +#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:33 +msgid "" +"Export and save G-Code to\n" +"make this object to a file." +msgstr "" +"Exportă și salvează codul G-Code intr-un fişier\n" +"care este salvat pe HDD." + +#: flatcamGUI/ObjectUI.py:2364 +msgid "Prepend to CNC Code" +msgstr "Adaugă la inceput in codul G-Code" + +#: flatcamGUI/ObjectUI.py:2366 flatcamGUI/ObjectUI.py:2373 +#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:49 +msgid "" +"Type here any G-Code commands you would\n" +"like to add at the beginning of the G-Code file." +msgstr "" +"Adaugă aici orice comenzi G-Code care se dorește să fie\n" +"inserate la inceputul codului G-Code." + +#: flatcamGUI/ObjectUI.py:2379 +msgid "Append to CNC Code" +msgstr "Adaugă la sfârşit in codul G-Code" + +#: flatcamGUI/ObjectUI.py:2381 flatcamGUI/ObjectUI.py:2389 +#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:65 +msgid "" +"Type here any G-Code commands you would\n" +"like to append to the generated file.\n" +"I.e.: M2 (End of program)" +msgstr "" +"Adaugă aici orice comenzi G-Code care se dorește să fie\n" +"inserate la sfârşitul codului G-Code." + +#: flatcamGUI/ObjectUI.py:2403 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:38 +msgid "Toolchange G-Code" +msgstr "G-Code pt schimb unealtă" + +#: flatcamGUI/ObjectUI.py:2406 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:41 +msgid "" +"Type here any G-Code commands you would\n" +"like to be executed when Toolchange event is encountered.\n" +"This will constitute a Custom Toolchange GCode,\n" +"or a Toolchange Macro.\n" +"The FlatCAM variables are surrounded by '%' symbol.\n" +"\n" +"WARNING: it can be used only with a preprocessor file\n" +"that has 'toolchange_custom' in it's name and this is built\n" +"having as template the 'Toolchange Custom' posprocessor file." +msgstr "" +"Plasează aici acele comenzi G-Code care se dorește să fie executate\n" +"atunci când evenimentul de tip Schimb Unealtă este intalnit.\n" +"Aceasta va constitui un Macro pentru schimbare unealtă.\n" +"Variabilele FlatCAM folosite aici sunt inconjurate de simbolul %.\n" +"\n" +"ATENTIE:\n" +"poate fi folosit doar cu un fişier postprocesor care contine " +"'toolchange_custom'\n" +"in numele sau." + +#: flatcamGUI/ObjectUI.py:2421 +msgid "" +"Type here any G-Code commands you would\n" +"like to be executed when Toolchange event is encountered.\n" +"This will constitute a Custom Toolchange GCode,\n" +"or a Toolchange Macro.\n" +"The FlatCAM variables are surrounded by '%' symbol.\n" +"WARNING: it can be used only with a preprocessor file\n" +"that has 'toolchange_custom' in it's name." +msgstr "" +"Plasează aici acele comenzi G-Code care se dorește să fie executate\n" +"atunci când evenimentul de tip Schimb Unealtă este intalnit.\n" +"Aceasta va constitui un Macro pentru schimbare unealtă.\n" +"Variabilele FlatCAM folosite aici sunt inconjurate de simbolul %.\n" +"ATENTIE:\n" +"Poate fi folosit doar cu un fişier pretprocesor care contine " +"'toolchange_custom'\n" +"in numele sau." + +#: flatcamGUI/ObjectUI.py:2436 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:80 +msgid "Use Toolchange Macro" +msgstr "Fol. Macro schimb unealtă" + +#: flatcamGUI/ObjectUI.py:2438 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:82 +msgid "" +"Check this box if you want to use\n" +"a Custom Toolchange GCode (macro)." +msgstr "" +"Bifează aici daca dorești să folosești Macro pentru\n" +"schimb unelte." + +#: flatcamGUI/ObjectUI.py:2446 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:94 +msgid "" +"A list of the FlatCAM variables that can be used\n" +"in the Toolchange event.\n" +"They have to be surrounded by the '%' symbol" +msgstr "" +"O lista de variabile FlatCAM care se pot folosi in evenimentul \n" +"de schimb al uneltei (când se intalneste comanda M6).\n" +"Este necesar să fie inconjurate de simbolul '%'" + +#: flatcamGUI/ObjectUI.py:2453 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:101 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:30 +#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:31 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:31 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:37 +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:36 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:36 +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:36 +#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:31 +#: flatcamGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:31 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:36 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:31 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:30 +#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:31 +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:32 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:31 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:31 +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:31 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:31 +#: flatcamGUI/preferences/tools/ToolsSubPrefGroupUI.py:31 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:31 +#: flatcamTools/ToolCopperThieving.py:89 flatcamTools/ToolFiducials.py:149 +#: flatcamTools/ToolInvertGerber.py:82 +msgid "Parameters" +msgstr "Parametri" + +#: flatcamGUI/ObjectUI.py:2456 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:106 +msgid "FlatCAM CNC parameters" +msgstr "Parametri FlatCAM CNC" + +#: flatcamGUI/ObjectUI.py:2457 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:111 +msgid "tool number" +msgstr "numărul uneltei" + +#: flatcamGUI/ObjectUI.py:2458 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:112 +msgid "tool diameter" +msgstr "diametrul sculei" + +#: flatcamGUI/ObjectUI.py:2459 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:113 +msgid "for Excellon, total number of drills" +msgstr "pentru Excellon, numărul total de operațiuni găurire" + +#: flatcamGUI/ObjectUI.py:2461 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:115 +msgid "X coord for Toolchange" +msgstr "Coordonata X pentru schimbarea uneltei" + +#: flatcamGUI/ObjectUI.py:2462 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:116 +msgid "Y coord for Toolchange" +msgstr "Coordonata Y pentru schimbarea uneltei" + +#: flatcamGUI/ObjectUI.py:2463 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:118 +msgid "Z coord for Toolchange" +msgstr "Coordonata Z pentru schimbarea uneltei" + +#: flatcamGUI/ObjectUI.py:2464 +msgid "depth where to cut" +msgstr "adâncimea de tăiere" + +#: flatcamGUI/ObjectUI.py:2465 +msgid "height where to travel" +msgstr "inălţimea deplasare" + +#: flatcamGUI/ObjectUI.py:2466 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:121 +msgid "the step value for multidepth cut" +msgstr "pasul pentru taierea progresiva" + +#: flatcamGUI/ObjectUI.py:2468 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:123 +msgid "the value for the spindle speed" +msgstr "valoarea viteza motor" + +#: flatcamGUI/ObjectUI.py:2470 +msgid "time to dwell to allow the spindle to reach it's set RPM" +msgstr "durata de asteptare ca motorul să ajunga la turatia setată" + +#: flatcamGUI/ObjectUI.py:2486 +msgid "View CNC Code" +msgstr "Vizualiz. codul CNC" + +#: flatcamGUI/ObjectUI.py:2488 +msgid "" +"Opens TAB to view/modify/print G-Code\n" +"file." +msgstr "" +"Deschide un nou tab pentru a vizualiza, modifica\n" +"sau tipari codul G-Code." + +#: flatcamGUI/ObjectUI.py:2493 +msgid "Save CNC Code" +msgstr "Salvează codul CNC" + +#: flatcamGUI/ObjectUI.py:2495 +msgid "" +"Opens dialog to save G-Code\n" +"file." +msgstr "" +"Deshide o fereastra dialog pentru salvarea codului\n" +"G-Code intr-un fişier." + +#: flatcamGUI/ObjectUI.py:2529 +msgid "Script Object" +msgstr "Editare Script" + +#: flatcamGUI/ObjectUI.py:2549 flatcamGUI/ObjectUI.py:2623 +msgid "Auto Completer" +msgstr "Autocompletare" + +#: flatcamGUI/ObjectUI.py:2551 +msgid "This selects if the auto completer is enabled in the Script Editor." +msgstr "" +"Aceasta selectează dacă completatorul automat este activat în Script Editor." + +#: flatcamGUI/ObjectUI.py:2596 +msgid "Document Object" +msgstr "Obiect document" + +#: flatcamGUI/ObjectUI.py:2625 +msgid "This selects if the auto completer is enabled in the Document Editor." +msgstr "" +"Aceasta selectează dacă completatorul automat este activat în Editorul de " +"documente." + +#: flatcamGUI/ObjectUI.py:2643 +msgid "Font Type" +msgstr "Tipul Font" + +#: flatcamGUI/ObjectUI.py:2660 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:197 +msgid "Font Size" +msgstr "Dim. Font" + +#: flatcamGUI/ObjectUI.py:2696 +msgid "Alignment" +msgstr "Aliniere" + +#: flatcamGUI/ObjectUI.py:2701 +msgid "Align Left" +msgstr "Aliniați la stânga" + +#: flatcamGUI/ObjectUI.py:2711 +msgid "Align Right" +msgstr "Aliniați la dreapta" + +#: flatcamGUI/ObjectUI.py:2716 +msgid "Justify" +msgstr "Aliniere duala" + +#: flatcamGUI/ObjectUI.py:2723 +msgid "Font Color" +msgstr "Culoare FOnt" + +#: flatcamGUI/ObjectUI.py:2725 +msgid "Set the font color for the selected text" +msgstr "Setați culoarea fontului pentru textul selectat" + +#: flatcamGUI/ObjectUI.py:2739 +msgid "Selection Color" +msgstr "Culoare de selecție" + +#: flatcamGUI/ObjectUI.py:2741 +msgid "Set the selection color when doing text selection." +msgstr "Setați culoarea de selecție atunci când faceți selecția textului." + +#: flatcamGUI/ObjectUI.py:2755 +msgid "Tab Size" +msgstr "Dimens. filei" + +#: flatcamGUI/ObjectUI.py:2757 +msgid "Set the tab size. In pixels. Default value is 80 pixels." +msgstr "" +"Setați dimensiunea filei. În pixeli. Valoarea implicită este de 80 pixeli." + +#: flatcamGUI/PlotCanvasLegacy.py:1299 +msgid "" +"Could not annotate due of a difference between the number of text elements " +"and the number of text positions." +msgstr "" +"Nu s-a putut adnota datorită unei diferențe între numărul de elemente de " +"text și numărul de locații de text." + +#: flatcamGUI/preferences/PreferencesUIManager.py:911 +msgid "Preferences applied." +msgstr "Preferințele au fost aplicate." + +#: flatcamGUI/preferences/PreferencesUIManager.py:975 +msgid "Preferences closed without saving." +msgstr "Tab-ul Preferințe a fost închis fără a salva." + +#: flatcamGUI/preferences/PreferencesUIManager.py:987 +msgid "Preferences default values are restored." +msgstr "Valorile implicite pt preferințe sunt restabilite." + +#: flatcamGUI/preferences/PreferencesUIManager.py:1022 +#: flatcamGUI/preferences/PreferencesUIManager.py:1131 +msgid "Preferences saved." +msgstr "Preferințele au fost salvate." + +#: flatcamGUI/preferences/PreferencesUIManager.py:1072 +msgid "Preferences edited but not saved." +msgstr "Preferințele au fost editate dar nu au fost salvate." + +#: flatcamGUI/preferences/PreferencesUIManager.py:1117 +msgid "" +"One or more values are changed.\n" +"Do you want to save the Preferences?" +msgstr "" +"Una sau mai multe valori au fost schimbate.\n" +"Dorești să salvezi Preferințele?" + +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:27 +msgid "CNC Job Adv. Options" +msgstr "Opțiuni Avans. CNCJob" + +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:64 +msgid "" +"Type here any G-Code commands you would like to be executed when Toolchange " +"event is encountered.\n" +"This will constitute a Custom Toolchange GCode, or a Toolchange Macro.\n" +"The FlatCAM variables are surrounded by '%' symbol.\n" +"WARNING: it can be used only with a preprocessor file that has " +"'toolchange_custom' in it's name." +msgstr "" +"Plasează aici acele comenzi G-Code care se dorește să fie executate atunci " +"când evenimentul de tip Schimb Unealtă este intalnit.\n" +"Aceasta va constitui un Macro pentru schimbare unealtă.\n" +"Variabilele FlatCAM folosite aici sunt inconjurate de simbolul %.\n" +"\n" +"ATENTIE:\n" +"poate fi folosit doar cu un fişier postprocesor care contine " +"'toolchange_custom' în nume." + +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:119 +msgid "Z depth for the cut" +msgstr "Z adâncimea de tăiere" + +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:120 +msgid "Z height for travel" +msgstr "Z Înălţimea deplasare" + +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:126 +msgid "dwelltime = time to dwell to allow the spindle to reach it's set RPM" +msgstr "dwelltime = durata de asteptare ca motorul să ajunga la turatia setată" + +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:145 +msgid "Annotation Size" +msgstr "Dim. anotate" + +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:147 +msgid "The font size of the annotation text. In pixels." +msgstr "Dimensiunea fontului pt. textul cu notatii. In pixeli." + +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:157 +msgid "Annotation Color" +msgstr "Culoarea anotatii" + +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:159 +msgid "Set the font color for the annotation texts." +msgstr "Setează culoarea pentru textul cu anotatii." + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:26 +msgid "CNC Job General" +msgstr "CNCJob General" + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:77 +#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:47 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:59 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:45 +msgid "Circle Steps" +msgstr "Pași pt. cerc" + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:79 +msgid "" +"The number of circle steps for GCode \n" +"circle and arc shapes linear approximation." +msgstr "" +"Numărul de segmente utilizate pentru\n" +"aproximarea lineara a reprezentarilor GCodului circular." + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:88 +msgid "Travel dia" +msgstr "Dia Deplasare" + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:90 +msgid "" +"The width of the travel lines to be\n" +"rendered in the plot." +msgstr "Diametrul liniilor de deplasare care să fie redate prin afișare." + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:103 +msgid "G-code Decimals" +msgstr "Zecimale G-Code" + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:106 +#: flatcamTools/ToolFiducials.py:74 +msgid "Coordinates" +msgstr "Coordinate" + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:108 +msgid "" +"The number of decimals to be used for \n" +"the X, Y, Z coordinates in CNC code (GCODE, etc.)" +msgstr "" +"Numărul de zecimale care să fie folosit in \n" +"coordonatele X,Y,Z in codul CNC (GCode etc)." + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:119 +#: flatcamTools/ToolProperties.py:519 +msgid "Feedrate" +msgstr "Feedrate" + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:121 +msgid "" +"The number of decimals to be used for \n" +"the Feedrate parameter in CNC code (GCODE, etc.)" +msgstr "" +"Numărul de zecimale care să fie folosit in \n" +"parametrul >Feedrate< in codul CNC (GCode etc)." + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:132 +msgid "Coordinates type" +msgstr "Tip coordinate" + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:134 +msgid "" +"The type of coordinates to be used in Gcode.\n" +"Can be:\n" +"- Absolute G90 -> the reference is the origin x=0, y=0\n" +"- Incremental G91 -> the reference is the previous position" +msgstr "" +"Tipul de coordinate care să fie folosite in G-Code.\n" +"Poate fi:\n" +"- Absolut G90 -> referinta este originea x=0, y=0\n" +"- Incrementator G91 -> referinta este pozitia anterioară" + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:140 +msgid "Absolute G90" +msgstr "Absolut G90" + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:141 +msgid "Incremental G91" +msgstr "Incrementator G91" + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:151 +msgid "Force Windows style line-ending" +msgstr "Forțați finalizarea liniei în stil Windows" + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:153 +msgid "" +"When checked will force a Windows style line-ending\n" +"(\\r\\n) on non-Windows OS's." +msgstr "" +"Când este bifat, va forța o linie de finalizare a stilului Windows\n" +"(\\r \\n) pe sistemele de operare non-Windows." + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:165 +msgid "Travel Line Color" +msgstr "Culoare Linie Trecere" + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:169 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:235 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:262 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:154 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:220 +#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:84 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:153 +#: flatcamTools/ToolRulesCheck.py:186 +msgid "Outline" +msgstr "Contur" + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:171 +msgid "Set the travel line color for plotted objects." +msgstr "Setați culoarea liniei de trecere pentru obiectele trasate." + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:186 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:252 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:279 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:170 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:237 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:170 +msgid "Fill" +msgstr "Continut" + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:188 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:254 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:281 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:172 +msgid "" +"Set the fill color for plotted objects.\n" +"First 6 digits are the color and the last 2\n" +"digits are for alpha (transparency) level." +msgstr "" +"Setează culoarea pentru obiectele afisate.\n" +"Primii 6 digiti sunt culoarea efectivă și ultimii\n" +"doi sunt pentru nivelul de transparenţă (alfa)." + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:205 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:298 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:190 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:257 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:189 +msgid "Alpha" +msgstr "Alfa" + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:207 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:300 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:191 +msgid "Set the fill transparency for plotted objects." +msgstr "Setează nivelul de transparenţă pentru obiectele afisate." + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:231 +msgid "CNCJob Object Color" +msgstr "Culoare obiect CNCJob" + +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:237 +msgid "Set the color for plotted objects." +msgstr "Setați culoarea pentru obiectele trasate." + +#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:27 +msgid "CNC Job Options" +msgstr "Opțiuni CNCJob" + +#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:31 +msgid "Export G-Code" +msgstr "Exportă G-Code" + +#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:47 +msgid "Prepend to G-Code" +msgstr "Adaugă la inceputul G-Code" + +#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:56 +msgid "" +"Type here any G-Code commands you would like to add at the beginning of the " +"G-Code file." +msgstr "" +"Introduceți aici orice comandă G-Code pe care doriți să o adăugați la " +"începutul fișierului G-Code." + +#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:63 +msgid "Append to G-Code" +msgstr "Adaugă la sfârşitul G-Code" + +#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:73 +msgid "" +"Type here any G-Code commands you would like to append to the generated " +"file.\n" +"I.e.: M2 (End of program)" +msgstr "" +"Adaugă aici orice comenzi G-Code care se dorește să fie\n" +"inserate la sfârşitul codului G-Code.\n" +"De exemplu: M2 (Sfârșitul programului)" + +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:27 +msgid "Excellon Adv. Options" +msgstr "Opțiuni Avans. Excellon" + +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:34 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:33 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:31 +msgid "Advanced Options" +msgstr "Opțiuni avansate" + +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:36 +msgid "" +"A list of Excellon advanced parameters.\n" +"Those parameters are available only for\n" +"Advanced App. Level." +msgstr "" +"O lista de parametri Excellon avansati.\n" +"Acesti parametri sunt disponibili doar\n" +"când este selectat Nivelul Avansat pentru\n" +"aplicaţie in Preferințe - > General." + +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:59 +msgid "Toolchange X,Y" +msgstr "X,Y schimb. unealtă" + +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:61 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:47 +msgid "Toolchange X,Y position." +msgstr "Poziţia X,Y in format (x,y) unde se face schimbarea uneltei." + +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:121 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:134 +msgid "Spindle direction" +msgstr "Directie rotatie Motor" + +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:123 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:136 +msgid "" +"This sets the direction that the spindle is rotating.\n" +"It can be either:\n" +"- CW = clockwise or\n" +"- CCW = counter clockwise" +msgstr "" +"Aici se setează directia in care motorul se roteste.\n" +"Poate fi:\n" +"- CW = in sensul acelor de ceasornic\n" +"- CCW = in sensul invers acelor de ceasornic" + +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:134 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:148 +msgid "Fast Plunge" +msgstr "Plonjare rapidă" + +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:136 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:150 +msgid "" +"By checking this, the vertical move from\n" +"Z_Toolchange to Z_move is done with G0,\n" +"meaning the fastest speed available.\n" +"WARNING: the move is done at Toolchange X,Y coords." +msgstr "" +"Prin bifarea de aici, mișcarea de la Înălţimea unde se face schimbarea " +"uneltei\n" +"pana la Înălţimea unde se face deplasarea între taieri, se va face cu " +"comanda G0.\n" +"Aceasta inseamna că se va folosi viteza maxima disponibila.\n" +"\n" +"ATENTIE: mișcarea aceasta pe verticala se face la coordonatele X, Y unde se " +"schimba\n" +"unealta. Daca aveti ceva plasat sub unealtă ceva se va strica." + +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:143 +msgid "Fast Retract" +msgstr "Retragere rapida" + +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:145 +msgid "" +"Exit hole strategy.\n" +" - When uncheked, while exiting the drilled hole the drill bit\n" +"will travel slow, with set feedrate (G1), up to zero depth and then\n" +"travel as fast as possible (G0) to the Z Move (travel height).\n" +" - When checked the travel from Z cut (cut depth) to Z_move\n" +"(travel height) is done as fast as possible (G0) in one move." +msgstr "" +"Strategia de evacuare a găurii tocmai găurite.\n" +"- când nu este bifat, burghiul va ieși din gaura cu viteza feedrate " +"setată, \n" +"G1, pana ajunge la nivelul zero, ulterior ridicându-se pana la Înălţimea de " +"deplasare\n" +"cu viteza maxima G0\n" +"- când este bifat, burghiul se va deplasa de la adâncimea de tăiere pana la " +"adâncimea\n" +"de deplasare cu viteza maxima G0, intr-o singură mișcare." + +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:32 +msgid "A list of Excellon Editor parameters." +msgstr "O listă de parametri ai Editorului Excellon." + +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:40 +#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:41 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:41 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:194 +msgid "Selection limit" +msgstr "Limita selecţie" + +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:42 +msgid "" +"Set the number of selected Excellon geometry\n" +"items above which the utility geometry\n" +"becomes just a selection rectangle.\n" +"Increases the performance when moving a\n" +"large number of geometric elements." +msgstr "" +"Setează numărul de geometrii Excellon selectate peste care\n" +"geometria utilitară devine o simplă formă pătratica de \n" +"selectie.\n" +"Creste performanta cand se muta un număr mai mare de \n" +"elemente geometrice." + +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:55 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:117 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:123 +msgid "New Dia" +msgstr "Dia. nou" + +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:80 +msgid "Linear Drill Array" +msgstr "Arie lineară de găuri" + +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:84 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:232 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:120 +msgid "Linear Direction" +msgstr "Direcție liniară" + +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:126 +msgid "Circular Drill Array" +msgstr "Arie circ. de găuri" + +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:130 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:280 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:164 +msgid "Circular Direction" +msgstr "Direcția circulară" + +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:132 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:282 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:166 +msgid "" +"Direction for circular array.\n" +"Can be CW = clockwise or CCW = counter clockwise." +msgstr "" +"Directia pentru aria circulară.\n" +"Poate fi CW = in sensul acelor de ceasornic sau CCW = invers acelor de " +"ceasornic." + +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:143 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:293 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:177 +msgid "Circular Angle" +msgstr "Unghi circular" + +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:196 +msgid "" +"Angle at which the slot is placed.\n" +"The precision is of max 2 decimals.\n" +"Min value is: -359.99 degrees.\n" +"Max value is: 360.00 degrees." +msgstr "" +"Unghiul la care este plasat slotul.\n" +"Precizia este de maxim 2 zecimale.\n" +"Valoarea minimă este: -359,99 grade.\n" +"Valoarea maximă este: 360,00 grade." + +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:215 +msgid "Linear Slot Array" +msgstr "Arie lineară de Sloturi" + +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:276 +msgid "Circular Slot Array" +msgstr "Arie circ. de Sloturi" + +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:26 +msgid "Excellon Export" +msgstr "Export Excellon" + +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:30 +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:31 +msgid "Export Options" +msgstr "Opțiuni de Export" + +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:32 +msgid "" +"The parameters set here are used in the file exported\n" +"when using the File -> Export -> Export Excellon menu entry." +msgstr "" +"Acesti parametri listati aici sunt folositi atunci când\n" +"se exporta un fişier Excellon folosind:\n" +"File -> Exporta -> Exporta Excellon." + +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:41 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:163 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:39 +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:42 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:82 +#: flatcamTools/ToolDistance.py:56 flatcamTools/ToolDistanceMin.py:50 +#: flatcamTools/ToolPcbWizard.py:127 flatcamTools/ToolProperties.py:154 +msgid "Units" +msgstr "Unităti" + +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:43 +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:49 +msgid "The units used in the Excellon file." +msgstr "Unitatile de masura folosite in fişierul Excellon." + +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:46 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:87 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:173 +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:47 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:87 +#: flatcamTools/ToolCalculators.py:61 flatcamTools/ToolPcbWizard.py:125 +msgid "INCH" +msgstr "Inch" + +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:47 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:174 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:43 +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:48 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:88 +#: flatcamTools/ToolCalculators.py:62 flatcamTools/ToolPcbWizard.py:126 +msgid "MM" +msgstr "MM" + +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:55 +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:56 +msgid "Int/Decimals" +msgstr "Înt/Zecimale" + +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:57 +msgid "" +"The NC drill files, usually named Excellon files\n" +"are files that can be found in different formats.\n" +"Here we set the format used when the provided\n" +"coordinates are not using period." +msgstr "" +"Fişierele NC, numite usual fişiere Excellon\n" +"sunt fişiere care pot fi gasite in diverse formate.\n" +"Aici se setează formatul Excellon când nu se utilizează\n" +"coordonate cu zecimale." + +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:69 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:95 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:124 +msgid "" +"This numbers signify the number of digits in\n" +"the whole part of Excellon coordinates." +msgstr "" +"Acest număr reprezinta numărul de digiti din partea\n" +"intreaga a coordonatelor Excellon." + +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:82 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:108 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:137 +msgid "" +"This numbers signify the number of digits in\n" +"the decimal part of Excellon coordinates." +msgstr "" +"Acest număr reprezinta numărul de digiti din partea\n" +"zecimala a coordonatelor Excellon." + +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:91 +msgid "Format" +msgstr "Format" + +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:93 +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:103 +msgid "" +"Select the kind of coordinates format used.\n" +"Coordinates can be saved with decimal point or without.\n" +"When there is no decimal point, it is required to specify\n" +"the number of digits for integer part and the number of decimals.\n" +"Also it will have to be specified if LZ = leading zeros are kept\n" +"or TZ = trailing zeros are kept." +msgstr "" +"Selectati tipul formatului de coordonate folosit.\n" +"Coordonatele se pot salva cu punct zecimal sau fără.\n" +"Când nu se foloseşte punctul zecimal ca separator între\n" +"partea intreaga și partea zecimala, este necesar să se\n" +"specifice numărul de digiti folosit pentru partea intreaga\n" +"și numărul de digiti folosit pentru partea zecimala.\n" +"Trebuie specificat și modul in care sunt tratate zerourile:\n" +"- LZ = zerourile prefix sunt pastrate și cele sufix eliminate\n" +"- TZ = zerourile prefix sunt eliminate și cele sufix pastrate." + +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:100 +msgid "Decimal" +msgstr "Zecimale" + +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:101 +msgid "No-Decimal" +msgstr "Fără zecimale" + +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:114 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:145 +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:96 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:97 +msgid "Zeros" +msgstr "Zero-uri" + +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:117 +msgid "" +"This sets the type of Excellon zeros.\n" +"If LZ then Leading Zeros are kept and\n" +"Trailing Zeros are removed.\n" +"If TZ is checked then Trailing Zeros are kept\n" +"and Leading Zeros are removed." +msgstr "" +"Aici se setează tipul de suprimare a zerourilor,\n" +"in cazul unui fişier Excellon.\n" +"LZ = zerourile din fata numărului sunt pastrate și\n" +"cele de la final sunt indepartate.\n" +"TZ = zerourile din fata numărului sunt indepartate și\n" +"cele de la final sunt pastrate.\n" +"(Invers fata de fişierele Gerber)." + +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:124 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:158 +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:106 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:107 +#: flatcamTools/ToolPcbWizard.py:111 +msgid "LZ" +msgstr "LZ" + +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:125 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:159 +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:107 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:108 +#: flatcamTools/ToolPcbWizard.py:112 +msgid "TZ" +msgstr "TZ" + +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:127 +msgid "" +"This sets the default type of Excellon zeros.\n" +"If LZ then Leading Zeros are kept and\n" +"Trailing Zeros are removed.\n" +"If TZ is checked then Trailing Zeros are kept\n" +"and Leading Zeros are removed." +msgstr "" +"Acesta este tipul implicit de zero-uri Excellon.\n" +"- LZ = zerourile prefix sunt pastrate și cele sufix eliminate\n" +"- TZ = zerourile prefix sunt eliminate și cele sufix pastrate." + +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:137 +msgid "Slot type" +msgstr "Tip slot" + +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:140 +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:150 +msgid "" +"This sets how the slots will be exported.\n" +"If ROUTED then the slots will be routed\n" +"using M15/M16 commands.\n" +"If DRILLED(G85) the slots will be exported\n" +"using the Drilled slot command (G85)." +msgstr "" +"Aceasta stabilește modul în care sloturile vor fi exportate.\n" +"Dacă sunt Decupate, atunci sloturile vor fi procesate\n" +"folosind comenzile M15 / M16.\n" +"Dacă sunt Găurite (G85) sloturile vor fi exportate\n" +"folosind comanda slotului găurit (G85)." + +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:147 +msgid "Routed" +msgstr "Decupate" + +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:148 +msgid "Drilled(G85)" +msgstr "Găurite(G85)" + +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:29 +msgid "Excellon General" +msgstr "Excellon General" + +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:62 +msgid "Excellon Format" +msgstr "Format Excellon" + +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:64 +msgid "" +"The NC drill files, usually named Excellon files\n" +"are files that can be found in different formats.\n" +"Here we set the format used when the provided\n" +"coordinates are not using period.\n" +"\n" +"Possible presets:\n" +"\n" +"PROTEUS 3:3 MM LZ\n" +"DipTrace 5:2 MM TZ\n" +"DipTrace 4:3 MM LZ\n" +"\n" +"EAGLE 3:3 MM TZ\n" +"EAGLE 4:3 MM TZ\n" +"EAGLE 2:5 INCH TZ\n" +"EAGLE 3:5 INCH TZ\n" +"\n" +"ALTIUM 2:4 INCH LZ\n" +"Sprint Layout 2:4 INCH LZ\n" +"KiCAD 3:5 INCH TZ" +msgstr "" +"Fişierele de găurire NC drills numite generic Excellon\n" +"sunt fişiere care nu respecta clar un format.\n" +"Fiecare companie și-a aplicat propria viziune aşa încât\n" +"s-a ajuns că nu se poate face o recunoaștere automata\n" +"a formatului Excellon in fiecare caz.\n" +"Aici putem seta manual ce format ne asteptăm să gasim,\n" +"când coordonatele nu sunt reprezentate cu\n" +"separator zecimal.\n" +"\n" +"Setări posibile:\n" +"\n" +"PROTEUS 3:3 MM LZ\n" +"DipTrace 5:2 MM TZ\n" +"DipTrace 4:3 MM LZ\n" +"\n" +"EAGLE 3:3 MM TZ\n" +"EAGLE 4:3 MM TZ\n" +"EAGLE 2:5 INCH TZ\n" +"EAGLE 3:5 INCH TZ\n" +"\n" +"ALTIUM 2:4 INCH LZ\n" +"Sprint Layout 2:4 INCH LZ\n" +"KiCAD 3:5 INCH TZ" + +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:88 +msgid "Default values for INCH are 2:4" +msgstr "" +"Valorile default pentru Inch sunt 2:4\n" +"adica 2 parti intregi și 4 zecimale" + +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:116 +msgid "METRIC" +msgstr "Metric" + +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:117 +msgid "Default values for METRIC are 3:3" +msgstr "" +"Valorile default pentru Metric sunt 3:3\n" +"adica 3 parti intregi și 3 zecimale" + +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:148 +msgid "" +"This sets the type of Excellon zeros.\n" +"If LZ then Leading Zeros are kept and\n" +"Trailing Zeros are removed.\n" +"If TZ is checked then Trailing Zeros are kept\n" +"and Leading Zeros are removed.\n" +"\n" +"This is used when there is no information\n" +"stored in the Excellon file." +msgstr "" +"Aici se setează tipul de suprimare a zerourilor,\n" +"in cazul unui fişier Excellon.\n" +"LZ = zerourile din fata numărului sunt pastrate și\n" +"cele de la final sunt indepartate.\n" +"TZ = zerourile din fata numărului sunt indepartate și\n" +"cele de la final sunt pastrate.\n" +"(Invers fata de fişierele Gerber).\n" +"Se foloseşte atunci când nu există informații\n" +"stocate în fișierul Excellon." + +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:166 +msgid "" +"This sets the default units of Excellon files.\n" +"If it is not detected in the parsed file the value here\n" +"will be used.Some Excellon files don't have an header\n" +"therefore this parameter will be used." +msgstr "" +"Aceasta valoare este valoarea la care se recurge\n" +"in cazul in care nu se poate determina automat\n" +"atunci când se face parsarea fişierlui Excellon.\n" +"Unele fişiere de găurire (Excellon) nu au header\n" +"(unde se gasesc unitatile) și atunci se va folosi\n" +"aceasta valoare." + +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:176 +msgid "" +"This sets the units of Excellon files.\n" +"Some Excellon files don't have an header\n" +"therefore this parameter will be used." +msgstr "" +"Aceasta valoare este valoarea la care se recurge\n" +"in cazul in care nu se poate determina automat\n" +"atunci când se face parsarea fişierlui Excellon.\n" +"Unele fişiere de găurire (Excellon) nu au header\n" +"(unde se gasesc unitatile) și atunci se va folosi\n" +"aceasta valoare." + +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:184 +msgid "Update Export settings" +msgstr "Actualizeaza setarile de Export" + +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:201 +msgid "Excellon Optimization" +msgstr "Optimizare Excellon" + +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:204 +msgid "Algorithm:" +msgstr "Algoritm:" + +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:206 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:222 +msgid "" +"This sets the optimization type for the Excellon drill path.\n" +"If <> is checked then Google OR-Tools algorithm with\n" +"MetaHeuristic Guided Local Path is used. Default search time is 3sec.\n" +"If <> is checked then Google OR-Tools Basic algorithm is used.\n" +"If <> is checked then Travelling Salesman algorithm is used for\n" +"drill path optimization.\n" +"\n" +"If this control is disabled, then FlatCAM works in 32bit mode and it uses\n" +"Travelling Salesman algorithm for path optimization." +msgstr "" +"Aceasta setează tipul de optimizare pentru calea de găurire Excellon.\n" +"Dacă <> este bifat, atunci algoritmul Google OR-Tools cu\n" +"Calea locală ghidată MetaHeuristic este utilizat. Timpul implicit de căutare " +"este de 3 secunde.\n" +"Dacă <> este bifat, atunci algoritmul Google OR-Tools Basic este " +"utilizat.\n" +"Dacă <> este bifat, atunci algoritmul Traveling Salesman este utilizat " +"pentru\n" +"optimizarea căii de găurire\n" +"\n" +"Dacă acest control este dezactivat, FlatCAM funcționează în modul 32 biți și " +"folosește\n" +"Algoritmul Traveling Salesman pentru optimizarea căii." + +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:217 +msgid "MetaHeuristic" +msgstr "MetaHeuristic" + +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:218 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:104 +#: flatcamObjects/FlatCAMExcellon.py:614 flatcamObjects/FlatCAMGeometry.py:510 +#: flatcamObjects/FlatCAMGerber.py:251 +msgid "Basic" +msgstr "Baza" + +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:219 +msgid "TSA" +msgstr "TSA" + +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:236 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:245 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:237 +msgid "Duration" +msgstr "Durată" + +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:239 +msgid "" +"When OR-Tools Metaheuristic (MH) is enabled there is a\n" +"maximum threshold for how much time is spent doing the\n" +"path optimization. This max duration is set here.\n" +"In seconds." +msgstr "" +"Când se foloseşte optimziarea MH, aceasta valoare\n" +"reprezinta cat timp se sta pentru fiecare element in\n" +"incercarea de a afla calea optima." + +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:258 +msgid "Excellon Object Color" +msgstr "Culoare obiect Excellon" + +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:264 +#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:86 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:155 +msgid "Set the line color for plotted objects." +msgstr "Setează culoarea conturului." + +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:29 +msgid "Excellon Options" +msgstr "Opțiuni Excellon" + +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:33 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:34 +msgid "Create CNC Job" +msgstr "Crează CNCJob" + +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:35 +msgid "" +"Parameters used to create a CNC Job object\n" +"for this drill object." +msgstr "" +"Parametrii folositi pentru a crea un obiect FlatCAM tip CNCJob\n" +"din acest obiect Excellon." + +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:152 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:121 +msgid "Tool change" +msgstr "Schimb unealtă" + +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:236 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:232 +msgid "Enable Dwell" +msgstr "Activați Pauză" + +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:259 +msgid "" +"The preprocessor JSON file that dictates\n" +"Gcode output." +msgstr "" +"Fișierul JSON postprocesor care dictează\n" +"codul Gcode." + +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:270 +msgid "Gcode" +msgstr "Gcode" + +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:272 +msgid "" +"Choose what to use for GCode generation:\n" +"'Drills', 'Slots' or 'Both'.\n" +"When choosing 'Slots' or 'Both', slots will be\n" +"converted to drills." +msgstr "" +"Alege ce anume să fie folot ca sursa pentru generarea de GCode:\n" +"- Găuri\n" +"- Sloturi\n" +"- Ambele.\n" +"Când se alege Sloturi sau Ambele, sloturile vor fi convertite in serii de " +"găuri." + +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:288 +msgid "Mill Holes" +msgstr "Frezare găuri" + +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:290 +msgid "Create Geometry for milling holes." +msgstr "Crează un obiect tip Geometrie pentru frezarea găurilor." + +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:294 +msgid "Drill Tool dia" +msgstr "Dia. Burghiu Găurire" + +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:305 +msgid "Slot Tool dia" +msgstr "Dia. Freza Slot" + +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:307 +msgid "" +"Diameter of the cutting tool\n" +"when milling slots." +msgstr "Diametrul frezei când se frezează sloturile." + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:28 +msgid "App Settings" +msgstr "Setări Aplicație" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:49 +msgid "Grid Settings" +msgstr "Setări Grilă" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:53 +msgid "X value" +msgstr "Val X" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:55 +msgid "This is the Grid snap value on X axis." +msgstr "Aceasta este valoare pentru lipire pe Grid pe axa X." + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:65 +msgid "Y value" +msgstr "Val Y" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:67 +msgid "This is the Grid snap value on Y axis." +msgstr "Aceasta este valoare pentru lipire pe Grid pe axa Y." + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:77 +msgid "Snap Max" +msgstr "Lipire Max" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:92 +msgid "Workspace Settings" +msgstr "Setări ale Spațiului de Lucru" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:95 +msgid "Active" +msgstr "Activ" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:97 +msgid "" +"Draw a delimiting rectangle on canvas.\n" +"The purpose is to illustrate the limits for our work." +msgstr "" +"Desenează un patrulater care delimitează o suprafată de lucru.\n" +"Scopul este de a ilustra limitele suprafetei noastre de lucru." + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:105 +msgid "" +"Select the type of rectangle to be used on canvas,\n" +"as valid workspace." +msgstr "" +"Selectează tipul de patrulater care va fi desenat pe canvas,\n" +"pentru a delimita suprafata de lucru disponibilă (SL)." + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:171 +msgid "Orientation" +msgstr "Orientare" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:172 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:239 +#: flatcamTools/ToolFilm.py:422 +msgid "" +"Can be:\n" +"- Portrait\n" +"- Landscape" +msgstr "" +"Poate fi:\n" +"- Portret\n" +"- Peisaj" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:176 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:243 +#: flatcamTools/ToolFilm.py:426 +msgid "Portrait" +msgstr "Portret" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:177 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:244 +#: flatcamTools/ToolFilm.py:427 +msgid "Landscape" +msgstr "Peisaj" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:201 +msgid "Notebook" +msgstr "Agendă" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:203 +msgid "" +"This sets the font size for the elements found in the Notebook.\n" +"The notebook is the collapsible area in the left side of the GUI,\n" +"and include the Project, Selected and Tool tabs." +msgstr "" +"Aceasta stabilește dimensiunea fontului pentru elementele \n" +"găsite în Notebook.\n" +"Notebook-ul este zona pliabilă din partea stângă a GUI,\n" +"și include filele Proiect, Selectat și Unelte." + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:222 +msgid "Axis" +msgstr "Axă" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:224 +msgid "This sets the font size for canvas axis." +msgstr "Aceasta setează dimensiunea fontului pentru axele zonei de afisare." + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:241 +msgid "Textbox" +msgstr "Casetă de text" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:243 +msgid "" +"This sets the font size for the Textbox GUI\n" +"elements that are used in FlatCAM." +msgstr "" +"Aceasta setează dimensiunea fontului pentru elementele \n" +"interfața GUI care sunt utilizate în FlatCAM." + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:269 +msgid "Mouse Settings" +msgstr "Setări mouse" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:273 +msgid "Cursor Shape" +msgstr "Forma cursorului" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:275 +msgid "" +"Choose a mouse cursor shape.\n" +"- Small -> with a customizable size.\n" +"- Big -> Infinite lines" +msgstr "" +"Alegeți o formă de cursor a mouse-ului.\n" +"- Mic -> cu o dimensiune personalizabilă.\n" +"- Mare -> Linii infinite" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:281 +msgid "Small" +msgstr "Mic" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:282 +msgid "Big" +msgstr "Mare" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:289 +msgid "Cursor Size" +msgstr "Dimensiunea cursorului" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:291 +msgid "Set the size of the mouse cursor, in pixels." +msgstr "Setați dimensiunea cursorului mouse-ului, în pixeli." + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:302 +msgid "Cursor Width" +msgstr "Lățimea cursorului" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:304 +msgid "Set the line width of the mouse cursor, in pixels." +msgstr "Setați lățimea liniei cursorului mouse-ului, în pixeli." + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:315 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:322 +msgid "Cursor Color" +msgstr "Culoarea cursorului" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:317 +msgid "Check this box to color mouse cursor." +msgstr "Bifează această casetă pentru a colora cursorul mouse-ului." + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:324 +msgid "Set the color of the mouse cursor." +msgstr "Setați culoarea cursorului mouse-ului." + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:347 +msgid "Pan Button" +msgstr "Buton Pan (mișcare)" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:349 +msgid "" +"Select the mouse button to use for panning:\n" +"- MMB --> Middle Mouse Button\n" +"- RMB --> Right Mouse Button" +msgstr "" +"Selectează butonul folosit pentru 'mișcare':\n" +"- MMB - butonul din mijloc al mouse-ului\n" +"- RMB - butonul in dreapta al mouse-ului" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:353 +msgid "MMB" +msgstr "MMB" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:354 +msgid "RMB" +msgstr "RMB" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:360 +msgid "Multiple Selection" +msgstr "Selecție Multiplă" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:362 +msgid "Select the key used for multiple selection." +msgstr "Selectează tasta folosita pentru selectia multipla." + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:364 +msgid "CTRL" +msgstr "CTRL" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:365 +msgid "SHIFT" +msgstr "SHIFT" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:376 +msgid "Delete object confirmation" +msgstr "Confirmare de ștergere a obiectului" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:378 +msgid "" +"When checked the application will ask for user confirmation\n" +"whenever the Delete object(s) event is triggered, either by\n" +"menu shortcut or key shortcut." +msgstr "" +"Când este bifat, aplicația va cere confirmarea utilizatorului\n" +"ori de câte ori este declanșat evenimentul de Ștergere a \n" +"unor obiecte, fie de cu ajutorul meniurilor sau cu combinatii de taste." + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:385 +msgid "\"Open\" behavior" +msgstr "Stil \"Încarcare\"" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:387 +msgid "" +"When checked the path for the last saved file is used when saving files,\n" +"and the path for the last opened file is used when opening files.\n" +"\n" +"When unchecked the path for opening files is the one used last: either the\n" +"path for saving files or the path for opening files." +msgstr "" +"Cand este bifat, calea de salvare a ultimului fiser salvat este folosită " +"cand se \n" +"salvează fisiere si calea de deschidere pt ultimul fisier este folosită cand " +"se \n" +"deschide fisiere.\n" +"\n" +"Cand este debifat, calea de deshidere pt ultimul fisier este folosită pt " +"ambele \n" +"cazuri: fie că se deschide un fisier, fie că se salvează un fisier." + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:396 +msgid "Enable ToolTips" +msgstr "Activează ToolTip-uri" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:398 +msgid "" +"Check this box if you want to have toolTips displayed\n" +"when hovering with mouse over items throughout the App." +msgstr "" +"Bifează daca dorești ca să fie afisate texte explicative când se\n" +"tine mouse-ul deasupra diverselor texte din FlatCAM." + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:405 +msgid "Allow Machinist Unsafe Settings" +msgstr "Permiteți setări nesigure pt Mașiniști" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:407 +msgid "" +"If checked, some of the application settings will be allowed\n" +"to have values that are usually unsafe to use.\n" +"Like Z travel negative values or Z Cut positive values.\n" +"It will applied at the next application start.\n" +"<>: Don't change this unless you know what you are doing !!!" +msgstr "" +"Dacă este bifat, unele dintre setările aplicației vor fi permise\n" +"pentru a avea valori de obicei nesigure de utilizat.\n" +"Cum ar fi valori negative pt Z Travel sau valori positive pt Z Tăieri .\n" +"Se va aplica la următoarea pornire a aplicatiei.\n" +"<>: Nu schimbați acest lucru decât dacă știți ce faceți !!!" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:419 +msgid "Bookmarks limit" +msgstr "Limită nr. bookmark-uri" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:421 +msgid "" +"The maximum number of bookmarks that may be installed in the menu.\n" +"The number of bookmarks in the bookmark manager may be greater\n" +"but the menu will hold only so much." +msgstr "" +"Numărul maxim de bookmark-uri care pot fi instalate în meniu.\n" +"Numărul de bookmark-uri în managerul de bookmark-uri poate fi mai mare\n" +"dar meniul va conține doar atât de mult." + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:430 +msgid "Activity Icon" +msgstr "Icon activitare" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:432 +msgid "Select the GIF that show activity when FlatCAM is active." +msgstr "Selectați GIF-ul care arată activitatea când FlatCAM este activ." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:29 +msgid "App Preferences" +msgstr "Preferințele Aplicaţie" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:40 +msgid "" +"The default value for FlatCAM units.\n" +"Whatever is selected here is set every time\n" +"FlatCAM is started." +msgstr "" +"Unitatea de masura pt FlatCAM.\n" +"Este setată la fiecare pornire a programului." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:44 +msgid "IN" +msgstr "Inch" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:50 +msgid "Precision MM" +msgstr "Precizie MM" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:52 +msgid "" +"The number of decimals used throughout the application\n" +"when the set units are in METRIC system.\n" +"Any change here require an application restart." +msgstr "" +"Numărul de zecimale utilizate în întreaga aplicație\n" +"când unitățile setate sunt în sistem METRIC.\n" +"Orice modificare necesită repornirea aplicației." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:64 +msgid "Precision INCH" +msgstr "Precizie INCH" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:66 +msgid "" +"The number of decimals used throughout the application\n" +"when the set units are in INCH system.\n" +"Any change here require an application restart." +msgstr "" +"Numărul de zecimale utilizate în întreaga aplicație\n" +"când unitățile setate sunt în sistem INCH.\n" +"Orice modificare necesită repornirea aplicației." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:78 +msgid "Graphic Engine" +msgstr "Motor grafic" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:79 +msgid "" +"Choose what graphic engine to use in FlatCAM.\n" +"Legacy(2D) -> reduced functionality, slow performance but enhanced " +"compatibility.\n" +"OpenGL(3D) -> full functionality, high performance\n" +"Some graphic cards are too old and do not work in OpenGL(3D) mode, like:\n" +"Intel HD3000 or older. In this case the plot area will be black therefore\n" +"use the Legacy(2D) mode." +msgstr "" +"Alegeți ce motor grafic să utilizați în FlatCAM.\n" +"Legacy (2D) -> funcționalitate redusă, performanțe lente, dar " +"compatibilitate îmbunătățită.\n" +"OpenGL (3D) -> funcționalitate completă, performanță ridicată\n" +"Unele placi video sunt prea vechi și nu funcționează în modul OpenGL (3D), " +"cum ar fi:\n" +"Intel HD3000 sau mai vechi. În acest caz, suprafața de afisare va fi neagră\n" +"prin urmare folosiți modul Legacy (2D)." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:85 +msgid "Legacy(2D)" +msgstr "Legacy(2D)" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:86 +msgid "OpenGL(3D)" +msgstr "OpenGL(3D)" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:98 +msgid "APP. LEVEL" +msgstr "Nivel aplicatie" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:99 +msgid "" +"Choose the default level of usage for FlatCAM.\n" +"BASIC level -> reduced functionality, best for beginner's.\n" +"ADVANCED level -> full functionality.\n" +"\n" +"The choice here will influence the parameters in\n" +"the Selected Tab for all kinds of FlatCAM objects." +msgstr "" +"Nivelul default de utilizare pt FlatCAM.\n" +"Nivel BAZA -> functionalitate simplificata, potrivit pt incepatori\n" +"Nivel AVANSAT -> functionalitate completa.\n" +"\n" +"Alegerea efectuata aici va influenta ce aparamtri sunt disponibili\n" +"in Tab-ul SELECTAT dar și in alte parti ale FlatCAM." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:105 +#: flatcamObjects/FlatCAMExcellon.py:627 flatcamObjects/FlatCAMGeometry.py:531 +#: flatcamObjects/FlatCAMGerber.py:278 +msgid "Advanced" +msgstr "Avansat" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:111 +msgid "Portable app" +msgstr "Aplicație portabilă" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:112 +msgid "" +"Choose if the application should run as portable.\n" +"\n" +"If Checked the application will run portable,\n" +"which means that the preferences files will be saved\n" +"in the application folder, in the lib\\config subfolder." +msgstr "" +"Alegeți dacă aplicația ar trebui să funcționeze in modul portabil.\n" +"\n" +"Dacă e bifat, aplicația va rula portabil,\n" +"ceea ce înseamnă că fișierele de preferințe vor fi salvate\n" +"în folderul aplicației, în subfolderul lib \\ config." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:125 +msgid "Languages" +msgstr "Traduceri" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:126 +msgid "Set the language used throughout FlatCAM." +msgstr "Setează limba folosita pentru textele din FlatCAM." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:132 +msgid "Apply Language" +msgstr "Aplica Traducere" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:133 +msgid "" +"Set the language used throughout FlatCAM.\n" +"The app will restart after click." +msgstr "" +"Setați limba folosită în FlatCAM.\n" +"Aplicația va reporni după clic." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:147 +msgid "Startup Settings" +msgstr "Setări de Pornire" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:151 +msgid "Splash Screen" +msgstr "Ecran Pornire" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:153 +msgid "Enable display of the splash screen at application startup." +msgstr "Activeaza afisarea unui ecran de pornire la pornirea aplicatiei." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:165 +msgid "Sys Tray Icon" +msgstr "Icon in Sys Tray" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:167 +msgid "Enable display of FlatCAM icon in Sys Tray." +msgstr "Activare pentru afișarea pictogramei FlatCAM în Sys Tray." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:172 +msgid "Show Shell" +msgstr "Arată Shell" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:174 +msgid "" +"Check this box if you want the shell to\n" +"start automatically at startup." +msgstr "" +"Bifează in cazul in care se dorește pornirea\n" +"automata a ferestrei Shell (linia de comanda)\n" +"la initializarea aplicaţiei." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:181 +msgid "Show Project" +msgstr "Afișați Proiectul" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:183 +msgid "" +"Check this box if you want the project/selected/tool tab area to\n" +"to be shown automatically at startup." +msgstr "" +"Bifează aici daca dorești ca zona Notebook să fie\n" +"afișată automat la pornire." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:189 +msgid "Version Check" +msgstr "Verificare versiune" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:191 +msgid "" +"Check this box if you want to check\n" +"for a new version automatically at startup." +msgstr "" +"Bifează daca se dorește verificarea automata\n" +"daca exista o versiune mai noua,\n" +"la pornirea aplicaţiei." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:198 +msgid "Send Statistics" +msgstr "Trimiteți statistici" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:200 +msgid "" +"Check this box if you agree to send anonymous\n" +"stats automatically at startup, to help improve FlatCAM." +msgstr "" +"Bifează daca esti de acord ca aplicaţia să trimita la pornire\n" +"un set de informatii cu privire la modul in care folosești\n" +"aplicaţia. In acest fel dezvoltatorii vor sti unde să se focalizeze\n" +"in crearea de inbunatatiri." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:214 +msgid "Workers number" +msgstr "Număr de worker's" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:216 +msgid "" +"The number of Qthreads made available to the App.\n" +"A bigger number may finish the jobs more quickly but\n" +"depending on your computer speed, may make the App\n" +"unresponsive. Can have a value between 2 and 16.\n" +"Default value is 2.\n" +"After change, it will be applied at next App start." +msgstr "" +"Număarul de QThread-uri care sunt disponibile pt aplicatie.\n" +"Un număr mai mare va permite terminarea operatiilor mai rapida\n" +"dar in functie de cat de rapid este calculatorul, poate face ca aplicatia\n" +"sa devina temporar blocată. Poate lua o valoare intre 2 si 16.\n" +"Valoarea standard este 2.\n" +"Dupa schimbarea valoarii, se va aplica la următoarea pornire a aplicatiei." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:230 +msgid "Geo Tolerance" +msgstr "Toleranta geometrică" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:232 +msgid "" +"This value can counter the effect of the Circle Steps\n" +"parameter. Default value is 0.005.\n" +"A lower value will increase the detail both in image\n" +"and in Gcode for the circles, with a higher cost in\n" +"performance. Higher value will provide more\n" +"performance at the expense of level of detail." +msgstr "" +"Această valoare afectează efectul prametrului Pasi Cerc.\n" +"Valoarea default este 0.005.\n" +"O valoare mai mică va creste detaliile atat in imagine cat si\n" +"in GCode pentru cercuri dar cu pretul unei scăderi in performantă.\n" +"O valoare mai mare va oferi o performantă crescută dar in\n" +"defavoarea nievelului de detalii." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:252 +msgid "Save Settings" +msgstr "Setări pentru Salvare" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:256 +msgid "Save Compressed Project" +msgstr "Salvează Proiectul comprimat" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:258 +msgid "" +"Whether to save a compressed or uncompressed project.\n" +"When checked it will save a compressed FlatCAM project." +msgstr "" +"Daca să se salveze proiectul in mod arhivat.\n" +"Când este bifat aici, se va salva o arhiva a proiectului\n" +"lucru care poate reduce dimensiunea semnificativ." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:267 +msgid "Compression" +msgstr "Compresie" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:269 +msgid "" +"The level of compression used when saving\n" +"a FlatCAM project. Higher value means better compression\n" +"but require more RAM usage and more processing time." +msgstr "" +"Nivelul de compresie folosit când se salvează un proiect FlatCAM.\n" +"Valorile posibile sunt [0 ... 9]. Valoarea 0 inseamna compresie minimala\n" +"dar cu consum redus de resurse in timp ce valoarea 9 cere multa memorie RAM\n" +"și in plus, durează semnificativ mai mult." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:280 +msgid "Enable Auto Save" +msgstr "Activează Salvarea Automată" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:282 +msgid "" +"Check to enable the autosave feature.\n" +"When enabled, the application will try to save a project\n" +"at the set interval." +msgstr "" +"Bifează pentru activarea optiunii de auto-salvare.\n" +"Cand este activate, aplicatia va incereca sa salveze\n" +"proiectul intr-un mod periodic." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:292 +msgid "Interval" +msgstr "Interval" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:294 +msgid "" +"Time interval for autosaving. In milliseconds.\n" +"The application will try to save periodically but only\n" +"if the project was saved manually at least once.\n" +"While active, some operations may block this feature." +msgstr "" +"Interval periodic pentru autosalvare. In milisecunde.\n" +"Aplicatia va incerca sa salveze periodic doar dacă\n" +"proiectul a fost salvat manual cel putin odată.\n" +"Cand unele operatii sunt active, această capabilitate poate fi sistată." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:310 +msgid "Text to PDF parameters" +msgstr "Parametri text la PDF" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:312 +msgid "Used when saving text in Code Editor or in FlatCAM Document objects." +msgstr "" +"Utilizat la salvarea textului în Codul Editor sau în obiectele FlatCAM " +"Document." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:321 +msgid "Top Margin" +msgstr "Margine Sus" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:323 +msgid "Distance between text body and the top of the PDF file." +msgstr "Distanța dintre corpul textului și partea superioară a fișierului PDF." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:334 +msgid "Bottom Margin" +msgstr "Margine Jos" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:336 +msgid "Distance between text body and the bottom of the PDF file." +msgstr "Distanța dintre corpul textului și partea de jos a fișierului PDF." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:347 +msgid "Left Margin" +msgstr "Margine Stânga" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:349 +msgid "Distance between text body and the left of the PDF file." +msgstr "Distanța dintre corpul textului și stânga fișierului PDF." + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:360 +msgid "Right Margin" +msgstr "Margine Dreapta" + +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:362 +msgid "Distance between text body and the right of the PDF file." +msgstr "Distanța dintre corpul textului și dreapta fișierului PDF." + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:26 +msgid "GUI Preferences" +msgstr "Preferințe GUI" + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:36 +msgid "Theme" +msgstr "Temă" + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:38 +msgid "" +"Select a theme for FlatCAM.\n" +"It will theme the plot area." +msgstr "" +"Selectează o Temă pentru FlatCAM.\n" +"Va afecta zona de afisare." + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:43 +msgid "Light" +msgstr "Luminos" + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:44 +msgid "Dark" +msgstr "Întunecat" + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:51 +msgid "Use Gray Icons" +msgstr "Utilizați pictogramele gri" + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:53 +msgid "" +"Check this box to use a set of icons with\n" +"a lighter (gray) color. To be used when a\n" +"full dark theme is applied." +msgstr "" +"Bifează această casetă pentru a utiliza un set de pictograme cu\n" +"o culoare mai deschisă (gri). Pentru a fi utilizat atunci când\n" +"se aplică o temă complet întunecată." + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:59 +msgid "Apply Theme" +msgstr "Aplicați Tema" + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:61 +msgid "" +"Select a theme for FlatCAM.\n" +"It will theme the plot area.\n" +"The application will restart after change." +msgstr "" +"Selectați o Temă pentru FlatCAM.\n" +"Va afecta zona de afisare.\n" +"Aplicația va reporni după modificare." + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:73 +msgid "Layout" +msgstr "Amplasare" + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:75 +msgid "" +"Select an layout for FlatCAM.\n" +"It is applied immediately." +msgstr "" +"Selectează un stil de amplasare a elementelor GUI in FlatCAM.\n" +"Se aplică imediat." + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:95 +msgid "Style" +msgstr "Stil" + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:97 +msgid "" +"Select an style for FlatCAM.\n" +"It will be applied at the next app start." +msgstr "" +"Selectează un stil pentru FlatCAM.\n" +"Se va aplic la următoarea pornire a aplicaţiei." + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:111 +msgid "Activate HDPI Support" +msgstr "Activați HDPI" + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:113 +msgid "" +"Enable High DPI support for FlatCAM.\n" +"It will be applied at the next app start." +msgstr "" +"Activează capabilitatea de DPI cu valoare mare.\n" +"Util pentru monitoarele 4k.\n" +"Va fi aplicată la următoarea pornire a aplicaţiei." + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:127 +msgid "Display Hover Shape" +msgstr "Afișează forma Hover" + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:129 +msgid "" +"Enable display of a hover shape for FlatCAM objects.\n" +"It is displayed whenever the mouse cursor is hovering\n" +"over any kind of not-selected object." +msgstr "" +"Activează o formă când se tine mouse-ul deasupra unui obiect\n" +"in canvas-ul FlatCAM. Forma este afișată doar dacă obiectul \n" +"nu este selectat." + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:136 +msgid "Display Selection Shape" +msgstr "Afișați forma de selecție" + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:138 +msgid "" +"Enable the display of a selection shape for FlatCAM objects.\n" +"It is displayed whenever the mouse selects an object\n" +"either by clicking or dragging mouse from left to right or\n" +"right to left." +msgstr "" +"Activează o formă de selectie pt obiectele FlatCAM.\n" +"Se afisează când mouse-ul selectează un obiect\n" +"pe canvas-ul FlatCAM fie făcând click pe obiect fie prin\n" +"crearea unei ferestre de selectie." + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:151 +msgid "Left-Right Selection Color" +msgstr "Culoare de selecție stânga-dreapta" + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:156 +msgid "Set the line color for the 'left to right' selection box." +msgstr "" +"Setează transparenţa conturului formei de selecţie\n" +"când selectia se face de la stânga la dreapta." + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:172 +msgid "" +"Set the fill color for the selection box\n" +"in case that the selection is done from left to right.\n" +"First 6 digits are the color and the last 2\n" +"digits are for alpha (transparency) level." +msgstr "" +"Setează culoarea pentru forma de selectare in cazul\n" +"in care selectia se face de la stânga la dreapta.\n" +"Primii 6 digiti sunt culoarea efectivă și ultimii\n" +"doi sunt pentru nivelul de transparenţă (alfa)." + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:192 +msgid "Set the fill transparency for the 'left to right' selection box." +msgstr "" +"Setează transparenţa formei de selecţie când selectia\n" +"se face de la stânga la dreapta." + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:216 +msgid "Right-Left Selection Color" +msgstr "Culoare de selecție dreapta-stânga" + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:222 +msgid "Set the line color for the 'right to left' selection box." +msgstr "" +"Setează transparenţa conturului formei de selecţie\n" +"când selectia se face de la dreapta la stânga." + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:239 +msgid "" +"Set the fill color for the selection box\n" +"in case that the selection is done from right to left.\n" +"First 6 digits are the color and the last 2\n" +"digits are for alpha (transparency) level." +msgstr "" +"Setează culoarea pentru forma de selectare in cazul\n" +"in care selectia se face de la dreapta la stânga.\n" +"Primii 6 digiti sunt culoarea efectiva și ultimii\n" +"doi sunt pentru nivelul de transparenţă (alfa)." + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:259 +msgid "Set the fill transparency for selection 'right to left' box." +msgstr "" +"Setează transparenţa formei de selecţie când selectia\n" +"se face de la dreapta la stânga." + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:286 +msgid "Editor Color" +msgstr "Culoare editor" + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:290 +msgid "Drawing" +msgstr "Desen" + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:292 +msgid "Set the color for the shape." +msgstr "Setează culoarea pentru forma geometrică din Editor." + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:309 +msgid "Set the color of the shape when selected." +msgstr "" +"Setează culoarea formei geometrice in Editor\n" +"când se face o selecţie." + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:332 +msgid "Project Items Color" +msgstr "Culoarea articolelor din Proiect" + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:336 +msgid "Enabled" +msgstr "Activat" + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:338 +msgid "Set the color of the items in Project Tab Tree." +msgstr "Setează culoarea elementelor din tab-ul Proiect." + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:352 +msgid "Disabled" +msgstr "Dezactivat" + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:354 +msgid "" +"Set the color of the items in Project Tab Tree,\n" +"for the case when the items are disabled." +msgstr "" +"Setează culoarea elementelor din tab-ul Proiect\n" +"in cazul in care elementele sunt dezactivate." + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:370 +msgid "Project AutoHide" +msgstr "Ascundere Proiect" + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:372 +msgid "" +"Check this box if you want the project/selected/tool tab area to\n" +"hide automatically when there are no objects loaded and\n" +"to show whenever a new object is created." +msgstr "" +"Bifează daca dorești ca zona Notebook să fie ascunsă automat\n" +"când nu sunt obiecte incărcate și să fie afișată automat\n" +"când un obiect nou este creat/incărcat." + +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:27 +msgid "Geometry Adv. Options" +msgstr "Opțiuni Avans. Geometrie" + +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:35 +msgid "" +"A list of Geometry advanced parameters.\n" +"Those parameters are available only for\n" +"Advanced App. Level." +msgstr "" +"O lista de parametri Geometrie avansati.\n" +"Acesti parametri sunt disponibili doar\n" +"când este selectat Nivelul Avansat pentru\n" +"aplicaţie in Preferințe - > General." + +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:45 +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:112 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:134 +#: flatcamTools/ToolCalibration.py:125 flatcamTools/ToolSolderPaste.py:240 +msgid "Toolchange X-Y" +msgstr "X,Y schimb. unealtă" + +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:56 +msgid "" +"Height of the tool just after starting the work.\n" +"Delete the value if you don't need this feature." +msgstr "" +"Înălţimea uneltei la care se gaseste la inceputul lucrului.\n" +"Lasa câmpul gol daca nu folosești aceasta." + +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:158 +msgid "Segment X size" +msgstr "Dim. seg X" + +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:160 +msgid "" +"The size of the trace segment on the X axis.\n" +"Useful for auto-leveling.\n" +"A value of 0 means no segmentation on the X axis." +msgstr "" +"Dimensiunea segmentului de traseu pe axa X.\n" +"Folositor pentru auto-nivelare.\n" +"O valoare de 0 inseamnaca nu se face segmentare\n" +"pe axa X." + +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:174 +msgid "Segment Y size" +msgstr "Dim. seg Y" + +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:176 +msgid "" +"The size of the trace segment on the Y axis.\n" +"Useful for auto-leveling.\n" +"A value of 0 means no segmentation on the Y axis." +msgstr "" +"Dimensiunea segmentului de traseu pe axa Y.\n" +"Folositor pentru auto-nivelare.\n" +"O valoare de 0 inseamnaca nu se face segmentare\n" +"pe axa Y." + +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:192 +msgid "Area Exclusion" +msgstr "Zonă de Excludere" + +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:194 +msgid "" +"Area exclusion parameters.\n" +"Those parameters are available only for\n" +"Advanced App. Level." +msgstr "" +"Parametrii Excludere Zonă.\n" +"Acesti parametri sunt disponibili doar\n" +"când este selectat Nivelul Avansat pentru\n" +"aplicaţie in Preferințe - > General." + +#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:33 +msgid "A list of Geometry Editor parameters." +msgstr "O lista de parametri ai Editorului de Geometrii." + +#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:43 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:196 +msgid "" +"Set the number of selected geometry\n" +"items above which the utility geometry\n" +"becomes just a selection rectangle.\n" +"Increases the performance when moving a\n" +"large number of geometric elements." +msgstr "" +"Setează numărul de geometriil selectate peste care\n" +"geometria utilitară devine o simplă formă pătratica de \n" +"selectie.\n" +"Creste performanta cand se muta un număr mai mare de \n" +"elemente geometrice." + +#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:27 +msgid "Geometry General" +msgstr "Geometrie General" + +#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:49 +msgid "" +"The number of circle steps for Geometry \n" +"circle and arc shapes linear approximation." +msgstr "" +"Numărul de segmente utilizate pentru\n" +"aproximarea lineara a Geometriilor circulare." + +#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:63 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:41 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:48 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:42 +msgid "Tools Dia" +msgstr "Dia Unealtă" + +#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:65 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:108 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:43 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:50 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:44 +msgid "" +"Diameters of the tools, separated by comma.\n" +"The value of the diameter has to use the dot decimals separator.\n" +"Valid values: 0.3, 1.0" +msgstr "" +"Diametrele uneltelor separate cu virgulă.\n" +"Valoarea diametrului trebuie sa folosească punctul ca si separator zecimal.\n" +"Valori valide: 0.3, 1.0" + +#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:80 +msgid "Geometry Object Color" +msgstr "Culoare obiect Geometrie" + +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:28 +msgid "Geometry Options" +msgstr "Opțiuni Geometrie" + +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:36 +msgid "" +"Create a CNC Job object\n" +"tracing the contours of this\n" +"Geometry object." +msgstr "" +"Crează un obiect CNCJob care urmăreste conturul\n" +"acestui obiect tip Geometrie." + +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:80 +msgid "Depth/Pass" +msgstr "Adânc./Trecere" + +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:82 +msgid "" +"The depth to cut on each pass,\n" +"when multidepth is enabled.\n" +"It has positive value although\n" +"it is a fraction from the depth\n" +"which has negative value." +msgstr "" +"Adâncimea la care se taie la fiecare trecere,\n" +"atunci când >MultiPas< este folosit.\n" +"Valoarea este pozitivă desi reprezinta o fracţie\n" +"a adancimii de tăiere care este o valoare negativă." + +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:27 +msgid "Gerber Adv. Options" +msgstr "Opțiuni Av. Gerber" + +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:33 +msgid "" +"A list of Gerber advanced parameters.\n" +"Those parameters are available only for\n" +"Advanced App. Level." +msgstr "" +"O lista de parametri Gerber avansati.\n" +"Acesti parametri sunt disponibili doar\n" +"când este selectat Nivelul Avansat pentru\n" +"aplicaţie in Preferințe - > General." + +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:52 +msgid "Table Show/Hide" +msgstr "Arata/Ascunde Tabela" + +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:54 +msgid "" +"Toggle the display of the Gerber Apertures Table.\n" +"Also, on hide, it will delete all mark shapes\n" +"that are drawn on canvas." +msgstr "" +"Comută afișarea tabelei de aperturi Gerber.\n" +"când se ascunde aceasta, se vor șterge și toate\n" +"posibil afisatele marcaje ale aperturilor." + +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:134 +msgid "Exterior" +msgstr "Exterior" + +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:135 +msgid "Interior" +msgstr "Interior" + +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:148 +msgid "" +"Buffering type:\n" +"- None --> best performance, fast file loading but no so good display\n" +"- Full --> slow file loading but good visuals. This is the default.\n" +"<>: Don't change this unless you know what you are doing !!!" +msgstr "" +"Tip de buferare:\n" +"- Nimic --> performanta superioară, incărcare rapidă a fisierului dar " +"afisarea nu este prea bună\n" +"- Complet --> incărcare lentă dar calitate vizuală bună. Aceasta este " +"valoarea de bază.\n" +"<>: Nu schimba această valoare decat dacă stii ce faci !!!" + +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:153 +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:88 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:207 +#: flatcamTools/ToolFiducials.py:201 flatcamTools/ToolFilm.py:255 +#: flatcamTools/ToolProperties.py:452 flatcamTools/ToolProperties.py:455 +#: flatcamTools/ToolProperties.py:458 flatcamTools/ToolProperties.py:483 +msgid "None" +msgstr "Nimic" + +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:159 +msgid "Simplify" +msgstr "Simplifica" + +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:161 +msgid "" +"When checked all the Gerber polygons will be\n" +"loaded with simplification having a set tolerance.\n" +"<>: Don't change this unless you know what you are doing !!!" +msgstr "" +"Când este bifat, toate poligoanele Gerber vor fi\n" +"încărcate simplificat cu o toleranță stabilită.\n" +"<>: Nu schimbați acest lucru decât dacă știți ce faceți !!!" + +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:168 +msgid "Tolerance" +msgstr "Toleranta" + +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:169 +msgid "Tolerance for polygon simplification." +msgstr "Toleranță pentru simplificarea poligoanelor." + +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:33 +msgid "A list of Gerber Editor parameters." +msgstr "O listă de parametri ai Editorului Gerber." + +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:43 +msgid "" +"Set the number of selected Gerber geometry\n" +"items above which the utility geometry\n" +"becomes just a selection rectangle.\n" +"Increases the performance when moving a\n" +"large number of geometric elements." +msgstr "" +"Setează numărul de geometrii selectate peste care\n" +"geometria utilitară devine un simplu pătrat de selectie.\n" +"Creste performanta cand se mută un număr mai mare\n" +"de elemente geometrice." + +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:56 +msgid "New Aperture code" +msgstr "Cod pt aperture noua" + +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:69 +msgid "New Aperture size" +msgstr "Dim. pt aperture noua" + +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:71 +msgid "Size for the new aperture" +msgstr "Dim. pentru noua apertură" + +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:82 +msgid "New Aperture type" +msgstr "Tip pt noua apaertura" + +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:84 +msgid "" +"Type for the new aperture.\n" +"Can be 'C', 'R' or 'O'." +msgstr "" +"Tipul noii aperture.\n" +"Poate fi „C”, „R” sau „O”." + +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:106 +msgid "Aperture Dimensions" +msgstr "Dim. aper" + +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:116 +msgid "Linear Pad Array" +msgstr "Arie Lineară de Sloturi" + +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:160 +msgid "Circular Pad Array" +msgstr "Arie de Sloturi circ" + +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:196 +msgid "Distance at which to buffer the Gerber element." +msgstr "Distanța la care se bufferează elementul Gerber." + +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:205 +msgid "Scale Tool" +msgstr "Unalta de Scalare" + +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:211 +msgid "Factor to scale the Gerber element." +msgstr "Factor pentru scalarea elementului Gerber." + +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:224 +msgid "Threshold low" +msgstr "Prag minim" + +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:226 +msgid "Threshold value under which the apertures are not marked." +msgstr "Valoarea pragului sub care aperturile nu sunt marcate." + +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:236 +msgid "Threshold high" +msgstr "Prag mare" + +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:238 +msgid "Threshold value over which the apertures are not marked." +msgstr "Valoarea pragului peste care nu sunt marcate aperturile." + +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:27 +msgid "Gerber Export" +msgstr "Export Gerber" + +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:33 +msgid "" +"The parameters set here are used in the file exported\n" +"when using the File -> Export -> Export Gerber menu entry." +msgstr "" +"Acesti parametri listati aici sunt folositi atunci când\n" +"se exporta un fişier Gerber folosind:\n" +"File -> Exportă -> Exportă Gerber." + +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:44 +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:50 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:84 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:90 +msgid "The units used in the Gerber file." +msgstr "Unitătile de măsură folosite in fişierul Gerber." + +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:58 +msgid "" +"The number of digits in the whole part of the number\n" +"and in the fractional part of the number." +msgstr "" +"Acest număr reprezinta numărul de digiti din partea\n" +"intreagă si in partea fractională a numărului." + +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:71 +msgid "" +"This numbers signify the number of digits in\n" +"the whole part of Gerber coordinates." +msgstr "" +"Acest număr reprezinta numărul de digiti din partea\n" +"intreagă a coordonatelor Gerber." + +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:87 +msgid "" +"This numbers signify the number of digits in\n" +"the decimal part of Gerber coordinates." +msgstr "" +"Acest număr reprezinta numărul de digiti din partea\n" +"zecimală a coordonatelor Gerber." + +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:99 +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:109 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:100 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:110 +msgid "" +"This sets the type of Gerber zeros.\n" +"If LZ then Leading Zeros are removed and\n" +"Trailing Zeros are kept.\n" +"If TZ is checked then Trailing Zeros are removed\n" +"and Leading Zeros are kept." +msgstr "" +"Aici se setează tipul de suprimare a zerourilor,\n" +"in cazul unui fişier Gerber.\n" +"TZ = zerourile din fata numărului sunt păstrate și\n" +"cele de la final sunt indepărtate.\n" +"LZ = zerourile din fata numărului sunt indepărtate și\n" +"cele de la final sunt păstrate.\n" +"(Invers fată de fişierele Excellon)." + +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:27 +msgid "Gerber General" +msgstr "Gerber General" + +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:45 +msgid "M-Color" +msgstr "M-Color" + +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:61 +msgid "" +"The number of circle steps for Gerber \n" +"circular aperture linear approximation." +msgstr "" +"Numărul de segmente utilizate pentru\n" +"aproximarea lineara a aperturilor Gerber circulare." + +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:73 +msgid "Default Values" +msgstr "Val. Implicite" + +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:75 +msgid "" +"Those values will be used as fallback values\n" +"in case that they are not found in the Gerber file." +msgstr "" +"Aceste valori vor fi utilizate ca valori de baza\n" +"în cazul în care acestea nu sunt găsite în fișierul Gerber." + +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:126 +msgid "Clean Apertures" +msgstr "Curățați Aperturile" + +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:128 +msgid "" +"Will remove apertures that do not have geometry\n" +"thus lowering the number of apertures in the Gerber object." +msgstr "" +"Va elimina Aperturile care nu au geometrie\n" +"scăzând astfel numărul de aperturi în obiectul Gerber." + +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:134 +msgid "Polarity change buffer" +msgstr "Tampon la Schimbarea polarității" + +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:136 +msgid "" +"Will apply extra buffering for the\n" +"solid geometry when we have polarity changes.\n" +"May help loading Gerber files that otherwise\n" +"do not load correctly." +msgstr "" +"Vor aplica un buffering suplimentar pentru\n" +"geometrie solidă când avem schimbări de polaritate.\n" +"Poate ajuta la încărcarea fișierelor Gerber care altfel\n" +"nu se încarcă corect." + +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:149 +msgid "Gerber Object Color" +msgstr "Culoare obiect Gerber" + +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:29 +msgid "Gerber Options" +msgstr "Opțiuni Gerber" + +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:107 +msgid "Combine Passes" +msgstr "Combina" + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:27 +msgid "Copper Thieving Tool Options" +msgstr "Opțiunile Uneltei Copper Thieving" + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:39 +msgid "" +"A tool to generate a Copper Thieving that can be added\n" +"to a selected Gerber file." +msgstr "" +"Un instrument pentru a genera o Copper Thieving care poate fi adăugat\n" +"la un fișier Gerber selectat." + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:47 +msgid "Number of steps (lines) used to interpolate circles." +msgstr "Numărul de pași (linii) utilizate pentru interpolarea cercurilor." + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:57 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:261 +#: flatcamTools/ToolCopperThieving.py:96 flatcamTools/ToolCopperThieving.py:431 +msgid "Clearance" +msgstr "Degajare" + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:59 +msgid "" +"This set the distance between the copper Thieving components\n" +"(the polygon fill may be split in multiple polygons)\n" +"and the copper traces in the Gerber file." +msgstr "" +"Acest lucru a stabilit distanța dintre componentele Copper Thieving\n" +"(umplutura poligonului poate fi împărțită în mai multe poligoane)\n" +"si traseele de cupru din fisierul Gerber." + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:87 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280 +#: flatcamTools/ToolCopperThieving.py:126 flatcamTools/ToolNCC.py:535 +#: flatcamTools/ToolNCC.py:1316 flatcamTools/ToolNCC.py:1647 +#: flatcamTools/ToolNCC.py:1935 flatcamTools/ToolNCC.py:1990 +#: flatcamTools/ToolPaint.py:486 flatcamTools/ToolPaint.py:946 +#: flatcamTools/ToolPaint.py:1452 +msgid "Area Selection" +msgstr "Selecţie zonă" + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:88 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280 +#: flatcamTools/ToolCopperThieving.py:127 flatcamTools/ToolDblSided.py:216 +#: flatcamTools/ToolNCC.py:535 flatcamTools/ToolNCC.py:1663 +#: flatcamTools/ToolNCC.py:1941 flatcamTools/ToolNCC.py:1998 +#: flatcamTools/ToolNCC.py:2306 flatcamTools/ToolNCC.py:2586 +#: flatcamTools/ToolNCC.py:3012 flatcamTools/ToolPaint.py:486 +#: flatcamTools/ToolPaint.py:931 flatcamTools/ToolPaint.py:1468 +#: tclCommands/TclCommandCopperClear.py:192 tclCommands/TclCommandPaint.py:166 +msgid "Reference Object" +msgstr "Obiect Ref" + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:90 +#: flatcamTools/ToolCopperThieving.py:129 +msgid "Reference:" +msgstr "Referinţă:" + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:92 +msgid "" +"- 'Itself' - the copper Thieving extent is based on the object extent.\n" +"- 'Area Selection' - left mouse click to start selection of the area to be " +"filled.\n" +"- 'Reference Object' - will do copper thieving within the area specified by " +"another object." +msgstr "" +"- „Însuși” - dimensiunea Copper Thieving se bazează pe obiectul care este " +"curățat de cupru.\n" +"- „Selecție zonă” - faceți clic stânga cu mouse-ul pentru a începe selecția " +"zonei de completat.\n" +"- „Obiect de referință” - va face Copper Thieving în zona specificată de un " +"alt obiect." + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:101 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:76 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:188 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:76 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:190 +#: flatcamTools/ToolCopperThieving.py:171 flatcamTools/ToolExtractDrills.py:102 +#: flatcamTools/ToolExtractDrills.py:240 flatcamTools/ToolPunchGerber.py:113 +#: flatcamTools/ToolPunchGerber.py:268 +msgid "Rectangular" +msgstr "Patrulater" + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:102 +#: flatcamTools/ToolCopperThieving.py:172 +msgid "Minimal" +msgstr "Minimal" + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:104 +#: flatcamTools/ToolCopperThieving.py:174 flatcamTools/ToolFilm.py:113 +msgid "Box Type:" +msgstr "Tip container:" + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:106 +#: flatcamTools/ToolCopperThieving.py:176 +msgid "" +"- 'Rectangular' - the bounding box will be of rectangular shape.\n" +"- 'Minimal' - the bounding box will be the convex hull shape." +msgstr "" +"- „Dreptunghiular” - caseta de delimitare va avea o formă dreptunghiulară.\n" +"- „Minimal” - caseta de delimitare va fi forma arie convexă." + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:120 +#: flatcamTools/ToolCopperThieving.py:192 +msgid "Dots Grid" +msgstr "Grilă de puncte" + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:121 +#: flatcamTools/ToolCopperThieving.py:193 +msgid "Squares Grid" +msgstr "Grilă de pătrate" + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:122 +#: flatcamTools/ToolCopperThieving.py:194 +msgid "Lines Grid" +msgstr "Grilă de linii" + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:124 +#: flatcamTools/ToolCopperThieving.py:196 +msgid "Fill Type:" +msgstr "Tip de umplere:" + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:126 +#: flatcamTools/ToolCopperThieving.py:198 +msgid "" +"- 'Solid' - copper thieving will be a solid polygon.\n" +"- 'Dots Grid' - the empty area will be filled with a pattern of dots.\n" +"- 'Squares Grid' - the empty area will be filled with a pattern of squares.\n" +"- 'Lines Grid' - the empty area will be filled with a pattern of lines." +msgstr "" +"- „Solid” - Copper Thieving va fi un poligon solid.\n" +"- „Grilă de puncte” - zona goală va fi umplută cu un model de puncte.\n" +"- „Grilă de pătrate” - zona goală va fi umplută cu un model de pătrate.\n" +"- „Grilă de linii” - zona goală va fi umplută cu un model de linii." + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:134 +#: flatcamTools/ToolCopperThieving.py:217 +msgid "Dots Grid Parameters" +msgstr "Parametri grilă puncte" + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:140 +#: flatcamTools/ToolCopperThieving.py:223 +msgid "Dot diameter in Dots Grid." +msgstr "Diametrul punctului în Grila de Puncte." + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:151 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:180 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:209 +#: flatcamTools/ToolCopperThieving.py:234 +#: flatcamTools/ToolCopperThieving.py:274 +#: flatcamTools/ToolCopperThieving.py:314 +msgid "Spacing" +msgstr "Spaţiere" + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:153 +#: flatcamTools/ToolCopperThieving.py:236 +msgid "Distance between each two dots in Dots Grid." +msgstr "Distanța dintre fiecare două puncte din Grila de Puncte." + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:163 +#: flatcamTools/ToolCopperThieving.py:257 +msgid "Squares Grid Parameters" +msgstr "Parametri grilă de patrate" + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:169 +#: flatcamTools/ToolCopperThieving.py:263 +msgid "Square side size in Squares Grid." +msgstr "Dimensiunea pătratului în Grila de Pătrate." + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:182 +#: flatcamTools/ToolCopperThieving.py:276 +msgid "Distance between each two squares in Squares Grid." +msgstr "Distanța dintre fiecare două pătrate din Grila Pătrate." + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:192 +#: flatcamTools/ToolCopperThieving.py:297 +msgid "Lines Grid Parameters" +msgstr "Parametri grilă de linii" + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:198 +#: flatcamTools/ToolCopperThieving.py:303 +msgid "Line thickness size in Lines Grid." +msgstr "Mărimea grosimii liniei în Grila de linii." + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:211 +#: flatcamTools/ToolCopperThieving.py:316 +msgid "Distance between each two lines in Lines Grid." +msgstr "Distanța dintre fiecare două linii în Grial de linii." + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:221 +#: flatcamTools/ToolCopperThieving.py:354 +msgid "Robber Bar Parameters" +msgstr "Parametri pentru Robber Bar" + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:223 +#: flatcamTools/ToolCopperThieving.py:356 +msgid "" +"Parameters used for the robber bar.\n" +"Robber bar = copper border to help in pattern hole plating." +msgstr "" +"Parametrii folosiți pentru Robber Bar.\n" +"Robber Bar = bordura de cupru pentru a ajuta la placarea de găuri, cu model." + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:231 +#: flatcamTools/ToolCopperThieving.py:364 +msgid "Bounding box margin for robber bar." +msgstr "" +"Marginea pentru forma înconjurătoare\n" +"a Robber Bar." + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:242 +#: flatcamTools/ToolCopperThieving.py:375 +msgid "Thickness" +msgstr "Grosime" + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:244 +#: flatcamTools/ToolCopperThieving.py:377 +msgid "The robber bar thickness." +msgstr "Grosimea Robber Bar." + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:254 +#: flatcamTools/ToolCopperThieving.py:408 +msgid "Pattern Plating Mask" +msgstr "Masca de placare cu model" + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:256 +#: flatcamTools/ToolCopperThieving.py:410 +msgid "Generate a mask for pattern plating." +msgstr "Generați o mască pentru placarea cu model." + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:263 +#: flatcamTools/ToolCopperThieving.py:433 +msgid "" +"The distance between the possible copper thieving elements\n" +"and/or robber bar and the actual openings in the mask." +msgstr "" +"Distanța dintre posibilele elemente Copper Thieving\n" +"și / sau Robber Bar și deschiderile efective ale măștii." + +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:27 +msgid "Calibration Tool Options" +msgstr "Opțiuni Unealta Calibrare" + +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:38 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:38 +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:38 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:38 +#: flatcamTools/ToolCopperThieving.py:91 flatcamTools/ToolFiducials.py:151 +msgid "Parameters used for this tool." +msgstr "Parametrii folosiți pentru aceasta unealta." + +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:43 +#: flatcamTools/ToolCalibration.py:181 +msgid "Source Type" +msgstr "Tipul sursei" + +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:44 +#: flatcamTools/ToolCalibration.py:182 +msgid "" +"The source of calibration points.\n" +"It can be:\n" +"- Object -> click a hole geo for Excellon or a pad for Gerber\n" +"- Free -> click freely on canvas to acquire the calibration points" +msgstr "" +"Sursa punctelor de calibrare.\n" +"Poate fi:\n" +"- Obiect -> faceți clic pe o geometrie gaură pentru Excellon sau pe un pad " +"pentru Gerber\n" +"- Liber -> faceți clic liber pe ecran pentru a obține punctele de calibrare" + +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:49 +#: flatcamTools/ToolCalibration.py:187 +msgid "Free" +msgstr "Liber" + +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:63 +#: flatcamTools/ToolCalibration.py:76 +msgid "Height (Z) for travelling between the points." +msgstr "Înălțime (Z) pentru deplasarea între puncte." + +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:75 +#: flatcamTools/ToolCalibration.py:88 +msgid "Verification Z" +msgstr "Z Verificare" + +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:77 +#: flatcamTools/ToolCalibration.py:90 +msgid "Height (Z) for checking the point." +msgstr "Înălțimea (Z) pentru verificarea punctului." + +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:89 +#: flatcamTools/ToolCalibration.py:102 +msgid "Zero Z tool" +msgstr "Realizare Zero Z" + +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:91 +#: flatcamTools/ToolCalibration.py:104 +msgid "" +"Include a sequence to zero the height (Z)\n" +"of the verification tool." +msgstr "" +"Includeți o secvență pentru aliniere la zero a înălțimii (Z)\n" +"uneltei de verificare." + +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:100 +#: flatcamTools/ToolCalibration.py:113 +msgid "Height (Z) for mounting the verification probe." +msgstr "Înălțime (Z) pentru montarea sondei de verificare." + +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:114 +#: flatcamTools/ToolCalibration.py:127 +msgid "" +"Toolchange X,Y position.\n" +"If no value is entered then the current\n" +"(x, y) point will be used," +msgstr "" +"Poziția X, Y pt schimbare unealtă.\n" +"Dacă nu este introdusă nicio valoare, atunci poziția\n" +"(x, y) curentă se va folosi," + +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:125 +#: flatcamTools/ToolCalibration.py:153 +msgid "Second point" +msgstr "Al doilea punct" + +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:127 +#: flatcamTools/ToolCalibration.py:155 +msgid "" +"Second point in the Gcode verification can be:\n" +"- top-left -> the user will align the PCB vertically\n" +"- bottom-right -> the user will align the PCB horizontally" +msgstr "" +"Al doilea punct al verificării Gcode poate fi:\n" +"- în stânga sus -> utilizatorul va alinia PCB-ul pe verticală\n" +"- în jos-dreapta -> utilizatorul va alinia PCB-ul pe orizontală" + +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:27 +msgid "Extract Drills Options" +msgstr "Opțiuni Extractie Găuri" + +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:42 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:42 +#: flatcamTools/ToolExtractDrills.py:68 flatcamTools/ToolPunchGerber.py:75 +msgid "Processed Pads Type" +msgstr "Tipul de pad-uri procesate" + +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:44 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:44 +#: flatcamTools/ToolExtractDrills.py:70 flatcamTools/ToolPunchGerber.py:77 +msgid "" +"The type of pads shape to be processed.\n" +"If the PCB has many SMD pads with rectangular pads,\n" +"disable the Rectangular aperture." +msgstr "" +"Tipul de forme ale pad-urilor care vor fi procesate.\n" +"Daca PCB-ul are multe paduri SMD cu formă rectangulară,\n" +"dezactivează apertura Rectangular." + +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:54 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:54 +#: flatcamTools/ToolExtractDrills.py:80 flatcamTools/ToolPunchGerber.py:91 +msgid "Process Circular Pads." +msgstr "Procesează paduri Circulare." + +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:60 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:162 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:60 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:164 +#: flatcamTools/ToolExtractDrills.py:86 flatcamTools/ToolExtractDrills.py:214 +#: flatcamTools/ToolPunchGerber.py:97 flatcamTools/ToolPunchGerber.py:242 +msgid "Oblong" +msgstr "Oval" + +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:62 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:62 +#: flatcamTools/ToolExtractDrills.py:88 flatcamTools/ToolPunchGerber.py:99 +msgid "Process Oblong Pads." +msgstr "Procesează paduri Ovale." + +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:70 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:70 +#: flatcamTools/ToolExtractDrills.py:96 flatcamTools/ToolPunchGerber.py:107 +msgid "Process Square Pads." +msgstr "Procesează paduri Pătratice." + +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:78 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:78 +#: flatcamTools/ToolExtractDrills.py:104 flatcamTools/ToolPunchGerber.py:115 +msgid "Process Rectangular Pads." +msgstr "Procesează paduri Rectangulare." + +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:84 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:201 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:84 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:203 +#: flatcamTools/ToolExtractDrills.py:110 flatcamTools/ToolExtractDrills.py:253 +#: flatcamTools/ToolProperties.py:172 flatcamTools/ToolPunchGerber.py:121 +#: flatcamTools/ToolPunchGerber.py:281 +msgid "Others" +msgstr "Altele" + +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:86 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:86 +#: flatcamTools/ToolExtractDrills.py:112 flatcamTools/ToolPunchGerber.py:123 +msgid "Process pads not in the categories above." +msgstr "Procesează paduri care nu se regăsesc in alte categorii." + +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:99 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:123 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:100 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:125 +#: flatcamTools/ToolExtractDrills.py:139 flatcamTools/ToolExtractDrills.py:156 +#: flatcamTools/ToolPunchGerber.py:150 flatcamTools/ToolPunchGerber.py:184 +msgid "Fixed Diameter" +msgstr "Dia fix" + +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:100 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:140 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:101 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:142 +#: flatcamTools/ToolExtractDrills.py:140 flatcamTools/ToolExtractDrills.py:192 +#: flatcamTools/ToolPunchGerber.py:151 flatcamTools/ToolPunchGerber.py:214 +msgid "Fixed Annular Ring" +msgstr "Inel anular Fix" + +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:101 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:102 +#: flatcamTools/ToolExtractDrills.py:141 flatcamTools/ToolPunchGerber.py:152 +msgid "Proportional" +msgstr "Proportional" + +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:107 +#: flatcamTools/ToolExtractDrills.py:130 +msgid "" +"The method for processing pads. Can be:\n" +"- Fixed Diameter -> all holes will have a set size\n" +"- Fixed Annular Ring -> all holes will have a set annular ring\n" +"- Proportional -> each hole size will be a fraction of the pad size" +msgstr "" +"Metoda de procesare a padurilor. Poate fi:\n" +"- Diametru fix -> toate găurile vor avea o dimensiune prestabilită\n" +"- Inel anular fix -> toate găurile vor avea un inel anular cu dimensiune " +"prestabilită\n" +"- Proportional -> fiecare gaură va avea un diametru cu dimensiunea fractie a " +"dimensiunii padului" + +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:133 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:135 +#: flatcamTools/ToolExtractDrills.py:166 flatcamTools/ToolPunchGerber.py:194 +msgid "Fixed hole diameter." +msgstr "Dia gaură fix." + +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:142 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:144 +#: flatcamTools/ToolExtractDrills.py:194 flatcamTools/ToolPunchGerber.py:216 +msgid "" +"The size of annular ring.\n" +"The copper sliver between the hole exterior\n" +"and the margin of the copper pad." +msgstr "" +"Dimensiunea Inelului Anular.\n" +"Inelul de cupru dintre exteriorul găurii si\n" +"marginea exterioară a padului de cupru." + +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:151 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:153 +#: flatcamTools/ToolExtractDrills.py:203 flatcamTools/ToolPunchGerber.py:231 +msgid "The size of annular ring for circular pads." +msgstr "Dimensiunea inelului anular pentru paduri Circulare." + +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:164 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:166 +#: flatcamTools/ToolExtractDrills.py:216 flatcamTools/ToolPunchGerber.py:244 +msgid "The size of annular ring for oblong pads." +msgstr "Dimensiunea inelului anular pentru paduri Ovale." + +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:177 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:179 +#: flatcamTools/ToolExtractDrills.py:229 flatcamTools/ToolPunchGerber.py:257 +msgid "The size of annular ring for square pads." +msgstr "Dimensiunea inelului anular pentru paduri Pătratice." + +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:190 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:192 +#: flatcamTools/ToolExtractDrills.py:242 flatcamTools/ToolPunchGerber.py:270 +msgid "The size of annular ring for rectangular pads." +msgstr "Dimnensiunea inelului anular pentru paduri Rectangulare." + +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:203 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:205 +#: flatcamTools/ToolExtractDrills.py:255 flatcamTools/ToolPunchGerber.py:283 +msgid "The size of annular ring for other pads." +msgstr "" +"Dimensiunea inelului anular pentru alte tipuri de paduri decat cele de mai " +"sus." + +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:213 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:215 +#: flatcamTools/ToolExtractDrills.py:276 flatcamTools/ToolPunchGerber.py:299 +msgid "Proportional Diameter" +msgstr "Diametru Proportional" + +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:222 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:224 +msgid "Factor" +msgstr "Factor" + +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:224 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:226 +#: flatcamTools/ToolExtractDrills.py:287 flatcamTools/ToolPunchGerber.py:310 +msgid "" +"Proportional Diameter.\n" +"The hole diameter will be a fraction of the pad size." +msgstr "" +"Diametru Proportional.\n" +"Diametrul găurii va fi un procent din dimensiunea padului." + +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:27 +msgid "Fiducials Tool Options" +msgstr "Opțiuni Unealta Fiducials" + +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:45 +#: flatcamTools/ToolFiducials.py:158 +msgid "" +"This set the fiducial diameter if fiducial type is circular,\n" +"otherwise is the size of the fiducial.\n" +"The soldermask opening is double than that." +msgstr "" +"Aceasta setează diametrul pt fiducial dacă tipul fiducial-ul este circular,\n" +"altfel este dimensiunea fiducial-ului.\n" +"Deschiderea soldermask este dublă." + +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:73 +#: flatcamTools/ToolFiducials.py:186 +msgid "Auto" +msgstr "Auto" + +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:74 +#: flatcamTools/ToolFiducials.py:187 +msgid "Manual" +msgstr "Manual" + +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:76 +#: flatcamTools/ToolFiducials.py:189 +msgid "Mode:" +msgstr "Mod:" + +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:78 +msgid "" +"- 'Auto' - automatic placement of fiducials in the corners of the bounding " +"box.\n" +"- 'Manual' - manual placement of fiducials." +msgstr "" +"- „Auto” - plasarea automată a fiducial în colțurile casetei de delimitare.\n" +"- „Manual” - plasarea manuală a fiducial." + +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:86 +#: flatcamTools/ToolFiducials.py:199 +msgid "Up" +msgstr "Sus" + +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:87 +#: flatcamTools/ToolFiducials.py:200 +msgid "Down" +msgstr "Jos" + +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:90 +#: flatcamTools/ToolFiducials.py:203 +msgid "Second fiducial" +msgstr "Al 2-lea Fiducial" + +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:92 +#: flatcamTools/ToolFiducials.py:205 +msgid "" +"The position for the second fiducial.\n" +"- 'Up' - the order is: bottom-left, top-left, top-right.\n" +"- 'Down' - the order is: bottom-left, bottom-right, top-right.\n" +"- 'None' - there is no second fiducial. The order is: bottom-left, top-right." +msgstr "" +"Poziția pentru cel de-al doilea fiducal.\n" +"- „Sus” - ordinea este: jos-stânga, sus-stânga, sus-dreapta.\n" +"- „Jos” - ordinea este: jos-stânga, jos-dreapta, sus-dreapta.\n" +"- „Niciuna” - nu există un al doilea fiduțial. Ordinea este: jos-stânga, sus-" +"dreapta." + +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:108 +#: flatcamTools/ToolFiducials.py:221 +msgid "Cross" +msgstr "Cruce" + +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:109 +#: flatcamTools/ToolFiducials.py:222 +msgid "Chess" +msgstr "Şah" + +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:112 +#: flatcamTools/ToolFiducials.py:224 +msgid "Fiducial Type" +msgstr "Tip Fiducial" + +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:114 +#: flatcamTools/ToolFiducials.py:226 +msgid "" +"The type of fiducial.\n" +"- 'Circular' - this is the regular fiducial.\n" +"- 'Cross' - cross lines fiducial.\n" +"- 'Chess' - chess pattern fiducial." +msgstr "" +"Tipul de fiducial.\n" +"- „Circular” - acesta este un Fiducial obișnuit.\n" +"- „Cross” - linii încrucișate fiduciare.\n" +"- „Șah” - model de șah fiduciar." + +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:123 +#: flatcamTools/ToolFiducials.py:235 +msgid "Line thickness" +msgstr "Grosimea liniei" + +#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:27 +msgid "Invert Gerber Tool Options" +msgstr "Opțiuni Unalta de Inversare Gerber" + +#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:33 +msgid "" +"A tool to invert Gerber geometry from positive to negative\n" +"and in revers." +msgstr "" +"O unealtă de inversare a geometriei unui obiect Gerber \n" +"din pozitiv in negative si invers." + +#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:47 +#: flatcamTools/ToolInvertGerber.py:90 +msgid "" +"Distance by which to avoid\n" +"the edges of the Gerber object." +msgstr "" +"Distanta cu care trebuie evitate\n" +"marginile obiectului Gerber." + +#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:58 +#: flatcamTools/ToolInvertGerber.py:101 +msgid "Lines Join Style" +msgstr "Stil Unire Linii" + +#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:60 +#: flatcamTools/ToolInvertGerber.py:103 +msgid "" +"The way that the lines in the object outline will be joined.\n" +"Can be:\n" +"- rounded -> an arc is added between two joining lines\n" +"- square -> the lines meet in 90 degrees angle\n" +"- bevel -> the lines are joined by a third line" +msgstr "" +"Modul in care liniile dintr-un perimetru al unui obiect vor fi unite.\n" +"Poate fi:\n" +"- rotunjit -> un arc este adăugat intre oricare doua linii care se " +"intalnesc\n" +"- pătrat -> liniile se vor intalni intr-un unghi de 90 grade\n" +"- Teşit -> liniile sunt unite de o a 3-a linie" + +#: flatcamGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:27 +msgid "Optimal Tool Options" +msgstr "Opțiuni Unealta Optim" + +#: flatcamGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:33 +msgid "" +"A tool to find the minimum distance between\n" +"every two Gerber geometric elements" +msgstr "" +"Un instrument pentru a găsi distanța minimă între\n" +"la fiecare două elemente geometrice Gerber" + +#: flatcamGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:48 +#: flatcamTools/ToolOptimal.py:78 +msgid "Precision" +msgstr "Precizie" + +#: flatcamGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:50 +msgid "Number of decimals for the distances and coordinates in this tool." +msgstr "" +"Numărul de zecimale pentru distanțele și coordonatele din acest instrument." + +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:27 +msgid "Punch Gerber Options" +msgstr "Opțiuni Punctare Gerber" + +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:108 +#: flatcamTools/ToolPunchGerber.py:141 +msgid "" +"The punch hole source can be:\n" +"- Excellon Object-> the Excellon object drills center will serve as " +"reference.\n" +"- Fixed Diameter -> will try to use the pads center as reference adding " +"fixed diameter holes.\n" +"- Fixed Annular Ring -> will try to keep a set annular ring.\n" +"- Proportional -> will make a Gerber punch hole having the diameter a " +"percentage of the pad diameter." +msgstr "" +"Sursa de punctare pt găuri poate fi:\n" +"- Obiect Excellon -> centrul găurilor din obiectul Excellon va servi ca " +"referintă.\n" +"- Diametru Fix -> se va incerca să se folosească centrul padurilor ca " +"referintă adăungand diametrul fix al găurilor.\n" +"- Inel anular Fix -> va incerca să mentină un inele anular cu dimensiune " +"prestabilită.\n" +"- Proportional -> găurile de punctare vor avea diametrul un procent " +"prestabilit din diametrul padului." + +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:27 +msgid "QRCode Tool Options" +msgstr "Opțiuni Unealta QRCode" + +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:33 +msgid "" +"A tool to create a QRCode that can be inserted\n" +"into a selected Gerber file, or it can be exported as a file." +msgstr "" +"O unealta pentru a crea un cod QRC care poate fi inserat\n" +"într-un fișier Gerber selectat sau care poate fi exportat ca fișier." + +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:45 +#: flatcamTools/ToolQRCode.py:100 +msgid "Version" +msgstr "Versiune" + +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:47 +#: flatcamTools/ToolQRCode.py:102 +msgid "" +"QRCode version can have values from 1 (21x21 boxes)\n" +"to 40 (177x177 boxes)." +msgstr "" +"Versiunea QRCode poate avea valori de la 1 (21x21 elemente)\n" +"la 40 (177x177 elemente)." + +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:58 +#: flatcamTools/ToolQRCode.py:113 +msgid "Error correction" +msgstr "Corectarea erorii" + +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:60 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:71 +#: flatcamTools/ToolQRCode.py:115 flatcamTools/ToolQRCode.py:126 +#, python-format +msgid "" +"Parameter that controls the error correction used for the QR Code.\n" +"L = maximum 7%% errors can be corrected\n" +"M = maximum 15%% errors can be corrected\n" +"Q = maximum 25%% errors can be corrected\n" +"H = maximum 30%% errors can be corrected." +msgstr "" +"Parametru care controlează corectarea erorilor utilizate pentru codul QR.\n" +"L = maxim 7%% erorile pot fi corectate\n" +"M = maxim 15%% erorile pot fi corectate\n" +"Q = erorile maxime de 25%% pot fi corectate\n" +"H = maxim 30%% erorile pot fi corectate." + +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:81 +#: flatcamTools/ToolQRCode.py:136 +msgid "Box Size" +msgstr "Dim. Element" + +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:83 +#: flatcamTools/ToolQRCode.py:138 +msgid "" +"Box size control the overall size of the QRcode\n" +"by adjusting the size of each box in the code." +msgstr "" +"Dimensiunea Element controlează dimensiunea generală a codului QR\n" +"prin ajustarea dimensiunii fiecărui element din cod." + +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:94 +#: flatcamTools/ToolQRCode.py:149 +msgid "Border Size" +msgstr "Dim Bordură" + +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:96 +#: flatcamTools/ToolQRCode.py:151 +msgid "" +"Size of the QRCode border. How many boxes thick is the border.\n" +"Default value is 4. The width of the clearance around the QRCode." +msgstr "" +"Dimensiunea chenarului QRCode. Câte elemente va contine bordura.\n" +"Valoarea implicită este 4. Lățimea spatiului liber în jurul codului QRC." + +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:107 +#: flatcamTools/ToolQRCode.py:162 +msgid "QRCode Data" +msgstr "Date QRCode" + +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:109 +#: flatcamTools/ToolQRCode.py:164 +msgid "QRCode Data. Alphanumeric text to be encoded in the QRCode." +msgstr "Date QRCode. Text alfanumeric care va fi codat în codul QRC." + +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:113 +#: flatcamTools/ToolQRCode.py:168 +msgid "Add here the text to be included in the QRCode..." +msgstr "Adăugați aici textul care va fi inclus în codul QR ..." + +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:119 +#: flatcamTools/ToolQRCode.py:174 +msgid "Polarity" +msgstr "Polaritate" + +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:121 +#: flatcamTools/ToolQRCode.py:176 +msgid "" +"Choose the polarity of the QRCode.\n" +"It can be drawn in a negative way (squares are clear)\n" +"or in a positive way (squares are opaque)." +msgstr "" +"Alegeți polaritatea codului QRC.\n" +"Poate fi desenat într-un mod negativ (pătratele sunt clare)\n" +"sau într-un mod pozitiv (pătratele sunt opace)." + +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:125 +#: flatcamTools/ToolFilm.py:296 flatcamTools/ToolQRCode.py:180 +msgid "Negative" +msgstr "Negativ" + +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:126 +#: flatcamTools/ToolFilm.py:295 flatcamTools/ToolQRCode.py:181 +msgid "Positive" +msgstr "Pozitiv" + +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:128 +#: flatcamTools/ToolQRCode.py:183 +msgid "" +"Choose the type of QRCode to be created.\n" +"If added on a Silkscreen Gerber file the QRCode may\n" +"be added as positive. If it is added to a Copper Gerber\n" +"file then perhaps the QRCode can be added as negative." +msgstr "" +"Alegeți tipul de cod QRC care urmează să fie creat.\n" +"Dacă este adăugat într-un fișier Silkscreen Gerber, codul QR poate\n" +"să fie adăugat ca fiind pozitiv. Dacă este adăugat la un Gerber de cupru\n" +"atunci codul QR poate fi adăugat ca negativ." + +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:139 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:145 +#: flatcamTools/ToolQRCode.py:194 flatcamTools/ToolQRCode.py:200 +msgid "" +"The bounding box, meaning the empty space that surrounds\n" +"the QRCode geometry, can have a rounded or a square shape." +msgstr "" +"Caseta de încadrare, adică spațiul gol care înconjoară\n" +"geometria QRCode, poate avea o formă rotunjită sau pătrată." + +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:142 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:239 +#: flatcamTools/ToolQRCode.py:197 flatcamTools/ToolTransform.py:383 +msgid "Rounded" +msgstr "Rotunjit" + +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:152 +#: flatcamTools/ToolQRCode.py:228 +msgid "Fill Color" +msgstr "Culoare Continut" + +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:154 +#: flatcamTools/ToolQRCode.py:230 +msgid "Set the QRCode fill color (squares color)." +msgstr "Setați culoarea QRCode de umplere (culoarea elementelor)." + +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:173 +#: flatcamTools/ToolQRCode.py:252 +msgid "Back Color" +msgstr "Culoare de fundal" + +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:175 +#: flatcamTools/ToolQRCode.py:254 +msgid "Set the QRCode background color." +msgstr "Setați culoarea de fundal QRCode." + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:27 +msgid "Check Rules Tool Options" +msgstr "Opțiuni Unealta Verificare Reguli" + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:32 +msgid "" +"A tool to check if Gerber files are within a set\n" +"of Manufacturing Rules." +msgstr "" +"Un instrument pentru a verifica dacă fișierele Gerber se află într-un set\n" +"de Norme de fabricație." + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:42 +#: flatcamTools/ToolRulesCheck.py:265 flatcamTools/ToolRulesCheck.py:929 +msgid "Trace Size" +msgstr "Dim. traseu" + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:44 +#: flatcamTools/ToolRulesCheck.py:267 +msgid "This checks if the minimum size for traces is met." +msgstr "Aceasta verifică dacă dimensiunea minimă a traseelor este respectată." + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:54 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:74 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:94 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:114 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:134 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:154 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:174 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:194 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:216 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:236 +#: flatcamTools/ToolRulesCheck.py:277 flatcamTools/ToolRulesCheck.py:299 +#: flatcamTools/ToolRulesCheck.py:322 flatcamTools/ToolRulesCheck.py:345 +#: flatcamTools/ToolRulesCheck.py:368 flatcamTools/ToolRulesCheck.py:391 +#: flatcamTools/ToolRulesCheck.py:414 flatcamTools/ToolRulesCheck.py:437 +#: flatcamTools/ToolRulesCheck.py:462 flatcamTools/ToolRulesCheck.py:485 +msgid "Min value" +msgstr "Val. min" + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:56 +#: flatcamTools/ToolRulesCheck.py:279 +msgid "Minimum acceptable trace size." +msgstr "Dimensiunea minimă acceptabilă a traseelor." + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:61 +#: flatcamTools/ToolRulesCheck.py:286 flatcamTools/ToolRulesCheck.py:1157 +#: flatcamTools/ToolRulesCheck.py:1187 +msgid "Copper to Copper clearance" +msgstr "Distanta de la cupru până la cupru" + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:63 +#: flatcamTools/ToolRulesCheck.py:288 +msgid "" +"This checks if the minimum clearance between copper\n" +"features is met." +msgstr "" +"Aceasta verifică dacă distanța minimă dintre traseele cupru\n" +"este îndeplinita." + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:76 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:96 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:116 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:136 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:156 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:176 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:238 +#: flatcamTools/ToolRulesCheck.py:301 flatcamTools/ToolRulesCheck.py:324 +#: flatcamTools/ToolRulesCheck.py:347 flatcamTools/ToolRulesCheck.py:370 +#: flatcamTools/ToolRulesCheck.py:393 flatcamTools/ToolRulesCheck.py:416 +#: flatcamTools/ToolRulesCheck.py:464 +msgid "Minimum acceptable clearance value." +msgstr "Valoarea minimă acceptabilă a distantei." + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:81 +#: flatcamTools/ToolRulesCheck.py:309 flatcamTools/ToolRulesCheck.py:1217 +#: flatcamTools/ToolRulesCheck.py:1223 flatcamTools/ToolRulesCheck.py:1236 +#: flatcamTools/ToolRulesCheck.py:1243 +msgid "Copper to Outline clearance" +msgstr "Distanta de la Cupru până la contur" + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:83 +#: flatcamTools/ToolRulesCheck.py:311 +msgid "" +"This checks if the minimum clearance between copper\n" +"features and the outline is met." +msgstr "" +"Aceasta verifică dacă distanța minimă dintre\n" +"traseele de cupru și conturul este îndeplinit." + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:101 +#: flatcamTools/ToolRulesCheck.py:332 +msgid "Silk to Silk Clearance" +msgstr "Distanta Silk până la Silk Clearance" + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:103 +#: flatcamTools/ToolRulesCheck.py:334 +msgid "" +"This checks if the minimum clearance between silkscreen\n" +"features and silkscreen features is met." +msgstr "" +"Acest lucru verifică dacă distanța minimă între silk (anotari)\n" +"sunt îndeplinite." + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:121 +#: flatcamTools/ToolRulesCheck.py:355 flatcamTools/ToolRulesCheck.py:1326 +#: flatcamTools/ToolRulesCheck.py:1332 flatcamTools/ToolRulesCheck.py:1350 +msgid "Silk to Solder Mask Clearance" +msgstr "Distanta intre Silk (anotari) si Solder mask (masca fludor)" + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:123 +#: flatcamTools/ToolRulesCheck.py:357 +msgid "" +"This checks if the minimum clearance between silkscreen\n" +"features and soldermask features is met." +msgstr "" +"Acest lucru verifică dacă distanța minimă între Silk (anotari)\n" +"și Solder Mask (masca de fludor) este îndeplinită." + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:141 +#: flatcamTools/ToolRulesCheck.py:378 flatcamTools/ToolRulesCheck.py:1380 +#: flatcamTools/ToolRulesCheck.py:1386 flatcamTools/ToolRulesCheck.py:1400 +#: flatcamTools/ToolRulesCheck.py:1407 +msgid "Silk to Outline Clearance" +msgstr "Distanta Silk (anotari) si Contur" + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:143 +#: flatcamTools/ToolRulesCheck.py:380 +msgid "" +"This checks if the minimum clearance between silk\n" +"features and the outline is met." +msgstr "" +"Acest lucru verifică dacă distanța minimă dintre Silk (anotari)\n" +"și Contur este îndeplinită." + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:161 +#: flatcamTools/ToolRulesCheck.py:401 flatcamTools/ToolRulesCheck.py:1418 +#: flatcamTools/ToolRulesCheck.py:1445 +msgid "Minimum Solder Mask Sliver" +msgstr "" +"Dim. minima a separatorului din Solder Mask\n" +"(masca de fludor)" + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:163 +#: flatcamTools/ToolRulesCheck.py:403 +msgid "" +"This checks if the minimum clearance between soldermask\n" +"features and soldermask features is met." +msgstr "" +"Acest lucru verifică dacă distanta minimă între\n" +"elementele soldermask (masca de fludor) este îndeplinită." + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:181 +#: flatcamTools/ToolRulesCheck.py:424 flatcamTools/ToolRulesCheck.py:1483 +#: flatcamTools/ToolRulesCheck.py:1489 flatcamTools/ToolRulesCheck.py:1505 +#: flatcamTools/ToolRulesCheck.py:1512 +msgid "Minimum Annular Ring" +msgstr "Inel anular minim" + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:183 +#: flatcamTools/ToolRulesCheck.py:426 +msgid "" +"This checks if the minimum copper ring left by drilling\n" +"a hole into a pad is met." +msgstr "" +"Acest lucru verifică dacă inelul de cupru minim rămas prin găurire\n" +"unde se întâlnește o gaură cu pad-ul depășește valoarea minimă." + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:196 +#: flatcamTools/ToolRulesCheck.py:439 +msgid "Minimum acceptable ring value." +msgstr "Valoarea minimă acceptabilă a inelului." + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:203 +#: flatcamTools/ToolRulesCheck.py:449 flatcamTools/ToolRulesCheck.py:873 +msgid "Hole to Hole Clearance" +msgstr "Distanta de la Gaură la Gaură" + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:205 +#: flatcamTools/ToolRulesCheck.py:451 +msgid "" +"This checks if the minimum clearance between a drill hole\n" +"and another drill hole is met." +msgstr "" +"Acest lucru verifică dacă distanța minimă dintre o gaură\n" +"și o altă gaură este îndeplinită." + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:218 +#: flatcamTools/ToolRulesCheck.py:487 +msgid "Minimum acceptable drill size." +msgstr "Dimensiunea minimă acceptabilă a gaurii." + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:223 +#: flatcamTools/ToolRulesCheck.py:472 flatcamTools/ToolRulesCheck.py:847 +msgid "Hole Size" +msgstr "Dimens. gaura" + +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:225 +#: flatcamTools/ToolRulesCheck.py:474 +msgid "" +"This checks if the drill holes\n" +"sizes are above the threshold." +msgstr "" +"Acest lucru verifică dacă\n" +"dimensiunile găurilor sunt peste prag." + +#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:27 +msgid "2Sided Tool Options" +msgstr "Opțiuni Unealta 2Fețe" + +#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:33 +msgid "" +"A tool to help in creating a double sided\n" +"PCB using alignment holes." +msgstr "" +"O unealtă care ajuta in crearea de PCB-uri cu 2 fețe\n" +"folosind găuri de aliniere." + +#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:47 +msgid "Drill dia" +msgstr "Dia gaură" + +#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:49 +#: flatcamTools/ToolDblSided.py:363 flatcamTools/ToolDblSided.py:368 +msgid "Diameter of the drill for the alignment holes." +msgstr "Diametrul găurii pentru găurile de aliniere." + +#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:56 +#: flatcamTools/ToolDblSided.py:377 +msgid "Align Axis" +msgstr "Aliniați Axa" + +#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:58 +#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:71 +#: flatcamTools/ToolDblSided.py:165 flatcamTools/ToolDblSided.py:379 +msgid "Mirror vertically (X) or horizontally (Y)." +msgstr "Oglindește vertical (X) sau orizontal (Y)." + +#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:69 +msgid "Mirror Axis:" +msgstr "Axe oglindire:" + +#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:80 +#: flatcamTools/ToolDblSided.py:181 +msgid "Point" +msgstr "Punct" + +#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:81 +#: flatcamTools/ToolDblSided.py:182 +msgid "Box" +msgstr "Forma" + +#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:82 +msgid "Axis Ref" +msgstr "Axa de Ref" + +#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:84 +msgid "" +"The axis should pass through a point or cut\n" +" a specified box (in a FlatCAM object) through \n" +"the center." +msgstr "" +"Axa de referinţă ar trebui să treacă printr-un punct ori să strabata\n" +" o forma (obiect FlatCAM) prin mijloc." + +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:27 +msgid "Calculators Tool Options" +msgstr "Opțiuni Unealta Calculatoare" + +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:31 +#: flatcamTools/ToolCalculators.py:25 +msgid "V-Shape Tool Calculator" +msgstr "Calculator Unealta V-Shape" + +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:33 +msgid "" +"Calculate the tool diameter for a given V-shape tool,\n" +"having the tip diameter, tip angle and\n" +"depth-of-cut as parameters." +msgstr "" +"Calculează diametrul pentru o unealtă V-Shape data,\n" +"avand diametrul vârfului și unghiul la vârf cat și\n" +"adâncimea de tăiere, ca parametri." + +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:50 +#: flatcamTools/ToolCalculators.py:94 +msgid "Tip Diameter" +msgstr "Dia vârf" + +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:52 +#: flatcamTools/ToolCalculators.py:102 +msgid "" +"This is the tool tip diameter.\n" +"It is specified by manufacturer." +msgstr "" +"Acesta este diametrul la vârf al uneltei.\n" +"Este specificat de producator." + +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:64 +#: flatcamTools/ToolCalculators.py:105 +msgid "Tip Angle" +msgstr "V-Unghi" + +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:66 +msgid "" +"This is the angle on the tip of the tool.\n" +"It is specified by manufacturer." +msgstr "" +"Acesta este unghiul la vârf al uneltei.\n" +"Este specificat de producator." + +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:80 +msgid "" +"This is depth to cut into material.\n" +"In the CNCJob object it is the CutZ parameter." +msgstr "" +"Aceasta este adâncimea la care se taie in material.\n" +"In obiectul CNCJob este parametrul >Z tăiere<." + +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:87 +#: flatcamTools/ToolCalculators.py:27 +msgid "ElectroPlating Calculator" +msgstr "Calculator ElectroPlacare" + +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:89 +#: flatcamTools/ToolCalculators.py:158 +msgid "" +"This calculator is useful for those who plate the via/pad/drill holes,\n" +"using a method like graphite ink or calcium hypophosphite ink or palladium " +"chloride." +msgstr "" +"Acest calculator este util pentru aceia care plachează găuri/vias\n" +"folosind o metoda cum ar fi:\n" +"- cerneala grafitate (carbon)\n" +"- clorura paladiu\n" +"- hipofosfit de calciu." + +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:100 +#: flatcamTools/ToolCalculators.py:167 +msgid "Board Length" +msgstr "Lung. plăcii" + +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:102 +#: flatcamTools/ToolCalculators.py:173 +msgid "This is the board length. In centimeters." +msgstr "" +"Aceasta este lungimea PCB-ului.\n" +"In centimetri." + +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:112 +#: flatcamTools/ToolCalculators.py:175 +msgid "Board Width" +msgstr "Lăt. plăcii" + +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:114 +#: flatcamTools/ToolCalculators.py:181 +msgid "This is the board width.In centimeters." +msgstr "" +"Aceasta este lăţimea PCB-ului.\n" +"In centimetri." + +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:119 +#: flatcamTools/ToolCalculators.py:183 +msgid "Current Density" +msgstr "Densitate I" + +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:125 +#: flatcamTools/ToolCalculators.py:190 +msgid "" +"Current density to pass through the board. \n" +"In Amps per Square Feet ASF." +msgstr "" +"Densitatea de curent care să treaca prin placa.\n" +"In ASF (amperi pe picior la patrat)." + +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:131 +#: flatcamTools/ToolCalculators.py:193 +msgid "Copper Growth" +msgstr "Grosime Cu" + +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:137 +#: flatcamTools/ToolCalculators.py:200 +msgid "" +"How thick the copper growth is intended to be.\n" +"In microns." +msgstr "" +"Cat de gros se dorește să fie stratul de cupru depus.\n" +"In microni." + +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:28 +msgid "Cutout Tool Options" +msgstr "Opțiuni Unealta Decupare" + +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:43 +#: flatcamTools/ToolCalculators.py:123 flatcamTools/ToolCutOut.py:129 +msgid "Tool Diameter" +msgstr "Dia unealtă" + +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:45 +#: flatcamTools/ToolCutOut.py:131 +msgid "" +"Diameter of the tool used to cutout\n" +"the PCB shape out of the surrounding material." +msgstr "" +"Diametrul uneltei folosita pt decuparea\n" +"PCB-ului din materialului inconjurator." + +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:100 +msgid "Object kind" +msgstr "Tipul de obiect" + +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:102 +#: flatcamTools/ToolCutOut.py:77 +msgid "" +"Choice of what kind the object we want to cutout is.
    - Single: " +"contain a single PCB Gerber outline object.
    - Panel: a panel PCB " +"Gerber object, which is made\n" +"out of many individual PCB outlines." +msgstr "" +"Genul de obiect pe care vrem să il decupăm..
    - Unic: contine un " +"singur contur PCB in obiectul Gerber .
    - Panel: un obiect Gerber " +"tip panel, care este făcut\n" +"din mai multe contururi PCB." + +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:109 +#: flatcamTools/ToolCutOut.py:83 +msgid "Single" +msgstr "Unic" + +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:110 +#: flatcamTools/ToolCutOut.py:84 +msgid "Panel" +msgstr "Panel" + +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:117 +#: flatcamTools/ToolCutOut.py:192 +msgid "" +"Margin over bounds. A positive value here\n" +"will make the cutout of the PCB further from\n" +"the actual PCB border" +msgstr "" +"Marginea (zona de siguranţă). O val. pozitivă\n" +"va face decuparea distanțat cu aceasta valoare \n" +"fata de PCB-ul efectiv" + +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:130 +#: flatcamTools/ToolCutOut.py:203 +msgid "Gap size" +msgstr "Dim. punte" + +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:132 +#: flatcamTools/ToolCutOut.py:205 +msgid "" +"The size of the bridge gaps in the cutout\n" +"used to keep the board connected to\n" +"the surrounding material (the one \n" +"from which the PCB is cutout)." +msgstr "" +"Dimenisunea punţilor in decupaj care servesc\n" +"in a mentine ataşat PCB-ul la materialul de unde \n" +"este decupat." + +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:146 +#: flatcamTools/ToolCutOut.py:245 +msgid "Gaps" +msgstr "Punţi" + +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:148 +msgid "" +"Number of gaps used for the cutout.\n" +"There can be maximum 8 bridges/gaps.\n" +"The choices are:\n" +"- None - no gaps\n" +"- lr - left + right\n" +"- tb - top + bottom\n" +"- 4 - left + right +top + bottom\n" +"- 2lr - 2*left + 2*right\n" +"- 2tb - 2*top + 2*bottom\n" +"- 8 - 2*left + 2*right +2*top + 2*bottom" +msgstr "" +"Numărul de punţi folosite in decupare.\n" +"Pot fi un număr maxim de 8 punţi aranjate in felul\n" +"următor:\n" +"- Nici unul - nu există spatii\n" +"- lr = stânga -dreapta\n" +"- tb = sus - jos\n" +"- 4 = stânga -dreapta - sus - jos\n" +"- 2lr = 2* stânga - 2* dreapta\n" +"- 2tb = 2* sus - 2* jos\n" +"- 8 = 2* stânga - 2* dreapta - 2* sus - 2* jos" + +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:170 +#: flatcamTools/ToolCutOut.py:222 +msgid "Convex Shape" +msgstr "Forma convexă" + +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:172 +#: flatcamTools/ToolCutOut.py:225 +msgid "" +"Create a convex shape surrounding the entire PCB.\n" +"Used only if the source object type is Gerber." +msgstr "" +"Generează un obiect tip Geometrie care va inconjura\n" +"tot PCB-ul. Forma sa este convexa.\n" +"Se foloseste doar daca obiectul sursă este de tip Gerber." + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:27 +msgid "Film Tool Options" +msgstr "Opțiuni Unealta Film" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:33 +msgid "" +"Create a PCB film from a Gerber or Geometry\n" +"FlatCAM object.\n" +"The file is saved in SVG format." +msgstr "" +"Crează un film PCB dintr-un obiect Gerber sau tip Geometrie.\n" +"Fişierul este salvat in format SVG." + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:44 +msgid "Film Type" +msgstr "Tip film" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:46 +#: flatcamTools/ToolFilm.py:300 +msgid "" +"Generate a Positive black film or a Negative film.\n" +"Positive means that it will print the features\n" +"with black on a white canvas.\n" +"Negative means that it will print the features\n" +"with white on a black canvas.\n" +"The Film format is SVG." +msgstr "" +"Generează un film negru Pozitiv sau un film Negativ.\n" +"Pozitiv = traseele vor fi negre pe un fundal alb.\n" +"Negativ = traseele vor fi albe pe un fundal negru.\n" +"Formatul fişierului pt filmul salvat este SVG." + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:57 +msgid "Film Color" +msgstr "Film Color" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:59 +msgid "Set the film color when positive film is selected." +msgstr "Setați culoarea filmului atunci când este selectat filmul pozitiv." + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:82 +#: flatcamTools/ToolFilm.py:316 +msgid "Border" +msgstr "Bordură" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:84 +#: flatcamTools/ToolFilm.py:318 +msgid "" +"Specify a border around the object.\n" +"Only for negative film.\n" +"It helps if we use as a Box Object the same \n" +"object as in Film Object. It will create a thick\n" +"black bar around the actual print allowing for a\n" +"better delimitation of the outline features which are of\n" +"white color like the rest and which may confound with the\n" +"surroundings if not for this border." +msgstr "" +"Specifică o bordură de jur imprejurul obiectului.\n" +"Doar pt filmele negative.\n" +"Ajută dacă folosim in Obiect Forma aceluiasi obiect ca in Obiect Film.\n" +"Va crea o bara solidă neagră in jurul printului efectiv permitand o\n" +"delimitare exactă." + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:101 +#: flatcamTools/ToolFilm.py:283 +msgid "Scale Stroke" +msgstr "Scalează" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:103 +#: flatcamTools/ToolFilm.py:285 +msgid "" +"Scale the line stroke thickness of each feature in the SVG file.\n" +"It means that the line that envelope each SVG feature will be thicker or " +"thinner,\n" +"therefore the fine features may be more affected by this parameter." +msgstr "" +"Scalează grosimea conturului fiecarui element din fişierul SVG.\n" +"Elementele mai mici vor fi afectate mai mult." + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:110 +#: flatcamTools/ToolFilm.py:141 +msgid "Film Adjustments" +msgstr "Reglarea filmelor" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:112 +#: flatcamTools/ToolFilm.py:143 +msgid "" +"Sometime the printers will distort the print shape, especially the Laser " +"types.\n" +"This section provide the tools to compensate for the print distortions." +msgstr "" +"Unori imprimantele vor denatura forma de imprimare, în special tipurile " +"Laser.\n" +"Această secțiune oferă instrumentele pentru a compensa distorsiunile de " +"tipărire." + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:119 +#: flatcamTools/ToolFilm.py:150 +msgid "Scale Film geometry" +msgstr "Scalați geo film" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:121 +#: flatcamTools/ToolFilm.py:152 +msgid "" +"A value greater than 1 will stretch the film\n" +"while a value less than 1 will jolt it." +msgstr "" +"O valoare mai mare de 1 va întinde filmul\n" +"în timp ce o valoare mai mică de 1 il va compacta." + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:131 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:103 +#: flatcamTools/ToolFilm.py:162 flatcamTools/ToolTransform.py:148 +msgid "X factor" +msgstr "Factor X" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:140 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:116 +#: flatcamTools/ToolFilm.py:171 flatcamTools/ToolTransform.py:168 +msgid "Y factor" +msgstr "Factor Y" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:150 +#: flatcamTools/ToolFilm.py:189 +msgid "Skew Film geometry" +msgstr "Deformeaza Geo Film" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:152 +#: flatcamTools/ToolFilm.py:191 +msgid "" +"Positive values will skew to the right\n" +"while negative values will skew to the left." +msgstr "" +"Valorile pozitive vor înclina spre dreapta\n" +"în timp ce valorile negative vor înclina spre stânga." + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:162 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:72 +#: flatcamTools/ToolFilm.py:201 flatcamTools/ToolTransform.py:97 +msgid "X angle" +msgstr "Unghi X" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:171 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:86 +#: flatcamTools/ToolFilm.py:210 flatcamTools/ToolTransform.py:118 +msgid "Y angle" +msgstr "Unghi Y" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:182 +#: flatcamTools/ToolFilm.py:221 +msgid "" +"The reference point to be used as origin for the skew.\n" +"It can be one of the four points of the geometry bounding box." +msgstr "" +"Punctul de referință care trebuie utilizat ca origine pentru Deformare.\n" +"Poate fi unul dintre cele patru puncte ale căsuței de delimitare a " +"geometriei." + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:185 +#: flatcamTools/ToolFiducials.py:87 flatcamTools/ToolFilm.py:224 +msgid "Bottom Left" +msgstr "Stânga jos" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:186 +#: flatcamTools/ToolFilm.py:225 +msgid "Top Left" +msgstr "Stânga sus" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:187 +#: flatcamTools/ToolFilm.py:226 +msgid "Bottom Right" +msgstr "Dreapta-jos" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:188 +#: flatcamTools/ToolFilm.py:227 +msgid "Top right" +msgstr "Dreapta-sus" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:196 +#: flatcamTools/ToolFilm.py:244 +msgid "Mirror Film geometry" +msgstr "Oglindeste Geo Film" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:198 +#: flatcamTools/ToolFilm.py:246 +msgid "Mirror the film geometry on the selected axis or on both." +msgstr "Oglindeste geometria filmului pe axa selectată sau pe ambele." + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:212 +#: flatcamTools/ToolFilm.py:260 +msgid "Mirror axis" +msgstr "Axe oglindire" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:222 +#: flatcamTools/ToolFilm.py:405 +msgid "SVG" +msgstr "SVG" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:223 +#: flatcamTools/ToolFilm.py:406 +msgid "PNG" +msgstr "PNG" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:224 +#: flatcamTools/ToolFilm.py:407 +msgid "PDF" +msgstr "PDF" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:227 +#: flatcamTools/ToolFilm.py:298 flatcamTools/ToolFilm.py:410 +msgid "Film Type:" +msgstr "Tip film:" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:229 +#: flatcamTools/ToolFilm.py:412 +msgid "" +"The file type of the saved film. Can be:\n" +"- 'SVG' -> open-source vectorial format\n" +"- 'PNG' -> raster image\n" +"- 'PDF' -> portable document format" +msgstr "" +"Tipul de fișier al filmului salvat. Poate fi:\n" +"- 'SVG' -> format vectorial open-source\n" +"- „PNG” -> imagine raster\n" +"- „PDF” -> format document portabil" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:238 +#: flatcamTools/ToolFilm.py:421 +msgid "Page Orientation" +msgstr "Orientarea paginii" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:251 +#: flatcamTools/ToolFilm.py:434 +msgid "Page Size" +msgstr "Mărimea paginii" + +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:252 +#: flatcamTools/ToolFilm.py:435 +msgid "A selection of standard ISO 216 page sizes." +msgstr "O selecție de dimensiuni standard de pagină conform ISO 216." + +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:27 +msgid "NCC Tool Options" +msgstr "Opțiuni Unealta NCC" + +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:49 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:57 +msgid "Comma separated values" +msgstr "Valori separate cu virgulă" + +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:55 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:63 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:64 +#: flatcamTools/ToolNCC.py:215 flatcamTools/ToolNCC.py:223 +#: flatcamTools/ToolPaint.py:198 flatcamTools/ToolPaint.py:206 +msgid "" +"Default tool type:\n" +"- 'V-shape'\n" +"- Circular" +msgstr "" +"Tipul de unealtă default:\n" +"- 'Forma-V'\n" +"- Circular" + +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:60 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:69 +#: flatcamTools/ToolNCC.py:220 flatcamTools/ToolPaint.py:203 +msgid "V-shape" +msgstr "Forma-V" + +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:100 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:109 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:107 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:116 +#: flatcamTools/ToolNCC.py:262 flatcamTools/ToolNCC.py:271 +#: flatcamTools/ToolPaint.py:245 flatcamTools/ToolPaint.py:254 +msgid "" +"Depth of cut into material. Negative value.\n" +"In FlatCAM units." +msgstr "" +"Adancimea de tăiere in material. Valoare negative.\n" +"In unitătile FlatCAM." + +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:119 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:125 +#: flatcamTools/ToolNCC.py:280 flatcamTools/ToolPaint.py:263 +msgid "" +"Diameter for the new tool to add in the Tool Table.\n" +"If the tool is V-shape type then this value is automatically\n" +"calculated from the other parameters." +msgstr "" +"Diametru pentru Unealta nouă de adăugat în Tabelul Uneltelor.\n" +"Dacă instrumentul este în formă de V, atunci această valoare este automat\n" +"calculată din ceilalți parametri." + +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:156 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:142 +#: flatcamTools/ToolNCC.py:174 flatcamTools/ToolPaint.py:158 +msgid "Tool order" +msgstr "Ordine unelte" + +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:157 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:167 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:143 +#: flatcamTools/ToolNCC.py:175 flatcamTools/ToolNCC.py:185 +#: flatcamTools/ToolPaint.py:159 flatcamTools/ToolPaint.py:169 +msgid "" +"This set the way that the tools in the tools table are used.\n" +"'No' --> means that the used order is the one in the tool table\n" +"'Forward' --> means that the tools will be ordered from small to big\n" +"'Reverse' --> means that the tools will ordered from big to small\n" +"\n" +"WARNING: using rest machining will automatically set the order\n" +"in reverse and disable this control." +msgstr "" +"Aceasta stabilește modul în care sunt utilizate uneltele din tabelul de " +"unelte.\n" +"„Nu” -> înseamnă că ordinea utilizată este cea din tabelul de unelte\n" +"„Înainte” -> înseamnă că uneltele vor fi ordonate de la mic la mare\n" +"'Înapoi' -> înseamnă pe care uneltele vor fi ordonate de la mari la mici\n" +"\n" +"AVERTIZARE: folosirea prelucrării 'resturi' va seta automat ordonarea\n" +"în sens invers și va dezactiva acest control." + +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:165 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:151 +#: flatcamTools/ToolNCC.py:183 flatcamTools/ToolPaint.py:167 +msgid "Forward" +msgstr "Înainte" + +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:166 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:152 +#: flatcamTools/ToolNCC.py:184 flatcamTools/ToolPaint.py:168 +msgid "Reverse" +msgstr "Înapoi" + +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:266 +msgid "Offset value" +msgstr "Valoare Ofset" + +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:268 +msgid "" +"If used, it will add an offset to the copper features.\n" +"The copper clearing will finish to a distance\n" +"from the copper features.\n" +"The value can be between 0.0 and 9999.9 FlatCAM units." +msgstr "" +"Dacă este folosit, va adăuga un offset la traseele de cupru.\n" +"Curătarea de cupru se va termina la o anume distanță\n" +"de traseele de cupru.\n" +"Valoarea poate fi cuprinsă între 0 și 9999.9 unități FlatCAM." + +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:288 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:244 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:245 +#: flatcamTools/ToolNCC.py:512 flatcamTools/ToolPaint.py:442 +msgid "Rest Machining" +msgstr "Prelucrare prin Resturi" + +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:290 +#: flatcamTools/ToolNCC.py:516 +msgid "" +"If checked, use 'rest machining'.\n" +"Basically it will clear copper outside PCB features,\n" +"using the biggest tool and continue with the next tools,\n" +"from bigger to smaller, to clear areas of copper that\n" +"could not be cleared by previous tool, until there is\n" +"no more copper to clear or there are no more tools.\n" +"If not checked, use the standard algorithm." +msgstr "" +"Daca este bifat foloseşte strategia de curățare tip 'rest'.\n" +"Curățarea de cupru va incepe cu unealta cu diametrul cel mai mare\n" +"continuand ulterior cu cele cu dia mai mic pana numai sunt unelte\n" +"sau s-a terminat procesul.\n" +"Doar uneltele care efectiv au creat geometrie vor fi prezente in obiectul\n" +"final. Aceasta deaorece unele unelte nu vor putea genera geometrie.\n" +"Daca nu este bifat, foloseşte algoritmul standard." + +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:313 +#: flatcamTools/ToolNCC.py:541 +msgid "" +"Selection of area to be processed.\n" +"- 'Itself' - the processing extent is based on the object that is " +"processed.\n" +" - 'Area Selection' - left mouse click to start selection of the area to be " +"processed.\n" +"- 'Reference Object' - will process the area specified by another object." +msgstr "" +"Selectia suprafetei pt procesare.\n" +"- „Însuși” - suprafața de procesare se bazează pe obiectul care este " +"procesat.\n" +"- „Selecție zonă” - faceți clic stânga cu mouse-ul pentru a începe selecția " +"zonei care va fi procesată.\n" +"- „Obiect de referință” - va procesa în zona specificată de un alt obiect." + +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:339 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:303 +msgid "Normal" +msgstr "Normal" + +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:340 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:304 +msgid "Progressive" +msgstr "Progresiv" + +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:341 +msgid "NCC Plotting" +msgstr "Afisare NCC" + +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:343 +msgid "" +"- 'Normal' - normal plotting, done at the end of the NCC job\n" +"- 'Progressive' - after each shape is generated it will be plotted." +msgstr "" +"- 'Normal' - afisare normală, efectuată la sfarsitul activitătii NCC\n" +"- 'Progresiv' - forma se afisează imediat ce a fost generată." + +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:27 +msgid "Paint Tool Options" +msgstr "Opțiuni Unealta Paint" + +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:33 +msgid "Parameters:" +msgstr "Parametri:" + +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:247 +#: flatcamTools/ToolPaint.py:445 +msgid "" +"If checked, use 'rest machining'.\n" +"Basically it will clear copper outside PCB features,\n" +"using the biggest tool and continue with the next tools,\n" +"from bigger to smaller, to clear areas of copper that\n" +"could not be cleared by previous tool, until there is\n" +"no more copper to clear or there are no more tools.\n" +"\n" +"If not checked, use the standard algorithm." +msgstr "" +"Daca este bifat, foloste 'rest machining'.\n" +"Mai exact, se va curăța cuprul din afara traseelor,\n" +"folosind mai intai unealta cu diametrul cel mai mare\n" +"apoi folosindu-se progresiv unelte cu diametrul tot\n" +"mai mic, din cele disponibile in tabela de unelte, pt a\n" +"curăța zonele care nu s-au putut curăța cu unealta\n" +"precedenta.\n" +"Daca nu este bifat, foloseşte algoritmul standard." + +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:260 +#: flatcamTools/ToolPaint.py:458 +msgid "" +"Selection of area to be processed.\n" +"- 'Polygon Selection' - left mouse click to add/remove polygons to be " +"processed.\n" +"- 'Area Selection' - left mouse click to start selection of the area to be " +"processed.\n" +"Keeping a modifier key pressed (CTRL or SHIFT) will allow to add multiple " +"areas.\n" +"- 'All Polygons' - the process will start after click.\n" +"- 'Reference Object' - will process the area specified by another object." +msgstr "" +"Selectia suprafetei care va fi procesată.\n" +"- „Selecție poligon” - faceți clic stânga pentru a adăuga / elimina " +"poligoane care urmează să fie procesate.\n" +"- „Selecție zonă” - faceți clic stânga cu mouse-ul pentru a începe selecția " +"zonei care va fi procesată.\n" +"Menținerea unei taste modificatoare apăsată (CTRL sau SHIFT) va permite " +"adăugarea mai multor zone.\n" +"- „Toate Poligoanele” - procesarea va începe după clic.\n" +"- „Obiect de referință” - se va procesa zona specificată de un alt obiect." + +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280 +#: flatcamTools/ToolPaint.py:486 flatcamTools/ToolPaint.py:942 +#: flatcamTools/ToolPaint.py:1432 tclCommands/TclCommandPaint.py:164 +msgid "Polygon Selection" +msgstr "Selecție Poligon" + +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:305 +msgid "Paint Plotting" +msgstr "Afisare Paint" + +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:307 +msgid "" +"- 'Normal' - normal plotting, done at the end of the Paint job\n" +"- 'Progressive' - after each shape is generated it will be plotted." +msgstr "" +"- 'Normal' - afisare normală, efectuată la sfarsitul activitătii Paint\n" +"- 'Progresiv' - forma se afisează imediat ce a fost generată." + +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:27 +msgid "Panelize Tool Options" +msgstr "Opțiuni Unealta Panelizare" + +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:33 +msgid "" +"Create an object that contains an array of (x, y) elements,\n" +"each element is a copy of the source object spaced\n" +"at a X distance, Y distance of each other." +msgstr "" +"Crează un obiect care contine o arie de (linii, coloane) elemente,\n" +"unde fiecare element este o copie a obiectului sursa, separat la o\n" +"distanţă X, Y unul de celalalt." + +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:50 +#: flatcamTools/ToolPanelize.py:163 +msgid "Spacing cols" +msgstr "Sep. coloane" + +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:52 +#: flatcamTools/ToolPanelize.py:165 +msgid "" +"Spacing between columns of the desired panel.\n" +"In current units." +msgstr "" +"Spatiul de separare între coloane.\n" +"In unitatile curente." + +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:64 +#: flatcamTools/ToolPanelize.py:175 +msgid "Spacing rows" +msgstr "Sep. linii" + +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:66 +#: flatcamTools/ToolPanelize.py:177 +msgid "" +"Spacing between rows of the desired panel.\n" +"In current units." +msgstr "" +"Spatiul de separare între linii.\n" +"In unitatile curente." + +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:77 +#: flatcamTools/ToolPanelize.py:186 +msgid "Columns" +msgstr "Coloane" + +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:79 +#: flatcamTools/ToolPanelize.py:188 +msgid "Number of columns of the desired panel" +msgstr "Numărul de coloane ale panel-ului dorit" + +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:89 +#: flatcamTools/ToolPanelize.py:196 +msgid "Rows" +msgstr "Linii" + +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:91 +#: flatcamTools/ToolPanelize.py:198 +msgid "Number of rows of the desired panel" +msgstr "Numărul de linii ale panel-ului dorit" + +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:98 +#: flatcamTools/ToolPanelize.py:205 +msgid "Geo" +msgstr "Geo" + +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:99 +#: flatcamTools/ToolPanelize.py:206 +msgid "Panel Type" +msgstr "Tip panel" + +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:101 +msgid "" +"Choose the type of object for the panel object:\n" +"- Gerber\n" +"- Geometry" +msgstr "" +"Alege tipul obiectului panel:\n" +"- Gerber\n" +"- Geometrie" + +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:110 +msgid "Constrain within" +msgstr "Constrange" + +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:112 +#: flatcamTools/ToolPanelize.py:218 +msgid "" +"Area define by DX and DY within to constrain the panel.\n" +"DX and DY values are in current units.\n" +"Regardless of how many columns and rows are desired,\n" +"the final panel will have as many columns and rows as\n" +"they fit completely within selected area." +msgstr "" +"Arie definita de Dx și Dy in care se constrange panel-ul.\n" +"Dx și Dy sunt valori in unitati curente.\n" +"Indiferent de cat de multe coloane și/sau linii sunt selectate mai sus\n" +"panelul final va contine numai acel număr de linii/coloane care se inscrie\n" +"complet in aria desemnata." + +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:125 +#: flatcamTools/ToolPanelize.py:230 +msgid "Width (DX)" +msgstr "Lătime (Dx)" + +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:127 +#: flatcamTools/ToolPanelize.py:232 +msgid "" +"The width (DX) within which the panel must fit.\n" +"In current units." +msgstr "" +"Lăţimea (Dx) in care panelul trebuie să se inscrie.\n" +"In unitati curente." + +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:138 +#: flatcamTools/ToolPanelize.py:241 +msgid "Height (DY)" +msgstr "Inăltime (Dy)" + +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:140 +#: flatcamTools/ToolPanelize.py:243 +msgid "" +"The height (DY)within which the panel must fit.\n" +"In current units." +msgstr "" +"Înălţimea (Dy) in care panelul trebuie să se inscrie.\n" +"In unitati curente." + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:27 +msgid "SolderPaste Tool Options" +msgstr "Opțiuni Unealta Pasta Fludor" + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:33 +msgid "" +"A tool to create GCode for dispensing\n" +"solder paste onto a PCB." +msgstr "" +"O unealtă care crează cod G-Code pentru dispensarea de pastă de fludor\n" +"pe padurile unui PCB." + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:54 +msgid "New Nozzle Dia" +msgstr "Dia nou" + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:56 +#: flatcamTools/ToolSolderPaste.py:107 +msgid "Diameter for the new Nozzle tool to add in the Tool Table" +msgstr "" +"Valoarea pentru diametrul unei noi unelte (nozzle) pentru adaugare in Tabela " +"de Unelte" + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:72 +#: flatcamTools/ToolSolderPaste.py:183 +msgid "Z Dispense Start" +msgstr "Z start dispensare" + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:74 +#: flatcamTools/ToolSolderPaste.py:185 +msgid "The height (Z) when solder paste dispensing starts." +msgstr "Înălţimea (Z) când incepe dispensarea de pastă de fludor." + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:85 +#: flatcamTools/ToolSolderPaste.py:195 +msgid "Z Dispense" +msgstr "Z dispensare" + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:87 +#: flatcamTools/ToolSolderPaste.py:197 +msgid "The height (Z) when doing solder paste dispensing." +msgstr "Înălţimea (Z) in timp ce se face dispensarea de pastă de fludor." + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:98 +#: flatcamTools/ToolSolderPaste.py:207 +msgid "Z Dispense Stop" +msgstr "Z stop dispensare" + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:100 +#: flatcamTools/ToolSolderPaste.py:209 +msgid "The height (Z) when solder paste dispensing stops." +msgstr "Înălţimea (Z) când se opreste dispensarea de pastă de fludor." + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:111 +#: flatcamTools/ToolSolderPaste.py:219 +msgid "Z Travel" +msgstr "Z deplasare" + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:113 +#: flatcamTools/ToolSolderPaste.py:221 +msgid "" +"The height (Z) for travel between pads\n" +"(without dispensing solder paste)." +msgstr "" +"Înălţimea (Z) când se face deplasare între pad-uri.\n" +"(fără dispensare de pastă de fludor)." + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:125 +#: flatcamTools/ToolSolderPaste.py:232 +msgid "Z Toolchange" +msgstr "Z schimb. unealtă" + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:127 +#: flatcamTools/ToolSolderPaste.py:234 +msgid "The height (Z) for tool (nozzle) change." +msgstr "Înălţimea (Z) când se schimbă unealta (nozzle-ul)." + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:136 +#: flatcamTools/ToolSolderPaste.py:242 +msgid "" +"The X,Y location for tool (nozzle) change.\n" +"The format is (x, y) where x and y are real numbers." +msgstr "" +"Coordonatele X, Y pentru schimbarea uneltei (nozzle).\n" +"Formatul este (x,y) unde x și y sunt numere Reale." + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:150 +#: flatcamTools/ToolSolderPaste.py:255 +msgid "Feedrate (speed) while moving on the X-Y plane." +msgstr "Viteza de deplasare a uneltei când se deplasează in planul X-Y." + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:163 +#: flatcamTools/ToolSolderPaste.py:267 +msgid "" +"Feedrate (speed) while moving vertically\n" +"(on Z plane)." +msgstr "" +"Viteza de deplasare a uneltei când se misca in plan vertical (planul Z)." + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:175 +#: flatcamTools/ToolSolderPaste.py:278 +msgid "Feedrate Z Dispense" +msgstr "Feedrate Z dispensare" + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:177 +msgid "" +"Feedrate (speed) while moving up vertically\n" +"to Dispense position (on Z plane)." +msgstr "" +"Viteza de deplasare la mișcarea pe verticala spre\n" +"poziţia de dispensare (in planul Z)." + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:188 +#: flatcamTools/ToolSolderPaste.py:290 +msgid "Spindle Speed FWD" +msgstr "Viteza motor inainte" + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:190 +#: flatcamTools/ToolSolderPaste.py:292 +msgid "" +"The dispenser speed while pushing solder paste\n" +"through the dispenser nozzle." +msgstr "" +"Viteza motorului de dispensare in timp ce impinge pastă de fludor\n" +"prin orificiul uneltei de dispensare." + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:202 +#: flatcamTools/ToolSolderPaste.py:303 +msgid "Dwell FWD" +msgstr "Pauza FWD" + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:204 +#: flatcamTools/ToolSolderPaste.py:305 +msgid "Pause after solder dispensing." +msgstr "Pauza dupa dispensarea de pastă de fludor." + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:214 +#: flatcamTools/ToolSolderPaste.py:314 +msgid "Spindle Speed REV" +msgstr "Viteza motor inapoi" + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:216 +#: flatcamTools/ToolSolderPaste.py:316 +msgid "" +"The dispenser speed while retracting solder paste\n" +"through the dispenser nozzle." +msgstr "" +"Viteza motorului de dispensare in timp ce retrage pasta de fludor\n" +"prin orificiul uneltei de dispensare." + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:228 +#: flatcamTools/ToolSolderPaste.py:327 +msgid "Dwell REV" +msgstr "Pauza REV" + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:230 +#: flatcamTools/ToolSolderPaste.py:329 +msgid "" +"Pause after solder paste dispenser retracted,\n" +"to allow pressure equilibrium." +msgstr "" +"Pauza dupa ce pasta de fludor a fost retrasă,\n" +"necesară pt a ajunge la un echilibru al presiunilor." + +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:239 +#: flatcamTools/ToolSolderPaste.py:337 +msgid "Files that control the GCode generation." +msgstr "Fişiere care controlează generarea codului G-Code." + +#: flatcamGUI/preferences/tools/ToolsSubPrefGroupUI.py:27 +msgid "Substractor Tool Options" +msgstr "Opțiuni Unealta Substracţie" + +#: flatcamGUI/preferences/tools/ToolsSubPrefGroupUI.py:33 +msgid "" +"A tool to substract one Gerber or Geometry object\n" +"from another of the same type." +msgstr "" +"O unealtă pentru scăderea unui obiect Gerber sau Geometry\n" +"din altul de același tip." + +#: flatcamGUI/preferences/tools/ToolsSubPrefGroupUI.py:38 +#: flatcamTools/ToolSub.py:155 +msgid "Close paths" +msgstr "Închide căile" + +#: flatcamGUI/preferences/tools/ToolsSubPrefGroupUI.py:39 +msgid "" +"Checking this will close the paths cut by the Geometry substractor object." +msgstr "" +"Verificând aceasta, se vor închide căile tăiate de obiectul tăietor de tip " +"Geometrie." + +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:27 +msgid "Transform Tool Options" +msgstr "Opțiuni Unealta Transformare" + +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:33 +msgid "" +"Various transformations that can be applied\n" +"on a FlatCAM object." +msgstr "" +"Diverse transformări care pot fi aplicate\n" +"asupra unui obiect FlatCAM." + +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:64 +msgid "Skew" +msgstr "Deformare" + +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:105 +#: flatcamTools/ToolTransform.py:150 +msgid "Factor for scaling on X axis." +msgstr "Factor de scalare pe axa X." + +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:118 +#: flatcamTools/ToolTransform.py:170 +msgid "Factor for scaling on Y axis." +msgstr "Factor de scalare pe axa Y." + +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:126 +#: flatcamTools/ToolTransform.py:191 +msgid "" +"Scale the selected object(s)\n" +"using the Scale_X factor for both axis." +msgstr "" +"Scalează obiectele selectate folosind\n" +"Factor Scal_X pentru ambele axe." + +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:134 +#: flatcamTools/ToolTransform.py:198 +msgid "" +"Scale the selected object(s)\n" +"using the origin reference when checked,\n" +"and the center of the biggest bounding box\n" +"of the selected objects when unchecked." +msgstr "" +"Scalează obiectele selectate folosind\n" +"originea ca referinţă atunci când este bifat.\n" +"Când nu este bifat, foloseşte ca referinţă\n" +"centrul formei inconjuatoare care cuprinde\n" +"toate obiectele selectate." + +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:150 +#: flatcamTools/ToolTransform.py:217 +msgid "X val" +msgstr "Val X" + +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:152 +#: flatcamTools/ToolTransform.py:219 +msgid "Distance to offset on X axis. In current units." +msgstr "Distanta la care se face ofset pe axa X. In unitatile curente." + +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:163 +#: flatcamTools/ToolTransform.py:237 +msgid "Y val" +msgstr "Val Y" + +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:165 +#: flatcamTools/ToolTransform.py:239 +msgid "Distance to offset on Y axis. In current units." +msgstr "Distanta la care se face ofset pe axa Y. In unitatile curente." + +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:171 +#: flatcamTools/ToolDblSided.py:67 flatcamTools/ToolDblSided.py:95 +#: flatcamTools/ToolDblSided.py:125 +msgid "Mirror" +msgstr "Oglindește" + +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:175 +#: flatcamTools/ToolTransform.py:283 +msgid "Mirror Reference" +msgstr "Referinţă Oglindire" + +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:177 +#: flatcamTools/ToolTransform.py:285 +msgid "" +"Flip the selected object(s)\n" +"around the point in Point Entry Field.\n" +"\n" +"The point coordinates can be captured by\n" +"left click on canvas together with pressing\n" +"SHIFT key. \n" +"Then click Add button to insert coordinates.\n" +"Or enter the coords in format (x, y) in the\n" +"Point Entry field and click Flip on X(Y)" +msgstr "" +"Oglindește obiectele selectate in jurul punctului\n" +"de referinţă.\n" +"\n" +"Coordonatele punctului se pot obtine prin click pe \n" +"canvas simultan cu apăsarea tastei SHIFT.\n" +"Apoi apasă pe butonul >Adaugă< pentru a insera\n" +"coordonatele.\n" +"Alternativ se pot introduce coordonatele manual,\n" +"in forma (x, y).\n" +"La final apasă butonul de oglindire pe axa dorită" + +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:188 +msgid "Mirror Reference point" +msgstr "Punct referinţă Oglindire" + +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:190 +msgid "" +"Coordinates in format (x, y) used as reference for mirroring.\n" +"The 'x' in (x, y) will be used when using Flip on X and\n" +"the 'y' in (x, y) will be used when using Flip on Y and" +msgstr "" +"Coordonatele in format (x, y) ale punctului de referinţă pentru\n" +"oglindire.\n" +"X din (x,y) se va folosi când se face oglindirea pe axa X\n" +"Y din (x,y) se va folosi când se face oglindirea pe axa Y si" + +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:203 +#: flatcamTools/ToolDistance.py:496 flatcamTools/ToolDistanceMin.py:287 +#: flatcamTools/ToolTransform.py:332 +msgid "Distance" +msgstr "Distanță" + +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:205 +#: flatcamTools/ToolTransform.py:334 +msgid "" +"A positive value will create the effect of dilation,\n" +"while a negative value will create the effect of erosion.\n" +"Each geometry element of the object will be increased\n" +"or decreased with the 'distance'." +msgstr "" +"O valoare pozitivă va crea efectul dilatării,\n" +"în timp ce o valoare negativă va crea efectul eroziunii.\n" +"Fiecare element de geometrie al obiectului va fi mărit\n" +"sau scăzut proportional cu „distanța”." + +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:222 +#: flatcamTools/ToolTransform.py:359 +msgid "" +"A positive value will create the effect of dilation,\n" +"while a negative value will create the effect of erosion.\n" +"Each geometry element of the object will be increased\n" +"or decreased to fit the 'Value'. Value is a percentage\n" +"of the initial dimension." +msgstr "" +"O valoare pozitivă va crea efectul dilatării,\n" +"în timp ce o valoare negativă va crea efectul eroziunii.\n" +"Fiecare element de geometrie al obiectului va fi mărit\n" +"sau scăzut proportional cu „distanța”. Valoarea este\n" +"un procent din dimensiunea initială." + +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:241 +#: flatcamTools/ToolTransform.py:385 +msgid "" +"If checked then the buffer will surround the buffered shape,\n" +"every corner will be rounded.\n" +"If not checked then the buffer will follow the exact geometry\n" +"of the buffered shape." +msgstr "" +"Dacă este bifat, atunci bufferul va înconjura forma tamponată,\n" +"fiecare colț va fi rotunjit.\n" +"Dacă nu este bifat, bufferul va urma geometria exactă\n" +"de forma tamponată." + +#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:27 +msgid "Autocompleter Keywords" +msgstr "Cuvinte cheie pt autocomplete" + +#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:30 +#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:40 +#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:30 +#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:30 +msgid "Restore" +msgstr "Restabilire" + +#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:31 +msgid "Restore the autocompleter keywords list to the default state." +msgstr "" +"Restaurați lista cuvinte cheie pentru autocompletere la starea implicită." + +#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:32 +#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:42 +#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:32 +#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:32 +msgid "Delete All" +msgstr "Sterge tot" + +#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:33 +msgid "Delete all autocompleter keywords from the list." +msgstr "Ștergeți din listă toate cuvintele cheie pentru autocompletare." + +#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:41 +msgid "Keywords list" +msgstr "Lista de cuvinte cheie" + +#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:43 +msgid "" +"List of keywords used by\n" +"the autocompleter in FlatCAM.\n" +"The autocompleter is installed\n" +"in the Code Editor and for the Tcl Shell." +msgstr "" +"Lista cuvintelor cheie utilizate de\n" +"autocompleter în FlatCAM.\n" +"Autocompleterul este instalat\n" +"în Editorul de coduri și pentru Shell Tcl." + +#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:64 +#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:73 +#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:63 +#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:62 +msgid "Extension" +msgstr "Extensie fișier" + +#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:65 +msgid "A keyword to be added or deleted to the list." +msgstr "Un cuvânt cheie care trebuie adăugat sau șters la listă." + +#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:73 +msgid "Add keyword" +msgstr "Adăugați cuvant cheie" + +#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:74 +msgid "Add a keyword to the list" +msgstr "Adăugați un cuvânt cheie la listă" + +#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:75 +msgid "Delete keyword" +msgstr "Ștergeți cuvântul cheie" + +#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:76 +msgid "Delete a keyword from the list" +msgstr "Ștergeți un cuvânt cheie din listă" + +#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:27 +msgid "Excellon File associations" +msgstr "Asocieri fisiere Excellon" + +#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:41 +#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:31 +#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:31 +msgid "Restore the extension list to the default state." +msgstr "Restabiliți lista de extensii la starea implicită." + +#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:43 +#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:33 +#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:33 +msgid "Delete all extensions from the list." +msgstr "Ștergeți toate extensiile din listă." + +#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:51 +#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:41 +#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:41 +msgid "Extensions list" +msgstr "Lista de extensii" + +#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:53 +#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:43 +#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:43 +msgid "" +"List of file extensions to be\n" +"associated with FlatCAM." +msgstr "" +"Listă de extensii fisiere care să fie\n" +"associate cu FlatCAM." + +#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:74 +#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:64 +#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:63 +msgid "A file extension to be added or deleted to the list." +msgstr "O extensie de fișier care trebuie adăugată sau ștersă din listă." + +#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:82 +#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:72 +#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:71 +msgid "Add Extension" +msgstr "Adaugă Extensie" + +#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:83 +#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:73 +#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:72 +msgid "Add a file extension to the list" +msgstr "Adăugați o extensie de fișier la listă" + +#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:84 +#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:74 +#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:73 +msgid "Delete Extension" +msgstr "Ștergeți Extensia" + +#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:85 +#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:75 +#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:74 +msgid "Delete a file extension from the list" +msgstr "Ștergeți o extensie de fișier din listă" + +#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:92 +#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:82 +#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:81 +msgid "Apply Association" +msgstr "Aplicați Asociere" + +#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:93 +#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:83 +#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:82 +msgid "" +"Apply the file associations between\n" +"FlatCAM and the files with above extensions.\n" +"They will be active after next logon.\n" +"This work only in Windows." +msgstr "" +"Aplică asocierea de fisiere intre\n" +"FlatCAM si fisierele cu extensiile de mai sus.\n" +"Vor fi active după următorul login.\n" +"Functionează numai pt Windows." + +#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:27 +msgid "GCode File associations" +msgstr "Asocierile de fisiere G-Code" + +#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:27 +msgid "Gerber File associations" +msgstr "Asocierile de fisiere Gerber" + +#: flatcamObjects/FlatCAMCNCJob.py:429 flatcamObjects/FlatCAMDocument.py:71 +#: flatcamObjects/FlatCAMScript.py:82 +msgid "Basic" +msgstr "Baza" + +#: flatcamObjects/FlatCAMCNCJob.py:435 flatcamObjects/FlatCAMDocument.py:75 +#: flatcamObjects/FlatCAMScript.py:86 +msgid "Advanced" +msgstr "Avansat" + +#: flatcamObjects/FlatCAMCNCJob.py:478 +msgid "Plotting..." +msgstr "Se afișează..." + +#: flatcamObjects/FlatCAMCNCJob.py:507 flatcamObjects/FlatCAMCNCJob.py:512 +#: flatcamTools/ToolSolderPaste.py:1499 +msgid "Export Machine Code ..." +msgstr "Exportă CNC Cod Masina ..." + +#: flatcamObjects/FlatCAMCNCJob.py:517 flatcamTools/ToolSolderPaste.py:1503 +msgid "Export Machine Code cancelled ..." +msgstr "Exportul Codului Mașina a fost anulat ..." + +#: flatcamObjects/FlatCAMCNCJob.py:538 +msgid "Machine Code file saved to" +msgstr "Fişierul cu cod CNC este salvat in" + +#: flatcamObjects/FlatCAMCNCJob.py:599 flatcamTools/ToolCalibration.py:1097 +msgid "Loaded Machine Code into Code Editor" +msgstr "S-a încărcat Codul Maşină în Editorul Cod" + +#: flatcamObjects/FlatCAMCNCJob.py:740 +msgid "This CNCJob object can't be processed because it is a" +msgstr "Acest obiect CNCJob nu poate fi procesat deoarece este un" + +#: flatcamObjects/FlatCAMCNCJob.py:742 +msgid "CNCJob object" +msgstr "Obiect CNCJob" + +#: flatcamObjects/FlatCAMCNCJob.py:922 +msgid "" +"G-code does not have a G94 code and we will not include the code in the " +"'Prepend to GCode' text box" +msgstr "" +"Codul G nu are un cod G94 și nu vom include codul din caseta de text „Adaugă " +"la GCode”" + +#: flatcamObjects/FlatCAMCNCJob.py:933 +msgid "Cancelled. The Toolchange Custom code is enabled but it's empty." +msgstr "" +"Anulat. Codul G-Code din Macro-ul Schimbare unealtă este activat dar nu " +"contine nimic." + +#: flatcamObjects/FlatCAMCNCJob.py:938 +msgid "Toolchange G-code was replaced by a custom code." +msgstr "G-Code-ul pt schimbare unealtă a fost inlocuit cu un cod pesonalizat." + +#: flatcamObjects/FlatCAMCNCJob.py:986 flatcamObjects/FlatCAMCNCJob.py:996 +msgid "" +"The used preprocessor file has to have in it's name: 'toolchange_custom'" +msgstr "" +"Postprocesorul folosit trebuie să aibă in numele sau: 'toolchange_custom'" + +#: flatcamObjects/FlatCAMCNCJob.py:999 +msgid "There is no preprocessor file." +msgstr "Nu exista nici-un fişier postprocesor." + +#: flatcamObjects/FlatCAMDocument.py:175 +msgid "Document Editor" +msgstr "Editor Documente" + +#: flatcamObjects/FlatCAMExcellon.py:514 flatcamObjects/FlatCAMExcellon.py:746 +#: flatcamObjects/FlatCAMGeometry.py:323 flatcamObjects/FlatCAMGeometry.py:795 +#: flatcamTools/ToolNCC.py:811 flatcamTools/ToolNCC.py:1196 +#: flatcamTools/ToolPaint.py:779 flatcamTools/ToolPaint.py:1171 +msgid "Multiple Tools" +msgstr "Unelte multiple" + +#: flatcamObjects/FlatCAMExcellon.py:726 +msgid "No Tool Selected" +msgstr "Nici-o Unealtă selectată" + +#: flatcamObjects/FlatCAMExcellon.py:1076 +#: flatcamObjects/FlatCAMExcellon.py:1168 +#: flatcamObjects/FlatCAMExcellon.py:1355 +msgid "Please select one or more tools from the list and try again." +msgstr "Selectează una sau mai multe unelte din lista și încearcă din nou." + +#: flatcamObjects/FlatCAMExcellon.py:1083 +msgid "Milling tool for DRILLS is larger than hole size. Cancelled." +msgstr "" +"Anulat. Freza pt frezarea găurilor este mai mare decat diametrul găurii." + +#: flatcamObjects/FlatCAMExcellon.py:1098 +#: flatcamObjects/FlatCAMExcellon.py:1188 +#: flatcamObjects/FlatCAMExcellon.py:1373 +#: tclCommands/TclCommandDrillcncjob.py:193 +msgid "Tool_nr" +msgstr "Nr. Unealtă" + +#: flatcamObjects/FlatCAMExcellon.py:1098 +#: flatcamObjects/FlatCAMExcellon.py:1188 +#: flatcamObjects/FlatCAMExcellon.py:1373 +#: tclCommands/TclCommandDrillcncjob.py:193 +msgid "Drills_Nr" +msgstr "Nr. gaura" + +#: flatcamObjects/FlatCAMExcellon.py:1098 +#: flatcamObjects/FlatCAMExcellon.py:1188 +#: flatcamObjects/FlatCAMExcellon.py:1373 +#: tclCommands/TclCommandDrillcncjob.py:193 +msgid "Slots_Nr" +msgstr "Nr. slot" + +#: flatcamObjects/FlatCAMExcellon.py:1177 +msgid "Milling tool for SLOTS is larger than hole size. Cancelled." +msgstr "Anulat. Freza este mai mare decat diametrul slotului de frezat." + +#: flatcamObjects/FlatCAMExcellon.py:1281 +#: flatcamObjects/FlatCAMGeometry.py:1571 +msgid "Focus Z" +msgstr "Focalizare Z" + +#: flatcamObjects/FlatCAMExcellon.py:1300 +#: flatcamObjects/FlatCAMGeometry.py:1590 +msgid "Laser Power" +msgstr "Putere Laser" + +#: flatcamObjects/FlatCAMExcellon.py:1430 +#: flatcamObjects/FlatCAMGeometry.py:2027 +#: flatcamObjects/FlatCAMGeometry.py:2031 +#: flatcamObjects/FlatCAMGeometry.py:2176 +msgid "Generating CNC Code" +msgstr "CNC Code in curs de generare" + +#: flatcamObjects/FlatCAMExcellon.py:1620 flatcamTools/ToolNCC.py:918 +#: flatcamTools/ToolPaint.py:844 +msgid "Current Tool parameters were applied to all tools." +msgstr "Parametrii Uneltei curente sunt aplicați la toate Uneltele." + +#: flatcamObjects/FlatCAMGeometry.py:124 flatcamObjects/FlatCAMGeometry.py:1235 +#: flatcamObjects/FlatCAMGeometry.py:1236 +#: flatcamObjects/FlatCAMGeometry.py:1245 +msgid "Iso" +msgstr "Izo" + +#: flatcamObjects/FlatCAMGeometry.py:124 flatcamObjects/FlatCAMGeometry.py:464 +#: flatcamObjects/FlatCAMGeometry.py:854 flatcamObjects/FlatCAMGerber.py:891 +#: flatcamObjects/FlatCAMGerber.py:1039 flatcamTools/ToolCutOut.py:690 +#: flatcamTools/ToolCutOut.py:886 flatcamTools/ToolCutOut.py:1046 +msgid "Rough" +msgstr "Grosier" + +#: flatcamObjects/FlatCAMGeometry.py:124 +msgid "Finish" +msgstr "Finisare" + +#: flatcamObjects/FlatCAMGeometry.py:499 +msgid "Add from Tool DB" +msgstr "Adaugă Unealta din DB Unelte" + +#: flatcamObjects/FlatCAMGeometry.py:873 +msgid "Tool added in Tool Table." +msgstr "Unealtă adăugată in Tabela de Unelte." + +#: flatcamObjects/FlatCAMGeometry.py:982 flatcamObjects/FlatCAMGeometry.py:991 +msgid "Failed. Select a tool to copy." +msgstr "Eșuat. Selectează o unealtă pt copiere." + +#: flatcamObjects/FlatCAMGeometry.py:1020 +msgid "Tool was copied in Tool Table." +msgstr "Unealta a fost copiata in Tabela de Unelte." + +#: flatcamObjects/FlatCAMGeometry.py:1047 +msgid "Tool was edited in Tool Table." +msgstr "Unealta a fost editata in Tabela de Unelte." + +#: flatcamObjects/FlatCAMGeometry.py:1076 +#: flatcamObjects/FlatCAMGeometry.py:1085 +msgid "Failed. Select a tool to delete." +msgstr "Eșuat. Selectează o unealtă pentru ștergere." + +#: flatcamObjects/FlatCAMGeometry.py:1109 +msgid "Tool was deleted in Tool Table." +msgstr "Unealta a fost stearsa din Tabela de Unelte." + +#: flatcamObjects/FlatCAMGeometry.py:1146 +#: flatcamObjects/FlatCAMGeometry.py:1156 +msgid "" +"Disabled because the tool is V-shape.\n" +"For V-shape tools the depth of cut is\n" +"calculated from other parameters like:\n" +"- 'V-tip Angle' -> angle at the tip of the tool\n" +"- 'V-tip Dia' -> diameter at the tip of the tool \n" +"- Tool Dia -> 'Dia' column found in the Tool Table\n" +"NB: a value of zero means that Tool Dia = 'V-tip Dia'" +msgstr "" +"Dezactivat deoarece unealta este în formă V.\n" +"Pentru uneltele în formă V adâncimea de tăiere este\n" +"calculată din alți parametri precum:\n" +"- „V-tip Unghi” -> unghiul din vârful uneltei\n" +"- 'V-tip Dia' -> diametrul în vârful sculei\n" +"- Diametrul Uneltei-> coloana „Dia” găsită în tabelul uneltelor\n" +"NB: o valoare de zero înseamnă că Dia Unealta = 'V-tip Dia'" + +#: flatcamObjects/FlatCAMGeometry.py:1643 +msgid "This Geometry can't be processed because it is" +msgstr "Acest obiect Geometrie nu poate fi procesat deoarece" + +#: flatcamObjects/FlatCAMGeometry.py:1643 +msgid "geometry" +msgstr "geometria" + +#: flatcamObjects/FlatCAMGeometry.py:1684 +msgid "Failed. No tool selected in the tool table ..." +msgstr "Eșuat. Nici-o unealtă nu este selectată in Tabela de Unelte ..." + +#: flatcamObjects/FlatCAMGeometry.py:1786 +#: flatcamObjects/FlatCAMGeometry.py:1936 +msgid "" +"Tool Offset is selected in Tool Table but no value is provided.\n" +"Add a Tool Offset or change the Offset Type." +msgstr "" +"Un ofset pt unealtă este selectat in Tabela de Unelte dar nici-o val. nu " +"este oferita.\n" +"Adaugă un ofset pt unealtă sau schimbă Tipul Ofset." + +#: flatcamObjects/FlatCAMGeometry.py:1852 +#: flatcamObjects/FlatCAMGeometry.py:1998 +msgid "G-Code parsing in progress..." +msgstr "Analiza codului G în curs ..." + +#: flatcamObjects/FlatCAMGeometry.py:1854 +#: flatcamObjects/FlatCAMGeometry.py:2000 +msgid "G-Code parsing finished..." +msgstr "Analizarea codului G s-a terminat ..." + +#: flatcamObjects/FlatCAMGeometry.py:1862 +msgid "Finished G-Code processing" +msgstr "Prelucrarea G-Code terminată" + +#: flatcamObjects/FlatCAMGeometry.py:1864 +#: flatcamObjects/FlatCAMGeometry.py:2012 +msgid "G-Code processing failed with error" +msgstr "Procesarea G-Code a eșuat cu eroarea" + +#: flatcamObjects/FlatCAMGeometry.py:1906 flatcamTools/ToolSolderPaste.py:1301 +msgid "Cancelled. Empty file, it has no geometry" +msgstr "Anulat. Fişier gol, nu are geometrie" + +#: flatcamObjects/FlatCAMGeometry.py:2010 +#: flatcamObjects/FlatCAMGeometry.py:2171 +msgid "Finished G-Code processing..." +msgstr "Prelucrarea G-Code terminată ..." + +#: flatcamObjects/FlatCAMGeometry.py:2029 +#: flatcamObjects/FlatCAMGeometry.py:2033 +#: flatcamObjects/FlatCAMGeometry.py:2178 +msgid "CNCjob created" +msgstr "CNCjob creat" + +#: flatcamObjects/FlatCAMGeometry.py:2209 +#: flatcamObjects/FlatCAMGeometry.py:2218 flatcamParsers/ParseGerber.py:1867 +#: flatcamParsers/ParseGerber.py:1877 +msgid "Scale factor has to be a number: integer or float." +msgstr "Factorul de scalare trebuie să fie un număr: natural sau real." + +#: flatcamObjects/FlatCAMGeometry.py:2281 +msgid "Geometry Scale done." +msgstr "Scalare Geometrie executată." + +#: flatcamObjects/FlatCAMGeometry.py:2298 flatcamParsers/ParseGerber.py:1993 +msgid "" +"An (x,y) pair of values are needed. Probable you entered only one value in " +"the Offset field." +msgstr "" +"O pereche de valori (x,y) este necesară. Probabil că ai introdus numai o " +"singură valoare in câmpul Offset." + +#: flatcamObjects/FlatCAMGeometry.py:2354 +msgid "Geometry Offset done." +msgstr "Ofset Geometrie executat." + +#: flatcamObjects/FlatCAMGeometry.py:2383 +msgid "" +"The Toolchange X,Y field in Edit -> Preferences has to be in the format (x, " +"y)\n" +"but now there is only one value, not two." +msgstr "" +"Parametrul >Schimbare Unealtă X, Y< in Editare -> Peferințele trebuie să fie " +"in formatul (x, y) \n" +"dar are o singură valoare in loc de două." + +#: flatcamObjects/FlatCAMGeometry.py:2577 +#: flatcamTools/ToolCopperThieving.py:769 flatcamTools/ToolNCC.py:1648 +msgid "Click the start point of the area." +msgstr "Faceți clic pe punctul de pornire al zonei." + +#: flatcamObjects/FlatCAMGeometry.py:2619 +msgid "Click the end point of the area." +msgstr "Faceți clic pe punctul final al zonei." + +#: flatcamObjects/FlatCAMGeometry.py:2625 +#: flatcamObjects/FlatCAMGeometry.py:2677 +#: flatcamTools/ToolCopperThieving.py:826 flatcamTools/ToolNCC.py:1710 +#: flatcamTools/ToolNCC.py:1762 flatcamTools/ToolPaint.py:1606 +#: flatcamTools/ToolPaint.py:1657 +msgid "Zone added. Click to start adding next zone or right click to finish." +msgstr "" +"Zona adăugată. Faceți clic stanga pt a continua adăugarea de zone sau click " +"dreapta pentru a termina." + +#: flatcamObjects/FlatCAMGeometry.py:2729 +msgid "Cancelled. Area exclusion drawing was interrupted." +msgstr "Anulat. Desenarea Zonei de Excludere a fost întreruptă." + +#: flatcamObjects/FlatCAMGerber.py:494 +msgid "Buffering solid geometry" +msgstr "Buferarea geometriei solide" + +#: flatcamObjects/FlatCAMGerber.py:503 +msgid "Done" +msgstr "Executat" + +#: flatcamObjects/FlatCAMGerber.py:529 flatcamObjects/FlatCAMGerber.py:555 +msgid "Operation could not be done." +msgstr "Operatia nu a putut fi executată." + +#: flatcamObjects/FlatCAMGerber.py:572 +msgid "Isolating..." +msgstr "Se izoleaza..." + +#: flatcamObjects/FlatCAMGerber.py:631 +msgid "Click on a polygon to isolate it." +msgstr "Faceți clic pe un poligon pentru a-l izola." + +#: flatcamObjects/FlatCAMGerber.py:670 flatcamObjects/FlatCAMGerber.py:774 +#: flatcamTools/ToolPaint.py:1516 +msgid "Added polygon" +msgstr "S-a adăugat poligon" + +#: flatcamObjects/FlatCAMGerber.py:671 flatcamObjects/FlatCAMGerber.py:776 +msgid "Click to add next polygon or right click to start isolation." +msgstr "" +"Faceți clic pentru a adăuga următorul poligon sau faceți clic dreapta pentru " +"a începe izolarea." + +#: flatcamObjects/FlatCAMGerber.py:683 flatcamTools/ToolPaint.py:1530 +msgid "Removed polygon" +msgstr "Poligon eliminat" + +#: flatcamObjects/FlatCAMGerber.py:684 +msgid "Click to add/remove next polygon or right click to start isolation." +msgstr "" +"Faceți clic pentru a adăuga / elimina următorul poligon sau faceți clic " +"dreapta pentru a începe izolarea." + +#: flatcamObjects/FlatCAMGerber.py:689 flatcamTools/ToolPaint.py:1536 +msgid "No polygon detected under click position." +msgstr "Nu a fost detectat niciun poligon sub poziția clicului." + +#: flatcamObjects/FlatCAMGerber.py:710 flatcamTools/ToolPaint.py:1565 +msgid "List of single polygons is empty. Aborting." +msgstr "Lista Poligoanelor este goală. Intrerup." + +#: flatcamObjects/FlatCAMGerber.py:779 +msgid "No polygon in selection." +msgstr "Niciun poligon în selecție." + +#: flatcamObjects/FlatCAMGerber.py:907 flatcamObjects/FlatCAMGerber.py:986 +#: flatcamTools/ToolNCC.py:2086 flatcamTools/ToolNCC.py:3137 +#: flatcamTools/ToolNCC.py:3516 +msgid "Isolation geometry could not be generated." +msgstr "Geometria de izolare nu a fost posibil să fie generată." + +#: flatcamObjects/FlatCAMGerber.py:932 flatcamObjects/FlatCAMGerber.py:1064 +msgid "Isolation geometry created" +msgstr "Geometria de izolare creată" + +#: flatcamObjects/FlatCAMGerber.py:941 flatcamObjects/FlatCAMGerber.py:1071 +msgid "Subtracting Geo" +msgstr "Scădere Geo" + +#: flatcamObjects/FlatCAMGerber.py:1396 +msgid "Plotting Apertures" +msgstr "Aperturile sunt in curs de afișare" + +#: flatcamObjects/FlatCAMObj.py:234 +msgid "Name changed from" +msgstr "Nume schimbat din" + +#: flatcamObjects/FlatCAMObj.py:234 +msgid "to" +msgstr "la" + +#: flatcamObjects/FlatCAMObj.py:245 +msgid "Offsetting..." +msgstr "Ofsetare..." + +#: flatcamObjects/FlatCAMObj.py:259 flatcamObjects/FlatCAMObj.py:264 +msgid "Scaling could not be executed." +msgstr "Scalarea nu a putut fi executată." + +#: flatcamObjects/FlatCAMObj.py:268 flatcamObjects/FlatCAMObj.py:276 +msgid "Scale done." +msgstr "Scalare efectuată." + +#: flatcamObjects/FlatCAMObj.py:274 +msgid "Scaling..." +msgstr "Scalare..." + +#: flatcamObjects/FlatCAMObj.py:292 +msgid "Skewing..." +msgstr "Deformare..." + +#: flatcamObjects/FlatCAMScript.py:163 +msgid "Script Editor" +msgstr "Editor Script" + +#: flatcamObjects/ObjectCollection.py:510 +#, python-brace-format +msgid "Object renamed from {old} to {new}" +msgstr "Obiectul este redenumit din {old} in {new}" + +#: flatcamObjects/ObjectCollection.py:983 +msgid "Cause of error" +msgstr "Motivul erorii" + +#: flatcamParsers/ParseExcellon.py:316 +msgid "This is GCODE mark" +msgstr "Acesta este un marcaj Gerber" + +#: flatcamParsers/ParseExcellon.py:433 +msgid "" +"No tool diameter info's. See shell.\n" +"A tool change event: T" +msgstr "" +"Nu există informații despre diametrul uneltei. Vezi Shell.\n" +"Un eveniment de schimbare a uneltei: T" + +#: flatcamParsers/ParseExcellon.py:436 +msgid "" +"was found but the Excellon file have no informations regarding the tool " +"diameters therefore the application will try to load it by using some 'fake' " +"diameters.\n" +"The user needs to edit the resulting Excellon object and change the " +"diameters to reflect the real diameters." +msgstr "" +"a fost gasită dar fisierul Excellon nu are info's despre diametrele " +"uneltelor prin urmare aplicatia va folosi valori 'false'.\n" +"Userul trebuie să editeze obictul Excellon rezultat si sa ajusteze " +"diametrele a.i sa reflecte diametrele reale." + +#: flatcamParsers/ParseExcellon.py:900 +msgid "" +"Excellon Parser error.\n" +"Parsing Failed. Line" +msgstr "" +"Eroare de analiza Excellon.\n" +"Analizarea a esuat. Linia" + +#: flatcamParsers/ParseExcellon.py:982 +msgid "" +"Excellon.create_geometry() -> a drill location was skipped due of not having " +"a tool associated.\n" +"Check the resulting GCode." +msgstr "" +"Excellon.create_geometry() -> o locaţie de găurire a fost sarita deoarece nu " +"are o unealtă asociata.\n" +"Verifică codul G-Code rezultat." + +#: flatcamParsers/ParseFont.py:303 +msgid "Font not supported, try another one." +msgstr "Fontul nu este acceptat, incearcă altul." + +#: flatcamParsers/ParseGerber.py:426 +msgid "Gerber processing. Parsing" +msgstr "Prelucrare Gerber. Analizare" + +#: flatcamParsers/ParseGerber.py:426 flatcamParsers/ParseHPGL2.py:182 +msgid "lines" +msgstr "linii" + +#: flatcamParsers/ParseGerber.py:1002 flatcamParsers/ParseGerber.py:1102 +#: flatcamParsers/ParseHPGL2.py:275 flatcamParsers/ParseHPGL2.py:289 +#: flatcamParsers/ParseHPGL2.py:308 flatcamParsers/ParseHPGL2.py:332 +#: flatcamParsers/ParseHPGL2.py:367 +msgid "Coordinates missing, line ignored" +msgstr "Coordonatele lipsesc, linia este ignorată" + +#: flatcamParsers/ParseGerber.py:1004 flatcamParsers/ParseGerber.py:1104 +msgid "GERBER file might be CORRUPT. Check the file !!!" +msgstr "Fişierul Gerber poate fi corrupt. Verificati fişierul!!!" + +#: flatcamParsers/ParseGerber.py:1058 +msgid "" +"Region does not have enough points. File will be processed but there are " +"parser errors. Line number" +msgstr "" +"Regiunea Gerber nu are suficiente puncte. Fişierul va fi procesat dar sunt " +"erori de parsare. Numărul liniei" + +#: flatcamParsers/ParseGerber.py:1488 flatcamParsers/ParseHPGL2.py:402 +msgid "Gerber processing. Joining polygons" +msgstr "Prelucrare Gerber. Se combină poligoanele" + +#: flatcamParsers/ParseGerber.py:1505 +msgid "Gerber processing. Applying Gerber polarity." +msgstr "Prelucrare Gerber. Se aplica polaritatea Gerber." + +#: flatcamParsers/ParseGerber.py:1565 +msgid "Gerber Line" +msgstr "Linia Gerber" + +#: flatcamParsers/ParseGerber.py:1565 +msgid "Gerber Line Content" +msgstr "Continut linie Gerber" + +#: flatcamParsers/ParseGerber.py:1567 +msgid "Gerber Parser ERROR" +msgstr "Eroare in parserul Gerber" + +#: flatcamParsers/ParseGerber.py:1957 +msgid "Gerber Scale done." +msgstr "Scalarea Gerber efectuată." + +#: flatcamParsers/ParseGerber.py:2049 +msgid "Gerber Offset done." +msgstr "Offsetare Gerber efectuată." + +#: flatcamParsers/ParseGerber.py:2125 +msgid "Gerber Mirror done." +msgstr "Oglindirea Gerber efectuată." + +#: flatcamParsers/ParseGerber.py:2199 +msgid "Gerber Skew done." +msgstr "Deformarea Gerber efectuată." + +#: flatcamParsers/ParseGerber.py:2261 +msgid "Gerber Rotate done." +msgstr "Rotatia Gerber efectuată." + +#: flatcamParsers/ParseGerber.py:2418 +msgid "Gerber Buffer done." +msgstr "Buffer Gerber efectuat." + +#: flatcamParsers/ParseHPGL2.py:182 +msgid "HPGL2 processing. Parsing" +msgstr "Prelucrare HPGL2. Analizare" + +#: flatcamParsers/ParseHPGL2.py:414 +msgid "HPGL2 Line" +msgstr "Linie HPGL2" + +#: flatcamParsers/ParseHPGL2.py:414 +msgid "HPGL2 Line Content" +msgstr "Continut linie HPGL2" + +#: flatcamParsers/ParseHPGL2.py:415 +msgid "HPGL2 Parser ERROR" +msgstr "Eroare in parserul HPGL2" + +#: flatcamTools/ToolAlignObjects.py:32 +msgid "Align Objects" +msgstr "Aliniere Obiecte" + +#: flatcamTools/ToolAlignObjects.py:61 +msgid "MOVING object" +msgstr "MISCARE obiect" + +#: flatcamTools/ToolAlignObjects.py:65 +msgid "" +"Specify the type of object to be aligned.\n" +"It can be of type: Gerber or Excellon.\n" +"The selection here decide the type of objects that will be\n" +"in the Object combobox." +msgstr "" +"Specifică tipul de obiect care va fi aliniat.\n" +"Poate fi de tipul: Gerber sau Excellon.\n" +"Selectia făcută aici va dicta tipul de obiecte care se vor\n" +"regăsi in combobox-ul >Obiect<." + +#: flatcamTools/ToolAlignObjects.py:86 +msgid "Object to be aligned." +msgstr "Obiect care trebuie aliniat." + +#: flatcamTools/ToolAlignObjects.py:98 +msgid "TARGET object" +msgstr "Obiectul TINTA" + +#: flatcamTools/ToolAlignObjects.py:100 +msgid "" +"Specify the type of object to be aligned to.\n" +"It can be of type: Gerber or Excellon.\n" +"The selection here decide the type of objects that will be\n" +"in the Object combobox." +msgstr "" +"Specifică tipul de obiect la care se va alinia un alt obiect.\n" +"Poate fi de tipul: Gerbe sau Excellon.\n" +"Selectia făcută aici va dicta tipul de obiecte care se vor\n" +"regăsi in combobox-ul >Obiect<." + +#: flatcamTools/ToolAlignObjects.py:122 +msgid "Object to be aligned to. Aligner." +msgstr "Obiectul către care se face alinierea. Aliniator." + +#: flatcamTools/ToolAlignObjects.py:135 +msgid "Alignment Type" +msgstr "Tip Aliniere" + +#: flatcamTools/ToolAlignObjects.py:137 +msgid "" +"The type of alignment can be:\n" +"- Single Point -> it require a single point of sync, the action will be a " +"translation\n" +"- Dual Point -> it require two points of sync, the action will be " +"translation followed by rotation" +msgstr "" +"Tipul de aliniere poate fi:\n" +"- Punct Singular -> necesită un singur punct de sincronizare, actiunea va fi " +"o translatie\n" +"- Punct Dublu -> necesita două puncta de sincronizare, actiunea va di o " +"translatie urmată de o posibilă rotatie" + +#: flatcamTools/ToolAlignObjects.py:143 +msgid "Single Point" +msgstr "Punct Singular" + +#: flatcamTools/ToolAlignObjects.py:144 +msgid "Dual Point" +msgstr "Punct Dublu" + +#: flatcamTools/ToolAlignObjects.py:159 +msgid "Align Object" +msgstr "Aliniază Obiectul" + +#: flatcamTools/ToolAlignObjects.py:161 +msgid "" +"Align the specified object to the aligner object.\n" +"If only one point is used then it assumes translation.\n" +"If tho points are used it assume translation and rotation." +msgstr "" +"Aliniază obiectul specificat la obiectul aliniator.\n" +"Dacă doar un singul punct de aliniere este folosit atunci se presupune o " +"simplă translatie.\n" +"Daca se folosesc două puncte atunci va fi o translatie urmată de o posibilă " +"rotatie." + +#: flatcamTools/ToolAlignObjects.py:176 flatcamTools/ToolCalculators.py:246 +#: flatcamTools/ToolCalibration.py:683 flatcamTools/ToolCopperThieving.py:484 +#: flatcamTools/ToolCutOut.py:362 flatcamTools/ToolDblSided.py:471 +#: flatcamTools/ToolExtractDrills.py:310 flatcamTools/ToolFiducials.py:318 +#: flatcamTools/ToolFilm.py:520 flatcamTools/ToolInvertGerber.py:140 +#: flatcamTools/ToolNCC.py:612 flatcamTools/ToolOptimal.py:237 +#: flatcamTools/ToolPaint.py:556 flatcamTools/ToolPanelize.py:269 +#: flatcamTools/ToolPunchGerber.py:339 flatcamTools/ToolQRCode.py:314 +#: flatcamTools/ToolRulesCheck.py:516 flatcamTools/ToolSolderPaste.py:473 +#: flatcamTools/ToolSub.py:176 flatcamTools/ToolTransform.py:398 +msgid "Reset Tool" +msgstr "Resetați Unealta" + +#: flatcamTools/ToolAlignObjects.py:178 flatcamTools/ToolCalculators.py:248 +#: flatcamTools/ToolCalibration.py:685 flatcamTools/ToolCopperThieving.py:486 +#: flatcamTools/ToolCutOut.py:364 flatcamTools/ToolDblSided.py:473 +#: flatcamTools/ToolExtractDrills.py:312 flatcamTools/ToolFiducials.py:320 +#: flatcamTools/ToolFilm.py:522 flatcamTools/ToolInvertGerber.py:142 +#: flatcamTools/ToolNCC.py:614 flatcamTools/ToolOptimal.py:239 +#: flatcamTools/ToolPaint.py:558 flatcamTools/ToolPanelize.py:271 +#: flatcamTools/ToolPunchGerber.py:341 flatcamTools/ToolQRCode.py:316 +#: flatcamTools/ToolRulesCheck.py:518 flatcamTools/ToolSolderPaste.py:475 +#: flatcamTools/ToolSub.py:178 flatcamTools/ToolTransform.py:400 +msgid "Will reset the tool parameters." +msgstr "Va reseta parametrii uneltei." + +#: flatcamTools/ToolAlignObjects.py:244 +msgid "Align Tool" +msgstr "Unealta Aliniere" + +#: flatcamTools/ToolAlignObjects.py:289 +msgid "There is no aligned FlatCAM object selected..." +msgstr "Nu a fost selectat niciun obiect FlatCAM pentru a fi aliniat..." + +#: flatcamTools/ToolAlignObjects.py:299 +msgid "There is no aligner FlatCAM object selected..." +msgstr "" +"Nu a fost selectat niciun obiect FlatCAM către care să se facă alinierea..." + +#: flatcamTools/ToolAlignObjects.py:325 flatcamTools/ToolAlignObjects.py:385 +msgid "First Point" +msgstr "Primul punct" + +#: flatcamTools/ToolAlignObjects.py:325 flatcamTools/ToolAlignObjects.py:400 +msgid "Click on the START point." +msgstr "Click pe punctul START." + +#: flatcamTools/ToolAlignObjects.py:380 flatcamTools/ToolCalibration.py:920 +msgid "Cancelled by user request." +msgstr "Anulat prin solicitarea utilizatorului." + +#: flatcamTools/ToolAlignObjects.py:385 flatcamTools/ToolAlignObjects.py:407 +msgid "Click on the DESTINATION point." +msgstr "Click pe punctul DESTINATIE." + +#: flatcamTools/ToolAlignObjects.py:385 flatcamTools/ToolAlignObjects.py:400 +#: flatcamTools/ToolAlignObjects.py:407 +msgid "Or right click to cancel." +msgstr "Sau fă click dreapta pentru anulare." + +#: flatcamTools/ToolAlignObjects.py:400 flatcamTools/ToolAlignObjects.py:407 +#: flatcamTools/ToolFiducials.py:111 +msgid "Second Point" +msgstr "Al doilea punct" + +#: flatcamTools/ToolCalculators.py:24 +msgid "Calculators" +msgstr "Calculatoare" + +#: flatcamTools/ToolCalculators.py:26 +msgid "Units Calculator" +msgstr "Calculator Unitati" + +#: flatcamTools/ToolCalculators.py:70 +msgid "Here you enter the value to be converted from INCH to MM" +msgstr "Valorile pentru conversie din INCH in MM" + +#: flatcamTools/ToolCalculators.py:75 +msgid "Here you enter the value to be converted from MM to INCH" +msgstr "Valorile pentru conversie din MM in INCH" + +#: flatcamTools/ToolCalculators.py:111 +msgid "" +"This is the angle of the tip of the tool.\n" +"It is specified by manufacturer." +msgstr "" +"Acesta este unghiul uneltei la vârf.\n" +"Producatorul il specifica in foaia de catalog." + +#: flatcamTools/ToolCalculators.py:120 +msgid "" +"This is the depth to cut into the material.\n" +"In the CNCJob is the CutZ parameter." +msgstr "" +"Acest param. este adâncimea de tăiere in material.\n" +"In obiectul CNCJob este parametrul >Z tăiere<." + +#: flatcamTools/ToolCalculators.py:128 +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 "" +"Acesta este diametrul uneltei care trebuie introdus in\n" +"sectiunea FlatCAM Gerber.\n" +"In sectiunea CNCJob este numit >Dia unealtă<." + +#: flatcamTools/ToolCalculators.py:139 flatcamTools/ToolCalculators.py:235 +msgid "Calculate" +msgstr "Calculează" + +#: flatcamTools/ToolCalculators.py:142 +msgid "" +"Calculate either the Cut Z or the effective tool diameter,\n" +" depending on which is desired and which is known. " +msgstr "" +"Calculează ori valorea >Z tăiere< ori valoarea efectiva a diametrului " +"uneltei,\n" +"depinzand de care dintre acestea este cunoscuta. " + +#: flatcamTools/ToolCalculators.py:205 +msgid "Current Value" +msgstr "Intensitate" + +#: flatcamTools/ToolCalculators.py:212 +msgid "" +"This is the current intensity value\n" +"to be set on the Power Supply. In Amps." +msgstr "" +"Intensitatea curentului electric care se va seta\n" +"in sursa de alimentare. In Amperi." + +#: flatcamTools/ToolCalculators.py:216 +msgid "Time" +msgstr "Durată" + +#: flatcamTools/ToolCalculators.py:223 +msgid "" +"This is the calculated time required for the procedure.\n" +"In minutes." +msgstr "" +"TImpul necesar (calculat) pentru\n" +"efectuarea procedurii. In minute." + +#: flatcamTools/ToolCalculators.py:238 +msgid "" +"Calculate the current intensity value and the procedure time,\n" +"depending on the parameters above" +msgstr "" +"Calculează intensitatea curentului cat și durata procedurii\n" +"in funcţie de parametrii de mai sus" + +#: flatcamTools/ToolCalculators.py:299 +msgid "Calc. Tool" +msgstr "Unealta Calc" + +#: flatcamTools/ToolCalibration.py:67 +msgid "GCode Parameters" +msgstr "Parametrii GCode" + +#: flatcamTools/ToolCalibration.py:69 +msgid "Parameters used when creating the GCode in this tool." +msgstr "Parametrii folosiți la crearea codului GC pentru aceasta unealta." + +#: flatcamTools/ToolCalibration.py:173 +msgid "STEP 1: Acquire Calibration Points" +msgstr "PASUL 1: Obțineți punctele de calibrare" + +#: flatcamTools/ToolCalibration.py:175 +msgid "" +"Pick four points by clicking on canvas.\n" +"Those four points should be in the four\n" +"(as much as possible) corners of the object." +msgstr "" +"Alege patru puncte făcând clic pe ecran.\n" +"Aceste patru puncte ar trebui să fie în cele patru\n" +"(pe cât posibil) colțurile obiectului." + +#: flatcamTools/ToolCalibration.py:193 flatcamTools/ToolFilm.py:76 +#: flatcamTools/ToolImage.py:54 flatcamTools/ToolPanelize.py:78 +#: flatcamTools/ToolProperties.py:177 +msgid "Object Type" +msgstr "Tip Obiect" + +#: flatcamTools/ToolCalibration.py:210 +msgid "Source object selection" +msgstr "Selectarea obiectului sursă" + +#: flatcamTools/ToolCalibration.py:212 +msgid "FlatCAM Object to be used as a source for reference points." +msgstr "" +"Obiect FlatCAM care trebuie utilizat ca sursă pentru punctele de referință." + +#: flatcamTools/ToolCalibration.py:218 +msgid "Calibration Points" +msgstr "Puncte de calibrare" + +#: flatcamTools/ToolCalibration.py:220 +msgid "" +"Contain the expected calibration points and the\n" +"ones measured." +msgstr "" +"Conține punctele de calibrare așteptate și\n" +"cele măsurate." + +#: flatcamTools/ToolCalibration.py:235 flatcamTools/ToolSub.py:76 +#: flatcamTools/ToolSub.py:131 +msgid "Target" +msgstr "Tintă" + +#: flatcamTools/ToolCalibration.py:236 +msgid "Found Delta" +msgstr "Delta găsit" + +#: flatcamTools/ToolCalibration.py:248 +msgid "Bot Left X" +msgstr "Stânga jos X" + +#: flatcamTools/ToolCalibration.py:257 +msgid "Bot Left Y" +msgstr "Stânga jos Y" + +#: flatcamTools/ToolCalibration.py:275 +msgid "Bot Right X" +msgstr "Dreapta-jos X" + +#: flatcamTools/ToolCalibration.py:285 +msgid "Bot Right Y" +msgstr "Dreapta-jos Y" + +#: flatcamTools/ToolCalibration.py:300 +msgid "Top Left X" +msgstr "Stânga sus X" + +#: flatcamTools/ToolCalibration.py:309 +msgid "Top Left Y" +msgstr "Stânga sus Y" + +#: flatcamTools/ToolCalibration.py:324 +msgid "Top Right X" +msgstr "Dreapta-sus X" + +#: flatcamTools/ToolCalibration.py:334 +msgid "Top Right Y" +msgstr "Dreapta-sus Y" + +#: flatcamTools/ToolCalibration.py:367 +msgid "Get Points" +msgstr "Obține puncte" + +#: flatcamTools/ToolCalibration.py:369 +msgid "" +"Pick four points by clicking on canvas if the source choice\n" +"is 'free' or inside the object geometry if the source is 'object'.\n" +"Those four points should be in the four squares of\n" +"the object." +msgstr "" +"Alegeți patru puncte dând clic pe ecran dacă alegeți sursa\n" +"„liber” sau în interiorul geometriei obiectului dacă sursa este „obiect”.\n" +"Aceste patru puncte ar trebui să se afle în cele patru colțuri ale\n" +"obiectului." + +#: flatcamTools/ToolCalibration.py:390 +msgid "STEP 2: Verification GCode" +msgstr "PASUL 2: GCode de verificare" + +#: flatcamTools/ToolCalibration.py:392 flatcamTools/ToolCalibration.py:405 +msgid "" +"Generate GCode file to locate and align the PCB by using\n" +"the four points acquired above.\n" +"The points sequence is:\n" +"- first point -> set the origin\n" +"- second point -> alignment point. Can be: top-left or bottom-right.\n" +"- third point -> check point. Can be: top-left or bottom-right.\n" +"- forth point -> final verification point. Just for evaluation." +msgstr "" +"Generați fișier GCode pentru a localiza și alinia PCB-ul utilizând\n" +"cele patru puncte dobândite mai sus.\n" +"Secvența punctelor este:\n" +"- primul punct -> setați originea\n" +"- al doilea punct -> punctul de aliniere. Poate fi: sus-stânga sau jos-" +"dreapta.\n" +"- al treilea punct -> punctul de verificare. Poate fi: sus-stânga sau jos-" +"dreapta.\n" +"- punctul înainte -> punctul de verificare final. Doar pentru evaluare." + +#: flatcamTools/ToolCalibration.py:403 flatcamTools/ToolSolderPaste.py:348 +msgid "Generate GCode" +msgstr "Generează GCode" + +#: flatcamTools/ToolCalibration.py:429 +msgid "STEP 3: Adjustments" +msgstr "PASUL 3: Reglaje" + +#: flatcamTools/ToolCalibration.py:431 flatcamTools/ToolCalibration.py:440 +msgid "" +"Calculate Scale and Skew factors based on the differences (delta)\n" +"found when checking the PCB pattern. The differences must be filled\n" +"in the fields Found (Delta)." +msgstr "" +"Calculați factorii de Scalare și Deformare pe baza diferențelor (delta)\n" +"găsite la verificarea modelului PCB. Diferențele trebuie completate\n" +"în câmpurile găsite (Delta)." + +#: flatcamTools/ToolCalibration.py:438 +msgid "Calculate Factors" +msgstr "Calculați factorii" + +#: flatcamTools/ToolCalibration.py:460 +msgid "STEP 4: Adjusted GCode" +msgstr "PASUL 4: GCode ajustat" + +#: flatcamTools/ToolCalibration.py:462 +msgid "" +"Generate verification GCode file adjusted with\n" +"the factors above." +msgstr "" +"Generați fișierul GCode de verificare ajustat cu\n" +"factorii de mai sus." + +#: flatcamTools/ToolCalibration.py:467 +msgid "Scale Factor X:" +msgstr "Factor scalare X:" + +#: flatcamTools/ToolCalibration.py:479 +msgid "Scale Factor Y:" +msgstr "Factor scalare Y:" + +#: flatcamTools/ToolCalibration.py:491 +msgid "Apply Scale Factors" +msgstr "Aplicați factorii de scalare" + +#: flatcamTools/ToolCalibration.py:493 +msgid "Apply Scale factors on the calibration points." +msgstr "Aplicați factorii de Scalare asupra punctelor de calibrare." + +#: flatcamTools/ToolCalibration.py:503 +msgid "Skew Angle X:" +msgstr "Unghi X Deformare:" + +#: flatcamTools/ToolCalibration.py:516 +msgid "Skew Angle Y:" +msgstr "Unghi Y Deformare:" + +#: flatcamTools/ToolCalibration.py:529 +msgid "Apply Skew Factors" +msgstr "Aplicați factorii de deformare" + +#: flatcamTools/ToolCalibration.py:531 +msgid "Apply Skew factors on the calibration points." +msgstr "Aplicați factorii de Deformare asupra punctelor de calibrare." + +#: flatcamTools/ToolCalibration.py:600 +msgid "Generate Adjusted GCode" +msgstr "Generați GCode ajustat" + +#: flatcamTools/ToolCalibration.py:602 +msgid "" +"Generate verification GCode file adjusted with\n" +"the factors set above.\n" +"The GCode parameters can be readjusted\n" +"before clicking this button." +msgstr "" +"Generați fișierul GCode de verificare ajustat cu\n" +"factorii stabiliți mai sus.\n" +"Parametrii GCode pot fi reglați\n" +"înainte de a face clic pe acest buton." + +#: flatcamTools/ToolCalibration.py:623 +msgid "STEP 5: Calibrate FlatCAM Objects" +msgstr "PASUL 5: Calibrați obiectele FlatCAM" + +#: flatcamTools/ToolCalibration.py:625 +msgid "" +"Adjust the FlatCAM objects\n" +"with the factors determined and verified above." +msgstr "" +"Reglați obiectele FlatCAM\n" +"cu factorii determinați și verificați mai sus." + +#: flatcamTools/ToolCalibration.py:637 +msgid "Adjusted object type" +msgstr "Tipul obiectului ajustat" + +#: flatcamTools/ToolCalibration.py:638 +msgid "Type of the FlatCAM Object to be adjusted." +msgstr "Tipul obiectului FlatCAM care trebuie ajustat." + +#: flatcamTools/ToolCalibration.py:651 +msgid "Adjusted object selection" +msgstr "Selectarea obiectului ajustat" + +#: flatcamTools/ToolCalibration.py:653 +msgid "The FlatCAM Object to be adjusted." +msgstr "Obiectul FlatCAM care trebuie ajustat." + +#: flatcamTools/ToolCalibration.py:660 +msgid "Calibrate" +msgstr "Calibreaza" + +#: flatcamTools/ToolCalibration.py:662 +msgid "" +"Adjust (scale and/or skew) the objects\n" +"with the factors determined above." +msgstr "" +"Reglați (Scalați și / sau Deformați) obiectele\n" +"cu factorii determinați mai sus." + +#: flatcamTools/ToolCalibration.py:770 flatcamTools/ToolCalibration.py:771 +msgid "Origin" +msgstr "Originea" + +#: flatcamTools/ToolCalibration.py:800 +msgid "Tool initialized" +msgstr "Unealtă initializată" + +#: flatcamTools/ToolCalibration.py:838 +msgid "There is no source FlatCAM object selected..." +msgstr "Nu a fost selectat niciun obiect FlatCAM sursă ..." + +#: flatcamTools/ToolCalibration.py:859 +msgid "Get First calibration point. Bottom Left..." +msgstr "Obțineți primul punct de calibrare. Stânga jos..." + +#: flatcamTools/ToolCalibration.py:926 +msgid "Get Second calibration point. Bottom Right (Top Left)..." +msgstr "" +"Obțineți al doilea punct de calibrare. Dreapta jos (sau în stânga sus) ..." + +#: flatcamTools/ToolCalibration.py:930 +msgid "Get Third calibration point. Top Left (Bottom Right)..." +msgstr "" +"Obțineți al treilea punct de calibrare. Sus stanga (sau în jos dreapta)..." + +#: flatcamTools/ToolCalibration.py:934 +msgid "Get Forth calibration point. Top Right..." +msgstr "Obțineți punctul de calibrare Forth. Sus în dreapta..." + +#: flatcamTools/ToolCalibration.py:938 +msgid "Done. All four points have been acquired." +msgstr "Terminat. Toate cele patru puncte au fost obținute." + +#: flatcamTools/ToolCalibration.py:969 +msgid "Verification GCode for FlatCAM Calibration Tool" +msgstr "GCode de verificare pentru Unealta FlatCAM de Calibrare" + +#: flatcamTools/ToolCalibration.py:981 flatcamTools/ToolCalibration.py:1067 +msgid "Gcode Viewer" +msgstr "Gcode Viewer" + +#: flatcamTools/ToolCalibration.py:997 +msgid "Cancelled. Four points are needed for GCode generation." +msgstr "Anulat. Patru puncte sunt necesare pentru generarea GCode." + +#: flatcamTools/ToolCalibration.py:1253 flatcamTools/ToolCalibration.py:1349 +msgid "There is no FlatCAM object selected..." +msgstr "Nu a fost selectat niciun obiect FlatCAM ..." + +#: flatcamTools/ToolCopperThieving.py:76 flatcamTools/ToolFiducials.py:261 +msgid "Gerber Object to which will be added a copper thieving." +msgstr "Obiect Gerber căruia i se va adăuga Copper Thieving." + +#: flatcamTools/ToolCopperThieving.py:98 +msgid "" +"This set the distance between the copper thieving components\n" +"(the polygon fill may be split in multiple polygons)\n" +"and the copper traces in the Gerber file." +msgstr "" +"Aceasta stabileste distanța dintre componentele Copper Thieving\n" +"(umplutura poligonului poate fi împărțită în mai multe poligoane)\n" +"si traseele de cupru din fisierul Gerber." + +#: flatcamTools/ToolCopperThieving.py:131 +msgid "" +"- 'Itself' - the copper thieving extent is based on the object extent.\n" +"- 'Area Selection' - left mouse click to start selection of the area to be " +"filled.\n" +"- 'Reference Object' - will do copper thieving within the area specified by " +"another object." +msgstr "" +"- „Însuși” - amploarea Copper Thieving se bazează pe suprafata obiectului.\n" +"- „Selecție zonă” - faceți clic stânga cu mouse-ul pentru a începe selecția " +"zonei.\n" +"- „Obiect de referință” - va face Copper Thieving în zona specificată de un " +"alt obiect." + +#: flatcamTools/ToolCopperThieving.py:138 flatcamTools/ToolNCC.py:552 +#: flatcamTools/ToolPaint.py:496 +msgid "Ref. Type" +msgstr "Tip Ref" + +#: flatcamTools/ToolCopperThieving.py:140 +msgid "" +"The type of FlatCAM object to be used as copper thieving reference.\n" +"It can be Gerber, Excellon or Geometry." +msgstr "" +"Tipul obiectului FlatCAM care va fi utilizat ca referință la Copper " +"Thieving.\n" +"Poate fi Gerber, Excellon sau Geometrie." + +#: flatcamTools/ToolCopperThieving.py:149 flatcamTools/ToolNCC.py:562 +#: flatcamTools/ToolPaint.py:506 +msgid "Ref. Object" +msgstr "Obiect Ref" + +#: flatcamTools/ToolCopperThieving.py:151 flatcamTools/ToolNCC.py:564 +#: flatcamTools/ToolPaint.py:508 +msgid "The FlatCAM object to be used as non copper clearing reference." +msgstr "" +"Obiectul FlatCAM pentru a fi utilizat ca referință pt. curățarea de cupru." + +#: flatcamTools/ToolCopperThieving.py:327 +msgid "Insert Copper thieving" +msgstr "Inserați Copper Thieving" + +#: flatcamTools/ToolCopperThieving.py:329 +msgid "" +"Will add a polygon (may be split in multiple parts)\n" +"that will surround the actual Gerber traces at a certain distance." +msgstr "" +"Se va adăuga un poligon (poate fi împărțit în mai multe părți)\n" +"care va înconjura traseele Gerber la o anumită distanță." + +#: flatcamTools/ToolCopperThieving.py:388 +msgid "Insert Robber Bar" +msgstr "Inserați Rober Bar" + +#: flatcamTools/ToolCopperThieving.py:390 +msgid "" +"Will add a polygon with a defined thickness\n" +"that will surround the actual Gerber object\n" +"at a certain distance.\n" +"Required when doing holes pattern plating." +msgstr "" +"Se va adăuga un poligon cu o grosime definită\n" +"care va înconjura obiectul Gerber\n" +"la o anumită distanță.\n" +"Necesar atunci când faceți placare găuri cu model." + +#: flatcamTools/ToolCopperThieving.py:414 +msgid "Select Soldermask object" +msgstr "Selectați obiectul Soldermask" + +#: flatcamTools/ToolCopperThieving.py:416 +msgid "" +"Gerber Object with the soldermask.\n" +"It will be used as a base for\n" +"the pattern plating mask." +msgstr "" +"Obiect Gerber cu Soldermask.\n" +"Acesta va fi folosit ca bază pentru\n" +"generarea de masca pentru placare cu model." + +#: flatcamTools/ToolCopperThieving.py:445 +msgid "Plated area" +msgstr "Zona placată" + +#: flatcamTools/ToolCopperThieving.py:447 +msgid "" +"The area to be plated by pattern plating.\n" +"Basically is made from the openings in the plating mask.\n" +"\n" +"<> - the calculated area is actually a bit larger\n" +"due of the fact that the soldermask openings are by design\n" +"a bit larger than the copper pads, and this area is\n" +"calculated from the soldermask openings." +msgstr "" +"Zona de placat prin placare cu model.\n" +"Practic este realizată din deschiderile din masca de placare.\n" +"\n" +"<> - suprafața calculată este de fapt un pic mai mare\n" +"datorită faptului că deschiderile de soldermask sunt prin design\n" +"un pic mai mari decât padurile de cupru, iar această zonă este\n" +"calculată din deschiderile soldermask." + +#: flatcamTools/ToolCopperThieving.py:458 +msgid "mm" +msgstr "mm" + +#: flatcamTools/ToolCopperThieving.py:460 +msgid "in" +msgstr "in" + +#: flatcamTools/ToolCopperThieving.py:467 +msgid "Generate pattern plating mask" +msgstr "Generați mască de placare cu model" + +#: flatcamTools/ToolCopperThieving.py:469 +msgid "" +"Will add to the soldermask gerber geometry\n" +"the geometries of the copper thieving and/or\n" +"the robber bar if those were generated." +msgstr "" +"Se va adăuga la geometria soldermask Gerber \n" +"geometriile Copper Thieving și / sau\n" +"Robber Bar dacă acestea au fost generate." + +#: flatcamTools/ToolCopperThieving.py:625 +#: flatcamTools/ToolCopperThieving.py:650 +msgid "Lines Grid works only for 'itself' reference ..." +msgstr "Gridul de Linii funcționează numai pentru referința „în sine” ..." + +#: flatcamTools/ToolCopperThieving.py:636 +msgid "Solid fill selected." +msgstr "Umplere solidă selectată." + +#: flatcamTools/ToolCopperThieving.py:641 +msgid "Dots grid fill selected." +msgstr "Umplere Grila de Puncte selectată." + +#: flatcamTools/ToolCopperThieving.py:646 +msgid "Squares grid fill selected." +msgstr "Umplere Grila de Pătrate selectată." + +#: flatcamTools/ToolCopperThieving.py:667 +#: flatcamTools/ToolCopperThieving.py:749 +#: flatcamTools/ToolCopperThieving.py:1345 flatcamTools/ToolDblSided.py:657 +#: flatcamTools/ToolExtractDrills.py:436 flatcamTools/ToolFiducials.py:466 +#: flatcamTools/ToolFiducials.py:743 flatcamTools/ToolOptimal.py:342 +#: flatcamTools/ToolPunchGerber.py:512 flatcamTools/ToolQRCode.py:426 +msgid "There is no Gerber object loaded ..." +msgstr "Nu este nici-un obiect Gerber incărcat ..." + +#: flatcamTools/ToolCopperThieving.py:680 +#: flatcamTools/ToolCopperThieving.py:1273 +msgid "Append geometry" +msgstr "Adăugați geometria" + +#: flatcamTools/ToolCopperThieving.py:724 +#: flatcamTools/ToolCopperThieving.py:1306 +#: flatcamTools/ToolCopperThieving.py:1459 +msgid "Append source file" +msgstr "Adăugați fișierul sursă" + +#: flatcamTools/ToolCopperThieving.py:732 +#: flatcamTools/ToolCopperThieving.py:1314 +msgid "Copper Thieving Tool done." +msgstr "Unealta Copper Thieving efectuata." + +#: flatcamTools/ToolCopperThieving.py:759 +#: flatcamTools/ToolCopperThieving.py:792 flatcamTools/ToolCutOut.py:519 +#: flatcamTools/ToolCutOut.py:724 flatcamTools/ToolInvertGerber.py:208 +#: flatcamTools/ToolNCC.py:1599 flatcamTools/ToolNCC.py:1640 +#: flatcamTools/ToolNCC.py:1669 flatcamTools/ToolPaint.py:1474 +#: flatcamTools/ToolPanelize.py:412 flatcamTools/ToolPanelize.py:426 +#: flatcamTools/ToolSub.py:294 flatcamTools/ToolSub.py:307 +#: flatcamTools/ToolSub.py:498 flatcamTools/ToolSub.py:513 +#: tclCommands/TclCommandCopperClear.py:97 tclCommands/TclCommandPaint.py:99 +msgid "Could not retrieve object" +msgstr "Nu s-a putut incărca obiectul" + +#: flatcamTools/ToolCopperThieving.py:820 +msgid "Click the end point of the filling area." +msgstr "Faceți clic pe punctul final al zonei de umplere." + +#: flatcamTools/ToolCopperThieving.py:942 +#: flatcamTools/ToolCopperThieving.py:946 +#: flatcamTools/ToolCopperThieving.py:1007 +msgid "Thieving" +msgstr "Thieving" + +#: flatcamTools/ToolCopperThieving.py:953 +msgid "Copper Thieving Tool started. Reading parameters." +msgstr "Unealta Thieving Tool a pornit. Se citesc parametrii." + +#: flatcamTools/ToolCopperThieving.py:978 +msgid "Copper Thieving Tool. Preparing isolation polygons." +msgstr "Unealta Thieving Tool. Se pregătesc poligoanele de isolare." + +#: flatcamTools/ToolCopperThieving.py:1023 +msgid "Copper Thieving Tool. Preparing areas to fill with copper." +msgstr "Unealta Thieving Tool. Se pregătesc zonele de umplut cu cupru." + +#: flatcamTools/ToolCopperThieving.py:1034 flatcamTools/ToolOptimal.py:349 +#: flatcamTools/ToolPanelize.py:799 flatcamTools/ToolRulesCheck.py:1127 +msgid "Working..." +msgstr "Se lucrează..." + +#: flatcamTools/ToolCopperThieving.py:1061 +msgid "Geometry not supported for bounding box" +msgstr "Geometria nu este acceptată pentru caseta de delimitare" + +#: flatcamTools/ToolCopperThieving.py:1067 flatcamTools/ToolNCC.py:1933 +#: flatcamTools/ToolNCC.py:1988 flatcamTools/ToolNCC.py:2992 +#: flatcamTools/ToolPaint.py:3380 +msgid "No object available." +msgstr "Nici-un obiect disponibil." + +#: flatcamTools/ToolCopperThieving.py:1104 flatcamTools/ToolNCC.py:1958 +#: flatcamTools/ToolNCC.py:2011 flatcamTools/ToolNCC.py:3034 +msgid "The reference object type is not supported." +msgstr "Tipul de obiect de referintă nu este acceptat." + +#: flatcamTools/ToolCopperThieving.py:1109 +msgid "Copper Thieving Tool. Appending new geometry and buffering." +msgstr "" +"Unealta Copper Thieving. Se adauga o noua geometrie si se fuzioneaza acestea." + +#: flatcamTools/ToolCopperThieving.py:1125 +msgid "Create geometry" +msgstr "Creați geometrie" + +#: flatcamTools/ToolCopperThieving.py:1325 +#: flatcamTools/ToolCopperThieving.py:1329 +msgid "P-Plating Mask" +msgstr "Mască M-Placare" + +#: flatcamTools/ToolCopperThieving.py:1351 +msgid "Append PP-M geometry" +msgstr "Adaugă geometrie mască PM" + +#: flatcamTools/ToolCopperThieving.py:1477 +msgid "Generating Pattern Plating Mask done." +msgstr "Generarea măștii de placare cu model efectuată." + +#: flatcamTools/ToolCopperThieving.py:1549 +msgid "Copper Thieving Tool exit." +msgstr "Unealta Copper Thieving terminata." + +#: flatcamTools/ToolCutOut.py:41 +msgid "Cutout PCB" +msgstr "Decupare PCB" + +#: flatcamTools/ToolCutOut.py:69 flatcamTools/ToolPanelize.py:54 +msgid "Source Object" +msgstr "Obiect Sursă" + +#: flatcamTools/ToolCutOut.py:70 +msgid "Object to be cutout" +msgstr "Obiect care trebuie decupat" + +#: flatcamTools/ToolCutOut.py:75 +msgid "Kind" +msgstr "Fel" + +#: flatcamTools/ToolCutOut.py:97 +msgid "" +"Specify the type of object to be cutout.\n" +"It can be of type: Gerber or Geometry.\n" +"What is selected here will dictate the kind\n" +"of objects that will populate the 'Object' combobox." +msgstr "" +"Specifica obiectul care va fi decupat.\n" +"Poate fi de tip: Gerber sau Geometrie.\n" +"Ce se va selecta aici va controla tipul de \n" +"obiecte care vor aparea in combobox-ul\n" +"numit >Obiect<." + +#: flatcamTools/ToolCutOut.py:121 +msgid "Tool Parameters" +msgstr "Parametrii Unealtă" + +#: flatcamTools/ToolCutOut.py:238 +msgid "A. Automatic Bridge Gaps" +msgstr "A. Punţi realiz. automat" + +#: flatcamTools/ToolCutOut.py:240 +msgid "This section handle creation of automatic bridge gaps." +msgstr "" +"Aceasta sectiune va permite crearea in mod automat\n" +"a pana la 8 punţi." + +#: flatcamTools/ToolCutOut.py:247 +msgid "" +"Number of gaps used for the Automatic cutout.\n" +"There can be maximum 8 bridges/gaps.\n" +"The choices are:\n" +"- None - no gaps\n" +"- lr - left + right\n" +"- tb - top + bottom\n" +"- 4 - left + right +top + bottom\n" +"- 2lr - 2*left + 2*right\n" +"- 2tb - 2*top + 2*bottom\n" +"- 8 - 2*left + 2*right +2*top + 2*bottom" +msgstr "" +"Numărul de punţi folosite in decupare.\n" +"Pot fi un număr maxim de 8 punţi aranjate in felul\n" +"următor:\n" +"- Nici unul - nu există spatii\n" +"- lr = stânga -dreapta\n" +"- tb = sus - jos\n" +"- 4 = stânga -dreapta - sus - jos\n" +"- 2lr = 2* stânga - 2* dreapta\n" +"- 2tb = 2* sus - 2* jos\n" +"- 8 = 2* stânga - 2* dreapta - 2* sus - 2* jos" + +#: flatcamTools/ToolCutOut.py:269 +msgid "Generate Freeform Geometry" +msgstr "Generați geometrie cu formă liberă" + +#: flatcamTools/ToolCutOut.py:271 +msgid "" +"Cutout the selected object.\n" +"The cutout shape can be of any shape.\n" +"Useful when the PCB has a non-rectangular shape." +msgstr "" +"Decupează obiectul selectat.\n" +"Forma decupajului poate avea orice forma.\n" +"Folositor când PCB-ul are o forma neregulata." + +#: flatcamTools/ToolCutOut.py:283 +msgid "Generate Rectangular Geometry" +msgstr "Generați geometrie dreptunghiulară" + +#: flatcamTools/ToolCutOut.py:285 +msgid "" +"Cutout the selected object.\n" +"The resulting cutout shape is\n" +"always a rectangle shape and it will be\n" +"the bounding box of the Object." +msgstr "" +"Decupează obiectul selectat.\n" +"Forma decupajului este tot timpul dreptunghiulara.." + +#: flatcamTools/ToolCutOut.py:304 +msgid "B. Manual Bridge Gaps" +msgstr "B. Punţi realiz. manual" + +#: flatcamTools/ToolCutOut.py:306 +msgid "" +"This section handle creation of manual bridge gaps.\n" +"This is done by mouse clicking on the perimeter of the\n" +"Geometry object that is used as a cutout object. " +msgstr "" +"Permite realizarea de punţi de sustinere in mod manual.\n" +"Se apasa butonul corepsunzator și apoi click cu mouse-ul\n" +"pe perimetrul formei de decupaj. Daca se face simultan cu\n" +"apasarea tastei CTRL, operatia se va repeta automat pana când\n" +"se va apasa tasta 'Escape'. " + +#: flatcamTools/ToolCutOut.py:321 +msgid "Geometry object used to create the manual cutout." +msgstr "Obiect tip Geometrie folosit pentru crearea decupajului manual." + +#: flatcamTools/ToolCutOut.py:328 +msgid "Generate Manual Geometry" +msgstr "Generați geometrie manuală" + +#: flatcamTools/ToolCutOut.py:330 +msgid "" +"If the object to be cutout is a Gerber\n" +"first create a Geometry that surrounds it,\n" +"to be used as the cutout, if one doesn't exist yet.\n" +"Select the source Gerber file in the top object combobox." +msgstr "" +"Daca obiectul care se decupează este un obiect Gerber,\n" +"atunci mai intai crează un obiect Geometrie care il inconjoara\n" +"urmărindu-i forma.\n" +"Selectează obiectul sursa Gerber in combobox-ul de mai sus,\n" +"numit >Obiect<." + +#: flatcamTools/ToolCutOut.py:343 +msgid "Manual Add Bridge Gaps" +msgstr "Adaugă punţi manual" + +#: flatcamTools/ToolCutOut.py:345 +msgid "" +"Use the left mouse button (LMB) click\n" +"to create a bridge gap to separate the PCB from\n" +"the surrounding material.\n" +"The LMB click has to be done on the perimeter of\n" +"the Geometry object used as a cutout geometry." +msgstr "" +"Permite realizarea de punţi de sustinere in mod manual.\n" +"Se apasa butonul corepsunzator și apoi click cu mouse-ul\n" +"pe perimetrul formei de decupaj. Daca se face simultan cu\n" +"apasarea tastei CTRL, operatia se va repeta automat pana când\n" +"se va apasa tasta 'Escape'." + +#: flatcamTools/ToolCutOut.py:524 +msgid "" +"There is no object selected for Cutout.\n" +"Select one and try again." +msgstr "" +"Nu este nici-un obiect selectat pentru decupaj.\n" +"Selectează unul și încearcă din nou." + +#: flatcamTools/ToolCutOut.py:530 flatcamTools/ToolCutOut.py:733 +#: flatcamTools/ToolCutOut.py:914 flatcamTools/ToolCutOut.py:996 +#: tclCommands/TclCommandGeoCutout.py:184 +msgid "Tool Diameter is zero value. Change it to a positive real number." +msgstr "Diametrul uneltei este zero. Schimbă intr-o valoare pozitivă Reală." + +#: flatcamTools/ToolCutOut.py:544 flatcamTools/ToolCutOut.py:748 +msgid "Number of gaps value is missing. Add it and retry." +msgstr "" +"Numărul de punţi lipseste sau este in format gresit. Adaugă din nou și " +"reîncearcă." + +#: flatcamTools/ToolCutOut.py:549 flatcamTools/ToolCutOut.py:752 +msgid "" +"Gaps value can be only one of: 'None', 'lr', 'tb', '2lr', '2tb', 4 or 8. " +"Fill in a correct value and retry. " +msgstr "" +"Valoarea spatiilor poate fi doar una dintre: „Niciuna”, „lr”, „tb”, „2lr”, " +"„2tb”, 4 sau 8. Completați o valoare corectă și încercați din nou. " + +#: flatcamTools/ToolCutOut.py:554 flatcamTools/ToolCutOut.py:758 +msgid "" +"Cutout operation cannot be done on a multi-geo Geometry.\n" +"Optionally, this Multi-geo Geometry can be converted to Single-geo " +"Geometry,\n" +"and after that perform Cutout." +msgstr "" +"Operatia de decupaj nu se poate efectua cu un obiect Geometrie tip " +"MultiGeo.\n" +"Se poate insa converti MultiGeo in tip SingleGeo și apoi se poate efectua " +"decupajul." + +#: flatcamTools/ToolCutOut.py:706 flatcamTools/ToolCutOut.py:903 +msgid "Any form CutOut operation finished." +msgstr "Operatia de decupaj cu formă liberă s-a terminat." + +#: flatcamTools/ToolCutOut.py:728 flatcamTools/ToolInvertGerber.py:214 +#: flatcamTools/ToolNCC.py:1603 flatcamTools/ToolPaint.py:1397 +#: flatcamTools/ToolPanelize.py:417 tclCommands/TclCommandBbox.py:71 +#: tclCommands/TclCommandNregions.py:71 +msgid "Object not found" +msgstr "Obiectul nu a fost gasit" + +#: flatcamTools/ToolCutOut.py:872 +msgid "Rectangular cutout with negative margin is not possible." +msgstr "Tăierea rectangulară cu marginea negativă nu este posibilă." + +#: flatcamTools/ToolCutOut.py:908 +msgid "" +"Click on the selected geometry object perimeter to create a bridge gap ..." +msgstr "" +"Click pe perimetrul obiectului tip Geometrie selectat\n" +"pentru a crea o punte separatoare." + +#: flatcamTools/ToolCutOut.py:925 flatcamTools/ToolCutOut.py:951 +msgid "Could not retrieve Geometry object" +msgstr "Nu s-a putut incărca obiectul Geometrie" + +#: flatcamTools/ToolCutOut.py:956 +msgid "Geometry object for manual cutout not found" +msgstr "Obiectul Geometrie pentru decupaj manual nu este găsit" + +#: flatcamTools/ToolCutOut.py:966 +msgid "Added manual Bridge Gap." +msgstr "O punte a fost adăugată in mod manual." + +#: flatcamTools/ToolCutOut.py:978 +msgid "Could not retrieve Gerber object" +msgstr "Nu s-a putut incărca obiectul Gerber" + +#: flatcamTools/ToolCutOut.py:983 +msgid "" +"There is no Gerber object selected for Cutout.\n" +"Select one and try again." +msgstr "" +"Nu există obiect selectat pt operatia de decupare.\n" +"Selectează un obiect si incearcă din nou." + +#: flatcamTools/ToolCutOut.py:989 +msgid "" +"The selected object has to be of Gerber type.\n" +"Select a Gerber file and try again." +msgstr "" +"Obiectul selectat trebuie să fie de tip Gerber.\n" +"Selectează un obiect Gerber si incearcă din nou." + +#: flatcamTools/ToolCutOut.py:1024 +msgid "Geometry not supported for cutout" +msgstr "Geometria nu este acceptată pentru decupaj" + +#: flatcamTools/ToolCutOut.py:1099 +msgid "Making manual bridge gap..." +msgstr "Se generează o punte separatoare in mod manual..." + +#: flatcamTools/ToolDblSided.py:26 +msgid "2-Sided PCB" +msgstr "2-fețe PCB" + +#: flatcamTools/ToolDblSided.py:52 +msgid "Mirror Operation" +msgstr "Operațiune Oglindire" + +#: flatcamTools/ToolDblSided.py:53 +msgid "Objects to be mirrored" +msgstr "Obiecte care vor fi Oglindite" + +#: flatcamTools/ToolDblSided.py:65 +msgid "Gerber to be mirrored" +msgstr "Gerber pentru oglindit" + +#: flatcamTools/ToolDblSided.py:69 flatcamTools/ToolDblSided.py:97 +#: flatcamTools/ToolDblSided.py:127 +msgid "" +"Mirrors (flips) the specified object around \n" +"the specified axis. Does not create a new \n" +"object, but modifies it." +msgstr "" +"Oglindește obiectul specificat pe axa specificata.\n" +"Nu crează un obiect nou ci il modifica." + +#: flatcamTools/ToolDblSided.py:93 +msgid "Excellon Object to be mirrored." +msgstr "Obiectul Excellon care va fi oglindit." + +#: flatcamTools/ToolDblSided.py:122 +msgid "Geometry Obj to be mirrored." +msgstr "Obiectul Geometrie care va fi oglindit." + +#: flatcamTools/ToolDblSided.py:158 +msgid "Mirror Parameters" +msgstr "Parametrii Oglindire" + +#: flatcamTools/ToolDblSided.py:159 +msgid "Parameters for the mirror operation" +msgstr "Parametri pt operația de Oglindire" + +#: flatcamTools/ToolDblSided.py:164 +msgid "Mirror Axis" +msgstr "Axa Oglindire" + +#: flatcamTools/ToolDblSided.py:175 +msgid "" +"The coordinates used as reference for the mirror operation.\n" +"Can be:\n" +"- Point -> a set of coordinates (x,y) around which the object is mirrored\n" +"- Box -> a set of coordinates (x, y) obtained from the center of the\n" +"bounding box of another object selected below" +msgstr "" +"Coordinatele folosite ca referintă pentru operatia de Oglindire.\n" +"Pot fi:\n" +"- Punct -> un set de coordinate (x,y) in jurul cărora se va face oglindirea\n" +"- Cuie -> un set de coordinate (x,y) obtinute din centrul formei " +"inconjurătoare\n" +"al unui alt obiect, selectat mai jos" + +#: flatcamTools/ToolDblSided.py:189 +msgid "Point coordinates" +msgstr "Coordonatele Punct" + +#: flatcamTools/ToolDblSided.py:194 +msgid "" +"Add the coordinates in format (x, y) through which the mirroring " +"axis\n" +" selected in 'MIRROR AXIS' pass.\n" +"The (x, y) coordinates are captured by pressing SHIFT key\n" +"and left mouse button click on canvas or you can enter the coordinates " +"manually." +msgstr "" +"Adaugă coordonatele in formatul (x, y) prin care trece\n" +"axa de oglindire selectată mai sus, in pasul 'AXA OGLINDIRE'.\n" +"Coordonatele (x,y) pot fi obtinute prin combinatia tasta SHIFT + click mouse " +"pe\n" +"suprafata de afisare sau le puteti introduce manual." + +#: flatcamTools/ToolDblSided.py:218 +msgid "" +"It can be of type: Gerber or Excellon or Geometry.\n" +"The coordinates of the center of the bounding box are used\n" +"as reference for mirror operation." +msgstr "" +"Poate fi de tipul: Gerber, Excellon sau Geometrie.\n" +"Coordonatele centrului formei inconjurătoare sunt folosite\n" +"ca si referintă pentru operatiunea de Oglindire." + +#: flatcamTools/ToolDblSided.py:252 +msgid "Bounds Values" +msgstr "Valorile Limitelor" + +#: flatcamTools/ToolDblSided.py:254 +msgid "" +"Select on canvas the object(s)\n" +"for which to calculate bounds values." +msgstr "" +"Selectati pe suprafata de afisare obiectul(e)\n" +"pentru care se calculează valorile limitelor." + +#: flatcamTools/ToolDblSided.py:264 +msgid "X min" +msgstr "X min" + +#: flatcamTools/ToolDblSided.py:266 flatcamTools/ToolDblSided.py:280 +msgid "Minimum location." +msgstr "Locație minimă." + +#: flatcamTools/ToolDblSided.py:278 +msgid "Y min" +msgstr "Y min" + +#: flatcamTools/ToolDblSided.py:292 +msgid "X max" +msgstr "X max" + +#: flatcamTools/ToolDblSided.py:294 flatcamTools/ToolDblSided.py:308 +msgid "Maximum location." +msgstr "Locație maximă." + +#: flatcamTools/ToolDblSided.py:306 +msgid "Y max" +msgstr "Y max" + +#: flatcamTools/ToolDblSided.py:317 +msgid "Center point coordinates" +msgstr "Coordonatele punctului central" + +#: flatcamTools/ToolDblSided.py:319 +msgid "Centroid" +msgstr "Centroid" + +#: flatcamTools/ToolDblSided.py:321 +msgid "" +"The center point location for the rectangular\n" +"bounding shape. Centroid. Format is (x, y)." +msgstr "" +"Locația punctului central pentru dreptunghiul\n" +"formă de delimitare. Centroid. Formatul este (x, y)." + +#: flatcamTools/ToolDblSided.py:330 +msgid "Calculate Bounds Values" +msgstr "Calculați valorile limitelor" + +#: flatcamTools/ToolDblSided.py:332 +msgid "" +"Calculate the enveloping rectangular shape coordinates,\n" +"for the selection of objects.\n" +"The envelope shape is parallel with the X, Y axis." +msgstr "" +"Calculați coordonatele pt forma dreptunghiulară învelitoare,\n" +"pentru selectarea obiectelor.\n" +"Forma este paralelă cu axele X, Y." + +#: flatcamTools/ToolDblSided.py:352 +msgid "PCB Alignment" +msgstr "Aliniere PCB" + +#: flatcamTools/ToolDblSided.py:354 flatcamTools/ToolDblSided.py:456 +msgid "" +"Creates an Excellon Object containing the\n" +"specified alignment holes and their mirror\n" +"images." +msgstr "" +"Crează un obiect Excellon care contine găurile\n" +"de aliniere specificate cat și cele in oglinda." + +#: flatcamTools/ToolDblSided.py:361 +msgid "Drill Diameter" +msgstr "Dia Găurire" + +#: flatcamTools/ToolDblSided.py:390 flatcamTools/ToolDblSided.py:397 +msgid "" +"The reference point used to create the second alignment drill\n" +"from the first alignment drill, by doing mirror.\n" +"It can be modified in the Mirror Parameters -> Reference section" +msgstr "" +"Punctul de referintă folosit pentru crearea găurii de aliniere secundară,\n" +"din prima gaură de aliniere prin oglindire.\n" +"Poate fi modificat in Parametri Oglindire -> Sectiunea Referintă" + +#: flatcamTools/ToolDblSided.py:410 +msgid "Alignment Drill Coordinates" +msgstr "Dia. găuri de aliniere" + +#: flatcamTools/ToolDblSided.py:412 +msgid "" +"Alignment holes (x1, y1), (x2, y2), ... on one side of the mirror axis. For " +"each set of (x, y) coordinates\n" +"entered here, a pair of drills will be created:\n" +"\n" +"- one drill at the coordinates from the field\n" +"- one drill in mirror position over the axis selected above in the 'Align " +"Axis'." +msgstr "" +"Găuri de aliniere in formatul unei liste: (x1, y1), (x2, y2) samd.\n" +"Pentru fiecare punct din lista de mai sus (cu coord. (x,y) )\n" +"vor fi create o pereche de găuri:\n" +"- o gaură cu coord. specificate in campul de editare\n" +"- o gaură cu coord. in poziţia oglindită pe axa selectată mai sus in 'Axa " +"Aliniere'." + +#: flatcamTools/ToolDblSided.py:420 +msgid "Drill coordinates" +msgstr "Coordonatele găuri" + +#: flatcamTools/ToolDblSided.py:427 +msgid "" +"Add alignment drill holes coordinates in the format: (x1, y1), (x2, " +"y2), ... \n" +"on one side of the alignment axis.\n" +"\n" +"The coordinates set can be obtained:\n" +"- press SHIFT key and left mouse clicking on canvas. Then click Add.\n" +"- press SHIFT key and left mouse clicking on canvas. Then Ctrl+V in the " +"field.\n" +"- press SHIFT key and left mouse clicking on canvas. Then RMB click in the " +"field and click Paste.\n" +"- by entering the coords manually in the format: (x1, y1), (x2, y2), ..." +msgstr "" +"Adăugă coordonatele pt găurile de aliniere in formatul: (x1,y1), (x2,y2) " +"samd\n" +"\n" +"Coordonatele pot fi obtinute prin urmatoarele metodă:\n" +"- apăsare tasta SHIFT + click mouse pe canvas. Apoi apasa butonul 'Adaugă'.\n" +"- apăsare tasta SHIFT + click mouse pe canvas. Apoi CTRL + V combo in câmpul " +"de editare\n" +"- apăsare tasta SHIFT + click mouse pe canvas. Apoi click dreapta și Paste " +"in câmpul de edit.\n" +"- se introduc manual in formatul (x1,y1), (x2,y2) ..." + +#: flatcamTools/ToolDblSided.py:442 +msgid "Delete Last" +msgstr "Șterge Ultima" + +#: flatcamTools/ToolDblSided.py:444 +msgid "Delete the last coordinates tuple in the list." +msgstr "Șterge ultimul set de coordinate din listă." + +#: flatcamTools/ToolDblSided.py:454 +msgid "Create Excellon Object" +msgstr "Crează un obiect Excellon" + +#: flatcamTools/ToolDblSided.py:541 +msgid "2-Sided Tool" +msgstr "Unealta 2-fețe" + +#: flatcamTools/ToolDblSided.py:581 +msgid "" +"'Point' reference is selected and 'Point' coordinates are missing. Add them " +"and retry." +msgstr "" +"Referința 'Punct' este selectată dar coordonatele sale lipsesc. Adăugă-le si " +"încearcă din nou." + +#: flatcamTools/ToolDblSided.py:600 +msgid "There is no Box reference object loaded. Load one and retry." +msgstr "" +"Nici-un obiect container nu este incărcat. Încarcă unul și încearcă din nou." + +#: flatcamTools/ToolDblSided.py:612 +msgid "No value or wrong format in Drill Dia entry. Add it and retry." +msgstr "" +"Val. pt dia burghiu lipseste sau este in format gresit. Adaugă una și " +"încearcă din nou." + +#: flatcamTools/ToolDblSided.py:623 +msgid "There are no Alignment Drill Coordinates to use. Add them and retry." +msgstr "" +"Nu exista coord. pentru găurile de aliniere. Adaugă-le și încearcă din nou." + +#: flatcamTools/ToolDblSided.py:648 +msgid "Excellon object with alignment drills created..." +msgstr "Obiectul Excellon conținând găurile de aliniere a fost creat ..." + +#: flatcamTools/ToolDblSided.py:661 flatcamTools/ToolDblSided.py:704 +#: flatcamTools/ToolDblSided.py:748 +msgid "Only Gerber, Excellon and Geometry objects can be mirrored." +msgstr "Doar obiectele de tip Geometrie, Excellon și Gerber pot fi oglindite." + +#: flatcamTools/ToolDblSided.py:671 flatcamTools/ToolDblSided.py:715 +msgid "" +"There are no Point coordinates in the Point field. Add coords and try " +"again ..." +msgstr "" +"Nu există coord. in câmpul 'Punct'. Adaugă coord. și încearcă din nou..." + +#: flatcamTools/ToolDblSided.py:681 flatcamTools/ToolDblSided.py:725 +#: flatcamTools/ToolDblSided.py:762 +msgid "There is no Box object loaded ..." +msgstr "Nu este incărcat nici-un obiect container ..." + +#: flatcamTools/ToolDblSided.py:691 flatcamTools/ToolDblSided.py:735 +#: flatcamTools/ToolDblSided.py:772 +msgid "was mirrored" +msgstr "a fost oglindit" + +#: flatcamTools/ToolDblSided.py:700 flatcamTools/ToolPunchGerber.py:533 +msgid "There is no Excellon object loaded ..." +msgstr "Nici-un obiect tip Excellon nu este incărcat ..." + +#: flatcamTools/ToolDblSided.py:744 +msgid "There is no Geometry object loaded ..." +msgstr "Nici-un obiect tip Geometrie nu este incărcat ..." + +#: flatcamTools/ToolDistance.py:57 flatcamTools/ToolDistanceMin.py:51 +msgid "Those are the units in which the distance is measured." +msgstr "Unitatile de masura in care se masoara distanța." + +#: flatcamTools/ToolDistance.py:58 flatcamTools/ToolDistanceMin.py:52 +msgid "METRIC (mm)" +msgstr "Metric (mm)" + +#: flatcamTools/ToolDistance.py:58 flatcamTools/ToolDistanceMin.py:52 +msgid "INCH (in)" +msgstr "INCH (in)" + +#: flatcamTools/ToolDistance.py:64 +msgid "Snap to center" +msgstr "Sari in Centru" + +#: flatcamTools/ToolDistance.py:66 +msgid "" +"Mouse cursor will snap to the center of the pad/drill\n" +"when it is hovering over the geometry of the pad/drill." +msgstr "" +"Cursorul mouse-ului va sari (automat) pozitionandu-se in centrul padului/" +"găurii\n" +"atunci cand se găseste deasupra geometriei acelui pad/gaură." + +#: flatcamTools/ToolDistance.py:76 +msgid "Start Coords" +msgstr "Coordonate Start" + +#: flatcamTools/ToolDistance.py:77 flatcamTools/ToolDistance.py:82 +msgid "This is measuring Start point coordinates." +msgstr "Coordonatele punctului de Start." + +#: flatcamTools/ToolDistance.py:87 +msgid "Stop Coords" +msgstr "Coordonate Stop" + +#: flatcamTools/ToolDistance.py:88 flatcamTools/ToolDistance.py:93 +msgid "This is the measuring Stop point coordinates." +msgstr "Coordonatele punctului de Stop." + +#: flatcamTools/ToolDistance.py:98 flatcamTools/ToolDistanceMin.py:63 +msgid "Dx" +msgstr "Dx" + +#: flatcamTools/ToolDistance.py:99 flatcamTools/ToolDistance.py:104 +#: flatcamTools/ToolDistanceMin.py:64 flatcamTools/ToolDistanceMin.py:93 +msgid "This is the distance measured over the X axis." +msgstr "Distanta masurata pe axa X." + +#: flatcamTools/ToolDistance.py:109 flatcamTools/ToolDistanceMin.py:66 +msgid "Dy" +msgstr "Dy" + +#: flatcamTools/ToolDistance.py:110 flatcamTools/ToolDistance.py:115 +#: flatcamTools/ToolDistanceMin.py:67 flatcamTools/ToolDistanceMin.py:98 +msgid "This is the distance measured over the Y axis." +msgstr "Distanta masurata pe axa Y." + +#: flatcamTools/ToolDistance.py:121 flatcamTools/ToolDistance.py:126 +#: flatcamTools/ToolDistanceMin.py:70 flatcamTools/ToolDistanceMin.py:103 +msgid "This is orientation angle of the measuring line." +msgstr "Acesta este unghiul de orientare al liniei de măsurare." + +#: flatcamTools/ToolDistance.py:131 flatcamTools/ToolDistanceMin.py:72 +msgid "DISTANCE" +msgstr "DISTANTA" + +#: flatcamTools/ToolDistance.py:132 flatcamTools/ToolDistance.py:137 +msgid "This is the point to point Euclidian distance." +msgstr "Distanta euclidiana de la punct la punct." + +#: flatcamTools/ToolDistance.py:142 flatcamTools/ToolDistance.py:337 +#: flatcamTools/ToolDistanceMin.py:115 +msgid "Measure" +msgstr "Măsoară" + +#: flatcamTools/ToolDistance.py:272 +msgid "Working" +msgstr "Se lucrează" + +#: flatcamTools/ToolDistance.py:277 +msgid "MEASURING: Click on the Start point ..." +msgstr "Masoara: Click pe punctul de Start ..." + +#: flatcamTools/ToolDistance.py:387 +msgid "Distance Tool finished." +msgstr "Măsurătoarea s-a terminat." + +#: flatcamTools/ToolDistance.py:455 +msgid "Pads overlapped. Aborting." +msgstr "Pad-urile sunt suprapuse. Operatie anulată." + +#: flatcamTools/ToolDistance.py:485 +msgid "MEASURING: Click on the Destination point ..." +msgstr "Masoara: Click pe punctul Destinaţie..." + +#: flatcamTools/ToolDistance.py:494 flatcamTools/ToolDistanceMin.py:285 +msgid "MEASURING" +msgstr "MĂSURARE" + +#: flatcamTools/ToolDistance.py:495 flatcamTools/ToolDistanceMin.py:286 +msgid "Result" +msgstr "Rezultat" + +#: flatcamTools/ToolDistanceMin.py:32 flatcamTools/ToolDistanceMin.py:144 +msgid "Minimum Distance Tool" +msgstr "Unealta de distanță minimă" + +#: flatcamTools/ToolDistanceMin.py:55 +msgid "First object point" +msgstr "Primul punct" + +#: flatcamTools/ToolDistanceMin.py:56 flatcamTools/ToolDistanceMin.py:81 +msgid "" +"This is first object point coordinates.\n" +"This is the start point for measuring distance." +msgstr "" +"Aceasta este prima coordonată a punctelor obiectului.\n" +"Acesta este punctul de pornire pentru măsurarea distanței." + +#: flatcamTools/ToolDistanceMin.py:59 +msgid "Second object point" +msgstr "Al doilea punct" + +#: flatcamTools/ToolDistanceMin.py:60 flatcamTools/ToolDistanceMin.py:87 +msgid "" +"This is second object point coordinates.\n" +"This is the end point for measuring distance." +msgstr "" +"Aceasta este a doua coordonata a punctelor obiectului.\n" +"Acesta este punctul final pentru măsurarea distanței." + +#: flatcamTools/ToolDistanceMin.py:73 flatcamTools/ToolDistanceMin.py:108 +msgid "This is the point to point Euclidean distance." +msgstr "Distanta euclidiana de la punct la punct." + +#: flatcamTools/ToolDistanceMin.py:75 +msgid "Half Point" +msgstr "Punctul de mijloc" + +#: flatcamTools/ToolDistanceMin.py:76 flatcamTools/ToolDistanceMin.py:113 +msgid "This is the middle point of the point to point Euclidean distance." +msgstr "Acesta este punctul de mijloc al distanței euclidiană." + +#: flatcamTools/ToolDistanceMin.py:118 +msgid "Jump to Half Point" +msgstr "Sari la Punctul de Mijloc" + +#: flatcamTools/ToolDistanceMin.py:155 +msgid "" +"Select two objects and no more, to measure the distance between them ..." +msgstr "" +"Selectați două obiecte și nu mai mult, pentru a măsura distanța dintre " +"ele ..." + +#: flatcamTools/ToolDistanceMin.py:196 flatcamTools/ToolDistanceMin.py:217 +#: flatcamTools/ToolDistanceMin.py:226 flatcamTools/ToolDistanceMin.py:247 +msgid "Select two objects and no more. Currently the selection has objects: " +msgstr "" +"Selectați două obiecte și nu mai mult. În prezent, selecția are nr obiecte: " + +#: flatcamTools/ToolDistanceMin.py:294 +msgid "Objects intersects or touch at" +msgstr "Obiectele se intersectează sau ating la" + +#: flatcamTools/ToolDistanceMin.py:300 +msgid "Jumped to the half point between the two selected objects" +msgstr "A sărit la jumătatea punctului dintre cele două obiecte selectate" + +#: flatcamTools/ToolExtractDrills.py:29 flatcamTools/ToolExtractDrills.py:295 +msgid "Extract Drills" +msgstr "Extrage Găuri" + +#: flatcamTools/ToolExtractDrills.py:62 +msgid "Gerber from which to extract drill holes" +msgstr "Obiect Gerber din care se vor extrage găurile" + +#: flatcamTools/ToolExtractDrills.py:297 +msgid "Extract drills from a given Gerber file." +msgstr "Extrage găuri dintr-un fisier Gerber." + +#: flatcamTools/ToolExtractDrills.py:478 flatcamTools/ToolExtractDrills.py:563 +#: flatcamTools/ToolExtractDrills.py:648 +msgid "No drills extracted. Try different parameters." +msgstr "Nu s-au extras găuri. Incearcă alti parametri." + +#: flatcamTools/ToolFiducials.py:56 +msgid "Fiducials Coordinates" +msgstr "Coordonatele Fiducials" + +#: flatcamTools/ToolFiducials.py:58 +msgid "" +"A table with the fiducial points coordinates,\n" +"in the format (x, y)." +msgstr "" +"Un tabel cu coordonatele punctelor fiduțiale,\n" +"în format (x, y)." + +#: flatcamTools/ToolFiducials.py:99 +msgid "Top Right" +msgstr "Dreapta-sus" + +#: flatcamTools/ToolFiducials.py:191 +msgid "" +"- 'Auto' - automatic placement of fiducials in the corners of the bounding " +"box.\n" +" - 'Manual' - manual placement of fiducials." +msgstr "" +"- „Auto” - plasarea automată a fiduciarelor în colțurile casetei de " +"delimitare.\n" +"  - „Manual” - plasarea manuală a fiduciarelor." + +#: flatcamTools/ToolFiducials.py:259 +msgid "Copper Gerber" +msgstr "Gerber Cupru" + +#: flatcamTools/ToolFiducials.py:268 +msgid "Add Fiducial" +msgstr "Adaugă Fiducial" + +#: flatcamTools/ToolFiducials.py:270 +msgid "Will add a polygon on the copper layer to serve as fiducial." +msgstr "" +"Va adăuga un poligon pe stratul de cupru pentru a servi drept fiduciar." + +#: flatcamTools/ToolFiducials.py:286 +msgid "Soldermask Gerber" +msgstr "Gerber Soldermask" + +#: flatcamTools/ToolFiducials.py:288 +msgid "The Soldermask Gerber object." +msgstr "Obiectul Soldermask Gerber." + +#: flatcamTools/ToolFiducials.py:300 +msgid "Add Soldermask Opening" +msgstr "Adăugați deschidere Soldermask" + +#: flatcamTools/ToolFiducials.py:302 +msgid "" +"Will add a polygon on the soldermask layer\n" +"to serve as fiducial opening.\n" +"The diameter is always double of the diameter\n" +"for the copper fiducial." +msgstr "" +"Se va adăuga un poligon pe stratul de Soldermask\n" +"pentru a servi drept deschidere fiduciară.\n" +"Diametrul este întotdeauna dublu față de diametrul\n" +"pentru fiduciarul de cupru." + +#: flatcamTools/ToolFiducials.py:516 +msgid "Click to add first Fiducial. Bottom Left..." +msgstr "Faceți clic pentru a adăuga primul Fiducial. Stânga jos..." + +#: flatcamTools/ToolFiducials.py:780 +msgid "Click to add the last fiducial. Top Right..." +msgstr "Faceți clic pentru a adăuga ultimul Fiducial. Dreapta Sus..." + +#: flatcamTools/ToolFiducials.py:785 +msgid "Click to add the second fiducial. Top Left or Bottom Right..." +msgstr "" +"Faceți clic pentru a adăuga cel de-al doilea Fiducial. Stânga sus sau " +"dreapta jos ..." + +#: flatcamTools/ToolFiducials.py:788 flatcamTools/ToolFiducials.py:797 +msgid "Done. All fiducials have been added." +msgstr "Terminat. Au fost adăugate toate Fiducials." + +#: flatcamTools/ToolFiducials.py:874 +msgid "Fiducials Tool exit." +msgstr "Unealta Fiducials terminate." + +#: flatcamTools/ToolFilm.py:42 +msgid "Film PCB" +msgstr "Film PCB" + +#: flatcamTools/ToolFilm.py:78 +msgid "" +"Specify the type of object for which to create the film.\n" +"The object can be of type: Gerber or Geometry.\n" +"The selection here decide the type of objects that will be\n" +"in the Film Object combobox." +msgstr "" +"Specificati tipul de obiect pt care se va crea filmul.\n" +"Obiectul poate avea tipul: Gerber sau Geometrie.\n" +"Selectia facuta aici controlează ce obiecte vor fi \n" +"gasite in combobox-ul >Obiect Film<." + +#: flatcamTools/ToolFilm.py:92 +msgid "Film Object" +msgstr "Obiect Film" + +#: flatcamTools/ToolFilm.py:94 +msgid "Object for which to create the film." +msgstr "Obiectul pt care se crează filmul." + +#: flatcamTools/ToolFilm.py:115 +msgid "" +"Specify the type of object to be used as an container for\n" +"film creation. It can be: Gerber or Geometry type.The selection here decide " +"the type of objects that will be\n" +"in the Box Object combobox." +msgstr "" +"Specificati tipul obiectului care să fie folosit ca și container\n" +"pt crearea filmului. Poate fi de tipul Geometrie sau Gerber.\n" +"Selectia facuta aici controlează ce obiecte vor fi \n" +"gasite in combobox-ul >Container<." + +#: flatcamTools/ToolFilm.py:129 +msgid "Box Object" +msgstr "Container" + +#: flatcamTools/ToolFilm.py:131 +msgid "" +"The actual object that is used as container for the\n" +" selected object for which we create the film.\n" +"Usually it is the PCB outline but it can be also the\n" +"same object for which the film is created." +msgstr "" +"Obiectul care este folosit ca și container pentru crearea filmului.\n" +"De obicei este conturul PCB dar se poate folosi și obiectul pt care\n" +"se crează filmul." + +#: flatcamTools/ToolFilm.py:273 +msgid "Film Parameters" +msgstr "Parametrii filmului" + +#: flatcamTools/ToolFilm.py:334 +msgid "Punch drill holes" +msgstr "Perforează găurii" + +#: flatcamTools/ToolFilm.py:335 +msgid "" +"When checked the generated film will have holes in pads when\n" +"the generated film is positive. This is done to help drilling,\n" +"when done manually." +msgstr "" +"Când este bifat, filmul generat va avea găuri în pad-uri când\n" +"filmul generat este pozitiv. Acest lucru este realizat pentru a ajuta la " +"găurire,\n" +"când este făcută manual." + +#: flatcamTools/ToolFilm.py:353 +msgid "Source" +msgstr "Sursă" + +#: flatcamTools/ToolFilm.py:355 +msgid "" +"The punch hole source can be:\n" +"- Excellon -> an Excellon holes center will serve as reference.\n" +"- Pad Center -> will try to use the pads center as reference." +msgstr "" +"Sursa de perforare poate fi:\n" +"- Excellon -> centrul găurilor Excellon va servi ca referință.\n" +"- Centru Pad-> va încerca să utilizeze centrul de pad-uri ca referință." + +#: flatcamTools/ToolFilm.py:360 +msgid "Pad center" +msgstr "Centru Pad" + +#: flatcamTools/ToolFilm.py:365 +msgid "Excellon Obj" +msgstr "Obiect Excellon" + +#: flatcamTools/ToolFilm.py:367 +msgid "" +"Remove the geometry of Excellon from the Film to create the holes in pads." +msgstr "" +"Îndepărtați geometria Excellon din film pentru a crea găurile din pad-uri." + +#: flatcamTools/ToolFilm.py:381 +msgid "Punch Size" +msgstr "Mărimea Perforatii" + +#: flatcamTools/ToolFilm.py:382 +msgid "The value here will control how big is the punch hole in the pads." +msgstr "" +"Valoarea de aici va controla cât de mare este gaura de perforare în pad-uri." + +#: flatcamTools/ToolFilm.py:502 +msgid "Save Film" +msgstr "Salveaa filmul" + +#: flatcamTools/ToolFilm.py:504 +msgid "" +"Create a Film for the selected object, within\n" +"the specified box. Does not create a new \n" +" FlatCAM object, but directly save it in the\n" +"selected format." +msgstr "" +"Crează un film pt obiectul selectat, in cadrul obiectului\n" +"container selectat. Nu crează un obiect nou FlatCAM ci\n" +"salvează pe HDD un fişier in formatul selectat." + +#: flatcamTools/ToolFilm.py:664 +msgid "" +"Using the Pad center does not work on Geometry objects. Only a Gerber object " +"has pads." +msgstr "" +"Utilizarea centrului Pad nu funcționează pe obiecte de Geometrie. Doar un " +"obiect Gerber are pad-uri." + +#: flatcamTools/ToolFilm.py:674 +msgid "No FlatCAM object selected. Load an object for Film and retry." +msgstr "" +"Nici-un obiect FlaCAM nu este selectat. Incarcă un obiect pt Film și " +"încearcă din nou." + +#: flatcamTools/ToolFilm.py:681 +msgid "No FlatCAM object selected. Load an object for Box and retry." +msgstr "" +"Nici-un obiect FlatCAM nu este selectat. Încarcă un obiect container și " +"încearcă din nou." + +#: flatcamTools/ToolFilm.py:685 +msgid "No FlatCAM object selected." +msgstr "Nici-un obiect nu este selectat." + +#: flatcamTools/ToolFilm.py:696 +msgid "Generating Film ..." +msgstr "Se generează Film-ul ..." + +#: flatcamTools/ToolFilm.py:745 flatcamTools/ToolFilm.py:749 +msgid "Export positive film" +msgstr "Export film pozitiv" + +#: flatcamTools/ToolFilm.py:782 +msgid "" +"No Excellon object selected. Load an object for punching reference and retry." +msgstr "" +"Nici-un obiect Excellon nu este selectat. Incarcă un obiect ca referinta " +"pentru perforare și încearcă din nou." + +#: flatcamTools/ToolFilm.py:806 +msgid "" +" Could not generate punched hole film because the punch hole sizeis bigger " +"than some of the apertures in the Gerber object." +msgstr "" +" Nu a putut genera un film cu găuri perforate, deoarece dimensiunea găurii " +"de perforare este mai mare decât unele dintre aperturile din obiectul Gerber." + +#: flatcamTools/ToolFilm.py:818 +msgid "" +"Could not generate punched hole film because the punch hole sizeis bigger " +"than some of the apertures in the Gerber object." +msgstr "" +"Nu s-a putut genera un film cu găuri perforate, deoarece dimensiunea găurii " +"de perforare este mai mare decât unele dintre aperturile din obiectul Gerber." + +#: flatcamTools/ToolFilm.py:836 +msgid "" +"Could not generate punched hole film because the newly created object " +"geometry is the same as the one in the source object geometry..." +msgstr "" +"Nu s-a putut genera Film cu găuri perforate, deoarece geometria obiectului " +"nou creat este aceeași cu cea din geometria obiectului sursă ..." + +#: flatcamTools/ToolFilm.py:891 flatcamTools/ToolFilm.py:895 +msgid "Export negative film" +msgstr "Export film negativ" + +#: flatcamTools/ToolFilm.py:956 flatcamTools/ToolFilm.py:1139 +#: flatcamTools/ToolPanelize.py:430 +msgid "No object Box. Using instead" +msgstr "Nu exista container. Se foloseşte in schimb" + +#: flatcamTools/ToolFilm.py:1072 flatcamTools/ToolFilm.py:1252 +msgid "Film file exported to" +msgstr "Fișierul Film exportat în" + +#: flatcamTools/ToolFilm.py:1075 flatcamTools/ToolFilm.py:1255 +msgid "Generating Film ... Please wait." +msgstr "Filmul se generează ... Aşteaptă." + +#: flatcamTools/ToolImage.py:24 +msgid "Image as Object" +msgstr "Imagine ca Obiect" + +#: flatcamTools/ToolImage.py:33 +msgid "Image to PCB" +msgstr "Imagine -> PCB" + +#: flatcamTools/ToolImage.py:56 +msgid "" +"Specify the type of object to create from the image.\n" +"It can be of type: Gerber or Geometry." +msgstr "" +"Specifica tipul de obiect care se vrea a fi creat din imagine.\n" +"Tipul sau poate să fie ori Gerber ori Geometrie." + +#: flatcamTools/ToolImage.py:65 +msgid "DPI value" +msgstr "Val. DPI" + +#: flatcamTools/ToolImage.py:66 +msgid "Specify a DPI value for the image." +msgstr "Specifica o valoare DPI pt imagine." + +#: flatcamTools/ToolImage.py:72 +msgid "Level of detail" +msgstr "Nivel Detaliu" + +#: flatcamTools/ToolImage.py:81 +msgid "Image type" +msgstr "Tip imagine" + +#: flatcamTools/ToolImage.py:83 +msgid "" +"Choose a method for the image interpretation.\n" +"B/W means a black & white image. Color means a colored image." +msgstr "" +"Alege o metoda de interpretare a imaginii.\n" +"B/W = imagine alb-negru\n" +"Color = imagine in culori." + +#: flatcamTools/ToolImage.py:92 flatcamTools/ToolImage.py:107 +#: flatcamTools/ToolImage.py:120 flatcamTools/ToolImage.py:133 +msgid "Mask value" +msgstr "Val. masca" + +#: flatcamTools/ToolImage.py:94 +msgid "" +"Mask for monochrome image.\n" +"Takes values between [0 ... 255].\n" +"Decides the level of details to include\n" +"in the resulting geometry.\n" +"0 means no detail and 255 means everything \n" +"(which is totally black)." +msgstr "" +"Masca pt imaginile monocrome.\n" +"Ia valori in intervalul [0 ... 255]\n" +"Decide nivelul de detalii care să fie\n" +"incluse in obiectul rezultat.\n" +"0 = nici-un detaliu\n" +"255 = include totul (ceeace ce inseamna\n" +"negru complet)." + +#: flatcamTools/ToolImage.py:109 +msgid "" +"Mask for RED color.\n" +"Takes values between [0 ... 255].\n" +"Decides the level of details to include\n" +"in the resulting geometry." +msgstr "" +"Masca pt culoarea ROSU.\n" +"Ia valori in intervalul [0 ... 255].\n" +"Decide nivelul de detalii care să fie\n" +"incluse in obiectul rezultat." + +#: flatcamTools/ToolImage.py:122 +msgid "" +"Mask for GREEN color.\n" +"Takes values between [0 ... 255].\n" +"Decides the level of details to include\n" +"in the resulting geometry." +msgstr "" +"Masca pt culoarea VERDE.\n" +"Ia valori in intervalul [0 ... 255].\n" +"Decide nivelul de detalii care să fie\n" +"incluse in obiectul rezultat." + +#: flatcamTools/ToolImage.py:135 +msgid "" +"Mask for BLUE color.\n" +"Takes values between [0 ... 255].\n" +"Decides the level of details to include\n" +"in the resulting geometry." +msgstr "" +"Masca pt culoarea ALBASTRU.\n" +"Ia valori in intervalul [0 ... 255].\n" +"Decide nivelul de detalii care să fie\n" +"incluse in obiectul rezultat." + +#: flatcamTools/ToolImage.py:143 +msgid "Import image" +msgstr "Importa imagine" + +#: flatcamTools/ToolImage.py:145 +msgid "Open a image of raster type and then import it in FlatCAM." +msgstr "Deschide o imagine tip raster și importa aceasta in FlatCAM." + +#: flatcamTools/ToolImage.py:182 +msgid "Image Tool" +msgstr "Unealta Imagine" + +#: flatcamTools/ToolImage.py:234 flatcamTools/ToolImage.py:237 +msgid "Import IMAGE" +msgstr "Importa Imagine" + +#: flatcamTools/ToolImage.py:285 +msgid "Importing Image" +msgstr "Imaginea in curs de a fi importata" + +#: flatcamTools/ToolInvertGerber.py:74 +msgid "Gerber object that will be inverted." +msgstr "" +"Obiect Gerber care va fi inversat\n" +"(din pozitiv in negativ)." + +#: flatcamTools/ToolInvertGerber.py:83 +msgid "Parameters for this tool" +msgstr "Parametrii pt această unealtă" + +#: flatcamTools/ToolInvertGerber.py:123 +msgid "Invert Gerber" +msgstr "Inversează Gerber" + +#: flatcamTools/ToolInvertGerber.py:125 +msgid "" +"Will invert the Gerber object: areas that have copper\n" +"will be empty of copper and previous empty area will be\n" +"filled with copper." +msgstr "" +"Va inversa obiectul Gerber: ariile care contin cupru vor devein goale,\n" +"iar ariile care nu aveau cupru vor fi pline." + +#: flatcamTools/ToolInvertGerber.py:184 +msgid "Invert Tool" +msgstr "Unealta Inversie" + +#: flatcamTools/ToolMove.py:102 +msgid "MOVE: Click on the Start point ..." +msgstr "MUTARE: Click pe punctul de Start ..." + +#: flatcamTools/ToolMove.py:113 +msgid "Cancelled. No object(s) to move." +msgstr "Anulat. Nu sunt obiecte care să fie mutate." + +#: flatcamTools/ToolMove.py:140 +msgid "MOVE: Click on the Destination point ..." +msgstr "MUTARE: Click pe punctul Destinaţie..." + +#: flatcamTools/ToolMove.py:163 +msgid "Moving..." +msgstr "In mișcare ..." + +#: flatcamTools/ToolMove.py:166 +msgid "No object(s) selected." +msgstr "Nici-un obiect nu este selectat." + +#: flatcamTools/ToolMove.py:221 +msgid "Error when mouse left click." +msgstr "Eroare atunci când faceți clic pe butonul stânga al mouse-ului." + +#: flatcamTools/ToolNCC.py:42 +msgid "Non-Copper Clearing" +msgstr "Curățăre Non-Cu" + +#: flatcamTools/ToolNCC.py:88 +msgid "" +"Specify the type of object to be cleared of excess copper.\n" +"It can be of type: Gerber or Geometry.\n" +"What is selected here will dictate the kind\n" +"of objects that will populate the 'Object' combobox." +msgstr "" +"Precizați tipul de obiect care trebuie curățat de excesul de cupru.\n" +"Poate fi de tip: Gerber sau Geometry.\n" +"Ceea ce este selectat aici va dicta genul\n" +"de obiecte care vor popula combobox-ul „Obiect”." + +#: flatcamTools/ToolNCC.py:110 +msgid "Object to be cleared of excess copper." +msgstr "Obiect care trebuie curatat de excesul de cupru." + +#: flatcamTools/ToolNCC.py:122 +msgid "" +"Tools pool from which the algorithm\n" +"will pick the ones used for copper clearing." +msgstr "" +"Un număr de unelte din care algoritmul va alege\n" +"pe acelea care vor fi folosite pentru curățarea de Cu." + +#: flatcamTools/ToolNCC.py:138 +msgid "" +"This is the Tool Number.\n" +"Non copper clearing will start with the tool with the biggest \n" +"diameter, continuing until there are no more tools.\n" +"Only tools that create NCC clearing geometry will still be present\n" +"in the resulting geometry. This is because with some tools\n" +"this function will not be able to create painting geometry." +msgstr "" +"Numărul uneltei.\n" +"Curățarea de cupru va incepe cu unealta cu diametrul cel mai mare\n" +"continuand ulterior cu cele cu dia mai mic pana numai sunt unelte\n" +"sau s-a terminat procesul.\n" +"Doar uneltele care efectiv au creat geometrie vor fi prezente in obiectul\n" +"final. Aceasta deaorece unele unelte nu vor putea genera geometrie." + +#: flatcamTools/ToolNCC.py:146 +msgid "" +"Tool Diameter. It's value (in current FlatCAM units)\n" +"is the cut width into the material." +msgstr "" +"Diametrul uneltei. Valoarea să (in unitati curente FlatCAM)\n" +"reprezintă lăţimea tăieturii in material." + +#: flatcamTools/ToolNCC.py:150 +msgid "" +"The Tool Type (TT) can be:\n" +"- Circular with 1 ... 4 teeth -> it is informative only. Being circular,\n" +"the cut width in material is exactly the tool diameter.\n" +"- Ball -> informative only and make reference to the Ball type endmill.\n" +"- V-Shape -> it will disable Z-Cut parameter in the resulting geometry UI " +"form\n" +"and enable two additional UI form fields in the resulting geometry: V-Tip " +"Dia and\n" +"V-Tip Angle. Adjusting those two values will adjust the Z-Cut parameter " +"such\n" +"as the cut width into material will be equal with the value in the Tool " +"Diameter\n" +"column of this table.\n" +"Choosing the 'V-Shape' Tool Type automatically will select the Operation " +"Type\n" +"in the resulting geometry as Isolation." +msgstr "" +"Tipul de instrument (TT) poate fi:\n" +"- Circular cu 1 ... 4 dinți -> este doar informativ. Fiind circular,\n" +"lățimea tăiată în material este exact diametrul sculei.\n" +"- Ball -> numai informativ și face referire la freza de tip Ball.\n" +"- V-Shape -> va dezactiva parametrul Z-Cut în GUI\n" +"și v-a activa două câmpuri de GUII suplimentare în geometria rezultată: V-" +"Tip Dia și\n" +"V-Tip Angle. Ajustarea celor două valori va ajusta parametrul Z-Cut astfel\n" +"incat lățimea tăiată în material va fi egală cu valoarea din coloana " +"tabelului cu Diametrul sculei.\n" +"Alegerea tipului de instrument „Forma V” va selecta automat tipul de " +"operare\n" +"în geometria rezultată ca fiind Izolare." + +#: flatcamTools/ToolNCC.py:296 flatcamTools/ToolPaint.py:279 +msgid "" +"Add a new tool to the Tool Table\n" +"with the diameter specified above." +msgstr "" +"Adaugă o noua unelata in Tabela de Unelte,\n" +"cu diametrul specificat mai sus." + +#: flatcamTools/ToolNCC.py:318 flatcamTools/ToolPaint.py:301 +#: flatcamTools/ToolSolderPaste.py:130 +msgid "" +"Delete a selection of tools in the Tool Table\n" +"by first selecting a row(s) in the Tool Table." +msgstr "" +"Șterge o selecţie de unelte in Tabela de Unelte,\n" +"efectuata prin selectia liniilot din Tabela de Unelte." + +#: flatcamTools/ToolNCC.py:554 +msgid "" +"The type of FlatCAM object to be used as non copper clearing reference.\n" +"It can be Gerber, Excellon or Geometry." +msgstr "" +"Tipul de obiect FlatCAM care trebuie utilizat ca referință pt. curățarea de " +"non-cupru.\n" +"Poate fi Gerber, Excellon sau Geometry." + +#: flatcamTools/ToolNCC.py:597 flatcamTools/ToolPaint.py:537 +msgid "Generate Geometry" +msgstr "Genereza Geometrie" + +#: flatcamTools/ToolNCC.py:1425 flatcamTools/ToolPaint.py:1184 +#: flatcamTools/ToolSolderPaste.py:888 +msgid "Please enter a tool diameter to add, in Float format." +msgstr "Introduce diametrul unei unelte pt a fi adăugată, in format Real." + +#: flatcamTools/ToolNCC.py:1456 flatcamTools/ToolNCC.py:4013 +#: flatcamTools/ToolPaint.py:1208 flatcamTools/ToolPaint.py:3603 +#: flatcamTools/ToolSolderPaste.py:917 +msgid "Cancelled. Tool already in Tool Table." +msgstr "Anulat. Unealta există deja in Tabela de Unelte." + +#: flatcamTools/ToolNCC.py:1463 flatcamTools/ToolNCC.py:4030 +#: flatcamTools/ToolPaint.py:1213 flatcamTools/ToolPaint.py:3620 +msgid "New tool added to Tool Table." +msgstr "O noua unealtă a fost adăugată in Tabela de Unelte." + +#: flatcamTools/ToolNCC.py:1507 flatcamTools/ToolPaint.py:1257 +msgid "Tool from Tool Table was edited." +msgstr "O unealtă din Tabela de Unelte a fost editata." + +#: flatcamTools/ToolNCC.py:1519 flatcamTools/ToolPaint.py:1269 +#: flatcamTools/ToolSolderPaste.py:978 +msgid "Cancelled. New diameter value is already in the Tool Table." +msgstr "" +"Anulat. Noua valoare pt diametrul uneltei este deja in Tabela de Unelte." + +#: flatcamTools/ToolNCC.py:1571 flatcamTools/ToolPaint.py:1367 +msgid "Delete failed. Select a tool to delete." +msgstr "Ștergere eșuată. Selectează o unealtă pt ștergere." + +#: flatcamTools/ToolNCC.py:1577 flatcamTools/ToolPaint.py:1373 +msgid "Tool(s) deleted from Tool Table." +msgstr "Au fost șterse unelte din Tabela de Unelte." + +#: flatcamTools/ToolNCC.py:1619 +msgid "Wrong Tool Dia value format entered, use a number." +msgstr "Diametrul uneltei este in format gresit, foloseşte un număr Real." + +#: flatcamTools/ToolNCC.py:1628 flatcamTools/ToolPaint.py:1424 +msgid "No selected tools in Tool Table." +msgstr "Nu sunt unelte selectate in Tabela de Unelte." + +#: flatcamTools/ToolNCC.py:1704 flatcamTools/ToolPaint.py:1600 +msgid "Click the end point of the paint area." +msgstr "Faceți clic pe punctul final al zonei de pictat." + +#: flatcamTools/ToolNCC.py:1976 flatcamTools/ToolNCC.py:2964 +msgid "NCC Tool. Preparing non-copper polygons." +msgstr "Unealta NCC. Se pregătesc poligoanele non-cupru." + +#: flatcamTools/ToolNCC.py:2035 flatcamTools/ToolNCC.py:3092 +msgid "NCC Tool. Calculate 'empty' area." +msgstr "Unealta NCC. Calculează aria 'goală'." + +#: flatcamTools/ToolNCC.py:2054 flatcamTools/ToolNCC.py:2160 +#: flatcamTools/ToolNCC.py:2174 flatcamTools/ToolNCC.py:3105 +#: flatcamTools/ToolNCC.py:3210 flatcamTools/ToolNCC.py:3225 +#: flatcamTools/ToolNCC.py:3491 flatcamTools/ToolNCC.py:3592 +#: flatcamTools/ToolNCC.py:3607 +msgid "Buffering finished" +msgstr "Buferarea terminată" + +#: flatcamTools/ToolNCC.py:2062 flatcamTools/ToolNCC.py:2181 +#: flatcamTools/ToolNCC.py:3113 flatcamTools/ToolNCC.py:3232 +#: flatcamTools/ToolNCC.py:3498 flatcamTools/ToolNCC.py:3614 +msgid "Could not get the extent of the area to be non copper cleared." +msgstr "" +"Nu s-a putut obtine intinderea suprafaței care să fie curățată de cupru." + +#: flatcamTools/ToolNCC.py:2089 flatcamTools/ToolNCC.py:2167 +#: flatcamTools/ToolNCC.py:3140 flatcamTools/ToolNCC.py:3217 +#: flatcamTools/ToolNCC.py:3518 flatcamTools/ToolNCC.py:3599 +msgid "" +"Isolation geometry is broken. Margin is less than isolation tool diameter." +msgstr "" +"Geometria de Izolare este discontinuă.\n" +"Marginea este mai mic decat diametrul uneltei de izolare." + +#: flatcamTools/ToolNCC.py:2184 flatcamTools/ToolNCC.py:3236 +#: flatcamTools/ToolNCC.py:3617 +msgid "The selected object is not suitable for copper clearing." +msgstr "Obiectul selectat nu este potrivit pentru curățarea cuprului." + +#: flatcamTools/ToolNCC.py:2191 flatcamTools/ToolNCC.py:3243 +msgid "NCC Tool. Finished calculation of 'empty' area." +msgstr "Unealta NCC. S-a terminat calculul suprafetei 'goale'." + +#: flatcamTools/ToolNCC.py:2222 flatcamTools/ToolNCC.py:2224 +#: flatcamTools/ToolNCC.py:2916 flatcamTools/ToolNCC.py:2918 +msgid "Non-Copper clearing ..." +msgstr "Curățare Non-Cupru ..." + +#: flatcamTools/ToolNCC.py:2278 flatcamTools/ToolNCC.py:3060 +msgid "" +"NCC Tool. Finished non-copper polygons. Normal copper clearing task started." +msgstr "" +"Unelata NCC. S-a terminat pregătirea poligoanelor non-cupru. Taskul de " +"curatare normal de cupru a inceput." + +#: flatcamTools/ToolNCC.py:2312 flatcamTools/ToolNCC.py:2592 +msgid "NCC Tool failed creating bounding box." +msgstr "Unealta NCC a esuat in a crea forma inconjurătoare." + +#: flatcamTools/ToolNCC.py:2326 flatcamTools/ToolNCC.py:2609 +#: flatcamTools/ToolNCC.py:3256 flatcamTools/ToolNCC.py:3642 +msgid "NCC Tool clearing with tool diameter" +msgstr "Unealta NCC cu diametrul uneltei" + +#: flatcamTools/ToolNCC.py:2326 flatcamTools/ToolNCC.py:2609 +#: flatcamTools/ToolNCC.py:3256 flatcamTools/ToolNCC.py:3642 +msgid "started." +msgstr "a inceput." + +#: flatcamTools/ToolNCC.py:2518 flatcamTools/ToolNCC.py:3417 +msgid "" +"There is no NCC Geometry in the file.\n" +"Usually it means that the tool diameter is too big for the painted " +"geometry.\n" +"Change the painting parameters and try again." +msgstr "" +"Nu există nicio Geometrie NCC în fișier.\n" +"De obicei, înseamnă că diametrul uneltei este prea mare pentru geometria " +"pictată.\n" +"Schimbați parametrii Paint și încercați din nou." + +#: flatcamTools/ToolNCC.py:2527 flatcamTools/ToolNCC.py:3426 +msgid "NCC Tool clear all done." +msgstr "Unealta NCC curătare toate efectuată." + +#: flatcamTools/ToolNCC.py:2530 flatcamTools/ToolNCC.py:3429 +msgid "NCC Tool clear all done but the copper features isolation is broken for" +msgstr "" +"Unealta NCC curătare toate efectuată dar izolatia este intreruptă pentru" + +#: flatcamTools/ToolNCC.py:2532 flatcamTools/ToolNCC.py:2817 +#: flatcamTools/ToolNCC.py:3431 flatcamTools/ToolNCC.py:3814 +msgid "tools" +msgstr "unelte" + +#: flatcamTools/ToolNCC.py:2813 flatcamTools/ToolNCC.py:3810 +msgid "NCC Tool Rest Machining clear all done." +msgstr "Unealta NCC curătare cu prelucrare tip 'rest' efectuată." + +#: flatcamTools/ToolNCC.py:2816 flatcamTools/ToolNCC.py:3813 +msgid "" +"NCC Tool Rest Machining clear all done but the copper features isolation is " +"broken for" +msgstr "" +"Unealta NCC curătare toate cu prelucrare tip 'rest' efectuată dar izolatia " +"este intreruptă pentru" + +#: flatcamTools/ToolNCC.py:2928 +msgid "NCC Tool started. Reading parameters." +msgstr "Unealta NCC a pornit. Se citesc parametrii." + +#: flatcamTools/ToolNCC.py:3906 +msgid "" +"Try to use the Buffering Type = Full in Preferences -> Gerber General. " +"Reload the Gerber file after this change." +msgstr "" +"Incearcă să folosesti optiunea Tipul de buffering = Complet in Preferinte -> " +"Gerber General. Reincarcă fisierul Gerber după această schimbare." + +#: flatcamTools/ToolOptimal.py:79 +msgid "Number of decimals kept for found distances." +msgstr "Numărul de zecimale păstrate pentru distanțele găsite." + +#: flatcamTools/ToolOptimal.py:87 +msgid "Minimum distance" +msgstr "Distanta minima" + +#: flatcamTools/ToolOptimal.py:88 +msgid "Display minimum distance between copper features." +msgstr "Afișează distanța minimă între caracteristicile de cupru." + +#: flatcamTools/ToolOptimal.py:92 +msgid "Determined" +msgstr "Determinat" + +#: flatcamTools/ToolOptimal.py:106 +msgid "Occurring" +msgstr "Aparute" + +#: flatcamTools/ToolOptimal.py:107 +msgid "How many times this minimum is found." +msgstr "De câte ori este găsit acest minim." + +#: flatcamTools/ToolOptimal.py:113 +msgid "Minimum points coordinates" +msgstr "Coordonatele punctelor minime" + +#: flatcamTools/ToolOptimal.py:114 flatcamTools/ToolOptimal.py:120 +msgid "Coordinates for points where minimum distance was found." +msgstr "Coordonate pentru puncte în care a fost găsită distanța minimă." + +#: flatcamTools/ToolOptimal.py:133 flatcamTools/ToolOptimal.py:209 +msgid "Jump to selected position" +msgstr "Salt la poziția selectată" + +#: flatcamTools/ToolOptimal.py:135 flatcamTools/ToolOptimal.py:211 +msgid "" +"Select a position in the Locations text box and then\n" +"click this button." +msgstr "" +"Selectați o poziție în caseta de text Locații, apoi\n" +"faceți clic pe acest buton." + +#: flatcamTools/ToolOptimal.py:143 +msgid "Other distances" +msgstr "Alte distanțe" + +#: flatcamTools/ToolOptimal.py:144 +msgid "" +"Will display other distances in the Gerber file ordered from\n" +"the minimum to the maximum, not including the absolute minimum." +msgstr "" +"Va afișa alte distanțe din fișierul Gerber ordonate de la\n" +"minim până la maxim, neincluzând minimul absolut." + +#: flatcamTools/ToolOptimal.py:149 +msgid "Other distances points coordinates" +msgstr "Coordonatele altor puncte distanțe" + +#: flatcamTools/ToolOptimal.py:150 flatcamTools/ToolOptimal.py:164 +#: flatcamTools/ToolOptimal.py:171 flatcamTools/ToolOptimal.py:188 +#: flatcamTools/ToolOptimal.py:195 +msgid "" +"Other distances and the coordinates for points\n" +"where the distance was found." +msgstr "" +"Alte distanțe și coordonatele pentru puncte\n" +"unde a fost găsită distanța." + +#: flatcamTools/ToolOptimal.py:163 +msgid "Gerber distances" +msgstr "Distanțele Gerber" + +#: flatcamTools/ToolOptimal.py:187 +msgid "Points coordinates" +msgstr "Coordonatele punctelor" + +#: flatcamTools/ToolOptimal.py:219 +msgid "Find Minimum" +msgstr "Găsiți Minim" + +#: flatcamTools/ToolOptimal.py:221 +msgid "" +"Calculate the minimum distance between copper features,\n" +"this will allow the determination of the right tool to\n" +"use for isolation or copper clearing." +msgstr "" +"Calculați distanța minimă între caracteristicile de cupru,\n" +"acest lucru va permite determinarea uneltei potrivite\n" +"pentru izolare sau curatare de cupru." + +#: flatcamTools/ToolOptimal.py:346 +msgid "Only Gerber objects can be evaluated." +msgstr "Doar obiecte tip Gerber pot fi folosite." + +#: flatcamTools/ToolOptimal.py:352 +msgid "" +"Optimal Tool. Started to search for the minimum distance between copper " +"features." +msgstr "" +"Unealta Optim. A început să caute distanța minimă între caracteristicile de " +"cupru." + +#: flatcamTools/ToolOptimal.py:362 +msgid "Optimal Tool. Parsing geometry for aperture" +msgstr "Unealta Optim. Analiza geometriei pentru apertura" + +#: flatcamTools/ToolOptimal.py:373 +msgid "Optimal Tool. Creating a buffer for the object geometry." +msgstr "" +"Unealta Optim. Se creeaza o Geometrie la o distanta de geometria obiectului." + +#: flatcamTools/ToolOptimal.py:383 +msgid "" +"The Gerber object has one Polygon as geometry.\n" +"There are no distances between geometry elements to be found." +msgstr "" +"Obiectul Gerber are un poligon ca geometrie.\n" +"Nu există distanțe între elementele de geometrie care sa poata fi gasite." + +#: flatcamTools/ToolOptimal.py:388 +msgid "" +"Optimal Tool. Finding the distances between each two elements. Iterations" +msgstr "" +"Unealta Optim. Se caută distanțele dintre fiecare două elemente. Iterații" + +#: flatcamTools/ToolOptimal.py:423 +msgid "Optimal Tool. Finding the minimum distance." +msgstr "Unealta Optim. Se caută distanța minimă." + +#: flatcamTools/ToolOptimal.py:439 +msgid "Optimal Tool. Finished successfully." +msgstr "Unealta Optim. Procesul s-a terminat cu succes." + +#: flatcamTools/ToolPDF.py:157 flatcamTools/ToolPDF.py:161 +msgid "Open PDF" +msgstr "Încarcă PDF" + +#: flatcamTools/ToolPDF.py:164 +msgid "Open PDF cancelled" +msgstr "Deschidere PDF anulată" + +#: flatcamTools/ToolPDF.py:195 +msgid "Parsing PDF file ..." +msgstr "Se parsează fisierul PDF ..." + +#: flatcamTools/ToolPDF.py:278 flatcamTools/ToolPDF.py:353 +#, python-format +msgid "Rendering PDF layer #%d ..." +msgstr "Se generează layer-ul PDF #%d ..." + +#: flatcamTools/ToolPDF.py:283 flatcamTools/ToolPDF.py:358 +msgid "Open PDF file failed." +msgstr "Deschiderea fişierului PDF a eşuat." + +#: flatcamTools/ToolPDF.py:289 flatcamTools/ToolPDF.py:363 +msgid "Rendered" +msgstr "Randat" + +#: flatcamTools/ToolPaint.py:82 +msgid "" +"Specify the type of object to be painted.\n" +"It can be of type: Gerber or Geometry.\n" +"What is selected here will dictate the kind\n" +"of objects that will populate the 'Object' combobox." +msgstr "" +"Specificați tipul de obiect care urmează să fie pictat.\n" +"Poate fi de tip: Gerber sau Geometry.\n" +"Ceea ce este selectat aici va dicta genul\n" +"de obiecte care vor popula combobox-ul „Obiect”." + +#: flatcamTools/ToolPaint.py:104 +msgid "Object to be painted." +msgstr "Obiect care trebuie pictat." + +#: flatcamTools/ToolPaint.py:117 +msgid "" +"Tools pool from which the algorithm\n" +"will pick the ones used for painting." +msgstr "" +"O suma de unelte din care algoritmul va alege pe acelea\n" +"care vor fi folosite pentru 'pictare'." + +#: flatcamTools/ToolPaint.py:134 +msgid "" +"This is the Tool Number.\n" +"Painting will start with the tool with the biggest diameter,\n" +"continuing until there are no more tools.\n" +"Only tools that create painting geometry will still be present\n" +"in the resulting geometry. This is because with some tools\n" +"this function will not be able to create painting geometry." +msgstr "" +"Numărul uneltei.\n" +"'Pictarea' va incepe cu unealta cu diametrul cel mai mare\n" +"continuand ulterior cu cele cu dia mai mic pana numai sunt unelte\n" +"sau s-a terminat procesul.\n" +"Doar uneltele care efectiv au creat geometrie vor fi prezente in obiectul\n" +"final. Aceasta deaorece unele unelte nu vor putea genera geometrie." + +#: flatcamTools/ToolPaint.py:146 +msgid "" +"The Tool Type (TT) can be:\n" +"- Circular -> it is informative only. Being circular,\n" +"the cut width in material is exactly the tool diameter.\n" +"- Ball -> informative only and make reference to the Ball type endmill.\n" +"- V-Shape -> it will disable Z-Cut parameter in the resulting geometry UI " +"form\n" +"and enable two additional UI form fields in the resulting geometry: V-Tip " +"Dia and\n" +"V-Tip Angle. Adjusting those two values will adjust the Z-Cut parameter " +"such\n" +"as the cut width into material will be equal with the value in the Tool " +"Diameter\n" +"column of this table.\n" +"Choosing the 'V-Shape' Tool Type automatically will select the Operation " +"Type\n" +"in the resulting geometry as Isolation." +msgstr "" +"Tipul de instrument (TT) poate fi:\n" +"- Circular -> este doar informativ. Fiind circular,\n" +"lățimea tăiată în material este exact diametrul sculei.\n" +"- Ball -> numai informativ și face referire la freza de tip Ball.\n" +"- V-Shape -> va dezactiva parametrul Z-Cut în GUI\n" +"și v-a activa două câmpuri de GUII suplimentare în geometria rezultată: V-" +"Tip Dia și\n" +"V-Tip Angle. Ajustarea celor două valori va ajusta parametrul Z-Cut astfel\n" +"incat lățimea tăiată în material va fi egală cu valoarea din coloana " +"tabelului cu Diametrul sculei.\n" +"Alegerea tipului de instrument „Forma V” va selecta automat tipul de " +"operare\n" +"în geometria rezultată ca fiind Izolare." + +#: flatcamTools/ToolPaint.py:498 +msgid "" +"The type of FlatCAM object to be used as paint reference.\n" +"It can be Gerber, Excellon or Geometry." +msgstr "" +"Tipul de obiect FlatCAM care trebuie utilizat ca referință pt. pictare.\n" +"Poate fi Gerber, Excellon sau Geometry." + +#: flatcamTools/ToolPaint.py:539 +msgid "" +"- 'Area Selection' - left mouse click to start selection of the area to be " +"painted.\n" +"Keeping a modifier key pressed (CTRL or SHIFT) will allow to add multiple " +"areas.\n" +"- 'All Polygons' - the Paint will start after click.\n" +"- 'Reference Object' - will do non copper clearing within the area\n" +"specified by another object." +msgstr "" +"- „Selecție zonă” - faceți clic stânga cu mouse-ul pentru a începe selecția " +"zonei care va fi pictată.\n" +"Menținerea unei taste de modificare apăsată (CTRL sau SHIFT) va permite " +"adăugarea mai multor zone.\n" +"- „Toate Poligoanele” - Pictarea va începe după clic.\n" +"- „Obiect de referință” - va face o curățare fără cupru în zona specificată " +"de un alt obiect." + +#: flatcamTools/ToolPaint.py:1393 +#, python-format +msgid "Could not retrieve object: %s" +msgstr "Nu s-a putut incărca obiectul: %s" + +#: flatcamTools/ToolPaint.py:1403 +msgid "Can't do Paint on MultiGeo geometries" +msgstr "Nu se poate face 'pictare' pe geometrii MultiGeo" + +#: flatcamTools/ToolPaint.py:1433 +msgid "Click on a polygon to paint it." +msgstr "Faceți clic pe un poligon pentru a-l picta." + +#: flatcamTools/ToolPaint.py:1453 +msgid "Click the start point of the paint area." +msgstr "Faceți clic pe punctul de pornire al zonei de pictat." + +#: flatcamTools/ToolPaint.py:1518 +msgid "Click to add next polygon or right click to start painting." +msgstr "" +"Faceți clic pentru a adăuga următorul poligon sau faceți clic dreapta pentru " +"a începe Paint." + +#: flatcamTools/ToolPaint.py:1531 +msgid "Click to add/remove next polygon or right click to start painting." +msgstr "" +"Faceți clic pentru a adăuga / elimina următorul poligon sau faceți clic " +"dreapta pentru a începe Paint." + +#: flatcamTools/ToolPaint.py:2029 +msgid "Painting polygon with method: lines." +msgstr "Se pictează poligonul cu metoda: linii." + +#: flatcamTools/ToolPaint.py:2041 +msgid "Failed. Painting polygon with method: seed." +msgstr "Esuat. Se pictează poligonul cu metoda: sămantă." + +#: flatcamTools/ToolPaint.py:2052 +msgid "Failed. Painting polygon with method: standard." +msgstr "Esuat. Se picteaza poligonul cu metoda: standard." + +#: flatcamTools/ToolPaint.py:2068 +msgid "Geometry could not be painted completely" +msgstr "Geometria nu a fost posibil să fie 'pictată' complet" + +#: flatcamTools/ToolPaint.py:2097 flatcamTools/ToolPaint.py:2100 +#: flatcamTools/ToolPaint.py:2108 flatcamTools/ToolPaint.py:2411 +#: flatcamTools/ToolPaint.py:2414 flatcamTools/ToolPaint.py:2422 +#: flatcamTools/ToolPaint.py:2910 flatcamTools/ToolPaint.py:2913 +#: flatcamTools/ToolPaint.py:2919 +msgid "Paint Tool." +msgstr "Unealta Paint." + +#: flatcamTools/ToolPaint.py:2097 flatcamTools/ToolPaint.py:2100 +#: flatcamTools/ToolPaint.py:2108 +msgid "Normal painting polygon task started." +msgstr "Taskul de pictare normal a unui polygon a inceput." + +#: flatcamTools/ToolPaint.py:2098 flatcamTools/ToolPaint.py:2412 +#: flatcamTools/ToolPaint.py:2911 +msgid "Buffering geometry..." +msgstr "Crează o geometrie de tipul Bufer..." + +#: flatcamTools/ToolPaint.py:2120 flatcamTools/ToolPaint.py:2429 +#: flatcamTools/ToolPaint.py:2927 +msgid "No polygon found." +msgstr "Nu s-a gasit nici-un poligon." + +#: flatcamTools/ToolPaint.py:2150 +msgid "Painting polygon..." +msgstr "Se 'pictează' un poligon..." + +#: flatcamTools/ToolPaint.py:2160 flatcamTools/ToolPaint.py:2475 +#: flatcamTools/ToolPaint.py:2665 flatcamTools/ToolPaint.py:2973 +#: flatcamTools/ToolPaint.py:3152 +msgid "Painting with tool diameter = " +msgstr "Pictand cu o unealtă cu diametrul = " + +#: flatcamTools/ToolPaint.py:2161 flatcamTools/ToolPaint.py:2476 +#: flatcamTools/ToolPaint.py:2666 flatcamTools/ToolPaint.py:2974 +#: flatcamTools/ToolPaint.py:3153 +msgid "started" +msgstr "a inceput" + +#: flatcamTools/ToolPaint.py:2186 flatcamTools/ToolPaint.py:2502 +#: flatcamTools/ToolPaint.py:2692 flatcamTools/ToolPaint.py:3000 +#: flatcamTools/ToolPaint.py:3179 +msgid "Margin parameter too big. Tool is not used" +msgstr "Parametrul Margine este prea mare. Unealta nu este folosită" + +#: flatcamTools/ToolPaint.py:2244 flatcamTools/ToolPaint.py:2571 +#: flatcamTools/ToolPaint.py:2749 flatcamTools/ToolPaint.py:3063 +#: flatcamTools/ToolPaint.py:3241 +msgid "" +"Could not do Paint. Try a different combination of parameters. Or a " +"different strategy of paint" +msgstr "" +"Nu s-a putut face operatia de 'pictare'. Incearcă o combinaţie diferita de " +"parametri. Sau o strategie diferita de 'pictare'" + +#: flatcamTools/ToolPaint.py:2301 flatcamTools/ToolPaint.py:2637 +#: flatcamTools/ToolPaint.py:2806 flatcamTools/ToolPaint.py:3124 +#: flatcamTools/ToolPaint.py:3303 +msgid "" +"There is no Painting Geometry in the file.\n" +"Usually it means that the tool diameter is too big for the painted " +"geometry.\n" +"Change the painting parameters and try again." +msgstr "" +"Nu exista nici-o Geometrie rezultata din 'pictare' in acest fişier.\n" +"De obicei inseamna că diametrul uneltei este prea mare pentru elemetele " +"geometrice.\n" +"Schimbă parametrii de 'pictare' și încearcă din nou." + +#: flatcamTools/ToolPaint.py:2324 +msgid "Paint Single failed." +msgstr "Pictarea unui polygon a esuat." + +#: flatcamTools/ToolPaint.py:2330 +msgid "Paint Single Done." +msgstr "Pictarea unui polygon efectuată." + +#: flatcamTools/ToolPaint.py:2332 flatcamTools/ToolPaint.py:2842 +#: flatcamTools/ToolPaint.py:3339 +msgid "Polygon Paint started ..." +msgstr "Paint pt poligon a inceput ..." + +#: flatcamTools/ToolPaint.py:2411 flatcamTools/ToolPaint.py:2414 +#: flatcamTools/ToolPaint.py:2422 +msgid "Paint all polygons task started." +msgstr "Taskul de pictare pt toate poligoanele a inceput." + +#: flatcamTools/ToolPaint.py:2453 flatcamTools/ToolPaint.py:2951 +msgid "Painting polygons..." +msgstr "Se 'pictează' poligoane..." + +#: flatcamTools/ToolPaint.py:2646 +msgid "Paint All Done." +msgstr "Pictarea Tuturor poligoanelor efectuată." + +#: flatcamTools/ToolPaint.py:2815 flatcamTools/ToolPaint.py:3312 +msgid "Paint All with Rest-Machining done." +msgstr "'Paint' pentru toate poligoanele cu strategia Rest a fost efectuată." + +#: flatcamTools/ToolPaint.py:2834 +msgid "Paint All failed." +msgstr "Pictarea pt toate poligoanele a easuat." + +#: flatcamTools/ToolPaint.py:2840 +msgid "Paint Poly All Done." +msgstr "Pictarea pt toate poligoanele efectuată." + +#: flatcamTools/ToolPaint.py:2910 flatcamTools/ToolPaint.py:2913 +#: flatcamTools/ToolPaint.py:2919 +msgid "Painting area task started." +msgstr "Taskul de pictare a unei arii a inceput." + +#: flatcamTools/ToolPaint.py:3133 +msgid "Paint Area Done." +msgstr "Paint pt o zona efectuata." + +#: flatcamTools/ToolPaint.py:3331 +msgid "Paint Area failed." +msgstr "Pictarea unei Zone a esuat." + +#: flatcamTools/ToolPaint.py:3337 +msgid "Paint Poly Area Done." +msgstr "Paint pt o Zonă efectuat." + +#: flatcamTools/ToolPanelize.py:34 +msgid "Panelize PCB" +msgstr "Panelizează PCB" + +#: flatcamTools/ToolPanelize.py:56 +msgid "" +"Specify the type of object to be panelized\n" +"It can be of type: Gerber, Excellon or Geometry.\n" +"The selection here decide the type of objects that will be\n" +"in the Object combobox." +msgstr "" +"Specifica tipul de obiect care va fi panelizat.\n" +"Poate fi de tipul: Gerber, Excellon sau Geometrie.\n" +"Selectia facuta aici va dicta tipul de obiecte care se vor\n" +"regasi in combobox-ul >Obiect<." + +#: flatcamTools/ToolPanelize.py:89 +msgid "" +"Object to be panelized. This means that it will\n" +"be duplicated in an array of rows and columns." +msgstr "" +"Obiectul care va fi panelizat.\n" +"Acesta va fi multiplicat intr-o arie\n" +"de linii și coloane." + +#: flatcamTools/ToolPanelize.py:102 +msgid "Penelization Reference" +msgstr "Referintă panelizare" + +#: flatcamTools/ToolPanelize.py:104 +msgid "" +"Choose the reference for panelization:\n" +"- Object = the bounding box of a different object\n" +"- Bounding Box = the bounding box of the object to be panelized\n" +"\n" +"The reference is useful when doing panelization for more than one\n" +"object. The spacings (really offsets) will be applied in reference\n" +"to this reference object therefore maintaining the panelized\n" +"objects in sync." +msgstr "" +"Alege referinta pt panelizare:\n" +"- Obiect = forma inconjurătoare a unui alt obiect\n" +"- Forma inconjurătoare = forma inconjurătoare a obiectului care tb " +"panelizat\n" +"\n" +"Referinta este utila cand se face panelizarea pt mai mult de un obiect. " +"Spatierile\n" +"(mai degraba ofsetări) vor fi aplicate avand ca referintă acest obiect de " +"referintă,\n" +"prin urmare mentinand obiectele paenlizate in sincronizare unul cu altul." + +#: flatcamTools/ToolPanelize.py:125 +msgid "Box Type" +msgstr "Tip container" + +#: flatcamTools/ToolPanelize.py:127 +msgid "" +"Specify the type of object to be used as an container for\n" +"panelization. It can be: Gerber or Geometry type.\n" +"The selection here decide the type of objects that will be\n" +"in the Box Object combobox." +msgstr "" +"Tipul de obiect care va fi folosit ca și container pt panelizare.\n" +"Poate fi de tiul: Gerber sau Geometrie.\n" +"Selectia facuta aici va dicta tipul de obiecte care se vor\n" +"regasi in combobox-ul >Container<." + +#: flatcamTools/ToolPanelize.py:141 +msgid "" +"The actual object that is used as container for the\n" +" selected object that is to be panelized." +msgstr "" +"Obiectul care este folosit ca și container \n" +"pt obiectul care va fi panelizat." + +#: flatcamTools/ToolPanelize.py:147 +msgid "Panel Data" +msgstr "Date panel" + +#: flatcamTools/ToolPanelize.py:149 +msgid "" +"This informations will shape the resulting panel.\n" +"The number of rows and columns will set how many\n" +"duplicates of the original geometry will be generated.\n" +"\n" +"The spacings will set the distance between any two\n" +"elements of the panel array." +msgstr "" +"Aceste informatii vor determina forma panelului rezultant.\n" +"Numărul de linii si de coloane va determina cat de multe \n" +"copii ale geometriei obiectului original vor fi create.\n" +"\n" +"Spatierile sunt de fapt distante intre oricare două elemente ale \n" +"ariei panelului." + +#: flatcamTools/ToolPanelize.py:208 +msgid "" +"Choose the type of object for the panel object:\n" +"- Geometry\n" +"- Gerber" +msgstr "" +"Alege tipul de obiect care va fi creat pt obiectul panelizat:\n" +"- Geometrie\n" +"-Gerber" + +#: flatcamTools/ToolPanelize.py:216 +msgid "Constrain panel within" +msgstr "Mentine panelul in" + +#: flatcamTools/ToolPanelize.py:252 +msgid "Panelize Object" +msgstr "Panelizează obiectul" + +#: flatcamTools/ToolPanelize.py:254 flatcamTools/ToolRulesCheck.py:501 +msgid "" +"Panelize the specified object around the specified box.\n" +"In other words it creates multiple copies of the source object,\n" +"arranged in a 2D array of rows and columns." +msgstr "" +"Se panelizează obiectul conform containerului selectat.\n" +"Cu alte cuvinte se crează copii multiple ale obiectului sursa,\n" +"aranjate intr-o arie 2D de linii și coloane." + +#: flatcamTools/ToolPanelize.py:322 +msgid "Panel. Tool" +msgstr "Unealta Panel" + +#: flatcamTools/ToolPanelize.py:457 +msgid "Columns or Rows are zero value. Change them to a positive integer." +msgstr "" +"Val. coloane sau linii este zero. Schimbă aceasta val. intr-un număr pozitiv " +"intreg." + +#: flatcamTools/ToolPanelize.py:494 +msgid "Generating panel ... " +msgstr "Se generează Panel-ul… " + +#: flatcamTools/ToolPanelize.py:777 +msgid "Generating panel ... Adding the Gerber code." +msgstr "Generarea panelului ... Adăugarea codului Gerber." + +#: flatcamTools/ToolPanelize.py:785 +msgid "Generating panel... Spawning copies" +msgstr "Generarea panelului ... Se fac copii" + +#: flatcamTools/ToolPanelize.py:792 +msgid "Panel done..." +msgstr "Panel executat ..." + +#: flatcamTools/ToolPanelize.py:795 +#, python-brace-format +msgid "" +"{text} Too big for the constrain area. Final panel has {col} columns and " +"{row} rows" +msgstr "" +"{text} Prea mare pt aria desemnată. Panelul final are {col} coloane si {row} " +"linii" + +#: flatcamTools/ToolPanelize.py:804 +msgid "Panel created successfully." +msgstr "Panel creat cu succes." + +#: flatcamTools/ToolPcbWizard.py:31 +msgid "PcbWizard Import Tool" +msgstr "Unealta import PcbWizard" + +#: flatcamTools/ToolPcbWizard.py:40 +msgid "Import 2-file Excellon" +msgstr "Importa un Excellon bi-fisier" + +#: flatcamTools/ToolPcbWizard.py:51 +msgid "Load files" +msgstr "Încărcați fișierele" + +#: flatcamTools/ToolPcbWizard.py:57 +msgid "Excellon file" +msgstr "Fisier Excellon" + +#: flatcamTools/ToolPcbWizard.py:59 +msgid "" +"Load the Excellon file.\n" +"Usually it has a .DRL extension" +msgstr "" +"Incarcă fisierul Excellon.\n" +"De obicei are extensia .DRL" + +#: flatcamTools/ToolPcbWizard.py:65 +msgid "INF file" +msgstr "Fisierul INF" + +#: flatcamTools/ToolPcbWizard.py:67 +msgid "Load the INF file." +msgstr "Incarca fisierul INF." + +#: flatcamTools/ToolPcbWizard.py:79 +msgid "Tool Number" +msgstr "Număr unealtă" + +#: flatcamTools/ToolPcbWizard.py:81 +msgid "Tool diameter in file units." +msgstr "Dimaetrul uneltei in unitătile fisierului." + +#: flatcamTools/ToolPcbWizard.py:87 +msgid "Excellon format" +msgstr "Format Excellon" + +#: flatcamTools/ToolPcbWizard.py:95 +msgid "Int. digits" +msgstr "Partea intreagă" + +#: flatcamTools/ToolPcbWizard.py:97 +msgid "The number of digits for the integral part of the coordinates." +msgstr "" +"Acest număr reprezinta numărul de digiti din partea\n" +"intreagă a coordonatelor." + +#: flatcamTools/ToolPcbWizard.py:104 +msgid "Frac. digits" +msgstr "Partea zecimală" + +#: flatcamTools/ToolPcbWizard.py:106 +msgid "The number of digits for the fractional part of the coordinates." +msgstr "" +"Acest număr reprezinta numărul de digiti din partea\n" +"zecimala a coordonatelor." + +#: flatcamTools/ToolPcbWizard.py:113 +msgid "No Suppression" +msgstr "Fără supresie" + +#: flatcamTools/ToolPcbWizard.py:114 +msgid "Zeros supp." +msgstr "Supresie Zero" + +#: flatcamTools/ToolPcbWizard.py:116 +msgid "" +"The type of zeros suppression used.\n" +"Can be of type:\n" +"- LZ = leading zeros are kept\n" +"- TZ = trailing zeros are kept\n" +"- No Suppression = no zero suppression" +msgstr "" +"Tipul de supresie de zerouri care\n" +"este folosit.\n" +"Poate fi:\n" +"- LZ = zerourile din fată sunt păstrate\n" +"- TZ = zerourile de la coadă sunt păstrate\n" +"- Fără Supresie = nu se face supresie de zerouri" + +#: flatcamTools/ToolPcbWizard.py:129 +msgid "" +"The type of units that the coordinates and tool\n" +"diameters are using. Can be INCH or MM." +msgstr "" +"Tipul de unităti folosite pt coordonate si\n" +"pentru diametrul uneltelor. Poate fi INCH sau MM." + +#: flatcamTools/ToolPcbWizard.py:136 +msgid "Import Excellon" +msgstr "Importă Excellon" + +#: flatcamTools/ToolPcbWizard.py:138 +msgid "" +"Import in FlatCAM an Excellon file\n" +"that store it's information's in 2 files.\n" +"One usually has .DRL extension while\n" +"the other has .INF extension." +msgstr "" +"Importă in FlatCAM un fisier Excellon\n" +"care isi stochează informatia in 2 fisiere.\n" +"Unul are de obicei extensia .DRL in timp\n" +"ce celălalt are extensia .INF." + +#: flatcamTools/ToolPcbWizard.py:197 +msgid "PCBWizard Tool" +msgstr "Unealta PCBWizard" + +#: flatcamTools/ToolPcbWizard.py:291 flatcamTools/ToolPcbWizard.py:295 +msgid "Load PcbWizard Excellon file" +msgstr "Incarcă un fisier Excellon tip PCBWizard" + +#: flatcamTools/ToolPcbWizard.py:314 flatcamTools/ToolPcbWizard.py:318 +msgid "Load PcbWizard INF file" +msgstr "Incarcă un fisier INF tip PCBWizard" + +#: flatcamTools/ToolPcbWizard.py:366 +msgid "" +"The INF file does not contain the tool table.\n" +"Try to open the Excellon file from File -> Open -> Excellon\n" +"and edit the drill diameters manually." +msgstr "" +"Fisierul INF nu contine tabela de unelte.\n" +"Incearcă să deschizi fisierul Excellon din Fisier -> Deschide -> \n" +"Excellon si să editezi manual diametrele uneltelor." + +#: flatcamTools/ToolPcbWizard.py:387 +msgid "PcbWizard .INF file loaded." +msgstr "Fisierul .INF tip PCBWizard a fost incărcat." + +#: flatcamTools/ToolPcbWizard.py:392 +msgid "Main PcbWizard Excellon file loaded." +msgstr "Fişierul Excellon tip PCBWizard a fost incărcat." + +#: flatcamTools/ToolPcbWizard.py:427 +msgid "Cannot parse file" +msgstr "Nu se poate parsa fişierul" + +#: flatcamTools/ToolPcbWizard.py:450 +msgid "Importing Excellon." +msgstr "Excellon in curs de import." + +#: flatcamTools/ToolPcbWizard.py:457 +msgid "Import Excellon file failed." +msgstr "Fişierul Excellon nu a fost posibil să fie importat." + +#: flatcamTools/ToolPcbWizard.py:464 +msgid "Imported" +msgstr "Importat" + +#: flatcamTools/ToolPcbWizard.py:467 +msgid "Excellon merging is in progress. Please wait..." +msgstr "Fuziunea fisiere Excellon este in curs. Vă rugăm aşteptați ..." + +#: flatcamTools/ToolPcbWizard.py:469 +msgid "The imported Excellon file is empty." +msgstr "Fişierul Excellon importat este gol." + +#: flatcamTools/ToolProperties.py:131 +msgid "Object Properties are displayed." +msgstr "Proprietatile obiectului sunt afisate in Tab-ul Unealta." + +#: flatcamTools/ToolProperties.py:136 +msgid "Properties Tool" +msgstr "Unealta Proprietati" + +#: flatcamTools/ToolProperties.py:150 +msgid "TYPE" +msgstr "TIP" + +#: flatcamTools/ToolProperties.py:151 +msgid "NAME" +msgstr "NUME" + +#: flatcamTools/ToolProperties.py:153 +msgid "Dimensions" +msgstr "Dimensiuni" + +#: flatcamTools/ToolProperties.py:181 +msgid "Geo Type" +msgstr "Tip Geo" + +#: flatcamTools/ToolProperties.py:184 +msgid "Single-Geo" +msgstr "Geo-Unică" + +#: flatcamTools/ToolProperties.py:185 +msgid "Multi-Geo" +msgstr "Geo-Multi" + +#: flatcamTools/ToolProperties.py:196 +msgid "Calculating dimensions ... Please wait." +msgstr "Se calculează dimensiunile ... Aşteaptă." + +#: flatcamTools/ToolProperties.py:339 flatcamTools/ToolProperties.py:343 +#: flatcamTools/ToolProperties.py:345 +msgid "Inch" +msgstr "Inch" + +#: flatcamTools/ToolProperties.py:339 flatcamTools/ToolProperties.py:344 +#: flatcamTools/ToolProperties.py:346 +msgid "Metric" +msgstr "Metric" + +#: flatcamTools/ToolProperties.py:421 flatcamTools/ToolProperties.py:486 +msgid "Drills number" +msgstr "Numărul de găuri" + +#: flatcamTools/ToolProperties.py:422 flatcamTools/ToolProperties.py:488 +msgid "Slots number" +msgstr "Numărul de sloturi" + +#: flatcamTools/ToolProperties.py:424 +msgid "Drills total number:" +msgstr "Număr total de gauri:" + +#: flatcamTools/ToolProperties.py:425 +msgid "Slots total number:" +msgstr "Număr total de sloturi:" + +#: flatcamTools/ToolProperties.py:452 flatcamTools/ToolProperties.py:455 +#: flatcamTools/ToolProperties.py:458 flatcamTools/ToolProperties.py:483 +msgid "Present" +msgstr "Prezent" + +#: flatcamTools/ToolProperties.py:453 flatcamTools/ToolProperties.py:484 +msgid "Solid Geometry" +msgstr "Geometrie Solidă" + +#: flatcamTools/ToolProperties.py:456 +msgid "GCode Text" +msgstr "Text GCode" + +#: flatcamTools/ToolProperties.py:459 +msgid "GCode Geometry" +msgstr "Geometrie GCode" + +#: flatcamTools/ToolProperties.py:462 +msgid "Data" +msgstr "Date" + +#: flatcamTools/ToolProperties.py:495 +msgid "Depth of Cut" +msgstr "Adâncimea de Tăiere" + +#: flatcamTools/ToolProperties.py:507 +msgid "Clearance Height" +msgstr "Înălțime Sigură" + +#: flatcamTools/ToolProperties.py:539 +msgid "Routing time" +msgstr "Timpul de rutare" + +#: flatcamTools/ToolProperties.py:546 +msgid "Travelled distance" +msgstr "Distanța parcursă" + +#: flatcamTools/ToolProperties.py:564 +msgid "Width" +msgstr "Lătime" + +#: flatcamTools/ToolProperties.py:570 flatcamTools/ToolProperties.py:578 +msgid "Box Area" +msgstr "Arie pătratică" + +#: flatcamTools/ToolProperties.py:573 flatcamTools/ToolProperties.py:581 +msgid "Convex_Hull Area" +msgstr "Arie convexă" + +#: flatcamTools/ToolProperties.py:588 flatcamTools/ToolProperties.py:591 +msgid "Copper Area" +msgstr "Aria de Cupru" + +#: flatcamTools/ToolPunchGerber.py:30 flatcamTools/ToolPunchGerber.py:323 +msgid "Punch Gerber" +msgstr "Punctează Gerber" + +#: flatcamTools/ToolPunchGerber.py:65 +msgid "Gerber into which to punch holes" +msgstr "Obiect Gerber pentru Punctare găuri" + +#: flatcamTools/ToolPunchGerber.py:85 +msgid "ALL" +msgstr "TOATE" + +#: flatcamTools/ToolPunchGerber.py:166 +msgid "" +"Remove the geometry of Excellon from the Gerber to create the holes in pads." +msgstr "" +"Îndepărtați geometria Excellon din obiectul Gerber pentru a crea găurile din " +"pad-uri." + +#: flatcamTools/ToolPunchGerber.py:325 +msgid "" +"Create a Gerber object from the selected object, within\n" +"the specified box." +msgstr "" +"Creează un obiect Gerber din obiectul selectat, in cadrul\n" +"formei 'cutie' specificate." + +#: flatcamTools/ToolPunchGerber.py:425 +msgid "Punch Tool" +msgstr "Unealta Punctare" + +#: flatcamTools/ToolPunchGerber.py:599 +msgid "The value of the fixed diameter is 0.0. Aborting." +msgstr "Valoarea pentru diametrul fix ste 0.0. Renuntăm." + +#: flatcamTools/ToolPunchGerber.py:607 flatcamTools/ToolPunchGerber.py:619 +msgid "" +"Could not generate punched hole Gerber because the punch hole size is bigger " +"than some of the apertures in the Gerber object." +msgstr "" +"Nu s-a putut genera un obiect Gerber cu găuri punctate, deoarece dimensiunea " +"găurii de perforare este mai mare decât unele dintre aperturile din obiectul " +"Gerber." + +#: flatcamTools/ToolPunchGerber.py:656 +msgid "" +"Could not generate punched hole Gerber because the newly created object " +"geometry is the same as the one in the source object geometry..." +msgstr "" +"Nu s-a putut genera un obiect cu găuri puctate, deoarece geometria " +"obiectului nou creat este aceeași cu cea din geometria obiectului sursă ..." + +#: flatcamTools/ToolQRCode.py:80 +msgid "Gerber Object to which the QRCode will be added." +msgstr "Obiect Gerber la care se va adăuga codul QR." + +#: flatcamTools/ToolQRCode.py:93 +msgid "QRCode Parameters" +msgstr "Parametrii QRCode" + +#: flatcamTools/ToolQRCode.py:95 +msgid "The parameters used to shape the QRCode." +msgstr "Parametrii utilizați pentru modelarea codului QR." + +#: flatcamTools/ToolQRCode.py:207 +msgid "Export QRCode" +msgstr "Exportă Codul QR" + +#: flatcamTools/ToolQRCode.py:209 +msgid "" +"Show a set of controls allowing to export the QRCode\n" +"to a SVG file or an PNG file." +msgstr "" +"Afișați un set de controale care permit exportul codului QR\n" +"într-un fișier SVG sau într-un fișier PNG." + +#: flatcamTools/ToolQRCode.py:248 +msgid "Transparent back color" +msgstr "Culoare de fundal transparentă" + +#: flatcamTools/ToolQRCode.py:273 +msgid "Export QRCode SVG" +msgstr "Exporta QRCode SVG" + +#: flatcamTools/ToolQRCode.py:275 +msgid "Export a SVG file with the QRCode content." +msgstr "Exportați un fișier SVG cu conținutul QRCode." + +#: flatcamTools/ToolQRCode.py:286 +msgid "Export QRCode PNG" +msgstr "Exportă QRCode PNG" + +#: flatcamTools/ToolQRCode.py:288 +msgid "Export a PNG image file with the QRCode content." +msgstr "Exportați un fișier imagine PNG cu conținutul QRCode." + +#: flatcamTools/ToolQRCode.py:299 +msgid "Insert QRCode" +msgstr "Inserați codul QR" + +#: flatcamTools/ToolQRCode.py:301 +msgid "Create the QRCode object." +msgstr "Creați obiectul QRCode." + +#: flatcamTools/ToolQRCode.py:415 flatcamTools/ToolQRCode.py:750 +#: flatcamTools/ToolQRCode.py:799 +msgid "Cancelled. There is no QRCode Data in the text box." +msgstr "Anulat. Nu există date QRCode în caseta de text." + +#: flatcamTools/ToolQRCode.py:434 +msgid "Generating QRCode geometry" +msgstr "Generarea geometriei QRCode" + +#: flatcamTools/ToolQRCode.py:474 +msgid "Click on the Destination point ..." +msgstr "Click pe punctul de Destinaţie ..." + +#: flatcamTools/ToolQRCode.py:589 +msgid "QRCode Tool done." +msgstr "Unealta QRCode efectuata." + +#: flatcamTools/ToolQRCode.py:782 flatcamTools/ToolQRCode.py:786 +msgid "Export PNG" +msgstr "Exporta PNG" + +#: flatcamTools/ToolRulesCheck.py:33 +msgid "Check Rules" +msgstr "Verificați regulile" + +#: flatcamTools/ToolRulesCheck.py:61 +msgid "Gerber Files" +msgstr "Fișiere Gerber" + +#: flatcamTools/ToolRulesCheck.py:63 +msgid "Gerber objects for which to check rules." +msgstr "Obiecte Gerber pentru care trebuie verificate regulile." + +#: flatcamTools/ToolRulesCheck.py:78 +msgid "Top" +msgstr "Top" + +#: flatcamTools/ToolRulesCheck.py:80 +msgid "The Top Gerber Copper object for which rules are checked." +msgstr "Obiectul Top Gerber cupru pentru care sunt verificate regulile." + +#: flatcamTools/ToolRulesCheck.py:96 +msgid "Bottom" +msgstr "Bottom" + +#: flatcamTools/ToolRulesCheck.py:98 +msgid "The Bottom Gerber Copper object for which rules are checked." +msgstr "Obiectul Bottom Gerber cupru pentru care sunt verificate regulile." + +#: flatcamTools/ToolRulesCheck.py:114 +msgid "SM Top" +msgstr "SM Top" + +#: flatcamTools/ToolRulesCheck.py:116 +msgid "The Top Gerber Solder Mask object for which rules are checked." +msgstr "" +"Obiectul Top (superior) Gerber Solder Mask pentru care sunt verificate " +"regulile." + +#: flatcamTools/ToolRulesCheck.py:132 +msgid "SM Bottom" +msgstr "SM Bottom" + +#: flatcamTools/ToolRulesCheck.py:134 +msgid "The Bottom Gerber Solder Mask object for which rules are checked." +msgstr "" +"Obiectul Bottom (inferior) Gerber Solder Mask pentru care sunt verificate " +"regulile." + +#: flatcamTools/ToolRulesCheck.py:150 +msgid "Silk Top" +msgstr "Silk Top" + +#: flatcamTools/ToolRulesCheck.py:152 +msgid "The Top Gerber Silkscreen object for which rules are checked." +msgstr "Obiectul Top Gerber Silkscreen pentru care sunt verificate regulile." + +#: flatcamTools/ToolRulesCheck.py:168 +msgid "Silk Bottom" +msgstr "Silk Bottom" + +#: flatcamTools/ToolRulesCheck.py:170 +msgid "The Bottom Gerber Silkscreen object for which rules are checked." +msgstr "" +"Obiectul Bottom Gerber Silkscreen pentru care sunt verificate regulile." + +#: flatcamTools/ToolRulesCheck.py:188 +msgid "The Gerber Outline (Cutout) object for which rules are checked." +msgstr "" +"Obiectul Gerber Outline (decupaj) pentru care sunt verificate regulile." + +#: flatcamTools/ToolRulesCheck.py:199 +msgid "Excellon Objects" +msgstr "Obiecte Excellon" + +#: flatcamTools/ToolRulesCheck.py:201 +msgid "Excellon objects for which to check rules." +msgstr "Obiecte Excellon pentru care trebuie verificate regulile." + +#: flatcamTools/ToolRulesCheck.py:213 +msgid "Excellon 1" +msgstr "Excellon 1" + +#: flatcamTools/ToolRulesCheck.py:215 +msgid "" +"Excellon object for which to check rules.\n" +"Holds the plated holes or a general Excellon file content." +msgstr "" +"Obiect Excellon pentru care trebuie verificate regulile.\n" +"Contine găurile placate sau un conținut general Excellon." + +#: flatcamTools/ToolRulesCheck.py:232 +msgid "Excellon 2" +msgstr "Excellon 2" + +#: flatcamTools/ToolRulesCheck.py:234 +msgid "" +"Excellon object for which to check rules.\n" +"Holds the non-plated holes." +msgstr "" +"Obiect Excellon pentru care trebuie verificate regulile.\n" +"Contine găurile ne-placate." + +#: flatcamTools/ToolRulesCheck.py:247 +msgid "All Rules" +msgstr "Totate Regulile" + +#: flatcamTools/ToolRulesCheck.py:249 +msgid "This check/uncheck all the rules below." +msgstr "Aceasta bifează/debifează toate regulile de mai jos." + +#: flatcamTools/ToolRulesCheck.py:499 +msgid "Run Rules Check" +msgstr "Executați Verificarea regulilor" + +#: flatcamTools/ToolRulesCheck.py:1158 flatcamTools/ToolRulesCheck.py:1218 +#: flatcamTools/ToolRulesCheck.py:1255 flatcamTools/ToolRulesCheck.py:1327 +#: flatcamTools/ToolRulesCheck.py:1381 flatcamTools/ToolRulesCheck.py:1419 +#: flatcamTools/ToolRulesCheck.py:1484 +msgid "Value is not valid." +msgstr "Valoarea nu este valabilă." + +#: flatcamTools/ToolRulesCheck.py:1172 +msgid "TOP -> Copper to Copper clearance" +msgstr "TOP -> Distanta de la Cupru la Cupru" + +#: flatcamTools/ToolRulesCheck.py:1183 +msgid "BOTTOM -> Copper to Copper clearance" +msgstr "BOTTOM -> Distanta de la Cupru la Cupru" + +#: flatcamTools/ToolRulesCheck.py:1188 flatcamTools/ToolRulesCheck.py:1282 +#: flatcamTools/ToolRulesCheck.py:1446 +msgid "" +"At least one Gerber object has to be selected for this rule but none is " +"selected." +msgstr "" +"Pentru această regulă trebuie selectat cel puțin un obiect Gerber, dar " +"niciunul nu este selectat." + +#: flatcamTools/ToolRulesCheck.py:1224 +msgid "" +"One of the copper Gerber objects or the Outline Gerber object is not valid." +msgstr "" +"Unul dintre obiectele Gerber din cupru sau obiectul Gerber contur nu este " +"valid." + +#: flatcamTools/ToolRulesCheck.py:1237 flatcamTools/ToolRulesCheck.py:1401 +msgid "" +"Outline Gerber object presence is mandatory for this rule but it is not " +"selected." +msgstr "" +"Prezenta obiectului Gerber contur este obligatorie pentru această regulă, " +"dar nu este selectată." + +#: flatcamTools/ToolRulesCheck.py:1254 flatcamTools/ToolRulesCheck.py:1281 +msgid "Silk to Silk clearance" +msgstr "Distanta Silk la Silk" + +#: flatcamTools/ToolRulesCheck.py:1267 +msgid "TOP -> Silk to Silk clearance" +msgstr "TOP -> Distanta Silk la Silk" + +#: flatcamTools/ToolRulesCheck.py:1277 +msgid "BOTTOM -> Silk to Silk clearance" +msgstr "BOTTOM -> Distanta Silk la Silk" + +#: flatcamTools/ToolRulesCheck.py:1333 +msgid "One or more of the Gerber objects is not valid." +msgstr "Unul sau mai multe dintre obiectele Gerber nu sunt valabile." + +#: flatcamTools/ToolRulesCheck.py:1341 +msgid "TOP -> Silk to Solder Mask Clearance" +msgstr "TOP -> Distanta Silk la Solder mask" + +#: flatcamTools/ToolRulesCheck.py:1347 +msgid "BOTTOM -> Silk to Solder Mask Clearance" +msgstr "BOTTOM -> Distanta Silk la Solder mask" + +#: flatcamTools/ToolRulesCheck.py:1351 +msgid "" +"Both Silk and Solder Mask Gerber objects has to be either both Top or both " +"Bottom." +msgstr "" +"Atât obiectele Silk cat si cele Solder Mask trebuie ori ambele TOP ori " +"ambele BOTTOM." + +#: flatcamTools/ToolRulesCheck.py:1387 +msgid "" +"One of the Silk Gerber objects or the Outline Gerber object is not valid." +msgstr "" +"Unul dintre obiectele Silk Gerber sau obiectul Contur Gerber nu este valid." + +#: flatcamTools/ToolRulesCheck.py:1431 +msgid "TOP -> Minimum Solder Mask Sliver" +msgstr "TOP -> Distanta minima intre elementele Solder Mask" + +#: flatcamTools/ToolRulesCheck.py:1441 +msgid "BOTTOM -> Minimum Solder Mask Sliver" +msgstr "BOTTOM -> Distanta minima intre elementele Solder Mask" + +#: flatcamTools/ToolRulesCheck.py:1490 +msgid "One of the Copper Gerber objects or the Excellon objects is not valid." +msgstr "" +"Unul dintre obiectele Gerber Cupru sau obiectele Excellon nu este valabil." + +#: flatcamTools/ToolRulesCheck.py:1506 +msgid "" +"Excellon object presence is mandatory for this rule but none is selected." +msgstr "" +"Prezența obiectului Excellon este obligatorie pentru această regulă, dar " +"niciunul nu este selectat." + +#: flatcamTools/ToolRulesCheck.py:1579 flatcamTools/ToolRulesCheck.py:1592 +#: flatcamTools/ToolRulesCheck.py:1603 flatcamTools/ToolRulesCheck.py:1616 +msgid "STATUS" +msgstr "STARE" + +#: flatcamTools/ToolRulesCheck.py:1582 flatcamTools/ToolRulesCheck.py:1606 +msgid "FAILED" +msgstr "A EȘUAT" + +#: flatcamTools/ToolRulesCheck.py:1595 flatcamTools/ToolRulesCheck.py:1619 +msgid "PASSED" +msgstr "A TRECUT" + +#: flatcamTools/ToolRulesCheck.py:1596 flatcamTools/ToolRulesCheck.py:1620 +msgid "Violations: There are no violations for the current rule." +msgstr "Încălcări: nu există încălcări pentru regula actuală." + +#: flatcamTools/ToolShell.py:74 flatcamTools/ToolShell.py:76 +msgid "...processing..." +msgstr "...in procesare..." + +#: flatcamTools/ToolSolderPaste.py:37 +msgid "Solder Paste Tool" +msgstr "Unealta DispensorPF" + +#: flatcamTools/ToolSolderPaste.py:69 +msgid "Gerber Solder paste object. " +msgstr "Obiect Gerber cu masca pt dispensarea de pastă de fludor. " + +#: flatcamTools/ToolSolderPaste.py:76 +msgid "" +"Tools pool from which the algorithm\n" +"will pick the ones used for dispensing solder paste." +msgstr "" +"Un număr de unelte (nozzle) din care algoritmul va alege pe acelea\n" +"care vor fi folosite pentru dispensarea pastei de fludor." + +#: flatcamTools/ToolSolderPaste.py:91 +msgid "" +"This is the Tool Number.\n" +"The solder dispensing will start with the tool with the biggest \n" +"diameter, continuing until there are no more Nozzle tools.\n" +"If there are no longer tools but there are still pads not covered\n" +" with solder paste, the app will issue a warning message box." +msgstr "" +"Numărul Uneltei.\n" +"Dispensarea de pastă de fludor va incepe cu unealta care are dia\n" +"cel mai mare și va continua pana numai sunt unelte Nozzle disponibile\n" +"sau procesul s-a terminat.\n" +"Daca numai sunt unelte dar mai sunt inca paduri neacoperite de pastă de \n" +"fludor, aplicaţia va afisa un mesaj de avertizare in Status Bar." + +#: flatcamTools/ToolSolderPaste.py:98 +msgid "" +"Nozzle tool Diameter. It's value (in current FlatCAM units)\n" +"is the width of the solder paste dispensed." +msgstr "" +"Diametrul uneltei Nozzle. Valoarea sa (in unitati de maura curente)\n" +"este lăţimea cantiatii de pastă de fludor dispensata." + +#: flatcamTools/ToolSolderPaste.py:105 +msgid "New Nozzle Tool" +msgstr "Unealtă noua" + +#: flatcamTools/ToolSolderPaste.py:124 +msgid "" +"Add a new nozzle tool to the Tool Table\n" +"with the diameter specified above." +msgstr "" +"Adaugă o unealtă nouă tip Nozzle in Tabela de Unelte\n" +"cu diametrul specificat mai sus." + +#: flatcamTools/ToolSolderPaste.py:136 +msgid "Generate solder paste dispensing geometry." +msgstr "Generează un obiect Geometrie pt dispensarea de pastă de fludor." + +#: flatcamTools/ToolSolderPaste.py:155 +msgid "STEP 1" +msgstr "PAS 1" + +#: flatcamTools/ToolSolderPaste.py:157 +msgid "" +"First step is to select a number of nozzle tools for usage\n" +"and then optionally modify the GCode parameters below." +msgstr "" +"Primul pas este să se efectueza o selecţie de unelte Nozzl pt \n" +"utilizare și apoi in mod optional, să se modifice parametrii\n" +"GCode de mai jos." + +#: flatcamTools/ToolSolderPaste.py:160 +msgid "" +"Select tools.\n" +"Modify parameters." +msgstr "" +"Selectează unelte.\n" +"Modifica parametri." + +#: flatcamTools/ToolSolderPaste.py:280 +msgid "" +"Feedrate (speed) while moving up vertically\n" +" to Dispense position (on Z plane)." +msgstr "" +"Viteza de deplasare la mișcarea pe verticala spre\n" +"poziţia de dispensare (in planul Z)." + +#: flatcamTools/ToolSolderPaste.py:350 +msgid "" +"Generate GCode for Solder Paste dispensing\n" +"on PCB pads." +msgstr "" +"Generează GCode pt dispensarea\n" +"de pastă de fludor pe padurile PCB." + +#: flatcamTools/ToolSolderPaste.py:371 +msgid "STEP 2" +msgstr "PAS 2" + +#: flatcamTools/ToolSolderPaste.py:373 +msgid "" +"Second step is to create a solder paste dispensing\n" +"geometry out of an Solder Paste Mask Gerber file." +msgstr "" +"Al 2-lea pas este să se creeze un obiect Geometrie pt dispensarea\n" +"de pastă de fludor, dintr-un fişier Gerber cu datele mastii de plasare\n" +"a pastei de fludor." + +#: flatcamTools/ToolSolderPaste.py:390 +msgid "Geo Result" +msgstr "Rezultat Geo" + +#: flatcamTools/ToolSolderPaste.py:392 +msgid "" +"Geometry Solder Paste object.\n" +"The name of the object has to end in:\n" +"'_solderpaste' as a protection." +msgstr "" +"Obiect Geometrie pt dispensare pastă de fludor.\n" +"Numele obiectului trebuie să se termine obligatoriu\n" +"in: '_solderpaste'." + +#: flatcamTools/ToolSolderPaste.py:401 +msgid "STEP 3" +msgstr "PAS 3" + +#: flatcamTools/ToolSolderPaste.py:403 +msgid "" +"Third step is to select a solder paste dispensing geometry,\n" +"and then generate a CNCJob object.\n" +"\n" +"REMEMBER: if you want to create a CNCJob with new parameters,\n" +"first you need to generate a geometry with those new params,\n" +"and only after that you can generate an updated CNCJob." +msgstr "" +"Al 3-lea pas este selectia unei geometrii de dispensare a pastei de fludor\n" +"urmata de generarea unui obiect tip CNCJob.\n" +"\n" +"ATENTIE: daca se dorește crearea un ui obiect CNCJob cu param. noi,\n" +"mai intai trebuie generat obiectul Geometrie cu acei parametri noi și abia\n" +"apoi se poate genera un obiect CNCJob actualizat." + +#: flatcamTools/ToolSolderPaste.py:424 +msgid "CNC Result" +msgstr "Rezultat CNC" + +#: flatcamTools/ToolSolderPaste.py:426 +msgid "" +"CNCJob Solder paste object.\n" +"In order to enable the GCode save section,\n" +"the name of the object has to end in:\n" +"'_solderpaste' as a protection." +msgstr "" +"Obiect CNCJob pt dispensare pastă de fludor.\n" +"Pt a activa sectiunea de Salvare GCode,\n" +"numele obiectului trebuie să se termine obligatoriu in:\n" +"'_solderpaste'." + +#: flatcamTools/ToolSolderPaste.py:436 +msgid "View GCode" +msgstr "Vizualiz. GCode" + +#: flatcamTools/ToolSolderPaste.py:438 +msgid "" +"View the generated GCode for Solder Paste dispensing\n" +"on PCB pads." +msgstr "" +"Vizualizează codul GCode generat pt dispensarea de \n" +"pastă de fludor pe padurile PCB-ului." + +#: flatcamTools/ToolSolderPaste.py:448 +msgid "Save GCode" +msgstr "Salvează GCode" + +#: flatcamTools/ToolSolderPaste.py:450 +msgid "" +"Save the generated GCode for Solder Paste dispensing\n" +"on PCB pads, to a file." +msgstr "" +"Salvează codul GCode generat pt dispensare pastă de fludor\n" +"pe padurile unui PCB, intr-un fişier pe HDD." + +#: flatcamTools/ToolSolderPaste.py:460 +msgid "STEP 4" +msgstr "PAS 4" + +#: flatcamTools/ToolSolderPaste.py:462 +msgid "" +"Fourth step (and last) is to select a CNCJob made from \n" +"a solder paste dispensing geometry, and then view/save it's GCode." +msgstr "" +"Al 4-lea pas (ultimul) este să se selecteze un obiect CNCJob realizat\n" +"dintr-un obiect Geometrie pt dispensarea de pastă de fludor, apoi \n" +"avand posibilitatea de a vizualiza continutul acestuia sau de a-l salva\n" +"intr-un fişier GCode pe HDD." + +#: flatcamTools/ToolSolderPaste.py:922 +msgid "New Nozzle tool added to Tool Table." +msgstr "A fost adăugată o noua unealtă Nozzle in Tabela de Unelte." + +#: flatcamTools/ToolSolderPaste.py:965 +msgid "Nozzle tool from Tool Table was edited." +msgstr "Unealta Nozzle din Tabela de Unelte a fost editată." + +#: flatcamTools/ToolSolderPaste.py:1024 +msgid "Delete failed. Select a Nozzle tool to delete." +msgstr "Ștergerea a eșuat. Selectează o unealtă Nozzle pt a o șterge." + +#: flatcamTools/ToolSolderPaste.py:1030 +msgid "Nozzle tool(s) deleted from Tool Table." +msgstr "Uneltele (nozzle) au fost șterse din Tabela de Unelte." + +#: flatcamTools/ToolSolderPaste.py:1086 +msgid "No SolderPaste mask Gerber object loaded." +msgstr "" +"Nu este incărcat ni-un obiect Gerber cu informatia măstii pt pasta de fludor." + +#: flatcamTools/ToolSolderPaste.py:1104 +msgid "Creating Solder Paste dispensing geometry." +msgstr "Se creează Geometrie pt dispensare pastă de fludor." + +#: flatcamTools/ToolSolderPaste.py:1117 +msgid "No Nozzle tools in the tool table." +msgstr "Nu sunt unelte Nozzle in Tabela de Unelte." + +#: flatcamTools/ToolSolderPaste.py:1243 +msgid "Cancelled. Empty file, it has no geometry..." +msgstr "Anulat. Fişier gol, nu are geometrie ..." + +#: flatcamTools/ToolSolderPaste.py:1246 +msgid "Solder Paste geometry generated successfully" +msgstr "" +"Obiectul Geometrie pt dispens. de pastă de fludor a fost generat cu succes" + +#: flatcamTools/ToolSolderPaste.py:1253 +msgid "Some or all pads have no solder due of inadequate nozzle diameters..." +msgstr "" +"Cel puțin unele pad-uri nu au pastă de fludor datorita diametrelor uneltelor " +"(nozzle) ne adecvate." + +#: flatcamTools/ToolSolderPaste.py:1267 +msgid "Generating Solder Paste dispensing geometry..." +msgstr "Se generează Geometria de dispensare a pastei de fludor ..." + +#: flatcamTools/ToolSolderPaste.py:1287 +msgid "There is no Geometry object available." +msgstr "Nu există obiect Geometrie disponibil." + +#: flatcamTools/ToolSolderPaste.py:1292 +msgid "This Geometry can't be processed. NOT a solder_paste_tool geometry." +msgstr "" +"Acest obiect Geometrie nu poate fi procesat Nu este o Geometrie tip " +"solder_paste_tool." + +#: flatcamTools/ToolSolderPaste.py:1328 +msgid "An internal error has ocurred. See shell.\n" +msgstr "" +"A apărut o eroare internă. Verifică in TCL Shell pt mai multe detalii.\n" + +#: flatcamTools/ToolSolderPaste.py:1393 +msgid "ToolSolderPaste CNCjob created" +msgstr "ToolSolderPaste CNCjob a fost creat" + +#: flatcamTools/ToolSolderPaste.py:1412 +msgid "SP GCode Editor" +msgstr "Editor GCode SP" + +#: flatcamTools/ToolSolderPaste.py:1424 flatcamTools/ToolSolderPaste.py:1429 +#: flatcamTools/ToolSolderPaste.py:1484 +msgid "" +"This CNCJob object can't be processed. NOT a solder_paste_tool CNCJob object." +msgstr "" +"Acest obiect CNCJob nu poate fi procesat. Nu este un obiect CNCJob tip " +"'solder_paste_tool'." + +#: flatcamTools/ToolSolderPaste.py:1454 +msgid "No Gcode in the object" +msgstr "Nu există cod GCode in acest obiect" + +#: flatcamTools/ToolSolderPaste.py:1494 +msgid "Export GCode ..." +msgstr "Exporta GCode ..." + +#: flatcamTools/ToolSolderPaste.py:1542 +msgid "Solder paste dispenser GCode file saved to" +msgstr "Fişierul GCode pt dispensare pastă de fludor este salvat in" + +#: flatcamTools/ToolSub.py:65 +msgid "Gerber Objects" +msgstr "Obiecte Gerber" + +#: flatcamTools/ToolSub.py:78 +msgid "" +"Gerber object from which to subtract\n" +"the subtractor Gerber object." +msgstr "" +"Obiectul Gerber din care se scade \n" +"obiectul Gerber substractor." + +#: flatcamTools/ToolSub.py:91 flatcamTools/ToolSub.py:146 +msgid "Subtractor" +msgstr "Substractor" + +#: flatcamTools/ToolSub.py:93 +msgid "" +"Gerber object that will be subtracted\n" +"from the target Gerber object." +msgstr "" +"Obiectul Gerber care se scade din \n" +"obiectul Gerber tintă." + +#: flatcamTools/ToolSub.py:100 +msgid "Subtract Gerber" +msgstr "Execută" + +#: flatcamTools/ToolSub.py:102 +msgid "" +"Will remove the area occupied by the subtractor\n" +"Gerber from the Target Gerber.\n" +"Can be used to remove the overlapping silkscreen\n" +"over the soldermask." +msgstr "" +"Va indepărta aria ocupată de obiectul \n" +"Gerber substractor din obiectul Gerber tintă.\n" +"Poate fi utilizat pt. a indepărta silkscreen-ul\n" +"care se suprapune peste soldermask." + +#: flatcamTools/ToolSub.py:120 +msgid "Geometry Objects" +msgstr "Obiecte Geometrie" + +#: flatcamTools/ToolSub.py:133 +msgid "" +"Geometry object from which to subtract\n" +"the subtractor Geometry object." +msgstr "" +"Obiectul Geometrie din care se scade \n" +"obiectul Geometrie substractor." + +#: flatcamTools/ToolSub.py:148 +msgid "" +"Geometry object that will be subtracted\n" +"from the target Geometry object." +msgstr "" +"Obiectul Geometrie care se va scădea \n" +"din obiectul Geometrie tintă." + +#: flatcamTools/ToolSub.py:156 +msgid "" +"Checking this will close the paths cut by the Geometry subtractor object." +msgstr "" +"Verificând aceasta, se vor închide căile tăiate de obiectul tăietor de tip " +"Geometrie." + +#: flatcamTools/ToolSub.py:159 +msgid "Subtract Geometry" +msgstr "Scadeti Geometria" + +#: flatcamTools/ToolSub.py:161 +msgid "" +"Will remove the area occupied by the subtractor\n" +"Geometry from the Target Geometry." +msgstr "" +"Va indepărta aria ocupată de obiectul Geometrie \n" +"substractor din obiectul Geometrie tintă." + +#: flatcamTools/ToolSub.py:263 +msgid "Sub Tool" +msgstr "Unealta Scădere" + +#: flatcamTools/ToolSub.py:284 flatcamTools/ToolSub.py:489 +msgid "No Target object loaded." +msgstr "Nu este incărcat un obiect Tintă." + +#: flatcamTools/ToolSub.py:287 +msgid "Loading geometry from Gerber objects." +msgstr "Se Încarcă geometria din obiectele Gerber." + +#: flatcamTools/ToolSub.py:299 flatcamTools/ToolSub.py:504 +msgid "No Subtractor object loaded." +msgstr "Nu este incărcat obiect Substractor (scăzător)." + +#: flatcamTools/ToolSub.py:331 +msgid "Processing geometry from Subtractor Gerber object." +msgstr "Procesarea geometriei din obiectul Gerber Scăzător." + +#: flatcamTools/ToolSub.py:352 +msgid "Parsing geometry for aperture" +msgstr "Se analizează Geometria pt apertura" + +#: flatcamTools/ToolSub.py:413 +msgid "Finished parsing geometry for aperture" +msgstr "S-a terminat analiza geometriei pt apertura" + +#: flatcamTools/ToolSub.py:458 flatcamTools/ToolSub.py:661 +msgid "Generating new object ..." +msgstr "Se generează un obiect nou ..." + +#: flatcamTools/ToolSub.py:462 flatcamTools/ToolSub.py:665 +#: flatcamTools/ToolSub.py:746 +msgid "Generating new object failed." +msgstr "Generarea unui obiect nou a esuat." + +#: flatcamTools/ToolSub.py:467 flatcamTools/ToolSub.py:671 +msgid "Created" +msgstr "Creat" + +#: flatcamTools/ToolSub.py:518 +msgid "Currently, the Subtractor geometry cannot be of type Multigeo." +msgstr "Momentan, obiectul substractor Geometrie nu poate fi de tip Multigeo." + +#: flatcamTools/ToolSub.py:563 +msgid "Parsing solid_geometry ..." +msgstr "Analizează geometria solidă..." + +#: flatcamTools/ToolSub.py:565 +msgid "Parsing solid_geometry for tool" +msgstr "Se analizează Geometria pt unealta" + +#: flatcamTools/ToolTransform.py:23 +msgid "Object Transform" +msgstr "Transformare Obiect" + +#: flatcamTools/ToolTransform.py:78 +msgid "" +"Rotate the selected object(s).\n" +"The point of reference is the middle of\n" +"the bounding box for all selected objects." +msgstr "" +"Roteste obiectele selectate.\n" +"Punctul de referinţă este mijlocul \n" +"formei înconjurătoare pt toate obiectele." + +#: flatcamTools/ToolTransform.py:99 flatcamTools/ToolTransform.py:120 +msgid "" +"Angle for Skew action, in degrees.\n" +"Float number between -360 and 360." +msgstr "" +"Valoarea unghiului de Deformare, in grade.\n" +"Ia valori Reale între -360 si 360 grade." + +#: flatcamTools/ToolTransform.py:109 flatcamTools/ToolTransform.py:130 +msgid "" +"Skew/shear the selected object(s).\n" +"The point of reference is the middle of\n" +"the bounding box for all selected objects." +msgstr "" +"Deformează obiectele selectate.\n" +"Punctul de referinţă este mijlocul \n" +"formei înconjurătoare pt toate obiectele." + +#: flatcamTools/ToolTransform.py:159 flatcamTools/ToolTransform.py:179 +msgid "" +"Scale the selected object(s).\n" +"The point of reference depends on \n" +"the Scale reference checkbox state." +msgstr "" +"Scalează obiectele selectate.\n" +"Punctul de referinţă depinde de\n" +"starea checkbox-ului >Referința Scalare<." + +#: flatcamTools/ToolTransform.py:228 flatcamTools/ToolTransform.py:248 +msgid "" +"Offset the selected object(s).\n" +"The point of reference is the middle of\n" +"the bounding box for all selected objects.\n" +msgstr "" +"Deplasează obiectele selectate.\n" +"Punctul de referinţă este mijlocul formei înconjurătoare\n" +"pentru toate obiectele selectate.\n" + +#: flatcamTools/ToolTransform.py:268 flatcamTools/ToolTransform.py:273 +msgid "Flip the selected object(s) over the X axis." +msgstr "Oglindește obiectele selectate pe axa X." + +#: flatcamTools/ToolTransform.py:297 +msgid "Ref. Point" +msgstr "Pt. Ref" + +#: flatcamTools/ToolTransform.py:348 +msgid "" +"Create the buffer effect on each geometry,\n" +"element from the selected object, using the distance." +msgstr "" +"Creați efectul buffer pe fiecare geometrie,\n" +"element din obiectul selectat, folosind distanta." + +#: flatcamTools/ToolTransform.py:374 +msgid "" +"Create the buffer effect on each geometry,\n" +"element from the selected object, using the factor." +msgstr "" +"Creați efectul buffer pe fiecare geometrie,\n" +"element din obiectul selectat, folosing un factor." + +#: flatcamTools/ToolTransform.py:479 +msgid "Buffer D" +msgstr "Bufer D" + +#: flatcamTools/ToolTransform.py:480 +msgid "Buffer F" +msgstr "Bufer F" + +#: flatcamTools/ToolTransform.py:557 +msgid "Rotate transformation can not be done for a value of 0." +msgstr "Transformarea Rotire nu se poate face pentru o valoare de 0." + +#: flatcamTools/ToolTransform.py:596 flatcamTools/ToolTransform.py:619 +msgid "Scale transformation can not be done for a factor of 0 or 1." +msgstr "Transformarea Scalare nu se poate face pentru un factor de 0 sau 1." + +#: flatcamTools/ToolTransform.py:634 flatcamTools/ToolTransform.py:644 +msgid "Offset transformation can not be done for a value of 0." +msgstr "Transformarea Deplasare nu se poate face pentru o valoare de 0." + +#: flatcamTools/ToolTransform.py:676 +msgid "No object selected. Please Select an object to rotate!" +msgstr "" +"Nici-un obiect nu este selectat. Selectează un obiect pentru a fi Rotit!" + +#: flatcamTools/ToolTransform.py:702 +msgid "CNCJob objects can't be rotated." +msgstr "Obiectele tip CNCJob nu pot fi Rotite." + +#: flatcamTools/ToolTransform.py:710 +msgid "Rotate done" +msgstr "Rotaţie efectuată" + +#: flatcamTools/ToolTransform.py:713 flatcamTools/ToolTransform.py:783 +#: flatcamTools/ToolTransform.py:833 flatcamTools/ToolTransform.py:887 +#: flatcamTools/ToolTransform.py:917 flatcamTools/ToolTransform.py:953 +msgid "Due of" +msgstr "Datorită" + +#: flatcamTools/ToolTransform.py:713 flatcamTools/ToolTransform.py:783 +#: flatcamTools/ToolTransform.py:833 flatcamTools/ToolTransform.py:887 +#: flatcamTools/ToolTransform.py:917 flatcamTools/ToolTransform.py:953 +msgid "action was not executed." +msgstr "actiunea nu a fost efectuată." + +#: flatcamTools/ToolTransform.py:725 +msgid "No object selected. Please Select an object to flip" +msgstr "" +"Nici-un obiect nu este selectat. Selectează un obiect pentru a fi Oglindit" + +#: flatcamTools/ToolTransform.py:758 +msgid "CNCJob objects can't be mirrored/flipped." +msgstr "Obiectele tip CNCJob nu pot fi Oglindite." + +#: flatcamTools/ToolTransform.py:793 +msgid "Skew transformation can not be done for 0, 90 and 180 degrees." +msgstr "Transformarea Inclinare nu se poate face la 0, 90 și 180 de grade." + +#: flatcamTools/ToolTransform.py:798 +msgid "No object selected. Please Select an object to shear/skew!" +msgstr "" +"Nici-un obiect nu este selectat. Selectează un obiect pentru a fi Deformat!" + +#: flatcamTools/ToolTransform.py:818 +msgid "CNCJob objects can't be skewed." +msgstr "Obiectele tip CNCJob nu pot fi deformate." + +#: flatcamTools/ToolTransform.py:830 +msgid "Skew on the" +msgstr "Deformează pe" + +#: flatcamTools/ToolTransform.py:830 flatcamTools/ToolTransform.py:884 +#: flatcamTools/ToolTransform.py:914 +msgid "axis done" +msgstr "axa efectuată" + +#: flatcamTools/ToolTransform.py:844 +msgid "No object selected. Please Select an object to scale!" +msgstr "" +"Nici-un obiect nu este selectat. Selectează un obiect pentru a fi Scalat!" + +#: flatcamTools/ToolTransform.py:875 +msgid "CNCJob objects can't be scaled." +msgstr "Obiectele tip CNCJob nu pot fi scalate." + +#: flatcamTools/ToolTransform.py:884 +msgid "Scale on the" +msgstr "Scalează pe" + +#: flatcamTools/ToolTransform.py:894 +msgid "No object selected. Please Select an object to offset!" +msgstr "" +"Nici-un obiect nu este selectat. Selectează un obiect pentru a fi Ofsetat!" + +#: flatcamTools/ToolTransform.py:901 +msgid "CNCJob objects can't be offset." +msgstr "Obiectele tip CNCJob nu pot fi deplasate." + +#: flatcamTools/ToolTransform.py:914 +msgid "Offset on the" +msgstr "Ofset pe" + +#: flatcamTools/ToolTransform.py:924 +msgid "No object selected. Please Select an object to buffer!" +msgstr "" +"Nu a fost selectat niciun obiect. Vă rugăm să selectați un obiect de " +"tamponat (buffer)" + +#: flatcamTools/ToolTransform.py:927 +msgid "Applying Buffer" +msgstr "Aplicarea tampon (Buffer)" + +#: flatcamTools/ToolTransform.py:931 +msgid "CNCJob objects can't be buffered." +msgstr "CNCJob objects can't be buffered (buffer)." + +#: flatcamTools/ToolTransform.py:948 +msgid "Buffer done" +msgstr "Buffer finalizat" + #: tclCommands/TclCommandBbox.py:75 tclCommands/TclCommandNregions.py:74 msgid "Expected GerberObject or GeometryObject, got" msgstr "Se astepta un obiect GerberObject sau GeometryObject, s-a primit" @@ -18716,7 +18584,7 @@ msgstr "" msgid "TclCommand Bounds done." msgstr "TclCommand Bounds executata." -#: tclCommands/TclCommandCopperClear.py:281 tclCommands/TclCommandPaint.py:283 +#: tclCommands/TclCommandCopperClear.py:281 tclCommands/TclCommandPaint.py:277 #: tclCommands/TclCommandScale.py:81 msgid "Could not retrieve box object" msgstr "Nu s-a putut incărca obiectul" @@ -18739,11 +18607,11 @@ msgstr "" "„2tb”, 4 sau 8." #: tclCommands/TclCommandGeoCutout.py:301 -#: tclCommands/TclCommandGeoCutout.py:356 +#: tclCommands/TclCommandGeoCutout.py:359 msgid "Any-form Cutout operation finished." msgstr "Operatia de tăiere cu formă liberă s-a terminat." -#: tclCommands/TclCommandGeoCutout.py:362 +#: tclCommands/TclCommandGeoCutout.py:365 msgid "Cancelled. Object type is not supported." msgstr "Anulat. Tipul de obiect nu este acceptat." @@ -18759,15 +18627,15 @@ msgstr "Introduceți help pentru utilizare." msgid "Example: help open_gerber" msgstr "Exemplu: help open_gerber" -#: tclCommands/TclCommandPaint.py:250 tclCommands/TclCommandPaint.py:256 -msgid "Expected a tuple value like -single 3.2,0.1." -msgstr "Se așteaptă o valoare tupla precum -single 3.2,0.1." +#: tclCommands/TclCommandPaint.py:249 +msgid "Expected -x and -y ." +msgstr "Asteptam -x si -y ." -#: tclCommands/TclCommandPaint.py:276 +#: tclCommands/TclCommandPaint.py:270 msgid "Expected -box ." msgstr "Asteptăm -box ." -#: tclCommands/TclCommandPaint.py:297 +#: tclCommands/TclCommandPaint.py:291 msgid "" "None of the following args: 'box', 'single', 'all' were used.\n" "Paint failed." @@ -18791,7 +18659,7 @@ msgstr "Asteptam -x -y ." msgid "Expected a pair of (x, y) coordinates. Got" msgstr "Se așteaptă o pereche de coordonate (x, y). S-au primit" -#: tclCommands/TclCommandSetOrigin.py:101 +#: tclCommands/TclCommandSetOrigin.py:102 msgid "Origin set by offsetting all loaded objects with " msgstr "Originea setată prin ofsetarea tuturor obiectelor încărcate cu " @@ -18801,203 +18669,6 @@ msgstr "" "Nici-un nume de Geometrie in argumente. Furnizați un nume și încercați din " "nou." -#~ msgid "Add Tool from Tools DB" -#~ msgstr "Adăugați Unealta din DB Unelte" - -#~ msgid "FlatCAM Object" -#~ msgstr "Obiect FlatCAM" - -#~ msgid "" -#~ "Choose which tool to use for Gerber isolation:\n" -#~ "'Circular' or 'V-shape'.\n" -#~ "When the 'V-shape' is selected then the tool\n" -#~ "diameter will depend on the chosen cut depth." -#~ msgstr "" -#~ "Alegeți ce unealtă să utilizați pentru izolarea Gerber:\n" -#~ "„Circulară” sau „în formă de V”.\n" -#~ "Când este selectată „forma V”, atunci\n" -#~ "diametrul uneltei va depinde de adâncimea de tăiere aleasă." - -#~ msgid "V-Shape" -#~ msgstr "Forma-V" - -#~ msgid "" -#~ "Diameter of the cutting tool.\n" -#~ "If you want to have an isolation path\n" -#~ "inside the actual shape of the Gerber\n" -#~ "feature, use a negative value for\n" -#~ "this parameter." -#~ msgstr "" -#~ "Diametrul uneltei taietoare.\n" -#~ "Daca se dorește să se aibă o trecere de izolaţie\n" -#~ "in interiorul poligonului Gerber (traseu), foloseşte\n" -#~ "o valoare negativă pt acest parametru." - -#~ msgid "Pass overlap" -#~ msgstr "Suprapunere" - -#~ msgid "Scope" -#~ msgstr "Domeniu" - -#~ msgid "Clear N-copper" -#~ msgstr "Curăță Non-Cu" - -#~ msgid "Board cutout" -#~ msgstr "Decupare PCB" - -#~ msgid "" -#~ "Add a new tool to the Tool Table\n" -#~ "with the specified diameter." -#~ msgstr "" -#~ "Adăugați o Unealta noua in Tabelul de Unelte\n" -#~ "cu diametrul specificat." - -#~ msgid "Excellon Object Color" -#~ msgstr "Culoare obiect Excellon" - -#~ msgid "Geometry Object Color" -#~ msgstr "Culoare obiect Geometrie" - -#~ msgid "Exterior" -#~ msgstr "Exterior" - -#~ msgid "Interior" -#~ msgstr "Interior" - -#~ msgid "Gerber Object Color" -#~ msgstr "Culoare obiect Gerber" - -#~ msgid "Combine Passes" -#~ msgstr "Combina" - -#~ msgid "Rest Machining" -#~ msgstr "Prelucrare prin Resturi" - -#~ msgid "NCC Plotting" -#~ msgstr "Afisare NCC" - -#~ msgid "All Polygons" -#~ msgstr "Toate Poligoanele" - -#~ msgid "Paint Plotting" -#~ msgstr "Afisare Paint" - -#~ msgid "" -#~ "- 'Normal' - normal plotting, done at the end of the Paint job\n" -#~ "- 'Progressive' - after each shape is generated it will be plotted." -#~ msgstr "" -#~ "- 'Normal' - afisare normală, efectuată la sfarsitul activitătii Paint\n" -#~ "- 'Progresiv' - forma se afisează imediat ce a fost generată." - -#~ msgid "Export Machine Code ..." -#~ msgstr "Exportă CNC Cod Masina ..." - -#~ msgid "Export Machine Code cancelled ..." -#~ msgstr "Exportul Codului Mașina a fost anulat ..." - -#~ msgid "Machine Code file saved to" -#~ msgstr "Fişierul cu cod CNC este salvat in" - -#~ msgid "GCode Parameters" -#~ msgstr "Parametrii GCode" - -#, fuzzy -#~| msgid "Selection" -#~ msgid "PreSelection" -#~ msgstr "Selecţie" - -#~ msgid "Copper Gerber" -#~ msgstr "Gerber Cupru" - -#~ msgid "QRCode Parameters" -#~ msgstr "Parametrii QRCode" - -#~ msgid "Gerber Files" -#~ msgstr "Fișiere Gerber" - -#~ msgid "Excellon Objects" -#~ msgstr "Obiecte Excellon" - -#~ msgid "Gerber Solder paste object. " -#~ msgstr "Obiect Gerber cu masca pt dispensarea de pastă de fludor. " - -#~ msgid "Gerber Objects" -#~ msgstr "Obiecte Gerber" - -#~ msgid "Geometry Objects" -#~ msgstr "Obiecte Geometrie" - -#~ msgid "Processing geometry from Subtractor Gerber object." -#~ msgstr "Procesarea geometriei din obiectul Gerber Scăzător." - -#~ msgid "Parsing geometry for aperture" -#~ msgstr "Se analizează Geometria pt apertura" - -#~ msgid "Export FlatCAM Bookmarks" -#~ msgstr "Exportați bookmark-urile FlatCAM" - -#~ msgid "Import FlatCAM Bookmarks" -#~ msgstr "Importă Bookmark-uri FlatCAM" - -#~ msgid "Unifying Geometry from parsed Geometry segments" -#~ msgstr "Se unifica Geometria din segmentele de Geometrie parsate" - -#~ msgid "./assets/icon.png" -#~ msgstr "./assets/icon.png" - -#~ msgid "New Blank Geometry" -#~ msgstr "Geometrie Noua (goală)" - -#~ msgid "New Blank Gerber" -#~ msgstr "Gerber Nou (gol)" - -#~ msgid "New Blank Excellon" -#~ msgstr "Excellon nou (gol)" - -#~ msgid "" -#~ "Relative measurement.\n" -#~ "Reference is last click position" -#~ msgstr "" -#~ "Măsurătoare relativă.\n" -#~ "Referința este poziţia ultimului click pe canvas" - -#~ msgid "Clear areas" -#~ msgstr "Ștergeți Zonele" - -#~ msgid "Apply Theme" -#~ msgstr "Aplicați Tema" - -#~ msgid "" -#~ "Select a theme for FlatCAM.\n" -#~ "It will theme the plot area.\n" -#~ "The application will restart after change." -#~ msgstr "" -#~ "Selectați o Temă pentru FlatCAM.\n" -#~ "Va afecta zona de afisare.\n" -#~ "Aplicația va reporni după modificare." - -#~ msgid "Film Object" -#~ msgstr "Obiect Film" - -#~ msgid "Object for which to create the film." -#~ msgstr "Obiectul pt care se crează filmul." - -#~ msgid "Box Object" -#~ msgstr "Container" - -#~ msgid "" -#~ "The actual object that is used as container for the\n" -#~ " selected object for which we create the film.\n" -#~ "Usually it is the PCB outline but it can be also the\n" -#~ "same object for which the film is created." -#~ msgstr "" -#~ "Obiectul care este folosit ca și container pentru crearea filmului.\n" -#~ "De obicei este conturul PCB dar se poate folosi și obiectul pt care\n" -#~ "se crează filmul." - -#~ msgid "Expected -x and -y ." -#~ msgstr "Asteptam -x si -y ." - #~ msgid "Could not load factory defaults file." #~ msgstr "" #~ "Fişierul cu valori default de fabrică nu a fost posibil să fie deschis." @@ -19121,6 +18792,9 @@ msgstr "" #~ msgid " Export SVG cancelled." #~ msgstr " Exportul fisierului SVG a fost anulat." +#~ msgid "Export PNG cancelled." +#~ msgstr "Exportul imagine PNG este anulat." + #~ msgid "No object selected. Please select an Gerber object to export." #~ msgstr "Nici-un obiect selectat. Selectează un obiect Gerber pentru export." @@ -19181,6 +18855,9 @@ msgstr "" #~ msgid "Save Object PDF cancelled." #~ msgstr "Salvarea obiectului PDF anulată." +#~ msgid "Shows list of commands." +#~ msgstr "Arata o lista de comenzi." + #~ msgid "FlatCAM bookmarks export cancelled." #~ msgstr "Exportul de bookmark-uri FlatCAM este anulat." @@ -19870,6 +19547,9 @@ msgstr "" #~ msgid "Click inside the desired polygon." #~ msgstr "Click in interiorul poligonului care se dorește să fie 'pictat'." +#~ msgid "Program Author" +#~ msgstr "Autorul Programului" + #~ msgid "Export G-Code ..." #~ msgstr "Exporta G-Code ..." @@ -19952,6 +19632,9 @@ msgstr "" #~ msgid "Skew_Y angle" #~ msgstr "Unghi Deform_Y" +#~ msgid "Scale_X factor" +#~ msgstr "Factor Scal_X" + #~ msgid "Scale_Y factor" #~ msgstr "Factor Scal_Y" diff --git a/locale/ru/LC_MESSAGES/strings.mo b/locale/ru/LC_MESSAGES/strings.mo index 3df0974b719b1ba402db3dccf3a1792e86fbc4a6..29d8886e20220c720f5843a381bd71b27fb85277 100644 GIT binary patch delta 75814 zcmXWkb$}IB8^`gvd+*XE-R#mV-5pDJcXxM4b7_@s5HOIC6a+-zB_#z3K|oqikPrby zLc;g^o9Dd$e9m)b?#zkjoSD13@-AJI>GaD?;Ty?A3qAgqBa!E2#HyV-(K* zJ+EOf;AO!^I2s3GCVYhHF<~g+Wy74918ZXe9O&ZDFbVMyjE6sAQoL?)*n31FAr;Rt zF-An%3CWN)c~Q>%n1Q$qro-kK7YCv~Kf)cKj3MIBF%7Q9l(-jl{yEfjuK0$zF$G;P zd7OZk7V}|ptcJQkOVkAhqIx_9b>8Qg0(ZIkQ_g#+1_k2=yabpO6{pAMm=g=)SS%9` zc-|%oW2m?n&xW{L{DAil@h#`21OaaX@u`FXZxS|06!6C3c}&9R8z&BU%$V1SKsOqU zipQZwa5fglaztbpHQUwn=YuuJNI*9f;^Rg6p%@M>XgY={f6Dc(uL_^an-(gwUBHbKo< z3)Eb9MrHq4tb?DRlJq|6{1>PpevKtDUb=vn3M*k8Y>qm=9qRl(I35R}lJQBHLVOA@ zQ8$iAZze`vI4x?~3`q8joU>bjdy$sOKJ z!Cw}r6R)67{0(*CzfcW`$Y2dih`MoV)OlH*g;3{LKy{=(>PD@c-BAr2g1X*B@&!zdhwTIQdj&fkT( zxxaUuLTxIZVqYwmDd6?Pbyy11WVWPhh~G47-g#_Q?xap9;!pF zP^+f5t6z>UiPvI$?(eP0YU^8OooITobn8FE@S z*U4p5^n>$~^EN669-$igFKWMum)k}tLvGf;<~A1)^ zD)*x{kjO$d^odZpkqNV5erF@p&<;Zl^(0gW=3p~i<&OW08p(Kt?ff*Di#VKvLM(-P z*a>H&TK?44#}u(4?u$98e;?J5Pf$19gxY9!yZSSzA;0PT3za*OMeUi98kJMEkdX^} zohWGM>VazENYn*BMD=7D7QoG}{s!hJeu`S>S&G>UNnR{TTnp#o1XM#)6t^B{L&b$r z_lfoES$_>(MSIj9-4Dy)AS{X-Q6uyVs;5~?*ab?W;_CP}w!uc&pk%NDLSb2A4NeY6hkFZY1BHdjM^w#qK2$d>429VdpT!e6!A9HT>gYwO>a=i z9Jh?+P&6t@bE6tu0JY^;!LWK<$DPms)sSYWmbXR?aSs;{K@H(})RfIZEx#{ZywM%s zhf3blsLx+OHSCu24_E)94C`Mf1k2iulVW4yl&A~zKppRo%JNaDhJEPj7rJ-_s$pNb zcpqw&oJ95bG3xW7ayG@uQ6rtY9P3{#%i=0xoJCPRD~Ii|I%)`4qZ+mWb%Cv@8~@M6 zCtduLi+^+RBh-|>MRh1ed23LXFom2{Tr+1t*}E(Gk=IE@Cv^Mm024 z!B$NY)QzGsEtbTa*bvuYp^7#FS5PApzCl4Z`WtoQU?q!_qedpHi}RzBraWp{R>K+C z3N^HMQ4M;Ac`$XXZMl^&inybTCpcFi_X~RmUBy{c@;$)_{0G&5m#7{FE88kaj7q*7 z_yv~40eA&FVC^aa??YUV3$SR_fHwkWiS>85^M*-WN3z!!aMOKy6T`u`I@^5%98V{a2Lrc>dnRTYGNfEgxaXKVhr9zo&R1f%b8NB5vzrjunlUemt)w^ zW(pdCt*ER%iCShqVH3QCO1k2;?Yvm*PTU$b1qWT+wNAjRL3|P$V2Zl-Ce;P2690%A zxzzP+%F5Ma{STpHBNeqVs=mFM^g%7RZ}0;C5BuQU1_7@XzQq9nUeg-}yi>%-8U?&( zxUjK(Lz>ovS2>O+X&UfOQa`$xt)d#u&FR>l<7b+O?YUf_rS)VdYDC(!vJvQv8j%60 zAsd0pjSo=EXQ_)fqgKUtsMT~4)q%V2_#ddx|A)$rB(3c_>B1DWUh|>$_{!K4TceV3 z8*1I}#VL3ibzajp_7Lfd+UqBwhV~OwZXCia_y?+CiQ3xKMWH@l8nr`)8&Qa+Fbws9 z#aI!)b-qAduw*+s-VyZ@Iv({D`^436$E?IZVIh2hx;DJ^ z&HYo(J{X0=u@o-BP52|O$8a~xp_uOWxw@#& zwL?7{dO3%q?lT3ILrc4}{?(#ysgUQeFg`+Uky(1!t5_Q>O1ubl-U-zE`yJFXBhb^9 zZ5-4{Bu0%uYE%QFodr=1D~~#_R?o1V(3lGKyrVm@AGRPK?ds2?w&Y(>%j}(tv-h&N zGU|9w)D5O$Uz~?Z*8i{_mg{W~simln{2QjAWtXatU7$E>`8B~0aXya4jBIC9aVd_% z=zf+1%TYJJih2mWa&g-Jw%$viMzjGc`6gf#u0nk-e1w9s_g7c(7L~0T*k6@&F{ls5 zq8ii{b^ar)hH(c5yoFc~tK+X&31bEYyv=N}eNf9g!w~x>)g3z$A3~Bi>}4Ms@II!Z z3u;K-qPEbq!vfw4%#BLA6Ic?1@7vR|EUF>>u_Jzn?eRY9;Zt+Ct&SzwmiTkjYI}=X z6=O$eW1?mb1!enwjKQ<0Iev{=r_m#=LAg+m>5{0V>WwvV1Zp`RMCFh-%1n&Ph4e1Y ziF&paMSZ>uR#uB@QV8O7R94PLW$zMH16HDvXdO1iyY6_|(bll)s2ep$ZCIUg6~2#y zF~b=9vN;Pig2~2OM`~hN$uXKjUEGAT@LyCzJ{o7vLp_X^p&GgxHP`D<>-h<48Ah_2 zWCGMkB}Hvem7TRwxz!l;X4EOn`p-gPIu+5l0X0OYP$Te@^CoI&AE0vM1!~ITj<iqhs^V&H3qRtzO8mW)QbD^9RKA}Q$ei*fk9$+hsKf#ix3sxmQfQ2w} zqP?1xKy{!E7QoS%3)iE1dd_(ZmE2EUoN$tzpFT`M2WmOHqFS!{@;C$4pcAMOxsOBe z8S1>AlWlJwh8mgas3Bj5I)5dq$6ukQZZ~Rb_hD%aAETgU6qpk57GVZd54WN=h+lD; zj!(4~e}c-HAFwgLL+uldKCoA>o~RrBfoi}LOpdRyKPLImer7xt$*Hinm4epm9;}av zJ_>kCuno?}XQ(-yJk3UG9;)Y?@IBm(dZYQl9sdp0!~d{68&JIIHrLf>SaP;THK+ro z(E1-tK^K^c>e;8L3!FvW;4h`R8{&hJsl`U*9)QFCn0^E%6-mR}vzzR?hsJIzr~ z%VDU;?p(}{Utw75@H_=&@mo}nGR?K+SRA#!TVNFSbKRfEvtduva-T7e^{>KLROo|eQ6GGa8uB>vt>qa}H!6j?KqJ(u8HQ@`98?e2 zy7;g=e$Dv;wSgsHU>(Ycx?bT0tbYwzZ7Q^08=&U6J!;wXb@d}q50MXC{cot{`2^Lo z0t;=~H9}pdm9r-*hlZn8)kmm?>_#Q=;V=ay+mEQ7?+U5`w@^d>81;eBBAfFhsPodH zJ{N_W>pZCQ3OY+;E#fNJ8fUutdl*6dmoxki1zq4JszvWmH%PeHZjc<45@$e-R9;jA z3!(On3aHPuMCC*`)KpGH<geMd}2^@+5(H?0Mw0E zqdvGFwWt4ty5JquzVR1o%3?pZ2G>KK*AA6a{V^|2!8!Ofmeu;NyfonbkBV`qt+UKB z%jU|ck!gmNunp>l%W(v*LoLIs%WZ?nk4oBD)D2spMxwuqXQDc~3N<3%V`8oUvlP_w z8>kjPKn>+V~nXxv%TuX3mbzKB$JgkD9s}s1aT6;_ax_a~Q)q;U)#$ z_%W)7-lz7##Hb5pLd|7S)Ok%@eODKcLJjS7RL{Rf-QYATSMH;x@CE9A?|o)*^k=O9 zf>e~Hq8j$WuJ|=7dsBaI%cdj75YNR?xCb?aC0E!;RX`q^@{Dq}w4?kmH#5zMDTbF~pm;YrjDL#yn)pdjjo%}`0$7PaFILiK2}bAfY}b31BT z9!5>wY1EWncE|69DQG8pi5jx^R@;!}Lk)Eq7uP}MNGsG_c0=u)V^J6U40VIAP@mg{ z>d*=FrvSAPy>P}~W9Nr6P|zIb#6nmO)$@K>9G9SaeA@Y|^CjwYiNCZPW&&pxlB+b9puQcpAQ=~+KKI9_fcG`N_f^1)!b6xx>;E?j`aqJ+c49Tuoc2cL#7O4? zR8Kdfo_2>YKi))5UE(b^=M|joP*XPsHKKDd4{k#}w60@VE%Uy%iX5mO)kJ-uyQ}}u z#T!shy;E2g6K=H~vj%F_G{9o`A?ikZF$#aj0vK8)^d^gvzCHsLy|Z4e(p6k8yX{h&SKC`qxm; zq(Vu!9Cd+>s1tXgmQ}oO?M5k3Q&0?*$|y&d!nv87}dbBs0Pf(a`?H6 z!`CS&>mOhgK1C&6@?Dk-`B8Bl7k9^;#FMcoZgBBU)D*D;DT8|o; zUC2mZ%9aIiHLuF^7|5?kMpt8Lemcc2gSFr=Aq0Y3&&MSs`YSu<2aSzmpOmQwo zjnq0+1GZrjfBm}ym)wC{{sI1&1hu0@?lm)^K3LpY8*>KuB7ym+pSq7{1@ShlNql*~ zt&Xe*EC*sxQ&JGskTO#1zbXYS!}{15hhP>wikh0cs27t*s3HCb>tW!aJq;V6=Jo_C z*)BP+q0YaB8j(k+sZ98t#W^vo*XgPhluSKQJKYFW1FoTtzd?;e)FGS0Qm7=Yf$C99 zRC0DfU8gUq;bTzAItjHw&2`7WL!E!_5bIwpzDh-3`~@pvy~FnEH4D|V1*j2NfojM) zSAP(d1E*0vyMszH?+CyBW-5|mNy2VN?K+>Ja$-Fyr}i9m&;OsP&=5Vv)|m8I!21n* zqo$_8aXUT~V~FRWl5HSJKH42$f;xY#JHF4wXIy*-wQ8QDax38}+W`k49SnO* zDCFY6R*c3gm>1t*b$%)-vJQJ10TTny#Eou%AIDbM7={?j4Ja=)TAMKScJt}#NqNbt}YB@GQ zU8jxI`X4~SUncIrT-0(|jmqAOsH9AC&Mwpob%7Bsp5fwU&dsP-uS2M8zlcTg9%?Ew zp0}wijA6}fWeOU)))@GVVdGg8#58X8*~~?}bXnd8lOEj~eP}ldVU`@bkUd0La47~6;VT34fXj(sG;tF z>Um$(TXopE1T|t`qdtEGb-$CBSpWLKMJnWdRCd2XEx&X>+lfU{H>`kqIMv32*bnpL zCs-a&Vl#|?+5VcQ1M0kks9buAA$*DI=-aR>l(=FKg#oA?Z6s=6n1h;v9axp2eC4cg z&7OvnuG?GgKGcN|q8=_sQAv9i)#J;!8E;}*t~2`vPf-l7y&3S@P>8%`KV0r~JK*i- z#2r|Q`uBge4{rV~;C(}VhdVYRsqWhT5QQ50LZ~4vkLqbnR7V=18r0n#ABfslMk6E5 z-~Un2T&+caouZQO8tTH&P(vU1-I6mg>P7`nxltN*UQL{h%}_nRgSyV2sD{M3XStFI zl?!<>sh|F0;h2ayl0<;gLcI0LG_ysNK`S%{mUE;Iyn;VG!(osSy9HK-9g zh`P}!)OCJDO~nn==kH-yL-;R+7>xgiU7#4&CT@T;a4G6WxgOb%PKu-E_$X?%oI*|E z1JsR!f7%cyMKvrN>e*4k#Whe<)A~==zn0lxDoW!F)N}qQs)eUfH~s}RC4XWB{*CI% zbJSdWk1dXmYCsBS7SxF4MK!pNt8a`NsrHXq|4OEj?u5x0MLZofw;NFn+JpMSaTv9n zenmCtK57L2MC}W2-SMa=cEg;gp65r6LKU*Mb%7sH zH@uD|@HQ%U(mk~;^<&gj96=53ZPfMt#gZ8Lmo=a~Rv>POUtxGQ1%0r>-?qoMK@H7# z)SkW!^#ZaVwIN+cT{!s6OoD1)I#dqCpr)h>YU=8uMzA$%$~t3y?2A11!`@N~nw#%X zbN4-JjxV6H_h-zF*HA+o`HyX>xluQ0iE40n%#IUK?{;g@zb+#F50Ua1@@$5m^6az&nD+ zP$M|=6^~=h;Svf;hE1rU+K)Bx7*@fg{|3CF*aUUs_n2)zzdP_iYBi12!2I#drPJLjN|FGt;Y z4eG{UyLdlpV>yAk!FAL=@rR3_q8j1_tzn5#Q;-^)V>lOuTolHkl5P!Z9sh}1PH{sK zewOD$t^X#dhto(bh|91poXGq#;X{MnG;0#-z7Vup0cx1 z*I9>JO-C_Yg2Gh_n%m?F%~GhIv`6)HjB_n&Bz{7D?j9D!EQu^`;+%%XsXvHi@CB-a zMG{+wYN2vtNaBdF-;*g+6rl+8;UWw4%M)qPz}HC>VLy1;-sl9X9}V28;+%*q^gH%d0W&f7>4>rvlR7= z_!;$qRB7x2(Ws;=g3;Io{TCNhN0y<6`a4&D5!)00;p*$8^^b?W4ivPmhoF*TDr)YQ zxcEG3UEe{yf;~bdXQFhLR57TY#-eu0nl5gP8i`iU&dxrl>kP##dj8L+pyja5c^tLH zUPmR>LuX`qyI~e*2^`GvdN>ddppvq12AktvsO!9s+6N|MR;KU+tWLZ>V}w^r>;EYQ zC0p4{wgrEH+FH+GRs0V%MO8D~zR(1f&!v$#@KN<5i5pP}Z;|TaK(YBpp!~?v3itiYGf0Jvs=s3p?aDh^I{d$vKoMztGTEfEW^>b6V=dSIqXKU zScs&@H=g6EE$DlT_=BQi=uce?Q*@9Z%Cs51jB5DJ=j_P@WT(%{rLiMNy z*2Na6ht(?7=Z>K+d>VD5i!RQcJHjLRy+WvwD1w|H_F^e$C~CR`%~9_G-B35`g&N|K zu70|6Hfm(%qZ;@LDmmApa^;Xa{uAoO;|A(_zoD-846|wd$H`+Kh(VoD7L}BBTzz{~ ziwB_QbR24`=A%Yz9qRmV-0|b623Y^9V%NV zqHeedwPS5SUHAm5M;Bat)p^(X6m`8fsF6*Z*KV8>)xjdDhE>L}deVTxO6-PrF@8R~ z(Gyh9Ut?QLkl&sKJy7rYt5D1AIOf4y*Z~t3um<z}CmL>9JX z8daF}-8lg@qG-} zVS-Y&g>QGhLM_t@rEMgKhbgG1+fhTg3zgO9P&c}UeiC6h*3Uogc#*QUQbyy)9d;3FM8cm@P*UwcEt`X=Bsqs#$G2Vm16ThVHS`I~*#)9d z`$tJ20TUeIHJ6@G^sN!HlaQmHA2Hs z$r(nSKMOSi%TNvc616eyLGAfBQ9Ek93UGCy{(mC{4b?>~f)7wrlBts2D7Uj1 zssWWyBUKaixmM18u6_dQ^Yc(s`3b6Hn^04+8|&g(4C_FqSZiSnY9uP6F3`x?*46hw zCDTaM2#m+FIKv%3?&`0g8g|#!|BJPW6IHgYy#?wzZ7RFxe`hMxkYT76Peje}Jk*Vr zqn6EDWR-fiP(ywP)uX>r7mQ!U&QFHwKt|Mcaybj5My{+oUbjlvF4TewU7#Cw!M>JAG8*1nep_27KRBj}xZaqwm+6i-EE9{1aa6hUcPcT1*Ur^AEa@4R3 zltlHkB5JFwi`t-ipoY3H>H-r{J@^RKzy+vRvsI|9--DXE^Ee1^;s9(^(|vWrD6Rij z6tphW*Rr0JLp>zwpmwqW&S9t?jz(R05~?AyQ4L;%YUoPT9Ir(+a2IMy4x<`+3N>Qa zeR=->K|vRIjp{+X+IHh8)W(z(l|-dcH>`rXP;D2tc6LH-I6YlF9W{dUT)YXjDz>}$ zIQswn&lw6DfxD>ej#tN)V;JLh2JP>&LZpD&}Br8NPbkq%Ak7O7S)5ks0)rqHEfBiUxRgsccVTZr=FPt za}q~k0jz;T@cnwM|GE?&P>}~q*0&FILfx=Gs>S0_4g3I=6Q81bz6v#$8&T)~&v_En z(5o(fjB3z-s1Zrjz&@X*0qb8E%0fjB%!S&+>!DsO`k<0+8tMXzP+Rm$tb`X`eVT^$ zbj$86j~6-K9CKm*M)n@i43`iu#jaR1+&IGj8SfHYM8!4K1~jCJy&zmdH6&$IYk5)B z2vk4~eN|^;)SP#8ac@+EN1#S#3Ti|ay83naDRFoQ1+}DEGfTGJs3G0&JdMiw>!=I< zh8n`BsOR|`ERLy~+q$lUHHar+44y=7-Oo`SE7-!4Z$7etg}u!bw6i@#otUzveLb#+ zRf!j%mepk}jc+h7mT1MxWq_acVt3+It!*n#*e1gNH(pv|ZR*!yb$sUHvTg14dn(q{ z`~Q~|s&T>-RI-(5XWt1cVoBmrsD^DtW$#1Ox=!ETmR)hw&^JI0bt`8tOhyAo;xe4p z!LFaPlbu%({lEXINI^qd3pGbgF$#O4hVUcQ2y91v2fT#Z)1P5Mtl!y=k3+4Z6*vx0 z;ts6c#SC<{4(!Bo)c=m*N))npv#joh`G}XGrsN3ff`6jcb=vNh&0SGbF~fNjwJN+G z5#AvviU;up?#5j`?fB4McKt6=Bl=S>*1v`{ac_GFm2=idWqC)`&ek23eB)7BKNI!P zTIT9Ep+;~wHpU~UWt+B-4S9Cdb@HS3ks8kSeOUim@59`Q^Kl^Ya#YqQ?rS$riMl~F zYD>%}^a`@9c;A+!&^tDQA2tPHKdnO&xog}?|QFL%ct}(>&g4hNvLHy2Rn1aZJ3uh^>AB7l~En*i*0Z* z?&tpA-xSv1wh{IpjmxCIZ6vgI^*bcFv0#Kp!$_`kcoi#l)NShM9gyKn}Q zIw$qRu_u0t{uGY45lrRGh2a*QP})_@MV+`3m8D<1c&CexVl?%qP;>YgH9~JtFBB;! zSPm3I9WRX!WgNH>!arCb0fB$4{xy4I?Jn(8ot*Ybw-SH$^2^YfOt>P`NM$ zb-`JvhJWhfji@QygUa^fsN6V@TL1S^tIM0@h9<=%yFfH5c?x1ttcq&s2vkEpL-lAi zY9ux}&!Cp?Q_PM@C)=xBF^nKCh1xgDy0{XmLsh~Q)PuUH5on7V(k`eEj7B|N#-mz3 z4b^}Zcplf`5|VA~6idp~A4GVSsBeO?xB%baMf?xXe`v?ge-z>Wu}V1QG|SrQsO>V*k{i9j4#W{$wGwv5?{Foy z!|uzi0f(^!=if%{aOpm^4Q@8JA`X5=D>&W`OKbhN|J+_2mS9&-xP$Yt_6qyTbOY-W zC;cMA|0D9Ys2*-a-8l0~`zkdCXArN)LRfN@O+io0t$M75=dlQ8T1}2|f3G10RZK=D z&$n0%ui;{RZ;d74I@EGKi)%3Vml57|JcIRc(^?zB*I0$P_&Tzjo{q$3#5300Z(47o zHlVT_SpW4YET*6f-^G?#VPk|hQ}s9-b8NC9{{}TB&#^rgXF|23EkJ#4KMuyUo9!t& z9o6$UI39CsiSQoc8mxo!zGnTaWjDUIui3@6k~GA9upcdtyDh^1*Rh6ex2@Fs#^y91 zZsxo%P>v#4+{{#kE&n&E$hDrg)>yBrzLkSIiQi*NMka93e$bfuJIjq$m`mqjEUv}E_yFf& z#zPU_72J$EKJBpOO85r~+S%e9iSV9dB0P=3qY?gp0dWq85=S4i*YQQD23^GlnEklD z?+?YY#CtFrU!tCp>A$xIws4Mft~SHo4;0knzfl)Xdm_U796RA^j5uj?w$^zG)q^-c z*f*n^sBG_n`Edj4_53nwRXs!Ppt(-jmRlILD#~DSt^azbZTU<>CC87b3wmcFyeO!O z+7G&+lJga6s285KjcP9{`(LAW!lpmkNUg)h#D8K(j6G+5;S8Q9X|?{lQcz2G;9I

    ?w8bf?eniDpyKfwB(zE>goSbPs59-jprUV$8?u$=m$C%V>Nod4~t{yGV5Q- zROX5;s|HsiynTG|2-e2Q*UU4h<&yro^}H%-g!-b^@fK`|Z%`vx?}j-ByAW?cO-<69 zmbB$j=Z(L~`d48y6+`d_R>a1?*bvS`_2d$2XbapjC!vP+XDoqvZ%25`u`^b~|4~e}q31C;82$@OS5=J7HV*S?=;$I%wV|U@7c6{Drd)!ug!doxr?LjsCa`>qwMY6x_ZFUeQ=D>K= zPBshmR6K?u4E!D8{eW>$S$!T8;dRt9et>$@d4gFn&NEw%c~JXD9W0NNTpT_~K`nWO z$+6HsmQ+^nGDHnt(Zor=ybQYgCTh#DbXQrHw=dj7MArHDYx!7F(klvK+N6H=v&Tp;z`! z*d8@LGLv)$>2F7rw)U z*z=7wa42fIPDC~Q6U?afzlK6I9>OTRgIdRN-r5kCMD?I1CcrN+18&0J_&rX;V()B6 z+>cp^Z@Bm!MiFQF&yH8XxWw%+tP6Idpq39r-FPBu2)Ci;@H=dSS6zKceoUz$uZ|0_ zDJm!KV?BJ1{jh2v=qKe?R8sClUH3F<1g{5z_V54wPK7S`H|EDcM9}*-z-u@v`+pAx zyF-W`=HN>ByI{2k?t8*`^0mtL=?;mQ8&QT$6 zxC0MR7kK94x2PV*jc4bjL|r%vwe0d@Ml6hanALaj5EsvJ@i(X&pF`!=wJ-$@$sedy z@ETKNviL#&YjrNviDgm8>!5Dj5!K*6sPl)TzCX-DP31yV2foB?xCQmOpHSDkiCW&_ z#}o!qh)59h_wpgAjb=aU?e;J#YqKT{`VXn{s0$86Ew2UG10Uf`rmR__p#RTq{F>N~ zM<=!8qp&>3Z)0K3k9setH>j}Jn1Y66EEdEMP(%8yb1!P6IfSHu_YH zY9tdTw~7yz@p)`Od^1DPf7>mX(e{I#sFBK<$;_9D z^{*Zjp+a9Q%H#Vu2KDmzH|oNLG6(&CBkBNZ#9C*ujpqtBCLR!Feurvss_38>g^e%| z4t6eg9>rYLKZ$1jkD-t@YtaAhwh*ThXU%3kU567CXJ@W(6>5Fo!9JKEhu!#n)K2(4 z*2eZZgZ>u04)wVG9@}EvT$Wp1u_Ez2{{GgVn{%k=b3|_YKpCt=JOY&yyHIm>9F>G; zQ6qN^wT^$sBKR*V$@1s1o_9iK#G8)#{7ls9S%{kY@J0%nlW&~=a~?!};27!xXI%Uv z>H?Qh7kGmD{43{w&d3=1d_vU5lmfLir^o+cW^APOe}#g2kT0+Gs3I!6YhzMugUaeY zs2h$zHDCg!z$MO&sJT9X8leZMhCO%j8>~hgFP~kfKE_oxwQv<3P*1y_sP#Po)sX3^ z1};Z!Ae&J+@C?bxbG0ry}| z{Mp6-p{|#qq@5Rwd5OD~Wc_ENFxMT}j7qxm7>&Q8rXsSG#bq!Taa+uclQ9ZcqTX;0 zJFnm>;wM-M7nWvYVva82OXB3^g5C>E7%m_5_>Y#oU0kQRZG$Z)$QT3$$8fKHx}o@scYEry3PTpk)4M+z6rJ8gny-=Im%GehOQOrZFU&e z!r7=D?J{=9?6rda&v>Szw(NJf7t7bS_%$jnQ^&UOm#Fn#yl&9{r&yoj3F5u=g5E{_ zH%uSa4|-$iS%-#p;p>g;h7B9ri^DS1mKo7+~4cyDn_Y-c#(^@ppx?k)UtYj zg)l)o%l@*ctnZ1cpMg4mFDl!wqMiwX_LhXjP#qYC`rKj+tH=MNpbPwmx>2DHc49+R zJlMtaP|IdJ=Eq-9H%!ve&dZ0oL0!}h`lCi@9;##OF*hE@7<|-`^&d+iZ6_O=)~E}< zk9xW-Kn?9@SP-|Me`8d`l61Bk7Qj!48)9Yr6P28WyVyt!#HPfHa49~-0!+=+u3^i@ zZ@LBjf1Pf8cT1MX&JTLn3rLopL65KS-e&B|1wQLT(qgEuEvt#B27ZEV@Dyr;%F{3C zt>;F~QO}mZ0GpEZsC}hgn1Zr&BDTV01MT_U8`XnPu{vHy&1v>Q_J&g%%Mnk-N_Yqh za-+~->p-y~)}bG81;@({4SLh@I_k!~hS`*dKc%3@=^50}-9_~z&-+2|7i@(k>3Nyq zLGMrE!6WVEvePJ=(;=uAj+v+_If&}%EmQ~oMQu2xN88j5z%DfO6Xd+G7Z_^~ne?a& zbiiLZA&gq5U6>*zQE$|8oQScw1ho}kK|S{)##@{Z^-yYxYRDQai~F%WzD9k%^aPD) zm|w9_(1x-CKgEF)?TbUwNkRX6{0Qf5)Z@ACWP7|eb9Ta^)b~UG7Z1*KQ+Yg%jK-U&p$*J1i=&oNFH~|(LY=n-C*wKP2)3AM z52fL#^Os;t+=>S=;jEzlqux^(?oP$w*+K6Z=AC16`!`l3j+|>lTFu!HwSE_(*7rWt zI==0WC!S~D?TTY(>U*H3<^<{m=NalD6nDPGS?34s-~TL5g`WS-a3BtLC;W<9ZqHHA z^)?Ia1!Oq3BR-6&8Pco^Z6r!BvIe(7t(Hls5nP9A@O4)oSZq_7Yca{woCAfZ=z<@h z_Wp;cp0!$HLpT|85`T*P2e94|Tu8iYsck$BmRXM;p>o7qZXJq`r3iCkR_uUE>WQeS z`6%p8Sc&`_A>K7qmaqBLvUCsDBz}i=u*PS$Ps~Ss$9set;{Tj^KDX}+O;GE+GivA; zyZZH*h(T4uka=J-F%j=5J@GSx$E#r;u38Ac89O4J3vcV0yG>{sVo z)YPT%Y0HxQA-MW7G%YuCxnfLp88G>Ua~3!ak^;&p;*B4(E@kRrCj{ zhY40$oC@{%qNwZD!S}TOJ5kUO4Z$yPDyGCdtL*|6P(7@Lx^QzB4@LEKf{T}-Zm<@$ zgC0ON;E6l_8kKAD)>s2Np#S%O!ze^^U~28Af>jC#IL!nnBE)qjhB5dVyc z@yI4yhUc*ranx6~*N?)|#JjLA{*9Hf(q?;YpM+Wsi!p>}H?#gDC|saIJ^L9o^p8<* zE}<=!Y$Z`YJZgjYssH%vptlhxZ4G*tu+TP=k>l~Uv;MKbH?~@u@30l^$Hu&By+nW1f z8REaNH|F1M=PwCUC``p2tcPj-7xe#pt{W=egw^pij>gJ+Y(LnCYDnC@HU)K1Q@0wG z3qN8{4D7Sj)El*5OvMto1pW1YhC(zISMUtJL1p<5`|Snc0qVJ*;eZWof`dW-HzY;A z3;KUt_6WCeeAS_#|9`>I@^H}qcS7nN3HrYy4jv79uQ=Wr^@D`A$AaD@;&#V|l zYCyN|gWgC^_yDgH2Ts}?-^58I$&4R@-Z+jYJHrk~Jo{|W|NnmY^c?3C_dU<|29DRh zXwQs=muw3D#a$e4{TI4{99ZPl#*w%2WFx}o;&;g|)-qh2sRM~%pFSAQ3^ zL&mvb$ypG!Gd96O*cG)8EJU5R3HAAl?)WpzPn_ds(A&cOy(Sbi7olHlLrID+iSwWu zkoA^X8UX-ZXEHqwKzR0d1~Pp9E|$FV@!;1 zFbO7jW}i=oWr+)+Hm1I)ePDz0DrzJW{$urJFavS8Hw7J-irNyt!5Vl1`(pCvBpu5o zjAe263!A&=FKuLMy|N2+!OWZ=Mm=6X#iY0$v*KZl#@{gtDaQ7^(*mZ!GIGJF7eUqmC~^P03b_(dS(pc&mEWUk(aKIZzAL zgJkdQh6OQ}xT}lTxcDmSt5>G~tRb!O0`VXmjx~6;eTn;VE%pe6{3%Hm5%Q`KH$Yu? zJ`U6Rzd+${tP>3Re=uAzWO2hti>t;7`OB(V+>rlO>I~`vk?}(QWC=p{@Bde)pm)6ys4V{k?_wxn$nWVxTuPifQOJM19>Vp+ z4-<#{Z^4U_guJRj_K~C^|I2KvoHr{)$bYNumonsK3h;vo)RewT6|#T- zyFhAM%z=hDm;=+(g#6!VzQeY}AEgcX-+1n#_Jb7ZLjHd615PIXAbrSR9f>l8{NEF# z!#mV(LoLgXGlu*xB-=49ahgma|1T*DWeSJ<$LohwXq}$HXuN{j(cYk*1+_DW{2j74 zYKUK}X zl+GK{1{U_FP)JV20@TLwB}U_3=S|f54de^?PqiGV<6TfgKE=5LHC20^*HNE)i`ufI z^V?K6z)Hl6u$#i$m@c+3)zilU}fSH*bfsI4*6d~N28MJ zGHQeQ3rk_9A~vPXQ4hJHs4e*zmc$o2uJvEAXvq5v>tSttgt}mRv%zc2_vUW8UdVSvQyo<`_}S zaLthaH=$Fo4e<-qc};3ryb0S8$FCjof2Py}I}-mGrqF^ykvbv&XEf8CzoMp~TwU9k zrlIzMg{W1s857|VOpNC+7JorKzO&Y|xHqby8&UO1>)Y~cflAWwN(xmdTtj7VR0Dfh z)WNdE6R;xgb-qOnW%-77p}wdK?L<9#86tYlp0F&S^xB?%emfhUuA^+!so3R>k{T6oK0@Mby(zzdV5nn~+K(M79?|@p) zqfyDa!1*Qm>wh-|wftw)n@yrtHrLrOK5==>iZxK{y*EbTXw(bKa-50(!)sWpwVju< zja{dtvk@lbcpuc14M+d~|8EP0cvO6gO0ol}?)!|+gxLG6Ie za4BxX^IHG)`-c3#P|n)V=Ik3}WAKvqXHUn5sI9or0Lz7HsF4_g{AsT@4wXZ728aBg z9S_Hf#P_f=<{o0pwhtbL<{}e;*gvnTv11C`XK*X?+|3m5bP}y4mH6pc~ zotz_4BQqB@$D2^={2*#%e?ookA!>gJzHjD5|M!1QC}@M|hZ?e}s3cnM>W`wf+?$vU zlMJ^T6hWO=4b|fTsLyXk<-!r?O;m$kp&FQIgpF_%hTBuoo`TlpUexkQJJPI%>cL=C zZhVAFu8l6ffV%KYR1Xu5vSiGLI=>cbs`{d)a5ySwW}rs+t5K}~N)+}|!M{W4y~F+Z zbc_wr*W=vtAIoswYt%EM1k1KD4neKsqZomgP^;()4(2*9k@sP*&xDZwJE4I%gZMjC z#~MuJ1PxX9iRO5mMZ6TXEb~k<`#ZNeUt%+km!BN+|Ld6f*ohWopJE%?)DKwyG~h>6 zLlb`#^8a3_BX%bK0qbMI@H88$ai~3c1?t9EP+6U2y7jyc>L(aeu`6E0;#hWuy=V+V zyOs z{uX;-p1HR7&qwWu*RTt|H_sY04Aqd;&P?+|{-1g;#OYf9@fX-D)Iw~k}`tkt%`F#Qjh`o{hEeFlwt#vfLV$24jf}qq2VpYL$G5 z8S!(>#{Ip$6tr${p?dTJ6XAQGn3+)x%j@Dg&X%b4+zoYuk*J)Qg}TmRRI=SbWqa(W zwj5hxOX4mV*2c1jg7)l(sJ%baXO?{RQAsxnm8~bRA*TD>deR&9l$?kUaUE(z7Ot?3 z=>#gLo}nIUMZU0(HbSkk9$&EjwHH69LPHv}(sshSsJZNhD{&|4ytb=sgPDWM<{hZF z+PA3BS6glNKn?Xrs1aF#YQQB|{~XoOBx}NUpvoGn=#0A2V${}p()kbeVSQ)$(ze>^ z>&SBAlh~K@3U0KiT8`TB)}f|!J8CLUpr-0K)Cj)By;v)}$$A?1E4x5zXAjhz4#jQw z5&nVYH`@hcw%E>B6_qQ^P(AL9TGyjc`^PTSYPo||Fz~g-)lefF?nFUD5xLbipfaeZ z)DYA|X_<37YO6hk%JLhip8bw-FtE)U5D!}rN1?7W0+qa*4F zQT`iS7FAF;>WC$A5GKcUm=*V6MZAd`p)5N>-VUas7!D+UxYKUbc9-?E4{8~IfJ*k= zsAtH1{8;Nh=Wceo04>9s94N5I-Uo)Gda@UlY^nCzKG7DnRo};Un023heIJj{iKF&g zL(?3vWGsVqsBepHa4qJ;&_P~!xW8AJf?7BWHAe?s9QmC!pcK}leh&IWkLvmFsF8W& zOnS(^7i2{Zc@@+vSr^pfeHiNVXHiLd8N+&c{EdR9V8ZdZ@>44^%dPftrGy zsO5GQ^-A>?m1KF3*jsN6+)q3SwSQDOYFqAn>_WT`HPTs+vHqJ<=yNROO~eDJp^|&Ma6K`1#V$aj5%j>Iv?v2pTWwQ@w~0?4yc}efR`f}Nz6|C@kL9z zeW(|fbeHTt<50QsB@Wg4KSbeuDoXuqJ==^L`g5oa<2k0s$jkPek3v1iD>!?hhH`;( z8)}Nqp|boHYCj2Gu@OpzO5UT>_Y-)bRd^!-kX+vBH=Mwit{!1J09mWmf zZCf^R?pkv8M)hn6D%r-NZnOyXoL`Cc+0b_59Ig}p9=XJImOfyFamyq7l6(FM4f~Q4 z`#hz`oS5QoHW1<*|8PUB{@gCO{)NryLCnMr?m9y+?Z#PABUlhMaxG9p-V3!#Mqw<@ zK_%%q=gXI@e+_x&S2pLRP#0>8`oLt=g^r^3?n_u0%J%|dAp)M zw+WRC`%pP`2ct0l8|!Gyo3IUOowxRu+Z2~@!eQKi?cRm_U%$ow&ysU0YN*%YDcphD z;U@D4i^88!$@&i}%aa8n{i(`_8i|sq)lv^r;*>Cj>J*lu=I$1%Yy4n9JSMZf!cU>U{Sn_qcD9u z|Gcobkb>s+0BWutV;oE!KhpnBmkHIND2#_iQQ2P(m5enoA$G&=ILICU8I@bVqISBs zuD)mj`+NoTfB#pDg0iw7YRKlJF1!l00ey$M;g6^bUc(yr91~-Og!Z|*sN`*jg>VY0 zV>>W6-a%a_Ng^A$beLP~zaWLS*b+5#-=LE07u44I2!F=Li6i}=lI2Ze7k(c#6{}GV zK7+c>BaFh@NhAHgitU3%n9BIcBK>Dax%VQyY8>x?Va?fU3Jvi`tb|#UNBYaJ3u+Em zV_MvWN~UwD8$UxOU*;6n^RlS(x}c_P4A#QgSO+hok~~LBYjC-gk@ojLt*OwQw?m!S z)wuc%%Q76a)b{h#Yq!8XKU{0pz*b3C2iJdz=j|4#s3Rx{c@ z&@i*Dj=ore^Om4;?M#@$BnrQva-nOMNdM1pe#5N9+oLRLE}@3*HfqXVp^_~}v~{2! zYUl@{>ZhU3+lpE625O4mq3+WlYos@T28Pd2(7#SqF*_&X)f{$#*E#Km*>YJnmqA^y z4_3s*sIB%A*2SpYmYn@iH`<9B(fE06N{XU--V@dH&ycM=>}{c-DY%VVCUIhH3JRj; zxG!o0S&Hh}3Flv^&!x{B>Hk2X0%|MXibpXbpY03Zqo(o#w#L}}k^Xv2)Rz>X-{aw5O)qs7@+o(66IEDP4d3mukaXZv|#A4L5;Rk$& zzhfHB#ofYo!*|X!MQqLsp*EPZs0P(SHLx>kDn_D)ay4qX?La*pzei>FYiEk0k^aLh zFAk*s5^6+h79$r5QP@tQ4&Fg+p@oavKClE;e;Kv01GOygVl(^)^>SOMl+`CF&HB$tMY__F{#T+(sJI`h2Me4VF%|J))MNDus^QPw z@myu>{EDdaTA;S-eyE)K05vsR-0=(8l=xv8*1v94sjMYgOVo)UViw$ljqsFR01%;!|M?%_&r?80mkRT#i+V|3&q* zVkMi3HmH$Vjvet3eva8=BmG}i9l=h-Jt|wWeUBB0-=T7)d=)$13$<)dVhs$ZtZEN~ zw%DGEFR&d3s@VrS;9%nEH~`;aU+iDqyo!3B*Q^og|AFEm)D0`vw0)ruMicKujnoy? zb%M40j)%P=6m)|V*dNQ+HaFrJ;tX{n{l9)$g4%ME*R_qLKPm@S<9590oLvDSsq56cN6uV@DD0CQnVpCi%@7x zVJuF;@fd7tADE1piI<|1Wf#U`pq*{aRj?lMAXLxxqk4Q3zreWd?S*DN>RE6B)qww; znL4ok^;|C7!7Vq`hH(n@_InNW!9pD){hy4qMh)essHr-P$?!7jMdbl%Cw%98uT!M| zWi>lip}q&|sk*^=x>MMC`jm=t9EjW5tctqv1m_0)j`#xZz$INQX&ZF4?EVhbfZs5L zFOmPc&3lWDiGS*D$(*Z)CHE@)oca{uo_4}^^mCw>4f#~8#R;oXS^pR{1$BDchB6P!=JYRAi_#9Tq^X74FovR* z-zTVK+=ZI+pHV%&|Nr9N0z9hg{rBCIF$hj@o!}Z=N^y6ByCg7yKu917E`t{<6x~2^ zhf*8{m(o&73nW+tFIFm0TC9}9{k(gvp=tlW|2gNLd(U&$^Q?T=dVTqtJ(C%*8kla7 zsy7B@C}O}N;5bkw?K5y3Saq;!=zh>T|C1^7gYgSki!tjEua4h^32Irb0wut$p!C2+ zP47-^sS&A+vh=a_P^b0S zJS+H|dRtHoG#jQSWh5x_GrF3FJ8F0ndX%|6S9cgR*g?8ms0)5m3gwE+|7Y1{D4pPy#p( z%5uI8%Gign%oD-(pxh}>gR)V*@KKOi=^3XCwFQMS0u%$QKvB33hJtCws{q45aoh@I z78^rAaXeMmmw_?~w}au}r=W~|)(Og9RZz~5C?5q`4y!?#6kmXK!QVhxuazdMu8siZ zMiUFlT$l=qgB74$GIxQpAN->E!IP9+sK%-qTY<$Gn<#KG=$k!RwV?QW%0YE-3x+y? z{XzRwby~%O?Wu1C8-tE%PU{2Txb0Wds;c{S{afjGLjxek&+}p4IhKGp)MM zC`Li{{76u`a4J*eo7r9a?P6B1eTMWtua~PBd3YS39zX_%Rja90i78Hl2z=~iUP&Tlkpa+}-TL1sE zlY({Zf-McMCH~|!WQ`b*` zg{a?O!}=FS+O;aus-OhY0^A6817%-uu2YV(fmx}S2c@SPgYv|rD=0%W1(c2KGfGsg0x#=%L;RlpdO_aiOMf0OeKlDR33|0+hM1WQ!W2ZJ^YBUsDLB@UteQ|5ynW z1Vx}3D1r3?M}Q+hSrxy7sljwx)n1+*lp(1Mb_bh)E^q@VcD91DMV|m=vffh2|Nm}N zT^*{iI@lk9j-bqiPe9o^lfkm!6Ho#uyj=xe3zSJ00m_az4V0c+28yH2U^?)$u79KX zFF@=4Kj#h=zzR?}Cz_LCHTPesG-vDKdGw)G%!Wy8|KLA&Q2SG8^W3O_s7_38mCpZUu z0-ge=_?^~AH(Kpe0Uic>K~Dl@>n^un1u_!!NlRx?kQ>bgP`d6KC}Z^_C=sVRpbX^% zW%ic>+kkDrrrMcPJ*iqMqgVMtBy1pKiq1*;m z0lx$7U}oQOwP9ofGef8c%8+ybr6uv2KNFNae?KSzC2MqlqPo5YC_UC4l#OVprf&x8 zQa`OR-3j&VI2@Fr^!X^r*sTMrf}er1W4#7tXDj@vy7RRHMd5u=0@($w0>9MsfuAWm z^T3Y62Pc4OPO1l*v%sa)dwi~5y#5L1llyCiTGKipY7nHr* z@r4Ssvc@=2VlOBy z{1Chb*7!I@*)FLTR0U-=Hv*+)13+oXG*EhEiKc%AR;2zTC_|Y4vKp#} zU}GHi0QW=R@U?nNC*m8{zs%CX6a*K7(&Yz1ac~-xA-Mv+13m_OgC)OJFF0m{v#9?B zb^}L#rvm*N97p|6FdQ6xMLlvo12&^x>8g4YYW!8!{|pGYD1>B(MkdjMvqZ z$~dq=5P^W3poiXaT3H)=7a2)g!ch!TAk3d;% z#qasl)2QnA)YGgj;6NBT@2f-TJy6!`Z=fu@5SlM<~=Yo0e%EVvapZ* zsCqE;p;|@dK^eMkU>GykFIA_%T?6 zda=h&>;HbDK>0tQ#=j|y`du|((i7E#kHAFayFOL+lfW+2eMO(Cv77*QhHxER4_1Ay z1aE-7s8@bL%Rm!s3BCkZ{2fr9`;C30Zodyf z8tmhi;<9eBBSE>pPX3r ztR2szvAM?K8rOoukV^t(t8SdyWt<0lfv3R=!7l49-PfQ`9HvjBy6|04CS7Mx98Cx1 zbXy9_)oL9mTkU>Odgd-DJ@p$XXM;1XYDh^?cG9N0-WQbBGDYKRP$u({v@V}DCVA2+ zff$WbLAkxI1!W_;2uhdU1;y|iQ07XW^h&NNSdYm!5_|w2$>6fSo?~Msm+=OloB?GcdjQI+%3a=NRFU;xh(cxCS`pu~|)ZEBa z6NlKl15O0<)MEXQrm&L26EJUWBEwPUIxb@-n7gjada|*x9+6}CkNRrTm29N;iDTde z^d5uxoZKB7yNtUI9JEmN({0qGd(ctgC!Ji@f75)}*<~H?L%Oj3M_}M$7nk)Ct7TW0 z_0Go`a5eOE-Cfo@mhnAY#xw%D4a#yF*vn;INZyTbvG4Qv4fI3b(%WUdmD{I}%lf61 zFt5uviQY}H5Bv>%UDlV;rS0dk{(tyXKh}Q^1SUpf2!W;j)y8oFoJ~D?fXn&`mOsE% z)HlblJi+DzIc(6|3bv+xHr8c5G4;f$L*^(r4SI$_><{2#uq*fyYzKB2?6O{OeB`6h z55iBNJeO-1uO``;1edWA`WIkN==~F2#!uksAuj8^+`YqG)~DtohpT|U1xwHqaU)#n z9~efdu`fQ_WgWje!712lKE`Dn122GEK;QhaYI4<~C)(g();P6u-5T$*?sOF=s2yz% z*c62~;99WhM3-?Nd<32Yzn-L8wqdf%x@^7zq z_y0vu$j_|aID_Sb!l_wmd3`zCWqlid&JSo2^z3ugsknZw%ldD(<6wInx0>fNyx=-; zAed&p+7U;9QvVk03pQHdvfd}$2Ij_IpM@^tv8?}brWAOowMcEPeHOc{|8C#CM2&gR z57jcWEp=HRof-kkBs>qw;j(g>x(}>e?lLB0IC2G(6Z~PN%lhV%0;^rtWBfd8T*f-& zv#jNGg?|8SE9?KOb!rlM*1N2i%kiMx&F+FhjA`u+s>|zba#@dBe*ineueI4_eZI#8 zW2smAh?^0H*Mibx-)>QpvfoygF?{znwefTU$H0#OeVr)W*sfYwb*Ibv=7R0uBosRB zQVy?yGMg*zR_pc%*o1oCJ!-4%3l68g4wPd%-(IzKw*+O&odmuEZrAuDDEm$!KkHw{ zVwImm0X)1>E|xv3ijXlC>*D7>rK1gn3g_Jd2H+z~_1sH<6RP!6Lupfq4PSQo5xR^f1P1uZ`aP6xXty9_sY?}FOm zA6{brz_0K5WtX)D$9|(G-w&W%5W0TrvK}_g2jz4;2d)OIeW!NDYhZ2a1FtCD3d#lK z5hz3P$yIeoWxS?##F3ypygCgggU;*Lobef7Q;@AT{DzuzH^B+iy*FLf2Mc}xrAvF? zQj_!>Q2zNm{Cjm~cyFtn?ha^&KJX59z`=L9+JVpRDa`l-fl)8`3H3B`(L_@ z+XVdbPc|C5{Q4`G^{n{iYi0MHH|oy$3ba1|lg)5jXF!-n6O?;^VRIYXF_;F-PxVlc z+q&^w1?8$1WOrLnw?aTU-QEQ|fh)nK;2+>zaG}G^t14!{(`~)8vJEUty`GEjKbEmh zq#)Pok3pGar@+&*hkWKH9?9xQ}|9T3^oo8Bl;?kr3@Y$ap!8fz@E+JRgO9GKiyLNCE!mby34RO87YqIg z%I!CEh}-%Cva+C@_pw>r>O-qwcH|y`(lhRCs%MIW6{)uXCGZKLEZ2>o+ykC~($H{U zcDHpE+5pOPJ68_3b%Ut}ilQT@+j>n{0+g>-?+D7nqu#mP*6Ft}w=(pz#(H_&)+?$d zU~Tk&1m(44$-FAChF~%3{lOT}H;;liGV-~t>vj=vFV$|K&_nXOt!G2;fKRFS0A=jk zdEC|oVmNr2df`wtRIfmpOCbf^)^)usD0UixG88eoJ|AQ&_ZbJIz;Y^9&~4pn7Z!0F zeEOO_*lqpi)9aFM>+3mpmU3I)h%&yk+uGwRhPkb4bUjdB!ZiownjNKa0w_bbT-Oij z`ZpS%S#;KamNJYXf@MK5)EE@SNKjsIjMMampxoQHgEF@J!8+hWT`yZ!)xBVK=o>)k z`a7UZ(l@$Zq@3IEP_F}8um2;Z0AY;AMH+X3S)iWAx1 zmK}s3jPsyGehZWriO#yJt22YL12zH+fqg;Q!DfPT5jhOL0NwSN{j3h7zT3JZhBt6q zzm#|#jD-AtLuKz*&`G^;Bi8=_3MCu4ttS~KSeN={Fcka+lv$ghvEo+&Wdmsn$`g^U z8sk8DX*E&fL2x8 zQ*)#=DD}pm^hgvaJvIfL0d59mgR0!zZQXFDf)emmQ2hJ?HUeLQvJd#`wjd(9YycPq z;dD!8EA?`%+{T~OJB6#c(XO@ICnob7 zcT$JgQ&1cmoz)~w2acnfAABV1e8u)y-|)Z2EL}8^fvp2};)` z_EdNQjG$h=m)be!gVNQfH2$HnM1`d z>^i`0tOvgYKfu2cAESD}K2WXmd0=Mfn?c!t4r{ysN(&!=awEzWt7i3V&`bR{kaifI z;?&&f0@k9Q2+DE38Vq46?Up8A7C*1xng&k!Y8Sz|kJE%bQs zT`>DlWuPr60Y-sxMVk(a;{~AX`O7u^3Mf5r50n6Y0`q~Xhqwq6g60L5_T5$agY4oVN!0Hw!zg0JcF;h@Z&VWSkj4{oNu z283tiEaJI$am`e9EJk05L?+58h<*b-PlOc~KRe?~%Df zS^nXy8|9oZjza$$*?8!TtWj7d35iMUGsb8G86kE`&7mQ|kTVlz9e8u4f7xhW3#Ldz z;FpGe8`=BX#(11GV*4D79KXhAq$bb_&?K!SkUr9Mo$65E!0S(=76Lq=GID|ai1-AG zd&pm4*iE)UZ;Rq}f@4py(v5%>@Tqo?f@FLTjl<8VNiK(;q=ndaK;J{Kv!Hzj?S=LG zTNayc)2(n4nTr78$daz1$O~92HAgX-{0_ar3m)quSi<-US|mXp!r^G$N?s%zm!NM` zs>VQi;|{#dx+f=6_k95KI~+*bg+gT%B=P={afF;Q@$%l73*VvT?|@4QvOI=Hfctds zd`c_VXhm6OvP7)ePXj&3?1Pk=;T|o&ztS7wJ{Zajp)?MIsBb10(@yx8J!3RZ%Yq-m z4~E_lLn|>V4=aD8E(aA4IgI+yv>C6`23UV1mjM_+mUCuuc8 zn=o_(qNI7$M`N&n?v3?0moyjp9X%|iL>8UJ1#yJF6VW2xo1BsLu!&dqcUZ^(wF6C^x zXXfkRc?Z_uhwqHWIC+4^m&kqs)`wpl`F+sGQNKyfDc`>(yWTXEGQgN3ju1@J!N4;3 zPFZ6j^%(7-5aoF7^cM`KOyShGA-|o>nPc#VxAlOUJBU#e`;&FxgSD**oIl2Nh#4W| zM9GVR9Vsjprpz&IyoO&D0|(&8;(W30jf(J5GtOWm24}k|^AFHQWg+VHHL~1QtQ4eo zK6%*1JGI77a{pcrb0~&4L&%0ebCmh4fl|j9iKi@9+D8Dp;m?FF zKQyyWkqsX4S?PdoIsXW6^v8KkvLs(-TE+7LqcDuJ2w$WwiN`%gUzFA(I0oJuoYsQ3 z5#w&%Iy*A;srRPNLr`NAGW*fVLlAtX!I-b*`cs~Vu8AG~@7xF?^ER<0pOFItk{meV z>wm4MRf@t6NIg6J!Qd2#@(ua&GaOMEkhG4nd|{!a!Z_V7&IzI#xiC7VkUIt6OK^{n z;e%1eF6fQ4&!TA<|05C^3V{?#Z#Xelh@n^)=r*koD=oxW1?sag-U!)mG58FW^c{S! zDjK{NF`nt*QbCtzK`qGNVOvrO;mP`|qFci|;>JPMEyB0bMVv`GL?BQR`9%s%+LDEleb{kt{B&p6_1fUPek z3+UvgUXbpVv;(I+aJ5o@LFxY!7|Dvkvf5A{A{;_1Hb9reD=y5v2C|oQ zU^yxO3GHL#mLa!D%MHXPKYnTq(suL1Zv?+6wv*A_h>kCbDEd;l48t;x)5kC*twv!O zyiFoVK7nj9GtNgCe680192-1FGS=a64zyjAC4GX;@z`o1AEZ78 zlkbE!x5*-<9`BU1tCPy8czzv2`KhNNK!)#d<=gQjwH#8i$Lm((?50Z z1!$9zdk350W=h{&w zx_dp2>q6&?FpN`_CD}1lkw7!jtxu5mQ|D_Vj3?;HYre|Z3#4~&c9zN!Jp`XpmLHzX zl~(yTwrWN|fvCrO)8V{~#i#upVIJ1pco;*qQ6Y7pwKt$G0AFgE_jJqTt@bsPE9-!|QjbP95ySlO zh4o7K18h~Mo(NA;0m|dh>4?1^1k%(;>uSLqrv=_<=eZHsMy`q>d6aevlr$VX24;bF zOv_dyfM0YA+k$yDy%@ppwvSPR`nM^1aSk#?bR*>RXT~jE5eJeIaU4jMFmjNnFMyJY zY1w=jX$7r>w3J{?94O1v5cA8msv*wiLiCff6Y&6yH^N|d=o4xEHiD23l*n_v)8s!;EP#V*7{5)qA@YZH zpf@RZgXX2a7}>tMXI>&(5c{vNxd2^BzYwsGU&S%@lCvT#X(k40Bjm-gr2Le-l22o3 z0dkTuVrV#W-(u){>Ls-7UYuUj#?xWEE_(7oloinBQxJ2|k)Q4LuAla$ENKN~_7@30bHz=jT*dCZa(2D!yFQ9!(EY1RqK&0lO*`eYW5#rHN8}{!)%Y#tbI>KV0q+vbA>BKQ$~KIxzi?bY+4mXW z;NTX*zk!c*WanY#)~yxAm9)4yiVhsL!l;vSApNPG%e!Ur@hm%m9>&fqEijpKAIkD+ zI7zR-Pqgil^8U|4oX>(#RvX%l^Tr6J)h!vTd!oP6xBhzJ2NTp>EmKdovMd4gg!ZYX z_to?k1W^?o`Jl@XX#HvIV|@N4FN2R`aw5z&=k+|A5g0fe*F7doZUFM0x6G z$UY4Jj#1tI3ZMLpNpmQdN9L zdIXbEe1*~(f=NJFQV;4Mp)9E$NcP`J{xTaIGgV^CeXU!{AHmh3<0cUP{V5FIdgk;`D{YZ&1~ z){6R|6s;D6YY6TGf|4HPJ4LNzLuNVhyTEe<(2laCp4hof{U&mEsdqxRG5G*AH@1HR zN!I>j96{(NhWA4GS{o2GuR6H zPvq5uaV|+SB8&V&v`Cp-TQ3tD}=mG8U9P*82h{hA!8b>zDOHf#fa1cGR4wUo@Mtj1m2JY0fFoM2`^8}pB_j#N{FNS)4WL($^ zMqfTD*@yZ&*e?l6Dwv`%-T41gBPvDfucNd`x9|rXP1Mf%K#xJWA@vX(xv5{pxTJPk zf2_u=I18lX*g8rul5#+=gWg_k^FH;Lvi>(Bun=QeFgyif8ECeE62ckD`=C`prlwZ@ zg!)!po(g@o?ox3yi9r6MK2o=MFZ?6OOOlUvSqMK3dxLKU1wLzTeNCn`fN$KkQVRmv z2cZJpbwexdz~NX440%bl$YU^kA4i>$Sx9-R4t$T+xs08(zBnN5LnZ^V737PN zt3vDrF%!l+ASmfiXom?bn|3rEg;OY`(k&W=@ovbzj|~6FYOK=EZc=}j21M$fiPrkF zsny^FygdEo4eS-$!{X0nVpBUh70)ljJk{LMW%BS&Ps@sQbxl z$@x$Sq`^4(ciM#fS?%~52E%kOl!A7K@{j1e&<*=tE5Cu>nmIDmqSODgV3fvDE}{&i z9@HNoR0P5$Z9sT+pl4y(^v3WR>KQS%k!fhaAEL|g8eX12-^ENokFgn9qiRX)WK;T?Jb=0 zzf)bDpVK|ja6w~sx zX~+}Gso~#JV{UOWDt~JIRlwjq1ZrVS(uXjE>B>ITKf>5A@JE1`;f3LJCiP?-jeviM zT$;?!#u`K66-4e7xCR`8{CChZ>0U^{#~O4cWu<&T`oAuQ`cp~9>2f0c8ihy%N>cxx zdVLH@8b?bWs-h7OJr+aV$?p=Vq_XIxgIYF_H#H&s4V zL#85j8=#wxvZN4rH^@cFPV^GUzF{cO*8&Sskkk;yP~GayI60!}!aD~~QbyhC*I*R& z2pk2{uev-JysBZe-+SbRZmAh2jN}FNSXmHEx8K(I4}~~rSLBj_(jT#kP*?l&_*EB z6qK|*#ZW2=OFcE?UmT?-M0E%pOUs+kiY2t_1~iXW&aDIa5?Xy-K7g08@GoKbeaaco z*^doLCXNeJm*w39ncBz^0}-hIFQs7fi>iklt*GT7~x#t5MOGO0N`StL6mp=@7KLjVk@O0I2oyRYFdW(+)a@AC zjEtli+OU+jU@&D0LuRW4M|yybHo6!7pt;@2Tc}6FZ-m}Yvi>&{^+gO;f%!d-Bt^h1 zs>@RU7^6RHN2#F?rra8u8=ax(-qO6q)FnN|v7~4kR|tpakoiFeFZ7Pocfm`SmhtaO zr7A+d!njOixwH`xjD^>a`Y@EAgGcC%*4mly*CGFqdP@isBe^I1Y}%g4*Fxq3c`3A`@FhK$ z&wqc0;BOcy494Q@Hw4a;w-fna1SY8=d`Wqr|4FVT-HW`WmGD+jk3v^cEls~bKtGea z==yu`Iv|sVAfBO<4!k1kKeuk#bOc7pjG`Lo~@y1Om;IgYbq zbTzVdkUK-mqQIi$%-H!HUIA#s;I~6BiCjVldJ6Ql!f-Uqi8!nSvxRn+3tAy)fixUp z4+dWnq@;21PE&725Zx%-a8eYVSCnUI2WQ|_qrL&Tm73^ zNk5RMA}Hy)0_$&1oR`H|Aa&A4mtbQmMzhg7;qV90kW|zq%>oM}R~&j}9lX$6T0R;7 zPaxJr@i5L0Ql5=+AjLx)fMQqj9uykr00$y-A00`rXmvX3JHP_SN&1v}W@KMezJ~LT z&^Ku3A7dw){6qqj^*0MeNefZv0%J4E%cy@seJSP6w5|!tziNl~^$>N|Ev$m<&)BF9 zKT!wZqFfB!COH3A2mK4Q2AY3>@?gr=`WNR}$-f|63FDo0q(bk3@+R_ZawqC@w9^kU zE@>u4E)aAfRW&M7eoZi^v6X~QBKaicqu9+02GT?1-jn;kq&b>e6oL6TpN4Qej@qDH zlzMNXJ*HdzIrJyeI-K;-v@KfyCmmcq=FUVN;5D!v{4!)adS4N6GPLxpx?oxV=OG4C z1{`*!a+2H!dLeBj7eRahtpg5*l4FTJGr?AdR-F6|{GUKc)p5QX-s%)~sTy0*nMvVY zWU~rEQlS4mL{nGKc*SA&!}%FnIEA39(b}`x;6lo+$O|y?8h(2WAJe)EG2W5#HvuEy zEcE?)+=cvx2Ao1}D7wCpx`kgsScIXm7;cTD9n?! ze}iC#kXPs+Paz+H(@fMmQ~q7IcqQe!=w3kYEBXC}j0k;>gG^v4Ei{Hej^ONl?Kl&{ zAEVR&+EoIa2L_UdLT+>e>7H)TJIF~Yt!+rTm=5j_c)wb7`u}sSoCCraIDStH4WK>| zr;-+EBhPezrIBe)ISq!o5Zq7L$VP9Jgq|ANUD$aE21Cn*+_&(*qg)i(={hj6d)lWB zKZGGEH!X{y`~!~X(vnQ@+d_9jt3V#7TbG5h9iv~vj{$Sxcmlj0IFYmh+9G5EX@_o9 zU1TN`P*#HY2K05HunS^4Dv~znfHF|dMgEG9e5Z=@*=jZ);o>U z+SD^Jp__q2$=||Di`*)L3&F-be9fo)j?90jju^U?($RI>2xtU~fwUauP0+96a5M7b z;SYk=j&gqFR%;udQGS;IHtELH#_>G#K7#%o^83&Wr0bNg%jZAV!?=P_BCXs=9!0r3 zig|U5+Uu@6fb$1rNnLQbRXhC^XWh|R4sQ}VCy|fD&NOHlDEA_lMkfpW`zabV5Wj!P z=ReaRV8h5A6jBlWbc8Emygua>&;sck^=R^Haw2+La2ATLq}k*a$o@h7Yn*=w|4aCT zC?CZ3X!zrBSPZ+BK}pBqS^G~_-CggabX+@pgFsvAGjuDTV{8KoN1-_x+s|pq44gHm z{x!J=K@HWx9M(3A_#IHOj8{Kk0?DItUTosLKN}5UIN?mZ*Qg zNjB=Yz<;N^7~Ku;OC3aj@5NDmDkcGB0uSR$(h=-gzyDT8NBdAmnv>Se(Xt#*G`vd zhZBf2A4(3;3+*)g$2dCxO;UA@9dWRe`Z9VUfpQ?7z+%am6u@f zxz-qtleFYEx}FJ{`zeBKuIU2Xbg%(ZJ%;AE3;~8G)hp*anuK1Mjhx@8dMhkO)y9rfc__>-BG9FguJrI*7#x zOFE3gZRo{yy)fk~$jk>Nr9!U(^}@QvLfcEdIe}J&_F0PF%1`Sh-6B6iZ==Oy{FhM) zq)&AKQvZOKOxKRnA-ok@ZY|iE7LBEx7u=|2S`kzgY<))1lAfdUl=2v8pVQ(P@H#=A zfZi3IkI`L#f8%3qz|zux>T*-QCT@_QJWg3&I>tpxL9MAG*JD`^X|O>xkY zENM6m`W9MUeB368a4kO^JCejdUlhv`31a|)k_zCcJ>>>Eup*S7pl}vBN$D|EPq#8u zI~Mvo*hnDvM|LSTLec+_09vDWf?N|?AT3g5A72KgNZk?mk@79@Jj@0-O+dK`22*Qi zA~_p}Ht5BLM|LCIkDR3K3`FKBtv`nTesUm1r6?EIt&fnGG_w${h|w!5BIB?Y^yn_k zhVXCNij80-&7cP=5a=N=WzsPiyHo92{(6NiRY6a9L_&f$VNZ426_>ANT>QX@n4+H2 z9#5=Q^bCrLOH7Q8?OV#zCob0OiAeM$_VaqYv3)#oQC6{Ky?UPhago8LJw?Og;E+#JC->I6dgv-CD zwyjELU%$Ax1g~dUzi5Ubk@oP%GXzRhT)d}|H$IXficW}&iAao&i>(%1v|e<4?;$Y} z@kKrGi*_h&ja<>N;Ew&gu~yh`X)>G%-WWolFPIdHEiQrsJ;MlxGQ@qngRBXoBzpHF zpjc^&FcSNj58Bwaq-t5Zcif;s-gy74wzj5D{~w)f(RP=bn*Pq+Y#-U3R;>O%d)ktN z&B^_3nbXk|3DJF+KGJ>u&HZhugEEBIt4oK+4D?vz7h&#*2?{A2+>qwgtJA_0XZ2WE zFkLKC){IPu7%HLg9gRLCt5?Pn@EIz zud9ebgJNW&>O~vt9iHfc=1EA5h))bNJI%38^hJ33#SLW+s1+)c;-8(BU|D3S`$Q)U ziisG3xnYd8S9GL(1LI^e^&S$RfGT2^HTo;qvKkRP!ZRRRZ5FX{iKXAp7d;Y&`NbSt zU7ux1JCJ=PLQgEFnWW7mnXP*Y-5XX{|W({(M_Wmo>W*{O$#|YeD`erY%iSrqaVb z)vfWYNeF#BrAL^97u!PoZx-7Y*;3byiyJU7B7Q)E`QC@NZsl9BQ%1AL){A3OhlPb1 z4Tf98`wx2Wh}hoVm>7lu3ICN3ZCQf+_mRBS3T`K*=C#wp8J>UxOLXlrdu%%6YirI=T7!BKDZ z{dK;##X5aunhdl$JVI}br92IWOJ~Q$mhv>}&8U>})bG@=l&4KZf}Ctk21fM7XS~`u ztnDP0zys@NNP4Wa*%~7w;uA`F26#s>uUWcmE(v0RUGRVz6-!i?r|5q+2h0cU}e%G&q*oA2Aw2jxgHo2<=F?R1H8{yh(DlhUOM*C)Hb z;&WRSd%2j1*a2_b%U6sI^VGFSfobv&k{la;?@L>%jApBTL3#b&;GlV#{Ej?9O>ORg z*@k(8PCCsT+ils*`~`!uo4E@Hl}b$`*g0Y%2Knn13~HRQOmDd^(8#|}OF4Jj4v9>R zXXm76^bw`^3;)6jLAz`z=XIS*K|w)IIlhLP;UTs>Au$Y&TG|Y6LbM!f{@PW7p4fst zY9ZmyU*?^l3hC`kJAcncLDy_5lFxP}Fk|MPL7o8<4^G-!KH zpSt@+_m;)S0l*m(k6{@*>4>N}7R@jj*Mzts@r-e`>XGp^tM`c>TC<6z!tPt0lPBIA zRii+^#Kb`f)yk9^Hf&f}lnf*iVZGx9mWddW$Qnr~6BY0E4vHR7z>^rA7~`!`pkch% zXAx>rl0x+|5jB~HUAxin66$%0{=(!J_(;ww68a@MuDD@vQP^A zt2tKRRF#GlP>rtox2^x&3AzvBVq-W3hIu2S;$jmMl!3UGLi2R=MtT|w)giY0Y5N4V zNbiq~4@$~uK0Fi@>>I{O%=AlC(~(6#Ff6!z0{4%Y5pv&Vg2?E|9f|p4S&U>J!QoVq zi+Ds#LY#;MCvf4=yQwu@^z~8gL<7Z;^243I9YlS}@xPc6)HJn!-h!Y8_KND|LlpDC zx-fW##l>5PEn9V9)6((0oh{Y;=NAQ4$>hJhIcQ;7pETc-5Is^&SP8rx7nsPn;T|@? zVD|TcUV4IXnXfYYtZDeSb%_iI30_M^jQrc&TN6=nL)dWj8PYN?(HqIZ>{Hi7ZY@?d z(0RR?+7W{iq9a*IveW}=)?LB6^#v|@?VFSemW@0*ws*`BPIRm5dN_RaPVAJPW*Lw2mWQvsshP)3AA+c5*vsSmi8C>=z$5gd1*RMTVSq z4e=BcsyaN2%UrXX5*HQaji(oeai7ye#|9SWPnXl4#bqxaR?%N5zrCR&V?j^SisW%g zN0KKe9ZA}qJi{Md(B3RXeD)UiCdshFp7WSD=GfgE&u(`4u#0U8udCbT*_7eU-+t`oV z%`;u>ZnHy2dwTzy4)z&t)8%r6Wb)H%2c+*AV(H~0=8f#m9O>S6vXD)F;KyTTx#r9s zG}|!WRCHuBuXeL%_pj<13~7}62{I4-&1Twj*|RNY7EH&$0cL@WHj|Bs z=kGn+J}{LhX?@a8H9wC0Er#=*o_a0oHI0k(pEK-VQPjBuy zOW5nf?b&P|^Wh46j#lb2RxP+d(h|CMA`LhwGnnbVPa5PY(4jO|cUb=YYEcyk3r<=B zahJ?!wPqBbiD^y_ad;f1JjoNxW5r#?@&~7!$Vmz5IqrhJt@-+iBd_`J z0!@p)V9)-xTFzW?*`CjT@uGc%J8SZ6GGdzO&kB=IBL!XETx z)b^RJ@3?Z9PhZ>fn&I!-)A~PpVc%(AaK_;_k36%dGsoKByPN92@E=YNp%i z3N~+Vvu7$I1Ilg{=!uD{u#awL=F&q`;P3O8#s9PyEu!qob~F!-ag2-n-5#7gi9tHd zghV)bmT9Zx3^BuVI^E{zKkZq~H#wZy%~}&&PFt|K+op}%DfWk%4K$G=}2$-S~54=40B{Lw|8`A_wR4% zXzcXoZ|8W({@hU(!#@9mj*eqN=F#qsjBedl^JRBOsJXw3W3+j-i=$}1e>_C7dS6as z>)_@|iW%D9nZ@6*t7Eo3-CUtEqgX)6v&~y~97X*vdpNQdNVEL!@ieQAcNF&*AMYsa z%*uGa9cNEqnEfrLI9g^jgK9WJ{0kO3e#;d4-)_NyYn(ZLp(9KBl-3yFUOOFG{EIg_ zPP^YOa;ROmJJ#DVXxa*JRJ_>kh_+=7Y)dJkQTor!)jR0BbAD%Lb6k06@PGU4#tdua z$mNgQ<>+55k2>RIN0NKTfk3m2q($spwjPdL=7TGaN9LUCj_m$luR0Fc{S|IGw%g5} z`v{0W`#Gr3+m=|9;~zUmm?vqjHMeB0FlpsFmHeKp2$>On9uk%`+x5 zsgbKh{=lkYw=T`bqxN_j8kpm@h4v7$*GOk!AN|L@QEndCPH}UT5tLJOYQU7WX<0j( zbau+sI*mx_L#rDP&{x8yeeAXTm6M6J8)hV>Y#}#O6-!#K?@4o#=3B$(@AR9amLqM- z6=&w};mqov^~{krZ-EtJlq^TP46qonLVtT*HV=n6^ZPf2IH$YJak-q~{u;TQqe9Kx zMV+b5S#>zQe|YUoXJ*UgN^kyJ*y;2ide=EV)Ze+gGtwUNAFP|>TQVv4_j10Q#;o4i z8D`$d>2#S72RM6&tdOCTA!J-;$oM4f@wbX`Zp&*1P2;$F`rMw`Ob&5{m}5Q8TxNyo zG@{&eXD7Q^u)j02+ta#@JgfCjec!pw9#$G*&)zuGtl7|>r|Bxrj~UD#8d^H} zeWa|8mlI~6bvAN7zrFsm++~)sF0F0nII}rafN7H*Ma*#v z*gW|&HD9`=vg@*W%N*F@=l8vx4s-h|hs##V%-6`7)1?kab6b5!PBS)+Uf{Bq$y{E< znbvGo$nNrI*yk*1tHhrT!Y z;qVai*nPVrA3eta{8wYv;j6-Ph?)v6b1&}Z;Rl=@%G>;A#6f2^vu78V)5jf_4pm2- zEDdfOayz6`*rn8!k7J)3#4Jw3eaVxd%U!{m&2r?)(YUjkr+VEs>hTfVmXNp<$t6Kv z6aEh$So!{EkHP-yQ!p#A|DjRK=KtDLFyGr}aeqI$dix;nKepw6|B={#GFL6dBenk* z567%$W3zvD#^m<%L$sdqc4n4YqMECq*(iuR!56JvIr7WQw)P+ON}HJ^i|}Cb92p#5 zgC)&#WlP0aPL@e#X8O#LCr9!OUh`YqqKx2nSs^lI_nNmhIkM#qRtv_%jgbcia$6b*>LIQ#JDFL} zxJS^f#JFT9R<4cZK>ll{B!jjs7B=-yHSMkK{cuq2W41Ebbi_?ZIKIq_YIEx=B_qe z?9aW!Yn6w&T^Tc5FGG}Z>D}ZR!KRG|FlhtV1P<*LrfrQQt3SSgyJwN?L|{!^nMdk1 zj$9h{n6}^SS-e&Gxss10p`=C+) delta 68166 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�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 diff --git a/locale/ru/LC_MESSAGES/strings.po b/locale/ru/LC_MESSAGES/strings.po index cf586111..3b3e3dc3 100644 --- a/locale/ru/LC_MESSAGES/strings.po +++ b/locale/ru/LC_MESSAGES/strings.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" -"POT-Creation-Date: 2020-06-02 17:37+0300\n" +"POT-Creation-Date: 2020-05-03 15:58+0300\n" "PO-Revision-Date: \n" "Last-Translator: Andrey Kultyapov \n" "Language-Team: \n" @@ -13,7 +13,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.3.1\n" +"X-Generator: Poedit 2.2.3\n" "X-Poedit-Basepath: ../../..\n" "X-Poedit-SearchPath-0: .\n" "X-Poedit-SearchPathExcluded-0: build\n" @@ -21,11 +21,1695 @@ msgstr "" "X-Poedit-SearchPathExcluded-2: assets\n" "X-Poedit-SearchPathExcluded-3: tests\n" -#: AppDatabase.py:88 +#: FlatCAMApp.py:491 +msgid "FlatCAM is initializing ..." +msgstr "Запуск FlatCAM ..." + +#: FlatCAMApp.py:639 +msgid "Could not find the Language files. The App strings are missing." +msgstr "Не удалось найти языковые файлы. Строки приложения отсутствуют." + +#: FlatCAMApp.py:709 +msgid "" +"FlatCAM is initializing ...\n" +"Canvas initialization started." +msgstr "" +"Запуск FlatCAM ...\n" +"Инициализация рабочей области." + +#: FlatCAMApp.py:729 +msgid "" +"FlatCAM is initializing ...\n" +"Canvas initialization started.\n" +"Canvas initialization finished in" +msgstr "" +"Запуск FlatCAM ...\n" +"Инициализация рабочей области.\n" +"Инициализация рабочей области завершена за" + +#: FlatCAMApp.py:1593 FlatCAMApp.py:7451 +msgid "New Project - Not saved" +msgstr "Новый проект - Не сохранён" + +#: FlatCAMApp.py:1689 +msgid "" +"Found old default preferences files. Please reboot the application to update." +msgstr "" +"Найдены старые файлы настроек по умолчанию. Пожалуйста, перезагрузите " +"приложение для обновления." + +#: FlatCAMApp.py:1740 FlatCAMApp.py:2512 FlatCAMApp.py:2547 FlatCAMApp.py:2594 +#: FlatCAMApp.py:4540 FlatCAMApp.py:7535 FlatCAMApp.py:7572 FlatCAMApp.py:7614 +#: FlatCAMApp.py:7643 FlatCAMApp.py:7684 FlatCAMApp.py:7709 FlatCAMApp.py:7761 +#: FlatCAMApp.py:7796 FlatCAMApp.py:7841 FlatCAMApp.py:7882 FlatCAMApp.py:7923 +#: FlatCAMApp.py:7964 FlatCAMApp.py:8005 FlatCAMApp.py:8049 FlatCAMApp.py:8105 +#: FlatCAMApp.py:8137 FlatCAMApp.py:8169 FlatCAMApp.py:8402 FlatCAMApp.py:8440 +#: FlatCAMApp.py:8483 FlatCAMApp.py:8560 FlatCAMApp.py:8615 +#: FlatCAMBookmark.py:300 FlatCAMBookmark.py:342 FlatCAMDB.py:663 +#: FlatCAMDB.py:709 FlatCAMDB.py:2125 FlatCAMDB.py:2171 +#: flatcamEditors/FlatCAMExcEditor.py:1023 +#: flatcamEditors/FlatCAMExcEditor.py:1091 +#: flatcamEditors/FlatCAMTextEditor.py:223 flatcamGUI/FlatCAMGUI.py:3443 +#: flatcamGUI/FlatCAMGUI.py:3659 flatcamGUI/FlatCAMGUI.py:3874 +#: flatcamObjects/ObjectCollection.py:126 flatcamTools/ToolFilm.py:754 +#: flatcamTools/ToolFilm.py:900 flatcamTools/ToolImage.py:247 +#: flatcamTools/ToolMove.py:269 flatcamTools/ToolPcbWizard.py:301 +#: flatcamTools/ToolPcbWizard.py:324 flatcamTools/ToolQRCode.py:791 +#: flatcamTools/ToolQRCode.py:838 +msgid "Cancelled." +msgstr "Отменено." + +#: FlatCAMApp.py:1756 +msgid "Open Config file failed." +msgstr "Не удалось открыть файл конфигурации." + +#: FlatCAMApp.py:1771 +msgid "Open Script file failed." +msgstr "Ошибка открытия файла сценария." + +#: FlatCAMApp.py:1797 +msgid "Open Excellon file failed." +msgstr "Не удалось открыть файл Excellon." + +#: FlatCAMApp.py:1810 +msgid "Open GCode file failed." +msgstr "Не удалось открыть файл GCode." + +#: FlatCAMApp.py:1823 +msgid "Open Gerber file failed." +msgstr "Не удалось открыть файл Gerber." + +#: FlatCAMApp.py:2131 +msgid "Select a Geometry, Gerber or Excellon Object to edit." +msgstr "Выберите объект Geometry, Gerber или Excellon для редактирования." + +#: FlatCAMApp.py:2146 +msgid "" +"Simultaneous editing of tools geometry in a MultiGeo Geometry is not " +"possible.\n" +"Edit only one geometry at a time." +msgstr "" +"Одновременное редактирование геометрии в MultiGeo Geometry невозможно.\n" +"Редактируйте только одну геометрию за раз." + +#: FlatCAMApp.py:2204 +msgid "Editor is activated ..." +msgstr "Редактор активирован ..." + +#: FlatCAMApp.py:2225 +msgid "Do you want to save the edited object?" +msgstr "Вы хотите сохранить редактируемый объект?" + +#: FlatCAMApp.py:2226 flatcamGUI/FlatCAMGUI.py:2288 +msgid "Close Editor" +msgstr "Закрыть редактор" + +#: FlatCAMApp.py:2229 FlatCAMApp.py:3518 FlatCAMApp.py:6085 FlatCAMApp.py:7345 +#: FlatCAMTranslation.py:109 FlatCAMTranslation.py:207 +#: flatcamGUI/FlatCAMGUI.py:2519 +#: flatcamGUI/preferences/PreferencesUIManager.py:1122 +msgid "Yes" +msgstr "Да" + +#: FlatCAMApp.py:2230 FlatCAMApp.py:3519 FlatCAMApp.py:6086 FlatCAMApp.py:7346 +#: FlatCAMTranslation.py:110 FlatCAMTranslation.py:208 +#: flatcamGUI/FlatCAMGUI.py:2520 +#: flatcamGUI/preferences/PreferencesUIManager.py:1123 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:164 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:150 +#: flatcamTools/ToolNCC.py:182 flatcamTools/ToolPaint.py:166 +msgid "No" +msgstr "Нет" + +#: FlatCAMApp.py:2231 FlatCAMApp.py:3520 FlatCAMApp.py:4478 FlatCAMApp.py:5103 +#: FlatCAMApp.py:7347 FlatCAMDB.py:128 FlatCAMDB.py:1689 +#: flatcamGUI/FlatCAMGUI.py:1347 +msgid "Cancel" +msgstr "Отмена" + +#: FlatCAMApp.py:2263 +msgid "Object empty after edit." +msgstr "Объект пуст после редактирования." + +#: FlatCAMApp.py:2267 FlatCAMApp.py:2288 FlatCAMApp.py:2310 +msgid "Editor exited. Editor content saved." +msgstr "Редактор закрыт. Содержимое редактора сохранено." + +#: FlatCAMApp.py:2314 FlatCAMApp.py:2337 FlatCAMApp.py:2355 +msgid "Select a Gerber, Geometry or Excellon Object to update." +msgstr "Выберите объект Gerber, Geometry или Excellon для обновления." + +#: FlatCAMApp.py:2317 +msgid "is updated, returning to App..." +msgstr "обновлён, возврат в приложение ..." + +#: FlatCAMApp.py:2324 +msgid "Editor exited. Editor content was not saved." +msgstr "Редактор закрыт. Содержимое редактора не сохранено." + +#: FlatCAMApp.py:2504 FlatCAMApp.py:2508 +msgid "Import FlatCAM Preferences" +msgstr "Импорт настроек FlatCAM" + +#: FlatCAMApp.py:2519 +msgid "Imported Defaults from" +msgstr "Значения по умолчанию импортированы из" + +#: FlatCAMApp.py:2539 FlatCAMApp.py:2544 +msgid "Export FlatCAM Preferences" +msgstr "Экспорт настроек FlatCAM" + +#: FlatCAMApp.py:2558 FlatCAMApp.py:2626 +#: flatcamGUI/preferences/PreferencesUIManager.py:1018 +msgid "Failed to write defaults to file." +msgstr "Не удалось записать значения по умолчанию в файл." + +#: FlatCAMApp.py:2564 +msgid "Exported preferences to" +msgstr "Экспорт настроек в" + +#: FlatCAMApp.py:2584 FlatCAMApp.py:2589 +msgid "Save to file" +msgstr "Сохранить в файл" + +#: FlatCAMApp.py:2602 FlatCAMApp.py:8859 FlatCAMApp.py:8907 FlatCAMApp.py:9032 +#: FlatCAMApp.py:9168 FlatCAMBookmark.py:308 FlatCAMDB.py:671 FlatCAMDB.py:2133 +#: flatcamEditors/FlatCAMTextEditor.py:276 flatcamObjects/FlatCAMCNCJob.py:959 +#: flatcamTools/ToolFilm.py:1031 flatcamTools/ToolFilm.py:1212 +#: flatcamTools/ToolSolderPaste.py:1534 +msgid "" +"Permission denied, saving not possible.\n" +"Most likely another app is holding the file open and not accessible." +msgstr "" +"В доступе отказано, сохранение невозможно.\n" +"Скорее всего, другое приложение держит файл открытым и недоступным." + +#: FlatCAMApp.py:2613 +msgid "Could not load the file." +msgstr "Не удалось загрузить файл." + +#: FlatCAMApp.py:2629 +msgid "Exported file to" +msgstr "Файл экспортируется в" + +#: FlatCAMApp.py:2712 +msgid "Failed to open recent files file for writing." +msgstr "Не удалось открыть файл истории для записи." + +#: FlatCAMApp.py:2723 +msgid "Failed to open recent projects file for writing." +msgstr "Не удалось открыть файл последних проектов для записи." + +#: FlatCAMApp.py:2806 FlatCAMApp.py:9377 FlatCAMApp.py:9441 FlatCAMApp.py:9572 +#: FlatCAMApp.py:9637 FlatCAMApp.py:10287 +#: flatcamEditors/FlatCAMGrbEditor.py:4364 +#: flatcamObjects/FlatCAMGeometry.py:1725 flatcamParsers/ParseExcellon.py:897 +#: flatcamTools/ToolPcbWizard.py:432 +msgid "An internal error has occurred. See shell.\n" +msgstr "Произошла внутренняя ошибка. Смотрите командную строку.\n" + +#: FlatCAMApp.py:2807 +#, python-brace-format +msgid "" +"Object ({kind}) failed because: {error} \n" +"\n" +msgstr "" +"Объект ({kind}) не выполнен, потому что: {error} \n" +"\n" + +#: FlatCAMApp.py:2822 +msgid "Converting units to " +msgstr "Конвертирование единиц в " + +#: FlatCAMApp.py:2931 +msgid "CREATE A NEW FLATCAM TCL SCRIPT" +msgstr "СОЗДАЙТЕ НОВЫЙ TCL СЦЕНАРИЙ FLATCAM" + +#: FlatCAMApp.py:2932 +msgid "TCL Tutorial is here" +msgstr "Учебное пособие по TCL здесь" + +#: FlatCAMApp.py:2934 +msgid "FlatCAM commands list" +msgstr "Список команд FlatCAM" + +#: FlatCAMApp.py:2935 +msgid "" +"Type >help< followed by Run Code for a list of FlatCAM Tcl Commands " +"(displayed in Tcl Shell)." +msgstr "" +"Введите> help <, а затем Run Code для получения списка команд FlatCAM Tcl " +"(отображается в оболочке Tcl)." + +#: FlatCAMApp.py:2982 FlatCAMApp.py:2988 FlatCAMApp.py:2994 FlatCAMApp.py:3000 +#: FlatCAMApp.py:3006 FlatCAMApp.py:3012 +msgid "created/selected" +msgstr "создан / выбрана" + +#: FlatCAMApp.py:3027 FlatCAMApp.py:5189 flatcamObjects/FlatCAMObj.py:248 +#: flatcamObjects/FlatCAMObj.py:279 flatcamObjects/FlatCAMObj.py:295 +#: flatcamObjects/FlatCAMObj.py:375 flatcamTools/ToolCopperThieving.py:1481 +#: flatcamTools/ToolFiducials.py:809 flatcamTools/ToolMove.py:229 +#: flatcamTools/ToolQRCode.py:728 +msgid "Plotting" +msgstr "Прорисовка" + +#: FlatCAMApp.py:3090 flatcamGUI/FlatCAMGUI.py:545 +msgid "About FlatCAM" +msgstr "О программе" + +#: FlatCAMApp.py:3116 +msgid "2D Computer-Aided Printed Circuit Board Manufacturing" +msgstr "2D Computer-Aided Printed Circuit Board Manufacturing" + +#: FlatCAMApp.py:3117 +msgid "Development" +msgstr "Исходный код" + +#: FlatCAMApp.py:3118 +msgid "DOWNLOAD" +msgstr "Страница загрузок" + +#: FlatCAMApp.py:3119 +msgid "Issue tracker" +msgstr "Issue-трекер" + +#: FlatCAMApp.py:3123 FlatCAMApp.py:3484 flatcamGUI/GUIElements.py:2583 +msgid "Close" +msgstr "Закрыть" + +#: FlatCAMApp.py:3138 +msgid "Licensed under the MIT license" +msgstr "Под лицензией MIT" + +#: FlatCAMApp.py:3147 +msgid "" +"Permission is hereby granted, free of charge, to any person obtaining a " +"copy\n" +"of this software and associated documentation files (the \"Software\"), to " +"deal\n" +"in the Software without restriction, including without limitation the " +"rights\n" +"to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n" +"copies of the Software, and to permit persons to whom the Software is\n" +"furnished to do so, subject to the following conditions:\n" +"\n" +"The above copyright notice and this permission notice shall be included in\n" +"all copies or substantial portions of the Software.\n" +"\n" +"THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS " +"OR\n" +"IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n" +"FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n" +"AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n" +"LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING " +"FROM,\n" +"OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n" +"THE SOFTWARE." +msgstr "" +"Permission is hereby granted, free of charge, to any person obtaining a " +"copy\n" +"of this software and associated documentation files (the \"Software\"), to " +"deal\n" +"in the Software without restriction, including without limitation the " +"rights\n" +"to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n" +"copies of the Software, and to permit persons to whom the Software is\n" +"furnished to do so, subject to the following conditions:\n" +"\n" +"The above copyright notice and this permission notice shall be included in\n" +"all copies or substantial portions of the Software.\n" +"\n" +"THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS " +"OR\n" +"IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n" +"FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n" +"AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n" +"LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING " +"FROM,\n" +"OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n" +"THE SOFTWARE." + +#: FlatCAMApp.py:3169 +msgid "" +"Some of the icons used are from the following sources:

    Icons by Icons8
    Icons by oNline Web Fonts" +msgstr "" +"Некоторые из используемых значков взяты из следующих источников: " +"
    Иконки от Freepik из www.flaticon.com

    Иконки " +"от Icons8
    Иконки " +"от oNline Web Fonts" + +#: FlatCAMApp.py:3202 +msgid "Splash" +msgstr "Информация" + +#: FlatCAMApp.py:3208 +msgid "Programmers" +msgstr "Разработчики" + +#: FlatCAMApp.py:3214 +msgid "Translators" +msgstr "Переводчики" + +#: FlatCAMApp.py:3220 +msgid "License" +msgstr "Лицензия" + +#: FlatCAMApp.py:3226 +msgid "Attributions" +msgstr "Пояснения" + +#: FlatCAMApp.py:3249 +msgid "Programmer" +msgstr "Разработчик" + +#: FlatCAMApp.py:3250 +msgid "Status" +msgstr "Статус" + +#: FlatCAMApp.py:3251 FlatCAMApp.py:3331 +msgid "E-mail" +msgstr "E-mail" + +#: FlatCAMApp.py:3259 +msgid "BETA Maintainer >= 2019" +msgstr "Куратор >=2019" + +#: FlatCAMApp.py:3328 +msgid "Language" +msgstr "Язык" + +#: FlatCAMApp.py:3329 +msgid "Translator" +msgstr "Переводчик" + +#: FlatCAMApp.py:3330 +msgid "Corrections" +msgstr "Исправления" + +#: FlatCAMApp.py:3455 FlatCAMApp.py:3464 flatcamGUI/FlatCAMGUI.py:527 +msgid "Bookmarks Manager" +msgstr "Диспетчер закладок" + +#: FlatCAMApp.py:3475 +msgid "" +"This entry will resolve to another website if:\n" +"\n" +"1. FlatCAM.org website is down\n" +"2. Someone forked FlatCAM project and wants to point\n" +"to his own website\n" +"\n" +"If you can't get any informations about FlatCAM beta\n" +"use the YouTube channel link from the Help menu." +msgstr "" +"Эта запись будет разрешена на другом сайте, если:\n" +"\n" +"1. Сайт FlatCAM.org не работает\n" +"2. Кто-то создал свою ветвь проекта FlatCAM и хочет указать\n" +"на свой сайт\n" +"\n" +"Если вы не можете получить какую-либо информацию о бета-версии FlatCAM\n" +"используйте ссылку на канал YouTube в меню «Справка»." + +#: FlatCAMApp.py:3482 +msgid "Alternative website" +msgstr "Альтернативный сайт" + +#: FlatCAMApp.py:3508 flatcamGUI/FlatCAMGUI.py:4267 +msgid "Application is saving the project. Please wait ..." +msgstr "Приложение сохраняет проект. Пожалуйста, подождите ..." + +#: FlatCAMApp.py:3513 FlatCAMTranslation.py:202 +msgid "" +"There are files/objects modified in FlatCAM. \n" +"Do you want to Save the project?" +msgstr "" +"Есть файлы/объекты, измененные в FlatCAM.\n" +"Вы хотите сохранить проект?" + +#: FlatCAMApp.py:3516 FlatCAMApp.py:7343 FlatCAMTranslation.py:205 +msgid "Save changes" +msgstr "Сохранить изменения" + +#: FlatCAMApp.py:3778 +msgid "Selected Excellon file extensions registered with FlatCAM." +msgstr "Выбранные расширения файлов Excellon, зарегистрированные в FlatCAM." + +#: FlatCAMApp.py:3800 +msgid "Selected GCode file extensions registered with FlatCAM." +msgstr "Выбранные расширения файлов GCode, зарегистрированные в FlatCAM." + +#: FlatCAMApp.py:3822 +msgid "Selected Gerber file extensions registered with FlatCAM." +msgstr "Выбранные расширения файлов Gerber, зарегистрированные в FlatCAM." + +#: FlatCAMApp.py:4010 FlatCAMApp.py:4069 FlatCAMApp.py:4097 +msgid "At least two objects are required for join. Objects currently selected" +msgstr "" +"Для объединения требуются как минимум два объекта. Объекты, выбранные в " +"данный момент" + +#: FlatCAMApp.py:4019 +msgid "" +"Failed join. The Geometry objects are of different types.\n" +"At least one is MultiGeo type and the other is SingleGeo type. A possibility " +"is to convert from one to another and retry joining \n" +"but in the case of converting from MultiGeo to SingleGeo, informations may " +"be lost and the result may not be what was expected. \n" +"Check the generated GCODE." +msgstr "" +"Не удалось объединить. Объекты Geometry бывают разных типов.\n" +"По крайней мере, один тип MultiGeo, а другой тип SingleGeo. Возможно " +"преобразование из одного в другое и повторное присоединение ,\n" +"но в случае преобразования из MultiGeo в SingleGeo информация может быть " +"потеряна, и результат может не соответствовать ожидаемому. \n" +"Проверьте сгенерированный GCODE." + +#: FlatCAMApp.py:4031 FlatCAMApp.py:4041 +msgid "Geometry merging finished" +msgstr "Слияние Geometry завершено" + +#: FlatCAMApp.py:4064 +msgid "Failed. Excellon joining works only on Excellon objects." +msgstr "Неудача. Присоединение Excellon работает только на объектах Excellon." + +#: FlatCAMApp.py:4074 +msgid "Excellon merging finished" +msgstr "Слияние Excellon завершено" + +#: FlatCAMApp.py:4092 +msgid "Failed. Gerber joining works only on Gerber objects." +msgstr "Неудача. Объединение Gerber работает только на объектах Gerber." + +#: FlatCAMApp.py:4102 +msgid "Gerber merging finished" +msgstr "Слияние Gerber завершено" + +#: FlatCAMApp.py:4122 FlatCAMApp.py:4159 +msgid "Failed. Select a Geometry Object and try again." +msgstr "Неудалось. Выберите объект Geometry и попробуйте снова." + +#: FlatCAMApp.py:4126 FlatCAMApp.py:4164 +msgid "Expected a GeometryObject, got" +msgstr "Ожидается GeometryObject, получено" + +#: FlatCAMApp.py:4141 +msgid "A Geometry object was converted to MultiGeo type." +msgstr "Объект Geometry был преобразован в тип MultiGeo." + +#: FlatCAMApp.py:4179 +msgid "A Geometry object was converted to SingleGeo type." +msgstr "Объект Geometry был преобразован в тип SingleGeo." + +#: FlatCAMApp.py:4472 +msgid "Toggle Units" +msgstr "Единицы измерения" + +#: FlatCAMApp.py:4474 +msgid "" +"Changing the units of the project\n" +"will scale all objects.\n" +"\n" +"Do you want to continue?" +msgstr "" +"Изменение единиц измерения проекта приведёт к соответствующему " +"масштабированию всех всех объектов.\n" +"Продолжить?" + +#: FlatCAMApp.py:4477 FlatCAMApp.py:5025 FlatCAMApp.py:5102 FlatCAMApp.py:7728 +#: FlatCAMApp.py:7742 FlatCAMApp.py:8075 FlatCAMApp.py:8085 +msgid "Ok" +msgstr "Да" + +#: FlatCAMApp.py:4526 +msgid "Converted units to" +msgstr "Конвертирование единиц в" + +#: FlatCAMApp.py:4928 +msgid "Detachable Tabs" +msgstr "Плавающие вкладки" + +#: FlatCAMApp.py:5014 flatcamTools/ToolNCC.py:932 flatcamTools/ToolNCC.py:1431 +#: flatcamTools/ToolPaint.py:858 flatcamTools/ToolSolderPaste.py:568 +#: flatcamTools/ToolSolderPaste.py:893 +msgid "Please enter a tool diameter with non-zero value, in Float format." +msgstr "" +"Пожалуйста, введите диаметр инструмента с ненулевым значением в float " +"формате." + +#: FlatCAMApp.py:5018 flatcamTools/ToolNCC.py:936 flatcamTools/ToolPaint.py:862 +#: flatcamTools/ToolSolderPaste.py:572 +msgid "Adding Tool cancelled" +msgstr "Добавление инструмента отменено" + +#: FlatCAMApp.py:5021 +msgid "" +"Adding Tool works only when Advanced is checked.\n" +"Go to Preferences -> General - Show Advanced Options." +msgstr "" +"Добавление инструмента работает только тогда, когда установлен флажок " +"«Дополнительно».\n" +"Перейдите в Настройки -> Основные парам. - Показать дополнительные параметры." + +#: FlatCAMApp.py:5097 +msgid "Delete objects" +msgstr "Удалить объекты" + +#: FlatCAMApp.py:5100 +msgid "" +"Are you sure you want to permanently delete\n" +"the selected objects?" +msgstr "" +"Вы уверены, что хотите удалить навсегда\n" +"выделенные объекты?" + +#: FlatCAMApp.py:5138 +msgid "Object(s) deleted" +msgstr "Объект(ы) удалены" + +#: FlatCAMApp.py:5142 FlatCAMApp.py:5297 flatcamTools/ToolDblSided.py:818 +msgid "Failed. No object(s) selected..." +msgstr "Нудача. Объекты не выбраны ..." + +#: FlatCAMApp.py:5144 +msgid "Save the work in Editor and try again ..." +msgstr "Сохраните работу в редакторе и попробуйте снова ..." + +#: FlatCAMApp.py:5173 +msgid "Object deleted" +msgstr "Объект(ы) удален" + +#: FlatCAMApp.py:5200 +msgid "Click to set the origin ..." +msgstr "Кликните, чтобы указать начало координат ..." + +#: FlatCAMApp.py:5222 +msgid "Setting Origin..." +msgstr "Установка точки начала координат..." + +#: FlatCAMApp.py:5235 FlatCAMApp.py:5337 +msgid "Origin set" +msgstr "Начало координат установлено" + +#: FlatCAMApp.py:5252 +msgid "Origin coordinates specified but incomplete." +msgstr "Координаты начала указаны, но неполны." + +#: FlatCAMApp.py:5293 +msgid "Moving to Origin..." +msgstr "Переход к началу координат..." + +#: FlatCAMApp.py:5374 +msgid "Jump to ..." +msgstr "Перейти к ..." + +#: FlatCAMApp.py:5375 +msgid "Enter the coordinates in format X,Y:" +msgstr "Введите координаты в формате X, Y:" + +#: FlatCAMApp.py:5385 +msgid "Wrong coordinates. Enter coordinates in format: X,Y" +msgstr "Неверные координаты. Введите координаты в формате: X, Y" + +#: FlatCAMApp.py:5463 FlatCAMApp.py:5612 +#: flatcamEditors/FlatCAMExcEditor.py:3624 +#: flatcamEditors/FlatCAMExcEditor.py:3632 +#: flatcamEditors/FlatCAMGeoEditor.py:4349 +#: flatcamEditors/FlatCAMGeoEditor.py:4363 +#: flatcamEditors/FlatCAMGrbEditor.py:1087 +#: flatcamEditors/FlatCAMGrbEditor.py:1204 +#: flatcamEditors/FlatCAMGrbEditor.py:1490 +#: flatcamEditors/FlatCAMGrbEditor.py:1759 +#: flatcamEditors/FlatCAMGrbEditor.py:4622 +#: flatcamEditors/FlatCAMGrbEditor.py:4637 flatcamGUI/FlatCAMGUI.py:3424 +#: flatcamGUI/FlatCAMGUI.py:3436 flatcamTools/ToolAlignObjects.py:393 +#: flatcamTools/ToolAlignObjects.py:415 +msgid "Done." +msgstr "Готово." + +#: FlatCAMApp.py:5478 FlatCAMApp.py:7724 FlatCAMApp.py:7819 FlatCAMApp.py:7860 +#: FlatCAMApp.py:7901 FlatCAMApp.py:7942 FlatCAMApp.py:7983 FlatCAMApp.py:8027 +#: FlatCAMApp.py:8071 FlatCAMApp.py:8593 FlatCAMApp.py:8597 +#: flatcamTools/ToolProperties.py:116 +msgid "No object selected." +msgstr "Нет выбранных объектов." + +#: FlatCAMApp.py:5497 +msgid "Bottom-Left" +msgstr "Слева внизу" + +#: FlatCAMApp.py:5498 flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:131 +#: flatcamTools/ToolCalibration.py:159 +msgid "Top-Left" +msgstr "Слева вверху" + +#: FlatCAMApp.py:5499 flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:132 +#: flatcamTools/ToolCalibration.py:160 +msgid "Bottom-Right" +msgstr "Справа внизу" + +#: FlatCAMApp.py:5500 +msgid "Top-Right" +msgstr "Справа вверху" + +#: FlatCAMApp.py:5501 flatcamGUI/ObjectUI.py:2706 +msgid "Center" +msgstr "По центру" + +#: FlatCAMApp.py:5521 +msgid "Locate ..." +msgstr "Размещение ..." + +#: FlatCAMApp.py:5779 FlatCAMApp.py:5856 +msgid "No object is selected. Select an object and try again." +msgstr "Объект не выбран. Выберите объект и попробуйте снова." + +#: FlatCAMApp.py:5882 +msgid "" +"Aborting. The current task will be gracefully closed as soon as possible..." +msgstr "Прерывание. Текущая задача будет закрыта как можно скорее..." + +#: FlatCAMApp.py:5888 +msgid "The current task was gracefully closed on user request..." +msgstr "Текущая задача была закрыта по запросу пользователя ..." + +#: FlatCAMApp.py:5916 flatcamGUI/preferences/PreferencesUIManager.py:905 +#: flatcamGUI/preferences/PreferencesUIManager.py:949 +#: flatcamGUI/preferences/PreferencesUIManager.py:970 +#: flatcamGUI/preferences/PreferencesUIManager.py:1075 +msgid "Preferences" +msgstr "Настройки" + +#: FlatCAMApp.py:5981 FlatCAMApp.py:6009 FlatCAMApp.py:6036 FlatCAMApp.py:6056 +#: FlatCAMDB.py:738 FlatCAMDB.py:913 FlatCAMDB.py:2200 FlatCAMDB.py:2418 +#: flatcamObjects/FlatCAMGeometry.py:890 flatcamTools/ToolNCC.py:3963 +#: flatcamTools/ToolNCC.py:4047 flatcamTools/ToolPaint.py:3553 +#: flatcamTools/ToolPaint.py:3638 +msgid "Tools Database" +msgstr "База данных" + +#: FlatCAMApp.py:6033 +msgid "Tools in Tools Database edited but not saved." +msgstr "Инструменты в базе данных отредактированы, но не сохранены." + +#: FlatCAMApp.py:6060 flatcamTools/ToolNCC.py:3970 +#: flatcamTools/ToolPaint.py:3560 +msgid "Tool from DB added in Tool Table." +msgstr "Инструмент из БД добавлен в таблицу инструментов." + +#: FlatCAMApp.py:6062 +msgid "Adding tool from DB is not allowed for this object." +msgstr "Добавление инструмента из БД для данного объекта запрещено." + +#: FlatCAMApp.py:6080 +msgid "" +"One or more Tools are edited.\n" +"Do you want to update the Tools Database?" +msgstr "" +"Один или несколько инструментов изменены.\n" +"Вы хотите обновить базу данных инструментов?" + +#: FlatCAMApp.py:6082 +msgid "Save Tools Database" +msgstr "Сохранить БД" + +#: FlatCAMApp.py:6135 +msgid "No object selected to Flip on Y axis." +msgstr "Не выбран объект для отражения по оси Y." + +#: FlatCAMApp.py:6161 +msgid "Flip on Y axis done." +msgstr "Отражение по оси Y завершено." + +#: FlatCAMApp.py:6163 FlatCAMApp.py:6211 +#: flatcamEditors/FlatCAMGrbEditor.py:6059 +msgid "Flip action was not executed." +msgstr "Операция переворота не была выполнена." + +#: FlatCAMApp.py:6183 +msgid "No object selected to Flip on X axis." +msgstr "Не выбран объект для отражения по оси Х." + +#: FlatCAMApp.py:6209 +msgid "Flip on X axis done." +msgstr "Отражение по оси Х завершено." + +#: FlatCAMApp.py:6231 +msgid "No object selected to Rotate." +msgstr "Не выбран ни один объект для вращения." + +#: FlatCAMApp.py:6234 FlatCAMApp.py:6287 FlatCAMApp.py:6326 +msgid "Transform" +msgstr "Трансформация" + +#: FlatCAMApp.py:6234 FlatCAMApp.py:6287 FlatCAMApp.py:6326 +msgid "Enter the Angle value:" +msgstr "Введите значение угла:" + +#: FlatCAMApp.py:6265 +msgid "Rotation done." +msgstr "Вращение завершено." + +#: FlatCAMApp.py:6267 +msgid "Rotation movement was not executed." +msgstr "Вращение не было выполнено." + +#: FlatCAMApp.py:6285 +msgid "No object selected to Skew/Shear on X axis." +msgstr "Не выбран ни один объект для наклона/сдвига по оси X." + +#: FlatCAMApp.py:6307 +msgid "Skew on X axis done." +msgstr "Наклон по оси X выполнен." + +#: FlatCAMApp.py:6324 +msgid "No object selected to Skew/Shear on Y axis." +msgstr "Нет объекта, выбранного для наклона/сдвига по оси Y." + +#: FlatCAMApp.py:6346 +msgid "Skew on Y axis done." +msgstr "Наклон по оси Y выполнен." + +#: FlatCAMApp.py:6497 FlatCAMApp.py:6544 flatcamGUI/FlatCAMGUI.py:503 +#: flatcamGUI/FlatCAMGUI.py:1728 +msgid "Select All" +msgstr "Выбрать все" + +#: FlatCAMApp.py:6501 FlatCAMApp.py:6548 flatcamGUI/FlatCAMGUI.py:505 +msgid "Deselect All" +msgstr "Снять выделение" + +#: FlatCAMApp.py:6564 +msgid "All objects are selected." +msgstr "Все объекты выделены." + +#: FlatCAMApp.py:6574 +msgid "Objects selection is cleared." +msgstr "Выбор объектов очищен." + +#: FlatCAMApp.py:6594 flatcamGUI/FlatCAMGUI.py:1721 +msgid "Grid On/Off" +msgstr "Сетка вкл/откл" + +#: FlatCAMApp.py:6606 flatcamEditors/FlatCAMGeoEditor.py:939 +#: flatcamEditors/FlatCAMGrbEditor.py:2583 +#: flatcamEditors/FlatCAMGrbEditor.py:5641 flatcamGUI/ObjectUI.py:1595 +#: flatcamTools/ToolDblSided.py:192 flatcamTools/ToolDblSided.py:425 +#: flatcamTools/ToolNCC.py:294 flatcamTools/ToolNCC.py:631 +#: flatcamTools/ToolPaint.py:277 flatcamTools/ToolPaint.py:676 +#: flatcamTools/ToolSolderPaste.py:122 flatcamTools/ToolSolderPaste.py:597 +#: flatcamTools/ToolTransform.py:478 +msgid "Add" +msgstr "Добавить" + +#: FlatCAMApp.py:6608 flatcamEditors/FlatCAMGrbEditor.py:2588 +#: flatcamEditors/FlatCAMGrbEditor.py:2736 flatcamGUI/FlatCAMGUI.py:751 +#: flatcamGUI/FlatCAMGUI.py:1074 flatcamGUI/FlatCAMGUI.py:2141 +#: flatcamGUI/FlatCAMGUI.py:2284 flatcamGUI/FlatCAMGUI.py:2777 +#: flatcamGUI/ObjectUI.py:1623 flatcamObjects/FlatCAMGeometry.py:505 +#: flatcamTools/ToolNCC.py:316 flatcamTools/ToolNCC.py:637 +#: flatcamTools/ToolPaint.py:299 flatcamTools/ToolPaint.py:682 +#: flatcamTools/ToolSolderPaste.py:128 flatcamTools/ToolSolderPaste.py:600 +msgid "Delete" +msgstr "Удалить" + +#: FlatCAMApp.py:6624 +msgid "New Grid ..." +msgstr "Новая сетка ..." + +#: FlatCAMApp.py:6625 +msgid "Enter a Grid Value:" +msgstr "Введите размер сетки:" + +#: FlatCAMApp.py:6633 FlatCAMApp.py:6660 +msgid "Please enter a grid value with non-zero value, in Float format." +msgstr "" +"Пожалуйста, введите значение сетки с ненулевым значением в формате float." + +#: FlatCAMApp.py:6639 +msgid "New Grid added" +msgstr "Новая сетка добавлена" + +#: FlatCAMApp.py:6642 +msgid "Grid already exists" +msgstr "Сетка уже существует" + +#: FlatCAMApp.py:6645 +msgid "Adding New Grid cancelled" +msgstr "Добавление новой сетки отменено" + +#: FlatCAMApp.py:6667 +msgid " Grid Value does not exist" +msgstr " Значение сетки не существует" + +#: FlatCAMApp.py:6670 +msgid "Grid Value deleted" +msgstr "Значение сетки удалено" + +#: FlatCAMApp.py:6673 +msgid "Delete Grid value cancelled" +msgstr "Удаление значения сетки отменено" + +#: FlatCAMApp.py:6679 +msgid "Key Shortcut List" +msgstr "Список комбинаций клавиш" + +#: FlatCAMApp.py:6713 +msgid " No object selected to copy it's name" +msgstr " Нет объекта, выбранного для копирования его имени" + +#: FlatCAMApp.py:6717 +msgid "Name copied on clipboard ..." +msgstr "Имя скопировано в буфер обмена ..." + +#: FlatCAMApp.py:6930 flatcamEditors/FlatCAMGrbEditor.py:4554 +msgid "Coordinates copied to clipboard." +msgstr "Координаты скопированы в буфер обмена." + +#: FlatCAMApp.py:7167 FlatCAMApp.py:7173 FlatCAMApp.py:7179 FlatCAMApp.py:7185 +#: flatcamObjects/ObjectCollection.py:922 +#: flatcamObjects/ObjectCollection.py:928 +#: flatcamObjects/ObjectCollection.py:934 +#: flatcamObjects/ObjectCollection.py:940 +#: flatcamObjects/ObjectCollection.py:946 +#: flatcamObjects/ObjectCollection.py:952 +msgid "selected" +msgstr "выбранный" + +#: FlatCAMApp.py:7340 +msgid "" +"There are files/objects opened in FlatCAM.\n" +"Creating a New project will delete them.\n" +"Do you want to Save the project?" +msgstr "" +"В FlatCAM открыты файлы/объекты.\n" +"Создание нового проекта удалит их.\n" +"Вы хотите сохранить проект?" + +#: FlatCAMApp.py:7361 +msgid "New Project created" +msgstr "Новый проект создан" + +#: FlatCAMApp.py:7519 FlatCAMApp.py:7523 flatcamGUI/FlatCAMGUI.py:836 +#: flatcamGUI/FlatCAMGUI.py:2544 +msgid "Open Gerber" +msgstr "Открыть Gerber" + +#: FlatCAMApp.py:7528 FlatCAMApp.py:7565 FlatCAMApp.py:7607 FlatCAMApp.py:7677 +#: FlatCAMApp.py:8462 FlatCAMApp.py:9675 FlatCAMApp.py:9737 +msgid "" +"Canvas initialization started.\n" +"Canvas initialization finished in" +msgstr "" +"Инициализация холста.\n" +"Инициализация холста завершена за" + +#: FlatCAMApp.py:7530 +msgid "Opening Gerber file." +msgstr "Открытие файла Gerber." + +#: FlatCAMApp.py:7557 FlatCAMApp.py:7561 flatcamGUI/FlatCAMGUI.py:838 +#: flatcamGUI/FlatCAMGUI.py:2546 +msgid "Open Excellon" +msgstr "Открыть Excellon" + +#: FlatCAMApp.py:7567 +msgid "Opening Excellon file." +msgstr "Открытие файла Excellon." + +#: FlatCAMApp.py:7598 FlatCAMApp.py:7602 +msgid "Open G-Code" +msgstr "Открыть G-Code" + +#: FlatCAMApp.py:7609 +msgid "Opening G-Code file." +msgstr "Открытие файла G-Code." + +#: FlatCAMApp.py:7632 FlatCAMApp.py:7635 flatcamGUI/FlatCAMGUI.py:1730 +msgid "Open Project" +msgstr "Открыть проект" + +#: FlatCAMApp.py:7668 FlatCAMApp.py:7672 +msgid "Open HPGL2" +msgstr "Открыть HPGL2" + +#: FlatCAMApp.py:7679 +msgid "Opening HPGL2 file." +msgstr "Открытие файла HPGL2." + +#: FlatCAMApp.py:7702 FlatCAMApp.py:7705 +msgid "Open Configuration File" +msgstr "Открыть файл конфигурации" + +#: FlatCAMApp.py:7725 FlatCAMApp.py:8072 +msgid "Please Select a Geometry object to export" +msgstr "Выберите объект Geometry для экспорта" + +#: FlatCAMApp.py:7739 +msgid "Only Geometry, Gerber and CNCJob objects can be used." +msgstr "Можно использовать только объекты Geometry, Gerber и CNCJob." + +#: FlatCAMApp.py:7752 FlatCAMApp.py:7756 flatcamTools/ToolQRCode.py:829 +#: flatcamTools/ToolQRCode.py:833 +msgid "Export SVG" +msgstr "Экспорт SVG" + +#: FlatCAMApp.py:7781 +msgid "Data must be a 3D array with last dimension 3 or 4" +msgstr "Данные должны быть 3D массивом с последним размером 3 или 4" + +#: FlatCAMApp.py:7787 FlatCAMApp.py:7791 +msgid "Export PNG Image" +msgstr "Экспорт PNG изображения" + +#: FlatCAMApp.py:7824 FlatCAMApp.py:8032 +msgid "Failed. Only Gerber objects can be saved as Gerber files..." +msgstr "Ошибка. Только объекты Gerber могут быть сохранены как файлы Gerber..." + +#: FlatCAMApp.py:7836 +msgid "Save Gerber source file" +msgstr "Сохранить исходный файл Gerber" + +#: FlatCAMApp.py:7865 +msgid "Failed. Only Script objects can be saved as TCL Script files..." +msgstr "" +"Ошибка. Только объекты сценария могут быть сохранены как файлы TCL-" +"сценария..." + +#: FlatCAMApp.py:7877 +msgid "Save Script source file" +msgstr "Сохранить исходный файл сценария" + +#: FlatCAMApp.py:7906 +msgid "Failed. Only Document objects can be saved as Document files..." +msgstr "" +"Ошибка. Только объекты Document могут быть сохранены как файлы Document..." + +#: FlatCAMApp.py:7918 +msgid "Save Document source file" +msgstr "Сохранить исходный файл Document" + +#: FlatCAMApp.py:7947 FlatCAMApp.py:7988 FlatCAMApp.py:8945 +msgid "Failed. Only Excellon objects can be saved as Excellon files..." +msgstr "" +"Ошибка. Только объекты Excellon могут быть сохранены как файлы Excellon..." + +#: FlatCAMApp.py:7955 FlatCAMApp.py:7959 +msgid "Save Excellon source file" +msgstr "Сохранить исходный файл Excellon" + +#: FlatCAMApp.py:7996 FlatCAMApp.py:8000 +msgid "Export Excellon" +msgstr "Экспорт Excellon" + +#: FlatCAMApp.py:8040 FlatCAMApp.py:8044 +msgid "Export Gerber" +msgstr "Экспорт Gerber" + +#: FlatCAMApp.py:8082 +msgid "Only Geometry objects can be used." +msgstr "Можно использовать только объекты Geometry." + +#: FlatCAMApp.py:8096 FlatCAMApp.py:8100 +msgid "Export DXF" +msgstr "Экспорт DXF" + +#: FlatCAMApp.py:8125 FlatCAMApp.py:8128 +msgid "Import SVG" +msgstr "Импорт SVG" + +#: FlatCAMApp.py:8156 FlatCAMApp.py:8160 +msgid "Import DXF" +msgstr "Импорт DXF" + +#: FlatCAMApp.py:8210 +msgid "Viewing the source code of the selected object." +msgstr "Просмотр исходного кода выбранного объекта." + +#: FlatCAMApp.py:8211 flatcamObjects/FlatCAMCNCJob.py:548 +#: flatcamObjects/FlatCAMScript.py:134 +msgid "Loading..." +msgstr "Загрузка..." + +#: FlatCAMApp.py:8217 FlatCAMApp.py:8221 +msgid "Select an Gerber or Excellon file to view it's source file." +msgstr "Выберите файл Gerber или Excellon для просмотра исходного кода." + +#: FlatCAMApp.py:8235 +msgid "Source Editor" +msgstr "Редактор исходного кода" + +#: FlatCAMApp.py:8275 FlatCAMApp.py:8282 +msgid "There is no selected object for which to see it's source file code." +msgstr "Нет выбранного объекта, для просмотра исходного кода файла." + +#: FlatCAMApp.py:8294 +msgid "Failed to load the source code for the selected object" +msgstr "Не удалось загрузить исходный код выбранного объекта" + +#: FlatCAMApp.py:8308 flatcamObjects/FlatCAMCNCJob.py:562 +msgid "Code Editor" +msgstr "Редактор кода" + +#: FlatCAMApp.py:8330 +msgid "Go to Line ..." +msgstr "Перейти к строке ..." + +#: FlatCAMApp.py:8331 +msgid "Line:" +msgstr "Строка:" + +#: FlatCAMApp.py:8360 +msgid "New TCL script file created in Code Editor." +msgstr "Новый файл сценария создан в редакторе кода." + +#: FlatCAMApp.py:8396 FlatCAMApp.py:8398 FlatCAMApp.py:8434 FlatCAMApp.py:8436 +msgid "Open TCL script" +msgstr "Открыть сценарий TCL" + +#: FlatCAMApp.py:8464 +msgid "Executing ScriptObject file." +msgstr "Выполнение файла ScriptObject." + +#: FlatCAMApp.py:8472 FlatCAMApp.py:8475 +msgid "Run TCL script" +msgstr "Запустить сценарий TCL" + +#: FlatCAMApp.py:8498 +msgid "TCL script file opened in Code Editor and executed." +msgstr "Файл сценария открывается в редакторе кода и выполняется." + +#: FlatCAMApp.py:8549 FlatCAMApp.py:8555 +msgid "Save Project As ..." +msgstr "Сохранить проект как..." + +#: FlatCAMApp.py:8551 flatcamGUI/FlatCAMGUI.py:1134 +#: flatcamGUI/FlatCAMGUI.py:2176 +msgid "Project" +msgstr "Проект" + +#: FlatCAMApp.py:8590 +msgid "FlatCAM objects print" +msgstr "Печать объектов FlatCAM" + +#: FlatCAMApp.py:8603 FlatCAMApp.py:8610 +msgid "Save Object as PDF ..." +msgstr "Сохранить объект как PDF ..." + +#: FlatCAMApp.py:8619 +msgid "Printing PDF ... Please wait." +msgstr "Печать PDF ... Пожалуйста, подождите." + +#: FlatCAMApp.py:8798 +msgid "PDF file saved to" +msgstr "Файл PDF сохранён в" + +#: FlatCAMApp.py:8823 +msgid "Exporting SVG" +msgstr "Экспортирование SVG" + +#: FlatCAMApp.py:8866 +msgid "SVG file exported to" +msgstr "Файл SVG экспортируется в" + +#: FlatCAMApp.py:8892 +msgid "" +"Save cancelled because source file is empty. Try to export the Gerber file." +msgstr "" +"Сохранение отменено, потому что исходный файл пуст. Попробуйте " +"экспортировать файл Gerber." + +#: FlatCAMApp.py:9039 +msgid "Excellon file exported to" +msgstr "Файл Excellon экспортируется в" + +#: FlatCAMApp.py:9048 +msgid "Exporting Excellon" +msgstr "Экспорт Excellon" + +#: FlatCAMApp.py:9053 FlatCAMApp.py:9060 +msgid "Could not export Excellon file." +msgstr "Не удалось экспортировать файл Excellon." + +#: FlatCAMApp.py:9175 +msgid "Gerber file exported to" +msgstr "Файл Gerber экспортируется в" + +#: FlatCAMApp.py:9183 +msgid "Exporting Gerber" +msgstr "Экспортирование Gerber" + +#: FlatCAMApp.py:9188 FlatCAMApp.py:9195 +msgid "Could not export Gerber file." +msgstr "Не удалось экспортировать файл Gerber." + +#: FlatCAMApp.py:9230 +msgid "DXF file exported to" +msgstr "Файл DXF экспортируется в" + +#: FlatCAMApp.py:9236 +msgid "Exporting DXF" +msgstr "Экспорт DXF" + +#: FlatCAMApp.py:9241 FlatCAMApp.py:9248 +msgid "Could not export DXF file." +msgstr "Не удалось экспортировать файл DXF." + +#: FlatCAMApp.py:9272 FlatCAMApp.py:9319 flatcamTools/ToolImage.py:277 +msgid "" +"Not supported type is picked as parameter. Only Geometry and Gerber are " +"supported" +msgstr "" +"В качестве параметра выбран не поддерживаемый тип. Поддерживаются только " +"Geometry и Gerber" + +#: FlatCAMApp.py:9282 +msgid "Importing SVG" +msgstr "Импортирование SVG" + +#: FlatCAMApp.py:9290 FlatCAMApp.py:9336 +msgid "Import failed." +msgstr "Не удалось импортировать." + +#: FlatCAMApp.py:9297 FlatCAMApp.py:9343 FlatCAMApp.py:9407 FlatCAMApp.py:9474 +#: FlatCAMApp.py:9540 FlatCAMApp.py:9605 FlatCAMApp.py:9662 +#: flatcamTools/ToolImage.py:297 flatcamTools/ToolPDF.py:225 +msgid "Opened" +msgstr "Открыт" + +#: FlatCAMApp.py:9328 +msgid "Importing DXF" +msgstr "Импорт DXF" + +#: FlatCAMApp.py:9369 FlatCAMApp.py:9564 FlatCAMApp.py:9629 +msgid "Failed to open file" +msgstr "Не удалось открыть файл" + +#: FlatCAMApp.py:9372 FlatCAMApp.py:9567 FlatCAMApp.py:9632 +msgid "Failed to parse file" +msgstr "Не удаётся прочитать файл" + +#: FlatCAMApp.py:9384 +msgid "Object is not Gerber file or empty. Aborting object creation." +msgstr "" +"Объект не является файлом Gerber или пуст. Прерывание создания объекта." + +#: FlatCAMApp.py:9389 +msgid "Opening Gerber" +msgstr "Открытие Gerber" + +#: FlatCAMApp.py:9400 +msgid "Open Gerber failed. Probable not a Gerber file." +msgstr "Открыть Гербер не удалось. Вероятно, не файл Гербера." + +#: FlatCAMApp.py:9432 flatcamTools/ToolPcbWizard.py:424 +msgid "This is not Excellon file." +msgstr "Это не Excellon файл." + +#: FlatCAMApp.py:9436 +msgid "Cannot open file" +msgstr "Не удается открыть файл" + +#: FlatCAMApp.py:9454 flatcamTools/ToolPDF.py:275 +#: flatcamTools/ToolPcbWizard.py:445 +msgid "No geometry found in file" +msgstr "Геометрия не найдена в файле" + +#: FlatCAMApp.py:9457 +msgid "Opening Excellon." +msgstr "Открытие Excellon." + +#: FlatCAMApp.py:9467 +msgid "Open Excellon file failed. Probable not an Excellon file." +msgstr "Не удалось открыть файл Excellon. Вероятно это не файл Excellon." + +#: FlatCAMApp.py:9499 +msgid "Reading GCode file" +msgstr "Чтение файла GCode" + +#: FlatCAMApp.py:9505 +msgid "Failed to open" +msgstr "Не удалось открыть" + +#: FlatCAMApp.py:9512 +msgid "This is not GCODE" +msgstr "Это не GCODE" + +#: FlatCAMApp.py:9517 +msgid "Opening G-Code." +msgstr "Открытие G-Code." + +#: FlatCAMApp.py:9530 +msgid "" +"Failed to create CNCJob Object. Probable not a GCode file. Try to load it " +"from File menu.\n" +" Attempting to create a FlatCAM CNCJob Object from G-Code file failed during " +"processing" +msgstr "" +"Не удалось создать объект CNCJob. Вероятно это не файл GCode.Попробуйте " +"загрузить его из меню «Файл».\n" +" Попытка создать объект FlatCAM CNCJob из файла G-кода не удалась во время " +"обработки" + +#: FlatCAMApp.py:9586 +msgid "Object is not HPGL2 file or empty. Aborting object creation." +msgstr "" +"Объект не является файлом HPGL2 или пустым. Прерывание создания объекта." + +#: FlatCAMApp.py:9591 +msgid "Opening HPGL2" +msgstr "Открытие HPGL2" + +#: FlatCAMApp.py:9598 +msgid " Open HPGL2 failed. Probable not a HPGL2 file." +msgstr " Открыть HPGL2 не удалось. Вероятно, не файл HPGL2." + +#: FlatCAMApp.py:9624 +msgid "TCL script file opened in Code Editor." +msgstr "Файл сценария открыт в редакторе кода." + +#: FlatCAMApp.py:9644 +msgid "Opening TCL Script..." +msgstr "Открытие TCL-сценария..." + +#: FlatCAMApp.py:9655 +msgid "Failed to open TCL Script." +msgstr "Не удалось открыть TCL-сценарий." + +#: FlatCAMApp.py:9677 +msgid "Opening FlatCAM Config file." +msgstr "Открытие файла конфигурации." + +#: FlatCAMApp.py:9705 +msgid "Failed to open config file" +msgstr "Не удалось открыть файл конфигурации" + +#: FlatCAMApp.py:9734 +msgid "Loading Project ... Please Wait ..." +msgstr "Загрузка проекта ... Пожалуйста, подождите ..." + +#: FlatCAMApp.py:9739 +msgid "Opening FlatCAM Project file." +msgstr "Открытие файла проекта FlatCAM." + +#: FlatCAMApp.py:9754 FlatCAMApp.py:9758 FlatCAMApp.py:9775 +msgid "Failed to open project file" +msgstr "Не удалось открыть файл проекта" + +#: FlatCAMApp.py:9812 +msgid "Loading Project ... restoring" +msgstr "Загрузка проекта ... восстановление" + +#: FlatCAMApp.py:9822 +msgid "Project loaded from" +msgstr "Проект загружен из" + +#: FlatCAMApp.py:9846 +msgid "Redrawing all objects" +msgstr "Перерисовка всех объектов" + +#: FlatCAMApp.py:9934 +msgid "Failed to load recent item list." +msgstr "Не удалось загрузить список недавних файлов." + +#: FlatCAMApp.py:9941 +msgid "Failed to parse recent item list." +msgstr "Не удалось прочитать список недавних файлов." + +#: FlatCAMApp.py:9951 +msgid "Failed to load recent projects item list." +msgstr "Не удалось загрузить список элементов последних проектов." + +#: FlatCAMApp.py:9958 +msgid "Failed to parse recent project item list." +msgstr "Не удалось проанализировать список последних элементов проекта." + +#: FlatCAMApp.py:10019 +msgid "Clear Recent projects" +msgstr "Очистить недавние проекты" + +#: FlatCAMApp.py:10043 +msgid "Clear Recent files" +msgstr "Очистить список" + +#: FlatCAMApp.py:10065 flatcamGUI/FlatCAMGUI.py:1363 +msgid "Shortcut Key List" +msgstr "Список комбинаций клавиш" + +#: FlatCAMApp.py:10145 +msgid "Selected Tab - Choose an Item from Project Tab" +msgstr "Вкладка \"Выбранное\" - выбранный элемент на вкладке \"Проект\"" + +#: FlatCAMApp.py:10146 +msgid "Details" +msgstr "Описание" + +#: FlatCAMApp.py:10148 +msgid "The normal flow when working in FlatCAM is the following:" +msgstr "Нормальный порядок при работе в FlatCAM выглядит следующим образом:" + +#: FlatCAMApp.py:10149 +msgid "" +"Load/Import a Gerber, Excellon, Gcode, DXF, Raster Image or SVG file into " +"FlatCAM using either the toolbars, key shortcuts or even dragging and " +"dropping the files on the GUI." +msgstr "" +"Загрузите/импортируйте Gerber, Excellon, Gcode, DXF, растровое изображение " +"или SVG-файл в FlatCAM с помощью панели инструментов, сочетания клавиш или " +"просто перетащив в окно программы." + +#: FlatCAMApp.py:10152 +msgid "" +"You can also load a FlatCAM project by double clicking on the project file, " +"drag and drop of the file into the FLATCAM GUI or through the menu (or " +"toolbar) actions offered within the app." +msgstr "" +"Вы также можете загрузить проект FlatCAM, дважды щелкнув файл проекта, " +"перетащив его в окно программы или с помощью действий меню (или панели " +"инструментов), предлагаемых в приложении." + +#: FlatCAMApp.py:10155 +msgid "" +"Once an object is available in the Project Tab, by selecting it and then " +"focusing on SELECTED TAB (more simpler is to double click the object name in " +"the Project Tab, SELECTED TAB will be updated with the object properties " +"according to its kind: Gerber, Excellon, Geometry or CNCJob object." +msgstr "" +"После того, как объект доступен на вкладке \"Проект\", выберите его и " +"обратите внимание на вкладку \"Выбранное\" (проще дважды щелкнуть по имени " +"объекта на вкладке \"Проект\", вкладка \"Выбранное\" будет обновлена в " +"соответствии с видом объекта: Gerber, Excellon, Geometry или CNCJob." + +#: FlatCAMApp.py:10159 +msgid "" +"If the selection of the object is done on the canvas by single click " +"instead, and the SELECTED TAB is in focus, again the object properties will " +"be displayed into the Selected Tab. Alternatively, double clicking on the " +"object on the canvas will bring the SELECTED TAB and populate it even if it " +"was out of focus." +msgstr "" +"Если выделение объекта производится на холсте одним щелчком мыши, а вкладка " +"\"Выбранное\" находится в фокусе, то свойства объекта снова отобразятся на " +"вкладке \"Выбранное\". Кроме того, двойной щелчок по объекту на холсте " +"откроет вкладку \"Выбранное\" и заполнит ее, даже если она была не в фокусе." + +#: FlatCAMApp.py:10163 +msgid "" +"You can change the parameters in this screen and the flow direction is like " +"this:" +msgstr "Вы можете изменить параметры на этом экране, и порядок будет таким:" + +#: FlatCAMApp.py:10164 +msgid "" +"Gerber/Excellon Object --> Change Parameter --> Generate Geometry --> " +"Geometry Object --> Add tools (change param in Selected Tab) --> Generate " +"CNCJob --> CNCJob Object --> Verify GCode (through Edit CNC Code) and/or " +"append/prepend to GCode (again, done in SELECTED TAB) --> Save GCode." +msgstr "" +"Объект Gerber/Excellon -> Выбрать параметры -> Создать геометрию(ВНЕШНЯЯ, " +"ВНУТРЕННЯЯ или ПОЛНАЯ) -> Объект геометрии -> Добавить инструменты (изменить " +"параметры на вкладке \"Выбранное\") -> Создать CNCJob -> Объект CNCJob -> " +"Проверить GCode (с помощью кнопки \"Просмотр CNC Code\") и дописать, при " +"необходимости, дополнительные команды в начало или конец GCode (опять же, " +"во вкладке \"Выбранное\") -> Сохранить GCode (кнопка \"Сохранить CNC Code\")." + +#: FlatCAMApp.py:10168 +msgid "" +"A list of key shortcuts is available through an menu entry in Help --> " +"Shortcuts List or through its own key shortcut: F3." +msgstr "" +"Список комбинаций клавиш доступен через пункт меню Помощь --> Список " +"комбинаций клавиш или через клавишу: F3." + +#: FlatCAMApp.py:10232 +msgid "Failed checking for latest version. Could not connect." +msgstr "" +"Не удалось проверить обновление программы. Отсутствует интернет подключение ." + +#: FlatCAMApp.py:10239 +msgid "Could not parse information about latest version." +msgstr "Не удается обработать информацию о последней версии." + +#: FlatCAMApp.py:10249 +msgid "FlatCAM is up to date!" +msgstr "FlatCAM в актуальном состоянии!" + +#: FlatCAMApp.py:10254 +msgid "Newer Version Available" +msgstr "Доступна новая версия" + +#: FlatCAMApp.py:10256 +msgid "There is a newer version of FlatCAM available for download:" +msgstr "Новая версия FlatCAM доступна для загрузки:" + +#: FlatCAMApp.py:10260 +msgid "info" +msgstr "инфо" + +#: FlatCAMApp.py:10288 +msgid "" +"OpenGL canvas initialization failed. HW or HW configuration not supported." +"Change the graphic engine to Legacy(2D) in Edit -> Preferences -> General " +"tab.\n" +"\n" +msgstr "" +"Не удалось инициализировать рабочее пространство OpenGL. Конфигурация HW или " +"HW не поддерживается. Измените графический движок на Legacy (2D) в Правка -> " +"Настройки -> вкладка Основные.\n" +"\n" + +#: FlatCAMApp.py:10367 +msgid "All plots disabled." +msgstr "Все участки отключены." + +#: FlatCAMApp.py:10374 +msgid "All non selected plots disabled." +msgstr "Все не выбранные участки отключены." + +#: FlatCAMApp.py:10381 +msgid "All plots enabled." +msgstr "Все участки включены." + +#: FlatCAMApp.py:10387 +msgid "Selected plots enabled..." +msgstr "Выбранные участки включены..." + +#: FlatCAMApp.py:10395 +msgid "Selected plots disabled..." +msgstr "Выбранные участки отключены..." + +#: FlatCAMApp.py:10428 +msgid "Enabling plots ..." +msgstr "Включение участков ..." + +#: FlatCAMApp.py:10480 +msgid "Disabling plots ..." +msgstr "Отключение участков ..." + +#: FlatCAMApp.py:10503 +msgid "Working ..." +msgstr "Обработка…" + +#: FlatCAMApp.py:10558 flatcamGUI/FlatCAMGUI.py:703 +msgid "Red" +msgstr "Красный" + +#: FlatCAMApp.py:10560 flatcamGUI/FlatCAMGUI.py:706 +msgid "Blue" +msgstr "Синий" + +#: FlatCAMApp.py:10563 flatcamGUI/FlatCAMGUI.py:709 +msgid "Yellow" +msgstr "Жёлтый" + +#: FlatCAMApp.py:10565 flatcamGUI/FlatCAMGUI.py:712 +msgid "Green" +msgstr "Зелёный" + +#: FlatCAMApp.py:10567 flatcamGUI/FlatCAMGUI.py:715 +msgid "Purple" +msgstr "Фиолетовый" + +#: FlatCAMApp.py:10569 flatcamGUI/FlatCAMGUI.py:718 +msgid "Brown" +msgstr "Коричневый" + +#: FlatCAMApp.py:10571 FlatCAMApp.py:10627 flatcamGUI/FlatCAMGUI.py:721 +msgid "White" +msgstr "Белый" + +#: FlatCAMApp.py:10573 flatcamGUI/FlatCAMGUI.py:724 +msgid "Black" +msgstr "Чёрный" + +#: FlatCAMApp.py:10576 flatcamGUI/FlatCAMGUI.py:729 +msgid "Custom" +msgstr "Своё" + +#: FlatCAMApp.py:10586 flatcamGUI/FlatCAMGUI.py:737 +msgid "Default" +msgstr "По умолчанию" + +#: FlatCAMApp.py:10610 flatcamGUI/FlatCAMGUI.py:734 +msgid "Opacity" +msgstr "Непрозрачность" + +#: FlatCAMApp.py:10612 +msgid "Set alpha level ..." +msgstr "Установка уровня прозрачности ..." + +#: FlatCAMApp.py:10612 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:131 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:133 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:220 +#: flatcamTools/ToolExtractDrills.py:164 flatcamTools/ToolExtractDrills.py:285 +#: flatcamTools/ToolPunchGerber.py:192 flatcamTools/ToolPunchGerber.py:308 +#: flatcamTools/ToolTransform.py:357 +msgid "Value" +msgstr "Значение" + +#: FlatCAMApp.py:10666 +msgid "Saving FlatCAM Project" +msgstr "Сохранение проекта FlatCAM" + +#: FlatCAMApp.py:10687 FlatCAMApp.py:10723 +msgid "Project saved to" +msgstr "Проект сохранён в" + +#: FlatCAMApp.py:10694 +msgid "The object is used by another application." +msgstr "Объект используется другим приложением." + +#: FlatCAMApp.py:10708 +msgid "Failed to verify project file" +msgstr "Не удалось проверить файл проекта" + +#: FlatCAMApp.py:10708 FlatCAMApp.py:10716 FlatCAMApp.py:10726 +msgid "Retry to save it." +msgstr "Повторите попытку, чтобы сохранить его." + +#: FlatCAMApp.py:10716 FlatCAMApp.py:10726 +msgid "Failed to parse saved project file" +msgstr "Не удалось проанализировать сохраненный файл проекта" + +#: FlatCAMBookmark.py:57 FlatCAMBookmark.py:84 +msgid "Title" +msgstr "Название" + +#: FlatCAMBookmark.py:58 FlatCAMBookmark.py:88 +msgid "Web Link" +msgstr "Ссылка" + +#: FlatCAMBookmark.py:62 +msgid "" +"Index.\n" +"The rows in gray color will populate the Bookmarks menu.\n" +"The number of gray colored rows is set in Preferences." +msgstr "" +"Индекс.\n" +"Строки серого цвета будут заполнять меню закладок.\n" +"Количество строк серого цвета задается в настройках." + +#: FlatCAMBookmark.py:66 +msgid "" +"Description of the link that is set as an menu action.\n" +"Try to keep it short because it is installed as a menu item." +msgstr "" +"Описание ссылки, заданной в качестве действия меню.\n" +"Постарайтесь сделать его коротким, потому что он установлен как пункт меню." + +#: FlatCAMBookmark.py:69 +msgid "Web Link. E.g: https://your_website.org " +msgstr "Ссылка на сайт. Например: https://your_website.org " + +#: FlatCAMBookmark.py:78 +msgid "New Bookmark" +msgstr "Новая закладка" + +#: FlatCAMBookmark.py:97 +msgid "Add Entry" +msgstr "Добавить запись" + +#: FlatCAMBookmark.py:98 +msgid "Remove Entry" +msgstr "Удалить запись" + +#: FlatCAMBookmark.py:99 +msgid "Export List" +msgstr "Экспортировать список" + +#: FlatCAMBookmark.py:100 +msgid "Import List" +msgstr "Импортировать список" + +#: FlatCAMBookmark.py:190 +msgid "Title entry is empty." +msgstr "Поле заголовка пусто." + +#: FlatCAMBookmark.py:199 +msgid "Web link entry is empty." +msgstr "Поле веб-ссылки пусто." + +#: FlatCAMBookmark.py:207 +msgid "Either the Title or the Weblink already in the table." +msgstr "Либо название, либо ссылка уже в таблице." + +#: FlatCAMBookmark.py:227 +msgid "Bookmark added." +msgstr "Закладка добавлена." + +#: FlatCAMBookmark.py:244 +msgid "This bookmark can not be removed" +msgstr "Эта закладка не может быть удалена" + +#: FlatCAMBookmark.py:275 +msgid "Bookmark removed." +msgstr "Закладка удалена." + +#: FlatCAMBookmark.py:290 +msgid "Export FlatCAM Bookmarks" +msgstr "Экспорт закладок FlatCAM" + +#: FlatCAMBookmark.py:293 flatcamGUI/FlatCAMGUI.py:524 +msgid "Bookmarks" +msgstr "Закладки" + +#: FlatCAMBookmark.py:319 FlatCAMBookmark.py:349 +msgid "Could not load bookmarks file." +msgstr "Не удалось загрузить файл закладок." + +#: FlatCAMBookmark.py:329 +msgid "Failed to write bookmarks to file." +msgstr "Не удалось создать файл закладок." + +#: FlatCAMBookmark.py:331 +msgid "Exported bookmarks to" +msgstr "Экспорт закладок в" + +#: FlatCAMBookmark.py:337 +msgid "Import FlatCAM Bookmarks" +msgstr "Импорт закладок FlatCAM" + +#: FlatCAMBookmark.py:356 +msgid "Imported Bookmarks from" +msgstr "Закладки импортированы из" + +#: FlatCAMCommon.py:29 +msgid "The user requested a graceful exit of the current task." +msgstr "Пользователь запросил выход из текущего задания." + +#: FlatCAMDB.py:86 msgid "Add Geometry Tool in DB" msgstr "Добавить инструмент геометрии в БД" -#: AppDatabase.py:90 AppDatabase.py:1757 +#: FlatCAMDB.py:88 FlatCAMDB.py:1643 msgid "" "Add a new tool in the Tools Database.\n" "It will be used in the Geometry UI.\n" @@ -35,39 +1719,37 @@ msgstr "" "Он будет использоваться в пользовательском интерфейсе Geometry.\n" "Вы можете отредактировать его после добавления." -#: AppDatabase.py:104 AppDatabase.py:1771 +#: FlatCAMDB.py:102 FlatCAMDB.py:1657 msgid "Delete Tool from DB" msgstr "Удалить инструмент из БД" -#: AppDatabase.py:106 AppDatabase.py:1773 +#: FlatCAMDB.py:104 FlatCAMDB.py:1659 msgid "Remove a selection of tools in the Tools Database." msgstr "Удаляет выбранные инструменты из базы данных." -#: AppDatabase.py:110 AppDatabase.py:1777 +#: FlatCAMDB.py:108 FlatCAMDB.py:1663 msgid "Export DB" msgstr "Экспорт БД" -#: AppDatabase.py:112 AppDatabase.py:1779 +#: FlatCAMDB.py:110 FlatCAMDB.py:1665 msgid "Save the Tools Database to a custom text file." msgstr "Сохраняет базу данных инструментов в пользовательский текстовый файл." -#: AppDatabase.py:116 AppDatabase.py:1783 +#: FlatCAMDB.py:114 FlatCAMDB.py:1669 msgid "Import DB" msgstr "Импорт БД" -#: AppDatabase.py:118 AppDatabase.py:1785 +#: FlatCAMDB.py:116 FlatCAMDB.py:1671 msgid "Load the Tools Database information's from a custom text file." msgstr "" "Загрузка информации базы данных инструментов из пользовательского текстового " "файла." -#: AppDatabase.py:122 AppDatabase.py:1795 -#, fuzzy -#| msgid "Transform Tool" -msgid "Transfer the Tool" -msgstr "Трансформация" +#: FlatCAMDB.py:120 FlatCAMDB.py:1681 +msgid "Add Tool from Tools DB" +msgstr "Добавить инструмент из БД" -#: AppDatabase.py:124 +#: FlatCAMDB.py:122 FlatCAMDB.py:1683 msgid "" "Add a new tool in the Tools Table of the\n" "active Geometry object after selecting a tool\n" @@ -77,163 +1759,159 @@ msgstr "" "активной геометрии после выбора инструмента\n" "в базе данных." -#: AppDatabase.py:130 AppDatabase.py:1810 AppGUI/MainGUI.py:1388 -#: AppGUI/preferences/PreferencesUIManager.py:878 App_Main.py:2225 -#: App_Main.py:3160 App_Main.py:4037 App_Main.py:4307 App_Main.py:6417 -msgid "Cancel" -msgstr "Отмена" - -#: AppDatabase.py:160 AppDatabase.py:835 AppDatabase.py:1106 +#: FlatCAMDB.py:158 FlatCAMDB.py:833 FlatCAMDB.py:1087 msgid "Tool Name" msgstr "Название инструмента" -#: AppDatabase.py:161 AppDatabase.py:837 AppDatabase.py:1119 -#: AppEditors/FlatCAMExcEditor.py:1604 AppGUI/ObjectUI.py:1226 -#: AppGUI/ObjectUI.py:1480 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:132 -#: AppTools/ToolIsolation.py:260 AppTools/ToolNCC.py:278 -#: AppTools/ToolNCC.py:287 AppTools/ToolPaint.py:260 +#: FlatCAMDB.py:159 FlatCAMDB.py:835 FlatCAMDB.py:1100 +#: flatcamEditors/FlatCAMExcEditor.py:1604 flatcamGUI/ObjectUI.py:1345 +#: flatcamGUI/ObjectUI.py:1583 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:132 +#: flatcamTools/ToolNCC.py:278 flatcamTools/ToolNCC.py:287 +#: flatcamTools/ToolPaint.py:261 msgid "Tool Dia" msgstr "Диаметр инструмента" -#: AppDatabase.py:162 AppDatabase.py:839 AppDatabase.py:1300 -#: AppGUI/ObjectUI.py:1455 +#: FlatCAMDB.py:160 FlatCAMDB.py:837 FlatCAMDB.py:1281 +#: flatcamGUI/ObjectUI.py:1558 msgid "Tool Offset" msgstr "Смещение" -#: AppDatabase.py:163 AppDatabase.py:841 AppDatabase.py:1317 +#: FlatCAMDB.py:161 FlatCAMDB.py:839 FlatCAMDB.py:1298 msgid "Custom Offset" msgstr "Пользовательское смещение" -#: AppDatabase.py:164 AppDatabase.py:843 AppDatabase.py:1284 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:70 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:53 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:62 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:72 -#: AppTools/ToolIsolation.py:199 AppTools/ToolNCC.py:213 -#: AppTools/ToolNCC.py:227 AppTools/ToolPaint.py:195 +#: FlatCAMDB.py:162 FlatCAMDB.py:841 FlatCAMDB.py:1265 +#: flatcamGUI/ObjectUI.py:309 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:67 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:53 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:62 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:72 +#: flatcamTools/ToolNCC.py:213 flatcamTools/ToolNCC.py:227 +#: flatcamTools/ToolPaint.py:196 msgid "Tool Type" msgstr "Тип инструмента" -#: AppDatabase.py:165 AppDatabase.py:845 AppDatabase.py:1132 +#: FlatCAMDB.py:163 FlatCAMDB.py:843 FlatCAMDB.py:1113 msgid "Tool Shape" msgstr "Форма инструмента" -#: AppDatabase.py:166 AppDatabase.py:848 AppDatabase.py:1148 -#: AppGUI/ObjectUI.py:679 AppGUI/ObjectUI.py:1605 AppGUI/ObjectUI.py:2266 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:93 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:49 -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:78 -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:58 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:115 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:98 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:105 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:113 -#: AppTools/ToolCalculators.py:114 AppTools/ToolCutOut.py:138 -#: AppTools/ToolIsolation.py:246 AppTools/ToolNCC.py:260 -#: AppTools/ToolNCC.py:268 AppTools/ToolPaint.py:242 +#: FlatCAMDB.py:164 FlatCAMDB.py:846 FlatCAMDB.py:1129 +#: flatcamGUI/ObjectUI.py:350 flatcamGUI/ObjectUI.py:900 +#: flatcamGUI/ObjectUI.py:1703 flatcamGUI/ObjectUI.py:2336 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:93 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:48 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:107 +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:78 +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:58 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:98 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:105 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:113 +#: flatcamTools/ToolCalculators.py:114 flatcamTools/ToolCutOut.py:138 +#: flatcamTools/ToolNCC.py:260 flatcamTools/ToolNCC.py:268 +#: flatcamTools/ToolPaint.py:243 msgid "Cut Z" msgstr "Глубина резания" -#: AppDatabase.py:167 AppDatabase.py:850 AppDatabase.py:1162 +#: FlatCAMDB.py:165 FlatCAMDB.py:848 FlatCAMDB.py:1143 msgid "MultiDepth" msgstr "Мультипроход" -#: AppDatabase.py:168 AppDatabase.py:852 AppDatabase.py:1175 +#: FlatCAMDB.py:166 FlatCAMDB.py:850 FlatCAMDB.py:1156 msgid "DPP" msgstr "DPP" -#: AppDatabase.py:169 AppDatabase.py:854 AppDatabase.py:1331 +#: FlatCAMDB.py:167 FlatCAMDB.py:852 FlatCAMDB.py:1312 msgid "V-Dia" msgstr "V-Dia" -#: AppDatabase.py:170 AppDatabase.py:856 AppDatabase.py:1345 +#: FlatCAMDB.py:168 FlatCAMDB.py:854 FlatCAMDB.py:1326 msgid "V-Angle" msgstr "Угол V-образного инструмента" -#: AppDatabase.py:171 AppDatabase.py:858 AppDatabase.py:1189 -#: AppGUI/ObjectUI.py:725 AppGUI/ObjectUI.py:1652 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:134 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:102 -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:61 -#: AppObjects/FlatCAMExcellon.py:1496 AppObjects/FlatCAMGeometry.py:1671 -#: AppTools/ToolCalibration.py:74 +#: FlatCAMDB.py:169 FlatCAMDB.py:856 FlatCAMDB.py:1170 +#: flatcamGUI/ObjectUI.py:946 flatcamGUI/ObjectUI.py:1750 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:134 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:101 +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:61 +#: flatcamObjects/FlatCAMExcellon.py:1316 +#: flatcamObjects/FlatCAMGeometry.py:1606 flatcamTools/ToolCalibration.py:74 msgid "Travel Z" msgstr "Отвод по Z" -#: AppDatabase.py:172 AppDatabase.py:860 +#: FlatCAMDB.py:170 FlatCAMDB.py:858 msgid "FR" msgstr "FR" -#: AppDatabase.py:173 AppDatabase.py:862 +#: FlatCAMDB.py:171 FlatCAMDB.py:860 msgid "FR Z" msgstr "FR Z" -#: AppDatabase.py:174 AppDatabase.py:864 AppDatabase.py:1359 +#: FlatCAMDB.py:172 FlatCAMDB.py:862 FlatCAMDB.py:1340 msgid "FR Rapids" msgstr "Скорость подачи" -#: AppDatabase.py:175 AppDatabase.py:866 AppDatabase.py:1232 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:222 +#: FlatCAMDB.py:173 FlatCAMDB.py:864 FlatCAMDB.py:1213 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:222 msgid "Spindle Speed" msgstr "Скорость вращения шпинделя" -#: AppDatabase.py:176 AppDatabase.py:868 AppDatabase.py:1247 -#: AppGUI/ObjectUI.py:843 AppGUI/ObjectUI.py:1759 +#: FlatCAMDB.py:174 FlatCAMDB.py:866 FlatCAMDB.py:1228 +#: flatcamGUI/ObjectUI.py:1064 flatcamGUI/ObjectUI.py:1857 msgid "Dwell" msgstr "Задержка" -#: AppDatabase.py:177 AppDatabase.py:870 AppDatabase.py:1260 +#: FlatCAMDB.py:175 FlatCAMDB.py:868 FlatCAMDB.py:1241 msgid "Dwelltime" msgstr "Задержка" -#: AppDatabase.py:178 AppDatabase.py:872 AppGUI/ObjectUI.py:1916 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:257 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:255 -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:237 -#: AppTools/ToolSolderPaste.py:331 +#: FlatCAMDB.py:176 FlatCAMDB.py:870 flatcamGUI/ObjectUI.py:2014 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:257 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:254 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:237 +#: flatcamTools/ToolSolderPaste.py:335 msgid "Preprocessor" msgstr "Постпроцессор" -#: AppDatabase.py:179 AppDatabase.py:874 AppDatabase.py:1375 +#: FlatCAMDB.py:177 FlatCAMDB.py:872 FlatCAMDB.py:1356 msgid "ExtraCut" msgstr "Дополнительный вырез" -#: AppDatabase.py:180 AppDatabase.py:876 AppDatabase.py:1390 +#: FlatCAMDB.py:178 FlatCAMDB.py:874 FlatCAMDB.py:1371 msgid "E-Cut Length" msgstr "Длина дополнительного разреза" -#: AppDatabase.py:181 AppDatabase.py:878 +#: FlatCAMDB.py:179 FlatCAMDB.py:876 msgid "Toolchange" msgstr "Смена инструментов" -#: AppDatabase.py:182 AppDatabase.py:880 +#: FlatCAMDB.py:180 FlatCAMDB.py:878 msgid "Toolchange XY" msgstr "Смена инструмента XY" -#: AppDatabase.py:183 AppDatabase.py:882 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:160 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:132 -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:98 -#: AppTools/ToolCalibration.py:111 +#: FlatCAMDB.py:181 FlatCAMDB.py:880 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:160 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:131 +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:98 +#: flatcamTools/ToolCalibration.py:111 msgid "Toolchange Z" msgstr "Смена инструмента Z" -#: AppDatabase.py:184 AppDatabase.py:884 AppGUI/ObjectUI.py:972 -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:69 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:56 +#: FlatCAMDB.py:182 FlatCAMDB.py:882 flatcamGUI/ObjectUI.py:1193 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:69 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:54 msgid "Start Z" msgstr "Z начала" -#: AppDatabase.py:185 AppDatabase.py:887 +#: FlatCAMDB.py:183 FlatCAMDB.py:885 msgid "End Z" msgstr "Z окончания" -#: AppDatabase.py:189 +#: FlatCAMDB.py:187 msgid "Tool Index." msgstr "Порядок инструмента." -#: AppDatabase.py:191 AppDatabase.py:1108 +#: FlatCAMDB.py:189 FlatCAMDB.py:1089 msgid "" "Tool name.\n" "This is not used in the app, it's function\n" @@ -243,11 +1921,11 @@ msgstr "" "Это не используется в приложении, это функция\n" "служит в качестве примечания для пользователя." -#: AppDatabase.py:195 AppDatabase.py:1121 +#: FlatCAMDB.py:193 FlatCAMDB.py:1102 msgid "Tool Diameter." msgstr "Диаметр инструмента." -#: AppDatabase.py:197 AppDatabase.py:1302 +#: FlatCAMDB.py:195 FlatCAMDB.py:1283 msgid "" "Tool Offset.\n" "Can be of a few types:\n" @@ -262,7 +1940,7 @@ msgstr "" "Внитреннее = смещение внутрь на половину диаметра инструмента\n" "Внешнее = смещение наружу на половину диаметра инструмента" -#: AppDatabase.py:204 AppDatabase.py:1319 +#: FlatCAMDB.py:202 FlatCAMDB.py:1300 msgid "" "Custom Offset.\n" "A value to be used as offset from the current path." @@ -270,7 +1948,7 @@ msgstr "" "Пользовательское смещение.\n" "Значение, которое будет использоваться в качестве смещения от текущего пути." -#: AppDatabase.py:207 AppDatabase.py:1286 +#: FlatCAMDB.py:205 FlatCAMDB.py:1267 msgid "" "Tool Type.\n" "Can be:\n" @@ -284,7 +1962,7 @@ msgstr "" "Грубый = грубая резка, низкая скорость подачи, несколько проходов\n" "Финишный = финишная резка, высокая скорость подачи" -#: AppDatabase.py:213 AppDatabase.py:1134 +#: FlatCAMDB.py:211 FlatCAMDB.py:1115 msgid "" "Tool Shape. \n" "Can be:\n" @@ -298,7 +1976,7 @@ msgstr "" "B = шаровой наконечник фрезерного инструмента\n" "V = v-образный фрезерный инструмент" -#: AppDatabase.py:219 AppDatabase.py:1150 +#: FlatCAMDB.py:217 FlatCAMDB.py:1131 msgid "" "Cutting Depth.\n" "The depth at which to cut into material." @@ -306,7 +1984,7 @@ msgstr "" "Глубина резания.\n" "Глубина, на которой можно разрезать материал." -#: AppDatabase.py:222 AppDatabase.py:1164 +#: FlatCAMDB.py:220 FlatCAMDB.py:1145 msgid "" "Multi Depth.\n" "Selecting this will allow cutting in multiple passes,\n" @@ -316,7 +1994,7 @@ msgstr "" "Выбор этого параметра позволит выполнять обрезку в несколько проходов,\n" "при каждом проходе добавляется глубина параметра DPP." -#: AppDatabase.py:226 AppDatabase.py:1177 +#: FlatCAMDB.py:224 FlatCAMDB.py:1158 msgid "" "DPP. Depth per Pass.\n" "The value used to cut into material on each pass." @@ -324,7 +2002,7 @@ msgstr "" "DPP. Глубина за проход.\n" "Значение, используемое для резки материала при каждом проходе." -#: AppDatabase.py:229 AppDatabase.py:1333 +#: FlatCAMDB.py:227 FlatCAMDB.py:1314 msgid "" "V-Dia.\n" "Diameter of the tip for V-Shape Tools." @@ -332,7 +2010,7 @@ msgstr "" "V-Dia.\n" "Диаметр наконечника для инструментов V-образной формы." -#: AppDatabase.py:232 AppDatabase.py:1347 +#: FlatCAMDB.py:230 FlatCAMDB.py:1328 msgid "" "V-Agle.\n" "Angle at the tip for the V-Shape Tools." @@ -340,7 +2018,7 @@ msgstr "" "V-Agle.\n" "Угол накончика для инструментов V-образной формы." -#: AppDatabase.py:235 AppDatabase.py:1191 +#: FlatCAMDB.py:233 FlatCAMDB.py:1172 msgid "" "Clearance Height.\n" "Height at which the milling bit will travel between cuts,\n" @@ -350,7 +2028,7 @@ msgstr "" "Высота, на которой фреза будет перемещаться между срезами,\n" "над поверхностью материала, избегая всех приспособлений." -#: AppDatabase.py:239 +#: FlatCAMDB.py:237 msgid "" "FR. Feedrate\n" "The speed on XY plane used while cutting into material." @@ -358,7 +2036,7 @@ msgstr "" "FR. Скорость подачи\n" "Скорость на плоскости XY используется при резке материала." -#: AppDatabase.py:242 +#: FlatCAMDB.py:240 msgid "" "FR Z. Feedrate Z\n" "The speed on Z plane." @@ -366,7 +2044,7 @@ msgstr "" "FR Z. Скорость подачи Z\n" "Скорость на плоскости Z." -#: AppDatabase.py:245 AppDatabase.py:1361 +#: FlatCAMDB.py:243 FlatCAMDB.py:1342 msgid "" "FR Rapids. Feedrate Rapids\n" "Speed used while moving as fast as possible.\n" @@ -379,7 +2057,7 @@ msgstr "" "использовать\n" "команда G0 g-кода. В основном 3D принтеры." -#: AppDatabase.py:250 AppDatabase.py:1234 +#: FlatCAMDB.py:248 FlatCAMDB.py:1215 msgid "" "Spindle Speed.\n" "If it's left empty it will not be used.\n" @@ -389,7 +2067,7 @@ msgstr "" "Если оставить его пустым, он не будет использоваться.\n" "Скорость вращения шпинделя в об/мин." -#: AppDatabase.py:254 AppDatabase.py:1249 +#: FlatCAMDB.py:252 FlatCAMDB.py:1230 msgid "" "Dwell.\n" "Check this if a delay is needed to allow\n" @@ -399,7 +2077,7 @@ msgstr "" "Отметьте это, если необходима задержка, для того чтобы разрешить\n" "шпинделю достичь его установленной скорости." -#: AppDatabase.py:258 AppDatabase.py:1262 +#: FlatCAMDB.py:256 FlatCAMDB.py:1243 msgid "" "Dwell Time.\n" "A delay used to allow the motor spindle reach it's set speed." @@ -407,7 +2085,7 @@ msgstr "" "Время задержки.\n" "Задержка, позволяющая шпинделю достигать заданной скорости." -#: AppDatabase.py:261 +#: FlatCAMDB.py:259 msgid "" "Preprocessor.\n" "A selection of files that will alter the generated G-code\n" @@ -417,7 +2095,7 @@ msgstr "" "Выбор файлов, которые изменят полученный G-code\n" "чтобы соответствовать в ряде случаев использования." -#: AppDatabase.py:265 AppDatabase.py:1377 +#: FlatCAMDB.py:263 FlatCAMDB.py:1358 msgid "" "Extra Cut.\n" "If checked, after a isolation is finished an extra cut\n" @@ -432,7 +2110,7 @@ msgstr "" "так чтобы эта точка была покрыта этим дополнительным разрезом, для\n" "обеспечения полной изоляции." -#: AppDatabase.py:271 AppDatabase.py:1392 +#: FlatCAMDB.py:269 FlatCAMDB.py:1373 msgid "" "Extra Cut length.\n" "If checked, after a isolation is finished an extra cut\n" @@ -448,7 +2126,7 @@ msgstr "" "обеспечить полную изоляцию. Это длина\n" "дополнительный разрез." -#: AppDatabase.py:278 +#: FlatCAMDB.py:276 msgid "" "Toolchange.\n" "It will create a toolchange event.\n" @@ -460,7 +2138,7 @@ msgstr "" "Вид смены инструмента определяется\n" "в файле препроцессора." -#: AppDatabase.py:283 +#: FlatCAMDB.py:281 msgid "" "Toolchange XY.\n" "A set of coordinates in the format (x, y).\n" @@ -472,7 +2150,7 @@ msgstr "" "Определит положение точки в картезианском поле.\n" "где происходит смена инструмента." -#: AppDatabase.py:288 +#: FlatCAMDB.py:286 msgid "" "Toolchange Z.\n" "The position on Z plane where the tool change event take place." @@ -480,7 +2158,7 @@ msgstr "" "Z смены инструмента .\n" "Положение на плоскости Z, в котором происходит событие смены инструмента." -#: AppDatabase.py:291 +#: FlatCAMDB.py:289 msgid "" "Start Z.\n" "If it's left empty it will not be used.\n" @@ -491,7 +2169,7 @@ msgstr "" "Положение на плоскости Z для перемещения сразу после начала выполнения " "задания." -#: AppDatabase.py:295 +#: FlatCAMDB.py:293 msgid "" "End Z.\n" "A position on Z plane to move immediately after job stop." @@ -499,149 +2177,100 @@ msgstr "" "Z Конечная \n" "Положение на плоскости Z для перемещения сразу после остановки задания." -#: AppDatabase.py:307 AppDatabase.py:684 AppDatabase.py:718 AppDatabase.py:2033 -#: AppDatabase.py:2298 AppDatabase.py:2332 +#: FlatCAMDB.py:305 FlatCAMDB.py:682 FlatCAMDB.py:716 FlatCAMDB.py:1898 +#: FlatCAMDB.py:2144 FlatCAMDB.py:2178 msgid "Could not load Tools DB file." msgstr "Не удалось загрузить файл БД." -#: AppDatabase.py:315 AppDatabase.py:726 AppDatabase.py:2041 -#: AppDatabase.py:2340 +#: FlatCAMDB.py:313 FlatCAMDB.py:724 FlatCAMDB.py:1906 FlatCAMDB.py:2186 msgid "Failed to parse Tools DB file." msgstr "Не удалось прочитать файл БД." -#: AppDatabase.py:318 AppDatabase.py:729 AppDatabase.py:2044 -#: AppDatabase.py:2343 -#, fuzzy -#| msgid "Loaded FlatCAM Tools DB from" -msgid "Loaded Tools DB from" +#: FlatCAMDB.py:316 FlatCAMDB.py:727 FlatCAMDB.py:1909 FlatCAMDB.py:2189 +msgid "Loaded FlatCAM Tools DB from" msgstr "Загрузка FlatCAM БД из" -#: AppDatabase.py:324 AppDatabase.py:1958 +#: FlatCAMDB.py:322 FlatCAMDB.py:1823 msgid "Add to DB" msgstr "Добавить в БД" -#: AppDatabase.py:326 AppDatabase.py:1961 +#: FlatCAMDB.py:324 FlatCAMDB.py:1826 msgid "Copy from DB" msgstr "Копировать из БД" -#: AppDatabase.py:328 AppDatabase.py:1964 +#: FlatCAMDB.py:326 FlatCAMDB.py:1829 msgid "Delete from DB" msgstr "Удалить из БД" -#: AppDatabase.py:605 AppDatabase.py:2198 +#: FlatCAMDB.py:603 FlatCAMDB.py:2044 msgid "Tool added to DB." msgstr "Инструмент добавлен в БД." -#: AppDatabase.py:626 AppDatabase.py:2231 +#: FlatCAMDB.py:624 FlatCAMDB.py:2077 msgid "Tool copied from Tools DB." msgstr "Инструмент скопирован из БД." -#: AppDatabase.py:644 AppDatabase.py:2258 +#: FlatCAMDB.py:642 FlatCAMDB.py:2104 msgid "Tool removed from Tools DB." msgstr "Инструмент удален из БД." -#: AppDatabase.py:655 AppDatabase.py:2269 +#: FlatCAMDB.py:653 FlatCAMDB.py:2115 msgid "Export Tools Database" msgstr "Экспорт БД" -#: AppDatabase.py:658 AppDatabase.py:2272 +#: FlatCAMDB.py:656 FlatCAMDB.py:2118 msgid "Tools_Database" msgstr "Tools_Database" -#: AppDatabase.py:665 AppDatabase.py:711 AppDatabase.py:2279 -#: AppDatabase.py:2325 AppEditors/FlatCAMExcEditor.py:1023 -#: AppEditors/FlatCAMExcEditor.py:1091 AppEditors/FlatCAMTextEditor.py:223 -#: AppGUI/MainGUI.py:2730 AppGUI/MainGUI.py:2952 AppGUI/MainGUI.py:3167 -#: AppObjects/ObjectCollection.py:127 AppTools/ToolFilm.py:739 -#: AppTools/ToolFilm.py:885 AppTools/ToolImage.py:247 AppTools/ToolMove.py:269 -#: AppTools/ToolPcbWizard.py:301 AppTools/ToolPcbWizard.py:324 -#: AppTools/ToolQRCode.py:800 AppTools/ToolQRCode.py:847 App_Main.py:1710 -#: App_Main.py:2451 App_Main.py:2487 App_Main.py:2534 App_Main.py:4100 -#: App_Main.py:6610 App_Main.py:6649 App_Main.py:6693 App_Main.py:6722 -#: App_Main.py:6763 App_Main.py:6788 App_Main.py:6844 App_Main.py:6880 -#: App_Main.py:6925 App_Main.py:6966 App_Main.py:7008 App_Main.py:7050 -#: App_Main.py:7091 App_Main.py:7135 App_Main.py:7195 App_Main.py:7227 -#: App_Main.py:7259 App_Main.py:7490 App_Main.py:7528 App_Main.py:7571 -#: App_Main.py:7648 App_Main.py:7703 Bookmark.py:300 Bookmark.py:342 -msgid "Cancelled." -msgstr "Отменено." - -#: AppDatabase.py:673 AppDatabase.py:2287 AppEditors/FlatCAMTextEditor.py:276 -#: AppObjects/FlatCAMCNCJob.py:959 AppTools/ToolFilm.py:1016 -#: AppTools/ToolFilm.py:1197 AppTools/ToolSolderPaste.py:1542 App_Main.py:2542 -#: App_Main.py:7947 App_Main.py:7995 App_Main.py:8120 App_Main.py:8256 -#: Bookmark.py:308 -msgid "" -"Permission denied, saving not possible.\n" -"Most likely another app is holding the file open and not accessible." -msgstr "" -"В доступе отказано, сохранение невозможно.\n" -"Скорее всего, другое приложение держит файл открытым и недоступным." - -#: AppDatabase.py:695 AppDatabase.py:698 AppDatabase.py:750 AppDatabase.py:2309 -#: AppDatabase.py:2312 AppDatabase.py:2365 +#: FlatCAMDB.py:693 FlatCAMDB.py:696 FlatCAMDB.py:748 FlatCAMDB.py:2155 +#: FlatCAMDB.py:2158 FlatCAMDB.py:2211 msgid "Failed to write Tools DB to file." msgstr "Не удалось записать БД в файл." -#: AppDatabase.py:701 AppDatabase.py:2315 +#: FlatCAMDB.py:699 FlatCAMDB.py:2161 msgid "Exported Tools DB to" msgstr "Экспорт БД в" -#: AppDatabase.py:708 AppDatabase.py:2322 +#: FlatCAMDB.py:706 FlatCAMDB.py:2168 msgid "Import FlatCAM Tools DB" msgstr "Импорт FlatCAM БД" -#: AppDatabase.py:740 AppDatabase.py:915 AppDatabase.py:2354 -#: AppDatabase.py:2624 AppObjects/FlatCAMGeometry.py:956 -#: AppTools/ToolIsolation.py:2909 AppTools/ToolIsolation.py:2994 -#: AppTools/ToolNCC.py:4029 AppTools/ToolNCC.py:4113 AppTools/ToolPaint.py:3578 -#: AppTools/ToolPaint.py:3663 App_Main.py:5233 App_Main.py:5267 -#: App_Main.py:5294 App_Main.py:5314 App_Main.py:5324 -msgid "Tools Database" -msgstr "База данных" - -#: AppDatabase.py:754 AppDatabase.py:2369 +#: FlatCAMDB.py:752 FlatCAMDB.py:2215 msgid "Saved Tools DB." msgstr "Сохраненные БД." -#: AppDatabase.py:901 AppDatabase.py:2611 +#: FlatCAMDB.py:899 FlatCAMDB.py:2405 msgid "No Tool/row selected in the Tools Database table" msgstr "В таблице БД не выбрано ни одного инструмента/строки" -#: AppDatabase.py:919 AppDatabase.py:2628 +#: FlatCAMDB.py:917 FlatCAMDB.py:2422 msgid "Cancelled adding tool from DB." msgstr "Отмена добавление инструмента из БД." -#: AppDatabase.py:1020 +#: FlatCAMDB.py:1018 msgid "Basic Geo Parameters" msgstr "Базовые настройки геометрии" -#: AppDatabase.py:1032 +#: FlatCAMDB.py:1030 msgid "Advanced Geo Parameters" msgstr "Дополнительные настройки геометрии" -#: AppDatabase.py:1045 +#: FlatCAMDB.py:1042 msgid "NCC Parameters" msgstr "Параметры" -#: AppDatabase.py:1058 +#: FlatCAMDB.py:1054 msgid "Paint Parameters" msgstr "Параметры рисования" -#: AppDatabase.py:1071 -#, fuzzy -#| msgid "Paint Parameters" -msgid "Isolation Parameters" -msgstr "Параметры рисования" - -#: AppDatabase.py:1204 AppGUI/ObjectUI.py:746 AppGUI/ObjectUI.py:1671 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:186 -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:148 -#: AppTools/ToolSolderPaste.py:249 +#: FlatCAMDB.py:1185 flatcamGUI/ObjectUI.py:967 flatcamGUI/ObjectUI.py:1769 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:185 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:148 +#: flatcamTools/ToolSolderPaste.py:253 msgid "Feedrate X-Y" msgstr "Скорость подачи X-Y" -#: AppDatabase.py:1206 +#: FlatCAMDB.py:1187 msgid "" "Feedrate X-Y. Feedrate\n" "The speed on XY plane used while cutting into material." @@ -649,15 +2278,15 @@ msgstr "" "Скорость подачи X-Y\n" "Скорость на плоскости XY используется при резке материала." -#: AppDatabase.py:1218 AppGUI/ObjectUI.py:761 AppGUI/ObjectUI.py:1685 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:207 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:201 -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:161 -#: AppTools/ToolSolderPaste.py:261 +#: FlatCAMDB.py:1199 flatcamGUI/ObjectUI.py:982 flatcamGUI/ObjectUI.py:1783 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:207 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:200 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:161 +#: flatcamTools/ToolSolderPaste.py:265 msgid "Feedrate Z" msgstr "Скорость подачи Z" -#: AppDatabase.py:1220 +#: FlatCAMDB.py:1201 msgid "" "Feedrate Z\n" "The speed on Z plane." @@ -665,13 +2294,13 @@ msgstr "" "Скорость подачи Z\n" "Скорость в плоскости Z." -#: AppDatabase.py:1418 AppGUI/ObjectUI.py:624 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:46 -#: AppTools/ToolNCC.py:341 +#: FlatCAMDB.py:1399 flatcamGUI/ObjectUI.py:845 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:46 +#: flatcamTools/ToolNCC.py:341 msgid "Operation" msgstr "Операция" -#: AppDatabase.py:1420 AppTools/ToolNCC.py:343 +#: FlatCAMDB.py:1401 flatcamTools/ToolNCC.py:343 msgid "" "The 'Operation' can be:\n" "- Isolation -> will ensure that the non-copper clearing is always complete.\n" @@ -683,31 +2312,28 @@ msgstr "" "Если это не удастся, то очистка от меди также потерпит неудачу.\n" "- Очистка - > обычная очистка от меди." -#: AppDatabase.py:1427 AppEditors/FlatCAMGrbEditor.py:2749 -#: AppGUI/GUIElements.py:2754 AppTools/ToolNCC.py:350 +#: FlatCAMDB.py:1408 flatcamEditors/FlatCAMGrbEditor.py:2742 +#: flatcamGUI/GUIElements.py:2577 flatcamTools/ToolNCC.py:350 msgid "Clear" msgstr "Сбросить" -#: AppDatabase.py:1428 AppTools/ToolNCC.py:351 +#: FlatCAMDB.py:1409 flatcamTools/ToolNCC.py:351 flatcamTools/ToolNCC.py:1623 msgid "Isolation" msgstr "Изоляция" -#: AppDatabase.py:1436 AppDatabase.py:1682 AppGUI/ObjectUI.py:646 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:62 -#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:56 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:182 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:137 -#: AppTools/ToolIsolation.py:351 AppTools/ToolNCC.py:359 +#: FlatCAMDB.py:1417 flatcamGUI/ObjectUI.py:409 flatcamGUI/ObjectUI.py:867 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:62 +#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:56 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:95 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:137 +#: flatcamTools/ToolNCC.py:359 msgid "Milling Type" msgstr "Тип фрезерования" -#: AppDatabase.py:1438 AppDatabase.py:1446 AppDatabase.py:1684 -#: AppDatabase.py:1692 AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:184 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:192 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:139 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:147 -#: AppTools/ToolIsolation.py:353 AppTools/ToolIsolation.py:361 -#: AppTools/ToolNCC.py:361 AppTools/ToolNCC.py:369 +#: FlatCAMDB.py:1419 FlatCAMDB.py:1427 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:139 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:147 +#: flatcamTools/ToolNCC.py:361 flatcamTools/ToolNCC.py:369 msgid "" "Milling type when the selected tool is of type: 'iso_op':\n" "- climb / best for precision milling and to reduce tool usage\n" @@ -718,34 +2344,31 @@ msgstr "" "использования инструмента\n" "- conventional / полезен, когда нет компенсации люфта" -#: AppDatabase.py:1443 AppDatabase.py:1689 -#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:62 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:189 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:144 -#: AppTools/ToolIsolation.py:358 AppTools/ToolNCC.py:366 +#: FlatCAMDB.py:1424 flatcamGUI/ObjectUI.py:415 +#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:62 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:102 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:144 +#: flatcamTools/ToolNCC.py:366 msgid "Climb" msgstr "Постепенный" -#: AppDatabase.py:1444 AppDatabase.py:1690 -#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:63 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:190 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:145 -#: AppTools/ToolIsolation.py:359 AppTools/ToolNCC.py:367 +#: FlatCAMDB.py:1425 flatcamGUI/ObjectUI.py:416 +#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:63 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:103 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:145 +#: flatcamTools/ToolNCC.py:367 msgid "Conventional" msgstr "Обычный" -#: AppDatabase.py:1456 AppDatabase.py:1565 AppDatabase.py:1667 -#: AppEditors/FlatCAMGeoEditor.py:450 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:167 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:182 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:163 -#: AppTools/ToolIsolation.py:336 AppTools/ToolNCC.py:382 -#: AppTools/ToolPaint.py:328 +#: FlatCAMDB.py:1437 FlatCAMDB.py:1546 flatcamEditors/FlatCAMGeoEditor.py:451 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:182 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:163 +#: flatcamTools/ToolNCC.py:382 flatcamTools/ToolPaint.py:329 msgid "Overlap" msgstr "Перекрытие" -#: AppDatabase.py:1458 AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:184 -#: AppTools/ToolNCC.py:384 +#: FlatCAMDB.py:1439 flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:184 +#: flatcamTools/ToolNCC.py:384 msgid "" "How much (percentage) of the tool width to overlap each tool pass.\n" "Adjust the value starting with lower values\n" @@ -765,47 +2388,45 @@ msgstr "" "Более высокие значения = медленная обработка и медленное выполнение на ЧПУ\n" "из-за большого количества путей." -#: AppDatabase.py:1477 AppDatabase.py:1586 AppEditors/FlatCAMGeoEditor.py:470 -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:72 -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:229 -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:59 -#: AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py:45 -#: AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py:53 -#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:66 -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:115 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:202 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:183 -#: AppTools/ToolCopperThieving.py:115 AppTools/ToolCopperThieving.py:366 -#: AppTools/ToolCorners.py:149 AppTools/ToolCutOut.py:190 -#: AppTools/ToolFiducials.py:175 AppTools/ToolInvertGerber.py:91 -#: AppTools/ToolInvertGerber.py:99 AppTools/ToolNCC.py:403 -#: AppTools/ToolPaint.py:349 +#: FlatCAMDB.py:1458 FlatCAMDB.py:1567 flatcamEditors/FlatCAMGeoEditor.py:471 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:72 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:229 +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:59 +#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:45 +#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:53 +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:115 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:202 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:183 +#: flatcamTools/ToolCopperThieving.py:111 +#: flatcamTools/ToolCopperThieving.py:362 flatcamTools/ToolCutOut.py:190 +#: flatcamTools/ToolFiducials.py:172 flatcamTools/ToolInvertGerber.py:88 +#: flatcamTools/ToolInvertGerber.py:96 flatcamTools/ToolNCC.py:403 +#: flatcamTools/ToolPaint.py:350 msgid "Margin" msgstr "Отступ" -#: AppDatabase.py:1479 -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:74 -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:61 -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:125 -#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:68 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:204 -#: AppTools/ToolCopperThieving.py:117 AppTools/ToolCorners.py:151 -#: AppTools/ToolFiducials.py:177 AppTools/ToolNCC.py:405 +#: FlatCAMDB.py:1460 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:74 +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:61 +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:125 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:204 +#: flatcamTools/ToolCopperThieving.py:113 flatcamTools/ToolFiducials.py:174 +#: flatcamTools/ToolFiducials.py:237 flatcamTools/ToolNCC.py:405 msgid "Bounding box margin." msgstr "Граница рамки." -#: AppDatabase.py:1490 AppDatabase.py:1601 AppEditors/FlatCAMGeoEditor.py:484 -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:105 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:106 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:215 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:198 -#: AppTools/ToolExtractDrills.py:128 AppTools/ToolNCC.py:416 -#: AppTools/ToolPaint.py:364 AppTools/ToolPunchGerber.py:139 +#: FlatCAMDB.py:1471 FlatCAMDB.py:1582 flatcamEditors/FlatCAMGeoEditor.py:485 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:105 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:106 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:215 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:198 +#: flatcamTools/ToolExtractDrills.py:128 flatcamTools/ToolNCC.py:416 +#: flatcamTools/ToolPaint.py:365 flatcamTools/ToolPunchGerber.py:139 msgid "Method" msgstr "Метод" -#: AppDatabase.py:1492 AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:217 -#: AppTools/ToolNCC.py:418 +#: FlatCAMDB.py:1473 flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:217 +#: flatcamTools/ToolNCC.py:418 msgid "" "Algorithm for copper clearing:\n" "- Standard: Fixed step inwards.\n" @@ -817,57 +2438,52 @@ msgstr "" "- Круговой: наружу от центра.\n" "- Линейный: параллельные линии." -#: AppDatabase.py:1500 AppDatabase.py:1615 AppEditors/FlatCAMGeoEditor.py:498 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:230 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217 -#: AppTools/ToolNCC.py:431 AppTools/ToolNCC.py:2232 AppTools/ToolNCC.py:2764 -#: AppTools/ToolNCC.py:2796 AppTools/ToolPaint.py:389 -#: AppTools/ToolPaint.py:1859 tclCommands/TclCommandCopperClear.py:126 +#: FlatCAMDB.py:1481 FlatCAMDB.py:1596 flatcamEditors/FlatCAMGeoEditor.py:499 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:230 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217 +#: flatcamTools/ToolNCC.py:431 flatcamTools/ToolNCC.py:2395 +#: flatcamTools/ToolNCC.py:2424 flatcamTools/ToolNCC.py:2693 +#: flatcamTools/ToolNCC.py:2725 flatcamTools/ToolPaint.py:390 +#: flatcamTools/ToolPaint.py:1834 tclCommands/TclCommandCopperClear.py:126 #: tclCommands/TclCommandCopperClear.py:134 tclCommands/TclCommandPaint.py:125 msgid "Standard" msgstr "Стандартный" -#: AppDatabase.py:1500 AppDatabase.py:1615 AppEditors/FlatCAMGeoEditor.py:498 -#: AppEditors/FlatCAMGeoEditor.py:568 AppEditors/FlatCAMGeoEditor.py:5148 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:230 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217 -#: AppTools/ToolNCC.py:431 AppTools/ToolNCC.py:2243 AppTools/ToolNCC.py:2770 -#: AppTools/ToolNCC.py:2802 AppTools/ToolPaint.py:389 -#: AppTools/ToolPaint.py:1873 defaults.py:413 defaults.py:445 -#: tclCommands/TclCommandCopperClear.py:128 +#: FlatCAMDB.py:1481 FlatCAMDB.py:1596 defaults.py:395 defaults.py:427 +#: flatcamEditors/FlatCAMGeoEditor.py:499 +#: flatcamEditors/FlatCAMGeoEditor.py:569 +#: flatcamEditors/FlatCAMGeoEditor.py:5152 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:230 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217 +#: flatcamTools/ToolNCC.py:431 flatcamTools/ToolNCC.py:2401 +#: flatcamTools/ToolNCC.py:2429 flatcamTools/ToolNCC.py:2699 +#: flatcamTools/ToolNCC.py:2731 flatcamTools/ToolPaint.py:390 +#: flatcamTools/ToolPaint.py:1848 tclCommands/TclCommandCopperClear.py:128 #: tclCommands/TclCommandCopperClear.py:136 tclCommands/TclCommandPaint.py:127 msgid "Seed" msgstr "По кругу" -#: AppDatabase.py:1500 AppDatabase.py:1615 AppEditors/FlatCAMGeoEditor.py:498 -#: AppEditors/FlatCAMGeoEditor.py:5152 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:230 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217 -#: AppTools/ToolNCC.py:431 AppTools/ToolNCC.py:2254 AppTools/ToolPaint.py:389 -#: AppTools/ToolPaint.py:698 AppTools/ToolPaint.py:1887 +#: FlatCAMDB.py:1481 FlatCAMDB.py:1596 flatcamEditors/FlatCAMGeoEditor.py:499 +#: flatcamEditors/FlatCAMGeoEditor.py:5156 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:230 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217 +#: flatcamTools/ToolNCC.py:431 flatcamTools/ToolPaint.py:390 +#: flatcamTools/ToolPaint.py:699 flatcamTools/ToolPaint.py:1862 #: tclCommands/TclCommandCopperClear.py:130 tclCommands/TclCommandPaint.py:129 msgid "Lines" msgstr "Линий" -#: AppDatabase.py:1500 AppDatabase.py:1615 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:230 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217 -#: AppTools/ToolNCC.py:431 AppTools/ToolNCC.py:2265 AppTools/ToolPaint.py:389 -#: AppTools/ToolPaint.py:2052 tclCommands/TclCommandPaint.py:133 -msgid "Combo" -msgstr "Комбо" - -#: AppDatabase.py:1508 AppDatabase.py:1626 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:237 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:224 -#: AppTools/ToolNCC.py:439 AppTools/ToolPaint.py:400 +#: FlatCAMDB.py:1489 FlatCAMDB.py:1607 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:237 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:224 +#: flatcamTools/ToolNCC.py:439 flatcamTools/ToolPaint.py:401 msgid "Connect" msgstr "Подключение" -#: AppDatabase.py:1512 AppDatabase.py:1629 AppEditors/FlatCAMGeoEditor.py:507 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:239 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:226 -#: AppTools/ToolNCC.py:443 AppTools/ToolPaint.py:403 +#: FlatCAMDB.py:1493 FlatCAMDB.py:1610 flatcamEditors/FlatCAMGeoEditor.py:508 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:239 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:226 +#: flatcamTools/ToolNCC.py:443 flatcamTools/ToolPaint.py:404 msgid "" "Draw lines between resulting\n" "segments to minimize tool lifts." @@ -875,17 +2491,17 @@ msgstr "" "Рисовать линии между результирующей сегментами\n" " для минимизации подъёма инструмента." -#: AppDatabase.py:1518 AppDatabase.py:1633 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:246 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:232 -#: AppTools/ToolNCC.py:449 AppTools/ToolPaint.py:407 +#: FlatCAMDB.py:1499 FlatCAMDB.py:1614 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:246 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:232 +#: flatcamTools/ToolNCC.py:449 flatcamTools/ToolPaint.py:408 msgid "Contour" msgstr "Контур" -#: AppDatabase.py:1522 AppDatabase.py:1636 AppEditors/FlatCAMGeoEditor.py:517 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:248 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:234 -#: AppTools/ToolNCC.py:453 AppTools/ToolPaint.py:410 +#: FlatCAMDB.py:1503 FlatCAMDB.py:1617 flatcamEditors/FlatCAMGeoEditor.py:518 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:248 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:234 +#: flatcamTools/ToolNCC.py:453 flatcamTools/ToolPaint.py:411 msgid "" "Cut around the perimeter of the polygon\n" "to trim rough edges." @@ -893,18 +2509,17 @@ msgstr "" "Обрезка по периметру полигона\n" "для зачистки неровных краёв." -#: AppDatabase.py:1528 AppEditors/FlatCAMGeoEditor.py:611 -#: AppEditors/FlatCAMGrbEditor.py:5305 AppGUI/ObjectUI.py:143 -#: AppGUI/ObjectUI.py:1394 AppGUI/ObjectUI.py:2256 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:255 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:142 -#: AppTools/ToolEtchCompensation.py:199 AppTools/ToolEtchCompensation.py:207 -#: AppTools/ToolNCC.py:459 AppTools/ToolTransform.py:28 +#: FlatCAMDB.py:1509 flatcamEditors/FlatCAMGeoEditor.py:612 +#: flatcamEditors/FlatCAMGrbEditor.py:5311 flatcamGUI/ObjectUI.py:143 +#: flatcamGUI/ObjectUI.py:1497 flatcamGUI/ObjectUI.py:2326 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:255 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:142 +#: flatcamTools/ToolNCC.py:459 flatcamTools/ToolTransform.py:28 msgid "Offset" msgstr "Смещение" -#: AppDatabase.py:1532 AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:257 -#: AppTools/ToolNCC.py:463 +#: FlatCAMDB.py:1513 flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:257 +#: flatcamTools/ToolNCC.py:463 msgid "" "If used, it will add an offset to the copper features.\n" "The copper clearing will finish to a distance\n" @@ -916,9 +2531,9 @@ msgstr "" "из медных штучек.\n" "Значение может быть от 0 до 10 единиц FlatCAM." -#: AppDatabase.py:1567 AppEditors/FlatCAMGeoEditor.py:452 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:165 -#: AppTools/ToolPaint.py:330 +#: FlatCAMDB.py:1548 flatcamEditors/FlatCAMGeoEditor.py:453 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:165 +#: flatcamTools/ToolPaint.py:331 msgid "" "How much (percentage) of the tool width to overlap each tool pass.\n" "Adjust the value starting with lower values\n" @@ -938,17 +2553,17 @@ msgstr "" "Более высокие значения = медленная обработка и медленное выполнение на ЧПУ\n" "из-за большого количества путей." -#: AppDatabase.py:1588 AppEditors/FlatCAMGeoEditor.py:472 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:185 -#: AppTools/ToolPaint.py:351 +#: FlatCAMDB.py:1569 flatcamEditors/FlatCAMGeoEditor.py:473 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:185 +#: flatcamTools/ToolPaint.py:352 msgid "" "Distance by which to avoid\n" "the edges of the polygon to\n" "be painted." msgstr "Расстояние, которое не закрашивать до края полигона." -#: AppDatabase.py:1603 AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:200 -#: AppTools/ToolPaint.py:366 +#: FlatCAMDB.py:1584 flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:200 +#: flatcamTools/ToolPaint.py:367 msgid "" "Algorithm for painting:\n" "- Standard: Fixed step inwards.\n" @@ -969,263 +2584,482 @@ msgstr "" "вышеперечисленных.\n" "в указанном порядке." -#: AppDatabase.py:1615 AppDatabase.py:1617 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217 -#: AppTools/ToolPaint.py:389 AppTools/ToolPaint.py:391 -#: AppTools/ToolPaint.py:692 AppTools/ToolPaint.py:697 -#: AppTools/ToolPaint.py:1901 tclCommands/TclCommandPaint.py:131 +#: FlatCAMDB.py:1596 FlatCAMDB.py:1598 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217 +#: flatcamTools/ToolPaint.py:390 flatcamTools/ToolPaint.py:392 +#: flatcamTools/ToolPaint.py:693 flatcamTools/ToolPaint.py:698 +#: flatcamTools/ToolPaint.py:1876 tclCommands/TclCommandPaint.py:131 msgid "Laser_lines" msgstr "Laser_lines" -#: AppDatabase.py:1654 AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:154 -#: AppTools/ToolIsolation.py:323 -#, fuzzy -#| msgid "# Passes" -msgid "Passes" -msgstr "# Проходы" +#: FlatCAMDB.py:1596 flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217 +#: flatcamTools/ToolPaint.py:390 flatcamTools/ToolPaint.py:2027 +#: tclCommands/TclCommandPaint.py:133 +msgid "Combo" +msgstr "Комбо" -#: AppDatabase.py:1656 AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:156 -#: AppTools/ToolIsolation.py:325 -msgid "" -"Width of the isolation gap in\n" -"number (integer) of tool widths." -msgstr "" -"Ширина промежутка изоляции в \n" -"числах (целое число) ширины инструмента." - -#: AppDatabase.py:1669 AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:169 -#: AppTools/ToolIsolation.py:338 -msgid "How much (percentage) of the tool width to overlap each tool pass." -msgstr "" -"Размер части ширины инструмента, который будет перекрываться за каждый " -"проход." - -#: AppDatabase.py:1702 AppGUI/ObjectUI.py:236 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:201 -#: AppTools/ToolIsolation.py:371 -#, fuzzy -#| msgid "\"Follow\"" -msgid "Follow" -msgstr "\"Следовать\"" - -#: AppDatabase.py:1704 AppDatabase.py:1710 AppGUI/ObjectUI.py:237 -#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:45 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:203 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:209 -#: AppTools/ToolIsolation.py:373 AppTools/ToolIsolation.py:379 -msgid "" -"Generate a 'Follow' geometry.\n" -"This means that it will cut through\n" -"the middle of the trace." -msgstr "" -"Создаёт геометрию 'Следовать'.\n" -"Это означает, что он будет прорезать\n" -"середину трассы." - -#: AppDatabase.py:1719 AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:218 -#: AppTools/ToolIsolation.py:388 -msgid "Isolation Type" -msgstr "Тип изоляции" - -#: AppDatabase.py:1721 AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:220 -#: AppTools/ToolIsolation.py:390 -msgid "" -"Choose how the isolation will be executed:\n" -"- 'Full' -> complete isolation of polygons\n" -"- 'Ext' -> will isolate only on the outside\n" -"- 'Int' -> will isolate only on the inside\n" -"'Exterior' isolation is almost always possible\n" -"(with the right tool) but 'Interior'\n" -"isolation can be done only when there is an opening\n" -"inside of the polygon (e.g polygon is a 'doughnut' shape)." -msgstr "" -"Выбор способа выполнения изоляции:\n" -"- 'Полная' -> полная изоляция полигонов\n" -"- 'Внешняя' -> изолирует только снаружи.\n" -"- 'Внутренняя' -> изолирует только изнутри.\n" -"Внешняя изоляция почти всегда возможна.\n" -"(с правильным инструментом), но 'Внутренняя'\n" -"изоляция может быть выполнена только при наличии проема.\n" -"внутри полигона (например, полигон имеет форму \"пончика\")." - -#: AppDatabase.py:1730 AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:75 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:229 -#: AppTools/ToolIsolation.py:399 -msgid "Full" -msgstr "Полная" - -#: AppDatabase.py:1731 AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:230 -#: AppTools/ToolIsolation.py:400 -msgid "Ext" -msgstr "Наруж" - -#: AppDatabase.py:1732 AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:231 -#: AppTools/ToolIsolation.py:401 -msgid "Int" -msgstr "Внутр" - -#: AppDatabase.py:1755 +#: FlatCAMDB.py:1641 msgid "Add Tool in DB" msgstr "Добавить инструмент в БД" -#: AppDatabase.py:1789 +#: FlatCAMDB.py:1675 msgid "Save DB" msgstr "Сохранить БД" -#: AppDatabase.py:1791 +#: FlatCAMDB.py:1677 msgid "Save the Tools Database information's." msgstr "Сохраните информацию базы данных инструментов." -#: AppDatabase.py:1797 -#, fuzzy -#| msgid "" -#| "Add a new tool in the Tools Table of the\n" -#| "active Geometry object after selecting a tool\n" -#| "in the Tools Database." -msgid "" -"Insert a new tool in the Tools Table of the\n" -"object/application tool after selecting a tool\n" -"in the Tools Database." -msgstr "" -"Добавляет новый инструмент в таблицу инструментов\n" -"активной геометрии после выбора инструмента\n" -"в базе данных." +#: FlatCAMProcess.py:172 +msgid "processes running." +msgstr "процессы запущены." -#: AppEditors/FlatCAMExcEditor.py:50 AppEditors/FlatCAMExcEditor.py:74 -#: AppEditors/FlatCAMExcEditor.py:168 AppEditors/FlatCAMExcEditor.py:385 -#: AppEditors/FlatCAMExcEditor.py:589 AppEditors/FlatCAMGrbEditor.py:241 -#: AppEditors/FlatCAMGrbEditor.py:248 +#: FlatCAMTool.py:245 FlatCAMTool.py:252 flatcamGUI/ObjectUI.py:157 +#: flatcamGUI/ObjectUI.py:164 +msgid "Edited value is out of range" +msgstr "Отредактированное значение находится вне диапазона" + +#: FlatCAMTool.py:247 FlatCAMTool.py:254 flatcamGUI/ObjectUI.py:159 +#: flatcamGUI/ObjectUI.py:166 +msgid "Edited value is within limits." +msgstr "Отредактированное значение находится в пределах нормы." + +#: FlatCAMTranslation.py:104 +msgid "The application will restart." +msgstr "Приложение будет перезапущено." + +#: FlatCAMTranslation.py:106 +msgid "Are you sure do you want to change the current language to" +msgstr "Вы уверены, что хотите изменить текущий язык на" + +#: FlatCAMTranslation.py:107 +msgid "Apply Language ..." +msgstr "Применить язык ..." + +#: assets/linux/flatcam-beta.desktop:3 +#| msgid "FlatCAM Object" +msgid "FlatCAM Beta" +msgstr "FlatCAM Beta" + +#: assets/linux/flatcam-beta.desktop:7 +msgid "./assets/icon.png" +msgstr "" + +#: assets/linux/flatcam-beta.desktop:8 +msgid "G-Code from GERBERS" +msgstr "G-Code из GERBERS" + +#: camlib.py:597 +msgid "self.solid_geometry is neither BaseGeometry or list." +msgstr "self.solid_geometry не является базовой геометрией или списком." + +#: camlib.py:970 +msgid "Pass" +msgstr "Проходы" + +#: camlib.py:981 flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:146 +#: flatcamObjects/FlatCAMGerber.py:497 flatcamTools/ToolCopperThieving.py:1016 +#: flatcamTools/ToolCopperThieving.py:1205 +#: flatcamTools/ToolCopperThieving.py:1217 flatcamTools/ToolNCC.py:2050 +#: flatcamTools/ToolNCC.py:2158 flatcamTools/ToolNCC.py:2172 +#: flatcamTools/ToolNCC.py:3103 flatcamTools/ToolNCC.py:3208 +#: flatcamTools/ToolNCC.py:3223 flatcamTools/ToolNCC.py:3489 +#: flatcamTools/ToolNCC.py:3590 flatcamTools/ToolNCC.py:3605 +msgid "Buffering" +msgstr "Буферизация" + +#: camlib.py:990 +msgid "Get Exteriors" +msgstr "Перейти к наружнему" + +#: camlib.py:993 +msgid "Get Interiors" +msgstr "Перейти к внутреннему" + +#: camlib.py:2172 +msgid "Object was mirrored" +msgstr "Объект отзеркалирован" + +#: camlib.py:2174 +msgid "Failed to mirror. No object selected" +msgstr "Не удалось зеркалировать. Объект не выбран" + +#: camlib.py:2239 +msgid "Object was rotated" +msgstr "Объект повернут" + +#: camlib.py:2241 +msgid "Failed to rotate. No object selected" +msgstr "Не удалось повернуть. Объект не выбран" + +#: camlib.py:2307 +msgid "Object was skewed" +msgstr "Объект наклонён" + +#: camlib.py:2309 +msgid "Failed to skew. No object selected" +msgstr "Не удалось наклонить. Объект не выбран" + +#: camlib.py:2385 +msgid "Object was buffered" +msgstr "Объект был буферизован" + +#: camlib.py:2387 +msgid "Failed to buffer. No object selected" +msgstr "Буферизация не удалась. Объект не выбран" + +#: camlib.py:2594 +msgid "There is no such parameter" +msgstr "Такого параметра нет" + +#: camlib.py:2654 camlib.py:2887 camlib.py:3116 camlib.py:3338 +msgid "" +"The Cut Z parameter has positive value. It is the depth value to drill into " +"material.\n" +"The Cut Z parameter needs to have a negative value, assuming it is a typo " +"therefore the app will convert the value to negative. Check the resulting " +"CNC code (Gcode etc)." +msgstr "" +"Параметр \"Глубина резания\" имеет положительное значение. Значение глубины, " +"которую нужно просверлить в материале.\n" +"Параметр \"Глубина резания\" должен иметь отрицательное значение, " +"предполагая, что это опечатка, приложение преобразует значение в " +"отрицательное. Проверьте полученный CNC code (Gcode и т. д.)." + +#: camlib.py:2662 camlib.py:2897 camlib.py:3126 camlib.py:3348 camlib.py:3631 +#: camlib.py:4017 +msgid "The Cut Z parameter is zero. There will be no cut, skipping file" +msgstr "" +"Параметр \"Глубина резания\" равен нулю. Обрезки не будет , пропускается файл" + +#: camlib.py:2673 camlib.py:3985 +msgid "" +"The Toolchange X,Y field in Edit -> Preferences has to be in the format (x, " +"y) \n" +"but now there is only one value, not two. " +msgstr "" +"Поле X, Y смены инструмента в Правка - > Параметры должно быть в формате (x, " +"y)\n" +"но теперь есть только одно значение, а не два. " + +#: camlib.py:2682 camlib.py:3582 camlib.py:3967 +msgid "" +"The End Move X,Y field in Edit -> Preferences has to be in the format (x, y) " +"but now there is only one value, not two." +msgstr "" +"Поле X, Y смены инструмента в Правка - > Параметры должно быть в формате (x, " +"y), но указано только одно значение, а не два." + +#: camlib.py:2770 +msgid "Creating a list of points to drill..." +msgstr "Создание списка точек для сверления ..." + +#: camlib.py:2860 camlib.py:3729 camlib.py:4121 +msgid "Starting G-Code" +msgstr "Открытие G-Code" + +#: camlib.py:3001 camlib.py:3220 camlib.py:3384 camlib.py:3742 camlib.py:4132 +msgid "Starting G-Code for tool with diameter" +msgstr "Запуск G-кода для инструмента с диаметром" + +#: camlib.py:3084 camlib.py:3302 camlib.py:3470 +msgid "G91 coordinates not implemented" +msgstr "Координаты G91 не реализованы" + +#: camlib.py:3090 camlib.py:3309 camlib.py:3475 +msgid "The loaded Excellon file has no drills" +msgstr "Загруженный файл Excellon не имеет отверстий" + +#: camlib.py:3498 +msgid "Finished G-Code generation..." +msgstr "Создание G-кода завершено..." + +#: camlib.py:3600 +msgid "" +"The Toolchange X,Y field in Edit -> Preferences has to be in the format (x, " +"y) \n" +"but now there is only one value, not two." +msgstr "" +"Поле X, Y смены инструмента в Правка - > Параметры должно быть в формате (x, " +"y)\n" +"но теперь есть только одно значение, а не два." + +#: camlib.py:3614 camlib.py:4000 +msgid "" +"Cut_Z parameter is None or zero. Most likely a bad combinations of other " +"parameters." +msgstr "" +"Параметр \"Глубина резания\" равен None или пуст. Скорее всего неудачное " +"сочетание других параметров." + +#: camlib.py:3623 camlib.py:4009 +msgid "" +"The Cut Z parameter has positive value. It is the depth value to cut into " +"material.\n" +"The Cut Z parameter needs to have a negative value, assuming it is a typo " +"therefore the app will convert the value to negative.Check the resulting CNC " +"code (Gcode etc)." +msgstr "" +"Параметр \"Глубина резания\" имеет положительное значение. Значение глубины, " +"которую нужно просверлить в материале.\n" +"Параметр \"Глубина резания\" должен иметь отрицательное значение, " +"предполагая, что это опечатка, приложение преобразует значение в " +"отрицательное. Проверьте полученный CNC code (Gcode и т. д.)." + +#: camlib.py:3636 camlib.py:4023 +msgid "Travel Z parameter is None or zero." +msgstr "Параметр \"Отвод по Z\" равен None или пуст." + +#: camlib.py:3641 camlib.py:4028 +msgid "" +"The Travel Z parameter has negative value. It is the height value to travel " +"between cuts.\n" +"The Z Travel parameter needs to have a positive value, assuming it is a typo " +"therefore the app will convert the value to positive.Check the resulting CNC " +"code (Gcode etc)." +msgstr "" +"Параметр \"Отвод по Z\" имеет отрицательное значение. Это значение высоты " +"для перемещения между разрезами.\n" +"Параметр \"Отвод по Z\" должен иметь положительное значение. Предполагая, " +"что это опечатка, приложение преобразует значение в положительное. Проверьте " +"полученный CNC code (Gcode и т. д.)." + +#: camlib.py:3649 camlib.py:4036 +msgid "The Z Travel parameter is zero. This is dangerous, skipping file" +msgstr "Параметр \"Отвод по Z\" равен нулю. Это опасно, файл пропускается" + +#: camlib.py:3668 camlib.py:4059 +msgid "Indexing geometry before generating G-Code..." +msgstr "Индексация геометрии перед созданием G-Code..." + +#: camlib.py:3812 camlib.py:4201 +msgid "Finished G-Code generation" +msgstr "Создание G-кода завершено" + +#: camlib.py:3812 +msgid "paths traced" +msgstr "путей проложено" + +#: camlib.py:3862 +msgid "Expected a Geometry, got" +msgstr "Ожидалась Geometry, получили" + +#: camlib.py:3869 +msgid "" +"Trying to generate a CNC Job from a Geometry object without solid_geometry." +msgstr "Попытка создать CNC Job из объекта Geometry без solid_geometry." + +#: camlib.py:3910 +msgid "" +"The Tool Offset value is too negative to use for the current_geometry.\n" +"Raise the value (in module) and try again." +msgstr "" +"Значение смещения инструмента слишком отрицательно для current_geometry.\n" +"Увеличте значение (в модуле) и повторите попытку." + +#: camlib.py:4201 +msgid " paths traced." +msgstr " путей проложено." + +#: camlib.py:4229 +msgid "There is no tool data in the SolderPaste geometry." +msgstr "В геометрии SolderPaste нет данных инструмента." + +#: camlib.py:4318 +msgid "Finished SolderPaste G-Code generation" +msgstr "Готовое поколение G-кода для паяльной пасты" + +#: camlib.py:4318 +msgid "paths traced." +msgstr "путей проложено." + +#: camlib.py:4578 +msgid "Parsing GCode file. Number of lines" +msgstr "Разбор файла GCode. Количество строк" + +#: camlib.py:4685 +msgid "Creating Geometry from the parsed GCode file. " +msgstr "Создание геометрии из проанализированного файла GCode. " + +#: camlib.py:4828 camlib.py:5118 camlib.py:5229 camlib.py:5385 +msgid "G91 coordinates not implemented ..." +msgstr "Координаты G91 не реализованы ..." + +#: camlib.py:4960 +msgid "Unifying Geometry from parsed Geometry segments" +msgstr "Объединение геометрии из разбираемых сегментов геометрии" + +#: defaults.py:401 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:86 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309 +#: flatcamTools/ToolCopperThieving.py:125 flatcamTools/ToolNCC.py:535 +#: flatcamTools/ToolNCC.py:1306 flatcamTools/ToolNCC.py:1634 +#: flatcamTools/ToolNCC.py:1919 flatcamTools/ToolNCC.py:1983 +#: flatcamTools/ToolNCC.py:2967 flatcamTools/ToolNCC.py:2976 +#: tclCommands/TclCommandCopperClear.py:190 +msgid "Itself" +msgstr "Как есть" + +#: defaults.py:428 flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280 +#: flatcamTools/ToolPaint.py:486 flatcamTools/ToolPaint.py:1427 +#: tclCommands/TclCommandPaint.py:162 +msgid "All Polygons" +msgstr "Все полигоны" + +#: defaults.py:739 +msgid "Could not load defaults file." +msgstr "Не удалось загрузить файл значений по умолчанию." + +#: defaults.py:752 +msgid "Failed to parse defaults file." +msgstr "Не удалось прочитать файл значений по умолчанию." + +#: flatcamEditors/FlatCAMExcEditor.py:50 flatcamEditors/FlatCAMExcEditor.py:74 +#: flatcamEditors/FlatCAMExcEditor.py:168 +#: flatcamEditors/FlatCAMExcEditor.py:385 +#: flatcamEditors/FlatCAMExcEditor.py:589 +#: flatcamEditors/FlatCAMGrbEditor.py:243 +#: flatcamEditors/FlatCAMGrbEditor.py:250 msgid "Click to place ..." msgstr "Нажмите для размещения ..." -#: AppEditors/FlatCAMExcEditor.py:58 +#: flatcamEditors/FlatCAMExcEditor.py:58 msgid "To add a drill first select a tool" msgstr "Чтобы добавить отверстие, сначала выберите инструмент" -#: AppEditors/FlatCAMExcEditor.py:122 +#: flatcamEditors/FlatCAMExcEditor.py:122 msgid "Done. Drill added." msgstr "Готово. Сверло добавлено." -#: AppEditors/FlatCAMExcEditor.py:176 +#: flatcamEditors/FlatCAMExcEditor.py:176 msgid "To add an Drill Array first select a tool in Tool Table" msgstr "" "Чтобы добавить массив отверстий, сначала выберите инструмент в таблице " "инструментов" -#: AppEditors/FlatCAMExcEditor.py:192 AppEditors/FlatCAMExcEditor.py:415 -#: AppEditors/FlatCAMExcEditor.py:636 AppEditors/FlatCAMExcEditor.py:1151 -#: AppEditors/FlatCAMExcEditor.py:1178 AppEditors/FlatCAMGrbEditor.py:471 -#: AppEditors/FlatCAMGrbEditor.py:1944 AppEditors/FlatCAMGrbEditor.py:1974 +#: flatcamEditors/FlatCAMExcEditor.py:192 +#: flatcamEditors/FlatCAMExcEditor.py:415 +#: flatcamEditors/FlatCAMExcEditor.py:636 +#: flatcamEditors/FlatCAMExcEditor.py:1151 +#: flatcamEditors/FlatCAMExcEditor.py:1178 +#: flatcamEditors/FlatCAMGrbEditor.py:473 +#: flatcamEditors/FlatCAMGrbEditor.py:1937 +#: flatcamEditors/FlatCAMGrbEditor.py:1967 msgid "Click on target location ..." msgstr "Нажмите на целевой точке ..." -#: AppEditors/FlatCAMExcEditor.py:211 +#: flatcamEditors/FlatCAMExcEditor.py:211 msgid "Click on the Drill Circular Array Start position" msgstr "Нажмите на начальную позицию кругового массива отверстий" -#: AppEditors/FlatCAMExcEditor.py:233 AppEditors/FlatCAMExcEditor.py:677 -#: AppEditors/FlatCAMGrbEditor.py:516 +#: flatcamEditors/FlatCAMExcEditor.py:233 +#: flatcamEditors/FlatCAMExcEditor.py:677 +#: flatcamEditors/FlatCAMGrbEditor.py:518 msgid "The value is not Float. Check for comma instead of dot separator." msgstr "" "Это не значение с плавающей точкой. Проверьте наличие запятой в качестве " "разделителя." -#: AppEditors/FlatCAMExcEditor.py:237 +#: flatcamEditors/FlatCAMExcEditor.py:237 msgid "The value is mistyped. Check the value" msgstr "Значение введено с ошибкой. Проверьте значение" -#: AppEditors/FlatCAMExcEditor.py:336 +#: flatcamEditors/FlatCAMExcEditor.py:336 msgid "Too many drills for the selected spacing angle." msgstr "Слишком много отверстий для выбранного интервала угла ." -#: AppEditors/FlatCAMExcEditor.py:354 +#: flatcamEditors/FlatCAMExcEditor.py:354 msgid "Done. Drill Array added." msgstr "Готово. Массив отверстий добавлен." -#: AppEditors/FlatCAMExcEditor.py:394 +#: flatcamEditors/FlatCAMExcEditor.py:394 msgid "To add a slot first select a tool" msgstr "Чтобы добавить паз, сначала выберите инструмент" -#: AppEditors/FlatCAMExcEditor.py:454 AppEditors/FlatCAMExcEditor.py:461 -#: AppEditors/FlatCAMExcEditor.py:742 AppEditors/FlatCAMExcEditor.py:749 +#: flatcamEditors/FlatCAMExcEditor.py:454 +#: flatcamEditors/FlatCAMExcEditor.py:461 +#: flatcamEditors/FlatCAMExcEditor.py:742 +#: flatcamEditors/FlatCAMExcEditor.py:749 msgid "Value is missing or wrong format. Add it and retry." msgstr "" "Значение отсутствует или имеет неправильный формат. Добавьте его и повторите " "попытку." -#: AppEditors/FlatCAMExcEditor.py:559 +#: flatcamEditors/FlatCAMExcEditor.py:559 msgid "Done. Adding Slot completed." msgstr "Готово. Добавление слота завершено." -#: AppEditors/FlatCAMExcEditor.py:597 +#: flatcamEditors/FlatCAMExcEditor.py:597 msgid "To add an Slot Array first select a tool in Tool Table" msgstr "" "Чтобы добавить массив пазов сначала выберите инструмент в таблице " "инструментов" -#: AppEditors/FlatCAMExcEditor.py:655 +#: flatcamEditors/FlatCAMExcEditor.py:655 msgid "Click on the Slot Circular Array Start position" msgstr "Нажмите на начальную позицию круглого массива слота" -#: AppEditors/FlatCAMExcEditor.py:680 AppEditors/FlatCAMGrbEditor.py:519 +#: flatcamEditors/FlatCAMExcEditor.py:680 +#: flatcamEditors/FlatCAMGrbEditor.py:521 msgid "The value is mistyped. Check the value." msgstr "Значение введено с ошибкой. Проверьте значение." -#: AppEditors/FlatCAMExcEditor.py:859 +#: flatcamEditors/FlatCAMExcEditor.py:859 msgid "Too many Slots for the selected spacing angle." msgstr "Слишком много пазов для выбранного расстояния." -#: AppEditors/FlatCAMExcEditor.py:882 +#: flatcamEditors/FlatCAMExcEditor.py:882 msgid "Done. Slot Array added." msgstr "Готово. Массив пазов добавлен." -#: AppEditors/FlatCAMExcEditor.py:904 +#: flatcamEditors/FlatCAMExcEditor.py:904 msgid "Click on the Drill(s) to resize ..." msgstr "Нажмите на сверло для изменения размера ..." -#: AppEditors/FlatCAMExcEditor.py:934 +#: flatcamEditors/FlatCAMExcEditor.py:934 msgid "Resize drill(s) failed. Please enter a diameter for resize." msgstr "" "Не удалось изменить размер отверстий. Пожалуйста введите диаметр для " "изменения размера." -#: AppEditors/FlatCAMExcEditor.py:1112 +#: flatcamEditors/FlatCAMExcEditor.py:1112 msgid "Done. Drill/Slot Resize completed." msgstr "Готово. Изменение размера отверстия/паза завершено." -#: AppEditors/FlatCAMExcEditor.py:1115 +#: flatcamEditors/FlatCAMExcEditor.py:1115 msgid "Cancelled. No drills/slots selected for resize ..." msgstr "Отменено. Не выбраны дрели / слоты для изменения размера ..." -#: AppEditors/FlatCAMExcEditor.py:1153 AppEditors/FlatCAMGrbEditor.py:1946 +#: flatcamEditors/FlatCAMExcEditor.py:1153 +#: flatcamEditors/FlatCAMGrbEditor.py:1939 msgid "Click on reference location ..." msgstr "Кликните на конечную точку ..." -#: AppEditors/FlatCAMExcEditor.py:1210 +#: flatcamEditors/FlatCAMExcEditor.py:1210 msgid "Done. Drill(s) Move completed." msgstr "Готово. Перемещение отверстий завершено." -#: AppEditors/FlatCAMExcEditor.py:1318 +#: flatcamEditors/FlatCAMExcEditor.py:1318 msgid "Done. Drill(s) copied." msgstr "Готово. Отверстия скопированы." -#: AppEditors/FlatCAMExcEditor.py:1557 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:26 +#: flatcamEditors/FlatCAMExcEditor.py:1557 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:26 msgid "Excellon Editor" msgstr "Редактор Excellon" -#: AppEditors/FlatCAMExcEditor.py:1564 AppEditors/FlatCAMGrbEditor.py:2469 +#: flatcamEditors/FlatCAMExcEditor.py:1564 +#: flatcamEditors/FlatCAMGrbEditor.py:2462 msgid "Name:" msgstr "Имя:" -#: AppEditors/FlatCAMExcEditor.py:1570 AppGUI/ObjectUI.py:540 -#: AppGUI/ObjectUI.py:1362 AppTools/ToolIsolation.py:118 -#: AppTools/ToolNCC.py:120 AppTools/ToolPaint.py:114 -#: AppTools/ToolSolderPaste.py:79 +#: flatcamEditors/FlatCAMExcEditor.py:1570 flatcamGUI/ObjectUI.py:761 +#: flatcamGUI/ObjectUI.py:1465 flatcamTools/ToolNCC.py:120 +#: flatcamTools/ToolPaint.py:115 flatcamTools/ToolSolderPaste.py:74 msgid "Tools Table" msgstr "Таблица инструментов" -#: AppEditors/FlatCAMExcEditor.py:1572 AppGUI/ObjectUI.py:542 +#: flatcamEditors/FlatCAMExcEditor.py:1572 flatcamGUI/ObjectUI.py:763 msgid "" "Tools in this Excellon object\n" "when are used for drilling." @@ -1233,21 +3067,22 @@ msgstr "" "Инструменты для Excellon объекта\n" "используемые для сверления." -#: AppEditors/FlatCAMExcEditor.py:1584 AppEditors/FlatCAMExcEditor.py:3041 -#: AppGUI/ObjectUI.py:560 AppObjects/FlatCAMExcellon.py:1265 -#: AppObjects/FlatCAMExcellon.py:1368 AppObjects/FlatCAMExcellon.py:1553 -#: AppTools/ToolIsolation.py:130 AppTools/ToolNCC.py:132 -#: AppTools/ToolPaint.py:127 AppTools/ToolPcbWizard.py:76 -#: AppTools/ToolProperties.py:416 AppTools/ToolProperties.py:476 -#: AppTools/ToolSolderPaste.py:90 tclCommands/TclCommandDrillcncjob.py:195 +#: flatcamEditors/FlatCAMExcEditor.py:1584 +#: flatcamEditors/FlatCAMExcEditor.py:3066 flatcamGUI/ObjectUI.py:781 +#: flatcamObjects/FlatCAMExcellon.py:1098 +#: flatcamObjects/FlatCAMExcellon.py:1188 +#: flatcamObjects/FlatCAMExcellon.py:1373 flatcamTools/ToolNCC.py:132 +#: flatcamTools/ToolPaint.py:128 flatcamTools/ToolPcbWizard.py:76 +#: flatcamTools/ToolProperties.py:416 flatcamTools/ToolProperties.py:476 +#: flatcamTools/ToolSolderPaste.py:85 tclCommands/TclCommandDrillcncjob.py:193 msgid "Diameter" msgstr "Диаметр" -#: AppEditors/FlatCAMExcEditor.py:1592 +#: flatcamEditors/FlatCAMExcEditor.py:1592 msgid "Add/Delete Tool" msgstr "Добавить/Удалить инструмент" -#: AppEditors/FlatCAMExcEditor.py:1594 +#: flatcamEditors/FlatCAMExcEditor.py:1594 msgid "" "Add/Delete a tool to the tool list\n" "for this Excellon object." @@ -1255,16 +3090,16 @@ msgstr "" "Добавляет/Удаляет инструмент в списоке инструментов\n" "для этого Excellon объекта ." -#: AppEditors/FlatCAMExcEditor.py:1606 AppGUI/ObjectUI.py:1482 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:57 +#: flatcamEditors/FlatCAMExcEditor.py:1606 flatcamGUI/ObjectUI.py:1585 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:57 msgid "Diameter for the new tool" msgstr "Диаметр нового инструмента" -#: AppEditors/FlatCAMExcEditor.py:1616 +#: flatcamEditors/FlatCAMExcEditor.py:1616 msgid "Add Tool" msgstr "Добавить" -#: AppEditors/FlatCAMExcEditor.py:1618 +#: flatcamEditors/FlatCAMExcEditor.py:1618 msgid "" "Add a new tool to the tool list\n" "with the diameter specified above." @@ -1272,11 +3107,11 @@ msgstr "" "Добавляет новый инструмент в список инструментов\n" "с диаметром, указанным выше." -#: AppEditors/FlatCAMExcEditor.py:1630 +#: flatcamEditors/FlatCAMExcEditor.py:1630 msgid "Delete Tool" msgstr "Удалить инструмент" -#: AppEditors/FlatCAMExcEditor.py:1632 +#: flatcamEditors/FlatCAMExcEditor.py:1632 msgid "" "Delete a tool in the tool list\n" "by selecting a row in the tool table." @@ -1284,40 +3119,40 @@ msgstr "" "Удаляет инструмент из списка инструментов\n" "в выбранной строке таблицы инструментов." -#: AppEditors/FlatCAMExcEditor.py:1650 AppGUI/MainGUI.py:4392 +#: flatcamEditors/FlatCAMExcEditor.py:1650 flatcamGUI/FlatCAMGUI.py:2019 msgid "Resize Drill(s)" msgstr "Изменить размер сверла" -#: AppEditors/FlatCAMExcEditor.py:1652 +#: flatcamEditors/FlatCAMExcEditor.py:1652 msgid "Resize a drill or a selection of drills." msgstr "Изменяет размер сверла или выбранных свёрел." -#: AppEditors/FlatCAMExcEditor.py:1659 +#: flatcamEditors/FlatCAMExcEditor.py:1659 msgid "Resize Dia" msgstr "Изменить диаметр" -#: AppEditors/FlatCAMExcEditor.py:1661 +#: flatcamEditors/FlatCAMExcEditor.py:1661 msgid "Diameter to resize to." msgstr "Диаметр для изменения." -#: AppEditors/FlatCAMExcEditor.py:1672 +#: flatcamEditors/FlatCAMExcEditor.py:1672 msgid "Resize" msgstr "Изменить" -#: AppEditors/FlatCAMExcEditor.py:1674 +#: flatcamEditors/FlatCAMExcEditor.py:1674 msgid "Resize drill(s)" msgstr "Изменить размер сверла" -#: AppEditors/FlatCAMExcEditor.py:1699 AppGUI/MainGUI.py:1514 -#: AppGUI/MainGUI.py:4391 +#: flatcamEditors/FlatCAMExcEditor.py:1699 flatcamGUI/FlatCAMGUI.py:2018 +#: flatcamGUI/FlatCAMGUI.py:2270 msgid "Add Drill Array" msgstr "Добавить массив отверстий" -#: AppEditors/FlatCAMExcEditor.py:1701 +#: flatcamEditors/FlatCAMExcEditor.py:1701 msgid "Add an array of drills (linear or circular array)" msgstr "Добавляет массив свёрел (линейный или круговой массив)" -#: AppEditors/FlatCAMExcEditor.py:1707 +#: flatcamEditors/FlatCAMExcEditor.py:1707 msgid "" "Select the type of drills array to create.\n" "It can be Linear X(Y) or Circular" @@ -1325,51 +3160,57 @@ msgstr "" "Выберите тип массива свёрел для создания.\n" "Это может быть линейный X (Y) или круговой" -#: AppEditors/FlatCAMExcEditor.py:1710 AppEditors/FlatCAMExcEditor.py:1924 -#: AppEditors/FlatCAMGrbEditor.py:2782 +#: flatcamEditors/FlatCAMExcEditor.py:1710 +#: flatcamEditors/FlatCAMExcEditor.py:1924 +#: flatcamEditors/FlatCAMGrbEditor.py:2775 msgid "Linear" msgstr "Линейный" -#: AppEditors/FlatCAMExcEditor.py:1711 AppEditors/FlatCAMExcEditor.py:1925 -#: AppEditors/FlatCAMGrbEditor.py:2783 -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:52 -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:149 -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:107 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:52 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:151 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:78 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:61 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:70 -#: AppTools/ToolExtractDrills.py:78 AppTools/ToolExtractDrills.py:201 -#: AppTools/ToolFiducials.py:223 AppTools/ToolIsolation.py:207 -#: AppTools/ToolNCC.py:221 AppTools/ToolPaint.py:203 -#: AppTools/ToolPunchGerber.py:89 AppTools/ToolPunchGerber.py:229 +#: flatcamEditors/FlatCAMExcEditor.py:1711 +#: flatcamEditors/FlatCAMExcEditor.py:1925 +#: flatcamEditors/FlatCAMGrbEditor.py:2776 flatcamGUI/ObjectUI.py:316 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:52 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:149 +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:107 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:52 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:151 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:61 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:70 +#: flatcamTools/ToolExtractDrills.py:78 flatcamTools/ToolExtractDrills.py:201 +#: flatcamTools/ToolFiducials.py:220 flatcamTools/ToolNCC.py:221 +#: flatcamTools/ToolPaint.py:204 flatcamTools/ToolPunchGerber.py:89 +#: flatcamTools/ToolPunchGerber.py:229 msgid "Circular" msgstr "Круг" -#: AppEditors/FlatCAMExcEditor.py:1719 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:68 +#: flatcamEditors/FlatCAMExcEditor.py:1719 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:68 msgid "Nr of drills" msgstr "Количество отверстий" -#: AppEditors/FlatCAMExcEditor.py:1720 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:70 +#: flatcamEditors/FlatCAMExcEditor.py:1720 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:70 msgid "Specify how many drills to be in the array." msgstr "Укажите, сколько свёрел должно быть в массиве." -#: AppEditors/FlatCAMExcEditor.py:1738 AppEditors/FlatCAMExcEditor.py:1788 -#: AppEditors/FlatCAMExcEditor.py:1860 AppEditors/FlatCAMExcEditor.py:1953 -#: AppEditors/FlatCAMExcEditor.py:2004 AppEditors/FlatCAMGrbEditor.py:1580 -#: AppEditors/FlatCAMGrbEditor.py:2811 AppEditors/FlatCAMGrbEditor.py:2860 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:178 +#: flatcamEditors/FlatCAMExcEditor.py:1738 +#: flatcamEditors/FlatCAMExcEditor.py:1788 +#: flatcamEditors/FlatCAMExcEditor.py:1860 +#: flatcamEditors/FlatCAMExcEditor.py:1953 +#: flatcamEditors/FlatCAMExcEditor.py:2004 +#: flatcamEditors/FlatCAMGrbEditor.py:1573 +#: flatcamEditors/FlatCAMGrbEditor.py:2804 +#: flatcamEditors/FlatCAMGrbEditor.py:2853 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:178 msgid "Direction" msgstr "Направление" -#: AppEditors/FlatCAMExcEditor.py:1740 AppEditors/FlatCAMExcEditor.py:1955 -#: AppEditors/FlatCAMGrbEditor.py:2813 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:86 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:234 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:123 +#: flatcamEditors/FlatCAMExcEditor.py:1740 +#: flatcamEditors/FlatCAMExcEditor.py:1955 +#: flatcamEditors/FlatCAMGrbEditor.py:2806 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:86 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:234 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:122 msgid "" "Direction on which the linear array is oriented:\n" "- 'X' - horizontal axis \n" @@ -1381,65 +3222,77 @@ msgstr "" "- 'Y' - вертикальная ось или\n" "- 'Угол' - произвольный угол наклона массива" -#: AppEditors/FlatCAMExcEditor.py:1747 AppEditors/FlatCAMExcEditor.py:1869 -#: AppEditors/FlatCAMExcEditor.py:1962 AppEditors/FlatCAMGrbEditor.py:2820 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:92 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:187 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:240 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:129 -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:197 -#: AppTools/ToolFilm.py:239 +#: flatcamEditors/FlatCAMExcEditor.py:1747 +#: flatcamEditors/FlatCAMExcEditor.py:1869 +#: flatcamEditors/FlatCAMExcEditor.py:1962 +#: flatcamEditors/FlatCAMGrbEditor.py:2813 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:92 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:187 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:240 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:128 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:208 +#: flatcamTools/ToolFilm.py:256 msgid "X" msgstr "X" -#: AppEditors/FlatCAMExcEditor.py:1748 AppEditors/FlatCAMExcEditor.py:1870 -#: AppEditors/FlatCAMExcEditor.py:1963 AppEditors/FlatCAMGrbEditor.py:2821 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:93 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:188 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:241 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:130 -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:198 -#: AppTools/ToolFilm.py:240 +#: flatcamEditors/FlatCAMExcEditor.py:1748 +#: flatcamEditors/FlatCAMExcEditor.py:1870 +#: flatcamEditors/FlatCAMExcEditor.py:1963 +#: flatcamEditors/FlatCAMGrbEditor.py:2814 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:93 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:188 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:241 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:129 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:209 +#: flatcamTools/ToolFilm.py:257 msgid "Y" msgstr "Y" -#: AppEditors/FlatCAMExcEditor.py:1749 AppEditors/FlatCAMExcEditor.py:1766 -#: AppEditors/FlatCAMExcEditor.py:1800 AppEditors/FlatCAMExcEditor.py:1871 -#: AppEditors/FlatCAMExcEditor.py:1875 AppEditors/FlatCAMExcEditor.py:1964 -#: AppEditors/FlatCAMExcEditor.py:1982 AppEditors/FlatCAMExcEditor.py:2016 -#: AppEditors/FlatCAMGrbEditor.py:2822 AppEditors/FlatCAMGrbEditor.py:2839 -#: AppEditors/FlatCAMGrbEditor.py:2875 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:94 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:113 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:189 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:194 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:242 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:263 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:131 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:149 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:53 -#: AppTools/ToolDistance.py:120 AppTools/ToolDistanceMin.py:68 -#: AppTools/ToolTransform.py:60 +#: flatcamEditors/FlatCAMExcEditor.py:1749 +#: flatcamEditors/FlatCAMExcEditor.py:1766 +#: flatcamEditors/FlatCAMExcEditor.py:1800 +#: flatcamEditors/FlatCAMExcEditor.py:1871 +#: flatcamEditors/FlatCAMExcEditor.py:1875 +#: flatcamEditors/FlatCAMExcEditor.py:1964 +#: flatcamEditors/FlatCAMExcEditor.py:1982 +#: flatcamEditors/FlatCAMExcEditor.py:2016 +#: flatcamEditors/FlatCAMGrbEditor.py:2815 +#: flatcamEditors/FlatCAMGrbEditor.py:2832 +#: flatcamEditors/FlatCAMGrbEditor.py:2868 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:94 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:113 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:189 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:194 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:242 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:263 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:130 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:148 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:53 +#: flatcamTools/ToolDistance.py:120 flatcamTools/ToolDistanceMin.py:69 +#: flatcamTools/ToolTransform.py:60 msgid "Angle" msgstr "Угол" -#: AppEditors/FlatCAMExcEditor.py:1753 AppEditors/FlatCAMExcEditor.py:1968 -#: AppEditors/FlatCAMGrbEditor.py:2826 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:100 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:248 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:137 +#: flatcamEditors/FlatCAMExcEditor.py:1753 +#: flatcamEditors/FlatCAMExcEditor.py:1968 +#: flatcamEditors/FlatCAMGrbEditor.py:2819 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:100 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:248 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:136 msgid "Pitch" msgstr "Шаг" -#: AppEditors/FlatCAMExcEditor.py:1755 AppEditors/FlatCAMExcEditor.py:1970 -#: AppEditors/FlatCAMGrbEditor.py:2828 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:102 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:250 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:139 +#: flatcamEditors/FlatCAMExcEditor.py:1755 +#: flatcamEditors/FlatCAMExcEditor.py:1970 +#: flatcamEditors/FlatCAMGrbEditor.py:2821 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:102 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:250 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:138 msgid "Pitch = Distance between elements of the array." msgstr "Подача = Расстояние между элементами массива." -#: AppEditors/FlatCAMExcEditor.py:1768 AppEditors/FlatCAMExcEditor.py:1984 +#: flatcamEditors/FlatCAMExcEditor.py:1768 +#: flatcamEditors/FlatCAMExcEditor.py:1984 msgid "" "Angle at which the linear array is placed.\n" "The precision is of max 2 decimals.\n" @@ -1451,8 +3304,9 @@ msgstr "" "Минимальное значение: -359.99 градусов.\n" "Максимальное значение: 360.00 градусов." -#: AppEditors/FlatCAMExcEditor.py:1789 AppEditors/FlatCAMExcEditor.py:2005 -#: AppEditors/FlatCAMGrbEditor.py:2862 +#: flatcamEditors/FlatCAMExcEditor.py:1789 +#: flatcamEditors/FlatCAMExcEditor.py:2005 +#: flatcamEditors/FlatCAMGrbEditor.py:2855 msgid "" "Direction for circular array.Can be CW = clockwise or CCW = counter " "clockwise." @@ -1460,42 +3314,45 @@ msgstr "" "Направление для кругового массива. Может быть CW = по часовой стрелке или " "CCW = против часовой стрелки." -#: AppEditors/FlatCAMExcEditor.py:1796 AppEditors/FlatCAMExcEditor.py:2012 -#: AppEditors/FlatCAMGrbEditor.py:2870 -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:129 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:136 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:286 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:145 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:171 +#: flatcamEditors/FlatCAMExcEditor.py:1796 +#: flatcamEditors/FlatCAMExcEditor.py:2012 +#: flatcamEditors/FlatCAMGrbEditor.py:2863 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:129 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:136 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:286 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:142 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:170 msgid "CW" msgstr "CW" -#: AppEditors/FlatCAMExcEditor.py:1797 AppEditors/FlatCAMExcEditor.py:2013 -#: AppEditors/FlatCAMGrbEditor.py:2871 -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:130 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:137 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:287 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:146 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:172 +#: flatcamEditors/FlatCAMExcEditor.py:1797 +#: flatcamEditors/FlatCAMExcEditor.py:2013 +#: flatcamEditors/FlatCAMGrbEditor.py:2864 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:130 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:137 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:287 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:143 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:171 msgid "CCW" msgstr "CCW" -#: AppEditors/FlatCAMExcEditor.py:1801 AppEditors/FlatCAMExcEditor.py:2017 -#: AppEditors/FlatCAMGrbEditor.py:2877 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:115 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:145 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:265 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:295 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:151 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:180 +#: flatcamEditors/FlatCAMExcEditor.py:1801 +#: flatcamEditors/FlatCAMExcEditor.py:2017 +#: flatcamEditors/FlatCAMGrbEditor.py:2870 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:115 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:145 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:265 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:295 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:150 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:179 msgid "Angle at which each element in circular array is placed." msgstr "Угол, под которым расположен каждый элемент в круговом массиве." -#: AppEditors/FlatCAMExcEditor.py:1835 +#: flatcamEditors/FlatCAMExcEditor.py:1835 msgid "Slot Parameters" msgstr "Параметры слота" -#: AppEditors/FlatCAMExcEditor.py:1837 +#: flatcamEditors/FlatCAMExcEditor.py:1837 msgid "" "Parameters for adding a slot (hole with oval shape)\n" "either single or as an part of an array." @@ -1503,20 +3360,19 @@ msgstr "" "Параметры для добавления прорези (отверстие овальной формы)\n" "либо один, либо как часть массива." -#: AppEditors/FlatCAMExcEditor.py:1846 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:162 -#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:56 -#: AppTools/ToolCorners.py:136 AppTools/ToolProperties.py:559 +#: flatcamEditors/FlatCAMExcEditor.py:1846 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:162 +#: flatcamTools/ToolProperties.py:559 msgid "Length" msgstr "Длина" -#: AppEditors/FlatCAMExcEditor.py:1848 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:164 +#: flatcamEditors/FlatCAMExcEditor.py:1848 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:164 msgid "Length = The length of the slot." msgstr "Длина = длина слота." -#: AppEditors/FlatCAMExcEditor.py:1862 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:180 +#: flatcamEditors/FlatCAMExcEditor.py:1862 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:180 msgid "" "Direction on which the slot is oriented:\n" "- 'X' - horizontal axis \n" @@ -1528,7 +3384,7 @@ msgstr "" "- 'Y' - вертикальная ось или\n" "- «Угол» - произвольный угол наклона паза" -#: AppEditors/FlatCAMExcEditor.py:1877 +#: flatcamEditors/FlatCAMExcEditor.py:1877 msgid "" "Angle at which the slot is placed.\n" "The precision is of max 2 decimals.\n" @@ -1540,15 +3396,15 @@ msgstr "" "Минимальное значение: -359,99 градусов.\n" "Максимальное значение: 360,00 градусов." -#: AppEditors/FlatCAMExcEditor.py:1910 +#: flatcamEditors/FlatCAMExcEditor.py:1910 msgid "Slot Array Parameters" msgstr "Параметры массива пазов" -#: AppEditors/FlatCAMExcEditor.py:1912 +#: flatcamEditors/FlatCAMExcEditor.py:1912 msgid "Parameters for the array of slots (linear or circular array)" msgstr "Параметры для массива пазов(линейный или круговой массив)" -#: AppEditors/FlatCAMExcEditor.py:1921 +#: flatcamEditors/FlatCAMExcEditor.py:1921 msgid "" "Select the type of slot array to create.\n" "It can be Linear X(Y) or Circular" @@ -1556,37 +3412,43 @@ msgstr "" "Выберите тип массива пазов для создания.\n" "Это может быть линейный X (Y) или круговой" -#: AppEditors/FlatCAMExcEditor.py:1933 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:219 +#: flatcamEditors/FlatCAMExcEditor.py:1933 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:219 msgid "Nr of slots" msgstr "Количество пазов" -#: AppEditors/FlatCAMExcEditor.py:1934 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:221 +#: flatcamEditors/FlatCAMExcEditor.py:1934 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:221 msgid "Specify how many slots to be in the array." msgstr "Укажите, сколько пазов должно быть в массиве." -#: AppEditors/FlatCAMExcEditor.py:2452 AppObjects/FlatCAMExcellon.py:433 +#: flatcamEditors/FlatCAMExcEditor.py:2452 +#: flatcamObjects/FlatCAMExcellon.py:410 msgid "Total Drills" msgstr "Всего отверстий" -#: AppEditors/FlatCAMExcEditor.py:2484 AppObjects/FlatCAMExcellon.py:464 +#: flatcamEditors/FlatCAMExcEditor.py:2484 +#: flatcamObjects/FlatCAMExcellon.py:441 msgid "Total Slots" msgstr "Всего пазов" -#: AppEditors/FlatCAMExcEditor.py:2559 AppEditors/FlatCAMGeoEditor.py:1075 -#: AppEditors/FlatCAMGeoEditor.py:1116 AppEditors/FlatCAMGeoEditor.py:1144 -#: AppEditors/FlatCAMGeoEditor.py:1172 AppEditors/FlatCAMGeoEditor.py:1216 -#: AppEditors/FlatCAMGeoEditor.py:1251 AppEditors/FlatCAMGeoEditor.py:1279 -#: AppObjects/FlatCAMGeometry.py:664 AppObjects/FlatCAMGeometry.py:1099 -#: AppObjects/FlatCAMGeometry.py:1841 AppObjects/FlatCAMGeometry.py:2491 -#: AppTools/ToolIsolation.py:1493 AppTools/ToolNCC.py:1516 -#: AppTools/ToolPaint.py:1268 AppTools/ToolPaint.py:1439 -#: AppTools/ToolSolderPaste.py:891 AppTools/ToolSolderPaste.py:964 +#: flatcamEditors/FlatCAMExcEditor.py:2559 +#: flatcamEditors/FlatCAMGeoEditor.py:1076 +#: flatcamEditors/FlatCAMGeoEditor.py:1117 +#: flatcamEditors/FlatCAMGeoEditor.py:1145 +#: flatcamEditors/FlatCAMGeoEditor.py:1173 +#: flatcamEditors/FlatCAMGeoEditor.py:1217 +#: flatcamEditors/FlatCAMGeoEditor.py:1252 +#: flatcamEditors/FlatCAMGeoEditor.py:1280 +#: flatcamObjects/FlatCAMGeometry.py:599 flatcamObjects/FlatCAMGeometry.py:1033 +#: flatcamObjects/FlatCAMGeometry.py:1780 +#: flatcamObjects/FlatCAMGeometry.py:2424 flatcamTools/ToolNCC.py:1498 +#: flatcamTools/ToolPaint.py:1249 flatcamTools/ToolPaint.py:1420 +#: flatcamTools/ToolSolderPaste.py:883 flatcamTools/ToolSolderPaste.py:956 msgid "Wrong value format entered, use a number." msgstr "Неправильно введен формат значения, используйте числа." -#: AppEditors/FlatCAMExcEditor.py:2570 +#: flatcamEditors/FlatCAMExcEditor.py:2570 msgid "" "Tool already in the original or actual tool list.\n" "Save and reedit Excellon if you need to add this tool. " @@ -1595,73 +3457,63 @@ msgstr "" "Сохраните и повторно отредактируйте Excellon, если вам нужно добавить этот " "инструмент. " -#: AppEditors/FlatCAMExcEditor.py:2579 AppGUI/MainGUI.py:3364 +#: flatcamEditors/FlatCAMExcEditor.py:2579 flatcamGUI/FlatCAMGUI.py:4071 msgid "Added new tool with dia" msgstr "Добавлен новый инструмент с диаметром" -#: AppEditors/FlatCAMExcEditor.py:2612 +#: flatcamEditors/FlatCAMExcEditor.py:2612 msgid "Select a tool in Tool Table" msgstr "Выберите инструмент в таблице инструментов" -#: AppEditors/FlatCAMExcEditor.py:2642 +#: flatcamEditors/FlatCAMExcEditor.py:2642 msgid "Deleted tool with diameter" msgstr "Удалён инструмент с диаметром" -#: AppEditors/FlatCAMExcEditor.py:2790 +#: flatcamEditors/FlatCAMExcEditor.py:2790 msgid "Done. Tool edit completed." msgstr "Готово. Редактирование инструмента завершено." -#: AppEditors/FlatCAMExcEditor.py:3327 +#: flatcamEditors/FlatCAMExcEditor.py:3352 msgid "There are no Tools definitions in the file. Aborting Excellon creation." msgstr "В файле нет инструментов. Прерывание создания Excellon." -#: AppEditors/FlatCAMExcEditor.py:3331 +#: flatcamEditors/FlatCAMExcEditor.py:3356 msgid "An internal error has ocurred. See Shell.\n" msgstr "" "Произошла внутренняя ошибка. Смотрите командную строку.\n" "\n" -#: AppEditors/FlatCAMExcEditor.py:3336 +#: flatcamEditors/FlatCAMExcEditor.py:3361 msgid "Creating Excellon." msgstr "Создание Excellon." -#: AppEditors/FlatCAMExcEditor.py:3350 +#: flatcamEditors/FlatCAMExcEditor.py:3373 msgid "Excellon editing finished." msgstr "Редактирование Excellon завершено." -#: AppEditors/FlatCAMExcEditor.py:3367 +#: flatcamEditors/FlatCAMExcEditor.py:3390 msgid "Cancelled. There is no Tool/Drill selected" msgstr "Отмена. Инструмент/сверло не выбрано" -#: AppEditors/FlatCAMExcEditor.py:3601 AppEditors/FlatCAMExcEditor.py:3609 -#: AppEditors/FlatCAMGeoEditor.py:4343 AppEditors/FlatCAMGeoEditor.py:4357 -#: AppEditors/FlatCAMGrbEditor.py:1085 AppEditors/FlatCAMGrbEditor.py:1312 -#: AppEditors/FlatCAMGrbEditor.py:1497 AppEditors/FlatCAMGrbEditor.py:1766 -#: AppEditors/FlatCAMGrbEditor.py:4609 AppEditors/FlatCAMGrbEditor.py:4626 -#: AppGUI/MainGUI.py:2711 AppGUI/MainGUI.py:2723 -#: AppTools/ToolAlignObjects.py:393 AppTools/ToolAlignObjects.py:415 -#: App_Main.py:4677 App_Main.py:4831 -msgid "Done." -msgstr "Готово." - -#: AppEditors/FlatCAMExcEditor.py:3984 +#: flatcamEditors/FlatCAMExcEditor.py:4003 msgid "Done. Drill(s) deleted." msgstr "Готово. Отверстия удалены." -#: AppEditors/FlatCAMExcEditor.py:4057 AppEditors/FlatCAMExcEditor.py:4067 -#: AppEditors/FlatCAMGrbEditor.py:5057 +#: flatcamEditors/FlatCAMExcEditor.py:4076 +#: flatcamEditors/FlatCAMExcEditor.py:4086 +#: flatcamEditors/FlatCAMGrbEditor.py:5063 msgid "Click on the circular array Center position" msgstr "Нажмите на центральную позицию кругового массива" -#: AppEditors/FlatCAMGeoEditor.py:84 +#: flatcamEditors/FlatCAMGeoEditor.py:85 msgid "Buffer distance:" msgstr "Расстояние буфера:" -#: AppEditors/FlatCAMGeoEditor.py:85 +#: flatcamEditors/FlatCAMGeoEditor.py:86 msgid "Buffer corner:" msgstr "Угол буфера:" -#: AppEditors/FlatCAMGeoEditor.py:87 +#: flatcamEditors/FlatCAMGeoEditor.py:88 msgid "" "There are 3 types of corners:\n" " - 'Round': the corner is rounded for exterior buffer.\n" @@ -1674,89 +3526,94 @@ msgstr "" "- 'Квадрат:' угол встречается под острым углом для внешнего буфера.\n" "- 'Скошенный:' линия, напрямую соединяющая элементы, встречающиеся в углу" -#: AppEditors/FlatCAMGeoEditor.py:93 AppEditors/FlatCAMGrbEditor.py:2638 +#: flatcamEditors/FlatCAMGeoEditor.py:94 +#: flatcamEditors/FlatCAMGrbEditor.py:2631 msgid "Round" msgstr "Круглый" -#: AppEditors/FlatCAMGeoEditor.py:94 AppEditors/FlatCAMGrbEditor.py:2639 -#: AppGUI/ObjectUI.py:1149 AppGUI/ObjectUI.py:2004 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:225 -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:68 -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:175 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:68 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:177 -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:143 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:298 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:327 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:291 -#: AppTools/ToolExtractDrills.py:94 AppTools/ToolExtractDrills.py:227 -#: AppTools/ToolIsolation.py:545 AppTools/ToolNCC.py:583 -#: AppTools/ToolPaint.py:526 AppTools/ToolPunchGerber.py:105 -#: AppTools/ToolPunchGerber.py:255 AppTools/ToolQRCode.py:207 +#: flatcamEditors/FlatCAMGeoEditor.py:95 +#: flatcamEditors/FlatCAMGrbEditor.py:2632 flatcamGUI/ObjectUI.py:2073 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:217 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:68 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:175 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:68 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:177 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:143 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:327 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:291 +#: flatcamTools/ToolExtractDrills.py:94 flatcamTools/ToolExtractDrills.py:227 +#: flatcamTools/ToolNCC.py:583 flatcamTools/ToolPaint.py:527 +#: flatcamTools/ToolPunchGerber.py:105 flatcamTools/ToolPunchGerber.py:255 +#: flatcamTools/ToolQRCode.py:198 msgid "Square" msgstr "Квадрат" -#: AppEditors/FlatCAMGeoEditor.py:95 AppEditors/FlatCAMGrbEditor.py:2640 +#: flatcamEditors/FlatCAMGeoEditor.py:96 +#: flatcamEditors/FlatCAMGrbEditor.py:2633 msgid "Beveled" msgstr "Скошенный" -#: AppEditors/FlatCAMGeoEditor.py:102 +#: flatcamEditors/FlatCAMGeoEditor.py:103 msgid "Buffer Interior" msgstr "Буфер внутри" -#: AppEditors/FlatCAMGeoEditor.py:104 +#: flatcamEditors/FlatCAMGeoEditor.py:105 msgid "Buffer Exterior" msgstr "Буфер снаружи" -#: AppEditors/FlatCAMGeoEditor.py:110 +#: flatcamEditors/FlatCAMGeoEditor.py:111 msgid "Full Buffer" msgstr "Полный буфер" -#: AppEditors/FlatCAMGeoEditor.py:131 AppEditors/FlatCAMGeoEditor.py:3016 -#: AppGUI/MainGUI.py:4301 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:191 +#: flatcamEditors/FlatCAMGeoEditor.py:132 +#: flatcamEditors/FlatCAMGeoEditor.py:3017 flatcamGUI/FlatCAMGUI.py:1928 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:190 msgid "Buffer Tool" msgstr "Буфер" -#: AppEditors/FlatCAMGeoEditor.py:143 AppEditors/FlatCAMGeoEditor.py:160 -#: AppEditors/FlatCAMGeoEditor.py:177 AppEditors/FlatCAMGeoEditor.py:3035 -#: AppEditors/FlatCAMGeoEditor.py:3063 AppEditors/FlatCAMGeoEditor.py:3091 -#: AppEditors/FlatCAMGrbEditor.py:5110 +#: flatcamEditors/FlatCAMGeoEditor.py:144 +#: flatcamEditors/FlatCAMGeoEditor.py:161 +#: flatcamEditors/FlatCAMGeoEditor.py:178 +#: flatcamEditors/FlatCAMGeoEditor.py:3036 +#: flatcamEditors/FlatCAMGeoEditor.py:3064 +#: flatcamEditors/FlatCAMGeoEditor.py:3092 +#: flatcamEditors/FlatCAMGrbEditor.py:5116 msgid "Buffer distance value is missing or wrong format. Add it and retry." msgstr "" "Отсутствует значение расстояния буфера или оно имеет неправильный формат. " "Добавьте его и повторите попытку." -#: AppEditors/FlatCAMGeoEditor.py:241 +#: flatcamEditors/FlatCAMGeoEditor.py:242 msgid "Font" msgstr "Шрифт" -#: AppEditors/FlatCAMGeoEditor.py:322 AppGUI/MainGUI.py:1452 +#: flatcamEditors/FlatCAMGeoEditor.py:323 flatcamGUI/FlatCAMGUI.py:2208 msgid "Text" msgstr "Tекст" -#: AppEditors/FlatCAMGeoEditor.py:348 +#: flatcamEditors/FlatCAMGeoEditor.py:349 msgid "Text Tool" msgstr "Текст" -#: AppEditors/FlatCAMGeoEditor.py:404 AppGUI/MainGUI.py:502 -#: AppGUI/MainGUI.py:1199 AppGUI/ObjectUI.py:597 AppGUI/ObjectUI.py:1564 -#: AppObjects/FlatCAMExcellon.py:852 AppObjects/FlatCAMExcellon.py:1242 -#: AppObjects/FlatCAMGeometry.py:825 AppTools/ToolIsolation.py:313 -#: AppTools/ToolIsolation.py:1171 AppTools/ToolNCC.py:331 -#: AppTools/ToolNCC.py:797 AppTools/ToolPaint.py:313 AppTools/ToolPaint.py:766 +#: flatcamEditors/FlatCAMGeoEditor.py:405 flatcamGUI/FlatCAMGUI.py:511 +#: flatcamGUI/FlatCAMGUI.py:1158 flatcamGUI/ObjectUI.py:818 +#: flatcamGUI/ObjectUI.py:1662 flatcamObjects/FlatCAMExcellon.py:742 +#: flatcamObjects/FlatCAMExcellon.py:1084 flatcamObjects/FlatCAMGeometry.py:759 +#: flatcamTools/ToolNCC.py:331 flatcamTools/ToolNCC.py:797 +#: flatcamTools/ToolPaint.py:314 flatcamTools/ToolPaint.py:767 msgid "Tool" msgstr "Инструменты" -#: AppEditors/FlatCAMGeoEditor.py:438 +#: flatcamEditors/FlatCAMGeoEditor.py:439 flatcamGUI/ObjectUI.py:364 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:43 msgid "Tool dia" msgstr "Диаметр инструмента" -#: AppEditors/FlatCAMGeoEditor.py:440 +#: flatcamEditors/FlatCAMGeoEditor.py:441 msgid "Diameter of the tool to be used in the operation." msgstr "Диаметр инструмента используемого в этой операции." -#: AppEditors/FlatCAMGeoEditor.py:486 +#: flatcamEditors/FlatCAMGeoEditor.py:487 msgid "" "Algorithm to paint the polygons:\n" "- Standard: Fixed step inwards.\n" @@ -1768,82 +3625,95 @@ msgstr "" "- Круговой: наружу от центра.\n" "- Линейный: параллельные линии." -#: AppEditors/FlatCAMGeoEditor.py:505 +#: flatcamEditors/FlatCAMGeoEditor.py:506 msgid "Connect:" msgstr "Подключение:" -#: AppEditors/FlatCAMGeoEditor.py:515 +#: flatcamEditors/FlatCAMGeoEditor.py:516 msgid "Contour:" msgstr "Контур:" -#: AppEditors/FlatCAMGeoEditor.py:528 AppGUI/MainGUI.py:1456 +#: flatcamEditors/FlatCAMGeoEditor.py:529 flatcamGUI/FlatCAMGUI.py:2212 msgid "Paint" msgstr "Нарисовать" -#: AppEditors/FlatCAMGeoEditor.py:546 AppGUI/MainGUI.py:912 -#: AppGUI/MainGUI.py:1944 AppGUI/ObjectUI.py:2069 AppTools/ToolPaint.py:42 -#: AppTools/ToolPaint.py:737 +#: flatcamEditors/FlatCAMGeoEditor.py:547 flatcamGUI/FlatCAMGUI.py:924 +#: flatcamGUI/FlatCAMGUI.py:2628 flatcamGUI/ObjectUI.py:2139 +#: flatcamTools/ToolPaint.py:43 flatcamTools/ToolPaint.py:738 msgid "Paint Tool" msgstr "Рисование" -#: AppEditors/FlatCAMGeoEditor.py:582 AppEditors/FlatCAMGeoEditor.py:1054 -#: AppEditors/FlatCAMGeoEditor.py:3023 AppEditors/FlatCAMGeoEditor.py:3051 -#: AppEditors/FlatCAMGeoEditor.py:3079 AppEditors/FlatCAMGeoEditor.py:4496 -#: AppEditors/FlatCAMGrbEditor.py:5761 +#: flatcamEditors/FlatCAMGeoEditor.py:583 +#: flatcamEditors/FlatCAMGeoEditor.py:1055 +#: flatcamEditors/FlatCAMGeoEditor.py:3024 +#: flatcamEditors/FlatCAMGeoEditor.py:3052 +#: flatcamEditors/FlatCAMGeoEditor.py:3080 +#: flatcamEditors/FlatCAMGeoEditor.py:4502 +#: flatcamEditors/FlatCAMGrbEditor.py:5767 msgid "Cancelled. No shape selected." msgstr "Отменено. Форма не выбрана." -#: AppEditors/FlatCAMGeoEditor.py:595 AppEditors/FlatCAMGeoEditor.py:3041 -#: AppEditors/FlatCAMGeoEditor.py:3069 AppEditors/FlatCAMGeoEditor.py:3097 -#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:69 -#: AppTools/ToolProperties.py:117 AppTools/ToolProperties.py:162 +#: flatcamEditors/FlatCAMGeoEditor.py:596 +#: flatcamEditors/FlatCAMGeoEditor.py:3042 +#: flatcamEditors/FlatCAMGeoEditor.py:3070 +#: flatcamEditors/FlatCAMGeoEditor.py:3098 +#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:59 +#: flatcamTools/ToolProperties.py:117 flatcamTools/ToolProperties.py:162 msgid "Tools" msgstr "Инструменты" -#: AppEditors/FlatCAMGeoEditor.py:606 AppEditors/FlatCAMGeoEditor.py:990 -#: AppEditors/FlatCAMGrbEditor.py:5300 AppEditors/FlatCAMGrbEditor.py:5697 -#: AppGUI/MainGUI.py:935 AppGUI/MainGUI.py:1967 AppTools/ToolTransform.py:460 +#: flatcamEditors/FlatCAMGeoEditor.py:607 +#: flatcamEditors/FlatCAMGeoEditor.py:991 +#: flatcamEditors/FlatCAMGrbEditor.py:5306 +#: flatcamEditors/FlatCAMGrbEditor.py:5703 flatcamGUI/FlatCAMGUI.py:945 +#: flatcamGUI/FlatCAMGUI.py:2649 flatcamTools/ToolTransform.py:460 msgid "Transform Tool" msgstr "Трансформация" -#: AppEditors/FlatCAMGeoEditor.py:607 AppEditors/FlatCAMGeoEditor.py:672 -#: AppEditors/FlatCAMGrbEditor.py:5301 AppEditors/FlatCAMGrbEditor.py:5366 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:45 -#: AppTools/ToolTransform.py:24 AppTools/ToolTransform.py:466 +#: flatcamEditors/FlatCAMGeoEditor.py:608 +#: flatcamEditors/FlatCAMGeoEditor.py:673 +#: flatcamEditors/FlatCAMGrbEditor.py:5307 +#: flatcamEditors/FlatCAMGrbEditor.py:5372 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:45 +#: flatcamTools/ToolTransform.py:24 flatcamTools/ToolTransform.py:466 msgid "Rotate" msgstr "Вращение" -#: AppEditors/FlatCAMGeoEditor.py:608 AppEditors/FlatCAMGrbEditor.py:5302 -#: AppTools/ToolTransform.py:25 +#: flatcamEditors/FlatCAMGeoEditor.py:609 +#: flatcamEditors/FlatCAMGrbEditor.py:5308 flatcamTools/ToolTransform.py:25 msgid "Skew/Shear" msgstr "Наклон/Сдвиг" -#: AppEditors/FlatCAMGeoEditor.py:609 AppEditors/FlatCAMGrbEditor.py:2687 -#: AppEditors/FlatCAMGrbEditor.py:5303 AppGUI/MainGUI.py:1057 -#: AppGUI/MainGUI.py:1499 AppGUI/MainGUI.py:2089 AppGUI/MainGUI.py:4513 -#: AppGUI/ObjectUI.py:125 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:95 -#: AppTools/ToolTransform.py:26 +#: flatcamEditors/FlatCAMGeoEditor.py:610 +#: flatcamEditors/FlatCAMGrbEditor.py:2680 +#: flatcamEditors/FlatCAMGrbEditor.py:5309 flatcamGUI/FlatCAMGUI.py:1063 +#: flatcamGUI/FlatCAMGUI.py:2140 flatcamGUI/FlatCAMGUI.py:2255 +#: flatcamGUI/FlatCAMGUI.py:2767 flatcamGUI/ObjectUI.py:125 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:95 +#: flatcamTools/ToolTransform.py:26 msgid "Scale" msgstr "Масштаб" -#: AppEditors/FlatCAMGeoEditor.py:610 AppEditors/FlatCAMGrbEditor.py:5304 -#: AppTools/ToolTransform.py:27 +#: flatcamEditors/FlatCAMGeoEditor.py:611 +#: flatcamEditors/FlatCAMGrbEditor.py:5310 flatcamTools/ToolTransform.py:27 msgid "Mirror (Flip)" msgstr "Зеркалирование (отражение)" -#: AppEditors/FlatCAMGeoEditor.py:624 AppEditors/FlatCAMGrbEditor.py:5318 -#: AppGUI/MainGUI.py:844 AppGUI/MainGUI.py:1878 +#: flatcamEditors/FlatCAMGeoEditor.py:625 +#: flatcamEditors/FlatCAMGrbEditor.py:5324 flatcamGUI/FlatCAMGUI.py:856 +#: flatcamGUI/FlatCAMGUI.py:2564 msgid "Editor" msgstr "Редактор" -#: AppEditors/FlatCAMGeoEditor.py:656 AppEditors/FlatCAMGrbEditor.py:5350 +#: flatcamEditors/FlatCAMGeoEditor.py:657 +#: flatcamEditors/FlatCAMGrbEditor.py:5356 msgid "Angle:" msgstr "Угол:" -#: AppEditors/FlatCAMGeoEditor.py:658 AppEditors/FlatCAMGrbEditor.py:5352 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:55 -#: AppTools/ToolTransform.py:62 +#: flatcamEditors/FlatCAMGeoEditor.py:659 +#: flatcamEditors/FlatCAMGrbEditor.py:5358 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:55 +#: flatcamTools/ToolTransform.py:62 msgid "" "Angle for Rotation action, in degrees.\n" "Float number between -360 and 359.\n" @@ -1855,7 +3725,8 @@ msgstr "" "Положительные числа для движения по часовой стрелке.\n" "Отрицательные числа для движения против часовой стрелки." -#: AppEditors/FlatCAMGeoEditor.py:674 AppEditors/FlatCAMGrbEditor.py:5368 +#: flatcamEditors/FlatCAMGeoEditor.py:675 +#: flatcamEditors/FlatCAMGrbEditor.py:5374 msgid "" "Rotate the selected shape(s).\n" "The point of reference is the middle of\n" @@ -1865,15 +3736,18 @@ msgstr "" "Точка отсчета - середина\n" "ограничительной рамки для всех выбранных фигур." -#: AppEditors/FlatCAMGeoEditor.py:697 AppEditors/FlatCAMGrbEditor.py:5391 +#: flatcamEditors/FlatCAMGeoEditor.py:698 +#: flatcamEditors/FlatCAMGrbEditor.py:5397 msgid "Angle X:" msgstr "Угол X:" -#: AppEditors/FlatCAMGeoEditor.py:699 AppEditors/FlatCAMGeoEditor.py:719 -#: AppEditors/FlatCAMGrbEditor.py:5393 AppEditors/FlatCAMGrbEditor.py:5413 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:74 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:88 -#: AppTools/ToolCalibration.py:505 AppTools/ToolCalibration.py:518 +#: flatcamEditors/FlatCAMGeoEditor.py:700 +#: flatcamEditors/FlatCAMGeoEditor.py:720 +#: flatcamEditors/FlatCAMGrbEditor.py:5399 +#: flatcamEditors/FlatCAMGrbEditor.py:5419 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:74 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:88 +#: flatcamTools/ToolCalibration.py:505 flatcamTools/ToolCalibration.py:518 msgid "" "Angle for Skew action, in degrees.\n" "Float number between -360 and 359." @@ -1881,13 +3755,15 @@ msgstr "" "Угол наклона в градусах.\n" "Число с плавающей запятой между -360 и 359." -#: AppEditors/FlatCAMGeoEditor.py:710 AppEditors/FlatCAMGrbEditor.py:5404 -#: AppTools/ToolTransform.py:467 +#: flatcamEditors/FlatCAMGeoEditor.py:711 +#: flatcamEditors/FlatCAMGrbEditor.py:5410 flatcamTools/ToolTransform.py:467 msgid "Skew X" msgstr "Наклон X" -#: AppEditors/FlatCAMGeoEditor.py:712 AppEditors/FlatCAMGeoEditor.py:732 -#: AppEditors/FlatCAMGrbEditor.py:5406 AppEditors/FlatCAMGrbEditor.py:5426 +#: flatcamEditors/FlatCAMGeoEditor.py:713 +#: flatcamEditors/FlatCAMGeoEditor.py:733 +#: flatcamEditors/FlatCAMGrbEditor.py:5412 +#: flatcamEditors/FlatCAMGrbEditor.py:5432 msgid "" "Skew/shear the selected shape(s).\n" "The point of reference is the middle of\n" @@ -1897,31 +3773,35 @@ msgstr "" "Точка отсчета - середина\n" "ограничительной рамки для всех выбранных фигур." -#: AppEditors/FlatCAMGeoEditor.py:717 AppEditors/FlatCAMGrbEditor.py:5411 +#: flatcamEditors/FlatCAMGeoEditor.py:718 +#: flatcamEditors/FlatCAMGrbEditor.py:5417 msgid "Angle Y:" msgstr "Угол Y:" -#: AppEditors/FlatCAMGeoEditor.py:730 AppEditors/FlatCAMGrbEditor.py:5424 -#: AppTools/ToolTransform.py:468 +#: flatcamEditors/FlatCAMGeoEditor.py:731 +#: flatcamEditors/FlatCAMGrbEditor.py:5430 flatcamTools/ToolTransform.py:468 msgid "Skew Y" msgstr "Наклон Y" -#: AppEditors/FlatCAMGeoEditor.py:758 AppEditors/FlatCAMGrbEditor.py:5452 +#: flatcamEditors/FlatCAMGeoEditor.py:759 +#: flatcamEditors/FlatCAMGrbEditor.py:5458 msgid "Factor X:" msgstr "Коэффициент X:" -#: AppEditors/FlatCAMGeoEditor.py:760 AppEditors/FlatCAMGrbEditor.py:5454 -#: AppTools/ToolCalibration.py:469 +#: flatcamEditors/FlatCAMGeoEditor.py:761 +#: flatcamEditors/FlatCAMGrbEditor.py:5460 flatcamTools/ToolCalibration.py:469 msgid "Factor for Scale action over X axis." msgstr "Коэффициент масштабирования по оси X." -#: AppEditors/FlatCAMGeoEditor.py:770 AppEditors/FlatCAMGrbEditor.py:5464 -#: AppTools/ToolTransform.py:469 +#: flatcamEditors/FlatCAMGeoEditor.py:771 +#: flatcamEditors/FlatCAMGrbEditor.py:5470 flatcamTools/ToolTransform.py:469 msgid "Scale X" msgstr "Масштаб Х" -#: AppEditors/FlatCAMGeoEditor.py:772 AppEditors/FlatCAMGeoEditor.py:791 -#: AppEditors/FlatCAMGrbEditor.py:5466 AppEditors/FlatCAMGrbEditor.py:5485 +#: flatcamEditors/FlatCAMGeoEditor.py:773 +#: flatcamEditors/FlatCAMGeoEditor.py:792 +#: flatcamEditors/FlatCAMGrbEditor.py:5472 +#: flatcamEditors/FlatCAMGrbEditor.py:5491 msgid "" "Scale the selected shape(s).\n" "The point of reference depends on \n" @@ -1931,27 +3811,30 @@ msgstr "" "Точка отсчета зависит от\n" "состояние флажка Scale Reference." -#: AppEditors/FlatCAMGeoEditor.py:777 AppEditors/FlatCAMGrbEditor.py:5471 +#: flatcamEditors/FlatCAMGeoEditor.py:778 +#: flatcamEditors/FlatCAMGrbEditor.py:5477 msgid "Factor Y:" msgstr "Коэффициент Y:" -#: AppEditors/FlatCAMGeoEditor.py:779 AppEditors/FlatCAMGrbEditor.py:5473 -#: AppTools/ToolCalibration.py:481 +#: flatcamEditors/FlatCAMGeoEditor.py:780 +#: flatcamEditors/FlatCAMGrbEditor.py:5479 flatcamTools/ToolCalibration.py:481 msgid "Factor for Scale action over Y axis." msgstr "Коэффициент масштабирования по оси Y." -#: AppEditors/FlatCAMGeoEditor.py:789 AppEditors/FlatCAMGrbEditor.py:5483 -#: AppTools/ToolTransform.py:470 +#: flatcamEditors/FlatCAMGeoEditor.py:790 +#: flatcamEditors/FlatCAMGrbEditor.py:5489 flatcamTools/ToolTransform.py:470 msgid "Scale Y" msgstr "Масштаб Y" -#: AppEditors/FlatCAMGeoEditor.py:798 AppEditors/FlatCAMGrbEditor.py:5492 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:124 -#: AppTools/ToolTransform.py:189 +#: flatcamEditors/FlatCAMGeoEditor.py:799 +#: flatcamEditors/FlatCAMGrbEditor.py:5498 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:124 +#: flatcamTools/ToolTransform.py:189 msgid "Link" msgstr "Ссылка" -#: AppEditors/FlatCAMGeoEditor.py:800 AppEditors/FlatCAMGrbEditor.py:5494 +#: flatcamEditors/FlatCAMGeoEditor.py:801 +#: flatcamEditors/FlatCAMGrbEditor.py:5500 msgid "" "Scale the selected shape(s)\n" "using the Scale Factor X for both axis." @@ -1959,13 +3842,15 @@ msgstr "" "Масштабирует выбранные фигуры\n" "используя коэффициент X для обеих осей." -#: AppEditors/FlatCAMGeoEditor.py:806 AppEditors/FlatCAMGrbEditor.py:5500 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:132 -#: AppTools/ToolTransform.py:196 +#: flatcamEditors/FlatCAMGeoEditor.py:807 +#: flatcamEditors/FlatCAMGrbEditor.py:5506 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:132 +#: flatcamTools/ToolTransform.py:196 msgid "Scale Reference" msgstr "Эталон масштабирования" -#: AppEditors/FlatCAMGeoEditor.py:808 AppEditors/FlatCAMGrbEditor.py:5502 +#: flatcamEditors/FlatCAMGeoEditor.py:809 +#: flatcamEditors/FlatCAMGrbEditor.py:5508 msgid "" "Scale the selected shape(s)\n" "using the origin reference when checked,\n" @@ -1977,21 +3862,25 @@ msgstr "" "и центр самой большой ограничительной рамки\n" "выбранных фигур, если флажок снят." -#: AppEditors/FlatCAMGeoEditor.py:836 AppEditors/FlatCAMGrbEditor.py:5531 +#: flatcamEditors/FlatCAMGeoEditor.py:837 +#: flatcamEditors/FlatCAMGrbEditor.py:5537 msgid "Value X:" msgstr "Значение X:" -#: AppEditors/FlatCAMGeoEditor.py:838 AppEditors/FlatCAMGrbEditor.py:5533 +#: flatcamEditors/FlatCAMGeoEditor.py:839 +#: flatcamEditors/FlatCAMGrbEditor.py:5539 msgid "Value for Offset action on X axis." msgstr "Значение для смещения по оси X." -#: AppEditors/FlatCAMGeoEditor.py:848 AppEditors/FlatCAMGrbEditor.py:5543 -#: AppTools/ToolTransform.py:473 +#: flatcamEditors/FlatCAMGeoEditor.py:849 +#: flatcamEditors/FlatCAMGrbEditor.py:5549 flatcamTools/ToolTransform.py:473 msgid "Offset X" msgstr "Смещение Х" -#: AppEditors/FlatCAMGeoEditor.py:850 AppEditors/FlatCAMGeoEditor.py:870 -#: AppEditors/FlatCAMGrbEditor.py:5545 AppEditors/FlatCAMGrbEditor.py:5565 +#: flatcamEditors/FlatCAMGeoEditor.py:851 +#: flatcamEditors/FlatCAMGeoEditor.py:871 +#: flatcamEditors/FlatCAMGrbEditor.py:5551 +#: flatcamEditors/FlatCAMGrbEditor.py:5571 msgid "" "Offset the selected shape(s).\n" "The point of reference is the middle of\n" @@ -2001,26 +3890,30 @@ msgstr "" "Точка отсчета - середина\n" "ограничительной рамки для всех выбранных фигур.\n" -#: AppEditors/FlatCAMGeoEditor.py:856 AppEditors/FlatCAMGrbEditor.py:5551 +#: flatcamEditors/FlatCAMGeoEditor.py:857 +#: flatcamEditors/FlatCAMGrbEditor.py:5557 msgid "Value Y:" msgstr "Значение Y:" -#: AppEditors/FlatCAMGeoEditor.py:858 AppEditors/FlatCAMGrbEditor.py:5553 +#: flatcamEditors/FlatCAMGeoEditor.py:859 +#: flatcamEditors/FlatCAMGrbEditor.py:5559 msgid "Value for Offset action on Y axis." msgstr "Значение для смещения по оси Y." -#: AppEditors/FlatCAMGeoEditor.py:868 AppEditors/FlatCAMGrbEditor.py:5563 -#: AppTools/ToolTransform.py:474 +#: flatcamEditors/FlatCAMGeoEditor.py:869 +#: flatcamEditors/FlatCAMGrbEditor.py:5569 flatcamTools/ToolTransform.py:474 msgid "Offset Y" msgstr "Смещение Y" -#: AppEditors/FlatCAMGeoEditor.py:899 AppEditors/FlatCAMGrbEditor.py:5594 -#: AppTools/ToolTransform.py:475 +#: flatcamEditors/FlatCAMGeoEditor.py:900 +#: flatcamEditors/FlatCAMGrbEditor.py:5600 flatcamTools/ToolTransform.py:475 msgid "Flip on X" msgstr "Отразить по X" -#: AppEditors/FlatCAMGeoEditor.py:901 AppEditors/FlatCAMGeoEditor.py:908 -#: AppEditors/FlatCAMGrbEditor.py:5596 AppEditors/FlatCAMGrbEditor.py:5603 +#: flatcamEditors/FlatCAMGeoEditor.py:902 +#: flatcamEditors/FlatCAMGeoEditor.py:909 +#: flatcamEditors/FlatCAMGrbEditor.py:5602 +#: flatcamEditors/FlatCAMGrbEditor.py:5609 msgid "" "Flip the selected shape(s) over the X axis.\n" "Does not create a new shape." @@ -2028,16 +3921,18 @@ msgstr "" "Отражает выбранные фигуры по оси X.\n" "Не создает новую фугуру." -#: AppEditors/FlatCAMGeoEditor.py:906 AppEditors/FlatCAMGrbEditor.py:5601 -#: AppTools/ToolTransform.py:476 +#: flatcamEditors/FlatCAMGeoEditor.py:907 +#: flatcamEditors/FlatCAMGrbEditor.py:5607 flatcamTools/ToolTransform.py:476 msgid "Flip on Y" msgstr "Отразить по Y" -#: AppEditors/FlatCAMGeoEditor.py:914 AppEditors/FlatCAMGrbEditor.py:5609 +#: flatcamEditors/FlatCAMGeoEditor.py:915 +#: flatcamEditors/FlatCAMGrbEditor.py:5615 msgid "Ref Pt" msgstr "Точка отсчета" -#: AppEditors/FlatCAMGeoEditor.py:916 AppEditors/FlatCAMGrbEditor.py:5611 +#: flatcamEditors/FlatCAMGeoEditor.py:917 +#: flatcamEditors/FlatCAMGrbEditor.py:5617 msgid "" "Flip the selected shape(s)\n" "around the point in Point Entry Field.\n" @@ -2059,12 +3954,13 @@ msgstr "" "Или введите координаты в формате (x, y) в\n" "поле ввода и нажмите «Отразить по X (Y)»" -#: AppEditors/FlatCAMGeoEditor.py:928 AppEditors/FlatCAMGrbEditor.py:5623 +#: flatcamEditors/FlatCAMGeoEditor.py:929 +#: flatcamEditors/FlatCAMGrbEditor.py:5629 msgid "Point:" msgstr "Точка:" -#: AppEditors/FlatCAMGeoEditor.py:930 AppEditors/FlatCAMGrbEditor.py:5625 -#: AppTools/ToolTransform.py:299 +#: flatcamEditors/FlatCAMGeoEditor.py:931 +#: flatcamEditors/FlatCAMGrbEditor.py:5631 flatcamTools/ToolTransform.py:299 msgid "" "Coordinates in format (x, y) used as reference for mirroring.\n" "The 'x' in (x, y) will be used when using Flip on X and\n" @@ -2075,19 +3971,8 @@ msgstr "" "'x' в (x, y) будет использоваться при отражении по X и\n" "'y' в (x, y) будет использоваться при отражении по Y." -#: AppEditors/FlatCAMGeoEditor.py:938 AppEditors/FlatCAMGrbEditor.py:2590 -#: AppEditors/FlatCAMGrbEditor.py:5635 AppGUI/ObjectUI.py:1494 -#: AppTools/ToolDblSided.py:192 AppTools/ToolDblSided.py:425 -#: AppTools/ToolIsolation.py:276 AppTools/ToolIsolation.py:610 -#: AppTools/ToolNCC.py:294 AppTools/ToolNCC.py:631 AppTools/ToolPaint.py:276 -#: AppTools/ToolPaint.py:675 AppTools/ToolSolderPaste.py:127 -#: AppTools/ToolSolderPaste.py:605 AppTools/ToolTransform.py:478 -#: App_Main.py:5670 -msgid "Add" -msgstr "Добавить" - -#: AppEditors/FlatCAMGeoEditor.py:940 AppEditors/FlatCAMGrbEditor.py:5637 -#: AppTools/ToolTransform.py:309 +#: flatcamEditors/FlatCAMGeoEditor.py:941 +#: flatcamEditors/FlatCAMGrbEditor.py:5643 flatcamTools/ToolTransform.py:309 msgid "" "The point coordinates can be captured by\n" "left click on canvas together with pressing\n" @@ -2097,303 +3982,350 @@ msgstr "" "щелчка левой кнопкой мыши на холсте одновременно с нажатием\n" "клавиши SHIFT. Затем нажмите кнопку 'Добавить', чтобы вставить координаты." -#: AppEditors/FlatCAMGeoEditor.py:1303 AppEditors/FlatCAMGrbEditor.py:5945 +#: flatcamEditors/FlatCAMGeoEditor.py:1304 +#: flatcamEditors/FlatCAMGrbEditor.py:5951 msgid "No shape selected. Please Select a shape to rotate!" msgstr "Фигура не выбрана. Пожалуйста, выберите фигуру для поворота!" -#: AppEditors/FlatCAMGeoEditor.py:1306 AppEditors/FlatCAMGrbEditor.py:5948 -#: AppTools/ToolTransform.py:679 +#: flatcamEditors/FlatCAMGeoEditor.py:1307 +#: flatcamEditors/FlatCAMGrbEditor.py:5954 flatcamTools/ToolTransform.py:679 msgid "Appying Rotate" msgstr "Применение поворота" -#: AppEditors/FlatCAMGeoEditor.py:1332 AppEditors/FlatCAMGrbEditor.py:5980 +#: flatcamEditors/FlatCAMGeoEditor.py:1333 +#: flatcamEditors/FlatCAMGrbEditor.py:5986 msgid "Done. Rotate completed." msgstr "Готово. Поворот выполнен." -#: AppEditors/FlatCAMGeoEditor.py:1334 +#: flatcamEditors/FlatCAMGeoEditor.py:1335 msgid "Rotation action was not executed" msgstr "Вращение не было выполнено" -#: AppEditors/FlatCAMGeoEditor.py:1353 AppEditors/FlatCAMGrbEditor.py:5999 +#: flatcamEditors/FlatCAMGeoEditor.py:1354 +#: flatcamEditors/FlatCAMGrbEditor.py:6005 msgid "No shape selected. Please Select a shape to flip!" msgstr "Фигура не выбрана. Пожалуйста, выберите фигуру для переворота!" -#: AppEditors/FlatCAMGeoEditor.py:1356 AppEditors/FlatCAMGrbEditor.py:6002 -#: AppTools/ToolTransform.py:728 +#: flatcamEditors/FlatCAMGeoEditor.py:1357 +#: flatcamEditors/FlatCAMGrbEditor.py:6008 flatcamTools/ToolTransform.py:728 msgid "Applying Flip" msgstr "Применение отражения" -#: AppEditors/FlatCAMGeoEditor.py:1385 AppEditors/FlatCAMGrbEditor.py:6040 -#: AppTools/ToolTransform.py:769 +#: flatcamEditors/FlatCAMGeoEditor.py:1386 +#: flatcamEditors/FlatCAMGrbEditor.py:6046 flatcamTools/ToolTransform.py:769 msgid "Flip on the Y axis done" msgstr "Отражение по оси Y завершено" -#: AppEditors/FlatCAMGeoEditor.py:1389 AppEditors/FlatCAMGrbEditor.py:6049 -#: AppTools/ToolTransform.py:778 +#: flatcamEditors/FlatCAMGeoEditor.py:1390 +#: flatcamEditors/FlatCAMGrbEditor.py:6055 flatcamTools/ToolTransform.py:778 msgid "Flip on the X axis done" msgstr "Отражение по оси Х завершёно" -#: AppEditors/FlatCAMGeoEditor.py:1397 +#: flatcamEditors/FlatCAMGeoEditor.py:1398 msgid "Flip action was not executed" msgstr "Операция переворота не была выполнена" -#: AppEditors/FlatCAMGeoEditor.py:1415 AppEditors/FlatCAMGrbEditor.py:6069 +#: flatcamEditors/FlatCAMGeoEditor.py:1416 +#: flatcamEditors/FlatCAMGrbEditor.py:6075 msgid "No shape selected. Please Select a shape to shear/skew!" msgstr "Фигура не выбрана. Пожалуйста, выберите фигуру для сдвига/наклона!" -#: AppEditors/FlatCAMGeoEditor.py:1418 AppEditors/FlatCAMGrbEditor.py:6072 -#: AppTools/ToolTransform.py:801 +#: flatcamEditors/FlatCAMGeoEditor.py:1419 +#: flatcamEditors/FlatCAMGrbEditor.py:6078 flatcamTools/ToolTransform.py:801 msgid "Applying Skew" msgstr "Применение наклона" -#: AppEditors/FlatCAMGeoEditor.py:1441 AppEditors/FlatCAMGrbEditor.py:6106 +#: flatcamEditors/FlatCAMGeoEditor.py:1442 +#: flatcamEditors/FlatCAMGrbEditor.py:6112 msgid "Skew on the X axis done" msgstr "Наклон по оси X выполнен" -#: AppEditors/FlatCAMGeoEditor.py:1443 AppEditors/FlatCAMGrbEditor.py:6108 +#: flatcamEditors/FlatCAMGeoEditor.py:1444 +#: flatcamEditors/FlatCAMGrbEditor.py:6114 msgid "Skew on the Y axis done" msgstr "Наклон по оси Y выполнен" -#: AppEditors/FlatCAMGeoEditor.py:1446 +#: flatcamEditors/FlatCAMGeoEditor.py:1447 msgid "Skew action was not executed" msgstr "Наклон не был выполнен" -#: AppEditors/FlatCAMGeoEditor.py:1468 AppEditors/FlatCAMGrbEditor.py:6130 +#: flatcamEditors/FlatCAMGeoEditor.py:1469 +#: flatcamEditors/FlatCAMGrbEditor.py:6136 msgid "No shape selected. Please Select a shape to scale!" msgstr "Фигура не выбрана. Пожалуйста, выберите фигуру для масштабирования!" -#: AppEditors/FlatCAMGeoEditor.py:1471 AppEditors/FlatCAMGrbEditor.py:6133 -#: AppTools/ToolTransform.py:847 +#: flatcamEditors/FlatCAMGeoEditor.py:1472 +#: flatcamEditors/FlatCAMGrbEditor.py:6139 flatcamTools/ToolTransform.py:847 msgid "Applying Scale" msgstr "Применение масштабирования" -#: AppEditors/FlatCAMGeoEditor.py:1503 AppEditors/FlatCAMGrbEditor.py:6170 +#: flatcamEditors/FlatCAMGeoEditor.py:1504 +#: flatcamEditors/FlatCAMGrbEditor.py:6176 msgid "Scale on the X axis done" msgstr "Масштабирование по оси X выполнено" -#: AppEditors/FlatCAMGeoEditor.py:1505 AppEditors/FlatCAMGrbEditor.py:6172 +#: flatcamEditors/FlatCAMGeoEditor.py:1506 +#: flatcamEditors/FlatCAMGrbEditor.py:6178 msgid "Scale on the Y axis done" msgstr "Масштабирование по оси Y выполнено" -#: AppEditors/FlatCAMGeoEditor.py:1507 +#: flatcamEditors/FlatCAMGeoEditor.py:1508 msgid "Scale action was not executed" msgstr "Операция масштабирования не была выполнена" -#: AppEditors/FlatCAMGeoEditor.py:1522 AppEditors/FlatCAMGrbEditor.py:6189 +#: flatcamEditors/FlatCAMGeoEditor.py:1523 +#: flatcamEditors/FlatCAMGrbEditor.py:6195 msgid "No shape selected. Please Select a shape to offset!" msgstr "Фигура не выбрана. Пожалуйста, выберите фигуру для смещения!" -#: AppEditors/FlatCAMGeoEditor.py:1525 AppEditors/FlatCAMGrbEditor.py:6192 -#: AppTools/ToolTransform.py:897 +#: flatcamEditors/FlatCAMGeoEditor.py:1526 +#: flatcamEditors/FlatCAMGrbEditor.py:6198 flatcamTools/ToolTransform.py:897 msgid "Applying Offset" msgstr "Применение смещения" -#: AppEditors/FlatCAMGeoEditor.py:1535 AppEditors/FlatCAMGrbEditor.py:6213 +#: flatcamEditors/FlatCAMGeoEditor.py:1536 +#: flatcamEditors/FlatCAMGrbEditor.py:6219 msgid "Offset on the X axis done" msgstr "Смещение формы по оси X выполнено" -#: AppEditors/FlatCAMGeoEditor.py:1537 AppEditors/FlatCAMGrbEditor.py:6215 +#: flatcamEditors/FlatCAMGeoEditor.py:1538 +#: flatcamEditors/FlatCAMGrbEditor.py:6221 msgid "Offset on the Y axis done" msgstr "Смещение формы по оси Y выполнено" -#: AppEditors/FlatCAMGeoEditor.py:1540 +#: flatcamEditors/FlatCAMGeoEditor.py:1541 msgid "Offset action was not executed" msgstr "Операция смещения не была выполнена" -#: AppEditors/FlatCAMGeoEditor.py:1544 AppEditors/FlatCAMGrbEditor.py:6222 +#: flatcamEditors/FlatCAMGeoEditor.py:1545 +#: flatcamEditors/FlatCAMGrbEditor.py:6228 msgid "Rotate ..." msgstr "Поворот ..." -#: AppEditors/FlatCAMGeoEditor.py:1545 AppEditors/FlatCAMGeoEditor.py:1600 -#: AppEditors/FlatCAMGeoEditor.py:1617 AppEditors/FlatCAMGrbEditor.py:6223 -#: AppEditors/FlatCAMGrbEditor.py:6272 AppEditors/FlatCAMGrbEditor.py:6287 +#: flatcamEditors/FlatCAMGeoEditor.py:1546 +#: flatcamEditors/FlatCAMGeoEditor.py:1601 +#: flatcamEditors/FlatCAMGeoEditor.py:1618 +#: flatcamEditors/FlatCAMGrbEditor.py:6229 +#: flatcamEditors/FlatCAMGrbEditor.py:6278 +#: flatcamEditors/FlatCAMGrbEditor.py:6293 msgid "Enter an Angle Value (degrees)" msgstr "Введите значение угла (градусы)" -#: AppEditors/FlatCAMGeoEditor.py:1554 AppEditors/FlatCAMGrbEditor.py:6231 +#: flatcamEditors/FlatCAMGeoEditor.py:1555 +#: flatcamEditors/FlatCAMGrbEditor.py:6237 msgid "Geometry shape rotate done" msgstr "Вращение фигуры выполнено" -#: AppEditors/FlatCAMGeoEditor.py:1558 AppEditors/FlatCAMGrbEditor.py:6234 +#: flatcamEditors/FlatCAMGeoEditor.py:1559 +#: flatcamEditors/FlatCAMGrbEditor.py:6240 msgid "Geometry shape rotate cancelled" msgstr "Вращение фигуры отменено" -#: AppEditors/FlatCAMGeoEditor.py:1563 AppEditors/FlatCAMGrbEditor.py:6239 +#: flatcamEditors/FlatCAMGeoEditor.py:1564 +#: flatcamEditors/FlatCAMGrbEditor.py:6245 msgid "Offset on X axis ..." msgstr "Смещение по оси X ..." -#: AppEditors/FlatCAMGeoEditor.py:1564 AppEditors/FlatCAMGeoEditor.py:1583 -#: AppEditors/FlatCAMGrbEditor.py:6240 AppEditors/FlatCAMGrbEditor.py:6257 +#: flatcamEditors/FlatCAMGeoEditor.py:1565 +#: flatcamEditors/FlatCAMGeoEditor.py:1584 +#: flatcamEditors/FlatCAMGrbEditor.py:6246 +#: flatcamEditors/FlatCAMGrbEditor.py:6263 msgid "Enter a distance Value" msgstr "Введите значение расстояния" -#: AppEditors/FlatCAMGeoEditor.py:1573 AppEditors/FlatCAMGrbEditor.py:6248 +#: flatcamEditors/FlatCAMGeoEditor.py:1574 +#: flatcamEditors/FlatCAMGrbEditor.py:6254 msgid "Geometry shape offset on X axis done" msgstr "Смещение формы по оси X выполнено" -#: AppEditors/FlatCAMGeoEditor.py:1577 AppEditors/FlatCAMGrbEditor.py:6251 +#: flatcamEditors/FlatCAMGeoEditor.py:1578 +#: flatcamEditors/FlatCAMGrbEditor.py:6257 msgid "Geometry shape offset X cancelled" msgstr "Смещение формы по оси X отменено" -#: AppEditors/FlatCAMGeoEditor.py:1582 AppEditors/FlatCAMGrbEditor.py:6256 +#: flatcamEditors/FlatCAMGeoEditor.py:1583 +#: flatcamEditors/FlatCAMGrbEditor.py:6262 msgid "Offset on Y axis ..." msgstr "Смещение по оси Y ..." -#: AppEditors/FlatCAMGeoEditor.py:1592 AppEditors/FlatCAMGrbEditor.py:6265 +#: flatcamEditors/FlatCAMGeoEditor.py:1593 +#: flatcamEditors/FlatCAMGrbEditor.py:6271 msgid "Geometry shape offset on Y axis done" msgstr "Смещение формы по оси Y выполнено" -#: AppEditors/FlatCAMGeoEditor.py:1596 +#: flatcamEditors/FlatCAMGeoEditor.py:1597 msgid "Geometry shape offset on Y axis canceled" msgstr "Смещение формы по оси Y отменено" -#: AppEditors/FlatCAMGeoEditor.py:1599 AppEditors/FlatCAMGrbEditor.py:6271 +#: flatcamEditors/FlatCAMGeoEditor.py:1600 +#: flatcamEditors/FlatCAMGrbEditor.py:6277 msgid "Skew on X axis ..." msgstr "Наклон по оси X ..." -#: AppEditors/FlatCAMGeoEditor.py:1609 AppEditors/FlatCAMGrbEditor.py:6280 +#: flatcamEditors/FlatCAMGeoEditor.py:1610 +#: flatcamEditors/FlatCAMGrbEditor.py:6286 msgid "Geometry shape skew on X axis done" msgstr "Наклон формы по оси X выполнен" -#: AppEditors/FlatCAMGeoEditor.py:1613 +#: flatcamEditors/FlatCAMGeoEditor.py:1614 msgid "Geometry shape skew on X axis canceled" msgstr "Наклон формы по оси X отменён" -#: AppEditors/FlatCAMGeoEditor.py:1616 AppEditors/FlatCAMGrbEditor.py:6286 +#: flatcamEditors/FlatCAMGeoEditor.py:1617 +#: flatcamEditors/FlatCAMGrbEditor.py:6292 msgid "Skew on Y axis ..." msgstr "Наклон по оси Y ..." -#: AppEditors/FlatCAMGeoEditor.py:1626 AppEditors/FlatCAMGrbEditor.py:6295 +#: flatcamEditors/FlatCAMGeoEditor.py:1627 +#: flatcamEditors/FlatCAMGrbEditor.py:6301 msgid "Geometry shape skew on Y axis done" msgstr "Наклон формы по оси Y выполнен" -#: AppEditors/FlatCAMGeoEditor.py:1630 +#: flatcamEditors/FlatCAMGeoEditor.py:1631 msgid "Geometry shape skew on Y axis canceled" msgstr "Наклон формы по оси Y отменён" -#: AppEditors/FlatCAMGeoEditor.py:2007 AppEditors/FlatCAMGeoEditor.py:2078 -#: AppEditors/FlatCAMGrbEditor.py:1444 AppEditors/FlatCAMGrbEditor.py:1522 +#: flatcamEditors/FlatCAMGeoEditor.py:2008 +#: flatcamEditors/FlatCAMGeoEditor.py:2079 +#: flatcamEditors/FlatCAMGrbEditor.py:1437 +#: flatcamEditors/FlatCAMGrbEditor.py:1515 msgid "Click on Center point ..." msgstr "Нажмите на центральную точку ..." -#: AppEditors/FlatCAMGeoEditor.py:2020 AppEditors/FlatCAMGrbEditor.py:1454 +#: flatcamEditors/FlatCAMGeoEditor.py:2021 +#: flatcamEditors/FlatCAMGrbEditor.py:1447 msgid "Click on Perimeter point to complete ..." msgstr "Для завершения щелкните по периметру ..." -#: AppEditors/FlatCAMGeoEditor.py:2052 +#: flatcamEditors/FlatCAMGeoEditor.py:2053 msgid "Done. Adding Circle completed." msgstr "Готово. Добавление круга завершено." -#: AppEditors/FlatCAMGeoEditor.py:2106 AppEditors/FlatCAMGrbEditor.py:1555 +#: flatcamEditors/FlatCAMGeoEditor.py:2107 +#: flatcamEditors/FlatCAMGrbEditor.py:1548 msgid "Click on Start point ..." msgstr "Нажмите на точку начала отсчета..." -#: AppEditors/FlatCAMGeoEditor.py:2108 AppEditors/FlatCAMGrbEditor.py:1557 +#: flatcamEditors/FlatCAMGeoEditor.py:2109 +#: flatcamEditors/FlatCAMGrbEditor.py:1550 msgid "Click on Point3 ..." msgstr "Нажмите на 3-ю точку ..." -#: AppEditors/FlatCAMGeoEditor.py:2110 AppEditors/FlatCAMGrbEditor.py:1559 +#: flatcamEditors/FlatCAMGeoEditor.py:2111 +#: flatcamEditors/FlatCAMGrbEditor.py:1552 msgid "Click on Stop point ..." msgstr "Нажмите на конечную точку ..." -#: AppEditors/FlatCAMGeoEditor.py:2115 AppEditors/FlatCAMGrbEditor.py:1564 +#: flatcamEditors/FlatCAMGeoEditor.py:2116 +#: flatcamEditors/FlatCAMGrbEditor.py:1557 msgid "Click on Stop point to complete ..." msgstr "Нажмите на конечную точку для завершения ..." -#: AppEditors/FlatCAMGeoEditor.py:2117 AppEditors/FlatCAMGrbEditor.py:1566 +#: flatcamEditors/FlatCAMGeoEditor.py:2118 +#: flatcamEditors/FlatCAMGrbEditor.py:1559 msgid "Click on Point2 to complete ..." msgstr "Нажмите на 2-ю точку для завершения ..." -#: AppEditors/FlatCAMGeoEditor.py:2119 AppEditors/FlatCAMGrbEditor.py:1568 +#: flatcamEditors/FlatCAMGeoEditor.py:2120 +#: flatcamEditors/FlatCAMGrbEditor.py:1561 msgid "Click on Center point to complete ..." msgstr "Нажмите на центральную точку для завершения..." -#: AppEditors/FlatCAMGeoEditor.py:2131 +#: flatcamEditors/FlatCAMGeoEditor.py:2132 #, python-format msgid "Direction: %s" msgstr "Направление: %s" -#: AppEditors/FlatCAMGeoEditor.py:2145 AppEditors/FlatCAMGrbEditor.py:1594 +#: flatcamEditors/FlatCAMGeoEditor.py:2146 +#: flatcamEditors/FlatCAMGrbEditor.py:1587 msgid "Mode: Start -> Stop -> Center. Click on Start point ..." msgstr "Режим: Старт -> Стоп -> Центр. Нажмите на начальную точку ..." -#: AppEditors/FlatCAMGeoEditor.py:2148 AppEditors/FlatCAMGrbEditor.py:1597 +#: flatcamEditors/FlatCAMGeoEditor.py:2149 +#: flatcamEditors/FlatCAMGrbEditor.py:1590 msgid "Mode: Point1 -> Point3 -> Point2. Click on Point1 ..." msgstr "Режим: Точка1 -> Точка3 -> Точка2. Нажмите на Точку1 ..." -#: AppEditors/FlatCAMGeoEditor.py:2151 AppEditors/FlatCAMGrbEditor.py:1600 +#: flatcamEditors/FlatCAMGeoEditor.py:2152 +#: flatcamEditors/FlatCAMGrbEditor.py:1593 msgid "Mode: Center -> Start -> Stop. Click on Center point ..." msgstr "Режим: Центр -> Старт -> Стоп. Нажмите на центральную точку ..." -#: AppEditors/FlatCAMGeoEditor.py:2292 +#: flatcamEditors/FlatCAMGeoEditor.py:2293 msgid "Done. Arc completed." msgstr "Готово. Дуга завершена." -#: AppEditors/FlatCAMGeoEditor.py:2323 AppEditors/FlatCAMGeoEditor.py:2396 +#: flatcamEditors/FlatCAMGeoEditor.py:2324 +#: flatcamEditors/FlatCAMGeoEditor.py:2397 msgid "Click on 1st corner ..." msgstr "Нажмите на 1-ый угол ..." -#: AppEditors/FlatCAMGeoEditor.py:2335 +#: flatcamEditors/FlatCAMGeoEditor.py:2336 msgid "Click on opposite corner to complete ..." msgstr "Нажмите на противоположном углу для завершения ..." -#: AppEditors/FlatCAMGeoEditor.py:2365 +#: flatcamEditors/FlatCAMGeoEditor.py:2366 msgid "Done. Rectangle completed." msgstr "Готово. Прямоугольник завершен." -#: AppEditors/FlatCAMGeoEditor.py:2409 AppTools/ToolIsolation.py:2527 -#: AppTools/ToolNCC.py:1754 AppTools/ToolPaint.py:1647 Common.py:322 +#: flatcamEditors/FlatCAMGeoEditor.py:2410 +#: flatcamObjects/FlatCAMGeometry.py:2648 flatcamTools/ToolNCC.py:1733 +#: flatcamTools/ToolPaint.py:1628 msgid "Click on next Point or click right mouse button to complete ..." msgstr "" "Нажмите на следующую точку или щелкните правой кнопкой мыши для " "завершения ..." -#: AppEditors/FlatCAMGeoEditor.py:2440 +#: flatcamEditors/FlatCAMGeoEditor.py:2441 msgid "Done. Polygon completed." msgstr "Готово. Полигон завершен." -#: AppEditors/FlatCAMGeoEditor.py:2454 AppEditors/FlatCAMGeoEditor.py:2519 -#: AppEditors/FlatCAMGrbEditor.py:1102 AppEditors/FlatCAMGrbEditor.py:1322 +#: flatcamEditors/FlatCAMGeoEditor.py:2455 +#: flatcamEditors/FlatCAMGeoEditor.py:2520 +#: flatcamEditors/FlatCAMGrbEditor.py:1113 +#: flatcamEditors/FlatCAMGrbEditor.py:1324 msgid "Backtracked one point ..." msgstr "Отступ на одну точку ..." -#: AppEditors/FlatCAMGeoEditor.py:2497 +#: flatcamEditors/FlatCAMGeoEditor.py:2498 msgid "Done. Path completed." msgstr "Готово. Путь завершен." -#: AppEditors/FlatCAMGeoEditor.py:2656 +#: flatcamEditors/FlatCAMGeoEditor.py:2657 msgid "No shape selected. Select a shape to explode" msgstr "Фигура не выбрана. Выберите фигуру для разделения" -#: AppEditors/FlatCAMGeoEditor.py:2689 +#: flatcamEditors/FlatCAMGeoEditor.py:2690 msgid "Done. Polygons exploded into lines." msgstr "Готово. Полигоны разделены на линии." -#: AppEditors/FlatCAMGeoEditor.py:2721 +#: flatcamEditors/FlatCAMGeoEditor.py:2722 msgid "MOVE: No shape selected. Select a shape to move" msgstr "ПЕРЕМЕЩЕНИЕ: Фигура не выбрана. Выберите фигуру для перемещения" -#: AppEditors/FlatCAMGeoEditor.py:2724 AppEditors/FlatCAMGeoEditor.py:2744 +#: flatcamEditors/FlatCAMGeoEditor.py:2725 +#: flatcamEditors/FlatCAMGeoEditor.py:2745 msgid " MOVE: Click on reference point ..." msgstr " Перемещение: Нажмите на исходную точку ..." -#: AppEditors/FlatCAMGeoEditor.py:2729 +#: flatcamEditors/FlatCAMGeoEditor.py:2730 msgid " Click on destination point ..." msgstr " Нажмите на конечную точку ..." -#: AppEditors/FlatCAMGeoEditor.py:2769 +#: flatcamEditors/FlatCAMGeoEditor.py:2770 msgid "Done. Geometry(s) Move completed." msgstr "Готово. Перемещение Geometry завершено." -#: AppEditors/FlatCAMGeoEditor.py:2902 +#: flatcamEditors/FlatCAMGeoEditor.py:2903 msgid "Done. Geometry(s) Copy completed." msgstr "Готово. Копирование Geometry завершено." -#: AppEditors/FlatCAMGeoEditor.py:2933 AppEditors/FlatCAMGrbEditor.py:897 +#: flatcamEditors/FlatCAMGeoEditor.py:2934 +#: flatcamEditors/FlatCAMGrbEditor.py:899 msgid "Click on 1st point ..." msgstr "Нажмите на 1-й точке ..." -#: AppEditors/FlatCAMGeoEditor.py:2957 +#: flatcamEditors/FlatCAMGeoEditor.py:2958 msgid "" "Font not supported. Only Regular, Bold, Italic and BoldItalic are supported. " "Error" @@ -2401,135 +4333,134 @@ msgstr "" "Шрифт не поддерживается. Поддерживаются только обычный, полужирный, курсив и " "полужирный курсив. Ошибка" -#: AppEditors/FlatCAMGeoEditor.py:2965 +#: flatcamEditors/FlatCAMGeoEditor.py:2966 msgid "No text to add." msgstr "Нет текста для добавления." -#: AppEditors/FlatCAMGeoEditor.py:2975 +#: flatcamEditors/FlatCAMGeoEditor.py:2976 msgid " Done. Adding Text completed." msgstr " Готово. Добавление текста завершено." -#: AppEditors/FlatCAMGeoEditor.py:3012 +#: flatcamEditors/FlatCAMGeoEditor.py:3013 msgid "Create buffer geometry ..." msgstr "Создание геометрии буфера ..." -#: AppEditors/FlatCAMGeoEditor.py:3047 AppEditors/FlatCAMGrbEditor.py:5154 +#: flatcamEditors/FlatCAMGeoEditor.py:3048 +#: flatcamEditors/FlatCAMGrbEditor.py:5160 msgid "Done. Buffer Tool completed." msgstr "Готово. Создание буфера завершено." -#: AppEditors/FlatCAMGeoEditor.py:3075 +#: flatcamEditors/FlatCAMGeoEditor.py:3076 msgid "Done. Buffer Int Tool completed." msgstr "Готово. Внутренний буфер создан." -#: AppEditors/FlatCAMGeoEditor.py:3103 +#: flatcamEditors/FlatCAMGeoEditor.py:3104 msgid "Done. Buffer Ext Tool completed." msgstr "Готово. Внешний буфер создан." -#: AppEditors/FlatCAMGeoEditor.py:3152 AppEditors/FlatCAMGrbEditor.py:2160 +#: flatcamEditors/FlatCAMGeoEditor.py:3153 +#: flatcamEditors/FlatCAMGrbEditor.py:2153 msgid "Select a shape to act as deletion area ..." msgstr "Выберите фигуру в качестве области для удаления ..." -#: AppEditors/FlatCAMGeoEditor.py:3154 AppEditors/FlatCAMGeoEditor.py:3180 -#: AppEditors/FlatCAMGeoEditor.py:3186 AppEditors/FlatCAMGrbEditor.py:2162 +#: flatcamEditors/FlatCAMGeoEditor.py:3155 +#: flatcamEditors/FlatCAMGeoEditor.py:3181 +#: flatcamEditors/FlatCAMGeoEditor.py:3187 +#: flatcamEditors/FlatCAMGrbEditor.py:2155 msgid "Click to pick-up the erase shape..." msgstr "Кликните, что бы выбрать фигуру для стирания ..." -#: AppEditors/FlatCAMGeoEditor.py:3190 AppEditors/FlatCAMGrbEditor.py:2221 +#: flatcamEditors/FlatCAMGeoEditor.py:3191 +#: flatcamEditors/FlatCAMGrbEditor.py:2214 msgid "Click to erase ..." msgstr "Нажмите для очистки ..." -#: AppEditors/FlatCAMGeoEditor.py:3219 AppEditors/FlatCAMGrbEditor.py:2254 +#: flatcamEditors/FlatCAMGeoEditor.py:3220 +#: flatcamEditors/FlatCAMGrbEditor.py:2247 msgid "Done. Eraser tool action completed." msgstr "Готово. Действие инструмента стирания завершено.." -#: AppEditors/FlatCAMGeoEditor.py:3269 +#: flatcamEditors/FlatCAMGeoEditor.py:3270 msgid "Create Paint geometry ..." msgstr "Создать геометрию окрашивания ..." -#: AppEditors/FlatCAMGeoEditor.py:3282 AppEditors/FlatCAMGrbEditor.py:2417 +#: flatcamEditors/FlatCAMGeoEditor.py:3283 +#: flatcamEditors/FlatCAMGrbEditor.py:2410 msgid "Shape transformations ..." msgstr "Преобразования фигуры ..." -#: AppEditors/FlatCAMGeoEditor.py:3338 -#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:27 +#: flatcamEditors/FlatCAMGeoEditor.py:3339 +#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:27 msgid "Geometry Editor" msgstr "Редактор Geometry" -#: AppEditors/FlatCAMGeoEditor.py:3344 AppEditors/FlatCAMGrbEditor.py:2495 -#: AppEditors/FlatCAMGrbEditor.py:3952 AppGUI/ObjectUI.py:282 -#: AppGUI/ObjectUI.py:1394 AppGUI/ObjectUI.py:2256 AppTools/ToolCutOut.py:95 +#: flatcamEditors/FlatCAMGeoEditor.py:3345 +#: flatcamEditors/FlatCAMGrbEditor.py:2488 +#: flatcamEditors/FlatCAMGrbEditor.py:3969 flatcamGUI/ObjectUI.py:263 +#: flatcamGUI/ObjectUI.py:1497 flatcamGUI/ObjectUI.py:2326 +#: flatcamTools/ToolCutOut.py:95 msgid "Type" msgstr "Тип" -#: AppEditors/FlatCAMGeoEditor.py:3344 AppGUI/ObjectUI.py:221 -#: AppGUI/ObjectUI.py:521 AppGUI/ObjectUI.py:1330 AppGUI/ObjectUI.py:2165 -#: AppGUI/ObjectUI.py:2469 AppGUI/ObjectUI.py:2536 -#: AppTools/ToolCalibration.py:234 AppTools/ToolFiducials.py:70 +#: flatcamEditors/FlatCAMGeoEditor.py:3345 flatcamGUI/ObjectUI.py:218 +#: flatcamGUI/ObjectUI.py:742 flatcamGUI/ObjectUI.py:1433 +#: flatcamGUI/ObjectUI.py:2235 flatcamGUI/ObjectUI.py:2539 +#: flatcamGUI/ObjectUI.py:2606 flatcamTools/ToolCalibration.py:234 +#: flatcamTools/ToolFiducials.py:73 msgid "Name" msgstr "Имя" -#: AppEditors/FlatCAMGeoEditor.py:3596 +#: flatcamEditors/FlatCAMGeoEditor.py:3587 msgid "Ring" msgstr "Кольцо" -#: AppEditors/FlatCAMGeoEditor.py:3598 +#: flatcamEditors/FlatCAMGeoEditor.py:3589 msgid "Line" msgstr "Линия" -#: AppEditors/FlatCAMGeoEditor.py:3600 AppGUI/MainGUI.py:1446 -#: AppGUI/ObjectUI.py:1150 AppGUI/ObjectUI.py:2005 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:226 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:299 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:328 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:292 -#: AppTools/ToolIsolation.py:546 AppTools/ToolNCC.py:584 -#: AppTools/ToolPaint.py:527 +#: flatcamEditors/FlatCAMGeoEditor.py:3591 flatcamGUI/FlatCAMGUI.py:2202 +#: flatcamGUI/ObjectUI.py:2074 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:218 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:328 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:292 +#: flatcamTools/ToolNCC.py:584 flatcamTools/ToolPaint.py:528 msgid "Polygon" msgstr "Полигон" -#: AppEditors/FlatCAMGeoEditor.py:3602 +#: flatcamEditors/FlatCAMGeoEditor.py:3593 msgid "Multi-Line" msgstr "Multi-Line" -#: AppEditors/FlatCAMGeoEditor.py:3604 +#: flatcamEditors/FlatCAMGeoEditor.py:3595 msgid "Multi-Polygon" msgstr "Multi-Polygon" -#: AppEditors/FlatCAMGeoEditor.py:3611 +#: flatcamEditors/FlatCAMGeoEditor.py:3602 msgid "Geo Elem" msgstr "Элемент Geo" -#: AppEditors/FlatCAMGeoEditor.py:4064 +#: flatcamEditors/FlatCAMGeoEditor.py:4076 msgid "Editing MultiGeo Geometry, tool" msgstr "Редактирование MultiGeo Geometry, инструментом" -#: AppEditors/FlatCAMGeoEditor.py:4066 +#: flatcamEditors/FlatCAMGeoEditor.py:4078 msgid "with diameter" msgstr "с диаметром" -#: AppEditors/FlatCAMGeoEditor.py:4138 -#, fuzzy -#| msgid "Workspace Settings" -msgid "Grid Snap enabled." -msgstr "Настройки рабочей области" - -#: AppEditors/FlatCAMGeoEditor.py:4142 -#, fuzzy -#| msgid "Grid X snapping distance" -msgid "Grid Snap disabled." -msgstr "Размер сетки по X" - -#: AppEditors/FlatCAMGeoEditor.py:4503 AppGUI/MainGUI.py:3046 -#: AppGUI/MainGUI.py:3092 AppGUI/MainGUI.py:3110 AppGUI/MainGUI.py:3254 -#: AppGUI/MainGUI.py:3293 AppGUI/MainGUI.py:3305 AppGUI/MainGUI.py:3322 +#: flatcamEditors/FlatCAMGeoEditor.py:4509 flatcamGUI/FlatCAMGUI.py:3753 +#: flatcamGUI/FlatCAMGUI.py:3799 flatcamGUI/FlatCAMGUI.py:3817 +#: flatcamGUI/FlatCAMGUI.py:3961 flatcamGUI/FlatCAMGUI.py:4000 +#: flatcamGUI/FlatCAMGUI.py:4012 flatcamGUI/FlatCAMGUI.py:4029 msgid "Click on target point." msgstr "Нажмите на целевой точке." -#: AppEditors/FlatCAMGeoEditor.py:4819 AppEditors/FlatCAMGeoEditor.py:4854 +#: flatcamEditors/FlatCAMGeoEditor.py:4823 +#: flatcamEditors/FlatCAMGeoEditor.py:4858 msgid "A selection of at least 2 geo items is required to do Intersection." msgstr "Выберите по крайней мере 2 элемента геометрии для пересечения." -#: AppEditors/FlatCAMGeoEditor.py:4940 AppEditors/FlatCAMGeoEditor.py:5044 +#: flatcamEditors/FlatCAMGeoEditor.py:4944 +#: flatcamEditors/FlatCAMGeoEditor.py:5048 msgid "" "Negative buffer value is not accepted. Use Buffer interior to generate an " "'inside' shape" @@ -2537,54 +4468,57 @@ msgstr "" "Отрицательное значение буфера не принимается. Используйте внутренний буфер " "для создания \"внутри\" формы" -#: AppEditors/FlatCAMGeoEditor.py:4950 AppEditors/FlatCAMGeoEditor.py:5003 -#: AppEditors/FlatCAMGeoEditor.py:5053 +#: flatcamEditors/FlatCAMGeoEditor.py:4954 +#: flatcamEditors/FlatCAMGeoEditor.py:5007 +#: flatcamEditors/FlatCAMGeoEditor.py:5057 msgid "Nothing selected for buffering." msgstr "Ничего не выбрано для создания буфера." -#: AppEditors/FlatCAMGeoEditor.py:4955 AppEditors/FlatCAMGeoEditor.py:5007 -#: AppEditors/FlatCAMGeoEditor.py:5058 +#: flatcamEditors/FlatCAMGeoEditor.py:4959 +#: flatcamEditors/FlatCAMGeoEditor.py:5011 +#: flatcamEditors/FlatCAMGeoEditor.py:5062 msgid "Invalid distance for buffering." msgstr "Недопустимое расстояние для создания буфера." -#: AppEditors/FlatCAMGeoEditor.py:4979 AppEditors/FlatCAMGeoEditor.py:5078 +#: flatcamEditors/FlatCAMGeoEditor.py:4983 +#: flatcamEditors/FlatCAMGeoEditor.py:5082 msgid "Failed, the result is empty. Choose a different buffer value." msgstr "Ошибка, результат нулевой. Выберите другое значение буфера." -#: AppEditors/FlatCAMGeoEditor.py:4990 +#: flatcamEditors/FlatCAMGeoEditor.py:4994 msgid "Full buffer geometry created." msgstr "Создана геометрия полного буфера." -#: AppEditors/FlatCAMGeoEditor.py:4996 +#: flatcamEditors/FlatCAMGeoEditor.py:5000 msgid "Negative buffer value is not accepted." msgstr "Отрицательное значение буфера не принимается." -#: AppEditors/FlatCAMGeoEditor.py:5027 +#: flatcamEditors/FlatCAMGeoEditor.py:5031 msgid "Failed, the result is empty. Choose a smaller buffer value." msgstr "Ошибка, результат нулевой. Выберите меньшее значение буфера." -#: AppEditors/FlatCAMGeoEditor.py:5037 +#: flatcamEditors/FlatCAMGeoEditor.py:5041 msgid "Interior buffer geometry created." msgstr "Создана геометрия внутреннего буфера." -#: AppEditors/FlatCAMGeoEditor.py:5088 +#: flatcamEditors/FlatCAMGeoEditor.py:5092 msgid "Exterior buffer geometry created." msgstr "Создана геометрия внешнего буфера." -#: AppEditors/FlatCAMGeoEditor.py:5094 +#: flatcamEditors/FlatCAMGeoEditor.py:5098 #, python-format msgid "Could not do Paint. Overlap value has to be less than 100%%." msgstr "Окраска не выполнена. Значение перекрытия должно быть меньше 100%%." -#: AppEditors/FlatCAMGeoEditor.py:5101 +#: flatcamEditors/FlatCAMGeoEditor.py:5105 msgid "Nothing selected for painting." msgstr "Ничего не выбрано для рисования." -#: AppEditors/FlatCAMGeoEditor.py:5107 +#: flatcamEditors/FlatCAMGeoEditor.py:5111 msgid "Invalid value for" msgstr "Недопустимые значения для" -#: AppEditors/FlatCAMGeoEditor.py:5166 +#: flatcamEditors/FlatCAMGeoEditor.py:5170 msgid "" "Could not do Paint. Try a different combination of parameters. Or a " "different method of Paint" @@ -2592,191 +4526,204 @@ msgstr "" "Окраска не выполнена. Попробуйте другую комбинацию параметров или другой " "способ рисования" -#: AppEditors/FlatCAMGeoEditor.py:5177 +#: flatcamEditors/FlatCAMGeoEditor.py:5181 msgid "Paint done." msgstr "Окраска завершена." -#: AppEditors/FlatCAMGrbEditor.py:211 +#: flatcamEditors/FlatCAMGrbEditor.py:213 msgid "To add an Pad first select a aperture in Aperture Table" msgstr "" "Чтобы добавить площадку, сначала выберите отверстие в таблице отверстий" -#: AppEditors/FlatCAMGrbEditor.py:218 AppEditors/FlatCAMGrbEditor.py:418 +#: flatcamEditors/FlatCAMGrbEditor.py:220 +#: flatcamEditors/FlatCAMGrbEditor.py:420 msgid "Aperture size is zero. It needs to be greater than zero." msgstr "Размер отверстия равен нулю. Он должен быть больше нуля." -#: AppEditors/FlatCAMGrbEditor.py:371 AppEditors/FlatCAMGrbEditor.py:684 +#: flatcamEditors/FlatCAMGrbEditor.py:373 +#: flatcamEditors/FlatCAMGrbEditor.py:686 msgid "" "Incompatible aperture type. Select an aperture with type 'C', 'R' or 'O'." msgstr "" "Несовместимый тип отверстия. Выберите отверстие с типом 'C', 'R' или 'O'." -#: AppEditors/FlatCAMGrbEditor.py:383 +#: flatcamEditors/FlatCAMGrbEditor.py:385 msgid "Done. Adding Pad completed." msgstr "Готово. Добавление площадки завершено." -#: AppEditors/FlatCAMGrbEditor.py:410 +#: flatcamEditors/FlatCAMGrbEditor.py:412 msgid "To add an Pad Array first select a aperture in Aperture Table" msgstr "" "Чтобы добавить массив площадок, сначала выберите отверстие в таблице " "отверстий" -#: AppEditors/FlatCAMGrbEditor.py:490 +#: flatcamEditors/FlatCAMGrbEditor.py:492 msgid "Click on the Pad Circular Array Start position" msgstr "Нажмите на начальную точку кругового массива контактных площадок" -#: AppEditors/FlatCAMGrbEditor.py:710 +#: flatcamEditors/FlatCAMGrbEditor.py:712 msgid "Too many Pads for the selected spacing angle." msgstr "Слишком много площадок для выбранного интервала угла." -#: AppEditors/FlatCAMGrbEditor.py:733 +#: flatcamEditors/FlatCAMGrbEditor.py:735 msgid "Done. Pad Array added." msgstr "Готово. Массив площадок добавлен." -#: AppEditors/FlatCAMGrbEditor.py:758 +#: flatcamEditors/FlatCAMGrbEditor.py:760 msgid "Select shape(s) and then click ..." msgstr "Выберите фигуры, а затем нажмите ..." -#: AppEditors/FlatCAMGrbEditor.py:770 +#: flatcamEditors/FlatCAMGrbEditor.py:772 msgid "Failed. Nothing selected." msgstr "Ошибка. Ничего не выбрано." -#: AppEditors/FlatCAMGrbEditor.py:786 +#: flatcamEditors/FlatCAMGrbEditor.py:788 msgid "" "Failed. Poligonize works only on geometries belonging to the same aperture." msgstr "" "Неудача. Полигонизация работает только с геометриями, принадлежащими к " "одному отверстию." -#: AppEditors/FlatCAMGrbEditor.py:840 +#: flatcamEditors/FlatCAMGrbEditor.py:842 msgid "Done. Poligonize completed." msgstr "Готово. Полигонизация выполнена." -#: AppEditors/FlatCAMGrbEditor.py:895 AppEditors/FlatCAMGrbEditor.py:1119 -#: AppEditors/FlatCAMGrbEditor.py:1143 +#: flatcamEditors/FlatCAMGrbEditor.py:897 +#: flatcamEditors/FlatCAMGrbEditor.py:1130 +#: flatcamEditors/FlatCAMGrbEditor.py:1154 msgid "Corner Mode 1: 45 degrees ..." msgstr "Угловой режим 1: 45 градусов ..." -#: AppEditors/FlatCAMGrbEditor.py:907 AppEditors/FlatCAMGrbEditor.py:1219 +#: flatcamEditors/FlatCAMGrbEditor.py:909 +#: flatcamEditors/FlatCAMGrbEditor.py:1239 msgid "Click on next Point or click Right mouse button to complete ..." msgstr "" "Нажмите на следующую точку или щелкните правой кнопкой мыши для " "завершения ..." -#: AppEditors/FlatCAMGrbEditor.py:1107 AppEditors/FlatCAMGrbEditor.py:1140 +#: flatcamEditors/FlatCAMGrbEditor.py:1118 +#: flatcamEditors/FlatCAMGrbEditor.py:1151 msgid "Corner Mode 2: Reverse 45 degrees ..." msgstr "Угловой режим 2: реверс 45 градусов ..." -#: AppEditors/FlatCAMGrbEditor.py:1110 AppEditors/FlatCAMGrbEditor.py:1137 +#: flatcamEditors/FlatCAMGrbEditor.py:1121 +#: flatcamEditors/FlatCAMGrbEditor.py:1148 msgid "Corner Mode 3: 90 degrees ..." msgstr "Угловой режим 3: 90 градусов ..." -#: AppEditors/FlatCAMGrbEditor.py:1113 AppEditors/FlatCAMGrbEditor.py:1134 +#: flatcamEditors/FlatCAMGrbEditor.py:1124 +#: flatcamEditors/FlatCAMGrbEditor.py:1145 msgid "Corner Mode 4: Reverse 90 degrees ..." msgstr "Угловой режим 4: реверс 90 градусов ..." -#: AppEditors/FlatCAMGrbEditor.py:1116 AppEditors/FlatCAMGrbEditor.py:1131 +#: flatcamEditors/FlatCAMGrbEditor.py:1127 +#: flatcamEditors/FlatCAMGrbEditor.py:1142 msgid "Corner Mode 5: Free angle ..." msgstr "Угловой режим 5: свободный угол ..." -#: AppEditors/FlatCAMGrbEditor.py:1193 AppEditors/FlatCAMGrbEditor.py:1358 -#: AppEditors/FlatCAMGrbEditor.py:1397 +#: flatcamEditors/FlatCAMGrbEditor.py:1184 +#: flatcamEditors/FlatCAMGrbEditor.py:1360 +#: flatcamEditors/FlatCAMGrbEditor.py:1399 msgid "Track Mode 1: 45 degrees ..." msgstr "Режим дорожки 1: 45 градусов ..." -#: AppEditors/FlatCAMGrbEditor.py:1338 AppEditors/FlatCAMGrbEditor.py:1392 +#: flatcamEditors/FlatCAMGrbEditor.py:1340 +#: flatcamEditors/FlatCAMGrbEditor.py:1394 msgid "Track Mode 2: Reverse 45 degrees ..." msgstr "Режим дорожки 2: реверс 45 градусов ..." -#: AppEditors/FlatCAMGrbEditor.py:1343 AppEditors/FlatCAMGrbEditor.py:1387 +#: flatcamEditors/FlatCAMGrbEditor.py:1345 +#: flatcamEditors/FlatCAMGrbEditor.py:1389 msgid "Track Mode 3: 90 degrees ..." msgstr "Режим дорожки 3: 90 градусов ..." -#: AppEditors/FlatCAMGrbEditor.py:1348 AppEditors/FlatCAMGrbEditor.py:1382 +#: flatcamEditors/FlatCAMGrbEditor.py:1350 +#: flatcamEditors/FlatCAMGrbEditor.py:1384 msgid "Track Mode 4: Reverse 90 degrees ..." msgstr "Режим дорожки 4: реверс 90 градусов ..." -#: AppEditors/FlatCAMGrbEditor.py:1353 AppEditors/FlatCAMGrbEditor.py:1377 +#: flatcamEditors/FlatCAMGrbEditor.py:1355 +#: flatcamEditors/FlatCAMGrbEditor.py:1379 msgid "Track Mode 5: Free angle ..." msgstr "Режим дорожки 5: свободный угол ..." -#: AppEditors/FlatCAMGrbEditor.py:1787 +#: flatcamEditors/FlatCAMGrbEditor.py:1780 msgid "Scale the selected Gerber apertures ..." msgstr "Масштабирование выбранных отверстий Gerber ..." -#: AppEditors/FlatCAMGrbEditor.py:1829 +#: flatcamEditors/FlatCAMGrbEditor.py:1822 msgid "Buffer the selected apertures ..." msgstr "Создание буфера для выбранных отверстий ..." -#: AppEditors/FlatCAMGrbEditor.py:1871 +#: flatcamEditors/FlatCAMGrbEditor.py:1864 msgid "Mark polygon areas in the edited Gerber ..." msgstr "Отметьте полигональные области в отредактированном Gerber ..." -#: AppEditors/FlatCAMGrbEditor.py:1937 +#: flatcamEditors/FlatCAMGrbEditor.py:1930 msgid "Nothing selected to move" msgstr "Отменено. Ничего не выбрано для перемещения" -#: AppEditors/FlatCAMGrbEditor.py:2062 +#: flatcamEditors/FlatCAMGrbEditor.py:2055 msgid "Done. Apertures Move completed." msgstr "Готово. Перемещение отверстий завершено." -#: AppEditors/FlatCAMGrbEditor.py:2144 +#: flatcamEditors/FlatCAMGrbEditor.py:2137 msgid "Done. Apertures copied." msgstr "Готово. Отверстия скопированы." -#: AppEditors/FlatCAMGrbEditor.py:2462 AppGUI/MainGUI.py:1477 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:27 +#: flatcamEditors/FlatCAMGrbEditor.py:2455 flatcamGUI/FlatCAMGUI.py:2233 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:27 msgid "Gerber Editor" msgstr "Редактор Gerber" -#: AppEditors/FlatCAMGrbEditor.py:2482 AppGUI/ObjectUI.py:247 -#: AppTools/ToolProperties.py:159 +#: flatcamEditors/FlatCAMGrbEditor.py:2475 flatcamGUI/ObjectUI.py:228 +#: flatcamTools/ToolProperties.py:159 msgid "Apertures" msgstr "Oтверстие" -#: AppEditors/FlatCAMGrbEditor.py:2484 AppGUI/ObjectUI.py:249 +#: flatcamEditors/FlatCAMGrbEditor.py:2477 flatcamGUI/ObjectUI.py:230 msgid "Apertures Table for the Gerber Object." msgstr "Таблица отверстий для объекта Gerber." -#: AppEditors/FlatCAMGrbEditor.py:2495 AppEditors/FlatCAMGrbEditor.py:3952 -#: AppGUI/ObjectUI.py:282 +#: flatcamEditors/FlatCAMGrbEditor.py:2488 +#: flatcamEditors/FlatCAMGrbEditor.py:3969 flatcamGUI/ObjectUI.py:263 msgid "Code" msgstr "Код" -#: AppEditors/FlatCAMGrbEditor.py:2495 AppEditors/FlatCAMGrbEditor.py:3952 -#: AppGUI/ObjectUI.py:282 -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:103 -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:167 -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:196 -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:43 -#: AppTools/ToolCopperThieving.py:265 AppTools/ToolCopperThieving.py:305 -#: AppTools/ToolFiducials.py:159 +#: flatcamEditors/FlatCAMGrbEditor.py:2488 +#: flatcamEditors/FlatCAMGrbEditor.py:3969 flatcamGUI/ObjectUI.py:263 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:103 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:167 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:196 +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:43 +#: flatcamTools/ToolCopperThieving.py:261 +#: flatcamTools/ToolCopperThieving.py:301 flatcamTools/ToolFiducials.py:156 msgid "Size" msgstr "Размер" -#: AppEditors/FlatCAMGrbEditor.py:2495 AppEditors/FlatCAMGrbEditor.py:3952 -#: AppGUI/ObjectUI.py:282 +#: flatcamEditors/FlatCAMGrbEditor.py:2488 +#: flatcamEditors/FlatCAMGrbEditor.py:3969 flatcamGUI/ObjectUI.py:263 msgid "Dim" msgstr "Диаметр" -#: AppEditors/FlatCAMGrbEditor.py:2500 AppGUI/ObjectUI.py:286 +#: flatcamEditors/FlatCAMGrbEditor.py:2493 flatcamGUI/ObjectUI.py:267 msgid "Index" msgstr "Индекс" -#: AppEditors/FlatCAMGrbEditor.py:2502 AppEditors/FlatCAMGrbEditor.py:2531 -#: AppGUI/ObjectUI.py:288 +#: flatcamEditors/FlatCAMGrbEditor.py:2495 +#: flatcamEditors/FlatCAMGrbEditor.py:2524 flatcamGUI/ObjectUI.py:269 msgid "Aperture Code" msgstr "Код отверстия" -#: AppEditors/FlatCAMGrbEditor.py:2504 AppGUI/ObjectUI.py:290 +#: flatcamEditors/FlatCAMGrbEditor.py:2497 flatcamGUI/ObjectUI.py:271 msgid "Type of aperture: circular, rectangle, macros etc" msgstr "Тип отверстия: круг, прямоугольник, макросы и так далее" -#: AppEditors/FlatCAMGrbEditor.py:2506 AppGUI/ObjectUI.py:292 +#: flatcamEditors/FlatCAMGrbEditor.py:2499 flatcamGUI/ObjectUI.py:273 msgid "Aperture Size:" msgstr "Размер отверстия:" -#: AppEditors/FlatCAMGrbEditor.py:2508 AppGUI/ObjectUI.py:294 +#: flatcamEditors/FlatCAMGrbEditor.py:2501 flatcamGUI/ObjectUI.py:275 msgid "" "Aperture Dimensions:\n" " - (width, height) for R, O type.\n" @@ -2786,16 +4733,16 @@ msgstr "" " - (ширина, высота) для типа R, O.\n" " - (диам., nVertices) для типа P" -#: AppEditors/FlatCAMGrbEditor.py:2532 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:58 +#: flatcamEditors/FlatCAMGrbEditor.py:2525 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:58 msgid "Code for the new aperture" msgstr "Код для нового отверстия" -#: AppEditors/FlatCAMGrbEditor.py:2541 +#: flatcamEditors/FlatCAMGrbEditor.py:2534 msgid "Aperture Size" msgstr "Размер отверстия" -#: AppEditors/FlatCAMGrbEditor.py:2543 +#: flatcamEditors/FlatCAMGrbEditor.py:2536 msgid "" "Size for the new aperture.\n" "If aperture type is 'R' or 'O' then\n" @@ -2809,11 +4756,11 @@ msgstr "" "рассчитывается как:\n" "sqrt(ширина ** 2 + высота ** 2)" -#: AppEditors/FlatCAMGrbEditor.py:2557 +#: flatcamEditors/FlatCAMGrbEditor.py:2550 msgid "Aperture Type" msgstr "Тип отверстия" -#: AppEditors/FlatCAMGrbEditor.py:2559 +#: flatcamEditors/FlatCAMGrbEditor.py:2552 msgid "" "Select the type of new aperture. Can be:\n" "C = circular\n" @@ -2825,11 +4772,11 @@ msgstr "" "R = прямоугольник\n" "O = продолговатое" -#: AppEditors/FlatCAMGrbEditor.py:2570 +#: flatcamEditors/FlatCAMGrbEditor.py:2563 msgid "Aperture Dim" msgstr "Размер нового отверстия" -#: AppEditors/FlatCAMGrbEditor.py:2572 +#: flatcamEditors/FlatCAMGrbEditor.py:2565 msgid "" "Dimensions for the new aperture.\n" "Active only for rectangular apertures (type R).\n" @@ -2839,51 +4786,40 @@ msgstr "" "Активен только для прямоугольных отверстий (тип R).\n" "Формат (ширина, высота)" -#: AppEditors/FlatCAMGrbEditor.py:2581 +#: flatcamEditors/FlatCAMGrbEditor.py:2574 msgid "Add/Delete Aperture" msgstr "Добавить/Удалить отверстие" -#: AppEditors/FlatCAMGrbEditor.py:2583 +#: flatcamEditors/FlatCAMGrbEditor.py:2576 msgid "Add/Delete an aperture in the aperture table" msgstr "Добавляет/Удаляет отверстие в таблице отверстий" -#: AppEditors/FlatCAMGrbEditor.py:2592 +#: flatcamEditors/FlatCAMGrbEditor.py:2585 msgid "Add a new aperture to the aperture list." msgstr "Добавляет новое отверстие в список отверстий." -#: AppEditors/FlatCAMGrbEditor.py:2595 AppEditors/FlatCAMGrbEditor.py:2743 -#: AppGUI/MainGUI.py:748 AppGUI/MainGUI.py:1068 AppGUI/MainGUI.py:1527 -#: AppGUI/MainGUI.py:2099 AppGUI/MainGUI.py:4514 AppGUI/ObjectUI.py:1525 -#: AppObjects/FlatCAMGeometry.py:563 AppTools/ToolIsolation.py:298 -#: AppTools/ToolIsolation.py:616 AppTools/ToolNCC.py:316 -#: AppTools/ToolNCC.py:637 AppTools/ToolPaint.py:298 AppTools/ToolPaint.py:681 -#: AppTools/ToolSolderPaste.py:133 AppTools/ToolSolderPaste.py:608 -#: App_Main.py:5672 -msgid "Delete" -msgstr "Удалить" - -#: AppEditors/FlatCAMGrbEditor.py:2597 +#: flatcamEditors/FlatCAMGrbEditor.py:2590 msgid "Delete a aperture in the aperture list" msgstr "Удаляет отверстие в таблице отверстий" -#: AppEditors/FlatCAMGrbEditor.py:2614 +#: flatcamEditors/FlatCAMGrbEditor.py:2607 msgid "Buffer Aperture" msgstr "Буфер отверстия" -#: AppEditors/FlatCAMGrbEditor.py:2616 +#: flatcamEditors/FlatCAMGrbEditor.py:2609 msgid "Buffer a aperture in the aperture list" msgstr "Создаёт буфер для отверстия в списке отверстий" -#: AppEditors/FlatCAMGrbEditor.py:2629 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:195 +#: flatcamEditors/FlatCAMGrbEditor.py:2622 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:194 msgid "Buffer distance" msgstr "Расстояние буфера" -#: AppEditors/FlatCAMGrbEditor.py:2630 +#: flatcamEditors/FlatCAMGrbEditor.py:2623 msgid "Buffer corner" msgstr "Угол буфера" -#: AppEditors/FlatCAMGrbEditor.py:2632 +#: flatcamEditors/FlatCAMGrbEditor.py:2625 msgid "" "There are 3 types of corners:\n" " - 'Round': the corner is rounded.\n" @@ -2897,28 +4833,28 @@ msgstr "" "- 'Скошенный:' угол-это линия, которая непосредственно соединяет элементы, " "встречающиеся в углу" -#: AppEditors/FlatCAMGrbEditor.py:2647 AppGUI/MainGUI.py:1055 -#: AppGUI/MainGUI.py:1454 AppGUI/MainGUI.py:1497 AppGUI/MainGUI.py:2087 -#: AppGUI/MainGUI.py:4511 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:200 -#: AppTools/ToolTransform.py:29 +#: flatcamEditors/FlatCAMGrbEditor.py:2640 flatcamGUI/FlatCAMGUI.py:1061 +#: flatcamGUI/FlatCAMGUI.py:2138 flatcamGUI/FlatCAMGUI.py:2210 +#: flatcamGUI/FlatCAMGUI.py:2253 flatcamGUI/FlatCAMGUI.py:2765 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:200 +#: flatcamTools/ToolTransform.py:29 msgid "Buffer" msgstr "Буфер" -#: AppEditors/FlatCAMGrbEditor.py:2662 +#: flatcamEditors/FlatCAMGrbEditor.py:2655 msgid "Scale Aperture" msgstr "Масштабирование отверстий" -#: AppEditors/FlatCAMGrbEditor.py:2664 +#: flatcamEditors/FlatCAMGrbEditor.py:2657 msgid "Scale a aperture in the aperture list" msgstr "Масштабирование отверстия в списке отверстий" -#: AppEditors/FlatCAMGrbEditor.py:2672 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:210 +#: flatcamEditors/FlatCAMGrbEditor.py:2665 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:209 msgid "Scale factor" msgstr "Коэффициент масштабирования" -#: AppEditors/FlatCAMGrbEditor.py:2674 +#: flatcamEditors/FlatCAMGrbEditor.py:2667 msgid "" "The factor by which to scale the selected aperture.\n" "Values can be between 0.0000 and 999.9999" @@ -2926,19 +4862,19 @@ msgstr "" "Коэффициент масштабирования выбранного отверстия.\n" "Значения могут быть между 0.0000 и 999.9999" -#: AppEditors/FlatCAMGrbEditor.py:2702 +#: flatcamEditors/FlatCAMGrbEditor.py:2695 msgid "Mark polygons" msgstr "Отметить полигоны" -#: AppEditors/FlatCAMGrbEditor.py:2704 +#: flatcamEditors/FlatCAMGrbEditor.py:2697 msgid "Mark the polygon areas." msgstr "Отметьте полигональные области." -#: AppEditors/FlatCAMGrbEditor.py:2712 +#: flatcamEditors/FlatCAMGrbEditor.py:2705 msgid "Area UPPER threshold" msgstr "Верхней части порога" -#: AppEditors/FlatCAMGrbEditor.py:2714 +#: flatcamEditors/FlatCAMGrbEditor.py:2707 msgid "" "The threshold value, all areas less than this are marked.\n" "Can have a value between 0.0000 and 9999.9999" @@ -2946,11 +4882,11 @@ msgstr "" "Пороговое значение, всех участков за вычетом отмеченных.\n" "Может иметь значение от 0,0000 до 9999,9999" -#: AppEditors/FlatCAMGrbEditor.py:2721 +#: flatcamEditors/FlatCAMGrbEditor.py:2714 msgid "Area LOWER threshold" msgstr "Площадь НИЖНЕГО порога" -#: AppEditors/FlatCAMGrbEditor.py:2723 +#: flatcamEditors/FlatCAMGrbEditor.py:2716 msgid "" "The threshold value, all areas more than this are marked.\n" "Can have a value between 0.0000 and 9999.9999" @@ -2958,32 +4894,32 @@ msgstr "" "Пороговое значение, всех участков больше отмеченых.\n" "Может иметь значение от 0,0000 до 9999,9999" -#: AppEditors/FlatCAMGrbEditor.py:2737 +#: flatcamEditors/FlatCAMGrbEditor.py:2730 msgid "Mark" msgstr "Отметка" -#: AppEditors/FlatCAMGrbEditor.py:2739 +#: flatcamEditors/FlatCAMGrbEditor.py:2732 msgid "Mark the polygons that fit within limits." msgstr "Отмечает полигоны, которые вписываются в пределы." -#: AppEditors/FlatCAMGrbEditor.py:2745 +#: flatcamEditors/FlatCAMGrbEditor.py:2738 msgid "Delete all the marked polygons." msgstr "Удаление всех отмеченных полигонов." -#: AppEditors/FlatCAMGrbEditor.py:2751 +#: flatcamEditors/FlatCAMGrbEditor.py:2744 msgid "Clear all the markings." msgstr "Очистить все маркировки." -#: AppEditors/FlatCAMGrbEditor.py:2771 AppGUI/MainGUI.py:1040 -#: AppGUI/MainGUI.py:2072 AppGUI/MainGUI.py:4511 +#: flatcamEditors/FlatCAMGrbEditor.py:2764 flatcamGUI/FlatCAMGUI.py:1046 +#: flatcamGUI/FlatCAMGUI.py:2138 flatcamGUI/FlatCAMGUI.py:2750 msgid "Add Pad Array" msgstr "Добавить массив контактных площадок" -#: AppEditors/FlatCAMGrbEditor.py:2773 +#: flatcamEditors/FlatCAMGrbEditor.py:2766 msgid "Add an array of pads (linear or circular array)" msgstr "Добавляет массив контактных площадок (линейный или круговой массив)" -#: AppEditors/FlatCAMGrbEditor.py:2779 +#: flatcamEditors/FlatCAMGrbEditor.py:2772 msgid "" "Select the type of pads array to create.\n" "It can be Linear X(Y) or Circular" @@ -2991,17 +4927,17 @@ msgstr "" "Выбор типа массива контактных площадок.\n" "Он может быть линейным X (Y) или круговым" -#: AppEditors/FlatCAMGrbEditor.py:2790 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:95 +#: flatcamEditors/FlatCAMGrbEditor.py:2783 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:95 msgid "Nr of pads" msgstr "Количество площадок" -#: AppEditors/FlatCAMGrbEditor.py:2792 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:97 +#: flatcamEditors/FlatCAMGrbEditor.py:2785 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:97 msgid "Specify how many pads to be in the array." msgstr "Укажите, сколько контактных площадок должно быть в массиве." -#: AppEditors/FlatCAMGrbEditor.py:2841 +#: flatcamEditors/FlatCAMGrbEditor.py:2834 msgid "" "Angle at which the linear array is placed.\n" "The precision is of max 2 decimals.\n" @@ -3013,13 +4949,14 @@ msgstr "" "Минимальное значение: -359.99 градусов.\n" "Максимальное значение: 360.00 градусов." -#: AppEditors/FlatCAMGrbEditor.py:3335 AppEditors/FlatCAMGrbEditor.py:3339 +#: flatcamEditors/FlatCAMGrbEditor.py:3328 +#: flatcamEditors/FlatCAMGrbEditor.py:3332 msgid "Aperture code value is missing or wrong format. Add it and retry." msgstr "" "Отсутствует значение кода отверстия или оно имеет неправильный формат. " "Добавьте его и повторите попытку." -#: AppEditors/FlatCAMGrbEditor.py:3375 +#: flatcamEditors/FlatCAMGrbEditor.py:3368 msgid "" "Aperture dimensions value is missing or wrong format. Add it in format " "(width, height) and retry." @@ -3027,216 +4964,196 @@ msgstr "" "Отсутствует значение размера отверстия или оно имеет неправильный формат. " "Добавьте его в формате (ширина, высота) и повторите попытку." -#: AppEditors/FlatCAMGrbEditor.py:3388 +#: flatcamEditors/FlatCAMGrbEditor.py:3381 msgid "Aperture size value is missing or wrong format. Add it and retry." msgstr "" "Отсутствует значение размера отверстия или оно имеет неправильный формат. " "Добавьте его и повторите попытку." -#: AppEditors/FlatCAMGrbEditor.py:3399 +#: flatcamEditors/FlatCAMGrbEditor.py:3392 msgid "Aperture already in the aperture table." msgstr "Отверстие уже присутствует в таблице отверстий." -#: AppEditors/FlatCAMGrbEditor.py:3406 +#: flatcamEditors/FlatCAMGrbEditor.py:3399 msgid "Added new aperture with code" msgstr "Добавлено новое отверстие с кодом" -#: AppEditors/FlatCAMGrbEditor.py:3438 +#: flatcamEditors/FlatCAMGrbEditor.py:3431 msgid " Select an aperture in Aperture Table" msgstr " Выберите отверстие в таблице отверстий" -#: AppEditors/FlatCAMGrbEditor.py:3446 +#: flatcamEditors/FlatCAMGrbEditor.py:3439 msgid "Select an aperture in Aperture Table -->" msgstr "Выберите отверстие в таблице отверстий-->" -#: AppEditors/FlatCAMGrbEditor.py:3460 +#: flatcamEditors/FlatCAMGrbEditor.py:3453 msgid "Deleted aperture with code" msgstr "Удалено отверстие с кодом" -#: AppEditors/FlatCAMGrbEditor.py:3528 +#: flatcamEditors/FlatCAMGrbEditor.py:3521 msgid "Dimensions need two float values separated by comma." msgstr "" "Размеры должны иметь два значения с плавающей запятой, разделенные запятой." -#: AppEditors/FlatCAMGrbEditor.py:3537 +#: flatcamEditors/FlatCAMGrbEditor.py:3530 msgid "Dimensions edited." msgstr "Размеры отредактированы." -#: AppEditors/FlatCAMGrbEditor.py:4067 +#: flatcamEditors/FlatCAMGrbEditor.py:4084 msgid "Loading Gerber into Editor" msgstr "Загрузка Gerber в редактор" -#: AppEditors/FlatCAMGrbEditor.py:4195 +#: flatcamEditors/FlatCAMGrbEditor.py:4212 msgid "Setting up the UI" msgstr "Настройка пользовательского интерфейса" -#: AppEditors/FlatCAMGrbEditor.py:4196 -#, fuzzy -#| msgid "Adding geometry finished. Preparing the GUI" -msgid "Adding geometry finished. Preparing the AppGUI" +#: flatcamEditors/FlatCAMGrbEditor.py:4213 +msgid "Adding geometry finished. Preparing the GUI" msgstr "" "Добавление геометрии закончено. Подготовка графического интерфейса " "пользователя" -#: AppEditors/FlatCAMGrbEditor.py:4205 +#: flatcamEditors/FlatCAMGrbEditor.py:4222 msgid "Finished loading the Gerber object into the editor." msgstr "Завершена загрузка объекта Gerber в редактор." -#: AppEditors/FlatCAMGrbEditor.py:4346 +#: flatcamEditors/FlatCAMGrbEditor.py:4361 msgid "" "There are no Aperture definitions in the file. Aborting Gerber creation." msgstr "В файле нет отверстий. Прерывание создания Gerber." -#: AppEditors/FlatCAMGrbEditor.py:4348 AppObjects/AppObject.py:133 -#: AppObjects/FlatCAMGeometry.py:1786 AppParsers/ParseExcellon.py:896 -#: AppTools/ToolPcbWizard.py:432 App_Main.py:8465 App_Main.py:8529 -#: App_Main.py:8660 App_Main.py:8725 App_Main.py:9377 -msgid "An internal error has occurred. See shell.\n" -msgstr "Произошла внутренняя ошибка. Смотрите командную строку.\n" - -#: AppEditors/FlatCAMGrbEditor.py:4356 +#: flatcamEditors/FlatCAMGrbEditor.py:4371 msgid "Creating Gerber." msgstr "Создание Gerber." -#: AppEditors/FlatCAMGrbEditor.py:4368 +#: flatcamEditors/FlatCAMGrbEditor.py:4380 msgid "Done. Gerber editing finished." msgstr "Редактирование Gerber завершено." -#: AppEditors/FlatCAMGrbEditor.py:4384 +#: flatcamEditors/FlatCAMGrbEditor.py:4398 msgid "Cancelled. No aperture is selected" msgstr "Отмена. Нет выбранных отверстий" -#: AppEditors/FlatCAMGrbEditor.py:4539 App_Main.py:5998 -msgid "Coordinates copied to clipboard." -msgstr "Координаты скопированы в буфер обмена." - -#: AppEditors/FlatCAMGrbEditor.py:4986 +#: flatcamEditors/FlatCAMGrbEditor.py:4992 msgid "Failed. No aperture geometry is selected." msgstr "Ошибка. Не выбрана геометрия отверстий." -#: AppEditors/FlatCAMGrbEditor.py:4995 AppEditors/FlatCAMGrbEditor.py:5266 +#: flatcamEditors/FlatCAMGrbEditor.py:5001 +#: flatcamEditors/FlatCAMGrbEditor.py:5272 msgid "Done. Apertures geometry deleted." msgstr "Готово. Геометрия отверстий удалена." -#: AppEditors/FlatCAMGrbEditor.py:5138 +#: flatcamEditors/FlatCAMGrbEditor.py:5144 msgid "No aperture to buffer. Select at least one aperture and try again." msgstr "" "Нет отверстий для создания буфера. Выберите хотя бы одно отверстие и " "повторите попытку." -#: AppEditors/FlatCAMGrbEditor.py:5150 +#: flatcamEditors/FlatCAMGrbEditor.py:5156 msgid "Failed." msgstr "Неудачно." -#: AppEditors/FlatCAMGrbEditor.py:5169 +#: flatcamEditors/FlatCAMGrbEditor.py:5175 msgid "Scale factor value is missing or wrong format. Add it and retry." msgstr "" "Отсутствует значение коэффициента масштабирования или оно имеет неправильный " "формат. Добавьте его и повторите попытку." -#: AppEditors/FlatCAMGrbEditor.py:5201 +#: flatcamEditors/FlatCAMGrbEditor.py:5207 msgid "No aperture to scale. Select at least one aperture and try again." msgstr "" "Нет отверстий для масштабирования. Выберите хотя бы одно отверстие и " "повторите попытку." -#: AppEditors/FlatCAMGrbEditor.py:5217 +#: flatcamEditors/FlatCAMGrbEditor.py:5223 msgid "Done. Scale Tool completed." msgstr "Готово. Масштабирование выполнено." -#: AppEditors/FlatCAMGrbEditor.py:5255 +#: flatcamEditors/FlatCAMGrbEditor.py:5261 msgid "Polygons marked." msgstr "Полигонов отмечено." -#: AppEditors/FlatCAMGrbEditor.py:5258 +#: flatcamEditors/FlatCAMGrbEditor.py:5264 msgid "No polygons were marked. None fit within the limits." msgstr "Полигоны не были отмечены. Ни один не укладывается в пределы." -#: AppEditors/FlatCAMGrbEditor.py:5982 +#: flatcamEditors/FlatCAMGrbEditor.py:5988 msgid "Rotation action was not executed." msgstr "Вращение не было выполнено." -#: AppEditors/FlatCAMGrbEditor.py:6053 App_Main.py:5432 App_Main.py:5480 -msgid "Flip action was not executed." -msgstr "Операция переворота не была выполнена." - -#: AppEditors/FlatCAMGrbEditor.py:6110 +#: flatcamEditors/FlatCAMGrbEditor.py:6116 msgid "Skew action was not executed." msgstr "Наклон не был выполнен." -#: AppEditors/FlatCAMGrbEditor.py:6175 +#: flatcamEditors/FlatCAMGrbEditor.py:6181 msgid "Scale action was not executed." msgstr "Операция масштабирования не была выполнена." -#: AppEditors/FlatCAMGrbEditor.py:6218 +#: flatcamEditors/FlatCAMGrbEditor.py:6224 msgid "Offset action was not executed." msgstr "Операция смещения не была выполнена." -#: AppEditors/FlatCAMGrbEditor.py:6268 +#: flatcamEditors/FlatCAMGrbEditor.py:6274 msgid "Geometry shape offset Y cancelled" msgstr "Смещение формы по оси Y отменено" -#: AppEditors/FlatCAMGrbEditor.py:6283 +#: flatcamEditors/FlatCAMGrbEditor.py:6289 msgid "Geometry shape skew X cancelled" msgstr "Наклон формы по оси X отменён" -#: AppEditors/FlatCAMGrbEditor.py:6298 +#: flatcamEditors/FlatCAMGrbEditor.py:6304 msgid "Geometry shape skew Y cancelled" msgstr "Наклон формы по оси Y отменён" -#: AppEditors/FlatCAMTextEditor.py:74 +#: flatcamEditors/FlatCAMTextEditor.py:74 msgid "Print Preview" msgstr "Предпросмотр печати" -#: AppEditors/FlatCAMTextEditor.py:75 +#: flatcamEditors/FlatCAMTextEditor.py:75 msgid "Open a OS standard Preview Print window." msgstr "Откроет стандартное окно предварительного просмотра печати ОС." -#: AppEditors/FlatCAMTextEditor.py:78 +#: flatcamEditors/FlatCAMTextEditor.py:78 msgid "Print Code" msgstr "Печать кода" -#: AppEditors/FlatCAMTextEditor.py:79 +#: flatcamEditors/FlatCAMTextEditor.py:79 msgid "Open a OS standard Print window." msgstr "Откроет стандартное окно печати ОС." -#: AppEditors/FlatCAMTextEditor.py:81 +#: flatcamEditors/FlatCAMTextEditor.py:81 msgid "Find in Code" msgstr "Найти в коде" -#: AppEditors/FlatCAMTextEditor.py:82 +#: flatcamEditors/FlatCAMTextEditor.py:82 msgid "Will search and highlight in yellow the string in the Find box." msgstr "Будет искать и выделять желтым цветом строку в поле поиска." -#: AppEditors/FlatCAMTextEditor.py:86 +#: flatcamEditors/FlatCAMTextEditor.py:86 msgid "Find box. Enter here the strings to be searched in the text." msgstr "Поле поиска. Введите здесь строки для поиска в тексте." -#: AppEditors/FlatCAMTextEditor.py:88 +#: flatcamEditors/FlatCAMTextEditor.py:88 msgid "Replace With" msgstr "Заменить" -#: AppEditors/FlatCAMTextEditor.py:89 +#: flatcamEditors/FlatCAMTextEditor.py:89 msgid "" "Will replace the string from the Find box with the one in the Replace box." msgstr "Заменяет строку из поля «Найти» на строку в поле «Заменить»." -#: AppEditors/FlatCAMTextEditor.py:93 +#: flatcamEditors/FlatCAMTextEditor.py:93 msgid "String to replace the one in the Find box throughout the text." msgstr "Строка, заменяющая строку в поле поиска по всему тексту." -#: AppEditors/FlatCAMTextEditor.py:95 AppGUI/ObjectUI.py:2149 -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:54 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:285 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280 -#: AppTools/ToolIsolation.py:504 AppTools/ToolIsolation.py:1287 -#: AppTools/ToolIsolation.py:1669 AppTools/ToolPaint.py:485 -#: AppTools/ToolPaint.py:1446 defaults.py:403 defaults.py:446 -#: tclCommands/TclCommandPaint.py:162 +#: flatcamEditors/FlatCAMTextEditor.py:95 flatcamGUI/ObjectUI.py:486 +#: flatcamGUI/ObjectUI.py:2219 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:54 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:88 msgid "All" msgstr "Все" -#: AppEditors/FlatCAMTextEditor.py:96 +#: flatcamEditors/FlatCAMTextEditor.py:96 msgid "" "When checked it will replace all instances in the 'Find' box\n" "with the text in the 'Replace' box.." @@ -3244,134 +5161,184 @@ msgstr "" "При установке флажка он заменит все экземпляры в поле \"Найти\"\n" "с текстом в поле \"заменить\".." -#: AppEditors/FlatCAMTextEditor.py:99 +#: flatcamEditors/FlatCAMTextEditor.py:99 msgid "Copy All" msgstr "Копировать все" -#: AppEditors/FlatCAMTextEditor.py:100 +#: flatcamEditors/FlatCAMTextEditor.py:100 msgid "Will copy all the text in the Code Editor to the clipboard." msgstr "Скопирует весь текст в редакторе кода в буфер обмена." -#: AppEditors/FlatCAMTextEditor.py:103 +#: flatcamEditors/FlatCAMTextEditor.py:103 msgid "Open Code" msgstr "Открыть файл" -#: AppEditors/FlatCAMTextEditor.py:104 +#: flatcamEditors/FlatCAMTextEditor.py:104 msgid "Will open a text file in the editor." msgstr "Откроется текстовый файл в редакторе." -#: AppEditors/FlatCAMTextEditor.py:106 +#: flatcamEditors/FlatCAMTextEditor.py:106 msgid "Save Code" msgstr "Сохранить код" -#: AppEditors/FlatCAMTextEditor.py:107 +#: flatcamEditors/FlatCAMTextEditor.py:107 msgid "Will save the text in the editor into a file." msgstr "Сохранит текст в редакторе в файл." -#: AppEditors/FlatCAMTextEditor.py:109 +#: flatcamEditors/FlatCAMTextEditor.py:109 msgid "Run Code" msgstr "Выполнить код" -#: AppEditors/FlatCAMTextEditor.py:110 +#: flatcamEditors/FlatCAMTextEditor.py:110 msgid "Will run the TCL commands found in the text file, one by one." msgstr "" "Будут запускаться команды TCL, найденные в текстовом файле, одна за другой." -#: AppEditors/FlatCAMTextEditor.py:184 +#: flatcamEditors/FlatCAMTextEditor.py:184 msgid "Open file" msgstr "Открыть файл" -#: AppEditors/FlatCAMTextEditor.py:215 AppEditors/FlatCAMTextEditor.py:220 -#: AppObjects/FlatCAMCNCJob.py:507 AppObjects/FlatCAMCNCJob.py:512 -#: AppTools/ToolSolderPaste.py:1508 +#: flatcamEditors/FlatCAMTextEditor.py:215 +#: flatcamEditors/FlatCAMTextEditor.py:220 msgid "Export Code ..." msgstr "Экспорт кода ..." -#: AppEditors/FlatCAMTextEditor.py:272 AppObjects/FlatCAMCNCJob.py:955 -#: AppTools/ToolSolderPaste.py:1538 +#: flatcamEditors/FlatCAMTextEditor.py:272 flatcamObjects/FlatCAMCNCJob.py:955 +#: flatcamTools/ToolSolderPaste.py:1530 msgid "No such file or directory" msgstr "Нет такого файла или каталога" -#: AppEditors/FlatCAMTextEditor.py:284 AppObjects/FlatCAMCNCJob.py:969 +#: flatcamEditors/FlatCAMTextEditor.py:284 flatcamObjects/FlatCAMCNCJob.py:969 msgid "Saved to" msgstr "Сохранено в" -#: AppEditors/FlatCAMTextEditor.py:334 +#: flatcamEditors/FlatCAMTextEditor.py:334 msgid "Code Editor content copied to clipboard ..." msgstr "Содержимое редактора кода скопировано в буфер обмена ..." -#: AppGUI/GUIElements.py:2690 -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:169 -#: AppTools/ToolDblSided.py:173 AppTools/ToolDblSided.py:388 -#: AppTools/ToolFilm.py:202 -msgid "Reference" -msgstr "Ссылка" +#: flatcamGUI/FlatCAMGUI.py:78 flatcamGUI/FlatCAMGUI.py:80 +#: flatcamGUI/FlatCAMGUI.py:2163 +msgid "Toggle Panel" +msgstr "Переключить бок. панель" -#: AppGUI/GUIElements.py:2692 -msgid "" -"The reference can be:\n" -"- Absolute -> the reference point is point (0,0)\n" -"- Relative -> the reference point is the mouse position before Jump" -msgstr "" -"Указатель может быть:\n" -"- Абсолютный -> точка отсчета - это точка (0,0)\n" -"- Относительный -> опорной точкой является положение мыши перед перемещением" +#: flatcamGUI/FlatCAMGUI.py:90 +msgid "File" +msgstr "Файл" -#: AppGUI/GUIElements.py:2697 -msgid "Abs" -msgstr "Абс" +#: flatcamGUI/FlatCAMGUI.py:95 +msgid "&New Project ...\tCtrl+N" +msgstr "&Новый проект ...\tCtrl+N" -#: AppGUI/GUIElements.py:2698 -msgid "Relative" -msgstr "Относительный" +#: flatcamGUI/FlatCAMGUI.py:97 +msgid "Will create a new, blank project" +msgstr "Создаёт новый пустой проект" -#: AppGUI/GUIElements.py:2708 -msgid "Location" -msgstr "Местоположение" +#: flatcamGUI/FlatCAMGUI.py:102 +msgid "&New" +msgstr "&Создать" -#: AppGUI/GUIElements.py:2710 -msgid "" -"The Location value is a tuple (x,y).\n" -"If the reference is Absolute then the Jump will be at the position (x,y).\n" -"If the reference is Relative then the Jump will be at the (x,y) distance\n" -"from the current mouse location point." -msgstr "" -"Значение местоположения - это кортеж (x, y).\n" -"Если задание является абсолютным, то переход будет в положении (x, y).\n" -"Если ссылка является относительной, то переход будет на расстоянии (x, y)\n" -"от текущей точки расположения мыши." +#: flatcamGUI/FlatCAMGUI.py:106 +msgid "Geometry\tN" +msgstr "Geometry\tN" -#: AppGUI/GUIElements.py:2750 -msgid "Save Log" -msgstr "Сохранить журнал" +#: flatcamGUI/FlatCAMGUI.py:108 +msgid "Will create a new, empty Geometry Object." +msgstr "Создаёт новый объект Geometry." -#: AppGUI/GUIElements.py:2760 App_Main.py:2679 App_Main.py:2988 -#: App_Main.py:3122 -msgid "Close" -msgstr "Закрыть" +#: flatcamGUI/FlatCAMGUI.py:111 +msgid "Gerber\tB" +msgstr "Gerber\tB" -#: AppGUI/GUIElements.py:2769 AppTools/ToolShell.py:296 -msgid "Type >help< to get started" -msgstr "Введите >help< для начала работы" +#: flatcamGUI/FlatCAMGUI.py:113 +msgid "Will create a new, empty Gerber Object." +msgstr "Создаёт новый объект Gerber." -#: AppGUI/GUIElements.py:3159 AppGUI/GUIElements.py:3168 -msgid "Idle." -msgstr "Нет заданий." +#: flatcamGUI/FlatCAMGUI.py:116 +msgid "Excellon\tL" +msgstr "Excellon\tL" -#: AppGUI/GUIElements.py:3201 -msgid "Application started ..." -msgstr "Приложение запущено ..." +#: flatcamGUI/FlatCAMGUI.py:118 +msgid "Will create a new, empty Excellon Object." +msgstr "Создаёт новый объект Excellon." -#: AppGUI/GUIElements.py:3202 -msgid "Hello!" -msgstr "Приветствую!" +#: flatcamGUI/FlatCAMGUI.py:123 +msgid "Document\tD" +msgstr "Document\tD" -#: AppGUI/GUIElements.py:3249 AppGUI/MainGUI.py:190 AppGUI/MainGUI.py:895 -#: AppGUI/MainGUI.py:1927 +#: flatcamGUI/FlatCAMGUI.py:125 +msgid "Will create a new, empty Document Object." +msgstr "Создаёт новый объект Document." + +#: flatcamGUI/FlatCAMGUI.py:129 flatcamGUI/FlatCAMGUI.py:4420 +#: flatcamTools/ToolPcbWizard.py:62 flatcamTools/ToolPcbWizard.py:69 +msgid "Open" +msgstr "Открыть" + +#: flatcamGUI/FlatCAMGUI.py:134 +msgid "Open &Project ..." +msgstr "Открыть &проект..." + +#: flatcamGUI/FlatCAMGUI.py:140 flatcamGUI/FlatCAMGUI.py:4430 +msgid "Open &Gerber ...\tCtrl+G" +msgstr "Открыть &Gerber...\tCtrl+G" + +#: flatcamGUI/FlatCAMGUI.py:145 flatcamGUI/FlatCAMGUI.py:4435 +msgid "Open &Excellon ...\tCtrl+E" +msgstr "Открыть &Excellon ...\tCtrl+E" + +#: flatcamGUI/FlatCAMGUI.py:150 flatcamGUI/FlatCAMGUI.py:4440 +msgid "Open G-&Code ..." +msgstr "Открыть G-&Code ..." + +#: flatcamGUI/FlatCAMGUI.py:157 +msgid "Open Config ..." +msgstr "Открыть конфигурацию ..." + +#: flatcamGUI/FlatCAMGUI.py:162 +msgid "Recent projects" +msgstr "Недавние проекты" + +#: flatcamGUI/FlatCAMGUI.py:164 +msgid "Recent files" +msgstr "Открыть недавние" + +#: flatcamGUI/FlatCAMGUI.py:167 flatcamGUI/FlatCAMGUI.py:753 +#: flatcamGUI/FlatCAMGUI.py:1339 +msgid "Save" +msgstr "Сохранить" + +#: flatcamGUI/FlatCAMGUI.py:171 +msgid "&Save Project ...\tCtrl+S" +msgstr "&Сохранить проект ...\tCTRL+S" + +#: flatcamGUI/FlatCAMGUI.py:176 +msgid "Save Project &As ...\tCtrl+Shift+S" +msgstr "Сохранить проект &как ...\tCtrl+Shift+S" + +#: flatcamGUI/FlatCAMGUI.py:191 +msgid "Scripting" +msgstr "Сценарии" + +#: flatcamGUI/FlatCAMGUI.py:195 flatcamGUI/FlatCAMGUI.py:903 +#: flatcamGUI/FlatCAMGUI.py:2607 +msgid "New Script ..." +msgstr "Новый сценарий ..." + +#: flatcamGUI/FlatCAMGUI.py:197 flatcamGUI/FlatCAMGUI.py:905 +#: flatcamGUI/FlatCAMGUI.py:2609 +msgid "Open Script ..." +msgstr "Открыть сценарий ..." + +#: flatcamGUI/FlatCAMGUI.py:199 +msgid "Open Example ..." +msgstr "Открыть пример ..." + +#: flatcamGUI/FlatCAMGUI.py:201 flatcamGUI/FlatCAMGUI.py:907 +#: flatcamGUI/FlatCAMGUI.py:2611 flatcamGUI/FlatCAMGUI.py:4409 msgid "Run Script ..." msgstr "Выполнить сценарий ..." -#: AppGUI/GUIElements.py:3251 AppGUI/MainGUI.py:192 +#: flatcamGUI/FlatCAMGUI.py:203 flatcamGUI/FlatCAMGUI.py:4411 msgid "" "Will run the opened Tcl Script thus\n" "enabling the automation of certain\n" @@ -3381,168 +5348,47 @@ msgstr "" "включающий автоматизацию некоторых\n" "функций FlatCAM." -#: AppGUI/GUIElements.py:3260 AppGUI/MainGUI.py:118 -#: AppTools/ToolPcbWizard.py:62 AppTools/ToolPcbWizard.py:69 -msgid "Open" -msgstr "Открыть" - -#: AppGUI/GUIElements.py:3264 -msgid "Open Project ..." -msgstr "Открыть проект..." - -#: AppGUI/GUIElements.py:3270 AppGUI/MainGUI.py:129 -msgid "Open &Gerber ...\tCtrl+G" -msgstr "Открыть &Gerber...\tCtrl+G" - -#: AppGUI/GUIElements.py:3275 AppGUI/MainGUI.py:134 -msgid "Open &Excellon ...\tCtrl+E" -msgstr "Открыть &Excellon ...\tCtrl+E" - -#: AppGUI/GUIElements.py:3280 AppGUI/MainGUI.py:139 -msgid "Open G-&Code ..." -msgstr "Открыть G-&Code ..." - -#: AppGUI/GUIElements.py:3290 -msgid "Exit" -msgstr "Выход" - -#: AppGUI/MainGUI.py:67 AppGUI/MainGUI.py:69 AppGUI/MainGUI.py:1407 -msgid "Toggle Panel" -msgstr "Переключить бок. панель" - -#: AppGUI/MainGUI.py:79 -msgid "File" -msgstr "Файл" - -#: AppGUI/MainGUI.py:84 -msgid "&New Project ...\tCtrl+N" -msgstr "&Новый проект ...\tCtrl+N" - -#: AppGUI/MainGUI.py:86 -msgid "Will create a new, blank project" -msgstr "Создаёт новый пустой проект" - -#: AppGUI/MainGUI.py:91 -msgid "&New" -msgstr "&Создать" - -#: AppGUI/MainGUI.py:95 -msgid "Geometry\tN" -msgstr "Geometry\tN" - -#: AppGUI/MainGUI.py:97 -msgid "Will create a new, empty Geometry Object." -msgstr "Создаёт новый объект Geometry." - -#: AppGUI/MainGUI.py:100 -msgid "Gerber\tB" -msgstr "Gerber\tB" - -#: AppGUI/MainGUI.py:102 -msgid "Will create a new, empty Gerber Object." -msgstr "Создаёт новый объект Gerber." - -#: AppGUI/MainGUI.py:105 -msgid "Excellon\tL" -msgstr "Excellon\tL" - -#: AppGUI/MainGUI.py:107 -msgid "Will create a new, empty Excellon Object." -msgstr "Создаёт новый объект Excellon." - -#: AppGUI/MainGUI.py:112 -msgid "Document\tD" -msgstr "Document\tD" - -#: AppGUI/MainGUI.py:114 -msgid "Will create a new, empty Document Object." -msgstr "Создаёт новый объект Document." - -#: AppGUI/MainGUI.py:123 -msgid "Open &Project ..." -msgstr "Открыть &проект..." - -#: AppGUI/MainGUI.py:146 -msgid "Open Config ..." -msgstr "Открыть конфигурацию ..." - -#: AppGUI/MainGUI.py:151 -msgid "Recent projects" -msgstr "Недавние проекты" - -#: AppGUI/MainGUI.py:153 -msgid "Recent files" -msgstr "Открыть недавние" - -#: AppGUI/MainGUI.py:156 AppGUI/MainGUI.py:750 AppGUI/MainGUI.py:1380 -msgid "Save" -msgstr "Сохранить" - -#: AppGUI/MainGUI.py:160 -msgid "&Save Project ...\tCtrl+S" -msgstr "&Сохранить проект ...\tCTRL+S" - -#: AppGUI/MainGUI.py:165 -msgid "Save Project &As ...\tCtrl+Shift+S" -msgstr "Сохранить проект &как ...\tCtrl+Shift+S" - -#: AppGUI/MainGUI.py:180 -msgid "Scripting" -msgstr "Сценарии" - -#: AppGUI/MainGUI.py:184 AppGUI/MainGUI.py:891 AppGUI/MainGUI.py:1923 -msgid "New Script ..." -msgstr "Новый сценарий ..." - -#: AppGUI/MainGUI.py:186 AppGUI/MainGUI.py:893 AppGUI/MainGUI.py:1925 -msgid "Open Script ..." -msgstr "Открыть сценарий ..." - -#: AppGUI/MainGUI.py:188 -msgid "Open Example ..." -msgstr "Открыть пример ..." - -#: AppGUI/MainGUI.py:207 +#: flatcamGUI/FlatCAMGUI.py:218 msgid "Import" msgstr "Импорт" -#: AppGUI/MainGUI.py:209 +#: flatcamGUI/FlatCAMGUI.py:220 msgid "&SVG as Geometry Object ..." msgstr "&SVG как объект Geometry ..." -#: AppGUI/MainGUI.py:212 +#: flatcamGUI/FlatCAMGUI.py:223 msgid "&SVG as Gerber Object ..." msgstr "&SVG как объект Gerber ..." -#: AppGUI/MainGUI.py:217 +#: flatcamGUI/FlatCAMGUI.py:228 msgid "&DXF as Geometry Object ..." msgstr "&DXF как объект Geometry ..." -#: AppGUI/MainGUI.py:220 +#: flatcamGUI/FlatCAMGUI.py:231 msgid "&DXF as Gerber Object ..." msgstr "&DXF как объект Gerber ..." -#: AppGUI/MainGUI.py:224 +#: flatcamGUI/FlatCAMGUI.py:235 msgid "HPGL2 as Geometry Object ..." msgstr "HPGL2 как объект геометрии ..." -#: AppGUI/MainGUI.py:230 +#: flatcamGUI/FlatCAMGUI.py:241 msgid "Export" msgstr "Экспорт" -#: AppGUI/MainGUI.py:234 +#: flatcamGUI/FlatCAMGUI.py:245 msgid "Export &SVG ..." msgstr "Экспорт &SVG ..." -#: AppGUI/MainGUI.py:238 +#: flatcamGUI/FlatCAMGUI.py:249 msgid "Export DXF ..." msgstr "Экспорт DXF ..." -#: AppGUI/MainGUI.py:244 +#: flatcamGUI/FlatCAMGUI.py:255 msgid "Export &PNG ..." msgstr "Экспорт &PNG ..." -#: AppGUI/MainGUI.py:246 +#: flatcamGUI/FlatCAMGUI.py:257 msgid "" "Will export an image in PNG format,\n" "the saved image will contain the visual \n" @@ -3552,11 +5398,11 @@ msgstr "" "сохраненное изображение будет содержать визуальную\n" "информацию, открытую в настоящее время в пространстве отрисовки FlatCAM." -#: AppGUI/MainGUI.py:255 +#: flatcamGUI/FlatCAMGUI.py:266 msgid "Export &Excellon ..." msgstr "Экспорт &Excellon ..." -#: AppGUI/MainGUI.py:257 +#: flatcamGUI/FlatCAMGUI.py:268 msgid "" "Will export an Excellon Object as Excellon file,\n" "the coordinates format, the file units and zeros\n" @@ -3566,11 +5412,11 @@ msgstr "" "формат координат, единицы измерения и нули\n" "устанавливаются в Настройки -> Экспорт Excellon." -#: AppGUI/MainGUI.py:264 +#: flatcamGUI/FlatCAMGUI.py:275 msgid "Export &Gerber ..." msgstr "Экспорт &Gerber ..." -#: AppGUI/MainGUI.py:266 +#: flatcamGUI/FlatCAMGUI.py:277 msgid "" "Will export an Gerber Object as Gerber file,\n" "the coordinates format, the file units and zeros\n" @@ -3580,51 +5426,53 @@ msgstr "" "формат координат, единицы измерения и нули\n" "устанавливается в Настройки -> Экспорт Gerber." -#: AppGUI/MainGUI.py:276 +#: flatcamGUI/FlatCAMGUI.py:287 msgid "Backup" msgstr "Резервное копирование" -#: AppGUI/MainGUI.py:281 +#: flatcamGUI/FlatCAMGUI.py:292 msgid "Import Preferences from file ..." msgstr "Импортировать настройки из файла ..." -#: AppGUI/MainGUI.py:287 +#: flatcamGUI/FlatCAMGUI.py:298 msgid "Export Preferences to file ..." msgstr "Экспортировать настройки в файл ..." -#: AppGUI/MainGUI.py:295 AppGUI/preferences/PreferencesUIManager.py:1119 +#: flatcamGUI/FlatCAMGUI.py:306 +#: flatcamGUI/preferences/PreferencesUIManager.py:1119 msgid "Save Preferences" msgstr "Сохранить настройки" -#: AppGUI/MainGUI.py:301 AppGUI/MainGUI.py:4101 +#: flatcamGUI/FlatCAMGUI.py:312 flatcamGUI/FlatCAMGUI.py:1730 msgid "Print (PDF)" msgstr "Печать (PDF)" -#: AppGUI/MainGUI.py:309 +#: flatcamGUI/FlatCAMGUI.py:320 msgid "E&xit" msgstr "В&ыход" -#: AppGUI/MainGUI.py:317 AppGUI/MainGUI.py:744 AppGUI/MainGUI.py:1529 +#: flatcamGUI/FlatCAMGUI.py:328 flatcamGUI/FlatCAMGUI.py:747 +#: flatcamGUI/FlatCAMGUI.py:2286 msgid "Edit" msgstr "Правка" -#: AppGUI/MainGUI.py:321 +#: flatcamGUI/FlatCAMGUI.py:332 msgid "Edit Object\tE" msgstr "Редактировать объект\tE" -#: AppGUI/MainGUI.py:323 +#: flatcamGUI/FlatCAMGUI.py:334 msgid "Close Editor\tCtrl+S" msgstr "Закрыть редактор\tCtrl+S" -#: AppGUI/MainGUI.py:332 +#: flatcamGUI/FlatCAMGUI.py:343 msgid "Conversion" msgstr "Конвертация" -#: AppGUI/MainGUI.py:334 +#: flatcamGUI/FlatCAMGUI.py:345 msgid "&Join Geo/Gerber/Exc -> Geo" msgstr "&Объединить Geo/Gerber/Exc - > Geo" -#: AppGUI/MainGUI.py:336 +#: flatcamGUI/FlatCAMGUI.py:347 msgid "" "Merge a selection of objects, which can be of type:\n" "- Gerber\n" @@ -3638,30 +5486,30 @@ msgstr "" "- Geometry\n" "в новый комбинированный объект геометрии." -#: AppGUI/MainGUI.py:343 +#: flatcamGUI/FlatCAMGUI.py:354 msgid "Join Excellon(s) -> Excellon" msgstr "Объединить Excellon (s) - > Excellon" -#: AppGUI/MainGUI.py:345 +#: flatcamGUI/FlatCAMGUI.py:356 msgid "Merge a selection of Excellon objects into a new combo Excellon object." msgstr "" "Объединяет выбранные объекты Excellon в новый комбинированный объект " "Excellon." -#: AppGUI/MainGUI.py:348 +#: flatcamGUI/FlatCAMGUI.py:359 msgid "Join Gerber(s) -> Gerber" msgstr "Объединить Gerber(s) - > Gerber" -#: AppGUI/MainGUI.py:350 +#: flatcamGUI/FlatCAMGUI.py:361 msgid "Merge a selection of Gerber objects into a new combo Gerber object." msgstr "" "Объединяет выбранные объекты Gerber в новый комбинированный объект Gerber." -#: AppGUI/MainGUI.py:355 +#: flatcamGUI/FlatCAMGUI.py:366 msgid "Convert Single to MultiGeo" msgstr "Преобразование Single в MultiGeo" -#: AppGUI/MainGUI.py:357 +#: flatcamGUI/FlatCAMGUI.py:368 msgid "" "Will convert a Geometry object from single_geometry type\n" "to a multi_geometry type." @@ -3669,11 +5517,11 @@ msgstr "" "Преобразует объект Geometry из типа single_geometry\n" "в multi_geometry.." -#: AppGUI/MainGUI.py:361 +#: flatcamGUI/FlatCAMGUI.py:372 msgid "Convert Multi to SingleGeo" msgstr "Преобразование Multi в SingleGeo" -#: AppGUI/MainGUI.py:363 +#: flatcamGUI/FlatCAMGUI.py:374 msgid "" "Will convert a Geometry object from multi_geometry type\n" "to a single_geometry type." @@ -3681,817 +5529,756 @@ msgstr "" "Преобразует объект Geometry из типа multi_geometry\n" "в single_geometry.." -#: AppGUI/MainGUI.py:370 +#: flatcamGUI/FlatCAMGUI.py:381 msgid "Convert Any to Geo" msgstr "Конвертировать любой объект в Geo" -#: AppGUI/MainGUI.py:373 +#: flatcamGUI/FlatCAMGUI.py:384 msgid "Convert Any to Gerber" msgstr "Конвертировать любой объект в Gerber" -#: AppGUI/MainGUI.py:379 +#: flatcamGUI/FlatCAMGUI.py:390 msgid "&Copy\tCtrl+C" msgstr "&Копировать\tCtrl+C" -#: AppGUI/MainGUI.py:384 +#: flatcamGUI/FlatCAMGUI.py:395 msgid "&Delete\tDEL" msgstr "&Удалить\tDEL" -#: AppGUI/MainGUI.py:389 +#: flatcamGUI/FlatCAMGUI.py:400 msgid "Se&t Origin\tO" msgstr "Ук&азать начало координат\tO" -#: AppGUI/MainGUI.py:391 +#: flatcamGUI/FlatCAMGUI.py:402 msgid "Move to Origin\tShift+O" msgstr "Перейти к началу координат\tShift+O" -#: AppGUI/MainGUI.py:394 +#: flatcamGUI/FlatCAMGUI.py:405 msgid "Jump to Location\tJ" msgstr "Перейти к\tJ" -#: AppGUI/MainGUI.py:396 +#: flatcamGUI/FlatCAMGUI.py:407 msgid "Locate in Object\tShift+J" msgstr "Разместить объект\tShift+J" -#: AppGUI/MainGUI.py:401 +#: flatcamGUI/FlatCAMGUI.py:412 msgid "Toggle Units\tQ" msgstr "Единицы измерения\tQ" -#: AppGUI/MainGUI.py:403 +#: flatcamGUI/FlatCAMGUI.py:414 msgid "&Select All\tCtrl+A" msgstr "&Выбрать все\tCtrl+A" -#: AppGUI/MainGUI.py:408 +#: flatcamGUI/FlatCAMGUI.py:419 msgid "&Preferences\tShift+P" msgstr "&Настройки\tShift+P" -#: AppGUI/MainGUI.py:414 AppTools/ToolProperties.py:155 +#: flatcamGUI/FlatCAMGUI.py:425 flatcamTools/ToolProperties.py:155 msgid "Options" msgstr "Опции" -#: AppGUI/MainGUI.py:416 +#: flatcamGUI/FlatCAMGUI.py:427 msgid "&Rotate Selection\tShift+(R)" msgstr "&Вращение\tShift+(R)" -#: AppGUI/MainGUI.py:421 +#: flatcamGUI/FlatCAMGUI.py:432 msgid "&Skew on X axis\tShift+X" msgstr "&Наклон по оси X\tShift+X" -#: AppGUI/MainGUI.py:423 +#: flatcamGUI/FlatCAMGUI.py:434 msgid "S&kew on Y axis\tShift+Y" msgstr "Н&аклон по оси Y\tShift+Y" -#: AppGUI/MainGUI.py:428 +#: flatcamGUI/FlatCAMGUI.py:439 msgid "Flip on &X axis\tX" msgstr "Отразить по оси &X\tX" -#: AppGUI/MainGUI.py:430 +#: flatcamGUI/FlatCAMGUI.py:441 msgid "Flip on &Y axis\tY" msgstr "Отразить по оси &Y\tY" -#: AppGUI/MainGUI.py:435 +#: flatcamGUI/FlatCAMGUI.py:446 msgid "View source\tAlt+S" msgstr "Просмотреть код\tAlt+S" -#: AppGUI/MainGUI.py:437 +#: flatcamGUI/FlatCAMGUI.py:448 msgid "Tools DataBase\tCtrl+D" msgstr "База данных\tCtrl+D" -#: AppGUI/MainGUI.py:444 AppGUI/MainGUI.py:1427 +#: flatcamGUI/FlatCAMGUI.py:455 flatcamGUI/FlatCAMGUI.py:2183 msgid "View" msgstr "Вид" -#: AppGUI/MainGUI.py:446 +#: flatcamGUI/FlatCAMGUI.py:457 msgid "Enable all plots\tAlt+1" msgstr "Включить все участки\tAlt+1" -#: AppGUI/MainGUI.py:448 +#: flatcamGUI/FlatCAMGUI.py:459 msgid "Disable all plots\tAlt+2" msgstr "Отключить все участки\tAlt+2" -#: AppGUI/MainGUI.py:450 +#: flatcamGUI/FlatCAMGUI.py:461 msgid "Disable non-selected\tAlt+3" msgstr "Отключить не выбранные\tAlt+3" -#: AppGUI/MainGUI.py:454 +#: flatcamGUI/FlatCAMGUI.py:465 msgid "&Zoom Fit\tV" msgstr "&Вернуть масштаб\tV" -#: AppGUI/MainGUI.py:456 +#: flatcamGUI/FlatCAMGUI.py:467 msgid "&Zoom In\t=" msgstr "&Увеличить\t=" -#: AppGUI/MainGUI.py:458 +#: flatcamGUI/FlatCAMGUI.py:469 msgid "&Zoom Out\t-" msgstr "&Уменьшить\t-" -#: AppGUI/MainGUI.py:463 +#: flatcamGUI/FlatCAMGUI.py:474 msgid "Redraw All\tF5" msgstr "Перерисовать всё\tF5" -#: AppGUI/MainGUI.py:467 +#: flatcamGUI/FlatCAMGUI.py:478 msgid "Toggle Code Editor\tShift+E" msgstr "Переключить редактор кода\tShift+E" -#: AppGUI/MainGUI.py:470 +#: flatcamGUI/FlatCAMGUI.py:481 msgid "&Toggle FullScreen\tAlt+F10" msgstr "&Во весь экран\tAlt+F10" -#: AppGUI/MainGUI.py:472 +#: flatcamGUI/FlatCAMGUI.py:483 msgid "&Toggle Plot Area\tCtrl+F10" msgstr "&Рабочая область\tCtrl+F10" -#: AppGUI/MainGUI.py:474 +#: flatcamGUI/FlatCAMGUI.py:485 msgid "&Toggle Project/Sel/Tool\t`" msgstr "&Боковая панель\t`" -#: AppGUI/MainGUI.py:478 +#: flatcamGUI/FlatCAMGUI.py:489 msgid "&Toggle Grid Snap\tG" msgstr "&Привязка к сетке\tG" -#: AppGUI/MainGUI.py:480 +#: flatcamGUI/FlatCAMGUI.py:491 msgid "&Toggle Grid Lines\tAlt+G" msgstr "&Переключить линии сетки \tAlt+G" -#: AppGUI/MainGUI.py:482 +#: flatcamGUI/FlatCAMGUI.py:493 msgid "&Toggle Axis\tShift+G" msgstr "&Оси\tShift+G" -#: AppGUI/MainGUI.py:484 +#: flatcamGUI/FlatCAMGUI.py:495 msgid "Toggle Workspace\tShift+W" msgstr "Границы рабочего пространства\tShift+W" -#: AppGUI/MainGUI.py:486 -#, fuzzy -#| msgid "Toggle Units" -msgid "Toggle HUD\tAlt+H" -msgstr "Единицы измерения" - -#: AppGUI/MainGUI.py:491 +#: flatcamGUI/FlatCAMGUI.py:500 msgid "Objects" msgstr "Объекты" -#: AppGUI/MainGUI.py:494 AppGUI/MainGUI.py:4099 -#: AppObjects/ObjectCollection.py:1121 AppObjects/ObjectCollection.py:1168 -msgid "Select All" -msgstr "Выбрать все" - -#: AppGUI/MainGUI.py:496 AppObjects/ObjectCollection.py:1125 -#: AppObjects/ObjectCollection.py:1172 -msgid "Deselect All" -msgstr "Снять выделение" - -#: AppGUI/MainGUI.py:505 +#: flatcamGUI/FlatCAMGUI.py:514 msgid "&Command Line\tS" msgstr "&Командная строка\tS" -#: AppGUI/MainGUI.py:510 +#: flatcamGUI/FlatCAMGUI.py:519 msgid "Help" msgstr "Помощь" -#: AppGUI/MainGUI.py:512 +#: flatcamGUI/FlatCAMGUI.py:521 msgid "Online Help\tF1" msgstr "Онлайн справка\tF1" -#: AppGUI/MainGUI.py:515 Bookmark.py:293 -msgid "Bookmarks" -msgstr "Закладки" - -#: AppGUI/MainGUI.py:518 App_Main.py:3091 App_Main.py:3100 -msgid "Bookmarks Manager" -msgstr "Диспетчер закладок" - -#: AppGUI/MainGUI.py:522 +#: flatcamGUI/FlatCAMGUI.py:531 msgid "Report a bug" msgstr "Сообщить об ошибке" -#: AppGUI/MainGUI.py:525 +#: flatcamGUI/FlatCAMGUI.py:534 msgid "Excellon Specification" msgstr "Спецификация Excellon" -#: AppGUI/MainGUI.py:527 +#: flatcamGUI/FlatCAMGUI.py:536 msgid "Gerber Specification" msgstr "Спецификация Gerber" -#: AppGUI/MainGUI.py:532 +#: flatcamGUI/FlatCAMGUI.py:541 msgid "Shortcuts List\tF3" msgstr "Список комбинаций клавиш\tF3" -#: AppGUI/MainGUI.py:534 +#: flatcamGUI/FlatCAMGUI.py:543 msgid "YouTube Channel\tF4" msgstr "Канал YouTube\tF4" -#: AppGUI/MainGUI.py:539 -msgid "ReadMe?" -msgstr "" - -#: AppGUI/MainGUI.py:542 App_Main.py:2646 -msgid "About FlatCAM" -msgstr "О программе" - -#: AppGUI/MainGUI.py:551 +#: flatcamGUI/FlatCAMGUI.py:554 msgid "Add Circle\tO" msgstr "Добавить круг\tO" -#: AppGUI/MainGUI.py:554 +#: flatcamGUI/FlatCAMGUI.py:557 msgid "Add Arc\tA" msgstr "Добавить дугу\tA" -#: AppGUI/MainGUI.py:557 +#: flatcamGUI/FlatCAMGUI.py:560 msgid "Add Rectangle\tR" msgstr "Добавить прямоугольник\tR" -#: AppGUI/MainGUI.py:560 +#: flatcamGUI/FlatCAMGUI.py:563 msgid "Add Polygon\tN" msgstr "Добавить полигон\tN" -#: AppGUI/MainGUI.py:563 +#: flatcamGUI/FlatCAMGUI.py:566 msgid "Add Path\tP" msgstr "Добавить дорожку\tP" -#: AppGUI/MainGUI.py:566 +#: flatcamGUI/FlatCAMGUI.py:569 msgid "Add Text\tT" msgstr "Добавить текст\tT" -#: AppGUI/MainGUI.py:569 +#: flatcamGUI/FlatCAMGUI.py:572 msgid "Polygon Union\tU" msgstr "Объединение полигонов\tU" -#: AppGUI/MainGUI.py:571 +#: flatcamGUI/FlatCAMGUI.py:574 msgid "Polygon Intersection\tE" msgstr "Пересечение полигонов\tE" -#: AppGUI/MainGUI.py:573 +#: flatcamGUI/FlatCAMGUI.py:576 msgid "Polygon Subtraction\tS" msgstr "Вычитание полигонов\tS" -#: AppGUI/MainGUI.py:577 +#: flatcamGUI/FlatCAMGUI.py:580 msgid "Cut Path\tX" msgstr "Вырезать дорожку\tX" -#: AppGUI/MainGUI.py:581 +#: flatcamGUI/FlatCAMGUI.py:584 msgid "Copy Geom\tC" msgstr "Копировать Geom\tC" -#: AppGUI/MainGUI.py:583 +#: flatcamGUI/FlatCAMGUI.py:586 msgid "Delete Shape\tDEL" msgstr "Удалить фигуру\tDEL" -#: AppGUI/MainGUI.py:587 AppGUI/MainGUI.py:674 +#: flatcamGUI/FlatCAMGUI.py:590 flatcamGUI/FlatCAMGUI.py:677 msgid "Move\tM" msgstr "Переместить\tM" -#: AppGUI/MainGUI.py:589 +#: flatcamGUI/FlatCAMGUI.py:592 msgid "Buffer Tool\tB" msgstr "Буфер\tB" -#: AppGUI/MainGUI.py:592 +#: flatcamGUI/FlatCAMGUI.py:595 msgid "Paint Tool\tI" msgstr "Рисование\tI" -#: AppGUI/MainGUI.py:595 +#: flatcamGUI/FlatCAMGUI.py:598 msgid "Transform Tool\tAlt+R" msgstr "Трансформация\tAlt+R" -#: AppGUI/MainGUI.py:599 +#: flatcamGUI/FlatCAMGUI.py:602 msgid "Toggle Corner Snap\tK" msgstr "Привязка к углу\tK" -#: AppGUI/MainGUI.py:605 +#: flatcamGUI/FlatCAMGUI.py:608 msgid ">Excellon Editor<" msgstr ">Редактор Excellon<" -#: AppGUI/MainGUI.py:609 +#: flatcamGUI/FlatCAMGUI.py:612 msgid "Add Drill Array\tA" msgstr "Добавить группу свёрел\tA" -#: AppGUI/MainGUI.py:611 +#: flatcamGUI/FlatCAMGUI.py:614 msgid "Add Drill\tD" msgstr "Добавить сверло\tD" -#: AppGUI/MainGUI.py:615 +#: flatcamGUI/FlatCAMGUI.py:618 msgid "Add Slot Array\tQ" msgstr "Добавить массив пазов\tQ" -#: AppGUI/MainGUI.py:617 +#: flatcamGUI/FlatCAMGUI.py:620 msgid "Add Slot\tW" msgstr "Добавить паз\tW" -#: AppGUI/MainGUI.py:621 +#: flatcamGUI/FlatCAMGUI.py:624 msgid "Resize Drill(S)\tR" msgstr "Изменить размер отверстия\tR" -#: AppGUI/MainGUI.py:624 AppGUI/MainGUI.py:668 +#: flatcamGUI/FlatCAMGUI.py:627 flatcamGUI/FlatCAMGUI.py:671 msgid "Copy\tC" msgstr "Копировать\tC" -#: AppGUI/MainGUI.py:626 AppGUI/MainGUI.py:670 +#: flatcamGUI/FlatCAMGUI.py:629 flatcamGUI/FlatCAMGUI.py:673 msgid "Delete\tDEL" msgstr "Удалить\tDEL" -#: AppGUI/MainGUI.py:631 +#: flatcamGUI/FlatCAMGUI.py:634 msgid "Move Drill(s)\tM" msgstr "Переместить сверла\tM" -#: AppGUI/MainGUI.py:636 +#: flatcamGUI/FlatCAMGUI.py:639 msgid ">Gerber Editor<" msgstr ">Редактор Gerber<" -#: AppGUI/MainGUI.py:640 +#: flatcamGUI/FlatCAMGUI.py:643 msgid "Add Pad\tP" msgstr "Добавить площадку\tP" -#: AppGUI/MainGUI.py:642 +#: flatcamGUI/FlatCAMGUI.py:645 msgid "Add Pad Array\tA" msgstr "Добавить массив площадок\tA" -#: AppGUI/MainGUI.py:644 +#: flatcamGUI/FlatCAMGUI.py:647 msgid "Add Track\tT" msgstr "Добавить маршрут\tT" -#: AppGUI/MainGUI.py:646 +#: flatcamGUI/FlatCAMGUI.py:649 msgid "Add Region\tN" msgstr "Добавить регион\tN" -#: AppGUI/MainGUI.py:650 +#: flatcamGUI/FlatCAMGUI.py:653 msgid "Poligonize\tAlt+N" msgstr "Полигонизация\tAlt+N" -#: AppGUI/MainGUI.py:652 +#: flatcamGUI/FlatCAMGUI.py:655 msgid "Add SemiDisc\tE" msgstr "Добавить полукруг\tE" -#: AppGUI/MainGUI.py:654 +#: flatcamGUI/FlatCAMGUI.py:657 msgid "Add Disc\tD" msgstr "Добавить диск\tD" -#: AppGUI/MainGUI.py:656 +#: flatcamGUI/FlatCAMGUI.py:659 msgid "Buffer\tB" msgstr "Буфер\tB" -#: AppGUI/MainGUI.py:658 +#: flatcamGUI/FlatCAMGUI.py:661 msgid "Scale\tS" msgstr "Масштабировать\tS" -#: AppGUI/MainGUI.py:660 +#: flatcamGUI/FlatCAMGUI.py:663 msgid "Mark Area\tAlt+A" msgstr "Обозначить области\tAlt+A" -#: AppGUI/MainGUI.py:662 +#: flatcamGUI/FlatCAMGUI.py:665 msgid "Eraser\tCtrl+E" msgstr "Ластик\tCtrl+E" -#: AppGUI/MainGUI.py:664 +#: flatcamGUI/FlatCAMGUI.py:667 msgid "Transform\tAlt+R" msgstr "Трансформировать\tAlt+R" -#: AppGUI/MainGUI.py:691 +#: flatcamGUI/FlatCAMGUI.py:694 msgid "Enable Plot" msgstr "Включить участок" -#: AppGUI/MainGUI.py:693 +#: flatcamGUI/FlatCAMGUI.py:696 msgid "Disable Plot" msgstr "Отключить участок" -#: AppGUI/MainGUI.py:697 +#: flatcamGUI/FlatCAMGUI.py:700 msgid "Set Color" msgstr "Установить цвет" -#: AppGUI/MainGUI.py:700 App_Main.py:9644 -msgid "Red" -msgstr "Красный" - -#: AppGUI/MainGUI.py:703 App_Main.py:9646 -msgid "Blue" -msgstr "Синий" - -#: AppGUI/MainGUI.py:706 App_Main.py:9649 -msgid "Yellow" -msgstr "Жёлтый" - -#: AppGUI/MainGUI.py:709 App_Main.py:9651 -msgid "Green" -msgstr "Зелёный" - -#: AppGUI/MainGUI.py:712 App_Main.py:9653 -msgid "Purple" -msgstr "Фиолетовый" - -#: AppGUI/MainGUI.py:715 App_Main.py:9655 -msgid "Brown" -msgstr "Коричневый" - -#: AppGUI/MainGUI.py:718 App_Main.py:9657 App_Main.py:9713 -msgid "White" -msgstr "Белый" - -#: AppGUI/MainGUI.py:721 App_Main.py:9659 -msgid "Black" -msgstr "Чёрный" - -#: AppGUI/MainGUI.py:726 App_Main.py:9662 -msgid "Custom" -msgstr "Своё" - -#: AppGUI/MainGUI.py:731 App_Main.py:9696 -msgid "Opacity" -msgstr "Непрозрачность" - -#: AppGUI/MainGUI.py:734 App_Main.py:9672 -msgid "Default" -msgstr "По умолчанию" - -#: AppGUI/MainGUI.py:739 +#: flatcamGUI/FlatCAMGUI.py:742 msgid "Generate CNC" msgstr "Создать CNC" -#: AppGUI/MainGUI.py:741 +#: flatcamGUI/FlatCAMGUI.py:744 msgid "View Source" msgstr "Просмотреть код" -#: AppGUI/MainGUI.py:746 AppGUI/MainGUI.py:851 AppGUI/MainGUI.py:1066 -#: AppGUI/MainGUI.py:1525 AppGUI/MainGUI.py:1886 AppGUI/MainGUI.py:2097 -#: AppGUI/MainGUI.py:4511 AppGUI/ObjectUI.py:1519 -#: AppObjects/FlatCAMGeometry.py:560 AppTools/ToolPanelize.py:551 -#: AppTools/ToolPanelize.py:578 AppTools/ToolPanelize.py:671 -#: AppTools/ToolPanelize.py:700 AppTools/ToolPanelize.py:762 +#: flatcamGUI/FlatCAMGUI.py:749 flatcamGUI/FlatCAMGUI.py:863 +#: flatcamGUI/FlatCAMGUI.py:1072 flatcamGUI/FlatCAMGUI.py:2138 +#: flatcamGUI/FlatCAMGUI.py:2282 flatcamGUI/FlatCAMGUI.py:2572 +#: flatcamGUI/FlatCAMGUI.py:2775 flatcamGUI/ObjectUI.py:1617 +#: flatcamObjects/FlatCAMGeometry.py:502 flatcamTools/ToolPanelize.py:540 +#: flatcamTools/ToolPanelize.py:567 flatcamTools/ToolPanelize.py:660 +#: flatcamTools/ToolPanelize.py:689 flatcamTools/ToolPanelize.py:751 msgid "Copy" msgstr "Копировать" -#: AppGUI/MainGUI.py:754 AppGUI/MainGUI.py:1538 AppTools/ToolProperties.py:31 +#: flatcamGUI/FlatCAMGUI.py:757 flatcamGUI/FlatCAMGUI.py:2295 +#: flatcamTools/ToolProperties.py:31 msgid "Properties" msgstr "Свойства" -#: AppGUI/MainGUI.py:783 +#: flatcamGUI/FlatCAMGUI.py:786 msgid "File Toolbar" msgstr "Панель файлов" -#: AppGUI/MainGUI.py:787 +#: flatcamGUI/FlatCAMGUI.py:790 msgid "Edit Toolbar" msgstr "Панель редактирования" -#: AppGUI/MainGUI.py:791 +#: flatcamGUI/FlatCAMGUI.py:794 msgid "View Toolbar" msgstr "Панель просмотра" -#: AppGUI/MainGUI.py:795 +#: flatcamGUI/FlatCAMGUI.py:798 msgid "Shell Toolbar" msgstr "Панель командной строки" -#: AppGUI/MainGUI.py:799 +#: flatcamGUI/FlatCAMGUI.py:802 msgid "Tools Toolbar" msgstr "Панель инструментов" -#: AppGUI/MainGUI.py:803 +#: flatcamGUI/FlatCAMGUI.py:806 msgid "Excellon Editor Toolbar" msgstr "Панель редактора Excellon" -#: AppGUI/MainGUI.py:809 +#: flatcamGUI/FlatCAMGUI.py:812 msgid "Geometry Editor Toolbar" msgstr "Панель редактора Geometry" -#: AppGUI/MainGUI.py:813 +#: flatcamGUI/FlatCAMGUI.py:816 msgid "Gerber Editor Toolbar" msgstr "Панель редактора Gerber" -#: AppGUI/MainGUI.py:817 +#: flatcamGUI/FlatCAMGUI.py:820 msgid "Grid Toolbar" msgstr "Панель сетки координат" -#: AppGUI/MainGUI.py:831 AppGUI/MainGUI.py:1865 App_Main.py:6592 -#: App_Main.py:6597 -msgid "Open Gerber" -msgstr "Открыть Gerber" - -#: AppGUI/MainGUI.py:833 AppGUI/MainGUI.py:1867 App_Main.py:6632 -#: App_Main.py:6637 -msgid "Open Excellon" -msgstr "Открыть Excellon" - -#: AppGUI/MainGUI.py:836 AppGUI/MainGUI.py:1870 +#: flatcamGUI/FlatCAMGUI.py:841 flatcamGUI/FlatCAMGUI.py:2549 msgid "Open project" msgstr "Открыть проект" -#: AppGUI/MainGUI.py:838 AppGUI/MainGUI.py:1872 +#: flatcamGUI/FlatCAMGUI.py:843 flatcamGUI/FlatCAMGUI.py:2551 msgid "Save project" msgstr "Сохранить проект" -#: AppGUI/MainGUI.py:846 AppGUI/MainGUI.py:1881 +#: flatcamGUI/FlatCAMGUI.py:849 flatcamGUI/FlatCAMGUI.py:2557 +msgid "New Blank Geometry" +msgstr "Создать Geometry" + +#: flatcamGUI/FlatCAMGUI.py:851 flatcamGUI/FlatCAMGUI.py:2559 +msgid "New Blank Gerber" +msgstr "Создать Gerber" + +#: flatcamGUI/FlatCAMGUI.py:853 flatcamGUI/FlatCAMGUI.py:2561 +msgid "New Blank Excellon" +msgstr "Создать Excellon" + +#: flatcamGUI/FlatCAMGUI.py:858 flatcamGUI/FlatCAMGUI.py:2567 msgid "Save Object and close the Editor" msgstr "Сохранить объект и закрыть редактор" -#: AppGUI/MainGUI.py:853 AppGUI/MainGUI.py:1888 +#: flatcamGUI/FlatCAMGUI.py:865 flatcamGUI/FlatCAMGUI.py:2574 msgid "&Delete" msgstr "&Удалить" -#: AppGUI/MainGUI.py:856 AppGUI/MainGUI.py:1891 AppGUI/MainGUI.py:4100 -#: AppGUI/MainGUI.py:4308 AppTools/ToolDistance.py:35 -#: AppTools/ToolDistance.py:197 +#: flatcamGUI/FlatCAMGUI.py:868 flatcamGUI/FlatCAMGUI.py:1729 +#: flatcamGUI/FlatCAMGUI.py:1935 flatcamGUI/FlatCAMGUI.py:2577 +#: flatcamTools/ToolDistance.py:35 flatcamTools/ToolDistance.py:195 msgid "Distance Tool" msgstr "Измеритель" -#: AppGUI/MainGUI.py:858 AppGUI/MainGUI.py:1893 +#: flatcamGUI/FlatCAMGUI.py:870 flatcamGUI/FlatCAMGUI.py:2579 msgid "Distance Min Tool" msgstr "Минимальное расстояние" -#: AppGUI/MainGUI.py:860 AppGUI/MainGUI.py:1895 AppGUI/MainGUI.py:4093 +#: flatcamGUI/FlatCAMGUI.py:872 flatcamGUI/FlatCAMGUI.py:1722 +#: flatcamGUI/FlatCAMGUI.py:2581 msgid "Set Origin" msgstr "Указать начало координат" -#: AppGUI/MainGUI.py:862 AppGUI/MainGUI.py:1897 +#: flatcamGUI/FlatCAMGUI.py:874 msgid "Move to Origin" msgstr "Перейти к началу координат" -#: AppGUI/MainGUI.py:865 AppGUI/MainGUI.py:1899 +#: flatcamGUI/FlatCAMGUI.py:877 flatcamGUI/FlatCAMGUI.py:2583 msgid "Jump to Location" msgstr "Перейти к расположению" -#: AppGUI/MainGUI.py:867 AppGUI/MainGUI.py:1901 AppGUI/MainGUI.py:4105 +#: flatcamGUI/FlatCAMGUI.py:879 flatcamGUI/FlatCAMGUI.py:1734 +#: flatcamGUI/FlatCAMGUI.py:2585 msgid "Locate in Object" msgstr "Разместить объект" -#: AppGUI/MainGUI.py:873 AppGUI/MainGUI.py:1907 +#: flatcamGUI/FlatCAMGUI.py:885 flatcamGUI/FlatCAMGUI.py:2591 msgid "&Replot" msgstr "&Перерисовать объект" -#: AppGUI/MainGUI.py:875 AppGUI/MainGUI.py:1909 +#: flatcamGUI/FlatCAMGUI.py:887 flatcamGUI/FlatCAMGUI.py:2593 msgid "&Clear plot" msgstr "&Отключить все участки" -#: AppGUI/MainGUI.py:877 AppGUI/MainGUI.py:1911 AppGUI/MainGUI.py:4096 +#: flatcamGUI/FlatCAMGUI.py:889 flatcamGUI/FlatCAMGUI.py:1725 +#: flatcamGUI/FlatCAMGUI.py:2595 msgid "Zoom In" msgstr "Увеличить" -#: AppGUI/MainGUI.py:879 AppGUI/MainGUI.py:1913 AppGUI/MainGUI.py:4096 +#: flatcamGUI/FlatCAMGUI.py:891 flatcamGUI/FlatCAMGUI.py:1725 +#: flatcamGUI/FlatCAMGUI.py:2597 msgid "Zoom Out" msgstr "Уменьшить" -#: AppGUI/MainGUI.py:881 AppGUI/MainGUI.py:1429 AppGUI/MainGUI.py:1915 -#: AppGUI/MainGUI.py:4095 +#: flatcamGUI/FlatCAMGUI.py:893 flatcamGUI/FlatCAMGUI.py:1724 +#: flatcamGUI/FlatCAMGUI.py:2185 flatcamGUI/FlatCAMGUI.py:2599 msgid "Zoom Fit" msgstr "Вернуть масштаб" -#: AppGUI/MainGUI.py:889 AppGUI/MainGUI.py:1921 +#: flatcamGUI/FlatCAMGUI.py:901 flatcamGUI/FlatCAMGUI.py:2605 msgid "&Command Line" msgstr "&Командная строка" -#: AppGUI/MainGUI.py:901 AppGUI/MainGUI.py:1933 +#: flatcamGUI/FlatCAMGUI.py:913 flatcamGUI/FlatCAMGUI.py:2617 msgid "2Sided Tool" msgstr "2-х сторонняя плата" -#: AppGUI/MainGUI.py:903 AppGUI/MainGUI.py:1935 AppGUI/MainGUI.py:4111 +#: flatcamGUI/FlatCAMGUI.py:915 flatcamGUI/FlatCAMGUI.py:1740 +#: flatcamGUI/FlatCAMGUI.py:2619 msgid "Align Objects Tool" msgstr "Инструмент выравнивания объектов" -#: AppGUI/MainGUI.py:905 AppGUI/MainGUI.py:1937 AppGUI/MainGUI.py:4111 -#: AppTools/ToolExtractDrills.py:393 +#: flatcamGUI/FlatCAMGUI.py:917 flatcamGUI/FlatCAMGUI.py:1741 +#: flatcamGUI/FlatCAMGUI.py:2621 flatcamTools/ToolExtractDrills.py:393 msgid "Extract Drills Tool" msgstr "Инструмент извлечения отверстий" -#: AppGUI/MainGUI.py:908 AppGUI/ObjectUI.py:360 AppTools/ToolCutOut.py:440 +#: flatcamGUI/FlatCAMGUI.py:920 flatcamGUI/ObjectUI.py:596 +#: flatcamTools/ToolCutOut.py:440 msgid "Cutout Tool" msgstr "Обрезка платы" -#: AppGUI/MainGUI.py:910 AppGUI/MainGUI.py:1942 AppGUI/ObjectUI.py:346 -#: AppGUI/ObjectUI.py:2087 AppTools/ToolNCC.py:974 +#: flatcamGUI/FlatCAMGUI.py:922 flatcamGUI/FlatCAMGUI.py:2626 +#: flatcamGUI/ObjectUI.py:574 flatcamGUI/ObjectUI.py:2157 +#: flatcamTools/ToolNCC.py:974 msgid "NCC Tool" msgstr "Очистка меди" -#: AppGUI/MainGUI.py:914 AppGUI/MainGUI.py:1946 AppGUI/MainGUI.py:4113 -#: AppTools/ToolIsolation.py:38 AppTools/ToolIsolation.py:766 -#, fuzzy -#| msgid "Isolation Type" -msgid "Isolation Tool" -msgstr "Тип изоляции" - -#: AppGUI/MainGUI.py:918 AppGUI/MainGUI.py:1950 +#: flatcamGUI/FlatCAMGUI.py:928 flatcamGUI/FlatCAMGUI.py:2632 msgid "Panel Tool" msgstr "Панелизация" -#: AppGUI/MainGUI.py:920 AppGUI/MainGUI.py:1952 AppTools/ToolFilm.py:569 +#: flatcamGUI/FlatCAMGUI.py:930 flatcamGUI/FlatCAMGUI.py:2634 +#: flatcamTools/ToolFilm.py:586 msgid "Film Tool" msgstr "Плёнка" -#: AppGUI/MainGUI.py:922 AppGUI/MainGUI.py:1954 AppTools/ToolSolderPaste.py:561 +#: flatcamGUI/FlatCAMGUI.py:932 flatcamGUI/FlatCAMGUI.py:2636 +#: flatcamTools/ToolSolderPaste.py:553 msgid "SolderPaste Tool" msgstr "Паяльная паста" -#: AppGUI/MainGUI.py:924 AppGUI/MainGUI.py:1956 AppGUI/MainGUI.py:4118 -#: AppTools/ToolSub.py:40 +#: flatcamGUI/FlatCAMGUI.py:934 flatcamGUI/FlatCAMGUI.py:2638 +#: flatcamTools/ToolSub.py:35 msgid "Subtract Tool" msgstr "Вычитатель" -#: AppGUI/MainGUI.py:926 AppGUI/MainGUI.py:1958 AppTools/ToolRulesCheck.py:616 +#: flatcamGUI/FlatCAMGUI.py:936 flatcamGUI/FlatCAMGUI.py:2640 +#: flatcamTools/ToolRulesCheck.py:616 msgid "Rules Tool" msgstr "Правила" -#: AppGUI/MainGUI.py:928 AppGUI/MainGUI.py:1960 AppGUI/MainGUI.py:4115 -#: AppTools/ToolOptimal.py:33 AppTools/ToolOptimal.py:313 +#: flatcamGUI/FlatCAMGUI.py:938 flatcamGUI/FlatCAMGUI.py:1743 +#: flatcamGUI/FlatCAMGUI.py:2642 flatcamTools/ToolOptimal.py:33 +#: flatcamTools/ToolOptimal.py:307 msgid "Optimal Tool" msgstr "Оптимизация" -#: AppGUI/MainGUI.py:933 AppGUI/MainGUI.py:1965 AppGUI/MainGUI.py:4111 +#: flatcamGUI/FlatCAMGUI.py:943 flatcamGUI/FlatCAMGUI.py:1740 +#: flatcamGUI/FlatCAMGUI.py:2647 msgid "Calculators Tool" msgstr "Калькулятор" -#: AppGUI/MainGUI.py:937 AppGUI/MainGUI.py:1969 AppGUI/MainGUI.py:4116 -#: AppTools/ToolQRCode.py:43 AppTools/ToolQRCode.py:391 +#: flatcamGUI/FlatCAMGUI.py:947 flatcamGUI/FlatCAMGUI.py:1744 +#: flatcamGUI/FlatCAMGUI.py:2651 flatcamTools/ToolQRCode.py:43 +#: flatcamTools/ToolQRCode.py:382 msgid "QRCode Tool" msgstr "QR код" -#: AppGUI/MainGUI.py:939 AppGUI/MainGUI.py:1971 AppGUI/MainGUI.py:4113 -#: AppTools/ToolCopperThieving.py:39 AppTools/ToolCopperThieving.py:572 +#: flatcamGUI/FlatCAMGUI.py:949 flatcamGUI/FlatCAMGUI.py:2653 +#: flatcamTools/ToolCopperThieving.py:39 flatcamTools/ToolCopperThieving.py:568 msgid "Copper Thieving Tool" msgstr "Copper Thieving" -#: AppGUI/MainGUI.py:942 AppGUI/MainGUI.py:1974 AppGUI/MainGUI.py:4112 -#: AppTools/ToolFiducials.py:33 AppTools/ToolFiducials.py:399 +#: flatcamGUI/FlatCAMGUI.py:952 flatcamGUI/FlatCAMGUI.py:1741 +#: flatcamGUI/FlatCAMGUI.py:2656 flatcamTools/ToolFiducials.py:33 +#: flatcamTools/ToolFiducials.py:395 msgid "Fiducials Tool" msgstr "Контрольные точки" -#: AppGUI/MainGUI.py:944 AppGUI/MainGUI.py:1976 AppTools/ToolCalibration.py:37 -#: AppTools/ToolCalibration.py:759 +#: flatcamGUI/FlatCAMGUI.py:954 flatcamGUI/FlatCAMGUI.py:2658 +#: flatcamTools/ToolCalibration.py:37 flatcamTools/ToolCalibration.py:759 msgid "Calibration Tool" msgstr "Калькулятор" -#: AppGUI/MainGUI.py:946 AppGUI/MainGUI.py:1978 AppGUI/MainGUI.py:4113 +#: flatcamGUI/FlatCAMGUI.py:956 flatcamGUI/FlatCAMGUI.py:1741 +#: flatcamGUI/FlatCAMGUI.py:2660 msgid "Punch Gerber Tool" msgstr "Перфорация" -#: AppGUI/MainGUI.py:948 AppGUI/MainGUI.py:1980 AppTools/ToolInvertGerber.py:31 +#: flatcamGUI/FlatCAMGUI.py:958 flatcamGUI/FlatCAMGUI.py:2662 +#: flatcamTools/ToolInvertGerber.py:31 msgid "Invert Gerber Tool" msgstr "Инверсия Gerber" -#: AppGUI/MainGUI.py:950 AppGUI/MainGUI.py:1982 AppGUI/MainGUI.py:4115 -#: AppTools/ToolCorners.py:31 -#, fuzzy -#| msgid "Invert Gerber Tool" -msgid "Corner Markers Tool" -msgstr "Инверсия Gerber" - -#: AppGUI/MainGUI.py:952 AppGUI/MainGUI.py:1984 -#: AppTools/ToolEtchCompensation.py:32 AppTools/ToolEtchCompensation.py:288 -#, fuzzy -#| msgid "Editor Transformation Tool" -msgid "Etch Compensation Tool" -msgstr "Трансформация" - -#: AppGUI/MainGUI.py:958 AppGUI/MainGUI.py:984 AppGUI/MainGUI.py:1036 -#: AppGUI/MainGUI.py:1990 AppGUI/MainGUI.py:2068 +#: flatcamGUI/FlatCAMGUI.py:964 flatcamGUI/FlatCAMGUI.py:990 +#: flatcamGUI/FlatCAMGUI.py:1042 flatcamGUI/FlatCAMGUI.py:2668 +#: flatcamGUI/FlatCAMGUI.py:2746 msgid "Select" msgstr "Выбрать" -#: AppGUI/MainGUI.py:960 AppGUI/MainGUI.py:1992 +#: flatcamGUI/FlatCAMGUI.py:966 flatcamGUI/FlatCAMGUI.py:2670 msgid "Add Drill Hole" msgstr "Добавить отверстие" -#: AppGUI/MainGUI.py:962 AppGUI/MainGUI.py:1994 +#: flatcamGUI/FlatCAMGUI.py:968 flatcamGUI/FlatCAMGUI.py:2672 msgid "Add Drill Hole Array" msgstr "Добавить массив отверстий" -#: AppGUI/MainGUI.py:964 AppGUI/MainGUI.py:1517 AppGUI/MainGUI.py:1998 -#: AppGUI/MainGUI.py:4393 +#: flatcamGUI/FlatCAMGUI.py:970 flatcamGUI/FlatCAMGUI.py:2020 +#: flatcamGUI/FlatCAMGUI.py:2273 flatcamGUI/FlatCAMGUI.py:2676 msgid "Add Slot" msgstr "Добавить паз" -#: AppGUI/MainGUI.py:966 AppGUI/MainGUI.py:1519 AppGUI/MainGUI.py:2000 -#: AppGUI/MainGUI.py:4392 +#: flatcamGUI/FlatCAMGUI.py:972 flatcamGUI/FlatCAMGUI.py:2019 +#: flatcamGUI/FlatCAMGUI.py:2275 flatcamGUI/FlatCAMGUI.py:2678 msgid "Add Slot Array" msgstr "Добавить массив пазов" -#: AppGUI/MainGUI.py:968 AppGUI/MainGUI.py:1522 AppGUI/MainGUI.py:1996 +#: flatcamGUI/FlatCAMGUI.py:974 flatcamGUI/FlatCAMGUI.py:2278 +#: flatcamGUI/FlatCAMGUI.py:2674 msgid "Resize Drill" msgstr "Изменить размер отверстия" -#: AppGUI/MainGUI.py:972 AppGUI/MainGUI.py:2004 +#: flatcamGUI/FlatCAMGUI.py:978 flatcamGUI/FlatCAMGUI.py:2682 msgid "Copy Drill" msgstr "Копировать отверстие" -#: AppGUI/MainGUI.py:974 AppGUI/MainGUI.py:2006 +#: flatcamGUI/FlatCAMGUI.py:980 flatcamGUI/FlatCAMGUI.py:2684 msgid "Delete Drill" msgstr "Удалить отверстие" -#: AppGUI/MainGUI.py:978 AppGUI/MainGUI.py:2010 +#: flatcamGUI/FlatCAMGUI.py:984 flatcamGUI/FlatCAMGUI.py:2688 msgid "Move Drill" msgstr "Переместить отверстие" -#: AppGUI/MainGUI.py:986 AppGUI/MainGUI.py:2018 +#: flatcamGUI/FlatCAMGUI.py:992 flatcamGUI/FlatCAMGUI.py:2696 msgid "Add Circle" msgstr "Добавить круг" -#: AppGUI/MainGUI.py:988 AppGUI/MainGUI.py:2020 +#: flatcamGUI/FlatCAMGUI.py:994 flatcamGUI/FlatCAMGUI.py:2698 msgid "Add Arc" msgstr "Добавить дугу" -#: AppGUI/MainGUI.py:990 AppGUI/MainGUI.py:2022 +#: flatcamGUI/FlatCAMGUI.py:996 flatcamGUI/FlatCAMGUI.py:2700 msgid "Add Rectangle" msgstr "Добавить прямоугольник" -#: AppGUI/MainGUI.py:994 AppGUI/MainGUI.py:2026 +#: flatcamGUI/FlatCAMGUI.py:1000 flatcamGUI/FlatCAMGUI.py:2704 msgid "Add Path" msgstr "Добавить дорожку" -#: AppGUI/MainGUI.py:996 AppGUI/MainGUI.py:2028 +#: flatcamGUI/FlatCAMGUI.py:1002 flatcamGUI/FlatCAMGUI.py:2706 msgid "Add Polygon" msgstr "Добавить полигон" -#: AppGUI/MainGUI.py:999 AppGUI/MainGUI.py:2031 +#: flatcamGUI/FlatCAMGUI.py:1005 flatcamGUI/FlatCAMGUI.py:2709 msgid "Add Text" msgstr "Добавить текст" -#: AppGUI/MainGUI.py:1001 AppGUI/MainGUI.py:2033 +#: flatcamGUI/FlatCAMGUI.py:1007 flatcamGUI/FlatCAMGUI.py:2711 msgid "Add Buffer" msgstr "Добавить буфер" -#: AppGUI/MainGUI.py:1003 AppGUI/MainGUI.py:2035 +#: flatcamGUI/FlatCAMGUI.py:1009 flatcamGUI/FlatCAMGUI.py:2713 msgid "Paint Shape" msgstr "Нарисовать фигуру" -#: AppGUI/MainGUI.py:1005 AppGUI/MainGUI.py:1062 AppGUI/MainGUI.py:1458 -#: AppGUI/MainGUI.py:1503 AppGUI/MainGUI.py:2037 AppGUI/MainGUI.py:2093 +#: flatcamGUI/FlatCAMGUI.py:1011 flatcamGUI/FlatCAMGUI.py:1068 +#: flatcamGUI/FlatCAMGUI.py:2214 flatcamGUI/FlatCAMGUI.py:2259 +#: flatcamGUI/FlatCAMGUI.py:2715 flatcamGUI/FlatCAMGUI.py:2771 msgid "Eraser" msgstr "Ластик" -#: AppGUI/MainGUI.py:1009 AppGUI/MainGUI.py:2041 +#: flatcamGUI/FlatCAMGUI.py:1015 flatcamGUI/FlatCAMGUI.py:2719 msgid "Polygon Union" msgstr "Сращение полигонов" -#: AppGUI/MainGUI.py:1011 AppGUI/MainGUI.py:2043 +#: flatcamGUI/FlatCAMGUI.py:1017 flatcamGUI/FlatCAMGUI.py:2721 msgid "Polygon Explode" msgstr "Разделение полигонов" -#: AppGUI/MainGUI.py:1014 AppGUI/MainGUI.py:2046 +#: flatcamGUI/FlatCAMGUI.py:1020 flatcamGUI/FlatCAMGUI.py:2724 msgid "Polygon Intersection" msgstr "Пересечение полигонов" -#: AppGUI/MainGUI.py:1016 AppGUI/MainGUI.py:2048 +#: flatcamGUI/FlatCAMGUI.py:1022 flatcamGUI/FlatCAMGUI.py:2726 msgid "Polygon Subtraction" msgstr "Вычитание полигонов" -#: AppGUI/MainGUI.py:1020 AppGUI/MainGUI.py:2052 +#: flatcamGUI/FlatCAMGUI.py:1026 flatcamGUI/FlatCAMGUI.py:2730 msgid "Cut Path" msgstr "Вырезать путь" -#: AppGUI/MainGUI.py:1022 +#: flatcamGUI/FlatCAMGUI.py:1028 msgid "Copy Shape(s)" msgstr "Копировать форму(ы)" -#: AppGUI/MainGUI.py:1025 +#: flatcamGUI/FlatCAMGUI.py:1031 msgid "Delete Shape '-'" msgstr "Удалить фигуру '-'" -#: AppGUI/MainGUI.py:1027 AppGUI/MainGUI.py:1070 AppGUI/MainGUI.py:1470 -#: AppGUI/MainGUI.py:1507 AppGUI/MainGUI.py:2058 AppGUI/MainGUI.py:2101 -#: AppGUI/ObjectUI.py:109 AppGUI/ObjectUI.py:152 +#: flatcamGUI/FlatCAMGUI.py:1033 flatcamGUI/FlatCAMGUI.py:1076 +#: flatcamGUI/FlatCAMGUI.py:2226 flatcamGUI/FlatCAMGUI.py:2263 +#: flatcamGUI/FlatCAMGUI.py:2736 flatcamGUI/FlatCAMGUI.py:2779 +#: flatcamGUI/ObjectUI.py:109 msgid "Transformations" msgstr "Трансформация" -#: AppGUI/MainGUI.py:1030 +#: flatcamGUI/FlatCAMGUI.py:1036 msgid "Move Objects " msgstr "Переместить объект " -#: AppGUI/MainGUI.py:1038 AppGUI/MainGUI.py:2070 AppGUI/MainGUI.py:4512 +#: flatcamGUI/FlatCAMGUI.py:1044 flatcamGUI/FlatCAMGUI.py:2139 +#: flatcamGUI/FlatCAMGUI.py:2748 msgid "Add Pad" msgstr "Добавить площадку" -#: AppGUI/MainGUI.py:1042 AppGUI/MainGUI.py:2074 AppGUI/MainGUI.py:4513 +#: flatcamGUI/FlatCAMGUI.py:1048 flatcamGUI/FlatCAMGUI.py:2140 +#: flatcamGUI/FlatCAMGUI.py:2752 msgid "Add Track" msgstr "Добавить маршрут" -#: AppGUI/MainGUI.py:1044 AppGUI/MainGUI.py:2076 AppGUI/MainGUI.py:4512 +#: flatcamGUI/FlatCAMGUI.py:1050 flatcamGUI/FlatCAMGUI.py:2139 +#: flatcamGUI/FlatCAMGUI.py:2754 msgid "Add Region" msgstr "Добавить регион" -#: AppGUI/MainGUI.py:1046 AppGUI/MainGUI.py:1489 AppGUI/MainGUI.py:2078 +#: flatcamGUI/FlatCAMGUI.py:1052 flatcamGUI/FlatCAMGUI.py:2245 +#: flatcamGUI/FlatCAMGUI.py:2756 msgid "Poligonize" msgstr "Полигонизация" -#: AppGUI/MainGUI.py:1049 AppGUI/MainGUI.py:1491 AppGUI/MainGUI.py:2081 +#: flatcamGUI/FlatCAMGUI.py:1055 flatcamGUI/FlatCAMGUI.py:2247 +#: flatcamGUI/FlatCAMGUI.py:2759 msgid "SemiDisc" msgstr "Полукруг" -#: AppGUI/MainGUI.py:1051 AppGUI/MainGUI.py:1493 AppGUI/MainGUI.py:2083 +#: flatcamGUI/FlatCAMGUI.py:1057 flatcamGUI/FlatCAMGUI.py:2249 +#: flatcamGUI/FlatCAMGUI.py:2761 msgid "Disc" msgstr "Диск" -#: AppGUI/MainGUI.py:1059 AppGUI/MainGUI.py:1501 AppGUI/MainGUI.py:2091 +#: flatcamGUI/FlatCAMGUI.py:1065 flatcamGUI/FlatCAMGUI.py:2257 +#: flatcamGUI/FlatCAMGUI.py:2769 msgid "Mark Area" msgstr "Обозначить области" -#: AppGUI/MainGUI.py:1073 AppGUI/MainGUI.py:1474 AppGUI/MainGUI.py:1536 -#: AppGUI/MainGUI.py:2104 AppGUI/MainGUI.py:4512 AppTools/ToolMove.py:27 +#: flatcamGUI/FlatCAMGUI.py:1079 flatcamGUI/FlatCAMGUI.py:2139 +#: flatcamGUI/FlatCAMGUI.py:2230 flatcamGUI/FlatCAMGUI.py:2293 +#: flatcamGUI/FlatCAMGUI.py:2782 flatcamTools/ToolMove.py:27 msgid "Move" msgstr "Переместить" -#: AppGUI/MainGUI.py:1081 +#: flatcamGUI/FlatCAMGUI.py:1087 flatcamGUI/FlatCAMGUI.py:2791 msgid "Snap to grid" msgstr "Привязка к сетке" -#: AppGUI/MainGUI.py:1084 +#: flatcamGUI/FlatCAMGUI.py:1090 flatcamGUI/FlatCAMGUI.py:2794 msgid "Grid X snapping distance" msgstr "Размер сетки по X" -#: AppGUI/MainGUI.py:1089 +#: flatcamGUI/FlatCAMGUI.py:1095 flatcamGUI/FlatCAMGUI.py:2799 +msgid "Grid Y snapping distance" +msgstr "Размер сетки по Y" + +#: flatcamGUI/FlatCAMGUI.py:1101 flatcamGUI/FlatCAMGUI.py:2805 msgid "" "When active, value on Grid_X\n" "is copied to the Grid_Y value." @@ -4499,106 +6286,65 @@ msgstr "" "Если активен, значение на Grid_X\n" "копируется в значение Grid_Y." -#: AppGUI/MainGUI.py:1096 -msgid "Grid Y snapping distance" -msgstr "Размер сетки по Y" - -#: AppGUI/MainGUI.py:1101 -msgid "Toggle the display of axis on canvas" -msgstr "" - -#: AppGUI/MainGUI.py:1107 AppGUI/preferences/PreferencesUIManager.py:846 -#: AppGUI/preferences/PreferencesUIManager.py:938 -#: AppGUI/preferences/PreferencesUIManager.py:966 -#: AppGUI/preferences/PreferencesUIManager.py:1072 App_Main.py:5140 -#: App_Main.py:5145 App_Main.py:5168 -msgid "Preferences" -msgstr "Настройки" - -#: AppGUI/MainGUI.py:1113 -#, fuzzy -#| msgid "&Command Line" -msgid "Command Line" -msgstr "&Командная строка" - -#: AppGUI/MainGUI.py:1119 -msgid "HUD (Heads up display)" -msgstr "" - -#: AppGUI/MainGUI.py:1125 AppGUI/preferences/general/GeneralAPPSetGroupUI.py:97 -msgid "" -"Draw a delimiting rectangle on canvas.\n" -"The purpose is to illustrate the limits for our work." -msgstr "" -"Нарисует на холсте разделительный прямоугольник,\n" -"для отображения границы нашей работы." - -#: AppGUI/MainGUI.py:1135 +#: flatcamGUI/FlatCAMGUI.py:1108 flatcamGUI/FlatCAMGUI.py:2812 msgid "Snap to corner" msgstr "Привязка к углу" -#: AppGUI/MainGUI.py:1139 AppGUI/preferences/general/GeneralAPPSetGroupUI.py:78 +#: flatcamGUI/FlatCAMGUI.py:1112 flatcamGUI/FlatCAMGUI.py:2816 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:78 msgid "Max. magnet distance" msgstr "Макс. магнит расстояние" -#: AppGUI/MainGUI.py:1175 AppGUI/MainGUI.py:1420 App_Main.py:7639 -msgid "Project" -msgstr "Проект" - -#: AppGUI/MainGUI.py:1190 +#: flatcamGUI/FlatCAMGUI.py:1149 msgid "Selected" msgstr "Выбранное" -#: AppGUI/MainGUI.py:1218 AppGUI/MainGUI.py:1226 +#: flatcamGUI/FlatCAMGUI.py:1177 flatcamGUI/FlatCAMGUI.py:1185 msgid "Plot Area" msgstr "Рабочая область" -#: AppGUI/MainGUI.py:1253 +#: flatcamGUI/FlatCAMGUI.py:1212 msgid "General" msgstr "Основные" -#: AppGUI/MainGUI.py:1268 AppTools/ToolCopperThieving.py:74 -#: AppTools/ToolCorners.py:55 AppTools/ToolDblSided.py:64 -#: AppTools/ToolEtchCompensation.py:73 AppTools/ToolExtractDrills.py:61 -#: AppTools/ToolFiducials.py:262 AppTools/ToolInvertGerber.py:72 -#: AppTools/ToolIsolation.py:94 AppTools/ToolOptimal.py:71 -#: AppTools/ToolPunchGerber.py:64 AppTools/ToolQRCode.py:78 -#: AppTools/ToolRulesCheck.py:61 AppTools/ToolSolderPaste.py:67 -#: AppTools/ToolSub.py:70 +#: flatcamGUI/FlatCAMGUI.py:1227 flatcamTools/ToolCopperThieving.py:74 +#: flatcamTools/ToolDblSided.py:64 flatcamTools/ToolExtractDrills.py:61 +#: flatcamTools/ToolInvertGerber.py:72 flatcamTools/ToolOptimal.py:71 +#: flatcamTools/ToolPunchGerber.py:64 msgid "GERBER" msgstr "GERBER" -#: AppGUI/MainGUI.py:1278 AppTools/ToolDblSided.py:92 -#: AppTools/ToolRulesCheck.py:199 +#: flatcamGUI/FlatCAMGUI.py:1237 flatcamTools/ToolDblSided.py:92 msgid "EXCELLON" msgstr "EXCELLON" -#: AppGUI/MainGUI.py:1288 AppTools/ToolDblSided.py:120 AppTools/ToolSub.py:125 +#: flatcamGUI/FlatCAMGUI.py:1247 flatcamTools/ToolDblSided.py:120 msgid "GEOMETRY" msgstr "GEOMETRY" -#: AppGUI/MainGUI.py:1298 +#: flatcamGUI/FlatCAMGUI.py:1257 msgid "CNC-JOB" msgstr "CNC-JOB" -#: AppGUI/MainGUI.py:1307 AppGUI/ObjectUI.py:328 AppGUI/ObjectUI.py:2062 +#: flatcamGUI/FlatCAMGUI.py:1266 flatcamGUI/ObjectUI.py:563 +#: flatcamGUI/ObjectUI.py:2132 msgid "TOOLS" msgstr "ИНСТРУМЕНТЫ" -#: AppGUI/MainGUI.py:1316 +#: flatcamGUI/FlatCAMGUI.py:1275 msgid "TOOLS 2" msgstr "ИНСТРУМЕНТЫ 2" -#: AppGUI/MainGUI.py:1326 +#: flatcamGUI/FlatCAMGUI.py:1285 msgid "UTILITIES" msgstr "УТИЛИТЫ" -#: AppGUI/MainGUI.py:1343 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:201 +#: flatcamGUI/FlatCAMGUI.py:1302 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:192 msgid "Restore Defaults" msgstr "Восстановить значения по умолчанию" -#: AppGUI/MainGUI.py:1346 +#: flatcamGUI/FlatCAMGUI.py:1305 msgid "" "Restore the entire set of default values\n" "to the initial values loaded after first launch." @@ -4606,19 +6352,19 @@ msgstr "" "Восстановление всего набора значений по умолчанию\n" "к начальным значениям, загруженным после первого запуска." -#: AppGUI/MainGUI.py:1351 +#: flatcamGUI/FlatCAMGUI.py:1310 msgid "Open Pref Folder" msgstr "Открыть папку настроек" -#: AppGUI/MainGUI.py:1354 +#: flatcamGUI/FlatCAMGUI.py:1313 msgid "Open the folder where FlatCAM save the preferences files." msgstr "Открывает папку, в которой FlatCAM сохраняет файлы настроек." -#: AppGUI/MainGUI.py:1358 AppGUI/MainGUI.py:1836 +#: flatcamGUI/FlatCAMGUI.py:1317 flatcamGUI/FlatCAMGUI.py:2517 msgid "Clear GUI Settings" msgstr "Сброс настроек интерфейса" -#: AppGUI/MainGUI.py:1362 +#: flatcamGUI/FlatCAMGUI.py:1321 msgid "" "Clear the GUI settings for FlatCAM,\n" "such as: layout, gui state, style, hdpi support etc." @@ -4626,15 +6372,15 @@ msgstr "" "Сброс настроек интерфейса FlatCAM,\n" "таких как: макет, состояние интерфейса, стиль, поддержка hdpi и т. д." -#: AppGUI/MainGUI.py:1373 +#: flatcamGUI/FlatCAMGUI.py:1332 msgid "Apply" msgstr "Применить" -#: AppGUI/MainGUI.py:1376 +#: flatcamGUI/FlatCAMGUI.py:1335 msgid "Apply the current preferences without saving to a file." msgstr "Применение текущих настроек без сохранения в файл." -#: AppGUI/MainGUI.py:1383 +#: flatcamGUI/FlatCAMGUI.py:1342 msgid "" "Save the current settings in the 'current_defaults' file\n" "which is the file storing the working default preferences." @@ -4642,125 +6388,572 @@ msgstr "" "Сохраняет текущие настройки в файле 'current_defaults'\n" "который является файлом, хранящим рабочие настройки по умолчанию." -#: AppGUI/MainGUI.py:1391 +#: flatcamGUI/FlatCAMGUI.py:1350 msgid "Will not save the changes and will close the preferences window." msgstr "Закроет окно настроек без сохранения изменений." -#: AppGUI/MainGUI.py:1405 -msgid "Toggle Visibility" -msgstr "Переключить видимость" +#: flatcamGUI/FlatCAMGUI.py:1719 +msgid "SHOW SHORTCUT LIST" +msgstr "ПОКАЗАТЬ СПИСОК КОМБИНАЦИЙ КЛАВИШ" -#: AppGUI/MainGUI.py:1411 -msgid "New" -msgstr "Создать" +#: flatcamGUI/FlatCAMGUI.py:1719 +msgid "Switch to Project Tab" +msgstr "Переключиться на вкладку \"Проект\"" -#: AppGUI/MainGUI.py:1413 AppTools/ToolCalibration.py:631 -#: AppTools/ToolCalibration.py:648 AppTools/ToolCalibration.py:815 -#: AppTools/ToolCopperThieving.py:148 AppTools/ToolCopperThieving.py:162 -#: AppTools/ToolCopperThieving.py:608 AppTools/ToolCutOut.py:92 -#: AppTools/ToolDblSided.py:226 AppTools/ToolFilm.py:69 AppTools/ToolFilm.py:92 -#: AppTools/ToolImage.py:49 AppTools/ToolImage.py:271 -#: AppTools/ToolIsolation.py:464 AppTools/ToolIsolation.py:517 -#: AppTools/ToolIsolation.py:1281 AppTools/ToolNCC.py:95 -#: AppTools/ToolNCC.py:558 AppTools/ToolNCC.py:1318 AppTools/ToolPaint.py:501 -#: AppTools/ToolPaint.py:705 AppTools/ToolPanelize.py:116 -#: AppTools/ToolPanelize.py:385 AppTools/ToolPanelize.py:402 -msgid "Geometry" -msgstr "Geometry" +#: flatcamGUI/FlatCAMGUI.py:1719 +msgid "Switch to Selected Tab" +msgstr "Переключиться на вкладку \"Выбранное\"" -#: AppGUI/MainGUI.py:1417 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:99 -#: AppTools/ToolAlignObjects.py:74 AppTools/ToolAlignObjects.py:110 -#: AppTools/ToolCalibration.py:197 AppTools/ToolCalibration.py:631 -#: AppTools/ToolCalibration.py:648 AppTools/ToolCalibration.py:807 -#: AppTools/ToolCalibration.py:815 AppTools/ToolCopperThieving.py:148 -#: AppTools/ToolCopperThieving.py:162 AppTools/ToolCopperThieving.py:608 -#: AppTools/ToolDblSided.py:225 AppTools/ToolFilm.py:342 -#: AppTools/ToolIsolation.py:517 AppTools/ToolIsolation.py:1281 -#: AppTools/ToolNCC.py:558 AppTools/ToolNCC.py:1318 AppTools/ToolPaint.py:501 -#: AppTools/ToolPaint.py:705 AppTools/ToolPanelize.py:385 -#: AppTools/ToolPunchGerber.py:149 AppTools/ToolPunchGerber.py:164 -msgid "Excellon" -msgstr "Excellon" +#: flatcamGUI/FlatCAMGUI.py:1720 +msgid "Switch to Tool Tab" +msgstr "Переключиться на вкладку свойств" -#: AppGUI/MainGUI.py:1424 -msgid "Grids" -msgstr "Сетка" +#: flatcamGUI/FlatCAMGUI.py:1721 +msgid "New Gerber" +msgstr "Создать Gerber" -#: AppGUI/MainGUI.py:1431 -msgid "Clear Plot" +#: flatcamGUI/FlatCAMGUI.py:1721 +msgid "Edit Object (if selected)" +msgstr "Редактировать объект (если выбран)" + +#: flatcamGUI/FlatCAMGUI.py:1721 +msgid "Jump to Coordinates" +msgstr "Перейти к координатам" + +#: flatcamGUI/FlatCAMGUI.py:1722 +msgid "New Excellon" +msgstr "Создать Excellon" + +#: flatcamGUI/FlatCAMGUI.py:1722 +msgid "Move Obj" +msgstr "Переместить объект" + +#: flatcamGUI/FlatCAMGUI.py:1722 +msgid "New Geometry" +msgstr "Создать Geometry" + +#: flatcamGUI/FlatCAMGUI.py:1722 +msgid "Change Units" +msgstr "Единицы измерения" + +#: flatcamGUI/FlatCAMGUI.py:1723 +msgid "Open Properties Tool" +msgstr "Свойства" + +#: flatcamGUI/FlatCAMGUI.py:1723 +msgid "Rotate by 90 degree CW" +msgstr "Поворот на 90 градусов по часовой стрелке" + +#: flatcamGUI/FlatCAMGUI.py:1723 +msgid "Shell Toggle" +msgstr "Панель командной строки" + +#: flatcamGUI/FlatCAMGUI.py:1724 +msgid "" +"Add a Tool (when in Geometry Selected Tab or in Tools NCC or Tools Paint)" +msgstr "" +"Добавить инструмент (во вкладках \"Выбранное\", \"Инструменты\" или " +"инструменте рисования)" + +#: flatcamGUI/FlatCAMGUI.py:1725 +msgid "Flip on X_axis" +msgstr "Отразить по оси X" + +#: flatcamGUI/FlatCAMGUI.py:1725 +msgid "Flip on Y_axis" +msgstr "Отразить по оси Y" + +#: flatcamGUI/FlatCAMGUI.py:1728 +msgid "Copy Obj" +msgstr "Копировать объекты" + +#: flatcamGUI/FlatCAMGUI.py:1728 +msgid "Open Tools Database" +msgstr "Открыть БД" + +#: flatcamGUI/FlatCAMGUI.py:1729 +msgid "Open Excellon File" +msgstr "Открыть Excellon" + +#: flatcamGUI/FlatCAMGUI.py:1729 +msgid "Open Gerber File" +msgstr "Открыть Gerber" + +#: flatcamGUI/FlatCAMGUI.py:1729 +msgid "New Project" +msgstr "Новый проект" + +#: flatcamGUI/FlatCAMGUI.py:1730 flatcamTools/ToolPDF.py:42 +msgid "PDF Import Tool" +msgstr "Импорт PDF" + +#: flatcamGUI/FlatCAMGUI.py:1730 +msgid "Save Project" +msgstr "Сохранить проект" + +#: flatcamGUI/FlatCAMGUI.py:1730 +msgid "Toggle Plot Area" +msgstr "Переключить рабочую область" + +#: flatcamGUI/FlatCAMGUI.py:1733 +msgid "Copy Obj_Name" +msgstr "Копировать имя объекта" + +#: flatcamGUI/FlatCAMGUI.py:1734 +msgid "Toggle Code Editor" +msgstr "Переключить редактор кода" + +#: flatcamGUI/FlatCAMGUI.py:1734 +msgid "Toggle the axis" +msgstr "Переключить ось" + +#: flatcamGUI/FlatCAMGUI.py:1734 flatcamGUI/FlatCAMGUI.py:1933 +#: flatcamGUI/FlatCAMGUI.py:2020 flatcamGUI/FlatCAMGUI.py:2142 +msgid "Distance Minimum Tool" +msgstr "Минимальное расстояние" + +#: flatcamGUI/FlatCAMGUI.py:1735 +msgid "Open Preferences Window" +msgstr "Открыть окно настроек" + +#: flatcamGUI/FlatCAMGUI.py:1736 +msgid "Rotate by 90 degree CCW" +msgstr "Поворот на 90 градусов против часовой стрелки" + +#: flatcamGUI/FlatCAMGUI.py:1736 +msgid "Run a Script" +msgstr "Запустить сценарий" + +#: flatcamGUI/FlatCAMGUI.py:1736 +msgid "Toggle the workspace" +msgstr "Переключить рабочее пространство" + +#: flatcamGUI/FlatCAMGUI.py:1736 +msgid "Skew on X axis" +msgstr "Наклон по оси X" + +#: flatcamGUI/FlatCAMGUI.py:1737 +msgid "Skew on Y axis" +msgstr "Наклон по оси Y" + +#: flatcamGUI/FlatCAMGUI.py:1740 +msgid "2-Sided PCB Tool" +msgstr "2-х сторонняя плата" + +#: flatcamGUI/FlatCAMGUI.py:1740 +msgid "Transformations Tool" +msgstr "Трансформация" + +#: flatcamGUI/FlatCAMGUI.py:1742 +msgid "Solder Paste Dispensing Tool" +msgstr "Паяльная паста" + +#: flatcamGUI/FlatCAMGUI.py:1743 +msgid "Film PCB Tool" +msgstr "Плёнка" + +#: flatcamGUI/FlatCAMGUI.py:1743 +msgid "Non-Copper Clearing Tool" +msgstr "Очистка от меди" + +#: flatcamGUI/FlatCAMGUI.py:1744 +msgid "Paint Area Tool" +msgstr "Инструмент рисования" + +#: flatcamGUI/FlatCAMGUI.py:1744 +msgid "Rules Check Tool" +msgstr "Проверка правил" + +#: flatcamGUI/FlatCAMGUI.py:1745 +msgid "View File Source" +msgstr "Просмотреть код" + +#: flatcamGUI/FlatCAMGUI.py:1746 +msgid "Cutout PCB Tool" +msgstr "Обрезка платы" + +#: flatcamGUI/FlatCAMGUI.py:1746 +msgid "Enable all Plots" +msgstr "Включить все участки" + +#: flatcamGUI/FlatCAMGUI.py:1746 +msgid "Disable all Plots" msgstr "Отключить все участки" -#: AppGUI/MainGUI.py:1433 -msgid "Replot" -msgstr "Перерисовать" +#: flatcamGUI/FlatCAMGUI.py:1746 +msgid "Disable Non-selected Plots" +msgstr "Отключить не выбранные" -#: AppGUI/MainGUI.py:1437 -msgid "Geo Editor" -msgstr "Редактор Geo" +#: flatcamGUI/FlatCAMGUI.py:1747 +msgid "Toggle Full Screen" +msgstr "Во весь экран" -#: AppGUI/MainGUI.py:1439 -msgid "Path" -msgstr "Дорожка" +#: flatcamGUI/FlatCAMGUI.py:1750 +msgid "Abort current task (gracefully)" +msgstr "Прервать текущее задание (корректно)" -#: AppGUI/MainGUI.py:1441 -msgid "Rectangle" -msgstr "Прямоугольник" +#: flatcamGUI/FlatCAMGUI.py:1753 +msgid "Save Project As" +msgstr "Сохранить проект как" -#: AppGUI/MainGUI.py:1444 -msgid "Circle" +#: flatcamGUI/FlatCAMGUI.py:1754 +msgid "" +"Paste Special. Will convert a Windows path style to the one required in Tcl " +"Shell" +msgstr "" +"Специальная вставка. Преобразует стиль пути Windows в тот, который требуется " +"в Tcl Shell" + +#: flatcamGUI/FlatCAMGUI.py:1757 +msgid "Open Online Manual" +msgstr "Открыть онлайн-руководство" + +#: flatcamGUI/FlatCAMGUI.py:1758 +msgid "Open Online Tutorials" +msgstr "Открыть онлайн-уроки" + +#: flatcamGUI/FlatCAMGUI.py:1758 +msgid "Refresh Plots" +msgstr "Обновить участки" + +#: flatcamGUI/FlatCAMGUI.py:1758 flatcamTools/ToolSolderPaste.py:509 +msgid "Delete Object" +msgstr "Удалить объект" + +#: flatcamGUI/FlatCAMGUI.py:1758 +msgid "Alternate: Delete Tool" +msgstr "Альтернатива: Удалить инструмент" + +#: flatcamGUI/FlatCAMGUI.py:1759 +msgid "(left to Key_1)Toggle Notebook Area (Left Side)" +msgstr "(слева от клавиши \"1\") Боковая панель" + +#: flatcamGUI/FlatCAMGUI.py:1759 +msgid "En(Dis)able Obj Plot" +msgstr "Включить/Отключить участок" + +#: flatcamGUI/FlatCAMGUI.py:1760 +msgid "Deselects all objects" +msgstr "Отмена выбора всех объектов" + +#: flatcamGUI/FlatCAMGUI.py:1774 +msgid "Editor Shortcut list" +msgstr "Список комбинаций клавиш редактора" + +#: flatcamGUI/FlatCAMGUI.py:1928 +msgid "GEOMETRY EDITOR" +msgstr "РЕДАКТОР GEOMETRY" + +#: flatcamGUI/FlatCAMGUI.py:1928 +msgid "Draw an Arc" +msgstr "Нарисовать дугу" + +#: flatcamGUI/FlatCAMGUI.py:1928 +msgid "Copy Geo Item" +msgstr "Копировать элемент Geo" + +#: flatcamGUI/FlatCAMGUI.py:1929 +msgid "Within Add Arc will toogle the ARC direction: CW or CCW" +msgstr "" +"При добавлении дуги будет переключаться направление изгиба: по часовой " +"стрелке или против" + +#: flatcamGUI/FlatCAMGUI.py:1929 +msgid "Polygon Intersection Tool" +msgstr "Пересечение полигонов" + +#: flatcamGUI/FlatCAMGUI.py:1930 +msgid "Geo Paint Tool" +msgstr "Рисование" + +#: flatcamGUI/FlatCAMGUI.py:1930 flatcamGUI/FlatCAMGUI.py:2019 +#: flatcamGUI/FlatCAMGUI.py:2139 +msgid "Jump to Location (x, y)" +msgstr "Перейти к координатам (x, y)" + +#: flatcamGUI/FlatCAMGUI.py:1930 +msgid "Toggle Corner Snap" +msgstr "Привязка к углу" + +#: flatcamGUI/FlatCAMGUI.py:1930 +msgid "Move Geo Item" +msgstr "Переместить элемент Geo" + +#: flatcamGUI/FlatCAMGUI.py:1931 +msgid "Within Add Arc will cycle through the ARC modes" +msgstr "При добавлении дуги будет переключаться между режимами дуги" + +#: flatcamGUI/FlatCAMGUI.py:1931 +msgid "Draw a Polygon" +msgstr "Полигон" + +#: flatcamGUI/FlatCAMGUI.py:1931 +msgid "Draw a Circle" msgstr "Круг" -#: AppGUI/MainGUI.py:1448 -msgid "Arc" -msgstr "Дуга" +#: flatcamGUI/FlatCAMGUI.py:1932 +msgid "Draw a Path" +msgstr "Нарисовать линию" -#: AppGUI/MainGUI.py:1462 -msgid "Union" -msgstr "Объединение" +#: flatcamGUI/FlatCAMGUI.py:1932 +msgid "Draw Rectangle" +msgstr "Прямоугольник" -#: AppGUI/MainGUI.py:1464 -msgid "Intersection" -msgstr "Пересечение" +#: flatcamGUI/FlatCAMGUI.py:1932 +msgid "Polygon Subtraction Tool" +msgstr "Вычитание полигонов" -#: AppGUI/MainGUI.py:1466 -msgid "Subtraction" -msgstr "Вычитание" +#: flatcamGUI/FlatCAMGUI.py:1932 +msgid "Add Text Tool" +msgstr "Текст" -#: AppGUI/MainGUI.py:1468 AppGUI/ObjectUI.py:2151 -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:56 -msgid "Cut" -msgstr "Вырезы" +#: flatcamGUI/FlatCAMGUI.py:1933 +msgid "Polygon Union Tool" +msgstr "Сращение полигонов" -#: AppGUI/MainGUI.py:1479 -msgid "Pad" -msgstr "Площадка" +#: flatcamGUI/FlatCAMGUI.py:1933 +msgid "Flip shape on X axis" +msgstr "Отразить форму по оси X" -#: AppGUI/MainGUI.py:1481 -msgid "Pad Array" -msgstr "Массив площадок" +#: flatcamGUI/FlatCAMGUI.py:1933 +msgid "Flip shape on Y axis" +msgstr "Отразить форму по оси Y" -#: AppGUI/MainGUI.py:1485 -msgid "Track" -msgstr "Трек" +#: flatcamGUI/FlatCAMGUI.py:1934 +msgid "Skew shape on X axis" +msgstr "Наклонить форму по оси X" -#: AppGUI/MainGUI.py:1487 -msgid "Region" -msgstr "Регион" +#: flatcamGUI/FlatCAMGUI.py:1934 +msgid "Skew shape on Y axis" +msgstr "Наклонить форму по оси Y" -#: AppGUI/MainGUI.py:1510 -msgid "Exc Editor" -msgstr "Редактор Excellon" +#: flatcamGUI/FlatCAMGUI.py:1934 +msgid "Editor Transformation Tool" +msgstr "Трансформация" -#: AppGUI/MainGUI.py:1512 AppGUI/MainGUI.py:4391 +#: flatcamGUI/FlatCAMGUI.py:1935 +msgid "Offset shape on X axis" +msgstr "Смещение формы по оси X" + +#: flatcamGUI/FlatCAMGUI.py:1935 +msgid "Offset shape on Y axis" +msgstr "Смещение формы по оси Y" + +#: flatcamGUI/FlatCAMGUI.py:1936 flatcamGUI/FlatCAMGUI.py:2022 +#: flatcamGUI/FlatCAMGUI.py:2144 +msgid "Save Object and Exit Editor" +msgstr "Сохранить объект и закрыть редактор" + +#: flatcamGUI/FlatCAMGUI.py:1936 +msgid "Polygon Cut Tool" +msgstr "Вычитание полигонов" + +#: flatcamGUI/FlatCAMGUI.py:1937 +msgid "Rotate Geometry" +msgstr "Повернуть геометрию" + +#: flatcamGUI/FlatCAMGUI.py:1937 +msgid "Finish drawing for certain tools" +msgstr "Завершить рисование для некоторых инструментов" + +#: flatcamGUI/FlatCAMGUI.py:1937 flatcamGUI/FlatCAMGUI.py:2022 +#: flatcamGUI/FlatCAMGUI.py:2142 +msgid "Abort and return to Select" +msgstr "Прервать и вернуться к выбору" + +#: flatcamGUI/FlatCAMGUI.py:1938 flatcamGUI/FlatCAMGUI.py:2734 +msgid "Delete Shape" +msgstr "Удалить фигуру" + +#: flatcamGUI/FlatCAMGUI.py:2018 +msgid "EXCELLON EDITOR" +msgstr "РЕДАКТОР EXCELLON" + +#: flatcamGUI/FlatCAMGUI.py:2018 +msgid "Copy Drill(s)" +msgstr "Копировать отверстие" + +#: flatcamGUI/FlatCAMGUI.py:2018 flatcamGUI/FlatCAMGUI.py:2268 msgid "Add Drill" msgstr "Добавить сверло" -#: AppGUI/MainGUI.py:1531 App_Main.py:2219 -msgid "Close Editor" -msgstr "Закрыть редактор" +#: flatcamGUI/FlatCAMGUI.py:2019 +msgid "Move Drill(s)" +msgstr "Переместить отверстие" -#: AppGUI/MainGUI.py:1555 +#: flatcamGUI/FlatCAMGUI.py:2020 +msgid "Add a new Tool" +msgstr "Добавить инструмент" + +#: flatcamGUI/FlatCAMGUI.py:2021 +msgid "Delete Drill(s)" +msgstr "Удалить отверстие" + +#: flatcamGUI/FlatCAMGUI.py:2021 +msgid "Alternate: Delete Tool(s)" +msgstr "Альтернатива: Удалить инструмент(ы)" + +#: flatcamGUI/FlatCAMGUI.py:2138 +msgid "GERBER EDITOR" +msgstr "РЕДАКТОР GERBER" + +#: flatcamGUI/FlatCAMGUI.py:2138 +msgid "Add Disc" +msgstr "Добавить круг" + +#: flatcamGUI/FlatCAMGUI.py:2138 +msgid "Add SemiDisc" +msgstr "Добавить полукруг" + +#: flatcamGUI/FlatCAMGUI.py:2140 +msgid "Within Track & Region Tools will cycle in REVERSE the bend modes" +msgstr "" +"В пределах трека и региона инструмент будет работать в обратном режиме изгиба" + +#: flatcamGUI/FlatCAMGUI.py:2141 +msgid "Within Track & Region Tools will cycle FORWARD the bend modes" +msgstr "" +"В пределах трека и региона инструмент будет циклически изменять режимы изгиба" + +#: flatcamGUI/FlatCAMGUI.py:2142 +msgid "Alternate: Delete Apertures" +msgstr "Альтернатива: Удалить отверстия" + +#: flatcamGUI/FlatCAMGUI.py:2143 +msgid "Eraser Tool" +msgstr "Ластик" + +#: flatcamGUI/FlatCAMGUI.py:2144 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:220 +msgid "Mark Area Tool" +msgstr "Инструмент «Обозначить область»" + +#: flatcamGUI/FlatCAMGUI.py:2144 +msgid "Poligonize Tool" +msgstr "Полигонизация" + +#: flatcamGUI/FlatCAMGUI.py:2144 +msgid "Transformation Tool" +msgstr "Трансформация" + +#: flatcamGUI/FlatCAMGUI.py:2161 +msgid "Toggle Visibility" +msgstr "Переключить видимость" + +#: flatcamGUI/FlatCAMGUI.py:2167 +msgid "New" +msgstr "Создать" + +#: flatcamGUI/FlatCAMGUI.py:2169 flatcamGUI/ObjectUI.py:450 +#: flatcamObjects/FlatCAMGerber.py:239 flatcamObjects/FlatCAMGerber.py:327 +#: flatcamTools/ToolCalibration.py:631 flatcamTools/ToolCalibration.py:648 +#: flatcamTools/ToolCalibration.py:815 flatcamTools/ToolCopperThieving.py:144 +#: flatcamTools/ToolCopperThieving.py:158 +#: flatcamTools/ToolCopperThieving.py:604 flatcamTools/ToolCutOut.py:92 +#: flatcamTools/ToolDblSided.py:226 flatcamTools/ToolFilm.py:69 +#: flatcamTools/ToolFilm.py:102 flatcamTools/ToolFilm.py:549 +#: flatcamTools/ToolFilm.py:557 flatcamTools/ToolImage.py:49 +#: flatcamTools/ToolImage.py:271 flatcamTools/ToolNCC.py:95 +#: flatcamTools/ToolNCC.py:558 flatcamTools/ToolNCC.py:1300 +#: flatcamTools/ToolPaint.py:502 flatcamTools/ToolPaint.py:706 +#: flatcamTools/ToolPanelize.py:118 flatcamTools/ToolPanelize.py:374 +#: flatcamTools/ToolPanelize.py:391 +msgid "Geometry" +msgstr "Geometry" + +#: flatcamGUI/FlatCAMGUI.py:2173 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:99 +#: flatcamTools/ToolAlignObjects.py:74 flatcamTools/ToolAlignObjects.py:110 +#: flatcamTools/ToolCalibration.py:197 flatcamTools/ToolCalibration.py:631 +#: flatcamTools/ToolCalibration.py:648 flatcamTools/ToolCalibration.py:807 +#: flatcamTools/ToolCalibration.py:815 flatcamTools/ToolCopperThieving.py:144 +#: flatcamTools/ToolCopperThieving.py:158 +#: flatcamTools/ToolCopperThieving.py:604 flatcamTools/ToolDblSided.py:225 +#: flatcamTools/ToolFilm.py:359 flatcamTools/ToolNCC.py:558 +#: flatcamTools/ToolNCC.py:1300 flatcamTools/ToolPaint.py:502 +#: flatcamTools/ToolPaint.py:706 flatcamTools/ToolPanelize.py:374 +#: flatcamTools/ToolPunchGerber.py:149 flatcamTools/ToolPunchGerber.py:164 +msgid "Excellon" +msgstr "Excellon" + +#: flatcamGUI/FlatCAMGUI.py:2180 +msgid "Grids" +msgstr "Сетка" + +#: flatcamGUI/FlatCAMGUI.py:2187 +msgid "Clear Plot" +msgstr "Отключить все участки" + +#: flatcamGUI/FlatCAMGUI.py:2189 +msgid "Replot" +msgstr "Перерисовать" + +#: flatcamGUI/FlatCAMGUI.py:2193 +msgid "Geo Editor" +msgstr "Редактор Geo" + +#: flatcamGUI/FlatCAMGUI.py:2195 +msgid "Path" +msgstr "Дорожка" + +#: flatcamGUI/FlatCAMGUI.py:2197 +msgid "Rectangle" +msgstr "Прямоугольник" + +#: flatcamGUI/FlatCAMGUI.py:2200 +msgid "Circle" +msgstr "Круг" + +#: flatcamGUI/FlatCAMGUI.py:2204 +msgid "Arc" +msgstr "Дуга" + +#: flatcamGUI/FlatCAMGUI.py:2218 +msgid "Union" +msgstr "Объединение" + +#: flatcamGUI/FlatCAMGUI.py:2220 +msgid "Intersection" +msgstr "Пересечение" + +#: flatcamGUI/FlatCAMGUI.py:2222 +msgid "Subtraction" +msgstr "Вычитание" + +#: flatcamGUI/FlatCAMGUI.py:2224 flatcamGUI/ObjectUI.py:2221 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:56 +msgid "Cut" +msgstr "Вырезы" + +#: flatcamGUI/FlatCAMGUI.py:2235 +msgid "Pad" +msgstr "Площадка" + +#: flatcamGUI/FlatCAMGUI.py:2237 +msgid "Pad Array" +msgstr "Массив площадок" + +#: flatcamGUI/FlatCAMGUI.py:2241 +msgid "Track" +msgstr "Трек" + +#: flatcamGUI/FlatCAMGUI.py:2243 +msgid "Region" +msgstr "Регион" + +#: flatcamGUI/FlatCAMGUI.py:2266 +msgid "Exc Editor" +msgstr "Редактор Excellon" + +#: flatcamGUI/FlatCAMGUI.py:2311 +msgid "" +"Relative measurement.\n" +"Reference is last click position" +msgstr "" +"Относительное измерение.\n" +"Ссылка-это позиция последнего клика" + +#: flatcamGUI/FlatCAMGUI.py:2317 msgid "" "Absolute measurement.\n" "Reference is (X=0, Y= 0) position" @@ -4768,62 +6961,35 @@ msgstr "" "Абсолютное измерение.\n" "Указатель в точке (X=0, Y= 0)" -#: AppGUI/MainGUI.py:1563 -#, fuzzy -#| msgid "Application started ..." -msgid "Application units" -msgstr "Приложение запущено ..." - -#: AppGUI/MainGUI.py:1654 +#: flatcamGUI/FlatCAMGUI.py:2419 msgid "Lock Toolbars" msgstr "Заблокировать панели" -#: AppGUI/MainGUI.py:1824 +#: flatcamGUI/FlatCAMGUI.py:2505 msgid "FlatCAM Preferences Folder opened." msgstr "Папка настроек FlatCAM открыта." -#: AppGUI/MainGUI.py:1835 +#: flatcamGUI/FlatCAMGUI.py:2516 msgid "Are you sure you want to delete the GUI Settings? \n" msgstr "Вы уверены, что хотите сбросить настройки интерфейса?\n" -#: AppGUI/MainGUI.py:1840 AppGUI/preferences/PreferencesUIManager.py:877 -#: AppGUI/preferences/PreferencesUIManager.py:1123 AppTranslation.py:111 -#: AppTranslation.py:210 App_Main.py:2223 App_Main.py:3158 App_Main.py:5354 -#: App_Main.py:6415 -msgid "Yes" -msgstr "Да" - -#: AppGUI/MainGUI.py:1841 AppGUI/preferences/PreferencesUIManager.py:1124 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:62 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:164 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:150 -#: AppTools/ToolIsolation.py:174 AppTools/ToolNCC.py:182 -#: AppTools/ToolPaint.py:165 AppTranslation.py:112 AppTranslation.py:211 -#: App_Main.py:2224 App_Main.py:3159 App_Main.py:5355 App_Main.py:6416 -msgid "No" -msgstr "Нет" - -#: AppGUI/MainGUI.py:1940 +#: flatcamGUI/FlatCAMGUI.py:2624 msgid "&Cutout Tool" msgstr "&Обрезка платы" -#: AppGUI/MainGUI.py:2016 +#: flatcamGUI/FlatCAMGUI.py:2694 msgid "Select 'Esc'" msgstr "Выбор 'Esc'" -#: AppGUI/MainGUI.py:2054 +#: flatcamGUI/FlatCAMGUI.py:2732 msgid "Copy Objects" msgstr "Копировать объекты" -#: AppGUI/MainGUI.py:2056 AppGUI/MainGUI.py:4311 -msgid "Delete Shape" -msgstr "Удалить фигуру" - -#: AppGUI/MainGUI.py:2062 +#: flatcamGUI/FlatCAMGUI.py:2740 msgid "Move Objects" msgstr "Переместить объект" -#: AppGUI/MainGUI.py:2648 +#: flatcamGUI/FlatCAMGUI.py:3363 msgid "" "Please first select a geometry item to be cutted\n" "then select the geometry item that will be cutted\n" @@ -4835,12 +7001,12 @@ msgstr "" "из первого пункта. В конце нажмите клавишу ~X~ или\n" "кнопка панели инструментов." -#: AppGUI/MainGUI.py:2655 AppGUI/MainGUI.py:2819 AppGUI/MainGUI.py:2866 -#: AppGUI/MainGUI.py:2888 +#: flatcamGUI/FlatCAMGUI.py:3370 flatcamGUI/FlatCAMGUI.py:3532 +#: flatcamGUI/FlatCAMGUI.py:3577 flatcamGUI/FlatCAMGUI.py:3597 msgid "Warning" msgstr "Внимание" -#: AppGUI/MainGUI.py:2814 +#: flatcamGUI/FlatCAMGUI.py:3527 msgid "" "Please select geometry items \n" "on which to perform Intersection Tool." @@ -4848,7 +7014,7 @@ msgstr "" "Пожалуйста, выберите элементы геометрии \n" "на котором выполняется инструмент пересечение." -#: AppGUI/MainGUI.py:2861 +#: flatcamGUI/FlatCAMGUI.py:3572 msgid "" "Please select geometry items \n" "on which to perform Substraction Tool." @@ -4856,7 +7022,7 @@ msgstr "" "Пожалуйста, выберите элементы геометрии \n" "на котором выполнить вычитание инструмента." -#: AppGUI/MainGUI.py:2883 +#: flatcamGUI/FlatCAMGUI.py:3592 msgid "" "Please select geometry items \n" "on which to perform union." @@ -4864,520 +7030,109 @@ msgstr "" "Пожалуйста, выберите элементы геометрии \n" "на котором выполнять объединение." -#: AppGUI/MainGUI.py:2968 AppGUI/MainGUI.py:3183 +#: flatcamGUI/FlatCAMGUI.py:3675 flatcamGUI/FlatCAMGUI.py:3890 msgid "Cancelled. Nothing selected to delete." msgstr "Отмена. Ничего не выбрано для удаления." -#: AppGUI/MainGUI.py:3052 AppGUI/MainGUI.py:3299 +#: flatcamGUI/FlatCAMGUI.py:3759 flatcamGUI/FlatCAMGUI.py:4006 msgid "Cancelled. Nothing selected to copy." msgstr "Отмена. Ничего не выбрано для копирования." -#: AppGUI/MainGUI.py:3098 AppGUI/MainGUI.py:3328 +#: flatcamGUI/FlatCAMGUI.py:3805 flatcamGUI/FlatCAMGUI.py:4035 msgid "Cancelled. Nothing selected to move." msgstr "Отмена. Ничего не выбрано для перемещения." -#: AppGUI/MainGUI.py:3354 +#: flatcamGUI/FlatCAMGUI.py:4061 msgid "New Tool ..." msgstr "Новый инструмент ..." -#: AppGUI/MainGUI.py:3355 AppTools/ToolIsolation.py:1258 -#: AppTools/ToolNCC.py:924 AppTools/ToolPaint.py:849 -#: AppTools/ToolSolderPaste.py:568 +#: flatcamGUI/FlatCAMGUI.py:4062 flatcamTools/ToolNCC.py:924 +#: flatcamTools/ToolPaint.py:850 flatcamTools/ToolSolderPaste.py:560 msgid "Enter a Tool Diameter" msgstr "Введите диаметр инструмента" -#: AppGUI/MainGUI.py:3367 +#: flatcamGUI/FlatCAMGUI.py:4074 msgid "Adding Tool cancelled ..." msgstr "Добавление инструмента отменено ..." -#: AppGUI/MainGUI.py:3381 +#: flatcamGUI/FlatCAMGUI.py:4088 msgid "Distance Tool exit..." msgstr "Измеритель закрыт ..." -#: AppGUI/MainGUI.py:3561 App_Main.py:3146 -msgid "Application is saving the project. Please wait ..." -msgstr "Приложение сохраняет проект. Пожалуйста, подождите ..." +#: flatcamGUI/FlatCAMGUI.py:4323 flatcamGUI/FlatCAMGUI.py:4330 +msgid "Idle." +msgstr "Нет заданий." -#: AppGUI/MainGUI.py:3668 -#, fuzzy -#| msgid "Disabled" -msgid "Shell disabled." -msgstr "Отключено" +#: flatcamGUI/FlatCAMGUI.py:4361 +msgid "Application started ..." +msgstr "Приложение запущено ..." -#: AppGUI/MainGUI.py:3678 -#, fuzzy -#| msgid "Enabled" -msgid "Shell enabled." -msgstr "Включено" +#: flatcamGUI/FlatCAMGUI.py:4362 +msgid "Hello!" +msgstr "Приветствую!" -#: AppGUI/MainGUI.py:3706 App_Main.py:9155 -msgid "Shortcut Key List" -msgstr "Список комбинаций клавиш" +#: flatcamGUI/FlatCAMGUI.py:4424 +msgid "Open Project ..." +msgstr "Открыть проект..." -#: AppGUI/MainGUI.py:4089 -#, fuzzy -#| msgid "Key Shortcut List" -msgid "General Shortcut list" -msgstr "Список комбинаций клавиш" +#: flatcamGUI/FlatCAMGUI.py:4450 +msgid "Exit" +msgstr "Выход" -#: AppGUI/MainGUI.py:4090 -msgid "SHOW SHORTCUT LIST" -msgstr "ПОКАЗАТЬ СПИСОК КОМБИНАЦИЙ КЛАВИШ" +#: flatcamGUI/GUIElements.py:2513 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:180 +#: flatcamTools/ToolDblSided.py:173 flatcamTools/ToolDblSided.py:388 +#: flatcamTools/ToolFilm.py:219 +msgid "Reference" +msgstr "Ссылка" -#: AppGUI/MainGUI.py:4090 -msgid "Switch to Project Tab" -msgstr "Переключиться на вкладку \"Проект\"" - -#: AppGUI/MainGUI.py:4090 -msgid "Switch to Selected Tab" -msgstr "Переключиться на вкладку \"Выбранное\"" - -#: AppGUI/MainGUI.py:4091 -msgid "Switch to Tool Tab" -msgstr "Переключиться на вкладку свойств" - -#: AppGUI/MainGUI.py:4092 -msgid "New Gerber" -msgstr "Создать Gerber" - -#: AppGUI/MainGUI.py:4092 -msgid "Edit Object (if selected)" -msgstr "Редактировать объект (если выбран)" - -#: AppGUI/MainGUI.py:4092 App_Main.py:5658 -msgid "Grid On/Off" -msgstr "Сетка вкл/откл" - -#: AppGUI/MainGUI.py:4092 -msgid "Jump to Coordinates" -msgstr "Перейти к координатам" - -#: AppGUI/MainGUI.py:4093 -msgid "New Excellon" -msgstr "Создать Excellon" - -#: AppGUI/MainGUI.py:4093 -msgid "Move Obj" -msgstr "Переместить объект" - -#: AppGUI/MainGUI.py:4093 -msgid "New Geometry" -msgstr "Создать Geometry" - -#: AppGUI/MainGUI.py:4093 -msgid "Change Units" -msgstr "Единицы измерения" - -#: AppGUI/MainGUI.py:4094 -msgid "Open Properties Tool" -msgstr "Свойства" - -#: AppGUI/MainGUI.py:4094 -msgid "Rotate by 90 degree CW" -msgstr "Поворот на 90 градусов по часовой стрелке" - -#: AppGUI/MainGUI.py:4094 -msgid "Shell Toggle" -msgstr "Панель командной строки" - -#: AppGUI/MainGUI.py:4095 +#: flatcamGUI/GUIElements.py:2515 msgid "" -"Add a Tool (when in Geometry Selected Tab or in Tools NCC or Tools Paint)" +"The reference can be:\n" +"- Absolute -> the reference point is point (0,0)\n" +"- Relative -> the reference point is the mouse position before Jump" msgstr "" -"Добавить инструмент (во вкладках \"Выбранное\", \"Инструменты\" или " -"инструменте рисования)" +"Указатель может быть:\n" +"- Абсолютный -> точка отсчета - это точка (0,0)\n" +"- Относительный -> опорной точкой является положение мыши перед перемещением" -#: AppGUI/MainGUI.py:4096 -msgid "Flip on X_axis" -msgstr "Отразить по оси X" +#: flatcamGUI/GUIElements.py:2520 +msgid "Abs" +msgstr "Абс" -#: AppGUI/MainGUI.py:4096 -msgid "Flip on Y_axis" -msgstr "Отразить по оси Y" +#: flatcamGUI/GUIElements.py:2521 +msgid "Relative" +msgstr "Относительный" -#: AppGUI/MainGUI.py:4099 -msgid "Copy Obj" -msgstr "Копировать объекты" +#: flatcamGUI/GUIElements.py:2531 +msgid "Location" +msgstr "Местоположение" -#: AppGUI/MainGUI.py:4099 -msgid "Open Tools Database" -msgstr "Открыть БД" - -#: AppGUI/MainGUI.py:4100 -msgid "Open Excellon File" -msgstr "Открыть Excellon" - -#: AppGUI/MainGUI.py:4100 -msgid "Open Gerber File" -msgstr "Открыть Gerber" - -#: AppGUI/MainGUI.py:4100 -msgid "New Project" -msgstr "Новый проект" - -#: AppGUI/MainGUI.py:4101 App_Main.py:6711 App_Main.py:6714 -msgid "Open Project" -msgstr "Открыть проект" - -#: AppGUI/MainGUI.py:4101 AppTools/ToolPDF.py:41 -msgid "PDF Import Tool" -msgstr "Импорт PDF" - -#: AppGUI/MainGUI.py:4101 -msgid "Save Project" -msgstr "Сохранить проект" - -#: AppGUI/MainGUI.py:4101 -msgid "Toggle Plot Area" -msgstr "Переключить рабочую область" - -#: AppGUI/MainGUI.py:4104 -msgid "Copy Obj_Name" -msgstr "Копировать имя объекта" - -#: AppGUI/MainGUI.py:4105 -msgid "Toggle Code Editor" -msgstr "Переключить редактор кода" - -#: AppGUI/MainGUI.py:4105 -msgid "Toggle the axis" -msgstr "Переключить ось" - -#: AppGUI/MainGUI.py:4105 AppGUI/MainGUI.py:4306 AppGUI/MainGUI.py:4393 -#: AppGUI/MainGUI.py:4515 -msgid "Distance Minimum Tool" -msgstr "Минимальное расстояние" - -#: AppGUI/MainGUI.py:4106 -msgid "Open Preferences Window" -msgstr "Открыть окно настроек" - -#: AppGUI/MainGUI.py:4107 -msgid "Rotate by 90 degree CCW" -msgstr "Поворот на 90 градусов против часовой стрелки" - -#: AppGUI/MainGUI.py:4107 -msgid "Run a Script" -msgstr "Запустить сценарий" - -#: AppGUI/MainGUI.py:4107 -msgid "Toggle the workspace" -msgstr "Переключить рабочее пространство" - -#: AppGUI/MainGUI.py:4107 -msgid "Skew on X axis" -msgstr "Наклон по оси X" - -#: AppGUI/MainGUI.py:4108 -msgid "Skew on Y axis" -msgstr "Наклон по оси Y" - -#: AppGUI/MainGUI.py:4111 -msgid "2-Sided PCB Tool" -msgstr "2-х сторонняя плата" - -#: AppGUI/MainGUI.py:4112 -#, fuzzy -#| msgid "&Toggle Grid Lines\tAlt+G" -msgid "Toggle Grid Lines" -msgstr "&Переключить линии сетки \tAlt+G" - -#: AppGUI/MainGUI.py:4114 -msgid "Solder Paste Dispensing Tool" -msgstr "Паяльная паста" - -#: AppGUI/MainGUI.py:4115 -msgid "Film PCB Tool" -msgstr "Плёнка" - -#: AppGUI/MainGUI.py:4115 -msgid "Non-Copper Clearing Tool" -msgstr "Очистка от меди" - -#: AppGUI/MainGUI.py:4116 -msgid "Paint Area Tool" -msgstr "Инструмент рисования" - -#: AppGUI/MainGUI.py:4116 -msgid "Rules Check Tool" -msgstr "Проверка правил" - -#: AppGUI/MainGUI.py:4117 -msgid "View File Source" -msgstr "Просмотреть код" - -#: AppGUI/MainGUI.py:4117 -msgid "Transformations Tool" -msgstr "Трансформация" - -#: AppGUI/MainGUI.py:4118 -msgid "Cutout PCB Tool" -msgstr "Обрезка платы" - -#: AppGUI/MainGUI.py:4118 AppTools/ToolPanelize.py:35 -msgid "Panelize PCB" -msgstr "Панелизация" - -#: AppGUI/MainGUI.py:4119 -msgid "Enable all Plots" -msgstr "Включить все участки" - -#: AppGUI/MainGUI.py:4119 -msgid "Disable all Plots" -msgstr "Отключить все участки" - -#: AppGUI/MainGUI.py:4119 -msgid "Disable Non-selected Plots" -msgstr "Отключить не выбранные" - -#: AppGUI/MainGUI.py:4120 -msgid "Toggle Full Screen" -msgstr "Во весь экран" - -#: AppGUI/MainGUI.py:4123 -msgid "Abort current task (gracefully)" -msgstr "Прервать текущее задание (корректно)" - -#: AppGUI/MainGUI.py:4126 -msgid "Save Project As" -msgstr "Сохранить проект как" - -#: AppGUI/MainGUI.py:4127 +#: flatcamGUI/GUIElements.py:2533 msgid "" -"Paste Special. Will convert a Windows path style to the one required in Tcl " -"Shell" +"The Location value is a tuple (x,y).\n" +"If the reference is Absolute then the Jump will be at the position (x,y).\n" +"If the reference is Relative then the Jump will be at the (x,y) distance\n" +"from the current mouse location point." msgstr "" -"Специальная вставка. Преобразует стиль пути Windows в тот, который требуется " -"в Tcl Shell" +"Значение местоположения - это кортеж (x, y).\n" +"Если задание является абсолютным, то переход будет в положении (x, y).\n" +"Если ссылка является относительной, то переход будет на расстоянии (x, y)\n" +"от текущей точки расположения мыши." -#: AppGUI/MainGUI.py:4130 -msgid "Open Online Manual" -msgstr "Открыть онлайн-руководство" +#: flatcamGUI/GUIElements.py:2573 +msgid "Save Log" +msgstr "Сохранить журнал" -#: AppGUI/MainGUI.py:4131 -msgid "Open Online Tutorials" -msgstr "Открыть онлайн-уроки" +#: flatcamGUI/GUIElements.py:2592 flatcamTools/ToolShell.py:278 +msgid "Type >help< to get started" +msgstr "Введите >help< для начала работы" -#: AppGUI/MainGUI.py:4131 -msgid "Refresh Plots" -msgstr "Обновить участки" +#: flatcamGUI/ObjectUI.py:38 +msgid "FlatCAM Object" +msgstr "Объект FlatCAM" -#: AppGUI/MainGUI.py:4131 AppTools/ToolSolderPaste.py:517 -msgid "Delete Object" -msgstr "Удалить объект" - -#: AppGUI/MainGUI.py:4131 -msgid "Alternate: Delete Tool" -msgstr "Альтернатива: Удалить инструмент" - -#: AppGUI/MainGUI.py:4132 -msgid "(left to Key_1)Toggle Notebook Area (Left Side)" -msgstr "(слева от клавиши \"1\") Боковая панель" - -#: AppGUI/MainGUI.py:4132 -msgid "En(Dis)able Obj Plot" -msgstr "Включить/Отключить участок" - -#: AppGUI/MainGUI.py:4133 -msgid "Deselects all objects" -msgstr "Отмена выбора всех объектов" - -#: AppGUI/MainGUI.py:4147 -msgid "Editor Shortcut list" -msgstr "Список комбинаций клавиш редактора" - -#: AppGUI/MainGUI.py:4301 -msgid "GEOMETRY EDITOR" -msgstr "РЕДАКТОР GEOMETRY" - -#: AppGUI/MainGUI.py:4301 -msgid "Draw an Arc" -msgstr "Нарисовать дугу" - -#: AppGUI/MainGUI.py:4301 -msgid "Copy Geo Item" -msgstr "Копировать элемент Geo" - -#: AppGUI/MainGUI.py:4302 -msgid "Within Add Arc will toogle the ARC direction: CW or CCW" -msgstr "" -"При добавлении дуги будет переключаться направление изгиба: по часовой " -"стрелке или против" - -#: AppGUI/MainGUI.py:4302 -msgid "Polygon Intersection Tool" -msgstr "Пересечение полигонов" - -#: AppGUI/MainGUI.py:4303 -msgid "Geo Paint Tool" -msgstr "Рисование" - -#: AppGUI/MainGUI.py:4303 AppGUI/MainGUI.py:4392 AppGUI/MainGUI.py:4512 -msgid "Jump to Location (x, y)" -msgstr "Перейти к координатам (x, y)" - -#: AppGUI/MainGUI.py:4303 -msgid "Toggle Corner Snap" -msgstr "Привязка к углу" - -#: AppGUI/MainGUI.py:4303 -msgid "Move Geo Item" -msgstr "Переместить элемент Geo" - -#: AppGUI/MainGUI.py:4304 -msgid "Within Add Arc will cycle through the ARC modes" -msgstr "При добавлении дуги будет переключаться между режимами дуги" - -#: AppGUI/MainGUI.py:4304 -msgid "Draw a Polygon" -msgstr "Полигон" - -#: AppGUI/MainGUI.py:4304 -msgid "Draw a Circle" -msgstr "Круг" - -#: AppGUI/MainGUI.py:4305 -msgid "Draw a Path" -msgstr "Нарисовать линию" - -#: AppGUI/MainGUI.py:4305 -msgid "Draw Rectangle" -msgstr "Прямоугольник" - -#: AppGUI/MainGUI.py:4305 -msgid "Polygon Subtraction Tool" -msgstr "Вычитание полигонов" - -#: AppGUI/MainGUI.py:4305 -msgid "Add Text Tool" -msgstr "Текст" - -#: AppGUI/MainGUI.py:4306 -msgid "Polygon Union Tool" -msgstr "Сращение полигонов" - -#: AppGUI/MainGUI.py:4306 -msgid "Flip shape on X axis" -msgstr "Отразить форму по оси X" - -#: AppGUI/MainGUI.py:4306 -msgid "Flip shape on Y axis" -msgstr "Отразить форму по оси Y" - -#: AppGUI/MainGUI.py:4307 -msgid "Skew shape on X axis" -msgstr "Наклонить форму по оси X" - -#: AppGUI/MainGUI.py:4307 -msgid "Skew shape on Y axis" -msgstr "Наклонить форму по оси Y" - -#: AppGUI/MainGUI.py:4307 -msgid "Editor Transformation Tool" -msgstr "Трансформация" - -#: AppGUI/MainGUI.py:4308 -msgid "Offset shape on X axis" -msgstr "Смещение формы по оси X" - -#: AppGUI/MainGUI.py:4308 -msgid "Offset shape on Y axis" -msgstr "Смещение формы по оси Y" - -#: AppGUI/MainGUI.py:4309 AppGUI/MainGUI.py:4395 AppGUI/MainGUI.py:4517 -msgid "Save Object and Exit Editor" -msgstr "Сохранить объект и закрыть редактор" - -#: AppGUI/MainGUI.py:4309 -msgid "Polygon Cut Tool" -msgstr "Вычитание полигонов" - -#: AppGUI/MainGUI.py:4310 -msgid "Rotate Geometry" -msgstr "Повернуть геометрию" - -#: AppGUI/MainGUI.py:4310 -msgid "Finish drawing for certain tools" -msgstr "Завершить рисование для некоторых инструментов" - -#: AppGUI/MainGUI.py:4310 AppGUI/MainGUI.py:4395 AppGUI/MainGUI.py:4515 -msgid "Abort and return to Select" -msgstr "Прервать и вернуться к выбору" - -#: AppGUI/MainGUI.py:4391 -msgid "EXCELLON EDITOR" -msgstr "РЕДАКТОР EXCELLON" - -#: AppGUI/MainGUI.py:4391 -msgid "Copy Drill(s)" -msgstr "Копировать отверстие" - -#: AppGUI/MainGUI.py:4392 -msgid "Move Drill(s)" -msgstr "Переместить отверстие" - -#: AppGUI/MainGUI.py:4393 -msgid "Add a new Tool" -msgstr "Добавить инструмент" - -#: AppGUI/MainGUI.py:4394 -msgid "Delete Drill(s)" -msgstr "Удалить отверстие" - -#: AppGUI/MainGUI.py:4394 -msgid "Alternate: Delete Tool(s)" -msgstr "Альтернатива: Удалить инструмент(ы)" - -#: AppGUI/MainGUI.py:4511 -msgid "GERBER EDITOR" -msgstr "РЕДАКТОР GERBER" - -#: AppGUI/MainGUI.py:4511 -msgid "Add Disc" -msgstr "Добавить круг" - -#: AppGUI/MainGUI.py:4511 -msgid "Add SemiDisc" -msgstr "Добавить полукруг" - -#: AppGUI/MainGUI.py:4513 -msgid "Within Track & Region Tools will cycle in REVERSE the bend modes" -msgstr "" -"В пределах трека и региона инструмент будет работать в обратном режиме изгиба" - -#: AppGUI/MainGUI.py:4514 -msgid "Within Track & Region Tools will cycle FORWARD the bend modes" -msgstr "" -"В пределах трека и региона инструмент будет циклически изменять режимы изгиба" - -#: AppGUI/MainGUI.py:4515 -msgid "Alternate: Delete Apertures" -msgstr "Альтернатива: Удалить отверстия" - -#: AppGUI/MainGUI.py:4516 -msgid "Eraser Tool" -msgstr "Ластик" - -#: AppGUI/MainGUI.py:4517 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:221 -msgid "Mark Area Tool" -msgstr "Инструмент «Обозначить область»" - -#: AppGUI/MainGUI.py:4517 -msgid "Poligonize Tool" -msgstr "Полигонизация" - -#: AppGUI/MainGUI.py:4517 -msgid "Transformation Tool" -msgstr "Трансформация" - -#: AppGUI/ObjectUI.py:38 -#, fuzzy -#| msgid "Object" -msgid "App Object" -msgstr "Объект" - -#: AppGUI/ObjectUI.py:78 AppTools/ToolIsolation.py:77 +#: flatcamGUI/ObjectUI.py:78 msgid "" "BASIC is suitable for a beginner. Many parameters\n" "are hidden from the user in this mode.\n" @@ -5395,11 +7150,11 @@ msgstr "" "Изменить - > настройки -> Общие и проверить:\n" "- Приложение. Уровень ' переключатель." -#: AppGUI/ObjectUI.py:111 AppGUI/ObjectUI.py:154 +#: flatcamGUI/ObjectUI.py:111 msgid "Geometrical transformations of the current object." msgstr "Геометрические преобразования текущего объекта." -#: AppGUI/ObjectUI.py:120 +#: flatcamGUI/ObjectUI.py:120 msgid "" "Factor by which to multiply\n" "geometric features of this object.\n" @@ -5409,11 +7164,11 @@ msgstr "" "масштаба объекта.\n" "Выражения разрешены. Например: 1 / 25.4" -#: AppGUI/ObjectUI.py:127 +#: flatcamGUI/ObjectUI.py:127 msgid "Perform scaling operation." msgstr "Будет выполнена операция масштабирования." -#: AppGUI/ObjectUI.py:138 +#: flatcamGUI/ObjectUI.py:138 msgid "" "Amount by which to move the object\n" "in the x and y axes in (x, y) format.\n" @@ -5423,68 +7178,61 @@ msgstr "" "по осям X и Y в формате (x, y).\n" "Выражения разрешены. Например: (1/3.2, 0.5*3)" -#: AppGUI/ObjectUI.py:145 +#: flatcamGUI/ObjectUI.py:145 msgid "Perform the offset operation." msgstr "Будет произведено смещение на заданное расстояние." -#: AppGUI/ObjectUI.py:162 AppGUI/ObjectUI.py:173 AppTool.py:280 AppTool.py:291 -msgid "Edited value is out of range" -msgstr "Отредактированное значение находится вне диапазона" - -#: AppGUI/ObjectUI.py:168 AppGUI/ObjectUI.py:175 AppTool.py:286 AppTool.py:293 -msgid "Edited value is within limits." -msgstr "Отредактированное значение находится в пределах нормы." - -#: AppGUI/ObjectUI.py:187 +#: flatcamGUI/ObjectUI.py:178 msgid "Gerber Object" msgstr "Объект Gerber" -#: AppGUI/ObjectUI.py:196 AppGUI/ObjectUI.py:496 AppGUI/ObjectUI.py:1313 -#: AppGUI/ObjectUI.py:2135 AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:30 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:33 -#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:31 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:31 +#: flatcamGUI/ObjectUI.py:187 flatcamGUI/ObjectUI.py:730 +#: flatcamGUI/ObjectUI.py:1426 flatcamGUI/ObjectUI.py:2205 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:30 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:33 +#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:31 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:31 msgid "Plot Options" msgstr "Отрисовка" -#: AppGUI/ObjectUI.py:202 AppGUI/ObjectUI.py:502 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:47 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:45 -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:119 -#: AppTools/ToolCopperThieving.py:195 +#: flatcamGUI/ObjectUI.py:193 flatcamGUI/ObjectUI.py:731 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:45 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:38 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:119 +#: flatcamTools/ToolCopperThieving.py:191 msgid "Solid" msgstr "Сплошной" -#: AppGUI/ObjectUI.py:204 AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:47 +#: flatcamGUI/ObjectUI.py:195 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:40 msgid "Solid color polygons." msgstr "Сплошной цвет полигонов." -#: AppGUI/ObjectUI.py:210 AppGUI/ObjectUI.py:510 AppGUI/ObjectUI.py:1319 +#: flatcamGUI/ObjectUI.py:201 msgid "Multi-Color" msgstr "Mногоцветный" -#: AppGUI/ObjectUI.py:212 AppGUI/ObjectUI.py:512 AppGUI/ObjectUI.py:1321 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:56 -#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:47 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:54 +#: flatcamGUI/ObjectUI.py:203 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:47 msgid "Draw polygons in different colors." msgstr "Окрашивать полигоны разными цветами." -#: AppGUI/ObjectUI.py:228 AppGUI/ObjectUI.py:548 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:40 -#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:38 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:38 +#: flatcamGUI/ObjectUI.py:209 flatcamGUI/ObjectUI.py:769 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:39 +#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:35 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:52 msgid "Plot" msgstr "Отображать" -#: AppGUI/ObjectUI.py:229 AppGUI/ObjectUI.py:550 AppGUI/ObjectUI.py:1383 -#: AppGUI/ObjectUI.py:2245 AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:41 -#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:40 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:40 +#: flatcamGUI/ObjectUI.py:211 flatcamGUI/ObjectUI.py:771 +#: flatcamGUI/ObjectUI.py:1486 flatcamGUI/ObjectUI.py:2315 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:41 +#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:37 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:54 msgid "Plot (show) this object." msgstr "Начертить (отобразить) этот объект." -#: AppGUI/ObjectUI.py:258 +#: flatcamGUI/ObjectUI.py:239 msgid "" "Toggle the display of the Gerber Apertures Table.\n" "When unchecked, it will delete all mark shapes\n" @@ -5494,11 +7242,11 @@ msgstr "" "Когда флажок снят, он удалит все отмеченные фигуры\n" "которые отображены на холсте." -#: AppGUI/ObjectUI.py:268 +#: flatcamGUI/ObjectUI.py:249 msgid "Mark All" msgstr "Отметить все" -#: AppGUI/ObjectUI.py:270 +#: flatcamGUI/ObjectUI.py:251 msgid "" "When checked it will display all the apertures.\n" "When unchecked, it will delete all mark shapes\n" @@ -5508,15 +7256,332 @@ msgstr "" "Когда флажок снят, он удалит все отмеченные фигуры\n" "которые нарисованы на холсте." -#: AppGUI/ObjectUI.py:298 +#: flatcamGUI/ObjectUI.py:279 msgid "Mark the aperture instances on canvas." msgstr "Отметьте места отверстий на холсте." -#: AppGUI/ObjectUI.py:305 AppTools/ToolIsolation.py:579 +#: flatcamGUI/ObjectUI.py:291 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:32 +msgid "Isolation Routing" +msgstr "Изоляция разводки" + +#: flatcamGUI/ObjectUI.py:293 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:34 +msgid "" +"Create a Geometry object with\n" +"toolpaths to cut outside polygons." +msgstr "" +"Создание объекта Geometry\n" +"с траекториям обрезки за\n" +"пределами полигонов." + +#: flatcamGUI/ObjectUI.py:311 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:69 +msgid "" +"Choose which tool to use for Gerber isolation:\n" +"'Circular' or 'V-shape'.\n" +"When the 'V-shape' is selected then the tool\n" +"diameter will depend on the chosen cut depth." +msgstr "" +"Выберите, какой инструмент использовать для изоляции Gerber:\n" +"\"Круглый\" или \"V-образный\".\n" +"Когда выбрана \"V-образная форма\", то диаметр инструмента\n" +"будет зависеть от выбранной глубины резания." + +#: flatcamGUI/ObjectUI.py:317 +msgid "V-Shape" +msgstr "V-образный" + +#: flatcamGUI/ObjectUI.py:323 flatcamGUI/ObjectUI.py:1672 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:81 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:72 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:78 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:85 +#: flatcamTools/ToolNCC.py:233 flatcamTools/ToolNCC.py:240 +#: flatcamTools/ToolPaint.py:216 +msgid "V-Tip Dia" +msgstr "Диаметр V-наконечника" + +#: flatcamGUI/ObjectUI.py:325 flatcamGUI/ObjectUI.py:1675 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:83 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:74 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:80 +#: flatcamTools/ToolNCC.py:235 flatcamTools/ToolPaint.py:218 +msgid "The tip diameter for V-Shape Tool" +msgstr "Диаметр наконечника для V-образного инструмента" + +#: flatcamGUI/ObjectUI.py:336 flatcamGUI/ObjectUI.py:1687 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:94 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:84 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:91 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:99 +#: flatcamTools/ToolNCC.py:246 flatcamTools/ToolNCC.py:254 +#: flatcamTools/ToolPaint.py:229 +msgid "V-Tip Angle" +msgstr "Угол V-наконечника" + +#: flatcamGUI/ObjectUI.py:338 flatcamGUI/ObjectUI.py:1690 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:96 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:86 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:93 +#: flatcamTools/ToolNCC.py:248 flatcamTools/ToolPaint.py:231 +msgid "" +"The tip angle for V-Shape Tool.\n" +"In degree." +msgstr "" +"Угол наклона наконечника для V-образного инструмента.\n" +"В степенях." + +#: flatcamGUI/ObjectUI.py:352 flatcamGUI/ObjectUI.py:1706 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:50 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:109 +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:61 +#: flatcamObjects/FlatCAMGeometry.py:1174 flatcamTools/ToolCutOut.py:141 +msgid "" +"Cutting depth (negative)\n" +"below the copper surface." +msgstr "" +"Глубина резания (отрицательная)\n" +"ниже слоя меди." + +#: flatcamGUI/ObjectUI.py:366 +msgid "" +"Diameter of the cutting tool.\n" +"If you want to have an isolation path\n" +"inside the actual shape of the Gerber\n" +"feature, use a negative value for\n" +"this parameter." +msgstr "" +"Диаметр режущего инструмента.\n" +"Если вы хотите иметь путь изоляции \n" +"внутри фактической формы Гербера\n" +"функцию, используйте отрицательное значение для\n" +"этот параметр." + +#: flatcamGUI/ObjectUI.py:382 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:56 +msgid "# Passes" +msgstr "# Проходы" + +#: flatcamGUI/ObjectUI.py:384 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:58 +msgid "" +"Width of the isolation gap in\n" +"number (integer) of tool widths." +msgstr "" +"Ширина промежутка изоляции в \n" +"числах (целое число) ширины инструмента." + +#: flatcamGUI/ObjectUI.py:395 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:68 +msgid "Pass overlap" +msgstr "Перекрытие" + +#: flatcamGUI/ObjectUI.py:397 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:70 +msgid "How much (percentage) of the tool width to overlap each tool pass." +msgstr "" +"Размер части ширины инструмента, который будет перекрываться за каждый " +"проход." + +#: flatcamGUI/ObjectUI.py:411 +#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:58 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:97 +msgid "" +"Milling type:\n" +"- climb / best for precision milling and to reduce tool usage\n" +"- conventional / useful when there is no backlash compensation" +msgstr "" +"Тип фрезерования:\n" +"- climb / лучше всего подходит для точного фрезерования и уменьшения " +"использования инструмента\n" +"- conventional / полезен, когда нет компенсации люфта" + +#: flatcamGUI/ObjectUI.py:421 +msgid "Combine" +msgstr "Комбинировать" + +#: flatcamGUI/ObjectUI.py:423 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:109 +msgid "Combine all passes into one object" +msgstr "Объединить все проходы в один объект" + +#: flatcamGUI/ObjectUI.py:427 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:43 +msgid "\"Follow\"" +msgstr "\"Следовать\"" + +#: flatcamGUI/ObjectUI.py:428 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:45 +msgid "" +"Generate a 'Follow' geometry.\n" +"This means that it will cut through\n" +"the middle of the trace." +msgstr "" +"Создаёт геометрию 'Следовать'.\n" +"Это означает, что он будет прорезать\n" +"середину трассы." + +#: flatcamGUI/ObjectUI.py:434 +msgid "Except" +msgstr "Исключение" + +#: flatcamGUI/ObjectUI.py:437 +msgid "" +"When the isolation geometry is generated,\n" +"by checking this, the area of the object below\n" +"will be subtracted from the isolation geometry." +msgstr "" +"Когда геометрия изоляции генерируется,\n" +"проверив это, площадь объекта ниже\n" +"будет вычтено из геометрии изоляции." + +#: flatcamGUI/ObjectUI.py:450 +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:97 +#: flatcamObjects/FlatCAMGerber.py:239 flatcamObjects/FlatCAMGerber.py:327 +#: flatcamTools/ToolAlignObjects.py:73 flatcamTools/ToolAlignObjects.py:109 +#: flatcamTools/ToolCalibration.py:196 flatcamTools/ToolCalibration.py:631 +#: flatcamTools/ToolCalibration.py:648 flatcamTools/ToolCalibration.py:807 +#: flatcamTools/ToolCalibration.py:815 flatcamTools/ToolCopperThieving.py:144 +#: flatcamTools/ToolCopperThieving.py:158 +#: flatcamTools/ToolCopperThieving.py:604 flatcamTools/ToolCutOut.py:91 +#: flatcamTools/ToolDblSided.py:224 flatcamTools/ToolFilm.py:69 +#: flatcamTools/ToolFilm.py:102 flatcamTools/ToolFilm.py:549 +#: flatcamTools/ToolFilm.py:557 flatcamTools/ToolImage.py:49 +#: flatcamTools/ToolImage.py:252 flatcamTools/ToolImage.py:273 +#: flatcamTools/ToolNCC.py:96 flatcamTools/ToolNCC.py:558 +#: flatcamTools/ToolNCC.py:1300 flatcamTools/ToolPaint.py:502 +#: flatcamTools/ToolPaint.py:706 flatcamTools/ToolPanelize.py:118 +#: flatcamTools/ToolPanelize.py:204 flatcamTools/ToolPanelize.py:374 +#: flatcamTools/ToolPanelize.py:391 +msgid "Gerber" +msgstr "Gerber" + +#: flatcamGUI/ObjectUI.py:457 flatcamTools/ToolNCC.py:86 +#: flatcamTools/ToolPaint.py:80 +msgid "Obj Type" +msgstr "Тип объекта" + +#: flatcamGUI/ObjectUI.py:459 +msgid "" +"Specify the type of object to be excepted from isolation.\n" +"It can be of type: Gerber or Geometry.\n" +"What is selected here will dictate the kind\n" +"of objects that will populate the 'Object' combobox." +msgstr "" +"Укажите тип объекта, который следует исключить из изоляции..\n" +"Он может быть типа: Gerber или Geometry.\n" +"То, что выбрано здесь будет диктовать вид\n" +"объектов, которые будут заполнять поле со списком \"объект\"." + +#: flatcamGUI/ObjectUI.py:472 +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:48 +#: flatcamTools/ToolCalibration.py:186 flatcamTools/ToolNCC.py:109 +#: flatcamTools/ToolPaint.py:103 flatcamTools/ToolPanelize.py:100 +#: flatcamTools/ToolQRCode.py:78 +msgid "Object" +msgstr "Объект" + +#: flatcamGUI/ObjectUI.py:473 +msgid "Object whose area will be removed from isolation geometry." +msgstr "Объект, площадь которого будет удалена из геометрии изоляции." + +#: flatcamGUI/ObjectUI.py:480 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:82 +msgid "Scope" +msgstr "Масштаб" + +#: flatcamGUI/ObjectUI.py:482 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:84 +msgid "" +"Isolation scope. Choose what to isolate:\n" +"- 'All' -> Isolate all the polygons in the object\n" +"- 'Selection' -> Isolate a selection of polygons." +msgstr "" +"Объем изоляции. Выберите, что изолировать:\n" +"- 'Все' -> Изолировать все полигоны в объекте.\n" +"- 'Выделенные' -> Изолировать выделенные полигоны." + +#: flatcamGUI/ObjectUI.py:487 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:307 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:89 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:311 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:258 +#: flatcamTools/ToolNCC.py:539 flatcamTools/ToolPaint.py:456 +msgid "Selection" +msgstr "Выбор" + +#: flatcamGUI/ObjectUI.py:495 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:122 +msgid "Isolation Type" +msgstr "Тип изоляции" + +#: flatcamGUI/ObjectUI.py:497 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:124 +msgid "" +"Choose how the isolation will be executed:\n" +"- 'Full' -> complete isolation of polygons\n" +"- 'Ext' -> will isolate only on the outside\n" +"- 'Int' -> will isolate only on the inside\n" +"'Exterior' isolation is almost always possible\n" +"(with the right tool) but 'Interior'\n" +"isolation can be done only when there is an opening\n" +"inside of the polygon (e.g polygon is a 'doughnut' shape)." +msgstr "" +"Выбор способа выполнения изоляции:\n" +"- 'Полная' -> полная изоляция полигонов\n" +"- 'Внешняя' -> изолирует только снаружи.\n" +"- 'Внутренняя' -> изолирует только изнутри.\n" +"Внешняя изоляция почти всегда возможна.\n" +"(с правильным инструментом), но 'Внутренняя'\n" +"изоляция может быть выполнена только при наличии проема.\n" +"внутри полигона (например, полигон имеет форму \"пончика\")." + +#: flatcamGUI/ObjectUI.py:506 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:133 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:154 +msgid "Full" +msgstr "Полная" + +#: flatcamGUI/ObjectUI.py:507 +msgid "Ext" +msgstr "Наруж" + +#: flatcamGUI/ObjectUI.py:508 +msgid "Int" +msgstr "Внутр" + +#: flatcamGUI/ObjectUI.py:513 +msgid "Generate Isolation Geometry" +msgstr "Создать геометрию изоляции" + +#: flatcamGUI/ObjectUI.py:521 +msgid "" +"Create a Geometry object with toolpaths to cut \n" +"isolation outside, inside or on both sides of the\n" +"object. For a Gerber object outside means outside\n" +"of the Gerber feature and inside means inside of\n" +"the Gerber feature, if possible at all. This means\n" +"that only if the Gerber feature has openings inside, they\n" +"will be isolated. If what is wanted is to cut isolation\n" +"inside the actual Gerber feature, use a negative tool\n" +"diameter above." +msgstr "" +"Создать геометрический объект с траектории, чтобы сократить \n" +"изоляция снаружи, внутри или с обеих сторон\n" +"объект. Для объекта Гербера снаружи означает снаружи\n" +"функции Гербера и внутри означает внутри\n" +"функция Гербера, если это вообще возможно. Это средство\n" +"что только если функция Gerber имеет отверстия внутри, они\n" +"будут изолированы. Если то, что нужно, это сократить изоляцию\n" +"внутри фактической функции Gerber используйте отрицательный инструмент\n" +"диаметр выше." + +#: flatcamGUI/ObjectUI.py:533 msgid "Buffer Solid Geometry" msgstr "Буферизация solid геометрии" -#: AppGUI/ObjectUI.py:307 AppTools/ToolIsolation.py:581 +#: flatcamGUI/ObjectUI.py:535 msgid "" "This button is shown only when the Gerber file\n" "is loaded without buffering.\n" @@ -5528,25 +7593,21 @@ msgstr "" "Включив это, вы создадите буферную геометрию\n" "требуемую для изоляции." -#: AppGUI/ObjectUI.py:332 -msgid "Isolation Routing" -msgstr "Изоляция разводки" +#: flatcamGUI/ObjectUI.py:567 +msgid "Clear N-copper" +msgstr "Очистка меди" -#: AppGUI/ObjectUI.py:334 AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:32 -#: AppTools/ToolIsolation.py:67 -#, fuzzy -#| msgid "" -#| "Create a Geometry object with\n" -#| "toolpaths to cut outside polygons." +#: flatcamGUI/ObjectUI.py:569 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:33 msgid "" "Create a Geometry object with\n" -"toolpaths to cut around polygons." +"toolpaths to cut all non-copper regions." msgstr "" -"Создание объекта Geometry\n" -"с траекториям обрезки за\n" -"пределами полигонов." +"Создание объекта геометрии с помощью\n" +"траектории резания для всех областей, отличных от меди." -#: AppGUI/ObjectUI.py:348 AppGUI/ObjectUI.py:2089 AppTools/ToolNCC.py:599 +#: flatcamGUI/ObjectUI.py:576 flatcamGUI/ObjectUI.py:2159 +#: flatcamTools/ToolNCC.py:599 msgid "" "Create the Geometry Object\n" "for non-copper routing." @@ -5554,7 +7615,21 @@ msgstr "" "Создаёт объект геометрии\n" "для безмедного полигона." -#: AppGUI/ObjectUI.py:362 +#: flatcamGUI/ObjectUI.py:589 +msgid "Board cutout" +msgstr "Обрезка контура платы" + +#: flatcamGUI/ObjectUI.py:591 +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:34 +msgid "" +"Create toolpaths to cut around\n" +"the PCB and separate it from\n" +"the original board." +msgstr "" +"Создание траектории обрезки печатной платы и отделения её от\n" +"заготовки." + +#: flatcamGUI/ObjectUI.py:598 msgid "" "Generate the geometry for\n" "the board cutout." @@ -5562,11 +7637,13 @@ msgstr "" "Будет создан объект геометрии\n" "для обрезки контура." -#: AppGUI/ObjectUI.py:379 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:32 +#: flatcamGUI/ObjectUI.py:616 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:119 msgid "Non-copper regions" msgstr "Безмедные полигоны" -#: AppGUI/ObjectUI.py:381 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:34 +#: flatcamGUI/ObjectUI.py:618 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:121 msgid "" "Create polygons covering the\n" "areas without copper on the PCB.\n" @@ -5580,13 +7657,14 @@ msgstr "" "объекта может использоваться для удаления всей\n" "меди из указанного региона." -#: AppGUI/ObjectUI.py:391 AppGUI/ObjectUI.py:432 -#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:46 -#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:79 +#: flatcamGUI/ObjectUI.py:628 flatcamGUI/ObjectUI.py:669 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:133 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:166 msgid "Boundary Margin" msgstr "Отступ от границы" -#: AppGUI/ObjectUI.py:393 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:48 +#: flatcamGUI/ObjectUI.py:630 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:135 msgid "" "Specify the edge of the PCB\n" "by drawing a box around all\n" @@ -5598,28 +7676,30 @@ msgstr "" "объектов с этим минимальным\n" "расстоянием." -#: AppGUI/ObjectUI.py:408 AppGUI/ObjectUI.py:446 -#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:61 -#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:92 +#: flatcamGUI/ObjectUI.py:645 flatcamGUI/ObjectUI.py:683 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:148 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:179 msgid "Rounded Geo" msgstr "Закруглять" -#: AppGUI/ObjectUI.py:410 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:63 +#: flatcamGUI/ObjectUI.py:647 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:150 msgid "Resulting geometry will have rounded corners." msgstr "Полученная геометрия будет иметь закругленные углы." -#: AppGUI/ObjectUI.py:414 AppGUI/ObjectUI.py:455 -#: AppTools/ToolSolderPaste.py:373 +#: flatcamGUI/ObjectUI.py:651 flatcamGUI/ObjectUI.py:692 +#: flatcamTools/ToolSolderPaste.py:134 msgid "Generate Geo" msgstr "Создать" -#: AppGUI/ObjectUI.py:424 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:73 -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:137 -#: AppTools/ToolPanelize.py:99 AppTools/ToolQRCode.py:201 +#: flatcamGUI/ObjectUI.py:661 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:160 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:137 +#: flatcamTools/ToolPanelize.py:101 flatcamTools/ToolQRCode.py:192 msgid "Bounding Box" msgstr "Ограничительная рамка" -#: AppGUI/ObjectUI.py:426 +#: flatcamGUI/ObjectUI.py:663 msgid "" "Create a geometry surrounding the Gerber object.\n" "Square shape." @@ -5627,7 +7707,8 @@ msgstr "" "Создаст геометрию, окружающую объект Gerber.\n" "Квадратная форма." -#: AppGUI/ObjectUI.py:434 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:81 +#: flatcamGUI/ObjectUI.py:671 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:168 msgid "" "Distance of the edges of the box\n" "to the nearest polygon." @@ -5635,7 +7716,8 @@ msgstr "" "Расстояние от края поля\n" "до ближайшего полигона." -#: AppGUI/ObjectUI.py:448 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:94 +#: flatcamGUI/ObjectUI.py:685 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:181 msgid "" "If the bounding box is \n" "to have rounded corners\n" @@ -5647,32 +7729,34 @@ msgstr "" "их радиус будет равен\n" "отступу." -#: AppGUI/ObjectUI.py:457 +#: flatcamGUI/ObjectUI.py:694 msgid "Generate the Geometry object." msgstr "Будет создан объект геометрии." -#: AppGUI/ObjectUI.py:484 +#: flatcamGUI/ObjectUI.py:721 msgid "Excellon Object" msgstr "Объект Excellon" -#: AppGUI/ObjectUI.py:504 +#: flatcamGUI/ObjectUI.py:733 msgid "Solid circles." msgstr "Сплошные круги." -#: AppGUI/ObjectUI.py:560 AppGUI/ObjectUI.py:655 AppGUI/ObjectUI.py:2266 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:71 -#: AppTools/ToolProperties.py:166 +#: flatcamGUI/ObjectUI.py:781 flatcamGUI/ObjectUI.py:876 +#: flatcamGUI/ObjectUI.py:2336 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:71 +#: flatcamTools/ToolProperties.py:166 msgid "Drills" msgstr "Отверстия" -#: AppGUI/ObjectUI.py:560 AppGUI/ObjectUI.py:656 AppGUI/ObjectUI.py:2266 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:158 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:72 -#: AppTools/ToolProperties.py:168 +#: flatcamGUI/ObjectUI.py:781 flatcamGUI/ObjectUI.py:877 +#: flatcamGUI/ObjectUI.py:2336 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:158 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:72 +#: flatcamTools/ToolProperties.py:168 msgid "Slots" msgstr "Пазы" -#: AppGUI/ObjectUI.py:565 +#: flatcamGUI/ObjectUI.py:786 msgid "" "This is the Tool Number.\n" "When ToolChange is checked, on toolchange event this value\n" @@ -5687,7 +7771,8 @@ msgstr "" "\n" "Здесь выбираются инструменты для генерации G-кода." -#: AppGUI/ObjectUI.py:570 AppGUI/ObjectUI.py:1407 AppTools/ToolPaint.py:141 +#: flatcamGUI/ObjectUI.py:791 flatcamGUI/ObjectUI.py:1510 +#: flatcamTools/ToolPaint.py:142 msgid "" "Tool Diameter. It's value (in current FlatCAM units) \n" "is the cut width into the material." @@ -5695,7 +7780,7 @@ msgstr "" "Диаметр инструмента. Это значение (в текущих единицах FlatCAM) \n" "ширины разреза в материале." -#: AppGUI/ObjectUI.py:573 +#: flatcamGUI/ObjectUI.py:794 msgid "" "The number of Drill holes. Holes that are drilled with\n" "a drill bit." @@ -5703,7 +7788,7 @@ msgstr "" "Количество просверленных отверстий. Отверстия, которые сверлят с помощью\n" "сверло." -#: AppGUI/ObjectUI.py:576 +#: flatcamGUI/ObjectUI.py:797 msgid "" "The number of Slot holes. Holes that are created by\n" "milling them with an endmill bit." @@ -5711,7 +7796,7 @@ msgstr "" "Количество щелевых отверстий. Отверстия, которые создаются\n" "фрезы с фрезы бит." -#: AppGUI/ObjectUI.py:579 +#: flatcamGUI/ObjectUI.py:800 msgid "" "Toggle display of the drills for the current tool.\n" "This does not select the tools for G-code generation." @@ -5719,21 +7804,20 @@ msgstr "" "Переключение отображения сверл для текущего инструмента.\n" "При этом не выбираются инструменты для генерации G-кода." -#: AppGUI/ObjectUI.py:597 AppGUI/ObjectUI.py:1564 -#: AppObjects/FlatCAMExcellon.py:537 AppObjects/FlatCAMExcellon.py:836 -#: AppObjects/FlatCAMExcellon.py:852 AppObjects/FlatCAMExcellon.py:856 -#: AppObjects/FlatCAMGeometry.py:380 AppObjects/FlatCAMGeometry.py:825 -#: AppObjects/FlatCAMGeometry.py:861 AppTools/ToolIsolation.py:313 -#: AppTools/ToolIsolation.py:1051 AppTools/ToolIsolation.py:1171 -#: AppTools/ToolIsolation.py:1185 AppTools/ToolNCC.py:331 -#: AppTools/ToolNCC.py:797 AppTools/ToolNCC.py:811 AppTools/ToolNCC.py:1214 -#: AppTools/ToolPaint.py:313 AppTools/ToolPaint.py:766 -#: AppTools/ToolPaint.py:778 AppTools/ToolPaint.py:1190 +#: flatcamGUI/ObjectUI.py:818 flatcamGUI/ObjectUI.py:1662 +#: flatcamObjects/FlatCAMExcellon.py:514 flatcamObjects/FlatCAMExcellon.py:726 +#: flatcamObjects/FlatCAMExcellon.py:742 flatcamObjects/FlatCAMExcellon.py:746 +#: flatcamObjects/FlatCAMGeometry.py:323 flatcamObjects/FlatCAMGeometry.py:759 +#: flatcamObjects/FlatCAMGeometry.py:795 flatcamTools/ToolNCC.py:331 +#: flatcamTools/ToolNCC.py:797 flatcamTools/ToolNCC.py:811 +#: flatcamTools/ToolNCC.py:1196 flatcamTools/ToolPaint.py:314 +#: flatcamTools/ToolPaint.py:767 flatcamTools/ToolPaint.py:779 +#: flatcamTools/ToolPaint.py:1171 msgid "Parameters for" msgstr "Параметры для" -#: AppGUI/ObjectUI.py:600 AppGUI/ObjectUI.py:1567 AppTools/ToolIsolation.py:316 -#: AppTools/ToolNCC.py:334 AppTools/ToolPaint.py:316 +#: flatcamGUI/ObjectUI.py:821 flatcamGUI/ObjectUI.py:1665 +#: flatcamTools/ToolNCC.py:334 flatcamTools/ToolPaint.py:317 msgid "" "The data used for creating GCode.\n" "Each tool store it's own set of such data." @@ -5741,8 +7825,8 @@ msgstr "" "Данные, используемые для создания кода.\n" "Каждый инструмент хранит свой собственный набор таких данных." -#: AppGUI/ObjectUI.py:626 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:48 +#: flatcamGUI/ObjectUI.py:847 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:48 msgid "" "Operation type:\n" "- Drilling -> will drill the drills/slots associated with this tool\n" @@ -5752,18 +7836,18 @@ msgstr "" "- Сверление -> просверлит отверстия/пазы, связанные с этим инструментом.\n" "- Фрезерование -> будет фрезеровать отверстия/пазы" -#: AppGUI/ObjectUI.py:632 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:54 +#: flatcamGUI/ObjectUI.py:853 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:54 msgid "Drilling" msgstr "Сверление" -#: AppGUI/ObjectUI.py:633 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:55 +#: flatcamGUI/ObjectUI.py:854 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:55 msgid "Milling" msgstr "Фрезерование" -#: AppGUI/ObjectUI.py:648 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:64 +#: flatcamGUI/ObjectUI.py:869 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:64 msgid "" "Milling type:\n" "- Drills -> will mill the drills associated with this tool\n" @@ -5775,25 +7859,25 @@ msgstr "" "- Пазы -> будет фрезеровать пазы, связанные с этим инструментом\n" "- Оба -> будут фрезеровать как отверстия, так и пазы или все, что доступно" -#: AppGUI/ObjectUI.py:657 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:73 -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:199 -#: AppTools/ToolFilm.py:241 +#: flatcamGUI/ObjectUI.py:878 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:73 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:210 +#: flatcamTools/ToolFilm.py:258 msgid "Both" msgstr "Обе" -#: AppGUI/ObjectUI.py:665 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:80 +#: flatcamGUI/ObjectUI.py:886 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:80 msgid "Milling Diameter" msgstr "Диаметр фрезерования" -#: AppGUI/ObjectUI.py:667 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:82 +#: flatcamGUI/ObjectUI.py:888 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:82 msgid "The diameter of the tool who will do the milling" msgstr "Диаметр режущего инструмента" -#: AppGUI/ObjectUI.py:681 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:95 +#: flatcamGUI/ObjectUI.py:902 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:95 msgid "" "Drill depth (negative)\n" "below the copper surface." @@ -5801,19 +7885,19 @@ msgstr "" "Глубина сверления (отрицательная) \n" "ниже слоя меди." -#: AppGUI/ObjectUI.py:700 AppGUI/ObjectUI.py:1626 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:113 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:69 -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:79 -#: AppTools/ToolCutOut.py:159 +#: flatcamGUI/ObjectUI.py:921 flatcamGUI/ObjectUI.py:1724 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:113 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:68 +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:79 +#: flatcamTools/ToolCutOut.py:159 msgid "Multi-Depth" msgstr "Мультипроход" -#: AppGUI/ObjectUI.py:703 AppGUI/ObjectUI.py:1629 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:116 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:72 -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:82 -#: AppTools/ToolCutOut.py:162 +#: flatcamGUI/ObjectUI.py:924 flatcamGUI/ObjectUI.py:1727 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:116 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:71 +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:82 +#: flatcamTools/ToolCutOut.py:162 msgid "" "Use multiple passes to limit\n" "the cut depth in each pass. Will\n" @@ -5825,15 +7909,15 @@ msgstr "" "сократить несколько раз, пока Cut Z не станет\n" "достиг." -#: AppGUI/ObjectUI.py:716 AppGUI/ObjectUI.py:1643 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:128 -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:94 -#: AppTools/ToolCutOut.py:176 +#: flatcamGUI/ObjectUI.py:937 flatcamGUI/ObjectUI.py:1741 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:128 +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:94 +#: flatcamTools/ToolCutOut.py:176 msgid "Depth of each pass (positive)." msgstr "Глубина каждого прохода (положительный)." -#: AppGUI/ObjectUI.py:727 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:136 +#: flatcamGUI/ObjectUI.py:948 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:136 msgid "" "Tool height when travelling\n" "across the XY plane." @@ -5841,8 +7925,8 @@ msgstr "" "Отвод инструмента при холостом ходе\n" "по плоскости XY." -#: AppGUI/ObjectUI.py:748 AppGUI/ObjectUI.py:1673 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:188 +#: flatcamGUI/ObjectUI.py:969 flatcamGUI/ObjectUI.py:1771 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:187 msgid "" "Cutting speed in the XY\n" "plane in units per minute" @@ -5850,8 +7934,8 @@ msgstr "" "Скорость резания в плоскости XY\n" "в единицах в минуту" -#: AppGUI/ObjectUI.py:763 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:209 +#: flatcamGUI/ObjectUI.py:984 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:209 msgid "" "Tool speed while drilling\n" "(in units per minute).\n" @@ -5863,14 +7947,14 @@ msgstr "" "Так называемая подача «Погружения».\n" "Используется для линейного перемещения G01." -#: AppGUI/ObjectUI.py:778 AppGUI/ObjectUI.py:1700 -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:80 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:67 +#: flatcamGUI/ObjectUI.py:999 flatcamGUI/ObjectUI.py:1798 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:80 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:64 msgid "Feedrate Rapids" msgstr "Пороги скорости подачи" -#: AppGUI/ObjectUI.py:780 -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:82 +#: flatcamGUI/ObjectUI.py:1001 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:82 msgid "" "Tool speed while drilling\n" "(in units per minute).\n" @@ -5884,15 +7968,15 @@ msgstr "" "Полезно только для Marlin,\n" "игнорировать для любых других случаев." -#: AppGUI/ObjectUI.py:800 AppGUI/ObjectUI.py:1720 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:85 +#: flatcamGUI/ObjectUI.py:1021 flatcamGUI/ObjectUI.py:1818 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:82 msgid "Re-cut" msgstr "Перерезать" -#: AppGUI/ObjectUI.py:802 AppGUI/ObjectUI.py:815 AppGUI/ObjectUI.py:1722 -#: AppGUI/ObjectUI.py:1734 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:87 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:99 +#: flatcamGUI/ObjectUI.py:1023 flatcamGUI/ObjectUI.py:1036 +#: flatcamGUI/ObjectUI.py:1820 flatcamGUI/ObjectUI.py:1832 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:84 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:96 msgid "" "In order to remove possible\n" "copper leftovers where first cut\n" @@ -5904,14 +7988,15 @@ msgstr "" "мы генерируем расширенный разрез\n" "над первым разрезом." -#: AppGUI/ObjectUI.py:828 AppGUI/ObjectUI.py:1743 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:217 -#: AppObjects/FlatCAMExcellon.py:1512 AppObjects/FlatCAMGeometry.py:1687 +#: flatcamGUI/ObjectUI.py:1049 flatcamGUI/ObjectUI.py:1841 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:216 +#: flatcamObjects/FlatCAMExcellon.py:1332 +#: flatcamObjects/FlatCAMGeometry.py:1622 msgid "Spindle speed" msgstr "Скорость вращения шпинделя" -#: AppGUI/ObjectUI.py:830 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:224 +#: flatcamGUI/ObjectUI.py:1051 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:224 msgid "" "Speed of the spindle\n" "in RPM (optional)" @@ -5919,9 +8004,9 @@ msgstr "" "Скорость шпинделя\n" "в оборотах в минуту(опционально) ." -#: AppGUI/ObjectUI.py:845 AppGUI/ObjectUI.py:1762 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:238 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:235 +#: flatcamGUI/ObjectUI.py:1066 flatcamGUI/ObjectUI.py:1860 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:238 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:234 msgid "" "Pause to allow the spindle to reach its\n" "speed before cutting." @@ -5929,19 +8014,19 @@ msgstr "" "Задержка для набора оборотов шпинделя\n" "перед началом обработки." -#: AppGUI/ObjectUI.py:856 AppGUI/ObjectUI.py:1772 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:246 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:240 +#: flatcamGUI/ObjectUI.py:1077 flatcamGUI/ObjectUI.py:1870 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:246 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:239 msgid "Number of time units for spindle to dwell." msgstr "Количество единиц времени для остановки шпинделя." -#: AppGUI/ObjectUI.py:866 -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:46 +#: flatcamGUI/ObjectUI.py:1087 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:46 msgid "Offset Z" msgstr "Смещение Z" -#: AppGUI/ObjectUI.py:868 -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:48 +#: flatcamGUI/ObjectUI.py:1089 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:48 msgid "" "Some drill bits (the larger ones) need to drill deeper\n" "to create the desired exit hole diameter due of the tip shape.\n" @@ -5951,13 +8036,13 @@ msgstr "" "создать необходимый диаметр выходного отверстия за счет формы наконечника.\n" "Значение здесь может компенсировать Cut Z параметра." -#: AppGUI/ObjectUI.py:928 AppGUI/ObjectUI.py:1826 AppTools/ToolIsolation.py:412 -#: AppTools/ToolNCC.py:492 AppTools/ToolPaint.py:422 +#: flatcamGUI/ObjectUI.py:1149 flatcamGUI/ObjectUI.py:1924 +#: flatcamTools/ToolNCC.py:492 flatcamTools/ToolPaint.py:423 msgid "Apply parameters to all tools" msgstr "Применить параметры ко всем инструментам" -#: AppGUI/ObjectUI.py:930 AppGUI/ObjectUI.py:1828 AppTools/ToolIsolation.py:414 -#: AppTools/ToolNCC.py:494 AppTools/ToolPaint.py:424 +#: flatcamGUI/ObjectUI.py:1151 flatcamGUI/ObjectUI.py:1926 +#: flatcamTools/ToolNCC.py:494 flatcamTools/ToolPaint.py:425 msgid "" "The parameters in the current form will be applied\n" "on all the tools from the Tool Table." @@ -5965,22 +8050,22 @@ msgstr "" "Параметры в текущей форме будут применены\n" "для всех инструментов из таблицы инструментов." -#: AppGUI/ObjectUI.py:941 AppGUI/ObjectUI.py:1839 AppTools/ToolIsolation.py:425 -#: AppTools/ToolNCC.py:505 AppTools/ToolPaint.py:435 +#: flatcamGUI/ObjectUI.py:1162 flatcamGUI/ObjectUI.py:1937 +#: flatcamTools/ToolNCC.py:505 flatcamTools/ToolPaint.py:436 msgid "Common Parameters" msgstr "Общие параметры" -#: AppGUI/ObjectUI.py:943 AppGUI/ObjectUI.py:1841 AppTools/ToolIsolation.py:427 -#: AppTools/ToolNCC.py:507 AppTools/ToolPaint.py:437 +#: flatcamGUI/ObjectUI.py:1164 flatcamGUI/ObjectUI.py:1939 +#: flatcamTools/ToolNCC.py:507 flatcamTools/ToolPaint.py:438 msgid "Parameters that are common for all tools." msgstr "Параметры, общие для всех инструментов." -#: AppGUI/ObjectUI.py:948 AppGUI/ObjectUI.py:1846 +#: flatcamGUI/ObjectUI.py:1169 flatcamGUI/ObjectUI.py:1944 msgid "Tool change Z" msgstr "Смена инструмента Z" -#: AppGUI/ObjectUI.py:950 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:154 +#: flatcamGUI/ObjectUI.py:1171 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:154 msgid "" "Include tool-change sequence\n" "in G-Code (Pause for tool change)." @@ -5988,16 +8073,16 @@ msgstr "" "Включает последовательность смены инструмента\n" "в G-Code (Пауза для смены инструмента)." -#: AppGUI/ObjectUI.py:957 AppGUI/ObjectUI.py:1857 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:162 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:135 +#: flatcamGUI/ObjectUI.py:1178 flatcamGUI/ObjectUI.py:1955 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:162 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:134 msgid "" "Z-axis position (height) for\n" "tool change." msgstr "Отвод по оси Z для смены инструмента." -#: AppGUI/ObjectUI.py:974 -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:71 +#: flatcamGUI/ObjectUI.py:1195 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:71 msgid "" "Height of the tool just after start.\n" "Delete the value if you don't need this feature." @@ -6005,15 +8090,15 @@ msgstr "" "Высота инструмента сразу после запуска.\n" "Удалить значение если вам не нужна эта функция." -#: AppGUI/ObjectUI.py:983 AppGUI/ObjectUI.py:1885 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:178 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:154 +#: flatcamGUI/ObjectUI.py:1204 flatcamGUI/ObjectUI.py:1983 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:178 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:153 msgid "End move Z" msgstr "Высота отвода Z" -#: AppGUI/ObjectUI.py:985 AppGUI/ObjectUI.py:1887 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:180 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:156 +#: flatcamGUI/ObjectUI.py:1206 flatcamGUI/ObjectUI.py:1985 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:180 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:155 msgid "" "Height of the tool after\n" "the last move at the end of the job." @@ -6021,15 +8106,15 @@ msgstr "" "Высота инструмента после\n" "последнего прохода в конце задания." -#: AppGUI/ObjectUI.py:1002 AppGUI/ObjectUI.py:1904 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:195 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:174 +#: flatcamGUI/ObjectUI.py:1223 flatcamGUI/ObjectUI.py:2002 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:195 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:173 msgid "End move X,Y" msgstr "Конец перемещения X, Y" -#: AppGUI/ObjectUI.py:1004 AppGUI/ObjectUI.py:1906 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:197 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:176 +#: flatcamGUI/ObjectUI.py:1225 flatcamGUI/ObjectUI.py:2004 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:197 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:175 msgid "" "End move X,Y position. In format (x,y).\n" "If no value is entered then there is no move\n" @@ -6039,15 +8124,15 @@ msgstr "" "Если значение не введено, движение не выполняется\n" "на плоскости X, Y в конце работы." -#: AppGUI/ObjectUI.py:1014 AppGUI/ObjectUI.py:1780 -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:96 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:108 +#: flatcamGUI/ObjectUI.py:1235 flatcamGUI/ObjectUI.py:1878 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:96 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:105 msgid "Probe Z depth" msgstr "Глубина зондирования Z" -#: AppGUI/ObjectUI.py:1016 AppGUI/ObjectUI.py:1782 -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:98 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:110 +#: flatcamGUI/ObjectUI.py:1237 flatcamGUI/ObjectUI.py:1880 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:98 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:107 msgid "" "The maximum depth that the probe is allowed\n" "to probe. Negative value, in current units." @@ -6055,23 +8140,23 @@ msgstr "" "Максимальная глубина, допустимая для зонда.\n" "Отрицательное значение в текущих единицах." -#: AppGUI/ObjectUI.py:1033 AppGUI/ObjectUI.py:1797 -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:109 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:123 +#: flatcamGUI/ObjectUI.py:1254 flatcamGUI/ObjectUI.py:1895 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:109 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:120 msgid "Feedrate Probe" msgstr "Датчик скорости подачи" -#: AppGUI/ObjectUI.py:1035 AppGUI/ObjectUI.py:1799 -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:111 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:125 +#: flatcamGUI/ObjectUI.py:1256 flatcamGUI/ObjectUI.py:1897 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:111 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:122 msgid "The feedrate used while the probe is probing." msgstr "Скорость подачи, используемая во время зондирования." -#: AppGUI/ObjectUI.py:1051 +#: flatcamGUI/ObjectUI.py:1272 msgid "Preprocessor E" msgstr "Постпроцессор E" -#: AppGUI/ObjectUI.py:1053 +#: flatcamGUI/ObjectUI.py:1274 msgid "" "The preprocessor JSON file that dictates\n" "Gcode output for Excellon Objects." @@ -6079,11 +8164,11 @@ msgstr "" "JSON-файл постпроцессора, который влияет\n" "на Gcode для объектов Excellon." -#: AppGUI/ObjectUI.py:1063 +#: flatcamGUI/ObjectUI.py:1284 msgid "Preprocessor G" msgstr "Постпроцессор G" -#: AppGUI/ObjectUI.py:1065 +#: flatcamGUI/ObjectUI.py:1286 msgid "" "The preprocessor JSON file that dictates\n" "Gcode output for Geometry (Milling) Objects." @@ -6091,139 +8176,7 @@ msgstr "" "JSON-файл постпроцессора, который влияет\n" "на Gcode для объектов геометрии (фрезерования)." -#: AppGUI/ObjectUI.py:1079 AppGUI/ObjectUI.py:1934 -#, fuzzy -#| msgid "Exclusion areas" -msgid "Add exclusion areas" -msgstr "Зоны исключения" - -#: AppGUI/ObjectUI.py:1082 AppGUI/ObjectUI.py:1937 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:212 -msgid "" -"Include exclusion areas.\n" -"In those areas the travel of the tools\n" -"is forbidden." -msgstr "" -"Включает зоны исключения.\n" -"В этих областях движение инструмента\n" -"запрещено." - -#: AppGUI/ObjectUI.py:1103 AppGUI/ObjectUI.py:1958 -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:48 -#: AppTools/ToolCalibration.py:186 AppTools/ToolNCC.py:109 -#: AppTools/ToolPaint.py:102 AppTools/ToolPanelize.py:98 -msgid "Object" -msgstr "Объект" - -#: AppGUI/ObjectUI.py:1103 AppGUI/ObjectUI.py:1122 AppGUI/ObjectUI.py:1958 -#: AppGUI/ObjectUI.py:1977 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:232 -msgid "Strategy" -msgstr "Стратегия" - -#: AppGUI/ObjectUI.py:1103 AppGUI/ObjectUI.py:1134 AppGUI/ObjectUI.py:1958 -#: AppGUI/ObjectUI.py:1989 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:244 -msgid "Over Z" -msgstr "Z обхода" - -#: AppGUI/ObjectUI.py:1105 AppGUI/ObjectUI.py:1960 -msgid "This is the Area ID." -msgstr "" - -#: AppGUI/ObjectUI.py:1107 AppGUI/ObjectUI.py:1962 -msgid "Type of the object where the exclusion area was added." -msgstr "" - -#: AppGUI/ObjectUI.py:1109 AppGUI/ObjectUI.py:1964 -msgid "" -"The strategy used for exclusion area. Go around the exclusion areas or over " -"it." -msgstr "" - -#: AppGUI/ObjectUI.py:1111 AppGUI/ObjectUI.py:1966 -msgid "" -"If the strategy is to go over the area then this is the height at which the " -"tool will go to avoid the exclusion area." -msgstr "" - -#: AppGUI/ObjectUI.py:1123 AppGUI/ObjectUI.py:1978 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:233 -msgid "" -"The strategy followed when encountering an exclusion area.\n" -"Can be:\n" -"- Over -> when encountering the area, the tool will go to a set height\n" -"- Around -> will avoid the exclusion area by going around the area" -msgstr "" -"Стратегия, используемая при столкновении с зоной исключения.\n" -"Может быть:\n" -"- Сверху -> при столкновении с зоной, инструмент перейдет на заданную " -"высоту.\n" -"- Вокруг -> избегает зоны исключения, обойдя зону" - -#: AppGUI/ObjectUI.py:1127 AppGUI/ObjectUI.py:1982 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:237 -msgid "Over" -msgstr "Сверху" - -#: AppGUI/ObjectUI.py:1128 AppGUI/ObjectUI.py:1983 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:238 -msgid "Around" -msgstr "Вокруг" - -#: AppGUI/ObjectUI.py:1135 AppGUI/ObjectUI.py:1990 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:245 -msgid "" -"The height Z to which the tool will rise in order to avoid\n" -"an interdiction area." -msgstr "" -"Высота Z, на которую поднимется инструмент, чтобы избежать зоны исключения." - -#: AppGUI/ObjectUI.py:1145 AppGUI/ObjectUI.py:2000 -#, fuzzy -#| msgid "Add area" -msgid "Add area:" -msgstr "Добавить область" - -#: AppGUI/ObjectUI.py:1146 AppGUI/ObjectUI.py:2001 -msgid "Add an Exclusion Area." -msgstr "Добавить зону исключения." - -#: AppGUI/ObjectUI.py:1152 AppGUI/ObjectUI.py:2007 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:222 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:295 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:324 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:288 -#: AppTools/ToolIsolation.py:542 AppTools/ToolNCC.py:580 -#: AppTools/ToolPaint.py:523 -msgid "The kind of selection shape used for area selection." -msgstr "Вид формы выделения, используемый для выделения области." - -#: AppGUI/ObjectUI.py:1162 AppGUI/ObjectUI.py:2017 -#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:32 -#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:42 -#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:32 -#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:32 -msgid "Delete All" -msgstr "Удалить все" - -#: AppGUI/ObjectUI.py:1163 AppGUI/ObjectUI.py:2018 -msgid "Delete all exclusion areas." -msgstr "Удаляет все исключаемые зоны." - -#: AppGUI/ObjectUI.py:1166 AppGUI/ObjectUI.py:2021 -#, fuzzy -#| msgid "Delete Object" -msgid "Delete Selected" -msgstr "Удалить объект" - -#: AppGUI/ObjectUI.py:1167 AppGUI/ObjectUI.py:2022 -#, fuzzy -#| msgid "Delete all exclusion areas." -msgid "Delete all exclusion areas that are selected in the table." -msgstr "Удаляет все исключаемые зоны." - -#: AppGUI/ObjectUI.py:1191 AppGUI/ObjectUI.py:2038 +#: flatcamGUI/ObjectUI.py:1310 flatcamGUI/ObjectUI.py:2108 msgid "" "Add / Select at least one tool in the tool-table.\n" "Click the # header to select all, or Ctrl + LMB\n" @@ -6233,11 +8186,11 @@ msgstr "" "Щелкните заголовок #, чтобы выбрать все, или Ctrl + ЛКМ\n" "для выбора инструментов вручную." -#: AppGUI/ObjectUI.py:1199 AppGUI/ObjectUI.py:2045 +#: flatcamGUI/ObjectUI.py:1318 flatcamGUI/ObjectUI.py:2115 msgid "Generate CNCJob object" msgstr "Создать объект CNCJob" -#: AppGUI/ObjectUI.py:1201 +#: flatcamGUI/ObjectUI.py:1320 msgid "" "Generate the CNC Job.\n" "If milling then an additional Geometry object will be created" @@ -6245,11 +8198,11 @@ msgstr "" "Создаёт задание ЧПУ.\n" "При фрезеровке будет создан дополнительный объект Geometry" -#: AppGUI/ObjectUI.py:1218 +#: flatcamGUI/ObjectUI.py:1337 msgid "Milling Geometry" msgstr "Геометрия фрезерования" -#: AppGUI/ObjectUI.py:1220 +#: flatcamGUI/ObjectUI.py:1339 msgid "" "Create Geometry for milling holes.\n" "Select from the Tools Table above the hole dias to be\n" @@ -6259,16 +8212,17 @@ msgstr "" "отверстия, которые должны быть фрезерованы.\n" "Используйте столбец #, чтобы сделать выбор." -#: AppGUI/ObjectUI.py:1228 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:296 +#: flatcamGUI/ObjectUI.py:1347 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:296 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:45 msgid "Diameter of the cutting tool." msgstr "Диаметр режущего инструмента." -#: AppGUI/ObjectUI.py:1238 +#: flatcamGUI/ObjectUI.py:1357 msgid "Mill Drills" msgstr "Фрезерование отверстий" -#: AppGUI/ObjectUI.py:1240 +#: flatcamGUI/ObjectUI.py:1359 msgid "" "Create the Geometry Object\n" "for milling DRILLS toolpaths." @@ -6276,11 +8230,11 @@ msgstr "" "Создание объекта Geometry \n" "для траектории фрезерования отверстий." -#: AppGUI/ObjectUI.py:1258 +#: flatcamGUI/ObjectUI.py:1377 msgid "Mill Slots" msgstr "Фрезерование пазов" -#: AppGUI/ObjectUI.py:1260 +#: flatcamGUI/ObjectUI.py:1379 msgid "" "Create the Geometry Object\n" "for milling SLOTS toolpaths." @@ -6288,11 +8242,11 @@ msgstr "" "Создание объекта геометрии\n" "траекторий для инструмента фрезерования пазов." -#: AppGUI/ObjectUI.py:1302 AppTools/ToolCutOut.py:319 +#: flatcamGUI/ObjectUI.py:1421 flatcamTools/ToolCutOut.py:319 msgid "Geometry Object" msgstr "Объект Geometry" -#: AppGUI/ObjectUI.py:1364 +#: flatcamGUI/ObjectUI.py:1467 msgid "" "Tools in this Geometry object used for cutting.\n" "The 'Offset' entry will set an offset for the cut.\n" @@ -6321,24 +8275,24 @@ msgstr "" "показал пользовательский интерфейс записи форма имени Вольт-Совет диаметр и " "V-наконечник угол." -#: AppGUI/ObjectUI.py:1381 AppGUI/ObjectUI.py:2243 -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:40 +#: flatcamGUI/ObjectUI.py:1484 flatcamGUI/ObjectUI.py:2313 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:40 msgid "Plot Object" msgstr "Рисовать объекты" -#: AppGUI/ObjectUI.py:1394 AppGUI/ObjectUI.py:2256 AppGUI/ObjectUI.py:2266 -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:138 -#: AppTools/ToolCopperThieving.py:225 +#: flatcamGUI/ObjectUI.py:1497 flatcamGUI/ObjectUI.py:2326 +#: flatcamGUI/ObjectUI.py:2336 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:138 +#: flatcamTools/ToolCopperThieving.py:221 msgid "Dia" msgstr "Диаметр" -#: AppGUI/ObjectUI.py:1394 AppGUI/ObjectUI.py:2256 -#: AppTools/ToolIsolation.py:130 AppTools/ToolNCC.py:132 -#: AppTools/ToolPaint.py:127 +#: flatcamGUI/ObjectUI.py:1497 flatcamGUI/ObjectUI.py:2326 +#: flatcamTools/ToolNCC.py:132 flatcamTools/ToolPaint.py:128 msgid "TT" msgstr "TT" -#: AppGUI/ObjectUI.py:1401 +#: flatcamGUI/ObjectUI.py:1504 msgid "" "This is the Tool Number.\n" "When ToolChange is checked, on toolchange event this value\n" @@ -6349,7 +8303,7 @@ msgstr "" "значение\n" "будет показано, как Т1, Т2 ... Теннесси" -#: AppGUI/ObjectUI.py:1412 +#: flatcamGUI/ObjectUI.py:1515 msgid "" "The value for the Offset can be:\n" "- Path -> There is no offset, the tool cut will be done through the geometry " @@ -6366,7 +8320,7 @@ msgstr "" "- Out (side) -> Резец инструмента будет следовать геометрической линии " "снаружи." -#: AppGUI/ObjectUI.py:1419 +#: flatcamGUI/ObjectUI.py:1522 msgid "" "The (Operation) Type has only informative value. Usually the UI form " "values \n" @@ -6389,7 +8343,7 @@ msgstr "" "Для изоляции нам нужна более низкая скорость подачи, так как она использует " "фрезерное долото с мелким наконечником." -#: AppGUI/ObjectUI.py:1428 +#: flatcamGUI/ObjectUI.py:1531 msgid "" "The Tool Type (TT) can be:\n" "- Circular with 1 ... 4 teeth -> it is informative only. Being circular the " @@ -6420,7 +8374,7 @@ msgstr "" "При выборе типа инструмента V-образная форма автоматически будет выбран тип " "операции как изоляция." -#: AppGUI/ObjectUI.py:1440 +#: flatcamGUI/ObjectUI.py:1543 msgid "" "Plot column. It is visible only for MultiGeo geometries, meaning geometries " "that holds the geometry\n" @@ -6438,7 +8392,7 @@ msgstr "" "отключить участок на холсте\n" "для соответствующего инструмента." -#: AppGUI/ObjectUI.py:1458 +#: flatcamGUI/ObjectUI.py:1561 msgid "" "The value to offset the cut when \n" "the Offset type selected is 'Offset'.\n" @@ -6450,30 +8404,28 @@ msgstr "" "Значение может быть положительным для \"снаружи\"\n" "вырезать и отрицательный для \"внутри\" вырезать." -#: AppGUI/ObjectUI.py:1477 AppTools/ToolIsolation.py:195 -#: AppTools/ToolIsolation.py:1257 AppTools/ToolNCC.py:209 -#: AppTools/ToolNCC.py:923 AppTools/ToolPaint.py:191 AppTools/ToolPaint.py:848 -#: AppTools/ToolSolderPaste.py:567 +#: flatcamGUI/ObjectUI.py:1580 flatcamTools/ToolNCC.py:209 +#: flatcamTools/ToolNCC.py:923 flatcamTools/ToolPaint.py:192 +#: flatcamTools/ToolPaint.py:849 flatcamTools/ToolSolderPaste.py:559 msgid "New Tool" msgstr "Новый инструмент" -#: AppGUI/ObjectUI.py:1496 AppTools/ToolIsolation.py:278 -#: AppTools/ToolNCC.py:296 AppTools/ToolPaint.py:278 +#: flatcamGUI/ObjectUI.py:1597 msgid "" "Add a new tool to the Tool Table\n" -"with the diameter specified above." +"with the specified diameter." msgstr "" "Добавление нового инструмента в таблицу инструментов\n" "с диаметром, указанным выше." -#: AppGUI/ObjectUI.py:1500 AppTools/ToolIsolation.py:282 -#: AppTools/ToolIsolation.py:613 AppTools/ToolNCC.py:300 -#: AppTools/ToolNCC.py:634 AppTools/ToolPaint.py:282 AppTools/ToolPaint.py:678 +#: flatcamGUI/ObjectUI.py:1602 flatcamTools/ToolNCC.py:300 +#: flatcamTools/ToolNCC.py:634 flatcamTools/ToolPaint.py:283 +#: flatcamTools/ToolPaint.py:679 msgid "Add from DB" msgstr "Добавить из БД" -#: AppGUI/ObjectUI.py:1502 AppTools/ToolIsolation.py:284 -#: AppTools/ToolNCC.py:302 AppTools/ToolPaint.py:284 +#: flatcamGUI/ObjectUI.py:1604 flatcamTools/ToolNCC.py:302 +#: flatcamTools/ToolPaint.py:285 msgid "" "Add a new tool to the Tool Table\n" "from the Tool DataBase." @@ -6481,7 +8433,7 @@ msgstr "" "Добавление нового инструмента в таблицу инструментов\n" "из БД." -#: AppGUI/ObjectUI.py:1521 +#: flatcamGUI/ObjectUI.py:1619 msgid "" "Copy a selection of tools in the Tool Table\n" "by first selecting a row in the Tool Table." @@ -6489,7 +8441,7 @@ msgstr "" "Копирование выбранных инструментов в таблице инструментов\n" "сначала выберите строку в таблице инструментов." -#: AppGUI/ObjectUI.py:1527 +#: flatcamGUI/ObjectUI.py:1625 msgid "" "Delete a selection of tools in the Tool Table\n" "by first selecting a row in the Tool Table." @@ -6497,63 +8449,15 @@ msgstr "" "Удаление выбранных инструментов в таблице инструментов\n" "сначала выберите строку в таблице инструментов." -#: AppGUI/ObjectUI.py:1574 AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:89 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:72 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:78 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:85 -#: AppTools/ToolIsolation.py:219 AppTools/ToolNCC.py:233 -#: AppTools/ToolNCC.py:240 AppTools/ToolPaint.py:215 -msgid "V-Tip Dia" -msgstr "Диаметр V-наконечника" - -#: AppGUI/ObjectUI.py:1577 AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:91 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:74 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:80 -#: AppTools/ToolIsolation.py:221 AppTools/ToolNCC.py:235 -#: AppTools/ToolPaint.py:217 -msgid "The tip diameter for V-Shape Tool" -msgstr "Диаметр наконечника для V-образного инструмента" - -#: AppGUI/ObjectUI.py:1589 AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:101 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:84 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:91 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:99 -#: AppTools/ToolIsolation.py:232 AppTools/ToolNCC.py:246 -#: AppTools/ToolNCC.py:254 AppTools/ToolPaint.py:228 -msgid "V-Tip Angle" -msgstr "Угол V-наконечника" - -#: AppGUI/ObjectUI.py:1592 AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:86 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:93 -#: AppTools/ToolIsolation.py:234 AppTools/ToolNCC.py:248 -#: AppTools/ToolPaint.py:230 -msgid "" -"The tip angle for V-Shape Tool.\n" -"In degree." -msgstr "" -"Угол наклона наконечника для V-образного инструмента.\n" -"В степенях." - -#: AppGUI/ObjectUI.py:1608 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:51 -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:61 -#: AppObjects/FlatCAMGeometry.py:1238 AppTools/ToolCutOut.py:141 -msgid "" -"Cutting depth (negative)\n" -"below the copper surface." -msgstr "" -"Глубина резания (отрицательная)\n" -"ниже слоя меди." - -#: AppGUI/ObjectUI.py:1654 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:104 +#: flatcamGUI/ObjectUI.py:1752 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:103 msgid "" "Height of the tool when\n" "moving without cutting." msgstr "Высота отвода инструмента при холостом ходе." -#: AppGUI/ObjectUI.py:1687 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:203 +#: flatcamGUI/ObjectUI.py:1785 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:202 msgid "" "Cutting speed in the XY\n" "plane in units per minute.\n" @@ -6563,8 +8467,8 @@ msgstr "" "самолет в единицах в минуту.\n" "Это называется также Плунге." -#: AppGUI/ObjectUI.py:1702 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:69 +#: flatcamGUI/ObjectUI.py:1800 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:66 msgid "" "Cutting speed in the XY plane\n" "(in units per minute).\n" @@ -6578,8 +8482,8 @@ msgstr "" "Это полезно только для Марлина,\n" "игнорировать для любых других случаев." -#: AppGUI/ObjectUI.py:1746 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:220 +#: flatcamGUI/ObjectUI.py:1844 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:219 msgid "" "Speed of the spindle in RPM (optional).\n" "If LASER preprocessor is used,\n" @@ -6589,8 +8493,8 @@ msgstr "" "Если используется лазерный постпроцессор,\n" "это значение - мощность лазера." -#: AppGUI/ObjectUI.py:1849 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:125 +#: flatcamGUI/ObjectUI.py:1947 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:124 msgid "" "Include tool-change sequence\n" "in the Machine Code (Pause for tool change)." @@ -6598,8 +8502,8 @@ msgstr "" "Включить последовательность смены инструмента\n" "в машинном коде (пауза для смены инструмента)." -#: AppGUI/ObjectUI.py:1918 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:257 +#: flatcamGUI/ObjectUI.py:2016 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:256 msgid "" "The Preprocessor file that dictates\n" "the Machine Code (like GCode, RML, HPGL) output." @@ -6607,15 +8511,106 @@ msgstr "" "Файл постпроцессора, который диктует\n" "вывод машинного кода (например, кода, RML, HPGL)." -#: AppGUI/ObjectUI.py:2047 Common.py:426 Common.py:559 Common.py:619 +#: flatcamGUI/ObjectUI.py:2028 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:201 +msgid "Exclusion areas" +msgstr "Зоны исключения" + +#: flatcamGUI/ObjectUI.py:2031 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:204 +msgid "" +"Include exclusion areas.\n" +"In those areas the travel of the tools\n" +"is forbidden." +msgstr "" +"Включает зоны исключения.\n" +"В этих областях движение инструмента\n" +"запрещено." + +#: flatcamGUI/ObjectUI.py:2053 +msgid "Add area" +msgstr "Добавить область" + +#: flatcamGUI/ObjectUI.py:2054 +msgid "Add an Exclusion Area." +msgstr "Добавить зону исключения." + +#: flatcamGUI/ObjectUI.py:2058 +msgid "Clear areas" +msgstr "Очистить участки" + +#: flatcamGUI/ObjectUI.py:2059 +msgid "Delete all exclusion areas." +msgstr "Удаляет все исключаемые зоны." + +#: flatcamGUI/ObjectUI.py:2068 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:212 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:322 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:286 +#: flatcamTools/ToolNCC.py:578 flatcamTools/ToolPaint.py:522 +msgid "Shape" +msgstr "Форма" + +#: flatcamGUI/ObjectUI.py:2070 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:214 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:324 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:288 +#: flatcamTools/ToolNCC.py:580 flatcamTools/ToolPaint.py:524 +msgid "The kind of selection shape used for area selection." +msgstr "Вид формы выделения, используемый для выделения области." + +#: flatcamGUI/ObjectUI.py:2080 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:224 +msgid "Strategy" +msgstr "Стратегия" + +#: flatcamGUI/ObjectUI.py:2081 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:225 +msgid "" +"The strategy followed when encountering an exclusion area.\n" +"Can be:\n" +"- Over -> when encountering the area, the tool will go to a set height\n" +"- Around -> will avoid the exclusion area by going around the area" +msgstr "" +"Стратегия, используемая при столкновении с зоной исключения.\n" +"Может быть:\n" +"- Сверху -> при столкновении с зоной, инструмент перейдет на заданную " +"высоту.\n" +"- Вокруг -> избегает зоны исключения, обойдя зону" + +#: flatcamGUI/ObjectUI.py:2085 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:229 +msgid "Over" +msgstr "Сверху" + +#: flatcamGUI/ObjectUI.py:2086 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:230 +msgid "Around" +msgstr "Вокруг" + +#: flatcamGUI/ObjectUI.py:2092 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:236 +msgid "Over Z" +msgstr "Z обхода" + +#: flatcamGUI/ObjectUI.py:2093 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:237 +msgid "" +"The height Z to which the tool will rise in order to avoid\n" +"an interdiction area." +msgstr "" +"Высота Z, на которую поднимется инструмент, чтобы избежать зоны исключения." + +#: flatcamGUI/ObjectUI.py:2117 msgid "Generate the CNC Job object." msgstr "Будет создан объект программы для ЧПУ." -#: AppGUI/ObjectUI.py:2064 +#: flatcamGUI/ObjectUI.py:2134 msgid "Launch Paint Tool in Tools Tab." msgstr "Запускает инструмент рисования во вкладке Инструменты." -#: AppGUI/ObjectUI.py:2072 AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:35 +#: flatcamGUI/ObjectUI.py:2142 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:35 msgid "" "Creates tool paths to cover the\n" "whole area of a polygon (remove\n" @@ -6626,15 +8621,17 @@ msgstr "" "всей площади полигона(удаляется вся медь).\n" "Будет предложено нажать на нужный полигон." -#: AppGUI/ObjectUI.py:2127 +#: flatcamGUI/ObjectUI.py:2197 msgid "CNC Job Object" msgstr "Объект программы для ЧПУ" -#: AppGUI/ObjectUI.py:2138 AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:45 +#: flatcamGUI/ObjectUI.py:2208 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:45 msgid "Plot kind" msgstr "Отрисовка участка" -#: AppGUI/ObjectUI.py:2141 AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:47 +#: flatcamGUI/ObjectUI.py:2211 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:47 msgid "" "This selects the kind of geometries on the canvas to plot.\n" "Those can be either of type 'Travel' which means the moves\n" @@ -6646,15 +8643,18 @@ msgstr "" "над заготовкой или она может быть типа \"Cut\",\n" "что означает ходы, которые врезаются в материал." -#: AppGUI/ObjectUI.py:2150 AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:55 +#: flatcamGUI/ObjectUI.py:2220 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:55 msgid "Travel" msgstr "Траектория" -#: AppGUI/ObjectUI.py:2154 AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:64 +#: flatcamGUI/ObjectUI.py:2224 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:64 msgid "Display Annotation" msgstr "Показывать примечания" -#: AppGUI/ObjectUI.py:2156 AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:66 +#: flatcamGUI/ObjectUI.py:2226 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:66 msgid "" "This selects if to display text annotation on the plot.\n" "When checked it will display numbers in order for each end\n" @@ -6665,11 +8665,11 @@ msgstr "" "порядке\n" "траектории движения." -#: AppGUI/ObjectUI.py:2171 +#: flatcamGUI/ObjectUI.py:2241 msgid "Travelled dist." msgstr "Пройденное расстояние." -#: AppGUI/ObjectUI.py:2173 AppGUI/ObjectUI.py:2178 +#: flatcamGUI/ObjectUI.py:2243 flatcamGUI/ObjectUI.py:2248 msgid "" "This is the total travelled distance on X-Y plane.\n" "In current units." @@ -6677,11 +8677,11 @@ msgstr "" "Это общее пройденное расстояние на X-Y плоскости.\n" "В текущих единицах измерения." -#: AppGUI/ObjectUI.py:2183 +#: flatcamGUI/ObjectUI.py:2253 msgid "Estimated time" msgstr "Расчетное время" -#: AppGUI/ObjectUI.py:2185 AppGUI/ObjectUI.py:2190 +#: flatcamGUI/ObjectUI.py:2255 flatcamGUI/ObjectUI.py:2260 msgid "" "This is the estimated time to do the routing/drilling,\n" "without the time spent in ToolChange events." @@ -6689,11 +8689,11 @@ msgstr "" "Это расчетное время для выполнения маршрутизации/бурения,\n" "без времени, затраченного на события смены инструмента." -#: AppGUI/ObjectUI.py:2225 +#: flatcamGUI/ObjectUI.py:2295 msgid "CNC Tools Table" msgstr "Таблица инструментов CNC" -#: AppGUI/ObjectUI.py:2228 +#: flatcamGUI/ObjectUI.py:2298 msgid "" "Tools in this CNCJob object used for cutting.\n" "The tool diameter is used for plotting on canvas.\n" @@ -6715,26 +8715,26 @@ msgstr "" "\"Тип инструмента\" (TT) может быть круговым с 1 до 4 зубами (C1..C4),\n" "шарик (B), или V-образный(V)." -#: AppGUI/ObjectUI.py:2256 AppGUI/ObjectUI.py:2267 +#: flatcamGUI/ObjectUI.py:2326 flatcamGUI/ObjectUI.py:2337 msgid "P" msgstr "P" -#: AppGUI/ObjectUI.py:2277 +#: flatcamGUI/ObjectUI.py:2347 msgid "Update Plot" msgstr "Обновить участок" -#: AppGUI/ObjectUI.py:2279 +#: flatcamGUI/ObjectUI.py:2349 msgid "Update the plot." msgstr "Обновление участка." -#: AppGUI/ObjectUI.py:2286 -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:30 +#: flatcamGUI/ObjectUI.py:2356 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:30 msgid "Export CNC Code" msgstr "Экспорт CNC Code" -#: AppGUI/ObjectUI.py:2288 -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:32 -#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:33 +#: flatcamGUI/ObjectUI.py:2358 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:32 +#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:33 msgid "" "Export and save G-Code to\n" "make this object to a file." @@ -6743,12 +8743,12 @@ msgstr "" "для сохранения\n" "этого объекта в файл." -#: AppGUI/ObjectUI.py:2294 +#: flatcamGUI/ObjectUI.py:2364 msgid "Prepend to CNC Code" msgstr "Добавить в начало CNC Code" -#: AppGUI/ObjectUI.py:2296 AppGUI/ObjectUI.py:2303 -#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:49 +#: flatcamGUI/ObjectUI.py:2366 flatcamGUI/ObjectUI.py:2373 +#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:49 msgid "" "Type here any G-Code commands you would\n" "like to add at the beginning of the G-Code file." @@ -6756,12 +8756,12 @@ msgstr "" "Введите здесь любые команды G-Code, которые вам\n" "хотелось бы добавить в начале файла G-Code." -#: AppGUI/ObjectUI.py:2309 +#: flatcamGUI/ObjectUI.py:2379 msgid "Append to CNC Code" msgstr "Дописать в конец CNC Code" -#: AppGUI/ObjectUI.py:2311 AppGUI/ObjectUI.py:2319 -#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:65 +#: flatcamGUI/ObjectUI.py:2381 flatcamGUI/ObjectUI.py:2389 +#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:65 msgid "" "Type here any G-Code commands you would\n" "like to append to the generated file.\n" @@ -6771,13 +8771,13 @@ msgstr "" "хотелось бы добавить к созданному файлу.\n" "например: M2 (конец программы)" -#: AppGUI/ObjectUI.py:2333 -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:38 +#: flatcamGUI/ObjectUI.py:2403 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:38 msgid "Toolchange G-Code" msgstr "G-Code смены инструмента" -#: AppGUI/ObjectUI.py:2336 -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:41 +#: flatcamGUI/ObjectUI.py:2406 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:41 msgid "" "Type here any G-Code commands you would\n" "like to be executed when Toolchange event is encountered.\n" @@ -6799,7 +8799,7 @@ msgstr "" "и иметь \"toolchange_custom\" в имени, и будет построено\n" "используя в качестве шаблона файл постпроцессора \"Tool change Custom\"." -#: AppGUI/ObjectUI.py:2351 +#: flatcamGUI/ObjectUI.py:2421 msgid "" "Type here any G-Code commands you would\n" "like to be executed when Toolchange event is encountered.\n" @@ -6817,13 +8817,13 @@ msgstr "" "ВНИМАНИЕ: его можно использовать только с файлом препроцессора\n" "в названии которого есть toolchange_custom." -#: AppGUI/ObjectUI.py:2366 -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:80 +#: flatcamGUI/ObjectUI.py:2436 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:80 msgid "Use Toolchange Macro" msgstr "Использовать макросы смены инструмента" -#: AppGUI/ObjectUI.py:2368 -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:82 +#: flatcamGUI/ObjectUI.py:2438 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:82 msgid "" "Check this box if you want to use\n" "a Custom Toolchange GCode (macro)." @@ -6831,8 +8831,8 @@ msgstr "" "Установите этот флажок, если хотите использовать\n" "пользовательский GCode смены инструментов (макрос)." -#: AppGUI/ObjectUI.py:2376 -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:94 +#: flatcamGUI/ObjectUI.py:2446 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:94 msgid "" "A list of the FlatCAM variables that can be used\n" "in the Toolchange event.\n" @@ -6842,111 +8842,107 @@ msgstr "" "при смене инструмента.\n" "Они должны быть окружены '%' символом" -#: AppGUI/ObjectUI.py:2383 -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:101 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:30 -#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:31 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:31 -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:37 -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:36 -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:36 -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:36 -#: AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py:31 -#: AppGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:31 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:36 -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:31 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:30 -#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:31 -#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:35 -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:32 -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:31 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:30 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:31 -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:31 -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:31 -#: AppGUI/preferences/tools/ToolsSubPrefGroupUI.py:31 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:31 -#: AppTools/ToolCalibration.py:67 AppTools/ToolCopperThieving.py:93 -#: AppTools/ToolCorners.py:115 AppTools/ToolEtchCompensation.py:138 -#: AppTools/ToolFiducials.py:152 AppTools/ToolInvertGerber.py:85 -#: AppTools/ToolQRCode.py:114 +#: flatcamGUI/ObjectUI.py:2453 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:101 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:30 +#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:31 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:31 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:37 +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:36 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:36 +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:36 +#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:31 +#: flatcamGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:31 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:36 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:31 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:30 +#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:31 +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:32 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:31 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:31 +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:31 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:31 +#: flatcamGUI/preferences/tools/ToolsSubPrefGroupUI.py:31 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:31 +#: flatcamTools/ToolCopperThieving.py:89 flatcamTools/ToolFiducials.py:149 +#: flatcamTools/ToolInvertGerber.py:82 msgid "Parameters" msgstr "Параметры" -#: AppGUI/ObjectUI.py:2386 -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:106 +#: flatcamGUI/ObjectUI.py:2456 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:106 msgid "FlatCAM CNC parameters" msgstr "Параметры FlatCAM CNC" -#: AppGUI/ObjectUI.py:2387 -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:111 +#: flatcamGUI/ObjectUI.py:2457 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:111 msgid "tool number" msgstr "номер инструмента" -#: AppGUI/ObjectUI.py:2388 -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:112 +#: flatcamGUI/ObjectUI.py:2458 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:112 msgid "tool diameter" msgstr "диаметр инструмента" -#: AppGUI/ObjectUI.py:2389 -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:113 +#: flatcamGUI/ObjectUI.py:2459 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:113 msgid "for Excellon, total number of drills" msgstr "для Excellon, общее количество сверл" -#: AppGUI/ObjectUI.py:2391 -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:115 +#: flatcamGUI/ObjectUI.py:2461 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:115 msgid "X coord for Toolchange" msgstr "Координата X для смены инструмента" -#: AppGUI/ObjectUI.py:2392 -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:116 +#: flatcamGUI/ObjectUI.py:2462 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:116 msgid "Y coord for Toolchange" msgstr "Координата Y для смены инструмента" -#: AppGUI/ObjectUI.py:2393 -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:118 +#: flatcamGUI/ObjectUI.py:2463 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:118 msgid "Z coord for Toolchange" msgstr "Координата Z для смены инструмента" -#: AppGUI/ObjectUI.py:2394 +#: flatcamGUI/ObjectUI.py:2464 msgid "depth where to cut" msgstr "глубина резания" -#: AppGUI/ObjectUI.py:2395 +#: flatcamGUI/ObjectUI.py:2465 msgid "height where to travel" msgstr "высота перемещения" -#: AppGUI/ObjectUI.py:2396 -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:121 +#: flatcamGUI/ObjectUI.py:2466 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:121 msgid "the step value for multidepth cut" msgstr "значение шага для мультипроходного разреза" -#: AppGUI/ObjectUI.py:2398 -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:123 +#: flatcamGUI/ObjectUI.py:2468 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:123 msgid "the value for the spindle speed" msgstr "значение скорости вращения шпинделя" -#: AppGUI/ObjectUI.py:2400 +#: flatcamGUI/ObjectUI.py:2470 msgid "time to dwell to allow the spindle to reach it's set RPM" msgstr "" "время, чтобы остановиться, чтобы позволить шпинделю достичь его установлен " "об / мин" -#: AppGUI/ObjectUI.py:2416 +#: flatcamGUI/ObjectUI.py:2486 msgid "View CNC Code" msgstr "Просмотр CNC Code" -#: AppGUI/ObjectUI.py:2418 +#: flatcamGUI/ObjectUI.py:2488 msgid "" "Opens TAB to view/modify/print G-Code\n" "file." msgstr "Открывает вкладку для просмотра/изменения/печати файла G-Code." -#: AppGUI/ObjectUI.py:2423 +#: flatcamGUI/ObjectUI.py:2493 msgid "Save CNC Code" msgstr "Сохранить CNC Code" -#: AppGUI/ObjectUI.py:2425 +#: flatcamGUI/ObjectUI.py:2495 msgid "" "Opens dialog to save G-Code\n" "file." @@ -6954,120 +8950,80 @@ msgstr "" "Открывает диалоговое окно для сохранения\n" "файла G-Code." -#: AppGUI/ObjectUI.py:2459 +#: flatcamGUI/ObjectUI.py:2529 msgid "Script Object" msgstr "Объект сценария" -#: AppGUI/ObjectUI.py:2479 AppGUI/ObjectUI.py:2553 +#: flatcamGUI/ObjectUI.py:2549 flatcamGUI/ObjectUI.py:2623 msgid "Auto Completer" msgstr "Автозаполнение" -#: AppGUI/ObjectUI.py:2481 +#: flatcamGUI/ObjectUI.py:2551 msgid "This selects if the auto completer is enabled in the Script Editor." msgstr "" "Этот параметр выбирает, включено ли автозаполнение в редакторе сценариев." -#: AppGUI/ObjectUI.py:2526 +#: flatcamGUI/ObjectUI.py:2596 msgid "Document Object" msgstr "Объект Document" -#: AppGUI/ObjectUI.py:2555 +#: flatcamGUI/ObjectUI.py:2625 msgid "This selects if the auto completer is enabled in the Document Editor." msgstr "" "Этот параметр выбирает, включено ли автозаполнение в редакторе Document." -#: AppGUI/ObjectUI.py:2573 +#: flatcamGUI/ObjectUI.py:2643 msgid "Font Type" msgstr "Тип шрифта" -#: AppGUI/ObjectUI.py:2590 -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:189 +#: flatcamGUI/ObjectUI.py:2660 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:197 msgid "Font Size" msgstr "Размер шрифта" -#: AppGUI/ObjectUI.py:2626 +#: flatcamGUI/ObjectUI.py:2696 msgid "Alignment" msgstr "Выравнивание" -#: AppGUI/ObjectUI.py:2631 +#: flatcamGUI/ObjectUI.py:2701 msgid "Align Left" msgstr "Выравнивание по левому краю" -#: AppGUI/ObjectUI.py:2636 App_Main.py:4715 -msgid "Center" -msgstr "По центру" - -#: AppGUI/ObjectUI.py:2641 +#: flatcamGUI/ObjectUI.py:2711 msgid "Align Right" msgstr "Выравнивание по правому краю" -#: AppGUI/ObjectUI.py:2646 +#: flatcamGUI/ObjectUI.py:2716 msgid "Justify" msgstr "Выравнивание по ширине" -#: AppGUI/ObjectUI.py:2653 +#: flatcamGUI/ObjectUI.py:2723 msgid "Font Color" msgstr "Цвет шрифта" -#: AppGUI/ObjectUI.py:2655 +#: flatcamGUI/ObjectUI.py:2725 msgid "Set the font color for the selected text" msgstr "Устанавливает цвет шрифта для выделенного текста" -#: AppGUI/ObjectUI.py:2669 +#: flatcamGUI/ObjectUI.py:2739 msgid "Selection Color" msgstr "Цвет выделения" -#: AppGUI/ObjectUI.py:2671 +#: flatcamGUI/ObjectUI.py:2741 msgid "Set the selection color when doing text selection." msgstr "Установка цвета выделения при выделения текста." -#: AppGUI/ObjectUI.py:2685 +#: flatcamGUI/ObjectUI.py:2755 msgid "Tab Size" msgstr "Размер вкладки" -#: AppGUI/ObjectUI.py:2687 +#: flatcamGUI/ObjectUI.py:2757 msgid "Set the tab size. In pixels. Default value is 80 pixels." msgstr "" "Установка размера вкладки. В пикселях. Значение по умолчанию составляет 80 " "пикселей." -#: AppGUI/PlotCanvas.py:236 AppGUI/PlotCanvasLegacy.py:345 -#, fuzzy -#| msgid "All plots enabled." -msgid "Axis enabled." -msgstr "Все участки включены." - -#: AppGUI/PlotCanvas.py:242 AppGUI/PlotCanvasLegacy.py:352 -#, fuzzy -#| msgid "All plots disabled." -msgid "Axis disabled." -msgstr "Все участки отключены." - -#: AppGUI/PlotCanvas.py:260 AppGUI/PlotCanvasLegacy.py:372 -#, fuzzy -#| msgid "Enabled" -msgid "HUD enabled." -msgstr "Включено" - -#: AppGUI/PlotCanvas.py:268 AppGUI/PlotCanvasLegacy.py:378 -#, fuzzy -#| msgid "Disabled" -msgid "HUD disabled." -msgstr "Отключено" - -#: AppGUI/PlotCanvas.py:276 AppGUI/PlotCanvasLegacy.py:451 -#, fuzzy -#| msgid "Workspace Settings" -msgid "Grid enabled." -msgstr "Настройки рабочей области" - -#: AppGUI/PlotCanvas.py:280 AppGUI/PlotCanvasLegacy.py:459 -#, fuzzy -#| msgid "Workspace Settings" -msgid "Grid disabled." -msgstr "Настройки рабочей области" - -#: AppGUI/PlotCanvasLegacy.py:1523 +#: flatcamGUI/PlotCanvasLegacy.py:1299 msgid "" "Could not annotate due of a difference between the number of text elements " "and the number of text positions." @@ -7075,45 +9031,28 @@ msgstr "" "Не удалось создать примечания из-за разницы между количеством текстовых " "элементов и количеством текстовых позиций." -#: AppGUI/preferences/PreferencesUIManager.py:852 +#: flatcamGUI/preferences/PreferencesUIManager.py:911 msgid "Preferences applied." msgstr "Настройки применяются." -#: AppGUI/preferences/PreferencesUIManager.py:872 -#, fuzzy -#| msgid "Are you sure you want to delete the GUI Settings? \n" -msgid "Are you sure you want to continue?" -msgstr "Вы уверены, что хотите сбросить настройки интерфейса?\n" - -#: AppGUI/preferences/PreferencesUIManager.py:873 -#, fuzzy -#| msgid "Application started ..." -msgid "Application will restart" -msgstr "Приложение запущено ..." - -#: AppGUI/preferences/PreferencesUIManager.py:971 +#: flatcamGUI/preferences/PreferencesUIManager.py:975 msgid "Preferences closed without saving." msgstr "Настройки закрыты без сохранения." -#: AppGUI/preferences/PreferencesUIManager.py:983 +#: flatcamGUI/preferences/PreferencesUIManager.py:987 msgid "Preferences default values are restored." msgstr "Настройки по умолчанию восстановлены." -#: AppGUI/preferences/PreferencesUIManager.py:1015 App_Main.py:2498 -#: App_Main.py:2566 -msgid "Failed to write defaults to file." -msgstr "Не удалось записать значения по умолчанию в файл." - -#: AppGUI/preferences/PreferencesUIManager.py:1019 -#: AppGUI/preferences/PreferencesUIManager.py:1132 +#: flatcamGUI/preferences/PreferencesUIManager.py:1022 +#: flatcamGUI/preferences/PreferencesUIManager.py:1131 msgid "Preferences saved." msgstr "Настройки сохранены." -#: AppGUI/preferences/PreferencesUIManager.py:1069 +#: flatcamGUI/preferences/PreferencesUIManager.py:1072 msgid "Preferences edited but not saved." msgstr "Настройки отредактированы, но не сохранены." -#: AppGUI/preferences/PreferencesUIManager.py:1117 +#: flatcamGUI/preferences/PreferencesUIManager.py:1117 msgid "" "One or more values are changed.\n" "Do you want to save the Preferences?" @@ -7121,11 +9060,11 @@ msgstr "" "Одно или несколько значений изменены.\n" "Вы хотите сохранить настройки?" -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:27 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:27 msgid "CNC Job Adv. Options" msgstr "CNC Job дополнительные" -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:64 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:64 msgid "" "Type here any G-Code commands you would like to be executed when Toolchange " "event is encountered.\n" @@ -7142,48 +9081,48 @@ msgstr "" "ПРЕДУПРЕЖДЕНИЕ: он может использоваться только с файлом препроцессора, в " "имени которого есть 'toolchange_custom'." -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:119 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:119 msgid "Z depth for the cut" msgstr "Z глубина распила" -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:120 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:120 msgid "Z height for travel" msgstr "Высота Z для перемещения" -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:126 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:126 msgid "dwelltime = time to dwell to allow the spindle to reach it's set RPM" msgstr "" "dwelltime = время, чтобы остановиться, чтобы позволить шпинделю достичь его " "установлен об / мин" -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:145 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:145 msgid "Annotation Size" msgstr "Размер примечаний" -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:147 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:147 msgid "The font size of the annotation text. In pixels." msgstr "Размер шрифта текста примечаний. В пикселях." -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:157 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:157 msgid "Annotation Color" msgstr "Цвет примечаний" -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:159 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:159 msgid "Set the font color for the annotation texts." msgstr "Устанавливает цвет шрифта для текста примечаний." -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:26 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:26 msgid "CNC Job General" msgstr "CNC Job основные" -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:77 -#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:57 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:59 -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:45 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:77 +#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:47 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:59 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:45 msgid "Circle Steps" msgstr "Шаг круга" -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:79 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:79 msgid "" "The number of circle steps for GCode \n" "circle and arc shapes linear approximation." @@ -7191,11 +9130,11 @@ msgstr "" "Число шагов круга для G-код \n" "круг и дуга образуют линейное приближение." -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:88 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:88 msgid "Travel dia" msgstr "Диаметр траектории" -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:90 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:90 msgid "" "The width of the travel lines to be\n" "rendered in the plot." @@ -7203,16 +9142,16 @@ msgstr "" "Диаметр инструмента\n" " для черчения контуров." -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:103 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:103 msgid "G-code Decimals" msgstr "G-code десятичные" -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:106 -#: AppTools/ToolFiducials.py:71 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:106 +#: flatcamTools/ToolFiducials.py:74 msgid "Coordinates" msgstr "Координаты" -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:108 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:108 msgid "" "The number of decimals to be used for \n" "the X, Y, Z coordinates in CNC code (GCODE, etc.)" @@ -7220,12 +9159,12 @@ msgstr "" "Число десятичных знаков, которые будут использоваться для \n" "координаты X, Y, Z в коде CNC (GCODE, и т.д.)" -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:119 -#: AppTools/ToolProperties.py:519 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:119 +#: flatcamTools/ToolProperties.py:519 msgid "Feedrate" msgstr "Скорость подачи" -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:121 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:121 msgid "" "The number of decimals to be used for \n" "the Feedrate parameter in CNC code (GCODE, etc.)" @@ -7233,11 +9172,11 @@ msgstr "" "Число десятичных знаков, которые будут использоваться для \n" "параметра скорости подачи в коде CNC (GCODE, и т.д.)" -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:132 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:132 msgid "Coordinates type" msgstr "Тип координат" -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:134 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:134 msgid "" "The type of coordinates to be used in Gcode.\n" "Can be:\n" @@ -7249,19 +9188,19 @@ msgstr "" "- Абсолютный G90 - > ссылка является началом координат x=0, y=0\n" "- Инкрементальный G91 -> ссылка на предыдущую позицию" -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:140 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:140 msgid "Absolute G90" msgstr "Абсолютный путь G90" -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:141 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:141 msgid "Incremental G91" msgstr "Инкрементальный G91" -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:151 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:151 msgid "Force Windows style line-ending" msgstr "Принудительное завершение строк в стиле Windows" -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:153 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:153 msgid "" "When checked will force a Windows style line-ending\n" "(\\r\\n) on non-Windows OS's." @@ -7270,38 +9209,38 @@ msgstr "" "принудительно завершён\n" "(\\r\\n) в операционных системах, отличных от Windows." -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:165 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:165 msgid "Travel Line Color" msgstr "Цвет линии передвижения" -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:169 -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:210 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:271 -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:154 -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:195 -#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:94 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:153 -#: AppTools/ToolRulesCheck.py:186 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:169 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:235 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:262 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:154 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:220 +#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:84 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:153 +#: flatcamTools/ToolRulesCheck.py:186 msgid "Outline" msgstr "Контур" -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:171 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:171 msgid "Set the travel line color for plotted objects." msgstr "Установка цвета линии перемещения для построенных объектов." -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:179 -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:220 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:281 -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:163 -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:205 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:163 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:186 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:252 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:279 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:170 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:237 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:170 msgid "Fill" msgstr "Заполнение" -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:181 -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:222 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:283 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:165 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:188 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:254 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:281 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:172 msgid "" "Set the fill color for plotted objects.\n" "First 6 digits are the color and the last 2\n" @@ -7311,46 +9250,41 @@ msgstr "" "Первые 6 цифр-это цвет, а последние 2\n" "цифры для альфа-уровня (прозрачности)." -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:191 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:293 -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:176 -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:218 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:175 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:205 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:298 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:190 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:257 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:189 msgid "Alpha" msgstr "Прозрачность" -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:193 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:295 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:177 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:207 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:300 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:191 msgid "Set the fill transparency for plotted objects." msgstr "Установит прозрачность заливки для построенных объектов." -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:206 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:267 -#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:90 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:149 -#, fuzzy -#| msgid "CNCJob Object Color" -msgid "Object Color" +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:231 +msgid "CNCJob Object Color" msgstr "Цвет объектов CNCJob" -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:212 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:237 msgid "Set the color for plotted objects." msgstr "Установит цвет линии для построенных объектов." -#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:27 +#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:27 msgid "CNC Job Options" msgstr "Параметры CNC Job" -#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:31 +#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:31 msgid "Export G-Code" msgstr "Экспорт G-кода" -#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:47 +#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:47 msgid "Prepend to G-Code" msgstr "Коды предобработки для G-Code" -#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:56 +#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:56 msgid "" "Type here any G-Code commands you would like to add at the beginning of the " "G-Code file." @@ -7358,11 +9292,11 @@ msgstr "" "Введите здесь любые команды G-Code, которые вы хотите добавить в начало " "файла G-кода." -#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:63 +#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:63 msgid "Append to G-Code" msgstr "Коды постобработки для G-Code" -#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:73 +#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:73 msgid "" "Type here any G-Code commands you would like to append to the generated " "file.\n" @@ -7372,17 +9306,17 @@ msgstr "" "созданному файлу.\n" "например: M2 (конец программы)" -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:27 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:27 msgid "Excellon Adv. Options" msgstr "Excellon дополнительные" -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:34 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:34 -#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:31 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:34 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:33 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:31 msgid "Advanced Options" msgstr "Дополнительные настройки" -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:36 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:36 msgid "" "A list of Excellon advanced parameters.\n" "Those parameters are available only for\n" @@ -7392,22 +9326,22 @@ msgstr "" "Эти параметры доступны только для\n" "расширенного режима приложения." -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:59 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:59 msgid "Toolchange X,Y" msgstr "Смена инструмента X,Y" -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:61 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:48 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:61 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:47 msgid "Toolchange X,Y position." msgstr "Позиция X,Y смены инструмента." -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:121 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:137 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:121 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:134 msgid "Spindle direction" msgstr "Направление вращения шпинделя" -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:123 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:139 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:123 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:136 msgid "" "This sets the direction that the spindle is rotating.\n" "It can be either:\n" @@ -7419,13 +9353,13 @@ msgstr "" "- CW = по часовой стрелке или\n" "- CCW = против часовой стрелки" -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:134 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:151 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:134 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:148 msgid "Fast Plunge" msgstr "Быстрый подвод" -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:136 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:153 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:136 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:150 msgid "" "By checking this, the vertical move from\n" "Z_Toolchange to Z_move is done with G0,\n" @@ -7437,11 +9371,11 @@ msgstr "" "что означает самую быструю доступную скорость.\n" "Предупреждение: перемещение выполняется при смене координат Toolchange X,Y." -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:143 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:143 msgid "Fast Retract" msgstr "Быстрый отвод" -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:145 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:145 msgid "" "Exit hole strategy.\n" " - When uncheked, while exiting the drilled hole the drill bit\n" @@ -7459,18 +9393,18 @@ msgstr "" " - Когда проверено перемещение от Z_cut(глубины отрезка) к Z_move\n" "(высота перемещения) делается как можно быстрее (G0) за один ход." -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:32 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:32 msgid "A list of Excellon Editor parameters." msgstr "Список параметров редактора Excellon." -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:40 -#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:41 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:41 -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:172 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:40 +#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:41 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:41 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:194 msgid "Selection limit" msgstr "Ограничение выбора" -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:42 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:42 msgid "" "Set the number of selected Excellon geometry\n" "items above which the utility geometry\n" @@ -7484,36 +9418,35 @@ msgstr "" "Увеличивает производительность при перемещении\n" "большое количество геометрических элементов." -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:55 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:134 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:117 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:123 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:55 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:117 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:123 msgid "New Dia" msgstr "Новый диаметр инструмента" -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:80 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:80 msgid "Linear Drill Array" msgstr "Линейный массив отверстий" -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:84 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:232 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:121 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:84 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:232 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:120 msgid "Linear Direction" msgstr "Линейное направление" -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:126 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:126 msgid "Circular Drill Array" msgstr "Круговой массив" -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:130 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:280 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:165 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:130 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:280 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:164 msgid "Circular Direction" msgstr "Круговое направление" -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:132 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:282 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:167 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:132 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:282 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:166 msgid "" "Direction for circular array.\n" "Can be CW = clockwise or CCW = counter clockwise." @@ -7521,13 +9454,13 @@ msgstr "" "Направление для кругового массива.\n" "Может быть CW = по часовой стрелке или CCW = против часовой стрелки." -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:143 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:293 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:178 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:143 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:293 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:177 msgid "Circular Angle" msgstr "Угол закругления" -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:196 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:196 msgid "" "Angle at which the slot is placed.\n" "The precision is of max 2 decimals.\n" @@ -7539,24 +9472,24 @@ msgstr "" "Минимальное значение: -359,99 градусов.\n" "Максимальное значение: 360,00 градусов." -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:215 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:215 msgid "Linear Slot Array" msgstr "Линейный массив пазов" -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:276 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:276 msgid "Circular Slot Array" msgstr "Круговой массив пазов" -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:26 +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:26 msgid "Excellon Export" msgstr "Экспорт Excellon" -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:30 -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:31 +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:30 +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:31 msgid "Export Options" msgstr "Параметры экспорта" -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:32 +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:32 msgid "" "The parameters set here are used in the file exported\n" "when using the File -> Export -> Export Excellon menu entry." @@ -7564,45 +9497,45 @@ msgstr "" "Заданные здесь параметры используются в экспортированном файле\n" "при использовании файла - > экспорт - > Экспорт Excellon пункт меню." -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:41 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:172 -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:39 -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:42 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:82 -#: AppTools/ToolDistance.py:56 AppTools/ToolDistanceMin.py:49 -#: AppTools/ToolPcbWizard.py:127 AppTools/ToolProperties.py:154 +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:41 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:163 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:39 +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:42 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:82 +#: flatcamTools/ToolDistance.py:56 flatcamTools/ToolDistanceMin.py:50 +#: flatcamTools/ToolPcbWizard.py:127 flatcamTools/ToolProperties.py:154 msgid "Units" msgstr "Единицы" -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:43 -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:49 +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:43 +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:49 msgid "The units used in the Excellon file." msgstr "Единицы измерения, используемые в файле Excellon." -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:46 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:96 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:182 -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:47 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:87 -#: AppTools/ToolCalculators.py:61 AppTools/ToolPcbWizard.py:125 +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:46 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:87 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:173 +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:47 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:87 +#: flatcamTools/ToolCalculators.py:61 flatcamTools/ToolPcbWizard.py:125 msgid "INCH" msgstr "ДЮЙМЫ" -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:47 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:183 -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:43 -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:48 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:88 -#: AppTools/ToolCalculators.py:62 AppTools/ToolPcbWizard.py:126 +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:47 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:174 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:43 +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:48 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:88 +#: flatcamTools/ToolCalculators.py:62 flatcamTools/ToolPcbWizard.py:126 msgid "MM" msgstr "MM" -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:55 -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:56 +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:55 +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:56 msgid "Int/Decimals" msgstr "Целое число / десятичные дроби" -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:57 +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:57 msgid "" "The NC drill files, usually named Excellon files\n" "are files that can be found in different formats.\n" @@ -7614,9 +9547,9 @@ msgstr "" "Здесь мы устанавливаем формат, используемый, когда\n" "координаты не используют точку." -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:69 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:104 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:133 +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:69 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:95 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:124 msgid "" "This numbers signify the number of digits in\n" "the whole part of Excellon coordinates." @@ -7624,9 +9557,9 @@ msgstr "" "Эти числа обозначают количество цифр в\n" "целая часть Excellon координат." -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:82 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:117 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:146 +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:82 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:108 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:137 msgid "" "This numbers signify the number of digits in\n" "the decimal part of Excellon coordinates." @@ -7634,12 +9567,12 @@ msgstr "" "Эти числа обозначают количество цифр в\n" "десятичная часть Excellon координат." -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:91 +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:91 msgid "Format" msgstr "Формат" -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:93 -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:103 +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:93 +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:103 msgid "" "Select the kind of coordinates format used.\n" "Coordinates can be saved with decimal point or without.\n" @@ -7655,22 +9588,22 @@ msgstr "" "Также это должно быть указано, если LZ = ведущие нули сохраняются\n" "или TZ = конечные нули сохраняются." -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:100 +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:100 msgid "Decimal" msgstr "Десятичный" -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:101 +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:101 msgid "No-Decimal" msgstr "Недесятичный" -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:114 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:154 -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:96 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:97 +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:114 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:145 +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:96 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:97 msgid "Zeros" msgstr "Нули" -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:117 +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:117 msgid "" "This sets the type of Excellon zeros.\n" "If LZ then Leading Zeros are kept and\n" @@ -7684,23 +9617,23 @@ msgstr "" "Если TZ установлен, то конечные нули сохраняются\n" "и ведущие нули удаляются." -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:124 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:167 -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:106 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:107 -#: AppTools/ToolPcbWizard.py:111 +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:124 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:158 +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:106 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:107 +#: flatcamTools/ToolPcbWizard.py:111 msgid "LZ" msgstr "LZ" -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:125 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:168 -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:107 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:108 -#: AppTools/ToolPcbWizard.py:112 +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:125 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:159 +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:107 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:108 +#: flatcamTools/ToolPcbWizard.py:112 msgid "TZ" msgstr "TZ" -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:127 +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:127 msgid "" "This sets the default type of Excellon zeros.\n" "If LZ then Leading Zeros are kept and\n" @@ -7714,12 +9647,12 @@ msgstr "" "Если проверен TZ, то сохраняются нулевые трейлеры\n" "и ведущие нули удаляются." -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:137 +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:137 msgid "Slot type" msgstr "Тип слота" -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:140 -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:150 +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:140 +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:150 msgid "" "This sets how the slots will be exported.\n" "If ROUTED then the slots will be routed\n" @@ -7733,29 +9666,23 @@ msgstr "" "Если пробурено (G85), пазы будут экспортированы\n" "используя команду сверления пазов (G85)." -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:147 +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:147 msgid "Routed" msgstr "Направлен" -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:148 +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:148 msgid "Drilled(G85)" msgstr "Пробурено (G85)" -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:29 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:29 msgid "Excellon General" msgstr "Excellon основные" -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:54 -#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:45 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:52 -msgid "M-Color" -msgstr "Разноцветные" - -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:71 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:62 msgid "Excellon Format" msgstr "Формат Excellon" -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:73 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:64 msgid "" "The NC drill files, usually named Excellon files\n" "are files that can be found in different formats.\n" @@ -7796,19 +9723,19 @@ msgstr "" "Sprint Layout 2:4 INCH LZ\n" "KiCAD 3:5 INCH TZ" -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:97 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:88 msgid "Default values for INCH are 2:4" msgstr "Значения по умолчанию для ДЮЙМОВОЙ 2:4" -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:125 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:116 msgid "METRIC" msgstr "МЕТРИЧЕСКАЯ" -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:126 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:117 msgid "Default values for METRIC are 3:3" msgstr "Значения по умолчанию для МЕТРИЧЕСКОЙ 3: 3" -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:157 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:148 msgid "" "This sets the type of Excellon zeros.\n" "If LZ then Leading Zeros are kept and\n" @@ -7825,7 +9752,7 @@ msgstr "" "Если TZ установлен, то конечные нули сохраняются\n" "и ведущие нули удаляются." -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:175 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:166 msgid "" "This sets the default units of Excellon files.\n" "If it is not detected in the parsed file the value here\n" @@ -7837,7 +9764,7 @@ msgstr "" "будем использовать.Некоторые файлы Excellon не имеют заголовка\n" "поэтому этот параметр будет использоваться." -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:185 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:176 msgid "" "This sets the units of Excellon files.\n" "Some Excellon files don't have an header\n" @@ -7847,20 +9774,20 @@ msgstr "" "Некоторые файлы Excellon не имеют заголовка\n" "поэтому этот параметр будет использоваться." -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:193 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:184 msgid "Update Export settings" msgstr "Обновить настройки экспорта" -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:210 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:201 msgid "Excellon Optimization" msgstr "Оптимизация Excellon" -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:213 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:204 msgid "Algorithm:" msgstr "Алгоритм:" -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:215 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:231 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:206 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:222 msgid "" "This sets the optimization type for the Excellon drill path.\n" "If <> is checked then Google OR-Tools algorithm with\n" @@ -7885,28 +9812,28 @@ msgstr "" "используется\n" "алгоритм Travelling Salesman для оптимизации пути." -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:226 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:217 msgid "MetaHeuristic" msgstr "Метаэвристический" -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:227 -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:104 -#: AppObjects/FlatCAMExcellon.py:694 AppObjects/FlatCAMGeometry.py:568 -#: AppObjects/FlatCAMGerber.py:219 AppTools/ToolIsolation.py:785 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:218 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:104 +#: flatcamObjects/FlatCAMExcellon.py:614 flatcamObjects/FlatCAMGeometry.py:510 +#: flatcamObjects/FlatCAMGerber.py:251 msgid "Basic" msgstr "Базовый" -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:228 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:219 msgid "TSA" msgstr "TSA" -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:245 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:245 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:238 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:236 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:245 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:237 msgid "Duration" msgstr "Продолжительность" -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:248 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:239 msgid "" "When OR-Tools Metaheuristic (MH) is enabled there is a\n" "maximum threshold for how much time is spent doing the\n" @@ -7918,22 +9845,26 @@ msgstr "" "оптимизация пути. Максимальная продолжительность устанавливается здесь.\n" "В секундах." -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:273 -#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:96 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:155 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:258 +msgid "Excellon Object Color" +msgstr "Цвет объектов Excellon" + +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:264 +#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:86 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:155 msgid "Set the line color for plotted objects." msgstr "Установит цвет линии для построенных объектов." -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:29 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:29 msgid "Excellon Options" msgstr "Параметры Excellon" -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:33 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:35 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:33 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:34 msgid "Create CNC Job" msgstr "Создание программы для ЧПУ" -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:35 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:35 msgid "" "Parameters used to create a CNC Job object\n" "for this drill object." @@ -7941,17 +9872,17 @@ msgstr "" "Параметры, используемые для создания объекта задания ЧПУ\n" "для этого сверлите объект." -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:152 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:122 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:152 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:121 msgid "Tool change" msgstr "Смена инструмента" -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:236 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:233 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:236 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:232 msgid "Enable Dwell" msgstr "Задержка" -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:259 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:259 msgid "" "The preprocessor JSON file that dictates\n" "Gcode output." @@ -7959,11 +9890,11 @@ msgstr "" "JSON-файл постпроцессора, который влияет\n" "на Gcode." -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:270 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:270 msgid "Gcode" msgstr "GCode" -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:272 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:272 msgid "" "Choose what to use for GCode generation:\n" "'Drills', 'Slots' or 'Both'.\n" @@ -7975,23 +9906,23 @@ msgstr "" "При выборе \"Пазы\" или \"Оба\", пазы будут\n" "преобразованы в отверстия." -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:288 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:288 msgid "Mill Holes" msgstr "Фрезеровка отверстий" -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:290 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:290 msgid "Create Geometry for milling holes." msgstr "Создание объекта геометрии для фрезерования отверстий." -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:294 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:294 msgid "Drill Tool dia" msgstr "Диаметр сверла" -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:305 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:305 msgid "Slot Tool dia" msgstr "Диаметр инструмента шлица" -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:307 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:307 msgid "" "Diameter of the cutting tool\n" "when milling slots." @@ -7999,44 +9930,51 @@ msgstr "" "Диаметр режущего инструмента\n" "при фрезеровании пазов." -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:28 -#: AppGUI/preferences/general/GeneralAppSettingsGroupUI.py:74 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:28 msgid "App Settings" msgstr "Настройки приложения" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:49 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:49 msgid "Grid Settings" msgstr "Настройки сетки" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:53 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:53 msgid "X value" msgstr "Значение X" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:55 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:55 msgid "This is the Grid snap value on X axis." msgstr "Это значение привязки сетки по оси X." -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:65 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:65 msgid "Y value" msgstr "Значение Y" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:67 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:67 msgid "This is the Grid snap value on Y axis." msgstr "Это значение привязки сетки по оси Y." -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:77 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:77 msgid "Snap Max" msgstr "Максимальный захват" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:92 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:92 msgid "Workspace Settings" msgstr "Настройки рабочей области" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:95 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:95 msgid "Active" msgstr "Активный" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:105 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:97 +msgid "" +"Draw a delimiting rectangle on canvas.\n" +"The purpose is to illustrate the limits for our work." +msgstr "" +"Нарисует на холсте разделительный прямоугольник,\n" +"для отображения границы нашей работы." + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:105 msgid "" "Select the type of rectangle to be used on canvas,\n" "as valid workspace." @@ -8044,13 +9982,13 @@ msgstr "" "Выбор типа прямоугольника, который будет использоваться на холсте,\n" "как допустимое рабочее пространство." -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:171 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:171 msgid "Orientation" msgstr "Ориентация" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:172 -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:228 -#: AppTools/ToolFilm.py:405 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:172 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:239 +#: flatcamTools/ToolFilm.py:422 msgid "" "Can be:\n" "- Portrait\n" @@ -8060,82 +9998,61 @@ msgstr "" "- Портрет\n" "- Альбом" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:176 -#: AppGUI/preferences/general/GeneralAppSettingsGroupUI.py:154 -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:232 -#: AppTools/ToolFilm.py:409 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:176 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:243 +#: flatcamTools/ToolFilm.py:426 msgid "Portrait" msgstr "Портретная" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:177 -#: AppGUI/preferences/general/GeneralAppSettingsGroupUI.py:155 -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:233 -#: AppTools/ToolFilm.py:410 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:177 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:244 +#: flatcamTools/ToolFilm.py:427 msgid "Landscape" msgstr "Альбомная" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:193 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:201 msgid "Notebook" msgstr "Боковая панель" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:195 -#, fuzzy -#| msgid "" -#| "This sets the font size for the elements found in the Notebook.\n" -#| "The notebook is the collapsible area in the left side of the GUI,\n" -#| "and include the Project, Selected and Tool tabs." +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:203 msgid "" "This sets the font size for the elements found in the Notebook.\n" -"The notebook is the collapsible area in the left side of the AppGUI,\n" +"The notebook is the collapsible area in the left side of the GUI,\n" "and include the Project, Selected and Tool tabs." msgstr "" "Это устанавливает размер шрифта для элементов, найденных в блокноте.\n" "Блокнот - это складная область в левой части графического интерфейса,\n" "и включают вкладки Project, Selected и Tool." -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:214 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:222 msgid "Axis" msgstr "Оси" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:216 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:224 msgid "This sets the font size for canvas axis." msgstr "Это устанавливает размер шрифта для оси холста." -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:233 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:241 msgid "Textbox" msgstr "Поле ввода текста" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:235 -#, fuzzy -#| msgid "" -#| "This sets the font size for the Textbox GUI\n" -#| "elements that are used in FlatCAM." +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:243 msgid "" -"This sets the font size for the Textbox AppGUI\n" -"elements that are used in the application." +"This sets the font size for the Textbox GUI\n" +"elements that are used in FlatCAM." msgstr "" "Это устанавливает размер шрифта для полей ввода текста\n" "которые используются в FlatCAM." -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:253 -msgid "HUD" -msgstr "" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:255 -#, fuzzy -#| msgid "This sets the font size for canvas axis." -msgid "This sets the font size for the Heads Up Display." -msgstr "Это устанавливает размер шрифта для оси холста." - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:280 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:269 msgid "Mouse Settings" msgstr "Настройки мыши" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:284 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:273 msgid "Cursor Shape" msgstr "Форма курсора" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:286 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:275 msgid "" "Choose a mouse cursor shape.\n" "- Small -> with a customizable size.\n" @@ -8145,50 +10062,48 @@ msgstr "" "- Маленький -> с настраиваемым размером.\n" "- Большой -> бесконечные линии" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:292 -#: AppGUI/preferences/general/GeneralAppSettingsGroupUI.py:193 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:281 msgid "Small" msgstr "Небольшой" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:293 -#: AppGUI/preferences/general/GeneralAppSettingsGroupUI.py:194 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:282 msgid "Big" msgstr "Большой" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:300 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:289 msgid "Cursor Size" msgstr "Размер курсора" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:302 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:291 msgid "Set the size of the mouse cursor, in pixels." msgstr "Установка размера курсора мыши в пикселях." -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:313 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:302 msgid "Cursor Width" msgstr "Ширина курсора" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:315 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:304 msgid "Set the line width of the mouse cursor, in pixels." msgstr "Установка размера курсора мыши в пикселях." -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:326 -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:333 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:315 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:322 msgid "Cursor Color" msgstr "Цвет курсора" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:328 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:317 msgid "Check this box to color mouse cursor." msgstr "Установите этот флажок, чтобы окрасить курсор мыши." -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:335 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:324 msgid "Set the color of the mouse cursor." msgstr "Установка цвета курсора мыши." -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:350 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:347 msgid "Pan Button" msgstr "Кнопка панарамирования" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:352 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:349 msgid "" "Select the mouse button to use for panning:\n" "- MMB --> Middle Mouse Button\n" @@ -8198,39 +10113,35 @@ msgstr "" "- СКМ --> Средняя кнопка мыши\n" "- ПКМ --> Правая кнопка мыши" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:356 -#: AppGUI/preferences/general/GeneralAppSettingsGroupUI.py:226 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:353 msgid "MMB" msgstr "СКМ" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:357 -#: AppGUI/preferences/general/GeneralAppSettingsGroupUI.py:227 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:354 msgid "RMB" msgstr "ПКМ" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:363 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:360 msgid "Multiple Selection" msgstr "Мультивыбор" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:365 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:362 msgid "Select the key used for multiple selection." msgstr "Выберите клавишу, используемую для множественного выбора." -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:367 -#: AppGUI/preferences/general/GeneralAppSettingsGroupUI.py:233 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:364 msgid "CTRL" msgstr "CTRL" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:368 -#: AppGUI/preferences/general/GeneralAppSettingsGroupUI.py:234 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:365 msgid "SHIFT" msgstr "SHIFT" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:379 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:376 msgid "Delete object confirmation" msgstr "Подтверждать удаление объекта" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:381 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:378 msgid "" "When checked the application will ask for user confirmation\n" "whenever the Delete object(s) event is triggered, either by\n" @@ -8240,11 +10151,11 @@ msgstr "" "всякий раз, когда событие Удалить объект (ы) инициируется, либо\n" "ярлык меню или сочетание клавиш." -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:388 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:385 msgid "\"Open\" behavior" msgstr "Помнить пути открытия/сохранения" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:390 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:387 msgid "" "When checked the path for the last saved file is used when saving files,\n" "and the path for the last opened file is used when opening files.\n" @@ -8260,11 +10171,11 @@ msgstr "" "используемых: либо\n" "путь для сохранения файлов либо путь для открытия файлов." -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:399 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:396 msgid "Enable ToolTips" msgstr "Всплывающие подсказки" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:401 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:398 msgid "" "Check this box if you want to have toolTips displayed\n" "when hovering with mouse over items throughout the App." @@ -8273,11 +10184,11 @@ msgstr "" "подсказки \n" "при наведении курсора мыши на элементы приложения." -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:408 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:405 msgid "Allow Machinist Unsafe Settings" msgstr "Разрешить выполнить небезопасные настройки" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:410 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:407 msgid "" "If checked, some of the application settings will be allowed\n" "to have values that are usually unsafe to use.\n" @@ -8293,11 +10204,11 @@ msgstr "" "Это будет применено при следующем запуске приложения.\n" "< < Предупреждение>>: Не меняйте это, если вы не знаете, что вы делаете !!!" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:422 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:419 msgid "Bookmarks limit" msgstr "Количество закладок" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:424 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:421 msgid "" "The maximum number of bookmarks that may be installed in the menu.\n" "The number of bookmarks in the bookmark manager may be greater\n" @@ -8307,19 +10218,19 @@ msgstr "" "Количество закладок в диспетчере закладок может быть больше\n" "но меню будет содержать только это указанное количество." -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:433 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:430 msgid "Activity Icon" msgstr "Значок активности" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:435 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:432 msgid "Select the GIF that show activity when FlatCAM is active." msgstr "Выбор GIF-изображения показывающего активность FlatCAM." -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:29 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:29 msgid "App Preferences" msgstr "Параметры приложения" -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:40 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:40 msgid "" "The default value for FlatCAM units.\n" "Whatever is selected here is set every time\n" @@ -8329,15 +10240,15 @@ msgstr "" "Все, что выбрано здесь, устанавливается каждый раз\n" "FlatCAM запущен." -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:44 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:44 msgid "IN" msgstr "Дюйм" -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:50 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:50 msgid "Precision MM" msgstr "Точность ММ" -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:52 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:52 msgid "" "The number of decimals used throughout the application\n" "when the set units are in METRIC system.\n" @@ -8347,11 +10258,11 @@ msgstr "" "когда установленные единицы измерения находятся в метрической системе.\n" "Любые изменения здесь требуют перезапуска приложения." -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:64 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:64 msgid "Precision INCH" msgstr "Точность ДЮЙМЫ" -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:66 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:66 msgid "" "The number of decimals used throughout the application\n" "when the set units are in INCH system.\n" @@ -8361,11 +10272,11 @@ msgstr "" "когда установленные единицы измерения находятся в дюймовой системе.\n" "Любые изменения здесь требуют перезапуска приложения." -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:78 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:78 msgid "Graphic Engine" msgstr "Графический движок" -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:79 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:79 msgid "" "Choose what graphic engine to use in FlatCAM.\n" "Legacy(2D) -> reduced functionality, slow performance but enhanced " @@ -8384,19 +10295,19 @@ msgstr "" "Intel HD3000 или старше. Если рабочая область будет чёрной, то\n" "используйте режим Legacy (2D)." -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:85 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:85 msgid "Legacy(2D)" msgstr "Legacy(2D)" -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:86 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:86 msgid "OpenGL(3D)" msgstr "OpenGL(3D)" -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:98 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:98 msgid "APP. LEVEL" msgstr "РЕЖИМ" -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:99 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:99 msgid "" "Choose the default level of usage for FlatCAM.\n" "BASIC level -> reduced functionality, best for beginner's.\n" @@ -8413,17 +10324,17 @@ msgstr "" "Выбор здесь повлияет на параметры внутри\n" "выбранная вкладка для всех видов FlatCAM объектов." -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:105 -#: AppObjects/FlatCAMExcellon.py:707 AppObjects/FlatCAMGeometry.py:589 -#: AppObjects/FlatCAMGerber.py:227 AppTools/ToolIsolation.py:816 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:105 +#: flatcamObjects/FlatCAMExcellon.py:627 flatcamObjects/FlatCAMGeometry.py:531 +#: flatcamObjects/FlatCAMGerber.py:278 msgid "Advanced" msgstr "Расширенный" -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:111 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:111 msgid "Portable app" msgstr "Портативное приложение" -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:112 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:112 msgid "" "Choose if the application should run as portable.\n" "\n" @@ -8437,19 +10348,19 @@ msgstr "" "Это означает, что файлы настроек будут сохранены\n" "в папке приложения, в подпапке lib \\ config." -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:125 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:125 msgid "Languages" msgstr "Языки" -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:126 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:126 msgid "Set the language used throughout FlatCAM." msgstr "Установите язык, используемый в плоском кулачке." -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:132 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:132 msgid "Apply Language" msgstr "Применить" -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:133 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:133 msgid "" "Set the language used throughout FlatCAM.\n" "The app will restart after click." @@ -8457,31 +10368,31 @@ msgstr "" "Установка языка, используемого в FlatCAM.\n" "Приложение будет перезапущено после нажатия кнопки." -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:147 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:147 msgid "Startup Settings" msgstr "Настройки запуска" -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:151 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:151 msgid "Splash Screen" msgstr "Заставка" -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:153 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:153 msgid "Enable display of the splash screen at application startup." msgstr "Включает отображение заставки при запуске приложения." -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:165 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:165 msgid "Sys Tray Icon" msgstr "Иконка в системном трее" -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:167 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:167 msgid "Enable display of FlatCAM icon in Sys Tray." msgstr "Включает отображение иконки FlatCAM в системном трее." -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:172 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:172 msgid "Show Shell" msgstr "Показывать командную строку" -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:174 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:174 msgid "" "Check this box if you want the shell to\n" "start automatically at startup." @@ -8489,11 +10400,11 @@ msgstr "" "Установите этот флажок, если требуется, чтобы командная строка\n" "отображалась при запуске программы." -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:181 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:181 msgid "Show Project" msgstr "Показывать Проект" -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:183 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:183 msgid "" "Check this box if you want the project/selected/tool tab area to\n" "to be shown automatically at startup." @@ -8501,11 +10412,11 @@ msgstr "" "Установите этот флажок, если требуется, чтобы боковая панель\n" "автоматически отображалась при запуске." -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:189 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:189 msgid "Version Check" msgstr "Проверять обновления" -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:191 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:191 msgid "" "Check this box if you want to check\n" "for a new version automatically at startup." @@ -8513,11 +10424,11 @@ msgstr "" "Установите этот флажок, если вы хотите автоматически\n" "проверять обновление программы при запуске." -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:198 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:198 msgid "Send Statistics" msgstr "Отправлять статистику" -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:200 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:200 msgid "" "Check this box if you agree to send anonymous\n" "stats automatically at startup, to help improve FlatCAM." @@ -8525,11 +10436,11 @@ msgstr "" "Установите этот флажок, если вы согласны автоматически отправлять\n" "анонимную статистику при запуске программы для улучшения FlatCAM." -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:214 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:214 msgid "Workers number" msgstr "Обработчики" -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:216 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:216 msgid "" "The number of Qthreads made available to the App.\n" "A bigger number may finish the jobs more quickly but\n" @@ -8545,11 +10456,11 @@ msgstr "" "Значение по умолчанию-2.\n" "После изменения, он будет применяться при следующем запуске приложения." -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:230 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:230 msgid "Geo Tolerance" msgstr "Допуск геометрии" -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:232 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:232 msgid "" "This value can counter the effect of the Circle Steps\n" "parameter. Default value is 0.005.\n" @@ -8565,15 +10476,15 @@ msgstr "" "спектакль. Более высокое значение обеспечит больше\n" "производительность за счет уровня детализации." -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:252 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:252 msgid "Save Settings" msgstr "Сохранить настройки" -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:256 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:256 msgid "Save Compressed Project" msgstr "Сохранить сжатый проект" -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:258 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:258 msgid "" "Whether to save a compressed or uncompressed project.\n" "When checked it will save a compressed FlatCAM project." @@ -8581,11 +10492,11 @@ msgstr "" "Сохранять ли проект сжатым или несжатым.\n" "Если этот флажок установлен, он сохранит сжатый проект FlatCAM." -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:267 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:267 msgid "Compression" msgstr "Сжатие" -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:269 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:269 msgid "" "The level of compression used when saving\n" "a FlatCAM project. Higher value means better compression\n" @@ -8595,11 +10506,11 @@ msgstr "" "Более высокое значение означает более высокую степень сжатия,\n" "но требуют больше памяти и больше времени на обработку." -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:280 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:280 msgid "Enable Auto Save" msgstr "Включить автосохранение" -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:282 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:282 msgid "" "Check to enable the autosave feature.\n" "When enabled, the application will try to save a project\n" @@ -8609,11 +10520,11 @@ msgstr "" "При включении приложение будет пытаться сохранить проект\n" "с заданным интервалом." -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:292 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:292 msgid "Interval" msgstr "Интервал" -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:294 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:294 msgid "" "Time interval for autosaving. In milliseconds.\n" "The application will try to save periodically but only\n" @@ -8625,79 +10536,75 @@ msgstr "" "если проект был сохранен вручную хотя бы один раз.\n" "Во время активности некоторые операции могут блокировать эту функцию." -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:310 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:310 msgid "Text to PDF parameters" msgstr "Параметры преобразования текста в PDF" -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:312 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:312 msgid "Used when saving text in Code Editor or in FlatCAM Document objects." msgstr "" "Используется при сохранении текста в редакторе кода или в объектах FlatCAM " "Document." -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:321 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:321 msgid "Top Margin" msgstr "Верхняя граница" -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:323 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:323 msgid "Distance between text body and the top of the PDF file." msgstr "Расстояние между текстом и верхней частью PDF-файла." -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:334 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:334 msgid "Bottom Margin" msgstr "Нижняя граница" -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:336 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:336 msgid "Distance between text body and the bottom of the PDF file." msgstr "Расстояние между текстом и нижней частью PDF-файла." -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:347 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:347 msgid "Left Margin" msgstr "Левая граница" -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:349 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:349 msgid "Distance between text body and the left of the PDF file." msgstr "Расстояние между текстом и левой частью PDF-файла." -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:360 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:360 msgid "Right Margin" msgstr "Правая граница" -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:362 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:362 msgid "Distance between text body and the right of the PDF file." msgstr "Расстояние между текстом и правой частью PDF-файла." -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:26 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:26 msgid "GUI Preferences" msgstr "Параметры интерфейса" -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:36 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:36 msgid "Theme" msgstr "Тема" -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:38 -#, fuzzy -#| msgid "" -#| "Select a theme for FlatCAM.\n" -#| "It will theme the plot area." +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:38 msgid "" -"Select a theme for the application.\n" +"Select a theme for FlatCAM.\n" "It will theme the plot area." msgstr "Выбор темы для FlatCAM." -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:43 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:43 msgid "Light" msgstr "Светлая" -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:44 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:44 msgid "Dark" msgstr "Тёмная" -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:51 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:51 msgid "Use Gray Icons" msgstr "Использовать серые иконки" -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:53 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:53 msgid "" "Check this box to use a set of icons with\n" "a lighter (gray) color. To be used when a\n" @@ -8707,66 +10614,62 @@ msgstr "" "более светлого (серого) цвета. Используется при применении\n" "полной тёмной темы." -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:73 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:59 +msgid "Apply Theme" +msgstr "Применить тему" + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:61 +msgid "" +"Select a theme for FlatCAM.\n" +"It will theme the plot area.\n" +"The application will restart after change." +msgstr "" +"Выбор темы FlatCAM.\n" +"Она будет применена при следующем запуске приложения." + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:73 msgid "Layout" msgstr "Макет" -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:75 -#, fuzzy -#| msgid "" -#| "Select an layout for FlatCAM.\n" -#| "It is applied immediately." +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:75 msgid "" -"Select a layout for the application.\n" +"Select an layout for FlatCAM.\n" "It is applied immediately." msgstr "" "Выберите макет для FlatCAM.\n" "Применяется немедленно." -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:95 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:95 msgid "Style" msgstr "Стиль" -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:97 -#, fuzzy -#| msgid "" -#| "Select an style for FlatCAM.\n" -#| "It will be applied at the next app start." +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:97 msgid "" -"Select a style for the application.\n" +"Select an style for FlatCAM.\n" "It will be applied at the next app start." msgstr "" "Выберите стиль для FlatCAM.\n" "Он будет применен при следующем запуске приложения." -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:111 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:111 msgid "Activate HDPI Support" msgstr "Поддержка HDPI" -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:113 -#, fuzzy -#| msgid "" -#| "Enable High DPI support for FlatCAM.\n" -#| "It will be applied at the next app start." +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:113 msgid "" -"Enable High DPI support for the application.\n" +"Enable High DPI support for FlatCAM.\n" "It will be applied at the next app start." msgstr "" "Включает поддержку высокого разрешения для FlatCAM.\n" "Требуется перезапуск приложения." -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:127 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:127 msgid "Display Hover Shape" msgstr "Показать форму наведения" -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:129 -#, fuzzy -#| msgid "" -#| "Enable display of a hover shape for FlatCAM objects.\n" -#| "It is displayed whenever the mouse cursor is hovering\n" -#| "over any kind of not-selected object." +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:129 msgid "" -"Enable display of a hover shape for the application objects.\n" +"Enable display of a hover shape for FlatCAM objects.\n" "It is displayed whenever the mouse cursor is hovering\n" "over any kind of not-selected object." msgstr "" @@ -8774,19 +10677,13 @@ msgstr "" "Он отображается при наведении курсора мыши\n" "над любым невыбранным объектом." -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:136 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:136 msgid "Display Selection Shape" msgstr "Показывать форму выбора" -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:138 -#, fuzzy -#| msgid "" -#| "Enable the display of a selection shape for FlatCAM objects.\n" -#| "It is displayed whenever the mouse selects an object\n" -#| "either by clicking or dragging mouse from left to right or\n" -#| "right to left." +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:138 msgid "" -"Enable the display of a selection shape for the application objects.\n" +"Enable the display of a selection shape for FlatCAM objects.\n" "It is displayed whenever the mouse selects an object\n" "either by clicking or dragging mouse from left to right or\n" "right to left." @@ -8796,15 +10693,15 @@ msgstr "" "щелчком или перетаскиванием мыши слева направо или\n" "справа налево." -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:151 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:151 msgid "Left-Right Selection Color" msgstr "Цвет выделения слева направо" -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:156 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:156 msgid "Set the line color for the 'left to right' selection box." msgstr "Установит цвет линии для поля выбора \"слева направо\"." -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:165 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:172 msgid "" "Set the fill color for the selection box\n" "in case that the selection is done from left to right.\n" @@ -8816,19 +10713,19 @@ msgstr "" "Первые 6 цифр-это цвет, а последние 2\n" "цифры для альфа-уровня (прозрачности)." -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:178 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:192 msgid "Set the fill transparency for the 'left to right' selection box." msgstr "Установит прозрачность заливки для поля выбора \"слева направо\"." -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:191 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:216 msgid "Right-Left Selection Color" msgstr "Цвет выделения справа налево" -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:197 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:222 msgid "Set the line color for the 'right to left' selection box." msgstr "Установите цвет линии для поля выбора \"справа налево\"." -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:207 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:239 msgid "" "Set the fill color for the selection box\n" "in case that the selection is done from right to left.\n" @@ -8840,52 +10737,43 @@ msgstr "" "Первые 6 цифр-это цвет, а последние 2\n" "цифры для альфа-уровня (прозрачности)." -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:220 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:259 msgid "Set the fill transparency for selection 'right to left' box." msgstr "Установит прозрачность заливки для выбора \"справа налево\"." -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:236 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:286 msgid "Editor Color" msgstr "Цвет редактора" -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:240 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:290 msgid "Drawing" msgstr "Графика" -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:242 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:292 msgid "Set the color for the shape." msgstr "Установит цвет для фигуры." -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:250 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:275 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:311 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:258 -#: AppTools/ToolIsolation.py:494 AppTools/ToolNCC.py:539 -#: AppTools/ToolPaint.py:455 -msgid "Selection" -msgstr "Выбор" - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:252 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:309 msgid "Set the color of the shape when selected." msgstr "Установит цвет фигуры при выборе." -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:268 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:332 msgid "Project Items Color" msgstr "Цвет элементов проекта" -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:272 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:336 msgid "Enabled" msgstr "Включено" -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:274 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:338 msgid "Set the color of the items in Project Tab Tree." msgstr "Установит цвет элементов в дереве вкладок проекта." -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:281 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:352 msgid "Disabled" msgstr "Отключено" -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:283 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:354 msgid "" "Set the color of the items in Project Tab Tree,\n" "for the case when the items are disabled." @@ -8893,11 +10781,11 @@ msgstr "" "Установка цвета элементов в дереве вкладок проекта,\n" "для случая, когда элементы отключены." -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:292 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:370 msgid "Project AutoHide" msgstr "Автоскрытие боковой панели" -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:294 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:372 msgid "" "Check this box if you want the project/selected/tool tab area to\n" "hide automatically when there are no objects loaded and\n" @@ -8907,11 +10795,11 @@ msgstr "" "автоматически скрывалась, когда нет загруженных объектов\n" "и показывать при создании нового объекта." -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:28 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:27 msgid "Geometry Adv. Options" msgstr "Geometry дополнительные" -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:36 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:35 msgid "" "A list of Geometry advanced parameters.\n" "Those parameters are available only for\n" @@ -8921,14 +10809,14 @@ msgstr "" "Эти параметры доступны только для\n" "расширенного режима приложения." -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:46 -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:112 -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:134 -#: AppTools/ToolCalibration.py:125 AppTools/ToolSolderPaste.py:236 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:45 +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:112 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:134 +#: flatcamTools/ToolCalibration.py:125 flatcamTools/ToolSolderPaste.py:240 msgid "Toolchange X-Y" msgstr "Смена инструмента X,Y" -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:58 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:56 msgid "" "Height of the tool just after starting the work.\n" "Delete the value if you don't need this feature." @@ -8936,11 +10824,11 @@ msgstr "" "Высота инструмента сразу после начала работы.\n" "Удалить значение если вам не нужна эта функция." -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:161 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:158 msgid "Segment X size" msgstr "Размер сегмента по X" -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:163 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:160 msgid "" "The size of the trace segment on the X axis.\n" "Useful for auto-leveling.\n" @@ -8950,11 +10838,11 @@ msgstr "" "Полезно для автоматического выравнивания.\n" "Значение 0 означает отсутствие сегментации по оси X." -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:177 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:174 msgid "Segment Y size" msgstr "Размер сегмента по Y" -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:179 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:176 msgid "" "The size of the trace segment on the Y axis.\n" "Useful for auto-leveling.\n" @@ -8964,11 +10852,11 @@ msgstr "" "Полезно для автоматического выравнивания.\n" "Значение 0 означает отсутствие сегментации по оси Y." -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:200 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:192 msgid "Area Exclusion" msgstr "Область исключения" -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:202 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:194 msgid "" "Area exclusion parameters.\n" "Those parameters are available only for\n" @@ -8978,25 +10866,12 @@ msgstr "" "Эти параметры доступны только для\n" "Расширенного режима приложения." -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:209 -msgid "Exclusion areas" -msgstr "Зоны исключения" - -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:220 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:293 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:322 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:286 -#: AppTools/ToolIsolation.py:540 AppTools/ToolNCC.py:578 -#: AppTools/ToolPaint.py:521 -msgid "Shape" -msgstr "Форма" - -#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:33 +#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:33 msgid "A list of Geometry Editor parameters." msgstr "Список параметров редактора Geometry." -#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:43 -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:174 +#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:43 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:196 msgid "" "Set the number of selected geometry\n" "items above which the utility geometry\n" @@ -9010,22 +10885,11 @@ msgstr "" "Увеличивает производительность при перемещении\n" "большое количество геометрических элементов." -#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:58 -msgid "" -"Milling type:\n" -"- climb / best for precision milling and to reduce tool usage\n" -"- conventional / useful when there is no backlash compensation" -msgstr "" -"Тип фрезерования:\n" -"- climb / лучше всего подходит для точного фрезерования и уменьшения " -"использования инструмента\n" -"- conventional / полезен, когда нет компенсации люфта" - -#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:27 +#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:27 msgid "Geometry General" msgstr "Geometry основные" -#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:59 +#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:49 msgid "" "The number of circle steps for Geometry \n" "circle and arc shapes linear approximation." @@ -9033,20 +10897,18 @@ msgstr "" "Количество шагов круга для геометрии\n" "линейная аппроксимация окружности и дуги." -#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:73 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:41 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:41 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:48 -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:42 +#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:63 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:41 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:48 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:42 msgid "Tools Dia" msgstr "Диаметр инструмента" -#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:75 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:108 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:43 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:43 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:50 -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:44 +#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:65 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:108 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:43 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:50 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:44 msgid "" "Diameters of the tools, separated by comma.\n" "The value of the diameter has to use the dot decimals separator.\n" @@ -9057,11 +10919,15 @@ msgstr "" "знаков.\n" "Допустимые значения: 0.3, 1.0" -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:29 +#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:80 +msgid "Geometry Object Color" +msgstr "Цвет объектов Geometry" + +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:28 msgid "Geometry Options" msgstr "Параметры Geometry" -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:37 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:36 msgid "" "Create a CNC Job object\n" "tracing the contours of this\n" @@ -9071,11 +10937,11 @@ msgstr "" "контуров данного объекта геометрии\n" "для программы ЧПУ." -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:81 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:80 msgid "Depth/Pass" msgstr "Шаг за проход" -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:83 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:82 msgid "" "The depth to cut on each pass,\n" "when multidepth is enabled.\n" @@ -9089,11 +10955,11 @@ msgstr "" "это доля от глубины\n" "который имеет отрицательное значение." -#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:27 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:27 msgid "Gerber Adv. Options" msgstr "Gerber дополнительные" -#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:33 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:33 msgid "" "A list of Gerber advanced parameters.\n" "Those parameters are available only for\n" @@ -9103,15 +10969,11 @@ msgstr "" "Эти параметры доступны только для\n" "расширенного режима приложения." -#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:43 -msgid "\"Follow\"" -msgstr "\"Следовать\"" - -#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:52 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:52 msgid "Table Show/Hide" msgstr "Таблица отверстий вкл/откл" -#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:54 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:54 msgid "" "Toggle the display of the Gerber Apertures Table.\n" "Also, on hide, it will delete all mark shapes\n" @@ -9121,17 +10983,15 @@ msgstr "" "Кроме того, при скрытии он удалит все отмеченные фигуры\n" "отображённые на холсте." -#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:67 -#: AppObjects/FlatCAMGerber.py:391 AppTools/ToolCopperThieving.py:1026 -#: AppTools/ToolCopperThieving.py:1215 AppTools/ToolCopperThieving.py:1227 -#: AppTools/ToolIsolation.py:1593 AppTools/ToolNCC.py:2079 -#: AppTools/ToolNCC.py:2190 AppTools/ToolNCC.py:2205 AppTools/ToolNCC.py:3163 -#: AppTools/ToolNCC.py:3268 AppTools/ToolNCC.py:3283 AppTools/ToolNCC.py:3549 -#: AppTools/ToolNCC.py:3650 AppTools/ToolNCC.py:3665 camlib.py:992 -msgid "Buffering" -msgstr "Буферизация" +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:134 +msgid "Exterior" +msgstr "Внешняя" -#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:69 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:135 +msgid "Interior" +msgstr "Внутренняя" + +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:148 msgid "" "Buffering type:\n" "- None --> best performance, fast file loading but no so good display\n" @@ -9145,20 +11005,20 @@ msgstr "" "умолчанию.\n" "<< ПРЕДУПРЕЖДЕНИЕ >>: не меняйте это, если не знаете, что делаете !!!" -#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:74 -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:88 -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:196 -#: AppTools/ToolFiducials.py:204 AppTools/ToolFilm.py:238 -#: AppTools/ToolProperties.py:452 AppTools/ToolProperties.py:455 -#: AppTools/ToolProperties.py:458 AppTools/ToolProperties.py:483 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:153 +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:88 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:207 +#: flatcamTools/ToolFiducials.py:201 flatcamTools/ToolFilm.py:255 +#: flatcamTools/ToolProperties.py:452 flatcamTools/ToolProperties.py:455 +#: flatcamTools/ToolProperties.py:458 flatcamTools/ToolProperties.py:483 msgid "None" msgstr "Нет" -#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:80 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:159 msgid "Simplify" msgstr "Упрощение" -#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:82 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:161 msgid "" "When checked all the Gerber polygons will be\n" "loaded with simplification having a set tolerance.\n" @@ -9168,19 +11028,19 @@ msgstr "" "загружается с упрощением, имеющим заданный допуск.\n" "<< ВНИМАНИЕ >>: не изменяйте это, если вы не знаете, что делаете !!!" -#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:89 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:168 msgid "Tolerance" msgstr "Допуск" -#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:90 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:169 msgid "Tolerance for polygon simplification." msgstr "Допуск для упрощения полигонов." -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:33 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:33 msgid "A list of Gerber Editor parameters." msgstr "Список параметров редактора Gerber." -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:43 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:43 msgid "" "Set the number of selected Gerber geometry\n" "items above which the utility geometry\n" @@ -9194,23 +11054,23 @@ msgstr "" "Увеличивает производительность при перемещении\n" "большое количество геометрических элементов." -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:56 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:56 msgid "New Aperture code" msgstr "Код нового отверстия" -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:69 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:69 msgid "New Aperture size" msgstr "Размер нового отверстия" -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:71 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:71 msgid "Size for the new aperture" msgstr "Размер нового отверстия" -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:82 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:82 msgid "New Aperture type" msgstr "Тип нового отверстия" -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:84 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:84 msgid "" "Type for the new aperture.\n" "Can be 'C', 'R' or 'O'." @@ -9218,51 +11078,51 @@ msgstr "" "Тип нового отверстия.\n" "Может быть «C», «R» или «O»." -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:106 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:106 msgid "Aperture Dimensions" msgstr "Размеры отверстия" -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:117 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:116 msgid "Linear Pad Array" msgstr "Линейный массив площадок" -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:161 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:160 msgid "Circular Pad Array" msgstr "Круговая матрица" -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:197 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:196 msgid "Distance at which to buffer the Gerber element." msgstr "Расстояние, на котором буферизуется элемент Gerber." -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:206 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:205 msgid "Scale Tool" msgstr "Масштаб" -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:212 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:211 msgid "Factor to scale the Gerber element." msgstr "Коэффициент масштабирования для элемента Gerber." -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:225 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:224 msgid "Threshold low" msgstr "Низкий порог" -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:227 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:226 msgid "Threshold value under which the apertures are not marked." msgstr "Пороговое значение, ниже которого отверстия не отмечены." -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:237 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:236 msgid "Threshold high" msgstr "Высокий порог" -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:239 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:238 msgid "Threshold value over which the apertures are not marked." msgstr "Пороговое значение, выше которого отверстия не отмечены." -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:27 +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:27 msgid "Gerber Export" msgstr "Экспорт Gerber" -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:33 +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:33 msgid "" "The parameters set here are used in the file exported\n" "when using the File -> Export -> Export Gerber menu entry." @@ -9270,14 +11130,14 @@ msgstr "" "Заданные здесь параметры используются в экспортированном файле\n" "при использовании пункта меню File -> Export -> Export Gerber." -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:44 -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:50 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:84 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:90 +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:44 +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:50 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:84 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:90 msgid "The units used in the Gerber file." msgstr "Единицы измерения, используемые в файле Gerber." -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:58 +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:58 msgid "" "The number of digits in the whole part of the number\n" "and in the fractional part of the number." @@ -9285,7 +11145,7 @@ msgstr "" "Количество цифр в целой части числа\n" "и в дробной части числа." -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:71 +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:71 msgid "" "This numbers signify the number of digits in\n" "the whole part of Gerber coordinates." @@ -9293,7 +11153,7 @@ msgstr "" "Эти числа обозначают количество цифр в\n" "вся часть координат Gerber." -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:87 +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:87 msgid "" "This numbers signify the number of digits in\n" "the decimal part of Gerber coordinates." @@ -9301,10 +11161,10 @@ msgstr "" "Эти числа обозначают количество цифр в\n" "десятичная часть координат Gerber." -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:99 -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:109 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:100 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:110 +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:99 +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:109 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:100 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:110 msgid "" "This sets the type of Gerber zeros.\n" "If LZ then Leading Zeros are removed and\n" @@ -9318,11 +11178,15 @@ msgstr "" "Если TZ отмечен, то завершающие нули удаляются\n" "и ведущие нули сохраняются." -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:27 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:27 msgid "Gerber General" msgstr "Gerber основные" -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:61 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:45 +msgid "M-Color" +msgstr "Разноцветные" + +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:61 msgid "" "The number of circle steps for Gerber \n" "circular aperture linear approximation." @@ -9330,11 +11194,11 @@ msgstr "" "Количество шагов круга для Gerber \n" "линейное приближение круговых отверстий." -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:73 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:73 msgid "Default Values" msgstr "Значения по умолчанию" -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:75 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:75 msgid "" "Those values will be used as fallback values\n" "in case that they are not found in the Gerber file." @@ -9342,11 +11206,11 @@ msgstr "" "Эти значения будут использоваться в качестве резервных значений\n" "в случае, если они не найдены в файле Gerber." -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:126 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:126 msgid "Clean Apertures" msgstr "Очистить отверстия" -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:128 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:128 msgid "" "Will remove apertures that do not have geometry\n" "thus lowering the number of apertures in the Gerber object." @@ -9354,11 +11218,11 @@ msgstr "" "Будут удалены отверстия, которые не имеют геометрии\n" "тем самым уменьшая количество отверстий в объекте Гербера." -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:134 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:134 msgid "Polarity change buffer" msgstr "Изменение полярности буфера" -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:136 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:136 msgid "" "Will apply extra buffering for the\n" "solid geometry when we have polarity changes.\n" @@ -9370,15 +11234,23 @@ msgstr "" "Может помочь при загрузке файлов Gerber, которые в противном случае\n" "не загружается правильно." -#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:29 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:149 +msgid "Gerber Object Color" +msgstr "Цвет объекта Gerber" + +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:29 msgid "Gerber Options" msgstr "Параметры Gerber" -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:27 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:107 +msgid "Combine Passes" +msgstr "Объединять проходы" + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:27 msgid "Copper Thieving Tool Options" msgstr "Параметры Copper Thieving" -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:39 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:39 msgid "" "A tool to generate a Copper Thieving that can be added\n" "to a selected Gerber file." @@ -9386,17 +11258,17 @@ msgstr "" "Инструмент для создания Copper Thieving, который может быть добавлен\n" "в выбранный Gerber файл." -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:47 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:47 msgid "Number of steps (lines) used to interpolate circles." msgstr "Количество шагов (линий), используемых для интерполяции окружностей." -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:57 -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:261 -#: AppTools/ToolCopperThieving.py:100 AppTools/ToolCopperThieving.py:435 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:57 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:261 +#: flatcamTools/ToolCopperThieving.py:96 flatcamTools/ToolCopperThieving.py:431 msgid "Clearance" msgstr "Зазор" -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:59 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:59 msgid "" "This set the distance between the copper Thieving components\n" "(the polygon fill may be split in multiple polygons)\n" @@ -9406,47 +11278,36 @@ msgstr "" "(заливка полигона может быть разделена на несколько полигонов)\n" "и медными трассами в Gerber файле." -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:86 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309 -#: AppTools/ToolCopperThieving.py:129 AppTools/ToolNCC.py:535 -#: AppTools/ToolNCC.py:1324 AppTools/ToolNCC.py:1655 AppTools/ToolNCC.py:1948 -#: AppTools/ToolNCC.py:2012 AppTools/ToolNCC.py:3027 AppTools/ToolNCC.py:3036 -#: defaults.py:419 tclCommands/TclCommandCopperClear.py:190 -msgid "Itself" -msgstr "Как есть" - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:87 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:285 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280 -#: AppTools/ToolCopperThieving.py:130 AppTools/ToolIsolation.py:504 -#: AppTools/ToolIsolation.py:1297 AppTools/ToolIsolation.py:1671 -#: AppTools/ToolNCC.py:535 AppTools/ToolNCC.py:1334 AppTools/ToolNCC.py:1668 -#: AppTools/ToolNCC.py:1964 AppTools/ToolNCC.py:2019 AppTools/ToolPaint.py:485 -#: AppTools/ToolPaint.py:945 AppTools/ToolPaint.py:1471 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:87 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280 +#: flatcamTools/ToolCopperThieving.py:126 flatcamTools/ToolNCC.py:535 +#: flatcamTools/ToolNCC.py:1316 flatcamTools/ToolNCC.py:1647 +#: flatcamTools/ToolNCC.py:1935 flatcamTools/ToolNCC.py:1990 +#: flatcamTools/ToolPaint.py:486 flatcamTools/ToolPaint.py:946 +#: flatcamTools/ToolPaint.py:1452 msgid "Area Selection" msgstr "Выбор области" -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:88 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:285 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280 -#: AppTools/ToolCopperThieving.py:131 AppTools/ToolDblSided.py:216 -#: AppTools/ToolIsolation.py:504 AppTools/ToolIsolation.py:1711 -#: AppTools/ToolNCC.py:535 AppTools/ToolNCC.py:1684 AppTools/ToolNCC.py:1970 -#: AppTools/ToolNCC.py:2027 AppTools/ToolNCC.py:2408 AppTools/ToolNCC.py:2656 -#: AppTools/ToolNCC.py:3072 AppTools/ToolPaint.py:485 AppTools/ToolPaint.py:930 -#: AppTools/ToolPaint.py:1487 tclCommands/TclCommandCopperClear.py:192 -#: tclCommands/TclCommandPaint.py:166 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:88 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280 +#: flatcamTools/ToolCopperThieving.py:127 flatcamTools/ToolDblSided.py:216 +#: flatcamTools/ToolNCC.py:535 flatcamTools/ToolNCC.py:1663 +#: flatcamTools/ToolNCC.py:1941 flatcamTools/ToolNCC.py:1998 +#: flatcamTools/ToolNCC.py:2306 flatcamTools/ToolNCC.py:2586 +#: flatcamTools/ToolNCC.py:3012 flatcamTools/ToolPaint.py:486 +#: flatcamTools/ToolPaint.py:931 flatcamTools/ToolPaint.py:1468 +#: tclCommands/TclCommandCopperClear.py:192 tclCommands/TclCommandPaint.py:166 msgid "Reference Object" msgstr "Ссылочный объект" -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:90 -#: AppTools/ToolCopperThieving.py:133 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:90 +#: flatcamTools/ToolCopperThieving.py:129 msgid "Reference:" msgstr "Ссылка:" -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:92 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:92 msgid "" "- 'Itself' - the copper Thieving extent is based on the object extent.\n" "- 'Area Selection' - left mouse click to start selection of the area to be " @@ -9461,29 +11322,29 @@ msgstr "" "- 'Референсный объект' - будет выполнять Copper Thieving в области указанной " "другим объектом." -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:101 -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:76 -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:188 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:76 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:190 -#: AppTools/ToolCopperThieving.py:175 AppTools/ToolExtractDrills.py:102 -#: AppTools/ToolExtractDrills.py:240 AppTools/ToolPunchGerber.py:113 -#: AppTools/ToolPunchGerber.py:268 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:101 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:76 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:188 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:76 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:190 +#: flatcamTools/ToolCopperThieving.py:171 flatcamTools/ToolExtractDrills.py:102 +#: flatcamTools/ToolExtractDrills.py:240 flatcamTools/ToolPunchGerber.py:113 +#: flatcamTools/ToolPunchGerber.py:268 msgid "Rectangular" msgstr "Прямоугольник" -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:102 -#: AppTools/ToolCopperThieving.py:176 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:102 +#: flatcamTools/ToolCopperThieving.py:172 msgid "Minimal" msgstr "Минимальная" -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:104 -#: AppTools/ToolCopperThieving.py:178 AppTools/ToolFilm.py:94 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:104 +#: flatcamTools/ToolCopperThieving.py:174 flatcamTools/ToolFilm.py:113 msgid "Box Type:" msgstr "Тип рамки:" -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:106 -#: AppTools/ToolCopperThieving.py:180 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:106 +#: flatcamTools/ToolCopperThieving.py:176 msgid "" "- 'Rectangular' - the bounding box will be of rectangular shape.\n" "- 'Minimal' - the bounding box will be the convex hull shape." @@ -9491,28 +11352,28 @@ msgstr "" "- 'Прямоугольная' - ограничительная рамка будет иметь прямоугольную форму.\n" "- 'Минимальная' - ограничительная рамка будет повторять форму корпуса." -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:120 -#: AppTools/ToolCopperThieving.py:196 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:120 +#: flatcamTools/ToolCopperThieving.py:192 msgid "Dots Grid" msgstr "Сетка точек" -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:121 -#: AppTools/ToolCopperThieving.py:197 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:121 +#: flatcamTools/ToolCopperThieving.py:193 msgid "Squares Grid" msgstr "Сетка квадратов" -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:122 -#: AppTools/ToolCopperThieving.py:198 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:122 +#: flatcamTools/ToolCopperThieving.py:194 msgid "Lines Grid" msgstr "Сетка линий" -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:124 -#: AppTools/ToolCopperThieving.py:200 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:124 +#: flatcamTools/ToolCopperThieving.py:196 msgid "Fill Type:" msgstr "Тип заполнения:" -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:126 -#: AppTools/ToolCopperThieving.py:202 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:126 +#: flatcamTools/ToolCopperThieving.py:198 msgid "" "- 'Solid' - copper thieving will be a solid polygon.\n" "- 'Dots Grid' - the empty area will be filled with a pattern of dots.\n" @@ -9524,66 +11385,67 @@ msgstr "" "- 'Сетка квадратов' - пустая площадь будет заполнена сеткой квадратов.\n" "- 'Сетка линий' - пустая область будет заполнена сеткой линий." -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:134 -#: AppTools/ToolCopperThieving.py:221 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:134 +#: flatcamTools/ToolCopperThieving.py:217 msgid "Dots Grid Parameters" msgstr "Параметры точки сетки" -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:140 -#: AppTools/ToolCopperThieving.py:227 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:140 +#: flatcamTools/ToolCopperThieving.py:223 msgid "Dot diameter in Dots Grid." msgstr "Диаметр точки в сетке точек." -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:151 -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:180 -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:209 -#: AppTools/ToolCopperThieving.py:238 AppTools/ToolCopperThieving.py:278 -#: AppTools/ToolCopperThieving.py:318 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:151 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:180 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:209 +#: flatcamTools/ToolCopperThieving.py:234 +#: flatcamTools/ToolCopperThieving.py:274 +#: flatcamTools/ToolCopperThieving.py:314 msgid "Spacing" msgstr "Промежуток" -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:153 -#: AppTools/ToolCopperThieving.py:240 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:153 +#: flatcamTools/ToolCopperThieving.py:236 msgid "Distance between each two dots in Dots Grid." msgstr "Расстояние между каждыми двумя точками в сетке точек." -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:163 -#: AppTools/ToolCopperThieving.py:261 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:163 +#: flatcamTools/ToolCopperThieving.py:257 msgid "Squares Grid Parameters" msgstr "Параметры квадратной сетки" -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:169 -#: AppTools/ToolCopperThieving.py:267 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:169 +#: flatcamTools/ToolCopperThieving.py:263 msgid "Square side size in Squares Grid." msgstr "Размер стороны квадрата в сетке квадратов." -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:182 -#: AppTools/ToolCopperThieving.py:280 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:182 +#: flatcamTools/ToolCopperThieving.py:276 msgid "Distance between each two squares in Squares Grid." msgstr "Расстояние между каждыми двумя квадратами в сетке квадратов ." -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:192 -#: AppTools/ToolCopperThieving.py:301 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:192 +#: flatcamTools/ToolCopperThieving.py:297 msgid "Lines Grid Parameters" msgstr "Параметры линий сетки" -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:198 -#: AppTools/ToolCopperThieving.py:307 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:198 +#: flatcamTools/ToolCopperThieving.py:303 msgid "Line thickness size in Lines Grid." msgstr "Размеры линий по толщине в сетке линий." -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:211 -#: AppTools/ToolCopperThieving.py:320 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:211 +#: flatcamTools/ToolCopperThieving.py:316 msgid "Distance between each two lines in Lines Grid." msgstr "Расстояние между двумя линиями в сетке линий." -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:221 -#: AppTools/ToolCopperThieving.py:358 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:221 +#: flatcamTools/ToolCopperThieving.py:354 msgid "Robber Bar Parameters" msgstr "Параметры Robber Bar" -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:223 -#: AppTools/ToolCopperThieving.py:360 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:223 +#: flatcamTools/ToolCopperThieving.py:356 msgid "" "Parameters used for the robber bar.\n" "Robber bar = copper border to help in pattern hole plating." @@ -9591,35 +11453,33 @@ msgstr "" "Параметры, используемые для robber bar.\n" "Robber ba = медная рамка для облегчения нанесения покрытия на отверстия." -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:231 -#: AppTools/ToolCopperThieving.py:368 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:231 +#: flatcamTools/ToolCopperThieving.py:364 msgid "Bounding box margin for robber bar." msgstr "Граница рамки." -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:242 -#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:42 -#: AppTools/ToolCopperThieving.py:379 AppTools/ToolCorners.py:122 -#: AppTools/ToolEtchCompensation.py:152 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:242 +#: flatcamTools/ToolCopperThieving.py:375 msgid "Thickness" msgstr "Толщина" -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:244 -#: AppTools/ToolCopperThieving.py:381 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:244 +#: flatcamTools/ToolCopperThieving.py:377 msgid "The robber bar thickness." msgstr "Толщина robber bar." -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:254 -#: AppTools/ToolCopperThieving.py:412 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:254 +#: flatcamTools/ToolCopperThieving.py:408 msgid "Pattern Plating Mask" msgstr "Рисунок гальванической маски" -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:256 -#: AppTools/ToolCopperThieving.py:414 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:256 +#: flatcamTools/ToolCopperThieving.py:410 msgid "Generate a mask for pattern plating." msgstr "Создание рисунка гальванической маски." -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:263 -#: AppTools/ToolCopperThieving.py:437 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:263 +#: flatcamTools/ToolCopperThieving.py:433 msgid "" "The distance between the possible copper thieving elements\n" "and/or robber bar and the actual openings in the mask." @@ -9627,27 +11487,25 @@ msgstr "" "Расстояние между возможными элементами copper thieving\n" "и/или robber bar и фактическими отверстиями в маске." -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:27 +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:27 msgid "Calibration Tool Options" msgstr "Параметры калибровки" -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:38 -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:38 -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:38 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:38 -#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:37 -#: AppTools/ToolCopperThieving.py:95 AppTools/ToolCorners.py:117 -#: AppTools/ToolFiducials.py:154 +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:38 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:38 +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:38 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:38 +#: flatcamTools/ToolCopperThieving.py:91 flatcamTools/ToolFiducials.py:151 msgid "Parameters used for this tool." msgstr "Параметры, используемые для этого инструмента." -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:43 -#: AppTools/ToolCalibration.py:181 +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:43 +#: flatcamTools/ToolCalibration.py:181 msgid "Source Type" msgstr "Тип источника" -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:44 -#: AppTools/ToolCalibration.py:182 +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:44 +#: flatcamTools/ToolCalibration.py:182 msgid "" "The source of calibration points.\n" "It can be:\n" @@ -9660,33 +11518,33 @@ msgstr "" "Gerber\n" "- Свободно - > щелкните мышью по холсту для получения точек калибровки" -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:49 -#: AppTools/ToolCalibration.py:187 +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:49 +#: flatcamTools/ToolCalibration.py:187 msgid "Free" msgstr "Свободно" -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:63 -#: AppTools/ToolCalibration.py:76 +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:63 +#: flatcamTools/ToolCalibration.py:76 msgid "Height (Z) for travelling between the points." msgstr "Высота (Z) для перемещения между точками." -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:75 -#: AppTools/ToolCalibration.py:88 +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:75 +#: flatcamTools/ToolCalibration.py:88 msgid "Verification Z" msgstr "Проверка Z" -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:77 -#: AppTools/ToolCalibration.py:90 +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:77 +#: flatcamTools/ToolCalibration.py:90 msgid "Height (Z) for checking the point." msgstr "Высота (Z) для проверки точки." -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:89 -#: AppTools/ToolCalibration.py:102 +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:89 +#: flatcamTools/ToolCalibration.py:102 msgid "Zero Z tool" msgstr "Обнуление Z" -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:91 -#: AppTools/ToolCalibration.py:104 +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:91 +#: flatcamTools/ToolCalibration.py:104 msgid "" "Include a sequence to zero the height (Z)\n" "of the verification tool." @@ -9694,13 +11552,13 @@ msgstr "" "Включает последовательное обнуление высоты (Z)\n" "при проверке." -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:100 -#: AppTools/ToolCalibration.py:113 +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:100 +#: flatcamTools/ToolCalibration.py:113 msgid "Height (Z) for mounting the verification probe." msgstr "Высота (Z) для установки проверочной пробы." -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:114 -#: AppTools/ToolCalibration.py:127 +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:114 +#: flatcamTools/ToolCalibration.py:127 msgid "" "Toolchange X,Y position.\n" "If no value is entered then the current\n" @@ -9710,13 +11568,13 @@ msgstr "" "Если значение не введено, то текущий\n" "(х, у) точка будет использоваться," -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:125 -#: AppTools/ToolCalibration.py:153 +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:125 +#: flatcamTools/ToolCalibration.py:153 msgid "Second point" msgstr "Вторая точка" -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:127 -#: AppTools/ToolCalibration.py:155 +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:127 +#: flatcamTools/ToolCalibration.py:155 msgid "" "Second point in the Gcode verification can be:\n" "- top-left -> the user will align the PCB vertically\n" @@ -9726,29 +11584,19 @@ msgstr "" "- вверху слева -> пользователь выровняет печатную плату по вертикали\n" "- внизу справа -> пользователь выровняет печатную плату по горизонтали" -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:131 -#: AppTools/ToolCalibration.py:159 App_Main.py:4712 -msgid "Top-Left" -msgstr "Слева вверху" - -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:132 -#: AppTools/ToolCalibration.py:160 App_Main.py:4713 -msgid "Bottom-Right" -msgstr "Справа внизу" - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:27 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:27 msgid "Extract Drills Options" msgstr "Параметры извлечения отверстий" -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:42 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:42 -#: AppTools/ToolExtractDrills.py:68 AppTools/ToolPunchGerber.py:75 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:42 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:42 +#: flatcamTools/ToolExtractDrills.py:68 flatcamTools/ToolPunchGerber.py:75 msgid "Processed Pads Type" msgstr "Тип обработки площадок" -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:44 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:44 -#: AppTools/ToolExtractDrills.py:70 AppTools/ToolPunchGerber.py:77 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:44 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:44 +#: flatcamTools/ToolExtractDrills.py:70 flatcamTools/ToolPunchGerber.py:77 msgid "" "The type of pads shape to be processed.\n" "If the PCB has many SMD pads with rectangular pads,\n" @@ -9758,81 +11606,81 @@ msgstr "" "Если на печатной плате имеется много SMD площадок прямоугольной формы,\n" "отключите прямоугольное отверстие." -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:54 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:54 -#: AppTools/ToolExtractDrills.py:80 AppTools/ToolPunchGerber.py:91 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:54 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:54 +#: flatcamTools/ToolExtractDrills.py:80 flatcamTools/ToolPunchGerber.py:91 msgid "Process Circular Pads." msgstr "Обработка круглых площадок." -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:60 -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:162 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:60 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:164 -#: AppTools/ToolExtractDrills.py:86 AppTools/ToolExtractDrills.py:214 -#: AppTools/ToolPunchGerber.py:97 AppTools/ToolPunchGerber.py:242 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:60 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:162 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:60 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:164 +#: flatcamTools/ToolExtractDrills.py:86 flatcamTools/ToolExtractDrills.py:214 +#: flatcamTools/ToolPunchGerber.py:97 flatcamTools/ToolPunchGerber.py:242 msgid "Oblong" msgstr "Продолговатая форма" -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:62 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:62 -#: AppTools/ToolExtractDrills.py:88 AppTools/ToolPunchGerber.py:99 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:62 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:62 +#: flatcamTools/ToolExtractDrills.py:88 flatcamTools/ToolPunchGerber.py:99 msgid "Process Oblong Pads." msgstr "Продолговатые площадки." -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:70 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:70 -#: AppTools/ToolExtractDrills.py:96 AppTools/ToolPunchGerber.py:107 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:70 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:70 +#: flatcamTools/ToolExtractDrills.py:96 flatcamTools/ToolPunchGerber.py:107 msgid "Process Square Pads." msgstr "Квадратные площадки." -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:78 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:78 -#: AppTools/ToolExtractDrills.py:104 AppTools/ToolPunchGerber.py:115 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:78 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:78 +#: flatcamTools/ToolExtractDrills.py:104 flatcamTools/ToolPunchGerber.py:115 msgid "Process Rectangular Pads." msgstr "Обработка прямоугольных площадок." -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:84 -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:201 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:84 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:203 -#: AppTools/ToolExtractDrills.py:110 AppTools/ToolExtractDrills.py:253 -#: AppTools/ToolProperties.py:172 AppTools/ToolPunchGerber.py:121 -#: AppTools/ToolPunchGerber.py:281 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:84 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:201 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:84 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:203 +#: flatcamTools/ToolExtractDrills.py:110 flatcamTools/ToolExtractDrills.py:253 +#: flatcamTools/ToolProperties.py:172 flatcamTools/ToolPunchGerber.py:121 +#: flatcamTools/ToolPunchGerber.py:281 msgid "Others" msgstr "Другие" -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:86 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:86 -#: AppTools/ToolExtractDrills.py:112 AppTools/ToolPunchGerber.py:123 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:86 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:86 +#: flatcamTools/ToolExtractDrills.py:112 flatcamTools/ToolPunchGerber.py:123 msgid "Process pads not in the categories above." msgstr "Площадки, не относящиеся к вышеперечисленным категориям." -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:99 -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:123 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:100 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:125 -#: AppTools/ToolExtractDrills.py:139 AppTools/ToolExtractDrills.py:156 -#: AppTools/ToolPunchGerber.py:150 AppTools/ToolPunchGerber.py:184 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:99 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:123 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:100 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:125 +#: flatcamTools/ToolExtractDrills.py:139 flatcamTools/ToolExtractDrills.py:156 +#: flatcamTools/ToolPunchGerber.py:150 flatcamTools/ToolPunchGerber.py:184 msgid "Fixed Diameter" msgstr "Фиксированный диаметр" -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:100 -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:140 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:101 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:142 -#: AppTools/ToolExtractDrills.py:140 AppTools/ToolExtractDrills.py:192 -#: AppTools/ToolPunchGerber.py:151 AppTools/ToolPunchGerber.py:214 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:100 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:140 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:101 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:142 +#: flatcamTools/ToolExtractDrills.py:140 flatcamTools/ToolExtractDrills.py:192 +#: flatcamTools/ToolPunchGerber.py:151 flatcamTools/ToolPunchGerber.py:214 msgid "Fixed Annular Ring" msgstr "Фиксированное медное кольцо" -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:101 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:102 -#: AppTools/ToolExtractDrills.py:141 AppTools/ToolPunchGerber.py:152 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:101 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:102 +#: flatcamTools/ToolExtractDrills.py:141 flatcamTools/ToolPunchGerber.py:152 msgid "Proportional" msgstr "Пропорциональный" -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:107 -#: AppTools/ToolExtractDrills.py:130 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:107 +#: flatcamTools/ToolExtractDrills.py:130 msgid "" "The method for processing pads. Can be:\n" "- Fixed Diameter -> all holes will have a set size\n" @@ -9845,24 +11693,15 @@ msgstr "" "- Пропорциональный -> размер каждого отверстия будет составлять долю от " "размера площадки" -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:131 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:133 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:220 -#: AppTools/ToolExtractDrills.py:164 AppTools/ToolExtractDrills.py:285 -#: AppTools/ToolPunchGerber.py:192 AppTools/ToolPunchGerber.py:308 -#: AppTools/ToolTransform.py:357 App_Main.py:9698 -msgid "Value" -msgstr "Значение" - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:133 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:135 -#: AppTools/ToolExtractDrills.py:166 AppTools/ToolPunchGerber.py:194 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:133 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:135 +#: flatcamTools/ToolExtractDrills.py:166 flatcamTools/ToolPunchGerber.py:194 msgid "Fixed hole diameter." msgstr "Фиксированный диаметр отверстия." -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:142 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:144 -#: AppTools/ToolExtractDrills.py:194 AppTools/ToolPunchGerber.py:216 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:142 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:144 +#: flatcamTools/ToolExtractDrills.py:194 flatcamTools/ToolPunchGerber.py:216 msgid "" "The size of annular ring.\n" "The copper sliver between the hole exterior\n" @@ -9872,50 +11711,50 @@ msgstr "" "Медная полоска между наружным отверстием\n" "и краем медной площадки." -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:151 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:153 -#: AppTools/ToolExtractDrills.py:203 AppTools/ToolPunchGerber.py:231 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:151 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:153 +#: flatcamTools/ToolExtractDrills.py:203 flatcamTools/ToolPunchGerber.py:231 msgid "The size of annular ring for circular pads." msgstr "Размер кольца круглого сечения для кольцевых площадок." -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:164 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:166 -#: AppTools/ToolExtractDrills.py:216 AppTools/ToolPunchGerber.py:244 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:164 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:166 +#: flatcamTools/ToolExtractDrills.py:216 flatcamTools/ToolPunchGerber.py:244 msgid "The size of annular ring for oblong pads." msgstr "Размер кольца круглого сечения для продолговатых площадок." -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:177 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:179 -#: AppTools/ToolExtractDrills.py:229 AppTools/ToolPunchGerber.py:257 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:177 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:179 +#: flatcamTools/ToolExtractDrills.py:229 flatcamTools/ToolPunchGerber.py:257 msgid "The size of annular ring for square pads." msgstr "Размер кольца круглого сечения для квадратных площадок." -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:190 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:192 -#: AppTools/ToolExtractDrills.py:242 AppTools/ToolPunchGerber.py:270 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:190 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:192 +#: flatcamTools/ToolExtractDrills.py:242 flatcamTools/ToolPunchGerber.py:270 msgid "The size of annular ring for rectangular pads." msgstr "Размер кольца круглого сечения для прямоугольных площадок." -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:203 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:205 -#: AppTools/ToolExtractDrills.py:255 AppTools/ToolPunchGerber.py:283 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:203 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:205 +#: flatcamTools/ToolExtractDrills.py:255 flatcamTools/ToolPunchGerber.py:283 msgid "The size of annular ring for other pads." msgstr "Размер кольца круглого сечения для других площадок." -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:213 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:215 -#: AppTools/ToolExtractDrills.py:276 AppTools/ToolPunchGerber.py:299 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:213 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:215 +#: flatcamTools/ToolExtractDrills.py:276 flatcamTools/ToolPunchGerber.py:299 msgid "Proportional Diameter" msgstr "Пропорциональный диаметр" -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:222 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:224 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:222 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:224 msgid "Factor" msgstr "Коэффициент" -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:224 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:226 -#: AppTools/ToolExtractDrills.py:287 AppTools/ToolPunchGerber.py:310 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:224 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:226 +#: flatcamTools/ToolExtractDrills.py:287 flatcamTools/ToolPunchGerber.py:310 msgid "" "Proportional Diameter.\n" "The hole diameter will be a fraction of the pad size." @@ -9923,12 +11762,12 @@ msgstr "" "Пропорциональный диаметр.\n" "Диаметр отверстия будет составлять долю от размера площадки." -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:27 +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:27 msgid "Fiducials Tool Options" msgstr "Параметры контрольных точек" -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:45 -#: AppTools/ToolFiducials.py:161 +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:45 +#: flatcamTools/ToolFiducials.py:158 msgid "" "This set the fiducial diameter if fiducial type is circular,\n" "otherwise is the size of the fiducial.\n" @@ -9939,22 +11778,22 @@ msgstr "" "в противном случае, размер контрольного отверстия\n" "вдвое больше отверстия паяльной маски." -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:73 -#: AppTools/ToolFiducials.py:189 +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:73 +#: flatcamTools/ToolFiducials.py:186 msgid "Auto" msgstr "Авто" -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:74 -#: AppTools/ToolFiducials.py:190 +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:74 +#: flatcamTools/ToolFiducials.py:187 msgid "Manual" msgstr "Вручную" -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:76 -#: AppTools/ToolFiducials.py:192 +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:76 +#: flatcamTools/ToolFiducials.py:189 msgid "Mode:" msgstr "Режим:" -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:78 +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:78 msgid "" "- 'Auto' - automatic placement of fiducials in the corners of the bounding " "box.\n" @@ -9964,23 +11803,23 @@ msgstr "" "ограничительной рамки.\n" "- 'Вручную' - ручное размещение контрольных точек." -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:86 -#: AppTools/ToolFiducials.py:202 +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:86 +#: flatcamTools/ToolFiducials.py:199 msgid "Up" msgstr "Вверху" -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:87 -#: AppTools/ToolFiducials.py:203 +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:87 +#: flatcamTools/ToolFiducials.py:200 msgid "Down" msgstr "Внизу" -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:90 -#: AppTools/ToolFiducials.py:206 +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:90 +#: flatcamTools/ToolFiducials.py:203 msgid "Second fiducial" msgstr "Вторичные контрольные точки" -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:92 -#: AppTools/ToolFiducials.py:208 +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:92 +#: flatcamTools/ToolFiducials.py:205 msgid "" "The position for the second fiducial.\n" "- 'Up' - the order is: bottom-left, top-left, top-right.\n" @@ -9993,23 +11832,23 @@ msgstr "" "- 'Нет' - вторичная контрольная точка отсутствует. Порядок: снизу слева, " "сверху справа." -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:108 -#: AppTools/ToolFiducials.py:224 +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:108 +#: flatcamTools/ToolFiducials.py:221 msgid "Cross" msgstr "Крест" -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:109 -#: AppTools/ToolFiducials.py:225 +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:109 +#: flatcamTools/ToolFiducials.py:222 msgid "Chess" msgstr "Шахматный порядок" -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:112 -#: AppTools/ToolFiducials.py:227 +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:112 +#: flatcamTools/ToolFiducials.py:224 msgid "Fiducial Type" msgstr "Тип контрольных точек" -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:114 -#: AppTools/ToolFiducials.py:229 +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:114 +#: flatcamTools/ToolFiducials.py:226 msgid "" "The type of fiducial.\n" "- 'Circular' - this is the regular fiducial.\n" @@ -10021,16 +11860,16 @@ msgstr "" "- 'Крест' - крестообразные.\n" "- 'Шахматный порядок' - точки в шахматном порядке." -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:123 -#: AppTools/ToolFiducials.py:238 +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:123 +#: flatcamTools/ToolFiducials.py:235 msgid "Line thickness" msgstr "Толщина линии" -#: AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py:27 +#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:27 msgid "Invert Gerber Tool Options" msgstr "Параметры инверсии Gerber" -#: AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py:33 +#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:33 msgid "" "A tool to invert Gerber geometry from positive to negative\n" "and in revers." @@ -10039,8 +11878,8 @@ msgstr "" "отрицательную.\n" "и в обратном направлении." -#: AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py:47 -#: AppTools/ToolInvertGerber.py:93 +#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:47 +#: flatcamTools/ToolInvertGerber.py:90 msgid "" "Distance by which to avoid\n" "the edges of the Gerber object." @@ -10048,13 +11887,13 @@ msgstr "" "Расстояние, на которое следует избегать\n" "края объекта Gerber." -#: AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py:58 -#: AppTools/ToolInvertGerber.py:104 +#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:58 +#: flatcamTools/ToolInvertGerber.py:101 msgid "Lines Join Style" msgstr "Стиль соединения линий" -#: AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py:60 -#: AppTools/ToolInvertGerber.py:106 +#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:60 +#: flatcamTools/ToolInvertGerber.py:103 msgid "" "The way that the lines in the object outline will be joined.\n" "Can be:\n" @@ -10068,11 +11907,11 @@ msgstr "" "- квадрат -> линии встречаются под углом 90 градусов\n" "- скос -> линии соединяются третьей линией" -#: AppGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:27 +#: flatcamGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:27 msgid "Optimal Tool Options" msgstr "Параметры оптимизации" -#: AppGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:33 +#: flatcamGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:33 msgid "" "A tool to find the minimum distance between\n" "every two Gerber geometric elements" @@ -10080,22 +11919,22 @@ msgstr "" "Инструмент для поиска минимального расстояния между\n" "двумя элементами геометрии Gerber" -#: AppGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:48 -#: AppTools/ToolOptimal.py:84 +#: flatcamGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:48 +#: flatcamTools/ToolOptimal.py:78 msgid "Precision" msgstr "Точность" -#: AppGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:50 +#: flatcamGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:50 msgid "Number of decimals for the distances and coordinates in this tool." msgstr "" "Количество десятичных знаков для расстояний и координат в этом инструменте." -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:27 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:27 msgid "Punch Gerber Options" msgstr "Параметры перфорации" -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:108 -#: AppTools/ToolPunchGerber.py:141 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:108 +#: flatcamTools/ToolPunchGerber.py:141 msgid "" "The punch hole source can be:\n" "- Excellon Object-> the Excellon object drills center will serve as " @@ -10116,11 +11955,11 @@ msgstr "" "- Пропорциональное -> сделает отверстие для перфорации Gerber диаметром в " "процентах от диаметра площадки." -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:27 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:27 msgid "QRCode Tool Options" msgstr "Параметры QR-кода" -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:33 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:33 msgid "" "A tool to create a QRCode that can be inserted\n" "into a selected Gerber file, or it can be exported as a file." @@ -10128,13 +11967,13 @@ msgstr "" "Инструмент для создания QR-кода, который можно вставить\n" "в выбранный файл Gerber, или его можно экспортировать в файл." -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:45 -#: AppTools/ToolQRCode.py:121 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:45 +#: flatcamTools/ToolQRCode.py:100 msgid "Version" msgstr "Версия" -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:47 -#: AppTools/ToolQRCode.py:123 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:47 +#: flatcamTools/ToolQRCode.py:102 msgid "" "QRCode version can have values from 1 (21x21 boxes)\n" "to 40 (177x177 boxes)." @@ -10142,14 +11981,14 @@ msgstr "" "Версия QRCode может иметь значения от 1 (21x21).\n" "до 40 (177x177)." -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:58 -#: AppTools/ToolQRCode.py:134 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:58 +#: flatcamTools/ToolQRCode.py:113 msgid "Error correction" msgstr "Коррекция ошибок" -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:60 -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:71 -#: AppTools/ToolQRCode.py:136 AppTools/ToolQRCode.py:147 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:60 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:71 +#: flatcamTools/ToolQRCode.py:115 flatcamTools/ToolQRCode.py:126 #, python-format msgid "" "Parameter that controls the error correction used for the QR Code.\n" @@ -10164,13 +12003,13 @@ msgstr "" "Q = макс. 25%% ошибок могут быть исправлены\n" "H = макс. 30%% ошибок могут быть исправлены." -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:81 -#: AppTools/ToolQRCode.py:157 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:81 +#: flatcamTools/ToolQRCode.py:136 msgid "Box Size" msgstr "Размер поля" -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:83 -#: AppTools/ToolQRCode.py:159 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:83 +#: flatcamTools/ToolQRCode.py:138 msgid "" "Box size control the overall size of the QRcode\n" "by adjusting the size of each box in the code." @@ -10178,13 +12017,13 @@ msgstr "" "Размер рамки регулирует общий размер QR-кода.\n" "откорректировав размер каждой рамки в коде." -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:94 -#: AppTools/ToolQRCode.py:170 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:94 +#: flatcamTools/ToolQRCode.py:149 msgid "Border Size" msgstr "Отступ" -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:96 -#: AppTools/ToolQRCode.py:172 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:96 +#: flatcamTools/ToolQRCode.py:151 msgid "" "Size of the QRCode border. How many boxes thick is the border.\n" "Default value is 4. The width of the clearance around the QRCode." @@ -10192,29 +12031,29 @@ msgstr "" "Размер границы QR-кода. Насколько рамка толще границы.\n" "Значение по умолчанию 4. Ширина зазора вокруг QR-кода." -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:107 -#: AppTools/ToolQRCode.py:92 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:107 +#: flatcamTools/ToolQRCode.py:162 msgid "QRCode Data" msgstr "Данные QR-кода" -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:109 -#: AppTools/ToolQRCode.py:94 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:109 +#: flatcamTools/ToolQRCode.py:164 msgid "QRCode Data. Alphanumeric text to be encoded in the QRCode." msgstr "" "Данные QRCode. Буквенно-цифровой текст, подлежащий кодированию в QRCode." -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:113 -#: AppTools/ToolQRCode.py:98 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:113 +#: flatcamTools/ToolQRCode.py:168 msgid "Add here the text to be included in the QRCode..." msgstr "Добавьте сюда текст, который будет включен в QRCode..." -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:119 -#: AppTools/ToolQRCode.py:183 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:119 +#: flatcamTools/ToolQRCode.py:174 msgid "Polarity" msgstr "Полярность" -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:121 -#: AppTools/ToolQRCode.py:185 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:121 +#: flatcamTools/ToolQRCode.py:176 msgid "" "Choose the polarity of the QRCode.\n" "It can be drawn in a negative way (squares are clear)\n" @@ -10224,18 +12063,18 @@ msgstr "" "Он может быть нарисован как негптив (квадраты видны)\n" "или позитив (квадраты непрозрачны)." -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:125 -#: AppTools/ToolFilm.py:279 AppTools/ToolQRCode.py:189 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:125 +#: flatcamTools/ToolFilm.py:296 flatcamTools/ToolQRCode.py:180 msgid "Negative" msgstr "Негатив" -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:126 -#: AppTools/ToolFilm.py:278 AppTools/ToolQRCode.py:190 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:126 +#: flatcamTools/ToolFilm.py:295 flatcamTools/ToolQRCode.py:181 msgid "Positive" msgstr "Позитив" -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:128 -#: AppTools/ToolQRCode.py:192 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:128 +#: flatcamTools/ToolQRCode.py:183 msgid "" "Choose the type of QRCode to be created.\n" "If added on a Silkscreen Gerber file the QRCode may\n" @@ -10247,9 +12086,9 @@ msgstr "" "будет добавлено как позитив. Если он добавлен к Copper Gerber.\n" "то, возможно, QRCode может быть добавлен как негатив." -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:139 -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:145 -#: AppTools/ToolQRCode.py:203 AppTools/ToolQRCode.py:209 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:139 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:145 +#: flatcamTools/ToolQRCode.py:194 flatcamTools/ToolQRCode.py:200 msgid "" "The bounding box, meaning the empty space that surrounds\n" "the QRCode geometry, can have a rounded or a square shape." @@ -10257,37 +12096,37 @@ msgstr "" "Ограничительная рамка, означающая пустое пространство вокруг\n" "QRCode, может иметь округлую или квадратную форму." -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:142 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:239 -#: AppTools/ToolQRCode.py:206 AppTools/ToolTransform.py:383 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:142 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:239 +#: flatcamTools/ToolQRCode.py:197 flatcamTools/ToolTransform.py:383 msgid "Rounded" msgstr "Закругленный" -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:152 -#: AppTools/ToolQRCode.py:237 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:152 +#: flatcamTools/ToolQRCode.py:228 msgid "Fill Color" msgstr "Цвет заливки" -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:154 -#: AppTools/ToolQRCode.py:239 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:154 +#: flatcamTools/ToolQRCode.py:230 msgid "Set the QRCode fill color (squares color)." msgstr "Задаёт цвет заливки QRCode (цвет квадратов)." -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:162 -#: AppTools/ToolQRCode.py:261 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:173 +#: flatcamTools/ToolQRCode.py:252 msgid "Back Color" msgstr "Цвет фона" -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:164 -#: AppTools/ToolQRCode.py:263 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:175 +#: flatcamTools/ToolQRCode.py:254 msgid "Set the QRCode background color." msgstr "Устанавливает цвет фона QRCode." -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:27 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:27 msgid "Check Rules Tool Options" msgstr "Параметры проверки правил" -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:32 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:32 msgid "" "A tool to check if Gerber files are within a set\n" "of Manufacturing Rules." @@ -10295,75 +12134,75 @@ msgstr "" "Инструмент для проверки наличия файлов Gerber в наборе\n" "правил изготовления." -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:42 -#: AppTools/ToolRulesCheck.py:265 AppTools/ToolRulesCheck.py:929 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:42 +#: flatcamTools/ToolRulesCheck.py:265 flatcamTools/ToolRulesCheck.py:929 msgid "Trace Size" msgstr "Размер трассы" -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:44 -#: AppTools/ToolRulesCheck.py:267 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:44 +#: flatcamTools/ToolRulesCheck.py:267 msgid "This checks if the minimum size for traces is met." msgstr "Это проверяет, соблюден ли минимальный размер трассы." -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:54 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:74 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:94 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:114 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:134 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:154 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:174 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:194 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:216 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:236 -#: AppTools/ToolRulesCheck.py:277 AppTools/ToolRulesCheck.py:299 -#: AppTools/ToolRulesCheck.py:322 AppTools/ToolRulesCheck.py:345 -#: AppTools/ToolRulesCheck.py:368 AppTools/ToolRulesCheck.py:391 -#: AppTools/ToolRulesCheck.py:414 AppTools/ToolRulesCheck.py:437 -#: AppTools/ToolRulesCheck.py:462 AppTools/ToolRulesCheck.py:485 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:54 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:74 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:94 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:114 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:134 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:154 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:174 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:194 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:216 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:236 +#: flatcamTools/ToolRulesCheck.py:277 flatcamTools/ToolRulesCheck.py:299 +#: flatcamTools/ToolRulesCheck.py:322 flatcamTools/ToolRulesCheck.py:345 +#: flatcamTools/ToolRulesCheck.py:368 flatcamTools/ToolRulesCheck.py:391 +#: flatcamTools/ToolRulesCheck.py:414 flatcamTools/ToolRulesCheck.py:437 +#: flatcamTools/ToolRulesCheck.py:462 flatcamTools/ToolRulesCheck.py:485 msgid "Min value" msgstr "Минимальное значение" -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:56 -#: AppTools/ToolRulesCheck.py:279 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:56 +#: flatcamTools/ToolRulesCheck.py:279 msgid "Minimum acceptable trace size." msgstr "Минимальный допустимый размер трассировки." -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:61 -#: AppTools/ToolRulesCheck.py:286 AppTools/ToolRulesCheck.py:1157 -#: AppTools/ToolRulesCheck.py:1187 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:61 +#: flatcamTools/ToolRulesCheck.py:286 flatcamTools/ToolRulesCheck.py:1157 +#: flatcamTools/ToolRulesCheck.py:1187 msgid "Copper to Copper clearance" msgstr "Зазор между медными дорожками" -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:63 -#: AppTools/ToolRulesCheck.py:288 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:63 +#: flatcamTools/ToolRulesCheck.py:288 msgid "" "This checks if the minimum clearance between copper\n" "features is met." msgstr "Проверяет, соблюдены ли минимальные зазоры между медью." -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:76 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:96 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:116 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:136 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:156 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:176 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:238 -#: AppTools/ToolRulesCheck.py:301 AppTools/ToolRulesCheck.py:324 -#: AppTools/ToolRulesCheck.py:347 AppTools/ToolRulesCheck.py:370 -#: AppTools/ToolRulesCheck.py:393 AppTools/ToolRulesCheck.py:416 -#: AppTools/ToolRulesCheck.py:464 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:76 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:96 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:116 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:136 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:156 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:176 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:238 +#: flatcamTools/ToolRulesCheck.py:301 flatcamTools/ToolRulesCheck.py:324 +#: flatcamTools/ToolRulesCheck.py:347 flatcamTools/ToolRulesCheck.py:370 +#: flatcamTools/ToolRulesCheck.py:393 flatcamTools/ToolRulesCheck.py:416 +#: flatcamTools/ToolRulesCheck.py:464 msgid "Minimum acceptable clearance value." msgstr "Минимально допустимое значение зазора." -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:81 -#: AppTools/ToolRulesCheck.py:309 AppTools/ToolRulesCheck.py:1217 -#: AppTools/ToolRulesCheck.py:1223 AppTools/ToolRulesCheck.py:1236 -#: AppTools/ToolRulesCheck.py:1243 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:81 +#: flatcamTools/ToolRulesCheck.py:309 flatcamTools/ToolRulesCheck.py:1217 +#: flatcamTools/ToolRulesCheck.py:1223 flatcamTools/ToolRulesCheck.py:1236 +#: flatcamTools/ToolRulesCheck.py:1243 msgid "Copper to Outline clearance" msgstr "Зазор между медью и контуром" -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:83 -#: AppTools/ToolRulesCheck.py:311 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:83 +#: flatcamTools/ToolRulesCheck.py:311 msgid "" "This checks if the minimum clearance between copper\n" "features and the outline is met." @@ -10371,26 +12210,26 @@ msgstr "" "Проверяет, выполнены ли минимальные зазоры между медью\n" "и контурами." -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:101 -#: AppTools/ToolRulesCheck.py:332 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:101 +#: flatcamTools/ToolRulesCheck.py:332 msgid "Silk to Silk Clearance" msgstr "Зазор между шелкографией" -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:103 -#: AppTools/ToolRulesCheck.py:334 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:103 +#: flatcamTools/ToolRulesCheck.py:334 msgid "" "This checks if the minimum clearance between silkscreen\n" "features and silkscreen features is met." msgstr "Проверяет, соблюдены ли минимальные зазоры между шелкографией." -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:121 -#: AppTools/ToolRulesCheck.py:355 AppTools/ToolRulesCheck.py:1326 -#: AppTools/ToolRulesCheck.py:1332 AppTools/ToolRulesCheck.py:1350 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:121 +#: flatcamTools/ToolRulesCheck.py:355 flatcamTools/ToolRulesCheck.py:1326 +#: flatcamTools/ToolRulesCheck.py:1332 flatcamTools/ToolRulesCheck.py:1350 msgid "Silk to Solder Mask Clearance" msgstr "Зазор между шелкографией и паяльной маской" -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:123 -#: AppTools/ToolRulesCheck.py:357 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:123 +#: flatcamTools/ToolRulesCheck.py:357 msgid "" "This checks if the minimum clearance between silkscreen\n" "features and soldermask features is met." @@ -10398,15 +12237,15 @@ msgstr "" "Проверяет, соблюдены ли минимальные зазоры между шелкографией\n" "и паяльной маской." -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:141 -#: AppTools/ToolRulesCheck.py:378 AppTools/ToolRulesCheck.py:1380 -#: AppTools/ToolRulesCheck.py:1386 AppTools/ToolRulesCheck.py:1400 -#: AppTools/ToolRulesCheck.py:1407 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:141 +#: flatcamTools/ToolRulesCheck.py:378 flatcamTools/ToolRulesCheck.py:1380 +#: flatcamTools/ToolRulesCheck.py:1386 flatcamTools/ToolRulesCheck.py:1400 +#: flatcamTools/ToolRulesCheck.py:1407 msgid "Silk to Outline Clearance" msgstr "Зазор между шелкографией и контуром" -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:143 -#: AppTools/ToolRulesCheck.py:380 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:143 +#: flatcamTools/ToolRulesCheck.py:380 msgid "" "This checks if the minimum clearance between silk\n" "features and the outline is met." @@ -10414,14 +12253,14 @@ msgstr "" "Проверяет, соблюдены ли минимальные зазоры между шелкографией\n" "и контурами." -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:161 -#: AppTools/ToolRulesCheck.py:401 AppTools/ToolRulesCheck.py:1418 -#: AppTools/ToolRulesCheck.py:1445 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:161 +#: flatcamTools/ToolRulesCheck.py:401 flatcamTools/ToolRulesCheck.py:1418 +#: flatcamTools/ToolRulesCheck.py:1445 msgid "Minimum Solder Mask Sliver" msgstr "Минимальная ширина паяльной маски" -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:163 -#: AppTools/ToolRulesCheck.py:403 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:163 +#: flatcamTools/ToolRulesCheck.py:403 msgid "" "This checks if the minimum clearance between soldermask\n" "features and soldermask features is met." @@ -10429,15 +12268,15 @@ msgstr "" "Проверяет, соблюдены ли минимальные зазоры между паяльной маской\n" "и встречной паяльной маской." -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:181 -#: AppTools/ToolRulesCheck.py:424 AppTools/ToolRulesCheck.py:1483 -#: AppTools/ToolRulesCheck.py:1489 AppTools/ToolRulesCheck.py:1505 -#: AppTools/ToolRulesCheck.py:1512 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:181 +#: flatcamTools/ToolRulesCheck.py:424 flatcamTools/ToolRulesCheck.py:1483 +#: flatcamTools/ToolRulesCheck.py:1489 flatcamTools/ToolRulesCheck.py:1505 +#: flatcamTools/ToolRulesCheck.py:1512 msgid "Minimum Annular Ring" msgstr "Минимальное медное кольцо" -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:183 -#: AppTools/ToolRulesCheck.py:426 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:183 +#: flatcamTools/ToolRulesCheck.py:426 msgid "" "This checks if the minimum copper ring left by drilling\n" "a hole into a pad is met." @@ -10445,35 +12284,35 @@ msgstr "" "Проверяет, останется ли минимальное медное кольцо при сверлении\n" "отверстия в площадке." -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:196 -#: AppTools/ToolRulesCheck.py:439 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:196 +#: flatcamTools/ToolRulesCheck.py:439 msgid "Minimum acceptable ring value." msgstr "Минимальное допустимое значение кольца." -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:203 -#: AppTools/ToolRulesCheck.py:449 AppTools/ToolRulesCheck.py:873 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:203 +#: flatcamTools/ToolRulesCheck.py:449 flatcamTools/ToolRulesCheck.py:873 msgid "Hole to Hole Clearance" msgstr "Зазор между отверстиями" -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:205 -#: AppTools/ToolRulesCheck.py:451 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:205 +#: flatcamTools/ToolRulesCheck.py:451 msgid "" "This checks if the minimum clearance between a drill hole\n" "and another drill hole is met." msgstr "Проверяет, есть ли минимальный зазор между отверстиями." -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:218 -#: AppTools/ToolRulesCheck.py:487 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:218 +#: flatcamTools/ToolRulesCheck.py:487 msgid "Minimum acceptable drill size." msgstr "Минимальный допустимый размер отверстия." -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:223 -#: AppTools/ToolRulesCheck.py:472 AppTools/ToolRulesCheck.py:847 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:223 +#: flatcamTools/ToolRulesCheck.py:472 flatcamTools/ToolRulesCheck.py:847 msgid "Hole Size" msgstr "Размер отверстия" -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:225 -#: AppTools/ToolRulesCheck.py:474 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:225 +#: flatcamTools/ToolRulesCheck.py:474 msgid "" "This checks if the drill holes\n" "sizes are above the threshold." @@ -10481,11 +12320,11 @@ msgstr "" "Проверяет, превышают ли размеры просверленного отверстия\n" "допустимый порог." -#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:27 +#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:27 msgid "2Sided Tool Options" msgstr "2-х сторонняя плата" -#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:33 +#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:33 msgid "" "A tool to help in creating a double sided\n" "PCB using alignment holes." @@ -10493,45 +12332,45 @@ msgstr "" "Инструмент, помогающий создать двухстороннюю\n" "печатную плату с использованием центрирующих отверстий." -#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:47 +#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:47 msgid "Drill dia" msgstr "Диаметр сверла" -#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:49 -#: AppTools/ToolDblSided.py:363 AppTools/ToolDblSided.py:368 +#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:49 +#: flatcamTools/ToolDblSided.py:363 flatcamTools/ToolDblSided.py:368 msgid "Diameter of the drill for the alignment holes." msgstr "Диаметр сверла для контрольных отверстий." -#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:56 -#: AppTools/ToolDblSided.py:377 +#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:56 +#: flatcamTools/ToolDblSided.py:377 msgid "Align Axis" msgstr "Выровнять ось" -#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:58 -#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:71 -#: AppTools/ToolDblSided.py:165 AppTools/ToolDblSided.py:379 +#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:58 +#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:71 +#: flatcamTools/ToolDblSided.py:165 flatcamTools/ToolDblSided.py:379 msgid "Mirror vertically (X) or horizontally (Y)." msgstr "Отразить по вертикали (X) или горизонтали (Y)." -#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:69 +#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:69 msgid "Mirror Axis:" msgstr "Зеркальное отражение:" -#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:80 -#: AppTools/ToolDblSided.py:181 +#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:80 +#: flatcamTools/ToolDblSided.py:181 msgid "Point" msgstr "Точка" -#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:81 -#: AppTools/ToolDblSided.py:182 +#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:81 +#: flatcamTools/ToolDblSided.py:182 msgid "Box" msgstr "Рамка" -#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:82 +#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:82 msgid "Axis Ref" msgstr "Указатель оси" -#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:84 +#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:84 msgid "" "The axis should pass through a point or cut\n" " a specified box (in a FlatCAM object) through \n" @@ -10541,16 +12380,16 @@ msgstr "" "указанный коробка (в объекте FlatCAM) через\n" "центр." -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:27 +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:27 msgid "Calculators Tool Options" msgstr "Калькулятор" -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:31 -#: AppTools/ToolCalculators.py:25 +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:31 +#: flatcamTools/ToolCalculators.py:25 msgid "V-Shape Tool Calculator" msgstr "Калькулятор V-образного инструмента" -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:33 +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:33 msgid "" "Calculate the tool diameter for a given V-shape tool,\n" "having the tip diameter, tip angle and\n" @@ -10560,13 +12399,13 @@ msgstr "" "учитывая диаметр наконечника, угол наклона наконечника и\n" "глубину резания в качестве параметров." -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:50 -#: AppTools/ToolCalculators.py:94 +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:50 +#: flatcamTools/ToolCalculators.py:94 msgid "Tip Diameter" msgstr "Диаметр наконечника" -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:52 -#: AppTools/ToolCalculators.py:102 +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:52 +#: flatcamTools/ToolCalculators.py:102 msgid "" "This is the tool tip diameter.\n" "It is specified by manufacturer." @@ -10574,12 +12413,12 @@ msgstr "" "Это диаметр наконечника инструмента.\n" "Это указано производителем." -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:64 -#: AppTools/ToolCalculators.py:105 +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:64 +#: flatcamTools/ToolCalculators.py:105 msgid "Tip Angle" msgstr "Угол наконечника" -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:66 +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:66 msgid "" "This is the angle on the tip of the tool.\n" "It is specified by manufacturer." @@ -10587,7 +12426,7 @@ msgstr "" "Это угол наконечника инструмента.\n" "Это указано производителем." -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:80 +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:80 msgid "" "This is depth to cut into material.\n" "In the CNCJob object it is the CutZ parameter." @@ -10595,13 +12434,13 @@ msgstr "" "Это глубина резки материала.\n" "В объекте CNCJob это параметр \"Глубина резания\"." -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:87 -#: AppTools/ToolCalculators.py:27 +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:87 +#: flatcamTools/ToolCalculators.py:27 msgid "ElectroPlating Calculator" msgstr "Калькулятор электронных плат" -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:89 -#: AppTools/ToolCalculators.py:158 +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:89 +#: flatcamTools/ToolCalculators.py:158 msgid "" "This calculator is useful for those who plate the via/pad/drill holes,\n" "using a method like graphite ink or calcium hypophosphite ink or palladium " @@ -10612,33 +12451,33 @@ msgstr "" "используя методы такие, как графитовые чернила или чернила гипофосфита " "кальция или хлорид палладия." -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:100 -#: AppTools/ToolCalculators.py:167 +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:100 +#: flatcamTools/ToolCalculators.py:167 msgid "Board Length" msgstr "Длина платы" -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:102 -#: AppTools/ToolCalculators.py:173 +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:102 +#: flatcamTools/ToolCalculators.py:173 msgid "This is the board length. In centimeters." msgstr "Это длина платы. В сантиметрах." -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:112 -#: AppTools/ToolCalculators.py:175 +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:112 +#: flatcamTools/ToolCalculators.py:175 msgid "Board Width" msgstr "Ширина платы" -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:114 -#: AppTools/ToolCalculators.py:181 +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:114 +#: flatcamTools/ToolCalculators.py:181 msgid "This is the board width.In centimeters." msgstr "Это ширина платы. В сантиметрах." -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:119 -#: AppTools/ToolCalculators.py:183 +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:119 +#: flatcamTools/ToolCalculators.py:183 msgid "Current Density" msgstr "Текущая плотность" -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:125 -#: AppTools/ToolCalculators.py:190 +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:125 +#: flatcamTools/ToolCalculators.py:190 msgid "" "Current density to pass through the board. \n" "In Amps per Square Feet ASF." @@ -10646,13 +12485,13 @@ msgstr "" "Плотность тока для прохождения через плату. \n" "В Амперах на квадратный метр АЧС." -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:131 -#: AppTools/ToolCalculators.py:193 +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:131 +#: flatcamTools/ToolCalculators.py:193 msgid "Copper Growth" msgstr "Медный слой" -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:137 -#: AppTools/ToolCalculators.py:200 +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:137 +#: flatcamTools/ToolCalculators.py:200 msgid "" "How thick the copper growth is intended to be.\n" "In microns." @@ -10660,42 +12499,17 @@ msgstr "" "Насколько толстым должен быть медный слой.\n" "В микронах." -#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:27 -#, fuzzy -#| msgid "Gerber Options" -msgid "Corner Markers Options" -msgstr "Параметры Gerber" - -#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:44 -#: AppTools/ToolCorners.py:124 -msgid "The thickness of the line that makes the corner marker." -msgstr "" - -#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:58 -#: AppTools/ToolCorners.py:138 -msgid "The length of the line that makes the corner marker." -msgstr "" - -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:28 +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:28 msgid "Cutout Tool Options" msgstr "Обрезка платы" -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:34 -msgid "" -"Create toolpaths to cut around\n" -"the PCB and separate it from\n" -"the original board." -msgstr "" -"Создание траектории обрезки печатной платы и отделения её от\n" -"заготовки." - -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:43 -#: AppTools/ToolCalculators.py:123 AppTools/ToolCutOut.py:129 +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:43 +#: flatcamTools/ToolCalculators.py:123 flatcamTools/ToolCutOut.py:129 msgid "Tool Diameter" msgstr "Диаметр инструмента" -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:45 -#: AppTools/ToolCutOut.py:131 +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:45 +#: flatcamTools/ToolCutOut.py:131 msgid "" "Diameter of the tool used to cutout\n" "the PCB shape out of the surrounding material." @@ -10703,12 +12517,12 @@ msgstr "" "Диаметр инструмента, используемого для вырезания\n" "форма печатной платы из окружающего материала." -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:100 +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:100 msgid "Object kind" msgstr "Вид объекта" -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:102 -#: AppTools/ToolCutOut.py:77 +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:102 +#: flatcamTools/ToolCutOut.py:77 msgid "" "Choice of what kind the object we want to cutout is.
    - Single: " "contain a single PCB Gerber outline object.
    - Panel: a panel PCB " @@ -10720,18 +12534,18 @@ msgstr "" "Гербера PCB панели, который сделан\n" "из множества отдельных печатных плат очертания." -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:109 -#: AppTools/ToolCutOut.py:83 +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:109 +#: flatcamTools/ToolCutOut.py:83 msgid "Single" msgstr "Одиночный" -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:110 -#: AppTools/ToolCutOut.py:84 +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:110 +#: flatcamTools/ToolCutOut.py:84 msgid "Panel" msgstr "Панель" -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:117 -#: AppTools/ToolCutOut.py:192 +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:117 +#: flatcamTools/ToolCutOut.py:192 msgid "" "Margin over bounds. A positive value here\n" "will make the cutout of the PCB further from\n" @@ -10741,13 +12555,13 @@ msgstr "" "сделает вырез печатной платы дальше от\n" "фактической границы печатной платы" -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:130 -#: AppTools/ToolCutOut.py:203 +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:130 +#: flatcamTools/ToolCutOut.py:203 msgid "Gap size" msgstr "Размер перемычки" -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:132 -#: AppTools/ToolCutOut.py:205 +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:132 +#: flatcamTools/ToolCutOut.py:205 msgid "" "The size of the bridge gaps in the cutout\n" "used to keep the board connected to\n" @@ -10759,12 +12573,12 @@ msgstr "" "окружающий материал (тот самый \n" "из которого вырезается печатная плата)." -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:146 -#: AppTools/ToolCutOut.py:245 +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:146 +#: flatcamTools/ToolCutOut.py:245 msgid "Gaps" msgstr "Вариант" -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:148 +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:148 msgid "" "Number of gaps used for the cutout.\n" "There can be maximum 8 bridges/gaps.\n" @@ -10788,13 +12602,13 @@ msgstr "" "- 2tb - 2*сверху + 2*снизу \n" "- 8 - 2*слева + 2*справа + 2*сверху + 2*снизу" -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:170 -#: AppTools/ToolCutOut.py:222 +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:170 +#: flatcamTools/ToolCutOut.py:222 msgid "Convex Shape" msgstr "Выпуклая форма" -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:172 -#: AppTools/ToolCutOut.py:225 +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:172 +#: flatcamTools/ToolCutOut.py:225 msgid "" "Create a convex shape surrounding the entire PCB.\n" "Used only if the source object type is Gerber." @@ -10802,29 +12616,26 @@ msgstr "" "Создайте выпуклую форму, окружающую всю печатную плату.\n" "Используется только в том случае, если тип исходного объекта-Gerber." -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:27 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:27 msgid "Film Tool Options" msgstr "Плёнка" -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:33 -#, fuzzy -#| msgid "" -#| "Create a PCB film from a Gerber or Geometry\n" -#| "FlatCAM object.\n" -#| "The file is saved in SVG format." +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:33 msgid "" -"Create a PCB film from a Gerber or Geometry object.\n" +"Create a PCB film from a Gerber or Geometry\n" +"FlatCAM object.\n" "The file is saved in SVG format." msgstr "" "Создание плёнки печатной платы из Gerber или Geometry\n" "объектов FlatCAM.\n" "Файл сохраняется в формате SVG." -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:43 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:44 msgid "Film Type" msgstr "Тип плёнки" -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:45 AppTools/ToolFilm.py:283 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:46 +#: flatcamTools/ToolFilm.py:300 msgid "" "Generate a Positive black film or a Negative film.\n" "Positive means that it will print the features\n" @@ -10840,19 +12651,21 @@ msgstr "" "белым на черном холсте.\n" "Формат плёнки - SVG." -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:56 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:57 msgid "Film Color" msgstr "Цвет пленки" -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:58 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:59 msgid "Set the film color when positive film is selected." msgstr "Устанавливает цвет плёнки при режиме \"Позитив\"." -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:71 AppTools/ToolFilm.py:299 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:82 +#: flatcamTools/ToolFilm.py:316 msgid "Border" msgstr "Отступ" -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:73 AppTools/ToolFilm.py:301 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:84 +#: flatcamTools/ToolFilm.py:318 msgid "" "Specify a border around the object.\n" "Only for negative film.\n" @@ -10872,11 +12685,13 @@ msgstr "" "и которые могут смешаться с \n" "окружающими, если бы не эта граница." -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:90 AppTools/ToolFilm.py:266 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:101 +#: flatcamTools/ToolFilm.py:283 msgid "Scale Stroke" msgstr "Масштаб обводки" -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:92 AppTools/ToolFilm.py:268 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:103 +#: flatcamTools/ToolFilm.py:285 msgid "" "Scale the line stroke thickness of each feature in the SVG file.\n" "It means that the line that envelope each SVG feature will be thicker or " @@ -10888,12 +12703,13 @@ msgstr "" "тоньше,\n" "поэтому этот параметр может сильно влиять на мелкие объекты." -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:99 AppTools/ToolFilm.py:124 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:110 +#: flatcamTools/ToolFilm.py:141 msgid "Film Adjustments" msgstr "Регулировка Пленки" -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:101 -#: AppTools/ToolFilm.py:126 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:112 +#: flatcamTools/ToolFilm.py:143 msgid "" "Sometime the printers will distort the print shape, especially the Laser " "types.\n" @@ -10902,13 +12718,13 @@ msgstr "" "Иногда принтеры могут искажать форму печати, особенно лазерные.\n" "В этом разделе представлены инструменты для компенсации искажений печати." -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:108 -#: AppTools/ToolFilm.py:133 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:119 +#: flatcamTools/ToolFilm.py:150 msgid "Scale Film geometry" msgstr "Масштабирование плёнки" -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:110 -#: AppTools/ToolFilm.py:135 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:121 +#: flatcamTools/ToolFilm.py:152 msgid "" "A value greater than 1 will stretch the film\n" "while a value less than 1 will jolt it." @@ -10916,25 +12732,25 @@ msgstr "" "Значение больше 1 растянет пленку\n" "в то время как значение меньше 1 будет её сжимать." -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:120 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:103 -#: AppTools/ToolFilm.py:145 AppTools/ToolTransform.py:148 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:131 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:103 +#: flatcamTools/ToolFilm.py:162 flatcamTools/ToolTransform.py:148 msgid "X factor" msgstr "Коэффициент X" -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:129 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:116 -#: AppTools/ToolFilm.py:154 AppTools/ToolTransform.py:168 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:140 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:116 +#: flatcamTools/ToolFilm.py:171 flatcamTools/ToolTransform.py:168 msgid "Y factor" msgstr "Коэффициент Y" -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:139 -#: AppTools/ToolFilm.py:172 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:150 +#: flatcamTools/ToolFilm.py:189 msgid "Skew Film geometry" msgstr "Наклон плёнки" -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:141 -#: AppTools/ToolFilm.py:174 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:152 +#: flatcamTools/ToolFilm.py:191 msgid "" "Positive values will skew to the right\n" "while negative values will skew to the left." @@ -10942,20 +12758,20 @@ msgstr "" "Положительные значения будут смещать вправо,\n" "а отрицательные значения будут смещать влево." -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:151 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:72 -#: AppTools/ToolFilm.py:184 AppTools/ToolTransform.py:97 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:162 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:72 +#: flatcamTools/ToolFilm.py:201 flatcamTools/ToolTransform.py:97 msgid "X angle" msgstr "Угол наклона X" -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:160 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:86 -#: AppTools/ToolFilm.py:193 AppTools/ToolTransform.py:118 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:171 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:86 +#: flatcamTools/ToolFilm.py:210 flatcamTools/ToolTransform.py:118 msgid "Y angle" msgstr "Угол наклона Y" -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:171 -#: AppTools/ToolFilm.py:204 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:182 +#: flatcamTools/ToolFilm.py:221 msgid "" "The reference point to be used as origin for the skew.\n" "It can be one of the four points of the geometry bounding box." @@ -10963,64 +12779,63 @@ msgstr "" "Опорная точка, используемая в качестве исходной точки для перекоса.\n" "Это может быть одна из четырех точек геометрии ограничительной рамки." -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:174 -#: AppTools/ToolCorners.py:80 AppTools/ToolFiducials.py:83 -#: AppTools/ToolFilm.py:207 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:185 +#: flatcamTools/ToolFiducials.py:87 flatcamTools/ToolFilm.py:224 msgid "Bottom Left" msgstr "Нижний левый" -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:175 -#: AppTools/ToolCorners.py:88 AppTools/ToolFilm.py:208 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:186 +#: flatcamTools/ToolFilm.py:225 msgid "Top Left" msgstr "Верхний левый" -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:176 -#: AppTools/ToolCorners.py:84 AppTools/ToolFilm.py:209 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:187 +#: flatcamTools/ToolFilm.py:226 msgid "Bottom Right" msgstr "Нижний правый" -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:177 -#: AppTools/ToolFilm.py:210 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:188 +#: flatcamTools/ToolFilm.py:227 msgid "Top right" msgstr "Верхний правый" -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:185 -#: AppTools/ToolFilm.py:227 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:196 +#: flatcamTools/ToolFilm.py:244 msgid "Mirror Film geometry" msgstr "Зеркалирование геометрии пленки" -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:187 -#: AppTools/ToolFilm.py:229 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:198 +#: flatcamTools/ToolFilm.py:246 msgid "Mirror the film geometry on the selected axis or on both." msgstr "Зеркалирование геометрии пленки на выбранной оси или на обеих." -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:201 -#: AppTools/ToolFilm.py:243 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:212 +#: flatcamTools/ToolFilm.py:260 msgid "Mirror axis" msgstr "Ось зеркалирования" -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:211 -#: AppTools/ToolFilm.py:388 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:222 +#: flatcamTools/ToolFilm.py:405 msgid "SVG" msgstr "SVG" -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:212 -#: AppTools/ToolFilm.py:389 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:223 +#: flatcamTools/ToolFilm.py:406 msgid "PNG" msgstr "PNG" -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:213 -#: AppTools/ToolFilm.py:390 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:224 +#: flatcamTools/ToolFilm.py:407 msgid "PDF" msgstr "PDF" -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:216 -#: AppTools/ToolFilm.py:281 AppTools/ToolFilm.py:393 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:227 +#: flatcamTools/ToolFilm.py:298 flatcamTools/ToolFilm.py:410 msgid "Film Type:" msgstr "Тип плёнки:" -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:218 -#: AppTools/ToolFilm.py:395 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:229 +#: flatcamTools/ToolFilm.py:412 msgid "" "The file type of the saved film. Can be:\n" "- 'SVG' -> open-source vectorial format\n" @@ -11032,47 +12847,86 @@ msgstr "" "- 'PNG' -> растровое изображение\n" "- 'PDF' -> формат портативного документа" -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:227 -#: AppTools/ToolFilm.py:404 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:238 +#: flatcamTools/ToolFilm.py:421 msgid "Page Orientation" msgstr "Ориентация страницы" -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:240 -#: AppTools/ToolFilm.py:417 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:251 +#: flatcamTools/ToolFilm.py:434 msgid "Page Size" msgstr "Размер страницы" -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:241 -#: AppTools/ToolFilm.py:418 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:252 +#: flatcamTools/ToolFilm.py:435 msgid "A selection of standard ISO 216 page sizes." msgstr "Выбор стандартных размеров страниц ISO 216." -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:26 -#, fuzzy -#| msgid "Calibration Tool Options" -msgid "Isolation Tool Options" -msgstr "Параметры калибровки" +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:27 +msgid "NCC Tool Options" +msgstr "Очистка меди" -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:48 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:49 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:57 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:49 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:57 msgid "Comma separated values" msgstr "Значения, разделенные запятыми" -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:54 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:156 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:142 -#: AppTools/ToolIsolation.py:166 AppTools/ToolNCC.py:174 -#: AppTools/ToolPaint.py:157 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:55 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:63 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:64 +#: flatcamTools/ToolNCC.py:215 flatcamTools/ToolNCC.py:223 +#: flatcamTools/ToolPaint.py:198 flatcamTools/ToolPaint.py:206 +msgid "" +"Default tool type:\n" +"- 'V-shape'\n" +"- Circular" +msgstr "" +"Тип инструмента по умолчанию:\n" +"- \"V-образная форма\" \n" +"- Круглый" + +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:60 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:69 +#: flatcamTools/ToolNCC.py:220 flatcamTools/ToolPaint.py:203 +msgid "V-shape" +msgstr "V-образный" + +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:100 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:109 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:107 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:116 +#: flatcamTools/ToolNCC.py:262 flatcamTools/ToolNCC.py:271 +#: flatcamTools/ToolPaint.py:245 flatcamTools/ToolPaint.py:254 +msgid "" +"Depth of cut into material. Negative value.\n" +"In FlatCAM units." +msgstr "" +"Диаметр инструмента. Это значение (в текущих единицах FlatCAM) \n" +"ширины разреза в материале." + +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:119 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:125 +#: flatcamTools/ToolNCC.py:280 flatcamTools/ToolPaint.py:263 +msgid "" +"Diameter for the new tool to add in the Tool Table.\n" +"If the tool is V-shape type then this value is automatically\n" +"calculated from the other parameters." +msgstr "" +"Диаметр нового инструмента для добавления в таблицу инструментов.\n" +"Если инструмент имеет V-образную форму, то это значение автоматически\n" +"вычисляется из других параметров." + +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:156 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:142 +#: flatcamTools/ToolNCC.py:174 flatcamTools/ToolPaint.py:158 msgid "Tool order" msgstr "Порядок инструмента" -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:55 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:157 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:167 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:143 -#: AppTools/ToolIsolation.py:167 AppTools/ToolNCC.py:175 -#: AppTools/ToolNCC.py:185 AppTools/ToolPaint.py:158 AppTools/ToolPaint.py:168 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:157 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:167 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:143 +#: flatcamTools/ToolNCC.py:175 flatcamTools/ToolNCC.py:185 +#: flatcamTools/ToolPaint.py:159 flatcamTools/ToolPaint.py:169 msgid "" "This set the way that the tools in the tools table are used.\n" "'No' --> means that the used order is the one in the tool table\n" @@ -11094,234 +12948,23 @@ msgstr "" "установит порядок\n" "на 'Обратный' и отключит этот элемент управления." -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:63 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:165 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:151 -#: AppTools/ToolIsolation.py:175 AppTools/ToolNCC.py:183 -#: AppTools/ToolPaint.py:166 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:165 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:151 +#: flatcamTools/ToolNCC.py:183 flatcamTools/ToolPaint.py:167 msgid "Forward" msgstr "Прямой" -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:64 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:166 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:152 -#: AppTools/ToolIsolation.py:176 AppTools/ToolNCC.py:184 -#: AppTools/ToolPaint.py:167 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:166 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:152 +#: flatcamTools/ToolNCC.py:184 flatcamTools/ToolPaint.py:168 msgid "Reverse" msgstr "Обратный" -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:72 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:80 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:55 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:63 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:64 -#: AppTools/ToolIsolation.py:201 AppTools/ToolIsolation.py:209 -#: AppTools/ToolNCC.py:215 AppTools/ToolNCC.py:223 AppTools/ToolPaint.py:197 -#: AppTools/ToolPaint.py:205 -msgid "" -"Default tool type:\n" -"- 'V-shape'\n" -"- Circular" -msgstr "" -"Тип инструмента по умолчанию:\n" -"- \"V-образная форма\" \n" -"- Круглый" - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:77 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:60 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:69 -#: AppTools/ToolIsolation.py:206 AppTools/ToolNCC.py:220 -#: AppTools/ToolPaint.py:202 -msgid "V-shape" -msgstr "V-образный" - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:103 -#, fuzzy -#| msgid "" -#| "The tip angle for V-Shape Tool.\n" -#| "In degree." -msgid "" -"The tip angle for V-Shape Tool.\n" -"In degrees." -msgstr "" -"Угол наклона наконечника для V-образного инструмента.\n" -"В степенях." - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:117 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:126 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:100 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:109 -#: AppTools/ToolIsolation.py:248 AppTools/ToolNCC.py:262 -#: AppTools/ToolNCC.py:271 AppTools/ToolPaint.py:244 AppTools/ToolPaint.py:253 -msgid "" -"Depth of cut into material. Negative value.\n" -"In FlatCAM units." -msgstr "" -"Диаметр инструмента. Это значение (в текущих единицах FlatCAM) \n" -"ширины разреза в материале." - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:136 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:119 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:125 -#: AppTools/ToolIsolation.py:262 AppTools/ToolNCC.py:280 -#: AppTools/ToolPaint.py:262 -msgid "" -"Diameter for the new tool to add in the Tool Table.\n" -"If the tool is V-shape type then this value is automatically\n" -"calculated from the other parameters." -msgstr "" -"Диаметр нового инструмента для добавления в таблицу инструментов.\n" -"Если инструмент имеет V-образную форму, то это значение автоматически\n" -"вычисляется из других параметров." - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:243 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:288 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:244 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:245 -#: AppTools/ToolIsolation.py:432 AppTools/ToolNCC.py:512 -#: AppTools/ToolPaint.py:441 -#, fuzzy -#| msgid "Restore" -msgid "Rest" -msgstr "Восстановить" - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:246 -#: AppTools/ToolIsolation.py:435 -#, fuzzy -#| msgid "" -#| "If checked, use 'rest machining'.\n" -#| "Basically it will clear copper outside PCB features,\n" -#| "using the biggest tool and continue with the next tools,\n" -#| "from bigger to smaller, to clear areas of copper that\n" -#| "could not be cleared by previous tool, until there is\n" -#| "no more copper to clear or there are no more tools.\n" -#| "If not checked, use the standard algorithm." -msgid "" -"If checked, use 'rest machining'.\n" -"Basically it will isolate outside PCB features,\n" -"using the biggest tool and continue with the next tools,\n" -"from bigger to smaller, to isolate the copper features that\n" -"could not be cleared by previous tool, until there is\n" -"no more copper features to isolate or there are no more tools.\n" -"If not checked, use the standard algorithm." -msgstr "" -"Если установлен этот флажок, используется 'обработка остаточного припуска'.\n" -"Это очистит основную медь печатной платы,\n" -"используя самый большой инструмент и переходя к следующим инструментам,\n" -"от большего к меньшему, чтобы очистить участки меди, которые\n" -"не могут быть очищены предыдущим инструментом, пока\n" -"больше не останется меди для очистки или больше не будет инструментов.\n" -"Если флажок не установлен, используется стандартный алгоритм." - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:258 -#: AppTools/ToolIsolation.py:447 -msgid "Combine" -msgstr "Комбинировать" - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:260 -#: AppTools/ToolIsolation.py:449 -msgid "Combine all passes into one object" -msgstr "Объединить все проходы в один объект" - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:267 -#: AppTools/ToolIsolation.py:456 -msgid "Except" -msgstr "Исключение" - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:268 -#: AppTools/ToolIsolation.py:457 -msgid "" -"When the isolation geometry is generated,\n" -"by checking this, the area of the object below\n" -"will be subtracted from the isolation geometry." -msgstr "" -"Когда геометрия изоляции генерируется,\n" -"проверив это, площадь объекта ниже\n" -"будет вычтено из геометрии изоляции." - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:277 -#: AppTools/ToolIsolation.py:496 -#, fuzzy -#| msgid "" -#| "Isolation scope. Choose what to isolate:\n" -#| "- 'All' -> Isolate all the polygons in the object\n" -#| "- 'Selection' -> Isolate a selection of polygons." -msgid "" -"Isolation scope. Choose what to isolate:\n" -"- 'All' -> Isolate all the polygons in the object\n" -"- 'Area Selection' -> Isolate polygons within a selection area.\n" -"- 'Polygon Selection' -> Isolate a selection of polygons.\n" -"- 'Reference Object' - will process the area specified by another object." -msgstr "" -"Объем изоляции. Выберите, что изолировать:\n" -"- 'Все' -> Изолировать все полигоны в объекте.\n" -"- 'Выделенные' -> Изолировать выделенные полигоны." - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:285 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280 -#: AppTools/ToolIsolation.py:504 AppTools/ToolIsolation.py:1308 -#: AppTools/ToolIsolation.py:1690 AppTools/ToolPaint.py:485 -#: AppTools/ToolPaint.py:941 AppTools/ToolPaint.py:1451 -#: tclCommands/TclCommandPaint.py:164 -msgid "Polygon Selection" -msgstr "Выбор полигона" - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:310 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:339 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:303 -msgid "Normal" -msgstr "Нормальный" - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:311 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:340 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:304 -msgid "Progressive" -msgstr "Последовательный" - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:312 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:341 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:305 -#: AppObjects/AppObject.py:349 AppObjects/FlatCAMObj.py:251 -#: AppObjects/FlatCAMObj.py:282 AppObjects/FlatCAMObj.py:298 -#: AppObjects/FlatCAMObj.py:378 AppTools/ToolCopperThieving.py:1491 -#: AppTools/ToolCorners.py:411 AppTools/ToolFiducials.py:813 -#: AppTools/ToolMove.py:229 AppTools/ToolQRCode.py:737 App_Main.py:4397 -msgid "Plotting" -msgstr "Прорисовка" - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:314 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:343 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:307 -#, fuzzy -#| msgid "" -#| "- 'Normal' - normal plotting, done at the end of the NCC job\n" -#| "- 'Progressive' - after each shape is generated it will be plotted." -msgid "" -"- 'Normal' - normal plotting, done at the end of the job\n" -"- 'Progressive' - each shape is plotted after it is generated" -msgstr "" -"- 'Нормальный' - нормальное построение, выполненное в конце задания очистки " -"от меди \n" -"- 'Последовательный' - после создания каждой фигуры она будет нанесена на " -"график." - -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:27 -msgid "NCC Tool Options" -msgstr "Очистка меди" - -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:33 -msgid "" -"Create a Geometry object with\n" -"toolpaths to cut all non-copper regions." -msgstr "" -"Создание объекта геометрии с помощью\n" -"траектории резания для всех областей, отличных от меди." - -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:266 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:266 msgid "Offset value" msgstr "Значение смещения" -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:268 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:268 msgid "" "If used, it will add an offset to the copper features.\n" "The copper clearing will finish to a distance\n" @@ -11334,7 +12977,15 @@ msgstr "" "Это значение может находиться в диапазоне от 0,0 до 9999,9 единиц измерения " "FlatCAM." -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:290 AppTools/ToolNCC.py:516 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:288 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:244 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:245 +#: flatcamTools/ToolNCC.py:512 flatcamTools/ToolPaint.py:442 +msgid "Rest Machining" +msgstr "Обработка остаточного припуска" + +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:290 +#: flatcamTools/ToolNCC.py:516 msgid "" "If checked, use 'rest machining'.\n" "Basically it will clear copper outside PCB features,\n" @@ -11352,7 +13003,8 @@ msgstr "" "больше не останется меди для очистки или больше не будет инструментов.\n" "Если флажок не установлен, используется стандартный алгоритм." -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:313 AppTools/ToolNCC.py:541 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:313 +#: flatcamTools/ToolNCC.py:541 msgid "" "Selection of area to be processed.\n" "- 'Itself' - the processing extent is based on the object that is " @@ -11369,29 +13021,40 @@ msgstr "" "- 'Референсный объект' - будет выполнять очистку от меди в области указанной " "другим объектом." -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:27 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:339 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:303 +msgid "Normal" +msgstr "Нормальный" + +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:340 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:304 +msgid "Progressive" +msgstr "Последовательный" + +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:341 +msgid "NCC Plotting" +msgstr "Прорисовка очистки от меди" + +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:343 +msgid "" +"- 'Normal' - normal plotting, done at the end of the NCC job\n" +"- 'Progressive' - after each shape is generated it will be plotted." +msgstr "" +"- 'Нормальный' - нормальное построение, выполненное в конце задания очистки " +"от меди \n" +"- 'Последовательный' - после создания каждой фигуры она будет нанесена на " +"график." + +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:27 msgid "Paint Tool Options" msgstr "Рисование" -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:33 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:33 msgid "Parameters:" msgstr "Параметры:" -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:107 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:116 -#, fuzzy -#| msgid "" -#| "Depth of cut into material. Negative value.\n" -#| "In FlatCAM units." -msgid "" -"Depth of cut into material. Negative value.\n" -"In application units." -msgstr "" -"Диаметр инструмента. Это значение (в текущих единицах FlatCAM) \n" -"ширины разреза в материале." - -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:247 -#: AppTools/ToolPaint.py:444 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:247 +#: flatcamTools/ToolPaint.py:445 msgid "" "If checked, use 'rest machining'.\n" "Basically it will clear copper outside PCB features,\n" @@ -11411,8 +13074,8 @@ msgstr "" "\n" "Если не проверено, используйте стандартный алгоритм." -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:260 -#: AppTools/ToolPaint.py:457 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:260 +#: flatcamTools/ToolPaint.py:458 msgid "" "Selection of area to be processed.\n" "- 'Polygon Selection' - left mouse click to add/remove polygons to be " @@ -11436,11 +13099,31 @@ msgstr "" "участка.\n" "указанным другим объектом." -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:27 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280 +#: flatcamTools/ToolPaint.py:486 flatcamTools/ToolPaint.py:942 +#: flatcamTools/ToolPaint.py:1432 tclCommands/TclCommandPaint.py:164 +msgid "Polygon Selection" +msgstr "Выбор полигона" + +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:305 +msgid "Paint Plotting" +msgstr "Прорисовка рисования" + +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:307 +msgid "" +"- 'Normal' - normal plotting, done at the end of the Paint job\n" +"- 'Progressive' - after each shape is generated it will be plotted." +msgstr "" +"- 'Нормальный' - нормальное построение, выполненное в конце задания " +"рисования\n" +"- 'Последовательный' - после создания каждой фигуры она будет нанесена на " +"график." + +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:27 msgid "Panelize Tool Options" msgstr "Панелизация" -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:33 +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:33 msgid "" "Create an object that contains an array of (x, y) elements,\n" "each element is a copy of the source object spaced\n" @@ -11450,13 +13133,13 @@ msgstr "" "каждый элемент является копией исходного объекта с интервалом\n" "на расстоянии X, Y расстояние друг от друга." -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:50 -#: AppTools/ToolPanelize.py:165 +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:50 +#: flatcamTools/ToolPanelize.py:163 msgid "Spacing cols" msgstr "Интервал столбцов" -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:52 -#: AppTools/ToolPanelize.py:167 +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:52 +#: flatcamTools/ToolPanelize.py:165 msgid "" "Spacing between columns of the desired panel.\n" "In current units." @@ -11464,13 +13147,13 @@ msgstr "" "Расстояние между столбцами нужной панели.\n" "В текущих единицах измерения." -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:64 -#: AppTools/ToolPanelize.py:177 +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:64 +#: flatcamTools/ToolPanelize.py:175 msgid "Spacing rows" msgstr "Интервал строк" -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:66 -#: AppTools/ToolPanelize.py:179 +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:66 +#: flatcamTools/ToolPanelize.py:177 msgid "" "Spacing between rows of the desired panel.\n" "In current units." @@ -11478,55 +13161,37 @@ msgstr "" "Расстояние между строками нужной панели.\n" "В текущих единицах измерения." -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:77 -#: AppTools/ToolPanelize.py:188 +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:77 +#: flatcamTools/ToolPanelize.py:186 msgid "Columns" msgstr "Столбцы" -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:79 -#: AppTools/ToolPanelize.py:190 +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:79 +#: flatcamTools/ToolPanelize.py:188 msgid "Number of columns of the desired panel" msgstr "Количество столбцов нужной панели" -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:89 -#: AppTools/ToolPanelize.py:198 +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:89 +#: flatcamTools/ToolPanelize.py:196 msgid "Rows" msgstr "Строки" -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:91 -#: AppTools/ToolPanelize.py:200 +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:91 +#: flatcamTools/ToolPanelize.py:198 msgid "Number of rows of the desired panel" msgstr "Количество строк нужной панели" -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:97 -#: AppTools/ToolAlignObjects.py:73 AppTools/ToolAlignObjects.py:109 -#: AppTools/ToolCalibration.py:196 AppTools/ToolCalibration.py:631 -#: AppTools/ToolCalibration.py:648 AppTools/ToolCalibration.py:807 -#: AppTools/ToolCalibration.py:815 AppTools/ToolCopperThieving.py:148 -#: AppTools/ToolCopperThieving.py:162 AppTools/ToolCopperThieving.py:608 -#: AppTools/ToolCutOut.py:91 AppTools/ToolDblSided.py:224 -#: AppTools/ToolFilm.py:68 AppTools/ToolFilm.py:91 AppTools/ToolImage.py:49 -#: AppTools/ToolImage.py:252 AppTools/ToolImage.py:273 -#: AppTools/ToolIsolation.py:465 AppTools/ToolIsolation.py:517 -#: AppTools/ToolIsolation.py:1281 AppTools/ToolNCC.py:96 -#: AppTools/ToolNCC.py:558 AppTools/ToolNCC.py:1318 AppTools/ToolPaint.py:501 -#: AppTools/ToolPaint.py:705 AppTools/ToolPanelize.py:116 -#: AppTools/ToolPanelize.py:210 AppTools/ToolPanelize.py:385 -#: AppTools/ToolPanelize.py:402 -msgid "Gerber" -msgstr "Gerber" - -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:98 -#: AppTools/ToolPanelize.py:211 +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:98 +#: flatcamTools/ToolPanelize.py:205 msgid "Geo" msgstr "Geometry" -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:99 -#: AppTools/ToolPanelize.py:212 +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:99 +#: flatcamTools/ToolPanelize.py:206 msgid "Panel Type" msgstr "Тип панели" -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:101 +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:101 msgid "" "Choose the type of object for the panel object:\n" "- Gerber\n" @@ -11536,12 +13201,12 @@ msgstr "" "- Gerber\n" "- Geometry" -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:110 +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:110 msgid "Constrain within" msgstr "Ограничить в пределах" -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:112 -#: AppTools/ToolPanelize.py:224 +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:112 +#: flatcamTools/ToolPanelize.py:218 msgid "" "Area define by DX and DY within to constrain the panel.\n" "DX and DY values are in current units.\n" @@ -11555,13 +13220,13 @@ msgstr "" "последняя панель будет иметь столько столбцов и строк, чтобы\n" "она полностью вписывалась в выбранную область." -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:125 -#: AppTools/ToolPanelize.py:236 +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:125 +#: flatcamTools/ToolPanelize.py:230 msgid "Width (DX)" msgstr "Ширина (DX)" -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:127 -#: AppTools/ToolPanelize.py:238 +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:127 +#: flatcamTools/ToolPanelize.py:232 msgid "" "The width (DX) within which the panel must fit.\n" "In current units." @@ -11569,13 +13234,13 @@ msgstr "" "Ширина (DX), в пределах которой должна поместиться панель.\n" "В текущих единицах измерения." -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:138 -#: AppTools/ToolPanelize.py:247 +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:138 +#: flatcamTools/ToolPanelize.py:241 msgid "Height (DY)" msgstr "Высота (DY)" -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:140 -#: AppTools/ToolPanelize.py:249 +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:140 +#: flatcamTools/ToolPanelize.py:243 msgid "" "The height (DY)within which the panel must fit.\n" "In current units." @@ -11583,11 +13248,11 @@ msgstr "" "Высота (DY), в пределах которой должна поместиться панель.\n" "В текущих единицах измерения." -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:27 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:27 msgid "SolderPaste Tool Options" msgstr "Паяльная паста" -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:33 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:33 msgid "" "A tool to create GCode for dispensing\n" "solder paste onto a PCB." @@ -11595,54 +13260,54 @@ msgstr "" "Инструмент для создания GCode для дозирования\n" "нанесения паяльной пасты на печатную плату." -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:54 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:54 msgid "New Nozzle Dia" msgstr "Новый диаметр сопла" -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:56 -#: AppTools/ToolSolderPaste.py:112 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:56 +#: flatcamTools/ToolSolderPaste.py:107 msgid "Diameter for the new Nozzle tool to add in the Tool Table" msgstr "" "Диаметр для нового инструмента сопла, который нужно добавить в таблице " "инструмента" -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:72 -#: AppTools/ToolSolderPaste.py:179 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:72 +#: flatcamTools/ToolSolderPaste.py:183 msgid "Z Dispense Start" msgstr "Z начала нанесения" -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:74 -#: AppTools/ToolSolderPaste.py:181 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:74 +#: flatcamTools/ToolSolderPaste.py:185 msgid "The height (Z) when solder paste dispensing starts." msgstr "Высота (Z), когда начинается выдача паяльной пасты." -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:85 -#: AppTools/ToolSolderPaste.py:191 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:85 +#: flatcamTools/ToolSolderPaste.py:195 msgid "Z Dispense" msgstr "Z нанесения" -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:87 -#: AppTools/ToolSolderPaste.py:193 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:87 +#: flatcamTools/ToolSolderPaste.py:197 msgid "The height (Z) when doing solder paste dispensing." msgstr "Высота (Z) при выполнении дозирования паяльной пасты." -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:98 -#: AppTools/ToolSolderPaste.py:203 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:98 +#: flatcamTools/ToolSolderPaste.py:207 msgid "Z Dispense Stop" msgstr "Z конца нанесения" -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:100 -#: AppTools/ToolSolderPaste.py:205 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:100 +#: flatcamTools/ToolSolderPaste.py:209 msgid "The height (Z) when solder paste dispensing stops." msgstr "Высота (Z) при остановке выдачи паяльной пасты." -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:111 -#: AppTools/ToolSolderPaste.py:215 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:111 +#: flatcamTools/ToolSolderPaste.py:219 msgid "Z Travel" msgstr "Z перемещения" -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:113 -#: AppTools/ToolSolderPaste.py:217 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:113 +#: flatcamTools/ToolSolderPaste.py:221 msgid "" "The height (Z) for travel between pads\n" "(without dispensing solder paste)." @@ -11650,18 +13315,18 @@ msgstr "" "Высота (Z) для перемещения между колодками\n" "(без дозирования паяльной пасты)." -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:125 -#: AppTools/ToolSolderPaste.py:228 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:125 +#: flatcamTools/ToolSolderPaste.py:232 msgid "Z Toolchange" msgstr "Z смены инструмента" -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:127 -#: AppTools/ToolSolderPaste.py:230 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:127 +#: flatcamTools/ToolSolderPaste.py:234 msgid "The height (Z) for tool (nozzle) change." msgstr "Высота (Z) для изменения инструмента (сопла)." -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:136 -#: AppTools/ToolSolderPaste.py:238 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:136 +#: flatcamTools/ToolSolderPaste.py:242 msgid "" "The X,Y location for tool (nozzle) change.\n" "The format is (x, y) where x and y are real numbers." @@ -11669,13 +13334,13 @@ msgstr "" "Положение X, Y для изменения инструмента (сопла).\n" "Формат (x, y), где x и y-действительные числа." -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:150 -#: AppTools/ToolSolderPaste.py:251 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:150 +#: flatcamTools/ToolSolderPaste.py:255 msgid "Feedrate (speed) while moving on the X-Y plane." msgstr "Скорость подачи при движении по плоскости X-Y." -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:163 -#: AppTools/ToolSolderPaste.py:263 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:163 +#: flatcamTools/ToolSolderPaste.py:267 msgid "" "Feedrate (speed) while moving vertically\n" "(on Z plane)." @@ -11683,12 +13348,12 @@ msgstr "" "Скорость подачи (скорость) при движении по вертикали\n" "(на плоскости Z)." -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:175 -#: AppTools/ToolSolderPaste.py:274 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:175 +#: flatcamTools/ToolSolderPaste.py:278 msgid "Feedrate Z Dispense" msgstr "Скорость подачи Z Диспенсер" -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:177 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:177 msgid "" "Feedrate (speed) while moving up vertically\n" "to Dispense position (on Z plane)." @@ -11696,13 +13361,13 @@ msgstr "" "Скорость подачи (скорость) при движении вверх по вертикали\n" "распределить положение (на плоскости Z)." -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:188 -#: AppTools/ToolSolderPaste.py:286 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:188 +#: flatcamTools/ToolSolderPaste.py:290 msgid "Spindle Speed FWD" msgstr "Скорость прямого вращения шпинделя" -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:190 -#: AppTools/ToolSolderPaste.py:288 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:190 +#: flatcamTools/ToolSolderPaste.py:292 msgid "" "The dispenser speed while pushing solder paste\n" "through the dispenser nozzle." @@ -11710,23 +13375,23 @@ msgstr "" "Скорость диспенсера при проталкивании паяльной пасты\n" "через форсунку диспенсера." -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:202 -#: AppTools/ToolSolderPaste.py:299 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:202 +#: flatcamTools/ToolSolderPaste.py:303 msgid "Dwell FWD" msgstr "Задержка В НАЧАЛЕ" -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:204 -#: AppTools/ToolSolderPaste.py:301 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:204 +#: flatcamTools/ToolSolderPaste.py:305 msgid "Pause after solder dispensing." msgstr "Пауза после выдачи паяльной пасты." -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:214 -#: AppTools/ToolSolderPaste.py:310 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:214 +#: flatcamTools/ToolSolderPaste.py:314 msgid "Spindle Speed REV" msgstr "Скорость обратного вращения шпинделя" -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:216 -#: AppTools/ToolSolderPaste.py:312 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:216 +#: flatcamTools/ToolSolderPaste.py:316 msgid "" "The dispenser speed while retracting solder paste\n" "through the dispenser nozzle." @@ -11734,13 +13399,13 @@ msgstr "" "Скорость диспенсера при втягивании паяльной пасты\n" "через форсунку диспенсера." -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:228 -#: AppTools/ToolSolderPaste.py:323 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:228 +#: flatcamTools/ToolSolderPaste.py:327 msgid "Dwell REV" msgstr "Задержка В КОНЦЕ" -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:230 -#: AppTools/ToolSolderPaste.py:325 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:230 +#: flatcamTools/ToolSolderPaste.py:329 msgid "" "Pause after solder paste dispenser retracted,\n" "to allow pressure equilibrium." @@ -11748,16 +13413,16 @@ msgstr "" "Пауза после того, как дозатор паяльной пасты будет убран,\n" "чтобы обеспечить равномерное выдавливание." -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:239 -#: AppTools/ToolSolderPaste.py:333 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:239 +#: flatcamTools/ToolSolderPaste.py:337 msgid "Files that control the GCode generation." msgstr "Файлы контролирующие генерацию GCode." -#: AppGUI/preferences/tools/ToolsSubPrefGroupUI.py:27 +#: flatcamGUI/preferences/tools/ToolsSubPrefGroupUI.py:27 msgid "Substractor Tool Options" msgstr "Параметры инструмента Substractor" -#: AppGUI/preferences/tools/ToolsSubPrefGroupUI.py:33 +#: flatcamGUI/preferences/tools/ToolsSubPrefGroupUI.py:33 msgid "" "A tool to substract one Gerber or Geometry object\n" "from another of the same type." @@ -11765,47 +13430,44 @@ msgstr "" "Инструмент для вычитания одного объекта Gerber или Geometry\n" "от другого того же типа." -#: AppGUI/preferences/tools/ToolsSubPrefGroupUI.py:38 AppTools/ToolSub.py:160 +#: flatcamGUI/preferences/tools/ToolsSubPrefGroupUI.py:38 +#: flatcamTools/ToolSub.py:155 msgid "Close paths" msgstr "Закрыть пути" -#: AppGUI/preferences/tools/ToolsSubPrefGroupUI.py:39 +#: flatcamGUI/preferences/tools/ToolsSubPrefGroupUI.py:39 msgid "" "Checking this will close the paths cut by the Geometry substractor object." msgstr "Проверка этого закроет пути, прорезанные объектом субметора Геометрия." -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:27 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:27 msgid "Transform Tool Options" msgstr "Трансформация" -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:33 -#, fuzzy -#| msgid "" -#| "Various transformations that can be applied\n" -#| "on a FlatCAM object." +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:33 msgid "" "Various transformations that can be applied\n" -"on a application object." +"on a FlatCAM object." msgstr "" "Различные преобразования, которые могут быть применены\n" "на объекте FlatCAM." -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:64 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:64 msgid "Skew" msgstr "Наклон" -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:105 -#: AppTools/ToolTransform.py:150 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:105 +#: flatcamTools/ToolTransform.py:150 msgid "Factor for scaling on X axis." msgstr "Коэффициент масштабирования по оси X." -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:118 -#: AppTools/ToolTransform.py:170 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:118 +#: flatcamTools/ToolTransform.py:170 msgid "Factor for scaling on Y axis." msgstr "Коэффициент масштабирования по оси Y." -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:126 -#: AppTools/ToolTransform.py:191 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:126 +#: flatcamTools/ToolTransform.py:191 msgid "" "Scale the selected object(s)\n" "using the Scale_X factor for both axis." @@ -11813,8 +13475,8 @@ msgstr "" "Масштабирует выбранный объект(ы)\n" "используя \"Коэффициент X\" для обеих осей." -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:134 -#: AppTools/ToolTransform.py:198 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:134 +#: flatcamTools/ToolTransform.py:198 msgid "" "Scale the selected object(s)\n" "using the origin reference when checked,\n" @@ -11826,39 +13488,39 @@ msgstr "" "или центр самой большой ограничительной рамки \n" "выделенных объектов, если флажок снят." -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:150 -#: AppTools/ToolTransform.py:217 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:150 +#: flatcamTools/ToolTransform.py:217 msgid "X val" msgstr "Значение X" -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:152 -#: AppTools/ToolTransform.py:219 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:152 +#: flatcamTools/ToolTransform.py:219 msgid "Distance to offset on X axis. In current units." msgstr "Расстояние смещения по оси X. В текущих единицах." -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:163 -#: AppTools/ToolTransform.py:237 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:163 +#: flatcamTools/ToolTransform.py:237 msgid "Y val" msgstr "Значение Y" -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:165 -#: AppTools/ToolTransform.py:239 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:165 +#: flatcamTools/ToolTransform.py:239 msgid "Distance to offset on Y axis. In current units." msgstr "Расстояние смещения по оси Y. В текущих единицах." -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:171 -#: AppTools/ToolDblSided.py:67 AppTools/ToolDblSided.py:95 -#: AppTools/ToolDblSided.py:125 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:171 +#: flatcamTools/ToolDblSided.py:67 flatcamTools/ToolDblSided.py:95 +#: flatcamTools/ToolDblSided.py:125 msgid "Mirror" msgstr "Отразить" -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:175 -#: AppTools/ToolTransform.py:283 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:175 +#: flatcamTools/ToolTransform.py:283 msgid "Mirror Reference" msgstr "Точка зеркалтрования" -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:177 -#: AppTools/ToolTransform.py:285 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:177 +#: flatcamTools/ToolTransform.py:285 msgid "" "Flip the selected object(s)\n" "around the point in Point Entry Field.\n" @@ -11880,11 +13542,11 @@ msgstr "" "Или введите координаты в формате (x, y) в поле\n" "Поле ввода точки и нажмите кнопку флип на X(Y)" -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:188 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:188 msgid "Mirror Reference point" msgstr "Точка зеркалтрования" -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:190 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:190 msgid "" "Coordinates in format (x, y) used as reference for mirroring.\n" "The 'x' in (x, y) will be used when using Flip on X and\n" @@ -11895,14 +13557,14 @@ msgstr "" "'x' в (x, y) будет использоваться при отражении по X и\n" "'y' в (x, y) будет использоваться при отражении по Y" -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:203 -#: AppTools/ToolDistance.py:505 AppTools/ToolDistanceMin.py:286 -#: AppTools/ToolTransform.py:332 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:203 +#: flatcamTools/ToolDistance.py:496 flatcamTools/ToolDistanceMin.py:287 +#: flatcamTools/ToolTransform.py:332 msgid "Distance" msgstr "Расстояние" -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:205 -#: AppTools/ToolTransform.py:334 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:205 +#: flatcamTools/ToolTransform.py:334 msgid "" "A positive value will create the effect of dilation,\n" "while a negative value will create the effect of erosion.\n" @@ -11914,8 +13576,8 @@ msgstr "" "Каждый геометрический элемент объекта будет увеличен\n" "или уменьшается с помощью \"расстояния\"." -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:222 -#: AppTools/ToolTransform.py:359 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:222 +#: flatcamTools/ToolTransform.py:359 msgid "" "A positive value will create the effect of dilation,\n" "while a negative value will create the effect of erosion.\n" @@ -11929,8 +13591,8 @@ msgstr "" "или уменьшен, чтобы соответствовать \"Значению\". Значение в процентах\n" "исходного размера." -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:241 -#: AppTools/ToolTransform.py:385 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:241 +#: flatcamTools/ToolTransform.py:385 msgid "" "If checked then the buffer will surround the buffered shape,\n" "every corner will be rounded.\n" @@ -11942,31 +13604,38 @@ msgstr "" "Если не проверить, то буфер будет следовать точной геометрии\n" "буферизованной формы." -#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:27 +#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:27 msgid "Autocompleter Keywords" msgstr "Ключевые слова автозаполнения" -#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:30 -#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:40 -#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:30 -#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:30 +#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:30 +#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:40 +#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:30 +#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:30 msgid "Restore" msgstr "Восстановить" -#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:31 +#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:31 msgid "Restore the autocompleter keywords list to the default state." msgstr "" "Восстановление списока ключевых слов автозаполнения в состояние по умолчанию." -#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:33 +#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:32 +#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:42 +#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:32 +#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:32 +msgid "Delete All" +msgstr "Удалить все" + +#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:33 msgid "Delete all autocompleter keywords from the list." msgstr "Удаление всех ключевых слов автозаполнения из списка." -#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:41 +#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:41 msgid "Keywords list" msgstr "Список ключевых слов" -#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:43 +#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:43 msgid "" "List of keywords used by\n" "the autocompleter in FlatCAM.\n" @@ -11978,58 +13647,58 @@ msgstr "" "Автозаполнение установлено\n" "в редакторе кода и для Tcl Shell." -#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:64 -#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:73 -#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:63 -#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:62 +#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:64 +#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:73 +#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:63 +#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:62 msgid "Extension" msgstr "Расширение" -#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:65 +#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:65 msgid "A keyword to be added or deleted to the list." msgstr "Ключевое слово, которое будет добавлено или удалено из списка." -#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:73 +#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:73 msgid "Add keyword" msgstr "Добавить ключевое слово" -#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:74 +#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:74 msgid "Add a keyword to the list" msgstr "Добавляет ключевое слово в список" -#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:75 +#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:75 msgid "Delete keyword" msgstr "Удалить ключевое слово" -#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:76 +#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:76 msgid "Delete a keyword from the list" msgstr "Удаляет ключевое слово из списка" -#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:27 +#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:27 msgid "Excellon File associations" msgstr "Ассоциации файлов Excellon" -#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:41 -#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:31 -#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:31 +#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:41 +#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:31 +#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:31 msgid "Restore the extension list to the default state." msgstr "Восстановление списка расширений в состояние по умолчанию." -#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:43 -#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:33 -#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:33 +#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:43 +#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:33 +#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:33 msgid "Delete all extensions from the list." msgstr "Удаляет все расширения из списка." -#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:51 -#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:41 -#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:41 +#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:51 +#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:41 +#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:41 msgid "Extensions list" msgstr "Список расширений" -#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:53 -#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:43 -#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:43 +#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:53 +#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:43 +#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:43 msgid "" "List of file extensions to be\n" "associated with FlatCAM." @@ -12037,45 +13706,45 @@ msgstr "" "Список расширений файлов, которые будут\n" "связаны с FlatCAM." -#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:74 -#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:64 -#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:63 +#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:74 +#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:64 +#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:63 msgid "A file extension to be added or deleted to the list." msgstr "Расширение файла для добавления или удаления из списка." -#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:82 -#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:72 -#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:71 +#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:82 +#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:72 +#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:71 msgid "Add Extension" msgstr "Добавить расширение" -#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:83 -#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:73 -#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:72 +#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:83 +#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:73 +#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:72 msgid "Add a file extension to the list" msgstr "Добавляет расширение файла в список" -#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:84 -#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:74 -#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:73 +#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:84 +#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:74 +#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:73 msgid "Delete Extension" msgstr "Удалить расширение" -#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:85 -#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:75 -#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:74 +#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:85 +#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:75 +#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:74 msgid "Delete a file extension from the list" msgstr "Удаляет расширение файла из списка" -#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:92 -#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:82 -#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:81 +#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:92 +#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:82 +#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:81 msgid "Apply Association" msgstr "Ассоциировать" -#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:93 -#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:83 -#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:82 +#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:93 +#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:83 +#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:82 msgid "" "Apply the file associations between\n" "FlatCAM and the files with above extensions.\n" @@ -12087,101 +13756,54 @@ msgstr "" "Они будут активны после следующего входа в систему.\n" "Эта работает только в Windows." -#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:27 +#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:27 msgid "GCode File associations" msgstr "Ассоциации файлов GCode" -#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:27 +#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:27 msgid "Gerber File associations" msgstr "Ассоциации файлов Gerber" -#: AppObjects/AppObject.py:134 -#, python-brace-format -msgid "" -"Object ({kind}) failed because: {error} \n" -"\n" -msgstr "" -"Объект ({kind}) не выполнен, потому что: {error} \n" -"\n" - -#: AppObjects/AppObject.py:149 -msgid "Converting units to " -msgstr "Конвертирование единиц в " - -#: AppObjects/AppObject.py:254 -msgid "CREATE A NEW FLATCAM TCL SCRIPT" -msgstr "СОЗДАЙТЕ НОВЫЙ TCL СЦЕНАРИЙ FLATCAM" - -#: AppObjects/AppObject.py:255 -msgid "TCL Tutorial is here" -msgstr "Учебное пособие по TCL здесь" - -#: AppObjects/AppObject.py:257 -msgid "FlatCAM commands list" -msgstr "Список команд FlatCAM" - -#: AppObjects/AppObject.py:258 -msgid "" -"Type >help< followed by Run Code for a list of FlatCAM Tcl Commands " -"(displayed in Tcl Shell)." -msgstr "" -"Введите> help <, а затем Run Code для получения списка команд FlatCAM Tcl " -"(отображается в оболочке Tcl)." - -#: AppObjects/AppObject.py:304 AppObjects/AppObject.py:310 -#: AppObjects/AppObject.py:316 AppObjects/AppObject.py:322 -#: AppObjects/AppObject.py:328 AppObjects/AppObject.py:334 -msgid "created/selected" -msgstr "создан / выбрана" - -#: AppObjects/FlatCAMCNCJob.py:429 AppObjects/FlatCAMDocument.py:71 -#: AppObjects/FlatCAMScript.py:82 +#: flatcamObjects/FlatCAMCNCJob.py:429 flatcamObjects/FlatCAMDocument.py:71 +#: flatcamObjects/FlatCAMScript.py:82 msgid "Basic" msgstr "Базовый" -#: AppObjects/FlatCAMCNCJob.py:435 AppObjects/FlatCAMDocument.py:75 -#: AppObjects/FlatCAMScript.py:86 +#: flatcamObjects/FlatCAMCNCJob.py:435 flatcamObjects/FlatCAMDocument.py:75 +#: flatcamObjects/FlatCAMScript.py:86 msgid "Advanced" msgstr "Расширенный" -#: AppObjects/FlatCAMCNCJob.py:478 +#: flatcamObjects/FlatCAMCNCJob.py:478 msgid "Plotting..." msgstr "Построение..." -#: AppObjects/FlatCAMCNCJob.py:517 AppTools/ToolSolderPaste.py:1511 -#, fuzzy -#| msgid "Export PNG cancelled." -msgid "Export cancelled ..." -msgstr "Экспорт PNG отменён." +#: flatcamObjects/FlatCAMCNCJob.py:507 flatcamObjects/FlatCAMCNCJob.py:512 +#: flatcamTools/ToolSolderPaste.py:1499 +msgid "Export Machine Code ..." +msgstr "Экспорт GCode ..." -#: AppObjects/FlatCAMCNCJob.py:538 -#, fuzzy -#| msgid "PDF file saved to" -msgid "File saved to" -msgstr "Файл PDF сохранён в" +#: flatcamObjects/FlatCAMCNCJob.py:517 flatcamTools/ToolSolderPaste.py:1503 +msgid "Export Machine Code cancelled ..." +msgstr "Экспорт Machine Code отменен ..." -#: AppObjects/FlatCAMCNCJob.py:548 AppObjects/FlatCAMScript.py:134 -#: App_Main.py:7301 -msgid "Loading..." -msgstr "Загрузка..." +#: flatcamObjects/FlatCAMCNCJob.py:538 +msgid "Machine Code file saved to" +msgstr "Файл Machine Code сохранён в" -#: AppObjects/FlatCAMCNCJob.py:562 App_Main.py:7398 -msgid "Code Editor" -msgstr "Редактор кода" - -#: AppObjects/FlatCAMCNCJob.py:599 AppTools/ToolCalibration.py:1097 +#: flatcamObjects/FlatCAMCNCJob.py:599 flatcamTools/ToolCalibration.py:1097 msgid "Loaded Machine Code into Code Editor" msgstr "Машинный код загружен в редактор кода" -#: AppObjects/FlatCAMCNCJob.py:740 +#: flatcamObjects/FlatCAMCNCJob.py:740 msgid "This CNCJob object can't be processed because it is a" msgstr "CNCJob объект не может быть обработан, так как" -#: AppObjects/FlatCAMCNCJob.py:742 +#: flatcamObjects/FlatCAMCNCJob.py:742 msgid "CNCJob object" msgstr "CNCJob object" -#: AppObjects/FlatCAMCNCJob.py:922 +#: flatcamObjects/FlatCAMCNCJob.py:922 msgid "" "G-code does not have a G94 code and we will not include the code in the " "'Prepend to GCode' text box" @@ -12189,146 +13811,145 @@ msgstr "" "G-код не имеет кода G94, и мы не будем включать этот код в текстовое поле " "«Готовьтесь к G-код»" -#: AppObjects/FlatCAMCNCJob.py:933 +#: flatcamObjects/FlatCAMCNCJob.py:933 msgid "Cancelled. The Toolchange Custom code is enabled but it's empty." msgstr "Отмена. Пользовательский код смены инструмента включен, но он пуст." -#: AppObjects/FlatCAMCNCJob.py:938 +#: flatcamObjects/FlatCAMCNCJob.py:938 msgid "Toolchange G-code was replaced by a custom code." msgstr "G-code смены инструмента был заменен на пользовательский код." -#: AppObjects/FlatCAMCNCJob.py:986 AppObjects/FlatCAMCNCJob.py:995 +#: flatcamObjects/FlatCAMCNCJob.py:986 flatcamObjects/FlatCAMCNCJob.py:996 msgid "" "The used preprocessor file has to have in it's name: 'toolchange_custom'" msgstr "Используемый файл постпроцессора должен иметь имя: 'toolchange_custom'" -#: AppObjects/FlatCAMCNCJob.py:998 +#: flatcamObjects/FlatCAMCNCJob.py:999 msgid "There is no preprocessor file." msgstr "Это не файл постпроцессора." -#: AppObjects/FlatCAMDocument.py:175 +#: flatcamObjects/FlatCAMDocument.py:175 msgid "Document Editor" msgstr "Редактор Document" -#: AppObjects/FlatCAMExcellon.py:537 AppObjects/FlatCAMExcellon.py:856 -#: AppObjects/FlatCAMGeometry.py:380 AppObjects/FlatCAMGeometry.py:861 -#: AppTools/ToolIsolation.py:1051 AppTools/ToolIsolation.py:1185 -#: AppTools/ToolNCC.py:811 AppTools/ToolNCC.py:1214 AppTools/ToolPaint.py:778 -#: AppTools/ToolPaint.py:1190 +#: flatcamObjects/FlatCAMExcellon.py:514 flatcamObjects/FlatCAMExcellon.py:746 +#: flatcamObjects/FlatCAMGeometry.py:323 flatcamObjects/FlatCAMGeometry.py:795 +#: flatcamTools/ToolNCC.py:811 flatcamTools/ToolNCC.py:1196 +#: flatcamTools/ToolPaint.py:779 flatcamTools/ToolPaint.py:1171 msgid "Multiple Tools" msgstr "Несколько инструментов" -#: AppObjects/FlatCAMExcellon.py:836 +#: flatcamObjects/FlatCAMExcellon.py:726 msgid "No Tool Selected" msgstr "Инструмент не выбран" -#: AppObjects/FlatCAMExcellon.py:1234 AppObjects/FlatCAMExcellon.py:1348 -#: AppObjects/FlatCAMExcellon.py:1535 +#: flatcamObjects/FlatCAMExcellon.py:1076 +#: flatcamObjects/FlatCAMExcellon.py:1168 +#: flatcamObjects/FlatCAMExcellon.py:1355 msgid "Please select one or more tools from the list and try again." msgstr "" "Пожалуйста, выберите один или несколько инструментов из списка и попробуйте " "еще раз." -#: AppObjects/FlatCAMExcellon.py:1241 +#: flatcamObjects/FlatCAMExcellon.py:1083 msgid "Milling tool for DRILLS is larger than hole size. Cancelled." msgstr "Сверло больше, чем размер отверстия. Отмена." -#: AppObjects/FlatCAMExcellon.py:1265 AppObjects/FlatCAMExcellon.py:1368 -#: AppObjects/FlatCAMExcellon.py:1553 tclCommands/TclCommandDrillcncjob.py:195 +#: flatcamObjects/FlatCAMExcellon.py:1098 +#: flatcamObjects/FlatCAMExcellon.py:1188 +#: flatcamObjects/FlatCAMExcellon.py:1373 +#: tclCommands/TclCommandDrillcncjob.py:193 msgid "Tool_nr" msgstr "№ инструмента" -#: AppObjects/FlatCAMExcellon.py:1265 AppObjects/FlatCAMExcellon.py:1368 -#: AppObjects/FlatCAMExcellon.py:1553 tclCommands/TclCommandDrillcncjob.py:195 +#: flatcamObjects/FlatCAMExcellon.py:1098 +#: flatcamObjects/FlatCAMExcellon.py:1188 +#: flatcamObjects/FlatCAMExcellon.py:1373 +#: tclCommands/TclCommandDrillcncjob.py:193 msgid "Drills_Nr" msgstr "№ отверстия" -#: AppObjects/FlatCAMExcellon.py:1265 AppObjects/FlatCAMExcellon.py:1368 -#: AppObjects/FlatCAMExcellon.py:1553 tclCommands/TclCommandDrillcncjob.py:195 +#: flatcamObjects/FlatCAMExcellon.py:1098 +#: flatcamObjects/FlatCAMExcellon.py:1188 +#: flatcamObjects/FlatCAMExcellon.py:1373 +#: tclCommands/TclCommandDrillcncjob.py:193 msgid "Slots_Nr" msgstr "№ паза" -#: AppObjects/FlatCAMExcellon.py:1357 +#: flatcamObjects/FlatCAMExcellon.py:1177 msgid "Milling tool for SLOTS is larger than hole size. Cancelled." msgstr "Инструмент для прорезания пазов больше, чем размер отверстия. Отмена." -#: AppObjects/FlatCAMExcellon.py:1461 AppObjects/FlatCAMGeometry.py:1636 +#: flatcamObjects/FlatCAMExcellon.py:1281 +#: flatcamObjects/FlatCAMGeometry.py:1571 msgid "Focus Z" msgstr "Фокус Z" -#: AppObjects/FlatCAMExcellon.py:1480 AppObjects/FlatCAMGeometry.py:1655 +#: flatcamObjects/FlatCAMExcellon.py:1300 +#: flatcamObjects/FlatCAMGeometry.py:1590 msgid "Laser Power" msgstr "Мощность лазера" -#: AppObjects/FlatCAMExcellon.py:1610 AppObjects/FlatCAMGeometry.py:2088 -#: AppObjects/FlatCAMGeometry.py:2092 AppObjects/FlatCAMGeometry.py:2243 +#: flatcamObjects/FlatCAMExcellon.py:1430 +#: flatcamObjects/FlatCAMGeometry.py:2027 +#: flatcamObjects/FlatCAMGeometry.py:2031 +#: flatcamObjects/FlatCAMGeometry.py:2176 msgid "Generating CNC Code" msgstr "Генерация кода ЧПУ" -#: AppObjects/FlatCAMExcellon.py:1663 AppObjects/FlatCAMGeometry.py:2553 -#, fuzzy -#| msgid "Delete failed. Select a tool to delete." -msgid "Delete failed. There are no exclusion areas to delete." -msgstr "Ошибка удаления. Выберите инструмент для удаления." - -#: AppObjects/FlatCAMExcellon.py:1680 AppObjects/FlatCAMGeometry.py:2570 -#, fuzzy -#| msgid "Failed. Nothing selected." -msgid "Delete failed. Nothing is selected." -msgstr "Ошибка. Ничего не выбрано." - -#: AppObjects/FlatCAMExcellon.py:1945 AppTools/ToolIsolation.py:1253 -#: AppTools/ToolNCC.py:918 AppTools/ToolPaint.py:843 +#: flatcamObjects/FlatCAMExcellon.py:1620 flatcamTools/ToolNCC.py:918 +#: flatcamTools/ToolPaint.py:844 msgid "Current Tool parameters were applied to all tools." msgstr "Применить параметры ко всем инструментам." -#: AppObjects/FlatCAMGeometry.py:124 AppObjects/FlatCAMGeometry.py:1298 -#: AppObjects/FlatCAMGeometry.py:1299 AppObjects/FlatCAMGeometry.py:1308 +#: flatcamObjects/FlatCAMGeometry.py:124 flatcamObjects/FlatCAMGeometry.py:1235 +#: flatcamObjects/FlatCAMGeometry.py:1236 +#: flatcamObjects/FlatCAMGeometry.py:1245 msgid "Iso" msgstr "Изоляция" -#: AppObjects/FlatCAMGeometry.py:124 AppObjects/FlatCAMGeometry.py:522 -#: AppObjects/FlatCAMGeometry.py:920 AppObjects/FlatCAMGerber.py:565 -#: AppObjects/FlatCAMGerber.py:708 AppTools/ToolCutOut.py:727 -#: AppTools/ToolCutOut.py:923 AppTools/ToolCutOut.py:1083 -#: AppTools/ToolIsolation.py:1842 AppTools/ToolIsolation.py:1979 -#: AppTools/ToolIsolation.py:2150 +#: flatcamObjects/FlatCAMGeometry.py:124 flatcamObjects/FlatCAMGeometry.py:464 +#: flatcamObjects/FlatCAMGeometry.py:854 flatcamObjects/FlatCAMGerber.py:891 +#: flatcamObjects/FlatCAMGerber.py:1039 flatcamTools/ToolCutOut.py:690 +#: flatcamTools/ToolCutOut.py:886 flatcamTools/ToolCutOut.py:1046 msgid "Rough" msgstr "Грубый" -#: AppObjects/FlatCAMGeometry.py:124 +#: flatcamObjects/FlatCAMGeometry.py:124 msgid "Finish" msgstr "Конец" -#: AppObjects/FlatCAMGeometry.py:557 +#: flatcamObjects/FlatCAMGeometry.py:499 msgid "Add from Tool DB" msgstr "Добавить инструмент из БД" -#: AppObjects/FlatCAMGeometry.py:939 +#: flatcamObjects/FlatCAMGeometry.py:873 msgid "Tool added in Tool Table." msgstr "Инструмент добавлен в таблицу инструментов." -#: AppObjects/FlatCAMGeometry.py:1048 AppObjects/FlatCAMGeometry.py:1057 +#: flatcamObjects/FlatCAMGeometry.py:982 flatcamObjects/FlatCAMGeometry.py:991 msgid "Failed. Select a tool to copy." msgstr "Ошибка. Выберите инструмент для копирования." -#: AppObjects/FlatCAMGeometry.py:1086 +#: flatcamObjects/FlatCAMGeometry.py:1020 msgid "Tool was copied in Tool Table." msgstr "Инструмент скопирован в таблицу инструментов." -#: AppObjects/FlatCAMGeometry.py:1113 +#: flatcamObjects/FlatCAMGeometry.py:1047 msgid "Tool was edited in Tool Table." msgstr "Инструмент был изменён в таблице инструментов." -#: AppObjects/FlatCAMGeometry.py:1142 AppObjects/FlatCAMGeometry.py:1151 +#: flatcamObjects/FlatCAMGeometry.py:1076 +#: flatcamObjects/FlatCAMGeometry.py:1085 msgid "Failed. Select a tool to delete." msgstr "Ошибка. Выберите инструмент для удаления." -#: AppObjects/FlatCAMGeometry.py:1175 +#: flatcamObjects/FlatCAMGeometry.py:1109 msgid "Tool was deleted in Tool Table." msgstr "Инструмент был удален из таблицы инструментов." -#: AppObjects/FlatCAMGeometry.py:1212 AppObjects/FlatCAMGeometry.py:1221 +#: flatcamObjects/FlatCAMGeometry.py:1146 +#: flatcamObjects/FlatCAMGeometry.py:1156 msgid "" "Disabled because the tool is V-shape.\n" "For V-shape tools the depth of cut is\n" @@ -12347,19 +13968,20 @@ msgstr "" "Примечание: нулевое значение означает, что Инструмент Dia = 'Диа V-" "наконечника'" -#: AppObjects/FlatCAMGeometry.py:1708 +#: flatcamObjects/FlatCAMGeometry.py:1643 msgid "This Geometry can't be processed because it is" msgstr "Эта Geometry не может быть обработана, так как это" -#: AppObjects/FlatCAMGeometry.py:1708 +#: flatcamObjects/FlatCAMGeometry.py:1643 msgid "geometry" msgstr "геометрия" -#: AppObjects/FlatCAMGeometry.py:1749 +#: flatcamObjects/FlatCAMGeometry.py:1684 msgid "Failed. No tool selected in the tool table ..." msgstr "Ошибка. Инструмент не выбран в таблице инструментов ..." -#: AppObjects/FlatCAMGeometry.py:1847 AppObjects/FlatCAMGeometry.py:1997 +#: flatcamObjects/FlatCAMGeometry.py:1786 +#: flatcamObjects/FlatCAMGeometry.py:1936 msgid "" "Tool Offset is selected in Tool Table but no value is provided.\n" "Add a Tool Offset or change the Offset Type." @@ -12367,47 +13989,53 @@ msgstr "" "Смещение выбранного в таблице инструментов инструмента не указано.\n" "Добавьте смещение инструмента или измените тип смещения." -#: AppObjects/FlatCAMGeometry.py:1913 AppObjects/FlatCAMGeometry.py:2059 +#: flatcamObjects/FlatCAMGeometry.py:1852 +#: flatcamObjects/FlatCAMGeometry.py:1998 msgid "G-Code parsing in progress..." msgstr "Разбор G-кода ..." -#: AppObjects/FlatCAMGeometry.py:1915 AppObjects/FlatCAMGeometry.py:2061 +#: flatcamObjects/FlatCAMGeometry.py:1854 +#: flatcamObjects/FlatCAMGeometry.py:2000 msgid "G-Code parsing finished..." msgstr "Разбор G-кода завершен..." -#: AppObjects/FlatCAMGeometry.py:1923 +#: flatcamObjects/FlatCAMGeometry.py:1862 msgid "Finished G-Code processing" msgstr "Закончена обработка G-кода" -#: AppObjects/FlatCAMGeometry.py:1925 AppObjects/FlatCAMGeometry.py:2073 +#: flatcamObjects/FlatCAMGeometry.py:1864 +#: flatcamObjects/FlatCAMGeometry.py:2012 msgid "G-Code processing failed with error" msgstr "Обработка G-кода завершилась ошибкой" -#: AppObjects/FlatCAMGeometry.py:1967 AppTools/ToolSolderPaste.py:1309 +#: flatcamObjects/FlatCAMGeometry.py:1906 flatcamTools/ToolSolderPaste.py:1301 msgid "Cancelled. Empty file, it has no geometry" msgstr "Отмена. Пустой файл, он не имеет геометрии" -#: AppObjects/FlatCAMGeometry.py:2071 AppObjects/FlatCAMGeometry.py:2238 +#: flatcamObjects/FlatCAMGeometry.py:2010 +#: flatcamObjects/FlatCAMGeometry.py:2171 msgid "Finished G-Code processing..." msgstr "Разбор G-кода завершен..." -#: AppObjects/FlatCAMGeometry.py:2090 AppObjects/FlatCAMGeometry.py:2094 -#: AppObjects/FlatCAMGeometry.py:2245 +#: flatcamObjects/FlatCAMGeometry.py:2029 +#: flatcamObjects/FlatCAMGeometry.py:2033 +#: flatcamObjects/FlatCAMGeometry.py:2178 msgid "CNCjob created" msgstr "CNCjob создан" -#: AppObjects/FlatCAMGeometry.py:2276 AppObjects/FlatCAMGeometry.py:2285 -#: AppParsers/ParseGerber.py:1866 AppParsers/ParseGerber.py:1876 +#: flatcamObjects/FlatCAMGeometry.py:2209 +#: flatcamObjects/FlatCAMGeometry.py:2218 flatcamParsers/ParseGerber.py:1867 +#: flatcamParsers/ParseGerber.py:1877 msgid "Scale factor has to be a number: integer or float." msgstr "" "Коэффициент масштабирования должен быть числом: целочисленным или с " "плавающей запятой." -#: AppObjects/FlatCAMGeometry.py:2348 +#: flatcamObjects/FlatCAMGeometry.py:2281 msgid "Geometry Scale done." msgstr "Масштабирование Geometry выполнено." -#: AppObjects/FlatCAMGeometry.py:2365 AppParsers/ParseGerber.py:1992 +#: flatcamObjects/FlatCAMGeometry.py:2298 flatcamParsers/ParseGerber.py:1993 msgid "" "An (x,y) pair of values are needed. Probable you entered only one value in " "the Offset field." @@ -12415,11 +14043,11 @@ msgstr "" "Необходима пара значений (x,y). Возможно, вы ввели только одно значение в " "поле \"Смещение\"." -#: AppObjects/FlatCAMGeometry.py:2421 +#: flatcamObjects/FlatCAMGeometry.py:2354 msgid "Geometry Offset done." msgstr "Смещение Geometry выполнено." -#: AppObjects/FlatCAMGeometry.py:2450 +#: flatcamObjects/FlatCAMGeometry.py:2383 msgid "" "The Toolchange X,Y field in Edit -> Preferences has to be in the format (x, " "y)\n" @@ -12429,95 +14057,144 @@ msgstr "" "y)\n" "но теперь есть только одно значение, а не два." -#: AppObjects/FlatCAMGerber.py:388 AppTools/ToolIsolation.py:1577 +#: flatcamObjects/FlatCAMGeometry.py:2577 +#: flatcamTools/ToolCopperThieving.py:769 flatcamTools/ToolNCC.py:1648 +msgid "Click the start point of the area." +msgstr "Нажмите на начальную точку области." + +#: flatcamObjects/FlatCAMGeometry.py:2619 +msgid "Click the end point of the area." +msgstr "Нажмите на конечную точку области." + +#: flatcamObjects/FlatCAMGeometry.py:2625 +#: flatcamObjects/FlatCAMGeometry.py:2677 +#: flatcamTools/ToolCopperThieving.py:826 flatcamTools/ToolNCC.py:1710 +#: flatcamTools/ToolNCC.py:1762 flatcamTools/ToolPaint.py:1606 +#: flatcamTools/ToolPaint.py:1657 +msgid "Zone added. Click to start adding next zone or right click to finish." +msgstr "Зона добавлена. Щелкните правой кнопкой мыши для завершения." + +#: flatcamObjects/FlatCAMGeometry.py:2729 +msgid "Cancelled. Area exclusion drawing was interrupted." +msgstr "Отменено. Рисование зоны исключения было прервано." + +#: flatcamObjects/FlatCAMGerber.py:494 msgid "Buffering solid geometry" msgstr "Буферизация solid геометрии" -#: AppObjects/FlatCAMGerber.py:397 AppTools/ToolIsolation.py:1599 +#: flatcamObjects/FlatCAMGerber.py:503 msgid "Done" msgstr "Готово" -#: AppObjects/FlatCAMGerber.py:423 AppObjects/FlatCAMGerber.py:449 +#: flatcamObjects/FlatCAMGerber.py:529 flatcamObjects/FlatCAMGerber.py:555 msgid "Operation could not be done." msgstr "Операция не может быть выполнена." -#: AppObjects/FlatCAMGerber.py:581 AppObjects/FlatCAMGerber.py:655 -#: AppTools/ToolIsolation.py:1805 AppTools/ToolIsolation.py:2126 -#: AppTools/ToolNCC.py:2117 AppTools/ToolNCC.py:3197 AppTools/ToolNCC.py:3576 +#: flatcamObjects/FlatCAMGerber.py:572 +msgid "Isolating..." +msgstr "Изоляция..." + +#: flatcamObjects/FlatCAMGerber.py:631 +msgid "Click on a polygon to isolate it." +msgstr "Нажмите на полигон, чтобы изолировать его." + +#: flatcamObjects/FlatCAMGerber.py:670 flatcamObjects/FlatCAMGerber.py:774 +#: flatcamTools/ToolPaint.py:1516 +msgid "Added polygon" +msgstr "Добавленный полигон" + +#: flatcamObjects/FlatCAMGerber.py:671 flatcamObjects/FlatCAMGerber.py:776 +msgid "Click to add next polygon or right click to start isolation." +msgstr "" +"Щелкните, чтобы добавить следующий полигон, или щелкните правой кнопкой " +"мыши, чтобы начать изоляцию." + +#: flatcamObjects/FlatCAMGerber.py:683 flatcamTools/ToolPaint.py:1530 +msgid "Removed polygon" +msgstr "Удалённый полигон" + +#: flatcamObjects/FlatCAMGerber.py:684 +msgid "Click to add/remove next polygon or right click to start isolation." +msgstr "" +"Щелкните, чтобы добавить/удалить следующий полигон, или щелкните правой " +"кнопкой мыши, чтобы начать изоляцию." + +#: flatcamObjects/FlatCAMGerber.py:689 flatcamTools/ToolPaint.py:1536 +msgid "No polygon detected under click position." +msgstr "Полигон не обнаружен в указанной позиции." + +#: flatcamObjects/FlatCAMGerber.py:710 flatcamTools/ToolPaint.py:1565 +msgid "List of single polygons is empty. Aborting." +msgstr "Список одиночных полигонов пуст. Отмена." + +#: flatcamObjects/FlatCAMGerber.py:779 +msgid "No polygon in selection." +msgstr "Нет полигона в выборе." + +#: flatcamObjects/FlatCAMGerber.py:907 flatcamObjects/FlatCAMGerber.py:986 +#: flatcamTools/ToolNCC.py:2086 flatcamTools/ToolNCC.py:3137 +#: flatcamTools/ToolNCC.py:3516 msgid "Isolation geometry could not be generated." msgstr "Геометрия изоляции не может быть сгенерирована." -#: AppObjects/FlatCAMGerber.py:606 AppObjects/FlatCAMGerber.py:733 -#: AppTools/ToolIsolation.py:1869 AppTools/ToolIsolation.py:2035 -#: AppTools/ToolIsolation.py:2202 +#: flatcamObjects/FlatCAMGerber.py:932 flatcamObjects/FlatCAMGerber.py:1064 msgid "Isolation geometry created" msgstr "Создана геометрия изоляции" -#: AppObjects/FlatCAMGerber.py:1028 +#: flatcamObjects/FlatCAMGerber.py:941 flatcamObjects/FlatCAMGerber.py:1071 +msgid "Subtracting Geo" +msgstr "Вычитание геометрии" + +#: flatcamObjects/FlatCAMGerber.py:1396 msgid "Plotting Apertures" msgstr "Создание отверстия" -#: AppObjects/FlatCAMObj.py:237 +#: flatcamObjects/FlatCAMObj.py:234 msgid "Name changed from" msgstr "Имя изменено с" -#: AppObjects/FlatCAMObj.py:237 +#: flatcamObjects/FlatCAMObj.py:234 msgid "to" msgstr "на" -#: AppObjects/FlatCAMObj.py:248 +#: flatcamObjects/FlatCAMObj.py:245 msgid "Offsetting..." msgstr "Смещение..." -#: AppObjects/FlatCAMObj.py:262 AppObjects/FlatCAMObj.py:267 +#: flatcamObjects/FlatCAMObj.py:259 flatcamObjects/FlatCAMObj.py:264 msgid "Scaling could not be executed." msgstr "Масштабирование не может быть выполнено." -#: AppObjects/FlatCAMObj.py:271 AppObjects/FlatCAMObj.py:279 +#: flatcamObjects/FlatCAMObj.py:268 flatcamObjects/FlatCAMObj.py:276 msgid "Scale done." msgstr "Масштаб сделан." -#: AppObjects/FlatCAMObj.py:277 +#: flatcamObjects/FlatCAMObj.py:274 msgid "Scaling..." msgstr "Масштабирование..." -#: AppObjects/FlatCAMObj.py:295 +#: flatcamObjects/FlatCAMObj.py:292 msgid "Skewing..." msgstr "Наклон..." -#: AppObjects/FlatCAMScript.py:163 +#: flatcamObjects/FlatCAMScript.py:163 msgid "Script Editor" msgstr "Редактор сценариев" -#: AppObjects/ObjectCollection.py:514 +#: flatcamObjects/ObjectCollection.py:510 #, python-brace-format msgid "Object renamed from {old} to {new}" msgstr "Объект переименован из {old} в {new}" -#: AppObjects/ObjectCollection.py:926 AppObjects/ObjectCollection.py:932 -#: AppObjects/ObjectCollection.py:938 AppObjects/ObjectCollection.py:944 -#: AppObjects/ObjectCollection.py:950 AppObjects/ObjectCollection.py:956 -#: App_Main.py:6235 App_Main.py:6241 App_Main.py:6247 App_Main.py:6253 -msgid "selected" -msgstr "выбранный" - -#: AppObjects/ObjectCollection.py:987 +#: flatcamObjects/ObjectCollection.py:983 msgid "Cause of error" msgstr "Причина ошибки" -#: AppObjects/ObjectCollection.py:1188 -msgid "All objects are selected." -msgstr "Все объекты выделены." - -#: AppObjects/ObjectCollection.py:1198 -msgid "Objects selection is cleared." -msgstr "Выбор объектов очищен." - -#: AppParsers/ParseExcellon.py:315 +#: flatcamParsers/ParseExcellon.py:316 msgid "This is GCODE mark" msgstr "Это метка GCODE" -#: AppParsers/ParseExcellon.py:432 +#: flatcamParsers/ParseExcellon.py:433 msgid "" "No tool diameter info's. See shell.\n" "A tool change event: T" @@ -12525,7 +14202,7 @@ msgstr "" "Нет информации о диаметре инструмента. Смотрите командную строку\n" "Событие изменения инструмента: T" -#: AppParsers/ParseExcellon.py:435 +#: flatcamParsers/ParseExcellon.py:436 msgid "" "was found but the Excellon file have no informations regarding the tool " "diameters therefore the application will try to load it by using some 'fake' " @@ -12539,7 +14216,7 @@ msgstr "" "Пользователю необходимо отредактировать полученный объект Excellon и " "изменить диаметры, чтобы отразить реальные диаметры." -#: AppParsers/ParseExcellon.py:899 +#: flatcamParsers/ParseExcellon.py:900 msgid "" "Excellon Parser error.\n" "Parsing Failed. Line" @@ -12547,7 +14224,7 @@ msgstr "" "Ошибка разбора Excellon.\n" "Ошибка разбора. Строка" -#: AppParsers/ParseExcellon.py:981 +#: flatcamParsers/ParseExcellon.py:982 msgid "" "Excellon.create_geometry() -> a drill location was skipped due of not having " "a tool associated.\n" @@ -12557,30 +14234,30 @@ msgstr "" "отсутствия связанного инструмента.\n" "Проверьте полученный GCode." -#: AppParsers/ParseFont.py:303 +#: flatcamParsers/ParseFont.py:303 msgid "Font not supported, try another one." msgstr "Шрифт не поддерживается, попробуйте другой." -#: AppParsers/ParseGerber.py:425 +#: flatcamParsers/ParseGerber.py:426 msgid "Gerber processing. Parsing" msgstr "Обработка Gerber. Разбор" -#: AppParsers/ParseGerber.py:425 AppParsers/ParseHPGL2.py:181 +#: flatcamParsers/ParseGerber.py:426 flatcamParsers/ParseHPGL2.py:182 msgid "lines" msgstr "линий" -#: AppParsers/ParseGerber.py:1001 AppParsers/ParseGerber.py:1101 -#: AppParsers/ParseHPGL2.py:274 AppParsers/ParseHPGL2.py:288 -#: AppParsers/ParseHPGL2.py:307 AppParsers/ParseHPGL2.py:331 -#: AppParsers/ParseHPGL2.py:366 +#: flatcamParsers/ParseGerber.py:1002 flatcamParsers/ParseGerber.py:1102 +#: flatcamParsers/ParseHPGL2.py:275 flatcamParsers/ParseHPGL2.py:289 +#: flatcamParsers/ParseHPGL2.py:308 flatcamParsers/ParseHPGL2.py:332 +#: flatcamParsers/ParseHPGL2.py:367 msgid "Coordinates missing, line ignored" msgstr "Координаты отсутствуют, строка игнорируется" -#: AppParsers/ParseGerber.py:1003 AppParsers/ParseGerber.py:1103 +#: flatcamParsers/ParseGerber.py:1004 flatcamParsers/ParseGerber.py:1104 msgid "GERBER file might be CORRUPT. Check the file !!!" msgstr "Файл GERBER может быть поврежден. Проверьте файл !!!" -#: AppParsers/ParseGerber.py:1057 +#: flatcamParsers/ParseGerber.py:1058 msgid "" "Region does not have enough points. File will be processed but there are " "parser errors. Line number" @@ -12588,79 +14265,75 @@ msgstr "" "Региону не хватает точек. Файл будет обработан, но есть ошибки разбора. " "Номер строки" -#: AppParsers/ParseGerber.py:1487 AppParsers/ParseHPGL2.py:401 +#: flatcamParsers/ParseGerber.py:1488 flatcamParsers/ParseHPGL2.py:402 msgid "Gerber processing. Joining polygons" msgstr "Обработка Gerber. Соединение полигонов" -#: AppParsers/ParseGerber.py:1504 +#: flatcamParsers/ParseGerber.py:1505 msgid "Gerber processing. Applying Gerber polarity." msgstr "Обработка Gerber. Применение полярности Gerber." -#: AppParsers/ParseGerber.py:1564 +#: flatcamParsers/ParseGerber.py:1565 msgid "Gerber Line" msgstr "Строк Gerber" -#: AppParsers/ParseGerber.py:1564 +#: flatcamParsers/ParseGerber.py:1565 msgid "Gerber Line Content" msgstr "Содержание строк Gerber" -#: AppParsers/ParseGerber.py:1566 +#: flatcamParsers/ParseGerber.py:1567 msgid "Gerber Parser ERROR" msgstr "Ошибка разбора Gerber" -#: AppParsers/ParseGerber.py:1956 +#: flatcamParsers/ParseGerber.py:1957 msgid "Gerber Scale done." msgstr "Масштабирование Gerber выполнено." -#: AppParsers/ParseGerber.py:2048 +#: flatcamParsers/ParseGerber.py:2049 msgid "Gerber Offset done." msgstr "Смещение Gerber выполнено." -#: AppParsers/ParseGerber.py:2124 +#: flatcamParsers/ParseGerber.py:2125 msgid "Gerber Mirror done." msgstr "Зеркалирование Gerber выполнено." -#: AppParsers/ParseGerber.py:2198 +#: flatcamParsers/ParseGerber.py:2199 msgid "Gerber Skew done." msgstr "Наклон Gerber выполнен." -#: AppParsers/ParseGerber.py:2260 +#: flatcamParsers/ParseGerber.py:2261 msgid "Gerber Rotate done." msgstr "Вращение Gerber выполнено." -#: AppParsers/ParseGerber.py:2417 +#: flatcamParsers/ParseGerber.py:2418 msgid "Gerber Buffer done." msgstr "Буферизация Gerber выполнена." -#: AppParsers/ParseHPGL2.py:181 +#: flatcamParsers/ParseHPGL2.py:182 msgid "HPGL2 processing. Parsing" msgstr "Обработка HPGL2 . Разбор" -#: AppParsers/ParseHPGL2.py:413 +#: flatcamParsers/ParseHPGL2.py:414 msgid "HPGL2 Line" msgstr "Линия HPGL2" -#: AppParsers/ParseHPGL2.py:413 +#: flatcamParsers/ParseHPGL2.py:414 msgid "HPGL2 Line Content" msgstr "Содержание линии HPGL2" -#: AppParsers/ParseHPGL2.py:414 +#: flatcamParsers/ParseHPGL2.py:415 msgid "HPGL2 Parser ERROR" msgstr "Ошибка парсера HPGL2" -#: AppProcess.py:172 -msgid "processes running." -msgstr "процессы запущены." - -#: AppTools/ToolAlignObjects.py:32 +#: flatcamTools/ToolAlignObjects.py:32 msgid "Align Objects" msgstr "Выравнивание" -#: AppTools/ToolAlignObjects.py:61 +#: flatcamTools/ToolAlignObjects.py:61 msgid "MOVING object" msgstr "Движущийся объект" -#: AppTools/ToolAlignObjects.py:65 +#: flatcamTools/ToolAlignObjects.py:65 msgid "" "Specify the type of object to be aligned.\n" "It can be of type: Gerber or Excellon.\n" @@ -12672,15 +14345,15 @@ msgstr "" "Выбор здесь определяет тип объектов, которые будут\n" "в выпадающем списке объектов." -#: AppTools/ToolAlignObjects.py:86 +#: flatcamTools/ToolAlignObjects.py:86 msgid "Object to be aligned." msgstr "Объект для выравнивания." -#: AppTools/ToolAlignObjects.py:98 +#: flatcamTools/ToolAlignObjects.py:98 msgid "TARGET object" msgstr "Отслеживаемый объект" -#: AppTools/ToolAlignObjects.py:100 +#: flatcamTools/ToolAlignObjects.py:100 msgid "" "Specify the type of object to be aligned to.\n" "It can be of type: Gerber or Excellon.\n" @@ -12692,15 +14365,15 @@ msgstr "" "Выбор здесь определяет тип объектов, которые будут\n" "в выпадающем списке объектов." -#: AppTools/ToolAlignObjects.py:122 +#: flatcamTools/ToolAlignObjects.py:122 msgid "Object to be aligned to. Aligner." msgstr "Объект для выравнивания по образцу." -#: AppTools/ToolAlignObjects.py:135 +#: flatcamTools/ToolAlignObjects.py:135 msgid "Alignment Type" msgstr "Тип выравнивания" -#: AppTools/ToolAlignObjects.py:137 +#: flatcamTools/ToolAlignObjects.py:137 msgid "" "The type of alignment can be:\n" "- Single Point -> it require a single point of sync, the action will be a " @@ -12714,19 +14387,19 @@ msgstr "" "- Двойная точка -> требуется две точки синхронизации, действие будет " "переводом с последующим вращением" -#: AppTools/ToolAlignObjects.py:143 +#: flatcamTools/ToolAlignObjects.py:143 msgid "Single Point" msgstr "Одна точка" -#: AppTools/ToolAlignObjects.py:144 +#: flatcamTools/ToolAlignObjects.py:144 msgid "Dual Point" msgstr "Двойная точка" -#: AppTools/ToolAlignObjects.py:159 +#: flatcamTools/ToolAlignObjects.py:159 msgid "Align Object" msgstr "Выровнять объект" -#: AppTools/ToolAlignObjects.py:161 +#: flatcamTools/ToolAlignObjects.py:161 msgid "" "Align the specified object to the aligner object.\n" "If only one point is used then it assumes translation.\n" @@ -12736,91 +14409,87 @@ msgstr "" "Если используется только одна точка, то это предполагает перевод.\n" "Если используются две точки, то предполагается их трансляция и вращение." -#: AppTools/ToolAlignObjects.py:176 AppTools/ToolCalculators.py:246 -#: AppTools/ToolCalibration.py:683 AppTools/ToolCopperThieving.py:488 -#: AppTools/ToolCorners.py:182 AppTools/ToolCutOut.py:362 -#: AppTools/ToolDblSided.py:471 AppTools/ToolEtchCompensation.py:240 -#: AppTools/ToolExtractDrills.py:310 AppTools/ToolFiducials.py:321 -#: AppTools/ToolFilm.py:503 AppTools/ToolInvertGerber.py:143 -#: AppTools/ToolIsolation.py:591 AppTools/ToolNCC.py:612 -#: AppTools/ToolOptimal.py:243 AppTools/ToolPaint.py:555 -#: AppTools/ToolPanelize.py:280 AppTools/ToolPunchGerber.py:339 -#: AppTools/ToolQRCode.py:323 AppTools/ToolRulesCheck.py:516 -#: AppTools/ToolSolderPaste.py:481 AppTools/ToolSub.py:181 -#: AppTools/ToolTransform.py:398 +#: flatcamTools/ToolAlignObjects.py:176 flatcamTools/ToolCalculators.py:246 +#: flatcamTools/ToolCalibration.py:683 flatcamTools/ToolCopperThieving.py:484 +#: flatcamTools/ToolCutOut.py:362 flatcamTools/ToolDblSided.py:471 +#: flatcamTools/ToolExtractDrills.py:310 flatcamTools/ToolFiducials.py:318 +#: flatcamTools/ToolFilm.py:520 flatcamTools/ToolInvertGerber.py:140 +#: flatcamTools/ToolNCC.py:612 flatcamTools/ToolOptimal.py:237 +#: flatcamTools/ToolPaint.py:556 flatcamTools/ToolPanelize.py:269 +#: flatcamTools/ToolPunchGerber.py:339 flatcamTools/ToolQRCode.py:314 +#: flatcamTools/ToolRulesCheck.py:516 flatcamTools/ToolSolderPaste.py:473 +#: flatcamTools/ToolSub.py:176 flatcamTools/ToolTransform.py:398 msgid "Reset Tool" msgstr "Сбросить настройки инструмента" -#: AppTools/ToolAlignObjects.py:178 AppTools/ToolCalculators.py:248 -#: AppTools/ToolCalibration.py:685 AppTools/ToolCopperThieving.py:490 -#: AppTools/ToolCorners.py:184 AppTools/ToolCutOut.py:364 -#: AppTools/ToolDblSided.py:473 AppTools/ToolEtchCompensation.py:242 -#: AppTools/ToolExtractDrills.py:312 AppTools/ToolFiducials.py:323 -#: AppTools/ToolFilm.py:505 AppTools/ToolInvertGerber.py:145 -#: AppTools/ToolIsolation.py:593 AppTools/ToolNCC.py:614 -#: AppTools/ToolOptimal.py:245 AppTools/ToolPaint.py:557 -#: AppTools/ToolPanelize.py:282 AppTools/ToolPunchGerber.py:341 -#: AppTools/ToolQRCode.py:325 AppTools/ToolRulesCheck.py:518 -#: AppTools/ToolSolderPaste.py:483 AppTools/ToolSub.py:183 -#: AppTools/ToolTransform.py:400 +#: flatcamTools/ToolAlignObjects.py:178 flatcamTools/ToolCalculators.py:248 +#: flatcamTools/ToolCalibration.py:685 flatcamTools/ToolCopperThieving.py:486 +#: flatcamTools/ToolCutOut.py:364 flatcamTools/ToolDblSided.py:473 +#: flatcamTools/ToolExtractDrills.py:312 flatcamTools/ToolFiducials.py:320 +#: flatcamTools/ToolFilm.py:522 flatcamTools/ToolInvertGerber.py:142 +#: flatcamTools/ToolNCC.py:614 flatcamTools/ToolOptimal.py:239 +#: flatcamTools/ToolPaint.py:558 flatcamTools/ToolPanelize.py:271 +#: flatcamTools/ToolPunchGerber.py:341 flatcamTools/ToolQRCode.py:316 +#: flatcamTools/ToolRulesCheck.py:518 flatcamTools/ToolSolderPaste.py:475 +#: flatcamTools/ToolSub.py:178 flatcamTools/ToolTransform.py:400 msgid "Will reset the tool parameters." msgstr "Сброс параметров инструмента." -#: AppTools/ToolAlignObjects.py:244 +#: flatcamTools/ToolAlignObjects.py:244 msgid "Align Tool" msgstr "Инструмент выравнивания" -#: AppTools/ToolAlignObjects.py:289 +#: flatcamTools/ToolAlignObjects.py:289 msgid "There is no aligned FlatCAM object selected..." msgstr "Нет выбранного объекта FlatCAM..." -#: AppTools/ToolAlignObjects.py:299 +#: flatcamTools/ToolAlignObjects.py:299 msgid "There is no aligner FlatCAM object selected..." msgstr "Нет выбранного объекта FlatCAM..." -#: AppTools/ToolAlignObjects.py:321 AppTools/ToolAlignObjects.py:385 +#: flatcamTools/ToolAlignObjects.py:325 flatcamTools/ToolAlignObjects.py:385 msgid "First Point" msgstr "Первая точка" -#: AppTools/ToolAlignObjects.py:321 AppTools/ToolAlignObjects.py:400 +#: flatcamTools/ToolAlignObjects.py:325 flatcamTools/ToolAlignObjects.py:400 msgid "Click on the START point." msgstr "Нажмите на начальную точку." -#: AppTools/ToolAlignObjects.py:380 AppTools/ToolCalibration.py:920 +#: flatcamTools/ToolAlignObjects.py:380 flatcamTools/ToolCalibration.py:920 msgid "Cancelled by user request." msgstr "Отменено по запросу пользователя." -#: AppTools/ToolAlignObjects.py:385 AppTools/ToolAlignObjects.py:407 +#: flatcamTools/ToolAlignObjects.py:385 flatcamTools/ToolAlignObjects.py:407 msgid "Click on the DESTINATION point." msgstr "Нажмите на конечную точку." -#: AppTools/ToolAlignObjects.py:385 AppTools/ToolAlignObjects.py:400 -#: AppTools/ToolAlignObjects.py:407 +#: flatcamTools/ToolAlignObjects.py:385 flatcamTools/ToolAlignObjects.py:400 +#: flatcamTools/ToolAlignObjects.py:407 msgid "Or right click to cancel." msgstr "Или щелкните правой кнопкой мыши, чтобы отменить." -#: AppTools/ToolAlignObjects.py:400 AppTools/ToolAlignObjects.py:407 -#: AppTools/ToolFiducials.py:107 +#: flatcamTools/ToolAlignObjects.py:400 flatcamTools/ToolAlignObjects.py:407 +#: flatcamTools/ToolFiducials.py:111 msgid "Second Point" msgstr "Вторичная точка" -#: AppTools/ToolCalculators.py:24 +#: flatcamTools/ToolCalculators.py:24 msgid "Calculators" msgstr "Калькуляторы" -#: AppTools/ToolCalculators.py:26 +#: flatcamTools/ToolCalculators.py:26 msgid "Units Calculator" msgstr "Калькулятор единиц" -#: AppTools/ToolCalculators.py:70 +#: flatcamTools/ToolCalculators.py:70 msgid "Here you enter the value to be converted from INCH to MM" msgstr "Здесь вы вводите значение, которое будет конвертировано из ДЮЙМОВ в MM" -#: AppTools/ToolCalculators.py:75 +#: flatcamTools/ToolCalculators.py:75 msgid "Here you enter the value to be converted from MM to INCH" msgstr "Здесь вы вводите значение, которое будет конвертировано из MM в ДЮЙМЫ" -#: AppTools/ToolCalculators.py:111 +#: flatcamTools/ToolCalculators.py:111 msgid "" "This is the angle of the tip of the tool.\n" "It is specified by manufacturer." @@ -12828,7 +14497,7 @@ msgstr "" "Это угол наклона кончика инструмента.\n" "Это указано производителем." -#: AppTools/ToolCalculators.py:120 +#: flatcamTools/ToolCalculators.py:120 msgid "" "This is the depth to cut into the material.\n" "In the CNCJob is the CutZ parameter." @@ -12836,7 +14505,7 @@ msgstr "" "Это глубина для того чтобы отрезать в материал.\n" "В работе с ЧПУ-это параметр, CutZ." -#: AppTools/ToolCalculators.py:128 +#: flatcamTools/ToolCalculators.py:128 msgid "" "This is the tool diameter to be entered into\n" "FlatCAM Gerber section.\n" @@ -12846,11 +14515,11 @@ msgstr "" "Секция FlatCAM Gerber.\n" "В разделе Работа с ЧПУ он называется > инструмент dia<." -#: AppTools/ToolCalculators.py:139 AppTools/ToolCalculators.py:235 +#: flatcamTools/ToolCalculators.py:139 flatcamTools/ToolCalculators.py:235 msgid "Calculate" msgstr "Рассчитать" -#: AppTools/ToolCalculators.py:142 +#: flatcamTools/ToolCalculators.py:142 msgid "" "Calculate either the Cut Z or the effective tool diameter,\n" " depending on which is desired and which is known. " @@ -12858,11 +14527,11 @@ msgstr "" "Рассчитывает любую глубину резания или эффективный диаметр инструмента,\n" " в зависимости от того, что желательно и что известно. " -#: AppTools/ToolCalculators.py:205 +#: flatcamTools/ToolCalculators.py:205 msgid "Current Value" msgstr "Текущее значение" -#: AppTools/ToolCalculators.py:212 +#: flatcamTools/ToolCalculators.py:212 msgid "" "This is the current intensity value\n" "to be set on the Power Supply. In Amps." @@ -12870,11 +14539,11 @@ msgstr "" "Это текущее значение интенсивности \n" "быть установленным на электропитание. В Усилителях." -#: AppTools/ToolCalculators.py:216 +#: flatcamTools/ToolCalculators.py:216 msgid "Time" msgstr "Время" -#: AppTools/ToolCalculators.py:223 +#: flatcamTools/ToolCalculators.py:223 msgid "" "This is the calculated time required for the procedure.\n" "In minutes." @@ -12882,7 +14551,7 @@ msgstr "" "Это расчетное время, необходимое для процедуры.\n" "В минутах." -#: AppTools/ToolCalculators.py:238 +#: flatcamTools/ToolCalculators.py:238 msgid "" "Calculate the current intensity value and the procedure time,\n" "depending on the parameters above" @@ -12890,19 +14559,23 @@ msgstr "" "Вычислите текущее значение интенсивности и время процедуры,\n" "в зависимости от параметров выше" -#: AppTools/ToolCalculators.py:299 +#: flatcamTools/ToolCalculators.py:299 msgid "Calc. Tool" msgstr "Калькулятор" -#: AppTools/ToolCalibration.py:69 +#: flatcamTools/ToolCalibration.py:67 +msgid "GCode Parameters" +msgstr "Параметры GCode" + +#: flatcamTools/ToolCalibration.py:69 msgid "Parameters used when creating the GCode in this tool." msgstr "Параметры, используемые при создании GCode в данном инструменте." -#: AppTools/ToolCalibration.py:173 +#: flatcamTools/ToolCalibration.py:173 msgid "STEP 1: Acquire Calibration Points" msgstr "ШАГ 1: Получение точек калибровки" -#: AppTools/ToolCalibration.py:175 +#: flatcamTools/ToolCalibration.py:175 msgid "" "Pick four points by clicking on canvas.\n" "Those four points should be in the four\n" @@ -12912,27 +14585,27 @@ msgstr "" "Эти четыре пункта должны быть в четырех\n" "(насколько это возможно) углы объекта." -#: AppTools/ToolCalibration.py:193 AppTools/ToolFilm.py:71 -#: AppTools/ToolImage.py:54 AppTools/ToolPanelize.py:77 -#: AppTools/ToolProperties.py:177 +#: flatcamTools/ToolCalibration.py:193 flatcamTools/ToolFilm.py:76 +#: flatcamTools/ToolImage.py:54 flatcamTools/ToolPanelize.py:78 +#: flatcamTools/ToolProperties.py:177 msgid "Object Type" msgstr "Тип объекта" -#: AppTools/ToolCalibration.py:210 +#: flatcamTools/ToolCalibration.py:210 msgid "Source object selection" msgstr "Выбор исходного объекта" -#: AppTools/ToolCalibration.py:212 +#: flatcamTools/ToolCalibration.py:212 msgid "FlatCAM Object to be used as a source for reference points." msgstr "" "FlatCAM Объект, который будет использоваться в качестве источника опорных " "точек." -#: AppTools/ToolCalibration.py:218 +#: flatcamTools/ToolCalibration.py:218 msgid "Calibration Points" msgstr "Точки калибровки" -#: AppTools/ToolCalibration.py:220 +#: flatcamTools/ToolCalibration.py:220 msgid "" "Contain the expected calibration points and the\n" "ones measured." @@ -12940,52 +14613,52 @@ msgstr "" "Содержит ожидаемые точки калибровки и точки калибровки\n" "измеренные." -#: AppTools/ToolCalibration.py:235 AppTools/ToolSub.py:81 -#: AppTools/ToolSub.py:136 +#: flatcamTools/ToolCalibration.py:235 flatcamTools/ToolSub.py:76 +#: flatcamTools/ToolSub.py:131 msgid "Target" msgstr "Цель" -#: AppTools/ToolCalibration.py:236 +#: flatcamTools/ToolCalibration.py:236 msgid "Found Delta" msgstr "Найдено Delta" -#: AppTools/ToolCalibration.py:248 +#: flatcamTools/ToolCalibration.py:248 msgid "Bot Left X" msgstr "Нижний левый X" -#: AppTools/ToolCalibration.py:257 +#: flatcamTools/ToolCalibration.py:257 msgid "Bot Left Y" msgstr "Нижний левый Y" -#: AppTools/ToolCalibration.py:275 +#: flatcamTools/ToolCalibration.py:275 msgid "Bot Right X" msgstr "Нижний правый X" -#: AppTools/ToolCalibration.py:285 +#: flatcamTools/ToolCalibration.py:285 msgid "Bot Right Y" msgstr "Нижний правый Y" -#: AppTools/ToolCalibration.py:300 +#: flatcamTools/ToolCalibration.py:300 msgid "Top Left X" msgstr "Верхний левый X" -#: AppTools/ToolCalibration.py:309 +#: flatcamTools/ToolCalibration.py:309 msgid "Top Left Y" msgstr "Верхний левый Y" -#: AppTools/ToolCalibration.py:324 +#: flatcamTools/ToolCalibration.py:324 msgid "Top Right X" msgstr "Верхний правый X" -#: AppTools/ToolCalibration.py:334 +#: flatcamTools/ToolCalibration.py:334 msgid "Top Right Y" msgstr "Верхний правый Y" -#: AppTools/ToolCalibration.py:367 +#: flatcamTools/ToolCalibration.py:367 msgid "Get Points" msgstr "Получить точки" -#: AppTools/ToolCalibration.py:369 +#: flatcamTools/ToolCalibration.py:369 msgid "" "Pick four points by clicking on canvas if the source choice\n" "is 'free' or inside the object geometry if the source is 'object'.\n" @@ -12998,11 +14671,11 @@ msgstr "" "Эти четыре точки должны быть в четырех квадратах\n" "вокруг объекта." -#: AppTools/ToolCalibration.py:390 +#: flatcamTools/ToolCalibration.py:390 msgid "STEP 2: Verification GCode" msgstr "ШАГ 2: Проверка GCode" -#: AppTools/ToolCalibration.py:392 AppTools/ToolCalibration.py:405 +#: flatcamTools/ToolCalibration.py:392 flatcamTools/ToolCalibration.py:405 msgid "" "Generate GCode file to locate and align the PCB by using\n" "the four points acquired above.\n" @@ -13022,15 +14695,15 @@ msgstr "" "справа.\n" "- четвертый пункт -> окончательный пункт проверки. Просто для оценки." -#: AppTools/ToolCalibration.py:403 AppTools/ToolSolderPaste.py:344 +#: flatcamTools/ToolCalibration.py:403 flatcamTools/ToolSolderPaste.py:348 msgid "Generate GCode" msgstr "Создать GCode" -#: AppTools/ToolCalibration.py:429 +#: flatcamTools/ToolCalibration.py:429 msgid "STEP 3: Adjustments" msgstr "ШАГ 3: Корректировки" -#: AppTools/ToolCalibration.py:431 AppTools/ToolCalibration.py:440 +#: flatcamTools/ToolCalibration.py:431 flatcamTools/ToolCalibration.py:440 msgid "" "Calculate Scale and Skew factors based on the differences (delta)\n" "found when checking the PCB pattern. The differences must be filled\n" @@ -13040,15 +14713,15 @@ msgstr "" "найденных при проверке схемы печатной платы. Различия должны быть устранены\n" "в полях Найдено (Delta)." -#: AppTools/ToolCalibration.py:438 +#: flatcamTools/ToolCalibration.py:438 msgid "Calculate Factors" msgstr "Рассчитать факторы" -#: AppTools/ToolCalibration.py:460 +#: flatcamTools/ToolCalibration.py:460 msgid "STEP 4: Adjusted GCode" msgstr "ШАГ 4: Корректировка GCode" -#: AppTools/ToolCalibration.py:462 +#: flatcamTools/ToolCalibration.py:462 msgid "" "Generate verification GCode file adjusted with\n" "the factors above." @@ -13056,43 +14729,43 @@ msgstr "" "Создаёт проверочный файл GCode \n" "скорректированный с помощью вышеперечисленных факторов." -#: AppTools/ToolCalibration.py:467 +#: flatcamTools/ToolCalibration.py:467 msgid "Scale Factor X:" msgstr "Коэффициент масштабирования X:" -#: AppTools/ToolCalibration.py:479 +#: flatcamTools/ToolCalibration.py:479 msgid "Scale Factor Y:" msgstr "Коэффициент масштабирования Y:" -#: AppTools/ToolCalibration.py:491 +#: flatcamTools/ToolCalibration.py:491 msgid "Apply Scale Factors" msgstr "Масштабировать" -#: AppTools/ToolCalibration.py:493 +#: flatcamTools/ToolCalibration.py:493 msgid "Apply Scale factors on the calibration points." msgstr "Применяет коэффициент масштабирования для точек калибровки." -#: AppTools/ToolCalibration.py:503 +#: flatcamTools/ToolCalibration.py:503 msgid "Skew Angle X:" msgstr "Угол наклона X:" -#: AppTools/ToolCalibration.py:516 +#: flatcamTools/ToolCalibration.py:516 msgid "Skew Angle Y:" msgstr "Угол наклона Y:" -#: AppTools/ToolCalibration.py:529 +#: flatcamTools/ToolCalibration.py:529 msgid "Apply Skew Factors" msgstr "Наклонить" -#: AppTools/ToolCalibration.py:531 +#: flatcamTools/ToolCalibration.py:531 msgid "Apply Skew factors on the calibration points." msgstr "Применяет коэффициенты перекоса для точек калибровки." -#: AppTools/ToolCalibration.py:600 +#: flatcamTools/ToolCalibration.py:600 msgid "Generate Adjusted GCode" msgstr "Создать скорректированный GCode" -#: AppTools/ToolCalibration.py:602 +#: flatcamTools/ToolCalibration.py:602 msgid "" "Generate verification GCode file adjusted with\n" "the factors set above.\n" @@ -13104,11 +14777,11 @@ msgstr "" "Параметры GCode могут быть перенастроены\n" "перед нажатием этой кнопки." -#: AppTools/ToolCalibration.py:623 +#: flatcamTools/ToolCalibration.py:623 msgid "STEP 5: Calibrate FlatCAM Objects" msgstr "ШАГ 5: Калибровка объектов FlatCAM" -#: AppTools/ToolCalibration.py:625 +#: flatcamTools/ToolCalibration.py:625 msgid "" "Adjust the FlatCAM objects\n" "with the factors determined and verified above." @@ -13116,27 +14789,27 @@ msgstr "" "Корректировка объектов FlatCAM\n" "с факторами, определенными и проверенными выше." -#: AppTools/ToolCalibration.py:637 +#: flatcamTools/ToolCalibration.py:637 msgid "Adjusted object type" msgstr "Тип объекта корректировки" -#: AppTools/ToolCalibration.py:638 +#: flatcamTools/ToolCalibration.py:638 msgid "Type of the FlatCAM Object to be adjusted." msgstr "Тип объекта FlatCAM, который требуется скорректировать." -#: AppTools/ToolCalibration.py:651 +#: flatcamTools/ToolCalibration.py:651 msgid "Adjusted object selection" msgstr "Выбор объекта корректировки" -#: AppTools/ToolCalibration.py:653 +#: flatcamTools/ToolCalibration.py:653 msgid "The FlatCAM Object to be adjusted." msgstr "Объект FlatCAM для корректировки." -#: AppTools/ToolCalibration.py:660 +#: flatcamTools/ToolCalibration.py:660 msgid "Calibrate" msgstr "Колибровка" -#: AppTools/ToolCalibration.py:662 +#: flatcamTools/ToolCalibration.py:662 msgid "" "Adjust (scale and/or skew) the objects\n" "with the factors determined above." @@ -13144,59 +14817,59 @@ msgstr "" "Корректировка (масштабирование и/или перекос) объектов\n" "с вышеперечисленными факторами." -#: AppTools/ToolCalibration.py:770 AppTools/ToolCalibration.py:771 +#: flatcamTools/ToolCalibration.py:770 flatcamTools/ToolCalibration.py:771 msgid "Origin" msgstr "Источник" -#: AppTools/ToolCalibration.py:800 +#: flatcamTools/ToolCalibration.py:800 msgid "Tool initialized" msgstr "Инструмент инициализирован" -#: AppTools/ToolCalibration.py:838 +#: flatcamTools/ToolCalibration.py:838 msgid "There is no source FlatCAM object selected..." msgstr "Нет выбранного исходного объекта FlatCAM..." -#: AppTools/ToolCalibration.py:859 +#: flatcamTools/ToolCalibration.py:859 msgid "Get First calibration point. Bottom Left..." msgstr "Получение первой точки калибровки. Внизу слева...." -#: AppTools/ToolCalibration.py:926 +#: flatcamTools/ToolCalibration.py:926 msgid "Get Second calibration point. Bottom Right (Top Left)..." msgstr "Получите вторую точку калибровки. Внизу справа (вверху слева) ..." -#: AppTools/ToolCalibration.py:930 +#: flatcamTools/ToolCalibration.py:930 msgid "Get Third calibration point. Top Left (Bottom Right)..." msgstr "Получите третью точку калибровки. Верхний левый нижний правый)..." -#: AppTools/ToolCalibration.py:934 +#: flatcamTools/ToolCalibration.py:934 msgid "Get Forth calibration point. Top Right..." msgstr "Получение четвёртой точки калибровки. Вверху справа ..." -#: AppTools/ToolCalibration.py:938 +#: flatcamTools/ToolCalibration.py:938 msgid "Done. All four points have been acquired." msgstr "Готово. Все четыре точки были получены." -#: AppTools/ToolCalibration.py:969 +#: flatcamTools/ToolCalibration.py:969 msgid "Verification GCode for FlatCAM Calibration Tool" msgstr "Проверочный код GCode для инструмента калибровки FlatCAM" -#: AppTools/ToolCalibration.py:981 AppTools/ToolCalibration.py:1067 +#: flatcamTools/ToolCalibration.py:981 flatcamTools/ToolCalibration.py:1067 msgid "Gcode Viewer" msgstr "Просмотрщик Gcode" -#: AppTools/ToolCalibration.py:997 +#: flatcamTools/ToolCalibration.py:997 msgid "Cancelled. Four points are needed for GCode generation." msgstr "Отмена. Для генерации GCode необходимы четыре точки." -#: AppTools/ToolCalibration.py:1253 AppTools/ToolCalibration.py:1349 +#: flatcamTools/ToolCalibration.py:1253 flatcamTools/ToolCalibration.py:1349 msgid "There is no FlatCAM object selected..." msgstr "Нет выбранного объекта FlatCAM..." -#: AppTools/ToolCopperThieving.py:76 AppTools/ToolFiducials.py:264 +#: flatcamTools/ToolCopperThieving.py:76 flatcamTools/ToolFiducials.py:261 msgid "Gerber Object to which will be added a copper thieving." msgstr "Gerber объект, к которому будет добавлен copper thieving." -#: AppTools/ToolCopperThieving.py:102 +#: flatcamTools/ToolCopperThieving.py:98 msgid "" "This set the distance between the copper thieving components\n" "(the polygon fill may be split in multiple polygons)\n" @@ -13206,7 +14879,7 @@ msgstr "" "(заливка полигона может быть разделена на несколько полигонов)\n" "и медными трассами в Gerber файле." -#: AppTools/ToolCopperThieving.py:135 +#: flatcamTools/ToolCopperThieving.py:131 msgid "" "- 'Itself' - the copper thieving extent is based on the object extent.\n" "- 'Area Selection' - left mouse click to start selection of the area to be " @@ -13221,12 +14894,12 @@ msgstr "" "- 'Референсный объект' - будет выполнять Copper Thieving в области указанной " "другим объектом." -#: AppTools/ToolCopperThieving.py:142 AppTools/ToolIsolation.py:511 -#: AppTools/ToolNCC.py:552 AppTools/ToolPaint.py:495 +#: flatcamTools/ToolCopperThieving.py:138 flatcamTools/ToolNCC.py:552 +#: flatcamTools/ToolPaint.py:496 msgid "Ref. Type" msgstr "Тип ссылки" -#: AppTools/ToolCopperThieving.py:144 +#: flatcamTools/ToolCopperThieving.py:140 msgid "" "The type of FlatCAM object to be used as copper thieving reference.\n" "It can be Gerber, Excellon or Geometry." @@ -13235,22 +14908,22 @@ msgstr "" "Copper Thieving.\n" "Это может быть Gerber, Excellon или Geometry." -#: AppTools/ToolCopperThieving.py:153 AppTools/ToolIsolation.py:522 -#: AppTools/ToolNCC.py:562 AppTools/ToolPaint.py:505 +#: flatcamTools/ToolCopperThieving.py:149 flatcamTools/ToolNCC.py:562 +#: flatcamTools/ToolPaint.py:506 msgid "Ref. Object" msgstr "Указатель объекта" -#: AppTools/ToolCopperThieving.py:155 AppTools/ToolIsolation.py:524 -#: AppTools/ToolNCC.py:564 AppTools/ToolPaint.py:507 +#: flatcamTools/ToolCopperThieving.py:151 flatcamTools/ToolNCC.py:564 +#: flatcamTools/ToolPaint.py:508 msgid "The FlatCAM object to be used as non copper clearing reference." msgstr "" "Объект FlatCAM, который будет использоваться как ссылка на очистку от меди." -#: AppTools/ToolCopperThieving.py:331 +#: flatcamTools/ToolCopperThieving.py:327 msgid "Insert Copper thieving" msgstr "Вставить Copper thieving" -#: AppTools/ToolCopperThieving.py:333 +#: flatcamTools/ToolCopperThieving.py:329 msgid "" "Will add a polygon (may be split in multiple parts)\n" "that will surround the actual Gerber traces at a certain distance." @@ -13258,11 +14931,11 @@ msgstr "" "Добавит полигон (может быть разбит на несколько частей)\n" "который будет окружать фактические трассы Gerber на определенном расстоянии." -#: AppTools/ToolCopperThieving.py:392 +#: flatcamTools/ToolCopperThieving.py:388 msgid "Insert Robber Bar" msgstr "Вставить Robber Bar" -#: AppTools/ToolCopperThieving.py:394 +#: flatcamTools/ToolCopperThieving.py:390 msgid "" "Will add a polygon with a defined thickness\n" "that will surround the actual Gerber object\n" @@ -13274,11 +14947,11 @@ msgstr "" "на определенном расстоянии.\n" "Требуется при нанесении рисунка отверстий." -#: AppTools/ToolCopperThieving.py:418 +#: flatcamTools/ToolCopperThieving.py:414 msgid "Select Soldermask object" msgstr "Выберите объект паяльной маски" -#: AppTools/ToolCopperThieving.py:420 +#: flatcamTools/ToolCopperThieving.py:416 msgid "" "Gerber Object with the soldermask.\n" "It will be used as a base for\n" @@ -13288,11 +14961,11 @@ msgstr "" "Он будет использоваться в качестве базы для\n" "рисунка гальванической маски." -#: AppTools/ToolCopperThieving.py:449 +#: flatcamTools/ToolCopperThieving.py:445 msgid "Plated area" msgstr "Зоны покрытия" -#: AppTools/ToolCopperThieving.py:451 +#: flatcamTools/ToolCopperThieving.py:447 msgid "" "The area to be plated by pattern plating.\n" "Basically is made from the openings in the plating mask.\n" @@ -13310,19 +14983,19 @@ msgstr "" "чуть больше, чем медные площадки, и эта область \n" "рассчитывается по отверстиям паяльной маски." -#: AppTools/ToolCopperThieving.py:462 +#: flatcamTools/ToolCopperThieving.py:458 msgid "mm" msgstr "мм" -#: AppTools/ToolCopperThieving.py:464 +#: flatcamTools/ToolCopperThieving.py:460 msgid "in" msgstr "дюймы" -#: AppTools/ToolCopperThieving.py:471 +#: flatcamTools/ToolCopperThieving.py:467 msgid "Generate pattern plating mask" msgstr "Создать рисунок гальванической маски" -#: AppTools/ToolCopperThieving.py:473 +#: flatcamTools/ToolCopperThieving.py:469 msgid "" "Will add to the soldermask gerber geometry\n" "the geometries of the copper thieving and/or\n" @@ -13332,201 +15005,144 @@ msgstr "" "copper thieving и/или\n" "robber bar, если они были созданы." -#: AppTools/ToolCopperThieving.py:629 AppTools/ToolCopperThieving.py:654 +#: flatcamTools/ToolCopperThieving.py:625 +#: flatcamTools/ToolCopperThieving.py:650 msgid "Lines Grid works only for 'itself' reference ..." msgstr "Сетка линий работает только для ссылки 'Как есть'..." -#: AppTools/ToolCopperThieving.py:640 +#: flatcamTools/ToolCopperThieving.py:636 msgid "Solid fill selected." msgstr "Выбрана сплошная заливка." -#: AppTools/ToolCopperThieving.py:645 +#: flatcamTools/ToolCopperThieving.py:641 msgid "Dots grid fill selected." msgstr "Выбрана заливка сетки точек." -#: AppTools/ToolCopperThieving.py:650 +#: flatcamTools/ToolCopperThieving.py:646 msgid "Squares grid fill selected." msgstr "Выбрано заполнение сеткой квадратов." -#: AppTools/ToolCopperThieving.py:671 AppTools/ToolCopperThieving.py:753 -#: AppTools/ToolCopperThieving.py:1355 AppTools/ToolCorners.py:268 -#: AppTools/ToolDblSided.py:657 AppTools/ToolExtractDrills.py:436 -#: AppTools/ToolFiducials.py:470 AppTools/ToolFiducials.py:747 -#: AppTools/ToolOptimal.py:348 AppTools/ToolPunchGerber.py:512 -#: AppTools/ToolQRCode.py:435 +#: flatcamTools/ToolCopperThieving.py:667 +#: flatcamTools/ToolCopperThieving.py:749 +#: flatcamTools/ToolCopperThieving.py:1345 flatcamTools/ToolDblSided.py:657 +#: flatcamTools/ToolExtractDrills.py:436 flatcamTools/ToolFiducials.py:466 +#: flatcamTools/ToolFiducials.py:743 flatcamTools/ToolOptimal.py:342 +#: flatcamTools/ToolPunchGerber.py:512 flatcamTools/ToolQRCode.py:426 msgid "There is no Gerber object loaded ..." msgstr "Нет загруженного Gerber объекта ..." -#: AppTools/ToolCopperThieving.py:684 AppTools/ToolCopperThieving.py:1283 +#: flatcamTools/ToolCopperThieving.py:680 +#: flatcamTools/ToolCopperThieving.py:1273 msgid "Append geometry" msgstr "Добавить геометрию" -#: AppTools/ToolCopperThieving.py:728 AppTools/ToolCopperThieving.py:1316 -#: AppTools/ToolCopperThieving.py:1469 +#: flatcamTools/ToolCopperThieving.py:724 +#: flatcamTools/ToolCopperThieving.py:1306 +#: flatcamTools/ToolCopperThieving.py:1459 msgid "Append source file" msgstr "Добавить исходный файл" -#: AppTools/ToolCopperThieving.py:736 AppTools/ToolCopperThieving.py:1324 +#: flatcamTools/ToolCopperThieving.py:732 +#: flatcamTools/ToolCopperThieving.py:1314 msgid "Copper Thieving Tool done." msgstr "Copper Thieving завершён." -#: AppTools/ToolCopperThieving.py:763 AppTools/ToolCopperThieving.py:796 -#: AppTools/ToolCutOut.py:556 AppTools/ToolCutOut.py:761 -#: AppTools/ToolEtchCompensation.py:360 AppTools/ToolInvertGerber.py:211 -#: AppTools/ToolIsolation.py:1585 AppTools/ToolIsolation.py:1612 -#: AppTools/ToolNCC.py:1617 AppTools/ToolNCC.py:1661 AppTools/ToolNCC.py:1690 -#: AppTools/ToolPaint.py:1493 AppTools/ToolPanelize.py:423 -#: AppTools/ToolPanelize.py:437 AppTools/ToolSub.py:295 AppTools/ToolSub.py:308 -#: AppTools/ToolSub.py:499 AppTools/ToolSub.py:514 +#: flatcamTools/ToolCopperThieving.py:759 +#: flatcamTools/ToolCopperThieving.py:792 flatcamTools/ToolCutOut.py:519 +#: flatcamTools/ToolCutOut.py:724 flatcamTools/ToolInvertGerber.py:208 +#: flatcamTools/ToolNCC.py:1599 flatcamTools/ToolNCC.py:1640 +#: flatcamTools/ToolNCC.py:1669 flatcamTools/ToolPaint.py:1474 +#: flatcamTools/ToolPanelize.py:412 flatcamTools/ToolPanelize.py:426 +#: flatcamTools/ToolSub.py:294 flatcamTools/ToolSub.py:307 +#: flatcamTools/ToolSub.py:498 flatcamTools/ToolSub.py:513 #: tclCommands/TclCommandCopperClear.py:97 tclCommands/TclCommandPaint.py:99 msgid "Could not retrieve object" msgstr "Не удалось получить объект" -#: AppTools/ToolCopperThieving.py:773 AppTools/ToolIsolation.py:1672 -#: AppTools/ToolNCC.py:1669 Common.py:210 -msgid "Click the start point of the area." -msgstr "Нажмите на начальную точку области." - -#: AppTools/ToolCopperThieving.py:824 +#: flatcamTools/ToolCopperThieving.py:820 msgid "Click the end point of the filling area." msgstr "Нажмите на конечную точку области рисования." -#: AppTools/ToolCopperThieving.py:830 AppTools/ToolIsolation.py:2504 -#: AppTools/ToolIsolation.py:2556 AppTools/ToolNCC.py:1731 -#: AppTools/ToolNCC.py:1783 AppTools/ToolPaint.py:1625 -#: AppTools/ToolPaint.py:1676 Common.py:275 Common.py:377 -msgid "Zone added. Click to start adding next zone or right click to finish." -msgstr "Зона добавлена. Щелкните правой кнопкой мыши для завершения." - -#: AppTools/ToolCopperThieving.py:952 AppTools/ToolCopperThieving.py:956 -#: AppTools/ToolCopperThieving.py:1017 +#: flatcamTools/ToolCopperThieving.py:942 +#: flatcamTools/ToolCopperThieving.py:946 +#: flatcamTools/ToolCopperThieving.py:1007 msgid "Thieving" msgstr "Thieving" -#: AppTools/ToolCopperThieving.py:963 +#: flatcamTools/ToolCopperThieving.py:953 msgid "Copper Thieving Tool started. Reading parameters." msgstr "Copper Thieving. Чтение параметров." -#: AppTools/ToolCopperThieving.py:988 +#: flatcamTools/ToolCopperThieving.py:978 msgid "Copper Thieving Tool. Preparing isolation polygons." msgstr "Copper Thieving. Подготовка безмедных полигонов." -#: AppTools/ToolCopperThieving.py:1033 +#: flatcamTools/ToolCopperThieving.py:1023 msgid "Copper Thieving Tool. Preparing areas to fill with copper." msgstr "Copper Thieving. Подготовка участков для заполнения медью." -#: AppTools/ToolCopperThieving.py:1044 AppTools/ToolOptimal.py:355 -#: AppTools/ToolPanelize.py:810 AppTools/ToolRulesCheck.py:1127 +#: flatcamTools/ToolCopperThieving.py:1034 flatcamTools/ToolOptimal.py:349 +#: flatcamTools/ToolPanelize.py:799 flatcamTools/ToolRulesCheck.py:1127 msgid "Working..." msgstr "Обработка…" -#: AppTools/ToolCopperThieving.py:1071 +#: flatcamTools/ToolCopperThieving.py:1061 msgid "Geometry not supported for bounding box" msgstr "Геометрия не поддерживается для ограничивающих рамок" -#: AppTools/ToolCopperThieving.py:1077 AppTools/ToolNCC.py:1962 -#: AppTools/ToolNCC.py:2017 AppTools/ToolNCC.py:3052 AppTools/ToolPaint.py:3405 +#: flatcamTools/ToolCopperThieving.py:1067 flatcamTools/ToolNCC.py:1933 +#: flatcamTools/ToolNCC.py:1988 flatcamTools/ToolNCC.py:2992 +#: flatcamTools/ToolPaint.py:3380 msgid "No object available." msgstr "Нет доступных объектов." -#: AppTools/ToolCopperThieving.py:1114 AppTools/ToolNCC.py:1987 -#: AppTools/ToolNCC.py:2040 AppTools/ToolNCC.py:3094 +#: flatcamTools/ToolCopperThieving.py:1104 flatcamTools/ToolNCC.py:1958 +#: flatcamTools/ToolNCC.py:2011 flatcamTools/ToolNCC.py:3034 msgid "The reference object type is not supported." msgstr "Тип указанного объекта не поддерживается." -#: AppTools/ToolCopperThieving.py:1119 +#: flatcamTools/ToolCopperThieving.py:1109 msgid "Copper Thieving Tool. Appending new geometry and buffering." msgstr "Copper Thieving. Добавление новой геометрии и буферизации." -#: AppTools/ToolCopperThieving.py:1135 +#: flatcamTools/ToolCopperThieving.py:1125 msgid "Create geometry" msgstr "Создать геометрию" -#: AppTools/ToolCopperThieving.py:1335 AppTools/ToolCopperThieving.py:1339 +#: flatcamTools/ToolCopperThieving.py:1325 +#: flatcamTools/ToolCopperThieving.py:1329 msgid "P-Plating Mask" msgstr "Рисунок гальванической маски" -#: AppTools/ToolCopperThieving.py:1361 +#: flatcamTools/ToolCopperThieving.py:1351 msgid "Append PP-M geometry" msgstr "Добавить PP-M геометрию" -#: AppTools/ToolCopperThieving.py:1487 +#: flatcamTools/ToolCopperThieving.py:1477 msgid "Generating Pattern Plating Mask done." msgstr "Создание рисунка гальванической маски выполнено." -#: AppTools/ToolCopperThieving.py:1559 +#: flatcamTools/ToolCopperThieving.py:1549 msgid "Copper Thieving Tool exit." msgstr "Выход из Copper Thieving." -#: AppTools/ToolCorners.py:57 -#, fuzzy -#| msgid "Gerber Object to which will be added a copper thieving." -msgid "The Gerber object to which will be added corner markers." -msgstr "Gerber объект, к которому будет добавлен copper thieving." - -#: AppTools/ToolCorners.py:73 -#, fuzzy -#| msgid "Location" -msgid "Locations" -msgstr "Местоположение" - -#: AppTools/ToolCorners.py:75 -msgid "Locations where to place corner markers." -msgstr "" - -#: AppTools/ToolCorners.py:92 AppTools/ToolFiducials.py:95 -msgid "Top Right" -msgstr "Верхний правый" - -#: AppTools/ToolCorners.py:101 -#, fuzzy -#| msgid "Toggle Panel" -msgid "Toggle ALL" -msgstr "Переключить бок. панель" - -#: AppTools/ToolCorners.py:167 -#, fuzzy -#| msgid "Add area" -msgid "Add Marker" -msgstr "Добавить область" - -#: AppTools/ToolCorners.py:169 -msgid "Will add corner markers to the selected Gerber file." -msgstr "" - -#: AppTools/ToolCorners.py:235 -#, fuzzy -#| msgid "QRCode Tool" -msgid "Corners Tool" -msgstr "QR код" - -#: AppTools/ToolCorners.py:305 -msgid "Please select at least a location" -msgstr "" - -#: AppTools/ToolCorners.py:440 -#, fuzzy -#| msgid "Copper Thieving Tool exit." -msgid "Corners Tool exit." -msgstr "Выход из Copper Thieving." - -#: AppTools/ToolCutOut.py:41 +#: flatcamTools/ToolCutOut.py:41 msgid "Cutout PCB" msgstr "Обрезка платы" -#: AppTools/ToolCutOut.py:69 AppTools/ToolPanelize.py:53 +#: flatcamTools/ToolCutOut.py:69 flatcamTools/ToolPanelize.py:54 msgid "Source Object" msgstr "Исходный объект" -#: AppTools/ToolCutOut.py:70 +#: flatcamTools/ToolCutOut.py:70 msgid "Object to be cutout" msgstr "Объект вырезания" -#: AppTools/ToolCutOut.py:75 +#: flatcamTools/ToolCutOut.py:75 msgid "Kind" msgstr "Тип" -#: AppTools/ToolCutOut.py:97 +#: flatcamTools/ToolCutOut.py:97 msgid "" "Specify the type of object to be cutout.\n" "It can be of type: Gerber or Geometry.\n" @@ -13538,19 +15154,19 @@ msgstr "" "То, что выбрано здесь будет диктовать вид\n" "объектов, которые будут заполнять поле со списком \"объект\"." -#: AppTools/ToolCutOut.py:121 +#: flatcamTools/ToolCutOut.py:121 msgid "Tool Parameters" msgstr "Параметры инструмента" -#: AppTools/ToolCutOut.py:238 +#: flatcamTools/ToolCutOut.py:238 msgid "A. Automatic Bridge Gaps" msgstr "А. Автоматическое размещение перемычек" -#: AppTools/ToolCutOut.py:240 +#: flatcamTools/ToolCutOut.py:240 msgid "This section handle creation of automatic bridge gaps." msgstr "Этот раздел обрабатывает создание автоматических зазоров моста." -#: AppTools/ToolCutOut.py:247 +#: flatcamTools/ToolCutOut.py:247 msgid "" "Number of gaps used for the Automatic cutout.\n" "There can be maximum 8 bridges/gaps.\n" @@ -13574,11 +15190,11 @@ msgstr "" "- 2tb - 2 * top + 2 * bottom\n" "- 8 - 2*слева + 2 * справа + 2*сверху + 2 * снизу" -#: AppTools/ToolCutOut.py:269 +#: flatcamTools/ToolCutOut.py:269 msgid "Generate Freeform Geometry" msgstr "Создать геометрию свободной формы" -#: AppTools/ToolCutOut.py:271 +#: flatcamTools/ToolCutOut.py:271 msgid "" "Cutout the selected object.\n" "The cutout shape can be of any shape.\n" @@ -13588,11 +15204,11 @@ msgstr "" "Форма выреза может быть любой формы.\n" "Полезно, когда печатная плата имеет непрямоугольную форму." -#: AppTools/ToolCutOut.py:283 +#: flatcamTools/ToolCutOut.py:283 msgid "Generate Rectangular Geometry" msgstr "Создать прямоугольную геометрию" -#: AppTools/ToolCutOut.py:285 +#: flatcamTools/ToolCutOut.py:285 msgid "" "Cutout the selected object.\n" "The resulting cutout shape is\n" @@ -13604,11 +15220,11 @@ msgstr "" "всегда прямоугольная форма, и это будет\n" "ограничивающий прямоугольник объекта." -#: AppTools/ToolCutOut.py:304 +#: flatcamTools/ToolCutOut.py:304 msgid "B. Manual Bridge Gaps" msgstr "Б. Ручное размещение перемычек" -#: AppTools/ToolCutOut.py:306 +#: flatcamTools/ToolCutOut.py:306 msgid "" "This section handle creation of manual bridge gaps.\n" "This is done by mouse clicking on the perimeter of the\n" @@ -13619,15 +15235,15 @@ msgstr "" "объекта геометрии, который используется \n" "в качестве объекта выреза. " -#: AppTools/ToolCutOut.py:321 +#: flatcamTools/ToolCutOut.py:321 msgid "Geometry object used to create the manual cutout." msgstr "Геометрический объект, используемый для создания ручного выреза." -#: AppTools/ToolCutOut.py:328 +#: flatcamTools/ToolCutOut.py:328 msgid "Generate Manual Geometry" msgstr "Создать ручную геометрию" -#: AppTools/ToolCutOut.py:330 +#: flatcamTools/ToolCutOut.py:330 msgid "" "If the object to be cutout is a Gerber\n" "first create a Geometry that surrounds it,\n" @@ -13639,11 +15255,11 @@ msgstr "" "для использования в качестве выреза, если он еще не существует.\n" "Выберите исходный файл Gerber в верхнем поле со списком объектов." -#: AppTools/ToolCutOut.py:343 +#: flatcamTools/ToolCutOut.py:343 msgid "Manual Add Bridge Gaps" msgstr "Ручное добавление перемычек" -#: AppTools/ToolCutOut.py:345 +#: flatcamTools/ToolCutOut.py:345 msgid "" "Use the left mouse button (LMB) click\n" "to create a bridge gap to separate the PCB from\n" @@ -13656,7 +15272,7 @@ msgstr "" "Щелчок ЛКМ должен быть сделан по периметру\n" "объекта геометрии, используемой в качестве геометрии выреза." -#: AppTools/ToolCutOut.py:561 +#: flatcamTools/ToolCutOut.py:524 msgid "" "There is no object selected for Cutout.\n" "Select one and try again." @@ -13664,20 +15280,20 @@ msgstr "" "Не выбран объект для обрезки.\n" "Выберите один и повторите попытку." -#: AppTools/ToolCutOut.py:567 AppTools/ToolCutOut.py:770 -#: AppTools/ToolCutOut.py:951 AppTools/ToolCutOut.py:1033 +#: flatcamTools/ToolCutOut.py:530 flatcamTools/ToolCutOut.py:733 +#: flatcamTools/ToolCutOut.py:914 flatcamTools/ToolCutOut.py:996 #: tclCommands/TclCommandGeoCutout.py:184 msgid "Tool Diameter is zero value. Change it to a positive real number." msgstr "" "Диаметр инструмента имеет нулевое значение. Измените его на положительное " "целое число." -#: AppTools/ToolCutOut.py:581 AppTools/ToolCutOut.py:785 +#: flatcamTools/ToolCutOut.py:544 flatcamTools/ToolCutOut.py:748 msgid "Number of gaps value is missing. Add it and retry." msgstr "" "Значение количества перемычек отсутствует. Добавьте его и повторите попытку.." -#: AppTools/ToolCutOut.py:586 AppTools/ToolCutOut.py:789 +#: flatcamTools/ToolCutOut.py:549 flatcamTools/ToolCutOut.py:752 msgid "" "Gaps value can be only one of: 'None', 'lr', 'tb', '2lr', '2tb', 4 or 8. " "Fill in a correct value and retry. " @@ -13685,7 +15301,7 @@ msgstr "" "Значение перемычки может быть только одним из: «None», «lr», «tb», «2lr», " "«2tb», 4 или 8. Введите правильное значение и повторите попытку. " -#: AppTools/ToolCutOut.py:591 AppTools/ToolCutOut.py:795 +#: flatcamTools/ToolCutOut.py:554 flatcamTools/ToolCutOut.py:758 msgid "" "Cutout operation cannot be done on a multi-geo Geometry.\n" "Optionally, this Multi-geo Geometry can be converted to Single-geo " @@ -13697,46 +15313,45 @@ msgstr "" "Geometry,\n" "а после этого выполнена обрезка." -#: AppTools/ToolCutOut.py:743 AppTools/ToolCutOut.py:940 +#: flatcamTools/ToolCutOut.py:706 flatcamTools/ToolCutOut.py:903 msgid "Any form CutOut operation finished." msgstr "Операция обрезки закончена." -#: AppTools/ToolCutOut.py:765 AppTools/ToolEtchCompensation.py:366 -#: AppTools/ToolInvertGerber.py:217 AppTools/ToolIsolation.py:1589 -#: AppTools/ToolIsolation.py:1616 AppTools/ToolNCC.py:1621 -#: AppTools/ToolPaint.py:1416 AppTools/ToolPanelize.py:428 -#: tclCommands/TclCommandBbox.py:71 tclCommands/TclCommandNregions.py:71 +#: flatcamTools/ToolCutOut.py:728 flatcamTools/ToolInvertGerber.py:214 +#: flatcamTools/ToolNCC.py:1603 flatcamTools/ToolPaint.py:1397 +#: flatcamTools/ToolPanelize.py:417 tclCommands/TclCommandBbox.py:71 +#: tclCommands/TclCommandNregions.py:71 msgid "Object not found" msgstr "Объект не найден" -#: AppTools/ToolCutOut.py:909 +#: flatcamTools/ToolCutOut.py:872 msgid "Rectangular cutout with negative margin is not possible." msgstr "Прямоугольный вырез с отрицательным отступом невозможен." -#: AppTools/ToolCutOut.py:945 +#: flatcamTools/ToolCutOut.py:908 msgid "" "Click on the selected geometry object perimeter to create a bridge gap ..." msgstr "" "Щелкните по периметру выбранного объекта геометрии, чтобы создать " "перемычку ..." -#: AppTools/ToolCutOut.py:962 AppTools/ToolCutOut.py:988 +#: flatcamTools/ToolCutOut.py:925 flatcamTools/ToolCutOut.py:951 msgid "Could not retrieve Geometry object" msgstr "Не удалось получить объект Geometry" -#: AppTools/ToolCutOut.py:993 +#: flatcamTools/ToolCutOut.py:956 msgid "Geometry object for manual cutout not found" msgstr "Объект геометрии для ручного выреза не найден" -#: AppTools/ToolCutOut.py:1003 +#: flatcamTools/ToolCutOut.py:966 msgid "Added manual Bridge Gap." msgstr "Премычка добавлена вручную." -#: AppTools/ToolCutOut.py:1015 +#: flatcamTools/ToolCutOut.py:978 msgid "Could not retrieve Gerber object" msgstr "Не удалось получить объект Gerber" -#: AppTools/ToolCutOut.py:1020 +#: flatcamTools/ToolCutOut.py:983 msgid "" "There is no Gerber object selected for Cutout.\n" "Select one and try again." @@ -13744,7 +15359,7 @@ msgstr "" "Для обрезки не выбран объект Gerber.\n" "Выберите один и повторите попытку." -#: AppTools/ToolCutOut.py:1026 +#: flatcamTools/ToolCutOut.py:989 msgid "" "The selected object has to be of Gerber type.\n" "Select a Gerber file and try again." @@ -13752,32 +15367,32 @@ msgstr "" "Выбранный объект должен быть типа Gerber.\n" "Выберите файл Gerber и повторите попытку." -#: AppTools/ToolCutOut.py:1061 +#: flatcamTools/ToolCutOut.py:1024 msgid "Geometry not supported for cutout" msgstr "Геометрия не поддерживается для выреза" -#: AppTools/ToolCutOut.py:1136 +#: flatcamTools/ToolCutOut.py:1099 msgid "Making manual bridge gap..." msgstr "Создание перемычки вручную..." -#: AppTools/ToolDblSided.py:26 +#: flatcamTools/ToolDblSided.py:26 msgid "2-Sided PCB" msgstr "2-х сторонняя плата" -#: AppTools/ToolDblSided.py:52 +#: flatcamTools/ToolDblSided.py:52 msgid "Mirror Operation" msgstr "Операция зеркалирования" -#: AppTools/ToolDblSided.py:53 +#: flatcamTools/ToolDblSided.py:53 msgid "Objects to be mirrored" msgstr "Объекты для зеркального отображения" -#: AppTools/ToolDblSided.py:65 +#: flatcamTools/ToolDblSided.py:65 msgid "Gerber to be mirrored" msgstr "Объект Gerber для зеркалирования" -#: AppTools/ToolDblSided.py:69 AppTools/ToolDblSided.py:97 -#: AppTools/ToolDblSided.py:127 +#: flatcamTools/ToolDblSided.py:69 flatcamTools/ToolDblSided.py:97 +#: flatcamTools/ToolDblSided.py:127 msgid "" "Mirrors (flips) the specified object around \n" "the specified axis. Does not create a new \n" @@ -13787,27 +15402,27 @@ msgstr "" "вокруг заданной оси. Не создаёт новый объект,\n" "но изменяет его." -#: AppTools/ToolDblSided.py:93 +#: flatcamTools/ToolDblSided.py:93 msgid "Excellon Object to be mirrored." msgstr "Объект Excellon для отражения." -#: AppTools/ToolDblSided.py:122 +#: flatcamTools/ToolDblSided.py:122 msgid "Geometry Obj to be mirrored." msgstr "Объект Geometry для зеркалирования." -#: AppTools/ToolDblSided.py:158 +#: flatcamTools/ToolDblSided.py:158 msgid "Mirror Parameters" msgstr "Параметры зеркалирования" -#: AppTools/ToolDblSided.py:159 +#: flatcamTools/ToolDblSided.py:159 msgid "Parameters for the mirror operation" msgstr "Параметры для зеркальной операции" -#: AppTools/ToolDblSided.py:164 +#: flatcamTools/ToolDblSided.py:164 msgid "Mirror Axis" msgstr "Ось зеркалирования" -#: AppTools/ToolDblSided.py:175 +#: flatcamTools/ToolDblSided.py:175 msgid "" "The coordinates used as reference for the mirror operation.\n" "Can be:\n" @@ -13821,11 +15436,11 @@ msgstr "" "- Рамка-> набор координат (x, y), полученных из центра\n" "ограничительной рамки другого объекта, выбранного ниже" -#: AppTools/ToolDblSided.py:189 +#: flatcamTools/ToolDblSided.py:189 msgid "Point coordinates" msgstr "Координаты точек" -#: AppTools/ToolDblSided.py:194 +#: flatcamTools/ToolDblSided.py:194 msgid "" "Add the coordinates in format (x, y) through which the mirroring " "axis\n" @@ -13840,7 +15455,7 @@ msgstr "" "Координаты (x, y) фиксируются нажатием клавиши SHIFT\n" "и щелчком ЛКМ на холсте или вы можете ввести координаты вручную." -#: AppTools/ToolDblSided.py:218 +#: flatcamTools/ToolDblSided.py:218 msgid "" "It can be of type: Gerber or Excellon or Geometry.\n" "The coordinates of the center of the bounding box are used\n" @@ -13850,11 +15465,11 @@ msgstr "" "Используются координаты центра ограничительной рамки.\n" "в качестве ориентира для работы с зеркалированием." -#: AppTools/ToolDblSided.py:252 +#: flatcamTools/ToolDblSided.py:252 msgid "Bounds Values" msgstr "Значения границ" -#: AppTools/ToolDblSided.py:254 +#: flatcamTools/ToolDblSided.py:254 msgid "" "Select on canvas the object(s)\n" "for which to calculate bounds values." @@ -13862,39 +15477,39 @@ msgstr "" "Выбор объектов\n" "для которых вычислять граничные значения." -#: AppTools/ToolDblSided.py:264 +#: flatcamTools/ToolDblSided.py:264 msgid "X min" msgstr "X min" -#: AppTools/ToolDblSided.py:266 AppTools/ToolDblSided.py:280 +#: flatcamTools/ToolDblSided.py:266 flatcamTools/ToolDblSided.py:280 msgid "Minimum location." msgstr "Минимальное местоположение." -#: AppTools/ToolDblSided.py:278 +#: flatcamTools/ToolDblSided.py:278 msgid "Y min" msgstr "Y min" -#: AppTools/ToolDblSided.py:292 +#: flatcamTools/ToolDblSided.py:292 msgid "X max" msgstr "X max" -#: AppTools/ToolDblSided.py:294 AppTools/ToolDblSided.py:308 +#: flatcamTools/ToolDblSided.py:294 flatcamTools/ToolDblSided.py:308 msgid "Maximum location." msgstr "Максимальное местоположение." -#: AppTools/ToolDblSided.py:306 +#: flatcamTools/ToolDblSided.py:306 msgid "Y max" msgstr "Y max" -#: AppTools/ToolDblSided.py:317 +#: flatcamTools/ToolDblSided.py:317 msgid "Center point coordinates" msgstr "Координаты центральной точки" -#: AppTools/ToolDblSided.py:319 +#: flatcamTools/ToolDblSided.py:319 msgid "Centroid" msgstr "Центр" -#: AppTools/ToolDblSided.py:321 +#: flatcamTools/ToolDblSided.py:321 msgid "" "The center point location for the rectangular\n" "bounding shape. Centroid. Format is (x, y)." @@ -13902,11 +15517,11 @@ msgstr "" "Расположение центральной точки для прямоугольной \n" "ограничивающей фигуры. Центроид. Формат (х, у)." -#: AppTools/ToolDblSided.py:330 +#: flatcamTools/ToolDblSided.py:330 msgid "Calculate Bounds Values" msgstr "Рассчитать значения границ" -#: AppTools/ToolDblSided.py:332 +#: flatcamTools/ToolDblSided.py:332 msgid "" "Calculate the enveloping rectangular shape coordinates,\n" "for the selection of objects.\n" @@ -13916,11 +15531,11 @@ msgstr "" "для выбранных объектов.\n" "Форма огибающей параллельна осям X, Y." -#: AppTools/ToolDblSided.py:352 +#: flatcamTools/ToolDblSided.py:352 msgid "PCB Alignment" msgstr "Выравнивание" -#: AppTools/ToolDblSided.py:354 AppTools/ToolDblSided.py:456 +#: flatcamTools/ToolDblSided.py:354 flatcamTools/ToolDblSided.py:456 msgid "" "Creates an Excellon Object containing the\n" "specified alignment holes and their mirror\n" @@ -13930,11 +15545,11 @@ msgstr "" "контрольные отверстия и их\n" "зеркальные изображения." -#: AppTools/ToolDblSided.py:361 +#: flatcamTools/ToolDblSided.py:361 msgid "Drill Diameter" msgstr "Диаметр сверла" -#: AppTools/ToolDblSided.py:390 AppTools/ToolDblSided.py:397 +#: flatcamTools/ToolDblSided.py:390 flatcamTools/ToolDblSided.py:397 msgid "" "The reference point used to create the second alignment drill\n" "from the first alignment drill, by doing mirror.\n" @@ -13944,11 +15559,11 @@ msgstr "" "первого выравнивающего отверстия путем выполнения зеркалирования.\n" "Это можно изменить в разделе Параметры зеркалирования -> Опорная точка" -#: AppTools/ToolDblSided.py:410 +#: flatcamTools/ToolDblSided.py:410 msgid "Alignment Drill Coordinates" msgstr "Координаты выравнивающего отверстия" -#: AppTools/ToolDblSided.py:412 +#: flatcamTools/ToolDblSided.py:412 msgid "" "Alignment holes (x1, y1), (x2, y2), ... on one side of the mirror axis. For " "each set of (x, y) coordinates\n" @@ -13966,11 +15581,11 @@ msgstr "" "- одно сверление в положении зеркала над осью, выбранной выше в «Оси " "зеркала»." -#: AppTools/ToolDblSided.py:420 +#: flatcamTools/ToolDblSided.py:420 msgid "Drill coordinates" msgstr "Координаты отверстия" -#: AppTools/ToolDblSided.py:427 +#: flatcamTools/ToolDblSided.py:427 msgid "" "Add alignment drill holes coordinates in the format: (x1, y1), (x2, " "y2), ... \n" @@ -13994,23 +15609,23 @@ msgstr "" "нажмите Вставить.\n" "- путем ввода координат вручную в формате: (x1, y1), (x2, y2), ..." -#: AppTools/ToolDblSided.py:442 +#: flatcamTools/ToolDblSided.py:442 msgid "Delete Last" msgstr "Удалить последний" -#: AppTools/ToolDblSided.py:444 +#: flatcamTools/ToolDblSided.py:444 msgid "Delete the last coordinates tuple in the list." msgstr "Удаляет последний кортеж координат в списке." -#: AppTools/ToolDblSided.py:454 +#: flatcamTools/ToolDblSided.py:454 msgid "Create Excellon Object" msgstr "Создать объект Excellon" -#: AppTools/ToolDblSided.py:541 +#: flatcamTools/ToolDblSided.py:541 msgid "2-Sided Tool" msgstr "2-х сторонняя плата" -#: AppTools/ToolDblSided.py:581 +#: flatcamTools/ToolDblSided.py:581 msgid "" "'Point' reference is selected and 'Point' coordinates are missing. Add them " "and retry." @@ -14018,78 +15633,74 @@ msgstr "" "Выбран указатель 'Точка', а координаты точки отсутствуют. Добавьте их и " "повторите попытку." -#: AppTools/ToolDblSided.py:600 +#: flatcamTools/ToolDblSided.py:600 msgid "There is no Box reference object loaded. Load one and retry." msgstr "Эталонный объект не загружен. Загрузите один и повторите попытку." -#: AppTools/ToolDblSided.py:612 +#: flatcamTools/ToolDblSided.py:612 msgid "No value or wrong format in Drill Dia entry. Add it and retry." msgstr "" "Нет значения либо неправильный формат значения диаметра сверла. Добавьте его " "и повторите попытку." -#: AppTools/ToolDblSided.py:623 +#: flatcamTools/ToolDblSided.py:623 msgid "There are no Alignment Drill Coordinates to use. Add them and retry." msgstr "" "Нет координат выравнивающих отверстий. Добавьте их и повторите попытку." -#: AppTools/ToolDblSided.py:648 +#: flatcamTools/ToolDblSided.py:648 msgid "Excellon object with alignment drills created..." msgstr "Объект Excellon с выравнивающими отверстиями создан..." -#: AppTools/ToolDblSided.py:661 AppTools/ToolDblSided.py:704 -#: AppTools/ToolDblSided.py:748 +#: flatcamTools/ToolDblSided.py:661 flatcamTools/ToolDblSided.py:704 +#: flatcamTools/ToolDblSided.py:748 msgid "Only Gerber, Excellon and Geometry objects can be mirrored." msgstr "" "Зеркальное отображение доступно только для объектов Gerber, Excellon и " "Geometry." -#: AppTools/ToolDblSided.py:671 AppTools/ToolDblSided.py:715 +#: flatcamTools/ToolDblSided.py:671 flatcamTools/ToolDblSided.py:715 msgid "" "There are no Point coordinates in the Point field. Add coords and try " "again ..." msgstr "" "В поле Точка нет координат точки. Добавьте координаты и попробуйте снова ..." -#: AppTools/ToolDblSided.py:681 AppTools/ToolDblSided.py:725 -#: AppTools/ToolDblSided.py:762 +#: flatcamTools/ToolDblSided.py:681 flatcamTools/ToolDblSided.py:725 +#: flatcamTools/ToolDblSided.py:762 msgid "There is no Box object loaded ..." msgstr "Там нет загруженного объекта Box ..." -#: AppTools/ToolDblSided.py:691 AppTools/ToolDblSided.py:735 -#: AppTools/ToolDblSided.py:772 +#: flatcamTools/ToolDblSided.py:691 flatcamTools/ToolDblSided.py:735 +#: flatcamTools/ToolDblSided.py:772 msgid "was mirrored" msgstr "был отражён" -#: AppTools/ToolDblSided.py:700 AppTools/ToolPunchGerber.py:533 +#: flatcamTools/ToolDblSided.py:700 flatcamTools/ToolPunchGerber.py:533 msgid "There is no Excellon object loaded ..." msgstr "Не загружен объект Excellon ..." -#: AppTools/ToolDblSided.py:744 +#: flatcamTools/ToolDblSided.py:744 msgid "There is no Geometry object loaded ..." msgstr "Не загружен объект геометрии ..." -#: AppTools/ToolDblSided.py:818 App_Main.py:4350 App_Main.py:4505 -msgid "Failed. No object(s) selected..." -msgstr "Нудача. Объекты не выбраны ..." - -#: AppTools/ToolDistance.py:57 AppTools/ToolDistanceMin.py:50 +#: flatcamTools/ToolDistance.py:57 flatcamTools/ToolDistanceMin.py:51 msgid "Those are the units in which the distance is measured." msgstr "Это единицы измерения расстояния." -#: AppTools/ToolDistance.py:58 AppTools/ToolDistanceMin.py:51 +#: flatcamTools/ToolDistance.py:58 flatcamTools/ToolDistanceMin.py:52 msgid "METRIC (mm)" msgstr "Метрическая (мм)" -#: AppTools/ToolDistance.py:58 AppTools/ToolDistanceMin.py:51 +#: flatcamTools/ToolDistance.py:58 flatcamTools/ToolDistanceMin.py:52 msgid "INCH (in)" msgstr "Дюйм (внутри)" -#: AppTools/ToolDistance.py:64 +#: flatcamTools/ToolDistance.py:64 msgid "Snap to center" msgstr "Щелчок по центру" -#: AppTools/ToolDistance.py:66 +#: flatcamTools/ToolDistance.py:66 msgid "" "Mouse cursor will snap to the center of the pad/drill\n" "when it is hovering over the geometry of the pad/drill." @@ -14097,101 +15708,95 @@ msgstr "" "Курсор мыши будет привязан к центру площадки/отверстия\n" "когда он находится над геометрией площадки/отверстия." -#: AppTools/ToolDistance.py:76 +#: flatcamTools/ToolDistance.py:76 msgid "Start Coords" msgstr "Координаты начала" -#: AppTools/ToolDistance.py:77 AppTools/ToolDistance.py:82 +#: flatcamTools/ToolDistance.py:77 flatcamTools/ToolDistance.py:82 msgid "This is measuring Start point coordinates." msgstr "Это измерение координат начальной точки." -#: AppTools/ToolDistance.py:87 +#: flatcamTools/ToolDistance.py:87 msgid "Stop Coords" msgstr "Координаты окончания" -#: AppTools/ToolDistance.py:88 AppTools/ToolDistance.py:93 +#: flatcamTools/ToolDistance.py:88 flatcamTools/ToolDistance.py:93 msgid "This is the measuring Stop point coordinates." msgstr "Это координаты точки остановки измерения." -#: AppTools/ToolDistance.py:98 AppTools/ToolDistanceMin.py:62 +#: flatcamTools/ToolDistance.py:98 flatcamTools/ToolDistanceMin.py:63 msgid "Dx" msgstr "Дистанция по X" -#: AppTools/ToolDistance.py:99 AppTools/ToolDistance.py:104 -#: AppTools/ToolDistanceMin.py:63 AppTools/ToolDistanceMin.py:92 +#: flatcamTools/ToolDistance.py:99 flatcamTools/ToolDistance.py:104 +#: flatcamTools/ToolDistanceMin.py:64 flatcamTools/ToolDistanceMin.py:93 msgid "This is the distance measured over the X axis." msgstr "Это расстояние, измеренное по оси X." -#: AppTools/ToolDistance.py:109 AppTools/ToolDistanceMin.py:65 +#: flatcamTools/ToolDistance.py:109 flatcamTools/ToolDistanceMin.py:66 msgid "Dy" msgstr "Дистанция по Y" -#: AppTools/ToolDistance.py:110 AppTools/ToolDistance.py:115 -#: AppTools/ToolDistanceMin.py:66 AppTools/ToolDistanceMin.py:97 +#: flatcamTools/ToolDistance.py:110 flatcamTools/ToolDistance.py:115 +#: flatcamTools/ToolDistanceMin.py:67 flatcamTools/ToolDistanceMin.py:98 msgid "This is the distance measured over the Y axis." msgstr "Это расстояние, измеренное по оси Y." -#: AppTools/ToolDistance.py:121 AppTools/ToolDistance.py:126 -#: AppTools/ToolDistanceMin.py:69 AppTools/ToolDistanceMin.py:102 +#: flatcamTools/ToolDistance.py:121 flatcamTools/ToolDistance.py:126 +#: flatcamTools/ToolDistanceMin.py:70 flatcamTools/ToolDistanceMin.py:103 msgid "This is orientation angle of the measuring line." msgstr "Это угол ориентации измерительной линии." -#: AppTools/ToolDistance.py:131 AppTools/ToolDistanceMin.py:71 +#: flatcamTools/ToolDistance.py:131 flatcamTools/ToolDistanceMin.py:72 msgid "DISTANCE" msgstr "РАССТОЯНИЕ" -#: AppTools/ToolDistance.py:132 AppTools/ToolDistance.py:137 +#: flatcamTools/ToolDistance.py:132 flatcamTools/ToolDistance.py:137 msgid "This is the point to point Euclidian distance." msgstr "Это точка евклидова расстояния." -#: AppTools/ToolDistance.py:142 AppTools/ToolDistance.py:339 -#: AppTools/ToolDistanceMin.py:114 +#: flatcamTools/ToolDistance.py:142 flatcamTools/ToolDistance.py:337 +#: flatcamTools/ToolDistanceMin.py:115 msgid "Measure" msgstr "Измерить" -#: AppTools/ToolDistance.py:274 +#: flatcamTools/ToolDistance.py:272 msgid "Working" msgstr "Обработка" -#: AppTools/ToolDistance.py:279 +#: flatcamTools/ToolDistance.py:277 msgid "MEASURING: Click on the Start point ..." msgstr "ИЗМЕРИТЕЛЬ: Нажмите на начальную точку ..." -#: AppTools/ToolDistance.py:389 +#: flatcamTools/ToolDistance.py:387 msgid "Distance Tool finished." msgstr "Измеритель завершён." -#: AppTools/ToolDistance.py:461 +#: flatcamTools/ToolDistance.py:455 msgid "Pads overlapped. Aborting." msgstr "Площадки перекрываются. Отмена." -#: AppTools/ToolDistance.py:489 -#, fuzzy -#| msgid "Distance Tool finished." -msgid "Distance Tool cancelled." -msgstr "Измеритель завершён." - -#: AppTools/ToolDistance.py:494 +#: flatcamTools/ToolDistance.py:485 msgid "MEASURING: Click on the Destination point ..." msgstr "ИЗМЕРИТЕЛЬ: Нажмите на конечную точку ..." -#: AppTools/ToolDistance.py:503 AppTools/ToolDistanceMin.py:284 +#: flatcamTools/ToolDistance.py:494 flatcamTools/ToolDistanceMin.py:285 msgid "MEASURING" msgstr "ИЗМЕРЕНИЕ" -#: AppTools/ToolDistance.py:504 AppTools/ToolDistanceMin.py:285 +#: flatcamTools/ToolDistance.py:495 flatcamTools/ToolDistanceMin.py:286 msgid "Result" msgstr "Результат" -#: AppTools/ToolDistanceMin.py:31 AppTools/ToolDistanceMin.py:143 +#: flatcamTools/ToolDistanceMin.py:32 flatcamTools/ToolDistanceMin.py:144 msgid "Minimum Distance Tool" msgstr "Минимальное расстояние" -#: AppTools/ToolDistanceMin.py:54 +#: flatcamTools/ToolDistanceMin.py:55 msgid "First object point" msgstr "Первая точка объекта" -#: AppTools/ToolDistanceMin.py:55 AppTools/ToolDistanceMin.py:80 +#: flatcamTools/ToolDistanceMin.py:56 flatcamTools/ToolDistanceMin.py:81 msgid "" "This is first object point coordinates.\n" "This is the start point for measuring distance." @@ -14199,11 +15804,11 @@ msgstr "" "Это координаты первой точки объекта.\n" "Это начальная точка для измерения расстояния." -#: AppTools/ToolDistanceMin.py:58 +#: flatcamTools/ToolDistanceMin.py:59 msgid "Second object point" msgstr "Вторая точка объекта" -#: AppTools/ToolDistanceMin.py:59 AppTools/ToolDistanceMin.py:86 +#: flatcamTools/ToolDistanceMin.py:60 flatcamTools/ToolDistanceMin.py:87 msgid "" "This is second object point coordinates.\n" "This is the end point for measuring distance." @@ -14211,222 +15816,63 @@ msgstr "" "Это координаты второй точки объекта.\n" "Это конечная точка для измерения расстояния." -#: AppTools/ToolDistanceMin.py:72 AppTools/ToolDistanceMin.py:107 +#: flatcamTools/ToolDistanceMin.py:73 flatcamTools/ToolDistanceMin.py:108 msgid "This is the point to point Euclidean distance." msgstr "Это евклидово расстояние от точки до точки." -#: AppTools/ToolDistanceMin.py:74 +#: flatcamTools/ToolDistanceMin.py:75 msgid "Half Point" msgstr "Средняя точка" -#: AppTools/ToolDistanceMin.py:75 AppTools/ToolDistanceMin.py:112 +#: flatcamTools/ToolDistanceMin.py:76 flatcamTools/ToolDistanceMin.py:113 msgid "This is the middle point of the point to point Euclidean distance." msgstr "Это средняя точка евклидова расстояния от точки до точки." -#: AppTools/ToolDistanceMin.py:117 +#: flatcamTools/ToolDistanceMin.py:118 msgid "Jump to Half Point" msgstr "Перейти к средней точке" -#: AppTools/ToolDistanceMin.py:154 +#: flatcamTools/ToolDistanceMin.py:155 msgid "" "Select two objects and no more, to measure the distance between them ..." msgstr "" "Выберите два и не более объекта для измерения расстояние между ними ..." -#: AppTools/ToolDistanceMin.py:195 AppTools/ToolDistanceMin.py:216 -#: AppTools/ToolDistanceMin.py:225 AppTools/ToolDistanceMin.py:246 +#: flatcamTools/ToolDistanceMin.py:196 flatcamTools/ToolDistanceMin.py:217 +#: flatcamTools/ToolDistanceMin.py:226 flatcamTools/ToolDistanceMin.py:247 msgid "Select two objects and no more. Currently the selection has objects: " msgstr "Выберите два и не более объекта. В настоящее время выбрано объектов: " -#: AppTools/ToolDistanceMin.py:293 +#: flatcamTools/ToolDistanceMin.py:294 msgid "Objects intersects or touch at" msgstr "Объекты пересекаются или касаются друг друга" -#: AppTools/ToolDistanceMin.py:299 +#: flatcamTools/ToolDistanceMin.py:300 msgid "Jumped to the half point between the two selected objects" msgstr "Выполнен переход к средней точке между двумя выбранными объектами" -#: AppTools/ToolEtchCompensation.py:75 AppTools/ToolInvertGerber.py:74 -msgid "Gerber object that will be inverted." -msgstr "Объект Gerber, который будет инвертирован." - -#: AppTools/ToolEtchCompensation.py:86 -msgid "Utilities" -msgstr "" - -#: AppTools/ToolEtchCompensation.py:87 -#, fuzzy -#| msgid "Conversion" -msgid "Conversion utilities" -msgstr "Конвертация" - -#: AppTools/ToolEtchCompensation.py:92 -msgid "Oz to Microns" -msgstr "" - -#: AppTools/ToolEtchCompensation.py:94 -msgid "" -"Will convert from oz thickness to microns [um].\n" -"Can use formulas with operators: /, *, +, -, %, .\n" -"The real numbers use the dot decimals separator." -msgstr "" - -#: AppTools/ToolEtchCompensation.py:103 -#, fuzzy -#| msgid "X value" -msgid "Oz value" -msgstr "Значение X" - -#: AppTools/ToolEtchCompensation.py:105 AppTools/ToolEtchCompensation.py:126 -#, fuzzy -#| msgid "Min value" -msgid "Microns value" -msgstr "Минимальное значение" - -#: AppTools/ToolEtchCompensation.py:113 -msgid "Mils to Microns" -msgstr "" - -#: AppTools/ToolEtchCompensation.py:115 -msgid "" -"Will convert from mils to microns [um].\n" -"Can use formulas with operators: /, *, +, -, %, .\n" -"The real numbers use the dot decimals separator." -msgstr "" - -#: AppTools/ToolEtchCompensation.py:124 -#, fuzzy -#| msgid "Min value" -msgid "Mils value" -msgstr "Минимальное значение" - -#: AppTools/ToolEtchCompensation.py:139 AppTools/ToolInvertGerber.py:86 -msgid "Parameters for this tool" -msgstr "Параметры, используемые для этого инструмента" - -#: AppTools/ToolEtchCompensation.py:144 -#, fuzzy -#| msgid "Thickness" -msgid "Copper Thickness" -msgstr "Толщина" - -#: AppTools/ToolEtchCompensation.py:146 -#, fuzzy -#| msgid "" -#| "How thick the copper growth is intended to be.\n" -#| "In microns." -msgid "" -"The thickness of the copper foil.\n" -"In microns [um]." -msgstr "" -"Насколько толстым должен быть медный слой.\n" -"В микронах." - -#: AppTools/ToolEtchCompensation.py:157 -#, fuzzy -#| msgid "Location" -msgid "Ratio" -msgstr "Местоположение" - -#: AppTools/ToolEtchCompensation.py:159 -msgid "" -"The ratio of lateral etch versus depth etch.\n" -"Can be:\n" -"- custom -> the user will enter a custom value\n" -"- preselection -> value which depends on a selection of etchants" -msgstr "" - -#: AppTools/ToolEtchCompensation.py:165 -#, fuzzy -#| msgid "Factor" -msgid "Etch Factor" -msgstr "Коэффициент" - -#: AppTools/ToolEtchCompensation.py:166 -#, fuzzy -#| msgid "Extensions list" -msgid "Etchants list" -msgstr "Список расширений" - -#: AppTools/ToolEtchCompensation.py:167 -#, fuzzy -#| msgid "Manual" -msgid "Manual offset" -msgstr "Вручную" - -#: AppTools/ToolEtchCompensation.py:174 AppTools/ToolEtchCompensation.py:179 -msgid "Etchants" -msgstr "" - -#: AppTools/ToolEtchCompensation.py:176 -#, fuzzy -#| msgid "Shows list of commands." -msgid "A list of etchants." -msgstr "Показывает список команд." - -#: AppTools/ToolEtchCompensation.py:180 -msgid "Alkaline baths" -msgstr "" - -#: AppTools/ToolEtchCompensation.py:186 -#, fuzzy -#| msgid "X factor" -msgid "Etch factor" -msgstr "Коэффициент X" - -#: AppTools/ToolEtchCompensation.py:188 -msgid "" -"The ratio between depth etch and lateral etch .\n" -"Accepts real numbers and formulas using the operators: /,*,+,-,%" -msgstr "" - -#: AppTools/ToolEtchCompensation.py:192 -msgid "Real number or formula" -msgstr "" - -#: AppTools/ToolEtchCompensation.py:193 -#, fuzzy -#| msgid "X factor" -msgid "Etch_factor" -msgstr "Коэффициент X" - -#: AppTools/ToolEtchCompensation.py:201 -msgid "" -"Value with which to increase or decrease (buffer)\n" -"the copper features. In microns [um]." -msgstr "" - -#: AppTools/ToolEtchCompensation.py:225 -msgid "Compensate" -msgstr "" - -#: AppTools/ToolEtchCompensation.py:227 -msgid "" -"Will increase the copper features thickness to compensate the lateral etch." -msgstr "" - -#: AppTools/ToolExtractDrills.py:29 AppTools/ToolExtractDrills.py:295 +#: flatcamTools/ToolExtractDrills.py:29 flatcamTools/ToolExtractDrills.py:295 msgid "Extract Drills" msgstr "Извлечь отверстия" -#: AppTools/ToolExtractDrills.py:62 +#: flatcamTools/ToolExtractDrills.py:62 msgid "Gerber from which to extract drill holes" msgstr "Гербер, из которого можно извлечь отверстия" -#: AppTools/ToolExtractDrills.py:297 +#: flatcamTools/ToolExtractDrills.py:297 msgid "Extract drills from a given Gerber file." msgstr "Извлечение отверстий из заданного Gerber файла." -#: AppTools/ToolExtractDrills.py:478 AppTools/ToolExtractDrills.py:563 -#: AppTools/ToolExtractDrills.py:648 +#: flatcamTools/ToolExtractDrills.py:478 flatcamTools/ToolExtractDrills.py:563 +#: flatcamTools/ToolExtractDrills.py:648 msgid "No drills extracted. Try different parameters." msgstr "Отверстия не извлечены. Попробуйте разные параметры." -#: AppTools/ToolFiducials.py:56 +#: flatcamTools/ToolFiducials.py:56 msgid "Fiducials Coordinates" msgstr "Координаты контрольных точек" -#: AppTools/ToolFiducials.py:58 +#: flatcamTools/ToolFiducials.py:58 msgid "" "A table with the fiducial points coordinates,\n" "in the format (x, y)." @@ -14434,7 +15880,11 @@ msgstr "" "Таблица с координатами контрольных точек,\n" "в формате (x, y)." -#: AppTools/ToolFiducials.py:194 +#: flatcamTools/ToolFiducials.py:99 +msgid "Top Right" +msgstr "Верхний правый" + +#: flatcamTools/ToolFiducials.py:191 msgid "" "- 'Auto' - automatic placement of fiducials in the corners of the bounding " "box.\n" @@ -14444,33 +15894,33 @@ msgstr "" "ограничительной рамки.\n" " - 'Вручную' - ручное размещение контрольных точек." -#: AppTools/ToolFiducials.py:240 -msgid "Thickness of the line that makes the fiducial." -msgstr "" +#: flatcamTools/ToolFiducials.py:259 +msgid "Copper Gerber" +msgstr "Gerber медного слоя" -#: AppTools/ToolFiducials.py:271 +#: flatcamTools/ToolFiducials.py:268 msgid "Add Fiducial" msgstr "Добавить контрольные точки" -#: AppTools/ToolFiducials.py:273 +#: flatcamTools/ToolFiducials.py:270 msgid "Will add a polygon on the copper layer to serve as fiducial." msgstr "" "Добавляет на медный слой полигон, для того чтобы он служил контрольной " "точкой." -#: AppTools/ToolFiducials.py:289 +#: flatcamTools/ToolFiducials.py:286 msgid "Soldermask Gerber" msgstr "Gerber объект паяльной маски" -#: AppTools/ToolFiducials.py:291 +#: flatcamTools/ToolFiducials.py:288 msgid "The Soldermask Gerber object." msgstr "Gerber объект паяльной маски." -#: AppTools/ToolFiducials.py:303 +#: flatcamTools/ToolFiducials.py:300 msgid "Add Soldermask Opening" msgstr "Открытие добавления паяльной маски" -#: AppTools/ToolFiducials.py:305 +#: flatcamTools/ToolFiducials.py:302 msgid "" "Will add a polygon on the soldermask layer\n" "to serve as fiducial opening.\n" @@ -14482,33 +15932,33 @@ msgstr "" "Диаметр всегда в два раза больше диаметра.\n" "для контрольных точек на медном слое." -#: AppTools/ToolFiducials.py:520 +#: flatcamTools/ToolFiducials.py:516 msgid "Click to add first Fiducial. Bottom Left..." msgstr "Нажмите, чтобы добавить первую контрольную точку. Внизу слева..." -#: AppTools/ToolFiducials.py:784 +#: flatcamTools/ToolFiducials.py:780 msgid "Click to add the last fiducial. Top Right..." msgstr "Нажмите, чтобы добавить следующую контрольную точку. Вверху справа..." -#: AppTools/ToolFiducials.py:789 +#: flatcamTools/ToolFiducials.py:785 msgid "Click to add the second fiducial. Top Left or Bottom Right..." msgstr "" "Нажмите, чтобы добавить вторичную контрольную точку. Вверху слева или внизу " "справа..." -#: AppTools/ToolFiducials.py:792 AppTools/ToolFiducials.py:801 +#: flatcamTools/ToolFiducials.py:788 flatcamTools/ToolFiducials.py:797 msgid "Done. All fiducials have been added." msgstr "Готово. Все контрольные точки были успешно добавлены." -#: AppTools/ToolFiducials.py:878 +#: flatcamTools/ToolFiducials.py:874 msgid "Fiducials Tool exit." msgstr "Выход из инструмента контрольных точек." -#: AppTools/ToolFilm.py:42 +#: flatcamTools/ToolFilm.py:42 msgid "Film PCB" msgstr "Плёнка" -#: AppTools/ToolFilm.py:73 +#: flatcamTools/ToolFilm.py:78 msgid "" "Specify the type of object for which to create the film.\n" "The object can be of type: Gerber or Geometry.\n" @@ -14520,7 +15970,15 @@ msgstr "" "Выбор здесь определяет тип объектов, которые будут\n" "в выпадающем списке объектов плёнки." -#: AppTools/ToolFilm.py:96 +#: flatcamTools/ToolFilm.py:92 +msgid "Film Object" +msgstr "Объект плёнки" + +#: flatcamTools/ToolFilm.py:94 +msgid "Object for which to create the film." +msgstr "Объект для создания плёнки." + +#: flatcamTools/ToolFilm.py:115 msgid "" "Specify the type of object to be used as an container for\n" "film creation. It can be: Gerber or Geometry type.The selection here decide " @@ -14532,15 +15990,31 @@ msgstr "" "тип объектов, которые будут\n" "в поле со списком объектов." -#: AppTools/ToolFilm.py:256 +#: flatcamTools/ToolFilm.py:129 +msgid "Box Object" +msgstr "Объект рамки" + +#: flatcamTools/ToolFilm.py:131 +msgid "" +"The actual object that is used as container for the\n" +" selected object for which we create the film.\n" +"Usually it is the PCB outline but it can be also the\n" +"same object for which the film is created." +msgstr "" +"Фактический объект, который используется как контейнер для\n" +"  выбранного объекта, для которого мы создаем плёнку.\n" +"Обычно это схема печатной платы, но она также может быть\n" +"тем же объектом, для которого создана плёнка." + +#: flatcamTools/ToolFilm.py:273 msgid "Film Parameters" msgstr "Параметры плёнки" -#: AppTools/ToolFilm.py:317 +#: flatcamTools/ToolFilm.py:334 msgid "Punch drill holes" msgstr "Перфорация отверстий" -#: AppTools/ToolFilm.py:318 +#: flatcamTools/ToolFilm.py:335 msgid "" "When checked the generated film will have holes in pads when\n" "the generated film is positive. This is done to help drilling,\n" @@ -14550,11 +16024,11 @@ msgstr "" "если это позитив плёнки. Это сделано для облегчения сверления\n" "отверстий вручную." -#: AppTools/ToolFilm.py:336 +#: flatcamTools/ToolFilm.py:353 msgid "Source" msgstr "Источник" -#: AppTools/ToolFilm.py:338 +#: flatcamTools/ToolFilm.py:355 msgid "" "The punch hole source can be:\n" "- Excellon -> an Excellon holes center will serve as reference.\n" @@ -14565,35 +16039,35 @@ msgstr "" "- Центр площадки -> попытается использовать центр площадки в качестве " "эталона." -#: AppTools/ToolFilm.py:343 +#: flatcamTools/ToolFilm.py:360 msgid "Pad center" msgstr "Центр площадки" -#: AppTools/ToolFilm.py:348 +#: flatcamTools/ToolFilm.py:365 msgid "Excellon Obj" msgstr "Объект Excellon" -#: AppTools/ToolFilm.py:350 +#: flatcamTools/ToolFilm.py:367 msgid "" "Remove the geometry of Excellon from the Film to create the holes in pads." msgstr "" "Удаляет геометрию Excellon из пленки для создания отверстий в площадках." -#: AppTools/ToolFilm.py:364 +#: flatcamTools/ToolFilm.py:381 msgid "Punch Size" msgstr "Размер перфорации" -#: AppTools/ToolFilm.py:365 +#: flatcamTools/ToolFilm.py:382 msgid "The value here will control how big is the punch hole in the pads." msgstr "" "Это значение контролирует, насколько большим будет отверстие для перфорации " "в площадках." -#: AppTools/ToolFilm.py:485 +#: flatcamTools/ToolFilm.py:502 msgid "Save Film" msgstr "Сохранить плёнку" -#: AppTools/ToolFilm.py:487 +#: flatcamTools/ToolFilm.py:504 msgid "" "Create a Film for the selected object, within\n" "the specified box. Does not create a new \n" @@ -14604,7 +16078,7 @@ msgstr "" "указанной ограничительной рамки. Не создает новый\n" "  объект FlatCAM, но напрямую сохраняет её в выбранном формате." -#: AppTools/ToolFilm.py:649 +#: flatcamTools/ToolFilm.py:664 msgid "" "Using the Pad center does not work on Geometry objects. Only a Gerber object " "has pads." @@ -14612,36 +16086,36 @@ msgstr "" "Использование центра площадки не работает на объектах Geometry. Только " "объекты Gerber имеют площадки." -#: AppTools/ToolFilm.py:659 +#: flatcamTools/ToolFilm.py:674 msgid "No FlatCAM object selected. Load an object for Film and retry." msgstr "" "Объект FlatCAM не выбран. Загрузите объект для Плёнки и повторите попытку." -#: AppTools/ToolFilm.py:666 +#: flatcamTools/ToolFilm.py:681 msgid "No FlatCAM object selected. Load an object for Box and retry." msgstr "" "Объект FlatCAM не выбран. Загрузите объект для Рамки и повторите попытку." -#: AppTools/ToolFilm.py:670 +#: flatcamTools/ToolFilm.py:685 msgid "No FlatCAM object selected." msgstr "Объект FlatCAM не выбран." -#: AppTools/ToolFilm.py:681 +#: flatcamTools/ToolFilm.py:696 msgid "Generating Film ..." msgstr "Создание плёнки ..." -#: AppTools/ToolFilm.py:730 AppTools/ToolFilm.py:734 +#: flatcamTools/ToolFilm.py:745 flatcamTools/ToolFilm.py:749 msgid "Export positive film" msgstr "Экспорт позитива плёнки" -#: AppTools/ToolFilm.py:767 +#: flatcamTools/ToolFilm.py:782 msgid "" "No Excellon object selected. Load an object for punching reference and retry." msgstr "" "Объект Excellon не выбран. Загрузите объект для перфорации и повторите " "попытку." -#: AppTools/ToolFilm.py:791 +#: flatcamTools/ToolFilm.py:806 msgid "" " Could not generate punched hole film because the punch hole sizeis bigger " "than some of the apertures in the Gerber object." @@ -14649,7 +16123,7 @@ msgstr "" " Не удалось создать пленку с перфорированным отверстием, поскольку размер " "перфорированного отверстия больше, чем некоторые отверстия в объекте Gerber." -#: AppTools/ToolFilm.py:803 +#: flatcamTools/ToolFilm.py:818 msgid "" "Could not generate punched hole film because the punch hole sizeis bigger " "than some of the apertures in the Gerber object." @@ -14657,7 +16131,7 @@ msgstr "" "Не удалось создать пленку с перфорированным отверстием, поскольку размер " "перфорированного отверстия больше, чем некоторые отверстия в объекте Gerber." -#: AppTools/ToolFilm.py:821 +#: flatcamTools/ToolFilm.py:836 msgid "" "Could not generate punched hole film because the newly created object " "geometry is the same as the one in the source object geometry..." @@ -14665,32 +16139,32 @@ msgstr "" "Не удалось создать пленку с перфорацией, поскольку геометрия вновь " "созданного объекта такая же, как в геометрии исходного объекта ..." -#: AppTools/ToolFilm.py:876 AppTools/ToolFilm.py:880 +#: flatcamTools/ToolFilm.py:891 flatcamTools/ToolFilm.py:895 msgid "Export negative film" msgstr "Экспорт негатива плёнки" -#: AppTools/ToolFilm.py:941 AppTools/ToolFilm.py:1124 -#: AppTools/ToolPanelize.py:441 +#: flatcamTools/ToolFilm.py:956 flatcamTools/ToolFilm.py:1139 +#: flatcamTools/ToolPanelize.py:430 msgid "No object Box. Using instead" msgstr "Нет объекта Box. Используйте взамен" -#: AppTools/ToolFilm.py:1057 AppTools/ToolFilm.py:1237 +#: flatcamTools/ToolFilm.py:1072 flatcamTools/ToolFilm.py:1252 msgid "Film file exported to" msgstr "Файл плёнки экспортируется в" -#: AppTools/ToolFilm.py:1060 AppTools/ToolFilm.py:1240 +#: flatcamTools/ToolFilm.py:1075 flatcamTools/ToolFilm.py:1255 msgid "Generating Film ... Please wait." msgstr "Создание плёнки ... Пожалуйста, подождите." -#: AppTools/ToolImage.py:24 +#: flatcamTools/ToolImage.py:24 msgid "Image as Object" msgstr "Изображение как Object" -#: AppTools/ToolImage.py:33 +#: flatcamTools/ToolImage.py:33 msgid "Image to PCB" msgstr "Изображение в PCB" -#: AppTools/ToolImage.py:56 +#: flatcamTools/ToolImage.py:56 msgid "" "Specify the type of object to create from the image.\n" "It can be of type: Gerber or Geometry." @@ -14698,23 +16172,23 @@ msgstr "" "Укажите тип объекта для создания из изображения.\n" "Он может быть типа: Gerber или Geometry." -#: AppTools/ToolImage.py:65 +#: flatcamTools/ToolImage.py:65 msgid "DPI value" msgstr "Значение DPI" -#: AppTools/ToolImage.py:66 +#: flatcamTools/ToolImage.py:66 msgid "Specify a DPI value for the image." msgstr "Укажите значение DPI для изображения." -#: AppTools/ToolImage.py:72 +#: flatcamTools/ToolImage.py:72 msgid "Level of detail" msgstr "Уровень детализации" -#: AppTools/ToolImage.py:81 +#: flatcamTools/ToolImage.py:81 msgid "Image type" msgstr "Тип изображения" -#: AppTools/ToolImage.py:83 +#: flatcamTools/ToolImage.py:83 msgid "" "Choose a method for the image interpretation.\n" "B/W means a black & white image. Color means a colored image." @@ -14722,12 +16196,12 @@ msgstr "" "Выберите метод для интерпретации изображения.\n" "Ч / б означает черно-белое изображение. Цвет означает цветное изображение." -#: AppTools/ToolImage.py:92 AppTools/ToolImage.py:107 AppTools/ToolImage.py:120 -#: AppTools/ToolImage.py:133 +#: flatcamTools/ToolImage.py:92 flatcamTools/ToolImage.py:107 +#: flatcamTools/ToolImage.py:120 flatcamTools/ToolImage.py:133 msgid "Mask value" msgstr "Значение маски" -#: AppTools/ToolImage.py:94 +#: flatcamTools/ToolImage.py:94 msgid "" "Mask for monochrome image.\n" "Takes values between [0 ... 255].\n" @@ -14743,7 +16217,7 @@ msgstr "" "0 означает отсутствие деталей, а 255 означает все\n" "(который полностью черный)." -#: AppTools/ToolImage.py:109 +#: flatcamTools/ToolImage.py:109 msgid "" "Mask for RED color.\n" "Takes values between [0 ... 255].\n" @@ -14755,7 +16229,7 @@ msgstr "" "Определяет уровень детализации, чтобы включить\n" "в результирующей геометрии." -#: AppTools/ToolImage.py:122 +#: flatcamTools/ToolImage.py:122 msgid "" "Mask for GREEN color.\n" "Takes values between [0 ... 255].\n" @@ -14767,7 +16241,7 @@ msgstr "" "Определяет уровень детализации, чтобы включить\n" "в результирующей геометрии." -#: AppTools/ToolImage.py:135 +#: flatcamTools/ToolImage.py:135 msgid "" "Mask for BLUE color.\n" "Takes values between [0 ... 255].\n" @@ -14779,46 +16253,40 @@ msgstr "" "Определяет уровень детализации, чтобы включить\n" "в результирующей геометрии." -#: AppTools/ToolImage.py:143 +#: flatcamTools/ToolImage.py:143 msgid "Import image" msgstr "Импортировать изображение" -#: AppTools/ToolImage.py:145 +#: flatcamTools/ToolImage.py:145 msgid "Open a image of raster type and then import it in FlatCAM." msgstr "" "Откройте изображение растрового типа, а затем импортируйте его в FlatCAM." -#: AppTools/ToolImage.py:182 +#: flatcamTools/ToolImage.py:182 msgid "Image Tool" msgstr "Изображение" -#: AppTools/ToolImage.py:234 AppTools/ToolImage.py:237 +#: flatcamTools/ToolImage.py:234 flatcamTools/ToolImage.py:237 msgid "Import IMAGE" msgstr "Импорт изображения" -#: AppTools/ToolImage.py:277 App_Main.py:8360 App_Main.py:8407 -msgid "" -"Not supported type is picked as parameter. Only Geometry and Gerber are " -"supported" -msgstr "" -"В качестве параметра выбран не поддерживаемый тип. Поддерживаются только " -"Geometry и Gerber" - -#: AppTools/ToolImage.py:285 +#: flatcamTools/ToolImage.py:285 msgid "Importing Image" msgstr "Импорт изображения" -#: AppTools/ToolImage.py:297 AppTools/ToolPDF.py:154 App_Main.py:8385 -#: App_Main.py:8431 App_Main.py:8495 App_Main.py:8562 App_Main.py:8628 -#: App_Main.py:8693 App_Main.py:8750 -msgid "Opened" -msgstr "Открыт" +#: flatcamTools/ToolInvertGerber.py:74 +msgid "Gerber object that will be inverted." +msgstr "Объект Gerber, который будет инвертирован." -#: AppTools/ToolInvertGerber.py:126 +#: flatcamTools/ToolInvertGerber.py:83 +msgid "Parameters for this tool" +msgstr "Параметры, используемые для этого инструмента" + +#: flatcamTools/ToolInvertGerber.py:123 msgid "Invert Gerber" msgstr "Инвертировать Gerber" -#: AppTools/ToolInvertGerber.py:128 +#: flatcamTools/ToolInvertGerber.py:125 msgid "" "Will invert the Gerber object: areas that have copper\n" "will be empty of copper and previous empty area will be\n" @@ -14828,17 +16296,55 @@ msgstr "" "будет без меди, а пустые области будут\n" "заполнены медью." -#: AppTools/ToolInvertGerber.py:187 +#: flatcamTools/ToolInvertGerber.py:184 msgid "Invert Tool" msgstr "Инвертирование" -#: AppTools/ToolIsolation.py:96 -#, fuzzy -#| msgid "Gerber objects for which to check rules." -msgid "Gerber object for isolation routing." -msgstr "Объекты Gerber для проверки правил." +#: flatcamTools/ToolMove.py:102 +msgid "MOVE: Click on the Start point ..." +msgstr "ПЕРЕМЕЩЕНИЕ: Нажмите на исходную точку ..." -#: AppTools/ToolIsolation.py:120 AppTools/ToolNCC.py:122 +#: flatcamTools/ToolMove.py:113 +msgid "Cancelled. No object(s) to move." +msgstr "Отменено. Нет объекта(ов) для перемещения." + +#: flatcamTools/ToolMove.py:140 +msgid "MOVE: Click on the Destination point ..." +msgstr "ПЕРЕМЕЩЕНИЕ: Нажмите на конечную точку ..." + +#: flatcamTools/ToolMove.py:163 +msgid "Moving..." +msgstr "Перемещение ..." + +#: flatcamTools/ToolMove.py:166 +msgid "No object(s) selected." +msgstr "Нет выбранных объектов." + +#: flatcamTools/ToolMove.py:221 +msgid "Error when mouse left click." +msgstr "Ошибка при щелчке левой кнопкой мыши." + +#: flatcamTools/ToolNCC.py:42 +msgid "Non-Copper Clearing" +msgstr "Очиста от меди" + +#: flatcamTools/ToolNCC.py:88 +msgid "" +"Specify the type of object to be cleared of excess copper.\n" +"It can be of type: Gerber or Geometry.\n" +"What is selected here will dictate the kind\n" +"of objects that will populate the 'Object' combobox." +msgstr "" +"Укажите тип очищаемого объекта от избытка меди.\n" +"Это может быть типа: Гербер или Геометрия.\n" +"То, что здесь выбрано, будет диктовать вид\n" +"объектов, которые будут заполнять поле «Объект»." + +#: flatcamTools/ToolNCC.py:110 +msgid "Object to be cleared of excess copper." +msgstr "Объект должен быть очищен от избытка меди." + +#: flatcamTools/ToolNCC.py:122 msgid "" "Tools pool from which the algorithm\n" "will pick the ones used for copper clearing." @@ -14846,22 +16352,14 @@ msgstr "" "Пул инструментов, из которого алгоритм\n" "выберет те, которые будут использоваться для очистки меди." -#: AppTools/ToolIsolation.py:136 -#, fuzzy -#| msgid "" -#| "This is the Tool Number.\n" -#| "Non copper clearing will start with the tool with the biggest \n" -#| "diameter, continuing until there are no more tools.\n" -#| "Only tools that create NCC clearing geometry will still be present\n" -#| "in the resulting geometry. This is because with some tools\n" -#| "this function will not be able to create painting geometry." +#: flatcamTools/ToolNCC.py:138 msgid "" "This is the Tool Number.\n" -"Isolation routing will start with the tool with the biggest \n" +"Non copper clearing will start with the tool with the biggest \n" "diameter, continuing until there are no more tools.\n" -"Only tools that create Isolation geometry will still be present\n" +"Only tools that create NCC clearing geometry will still be present\n" "in the resulting geometry. This is because with some tools\n" -"this function will not be able to create routing geometry." +"this function will not be able to create painting geometry." msgstr "" "Это номер инструмента.\n" "Не медная очистка начнется с инструмента с самым большим\n" @@ -14871,7 +16369,7 @@ msgstr "" "в результирующей геометрии. Это потому, что с некоторыми инструментами\n" "эта функция не сможет создавать геометрию рисования." -#: AppTools/ToolIsolation.py:144 AppTools/ToolNCC.py:146 +#: flatcamTools/ToolNCC.py:146 msgid "" "Tool Diameter. It's value (in current FlatCAM units)\n" "is the cut width into the material." @@ -14879,7 +16377,7 @@ msgstr "" "Диаметр инструмента. Это значение (в текущих единицах FlatCAM) \n" "ширины разреза в материале." -#: AppTools/ToolIsolation.py:148 AppTools/ToolNCC.py:150 +#: flatcamTools/ToolNCC.py:150 msgid "" "The Tool Type (TT) can be:\n" "- Circular with 1 ... 4 teeth -> it is informative only. Being circular,\n" @@ -14913,8 +16411,16 @@ msgstr "" " Выбор типа инструмента V-Shape автоматически выберет тип операции\n" " в результирующей геометрии как Изоляция." -#: AppTools/ToolIsolation.py:300 AppTools/ToolNCC.py:318 -#: AppTools/ToolPaint.py:300 AppTools/ToolSolderPaste.py:135 +#: flatcamTools/ToolNCC.py:296 flatcamTools/ToolPaint.py:279 +msgid "" +"Add a new tool to the Tool Table\n" +"with the diameter specified above." +msgstr "" +"Добавление нового инструмента в таблицу инструментов\n" +"с диаметром, указанным выше." + +#: flatcamTools/ToolNCC.py:318 flatcamTools/ToolPaint.py:301 +#: flatcamTools/ToolSolderPaste.py:130 msgid "" "Delete a selection of tools in the Tool Table\n" "by first selecting a row(s) in the Tool Table." @@ -14922,23 +16428,7 @@ msgstr "" "Удалить выбор инструментов в таблице инструментов\n" "сначала выбрав строку (и) в таблице инструментов." -#: AppTools/ToolIsolation.py:467 -msgid "" -"Specify the type of object to be excepted from isolation.\n" -"It can be of type: Gerber or Geometry.\n" -"What is selected here will dictate the kind\n" -"of objects that will populate the 'Object' combobox." -msgstr "" -"Укажите тип объекта, который следует исключить из изоляции..\n" -"Он может быть типа: Gerber или Geometry.\n" -"То, что выбрано здесь будет диктовать вид\n" -"объектов, которые будут заполнять поле со списком \"объект\"." - -#: AppTools/ToolIsolation.py:477 -msgid "Object whose area will be removed from isolation geometry." -msgstr "Объект, площадь которого будет удалена из геометрии изоляции." - -#: AppTools/ToolIsolation.py:513 AppTools/ToolNCC.py:554 +#: flatcamTools/ToolNCC.py:554 msgid "" "The type of FlatCAM object to be used as non copper clearing reference.\n" "It can be Gerber, Excellon or Geometry." @@ -14947,339 +16437,122 @@ msgstr "" "очистке без использования меди.\n" "Это может быть Gerber, Excellon или Геометрия." -#: AppTools/ToolIsolation.py:559 -msgid "Generate Isolation Geometry" -msgstr "Создать геометрию изоляции" +#: flatcamTools/ToolNCC.py:597 flatcamTools/ToolPaint.py:537 +msgid "Generate Geometry" +msgstr "Создать объект" -#: AppTools/ToolIsolation.py:567 -msgid "" -"Create a Geometry object with toolpaths to cut \n" -"isolation outside, inside or on both sides of the\n" -"object. For a Gerber object outside means outside\n" -"of the Gerber feature and inside means inside of\n" -"the Gerber feature, if possible at all. This means\n" -"that only if the Gerber feature has openings inside, they\n" -"will be isolated. If what is wanted is to cut isolation\n" -"inside the actual Gerber feature, use a negative tool\n" -"diameter above." -msgstr "" -"Создать геометрический объект с траектории, чтобы сократить \n" -"изоляция снаружи, внутри или с обеих сторон\n" -"объект. Для объекта Гербера снаружи означает снаружи\n" -"функции Гербера и внутри означает внутри\n" -"функция Гербера, если это вообще возможно. Это средство\n" -"что только если функция Gerber имеет отверстия внутри, они\n" -"будут изолированы. Если то, что нужно, это сократить изоляцию\n" -"внутри фактической функции Gerber используйте отрицательный инструмент\n" -"диаметр выше." - -#: AppTools/ToolIsolation.py:1266 AppTools/ToolIsolation.py:1426 -#: AppTools/ToolNCC.py:932 AppTools/ToolNCC.py:1449 AppTools/ToolPaint.py:857 -#: AppTools/ToolSolderPaste.py:576 AppTools/ToolSolderPaste.py:901 -#: App_Main.py:4210 -msgid "Please enter a tool diameter with non-zero value, in Float format." -msgstr "" -"Пожалуйста, введите диаметр инструмента с ненулевым значением в float " -"формате." - -#: AppTools/ToolIsolation.py:1270 AppTools/ToolNCC.py:936 -#: AppTools/ToolPaint.py:861 AppTools/ToolSolderPaste.py:580 App_Main.py:4214 -msgid "Adding Tool cancelled" -msgstr "Добавление инструмента отменено" - -#: AppTools/ToolIsolation.py:1420 AppTools/ToolNCC.py:1443 -#: AppTools/ToolPaint.py:1203 AppTools/ToolSolderPaste.py:896 +#: flatcamTools/ToolNCC.py:1425 flatcamTools/ToolPaint.py:1184 +#: flatcamTools/ToolSolderPaste.py:888 msgid "Please enter a tool diameter to add, in Float format." msgstr "" "Пожалуйста, введите диаметр инструмента для добавления в формате Float." -#: AppTools/ToolIsolation.py:1451 AppTools/ToolIsolation.py:2959 -#: AppTools/ToolNCC.py:1474 AppTools/ToolNCC.py:4079 AppTools/ToolPaint.py:1227 -#: AppTools/ToolPaint.py:3628 AppTools/ToolSolderPaste.py:925 +#: flatcamTools/ToolNCC.py:1456 flatcamTools/ToolNCC.py:4013 +#: flatcamTools/ToolPaint.py:1208 flatcamTools/ToolPaint.py:3603 +#: flatcamTools/ToolSolderPaste.py:917 msgid "Cancelled. Tool already in Tool Table." msgstr "Отменено. Инструмент уже в таблице инструментов." -#: AppTools/ToolIsolation.py:1458 AppTools/ToolIsolation.py:2977 -#: AppTools/ToolNCC.py:1481 AppTools/ToolNCC.py:4096 AppTools/ToolPaint.py:1232 -#: AppTools/ToolPaint.py:3645 +#: flatcamTools/ToolNCC.py:1463 flatcamTools/ToolNCC.py:4030 +#: flatcamTools/ToolPaint.py:1213 flatcamTools/ToolPaint.py:3620 msgid "New tool added to Tool Table." msgstr "Новый инструмент добавлен в таблицу инструментов." -#: AppTools/ToolIsolation.py:1502 AppTools/ToolNCC.py:1525 -#: AppTools/ToolPaint.py:1276 +#: flatcamTools/ToolNCC.py:1507 flatcamTools/ToolPaint.py:1257 msgid "Tool from Tool Table was edited." msgstr "Инструмент был изменён в таблице инструментов." -#: AppTools/ToolIsolation.py:1514 AppTools/ToolNCC.py:1537 -#: AppTools/ToolPaint.py:1288 AppTools/ToolSolderPaste.py:986 +#: flatcamTools/ToolNCC.py:1519 flatcamTools/ToolPaint.py:1269 +#: flatcamTools/ToolSolderPaste.py:978 msgid "Cancelled. New diameter value is already in the Tool Table." msgstr "" "Отменено. Новое значение диаметра уже находится в таблице инструментов." -#: AppTools/ToolIsolation.py:1566 AppTools/ToolNCC.py:1589 -#: AppTools/ToolPaint.py:1386 +#: flatcamTools/ToolNCC.py:1571 flatcamTools/ToolPaint.py:1367 msgid "Delete failed. Select a tool to delete." msgstr "Ошибка удаления. Выберите инструмент для удаления." -#: AppTools/ToolIsolation.py:1572 AppTools/ToolNCC.py:1595 -#: AppTools/ToolPaint.py:1392 +#: flatcamTools/ToolNCC.py:1577 flatcamTools/ToolPaint.py:1373 msgid "Tool(s) deleted from Tool Table." msgstr "Инструмент удалён из таблицы инструментов." -#: AppTools/ToolIsolation.py:1620 -msgid "Isolating..." -msgstr "Изоляция..." - -#: AppTools/ToolIsolation.py:1654 -msgid "Failed to create Follow Geometry with tool diameter" -msgstr "" - -#: AppTools/ToolIsolation.py:1657 -#, fuzzy -#| msgid "NCC Tool clearing with tool diameter" -msgid "Follow Geometry was created with tool diameter" -msgstr "Очистка от меди инструментом с диаметром" - -#: AppTools/ToolIsolation.py:1698 -msgid "Click on a polygon to isolate it." -msgstr "Нажмите на полигон, чтобы изолировать его." - -#: AppTools/ToolIsolation.py:1812 AppTools/ToolIsolation.py:1832 -#: AppTools/ToolIsolation.py:1967 AppTools/ToolIsolation.py:2138 -msgid "Subtracting Geo" -msgstr "Вычитание геометрии" - -#: AppTools/ToolIsolation.py:1816 AppTools/ToolIsolation.py:1971 -#: AppTools/ToolIsolation.py:2142 -#, fuzzy -#| msgid "Intersection" -msgid "Intersecting Geo" -msgstr "Пересечение" - -#: AppTools/ToolIsolation.py:1865 AppTools/ToolIsolation.py:2032 -#: AppTools/ToolIsolation.py:2199 -#, fuzzy -#| msgid "Geometry Options" -msgid "Empty Geometry in" -msgstr "Параметры Geometry" - -#: AppTools/ToolIsolation.py:2041 -msgid "" -"Partial failure. The geometry was processed with all tools.\n" -"But there are still not-isolated geometry elements. Try to include a tool " -"with smaller diameter." -msgstr "" - -#: AppTools/ToolIsolation.py:2044 -msgid "" -"The following are coordinates for the copper features that could not be " -"isolated:" -msgstr "" - -#: AppTools/ToolIsolation.py:2356 AppTools/ToolIsolation.py:2465 -#: AppTools/ToolPaint.py:1535 -msgid "Added polygon" -msgstr "Добавленный полигон" - -#: AppTools/ToolIsolation.py:2357 AppTools/ToolIsolation.py:2467 -msgid "Click to add next polygon or right click to start isolation." -msgstr "" -"Щелкните, чтобы добавить следующий полигон, или щелкните правой кнопкой " -"мыши, чтобы начать изоляцию." - -#: AppTools/ToolIsolation.py:2369 AppTools/ToolPaint.py:1549 -msgid "Removed polygon" -msgstr "Удалённый полигон" - -#: AppTools/ToolIsolation.py:2370 -msgid "Click to add/remove next polygon or right click to start isolation." -msgstr "" -"Щелкните, чтобы добавить/удалить следующий полигон, или щелкните правой " -"кнопкой мыши, чтобы начать изоляцию." - -#: AppTools/ToolIsolation.py:2375 AppTools/ToolPaint.py:1555 -msgid "No polygon detected under click position." -msgstr "Полигон не обнаружен в указанной позиции." - -#: AppTools/ToolIsolation.py:2401 AppTools/ToolPaint.py:1584 -msgid "List of single polygons is empty. Aborting." -msgstr "Список одиночных полигонов пуст. Отмена." - -#: AppTools/ToolIsolation.py:2470 -msgid "No polygon in selection." -msgstr "Нет полигона в выборе." - -#: AppTools/ToolIsolation.py:2498 AppTools/ToolNCC.py:1725 -#: AppTools/ToolPaint.py:1619 -msgid "Click the end point of the paint area." -msgstr "Нажмите на конечную точку области рисования." - -#: AppTools/ToolIsolation.py:2916 AppTools/ToolNCC.py:4036 -#: AppTools/ToolPaint.py:3585 App_Main.py:5318 App_Main.py:5328 -msgid "Tool from DB added in Tool Table." -msgstr "Инструмент из БД добавлен в таблицу инструментов." - -#: AppTools/ToolMove.py:102 -msgid "MOVE: Click on the Start point ..." -msgstr "ПЕРЕМЕЩЕНИЕ: Нажмите на исходную точку ..." - -#: AppTools/ToolMove.py:113 -msgid "Cancelled. No object(s) to move." -msgstr "Отменено. Нет объекта(ов) для перемещения." - -#: AppTools/ToolMove.py:140 -msgid "MOVE: Click on the Destination point ..." -msgstr "ПЕРЕМЕЩЕНИЕ: Нажмите на конечную точку ..." - -#: AppTools/ToolMove.py:163 -msgid "Moving..." -msgstr "Перемещение ..." - -#: AppTools/ToolMove.py:166 -msgid "No object(s) selected." -msgstr "Нет выбранных объектов." - -#: AppTools/ToolMove.py:221 -msgid "Error when mouse left click." -msgstr "Ошибка при щелчке левой кнопкой мыши." - -#: AppTools/ToolNCC.py:42 -msgid "Non-Copper Clearing" -msgstr "Очиста от меди" - -#: AppTools/ToolNCC.py:86 AppTools/ToolPaint.py:79 -msgid "Obj Type" -msgstr "Тип объекта" - -#: AppTools/ToolNCC.py:88 -msgid "" -"Specify the type of object to be cleared of excess copper.\n" -"It can be of type: Gerber or Geometry.\n" -"What is selected here will dictate the kind\n" -"of objects that will populate the 'Object' combobox." -msgstr "" -"Укажите тип очищаемого объекта от избытка меди.\n" -"Это может быть типа: Гербер или Геометрия.\n" -"То, что здесь выбрано, будет диктовать вид\n" -"объектов, которые будут заполнять поле «Объект»." - -#: AppTools/ToolNCC.py:110 -msgid "Object to be cleared of excess copper." -msgstr "Объект должен быть очищен от избытка меди." - -#: AppTools/ToolNCC.py:138 -msgid "" -"This is the Tool Number.\n" -"Non copper clearing will start with the tool with the biggest \n" -"diameter, continuing until there are no more tools.\n" -"Only tools that create NCC clearing geometry will still be present\n" -"in the resulting geometry. This is because with some tools\n" -"this function will not be able to create painting geometry." -msgstr "" -"Это номер инструмента.\n" -"Не медная очистка начнется с инструмента с самым большим\n" -"диаметр, продолжающийся до тех пор, пока не останется никаких инструментов.\n" -"По-прежнему будут присутствовать только инструменты, создающие геометрию " -"очистки NCC.\n" -"в результирующей геометрии. Это потому, что с некоторыми инструментами\n" -"эта функция не сможет создавать геометрию рисования." - -#: AppTools/ToolNCC.py:597 AppTools/ToolPaint.py:536 -msgid "Generate Geometry" -msgstr "Создать объект" - -#: AppTools/ToolNCC.py:1638 +#: flatcamTools/ToolNCC.py:1619 msgid "Wrong Tool Dia value format entered, use a number." msgstr "Неверный формат ввода диаметра инструмента, используйте цифры." -#: AppTools/ToolNCC.py:1649 AppTools/ToolPaint.py:1443 +#: flatcamTools/ToolNCC.py:1628 flatcamTools/ToolPaint.py:1424 msgid "No selected tools in Tool Table." msgstr "Нет инструментов сопла в таблице инструментов." -#: AppTools/ToolNCC.py:2005 AppTools/ToolNCC.py:3024 +#: flatcamTools/ToolNCC.py:1704 flatcamTools/ToolPaint.py:1600 +msgid "Click the end point of the paint area." +msgstr "Нажмите на конечную точку области рисования." + +#: flatcamTools/ToolNCC.py:1976 flatcamTools/ToolNCC.py:2964 msgid "NCC Tool. Preparing non-copper polygons." msgstr "Очистка от меди. Подготовка безмедных полигонов." -#: AppTools/ToolNCC.py:2064 AppTools/ToolNCC.py:3152 +#: flatcamTools/ToolNCC.py:2035 flatcamTools/ToolNCC.py:3092 msgid "NCC Tool. Calculate 'empty' area." msgstr "Очистка от меди. Расчёт «пустой» области." -#: AppTools/ToolNCC.py:2083 AppTools/ToolNCC.py:2192 AppTools/ToolNCC.py:2207 -#: AppTools/ToolNCC.py:3165 AppTools/ToolNCC.py:3270 AppTools/ToolNCC.py:3285 -#: AppTools/ToolNCC.py:3551 AppTools/ToolNCC.py:3652 AppTools/ToolNCC.py:3667 +#: flatcamTools/ToolNCC.py:2054 flatcamTools/ToolNCC.py:2160 +#: flatcamTools/ToolNCC.py:2174 flatcamTools/ToolNCC.py:3105 +#: flatcamTools/ToolNCC.py:3210 flatcamTools/ToolNCC.py:3225 +#: flatcamTools/ToolNCC.py:3491 flatcamTools/ToolNCC.py:3592 +#: flatcamTools/ToolNCC.py:3607 msgid "Buffering finished" msgstr "Буферизация закончена" -#: AppTools/ToolNCC.py:2091 AppTools/ToolNCC.py:2214 AppTools/ToolNCC.py:3173 -#: AppTools/ToolNCC.py:3292 AppTools/ToolNCC.py:3558 AppTools/ToolNCC.py:3674 +#: flatcamTools/ToolNCC.py:2062 flatcamTools/ToolNCC.py:2181 +#: flatcamTools/ToolNCC.py:3113 flatcamTools/ToolNCC.py:3232 +#: flatcamTools/ToolNCC.py:3498 flatcamTools/ToolNCC.py:3614 msgid "Could not get the extent of the area to be non copper cleared." msgstr "Не удалось получить размер области, не подлежащей очистке от меди." -#: AppTools/ToolNCC.py:2121 AppTools/ToolNCC.py:2200 AppTools/ToolNCC.py:3200 -#: AppTools/ToolNCC.py:3277 AppTools/ToolNCC.py:3578 AppTools/ToolNCC.py:3659 +#: flatcamTools/ToolNCC.py:2089 flatcamTools/ToolNCC.py:2167 +#: flatcamTools/ToolNCC.py:3140 flatcamTools/ToolNCC.py:3217 +#: flatcamTools/ToolNCC.py:3518 flatcamTools/ToolNCC.py:3599 msgid "" "Isolation geometry is broken. Margin is less than isolation tool diameter." msgstr "Геометрия изоляции нарушена. Отступ меньше диаметра инструмента." -#: AppTools/ToolNCC.py:2217 AppTools/ToolNCC.py:3296 AppTools/ToolNCC.py:3677 +#: flatcamTools/ToolNCC.py:2184 flatcamTools/ToolNCC.py:3236 +#: flatcamTools/ToolNCC.py:3617 msgid "The selected object is not suitable for copper clearing." msgstr "Выбранный объект не подходит для очистки меди." -#: AppTools/ToolNCC.py:2224 AppTools/ToolNCC.py:3303 +#: flatcamTools/ToolNCC.py:2191 flatcamTools/ToolNCC.py:3243 msgid "NCC Tool. Finished calculation of 'empty' area." msgstr "Очистка от меди. Закончен расчёт «пустой» области." -#: AppTools/ToolNCC.py:2267 -#, fuzzy -#| msgid "Painting polygon with method: lines." -msgid "Clearing the polygon with the method: lines." -msgstr "Окраска полигона методом: линии." - -#: AppTools/ToolNCC.py:2277 -#, fuzzy -#| msgid "Failed. Painting polygon with method: seed." -msgid "Failed. Clearing the polygon with the method: seed." -msgstr "Ошибка. Отрисовка полигона методом: круговой." - -#: AppTools/ToolNCC.py:2286 -#, fuzzy -#| msgid "Failed. Painting polygon with method: standard." -msgid "Failed. Clearing the polygon with the method: standard." -msgstr "Ошибка. Отрисовка полигона методом: стандартный." - -#: AppTools/ToolNCC.py:2300 -#, fuzzy -#| msgid "Geometry could not be painted completely" -msgid "Geometry could not be cleared completely" -msgstr "Геометрия не может быть окрашена полностью" - -#: AppTools/ToolNCC.py:2325 AppTools/ToolNCC.py:2327 AppTools/ToolNCC.py:2973 -#: AppTools/ToolNCC.py:2975 +#: flatcamTools/ToolNCC.py:2222 flatcamTools/ToolNCC.py:2224 +#: flatcamTools/ToolNCC.py:2916 flatcamTools/ToolNCC.py:2918 msgid "Non-Copper clearing ..." msgstr "Очистка от меди ..." -#: AppTools/ToolNCC.py:2377 AppTools/ToolNCC.py:3120 +#: flatcamTools/ToolNCC.py:2278 flatcamTools/ToolNCC.py:3060 msgid "" "NCC Tool. Finished non-copper polygons. Normal copper clearing task started." msgstr "" "Очистка от меди. Безмедные полигоны готовы. Началось задание по нормальной " "очистке меди." -#: AppTools/ToolNCC.py:2415 AppTools/ToolNCC.py:2663 +#: flatcamTools/ToolNCC.py:2312 flatcamTools/ToolNCC.py:2592 msgid "NCC Tool failed creating bounding box." msgstr "Инструменту NCC не удалось создать ограничивающую рамку." -#: AppTools/ToolNCC.py:2430 AppTools/ToolNCC.py:2680 AppTools/ToolNCC.py:3316 -#: AppTools/ToolNCC.py:3702 +#: flatcamTools/ToolNCC.py:2326 flatcamTools/ToolNCC.py:2609 +#: flatcamTools/ToolNCC.py:3256 flatcamTools/ToolNCC.py:3642 msgid "NCC Tool clearing with tool diameter" msgstr "Очистка от меди инструментом с диаметром" -#: AppTools/ToolNCC.py:2430 AppTools/ToolNCC.py:2680 AppTools/ToolNCC.py:3316 -#: AppTools/ToolNCC.py:3702 +#: flatcamTools/ToolNCC.py:2326 flatcamTools/ToolNCC.py:2609 +#: flatcamTools/ToolNCC.py:3256 flatcamTools/ToolNCC.py:3642 msgid "started." msgstr "запущен." -#: AppTools/ToolNCC.py:2588 AppTools/ToolNCC.py:3477 +#: flatcamTools/ToolNCC.py:2518 flatcamTools/ToolNCC.py:3417 msgid "" "There is no NCC Geometry in the file.\n" "Usually it means that the tool diameter is too big for the painted " @@ -15291,24 +16564,24 @@ msgstr "" "рисования .\n" "Измените параметры рисования и повторите попытку." -#: AppTools/ToolNCC.py:2597 AppTools/ToolNCC.py:3486 +#: flatcamTools/ToolNCC.py:2527 flatcamTools/ToolNCC.py:3426 msgid "NCC Tool clear all done." msgstr "Очистка от меди выполнена." -#: AppTools/ToolNCC.py:2600 AppTools/ToolNCC.py:3489 +#: flatcamTools/ToolNCC.py:2530 flatcamTools/ToolNCC.py:3429 msgid "NCC Tool clear all done but the copper features isolation is broken for" msgstr "Очистка от меди выполнена, но медная изоляция нарушена для" -#: AppTools/ToolNCC.py:2602 AppTools/ToolNCC.py:2888 AppTools/ToolNCC.py:3491 -#: AppTools/ToolNCC.py:3874 +#: flatcamTools/ToolNCC.py:2532 flatcamTools/ToolNCC.py:2817 +#: flatcamTools/ToolNCC.py:3431 flatcamTools/ToolNCC.py:3814 msgid "tools" msgstr "инструментов" -#: AppTools/ToolNCC.py:2884 AppTools/ToolNCC.py:3870 +#: flatcamTools/ToolNCC.py:2813 flatcamTools/ToolNCC.py:3810 msgid "NCC Tool Rest Machining clear all done." msgstr "Очистка от меди с обработкой остаточного припуска выполнена." -#: AppTools/ToolNCC.py:2887 AppTools/ToolNCC.py:3873 +#: flatcamTools/ToolNCC.py:2816 flatcamTools/ToolNCC.py:3813 msgid "" "NCC Tool Rest Machining clear all done but the copper features isolation is " "broken for" @@ -15316,11 +16589,11 @@ msgstr "" "Очистка от меди с обработкой остаточного припуска выполнена, но медная " "изоляция нарушена для" -#: AppTools/ToolNCC.py:2985 +#: flatcamTools/ToolNCC.py:2928 msgid "NCC Tool started. Reading parameters." msgstr "Очистка от меди. Чтение параметров." -#: AppTools/ToolNCC.py:3972 +#: flatcamTools/ToolNCC.py:3906 msgid "" "Try to use the Buffering Type = Full in Preferences -> Gerber General. " "Reload the Gerber file after this change." @@ -15328,43 +16601,43 @@ msgstr "" "Попробуйте использовать тип буферизации = \"Полная\" в Настройки -> Gerber " "основный. Перезагрузите файл Gerber после этого изменения." -#: AppTools/ToolOptimal.py:85 +#: flatcamTools/ToolOptimal.py:79 msgid "Number of decimals kept for found distances." msgstr "Количество десятичных знаков, сохраненных для найденных расстояний." -#: AppTools/ToolOptimal.py:93 +#: flatcamTools/ToolOptimal.py:87 msgid "Minimum distance" msgstr "Минимальная дистанция" -#: AppTools/ToolOptimal.py:94 +#: flatcamTools/ToolOptimal.py:88 msgid "Display minimum distance between copper features." msgstr "Отображение минимального расстояния между медными элементами." -#: AppTools/ToolOptimal.py:98 +#: flatcamTools/ToolOptimal.py:92 msgid "Determined" msgstr "Результат" -#: AppTools/ToolOptimal.py:112 +#: flatcamTools/ToolOptimal.py:106 msgid "Occurring" msgstr "Повторений" -#: AppTools/ToolOptimal.py:113 +#: flatcamTools/ToolOptimal.py:107 msgid "How many times this minimum is found." msgstr "Сколько раз этот минимум найден." -#: AppTools/ToolOptimal.py:119 +#: flatcamTools/ToolOptimal.py:113 msgid "Minimum points coordinates" msgstr "Минимальные координаты точек" -#: AppTools/ToolOptimal.py:120 AppTools/ToolOptimal.py:126 +#: flatcamTools/ToolOptimal.py:114 flatcamTools/ToolOptimal.py:120 msgid "Coordinates for points where minimum distance was found." msgstr "Координаты точек, где было найдено минимальное расстояние." -#: AppTools/ToolOptimal.py:139 AppTools/ToolOptimal.py:215 +#: flatcamTools/ToolOptimal.py:133 flatcamTools/ToolOptimal.py:209 msgid "Jump to selected position" msgstr "Перейти к выбранной позиции" -#: AppTools/ToolOptimal.py:141 AppTools/ToolOptimal.py:217 +#: flatcamTools/ToolOptimal.py:135 flatcamTools/ToolOptimal.py:211 msgid "" "Select a position in the Locations text box and then\n" "click this button." @@ -15372,11 +16645,11 @@ msgstr "" "Выберите позицию местоположения в текстовом поле, а затем\n" "нажмите эту кнопку." -#: AppTools/ToolOptimal.py:149 +#: flatcamTools/ToolOptimal.py:143 msgid "Other distances" msgstr "Другие дистанции" -#: AppTools/ToolOptimal.py:150 +#: flatcamTools/ToolOptimal.py:144 msgid "" "Will display other distances in the Gerber file ordered from\n" "the minimum to the maximum, not including the absolute minimum." @@ -15384,13 +16657,13 @@ msgstr "" "Отобразит другие расстояния в файле Gerber, упорядоченные\n" "от минимума до максимума, не считая абсолютного минимума." -#: AppTools/ToolOptimal.py:155 +#: flatcamTools/ToolOptimal.py:149 msgid "Other distances points coordinates" msgstr "Другие дистанции координат точек" -#: AppTools/ToolOptimal.py:156 AppTools/ToolOptimal.py:170 -#: AppTools/ToolOptimal.py:177 AppTools/ToolOptimal.py:194 -#: AppTools/ToolOptimal.py:201 +#: flatcamTools/ToolOptimal.py:150 flatcamTools/ToolOptimal.py:164 +#: flatcamTools/ToolOptimal.py:171 flatcamTools/ToolOptimal.py:188 +#: flatcamTools/ToolOptimal.py:195 msgid "" "Other distances and the coordinates for points\n" "where the distance was found." @@ -15398,19 +16671,19 @@ msgstr "" "Другие расстояния и координаты для точек\n" "где расстояние было найдено." -#: AppTools/ToolOptimal.py:169 +#: flatcamTools/ToolOptimal.py:163 msgid "Gerber distances" msgstr "Дистанции Gerber" -#: AppTools/ToolOptimal.py:193 +#: flatcamTools/ToolOptimal.py:187 msgid "Points coordinates" msgstr "Координаты точек" -#: AppTools/ToolOptimal.py:225 +#: flatcamTools/ToolOptimal.py:219 msgid "Find Minimum" msgstr "Найти минимум" -#: AppTools/ToolOptimal.py:227 +#: flatcamTools/ToolOptimal.py:221 msgid "" "Calculate the minimum distance between copper features,\n" "this will allow the determination of the right tool to\n" @@ -15420,26 +16693,26 @@ msgstr "" "Это позволит определить правильный для использования инструмент\n" "для изоляции или очистки меди." -#: AppTools/ToolOptimal.py:352 +#: flatcamTools/ToolOptimal.py:346 msgid "Only Gerber objects can be evaluated." msgstr "Можно использовать только объекты Gerber." -#: AppTools/ToolOptimal.py:358 +#: flatcamTools/ToolOptimal.py:352 msgid "" "Optimal Tool. Started to search for the minimum distance between copper " "features." msgstr "" "Оптимизация. Начат поиск минимального расстояния между медными элементами." -#: AppTools/ToolOptimal.py:368 +#: flatcamTools/ToolOptimal.py:362 msgid "Optimal Tool. Parsing geometry for aperture" msgstr "Optimal Tool. Разбор геометрии для отверстия" -#: AppTools/ToolOptimal.py:379 +#: flatcamTools/ToolOptimal.py:373 msgid "Optimal Tool. Creating a buffer for the object geometry." msgstr "Оптимизация. Создание буфера для объекта геометрии." -#: AppTools/ToolOptimal.py:389 +#: flatcamTools/ToolOptimal.py:383 msgid "" "The Gerber object has one Polygon as geometry.\n" "There are no distances between geometry elements to be found." @@ -15448,53 +16721,45 @@ msgstr "" "Там нет расстояния между геометрическими элементами, которые могут быть " "найдены." -#: AppTools/ToolOptimal.py:394 +#: flatcamTools/ToolOptimal.py:388 msgid "" "Optimal Tool. Finding the distances between each two elements. Iterations" msgstr "Оптимизация. Нахождение расстояний между двумя элементами. Повторений" -#: AppTools/ToolOptimal.py:429 +#: flatcamTools/ToolOptimal.py:423 msgid "Optimal Tool. Finding the minimum distance." msgstr "Оптимизация. Нахождение минимального расстояния." -#: AppTools/ToolOptimal.py:445 +#: flatcamTools/ToolOptimal.py:439 msgid "Optimal Tool. Finished successfully." msgstr "Optimal Tool. Успешно завершено." -#: AppTools/ToolPDF.py:91 AppTools/ToolPDF.py:95 +#: flatcamTools/ToolPDF.py:157 flatcamTools/ToolPDF.py:161 msgid "Open PDF" msgstr "Открыть PDF" -#: AppTools/ToolPDF.py:98 +#: flatcamTools/ToolPDF.py:164 msgid "Open PDF cancelled" msgstr "Открытие PDF отменено" -#: AppTools/ToolPDF.py:122 +#: flatcamTools/ToolPDF.py:195 msgid "Parsing PDF file ..." msgstr "Разбор PDF-файла ..." -#: AppTools/ToolPDF.py:138 App_Main.py:8593 -msgid "Failed to open" -msgstr "Не удалось открыть" - -#: AppTools/ToolPDF.py:203 AppTools/ToolPcbWizard.py:445 App_Main.py:8542 -msgid "No geometry found in file" -msgstr "Геометрия не найдена в файле" - -#: AppTools/ToolPDF.py:206 AppTools/ToolPDF.py:279 +#: flatcamTools/ToolPDF.py:278 flatcamTools/ToolPDF.py:353 #, python-format msgid "Rendering PDF layer #%d ..." msgstr "Отрисовка слоя PDF #%d ..." -#: AppTools/ToolPDF.py:210 AppTools/ToolPDF.py:283 +#: flatcamTools/ToolPDF.py:283 flatcamTools/ToolPDF.py:358 msgid "Open PDF file failed." msgstr "Не удалось открыть PDF-файл." -#: AppTools/ToolPDF.py:215 AppTools/ToolPDF.py:288 +#: flatcamTools/ToolPDF.py:289 flatcamTools/ToolPDF.py:363 msgid "Rendered" msgstr "Отрисовка" -#: AppTools/ToolPaint.py:81 +#: flatcamTools/ToolPaint.py:82 msgid "" "Specify the type of object to be painted.\n" "It can be of type: Gerber or Geometry.\n" @@ -15506,11 +16771,11 @@ msgstr "" "То, что здесь выбрано, будет диктовать вид\n" "объектов, которые будут заполнять поле «Объект»." -#: AppTools/ToolPaint.py:103 +#: flatcamTools/ToolPaint.py:104 msgid "Object to be painted." msgstr "Объект для рисования." -#: AppTools/ToolPaint.py:116 +#: flatcamTools/ToolPaint.py:117 msgid "" "Tools pool from which the algorithm\n" "will pick the ones used for painting." @@ -15518,7 +16783,7 @@ msgstr "" "Пул инструментов, из которого алгоритм\n" "выберет те, которые будут использоваться для окрашивания." -#: AppTools/ToolPaint.py:133 +#: flatcamTools/ToolPaint.py:134 msgid "" "This is the Tool Number.\n" "Painting will start with the tool with the biggest diameter,\n" @@ -15535,7 +16800,7 @@ msgstr "" "в результирующей геометрии. Это потому, что с некоторыми инструментами\n" "эта функция не сможет создавать геометрию рисования." -#: AppTools/ToolPaint.py:145 +#: flatcamTools/ToolPaint.py:146 msgid "" "The Tool Type (TT) can be:\n" "- Circular -> it is informative only. Being circular,\n" @@ -15569,7 +16834,7 @@ msgstr "" " Выбор типа инструмента V-Shape автоматически выберет тип операции\n" " в результирующей геометрии как Изоляция." -#: AppTools/ToolPaint.py:497 +#: flatcamTools/ToolPaint.py:498 msgid "" "The type of FlatCAM object to be used as paint reference.\n" "It can be Gerber, Excellon or Geometry." @@ -15577,7 +16842,7 @@ msgstr "" "Тип объекта FlatCAM, который будет использоваться как ссылка для рисования.\n" "Это может быть Gerber, Excellon или Geometry." -#: AppTools/ToolPaint.py:538 +#: flatcamTools/ToolPaint.py:539 msgid "" "- 'Area Selection' - left mouse click to start selection of the area to be " "painted.\n" @@ -15595,99 +16860,99 @@ msgstr "" "- «Контрольный объект» - будет выполнять очистку от меди в области\n" "указано другим объектом." -#: AppTools/ToolPaint.py:1412 +#: flatcamTools/ToolPaint.py:1393 #, python-format msgid "Could not retrieve object: %s" msgstr "Не удалось получить объект: %s" -#: AppTools/ToolPaint.py:1422 +#: flatcamTools/ToolPaint.py:1403 msgid "Can't do Paint on MultiGeo geometries" msgstr "Невозможно окрашивание MultiGeo Geometries" -#: AppTools/ToolPaint.py:1459 +#: flatcamTools/ToolPaint.py:1433 msgid "Click on a polygon to paint it." msgstr "Нажмите на полигон, чтобы нарисовать его." -#: AppTools/ToolPaint.py:1472 +#: flatcamTools/ToolPaint.py:1453 msgid "Click the start point of the paint area." msgstr "Нажмите на начальную точку области рисования." -#: AppTools/ToolPaint.py:1537 +#: flatcamTools/ToolPaint.py:1518 msgid "Click to add next polygon or right click to start painting." msgstr "" "Щелкните, чтобы добавить следующий полигон, или щелкните правой кнопкой " "мыши, чтобы начать рисование." -#: AppTools/ToolPaint.py:1550 +#: flatcamTools/ToolPaint.py:1531 msgid "Click to add/remove next polygon or right click to start painting." msgstr "" "Нажмите для добавления/удаления следующего полигона или щелкните правой " "кнопкой мыши, чтобы начать рисование." -#: AppTools/ToolPaint.py:2054 +#: flatcamTools/ToolPaint.py:2029 msgid "Painting polygon with method: lines." msgstr "Окраска полигона методом: линии." -#: AppTools/ToolPaint.py:2066 +#: flatcamTools/ToolPaint.py:2041 msgid "Failed. Painting polygon with method: seed." msgstr "Ошибка. Отрисовка полигона методом: круговой." -#: AppTools/ToolPaint.py:2077 +#: flatcamTools/ToolPaint.py:2052 msgid "Failed. Painting polygon with method: standard." msgstr "Ошибка. Отрисовка полигона методом: стандартный." -#: AppTools/ToolPaint.py:2093 +#: flatcamTools/ToolPaint.py:2068 msgid "Geometry could not be painted completely" msgstr "Геометрия не может быть окрашена полностью" -#: AppTools/ToolPaint.py:2122 AppTools/ToolPaint.py:2125 -#: AppTools/ToolPaint.py:2133 AppTools/ToolPaint.py:2436 -#: AppTools/ToolPaint.py:2439 AppTools/ToolPaint.py:2447 -#: AppTools/ToolPaint.py:2935 AppTools/ToolPaint.py:2938 -#: AppTools/ToolPaint.py:2944 +#: flatcamTools/ToolPaint.py:2097 flatcamTools/ToolPaint.py:2100 +#: flatcamTools/ToolPaint.py:2108 flatcamTools/ToolPaint.py:2411 +#: flatcamTools/ToolPaint.py:2414 flatcamTools/ToolPaint.py:2422 +#: flatcamTools/ToolPaint.py:2910 flatcamTools/ToolPaint.py:2913 +#: flatcamTools/ToolPaint.py:2919 msgid "Paint Tool." msgstr "Рисование." -#: AppTools/ToolPaint.py:2122 AppTools/ToolPaint.py:2125 -#: AppTools/ToolPaint.py:2133 +#: flatcamTools/ToolPaint.py:2097 flatcamTools/ToolPaint.py:2100 +#: flatcamTools/ToolPaint.py:2108 msgid "Normal painting polygon task started." msgstr "Началась задача нормальной отрисовки полигона." -#: AppTools/ToolPaint.py:2123 AppTools/ToolPaint.py:2437 -#: AppTools/ToolPaint.py:2936 +#: flatcamTools/ToolPaint.py:2098 flatcamTools/ToolPaint.py:2412 +#: flatcamTools/ToolPaint.py:2911 msgid "Buffering geometry..." msgstr "Буферизация geometry..." -#: AppTools/ToolPaint.py:2145 AppTools/ToolPaint.py:2454 -#: AppTools/ToolPaint.py:2952 +#: flatcamTools/ToolPaint.py:2120 flatcamTools/ToolPaint.py:2429 +#: flatcamTools/ToolPaint.py:2927 msgid "No polygon found." msgstr "Полигон не найден." -#: AppTools/ToolPaint.py:2175 +#: flatcamTools/ToolPaint.py:2150 msgid "Painting polygon..." msgstr "Отрисовка полигона..." -#: AppTools/ToolPaint.py:2185 AppTools/ToolPaint.py:2500 -#: AppTools/ToolPaint.py:2690 AppTools/ToolPaint.py:2998 -#: AppTools/ToolPaint.py:3177 +#: flatcamTools/ToolPaint.py:2160 flatcamTools/ToolPaint.py:2475 +#: flatcamTools/ToolPaint.py:2665 flatcamTools/ToolPaint.py:2973 +#: flatcamTools/ToolPaint.py:3152 msgid "Painting with tool diameter = " msgstr "Покраска инструментом с диаметром = " -#: AppTools/ToolPaint.py:2186 AppTools/ToolPaint.py:2501 -#: AppTools/ToolPaint.py:2691 AppTools/ToolPaint.py:2999 -#: AppTools/ToolPaint.py:3178 +#: flatcamTools/ToolPaint.py:2161 flatcamTools/ToolPaint.py:2476 +#: flatcamTools/ToolPaint.py:2666 flatcamTools/ToolPaint.py:2974 +#: flatcamTools/ToolPaint.py:3153 msgid "started" msgstr "запущено" -#: AppTools/ToolPaint.py:2211 AppTools/ToolPaint.py:2527 -#: AppTools/ToolPaint.py:2717 AppTools/ToolPaint.py:3025 -#: AppTools/ToolPaint.py:3204 +#: flatcamTools/ToolPaint.py:2186 flatcamTools/ToolPaint.py:2502 +#: flatcamTools/ToolPaint.py:2692 flatcamTools/ToolPaint.py:3000 +#: flatcamTools/ToolPaint.py:3179 msgid "Margin parameter too big. Tool is not used" msgstr "Слишком большой параметр отступа. Инструмент не используется" -#: AppTools/ToolPaint.py:2269 AppTools/ToolPaint.py:2596 -#: AppTools/ToolPaint.py:2774 AppTools/ToolPaint.py:3088 -#: AppTools/ToolPaint.py:3266 +#: flatcamTools/ToolPaint.py:2244 flatcamTools/ToolPaint.py:2571 +#: flatcamTools/ToolPaint.py:2749 flatcamTools/ToolPaint.py:3063 +#: flatcamTools/ToolPaint.py:3241 msgid "" "Could not do Paint. Try a different combination of parameters. Or a " "different strategy of paint" @@ -15695,9 +16960,9 @@ msgstr "" "Окраска не выполнена. Попробуйте другую комбинацию параметров. Или другой " "способ рисования" -#: AppTools/ToolPaint.py:2326 AppTools/ToolPaint.py:2662 -#: AppTools/ToolPaint.py:2831 AppTools/ToolPaint.py:3149 -#: AppTools/ToolPaint.py:3328 +#: flatcamTools/ToolPaint.py:2301 flatcamTools/ToolPaint.py:2637 +#: flatcamTools/ToolPaint.py:2806 flatcamTools/ToolPaint.py:3124 +#: flatcamTools/ToolPaint.py:3303 msgid "" "There is no Painting Geometry in the file.\n" "Usually it means that the tool diameter is too big for the painted " @@ -15709,62 +16974,66 @@ msgstr "" "Geometry .\n" "Измените параметры рисования и повторите попытку." -#: AppTools/ToolPaint.py:2349 +#: flatcamTools/ToolPaint.py:2324 msgid "Paint Single failed." msgstr "Paint Single не выполнена." -#: AppTools/ToolPaint.py:2355 +#: flatcamTools/ToolPaint.py:2330 msgid "Paint Single Done." msgstr "Paint Single выполнена." -#: AppTools/ToolPaint.py:2357 AppTools/ToolPaint.py:2867 -#: AppTools/ToolPaint.py:3364 +#: flatcamTools/ToolPaint.py:2332 flatcamTools/ToolPaint.py:2842 +#: flatcamTools/ToolPaint.py:3339 msgid "Polygon Paint started ..." msgstr "Запущена отрисовка полигона ..." -#: AppTools/ToolPaint.py:2436 AppTools/ToolPaint.py:2439 -#: AppTools/ToolPaint.py:2447 +#: flatcamTools/ToolPaint.py:2411 flatcamTools/ToolPaint.py:2414 +#: flatcamTools/ToolPaint.py:2422 msgid "Paint all polygons task started." msgstr "Началась работа по покраске всех полигонов." -#: AppTools/ToolPaint.py:2478 AppTools/ToolPaint.py:2976 +#: flatcamTools/ToolPaint.py:2453 flatcamTools/ToolPaint.py:2951 msgid "Painting polygons..." msgstr "Отрисовка полигонов..." -#: AppTools/ToolPaint.py:2671 +#: flatcamTools/ToolPaint.py:2646 msgid "Paint All Done." msgstr "Задание \"Окрасить всё\" выполнено." -#: AppTools/ToolPaint.py:2840 AppTools/ToolPaint.py:3337 +#: flatcamTools/ToolPaint.py:2815 flatcamTools/ToolPaint.py:3312 msgid "Paint All with Rest-Machining done." msgstr "[success] Окрашивание с обработкой остаточного припуска выполнено." -#: AppTools/ToolPaint.py:2859 +#: flatcamTools/ToolPaint.py:2834 msgid "Paint All failed." msgstr "Задание \"Окрасить всё\" не выполнено." -#: AppTools/ToolPaint.py:2865 +#: flatcamTools/ToolPaint.py:2840 msgid "Paint Poly All Done." msgstr "Задание \"Окрасить всё\" выполнено." -#: AppTools/ToolPaint.py:2935 AppTools/ToolPaint.py:2938 -#: AppTools/ToolPaint.py:2944 +#: flatcamTools/ToolPaint.py:2910 flatcamTools/ToolPaint.py:2913 +#: flatcamTools/ToolPaint.py:2919 msgid "Painting area task started." msgstr "Запущена задача окраски." -#: AppTools/ToolPaint.py:3158 +#: flatcamTools/ToolPaint.py:3133 msgid "Paint Area Done." msgstr "Окраска области сделана." -#: AppTools/ToolPaint.py:3356 +#: flatcamTools/ToolPaint.py:3331 msgid "Paint Area failed." msgstr "Окраска области не сделана." -#: AppTools/ToolPaint.py:3362 +#: flatcamTools/ToolPaint.py:3337 msgid "Paint Poly Area Done." msgstr "Окраска области сделана." -#: AppTools/ToolPanelize.py:55 +#: flatcamTools/ToolPanelize.py:34 +msgid "Panelize PCB" +msgstr "Панелизация" + +#: flatcamTools/ToolPanelize.py:56 msgid "" "Specify the type of object to be panelized\n" "It can be of type: Gerber, Excellon or Geometry.\n" @@ -15776,7 +17045,7 @@ msgstr "" "Выбор здесь определяет тип объектов, которые будут\n" "в выпадающем списке объектов." -#: AppTools/ToolPanelize.py:88 +#: flatcamTools/ToolPanelize.py:89 msgid "" "Object to be panelized. This means that it will\n" "be duplicated in an array of rows and columns." @@ -15784,11 +17053,11 @@ msgstr "" "Объект для панелей. Это означает, что это будет\n" "дублироваться в массиве строк и столбцов." -#: AppTools/ToolPanelize.py:100 +#: flatcamTools/ToolPanelize.py:102 msgid "Penelization Reference" msgstr "Характеристики пенелизации" -#: AppTools/ToolPanelize.py:102 +#: flatcamTools/ToolPanelize.py:104 msgid "" "Choose the reference for panelization:\n" "- Object = the bounding box of a different object\n" @@ -15810,11 +17079,11 @@ msgstr "" "к этому эталонному объекту, следовательно, поддерживая панель\n" "объекты в синхронизации." -#: AppTools/ToolPanelize.py:123 +#: flatcamTools/ToolPanelize.py:125 msgid "Box Type" msgstr "Тип рамки" -#: AppTools/ToolPanelize.py:125 +#: flatcamTools/ToolPanelize.py:127 msgid "" "Specify the type of object to be used as an container for\n" "panelization. It can be: Gerber or Geometry type.\n" @@ -15827,7 +17096,7 @@ msgstr "" "Выбор здесь определяет тип объектов, которые будут\n" "в поле Box Object." -#: AppTools/ToolPanelize.py:139 +#: flatcamTools/ToolPanelize.py:141 msgid "" "The actual object that is used as container for the\n" " selected object that is to be panelized." @@ -15835,11 +17104,11 @@ msgstr "" "Фактический объект, который используется контейнер для\n" "  выделенный объект, который должен быть панелизирован." -#: AppTools/ToolPanelize.py:149 +#: flatcamTools/ToolPanelize.py:147 msgid "Panel Data" msgstr "Данные панели" -#: AppTools/ToolPanelize.py:151 +#: flatcamTools/ToolPanelize.py:149 msgid "" "This informations will shape the resulting panel.\n" "The number of rows and columns will set how many\n" @@ -15855,7 +17124,7 @@ msgstr "" "Расстояние устанавливает дистанцию между любыми двумя\n" "элементами массива панели." -#: AppTools/ToolPanelize.py:214 +#: flatcamTools/ToolPanelize.py:208 msgid "" "Choose the type of object for the panel object:\n" "- Geometry\n" @@ -15865,15 +17134,15 @@ msgstr "" "- Geometry\n" "- Gerber" -#: AppTools/ToolPanelize.py:222 +#: flatcamTools/ToolPanelize.py:216 msgid "Constrain panel within" msgstr "Ограничить панель внутри" -#: AppTools/ToolPanelize.py:263 +#: flatcamTools/ToolPanelize.py:252 msgid "Panelize Object" msgstr "Панелизация" -#: AppTools/ToolPanelize.py:265 AppTools/ToolRulesCheck.py:501 +#: flatcamTools/ToolPanelize.py:254 flatcamTools/ToolRulesCheck.py:501 msgid "" "Panelize the specified object around the specified box.\n" "In other words it creates multiple copies of the source object,\n" @@ -15883,33 +17152,33 @@ msgstr "" "Другими словами, он создает несколько копий исходного объекта,\n" "расположеных в 2D массиве строк и столбцов." -#: AppTools/ToolPanelize.py:333 +#: flatcamTools/ToolPanelize.py:322 msgid "Panel. Tool" msgstr "Панелизация" -#: AppTools/ToolPanelize.py:468 +#: flatcamTools/ToolPanelize.py:457 msgid "Columns or Rows are zero value. Change them to a positive integer." msgstr "" "Столбцы или строки имеют нулевое значение. Измените их на положительное " "целое число." -#: AppTools/ToolPanelize.py:505 +#: flatcamTools/ToolPanelize.py:494 msgid "Generating panel ... " msgstr "Выполняется панелизация ... " -#: AppTools/ToolPanelize.py:788 +#: flatcamTools/ToolPanelize.py:777 msgid "Generating panel ... Adding the Gerber code." msgstr "Выполняется панелизация ... Добавление кода Gerber." -#: AppTools/ToolPanelize.py:796 +#: flatcamTools/ToolPanelize.py:785 msgid "Generating panel... Spawning copies" msgstr "Выполняется панелизация ... Создание копий" -#: AppTools/ToolPanelize.py:803 +#: flatcamTools/ToolPanelize.py:792 msgid "Panel done..." msgstr "Панель готова..." -#: AppTools/ToolPanelize.py:806 +#: flatcamTools/ToolPanelize.py:795 #, python-brace-format msgid "" "{text} Too big for the constrain area. Final panel has {col} columns and " @@ -15918,27 +17187,27 @@ msgstr "" "{text} Слишком большой для выбранного участка. Итоговая панель содержит " "{col} столбцов и {row} строк" -#: AppTools/ToolPanelize.py:815 +#: flatcamTools/ToolPanelize.py:804 msgid "Panel created successfully." msgstr "Панелизация успешно выполнена." -#: AppTools/ToolPcbWizard.py:31 +#: flatcamTools/ToolPcbWizard.py:31 msgid "PcbWizard Import Tool" msgstr "Инструмент импорта PcbWizard" -#: AppTools/ToolPcbWizard.py:40 +#: flatcamTools/ToolPcbWizard.py:40 msgid "Import 2-file Excellon" msgstr "Импорт 2-х файлов Excellon" -#: AppTools/ToolPcbWizard.py:51 +#: flatcamTools/ToolPcbWizard.py:51 msgid "Load files" msgstr "Загрузка файлов" -#: AppTools/ToolPcbWizard.py:57 +#: flatcamTools/ToolPcbWizard.py:57 msgid "Excellon file" msgstr "Excellon файл" -#: AppTools/ToolPcbWizard.py:59 +#: flatcamTools/ToolPcbWizard.py:59 msgid "" "Load the Excellon file.\n" "Usually it has a .DRL extension" @@ -15946,51 +17215,51 @@ msgstr "" "Загружает файл Excellon.\n" "Обычно он имеет расширение .DRL" -#: AppTools/ToolPcbWizard.py:65 +#: flatcamTools/ToolPcbWizard.py:65 msgid "INF file" msgstr "INF файл" -#: AppTools/ToolPcbWizard.py:67 +#: flatcamTools/ToolPcbWizard.py:67 msgid "Load the INF file." msgstr "Загружает INF-файл." -#: AppTools/ToolPcbWizard.py:79 +#: flatcamTools/ToolPcbWizard.py:79 msgid "Tool Number" msgstr "Номер инструмента" -#: AppTools/ToolPcbWizard.py:81 +#: flatcamTools/ToolPcbWizard.py:81 msgid "Tool diameter in file units." msgstr "Диаметр инструмента в файловых единицах." -#: AppTools/ToolPcbWizard.py:87 +#: flatcamTools/ToolPcbWizard.py:87 msgid "Excellon format" msgstr "Формат Excellon" -#: AppTools/ToolPcbWizard.py:95 +#: flatcamTools/ToolPcbWizard.py:95 msgid "Int. digits" msgstr "Целые цифры" -#: AppTools/ToolPcbWizard.py:97 +#: flatcamTools/ToolPcbWizard.py:97 msgid "The number of digits for the integral part of the coordinates." msgstr "Количество цифр для неотъемлемой части координат." -#: AppTools/ToolPcbWizard.py:104 +#: flatcamTools/ToolPcbWizard.py:104 msgid "Frac. digits" msgstr "Дробные цифры" -#: AppTools/ToolPcbWizard.py:106 +#: flatcamTools/ToolPcbWizard.py:106 msgid "The number of digits for the fractional part of the coordinates." msgstr "Количество цифр для дробной части координат." -#: AppTools/ToolPcbWizard.py:113 +#: flatcamTools/ToolPcbWizard.py:113 msgid "No Suppression" msgstr "Нет подавления" -#: AppTools/ToolPcbWizard.py:114 +#: flatcamTools/ToolPcbWizard.py:114 msgid "Zeros supp." msgstr "Подавление нулей." -#: AppTools/ToolPcbWizard.py:116 +#: flatcamTools/ToolPcbWizard.py:116 msgid "" "The type of zeros suppression used.\n" "Can be of type:\n" @@ -16004,7 +17273,7 @@ msgstr "" "- TZ = конечные нули сохраняются\n" "- Нет подавления = нет подавления нуля" -#: AppTools/ToolPcbWizard.py:129 +#: flatcamTools/ToolPcbWizard.py:129 msgid "" "The type of units that the coordinates and tool\n" "diameters are using. Can be INCH or MM." @@ -16012,11 +17281,11 @@ msgstr "" "Тип единиц измерения, координаты и инструмент\n" "диаметры используют. Может быть ДЮЙМ или ММ." -#: AppTools/ToolPcbWizard.py:136 +#: flatcamTools/ToolPcbWizard.py:136 msgid "Import Excellon" msgstr "Импорт Excellon" -#: AppTools/ToolPcbWizard.py:138 +#: flatcamTools/ToolPcbWizard.py:138 msgid "" "Import in FlatCAM an Excellon file\n" "that store it's information's in 2 files.\n" @@ -16028,19 +17297,19 @@ msgstr "" "Один обычно имеет расширение .DRL, а\n" "другой имеет расширение .INF." -#: AppTools/ToolPcbWizard.py:197 +#: flatcamTools/ToolPcbWizard.py:197 msgid "PCBWizard Tool" msgstr "Инструмент PCBWizard" -#: AppTools/ToolPcbWizard.py:291 AppTools/ToolPcbWizard.py:295 +#: flatcamTools/ToolPcbWizard.py:291 flatcamTools/ToolPcbWizard.py:295 msgid "Load PcbWizard Excellon file" msgstr "Загрузить Excellon-файл PcbWizard" -#: AppTools/ToolPcbWizard.py:314 AppTools/ToolPcbWizard.py:318 +#: flatcamTools/ToolPcbWizard.py:314 flatcamTools/ToolPcbWizard.py:318 msgid "Load PcbWizard INF file" msgstr "Загрузить INF-файл PcbWizard" -#: AppTools/ToolPcbWizard.py:366 +#: flatcamTools/ToolPcbWizard.py:366 msgid "" "The INF file does not contain the tool table.\n" "Try to open the Excellon file from File -> Open -> Excellon\n" @@ -16050,183 +17319,172 @@ msgstr "" "Попробуйте открыть Excellon из меню Файл- > Открыть - > Открыть Excellon\n" "и отредактируйте диаметр сверла вручную." -#: AppTools/ToolPcbWizard.py:387 +#: flatcamTools/ToolPcbWizard.py:387 msgid "PcbWizard .INF file loaded." msgstr "Inf-файл PcbWizard загружен." -#: AppTools/ToolPcbWizard.py:392 +#: flatcamTools/ToolPcbWizard.py:392 msgid "Main PcbWizard Excellon file loaded." msgstr "Файл PcbWizard Excellon загружен." -#: AppTools/ToolPcbWizard.py:424 App_Main.py:8520 -msgid "This is not Excellon file." -msgstr "Это не Excellon файл." - -#: AppTools/ToolPcbWizard.py:427 +#: flatcamTools/ToolPcbWizard.py:427 msgid "Cannot parse file" msgstr "Не удается прочитать файл" -#: AppTools/ToolPcbWizard.py:450 +#: flatcamTools/ToolPcbWizard.py:450 msgid "Importing Excellon." msgstr "Импортирование Excellon." -#: AppTools/ToolPcbWizard.py:457 +#: flatcamTools/ToolPcbWizard.py:457 msgid "Import Excellon file failed." msgstr "Не удалось импортировать файл Excellon." -#: AppTools/ToolPcbWizard.py:464 +#: flatcamTools/ToolPcbWizard.py:464 msgid "Imported" msgstr "Импортирован" -#: AppTools/ToolPcbWizard.py:467 +#: flatcamTools/ToolPcbWizard.py:467 msgid "Excellon merging is in progress. Please wait..." msgstr "Слияние Excellon продолжается. Пожалуйста, подождите..." -#: AppTools/ToolPcbWizard.py:469 +#: flatcamTools/ToolPcbWizard.py:469 msgid "The imported Excellon file is empty." msgstr "Импортированный файл Excellon есть None." -#: AppTools/ToolProperties.py:116 App_Main.py:4692 App_Main.py:6803 -#: App_Main.py:6903 App_Main.py:6944 App_Main.py:6985 App_Main.py:7027 -#: App_Main.py:7069 App_Main.py:7113 App_Main.py:7157 App_Main.py:7681 -#: App_Main.py:7685 -msgid "No object selected." -msgstr "Нет выбранных объектов." - -#: AppTools/ToolProperties.py:131 +#: flatcamTools/ToolProperties.py:131 msgid "Object Properties are displayed." msgstr "Отображены свойства объекта." -#: AppTools/ToolProperties.py:136 +#: flatcamTools/ToolProperties.py:136 msgid "Properties Tool" msgstr "Свойства" -#: AppTools/ToolProperties.py:150 +#: flatcamTools/ToolProperties.py:150 msgid "TYPE" msgstr "ТИП" -#: AppTools/ToolProperties.py:151 +#: flatcamTools/ToolProperties.py:151 msgid "NAME" msgstr "НАЗВАНИЕ" -#: AppTools/ToolProperties.py:153 +#: flatcamTools/ToolProperties.py:153 msgid "Dimensions" msgstr "Размеры" -#: AppTools/ToolProperties.py:181 +#: flatcamTools/ToolProperties.py:181 msgid "Geo Type" msgstr "Тип рамки" -#: AppTools/ToolProperties.py:184 +#: flatcamTools/ToolProperties.py:184 msgid "Single-Geo" msgstr "Одиночный" -#: AppTools/ToolProperties.py:185 +#: flatcamTools/ToolProperties.py:185 msgid "Multi-Geo" msgstr "Мультипроход" -#: AppTools/ToolProperties.py:196 +#: flatcamTools/ToolProperties.py:196 msgid "Calculating dimensions ... Please wait." msgstr "Расчет размеров ... Пожалуйста, подождите." -#: AppTools/ToolProperties.py:339 AppTools/ToolProperties.py:343 -#: AppTools/ToolProperties.py:345 +#: flatcamTools/ToolProperties.py:339 flatcamTools/ToolProperties.py:343 +#: flatcamTools/ToolProperties.py:345 msgid "Inch" msgstr "Дюйм" -#: AppTools/ToolProperties.py:339 AppTools/ToolProperties.py:344 -#: AppTools/ToolProperties.py:346 +#: flatcamTools/ToolProperties.py:339 flatcamTools/ToolProperties.py:344 +#: flatcamTools/ToolProperties.py:346 msgid "Metric" msgstr "Метрический" -#: AppTools/ToolProperties.py:421 AppTools/ToolProperties.py:486 +#: flatcamTools/ToolProperties.py:421 flatcamTools/ToolProperties.py:486 msgid "Drills number" msgstr "Номер отверстия" -#: AppTools/ToolProperties.py:422 AppTools/ToolProperties.py:488 +#: flatcamTools/ToolProperties.py:422 flatcamTools/ToolProperties.py:488 msgid "Slots number" msgstr "Номер паза" -#: AppTools/ToolProperties.py:424 +#: flatcamTools/ToolProperties.py:424 msgid "Drills total number:" msgstr "Общее количество отверстий:" -#: AppTools/ToolProperties.py:425 +#: flatcamTools/ToolProperties.py:425 msgid "Slots total number:" msgstr "Общее количество пазов:" -#: AppTools/ToolProperties.py:452 AppTools/ToolProperties.py:455 -#: AppTools/ToolProperties.py:458 AppTools/ToolProperties.py:483 +#: flatcamTools/ToolProperties.py:452 flatcamTools/ToolProperties.py:455 +#: flatcamTools/ToolProperties.py:458 flatcamTools/ToolProperties.py:483 msgid "Present" msgstr "Представление" -#: AppTools/ToolProperties.py:453 AppTools/ToolProperties.py:484 +#: flatcamTools/ToolProperties.py:453 flatcamTools/ToolProperties.py:484 msgid "Solid Geometry" msgstr "Сплошная Geometry" -#: AppTools/ToolProperties.py:456 +#: flatcamTools/ToolProperties.py:456 msgid "GCode Text" msgstr "GCode текст" -#: AppTools/ToolProperties.py:459 +#: flatcamTools/ToolProperties.py:459 msgid "GCode Geometry" msgstr "Геометрия GCode" -#: AppTools/ToolProperties.py:462 +#: flatcamTools/ToolProperties.py:462 msgid "Data" msgstr "Данные" -#: AppTools/ToolProperties.py:495 +#: flatcamTools/ToolProperties.py:495 msgid "Depth of Cut" msgstr "Глубина резания" -#: AppTools/ToolProperties.py:507 +#: flatcamTools/ToolProperties.py:507 msgid "Clearance Height" msgstr "Высота зазора" -#: AppTools/ToolProperties.py:539 +#: flatcamTools/ToolProperties.py:539 msgid "Routing time" msgstr "Время перемещения" -#: AppTools/ToolProperties.py:546 +#: flatcamTools/ToolProperties.py:546 msgid "Travelled distance" msgstr "Пройденное расстояние" -#: AppTools/ToolProperties.py:564 +#: flatcamTools/ToolProperties.py:564 msgid "Width" msgstr "Ширина" -#: AppTools/ToolProperties.py:570 AppTools/ToolProperties.py:578 +#: flatcamTools/ToolProperties.py:570 flatcamTools/ToolProperties.py:578 msgid "Box Area" msgstr "Рабочая область" -#: AppTools/ToolProperties.py:573 AppTools/ToolProperties.py:581 +#: flatcamTools/ToolProperties.py:573 flatcamTools/ToolProperties.py:581 msgid "Convex_Hull Area" msgstr "Выпуклая область корпуса" -#: AppTools/ToolProperties.py:588 AppTools/ToolProperties.py:591 +#: flatcamTools/ToolProperties.py:588 flatcamTools/ToolProperties.py:591 msgid "Copper Area" msgstr "Медный участок" -#: AppTools/ToolPunchGerber.py:30 AppTools/ToolPunchGerber.py:323 +#: flatcamTools/ToolPunchGerber.py:30 flatcamTools/ToolPunchGerber.py:323 msgid "Punch Gerber" msgstr "Перфорация" -#: AppTools/ToolPunchGerber.py:65 +#: flatcamTools/ToolPunchGerber.py:65 msgid "Gerber into which to punch holes" msgstr "Gerber для перфорации отверстий" -#: AppTools/ToolPunchGerber.py:85 +#: flatcamTools/ToolPunchGerber.py:85 msgid "ALL" msgstr "Все" -#: AppTools/ToolPunchGerber.py:166 +#: flatcamTools/ToolPunchGerber.py:166 msgid "" "Remove the geometry of Excellon from the Gerber to create the holes in pads." msgstr "" "Удаляет геометрию Excellon из Gerber, чтобы создать отверстия в площадках." -#: AppTools/ToolPunchGerber.py:325 +#: flatcamTools/ToolPunchGerber.py:325 msgid "" "Create a Gerber object from the selected object, within\n" "the specified box." @@ -16234,15 +17492,15 @@ msgstr "" "Создание объекта Gerber из выделенного объекта, в пределах\n" "указанного квадрата." -#: AppTools/ToolPunchGerber.py:425 +#: flatcamTools/ToolPunchGerber.py:425 msgid "Punch Tool" msgstr "Перфорация" -#: AppTools/ToolPunchGerber.py:599 +#: flatcamTools/ToolPunchGerber.py:599 msgid "The value of the fixed diameter is 0.0. Aborting." msgstr "Значение фиксированного диаметра составляет 0,0. Прерывание." -#: AppTools/ToolPunchGerber.py:602 +#: flatcamTools/ToolPunchGerber.py:607 flatcamTools/ToolPunchGerber.py:619 msgid "" "Could not generate punched hole Gerber because the punch hole size is bigger " "than some of the apertures in the Gerber object." @@ -16250,7 +17508,7 @@ msgstr "" "Не удалось создать пленку с перфорированным отверстием, поскольку размер " "перфорированного отверстия больше, чем некоторые отверстия в объекте Gerber." -#: AppTools/ToolPunchGerber.py:665 +#: flatcamTools/ToolPunchGerber.py:656 msgid "" "Could not generate punched hole Gerber because the newly created object " "geometry is the same as the one in the source object geometry..." @@ -16258,19 +17516,23 @@ msgstr "" "Не удалось создать пленку с перфорацией, поскольку геометрия вновь " "созданного объекта такая же, как в геометрии исходного объекта ..." -#: AppTools/ToolQRCode.py:80 +#: flatcamTools/ToolQRCode.py:80 msgid "Gerber Object to which the QRCode will be added." msgstr "Объект Gerber к которому будет добавлен QRCode." -#: AppTools/ToolQRCode.py:116 +#: flatcamTools/ToolQRCode.py:93 +msgid "QRCode Parameters" +msgstr "Параметры QRCode" + +#: flatcamTools/ToolQRCode.py:95 msgid "The parameters used to shape the QRCode." msgstr "Параметры, используемые для формирования QRCode." -#: AppTools/ToolQRCode.py:216 +#: flatcamTools/ToolQRCode.py:207 msgid "Export QRCode" msgstr "Экспорт QRCode" -#: AppTools/ToolQRCode.py:218 +#: flatcamTools/ToolQRCode.py:209 msgid "" "Show a set of controls allowing to export the QRCode\n" "to a SVG file or an PNG file." @@ -16278,131 +17540,134 @@ msgstr "" "Отображает набор элементов управления, позволяющих экспортировать QRCode\n" "в файл SVG или PNG." -#: AppTools/ToolQRCode.py:257 +#: flatcamTools/ToolQRCode.py:248 msgid "Transparent back color" msgstr "Прозрачный фон" -#: AppTools/ToolQRCode.py:282 +#: flatcamTools/ToolQRCode.py:273 msgid "Export QRCode SVG" msgstr "Экспорт QRCode SVG" -#: AppTools/ToolQRCode.py:284 +#: flatcamTools/ToolQRCode.py:275 msgid "Export a SVG file with the QRCode content." msgstr "Экспортируйте файл изображения PNG с содержимым QRCode." -#: AppTools/ToolQRCode.py:295 +#: flatcamTools/ToolQRCode.py:286 msgid "Export QRCode PNG" msgstr "Экспорт QRCode PNG" -#: AppTools/ToolQRCode.py:297 +#: flatcamTools/ToolQRCode.py:288 msgid "Export a PNG image file with the QRCode content." msgstr "Экспорт файла SVG с содержимым QRCode." -#: AppTools/ToolQRCode.py:308 +#: flatcamTools/ToolQRCode.py:299 msgid "Insert QRCode" msgstr "Вставить QR-код" -#: AppTools/ToolQRCode.py:310 +#: flatcamTools/ToolQRCode.py:301 msgid "Create the QRCode object." msgstr "Будет создан объект QRCode." -#: AppTools/ToolQRCode.py:424 AppTools/ToolQRCode.py:759 -#: AppTools/ToolQRCode.py:808 +#: flatcamTools/ToolQRCode.py:415 flatcamTools/ToolQRCode.py:750 +#: flatcamTools/ToolQRCode.py:799 msgid "Cancelled. There is no QRCode Data in the text box." msgstr "Отмена. В текстовом поле нет данных QRCode." -#: AppTools/ToolQRCode.py:443 +#: flatcamTools/ToolQRCode.py:434 msgid "Generating QRCode geometry" msgstr "Генерация QRCode геометрии" -#: AppTools/ToolQRCode.py:483 +#: flatcamTools/ToolQRCode.py:474 msgid "Click on the Destination point ..." msgstr "Нажмите на конечную точку ..." -#: AppTools/ToolQRCode.py:598 +#: flatcamTools/ToolQRCode.py:589 msgid "QRCode Tool done." msgstr "QRCode готов." -#: AppTools/ToolQRCode.py:791 AppTools/ToolQRCode.py:795 +#: flatcamTools/ToolQRCode.py:782 flatcamTools/ToolQRCode.py:786 msgid "Export PNG" msgstr "Экспорт PNG" -#: AppTools/ToolQRCode.py:838 AppTools/ToolQRCode.py:842 App_Main.py:6835 -#: App_Main.py:6839 -msgid "Export SVG" -msgstr "Экспорт SVG" - -#: AppTools/ToolRulesCheck.py:33 +#: flatcamTools/ToolRulesCheck.py:33 msgid "Check Rules" msgstr "Проверка правил" -#: AppTools/ToolRulesCheck.py:63 +#: flatcamTools/ToolRulesCheck.py:61 +msgid "Gerber Files" +msgstr "Файлы Gerber" + +#: flatcamTools/ToolRulesCheck.py:63 msgid "Gerber objects for which to check rules." msgstr "Объекты Gerber для проверки правил." -#: AppTools/ToolRulesCheck.py:78 +#: flatcamTools/ToolRulesCheck.py:78 msgid "Top" msgstr "Верх" -#: AppTools/ToolRulesCheck.py:80 +#: flatcamTools/ToolRulesCheck.py:80 msgid "The Top Gerber Copper object for which rules are checked." msgstr "Объект Top Gerber Copper, для которого проверяются правила." -#: AppTools/ToolRulesCheck.py:96 +#: flatcamTools/ToolRulesCheck.py:96 msgid "Bottom" msgstr "Низ" -#: AppTools/ToolRulesCheck.py:98 +#: flatcamTools/ToolRulesCheck.py:98 msgid "The Bottom Gerber Copper object for which rules are checked." msgstr "Нижний Gerber объект меди, для которого проверяются правила." -#: AppTools/ToolRulesCheck.py:114 +#: flatcamTools/ToolRulesCheck.py:114 msgid "SM Top" msgstr "ПМ Верх" -#: AppTools/ToolRulesCheck.py:116 +#: flatcamTools/ToolRulesCheck.py:116 msgid "The Top Gerber Solder Mask object for which rules are checked." msgstr "" "Верхний Gerber объект паяльной маски, для которого проверяются правила." -#: AppTools/ToolRulesCheck.py:132 +#: flatcamTools/ToolRulesCheck.py:132 msgid "SM Bottom" msgstr "ПМ Низ" -#: AppTools/ToolRulesCheck.py:134 +#: flatcamTools/ToolRulesCheck.py:134 msgid "The Bottom Gerber Solder Mask object for which rules are checked." msgstr "Нижний Gerber объект паяльной маски, для которого проверяются правила." -#: AppTools/ToolRulesCheck.py:150 +#: flatcamTools/ToolRulesCheck.py:150 msgid "Silk Top" msgstr "Шелкография Верх" -#: AppTools/ToolRulesCheck.py:152 +#: flatcamTools/ToolRulesCheck.py:152 msgid "The Top Gerber Silkscreen object for which rules are checked." msgstr "Верхний Gerber объект шелкографии, для которого проверяются правила." -#: AppTools/ToolRulesCheck.py:168 +#: flatcamTools/ToolRulesCheck.py:168 msgid "Silk Bottom" msgstr "Шелкография низ" -#: AppTools/ToolRulesCheck.py:170 +#: flatcamTools/ToolRulesCheck.py:170 msgid "The Bottom Gerber Silkscreen object for which rules are checked." msgstr "Нижний Gerber объект шелкографии, для которого проверяются правила." -#: AppTools/ToolRulesCheck.py:188 +#: flatcamTools/ToolRulesCheck.py:188 msgid "The Gerber Outline (Cutout) object for which rules are checked." msgstr "" "Gerber объект контур (обрезка платы), для которого проверяются правила." -#: AppTools/ToolRulesCheck.py:201 +#: flatcamTools/ToolRulesCheck.py:199 +msgid "Excellon Objects" +msgstr "Объекты Excellon" + +#: flatcamTools/ToolRulesCheck.py:201 msgid "Excellon objects for which to check rules." msgstr "Объекты Excellon для проверки правил." -#: AppTools/ToolRulesCheck.py:213 +#: flatcamTools/ToolRulesCheck.py:213 msgid "Excellon 1" msgstr "Excellon 1" -#: AppTools/ToolRulesCheck.py:215 +#: flatcamTools/ToolRulesCheck.py:215 msgid "" "Excellon object for which to check rules.\n" "Holds the plated holes or a general Excellon file content." @@ -16410,11 +17675,11 @@ msgstr "" "Объект Excellon, для которого проверяются правила.\n" "Содержит отверстия с металлизацией или общее содержимое файла Excellon." -#: AppTools/ToolRulesCheck.py:232 +#: flatcamTools/ToolRulesCheck.py:232 msgid "Excellon 2" msgstr "Excellon 2" -#: AppTools/ToolRulesCheck.py:234 +#: flatcamTools/ToolRulesCheck.py:234 msgid "" "Excellon object for which to check rules.\n" "Holds the non-plated holes." @@ -16422,35 +17687,35 @@ msgstr "" "Объект Excellon, для которого проверяются правила.\n" "Содержит отверстия без металлизации." -#: AppTools/ToolRulesCheck.py:247 +#: flatcamTools/ToolRulesCheck.py:247 msgid "All Rules" msgstr "Все правила" -#: AppTools/ToolRulesCheck.py:249 +#: flatcamTools/ToolRulesCheck.py:249 msgid "This check/uncheck all the rules below." msgstr "Выделение/снятие выделения всех правил ниже." -#: AppTools/ToolRulesCheck.py:499 +#: flatcamTools/ToolRulesCheck.py:499 msgid "Run Rules Check" msgstr "Запустить проверку" -#: AppTools/ToolRulesCheck.py:1158 AppTools/ToolRulesCheck.py:1218 -#: AppTools/ToolRulesCheck.py:1255 AppTools/ToolRulesCheck.py:1327 -#: AppTools/ToolRulesCheck.py:1381 AppTools/ToolRulesCheck.py:1419 -#: AppTools/ToolRulesCheck.py:1484 +#: flatcamTools/ToolRulesCheck.py:1158 flatcamTools/ToolRulesCheck.py:1218 +#: flatcamTools/ToolRulesCheck.py:1255 flatcamTools/ToolRulesCheck.py:1327 +#: flatcamTools/ToolRulesCheck.py:1381 flatcamTools/ToolRulesCheck.py:1419 +#: flatcamTools/ToolRulesCheck.py:1484 msgid "Value is not valid." msgstr "Значение недействительно." -#: AppTools/ToolRulesCheck.py:1172 +#: flatcamTools/ToolRulesCheck.py:1172 msgid "TOP -> Copper to Copper clearance" msgstr "ВЕРХ -> Зазор между медными дорожками" -#: AppTools/ToolRulesCheck.py:1183 +#: flatcamTools/ToolRulesCheck.py:1183 msgid "BOTTOM -> Copper to Copper clearance" msgstr "НИЗ -> Зазор между медными дорожками" -#: AppTools/ToolRulesCheck.py:1188 AppTools/ToolRulesCheck.py:1282 -#: AppTools/ToolRulesCheck.py:1446 +#: flatcamTools/ToolRulesCheck.py:1188 flatcamTools/ToolRulesCheck.py:1282 +#: flatcamTools/ToolRulesCheck.py:1446 msgid "" "At least one Gerber object has to be selected for this rule but none is " "selected." @@ -16458,12 +17723,12 @@ msgstr "" "Для этого правила должен быть выбран хотя бы один объект Gerber, но ни один " "не выбран." -#: AppTools/ToolRulesCheck.py:1224 +#: flatcamTools/ToolRulesCheck.py:1224 msgid "" "One of the copper Gerber objects or the Outline Gerber object is not valid." msgstr "Один из Gerber объектов меди или Gerber объект контура недопустим." -#: AppTools/ToolRulesCheck.py:1237 AppTools/ToolRulesCheck.py:1401 +#: flatcamTools/ToolRulesCheck.py:1237 flatcamTools/ToolRulesCheck.py:1401 msgid "" "Outline Gerber object presence is mandatory for this rule but it is not " "selected." @@ -16471,31 +17736,31 @@ msgstr "" "Присутствие Gerber объекта контура является обязательным для этого правила, " "но он не выбран." -#: AppTools/ToolRulesCheck.py:1254 AppTools/ToolRulesCheck.py:1281 +#: flatcamTools/ToolRulesCheck.py:1254 flatcamTools/ToolRulesCheck.py:1281 msgid "Silk to Silk clearance" msgstr "Зазор между элементами шелкографии" -#: AppTools/ToolRulesCheck.py:1267 +#: flatcamTools/ToolRulesCheck.py:1267 msgid "TOP -> Silk to Silk clearance" msgstr "ВЕРХ -> Зазор между элементами шелкографии" -#: AppTools/ToolRulesCheck.py:1277 +#: flatcamTools/ToolRulesCheck.py:1277 msgid "BOTTOM -> Silk to Silk clearance" msgstr "НИЗ -> Зазор между элементами шелкографии" -#: AppTools/ToolRulesCheck.py:1333 +#: flatcamTools/ToolRulesCheck.py:1333 msgid "One or more of the Gerber objects is not valid." msgstr "Один или несколько объектов Gerber недопустимы." -#: AppTools/ToolRulesCheck.py:1341 +#: flatcamTools/ToolRulesCheck.py:1341 msgid "TOP -> Silk to Solder Mask Clearance" msgstr "ВЕРХ -> Зазор между шелкографией и паяльной маской" -#: AppTools/ToolRulesCheck.py:1347 +#: flatcamTools/ToolRulesCheck.py:1347 msgid "BOTTOM -> Silk to Solder Mask Clearance" msgstr "НИЗ -> Зазор между шелкографией и паяльной маской" -#: AppTools/ToolRulesCheck.py:1351 +#: flatcamTools/ToolRulesCheck.py:1351 msgid "" "Both Silk and Solder Mask Gerber objects has to be either both Top or both " "Bottom." @@ -16503,67 +17768,61 @@ msgstr "" "Gerber объекты шелкографии или паяльной маски должны быть либо сверху, либо " "снизу." -#: AppTools/ToolRulesCheck.py:1387 +#: flatcamTools/ToolRulesCheck.py:1387 msgid "" "One of the Silk Gerber objects or the Outline Gerber object is not valid." msgstr "" "Один из Gerber объектов шелкографии или Gerber объект контура недопустим." -#: AppTools/ToolRulesCheck.py:1431 +#: flatcamTools/ToolRulesCheck.py:1431 msgid "TOP -> Minimum Solder Mask Sliver" msgstr "ВЕРХ -> Минимальная ширина паяльной маски" -#: AppTools/ToolRulesCheck.py:1441 +#: flatcamTools/ToolRulesCheck.py:1441 msgid "BOTTOM -> Minimum Solder Mask Sliver" msgstr "НИЗ-> Минимальная ширина паяльной маски" -#: AppTools/ToolRulesCheck.py:1490 +#: flatcamTools/ToolRulesCheck.py:1490 msgid "One of the Copper Gerber objects or the Excellon objects is not valid." msgstr "Один из объектов Copper Gerber или Excellon недопустим." -#: AppTools/ToolRulesCheck.py:1506 +#: flatcamTools/ToolRulesCheck.py:1506 msgid "" "Excellon object presence is mandatory for this rule but none is selected." msgstr "" "Наличие объекта Excellon обязательно для этого правила, но ни один объект не " "выбран." -#: AppTools/ToolRulesCheck.py:1579 AppTools/ToolRulesCheck.py:1592 -#: AppTools/ToolRulesCheck.py:1603 AppTools/ToolRulesCheck.py:1616 +#: flatcamTools/ToolRulesCheck.py:1579 flatcamTools/ToolRulesCheck.py:1592 +#: flatcamTools/ToolRulesCheck.py:1603 flatcamTools/ToolRulesCheck.py:1616 msgid "STATUS" msgstr "СТАТУС" -#: AppTools/ToolRulesCheck.py:1582 AppTools/ToolRulesCheck.py:1606 +#: flatcamTools/ToolRulesCheck.py:1582 flatcamTools/ToolRulesCheck.py:1606 msgid "FAILED" msgstr "НЕУДАЧНО" -#: AppTools/ToolRulesCheck.py:1595 AppTools/ToolRulesCheck.py:1619 +#: flatcamTools/ToolRulesCheck.py:1595 flatcamTools/ToolRulesCheck.py:1619 msgid "PASSED" msgstr "УСПЕШНО ПРОЙДЕНО" -#: AppTools/ToolRulesCheck.py:1596 AppTools/ToolRulesCheck.py:1620 +#: flatcamTools/ToolRulesCheck.py:1596 flatcamTools/ToolRulesCheck.py:1620 msgid "Violations: There are no violations for the current rule." msgstr "Нарушения: нарушений по текущему правилу нет." -#: AppTools/ToolShell.py:59 -msgid "Clear the text." -msgstr "" - -#: AppTools/ToolShell.py:91 AppTools/ToolShell.py:93 +#: flatcamTools/ToolShell.py:74 flatcamTools/ToolShell.py:76 msgid "...processing..." msgstr "...обработка..." -#: AppTools/ToolSolderPaste.py:37 +#: flatcamTools/ToolSolderPaste.py:37 msgid "Solder Paste Tool" msgstr "Паяльная паста" -#: AppTools/ToolSolderPaste.py:68 -#, fuzzy -#| msgid "Select Soldermask object" -msgid "Gerber Solderpaste object." -msgstr "Выберите объект паяльной маски" +#: flatcamTools/ToolSolderPaste.py:69 +msgid "Gerber Solder paste object. " +msgstr "Gerber объект паяльной пасты. " -#: AppTools/ToolSolderPaste.py:81 +#: flatcamTools/ToolSolderPaste.py:76 msgid "" "Tools pool from which the algorithm\n" "will pick the ones used for dispensing solder paste." @@ -16571,7 +17830,7 @@ msgstr "" "Пул инструментов, из которого алгоритм\n" "выберет те, которые будут использоваться для дозирования паяльной пасты." -#: AppTools/ToolSolderPaste.py:96 +#: flatcamTools/ToolSolderPaste.py:91 msgid "" "This is the Tool Number.\n" "The solder dispensing will start with the tool with the biggest \n" @@ -16586,7 +17845,7 @@ msgstr "" "Если больше нет инструментов, но есть еще не покрытые прокладки\n" "  с паяльной пастой приложение выдаст окно с предупреждением." -#: AppTools/ToolSolderPaste.py:103 +#: flatcamTools/ToolSolderPaste.py:98 msgid "" "Nozzle tool Diameter. It's value (in current FlatCAM units)\n" "is the width of the solder paste dispensed." @@ -16594,11 +17853,11 @@ msgstr "" "Насадка инструментальная Диаметр. Это значение (в текущих единицах FlatCAM)\n" "ширина выдавленной паяльной пасты." -#: AppTools/ToolSolderPaste.py:110 +#: flatcamTools/ToolSolderPaste.py:105 msgid "New Nozzle Tool" msgstr "Новое сопло" -#: AppTools/ToolSolderPaste.py:129 +#: flatcamTools/ToolSolderPaste.py:124 msgid "" "Add a new nozzle tool to the Tool Table\n" "with the diameter specified above." @@ -16606,11 +17865,15 @@ msgstr "" "Добавить новый инструмент сопла в таблицу инструментов\n" "с диаметром, указанным выше." -#: AppTools/ToolSolderPaste.py:151 +#: flatcamTools/ToolSolderPaste.py:136 +msgid "Generate solder paste dispensing geometry." +msgstr "Создание геометрии дозирования паяльной пасты." + +#: flatcamTools/ToolSolderPaste.py:155 msgid "STEP 1" msgstr "ШАГ 1" -#: AppTools/ToolSolderPaste.py:153 +#: flatcamTools/ToolSolderPaste.py:157 msgid "" "First step is to select a number of nozzle tools for usage\n" "and then optionally modify the GCode parameters below." @@ -16618,7 +17881,7 @@ msgstr "" "Первый шаг - выбрать несколько инструментов для использования насадок.\n" "а затем при необходимости измените параметры кода G ниже." -#: AppTools/ToolSolderPaste.py:156 +#: flatcamTools/ToolSolderPaste.py:160 msgid "" "Select tools.\n" "Modify parameters." @@ -16626,7 +17889,7 @@ msgstr "" "Выберите инструменты.\n" "Изменить параметры." -#: AppTools/ToolSolderPaste.py:276 +#: flatcamTools/ToolSolderPaste.py:280 msgid "" "Feedrate (speed) while moving up vertically\n" " to Dispense position (on Z plane)." @@ -16634,7 +17897,7 @@ msgstr "" "Скорость подачи (скорость) при вертикальном движении\n" "  Дозировать положение (на плоскости Z)." -#: AppTools/ToolSolderPaste.py:346 +#: flatcamTools/ToolSolderPaste.py:350 msgid "" "Generate GCode for Solder Paste dispensing\n" "on PCB pads." @@ -16642,11 +17905,11 @@ msgstr "" "Создаёт GCode для дозирования паяльной пасты\n" "на печатной плате." -#: AppTools/ToolSolderPaste.py:367 +#: flatcamTools/ToolSolderPaste.py:371 msgid "STEP 2" msgstr "ШАГ 2" -#: AppTools/ToolSolderPaste.py:369 +#: flatcamTools/ToolSolderPaste.py:373 msgid "" "Second step is to create a solder paste dispensing\n" "geometry out of an Solder Paste Mask Gerber file." @@ -16654,15 +17917,11 @@ msgstr "" "Второй шаг заключается в создании дозирования паяльной пасты.\n" "геометрия из файла паяльной маски Gerber." -#: AppTools/ToolSolderPaste.py:375 -msgid "Generate solder paste dispensing geometry." -msgstr "Создание геометрии дозирования паяльной пасты." - -#: AppTools/ToolSolderPaste.py:398 +#: flatcamTools/ToolSolderPaste.py:390 msgid "Geo Result" msgstr "Результирующая Geo" -#: AppTools/ToolSolderPaste.py:400 +#: flatcamTools/ToolSolderPaste.py:392 msgid "" "Geometry Solder Paste object.\n" "The name of the object has to end in:\n" @@ -16672,11 +17931,11 @@ msgstr "" "Название объекта должно заканчиваться на:\n" "«_solderpaste» в качестве защиты." -#: AppTools/ToolSolderPaste.py:409 +#: flatcamTools/ToolSolderPaste.py:401 msgid "STEP 3" msgstr "ШАГ 3" -#: AppTools/ToolSolderPaste.py:411 +#: flatcamTools/ToolSolderPaste.py:403 msgid "" "Third step is to select a solder paste dispensing geometry,\n" "and then generate a CNCJob object.\n" @@ -16692,11 +17951,11 @@ msgstr "" "сначала вам нужно сгенерировать геометрию с этими новыми параметрами,\n" "и только после этого вы можете сгенерировать обновленный CNCJob." -#: AppTools/ToolSolderPaste.py:432 +#: flatcamTools/ToolSolderPaste.py:424 msgid "CNC Result" msgstr "Результирующий CNC" -#: AppTools/ToolSolderPaste.py:434 +#: flatcamTools/ToolSolderPaste.py:426 msgid "" "CNCJob Solder paste object.\n" "In order to enable the GCode save section,\n" @@ -16708,11 +17967,11 @@ msgstr "" "имя объекта должно заканчиваться на:\n" "«_solderpaste» в качестве защиты." -#: AppTools/ToolSolderPaste.py:444 +#: flatcamTools/ToolSolderPaste.py:436 msgid "View GCode" msgstr "Посмотреть GCode" -#: AppTools/ToolSolderPaste.py:446 +#: flatcamTools/ToolSolderPaste.py:438 msgid "" "View the generated GCode for Solder Paste dispensing\n" "on PCB pads." @@ -16720,11 +17979,11 @@ msgstr "" "Просмотр сгенерированного GCode для подачи паяльной пасты\n" "на печатную платау." -#: AppTools/ToolSolderPaste.py:456 +#: flatcamTools/ToolSolderPaste.py:448 msgid "Save GCode" msgstr "Сохранить GCode" -#: AppTools/ToolSolderPaste.py:458 +#: flatcamTools/ToolSolderPaste.py:450 msgid "" "Save the generated GCode for Solder Paste dispensing\n" "on PCB pads, to a file." @@ -16732,11 +17991,11 @@ msgstr "" "Сохранение сгенерированного GCode для подачи паяльной пасты\n" "на печатную платау, в файл." -#: AppTools/ToolSolderPaste.py:468 +#: flatcamTools/ToolSolderPaste.py:460 msgid "STEP 4" msgstr "ШАГ 4" -#: AppTools/ToolSolderPaste.py:470 +#: flatcamTools/ToolSolderPaste.py:462 msgid "" "Fourth step (and last) is to select a CNCJob made from \n" "a solder paste dispensing geometry, and then view/save it's GCode." @@ -16744,97 +18003,101 @@ msgstr "" "Четвертый шаг (и последний) - выбор CNCJob, сделанного из \n" "геометрии распределения паяльной пасты, а затем просмотр/сохранение ее GCode." -#: AppTools/ToolSolderPaste.py:930 +#: flatcamTools/ToolSolderPaste.py:922 msgid "New Nozzle tool added to Tool Table." msgstr "Новое сопло добавлено в таблицу инструментов." -#: AppTools/ToolSolderPaste.py:973 +#: flatcamTools/ToolSolderPaste.py:965 msgid "Nozzle tool from Tool Table was edited." msgstr "Сопло было изменено в таблице инструментов." -#: AppTools/ToolSolderPaste.py:1032 +#: flatcamTools/ToolSolderPaste.py:1024 msgid "Delete failed. Select a Nozzle tool to delete." msgstr "Удалить не удалось. Выберите инструмент Сопла для удаления." -#: AppTools/ToolSolderPaste.py:1038 +#: flatcamTools/ToolSolderPaste.py:1030 msgid "Nozzle tool(s) deleted from Tool Table." msgstr "Сопло удалено из таблицы инструментов." -#: AppTools/ToolSolderPaste.py:1094 +#: flatcamTools/ToolSolderPaste.py:1086 msgid "No SolderPaste mask Gerber object loaded." msgstr "Нет загруженного Gerber объекта маски паяльной пасты." -#: AppTools/ToolSolderPaste.py:1112 +#: flatcamTools/ToolSolderPaste.py:1104 msgid "Creating Solder Paste dispensing geometry." msgstr "Создание геометрии дозирования паяльной пасты." -#: AppTools/ToolSolderPaste.py:1125 +#: flatcamTools/ToolSolderPaste.py:1117 msgid "No Nozzle tools in the tool table." msgstr "Нет инструментов сопла в таблице инструментов." -#: AppTools/ToolSolderPaste.py:1251 +#: flatcamTools/ToolSolderPaste.py:1243 msgid "Cancelled. Empty file, it has no geometry..." msgstr "Отмена. Пустой файл, он не имеет геометрии..." -#: AppTools/ToolSolderPaste.py:1254 +#: flatcamTools/ToolSolderPaste.py:1246 msgid "Solder Paste geometry generated successfully" msgstr "Геометрия дозатора паяльной пасты успешно создана" -#: AppTools/ToolSolderPaste.py:1261 +#: flatcamTools/ToolSolderPaste.py:1253 msgid "Some or all pads have no solder due of inadequate nozzle diameters..." msgstr "" "Некоторые или все площадки не имеют припоя из-за недостаточного диаметра " "сопла ..." -#: AppTools/ToolSolderPaste.py:1275 +#: flatcamTools/ToolSolderPaste.py:1267 msgid "Generating Solder Paste dispensing geometry..." msgstr "Генерация геометрии дозирования паяльной пасты ..." -#: AppTools/ToolSolderPaste.py:1295 +#: flatcamTools/ToolSolderPaste.py:1287 msgid "There is no Geometry object available." msgstr "Объект Geometry недоступен." -#: AppTools/ToolSolderPaste.py:1300 +#: flatcamTools/ToolSolderPaste.py:1292 msgid "This Geometry can't be processed. NOT a solder_paste_tool geometry." msgstr "" "Эта геометрия не может быть обработана. НЕТ геометрии инструмента паяльная " "пасты." -#: AppTools/ToolSolderPaste.py:1336 +#: flatcamTools/ToolSolderPaste.py:1328 msgid "An internal error has ocurred. See shell.\n" msgstr "" "Произошла внутренняя ошибка. Смотрите командную строку.\n" "\n" -#: AppTools/ToolSolderPaste.py:1401 +#: flatcamTools/ToolSolderPaste.py:1393 msgid "ToolSolderPaste CNCjob created" msgstr "CNCjob дозатора паяльной пасты создан" -#: AppTools/ToolSolderPaste.py:1420 +#: flatcamTools/ToolSolderPaste.py:1412 msgid "SP GCode Editor" msgstr "Редактор кода паяльной пасты" -#: AppTools/ToolSolderPaste.py:1432 AppTools/ToolSolderPaste.py:1437 -#: AppTools/ToolSolderPaste.py:1492 +#: flatcamTools/ToolSolderPaste.py:1424 flatcamTools/ToolSolderPaste.py:1429 +#: flatcamTools/ToolSolderPaste.py:1484 msgid "" "This CNCJob object can't be processed. NOT a solder_paste_tool CNCJob object." msgstr "" "Этот объект CNCJob не может быть обработан. Нет CNCJob объекта паяльной " "пасты." -#: AppTools/ToolSolderPaste.py:1462 +#: flatcamTools/ToolSolderPaste.py:1454 msgid "No Gcode in the object" msgstr "Нет Gcode в этом объекте" -#: AppTools/ToolSolderPaste.py:1502 +#: flatcamTools/ToolSolderPaste.py:1494 msgid "Export GCode ..." msgstr "Экспорт GCode ..." -#: AppTools/ToolSolderPaste.py:1550 +#: flatcamTools/ToolSolderPaste.py:1542 msgid "Solder paste dispenser GCode file saved to" msgstr "Файл GCode дозатора паяльной пасты сохранён в" -#: AppTools/ToolSub.py:83 +#: flatcamTools/ToolSub.py:65 +msgid "Gerber Objects" +msgstr "Gerber Объекты" + +#: flatcamTools/ToolSub.py:78 msgid "" "Gerber object from which to subtract\n" "the subtractor Gerber object." @@ -16842,11 +18105,11 @@ msgstr "" "Объект Gerber, из которого вычитается\n" "Gerber объект вычитателя." -#: AppTools/ToolSub.py:96 AppTools/ToolSub.py:151 +#: flatcamTools/ToolSub.py:91 flatcamTools/ToolSub.py:146 msgid "Subtractor" msgstr "Вычитатель" -#: AppTools/ToolSub.py:98 +#: flatcamTools/ToolSub.py:93 msgid "" "Gerber object that will be subtracted\n" "from the target Gerber object." @@ -16854,11 +18117,11 @@ msgstr "" "Объект Gerber, который будет вычтен\n" "из целевого Gerber объекта." -#: AppTools/ToolSub.py:105 +#: flatcamTools/ToolSub.py:100 msgid "Subtract Gerber" msgstr "Вычесть Gerber" -#: AppTools/ToolSub.py:107 +#: flatcamTools/ToolSub.py:102 msgid "" "Will remove the area occupied by the subtractor\n" "Gerber from the Target Gerber.\n" @@ -16870,7 +18133,11 @@ msgstr "" "Может использоваться для удаления перекрывающей шелкографии\n" "над паяльной маской." -#: AppTools/ToolSub.py:138 +#: flatcamTools/ToolSub.py:120 +msgid "Geometry Objects" +msgstr "Геометрия Объекты" + +#: flatcamTools/ToolSub.py:133 msgid "" "Geometry object from which to subtract\n" "the subtractor Geometry object." @@ -16878,7 +18145,7 @@ msgstr "" "Объект геометрии, из которого будет вычитаться\n" "Geometry объект вычитателя." -#: AppTools/ToolSub.py:153 +#: flatcamTools/ToolSub.py:148 msgid "" "Geometry object that will be subtracted\n" "from the target Geometry object." @@ -16886,16 +18153,16 @@ msgstr "" "Объект Geometry, который будет вычтен\n" "из целевого объекта Geometry." -#: AppTools/ToolSub.py:161 +#: flatcamTools/ToolSub.py:156 msgid "" "Checking this will close the paths cut by the Geometry subtractor object." msgstr "Проверка этого закроет пути, прорезанные объектом субметора Геометрия." -#: AppTools/ToolSub.py:164 +#: flatcamTools/ToolSub.py:159 msgid "Subtract Geometry" msgstr "Вычесть Geometry" -#: AppTools/ToolSub.py:166 +#: flatcamTools/ToolSub.py:161 msgid "" "Will remove the area occupied by the subtractor\n" "Geometry from the Target Geometry." @@ -16903,59 +18170,64 @@ msgstr "" "Удалит область, занятую вычитателем\n" "из целевой геометрии." -#: AppTools/ToolSub.py:264 +#: flatcamTools/ToolSub.py:263 msgid "Sub Tool" msgstr "Вычитатель" -#: AppTools/ToolSub.py:285 AppTools/ToolSub.py:490 +#: flatcamTools/ToolSub.py:284 flatcamTools/ToolSub.py:489 msgid "No Target object loaded." msgstr "Нет загруженного целевого объекта." -#: AppTools/ToolSub.py:288 +#: flatcamTools/ToolSub.py:287 msgid "Loading geometry from Gerber objects." msgstr "Загрузка геометрии из Gerber объектов." -#: AppTools/ToolSub.py:300 AppTools/ToolSub.py:505 +#: flatcamTools/ToolSub.py:299 flatcamTools/ToolSub.py:504 msgid "No Subtractor object loaded." msgstr "Нет загруженного объекта Вычитателя." -#: AppTools/ToolSub.py:342 +#: flatcamTools/ToolSub.py:331 +msgid "Processing geometry from Subtractor Gerber object." +msgstr "Обработка геометрии Gerber объекта Вычитателя." + +#: flatcamTools/ToolSub.py:352 +msgid "Parsing geometry for aperture" +msgstr "Разбор геометрии для отверстия" + +#: flatcamTools/ToolSub.py:413 msgid "Finished parsing geometry for aperture" msgstr "Завершение разбора геометрии для отверстия" -#: AppTools/ToolSub.py:344 -msgid "Subtraction aperture processing finished." -msgstr "" - -#: AppTools/ToolSub.py:464 AppTools/ToolSub.py:662 +#: flatcamTools/ToolSub.py:458 flatcamTools/ToolSub.py:661 msgid "Generating new object ..." msgstr "Генерация нового объекта ..." -#: AppTools/ToolSub.py:467 AppTools/ToolSub.py:666 AppTools/ToolSub.py:745 +#: flatcamTools/ToolSub.py:462 flatcamTools/ToolSub.py:665 +#: flatcamTools/ToolSub.py:746 msgid "Generating new object failed." msgstr "Генерация нового объекта не удалась." -#: AppTools/ToolSub.py:471 AppTools/ToolSub.py:672 +#: flatcamTools/ToolSub.py:467 flatcamTools/ToolSub.py:671 msgid "Created" msgstr "Создан" -#: AppTools/ToolSub.py:519 +#: flatcamTools/ToolSub.py:518 msgid "Currently, the Subtractor geometry cannot be of type Multigeo." msgstr "В настоящее время Substractor geometry не может иметь тип Multigeo." -#: AppTools/ToolSub.py:564 +#: flatcamTools/ToolSub.py:563 msgid "Parsing solid_geometry ..." msgstr "Разбор solid_geometry ..." -#: AppTools/ToolSub.py:566 +#: flatcamTools/ToolSub.py:565 msgid "Parsing solid_geometry for tool" msgstr "Разбор solid_geometry для инструмента" -#: AppTools/ToolTransform.py:23 +#: flatcamTools/ToolTransform.py:23 msgid "Object Transform" msgstr "Трансформация" -#: AppTools/ToolTransform.py:78 +#: flatcamTools/ToolTransform.py:78 msgid "" "Rotate the selected object(s).\n" "The point of reference is the middle of\n" @@ -16965,7 +18237,7 @@ msgstr "" "Точкой отсчета является середина\n" "ограничительная рамка для всех выбранных объектов." -#: AppTools/ToolTransform.py:99 AppTools/ToolTransform.py:120 +#: flatcamTools/ToolTransform.py:99 flatcamTools/ToolTransform.py:120 msgid "" "Angle for Skew action, in degrees.\n" "Float number between -360 and 360." @@ -16973,7 +18245,7 @@ msgstr "" "Угол наклона в градусах.\n" "Число с плавающей запятой между -360 и 360." -#: AppTools/ToolTransform.py:109 AppTools/ToolTransform.py:130 +#: flatcamTools/ToolTransform.py:109 flatcamTools/ToolTransform.py:130 msgid "" "Skew/shear the selected object(s).\n" "The point of reference is the middle of\n" @@ -16983,7 +18255,7 @@ msgstr "" "Точка отсчета - середина\n" "ограничительной рамки для всех выбранных объектов." -#: AppTools/ToolTransform.py:159 AppTools/ToolTransform.py:179 +#: flatcamTools/ToolTransform.py:159 flatcamTools/ToolTransform.py:179 msgid "" "Scale the selected object(s).\n" "The point of reference depends on \n" @@ -16993,7 +18265,7 @@ msgstr "" "Точка отсчета зависит от\n" "состояние флажка Scale Reference." -#: AppTools/ToolTransform.py:228 AppTools/ToolTransform.py:248 +#: flatcamTools/ToolTransform.py:228 flatcamTools/ToolTransform.py:248 msgid "" "Offset the selected object(s).\n" "The point of reference is the middle of\n" @@ -17003,15 +18275,15 @@ msgstr "" "Точка отсчета - середина\n" "ограничительной рамки для всех выбранных объектов.\n" -#: AppTools/ToolTransform.py:268 AppTools/ToolTransform.py:273 +#: flatcamTools/ToolTransform.py:268 flatcamTools/ToolTransform.py:273 msgid "Flip the selected object(s) over the X axis." msgstr "Отражает выбранные фигуры по оси X." -#: AppTools/ToolTransform.py:297 +#: flatcamTools/ToolTransform.py:297 msgid "Ref. Point" msgstr "Точка зеркалирования" -#: AppTools/ToolTransform.py:348 +#: flatcamTools/ToolTransform.py:348 msgid "" "Create the buffer effect on each geometry,\n" "element from the selected object, using the distance." @@ -17019,7 +18291,7 @@ msgstr "" "Создаёт буферный эффект для каждой геометрии,\n" "элемента из выбранного объекта, используя расстояние." -#: AppTools/ToolTransform.py:374 +#: flatcamTools/ToolTransform.py:374 msgid "" "Create the buffer effect on each geometry,\n" "element from the selected object, using the factor." @@ -17027,1751 +18299,120 @@ msgstr "" "Создаёт буферный эффект для каждой геометрии,\n" "элемента из выбранного объекта, используя коэффициент." -#: AppTools/ToolTransform.py:479 +#: flatcamTools/ToolTransform.py:479 msgid "Buffer D" msgstr "Буфер D" -#: AppTools/ToolTransform.py:480 +#: flatcamTools/ToolTransform.py:480 msgid "Buffer F" msgstr "Буфер F" -#: AppTools/ToolTransform.py:557 +#: flatcamTools/ToolTransform.py:557 msgid "Rotate transformation can not be done for a value of 0." msgstr "Трансформация поворота не может быть выполнена для значения 0." -#: AppTools/ToolTransform.py:596 AppTools/ToolTransform.py:619 +#: flatcamTools/ToolTransform.py:596 flatcamTools/ToolTransform.py:619 msgid "Scale transformation can not be done for a factor of 0 or 1." msgstr "" "Преобразование масштаба не может быть выполнено с коэффициентом 0 или 1." -#: AppTools/ToolTransform.py:634 AppTools/ToolTransform.py:644 +#: flatcamTools/ToolTransform.py:634 flatcamTools/ToolTransform.py:644 msgid "Offset transformation can not be done for a value of 0." msgstr "Трансформация смещения не может быть выполнена для значения 0." -#: AppTools/ToolTransform.py:676 +#: flatcamTools/ToolTransform.py:676 msgid "No object selected. Please Select an object to rotate!" msgstr "Объект не выбран. Пожалуйста, выберите объект для поворота!" -#: AppTools/ToolTransform.py:702 +#: flatcamTools/ToolTransform.py:702 msgid "CNCJob objects can't be rotated." msgstr "Объекты CNCJob не могут вращаться." -#: AppTools/ToolTransform.py:710 +#: flatcamTools/ToolTransform.py:710 msgid "Rotate done" msgstr "Поворот выполнен" -#: AppTools/ToolTransform.py:713 AppTools/ToolTransform.py:783 -#: AppTools/ToolTransform.py:833 AppTools/ToolTransform.py:887 -#: AppTools/ToolTransform.py:917 AppTools/ToolTransform.py:953 +#: flatcamTools/ToolTransform.py:713 flatcamTools/ToolTransform.py:783 +#: flatcamTools/ToolTransform.py:833 flatcamTools/ToolTransform.py:887 +#: flatcamTools/ToolTransform.py:917 flatcamTools/ToolTransform.py:953 msgid "Due of" msgstr "Из-за" -#: AppTools/ToolTransform.py:713 AppTools/ToolTransform.py:783 -#: AppTools/ToolTransform.py:833 AppTools/ToolTransform.py:887 -#: AppTools/ToolTransform.py:917 AppTools/ToolTransform.py:953 +#: flatcamTools/ToolTransform.py:713 flatcamTools/ToolTransform.py:783 +#: flatcamTools/ToolTransform.py:833 flatcamTools/ToolTransform.py:887 +#: flatcamTools/ToolTransform.py:917 flatcamTools/ToolTransform.py:953 msgid "action was not executed." msgstr "действие не было выполнено." -#: AppTools/ToolTransform.py:725 +#: flatcamTools/ToolTransform.py:725 msgid "No object selected. Please Select an object to flip" msgstr "Объект не выбран. Пожалуйста, выберите объект для переворота" -#: AppTools/ToolTransform.py:758 +#: flatcamTools/ToolTransform.py:758 msgid "CNCJob objects can't be mirrored/flipped." msgstr "Объекты CNCJob не могут быть зеркалировны/отражены." -#: AppTools/ToolTransform.py:793 +#: flatcamTools/ToolTransform.py:793 msgid "Skew transformation can not be done for 0, 90 and 180 degrees." msgstr "Трансформация наклона не может быть сделана для 0, 90 и 180 градусов." -#: AppTools/ToolTransform.py:798 +#: flatcamTools/ToolTransform.py:798 msgid "No object selected. Please Select an object to shear/skew!" msgstr "Объект не выбран. Пожалуйста, выберите объект для сдвига / перекоса!" -#: AppTools/ToolTransform.py:818 +#: flatcamTools/ToolTransform.py:818 msgid "CNCJob objects can't be skewed." msgstr "CNCJob объекты не могут быть наклонены." -#: AppTools/ToolTransform.py:830 +#: flatcamTools/ToolTransform.py:830 msgid "Skew on the" msgstr "Наклон на" -#: AppTools/ToolTransform.py:830 AppTools/ToolTransform.py:884 -#: AppTools/ToolTransform.py:914 +#: flatcamTools/ToolTransform.py:830 flatcamTools/ToolTransform.py:884 +#: flatcamTools/ToolTransform.py:914 msgid "axis done" msgstr "оси выполнено" -#: AppTools/ToolTransform.py:844 +#: flatcamTools/ToolTransform.py:844 msgid "No object selected. Please Select an object to scale!" msgstr "Объект не выбран. Пожалуйста, выберите объект для масштабирования!" -#: AppTools/ToolTransform.py:875 +#: flatcamTools/ToolTransform.py:875 msgid "CNCJob objects can't be scaled." msgstr "CNCJob объекты не могут быть масштабированы." -#: AppTools/ToolTransform.py:884 +#: flatcamTools/ToolTransform.py:884 msgid "Scale on the" msgstr "Масштабирование на" -#: AppTools/ToolTransform.py:894 +#: flatcamTools/ToolTransform.py:894 msgid "No object selected. Please Select an object to offset!" msgstr "Объект не выбран. Пожалуйста, выберите объект для смещения!" -#: AppTools/ToolTransform.py:901 +#: flatcamTools/ToolTransform.py:901 msgid "CNCJob objects can't be offset." msgstr "Объекты CNCJob не могут быть смещены." -#: AppTools/ToolTransform.py:914 +#: flatcamTools/ToolTransform.py:914 msgid "Offset on the" msgstr "Смещение на" -#: AppTools/ToolTransform.py:924 +#: flatcamTools/ToolTransform.py:924 msgid "No object selected. Please Select an object to buffer!" msgstr "Объект не выбран. Пожалуйста, выберите объект для буферизации!" -#: AppTools/ToolTransform.py:927 +#: flatcamTools/ToolTransform.py:927 msgid "Applying Buffer" msgstr "Применение буфера" -#: AppTools/ToolTransform.py:931 +#: flatcamTools/ToolTransform.py:931 msgid "CNCJob objects can't be buffered." msgstr "Объекты CNCJob не могут быть буферизированы." -#: AppTools/ToolTransform.py:948 +#: flatcamTools/ToolTransform.py:948 msgid "Buffer done" msgstr "Буфер готов" -#: AppTranslation.py:104 -msgid "The application will restart." -msgstr "Приложение будет перезапущено." - -#: AppTranslation.py:106 -msgid "Are you sure do you want to change the current language to" -msgstr "Вы уверены, что хотите изменить текущий язык на" - -#: AppTranslation.py:107 -msgid "Apply Language ..." -msgstr "Применить язык ..." - -#: AppTranslation.py:203 App_Main.py:3151 -msgid "" -"There are files/objects modified in FlatCAM. \n" -"Do you want to Save the project?" -msgstr "" -"Есть файлы/объекты, измененные в FlatCAM.\n" -"Вы хотите сохранить проект?" - -#: AppTranslation.py:206 App_Main.py:3154 App_Main.py:6411 -msgid "Save changes" -msgstr "Сохранить изменения" - -#: App_Main.py:477 -msgid "FlatCAM is initializing ..." -msgstr "Запуск FlatCAM ..." - -#: App_Main.py:620 -msgid "Could not find the Language files. The App strings are missing." -msgstr "Не удалось найти языковые файлы. Строки приложения отсутствуют." - -#: App_Main.py:692 -msgid "" -"FlatCAM is initializing ...\n" -"Canvas initialization started." -msgstr "" -"Запуск FlatCAM ...\n" -"Инициализация рабочей области." - -#: App_Main.py:712 -msgid "" -"FlatCAM is initializing ...\n" -"Canvas initialization started.\n" -"Canvas initialization finished in" -msgstr "" -"Запуск FlatCAM ...\n" -"Инициализация рабочей области.\n" -"Инициализация рабочей области завершена за" - -#: App_Main.py:1558 App_Main.py:6524 -msgid "New Project - Not saved" -msgstr "Новый проект - Не сохранён" - -#: App_Main.py:1659 -msgid "" -"Found old default preferences files. Please reboot the application to update." -msgstr "" -"Найдены старые файлы настроек по умолчанию. Пожалуйста, перезагрузите " -"приложение для обновления." - -#: App_Main.py:1726 -msgid "Open Config file failed." -msgstr "Не удалось открыть файл конфигурации." - -#: App_Main.py:1741 -msgid "Open Script file failed." -msgstr "Ошибка открытия файла сценария." - -#: App_Main.py:1767 -msgid "Open Excellon file failed." -msgstr "Не удалось открыть файл Excellon." - -#: App_Main.py:1780 -msgid "Open GCode file failed." -msgstr "Не удалось открыть файл GCode." - -#: App_Main.py:1793 -msgid "Open Gerber file failed." -msgstr "Не удалось открыть файл Gerber." - -#: App_Main.py:2116 -#, fuzzy -#| msgid "Select a Geometry, Gerber or Excellon Object to edit." -msgid "Select a Geometry, Gerber, Excellon or CNCJob Object to edit." -msgstr "Выберите объект Geometry, Gerber или Excellon для редактирования." - -#: App_Main.py:2131 -msgid "" -"Simultaneous editing of tools geometry in a MultiGeo Geometry is not " -"possible.\n" -"Edit only one geometry at a time." -msgstr "" -"Одновременное редактирование геометрии в MultiGeo Geometry невозможно.\n" -"Редактируйте только одну геометрию за раз." - -#: App_Main.py:2197 -msgid "Editor is activated ..." -msgstr "Редактор активирован ..." - -#: App_Main.py:2218 -msgid "Do you want to save the edited object?" -msgstr "Вы хотите сохранить редактируемый объект?" - -#: App_Main.py:2254 -msgid "Object empty after edit." -msgstr "Объект пуст после редактирования." - -#: App_Main.py:2259 App_Main.py:2277 App_Main.py:2296 -msgid "Editor exited. Editor content saved." -msgstr "Редактор закрыт. Содержимое редактора сохранено." - -#: App_Main.py:2300 App_Main.py:2324 App_Main.py:2342 -msgid "Select a Gerber, Geometry or Excellon Object to update." -msgstr "Выберите объект Gerber, Geometry или Excellon для обновления." - -#: App_Main.py:2303 -msgid "is updated, returning to App..." -msgstr "обновлён, возврат в приложение ..." - -#: App_Main.py:2310 -msgid "Editor exited. Editor content was not saved." -msgstr "Редактор закрыт. Содержимое редактора не сохранено." - -#: App_Main.py:2443 App_Main.py:2447 -msgid "Import FlatCAM Preferences" -msgstr "Импорт настроек FlatCAM" - -#: App_Main.py:2458 -msgid "Imported Defaults from" -msgstr "Значения по умолчанию импортированы из" - -#: App_Main.py:2478 App_Main.py:2484 -msgid "Export FlatCAM Preferences" -msgstr "Экспорт настроек FlatCAM" - -#: App_Main.py:2504 -msgid "Exported preferences to" -msgstr "Экспорт настроек в" - -#: App_Main.py:2524 App_Main.py:2529 -msgid "Save to file" -msgstr "Сохранить в файл" - -#: App_Main.py:2553 -msgid "Could not load the file." -msgstr "Не удалось загрузить файл." - -#: App_Main.py:2569 -msgid "Exported file to" -msgstr "Файл экспортируется в" - -#: App_Main.py:2606 -msgid "Failed to open recent files file for writing." -msgstr "Не удалось открыть файл истории для записи." - -#: App_Main.py:2617 -msgid "Failed to open recent projects file for writing." -msgstr "Не удалось открыть файл последних проектов для записи." - -#: App_Main.py:2672 -msgid "2D Computer-Aided Printed Circuit Board Manufacturing" -msgstr "2D Computer-Aided Printed Circuit Board Manufacturing" - -#: App_Main.py:2673 -msgid "Development" -msgstr "Исходный код" - -#: App_Main.py:2674 -msgid "DOWNLOAD" -msgstr "Страница загрузок" - -#: App_Main.py:2675 -msgid "Issue tracker" -msgstr "Issue-трекер" - -#: App_Main.py:2694 -msgid "Licensed under the MIT license" -msgstr "Под лицензией MIT" - -#: App_Main.py:2703 -msgid "" -"Permission is hereby granted, free of charge, to any person obtaining a " -"copy\n" -"of this software and associated documentation files (the \"Software\"), to " -"deal\n" -"in the Software without restriction, including without limitation the " -"rights\n" -"to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n" -"copies of the Software, and to permit persons to whom the Software is\n" -"furnished to do so, subject to the following conditions:\n" -"\n" -"The above copyright notice and this permission notice shall be included in\n" -"all copies or substantial portions of the Software.\n" -"\n" -"THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS " -"OR\n" -"IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n" -"FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n" -"AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n" -"LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING " -"FROM,\n" -"OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n" -"THE SOFTWARE." -msgstr "" -"Permission is hereby granted, free of charge, to any person obtaining a " -"copy\n" -"of this software and associated documentation files (the \"Software\"), to " -"deal\n" -"in the Software without restriction, including without limitation the " -"rights\n" -"to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n" -"copies of the Software, and to permit persons to whom the Software is\n" -"furnished to do so, subject to the following conditions:\n" -"\n" -"The above copyright notice and this permission notice shall be included in\n" -"all copies or substantial portions of the Software.\n" -"\n" -"THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS " -"OR\n" -"IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n" -"FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n" -"AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n" -"LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING " -"FROM,\n" -"OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n" -"THE SOFTWARE." - -#: App_Main.py:2725 -#, fuzzy -#| msgid "" -#| "Some of the icons used are from the following sources:
    Icons by " -#| "Freepik from www.flaticon.com
    Icons by Icons8
    Icons by oNline Web Fonts" -msgid "" -"Some of the icons used are from the following sources:
    Icons by Icons8
    Icons by oNline Web Fonts" -msgstr "" -"Некоторые из используемых значков взяты из следующих источников: " -"
    Иконки от Freepik из www.flaticon.com

    Иконки " -"от Icons8
    Иконки " -"от oNline Web Fonts" - -#: App_Main.py:2761 -msgid "Splash" -msgstr "Информация" - -#: App_Main.py:2767 -msgid "Programmers" -msgstr "Разработчики" - -#: App_Main.py:2773 -msgid "Translators" -msgstr "Переводчики" - -#: App_Main.py:2779 -msgid "License" -msgstr "Лицензия" - -#: App_Main.py:2785 -msgid "Attributions" -msgstr "Пояснения" - -#: App_Main.py:2808 -msgid "Programmer" -msgstr "Разработчик" - -#: App_Main.py:2809 -msgid "Status" -msgstr "Статус" - -#: App_Main.py:2810 App_Main.py:2890 -msgid "E-mail" -msgstr "E-mail" - -#: App_Main.py:2813 -msgid "Program Author" -msgstr "Автор программы" - -#: App_Main.py:2818 -msgid "BETA Maintainer >= 2019" -msgstr "Куратор >=2019" - -#: App_Main.py:2887 -msgid "Language" -msgstr "Язык" - -#: App_Main.py:2888 -msgid "Translator" -msgstr "Переводчик" - -#: App_Main.py:2889 -msgid "Corrections" -msgstr "Исправления" - -#: App_Main.py:2963 -#, fuzzy -#| msgid "Transformations" -msgid "Important Information's" -msgstr "Трансформация" - -#: App_Main.py:3111 -msgid "" -"This entry will resolve to another website if:\n" -"\n" -"1. FlatCAM.org website is down\n" -"2. Someone forked FlatCAM project and wants to point\n" -"to his own website\n" -"\n" -"If you can't get any informations about FlatCAM beta\n" -"use the YouTube channel link from the Help menu." -msgstr "" -"Эта запись будет разрешена на другом сайте, если:\n" -"\n" -"1. Сайт FlatCAM.org не работает\n" -"2. Кто-то создал свою ветвь проекта FlatCAM и хочет указать\n" -"на свой сайт\n" -"\n" -"Если вы не можете получить какую-либо информацию о бета-версии FlatCAM\n" -"используйте ссылку на канал YouTube в меню «Справка»." - -#: App_Main.py:3118 -msgid "Alternative website" -msgstr "Альтернативный сайт" - -#: App_Main.py:3421 -msgid "Selected Excellon file extensions registered with FlatCAM." -msgstr "Выбранные расширения файлов Excellon, зарегистрированные в FlatCAM." - -#: App_Main.py:3443 -msgid "Selected GCode file extensions registered with FlatCAM." -msgstr "Выбранные расширения файлов GCode, зарегистрированные в FlatCAM." - -#: App_Main.py:3465 -msgid "Selected Gerber file extensions registered with FlatCAM." -msgstr "Выбранные расширения файлов Gerber, зарегистрированные в FlatCAM." - -#: App_Main.py:3653 App_Main.py:3712 App_Main.py:3740 -msgid "At least two objects are required for join. Objects currently selected" -msgstr "" -"Для объединения требуются как минимум два объекта. Объекты, выбранные в " -"данный момент" - -#: App_Main.py:3662 -msgid "" -"Failed join. The Geometry objects are of different types.\n" -"At least one is MultiGeo type and the other is SingleGeo type. A possibility " -"is to convert from one to another and retry joining \n" -"but in the case of converting from MultiGeo to SingleGeo, informations may " -"be lost and the result may not be what was expected. \n" -"Check the generated GCODE." -msgstr "" -"Не удалось объединить. Объекты Geometry бывают разных типов.\n" -"По крайней мере, один тип MultiGeo, а другой тип SingleGeo. Возможно " -"преобразование из одного в другое и повторное присоединение ,\n" -"но в случае преобразования из MultiGeo в SingleGeo информация может быть " -"потеряна, и результат может не соответствовать ожидаемому. \n" -"Проверьте сгенерированный GCODE." - -#: App_Main.py:3674 App_Main.py:3684 -msgid "Geometry merging finished" -msgstr "Слияние Geometry завершено" - -#: App_Main.py:3707 -msgid "Failed. Excellon joining works only on Excellon objects." -msgstr "Неудача. Присоединение Excellon работает только на объектах Excellon." - -#: App_Main.py:3717 -msgid "Excellon merging finished" -msgstr "Слияние Excellon завершено" - -#: App_Main.py:3735 -msgid "Failed. Gerber joining works only on Gerber objects." -msgstr "Неудача. Объединение Gerber работает только на объектах Gerber." - -#: App_Main.py:3745 -msgid "Gerber merging finished" -msgstr "Слияние Gerber завершено" - -#: App_Main.py:3765 App_Main.py:3802 -msgid "Failed. Select a Geometry Object and try again." -msgstr "Неудалось. Выберите объект Geometry и попробуйте снова." - -#: App_Main.py:3769 App_Main.py:3807 -msgid "Expected a GeometryObject, got" -msgstr "Ожидается GeometryObject, получено" - -#: App_Main.py:3784 -msgid "A Geometry object was converted to MultiGeo type." -msgstr "Объект Geometry был преобразован в тип MultiGeo." - -#: App_Main.py:3822 -msgid "A Geometry object was converted to SingleGeo type." -msgstr "Объект Geometry был преобразован в тип SingleGeo." - -#: App_Main.py:4029 -msgid "Toggle Units" -msgstr "Единицы измерения" - -#: App_Main.py:4033 -msgid "" -"Changing the units of the project\n" -"will scale all objects.\n" -"\n" -"Do you want to continue?" -msgstr "" -"Изменение единиц измерения проекта приведёт к соответствующему " -"масштабированию всех всех объектов.\n" -"Продолжить?" - -#: App_Main.py:4036 App_Main.py:4223 App_Main.py:4306 App_Main.py:6809 -#: App_Main.py:6825 App_Main.py:7163 App_Main.py:7175 -msgid "Ok" -msgstr "Да" - -#: App_Main.py:4086 -msgid "Converted units to" -msgstr "Конвертирование единиц в" - -#: App_Main.py:4121 -msgid "Detachable Tabs" -msgstr "Плавающие вкладки" - -#: App_Main.py:4150 -#, fuzzy -#| msgid "Workspace Settings" -msgid "Workspace enabled." -msgstr "Настройки рабочей области" - -#: App_Main.py:4153 -#, fuzzy -#| msgid "Workspace Settings" -msgid "Workspace disabled." -msgstr "Настройки рабочей области" - -#: App_Main.py:4217 -msgid "" -"Adding Tool works only when Advanced is checked.\n" -"Go to Preferences -> General - Show Advanced Options." -msgstr "" -"Добавление инструмента работает только тогда, когда установлен флажок " -"«Дополнительно».\n" -"Перейдите в Настройки -> Основные парам. - Показать дополнительные параметры." - -#: App_Main.py:4299 -msgid "Delete objects" -msgstr "Удалить объекты" - -#: App_Main.py:4304 -msgid "" -"Are you sure you want to permanently delete\n" -"the selected objects?" -msgstr "" -"Вы уверены, что хотите удалить навсегда\n" -"выделенные объекты?" - -#: App_Main.py:4348 -msgid "Object(s) deleted" -msgstr "Объект(ы) удалены" - -#: App_Main.py:4352 -msgid "Save the work in Editor and try again ..." -msgstr "Сохраните работу в редакторе и попробуйте снова ..." - -#: App_Main.py:4381 -msgid "Object deleted" -msgstr "Объект(ы) удален" - -#: App_Main.py:4408 -msgid "Click to set the origin ..." -msgstr "Кликните, чтобы указать начало координат ..." - -#: App_Main.py:4430 -msgid "Setting Origin..." -msgstr "Установка точки начала координат..." - -#: App_Main.py:4443 App_Main.py:4545 -msgid "Origin set" -msgstr "Начало координат установлено" - -#: App_Main.py:4460 -msgid "Origin coordinates specified but incomplete." -msgstr "Координаты начала указаны, но неполны." - -#: App_Main.py:4501 -msgid "Moving to Origin..." -msgstr "Переход к началу координат..." - -#: App_Main.py:4582 -msgid "Jump to ..." -msgstr "Перейти к ..." - -#: App_Main.py:4583 -msgid "Enter the coordinates in format X,Y:" -msgstr "Введите координаты в формате X, Y:" - -#: App_Main.py:4593 -msgid "Wrong coordinates. Enter coordinates in format: X,Y" -msgstr "Неверные координаты. Введите координаты в формате: X, Y" - -#: App_Main.py:4711 -msgid "Bottom-Left" -msgstr "Слева внизу" - -#: App_Main.py:4714 -msgid "Top-Right" -msgstr "Справа вверху" - -#: App_Main.py:4735 -msgid "Locate ..." -msgstr "Размещение ..." - -#: App_Main.py:5008 App_Main.py:5085 -msgid "No object is selected. Select an object and try again." -msgstr "Объект не выбран. Выберите объект и попробуйте снова." - -#: App_Main.py:5111 -msgid "" -"Aborting. The current task will be gracefully closed as soon as possible..." -msgstr "Прерывание. Текущая задача будет закрыта как можно скорее..." - -#: App_Main.py:5117 -msgid "The current task was gracefully closed on user request..." -msgstr "Текущая задача была закрыта по запросу пользователя ..." - -#: App_Main.py:5291 -msgid "Tools in Tools Database edited but not saved." -msgstr "Инструменты в базе данных отредактированы, но не сохранены." - -#: App_Main.py:5330 -msgid "Adding tool from DB is not allowed for this object." -msgstr "Добавление инструмента из БД для данного объекта запрещено." - -#: App_Main.py:5348 -msgid "" -"One or more Tools are edited.\n" -"Do you want to update the Tools Database?" -msgstr "" -"Один или несколько инструментов изменены.\n" -"Вы хотите обновить базу данных инструментов?" - -#: App_Main.py:5350 -msgid "Save Tools Database" -msgstr "Сохранить БД" - -#: App_Main.py:5404 -msgid "No object selected to Flip on Y axis." -msgstr "Не выбран объект для отражения по оси Y." - -#: App_Main.py:5430 -msgid "Flip on Y axis done." -msgstr "Отражение по оси Y завершено." - -#: App_Main.py:5452 -msgid "No object selected to Flip on X axis." -msgstr "Не выбран объект для отражения по оси Х." - -#: App_Main.py:5478 -msgid "Flip on X axis done." -msgstr "Отражение по оси Х завершено." - -#: App_Main.py:5500 -msgid "No object selected to Rotate." -msgstr "Не выбран ни один объект для вращения." - -#: App_Main.py:5503 App_Main.py:5554 App_Main.py:5591 -msgid "Transform" -msgstr "Трансформация" - -#: App_Main.py:5503 App_Main.py:5554 App_Main.py:5591 -msgid "Enter the Angle value:" -msgstr "Введите значение угла:" - -#: App_Main.py:5533 -msgid "Rotation done." -msgstr "Вращение завершено." - -#: App_Main.py:5535 -msgid "Rotation movement was not executed." -msgstr "Вращение не было выполнено." - -#: App_Main.py:5552 -msgid "No object selected to Skew/Shear on X axis." -msgstr "Не выбран ни один объект для наклона/сдвига по оси X." - -#: App_Main.py:5573 -msgid "Skew on X axis done." -msgstr "Наклон по оси X выполнен." - -#: App_Main.py:5589 -msgid "No object selected to Skew/Shear on Y axis." -msgstr "Нет объекта, выбранного для наклона/сдвига по оси Y." - -#: App_Main.py:5610 -msgid "Skew on Y axis done." -msgstr "Наклон по оси Y выполнен." - -#: App_Main.py:5688 -msgid "New Grid ..." -msgstr "Новая сетка ..." - -#: App_Main.py:5689 -msgid "Enter a Grid Value:" -msgstr "Введите размер сетки:" - -#: App_Main.py:5697 App_Main.py:5721 -msgid "Please enter a grid value with non-zero value, in Float format." -msgstr "" -"Пожалуйста, введите значение сетки с ненулевым значением в формате float." - -#: App_Main.py:5702 -msgid "New Grid added" -msgstr "Новая сетка добавлена" - -#: App_Main.py:5704 -msgid "Grid already exists" -msgstr "Сетка уже существует" - -#: App_Main.py:5706 -msgid "Adding New Grid cancelled" -msgstr "Добавление новой сетки отменено" - -#: App_Main.py:5727 -msgid " Grid Value does not exist" -msgstr " Значение сетки не существует" - -#: App_Main.py:5729 -msgid "Grid Value deleted" -msgstr "Значение сетки удалено" - -#: App_Main.py:5731 -msgid "Delete Grid value cancelled" -msgstr "Удаление значения сетки отменено" - -#: App_Main.py:5737 -msgid "Key Shortcut List" -msgstr "Список комбинаций клавиш" - -#: App_Main.py:5771 -msgid " No object selected to copy it's name" -msgstr " Нет объекта, выбранного для копирования его имени" - -#: App_Main.py:5775 -msgid "Name copied on clipboard ..." -msgstr "Имя скопировано в буфер обмена ..." - -#: App_Main.py:6408 -msgid "" -"There are files/objects opened in FlatCAM.\n" -"Creating a New project will delete them.\n" -"Do you want to Save the project?" -msgstr "" -"В FlatCAM открыты файлы/объекты.\n" -"Создание нового проекта удалит их.\n" -"Вы хотите сохранить проект?" - -#: App_Main.py:6431 -msgid "New Project created" -msgstr "Новый проект создан" - -#: App_Main.py:6603 App_Main.py:6642 App_Main.py:6686 App_Main.py:6756 -#: App_Main.py:7550 App_Main.py:8763 App_Main.py:8825 -msgid "" -"Canvas initialization started.\n" -"Canvas initialization finished in" -msgstr "" -"Инициализация холста.\n" -"Инициализация холста завершена за" - -#: App_Main.py:6605 -msgid "Opening Gerber file." -msgstr "Открытие файла Gerber." - -#: App_Main.py:6644 -msgid "Opening Excellon file." -msgstr "Открытие файла Excellon." - -#: App_Main.py:6675 App_Main.py:6680 -msgid "Open G-Code" -msgstr "Открыть G-Code" - -#: App_Main.py:6688 -msgid "Opening G-Code file." -msgstr "Открытие файла G-Code." - -#: App_Main.py:6747 App_Main.py:6751 -msgid "Open HPGL2" -msgstr "Открыть HPGL2" - -#: App_Main.py:6758 -msgid "Opening HPGL2 file." -msgstr "Открытие файла HPGL2." - -#: App_Main.py:6781 App_Main.py:6784 -msgid "Open Configuration File" -msgstr "Открыть файл конфигурации" - -#: App_Main.py:6804 App_Main.py:7158 -msgid "Please Select a Geometry object to export" -msgstr "Выберите объект Geometry для экспорта" - -#: App_Main.py:6820 -msgid "Only Geometry, Gerber and CNCJob objects can be used." -msgstr "Можно использовать только объекты Geometry, Gerber и CNCJob." - -#: App_Main.py:6865 -msgid "Data must be a 3D array with last dimension 3 or 4" -msgstr "Данные должны быть 3D массивом с последним размером 3 или 4" - -#: App_Main.py:6871 App_Main.py:6875 -msgid "Export PNG Image" -msgstr "Экспорт PNG изображения" - -#: App_Main.py:6908 App_Main.py:7118 -msgid "Failed. Only Gerber objects can be saved as Gerber files..." -msgstr "Ошибка. Только объекты Gerber могут быть сохранены как файлы Gerber..." - -#: App_Main.py:6920 -msgid "Save Gerber source file" -msgstr "Сохранить исходный файл Gerber" - -#: App_Main.py:6949 -msgid "Failed. Only Script objects can be saved as TCL Script files..." -msgstr "" -"Ошибка. Только объекты сценария могут быть сохранены как файлы TCL-" -"сценария..." - -#: App_Main.py:6961 -msgid "Save Script source file" -msgstr "Сохранить исходный файл сценария" - -#: App_Main.py:6990 -msgid "Failed. Only Document objects can be saved as Document files..." -msgstr "" -"Ошибка. Только объекты Document могут быть сохранены как файлы Document..." - -#: App_Main.py:7002 -msgid "Save Document source file" -msgstr "Сохранить исходный файл Document" - -#: App_Main.py:7032 App_Main.py:7074 App_Main.py:8033 -msgid "Failed. Only Excellon objects can be saved as Excellon files..." -msgstr "" -"Ошибка. Только объекты Excellon могут быть сохранены как файлы Excellon..." - -#: App_Main.py:7040 App_Main.py:7045 -msgid "Save Excellon source file" -msgstr "Сохранить исходный файл Excellon" - -#: App_Main.py:7082 App_Main.py:7086 -msgid "Export Excellon" -msgstr "Экспорт Excellon" - -#: App_Main.py:7126 App_Main.py:7130 -msgid "Export Gerber" -msgstr "Экспорт Gerber" - -#: App_Main.py:7170 -msgid "Only Geometry objects can be used." -msgstr "Можно использовать только объекты Geometry." - -#: App_Main.py:7186 App_Main.py:7190 -msgid "Export DXF" -msgstr "Экспорт DXF" - -#: App_Main.py:7215 App_Main.py:7218 -msgid "Import SVG" -msgstr "Импорт SVG" - -#: App_Main.py:7246 App_Main.py:7250 -msgid "Import DXF" -msgstr "Импорт DXF" - -#: App_Main.py:7300 -msgid "Viewing the source code of the selected object." -msgstr "Просмотр исходного кода выбранного объекта." - -#: App_Main.py:7307 App_Main.py:7311 -msgid "Select an Gerber or Excellon file to view it's source file." -msgstr "Выберите файл Gerber или Excellon для просмотра исходного кода." - -#: App_Main.py:7325 -msgid "Source Editor" -msgstr "Редактор исходного кода" - -#: App_Main.py:7365 App_Main.py:7372 -msgid "There is no selected object for which to see it's source file code." -msgstr "Нет выбранного объекта, для просмотра исходного кода файла." - -#: App_Main.py:7384 -msgid "Failed to load the source code for the selected object" -msgstr "Не удалось загрузить исходный код выбранного объекта" - -#: App_Main.py:7420 -msgid "Go to Line ..." -msgstr "Перейти к строке ..." - -#: App_Main.py:7421 -msgid "Line:" -msgstr "Строка:" - -#: App_Main.py:7448 -msgid "New TCL script file created in Code Editor." -msgstr "Новый файл сценария создан в редакторе кода." - -#: App_Main.py:7484 App_Main.py:7486 App_Main.py:7522 App_Main.py:7524 -msgid "Open TCL script" -msgstr "Открыть сценарий TCL" - -#: App_Main.py:7552 -msgid "Executing ScriptObject file." -msgstr "Выполнение файла ScriptObject." - -#: App_Main.py:7560 App_Main.py:7563 -msgid "Run TCL script" -msgstr "Запустить сценарий TCL" - -#: App_Main.py:7586 -msgid "TCL script file opened in Code Editor and executed." -msgstr "Файл сценария открывается в редакторе кода и выполняется." - -#: App_Main.py:7637 App_Main.py:7643 -msgid "Save Project As ..." -msgstr "Сохранить проект как..." - -#: App_Main.py:7678 -msgid "FlatCAM objects print" -msgstr "Печать объектов FlatCAM" - -#: App_Main.py:7691 App_Main.py:7698 -msgid "Save Object as PDF ..." -msgstr "Сохранить объект как PDF ..." - -#: App_Main.py:7707 -msgid "Printing PDF ... Please wait." -msgstr "Печать PDF ... Пожалуйста, подождите." - -#: App_Main.py:7886 -msgid "PDF file saved to" -msgstr "Файл PDF сохранён в" - -#: App_Main.py:7911 -msgid "Exporting SVG" -msgstr "Экспортирование SVG" - -#: App_Main.py:7954 -msgid "SVG file exported to" -msgstr "Файл SVG экспортируется в" - -#: App_Main.py:7980 -msgid "" -"Save cancelled because source file is empty. Try to export the Gerber file." -msgstr "" -"Сохранение отменено, потому что исходный файл пуст. Попробуйте " -"экспортировать файл Gerber." - -#: App_Main.py:8127 -msgid "Excellon file exported to" -msgstr "Файл Excellon экспортируется в" - -#: App_Main.py:8136 -msgid "Exporting Excellon" -msgstr "Экспорт Excellon" - -#: App_Main.py:8141 App_Main.py:8148 -msgid "Could not export Excellon file." -msgstr "Не удалось экспортировать файл Excellon." - -#: App_Main.py:8263 -msgid "Gerber file exported to" -msgstr "Файл Gerber экспортируется в" - -#: App_Main.py:8271 -msgid "Exporting Gerber" -msgstr "Экспортирование Gerber" - -#: App_Main.py:8276 App_Main.py:8283 -msgid "Could not export Gerber file." -msgstr "Не удалось экспортировать файл Gerber." - -#: App_Main.py:8318 -msgid "DXF file exported to" -msgstr "Файл DXF экспортируется в" - -#: App_Main.py:8324 -msgid "Exporting DXF" -msgstr "Экспорт DXF" - -#: App_Main.py:8329 App_Main.py:8336 -msgid "Could not export DXF file." -msgstr "Не удалось экспортировать файл DXF." - -#: App_Main.py:8370 -msgid "Importing SVG" -msgstr "Импортирование SVG" - -#: App_Main.py:8378 App_Main.py:8424 -msgid "Import failed." -msgstr "Не удалось импортировать." - -#: App_Main.py:8416 -msgid "Importing DXF" -msgstr "Импорт DXF" - -#: App_Main.py:8457 App_Main.py:8652 App_Main.py:8717 -msgid "Failed to open file" -msgstr "Не удалось открыть файл" - -#: App_Main.py:8460 App_Main.py:8655 App_Main.py:8720 -msgid "Failed to parse file" -msgstr "Не удаётся прочитать файл" - -#: App_Main.py:8472 -msgid "Object is not Gerber file or empty. Aborting object creation." -msgstr "" -"Объект не является файлом Gerber или пуст. Прерывание создания объекта." - -#: App_Main.py:8477 -msgid "Opening Gerber" -msgstr "Открытие Gerber" - -#: App_Main.py:8488 -msgid "Open Gerber failed. Probable not a Gerber file." -msgstr "Открыть Гербер не удалось. Вероятно, не файл Гербера." - -#: App_Main.py:8524 -msgid "Cannot open file" -msgstr "Не удается открыть файл" - -#: App_Main.py:8545 -msgid "Opening Excellon." -msgstr "Открытие Excellon." - -#: App_Main.py:8555 -msgid "Open Excellon file failed. Probable not an Excellon file." -msgstr "Не удалось открыть файл Excellon. Вероятно это не файл Excellon." - -#: App_Main.py:8587 -msgid "Reading GCode file" -msgstr "Чтение файла GCode" - -#: App_Main.py:8600 -msgid "This is not GCODE" -msgstr "Это не GCODE" - -#: App_Main.py:8605 -msgid "Opening G-Code." -msgstr "Открытие G-Code." - -#: App_Main.py:8618 -msgid "" -"Failed to create CNCJob Object. Probable not a GCode file. Try to load it " -"from File menu.\n" -" Attempting to create a FlatCAM CNCJob Object from G-Code file failed during " -"processing" -msgstr "" -"Не удалось создать объект CNCJob. Вероятно это не файл GCode.Попробуйте " -"загрузить его из меню «Файл».\n" -" Попытка создать объект FlatCAM CNCJob из файла G-кода не удалась во время " -"обработки" - -#: App_Main.py:8674 -msgid "Object is not HPGL2 file or empty. Aborting object creation." -msgstr "" -"Объект не является файлом HPGL2 или пустым. Прерывание создания объекта." - -#: App_Main.py:8679 -msgid "Opening HPGL2" -msgstr "Открытие HPGL2" - -#: App_Main.py:8686 -msgid " Open HPGL2 failed. Probable not a HPGL2 file." -msgstr " Открыть HPGL2 не удалось. Вероятно, не файл HPGL2." - -#: App_Main.py:8712 -msgid "TCL script file opened in Code Editor." -msgstr "Файл сценария открыт в редакторе кода." - -#: App_Main.py:8732 -msgid "Opening TCL Script..." -msgstr "Открытие TCL-сценария..." - -#: App_Main.py:8743 -msgid "Failed to open TCL Script." -msgstr "Не удалось открыть TCL-сценарий." - -#: App_Main.py:8765 -msgid "Opening FlatCAM Config file." -msgstr "Открытие файла конфигурации." - -#: App_Main.py:8793 -msgid "Failed to open config file" -msgstr "Не удалось открыть файл конфигурации" - -#: App_Main.py:8822 -msgid "Loading Project ... Please Wait ..." -msgstr "Загрузка проекта ... Пожалуйста, подождите ..." - -#: App_Main.py:8827 -msgid "Opening FlatCAM Project file." -msgstr "Открытие файла проекта FlatCAM." - -#: App_Main.py:8842 App_Main.py:8846 App_Main.py:8863 -msgid "Failed to open project file" -msgstr "Не удалось открыть файл проекта" - -#: App_Main.py:8900 -msgid "Loading Project ... restoring" -msgstr "Загрузка проекта ... восстановление" - -#: App_Main.py:8910 -msgid "Project loaded from" -msgstr "Проект загружен из" - -#: App_Main.py:8936 -msgid "Redrawing all objects" -msgstr "Перерисовка всех объектов" - -#: App_Main.py:9024 -msgid "Failed to load recent item list." -msgstr "Не удалось загрузить список недавних файлов." - -#: App_Main.py:9031 -msgid "Failed to parse recent item list." -msgstr "Не удалось прочитать список недавних файлов." - -#: App_Main.py:9041 -msgid "Failed to load recent projects item list." -msgstr "Не удалось загрузить список элементов последних проектов." - -#: App_Main.py:9048 -msgid "Failed to parse recent project item list." -msgstr "Не удалось проанализировать список последних элементов проекта." - -#: App_Main.py:9109 -msgid "Clear Recent projects" -msgstr "Очистить недавние проекты" - -#: App_Main.py:9133 -msgid "Clear Recent files" -msgstr "Очистить список" - -#: App_Main.py:9235 -msgid "Selected Tab - Choose an Item from Project Tab" -msgstr "Вкладка \"Выбранное\" - выбранный элемент на вкладке \"Проект\"" - -#: App_Main.py:9236 -msgid "Details" -msgstr "Описание" - -#: App_Main.py:9238 -#, fuzzy -#| msgid "The normal flow when working in FlatCAM is the following:" -msgid "The normal flow when working with the application is the following:" -msgstr "Нормальный порядок при работе в FlatCAM выглядит следующим образом:" - -#: App_Main.py:9239 -#, fuzzy -#| msgid "" -#| "Load/Import a Gerber, Excellon, Gcode, DXF, Raster Image or SVG file into " -#| "FlatCAM using either the toolbars, key shortcuts or even dragging and " -#| "dropping the files on the GUI." -msgid "" -"Load/Import a Gerber, Excellon, Gcode, DXF, Raster Image or SVG file into " -"the application using either the toolbars, key shortcuts or even dragging " -"and dropping the files on the AppGUI." -msgstr "" -"Загрузите/импортируйте Gerber, Excellon, Gcode, DXF, растровое изображение " -"или SVG-файл в FlatCAM с помощью панели инструментов, сочетания клавиш или " -"просто перетащив в окно программы." - -#: App_Main.py:9242 -#, fuzzy -#| msgid "" -#| "You can also load a FlatCAM project by double clicking on the project " -#| "file, drag and drop of the file into the FLATCAM GUI or through the menu " -#| "(or toolbar) actions offered within the app." -msgid "" -"You can also load a project by double clicking on the project file, drag and " -"drop of the file into the AppGUI or through the menu (or toolbar) actions " -"offered within the app." -msgstr "" -"Вы также можете загрузить проект FlatCAM, дважды щелкнув файл проекта, " -"перетащив его в окно программы или с помощью действий меню (или панели " -"инструментов), предлагаемых в приложении." - -#: App_Main.py:9245 -msgid "" -"Once an object is available in the Project Tab, by selecting it and then " -"focusing on SELECTED TAB (more simpler is to double click the object name in " -"the Project Tab, SELECTED TAB will be updated with the object properties " -"according to its kind: Gerber, Excellon, Geometry or CNCJob object." -msgstr "" -"После того, как объект доступен на вкладке \"Проект\", выберите его и " -"обратите внимание на вкладку \"Выбранное\" (проще дважды щелкнуть по имени " -"объекта на вкладке \"Проект\", вкладка \"Выбранное\" будет обновлена в " -"соответствии с видом объекта: Gerber, Excellon, Geometry или CNCJob." - -#: App_Main.py:9249 -msgid "" -"If the selection of the object is done on the canvas by single click " -"instead, and the SELECTED TAB is in focus, again the object properties will " -"be displayed into the Selected Tab. Alternatively, double clicking on the " -"object on the canvas will bring the SELECTED TAB and populate it even if it " -"was out of focus." -msgstr "" -"Если выделение объекта производится на холсте одним щелчком мыши, а вкладка " -"\"Выбранное\" находится в фокусе, то свойства объекта снова отобразятся на " -"вкладке \"Выбранное\". Кроме того, двойной щелчок по объекту на холсте " -"откроет вкладку \"Выбранное\" и заполнит ее, даже если она была не в фокусе." - -#: App_Main.py:9253 -msgid "" -"You can change the parameters in this screen and the flow direction is like " -"this:" -msgstr "Вы можете изменить параметры на этом экране, и порядок будет таким:" - -#: App_Main.py:9254 -msgid "" -"Gerber/Excellon Object --> Change Parameter --> Generate Geometry --> " -"Geometry Object --> Add tools (change param in Selected Tab) --> Generate " -"CNCJob --> CNCJob Object --> Verify GCode (through Edit CNC Code) and/or " -"append/prepend to GCode (again, done in SELECTED TAB) --> Save GCode." -msgstr "" -"Объект Gerber/Excellon -> Выбрать параметры -> Создать геометрию(ВНЕШНЯЯ, " -"ВНУТРЕННЯЯ или ПОЛНАЯ) -> Объект геометрии -> Добавить инструменты (изменить " -"параметры на вкладке \"Выбранное\") -> Создать CNCJob -> Объект CNCJob -> " -"Проверить GCode (с помощью кнопки \"Просмотр CNC Code\") и дописать, при " -"необходимости, дополнительные команды в начало или конец GCode (опять же, " -"во вкладке \"Выбранное\") -> Сохранить GCode (кнопка \"Сохранить CNC Code\")." - -#: App_Main.py:9258 -msgid "" -"A list of key shortcuts is available through an menu entry in Help --> " -"Shortcuts List or through its own key shortcut: F3." -msgstr "" -"Список комбинаций клавиш доступен через пункт меню Помощь --> Список " -"комбинаций клавиш или через клавишу: F3." - -#: App_Main.py:9322 -msgid "Failed checking for latest version. Could not connect." -msgstr "" -"Не удалось проверить обновление программы. Отсутствует интернет подключение ." - -#: App_Main.py:9329 -msgid "Could not parse information about latest version." -msgstr "Не удается обработать информацию о последней версии." - -#: App_Main.py:9339 -msgid "FlatCAM is up to date!" -msgstr "FlatCAM в актуальном состоянии!" - -#: App_Main.py:9344 -msgid "Newer Version Available" -msgstr "Доступна новая версия" - -#: App_Main.py:9346 -msgid "There is a newer version of FlatCAM available for download:" -msgstr "Новая версия FlatCAM доступна для загрузки:" - -#: App_Main.py:9350 -msgid "info" -msgstr "инфо" - -#: App_Main.py:9378 -msgid "" -"OpenGL canvas initialization failed. HW or HW configuration not supported." -"Change the graphic engine to Legacy(2D) in Edit -> Preferences -> General " -"tab.\n" -"\n" -msgstr "" -"Не удалось инициализировать рабочее пространство OpenGL. Конфигурация HW или " -"HW не поддерживается. Измените графический движок на Legacy (2D) в Правка -> " -"Настройки -> вкладка Основные.\n" -"\n" - -#: App_Main.py:9456 -msgid "All plots disabled." -msgstr "Все участки отключены." - -#: App_Main.py:9463 -msgid "All non selected plots disabled." -msgstr "Все не выбранные участки отключены." - -#: App_Main.py:9470 -msgid "All plots enabled." -msgstr "Все участки включены." - -#: App_Main.py:9476 -msgid "Selected plots enabled..." -msgstr "Выбранные участки включены..." - -#: App_Main.py:9484 -msgid "Selected plots disabled..." -msgstr "Выбранные участки отключены..." - -#: App_Main.py:9517 -msgid "Enabling plots ..." -msgstr "Включение участков ..." - -#: App_Main.py:9566 -msgid "Disabling plots ..." -msgstr "Отключение участков ..." - -#: App_Main.py:9589 -msgid "Working ..." -msgstr "Обработка…" - -#: App_Main.py:9698 -msgid "Set alpha level ..." -msgstr "Установка уровня прозрачности ..." - -#: App_Main.py:9752 -msgid "Saving FlatCAM Project" -msgstr "Сохранение проекта FlatCAM" - -#: App_Main.py:9773 App_Main.py:9809 -msgid "Project saved to" -msgstr "Проект сохранён в" - -#: App_Main.py:9780 -msgid "The object is used by another application." -msgstr "Объект используется другим приложением." - -#: App_Main.py:9794 -msgid "Failed to verify project file" -msgstr "Не удалось проверить файл проекта" - -#: App_Main.py:9794 App_Main.py:9802 App_Main.py:9812 -msgid "Retry to save it." -msgstr "Повторите попытку, чтобы сохранить его." - -#: App_Main.py:9802 App_Main.py:9812 -msgid "Failed to parse saved project file" -msgstr "Не удалось проанализировать сохраненный файл проекта" - -#: Bookmark.py:57 Bookmark.py:84 -msgid "Title" -msgstr "Название" - -#: Bookmark.py:58 Bookmark.py:88 -msgid "Web Link" -msgstr "Ссылка" - -#: Bookmark.py:62 -msgid "" -"Index.\n" -"The rows in gray color will populate the Bookmarks menu.\n" -"The number of gray colored rows is set in Preferences." -msgstr "" -"Индекс.\n" -"Строки серого цвета будут заполнять меню закладок.\n" -"Количество строк серого цвета задается в настройках." - -#: Bookmark.py:66 -msgid "" -"Description of the link that is set as an menu action.\n" -"Try to keep it short because it is installed as a menu item." -msgstr "" -"Описание ссылки, заданной в качестве действия меню.\n" -"Постарайтесь сделать его коротким, потому что он установлен как пункт меню." - -#: Bookmark.py:69 -msgid "Web Link. E.g: https://your_website.org " -msgstr "Ссылка на сайт. Например: https://your_website.org " - -#: Bookmark.py:78 -msgid "New Bookmark" -msgstr "Новая закладка" - -#: Bookmark.py:97 -msgid "Add Entry" -msgstr "Добавить запись" - -#: Bookmark.py:98 -msgid "Remove Entry" -msgstr "Удалить запись" - -#: Bookmark.py:99 -msgid "Export List" -msgstr "Экспортировать список" - -#: Bookmark.py:100 -msgid "Import List" -msgstr "Импортировать список" - -#: Bookmark.py:190 -msgid "Title entry is empty." -msgstr "Поле заголовка пусто." - -#: Bookmark.py:199 -msgid "Web link entry is empty." -msgstr "Поле веб-ссылки пусто." - -#: Bookmark.py:207 -msgid "Either the Title or the Weblink already in the table." -msgstr "Либо название, либо ссылка уже в таблице." - -#: Bookmark.py:227 -msgid "Bookmark added." -msgstr "Закладка добавлена." - -#: Bookmark.py:244 -msgid "This bookmark can not be removed" -msgstr "Эта закладка не может быть удалена" - -#: Bookmark.py:275 -msgid "Bookmark removed." -msgstr "Закладка удалена." - -#: Bookmark.py:290 -#, fuzzy -#| msgid "Exported bookmarks to" -msgid "Export Bookmarks" -msgstr "Экспорт закладок в" - -#: Bookmark.py:319 Bookmark.py:349 -msgid "Could not load bookmarks file." -msgstr "Не удалось загрузить файл закладок." - -#: Bookmark.py:329 -msgid "Failed to write bookmarks to file." -msgstr "Не удалось создать файл закладок." - -#: Bookmark.py:331 -msgid "Exported bookmarks to" -msgstr "Экспорт закладок в" - -#: Bookmark.py:337 -#, fuzzy -#| msgid "Imported Bookmarks from" -msgid "Import Bookmarks" -msgstr "Закладки импортированы из" - -#: Bookmark.py:356 -msgid "Imported Bookmarks from" -msgstr "Закладки импортированы из" - -#: Common.py:42 -msgid "The user requested a graceful exit of the current task." -msgstr "Пользователь запросил выход из текущего задания." - -#: Common.py:269 -msgid "Click the end point of the area." -msgstr "Нажмите на конечную точку области." - -#: Common.py:408 -msgid "Exclusion areas added. Checking overlap with the object geometry ..." -msgstr "" - -#: Common.py:413 -msgid "Failed. Exclusion areas intersects the object geometry ..." -msgstr "" - -#: Common.py:417 -#, fuzzy -#| msgid "Exclusion areas" -msgid "Exclusion areas added." -msgstr "Зоны исключения" - -#: Common.py:426 -#, fuzzy -#| msgid "Exclusion areas" -msgid "With Exclusion areas." -msgstr "Зоны исключения" - -#: Common.py:461 -msgid "Cancelled. Area exclusion drawing was interrupted." -msgstr "Отменено. Рисование зоны исключения было прервано." - -#: Common.py:572 Common.py:621 -#, fuzzy -#| msgid "All objects are selected." -msgid "All exclusion zones deleted." -msgstr "Все объекты выделены." - -#: Common.py:608 -#, fuzzy -#| msgid "Delete all exclusion areas." -msgid "Selected exclusion zones deleted." -msgstr "Удаляет все исключаемые зоны." - -#: camlib.py:597 -msgid "self.solid_geometry is neither BaseGeometry or list." -msgstr "self.solid_geometry не является базовой геометрией или списком." - -#: camlib.py:979 -msgid "Pass" -msgstr "Проходы" - -#: camlib.py:1001 -msgid "Get Exteriors" -msgstr "Перейти к наружнему" - -#: camlib.py:1004 -msgid "Get Interiors" -msgstr "Перейти к внутреннему" - -#: camlib.py:2192 -msgid "Object was mirrored" -msgstr "Объект отзеркалирован" - -#: camlib.py:2194 -msgid "Failed to mirror. No object selected" -msgstr "Не удалось зеркалировать. Объект не выбран" - -#: camlib.py:2259 -msgid "Object was rotated" -msgstr "Объект повернут" - -#: camlib.py:2261 -msgid "Failed to rotate. No object selected" -msgstr "Не удалось повернуть. Объект не выбран" - -#: camlib.py:2327 -msgid "Object was skewed" -msgstr "Объект наклонён" - -#: camlib.py:2329 -msgid "Failed to skew. No object selected" -msgstr "Не удалось наклонить. Объект не выбран" - -#: camlib.py:2405 -msgid "Object was buffered" -msgstr "Объект был буферизован" - -#: camlib.py:2407 -msgid "Failed to buffer. No object selected" -msgstr "Буферизация не удалась. Объект не выбран" - -#: camlib.py:2650 -msgid "There is no such parameter" -msgstr "Такого параметра нет" - -#: camlib.py:2718 camlib.py:2970 camlib.py:3233 camlib.py:3489 -msgid "" -"The Cut Z parameter has positive value. It is the depth value to drill into " -"material.\n" -"The Cut Z parameter needs to have a negative value, assuming it is a typo " -"therefore the app will convert the value to negative. Check the resulting " -"CNC code (Gcode etc)." -msgstr "" -"Параметр \"Глубина резания\" имеет положительное значение. Значение глубины, " -"которую нужно просверлить в материале.\n" -"Параметр \"Глубина резания\" должен иметь отрицательное значение, " -"предполагая, что это опечатка, приложение преобразует значение в " -"отрицательное. Проверьте полученный CNC code (Gcode и т. д.)." - -#: camlib.py:2726 camlib.py:2980 camlib.py:3243 camlib.py:3499 camlib.py:3824 -#: camlib.py:4224 -msgid "The Cut Z parameter is zero. There will be no cut, skipping file" -msgstr "" -"Параметр \"Глубина резания\" равен нулю. Обрезки не будет , пропускается файл" - -#: camlib.py:2741 camlib.py:4192 -msgid "" -"The Toolchange X,Y field in Edit -> Preferences has to be in the format (x, " -"y) \n" -"but now there is only one value, not two. " -msgstr "" -"Поле X, Y смены инструмента в Правка - > Параметры должно быть в формате (x, " -"y)\n" -"но теперь есть только одно значение, а не два. " - -#: camlib.py:2754 camlib.py:3771 camlib.py:4170 -msgid "" -"The End Move X,Y field in Edit -> Preferences has to be in the format (x, y) " -"but now there is only one value, not two." -msgstr "" -"Поле X, Y смены инструмента в Правка - > Параметры должно быть в формате (x, " -"y), но указано только одно значение, а не два." - -#: camlib.py:2842 -msgid "Creating a list of points to drill..." -msgstr "Создание списка точек для сверления ..." - -#: camlib.py:2866 -msgid "Failed. Drill points inside the exclusion zones." -msgstr "" - -#: camlib.py:2943 camlib.py:3922 camlib.py:4332 -msgid "Starting G-Code" -msgstr "Открытие G-Code" - -#: camlib.py:3084 camlib.py:3337 camlib.py:3535 camlib.py:3935 camlib.py:4343 -msgid "Starting G-Code for tool with diameter" -msgstr "Запуск G-кода для инструмента с диаметром" - -#: camlib.py:3201 camlib.py:3453 camlib.py:3655 -msgid "G91 coordinates not implemented" -msgstr "Координаты G91 не реализованы" - -#: camlib.py:3207 camlib.py:3460 camlib.py:3660 -msgid "The loaded Excellon file has no drills" -msgstr "Загруженный файл Excellon не имеет отверстий" - -#: camlib.py:3683 -msgid "Finished G-Code generation..." -msgstr "Создание G-кода завершено..." - -#: camlib.py:3793 -msgid "" -"The Toolchange X,Y field in Edit -> Preferences has to be in the format (x, " -"y) \n" -"but now there is only one value, not two." -msgstr "" -"Поле X, Y смены инструмента в Правка - > Параметры должно быть в формате (x, " -"y)\n" -"но теперь есть только одно значение, а не два." - -#: camlib.py:3807 camlib.py:4207 -msgid "" -"Cut_Z parameter is None or zero. Most likely a bad combinations of other " -"parameters." -msgstr "" -"Параметр \"Глубина резания\" равен None или пуст. Скорее всего неудачное " -"сочетание других параметров." - -#: camlib.py:3816 camlib.py:4216 -msgid "" -"The Cut Z parameter has positive value. It is the depth value to cut into " -"material.\n" -"The Cut Z parameter needs to have a negative value, assuming it is a typo " -"therefore the app will convert the value to negative.Check the resulting CNC " -"code (Gcode etc)." -msgstr "" -"Параметр \"Глубина резания\" имеет положительное значение. Значение глубины, " -"которую нужно просверлить в материале.\n" -"Параметр \"Глубина резания\" должен иметь отрицательное значение, " -"предполагая, что это опечатка, приложение преобразует значение в " -"отрицательное. Проверьте полученный CNC code (Gcode и т. д.)." - -#: camlib.py:3829 camlib.py:4230 -msgid "Travel Z parameter is None or zero." -msgstr "Параметр \"Отвод по Z\" равен None или пуст." - -#: camlib.py:3834 camlib.py:4235 -msgid "" -"The Travel Z parameter has negative value. It is the height value to travel " -"between cuts.\n" -"The Z Travel parameter needs to have a positive value, assuming it is a typo " -"therefore the app will convert the value to positive.Check the resulting CNC " -"code (Gcode etc)." -msgstr "" -"Параметр \"Отвод по Z\" имеет отрицательное значение. Это значение высоты " -"для перемещения между разрезами.\n" -"Параметр \"Отвод по Z\" должен иметь положительное значение. Предполагая, " -"что это опечатка, приложение преобразует значение в положительное. Проверьте " -"полученный CNC code (Gcode и т. д.)." - -#: camlib.py:3842 camlib.py:4243 -msgid "The Z Travel parameter is zero. This is dangerous, skipping file" -msgstr "Параметр \"Отвод по Z\" равен нулю. Это опасно, файл пропускается" - -#: camlib.py:3861 camlib.py:4266 -msgid "Indexing geometry before generating G-Code..." -msgstr "Индексация геометрии перед созданием G-Code..." - -#: camlib.py:4009 camlib.py:4420 -msgid "Finished G-Code generation" -msgstr "Создание G-кода завершено" - -#: camlib.py:4009 -msgid "paths traced" -msgstr "путей проложено" - -#: camlib.py:4059 -msgid "Expected a Geometry, got" -msgstr "Ожидалась Geometry, получили" - -#: camlib.py:4066 -msgid "" -"Trying to generate a CNC Job from a Geometry object without solid_geometry." -msgstr "Попытка создать CNC Job из объекта Geometry без solid_geometry." - -#: camlib.py:4107 -msgid "" -"The Tool Offset value is too negative to use for the current_geometry.\n" -"Raise the value (in module) and try again." -msgstr "" -"Значение смещения инструмента слишком отрицательно для current_geometry.\n" -"Увеличте значение (в модуле) и повторите попытку." - -#: camlib.py:4420 -msgid " paths traced." -msgstr " путей проложено." - -#: camlib.py:4448 -msgid "There is no tool data in the SolderPaste geometry." -msgstr "В геометрии SolderPaste нет данных инструмента." - -#: camlib.py:4537 -msgid "Finished SolderPaste G-Code generation" -msgstr "Готовое поколение G-кода для паяльной пасты" - -#: camlib.py:4537 -msgid "paths traced." -msgstr "путей проложено." - -#: camlib.py:4872 -msgid "Parsing GCode file. Number of lines" -msgstr "Разбор файла GCode. Количество строк" - -#: camlib.py:4979 -msgid "Creating Geometry from the parsed GCode file. " -msgstr "Создание геометрии из проанализированного файла GCode. " - -#: camlib.py:5147 camlib.py:5420 camlib.py:5568 camlib.py:5737 -msgid "G91 coordinates not implemented ..." -msgstr "Координаты G91 не реализованы ..." - -#: defaults.py:771 -msgid "Could not load defaults file." -msgstr "Не удалось загрузить файл значений по умолчанию." - -#: defaults.py:784 -msgid "Failed to parse defaults file." -msgstr "Не удалось прочитать файл значений по умолчанию." - #: tclCommands/TclCommandBbox.py:75 tclCommands/TclCommandNregions.py:74 msgid "Expected GerberObject or GeometryObject, got" msgstr "Ожидался GerberObject или GeometryObject, получено" @@ -18784,7 +18425,7 @@ msgstr "Ожидался список имен объектов, разделе msgid "TclCommand Bounds done." msgstr "Tcl-команда \"Границы\" выполнена." -#: tclCommands/TclCommandCopperClear.py:281 tclCommands/TclCommandPaint.py:283 +#: tclCommands/TclCommandCopperClear.py:281 tclCommands/TclCommandPaint.py:277 #: tclCommands/TclCommandScale.py:81 msgid "Could not retrieve box object" msgstr "Не удалось получить объект box" @@ -18807,11 +18448,11 @@ msgstr "" "или 8." #: tclCommands/TclCommandGeoCutout.py:301 -#: tclCommands/TclCommandGeoCutout.py:356 +#: tclCommands/TclCommandGeoCutout.py:359 msgid "Any-form Cutout operation finished." msgstr "Операция обрезки закончена." -#: tclCommands/TclCommandGeoCutout.py:362 +#: tclCommands/TclCommandGeoCutout.py:365 msgid "Cancelled. Object type is not supported." msgstr "Отмена. Тип объекта не поддерживается." @@ -18827,15 +18468,15 @@ msgstr "Для дополнительной информации ведите he msgid "Example: help open_gerber" msgstr "Пример: help open_gerber" -#: tclCommands/TclCommandPaint.py:250 tclCommands/TclCommandPaint.py:256 -msgid "Expected a tuple value like -single 3.2,0.1." -msgstr "" +#: tclCommands/TclCommandPaint.py:249 +msgid "Expected -x and -y ." +msgstr "Ожидались -x <значение> и -y <значение>." -#: tclCommands/TclCommandPaint.py:276 +#: tclCommands/TclCommandPaint.py:270 msgid "Expected -box ." msgstr "Ожидалось -box <значение>." -#: tclCommands/TclCommandPaint.py:297 +#: tclCommands/TclCommandPaint.py:291 msgid "" "None of the following args: 'box', 'single', 'all' were used.\n" "Paint failed." @@ -18859,7 +18500,7 @@ msgstr "Ожидались -x <значение> -y <значение>." msgid "Expected a pair of (x, y) coordinates. Got" msgstr "Ожидается пара (x, y) координат. Получил" -#: tclCommands/TclCommandSetOrigin.py:101 +#: tclCommands/TclCommandSetOrigin.py:102 msgid "Origin set by offsetting all loaded objects with " msgstr "" "Начало координат устанавливается путем смещения всех загруженных объектов с " @@ -18869,210 +18510,6 @@ msgstr "" msgid "No Geometry name in args. Provide a name and try again." msgstr "Нет имени геометрии в аргументах. Укажите имя и попробуйте снова." -#~ msgid "Add Tool from Tools DB" -#~ msgstr "Добавить инструмент из БД" - -#~ msgid "FlatCAM Object" -#~ msgstr "Объект FlatCAM" - -#~ msgid "" -#~ "Choose which tool to use for Gerber isolation:\n" -#~ "'Circular' or 'V-shape'.\n" -#~ "When the 'V-shape' is selected then the tool\n" -#~ "diameter will depend on the chosen cut depth." -#~ msgstr "" -#~ "Выберите, какой инструмент использовать для изоляции Gerber:\n" -#~ "\"Круглый\" или \"V-образный\".\n" -#~ "Когда выбрана \"V-образная форма\", то диаметр инструмента\n" -#~ "будет зависеть от выбранной глубины резания." - -#~ msgid "V-Shape" -#~ msgstr "V-образный" - -#~ msgid "" -#~ "Diameter of the cutting tool.\n" -#~ "If you want to have an isolation path\n" -#~ "inside the actual shape of the Gerber\n" -#~ "feature, use a negative value for\n" -#~ "this parameter." -#~ msgstr "" -#~ "Диаметр режущего инструмента.\n" -#~ "Если вы хотите иметь путь изоляции \n" -#~ "внутри фактической формы Гербера\n" -#~ "функцию, используйте отрицательное значение для\n" -#~ "этот параметр." - -#~ msgid "Pass overlap" -#~ msgstr "Перекрытие" - -#~ msgid "Scope" -#~ msgstr "Масштаб" - -#~ msgid "Clear N-copper" -#~ msgstr "Очистка меди" - -#~ msgid "Board cutout" -#~ msgstr "Обрезка контура платы" - -#~ msgid "" -#~ "Add a new tool to the Tool Table\n" -#~ "with the specified diameter." -#~ msgstr "" -#~ "Добавление нового инструмента в таблицу инструментов\n" -#~ "с диаметром, указанным выше." - -#~ msgid "Excellon Object Color" -#~ msgstr "Цвет объектов Excellon" - -#~ msgid "Geometry Object Color" -#~ msgstr "Цвет объектов Geometry" - -#~ msgid "Exterior" -#~ msgstr "Внешняя" - -#~ msgid "Interior" -#~ msgstr "Внутренняя" - -#~ msgid "Gerber Object Color" -#~ msgstr "Цвет объекта Gerber" - -#~ msgid "Combine Passes" -#~ msgstr "Объединять проходы" - -#~ msgid "Rest Machining" -#~ msgstr "Обработка остаточного припуска" - -#~ msgid "NCC Plotting" -#~ msgstr "Прорисовка очистки от меди" - -#~ msgid "All Polygons" -#~ msgstr "Все полигоны" - -#~ msgid "Paint Plotting" -#~ msgstr "Прорисовка рисования" - -#~ msgid "" -#~ "- 'Normal' - normal plotting, done at the end of the Paint job\n" -#~ "- 'Progressive' - after each shape is generated it will be plotted." -#~ msgstr "" -#~ "- 'Нормальный' - нормальное построение, выполненное в конце задания " -#~ "рисования\n" -#~ "- 'Последовательный' - после создания каждой фигуры она будет нанесена на " -#~ "график." - -#~ msgid "Export Machine Code ..." -#~ msgstr "Экспорт GCode ..." - -#~ msgid "Export Machine Code cancelled ..." -#~ msgstr "Экспорт Machine Code отменен ..." - -#~ msgid "Machine Code file saved to" -#~ msgstr "Файл Machine Code сохранён в" - -#~ msgid "GCode Parameters" -#~ msgstr "Параметры GCode" - -#, fuzzy -#~| msgid "Selection" -#~ msgid "PreSelection" -#~ msgstr "Выбор" - -#~ msgid "Copper Gerber" -#~ msgstr "Gerber медного слоя" - -#~ msgid "QRCode Parameters" -#~ msgstr "Параметры QRCode" - -#~ msgid "Gerber Files" -#~ msgstr "Файлы Gerber" - -#~ msgid "Excellon Objects" -#~ msgstr "Объекты Excellon" - -#~ msgid "Gerber Solder paste object. " -#~ msgstr "Gerber объект паяльной пасты. " - -#~ msgid "Gerber Objects" -#~ msgstr "Gerber Объекты" - -#~ msgid "Geometry Objects" -#~ msgstr "Геометрия Объекты" - -#~ msgid "Processing geometry from Subtractor Gerber object." -#~ msgstr "Обработка геометрии Gerber объекта Вычитателя." - -#~ msgid "Parsing geometry for aperture" -#~ msgstr "Разбор геометрии для отверстия" - -#~ msgid "Export FlatCAM Bookmarks" -#~ msgstr "Экспорт закладок FlatCAM" - -#~ msgid "Import FlatCAM Bookmarks" -#~ msgstr "Импорт закладок FlatCAM" - -#~ msgid "Unifying Geometry from parsed Geometry segments" -#~ msgstr "Объединение геометрии из разбираемых сегментов геометрии" - -#~| msgid "FlatCAM Object" -#~ msgid "FlatCAM Beta" -#~ msgstr "FlatCAM Beta" - -#~ msgid "G-Code from GERBERS" -#~ msgstr "G-Code из GERBERS" - -#~ msgid "New Blank Geometry" -#~ msgstr "Создать Geometry" - -#~ msgid "New Blank Gerber" -#~ msgstr "Создать Gerber" - -#~ msgid "New Blank Excellon" -#~ msgstr "Создать Excellon" - -#~ msgid "" -#~ "Relative measurement.\n" -#~ "Reference is last click position" -#~ msgstr "" -#~ "Относительное измерение.\n" -#~ "Ссылка-это позиция последнего клика" - -#~ msgid "Clear areas" -#~ msgstr "Очистить участки" - -#~ msgid "Apply Theme" -#~ msgstr "Применить тему" - -#~ msgid "" -#~ "Select a theme for FlatCAM.\n" -#~ "It will theme the plot area.\n" -#~ "The application will restart after change." -#~ msgstr "" -#~ "Выбор темы FlatCAM.\n" -#~ "Она будет применена при следующем запуске приложения." - -#~ msgid "Film Object" -#~ msgstr "Объект плёнки" - -#~ msgid "Object for which to create the film." -#~ msgstr "Объект для создания плёнки." - -#~ msgid "Box Object" -#~ msgstr "Объект рамки" - -#~ msgid "" -#~ "The actual object that is used as container for the\n" -#~ " selected object for which we create the film.\n" -#~ "Usually it is the PCB outline but it can be also the\n" -#~ "same object for which the film is created." -#~ msgstr "" -#~ "Фактический объект, который используется как контейнер для\n" -#~ "  выбранного объекта, для которого мы создаем плёнку.\n" -#~ "Обычно это схема печатной платы, но она также может быть\n" -#~ "тем же объектом, для которого создана плёнка." - -#~ msgid "Expected -x and -y ." -#~ msgstr "Ожидались -x <значение> и -y <значение>." - #, fuzzy #~| msgid "" #~| "How much (fraction) of the tool width to overlap each tool pass.\n" @@ -19220,6 +18657,9 @@ msgstr "Нет имени геометрии в аргументах. Укажи #~ msgid " Export SVG cancelled." #~ msgstr " Экспорт SVG отменён." +#~ msgid "Export PNG cancelled." +#~ msgstr "Экспорт PNG отменён." + #~ msgid "No object selected. Please select an Gerber object to export." #~ msgstr "" #~ "Нет выбранных объектов. Пожалуйста, выберите Gerber объект для экспорта." @@ -19283,6 +18723,9 @@ msgstr "Нет имени геометрии в аргументах. Укажи #~ msgid "Save Object PDF cancelled." #~ msgstr "Сохранить объект PDF отменен." +#~ msgid "Shows list of commands." +#~ msgstr "Показывает список команд." + #~ msgid "FlatCAM bookmarks export cancelled." #~ msgstr "Экспорт закладок FlatCAM отменён." @@ -19827,6 +19270,9 @@ msgstr "Нет имени геометрии в аргументах. Укажи #~ "#\n" #~ "\n" +#~ msgid "Program Author" +#~ msgstr "Автор программы" + #~ msgid "Change project units ..." #~ msgstr "Изменить единицы проекта ..." diff --git a/locale_template/strings.pot b/locale_template/strings.pot index ebe8a479..fec4a64a 100644 --- a/locale_template/strings.pot +++ b/locale_template/strings.pot @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" -"POT-Creation-Date: 2020-06-02 17:39+0300\n" +"POT-Creation-Date: 2020-05-03 15:58+0300\n" "PO-Revision-Date: 2019-03-25 15:08+0200\n" "Last-Translator: \n" "Language-Team: \n" @@ -15,7 +15,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: pygettext.py 1.5\n" -"X-Generator: Poedit 2.3.1\n" +"X-Generator: Poedit 2.2.4\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Poedit-Basepath: ..\n" "X-Poedit-SearchPath-0: .\n" @@ -23,212 +23,1726 @@ msgstr "" "X-Poedit-SearchPathExcluded-1: doc\n" "X-Poedit-SearchPathExcluded-2: tests\n" -#: AppDatabase.py:88 +#: FlatCAMApp.py:491 +msgid "FlatCAM is initializing ..." +msgstr "" + +#: FlatCAMApp.py:639 +msgid "Could not find the Language files. The App strings are missing." +msgstr "" + +#: FlatCAMApp.py:709 +msgid "" +"FlatCAM is initializing ...\n" +"Canvas initialization started." +msgstr "" + +#: FlatCAMApp.py:729 +msgid "" +"FlatCAM is initializing ...\n" +"Canvas initialization started.\n" +"Canvas initialization finished in" +msgstr "" + +#: FlatCAMApp.py:1593 FlatCAMApp.py:7451 +msgid "New Project - Not saved" +msgstr "" + +#: FlatCAMApp.py:1689 +msgid "Found old default preferences files. Please reboot the application to update." +msgstr "" + +#: FlatCAMApp.py:1740 FlatCAMApp.py:2512 FlatCAMApp.py:2547 FlatCAMApp.py:2594 +#: FlatCAMApp.py:4540 FlatCAMApp.py:7535 FlatCAMApp.py:7572 FlatCAMApp.py:7614 +#: FlatCAMApp.py:7643 FlatCAMApp.py:7684 FlatCAMApp.py:7709 FlatCAMApp.py:7761 +#: FlatCAMApp.py:7796 FlatCAMApp.py:7841 FlatCAMApp.py:7882 FlatCAMApp.py:7923 +#: FlatCAMApp.py:7964 FlatCAMApp.py:8005 FlatCAMApp.py:8049 FlatCAMApp.py:8105 +#: FlatCAMApp.py:8137 FlatCAMApp.py:8169 FlatCAMApp.py:8402 FlatCAMApp.py:8440 +#: FlatCAMApp.py:8483 FlatCAMApp.py:8560 FlatCAMApp.py:8615 FlatCAMBookmark.py:300 +#: FlatCAMBookmark.py:342 FlatCAMDB.py:663 FlatCAMDB.py:709 FlatCAMDB.py:2125 +#: FlatCAMDB.py:2171 flatcamEditors/FlatCAMExcEditor.py:1023 +#: flatcamEditors/FlatCAMExcEditor.py:1091 flatcamEditors/FlatCAMTextEditor.py:223 +#: flatcamGUI/FlatCAMGUI.py:3443 flatcamGUI/FlatCAMGUI.py:3659 flatcamGUI/FlatCAMGUI.py:3874 +#: flatcamObjects/ObjectCollection.py:126 flatcamTools/ToolFilm.py:754 +#: flatcamTools/ToolFilm.py:900 flatcamTools/ToolImage.py:247 flatcamTools/ToolMove.py:269 +#: flatcamTools/ToolPcbWizard.py:301 flatcamTools/ToolPcbWizard.py:324 +#: flatcamTools/ToolQRCode.py:791 flatcamTools/ToolQRCode.py:838 +msgid "Cancelled." +msgstr "" + +#: FlatCAMApp.py:1756 +msgid "Open Config file failed." +msgstr "" + +#: FlatCAMApp.py:1771 +msgid "Open Script file failed." +msgstr "" + +#: FlatCAMApp.py:1797 +msgid "Open Excellon file failed." +msgstr "" + +#: FlatCAMApp.py:1810 +msgid "Open GCode file failed." +msgstr "" + +#: FlatCAMApp.py:1823 +msgid "Open Gerber file failed." +msgstr "" + +#: FlatCAMApp.py:2131 +msgid "Select a Geometry, Gerber or Excellon Object to edit." +msgstr "" + +#: FlatCAMApp.py:2146 +msgid "" +"Simultaneous editing of tools geometry in a MultiGeo Geometry is not possible.\n" +"Edit only one geometry at a time." +msgstr "" + +#: FlatCAMApp.py:2204 +msgid "Editor is activated ..." +msgstr "" + +#: FlatCAMApp.py:2225 +msgid "Do you want to save the edited object?" +msgstr "" + +#: FlatCAMApp.py:2226 flatcamGUI/FlatCAMGUI.py:2288 +msgid "Close Editor" +msgstr "" + +#: FlatCAMApp.py:2229 FlatCAMApp.py:3518 FlatCAMApp.py:6085 FlatCAMApp.py:7345 +#: FlatCAMTranslation.py:109 FlatCAMTranslation.py:207 flatcamGUI/FlatCAMGUI.py:2519 +#: flatcamGUI/preferences/PreferencesUIManager.py:1122 +msgid "Yes" +msgstr "" + +#: FlatCAMApp.py:2230 FlatCAMApp.py:3519 FlatCAMApp.py:6086 FlatCAMApp.py:7346 +#: FlatCAMTranslation.py:110 FlatCAMTranslation.py:208 flatcamGUI/FlatCAMGUI.py:2520 +#: flatcamGUI/preferences/PreferencesUIManager.py:1123 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:164 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:150 flatcamTools/ToolNCC.py:182 +#: flatcamTools/ToolPaint.py:166 +msgid "No" +msgstr "" + +#: FlatCAMApp.py:2231 FlatCAMApp.py:3520 FlatCAMApp.py:4478 FlatCAMApp.py:5103 +#: FlatCAMApp.py:7347 FlatCAMDB.py:128 FlatCAMDB.py:1689 flatcamGUI/FlatCAMGUI.py:1347 +msgid "Cancel" +msgstr "" + +#: FlatCAMApp.py:2263 +msgid "Object empty after edit." +msgstr "" + +#: FlatCAMApp.py:2267 FlatCAMApp.py:2288 FlatCAMApp.py:2310 +msgid "Editor exited. Editor content saved." +msgstr "" + +#: FlatCAMApp.py:2314 FlatCAMApp.py:2337 FlatCAMApp.py:2355 +msgid "Select a Gerber, Geometry or Excellon Object to update." +msgstr "" + +#: FlatCAMApp.py:2317 +msgid "is updated, returning to App..." +msgstr "" + +#: FlatCAMApp.py:2324 +msgid "Editor exited. Editor content was not saved." +msgstr "" + +#: FlatCAMApp.py:2504 FlatCAMApp.py:2508 +msgid "Import FlatCAM Preferences" +msgstr "" + +#: FlatCAMApp.py:2519 +msgid "Imported Defaults from" +msgstr "" + +#: FlatCAMApp.py:2539 FlatCAMApp.py:2544 +msgid "Export FlatCAM Preferences" +msgstr "" + +#: FlatCAMApp.py:2558 FlatCAMApp.py:2626 flatcamGUI/preferences/PreferencesUIManager.py:1018 +msgid "Failed to write defaults to file." +msgstr "" + +#: FlatCAMApp.py:2564 +msgid "Exported preferences to" +msgstr "" + +#: FlatCAMApp.py:2584 FlatCAMApp.py:2589 +msgid "Save to file" +msgstr "" + +#: FlatCAMApp.py:2602 FlatCAMApp.py:8859 FlatCAMApp.py:8907 FlatCAMApp.py:9032 +#: FlatCAMApp.py:9168 FlatCAMBookmark.py:308 FlatCAMDB.py:671 FlatCAMDB.py:2133 +#: flatcamEditors/FlatCAMTextEditor.py:276 flatcamObjects/FlatCAMCNCJob.py:959 +#: flatcamTools/ToolFilm.py:1031 flatcamTools/ToolFilm.py:1212 +#: flatcamTools/ToolSolderPaste.py:1534 +msgid "" +"Permission denied, saving not possible.\n" +"Most likely another app is holding the file open and not accessible." +msgstr "" + +#: FlatCAMApp.py:2613 +msgid "Could not load the file." +msgstr "" + +#: FlatCAMApp.py:2629 +msgid "Exported file to" +msgstr "" + +#: FlatCAMApp.py:2712 +msgid "Failed to open recent files file for writing." +msgstr "" + +#: FlatCAMApp.py:2723 +msgid "Failed to open recent projects file for writing." +msgstr "" + +#: FlatCAMApp.py:2806 FlatCAMApp.py:9377 FlatCAMApp.py:9441 FlatCAMApp.py:9572 +#: FlatCAMApp.py:9637 FlatCAMApp.py:10287 flatcamEditors/FlatCAMGrbEditor.py:4364 +#: flatcamObjects/FlatCAMGeometry.py:1725 flatcamParsers/ParseExcellon.py:897 +#: flatcamTools/ToolPcbWizard.py:432 +msgid "An internal error has occurred. See shell.\n" +msgstr "" + +#: FlatCAMApp.py:2807 +#, python-brace-format +msgid "" +"Object ({kind}) failed because: {error} \n" +"\n" +msgstr "" + +#: FlatCAMApp.py:2822 +msgid "Converting units to " +msgstr "" + +#: FlatCAMApp.py:2931 +msgid "CREATE A NEW FLATCAM TCL SCRIPT" +msgstr "" + +#: FlatCAMApp.py:2932 +msgid "TCL Tutorial is here" +msgstr "" + +#: FlatCAMApp.py:2934 +msgid "FlatCAM commands list" +msgstr "" + +#: FlatCAMApp.py:2935 +msgid "" +"Type >help< followed by Run Code for a list of FlatCAM Tcl Commands (displayed in Tcl " +"Shell)." +msgstr "" + +#: FlatCAMApp.py:2982 FlatCAMApp.py:2988 FlatCAMApp.py:2994 FlatCAMApp.py:3000 +#: FlatCAMApp.py:3006 FlatCAMApp.py:3012 +msgid "created/selected" +msgstr "" + +#: FlatCAMApp.py:3027 FlatCAMApp.py:5189 flatcamObjects/FlatCAMObj.py:248 +#: flatcamObjects/FlatCAMObj.py:279 flatcamObjects/FlatCAMObj.py:295 +#: flatcamObjects/FlatCAMObj.py:375 flatcamTools/ToolCopperThieving.py:1481 +#: flatcamTools/ToolFiducials.py:809 flatcamTools/ToolMove.py:229 +#: flatcamTools/ToolQRCode.py:728 +msgid "Plotting" +msgstr "" + +#: FlatCAMApp.py:3090 flatcamGUI/FlatCAMGUI.py:545 +msgid "About FlatCAM" +msgstr "" + +#: FlatCAMApp.py:3116 +msgid "2D Computer-Aided Printed Circuit Board Manufacturing" +msgstr "" + +#: FlatCAMApp.py:3117 +msgid "Development" +msgstr "" + +#: FlatCAMApp.py:3118 +msgid "DOWNLOAD" +msgstr "" + +#: FlatCAMApp.py:3119 +msgid "Issue tracker" +msgstr "" + +#: FlatCAMApp.py:3123 FlatCAMApp.py:3484 flatcamGUI/GUIElements.py:2583 +msgid "Close" +msgstr "" + +#: FlatCAMApp.py:3138 +msgid "Licensed under the MIT license" +msgstr "" + +#: FlatCAMApp.py:3147 +msgid "" +"Permission is hereby granted, free of charge, to any person obtaining a copy\n" +"of this software and associated documentation files (the \"Software\"), to deal\n" +"in the Software without restriction, including without limitation the rights\n" +"to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n" +"copies of the Software, and to permit persons to whom the Software is\n" +"furnished to do so, subject to the following conditions:\n" +"\n" +"The above copyright notice and this permission notice shall be included in\n" +"all copies or substantial portions of the Software.\n" +"\n" +"THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n" +"IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n" +"FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n" +"AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n" +"LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n" +"OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n" +"THE SOFTWARE." +msgstr "" + +#: FlatCAMApp.py:3169 +msgid "" +"Some of the icons used are from the following sources:
    Icons " +"by Icons8
    Icons by oNline Web Fonts" +msgstr "" + +#: FlatCAMApp.py:3202 +msgid "Splash" +msgstr "" + +#: FlatCAMApp.py:3208 +msgid "Programmers" +msgstr "" + +#: FlatCAMApp.py:3214 +msgid "Translators" +msgstr "" + +#: FlatCAMApp.py:3220 +msgid "License" +msgstr "" + +#: FlatCAMApp.py:3226 +msgid "Attributions" +msgstr "" + +#: FlatCAMApp.py:3249 +msgid "Programmer" +msgstr "" + +#: FlatCAMApp.py:3250 +msgid "Status" +msgstr "" + +#: FlatCAMApp.py:3251 FlatCAMApp.py:3331 +msgid "E-mail" +msgstr "" + +#: FlatCAMApp.py:3259 +msgid "BETA Maintainer >= 2019" +msgstr "" + +#: FlatCAMApp.py:3328 +msgid "Language" +msgstr "" + +#: FlatCAMApp.py:3329 +msgid "Translator" +msgstr "" + +#: FlatCAMApp.py:3330 +msgid "Corrections" +msgstr "" + +#: FlatCAMApp.py:3455 FlatCAMApp.py:3464 flatcamGUI/FlatCAMGUI.py:527 +msgid "Bookmarks Manager" +msgstr "" + +#: FlatCAMApp.py:3475 +msgid "" +"This entry will resolve to another website if:\n" +"\n" +"1. FlatCAM.org website is down\n" +"2. Someone forked FlatCAM project and wants to point\n" +"to his own website\n" +"\n" +"If you can't get any informations about FlatCAM beta\n" +"use the YouTube channel link from the Help menu." +msgstr "" + +#: FlatCAMApp.py:3482 +msgid "Alternative website" +msgstr "" + +#: FlatCAMApp.py:3508 flatcamGUI/FlatCAMGUI.py:4267 +msgid "Application is saving the project. Please wait ..." +msgstr "" + +#: FlatCAMApp.py:3513 FlatCAMTranslation.py:202 +msgid "" +"There are files/objects modified in FlatCAM. \n" +"Do you want to Save the project?" +msgstr "" + +#: FlatCAMApp.py:3516 FlatCAMApp.py:7343 FlatCAMTranslation.py:205 +msgid "Save changes" +msgstr "" + +#: FlatCAMApp.py:3778 +msgid "Selected Excellon file extensions registered with FlatCAM." +msgstr "" + +#: FlatCAMApp.py:3800 +msgid "Selected GCode file extensions registered with FlatCAM." +msgstr "" + +#: FlatCAMApp.py:3822 +msgid "Selected Gerber file extensions registered with FlatCAM." +msgstr "" + +#: FlatCAMApp.py:4010 FlatCAMApp.py:4069 FlatCAMApp.py:4097 +msgid "At least two objects are required for join. Objects currently selected" +msgstr "" + +#: FlatCAMApp.py:4019 +msgid "" +"Failed join. The Geometry objects are of different types.\n" +"At least one is MultiGeo type and the other is SingleGeo type. A possibility is to " +"convert from one to another and retry joining \n" +"but in the case of converting from MultiGeo to SingleGeo, informations may be lost and " +"the result may not be what was expected. \n" +"Check the generated GCODE." +msgstr "" + +#: FlatCAMApp.py:4031 FlatCAMApp.py:4041 +msgid "Geometry merging finished" +msgstr "" + +#: FlatCAMApp.py:4064 +msgid "Failed. Excellon joining works only on Excellon objects." +msgstr "" + +#: FlatCAMApp.py:4074 +msgid "Excellon merging finished" +msgstr "" + +#: FlatCAMApp.py:4092 +msgid "Failed. Gerber joining works only on Gerber objects." +msgstr "" + +#: FlatCAMApp.py:4102 +msgid "Gerber merging finished" +msgstr "" + +#: FlatCAMApp.py:4122 FlatCAMApp.py:4159 +msgid "Failed. Select a Geometry Object and try again." +msgstr "" + +#: FlatCAMApp.py:4126 FlatCAMApp.py:4164 +msgid "Expected a GeometryObject, got" +msgstr "" + +#: FlatCAMApp.py:4141 +msgid "A Geometry object was converted to MultiGeo type." +msgstr "" + +#: FlatCAMApp.py:4179 +msgid "A Geometry object was converted to SingleGeo type." +msgstr "" + +#: FlatCAMApp.py:4472 +msgid "Toggle Units" +msgstr "" + +#: FlatCAMApp.py:4474 +msgid "" +"Changing the units of the project\n" +"will scale all objects.\n" +"\n" +"Do you want to continue?" +msgstr "" + +#: FlatCAMApp.py:4477 FlatCAMApp.py:5025 FlatCAMApp.py:5102 FlatCAMApp.py:7728 +#: FlatCAMApp.py:7742 FlatCAMApp.py:8075 FlatCAMApp.py:8085 +msgid "Ok" +msgstr "" + +#: FlatCAMApp.py:4526 +msgid "Converted units to" +msgstr "" + +#: FlatCAMApp.py:4928 +msgid "Detachable Tabs" +msgstr "" + +#: FlatCAMApp.py:5014 flatcamTools/ToolNCC.py:932 flatcamTools/ToolNCC.py:1431 +#: flatcamTools/ToolPaint.py:858 flatcamTools/ToolSolderPaste.py:568 +#: flatcamTools/ToolSolderPaste.py:893 +msgid "Please enter a tool diameter with non-zero value, in Float format." +msgstr "" + +#: FlatCAMApp.py:5018 flatcamTools/ToolNCC.py:936 flatcamTools/ToolPaint.py:862 +#: flatcamTools/ToolSolderPaste.py:572 +msgid "Adding Tool cancelled" +msgstr "" + +#: FlatCAMApp.py:5021 +msgid "" +"Adding Tool works only when Advanced is checked.\n" +"Go to Preferences -> General - Show Advanced Options." +msgstr "" + +#: FlatCAMApp.py:5097 +msgid "Delete objects" +msgstr "" + +#: FlatCAMApp.py:5100 +msgid "" +"Are you sure you want to permanently delete\n" +"the selected objects?" +msgstr "" + +#: FlatCAMApp.py:5138 +msgid "Object(s) deleted" +msgstr "" + +#: FlatCAMApp.py:5142 FlatCAMApp.py:5297 flatcamTools/ToolDblSided.py:818 +msgid "Failed. No object(s) selected..." +msgstr "" + +#: FlatCAMApp.py:5144 +msgid "Save the work in Editor and try again ..." +msgstr "" + +#: FlatCAMApp.py:5173 +msgid "Object deleted" +msgstr "" + +#: FlatCAMApp.py:5200 +msgid "Click to set the origin ..." +msgstr "" + +#: FlatCAMApp.py:5222 +msgid "Setting Origin..." +msgstr "" + +#: FlatCAMApp.py:5235 FlatCAMApp.py:5337 +msgid "Origin set" +msgstr "" + +#: FlatCAMApp.py:5252 +msgid "Origin coordinates specified but incomplete." +msgstr "" + +#: FlatCAMApp.py:5293 +msgid "Moving to Origin..." +msgstr "" + +#: FlatCAMApp.py:5374 +msgid "Jump to ..." +msgstr "" + +#: FlatCAMApp.py:5375 +msgid "Enter the coordinates in format X,Y:" +msgstr "" + +#: FlatCAMApp.py:5385 +msgid "Wrong coordinates. Enter coordinates in format: X,Y" +msgstr "" + +#: FlatCAMApp.py:5463 FlatCAMApp.py:5612 flatcamEditors/FlatCAMExcEditor.py:3624 +#: flatcamEditors/FlatCAMExcEditor.py:3632 flatcamEditors/FlatCAMGeoEditor.py:4349 +#: flatcamEditors/FlatCAMGeoEditor.py:4363 flatcamEditors/FlatCAMGrbEditor.py:1087 +#: flatcamEditors/FlatCAMGrbEditor.py:1204 flatcamEditors/FlatCAMGrbEditor.py:1490 +#: flatcamEditors/FlatCAMGrbEditor.py:1759 flatcamEditors/FlatCAMGrbEditor.py:4622 +#: flatcamEditors/FlatCAMGrbEditor.py:4637 flatcamGUI/FlatCAMGUI.py:3424 +#: flatcamGUI/FlatCAMGUI.py:3436 flatcamTools/ToolAlignObjects.py:393 +#: flatcamTools/ToolAlignObjects.py:415 +msgid "Done." +msgstr "" + +#: FlatCAMApp.py:5478 FlatCAMApp.py:7724 FlatCAMApp.py:7819 FlatCAMApp.py:7860 +#: FlatCAMApp.py:7901 FlatCAMApp.py:7942 FlatCAMApp.py:7983 FlatCAMApp.py:8027 +#: FlatCAMApp.py:8071 FlatCAMApp.py:8593 FlatCAMApp.py:8597 +#: flatcamTools/ToolProperties.py:116 +msgid "No object selected." +msgstr "" + +#: FlatCAMApp.py:5497 +msgid "Bottom-Left" +msgstr "" + +#: FlatCAMApp.py:5498 flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:131 +#: flatcamTools/ToolCalibration.py:159 +msgid "Top-Left" +msgstr "" + +#: FlatCAMApp.py:5499 flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:132 +#: flatcamTools/ToolCalibration.py:160 +msgid "Bottom-Right" +msgstr "" + +#: FlatCAMApp.py:5500 +msgid "Top-Right" +msgstr "" + +#: FlatCAMApp.py:5501 flatcamGUI/ObjectUI.py:2706 +msgid "Center" +msgstr "" + +#: FlatCAMApp.py:5521 +msgid "Locate ..." +msgstr "" + +#: FlatCAMApp.py:5779 FlatCAMApp.py:5856 +msgid "No object is selected. Select an object and try again." +msgstr "" + +#: FlatCAMApp.py:5882 +msgid "Aborting. The current task will be gracefully closed as soon as possible..." +msgstr "" + +#: FlatCAMApp.py:5888 +msgid "The current task was gracefully closed on user request..." +msgstr "" + +#: FlatCAMApp.py:5916 flatcamGUI/preferences/PreferencesUIManager.py:905 +#: flatcamGUI/preferences/PreferencesUIManager.py:949 +#: flatcamGUI/preferences/PreferencesUIManager.py:970 +#: flatcamGUI/preferences/PreferencesUIManager.py:1075 +msgid "Preferences" +msgstr "" + +#: FlatCAMApp.py:5981 FlatCAMApp.py:6009 FlatCAMApp.py:6036 FlatCAMApp.py:6056 +#: FlatCAMDB.py:738 FlatCAMDB.py:913 FlatCAMDB.py:2200 FlatCAMDB.py:2418 +#: flatcamObjects/FlatCAMGeometry.py:890 flatcamTools/ToolNCC.py:3963 +#: flatcamTools/ToolNCC.py:4047 flatcamTools/ToolPaint.py:3553 +#: flatcamTools/ToolPaint.py:3638 +msgid "Tools Database" +msgstr "" + +#: FlatCAMApp.py:6033 +msgid "Tools in Tools Database edited but not saved." +msgstr "" + +#: FlatCAMApp.py:6060 flatcamTools/ToolNCC.py:3970 flatcamTools/ToolPaint.py:3560 +msgid "Tool from DB added in Tool Table." +msgstr "" + +#: FlatCAMApp.py:6062 +msgid "Adding tool from DB is not allowed for this object." +msgstr "" + +#: FlatCAMApp.py:6080 +msgid "" +"One or more Tools are edited.\n" +"Do you want to update the Tools Database?" +msgstr "" + +#: FlatCAMApp.py:6082 +msgid "Save Tools Database" +msgstr "" + +#: FlatCAMApp.py:6135 +msgid "No object selected to Flip on Y axis." +msgstr "" + +#: FlatCAMApp.py:6161 +msgid "Flip on Y axis done." +msgstr "" + +#: FlatCAMApp.py:6163 FlatCAMApp.py:6211 flatcamEditors/FlatCAMGrbEditor.py:6059 +msgid "Flip action was not executed." +msgstr "" + +#: FlatCAMApp.py:6183 +msgid "No object selected to Flip on X axis." +msgstr "" + +#: FlatCAMApp.py:6209 +msgid "Flip on X axis done." +msgstr "" + +#: FlatCAMApp.py:6231 +msgid "No object selected to Rotate." +msgstr "" + +#: FlatCAMApp.py:6234 FlatCAMApp.py:6287 FlatCAMApp.py:6326 +msgid "Transform" +msgstr "" + +#: FlatCAMApp.py:6234 FlatCAMApp.py:6287 FlatCAMApp.py:6326 +msgid "Enter the Angle value:" +msgstr "" + +#: FlatCAMApp.py:6265 +msgid "Rotation done." +msgstr "" + +#: FlatCAMApp.py:6267 +msgid "Rotation movement was not executed." +msgstr "" + +#: FlatCAMApp.py:6285 +msgid "No object selected to Skew/Shear on X axis." +msgstr "" + +#: FlatCAMApp.py:6307 +msgid "Skew on X axis done." +msgstr "" + +#: FlatCAMApp.py:6324 +msgid "No object selected to Skew/Shear on Y axis." +msgstr "" + +#: FlatCAMApp.py:6346 +msgid "Skew on Y axis done." +msgstr "" + +#: FlatCAMApp.py:6497 FlatCAMApp.py:6544 flatcamGUI/FlatCAMGUI.py:503 +#: flatcamGUI/FlatCAMGUI.py:1728 +msgid "Select All" +msgstr "" + +#: FlatCAMApp.py:6501 FlatCAMApp.py:6548 flatcamGUI/FlatCAMGUI.py:505 +msgid "Deselect All" +msgstr "" + +#: FlatCAMApp.py:6564 +msgid "All objects are selected." +msgstr "" + +#: FlatCAMApp.py:6574 +msgid "Objects selection is cleared." +msgstr "" + +#: FlatCAMApp.py:6594 flatcamGUI/FlatCAMGUI.py:1721 +msgid "Grid On/Off" +msgstr "" + +#: FlatCAMApp.py:6606 flatcamEditors/FlatCAMGeoEditor.py:939 +#: flatcamEditors/FlatCAMGrbEditor.py:2583 flatcamEditors/FlatCAMGrbEditor.py:5641 +#: flatcamGUI/ObjectUI.py:1595 flatcamTools/ToolDblSided.py:192 +#: flatcamTools/ToolDblSided.py:425 flatcamTools/ToolNCC.py:294 flatcamTools/ToolNCC.py:631 +#: flatcamTools/ToolPaint.py:277 flatcamTools/ToolPaint.py:676 +#: flatcamTools/ToolSolderPaste.py:122 flatcamTools/ToolSolderPaste.py:597 +#: flatcamTools/ToolTransform.py:478 +msgid "Add" +msgstr "" + +#: FlatCAMApp.py:6608 flatcamEditors/FlatCAMGrbEditor.py:2588 +#: flatcamEditors/FlatCAMGrbEditor.py:2736 flatcamGUI/FlatCAMGUI.py:751 +#: flatcamGUI/FlatCAMGUI.py:1074 flatcamGUI/FlatCAMGUI.py:2141 flatcamGUI/FlatCAMGUI.py:2284 +#: flatcamGUI/FlatCAMGUI.py:2777 flatcamGUI/ObjectUI.py:1623 +#: flatcamObjects/FlatCAMGeometry.py:505 flatcamTools/ToolNCC.py:316 +#: flatcamTools/ToolNCC.py:637 flatcamTools/ToolPaint.py:299 flatcamTools/ToolPaint.py:682 +#: flatcamTools/ToolSolderPaste.py:128 flatcamTools/ToolSolderPaste.py:600 +msgid "Delete" +msgstr "" + +#: FlatCAMApp.py:6624 +msgid "New Grid ..." +msgstr "" + +#: FlatCAMApp.py:6625 +msgid "Enter a Grid Value:" +msgstr "" + +#: FlatCAMApp.py:6633 FlatCAMApp.py:6660 +msgid "Please enter a grid value with non-zero value, in Float format." +msgstr "" + +#: FlatCAMApp.py:6639 +msgid "New Grid added" +msgstr "" + +#: FlatCAMApp.py:6642 +msgid "Grid already exists" +msgstr "" + +#: FlatCAMApp.py:6645 +msgid "Adding New Grid cancelled" +msgstr "" + +#: FlatCAMApp.py:6667 +msgid " Grid Value does not exist" +msgstr "" + +#: FlatCAMApp.py:6670 +msgid "Grid Value deleted" +msgstr "" + +#: FlatCAMApp.py:6673 +msgid "Delete Grid value cancelled" +msgstr "" + +#: FlatCAMApp.py:6679 +msgid "Key Shortcut List" +msgstr "" + +#: FlatCAMApp.py:6713 +msgid " No object selected to copy it's name" +msgstr "" + +#: FlatCAMApp.py:6717 +msgid "Name copied on clipboard ..." +msgstr "" + +#: FlatCAMApp.py:6930 flatcamEditors/FlatCAMGrbEditor.py:4554 +msgid "Coordinates copied to clipboard." +msgstr "" + +#: FlatCAMApp.py:7167 FlatCAMApp.py:7173 FlatCAMApp.py:7179 FlatCAMApp.py:7185 +#: flatcamObjects/ObjectCollection.py:922 flatcamObjects/ObjectCollection.py:928 +#: flatcamObjects/ObjectCollection.py:934 flatcamObjects/ObjectCollection.py:940 +#: flatcamObjects/ObjectCollection.py:946 flatcamObjects/ObjectCollection.py:952 +msgid "selected" +msgstr "" + +#: FlatCAMApp.py:7340 +msgid "" +"There are files/objects opened in FlatCAM.\n" +"Creating a New project will delete them.\n" +"Do you want to Save the project?" +msgstr "" + +#: FlatCAMApp.py:7361 +msgid "New Project created" +msgstr "" + +#: FlatCAMApp.py:7519 FlatCAMApp.py:7523 flatcamGUI/FlatCAMGUI.py:836 +#: flatcamGUI/FlatCAMGUI.py:2544 +msgid "Open Gerber" +msgstr "" + +#: FlatCAMApp.py:7528 FlatCAMApp.py:7565 FlatCAMApp.py:7607 FlatCAMApp.py:7677 +#: FlatCAMApp.py:8462 FlatCAMApp.py:9675 FlatCAMApp.py:9737 +msgid "" +"Canvas initialization started.\n" +"Canvas initialization finished in" +msgstr "" + +#: FlatCAMApp.py:7530 +msgid "Opening Gerber file." +msgstr "" + +#: FlatCAMApp.py:7557 FlatCAMApp.py:7561 flatcamGUI/FlatCAMGUI.py:838 +#: flatcamGUI/FlatCAMGUI.py:2546 +msgid "Open Excellon" +msgstr "" + +#: FlatCAMApp.py:7567 +msgid "Opening Excellon file." +msgstr "" + +#: FlatCAMApp.py:7598 FlatCAMApp.py:7602 +msgid "Open G-Code" +msgstr "" + +#: FlatCAMApp.py:7609 +msgid "Opening G-Code file." +msgstr "" + +#: FlatCAMApp.py:7632 FlatCAMApp.py:7635 flatcamGUI/FlatCAMGUI.py:1730 +msgid "Open Project" +msgstr "" + +#: FlatCAMApp.py:7668 FlatCAMApp.py:7672 +msgid "Open HPGL2" +msgstr "" + +#: FlatCAMApp.py:7679 +msgid "Opening HPGL2 file." +msgstr "" + +#: FlatCAMApp.py:7702 FlatCAMApp.py:7705 +msgid "Open Configuration File" +msgstr "" + +#: FlatCAMApp.py:7725 FlatCAMApp.py:8072 +msgid "Please Select a Geometry object to export" +msgstr "" + +#: FlatCAMApp.py:7739 +msgid "Only Geometry, Gerber and CNCJob objects can be used." +msgstr "" + +#: FlatCAMApp.py:7752 FlatCAMApp.py:7756 flatcamTools/ToolQRCode.py:829 +#: flatcamTools/ToolQRCode.py:833 +msgid "Export SVG" +msgstr "" + +#: FlatCAMApp.py:7781 +msgid "Data must be a 3D array with last dimension 3 or 4" +msgstr "" + +#: FlatCAMApp.py:7787 FlatCAMApp.py:7791 +msgid "Export PNG Image" +msgstr "" + +#: FlatCAMApp.py:7824 FlatCAMApp.py:8032 +msgid "Failed. Only Gerber objects can be saved as Gerber files..." +msgstr "" + +#: FlatCAMApp.py:7836 +msgid "Save Gerber source file" +msgstr "" + +#: FlatCAMApp.py:7865 +msgid "Failed. Only Script objects can be saved as TCL Script files..." +msgstr "" + +#: FlatCAMApp.py:7877 +msgid "Save Script source file" +msgstr "" + +#: FlatCAMApp.py:7906 +msgid "Failed. Only Document objects can be saved as Document files..." +msgstr "" + +#: FlatCAMApp.py:7918 +msgid "Save Document source file" +msgstr "" + +#: FlatCAMApp.py:7947 FlatCAMApp.py:7988 FlatCAMApp.py:8945 +msgid "Failed. Only Excellon objects can be saved as Excellon files..." +msgstr "" + +#: FlatCAMApp.py:7955 FlatCAMApp.py:7959 +msgid "Save Excellon source file" +msgstr "" + +#: FlatCAMApp.py:7996 FlatCAMApp.py:8000 +msgid "Export Excellon" +msgstr "" + +#: FlatCAMApp.py:8040 FlatCAMApp.py:8044 +msgid "Export Gerber" +msgstr "" + +#: FlatCAMApp.py:8082 +msgid "Only Geometry objects can be used." +msgstr "" + +#: FlatCAMApp.py:8096 FlatCAMApp.py:8100 +msgid "Export DXF" +msgstr "" + +#: FlatCAMApp.py:8125 FlatCAMApp.py:8128 +msgid "Import SVG" +msgstr "" + +#: FlatCAMApp.py:8156 FlatCAMApp.py:8160 +msgid "Import DXF" +msgstr "" + +#: FlatCAMApp.py:8210 +msgid "Viewing the source code of the selected object." +msgstr "" + +#: FlatCAMApp.py:8211 flatcamObjects/FlatCAMCNCJob.py:548 +#: flatcamObjects/FlatCAMScript.py:134 +msgid "Loading..." +msgstr "" + +#: FlatCAMApp.py:8217 FlatCAMApp.py:8221 +msgid "Select an Gerber or Excellon file to view it's source file." +msgstr "" + +#: FlatCAMApp.py:8235 +msgid "Source Editor" +msgstr "" + +#: FlatCAMApp.py:8275 FlatCAMApp.py:8282 +msgid "There is no selected object for which to see it's source file code." +msgstr "" + +#: FlatCAMApp.py:8294 +msgid "Failed to load the source code for the selected object" +msgstr "" + +#: FlatCAMApp.py:8308 flatcamObjects/FlatCAMCNCJob.py:562 +msgid "Code Editor" +msgstr "" + +#: FlatCAMApp.py:8330 +msgid "Go to Line ..." +msgstr "" + +#: FlatCAMApp.py:8331 +msgid "Line:" +msgstr "" + +#: FlatCAMApp.py:8360 +msgid "New TCL script file created in Code Editor." +msgstr "" + +#: FlatCAMApp.py:8396 FlatCAMApp.py:8398 FlatCAMApp.py:8434 FlatCAMApp.py:8436 +msgid "Open TCL script" +msgstr "" + +#: FlatCAMApp.py:8464 +msgid "Executing ScriptObject file." +msgstr "" + +#: FlatCAMApp.py:8472 FlatCAMApp.py:8475 +msgid "Run TCL script" +msgstr "" + +#: FlatCAMApp.py:8498 +msgid "TCL script file opened in Code Editor and executed." +msgstr "" + +#: FlatCAMApp.py:8549 FlatCAMApp.py:8555 +msgid "Save Project As ..." +msgstr "" + +#: FlatCAMApp.py:8551 flatcamGUI/FlatCAMGUI.py:1134 flatcamGUI/FlatCAMGUI.py:2176 +msgid "Project" +msgstr "" + +#: FlatCAMApp.py:8590 +msgid "FlatCAM objects print" +msgstr "" + +#: FlatCAMApp.py:8603 FlatCAMApp.py:8610 +msgid "Save Object as PDF ..." +msgstr "" + +#: FlatCAMApp.py:8619 +msgid "Printing PDF ... Please wait." +msgstr "" + +#: FlatCAMApp.py:8798 +msgid "PDF file saved to" +msgstr "" + +#: FlatCAMApp.py:8823 +msgid "Exporting SVG" +msgstr "" + +#: FlatCAMApp.py:8866 +msgid "SVG file exported to" +msgstr "" + +#: FlatCAMApp.py:8892 +msgid "Save cancelled because source file is empty. Try to export the Gerber file." +msgstr "" + +#: FlatCAMApp.py:9039 +msgid "Excellon file exported to" +msgstr "" + +#: FlatCAMApp.py:9048 +msgid "Exporting Excellon" +msgstr "" + +#: FlatCAMApp.py:9053 FlatCAMApp.py:9060 +msgid "Could not export Excellon file." +msgstr "" + +#: FlatCAMApp.py:9175 +msgid "Gerber file exported to" +msgstr "" + +#: FlatCAMApp.py:9183 +msgid "Exporting Gerber" +msgstr "" + +#: FlatCAMApp.py:9188 FlatCAMApp.py:9195 +msgid "Could not export Gerber file." +msgstr "" + +#: FlatCAMApp.py:9230 +msgid "DXF file exported to" +msgstr "" + +#: FlatCAMApp.py:9236 +msgid "Exporting DXF" +msgstr "" + +#: FlatCAMApp.py:9241 FlatCAMApp.py:9248 +msgid "Could not export DXF file." +msgstr "" + +#: FlatCAMApp.py:9272 FlatCAMApp.py:9319 flatcamTools/ToolImage.py:277 +msgid "Not supported type is picked as parameter. Only Geometry and Gerber are supported" +msgstr "" + +#: FlatCAMApp.py:9282 +msgid "Importing SVG" +msgstr "" + +#: FlatCAMApp.py:9290 FlatCAMApp.py:9336 +msgid "Import failed." +msgstr "" + +#: FlatCAMApp.py:9297 FlatCAMApp.py:9343 FlatCAMApp.py:9407 FlatCAMApp.py:9474 +#: FlatCAMApp.py:9540 FlatCAMApp.py:9605 FlatCAMApp.py:9662 flatcamTools/ToolImage.py:297 +#: flatcamTools/ToolPDF.py:225 +msgid "Opened" +msgstr "" + +#: FlatCAMApp.py:9328 +msgid "Importing DXF" +msgstr "" + +#: FlatCAMApp.py:9369 FlatCAMApp.py:9564 FlatCAMApp.py:9629 +msgid "Failed to open file" +msgstr "" + +#: FlatCAMApp.py:9372 FlatCAMApp.py:9567 FlatCAMApp.py:9632 +msgid "Failed to parse file" +msgstr "" + +#: FlatCAMApp.py:9384 +msgid "Object is not Gerber file or empty. Aborting object creation." +msgstr "" + +#: FlatCAMApp.py:9389 +msgid "Opening Gerber" +msgstr "" + +#: FlatCAMApp.py:9400 +msgid "Open Gerber failed. Probable not a Gerber file." +msgstr "" + +#: FlatCAMApp.py:9432 flatcamTools/ToolPcbWizard.py:424 +msgid "This is not Excellon file." +msgstr "" + +#: FlatCAMApp.py:9436 +msgid "Cannot open file" +msgstr "" + +#: FlatCAMApp.py:9454 flatcamTools/ToolPDF.py:275 flatcamTools/ToolPcbWizard.py:445 +msgid "No geometry found in file" +msgstr "" + +#: FlatCAMApp.py:9457 +msgid "Opening Excellon." +msgstr "" + +#: FlatCAMApp.py:9467 +msgid "Open Excellon file failed. Probable not an Excellon file." +msgstr "" + +#: FlatCAMApp.py:9499 +msgid "Reading GCode file" +msgstr "" + +#: FlatCAMApp.py:9505 +msgid "Failed to open" +msgstr "" + +#: FlatCAMApp.py:9512 +msgid "This is not GCODE" +msgstr "" + +#: FlatCAMApp.py:9517 +msgid "Opening G-Code." +msgstr "" + +#: FlatCAMApp.py:9530 +msgid "" +"Failed to create CNCJob Object. Probable not a GCode file. Try to load it from File " +"menu.\n" +" Attempting to create a FlatCAM CNCJob Object from G-Code file failed during processing" +msgstr "" + +#: FlatCAMApp.py:9586 +msgid "Object is not HPGL2 file or empty. Aborting object creation." +msgstr "" + +#: FlatCAMApp.py:9591 +msgid "Opening HPGL2" +msgstr "" + +#: FlatCAMApp.py:9598 +msgid " Open HPGL2 failed. Probable not a HPGL2 file." +msgstr "" + +#: FlatCAMApp.py:9624 +msgid "TCL script file opened in Code Editor." +msgstr "" + +#: FlatCAMApp.py:9644 +msgid "Opening TCL Script..." +msgstr "" + +#: FlatCAMApp.py:9655 +msgid "Failed to open TCL Script." +msgstr "" + +#: FlatCAMApp.py:9677 +msgid "Opening FlatCAM Config file." +msgstr "" + +#: FlatCAMApp.py:9705 +msgid "Failed to open config file" +msgstr "" + +#: FlatCAMApp.py:9734 +msgid "Loading Project ... Please Wait ..." +msgstr "" + +#: FlatCAMApp.py:9739 +msgid "Opening FlatCAM Project file." +msgstr "" + +#: FlatCAMApp.py:9754 FlatCAMApp.py:9758 FlatCAMApp.py:9775 +msgid "Failed to open project file" +msgstr "" + +#: FlatCAMApp.py:9812 +msgid "Loading Project ... restoring" +msgstr "" + +#: FlatCAMApp.py:9822 +msgid "Project loaded from" +msgstr "" + +#: FlatCAMApp.py:9846 +msgid "Redrawing all objects" +msgstr "" + +#: FlatCAMApp.py:9934 +msgid "Failed to load recent item list." +msgstr "" + +#: FlatCAMApp.py:9941 +msgid "Failed to parse recent item list." +msgstr "" + +#: FlatCAMApp.py:9951 +msgid "Failed to load recent projects item list." +msgstr "" + +#: FlatCAMApp.py:9958 +msgid "Failed to parse recent project item list." +msgstr "" + +#: FlatCAMApp.py:10019 +msgid "Clear Recent projects" +msgstr "" + +#: FlatCAMApp.py:10043 +msgid "Clear Recent files" +msgstr "" + +#: FlatCAMApp.py:10065 flatcamGUI/FlatCAMGUI.py:1363 +msgid "Shortcut Key List" +msgstr "" + +#: FlatCAMApp.py:10145 +msgid "Selected Tab - Choose an Item from Project Tab" +msgstr "" + +#: FlatCAMApp.py:10146 +msgid "Details" +msgstr "" + +#: FlatCAMApp.py:10148 +msgid "The normal flow when working in FlatCAM is the following:" +msgstr "" + +#: FlatCAMApp.py:10149 +msgid "" +"Load/Import a Gerber, Excellon, Gcode, DXF, Raster Image or SVG file into FlatCAM using " +"either the toolbars, key shortcuts or even dragging and dropping the files on the GUI." +msgstr "" + +#: FlatCAMApp.py:10152 +msgid "" +"You can also load a FlatCAM project by double clicking on the project file, drag and drop " +"of the file into the FLATCAM GUI or through the menu (or toolbar) actions offered within " +"the app." +msgstr "" + +#: FlatCAMApp.py:10155 +msgid "" +"Once an object is available in the Project Tab, by selecting it and then focusing on " +"SELECTED TAB (more simpler is to double click the object name in the Project Tab, " +"SELECTED TAB will be updated with the object properties according to its kind: Gerber, " +"Excellon, Geometry or CNCJob object." +msgstr "" + +#: FlatCAMApp.py:10159 +msgid "" +"If the selection of the object is done on the canvas by single click instead, and the " +"SELECTED TAB is in focus, again the object properties will be displayed into the Selected " +"Tab. Alternatively, double clicking on the object on the canvas will bring the SELECTED " +"TAB and populate it even if it was out of focus." +msgstr "" + +#: FlatCAMApp.py:10163 +msgid "You can change the parameters in this screen and the flow direction is like this:" +msgstr "" + +#: FlatCAMApp.py:10164 +msgid "" +"Gerber/Excellon Object --> Change Parameter --> Generate Geometry --> Geometry Object --> " +"Add tools (change param in Selected Tab) --> Generate CNCJob --> CNCJob Object --> Verify " +"GCode (through Edit CNC Code) and/or append/prepend to GCode (again, done in SELECTED " +"TAB) --> Save GCode." +msgstr "" + +#: FlatCAMApp.py:10168 +msgid "" +"A list of key shortcuts is available through an menu entry in Help --> Shortcuts List or " +"through its own key shortcut: F3." +msgstr "" + +#: FlatCAMApp.py:10232 +msgid "Failed checking for latest version. Could not connect." +msgstr "" + +#: FlatCAMApp.py:10239 +msgid "Could not parse information about latest version." +msgstr "" + +#: FlatCAMApp.py:10249 +msgid "FlatCAM is up to date!" +msgstr "" + +#: FlatCAMApp.py:10254 +msgid "Newer Version Available" +msgstr "" + +#: FlatCAMApp.py:10256 +msgid "There is a newer version of FlatCAM available for download:" +msgstr "" + +#: FlatCAMApp.py:10260 +msgid "info" +msgstr "" + +#: FlatCAMApp.py:10288 +msgid "" +"OpenGL canvas initialization failed. HW or HW configuration not supported.Change the " +"graphic engine to Legacy(2D) in Edit -> Preferences -> General tab.\n" +"\n" +msgstr "" + +#: FlatCAMApp.py:10367 +msgid "All plots disabled." +msgstr "" + +#: FlatCAMApp.py:10374 +msgid "All non selected plots disabled." +msgstr "" + +#: FlatCAMApp.py:10381 +msgid "All plots enabled." +msgstr "" + +#: FlatCAMApp.py:10387 +msgid "Selected plots enabled..." +msgstr "" + +#: FlatCAMApp.py:10395 +msgid "Selected plots disabled..." +msgstr "" + +#: FlatCAMApp.py:10428 +msgid "Enabling plots ..." +msgstr "" + +#: FlatCAMApp.py:10480 +msgid "Disabling plots ..." +msgstr "" + +#: FlatCAMApp.py:10503 +msgid "Working ..." +msgstr "" + +#: FlatCAMApp.py:10558 flatcamGUI/FlatCAMGUI.py:703 +msgid "Red" +msgstr "" + +#: FlatCAMApp.py:10560 flatcamGUI/FlatCAMGUI.py:706 +msgid "Blue" +msgstr "" + +#: FlatCAMApp.py:10563 flatcamGUI/FlatCAMGUI.py:709 +msgid "Yellow" +msgstr "" + +#: FlatCAMApp.py:10565 flatcamGUI/FlatCAMGUI.py:712 +msgid "Green" +msgstr "" + +#: FlatCAMApp.py:10567 flatcamGUI/FlatCAMGUI.py:715 +msgid "Purple" +msgstr "" + +#: FlatCAMApp.py:10569 flatcamGUI/FlatCAMGUI.py:718 +msgid "Brown" +msgstr "" + +#: FlatCAMApp.py:10571 FlatCAMApp.py:10627 flatcamGUI/FlatCAMGUI.py:721 +msgid "White" +msgstr "" + +#: FlatCAMApp.py:10573 flatcamGUI/FlatCAMGUI.py:724 +msgid "Black" +msgstr "" + +#: FlatCAMApp.py:10576 flatcamGUI/FlatCAMGUI.py:729 +msgid "Custom" +msgstr "" + +#: FlatCAMApp.py:10586 flatcamGUI/FlatCAMGUI.py:737 +msgid "Default" +msgstr "" + +#: FlatCAMApp.py:10610 flatcamGUI/FlatCAMGUI.py:734 +msgid "Opacity" +msgstr "" + +#: FlatCAMApp.py:10612 +msgid "Set alpha level ..." +msgstr "" + +#: FlatCAMApp.py:10612 flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:131 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:133 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:220 +#: flatcamTools/ToolExtractDrills.py:164 flatcamTools/ToolExtractDrills.py:285 +#: flatcamTools/ToolPunchGerber.py:192 flatcamTools/ToolPunchGerber.py:308 +#: flatcamTools/ToolTransform.py:357 +msgid "Value" +msgstr "" + +#: FlatCAMApp.py:10666 +msgid "Saving FlatCAM Project" +msgstr "" + +#: FlatCAMApp.py:10687 FlatCAMApp.py:10723 +msgid "Project saved to" +msgstr "" + +#: FlatCAMApp.py:10694 +msgid "The object is used by another application." +msgstr "" + +#: FlatCAMApp.py:10708 +msgid "Failed to verify project file" +msgstr "" + +#: FlatCAMApp.py:10708 FlatCAMApp.py:10716 FlatCAMApp.py:10726 +msgid "Retry to save it." +msgstr "" + +#: FlatCAMApp.py:10716 FlatCAMApp.py:10726 +msgid "Failed to parse saved project file" +msgstr "" + +#: FlatCAMBookmark.py:57 FlatCAMBookmark.py:84 +msgid "Title" +msgstr "" + +#: FlatCAMBookmark.py:58 FlatCAMBookmark.py:88 +msgid "Web Link" +msgstr "" + +#: FlatCAMBookmark.py:62 +msgid "" +"Index.\n" +"The rows in gray color will populate the Bookmarks menu.\n" +"The number of gray colored rows is set in Preferences." +msgstr "" + +#: FlatCAMBookmark.py:66 +msgid "" +"Description of the link that is set as an menu action.\n" +"Try to keep it short because it is installed as a menu item." +msgstr "" + +#: FlatCAMBookmark.py:69 +msgid "Web Link. E.g: https://your_website.org " +msgstr "" + +#: FlatCAMBookmark.py:78 +msgid "New Bookmark" +msgstr "" + +#: FlatCAMBookmark.py:97 +msgid "Add Entry" +msgstr "" + +#: FlatCAMBookmark.py:98 +msgid "Remove Entry" +msgstr "" + +#: FlatCAMBookmark.py:99 +msgid "Export List" +msgstr "" + +#: FlatCAMBookmark.py:100 +msgid "Import List" +msgstr "" + +#: FlatCAMBookmark.py:190 +msgid "Title entry is empty." +msgstr "" + +#: FlatCAMBookmark.py:199 +msgid "Web link entry is empty." +msgstr "" + +#: FlatCAMBookmark.py:207 +msgid "Either the Title or the Weblink already in the table." +msgstr "" + +#: FlatCAMBookmark.py:227 +msgid "Bookmark added." +msgstr "" + +#: FlatCAMBookmark.py:244 +msgid "This bookmark can not be removed" +msgstr "" + +#: FlatCAMBookmark.py:275 +msgid "Bookmark removed." +msgstr "" + +#: FlatCAMBookmark.py:290 +msgid "Export FlatCAM Bookmarks" +msgstr "" + +#: FlatCAMBookmark.py:293 flatcamGUI/FlatCAMGUI.py:524 +msgid "Bookmarks" +msgstr "" + +#: FlatCAMBookmark.py:319 FlatCAMBookmark.py:349 +msgid "Could not load bookmarks file." +msgstr "" + +#: FlatCAMBookmark.py:329 +msgid "Failed to write bookmarks to file." +msgstr "" + +#: FlatCAMBookmark.py:331 +msgid "Exported bookmarks to" +msgstr "" + +#: FlatCAMBookmark.py:337 +msgid "Import FlatCAM Bookmarks" +msgstr "" + +#: FlatCAMBookmark.py:356 +msgid "Imported Bookmarks from" +msgstr "" + +#: FlatCAMCommon.py:29 +msgid "The user requested a graceful exit of the current task." +msgstr "" + +#: FlatCAMDB.py:86 msgid "Add Geometry Tool in DB" msgstr "" -#: AppDatabase.py:90 AppDatabase.py:1757 +#: FlatCAMDB.py:88 FlatCAMDB.py:1643 msgid "" "Add a new tool in the Tools Database.\n" "It will be used in the Geometry UI.\n" "You can edit it after it is added." msgstr "" -#: AppDatabase.py:104 AppDatabase.py:1771 +#: FlatCAMDB.py:102 FlatCAMDB.py:1657 msgid "Delete Tool from DB" msgstr "" -#: AppDatabase.py:106 AppDatabase.py:1773 +#: FlatCAMDB.py:104 FlatCAMDB.py:1659 msgid "Remove a selection of tools in the Tools Database." msgstr "" -#: AppDatabase.py:110 AppDatabase.py:1777 +#: FlatCAMDB.py:108 FlatCAMDB.py:1663 msgid "Export DB" msgstr "" -#: AppDatabase.py:112 AppDatabase.py:1779 +#: FlatCAMDB.py:110 FlatCAMDB.py:1665 msgid "Save the Tools Database to a custom text file." msgstr "" -#: AppDatabase.py:116 AppDatabase.py:1783 +#: FlatCAMDB.py:114 FlatCAMDB.py:1669 msgid "Import DB" msgstr "" -#: AppDatabase.py:118 AppDatabase.py:1785 +#: FlatCAMDB.py:116 FlatCAMDB.py:1671 msgid "Load the Tools Database information's from a custom text file." msgstr "" -#: AppDatabase.py:122 AppDatabase.py:1795 -msgid "Transfer the Tool" +#: FlatCAMDB.py:120 FlatCAMDB.py:1681 +msgid "Add Tool from Tools DB" msgstr "" -#: AppDatabase.py:124 +#: FlatCAMDB.py:122 FlatCAMDB.py:1683 msgid "" "Add a new tool in the Tools Table of the\n" "active Geometry object after selecting a tool\n" "in the Tools Database." msgstr "" -#: AppDatabase.py:130 AppDatabase.py:1810 AppGUI/MainGUI.py:1388 -#: AppGUI/preferences/PreferencesUIManager.py:878 App_Main.py:2225 App_Main.py:3160 -#: App_Main.py:4037 App_Main.py:4307 App_Main.py:6417 -msgid "Cancel" -msgstr "" - -#: AppDatabase.py:160 AppDatabase.py:835 AppDatabase.py:1106 +#: FlatCAMDB.py:158 FlatCAMDB.py:833 FlatCAMDB.py:1087 msgid "Tool Name" msgstr "" -#: AppDatabase.py:161 AppDatabase.py:837 AppDatabase.py:1119 -#: AppEditors/FlatCAMExcEditor.py:1604 AppGUI/ObjectUI.py:1226 AppGUI/ObjectUI.py:1480 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:132 AppTools/ToolIsolation.py:260 -#: AppTools/ToolNCC.py:278 AppTools/ToolNCC.py:287 AppTools/ToolPaint.py:260 +#: FlatCAMDB.py:159 FlatCAMDB.py:835 FlatCAMDB.py:1100 +#: flatcamEditors/FlatCAMExcEditor.py:1604 flatcamGUI/ObjectUI.py:1345 +#: flatcamGUI/ObjectUI.py:1583 flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:132 +#: flatcamTools/ToolNCC.py:278 flatcamTools/ToolNCC.py:287 flatcamTools/ToolPaint.py:261 msgid "Tool Dia" msgstr "" -#: AppDatabase.py:162 AppDatabase.py:839 AppDatabase.py:1300 AppGUI/ObjectUI.py:1455 +#: FlatCAMDB.py:160 FlatCAMDB.py:837 FlatCAMDB.py:1281 flatcamGUI/ObjectUI.py:1558 msgid "Tool Offset" msgstr "" -#: AppDatabase.py:163 AppDatabase.py:841 AppDatabase.py:1317 +#: FlatCAMDB.py:161 FlatCAMDB.py:839 FlatCAMDB.py:1298 msgid "Custom Offset" msgstr "" -#: AppDatabase.py:164 AppDatabase.py:843 AppDatabase.py:1284 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:70 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:53 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:62 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:72 AppTools/ToolIsolation.py:199 -#: AppTools/ToolNCC.py:213 AppTools/ToolNCC.py:227 AppTools/ToolPaint.py:195 +#: FlatCAMDB.py:162 FlatCAMDB.py:841 FlatCAMDB.py:1265 flatcamGUI/ObjectUI.py:309 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:67 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:53 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:62 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:72 flatcamTools/ToolNCC.py:213 +#: flatcamTools/ToolNCC.py:227 flatcamTools/ToolPaint.py:196 msgid "Tool Type" msgstr "" -#: AppDatabase.py:165 AppDatabase.py:845 AppDatabase.py:1132 +#: FlatCAMDB.py:163 FlatCAMDB.py:843 FlatCAMDB.py:1113 msgid "Tool Shape" msgstr "" -#: AppDatabase.py:166 AppDatabase.py:848 AppDatabase.py:1148 AppGUI/ObjectUI.py:679 -#: AppGUI/ObjectUI.py:1605 AppGUI/ObjectUI.py:2266 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:93 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:49 -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:78 -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:58 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:115 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:98 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:105 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:113 AppTools/ToolCalculators.py:114 -#: AppTools/ToolCutOut.py:138 AppTools/ToolIsolation.py:246 AppTools/ToolNCC.py:260 -#: AppTools/ToolNCC.py:268 AppTools/ToolPaint.py:242 +#: FlatCAMDB.py:164 FlatCAMDB.py:846 FlatCAMDB.py:1129 flatcamGUI/ObjectUI.py:350 +#: flatcamGUI/ObjectUI.py:900 flatcamGUI/ObjectUI.py:1703 flatcamGUI/ObjectUI.py:2336 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:93 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:48 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:107 +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:78 +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:58 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:98 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:105 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:113 +#: flatcamTools/ToolCalculators.py:114 flatcamTools/ToolCutOut.py:138 +#: flatcamTools/ToolNCC.py:260 flatcamTools/ToolNCC.py:268 flatcamTools/ToolPaint.py:243 msgid "Cut Z" msgstr "" -#: AppDatabase.py:167 AppDatabase.py:850 AppDatabase.py:1162 +#: FlatCAMDB.py:165 FlatCAMDB.py:848 FlatCAMDB.py:1143 msgid "MultiDepth" msgstr "" -#: AppDatabase.py:168 AppDatabase.py:852 AppDatabase.py:1175 +#: FlatCAMDB.py:166 FlatCAMDB.py:850 FlatCAMDB.py:1156 msgid "DPP" msgstr "" -#: AppDatabase.py:169 AppDatabase.py:854 AppDatabase.py:1331 +#: FlatCAMDB.py:167 FlatCAMDB.py:852 FlatCAMDB.py:1312 msgid "V-Dia" msgstr "" -#: AppDatabase.py:170 AppDatabase.py:856 AppDatabase.py:1345 +#: FlatCAMDB.py:168 FlatCAMDB.py:854 FlatCAMDB.py:1326 msgid "V-Angle" msgstr "" -#: AppDatabase.py:171 AppDatabase.py:858 AppDatabase.py:1189 AppGUI/ObjectUI.py:725 -#: AppGUI/ObjectUI.py:1652 AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:134 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:102 -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:61 AppObjects/FlatCAMExcellon.py:1496 -#: AppObjects/FlatCAMGeometry.py:1671 AppTools/ToolCalibration.py:74 +#: FlatCAMDB.py:169 FlatCAMDB.py:856 FlatCAMDB.py:1170 flatcamGUI/ObjectUI.py:946 +#: flatcamGUI/ObjectUI.py:1750 flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:134 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:101 +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:61 +#: flatcamObjects/FlatCAMExcellon.py:1316 flatcamObjects/FlatCAMGeometry.py:1606 +#: flatcamTools/ToolCalibration.py:74 msgid "Travel Z" msgstr "" -#: AppDatabase.py:172 AppDatabase.py:860 +#: FlatCAMDB.py:170 FlatCAMDB.py:858 msgid "FR" msgstr "" -#: AppDatabase.py:173 AppDatabase.py:862 +#: FlatCAMDB.py:171 FlatCAMDB.py:860 msgid "FR Z" msgstr "" -#: AppDatabase.py:174 AppDatabase.py:864 AppDatabase.py:1359 +#: FlatCAMDB.py:172 FlatCAMDB.py:862 FlatCAMDB.py:1340 msgid "FR Rapids" msgstr "" -#: AppDatabase.py:175 AppDatabase.py:866 AppDatabase.py:1232 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:222 +#: FlatCAMDB.py:173 FlatCAMDB.py:864 FlatCAMDB.py:1213 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:222 msgid "Spindle Speed" msgstr "" -#: AppDatabase.py:176 AppDatabase.py:868 AppDatabase.py:1247 AppGUI/ObjectUI.py:843 -#: AppGUI/ObjectUI.py:1759 +#: FlatCAMDB.py:174 FlatCAMDB.py:866 FlatCAMDB.py:1228 flatcamGUI/ObjectUI.py:1064 +#: flatcamGUI/ObjectUI.py:1857 msgid "Dwell" msgstr "" -#: AppDatabase.py:177 AppDatabase.py:870 AppDatabase.py:1260 +#: FlatCAMDB.py:175 FlatCAMDB.py:868 FlatCAMDB.py:1241 msgid "Dwelltime" msgstr "" -#: AppDatabase.py:178 AppDatabase.py:872 AppGUI/ObjectUI.py:1916 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:257 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:255 -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:237 -#: AppTools/ToolSolderPaste.py:331 +#: FlatCAMDB.py:176 FlatCAMDB.py:870 flatcamGUI/ObjectUI.py:2014 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:257 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:254 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:237 +#: flatcamTools/ToolSolderPaste.py:335 msgid "Preprocessor" msgstr "" -#: AppDatabase.py:179 AppDatabase.py:874 AppDatabase.py:1375 +#: FlatCAMDB.py:177 FlatCAMDB.py:872 FlatCAMDB.py:1356 msgid "ExtraCut" msgstr "" -#: AppDatabase.py:180 AppDatabase.py:876 AppDatabase.py:1390 +#: FlatCAMDB.py:178 FlatCAMDB.py:874 FlatCAMDB.py:1371 msgid "E-Cut Length" msgstr "" -#: AppDatabase.py:181 AppDatabase.py:878 +#: FlatCAMDB.py:179 FlatCAMDB.py:876 msgid "Toolchange" msgstr "" -#: AppDatabase.py:182 AppDatabase.py:880 +#: FlatCAMDB.py:180 FlatCAMDB.py:878 msgid "Toolchange XY" msgstr "" -#: AppDatabase.py:183 AppDatabase.py:882 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:160 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:132 -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:98 AppTools/ToolCalibration.py:111 +#: FlatCAMDB.py:181 FlatCAMDB.py:880 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:160 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:131 +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:98 +#: flatcamTools/ToolCalibration.py:111 msgid "Toolchange Z" msgstr "" -#: AppDatabase.py:184 AppDatabase.py:884 AppGUI/ObjectUI.py:972 -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:69 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:56 +#: FlatCAMDB.py:182 FlatCAMDB.py:882 flatcamGUI/ObjectUI.py:1193 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:69 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:54 msgid "Start Z" msgstr "" -#: AppDatabase.py:185 AppDatabase.py:887 +#: FlatCAMDB.py:183 FlatCAMDB.py:885 msgid "End Z" msgstr "" -#: AppDatabase.py:189 +#: FlatCAMDB.py:187 msgid "Tool Index." msgstr "" -#: AppDatabase.py:191 AppDatabase.py:1108 +#: FlatCAMDB.py:189 FlatCAMDB.py:1089 msgid "" "Tool name.\n" "This is not used in the app, it's function\n" "is to serve as a note for the user." msgstr "" -#: AppDatabase.py:195 AppDatabase.py:1121 +#: FlatCAMDB.py:193 FlatCAMDB.py:1102 msgid "Tool Diameter." msgstr "" -#: AppDatabase.py:197 AppDatabase.py:1302 +#: FlatCAMDB.py:195 FlatCAMDB.py:1283 msgid "" "Tool Offset.\n" "Can be of a few types:\n" @@ -238,13 +1752,13 @@ msgid "" "Custom = custom offset using the Custom Offset value" msgstr "" -#: AppDatabase.py:204 AppDatabase.py:1319 +#: FlatCAMDB.py:202 FlatCAMDB.py:1300 msgid "" "Custom Offset.\n" "A value to be used as offset from the current path." msgstr "" -#: AppDatabase.py:207 AppDatabase.py:1286 +#: FlatCAMDB.py:205 FlatCAMDB.py:1267 msgid "" "Tool Type.\n" "Can be:\n" @@ -253,7 +1767,7 @@ msgid "" "Finish = finishing cut, high feedrate" msgstr "" -#: AppDatabase.py:213 AppDatabase.py:1134 +#: FlatCAMDB.py:211 FlatCAMDB.py:1115 msgid "" "Tool Shape. \n" "Can be:\n" @@ -262,57 +1776,57 @@ msgid "" "V = v-shape milling tool" msgstr "" -#: AppDatabase.py:219 AppDatabase.py:1150 +#: FlatCAMDB.py:217 FlatCAMDB.py:1131 msgid "" "Cutting Depth.\n" "The depth at which to cut into material." msgstr "" -#: AppDatabase.py:222 AppDatabase.py:1164 +#: FlatCAMDB.py:220 FlatCAMDB.py:1145 msgid "" "Multi Depth.\n" "Selecting this will allow cutting in multiple passes,\n" "each pass adding a DPP parameter depth." msgstr "" -#: AppDatabase.py:226 AppDatabase.py:1177 +#: FlatCAMDB.py:224 FlatCAMDB.py:1158 msgid "" "DPP. Depth per Pass.\n" "The value used to cut into material on each pass." msgstr "" -#: AppDatabase.py:229 AppDatabase.py:1333 +#: FlatCAMDB.py:227 FlatCAMDB.py:1314 msgid "" "V-Dia.\n" "Diameter of the tip for V-Shape Tools." msgstr "" -#: AppDatabase.py:232 AppDatabase.py:1347 +#: FlatCAMDB.py:230 FlatCAMDB.py:1328 msgid "" "V-Agle.\n" "Angle at the tip for the V-Shape Tools." msgstr "" -#: AppDatabase.py:235 AppDatabase.py:1191 +#: FlatCAMDB.py:233 FlatCAMDB.py:1172 msgid "" "Clearance Height.\n" "Height at which the milling bit will travel between cuts,\n" "above the surface of the material, avoiding all fixtures." msgstr "" -#: AppDatabase.py:239 +#: FlatCAMDB.py:237 msgid "" "FR. Feedrate\n" "The speed on XY plane used while cutting into material." msgstr "" -#: AppDatabase.py:242 +#: FlatCAMDB.py:240 msgid "" "FR Z. Feedrate Z\n" "The speed on Z plane." msgstr "" -#: AppDatabase.py:245 AppDatabase.py:1361 +#: FlatCAMDB.py:243 FlatCAMDB.py:1342 msgid "" "FR Rapids. Feedrate Rapids\n" "Speed used while moving as fast as possible.\n" @@ -320,34 +1834,34 @@ msgid "" "the G0 g-code command. Mostly 3D printers." msgstr "" -#: AppDatabase.py:250 AppDatabase.py:1234 +#: FlatCAMDB.py:248 FlatCAMDB.py:1215 msgid "" "Spindle Speed.\n" "If it's left empty it will not be used.\n" "The speed of the spindle in RPM." msgstr "" -#: AppDatabase.py:254 AppDatabase.py:1249 +#: FlatCAMDB.py:252 FlatCAMDB.py:1230 msgid "" "Dwell.\n" "Check this if a delay is needed to allow\n" "the spindle motor to reach it's set speed." msgstr "" -#: AppDatabase.py:258 AppDatabase.py:1262 +#: FlatCAMDB.py:256 FlatCAMDB.py:1243 msgid "" "Dwell Time.\n" "A delay used to allow the motor spindle reach it's set speed." msgstr "" -#: AppDatabase.py:261 +#: FlatCAMDB.py:259 msgid "" "Preprocessor.\n" "A selection of files that will alter the generated G-code\n" "to fit for a number of use cases." msgstr "" -#: AppDatabase.py:265 AppDatabase.py:1377 +#: FlatCAMDB.py:263 FlatCAMDB.py:1358 msgid "" "Extra Cut.\n" "If checked, after a isolation is finished an extra cut\n" @@ -356,7 +1870,7 @@ msgid "" "ensure a complete isolation." msgstr "" -#: AppDatabase.py:271 AppDatabase.py:1392 +#: FlatCAMDB.py:269 FlatCAMDB.py:1373 msgid "" "Extra Cut length.\n" "If checked, after a isolation is finished an extra cut\n" @@ -366,7 +1880,7 @@ msgid "" "the extra cut." msgstr "" -#: AppDatabase.py:278 +#: FlatCAMDB.py:276 msgid "" "Toolchange.\n" "It will create a toolchange event.\n" @@ -374,7 +1888,7 @@ msgid "" "the preprocessor file." msgstr "" -#: AppDatabase.py:283 +#: FlatCAMDB.py:281 msgid "" "Toolchange XY.\n" "A set of coordinates in the format (x, y).\n" @@ -382,181 +1896,144 @@ msgid "" "where the tool change event take place." msgstr "" -#: AppDatabase.py:288 +#: FlatCAMDB.py:286 msgid "" "Toolchange Z.\n" "The position on Z plane where the tool change event take place." msgstr "" -#: AppDatabase.py:291 +#: FlatCAMDB.py:289 msgid "" "Start Z.\n" "If it's left empty it will not be used.\n" "A position on Z plane to move immediately after job start." msgstr "" -#: AppDatabase.py:295 +#: FlatCAMDB.py:293 msgid "" "End Z.\n" "A position on Z plane to move immediately after job stop." msgstr "" -#: AppDatabase.py:307 AppDatabase.py:684 AppDatabase.py:718 AppDatabase.py:2033 -#: AppDatabase.py:2298 AppDatabase.py:2332 +#: FlatCAMDB.py:305 FlatCAMDB.py:682 FlatCAMDB.py:716 FlatCAMDB.py:1898 FlatCAMDB.py:2144 +#: FlatCAMDB.py:2178 msgid "Could not load Tools DB file." msgstr "" -#: AppDatabase.py:315 AppDatabase.py:726 AppDatabase.py:2041 AppDatabase.py:2340 +#: FlatCAMDB.py:313 FlatCAMDB.py:724 FlatCAMDB.py:1906 FlatCAMDB.py:2186 msgid "Failed to parse Tools DB file." msgstr "" -#: AppDatabase.py:318 AppDatabase.py:729 AppDatabase.py:2044 AppDatabase.py:2343 -msgid "Loaded Tools DB from" +#: FlatCAMDB.py:316 FlatCAMDB.py:727 FlatCAMDB.py:1909 FlatCAMDB.py:2189 +msgid "Loaded FlatCAM Tools DB from" msgstr "" -#: AppDatabase.py:324 AppDatabase.py:1958 +#: FlatCAMDB.py:322 FlatCAMDB.py:1823 msgid "Add to DB" msgstr "" -#: AppDatabase.py:326 AppDatabase.py:1961 +#: FlatCAMDB.py:324 FlatCAMDB.py:1826 msgid "Copy from DB" msgstr "" -#: AppDatabase.py:328 AppDatabase.py:1964 +#: FlatCAMDB.py:326 FlatCAMDB.py:1829 msgid "Delete from DB" msgstr "" -#: AppDatabase.py:605 AppDatabase.py:2198 +#: FlatCAMDB.py:603 FlatCAMDB.py:2044 msgid "Tool added to DB." msgstr "" -#: AppDatabase.py:626 AppDatabase.py:2231 +#: FlatCAMDB.py:624 FlatCAMDB.py:2077 msgid "Tool copied from Tools DB." msgstr "" -#: AppDatabase.py:644 AppDatabase.py:2258 +#: FlatCAMDB.py:642 FlatCAMDB.py:2104 msgid "Tool removed from Tools DB." msgstr "" -#: AppDatabase.py:655 AppDatabase.py:2269 +#: FlatCAMDB.py:653 FlatCAMDB.py:2115 msgid "Export Tools Database" msgstr "" -#: AppDatabase.py:658 AppDatabase.py:2272 +#: FlatCAMDB.py:656 FlatCAMDB.py:2118 msgid "Tools_Database" msgstr "" -#: AppDatabase.py:665 AppDatabase.py:711 AppDatabase.py:2279 AppDatabase.py:2325 -#: AppEditors/FlatCAMExcEditor.py:1023 AppEditors/FlatCAMExcEditor.py:1091 -#: AppEditors/FlatCAMTextEditor.py:223 AppGUI/MainGUI.py:2730 AppGUI/MainGUI.py:2952 -#: AppGUI/MainGUI.py:3167 AppObjects/ObjectCollection.py:127 AppTools/ToolFilm.py:739 -#: AppTools/ToolFilm.py:885 AppTools/ToolImage.py:247 AppTools/ToolMove.py:269 -#: AppTools/ToolPcbWizard.py:301 AppTools/ToolPcbWizard.py:324 AppTools/ToolQRCode.py:800 -#: AppTools/ToolQRCode.py:847 App_Main.py:1710 App_Main.py:2451 App_Main.py:2487 -#: App_Main.py:2534 App_Main.py:4100 App_Main.py:6610 App_Main.py:6649 App_Main.py:6693 -#: App_Main.py:6722 App_Main.py:6763 App_Main.py:6788 App_Main.py:6844 App_Main.py:6880 -#: App_Main.py:6925 App_Main.py:6966 App_Main.py:7008 App_Main.py:7050 App_Main.py:7091 -#: App_Main.py:7135 App_Main.py:7195 App_Main.py:7227 App_Main.py:7259 App_Main.py:7490 -#: App_Main.py:7528 App_Main.py:7571 App_Main.py:7648 App_Main.py:7703 Bookmark.py:300 -#: Bookmark.py:342 -msgid "Cancelled." -msgstr "" - -#: AppDatabase.py:673 AppDatabase.py:2287 AppEditors/FlatCAMTextEditor.py:276 -#: AppObjects/FlatCAMCNCJob.py:959 AppTools/ToolFilm.py:1016 AppTools/ToolFilm.py:1197 -#: AppTools/ToolSolderPaste.py:1542 App_Main.py:2542 App_Main.py:7947 App_Main.py:7995 -#: App_Main.py:8120 App_Main.py:8256 Bookmark.py:308 -msgid "" -"Permission denied, saving not possible.\n" -"Most likely another app is holding the file open and not accessible." -msgstr "" - -#: AppDatabase.py:695 AppDatabase.py:698 AppDatabase.py:750 AppDatabase.py:2309 -#: AppDatabase.py:2312 AppDatabase.py:2365 +#: FlatCAMDB.py:693 FlatCAMDB.py:696 FlatCAMDB.py:748 FlatCAMDB.py:2155 FlatCAMDB.py:2158 +#: FlatCAMDB.py:2211 msgid "Failed to write Tools DB to file." msgstr "" -#: AppDatabase.py:701 AppDatabase.py:2315 +#: FlatCAMDB.py:699 FlatCAMDB.py:2161 msgid "Exported Tools DB to" msgstr "" -#: AppDatabase.py:708 AppDatabase.py:2322 +#: FlatCAMDB.py:706 FlatCAMDB.py:2168 msgid "Import FlatCAM Tools DB" msgstr "" -#: AppDatabase.py:740 AppDatabase.py:915 AppDatabase.py:2354 AppDatabase.py:2624 -#: AppObjects/FlatCAMGeometry.py:956 AppTools/ToolIsolation.py:2909 -#: AppTools/ToolIsolation.py:2994 AppTools/ToolNCC.py:4029 AppTools/ToolNCC.py:4113 -#: AppTools/ToolPaint.py:3578 AppTools/ToolPaint.py:3663 App_Main.py:5233 App_Main.py:5267 -#: App_Main.py:5294 App_Main.py:5314 App_Main.py:5324 -msgid "Tools Database" -msgstr "" - -#: AppDatabase.py:754 AppDatabase.py:2369 +#: FlatCAMDB.py:752 FlatCAMDB.py:2215 msgid "Saved Tools DB." msgstr "" -#: AppDatabase.py:901 AppDatabase.py:2611 +#: FlatCAMDB.py:899 FlatCAMDB.py:2405 msgid "No Tool/row selected in the Tools Database table" msgstr "" -#: AppDatabase.py:919 AppDatabase.py:2628 +#: FlatCAMDB.py:917 FlatCAMDB.py:2422 msgid "Cancelled adding tool from DB." msgstr "" -#: AppDatabase.py:1020 +#: FlatCAMDB.py:1018 msgid "Basic Geo Parameters" msgstr "" -#: AppDatabase.py:1032 +#: FlatCAMDB.py:1030 msgid "Advanced Geo Parameters" msgstr "" -#: AppDatabase.py:1045 +#: FlatCAMDB.py:1042 msgid "NCC Parameters" msgstr "" -#: AppDatabase.py:1058 +#: FlatCAMDB.py:1054 msgid "Paint Parameters" msgstr "" -#: AppDatabase.py:1071 -msgid "Isolation Parameters" -msgstr "" - -#: AppDatabase.py:1204 AppGUI/ObjectUI.py:746 AppGUI/ObjectUI.py:1671 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:186 -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:148 -#: AppTools/ToolSolderPaste.py:249 +#: FlatCAMDB.py:1185 flatcamGUI/ObjectUI.py:967 flatcamGUI/ObjectUI.py:1769 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:185 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:148 +#: flatcamTools/ToolSolderPaste.py:253 msgid "Feedrate X-Y" msgstr "" -#: AppDatabase.py:1206 +#: FlatCAMDB.py:1187 msgid "" "Feedrate X-Y. Feedrate\n" "The speed on XY plane used while cutting into material." msgstr "" -#: AppDatabase.py:1218 AppGUI/ObjectUI.py:761 AppGUI/ObjectUI.py:1685 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:207 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:201 -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:161 -#: AppTools/ToolSolderPaste.py:261 +#: FlatCAMDB.py:1199 flatcamGUI/ObjectUI.py:982 flatcamGUI/ObjectUI.py:1783 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:207 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:200 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:161 +#: flatcamTools/ToolSolderPaste.py:265 msgid "Feedrate Z" msgstr "" -#: AppDatabase.py:1220 +#: FlatCAMDB.py:1201 msgid "" "Feedrate Z\n" "The speed on Z plane." msgstr "" -#: AppDatabase.py:1418 AppGUI/ObjectUI.py:624 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:46 AppTools/ToolNCC.py:341 +#: FlatCAMDB.py:1399 flatcamGUI/ObjectUI.py:845 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:46 flatcamTools/ToolNCC.py:341 msgid "Operation" msgstr "" -#: AppDatabase.py:1420 AppTools/ToolNCC.py:343 +#: FlatCAMDB.py:1401 flatcamTools/ToolNCC.py:343 msgid "" "The 'Operation' can be:\n" "- Isolation -> will ensure that the non-copper clearing is always complete.\n" @@ -564,62 +2041,56 @@ msgid "" "- Clear -> the regular non-copper clearing." msgstr "" -#: AppDatabase.py:1427 AppEditors/FlatCAMGrbEditor.py:2749 AppGUI/GUIElements.py:2754 -#: AppTools/ToolNCC.py:350 +#: FlatCAMDB.py:1408 flatcamEditors/FlatCAMGrbEditor.py:2742 flatcamGUI/GUIElements.py:2577 +#: flatcamTools/ToolNCC.py:350 msgid "Clear" msgstr "" -#: AppDatabase.py:1428 AppTools/ToolNCC.py:351 +#: FlatCAMDB.py:1409 flatcamTools/ToolNCC.py:351 flatcamTools/ToolNCC.py:1623 msgid "Isolation" msgstr "" -#: AppDatabase.py:1436 AppDatabase.py:1682 AppGUI/ObjectUI.py:646 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:62 -#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:56 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:182 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:137 AppTools/ToolIsolation.py:351 -#: AppTools/ToolNCC.py:359 +#: FlatCAMDB.py:1417 flatcamGUI/ObjectUI.py:409 flatcamGUI/ObjectUI.py:867 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:62 +#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:56 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:95 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:137 flatcamTools/ToolNCC.py:359 msgid "Milling Type" msgstr "" -#: AppDatabase.py:1438 AppDatabase.py:1446 AppDatabase.py:1684 AppDatabase.py:1692 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:184 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:192 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:139 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:147 AppTools/ToolIsolation.py:353 -#: AppTools/ToolIsolation.py:361 AppTools/ToolNCC.py:361 AppTools/ToolNCC.py:369 +#: FlatCAMDB.py:1419 FlatCAMDB.py:1427 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:139 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:147 flatcamTools/ToolNCC.py:361 +#: flatcamTools/ToolNCC.py:369 msgid "" "Milling type when the selected tool is of type: 'iso_op':\n" "- climb / best for precision milling and to reduce tool usage\n" "- conventional / useful when there is no backlash compensation" msgstr "" -#: AppDatabase.py:1443 AppDatabase.py:1689 -#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:62 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:189 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:144 AppTools/ToolIsolation.py:358 -#: AppTools/ToolNCC.py:366 +#: FlatCAMDB.py:1424 flatcamGUI/ObjectUI.py:415 +#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:62 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:102 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:144 flatcamTools/ToolNCC.py:366 msgid "Climb" msgstr "" -#: AppDatabase.py:1444 AppDatabase.py:1690 -#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:63 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:190 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:145 AppTools/ToolIsolation.py:359 -#: AppTools/ToolNCC.py:367 +#: FlatCAMDB.py:1425 flatcamGUI/ObjectUI.py:416 +#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:63 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:103 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:145 flatcamTools/ToolNCC.py:367 msgid "Conventional" msgstr "" -#: AppDatabase.py:1456 AppDatabase.py:1565 AppDatabase.py:1667 -#: AppEditors/FlatCAMGeoEditor.py:450 AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:167 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:182 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:163 AppTools/ToolIsolation.py:336 -#: AppTools/ToolNCC.py:382 AppTools/ToolPaint.py:328 +#: FlatCAMDB.py:1437 FlatCAMDB.py:1546 flatcamEditors/FlatCAMGeoEditor.py:451 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:182 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:163 flatcamTools/ToolNCC.py:382 +#: flatcamTools/ToolPaint.py:329 msgid "Overlap" msgstr "" -#: AppDatabase.py:1458 AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:184 -#: AppTools/ToolNCC.py:384 +#: FlatCAMDB.py:1439 flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:184 +#: flatcamTools/ToolNCC.py:384 msgid "" "How much (percentage) of the tool width to overlap each tool pass.\n" "Adjust the value starting with lower values\n" @@ -630,42 +2101,43 @@ msgid "" "due of too many paths." msgstr "" -#: AppDatabase.py:1477 AppDatabase.py:1586 AppEditors/FlatCAMGeoEditor.py:470 -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:72 -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:229 -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:59 -#: AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py:45 -#: AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py:53 -#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:66 -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:115 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:202 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:183 AppTools/ToolCopperThieving.py:115 -#: AppTools/ToolCopperThieving.py:366 AppTools/ToolCorners.py:149 AppTools/ToolCutOut.py:190 -#: AppTools/ToolFiducials.py:175 AppTools/ToolInvertGerber.py:91 -#: AppTools/ToolInvertGerber.py:99 AppTools/ToolNCC.py:403 AppTools/ToolPaint.py:349 +#: FlatCAMDB.py:1458 FlatCAMDB.py:1567 flatcamEditors/FlatCAMGeoEditor.py:471 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:72 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:229 +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:59 +#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:45 +#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:53 +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:115 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:202 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:183 +#: flatcamTools/ToolCopperThieving.py:111 flatcamTools/ToolCopperThieving.py:362 +#: flatcamTools/ToolCutOut.py:190 flatcamTools/ToolFiducials.py:172 +#: flatcamTools/ToolInvertGerber.py:88 flatcamTools/ToolInvertGerber.py:96 +#: flatcamTools/ToolNCC.py:403 flatcamTools/ToolPaint.py:350 msgid "Margin" msgstr "" -#: AppDatabase.py:1479 AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:74 -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:61 -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:125 -#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:68 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:204 AppTools/ToolCopperThieving.py:117 -#: AppTools/ToolCorners.py:151 AppTools/ToolFiducials.py:177 AppTools/ToolNCC.py:405 +#: FlatCAMDB.py:1460 flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:74 +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:61 +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:125 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:204 +#: flatcamTools/ToolCopperThieving.py:113 flatcamTools/ToolFiducials.py:174 +#: flatcamTools/ToolFiducials.py:237 flatcamTools/ToolNCC.py:405 msgid "Bounding box margin." msgstr "" -#: AppDatabase.py:1490 AppDatabase.py:1601 AppEditors/FlatCAMGeoEditor.py:484 -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:105 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:106 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:215 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:198 AppTools/ToolExtractDrills.py:128 -#: AppTools/ToolNCC.py:416 AppTools/ToolPaint.py:364 AppTools/ToolPunchGerber.py:139 +#: FlatCAMDB.py:1471 FlatCAMDB.py:1582 flatcamEditors/FlatCAMGeoEditor.py:485 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:105 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:106 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:215 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:198 +#: flatcamTools/ToolExtractDrills.py:128 flatcamTools/ToolNCC.py:416 +#: flatcamTools/ToolPaint.py:365 flatcamTools/ToolPunchGerber.py:139 msgid "Method" msgstr "" -#: AppDatabase.py:1492 AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:217 -#: AppTools/ToolNCC.py:418 +#: FlatCAMDB.py:1473 flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:217 +#: flatcamTools/ToolNCC.py:418 msgid "" "Algorithm for copper clearing:\n" "- Standard: Fixed step inwards.\n" @@ -673,87 +2145,81 @@ msgid "" "- Line-based: Parallel lines." msgstr "" -#: AppDatabase.py:1500 AppDatabase.py:1615 AppEditors/FlatCAMGeoEditor.py:498 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:230 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217 AppTools/ToolNCC.py:431 -#: AppTools/ToolNCC.py:2232 AppTools/ToolNCC.py:2764 AppTools/ToolNCC.py:2796 -#: AppTools/ToolPaint.py:389 AppTools/ToolPaint.py:1859 +#: FlatCAMDB.py:1481 FlatCAMDB.py:1596 flatcamEditors/FlatCAMGeoEditor.py:499 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:230 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217 flatcamTools/ToolNCC.py:431 +#: flatcamTools/ToolNCC.py:2395 flatcamTools/ToolNCC.py:2424 flatcamTools/ToolNCC.py:2693 +#: flatcamTools/ToolNCC.py:2725 flatcamTools/ToolPaint.py:390 flatcamTools/ToolPaint.py:1834 #: tclCommands/TclCommandCopperClear.py:126 tclCommands/TclCommandCopperClear.py:134 #: tclCommands/TclCommandPaint.py:125 msgid "Standard" msgstr "" -#: AppDatabase.py:1500 AppDatabase.py:1615 AppEditors/FlatCAMGeoEditor.py:498 -#: AppEditors/FlatCAMGeoEditor.py:568 AppEditors/FlatCAMGeoEditor.py:5148 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:230 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217 AppTools/ToolNCC.py:431 -#: AppTools/ToolNCC.py:2243 AppTools/ToolNCC.py:2770 AppTools/ToolNCC.py:2802 -#: AppTools/ToolPaint.py:389 AppTools/ToolPaint.py:1873 defaults.py:413 defaults.py:445 +#: FlatCAMDB.py:1481 FlatCAMDB.py:1596 defaults.py:395 defaults.py:427 +#: flatcamEditors/FlatCAMGeoEditor.py:499 flatcamEditors/FlatCAMGeoEditor.py:569 +#: flatcamEditors/FlatCAMGeoEditor.py:5152 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:230 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217 flatcamTools/ToolNCC.py:431 +#: flatcamTools/ToolNCC.py:2401 flatcamTools/ToolNCC.py:2429 flatcamTools/ToolNCC.py:2699 +#: flatcamTools/ToolNCC.py:2731 flatcamTools/ToolPaint.py:390 flatcamTools/ToolPaint.py:1848 #: tclCommands/TclCommandCopperClear.py:128 tclCommands/TclCommandCopperClear.py:136 #: tclCommands/TclCommandPaint.py:127 msgid "Seed" msgstr "" -#: AppDatabase.py:1500 AppDatabase.py:1615 AppEditors/FlatCAMGeoEditor.py:498 -#: AppEditors/FlatCAMGeoEditor.py:5152 AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:230 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217 AppTools/ToolNCC.py:431 -#: AppTools/ToolNCC.py:2254 AppTools/ToolPaint.py:389 AppTools/ToolPaint.py:698 -#: AppTools/ToolPaint.py:1887 tclCommands/TclCommandCopperClear.py:130 +#: FlatCAMDB.py:1481 FlatCAMDB.py:1596 flatcamEditors/FlatCAMGeoEditor.py:499 +#: flatcamEditors/FlatCAMGeoEditor.py:5156 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:230 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217 flatcamTools/ToolNCC.py:431 +#: flatcamTools/ToolPaint.py:390 flatcamTools/ToolPaint.py:699 +#: flatcamTools/ToolPaint.py:1862 tclCommands/TclCommandCopperClear.py:130 #: tclCommands/TclCommandPaint.py:129 msgid "Lines" msgstr "" -#: AppDatabase.py:1500 AppDatabase.py:1615 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:230 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217 AppTools/ToolNCC.py:431 -#: AppTools/ToolNCC.py:2265 AppTools/ToolPaint.py:389 AppTools/ToolPaint.py:2052 -#: tclCommands/TclCommandPaint.py:133 -msgid "Combo" -msgstr "" - -#: AppDatabase.py:1508 AppDatabase.py:1626 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:237 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:224 AppTools/ToolNCC.py:439 -#: AppTools/ToolPaint.py:400 +#: FlatCAMDB.py:1489 FlatCAMDB.py:1607 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:237 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:224 flatcamTools/ToolNCC.py:439 +#: flatcamTools/ToolPaint.py:401 msgid "Connect" msgstr "" -#: AppDatabase.py:1512 AppDatabase.py:1629 AppEditors/FlatCAMGeoEditor.py:507 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:239 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:226 AppTools/ToolNCC.py:443 -#: AppTools/ToolPaint.py:403 +#: FlatCAMDB.py:1493 FlatCAMDB.py:1610 flatcamEditors/FlatCAMGeoEditor.py:508 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:239 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:226 flatcamTools/ToolNCC.py:443 +#: flatcamTools/ToolPaint.py:404 msgid "" "Draw lines between resulting\n" "segments to minimize tool lifts." msgstr "" -#: AppDatabase.py:1518 AppDatabase.py:1633 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:246 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:232 AppTools/ToolNCC.py:449 -#: AppTools/ToolPaint.py:407 +#: FlatCAMDB.py:1499 FlatCAMDB.py:1614 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:246 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:232 flatcamTools/ToolNCC.py:449 +#: flatcamTools/ToolPaint.py:408 msgid "Contour" msgstr "" -#: AppDatabase.py:1522 AppDatabase.py:1636 AppEditors/FlatCAMGeoEditor.py:517 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:248 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:234 AppTools/ToolNCC.py:453 -#: AppTools/ToolPaint.py:410 +#: FlatCAMDB.py:1503 FlatCAMDB.py:1617 flatcamEditors/FlatCAMGeoEditor.py:518 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:248 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:234 flatcamTools/ToolNCC.py:453 +#: flatcamTools/ToolPaint.py:411 msgid "" "Cut around the perimeter of the polygon\n" "to trim rough edges." msgstr "" -#: AppDatabase.py:1528 AppEditors/FlatCAMGeoEditor.py:611 -#: AppEditors/FlatCAMGrbEditor.py:5305 AppGUI/ObjectUI.py:143 AppGUI/ObjectUI.py:1394 -#: AppGUI/ObjectUI.py:2256 AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:255 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:142 -#: AppTools/ToolEtchCompensation.py:199 AppTools/ToolEtchCompensation.py:207 -#: AppTools/ToolNCC.py:459 AppTools/ToolTransform.py:28 +#: FlatCAMDB.py:1509 flatcamEditors/FlatCAMGeoEditor.py:612 +#: flatcamEditors/FlatCAMGrbEditor.py:5311 flatcamGUI/ObjectUI.py:143 +#: flatcamGUI/ObjectUI.py:1497 flatcamGUI/ObjectUI.py:2326 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:255 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:142 flatcamTools/ToolNCC.py:459 +#: flatcamTools/ToolTransform.py:28 msgid "Offset" msgstr "" -#: AppDatabase.py:1532 AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:257 -#: AppTools/ToolNCC.py:463 +#: FlatCAMDB.py:1513 flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:257 +#: flatcamTools/ToolNCC.py:463 msgid "" "If used, it will add an offset to the copper features.\n" "The copper clearing will finish to a distance\n" @@ -761,8 +2227,8 @@ msgid "" "The value can be between 0 and 10 FlatCAM units." msgstr "" -#: AppDatabase.py:1567 AppEditors/FlatCAMGeoEditor.py:452 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:165 AppTools/ToolPaint.py:330 +#: FlatCAMDB.py:1548 flatcamEditors/FlatCAMGeoEditor.py:453 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:165 flatcamTools/ToolPaint.py:331 msgid "" "How much (percentage) of the tool width to overlap each tool pass.\n" "Adjust the value starting with lower values\n" @@ -773,16 +2239,16 @@ msgid "" "due of too many paths." msgstr "" -#: AppDatabase.py:1588 AppEditors/FlatCAMGeoEditor.py:472 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:185 AppTools/ToolPaint.py:351 +#: FlatCAMDB.py:1569 flatcamEditors/FlatCAMGeoEditor.py:473 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:185 flatcamTools/ToolPaint.py:352 msgid "" "Distance by which to avoid\n" "the edges of the polygon to\n" "be painted." msgstr "" -#: AppDatabase.py:1603 AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:200 -#: AppTools/ToolPaint.py:366 +#: FlatCAMDB.py:1584 flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:200 +#: flatcamTools/ToolPaint.py:367 msgid "" "Algorithm for painting:\n" "- Standard: Fixed step inwards.\n" @@ -794,354 +2260,548 @@ msgid "" "in the order specified." msgstr "" -#: AppDatabase.py:1615 AppDatabase.py:1617 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217 AppTools/ToolPaint.py:389 -#: AppTools/ToolPaint.py:391 AppTools/ToolPaint.py:692 AppTools/ToolPaint.py:697 -#: AppTools/ToolPaint.py:1901 tclCommands/TclCommandPaint.py:131 +#: FlatCAMDB.py:1596 FlatCAMDB.py:1598 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217 flatcamTools/ToolPaint.py:390 +#: flatcamTools/ToolPaint.py:392 flatcamTools/ToolPaint.py:693 flatcamTools/ToolPaint.py:698 +#: flatcamTools/ToolPaint.py:1876 tclCommands/TclCommandPaint.py:131 msgid "Laser_lines" msgstr "" -#: AppDatabase.py:1654 AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:154 -#: AppTools/ToolIsolation.py:323 -msgid "Passes" +#: FlatCAMDB.py:1596 flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217 +#: flatcamTools/ToolPaint.py:390 flatcamTools/ToolPaint.py:2027 +#: tclCommands/TclCommandPaint.py:133 +msgid "Combo" msgstr "" -#: AppDatabase.py:1656 AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:156 -#: AppTools/ToolIsolation.py:325 -msgid "" -"Width of the isolation gap in\n" -"number (integer) of tool widths." -msgstr "" - -#: AppDatabase.py:1669 AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:169 -#: AppTools/ToolIsolation.py:338 -msgid "How much (percentage) of the tool width to overlap each tool pass." -msgstr "" - -#: AppDatabase.py:1702 AppGUI/ObjectUI.py:236 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:201 AppTools/ToolIsolation.py:371 -msgid "Follow" -msgstr "" - -#: AppDatabase.py:1704 AppDatabase.py:1710 AppGUI/ObjectUI.py:237 -#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:45 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:203 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:209 AppTools/ToolIsolation.py:373 -#: AppTools/ToolIsolation.py:379 -msgid "" -"Generate a 'Follow' geometry.\n" -"This means that it will cut through\n" -"the middle of the trace." -msgstr "" - -#: AppDatabase.py:1719 AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:218 -#: AppTools/ToolIsolation.py:388 -msgid "Isolation Type" -msgstr "" - -#: AppDatabase.py:1721 AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:220 -#: AppTools/ToolIsolation.py:390 -msgid "" -"Choose how the isolation will be executed:\n" -"- 'Full' -> complete isolation of polygons\n" -"- 'Ext' -> will isolate only on the outside\n" -"- 'Int' -> will isolate only on the inside\n" -"'Exterior' isolation is almost always possible\n" -"(with the right tool) but 'Interior'\n" -"isolation can be done only when there is an opening\n" -"inside of the polygon (e.g polygon is a 'doughnut' shape)." -msgstr "" - -#: AppDatabase.py:1730 AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:75 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:229 AppTools/ToolIsolation.py:399 -msgid "Full" -msgstr "" - -#: AppDatabase.py:1731 AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:230 -#: AppTools/ToolIsolation.py:400 -msgid "Ext" -msgstr "" - -#: AppDatabase.py:1732 AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:231 -#: AppTools/ToolIsolation.py:401 -msgid "Int" -msgstr "" - -#: AppDatabase.py:1755 +#: FlatCAMDB.py:1641 msgid "Add Tool in DB" msgstr "" -#: AppDatabase.py:1789 +#: FlatCAMDB.py:1675 msgid "Save DB" msgstr "" -#: AppDatabase.py:1791 +#: FlatCAMDB.py:1677 msgid "Save the Tools Database information's." msgstr "" -#: AppDatabase.py:1797 -msgid "" -"Insert a new tool in the Tools Table of the\n" -"object/application tool after selecting a tool\n" -"in the Tools Database." +#: FlatCAMProcess.py:172 +msgid "processes running." msgstr "" -#: AppEditors/FlatCAMExcEditor.py:50 AppEditors/FlatCAMExcEditor.py:74 -#: AppEditors/FlatCAMExcEditor.py:168 AppEditors/FlatCAMExcEditor.py:385 -#: AppEditors/FlatCAMExcEditor.py:589 AppEditors/FlatCAMGrbEditor.py:241 -#: AppEditors/FlatCAMGrbEditor.py:248 +#: FlatCAMTool.py:245 FlatCAMTool.py:252 flatcamGUI/ObjectUI.py:157 +#: flatcamGUI/ObjectUI.py:164 +msgid "Edited value is out of range" +msgstr "" + +#: FlatCAMTool.py:247 FlatCAMTool.py:254 flatcamGUI/ObjectUI.py:159 +#: flatcamGUI/ObjectUI.py:166 +msgid "Edited value is within limits." +msgstr "" + +#: FlatCAMTranslation.py:104 +msgid "The application will restart." +msgstr "" + +#: FlatCAMTranslation.py:106 +msgid "Are you sure do you want to change the current language to" +msgstr "" + +#: FlatCAMTranslation.py:107 +msgid "Apply Language ..." +msgstr "" + +#: assets/linux/flatcam-beta.desktop:3 +msgid "FlatCAM Beta" +msgstr "" + +#: assets/linux/flatcam-beta.desktop:7 +msgid "./assets/icon.png" +msgstr "" + +#: assets/linux/flatcam-beta.desktop:8 +msgid "G-Code from GERBERS" +msgstr "" + +#: camlib.py:597 +msgid "self.solid_geometry is neither BaseGeometry or list." +msgstr "" + +#: camlib.py:970 +msgid "Pass" +msgstr "" + +#: camlib.py:981 flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:146 +#: flatcamObjects/FlatCAMGerber.py:497 flatcamTools/ToolCopperThieving.py:1016 +#: flatcamTools/ToolCopperThieving.py:1205 flatcamTools/ToolCopperThieving.py:1217 +#: flatcamTools/ToolNCC.py:2050 flatcamTools/ToolNCC.py:2158 flatcamTools/ToolNCC.py:2172 +#: flatcamTools/ToolNCC.py:3103 flatcamTools/ToolNCC.py:3208 flatcamTools/ToolNCC.py:3223 +#: flatcamTools/ToolNCC.py:3489 flatcamTools/ToolNCC.py:3590 flatcamTools/ToolNCC.py:3605 +msgid "Buffering" +msgstr "" + +#: camlib.py:990 +msgid "Get Exteriors" +msgstr "" + +#: camlib.py:993 +msgid "Get Interiors" +msgstr "" + +#: camlib.py:2172 +msgid "Object was mirrored" +msgstr "" + +#: camlib.py:2174 +msgid "Failed to mirror. No object selected" +msgstr "" + +#: camlib.py:2239 +msgid "Object was rotated" +msgstr "" + +#: camlib.py:2241 +msgid "Failed to rotate. No object selected" +msgstr "" + +#: camlib.py:2307 +msgid "Object was skewed" +msgstr "" + +#: camlib.py:2309 +msgid "Failed to skew. No object selected" +msgstr "" + +#: camlib.py:2385 +msgid "Object was buffered" +msgstr "" + +#: camlib.py:2387 +msgid "Failed to buffer. No object selected" +msgstr "" + +#: camlib.py:2594 +msgid "There is no such parameter" +msgstr "" + +#: camlib.py:2654 camlib.py:2887 camlib.py:3116 camlib.py:3338 +msgid "" +"The Cut Z parameter has positive value. It is the depth value to drill into material.\n" +"The Cut Z parameter needs to have a negative value, assuming it is a typo therefore the " +"app will convert the value to negative. Check the resulting CNC code (Gcode etc)." +msgstr "" + +#: camlib.py:2662 camlib.py:2897 camlib.py:3126 camlib.py:3348 camlib.py:3631 camlib.py:4017 +msgid "The Cut Z parameter is zero. There will be no cut, skipping file" +msgstr "" + +#: camlib.py:2673 camlib.py:3985 +msgid "" +"The Toolchange X,Y field in Edit -> Preferences has to be in the format (x, y) \n" +"but now there is only one value, not two. " +msgstr "" + +#: camlib.py:2682 camlib.py:3582 camlib.py:3967 +msgid "" +"The End Move X,Y field in Edit -> Preferences has to be in the format (x, y) but now " +"there is only one value, not two." +msgstr "" + +#: camlib.py:2770 +msgid "Creating a list of points to drill..." +msgstr "" + +#: camlib.py:2860 camlib.py:3729 camlib.py:4121 +msgid "Starting G-Code" +msgstr "" + +#: camlib.py:3001 camlib.py:3220 camlib.py:3384 camlib.py:3742 camlib.py:4132 +msgid "Starting G-Code for tool with diameter" +msgstr "" + +#: camlib.py:3084 camlib.py:3302 camlib.py:3470 +msgid "G91 coordinates not implemented" +msgstr "" + +#: camlib.py:3090 camlib.py:3309 camlib.py:3475 +msgid "The loaded Excellon file has no drills" +msgstr "" + +#: camlib.py:3498 +msgid "Finished G-Code generation..." +msgstr "" + +#: camlib.py:3600 +msgid "" +"The Toolchange X,Y field in Edit -> Preferences has to be in the format (x, y) \n" +"but now there is only one value, not two." +msgstr "" + +#: camlib.py:3614 camlib.py:4000 +msgid "Cut_Z parameter is None or zero. Most likely a bad combinations of other parameters." +msgstr "" + +#: camlib.py:3623 camlib.py:4009 +msgid "" +"The Cut Z parameter has positive value. It is the depth value to cut into material.\n" +"The Cut Z parameter needs to have a negative value, assuming it is a typo therefore the " +"app will convert the value to negative.Check the resulting CNC code (Gcode etc)." +msgstr "" + +#: camlib.py:3636 camlib.py:4023 +msgid "Travel Z parameter is None or zero." +msgstr "" + +#: camlib.py:3641 camlib.py:4028 +msgid "" +"The Travel Z parameter has negative value. It is the height value to travel between " +"cuts.\n" +"The Z Travel parameter needs to have a positive value, assuming it is a typo therefore " +"the app will convert the value to positive.Check the resulting CNC code (Gcode etc)." +msgstr "" + +#: camlib.py:3649 camlib.py:4036 +msgid "The Z Travel parameter is zero. This is dangerous, skipping file" +msgstr "" + +#: camlib.py:3668 camlib.py:4059 +msgid "Indexing geometry before generating G-Code..." +msgstr "" + +#: camlib.py:3812 camlib.py:4201 +msgid "Finished G-Code generation" +msgstr "" + +#: camlib.py:3812 +msgid "paths traced" +msgstr "" + +#: camlib.py:3862 +msgid "Expected a Geometry, got" +msgstr "" + +#: camlib.py:3869 +msgid "Trying to generate a CNC Job from a Geometry object without solid_geometry." +msgstr "" + +#: camlib.py:3910 +msgid "" +"The Tool Offset value is too negative to use for the current_geometry.\n" +"Raise the value (in module) and try again." +msgstr "" + +#: camlib.py:4201 +msgid " paths traced." +msgstr "" + +#: camlib.py:4229 +msgid "There is no tool data in the SolderPaste geometry." +msgstr "" + +#: camlib.py:4318 +msgid "Finished SolderPaste G-Code generation" +msgstr "" + +#: camlib.py:4318 +msgid "paths traced." +msgstr "" + +#: camlib.py:4578 +msgid "Parsing GCode file. Number of lines" +msgstr "" + +#: camlib.py:4685 +msgid "Creating Geometry from the parsed GCode file. " +msgstr "" + +#: camlib.py:4828 camlib.py:5118 camlib.py:5229 camlib.py:5385 +msgid "G91 coordinates not implemented ..." +msgstr "" + +#: camlib.py:4960 +msgid "Unifying Geometry from parsed Geometry segments" +msgstr "" + +#: defaults.py:401 flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:86 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309 +#: flatcamTools/ToolCopperThieving.py:125 flatcamTools/ToolNCC.py:535 +#: flatcamTools/ToolNCC.py:1306 flatcamTools/ToolNCC.py:1634 flatcamTools/ToolNCC.py:1919 +#: flatcamTools/ToolNCC.py:1983 flatcamTools/ToolNCC.py:2967 flatcamTools/ToolNCC.py:2976 +#: tclCommands/TclCommandCopperClear.py:190 +msgid "Itself" +msgstr "" + +#: defaults.py:428 flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280 +#: flatcamTools/ToolPaint.py:486 flatcamTools/ToolPaint.py:1427 +#: tclCommands/TclCommandPaint.py:162 +msgid "All Polygons" +msgstr "" + +#: defaults.py:739 +msgid "Could not load defaults file." +msgstr "" + +#: defaults.py:752 +msgid "Failed to parse defaults file." +msgstr "" + +#: flatcamEditors/FlatCAMExcEditor.py:50 flatcamEditors/FlatCAMExcEditor.py:74 +#: flatcamEditors/FlatCAMExcEditor.py:168 flatcamEditors/FlatCAMExcEditor.py:385 +#: flatcamEditors/FlatCAMExcEditor.py:589 flatcamEditors/FlatCAMGrbEditor.py:243 +#: flatcamEditors/FlatCAMGrbEditor.py:250 msgid "Click to place ..." msgstr "" -#: AppEditors/FlatCAMExcEditor.py:58 +#: flatcamEditors/FlatCAMExcEditor.py:58 msgid "To add a drill first select a tool" msgstr "" -#: AppEditors/FlatCAMExcEditor.py:122 +#: flatcamEditors/FlatCAMExcEditor.py:122 msgid "Done. Drill added." msgstr "" -#: AppEditors/FlatCAMExcEditor.py:176 +#: flatcamEditors/FlatCAMExcEditor.py:176 msgid "To add an Drill Array first select a tool in Tool Table" msgstr "" -#: AppEditors/FlatCAMExcEditor.py:192 AppEditors/FlatCAMExcEditor.py:415 -#: AppEditors/FlatCAMExcEditor.py:636 AppEditors/FlatCAMExcEditor.py:1151 -#: AppEditors/FlatCAMExcEditor.py:1178 AppEditors/FlatCAMGrbEditor.py:471 -#: AppEditors/FlatCAMGrbEditor.py:1944 AppEditors/FlatCAMGrbEditor.py:1974 +#: flatcamEditors/FlatCAMExcEditor.py:192 flatcamEditors/FlatCAMExcEditor.py:415 +#: flatcamEditors/FlatCAMExcEditor.py:636 flatcamEditors/FlatCAMExcEditor.py:1151 +#: flatcamEditors/FlatCAMExcEditor.py:1178 flatcamEditors/FlatCAMGrbEditor.py:473 +#: flatcamEditors/FlatCAMGrbEditor.py:1937 flatcamEditors/FlatCAMGrbEditor.py:1967 msgid "Click on target location ..." msgstr "" -#: AppEditors/FlatCAMExcEditor.py:211 +#: flatcamEditors/FlatCAMExcEditor.py:211 msgid "Click on the Drill Circular Array Start position" msgstr "" -#: AppEditors/FlatCAMExcEditor.py:233 AppEditors/FlatCAMExcEditor.py:677 -#: AppEditors/FlatCAMGrbEditor.py:516 +#: flatcamEditors/FlatCAMExcEditor.py:233 flatcamEditors/FlatCAMExcEditor.py:677 +#: flatcamEditors/FlatCAMGrbEditor.py:518 msgid "The value is not Float. Check for comma instead of dot separator." msgstr "" -#: AppEditors/FlatCAMExcEditor.py:237 +#: flatcamEditors/FlatCAMExcEditor.py:237 msgid "The value is mistyped. Check the value" msgstr "" -#: AppEditors/FlatCAMExcEditor.py:336 +#: flatcamEditors/FlatCAMExcEditor.py:336 msgid "Too many drills for the selected spacing angle." msgstr "" -#: AppEditors/FlatCAMExcEditor.py:354 +#: flatcamEditors/FlatCAMExcEditor.py:354 msgid "Done. Drill Array added." msgstr "" -#: AppEditors/FlatCAMExcEditor.py:394 +#: flatcamEditors/FlatCAMExcEditor.py:394 msgid "To add a slot first select a tool" msgstr "" -#: AppEditors/FlatCAMExcEditor.py:454 AppEditors/FlatCAMExcEditor.py:461 -#: AppEditors/FlatCAMExcEditor.py:742 AppEditors/FlatCAMExcEditor.py:749 +#: flatcamEditors/FlatCAMExcEditor.py:454 flatcamEditors/FlatCAMExcEditor.py:461 +#: flatcamEditors/FlatCAMExcEditor.py:742 flatcamEditors/FlatCAMExcEditor.py:749 msgid "Value is missing or wrong format. Add it and retry." msgstr "" -#: AppEditors/FlatCAMExcEditor.py:559 +#: flatcamEditors/FlatCAMExcEditor.py:559 msgid "Done. Adding Slot completed." msgstr "" -#: AppEditors/FlatCAMExcEditor.py:597 +#: flatcamEditors/FlatCAMExcEditor.py:597 msgid "To add an Slot Array first select a tool in Tool Table" msgstr "" -#: AppEditors/FlatCAMExcEditor.py:655 +#: flatcamEditors/FlatCAMExcEditor.py:655 msgid "Click on the Slot Circular Array Start position" msgstr "" -#: AppEditors/FlatCAMExcEditor.py:680 AppEditors/FlatCAMGrbEditor.py:519 +#: flatcamEditors/FlatCAMExcEditor.py:680 flatcamEditors/FlatCAMGrbEditor.py:521 msgid "The value is mistyped. Check the value." msgstr "" -#: AppEditors/FlatCAMExcEditor.py:859 +#: flatcamEditors/FlatCAMExcEditor.py:859 msgid "Too many Slots for the selected spacing angle." msgstr "" -#: AppEditors/FlatCAMExcEditor.py:882 +#: flatcamEditors/FlatCAMExcEditor.py:882 msgid "Done. Slot Array added." msgstr "" -#: AppEditors/FlatCAMExcEditor.py:904 +#: flatcamEditors/FlatCAMExcEditor.py:904 msgid "Click on the Drill(s) to resize ..." msgstr "" -#: AppEditors/FlatCAMExcEditor.py:934 +#: flatcamEditors/FlatCAMExcEditor.py:934 msgid "Resize drill(s) failed. Please enter a diameter for resize." msgstr "" -#: AppEditors/FlatCAMExcEditor.py:1112 +#: flatcamEditors/FlatCAMExcEditor.py:1112 msgid "Done. Drill/Slot Resize completed." msgstr "" -#: AppEditors/FlatCAMExcEditor.py:1115 +#: flatcamEditors/FlatCAMExcEditor.py:1115 msgid "Cancelled. No drills/slots selected for resize ..." msgstr "" -#: AppEditors/FlatCAMExcEditor.py:1153 AppEditors/FlatCAMGrbEditor.py:1946 +#: flatcamEditors/FlatCAMExcEditor.py:1153 flatcamEditors/FlatCAMGrbEditor.py:1939 msgid "Click on reference location ..." msgstr "" -#: AppEditors/FlatCAMExcEditor.py:1210 +#: flatcamEditors/FlatCAMExcEditor.py:1210 msgid "Done. Drill(s) Move completed." msgstr "" -#: AppEditors/FlatCAMExcEditor.py:1318 +#: flatcamEditors/FlatCAMExcEditor.py:1318 msgid "Done. Drill(s) copied." msgstr "" -#: AppEditors/FlatCAMExcEditor.py:1557 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:26 +#: flatcamEditors/FlatCAMExcEditor.py:1557 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:26 msgid "Excellon Editor" msgstr "" -#: AppEditors/FlatCAMExcEditor.py:1564 AppEditors/FlatCAMGrbEditor.py:2469 +#: flatcamEditors/FlatCAMExcEditor.py:1564 flatcamEditors/FlatCAMGrbEditor.py:2462 msgid "Name:" msgstr "" -#: AppEditors/FlatCAMExcEditor.py:1570 AppGUI/ObjectUI.py:540 AppGUI/ObjectUI.py:1362 -#: AppTools/ToolIsolation.py:118 AppTools/ToolNCC.py:120 AppTools/ToolPaint.py:114 -#: AppTools/ToolSolderPaste.py:79 +#: flatcamEditors/FlatCAMExcEditor.py:1570 flatcamGUI/ObjectUI.py:761 +#: flatcamGUI/ObjectUI.py:1465 flatcamTools/ToolNCC.py:120 flatcamTools/ToolPaint.py:115 +#: flatcamTools/ToolSolderPaste.py:74 msgid "Tools Table" msgstr "" -#: AppEditors/FlatCAMExcEditor.py:1572 AppGUI/ObjectUI.py:542 +#: flatcamEditors/FlatCAMExcEditor.py:1572 flatcamGUI/ObjectUI.py:763 msgid "" "Tools in this Excellon object\n" "when are used for drilling." msgstr "" -#: AppEditors/FlatCAMExcEditor.py:1584 AppEditors/FlatCAMExcEditor.py:3041 -#: AppGUI/ObjectUI.py:560 AppObjects/FlatCAMExcellon.py:1265 -#: AppObjects/FlatCAMExcellon.py:1368 AppObjects/FlatCAMExcellon.py:1553 -#: AppTools/ToolIsolation.py:130 AppTools/ToolNCC.py:132 AppTools/ToolPaint.py:127 -#: AppTools/ToolPcbWizard.py:76 AppTools/ToolProperties.py:416 -#: AppTools/ToolProperties.py:476 AppTools/ToolSolderPaste.py:90 -#: tclCommands/TclCommandDrillcncjob.py:195 +#: flatcamEditors/FlatCAMExcEditor.py:1584 flatcamEditors/FlatCAMExcEditor.py:3066 +#: flatcamGUI/ObjectUI.py:781 flatcamObjects/FlatCAMExcellon.py:1098 +#: flatcamObjects/FlatCAMExcellon.py:1188 flatcamObjects/FlatCAMExcellon.py:1373 +#: flatcamTools/ToolNCC.py:132 flatcamTools/ToolPaint.py:128 +#: flatcamTools/ToolPcbWizard.py:76 flatcamTools/ToolProperties.py:416 +#: flatcamTools/ToolProperties.py:476 flatcamTools/ToolSolderPaste.py:85 +#: tclCommands/TclCommandDrillcncjob.py:193 msgid "Diameter" msgstr "" -#: AppEditors/FlatCAMExcEditor.py:1592 +#: flatcamEditors/FlatCAMExcEditor.py:1592 msgid "Add/Delete Tool" msgstr "" -#: AppEditors/FlatCAMExcEditor.py:1594 +#: flatcamEditors/FlatCAMExcEditor.py:1594 msgid "" "Add/Delete a tool to the tool list\n" "for this Excellon object." msgstr "" -#: AppEditors/FlatCAMExcEditor.py:1606 AppGUI/ObjectUI.py:1482 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:57 +#: flatcamEditors/FlatCAMExcEditor.py:1606 flatcamGUI/ObjectUI.py:1585 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:57 msgid "Diameter for the new tool" msgstr "" -#: AppEditors/FlatCAMExcEditor.py:1616 +#: flatcamEditors/FlatCAMExcEditor.py:1616 msgid "Add Tool" msgstr "" -#: AppEditors/FlatCAMExcEditor.py:1618 +#: flatcamEditors/FlatCAMExcEditor.py:1618 msgid "" "Add a new tool to the tool list\n" "with the diameter specified above." msgstr "" -#: AppEditors/FlatCAMExcEditor.py:1630 +#: flatcamEditors/FlatCAMExcEditor.py:1630 msgid "Delete Tool" msgstr "" -#: AppEditors/FlatCAMExcEditor.py:1632 +#: flatcamEditors/FlatCAMExcEditor.py:1632 msgid "" "Delete a tool in the tool list\n" "by selecting a row in the tool table." msgstr "" -#: AppEditors/FlatCAMExcEditor.py:1650 AppGUI/MainGUI.py:4392 +#: flatcamEditors/FlatCAMExcEditor.py:1650 flatcamGUI/FlatCAMGUI.py:2019 msgid "Resize Drill(s)" msgstr "" -#: AppEditors/FlatCAMExcEditor.py:1652 +#: flatcamEditors/FlatCAMExcEditor.py:1652 msgid "Resize a drill or a selection of drills." msgstr "" -#: AppEditors/FlatCAMExcEditor.py:1659 +#: flatcamEditors/FlatCAMExcEditor.py:1659 msgid "Resize Dia" msgstr "" -#: AppEditors/FlatCAMExcEditor.py:1661 +#: flatcamEditors/FlatCAMExcEditor.py:1661 msgid "Diameter to resize to." msgstr "" -#: AppEditors/FlatCAMExcEditor.py:1672 +#: flatcamEditors/FlatCAMExcEditor.py:1672 msgid "Resize" msgstr "" -#: AppEditors/FlatCAMExcEditor.py:1674 +#: flatcamEditors/FlatCAMExcEditor.py:1674 msgid "Resize drill(s)" msgstr "" -#: AppEditors/FlatCAMExcEditor.py:1699 AppGUI/MainGUI.py:1514 AppGUI/MainGUI.py:4391 +#: flatcamEditors/FlatCAMExcEditor.py:1699 flatcamGUI/FlatCAMGUI.py:2018 +#: flatcamGUI/FlatCAMGUI.py:2270 msgid "Add Drill Array" msgstr "" -#: AppEditors/FlatCAMExcEditor.py:1701 +#: flatcamEditors/FlatCAMExcEditor.py:1701 msgid "Add an array of drills (linear or circular array)" msgstr "" -#: AppEditors/FlatCAMExcEditor.py:1707 +#: flatcamEditors/FlatCAMExcEditor.py:1707 msgid "" "Select the type of drills array to create.\n" "It can be Linear X(Y) or Circular" msgstr "" -#: AppEditors/FlatCAMExcEditor.py:1710 AppEditors/FlatCAMExcEditor.py:1924 -#: AppEditors/FlatCAMGrbEditor.py:2782 +#: flatcamEditors/FlatCAMExcEditor.py:1710 flatcamEditors/FlatCAMExcEditor.py:1924 +#: flatcamEditors/FlatCAMGrbEditor.py:2775 msgid "Linear" msgstr "" -#: AppEditors/FlatCAMExcEditor.py:1711 AppEditors/FlatCAMExcEditor.py:1925 -#: AppEditors/FlatCAMGrbEditor.py:2783 -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:52 -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:149 -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:107 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:52 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:151 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:78 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:61 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:70 AppTools/ToolExtractDrills.py:78 -#: AppTools/ToolExtractDrills.py:201 AppTools/ToolFiducials.py:223 -#: AppTools/ToolIsolation.py:207 AppTools/ToolNCC.py:221 AppTools/ToolPaint.py:203 -#: AppTools/ToolPunchGerber.py:89 AppTools/ToolPunchGerber.py:229 +#: flatcamEditors/FlatCAMExcEditor.py:1711 flatcamEditors/FlatCAMExcEditor.py:1925 +#: flatcamEditors/FlatCAMGrbEditor.py:2776 flatcamGUI/ObjectUI.py:316 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:52 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:149 +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:107 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:52 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:151 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:61 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:70 +#: flatcamTools/ToolExtractDrills.py:78 flatcamTools/ToolExtractDrills.py:201 +#: flatcamTools/ToolFiducials.py:220 flatcamTools/ToolNCC.py:221 +#: flatcamTools/ToolPaint.py:204 flatcamTools/ToolPunchGerber.py:89 +#: flatcamTools/ToolPunchGerber.py:229 msgid "Circular" msgstr "" -#: AppEditors/FlatCAMExcEditor.py:1719 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:68 +#: flatcamEditors/FlatCAMExcEditor.py:1719 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:68 msgid "Nr of drills" msgstr "" -#: AppEditors/FlatCAMExcEditor.py:1720 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:70 +#: flatcamEditors/FlatCAMExcEditor.py:1720 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:70 msgid "Specify how many drills to be in the array." msgstr "" -#: AppEditors/FlatCAMExcEditor.py:1738 AppEditors/FlatCAMExcEditor.py:1788 -#: AppEditors/FlatCAMExcEditor.py:1860 AppEditors/FlatCAMExcEditor.py:1953 -#: AppEditors/FlatCAMExcEditor.py:2004 AppEditors/FlatCAMGrbEditor.py:1580 -#: AppEditors/FlatCAMGrbEditor.py:2811 AppEditors/FlatCAMGrbEditor.py:2860 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:178 +#: flatcamEditors/FlatCAMExcEditor.py:1738 flatcamEditors/FlatCAMExcEditor.py:1788 +#: flatcamEditors/FlatCAMExcEditor.py:1860 flatcamEditors/FlatCAMExcEditor.py:1953 +#: flatcamEditors/FlatCAMExcEditor.py:2004 flatcamEditors/FlatCAMGrbEditor.py:1573 +#: flatcamEditors/FlatCAMGrbEditor.py:2804 flatcamEditors/FlatCAMGrbEditor.py:2853 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:178 msgid "Direction" msgstr "" -#: AppEditors/FlatCAMExcEditor.py:1740 AppEditors/FlatCAMExcEditor.py:1955 -#: AppEditors/FlatCAMGrbEditor.py:2813 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:86 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:234 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:123 +#: flatcamEditors/FlatCAMExcEditor.py:1740 flatcamEditors/FlatCAMExcEditor.py:1955 +#: flatcamEditors/FlatCAMGrbEditor.py:2806 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:86 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:234 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:122 msgid "" "Direction on which the linear array is oriented:\n" "- 'X' - horizontal axis \n" @@ -1149,62 +2809,63 @@ msgid "" "- 'Angle' - a custom angle for the array inclination" msgstr "" -#: AppEditors/FlatCAMExcEditor.py:1747 AppEditors/FlatCAMExcEditor.py:1869 -#: AppEditors/FlatCAMExcEditor.py:1962 AppEditors/FlatCAMGrbEditor.py:2820 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:92 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:187 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:240 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:129 -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:197 AppTools/ToolFilm.py:239 +#: flatcamEditors/FlatCAMExcEditor.py:1747 flatcamEditors/FlatCAMExcEditor.py:1869 +#: flatcamEditors/FlatCAMExcEditor.py:1962 flatcamEditors/FlatCAMGrbEditor.py:2813 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:92 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:187 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:240 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:128 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:208 flatcamTools/ToolFilm.py:256 msgid "X" msgstr "" -#: AppEditors/FlatCAMExcEditor.py:1748 AppEditors/FlatCAMExcEditor.py:1870 -#: AppEditors/FlatCAMExcEditor.py:1963 AppEditors/FlatCAMGrbEditor.py:2821 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:93 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:188 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:241 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:130 -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:198 AppTools/ToolFilm.py:240 +#: flatcamEditors/FlatCAMExcEditor.py:1748 flatcamEditors/FlatCAMExcEditor.py:1870 +#: flatcamEditors/FlatCAMExcEditor.py:1963 flatcamEditors/FlatCAMGrbEditor.py:2814 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:93 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:188 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:241 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:129 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:209 flatcamTools/ToolFilm.py:257 msgid "Y" msgstr "" -#: AppEditors/FlatCAMExcEditor.py:1749 AppEditors/FlatCAMExcEditor.py:1766 -#: AppEditors/FlatCAMExcEditor.py:1800 AppEditors/FlatCAMExcEditor.py:1871 -#: AppEditors/FlatCAMExcEditor.py:1875 AppEditors/FlatCAMExcEditor.py:1964 -#: AppEditors/FlatCAMExcEditor.py:1982 AppEditors/FlatCAMExcEditor.py:2016 -#: AppEditors/FlatCAMGrbEditor.py:2822 AppEditors/FlatCAMGrbEditor.py:2839 -#: AppEditors/FlatCAMGrbEditor.py:2875 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:94 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:113 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:189 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:194 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:242 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:263 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:131 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:149 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:53 AppTools/ToolDistance.py:120 -#: AppTools/ToolDistanceMin.py:68 AppTools/ToolTransform.py:60 +#: flatcamEditors/FlatCAMExcEditor.py:1749 flatcamEditors/FlatCAMExcEditor.py:1766 +#: flatcamEditors/FlatCAMExcEditor.py:1800 flatcamEditors/FlatCAMExcEditor.py:1871 +#: flatcamEditors/FlatCAMExcEditor.py:1875 flatcamEditors/FlatCAMExcEditor.py:1964 +#: flatcamEditors/FlatCAMExcEditor.py:1982 flatcamEditors/FlatCAMExcEditor.py:2016 +#: flatcamEditors/FlatCAMGrbEditor.py:2815 flatcamEditors/FlatCAMGrbEditor.py:2832 +#: flatcamEditors/FlatCAMGrbEditor.py:2868 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:94 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:113 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:189 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:194 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:242 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:263 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:130 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:148 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:53 +#: flatcamTools/ToolDistance.py:120 flatcamTools/ToolDistanceMin.py:69 +#: flatcamTools/ToolTransform.py:60 msgid "Angle" msgstr "" -#: AppEditors/FlatCAMExcEditor.py:1753 AppEditors/FlatCAMExcEditor.py:1968 -#: AppEditors/FlatCAMGrbEditor.py:2826 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:100 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:248 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:137 +#: flatcamEditors/FlatCAMExcEditor.py:1753 flatcamEditors/FlatCAMExcEditor.py:1968 +#: flatcamEditors/FlatCAMGrbEditor.py:2819 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:100 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:248 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:136 msgid "Pitch" msgstr "" -#: AppEditors/FlatCAMExcEditor.py:1755 AppEditors/FlatCAMExcEditor.py:1970 -#: AppEditors/FlatCAMGrbEditor.py:2828 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:102 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:250 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:139 +#: flatcamEditors/FlatCAMExcEditor.py:1755 flatcamEditors/FlatCAMExcEditor.py:1970 +#: flatcamEditors/FlatCAMGrbEditor.py:2821 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:102 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:250 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:138 msgid "Pitch = Distance between elements of the array." msgstr "" -#: AppEditors/FlatCAMExcEditor.py:1768 AppEditors/FlatCAMExcEditor.py:1984 +#: flatcamEditors/FlatCAMExcEditor.py:1768 flatcamEditors/FlatCAMExcEditor.py:1984 msgid "" "Angle at which the linear array is placed.\n" "The precision is of max 2 decimals.\n" @@ -1212,66 +2873,65 @@ msgid "" "Max value is: 360.00 degrees." msgstr "" -#: AppEditors/FlatCAMExcEditor.py:1789 AppEditors/FlatCAMExcEditor.py:2005 -#: AppEditors/FlatCAMGrbEditor.py:2862 +#: flatcamEditors/FlatCAMExcEditor.py:1789 flatcamEditors/FlatCAMExcEditor.py:2005 +#: flatcamEditors/FlatCAMGrbEditor.py:2855 msgid "Direction for circular array.Can be CW = clockwise or CCW = counter clockwise." msgstr "" -#: AppEditors/FlatCAMExcEditor.py:1796 AppEditors/FlatCAMExcEditor.py:2012 -#: AppEditors/FlatCAMGrbEditor.py:2870 -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:129 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:136 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:286 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:145 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:171 +#: flatcamEditors/FlatCAMExcEditor.py:1796 flatcamEditors/FlatCAMExcEditor.py:2012 +#: flatcamEditors/FlatCAMGrbEditor.py:2863 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:129 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:136 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:286 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:142 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:170 msgid "CW" msgstr "" -#: AppEditors/FlatCAMExcEditor.py:1797 AppEditors/FlatCAMExcEditor.py:2013 -#: AppEditors/FlatCAMGrbEditor.py:2871 -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:130 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:137 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:287 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:146 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:172 +#: flatcamEditors/FlatCAMExcEditor.py:1797 flatcamEditors/FlatCAMExcEditor.py:2013 +#: flatcamEditors/FlatCAMGrbEditor.py:2864 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:130 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:137 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:287 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:143 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:171 msgid "CCW" msgstr "" -#: AppEditors/FlatCAMExcEditor.py:1801 AppEditors/FlatCAMExcEditor.py:2017 -#: AppEditors/FlatCAMGrbEditor.py:2877 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:115 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:145 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:265 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:295 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:151 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:180 +#: flatcamEditors/FlatCAMExcEditor.py:1801 flatcamEditors/FlatCAMExcEditor.py:2017 +#: flatcamEditors/FlatCAMGrbEditor.py:2870 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:115 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:145 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:265 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:295 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:150 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:179 msgid "Angle at which each element in circular array is placed." msgstr "" -#: AppEditors/FlatCAMExcEditor.py:1835 +#: flatcamEditors/FlatCAMExcEditor.py:1835 msgid "Slot Parameters" msgstr "" -#: AppEditors/FlatCAMExcEditor.py:1837 +#: flatcamEditors/FlatCAMExcEditor.py:1837 msgid "" "Parameters for adding a slot (hole with oval shape)\n" "either single or as an part of an array." msgstr "" -#: AppEditors/FlatCAMExcEditor.py:1846 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:162 -#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:56 AppTools/ToolCorners.py:136 -#: AppTools/ToolProperties.py:559 +#: flatcamEditors/FlatCAMExcEditor.py:1846 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:162 +#: flatcamTools/ToolProperties.py:559 msgid "Length" msgstr "" -#: AppEditors/FlatCAMExcEditor.py:1848 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:164 +#: flatcamEditors/FlatCAMExcEditor.py:1848 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:164 msgid "Length = The length of the slot." msgstr "" -#: AppEditors/FlatCAMExcEditor.py:1862 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:180 +#: flatcamEditors/FlatCAMExcEditor.py:1862 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:180 msgid "" "Direction on which the slot is oriented:\n" "- 'X' - horizontal axis \n" @@ -1279,7 +2939,7 @@ msgid "" "- 'Angle' - a custom angle for the slot inclination" msgstr "" -#: AppEditors/FlatCAMExcEditor.py:1877 +#: flatcamEditors/FlatCAMExcEditor.py:1877 msgid "" "Angle at which the slot is placed.\n" "The precision is of max 2 decimals.\n" @@ -1287,120 +2947,110 @@ msgid "" "Max value is: 360.00 degrees." msgstr "" -#: AppEditors/FlatCAMExcEditor.py:1910 +#: flatcamEditors/FlatCAMExcEditor.py:1910 msgid "Slot Array Parameters" msgstr "" -#: AppEditors/FlatCAMExcEditor.py:1912 +#: flatcamEditors/FlatCAMExcEditor.py:1912 msgid "Parameters for the array of slots (linear or circular array)" msgstr "" -#: AppEditors/FlatCAMExcEditor.py:1921 +#: flatcamEditors/FlatCAMExcEditor.py:1921 msgid "" "Select the type of slot array to create.\n" "It can be Linear X(Y) or Circular" msgstr "" -#: AppEditors/FlatCAMExcEditor.py:1933 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:219 +#: flatcamEditors/FlatCAMExcEditor.py:1933 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:219 msgid "Nr of slots" msgstr "" -#: AppEditors/FlatCAMExcEditor.py:1934 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:221 +#: flatcamEditors/FlatCAMExcEditor.py:1934 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:221 msgid "Specify how many slots to be in the array." msgstr "" -#: AppEditors/FlatCAMExcEditor.py:2452 AppObjects/FlatCAMExcellon.py:433 +#: flatcamEditors/FlatCAMExcEditor.py:2452 flatcamObjects/FlatCAMExcellon.py:410 msgid "Total Drills" msgstr "" -#: AppEditors/FlatCAMExcEditor.py:2484 AppObjects/FlatCAMExcellon.py:464 +#: flatcamEditors/FlatCAMExcEditor.py:2484 flatcamObjects/FlatCAMExcellon.py:441 msgid "Total Slots" msgstr "" -#: AppEditors/FlatCAMExcEditor.py:2559 AppEditors/FlatCAMGeoEditor.py:1075 -#: AppEditors/FlatCAMGeoEditor.py:1116 AppEditors/FlatCAMGeoEditor.py:1144 -#: AppEditors/FlatCAMGeoEditor.py:1172 AppEditors/FlatCAMGeoEditor.py:1216 -#: AppEditors/FlatCAMGeoEditor.py:1251 AppEditors/FlatCAMGeoEditor.py:1279 -#: AppObjects/FlatCAMGeometry.py:664 AppObjects/FlatCAMGeometry.py:1099 -#: AppObjects/FlatCAMGeometry.py:1841 AppObjects/FlatCAMGeometry.py:2491 -#: AppTools/ToolIsolation.py:1493 AppTools/ToolNCC.py:1516 AppTools/ToolPaint.py:1268 -#: AppTools/ToolPaint.py:1439 AppTools/ToolSolderPaste.py:891 -#: AppTools/ToolSolderPaste.py:964 +#: flatcamEditors/FlatCAMExcEditor.py:2559 flatcamEditors/FlatCAMGeoEditor.py:1076 +#: flatcamEditors/FlatCAMGeoEditor.py:1117 flatcamEditors/FlatCAMGeoEditor.py:1145 +#: flatcamEditors/FlatCAMGeoEditor.py:1173 flatcamEditors/FlatCAMGeoEditor.py:1217 +#: flatcamEditors/FlatCAMGeoEditor.py:1252 flatcamEditors/FlatCAMGeoEditor.py:1280 +#: flatcamObjects/FlatCAMGeometry.py:599 flatcamObjects/FlatCAMGeometry.py:1033 +#: flatcamObjects/FlatCAMGeometry.py:1780 flatcamObjects/FlatCAMGeometry.py:2424 +#: flatcamTools/ToolNCC.py:1498 flatcamTools/ToolPaint.py:1249 +#: flatcamTools/ToolPaint.py:1420 flatcamTools/ToolSolderPaste.py:883 +#: flatcamTools/ToolSolderPaste.py:956 msgid "Wrong value format entered, use a number." msgstr "" -#: AppEditors/FlatCAMExcEditor.py:2570 +#: flatcamEditors/FlatCAMExcEditor.py:2570 msgid "" "Tool already in the original or actual tool list.\n" "Save and reedit Excellon if you need to add this tool. " msgstr "" -#: AppEditors/FlatCAMExcEditor.py:2579 AppGUI/MainGUI.py:3364 +#: flatcamEditors/FlatCAMExcEditor.py:2579 flatcamGUI/FlatCAMGUI.py:4071 msgid "Added new tool with dia" msgstr "" -#: AppEditors/FlatCAMExcEditor.py:2612 +#: flatcamEditors/FlatCAMExcEditor.py:2612 msgid "Select a tool in Tool Table" msgstr "" -#: AppEditors/FlatCAMExcEditor.py:2642 +#: flatcamEditors/FlatCAMExcEditor.py:2642 msgid "Deleted tool with diameter" msgstr "" -#: AppEditors/FlatCAMExcEditor.py:2790 +#: flatcamEditors/FlatCAMExcEditor.py:2790 msgid "Done. Tool edit completed." msgstr "" -#: AppEditors/FlatCAMExcEditor.py:3327 +#: flatcamEditors/FlatCAMExcEditor.py:3352 msgid "There are no Tools definitions in the file. Aborting Excellon creation." msgstr "" -#: AppEditors/FlatCAMExcEditor.py:3331 +#: flatcamEditors/FlatCAMExcEditor.py:3356 msgid "An internal error has ocurred. See Shell.\n" msgstr "" -#: AppEditors/FlatCAMExcEditor.py:3336 +#: flatcamEditors/FlatCAMExcEditor.py:3361 msgid "Creating Excellon." msgstr "" -#: AppEditors/FlatCAMExcEditor.py:3350 +#: flatcamEditors/FlatCAMExcEditor.py:3373 msgid "Excellon editing finished." msgstr "" -#: AppEditors/FlatCAMExcEditor.py:3367 +#: flatcamEditors/FlatCAMExcEditor.py:3390 msgid "Cancelled. There is no Tool/Drill selected" msgstr "" -#: AppEditors/FlatCAMExcEditor.py:3601 AppEditors/FlatCAMExcEditor.py:3609 -#: AppEditors/FlatCAMGeoEditor.py:4343 AppEditors/FlatCAMGeoEditor.py:4357 -#: AppEditors/FlatCAMGrbEditor.py:1085 AppEditors/FlatCAMGrbEditor.py:1312 -#: AppEditors/FlatCAMGrbEditor.py:1497 AppEditors/FlatCAMGrbEditor.py:1766 -#: AppEditors/FlatCAMGrbEditor.py:4609 AppEditors/FlatCAMGrbEditor.py:4626 -#: AppGUI/MainGUI.py:2711 AppGUI/MainGUI.py:2723 AppTools/ToolAlignObjects.py:393 -#: AppTools/ToolAlignObjects.py:415 App_Main.py:4677 App_Main.py:4831 -msgid "Done." -msgstr "" - -#: AppEditors/FlatCAMExcEditor.py:3984 +#: flatcamEditors/FlatCAMExcEditor.py:4003 msgid "Done. Drill(s) deleted." msgstr "" -#: AppEditors/FlatCAMExcEditor.py:4057 AppEditors/FlatCAMExcEditor.py:4067 -#: AppEditors/FlatCAMGrbEditor.py:5057 +#: flatcamEditors/FlatCAMExcEditor.py:4076 flatcamEditors/FlatCAMExcEditor.py:4086 +#: flatcamEditors/FlatCAMGrbEditor.py:5063 msgid "Click on the circular array Center position" msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:84 +#: flatcamEditors/FlatCAMGeoEditor.py:85 msgid "Buffer distance:" msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:85 +#: flatcamEditors/FlatCAMGeoEditor.py:86 msgid "Buffer corner:" msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:87 +#: flatcamEditors/FlatCAMGeoEditor.py:88 msgid "" "There are 3 types of corners:\n" " - 'Round': the corner is rounded for exterior buffer.\n" @@ -1409,84 +3059,86 @@ msgid "" "corner" msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:93 AppEditors/FlatCAMGrbEditor.py:2638 +#: flatcamEditors/FlatCAMGeoEditor.py:94 flatcamEditors/FlatCAMGrbEditor.py:2631 msgid "Round" msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:94 AppEditors/FlatCAMGrbEditor.py:2639 -#: AppGUI/ObjectUI.py:1149 AppGUI/ObjectUI.py:2004 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:225 -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:68 -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:175 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:68 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:177 -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:143 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:298 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:327 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:291 AppTools/ToolExtractDrills.py:94 -#: AppTools/ToolExtractDrills.py:227 AppTools/ToolIsolation.py:545 AppTools/ToolNCC.py:583 -#: AppTools/ToolPaint.py:526 AppTools/ToolPunchGerber.py:105 AppTools/ToolPunchGerber.py:255 -#: AppTools/ToolQRCode.py:207 +#: flatcamEditors/FlatCAMGeoEditor.py:95 flatcamEditors/FlatCAMGrbEditor.py:2632 +#: flatcamGUI/ObjectUI.py:2073 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:217 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:68 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:175 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:68 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:177 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:143 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:327 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:291 +#: flatcamTools/ToolExtractDrills.py:94 flatcamTools/ToolExtractDrills.py:227 +#: flatcamTools/ToolNCC.py:583 flatcamTools/ToolPaint.py:527 +#: flatcamTools/ToolPunchGerber.py:105 flatcamTools/ToolPunchGerber.py:255 +#: flatcamTools/ToolQRCode.py:198 msgid "Square" msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:95 AppEditors/FlatCAMGrbEditor.py:2640 +#: flatcamEditors/FlatCAMGeoEditor.py:96 flatcamEditors/FlatCAMGrbEditor.py:2633 msgid "Beveled" msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:102 +#: flatcamEditors/FlatCAMGeoEditor.py:103 msgid "Buffer Interior" msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:104 +#: flatcamEditors/FlatCAMGeoEditor.py:105 msgid "Buffer Exterior" msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:110 +#: flatcamEditors/FlatCAMGeoEditor.py:111 msgid "Full Buffer" msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:131 AppEditors/FlatCAMGeoEditor.py:3016 -#: AppGUI/MainGUI.py:4301 AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:191 +#: flatcamEditors/FlatCAMGeoEditor.py:132 flatcamEditors/FlatCAMGeoEditor.py:3017 +#: flatcamGUI/FlatCAMGUI.py:1928 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:190 msgid "Buffer Tool" msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:143 AppEditors/FlatCAMGeoEditor.py:160 -#: AppEditors/FlatCAMGeoEditor.py:177 AppEditors/FlatCAMGeoEditor.py:3035 -#: AppEditors/FlatCAMGeoEditor.py:3063 AppEditors/FlatCAMGeoEditor.py:3091 -#: AppEditors/FlatCAMGrbEditor.py:5110 +#: flatcamEditors/FlatCAMGeoEditor.py:144 flatcamEditors/FlatCAMGeoEditor.py:161 +#: flatcamEditors/FlatCAMGeoEditor.py:178 flatcamEditors/FlatCAMGeoEditor.py:3036 +#: flatcamEditors/FlatCAMGeoEditor.py:3064 flatcamEditors/FlatCAMGeoEditor.py:3092 +#: flatcamEditors/FlatCAMGrbEditor.py:5116 msgid "Buffer distance value is missing or wrong format. Add it and retry." msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:241 +#: flatcamEditors/FlatCAMGeoEditor.py:242 msgid "Font" msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:322 AppGUI/MainGUI.py:1452 +#: flatcamEditors/FlatCAMGeoEditor.py:323 flatcamGUI/FlatCAMGUI.py:2208 msgid "Text" msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:348 +#: flatcamEditors/FlatCAMGeoEditor.py:349 msgid "Text Tool" msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:404 AppGUI/MainGUI.py:502 AppGUI/MainGUI.py:1199 -#: AppGUI/ObjectUI.py:597 AppGUI/ObjectUI.py:1564 AppObjects/FlatCAMExcellon.py:852 -#: AppObjects/FlatCAMExcellon.py:1242 AppObjects/FlatCAMGeometry.py:825 -#: AppTools/ToolIsolation.py:313 AppTools/ToolIsolation.py:1171 AppTools/ToolNCC.py:331 -#: AppTools/ToolNCC.py:797 AppTools/ToolPaint.py:313 AppTools/ToolPaint.py:766 +#: flatcamEditors/FlatCAMGeoEditor.py:405 flatcamGUI/FlatCAMGUI.py:511 +#: flatcamGUI/FlatCAMGUI.py:1158 flatcamGUI/ObjectUI.py:818 flatcamGUI/ObjectUI.py:1662 +#: flatcamObjects/FlatCAMExcellon.py:742 flatcamObjects/FlatCAMExcellon.py:1084 +#: flatcamObjects/FlatCAMGeometry.py:759 flatcamTools/ToolNCC.py:331 +#: flatcamTools/ToolNCC.py:797 flatcamTools/ToolPaint.py:314 flatcamTools/ToolPaint.py:767 msgid "Tool" msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:438 +#: flatcamEditors/FlatCAMGeoEditor.py:439 flatcamGUI/ObjectUI.py:364 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:43 msgid "Tool dia" msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:440 +#: flatcamEditors/FlatCAMGeoEditor.py:441 msgid "Diameter of the tool to be used in the operation." msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:486 +#: flatcamEditors/FlatCAMGeoEditor.py:487 msgid "" "Algorithm to paint the polygons:\n" "- Standard: Fixed step inwards.\n" @@ -1494,78 +3146,82 @@ msgid "" "- Line-based: Parallel lines." msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:505 +#: flatcamEditors/FlatCAMGeoEditor.py:506 msgid "Connect:" msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:515 +#: flatcamEditors/FlatCAMGeoEditor.py:516 msgid "Contour:" msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:528 AppGUI/MainGUI.py:1456 +#: flatcamEditors/FlatCAMGeoEditor.py:529 flatcamGUI/FlatCAMGUI.py:2212 msgid "Paint" msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:546 AppGUI/MainGUI.py:912 AppGUI/MainGUI.py:1944 -#: AppGUI/ObjectUI.py:2069 AppTools/ToolPaint.py:42 AppTools/ToolPaint.py:737 +#: flatcamEditors/FlatCAMGeoEditor.py:547 flatcamGUI/FlatCAMGUI.py:924 +#: flatcamGUI/FlatCAMGUI.py:2628 flatcamGUI/ObjectUI.py:2139 flatcamTools/ToolPaint.py:43 +#: flatcamTools/ToolPaint.py:738 msgid "Paint Tool" msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:582 AppEditors/FlatCAMGeoEditor.py:1054 -#: AppEditors/FlatCAMGeoEditor.py:3023 AppEditors/FlatCAMGeoEditor.py:3051 -#: AppEditors/FlatCAMGeoEditor.py:3079 AppEditors/FlatCAMGeoEditor.py:4496 -#: AppEditors/FlatCAMGrbEditor.py:5761 +#: flatcamEditors/FlatCAMGeoEditor.py:583 flatcamEditors/FlatCAMGeoEditor.py:1055 +#: flatcamEditors/FlatCAMGeoEditor.py:3024 flatcamEditors/FlatCAMGeoEditor.py:3052 +#: flatcamEditors/FlatCAMGeoEditor.py:3080 flatcamEditors/FlatCAMGeoEditor.py:4502 +#: flatcamEditors/FlatCAMGrbEditor.py:5767 msgid "Cancelled. No shape selected." msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:595 AppEditors/FlatCAMGeoEditor.py:3041 -#: AppEditors/FlatCAMGeoEditor.py:3069 AppEditors/FlatCAMGeoEditor.py:3097 -#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:69 AppTools/ToolProperties.py:117 -#: AppTools/ToolProperties.py:162 +#: flatcamEditors/FlatCAMGeoEditor.py:596 flatcamEditors/FlatCAMGeoEditor.py:3042 +#: flatcamEditors/FlatCAMGeoEditor.py:3070 flatcamEditors/FlatCAMGeoEditor.py:3098 +#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:59 +#: flatcamTools/ToolProperties.py:117 flatcamTools/ToolProperties.py:162 msgid "Tools" msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:606 AppEditors/FlatCAMGeoEditor.py:990 -#: AppEditors/FlatCAMGrbEditor.py:5300 AppEditors/FlatCAMGrbEditor.py:5697 -#: AppGUI/MainGUI.py:935 AppGUI/MainGUI.py:1967 AppTools/ToolTransform.py:460 +#: flatcamEditors/FlatCAMGeoEditor.py:607 flatcamEditors/FlatCAMGeoEditor.py:991 +#: flatcamEditors/FlatCAMGrbEditor.py:5306 flatcamEditors/FlatCAMGrbEditor.py:5703 +#: flatcamGUI/FlatCAMGUI.py:945 flatcamGUI/FlatCAMGUI.py:2649 +#: flatcamTools/ToolTransform.py:460 msgid "Transform Tool" msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:607 AppEditors/FlatCAMGeoEditor.py:672 -#: AppEditors/FlatCAMGrbEditor.py:5301 AppEditors/FlatCAMGrbEditor.py:5366 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:45 AppTools/ToolTransform.py:24 -#: AppTools/ToolTransform.py:466 +#: flatcamEditors/FlatCAMGeoEditor.py:608 flatcamEditors/FlatCAMGeoEditor.py:673 +#: flatcamEditors/FlatCAMGrbEditor.py:5307 flatcamEditors/FlatCAMGrbEditor.py:5372 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:45 +#: flatcamTools/ToolTransform.py:24 flatcamTools/ToolTransform.py:466 msgid "Rotate" msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:608 AppEditors/FlatCAMGrbEditor.py:5302 -#: AppTools/ToolTransform.py:25 +#: flatcamEditors/FlatCAMGeoEditor.py:609 flatcamEditors/FlatCAMGrbEditor.py:5308 +#: flatcamTools/ToolTransform.py:25 msgid "Skew/Shear" msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:609 AppEditors/FlatCAMGrbEditor.py:2687 -#: AppEditors/FlatCAMGrbEditor.py:5303 AppGUI/MainGUI.py:1057 AppGUI/MainGUI.py:1499 -#: AppGUI/MainGUI.py:2089 AppGUI/MainGUI.py:4513 AppGUI/ObjectUI.py:125 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:95 AppTools/ToolTransform.py:26 +#: flatcamEditors/FlatCAMGeoEditor.py:610 flatcamEditors/FlatCAMGrbEditor.py:2680 +#: flatcamEditors/FlatCAMGrbEditor.py:5309 flatcamGUI/FlatCAMGUI.py:1063 +#: flatcamGUI/FlatCAMGUI.py:2140 flatcamGUI/FlatCAMGUI.py:2255 flatcamGUI/FlatCAMGUI.py:2767 +#: flatcamGUI/ObjectUI.py:125 flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:95 +#: flatcamTools/ToolTransform.py:26 msgid "Scale" msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:610 AppEditors/FlatCAMGrbEditor.py:5304 -#: AppTools/ToolTransform.py:27 +#: flatcamEditors/FlatCAMGeoEditor.py:611 flatcamEditors/FlatCAMGrbEditor.py:5310 +#: flatcamTools/ToolTransform.py:27 msgid "Mirror (Flip)" msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:624 AppEditors/FlatCAMGrbEditor.py:5318 -#: AppGUI/MainGUI.py:844 AppGUI/MainGUI.py:1878 +#: flatcamEditors/FlatCAMGeoEditor.py:625 flatcamEditors/FlatCAMGrbEditor.py:5324 +#: flatcamGUI/FlatCAMGUI.py:856 flatcamGUI/FlatCAMGUI.py:2564 msgid "Editor" msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:656 AppEditors/FlatCAMGrbEditor.py:5350 +#: flatcamEditors/FlatCAMGeoEditor.py:657 flatcamEditors/FlatCAMGrbEditor.py:5356 msgid "Angle:" msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:658 AppEditors/FlatCAMGrbEditor.py:5352 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:55 AppTools/ToolTransform.py:62 +#: flatcamEditors/FlatCAMGeoEditor.py:659 flatcamEditors/FlatCAMGrbEditor.py:5358 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:55 +#: flatcamTools/ToolTransform.py:62 msgid "" "Angle for Rotation action, in degrees.\n" "Float number between -360 and 359.\n" @@ -1573,102 +3229,104 @@ msgid "" "Negative numbers for CCW motion." msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:674 AppEditors/FlatCAMGrbEditor.py:5368 +#: flatcamEditors/FlatCAMGeoEditor.py:675 flatcamEditors/FlatCAMGrbEditor.py:5374 msgid "" "Rotate the selected shape(s).\n" "The point of reference is the middle of\n" "the bounding box for all selected shapes." msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:697 AppEditors/FlatCAMGrbEditor.py:5391 +#: flatcamEditors/FlatCAMGeoEditor.py:698 flatcamEditors/FlatCAMGrbEditor.py:5397 msgid "Angle X:" msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:699 AppEditors/FlatCAMGeoEditor.py:719 -#: AppEditors/FlatCAMGrbEditor.py:5393 AppEditors/FlatCAMGrbEditor.py:5413 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:74 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:88 AppTools/ToolCalibration.py:505 -#: AppTools/ToolCalibration.py:518 +#: flatcamEditors/FlatCAMGeoEditor.py:700 flatcamEditors/FlatCAMGeoEditor.py:720 +#: flatcamEditors/FlatCAMGrbEditor.py:5399 flatcamEditors/FlatCAMGrbEditor.py:5419 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:74 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:88 +#: flatcamTools/ToolCalibration.py:505 flatcamTools/ToolCalibration.py:518 msgid "" "Angle for Skew action, in degrees.\n" "Float number between -360 and 359." msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:710 AppEditors/FlatCAMGrbEditor.py:5404 -#: AppTools/ToolTransform.py:467 +#: flatcamEditors/FlatCAMGeoEditor.py:711 flatcamEditors/FlatCAMGrbEditor.py:5410 +#: flatcamTools/ToolTransform.py:467 msgid "Skew X" msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:712 AppEditors/FlatCAMGeoEditor.py:732 -#: AppEditors/FlatCAMGrbEditor.py:5406 AppEditors/FlatCAMGrbEditor.py:5426 +#: flatcamEditors/FlatCAMGeoEditor.py:713 flatcamEditors/FlatCAMGeoEditor.py:733 +#: flatcamEditors/FlatCAMGrbEditor.py:5412 flatcamEditors/FlatCAMGrbEditor.py:5432 msgid "" "Skew/shear the selected shape(s).\n" "The point of reference is the middle of\n" "the bounding box for all selected shapes." msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:717 AppEditors/FlatCAMGrbEditor.py:5411 +#: flatcamEditors/FlatCAMGeoEditor.py:718 flatcamEditors/FlatCAMGrbEditor.py:5417 msgid "Angle Y:" msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:730 AppEditors/FlatCAMGrbEditor.py:5424 -#: AppTools/ToolTransform.py:468 +#: flatcamEditors/FlatCAMGeoEditor.py:731 flatcamEditors/FlatCAMGrbEditor.py:5430 +#: flatcamTools/ToolTransform.py:468 msgid "Skew Y" msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:758 AppEditors/FlatCAMGrbEditor.py:5452 +#: flatcamEditors/FlatCAMGeoEditor.py:759 flatcamEditors/FlatCAMGrbEditor.py:5458 msgid "Factor X:" msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:760 AppEditors/FlatCAMGrbEditor.py:5454 -#: AppTools/ToolCalibration.py:469 +#: flatcamEditors/FlatCAMGeoEditor.py:761 flatcamEditors/FlatCAMGrbEditor.py:5460 +#: flatcamTools/ToolCalibration.py:469 msgid "Factor for Scale action over X axis." msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:770 AppEditors/FlatCAMGrbEditor.py:5464 -#: AppTools/ToolTransform.py:469 +#: flatcamEditors/FlatCAMGeoEditor.py:771 flatcamEditors/FlatCAMGrbEditor.py:5470 +#: flatcamTools/ToolTransform.py:469 msgid "Scale X" msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:772 AppEditors/FlatCAMGeoEditor.py:791 -#: AppEditors/FlatCAMGrbEditor.py:5466 AppEditors/FlatCAMGrbEditor.py:5485 +#: flatcamEditors/FlatCAMGeoEditor.py:773 flatcamEditors/FlatCAMGeoEditor.py:792 +#: flatcamEditors/FlatCAMGrbEditor.py:5472 flatcamEditors/FlatCAMGrbEditor.py:5491 msgid "" "Scale the selected shape(s).\n" "The point of reference depends on \n" "the Scale reference checkbox state." msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:777 AppEditors/FlatCAMGrbEditor.py:5471 +#: flatcamEditors/FlatCAMGeoEditor.py:778 flatcamEditors/FlatCAMGrbEditor.py:5477 msgid "Factor Y:" msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:779 AppEditors/FlatCAMGrbEditor.py:5473 -#: AppTools/ToolCalibration.py:481 +#: flatcamEditors/FlatCAMGeoEditor.py:780 flatcamEditors/FlatCAMGrbEditor.py:5479 +#: flatcamTools/ToolCalibration.py:481 msgid "Factor for Scale action over Y axis." msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:789 AppEditors/FlatCAMGrbEditor.py:5483 -#: AppTools/ToolTransform.py:470 +#: flatcamEditors/FlatCAMGeoEditor.py:790 flatcamEditors/FlatCAMGrbEditor.py:5489 +#: flatcamTools/ToolTransform.py:470 msgid "Scale Y" msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:798 AppEditors/FlatCAMGrbEditor.py:5492 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:124 AppTools/ToolTransform.py:189 +#: flatcamEditors/FlatCAMGeoEditor.py:799 flatcamEditors/FlatCAMGrbEditor.py:5498 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:124 +#: flatcamTools/ToolTransform.py:189 msgid "Link" msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:800 AppEditors/FlatCAMGrbEditor.py:5494 +#: flatcamEditors/FlatCAMGeoEditor.py:801 flatcamEditors/FlatCAMGrbEditor.py:5500 msgid "" "Scale the selected shape(s)\n" "using the Scale Factor X for both axis." msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:806 AppEditors/FlatCAMGrbEditor.py:5500 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:132 AppTools/ToolTransform.py:196 +#: flatcamEditors/FlatCAMGeoEditor.py:807 flatcamEditors/FlatCAMGrbEditor.py:5506 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:132 +#: flatcamTools/ToolTransform.py:196 msgid "Scale Reference" msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:808 AppEditors/FlatCAMGrbEditor.py:5502 +#: flatcamEditors/FlatCAMGeoEditor.py:809 flatcamEditors/FlatCAMGrbEditor.py:5508 msgid "" "Scale the selected shape(s)\n" "using the origin reference when checked,\n" @@ -1676,62 +3334,62 @@ msgid "" "of the selected shapes when unchecked." msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:836 AppEditors/FlatCAMGrbEditor.py:5531 +#: flatcamEditors/FlatCAMGeoEditor.py:837 flatcamEditors/FlatCAMGrbEditor.py:5537 msgid "Value X:" msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:838 AppEditors/FlatCAMGrbEditor.py:5533 +#: flatcamEditors/FlatCAMGeoEditor.py:839 flatcamEditors/FlatCAMGrbEditor.py:5539 msgid "Value for Offset action on X axis." msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:848 AppEditors/FlatCAMGrbEditor.py:5543 -#: AppTools/ToolTransform.py:473 +#: flatcamEditors/FlatCAMGeoEditor.py:849 flatcamEditors/FlatCAMGrbEditor.py:5549 +#: flatcamTools/ToolTransform.py:473 msgid "Offset X" msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:850 AppEditors/FlatCAMGeoEditor.py:870 -#: AppEditors/FlatCAMGrbEditor.py:5545 AppEditors/FlatCAMGrbEditor.py:5565 +#: flatcamEditors/FlatCAMGeoEditor.py:851 flatcamEditors/FlatCAMGeoEditor.py:871 +#: flatcamEditors/FlatCAMGrbEditor.py:5551 flatcamEditors/FlatCAMGrbEditor.py:5571 msgid "" "Offset the selected shape(s).\n" "The point of reference is the middle of\n" "the bounding box for all selected shapes.\n" msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:856 AppEditors/FlatCAMGrbEditor.py:5551 +#: flatcamEditors/FlatCAMGeoEditor.py:857 flatcamEditors/FlatCAMGrbEditor.py:5557 msgid "Value Y:" msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:858 AppEditors/FlatCAMGrbEditor.py:5553 +#: flatcamEditors/FlatCAMGeoEditor.py:859 flatcamEditors/FlatCAMGrbEditor.py:5559 msgid "Value for Offset action on Y axis." msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:868 AppEditors/FlatCAMGrbEditor.py:5563 -#: AppTools/ToolTransform.py:474 +#: flatcamEditors/FlatCAMGeoEditor.py:869 flatcamEditors/FlatCAMGrbEditor.py:5569 +#: flatcamTools/ToolTransform.py:474 msgid "Offset Y" msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:899 AppEditors/FlatCAMGrbEditor.py:5594 -#: AppTools/ToolTransform.py:475 +#: flatcamEditors/FlatCAMGeoEditor.py:900 flatcamEditors/FlatCAMGrbEditor.py:5600 +#: flatcamTools/ToolTransform.py:475 msgid "Flip on X" msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:901 AppEditors/FlatCAMGeoEditor.py:908 -#: AppEditors/FlatCAMGrbEditor.py:5596 AppEditors/FlatCAMGrbEditor.py:5603 +#: flatcamEditors/FlatCAMGeoEditor.py:902 flatcamEditors/FlatCAMGeoEditor.py:909 +#: flatcamEditors/FlatCAMGrbEditor.py:5602 flatcamEditors/FlatCAMGrbEditor.py:5609 msgid "" "Flip the selected shape(s) over the X axis.\n" "Does not create a new shape." msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:906 AppEditors/FlatCAMGrbEditor.py:5601 -#: AppTools/ToolTransform.py:476 +#: flatcamEditors/FlatCAMGeoEditor.py:907 flatcamEditors/FlatCAMGrbEditor.py:5607 +#: flatcamTools/ToolTransform.py:476 msgid "Flip on Y" msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:914 AppEditors/FlatCAMGrbEditor.py:5609 +#: flatcamEditors/FlatCAMGeoEditor.py:915 flatcamEditors/FlatCAMGrbEditor.py:5615 msgid "Ref Pt" msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:916 AppEditors/FlatCAMGrbEditor.py:5611 +#: flatcamEditors/FlatCAMGeoEditor.py:917 flatcamEditors/FlatCAMGrbEditor.py:5617 msgid "" "Flip the selected shape(s)\n" "around the point in Point Entry Field.\n" @@ -1744,701 +3402,686 @@ msgid "" "Point Entry field and click Flip on X(Y)" msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:928 AppEditors/FlatCAMGrbEditor.py:5623 +#: flatcamEditors/FlatCAMGeoEditor.py:929 flatcamEditors/FlatCAMGrbEditor.py:5629 msgid "Point:" msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:930 AppEditors/FlatCAMGrbEditor.py:5625 -#: AppTools/ToolTransform.py:299 +#: flatcamEditors/FlatCAMGeoEditor.py:931 flatcamEditors/FlatCAMGrbEditor.py:5631 +#: flatcamTools/ToolTransform.py:299 msgid "" "Coordinates in format (x, y) used as reference for mirroring.\n" "The 'x' in (x, y) will be used when using Flip on X and\n" "the 'y' in (x, y) will be used when using Flip on Y." msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:938 AppEditors/FlatCAMGrbEditor.py:2590 -#: AppEditors/FlatCAMGrbEditor.py:5635 AppGUI/ObjectUI.py:1494 AppTools/ToolDblSided.py:192 -#: AppTools/ToolDblSided.py:425 AppTools/ToolIsolation.py:276 AppTools/ToolIsolation.py:610 -#: AppTools/ToolNCC.py:294 AppTools/ToolNCC.py:631 AppTools/ToolPaint.py:276 -#: AppTools/ToolPaint.py:675 AppTools/ToolSolderPaste.py:127 AppTools/ToolSolderPaste.py:605 -#: AppTools/ToolTransform.py:478 App_Main.py:5670 -msgid "Add" -msgstr "" - -#: AppEditors/FlatCAMGeoEditor.py:940 AppEditors/FlatCAMGrbEditor.py:5637 -#: AppTools/ToolTransform.py:309 +#: flatcamEditors/FlatCAMGeoEditor.py:941 flatcamEditors/FlatCAMGrbEditor.py:5643 +#: flatcamTools/ToolTransform.py:309 msgid "" "The point coordinates can be captured by\n" "left click on canvas together with pressing\n" "SHIFT key. Then click Add button to insert." msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:1303 AppEditors/FlatCAMGrbEditor.py:5945 +#: flatcamEditors/FlatCAMGeoEditor.py:1304 flatcamEditors/FlatCAMGrbEditor.py:5951 msgid "No shape selected. Please Select a shape to rotate!" msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:1306 AppEditors/FlatCAMGrbEditor.py:5948 -#: AppTools/ToolTransform.py:679 +#: flatcamEditors/FlatCAMGeoEditor.py:1307 flatcamEditors/FlatCAMGrbEditor.py:5954 +#: flatcamTools/ToolTransform.py:679 msgid "Appying Rotate" msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:1332 AppEditors/FlatCAMGrbEditor.py:5980 +#: flatcamEditors/FlatCAMGeoEditor.py:1333 flatcamEditors/FlatCAMGrbEditor.py:5986 msgid "Done. Rotate completed." msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:1334 +#: flatcamEditors/FlatCAMGeoEditor.py:1335 msgid "Rotation action was not executed" msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:1353 AppEditors/FlatCAMGrbEditor.py:5999 +#: flatcamEditors/FlatCAMGeoEditor.py:1354 flatcamEditors/FlatCAMGrbEditor.py:6005 msgid "No shape selected. Please Select a shape to flip!" msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:1356 AppEditors/FlatCAMGrbEditor.py:6002 -#: AppTools/ToolTransform.py:728 +#: flatcamEditors/FlatCAMGeoEditor.py:1357 flatcamEditors/FlatCAMGrbEditor.py:6008 +#: flatcamTools/ToolTransform.py:728 msgid "Applying Flip" msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:1385 AppEditors/FlatCAMGrbEditor.py:6040 -#: AppTools/ToolTransform.py:769 +#: flatcamEditors/FlatCAMGeoEditor.py:1386 flatcamEditors/FlatCAMGrbEditor.py:6046 +#: flatcamTools/ToolTransform.py:769 msgid "Flip on the Y axis done" msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:1389 AppEditors/FlatCAMGrbEditor.py:6049 -#: AppTools/ToolTransform.py:778 +#: flatcamEditors/FlatCAMGeoEditor.py:1390 flatcamEditors/FlatCAMGrbEditor.py:6055 +#: flatcamTools/ToolTransform.py:778 msgid "Flip on the X axis done" msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:1397 +#: flatcamEditors/FlatCAMGeoEditor.py:1398 msgid "Flip action was not executed" msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:1415 AppEditors/FlatCAMGrbEditor.py:6069 +#: flatcamEditors/FlatCAMGeoEditor.py:1416 flatcamEditors/FlatCAMGrbEditor.py:6075 msgid "No shape selected. Please Select a shape to shear/skew!" msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:1418 AppEditors/FlatCAMGrbEditor.py:6072 -#: AppTools/ToolTransform.py:801 +#: flatcamEditors/FlatCAMGeoEditor.py:1419 flatcamEditors/FlatCAMGrbEditor.py:6078 +#: flatcamTools/ToolTransform.py:801 msgid "Applying Skew" msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:1441 AppEditors/FlatCAMGrbEditor.py:6106 +#: flatcamEditors/FlatCAMGeoEditor.py:1442 flatcamEditors/FlatCAMGrbEditor.py:6112 msgid "Skew on the X axis done" msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:1443 AppEditors/FlatCAMGrbEditor.py:6108 +#: flatcamEditors/FlatCAMGeoEditor.py:1444 flatcamEditors/FlatCAMGrbEditor.py:6114 msgid "Skew on the Y axis done" msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:1446 +#: flatcamEditors/FlatCAMGeoEditor.py:1447 msgid "Skew action was not executed" msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:1468 AppEditors/FlatCAMGrbEditor.py:6130 +#: flatcamEditors/FlatCAMGeoEditor.py:1469 flatcamEditors/FlatCAMGrbEditor.py:6136 msgid "No shape selected. Please Select a shape to scale!" msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:1471 AppEditors/FlatCAMGrbEditor.py:6133 -#: AppTools/ToolTransform.py:847 +#: flatcamEditors/FlatCAMGeoEditor.py:1472 flatcamEditors/FlatCAMGrbEditor.py:6139 +#: flatcamTools/ToolTransform.py:847 msgid "Applying Scale" msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:1503 AppEditors/FlatCAMGrbEditor.py:6170 +#: flatcamEditors/FlatCAMGeoEditor.py:1504 flatcamEditors/FlatCAMGrbEditor.py:6176 msgid "Scale on the X axis done" msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:1505 AppEditors/FlatCAMGrbEditor.py:6172 +#: flatcamEditors/FlatCAMGeoEditor.py:1506 flatcamEditors/FlatCAMGrbEditor.py:6178 msgid "Scale on the Y axis done" msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:1507 +#: flatcamEditors/FlatCAMGeoEditor.py:1508 msgid "Scale action was not executed" msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:1522 AppEditors/FlatCAMGrbEditor.py:6189 +#: flatcamEditors/FlatCAMGeoEditor.py:1523 flatcamEditors/FlatCAMGrbEditor.py:6195 msgid "No shape selected. Please Select a shape to offset!" msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:1525 AppEditors/FlatCAMGrbEditor.py:6192 -#: AppTools/ToolTransform.py:897 +#: flatcamEditors/FlatCAMGeoEditor.py:1526 flatcamEditors/FlatCAMGrbEditor.py:6198 +#: flatcamTools/ToolTransform.py:897 msgid "Applying Offset" msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:1535 AppEditors/FlatCAMGrbEditor.py:6213 +#: flatcamEditors/FlatCAMGeoEditor.py:1536 flatcamEditors/FlatCAMGrbEditor.py:6219 msgid "Offset on the X axis done" msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:1537 AppEditors/FlatCAMGrbEditor.py:6215 +#: flatcamEditors/FlatCAMGeoEditor.py:1538 flatcamEditors/FlatCAMGrbEditor.py:6221 msgid "Offset on the Y axis done" msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:1540 +#: flatcamEditors/FlatCAMGeoEditor.py:1541 msgid "Offset action was not executed" msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:1544 AppEditors/FlatCAMGrbEditor.py:6222 +#: flatcamEditors/FlatCAMGeoEditor.py:1545 flatcamEditors/FlatCAMGrbEditor.py:6228 msgid "Rotate ..." msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:1545 AppEditors/FlatCAMGeoEditor.py:1600 -#: AppEditors/FlatCAMGeoEditor.py:1617 AppEditors/FlatCAMGrbEditor.py:6223 -#: AppEditors/FlatCAMGrbEditor.py:6272 AppEditors/FlatCAMGrbEditor.py:6287 +#: flatcamEditors/FlatCAMGeoEditor.py:1546 flatcamEditors/FlatCAMGeoEditor.py:1601 +#: flatcamEditors/FlatCAMGeoEditor.py:1618 flatcamEditors/FlatCAMGrbEditor.py:6229 +#: flatcamEditors/FlatCAMGrbEditor.py:6278 flatcamEditors/FlatCAMGrbEditor.py:6293 msgid "Enter an Angle Value (degrees)" msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:1554 AppEditors/FlatCAMGrbEditor.py:6231 +#: flatcamEditors/FlatCAMGeoEditor.py:1555 flatcamEditors/FlatCAMGrbEditor.py:6237 msgid "Geometry shape rotate done" msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:1558 AppEditors/FlatCAMGrbEditor.py:6234 +#: flatcamEditors/FlatCAMGeoEditor.py:1559 flatcamEditors/FlatCAMGrbEditor.py:6240 msgid "Geometry shape rotate cancelled" msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:1563 AppEditors/FlatCAMGrbEditor.py:6239 +#: flatcamEditors/FlatCAMGeoEditor.py:1564 flatcamEditors/FlatCAMGrbEditor.py:6245 msgid "Offset on X axis ..." msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:1564 AppEditors/FlatCAMGeoEditor.py:1583 -#: AppEditors/FlatCAMGrbEditor.py:6240 AppEditors/FlatCAMGrbEditor.py:6257 +#: flatcamEditors/FlatCAMGeoEditor.py:1565 flatcamEditors/FlatCAMGeoEditor.py:1584 +#: flatcamEditors/FlatCAMGrbEditor.py:6246 flatcamEditors/FlatCAMGrbEditor.py:6263 msgid "Enter a distance Value" msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:1573 AppEditors/FlatCAMGrbEditor.py:6248 +#: flatcamEditors/FlatCAMGeoEditor.py:1574 flatcamEditors/FlatCAMGrbEditor.py:6254 msgid "Geometry shape offset on X axis done" msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:1577 AppEditors/FlatCAMGrbEditor.py:6251 +#: flatcamEditors/FlatCAMGeoEditor.py:1578 flatcamEditors/FlatCAMGrbEditor.py:6257 msgid "Geometry shape offset X cancelled" msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:1582 AppEditors/FlatCAMGrbEditor.py:6256 +#: flatcamEditors/FlatCAMGeoEditor.py:1583 flatcamEditors/FlatCAMGrbEditor.py:6262 msgid "Offset on Y axis ..." msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:1592 AppEditors/FlatCAMGrbEditor.py:6265 +#: flatcamEditors/FlatCAMGeoEditor.py:1593 flatcamEditors/FlatCAMGrbEditor.py:6271 msgid "Geometry shape offset on Y axis done" msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:1596 +#: flatcamEditors/FlatCAMGeoEditor.py:1597 msgid "Geometry shape offset on Y axis canceled" msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:1599 AppEditors/FlatCAMGrbEditor.py:6271 +#: flatcamEditors/FlatCAMGeoEditor.py:1600 flatcamEditors/FlatCAMGrbEditor.py:6277 msgid "Skew on X axis ..." msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:1609 AppEditors/FlatCAMGrbEditor.py:6280 +#: flatcamEditors/FlatCAMGeoEditor.py:1610 flatcamEditors/FlatCAMGrbEditor.py:6286 msgid "Geometry shape skew on X axis done" msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:1613 +#: flatcamEditors/FlatCAMGeoEditor.py:1614 msgid "Geometry shape skew on X axis canceled" msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:1616 AppEditors/FlatCAMGrbEditor.py:6286 +#: flatcamEditors/FlatCAMGeoEditor.py:1617 flatcamEditors/FlatCAMGrbEditor.py:6292 msgid "Skew on Y axis ..." msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:1626 AppEditors/FlatCAMGrbEditor.py:6295 +#: flatcamEditors/FlatCAMGeoEditor.py:1627 flatcamEditors/FlatCAMGrbEditor.py:6301 msgid "Geometry shape skew on Y axis done" msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:1630 +#: flatcamEditors/FlatCAMGeoEditor.py:1631 msgid "Geometry shape skew on Y axis canceled" msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:2007 AppEditors/FlatCAMGeoEditor.py:2078 -#: AppEditors/FlatCAMGrbEditor.py:1444 AppEditors/FlatCAMGrbEditor.py:1522 +#: flatcamEditors/FlatCAMGeoEditor.py:2008 flatcamEditors/FlatCAMGeoEditor.py:2079 +#: flatcamEditors/FlatCAMGrbEditor.py:1437 flatcamEditors/FlatCAMGrbEditor.py:1515 msgid "Click on Center point ..." msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:2020 AppEditors/FlatCAMGrbEditor.py:1454 +#: flatcamEditors/FlatCAMGeoEditor.py:2021 flatcamEditors/FlatCAMGrbEditor.py:1447 msgid "Click on Perimeter point to complete ..." msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:2052 +#: flatcamEditors/FlatCAMGeoEditor.py:2053 msgid "Done. Adding Circle completed." msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:2106 AppEditors/FlatCAMGrbEditor.py:1555 +#: flatcamEditors/FlatCAMGeoEditor.py:2107 flatcamEditors/FlatCAMGrbEditor.py:1548 msgid "Click on Start point ..." msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:2108 AppEditors/FlatCAMGrbEditor.py:1557 +#: flatcamEditors/FlatCAMGeoEditor.py:2109 flatcamEditors/FlatCAMGrbEditor.py:1550 msgid "Click on Point3 ..." msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:2110 AppEditors/FlatCAMGrbEditor.py:1559 +#: flatcamEditors/FlatCAMGeoEditor.py:2111 flatcamEditors/FlatCAMGrbEditor.py:1552 msgid "Click on Stop point ..." msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:2115 AppEditors/FlatCAMGrbEditor.py:1564 +#: flatcamEditors/FlatCAMGeoEditor.py:2116 flatcamEditors/FlatCAMGrbEditor.py:1557 msgid "Click on Stop point to complete ..." msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:2117 AppEditors/FlatCAMGrbEditor.py:1566 +#: flatcamEditors/FlatCAMGeoEditor.py:2118 flatcamEditors/FlatCAMGrbEditor.py:1559 msgid "Click on Point2 to complete ..." msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:2119 AppEditors/FlatCAMGrbEditor.py:1568 +#: flatcamEditors/FlatCAMGeoEditor.py:2120 flatcamEditors/FlatCAMGrbEditor.py:1561 msgid "Click on Center point to complete ..." msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:2131 +#: flatcamEditors/FlatCAMGeoEditor.py:2132 #, python-format msgid "Direction: %s" msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:2145 AppEditors/FlatCAMGrbEditor.py:1594 +#: flatcamEditors/FlatCAMGeoEditor.py:2146 flatcamEditors/FlatCAMGrbEditor.py:1587 msgid "Mode: Start -> Stop -> Center. Click on Start point ..." msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:2148 AppEditors/FlatCAMGrbEditor.py:1597 +#: flatcamEditors/FlatCAMGeoEditor.py:2149 flatcamEditors/FlatCAMGrbEditor.py:1590 msgid "Mode: Point1 -> Point3 -> Point2. Click on Point1 ..." msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:2151 AppEditors/FlatCAMGrbEditor.py:1600 +#: flatcamEditors/FlatCAMGeoEditor.py:2152 flatcamEditors/FlatCAMGrbEditor.py:1593 msgid "Mode: Center -> Start -> Stop. Click on Center point ..." msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:2292 +#: flatcamEditors/FlatCAMGeoEditor.py:2293 msgid "Done. Arc completed." msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:2323 AppEditors/FlatCAMGeoEditor.py:2396 +#: flatcamEditors/FlatCAMGeoEditor.py:2324 flatcamEditors/FlatCAMGeoEditor.py:2397 msgid "Click on 1st corner ..." msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:2335 +#: flatcamEditors/FlatCAMGeoEditor.py:2336 msgid "Click on opposite corner to complete ..." msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:2365 +#: flatcamEditors/FlatCAMGeoEditor.py:2366 msgid "Done. Rectangle completed." msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:2409 AppTools/ToolIsolation.py:2527 -#: AppTools/ToolNCC.py:1754 AppTools/ToolPaint.py:1647 Common.py:322 +#: flatcamEditors/FlatCAMGeoEditor.py:2410 flatcamObjects/FlatCAMGeometry.py:2648 +#: flatcamTools/ToolNCC.py:1733 flatcamTools/ToolPaint.py:1628 msgid "Click on next Point or click right mouse button to complete ..." msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:2440 +#: flatcamEditors/FlatCAMGeoEditor.py:2441 msgid "Done. Polygon completed." msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:2454 AppEditors/FlatCAMGeoEditor.py:2519 -#: AppEditors/FlatCAMGrbEditor.py:1102 AppEditors/FlatCAMGrbEditor.py:1322 +#: flatcamEditors/FlatCAMGeoEditor.py:2455 flatcamEditors/FlatCAMGeoEditor.py:2520 +#: flatcamEditors/FlatCAMGrbEditor.py:1113 flatcamEditors/FlatCAMGrbEditor.py:1324 msgid "Backtracked one point ..." msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:2497 +#: flatcamEditors/FlatCAMGeoEditor.py:2498 msgid "Done. Path completed." msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:2656 +#: flatcamEditors/FlatCAMGeoEditor.py:2657 msgid "No shape selected. Select a shape to explode" msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:2689 +#: flatcamEditors/FlatCAMGeoEditor.py:2690 msgid "Done. Polygons exploded into lines." msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:2721 +#: flatcamEditors/FlatCAMGeoEditor.py:2722 msgid "MOVE: No shape selected. Select a shape to move" msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:2724 AppEditors/FlatCAMGeoEditor.py:2744 +#: flatcamEditors/FlatCAMGeoEditor.py:2725 flatcamEditors/FlatCAMGeoEditor.py:2745 msgid " MOVE: Click on reference point ..." msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:2729 +#: flatcamEditors/FlatCAMGeoEditor.py:2730 msgid " Click on destination point ..." msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:2769 +#: flatcamEditors/FlatCAMGeoEditor.py:2770 msgid "Done. Geometry(s) Move completed." msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:2902 +#: flatcamEditors/FlatCAMGeoEditor.py:2903 msgid "Done. Geometry(s) Copy completed." msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:2933 AppEditors/FlatCAMGrbEditor.py:897 +#: flatcamEditors/FlatCAMGeoEditor.py:2934 flatcamEditors/FlatCAMGrbEditor.py:899 msgid "Click on 1st point ..." msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:2957 +#: flatcamEditors/FlatCAMGeoEditor.py:2958 msgid "Font not supported. Only Regular, Bold, Italic and BoldItalic are supported. Error" msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:2965 +#: flatcamEditors/FlatCAMGeoEditor.py:2966 msgid "No text to add." msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:2975 +#: flatcamEditors/FlatCAMGeoEditor.py:2976 msgid " Done. Adding Text completed." msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:3012 +#: flatcamEditors/FlatCAMGeoEditor.py:3013 msgid "Create buffer geometry ..." msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:3047 AppEditors/FlatCAMGrbEditor.py:5154 +#: flatcamEditors/FlatCAMGeoEditor.py:3048 flatcamEditors/FlatCAMGrbEditor.py:5160 msgid "Done. Buffer Tool completed." msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:3075 +#: flatcamEditors/FlatCAMGeoEditor.py:3076 msgid "Done. Buffer Int Tool completed." msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:3103 +#: flatcamEditors/FlatCAMGeoEditor.py:3104 msgid "Done. Buffer Ext Tool completed." msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:3152 AppEditors/FlatCAMGrbEditor.py:2160 +#: flatcamEditors/FlatCAMGeoEditor.py:3153 flatcamEditors/FlatCAMGrbEditor.py:2153 msgid "Select a shape to act as deletion area ..." msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:3154 AppEditors/FlatCAMGeoEditor.py:3180 -#: AppEditors/FlatCAMGeoEditor.py:3186 AppEditors/FlatCAMGrbEditor.py:2162 +#: flatcamEditors/FlatCAMGeoEditor.py:3155 flatcamEditors/FlatCAMGeoEditor.py:3181 +#: flatcamEditors/FlatCAMGeoEditor.py:3187 flatcamEditors/FlatCAMGrbEditor.py:2155 msgid "Click to pick-up the erase shape..." msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:3190 AppEditors/FlatCAMGrbEditor.py:2221 +#: flatcamEditors/FlatCAMGeoEditor.py:3191 flatcamEditors/FlatCAMGrbEditor.py:2214 msgid "Click to erase ..." msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:3219 AppEditors/FlatCAMGrbEditor.py:2254 +#: flatcamEditors/FlatCAMGeoEditor.py:3220 flatcamEditors/FlatCAMGrbEditor.py:2247 msgid "Done. Eraser tool action completed." msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:3269 +#: flatcamEditors/FlatCAMGeoEditor.py:3270 msgid "Create Paint geometry ..." msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:3282 AppEditors/FlatCAMGrbEditor.py:2417 +#: flatcamEditors/FlatCAMGeoEditor.py:3283 flatcamEditors/FlatCAMGrbEditor.py:2410 msgid "Shape transformations ..." msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:3338 -#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:27 +#: flatcamEditors/FlatCAMGeoEditor.py:3339 +#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:27 msgid "Geometry Editor" msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:3344 AppEditors/FlatCAMGrbEditor.py:2495 -#: AppEditors/FlatCAMGrbEditor.py:3952 AppGUI/ObjectUI.py:282 AppGUI/ObjectUI.py:1394 -#: AppGUI/ObjectUI.py:2256 AppTools/ToolCutOut.py:95 +#: flatcamEditors/FlatCAMGeoEditor.py:3345 flatcamEditors/FlatCAMGrbEditor.py:2488 +#: flatcamEditors/FlatCAMGrbEditor.py:3969 flatcamGUI/ObjectUI.py:263 +#: flatcamGUI/ObjectUI.py:1497 flatcamGUI/ObjectUI.py:2326 flatcamTools/ToolCutOut.py:95 msgid "Type" msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:3344 AppGUI/ObjectUI.py:221 AppGUI/ObjectUI.py:521 -#: AppGUI/ObjectUI.py:1330 AppGUI/ObjectUI.py:2165 AppGUI/ObjectUI.py:2469 -#: AppGUI/ObjectUI.py:2536 AppTools/ToolCalibration.py:234 AppTools/ToolFiducials.py:70 +#: flatcamEditors/FlatCAMGeoEditor.py:3345 flatcamGUI/ObjectUI.py:218 +#: flatcamGUI/ObjectUI.py:742 flatcamGUI/ObjectUI.py:1433 flatcamGUI/ObjectUI.py:2235 +#: flatcamGUI/ObjectUI.py:2539 flatcamGUI/ObjectUI.py:2606 +#: flatcamTools/ToolCalibration.py:234 flatcamTools/ToolFiducials.py:73 msgid "Name" msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:3596 +#: flatcamEditors/FlatCAMGeoEditor.py:3587 msgid "Ring" msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:3598 +#: flatcamEditors/FlatCAMGeoEditor.py:3589 msgid "Line" msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:3600 AppGUI/MainGUI.py:1446 AppGUI/ObjectUI.py:1150 -#: AppGUI/ObjectUI.py:2005 AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:226 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:299 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:328 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:292 AppTools/ToolIsolation.py:546 -#: AppTools/ToolNCC.py:584 AppTools/ToolPaint.py:527 +#: flatcamEditors/FlatCAMGeoEditor.py:3591 flatcamGUI/FlatCAMGUI.py:2202 +#: flatcamGUI/ObjectUI.py:2074 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:218 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:328 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:292 flatcamTools/ToolNCC.py:584 +#: flatcamTools/ToolPaint.py:528 msgid "Polygon" msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:3602 +#: flatcamEditors/FlatCAMGeoEditor.py:3593 msgid "Multi-Line" msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:3604 +#: flatcamEditors/FlatCAMGeoEditor.py:3595 msgid "Multi-Polygon" msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:3611 +#: flatcamEditors/FlatCAMGeoEditor.py:3602 msgid "Geo Elem" msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:4064 +#: flatcamEditors/FlatCAMGeoEditor.py:4076 msgid "Editing MultiGeo Geometry, tool" msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:4066 +#: flatcamEditors/FlatCAMGeoEditor.py:4078 msgid "with diameter" msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:4138 -msgid "Grid Snap enabled." -msgstr "" - -#: AppEditors/FlatCAMGeoEditor.py:4142 -msgid "Grid Snap disabled." -msgstr "" - -#: AppEditors/FlatCAMGeoEditor.py:4503 AppGUI/MainGUI.py:3046 AppGUI/MainGUI.py:3092 -#: AppGUI/MainGUI.py:3110 AppGUI/MainGUI.py:3254 AppGUI/MainGUI.py:3293 -#: AppGUI/MainGUI.py:3305 AppGUI/MainGUI.py:3322 +#: flatcamEditors/FlatCAMGeoEditor.py:4509 flatcamGUI/FlatCAMGUI.py:3753 +#: flatcamGUI/FlatCAMGUI.py:3799 flatcamGUI/FlatCAMGUI.py:3817 flatcamGUI/FlatCAMGUI.py:3961 +#: flatcamGUI/FlatCAMGUI.py:4000 flatcamGUI/FlatCAMGUI.py:4012 flatcamGUI/FlatCAMGUI.py:4029 msgid "Click on target point." msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:4819 AppEditors/FlatCAMGeoEditor.py:4854 +#: flatcamEditors/FlatCAMGeoEditor.py:4823 flatcamEditors/FlatCAMGeoEditor.py:4858 msgid "A selection of at least 2 geo items is required to do Intersection." msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:4940 AppEditors/FlatCAMGeoEditor.py:5044 +#: flatcamEditors/FlatCAMGeoEditor.py:4944 flatcamEditors/FlatCAMGeoEditor.py:5048 msgid "" "Negative buffer value is not accepted. Use Buffer interior to generate an 'inside' shape" msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:4950 AppEditors/FlatCAMGeoEditor.py:5003 -#: AppEditors/FlatCAMGeoEditor.py:5053 +#: flatcamEditors/FlatCAMGeoEditor.py:4954 flatcamEditors/FlatCAMGeoEditor.py:5007 +#: flatcamEditors/FlatCAMGeoEditor.py:5057 msgid "Nothing selected for buffering." msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:4955 AppEditors/FlatCAMGeoEditor.py:5007 -#: AppEditors/FlatCAMGeoEditor.py:5058 +#: flatcamEditors/FlatCAMGeoEditor.py:4959 flatcamEditors/FlatCAMGeoEditor.py:5011 +#: flatcamEditors/FlatCAMGeoEditor.py:5062 msgid "Invalid distance for buffering." msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:4979 AppEditors/FlatCAMGeoEditor.py:5078 +#: flatcamEditors/FlatCAMGeoEditor.py:4983 flatcamEditors/FlatCAMGeoEditor.py:5082 msgid "Failed, the result is empty. Choose a different buffer value." msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:4990 +#: flatcamEditors/FlatCAMGeoEditor.py:4994 msgid "Full buffer geometry created." msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:4996 +#: flatcamEditors/FlatCAMGeoEditor.py:5000 msgid "Negative buffer value is not accepted." msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:5027 +#: flatcamEditors/FlatCAMGeoEditor.py:5031 msgid "Failed, the result is empty. Choose a smaller buffer value." msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:5037 +#: flatcamEditors/FlatCAMGeoEditor.py:5041 msgid "Interior buffer geometry created." msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:5088 +#: flatcamEditors/FlatCAMGeoEditor.py:5092 msgid "Exterior buffer geometry created." msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:5094 +#: flatcamEditors/FlatCAMGeoEditor.py:5098 #, python-format msgid "Could not do Paint. Overlap value has to be less than 100%%." msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:5101 +#: flatcamEditors/FlatCAMGeoEditor.py:5105 msgid "Nothing selected for painting." msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:5107 +#: flatcamEditors/FlatCAMGeoEditor.py:5111 msgid "Invalid value for" msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:5166 +#: flatcamEditors/FlatCAMGeoEditor.py:5170 msgid "" "Could not do Paint. Try a different combination of parameters. Or a different method of " "Paint" msgstr "" -#: AppEditors/FlatCAMGeoEditor.py:5177 +#: flatcamEditors/FlatCAMGeoEditor.py:5181 msgid "Paint done." msgstr "" -#: AppEditors/FlatCAMGrbEditor.py:211 +#: flatcamEditors/FlatCAMGrbEditor.py:213 msgid "To add an Pad first select a aperture in Aperture Table" msgstr "" -#: AppEditors/FlatCAMGrbEditor.py:218 AppEditors/FlatCAMGrbEditor.py:418 +#: flatcamEditors/FlatCAMGrbEditor.py:220 flatcamEditors/FlatCAMGrbEditor.py:420 msgid "Aperture size is zero. It needs to be greater than zero." msgstr "" -#: AppEditors/FlatCAMGrbEditor.py:371 AppEditors/FlatCAMGrbEditor.py:684 +#: flatcamEditors/FlatCAMGrbEditor.py:373 flatcamEditors/FlatCAMGrbEditor.py:686 msgid "Incompatible aperture type. Select an aperture with type 'C', 'R' or 'O'." msgstr "" -#: AppEditors/FlatCAMGrbEditor.py:383 +#: flatcamEditors/FlatCAMGrbEditor.py:385 msgid "Done. Adding Pad completed." msgstr "" -#: AppEditors/FlatCAMGrbEditor.py:410 +#: flatcamEditors/FlatCAMGrbEditor.py:412 msgid "To add an Pad Array first select a aperture in Aperture Table" msgstr "" -#: AppEditors/FlatCAMGrbEditor.py:490 +#: flatcamEditors/FlatCAMGrbEditor.py:492 msgid "Click on the Pad Circular Array Start position" msgstr "" -#: AppEditors/FlatCAMGrbEditor.py:710 +#: flatcamEditors/FlatCAMGrbEditor.py:712 msgid "Too many Pads for the selected spacing angle." msgstr "" -#: AppEditors/FlatCAMGrbEditor.py:733 +#: flatcamEditors/FlatCAMGrbEditor.py:735 msgid "Done. Pad Array added." msgstr "" -#: AppEditors/FlatCAMGrbEditor.py:758 +#: flatcamEditors/FlatCAMGrbEditor.py:760 msgid "Select shape(s) and then click ..." msgstr "" -#: AppEditors/FlatCAMGrbEditor.py:770 +#: flatcamEditors/FlatCAMGrbEditor.py:772 msgid "Failed. Nothing selected." msgstr "" -#: AppEditors/FlatCAMGrbEditor.py:786 +#: flatcamEditors/FlatCAMGrbEditor.py:788 msgid "Failed. Poligonize works only on geometries belonging to the same aperture." msgstr "" -#: AppEditors/FlatCAMGrbEditor.py:840 +#: flatcamEditors/FlatCAMGrbEditor.py:842 msgid "Done. Poligonize completed." msgstr "" -#: AppEditors/FlatCAMGrbEditor.py:895 AppEditors/FlatCAMGrbEditor.py:1119 -#: AppEditors/FlatCAMGrbEditor.py:1143 +#: flatcamEditors/FlatCAMGrbEditor.py:897 flatcamEditors/FlatCAMGrbEditor.py:1130 +#: flatcamEditors/FlatCAMGrbEditor.py:1154 msgid "Corner Mode 1: 45 degrees ..." msgstr "" -#: AppEditors/FlatCAMGrbEditor.py:907 AppEditors/FlatCAMGrbEditor.py:1219 +#: flatcamEditors/FlatCAMGrbEditor.py:909 flatcamEditors/FlatCAMGrbEditor.py:1239 msgid "Click on next Point or click Right mouse button to complete ..." msgstr "" -#: AppEditors/FlatCAMGrbEditor.py:1107 AppEditors/FlatCAMGrbEditor.py:1140 +#: flatcamEditors/FlatCAMGrbEditor.py:1118 flatcamEditors/FlatCAMGrbEditor.py:1151 msgid "Corner Mode 2: Reverse 45 degrees ..." msgstr "" -#: AppEditors/FlatCAMGrbEditor.py:1110 AppEditors/FlatCAMGrbEditor.py:1137 +#: flatcamEditors/FlatCAMGrbEditor.py:1121 flatcamEditors/FlatCAMGrbEditor.py:1148 msgid "Corner Mode 3: 90 degrees ..." msgstr "" -#: AppEditors/FlatCAMGrbEditor.py:1113 AppEditors/FlatCAMGrbEditor.py:1134 +#: flatcamEditors/FlatCAMGrbEditor.py:1124 flatcamEditors/FlatCAMGrbEditor.py:1145 msgid "Corner Mode 4: Reverse 90 degrees ..." msgstr "" -#: AppEditors/FlatCAMGrbEditor.py:1116 AppEditors/FlatCAMGrbEditor.py:1131 +#: flatcamEditors/FlatCAMGrbEditor.py:1127 flatcamEditors/FlatCAMGrbEditor.py:1142 msgid "Corner Mode 5: Free angle ..." msgstr "" -#: AppEditors/FlatCAMGrbEditor.py:1193 AppEditors/FlatCAMGrbEditor.py:1358 -#: AppEditors/FlatCAMGrbEditor.py:1397 +#: flatcamEditors/FlatCAMGrbEditor.py:1184 flatcamEditors/FlatCAMGrbEditor.py:1360 +#: flatcamEditors/FlatCAMGrbEditor.py:1399 msgid "Track Mode 1: 45 degrees ..." msgstr "" -#: AppEditors/FlatCAMGrbEditor.py:1338 AppEditors/FlatCAMGrbEditor.py:1392 +#: flatcamEditors/FlatCAMGrbEditor.py:1340 flatcamEditors/FlatCAMGrbEditor.py:1394 msgid "Track Mode 2: Reverse 45 degrees ..." msgstr "" -#: AppEditors/FlatCAMGrbEditor.py:1343 AppEditors/FlatCAMGrbEditor.py:1387 +#: flatcamEditors/FlatCAMGrbEditor.py:1345 flatcamEditors/FlatCAMGrbEditor.py:1389 msgid "Track Mode 3: 90 degrees ..." msgstr "" -#: AppEditors/FlatCAMGrbEditor.py:1348 AppEditors/FlatCAMGrbEditor.py:1382 +#: flatcamEditors/FlatCAMGrbEditor.py:1350 flatcamEditors/FlatCAMGrbEditor.py:1384 msgid "Track Mode 4: Reverse 90 degrees ..." msgstr "" -#: AppEditors/FlatCAMGrbEditor.py:1353 AppEditors/FlatCAMGrbEditor.py:1377 +#: flatcamEditors/FlatCAMGrbEditor.py:1355 flatcamEditors/FlatCAMGrbEditor.py:1379 msgid "Track Mode 5: Free angle ..." msgstr "" -#: AppEditors/FlatCAMGrbEditor.py:1787 +#: flatcamEditors/FlatCAMGrbEditor.py:1780 msgid "Scale the selected Gerber apertures ..." msgstr "" -#: AppEditors/FlatCAMGrbEditor.py:1829 +#: flatcamEditors/FlatCAMGrbEditor.py:1822 msgid "Buffer the selected apertures ..." msgstr "" -#: AppEditors/FlatCAMGrbEditor.py:1871 +#: flatcamEditors/FlatCAMGrbEditor.py:1864 msgid "Mark polygon areas in the edited Gerber ..." msgstr "" -#: AppEditors/FlatCAMGrbEditor.py:1937 +#: flatcamEditors/FlatCAMGrbEditor.py:1930 msgid "Nothing selected to move" msgstr "" -#: AppEditors/FlatCAMGrbEditor.py:2062 +#: flatcamEditors/FlatCAMGrbEditor.py:2055 msgid "Done. Apertures Move completed." msgstr "" -#: AppEditors/FlatCAMGrbEditor.py:2144 +#: flatcamEditors/FlatCAMGrbEditor.py:2137 msgid "Done. Apertures copied." msgstr "" -#: AppEditors/FlatCAMGrbEditor.py:2462 AppGUI/MainGUI.py:1477 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:27 +#: flatcamEditors/FlatCAMGrbEditor.py:2455 flatcamGUI/FlatCAMGUI.py:2233 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:27 msgid "Gerber Editor" msgstr "" -#: AppEditors/FlatCAMGrbEditor.py:2482 AppGUI/ObjectUI.py:247 AppTools/ToolProperties.py:159 +#: flatcamEditors/FlatCAMGrbEditor.py:2475 flatcamGUI/ObjectUI.py:228 +#: flatcamTools/ToolProperties.py:159 msgid "Apertures" msgstr "" -#: AppEditors/FlatCAMGrbEditor.py:2484 AppGUI/ObjectUI.py:249 +#: flatcamEditors/FlatCAMGrbEditor.py:2477 flatcamGUI/ObjectUI.py:230 msgid "Apertures Table for the Gerber Object." msgstr "" -#: AppEditors/FlatCAMGrbEditor.py:2495 AppEditors/FlatCAMGrbEditor.py:3952 -#: AppGUI/ObjectUI.py:282 +#: flatcamEditors/FlatCAMGrbEditor.py:2488 flatcamEditors/FlatCAMGrbEditor.py:3969 +#: flatcamGUI/ObjectUI.py:263 msgid "Code" msgstr "" -#: AppEditors/FlatCAMGrbEditor.py:2495 AppEditors/FlatCAMGrbEditor.py:3952 -#: AppGUI/ObjectUI.py:282 AppGUI/preferences/general/GeneralAPPSetGroupUI.py:103 -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:167 -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:196 -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:43 -#: AppTools/ToolCopperThieving.py:265 AppTools/ToolCopperThieving.py:305 -#: AppTools/ToolFiducials.py:159 +#: flatcamEditors/FlatCAMGrbEditor.py:2488 flatcamEditors/FlatCAMGrbEditor.py:3969 +#: flatcamGUI/ObjectUI.py:263 flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:103 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:167 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:196 +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:43 +#: flatcamTools/ToolCopperThieving.py:261 flatcamTools/ToolCopperThieving.py:301 +#: flatcamTools/ToolFiducials.py:156 msgid "Size" msgstr "" -#: AppEditors/FlatCAMGrbEditor.py:2495 AppEditors/FlatCAMGrbEditor.py:3952 -#: AppGUI/ObjectUI.py:282 +#: flatcamEditors/FlatCAMGrbEditor.py:2488 flatcamEditors/FlatCAMGrbEditor.py:3969 +#: flatcamGUI/ObjectUI.py:263 msgid "Dim" msgstr "" -#: AppEditors/FlatCAMGrbEditor.py:2500 AppGUI/ObjectUI.py:286 +#: flatcamEditors/FlatCAMGrbEditor.py:2493 flatcamGUI/ObjectUI.py:267 msgid "Index" msgstr "" -#: AppEditors/FlatCAMGrbEditor.py:2502 AppEditors/FlatCAMGrbEditor.py:2531 -#: AppGUI/ObjectUI.py:288 +#: flatcamEditors/FlatCAMGrbEditor.py:2495 flatcamEditors/FlatCAMGrbEditor.py:2524 +#: flatcamGUI/ObjectUI.py:269 msgid "Aperture Code" msgstr "" -#: AppEditors/FlatCAMGrbEditor.py:2504 AppGUI/ObjectUI.py:290 +#: flatcamEditors/FlatCAMGrbEditor.py:2497 flatcamGUI/ObjectUI.py:271 msgid "Type of aperture: circular, rectangle, macros etc" msgstr "" -#: AppEditors/FlatCAMGrbEditor.py:2506 AppGUI/ObjectUI.py:292 +#: flatcamEditors/FlatCAMGrbEditor.py:2499 flatcamGUI/ObjectUI.py:273 msgid "Aperture Size:" msgstr "" -#: AppEditors/FlatCAMGrbEditor.py:2508 AppGUI/ObjectUI.py:294 +#: flatcamEditors/FlatCAMGrbEditor.py:2501 flatcamGUI/ObjectUI.py:275 msgid "" "Aperture Dimensions:\n" " - (width, height) for R, O type.\n" " - (dia, nVertices) for P type" msgstr "" -#: AppEditors/FlatCAMGrbEditor.py:2532 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:58 +#: flatcamEditors/FlatCAMGrbEditor.py:2525 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:58 msgid "Code for the new aperture" msgstr "" -#: AppEditors/FlatCAMGrbEditor.py:2541 +#: flatcamEditors/FlatCAMGrbEditor.py:2534 msgid "Aperture Size" msgstr "" -#: AppEditors/FlatCAMGrbEditor.py:2543 +#: flatcamEditors/FlatCAMGrbEditor.py:2536 msgid "" "Size for the new aperture.\n" "If aperture type is 'R' or 'O' then\n" @@ -2447,11 +4090,11 @@ msgid "" "sqrt(width**2 + height**2)" msgstr "" -#: AppEditors/FlatCAMGrbEditor.py:2557 +#: flatcamEditors/FlatCAMGrbEditor.py:2550 msgid "Aperture Type" msgstr "" -#: AppEditors/FlatCAMGrbEditor.py:2559 +#: flatcamEditors/FlatCAMGrbEditor.py:2552 msgid "" "Select the type of new aperture. Can be:\n" "C = circular\n" @@ -2459,61 +4102,51 @@ msgid "" "O = oblong" msgstr "" -#: AppEditors/FlatCAMGrbEditor.py:2570 +#: flatcamEditors/FlatCAMGrbEditor.py:2563 msgid "Aperture Dim" msgstr "" -#: AppEditors/FlatCAMGrbEditor.py:2572 +#: flatcamEditors/FlatCAMGrbEditor.py:2565 msgid "" "Dimensions for the new aperture.\n" "Active only for rectangular apertures (type R).\n" "The format is (width, height)" msgstr "" -#: AppEditors/FlatCAMGrbEditor.py:2581 +#: flatcamEditors/FlatCAMGrbEditor.py:2574 msgid "Add/Delete Aperture" msgstr "" -#: AppEditors/FlatCAMGrbEditor.py:2583 +#: flatcamEditors/FlatCAMGrbEditor.py:2576 msgid "Add/Delete an aperture in the aperture table" msgstr "" -#: AppEditors/FlatCAMGrbEditor.py:2592 +#: flatcamEditors/FlatCAMGrbEditor.py:2585 msgid "Add a new aperture to the aperture list." msgstr "" -#: AppEditors/FlatCAMGrbEditor.py:2595 AppEditors/FlatCAMGrbEditor.py:2743 -#: AppGUI/MainGUI.py:748 AppGUI/MainGUI.py:1068 AppGUI/MainGUI.py:1527 -#: AppGUI/MainGUI.py:2099 AppGUI/MainGUI.py:4514 AppGUI/ObjectUI.py:1525 -#: AppObjects/FlatCAMGeometry.py:563 AppTools/ToolIsolation.py:298 -#: AppTools/ToolIsolation.py:616 AppTools/ToolNCC.py:316 AppTools/ToolNCC.py:637 -#: AppTools/ToolPaint.py:298 AppTools/ToolPaint.py:681 AppTools/ToolSolderPaste.py:133 -#: AppTools/ToolSolderPaste.py:608 App_Main.py:5672 -msgid "Delete" -msgstr "" - -#: AppEditors/FlatCAMGrbEditor.py:2597 +#: flatcamEditors/FlatCAMGrbEditor.py:2590 msgid "Delete a aperture in the aperture list" msgstr "" -#: AppEditors/FlatCAMGrbEditor.py:2614 +#: flatcamEditors/FlatCAMGrbEditor.py:2607 msgid "Buffer Aperture" msgstr "" -#: AppEditors/FlatCAMGrbEditor.py:2616 +#: flatcamEditors/FlatCAMGrbEditor.py:2609 msgid "Buffer a aperture in the aperture list" msgstr "" -#: AppEditors/FlatCAMGrbEditor.py:2629 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:195 +#: flatcamEditors/FlatCAMGrbEditor.py:2622 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:194 msgid "Buffer distance" msgstr "" -#: AppEditors/FlatCAMGrbEditor.py:2630 +#: flatcamEditors/FlatCAMGrbEditor.py:2623 msgid "Buffer corner" msgstr "" -#: AppEditors/FlatCAMGrbEditor.py:2632 +#: flatcamEditors/FlatCAMGrbEditor.py:2625 msgid "" "There are 3 types of corners:\n" " - 'Round': the corner is rounded.\n" @@ -2522,101 +4155,103 @@ msgid "" "corner" msgstr "" -#: AppEditors/FlatCAMGrbEditor.py:2647 AppGUI/MainGUI.py:1055 AppGUI/MainGUI.py:1454 -#: AppGUI/MainGUI.py:1497 AppGUI/MainGUI.py:2087 AppGUI/MainGUI.py:4511 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:200 AppTools/ToolTransform.py:29 +#: flatcamEditors/FlatCAMGrbEditor.py:2640 flatcamGUI/FlatCAMGUI.py:1061 +#: flatcamGUI/FlatCAMGUI.py:2138 flatcamGUI/FlatCAMGUI.py:2210 flatcamGUI/FlatCAMGUI.py:2253 +#: flatcamGUI/FlatCAMGUI.py:2765 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:200 +#: flatcamTools/ToolTransform.py:29 msgid "Buffer" msgstr "" -#: AppEditors/FlatCAMGrbEditor.py:2662 +#: flatcamEditors/FlatCAMGrbEditor.py:2655 msgid "Scale Aperture" msgstr "" -#: AppEditors/FlatCAMGrbEditor.py:2664 +#: flatcamEditors/FlatCAMGrbEditor.py:2657 msgid "Scale a aperture in the aperture list" msgstr "" -#: AppEditors/FlatCAMGrbEditor.py:2672 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:210 +#: flatcamEditors/FlatCAMGrbEditor.py:2665 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:209 msgid "Scale factor" msgstr "" -#: AppEditors/FlatCAMGrbEditor.py:2674 +#: flatcamEditors/FlatCAMGrbEditor.py:2667 msgid "" "The factor by which to scale the selected aperture.\n" "Values can be between 0.0000 and 999.9999" msgstr "" -#: AppEditors/FlatCAMGrbEditor.py:2702 +#: flatcamEditors/FlatCAMGrbEditor.py:2695 msgid "Mark polygons" msgstr "" -#: AppEditors/FlatCAMGrbEditor.py:2704 +#: flatcamEditors/FlatCAMGrbEditor.py:2697 msgid "Mark the polygon areas." msgstr "" -#: AppEditors/FlatCAMGrbEditor.py:2712 +#: flatcamEditors/FlatCAMGrbEditor.py:2705 msgid "Area UPPER threshold" msgstr "" -#: AppEditors/FlatCAMGrbEditor.py:2714 +#: flatcamEditors/FlatCAMGrbEditor.py:2707 msgid "" "The threshold value, all areas less than this are marked.\n" "Can have a value between 0.0000 and 9999.9999" msgstr "" -#: AppEditors/FlatCAMGrbEditor.py:2721 +#: flatcamEditors/FlatCAMGrbEditor.py:2714 msgid "Area LOWER threshold" msgstr "" -#: AppEditors/FlatCAMGrbEditor.py:2723 +#: flatcamEditors/FlatCAMGrbEditor.py:2716 msgid "" "The threshold value, all areas more than this are marked.\n" "Can have a value between 0.0000 and 9999.9999" msgstr "" -#: AppEditors/FlatCAMGrbEditor.py:2737 +#: flatcamEditors/FlatCAMGrbEditor.py:2730 msgid "Mark" msgstr "" -#: AppEditors/FlatCAMGrbEditor.py:2739 +#: flatcamEditors/FlatCAMGrbEditor.py:2732 msgid "Mark the polygons that fit within limits." msgstr "" -#: AppEditors/FlatCAMGrbEditor.py:2745 +#: flatcamEditors/FlatCAMGrbEditor.py:2738 msgid "Delete all the marked polygons." msgstr "" -#: AppEditors/FlatCAMGrbEditor.py:2751 +#: flatcamEditors/FlatCAMGrbEditor.py:2744 msgid "Clear all the markings." msgstr "" -#: AppEditors/FlatCAMGrbEditor.py:2771 AppGUI/MainGUI.py:1040 AppGUI/MainGUI.py:2072 -#: AppGUI/MainGUI.py:4511 +#: flatcamEditors/FlatCAMGrbEditor.py:2764 flatcamGUI/FlatCAMGUI.py:1046 +#: flatcamGUI/FlatCAMGUI.py:2138 flatcamGUI/FlatCAMGUI.py:2750 msgid "Add Pad Array" msgstr "" -#: AppEditors/FlatCAMGrbEditor.py:2773 +#: flatcamEditors/FlatCAMGrbEditor.py:2766 msgid "Add an array of pads (linear or circular array)" msgstr "" -#: AppEditors/FlatCAMGrbEditor.py:2779 +#: flatcamEditors/FlatCAMGrbEditor.py:2772 msgid "" "Select the type of pads array to create.\n" "It can be Linear X(Y) or Circular" msgstr "" -#: AppEditors/FlatCAMGrbEditor.py:2790 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:95 +#: flatcamEditors/FlatCAMGrbEditor.py:2783 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:95 msgid "Nr of pads" msgstr "" -#: AppEditors/FlatCAMGrbEditor.py:2792 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:97 +#: flatcamEditors/FlatCAMGrbEditor.py:2785 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:97 msgid "Specify how many pads to be in the array." msgstr "" -#: AppEditors/FlatCAMGrbEditor.py:2841 +#: flatcamEditors/FlatCAMGrbEditor.py:2834 msgid "" "Angle at which the linear array is placed.\n" "The precision is of max 2 decimals.\n" @@ -2624,573 +4259,488 @@ msgid "" "Max value is: 360.00 degrees." msgstr "" -#: AppEditors/FlatCAMGrbEditor.py:3335 AppEditors/FlatCAMGrbEditor.py:3339 +#: flatcamEditors/FlatCAMGrbEditor.py:3328 flatcamEditors/FlatCAMGrbEditor.py:3332 msgid "Aperture code value is missing or wrong format. Add it and retry." msgstr "" -#: AppEditors/FlatCAMGrbEditor.py:3375 +#: flatcamEditors/FlatCAMGrbEditor.py:3368 msgid "" "Aperture dimensions value is missing or wrong format. Add it in format (width, height) " "and retry." msgstr "" -#: AppEditors/FlatCAMGrbEditor.py:3388 +#: flatcamEditors/FlatCAMGrbEditor.py:3381 msgid "Aperture size value is missing or wrong format. Add it and retry." msgstr "" -#: AppEditors/FlatCAMGrbEditor.py:3399 +#: flatcamEditors/FlatCAMGrbEditor.py:3392 msgid "Aperture already in the aperture table." msgstr "" -#: AppEditors/FlatCAMGrbEditor.py:3406 +#: flatcamEditors/FlatCAMGrbEditor.py:3399 msgid "Added new aperture with code" msgstr "" -#: AppEditors/FlatCAMGrbEditor.py:3438 +#: flatcamEditors/FlatCAMGrbEditor.py:3431 msgid " Select an aperture in Aperture Table" msgstr "" -#: AppEditors/FlatCAMGrbEditor.py:3446 +#: flatcamEditors/FlatCAMGrbEditor.py:3439 msgid "Select an aperture in Aperture Table -->" msgstr "" -#: AppEditors/FlatCAMGrbEditor.py:3460 +#: flatcamEditors/FlatCAMGrbEditor.py:3453 msgid "Deleted aperture with code" msgstr "" -#: AppEditors/FlatCAMGrbEditor.py:3528 +#: flatcamEditors/FlatCAMGrbEditor.py:3521 msgid "Dimensions need two float values separated by comma." msgstr "" -#: AppEditors/FlatCAMGrbEditor.py:3537 +#: flatcamEditors/FlatCAMGrbEditor.py:3530 msgid "Dimensions edited." msgstr "" -#: AppEditors/FlatCAMGrbEditor.py:4067 +#: flatcamEditors/FlatCAMGrbEditor.py:4084 msgid "Loading Gerber into Editor" msgstr "" -#: AppEditors/FlatCAMGrbEditor.py:4195 +#: flatcamEditors/FlatCAMGrbEditor.py:4212 msgid "Setting up the UI" msgstr "" -#: AppEditors/FlatCAMGrbEditor.py:4196 -msgid "Adding geometry finished. Preparing the AppGUI" +#: flatcamEditors/FlatCAMGrbEditor.py:4213 +msgid "Adding geometry finished. Preparing the GUI" msgstr "" -#: AppEditors/FlatCAMGrbEditor.py:4205 +#: flatcamEditors/FlatCAMGrbEditor.py:4222 msgid "Finished loading the Gerber object into the editor." msgstr "" -#: AppEditors/FlatCAMGrbEditor.py:4346 +#: flatcamEditors/FlatCAMGrbEditor.py:4361 msgid "There are no Aperture definitions in the file. Aborting Gerber creation." msgstr "" -#: AppEditors/FlatCAMGrbEditor.py:4348 AppObjects/AppObject.py:133 -#: AppObjects/FlatCAMGeometry.py:1786 AppParsers/ParseExcellon.py:896 -#: AppTools/ToolPcbWizard.py:432 App_Main.py:8465 App_Main.py:8529 App_Main.py:8660 -#: App_Main.py:8725 App_Main.py:9377 -msgid "An internal error has occurred. See shell.\n" -msgstr "" - -#: AppEditors/FlatCAMGrbEditor.py:4356 +#: flatcamEditors/FlatCAMGrbEditor.py:4371 msgid "Creating Gerber." msgstr "" -#: AppEditors/FlatCAMGrbEditor.py:4368 +#: flatcamEditors/FlatCAMGrbEditor.py:4380 msgid "Done. Gerber editing finished." msgstr "" -#: AppEditors/FlatCAMGrbEditor.py:4384 +#: flatcamEditors/FlatCAMGrbEditor.py:4398 msgid "Cancelled. No aperture is selected" msgstr "" -#: AppEditors/FlatCAMGrbEditor.py:4539 App_Main.py:5998 -msgid "Coordinates copied to clipboard." -msgstr "" - -#: AppEditors/FlatCAMGrbEditor.py:4986 +#: flatcamEditors/FlatCAMGrbEditor.py:4992 msgid "Failed. No aperture geometry is selected." msgstr "" -#: AppEditors/FlatCAMGrbEditor.py:4995 AppEditors/FlatCAMGrbEditor.py:5266 +#: flatcamEditors/FlatCAMGrbEditor.py:5001 flatcamEditors/FlatCAMGrbEditor.py:5272 msgid "Done. Apertures geometry deleted." msgstr "" -#: AppEditors/FlatCAMGrbEditor.py:5138 +#: flatcamEditors/FlatCAMGrbEditor.py:5144 msgid "No aperture to buffer. Select at least one aperture and try again." msgstr "" -#: AppEditors/FlatCAMGrbEditor.py:5150 +#: flatcamEditors/FlatCAMGrbEditor.py:5156 msgid "Failed." msgstr "" -#: AppEditors/FlatCAMGrbEditor.py:5169 +#: flatcamEditors/FlatCAMGrbEditor.py:5175 msgid "Scale factor value is missing or wrong format. Add it and retry." msgstr "" -#: AppEditors/FlatCAMGrbEditor.py:5201 +#: flatcamEditors/FlatCAMGrbEditor.py:5207 msgid "No aperture to scale. Select at least one aperture and try again." msgstr "" -#: AppEditors/FlatCAMGrbEditor.py:5217 +#: flatcamEditors/FlatCAMGrbEditor.py:5223 msgid "Done. Scale Tool completed." msgstr "" -#: AppEditors/FlatCAMGrbEditor.py:5255 +#: flatcamEditors/FlatCAMGrbEditor.py:5261 msgid "Polygons marked." msgstr "" -#: AppEditors/FlatCAMGrbEditor.py:5258 +#: flatcamEditors/FlatCAMGrbEditor.py:5264 msgid "No polygons were marked. None fit within the limits." msgstr "" -#: AppEditors/FlatCAMGrbEditor.py:5982 +#: flatcamEditors/FlatCAMGrbEditor.py:5988 msgid "Rotation action was not executed." msgstr "" -#: AppEditors/FlatCAMGrbEditor.py:6053 App_Main.py:5432 App_Main.py:5480 -msgid "Flip action was not executed." -msgstr "" - -#: AppEditors/FlatCAMGrbEditor.py:6110 +#: flatcamEditors/FlatCAMGrbEditor.py:6116 msgid "Skew action was not executed." msgstr "" -#: AppEditors/FlatCAMGrbEditor.py:6175 +#: flatcamEditors/FlatCAMGrbEditor.py:6181 msgid "Scale action was not executed." msgstr "" -#: AppEditors/FlatCAMGrbEditor.py:6218 +#: flatcamEditors/FlatCAMGrbEditor.py:6224 msgid "Offset action was not executed." msgstr "" -#: AppEditors/FlatCAMGrbEditor.py:6268 +#: flatcamEditors/FlatCAMGrbEditor.py:6274 msgid "Geometry shape offset Y cancelled" msgstr "" -#: AppEditors/FlatCAMGrbEditor.py:6283 +#: flatcamEditors/FlatCAMGrbEditor.py:6289 msgid "Geometry shape skew X cancelled" msgstr "" -#: AppEditors/FlatCAMGrbEditor.py:6298 +#: flatcamEditors/FlatCAMGrbEditor.py:6304 msgid "Geometry shape skew Y cancelled" msgstr "" -#: AppEditors/FlatCAMTextEditor.py:74 +#: flatcamEditors/FlatCAMTextEditor.py:74 msgid "Print Preview" msgstr "" -#: AppEditors/FlatCAMTextEditor.py:75 +#: flatcamEditors/FlatCAMTextEditor.py:75 msgid "Open a OS standard Preview Print window." msgstr "" -#: AppEditors/FlatCAMTextEditor.py:78 +#: flatcamEditors/FlatCAMTextEditor.py:78 msgid "Print Code" msgstr "" -#: AppEditors/FlatCAMTextEditor.py:79 +#: flatcamEditors/FlatCAMTextEditor.py:79 msgid "Open a OS standard Print window." msgstr "" -#: AppEditors/FlatCAMTextEditor.py:81 +#: flatcamEditors/FlatCAMTextEditor.py:81 msgid "Find in Code" msgstr "" -#: AppEditors/FlatCAMTextEditor.py:82 +#: flatcamEditors/FlatCAMTextEditor.py:82 msgid "Will search and highlight in yellow the string in the Find box." msgstr "" -#: AppEditors/FlatCAMTextEditor.py:86 +#: flatcamEditors/FlatCAMTextEditor.py:86 msgid "Find box. Enter here the strings to be searched in the text." msgstr "" -#: AppEditors/FlatCAMTextEditor.py:88 +#: flatcamEditors/FlatCAMTextEditor.py:88 msgid "Replace With" msgstr "" -#: AppEditors/FlatCAMTextEditor.py:89 +#: flatcamEditors/FlatCAMTextEditor.py:89 msgid "Will replace the string from the Find box with the one in the Replace box." msgstr "" -#: AppEditors/FlatCAMTextEditor.py:93 +#: flatcamEditors/FlatCAMTextEditor.py:93 msgid "String to replace the one in the Find box throughout the text." msgstr "" -#: AppEditors/FlatCAMTextEditor.py:95 AppGUI/ObjectUI.py:2149 -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:54 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:285 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280 AppTools/ToolIsolation.py:504 -#: AppTools/ToolIsolation.py:1287 AppTools/ToolIsolation.py:1669 AppTools/ToolPaint.py:485 -#: AppTools/ToolPaint.py:1446 defaults.py:403 defaults.py:446 -#: tclCommands/TclCommandPaint.py:162 +#: flatcamEditors/FlatCAMTextEditor.py:95 flatcamGUI/ObjectUI.py:486 +#: flatcamGUI/ObjectUI.py:2219 flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:54 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:88 msgid "All" msgstr "" -#: AppEditors/FlatCAMTextEditor.py:96 +#: flatcamEditors/FlatCAMTextEditor.py:96 msgid "" "When checked it will replace all instances in the 'Find' box\n" "with the text in the 'Replace' box.." msgstr "" -#: AppEditors/FlatCAMTextEditor.py:99 +#: flatcamEditors/FlatCAMTextEditor.py:99 msgid "Copy All" msgstr "" -#: AppEditors/FlatCAMTextEditor.py:100 +#: flatcamEditors/FlatCAMTextEditor.py:100 msgid "Will copy all the text in the Code Editor to the clipboard." msgstr "" -#: AppEditors/FlatCAMTextEditor.py:103 +#: flatcamEditors/FlatCAMTextEditor.py:103 msgid "Open Code" msgstr "" -#: AppEditors/FlatCAMTextEditor.py:104 +#: flatcamEditors/FlatCAMTextEditor.py:104 msgid "Will open a text file in the editor." msgstr "" -#: AppEditors/FlatCAMTextEditor.py:106 +#: flatcamEditors/FlatCAMTextEditor.py:106 msgid "Save Code" msgstr "" -#: AppEditors/FlatCAMTextEditor.py:107 +#: flatcamEditors/FlatCAMTextEditor.py:107 msgid "Will save the text in the editor into a file." msgstr "" -#: AppEditors/FlatCAMTextEditor.py:109 +#: flatcamEditors/FlatCAMTextEditor.py:109 msgid "Run Code" msgstr "" -#: AppEditors/FlatCAMTextEditor.py:110 +#: flatcamEditors/FlatCAMTextEditor.py:110 msgid "Will run the TCL commands found in the text file, one by one." msgstr "" -#: AppEditors/FlatCAMTextEditor.py:184 +#: flatcamEditors/FlatCAMTextEditor.py:184 msgid "Open file" msgstr "" -#: AppEditors/FlatCAMTextEditor.py:215 AppEditors/FlatCAMTextEditor.py:220 -#: AppObjects/FlatCAMCNCJob.py:507 AppObjects/FlatCAMCNCJob.py:512 -#: AppTools/ToolSolderPaste.py:1508 +#: flatcamEditors/FlatCAMTextEditor.py:215 flatcamEditors/FlatCAMTextEditor.py:220 msgid "Export Code ..." msgstr "" -#: AppEditors/FlatCAMTextEditor.py:272 AppObjects/FlatCAMCNCJob.py:955 -#: AppTools/ToolSolderPaste.py:1538 +#: flatcamEditors/FlatCAMTextEditor.py:272 flatcamObjects/FlatCAMCNCJob.py:955 +#: flatcamTools/ToolSolderPaste.py:1530 msgid "No such file or directory" msgstr "" -#: AppEditors/FlatCAMTextEditor.py:284 AppObjects/FlatCAMCNCJob.py:969 +#: flatcamEditors/FlatCAMTextEditor.py:284 flatcamObjects/FlatCAMCNCJob.py:969 msgid "Saved to" msgstr "" -#: AppEditors/FlatCAMTextEditor.py:334 +#: flatcamEditors/FlatCAMTextEditor.py:334 msgid "Code Editor content copied to clipboard ..." msgstr "" -#: AppGUI/GUIElements.py:2690 AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:169 -#: AppTools/ToolDblSided.py:173 AppTools/ToolDblSided.py:388 AppTools/ToolFilm.py:202 -msgid "Reference" +#: flatcamGUI/FlatCAMGUI.py:78 flatcamGUI/FlatCAMGUI.py:80 flatcamGUI/FlatCAMGUI.py:2163 +msgid "Toggle Panel" msgstr "" -#: AppGUI/GUIElements.py:2692 -msgid "" -"The reference can be:\n" -"- Absolute -> the reference point is point (0,0)\n" -"- Relative -> the reference point is the mouse position before Jump" +#: flatcamGUI/FlatCAMGUI.py:90 +msgid "File" msgstr "" -#: AppGUI/GUIElements.py:2697 -msgid "Abs" +#: flatcamGUI/FlatCAMGUI.py:95 +msgid "&New Project ...\tCtrl+N" msgstr "" -#: AppGUI/GUIElements.py:2698 -msgid "Relative" +#: flatcamGUI/FlatCAMGUI.py:97 +msgid "Will create a new, blank project" msgstr "" -#: AppGUI/GUIElements.py:2708 -msgid "Location" +#: flatcamGUI/FlatCAMGUI.py:102 +msgid "&New" msgstr "" -#: AppGUI/GUIElements.py:2710 -msgid "" -"The Location value is a tuple (x,y).\n" -"If the reference is Absolute then the Jump will be at the position (x,y).\n" -"If the reference is Relative then the Jump will be at the (x,y) distance\n" -"from the current mouse location point." +#: flatcamGUI/FlatCAMGUI.py:106 +msgid "Geometry\tN" msgstr "" -#: AppGUI/GUIElements.py:2750 -msgid "Save Log" +#: flatcamGUI/FlatCAMGUI.py:108 +msgid "Will create a new, empty Geometry Object." msgstr "" -#: AppGUI/GUIElements.py:2760 App_Main.py:2679 App_Main.py:2988 App_Main.py:3122 -msgid "Close" +#: flatcamGUI/FlatCAMGUI.py:111 +msgid "Gerber\tB" msgstr "" -#: AppGUI/GUIElements.py:2769 AppTools/ToolShell.py:296 -msgid "Type >help< to get started" +#: flatcamGUI/FlatCAMGUI.py:113 +msgid "Will create a new, empty Gerber Object." msgstr "" -#: AppGUI/GUIElements.py:3159 AppGUI/GUIElements.py:3168 -msgid "Idle." +#: flatcamGUI/FlatCAMGUI.py:116 +msgid "Excellon\tL" msgstr "" -#: AppGUI/GUIElements.py:3201 -msgid "Application started ..." +#: flatcamGUI/FlatCAMGUI.py:118 +msgid "Will create a new, empty Excellon Object." msgstr "" -#: AppGUI/GUIElements.py:3202 -msgid "Hello!" +#: flatcamGUI/FlatCAMGUI.py:123 +msgid "Document\tD" msgstr "" -#: AppGUI/GUIElements.py:3249 AppGUI/MainGUI.py:190 AppGUI/MainGUI.py:895 -#: AppGUI/MainGUI.py:1927 +#: flatcamGUI/FlatCAMGUI.py:125 +msgid "Will create a new, empty Document Object." +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:129 flatcamGUI/FlatCAMGUI.py:4420 +#: flatcamTools/ToolPcbWizard.py:62 flatcamTools/ToolPcbWizard.py:69 +msgid "Open" +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:134 +msgid "Open &Project ..." +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:140 flatcamGUI/FlatCAMGUI.py:4430 +msgid "Open &Gerber ...\tCtrl+G" +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:145 flatcamGUI/FlatCAMGUI.py:4435 +msgid "Open &Excellon ...\tCtrl+E" +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:150 flatcamGUI/FlatCAMGUI.py:4440 +msgid "Open G-&Code ..." +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:157 +msgid "Open Config ..." +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:162 +msgid "Recent projects" +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:164 +msgid "Recent files" +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:167 flatcamGUI/FlatCAMGUI.py:753 flatcamGUI/FlatCAMGUI.py:1339 +msgid "Save" +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:171 +msgid "&Save Project ...\tCtrl+S" +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:176 +msgid "Save Project &As ...\tCtrl+Shift+S" +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:191 +msgid "Scripting" +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:195 flatcamGUI/FlatCAMGUI.py:903 flatcamGUI/FlatCAMGUI.py:2607 +msgid "New Script ..." +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:197 flatcamGUI/FlatCAMGUI.py:905 flatcamGUI/FlatCAMGUI.py:2609 +msgid "Open Script ..." +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:199 +msgid "Open Example ..." +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:201 flatcamGUI/FlatCAMGUI.py:907 flatcamGUI/FlatCAMGUI.py:2611 +#: flatcamGUI/FlatCAMGUI.py:4409 msgid "Run Script ..." msgstr "" -#: AppGUI/GUIElements.py:3251 AppGUI/MainGUI.py:192 +#: flatcamGUI/FlatCAMGUI.py:203 flatcamGUI/FlatCAMGUI.py:4411 msgid "" "Will run the opened Tcl Script thus\n" "enabling the automation of certain\n" "functions of FlatCAM." msgstr "" -#: AppGUI/GUIElements.py:3260 AppGUI/MainGUI.py:118 AppTools/ToolPcbWizard.py:62 -#: AppTools/ToolPcbWizard.py:69 -msgid "Open" -msgstr "" - -#: AppGUI/GUIElements.py:3264 -msgid "Open Project ..." -msgstr "" - -#: AppGUI/GUIElements.py:3270 AppGUI/MainGUI.py:129 -msgid "Open &Gerber ...\tCtrl+G" -msgstr "" - -#: AppGUI/GUIElements.py:3275 AppGUI/MainGUI.py:134 -msgid "Open &Excellon ...\tCtrl+E" -msgstr "" - -#: AppGUI/GUIElements.py:3280 AppGUI/MainGUI.py:139 -msgid "Open G-&Code ..." -msgstr "" - -#: AppGUI/GUIElements.py:3290 -msgid "Exit" -msgstr "" - -#: AppGUI/MainGUI.py:67 AppGUI/MainGUI.py:69 AppGUI/MainGUI.py:1407 -msgid "Toggle Panel" -msgstr "" - -#: AppGUI/MainGUI.py:79 -msgid "File" -msgstr "" - -#: AppGUI/MainGUI.py:84 -msgid "&New Project ...\tCtrl+N" -msgstr "" - -#: AppGUI/MainGUI.py:86 -msgid "Will create a new, blank project" -msgstr "" - -#: AppGUI/MainGUI.py:91 -msgid "&New" -msgstr "" - -#: AppGUI/MainGUI.py:95 -msgid "Geometry\tN" -msgstr "" - -#: AppGUI/MainGUI.py:97 -msgid "Will create a new, empty Geometry Object." -msgstr "" - -#: AppGUI/MainGUI.py:100 -msgid "Gerber\tB" -msgstr "" - -#: AppGUI/MainGUI.py:102 -msgid "Will create a new, empty Gerber Object." -msgstr "" - -#: AppGUI/MainGUI.py:105 -msgid "Excellon\tL" -msgstr "" - -#: AppGUI/MainGUI.py:107 -msgid "Will create a new, empty Excellon Object." -msgstr "" - -#: AppGUI/MainGUI.py:112 -msgid "Document\tD" -msgstr "" - -#: AppGUI/MainGUI.py:114 -msgid "Will create a new, empty Document Object." -msgstr "" - -#: AppGUI/MainGUI.py:123 -msgid "Open &Project ..." -msgstr "" - -#: AppGUI/MainGUI.py:146 -msgid "Open Config ..." -msgstr "" - -#: AppGUI/MainGUI.py:151 -msgid "Recent projects" -msgstr "" - -#: AppGUI/MainGUI.py:153 -msgid "Recent files" -msgstr "" - -#: AppGUI/MainGUI.py:156 AppGUI/MainGUI.py:750 AppGUI/MainGUI.py:1380 -msgid "Save" -msgstr "" - -#: AppGUI/MainGUI.py:160 -msgid "&Save Project ...\tCtrl+S" -msgstr "" - -#: AppGUI/MainGUI.py:165 -msgid "Save Project &As ...\tCtrl+Shift+S" -msgstr "" - -#: AppGUI/MainGUI.py:180 -msgid "Scripting" -msgstr "" - -#: AppGUI/MainGUI.py:184 AppGUI/MainGUI.py:891 AppGUI/MainGUI.py:1923 -msgid "New Script ..." -msgstr "" - -#: AppGUI/MainGUI.py:186 AppGUI/MainGUI.py:893 AppGUI/MainGUI.py:1925 -msgid "Open Script ..." -msgstr "" - -#: AppGUI/MainGUI.py:188 -msgid "Open Example ..." -msgstr "" - -#: AppGUI/MainGUI.py:207 +#: flatcamGUI/FlatCAMGUI.py:218 msgid "Import" msgstr "" -#: AppGUI/MainGUI.py:209 +#: flatcamGUI/FlatCAMGUI.py:220 msgid "&SVG as Geometry Object ..." msgstr "" -#: AppGUI/MainGUI.py:212 +#: flatcamGUI/FlatCAMGUI.py:223 msgid "&SVG as Gerber Object ..." msgstr "" -#: AppGUI/MainGUI.py:217 +#: flatcamGUI/FlatCAMGUI.py:228 msgid "&DXF as Geometry Object ..." msgstr "" -#: AppGUI/MainGUI.py:220 +#: flatcamGUI/FlatCAMGUI.py:231 msgid "&DXF as Gerber Object ..." msgstr "" -#: AppGUI/MainGUI.py:224 +#: flatcamGUI/FlatCAMGUI.py:235 msgid "HPGL2 as Geometry Object ..." msgstr "" -#: AppGUI/MainGUI.py:230 +#: flatcamGUI/FlatCAMGUI.py:241 msgid "Export" msgstr "" -#: AppGUI/MainGUI.py:234 +#: flatcamGUI/FlatCAMGUI.py:245 msgid "Export &SVG ..." msgstr "" -#: AppGUI/MainGUI.py:238 +#: flatcamGUI/FlatCAMGUI.py:249 msgid "Export DXF ..." msgstr "" -#: AppGUI/MainGUI.py:244 +#: flatcamGUI/FlatCAMGUI.py:255 msgid "Export &PNG ..." msgstr "" -#: AppGUI/MainGUI.py:246 +#: flatcamGUI/FlatCAMGUI.py:257 msgid "" "Will export an image in PNG format,\n" "the saved image will contain the visual \n" "information currently in FlatCAM Plot Area." msgstr "" -#: AppGUI/MainGUI.py:255 +#: flatcamGUI/FlatCAMGUI.py:266 msgid "Export &Excellon ..." msgstr "" -#: AppGUI/MainGUI.py:257 +#: flatcamGUI/FlatCAMGUI.py:268 msgid "" "Will export an Excellon Object as Excellon file,\n" "the coordinates format, the file units and zeros\n" "are set in Preferences -> Excellon Export." msgstr "" -#: AppGUI/MainGUI.py:264 +#: flatcamGUI/FlatCAMGUI.py:275 msgid "Export &Gerber ..." msgstr "" -#: AppGUI/MainGUI.py:266 +#: flatcamGUI/FlatCAMGUI.py:277 msgid "" "Will export an Gerber Object as Gerber file,\n" "the coordinates format, the file units and zeros\n" "are set in Preferences -> Gerber Export." msgstr "" -#: AppGUI/MainGUI.py:276 +#: flatcamGUI/FlatCAMGUI.py:287 msgid "Backup" msgstr "" -#: AppGUI/MainGUI.py:281 +#: flatcamGUI/FlatCAMGUI.py:292 msgid "Import Preferences from file ..." msgstr "" -#: AppGUI/MainGUI.py:287 +#: flatcamGUI/FlatCAMGUI.py:298 msgid "Export Preferences to file ..." msgstr "" -#: AppGUI/MainGUI.py:295 AppGUI/preferences/PreferencesUIManager.py:1119 +#: flatcamGUI/FlatCAMGUI.py:306 flatcamGUI/preferences/PreferencesUIManager.py:1119 msgid "Save Preferences" msgstr "" -#: AppGUI/MainGUI.py:301 AppGUI/MainGUI.py:4101 +#: flatcamGUI/FlatCAMGUI.py:312 flatcamGUI/FlatCAMGUI.py:1730 msgid "Print (PDF)" msgstr "" -#: AppGUI/MainGUI.py:309 +#: flatcamGUI/FlatCAMGUI.py:320 msgid "E&xit" msgstr "" -#: AppGUI/MainGUI.py:317 AppGUI/MainGUI.py:744 AppGUI/MainGUI.py:1529 +#: flatcamGUI/FlatCAMGUI.py:328 flatcamGUI/FlatCAMGUI.py:747 flatcamGUI/FlatCAMGUI.py:2286 msgid "Edit" msgstr "" -#: AppGUI/MainGUI.py:321 +#: flatcamGUI/FlatCAMGUI.py:332 msgid "Edit Object\tE" msgstr "" -#: AppGUI/MainGUI.py:323 +#: flatcamGUI/FlatCAMGUI.py:334 msgid "Close Editor\tCtrl+S" msgstr "" -#: AppGUI/MainGUI.py:332 +#: flatcamGUI/FlatCAMGUI.py:343 msgid "Conversion" msgstr "" -#: AppGUI/MainGUI.py:334 +#: flatcamGUI/FlatCAMGUI.py:345 msgid "&Join Geo/Gerber/Exc -> Geo" msgstr "" -#: AppGUI/MainGUI.py:336 +#: flatcamGUI/FlatCAMGUI.py:347 msgid "" "Merge a selection of objects, which can be of type:\n" "- Gerber\n" @@ -3199,1147 +4749,1446 @@ msgid "" "into a new combo Geometry object." msgstr "" -#: AppGUI/MainGUI.py:343 +#: flatcamGUI/FlatCAMGUI.py:354 msgid "Join Excellon(s) -> Excellon" msgstr "" -#: AppGUI/MainGUI.py:345 +#: flatcamGUI/FlatCAMGUI.py:356 msgid "Merge a selection of Excellon objects into a new combo Excellon object." msgstr "" -#: AppGUI/MainGUI.py:348 +#: flatcamGUI/FlatCAMGUI.py:359 msgid "Join Gerber(s) -> Gerber" msgstr "" -#: AppGUI/MainGUI.py:350 +#: flatcamGUI/FlatCAMGUI.py:361 msgid "Merge a selection of Gerber objects into a new combo Gerber object." msgstr "" -#: AppGUI/MainGUI.py:355 +#: flatcamGUI/FlatCAMGUI.py:366 msgid "Convert Single to MultiGeo" msgstr "" -#: AppGUI/MainGUI.py:357 +#: flatcamGUI/FlatCAMGUI.py:368 msgid "" "Will convert a Geometry object from single_geometry type\n" "to a multi_geometry type." msgstr "" -#: AppGUI/MainGUI.py:361 +#: flatcamGUI/FlatCAMGUI.py:372 msgid "Convert Multi to SingleGeo" msgstr "" -#: AppGUI/MainGUI.py:363 +#: flatcamGUI/FlatCAMGUI.py:374 msgid "" "Will convert a Geometry object from multi_geometry type\n" "to a single_geometry type." msgstr "" -#: AppGUI/MainGUI.py:370 +#: flatcamGUI/FlatCAMGUI.py:381 msgid "Convert Any to Geo" msgstr "" -#: AppGUI/MainGUI.py:373 +#: flatcamGUI/FlatCAMGUI.py:384 msgid "Convert Any to Gerber" msgstr "" -#: AppGUI/MainGUI.py:379 +#: flatcamGUI/FlatCAMGUI.py:390 msgid "&Copy\tCtrl+C" msgstr "" -#: AppGUI/MainGUI.py:384 +#: flatcamGUI/FlatCAMGUI.py:395 msgid "&Delete\tDEL" msgstr "" -#: AppGUI/MainGUI.py:389 +#: flatcamGUI/FlatCAMGUI.py:400 msgid "Se&t Origin\tO" msgstr "" -#: AppGUI/MainGUI.py:391 +#: flatcamGUI/FlatCAMGUI.py:402 msgid "Move to Origin\tShift+O" msgstr "" -#: AppGUI/MainGUI.py:394 +#: flatcamGUI/FlatCAMGUI.py:405 msgid "Jump to Location\tJ" msgstr "" -#: AppGUI/MainGUI.py:396 +#: flatcamGUI/FlatCAMGUI.py:407 msgid "Locate in Object\tShift+J" msgstr "" -#: AppGUI/MainGUI.py:401 +#: flatcamGUI/FlatCAMGUI.py:412 msgid "Toggle Units\tQ" msgstr "" -#: AppGUI/MainGUI.py:403 +#: flatcamGUI/FlatCAMGUI.py:414 msgid "&Select All\tCtrl+A" msgstr "" -#: AppGUI/MainGUI.py:408 +#: flatcamGUI/FlatCAMGUI.py:419 msgid "&Preferences\tShift+P" msgstr "" -#: AppGUI/MainGUI.py:414 AppTools/ToolProperties.py:155 +#: flatcamGUI/FlatCAMGUI.py:425 flatcamTools/ToolProperties.py:155 msgid "Options" msgstr "" -#: AppGUI/MainGUI.py:416 +#: flatcamGUI/FlatCAMGUI.py:427 msgid "&Rotate Selection\tShift+(R)" msgstr "" -#: AppGUI/MainGUI.py:421 +#: flatcamGUI/FlatCAMGUI.py:432 msgid "&Skew on X axis\tShift+X" msgstr "" -#: AppGUI/MainGUI.py:423 +#: flatcamGUI/FlatCAMGUI.py:434 msgid "S&kew on Y axis\tShift+Y" msgstr "" -#: AppGUI/MainGUI.py:428 +#: flatcamGUI/FlatCAMGUI.py:439 msgid "Flip on &X axis\tX" msgstr "" -#: AppGUI/MainGUI.py:430 +#: flatcamGUI/FlatCAMGUI.py:441 msgid "Flip on &Y axis\tY" msgstr "" -#: AppGUI/MainGUI.py:435 +#: flatcamGUI/FlatCAMGUI.py:446 msgid "View source\tAlt+S" msgstr "" -#: AppGUI/MainGUI.py:437 +#: flatcamGUI/FlatCAMGUI.py:448 msgid "Tools DataBase\tCtrl+D" msgstr "" -#: AppGUI/MainGUI.py:444 AppGUI/MainGUI.py:1427 +#: flatcamGUI/FlatCAMGUI.py:455 flatcamGUI/FlatCAMGUI.py:2183 msgid "View" msgstr "" -#: AppGUI/MainGUI.py:446 +#: flatcamGUI/FlatCAMGUI.py:457 msgid "Enable all plots\tAlt+1" msgstr "" -#: AppGUI/MainGUI.py:448 +#: flatcamGUI/FlatCAMGUI.py:459 msgid "Disable all plots\tAlt+2" msgstr "" -#: AppGUI/MainGUI.py:450 +#: flatcamGUI/FlatCAMGUI.py:461 msgid "Disable non-selected\tAlt+3" msgstr "" -#: AppGUI/MainGUI.py:454 +#: flatcamGUI/FlatCAMGUI.py:465 msgid "&Zoom Fit\tV" msgstr "" -#: AppGUI/MainGUI.py:456 +#: flatcamGUI/FlatCAMGUI.py:467 msgid "&Zoom In\t=" msgstr "" -#: AppGUI/MainGUI.py:458 +#: flatcamGUI/FlatCAMGUI.py:469 msgid "&Zoom Out\t-" msgstr "" -#: AppGUI/MainGUI.py:463 +#: flatcamGUI/FlatCAMGUI.py:474 msgid "Redraw All\tF5" msgstr "" -#: AppGUI/MainGUI.py:467 +#: flatcamGUI/FlatCAMGUI.py:478 msgid "Toggle Code Editor\tShift+E" msgstr "" -#: AppGUI/MainGUI.py:470 +#: flatcamGUI/FlatCAMGUI.py:481 msgid "&Toggle FullScreen\tAlt+F10" msgstr "" -#: AppGUI/MainGUI.py:472 +#: flatcamGUI/FlatCAMGUI.py:483 msgid "&Toggle Plot Area\tCtrl+F10" msgstr "" -#: AppGUI/MainGUI.py:474 +#: flatcamGUI/FlatCAMGUI.py:485 msgid "&Toggle Project/Sel/Tool\t`" msgstr "" -#: AppGUI/MainGUI.py:478 +#: flatcamGUI/FlatCAMGUI.py:489 msgid "&Toggle Grid Snap\tG" msgstr "" -#: AppGUI/MainGUI.py:480 +#: flatcamGUI/FlatCAMGUI.py:491 msgid "&Toggle Grid Lines\tAlt+G" msgstr "" -#: AppGUI/MainGUI.py:482 +#: flatcamGUI/FlatCAMGUI.py:493 msgid "&Toggle Axis\tShift+G" msgstr "" -#: AppGUI/MainGUI.py:484 +#: flatcamGUI/FlatCAMGUI.py:495 msgid "Toggle Workspace\tShift+W" msgstr "" -#: AppGUI/MainGUI.py:486 -msgid "Toggle HUD\tAlt+H" -msgstr "" - -#: AppGUI/MainGUI.py:491 +#: flatcamGUI/FlatCAMGUI.py:500 msgid "Objects" msgstr "" -#: AppGUI/MainGUI.py:494 AppGUI/MainGUI.py:4099 AppObjects/ObjectCollection.py:1121 -#: AppObjects/ObjectCollection.py:1168 -msgid "Select All" -msgstr "" - -#: AppGUI/MainGUI.py:496 AppObjects/ObjectCollection.py:1125 -#: AppObjects/ObjectCollection.py:1172 -msgid "Deselect All" -msgstr "" - -#: AppGUI/MainGUI.py:505 +#: flatcamGUI/FlatCAMGUI.py:514 msgid "&Command Line\tS" msgstr "" -#: AppGUI/MainGUI.py:510 +#: flatcamGUI/FlatCAMGUI.py:519 msgid "Help" msgstr "" -#: AppGUI/MainGUI.py:512 +#: flatcamGUI/FlatCAMGUI.py:521 msgid "Online Help\tF1" msgstr "" -#: AppGUI/MainGUI.py:515 Bookmark.py:293 -msgid "Bookmarks" -msgstr "" - -#: AppGUI/MainGUI.py:518 App_Main.py:3091 App_Main.py:3100 -msgid "Bookmarks Manager" -msgstr "" - -#: AppGUI/MainGUI.py:522 +#: flatcamGUI/FlatCAMGUI.py:531 msgid "Report a bug" msgstr "" -#: AppGUI/MainGUI.py:525 +#: flatcamGUI/FlatCAMGUI.py:534 msgid "Excellon Specification" msgstr "" -#: AppGUI/MainGUI.py:527 +#: flatcamGUI/FlatCAMGUI.py:536 msgid "Gerber Specification" msgstr "" -#: AppGUI/MainGUI.py:532 +#: flatcamGUI/FlatCAMGUI.py:541 msgid "Shortcuts List\tF3" msgstr "" -#: AppGUI/MainGUI.py:534 +#: flatcamGUI/FlatCAMGUI.py:543 msgid "YouTube Channel\tF4" msgstr "" -#: AppGUI/MainGUI.py:539 -msgid "ReadMe?" -msgstr "" - -#: AppGUI/MainGUI.py:542 App_Main.py:2646 -msgid "About FlatCAM" -msgstr "" - -#: AppGUI/MainGUI.py:551 +#: flatcamGUI/FlatCAMGUI.py:554 msgid "Add Circle\tO" msgstr "" -#: AppGUI/MainGUI.py:554 +#: flatcamGUI/FlatCAMGUI.py:557 msgid "Add Arc\tA" msgstr "" -#: AppGUI/MainGUI.py:557 +#: flatcamGUI/FlatCAMGUI.py:560 msgid "Add Rectangle\tR" msgstr "" -#: AppGUI/MainGUI.py:560 +#: flatcamGUI/FlatCAMGUI.py:563 msgid "Add Polygon\tN" msgstr "" -#: AppGUI/MainGUI.py:563 +#: flatcamGUI/FlatCAMGUI.py:566 msgid "Add Path\tP" msgstr "" -#: AppGUI/MainGUI.py:566 +#: flatcamGUI/FlatCAMGUI.py:569 msgid "Add Text\tT" msgstr "" -#: AppGUI/MainGUI.py:569 +#: flatcamGUI/FlatCAMGUI.py:572 msgid "Polygon Union\tU" msgstr "" -#: AppGUI/MainGUI.py:571 +#: flatcamGUI/FlatCAMGUI.py:574 msgid "Polygon Intersection\tE" msgstr "" -#: AppGUI/MainGUI.py:573 +#: flatcamGUI/FlatCAMGUI.py:576 msgid "Polygon Subtraction\tS" msgstr "" -#: AppGUI/MainGUI.py:577 +#: flatcamGUI/FlatCAMGUI.py:580 msgid "Cut Path\tX" msgstr "" -#: AppGUI/MainGUI.py:581 +#: flatcamGUI/FlatCAMGUI.py:584 msgid "Copy Geom\tC" msgstr "" -#: AppGUI/MainGUI.py:583 +#: flatcamGUI/FlatCAMGUI.py:586 msgid "Delete Shape\tDEL" msgstr "" -#: AppGUI/MainGUI.py:587 AppGUI/MainGUI.py:674 +#: flatcamGUI/FlatCAMGUI.py:590 flatcamGUI/FlatCAMGUI.py:677 msgid "Move\tM" msgstr "" -#: AppGUI/MainGUI.py:589 +#: flatcamGUI/FlatCAMGUI.py:592 msgid "Buffer Tool\tB" msgstr "" -#: AppGUI/MainGUI.py:592 +#: flatcamGUI/FlatCAMGUI.py:595 msgid "Paint Tool\tI" msgstr "" -#: AppGUI/MainGUI.py:595 +#: flatcamGUI/FlatCAMGUI.py:598 msgid "Transform Tool\tAlt+R" msgstr "" -#: AppGUI/MainGUI.py:599 +#: flatcamGUI/FlatCAMGUI.py:602 msgid "Toggle Corner Snap\tK" msgstr "" -#: AppGUI/MainGUI.py:605 +#: flatcamGUI/FlatCAMGUI.py:608 msgid ">Excellon Editor<" msgstr "" -#: AppGUI/MainGUI.py:609 +#: flatcamGUI/FlatCAMGUI.py:612 msgid "Add Drill Array\tA" msgstr "" -#: AppGUI/MainGUI.py:611 +#: flatcamGUI/FlatCAMGUI.py:614 msgid "Add Drill\tD" msgstr "" -#: AppGUI/MainGUI.py:615 +#: flatcamGUI/FlatCAMGUI.py:618 msgid "Add Slot Array\tQ" msgstr "" -#: AppGUI/MainGUI.py:617 +#: flatcamGUI/FlatCAMGUI.py:620 msgid "Add Slot\tW" msgstr "" -#: AppGUI/MainGUI.py:621 +#: flatcamGUI/FlatCAMGUI.py:624 msgid "Resize Drill(S)\tR" msgstr "" -#: AppGUI/MainGUI.py:624 AppGUI/MainGUI.py:668 +#: flatcamGUI/FlatCAMGUI.py:627 flatcamGUI/FlatCAMGUI.py:671 msgid "Copy\tC" msgstr "" -#: AppGUI/MainGUI.py:626 AppGUI/MainGUI.py:670 +#: flatcamGUI/FlatCAMGUI.py:629 flatcamGUI/FlatCAMGUI.py:673 msgid "Delete\tDEL" msgstr "" -#: AppGUI/MainGUI.py:631 +#: flatcamGUI/FlatCAMGUI.py:634 msgid "Move Drill(s)\tM" msgstr "" -#: AppGUI/MainGUI.py:636 +#: flatcamGUI/FlatCAMGUI.py:639 msgid ">Gerber Editor<" msgstr "" -#: AppGUI/MainGUI.py:640 +#: flatcamGUI/FlatCAMGUI.py:643 msgid "Add Pad\tP" msgstr "" -#: AppGUI/MainGUI.py:642 +#: flatcamGUI/FlatCAMGUI.py:645 msgid "Add Pad Array\tA" msgstr "" -#: AppGUI/MainGUI.py:644 +#: flatcamGUI/FlatCAMGUI.py:647 msgid "Add Track\tT" msgstr "" -#: AppGUI/MainGUI.py:646 +#: flatcamGUI/FlatCAMGUI.py:649 msgid "Add Region\tN" msgstr "" -#: AppGUI/MainGUI.py:650 +#: flatcamGUI/FlatCAMGUI.py:653 msgid "Poligonize\tAlt+N" msgstr "" -#: AppGUI/MainGUI.py:652 +#: flatcamGUI/FlatCAMGUI.py:655 msgid "Add SemiDisc\tE" msgstr "" -#: AppGUI/MainGUI.py:654 +#: flatcamGUI/FlatCAMGUI.py:657 msgid "Add Disc\tD" msgstr "" -#: AppGUI/MainGUI.py:656 +#: flatcamGUI/FlatCAMGUI.py:659 msgid "Buffer\tB" msgstr "" -#: AppGUI/MainGUI.py:658 +#: flatcamGUI/FlatCAMGUI.py:661 msgid "Scale\tS" msgstr "" -#: AppGUI/MainGUI.py:660 +#: flatcamGUI/FlatCAMGUI.py:663 msgid "Mark Area\tAlt+A" msgstr "" -#: AppGUI/MainGUI.py:662 +#: flatcamGUI/FlatCAMGUI.py:665 msgid "Eraser\tCtrl+E" msgstr "" -#: AppGUI/MainGUI.py:664 +#: flatcamGUI/FlatCAMGUI.py:667 msgid "Transform\tAlt+R" msgstr "" -#: AppGUI/MainGUI.py:691 +#: flatcamGUI/FlatCAMGUI.py:694 msgid "Enable Plot" msgstr "" -#: AppGUI/MainGUI.py:693 +#: flatcamGUI/FlatCAMGUI.py:696 msgid "Disable Plot" msgstr "" -#: AppGUI/MainGUI.py:697 +#: flatcamGUI/FlatCAMGUI.py:700 msgid "Set Color" msgstr "" -#: AppGUI/MainGUI.py:700 App_Main.py:9644 -msgid "Red" -msgstr "" - -#: AppGUI/MainGUI.py:703 App_Main.py:9646 -msgid "Blue" -msgstr "" - -#: AppGUI/MainGUI.py:706 App_Main.py:9649 -msgid "Yellow" -msgstr "" - -#: AppGUI/MainGUI.py:709 App_Main.py:9651 -msgid "Green" -msgstr "" - -#: AppGUI/MainGUI.py:712 App_Main.py:9653 -msgid "Purple" -msgstr "" - -#: AppGUI/MainGUI.py:715 App_Main.py:9655 -msgid "Brown" -msgstr "" - -#: AppGUI/MainGUI.py:718 App_Main.py:9657 App_Main.py:9713 -msgid "White" -msgstr "" - -#: AppGUI/MainGUI.py:721 App_Main.py:9659 -msgid "Black" -msgstr "" - -#: AppGUI/MainGUI.py:726 App_Main.py:9662 -msgid "Custom" -msgstr "" - -#: AppGUI/MainGUI.py:731 App_Main.py:9696 -msgid "Opacity" -msgstr "" - -#: AppGUI/MainGUI.py:734 App_Main.py:9672 -msgid "Default" -msgstr "" - -#: AppGUI/MainGUI.py:739 +#: flatcamGUI/FlatCAMGUI.py:742 msgid "Generate CNC" msgstr "" -#: AppGUI/MainGUI.py:741 +#: flatcamGUI/FlatCAMGUI.py:744 msgid "View Source" msgstr "" -#: AppGUI/MainGUI.py:746 AppGUI/MainGUI.py:851 AppGUI/MainGUI.py:1066 AppGUI/MainGUI.py:1525 -#: AppGUI/MainGUI.py:1886 AppGUI/MainGUI.py:2097 AppGUI/MainGUI.py:4511 -#: AppGUI/ObjectUI.py:1519 AppObjects/FlatCAMGeometry.py:560 AppTools/ToolPanelize.py:551 -#: AppTools/ToolPanelize.py:578 AppTools/ToolPanelize.py:671 AppTools/ToolPanelize.py:700 -#: AppTools/ToolPanelize.py:762 +#: flatcamGUI/FlatCAMGUI.py:749 flatcamGUI/FlatCAMGUI.py:863 flatcamGUI/FlatCAMGUI.py:1072 +#: flatcamGUI/FlatCAMGUI.py:2138 flatcamGUI/FlatCAMGUI.py:2282 flatcamGUI/FlatCAMGUI.py:2572 +#: flatcamGUI/FlatCAMGUI.py:2775 flatcamGUI/ObjectUI.py:1617 +#: flatcamObjects/FlatCAMGeometry.py:502 flatcamTools/ToolPanelize.py:540 +#: flatcamTools/ToolPanelize.py:567 flatcamTools/ToolPanelize.py:660 +#: flatcamTools/ToolPanelize.py:689 flatcamTools/ToolPanelize.py:751 msgid "Copy" msgstr "" -#: AppGUI/MainGUI.py:754 AppGUI/MainGUI.py:1538 AppTools/ToolProperties.py:31 +#: flatcamGUI/FlatCAMGUI.py:757 flatcamGUI/FlatCAMGUI.py:2295 +#: flatcamTools/ToolProperties.py:31 msgid "Properties" msgstr "" -#: AppGUI/MainGUI.py:783 +#: flatcamGUI/FlatCAMGUI.py:786 msgid "File Toolbar" msgstr "" -#: AppGUI/MainGUI.py:787 +#: flatcamGUI/FlatCAMGUI.py:790 msgid "Edit Toolbar" msgstr "" -#: AppGUI/MainGUI.py:791 +#: flatcamGUI/FlatCAMGUI.py:794 msgid "View Toolbar" msgstr "" -#: AppGUI/MainGUI.py:795 +#: flatcamGUI/FlatCAMGUI.py:798 msgid "Shell Toolbar" msgstr "" -#: AppGUI/MainGUI.py:799 +#: flatcamGUI/FlatCAMGUI.py:802 msgid "Tools Toolbar" msgstr "" -#: AppGUI/MainGUI.py:803 +#: flatcamGUI/FlatCAMGUI.py:806 msgid "Excellon Editor Toolbar" msgstr "" -#: AppGUI/MainGUI.py:809 +#: flatcamGUI/FlatCAMGUI.py:812 msgid "Geometry Editor Toolbar" msgstr "" -#: AppGUI/MainGUI.py:813 +#: flatcamGUI/FlatCAMGUI.py:816 msgid "Gerber Editor Toolbar" msgstr "" -#: AppGUI/MainGUI.py:817 +#: flatcamGUI/FlatCAMGUI.py:820 msgid "Grid Toolbar" msgstr "" -#: AppGUI/MainGUI.py:831 AppGUI/MainGUI.py:1865 App_Main.py:6592 App_Main.py:6597 -msgid "Open Gerber" -msgstr "" - -#: AppGUI/MainGUI.py:833 AppGUI/MainGUI.py:1867 App_Main.py:6632 App_Main.py:6637 -msgid "Open Excellon" -msgstr "" - -#: AppGUI/MainGUI.py:836 AppGUI/MainGUI.py:1870 +#: flatcamGUI/FlatCAMGUI.py:841 flatcamGUI/FlatCAMGUI.py:2549 msgid "Open project" msgstr "" -#: AppGUI/MainGUI.py:838 AppGUI/MainGUI.py:1872 +#: flatcamGUI/FlatCAMGUI.py:843 flatcamGUI/FlatCAMGUI.py:2551 msgid "Save project" msgstr "" -#: AppGUI/MainGUI.py:846 AppGUI/MainGUI.py:1881 +#: flatcamGUI/FlatCAMGUI.py:849 flatcamGUI/FlatCAMGUI.py:2557 +msgid "New Blank Geometry" +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:851 flatcamGUI/FlatCAMGUI.py:2559 +msgid "New Blank Gerber" +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:853 flatcamGUI/FlatCAMGUI.py:2561 +msgid "New Blank Excellon" +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:858 flatcamGUI/FlatCAMGUI.py:2567 msgid "Save Object and close the Editor" msgstr "" -#: AppGUI/MainGUI.py:853 AppGUI/MainGUI.py:1888 +#: flatcamGUI/FlatCAMGUI.py:865 flatcamGUI/FlatCAMGUI.py:2574 msgid "&Delete" msgstr "" -#: AppGUI/MainGUI.py:856 AppGUI/MainGUI.py:1891 AppGUI/MainGUI.py:4100 -#: AppGUI/MainGUI.py:4308 AppTools/ToolDistance.py:35 AppTools/ToolDistance.py:197 +#: flatcamGUI/FlatCAMGUI.py:868 flatcamGUI/FlatCAMGUI.py:1729 flatcamGUI/FlatCAMGUI.py:1935 +#: flatcamGUI/FlatCAMGUI.py:2577 flatcamTools/ToolDistance.py:35 +#: flatcamTools/ToolDistance.py:195 msgid "Distance Tool" msgstr "" -#: AppGUI/MainGUI.py:858 AppGUI/MainGUI.py:1893 +#: flatcamGUI/FlatCAMGUI.py:870 flatcamGUI/FlatCAMGUI.py:2579 msgid "Distance Min Tool" msgstr "" -#: AppGUI/MainGUI.py:860 AppGUI/MainGUI.py:1895 AppGUI/MainGUI.py:4093 +#: flatcamGUI/FlatCAMGUI.py:872 flatcamGUI/FlatCAMGUI.py:1722 flatcamGUI/FlatCAMGUI.py:2581 msgid "Set Origin" msgstr "" -#: AppGUI/MainGUI.py:862 AppGUI/MainGUI.py:1897 +#: flatcamGUI/FlatCAMGUI.py:874 msgid "Move to Origin" msgstr "" -#: AppGUI/MainGUI.py:865 AppGUI/MainGUI.py:1899 +#: flatcamGUI/FlatCAMGUI.py:877 flatcamGUI/FlatCAMGUI.py:2583 msgid "Jump to Location" msgstr "" -#: AppGUI/MainGUI.py:867 AppGUI/MainGUI.py:1901 AppGUI/MainGUI.py:4105 +#: flatcamGUI/FlatCAMGUI.py:879 flatcamGUI/FlatCAMGUI.py:1734 flatcamGUI/FlatCAMGUI.py:2585 msgid "Locate in Object" msgstr "" -#: AppGUI/MainGUI.py:873 AppGUI/MainGUI.py:1907 +#: flatcamGUI/FlatCAMGUI.py:885 flatcamGUI/FlatCAMGUI.py:2591 msgid "&Replot" msgstr "" -#: AppGUI/MainGUI.py:875 AppGUI/MainGUI.py:1909 +#: flatcamGUI/FlatCAMGUI.py:887 flatcamGUI/FlatCAMGUI.py:2593 msgid "&Clear plot" msgstr "" -#: AppGUI/MainGUI.py:877 AppGUI/MainGUI.py:1911 AppGUI/MainGUI.py:4096 +#: flatcamGUI/FlatCAMGUI.py:889 flatcamGUI/FlatCAMGUI.py:1725 flatcamGUI/FlatCAMGUI.py:2595 msgid "Zoom In" msgstr "" -#: AppGUI/MainGUI.py:879 AppGUI/MainGUI.py:1913 AppGUI/MainGUI.py:4096 +#: flatcamGUI/FlatCAMGUI.py:891 flatcamGUI/FlatCAMGUI.py:1725 flatcamGUI/FlatCAMGUI.py:2597 msgid "Zoom Out" msgstr "" -#: AppGUI/MainGUI.py:881 AppGUI/MainGUI.py:1429 AppGUI/MainGUI.py:1915 -#: AppGUI/MainGUI.py:4095 +#: flatcamGUI/FlatCAMGUI.py:893 flatcamGUI/FlatCAMGUI.py:1724 flatcamGUI/FlatCAMGUI.py:2185 +#: flatcamGUI/FlatCAMGUI.py:2599 msgid "Zoom Fit" msgstr "" -#: AppGUI/MainGUI.py:889 AppGUI/MainGUI.py:1921 +#: flatcamGUI/FlatCAMGUI.py:901 flatcamGUI/FlatCAMGUI.py:2605 msgid "&Command Line" msgstr "" -#: AppGUI/MainGUI.py:901 AppGUI/MainGUI.py:1933 +#: flatcamGUI/FlatCAMGUI.py:913 flatcamGUI/FlatCAMGUI.py:2617 msgid "2Sided Tool" msgstr "" -#: AppGUI/MainGUI.py:903 AppGUI/MainGUI.py:1935 AppGUI/MainGUI.py:4111 +#: flatcamGUI/FlatCAMGUI.py:915 flatcamGUI/FlatCAMGUI.py:1740 flatcamGUI/FlatCAMGUI.py:2619 msgid "Align Objects Tool" msgstr "" -#: AppGUI/MainGUI.py:905 AppGUI/MainGUI.py:1937 AppGUI/MainGUI.py:4111 -#: AppTools/ToolExtractDrills.py:393 +#: flatcamGUI/FlatCAMGUI.py:917 flatcamGUI/FlatCAMGUI.py:1741 flatcamGUI/FlatCAMGUI.py:2621 +#: flatcamTools/ToolExtractDrills.py:393 msgid "Extract Drills Tool" msgstr "" -#: AppGUI/MainGUI.py:908 AppGUI/ObjectUI.py:360 AppTools/ToolCutOut.py:440 +#: flatcamGUI/FlatCAMGUI.py:920 flatcamGUI/ObjectUI.py:596 flatcamTools/ToolCutOut.py:440 msgid "Cutout Tool" msgstr "" -#: AppGUI/MainGUI.py:910 AppGUI/MainGUI.py:1942 AppGUI/ObjectUI.py:346 -#: AppGUI/ObjectUI.py:2087 AppTools/ToolNCC.py:974 +#: flatcamGUI/FlatCAMGUI.py:922 flatcamGUI/FlatCAMGUI.py:2626 flatcamGUI/ObjectUI.py:574 +#: flatcamGUI/ObjectUI.py:2157 flatcamTools/ToolNCC.py:974 msgid "NCC Tool" msgstr "" -#: AppGUI/MainGUI.py:914 AppGUI/MainGUI.py:1946 AppGUI/MainGUI.py:4113 -#: AppTools/ToolIsolation.py:38 AppTools/ToolIsolation.py:766 -msgid "Isolation Tool" -msgstr "" - -#: AppGUI/MainGUI.py:918 AppGUI/MainGUI.py:1950 +#: flatcamGUI/FlatCAMGUI.py:928 flatcamGUI/FlatCAMGUI.py:2632 msgid "Panel Tool" msgstr "" -#: AppGUI/MainGUI.py:920 AppGUI/MainGUI.py:1952 AppTools/ToolFilm.py:569 +#: flatcamGUI/FlatCAMGUI.py:930 flatcamGUI/FlatCAMGUI.py:2634 flatcamTools/ToolFilm.py:586 msgid "Film Tool" msgstr "" -#: AppGUI/MainGUI.py:922 AppGUI/MainGUI.py:1954 AppTools/ToolSolderPaste.py:561 +#: flatcamGUI/FlatCAMGUI.py:932 flatcamGUI/FlatCAMGUI.py:2636 +#: flatcamTools/ToolSolderPaste.py:553 msgid "SolderPaste Tool" msgstr "" -#: AppGUI/MainGUI.py:924 AppGUI/MainGUI.py:1956 AppGUI/MainGUI.py:4118 -#: AppTools/ToolSub.py:40 +#: flatcamGUI/FlatCAMGUI.py:934 flatcamGUI/FlatCAMGUI.py:2638 flatcamTools/ToolSub.py:35 msgid "Subtract Tool" msgstr "" -#: AppGUI/MainGUI.py:926 AppGUI/MainGUI.py:1958 AppTools/ToolRulesCheck.py:616 +#: flatcamGUI/FlatCAMGUI.py:936 flatcamGUI/FlatCAMGUI.py:2640 +#: flatcamTools/ToolRulesCheck.py:616 msgid "Rules Tool" msgstr "" -#: AppGUI/MainGUI.py:928 AppGUI/MainGUI.py:1960 AppGUI/MainGUI.py:4115 -#: AppTools/ToolOptimal.py:33 AppTools/ToolOptimal.py:313 +#: flatcamGUI/FlatCAMGUI.py:938 flatcamGUI/FlatCAMGUI.py:1743 flatcamGUI/FlatCAMGUI.py:2642 +#: flatcamTools/ToolOptimal.py:33 flatcamTools/ToolOptimal.py:307 msgid "Optimal Tool" msgstr "" -#: AppGUI/MainGUI.py:933 AppGUI/MainGUI.py:1965 AppGUI/MainGUI.py:4111 +#: flatcamGUI/FlatCAMGUI.py:943 flatcamGUI/FlatCAMGUI.py:1740 flatcamGUI/FlatCAMGUI.py:2647 msgid "Calculators Tool" msgstr "" -#: AppGUI/MainGUI.py:937 AppGUI/MainGUI.py:1969 AppGUI/MainGUI.py:4116 -#: AppTools/ToolQRCode.py:43 AppTools/ToolQRCode.py:391 +#: flatcamGUI/FlatCAMGUI.py:947 flatcamGUI/FlatCAMGUI.py:1744 flatcamGUI/FlatCAMGUI.py:2651 +#: flatcamTools/ToolQRCode.py:43 flatcamTools/ToolQRCode.py:382 msgid "QRCode Tool" msgstr "" -#: AppGUI/MainGUI.py:939 AppGUI/MainGUI.py:1971 AppGUI/MainGUI.py:4113 -#: AppTools/ToolCopperThieving.py:39 AppTools/ToolCopperThieving.py:572 +#: flatcamGUI/FlatCAMGUI.py:949 flatcamGUI/FlatCAMGUI.py:2653 +#: flatcamTools/ToolCopperThieving.py:39 flatcamTools/ToolCopperThieving.py:568 msgid "Copper Thieving Tool" msgstr "" -#: AppGUI/MainGUI.py:942 AppGUI/MainGUI.py:1974 AppGUI/MainGUI.py:4112 -#: AppTools/ToolFiducials.py:33 AppTools/ToolFiducials.py:399 +#: flatcamGUI/FlatCAMGUI.py:952 flatcamGUI/FlatCAMGUI.py:1741 flatcamGUI/FlatCAMGUI.py:2656 +#: flatcamTools/ToolFiducials.py:33 flatcamTools/ToolFiducials.py:395 msgid "Fiducials Tool" msgstr "" -#: AppGUI/MainGUI.py:944 AppGUI/MainGUI.py:1976 AppTools/ToolCalibration.py:37 -#: AppTools/ToolCalibration.py:759 +#: flatcamGUI/FlatCAMGUI.py:954 flatcamGUI/FlatCAMGUI.py:2658 +#: flatcamTools/ToolCalibration.py:37 flatcamTools/ToolCalibration.py:759 msgid "Calibration Tool" msgstr "" -#: AppGUI/MainGUI.py:946 AppGUI/MainGUI.py:1978 AppGUI/MainGUI.py:4113 +#: flatcamGUI/FlatCAMGUI.py:956 flatcamGUI/FlatCAMGUI.py:1741 flatcamGUI/FlatCAMGUI.py:2660 msgid "Punch Gerber Tool" msgstr "" -#: AppGUI/MainGUI.py:948 AppGUI/MainGUI.py:1980 AppTools/ToolInvertGerber.py:31 +#: flatcamGUI/FlatCAMGUI.py:958 flatcamGUI/FlatCAMGUI.py:2662 +#: flatcamTools/ToolInvertGerber.py:31 msgid "Invert Gerber Tool" msgstr "" -#: AppGUI/MainGUI.py:950 AppGUI/MainGUI.py:1982 AppGUI/MainGUI.py:4115 -#: AppTools/ToolCorners.py:31 -msgid "Corner Markers Tool" -msgstr "" - -#: AppGUI/MainGUI.py:952 AppGUI/MainGUI.py:1984 AppTools/ToolEtchCompensation.py:32 -#: AppTools/ToolEtchCompensation.py:288 -msgid "Etch Compensation Tool" -msgstr "" - -#: AppGUI/MainGUI.py:958 AppGUI/MainGUI.py:984 AppGUI/MainGUI.py:1036 AppGUI/MainGUI.py:1990 -#: AppGUI/MainGUI.py:2068 +#: flatcamGUI/FlatCAMGUI.py:964 flatcamGUI/FlatCAMGUI.py:990 flatcamGUI/FlatCAMGUI.py:1042 +#: flatcamGUI/FlatCAMGUI.py:2668 flatcamGUI/FlatCAMGUI.py:2746 msgid "Select" msgstr "" -#: AppGUI/MainGUI.py:960 AppGUI/MainGUI.py:1992 +#: flatcamGUI/FlatCAMGUI.py:966 flatcamGUI/FlatCAMGUI.py:2670 msgid "Add Drill Hole" msgstr "" -#: AppGUI/MainGUI.py:962 AppGUI/MainGUI.py:1994 +#: flatcamGUI/FlatCAMGUI.py:968 flatcamGUI/FlatCAMGUI.py:2672 msgid "Add Drill Hole Array" msgstr "" -#: AppGUI/MainGUI.py:964 AppGUI/MainGUI.py:1517 AppGUI/MainGUI.py:1998 -#: AppGUI/MainGUI.py:4393 +#: flatcamGUI/FlatCAMGUI.py:970 flatcamGUI/FlatCAMGUI.py:2020 flatcamGUI/FlatCAMGUI.py:2273 +#: flatcamGUI/FlatCAMGUI.py:2676 msgid "Add Slot" msgstr "" -#: AppGUI/MainGUI.py:966 AppGUI/MainGUI.py:1519 AppGUI/MainGUI.py:2000 -#: AppGUI/MainGUI.py:4392 +#: flatcamGUI/FlatCAMGUI.py:972 flatcamGUI/FlatCAMGUI.py:2019 flatcamGUI/FlatCAMGUI.py:2275 +#: flatcamGUI/FlatCAMGUI.py:2678 msgid "Add Slot Array" msgstr "" -#: AppGUI/MainGUI.py:968 AppGUI/MainGUI.py:1522 AppGUI/MainGUI.py:1996 +#: flatcamGUI/FlatCAMGUI.py:974 flatcamGUI/FlatCAMGUI.py:2278 flatcamGUI/FlatCAMGUI.py:2674 msgid "Resize Drill" msgstr "" -#: AppGUI/MainGUI.py:972 AppGUI/MainGUI.py:2004 +#: flatcamGUI/FlatCAMGUI.py:978 flatcamGUI/FlatCAMGUI.py:2682 msgid "Copy Drill" msgstr "" -#: AppGUI/MainGUI.py:974 AppGUI/MainGUI.py:2006 +#: flatcamGUI/FlatCAMGUI.py:980 flatcamGUI/FlatCAMGUI.py:2684 msgid "Delete Drill" msgstr "" -#: AppGUI/MainGUI.py:978 AppGUI/MainGUI.py:2010 +#: flatcamGUI/FlatCAMGUI.py:984 flatcamGUI/FlatCAMGUI.py:2688 msgid "Move Drill" msgstr "" -#: AppGUI/MainGUI.py:986 AppGUI/MainGUI.py:2018 +#: flatcamGUI/FlatCAMGUI.py:992 flatcamGUI/FlatCAMGUI.py:2696 msgid "Add Circle" msgstr "" -#: AppGUI/MainGUI.py:988 AppGUI/MainGUI.py:2020 +#: flatcamGUI/FlatCAMGUI.py:994 flatcamGUI/FlatCAMGUI.py:2698 msgid "Add Arc" msgstr "" -#: AppGUI/MainGUI.py:990 AppGUI/MainGUI.py:2022 +#: flatcamGUI/FlatCAMGUI.py:996 flatcamGUI/FlatCAMGUI.py:2700 msgid "Add Rectangle" msgstr "" -#: AppGUI/MainGUI.py:994 AppGUI/MainGUI.py:2026 +#: flatcamGUI/FlatCAMGUI.py:1000 flatcamGUI/FlatCAMGUI.py:2704 msgid "Add Path" msgstr "" -#: AppGUI/MainGUI.py:996 AppGUI/MainGUI.py:2028 +#: flatcamGUI/FlatCAMGUI.py:1002 flatcamGUI/FlatCAMGUI.py:2706 msgid "Add Polygon" msgstr "" -#: AppGUI/MainGUI.py:999 AppGUI/MainGUI.py:2031 +#: flatcamGUI/FlatCAMGUI.py:1005 flatcamGUI/FlatCAMGUI.py:2709 msgid "Add Text" msgstr "" -#: AppGUI/MainGUI.py:1001 AppGUI/MainGUI.py:2033 +#: flatcamGUI/FlatCAMGUI.py:1007 flatcamGUI/FlatCAMGUI.py:2711 msgid "Add Buffer" msgstr "" -#: AppGUI/MainGUI.py:1003 AppGUI/MainGUI.py:2035 +#: flatcamGUI/FlatCAMGUI.py:1009 flatcamGUI/FlatCAMGUI.py:2713 msgid "Paint Shape" msgstr "" -#: AppGUI/MainGUI.py:1005 AppGUI/MainGUI.py:1062 AppGUI/MainGUI.py:1458 -#: AppGUI/MainGUI.py:1503 AppGUI/MainGUI.py:2037 AppGUI/MainGUI.py:2093 +#: flatcamGUI/FlatCAMGUI.py:1011 flatcamGUI/FlatCAMGUI.py:1068 flatcamGUI/FlatCAMGUI.py:2214 +#: flatcamGUI/FlatCAMGUI.py:2259 flatcamGUI/FlatCAMGUI.py:2715 flatcamGUI/FlatCAMGUI.py:2771 msgid "Eraser" msgstr "" -#: AppGUI/MainGUI.py:1009 AppGUI/MainGUI.py:2041 +#: flatcamGUI/FlatCAMGUI.py:1015 flatcamGUI/FlatCAMGUI.py:2719 msgid "Polygon Union" msgstr "" -#: AppGUI/MainGUI.py:1011 AppGUI/MainGUI.py:2043 +#: flatcamGUI/FlatCAMGUI.py:1017 flatcamGUI/FlatCAMGUI.py:2721 msgid "Polygon Explode" msgstr "" -#: AppGUI/MainGUI.py:1014 AppGUI/MainGUI.py:2046 +#: flatcamGUI/FlatCAMGUI.py:1020 flatcamGUI/FlatCAMGUI.py:2724 msgid "Polygon Intersection" msgstr "" -#: AppGUI/MainGUI.py:1016 AppGUI/MainGUI.py:2048 +#: flatcamGUI/FlatCAMGUI.py:1022 flatcamGUI/FlatCAMGUI.py:2726 msgid "Polygon Subtraction" msgstr "" -#: AppGUI/MainGUI.py:1020 AppGUI/MainGUI.py:2052 +#: flatcamGUI/FlatCAMGUI.py:1026 flatcamGUI/FlatCAMGUI.py:2730 msgid "Cut Path" msgstr "" -#: AppGUI/MainGUI.py:1022 +#: flatcamGUI/FlatCAMGUI.py:1028 msgid "Copy Shape(s)" msgstr "" -#: AppGUI/MainGUI.py:1025 +#: flatcamGUI/FlatCAMGUI.py:1031 msgid "Delete Shape '-'" msgstr "" -#: AppGUI/MainGUI.py:1027 AppGUI/MainGUI.py:1070 AppGUI/MainGUI.py:1470 -#: AppGUI/MainGUI.py:1507 AppGUI/MainGUI.py:2058 AppGUI/MainGUI.py:2101 -#: AppGUI/ObjectUI.py:109 AppGUI/ObjectUI.py:152 +#: flatcamGUI/FlatCAMGUI.py:1033 flatcamGUI/FlatCAMGUI.py:1076 flatcamGUI/FlatCAMGUI.py:2226 +#: flatcamGUI/FlatCAMGUI.py:2263 flatcamGUI/FlatCAMGUI.py:2736 flatcamGUI/FlatCAMGUI.py:2779 +#: flatcamGUI/ObjectUI.py:109 msgid "Transformations" msgstr "" -#: AppGUI/MainGUI.py:1030 +#: flatcamGUI/FlatCAMGUI.py:1036 msgid "Move Objects " msgstr "" -#: AppGUI/MainGUI.py:1038 AppGUI/MainGUI.py:2070 AppGUI/MainGUI.py:4512 +#: flatcamGUI/FlatCAMGUI.py:1044 flatcamGUI/FlatCAMGUI.py:2139 flatcamGUI/FlatCAMGUI.py:2748 msgid "Add Pad" msgstr "" -#: AppGUI/MainGUI.py:1042 AppGUI/MainGUI.py:2074 AppGUI/MainGUI.py:4513 +#: flatcamGUI/FlatCAMGUI.py:1048 flatcamGUI/FlatCAMGUI.py:2140 flatcamGUI/FlatCAMGUI.py:2752 msgid "Add Track" msgstr "" -#: AppGUI/MainGUI.py:1044 AppGUI/MainGUI.py:2076 AppGUI/MainGUI.py:4512 +#: flatcamGUI/FlatCAMGUI.py:1050 flatcamGUI/FlatCAMGUI.py:2139 flatcamGUI/FlatCAMGUI.py:2754 msgid "Add Region" msgstr "" -#: AppGUI/MainGUI.py:1046 AppGUI/MainGUI.py:1489 AppGUI/MainGUI.py:2078 +#: flatcamGUI/FlatCAMGUI.py:1052 flatcamGUI/FlatCAMGUI.py:2245 flatcamGUI/FlatCAMGUI.py:2756 msgid "Poligonize" msgstr "" -#: AppGUI/MainGUI.py:1049 AppGUI/MainGUI.py:1491 AppGUI/MainGUI.py:2081 +#: flatcamGUI/FlatCAMGUI.py:1055 flatcamGUI/FlatCAMGUI.py:2247 flatcamGUI/FlatCAMGUI.py:2759 msgid "SemiDisc" msgstr "" -#: AppGUI/MainGUI.py:1051 AppGUI/MainGUI.py:1493 AppGUI/MainGUI.py:2083 +#: flatcamGUI/FlatCAMGUI.py:1057 flatcamGUI/FlatCAMGUI.py:2249 flatcamGUI/FlatCAMGUI.py:2761 msgid "Disc" msgstr "" -#: AppGUI/MainGUI.py:1059 AppGUI/MainGUI.py:1501 AppGUI/MainGUI.py:2091 +#: flatcamGUI/FlatCAMGUI.py:1065 flatcamGUI/FlatCAMGUI.py:2257 flatcamGUI/FlatCAMGUI.py:2769 msgid "Mark Area" msgstr "" -#: AppGUI/MainGUI.py:1073 AppGUI/MainGUI.py:1474 AppGUI/MainGUI.py:1536 -#: AppGUI/MainGUI.py:2104 AppGUI/MainGUI.py:4512 AppTools/ToolMove.py:27 +#: flatcamGUI/FlatCAMGUI.py:1079 flatcamGUI/FlatCAMGUI.py:2139 flatcamGUI/FlatCAMGUI.py:2230 +#: flatcamGUI/FlatCAMGUI.py:2293 flatcamGUI/FlatCAMGUI.py:2782 flatcamTools/ToolMove.py:27 msgid "Move" msgstr "" -#: AppGUI/MainGUI.py:1081 +#: flatcamGUI/FlatCAMGUI.py:1087 flatcamGUI/FlatCAMGUI.py:2791 msgid "Snap to grid" msgstr "" -#: AppGUI/MainGUI.py:1084 +#: flatcamGUI/FlatCAMGUI.py:1090 flatcamGUI/FlatCAMGUI.py:2794 msgid "Grid X snapping distance" msgstr "" -#: AppGUI/MainGUI.py:1089 +#: flatcamGUI/FlatCAMGUI.py:1095 flatcamGUI/FlatCAMGUI.py:2799 +msgid "Grid Y snapping distance" +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:1101 flatcamGUI/FlatCAMGUI.py:2805 msgid "" "When active, value on Grid_X\n" "is copied to the Grid_Y value." msgstr "" -#: AppGUI/MainGUI.py:1096 -msgid "Grid Y snapping distance" -msgstr "" - -#: AppGUI/MainGUI.py:1101 -msgid "Toggle the display of axis on canvas" -msgstr "" - -#: AppGUI/MainGUI.py:1107 AppGUI/preferences/PreferencesUIManager.py:846 -#: AppGUI/preferences/PreferencesUIManager.py:938 -#: AppGUI/preferences/PreferencesUIManager.py:966 -#: AppGUI/preferences/PreferencesUIManager.py:1072 App_Main.py:5140 App_Main.py:5145 -#: App_Main.py:5168 -msgid "Preferences" -msgstr "" - -#: AppGUI/MainGUI.py:1113 -msgid "Command Line" -msgstr "" - -#: AppGUI/MainGUI.py:1119 -msgid "HUD (Heads up display)" -msgstr "" - -#: AppGUI/MainGUI.py:1125 AppGUI/preferences/general/GeneralAPPSetGroupUI.py:97 -msgid "" -"Draw a delimiting rectangle on canvas.\n" -"The purpose is to illustrate the limits for our work." -msgstr "" - -#: AppGUI/MainGUI.py:1135 +#: flatcamGUI/FlatCAMGUI.py:1108 flatcamGUI/FlatCAMGUI.py:2812 msgid "Snap to corner" msgstr "" -#: AppGUI/MainGUI.py:1139 AppGUI/preferences/general/GeneralAPPSetGroupUI.py:78 +#: flatcamGUI/FlatCAMGUI.py:1112 flatcamGUI/FlatCAMGUI.py:2816 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:78 msgid "Max. magnet distance" msgstr "" -#: AppGUI/MainGUI.py:1175 AppGUI/MainGUI.py:1420 App_Main.py:7639 -msgid "Project" -msgstr "" - -#: AppGUI/MainGUI.py:1190 +#: flatcamGUI/FlatCAMGUI.py:1149 msgid "Selected" msgstr "" -#: AppGUI/MainGUI.py:1218 AppGUI/MainGUI.py:1226 +#: flatcamGUI/FlatCAMGUI.py:1177 flatcamGUI/FlatCAMGUI.py:1185 msgid "Plot Area" msgstr "" -#: AppGUI/MainGUI.py:1253 +#: flatcamGUI/FlatCAMGUI.py:1212 msgid "General" msgstr "" -#: AppGUI/MainGUI.py:1268 AppTools/ToolCopperThieving.py:74 AppTools/ToolCorners.py:55 -#: AppTools/ToolDblSided.py:64 AppTools/ToolEtchCompensation.py:73 -#: AppTools/ToolExtractDrills.py:61 AppTools/ToolFiducials.py:262 -#: AppTools/ToolInvertGerber.py:72 AppTools/ToolIsolation.py:94 AppTools/ToolOptimal.py:71 -#: AppTools/ToolPunchGerber.py:64 AppTools/ToolQRCode.py:78 AppTools/ToolRulesCheck.py:61 -#: AppTools/ToolSolderPaste.py:67 AppTools/ToolSub.py:70 +#: flatcamGUI/FlatCAMGUI.py:1227 flatcamTools/ToolCopperThieving.py:74 +#: flatcamTools/ToolDblSided.py:64 flatcamTools/ToolExtractDrills.py:61 +#: flatcamTools/ToolInvertGerber.py:72 flatcamTools/ToolOptimal.py:71 +#: flatcamTools/ToolPunchGerber.py:64 msgid "GERBER" msgstr "" -#: AppGUI/MainGUI.py:1278 AppTools/ToolDblSided.py:92 AppTools/ToolRulesCheck.py:199 +#: flatcamGUI/FlatCAMGUI.py:1237 flatcamTools/ToolDblSided.py:92 msgid "EXCELLON" msgstr "" -#: AppGUI/MainGUI.py:1288 AppTools/ToolDblSided.py:120 AppTools/ToolSub.py:125 +#: flatcamGUI/FlatCAMGUI.py:1247 flatcamTools/ToolDblSided.py:120 msgid "GEOMETRY" msgstr "" -#: AppGUI/MainGUI.py:1298 +#: flatcamGUI/FlatCAMGUI.py:1257 msgid "CNC-JOB" msgstr "" -#: AppGUI/MainGUI.py:1307 AppGUI/ObjectUI.py:328 AppGUI/ObjectUI.py:2062 +#: flatcamGUI/FlatCAMGUI.py:1266 flatcamGUI/ObjectUI.py:563 flatcamGUI/ObjectUI.py:2132 msgid "TOOLS" msgstr "" -#: AppGUI/MainGUI.py:1316 +#: flatcamGUI/FlatCAMGUI.py:1275 msgid "TOOLS 2" msgstr "" -#: AppGUI/MainGUI.py:1326 +#: flatcamGUI/FlatCAMGUI.py:1285 msgid "UTILITIES" msgstr "" -#: AppGUI/MainGUI.py:1343 AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:201 +#: flatcamGUI/FlatCAMGUI.py:1302 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:192 msgid "Restore Defaults" msgstr "" -#: AppGUI/MainGUI.py:1346 +#: flatcamGUI/FlatCAMGUI.py:1305 msgid "" "Restore the entire set of default values\n" "to the initial values loaded after first launch." msgstr "" -#: AppGUI/MainGUI.py:1351 +#: flatcamGUI/FlatCAMGUI.py:1310 msgid "Open Pref Folder" msgstr "" -#: AppGUI/MainGUI.py:1354 +#: flatcamGUI/FlatCAMGUI.py:1313 msgid "Open the folder where FlatCAM save the preferences files." msgstr "" -#: AppGUI/MainGUI.py:1358 AppGUI/MainGUI.py:1836 +#: flatcamGUI/FlatCAMGUI.py:1317 flatcamGUI/FlatCAMGUI.py:2517 msgid "Clear GUI Settings" msgstr "" -#: AppGUI/MainGUI.py:1362 +#: flatcamGUI/FlatCAMGUI.py:1321 msgid "" "Clear the GUI settings for FlatCAM,\n" "such as: layout, gui state, style, hdpi support etc." msgstr "" -#: AppGUI/MainGUI.py:1373 +#: flatcamGUI/FlatCAMGUI.py:1332 msgid "Apply" msgstr "" -#: AppGUI/MainGUI.py:1376 +#: flatcamGUI/FlatCAMGUI.py:1335 msgid "Apply the current preferences without saving to a file." msgstr "" -#: AppGUI/MainGUI.py:1383 +#: flatcamGUI/FlatCAMGUI.py:1342 msgid "" "Save the current settings in the 'current_defaults' file\n" "which is the file storing the working default preferences." msgstr "" -#: AppGUI/MainGUI.py:1391 +#: flatcamGUI/FlatCAMGUI.py:1350 msgid "Will not save the changes and will close the preferences window." msgstr "" -#: AppGUI/MainGUI.py:1405 -msgid "Toggle Visibility" +#: flatcamGUI/FlatCAMGUI.py:1719 +msgid "SHOW SHORTCUT LIST" msgstr "" -#: AppGUI/MainGUI.py:1411 -msgid "New" +#: flatcamGUI/FlatCAMGUI.py:1719 +msgid "Switch to Project Tab" msgstr "" -#: AppGUI/MainGUI.py:1413 AppTools/ToolCalibration.py:631 AppTools/ToolCalibration.py:648 -#: AppTools/ToolCalibration.py:815 AppTools/ToolCopperThieving.py:148 -#: AppTools/ToolCopperThieving.py:162 AppTools/ToolCopperThieving.py:608 -#: AppTools/ToolCutOut.py:92 AppTools/ToolDblSided.py:226 AppTools/ToolFilm.py:69 -#: AppTools/ToolFilm.py:92 AppTools/ToolImage.py:49 AppTools/ToolImage.py:271 -#: AppTools/ToolIsolation.py:464 AppTools/ToolIsolation.py:517 -#: AppTools/ToolIsolation.py:1281 AppTools/ToolNCC.py:95 AppTools/ToolNCC.py:558 -#: AppTools/ToolNCC.py:1318 AppTools/ToolPaint.py:501 AppTools/ToolPaint.py:705 -#: AppTools/ToolPanelize.py:116 AppTools/ToolPanelize.py:385 AppTools/ToolPanelize.py:402 -msgid "Geometry" +#: flatcamGUI/FlatCAMGUI.py:1719 +msgid "Switch to Selected Tab" msgstr "" -#: AppGUI/MainGUI.py:1417 AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:99 -#: AppTools/ToolAlignObjects.py:74 AppTools/ToolAlignObjects.py:110 -#: AppTools/ToolCalibration.py:197 AppTools/ToolCalibration.py:631 -#: AppTools/ToolCalibration.py:648 AppTools/ToolCalibration.py:807 -#: AppTools/ToolCalibration.py:815 AppTools/ToolCopperThieving.py:148 -#: AppTools/ToolCopperThieving.py:162 AppTools/ToolCopperThieving.py:608 -#: AppTools/ToolDblSided.py:225 AppTools/ToolFilm.py:342 AppTools/ToolIsolation.py:517 -#: AppTools/ToolIsolation.py:1281 AppTools/ToolNCC.py:558 AppTools/ToolNCC.py:1318 -#: AppTools/ToolPaint.py:501 AppTools/ToolPaint.py:705 AppTools/ToolPanelize.py:385 -#: AppTools/ToolPunchGerber.py:149 AppTools/ToolPunchGerber.py:164 -msgid "Excellon" +#: flatcamGUI/FlatCAMGUI.py:1720 +msgid "Switch to Tool Tab" msgstr "" -#: AppGUI/MainGUI.py:1424 -msgid "Grids" +#: flatcamGUI/FlatCAMGUI.py:1721 +msgid "New Gerber" msgstr "" -#: AppGUI/MainGUI.py:1431 -msgid "Clear Plot" +#: flatcamGUI/FlatCAMGUI.py:1721 +msgid "Edit Object (if selected)" msgstr "" -#: AppGUI/MainGUI.py:1433 -msgid "Replot" +#: flatcamGUI/FlatCAMGUI.py:1721 +msgid "Jump to Coordinates" msgstr "" -#: AppGUI/MainGUI.py:1437 -msgid "Geo Editor" +#: flatcamGUI/FlatCAMGUI.py:1722 +msgid "New Excellon" msgstr "" -#: AppGUI/MainGUI.py:1439 -msgid "Path" +#: flatcamGUI/FlatCAMGUI.py:1722 +msgid "Move Obj" msgstr "" -#: AppGUI/MainGUI.py:1441 -msgid "Rectangle" +#: flatcamGUI/FlatCAMGUI.py:1722 +msgid "New Geometry" msgstr "" -#: AppGUI/MainGUI.py:1444 -msgid "Circle" +#: flatcamGUI/FlatCAMGUI.py:1722 +msgid "Change Units" msgstr "" -#: AppGUI/MainGUI.py:1448 -msgid "Arc" +#: flatcamGUI/FlatCAMGUI.py:1723 +msgid "Open Properties Tool" msgstr "" -#: AppGUI/MainGUI.py:1462 -msgid "Union" +#: flatcamGUI/FlatCAMGUI.py:1723 +msgid "Rotate by 90 degree CW" msgstr "" -#: AppGUI/MainGUI.py:1464 -msgid "Intersection" +#: flatcamGUI/FlatCAMGUI.py:1723 +msgid "Shell Toggle" msgstr "" -#: AppGUI/MainGUI.py:1466 -msgid "Subtraction" +#: flatcamGUI/FlatCAMGUI.py:1724 +msgid "Add a Tool (when in Geometry Selected Tab or in Tools NCC or Tools Paint)" msgstr "" -#: AppGUI/MainGUI.py:1468 AppGUI/ObjectUI.py:2151 -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:56 -msgid "Cut" +#: flatcamGUI/FlatCAMGUI.py:1725 +msgid "Flip on X_axis" msgstr "" -#: AppGUI/MainGUI.py:1479 -msgid "Pad" +#: flatcamGUI/FlatCAMGUI.py:1725 +msgid "Flip on Y_axis" msgstr "" -#: AppGUI/MainGUI.py:1481 -msgid "Pad Array" +#: flatcamGUI/FlatCAMGUI.py:1728 +msgid "Copy Obj" msgstr "" -#: AppGUI/MainGUI.py:1485 -msgid "Track" +#: flatcamGUI/FlatCAMGUI.py:1728 +msgid "Open Tools Database" msgstr "" -#: AppGUI/MainGUI.py:1487 -msgid "Region" +#: flatcamGUI/FlatCAMGUI.py:1729 +msgid "Open Excellon File" msgstr "" -#: AppGUI/MainGUI.py:1510 -msgid "Exc Editor" +#: flatcamGUI/FlatCAMGUI.py:1729 +msgid "Open Gerber File" msgstr "" -#: AppGUI/MainGUI.py:1512 AppGUI/MainGUI.py:4391 +#: flatcamGUI/FlatCAMGUI.py:1729 +msgid "New Project" +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:1730 flatcamTools/ToolPDF.py:42 +msgid "PDF Import Tool" +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:1730 +msgid "Save Project" +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:1730 +msgid "Toggle Plot Area" +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:1733 +msgid "Copy Obj_Name" +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:1734 +msgid "Toggle Code Editor" +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:1734 +msgid "Toggle the axis" +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:1734 flatcamGUI/FlatCAMGUI.py:1933 flatcamGUI/FlatCAMGUI.py:2020 +#: flatcamGUI/FlatCAMGUI.py:2142 +msgid "Distance Minimum Tool" +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:1735 +msgid "Open Preferences Window" +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:1736 +msgid "Rotate by 90 degree CCW" +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:1736 +msgid "Run a Script" +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:1736 +msgid "Toggle the workspace" +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:1736 +msgid "Skew on X axis" +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:1737 +msgid "Skew on Y axis" +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:1740 +msgid "2-Sided PCB Tool" +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:1740 +msgid "Transformations Tool" +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:1742 +msgid "Solder Paste Dispensing Tool" +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:1743 +msgid "Film PCB Tool" +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:1743 +msgid "Non-Copper Clearing Tool" +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:1744 +msgid "Paint Area Tool" +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:1744 +msgid "Rules Check Tool" +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:1745 +msgid "View File Source" +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:1746 +msgid "Cutout PCB Tool" +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:1746 +msgid "Enable all Plots" +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:1746 +msgid "Disable all Plots" +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:1746 +msgid "Disable Non-selected Plots" +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:1747 +msgid "Toggle Full Screen" +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:1750 +msgid "Abort current task (gracefully)" +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:1753 +msgid "Save Project As" +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:1754 +msgid "Paste Special. Will convert a Windows path style to the one required in Tcl Shell" +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:1757 +msgid "Open Online Manual" +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:1758 +msgid "Open Online Tutorials" +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:1758 +msgid "Refresh Plots" +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:1758 flatcamTools/ToolSolderPaste.py:509 +msgid "Delete Object" +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:1758 +msgid "Alternate: Delete Tool" +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:1759 +msgid "(left to Key_1)Toggle Notebook Area (Left Side)" +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:1759 +msgid "En(Dis)able Obj Plot" +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:1760 +msgid "Deselects all objects" +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:1774 +msgid "Editor Shortcut list" +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:1928 +msgid "GEOMETRY EDITOR" +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:1928 +msgid "Draw an Arc" +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:1928 +msgid "Copy Geo Item" +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:1929 +msgid "Within Add Arc will toogle the ARC direction: CW or CCW" +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:1929 +msgid "Polygon Intersection Tool" +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:1930 +msgid "Geo Paint Tool" +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:1930 flatcamGUI/FlatCAMGUI.py:2019 flatcamGUI/FlatCAMGUI.py:2139 +msgid "Jump to Location (x, y)" +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:1930 +msgid "Toggle Corner Snap" +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:1930 +msgid "Move Geo Item" +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:1931 +msgid "Within Add Arc will cycle through the ARC modes" +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:1931 +msgid "Draw a Polygon" +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:1931 +msgid "Draw a Circle" +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:1932 +msgid "Draw a Path" +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:1932 +msgid "Draw Rectangle" +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:1932 +msgid "Polygon Subtraction Tool" +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:1932 +msgid "Add Text Tool" +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:1933 +msgid "Polygon Union Tool" +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:1933 +msgid "Flip shape on X axis" +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:1933 +msgid "Flip shape on Y axis" +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:1934 +msgid "Skew shape on X axis" +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:1934 +msgid "Skew shape on Y axis" +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:1934 +msgid "Editor Transformation Tool" +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:1935 +msgid "Offset shape on X axis" +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:1935 +msgid "Offset shape on Y axis" +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:1936 flatcamGUI/FlatCAMGUI.py:2022 flatcamGUI/FlatCAMGUI.py:2144 +msgid "Save Object and Exit Editor" +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:1936 +msgid "Polygon Cut Tool" +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:1937 +msgid "Rotate Geometry" +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:1937 +msgid "Finish drawing for certain tools" +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:1937 flatcamGUI/FlatCAMGUI.py:2022 flatcamGUI/FlatCAMGUI.py:2142 +msgid "Abort and return to Select" +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:1938 flatcamGUI/FlatCAMGUI.py:2734 +msgid "Delete Shape" +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:2018 +msgid "EXCELLON EDITOR" +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:2018 +msgid "Copy Drill(s)" +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:2018 flatcamGUI/FlatCAMGUI.py:2268 msgid "Add Drill" msgstr "" -#: AppGUI/MainGUI.py:1531 App_Main.py:2219 -msgid "Close Editor" +#: flatcamGUI/FlatCAMGUI.py:2019 +msgid "Move Drill(s)" msgstr "" -#: AppGUI/MainGUI.py:1555 +#: flatcamGUI/FlatCAMGUI.py:2020 +msgid "Add a new Tool" +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:2021 +msgid "Delete Drill(s)" +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:2021 +msgid "Alternate: Delete Tool(s)" +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:2138 +msgid "GERBER EDITOR" +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:2138 +msgid "Add Disc" +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:2138 +msgid "Add SemiDisc" +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:2140 +msgid "Within Track & Region Tools will cycle in REVERSE the bend modes" +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:2141 +msgid "Within Track & Region Tools will cycle FORWARD the bend modes" +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:2142 +msgid "Alternate: Delete Apertures" +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:2143 +msgid "Eraser Tool" +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:2144 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:220 +msgid "Mark Area Tool" +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:2144 +msgid "Poligonize Tool" +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:2144 +msgid "Transformation Tool" +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:2161 +msgid "Toggle Visibility" +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:2167 +msgid "New" +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:2169 flatcamGUI/ObjectUI.py:450 +#: flatcamObjects/FlatCAMGerber.py:239 flatcamObjects/FlatCAMGerber.py:327 +#: flatcamTools/ToolCalibration.py:631 flatcamTools/ToolCalibration.py:648 +#: flatcamTools/ToolCalibration.py:815 flatcamTools/ToolCopperThieving.py:144 +#: flatcamTools/ToolCopperThieving.py:158 flatcamTools/ToolCopperThieving.py:604 +#: flatcamTools/ToolCutOut.py:92 flatcamTools/ToolDblSided.py:226 +#: flatcamTools/ToolFilm.py:69 flatcamTools/ToolFilm.py:102 flatcamTools/ToolFilm.py:549 +#: flatcamTools/ToolFilm.py:557 flatcamTools/ToolImage.py:49 flatcamTools/ToolImage.py:271 +#: flatcamTools/ToolNCC.py:95 flatcamTools/ToolNCC.py:558 flatcamTools/ToolNCC.py:1300 +#: flatcamTools/ToolPaint.py:502 flatcamTools/ToolPaint.py:706 +#: flatcamTools/ToolPanelize.py:118 flatcamTools/ToolPanelize.py:374 +#: flatcamTools/ToolPanelize.py:391 +msgid "Geometry" +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:2173 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:99 +#: flatcamTools/ToolAlignObjects.py:74 flatcamTools/ToolAlignObjects.py:110 +#: flatcamTools/ToolCalibration.py:197 flatcamTools/ToolCalibration.py:631 +#: flatcamTools/ToolCalibration.py:648 flatcamTools/ToolCalibration.py:807 +#: flatcamTools/ToolCalibration.py:815 flatcamTools/ToolCopperThieving.py:144 +#: flatcamTools/ToolCopperThieving.py:158 flatcamTools/ToolCopperThieving.py:604 +#: flatcamTools/ToolDblSided.py:225 flatcamTools/ToolFilm.py:359 flatcamTools/ToolNCC.py:558 +#: flatcamTools/ToolNCC.py:1300 flatcamTools/ToolPaint.py:502 flatcamTools/ToolPaint.py:706 +#: flatcamTools/ToolPanelize.py:374 flatcamTools/ToolPunchGerber.py:149 +#: flatcamTools/ToolPunchGerber.py:164 +msgid "Excellon" +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:2180 +msgid "Grids" +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:2187 +msgid "Clear Plot" +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:2189 +msgid "Replot" +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:2193 +msgid "Geo Editor" +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:2195 +msgid "Path" +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:2197 +msgid "Rectangle" +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:2200 +msgid "Circle" +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:2204 +msgid "Arc" +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:2218 +msgid "Union" +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:2220 +msgid "Intersection" +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:2222 +msgid "Subtraction" +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:2224 flatcamGUI/ObjectUI.py:2221 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:56 +msgid "Cut" +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:2235 +msgid "Pad" +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:2237 +msgid "Pad Array" +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:2241 +msgid "Track" +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:2243 +msgid "Region" +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:2266 +msgid "Exc Editor" +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:2311 +msgid "" +"Relative measurement.\n" +"Reference is last click position" +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:2317 msgid "" "Absolute measurement.\n" "Reference is (X=0, Y= 0) position" msgstr "" -#: AppGUI/MainGUI.py:1563 -msgid "Application units" -msgstr "" - -#: AppGUI/MainGUI.py:1654 +#: flatcamGUI/FlatCAMGUI.py:2419 msgid "Lock Toolbars" msgstr "" -#: AppGUI/MainGUI.py:1824 +#: flatcamGUI/FlatCAMGUI.py:2505 msgid "FlatCAM Preferences Folder opened." msgstr "" -#: AppGUI/MainGUI.py:1835 +#: flatcamGUI/FlatCAMGUI.py:2516 msgid "Are you sure you want to delete the GUI Settings? \n" msgstr "" -#: AppGUI/MainGUI.py:1840 AppGUI/preferences/PreferencesUIManager.py:877 -#: AppGUI/preferences/PreferencesUIManager.py:1123 AppTranslation.py:111 -#: AppTranslation.py:210 App_Main.py:2223 App_Main.py:3158 App_Main.py:5354 App_Main.py:6415 -msgid "Yes" -msgstr "" - -#: AppGUI/MainGUI.py:1841 AppGUI/preferences/PreferencesUIManager.py:1124 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:62 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:164 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:150 AppTools/ToolIsolation.py:174 -#: AppTools/ToolNCC.py:182 AppTools/ToolPaint.py:165 AppTranslation.py:112 -#: AppTranslation.py:211 App_Main.py:2224 App_Main.py:3159 App_Main.py:5355 App_Main.py:6416 -msgid "No" -msgstr "" - -#: AppGUI/MainGUI.py:1940 +#: flatcamGUI/FlatCAMGUI.py:2624 msgid "&Cutout Tool" msgstr "" -#: AppGUI/MainGUI.py:2016 +#: flatcamGUI/FlatCAMGUI.py:2694 msgid "Select 'Esc'" msgstr "" -#: AppGUI/MainGUI.py:2054 +#: flatcamGUI/FlatCAMGUI.py:2732 msgid "Copy Objects" msgstr "" -#: AppGUI/MainGUI.py:2056 AppGUI/MainGUI.py:4311 -msgid "Delete Shape" -msgstr "" - -#: AppGUI/MainGUI.py:2062 +#: flatcamGUI/FlatCAMGUI.py:2740 msgid "Move Objects" msgstr "" -#: AppGUI/MainGUI.py:2648 +#: flatcamGUI/FlatCAMGUI.py:3363 msgid "" "Please first select a geometry item to be cutted\n" "then select the geometry item that will be cutted\n" @@ -4347,520 +6196,124 @@ msgid "" "the toolbar button." msgstr "" -#: AppGUI/MainGUI.py:2655 AppGUI/MainGUI.py:2819 AppGUI/MainGUI.py:2866 -#: AppGUI/MainGUI.py:2888 +#: flatcamGUI/FlatCAMGUI.py:3370 flatcamGUI/FlatCAMGUI.py:3532 flatcamGUI/FlatCAMGUI.py:3577 +#: flatcamGUI/FlatCAMGUI.py:3597 msgid "Warning" msgstr "" -#: AppGUI/MainGUI.py:2814 +#: flatcamGUI/FlatCAMGUI.py:3527 msgid "" "Please select geometry items \n" "on which to perform Intersection Tool." msgstr "" -#: AppGUI/MainGUI.py:2861 +#: flatcamGUI/FlatCAMGUI.py:3572 msgid "" "Please select geometry items \n" "on which to perform Substraction Tool." msgstr "" -#: AppGUI/MainGUI.py:2883 +#: flatcamGUI/FlatCAMGUI.py:3592 msgid "" "Please select geometry items \n" "on which to perform union." msgstr "" -#: AppGUI/MainGUI.py:2968 AppGUI/MainGUI.py:3183 +#: flatcamGUI/FlatCAMGUI.py:3675 flatcamGUI/FlatCAMGUI.py:3890 msgid "Cancelled. Nothing selected to delete." msgstr "" -#: AppGUI/MainGUI.py:3052 AppGUI/MainGUI.py:3299 +#: flatcamGUI/FlatCAMGUI.py:3759 flatcamGUI/FlatCAMGUI.py:4006 msgid "Cancelled. Nothing selected to copy." msgstr "" -#: AppGUI/MainGUI.py:3098 AppGUI/MainGUI.py:3328 +#: flatcamGUI/FlatCAMGUI.py:3805 flatcamGUI/FlatCAMGUI.py:4035 msgid "Cancelled. Nothing selected to move." msgstr "" -#: AppGUI/MainGUI.py:3354 +#: flatcamGUI/FlatCAMGUI.py:4061 msgid "New Tool ..." msgstr "" -#: AppGUI/MainGUI.py:3355 AppTools/ToolIsolation.py:1258 AppTools/ToolNCC.py:924 -#: AppTools/ToolPaint.py:849 AppTools/ToolSolderPaste.py:568 +#: flatcamGUI/FlatCAMGUI.py:4062 flatcamTools/ToolNCC.py:924 flatcamTools/ToolPaint.py:850 +#: flatcamTools/ToolSolderPaste.py:560 msgid "Enter a Tool Diameter" msgstr "" -#: AppGUI/MainGUI.py:3367 +#: flatcamGUI/FlatCAMGUI.py:4074 msgid "Adding Tool cancelled ..." msgstr "" -#: AppGUI/MainGUI.py:3381 +#: flatcamGUI/FlatCAMGUI.py:4088 msgid "Distance Tool exit..." msgstr "" -#: AppGUI/MainGUI.py:3561 App_Main.py:3146 -msgid "Application is saving the project. Please wait ..." +#: flatcamGUI/FlatCAMGUI.py:4323 flatcamGUI/FlatCAMGUI.py:4330 +msgid "Idle." msgstr "" -#: AppGUI/MainGUI.py:3668 -msgid "Shell disabled." +#: flatcamGUI/FlatCAMGUI.py:4361 +msgid "Application started ..." msgstr "" -#: AppGUI/MainGUI.py:3678 -msgid "Shell enabled." +#: flatcamGUI/FlatCAMGUI.py:4362 +msgid "Hello!" msgstr "" -#: AppGUI/MainGUI.py:3706 App_Main.py:9155 -msgid "Shortcut Key List" +#: flatcamGUI/FlatCAMGUI.py:4424 +msgid "Open Project ..." msgstr "" -#: AppGUI/MainGUI.py:4089 -msgid "General Shortcut list" +#: flatcamGUI/FlatCAMGUI.py:4450 +msgid "Exit" msgstr "" -#: AppGUI/MainGUI.py:4090 -msgid "SHOW SHORTCUT LIST" +#: flatcamGUI/GUIElements.py:2513 flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:180 +#: flatcamTools/ToolDblSided.py:173 flatcamTools/ToolDblSided.py:388 +#: flatcamTools/ToolFilm.py:219 +msgid "Reference" msgstr "" -#: AppGUI/MainGUI.py:4090 -msgid "Switch to Project Tab" +#: flatcamGUI/GUIElements.py:2515 +msgid "" +"The reference can be:\n" +"- Absolute -> the reference point is point (0,0)\n" +"- Relative -> the reference point is the mouse position before Jump" msgstr "" -#: AppGUI/MainGUI.py:4090 -msgid "Switch to Selected Tab" +#: flatcamGUI/GUIElements.py:2520 +msgid "Abs" msgstr "" -#: AppGUI/MainGUI.py:4091 -msgid "Switch to Tool Tab" +#: flatcamGUI/GUIElements.py:2521 +msgid "Relative" msgstr "" -#: AppGUI/MainGUI.py:4092 -msgid "New Gerber" +#: flatcamGUI/GUIElements.py:2531 +msgid "Location" msgstr "" -#: AppGUI/MainGUI.py:4092 -msgid "Edit Object (if selected)" +#: flatcamGUI/GUIElements.py:2533 +msgid "" +"The Location value is a tuple (x,y).\n" +"If the reference is Absolute then the Jump will be at the position (x,y).\n" +"If the reference is Relative then the Jump will be at the (x,y) distance\n" +"from the current mouse location point." msgstr "" -#: AppGUI/MainGUI.py:4092 App_Main.py:5658 -msgid "Grid On/Off" +#: flatcamGUI/GUIElements.py:2573 +msgid "Save Log" msgstr "" -#: AppGUI/MainGUI.py:4092 -msgid "Jump to Coordinates" +#: flatcamGUI/GUIElements.py:2592 flatcamTools/ToolShell.py:278 +msgid "Type >help< to get started" msgstr "" -#: AppGUI/MainGUI.py:4093 -msgid "New Excellon" +#: flatcamGUI/ObjectUI.py:38 +msgid "FlatCAM Object" msgstr "" -#: AppGUI/MainGUI.py:4093 -msgid "Move Obj" -msgstr "" - -#: AppGUI/MainGUI.py:4093 -msgid "New Geometry" -msgstr "" - -#: AppGUI/MainGUI.py:4093 -msgid "Change Units" -msgstr "" - -#: AppGUI/MainGUI.py:4094 -msgid "Open Properties Tool" -msgstr "" - -#: AppGUI/MainGUI.py:4094 -msgid "Rotate by 90 degree CW" -msgstr "" - -#: AppGUI/MainGUI.py:4094 -msgid "Shell Toggle" -msgstr "" - -#: AppGUI/MainGUI.py:4095 -msgid "Add a Tool (when in Geometry Selected Tab or in Tools NCC or Tools Paint)" -msgstr "" - -#: AppGUI/MainGUI.py:4096 -msgid "Flip on X_axis" -msgstr "" - -#: AppGUI/MainGUI.py:4096 -msgid "Flip on Y_axis" -msgstr "" - -#: AppGUI/MainGUI.py:4099 -msgid "Copy Obj" -msgstr "" - -#: AppGUI/MainGUI.py:4099 -msgid "Open Tools Database" -msgstr "" - -#: AppGUI/MainGUI.py:4100 -msgid "Open Excellon File" -msgstr "" - -#: AppGUI/MainGUI.py:4100 -msgid "Open Gerber File" -msgstr "" - -#: AppGUI/MainGUI.py:4100 -msgid "New Project" -msgstr "" - -#: AppGUI/MainGUI.py:4101 App_Main.py:6711 App_Main.py:6714 -msgid "Open Project" -msgstr "" - -#: AppGUI/MainGUI.py:4101 AppTools/ToolPDF.py:41 -msgid "PDF Import Tool" -msgstr "" - -#: AppGUI/MainGUI.py:4101 -msgid "Save Project" -msgstr "" - -#: AppGUI/MainGUI.py:4101 -msgid "Toggle Plot Area" -msgstr "" - -#: AppGUI/MainGUI.py:4104 -msgid "Copy Obj_Name" -msgstr "" - -#: AppGUI/MainGUI.py:4105 -msgid "Toggle Code Editor" -msgstr "" - -#: AppGUI/MainGUI.py:4105 -msgid "Toggle the axis" -msgstr "" - -#: AppGUI/MainGUI.py:4105 AppGUI/MainGUI.py:4306 AppGUI/MainGUI.py:4393 -#: AppGUI/MainGUI.py:4515 -msgid "Distance Minimum Tool" -msgstr "" - -#: AppGUI/MainGUI.py:4106 -msgid "Open Preferences Window" -msgstr "" - -#: AppGUI/MainGUI.py:4107 -msgid "Rotate by 90 degree CCW" -msgstr "" - -#: AppGUI/MainGUI.py:4107 -msgid "Run a Script" -msgstr "" - -#: AppGUI/MainGUI.py:4107 -msgid "Toggle the workspace" -msgstr "" - -#: AppGUI/MainGUI.py:4107 -msgid "Skew on X axis" -msgstr "" - -#: AppGUI/MainGUI.py:4108 -msgid "Skew on Y axis" -msgstr "" - -#: AppGUI/MainGUI.py:4111 -msgid "2-Sided PCB Tool" -msgstr "" - -#: AppGUI/MainGUI.py:4112 -msgid "Toggle Grid Lines" -msgstr "" - -#: AppGUI/MainGUI.py:4114 -msgid "Solder Paste Dispensing Tool" -msgstr "" - -#: AppGUI/MainGUI.py:4115 -msgid "Film PCB Tool" -msgstr "" - -#: AppGUI/MainGUI.py:4115 -msgid "Non-Copper Clearing Tool" -msgstr "" - -#: AppGUI/MainGUI.py:4116 -msgid "Paint Area Tool" -msgstr "" - -#: AppGUI/MainGUI.py:4116 -msgid "Rules Check Tool" -msgstr "" - -#: AppGUI/MainGUI.py:4117 -msgid "View File Source" -msgstr "" - -#: AppGUI/MainGUI.py:4117 -msgid "Transformations Tool" -msgstr "" - -#: AppGUI/MainGUI.py:4118 -msgid "Cutout PCB Tool" -msgstr "" - -#: AppGUI/MainGUI.py:4118 AppTools/ToolPanelize.py:35 -msgid "Panelize PCB" -msgstr "" - -#: AppGUI/MainGUI.py:4119 -msgid "Enable all Plots" -msgstr "" - -#: AppGUI/MainGUI.py:4119 -msgid "Disable all Plots" -msgstr "" - -#: AppGUI/MainGUI.py:4119 -msgid "Disable Non-selected Plots" -msgstr "" - -#: AppGUI/MainGUI.py:4120 -msgid "Toggle Full Screen" -msgstr "" - -#: AppGUI/MainGUI.py:4123 -msgid "Abort current task (gracefully)" -msgstr "" - -#: AppGUI/MainGUI.py:4126 -msgid "Save Project As" -msgstr "" - -#: AppGUI/MainGUI.py:4127 -msgid "Paste Special. Will convert a Windows path style to the one required in Tcl Shell" -msgstr "" - -#: AppGUI/MainGUI.py:4130 -msgid "Open Online Manual" -msgstr "" - -#: AppGUI/MainGUI.py:4131 -msgid "Open Online Tutorials" -msgstr "" - -#: AppGUI/MainGUI.py:4131 -msgid "Refresh Plots" -msgstr "" - -#: AppGUI/MainGUI.py:4131 AppTools/ToolSolderPaste.py:517 -msgid "Delete Object" -msgstr "" - -#: AppGUI/MainGUI.py:4131 -msgid "Alternate: Delete Tool" -msgstr "" - -#: AppGUI/MainGUI.py:4132 -msgid "(left to Key_1)Toggle Notebook Area (Left Side)" -msgstr "" - -#: AppGUI/MainGUI.py:4132 -msgid "En(Dis)able Obj Plot" -msgstr "" - -#: AppGUI/MainGUI.py:4133 -msgid "Deselects all objects" -msgstr "" - -#: AppGUI/MainGUI.py:4147 -msgid "Editor Shortcut list" -msgstr "" - -#: AppGUI/MainGUI.py:4301 -msgid "GEOMETRY EDITOR" -msgstr "" - -#: AppGUI/MainGUI.py:4301 -msgid "Draw an Arc" -msgstr "" - -#: AppGUI/MainGUI.py:4301 -msgid "Copy Geo Item" -msgstr "" - -#: AppGUI/MainGUI.py:4302 -msgid "Within Add Arc will toogle the ARC direction: CW or CCW" -msgstr "" - -#: AppGUI/MainGUI.py:4302 -msgid "Polygon Intersection Tool" -msgstr "" - -#: AppGUI/MainGUI.py:4303 -msgid "Geo Paint Tool" -msgstr "" - -#: AppGUI/MainGUI.py:4303 AppGUI/MainGUI.py:4392 AppGUI/MainGUI.py:4512 -msgid "Jump to Location (x, y)" -msgstr "" - -#: AppGUI/MainGUI.py:4303 -msgid "Toggle Corner Snap" -msgstr "" - -#: AppGUI/MainGUI.py:4303 -msgid "Move Geo Item" -msgstr "" - -#: AppGUI/MainGUI.py:4304 -msgid "Within Add Arc will cycle through the ARC modes" -msgstr "" - -#: AppGUI/MainGUI.py:4304 -msgid "Draw a Polygon" -msgstr "" - -#: AppGUI/MainGUI.py:4304 -msgid "Draw a Circle" -msgstr "" - -#: AppGUI/MainGUI.py:4305 -msgid "Draw a Path" -msgstr "" - -#: AppGUI/MainGUI.py:4305 -msgid "Draw Rectangle" -msgstr "" - -#: AppGUI/MainGUI.py:4305 -msgid "Polygon Subtraction Tool" -msgstr "" - -#: AppGUI/MainGUI.py:4305 -msgid "Add Text Tool" -msgstr "" - -#: AppGUI/MainGUI.py:4306 -msgid "Polygon Union Tool" -msgstr "" - -#: AppGUI/MainGUI.py:4306 -msgid "Flip shape on X axis" -msgstr "" - -#: AppGUI/MainGUI.py:4306 -msgid "Flip shape on Y axis" -msgstr "" - -#: AppGUI/MainGUI.py:4307 -msgid "Skew shape on X axis" -msgstr "" - -#: AppGUI/MainGUI.py:4307 -msgid "Skew shape on Y axis" -msgstr "" - -#: AppGUI/MainGUI.py:4307 -msgid "Editor Transformation Tool" -msgstr "" - -#: AppGUI/MainGUI.py:4308 -msgid "Offset shape on X axis" -msgstr "" - -#: AppGUI/MainGUI.py:4308 -msgid "Offset shape on Y axis" -msgstr "" - -#: AppGUI/MainGUI.py:4309 AppGUI/MainGUI.py:4395 AppGUI/MainGUI.py:4517 -msgid "Save Object and Exit Editor" -msgstr "" - -#: AppGUI/MainGUI.py:4309 -msgid "Polygon Cut Tool" -msgstr "" - -#: AppGUI/MainGUI.py:4310 -msgid "Rotate Geometry" -msgstr "" - -#: AppGUI/MainGUI.py:4310 -msgid "Finish drawing for certain tools" -msgstr "" - -#: AppGUI/MainGUI.py:4310 AppGUI/MainGUI.py:4395 AppGUI/MainGUI.py:4515 -msgid "Abort and return to Select" -msgstr "" - -#: AppGUI/MainGUI.py:4391 -msgid "EXCELLON EDITOR" -msgstr "" - -#: AppGUI/MainGUI.py:4391 -msgid "Copy Drill(s)" -msgstr "" - -#: AppGUI/MainGUI.py:4392 -msgid "Move Drill(s)" -msgstr "" - -#: AppGUI/MainGUI.py:4393 -msgid "Add a new Tool" -msgstr "" - -#: AppGUI/MainGUI.py:4394 -msgid "Delete Drill(s)" -msgstr "" - -#: AppGUI/MainGUI.py:4394 -msgid "Alternate: Delete Tool(s)" -msgstr "" - -#: AppGUI/MainGUI.py:4511 -msgid "GERBER EDITOR" -msgstr "" - -#: AppGUI/MainGUI.py:4511 -msgid "Add Disc" -msgstr "" - -#: AppGUI/MainGUI.py:4511 -msgid "Add SemiDisc" -msgstr "" - -#: AppGUI/MainGUI.py:4513 -msgid "Within Track & Region Tools will cycle in REVERSE the bend modes" -msgstr "" - -#: AppGUI/MainGUI.py:4514 -msgid "Within Track & Region Tools will cycle FORWARD the bend modes" -msgstr "" - -#: AppGUI/MainGUI.py:4515 -msgid "Alternate: Delete Apertures" -msgstr "" - -#: AppGUI/MainGUI.py:4516 -msgid "Eraser Tool" -msgstr "" - -#: AppGUI/MainGUI.py:4517 AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:221 -msgid "Mark Area Tool" -msgstr "" - -#: AppGUI/MainGUI.py:4517 -msgid "Poligonize Tool" -msgstr "" - -#: AppGUI/MainGUI.py:4517 -msgid "Transformation Tool" -msgstr "" - -#: AppGUI/ObjectUI.py:38 -msgid "App Object" -msgstr "" - -#: AppGUI/ObjectUI.py:78 AppTools/ToolIsolation.py:77 +#: flatcamGUI/ObjectUI.py:78 msgid "" "BASIC is suitable for a beginner. Many parameters\n" "are hidden from the user in this mode.\n" @@ -4871,116 +6324,344 @@ msgid "" "'APP. LEVEL' radio button." msgstr "" -#: AppGUI/ObjectUI.py:111 AppGUI/ObjectUI.py:154 +#: flatcamGUI/ObjectUI.py:111 msgid "Geometrical transformations of the current object." msgstr "" -#: AppGUI/ObjectUI.py:120 +#: flatcamGUI/ObjectUI.py:120 msgid "" "Factor by which to multiply\n" "geometric features of this object.\n" "Expressions are allowed. E.g: 1/25.4" msgstr "" -#: AppGUI/ObjectUI.py:127 +#: flatcamGUI/ObjectUI.py:127 msgid "Perform scaling operation." msgstr "" -#: AppGUI/ObjectUI.py:138 +#: flatcamGUI/ObjectUI.py:138 msgid "" "Amount by which to move the object\n" "in the x and y axes in (x, y) format.\n" "Expressions are allowed. E.g: (1/3.2, 0.5*3)" msgstr "" -#: AppGUI/ObjectUI.py:145 +#: flatcamGUI/ObjectUI.py:145 msgid "Perform the offset operation." msgstr "" -#: AppGUI/ObjectUI.py:162 AppGUI/ObjectUI.py:173 AppTool.py:280 AppTool.py:291 -msgid "Edited value is out of range" -msgstr "" - -#: AppGUI/ObjectUI.py:168 AppGUI/ObjectUI.py:175 AppTool.py:286 AppTool.py:293 -msgid "Edited value is within limits." -msgstr "" - -#: AppGUI/ObjectUI.py:187 +#: flatcamGUI/ObjectUI.py:178 msgid "Gerber Object" msgstr "" -#: AppGUI/ObjectUI.py:196 AppGUI/ObjectUI.py:496 AppGUI/ObjectUI.py:1313 -#: AppGUI/ObjectUI.py:2135 AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:30 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:33 -#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:31 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:31 +#: flatcamGUI/ObjectUI.py:187 flatcamGUI/ObjectUI.py:730 flatcamGUI/ObjectUI.py:1426 +#: flatcamGUI/ObjectUI.py:2205 flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:30 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:33 +#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:31 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:31 msgid "Plot Options" msgstr "" -#: AppGUI/ObjectUI.py:202 AppGUI/ObjectUI.py:502 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:47 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:45 -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:119 -#: AppTools/ToolCopperThieving.py:195 +#: flatcamGUI/ObjectUI.py:193 flatcamGUI/ObjectUI.py:731 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:45 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:38 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:119 +#: flatcamTools/ToolCopperThieving.py:191 msgid "Solid" msgstr "" -#: AppGUI/ObjectUI.py:204 AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:47 +#: flatcamGUI/ObjectUI.py:195 flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:40 msgid "Solid color polygons." msgstr "" -#: AppGUI/ObjectUI.py:210 AppGUI/ObjectUI.py:510 AppGUI/ObjectUI.py:1319 +#: flatcamGUI/ObjectUI.py:201 msgid "Multi-Color" msgstr "" -#: AppGUI/ObjectUI.py:212 AppGUI/ObjectUI.py:512 AppGUI/ObjectUI.py:1321 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:56 -#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:47 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:54 +#: flatcamGUI/ObjectUI.py:203 flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:47 msgid "Draw polygons in different colors." msgstr "" -#: AppGUI/ObjectUI.py:228 AppGUI/ObjectUI.py:548 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:40 -#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:38 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:38 +#: flatcamGUI/ObjectUI.py:209 flatcamGUI/ObjectUI.py:769 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:39 +#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:35 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:52 msgid "Plot" msgstr "" -#: AppGUI/ObjectUI.py:229 AppGUI/ObjectUI.py:550 AppGUI/ObjectUI.py:1383 -#: AppGUI/ObjectUI.py:2245 AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:41 -#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:40 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:40 +#: flatcamGUI/ObjectUI.py:211 flatcamGUI/ObjectUI.py:771 flatcamGUI/ObjectUI.py:1486 +#: flatcamGUI/ObjectUI.py:2315 flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:41 +#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:37 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:54 msgid "Plot (show) this object." msgstr "" -#: AppGUI/ObjectUI.py:258 +#: flatcamGUI/ObjectUI.py:239 msgid "" "Toggle the display of the Gerber Apertures Table.\n" "When unchecked, it will delete all mark shapes\n" "that are drawn on canvas." msgstr "" -#: AppGUI/ObjectUI.py:268 +#: flatcamGUI/ObjectUI.py:249 msgid "Mark All" msgstr "" -#: AppGUI/ObjectUI.py:270 +#: flatcamGUI/ObjectUI.py:251 msgid "" "When checked it will display all the apertures.\n" "When unchecked, it will delete all mark shapes\n" "that are drawn on canvas." msgstr "" -#: AppGUI/ObjectUI.py:298 +#: flatcamGUI/ObjectUI.py:279 msgid "Mark the aperture instances on canvas." msgstr "" -#: AppGUI/ObjectUI.py:305 AppTools/ToolIsolation.py:579 +#: flatcamGUI/ObjectUI.py:291 flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:32 +msgid "Isolation Routing" +msgstr "" + +#: flatcamGUI/ObjectUI.py:293 flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:34 +msgid "" +"Create a Geometry object with\n" +"toolpaths to cut outside polygons." +msgstr "" + +#: flatcamGUI/ObjectUI.py:311 flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:69 +msgid "" +"Choose which tool to use for Gerber isolation:\n" +"'Circular' or 'V-shape'.\n" +"When the 'V-shape' is selected then the tool\n" +"diameter will depend on the chosen cut depth." +msgstr "" + +#: flatcamGUI/ObjectUI.py:317 +msgid "V-Shape" +msgstr "" + +#: flatcamGUI/ObjectUI.py:323 flatcamGUI/ObjectUI.py:1672 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:81 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:72 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:78 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:85 flatcamTools/ToolNCC.py:233 +#: flatcamTools/ToolNCC.py:240 flatcamTools/ToolPaint.py:216 +msgid "V-Tip Dia" +msgstr "" + +#: flatcamGUI/ObjectUI.py:325 flatcamGUI/ObjectUI.py:1675 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:83 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:74 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:80 flatcamTools/ToolNCC.py:235 +#: flatcamTools/ToolPaint.py:218 +msgid "The tip diameter for V-Shape Tool" +msgstr "" + +#: flatcamGUI/ObjectUI.py:336 flatcamGUI/ObjectUI.py:1687 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:94 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:84 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:91 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:99 flatcamTools/ToolNCC.py:246 +#: flatcamTools/ToolNCC.py:254 flatcamTools/ToolPaint.py:229 +msgid "V-Tip Angle" +msgstr "" + +#: flatcamGUI/ObjectUI.py:338 flatcamGUI/ObjectUI.py:1690 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:96 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:86 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:93 flatcamTools/ToolNCC.py:248 +#: flatcamTools/ToolPaint.py:231 +msgid "" +"The tip angle for V-Shape Tool.\n" +"In degree." +msgstr "" + +#: flatcamGUI/ObjectUI.py:352 flatcamGUI/ObjectUI.py:1706 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:50 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:109 +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:61 +#: flatcamObjects/FlatCAMGeometry.py:1174 flatcamTools/ToolCutOut.py:141 +msgid "" +"Cutting depth (negative)\n" +"below the copper surface." +msgstr "" + +#: flatcamGUI/ObjectUI.py:366 +msgid "" +"Diameter of the cutting tool.\n" +"If you want to have an isolation path\n" +"inside the actual shape of the Gerber\n" +"feature, use a negative value for\n" +"this parameter." +msgstr "" + +#: flatcamGUI/ObjectUI.py:382 flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:56 +msgid "# Passes" +msgstr "" + +#: flatcamGUI/ObjectUI.py:384 flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:58 +msgid "" +"Width of the isolation gap in\n" +"number (integer) of tool widths." +msgstr "" + +#: flatcamGUI/ObjectUI.py:395 flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:68 +msgid "Pass overlap" +msgstr "" + +#: flatcamGUI/ObjectUI.py:397 flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:70 +msgid "How much (percentage) of the tool width to overlap each tool pass." +msgstr "" + +#: flatcamGUI/ObjectUI.py:411 +#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:58 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:97 +msgid "" +"Milling type:\n" +"- climb / best for precision milling and to reduce tool usage\n" +"- conventional / useful when there is no backlash compensation" +msgstr "" + +#: flatcamGUI/ObjectUI.py:421 +msgid "Combine" +msgstr "" + +#: flatcamGUI/ObjectUI.py:423 flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:109 +msgid "Combine all passes into one object" +msgstr "" + +#: flatcamGUI/ObjectUI.py:427 flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:43 +msgid "\"Follow\"" +msgstr "" + +#: flatcamGUI/ObjectUI.py:428 flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:45 +msgid "" +"Generate a 'Follow' geometry.\n" +"This means that it will cut through\n" +"the middle of the trace." +msgstr "" + +#: flatcamGUI/ObjectUI.py:434 +msgid "Except" +msgstr "" + +#: flatcamGUI/ObjectUI.py:437 +msgid "" +"When the isolation geometry is generated,\n" +"by checking this, the area of the object below\n" +"will be subtracted from the isolation geometry." +msgstr "" + +#: flatcamGUI/ObjectUI.py:450 flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:97 +#: flatcamObjects/FlatCAMGerber.py:239 flatcamObjects/FlatCAMGerber.py:327 +#: flatcamTools/ToolAlignObjects.py:73 flatcamTools/ToolAlignObjects.py:109 +#: flatcamTools/ToolCalibration.py:196 flatcamTools/ToolCalibration.py:631 +#: flatcamTools/ToolCalibration.py:648 flatcamTools/ToolCalibration.py:807 +#: flatcamTools/ToolCalibration.py:815 flatcamTools/ToolCopperThieving.py:144 +#: flatcamTools/ToolCopperThieving.py:158 flatcamTools/ToolCopperThieving.py:604 +#: flatcamTools/ToolCutOut.py:91 flatcamTools/ToolDblSided.py:224 +#: flatcamTools/ToolFilm.py:69 flatcamTools/ToolFilm.py:102 flatcamTools/ToolFilm.py:549 +#: flatcamTools/ToolFilm.py:557 flatcamTools/ToolImage.py:49 flatcamTools/ToolImage.py:252 +#: flatcamTools/ToolImage.py:273 flatcamTools/ToolNCC.py:96 flatcamTools/ToolNCC.py:558 +#: flatcamTools/ToolNCC.py:1300 flatcamTools/ToolPaint.py:502 flatcamTools/ToolPaint.py:706 +#: flatcamTools/ToolPanelize.py:118 flatcamTools/ToolPanelize.py:204 +#: flatcamTools/ToolPanelize.py:374 flatcamTools/ToolPanelize.py:391 +msgid "Gerber" +msgstr "" + +#: flatcamGUI/ObjectUI.py:457 flatcamTools/ToolNCC.py:86 flatcamTools/ToolPaint.py:80 +msgid "Obj Type" +msgstr "" + +#: flatcamGUI/ObjectUI.py:459 +msgid "" +"Specify the type of object to be excepted from isolation.\n" +"It can be of type: Gerber or Geometry.\n" +"What is selected here will dictate the kind\n" +"of objects that will populate the 'Object' combobox." +msgstr "" + +#: flatcamGUI/ObjectUI.py:472 flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:48 +#: flatcamTools/ToolCalibration.py:186 flatcamTools/ToolNCC.py:109 +#: flatcamTools/ToolPaint.py:103 flatcamTools/ToolPanelize.py:100 +#: flatcamTools/ToolQRCode.py:78 +msgid "Object" +msgstr "" + +#: flatcamGUI/ObjectUI.py:473 +msgid "Object whose area will be removed from isolation geometry." +msgstr "" + +#: flatcamGUI/ObjectUI.py:480 flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:82 +msgid "Scope" +msgstr "" + +#: flatcamGUI/ObjectUI.py:482 flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:84 +msgid "" +"Isolation scope. Choose what to isolate:\n" +"- 'All' -> Isolate all the polygons in the object\n" +"- 'Selection' -> Isolate a selection of polygons." +msgstr "" + +#: flatcamGUI/ObjectUI.py:487 flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:307 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:89 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:311 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:258 flatcamTools/ToolNCC.py:539 +#: flatcamTools/ToolPaint.py:456 +msgid "Selection" +msgstr "" + +#: flatcamGUI/ObjectUI.py:495 flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:122 +msgid "Isolation Type" +msgstr "" + +#: flatcamGUI/ObjectUI.py:497 flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:124 +msgid "" +"Choose how the isolation will be executed:\n" +"- 'Full' -> complete isolation of polygons\n" +"- 'Ext' -> will isolate only on the outside\n" +"- 'Int' -> will isolate only on the inside\n" +"'Exterior' isolation is almost always possible\n" +"(with the right tool) but 'Interior'\n" +"isolation can be done only when there is an opening\n" +"inside of the polygon (e.g polygon is a 'doughnut' shape)." +msgstr "" + +#: flatcamGUI/ObjectUI.py:506 flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:133 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:154 +msgid "Full" +msgstr "" + +#: flatcamGUI/ObjectUI.py:507 +msgid "Ext" +msgstr "" + +#: flatcamGUI/ObjectUI.py:508 +msgid "Int" +msgstr "" + +#: flatcamGUI/ObjectUI.py:513 +msgid "Generate Isolation Geometry" +msgstr "" + +#: flatcamGUI/ObjectUI.py:521 +msgid "" +"Create a Geometry object with toolpaths to cut \n" +"isolation outside, inside or on both sides of the\n" +"object. For a Gerber object outside means outside\n" +"of the Gerber feature and inside means inside of\n" +"the Gerber feature, if possible at all. This means\n" +"that only if the Gerber feature has openings inside, they\n" +"will be isolated. If what is wanted is to cut isolation\n" +"inside the actual Gerber feature, use a negative tool\n" +"diameter above." +msgstr "" + +#: flatcamGUI/ObjectUI.py:533 msgid "Buffer Solid Geometry" msgstr "" -#: AppGUI/ObjectUI.py:307 AppTools/ToolIsolation.py:581 +#: flatcamGUI/ObjectUI.py:535 msgid "" "This button is shown only when the Gerber file\n" "is loaded without buffering.\n" @@ -4988,34 +6669,44 @@ msgid "" "required for isolation." msgstr "" -#: AppGUI/ObjectUI.py:332 -msgid "Isolation Routing" +#: flatcamGUI/ObjectUI.py:567 +msgid "Clear N-copper" msgstr "" -#: AppGUI/ObjectUI.py:334 AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:32 -#: AppTools/ToolIsolation.py:67 +#: flatcamGUI/ObjectUI.py:569 flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:33 msgid "" "Create a Geometry object with\n" -"toolpaths to cut around polygons." +"toolpaths to cut all non-copper regions." msgstr "" -#: AppGUI/ObjectUI.py:348 AppGUI/ObjectUI.py:2089 AppTools/ToolNCC.py:599 +#: flatcamGUI/ObjectUI.py:576 flatcamGUI/ObjectUI.py:2159 flatcamTools/ToolNCC.py:599 msgid "" "Create the Geometry Object\n" "for non-copper routing." msgstr "" -#: AppGUI/ObjectUI.py:362 +#: flatcamGUI/ObjectUI.py:589 +msgid "Board cutout" +msgstr "" + +#: flatcamGUI/ObjectUI.py:591 flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:34 +msgid "" +"Create toolpaths to cut around\n" +"the PCB and separate it from\n" +"the original board." +msgstr "" + +#: flatcamGUI/ObjectUI.py:598 msgid "" "Generate the geometry for\n" "the board cutout." msgstr "" -#: AppGUI/ObjectUI.py:379 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:32 +#: flatcamGUI/ObjectUI.py:616 flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:119 msgid "Non-copper regions" msgstr "" -#: AppGUI/ObjectUI.py:381 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:34 +#: flatcamGUI/ObjectUI.py:618 flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:121 msgid "" "Create polygons covering the\n" "areas without copper on the PCB.\n" @@ -5024,13 +6715,13 @@ msgid "" "copper from a specified region." msgstr "" -#: AppGUI/ObjectUI.py:391 AppGUI/ObjectUI.py:432 -#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:46 -#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:79 +#: flatcamGUI/ObjectUI.py:628 flatcamGUI/ObjectUI.py:669 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:133 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:166 msgid "Boundary Margin" msgstr "" -#: AppGUI/ObjectUI.py:393 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:48 +#: flatcamGUI/ObjectUI.py:630 flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:135 msgid "" "Specify the edge of the PCB\n" "by drawing a box around all\n" @@ -5038,39 +6729,39 @@ msgid "" "distance." msgstr "" -#: AppGUI/ObjectUI.py:408 AppGUI/ObjectUI.py:446 -#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:61 -#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:92 +#: flatcamGUI/ObjectUI.py:645 flatcamGUI/ObjectUI.py:683 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:148 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:179 msgid "Rounded Geo" msgstr "" -#: AppGUI/ObjectUI.py:410 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:63 +#: flatcamGUI/ObjectUI.py:647 flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:150 msgid "Resulting geometry will have rounded corners." msgstr "" -#: AppGUI/ObjectUI.py:414 AppGUI/ObjectUI.py:455 AppTools/ToolSolderPaste.py:373 +#: flatcamGUI/ObjectUI.py:651 flatcamGUI/ObjectUI.py:692 flatcamTools/ToolSolderPaste.py:134 msgid "Generate Geo" msgstr "" -#: AppGUI/ObjectUI.py:424 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:73 -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:137 AppTools/ToolPanelize.py:99 -#: AppTools/ToolQRCode.py:201 +#: flatcamGUI/ObjectUI.py:661 flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:160 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:137 +#: flatcamTools/ToolPanelize.py:101 flatcamTools/ToolQRCode.py:192 msgid "Bounding Box" msgstr "" -#: AppGUI/ObjectUI.py:426 +#: flatcamGUI/ObjectUI.py:663 msgid "" "Create a geometry surrounding the Gerber object.\n" "Square shape." msgstr "" -#: AppGUI/ObjectUI.py:434 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:81 +#: flatcamGUI/ObjectUI.py:671 flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:168 msgid "" "Distance of the edges of the box\n" "to the nearest polygon." msgstr "" -#: AppGUI/ObjectUI.py:448 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:94 +#: flatcamGUI/ObjectUI.py:685 flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:181 msgid "" "If the bounding box is \n" "to have rounded corners\n" @@ -5078,30 +6769,32 @@ msgid "" "the margin." msgstr "" -#: AppGUI/ObjectUI.py:457 +#: flatcamGUI/ObjectUI.py:694 msgid "Generate the Geometry object." msgstr "" -#: AppGUI/ObjectUI.py:484 +#: flatcamGUI/ObjectUI.py:721 msgid "Excellon Object" msgstr "" -#: AppGUI/ObjectUI.py:504 +#: flatcamGUI/ObjectUI.py:733 msgid "Solid circles." msgstr "" -#: AppGUI/ObjectUI.py:560 AppGUI/ObjectUI.py:655 AppGUI/ObjectUI.py:2266 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:71 AppTools/ToolProperties.py:166 +#: flatcamGUI/ObjectUI.py:781 flatcamGUI/ObjectUI.py:876 flatcamGUI/ObjectUI.py:2336 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:71 +#: flatcamTools/ToolProperties.py:166 msgid "Drills" msgstr "" -#: AppGUI/ObjectUI.py:560 AppGUI/ObjectUI.py:656 AppGUI/ObjectUI.py:2266 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:158 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:72 AppTools/ToolProperties.py:168 +#: flatcamGUI/ObjectUI.py:781 flatcamGUI/ObjectUI.py:877 flatcamGUI/ObjectUI.py:2336 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:158 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:72 +#: flatcamTools/ToolProperties.py:168 msgid "Slots" msgstr "" -#: AppGUI/ObjectUI.py:565 +#: flatcamGUI/ObjectUI.py:786 msgid "" "This is the Tool Number.\n" "When ToolChange is checked, on toolchange event this value\n" @@ -5110,65 +6803,64 @@ msgid "" "Here the tools are selected for G-code generation." msgstr "" -#: AppGUI/ObjectUI.py:570 AppGUI/ObjectUI.py:1407 AppTools/ToolPaint.py:141 +#: flatcamGUI/ObjectUI.py:791 flatcamGUI/ObjectUI.py:1510 flatcamTools/ToolPaint.py:142 msgid "" "Tool Diameter. It's value (in current FlatCAM units) \n" "is the cut width into the material." msgstr "" -#: AppGUI/ObjectUI.py:573 +#: flatcamGUI/ObjectUI.py:794 msgid "" "The number of Drill holes. Holes that are drilled with\n" "a drill bit." msgstr "" -#: AppGUI/ObjectUI.py:576 +#: flatcamGUI/ObjectUI.py:797 msgid "" "The number of Slot holes. Holes that are created by\n" "milling them with an endmill bit." msgstr "" -#: AppGUI/ObjectUI.py:579 +#: flatcamGUI/ObjectUI.py:800 msgid "" "Toggle display of the drills for the current tool.\n" "This does not select the tools for G-code generation." msgstr "" -#: AppGUI/ObjectUI.py:597 AppGUI/ObjectUI.py:1564 AppObjects/FlatCAMExcellon.py:537 -#: AppObjects/FlatCAMExcellon.py:836 AppObjects/FlatCAMExcellon.py:852 -#: AppObjects/FlatCAMExcellon.py:856 AppObjects/FlatCAMGeometry.py:380 -#: AppObjects/FlatCAMGeometry.py:825 AppObjects/FlatCAMGeometry.py:861 -#: AppTools/ToolIsolation.py:313 AppTools/ToolIsolation.py:1051 -#: AppTools/ToolIsolation.py:1171 AppTools/ToolIsolation.py:1185 AppTools/ToolNCC.py:331 -#: AppTools/ToolNCC.py:797 AppTools/ToolNCC.py:811 AppTools/ToolNCC.py:1214 -#: AppTools/ToolPaint.py:313 AppTools/ToolPaint.py:766 AppTools/ToolPaint.py:778 -#: AppTools/ToolPaint.py:1190 +#: flatcamGUI/ObjectUI.py:818 flatcamGUI/ObjectUI.py:1662 +#: flatcamObjects/FlatCAMExcellon.py:514 flatcamObjects/FlatCAMExcellon.py:726 +#: flatcamObjects/FlatCAMExcellon.py:742 flatcamObjects/FlatCAMExcellon.py:746 +#: flatcamObjects/FlatCAMGeometry.py:323 flatcamObjects/FlatCAMGeometry.py:759 +#: flatcamObjects/FlatCAMGeometry.py:795 flatcamTools/ToolNCC.py:331 +#: flatcamTools/ToolNCC.py:797 flatcamTools/ToolNCC.py:811 flatcamTools/ToolNCC.py:1196 +#: flatcamTools/ToolPaint.py:314 flatcamTools/ToolPaint.py:767 flatcamTools/ToolPaint.py:779 +#: flatcamTools/ToolPaint.py:1171 msgid "Parameters for" msgstr "" -#: AppGUI/ObjectUI.py:600 AppGUI/ObjectUI.py:1567 AppTools/ToolIsolation.py:316 -#: AppTools/ToolNCC.py:334 AppTools/ToolPaint.py:316 +#: flatcamGUI/ObjectUI.py:821 flatcamGUI/ObjectUI.py:1665 flatcamTools/ToolNCC.py:334 +#: flatcamTools/ToolPaint.py:317 msgid "" "The data used for creating GCode.\n" "Each tool store it's own set of such data." msgstr "" -#: AppGUI/ObjectUI.py:626 AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:48 +#: flatcamGUI/ObjectUI.py:847 flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:48 msgid "" "Operation type:\n" "- Drilling -> will drill the drills/slots associated with this tool\n" "- Milling -> will mill the drills/slots" msgstr "" -#: AppGUI/ObjectUI.py:632 AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:54 +#: flatcamGUI/ObjectUI.py:853 flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:54 msgid "Drilling" msgstr "" -#: AppGUI/ObjectUI.py:633 AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:55 +#: flatcamGUI/ObjectUI.py:854 flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:55 msgid "Milling" msgstr "" -#: AppGUI/ObjectUI.py:648 AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:64 +#: flatcamGUI/ObjectUI.py:869 flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:64 msgid "" "Milling type:\n" "- Drills -> will mill the drills associated with this tool\n" @@ -5176,36 +6868,36 @@ msgid "" "- Both -> will mill both drills and mills or whatever is available" msgstr "" -#: AppGUI/ObjectUI.py:657 AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:73 -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:199 AppTools/ToolFilm.py:241 +#: flatcamGUI/ObjectUI.py:878 flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:73 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:210 flatcamTools/ToolFilm.py:258 msgid "Both" msgstr "" -#: AppGUI/ObjectUI.py:665 AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:80 +#: flatcamGUI/ObjectUI.py:886 flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:80 msgid "Milling Diameter" msgstr "" -#: AppGUI/ObjectUI.py:667 AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:82 +#: flatcamGUI/ObjectUI.py:888 flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:82 msgid "The diameter of the tool who will do the milling" msgstr "" -#: AppGUI/ObjectUI.py:681 AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:95 +#: flatcamGUI/ObjectUI.py:902 flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:95 msgid "" "Drill depth (negative)\n" "below the copper surface." msgstr "" -#: AppGUI/ObjectUI.py:700 AppGUI/ObjectUI.py:1626 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:113 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:69 -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:79 AppTools/ToolCutOut.py:159 +#: flatcamGUI/ObjectUI.py:921 flatcamGUI/ObjectUI.py:1724 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:113 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:68 +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:79 flatcamTools/ToolCutOut.py:159 msgid "Multi-Depth" msgstr "" -#: AppGUI/ObjectUI.py:703 AppGUI/ObjectUI.py:1629 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:116 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:72 -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:82 AppTools/ToolCutOut.py:162 +#: flatcamGUI/ObjectUI.py:924 flatcamGUI/ObjectUI.py:1727 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:116 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:71 +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:82 flatcamTools/ToolCutOut.py:162 msgid "" "Use multiple passes to limit\n" "the cut depth in each pass. Will\n" @@ -5213,26 +6905,26 @@ msgid "" "reached." msgstr "" -#: AppGUI/ObjectUI.py:716 AppGUI/ObjectUI.py:1643 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:128 -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:94 AppTools/ToolCutOut.py:176 +#: flatcamGUI/ObjectUI.py:937 flatcamGUI/ObjectUI.py:1741 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:128 +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:94 flatcamTools/ToolCutOut.py:176 msgid "Depth of each pass (positive)." msgstr "" -#: AppGUI/ObjectUI.py:727 AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:136 +#: flatcamGUI/ObjectUI.py:948 flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:136 msgid "" "Tool height when travelling\n" "across the XY plane." msgstr "" -#: AppGUI/ObjectUI.py:748 AppGUI/ObjectUI.py:1673 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:188 +#: flatcamGUI/ObjectUI.py:969 flatcamGUI/ObjectUI.py:1771 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:187 msgid "" "Cutting speed in the XY\n" "plane in units per minute" msgstr "" -#: AppGUI/ObjectUI.py:763 AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:209 +#: flatcamGUI/ObjectUI.py:984 flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:209 msgid "" "Tool speed while drilling\n" "(in units per minute).\n" @@ -5240,13 +6932,14 @@ msgid "" "This is for linear move G01." msgstr "" -#: AppGUI/ObjectUI.py:778 AppGUI/ObjectUI.py:1700 -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:80 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:67 +#: flatcamGUI/ObjectUI.py:999 flatcamGUI/ObjectUI.py:1798 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:80 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:64 msgid "Feedrate Rapids" msgstr "" -#: AppGUI/ObjectUI.py:780 AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:82 +#: flatcamGUI/ObjectUI.py:1001 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:82 msgid "" "Tool speed while drilling\n" "(in units per minute).\n" @@ -5255,14 +6948,15 @@ msgid "" "ignore for any other cases." msgstr "" -#: AppGUI/ObjectUI.py:800 AppGUI/ObjectUI.py:1720 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:85 +#: flatcamGUI/ObjectUI.py:1021 flatcamGUI/ObjectUI.py:1818 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:82 msgid "Re-cut" msgstr "" -#: AppGUI/ObjectUI.py:802 AppGUI/ObjectUI.py:815 AppGUI/ObjectUI.py:1722 -#: AppGUI/ObjectUI.py:1734 AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:87 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:99 +#: flatcamGUI/ObjectUI.py:1023 flatcamGUI/ObjectUI.py:1036 flatcamGUI/ObjectUI.py:1820 +#: flatcamGUI/ObjectUI.py:1832 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:84 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:96 msgid "" "In order to remove possible\n" "copper leftovers where first cut\n" @@ -5270,330 +6964,225 @@ msgid "" "extended cut over the first cut section." msgstr "" -#: AppGUI/ObjectUI.py:828 AppGUI/ObjectUI.py:1743 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:217 -#: AppObjects/FlatCAMExcellon.py:1512 AppObjects/FlatCAMGeometry.py:1687 +#: flatcamGUI/ObjectUI.py:1049 flatcamGUI/ObjectUI.py:1841 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:216 +#: flatcamObjects/FlatCAMExcellon.py:1332 flatcamObjects/FlatCAMGeometry.py:1622 msgid "Spindle speed" msgstr "" -#: AppGUI/ObjectUI.py:830 AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:224 +#: flatcamGUI/ObjectUI.py:1051 flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:224 msgid "" "Speed of the spindle\n" "in RPM (optional)" msgstr "" -#: AppGUI/ObjectUI.py:845 AppGUI/ObjectUI.py:1762 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:238 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:235 +#: flatcamGUI/ObjectUI.py:1066 flatcamGUI/ObjectUI.py:1860 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:238 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:234 msgid "" "Pause to allow the spindle to reach its\n" "speed before cutting." msgstr "" -#: AppGUI/ObjectUI.py:856 AppGUI/ObjectUI.py:1772 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:246 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:240 +#: flatcamGUI/ObjectUI.py:1077 flatcamGUI/ObjectUI.py:1870 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:246 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:239 msgid "Number of time units for spindle to dwell." msgstr "" -#: AppGUI/ObjectUI.py:866 AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:46 +#: flatcamGUI/ObjectUI.py:1087 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:46 msgid "Offset Z" msgstr "" -#: AppGUI/ObjectUI.py:868 AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:48 +#: flatcamGUI/ObjectUI.py:1089 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:48 msgid "" "Some drill bits (the larger ones) need to drill deeper\n" "to create the desired exit hole diameter due of the tip shape.\n" "The value here can compensate the Cut Z parameter." msgstr "" -#: AppGUI/ObjectUI.py:928 AppGUI/ObjectUI.py:1826 AppTools/ToolIsolation.py:412 -#: AppTools/ToolNCC.py:492 AppTools/ToolPaint.py:422 +#: flatcamGUI/ObjectUI.py:1149 flatcamGUI/ObjectUI.py:1924 flatcamTools/ToolNCC.py:492 +#: flatcamTools/ToolPaint.py:423 msgid "Apply parameters to all tools" msgstr "" -#: AppGUI/ObjectUI.py:930 AppGUI/ObjectUI.py:1828 AppTools/ToolIsolation.py:414 -#: AppTools/ToolNCC.py:494 AppTools/ToolPaint.py:424 +#: flatcamGUI/ObjectUI.py:1151 flatcamGUI/ObjectUI.py:1926 flatcamTools/ToolNCC.py:494 +#: flatcamTools/ToolPaint.py:425 msgid "" "The parameters in the current form will be applied\n" "on all the tools from the Tool Table." msgstr "" -#: AppGUI/ObjectUI.py:941 AppGUI/ObjectUI.py:1839 AppTools/ToolIsolation.py:425 -#: AppTools/ToolNCC.py:505 AppTools/ToolPaint.py:435 +#: flatcamGUI/ObjectUI.py:1162 flatcamGUI/ObjectUI.py:1937 flatcamTools/ToolNCC.py:505 +#: flatcamTools/ToolPaint.py:436 msgid "Common Parameters" msgstr "" -#: AppGUI/ObjectUI.py:943 AppGUI/ObjectUI.py:1841 AppTools/ToolIsolation.py:427 -#: AppTools/ToolNCC.py:507 AppTools/ToolPaint.py:437 +#: flatcamGUI/ObjectUI.py:1164 flatcamGUI/ObjectUI.py:1939 flatcamTools/ToolNCC.py:507 +#: flatcamTools/ToolPaint.py:438 msgid "Parameters that are common for all tools." msgstr "" -#: AppGUI/ObjectUI.py:948 AppGUI/ObjectUI.py:1846 +#: flatcamGUI/ObjectUI.py:1169 flatcamGUI/ObjectUI.py:1944 msgid "Tool change Z" msgstr "" -#: AppGUI/ObjectUI.py:950 AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:154 +#: flatcamGUI/ObjectUI.py:1171 flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:154 msgid "" "Include tool-change sequence\n" "in G-Code (Pause for tool change)." msgstr "" -#: AppGUI/ObjectUI.py:957 AppGUI/ObjectUI.py:1857 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:162 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:135 +#: flatcamGUI/ObjectUI.py:1178 flatcamGUI/ObjectUI.py:1955 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:162 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:134 msgid "" "Z-axis position (height) for\n" "tool change." msgstr "" -#: AppGUI/ObjectUI.py:974 AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:71 +#: flatcamGUI/ObjectUI.py:1195 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:71 msgid "" "Height of the tool just after start.\n" "Delete the value if you don't need this feature." msgstr "" -#: AppGUI/ObjectUI.py:983 AppGUI/ObjectUI.py:1885 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:178 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:154 +#: flatcamGUI/ObjectUI.py:1204 flatcamGUI/ObjectUI.py:1983 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:178 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:153 msgid "End move Z" msgstr "" -#: AppGUI/ObjectUI.py:985 AppGUI/ObjectUI.py:1887 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:180 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:156 +#: flatcamGUI/ObjectUI.py:1206 flatcamGUI/ObjectUI.py:1985 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:180 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:155 msgid "" "Height of the tool after\n" "the last move at the end of the job." msgstr "" -#: AppGUI/ObjectUI.py:1002 AppGUI/ObjectUI.py:1904 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:195 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:174 +#: flatcamGUI/ObjectUI.py:1223 flatcamGUI/ObjectUI.py:2002 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:195 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:173 msgid "End move X,Y" msgstr "" -#: AppGUI/ObjectUI.py:1004 AppGUI/ObjectUI.py:1906 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:197 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:176 +#: flatcamGUI/ObjectUI.py:1225 flatcamGUI/ObjectUI.py:2004 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:197 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:175 msgid "" "End move X,Y position. In format (x,y).\n" "If no value is entered then there is no move\n" "on X,Y plane at the end of the job." msgstr "" -#: AppGUI/ObjectUI.py:1014 AppGUI/ObjectUI.py:1780 -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:96 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:108 +#: flatcamGUI/ObjectUI.py:1235 flatcamGUI/ObjectUI.py:1878 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:96 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:105 msgid "Probe Z depth" msgstr "" -#: AppGUI/ObjectUI.py:1016 AppGUI/ObjectUI.py:1782 -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:98 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:110 +#: flatcamGUI/ObjectUI.py:1237 flatcamGUI/ObjectUI.py:1880 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:98 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:107 msgid "" "The maximum depth that the probe is allowed\n" "to probe. Negative value, in current units." msgstr "" -#: AppGUI/ObjectUI.py:1033 AppGUI/ObjectUI.py:1797 -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:109 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:123 +#: flatcamGUI/ObjectUI.py:1254 flatcamGUI/ObjectUI.py:1895 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:109 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:120 msgid "Feedrate Probe" msgstr "" -#: AppGUI/ObjectUI.py:1035 AppGUI/ObjectUI.py:1799 -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:111 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:125 +#: flatcamGUI/ObjectUI.py:1256 flatcamGUI/ObjectUI.py:1897 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:111 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:122 msgid "The feedrate used while the probe is probing." msgstr "" -#: AppGUI/ObjectUI.py:1051 +#: flatcamGUI/ObjectUI.py:1272 msgid "Preprocessor E" msgstr "" -#: AppGUI/ObjectUI.py:1053 +#: flatcamGUI/ObjectUI.py:1274 msgid "" "The preprocessor JSON file that dictates\n" "Gcode output for Excellon Objects." msgstr "" -#: AppGUI/ObjectUI.py:1063 +#: flatcamGUI/ObjectUI.py:1284 msgid "Preprocessor G" msgstr "" -#: AppGUI/ObjectUI.py:1065 +#: flatcamGUI/ObjectUI.py:1286 msgid "" "The preprocessor JSON file that dictates\n" "Gcode output for Geometry (Milling) Objects." msgstr "" -#: AppGUI/ObjectUI.py:1079 AppGUI/ObjectUI.py:1934 -msgid "Add exclusion areas" -msgstr "" - -#: AppGUI/ObjectUI.py:1082 AppGUI/ObjectUI.py:1937 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:212 -msgid "" -"Include exclusion areas.\n" -"In those areas the travel of the tools\n" -"is forbidden." -msgstr "" - -#: AppGUI/ObjectUI.py:1103 AppGUI/ObjectUI.py:1958 -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:48 AppTools/ToolCalibration.py:186 -#: AppTools/ToolNCC.py:109 AppTools/ToolPaint.py:102 AppTools/ToolPanelize.py:98 -msgid "Object" -msgstr "" - -#: AppGUI/ObjectUI.py:1103 AppGUI/ObjectUI.py:1122 AppGUI/ObjectUI.py:1958 -#: AppGUI/ObjectUI.py:1977 AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:232 -msgid "Strategy" -msgstr "" - -#: AppGUI/ObjectUI.py:1103 AppGUI/ObjectUI.py:1134 AppGUI/ObjectUI.py:1958 -#: AppGUI/ObjectUI.py:1989 AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:244 -msgid "Over Z" -msgstr "" - -#: AppGUI/ObjectUI.py:1105 AppGUI/ObjectUI.py:1960 -msgid "This is the Area ID." -msgstr "" - -#: AppGUI/ObjectUI.py:1107 AppGUI/ObjectUI.py:1962 -msgid "Type of the object where the exclusion area was added." -msgstr "" - -#: AppGUI/ObjectUI.py:1109 AppGUI/ObjectUI.py:1964 -msgid "The strategy used for exclusion area. Go around the exclusion areas or over it." -msgstr "" - -#: AppGUI/ObjectUI.py:1111 AppGUI/ObjectUI.py:1966 -msgid "" -"If the strategy is to go over the area then this is the height at which the tool will go " -"to avoid the exclusion area." -msgstr "" - -#: AppGUI/ObjectUI.py:1123 AppGUI/ObjectUI.py:1978 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:233 -msgid "" -"The strategy followed when encountering an exclusion area.\n" -"Can be:\n" -"- Over -> when encountering the area, the tool will go to a set height\n" -"- Around -> will avoid the exclusion area by going around the area" -msgstr "" - -#: AppGUI/ObjectUI.py:1127 AppGUI/ObjectUI.py:1982 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:237 -msgid "Over" -msgstr "" - -#: AppGUI/ObjectUI.py:1128 AppGUI/ObjectUI.py:1983 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:238 -msgid "Around" -msgstr "" - -#: AppGUI/ObjectUI.py:1135 AppGUI/ObjectUI.py:1990 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:245 -msgid "" -"The height Z to which the tool will rise in order to avoid\n" -"an interdiction area." -msgstr "" - -#: AppGUI/ObjectUI.py:1145 AppGUI/ObjectUI.py:2000 -msgid "Add area:" -msgstr "" - -#: AppGUI/ObjectUI.py:1146 AppGUI/ObjectUI.py:2001 -msgid "Add an Exclusion Area." -msgstr "" - -#: AppGUI/ObjectUI.py:1152 AppGUI/ObjectUI.py:2007 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:222 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:295 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:324 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:288 AppTools/ToolIsolation.py:542 -#: AppTools/ToolNCC.py:580 AppTools/ToolPaint.py:523 -msgid "The kind of selection shape used for area selection." -msgstr "" - -#: AppGUI/ObjectUI.py:1162 AppGUI/ObjectUI.py:2017 -#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:32 -#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:42 -#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:32 -#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:32 -msgid "Delete All" -msgstr "" - -#: AppGUI/ObjectUI.py:1163 AppGUI/ObjectUI.py:2018 -msgid "Delete all exclusion areas." -msgstr "" - -#: AppGUI/ObjectUI.py:1166 AppGUI/ObjectUI.py:2021 -msgid "Delete Selected" -msgstr "" - -#: AppGUI/ObjectUI.py:1167 AppGUI/ObjectUI.py:2022 -msgid "Delete all exclusion areas that are selected in the table." -msgstr "" - -#: AppGUI/ObjectUI.py:1191 AppGUI/ObjectUI.py:2038 +#: flatcamGUI/ObjectUI.py:1310 flatcamGUI/ObjectUI.py:2108 msgid "" "Add / Select at least one tool in the tool-table.\n" "Click the # header to select all, or Ctrl + LMB\n" "for custom selection of tools." msgstr "" -#: AppGUI/ObjectUI.py:1199 AppGUI/ObjectUI.py:2045 +#: flatcamGUI/ObjectUI.py:1318 flatcamGUI/ObjectUI.py:2115 msgid "Generate CNCJob object" msgstr "" -#: AppGUI/ObjectUI.py:1201 +#: flatcamGUI/ObjectUI.py:1320 msgid "" "Generate the CNC Job.\n" "If milling then an additional Geometry object will be created" msgstr "" -#: AppGUI/ObjectUI.py:1218 +#: flatcamGUI/ObjectUI.py:1337 msgid "Milling Geometry" msgstr "" -#: AppGUI/ObjectUI.py:1220 +#: flatcamGUI/ObjectUI.py:1339 msgid "" "Create Geometry for milling holes.\n" "Select from the Tools Table above the hole dias to be\n" "milled. Use the # column to make the selection." msgstr "" -#: AppGUI/ObjectUI.py:1228 AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:296 +#: flatcamGUI/ObjectUI.py:1347 flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:296 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:45 msgid "Diameter of the cutting tool." msgstr "" -#: AppGUI/ObjectUI.py:1238 +#: flatcamGUI/ObjectUI.py:1357 msgid "Mill Drills" msgstr "" -#: AppGUI/ObjectUI.py:1240 +#: flatcamGUI/ObjectUI.py:1359 msgid "" "Create the Geometry Object\n" "for milling DRILLS toolpaths." msgstr "" -#: AppGUI/ObjectUI.py:1258 +#: flatcamGUI/ObjectUI.py:1377 msgid "Mill Slots" msgstr "" -#: AppGUI/ObjectUI.py:1260 +#: flatcamGUI/ObjectUI.py:1379 msgid "" "Create the Geometry Object\n" "for milling SLOTS toolpaths." msgstr "" -#: AppGUI/ObjectUI.py:1302 AppTools/ToolCutOut.py:319 +#: flatcamGUI/ObjectUI.py:1421 flatcamTools/ToolCutOut.py:319 msgid "Geometry Object" msgstr "" -#: AppGUI/ObjectUI.py:1364 +#: flatcamGUI/ObjectUI.py:1467 msgid "" "Tools in this Geometry object used for cutting.\n" "The 'Offset' entry will set an offset for the cut.\n" @@ -5609,30 +7198,30 @@ msgid "" "showed UI form entries named V-Tip Dia and V-Tip Angle." msgstr "" -#: AppGUI/ObjectUI.py:1381 AppGUI/ObjectUI.py:2243 -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:40 +#: flatcamGUI/ObjectUI.py:1484 flatcamGUI/ObjectUI.py:2313 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:40 msgid "Plot Object" msgstr "" -#: AppGUI/ObjectUI.py:1394 AppGUI/ObjectUI.py:2256 AppGUI/ObjectUI.py:2266 -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:138 -#: AppTools/ToolCopperThieving.py:225 +#: flatcamGUI/ObjectUI.py:1497 flatcamGUI/ObjectUI.py:2326 flatcamGUI/ObjectUI.py:2336 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:138 +#: flatcamTools/ToolCopperThieving.py:221 msgid "Dia" msgstr "" -#: AppGUI/ObjectUI.py:1394 AppGUI/ObjectUI.py:2256 AppTools/ToolIsolation.py:130 -#: AppTools/ToolNCC.py:132 AppTools/ToolPaint.py:127 +#: flatcamGUI/ObjectUI.py:1497 flatcamGUI/ObjectUI.py:2326 flatcamTools/ToolNCC.py:132 +#: flatcamTools/ToolPaint.py:128 msgid "TT" msgstr "" -#: AppGUI/ObjectUI.py:1401 +#: flatcamGUI/ObjectUI.py:1504 msgid "" "This is the Tool Number.\n" "When ToolChange is checked, on toolchange event this value\n" "will be showed as a T1, T2 ... Tn" msgstr "" -#: AppGUI/ObjectUI.py:1412 +#: flatcamGUI/ObjectUI.py:1515 msgid "" "The value for the Offset can be:\n" "- Path -> There is no offset, the tool cut will be done through the geometry line.\n" @@ -5640,7 +7229,7 @@ msgid "" "- Out(side) -> The tool cut will follow the geometry line on the outside." msgstr "" -#: AppGUI/ObjectUI.py:1419 +#: flatcamGUI/ObjectUI.py:1522 msgid "" "The (Operation) Type has only informative value. Usually the UI form values \n" "are choose based on the operation type and this will serve as a reminder.\n" @@ -5650,7 +7239,7 @@ msgid "" "For Isolation we need a lower Feedrate as it use a milling bit with a fine tip." msgstr "" -#: AppGUI/ObjectUI.py:1428 +#: flatcamGUI/ObjectUI.py:1531 msgid "" "The Tool Type (TT) can be:\n" "- Circular with 1 ... 4 teeth -> it is informative only. Being circular the cut width in " @@ -5666,7 +7255,7 @@ msgid "" "Choosing the V-Shape Tool Type automatically will select the Operation Type as Isolation." msgstr "" -#: AppGUI/ObjectUI.py:1440 +#: flatcamGUI/ObjectUI.py:1543 msgid "" "Plot column. It is visible only for MultiGeo geometries, meaning geometries that holds " "the geometry\n" @@ -5677,7 +7266,7 @@ msgid "" "for the corresponding tool." msgstr "" -#: AppGUI/ObjectUI.py:1458 +#: flatcamGUI/ObjectUI.py:1561 msgid "" "The value to offset the cut when \n" "the Offset type selected is 'Offset'.\n" @@ -5685,97 +7274,56 @@ msgid "" "cut and negative for 'inside' cut." msgstr "" -#: AppGUI/ObjectUI.py:1477 AppTools/ToolIsolation.py:195 AppTools/ToolIsolation.py:1257 -#: AppTools/ToolNCC.py:209 AppTools/ToolNCC.py:923 AppTools/ToolPaint.py:191 -#: AppTools/ToolPaint.py:848 AppTools/ToolSolderPaste.py:567 +#: flatcamGUI/ObjectUI.py:1580 flatcamTools/ToolNCC.py:209 flatcamTools/ToolNCC.py:923 +#: flatcamTools/ToolPaint.py:192 flatcamTools/ToolPaint.py:849 +#: flatcamTools/ToolSolderPaste.py:559 msgid "New Tool" msgstr "" -#: AppGUI/ObjectUI.py:1496 AppTools/ToolIsolation.py:278 AppTools/ToolNCC.py:296 -#: AppTools/ToolPaint.py:278 +#: flatcamGUI/ObjectUI.py:1597 msgid "" "Add a new tool to the Tool Table\n" -"with the diameter specified above." +"with the specified diameter." msgstr "" -#: AppGUI/ObjectUI.py:1500 AppTools/ToolIsolation.py:282 AppTools/ToolIsolation.py:613 -#: AppTools/ToolNCC.py:300 AppTools/ToolNCC.py:634 AppTools/ToolPaint.py:282 -#: AppTools/ToolPaint.py:678 +#: flatcamGUI/ObjectUI.py:1602 flatcamTools/ToolNCC.py:300 flatcamTools/ToolNCC.py:634 +#: flatcamTools/ToolPaint.py:283 flatcamTools/ToolPaint.py:679 msgid "Add from DB" msgstr "" -#: AppGUI/ObjectUI.py:1502 AppTools/ToolIsolation.py:284 AppTools/ToolNCC.py:302 -#: AppTools/ToolPaint.py:284 +#: flatcamGUI/ObjectUI.py:1604 flatcamTools/ToolNCC.py:302 flatcamTools/ToolPaint.py:285 msgid "" "Add a new tool to the Tool Table\n" "from the Tool DataBase." msgstr "" -#: AppGUI/ObjectUI.py:1521 +#: flatcamGUI/ObjectUI.py:1619 msgid "" "Copy a selection of tools in the Tool Table\n" "by first selecting a row in the Tool Table." msgstr "" -#: AppGUI/ObjectUI.py:1527 +#: flatcamGUI/ObjectUI.py:1625 msgid "" "Delete a selection of tools in the Tool Table\n" "by first selecting a row in the Tool Table." msgstr "" -#: AppGUI/ObjectUI.py:1574 AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:89 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:72 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:78 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:85 AppTools/ToolIsolation.py:219 -#: AppTools/ToolNCC.py:233 AppTools/ToolNCC.py:240 AppTools/ToolPaint.py:215 -msgid "V-Tip Dia" -msgstr "" - -#: AppGUI/ObjectUI.py:1577 AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:91 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:74 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:80 AppTools/ToolIsolation.py:221 -#: AppTools/ToolNCC.py:235 AppTools/ToolPaint.py:217 -msgid "The tip diameter for V-Shape Tool" -msgstr "" - -#: AppGUI/ObjectUI.py:1589 AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:101 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:84 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:91 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:99 AppTools/ToolIsolation.py:232 -#: AppTools/ToolNCC.py:246 AppTools/ToolNCC.py:254 AppTools/ToolPaint.py:228 -msgid "V-Tip Angle" -msgstr "" - -#: AppGUI/ObjectUI.py:1592 AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:86 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:93 AppTools/ToolIsolation.py:234 -#: AppTools/ToolNCC.py:248 AppTools/ToolPaint.py:230 -msgid "" -"The tip angle for V-Shape Tool.\n" -"In degree." -msgstr "" - -#: AppGUI/ObjectUI.py:1608 AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:51 -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:61 AppObjects/FlatCAMGeometry.py:1238 -#: AppTools/ToolCutOut.py:141 -msgid "" -"Cutting depth (negative)\n" -"below the copper surface." -msgstr "" - -#: AppGUI/ObjectUI.py:1654 AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:104 +#: flatcamGUI/ObjectUI.py:1752 flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:103 msgid "" "Height of the tool when\n" "moving without cutting." msgstr "" -#: AppGUI/ObjectUI.py:1687 AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:203 +#: flatcamGUI/ObjectUI.py:1785 flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:202 msgid "" "Cutting speed in the XY\n" "plane in units per minute.\n" "It is called also Plunge." msgstr "" -#: AppGUI/ObjectUI.py:1702 AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:69 +#: flatcamGUI/ObjectUI.py:1800 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:66 msgid "" "Cutting speed in the XY plane\n" "(in units per minute).\n" @@ -5784,34 +7332,115 @@ msgid "" "ignore for any other cases." msgstr "" -#: AppGUI/ObjectUI.py:1746 AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:220 +#: flatcamGUI/ObjectUI.py:1844 flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:219 msgid "" "Speed of the spindle in RPM (optional).\n" "If LASER preprocessor is used,\n" "this value is the power of laser." msgstr "" -#: AppGUI/ObjectUI.py:1849 AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:125 +#: flatcamGUI/ObjectUI.py:1947 flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:124 msgid "" "Include tool-change sequence\n" "in the Machine Code (Pause for tool change)." msgstr "" -#: AppGUI/ObjectUI.py:1918 AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:257 +#: flatcamGUI/ObjectUI.py:2016 flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:256 msgid "" "The Preprocessor file that dictates\n" "the Machine Code (like GCode, RML, HPGL) output." msgstr "" -#: AppGUI/ObjectUI.py:2047 Common.py:426 Common.py:559 Common.py:619 +#: flatcamGUI/ObjectUI.py:2028 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:201 +msgid "Exclusion areas" +msgstr "" + +#: flatcamGUI/ObjectUI.py:2031 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:204 +msgid "" +"Include exclusion areas.\n" +"In those areas the travel of the tools\n" +"is forbidden." +msgstr "" + +#: flatcamGUI/ObjectUI.py:2053 +msgid "Add area" +msgstr "" + +#: flatcamGUI/ObjectUI.py:2054 +msgid "Add an Exclusion Area." +msgstr "" + +#: flatcamGUI/ObjectUI.py:2058 +msgid "Clear areas" +msgstr "" + +#: flatcamGUI/ObjectUI.py:2059 +msgid "Delete all exclusion areas." +msgstr "" + +#: flatcamGUI/ObjectUI.py:2068 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:212 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:322 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:286 flatcamTools/ToolNCC.py:578 +#: flatcamTools/ToolPaint.py:522 +msgid "Shape" +msgstr "" + +#: flatcamGUI/ObjectUI.py:2070 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:214 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:324 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:288 flatcamTools/ToolNCC.py:580 +#: flatcamTools/ToolPaint.py:524 +msgid "The kind of selection shape used for area selection." +msgstr "" + +#: flatcamGUI/ObjectUI.py:2080 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:224 +msgid "Strategy" +msgstr "" + +#: flatcamGUI/ObjectUI.py:2081 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:225 +msgid "" +"The strategy followed when encountering an exclusion area.\n" +"Can be:\n" +"- Over -> when encountering the area, the tool will go to a set height\n" +"- Around -> will avoid the exclusion area by going around the area" +msgstr "" + +#: flatcamGUI/ObjectUI.py:2085 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:229 +msgid "Over" +msgstr "" + +#: flatcamGUI/ObjectUI.py:2086 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:230 +msgid "Around" +msgstr "" + +#: flatcamGUI/ObjectUI.py:2092 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:236 +msgid "Over Z" +msgstr "" + +#: flatcamGUI/ObjectUI.py:2093 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:237 +msgid "" +"The height Z to which the tool will rise in order to avoid\n" +"an interdiction area." +msgstr "" + +#: flatcamGUI/ObjectUI.py:2117 msgid "Generate the CNC Job object." msgstr "" -#: AppGUI/ObjectUI.py:2064 +#: flatcamGUI/ObjectUI.py:2134 msgid "Launch Paint Tool in Tools Tab." msgstr "" -#: AppGUI/ObjectUI.py:2072 AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:35 +#: flatcamGUI/ObjectUI.py:2142 flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:35 msgid "" "Creates tool paths to cover the\n" "whole area of a polygon (remove\n" @@ -5819,15 +7448,15 @@ msgid "" "to click on the desired polygon." msgstr "" -#: AppGUI/ObjectUI.py:2127 +#: flatcamGUI/ObjectUI.py:2197 msgid "CNC Job Object" msgstr "" -#: AppGUI/ObjectUI.py:2138 AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:45 +#: flatcamGUI/ObjectUI.py:2208 flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:45 msgid "Plot kind" msgstr "" -#: AppGUI/ObjectUI.py:2141 AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:47 +#: flatcamGUI/ObjectUI.py:2211 flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:47 msgid "" "This selects the kind of geometries on the canvas to plot.\n" "Those can be either of type 'Travel' which means the moves\n" @@ -5835,46 +7464,46 @@ msgid "" "which means the moves that cut into the material." msgstr "" -#: AppGUI/ObjectUI.py:2150 AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:55 +#: flatcamGUI/ObjectUI.py:2220 flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:55 msgid "Travel" msgstr "" -#: AppGUI/ObjectUI.py:2154 AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:64 +#: flatcamGUI/ObjectUI.py:2224 flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:64 msgid "Display Annotation" msgstr "" -#: AppGUI/ObjectUI.py:2156 AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:66 +#: flatcamGUI/ObjectUI.py:2226 flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:66 msgid "" "This selects if to display text annotation on the plot.\n" "When checked it will display numbers in order for each end\n" "of a travel line." msgstr "" -#: AppGUI/ObjectUI.py:2171 +#: flatcamGUI/ObjectUI.py:2241 msgid "Travelled dist." msgstr "" -#: AppGUI/ObjectUI.py:2173 AppGUI/ObjectUI.py:2178 +#: flatcamGUI/ObjectUI.py:2243 flatcamGUI/ObjectUI.py:2248 msgid "" "This is the total travelled distance on X-Y plane.\n" "In current units." msgstr "" -#: AppGUI/ObjectUI.py:2183 +#: flatcamGUI/ObjectUI.py:2253 msgid "Estimated time" msgstr "" -#: AppGUI/ObjectUI.py:2185 AppGUI/ObjectUI.py:2190 +#: flatcamGUI/ObjectUI.py:2255 flatcamGUI/ObjectUI.py:2260 msgid "" "This is the estimated time to do the routing/drilling,\n" "without the time spent in ToolChange events." msgstr "" -#: AppGUI/ObjectUI.py:2225 +#: flatcamGUI/ObjectUI.py:2295 msgid "CNC Tools Table" msgstr "" -#: AppGUI/ObjectUI.py:2228 +#: flatcamGUI/ObjectUI.py:2298 msgid "" "Tools in this CNCJob object used for cutting.\n" "The tool diameter is used for plotting on canvas.\n" @@ -5887,57 +7516,57 @@ msgid "" "ball(B), or V-Shaped(V)." msgstr "" -#: AppGUI/ObjectUI.py:2256 AppGUI/ObjectUI.py:2267 +#: flatcamGUI/ObjectUI.py:2326 flatcamGUI/ObjectUI.py:2337 msgid "P" msgstr "" -#: AppGUI/ObjectUI.py:2277 +#: flatcamGUI/ObjectUI.py:2347 msgid "Update Plot" msgstr "" -#: AppGUI/ObjectUI.py:2279 +#: flatcamGUI/ObjectUI.py:2349 msgid "Update the plot." msgstr "" -#: AppGUI/ObjectUI.py:2286 AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:30 +#: flatcamGUI/ObjectUI.py:2356 flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:30 msgid "Export CNC Code" msgstr "" -#: AppGUI/ObjectUI.py:2288 AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:32 -#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:33 +#: flatcamGUI/ObjectUI.py:2358 flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:32 +#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:33 msgid "" "Export and save G-Code to\n" "make this object to a file." msgstr "" -#: AppGUI/ObjectUI.py:2294 +#: flatcamGUI/ObjectUI.py:2364 msgid "Prepend to CNC Code" msgstr "" -#: AppGUI/ObjectUI.py:2296 AppGUI/ObjectUI.py:2303 -#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:49 +#: flatcamGUI/ObjectUI.py:2366 flatcamGUI/ObjectUI.py:2373 +#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:49 msgid "" "Type here any G-Code commands you would\n" "like to add at the beginning of the G-Code file." msgstr "" -#: AppGUI/ObjectUI.py:2309 +#: flatcamGUI/ObjectUI.py:2379 msgid "Append to CNC Code" msgstr "" -#: AppGUI/ObjectUI.py:2311 AppGUI/ObjectUI.py:2319 -#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:65 +#: flatcamGUI/ObjectUI.py:2381 flatcamGUI/ObjectUI.py:2389 +#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:65 msgid "" "Type here any G-Code commands you would\n" "like to append to the generated file.\n" "I.e.: M2 (End of program)" msgstr "" -#: AppGUI/ObjectUI.py:2333 AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:38 +#: flatcamGUI/ObjectUI.py:2403 flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:38 msgid "Toolchange G-Code" msgstr "" -#: AppGUI/ObjectUI.py:2336 AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:41 +#: flatcamGUI/ObjectUI.py:2406 flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:41 msgid "" "Type here any G-Code commands you would\n" "like to be executed when Toolchange event is encountered.\n" @@ -5950,7 +7579,7 @@ msgid "" "having as template the 'Toolchange Custom' posprocessor file." msgstr "" -#: AppGUI/ObjectUI.py:2351 +#: flatcamGUI/ObjectUI.py:2421 msgid "" "Type here any G-Code commands you would\n" "like to be executed when Toolchange event is encountered.\n" @@ -5961,266 +7590,223 @@ msgid "" "that has 'toolchange_custom' in it's name." msgstr "" -#: AppGUI/ObjectUI.py:2366 AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:80 +#: flatcamGUI/ObjectUI.py:2436 flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:80 msgid "Use Toolchange Macro" msgstr "" -#: AppGUI/ObjectUI.py:2368 AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:82 +#: flatcamGUI/ObjectUI.py:2438 flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:82 msgid "" "Check this box if you want to use\n" "a Custom Toolchange GCode (macro)." msgstr "" -#: AppGUI/ObjectUI.py:2376 AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:94 +#: flatcamGUI/ObjectUI.py:2446 flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:94 msgid "" "A list of the FlatCAM variables that can be used\n" "in the Toolchange event.\n" "They have to be surrounded by the '%' symbol" msgstr "" -#: AppGUI/ObjectUI.py:2383 AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:101 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:30 -#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:31 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:31 -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:37 -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:36 -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:36 -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:36 -#: AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py:31 -#: AppGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:31 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:36 -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:31 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:30 -#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:31 -#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:35 -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:32 -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:31 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:30 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:31 -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:31 -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:31 -#: AppGUI/preferences/tools/ToolsSubPrefGroupUI.py:31 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:31 AppTools/ToolCalibration.py:67 -#: AppTools/ToolCopperThieving.py:93 AppTools/ToolCorners.py:115 -#: AppTools/ToolEtchCompensation.py:138 AppTools/ToolFiducials.py:152 -#: AppTools/ToolInvertGerber.py:85 AppTools/ToolQRCode.py:114 +#: flatcamGUI/ObjectUI.py:2453 flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:101 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:30 +#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:31 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:31 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:37 +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:36 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:36 +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:36 +#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:31 +#: flatcamGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:31 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:36 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:31 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:30 +#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:31 +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:32 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:31 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:31 +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:31 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:31 +#: flatcamGUI/preferences/tools/ToolsSubPrefGroupUI.py:31 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:31 +#: flatcamTools/ToolCopperThieving.py:89 flatcamTools/ToolFiducials.py:149 +#: flatcamTools/ToolInvertGerber.py:82 msgid "Parameters" msgstr "" -#: AppGUI/ObjectUI.py:2386 AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:106 +#: flatcamGUI/ObjectUI.py:2456 flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:106 msgid "FlatCAM CNC parameters" msgstr "" -#: AppGUI/ObjectUI.py:2387 AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:111 +#: flatcamGUI/ObjectUI.py:2457 flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:111 msgid "tool number" msgstr "" -#: AppGUI/ObjectUI.py:2388 AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:112 +#: flatcamGUI/ObjectUI.py:2458 flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:112 msgid "tool diameter" msgstr "" -#: AppGUI/ObjectUI.py:2389 AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:113 +#: flatcamGUI/ObjectUI.py:2459 flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:113 msgid "for Excellon, total number of drills" msgstr "" -#: AppGUI/ObjectUI.py:2391 AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:115 +#: flatcamGUI/ObjectUI.py:2461 flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:115 msgid "X coord for Toolchange" msgstr "" -#: AppGUI/ObjectUI.py:2392 AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:116 +#: flatcamGUI/ObjectUI.py:2462 flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:116 msgid "Y coord for Toolchange" msgstr "" -#: AppGUI/ObjectUI.py:2393 AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:118 +#: flatcamGUI/ObjectUI.py:2463 flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:118 msgid "Z coord for Toolchange" msgstr "" -#: AppGUI/ObjectUI.py:2394 +#: flatcamGUI/ObjectUI.py:2464 msgid "depth where to cut" msgstr "" -#: AppGUI/ObjectUI.py:2395 +#: flatcamGUI/ObjectUI.py:2465 msgid "height where to travel" msgstr "" -#: AppGUI/ObjectUI.py:2396 AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:121 +#: flatcamGUI/ObjectUI.py:2466 flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:121 msgid "the step value for multidepth cut" msgstr "" -#: AppGUI/ObjectUI.py:2398 AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:123 +#: flatcamGUI/ObjectUI.py:2468 flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:123 msgid "the value for the spindle speed" msgstr "" -#: AppGUI/ObjectUI.py:2400 +#: flatcamGUI/ObjectUI.py:2470 msgid "time to dwell to allow the spindle to reach it's set RPM" msgstr "" -#: AppGUI/ObjectUI.py:2416 +#: flatcamGUI/ObjectUI.py:2486 msgid "View CNC Code" msgstr "" -#: AppGUI/ObjectUI.py:2418 +#: flatcamGUI/ObjectUI.py:2488 msgid "" "Opens TAB to view/modify/print G-Code\n" "file." msgstr "" -#: AppGUI/ObjectUI.py:2423 +#: flatcamGUI/ObjectUI.py:2493 msgid "Save CNC Code" msgstr "" -#: AppGUI/ObjectUI.py:2425 +#: flatcamGUI/ObjectUI.py:2495 msgid "" "Opens dialog to save G-Code\n" "file." msgstr "" -#: AppGUI/ObjectUI.py:2459 +#: flatcamGUI/ObjectUI.py:2529 msgid "Script Object" msgstr "" -#: AppGUI/ObjectUI.py:2479 AppGUI/ObjectUI.py:2553 +#: flatcamGUI/ObjectUI.py:2549 flatcamGUI/ObjectUI.py:2623 msgid "Auto Completer" msgstr "" -#: AppGUI/ObjectUI.py:2481 +#: flatcamGUI/ObjectUI.py:2551 msgid "This selects if the auto completer is enabled in the Script Editor." msgstr "" -#: AppGUI/ObjectUI.py:2526 +#: flatcamGUI/ObjectUI.py:2596 msgid "Document Object" msgstr "" -#: AppGUI/ObjectUI.py:2555 +#: flatcamGUI/ObjectUI.py:2625 msgid "This selects if the auto completer is enabled in the Document Editor." msgstr "" -#: AppGUI/ObjectUI.py:2573 +#: flatcamGUI/ObjectUI.py:2643 msgid "Font Type" msgstr "" -#: AppGUI/ObjectUI.py:2590 AppGUI/preferences/general/GeneralAPPSetGroupUI.py:189 +#: flatcamGUI/ObjectUI.py:2660 flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:197 msgid "Font Size" msgstr "" -#: AppGUI/ObjectUI.py:2626 +#: flatcamGUI/ObjectUI.py:2696 msgid "Alignment" msgstr "" -#: AppGUI/ObjectUI.py:2631 +#: flatcamGUI/ObjectUI.py:2701 msgid "Align Left" msgstr "" -#: AppGUI/ObjectUI.py:2636 App_Main.py:4715 -msgid "Center" -msgstr "" - -#: AppGUI/ObjectUI.py:2641 +#: flatcamGUI/ObjectUI.py:2711 msgid "Align Right" msgstr "" -#: AppGUI/ObjectUI.py:2646 +#: flatcamGUI/ObjectUI.py:2716 msgid "Justify" msgstr "" -#: AppGUI/ObjectUI.py:2653 +#: flatcamGUI/ObjectUI.py:2723 msgid "Font Color" msgstr "" -#: AppGUI/ObjectUI.py:2655 +#: flatcamGUI/ObjectUI.py:2725 msgid "Set the font color for the selected text" msgstr "" -#: AppGUI/ObjectUI.py:2669 +#: flatcamGUI/ObjectUI.py:2739 msgid "Selection Color" msgstr "" -#: AppGUI/ObjectUI.py:2671 +#: flatcamGUI/ObjectUI.py:2741 msgid "Set the selection color when doing text selection." msgstr "" -#: AppGUI/ObjectUI.py:2685 +#: flatcamGUI/ObjectUI.py:2755 msgid "Tab Size" msgstr "" -#: AppGUI/ObjectUI.py:2687 +#: flatcamGUI/ObjectUI.py:2757 msgid "Set the tab size. In pixels. Default value is 80 pixels." msgstr "" -#: AppGUI/PlotCanvas.py:236 AppGUI/PlotCanvasLegacy.py:345 -msgid "Axis enabled." -msgstr "" - -#: AppGUI/PlotCanvas.py:242 AppGUI/PlotCanvasLegacy.py:352 -msgid "Axis disabled." -msgstr "" - -#: AppGUI/PlotCanvas.py:260 AppGUI/PlotCanvasLegacy.py:372 -msgid "HUD enabled." -msgstr "" - -#: AppGUI/PlotCanvas.py:268 AppGUI/PlotCanvasLegacy.py:378 -msgid "HUD disabled." -msgstr "" - -#: AppGUI/PlotCanvas.py:276 AppGUI/PlotCanvasLegacy.py:451 -msgid "Grid enabled." -msgstr "" - -#: AppGUI/PlotCanvas.py:280 AppGUI/PlotCanvasLegacy.py:459 -msgid "Grid disabled." -msgstr "" - -#: AppGUI/PlotCanvasLegacy.py:1523 +#: flatcamGUI/PlotCanvasLegacy.py:1299 msgid "" "Could not annotate due of a difference between the number of text elements and the number " "of text positions." msgstr "" -#: AppGUI/preferences/PreferencesUIManager.py:852 +#: flatcamGUI/preferences/PreferencesUIManager.py:911 msgid "Preferences applied." msgstr "" -#: AppGUI/preferences/PreferencesUIManager.py:872 -msgid "Are you sure you want to continue?" -msgstr "" - -#: AppGUI/preferences/PreferencesUIManager.py:873 -msgid "Application will restart" -msgstr "" - -#: AppGUI/preferences/PreferencesUIManager.py:971 +#: flatcamGUI/preferences/PreferencesUIManager.py:975 msgid "Preferences closed without saving." msgstr "" -#: AppGUI/preferences/PreferencesUIManager.py:983 +#: flatcamGUI/preferences/PreferencesUIManager.py:987 msgid "Preferences default values are restored." msgstr "" -#: AppGUI/preferences/PreferencesUIManager.py:1015 App_Main.py:2498 App_Main.py:2566 -msgid "Failed to write defaults to file." -msgstr "" - -#: AppGUI/preferences/PreferencesUIManager.py:1019 -#: AppGUI/preferences/PreferencesUIManager.py:1132 +#: flatcamGUI/preferences/PreferencesUIManager.py:1022 +#: flatcamGUI/preferences/PreferencesUIManager.py:1131 msgid "Preferences saved." msgstr "" -#: AppGUI/preferences/PreferencesUIManager.py:1069 +#: flatcamGUI/preferences/PreferencesUIManager.py:1072 msgid "Preferences edited but not saved." msgstr "" -#: AppGUI/preferences/PreferencesUIManager.py:1117 +#: flatcamGUI/preferences/PreferencesUIManager.py:1117 msgid "" "One or more values are changed.\n" "Do you want to save the Preferences?" msgstr "" -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:27 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:27 msgid "CNC Job Adv. Options" msgstr "" -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:64 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:64 msgid "" "Type here any G-Code commands you would like to be executed when Toolchange event is " "encountered.\n" @@ -6230,90 +7816,92 @@ msgid "" "it's name." msgstr "" -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:119 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:119 msgid "Z depth for the cut" msgstr "" -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:120 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:120 msgid "Z height for travel" msgstr "" -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:126 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:126 msgid "dwelltime = time to dwell to allow the spindle to reach it's set RPM" msgstr "" -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:145 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:145 msgid "Annotation Size" msgstr "" -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:147 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:147 msgid "The font size of the annotation text. In pixels." msgstr "" -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:157 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:157 msgid "Annotation Color" msgstr "" -#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:159 +#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:159 msgid "Set the font color for the annotation texts." msgstr "" -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:26 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:26 msgid "CNC Job General" msgstr "" -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:77 -#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:57 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:59 -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:45 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:77 +#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:47 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:59 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:45 msgid "Circle Steps" msgstr "" -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:79 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:79 msgid "" "The number of circle steps for GCode \n" "circle and arc shapes linear approximation." msgstr "" -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:88 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:88 msgid "Travel dia" msgstr "" -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:90 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:90 msgid "" "The width of the travel lines to be\n" "rendered in the plot." msgstr "" -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:103 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:103 msgid "G-code Decimals" msgstr "" -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:106 AppTools/ToolFiducials.py:71 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:106 +#: flatcamTools/ToolFiducials.py:74 msgid "Coordinates" msgstr "" -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:108 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:108 msgid "" "The number of decimals to be used for \n" "the X, Y, Z coordinates in CNC code (GCODE, etc.)" msgstr "" -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:119 AppTools/ToolProperties.py:519 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:119 +#: flatcamTools/ToolProperties.py:519 msgid "Feedrate" msgstr "" -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:121 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:121 msgid "" "The number of decimals to be used for \n" "the Feedrate parameter in CNC code (GCODE, etc.)" msgstr "" -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:132 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:132 msgid "Coordinates type" msgstr "" -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:134 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:134 msgid "" "The type of coordinates to be used in Gcode.\n" "Can be:\n" @@ -6321,146 +7909,144 @@ msgid "" "- Incremental G91 -> the reference is the previous position" msgstr "" -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:140 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:140 msgid "Absolute G90" msgstr "" -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:141 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:141 msgid "Incremental G91" msgstr "" -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:151 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:151 msgid "Force Windows style line-ending" msgstr "" -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:153 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:153 msgid "" "When checked will force a Windows style line-ending\n" "(\\r\\n) on non-Windows OS's." msgstr "" -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:165 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:165 msgid "Travel Line Color" msgstr "" -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:169 -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:210 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:271 -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:154 -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:195 -#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:94 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:153 AppTools/ToolRulesCheck.py:186 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:169 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:235 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:262 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:154 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:220 +#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:84 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:153 +#: flatcamTools/ToolRulesCheck.py:186 msgid "Outline" msgstr "" -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:171 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:171 msgid "Set the travel line color for plotted objects." msgstr "" -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:179 -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:220 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:281 -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:163 -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:205 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:163 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:186 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:252 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:279 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:170 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:237 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:170 msgid "Fill" msgstr "" -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:181 -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:222 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:283 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:165 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:188 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:254 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:281 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:172 msgid "" "Set the fill color for plotted objects.\n" "First 6 digits are the color and the last 2\n" "digits are for alpha (transparency) level." msgstr "" -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:191 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:293 -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:176 -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:218 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:175 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:205 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:298 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:190 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:257 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:189 msgid "Alpha" msgstr "" -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:193 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:295 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:177 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:207 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:300 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:191 msgid "Set the fill transparency for plotted objects." msgstr "" -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:206 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:267 -#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:90 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:149 -msgid "Object Color" +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:231 +msgid "CNCJob Object Color" msgstr "" -#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:212 +#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:237 msgid "Set the color for plotted objects." msgstr "" -#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:27 +#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:27 msgid "CNC Job Options" msgstr "" -#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:31 +#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:31 msgid "Export G-Code" msgstr "" -#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:47 +#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:47 msgid "Prepend to G-Code" msgstr "" -#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:56 +#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:56 msgid "" "Type here any G-Code commands you would like to add at the beginning of the G-Code file." msgstr "" -#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:63 +#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:63 msgid "Append to G-Code" msgstr "" -#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:73 +#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:73 msgid "" "Type here any G-Code commands you would like to append to the generated file.\n" "I.e.: M2 (End of program)" msgstr "" -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:27 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:27 msgid "Excellon Adv. Options" msgstr "" -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:34 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:34 -#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:31 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:34 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:33 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:31 msgid "Advanced Options" msgstr "" -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:36 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:36 msgid "" "A list of Excellon advanced parameters.\n" "Those parameters are available only for\n" "Advanced App. Level." msgstr "" -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:59 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:59 msgid "Toolchange X,Y" msgstr "" -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:61 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:48 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:61 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:47 msgid "Toolchange X,Y position." msgstr "" -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:121 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:137 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:121 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:134 msgid "Spindle direction" msgstr "" -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:123 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:139 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:123 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:136 msgid "" "This sets the direction that the spindle is rotating.\n" "It can be either:\n" @@ -6468,13 +8054,13 @@ msgid "" "- CCW = counter clockwise" msgstr "" -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:134 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:151 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:134 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:148 msgid "Fast Plunge" msgstr "" -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:136 -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:153 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:136 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:150 msgid "" "By checking this, the vertical move from\n" "Z_Toolchange to Z_move is done with G0,\n" @@ -6482,11 +8068,11 @@ msgid "" "WARNING: the move is done at Toolchange X,Y coords." msgstr "" -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:143 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:143 msgid "Fast Retract" msgstr "" -#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:145 +#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:145 msgid "" "Exit hole strategy.\n" " - When uncheked, while exiting the drilled hole the drill bit\n" @@ -6496,18 +8082,18 @@ msgid "" "(travel height) is done as fast as possible (G0) in one move." msgstr "" -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:32 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:32 msgid "A list of Excellon Editor parameters." msgstr "" -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:40 -#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:41 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:41 -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:172 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:40 +#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:41 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:41 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:194 msgid "Selection limit" msgstr "" -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:42 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:42 msgid "" "Set the number of selected Excellon geometry\n" "items above which the utility geometry\n" @@ -6516,48 +8102,47 @@ msgid "" "large number of geometric elements." msgstr "" -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:55 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:134 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:117 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:123 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:55 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:117 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:123 msgid "New Dia" msgstr "" -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:80 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:80 msgid "Linear Drill Array" msgstr "" -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:84 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:232 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:121 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:84 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:232 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:120 msgid "Linear Direction" msgstr "" -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:126 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:126 msgid "Circular Drill Array" msgstr "" -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:130 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:280 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:165 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:130 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:280 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:164 msgid "Circular Direction" msgstr "" -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:132 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:282 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:167 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:132 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:282 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:166 msgid "" "Direction for circular array.\n" "Can be CW = clockwise or CCW = counter clockwise." msgstr "" -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:143 -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:293 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:178 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:143 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:293 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:177 msgid "Circular Angle" msgstr "" -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:196 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:196 msgid "" "Angle at which the slot is placed.\n" "The precision is of max 2 decimals.\n" @@ -6565,68 +8150,68 @@ msgid "" "Max value is: 360.00 degrees." msgstr "" -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:215 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:215 msgid "Linear Slot Array" msgstr "" -#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:276 +#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:276 msgid "Circular Slot Array" msgstr "" -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:26 +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:26 msgid "Excellon Export" msgstr "" -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:30 -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:31 +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:30 +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:31 msgid "Export Options" msgstr "" -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:32 +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:32 msgid "" "The parameters set here are used in the file exported\n" "when using the File -> Export -> Export Excellon menu entry." msgstr "" -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:41 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:172 -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:39 -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:42 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:82 AppTools/ToolDistance.py:56 -#: AppTools/ToolDistanceMin.py:49 AppTools/ToolPcbWizard.py:127 -#: AppTools/ToolProperties.py:154 +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:41 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:163 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:39 +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:42 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:82 flatcamTools/ToolDistance.py:56 +#: flatcamTools/ToolDistanceMin.py:50 flatcamTools/ToolPcbWizard.py:127 +#: flatcamTools/ToolProperties.py:154 msgid "Units" msgstr "" -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:43 -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:49 +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:43 +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:49 msgid "The units used in the Excellon file." msgstr "" -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:46 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:96 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:182 -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:47 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:87 AppTools/ToolCalculators.py:61 -#: AppTools/ToolPcbWizard.py:125 +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:46 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:87 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:173 +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:47 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:87 +#: flatcamTools/ToolCalculators.py:61 flatcamTools/ToolPcbWizard.py:125 msgid "INCH" msgstr "" -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:47 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:183 -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:43 -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:48 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:88 AppTools/ToolCalculators.py:62 -#: AppTools/ToolPcbWizard.py:126 +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:47 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:174 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:43 +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:48 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:88 +#: flatcamTools/ToolCalculators.py:62 flatcamTools/ToolPcbWizard.py:126 msgid "MM" msgstr "" -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:55 -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:56 +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:55 +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:56 msgid "Int/Decimals" msgstr "" -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:57 +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:57 msgid "" "The NC drill files, usually named Excellon files\n" "are files that can be found in different formats.\n" @@ -6634,28 +8219,28 @@ msgid "" "coordinates are not using period." msgstr "" -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:69 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:104 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:133 +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:69 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:95 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:124 msgid "" "This numbers signify the number of digits in\n" "the whole part of Excellon coordinates." msgstr "" -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:82 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:117 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:146 +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:82 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:108 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:137 msgid "" "This numbers signify the number of digits in\n" "the decimal part of Excellon coordinates." msgstr "" -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:91 +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:91 msgid "Format" msgstr "" -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:93 -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:103 +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:93 +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:103 msgid "" "Select the kind of coordinates format used.\n" "Coordinates can be saved with decimal point or without.\n" @@ -6665,22 +8250,22 @@ msgid "" "or TZ = trailing zeros are kept." msgstr "" -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:100 +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:100 msgid "Decimal" msgstr "" -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:101 +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:101 msgid "No-Decimal" msgstr "" -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:114 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:154 -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:96 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:97 +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:114 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:145 +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:96 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:97 msgid "Zeros" msgstr "" -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:117 +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:117 msgid "" "This sets the type of Excellon zeros.\n" "If LZ then Leading Zeros are kept and\n" @@ -6689,21 +8274,23 @@ msgid "" "and Leading Zeros are removed." msgstr "" -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:124 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:167 -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:106 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:107 AppTools/ToolPcbWizard.py:111 +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:124 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:158 +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:106 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:107 +#: flatcamTools/ToolPcbWizard.py:111 msgid "LZ" msgstr "" -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:125 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:168 -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:107 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:108 AppTools/ToolPcbWizard.py:112 +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:125 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:159 +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:107 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:108 +#: flatcamTools/ToolPcbWizard.py:112 msgid "TZ" msgstr "" -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:127 +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:127 msgid "" "This sets the default type of Excellon zeros.\n" "If LZ then Leading Zeros are kept and\n" @@ -6712,12 +8299,12 @@ msgid "" "and Leading Zeros are removed." msgstr "" -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:137 +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:137 msgid "Slot type" msgstr "" -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:140 -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:150 +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:140 +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:150 msgid "" "This sets how the slots will be exported.\n" "If ROUTED then the slots will be routed\n" @@ -6726,29 +8313,23 @@ msgid "" "using the Drilled slot command (G85)." msgstr "" -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:147 +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:147 msgid "Routed" msgstr "" -#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:148 +#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:148 msgid "Drilled(G85)" msgstr "" -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:29 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:29 msgid "Excellon General" msgstr "" -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:54 -#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:45 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:52 -msgid "M-Color" -msgstr "" - -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:71 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:62 msgid "Excellon Format" msgstr "" -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:73 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:64 msgid "" "The NC drill files, usually named Excellon files\n" "are files that can be found in different formats.\n" @@ -6771,19 +8352,19 @@ msgid "" "KiCAD 3:5 INCH TZ" msgstr "" -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:97 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:88 msgid "Default values for INCH are 2:4" msgstr "" -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:125 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:116 msgid "METRIC" msgstr "" -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:126 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:117 msgid "Default values for METRIC are 3:3" msgstr "" -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:157 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:148 msgid "" "This sets the type of Excellon zeros.\n" "If LZ then Leading Zeros are kept and\n" @@ -6795,7 +8376,7 @@ msgid "" "stored in the Excellon file." msgstr "" -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:175 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:166 msgid "" "This sets the default units of Excellon files.\n" "If it is not detected in the parsed file the value here\n" @@ -6803,27 +8384,27 @@ msgid "" "therefore this parameter will be used." msgstr "" -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:185 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:176 msgid "" "This sets the units of Excellon files.\n" "Some Excellon files don't have an header\n" "therefore this parameter will be used." msgstr "" -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:193 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:184 msgid "Update Export settings" msgstr "" -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:210 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:201 msgid "Excellon Optimization" msgstr "" -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:213 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:204 msgid "Algorithm:" msgstr "" -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:215 -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:231 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:206 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:222 msgid "" "This sets the optimization type for the Excellon drill path.\n" "If <> is checked then Google OR-Tools algorithm with\n" @@ -6836,28 +8417,28 @@ msgid "" "Travelling Salesman algorithm for path optimization." msgstr "" -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:226 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:217 msgid "MetaHeuristic" msgstr "" -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:227 -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:104 AppObjects/FlatCAMExcellon.py:694 -#: AppObjects/FlatCAMGeometry.py:568 AppObjects/FlatCAMGerber.py:219 -#: AppTools/ToolIsolation.py:785 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:218 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:104 +#: flatcamObjects/FlatCAMExcellon.py:614 flatcamObjects/FlatCAMGeometry.py:510 +#: flatcamObjects/FlatCAMGerber.py:251 msgid "Basic" msgstr "" -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:228 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:219 msgid "TSA" msgstr "" -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:245 -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:245 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:238 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:236 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:245 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:237 msgid "Duration" msgstr "" -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:248 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:239 msgid "" "When OR-Tools Metaheuristic (MH) is enabled there is a\n" "maximum threshold for how much time is spent doing the\n" @@ -6865,48 +8446,52 @@ msgid "" "In seconds." msgstr "" -#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:273 -#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:96 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:155 +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:258 +msgid "Excellon Object Color" +msgstr "" + +#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:264 +#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:86 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:155 msgid "Set the line color for plotted objects." msgstr "" -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:29 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:29 msgid "Excellon Options" msgstr "" -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:33 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:35 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:33 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:34 msgid "Create CNC Job" msgstr "" -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:35 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:35 msgid "" "Parameters used to create a CNC Job object\n" "for this drill object." msgstr "" -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:152 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:122 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:152 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:121 msgid "Tool change" msgstr "" -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:236 -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:233 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:236 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:232 msgid "Enable Dwell" msgstr "" -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:259 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:259 msgid "" "The preprocessor JSON file that dictates\n" "Gcode output." msgstr "" -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:270 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:270 msgid "Gcode" msgstr "" -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:272 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:272 msgid "" "Choose what to use for GCode generation:\n" "'Drills', 'Slots' or 'Both'.\n" @@ -6914,241 +8499,230 @@ msgid "" "converted to drills." msgstr "" -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:288 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:288 msgid "Mill Holes" msgstr "" -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:290 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:290 msgid "Create Geometry for milling holes." msgstr "" -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:294 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:294 msgid "Drill Tool dia" msgstr "" -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:305 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:305 msgid "Slot Tool dia" msgstr "" -#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:307 +#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:307 msgid "" "Diameter of the cutting tool\n" "when milling slots." msgstr "" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:28 -#: AppGUI/preferences/general/GeneralAppSettingsGroupUI.py:74 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:28 msgid "App Settings" msgstr "" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:49 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:49 msgid "Grid Settings" msgstr "" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:53 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:53 msgid "X value" msgstr "" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:55 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:55 msgid "This is the Grid snap value on X axis." msgstr "" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:65 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:65 msgid "Y value" msgstr "" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:67 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:67 msgid "This is the Grid snap value on Y axis." msgstr "" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:77 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:77 msgid "Snap Max" msgstr "" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:92 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:92 msgid "Workspace Settings" msgstr "" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:95 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:95 msgid "Active" msgstr "" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:105 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:97 +msgid "" +"Draw a delimiting rectangle on canvas.\n" +"The purpose is to illustrate the limits for our work." +msgstr "" + +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:105 msgid "" "Select the type of rectangle to be used on canvas,\n" "as valid workspace." msgstr "" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:171 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:171 msgid "Orientation" msgstr "" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:172 -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:228 AppTools/ToolFilm.py:405 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:172 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:239 flatcamTools/ToolFilm.py:422 msgid "" "Can be:\n" "- Portrait\n" "- Landscape" msgstr "" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:176 -#: AppGUI/preferences/general/GeneralAppSettingsGroupUI.py:154 -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:232 AppTools/ToolFilm.py:409 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:176 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:243 flatcamTools/ToolFilm.py:426 msgid "Portrait" msgstr "" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:177 -#: AppGUI/preferences/general/GeneralAppSettingsGroupUI.py:155 -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:233 AppTools/ToolFilm.py:410 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:177 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:244 flatcamTools/ToolFilm.py:427 msgid "Landscape" msgstr "" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:193 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:201 msgid "Notebook" msgstr "" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:195 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:203 msgid "" "This sets the font size for the elements found in the Notebook.\n" -"The notebook is the collapsible area in the left side of the AppGUI,\n" +"The notebook is the collapsible area in the left side of the GUI,\n" "and include the Project, Selected and Tool tabs." msgstr "" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:214 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:222 msgid "Axis" msgstr "" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:216 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:224 msgid "This sets the font size for canvas axis." msgstr "" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:233 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:241 msgid "Textbox" msgstr "" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:235 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:243 msgid "" -"This sets the font size for the Textbox AppGUI\n" -"elements that are used in the application." +"This sets the font size for the Textbox GUI\n" +"elements that are used in FlatCAM." msgstr "" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:253 -msgid "HUD" -msgstr "" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:255 -msgid "This sets the font size for the Heads Up Display." -msgstr "" - -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:280 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:269 msgid "Mouse Settings" msgstr "" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:284 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:273 msgid "Cursor Shape" msgstr "" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:286 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:275 msgid "" "Choose a mouse cursor shape.\n" "- Small -> with a customizable size.\n" "- Big -> Infinite lines" msgstr "" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:292 -#: AppGUI/preferences/general/GeneralAppSettingsGroupUI.py:193 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:281 msgid "Small" msgstr "" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:293 -#: AppGUI/preferences/general/GeneralAppSettingsGroupUI.py:194 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:282 msgid "Big" msgstr "" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:300 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:289 msgid "Cursor Size" msgstr "" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:302 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:291 msgid "Set the size of the mouse cursor, in pixels." msgstr "" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:313 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:302 msgid "Cursor Width" msgstr "" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:315 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:304 msgid "Set the line width of the mouse cursor, in pixels." msgstr "" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:326 -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:333 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:315 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:322 msgid "Cursor Color" msgstr "" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:328 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:317 msgid "Check this box to color mouse cursor." msgstr "" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:335 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:324 msgid "Set the color of the mouse cursor." msgstr "" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:350 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:347 msgid "Pan Button" msgstr "" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:352 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:349 msgid "" "Select the mouse button to use for panning:\n" "- MMB --> Middle Mouse Button\n" "- RMB --> Right Mouse Button" msgstr "" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:356 -#: AppGUI/preferences/general/GeneralAppSettingsGroupUI.py:226 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:353 msgid "MMB" msgstr "" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:357 -#: AppGUI/preferences/general/GeneralAppSettingsGroupUI.py:227 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:354 msgid "RMB" msgstr "" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:363 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:360 msgid "Multiple Selection" msgstr "" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:365 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:362 msgid "Select the key used for multiple selection." msgstr "" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:367 -#: AppGUI/preferences/general/GeneralAppSettingsGroupUI.py:233 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:364 msgid "CTRL" msgstr "" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:368 -#: AppGUI/preferences/general/GeneralAppSettingsGroupUI.py:234 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:365 msgid "SHIFT" msgstr "" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:379 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:376 msgid "Delete object confirmation" msgstr "" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:381 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:378 msgid "" "When checked the application will ask for user confirmation\n" "whenever the Delete object(s) event is triggered, either by\n" "menu shortcut or key shortcut." msgstr "" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:388 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:385 msgid "\"Open\" behavior" msgstr "" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:390 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:387 msgid "" "When checked the path for the last saved file is used when saving files,\n" "and the path for the last opened file is used when opening files.\n" @@ -7157,21 +8731,21 @@ msgid "" "path for saving files or the path for opening files." msgstr "" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:399 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:396 msgid "Enable ToolTips" msgstr "" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:401 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:398 msgid "" "Check this box if you want to have toolTips displayed\n" "when hovering with mouse over items throughout the App." msgstr "" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:408 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:405 msgid "Allow Machinist Unsafe Settings" msgstr "" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:410 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:407 msgid "" "If checked, some of the application settings will be allowed\n" "to have values that are usually unsafe to use.\n" @@ -7180,67 +8754,67 @@ msgid "" "<>: Don't change this unless you know what you are doing !!!" msgstr "" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:422 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:419 msgid "Bookmarks limit" msgstr "" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:424 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:421 msgid "" "The maximum number of bookmarks that may be installed in the menu.\n" "The number of bookmarks in the bookmark manager may be greater\n" "but the menu will hold only so much." msgstr "" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:433 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:430 msgid "Activity Icon" msgstr "" -#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:435 +#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:432 msgid "Select the GIF that show activity when FlatCAM is active." msgstr "" -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:29 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:29 msgid "App Preferences" msgstr "" -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:40 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:40 msgid "" "The default value for FlatCAM units.\n" "Whatever is selected here is set every time\n" "FlatCAM is started." msgstr "" -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:44 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:44 msgid "IN" msgstr "" -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:50 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:50 msgid "Precision MM" msgstr "" -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:52 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:52 msgid "" "The number of decimals used throughout the application\n" "when the set units are in METRIC system.\n" "Any change here require an application restart." msgstr "" -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:64 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:64 msgid "Precision INCH" msgstr "" -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:66 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:66 msgid "" "The number of decimals used throughout the application\n" "when the set units are in INCH system.\n" "Any change here require an application restart." msgstr "" -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:78 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:78 msgid "Graphic Engine" msgstr "" -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:79 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:79 msgid "" "Choose what graphic engine to use in FlatCAM.\n" "Legacy(2D) -> reduced functionality, slow performance but enhanced compatibility.\n" @@ -7250,19 +8824,19 @@ msgid "" "use the Legacy(2D) mode." msgstr "" -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:85 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:85 msgid "Legacy(2D)" msgstr "" -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:86 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:86 msgid "OpenGL(3D)" msgstr "" -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:98 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:98 msgid "APP. LEVEL" msgstr "" -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:99 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:99 msgid "" "Choose the default level of usage for FlatCAM.\n" "BASIC level -> reduced functionality, best for beginner's.\n" @@ -7272,17 +8846,17 @@ msgid "" "the Selected Tab for all kinds of FlatCAM objects." msgstr "" -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:105 AppObjects/FlatCAMExcellon.py:707 -#: AppObjects/FlatCAMGeometry.py:589 AppObjects/FlatCAMGerber.py:227 -#: AppTools/ToolIsolation.py:816 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:105 +#: flatcamObjects/FlatCAMExcellon.py:627 flatcamObjects/FlatCAMGeometry.py:531 +#: flatcamObjects/FlatCAMGerber.py:278 msgid "Advanced" msgstr "" -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:111 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:111 msgid "Portable app" msgstr "" -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:112 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:112 msgid "" "Choose if the application should run as portable.\n" "\n" @@ -7291,89 +8865,89 @@ msgid "" "in the application folder, in the lib\\config subfolder." msgstr "" -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:125 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:125 msgid "Languages" msgstr "" -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:126 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:126 msgid "Set the language used throughout FlatCAM." msgstr "" -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:132 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:132 msgid "Apply Language" msgstr "" -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:133 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:133 msgid "" "Set the language used throughout FlatCAM.\n" "The app will restart after click." msgstr "" -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:147 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:147 msgid "Startup Settings" msgstr "" -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:151 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:151 msgid "Splash Screen" msgstr "" -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:153 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:153 msgid "Enable display of the splash screen at application startup." msgstr "" -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:165 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:165 msgid "Sys Tray Icon" msgstr "" -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:167 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:167 msgid "Enable display of FlatCAM icon in Sys Tray." msgstr "" -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:172 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:172 msgid "Show Shell" msgstr "" -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:174 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:174 msgid "" "Check this box if you want the shell to\n" "start automatically at startup." msgstr "" -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:181 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:181 msgid "Show Project" msgstr "" -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:183 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:183 msgid "" "Check this box if you want the project/selected/tool tab area to\n" "to be shown automatically at startup." msgstr "" -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:189 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:189 msgid "Version Check" msgstr "" -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:191 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:191 msgid "" "Check this box if you want to check\n" "for a new version automatically at startup." msgstr "" -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:198 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:198 msgid "Send Statistics" msgstr "" -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:200 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:200 msgid "" "Check this box if you agree to send anonymous\n" "stats automatically at startup, to help improve FlatCAM." msgstr "" -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:214 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:214 msgid "Workers number" msgstr "" -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:216 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:216 msgid "" "The number of Qthreads made available to the App.\n" "A bigger number may finish the jobs more quickly but\n" @@ -7383,11 +8957,11 @@ msgid "" "After change, it will be applied at next App start." msgstr "" -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:230 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:230 msgid "Geo Tolerance" msgstr "" -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:232 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:232 msgid "" "This value can counter the effect of the Circle Steps\n" "parameter. Default value is 0.005.\n" @@ -7397,47 +8971,47 @@ msgid "" "performance at the expense of level of detail." msgstr "" -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:252 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:252 msgid "Save Settings" msgstr "" -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:256 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:256 msgid "Save Compressed Project" msgstr "" -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:258 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:258 msgid "" "Whether to save a compressed or uncompressed project.\n" "When checked it will save a compressed FlatCAM project." msgstr "" -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:267 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:267 msgid "Compression" msgstr "" -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:269 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:269 msgid "" "The level of compression used when saving\n" "a FlatCAM project. Higher value means better compression\n" "but require more RAM usage and more processing time." msgstr "" -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:280 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:280 msgid "Enable Auto Save" msgstr "" -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:282 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:282 msgid "" "Check to enable the autosave feature.\n" "When enabled, the application will try to save a project\n" "at the set interval." msgstr "" -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:292 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:292 msgid "Interval" msgstr "" -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:294 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:294 msgid "" "Time interval for autosaving. In milliseconds.\n" "The application will try to save periodically but only\n" @@ -7445,141 +9019,152 @@ msgid "" "While active, some operations may block this feature." msgstr "" -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:310 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:310 msgid "Text to PDF parameters" msgstr "" -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:312 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:312 msgid "Used when saving text in Code Editor or in FlatCAM Document objects." msgstr "" -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:321 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:321 msgid "Top Margin" msgstr "" -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:323 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:323 msgid "Distance between text body and the top of the PDF file." msgstr "" -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:334 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:334 msgid "Bottom Margin" msgstr "" -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:336 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:336 msgid "Distance between text body and the bottom of the PDF file." msgstr "" -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:347 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:347 msgid "Left Margin" msgstr "" -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:349 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:349 msgid "Distance between text body and the left of the PDF file." msgstr "" -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:360 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:360 msgid "Right Margin" msgstr "" -#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:362 +#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:362 msgid "Distance between text body and the right of the PDF file." msgstr "" -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:26 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:26 msgid "GUI Preferences" msgstr "" -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:36 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:36 msgid "Theme" msgstr "" -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:38 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:38 msgid "" -"Select a theme for the application.\n" +"Select a theme for FlatCAM.\n" "It will theme the plot area." msgstr "" -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:43 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:43 msgid "Light" msgstr "" -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:44 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:44 msgid "Dark" msgstr "" -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:51 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:51 msgid "Use Gray Icons" msgstr "" -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:53 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:53 msgid "" "Check this box to use a set of icons with\n" "a lighter (gray) color. To be used when a\n" "full dark theme is applied." msgstr "" -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:73 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:59 +msgid "Apply Theme" +msgstr "" + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:61 +msgid "" +"Select a theme for FlatCAM.\n" +"It will theme the plot area.\n" +"The application will restart after change." +msgstr "" + +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:73 msgid "Layout" msgstr "" -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:75 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:75 msgid "" -"Select a layout for the application.\n" +"Select an layout for FlatCAM.\n" "It is applied immediately." msgstr "" -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:95 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:95 msgid "Style" msgstr "" -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:97 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:97 msgid "" -"Select a style for the application.\n" +"Select an style for FlatCAM.\n" "It will be applied at the next app start." msgstr "" -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:111 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:111 msgid "Activate HDPI Support" msgstr "" -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:113 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:113 msgid "" -"Enable High DPI support for the application.\n" +"Enable High DPI support for FlatCAM.\n" "It will be applied at the next app start." msgstr "" -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:127 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:127 msgid "Display Hover Shape" msgstr "" -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:129 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:129 msgid "" -"Enable display of a hover shape for the application objects.\n" +"Enable display of a hover shape for FlatCAM objects.\n" "It is displayed whenever the mouse cursor is hovering\n" "over any kind of not-selected object." msgstr "" -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:136 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:136 msgid "Display Selection Shape" msgstr "" -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:138 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:138 msgid "" -"Enable the display of a selection shape for the application objects.\n" +"Enable the display of a selection shape for FlatCAM objects.\n" "It is displayed whenever the mouse selects an object\n" "either by clicking or dragging mouse from left to right or\n" "right to left." msgstr "" -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:151 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:151 msgid "Left-Right Selection Color" msgstr "" -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:156 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:156 msgid "Set the line color for the 'left to right' selection box." msgstr "" -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:165 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:172 msgid "" "Set the fill color for the selection box\n" "in case that the selection is done from left to right.\n" @@ -7587,19 +9172,19 @@ msgid "" "digits are for alpha (transparency) level." msgstr "" -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:178 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:192 msgid "Set the fill transparency for the 'left to right' selection box." msgstr "" -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:191 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:216 msgid "Right-Left Selection Color" msgstr "" -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:197 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:222 msgid "Set the line color for the 'right to left' selection box." msgstr "" -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:207 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:239 msgid "" "Set the fill color for the selection box\n" "in case that the selection is done from right to left.\n" @@ -7607,142 +9192,122 @@ msgid "" "digits are for alpha (transparency) level." msgstr "" -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:220 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:259 msgid "Set the fill transparency for selection 'right to left' box." msgstr "" -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:236 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:286 msgid "Editor Color" msgstr "" -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:240 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:290 msgid "Drawing" msgstr "" -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:242 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:292 msgid "Set the color for the shape." msgstr "" -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:250 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:275 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:311 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:258 AppTools/ToolIsolation.py:494 -#: AppTools/ToolNCC.py:539 AppTools/ToolPaint.py:455 -msgid "Selection" -msgstr "" - -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:252 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:309 msgid "Set the color of the shape when selected." msgstr "" -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:268 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:332 msgid "Project Items Color" msgstr "" -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:272 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:336 msgid "Enabled" msgstr "" -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:274 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:338 msgid "Set the color of the items in Project Tab Tree." msgstr "" -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:281 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:352 msgid "Disabled" msgstr "" -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:283 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:354 msgid "" "Set the color of the items in Project Tab Tree,\n" "for the case when the items are disabled." msgstr "" -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:292 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:370 msgid "Project AutoHide" msgstr "" -#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:294 +#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:372 msgid "" "Check this box if you want the project/selected/tool tab area to\n" "hide automatically when there are no objects loaded and\n" "to show whenever a new object is created." msgstr "" -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:28 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:27 msgid "Geometry Adv. Options" msgstr "" -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:36 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:35 msgid "" "A list of Geometry advanced parameters.\n" "Those parameters are available only for\n" "Advanced App. Level." msgstr "" -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:46 -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:112 -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:134 -#: AppTools/ToolCalibration.py:125 AppTools/ToolSolderPaste.py:236 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:45 +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:112 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:134 +#: flatcamTools/ToolCalibration.py:125 flatcamTools/ToolSolderPaste.py:240 msgid "Toolchange X-Y" msgstr "" -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:58 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:56 msgid "" "Height of the tool just after starting the work.\n" "Delete the value if you don't need this feature." msgstr "" -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:161 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:158 msgid "Segment X size" msgstr "" -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:163 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:160 msgid "" "The size of the trace segment on the X axis.\n" "Useful for auto-leveling.\n" "A value of 0 means no segmentation on the X axis." msgstr "" -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:177 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:174 msgid "Segment Y size" msgstr "" -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:179 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:176 msgid "" "The size of the trace segment on the Y axis.\n" "Useful for auto-leveling.\n" "A value of 0 means no segmentation on the Y axis." msgstr "" -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:200 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:192 msgid "Area Exclusion" msgstr "" -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:202 +#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:194 msgid "" "Area exclusion parameters.\n" "Those parameters are available only for\n" "Advanced App. Level." msgstr "" -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:209 -msgid "Exclusion areas" -msgstr "" - -#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:220 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:293 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:322 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:286 AppTools/ToolIsolation.py:540 -#: AppTools/ToolNCC.py:578 AppTools/ToolPaint.py:521 -msgid "Shape" -msgstr "" - -#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:33 +#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:33 msgid "A list of Geometry Editor parameters." msgstr "" -#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:43 -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:174 +#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:43 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:196 msgid "" "Set the number of selected geometry\n" "items above which the utility geometry\n" @@ -7751,59 +9316,54 @@ msgid "" "large number of geometric elements." msgstr "" -#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:58 -msgid "" -"Milling type:\n" -"- climb / best for precision milling and to reduce tool usage\n" -"- conventional / useful when there is no backlash compensation" -msgstr "" - -#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:27 +#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:27 msgid "Geometry General" msgstr "" -#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:59 +#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:49 msgid "" "The number of circle steps for Geometry \n" "circle and arc shapes linear approximation." msgstr "" -#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:73 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:41 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:41 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:48 -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:42 +#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:63 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:41 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:48 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:42 msgid "Tools Dia" msgstr "" -#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:75 -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:108 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:43 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:43 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:50 -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:44 +#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:65 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:108 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:43 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:50 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:44 msgid "" "Diameters of the tools, separated by comma.\n" "The value of the diameter has to use the dot decimals separator.\n" "Valid values: 0.3, 1.0" msgstr "" -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:29 +#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:80 +msgid "Geometry Object Color" +msgstr "" + +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:28 msgid "Geometry Options" msgstr "" -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:37 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:36 msgid "" "Create a CNC Job object\n" "tracing the contours of this\n" "Geometry object." msgstr "" -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:81 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:80 msgid "Depth/Pass" msgstr "" -#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:83 +#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:82 msgid "" "The depth to cut on each pass,\n" "when multidepth is enabled.\n" @@ -7812,42 +9372,37 @@ msgid "" "which has negative value." msgstr "" -#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:27 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:27 msgid "Gerber Adv. Options" msgstr "" -#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:33 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:33 msgid "" "A list of Gerber advanced parameters.\n" "Those parameters are available only for\n" "Advanced App. Level." msgstr "" -#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:43 -msgid "\"Follow\"" -msgstr "" - -#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:52 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:52 msgid "Table Show/Hide" msgstr "" -#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:54 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:54 msgid "" "Toggle the display of the Gerber Apertures Table.\n" "Also, on hide, it will delete all mark shapes\n" "that are drawn on canvas." msgstr "" -#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:67 AppObjects/FlatCAMGerber.py:391 -#: AppTools/ToolCopperThieving.py:1026 AppTools/ToolCopperThieving.py:1215 -#: AppTools/ToolCopperThieving.py:1227 AppTools/ToolIsolation.py:1593 -#: AppTools/ToolNCC.py:2079 AppTools/ToolNCC.py:2190 AppTools/ToolNCC.py:2205 -#: AppTools/ToolNCC.py:3163 AppTools/ToolNCC.py:3268 AppTools/ToolNCC.py:3283 -#: AppTools/ToolNCC.py:3549 AppTools/ToolNCC.py:3650 AppTools/ToolNCC.py:3665 camlib.py:992 -msgid "Buffering" +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:134 +msgid "Exterior" msgstr "" -#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:69 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:135 +msgid "Interior" +msgstr "" + +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:148 msgid "" "Buffering type:\n" "- None --> best performance, fast file loading but no so good display\n" @@ -7855,38 +9410,39 @@ msgid "" "<>: Don't change this unless you know what you are doing !!!" msgstr "" -#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:74 -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:88 -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:196 AppTools/ToolFiducials.py:204 -#: AppTools/ToolFilm.py:238 AppTools/ToolProperties.py:452 AppTools/ToolProperties.py:455 -#: AppTools/ToolProperties.py:458 AppTools/ToolProperties.py:483 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:153 +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:88 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:207 +#: flatcamTools/ToolFiducials.py:201 flatcamTools/ToolFilm.py:255 +#: flatcamTools/ToolProperties.py:452 flatcamTools/ToolProperties.py:455 +#: flatcamTools/ToolProperties.py:458 flatcamTools/ToolProperties.py:483 msgid "None" msgstr "" -#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:80 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:159 msgid "Simplify" msgstr "" -#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:82 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:161 msgid "" "When checked all the Gerber polygons will be\n" "loaded with simplification having a set tolerance.\n" "<>: Don't change this unless you know what you are doing !!!" msgstr "" -#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:89 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:168 msgid "Tolerance" msgstr "" -#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:90 +#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:169 msgid "Tolerance for polygon simplification." msgstr "" -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:33 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:33 msgid "A list of Gerber Editor parameters." msgstr "" -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:43 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:43 msgid "" "Set the number of selected Gerber geometry\n" "items above which the utility geometry\n" @@ -7895,107 +9451,107 @@ msgid "" "large number of geometric elements." msgstr "" -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:56 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:56 msgid "New Aperture code" msgstr "" -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:69 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:69 msgid "New Aperture size" msgstr "" -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:71 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:71 msgid "Size for the new aperture" msgstr "" -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:82 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:82 msgid "New Aperture type" msgstr "" -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:84 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:84 msgid "" "Type for the new aperture.\n" "Can be 'C', 'R' or 'O'." msgstr "" -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:106 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:106 msgid "Aperture Dimensions" msgstr "" -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:117 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:116 msgid "Linear Pad Array" msgstr "" -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:161 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:160 msgid "Circular Pad Array" msgstr "" -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:197 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:196 msgid "Distance at which to buffer the Gerber element." msgstr "" -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:206 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:205 msgid "Scale Tool" msgstr "" -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:212 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:211 msgid "Factor to scale the Gerber element." msgstr "" -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:225 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:224 msgid "Threshold low" msgstr "" -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:227 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:226 msgid "Threshold value under which the apertures are not marked." msgstr "" -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:237 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:236 msgid "Threshold high" msgstr "" -#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:239 +#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:238 msgid "Threshold value over which the apertures are not marked." msgstr "" -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:27 +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:27 msgid "Gerber Export" msgstr "" -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:33 +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:33 msgid "" "The parameters set here are used in the file exported\n" "when using the File -> Export -> Export Gerber menu entry." msgstr "" -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:44 -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:50 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:84 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:90 +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:44 +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:50 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:84 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:90 msgid "The units used in the Gerber file." msgstr "" -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:58 +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:58 msgid "" "The number of digits in the whole part of the number\n" "and in the fractional part of the number." msgstr "" -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:71 +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:71 msgid "" "This numbers signify the number of digits in\n" "the whole part of Gerber coordinates." msgstr "" -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:87 +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:87 msgid "" "This numbers signify the number of digits in\n" "the decimal part of Gerber coordinates." msgstr "" -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:99 -#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:109 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:100 -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:110 +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:99 +#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:109 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:100 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:110 msgid "" "This sets the type of Gerber zeros.\n" "If LZ then Leading Zeros are removed and\n" @@ -8004,41 +9560,45 @@ msgid "" "and Leading Zeros are kept." msgstr "" -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:27 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:27 msgid "Gerber General" msgstr "" -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:61 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:45 +msgid "M-Color" +msgstr "" + +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:61 msgid "" "The number of circle steps for Gerber \n" "circular aperture linear approximation." msgstr "" -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:73 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:73 msgid "Default Values" msgstr "" -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:75 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:75 msgid "" "Those values will be used as fallback values\n" "in case that they are not found in the Gerber file." msgstr "" -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:126 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:126 msgid "Clean Apertures" msgstr "" -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:128 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:128 msgid "" "Will remove apertures that do not have geometry\n" "thus lowering the number of apertures in the Gerber object." msgstr "" -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:134 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:134 msgid "Polarity change buffer" msgstr "" -#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:136 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:136 msgid "" "Will apply extra buffering for the\n" "solid geometry when we have polarity changes.\n" @@ -8046,75 +9606,73 @@ msgid "" "do not load correctly." msgstr "" -#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:29 +#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:149 +msgid "Gerber Object Color" +msgstr "" + +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:29 msgid "Gerber Options" msgstr "" -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:27 +#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:107 +msgid "Combine Passes" +msgstr "" + +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:27 msgid "Copper Thieving Tool Options" msgstr "" -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:39 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:39 msgid "" "A tool to generate a Copper Thieving that can be added\n" "to a selected Gerber file." msgstr "" -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:47 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:47 msgid "Number of steps (lines) used to interpolate circles." msgstr "" -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:57 -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:261 -#: AppTools/ToolCopperThieving.py:100 AppTools/ToolCopperThieving.py:435 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:57 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:261 +#: flatcamTools/ToolCopperThieving.py:96 flatcamTools/ToolCopperThieving.py:431 msgid "Clearance" msgstr "" -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:59 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:59 msgid "" "This set the distance between the copper Thieving components\n" "(the polygon fill may be split in multiple polygons)\n" "and the copper traces in the Gerber file." msgstr "" -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:86 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309 AppTools/ToolCopperThieving.py:129 -#: AppTools/ToolNCC.py:535 AppTools/ToolNCC.py:1324 AppTools/ToolNCC.py:1655 -#: AppTools/ToolNCC.py:1948 AppTools/ToolNCC.py:2012 AppTools/ToolNCC.py:3027 -#: AppTools/ToolNCC.py:3036 defaults.py:419 tclCommands/TclCommandCopperClear.py:190 -msgid "Itself" -msgstr "" - -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:87 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:285 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280 AppTools/ToolCopperThieving.py:130 -#: AppTools/ToolIsolation.py:504 AppTools/ToolIsolation.py:1297 -#: AppTools/ToolIsolation.py:1671 AppTools/ToolNCC.py:535 AppTools/ToolNCC.py:1334 -#: AppTools/ToolNCC.py:1668 AppTools/ToolNCC.py:1964 AppTools/ToolNCC.py:2019 -#: AppTools/ToolPaint.py:485 AppTools/ToolPaint.py:945 AppTools/ToolPaint.py:1471 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:87 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280 +#: flatcamTools/ToolCopperThieving.py:126 flatcamTools/ToolNCC.py:535 +#: flatcamTools/ToolNCC.py:1316 flatcamTools/ToolNCC.py:1647 flatcamTools/ToolNCC.py:1935 +#: flatcamTools/ToolNCC.py:1990 flatcamTools/ToolPaint.py:486 flatcamTools/ToolPaint.py:946 +#: flatcamTools/ToolPaint.py:1452 msgid "Area Selection" msgstr "" -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:88 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:285 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280 AppTools/ToolCopperThieving.py:131 -#: AppTools/ToolDblSided.py:216 AppTools/ToolIsolation.py:504 AppTools/ToolIsolation.py:1711 -#: AppTools/ToolNCC.py:535 AppTools/ToolNCC.py:1684 AppTools/ToolNCC.py:1970 -#: AppTools/ToolNCC.py:2027 AppTools/ToolNCC.py:2408 AppTools/ToolNCC.py:2656 -#: AppTools/ToolNCC.py:3072 AppTools/ToolPaint.py:485 AppTools/ToolPaint.py:930 -#: AppTools/ToolPaint.py:1487 tclCommands/TclCommandCopperClear.py:192 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:88 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280 +#: flatcamTools/ToolCopperThieving.py:127 flatcamTools/ToolDblSided.py:216 +#: flatcamTools/ToolNCC.py:535 flatcamTools/ToolNCC.py:1663 flatcamTools/ToolNCC.py:1941 +#: flatcamTools/ToolNCC.py:1998 flatcamTools/ToolNCC.py:2306 flatcamTools/ToolNCC.py:2586 +#: flatcamTools/ToolNCC.py:3012 flatcamTools/ToolPaint.py:486 flatcamTools/ToolPaint.py:931 +#: flatcamTools/ToolPaint.py:1468 tclCommands/TclCommandCopperClear.py:192 #: tclCommands/TclCommandPaint.py:166 msgid "Reference Object" msgstr "" -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:90 -#: AppTools/ToolCopperThieving.py:133 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:90 +#: flatcamTools/ToolCopperThieving.py:129 msgid "Reference:" msgstr "" -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:92 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:92 msgid "" "- 'Itself' - the copper Thieving extent is based on the object extent.\n" "- 'Area Selection' - left mouse click to start selection of the area to be filled.\n" @@ -8122,56 +9680,56 @@ msgid "" "object." msgstr "" -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:101 -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:76 -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:188 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:76 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:190 -#: AppTools/ToolCopperThieving.py:175 AppTools/ToolExtractDrills.py:102 -#: AppTools/ToolExtractDrills.py:240 AppTools/ToolPunchGerber.py:113 -#: AppTools/ToolPunchGerber.py:268 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:101 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:76 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:188 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:76 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:190 +#: flatcamTools/ToolCopperThieving.py:171 flatcamTools/ToolExtractDrills.py:102 +#: flatcamTools/ToolExtractDrills.py:240 flatcamTools/ToolPunchGerber.py:113 +#: flatcamTools/ToolPunchGerber.py:268 msgid "Rectangular" msgstr "" -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:102 -#: AppTools/ToolCopperThieving.py:176 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:102 +#: flatcamTools/ToolCopperThieving.py:172 msgid "Minimal" msgstr "" -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:104 -#: AppTools/ToolCopperThieving.py:178 AppTools/ToolFilm.py:94 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:104 +#: flatcamTools/ToolCopperThieving.py:174 flatcamTools/ToolFilm.py:113 msgid "Box Type:" msgstr "" -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:106 -#: AppTools/ToolCopperThieving.py:180 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:106 +#: flatcamTools/ToolCopperThieving.py:176 msgid "" "- 'Rectangular' - the bounding box will be of rectangular shape.\n" "- 'Minimal' - the bounding box will be the convex hull shape." msgstr "" -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:120 -#: AppTools/ToolCopperThieving.py:196 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:120 +#: flatcamTools/ToolCopperThieving.py:192 msgid "Dots Grid" msgstr "" -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:121 -#: AppTools/ToolCopperThieving.py:197 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:121 +#: flatcamTools/ToolCopperThieving.py:193 msgid "Squares Grid" msgstr "" -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:122 -#: AppTools/ToolCopperThieving.py:198 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:122 +#: flatcamTools/ToolCopperThieving.py:194 msgid "Lines Grid" msgstr "" -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:124 -#: AppTools/ToolCopperThieving.py:200 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:124 +#: flatcamTools/ToolCopperThieving.py:196 msgid "Fill Type:" msgstr "" -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:126 -#: AppTools/ToolCopperThieving.py:202 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:126 +#: flatcamTools/ToolCopperThieving.py:198 msgid "" "- 'Solid' - copper thieving will be a solid polygon.\n" "- 'Dots Grid' - the empty area will be filled with a pattern of dots.\n" @@ -8179,122 +9737,122 @@ msgid "" "- 'Lines Grid' - the empty area will be filled with a pattern of lines." msgstr "" -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:134 -#: AppTools/ToolCopperThieving.py:221 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:134 +#: flatcamTools/ToolCopperThieving.py:217 msgid "Dots Grid Parameters" msgstr "" -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:140 -#: AppTools/ToolCopperThieving.py:227 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:140 +#: flatcamTools/ToolCopperThieving.py:223 msgid "Dot diameter in Dots Grid." msgstr "" -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:151 -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:180 -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:209 -#: AppTools/ToolCopperThieving.py:238 AppTools/ToolCopperThieving.py:278 -#: AppTools/ToolCopperThieving.py:318 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:151 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:180 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:209 +#: flatcamTools/ToolCopperThieving.py:234 flatcamTools/ToolCopperThieving.py:274 +#: flatcamTools/ToolCopperThieving.py:314 msgid "Spacing" msgstr "" -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:153 -#: AppTools/ToolCopperThieving.py:240 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:153 +#: flatcamTools/ToolCopperThieving.py:236 msgid "Distance between each two dots in Dots Grid." msgstr "" -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:163 -#: AppTools/ToolCopperThieving.py:261 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:163 +#: flatcamTools/ToolCopperThieving.py:257 msgid "Squares Grid Parameters" msgstr "" -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:169 -#: AppTools/ToolCopperThieving.py:267 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:169 +#: flatcamTools/ToolCopperThieving.py:263 msgid "Square side size in Squares Grid." msgstr "" -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:182 -#: AppTools/ToolCopperThieving.py:280 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:182 +#: flatcamTools/ToolCopperThieving.py:276 msgid "Distance between each two squares in Squares Grid." msgstr "" -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:192 -#: AppTools/ToolCopperThieving.py:301 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:192 +#: flatcamTools/ToolCopperThieving.py:297 msgid "Lines Grid Parameters" msgstr "" -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:198 -#: AppTools/ToolCopperThieving.py:307 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:198 +#: flatcamTools/ToolCopperThieving.py:303 msgid "Line thickness size in Lines Grid." msgstr "" -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:211 -#: AppTools/ToolCopperThieving.py:320 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:211 +#: flatcamTools/ToolCopperThieving.py:316 msgid "Distance between each two lines in Lines Grid." msgstr "" -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:221 -#: AppTools/ToolCopperThieving.py:358 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:221 +#: flatcamTools/ToolCopperThieving.py:354 msgid "Robber Bar Parameters" msgstr "" -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:223 -#: AppTools/ToolCopperThieving.py:360 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:223 +#: flatcamTools/ToolCopperThieving.py:356 msgid "" "Parameters used for the robber bar.\n" "Robber bar = copper border to help in pattern hole plating." msgstr "" -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:231 -#: AppTools/ToolCopperThieving.py:368 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:231 +#: flatcamTools/ToolCopperThieving.py:364 msgid "Bounding box margin for robber bar." msgstr "" -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:242 -#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:42 AppTools/ToolCopperThieving.py:379 -#: AppTools/ToolCorners.py:122 AppTools/ToolEtchCompensation.py:152 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:242 +#: flatcamTools/ToolCopperThieving.py:375 msgid "Thickness" msgstr "" -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:244 -#: AppTools/ToolCopperThieving.py:381 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:244 +#: flatcamTools/ToolCopperThieving.py:377 msgid "The robber bar thickness." msgstr "" -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:254 -#: AppTools/ToolCopperThieving.py:412 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:254 +#: flatcamTools/ToolCopperThieving.py:408 msgid "Pattern Plating Mask" msgstr "" -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:256 -#: AppTools/ToolCopperThieving.py:414 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:256 +#: flatcamTools/ToolCopperThieving.py:410 msgid "Generate a mask for pattern plating." msgstr "" -#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:263 -#: AppTools/ToolCopperThieving.py:437 +#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:263 +#: flatcamTools/ToolCopperThieving.py:433 msgid "" "The distance between the possible copper thieving elements\n" "and/or robber bar and the actual openings in the mask." msgstr "" -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:27 +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:27 msgid "Calibration Tool Options" msgstr "" -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:38 -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:38 -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:38 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:38 -#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:37 AppTools/ToolCopperThieving.py:95 -#: AppTools/ToolCorners.py:117 AppTools/ToolFiducials.py:154 +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:38 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:38 +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:38 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:38 +#: flatcamTools/ToolCopperThieving.py:91 flatcamTools/ToolFiducials.py:151 msgid "Parameters used for this tool." msgstr "" -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:43 AppTools/ToolCalibration.py:181 +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:43 +#: flatcamTools/ToolCalibration.py:181 msgid "Source Type" msgstr "" -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:44 AppTools/ToolCalibration.py:182 +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:44 +#: flatcamTools/ToolCalibration.py:182 msgid "" "The source of calibration points.\n" "It can be:\n" @@ -8302,158 +9860,158 @@ msgid "" "- Free -> click freely on canvas to acquire the calibration points" msgstr "" -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:49 AppTools/ToolCalibration.py:187 +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:49 +#: flatcamTools/ToolCalibration.py:187 msgid "Free" msgstr "" -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:63 AppTools/ToolCalibration.py:76 +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:63 +#: flatcamTools/ToolCalibration.py:76 msgid "Height (Z) for travelling between the points." msgstr "" -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:75 AppTools/ToolCalibration.py:88 +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:75 +#: flatcamTools/ToolCalibration.py:88 msgid "Verification Z" msgstr "" -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:77 AppTools/ToolCalibration.py:90 +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:77 +#: flatcamTools/ToolCalibration.py:90 msgid "Height (Z) for checking the point." msgstr "" -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:89 AppTools/ToolCalibration.py:102 +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:89 +#: flatcamTools/ToolCalibration.py:102 msgid "Zero Z tool" msgstr "" -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:91 AppTools/ToolCalibration.py:104 +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:91 +#: flatcamTools/ToolCalibration.py:104 msgid "" "Include a sequence to zero the height (Z)\n" "of the verification tool." msgstr "" -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:100 AppTools/ToolCalibration.py:113 +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:100 +#: flatcamTools/ToolCalibration.py:113 msgid "Height (Z) for mounting the verification probe." msgstr "" -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:114 AppTools/ToolCalibration.py:127 +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:114 +#: flatcamTools/ToolCalibration.py:127 msgid "" "Toolchange X,Y position.\n" "If no value is entered then the current\n" "(x, y) point will be used," msgstr "" -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:125 AppTools/ToolCalibration.py:153 +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:125 +#: flatcamTools/ToolCalibration.py:153 msgid "Second point" msgstr "" -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:127 AppTools/ToolCalibration.py:155 +#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:127 +#: flatcamTools/ToolCalibration.py:155 msgid "" "Second point in the Gcode verification can be:\n" "- top-left -> the user will align the PCB vertically\n" "- bottom-right -> the user will align the PCB horizontally" msgstr "" -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:131 AppTools/ToolCalibration.py:159 -#: App_Main.py:4712 -msgid "Top-Left" -msgstr "" - -#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:132 AppTools/ToolCalibration.py:160 -#: App_Main.py:4713 -msgid "Bottom-Right" -msgstr "" - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:27 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:27 msgid "Extract Drills Options" msgstr "" -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:42 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:42 -#: AppTools/ToolExtractDrills.py:68 AppTools/ToolPunchGerber.py:75 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:42 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:42 +#: flatcamTools/ToolExtractDrills.py:68 flatcamTools/ToolPunchGerber.py:75 msgid "Processed Pads Type" msgstr "" -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:44 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:44 -#: AppTools/ToolExtractDrills.py:70 AppTools/ToolPunchGerber.py:77 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:44 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:44 +#: flatcamTools/ToolExtractDrills.py:70 flatcamTools/ToolPunchGerber.py:77 msgid "" "The type of pads shape to be processed.\n" "If the PCB has many SMD pads with rectangular pads,\n" "disable the Rectangular aperture." msgstr "" -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:54 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:54 -#: AppTools/ToolExtractDrills.py:80 AppTools/ToolPunchGerber.py:91 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:54 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:54 +#: flatcamTools/ToolExtractDrills.py:80 flatcamTools/ToolPunchGerber.py:91 msgid "Process Circular Pads." msgstr "" -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:60 -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:162 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:60 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:164 -#: AppTools/ToolExtractDrills.py:86 AppTools/ToolExtractDrills.py:214 -#: AppTools/ToolPunchGerber.py:97 AppTools/ToolPunchGerber.py:242 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:60 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:162 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:60 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:164 +#: flatcamTools/ToolExtractDrills.py:86 flatcamTools/ToolExtractDrills.py:214 +#: flatcamTools/ToolPunchGerber.py:97 flatcamTools/ToolPunchGerber.py:242 msgid "Oblong" msgstr "" -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:62 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:62 -#: AppTools/ToolExtractDrills.py:88 AppTools/ToolPunchGerber.py:99 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:62 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:62 +#: flatcamTools/ToolExtractDrills.py:88 flatcamTools/ToolPunchGerber.py:99 msgid "Process Oblong Pads." msgstr "" -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:70 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:70 -#: AppTools/ToolExtractDrills.py:96 AppTools/ToolPunchGerber.py:107 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:70 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:70 +#: flatcamTools/ToolExtractDrills.py:96 flatcamTools/ToolPunchGerber.py:107 msgid "Process Square Pads." msgstr "" -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:78 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:78 -#: AppTools/ToolExtractDrills.py:104 AppTools/ToolPunchGerber.py:115 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:78 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:78 +#: flatcamTools/ToolExtractDrills.py:104 flatcamTools/ToolPunchGerber.py:115 msgid "Process Rectangular Pads." msgstr "" -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:84 -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:201 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:84 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:203 -#: AppTools/ToolExtractDrills.py:110 AppTools/ToolExtractDrills.py:253 -#: AppTools/ToolProperties.py:172 AppTools/ToolPunchGerber.py:121 -#: AppTools/ToolPunchGerber.py:281 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:84 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:201 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:84 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:203 +#: flatcamTools/ToolExtractDrills.py:110 flatcamTools/ToolExtractDrills.py:253 +#: flatcamTools/ToolProperties.py:172 flatcamTools/ToolPunchGerber.py:121 +#: flatcamTools/ToolPunchGerber.py:281 msgid "Others" msgstr "" -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:86 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:86 -#: AppTools/ToolExtractDrills.py:112 AppTools/ToolPunchGerber.py:123 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:86 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:86 +#: flatcamTools/ToolExtractDrills.py:112 flatcamTools/ToolPunchGerber.py:123 msgid "Process pads not in the categories above." msgstr "" -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:99 -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:123 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:100 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:125 -#: AppTools/ToolExtractDrills.py:139 AppTools/ToolExtractDrills.py:156 -#: AppTools/ToolPunchGerber.py:150 AppTools/ToolPunchGerber.py:184 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:99 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:123 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:100 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:125 +#: flatcamTools/ToolExtractDrills.py:139 flatcamTools/ToolExtractDrills.py:156 +#: flatcamTools/ToolPunchGerber.py:150 flatcamTools/ToolPunchGerber.py:184 msgid "Fixed Diameter" msgstr "" -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:100 -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:140 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:101 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:142 -#: AppTools/ToolExtractDrills.py:140 AppTools/ToolExtractDrills.py:192 -#: AppTools/ToolPunchGerber.py:151 AppTools/ToolPunchGerber.py:214 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:100 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:140 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:101 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:142 +#: flatcamTools/ToolExtractDrills.py:140 flatcamTools/ToolExtractDrills.py:192 +#: flatcamTools/ToolPunchGerber.py:151 flatcamTools/ToolPunchGerber.py:214 msgid "Fixed Annular Ring" msgstr "" -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:101 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:102 -#: AppTools/ToolExtractDrills.py:141 AppTools/ToolPunchGerber.py:152 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:101 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:102 +#: flatcamTools/ToolExtractDrills.py:141 flatcamTools/ToolPunchGerber.py:152 msgid "Proportional" msgstr "" -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:107 -#: AppTools/ToolExtractDrills.py:130 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:107 +#: flatcamTools/ToolExtractDrills.py:130 msgid "" "The method for processing pads. Can be:\n" "- Fixed Diameter -> all holes will have a set size\n" @@ -8461,121 +10019,120 @@ msgid "" "- Proportional -> each hole size will be a fraction of the pad size" msgstr "" -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:131 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:133 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:220 -#: AppTools/ToolExtractDrills.py:164 AppTools/ToolExtractDrills.py:285 -#: AppTools/ToolPunchGerber.py:192 AppTools/ToolPunchGerber.py:308 -#: AppTools/ToolTransform.py:357 App_Main.py:9698 -msgid "Value" -msgstr "" - -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:133 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:135 -#: AppTools/ToolExtractDrills.py:166 AppTools/ToolPunchGerber.py:194 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:133 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:135 +#: flatcamTools/ToolExtractDrills.py:166 flatcamTools/ToolPunchGerber.py:194 msgid "Fixed hole diameter." msgstr "" -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:142 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:144 -#: AppTools/ToolExtractDrills.py:194 AppTools/ToolPunchGerber.py:216 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:142 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:144 +#: flatcamTools/ToolExtractDrills.py:194 flatcamTools/ToolPunchGerber.py:216 msgid "" "The size of annular ring.\n" "The copper sliver between the hole exterior\n" "and the margin of the copper pad." msgstr "" -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:151 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:153 -#: AppTools/ToolExtractDrills.py:203 AppTools/ToolPunchGerber.py:231 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:151 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:153 +#: flatcamTools/ToolExtractDrills.py:203 flatcamTools/ToolPunchGerber.py:231 msgid "The size of annular ring for circular pads." msgstr "" -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:164 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:166 -#: AppTools/ToolExtractDrills.py:216 AppTools/ToolPunchGerber.py:244 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:164 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:166 +#: flatcamTools/ToolExtractDrills.py:216 flatcamTools/ToolPunchGerber.py:244 msgid "The size of annular ring for oblong pads." msgstr "" -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:177 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:179 -#: AppTools/ToolExtractDrills.py:229 AppTools/ToolPunchGerber.py:257 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:177 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:179 +#: flatcamTools/ToolExtractDrills.py:229 flatcamTools/ToolPunchGerber.py:257 msgid "The size of annular ring for square pads." msgstr "" -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:190 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:192 -#: AppTools/ToolExtractDrills.py:242 AppTools/ToolPunchGerber.py:270 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:190 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:192 +#: flatcamTools/ToolExtractDrills.py:242 flatcamTools/ToolPunchGerber.py:270 msgid "The size of annular ring for rectangular pads." msgstr "" -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:203 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:205 -#: AppTools/ToolExtractDrills.py:255 AppTools/ToolPunchGerber.py:283 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:203 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:205 +#: flatcamTools/ToolExtractDrills.py:255 flatcamTools/ToolPunchGerber.py:283 msgid "The size of annular ring for other pads." msgstr "" -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:213 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:215 -#: AppTools/ToolExtractDrills.py:276 AppTools/ToolPunchGerber.py:299 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:213 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:215 +#: flatcamTools/ToolExtractDrills.py:276 flatcamTools/ToolPunchGerber.py:299 msgid "Proportional Diameter" msgstr "" -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:222 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:224 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:222 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:224 msgid "Factor" msgstr "" -#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:224 -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:226 -#: AppTools/ToolExtractDrills.py:287 AppTools/ToolPunchGerber.py:310 +#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:224 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:226 +#: flatcamTools/ToolExtractDrills.py:287 flatcamTools/ToolPunchGerber.py:310 msgid "" "Proportional Diameter.\n" "The hole diameter will be a fraction of the pad size." msgstr "" -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:27 +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:27 msgid "Fiducials Tool Options" msgstr "" -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:45 AppTools/ToolFiducials.py:161 +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:45 +#: flatcamTools/ToolFiducials.py:158 msgid "" "This set the fiducial diameter if fiducial type is circular,\n" "otherwise is the size of the fiducial.\n" "The soldermask opening is double than that." msgstr "" -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:73 AppTools/ToolFiducials.py:189 +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:73 +#: flatcamTools/ToolFiducials.py:186 msgid "Auto" msgstr "" -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:74 AppTools/ToolFiducials.py:190 +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:74 +#: flatcamTools/ToolFiducials.py:187 msgid "Manual" msgstr "" -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:76 AppTools/ToolFiducials.py:192 +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:76 +#: flatcamTools/ToolFiducials.py:189 msgid "Mode:" msgstr "" -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:78 +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:78 msgid "" "- 'Auto' - automatic placement of fiducials in the corners of the bounding box.\n" "- 'Manual' - manual placement of fiducials." msgstr "" -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:86 AppTools/ToolFiducials.py:202 +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:86 +#: flatcamTools/ToolFiducials.py:199 msgid "Up" msgstr "" -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:87 AppTools/ToolFiducials.py:203 +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:87 +#: flatcamTools/ToolFiducials.py:200 msgid "Down" msgstr "" -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:90 AppTools/ToolFiducials.py:206 +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:90 +#: flatcamTools/ToolFiducials.py:203 msgid "Second fiducial" msgstr "" -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:92 AppTools/ToolFiducials.py:208 +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:92 +#: flatcamTools/ToolFiducials.py:205 msgid "" "The position for the second fiducial.\n" "- 'Up' - the order is: bottom-left, top-left, top-right.\n" @@ -8583,19 +10140,23 @@ msgid "" "- 'None' - there is no second fiducial. The order is: bottom-left, top-right." msgstr "" -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:108 AppTools/ToolFiducials.py:224 +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:108 +#: flatcamTools/ToolFiducials.py:221 msgid "Cross" msgstr "" -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:109 AppTools/ToolFiducials.py:225 +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:109 +#: flatcamTools/ToolFiducials.py:222 msgid "Chess" msgstr "" -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:112 AppTools/ToolFiducials.py:227 +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:112 +#: flatcamTools/ToolFiducials.py:224 msgid "Fiducial Type" msgstr "" -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:114 AppTools/ToolFiducials.py:229 +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:114 +#: flatcamTools/ToolFiducials.py:226 msgid "" "The type of fiducial.\n" "- 'Circular' - this is the regular fiducial.\n" @@ -8603,31 +10164,35 @@ msgid "" "- 'Chess' - chess pattern fiducial." msgstr "" -#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:123 AppTools/ToolFiducials.py:238 +#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:123 +#: flatcamTools/ToolFiducials.py:235 msgid "Line thickness" msgstr "" -#: AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py:27 +#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:27 msgid "Invert Gerber Tool Options" msgstr "" -#: AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py:33 +#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:33 msgid "" "A tool to invert Gerber geometry from positive to negative\n" "and in revers." msgstr "" -#: AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py:47 AppTools/ToolInvertGerber.py:93 +#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:47 +#: flatcamTools/ToolInvertGerber.py:90 msgid "" "Distance by which to avoid\n" "the edges of the Gerber object." msgstr "" -#: AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py:58 AppTools/ToolInvertGerber.py:104 +#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:58 +#: flatcamTools/ToolInvertGerber.py:101 msgid "Lines Join Style" msgstr "" -#: AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py:60 AppTools/ToolInvertGerber.py:106 +#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:60 +#: flatcamTools/ToolInvertGerber.py:103 msgid "" "The way that the lines in the object outline will be joined.\n" "Can be:\n" @@ -8636,30 +10201,31 @@ msgid "" "- bevel -> the lines are joined by a third line" msgstr "" -#: AppGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:27 +#: flatcamGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:27 msgid "Optimal Tool Options" msgstr "" -#: AppGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:33 +#: flatcamGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:33 msgid "" "A tool to find the minimum distance between\n" "every two Gerber geometric elements" msgstr "" -#: AppGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:48 AppTools/ToolOptimal.py:84 +#: flatcamGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:48 +#: flatcamTools/ToolOptimal.py:78 msgid "Precision" msgstr "" -#: AppGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:50 +#: flatcamGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:50 msgid "Number of decimals for the distances and coordinates in this tool." msgstr "" -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:27 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:27 msgid "Punch Gerber Options" msgstr "" -#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:108 -#: AppTools/ToolPunchGerber.py:141 +#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:108 +#: flatcamTools/ToolPunchGerber.py:141 msgid "" "The punch hole source can be:\n" "- Excellon Object-> the Excellon object drills center will serve as reference.\n" @@ -8670,33 +10236,33 @@ msgid "" "pad diameter." msgstr "" -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:27 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:27 msgid "QRCode Tool Options" msgstr "" -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:33 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:33 msgid "" "A tool to create a QRCode that can be inserted\n" "into a selected Gerber file, or it can be exported as a file." msgstr "" -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:45 AppTools/ToolQRCode.py:121 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:45 flatcamTools/ToolQRCode.py:100 msgid "Version" msgstr "" -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:47 AppTools/ToolQRCode.py:123 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:47 flatcamTools/ToolQRCode.py:102 msgid "" "QRCode version can have values from 1 (21x21 boxes)\n" "to 40 (177x177 boxes)." msgstr "" -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:58 AppTools/ToolQRCode.py:134 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:58 flatcamTools/ToolQRCode.py:113 msgid "Error correction" msgstr "" -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:60 -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:71 AppTools/ToolQRCode.py:136 -#: AppTools/ToolQRCode.py:147 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:60 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:71 flatcamTools/ToolQRCode.py:115 +#: flatcamTools/ToolQRCode.py:126 #, python-format msgid "" "Parameter that controls the error correction used for the QR Code.\n" @@ -8706,60 +10272,66 @@ msgid "" "H = maximum 30%% errors can be corrected." msgstr "" -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:81 AppTools/ToolQRCode.py:157 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:81 flatcamTools/ToolQRCode.py:136 msgid "Box Size" msgstr "" -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:83 AppTools/ToolQRCode.py:159 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:83 flatcamTools/ToolQRCode.py:138 msgid "" "Box size control the overall size of the QRcode\n" "by adjusting the size of each box in the code." msgstr "" -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:94 AppTools/ToolQRCode.py:170 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:94 flatcamTools/ToolQRCode.py:149 msgid "Border Size" msgstr "" -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:96 AppTools/ToolQRCode.py:172 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:96 flatcamTools/ToolQRCode.py:151 msgid "" "Size of the QRCode border. How many boxes thick is the border.\n" "Default value is 4. The width of the clearance around the QRCode." msgstr "" -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:107 AppTools/ToolQRCode.py:92 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:107 +#: flatcamTools/ToolQRCode.py:162 msgid "QRCode Data" msgstr "" -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:109 AppTools/ToolQRCode.py:94 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:109 +#: flatcamTools/ToolQRCode.py:164 msgid "QRCode Data. Alphanumeric text to be encoded in the QRCode." msgstr "" -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:113 AppTools/ToolQRCode.py:98 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:113 +#: flatcamTools/ToolQRCode.py:168 msgid "Add here the text to be included in the QRCode..." msgstr "" -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:119 AppTools/ToolQRCode.py:183 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:119 +#: flatcamTools/ToolQRCode.py:174 msgid "Polarity" msgstr "" -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:121 AppTools/ToolQRCode.py:185 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:121 +#: flatcamTools/ToolQRCode.py:176 msgid "" "Choose the polarity of the QRCode.\n" "It can be drawn in a negative way (squares are clear)\n" "or in a positive way (squares are opaque)." msgstr "" -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:125 AppTools/ToolFilm.py:279 -#: AppTools/ToolQRCode.py:189 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:125 flatcamTools/ToolFilm.py:296 +#: flatcamTools/ToolQRCode.py:180 msgid "Negative" msgstr "" -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:126 AppTools/ToolFilm.py:278 -#: AppTools/ToolQRCode.py:190 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:126 flatcamTools/ToolFilm.py:295 +#: flatcamTools/ToolQRCode.py:181 msgid "Positive" msgstr "" -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:128 AppTools/ToolQRCode.py:192 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:128 +#: flatcamTools/ToolQRCode.py:183 msgid "" "Choose the type of QRCode to be created.\n" "If added on a Silkscreen Gerber file the QRCode may\n" @@ -8767,429 +10339,426 @@ msgid "" "file then perhaps the QRCode can be added as negative." msgstr "" -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:139 -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:145 AppTools/ToolQRCode.py:203 -#: AppTools/ToolQRCode.py:209 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:139 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:145 +#: flatcamTools/ToolQRCode.py:194 flatcamTools/ToolQRCode.py:200 msgid "" "The bounding box, meaning the empty space that surrounds\n" "the QRCode geometry, can have a rounded or a square shape." msgstr "" -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:142 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:239 AppTools/ToolQRCode.py:206 -#: AppTools/ToolTransform.py:383 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:142 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:239 +#: flatcamTools/ToolQRCode.py:197 flatcamTools/ToolTransform.py:383 msgid "Rounded" msgstr "" -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:152 AppTools/ToolQRCode.py:237 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:152 +#: flatcamTools/ToolQRCode.py:228 msgid "Fill Color" msgstr "" -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:154 AppTools/ToolQRCode.py:239 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:154 +#: flatcamTools/ToolQRCode.py:230 msgid "Set the QRCode fill color (squares color)." msgstr "" -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:162 AppTools/ToolQRCode.py:261 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:173 +#: flatcamTools/ToolQRCode.py:252 msgid "Back Color" msgstr "" -#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:164 AppTools/ToolQRCode.py:263 +#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:175 +#: flatcamTools/ToolQRCode.py:254 msgid "Set the QRCode background color." msgstr "" -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:27 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:27 msgid "Check Rules Tool Options" msgstr "" -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:32 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:32 msgid "" "A tool to check if Gerber files are within a set\n" "of Manufacturing Rules." msgstr "" -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:42 AppTools/ToolRulesCheck.py:265 -#: AppTools/ToolRulesCheck.py:929 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:42 +#: flatcamTools/ToolRulesCheck.py:265 flatcamTools/ToolRulesCheck.py:929 msgid "Trace Size" msgstr "" -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:44 AppTools/ToolRulesCheck.py:267 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:44 +#: flatcamTools/ToolRulesCheck.py:267 msgid "This checks if the minimum size for traces is met." msgstr "" -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:54 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:74 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:94 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:114 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:134 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:154 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:174 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:194 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:216 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:236 -#: AppTools/ToolRulesCheck.py:277 AppTools/ToolRulesCheck.py:299 -#: AppTools/ToolRulesCheck.py:322 AppTools/ToolRulesCheck.py:345 -#: AppTools/ToolRulesCheck.py:368 AppTools/ToolRulesCheck.py:391 -#: AppTools/ToolRulesCheck.py:414 AppTools/ToolRulesCheck.py:437 -#: AppTools/ToolRulesCheck.py:462 AppTools/ToolRulesCheck.py:485 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:54 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:74 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:94 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:114 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:134 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:154 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:174 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:194 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:216 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:236 +#: flatcamTools/ToolRulesCheck.py:277 flatcamTools/ToolRulesCheck.py:299 +#: flatcamTools/ToolRulesCheck.py:322 flatcamTools/ToolRulesCheck.py:345 +#: flatcamTools/ToolRulesCheck.py:368 flatcamTools/ToolRulesCheck.py:391 +#: flatcamTools/ToolRulesCheck.py:414 flatcamTools/ToolRulesCheck.py:437 +#: flatcamTools/ToolRulesCheck.py:462 flatcamTools/ToolRulesCheck.py:485 msgid "Min value" msgstr "" -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:56 AppTools/ToolRulesCheck.py:279 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:56 +#: flatcamTools/ToolRulesCheck.py:279 msgid "Minimum acceptable trace size." msgstr "" -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:61 AppTools/ToolRulesCheck.py:286 -#: AppTools/ToolRulesCheck.py:1157 AppTools/ToolRulesCheck.py:1187 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:61 +#: flatcamTools/ToolRulesCheck.py:286 flatcamTools/ToolRulesCheck.py:1157 +#: flatcamTools/ToolRulesCheck.py:1187 msgid "Copper to Copper clearance" msgstr "" -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:63 AppTools/ToolRulesCheck.py:288 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:63 +#: flatcamTools/ToolRulesCheck.py:288 msgid "" "This checks if the minimum clearance between copper\n" "features is met." msgstr "" -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:76 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:96 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:116 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:136 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:156 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:176 -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:238 -#: AppTools/ToolRulesCheck.py:301 AppTools/ToolRulesCheck.py:324 -#: AppTools/ToolRulesCheck.py:347 AppTools/ToolRulesCheck.py:370 -#: AppTools/ToolRulesCheck.py:393 AppTools/ToolRulesCheck.py:416 -#: AppTools/ToolRulesCheck.py:464 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:76 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:96 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:116 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:136 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:156 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:176 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:238 +#: flatcamTools/ToolRulesCheck.py:301 flatcamTools/ToolRulesCheck.py:324 +#: flatcamTools/ToolRulesCheck.py:347 flatcamTools/ToolRulesCheck.py:370 +#: flatcamTools/ToolRulesCheck.py:393 flatcamTools/ToolRulesCheck.py:416 +#: flatcamTools/ToolRulesCheck.py:464 msgid "Minimum acceptable clearance value." msgstr "" -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:81 AppTools/ToolRulesCheck.py:309 -#: AppTools/ToolRulesCheck.py:1217 AppTools/ToolRulesCheck.py:1223 -#: AppTools/ToolRulesCheck.py:1236 AppTools/ToolRulesCheck.py:1243 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:81 +#: flatcamTools/ToolRulesCheck.py:309 flatcamTools/ToolRulesCheck.py:1217 +#: flatcamTools/ToolRulesCheck.py:1223 flatcamTools/ToolRulesCheck.py:1236 +#: flatcamTools/ToolRulesCheck.py:1243 msgid "Copper to Outline clearance" msgstr "" -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:83 AppTools/ToolRulesCheck.py:311 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:83 +#: flatcamTools/ToolRulesCheck.py:311 msgid "" "This checks if the minimum clearance between copper\n" "features and the outline is met." msgstr "" -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:101 -#: AppTools/ToolRulesCheck.py:332 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:101 +#: flatcamTools/ToolRulesCheck.py:332 msgid "Silk to Silk Clearance" msgstr "" -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:103 -#: AppTools/ToolRulesCheck.py:334 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:103 +#: flatcamTools/ToolRulesCheck.py:334 msgid "" "This checks if the minimum clearance between silkscreen\n" "features and silkscreen features is met." msgstr "" -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:121 -#: AppTools/ToolRulesCheck.py:355 AppTools/ToolRulesCheck.py:1326 -#: AppTools/ToolRulesCheck.py:1332 AppTools/ToolRulesCheck.py:1350 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:121 +#: flatcamTools/ToolRulesCheck.py:355 flatcamTools/ToolRulesCheck.py:1326 +#: flatcamTools/ToolRulesCheck.py:1332 flatcamTools/ToolRulesCheck.py:1350 msgid "Silk to Solder Mask Clearance" msgstr "" -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:123 -#: AppTools/ToolRulesCheck.py:357 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:123 +#: flatcamTools/ToolRulesCheck.py:357 msgid "" "This checks if the minimum clearance between silkscreen\n" "features and soldermask features is met." msgstr "" -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:141 -#: AppTools/ToolRulesCheck.py:378 AppTools/ToolRulesCheck.py:1380 -#: AppTools/ToolRulesCheck.py:1386 AppTools/ToolRulesCheck.py:1400 -#: AppTools/ToolRulesCheck.py:1407 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:141 +#: flatcamTools/ToolRulesCheck.py:378 flatcamTools/ToolRulesCheck.py:1380 +#: flatcamTools/ToolRulesCheck.py:1386 flatcamTools/ToolRulesCheck.py:1400 +#: flatcamTools/ToolRulesCheck.py:1407 msgid "Silk to Outline Clearance" msgstr "" -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:143 -#: AppTools/ToolRulesCheck.py:380 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:143 +#: flatcamTools/ToolRulesCheck.py:380 msgid "" "This checks if the minimum clearance between silk\n" "features and the outline is met." msgstr "" -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:161 -#: AppTools/ToolRulesCheck.py:401 AppTools/ToolRulesCheck.py:1418 -#: AppTools/ToolRulesCheck.py:1445 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:161 +#: flatcamTools/ToolRulesCheck.py:401 flatcamTools/ToolRulesCheck.py:1418 +#: flatcamTools/ToolRulesCheck.py:1445 msgid "Minimum Solder Mask Sliver" msgstr "" -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:163 -#: AppTools/ToolRulesCheck.py:403 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:163 +#: flatcamTools/ToolRulesCheck.py:403 msgid "" "This checks if the minimum clearance between soldermask\n" "features and soldermask features is met." msgstr "" -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:181 -#: AppTools/ToolRulesCheck.py:424 AppTools/ToolRulesCheck.py:1483 -#: AppTools/ToolRulesCheck.py:1489 AppTools/ToolRulesCheck.py:1505 -#: AppTools/ToolRulesCheck.py:1512 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:181 +#: flatcamTools/ToolRulesCheck.py:424 flatcamTools/ToolRulesCheck.py:1483 +#: flatcamTools/ToolRulesCheck.py:1489 flatcamTools/ToolRulesCheck.py:1505 +#: flatcamTools/ToolRulesCheck.py:1512 msgid "Minimum Annular Ring" msgstr "" -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:183 -#: AppTools/ToolRulesCheck.py:426 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:183 +#: flatcamTools/ToolRulesCheck.py:426 msgid "" "This checks if the minimum copper ring left by drilling\n" "a hole into a pad is met." msgstr "" -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:196 -#: AppTools/ToolRulesCheck.py:439 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:196 +#: flatcamTools/ToolRulesCheck.py:439 msgid "Minimum acceptable ring value." msgstr "" -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:203 -#: AppTools/ToolRulesCheck.py:449 AppTools/ToolRulesCheck.py:873 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:203 +#: flatcamTools/ToolRulesCheck.py:449 flatcamTools/ToolRulesCheck.py:873 msgid "Hole to Hole Clearance" msgstr "" -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:205 -#: AppTools/ToolRulesCheck.py:451 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:205 +#: flatcamTools/ToolRulesCheck.py:451 msgid "" "This checks if the minimum clearance between a drill hole\n" "and another drill hole is met." msgstr "" -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:218 -#: AppTools/ToolRulesCheck.py:487 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:218 +#: flatcamTools/ToolRulesCheck.py:487 msgid "Minimum acceptable drill size." msgstr "" -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:223 -#: AppTools/ToolRulesCheck.py:472 AppTools/ToolRulesCheck.py:847 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:223 +#: flatcamTools/ToolRulesCheck.py:472 flatcamTools/ToolRulesCheck.py:847 msgid "Hole Size" msgstr "" -#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:225 -#: AppTools/ToolRulesCheck.py:474 +#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:225 +#: flatcamTools/ToolRulesCheck.py:474 msgid "" "This checks if the drill holes\n" "sizes are above the threshold." msgstr "" -#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:27 +#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:27 msgid "2Sided Tool Options" msgstr "" -#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:33 +#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:33 msgid "" "A tool to help in creating a double sided\n" "PCB using alignment holes." msgstr "" -#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:47 +#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:47 msgid "Drill dia" msgstr "" -#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:49 AppTools/ToolDblSided.py:363 -#: AppTools/ToolDblSided.py:368 +#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:49 +#: flatcamTools/ToolDblSided.py:363 flatcamTools/ToolDblSided.py:368 msgid "Diameter of the drill for the alignment holes." msgstr "" -#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:56 AppTools/ToolDblSided.py:377 +#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:56 +#: flatcamTools/ToolDblSided.py:377 msgid "Align Axis" msgstr "" -#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:58 -#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:71 AppTools/ToolDblSided.py:165 -#: AppTools/ToolDblSided.py:379 +#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:58 +#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:71 +#: flatcamTools/ToolDblSided.py:165 flatcamTools/ToolDblSided.py:379 msgid "Mirror vertically (X) or horizontally (Y)." msgstr "" -#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:69 +#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:69 msgid "Mirror Axis:" msgstr "" -#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:80 AppTools/ToolDblSided.py:181 +#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:80 +#: flatcamTools/ToolDblSided.py:181 msgid "Point" msgstr "" -#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:81 AppTools/ToolDblSided.py:182 +#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:81 +#: flatcamTools/ToolDblSided.py:182 msgid "Box" msgstr "" -#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:82 +#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:82 msgid "Axis Ref" msgstr "" -#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:84 +#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:84 msgid "" "The axis should pass through a point or cut\n" " a specified box (in a FlatCAM object) through \n" "the center." msgstr "" -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:27 +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:27 msgid "Calculators Tool Options" msgstr "" -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:31 AppTools/ToolCalculators.py:25 +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:31 +#: flatcamTools/ToolCalculators.py:25 msgid "V-Shape Tool Calculator" msgstr "" -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:33 +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:33 msgid "" "Calculate the tool diameter for a given V-shape tool,\n" "having the tip diameter, tip angle and\n" "depth-of-cut as parameters." msgstr "" -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:50 AppTools/ToolCalculators.py:94 +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:50 +#: flatcamTools/ToolCalculators.py:94 msgid "Tip Diameter" msgstr "" -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:52 -#: AppTools/ToolCalculators.py:102 +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:52 +#: flatcamTools/ToolCalculators.py:102 msgid "" "This is the tool tip diameter.\n" "It is specified by manufacturer." msgstr "" -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:64 -#: AppTools/ToolCalculators.py:105 +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:64 +#: flatcamTools/ToolCalculators.py:105 msgid "Tip Angle" msgstr "" -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:66 +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:66 msgid "" "This is the angle on the tip of the tool.\n" "It is specified by manufacturer." msgstr "" -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:80 +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:80 msgid "" "This is depth to cut into material.\n" "In the CNCJob object it is the CutZ parameter." msgstr "" -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:87 AppTools/ToolCalculators.py:27 +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:87 +#: flatcamTools/ToolCalculators.py:27 msgid "ElectroPlating Calculator" msgstr "" -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:89 -#: AppTools/ToolCalculators.py:158 +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:89 +#: flatcamTools/ToolCalculators.py:158 msgid "" "This calculator is useful for those who plate the via/pad/drill holes,\n" "using a method like graphite ink or calcium hypophosphite ink or palladium chloride." msgstr "" -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:100 -#: AppTools/ToolCalculators.py:167 +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:100 +#: flatcamTools/ToolCalculators.py:167 msgid "Board Length" msgstr "" -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:102 -#: AppTools/ToolCalculators.py:173 +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:102 +#: flatcamTools/ToolCalculators.py:173 msgid "This is the board length. In centimeters." msgstr "" -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:112 -#: AppTools/ToolCalculators.py:175 +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:112 +#: flatcamTools/ToolCalculators.py:175 msgid "Board Width" msgstr "" -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:114 -#: AppTools/ToolCalculators.py:181 +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:114 +#: flatcamTools/ToolCalculators.py:181 msgid "This is the board width.In centimeters." msgstr "" -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:119 -#: AppTools/ToolCalculators.py:183 +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:119 +#: flatcamTools/ToolCalculators.py:183 msgid "Current Density" msgstr "" -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:125 -#: AppTools/ToolCalculators.py:190 +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:125 +#: flatcamTools/ToolCalculators.py:190 msgid "" "Current density to pass through the board. \n" "In Amps per Square Feet ASF." msgstr "" -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:131 -#: AppTools/ToolCalculators.py:193 +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:131 +#: flatcamTools/ToolCalculators.py:193 msgid "Copper Growth" msgstr "" -#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:137 -#: AppTools/ToolCalculators.py:200 +#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:137 +#: flatcamTools/ToolCalculators.py:200 msgid "" "How thick the copper growth is intended to be.\n" "In microns." msgstr "" -#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:27 -msgid "Corner Markers Options" -msgstr "" - -#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:44 AppTools/ToolCorners.py:124 -msgid "The thickness of the line that makes the corner marker." -msgstr "" - -#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:58 AppTools/ToolCorners.py:138 -msgid "The length of the line that makes the corner marker." -msgstr "" - -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:28 +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:28 msgid "Cutout Tool Options" msgstr "" -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:34 -msgid "" -"Create toolpaths to cut around\n" -"the PCB and separate it from\n" -"the original board." -msgstr "" - -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:43 AppTools/ToolCalculators.py:123 -#: AppTools/ToolCutOut.py:129 +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:43 +#: flatcamTools/ToolCalculators.py:123 flatcamTools/ToolCutOut.py:129 msgid "Tool Diameter" msgstr "" -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:45 AppTools/ToolCutOut.py:131 +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:45 flatcamTools/ToolCutOut.py:131 msgid "" "Diameter of the tool used to cutout\n" "the PCB shape out of the surrounding material." msgstr "" -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:100 +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:100 msgid "Object kind" msgstr "" -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:102 AppTools/ToolCutOut.py:77 +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:102 flatcamTools/ToolCutOut.py:77 msgid "" "Choice of what kind the object we want to cutout is.
    - Single: contain a single " "PCB Gerber outline object.
    - Panel: a panel PCB Gerber object, which is made\n" "out of many individual PCB outlines." msgstr "" -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:109 AppTools/ToolCutOut.py:83 +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:109 flatcamTools/ToolCutOut.py:83 msgid "Single" msgstr "" -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:110 AppTools/ToolCutOut.py:84 +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:110 flatcamTools/ToolCutOut.py:84 msgid "Panel" msgstr "" -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:117 AppTools/ToolCutOut.py:192 +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:117 flatcamTools/ToolCutOut.py:192 msgid "" "Margin over bounds. A positive value here\n" "will make the cutout of the PCB further from\n" "the actual PCB border" msgstr "" -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:130 AppTools/ToolCutOut.py:203 +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:130 flatcamTools/ToolCutOut.py:203 msgid "Gap size" msgstr "" -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:132 AppTools/ToolCutOut.py:205 +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:132 flatcamTools/ToolCutOut.py:205 msgid "" "The size of the bridge gaps in the cutout\n" "used to keep the board connected to\n" @@ -9197,11 +10766,11 @@ msgid "" "from which the PCB is cutout)." msgstr "" -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:146 AppTools/ToolCutOut.py:245 +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:146 flatcamTools/ToolCutOut.py:245 msgid "Gaps" msgstr "" -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:148 +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:148 msgid "" "Number of gaps used for the cutout.\n" "There can be maximum 8 bridges/gaps.\n" @@ -9215,31 +10784,32 @@ msgid "" "- 8 - 2*left + 2*right +2*top + 2*bottom" msgstr "" -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:170 AppTools/ToolCutOut.py:222 +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:170 flatcamTools/ToolCutOut.py:222 msgid "Convex Shape" msgstr "" -#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:172 AppTools/ToolCutOut.py:225 +#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:172 flatcamTools/ToolCutOut.py:225 msgid "" "Create a convex shape surrounding the entire PCB.\n" "Used only if the source object type is Gerber." msgstr "" -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:27 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:27 msgid "Film Tool Options" msgstr "" -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:33 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:33 msgid "" -"Create a PCB film from a Gerber or Geometry object.\n" +"Create a PCB film from a Gerber or Geometry\n" +"FlatCAM object.\n" "The file is saved in SVG format." msgstr "" -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:43 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:44 msgid "Film Type" msgstr "" -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:45 AppTools/ToolFilm.py:283 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:46 flatcamTools/ToolFilm.py:300 msgid "" "Generate a Positive black film or a Negative film.\n" "Positive means that it will print the features\n" @@ -9249,19 +10819,19 @@ msgid "" "The Film format is SVG." msgstr "" -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:56 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:57 msgid "Film Color" msgstr "" -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:58 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:59 msgid "Set the film color when positive film is selected." msgstr "" -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:71 AppTools/ToolFilm.py:299 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:82 flatcamTools/ToolFilm.py:316 msgid "Border" msgstr "" -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:73 AppTools/ToolFilm.py:301 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:84 flatcamTools/ToolFilm.py:318 msgid "" "Specify a border around the object.\n" "Only for negative film.\n" @@ -9273,126 +10843,124 @@ msgid "" "surroundings if not for this border." msgstr "" -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:90 AppTools/ToolFilm.py:266 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:101 flatcamTools/ToolFilm.py:283 msgid "Scale Stroke" msgstr "" -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:92 AppTools/ToolFilm.py:268 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:103 flatcamTools/ToolFilm.py:285 msgid "" "Scale the line stroke thickness of each feature in the SVG file.\n" "It means that the line that envelope each SVG feature will be thicker or thinner,\n" "therefore the fine features may be more affected by this parameter." msgstr "" -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:99 AppTools/ToolFilm.py:124 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:110 flatcamTools/ToolFilm.py:141 msgid "Film Adjustments" msgstr "" -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:101 AppTools/ToolFilm.py:126 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:112 flatcamTools/ToolFilm.py:143 msgid "" "Sometime the printers will distort the print shape, especially the Laser types.\n" "This section provide the tools to compensate for the print distortions." msgstr "" -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:108 AppTools/ToolFilm.py:133 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:119 flatcamTools/ToolFilm.py:150 msgid "Scale Film geometry" msgstr "" -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:110 AppTools/ToolFilm.py:135 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:121 flatcamTools/ToolFilm.py:152 msgid "" "A value greater than 1 will stretch the film\n" "while a value less than 1 will jolt it." msgstr "" -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:120 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:103 AppTools/ToolFilm.py:145 -#: AppTools/ToolTransform.py:148 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:131 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:103 +#: flatcamTools/ToolFilm.py:162 flatcamTools/ToolTransform.py:148 msgid "X factor" msgstr "" -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:129 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:116 AppTools/ToolFilm.py:154 -#: AppTools/ToolTransform.py:168 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:140 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:116 +#: flatcamTools/ToolFilm.py:171 flatcamTools/ToolTransform.py:168 msgid "Y factor" msgstr "" -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:139 AppTools/ToolFilm.py:172 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:150 flatcamTools/ToolFilm.py:189 msgid "Skew Film geometry" msgstr "" -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:141 AppTools/ToolFilm.py:174 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:152 flatcamTools/ToolFilm.py:191 msgid "" "Positive values will skew to the right\n" "while negative values will skew to the left." msgstr "" -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:151 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:72 AppTools/ToolFilm.py:184 -#: AppTools/ToolTransform.py:97 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:162 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:72 flatcamTools/ToolFilm.py:201 +#: flatcamTools/ToolTransform.py:97 msgid "X angle" msgstr "" -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:160 -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:86 AppTools/ToolFilm.py:193 -#: AppTools/ToolTransform.py:118 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:171 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:86 flatcamTools/ToolFilm.py:210 +#: flatcamTools/ToolTransform.py:118 msgid "Y angle" msgstr "" -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:171 AppTools/ToolFilm.py:204 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:182 flatcamTools/ToolFilm.py:221 msgid "" "The reference point to be used as origin for the skew.\n" "It can be one of the four points of the geometry bounding box." msgstr "" -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:174 AppTools/ToolCorners.py:80 -#: AppTools/ToolFiducials.py:83 AppTools/ToolFilm.py:207 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:185 flatcamTools/ToolFiducials.py:87 +#: flatcamTools/ToolFilm.py:224 msgid "Bottom Left" msgstr "" -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:175 AppTools/ToolCorners.py:88 -#: AppTools/ToolFilm.py:208 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:186 flatcamTools/ToolFilm.py:225 msgid "Top Left" msgstr "" -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:176 AppTools/ToolCorners.py:84 -#: AppTools/ToolFilm.py:209 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:187 flatcamTools/ToolFilm.py:226 msgid "Bottom Right" msgstr "" -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:177 AppTools/ToolFilm.py:210 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:188 flatcamTools/ToolFilm.py:227 msgid "Top right" msgstr "" -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:185 AppTools/ToolFilm.py:227 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:196 flatcamTools/ToolFilm.py:244 msgid "Mirror Film geometry" msgstr "" -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:187 AppTools/ToolFilm.py:229 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:198 flatcamTools/ToolFilm.py:246 msgid "Mirror the film geometry on the selected axis or on both." msgstr "" -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:201 AppTools/ToolFilm.py:243 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:212 flatcamTools/ToolFilm.py:260 msgid "Mirror axis" msgstr "" -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:211 AppTools/ToolFilm.py:388 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:222 flatcamTools/ToolFilm.py:405 msgid "SVG" msgstr "" -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:212 AppTools/ToolFilm.py:389 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:223 flatcamTools/ToolFilm.py:406 msgid "PNG" msgstr "" -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:213 AppTools/ToolFilm.py:390 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:224 flatcamTools/ToolFilm.py:407 msgid "PDF" msgstr "" -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:216 AppTools/ToolFilm.py:281 -#: AppTools/ToolFilm.py:393 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:227 flatcamTools/ToolFilm.py:298 +#: flatcamTools/ToolFilm.py:410 msgid "Film Type:" msgstr "" -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:218 AppTools/ToolFilm.py:395 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:229 flatcamTools/ToolFilm.py:412 msgid "" "The file type of the saved film. Can be:\n" "- 'SVG' -> open-source vectorial format\n" @@ -9400,41 +10968,72 @@ msgid "" "- 'PDF' -> portable document format" msgstr "" -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:227 AppTools/ToolFilm.py:404 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:238 flatcamTools/ToolFilm.py:421 msgid "Page Orientation" msgstr "" -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:240 AppTools/ToolFilm.py:417 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:251 flatcamTools/ToolFilm.py:434 msgid "Page Size" msgstr "" -#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:241 AppTools/ToolFilm.py:418 +#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:252 flatcamTools/ToolFilm.py:435 msgid "A selection of standard ISO 216 page sizes." msgstr "" -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:26 -msgid "Isolation Tool Options" +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:27 +msgid "NCC Tool Options" msgstr "" -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:48 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:49 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:57 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:49 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:57 msgid "Comma separated values" msgstr "" -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:54 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:156 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:142 AppTools/ToolIsolation.py:166 -#: AppTools/ToolNCC.py:174 AppTools/ToolPaint.py:157 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:55 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:63 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:64 flatcamTools/ToolNCC.py:215 +#: flatcamTools/ToolNCC.py:223 flatcamTools/ToolPaint.py:198 flatcamTools/ToolPaint.py:206 +msgid "" +"Default tool type:\n" +"- 'V-shape'\n" +"- Circular" +msgstr "" + +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:60 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:69 flatcamTools/ToolNCC.py:220 +#: flatcamTools/ToolPaint.py:203 +msgid "V-shape" +msgstr "" + +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:100 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:109 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:107 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:116 flatcamTools/ToolNCC.py:262 +#: flatcamTools/ToolNCC.py:271 flatcamTools/ToolPaint.py:245 flatcamTools/ToolPaint.py:254 +msgid "" +"Depth of cut into material. Negative value.\n" +"In FlatCAM units." +msgstr "" + +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:119 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:125 flatcamTools/ToolNCC.py:280 +#: flatcamTools/ToolPaint.py:263 +msgid "" +"Diameter for the new tool to add in the Tool Table.\n" +"If the tool is V-shape type then this value is automatically\n" +"calculated from the other parameters." +msgstr "" + +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:156 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:142 flatcamTools/ToolNCC.py:174 +#: flatcamTools/ToolPaint.py:158 msgid "Tool order" msgstr "" -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:55 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:157 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:167 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:143 AppTools/ToolIsolation.py:167 -#: AppTools/ToolNCC.py:175 AppTools/ToolNCC.py:185 AppTools/ToolPaint.py:158 -#: AppTools/ToolPaint.py:168 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:157 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:167 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:143 flatcamTools/ToolNCC.py:175 +#: flatcamTools/ToolNCC.py:185 flatcamTools/ToolPaint.py:159 flatcamTools/ToolPaint.py:169 msgid "" "This set the way that the tools in the tools table are used.\n" "'No' --> means that the used order is the one in the tool table\n" @@ -9445,166 +11044,23 @@ msgid "" "in reverse and disable this control." msgstr "" -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:63 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:165 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:151 AppTools/ToolIsolation.py:175 -#: AppTools/ToolNCC.py:183 AppTools/ToolPaint.py:166 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:165 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:151 flatcamTools/ToolNCC.py:183 +#: flatcamTools/ToolPaint.py:167 msgid "Forward" msgstr "" -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:64 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:166 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:152 AppTools/ToolIsolation.py:176 -#: AppTools/ToolNCC.py:184 AppTools/ToolPaint.py:167 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:166 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:152 flatcamTools/ToolNCC.py:184 +#: flatcamTools/ToolPaint.py:168 msgid "Reverse" msgstr "" -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:72 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:80 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:55 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:63 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:64 AppTools/ToolIsolation.py:201 -#: AppTools/ToolIsolation.py:209 AppTools/ToolNCC.py:215 AppTools/ToolNCC.py:223 -#: AppTools/ToolPaint.py:197 AppTools/ToolPaint.py:205 -msgid "" -"Default tool type:\n" -"- 'V-shape'\n" -"- Circular" -msgstr "" - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:77 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:60 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:69 AppTools/ToolIsolation.py:206 -#: AppTools/ToolNCC.py:220 AppTools/ToolPaint.py:202 -msgid "V-shape" -msgstr "" - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:103 -msgid "" -"The tip angle for V-Shape Tool.\n" -"In degrees." -msgstr "" - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:117 -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:126 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:100 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:109 AppTools/ToolIsolation.py:248 -#: AppTools/ToolNCC.py:262 AppTools/ToolNCC.py:271 AppTools/ToolPaint.py:244 -#: AppTools/ToolPaint.py:253 -msgid "" -"Depth of cut into material. Negative value.\n" -"In FlatCAM units." -msgstr "" - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:136 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:119 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:125 AppTools/ToolIsolation.py:262 -#: AppTools/ToolNCC.py:280 AppTools/ToolPaint.py:262 -msgid "" -"Diameter for the new tool to add in the Tool Table.\n" -"If the tool is V-shape type then this value is automatically\n" -"calculated from the other parameters." -msgstr "" - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:243 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:288 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:244 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:245 AppTools/ToolIsolation.py:432 -#: AppTools/ToolNCC.py:512 AppTools/ToolPaint.py:441 -msgid "Rest" -msgstr "" - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:246 AppTools/ToolIsolation.py:435 -msgid "" -"If checked, use 'rest machining'.\n" -"Basically it will isolate outside PCB features,\n" -"using the biggest tool and continue with the next tools,\n" -"from bigger to smaller, to isolate the copper features that\n" -"could not be cleared by previous tool, until there is\n" -"no more copper features to isolate or there are no more tools.\n" -"If not checked, use the standard algorithm." -msgstr "" - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:258 AppTools/ToolIsolation.py:447 -msgid "Combine" -msgstr "" - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:260 AppTools/ToolIsolation.py:449 -msgid "Combine all passes into one object" -msgstr "" - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:267 AppTools/ToolIsolation.py:456 -msgid "Except" -msgstr "" - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:268 AppTools/ToolIsolation.py:457 -msgid "" -"When the isolation geometry is generated,\n" -"by checking this, the area of the object below\n" -"will be subtracted from the isolation geometry." -msgstr "" - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:277 AppTools/ToolIsolation.py:496 -msgid "" -"Isolation scope. Choose what to isolate:\n" -"- 'All' -> Isolate all the polygons in the object\n" -"- 'Area Selection' -> Isolate polygons within a selection area.\n" -"- 'Polygon Selection' -> Isolate a selection of polygons.\n" -"- 'Reference Object' - will process the area specified by another object." -msgstr "" - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:285 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280 AppTools/ToolIsolation.py:504 -#: AppTools/ToolIsolation.py:1308 AppTools/ToolIsolation.py:1690 AppTools/ToolPaint.py:485 -#: AppTools/ToolPaint.py:941 AppTools/ToolPaint.py:1451 tclCommands/TclCommandPaint.py:164 -msgid "Polygon Selection" -msgstr "" - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:310 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:339 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:303 -msgid "Normal" -msgstr "" - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:311 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:340 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:304 -msgid "Progressive" -msgstr "" - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:312 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:341 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:305 AppObjects/AppObject.py:349 -#: AppObjects/FlatCAMObj.py:251 AppObjects/FlatCAMObj.py:282 AppObjects/FlatCAMObj.py:298 -#: AppObjects/FlatCAMObj.py:378 AppTools/ToolCopperThieving.py:1491 -#: AppTools/ToolCorners.py:411 AppTools/ToolFiducials.py:813 AppTools/ToolMove.py:229 -#: AppTools/ToolQRCode.py:737 App_Main.py:4397 -msgid "Plotting" -msgstr "" - -#: AppGUI/preferences/tools/ToolsISOPrefGroupUI.py:314 -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:343 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:307 -msgid "" -"- 'Normal' - normal plotting, done at the end of the job\n" -"- 'Progressive' - each shape is plotted after it is generated" -msgstr "" - -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:27 -msgid "NCC Tool Options" -msgstr "" - -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:33 -msgid "" -"Create a Geometry object with\n" -"toolpaths to cut all non-copper regions." -msgstr "" - -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:266 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:266 msgid "Offset value" msgstr "" -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:268 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:268 msgid "" "If used, it will add an offset to the copper features.\n" "The copper clearing will finish to a distance\n" @@ -9612,7 +11068,14 @@ msgid "" "The value can be between 0.0 and 9999.9 FlatCAM units." msgstr "" -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:290 AppTools/ToolNCC.py:516 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:288 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:244 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:245 flatcamTools/ToolNCC.py:512 +#: flatcamTools/ToolPaint.py:442 +msgid "Rest Machining" +msgstr "" + +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:290 flatcamTools/ToolNCC.py:516 msgid "" "If checked, use 'rest machining'.\n" "Basically it will clear copper outside PCB features,\n" @@ -9623,7 +11086,7 @@ msgid "" "If not checked, use the standard algorithm." msgstr "" -#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:313 AppTools/ToolNCC.py:541 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:313 flatcamTools/ToolNCC.py:541 msgid "" "Selection of area to be processed.\n" "- 'Itself' - the processing extent is based on the object that is processed.\n" @@ -9631,22 +11094,35 @@ msgid "" "- 'Reference Object' - will process the area specified by another object." msgstr "" -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:27 +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:339 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:303 +msgid "Normal" +msgstr "" + +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:340 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:304 +msgid "Progressive" +msgstr "" + +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:341 +msgid "NCC Plotting" +msgstr "" + +#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:343 +msgid "" +"- 'Normal' - normal plotting, done at the end of the NCC job\n" +"- 'Progressive' - after each shape is generated it will be plotted." +msgstr "" + +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:27 msgid "Paint Tool Options" msgstr "" -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:33 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:33 msgid "Parameters:" msgstr "" -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:107 -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:116 -msgid "" -"Depth of cut into material. Negative value.\n" -"In application units." -msgstr "" - -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:247 AppTools/ToolPaint.py:444 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:247 flatcamTools/ToolPaint.py:445 msgid "" "If checked, use 'rest machining'.\n" "Basically it will clear copper outside PCB features,\n" @@ -9658,7 +11134,7 @@ msgid "" "If not checked, use the standard algorithm." msgstr "" -#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:260 AppTools/ToolPaint.py:457 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:260 flatcamTools/ToolPaint.py:458 msgid "" "Selection of area to be processed.\n" "- 'Polygon Selection' - left mouse click to add/remove polygons to be processed.\n" @@ -9668,88 +11144,100 @@ msgid "" "- 'Reference Object' - will process the area specified by another object." msgstr "" -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:27 +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280 flatcamTools/ToolPaint.py:486 +#: flatcamTools/ToolPaint.py:942 flatcamTools/ToolPaint.py:1432 +#: tclCommands/TclCommandPaint.py:164 +msgid "Polygon Selection" +msgstr "" + +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:305 +msgid "Paint Plotting" +msgstr "" + +#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:307 +msgid "" +"- 'Normal' - normal plotting, done at the end of the Paint job\n" +"- 'Progressive' - after each shape is generated it will be plotted." +msgstr "" + +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:27 msgid "Panelize Tool Options" msgstr "" -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:33 +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:33 msgid "" "Create an object that contains an array of (x, y) elements,\n" "each element is a copy of the source object spaced\n" "at a X distance, Y distance of each other." msgstr "" -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:50 AppTools/ToolPanelize.py:165 +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:50 +#: flatcamTools/ToolPanelize.py:163 msgid "Spacing cols" msgstr "" -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:52 AppTools/ToolPanelize.py:167 +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:52 +#: flatcamTools/ToolPanelize.py:165 msgid "" "Spacing between columns of the desired panel.\n" "In current units." msgstr "" -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:64 AppTools/ToolPanelize.py:177 +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:64 +#: flatcamTools/ToolPanelize.py:175 msgid "Spacing rows" msgstr "" -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:66 AppTools/ToolPanelize.py:179 +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:66 +#: flatcamTools/ToolPanelize.py:177 msgid "" "Spacing between rows of the desired panel.\n" "In current units." msgstr "" -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:77 AppTools/ToolPanelize.py:188 +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:77 +#: flatcamTools/ToolPanelize.py:186 msgid "Columns" msgstr "" -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:79 AppTools/ToolPanelize.py:190 +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:79 +#: flatcamTools/ToolPanelize.py:188 msgid "Number of columns of the desired panel" msgstr "" -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:89 AppTools/ToolPanelize.py:198 +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:89 +#: flatcamTools/ToolPanelize.py:196 msgid "Rows" msgstr "" -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:91 AppTools/ToolPanelize.py:200 +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:91 +#: flatcamTools/ToolPanelize.py:198 msgid "Number of rows of the desired panel" msgstr "" -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:97 AppTools/ToolAlignObjects.py:73 -#: AppTools/ToolAlignObjects.py:109 AppTools/ToolCalibration.py:196 -#: AppTools/ToolCalibration.py:631 AppTools/ToolCalibration.py:648 -#: AppTools/ToolCalibration.py:807 AppTools/ToolCalibration.py:815 -#: AppTools/ToolCopperThieving.py:148 AppTools/ToolCopperThieving.py:162 -#: AppTools/ToolCopperThieving.py:608 AppTools/ToolCutOut.py:91 AppTools/ToolDblSided.py:224 -#: AppTools/ToolFilm.py:68 AppTools/ToolFilm.py:91 AppTools/ToolImage.py:49 -#: AppTools/ToolImage.py:252 AppTools/ToolImage.py:273 AppTools/ToolIsolation.py:465 -#: AppTools/ToolIsolation.py:517 AppTools/ToolIsolation.py:1281 AppTools/ToolNCC.py:96 -#: AppTools/ToolNCC.py:558 AppTools/ToolNCC.py:1318 AppTools/ToolPaint.py:501 -#: AppTools/ToolPaint.py:705 AppTools/ToolPanelize.py:116 AppTools/ToolPanelize.py:210 -#: AppTools/ToolPanelize.py:385 AppTools/ToolPanelize.py:402 -msgid "Gerber" -msgstr "" - -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:98 AppTools/ToolPanelize.py:211 +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:98 +#: flatcamTools/ToolPanelize.py:205 msgid "Geo" msgstr "" -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:99 AppTools/ToolPanelize.py:212 +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:99 +#: flatcamTools/ToolPanelize.py:206 msgid "Panel Type" msgstr "" -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:101 +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:101 msgid "" "Choose the type of object for the panel object:\n" "- Gerber\n" "- Geometry" msgstr "" -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:110 +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:110 msgid "Constrain within" msgstr "" -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:112 AppTools/ToolPanelize.py:224 +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:112 +#: flatcamTools/ToolPanelize.py:218 msgid "" "Area define by DX and DY within to constrain the panel.\n" "DX and DY values are in current units.\n" @@ -9758,225 +11246,233 @@ msgid "" "they fit completely within selected area." msgstr "" -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:125 AppTools/ToolPanelize.py:236 +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:125 +#: flatcamTools/ToolPanelize.py:230 msgid "Width (DX)" msgstr "" -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:127 AppTools/ToolPanelize.py:238 +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:127 +#: flatcamTools/ToolPanelize.py:232 msgid "" "The width (DX) within which the panel must fit.\n" "In current units." msgstr "" -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:138 AppTools/ToolPanelize.py:247 +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:138 +#: flatcamTools/ToolPanelize.py:241 msgid "Height (DY)" msgstr "" -#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:140 AppTools/ToolPanelize.py:249 +#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:140 +#: flatcamTools/ToolPanelize.py:243 msgid "" "The height (DY)within which the panel must fit.\n" "In current units." msgstr "" -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:27 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:27 msgid "SolderPaste Tool Options" msgstr "" -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:33 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:33 msgid "" "A tool to create GCode for dispensing\n" "solder paste onto a PCB." msgstr "" -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:54 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:54 msgid "New Nozzle Dia" msgstr "" -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:56 -#: AppTools/ToolSolderPaste.py:112 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:56 +#: flatcamTools/ToolSolderPaste.py:107 msgid "Diameter for the new Nozzle tool to add in the Tool Table" msgstr "" -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:72 -#: AppTools/ToolSolderPaste.py:179 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:72 +#: flatcamTools/ToolSolderPaste.py:183 msgid "Z Dispense Start" msgstr "" -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:74 -#: AppTools/ToolSolderPaste.py:181 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:74 +#: flatcamTools/ToolSolderPaste.py:185 msgid "The height (Z) when solder paste dispensing starts." msgstr "" -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:85 -#: AppTools/ToolSolderPaste.py:191 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:85 +#: flatcamTools/ToolSolderPaste.py:195 msgid "Z Dispense" msgstr "" -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:87 -#: AppTools/ToolSolderPaste.py:193 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:87 +#: flatcamTools/ToolSolderPaste.py:197 msgid "The height (Z) when doing solder paste dispensing." msgstr "" -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:98 -#: AppTools/ToolSolderPaste.py:203 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:98 +#: flatcamTools/ToolSolderPaste.py:207 msgid "Z Dispense Stop" msgstr "" -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:100 -#: AppTools/ToolSolderPaste.py:205 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:100 +#: flatcamTools/ToolSolderPaste.py:209 msgid "The height (Z) when solder paste dispensing stops." msgstr "" -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:111 -#: AppTools/ToolSolderPaste.py:215 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:111 +#: flatcamTools/ToolSolderPaste.py:219 msgid "Z Travel" msgstr "" -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:113 -#: AppTools/ToolSolderPaste.py:217 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:113 +#: flatcamTools/ToolSolderPaste.py:221 msgid "" "The height (Z) for travel between pads\n" "(without dispensing solder paste)." msgstr "" -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:125 -#: AppTools/ToolSolderPaste.py:228 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:125 +#: flatcamTools/ToolSolderPaste.py:232 msgid "Z Toolchange" msgstr "" -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:127 -#: AppTools/ToolSolderPaste.py:230 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:127 +#: flatcamTools/ToolSolderPaste.py:234 msgid "The height (Z) for tool (nozzle) change." msgstr "" -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:136 -#: AppTools/ToolSolderPaste.py:238 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:136 +#: flatcamTools/ToolSolderPaste.py:242 msgid "" "The X,Y location for tool (nozzle) change.\n" "The format is (x, y) where x and y are real numbers." msgstr "" -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:150 -#: AppTools/ToolSolderPaste.py:251 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:150 +#: flatcamTools/ToolSolderPaste.py:255 msgid "Feedrate (speed) while moving on the X-Y plane." msgstr "" -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:163 -#: AppTools/ToolSolderPaste.py:263 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:163 +#: flatcamTools/ToolSolderPaste.py:267 msgid "" "Feedrate (speed) while moving vertically\n" "(on Z plane)." msgstr "" -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:175 -#: AppTools/ToolSolderPaste.py:274 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:175 +#: flatcamTools/ToolSolderPaste.py:278 msgid "Feedrate Z Dispense" msgstr "" -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:177 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:177 msgid "" "Feedrate (speed) while moving up vertically\n" "to Dispense position (on Z plane)." msgstr "" -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:188 -#: AppTools/ToolSolderPaste.py:286 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:188 +#: flatcamTools/ToolSolderPaste.py:290 msgid "Spindle Speed FWD" msgstr "" -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:190 -#: AppTools/ToolSolderPaste.py:288 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:190 +#: flatcamTools/ToolSolderPaste.py:292 msgid "" "The dispenser speed while pushing solder paste\n" "through the dispenser nozzle." msgstr "" -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:202 -#: AppTools/ToolSolderPaste.py:299 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:202 +#: flatcamTools/ToolSolderPaste.py:303 msgid "Dwell FWD" msgstr "" -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:204 -#: AppTools/ToolSolderPaste.py:301 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:204 +#: flatcamTools/ToolSolderPaste.py:305 msgid "Pause after solder dispensing." msgstr "" -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:214 -#: AppTools/ToolSolderPaste.py:310 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:214 +#: flatcamTools/ToolSolderPaste.py:314 msgid "Spindle Speed REV" msgstr "" -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:216 -#: AppTools/ToolSolderPaste.py:312 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:216 +#: flatcamTools/ToolSolderPaste.py:316 msgid "" "The dispenser speed while retracting solder paste\n" "through the dispenser nozzle." msgstr "" -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:228 -#: AppTools/ToolSolderPaste.py:323 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:228 +#: flatcamTools/ToolSolderPaste.py:327 msgid "Dwell REV" msgstr "" -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:230 -#: AppTools/ToolSolderPaste.py:325 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:230 +#: flatcamTools/ToolSolderPaste.py:329 msgid "" "Pause after solder paste dispenser retracted,\n" "to allow pressure equilibrium." msgstr "" -#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:239 -#: AppTools/ToolSolderPaste.py:333 +#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:239 +#: flatcamTools/ToolSolderPaste.py:337 msgid "Files that control the GCode generation." msgstr "" -#: AppGUI/preferences/tools/ToolsSubPrefGroupUI.py:27 +#: flatcamGUI/preferences/tools/ToolsSubPrefGroupUI.py:27 msgid "Substractor Tool Options" msgstr "" -#: AppGUI/preferences/tools/ToolsSubPrefGroupUI.py:33 +#: flatcamGUI/preferences/tools/ToolsSubPrefGroupUI.py:33 msgid "" "A tool to substract one Gerber or Geometry object\n" "from another of the same type." msgstr "" -#: AppGUI/preferences/tools/ToolsSubPrefGroupUI.py:38 AppTools/ToolSub.py:160 +#: flatcamGUI/preferences/tools/ToolsSubPrefGroupUI.py:38 flatcamTools/ToolSub.py:155 msgid "Close paths" msgstr "" -#: AppGUI/preferences/tools/ToolsSubPrefGroupUI.py:39 +#: flatcamGUI/preferences/tools/ToolsSubPrefGroupUI.py:39 msgid "Checking this will close the paths cut by the Geometry substractor object." msgstr "" -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:27 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:27 msgid "Transform Tool Options" msgstr "" -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:33 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:33 msgid "" "Various transformations that can be applied\n" -"on a application object." +"on a FlatCAM object." msgstr "" -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:64 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:64 msgid "Skew" msgstr "" -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:105 AppTools/ToolTransform.py:150 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:105 +#: flatcamTools/ToolTransform.py:150 msgid "Factor for scaling on X axis." msgstr "" -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:118 AppTools/ToolTransform.py:170 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:118 +#: flatcamTools/ToolTransform.py:170 msgid "Factor for scaling on Y axis." msgstr "" -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:126 AppTools/ToolTransform.py:191 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:126 +#: flatcamTools/ToolTransform.py:191 msgid "" "Scale the selected object(s)\n" "using the Scale_X factor for both axis." msgstr "" -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:134 AppTools/ToolTransform.py:198 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:134 +#: flatcamTools/ToolTransform.py:198 msgid "" "Scale the selected object(s)\n" "using the origin reference when checked,\n" @@ -9984,32 +11480,39 @@ msgid "" "of the selected objects when unchecked." msgstr "" -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:150 AppTools/ToolTransform.py:217 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:150 +#: flatcamTools/ToolTransform.py:217 msgid "X val" msgstr "" -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:152 AppTools/ToolTransform.py:219 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:152 +#: flatcamTools/ToolTransform.py:219 msgid "Distance to offset on X axis. In current units." msgstr "" -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:163 AppTools/ToolTransform.py:237 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:163 +#: flatcamTools/ToolTransform.py:237 msgid "Y val" msgstr "" -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:165 AppTools/ToolTransform.py:239 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:165 +#: flatcamTools/ToolTransform.py:239 msgid "Distance to offset on Y axis. In current units." msgstr "" -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:171 AppTools/ToolDblSided.py:67 -#: AppTools/ToolDblSided.py:95 AppTools/ToolDblSided.py:125 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:171 +#: flatcamTools/ToolDblSided.py:67 flatcamTools/ToolDblSided.py:95 +#: flatcamTools/ToolDblSided.py:125 msgid "Mirror" msgstr "" -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:175 AppTools/ToolTransform.py:283 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:175 +#: flatcamTools/ToolTransform.py:283 msgid "Mirror Reference" msgstr "" -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:177 AppTools/ToolTransform.py:285 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:177 +#: flatcamTools/ToolTransform.py:285 msgid "" "Flip the selected object(s)\n" "around the point in Point Entry Field.\n" @@ -10022,23 +11525,25 @@ msgid "" "Point Entry field and click Flip on X(Y)" msgstr "" -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:188 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:188 msgid "Mirror Reference point" msgstr "" -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:190 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:190 msgid "" "Coordinates in format (x, y) used as reference for mirroring.\n" "The 'x' in (x, y) will be used when using Flip on X and\n" "the 'y' in (x, y) will be used when using Flip on Y and" msgstr "" -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:203 AppTools/ToolDistance.py:505 -#: AppTools/ToolDistanceMin.py:286 AppTools/ToolTransform.py:332 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:203 +#: flatcamTools/ToolDistance.py:496 flatcamTools/ToolDistanceMin.py:287 +#: flatcamTools/ToolTransform.py:332 msgid "Distance" msgstr "" -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:205 AppTools/ToolTransform.py:334 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:205 +#: flatcamTools/ToolTransform.py:334 msgid "" "A positive value will create the effect of dilation,\n" "while a negative value will create the effect of erosion.\n" @@ -10046,7 +11551,8 @@ msgid "" "or decreased with the 'distance'." msgstr "" -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:222 AppTools/ToolTransform.py:359 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:222 +#: flatcamTools/ToolTransform.py:359 msgid "" "A positive value will create the effect of dilation,\n" "while a negative value will create the effect of erosion.\n" @@ -10055,7 +11561,8 @@ msgid "" "of the initial dimension." msgstr "" -#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:241 AppTools/ToolTransform.py:385 +#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:241 +#: flatcamTools/ToolTransform.py:385 msgid "" "If checked then the buffer will surround the buffered shape,\n" "every corner will be rounded.\n" @@ -10063,30 +11570,37 @@ msgid "" "of the buffered shape." msgstr "" -#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:27 +#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:27 msgid "Autocompleter Keywords" msgstr "" -#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:30 -#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:40 -#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:30 -#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:30 +#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:30 +#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:40 +#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:30 +#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:30 msgid "Restore" msgstr "" -#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:31 +#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:31 msgid "Restore the autocompleter keywords list to the default state." msgstr "" -#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:33 +#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:32 +#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:42 +#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:32 +#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:32 +msgid "Delete All" +msgstr "" + +#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:33 msgid "Delete all autocompleter keywords from the list." msgstr "" -#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:41 +#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:41 msgid "Keywords list" msgstr "" -#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:43 +#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:43 msgid "" "List of keywords used by\n" "the autocompleter in FlatCAM.\n" @@ -10094,102 +11608,102 @@ msgid "" "in the Code Editor and for the Tcl Shell." msgstr "" -#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:64 -#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:73 -#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:63 -#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:62 +#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:64 +#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:73 +#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:63 +#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:62 msgid "Extension" msgstr "" -#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:65 +#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:65 msgid "A keyword to be added or deleted to the list." msgstr "" -#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:73 +#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:73 msgid "Add keyword" msgstr "" -#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:74 +#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:74 msgid "Add a keyword to the list" msgstr "" -#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:75 +#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:75 msgid "Delete keyword" msgstr "" -#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:76 +#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:76 msgid "Delete a keyword from the list" msgstr "" -#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:27 +#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:27 msgid "Excellon File associations" msgstr "" -#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:41 -#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:31 -#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:31 +#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:41 +#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:31 +#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:31 msgid "Restore the extension list to the default state." msgstr "" -#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:43 -#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:33 -#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:33 +#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:43 +#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:33 +#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:33 msgid "Delete all extensions from the list." msgstr "" -#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:51 -#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:41 -#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:41 +#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:51 +#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:41 +#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:41 msgid "Extensions list" msgstr "" -#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:53 -#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:43 -#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:43 +#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:53 +#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:43 +#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:43 msgid "" "List of file extensions to be\n" "associated with FlatCAM." msgstr "" -#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:74 -#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:64 -#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:63 +#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:74 +#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:64 +#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:63 msgid "A file extension to be added or deleted to the list." msgstr "" -#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:82 -#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:72 -#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:71 +#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:82 +#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:72 +#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:71 msgid "Add Extension" msgstr "" -#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:83 -#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:73 -#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:72 +#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:83 +#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:73 +#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:72 msgid "Add a file extension to the list" msgstr "" -#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:84 -#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:74 -#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:73 +#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:84 +#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:74 +#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:73 msgid "Delete Extension" msgstr "" -#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:85 -#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:75 -#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:74 +#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:85 +#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:75 +#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:74 msgid "Delete a file extension from the list" msgstr "" -#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:92 -#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:82 -#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:81 +#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:92 +#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:82 +#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:81 msgid "Apply Association" msgstr "" -#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:93 -#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:83 -#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:82 +#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:93 +#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:83 +#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:82 msgid "" "Apply the file associations between\n" "FlatCAM and the files with above extensions.\n" @@ -10197,227 +11711,181 @@ msgid "" "This work only in Windows." msgstr "" -#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:27 +#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:27 msgid "GCode File associations" msgstr "" -#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:27 +#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:27 msgid "Gerber File associations" msgstr "" -#: AppObjects/AppObject.py:134 -#, python-brace-format -msgid "" -"Object ({kind}) failed because: {error} \n" -"\n" -msgstr "" - -#: AppObjects/AppObject.py:149 -msgid "Converting units to " -msgstr "" - -#: AppObjects/AppObject.py:254 -msgid "CREATE A NEW FLATCAM TCL SCRIPT" -msgstr "" - -#: AppObjects/AppObject.py:255 -msgid "TCL Tutorial is here" -msgstr "" - -#: AppObjects/AppObject.py:257 -msgid "FlatCAM commands list" -msgstr "" - -#: AppObjects/AppObject.py:258 -msgid "" -"Type >help< followed by Run Code for a list of FlatCAM Tcl Commands (displayed in Tcl " -"Shell)." -msgstr "" - -#: AppObjects/AppObject.py:304 AppObjects/AppObject.py:310 AppObjects/AppObject.py:316 -#: AppObjects/AppObject.py:322 AppObjects/AppObject.py:328 AppObjects/AppObject.py:334 -msgid "created/selected" -msgstr "" - -#: AppObjects/FlatCAMCNCJob.py:429 AppObjects/FlatCAMDocument.py:71 -#: AppObjects/FlatCAMScript.py:82 +#: flatcamObjects/FlatCAMCNCJob.py:429 flatcamObjects/FlatCAMDocument.py:71 +#: flatcamObjects/FlatCAMScript.py:82 msgid "Basic" msgstr "" -#: AppObjects/FlatCAMCNCJob.py:435 AppObjects/FlatCAMDocument.py:75 -#: AppObjects/FlatCAMScript.py:86 +#: flatcamObjects/FlatCAMCNCJob.py:435 flatcamObjects/FlatCAMDocument.py:75 +#: flatcamObjects/FlatCAMScript.py:86 msgid "Advanced" msgstr "" -#: AppObjects/FlatCAMCNCJob.py:478 +#: flatcamObjects/FlatCAMCNCJob.py:478 msgid "Plotting..." msgstr "" -#: AppObjects/FlatCAMCNCJob.py:517 AppTools/ToolSolderPaste.py:1511 -msgid "Export cancelled ..." +#: flatcamObjects/FlatCAMCNCJob.py:507 flatcamObjects/FlatCAMCNCJob.py:512 +#: flatcamTools/ToolSolderPaste.py:1499 +msgid "Export Machine Code ..." msgstr "" -#: AppObjects/FlatCAMCNCJob.py:538 -msgid "File saved to" +#: flatcamObjects/FlatCAMCNCJob.py:517 flatcamTools/ToolSolderPaste.py:1503 +msgid "Export Machine Code cancelled ..." msgstr "" -#: AppObjects/FlatCAMCNCJob.py:548 AppObjects/FlatCAMScript.py:134 App_Main.py:7301 -msgid "Loading..." +#: flatcamObjects/FlatCAMCNCJob.py:538 +msgid "Machine Code file saved to" msgstr "" -#: AppObjects/FlatCAMCNCJob.py:562 App_Main.py:7398 -msgid "Code Editor" -msgstr "" - -#: AppObjects/FlatCAMCNCJob.py:599 AppTools/ToolCalibration.py:1097 +#: flatcamObjects/FlatCAMCNCJob.py:599 flatcamTools/ToolCalibration.py:1097 msgid "Loaded Machine Code into Code Editor" msgstr "" -#: AppObjects/FlatCAMCNCJob.py:740 +#: flatcamObjects/FlatCAMCNCJob.py:740 msgid "This CNCJob object can't be processed because it is a" msgstr "" -#: AppObjects/FlatCAMCNCJob.py:742 +#: flatcamObjects/FlatCAMCNCJob.py:742 msgid "CNCJob object" msgstr "" -#: AppObjects/FlatCAMCNCJob.py:922 +#: flatcamObjects/FlatCAMCNCJob.py:922 msgid "" "G-code does not have a G94 code and we will not include the code in the 'Prepend to " "GCode' text box" msgstr "" -#: AppObjects/FlatCAMCNCJob.py:933 +#: flatcamObjects/FlatCAMCNCJob.py:933 msgid "Cancelled. The Toolchange Custom code is enabled but it's empty." msgstr "" -#: AppObjects/FlatCAMCNCJob.py:938 +#: flatcamObjects/FlatCAMCNCJob.py:938 msgid "Toolchange G-code was replaced by a custom code." msgstr "" -#: AppObjects/FlatCAMCNCJob.py:986 AppObjects/FlatCAMCNCJob.py:995 +#: flatcamObjects/FlatCAMCNCJob.py:986 flatcamObjects/FlatCAMCNCJob.py:996 msgid "The used preprocessor file has to have in it's name: 'toolchange_custom'" msgstr "" -#: AppObjects/FlatCAMCNCJob.py:998 +#: flatcamObjects/FlatCAMCNCJob.py:999 msgid "There is no preprocessor file." msgstr "" -#: AppObjects/FlatCAMDocument.py:175 +#: flatcamObjects/FlatCAMDocument.py:175 msgid "Document Editor" msgstr "" -#: AppObjects/FlatCAMExcellon.py:537 AppObjects/FlatCAMExcellon.py:856 -#: AppObjects/FlatCAMGeometry.py:380 AppObjects/FlatCAMGeometry.py:861 -#: AppTools/ToolIsolation.py:1051 AppTools/ToolIsolation.py:1185 AppTools/ToolNCC.py:811 -#: AppTools/ToolNCC.py:1214 AppTools/ToolPaint.py:778 AppTools/ToolPaint.py:1190 +#: flatcamObjects/FlatCAMExcellon.py:514 flatcamObjects/FlatCAMExcellon.py:746 +#: flatcamObjects/FlatCAMGeometry.py:323 flatcamObjects/FlatCAMGeometry.py:795 +#: flatcamTools/ToolNCC.py:811 flatcamTools/ToolNCC.py:1196 flatcamTools/ToolPaint.py:779 +#: flatcamTools/ToolPaint.py:1171 msgid "Multiple Tools" msgstr "" -#: AppObjects/FlatCAMExcellon.py:836 +#: flatcamObjects/FlatCAMExcellon.py:726 msgid "No Tool Selected" msgstr "" -#: AppObjects/FlatCAMExcellon.py:1234 AppObjects/FlatCAMExcellon.py:1348 -#: AppObjects/FlatCAMExcellon.py:1535 +#: flatcamObjects/FlatCAMExcellon.py:1076 flatcamObjects/FlatCAMExcellon.py:1168 +#: flatcamObjects/FlatCAMExcellon.py:1355 msgid "Please select one or more tools from the list and try again." msgstr "" -#: AppObjects/FlatCAMExcellon.py:1241 +#: flatcamObjects/FlatCAMExcellon.py:1083 msgid "Milling tool for DRILLS is larger than hole size. Cancelled." msgstr "" -#: AppObjects/FlatCAMExcellon.py:1265 AppObjects/FlatCAMExcellon.py:1368 -#: AppObjects/FlatCAMExcellon.py:1553 tclCommands/TclCommandDrillcncjob.py:195 +#: flatcamObjects/FlatCAMExcellon.py:1098 flatcamObjects/FlatCAMExcellon.py:1188 +#: flatcamObjects/FlatCAMExcellon.py:1373 tclCommands/TclCommandDrillcncjob.py:193 msgid "Tool_nr" msgstr "" -#: AppObjects/FlatCAMExcellon.py:1265 AppObjects/FlatCAMExcellon.py:1368 -#: AppObjects/FlatCAMExcellon.py:1553 tclCommands/TclCommandDrillcncjob.py:195 +#: flatcamObjects/FlatCAMExcellon.py:1098 flatcamObjects/FlatCAMExcellon.py:1188 +#: flatcamObjects/FlatCAMExcellon.py:1373 tclCommands/TclCommandDrillcncjob.py:193 msgid "Drills_Nr" msgstr "" -#: AppObjects/FlatCAMExcellon.py:1265 AppObjects/FlatCAMExcellon.py:1368 -#: AppObjects/FlatCAMExcellon.py:1553 tclCommands/TclCommandDrillcncjob.py:195 +#: flatcamObjects/FlatCAMExcellon.py:1098 flatcamObjects/FlatCAMExcellon.py:1188 +#: flatcamObjects/FlatCAMExcellon.py:1373 tclCommands/TclCommandDrillcncjob.py:193 msgid "Slots_Nr" msgstr "" -#: AppObjects/FlatCAMExcellon.py:1357 +#: flatcamObjects/FlatCAMExcellon.py:1177 msgid "Milling tool for SLOTS is larger than hole size. Cancelled." msgstr "" -#: AppObjects/FlatCAMExcellon.py:1461 AppObjects/FlatCAMGeometry.py:1636 +#: flatcamObjects/FlatCAMExcellon.py:1281 flatcamObjects/FlatCAMGeometry.py:1571 msgid "Focus Z" msgstr "" -#: AppObjects/FlatCAMExcellon.py:1480 AppObjects/FlatCAMGeometry.py:1655 +#: flatcamObjects/FlatCAMExcellon.py:1300 flatcamObjects/FlatCAMGeometry.py:1590 msgid "Laser Power" msgstr "" -#: AppObjects/FlatCAMExcellon.py:1610 AppObjects/FlatCAMGeometry.py:2088 -#: AppObjects/FlatCAMGeometry.py:2092 AppObjects/FlatCAMGeometry.py:2243 +#: flatcamObjects/FlatCAMExcellon.py:1430 flatcamObjects/FlatCAMGeometry.py:2027 +#: flatcamObjects/FlatCAMGeometry.py:2031 flatcamObjects/FlatCAMGeometry.py:2176 msgid "Generating CNC Code" msgstr "" -#: AppObjects/FlatCAMExcellon.py:1663 AppObjects/FlatCAMGeometry.py:2553 -msgid "Delete failed. There are no exclusion areas to delete." -msgstr "" - -#: AppObjects/FlatCAMExcellon.py:1680 AppObjects/FlatCAMGeometry.py:2570 -msgid "Delete failed. Nothing is selected." -msgstr "" - -#: AppObjects/FlatCAMExcellon.py:1945 AppTools/ToolIsolation.py:1253 AppTools/ToolNCC.py:918 -#: AppTools/ToolPaint.py:843 +#: flatcamObjects/FlatCAMExcellon.py:1620 flatcamTools/ToolNCC.py:918 +#: flatcamTools/ToolPaint.py:844 msgid "Current Tool parameters were applied to all tools." msgstr "" -#: AppObjects/FlatCAMGeometry.py:124 AppObjects/FlatCAMGeometry.py:1298 -#: AppObjects/FlatCAMGeometry.py:1299 AppObjects/FlatCAMGeometry.py:1308 +#: flatcamObjects/FlatCAMGeometry.py:124 flatcamObjects/FlatCAMGeometry.py:1235 +#: flatcamObjects/FlatCAMGeometry.py:1236 flatcamObjects/FlatCAMGeometry.py:1245 msgid "Iso" msgstr "" -#: AppObjects/FlatCAMGeometry.py:124 AppObjects/FlatCAMGeometry.py:522 -#: AppObjects/FlatCAMGeometry.py:920 AppObjects/FlatCAMGerber.py:565 -#: AppObjects/FlatCAMGerber.py:708 AppTools/ToolCutOut.py:727 AppTools/ToolCutOut.py:923 -#: AppTools/ToolCutOut.py:1083 AppTools/ToolIsolation.py:1842 AppTools/ToolIsolation.py:1979 -#: AppTools/ToolIsolation.py:2150 +#: flatcamObjects/FlatCAMGeometry.py:124 flatcamObjects/FlatCAMGeometry.py:464 +#: flatcamObjects/FlatCAMGeometry.py:854 flatcamObjects/FlatCAMGerber.py:891 +#: flatcamObjects/FlatCAMGerber.py:1039 flatcamTools/ToolCutOut.py:690 +#: flatcamTools/ToolCutOut.py:886 flatcamTools/ToolCutOut.py:1046 msgid "Rough" msgstr "" -#: AppObjects/FlatCAMGeometry.py:124 +#: flatcamObjects/FlatCAMGeometry.py:124 msgid "Finish" msgstr "" -#: AppObjects/FlatCAMGeometry.py:557 +#: flatcamObjects/FlatCAMGeometry.py:499 msgid "Add from Tool DB" msgstr "" -#: AppObjects/FlatCAMGeometry.py:939 +#: flatcamObjects/FlatCAMGeometry.py:873 msgid "Tool added in Tool Table." msgstr "" -#: AppObjects/FlatCAMGeometry.py:1048 AppObjects/FlatCAMGeometry.py:1057 +#: flatcamObjects/FlatCAMGeometry.py:982 flatcamObjects/FlatCAMGeometry.py:991 msgid "Failed. Select a tool to copy." msgstr "" -#: AppObjects/FlatCAMGeometry.py:1086 +#: flatcamObjects/FlatCAMGeometry.py:1020 msgid "Tool was copied in Tool Table." msgstr "" -#: AppObjects/FlatCAMGeometry.py:1113 +#: flatcamObjects/FlatCAMGeometry.py:1047 msgid "Tool was edited in Tool Table." msgstr "" -#: AppObjects/FlatCAMGeometry.py:1142 AppObjects/FlatCAMGeometry.py:1151 +#: flatcamObjects/FlatCAMGeometry.py:1076 flatcamObjects/FlatCAMGeometry.py:1085 msgid "Failed. Select a tool to delete." msgstr "" -#: AppObjects/FlatCAMGeometry.py:1175 +#: flatcamObjects/FlatCAMGeometry.py:1109 msgid "Tool was deleted in Tool Table." msgstr "" -#: AppObjects/FlatCAMGeometry.py:1212 AppObjects/FlatCAMGeometry.py:1221 +#: flatcamObjects/FlatCAMGeometry.py:1146 flatcamObjects/FlatCAMGeometry.py:1156 msgid "" "Disabled because the tool is V-shape.\n" "For V-shape tools the depth of cut is\n" @@ -10428,173 +11896,216 @@ msgid "" "NB: a value of zero means that Tool Dia = 'V-tip Dia'" msgstr "" -#: AppObjects/FlatCAMGeometry.py:1708 +#: flatcamObjects/FlatCAMGeometry.py:1643 msgid "This Geometry can't be processed because it is" msgstr "" -#: AppObjects/FlatCAMGeometry.py:1708 +#: flatcamObjects/FlatCAMGeometry.py:1643 msgid "geometry" msgstr "" -#: AppObjects/FlatCAMGeometry.py:1749 +#: flatcamObjects/FlatCAMGeometry.py:1684 msgid "Failed. No tool selected in the tool table ..." msgstr "" -#: AppObjects/FlatCAMGeometry.py:1847 AppObjects/FlatCAMGeometry.py:1997 +#: flatcamObjects/FlatCAMGeometry.py:1786 flatcamObjects/FlatCAMGeometry.py:1936 msgid "" "Tool Offset is selected in Tool Table but no value is provided.\n" "Add a Tool Offset or change the Offset Type." msgstr "" -#: AppObjects/FlatCAMGeometry.py:1913 AppObjects/FlatCAMGeometry.py:2059 +#: flatcamObjects/FlatCAMGeometry.py:1852 flatcamObjects/FlatCAMGeometry.py:1998 msgid "G-Code parsing in progress..." msgstr "" -#: AppObjects/FlatCAMGeometry.py:1915 AppObjects/FlatCAMGeometry.py:2061 +#: flatcamObjects/FlatCAMGeometry.py:1854 flatcamObjects/FlatCAMGeometry.py:2000 msgid "G-Code parsing finished..." msgstr "" -#: AppObjects/FlatCAMGeometry.py:1923 +#: flatcamObjects/FlatCAMGeometry.py:1862 msgid "Finished G-Code processing" msgstr "" -#: AppObjects/FlatCAMGeometry.py:1925 AppObjects/FlatCAMGeometry.py:2073 +#: flatcamObjects/FlatCAMGeometry.py:1864 flatcamObjects/FlatCAMGeometry.py:2012 msgid "G-Code processing failed with error" msgstr "" -#: AppObjects/FlatCAMGeometry.py:1967 AppTools/ToolSolderPaste.py:1309 +#: flatcamObjects/FlatCAMGeometry.py:1906 flatcamTools/ToolSolderPaste.py:1301 msgid "Cancelled. Empty file, it has no geometry" msgstr "" -#: AppObjects/FlatCAMGeometry.py:2071 AppObjects/FlatCAMGeometry.py:2238 +#: flatcamObjects/FlatCAMGeometry.py:2010 flatcamObjects/FlatCAMGeometry.py:2171 msgid "Finished G-Code processing..." msgstr "" -#: AppObjects/FlatCAMGeometry.py:2090 AppObjects/FlatCAMGeometry.py:2094 -#: AppObjects/FlatCAMGeometry.py:2245 +#: flatcamObjects/FlatCAMGeometry.py:2029 flatcamObjects/FlatCAMGeometry.py:2033 +#: flatcamObjects/FlatCAMGeometry.py:2178 msgid "CNCjob created" msgstr "" -#: AppObjects/FlatCAMGeometry.py:2276 AppObjects/FlatCAMGeometry.py:2285 -#: AppParsers/ParseGerber.py:1866 AppParsers/ParseGerber.py:1876 +#: flatcamObjects/FlatCAMGeometry.py:2209 flatcamObjects/FlatCAMGeometry.py:2218 +#: flatcamParsers/ParseGerber.py:1867 flatcamParsers/ParseGerber.py:1877 msgid "Scale factor has to be a number: integer or float." msgstr "" -#: AppObjects/FlatCAMGeometry.py:2348 +#: flatcamObjects/FlatCAMGeometry.py:2281 msgid "Geometry Scale done." msgstr "" -#: AppObjects/FlatCAMGeometry.py:2365 AppParsers/ParseGerber.py:1992 +#: flatcamObjects/FlatCAMGeometry.py:2298 flatcamParsers/ParseGerber.py:1993 msgid "" "An (x,y) pair of values are needed. Probable you entered only one value in the Offset " "field." msgstr "" -#: AppObjects/FlatCAMGeometry.py:2421 +#: flatcamObjects/FlatCAMGeometry.py:2354 msgid "Geometry Offset done." msgstr "" -#: AppObjects/FlatCAMGeometry.py:2450 +#: flatcamObjects/FlatCAMGeometry.py:2383 msgid "" "The Toolchange X,Y field in Edit -> Preferences has to be in the format (x, y)\n" "but now there is only one value, not two." msgstr "" -#: AppObjects/FlatCAMGerber.py:388 AppTools/ToolIsolation.py:1577 +#: flatcamObjects/FlatCAMGeometry.py:2577 flatcamTools/ToolCopperThieving.py:769 +#: flatcamTools/ToolNCC.py:1648 +msgid "Click the start point of the area." +msgstr "" + +#: flatcamObjects/FlatCAMGeometry.py:2619 +msgid "Click the end point of the area." +msgstr "" + +#: flatcamObjects/FlatCAMGeometry.py:2625 flatcamObjects/FlatCAMGeometry.py:2677 +#: flatcamTools/ToolCopperThieving.py:826 flatcamTools/ToolNCC.py:1710 +#: flatcamTools/ToolNCC.py:1762 flatcamTools/ToolPaint.py:1606 +#: flatcamTools/ToolPaint.py:1657 +msgid "Zone added. Click to start adding next zone or right click to finish." +msgstr "" + +#: flatcamObjects/FlatCAMGeometry.py:2729 +msgid "Cancelled. Area exclusion drawing was interrupted." +msgstr "" + +#: flatcamObjects/FlatCAMGerber.py:494 msgid "Buffering solid geometry" msgstr "" -#: AppObjects/FlatCAMGerber.py:397 AppTools/ToolIsolation.py:1599 +#: flatcamObjects/FlatCAMGerber.py:503 msgid "Done" msgstr "" -#: AppObjects/FlatCAMGerber.py:423 AppObjects/FlatCAMGerber.py:449 +#: flatcamObjects/FlatCAMGerber.py:529 flatcamObjects/FlatCAMGerber.py:555 msgid "Operation could not be done." msgstr "" -#: AppObjects/FlatCAMGerber.py:581 AppObjects/FlatCAMGerber.py:655 -#: AppTools/ToolIsolation.py:1805 AppTools/ToolIsolation.py:2126 AppTools/ToolNCC.py:2117 -#: AppTools/ToolNCC.py:3197 AppTools/ToolNCC.py:3576 +#: flatcamObjects/FlatCAMGerber.py:572 +msgid "Isolating..." +msgstr "" + +#: flatcamObjects/FlatCAMGerber.py:631 +msgid "Click on a polygon to isolate it." +msgstr "" + +#: flatcamObjects/FlatCAMGerber.py:670 flatcamObjects/FlatCAMGerber.py:774 +#: flatcamTools/ToolPaint.py:1516 +msgid "Added polygon" +msgstr "" + +#: flatcamObjects/FlatCAMGerber.py:671 flatcamObjects/FlatCAMGerber.py:776 +msgid "Click to add next polygon or right click to start isolation." +msgstr "" + +#: flatcamObjects/FlatCAMGerber.py:683 flatcamTools/ToolPaint.py:1530 +msgid "Removed polygon" +msgstr "" + +#: flatcamObjects/FlatCAMGerber.py:684 +msgid "Click to add/remove next polygon or right click to start isolation." +msgstr "" + +#: flatcamObjects/FlatCAMGerber.py:689 flatcamTools/ToolPaint.py:1536 +msgid "No polygon detected under click position." +msgstr "" + +#: flatcamObjects/FlatCAMGerber.py:710 flatcamTools/ToolPaint.py:1565 +msgid "List of single polygons is empty. Aborting." +msgstr "" + +#: flatcamObjects/FlatCAMGerber.py:779 +msgid "No polygon in selection." +msgstr "" + +#: flatcamObjects/FlatCAMGerber.py:907 flatcamObjects/FlatCAMGerber.py:986 +#: flatcamTools/ToolNCC.py:2086 flatcamTools/ToolNCC.py:3137 flatcamTools/ToolNCC.py:3516 msgid "Isolation geometry could not be generated." msgstr "" -#: AppObjects/FlatCAMGerber.py:606 AppObjects/FlatCAMGerber.py:733 -#: AppTools/ToolIsolation.py:1869 AppTools/ToolIsolation.py:2035 -#: AppTools/ToolIsolation.py:2202 +#: flatcamObjects/FlatCAMGerber.py:932 flatcamObjects/FlatCAMGerber.py:1064 msgid "Isolation geometry created" msgstr "" -#: AppObjects/FlatCAMGerber.py:1028 +#: flatcamObjects/FlatCAMGerber.py:941 flatcamObjects/FlatCAMGerber.py:1071 +msgid "Subtracting Geo" +msgstr "" + +#: flatcamObjects/FlatCAMGerber.py:1396 msgid "Plotting Apertures" msgstr "" -#: AppObjects/FlatCAMObj.py:237 +#: flatcamObjects/FlatCAMObj.py:234 msgid "Name changed from" msgstr "" -#: AppObjects/FlatCAMObj.py:237 +#: flatcamObjects/FlatCAMObj.py:234 msgid "to" msgstr "" -#: AppObjects/FlatCAMObj.py:248 +#: flatcamObjects/FlatCAMObj.py:245 msgid "Offsetting..." msgstr "" -#: AppObjects/FlatCAMObj.py:262 AppObjects/FlatCAMObj.py:267 +#: flatcamObjects/FlatCAMObj.py:259 flatcamObjects/FlatCAMObj.py:264 msgid "Scaling could not be executed." msgstr "" -#: AppObjects/FlatCAMObj.py:271 AppObjects/FlatCAMObj.py:279 +#: flatcamObjects/FlatCAMObj.py:268 flatcamObjects/FlatCAMObj.py:276 msgid "Scale done." msgstr "" -#: AppObjects/FlatCAMObj.py:277 +#: flatcamObjects/FlatCAMObj.py:274 msgid "Scaling..." msgstr "" -#: AppObjects/FlatCAMObj.py:295 +#: flatcamObjects/FlatCAMObj.py:292 msgid "Skewing..." msgstr "" -#: AppObjects/FlatCAMScript.py:163 +#: flatcamObjects/FlatCAMScript.py:163 msgid "Script Editor" msgstr "" -#: AppObjects/ObjectCollection.py:514 +#: flatcamObjects/ObjectCollection.py:510 #, python-brace-format msgid "Object renamed from {old} to {new}" msgstr "" -#: AppObjects/ObjectCollection.py:926 AppObjects/ObjectCollection.py:932 -#: AppObjects/ObjectCollection.py:938 AppObjects/ObjectCollection.py:944 -#: AppObjects/ObjectCollection.py:950 AppObjects/ObjectCollection.py:956 App_Main.py:6235 -#: App_Main.py:6241 App_Main.py:6247 App_Main.py:6253 -msgid "selected" -msgstr "" - -#: AppObjects/ObjectCollection.py:987 +#: flatcamObjects/ObjectCollection.py:983 msgid "Cause of error" msgstr "" -#: AppObjects/ObjectCollection.py:1188 -msgid "All objects are selected." -msgstr "" - -#: AppObjects/ObjectCollection.py:1198 -msgid "Objects selection is cleared." -msgstr "" - -#: AppParsers/ParseExcellon.py:315 +#: flatcamParsers/ParseExcellon.py:316 msgid "This is GCODE mark" msgstr "" -#: AppParsers/ParseExcellon.py:432 +#: flatcamParsers/ParseExcellon.py:433 msgid "" "No tool diameter info's. See shell.\n" "A tool change event: T" msgstr "" -#: AppParsers/ParseExcellon.py:435 +#: flatcamParsers/ParseExcellon.py:436 msgid "" "was found but the Excellon file have no informations regarding the tool diameters " "therefore the application will try to load it by using some 'fake' diameters.\n" @@ -10602,120 +12113,117 @@ msgid "" "the real diameters." msgstr "" -#: AppParsers/ParseExcellon.py:899 +#: flatcamParsers/ParseExcellon.py:900 msgid "" "Excellon Parser error.\n" "Parsing Failed. Line" msgstr "" -#: AppParsers/ParseExcellon.py:981 +#: flatcamParsers/ParseExcellon.py:982 msgid "" "Excellon.create_geometry() -> a drill location was skipped due of not having a tool " "associated.\n" "Check the resulting GCode." msgstr "" -#: AppParsers/ParseFont.py:303 +#: flatcamParsers/ParseFont.py:303 msgid "Font not supported, try another one." msgstr "" -#: AppParsers/ParseGerber.py:425 +#: flatcamParsers/ParseGerber.py:426 msgid "Gerber processing. Parsing" msgstr "" -#: AppParsers/ParseGerber.py:425 AppParsers/ParseHPGL2.py:181 +#: flatcamParsers/ParseGerber.py:426 flatcamParsers/ParseHPGL2.py:182 msgid "lines" msgstr "" -#: AppParsers/ParseGerber.py:1001 AppParsers/ParseGerber.py:1101 -#: AppParsers/ParseHPGL2.py:274 AppParsers/ParseHPGL2.py:288 AppParsers/ParseHPGL2.py:307 -#: AppParsers/ParseHPGL2.py:331 AppParsers/ParseHPGL2.py:366 +#: flatcamParsers/ParseGerber.py:1002 flatcamParsers/ParseGerber.py:1102 +#: flatcamParsers/ParseHPGL2.py:275 flatcamParsers/ParseHPGL2.py:289 +#: flatcamParsers/ParseHPGL2.py:308 flatcamParsers/ParseHPGL2.py:332 +#: flatcamParsers/ParseHPGL2.py:367 msgid "Coordinates missing, line ignored" msgstr "" -#: AppParsers/ParseGerber.py:1003 AppParsers/ParseGerber.py:1103 +#: flatcamParsers/ParseGerber.py:1004 flatcamParsers/ParseGerber.py:1104 msgid "GERBER file might be CORRUPT. Check the file !!!" msgstr "" -#: AppParsers/ParseGerber.py:1057 +#: flatcamParsers/ParseGerber.py:1058 msgid "" "Region does not have enough points. File will be processed but there are parser errors. " "Line number" msgstr "" -#: AppParsers/ParseGerber.py:1487 AppParsers/ParseHPGL2.py:401 +#: flatcamParsers/ParseGerber.py:1488 flatcamParsers/ParseHPGL2.py:402 msgid "Gerber processing. Joining polygons" msgstr "" -#: AppParsers/ParseGerber.py:1504 +#: flatcamParsers/ParseGerber.py:1505 msgid "Gerber processing. Applying Gerber polarity." msgstr "" -#: AppParsers/ParseGerber.py:1564 +#: flatcamParsers/ParseGerber.py:1565 msgid "Gerber Line" msgstr "" -#: AppParsers/ParseGerber.py:1564 +#: flatcamParsers/ParseGerber.py:1565 msgid "Gerber Line Content" msgstr "" -#: AppParsers/ParseGerber.py:1566 +#: flatcamParsers/ParseGerber.py:1567 msgid "Gerber Parser ERROR" msgstr "" -#: AppParsers/ParseGerber.py:1956 +#: flatcamParsers/ParseGerber.py:1957 msgid "Gerber Scale done." msgstr "" -#: AppParsers/ParseGerber.py:2048 +#: flatcamParsers/ParseGerber.py:2049 msgid "Gerber Offset done." msgstr "" -#: AppParsers/ParseGerber.py:2124 +#: flatcamParsers/ParseGerber.py:2125 msgid "Gerber Mirror done." msgstr "" -#: AppParsers/ParseGerber.py:2198 +#: flatcamParsers/ParseGerber.py:2199 msgid "Gerber Skew done." msgstr "" -#: AppParsers/ParseGerber.py:2260 +#: flatcamParsers/ParseGerber.py:2261 msgid "Gerber Rotate done." msgstr "" -#: AppParsers/ParseGerber.py:2417 +#: flatcamParsers/ParseGerber.py:2418 msgid "Gerber Buffer done." msgstr "" -#: AppParsers/ParseHPGL2.py:181 +#: flatcamParsers/ParseHPGL2.py:182 msgid "HPGL2 processing. Parsing" msgstr "" -#: AppParsers/ParseHPGL2.py:413 +#: flatcamParsers/ParseHPGL2.py:414 msgid "HPGL2 Line" msgstr "" -#: AppParsers/ParseHPGL2.py:413 +#: flatcamParsers/ParseHPGL2.py:414 msgid "HPGL2 Line Content" msgstr "" -#: AppParsers/ParseHPGL2.py:414 +#: flatcamParsers/ParseHPGL2.py:415 msgid "HPGL2 Parser ERROR" msgstr "" -#: AppProcess.py:172 -msgid "processes running." -msgstr "" - -#: AppTools/ToolAlignObjects.py:32 +#: flatcamTools/ToolAlignObjects.py:32 msgid "Align Objects" msgstr "" -#: AppTools/ToolAlignObjects.py:61 +#: flatcamTools/ToolAlignObjects.py:61 msgid "MOVING object" msgstr "" -#: AppTools/ToolAlignObjects.py:65 +#: flatcamTools/ToolAlignObjects.py:65 msgid "" "Specify the type of object to be aligned.\n" "It can be of type: Gerber or Excellon.\n" @@ -10723,15 +12231,15 @@ msgid "" "in the Object combobox." msgstr "" -#: AppTools/ToolAlignObjects.py:86 +#: flatcamTools/ToolAlignObjects.py:86 msgid "Object to be aligned." msgstr "" -#: AppTools/ToolAlignObjects.py:98 +#: flatcamTools/ToolAlignObjects.py:98 msgid "TARGET object" msgstr "" -#: AppTools/ToolAlignObjects.py:100 +#: flatcamTools/ToolAlignObjects.py:100 msgid "" "Specify the type of object to be aligned to.\n" "It can be of type: Gerber or Excellon.\n" @@ -10739,15 +12247,15 @@ msgid "" "in the Object combobox." msgstr "" -#: AppTools/ToolAlignObjects.py:122 +#: flatcamTools/ToolAlignObjects.py:122 msgid "Object to be aligned to. Aligner." msgstr "" -#: AppTools/ToolAlignObjects.py:135 +#: flatcamTools/ToolAlignObjects.py:135 msgid "Alignment Type" msgstr "" -#: AppTools/ToolAlignObjects.py:137 +#: flatcamTools/ToolAlignObjects.py:137 msgid "" "The type of alignment can be:\n" "- Single Point -> it require a single point of sync, the action will be a translation\n" @@ -10755,245 +12263,253 @@ msgid "" "rotation" msgstr "" -#: AppTools/ToolAlignObjects.py:143 +#: flatcamTools/ToolAlignObjects.py:143 msgid "Single Point" msgstr "" -#: AppTools/ToolAlignObjects.py:144 +#: flatcamTools/ToolAlignObjects.py:144 msgid "Dual Point" msgstr "" -#: AppTools/ToolAlignObjects.py:159 +#: flatcamTools/ToolAlignObjects.py:159 msgid "Align Object" msgstr "" -#: AppTools/ToolAlignObjects.py:161 +#: flatcamTools/ToolAlignObjects.py:161 msgid "" "Align the specified object to the aligner object.\n" "If only one point is used then it assumes translation.\n" "If tho points are used it assume translation and rotation." msgstr "" -#: AppTools/ToolAlignObjects.py:176 AppTools/ToolCalculators.py:246 -#: AppTools/ToolCalibration.py:683 AppTools/ToolCopperThieving.py:488 -#: AppTools/ToolCorners.py:182 AppTools/ToolCutOut.py:362 AppTools/ToolDblSided.py:471 -#: AppTools/ToolEtchCompensation.py:240 AppTools/ToolExtractDrills.py:310 -#: AppTools/ToolFiducials.py:321 AppTools/ToolFilm.py:503 AppTools/ToolInvertGerber.py:143 -#: AppTools/ToolIsolation.py:591 AppTools/ToolNCC.py:612 AppTools/ToolOptimal.py:243 -#: AppTools/ToolPaint.py:555 AppTools/ToolPanelize.py:280 AppTools/ToolPunchGerber.py:339 -#: AppTools/ToolQRCode.py:323 AppTools/ToolRulesCheck.py:516 AppTools/ToolSolderPaste.py:481 -#: AppTools/ToolSub.py:181 AppTools/ToolTransform.py:398 +#: flatcamTools/ToolAlignObjects.py:176 flatcamTools/ToolCalculators.py:246 +#: flatcamTools/ToolCalibration.py:683 flatcamTools/ToolCopperThieving.py:484 +#: flatcamTools/ToolCutOut.py:362 flatcamTools/ToolDblSided.py:471 +#: flatcamTools/ToolExtractDrills.py:310 flatcamTools/ToolFiducials.py:318 +#: flatcamTools/ToolFilm.py:520 flatcamTools/ToolInvertGerber.py:140 +#: flatcamTools/ToolNCC.py:612 flatcamTools/ToolOptimal.py:237 flatcamTools/ToolPaint.py:556 +#: flatcamTools/ToolPanelize.py:269 flatcamTools/ToolPunchGerber.py:339 +#: flatcamTools/ToolQRCode.py:314 flatcamTools/ToolRulesCheck.py:516 +#: flatcamTools/ToolSolderPaste.py:473 flatcamTools/ToolSub.py:176 +#: flatcamTools/ToolTransform.py:398 msgid "Reset Tool" msgstr "" -#: AppTools/ToolAlignObjects.py:178 AppTools/ToolCalculators.py:248 -#: AppTools/ToolCalibration.py:685 AppTools/ToolCopperThieving.py:490 -#: AppTools/ToolCorners.py:184 AppTools/ToolCutOut.py:364 AppTools/ToolDblSided.py:473 -#: AppTools/ToolEtchCompensation.py:242 AppTools/ToolExtractDrills.py:312 -#: AppTools/ToolFiducials.py:323 AppTools/ToolFilm.py:505 AppTools/ToolInvertGerber.py:145 -#: AppTools/ToolIsolation.py:593 AppTools/ToolNCC.py:614 AppTools/ToolOptimal.py:245 -#: AppTools/ToolPaint.py:557 AppTools/ToolPanelize.py:282 AppTools/ToolPunchGerber.py:341 -#: AppTools/ToolQRCode.py:325 AppTools/ToolRulesCheck.py:518 AppTools/ToolSolderPaste.py:483 -#: AppTools/ToolSub.py:183 AppTools/ToolTransform.py:400 +#: flatcamTools/ToolAlignObjects.py:178 flatcamTools/ToolCalculators.py:248 +#: flatcamTools/ToolCalibration.py:685 flatcamTools/ToolCopperThieving.py:486 +#: flatcamTools/ToolCutOut.py:364 flatcamTools/ToolDblSided.py:473 +#: flatcamTools/ToolExtractDrills.py:312 flatcamTools/ToolFiducials.py:320 +#: flatcamTools/ToolFilm.py:522 flatcamTools/ToolInvertGerber.py:142 +#: flatcamTools/ToolNCC.py:614 flatcamTools/ToolOptimal.py:239 flatcamTools/ToolPaint.py:558 +#: flatcamTools/ToolPanelize.py:271 flatcamTools/ToolPunchGerber.py:341 +#: flatcamTools/ToolQRCode.py:316 flatcamTools/ToolRulesCheck.py:518 +#: flatcamTools/ToolSolderPaste.py:475 flatcamTools/ToolSub.py:178 +#: flatcamTools/ToolTransform.py:400 msgid "Will reset the tool parameters." msgstr "" -#: AppTools/ToolAlignObjects.py:244 +#: flatcamTools/ToolAlignObjects.py:244 msgid "Align Tool" msgstr "" -#: AppTools/ToolAlignObjects.py:289 +#: flatcamTools/ToolAlignObjects.py:289 msgid "There is no aligned FlatCAM object selected..." msgstr "" -#: AppTools/ToolAlignObjects.py:299 +#: flatcamTools/ToolAlignObjects.py:299 msgid "There is no aligner FlatCAM object selected..." msgstr "" -#: AppTools/ToolAlignObjects.py:321 AppTools/ToolAlignObjects.py:385 +#: flatcamTools/ToolAlignObjects.py:325 flatcamTools/ToolAlignObjects.py:385 msgid "First Point" msgstr "" -#: AppTools/ToolAlignObjects.py:321 AppTools/ToolAlignObjects.py:400 +#: flatcamTools/ToolAlignObjects.py:325 flatcamTools/ToolAlignObjects.py:400 msgid "Click on the START point." msgstr "" -#: AppTools/ToolAlignObjects.py:380 AppTools/ToolCalibration.py:920 +#: flatcamTools/ToolAlignObjects.py:380 flatcamTools/ToolCalibration.py:920 msgid "Cancelled by user request." msgstr "" -#: AppTools/ToolAlignObjects.py:385 AppTools/ToolAlignObjects.py:407 +#: flatcamTools/ToolAlignObjects.py:385 flatcamTools/ToolAlignObjects.py:407 msgid "Click on the DESTINATION point." msgstr "" -#: AppTools/ToolAlignObjects.py:385 AppTools/ToolAlignObjects.py:400 -#: AppTools/ToolAlignObjects.py:407 +#: flatcamTools/ToolAlignObjects.py:385 flatcamTools/ToolAlignObjects.py:400 +#: flatcamTools/ToolAlignObjects.py:407 msgid "Or right click to cancel." msgstr "" -#: AppTools/ToolAlignObjects.py:400 AppTools/ToolAlignObjects.py:407 -#: AppTools/ToolFiducials.py:107 +#: flatcamTools/ToolAlignObjects.py:400 flatcamTools/ToolAlignObjects.py:407 +#: flatcamTools/ToolFiducials.py:111 msgid "Second Point" msgstr "" -#: AppTools/ToolCalculators.py:24 +#: flatcamTools/ToolCalculators.py:24 msgid "Calculators" msgstr "" -#: AppTools/ToolCalculators.py:26 +#: flatcamTools/ToolCalculators.py:26 msgid "Units Calculator" msgstr "" -#: AppTools/ToolCalculators.py:70 +#: flatcamTools/ToolCalculators.py:70 msgid "Here you enter the value to be converted from INCH to MM" msgstr "" -#: AppTools/ToolCalculators.py:75 +#: flatcamTools/ToolCalculators.py:75 msgid "Here you enter the value to be converted from MM to INCH" msgstr "" -#: AppTools/ToolCalculators.py:111 +#: flatcamTools/ToolCalculators.py:111 msgid "" "This is the angle of the tip of the tool.\n" "It is specified by manufacturer." msgstr "" -#: AppTools/ToolCalculators.py:120 +#: flatcamTools/ToolCalculators.py:120 msgid "" "This is the depth to cut into the material.\n" "In the CNCJob is the CutZ parameter." msgstr "" -#: AppTools/ToolCalculators.py:128 +#: flatcamTools/ToolCalculators.py:128 msgid "" "This is the tool diameter to be entered into\n" "FlatCAM Gerber section.\n" "In the CNCJob section it is called >Tool dia<." msgstr "" -#: AppTools/ToolCalculators.py:139 AppTools/ToolCalculators.py:235 +#: flatcamTools/ToolCalculators.py:139 flatcamTools/ToolCalculators.py:235 msgid "Calculate" msgstr "" -#: AppTools/ToolCalculators.py:142 +#: flatcamTools/ToolCalculators.py:142 msgid "" "Calculate either the Cut Z or the effective tool diameter,\n" " depending on which is desired and which is known. " msgstr "" -#: AppTools/ToolCalculators.py:205 +#: flatcamTools/ToolCalculators.py:205 msgid "Current Value" msgstr "" -#: AppTools/ToolCalculators.py:212 +#: flatcamTools/ToolCalculators.py:212 msgid "" "This is the current intensity value\n" "to be set on the Power Supply. In Amps." msgstr "" -#: AppTools/ToolCalculators.py:216 +#: flatcamTools/ToolCalculators.py:216 msgid "Time" msgstr "" -#: AppTools/ToolCalculators.py:223 +#: flatcamTools/ToolCalculators.py:223 msgid "" "This is the calculated time required for the procedure.\n" "In minutes." msgstr "" -#: AppTools/ToolCalculators.py:238 +#: flatcamTools/ToolCalculators.py:238 msgid "" "Calculate the current intensity value and the procedure time,\n" "depending on the parameters above" msgstr "" -#: AppTools/ToolCalculators.py:299 +#: flatcamTools/ToolCalculators.py:299 msgid "Calc. Tool" msgstr "" -#: AppTools/ToolCalibration.py:69 +#: flatcamTools/ToolCalibration.py:67 +msgid "GCode Parameters" +msgstr "" + +#: flatcamTools/ToolCalibration.py:69 msgid "Parameters used when creating the GCode in this tool." msgstr "" -#: AppTools/ToolCalibration.py:173 +#: flatcamTools/ToolCalibration.py:173 msgid "STEP 1: Acquire Calibration Points" msgstr "" -#: AppTools/ToolCalibration.py:175 +#: flatcamTools/ToolCalibration.py:175 msgid "" "Pick four points by clicking on canvas.\n" "Those four points should be in the four\n" "(as much as possible) corners of the object." msgstr "" -#: AppTools/ToolCalibration.py:193 AppTools/ToolFilm.py:71 AppTools/ToolImage.py:54 -#: AppTools/ToolPanelize.py:77 AppTools/ToolProperties.py:177 +#: flatcamTools/ToolCalibration.py:193 flatcamTools/ToolFilm.py:76 +#: flatcamTools/ToolImage.py:54 flatcamTools/ToolPanelize.py:78 +#: flatcamTools/ToolProperties.py:177 msgid "Object Type" msgstr "" -#: AppTools/ToolCalibration.py:210 +#: flatcamTools/ToolCalibration.py:210 msgid "Source object selection" msgstr "" -#: AppTools/ToolCalibration.py:212 +#: flatcamTools/ToolCalibration.py:212 msgid "FlatCAM Object to be used as a source for reference points." msgstr "" -#: AppTools/ToolCalibration.py:218 +#: flatcamTools/ToolCalibration.py:218 msgid "Calibration Points" msgstr "" -#: AppTools/ToolCalibration.py:220 +#: flatcamTools/ToolCalibration.py:220 msgid "" "Contain the expected calibration points and the\n" "ones measured." msgstr "" -#: AppTools/ToolCalibration.py:235 AppTools/ToolSub.py:81 AppTools/ToolSub.py:136 +#: flatcamTools/ToolCalibration.py:235 flatcamTools/ToolSub.py:76 +#: flatcamTools/ToolSub.py:131 msgid "Target" msgstr "" -#: AppTools/ToolCalibration.py:236 +#: flatcamTools/ToolCalibration.py:236 msgid "Found Delta" msgstr "" -#: AppTools/ToolCalibration.py:248 +#: flatcamTools/ToolCalibration.py:248 msgid "Bot Left X" msgstr "" -#: AppTools/ToolCalibration.py:257 +#: flatcamTools/ToolCalibration.py:257 msgid "Bot Left Y" msgstr "" -#: AppTools/ToolCalibration.py:275 +#: flatcamTools/ToolCalibration.py:275 msgid "Bot Right X" msgstr "" -#: AppTools/ToolCalibration.py:285 +#: flatcamTools/ToolCalibration.py:285 msgid "Bot Right Y" msgstr "" -#: AppTools/ToolCalibration.py:300 +#: flatcamTools/ToolCalibration.py:300 msgid "Top Left X" msgstr "" -#: AppTools/ToolCalibration.py:309 +#: flatcamTools/ToolCalibration.py:309 msgid "Top Left Y" msgstr "" -#: AppTools/ToolCalibration.py:324 +#: flatcamTools/ToolCalibration.py:324 msgid "Top Right X" msgstr "" -#: AppTools/ToolCalibration.py:334 +#: flatcamTools/ToolCalibration.py:334 msgid "Top Right Y" msgstr "" -#: AppTools/ToolCalibration.py:367 +#: flatcamTools/ToolCalibration.py:367 msgid "Get Points" msgstr "" -#: AppTools/ToolCalibration.py:369 +#: flatcamTools/ToolCalibration.py:369 msgid "" "Pick four points by clicking on canvas if the source choice\n" "is 'free' or inside the object geometry if the source is 'object'.\n" @@ -11001,11 +12517,11 @@ msgid "" "the object." msgstr "" -#: AppTools/ToolCalibration.py:390 +#: flatcamTools/ToolCalibration.py:390 msgid "STEP 2: Verification GCode" msgstr "" -#: AppTools/ToolCalibration.py:392 AppTools/ToolCalibration.py:405 +#: flatcamTools/ToolCalibration.py:392 flatcamTools/ToolCalibration.py:405 msgid "" "Generate GCode file to locate and align the PCB by using\n" "the four points acquired above.\n" @@ -11016,72 +12532,72 @@ msgid "" "- forth point -> final verification point. Just for evaluation." msgstr "" -#: AppTools/ToolCalibration.py:403 AppTools/ToolSolderPaste.py:344 +#: flatcamTools/ToolCalibration.py:403 flatcamTools/ToolSolderPaste.py:348 msgid "Generate GCode" msgstr "" -#: AppTools/ToolCalibration.py:429 +#: flatcamTools/ToolCalibration.py:429 msgid "STEP 3: Adjustments" msgstr "" -#: AppTools/ToolCalibration.py:431 AppTools/ToolCalibration.py:440 +#: flatcamTools/ToolCalibration.py:431 flatcamTools/ToolCalibration.py:440 msgid "" "Calculate Scale and Skew factors based on the differences (delta)\n" "found when checking the PCB pattern. The differences must be filled\n" "in the fields Found (Delta)." msgstr "" -#: AppTools/ToolCalibration.py:438 +#: flatcamTools/ToolCalibration.py:438 msgid "Calculate Factors" msgstr "" -#: AppTools/ToolCalibration.py:460 +#: flatcamTools/ToolCalibration.py:460 msgid "STEP 4: Adjusted GCode" msgstr "" -#: AppTools/ToolCalibration.py:462 +#: flatcamTools/ToolCalibration.py:462 msgid "" "Generate verification GCode file adjusted with\n" "the factors above." msgstr "" -#: AppTools/ToolCalibration.py:467 +#: flatcamTools/ToolCalibration.py:467 msgid "Scale Factor X:" msgstr "" -#: AppTools/ToolCalibration.py:479 +#: flatcamTools/ToolCalibration.py:479 msgid "Scale Factor Y:" msgstr "" -#: AppTools/ToolCalibration.py:491 +#: flatcamTools/ToolCalibration.py:491 msgid "Apply Scale Factors" msgstr "" -#: AppTools/ToolCalibration.py:493 +#: flatcamTools/ToolCalibration.py:493 msgid "Apply Scale factors on the calibration points." msgstr "" -#: AppTools/ToolCalibration.py:503 +#: flatcamTools/ToolCalibration.py:503 msgid "Skew Angle X:" msgstr "" -#: AppTools/ToolCalibration.py:516 +#: flatcamTools/ToolCalibration.py:516 msgid "Skew Angle Y:" msgstr "" -#: AppTools/ToolCalibration.py:529 +#: flatcamTools/ToolCalibration.py:529 msgid "Apply Skew Factors" msgstr "" -#: AppTools/ToolCalibration.py:531 +#: flatcamTools/ToolCalibration.py:531 msgid "Apply Skew factors on the calibration points." msgstr "" -#: AppTools/ToolCalibration.py:600 +#: flatcamTools/ToolCalibration.py:600 msgid "Generate Adjusted GCode" msgstr "" -#: AppTools/ToolCalibration.py:602 +#: flatcamTools/ToolCalibration.py:602 msgid "" "Generate verification GCode file adjusted with\n" "the factors set above.\n" @@ -11089,102 +12605,102 @@ msgid "" "before clicking this button." msgstr "" -#: AppTools/ToolCalibration.py:623 +#: flatcamTools/ToolCalibration.py:623 msgid "STEP 5: Calibrate FlatCAM Objects" msgstr "" -#: AppTools/ToolCalibration.py:625 +#: flatcamTools/ToolCalibration.py:625 msgid "" "Adjust the FlatCAM objects\n" "with the factors determined and verified above." msgstr "" -#: AppTools/ToolCalibration.py:637 +#: flatcamTools/ToolCalibration.py:637 msgid "Adjusted object type" msgstr "" -#: AppTools/ToolCalibration.py:638 +#: flatcamTools/ToolCalibration.py:638 msgid "Type of the FlatCAM Object to be adjusted." msgstr "" -#: AppTools/ToolCalibration.py:651 +#: flatcamTools/ToolCalibration.py:651 msgid "Adjusted object selection" msgstr "" -#: AppTools/ToolCalibration.py:653 +#: flatcamTools/ToolCalibration.py:653 msgid "The FlatCAM Object to be adjusted." msgstr "" -#: AppTools/ToolCalibration.py:660 +#: flatcamTools/ToolCalibration.py:660 msgid "Calibrate" msgstr "" -#: AppTools/ToolCalibration.py:662 +#: flatcamTools/ToolCalibration.py:662 msgid "" "Adjust (scale and/or skew) the objects\n" "with the factors determined above." msgstr "" -#: AppTools/ToolCalibration.py:770 AppTools/ToolCalibration.py:771 +#: flatcamTools/ToolCalibration.py:770 flatcamTools/ToolCalibration.py:771 msgid "Origin" msgstr "" -#: AppTools/ToolCalibration.py:800 +#: flatcamTools/ToolCalibration.py:800 msgid "Tool initialized" msgstr "" -#: AppTools/ToolCalibration.py:838 +#: flatcamTools/ToolCalibration.py:838 msgid "There is no source FlatCAM object selected..." msgstr "" -#: AppTools/ToolCalibration.py:859 +#: flatcamTools/ToolCalibration.py:859 msgid "Get First calibration point. Bottom Left..." msgstr "" -#: AppTools/ToolCalibration.py:926 +#: flatcamTools/ToolCalibration.py:926 msgid "Get Second calibration point. Bottom Right (Top Left)..." msgstr "" -#: AppTools/ToolCalibration.py:930 +#: flatcamTools/ToolCalibration.py:930 msgid "Get Third calibration point. Top Left (Bottom Right)..." msgstr "" -#: AppTools/ToolCalibration.py:934 +#: flatcamTools/ToolCalibration.py:934 msgid "Get Forth calibration point. Top Right..." msgstr "" -#: AppTools/ToolCalibration.py:938 +#: flatcamTools/ToolCalibration.py:938 msgid "Done. All four points have been acquired." msgstr "" -#: AppTools/ToolCalibration.py:969 +#: flatcamTools/ToolCalibration.py:969 msgid "Verification GCode for FlatCAM Calibration Tool" msgstr "" -#: AppTools/ToolCalibration.py:981 AppTools/ToolCalibration.py:1067 +#: flatcamTools/ToolCalibration.py:981 flatcamTools/ToolCalibration.py:1067 msgid "Gcode Viewer" msgstr "" -#: AppTools/ToolCalibration.py:997 +#: flatcamTools/ToolCalibration.py:997 msgid "Cancelled. Four points are needed for GCode generation." msgstr "" -#: AppTools/ToolCalibration.py:1253 AppTools/ToolCalibration.py:1349 +#: flatcamTools/ToolCalibration.py:1253 flatcamTools/ToolCalibration.py:1349 msgid "There is no FlatCAM object selected..." msgstr "" -#: AppTools/ToolCopperThieving.py:76 AppTools/ToolFiducials.py:264 +#: flatcamTools/ToolCopperThieving.py:76 flatcamTools/ToolFiducials.py:261 msgid "Gerber Object to which will be added a copper thieving." msgstr "" -#: AppTools/ToolCopperThieving.py:102 +#: flatcamTools/ToolCopperThieving.py:98 msgid "" "This set the distance between the copper thieving components\n" "(the polygon fill may be split in multiple polygons)\n" "and the copper traces in the Gerber file." msgstr "" -#: AppTools/ToolCopperThieving.py:135 +#: flatcamTools/ToolCopperThieving.py:131 msgid "" "- 'Itself' - the copper thieving extent is based on the object extent.\n" "- 'Area Selection' - left mouse click to start selection of the area to be filled.\n" @@ -11192,42 +12708,42 @@ msgid "" "object." msgstr "" -#: AppTools/ToolCopperThieving.py:142 AppTools/ToolIsolation.py:511 AppTools/ToolNCC.py:552 -#: AppTools/ToolPaint.py:495 +#: flatcamTools/ToolCopperThieving.py:138 flatcamTools/ToolNCC.py:552 +#: flatcamTools/ToolPaint.py:496 msgid "Ref. Type" msgstr "" -#: AppTools/ToolCopperThieving.py:144 +#: flatcamTools/ToolCopperThieving.py:140 msgid "" "The type of FlatCAM object to be used as copper thieving reference.\n" "It can be Gerber, Excellon or Geometry." msgstr "" -#: AppTools/ToolCopperThieving.py:153 AppTools/ToolIsolation.py:522 AppTools/ToolNCC.py:562 -#: AppTools/ToolPaint.py:505 +#: flatcamTools/ToolCopperThieving.py:149 flatcamTools/ToolNCC.py:562 +#: flatcamTools/ToolPaint.py:506 msgid "Ref. Object" msgstr "" -#: AppTools/ToolCopperThieving.py:155 AppTools/ToolIsolation.py:524 AppTools/ToolNCC.py:564 -#: AppTools/ToolPaint.py:507 +#: flatcamTools/ToolCopperThieving.py:151 flatcamTools/ToolNCC.py:564 +#: flatcamTools/ToolPaint.py:508 msgid "The FlatCAM object to be used as non copper clearing reference." msgstr "" -#: AppTools/ToolCopperThieving.py:331 +#: flatcamTools/ToolCopperThieving.py:327 msgid "Insert Copper thieving" msgstr "" -#: AppTools/ToolCopperThieving.py:333 +#: flatcamTools/ToolCopperThieving.py:329 msgid "" "Will add a polygon (may be split in multiple parts)\n" "that will surround the actual Gerber traces at a certain distance." msgstr "" -#: AppTools/ToolCopperThieving.py:392 +#: flatcamTools/ToolCopperThieving.py:388 msgid "Insert Robber Bar" msgstr "" -#: AppTools/ToolCopperThieving.py:394 +#: flatcamTools/ToolCopperThieving.py:390 msgid "" "Will add a polygon with a defined thickness\n" "that will surround the actual Gerber object\n" @@ -11235,22 +12751,22 @@ msgid "" "Required when doing holes pattern plating." msgstr "" -#: AppTools/ToolCopperThieving.py:418 +#: flatcamTools/ToolCopperThieving.py:414 msgid "Select Soldermask object" msgstr "" -#: AppTools/ToolCopperThieving.py:420 +#: flatcamTools/ToolCopperThieving.py:416 msgid "" "Gerber Object with the soldermask.\n" "It will be used as a base for\n" "the pattern plating mask." msgstr "" -#: AppTools/ToolCopperThieving.py:449 +#: flatcamTools/ToolCopperThieving.py:445 msgid "Plated area" msgstr "" -#: AppTools/ToolCopperThieving.py:451 +#: flatcamTools/ToolCopperThieving.py:447 msgid "" "The area to be plated by pattern plating.\n" "Basically is made from the openings in the plating mask.\n" @@ -11261,205 +12777,154 @@ msgid "" "calculated from the soldermask openings." msgstr "" -#: AppTools/ToolCopperThieving.py:462 +#: flatcamTools/ToolCopperThieving.py:458 msgid "mm" msgstr "" -#: AppTools/ToolCopperThieving.py:464 +#: flatcamTools/ToolCopperThieving.py:460 msgid "in" msgstr "" -#: AppTools/ToolCopperThieving.py:471 +#: flatcamTools/ToolCopperThieving.py:467 msgid "Generate pattern plating mask" msgstr "" -#: AppTools/ToolCopperThieving.py:473 +#: flatcamTools/ToolCopperThieving.py:469 msgid "" "Will add to the soldermask gerber geometry\n" "the geometries of the copper thieving and/or\n" "the robber bar if those were generated." msgstr "" -#: AppTools/ToolCopperThieving.py:629 AppTools/ToolCopperThieving.py:654 +#: flatcamTools/ToolCopperThieving.py:625 flatcamTools/ToolCopperThieving.py:650 msgid "Lines Grid works only for 'itself' reference ..." msgstr "" -#: AppTools/ToolCopperThieving.py:640 +#: flatcamTools/ToolCopperThieving.py:636 msgid "Solid fill selected." msgstr "" -#: AppTools/ToolCopperThieving.py:645 +#: flatcamTools/ToolCopperThieving.py:641 msgid "Dots grid fill selected." msgstr "" -#: AppTools/ToolCopperThieving.py:650 +#: flatcamTools/ToolCopperThieving.py:646 msgid "Squares grid fill selected." msgstr "" -#: AppTools/ToolCopperThieving.py:671 AppTools/ToolCopperThieving.py:753 -#: AppTools/ToolCopperThieving.py:1355 AppTools/ToolCorners.py:268 -#: AppTools/ToolDblSided.py:657 AppTools/ToolExtractDrills.py:436 -#: AppTools/ToolFiducials.py:470 AppTools/ToolFiducials.py:747 AppTools/ToolOptimal.py:348 -#: AppTools/ToolPunchGerber.py:512 AppTools/ToolQRCode.py:435 +#: flatcamTools/ToolCopperThieving.py:667 flatcamTools/ToolCopperThieving.py:749 +#: flatcamTools/ToolCopperThieving.py:1345 flatcamTools/ToolDblSided.py:657 +#: flatcamTools/ToolExtractDrills.py:436 flatcamTools/ToolFiducials.py:466 +#: flatcamTools/ToolFiducials.py:743 flatcamTools/ToolOptimal.py:342 +#: flatcamTools/ToolPunchGerber.py:512 flatcamTools/ToolQRCode.py:426 msgid "There is no Gerber object loaded ..." msgstr "" -#: AppTools/ToolCopperThieving.py:684 AppTools/ToolCopperThieving.py:1283 +#: flatcamTools/ToolCopperThieving.py:680 flatcamTools/ToolCopperThieving.py:1273 msgid "Append geometry" msgstr "" -#: AppTools/ToolCopperThieving.py:728 AppTools/ToolCopperThieving.py:1316 -#: AppTools/ToolCopperThieving.py:1469 +#: flatcamTools/ToolCopperThieving.py:724 flatcamTools/ToolCopperThieving.py:1306 +#: flatcamTools/ToolCopperThieving.py:1459 msgid "Append source file" msgstr "" -#: AppTools/ToolCopperThieving.py:736 AppTools/ToolCopperThieving.py:1324 +#: flatcamTools/ToolCopperThieving.py:732 flatcamTools/ToolCopperThieving.py:1314 msgid "Copper Thieving Tool done." msgstr "" -#: AppTools/ToolCopperThieving.py:763 AppTools/ToolCopperThieving.py:796 -#: AppTools/ToolCutOut.py:556 AppTools/ToolCutOut.py:761 -#: AppTools/ToolEtchCompensation.py:360 AppTools/ToolInvertGerber.py:211 -#: AppTools/ToolIsolation.py:1585 AppTools/ToolIsolation.py:1612 AppTools/ToolNCC.py:1617 -#: AppTools/ToolNCC.py:1661 AppTools/ToolNCC.py:1690 AppTools/ToolPaint.py:1493 -#: AppTools/ToolPanelize.py:423 AppTools/ToolPanelize.py:437 AppTools/ToolSub.py:295 -#: AppTools/ToolSub.py:308 AppTools/ToolSub.py:499 AppTools/ToolSub.py:514 -#: tclCommands/TclCommandCopperClear.py:97 tclCommands/TclCommandPaint.py:99 +#: flatcamTools/ToolCopperThieving.py:759 flatcamTools/ToolCopperThieving.py:792 +#: flatcamTools/ToolCutOut.py:519 flatcamTools/ToolCutOut.py:724 +#: flatcamTools/ToolInvertGerber.py:208 flatcamTools/ToolNCC.py:1599 +#: flatcamTools/ToolNCC.py:1640 flatcamTools/ToolNCC.py:1669 flatcamTools/ToolPaint.py:1474 +#: flatcamTools/ToolPanelize.py:412 flatcamTools/ToolPanelize.py:426 +#: flatcamTools/ToolSub.py:294 flatcamTools/ToolSub.py:307 flatcamTools/ToolSub.py:498 +#: flatcamTools/ToolSub.py:513 tclCommands/TclCommandCopperClear.py:97 +#: tclCommands/TclCommandPaint.py:99 msgid "Could not retrieve object" msgstr "" -#: AppTools/ToolCopperThieving.py:773 AppTools/ToolIsolation.py:1672 -#: AppTools/ToolNCC.py:1669 Common.py:210 -msgid "Click the start point of the area." -msgstr "" - -#: AppTools/ToolCopperThieving.py:824 +#: flatcamTools/ToolCopperThieving.py:820 msgid "Click the end point of the filling area." msgstr "" -#: AppTools/ToolCopperThieving.py:830 AppTools/ToolIsolation.py:2504 -#: AppTools/ToolIsolation.py:2556 AppTools/ToolNCC.py:1731 AppTools/ToolNCC.py:1783 -#: AppTools/ToolPaint.py:1625 AppTools/ToolPaint.py:1676 Common.py:275 Common.py:377 -msgid "Zone added. Click to start adding next zone or right click to finish." -msgstr "" - -#: AppTools/ToolCopperThieving.py:952 AppTools/ToolCopperThieving.py:956 -#: AppTools/ToolCopperThieving.py:1017 +#: flatcamTools/ToolCopperThieving.py:942 flatcamTools/ToolCopperThieving.py:946 +#: flatcamTools/ToolCopperThieving.py:1007 msgid "Thieving" msgstr "" -#: AppTools/ToolCopperThieving.py:963 +#: flatcamTools/ToolCopperThieving.py:953 msgid "Copper Thieving Tool started. Reading parameters." msgstr "" -#: AppTools/ToolCopperThieving.py:988 +#: flatcamTools/ToolCopperThieving.py:978 msgid "Copper Thieving Tool. Preparing isolation polygons." msgstr "" -#: AppTools/ToolCopperThieving.py:1033 +#: flatcamTools/ToolCopperThieving.py:1023 msgid "Copper Thieving Tool. Preparing areas to fill with copper." msgstr "" -#: AppTools/ToolCopperThieving.py:1044 AppTools/ToolOptimal.py:355 -#: AppTools/ToolPanelize.py:810 AppTools/ToolRulesCheck.py:1127 +#: flatcamTools/ToolCopperThieving.py:1034 flatcamTools/ToolOptimal.py:349 +#: flatcamTools/ToolPanelize.py:799 flatcamTools/ToolRulesCheck.py:1127 msgid "Working..." msgstr "" -#: AppTools/ToolCopperThieving.py:1071 +#: flatcamTools/ToolCopperThieving.py:1061 msgid "Geometry not supported for bounding box" msgstr "" -#: AppTools/ToolCopperThieving.py:1077 AppTools/ToolNCC.py:1962 AppTools/ToolNCC.py:2017 -#: AppTools/ToolNCC.py:3052 AppTools/ToolPaint.py:3405 +#: flatcamTools/ToolCopperThieving.py:1067 flatcamTools/ToolNCC.py:1933 +#: flatcamTools/ToolNCC.py:1988 flatcamTools/ToolNCC.py:2992 flatcamTools/ToolPaint.py:3380 msgid "No object available." msgstr "" -#: AppTools/ToolCopperThieving.py:1114 AppTools/ToolNCC.py:1987 AppTools/ToolNCC.py:2040 -#: AppTools/ToolNCC.py:3094 +#: flatcamTools/ToolCopperThieving.py:1104 flatcamTools/ToolNCC.py:1958 +#: flatcamTools/ToolNCC.py:2011 flatcamTools/ToolNCC.py:3034 msgid "The reference object type is not supported." msgstr "" -#: AppTools/ToolCopperThieving.py:1119 +#: flatcamTools/ToolCopperThieving.py:1109 msgid "Copper Thieving Tool. Appending new geometry and buffering." msgstr "" -#: AppTools/ToolCopperThieving.py:1135 +#: flatcamTools/ToolCopperThieving.py:1125 msgid "Create geometry" msgstr "" -#: AppTools/ToolCopperThieving.py:1335 AppTools/ToolCopperThieving.py:1339 +#: flatcamTools/ToolCopperThieving.py:1325 flatcamTools/ToolCopperThieving.py:1329 msgid "P-Plating Mask" msgstr "" -#: AppTools/ToolCopperThieving.py:1361 +#: flatcamTools/ToolCopperThieving.py:1351 msgid "Append PP-M geometry" msgstr "" -#: AppTools/ToolCopperThieving.py:1487 +#: flatcamTools/ToolCopperThieving.py:1477 msgid "Generating Pattern Plating Mask done." msgstr "" -#: AppTools/ToolCopperThieving.py:1559 +#: flatcamTools/ToolCopperThieving.py:1549 msgid "Copper Thieving Tool exit." msgstr "" -#: AppTools/ToolCorners.py:57 -msgid "The Gerber object to which will be added corner markers." -msgstr "" - -#: AppTools/ToolCorners.py:73 -msgid "Locations" -msgstr "" - -#: AppTools/ToolCorners.py:75 -msgid "Locations where to place corner markers." -msgstr "" - -#: AppTools/ToolCorners.py:92 AppTools/ToolFiducials.py:95 -msgid "Top Right" -msgstr "" - -#: AppTools/ToolCorners.py:101 -msgid "Toggle ALL" -msgstr "" - -#: AppTools/ToolCorners.py:167 -msgid "Add Marker" -msgstr "" - -#: AppTools/ToolCorners.py:169 -msgid "Will add corner markers to the selected Gerber file." -msgstr "" - -#: AppTools/ToolCorners.py:235 -msgid "Corners Tool" -msgstr "" - -#: AppTools/ToolCorners.py:305 -msgid "Please select at least a location" -msgstr "" - -#: AppTools/ToolCorners.py:440 -msgid "Corners Tool exit." -msgstr "" - -#: AppTools/ToolCutOut.py:41 +#: flatcamTools/ToolCutOut.py:41 msgid "Cutout PCB" msgstr "" -#: AppTools/ToolCutOut.py:69 AppTools/ToolPanelize.py:53 +#: flatcamTools/ToolCutOut.py:69 flatcamTools/ToolPanelize.py:54 msgid "Source Object" msgstr "" -#: AppTools/ToolCutOut.py:70 +#: flatcamTools/ToolCutOut.py:70 msgid "Object to be cutout" msgstr "" -#: AppTools/ToolCutOut.py:75 +#: flatcamTools/ToolCutOut.py:75 msgid "Kind" msgstr "" -#: AppTools/ToolCutOut.py:97 +#: flatcamTools/ToolCutOut.py:97 msgid "" "Specify the type of object to be cutout.\n" "It can be of type: Gerber or Geometry.\n" @@ -11467,19 +12932,19 @@ msgid "" "of objects that will populate the 'Object' combobox." msgstr "" -#: AppTools/ToolCutOut.py:121 +#: flatcamTools/ToolCutOut.py:121 msgid "Tool Parameters" msgstr "" -#: AppTools/ToolCutOut.py:238 +#: flatcamTools/ToolCutOut.py:238 msgid "A. Automatic Bridge Gaps" msgstr "" -#: AppTools/ToolCutOut.py:240 +#: flatcamTools/ToolCutOut.py:240 msgid "This section handle creation of automatic bridge gaps." msgstr "" -#: AppTools/ToolCutOut.py:247 +#: flatcamTools/ToolCutOut.py:247 msgid "" "Number of gaps used for the Automatic cutout.\n" "There can be maximum 8 bridges/gaps.\n" @@ -11493,22 +12958,22 @@ msgid "" "- 8 - 2*left + 2*right +2*top + 2*bottom" msgstr "" -#: AppTools/ToolCutOut.py:269 +#: flatcamTools/ToolCutOut.py:269 msgid "Generate Freeform Geometry" msgstr "" -#: AppTools/ToolCutOut.py:271 +#: flatcamTools/ToolCutOut.py:271 msgid "" "Cutout the selected object.\n" "The cutout shape can be of any shape.\n" "Useful when the PCB has a non-rectangular shape." msgstr "" -#: AppTools/ToolCutOut.py:283 +#: flatcamTools/ToolCutOut.py:283 msgid "Generate Rectangular Geometry" msgstr "" -#: AppTools/ToolCutOut.py:285 +#: flatcamTools/ToolCutOut.py:285 msgid "" "Cutout the selected object.\n" "The resulting cutout shape is\n" @@ -11516,26 +12981,26 @@ msgid "" "the bounding box of the Object." msgstr "" -#: AppTools/ToolCutOut.py:304 +#: flatcamTools/ToolCutOut.py:304 msgid "B. Manual Bridge Gaps" msgstr "" -#: AppTools/ToolCutOut.py:306 +#: flatcamTools/ToolCutOut.py:306 msgid "" "This section handle creation of manual bridge gaps.\n" "This is done by mouse clicking on the perimeter of the\n" "Geometry object that is used as a cutout object. " msgstr "" -#: AppTools/ToolCutOut.py:321 +#: flatcamTools/ToolCutOut.py:321 msgid "Geometry object used to create the manual cutout." msgstr "" -#: AppTools/ToolCutOut.py:328 +#: flatcamTools/ToolCutOut.py:328 msgid "Generate Manual Geometry" msgstr "" -#: AppTools/ToolCutOut.py:330 +#: flatcamTools/ToolCutOut.py:330 msgid "" "If the object to be cutout is a Gerber\n" "first create a Geometry that surrounds it,\n" @@ -11543,11 +13008,11 @@ msgid "" "Select the source Gerber file in the top object combobox." msgstr "" -#: AppTools/ToolCutOut.py:343 +#: flatcamTools/ToolCutOut.py:343 msgid "Manual Add Bridge Gaps" msgstr "" -#: AppTools/ToolCutOut.py:345 +#: flatcamTools/ToolCutOut.py:345 msgid "" "Use the left mouse button (LMB) click\n" "to create a bridge gap to separate the PCB from\n" @@ -11556,134 +13021,135 @@ msgid "" "the Geometry object used as a cutout geometry." msgstr "" -#: AppTools/ToolCutOut.py:561 +#: flatcamTools/ToolCutOut.py:524 msgid "" "There is no object selected for Cutout.\n" "Select one and try again." msgstr "" -#: AppTools/ToolCutOut.py:567 AppTools/ToolCutOut.py:770 AppTools/ToolCutOut.py:951 -#: AppTools/ToolCutOut.py:1033 tclCommands/TclCommandGeoCutout.py:184 +#: flatcamTools/ToolCutOut.py:530 flatcamTools/ToolCutOut.py:733 +#: flatcamTools/ToolCutOut.py:914 flatcamTools/ToolCutOut.py:996 +#: tclCommands/TclCommandGeoCutout.py:184 msgid "Tool Diameter is zero value. Change it to a positive real number." msgstr "" -#: AppTools/ToolCutOut.py:581 AppTools/ToolCutOut.py:785 +#: flatcamTools/ToolCutOut.py:544 flatcamTools/ToolCutOut.py:748 msgid "Number of gaps value is missing. Add it and retry." msgstr "" -#: AppTools/ToolCutOut.py:586 AppTools/ToolCutOut.py:789 +#: flatcamTools/ToolCutOut.py:549 flatcamTools/ToolCutOut.py:752 msgid "" "Gaps value can be only one of: 'None', 'lr', 'tb', '2lr', '2tb', 4 or 8. Fill in a " "correct value and retry. " msgstr "" -#: AppTools/ToolCutOut.py:591 AppTools/ToolCutOut.py:795 +#: flatcamTools/ToolCutOut.py:554 flatcamTools/ToolCutOut.py:758 msgid "" "Cutout operation cannot be done on a multi-geo Geometry.\n" "Optionally, this Multi-geo Geometry can be converted to Single-geo Geometry,\n" "and after that perform Cutout." msgstr "" -#: AppTools/ToolCutOut.py:743 AppTools/ToolCutOut.py:940 +#: flatcamTools/ToolCutOut.py:706 flatcamTools/ToolCutOut.py:903 msgid "Any form CutOut operation finished." msgstr "" -#: AppTools/ToolCutOut.py:765 AppTools/ToolEtchCompensation.py:366 -#: AppTools/ToolInvertGerber.py:217 AppTools/ToolIsolation.py:1589 -#: AppTools/ToolIsolation.py:1616 AppTools/ToolNCC.py:1621 AppTools/ToolPaint.py:1416 -#: AppTools/ToolPanelize.py:428 tclCommands/TclCommandBbox.py:71 +#: flatcamTools/ToolCutOut.py:728 flatcamTools/ToolInvertGerber.py:214 +#: flatcamTools/ToolNCC.py:1603 flatcamTools/ToolPaint.py:1397 +#: flatcamTools/ToolPanelize.py:417 tclCommands/TclCommandBbox.py:71 #: tclCommands/TclCommandNregions.py:71 msgid "Object not found" msgstr "" -#: AppTools/ToolCutOut.py:909 +#: flatcamTools/ToolCutOut.py:872 msgid "Rectangular cutout with negative margin is not possible." msgstr "" -#: AppTools/ToolCutOut.py:945 +#: flatcamTools/ToolCutOut.py:908 msgid "Click on the selected geometry object perimeter to create a bridge gap ..." msgstr "" -#: AppTools/ToolCutOut.py:962 AppTools/ToolCutOut.py:988 +#: flatcamTools/ToolCutOut.py:925 flatcamTools/ToolCutOut.py:951 msgid "Could not retrieve Geometry object" msgstr "" -#: AppTools/ToolCutOut.py:993 +#: flatcamTools/ToolCutOut.py:956 msgid "Geometry object for manual cutout not found" msgstr "" -#: AppTools/ToolCutOut.py:1003 +#: flatcamTools/ToolCutOut.py:966 msgid "Added manual Bridge Gap." msgstr "" -#: AppTools/ToolCutOut.py:1015 +#: flatcamTools/ToolCutOut.py:978 msgid "Could not retrieve Gerber object" msgstr "" -#: AppTools/ToolCutOut.py:1020 +#: flatcamTools/ToolCutOut.py:983 msgid "" "There is no Gerber object selected for Cutout.\n" "Select one and try again." msgstr "" -#: AppTools/ToolCutOut.py:1026 +#: flatcamTools/ToolCutOut.py:989 msgid "" "The selected object has to be of Gerber type.\n" "Select a Gerber file and try again." msgstr "" -#: AppTools/ToolCutOut.py:1061 +#: flatcamTools/ToolCutOut.py:1024 msgid "Geometry not supported for cutout" msgstr "" -#: AppTools/ToolCutOut.py:1136 +#: flatcamTools/ToolCutOut.py:1099 msgid "Making manual bridge gap..." msgstr "" -#: AppTools/ToolDblSided.py:26 +#: flatcamTools/ToolDblSided.py:26 msgid "2-Sided PCB" msgstr "" -#: AppTools/ToolDblSided.py:52 +#: flatcamTools/ToolDblSided.py:52 msgid "Mirror Operation" msgstr "" -#: AppTools/ToolDblSided.py:53 +#: flatcamTools/ToolDblSided.py:53 msgid "Objects to be mirrored" msgstr "" -#: AppTools/ToolDblSided.py:65 +#: flatcamTools/ToolDblSided.py:65 msgid "Gerber to be mirrored" msgstr "" -#: AppTools/ToolDblSided.py:69 AppTools/ToolDblSided.py:97 AppTools/ToolDblSided.py:127 +#: flatcamTools/ToolDblSided.py:69 flatcamTools/ToolDblSided.py:97 +#: flatcamTools/ToolDblSided.py:127 msgid "" "Mirrors (flips) the specified object around \n" "the specified axis. Does not create a new \n" "object, but modifies it." msgstr "" -#: AppTools/ToolDblSided.py:93 +#: flatcamTools/ToolDblSided.py:93 msgid "Excellon Object to be mirrored." msgstr "" -#: AppTools/ToolDblSided.py:122 +#: flatcamTools/ToolDblSided.py:122 msgid "Geometry Obj to be mirrored." msgstr "" -#: AppTools/ToolDblSided.py:158 +#: flatcamTools/ToolDblSided.py:158 msgid "Mirror Parameters" msgstr "" -#: AppTools/ToolDblSided.py:159 +#: flatcamTools/ToolDblSided.py:159 msgid "Parameters for the mirror operation" msgstr "" -#: AppTools/ToolDblSided.py:164 +#: flatcamTools/ToolDblSided.py:164 msgid "Mirror Axis" msgstr "" -#: AppTools/ToolDblSided.py:175 +#: flatcamTools/ToolDblSided.py:175 msgid "" "The coordinates used as reference for the mirror operation.\n" "Can be:\n" @@ -11692,11 +13158,11 @@ msgid "" "bounding box of another object selected below" msgstr "" -#: AppTools/ToolDblSided.py:189 +#: flatcamTools/ToolDblSided.py:189 msgid "Point coordinates" msgstr "" -#: AppTools/ToolDblSided.py:194 +#: flatcamTools/ToolDblSided.py:194 msgid "" "Add the coordinates in format (x, y) through which the mirroring axis\n" " selected in 'MIRROR AXIS' pass.\n" @@ -11704,99 +13170,99 @@ msgid "" "and left mouse button click on canvas or you can enter the coordinates manually." msgstr "" -#: AppTools/ToolDblSided.py:218 +#: flatcamTools/ToolDblSided.py:218 msgid "" "It can be of type: Gerber or Excellon or Geometry.\n" "The coordinates of the center of the bounding box are used\n" "as reference for mirror operation." msgstr "" -#: AppTools/ToolDblSided.py:252 +#: flatcamTools/ToolDblSided.py:252 msgid "Bounds Values" msgstr "" -#: AppTools/ToolDblSided.py:254 +#: flatcamTools/ToolDblSided.py:254 msgid "" "Select on canvas the object(s)\n" "for which to calculate bounds values." msgstr "" -#: AppTools/ToolDblSided.py:264 +#: flatcamTools/ToolDblSided.py:264 msgid "X min" msgstr "" -#: AppTools/ToolDblSided.py:266 AppTools/ToolDblSided.py:280 +#: flatcamTools/ToolDblSided.py:266 flatcamTools/ToolDblSided.py:280 msgid "Minimum location." msgstr "" -#: AppTools/ToolDblSided.py:278 +#: flatcamTools/ToolDblSided.py:278 msgid "Y min" msgstr "" -#: AppTools/ToolDblSided.py:292 +#: flatcamTools/ToolDblSided.py:292 msgid "X max" msgstr "" -#: AppTools/ToolDblSided.py:294 AppTools/ToolDblSided.py:308 +#: flatcamTools/ToolDblSided.py:294 flatcamTools/ToolDblSided.py:308 msgid "Maximum location." msgstr "" -#: AppTools/ToolDblSided.py:306 +#: flatcamTools/ToolDblSided.py:306 msgid "Y max" msgstr "" -#: AppTools/ToolDblSided.py:317 +#: flatcamTools/ToolDblSided.py:317 msgid "Center point coordinates" msgstr "" -#: AppTools/ToolDblSided.py:319 +#: flatcamTools/ToolDblSided.py:319 msgid "Centroid" msgstr "" -#: AppTools/ToolDblSided.py:321 +#: flatcamTools/ToolDblSided.py:321 msgid "" "The center point location for the rectangular\n" "bounding shape. Centroid. Format is (x, y)." msgstr "" -#: AppTools/ToolDblSided.py:330 +#: flatcamTools/ToolDblSided.py:330 msgid "Calculate Bounds Values" msgstr "" -#: AppTools/ToolDblSided.py:332 +#: flatcamTools/ToolDblSided.py:332 msgid "" "Calculate the enveloping rectangular shape coordinates,\n" "for the selection of objects.\n" "The envelope shape is parallel with the X, Y axis." msgstr "" -#: AppTools/ToolDblSided.py:352 +#: flatcamTools/ToolDblSided.py:352 msgid "PCB Alignment" msgstr "" -#: AppTools/ToolDblSided.py:354 AppTools/ToolDblSided.py:456 +#: flatcamTools/ToolDblSided.py:354 flatcamTools/ToolDblSided.py:456 msgid "" "Creates an Excellon Object containing the\n" "specified alignment holes and their mirror\n" "images." msgstr "" -#: AppTools/ToolDblSided.py:361 +#: flatcamTools/ToolDblSided.py:361 msgid "Drill Diameter" msgstr "" -#: AppTools/ToolDblSided.py:390 AppTools/ToolDblSided.py:397 +#: flatcamTools/ToolDblSided.py:390 flatcamTools/ToolDblSided.py:397 msgid "" "The reference point used to create the second alignment drill\n" "from the first alignment drill, by doing mirror.\n" "It can be modified in the Mirror Parameters -> Reference section" msgstr "" -#: AppTools/ToolDblSided.py:410 +#: flatcamTools/ToolDblSided.py:410 msgid "Alignment Drill Coordinates" msgstr "" -#: AppTools/ToolDblSided.py:412 +#: flatcamTools/ToolDblSided.py:412 msgid "" "Alignment holes (x1, y1), (x2, y2), ... on one side of the mirror axis. For each set of " "(x, y) coordinates\n" @@ -11806,11 +13272,11 @@ msgid "" "- one drill in mirror position over the axis selected above in the 'Align Axis'." msgstr "" -#: AppTools/ToolDblSided.py:420 +#: flatcamTools/ToolDblSided.py:420 msgid "Drill coordinates" msgstr "" -#: AppTools/ToolDblSided.py:427 +#: flatcamTools/ToolDblSided.py:427 msgid "" "Add alignment drill holes coordinates in the format: (x1, y1), (x2, y2), ... \n" "on one side of the alignment axis.\n" @@ -11823,419 +13289,291 @@ msgid "" "- by entering the coords manually in the format: (x1, y1), (x2, y2), ..." msgstr "" -#: AppTools/ToolDblSided.py:442 +#: flatcamTools/ToolDblSided.py:442 msgid "Delete Last" msgstr "" -#: AppTools/ToolDblSided.py:444 +#: flatcamTools/ToolDblSided.py:444 msgid "Delete the last coordinates tuple in the list." msgstr "" -#: AppTools/ToolDblSided.py:454 +#: flatcamTools/ToolDblSided.py:454 msgid "Create Excellon Object" msgstr "" -#: AppTools/ToolDblSided.py:541 +#: flatcamTools/ToolDblSided.py:541 msgid "2-Sided Tool" msgstr "" -#: AppTools/ToolDblSided.py:581 +#: flatcamTools/ToolDblSided.py:581 msgid "" "'Point' reference is selected and 'Point' coordinates are missing. Add them and retry." msgstr "" -#: AppTools/ToolDblSided.py:600 +#: flatcamTools/ToolDblSided.py:600 msgid "There is no Box reference object loaded. Load one and retry." msgstr "" -#: AppTools/ToolDblSided.py:612 +#: flatcamTools/ToolDblSided.py:612 msgid "No value or wrong format in Drill Dia entry. Add it and retry." msgstr "" -#: AppTools/ToolDblSided.py:623 +#: flatcamTools/ToolDblSided.py:623 msgid "There are no Alignment Drill Coordinates to use. Add them and retry." msgstr "" -#: AppTools/ToolDblSided.py:648 +#: flatcamTools/ToolDblSided.py:648 msgid "Excellon object with alignment drills created..." msgstr "" -#: AppTools/ToolDblSided.py:661 AppTools/ToolDblSided.py:704 AppTools/ToolDblSided.py:748 +#: flatcamTools/ToolDblSided.py:661 flatcamTools/ToolDblSided.py:704 +#: flatcamTools/ToolDblSided.py:748 msgid "Only Gerber, Excellon and Geometry objects can be mirrored." msgstr "" -#: AppTools/ToolDblSided.py:671 AppTools/ToolDblSided.py:715 +#: flatcamTools/ToolDblSided.py:671 flatcamTools/ToolDblSided.py:715 msgid "There are no Point coordinates in the Point field. Add coords and try again ..." msgstr "" -#: AppTools/ToolDblSided.py:681 AppTools/ToolDblSided.py:725 AppTools/ToolDblSided.py:762 +#: flatcamTools/ToolDblSided.py:681 flatcamTools/ToolDblSided.py:725 +#: flatcamTools/ToolDblSided.py:762 msgid "There is no Box object loaded ..." msgstr "" -#: AppTools/ToolDblSided.py:691 AppTools/ToolDblSided.py:735 AppTools/ToolDblSided.py:772 +#: flatcamTools/ToolDblSided.py:691 flatcamTools/ToolDblSided.py:735 +#: flatcamTools/ToolDblSided.py:772 msgid "was mirrored" msgstr "" -#: AppTools/ToolDblSided.py:700 AppTools/ToolPunchGerber.py:533 +#: flatcamTools/ToolDblSided.py:700 flatcamTools/ToolPunchGerber.py:533 msgid "There is no Excellon object loaded ..." msgstr "" -#: AppTools/ToolDblSided.py:744 +#: flatcamTools/ToolDblSided.py:744 msgid "There is no Geometry object loaded ..." msgstr "" -#: AppTools/ToolDblSided.py:818 App_Main.py:4350 App_Main.py:4505 -msgid "Failed. No object(s) selected..." -msgstr "" - -#: AppTools/ToolDistance.py:57 AppTools/ToolDistanceMin.py:50 +#: flatcamTools/ToolDistance.py:57 flatcamTools/ToolDistanceMin.py:51 msgid "Those are the units in which the distance is measured." msgstr "" -#: AppTools/ToolDistance.py:58 AppTools/ToolDistanceMin.py:51 +#: flatcamTools/ToolDistance.py:58 flatcamTools/ToolDistanceMin.py:52 msgid "METRIC (mm)" msgstr "" -#: AppTools/ToolDistance.py:58 AppTools/ToolDistanceMin.py:51 +#: flatcamTools/ToolDistance.py:58 flatcamTools/ToolDistanceMin.py:52 msgid "INCH (in)" msgstr "" -#: AppTools/ToolDistance.py:64 +#: flatcamTools/ToolDistance.py:64 msgid "Snap to center" msgstr "" -#: AppTools/ToolDistance.py:66 +#: flatcamTools/ToolDistance.py:66 msgid "" "Mouse cursor will snap to the center of the pad/drill\n" "when it is hovering over the geometry of the pad/drill." msgstr "" -#: AppTools/ToolDistance.py:76 +#: flatcamTools/ToolDistance.py:76 msgid "Start Coords" msgstr "" -#: AppTools/ToolDistance.py:77 AppTools/ToolDistance.py:82 +#: flatcamTools/ToolDistance.py:77 flatcamTools/ToolDistance.py:82 msgid "This is measuring Start point coordinates." msgstr "" -#: AppTools/ToolDistance.py:87 +#: flatcamTools/ToolDistance.py:87 msgid "Stop Coords" msgstr "" -#: AppTools/ToolDistance.py:88 AppTools/ToolDistance.py:93 +#: flatcamTools/ToolDistance.py:88 flatcamTools/ToolDistance.py:93 msgid "This is the measuring Stop point coordinates." msgstr "" -#: AppTools/ToolDistance.py:98 AppTools/ToolDistanceMin.py:62 +#: flatcamTools/ToolDistance.py:98 flatcamTools/ToolDistanceMin.py:63 msgid "Dx" msgstr "" -#: AppTools/ToolDistance.py:99 AppTools/ToolDistance.py:104 AppTools/ToolDistanceMin.py:63 -#: AppTools/ToolDistanceMin.py:92 +#: flatcamTools/ToolDistance.py:99 flatcamTools/ToolDistance.py:104 +#: flatcamTools/ToolDistanceMin.py:64 flatcamTools/ToolDistanceMin.py:93 msgid "This is the distance measured over the X axis." msgstr "" -#: AppTools/ToolDistance.py:109 AppTools/ToolDistanceMin.py:65 +#: flatcamTools/ToolDistance.py:109 flatcamTools/ToolDistanceMin.py:66 msgid "Dy" msgstr "" -#: AppTools/ToolDistance.py:110 AppTools/ToolDistance.py:115 AppTools/ToolDistanceMin.py:66 -#: AppTools/ToolDistanceMin.py:97 +#: flatcamTools/ToolDistance.py:110 flatcamTools/ToolDistance.py:115 +#: flatcamTools/ToolDistanceMin.py:67 flatcamTools/ToolDistanceMin.py:98 msgid "This is the distance measured over the Y axis." msgstr "" -#: AppTools/ToolDistance.py:121 AppTools/ToolDistance.py:126 AppTools/ToolDistanceMin.py:69 -#: AppTools/ToolDistanceMin.py:102 +#: flatcamTools/ToolDistance.py:121 flatcamTools/ToolDistance.py:126 +#: flatcamTools/ToolDistanceMin.py:70 flatcamTools/ToolDistanceMin.py:103 msgid "This is orientation angle of the measuring line." msgstr "" -#: AppTools/ToolDistance.py:131 AppTools/ToolDistanceMin.py:71 +#: flatcamTools/ToolDistance.py:131 flatcamTools/ToolDistanceMin.py:72 msgid "DISTANCE" msgstr "" -#: AppTools/ToolDistance.py:132 AppTools/ToolDistance.py:137 +#: flatcamTools/ToolDistance.py:132 flatcamTools/ToolDistance.py:137 msgid "This is the point to point Euclidian distance." msgstr "" -#: AppTools/ToolDistance.py:142 AppTools/ToolDistance.py:339 AppTools/ToolDistanceMin.py:114 +#: flatcamTools/ToolDistance.py:142 flatcamTools/ToolDistance.py:337 +#: flatcamTools/ToolDistanceMin.py:115 msgid "Measure" msgstr "" -#: AppTools/ToolDistance.py:274 +#: flatcamTools/ToolDistance.py:272 msgid "Working" msgstr "" -#: AppTools/ToolDistance.py:279 +#: flatcamTools/ToolDistance.py:277 msgid "MEASURING: Click on the Start point ..." msgstr "" -#: AppTools/ToolDistance.py:389 +#: flatcamTools/ToolDistance.py:387 msgid "Distance Tool finished." msgstr "" -#: AppTools/ToolDistance.py:461 +#: flatcamTools/ToolDistance.py:455 msgid "Pads overlapped. Aborting." msgstr "" -#: AppTools/ToolDistance.py:489 -msgid "Distance Tool cancelled." -msgstr "" - -#: AppTools/ToolDistance.py:494 +#: flatcamTools/ToolDistance.py:485 msgid "MEASURING: Click on the Destination point ..." msgstr "" -#: AppTools/ToolDistance.py:503 AppTools/ToolDistanceMin.py:284 +#: flatcamTools/ToolDistance.py:494 flatcamTools/ToolDistanceMin.py:285 msgid "MEASURING" msgstr "" -#: AppTools/ToolDistance.py:504 AppTools/ToolDistanceMin.py:285 +#: flatcamTools/ToolDistance.py:495 flatcamTools/ToolDistanceMin.py:286 msgid "Result" msgstr "" -#: AppTools/ToolDistanceMin.py:31 AppTools/ToolDistanceMin.py:143 +#: flatcamTools/ToolDistanceMin.py:32 flatcamTools/ToolDistanceMin.py:144 msgid "Minimum Distance Tool" msgstr "" -#: AppTools/ToolDistanceMin.py:54 +#: flatcamTools/ToolDistanceMin.py:55 msgid "First object point" msgstr "" -#: AppTools/ToolDistanceMin.py:55 AppTools/ToolDistanceMin.py:80 +#: flatcamTools/ToolDistanceMin.py:56 flatcamTools/ToolDistanceMin.py:81 msgid "" "This is first object point coordinates.\n" "This is the start point for measuring distance." msgstr "" -#: AppTools/ToolDistanceMin.py:58 +#: flatcamTools/ToolDistanceMin.py:59 msgid "Second object point" msgstr "" -#: AppTools/ToolDistanceMin.py:59 AppTools/ToolDistanceMin.py:86 +#: flatcamTools/ToolDistanceMin.py:60 flatcamTools/ToolDistanceMin.py:87 msgid "" "This is second object point coordinates.\n" "This is the end point for measuring distance." msgstr "" -#: AppTools/ToolDistanceMin.py:72 AppTools/ToolDistanceMin.py:107 +#: flatcamTools/ToolDistanceMin.py:73 flatcamTools/ToolDistanceMin.py:108 msgid "This is the point to point Euclidean distance." msgstr "" -#: AppTools/ToolDistanceMin.py:74 +#: flatcamTools/ToolDistanceMin.py:75 msgid "Half Point" msgstr "" -#: AppTools/ToolDistanceMin.py:75 AppTools/ToolDistanceMin.py:112 +#: flatcamTools/ToolDistanceMin.py:76 flatcamTools/ToolDistanceMin.py:113 msgid "This is the middle point of the point to point Euclidean distance." msgstr "" -#: AppTools/ToolDistanceMin.py:117 +#: flatcamTools/ToolDistanceMin.py:118 msgid "Jump to Half Point" msgstr "" -#: AppTools/ToolDistanceMin.py:154 +#: flatcamTools/ToolDistanceMin.py:155 msgid "Select two objects and no more, to measure the distance between them ..." msgstr "" -#: AppTools/ToolDistanceMin.py:195 AppTools/ToolDistanceMin.py:216 -#: AppTools/ToolDistanceMin.py:225 AppTools/ToolDistanceMin.py:246 +#: flatcamTools/ToolDistanceMin.py:196 flatcamTools/ToolDistanceMin.py:217 +#: flatcamTools/ToolDistanceMin.py:226 flatcamTools/ToolDistanceMin.py:247 msgid "Select two objects and no more. Currently the selection has objects: " msgstr "" -#: AppTools/ToolDistanceMin.py:293 +#: flatcamTools/ToolDistanceMin.py:294 msgid "Objects intersects or touch at" msgstr "" -#: AppTools/ToolDistanceMin.py:299 +#: flatcamTools/ToolDistanceMin.py:300 msgid "Jumped to the half point between the two selected objects" msgstr "" -#: AppTools/ToolEtchCompensation.py:75 AppTools/ToolInvertGerber.py:74 -msgid "Gerber object that will be inverted." -msgstr "" - -#: AppTools/ToolEtchCompensation.py:86 -msgid "Utilities" -msgstr "" - -#: AppTools/ToolEtchCompensation.py:87 -msgid "Conversion utilities" -msgstr "" - -#: AppTools/ToolEtchCompensation.py:92 -msgid "Oz to Microns" -msgstr "" - -#: AppTools/ToolEtchCompensation.py:94 -msgid "" -"Will convert from oz thickness to microns [um].\n" -"Can use formulas with operators: /, *, +, -, %, .\n" -"The real numbers use the dot decimals separator." -msgstr "" - -#: AppTools/ToolEtchCompensation.py:103 -msgid "Oz value" -msgstr "" - -#: AppTools/ToolEtchCompensation.py:105 AppTools/ToolEtchCompensation.py:126 -msgid "Microns value" -msgstr "" - -#: AppTools/ToolEtchCompensation.py:113 -msgid "Mils to Microns" -msgstr "" - -#: AppTools/ToolEtchCompensation.py:115 -msgid "" -"Will convert from mils to microns [um].\n" -"Can use formulas with operators: /, *, +, -, %, .\n" -"The real numbers use the dot decimals separator." -msgstr "" - -#: AppTools/ToolEtchCompensation.py:124 -msgid "Mils value" -msgstr "" - -#: AppTools/ToolEtchCompensation.py:139 AppTools/ToolInvertGerber.py:86 -msgid "Parameters for this tool" -msgstr "" - -#: AppTools/ToolEtchCompensation.py:144 -msgid "Copper Thickness" -msgstr "" - -#: AppTools/ToolEtchCompensation.py:146 -msgid "" -"The thickness of the copper foil.\n" -"In microns [um]." -msgstr "" - -#: AppTools/ToolEtchCompensation.py:157 -msgid "Ratio" -msgstr "" - -#: AppTools/ToolEtchCompensation.py:159 -msgid "" -"The ratio of lateral etch versus depth etch.\n" -"Can be:\n" -"- custom -> the user will enter a custom value\n" -"- preselection -> value which depends on a selection of etchants" -msgstr "" - -#: AppTools/ToolEtchCompensation.py:165 -msgid "Etch Factor" -msgstr "" - -#: AppTools/ToolEtchCompensation.py:166 -msgid "Etchants list" -msgstr "" - -#: AppTools/ToolEtchCompensation.py:167 -msgid "Manual offset" -msgstr "" - -#: AppTools/ToolEtchCompensation.py:174 AppTools/ToolEtchCompensation.py:179 -msgid "Etchants" -msgstr "" - -#: AppTools/ToolEtchCompensation.py:176 -msgid "A list of etchants." -msgstr "" - -#: AppTools/ToolEtchCompensation.py:180 -msgid "Alkaline baths" -msgstr "" - -#: AppTools/ToolEtchCompensation.py:186 -msgid "Etch factor" -msgstr "" - -#: AppTools/ToolEtchCompensation.py:188 -msgid "" -"The ratio between depth etch and lateral etch .\n" -"Accepts real numbers and formulas using the operators: /,*,+,-,%" -msgstr "" - -#: AppTools/ToolEtchCompensation.py:192 -msgid "Real number or formula" -msgstr "" - -#: AppTools/ToolEtchCompensation.py:193 -msgid "Etch_factor" -msgstr "" - -#: AppTools/ToolEtchCompensation.py:201 -msgid "" -"Value with which to increase or decrease (buffer)\n" -"the copper features. In microns [um]." -msgstr "" - -#: AppTools/ToolEtchCompensation.py:225 -msgid "Compensate" -msgstr "" - -#: AppTools/ToolEtchCompensation.py:227 -msgid "Will increase the copper features thickness to compensate the lateral etch." -msgstr "" - -#: AppTools/ToolExtractDrills.py:29 AppTools/ToolExtractDrills.py:295 +#: flatcamTools/ToolExtractDrills.py:29 flatcamTools/ToolExtractDrills.py:295 msgid "Extract Drills" msgstr "" -#: AppTools/ToolExtractDrills.py:62 +#: flatcamTools/ToolExtractDrills.py:62 msgid "Gerber from which to extract drill holes" msgstr "" -#: AppTools/ToolExtractDrills.py:297 +#: flatcamTools/ToolExtractDrills.py:297 msgid "Extract drills from a given Gerber file." msgstr "" -#: AppTools/ToolExtractDrills.py:478 AppTools/ToolExtractDrills.py:563 -#: AppTools/ToolExtractDrills.py:648 +#: flatcamTools/ToolExtractDrills.py:478 flatcamTools/ToolExtractDrills.py:563 +#: flatcamTools/ToolExtractDrills.py:648 msgid "No drills extracted. Try different parameters." msgstr "" -#: AppTools/ToolFiducials.py:56 +#: flatcamTools/ToolFiducials.py:56 msgid "Fiducials Coordinates" msgstr "" -#: AppTools/ToolFiducials.py:58 +#: flatcamTools/ToolFiducials.py:58 msgid "" "A table with the fiducial points coordinates,\n" "in the format (x, y)." msgstr "" -#: AppTools/ToolFiducials.py:194 +#: flatcamTools/ToolFiducials.py:99 +msgid "Top Right" +msgstr "" + +#: flatcamTools/ToolFiducials.py:191 msgid "" "- 'Auto' - automatic placement of fiducials in the corners of the bounding box.\n" " - 'Manual' - manual placement of fiducials." msgstr "" -#: AppTools/ToolFiducials.py:240 -msgid "Thickness of the line that makes the fiducial." +#: flatcamTools/ToolFiducials.py:259 +msgid "Copper Gerber" msgstr "" -#: AppTools/ToolFiducials.py:271 +#: flatcamTools/ToolFiducials.py:268 msgid "Add Fiducial" msgstr "" -#: AppTools/ToolFiducials.py:273 +#: flatcamTools/ToolFiducials.py:270 msgid "Will add a polygon on the copper layer to serve as fiducial." msgstr "" -#: AppTools/ToolFiducials.py:289 +#: flatcamTools/ToolFiducials.py:286 msgid "Soldermask Gerber" msgstr "" -#: AppTools/ToolFiducials.py:291 +#: flatcamTools/ToolFiducials.py:288 msgid "The Soldermask Gerber object." msgstr "" -#: AppTools/ToolFiducials.py:303 +#: flatcamTools/ToolFiducials.py:300 msgid "Add Soldermask Opening" msgstr "" -#: AppTools/ToolFiducials.py:305 +#: flatcamTools/ToolFiducials.py:302 msgid "" "Will add a polygon on the soldermask layer\n" "to serve as fiducial opening.\n" @@ -12243,31 +13581,31 @@ msgid "" "for the copper fiducial." msgstr "" -#: AppTools/ToolFiducials.py:520 +#: flatcamTools/ToolFiducials.py:516 msgid "Click to add first Fiducial. Bottom Left..." msgstr "" -#: AppTools/ToolFiducials.py:784 +#: flatcamTools/ToolFiducials.py:780 msgid "Click to add the last fiducial. Top Right..." msgstr "" -#: AppTools/ToolFiducials.py:789 +#: flatcamTools/ToolFiducials.py:785 msgid "Click to add the second fiducial. Top Left or Bottom Right..." msgstr "" -#: AppTools/ToolFiducials.py:792 AppTools/ToolFiducials.py:801 +#: flatcamTools/ToolFiducials.py:788 flatcamTools/ToolFiducials.py:797 msgid "Done. All fiducials have been added." msgstr "" -#: AppTools/ToolFiducials.py:878 +#: flatcamTools/ToolFiducials.py:874 msgid "Fiducials Tool exit." msgstr "" -#: AppTools/ToolFilm.py:42 +#: flatcamTools/ToolFilm.py:42 msgid "Film PCB" msgstr "" -#: AppTools/ToolFilm.py:73 +#: flatcamTools/ToolFilm.py:78 msgid "" "Specify the type of object for which to create the film.\n" "The object can be of type: Gerber or Geometry.\n" @@ -12275,7 +13613,15 @@ msgid "" "in the Film Object combobox." msgstr "" -#: AppTools/ToolFilm.py:96 +#: flatcamTools/ToolFilm.py:92 +msgid "Film Object" +msgstr "" + +#: flatcamTools/ToolFilm.py:94 +msgid "Object for which to create the film." +msgstr "" + +#: flatcamTools/ToolFilm.py:115 msgid "" "Specify the type of object to be used as an container for\n" "film creation. It can be: Gerber or Geometry type.The selection here decide the type of " @@ -12283,57 +13629,69 @@ msgid "" "in the Box Object combobox." msgstr "" -#: AppTools/ToolFilm.py:256 +#: flatcamTools/ToolFilm.py:129 +msgid "Box Object" +msgstr "" + +#: flatcamTools/ToolFilm.py:131 +msgid "" +"The actual object that is used as container for the\n" +" selected object for which we create the film.\n" +"Usually it is the PCB outline but it can be also the\n" +"same object for which the film is created." +msgstr "" + +#: flatcamTools/ToolFilm.py:273 msgid "Film Parameters" msgstr "" -#: AppTools/ToolFilm.py:317 +#: flatcamTools/ToolFilm.py:334 msgid "Punch drill holes" msgstr "" -#: AppTools/ToolFilm.py:318 +#: flatcamTools/ToolFilm.py:335 msgid "" "When checked the generated film will have holes in pads when\n" "the generated film is positive. This is done to help drilling,\n" "when done manually." msgstr "" -#: AppTools/ToolFilm.py:336 +#: flatcamTools/ToolFilm.py:353 msgid "Source" msgstr "" -#: AppTools/ToolFilm.py:338 +#: flatcamTools/ToolFilm.py:355 msgid "" "The punch hole source can be:\n" "- Excellon -> an Excellon holes center will serve as reference.\n" "- Pad Center -> will try to use the pads center as reference." msgstr "" -#: AppTools/ToolFilm.py:343 +#: flatcamTools/ToolFilm.py:360 msgid "Pad center" msgstr "" -#: AppTools/ToolFilm.py:348 +#: flatcamTools/ToolFilm.py:365 msgid "Excellon Obj" msgstr "" -#: AppTools/ToolFilm.py:350 +#: flatcamTools/ToolFilm.py:367 msgid "Remove the geometry of Excellon from the Film to create the holes in pads." msgstr "" -#: AppTools/ToolFilm.py:364 +#: flatcamTools/ToolFilm.py:381 msgid "Punch Size" msgstr "" -#: AppTools/ToolFilm.py:365 +#: flatcamTools/ToolFilm.py:382 msgid "The value here will control how big is the punch hole in the pads." msgstr "" -#: AppTools/ToolFilm.py:485 +#: flatcamTools/ToolFilm.py:502 msgid "Save Film" msgstr "" -#: AppTools/ToolFilm.py:487 +#: flatcamTools/ToolFilm.py:504 msgid "" "Create a Film for the selected object, within\n" "the specified box. Does not create a new \n" @@ -12341,111 +13699,112 @@ msgid "" "selected format." msgstr "" -#: AppTools/ToolFilm.py:649 +#: flatcamTools/ToolFilm.py:664 msgid "" "Using the Pad center does not work on Geometry objects. Only a Gerber object has pads." msgstr "" -#: AppTools/ToolFilm.py:659 +#: flatcamTools/ToolFilm.py:674 msgid "No FlatCAM object selected. Load an object for Film and retry." msgstr "" -#: AppTools/ToolFilm.py:666 +#: flatcamTools/ToolFilm.py:681 msgid "No FlatCAM object selected. Load an object for Box and retry." msgstr "" -#: AppTools/ToolFilm.py:670 +#: flatcamTools/ToolFilm.py:685 msgid "No FlatCAM object selected." msgstr "" -#: AppTools/ToolFilm.py:681 +#: flatcamTools/ToolFilm.py:696 msgid "Generating Film ..." msgstr "" -#: AppTools/ToolFilm.py:730 AppTools/ToolFilm.py:734 +#: flatcamTools/ToolFilm.py:745 flatcamTools/ToolFilm.py:749 msgid "Export positive film" msgstr "" -#: AppTools/ToolFilm.py:767 +#: flatcamTools/ToolFilm.py:782 msgid "No Excellon object selected. Load an object for punching reference and retry." msgstr "" -#: AppTools/ToolFilm.py:791 +#: flatcamTools/ToolFilm.py:806 msgid "" " Could not generate punched hole film because the punch hole sizeis bigger than some of " "the apertures in the Gerber object." msgstr "" -#: AppTools/ToolFilm.py:803 +#: flatcamTools/ToolFilm.py:818 msgid "" "Could not generate punched hole film because the punch hole sizeis bigger than some of " "the apertures in the Gerber object." msgstr "" -#: AppTools/ToolFilm.py:821 +#: flatcamTools/ToolFilm.py:836 msgid "" "Could not generate punched hole film because the newly created object geometry is the " "same as the one in the source object geometry..." msgstr "" -#: AppTools/ToolFilm.py:876 AppTools/ToolFilm.py:880 +#: flatcamTools/ToolFilm.py:891 flatcamTools/ToolFilm.py:895 msgid "Export negative film" msgstr "" -#: AppTools/ToolFilm.py:941 AppTools/ToolFilm.py:1124 AppTools/ToolPanelize.py:441 +#: flatcamTools/ToolFilm.py:956 flatcamTools/ToolFilm.py:1139 +#: flatcamTools/ToolPanelize.py:430 msgid "No object Box. Using instead" msgstr "" -#: AppTools/ToolFilm.py:1057 AppTools/ToolFilm.py:1237 +#: flatcamTools/ToolFilm.py:1072 flatcamTools/ToolFilm.py:1252 msgid "Film file exported to" msgstr "" -#: AppTools/ToolFilm.py:1060 AppTools/ToolFilm.py:1240 +#: flatcamTools/ToolFilm.py:1075 flatcamTools/ToolFilm.py:1255 msgid "Generating Film ... Please wait." msgstr "" -#: AppTools/ToolImage.py:24 +#: flatcamTools/ToolImage.py:24 msgid "Image as Object" msgstr "" -#: AppTools/ToolImage.py:33 +#: flatcamTools/ToolImage.py:33 msgid "Image to PCB" msgstr "" -#: AppTools/ToolImage.py:56 +#: flatcamTools/ToolImage.py:56 msgid "" "Specify the type of object to create from the image.\n" "It can be of type: Gerber or Geometry." msgstr "" -#: AppTools/ToolImage.py:65 +#: flatcamTools/ToolImage.py:65 msgid "DPI value" msgstr "" -#: AppTools/ToolImage.py:66 +#: flatcamTools/ToolImage.py:66 msgid "Specify a DPI value for the image." msgstr "" -#: AppTools/ToolImage.py:72 +#: flatcamTools/ToolImage.py:72 msgid "Level of detail" msgstr "" -#: AppTools/ToolImage.py:81 +#: flatcamTools/ToolImage.py:81 msgid "Image type" msgstr "" -#: AppTools/ToolImage.py:83 +#: flatcamTools/ToolImage.py:83 msgid "" "Choose a method for the image interpretation.\n" "B/W means a black & white image. Color means a colored image." msgstr "" -#: AppTools/ToolImage.py:92 AppTools/ToolImage.py:107 AppTools/ToolImage.py:120 -#: AppTools/ToolImage.py:133 +#: flatcamTools/ToolImage.py:92 flatcamTools/ToolImage.py:107 flatcamTools/ToolImage.py:120 +#: flatcamTools/ToolImage.py:133 msgid "Mask value" msgstr "" -#: AppTools/ToolImage.py:94 +#: flatcamTools/ToolImage.py:94 msgid "" "Mask for monochrome image.\n" "Takes values between [0 ... 255].\n" @@ -12455,7 +13814,7 @@ msgid "" "(which is totally black)." msgstr "" -#: AppTools/ToolImage.py:109 +#: flatcamTools/ToolImage.py:109 msgid "" "Mask for RED color.\n" "Takes values between [0 ... 255].\n" @@ -12463,7 +13822,7 @@ msgid "" "in the resulting geometry." msgstr "" -#: AppTools/ToolImage.py:122 +#: flatcamTools/ToolImage.py:122 msgid "" "Mask for GREEN color.\n" "Takes values between [0 ... 255].\n" @@ -12471,7 +13830,7 @@ msgid "" "in the resulting geometry." msgstr "" -#: AppTools/ToolImage.py:135 +#: flatcamTools/ToolImage.py:135 msgid "" "Mask for BLUE color.\n" "Takes values between [0 ... 255].\n" @@ -12479,77 +13838,112 @@ msgid "" "in the resulting geometry." msgstr "" -#: AppTools/ToolImage.py:143 +#: flatcamTools/ToolImage.py:143 msgid "Import image" msgstr "" -#: AppTools/ToolImage.py:145 +#: flatcamTools/ToolImage.py:145 msgid "Open a image of raster type and then import it in FlatCAM." msgstr "" -#: AppTools/ToolImage.py:182 +#: flatcamTools/ToolImage.py:182 msgid "Image Tool" msgstr "" -#: AppTools/ToolImage.py:234 AppTools/ToolImage.py:237 +#: flatcamTools/ToolImage.py:234 flatcamTools/ToolImage.py:237 msgid "Import IMAGE" msgstr "" -#: AppTools/ToolImage.py:277 App_Main.py:8360 App_Main.py:8407 -msgid "Not supported type is picked as parameter. Only Geometry and Gerber are supported" -msgstr "" - -#: AppTools/ToolImage.py:285 +#: flatcamTools/ToolImage.py:285 msgid "Importing Image" msgstr "" -#: AppTools/ToolImage.py:297 AppTools/ToolPDF.py:154 App_Main.py:8385 App_Main.py:8431 -#: App_Main.py:8495 App_Main.py:8562 App_Main.py:8628 App_Main.py:8693 App_Main.py:8750 -msgid "Opened" +#: flatcamTools/ToolInvertGerber.py:74 +msgid "Gerber object that will be inverted." msgstr "" -#: AppTools/ToolInvertGerber.py:126 +#: flatcamTools/ToolInvertGerber.py:83 +msgid "Parameters for this tool" +msgstr "" + +#: flatcamTools/ToolInvertGerber.py:123 msgid "Invert Gerber" msgstr "" -#: AppTools/ToolInvertGerber.py:128 +#: flatcamTools/ToolInvertGerber.py:125 msgid "" "Will invert the Gerber object: areas that have copper\n" "will be empty of copper and previous empty area will be\n" "filled with copper." msgstr "" -#: AppTools/ToolInvertGerber.py:187 +#: flatcamTools/ToolInvertGerber.py:184 msgid "Invert Tool" msgstr "" -#: AppTools/ToolIsolation.py:96 -msgid "Gerber object for isolation routing." +#: flatcamTools/ToolMove.py:102 +msgid "MOVE: Click on the Start point ..." msgstr "" -#: AppTools/ToolIsolation.py:120 AppTools/ToolNCC.py:122 +#: flatcamTools/ToolMove.py:113 +msgid "Cancelled. No object(s) to move." +msgstr "" + +#: flatcamTools/ToolMove.py:140 +msgid "MOVE: Click on the Destination point ..." +msgstr "" + +#: flatcamTools/ToolMove.py:163 +msgid "Moving..." +msgstr "" + +#: flatcamTools/ToolMove.py:166 +msgid "No object(s) selected." +msgstr "" + +#: flatcamTools/ToolMove.py:221 +msgid "Error when mouse left click." +msgstr "" + +#: flatcamTools/ToolNCC.py:42 +msgid "Non-Copper Clearing" +msgstr "" + +#: flatcamTools/ToolNCC.py:88 +msgid "" +"Specify the type of object to be cleared of excess copper.\n" +"It can be of type: Gerber or Geometry.\n" +"What is selected here will dictate the kind\n" +"of objects that will populate the 'Object' combobox." +msgstr "" + +#: flatcamTools/ToolNCC.py:110 +msgid "Object to be cleared of excess copper." +msgstr "" + +#: flatcamTools/ToolNCC.py:122 msgid "" "Tools pool from which the algorithm\n" "will pick the ones used for copper clearing." msgstr "" -#: AppTools/ToolIsolation.py:136 +#: flatcamTools/ToolNCC.py:138 msgid "" "This is the Tool Number.\n" -"Isolation routing will start with the tool with the biggest \n" +"Non copper clearing will start with the tool with the biggest \n" "diameter, continuing until there are no more tools.\n" -"Only tools that create Isolation geometry will still be present\n" +"Only tools that create NCC clearing geometry will still be present\n" "in the resulting geometry. This is because with some tools\n" -"this function will not be able to create routing geometry." +"this function will not be able to create painting geometry." msgstr "" -#: AppTools/ToolIsolation.py:144 AppTools/ToolNCC.py:146 +#: flatcamTools/ToolNCC.py:146 msgid "" "Tool Diameter. It's value (in current FlatCAM units)\n" "is the cut width into the material." msgstr "" -#: AppTools/ToolIsolation.py:148 AppTools/ToolNCC.py:150 +#: flatcamTools/ToolNCC.py:150 msgid "" "The Tool Type (TT) can be:\n" "- Circular with 1 ... 4 teeth -> it is informative only. Being circular,\n" @@ -12564,497 +13958,310 @@ msgid "" "in the resulting geometry as Isolation." msgstr "" -#: AppTools/ToolIsolation.py:300 AppTools/ToolNCC.py:318 AppTools/ToolPaint.py:300 -#: AppTools/ToolSolderPaste.py:135 +#: flatcamTools/ToolNCC.py:296 flatcamTools/ToolPaint.py:279 +msgid "" +"Add a new tool to the Tool Table\n" +"with the diameter specified above." +msgstr "" + +#: flatcamTools/ToolNCC.py:318 flatcamTools/ToolPaint.py:301 +#: flatcamTools/ToolSolderPaste.py:130 msgid "" "Delete a selection of tools in the Tool Table\n" "by first selecting a row(s) in the Tool Table." msgstr "" -#: AppTools/ToolIsolation.py:467 -msgid "" -"Specify the type of object to be excepted from isolation.\n" -"It can be of type: Gerber or Geometry.\n" -"What is selected here will dictate the kind\n" -"of objects that will populate the 'Object' combobox." -msgstr "" - -#: AppTools/ToolIsolation.py:477 -msgid "Object whose area will be removed from isolation geometry." -msgstr "" - -#: AppTools/ToolIsolation.py:513 AppTools/ToolNCC.py:554 +#: flatcamTools/ToolNCC.py:554 msgid "" "The type of FlatCAM object to be used as non copper clearing reference.\n" "It can be Gerber, Excellon or Geometry." msgstr "" -#: AppTools/ToolIsolation.py:559 -msgid "Generate Isolation Geometry" -msgstr "" - -#: AppTools/ToolIsolation.py:567 -msgid "" -"Create a Geometry object with toolpaths to cut \n" -"isolation outside, inside or on both sides of the\n" -"object. For a Gerber object outside means outside\n" -"of the Gerber feature and inside means inside of\n" -"the Gerber feature, if possible at all. This means\n" -"that only if the Gerber feature has openings inside, they\n" -"will be isolated. If what is wanted is to cut isolation\n" -"inside the actual Gerber feature, use a negative tool\n" -"diameter above." -msgstr "" - -#: AppTools/ToolIsolation.py:1266 AppTools/ToolIsolation.py:1426 AppTools/ToolNCC.py:932 -#: AppTools/ToolNCC.py:1449 AppTools/ToolPaint.py:857 AppTools/ToolSolderPaste.py:576 -#: AppTools/ToolSolderPaste.py:901 App_Main.py:4210 -msgid "Please enter a tool diameter with non-zero value, in Float format." -msgstr "" - -#: AppTools/ToolIsolation.py:1270 AppTools/ToolNCC.py:936 AppTools/ToolPaint.py:861 -#: AppTools/ToolSolderPaste.py:580 App_Main.py:4214 -msgid "Adding Tool cancelled" -msgstr "" - -#: AppTools/ToolIsolation.py:1420 AppTools/ToolNCC.py:1443 AppTools/ToolPaint.py:1203 -#: AppTools/ToolSolderPaste.py:896 -msgid "Please enter a tool diameter to add, in Float format." -msgstr "" - -#: AppTools/ToolIsolation.py:1451 AppTools/ToolIsolation.py:2959 AppTools/ToolNCC.py:1474 -#: AppTools/ToolNCC.py:4079 AppTools/ToolPaint.py:1227 AppTools/ToolPaint.py:3628 -#: AppTools/ToolSolderPaste.py:925 -msgid "Cancelled. Tool already in Tool Table." -msgstr "" - -#: AppTools/ToolIsolation.py:1458 AppTools/ToolIsolation.py:2977 AppTools/ToolNCC.py:1481 -#: AppTools/ToolNCC.py:4096 AppTools/ToolPaint.py:1232 AppTools/ToolPaint.py:3645 -msgid "New tool added to Tool Table." -msgstr "" - -#: AppTools/ToolIsolation.py:1502 AppTools/ToolNCC.py:1525 AppTools/ToolPaint.py:1276 -msgid "Tool from Tool Table was edited." -msgstr "" - -#: AppTools/ToolIsolation.py:1514 AppTools/ToolNCC.py:1537 AppTools/ToolPaint.py:1288 -#: AppTools/ToolSolderPaste.py:986 -msgid "Cancelled. New diameter value is already in the Tool Table." -msgstr "" - -#: AppTools/ToolIsolation.py:1566 AppTools/ToolNCC.py:1589 AppTools/ToolPaint.py:1386 -msgid "Delete failed. Select a tool to delete." -msgstr "" - -#: AppTools/ToolIsolation.py:1572 AppTools/ToolNCC.py:1595 AppTools/ToolPaint.py:1392 -msgid "Tool(s) deleted from Tool Table." -msgstr "" - -#: AppTools/ToolIsolation.py:1620 -msgid "Isolating..." -msgstr "" - -#: AppTools/ToolIsolation.py:1654 -msgid "Failed to create Follow Geometry with tool diameter" -msgstr "" - -#: AppTools/ToolIsolation.py:1657 -msgid "Follow Geometry was created with tool diameter" -msgstr "" - -#: AppTools/ToolIsolation.py:1698 -msgid "Click on a polygon to isolate it." -msgstr "" - -#: AppTools/ToolIsolation.py:1812 AppTools/ToolIsolation.py:1832 -#: AppTools/ToolIsolation.py:1967 AppTools/ToolIsolation.py:2138 -msgid "Subtracting Geo" -msgstr "" - -#: AppTools/ToolIsolation.py:1816 AppTools/ToolIsolation.py:1971 -#: AppTools/ToolIsolation.py:2142 -msgid "Intersecting Geo" -msgstr "" - -#: AppTools/ToolIsolation.py:1865 AppTools/ToolIsolation.py:2032 -#: AppTools/ToolIsolation.py:2199 -msgid "Empty Geometry in" -msgstr "" - -#: AppTools/ToolIsolation.py:2041 -msgid "" -"Partial failure. The geometry was processed with all tools.\n" -"But there are still not-isolated geometry elements. Try to include a tool with smaller " -"diameter." -msgstr "" - -#: AppTools/ToolIsolation.py:2044 -msgid "The following are coordinates for the copper features that could not be isolated:" -msgstr "" - -#: AppTools/ToolIsolation.py:2356 AppTools/ToolIsolation.py:2465 AppTools/ToolPaint.py:1535 -msgid "Added polygon" -msgstr "" - -#: AppTools/ToolIsolation.py:2357 AppTools/ToolIsolation.py:2467 -msgid "Click to add next polygon or right click to start isolation." -msgstr "" - -#: AppTools/ToolIsolation.py:2369 AppTools/ToolPaint.py:1549 -msgid "Removed polygon" -msgstr "" - -#: AppTools/ToolIsolation.py:2370 -msgid "Click to add/remove next polygon or right click to start isolation." -msgstr "" - -#: AppTools/ToolIsolation.py:2375 AppTools/ToolPaint.py:1555 -msgid "No polygon detected under click position." -msgstr "" - -#: AppTools/ToolIsolation.py:2401 AppTools/ToolPaint.py:1584 -msgid "List of single polygons is empty. Aborting." -msgstr "" - -#: AppTools/ToolIsolation.py:2470 -msgid "No polygon in selection." -msgstr "" - -#: AppTools/ToolIsolation.py:2498 AppTools/ToolNCC.py:1725 AppTools/ToolPaint.py:1619 -msgid "Click the end point of the paint area." -msgstr "" - -#: AppTools/ToolIsolation.py:2916 AppTools/ToolNCC.py:4036 AppTools/ToolPaint.py:3585 -#: App_Main.py:5318 App_Main.py:5328 -msgid "Tool from DB added in Tool Table." -msgstr "" - -#: AppTools/ToolMove.py:102 -msgid "MOVE: Click on the Start point ..." -msgstr "" - -#: AppTools/ToolMove.py:113 -msgid "Cancelled. No object(s) to move." -msgstr "" - -#: AppTools/ToolMove.py:140 -msgid "MOVE: Click on the Destination point ..." -msgstr "" - -#: AppTools/ToolMove.py:163 -msgid "Moving..." -msgstr "" - -#: AppTools/ToolMove.py:166 -msgid "No object(s) selected." -msgstr "" - -#: AppTools/ToolMove.py:221 -msgid "Error when mouse left click." -msgstr "" - -#: AppTools/ToolNCC.py:42 -msgid "Non-Copper Clearing" -msgstr "" - -#: AppTools/ToolNCC.py:86 AppTools/ToolPaint.py:79 -msgid "Obj Type" -msgstr "" - -#: AppTools/ToolNCC.py:88 -msgid "" -"Specify the type of object to be cleared of excess copper.\n" -"It can be of type: Gerber or Geometry.\n" -"What is selected here will dictate the kind\n" -"of objects that will populate the 'Object' combobox." -msgstr "" - -#: AppTools/ToolNCC.py:110 -msgid "Object to be cleared of excess copper." -msgstr "" - -#: AppTools/ToolNCC.py:138 -msgid "" -"This is the Tool Number.\n" -"Non copper clearing will start with the tool with the biggest \n" -"diameter, continuing until there are no more tools.\n" -"Only tools that create NCC clearing geometry will still be present\n" -"in the resulting geometry. This is because with some tools\n" -"this function will not be able to create painting geometry." -msgstr "" - -#: AppTools/ToolNCC.py:597 AppTools/ToolPaint.py:536 +#: flatcamTools/ToolNCC.py:597 flatcamTools/ToolPaint.py:537 msgid "Generate Geometry" msgstr "" -#: AppTools/ToolNCC.py:1638 +#: flatcamTools/ToolNCC.py:1425 flatcamTools/ToolPaint.py:1184 +#: flatcamTools/ToolSolderPaste.py:888 +msgid "Please enter a tool diameter to add, in Float format." +msgstr "" + +#: flatcamTools/ToolNCC.py:1456 flatcamTools/ToolNCC.py:4013 flatcamTools/ToolPaint.py:1208 +#: flatcamTools/ToolPaint.py:3603 flatcamTools/ToolSolderPaste.py:917 +msgid "Cancelled. Tool already in Tool Table." +msgstr "" + +#: flatcamTools/ToolNCC.py:1463 flatcamTools/ToolNCC.py:4030 flatcamTools/ToolPaint.py:1213 +#: flatcamTools/ToolPaint.py:3620 +msgid "New tool added to Tool Table." +msgstr "" + +#: flatcamTools/ToolNCC.py:1507 flatcamTools/ToolPaint.py:1257 +msgid "Tool from Tool Table was edited." +msgstr "" + +#: flatcamTools/ToolNCC.py:1519 flatcamTools/ToolPaint.py:1269 +#: flatcamTools/ToolSolderPaste.py:978 +msgid "Cancelled. New diameter value is already in the Tool Table." +msgstr "" + +#: flatcamTools/ToolNCC.py:1571 flatcamTools/ToolPaint.py:1367 +msgid "Delete failed. Select a tool to delete." +msgstr "" + +#: flatcamTools/ToolNCC.py:1577 flatcamTools/ToolPaint.py:1373 +msgid "Tool(s) deleted from Tool Table." +msgstr "" + +#: flatcamTools/ToolNCC.py:1619 msgid "Wrong Tool Dia value format entered, use a number." msgstr "" -#: AppTools/ToolNCC.py:1649 AppTools/ToolPaint.py:1443 +#: flatcamTools/ToolNCC.py:1628 flatcamTools/ToolPaint.py:1424 msgid "No selected tools in Tool Table." msgstr "" -#: AppTools/ToolNCC.py:2005 AppTools/ToolNCC.py:3024 +#: flatcamTools/ToolNCC.py:1704 flatcamTools/ToolPaint.py:1600 +msgid "Click the end point of the paint area." +msgstr "" + +#: flatcamTools/ToolNCC.py:1976 flatcamTools/ToolNCC.py:2964 msgid "NCC Tool. Preparing non-copper polygons." msgstr "" -#: AppTools/ToolNCC.py:2064 AppTools/ToolNCC.py:3152 +#: flatcamTools/ToolNCC.py:2035 flatcamTools/ToolNCC.py:3092 msgid "NCC Tool. Calculate 'empty' area." msgstr "" -#: AppTools/ToolNCC.py:2083 AppTools/ToolNCC.py:2192 AppTools/ToolNCC.py:2207 -#: AppTools/ToolNCC.py:3165 AppTools/ToolNCC.py:3270 AppTools/ToolNCC.py:3285 -#: AppTools/ToolNCC.py:3551 AppTools/ToolNCC.py:3652 AppTools/ToolNCC.py:3667 +#: flatcamTools/ToolNCC.py:2054 flatcamTools/ToolNCC.py:2160 flatcamTools/ToolNCC.py:2174 +#: flatcamTools/ToolNCC.py:3105 flatcamTools/ToolNCC.py:3210 flatcamTools/ToolNCC.py:3225 +#: flatcamTools/ToolNCC.py:3491 flatcamTools/ToolNCC.py:3592 flatcamTools/ToolNCC.py:3607 msgid "Buffering finished" msgstr "" -#: AppTools/ToolNCC.py:2091 AppTools/ToolNCC.py:2214 AppTools/ToolNCC.py:3173 -#: AppTools/ToolNCC.py:3292 AppTools/ToolNCC.py:3558 AppTools/ToolNCC.py:3674 +#: flatcamTools/ToolNCC.py:2062 flatcamTools/ToolNCC.py:2181 flatcamTools/ToolNCC.py:3113 +#: flatcamTools/ToolNCC.py:3232 flatcamTools/ToolNCC.py:3498 flatcamTools/ToolNCC.py:3614 msgid "Could not get the extent of the area to be non copper cleared." msgstr "" -#: AppTools/ToolNCC.py:2121 AppTools/ToolNCC.py:2200 AppTools/ToolNCC.py:3200 -#: AppTools/ToolNCC.py:3277 AppTools/ToolNCC.py:3578 AppTools/ToolNCC.py:3659 +#: flatcamTools/ToolNCC.py:2089 flatcamTools/ToolNCC.py:2167 flatcamTools/ToolNCC.py:3140 +#: flatcamTools/ToolNCC.py:3217 flatcamTools/ToolNCC.py:3518 flatcamTools/ToolNCC.py:3599 msgid "Isolation geometry is broken. Margin is less than isolation tool diameter." msgstr "" -#: AppTools/ToolNCC.py:2217 AppTools/ToolNCC.py:3296 AppTools/ToolNCC.py:3677 +#: flatcamTools/ToolNCC.py:2184 flatcamTools/ToolNCC.py:3236 flatcamTools/ToolNCC.py:3617 msgid "The selected object is not suitable for copper clearing." msgstr "" -#: AppTools/ToolNCC.py:2224 AppTools/ToolNCC.py:3303 +#: flatcamTools/ToolNCC.py:2191 flatcamTools/ToolNCC.py:3243 msgid "NCC Tool. Finished calculation of 'empty' area." msgstr "" -#: AppTools/ToolNCC.py:2267 -msgid "Clearing the polygon with the method: lines." -msgstr "" - -#: AppTools/ToolNCC.py:2277 -msgid "Failed. Clearing the polygon with the method: seed." -msgstr "" - -#: AppTools/ToolNCC.py:2286 -msgid "Failed. Clearing the polygon with the method: standard." -msgstr "" - -#: AppTools/ToolNCC.py:2300 -msgid "Geometry could not be cleared completely" -msgstr "" - -#: AppTools/ToolNCC.py:2325 AppTools/ToolNCC.py:2327 AppTools/ToolNCC.py:2973 -#: AppTools/ToolNCC.py:2975 +#: flatcamTools/ToolNCC.py:2222 flatcamTools/ToolNCC.py:2224 flatcamTools/ToolNCC.py:2916 +#: flatcamTools/ToolNCC.py:2918 msgid "Non-Copper clearing ..." msgstr "" -#: AppTools/ToolNCC.py:2377 AppTools/ToolNCC.py:3120 +#: flatcamTools/ToolNCC.py:2278 flatcamTools/ToolNCC.py:3060 msgid "NCC Tool. Finished non-copper polygons. Normal copper clearing task started." msgstr "" -#: AppTools/ToolNCC.py:2415 AppTools/ToolNCC.py:2663 +#: flatcamTools/ToolNCC.py:2312 flatcamTools/ToolNCC.py:2592 msgid "NCC Tool failed creating bounding box." msgstr "" -#: AppTools/ToolNCC.py:2430 AppTools/ToolNCC.py:2680 AppTools/ToolNCC.py:3316 -#: AppTools/ToolNCC.py:3702 +#: flatcamTools/ToolNCC.py:2326 flatcamTools/ToolNCC.py:2609 flatcamTools/ToolNCC.py:3256 +#: flatcamTools/ToolNCC.py:3642 msgid "NCC Tool clearing with tool diameter" msgstr "" -#: AppTools/ToolNCC.py:2430 AppTools/ToolNCC.py:2680 AppTools/ToolNCC.py:3316 -#: AppTools/ToolNCC.py:3702 +#: flatcamTools/ToolNCC.py:2326 flatcamTools/ToolNCC.py:2609 flatcamTools/ToolNCC.py:3256 +#: flatcamTools/ToolNCC.py:3642 msgid "started." msgstr "" -#: AppTools/ToolNCC.py:2588 AppTools/ToolNCC.py:3477 +#: flatcamTools/ToolNCC.py:2518 flatcamTools/ToolNCC.py:3417 msgid "" "There is no NCC Geometry in the file.\n" "Usually it means that the tool diameter is too big for the painted geometry.\n" "Change the painting parameters and try again." msgstr "" -#: AppTools/ToolNCC.py:2597 AppTools/ToolNCC.py:3486 +#: flatcamTools/ToolNCC.py:2527 flatcamTools/ToolNCC.py:3426 msgid "NCC Tool clear all done." msgstr "" -#: AppTools/ToolNCC.py:2600 AppTools/ToolNCC.py:3489 +#: flatcamTools/ToolNCC.py:2530 flatcamTools/ToolNCC.py:3429 msgid "NCC Tool clear all done but the copper features isolation is broken for" msgstr "" -#: AppTools/ToolNCC.py:2602 AppTools/ToolNCC.py:2888 AppTools/ToolNCC.py:3491 -#: AppTools/ToolNCC.py:3874 +#: flatcamTools/ToolNCC.py:2532 flatcamTools/ToolNCC.py:2817 flatcamTools/ToolNCC.py:3431 +#: flatcamTools/ToolNCC.py:3814 msgid "tools" msgstr "" -#: AppTools/ToolNCC.py:2884 AppTools/ToolNCC.py:3870 +#: flatcamTools/ToolNCC.py:2813 flatcamTools/ToolNCC.py:3810 msgid "NCC Tool Rest Machining clear all done." msgstr "" -#: AppTools/ToolNCC.py:2887 AppTools/ToolNCC.py:3873 +#: flatcamTools/ToolNCC.py:2816 flatcamTools/ToolNCC.py:3813 msgid "" "NCC Tool Rest Machining clear all done but the copper features isolation is broken for" msgstr "" -#: AppTools/ToolNCC.py:2985 +#: flatcamTools/ToolNCC.py:2928 msgid "NCC Tool started. Reading parameters." msgstr "" -#: AppTools/ToolNCC.py:3972 +#: flatcamTools/ToolNCC.py:3906 msgid "" "Try to use the Buffering Type = Full in Preferences -> Gerber General. Reload the Gerber " "file after this change." msgstr "" -#: AppTools/ToolOptimal.py:85 +#: flatcamTools/ToolOptimal.py:79 msgid "Number of decimals kept for found distances." msgstr "" -#: AppTools/ToolOptimal.py:93 +#: flatcamTools/ToolOptimal.py:87 msgid "Minimum distance" msgstr "" -#: AppTools/ToolOptimal.py:94 +#: flatcamTools/ToolOptimal.py:88 msgid "Display minimum distance between copper features." msgstr "" -#: AppTools/ToolOptimal.py:98 +#: flatcamTools/ToolOptimal.py:92 msgid "Determined" msgstr "" -#: AppTools/ToolOptimal.py:112 +#: flatcamTools/ToolOptimal.py:106 msgid "Occurring" msgstr "" -#: AppTools/ToolOptimal.py:113 +#: flatcamTools/ToolOptimal.py:107 msgid "How many times this minimum is found." msgstr "" -#: AppTools/ToolOptimal.py:119 +#: flatcamTools/ToolOptimal.py:113 msgid "Minimum points coordinates" msgstr "" -#: AppTools/ToolOptimal.py:120 AppTools/ToolOptimal.py:126 +#: flatcamTools/ToolOptimal.py:114 flatcamTools/ToolOptimal.py:120 msgid "Coordinates for points where minimum distance was found." msgstr "" -#: AppTools/ToolOptimal.py:139 AppTools/ToolOptimal.py:215 +#: flatcamTools/ToolOptimal.py:133 flatcamTools/ToolOptimal.py:209 msgid "Jump to selected position" msgstr "" -#: AppTools/ToolOptimal.py:141 AppTools/ToolOptimal.py:217 +#: flatcamTools/ToolOptimal.py:135 flatcamTools/ToolOptimal.py:211 msgid "" "Select a position in the Locations text box and then\n" "click this button." msgstr "" -#: AppTools/ToolOptimal.py:149 +#: flatcamTools/ToolOptimal.py:143 msgid "Other distances" msgstr "" -#: AppTools/ToolOptimal.py:150 +#: flatcamTools/ToolOptimal.py:144 msgid "" "Will display other distances in the Gerber file ordered from\n" "the minimum to the maximum, not including the absolute minimum." msgstr "" -#: AppTools/ToolOptimal.py:155 +#: flatcamTools/ToolOptimal.py:149 msgid "Other distances points coordinates" msgstr "" -#: AppTools/ToolOptimal.py:156 AppTools/ToolOptimal.py:170 AppTools/ToolOptimal.py:177 -#: AppTools/ToolOptimal.py:194 AppTools/ToolOptimal.py:201 +#: flatcamTools/ToolOptimal.py:150 flatcamTools/ToolOptimal.py:164 +#: flatcamTools/ToolOptimal.py:171 flatcamTools/ToolOptimal.py:188 +#: flatcamTools/ToolOptimal.py:195 msgid "" "Other distances and the coordinates for points\n" "where the distance was found." msgstr "" -#: AppTools/ToolOptimal.py:169 +#: flatcamTools/ToolOptimal.py:163 msgid "Gerber distances" msgstr "" -#: AppTools/ToolOptimal.py:193 +#: flatcamTools/ToolOptimal.py:187 msgid "Points coordinates" msgstr "" -#: AppTools/ToolOptimal.py:225 +#: flatcamTools/ToolOptimal.py:219 msgid "Find Minimum" msgstr "" -#: AppTools/ToolOptimal.py:227 +#: flatcamTools/ToolOptimal.py:221 msgid "" "Calculate the minimum distance between copper features,\n" "this will allow the determination of the right tool to\n" "use for isolation or copper clearing." msgstr "" -#: AppTools/ToolOptimal.py:352 +#: flatcamTools/ToolOptimal.py:346 msgid "Only Gerber objects can be evaluated." msgstr "" -#: AppTools/ToolOptimal.py:358 +#: flatcamTools/ToolOptimal.py:352 msgid "Optimal Tool. Started to search for the minimum distance between copper features." msgstr "" -#: AppTools/ToolOptimal.py:368 +#: flatcamTools/ToolOptimal.py:362 msgid "Optimal Tool. Parsing geometry for aperture" msgstr "" -#: AppTools/ToolOptimal.py:379 +#: flatcamTools/ToolOptimal.py:373 msgid "Optimal Tool. Creating a buffer for the object geometry." msgstr "" -#: AppTools/ToolOptimal.py:389 +#: flatcamTools/ToolOptimal.py:383 msgid "" "The Gerber object has one Polygon as geometry.\n" "There are no distances between geometry elements to be found." msgstr "" -#: AppTools/ToolOptimal.py:394 +#: flatcamTools/ToolOptimal.py:388 msgid "Optimal Tool. Finding the distances between each two elements. Iterations" msgstr "" -#: AppTools/ToolOptimal.py:429 +#: flatcamTools/ToolOptimal.py:423 msgid "Optimal Tool. Finding the minimum distance." msgstr "" -#: AppTools/ToolOptimal.py:445 +#: flatcamTools/ToolOptimal.py:439 msgid "Optimal Tool. Finished successfully." msgstr "" -#: AppTools/ToolPDF.py:91 AppTools/ToolPDF.py:95 +#: flatcamTools/ToolPDF.py:157 flatcamTools/ToolPDF.py:161 msgid "Open PDF" msgstr "" -#: AppTools/ToolPDF.py:98 +#: flatcamTools/ToolPDF.py:164 msgid "Open PDF cancelled" msgstr "" -#: AppTools/ToolPDF.py:122 +#: flatcamTools/ToolPDF.py:195 msgid "Parsing PDF file ..." msgstr "" -#: AppTools/ToolPDF.py:138 App_Main.py:8593 -msgid "Failed to open" -msgstr "" - -#: AppTools/ToolPDF.py:203 AppTools/ToolPcbWizard.py:445 App_Main.py:8542 -msgid "No geometry found in file" -msgstr "" - -#: AppTools/ToolPDF.py:206 AppTools/ToolPDF.py:279 +#: flatcamTools/ToolPDF.py:278 flatcamTools/ToolPDF.py:353 #, python-format msgid "Rendering PDF layer #%d ..." msgstr "" -#: AppTools/ToolPDF.py:210 AppTools/ToolPDF.py:283 +#: flatcamTools/ToolPDF.py:283 flatcamTools/ToolPDF.py:358 msgid "Open PDF file failed." msgstr "" -#: AppTools/ToolPDF.py:215 AppTools/ToolPDF.py:288 +#: flatcamTools/ToolPDF.py:289 flatcamTools/ToolPDF.py:363 msgid "Rendered" msgstr "" -#: AppTools/ToolPaint.py:81 +#: flatcamTools/ToolPaint.py:82 msgid "" "Specify the type of object to be painted.\n" "It can be of type: Gerber or Geometry.\n" @@ -13062,17 +14269,17 @@ msgid "" "of objects that will populate the 'Object' combobox." msgstr "" -#: AppTools/ToolPaint.py:103 +#: flatcamTools/ToolPaint.py:104 msgid "Object to be painted." msgstr "" -#: AppTools/ToolPaint.py:116 +#: flatcamTools/ToolPaint.py:117 msgid "" "Tools pool from which the algorithm\n" "will pick the ones used for painting." msgstr "" -#: AppTools/ToolPaint.py:133 +#: flatcamTools/ToolPaint.py:134 msgid "" "This is the Tool Number.\n" "Painting will start with the tool with the biggest diameter,\n" @@ -13082,7 +14289,7 @@ msgid "" "this function will not be able to create painting geometry." msgstr "" -#: AppTools/ToolPaint.py:145 +#: flatcamTools/ToolPaint.py:146 msgid "" "The Tool Type (TT) can be:\n" "- Circular -> it is informative only. Being circular,\n" @@ -13097,13 +14304,13 @@ msgid "" "in the resulting geometry as Isolation." msgstr "" -#: AppTools/ToolPaint.py:497 +#: flatcamTools/ToolPaint.py:498 msgid "" "The type of FlatCAM object to be used as paint reference.\n" "It can be Gerber, Excellon or Geometry." msgstr "" -#: AppTools/ToolPaint.py:538 +#: flatcamTools/ToolPaint.py:539 msgid "" "- 'Area Selection' - left mouse click to start selection of the area to be painted.\n" "Keeping a modifier key pressed (CTRL or SHIFT) will allow to add multiple areas.\n" @@ -13112,152 +14319,169 @@ msgid "" "specified by another object." msgstr "" -#: AppTools/ToolPaint.py:1412 +#: flatcamTools/ToolPaint.py:1393 #, python-format msgid "Could not retrieve object: %s" msgstr "" -#: AppTools/ToolPaint.py:1422 +#: flatcamTools/ToolPaint.py:1403 msgid "Can't do Paint on MultiGeo geometries" msgstr "" -#: AppTools/ToolPaint.py:1459 +#: flatcamTools/ToolPaint.py:1433 msgid "Click on a polygon to paint it." msgstr "" -#: AppTools/ToolPaint.py:1472 +#: flatcamTools/ToolPaint.py:1453 msgid "Click the start point of the paint area." msgstr "" -#: AppTools/ToolPaint.py:1537 +#: flatcamTools/ToolPaint.py:1518 msgid "Click to add next polygon or right click to start painting." msgstr "" -#: AppTools/ToolPaint.py:1550 +#: flatcamTools/ToolPaint.py:1531 msgid "Click to add/remove next polygon or right click to start painting." msgstr "" -#: AppTools/ToolPaint.py:2054 +#: flatcamTools/ToolPaint.py:2029 msgid "Painting polygon with method: lines." msgstr "" -#: AppTools/ToolPaint.py:2066 +#: flatcamTools/ToolPaint.py:2041 msgid "Failed. Painting polygon with method: seed." msgstr "" -#: AppTools/ToolPaint.py:2077 +#: flatcamTools/ToolPaint.py:2052 msgid "Failed. Painting polygon with method: standard." msgstr "" -#: AppTools/ToolPaint.py:2093 +#: flatcamTools/ToolPaint.py:2068 msgid "Geometry could not be painted completely" msgstr "" -#: AppTools/ToolPaint.py:2122 AppTools/ToolPaint.py:2125 AppTools/ToolPaint.py:2133 -#: AppTools/ToolPaint.py:2436 AppTools/ToolPaint.py:2439 AppTools/ToolPaint.py:2447 -#: AppTools/ToolPaint.py:2935 AppTools/ToolPaint.py:2938 AppTools/ToolPaint.py:2944 +#: flatcamTools/ToolPaint.py:2097 flatcamTools/ToolPaint.py:2100 +#: flatcamTools/ToolPaint.py:2108 flatcamTools/ToolPaint.py:2411 +#: flatcamTools/ToolPaint.py:2414 flatcamTools/ToolPaint.py:2422 +#: flatcamTools/ToolPaint.py:2910 flatcamTools/ToolPaint.py:2913 +#: flatcamTools/ToolPaint.py:2919 msgid "Paint Tool." msgstr "" -#: AppTools/ToolPaint.py:2122 AppTools/ToolPaint.py:2125 AppTools/ToolPaint.py:2133 +#: flatcamTools/ToolPaint.py:2097 flatcamTools/ToolPaint.py:2100 +#: flatcamTools/ToolPaint.py:2108 msgid "Normal painting polygon task started." msgstr "" -#: AppTools/ToolPaint.py:2123 AppTools/ToolPaint.py:2437 AppTools/ToolPaint.py:2936 +#: flatcamTools/ToolPaint.py:2098 flatcamTools/ToolPaint.py:2412 +#: flatcamTools/ToolPaint.py:2911 msgid "Buffering geometry..." msgstr "" -#: AppTools/ToolPaint.py:2145 AppTools/ToolPaint.py:2454 AppTools/ToolPaint.py:2952 +#: flatcamTools/ToolPaint.py:2120 flatcamTools/ToolPaint.py:2429 +#: flatcamTools/ToolPaint.py:2927 msgid "No polygon found." msgstr "" -#: AppTools/ToolPaint.py:2175 +#: flatcamTools/ToolPaint.py:2150 msgid "Painting polygon..." msgstr "" -#: AppTools/ToolPaint.py:2185 AppTools/ToolPaint.py:2500 AppTools/ToolPaint.py:2690 -#: AppTools/ToolPaint.py:2998 AppTools/ToolPaint.py:3177 +#: flatcamTools/ToolPaint.py:2160 flatcamTools/ToolPaint.py:2475 +#: flatcamTools/ToolPaint.py:2665 flatcamTools/ToolPaint.py:2973 +#: flatcamTools/ToolPaint.py:3152 msgid "Painting with tool diameter = " msgstr "" -#: AppTools/ToolPaint.py:2186 AppTools/ToolPaint.py:2501 AppTools/ToolPaint.py:2691 -#: AppTools/ToolPaint.py:2999 AppTools/ToolPaint.py:3178 +#: flatcamTools/ToolPaint.py:2161 flatcamTools/ToolPaint.py:2476 +#: flatcamTools/ToolPaint.py:2666 flatcamTools/ToolPaint.py:2974 +#: flatcamTools/ToolPaint.py:3153 msgid "started" msgstr "" -#: AppTools/ToolPaint.py:2211 AppTools/ToolPaint.py:2527 AppTools/ToolPaint.py:2717 -#: AppTools/ToolPaint.py:3025 AppTools/ToolPaint.py:3204 +#: flatcamTools/ToolPaint.py:2186 flatcamTools/ToolPaint.py:2502 +#: flatcamTools/ToolPaint.py:2692 flatcamTools/ToolPaint.py:3000 +#: flatcamTools/ToolPaint.py:3179 msgid "Margin parameter too big. Tool is not used" msgstr "" -#: AppTools/ToolPaint.py:2269 AppTools/ToolPaint.py:2596 AppTools/ToolPaint.py:2774 -#: AppTools/ToolPaint.py:3088 AppTools/ToolPaint.py:3266 +#: flatcamTools/ToolPaint.py:2244 flatcamTools/ToolPaint.py:2571 +#: flatcamTools/ToolPaint.py:2749 flatcamTools/ToolPaint.py:3063 +#: flatcamTools/ToolPaint.py:3241 msgid "" "Could not do Paint. Try a different combination of parameters. Or a different strategy of " "paint" msgstr "" -#: AppTools/ToolPaint.py:2326 AppTools/ToolPaint.py:2662 AppTools/ToolPaint.py:2831 -#: AppTools/ToolPaint.py:3149 AppTools/ToolPaint.py:3328 +#: flatcamTools/ToolPaint.py:2301 flatcamTools/ToolPaint.py:2637 +#: flatcamTools/ToolPaint.py:2806 flatcamTools/ToolPaint.py:3124 +#: flatcamTools/ToolPaint.py:3303 msgid "" "There is no Painting Geometry in the file.\n" "Usually it means that the tool diameter is too big for the painted geometry.\n" "Change the painting parameters and try again." msgstr "" -#: AppTools/ToolPaint.py:2349 +#: flatcamTools/ToolPaint.py:2324 msgid "Paint Single failed." msgstr "" -#: AppTools/ToolPaint.py:2355 +#: flatcamTools/ToolPaint.py:2330 msgid "Paint Single Done." msgstr "" -#: AppTools/ToolPaint.py:2357 AppTools/ToolPaint.py:2867 AppTools/ToolPaint.py:3364 +#: flatcamTools/ToolPaint.py:2332 flatcamTools/ToolPaint.py:2842 +#: flatcamTools/ToolPaint.py:3339 msgid "Polygon Paint started ..." msgstr "" -#: AppTools/ToolPaint.py:2436 AppTools/ToolPaint.py:2439 AppTools/ToolPaint.py:2447 +#: flatcamTools/ToolPaint.py:2411 flatcamTools/ToolPaint.py:2414 +#: flatcamTools/ToolPaint.py:2422 msgid "Paint all polygons task started." msgstr "" -#: AppTools/ToolPaint.py:2478 AppTools/ToolPaint.py:2976 +#: flatcamTools/ToolPaint.py:2453 flatcamTools/ToolPaint.py:2951 msgid "Painting polygons..." msgstr "" -#: AppTools/ToolPaint.py:2671 +#: flatcamTools/ToolPaint.py:2646 msgid "Paint All Done." msgstr "" -#: AppTools/ToolPaint.py:2840 AppTools/ToolPaint.py:3337 +#: flatcamTools/ToolPaint.py:2815 flatcamTools/ToolPaint.py:3312 msgid "Paint All with Rest-Machining done." msgstr "" -#: AppTools/ToolPaint.py:2859 +#: flatcamTools/ToolPaint.py:2834 msgid "Paint All failed." msgstr "" -#: AppTools/ToolPaint.py:2865 +#: flatcamTools/ToolPaint.py:2840 msgid "Paint Poly All Done." msgstr "" -#: AppTools/ToolPaint.py:2935 AppTools/ToolPaint.py:2938 AppTools/ToolPaint.py:2944 +#: flatcamTools/ToolPaint.py:2910 flatcamTools/ToolPaint.py:2913 +#: flatcamTools/ToolPaint.py:2919 msgid "Painting area task started." msgstr "" -#: AppTools/ToolPaint.py:3158 +#: flatcamTools/ToolPaint.py:3133 msgid "Paint Area Done." msgstr "" -#: AppTools/ToolPaint.py:3356 +#: flatcamTools/ToolPaint.py:3331 msgid "Paint Area failed." msgstr "" -#: AppTools/ToolPaint.py:3362 +#: flatcamTools/ToolPaint.py:3337 msgid "Paint Poly Area Done." msgstr "" -#: AppTools/ToolPanelize.py:55 +#: flatcamTools/ToolPanelize.py:34 +msgid "Panelize PCB" +msgstr "" + +#: flatcamTools/ToolPanelize.py:56 msgid "" "Specify the type of object to be panelized\n" "It can be of type: Gerber, Excellon or Geometry.\n" @@ -13265,17 +14489,17 @@ msgid "" "in the Object combobox." msgstr "" -#: AppTools/ToolPanelize.py:88 +#: flatcamTools/ToolPanelize.py:89 msgid "" "Object to be panelized. This means that it will\n" "be duplicated in an array of rows and columns." msgstr "" -#: AppTools/ToolPanelize.py:100 +#: flatcamTools/ToolPanelize.py:102 msgid "Penelization Reference" msgstr "" -#: AppTools/ToolPanelize.py:102 +#: flatcamTools/ToolPanelize.py:104 msgid "" "Choose the reference for panelization:\n" "- Object = the bounding box of a different object\n" @@ -13287,11 +14511,11 @@ msgid "" "objects in sync." msgstr "" -#: AppTools/ToolPanelize.py:123 +#: flatcamTools/ToolPanelize.py:125 msgid "Box Type" msgstr "" -#: AppTools/ToolPanelize.py:125 +#: flatcamTools/ToolPanelize.py:127 msgid "" "Specify the type of object to be used as an container for\n" "panelization. It can be: Gerber or Geometry type.\n" @@ -13299,17 +14523,17 @@ msgid "" "in the Box Object combobox." msgstr "" -#: AppTools/ToolPanelize.py:139 +#: flatcamTools/ToolPanelize.py:141 msgid "" "The actual object that is used as container for the\n" " selected object that is to be panelized." msgstr "" -#: AppTools/ToolPanelize.py:149 +#: flatcamTools/ToolPanelize.py:147 msgid "Panel Data" msgstr "" -#: AppTools/ToolPanelize.py:151 +#: flatcamTools/ToolPanelize.py:149 msgid "" "This informations will shape the resulting panel.\n" "The number of rows and columns will set how many\n" @@ -13319,128 +14543,128 @@ msgid "" "elements of the panel array." msgstr "" -#: AppTools/ToolPanelize.py:214 +#: flatcamTools/ToolPanelize.py:208 msgid "" "Choose the type of object for the panel object:\n" "- Geometry\n" "- Gerber" msgstr "" -#: AppTools/ToolPanelize.py:222 +#: flatcamTools/ToolPanelize.py:216 msgid "Constrain panel within" msgstr "" -#: AppTools/ToolPanelize.py:263 +#: flatcamTools/ToolPanelize.py:252 msgid "Panelize Object" msgstr "" -#: AppTools/ToolPanelize.py:265 AppTools/ToolRulesCheck.py:501 +#: flatcamTools/ToolPanelize.py:254 flatcamTools/ToolRulesCheck.py:501 msgid "" "Panelize the specified object around the specified box.\n" "In other words it creates multiple copies of the source object,\n" "arranged in a 2D array of rows and columns." msgstr "" -#: AppTools/ToolPanelize.py:333 +#: flatcamTools/ToolPanelize.py:322 msgid "Panel. Tool" msgstr "" -#: AppTools/ToolPanelize.py:468 +#: flatcamTools/ToolPanelize.py:457 msgid "Columns or Rows are zero value. Change them to a positive integer." msgstr "" -#: AppTools/ToolPanelize.py:505 +#: flatcamTools/ToolPanelize.py:494 msgid "Generating panel ... " msgstr "" -#: AppTools/ToolPanelize.py:788 +#: flatcamTools/ToolPanelize.py:777 msgid "Generating panel ... Adding the Gerber code." msgstr "" -#: AppTools/ToolPanelize.py:796 +#: flatcamTools/ToolPanelize.py:785 msgid "Generating panel... Spawning copies" msgstr "" -#: AppTools/ToolPanelize.py:803 +#: flatcamTools/ToolPanelize.py:792 msgid "Panel done..." msgstr "" -#: AppTools/ToolPanelize.py:806 +#: flatcamTools/ToolPanelize.py:795 #, python-brace-format msgid "{text} Too big for the constrain area. Final panel has {col} columns and {row} rows" msgstr "" -#: AppTools/ToolPanelize.py:815 +#: flatcamTools/ToolPanelize.py:804 msgid "Panel created successfully." msgstr "" -#: AppTools/ToolPcbWizard.py:31 +#: flatcamTools/ToolPcbWizard.py:31 msgid "PcbWizard Import Tool" msgstr "" -#: AppTools/ToolPcbWizard.py:40 +#: flatcamTools/ToolPcbWizard.py:40 msgid "Import 2-file Excellon" msgstr "" -#: AppTools/ToolPcbWizard.py:51 +#: flatcamTools/ToolPcbWizard.py:51 msgid "Load files" msgstr "" -#: AppTools/ToolPcbWizard.py:57 +#: flatcamTools/ToolPcbWizard.py:57 msgid "Excellon file" msgstr "" -#: AppTools/ToolPcbWizard.py:59 +#: flatcamTools/ToolPcbWizard.py:59 msgid "" "Load the Excellon file.\n" "Usually it has a .DRL extension" msgstr "" -#: AppTools/ToolPcbWizard.py:65 +#: flatcamTools/ToolPcbWizard.py:65 msgid "INF file" msgstr "" -#: AppTools/ToolPcbWizard.py:67 +#: flatcamTools/ToolPcbWizard.py:67 msgid "Load the INF file." msgstr "" -#: AppTools/ToolPcbWizard.py:79 +#: flatcamTools/ToolPcbWizard.py:79 msgid "Tool Number" msgstr "" -#: AppTools/ToolPcbWizard.py:81 +#: flatcamTools/ToolPcbWizard.py:81 msgid "Tool diameter in file units." msgstr "" -#: AppTools/ToolPcbWizard.py:87 +#: flatcamTools/ToolPcbWizard.py:87 msgid "Excellon format" msgstr "" -#: AppTools/ToolPcbWizard.py:95 +#: flatcamTools/ToolPcbWizard.py:95 msgid "Int. digits" msgstr "" -#: AppTools/ToolPcbWizard.py:97 +#: flatcamTools/ToolPcbWizard.py:97 msgid "The number of digits for the integral part of the coordinates." msgstr "" -#: AppTools/ToolPcbWizard.py:104 +#: flatcamTools/ToolPcbWizard.py:104 msgid "Frac. digits" msgstr "" -#: AppTools/ToolPcbWizard.py:106 +#: flatcamTools/ToolPcbWizard.py:106 msgid "The number of digits for the fractional part of the coordinates." msgstr "" -#: AppTools/ToolPcbWizard.py:113 +#: flatcamTools/ToolPcbWizard.py:113 msgid "No Suppression" msgstr "" -#: AppTools/ToolPcbWizard.py:114 +#: flatcamTools/ToolPcbWizard.py:114 msgid "Zeros supp." msgstr "" -#: AppTools/ToolPcbWizard.py:116 +#: flatcamTools/ToolPcbWizard.py:116 msgid "" "The type of zeros suppression used.\n" "Can be of type:\n" @@ -13449,17 +14673,17 @@ msgid "" "- No Suppression = no zero suppression" msgstr "" -#: AppTools/ToolPcbWizard.py:129 +#: flatcamTools/ToolPcbWizard.py:129 msgid "" "The type of units that the coordinates and tool\n" "diameters are using. Can be INCH or MM." msgstr "" -#: AppTools/ToolPcbWizard.py:136 +#: flatcamTools/ToolPcbWizard.py:136 msgid "Import Excellon" msgstr "" -#: AppTools/ToolPcbWizard.py:138 +#: flatcamTools/ToolPcbWizard.py:138 msgid "" "Import in FlatCAM an Excellon file\n" "that store it's information's in 2 files.\n" @@ -13467,506 +14691,501 @@ msgid "" "the other has .INF extension." msgstr "" -#: AppTools/ToolPcbWizard.py:197 +#: flatcamTools/ToolPcbWizard.py:197 msgid "PCBWizard Tool" msgstr "" -#: AppTools/ToolPcbWizard.py:291 AppTools/ToolPcbWizard.py:295 +#: flatcamTools/ToolPcbWizard.py:291 flatcamTools/ToolPcbWizard.py:295 msgid "Load PcbWizard Excellon file" msgstr "" -#: AppTools/ToolPcbWizard.py:314 AppTools/ToolPcbWizard.py:318 +#: flatcamTools/ToolPcbWizard.py:314 flatcamTools/ToolPcbWizard.py:318 msgid "Load PcbWizard INF file" msgstr "" -#: AppTools/ToolPcbWizard.py:366 +#: flatcamTools/ToolPcbWizard.py:366 msgid "" "The INF file does not contain the tool table.\n" "Try to open the Excellon file from File -> Open -> Excellon\n" "and edit the drill diameters manually." msgstr "" -#: AppTools/ToolPcbWizard.py:387 +#: flatcamTools/ToolPcbWizard.py:387 msgid "PcbWizard .INF file loaded." msgstr "" -#: AppTools/ToolPcbWizard.py:392 +#: flatcamTools/ToolPcbWizard.py:392 msgid "Main PcbWizard Excellon file loaded." msgstr "" -#: AppTools/ToolPcbWizard.py:424 App_Main.py:8520 -msgid "This is not Excellon file." -msgstr "" - -#: AppTools/ToolPcbWizard.py:427 +#: flatcamTools/ToolPcbWizard.py:427 msgid "Cannot parse file" msgstr "" -#: AppTools/ToolPcbWizard.py:450 +#: flatcamTools/ToolPcbWizard.py:450 msgid "Importing Excellon." msgstr "" -#: AppTools/ToolPcbWizard.py:457 +#: flatcamTools/ToolPcbWizard.py:457 msgid "Import Excellon file failed." msgstr "" -#: AppTools/ToolPcbWizard.py:464 +#: flatcamTools/ToolPcbWizard.py:464 msgid "Imported" msgstr "" -#: AppTools/ToolPcbWizard.py:467 +#: flatcamTools/ToolPcbWizard.py:467 msgid "Excellon merging is in progress. Please wait..." msgstr "" -#: AppTools/ToolPcbWizard.py:469 +#: flatcamTools/ToolPcbWizard.py:469 msgid "The imported Excellon file is empty." msgstr "" -#: AppTools/ToolProperties.py:116 App_Main.py:4692 App_Main.py:6803 App_Main.py:6903 -#: App_Main.py:6944 App_Main.py:6985 App_Main.py:7027 App_Main.py:7069 App_Main.py:7113 -#: App_Main.py:7157 App_Main.py:7681 App_Main.py:7685 -msgid "No object selected." -msgstr "" - -#: AppTools/ToolProperties.py:131 +#: flatcamTools/ToolProperties.py:131 msgid "Object Properties are displayed." msgstr "" -#: AppTools/ToolProperties.py:136 +#: flatcamTools/ToolProperties.py:136 msgid "Properties Tool" msgstr "" -#: AppTools/ToolProperties.py:150 +#: flatcamTools/ToolProperties.py:150 msgid "TYPE" msgstr "" -#: AppTools/ToolProperties.py:151 +#: flatcamTools/ToolProperties.py:151 msgid "NAME" msgstr "" -#: AppTools/ToolProperties.py:153 +#: flatcamTools/ToolProperties.py:153 msgid "Dimensions" msgstr "" -#: AppTools/ToolProperties.py:181 +#: flatcamTools/ToolProperties.py:181 msgid "Geo Type" msgstr "" -#: AppTools/ToolProperties.py:184 +#: flatcamTools/ToolProperties.py:184 msgid "Single-Geo" msgstr "" -#: AppTools/ToolProperties.py:185 +#: flatcamTools/ToolProperties.py:185 msgid "Multi-Geo" msgstr "" -#: AppTools/ToolProperties.py:196 +#: flatcamTools/ToolProperties.py:196 msgid "Calculating dimensions ... Please wait." msgstr "" -#: AppTools/ToolProperties.py:339 AppTools/ToolProperties.py:343 -#: AppTools/ToolProperties.py:345 +#: flatcamTools/ToolProperties.py:339 flatcamTools/ToolProperties.py:343 +#: flatcamTools/ToolProperties.py:345 msgid "Inch" msgstr "" -#: AppTools/ToolProperties.py:339 AppTools/ToolProperties.py:344 -#: AppTools/ToolProperties.py:346 +#: flatcamTools/ToolProperties.py:339 flatcamTools/ToolProperties.py:344 +#: flatcamTools/ToolProperties.py:346 msgid "Metric" msgstr "" -#: AppTools/ToolProperties.py:421 AppTools/ToolProperties.py:486 +#: flatcamTools/ToolProperties.py:421 flatcamTools/ToolProperties.py:486 msgid "Drills number" msgstr "" -#: AppTools/ToolProperties.py:422 AppTools/ToolProperties.py:488 +#: flatcamTools/ToolProperties.py:422 flatcamTools/ToolProperties.py:488 msgid "Slots number" msgstr "" -#: AppTools/ToolProperties.py:424 +#: flatcamTools/ToolProperties.py:424 msgid "Drills total number:" msgstr "" -#: AppTools/ToolProperties.py:425 +#: flatcamTools/ToolProperties.py:425 msgid "Slots total number:" msgstr "" -#: AppTools/ToolProperties.py:452 AppTools/ToolProperties.py:455 -#: AppTools/ToolProperties.py:458 AppTools/ToolProperties.py:483 +#: flatcamTools/ToolProperties.py:452 flatcamTools/ToolProperties.py:455 +#: flatcamTools/ToolProperties.py:458 flatcamTools/ToolProperties.py:483 msgid "Present" msgstr "" -#: AppTools/ToolProperties.py:453 AppTools/ToolProperties.py:484 +#: flatcamTools/ToolProperties.py:453 flatcamTools/ToolProperties.py:484 msgid "Solid Geometry" msgstr "" -#: AppTools/ToolProperties.py:456 +#: flatcamTools/ToolProperties.py:456 msgid "GCode Text" msgstr "" -#: AppTools/ToolProperties.py:459 +#: flatcamTools/ToolProperties.py:459 msgid "GCode Geometry" msgstr "" -#: AppTools/ToolProperties.py:462 +#: flatcamTools/ToolProperties.py:462 msgid "Data" msgstr "" -#: AppTools/ToolProperties.py:495 +#: flatcamTools/ToolProperties.py:495 msgid "Depth of Cut" msgstr "" -#: AppTools/ToolProperties.py:507 +#: flatcamTools/ToolProperties.py:507 msgid "Clearance Height" msgstr "" -#: AppTools/ToolProperties.py:539 +#: flatcamTools/ToolProperties.py:539 msgid "Routing time" msgstr "" -#: AppTools/ToolProperties.py:546 +#: flatcamTools/ToolProperties.py:546 msgid "Travelled distance" msgstr "" -#: AppTools/ToolProperties.py:564 +#: flatcamTools/ToolProperties.py:564 msgid "Width" msgstr "" -#: AppTools/ToolProperties.py:570 AppTools/ToolProperties.py:578 +#: flatcamTools/ToolProperties.py:570 flatcamTools/ToolProperties.py:578 msgid "Box Area" msgstr "" -#: AppTools/ToolProperties.py:573 AppTools/ToolProperties.py:581 +#: flatcamTools/ToolProperties.py:573 flatcamTools/ToolProperties.py:581 msgid "Convex_Hull Area" msgstr "" -#: AppTools/ToolProperties.py:588 AppTools/ToolProperties.py:591 +#: flatcamTools/ToolProperties.py:588 flatcamTools/ToolProperties.py:591 msgid "Copper Area" msgstr "" -#: AppTools/ToolPunchGerber.py:30 AppTools/ToolPunchGerber.py:323 +#: flatcamTools/ToolPunchGerber.py:30 flatcamTools/ToolPunchGerber.py:323 msgid "Punch Gerber" msgstr "" -#: AppTools/ToolPunchGerber.py:65 +#: flatcamTools/ToolPunchGerber.py:65 msgid "Gerber into which to punch holes" msgstr "" -#: AppTools/ToolPunchGerber.py:85 +#: flatcamTools/ToolPunchGerber.py:85 msgid "ALL" msgstr "" -#: AppTools/ToolPunchGerber.py:166 +#: flatcamTools/ToolPunchGerber.py:166 msgid "Remove the geometry of Excellon from the Gerber to create the holes in pads." msgstr "" -#: AppTools/ToolPunchGerber.py:325 +#: flatcamTools/ToolPunchGerber.py:325 msgid "" "Create a Gerber object from the selected object, within\n" "the specified box." msgstr "" -#: AppTools/ToolPunchGerber.py:425 +#: flatcamTools/ToolPunchGerber.py:425 msgid "Punch Tool" msgstr "" -#: AppTools/ToolPunchGerber.py:599 +#: flatcamTools/ToolPunchGerber.py:599 msgid "The value of the fixed diameter is 0.0. Aborting." msgstr "" -#: AppTools/ToolPunchGerber.py:602 +#: flatcamTools/ToolPunchGerber.py:607 flatcamTools/ToolPunchGerber.py:619 msgid "" "Could not generate punched hole Gerber because the punch hole size is bigger than some of " "the apertures in the Gerber object." msgstr "" -#: AppTools/ToolPunchGerber.py:665 +#: flatcamTools/ToolPunchGerber.py:656 msgid "" "Could not generate punched hole Gerber because the newly created object geometry is the " "same as the one in the source object geometry..." msgstr "" -#: AppTools/ToolQRCode.py:80 +#: flatcamTools/ToolQRCode.py:80 msgid "Gerber Object to which the QRCode will be added." msgstr "" -#: AppTools/ToolQRCode.py:116 +#: flatcamTools/ToolQRCode.py:93 +msgid "QRCode Parameters" +msgstr "" + +#: flatcamTools/ToolQRCode.py:95 msgid "The parameters used to shape the QRCode." msgstr "" -#: AppTools/ToolQRCode.py:216 +#: flatcamTools/ToolQRCode.py:207 msgid "Export QRCode" msgstr "" -#: AppTools/ToolQRCode.py:218 +#: flatcamTools/ToolQRCode.py:209 msgid "" "Show a set of controls allowing to export the QRCode\n" "to a SVG file or an PNG file." msgstr "" -#: AppTools/ToolQRCode.py:257 +#: flatcamTools/ToolQRCode.py:248 msgid "Transparent back color" msgstr "" -#: AppTools/ToolQRCode.py:282 +#: flatcamTools/ToolQRCode.py:273 msgid "Export QRCode SVG" msgstr "" -#: AppTools/ToolQRCode.py:284 +#: flatcamTools/ToolQRCode.py:275 msgid "Export a SVG file with the QRCode content." msgstr "" -#: AppTools/ToolQRCode.py:295 +#: flatcamTools/ToolQRCode.py:286 msgid "Export QRCode PNG" msgstr "" -#: AppTools/ToolQRCode.py:297 +#: flatcamTools/ToolQRCode.py:288 msgid "Export a PNG image file with the QRCode content." msgstr "" -#: AppTools/ToolQRCode.py:308 +#: flatcamTools/ToolQRCode.py:299 msgid "Insert QRCode" msgstr "" -#: AppTools/ToolQRCode.py:310 +#: flatcamTools/ToolQRCode.py:301 msgid "Create the QRCode object." msgstr "" -#: AppTools/ToolQRCode.py:424 AppTools/ToolQRCode.py:759 AppTools/ToolQRCode.py:808 +#: flatcamTools/ToolQRCode.py:415 flatcamTools/ToolQRCode.py:750 +#: flatcamTools/ToolQRCode.py:799 msgid "Cancelled. There is no QRCode Data in the text box." msgstr "" -#: AppTools/ToolQRCode.py:443 +#: flatcamTools/ToolQRCode.py:434 msgid "Generating QRCode geometry" msgstr "" -#: AppTools/ToolQRCode.py:483 +#: flatcamTools/ToolQRCode.py:474 msgid "Click on the Destination point ..." msgstr "" -#: AppTools/ToolQRCode.py:598 +#: flatcamTools/ToolQRCode.py:589 msgid "QRCode Tool done." msgstr "" -#: AppTools/ToolQRCode.py:791 AppTools/ToolQRCode.py:795 +#: flatcamTools/ToolQRCode.py:782 flatcamTools/ToolQRCode.py:786 msgid "Export PNG" msgstr "" -#: AppTools/ToolQRCode.py:838 AppTools/ToolQRCode.py:842 App_Main.py:6835 App_Main.py:6839 -msgid "Export SVG" -msgstr "" - -#: AppTools/ToolRulesCheck.py:33 +#: flatcamTools/ToolRulesCheck.py:33 msgid "Check Rules" msgstr "" -#: AppTools/ToolRulesCheck.py:63 +#: flatcamTools/ToolRulesCheck.py:61 +msgid "Gerber Files" +msgstr "" + +#: flatcamTools/ToolRulesCheck.py:63 msgid "Gerber objects for which to check rules." msgstr "" -#: AppTools/ToolRulesCheck.py:78 +#: flatcamTools/ToolRulesCheck.py:78 msgid "Top" msgstr "" -#: AppTools/ToolRulesCheck.py:80 +#: flatcamTools/ToolRulesCheck.py:80 msgid "The Top Gerber Copper object for which rules are checked." msgstr "" -#: AppTools/ToolRulesCheck.py:96 +#: flatcamTools/ToolRulesCheck.py:96 msgid "Bottom" msgstr "" -#: AppTools/ToolRulesCheck.py:98 +#: flatcamTools/ToolRulesCheck.py:98 msgid "The Bottom Gerber Copper object for which rules are checked." msgstr "" -#: AppTools/ToolRulesCheck.py:114 +#: flatcamTools/ToolRulesCheck.py:114 msgid "SM Top" msgstr "" -#: AppTools/ToolRulesCheck.py:116 +#: flatcamTools/ToolRulesCheck.py:116 msgid "The Top Gerber Solder Mask object for which rules are checked." msgstr "" -#: AppTools/ToolRulesCheck.py:132 +#: flatcamTools/ToolRulesCheck.py:132 msgid "SM Bottom" msgstr "" -#: AppTools/ToolRulesCheck.py:134 +#: flatcamTools/ToolRulesCheck.py:134 msgid "The Bottom Gerber Solder Mask object for which rules are checked." msgstr "" -#: AppTools/ToolRulesCheck.py:150 +#: flatcamTools/ToolRulesCheck.py:150 msgid "Silk Top" msgstr "" -#: AppTools/ToolRulesCheck.py:152 +#: flatcamTools/ToolRulesCheck.py:152 msgid "The Top Gerber Silkscreen object for which rules are checked." msgstr "" -#: AppTools/ToolRulesCheck.py:168 +#: flatcamTools/ToolRulesCheck.py:168 msgid "Silk Bottom" msgstr "" -#: AppTools/ToolRulesCheck.py:170 +#: flatcamTools/ToolRulesCheck.py:170 msgid "The Bottom Gerber Silkscreen object for which rules are checked." msgstr "" -#: AppTools/ToolRulesCheck.py:188 +#: flatcamTools/ToolRulesCheck.py:188 msgid "The Gerber Outline (Cutout) object for which rules are checked." msgstr "" -#: AppTools/ToolRulesCheck.py:201 +#: flatcamTools/ToolRulesCheck.py:199 +msgid "Excellon Objects" +msgstr "" + +#: flatcamTools/ToolRulesCheck.py:201 msgid "Excellon objects for which to check rules." msgstr "" -#: AppTools/ToolRulesCheck.py:213 +#: flatcamTools/ToolRulesCheck.py:213 msgid "Excellon 1" msgstr "" -#: AppTools/ToolRulesCheck.py:215 +#: flatcamTools/ToolRulesCheck.py:215 msgid "" "Excellon object for which to check rules.\n" "Holds the plated holes or a general Excellon file content." msgstr "" -#: AppTools/ToolRulesCheck.py:232 +#: flatcamTools/ToolRulesCheck.py:232 msgid "Excellon 2" msgstr "" -#: AppTools/ToolRulesCheck.py:234 +#: flatcamTools/ToolRulesCheck.py:234 msgid "" "Excellon object for which to check rules.\n" "Holds the non-plated holes." msgstr "" -#: AppTools/ToolRulesCheck.py:247 +#: flatcamTools/ToolRulesCheck.py:247 msgid "All Rules" msgstr "" -#: AppTools/ToolRulesCheck.py:249 +#: flatcamTools/ToolRulesCheck.py:249 msgid "This check/uncheck all the rules below." msgstr "" -#: AppTools/ToolRulesCheck.py:499 +#: flatcamTools/ToolRulesCheck.py:499 msgid "Run Rules Check" msgstr "" -#: AppTools/ToolRulesCheck.py:1158 AppTools/ToolRulesCheck.py:1218 -#: AppTools/ToolRulesCheck.py:1255 AppTools/ToolRulesCheck.py:1327 -#: AppTools/ToolRulesCheck.py:1381 AppTools/ToolRulesCheck.py:1419 -#: AppTools/ToolRulesCheck.py:1484 +#: flatcamTools/ToolRulesCheck.py:1158 flatcamTools/ToolRulesCheck.py:1218 +#: flatcamTools/ToolRulesCheck.py:1255 flatcamTools/ToolRulesCheck.py:1327 +#: flatcamTools/ToolRulesCheck.py:1381 flatcamTools/ToolRulesCheck.py:1419 +#: flatcamTools/ToolRulesCheck.py:1484 msgid "Value is not valid." msgstr "" -#: AppTools/ToolRulesCheck.py:1172 +#: flatcamTools/ToolRulesCheck.py:1172 msgid "TOP -> Copper to Copper clearance" msgstr "" -#: AppTools/ToolRulesCheck.py:1183 +#: flatcamTools/ToolRulesCheck.py:1183 msgid "BOTTOM -> Copper to Copper clearance" msgstr "" -#: AppTools/ToolRulesCheck.py:1188 AppTools/ToolRulesCheck.py:1282 -#: AppTools/ToolRulesCheck.py:1446 +#: flatcamTools/ToolRulesCheck.py:1188 flatcamTools/ToolRulesCheck.py:1282 +#: flatcamTools/ToolRulesCheck.py:1446 msgid "At least one Gerber object has to be selected for this rule but none is selected." msgstr "" -#: AppTools/ToolRulesCheck.py:1224 +#: flatcamTools/ToolRulesCheck.py:1224 msgid "One of the copper Gerber objects or the Outline Gerber object is not valid." msgstr "" -#: AppTools/ToolRulesCheck.py:1237 AppTools/ToolRulesCheck.py:1401 +#: flatcamTools/ToolRulesCheck.py:1237 flatcamTools/ToolRulesCheck.py:1401 msgid "Outline Gerber object presence is mandatory for this rule but it is not selected." msgstr "" -#: AppTools/ToolRulesCheck.py:1254 AppTools/ToolRulesCheck.py:1281 +#: flatcamTools/ToolRulesCheck.py:1254 flatcamTools/ToolRulesCheck.py:1281 msgid "Silk to Silk clearance" msgstr "" -#: AppTools/ToolRulesCheck.py:1267 +#: flatcamTools/ToolRulesCheck.py:1267 msgid "TOP -> Silk to Silk clearance" msgstr "" -#: AppTools/ToolRulesCheck.py:1277 +#: flatcamTools/ToolRulesCheck.py:1277 msgid "BOTTOM -> Silk to Silk clearance" msgstr "" -#: AppTools/ToolRulesCheck.py:1333 +#: flatcamTools/ToolRulesCheck.py:1333 msgid "One or more of the Gerber objects is not valid." msgstr "" -#: AppTools/ToolRulesCheck.py:1341 +#: flatcamTools/ToolRulesCheck.py:1341 msgid "TOP -> Silk to Solder Mask Clearance" msgstr "" -#: AppTools/ToolRulesCheck.py:1347 +#: flatcamTools/ToolRulesCheck.py:1347 msgid "BOTTOM -> Silk to Solder Mask Clearance" msgstr "" -#: AppTools/ToolRulesCheck.py:1351 +#: flatcamTools/ToolRulesCheck.py:1351 msgid "Both Silk and Solder Mask Gerber objects has to be either both Top or both Bottom." msgstr "" -#: AppTools/ToolRulesCheck.py:1387 +#: flatcamTools/ToolRulesCheck.py:1387 msgid "One of the Silk Gerber objects or the Outline Gerber object is not valid." msgstr "" -#: AppTools/ToolRulesCheck.py:1431 +#: flatcamTools/ToolRulesCheck.py:1431 msgid "TOP -> Minimum Solder Mask Sliver" msgstr "" -#: AppTools/ToolRulesCheck.py:1441 +#: flatcamTools/ToolRulesCheck.py:1441 msgid "BOTTOM -> Minimum Solder Mask Sliver" msgstr "" -#: AppTools/ToolRulesCheck.py:1490 +#: flatcamTools/ToolRulesCheck.py:1490 msgid "One of the Copper Gerber objects or the Excellon objects is not valid." msgstr "" -#: AppTools/ToolRulesCheck.py:1506 +#: flatcamTools/ToolRulesCheck.py:1506 msgid "Excellon object presence is mandatory for this rule but none is selected." msgstr "" -#: AppTools/ToolRulesCheck.py:1579 AppTools/ToolRulesCheck.py:1592 -#: AppTools/ToolRulesCheck.py:1603 AppTools/ToolRulesCheck.py:1616 +#: flatcamTools/ToolRulesCheck.py:1579 flatcamTools/ToolRulesCheck.py:1592 +#: flatcamTools/ToolRulesCheck.py:1603 flatcamTools/ToolRulesCheck.py:1616 msgid "STATUS" msgstr "" -#: AppTools/ToolRulesCheck.py:1582 AppTools/ToolRulesCheck.py:1606 +#: flatcamTools/ToolRulesCheck.py:1582 flatcamTools/ToolRulesCheck.py:1606 msgid "FAILED" msgstr "" -#: AppTools/ToolRulesCheck.py:1595 AppTools/ToolRulesCheck.py:1619 +#: flatcamTools/ToolRulesCheck.py:1595 flatcamTools/ToolRulesCheck.py:1619 msgid "PASSED" msgstr "" -#: AppTools/ToolRulesCheck.py:1596 AppTools/ToolRulesCheck.py:1620 +#: flatcamTools/ToolRulesCheck.py:1596 flatcamTools/ToolRulesCheck.py:1620 msgid "Violations: There are no violations for the current rule." msgstr "" -#: AppTools/ToolShell.py:59 -msgid "Clear the text." -msgstr "" - -#: AppTools/ToolShell.py:91 AppTools/ToolShell.py:93 +#: flatcamTools/ToolShell.py:74 flatcamTools/ToolShell.py:76 msgid "...processing..." msgstr "" -#: AppTools/ToolSolderPaste.py:37 +#: flatcamTools/ToolSolderPaste.py:37 msgid "Solder Paste Tool" msgstr "" -#: AppTools/ToolSolderPaste.py:68 -msgid "Gerber Solderpaste object." +#: flatcamTools/ToolSolderPaste.py:69 +msgid "Gerber Solder paste object. " msgstr "" -#: AppTools/ToolSolderPaste.py:81 +#: flatcamTools/ToolSolderPaste.py:76 msgid "" "Tools pool from which the algorithm\n" "will pick the ones used for dispensing solder paste." msgstr "" -#: AppTools/ToolSolderPaste.py:96 +#: flatcamTools/ToolSolderPaste.py:91 msgid "" "This is the Tool Number.\n" "The solder dispensing will start with the tool with the biggest \n" @@ -13975,80 +15194,80 @@ msgid "" " with solder paste, the app will issue a warning message box." msgstr "" -#: AppTools/ToolSolderPaste.py:103 +#: flatcamTools/ToolSolderPaste.py:98 msgid "" "Nozzle tool Diameter. It's value (in current FlatCAM units)\n" "is the width of the solder paste dispensed." msgstr "" -#: AppTools/ToolSolderPaste.py:110 +#: flatcamTools/ToolSolderPaste.py:105 msgid "New Nozzle Tool" msgstr "" -#: AppTools/ToolSolderPaste.py:129 +#: flatcamTools/ToolSolderPaste.py:124 msgid "" "Add a new nozzle tool to the Tool Table\n" "with the diameter specified above." msgstr "" -#: AppTools/ToolSolderPaste.py:151 +#: flatcamTools/ToolSolderPaste.py:136 +msgid "Generate solder paste dispensing geometry." +msgstr "" + +#: flatcamTools/ToolSolderPaste.py:155 msgid "STEP 1" msgstr "" -#: AppTools/ToolSolderPaste.py:153 +#: flatcamTools/ToolSolderPaste.py:157 msgid "" "First step is to select a number of nozzle tools for usage\n" "and then optionally modify the GCode parameters below." msgstr "" -#: AppTools/ToolSolderPaste.py:156 +#: flatcamTools/ToolSolderPaste.py:160 msgid "" "Select tools.\n" "Modify parameters." msgstr "" -#: AppTools/ToolSolderPaste.py:276 +#: flatcamTools/ToolSolderPaste.py:280 msgid "" "Feedrate (speed) while moving up vertically\n" " to Dispense position (on Z plane)." msgstr "" -#: AppTools/ToolSolderPaste.py:346 +#: flatcamTools/ToolSolderPaste.py:350 msgid "" "Generate GCode for Solder Paste dispensing\n" "on PCB pads." msgstr "" -#: AppTools/ToolSolderPaste.py:367 +#: flatcamTools/ToolSolderPaste.py:371 msgid "STEP 2" msgstr "" -#: AppTools/ToolSolderPaste.py:369 +#: flatcamTools/ToolSolderPaste.py:373 msgid "" "Second step is to create a solder paste dispensing\n" "geometry out of an Solder Paste Mask Gerber file." msgstr "" -#: AppTools/ToolSolderPaste.py:375 -msgid "Generate solder paste dispensing geometry." -msgstr "" - -#: AppTools/ToolSolderPaste.py:398 +#: flatcamTools/ToolSolderPaste.py:390 msgid "Geo Result" msgstr "" -#: AppTools/ToolSolderPaste.py:400 +#: flatcamTools/ToolSolderPaste.py:392 msgid "" "Geometry Solder Paste object.\n" "The name of the object has to end in:\n" "'_solderpaste' as a protection." msgstr "" -#: AppTools/ToolSolderPaste.py:409 +#: flatcamTools/ToolSolderPaste.py:401 msgid "STEP 3" msgstr "" -#: AppTools/ToolSolderPaste.py:411 +#: flatcamTools/ToolSolderPaste.py:403 msgid "" "Third step is to select a solder paste dispensing geometry,\n" "and then generate a CNCJob object.\n" @@ -14058,11 +15277,11 @@ msgid "" "and only after that you can generate an updated CNCJob." msgstr "" -#: AppTools/ToolSolderPaste.py:432 +#: flatcamTools/ToolSolderPaste.py:424 msgid "CNC Result" msgstr "" -#: AppTools/ToolSolderPaste.py:434 +#: flatcamTools/ToolSolderPaste.py:426 msgid "" "CNCJob Solder paste object.\n" "In order to enable the GCode save section,\n" @@ -14070,138 +15289,142 @@ msgid "" "'_solderpaste' as a protection." msgstr "" -#: AppTools/ToolSolderPaste.py:444 +#: flatcamTools/ToolSolderPaste.py:436 msgid "View GCode" msgstr "" -#: AppTools/ToolSolderPaste.py:446 +#: flatcamTools/ToolSolderPaste.py:438 msgid "" "View the generated GCode for Solder Paste dispensing\n" "on PCB pads." msgstr "" -#: AppTools/ToolSolderPaste.py:456 +#: flatcamTools/ToolSolderPaste.py:448 msgid "Save GCode" msgstr "" -#: AppTools/ToolSolderPaste.py:458 +#: flatcamTools/ToolSolderPaste.py:450 msgid "" "Save the generated GCode for Solder Paste dispensing\n" "on PCB pads, to a file." msgstr "" -#: AppTools/ToolSolderPaste.py:468 +#: flatcamTools/ToolSolderPaste.py:460 msgid "STEP 4" msgstr "" -#: AppTools/ToolSolderPaste.py:470 +#: flatcamTools/ToolSolderPaste.py:462 msgid "" "Fourth step (and last) is to select a CNCJob made from \n" "a solder paste dispensing geometry, and then view/save it's GCode." msgstr "" -#: AppTools/ToolSolderPaste.py:930 +#: flatcamTools/ToolSolderPaste.py:922 msgid "New Nozzle tool added to Tool Table." msgstr "" -#: AppTools/ToolSolderPaste.py:973 +#: flatcamTools/ToolSolderPaste.py:965 msgid "Nozzle tool from Tool Table was edited." msgstr "" -#: AppTools/ToolSolderPaste.py:1032 +#: flatcamTools/ToolSolderPaste.py:1024 msgid "Delete failed. Select a Nozzle tool to delete." msgstr "" -#: AppTools/ToolSolderPaste.py:1038 +#: flatcamTools/ToolSolderPaste.py:1030 msgid "Nozzle tool(s) deleted from Tool Table." msgstr "" -#: AppTools/ToolSolderPaste.py:1094 +#: flatcamTools/ToolSolderPaste.py:1086 msgid "No SolderPaste mask Gerber object loaded." msgstr "" -#: AppTools/ToolSolderPaste.py:1112 +#: flatcamTools/ToolSolderPaste.py:1104 msgid "Creating Solder Paste dispensing geometry." msgstr "" -#: AppTools/ToolSolderPaste.py:1125 +#: flatcamTools/ToolSolderPaste.py:1117 msgid "No Nozzle tools in the tool table." msgstr "" -#: AppTools/ToolSolderPaste.py:1251 +#: flatcamTools/ToolSolderPaste.py:1243 msgid "Cancelled. Empty file, it has no geometry..." msgstr "" -#: AppTools/ToolSolderPaste.py:1254 +#: flatcamTools/ToolSolderPaste.py:1246 msgid "Solder Paste geometry generated successfully" msgstr "" -#: AppTools/ToolSolderPaste.py:1261 +#: flatcamTools/ToolSolderPaste.py:1253 msgid "Some or all pads have no solder due of inadequate nozzle diameters..." msgstr "" -#: AppTools/ToolSolderPaste.py:1275 +#: flatcamTools/ToolSolderPaste.py:1267 msgid "Generating Solder Paste dispensing geometry..." msgstr "" -#: AppTools/ToolSolderPaste.py:1295 +#: flatcamTools/ToolSolderPaste.py:1287 msgid "There is no Geometry object available." msgstr "" -#: AppTools/ToolSolderPaste.py:1300 +#: flatcamTools/ToolSolderPaste.py:1292 msgid "This Geometry can't be processed. NOT a solder_paste_tool geometry." msgstr "" -#: AppTools/ToolSolderPaste.py:1336 +#: flatcamTools/ToolSolderPaste.py:1328 msgid "An internal error has ocurred. See shell.\n" msgstr "" -#: AppTools/ToolSolderPaste.py:1401 +#: flatcamTools/ToolSolderPaste.py:1393 msgid "ToolSolderPaste CNCjob created" msgstr "" -#: AppTools/ToolSolderPaste.py:1420 +#: flatcamTools/ToolSolderPaste.py:1412 msgid "SP GCode Editor" msgstr "" -#: AppTools/ToolSolderPaste.py:1432 AppTools/ToolSolderPaste.py:1437 -#: AppTools/ToolSolderPaste.py:1492 +#: flatcamTools/ToolSolderPaste.py:1424 flatcamTools/ToolSolderPaste.py:1429 +#: flatcamTools/ToolSolderPaste.py:1484 msgid "This CNCJob object can't be processed. NOT a solder_paste_tool CNCJob object." msgstr "" -#: AppTools/ToolSolderPaste.py:1462 +#: flatcamTools/ToolSolderPaste.py:1454 msgid "No Gcode in the object" msgstr "" -#: AppTools/ToolSolderPaste.py:1502 +#: flatcamTools/ToolSolderPaste.py:1494 msgid "Export GCode ..." msgstr "" -#: AppTools/ToolSolderPaste.py:1550 +#: flatcamTools/ToolSolderPaste.py:1542 msgid "Solder paste dispenser GCode file saved to" msgstr "" -#: AppTools/ToolSub.py:83 +#: flatcamTools/ToolSub.py:65 +msgid "Gerber Objects" +msgstr "" + +#: flatcamTools/ToolSub.py:78 msgid "" "Gerber object from which to subtract\n" "the subtractor Gerber object." msgstr "" -#: AppTools/ToolSub.py:96 AppTools/ToolSub.py:151 +#: flatcamTools/ToolSub.py:91 flatcamTools/ToolSub.py:146 msgid "Subtractor" msgstr "" -#: AppTools/ToolSub.py:98 +#: flatcamTools/ToolSub.py:93 msgid "" "Gerber object that will be subtracted\n" "from the target Gerber object." msgstr "" -#: AppTools/ToolSub.py:105 +#: flatcamTools/ToolSub.py:100 msgid "Subtract Gerber" msgstr "" -#: AppTools/ToolSub.py:107 +#: flatcamTools/ToolSub.py:102 msgid "" "Will remove the area occupied by the subtractor\n" "Gerber from the Target Gerber.\n" @@ -14209,1676 +15432,259 @@ msgid "" "over the soldermask." msgstr "" -#: AppTools/ToolSub.py:138 +#: flatcamTools/ToolSub.py:120 +msgid "Geometry Objects" +msgstr "" + +#: flatcamTools/ToolSub.py:133 msgid "" "Geometry object from which to subtract\n" "the subtractor Geometry object." msgstr "" -#: AppTools/ToolSub.py:153 +#: flatcamTools/ToolSub.py:148 msgid "" "Geometry object that will be subtracted\n" "from the target Geometry object." msgstr "" -#: AppTools/ToolSub.py:161 +#: flatcamTools/ToolSub.py:156 msgid "Checking this will close the paths cut by the Geometry subtractor object." msgstr "" -#: AppTools/ToolSub.py:164 +#: flatcamTools/ToolSub.py:159 msgid "Subtract Geometry" msgstr "" -#: AppTools/ToolSub.py:166 +#: flatcamTools/ToolSub.py:161 msgid "" "Will remove the area occupied by the subtractor\n" "Geometry from the Target Geometry." msgstr "" -#: AppTools/ToolSub.py:264 +#: flatcamTools/ToolSub.py:263 msgid "Sub Tool" msgstr "" -#: AppTools/ToolSub.py:285 AppTools/ToolSub.py:490 +#: flatcamTools/ToolSub.py:284 flatcamTools/ToolSub.py:489 msgid "No Target object loaded." msgstr "" -#: AppTools/ToolSub.py:288 +#: flatcamTools/ToolSub.py:287 msgid "Loading geometry from Gerber objects." msgstr "" -#: AppTools/ToolSub.py:300 AppTools/ToolSub.py:505 +#: flatcamTools/ToolSub.py:299 flatcamTools/ToolSub.py:504 msgid "No Subtractor object loaded." msgstr "" -#: AppTools/ToolSub.py:342 +#: flatcamTools/ToolSub.py:331 +msgid "Processing geometry from Subtractor Gerber object." +msgstr "" + +#: flatcamTools/ToolSub.py:352 +msgid "Parsing geometry for aperture" +msgstr "" + +#: flatcamTools/ToolSub.py:413 msgid "Finished parsing geometry for aperture" msgstr "" -#: AppTools/ToolSub.py:344 -msgid "Subtraction aperture processing finished." -msgstr "" - -#: AppTools/ToolSub.py:464 AppTools/ToolSub.py:662 +#: flatcamTools/ToolSub.py:458 flatcamTools/ToolSub.py:661 msgid "Generating new object ..." msgstr "" -#: AppTools/ToolSub.py:467 AppTools/ToolSub.py:666 AppTools/ToolSub.py:745 +#: flatcamTools/ToolSub.py:462 flatcamTools/ToolSub.py:665 flatcamTools/ToolSub.py:746 msgid "Generating new object failed." msgstr "" -#: AppTools/ToolSub.py:471 AppTools/ToolSub.py:672 +#: flatcamTools/ToolSub.py:467 flatcamTools/ToolSub.py:671 msgid "Created" msgstr "" -#: AppTools/ToolSub.py:519 +#: flatcamTools/ToolSub.py:518 msgid "Currently, the Subtractor geometry cannot be of type Multigeo." msgstr "" -#: AppTools/ToolSub.py:564 +#: flatcamTools/ToolSub.py:563 msgid "Parsing solid_geometry ..." msgstr "" -#: AppTools/ToolSub.py:566 +#: flatcamTools/ToolSub.py:565 msgid "Parsing solid_geometry for tool" msgstr "" -#: AppTools/ToolTransform.py:23 +#: flatcamTools/ToolTransform.py:23 msgid "Object Transform" msgstr "" -#: AppTools/ToolTransform.py:78 +#: flatcamTools/ToolTransform.py:78 msgid "" "Rotate the selected object(s).\n" "The point of reference is the middle of\n" "the bounding box for all selected objects." msgstr "" -#: AppTools/ToolTransform.py:99 AppTools/ToolTransform.py:120 +#: flatcamTools/ToolTransform.py:99 flatcamTools/ToolTransform.py:120 msgid "" "Angle for Skew action, in degrees.\n" "Float number between -360 and 360." msgstr "" -#: AppTools/ToolTransform.py:109 AppTools/ToolTransform.py:130 +#: flatcamTools/ToolTransform.py:109 flatcamTools/ToolTransform.py:130 msgid "" "Skew/shear the selected object(s).\n" "The point of reference is the middle of\n" "the bounding box for all selected objects." msgstr "" -#: AppTools/ToolTransform.py:159 AppTools/ToolTransform.py:179 +#: flatcamTools/ToolTransform.py:159 flatcamTools/ToolTransform.py:179 msgid "" "Scale the selected object(s).\n" "The point of reference depends on \n" "the Scale reference checkbox state." msgstr "" -#: AppTools/ToolTransform.py:228 AppTools/ToolTransform.py:248 +#: flatcamTools/ToolTransform.py:228 flatcamTools/ToolTransform.py:248 msgid "" "Offset the selected object(s).\n" "The point of reference is the middle of\n" "the bounding box for all selected objects.\n" msgstr "" -#: AppTools/ToolTransform.py:268 AppTools/ToolTransform.py:273 +#: flatcamTools/ToolTransform.py:268 flatcamTools/ToolTransform.py:273 msgid "Flip the selected object(s) over the X axis." msgstr "" -#: AppTools/ToolTransform.py:297 +#: flatcamTools/ToolTransform.py:297 msgid "Ref. Point" msgstr "" -#: AppTools/ToolTransform.py:348 +#: flatcamTools/ToolTransform.py:348 msgid "" "Create the buffer effect on each geometry,\n" "element from the selected object, using the distance." msgstr "" -#: AppTools/ToolTransform.py:374 +#: flatcamTools/ToolTransform.py:374 msgid "" "Create the buffer effect on each geometry,\n" "element from the selected object, using the factor." msgstr "" -#: AppTools/ToolTransform.py:479 +#: flatcamTools/ToolTransform.py:479 msgid "Buffer D" msgstr "" -#: AppTools/ToolTransform.py:480 +#: flatcamTools/ToolTransform.py:480 msgid "Buffer F" msgstr "" -#: AppTools/ToolTransform.py:557 +#: flatcamTools/ToolTransform.py:557 msgid "Rotate transformation can not be done for a value of 0." msgstr "" -#: AppTools/ToolTransform.py:596 AppTools/ToolTransform.py:619 +#: flatcamTools/ToolTransform.py:596 flatcamTools/ToolTransform.py:619 msgid "Scale transformation can not be done for a factor of 0 or 1." msgstr "" -#: AppTools/ToolTransform.py:634 AppTools/ToolTransform.py:644 +#: flatcamTools/ToolTransform.py:634 flatcamTools/ToolTransform.py:644 msgid "Offset transformation can not be done for a value of 0." msgstr "" -#: AppTools/ToolTransform.py:676 +#: flatcamTools/ToolTransform.py:676 msgid "No object selected. Please Select an object to rotate!" msgstr "" -#: AppTools/ToolTransform.py:702 +#: flatcamTools/ToolTransform.py:702 msgid "CNCJob objects can't be rotated." msgstr "" -#: AppTools/ToolTransform.py:710 +#: flatcamTools/ToolTransform.py:710 msgid "Rotate done" msgstr "" -#: AppTools/ToolTransform.py:713 AppTools/ToolTransform.py:783 AppTools/ToolTransform.py:833 -#: AppTools/ToolTransform.py:887 AppTools/ToolTransform.py:917 AppTools/ToolTransform.py:953 +#: flatcamTools/ToolTransform.py:713 flatcamTools/ToolTransform.py:783 +#: flatcamTools/ToolTransform.py:833 flatcamTools/ToolTransform.py:887 +#: flatcamTools/ToolTransform.py:917 flatcamTools/ToolTransform.py:953 msgid "Due of" msgstr "" -#: AppTools/ToolTransform.py:713 AppTools/ToolTransform.py:783 AppTools/ToolTransform.py:833 -#: AppTools/ToolTransform.py:887 AppTools/ToolTransform.py:917 AppTools/ToolTransform.py:953 +#: flatcamTools/ToolTransform.py:713 flatcamTools/ToolTransform.py:783 +#: flatcamTools/ToolTransform.py:833 flatcamTools/ToolTransform.py:887 +#: flatcamTools/ToolTransform.py:917 flatcamTools/ToolTransform.py:953 msgid "action was not executed." msgstr "" -#: AppTools/ToolTransform.py:725 +#: flatcamTools/ToolTransform.py:725 msgid "No object selected. Please Select an object to flip" msgstr "" -#: AppTools/ToolTransform.py:758 +#: flatcamTools/ToolTransform.py:758 msgid "CNCJob objects can't be mirrored/flipped." msgstr "" -#: AppTools/ToolTransform.py:793 +#: flatcamTools/ToolTransform.py:793 msgid "Skew transformation can not be done for 0, 90 and 180 degrees." msgstr "" -#: AppTools/ToolTransform.py:798 +#: flatcamTools/ToolTransform.py:798 msgid "No object selected. Please Select an object to shear/skew!" msgstr "" -#: AppTools/ToolTransform.py:818 +#: flatcamTools/ToolTransform.py:818 msgid "CNCJob objects can't be skewed." msgstr "" -#: AppTools/ToolTransform.py:830 +#: flatcamTools/ToolTransform.py:830 msgid "Skew on the" msgstr "" -#: AppTools/ToolTransform.py:830 AppTools/ToolTransform.py:884 AppTools/ToolTransform.py:914 +#: flatcamTools/ToolTransform.py:830 flatcamTools/ToolTransform.py:884 +#: flatcamTools/ToolTransform.py:914 msgid "axis done" msgstr "" -#: AppTools/ToolTransform.py:844 +#: flatcamTools/ToolTransform.py:844 msgid "No object selected. Please Select an object to scale!" msgstr "" -#: AppTools/ToolTransform.py:875 +#: flatcamTools/ToolTransform.py:875 msgid "CNCJob objects can't be scaled." msgstr "" -#: AppTools/ToolTransform.py:884 +#: flatcamTools/ToolTransform.py:884 msgid "Scale on the" msgstr "" -#: AppTools/ToolTransform.py:894 +#: flatcamTools/ToolTransform.py:894 msgid "No object selected. Please Select an object to offset!" msgstr "" -#: AppTools/ToolTransform.py:901 +#: flatcamTools/ToolTransform.py:901 msgid "CNCJob objects can't be offset." msgstr "" -#: AppTools/ToolTransform.py:914 +#: flatcamTools/ToolTransform.py:914 msgid "Offset on the" msgstr "" -#: AppTools/ToolTransform.py:924 +#: flatcamTools/ToolTransform.py:924 msgid "No object selected. Please Select an object to buffer!" msgstr "" -#: AppTools/ToolTransform.py:927 +#: flatcamTools/ToolTransform.py:927 msgid "Applying Buffer" msgstr "" -#: AppTools/ToolTransform.py:931 +#: flatcamTools/ToolTransform.py:931 msgid "CNCJob objects can't be buffered." msgstr "" -#: AppTools/ToolTransform.py:948 +#: flatcamTools/ToolTransform.py:948 msgid "Buffer done" msgstr "" -#: AppTranslation.py:104 -msgid "The application will restart." -msgstr "" - -#: AppTranslation.py:106 -msgid "Are you sure do you want to change the current language to" -msgstr "" - -#: AppTranslation.py:107 -msgid "Apply Language ..." -msgstr "" - -#: AppTranslation.py:203 App_Main.py:3151 -msgid "" -"There are files/objects modified in FlatCAM. \n" -"Do you want to Save the project?" -msgstr "" - -#: AppTranslation.py:206 App_Main.py:3154 App_Main.py:6411 -msgid "Save changes" -msgstr "" - -#: App_Main.py:477 -msgid "FlatCAM is initializing ..." -msgstr "" - -#: App_Main.py:620 -msgid "Could not find the Language files. The App strings are missing." -msgstr "" - -#: App_Main.py:692 -msgid "" -"FlatCAM is initializing ...\n" -"Canvas initialization started." -msgstr "" - -#: App_Main.py:712 -msgid "" -"FlatCAM is initializing ...\n" -"Canvas initialization started.\n" -"Canvas initialization finished in" -msgstr "" - -#: App_Main.py:1558 App_Main.py:6524 -msgid "New Project - Not saved" -msgstr "" - -#: App_Main.py:1659 -msgid "Found old default preferences files. Please reboot the application to update." -msgstr "" - -#: App_Main.py:1726 -msgid "Open Config file failed." -msgstr "" - -#: App_Main.py:1741 -msgid "Open Script file failed." -msgstr "" - -#: App_Main.py:1767 -msgid "Open Excellon file failed." -msgstr "" - -#: App_Main.py:1780 -msgid "Open GCode file failed." -msgstr "" - -#: App_Main.py:1793 -msgid "Open Gerber file failed." -msgstr "" - -#: App_Main.py:2116 -msgid "Select a Geometry, Gerber, Excellon or CNCJob Object to edit." -msgstr "" - -#: App_Main.py:2131 -msgid "" -"Simultaneous editing of tools geometry in a MultiGeo Geometry is not possible.\n" -"Edit only one geometry at a time." -msgstr "" - -#: App_Main.py:2197 -msgid "Editor is activated ..." -msgstr "" - -#: App_Main.py:2218 -msgid "Do you want to save the edited object?" -msgstr "" - -#: App_Main.py:2254 -msgid "Object empty after edit." -msgstr "" - -#: App_Main.py:2259 App_Main.py:2277 App_Main.py:2296 -msgid "Editor exited. Editor content saved." -msgstr "" - -#: App_Main.py:2300 App_Main.py:2324 App_Main.py:2342 -msgid "Select a Gerber, Geometry or Excellon Object to update." -msgstr "" - -#: App_Main.py:2303 -msgid "is updated, returning to App..." -msgstr "" - -#: App_Main.py:2310 -msgid "Editor exited. Editor content was not saved." -msgstr "" - -#: App_Main.py:2443 App_Main.py:2447 -msgid "Import FlatCAM Preferences" -msgstr "" - -#: App_Main.py:2458 -msgid "Imported Defaults from" -msgstr "" - -#: App_Main.py:2478 App_Main.py:2484 -msgid "Export FlatCAM Preferences" -msgstr "" - -#: App_Main.py:2504 -msgid "Exported preferences to" -msgstr "" - -#: App_Main.py:2524 App_Main.py:2529 -msgid "Save to file" -msgstr "" - -#: App_Main.py:2553 -msgid "Could not load the file." -msgstr "" - -#: App_Main.py:2569 -msgid "Exported file to" -msgstr "" - -#: App_Main.py:2606 -msgid "Failed to open recent files file for writing." -msgstr "" - -#: App_Main.py:2617 -msgid "Failed to open recent projects file for writing." -msgstr "" - -#: App_Main.py:2672 -msgid "2D Computer-Aided Printed Circuit Board Manufacturing" -msgstr "" - -#: App_Main.py:2673 -msgid "Development" -msgstr "" - -#: App_Main.py:2674 -msgid "DOWNLOAD" -msgstr "" - -#: App_Main.py:2675 -msgid "Issue tracker" -msgstr "" - -#: App_Main.py:2694 -msgid "Licensed under the MIT license" -msgstr "" - -#: App_Main.py:2703 -msgid "" -"Permission is hereby granted, free of charge, to any person obtaining a copy\n" -"of this software and associated documentation files (the \"Software\"), to deal\n" -"in the Software without restriction, including without limitation the rights\n" -"to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n" -"copies of the Software, and to permit persons to whom the Software is\n" -"furnished to do so, subject to the following conditions:\n" -"\n" -"The above copyright notice and this permission notice shall be included in\n" -"all copies or substantial portions of the Software.\n" -"\n" -"THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n" -"IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n" -"FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n" -"AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n" -"LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n" -"OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n" -"THE SOFTWARE." -msgstr "" - -#: App_Main.py:2725 -msgid "" -"Some of the icons used are from the following sources:
    Icons " -"by Icons8
    Icons by oNline Web Fonts" -msgstr "" - -#: App_Main.py:2761 -msgid "Splash" -msgstr "" - -#: App_Main.py:2767 -msgid "Programmers" -msgstr "" - -#: App_Main.py:2773 -msgid "Translators" -msgstr "" - -#: App_Main.py:2779 -msgid "License" -msgstr "" - -#: App_Main.py:2785 -msgid "Attributions" -msgstr "" - -#: App_Main.py:2808 -msgid "Programmer" -msgstr "" - -#: App_Main.py:2809 -msgid "Status" -msgstr "" - -#: App_Main.py:2810 App_Main.py:2890 -msgid "E-mail" -msgstr "" - -#: App_Main.py:2813 -msgid "Program Author" -msgstr "" - -#: App_Main.py:2818 -msgid "BETA Maintainer >= 2019" -msgstr "" - -#: App_Main.py:2887 -msgid "Language" -msgstr "" - -#: App_Main.py:2888 -msgid "Translator" -msgstr "" - -#: App_Main.py:2889 -msgid "Corrections" -msgstr "" - -#: App_Main.py:2963 -msgid "Important Information's" -msgstr "" - -#: App_Main.py:3111 -msgid "" -"This entry will resolve to another website if:\n" -"\n" -"1. FlatCAM.org website is down\n" -"2. Someone forked FlatCAM project and wants to point\n" -"to his own website\n" -"\n" -"If you can't get any informations about FlatCAM beta\n" -"use the YouTube channel link from the Help menu." -msgstr "" - -#: App_Main.py:3118 -msgid "Alternative website" -msgstr "" - -#: App_Main.py:3421 -msgid "Selected Excellon file extensions registered with FlatCAM." -msgstr "" - -#: App_Main.py:3443 -msgid "Selected GCode file extensions registered with FlatCAM." -msgstr "" - -#: App_Main.py:3465 -msgid "Selected Gerber file extensions registered with FlatCAM." -msgstr "" - -#: App_Main.py:3653 App_Main.py:3712 App_Main.py:3740 -msgid "At least two objects are required for join. Objects currently selected" -msgstr "" - -#: App_Main.py:3662 -msgid "" -"Failed join. The Geometry objects are of different types.\n" -"At least one is MultiGeo type and the other is SingleGeo type. A possibility is to " -"convert from one to another and retry joining \n" -"but in the case of converting from MultiGeo to SingleGeo, informations may be lost and " -"the result may not be what was expected. \n" -"Check the generated GCODE." -msgstr "" - -#: App_Main.py:3674 App_Main.py:3684 -msgid "Geometry merging finished" -msgstr "" - -#: App_Main.py:3707 -msgid "Failed. Excellon joining works only on Excellon objects." -msgstr "" - -#: App_Main.py:3717 -msgid "Excellon merging finished" -msgstr "" - -#: App_Main.py:3735 -msgid "Failed. Gerber joining works only on Gerber objects." -msgstr "" - -#: App_Main.py:3745 -msgid "Gerber merging finished" -msgstr "" - -#: App_Main.py:3765 App_Main.py:3802 -msgid "Failed. Select a Geometry Object and try again." -msgstr "" - -#: App_Main.py:3769 App_Main.py:3807 -msgid "Expected a GeometryObject, got" -msgstr "" - -#: App_Main.py:3784 -msgid "A Geometry object was converted to MultiGeo type." -msgstr "" - -#: App_Main.py:3822 -msgid "A Geometry object was converted to SingleGeo type." -msgstr "" - -#: App_Main.py:4029 -msgid "Toggle Units" -msgstr "" - -#: App_Main.py:4033 -msgid "" -"Changing the units of the project\n" -"will scale all objects.\n" -"\n" -"Do you want to continue?" -msgstr "" - -#: App_Main.py:4036 App_Main.py:4223 App_Main.py:4306 App_Main.py:6809 App_Main.py:6825 -#: App_Main.py:7163 App_Main.py:7175 -msgid "Ok" -msgstr "" - -#: App_Main.py:4086 -msgid "Converted units to" -msgstr "" - -#: App_Main.py:4121 -msgid "Detachable Tabs" -msgstr "" - -#: App_Main.py:4150 -msgid "Workspace enabled." -msgstr "" - -#: App_Main.py:4153 -msgid "Workspace disabled." -msgstr "" - -#: App_Main.py:4217 -msgid "" -"Adding Tool works only when Advanced is checked.\n" -"Go to Preferences -> General - Show Advanced Options." -msgstr "" - -#: App_Main.py:4299 -msgid "Delete objects" -msgstr "" - -#: App_Main.py:4304 -msgid "" -"Are you sure you want to permanently delete\n" -"the selected objects?" -msgstr "" - -#: App_Main.py:4348 -msgid "Object(s) deleted" -msgstr "" - -#: App_Main.py:4352 -msgid "Save the work in Editor and try again ..." -msgstr "" - -#: App_Main.py:4381 -msgid "Object deleted" -msgstr "" - -#: App_Main.py:4408 -msgid "Click to set the origin ..." -msgstr "" - -#: App_Main.py:4430 -msgid "Setting Origin..." -msgstr "" - -#: App_Main.py:4443 App_Main.py:4545 -msgid "Origin set" -msgstr "" - -#: App_Main.py:4460 -msgid "Origin coordinates specified but incomplete." -msgstr "" - -#: App_Main.py:4501 -msgid "Moving to Origin..." -msgstr "" - -#: App_Main.py:4582 -msgid "Jump to ..." -msgstr "" - -#: App_Main.py:4583 -msgid "Enter the coordinates in format X,Y:" -msgstr "" - -#: App_Main.py:4593 -msgid "Wrong coordinates. Enter coordinates in format: X,Y" -msgstr "" - -#: App_Main.py:4711 -msgid "Bottom-Left" -msgstr "" - -#: App_Main.py:4714 -msgid "Top-Right" -msgstr "" - -#: App_Main.py:4735 -msgid "Locate ..." -msgstr "" - -#: App_Main.py:5008 App_Main.py:5085 -msgid "No object is selected. Select an object and try again." -msgstr "" - -#: App_Main.py:5111 -msgid "Aborting. The current task will be gracefully closed as soon as possible..." -msgstr "" - -#: App_Main.py:5117 -msgid "The current task was gracefully closed on user request..." -msgstr "" - -#: App_Main.py:5291 -msgid "Tools in Tools Database edited but not saved." -msgstr "" - -#: App_Main.py:5330 -msgid "Adding tool from DB is not allowed for this object." -msgstr "" - -#: App_Main.py:5348 -msgid "" -"One or more Tools are edited.\n" -"Do you want to update the Tools Database?" -msgstr "" - -#: App_Main.py:5350 -msgid "Save Tools Database" -msgstr "" - -#: App_Main.py:5404 -msgid "No object selected to Flip on Y axis." -msgstr "" - -#: App_Main.py:5430 -msgid "Flip on Y axis done." -msgstr "" - -#: App_Main.py:5452 -msgid "No object selected to Flip on X axis." -msgstr "" - -#: App_Main.py:5478 -msgid "Flip on X axis done." -msgstr "" - -#: App_Main.py:5500 -msgid "No object selected to Rotate." -msgstr "" - -#: App_Main.py:5503 App_Main.py:5554 App_Main.py:5591 -msgid "Transform" -msgstr "" - -#: App_Main.py:5503 App_Main.py:5554 App_Main.py:5591 -msgid "Enter the Angle value:" -msgstr "" - -#: App_Main.py:5533 -msgid "Rotation done." -msgstr "" - -#: App_Main.py:5535 -msgid "Rotation movement was not executed." -msgstr "" - -#: App_Main.py:5552 -msgid "No object selected to Skew/Shear on X axis." -msgstr "" - -#: App_Main.py:5573 -msgid "Skew on X axis done." -msgstr "" - -#: App_Main.py:5589 -msgid "No object selected to Skew/Shear on Y axis." -msgstr "" - -#: App_Main.py:5610 -msgid "Skew on Y axis done." -msgstr "" - -#: App_Main.py:5688 -msgid "New Grid ..." -msgstr "" - -#: App_Main.py:5689 -msgid "Enter a Grid Value:" -msgstr "" - -#: App_Main.py:5697 App_Main.py:5721 -msgid "Please enter a grid value with non-zero value, in Float format." -msgstr "" - -#: App_Main.py:5702 -msgid "New Grid added" -msgstr "" - -#: App_Main.py:5704 -msgid "Grid already exists" -msgstr "" - -#: App_Main.py:5706 -msgid "Adding New Grid cancelled" -msgstr "" - -#: App_Main.py:5727 -msgid " Grid Value does not exist" -msgstr "" - -#: App_Main.py:5729 -msgid "Grid Value deleted" -msgstr "" - -#: App_Main.py:5731 -msgid "Delete Grid value cancelled" -msgstr "" - -#: App_Main.py:5737 -msgid "Key Shortcut List" -msgstr "" - -#: App_Main.py:5771 -msgid " No object selected to copy it's name" -msgstr "" - -#: App_Main.py:5775 -msgid "Name copied on clipboard ..." -msgstr "" - -#: App_Main.py:6408 -msgid "" -"There are files/objects opened in FlatCAM.\n" -"Creating a New project will delete them.\n" -"Do you want to Save the project?" -msgstr "" - -#: App_Main.py:6431 -msgid "New Project created" -msgstr "" - -#: App_Main.py:6603 App_Main.py:6642 App_Main.py:6686 App_Main.py:6756 App_Main.py:7550 -#: App_Main.py:8763 App_Main.py:8825 -msgid "" -"Canvas initialization started.\n" -"Canvas initialization finished in" -msgstr "" - -#: App_Main.py:6605 -msgid "Opening Gerber file." -msgstr "" - -#: App_Main.py:6644 -msgid "Opening Excellon file." -msgstr "" - -#: App_Main.py:6675 App_Main.py:6680 -msgid "Open G-Code" -msgstr "" - -#: App_Main.py:6688 -msgid "Opening G-Code file." -msgstr "" - -#: App_Main.py:6747 App_Main.py:6751 -msgid "Open HPGL2" -msgstr "" - -#: App_Main.py:6758 -msgid "Opening HPGL2 file." -msgstr "" - -#: App_Main.py:6781 App_Main.py:6784 -msgid "Open Configuration File" -msgstr "" - -#: App_Main.py:6804 App_Main.py:7158 -msgid "Please Select a Geometry object to export" -msgstr "" - -#: App_Main.py:6820 -msgid "Only Geometry, Gerber and CNCJob objects can be used." -msgstr "" - -#: App_Main.py:6865 -msgid "Data must be a 3D array with last dimension 3 or 4" -msgstr "" - -#: App_Main.py:6871 App_Main.py:6875 -msgid "Export PNG Image" -msgstr "" - -#: App_Main.py:6908 App_Main.py:7118 -msgid "Failed. Only Gerber objects can be saved as Gerber files..." -msgstr "" - -#: App_Main.py:6920 -msgid "Save Gerber source file" -msgstr "" - -#: App_Main.py:6949 -msgid "Failed. Only Script objects can be saved as TCL Script files..." -msgstr "" - -#: App_Main.py:6961 -msgid "Save Script source file" -msgstr "" - -#: App_Main.py:6990 -msgid "Failed. Only Document objects can be saved as Document files..." -msgstr "" - -#: App_Main.py:7002 -msgid "Save Document source file" -msgstr "" - -#: App_Main.py:7032 App_Main.py:7074 App_Main.py:8033 -msgid "Failed. Only Excellon objects can be saved as Excellon files..." -msgstr "" - -#: App_Main.py:7040 App_Main.py:7045 -msgid "Save Excellon source file" -msgstr "" - -#: App_Main.py:7082 App_Main.py:7086 -msgid "Export Excellon" -msgstr "" - -#: App_Main.py:7126 App_Main.py:7130 -msgid "Export Gerber" -msgstr "" - -#: App_Main.py:7170 -msgid "Only Geometry objects can be used." -msgstr "" - -#: App_Main.py:7186 App_Main.py:7190 -msgid "Export DXF" -msgstr "" - -#: App_Main.py:7215 App_Main.py:7218 -msgid "Import SVG" -msgstr "" - -#: App_Main.py:7246 App_Main.py:7250 -msgid "Import DXF" -msgstr "" - -#: App_Main.py:7300 -msgid "Viewing the source code of the selected object." -msgstr "" - -#: App_Main.py:7307 App_Main.py:7311 -msgid "Select an Gerber or Excellon file to view it's source file." -msgstr "" - -#: App_Main.py:7325 -msgid "Source Editor" -msgstr "" - -#: App_Main.py:7365 App_Main.py:7372 -msgid "There is no selected object for which to see it's source file code." -msgstr "" - -#: App_Main.py:7384 -msgid "Failed to load the source code for the selected object" -msgstr "" - -#: App_Main.py:7420 -msgid "Go to Line ..." -msgstr "" - -#: App_Main.py:7421 -msgid "Line:" -msgstr "" - -#: App_Main.py:7448 -msgid "New TCL script file created in Code Editor." -msgstr "" - -#: App_Main.py:7484 App_Main.py:7486 App_Main.py:7522 App_Main.py:7524 -msgid "Open TCL script" -msgstr "" - -#: App_Main.py:7552 -msgid "Executing ScriptObject file." -msgstr "" - -#: App_Main.py:7560 App_Main.py:7563 -msgid "Run TCL script" -msgstr "" - -#: App_Main.py:7586 -msgid "TCL script file opened in Code Editor and executed." -msgstr "" - -#: App_Main.py:7637 App_Main.py:7643 -msgid "Save Project As ..." -msgstr "" - -#: App_Main.py:7678 -msgid "FlatCAM objects print" -msgstr "" - -#: App_Main.py:7691 App_Main.py:7698 -msgid "Save Object as PDF ..." -msgstr "" - -#: App_Main.py:7707 -msgid "Printing PDF ... Please wait." -msgstr "" - -#: App_Main.py:7886 -msgid "PDF file saved to" -msgstr "" - -#: App_Main.py:7911 -msgid "Exporting SVG" -msgstr "" - -#: App_Main.py:7954 -msgid "SVG file exported to" -msgstr "" - -#: App_Main.py:7980 -msgid "Save cancelled because source file is empty. Try to export the Gerber file." -msgstr "" - -#: App_Main.py:8127 -msgid "Excellon file exported to" -msgstr "" - -#: App_Main.py:8136 -msgid "Exporting Excellon" -msgstr "" - -#: App_Main.py:8141 App_Main.py:8148 -msgid "Could not export Excellon file." -msgstr "" - -#: App_Main.py:8263 -msgid "Gerber file exported to" -msgstr "" - -#: App_Main.py:8271 -msgid "Exporting Gerber" -msgstr "" - -#: App_Main.py:8276 App_Main.py:8283 -msgid "Could not export Gerber file." -msgstr "" - -#: App_Main.py:8318 -msgid "DXF file exported to" -msgstr "" - -#: App_Main.py:8324 -msgid "Exporting DXF" -msgstr "" - -#: App_Main.py:8329 App_Main.py:8336 -msgid "Could not export DXF file." -msgstr "" - -#: App_Main.py:8370 -msgid "Importing SVG" -msgstr "" - -#: App_Main.py:8378 App_Main.py:8424 -msgid "Import failed." -msgstr "" - -#: App_Main.py:8416 -msgid "Importing DXF" -msgstr "" - -#: App_Main.py:8457 App_Main.py:8652 App_Main.py:8717 -msgid "Failed to open file" -msgstr "" - -#: App_Main.py:8460 App_Main.py:8655 App_Main.py:8720 -msgid "Failed to parse file" -msgstr "" - -#: App_Main.py:8472 -msgid "Object is not Gerber file or empty. Aborting object creation." -msgstr "" - -#: App_Main.py:8477 -msgid "Opening Gerber" -msgstr "" - -#: App_Main.py:8488 -msgid "Open Gerber failed. Probable not a Gerber file." -msgstr "" - -#: App_Main.py:8524 -msgid "Cannot open file" -msgstr "" - -#: App_Main.py:8545 -msgid "Opening Excellon." -msgstr "" - -#: App_Main.py:8555 -msgid "Open Excellon file failed. Probable not an Excellon file." -msgstr "" - -#: App_Main.py:8587 -msgid "Reading GCode file" -msgstr "" - -#: App_Main.py:8600 -msgid "This is not GCODE" -msgstr "" - -#: App_Main.py:8605 -msgid "Opening G-Code." -msgstr "" - -#: App_Main.py:8618 -msgid "" -"Failed to create CNCJob Object. Probable not a GCode file. Try to load it from File " -"menu.\n" -" Attempting to create a FlatCAM CNCJob Object from G-Code file failed during processing" -msgstr "" - -#: App_Main.py:8674 -msgid "Object is not HPGL2 file or empty. Aborting object creation." -msgstr "" - -#: App_Main.py:8679 -msgid "Opening HPGL2" -msgstr "" - -#: App_Main.py:8686 -msgid " Open HPGL2 failed. Probable not a HPGL2 file." -msgstr "" - -#: App_Main.py:8712 -msgid "TCL script file opened in Code Editor." -msgstr "" - -#: App_Main.py:8732 -msgid "Opening TCL Script..." -msgstr "" - -#: App_Main.py:8743 -msgid "Failed to open TCL Script." -msgstr "" - -#: App_Main.py:8765 -msgid "Opening FlatCAM Config file." -msgstr "" - -#: App_Main.py:8793 -msgid "Failed to open config file" -msgstr "" - -#: App_Main.py:8822 -msgid "Loading Project ... Please Wait ..." -msgstr "" - -#: App_Main.py:8827 -msgid "Opening FlatCAM Project file." -msgstr "" - -#: App_Main.py:8842 App_Main.py:8846 App_Main.py:8863 -msgid "Failed to open project file" -msgstr "" - -#: App_Main.py:8900 -msgid "Loading Project ... restoring" -msgstr "" - -#: App_Main.py:8910 -msgid "Project loaded from" -msgstr "" - -#: App_Main.py:8936 -msgid "Redrawing all objects" -msgstr "" - -#: App_Main.py:9024 -msgid "Failed to load recent item list." -msgstr "" - -#: App_Main.py:9031 -msgid "Failed to parse recent item list." -msgstr "" - -#: App_Main.py:9041 -msgid "Failed to load recent projects item list." -msgstr "" - -#: App_Main.py:9048 -msgid "Failed to parse recent project item list." -msgstr "" - -#: App_Main.py:9109 -msgid "Clear Recent projects" -msgstr "" - -#: App_Main.py:9133 -msgid "Clear Recent files" -msgstr "" - -#: App_Main.py:9235 -msgid "Selected Tab - Choose an Item from Project Tab" -msgstr "" - -#: App_Main.py:9236 -msgid "Details" -msgstr "" - -#: App_Main.py:9238 -msgid "The normal flow when working with the application is the following:" -msgstr "" - -#: App_Main.py:9239 -msgid "" -"Load/Import a Gerber, Excellon, Gcode, DXF, Raster Image or SVG file into the application " -"using either the toolbars, key shortcuts or even dragging and dropping the files on the " -"AppGUI." -msgstr "" - -#: App_Main.py:9242 -msgid "" -"You can also load a project by double clicking on the project file, drag and drop of the " -"file into the AppGUI or through the menu (or toolbar) actions offered within the app." -msgstr "" - -#: App_Main.py:9245 -msgid "" -"Once an object is available in the Project Tab, by selecting it and then focusing on " -"SELECTED TAB (more simpler is to double click the object name in the Project Tab, " -"SELECTED TAB will be updated with the object properties according to its kind: Gerber, " -"Excellon, Geometry or CNCJob object." -msgstr "" - -#: App_Main.py:9249 -msgid "" -"If the selection of the object is done on the canvas by single click instead, and the " -"SELECTED TAB is in focus, again the object properties will be displayed into the Selected " -"Tab. Alternatively, double clicking on the object on the canvas will bring the SELECTED " -"TAB and populate it even if it was out of focus." -msgstr "" - -#: App_Main.py:9253 -msgid "You can change the parameters in this screen and the flow direction is like this:" -msgstr "" - -#: App_Main.py:9254 -msgid "" -"Gerber/Excellon Object --> Change Parameter --> Generate Geometry --> Geometry Object --> " -"Add tools (change param in Selected Tab) --> Generate CNCJob --> CNCJob Object --> Verify " -"GCode (through Edit CNC Code) and/or append/prepend to GCode (again, done in SELECTED " -"TAB) --> Save GCode." -msgstr "" - -#: App_Main.py:9258 -msgid "" -"A list of key shortcuts is available through an menu entry in Help --> Shortcuts List or " -"through its own key shortcut: F3." -msgstr "" - -#: App_Main.py:9322 -msgid "Failed checking for latest version. Could not connect." -msgstr "" - -#: App_Main.py:9329 -msgid "Could not parse information about latest version." -msgstr "" - -#: App_Main.py:9339 -msgid "FlatCAM is up to date!" -msgstr "" - -#: App_Main.py:9344 -msgid "Newer Version Available" -msgstr "" - -#: App_Main.py:9346 -msgid "There is a newer version of FlatCAM available for download:" -msgstr "" - -#: App_Main.py:9350 -msgid "info" -msgstr "" - -#: App_Main.py:9378 -msgid "" -"OpenGL canvas initialization failed. HW or HW configuration not supported.Change the " -"graphic engine to Legacy(2D) in Edit -> Preferences -> General tab.\n" -"\n" -msgstr "" - -#: App_Main.py:9456 -msgid "All plots disabled." -msgstr "" - -#: App_Main.py:9463 -msgid "All non selected plots disabled." -msgstr "" - -#: App_Main.py:9470 -msgid "All plots enabled." -msgstr "" - -#: App_Main.py:9476 -msgid "Selected plots enabled..." -msgstr "" - -#: App_Main.py:9484 -msgid "Selected plots disabled..." -msgstr "" - -#: App_Main.py:9517 -msgid "Enabling plots ..." -msgstr "" - -#: App_Main.py:9566 -msgid "Disabling plots ..." -msgstr "" - -#: App_Main.py:9589 -msgid "Working ..." -msgstr "" - -#: App_Main.py:9698 -msgid "Set alpha level ..." -msgstr "" - -#: App_Main.py:9752 -msgid "Saving FlatCAM Project" -msgstr "" - -#: App_Main.py:9773 App_Main.py:9809 -msgid "Project saved to" -msgstr "" - -#: App_Main.py:9780 -msgid "The object is used by another application." -msgstr "" - -#: App_Main.py:9794 -msgid "Failed to verify project file" -msgstr "" - -#: App_Main.py:9794 App_Main.py:9802 App_Main.py:9812 -msgid "Retry to save it." -msgstr "" - -#: App_Main.py:9802 App_Main.py:9812 -msgid "Failed to parse saved project file" -msgstr "" - -#: Bookmark.py:57 Bookmark.py:84 -msgid "Title" -msgstr "" - -#: Bookmark.py:58 Bookmark.py:88 -msgid "Web Link" -msgstr "" - -#: Bookmark.py:62 -msgid "" -"Index.\n" -"The rows in gray color will populate the Bookmarks menu.\n" -"The number of gray colored rows is set in Preferences." -msgstr "" - -#: Bookmark.py:66 -msgid "" -"Description of the link that is set as an menu action.\n" -"Try to keep it short because it is installed as a menu item." -msgstr "" - -#: Bookmark.py:69 -msgid "Web Link. E.g: https://your_website.org " -msgstr "" - -#: Bookmark.py:78 -msgid "New Bookmark" -msgstr "" - -#: Bookmark.py:97 -msgid "Add Entry" -msgstr "" - -#: Bookmark.py:98 -msgid "Remove Entry" -msgstr "" - -#: Bookmark.py:99 -msgid "Export List" -msgstr "" - -#: Bookmark.py:100 -msgid "Import List" -msgstr "" - -#: Bookmark.py:190 -msgid "Title entry is empty." -msgstr "" - -#: Bookmark.py:199 -msgid "Web link entry is empty." -msgstr "" - -#: Bookmark.py:207 -msgid "Either the Title or the Weblink already in the table." -msgstr "" - -#: Bookmark.py:227 -msgid "Bookmark added." -msgstr "" - -#: Bookmark.py:244 -msgid "This bookmark can not be removed" -msgstr "" - -#: Bookmark.py:275 -msgid "Bookmark removed." -msgstr "" - -#: Bookmark.py:290 -msgid "Export Bookmarks" -msgstr "" - -#: Bookmark.py:319 Bookmark.py:349 -msgid "Could not load bookmarks file." -msgstr "" - -#: Bookmark.py:329 -msgid "Failed to write bookmarks to file." -msgstr "" - -#: Bookmark.py:331 -msgid "Exported bookmarks to" -msgstr "" - -#: Bookmark.py:337 -msgid "Import Bookmarks" -msgstr "" - -#: Bookmark.py:356 -msgid "Imported Bookmarks from" -msgstr "" - -#: Common.py:42 -msgid "The user requested a graceful exit of the current task." -msgstr "" - -#: Common.py:269 -msgid "Click the end point of the area." -msgstr "" - -#: Common.py:408 -msgid "Exclusion areas added. Checking overlap with the object geometry ..." -msgstr "" - -#: Common.py:413 -msgid "Failed. Exclusion areas intersects the object geometry ..." -msgstr "" - -#: Common.py:417 -msgid "Exclusion areas added." -msgstr "" - -#: Common.py:426 -msgid "With Exclusion areas." -msgstr "" - -#: Common.py:461 -msgid "Cancelled. Area exclusion drawing was interrupted." -msgstr "" - -#: Common.py:572 Common.py:621 -msgid "All exclusion zones deleted." -msgstr "" - -#: Common.py:608 -msgid "Selected exclusion zones deleted." -msgstr "" - -#: assets/linux/flatcam-beta.desktop:3 -msgid "FlatCAM Beta" -msgstr "" - -#: assets/linux/flatcam-beta.desktop:8 -msgid "G-Code from GERBERS" -msgstr "" - -#: camlib.py:597 -msgid "self.solid_geometry is neither BaseGeometry or list." -msgstr "" - -#: camlib.py:979 -msgid "Pass" -msgstr "" - -#: camlib.py:1001 -msgid "Get Exteriors" -msgstr "" - -#: camlib.py:1004 -msgid "Get Interiors" -msgstr "" - -#: camlib.py:2192 -msgid "Object was mirrored" -msgstr "" - -#: camlib.py:2194 -msgid "Failed to mirror. No object selected" -msgstr "" - -#: camlib.py:2259 -msgid "Object was rotated" -msgstr "" - -#: camlib.py:2261 -msgid "Failed to rotate. No object selected" -msgstr "" - -#: camlib.py:2327 -msgid "Object was skewed" -msgstr "" - -#: camlib.py:2329 -msgid "Failed to skew. No object selected" -msgstr "" - -#: camlib.py:2405 -msgid "Object was buffered" -msgstr "" - -#: camlib.py:2407 -msgid "Failed to buffer. No object selected" -msgstr "" - -#: camlib.py:2650 -msgid "There is no such parameter" -msgstr "" - -#: camlib.py:2718 camlib.py:2970 camlib.py:3233 camlib.py:3489 -msgid "" -"The Cut Z parameter has positive value. It is the depth value to drill into material.\n" -"The Cut Z parameter needs to have a negative value, assuming it is a typo therefore the " -"app will convert the value to negative. Check the resulting CNC code (Gcode etc)." -msgstr "" - -#: camlib.py:2726 camlib.py:2980 camlib.py:3243 camlib.py:3499 camlib.py:3824 camlib.py:4224 -msgid "The Cut Z parameter is zero. There will be no cut, skipping file" -msgstr "" - -#: camlib.py:2741 camlib.py:4192 -msgid "" -"The Toolchange X,Y field in Edit -> Preferences has to be in the format (x, y) \n" -"but now there is only one value, not two. " -msgstr "" - -#: camlib.py:2754 camlib.py:3771 camlib.py:4170 -msgid "" -"The End Move X,Y field in Edit -> Preferences has to be in the format (x, y) but now " -"there is only one value, not two." -msgstr "" - -#: camlib.py:2842 -msgid "Creating a list of points to drill..." -msgstr "" - -#: camlib.py:2866 -msgid "Failed. Drill points inside the exclusion zones." -msgstr "" - -#: camlib.py:2943 camlib.py:3922 camlib.py:4332 -msgid "Starting G-Code" -msgstr "" - -#: camlib.py:3084 camlib.py:3337 camlib.py:3535 camlib.py:3935 camlib.py:4343 -msgid "Starting G-Code for tool with diameter" -msgstr "" - -#: camlib.py:3201 camlib.py:3453 camlib.py:3655 -msgid "G91 coordinates not implemented" -msgstr "" - -#: camlib.py:3207 camlib.py:3460 camlib.py:3660 -msgid "The loaded Excellon file has no drills" -msgstr "" - -#: camlib.py:3683 -msgid "Finished G-Code generation..." -msgstr "" - -#: camlib.py:3793 -msgid "" -"The Toolchange X,Y field in Edit -> Preferences has to be in the format (x, y) \n" -"but now there is only one value, not two." -msgstr "" - -#: camlib.py:3807 camlib.py:4207 -msgid "Cut_Z parameter is None or zero. Most likely a bad combinations of other parameters." -msgstr "" - -#: camlib.py:3816 camlib.py:4216 -msgid "" -"The Cut Z parameter has positive value. It is the depth value to cut into material.\n" -"The Cut Z parameter needs to have a negative value, assuming it is a typo therefore the " -"app will convert the value to negative.Check the resulting CNC code (Gcode etc)." -msgstr "" - -#: camlib.py:3829 camlib.py:4230 -msgid "Travel Z parameter is None or zero." -msgstr "" - -#: camlib.py:3834 camlib.py:4235 -msgid "" -"The Travel Z parameter has negative value. It is the height value to travel between " -"cuts.\n" -"The Z Travel parameter needs to have a positive value, assuming it is a typo therefore " -"the app will convert the value to positive.Check the resulting CNC code (Gcode etc)." -msgstr "" - -#: camlib.py:3842 camlib.py:4243 -msgid "The Z Travel parameter is zero. This is dangerous, skipping file" -msgstr "" - -#: camlib.py:3861 camlib.py:4266 -msgid "Indexing geometry before generating G-Code..." -msgstr "" - -#: camlib.py:4009 camlib.py:4420 -msgid "Finished G-Code generation" -msgstr "" - -#: camlib.py:4009 -msgid "paths traced" -msgstr "" - -#: camlib.py:4059 -msgid "Expected a Geometry, got" -msgstr "" - -#: camlib.py:4066 -msgid "Trying to generate a CNC Job from a Geometry object without solid_geometry." -msgstr "" - -#: camlib.py:4107 -msgid "" -"The Tool Offset value is too negative to use for the current_geometry.\n" -"Raise the value (in module) and try again." -msgstr "" - -#: camlib.py:4420 -msgid " paths traced." -msgstr "" - -#: camlib.py:4448 -msgid "There is no tool data in the SolderPaste geometry." -msgstr "" - -#: camlib.py:4537 -msgid "Finished SolderPaste G-Code generation" -msgstr "" - -#: camlib.py:4537 -msgid "paths traced." -msgstr "" - -#: camlib.py:4872 -msgid "Parsing GCode file. Number of lines" -msgstr "" - -#: camlib.py:4979 -msgid "Creating Geometry from the parsed GCode file. " -msgstr "" - -#: camlib.py:5147 camlib.py:5420 camlib.py:5568 camlib.py:5737 -msgid "G91 coordinates not implemented ..." -msgstr "" - -#: defaults.py:771 -msgid "Could not load defaults file." -msgstr "" - -#: defaults.py:784 -msgid "Failed to parse defaults file." -msgstr "" - #: tclCommands/TclCommandBbox.py:75 tclCommands/TclCommandNregions.py:74 msgid "Expected GerberObject or GeometryObject, got" msgstr "" @@ -15891,7 +15697,7 @@ msgstr "" msgid "TclCommand Bounds done." msgstr "" -#: tclCommands/TclCommandCopperClear.py:281 tclCommands/TclCommandPaint.py:283 +#: tclCommands/TclCommandCopperClear.py:281 tclCommands/TclCommandPaint.py:277 #: tclCommands/TclCommandScale.py:81 msgid "Could not retrieve box object" msgstr "" @@ -15908,11 +15714,11 @@ msgstr "" msgid "Gaps value can be only one of: 'lr', 'tb', '2lr', '2tb', 4 or 8." msgstr "" -#: tclCommands/TclCommandGeoCutout.py:301 tclCommands/TclCommandGeoCutout.py:356 +#: tclCommands/TclCommandGeoCutout.py:301 tclCommands/TclCommandGeoCutout.py:359 msgid "Any-form Cutout operation finished." msgstr "" -#: tclCommands/TclCommandGeoCutout.py:362 +#: tclCommands/TclCommandGeoCutout.py:365 msgid "Cancelled. Object type is not supported." msgstr "" @@ -15928,15 +15734,15 @@ msgstr "" msgid "Example: help open_gerber" msgstr "" -#: tclCommands/TclCommandPaint.py:250 tclCommands/TclCommandPaint.py:256 -msgid "Expected a tuple value like -single 3.2,0.1." +#: tclCommands/TclCommandPaint.py:249 +msgid "Expected -x and -y ." msgstr "" -#: tclCommands/TclCommandPaint.py:276 +#: tclCommands/TclCommandPaint.py:270 msgid "Expected -box ." msgstr "" -#: tclCommands/TclCommandPaint.py:297 +#: tclCommands/TclCommandPaint.py:291 msgid "" "None of the following args: 'box', 'single', 'all' were used.\n" "Paint failed." @@ -15955,7 +15761,7 @@ msgstr "" msgid "Expected a pair of (x, y) coordinates. Got" msgstr "" -#: tclCommands/TclCommandSetOrigin.py:101 +#: tclCommands/TclCommandSetOrigin.py:102 msgid "Origin set by offsetting all loaded objects with " msgstr "" diff --git a/make_freezed.py b/make_freezed.py index 170fc7a7..43c144a5 100644 --- a/make_freezed.py +++ b/make_freezed.py @@ -63,7 +63,7 @@ include_files.append(("assets/examples", "lib/assets/examples")) include_files.append(("assets/linux", "lib/assets/linux")) include_files.append(("assets/resources", "lib/assets/resources")) # include_files.append(("share", "lib/share")) -include_files.append(("AppGUI/VisPyData", "lib/vispy")) +include_files.append(("flatcamGUI/VisPyData", "lib/vispy")) include_files.append(("config", "lib/config")) include_files.append(("README.md", "README.md")) diff --git a/preprocessors/Berta_CNC.py b/preprocessors/Berta_CNC.py index c17028c1..8239d0e9 100644 --- a/preprocessors/Berta_CNC.py +++ b/preprocessors/Berta_CNC.py @@ -10,10 +10,10 @@ # MIT Licence # ############################################################## -from AppPreProcessor import * +from FlatCAMPostProc import * -class Berta_CNC(PreProc): +class Berta_CNC(FlatCAMPostProc): include_header = True coordinate_format = "%.*f" @@ -102,7 +102,7 @@ class Berta_CNC(PreProc): gcode += '(Spindle Speed: %s RPM)\n' % str(p['spindlespeed']) gcode += ( - # This line allow you to sets the machine to METRIC / INCH in the AppGUI + # This line allow you to sets the machine to METRIC / INCH in the GUI 'G20\n' if p.units.upper() == 'IN' else 'G21\n') + '\n' # gcode += 'G21\n' # This line sets the machine to METRIC ONLY # gcode += 'G20\n' # This line sets the machine to INCH ONLY diff --git a/preprocessors/GRBL_laser.py b/preprocessors/GRBL_laser.py index 052a4898..9caf4f39 100644 --- a/preprocessors/GRBL_laser.py +++ b/preprocessors/GRBL_laser.py @@ -6,13 +6,13 @@ # MIT Licence # # ########################################################## -from AppPreProcessor import * +from FlatCAMPostProc import * # This post processor is configured to output code that # is compatible with almost any version of Grbl. -class GRBL_laser(PreProc): +class GRBL_laser(FlatCAMPostProc): include_header = True coordinate_format = "%.*f" diff --git a/preprocessors/ISEL_CNC.py b/preprocessors/ISEL_CNC.py index 3d27a12e..8c7c9ed0 100644 --- a/preprocessors/ISEL_CNC.py +++ b/preprocessors/ISEL_CNC.py @@ -6,10 +6,10 @@ # MIT Licence # # ########################################################## -from AppPreProcessor import * +from FlatCAMPostProc import * -class ISEL_CNC(PreProc): +class ISEL_CNC(FlatCAMPostProc): include_header = True coordinate_format = "%.*f" feedrate_format = '%.*f' diff --git a/preprocessors/ISEL_ICP_CNC.py b/preprocessors/ISEL_ICP_CNC.py index e2690279..a6a137f8 100644 --- a/preprocessors/ISEL_ICP_CNC.py +++ b/preprocessors/ISEL_ICP_CNC.py @@ -6,10 +6,10 @@ # MIT Licence # # ########################################################## -from AppPreProcessor import * +from FlatCAMPostProc import * -class ISEL_ICP_CNC(PreProc): +class ISEL_ICP_CNC(FlatCAMPostProc): include_header = False def start_code(self, p): diff --git a/preprocessors/Marlin.py b/preprocessors/Marlin.py index a88e8e7d..d53a257f 100644 --- a/preprocessors/Marlin.py +++ b/preprocessors/Marlin.py @@ -6,10 +6,10 @@ # MIT Licence # # ########################################################## -from AppPreProcessor import * +from FlatCAMPostProc import * -class Marlin(PreProc): +class Marlin(FlatCAMPostProc): include_header = True coordinate_format = "%.*f" diff --git a/preprocessors/Marlin_laser_FAN_pin.py b/preprocessors/Marlin_laser_FAN_pin.py index 94223295..2d06d23d 100644 --- a/preprocessors/Marlin_laser_FAN_pin.py +++ b/preprocessors/Marlin_laser_FAN_pin.py @@ -6,10 +6,10 @@ # License: MIT Licence # # ########################################################## -from AppPreProcessor import * +from FlatCAMPostProc import * -class Marlin_laser_FAN_pin(PreProc): +class Marlin_laser_FAN_pin(FlatCAMPostProc): include_header = True coordinate_format = "%.*f" diff --git a/preprocessors/Marlin_laser_Spindle_pin.py b/preprocessors/Marlin_laser_Spindle_pin.py index 9e98c5c3..151e9dc4 100644 --- a/preprocessors/Marlin_laser_Spindle_pin.py +++ b/preprocessors/Marlin_laser_Spindle_pin.py @@ -6,10 +6,10 @@ # License: MIT Licence # # ########################################################## -from AppPreProcessor import * +from FlatCAMPostProc import * -class Marlin_laser_Spindle_pin(PreProc): +class Marlin_laser_Spindle_pin(FlatCAMPostProc): include_header = True coordinate_format = "%.*f" diff --git a/preprocessors/Paste_1.py b/preprocessors/Paste_1.py index 4de695d2..cbb0b19f 100644 --- a/preprocessors/Paste_1.py +++ b/preprocessors/Paste_1.py @@ -6,10 +6,10 @@ # MIT Licence # # ########################################################## -from AppPreProcessor import * +from FlatCAMPostProc import * -class Paste_1(AppPreProcTools): +class Paste_1(FlatCAMPostProc_Tools): include_header = True coordinate_format = "%.*f" diff --git a/preprocessors/Repetier.py b/preprocessors/Repetier.py index eace3dff..bb17f9ee 100644 --- a/preprocessors/Repetier.py +++ b/preprocessors/Repetier.py @@ -6,10 +6,10 @@ # MIT Licence # # ########################################################## -from AppPreProcessor import * +from FlatCAMPostProc import * -class Repetier(PreProc): +class Repetier(FlatCAMPostProc): include_header = True coordinate_format = "%.*f" diff --git a/preprocessors/Roland_MDX_20.py b/preprocessors/Roland_MDX_20.py index aaafb9b8..49b65b92 100644 --- a/preprocessors/Roland_MDX_20.py +++ b/preprocessors/Roland_MDX_20.py @@ -6,12 +6,12 @@ # MIT Licence # # ########################################################## -from AppPreProcessor import * +from FlatCAMPostProc import * # for Roland Preprocessors it is mandatory for the preprocessor name (python file and class name, both of them must be # the same) to contain the following keyword, case-sensitive: 'Roland' without the quotes. -class Roland_MDX_20(PreProc): +class Roland_MDX_20(FlatCAMPostProc): include_header = False coordinate_format = "%.1f" diff --git a/preprocessors/Toolchange_Custom.py b/preprocessors/Toolchange_Custom.py index da299c4e..1c2eeffc 100644 --- a/preprocessors/Toolchange_Custom.py +++ b/preprocessors/Toolchange_Custom.py @@ -6,10 +6,10 @@ # MIT Licence # # ########################################################## -from AppPreProcessor import * +from FlatCAMPostProc import * -class Toolchange_Custom(PreProc): +class Toolchange_Custom(FlatCAMPostProc): include_header = True coordinate_format = "%.*f" diff --git a/preprocessors/Toolchange_Manual.py b/preprocessors/Toolchange_Manual.py index ba2e8fda..27aaec22 100644 --- a/preprocessors/Toolchange_Manual.py +++ b/preprocessors/Toolchange_Manual.py @@ -6,10 +6,10 @@ # MIT Licence # # ########################################################## -from AppPreProcessor import * +from FlatCAMPostProc import * -class Toolchange_Manual(PreProc): +class Toolchange_Manual(FlatCAMPostProc): include_header = True coordinate_format = "%.*f" diff --git a/preprocessors/Toolchange_Probe_MACH3.py b/preprocessors/Toolchange_Probe_MACH3.py index 4872b12b..f5f8c9c3 100644 --- a/preprocessors/Toolchange_Probe_MACH3.py +++ b/preprocessors/Toolchange_Probe_MACH3.py @@ -6,10 +6,10 @@ # MIT Licence # # ########################################################## -from AppPreProcessor import * +from FlatCAMPostProc import * -class Toolchange_Probe_MACH3(PreProc): +class Toolchange_Probe_MACH3(FlatCAMPostProc): include_header = True coordinate_format = "%.*f" @@ -106,10 +106,10 @@ class Toolchange_Probe_MACH3(PreProc): return g def lift_code(self, p): - return 'G00 Z' + self.coordinate_format % (p.coords_decimals, p.z_move) + return 'G00 Z' + self.coordinate_format%(p.coords_decimals, p.z_move) def down_code(self, p): - return 'G01 Z' + self.coordinate_format % (p.coords_decimals, p.z_cut) + return 'G01 Z' + self.coordinate_format%(p.coords_decimals, p.z_cut) def toolchange_code(self, p): z_toolchange = p.z_toolchange diff --git a/preprocessors/default.py b/preprocessors/default.py index 7da50390..7c5cf1c6 100644 --- a/preprocessors/default.py +++ b/preprocessors/default.py @@ -6,10 +6,10 @@ # MIT Licence # # ########################################################## -from AppPreProcessor import * +from FlatCAMPostProc import * -class default(PreProc): +class default(FlatCAMPostProc): include_header = True coordinate_format = "%.*f" diff --git a/preprocessors/grbl_11.py b/preprocessors/grbl_11.py index 21aed110..b002b2b2 100644 --- a/preprocessors/grbl_11.py +++ b/preprocessors/grbl_11.py @@ -6,10 +6,10 @@ # MIT Licence # # ########################################################## -from AppPreProcessor import * +from FlatCAMPostProc import * -class grbl_11(PreProc): +class grbl_11(FlatCAMPostProc): include_header = True coordinate_format = "%.*f" diff --git a/preprocessors/hpgl.py b/preprocessors/hpgl.py index 5126d01d..8e8acde3 100644 --- a/preprocessors/hpgl.py +++ b/preprocessors/hpgl.py @@ -6,12 +6,12 @@ # MIT Licence # # ########################################################## -from AppPreProcessor import * +from FlatCAMPostProc import * # for Roland Preprocessors it is mandatory for the preprocessor name (python file and class name, both of them must be # the same) to contain the following keyword, case-sensitive: 'Roland' without the quotes. -class hpgl(PreProc): +class hpgl(FlatCAMPostProc): include_header = True coordinate_format = "%.*f" diff --git a/preprocessors/line_xyz.py b/preprocessors/line_xyz.py index 8bdbc97c..900d7fab 100644 --- a/preprocessors/line_xyz.py +++ b/preprocessors/line_xyz.py @@ -6,10 +6,10 @@ # MIT Licence # # ########################################################## -from AppPreProcessor import * +from FlatCAMPostProc import * -class line_xyz(PreProc): +class line_xyz(FlatCAMPostProc): include_header = True coordinate_format = "%.*f" diff --git a/tclCommands/TclCommand.py b/tclCommands/TclCommand.py index 9d0ecc8d..ed2d0260 100644 --- a/tclCommands/TclCommand.py +++ b/tclCommands/TclCommand.py @@ -1,6 +1,6 @@ import sys import re -import App_Main +import FlatCAMApp import abc import collections from PyQt5 import QtCore @@ -53,7 +53,7 @@ class TclCommand(object): if self.app is None: raise TypeError('Expected app to be FlatCAMApp instance.') - if not isinstance(self.app, App_Main.App): + if not isinstance(self.app, FlatCAMApp.App): raise TypeError('Expected FlatCAMApp, got %s.' % type(app)) self.log = self.app.log diff --git a/tclCommands/TclCommandAlignDrill.py b/tclCommands/TclCommandAlignDrill.py index 250d82be..ebf2099d 100644 --- a/tclCommands/TclCommandAlignDrill.py +++ b/tclCommands/TclCommandAlignDrill.py @@ -189,7 +189,7 @@ class TclCommandAlignDrill(TclCommandSignaled): px = 0.5 * (xmin + xmax) py = 0.5 * (ymin + ymax) - obj.app.app_obj.new_object("excellon", outname, alligndrill_init_me, plot=False) + obj.app.new_object("excellon", outname, alligndrill_init_me, plot=False) except Exception as e: return "Operation failed: %s" % str(e) @@ -205,7 +205,7 @@ class TclCommandAlignDrill(TclCommandSignaled): try: px = dist py = dist - obj.app.app_obj.new_object("excellon", outname, alligndrill_init_me, plot=False) + obj.app.new_object("excellon", outname, alligndrill_init_me, plot=False) except Exception as e: return "Operation failed: %s" % str(e) diff --git a/tclCommands/TclCommandAlignDrillGrid.py b/tclCommands/TclCommandAlignDrillGrid.py index e560290d..6fe6188b 100644 --- a/tclCommands/TclCommandAlignDrillGrid.py +++ b/tclCommands/TclCommandAlignDrillGrid.py @@ -111,4 +111,4 @@ class TclCommandAlignDrillGrid(TclCommandSignaled): init_obj.create_geometry() # Create the new object - self.app.app_obj.new_object("excellon", outname, aligndrillgrid_init_me, plot=False) + self.app.new_object("excellon", outname, aligndrillgrid_init_me, plot=False) diff --git a/tclCommands/TclCommandBbox.py b/tclCommands/TclCommandBbox.py index c8fd1273..6e38bb99 100644 --- a/tclCommands/TclCommandBbox.py +++ b/tclCommands/TclCommandBbox.py @@ -4,7 +4,7 @@ from tclCommands.TclCommand import TclCommand from shapely.ops import cascaded_union import gettext -import AppTranslation as fcTranslate +import FlatCAMTranslation as fcTranslate import builtins fcTranslate.apply_language('strings') @@ -100,6 +100,6 @@ class TclCommandBbox(TclCommand): bounding_box = bounding_box.envelope geo_obj.solid_geometry = bounding_box - self.app.app_obj.new_object("geometry", args['outname'], geo_init, plot=False) + self.app.new_object("geometry", args['outname'], geo_init, plot=False) except Exception as e: return "Operation failed: %s" % str(e) diff --git a/tclCommands/TclCommandBounds.py b/tclCommands/TclCommandBounds.py index e4d68d9b..c5752da3 100644 --- a/tclCommands/TclCommandBounds.py +++ b/tclCommands/TclCommandBounds.py @@ -3,7 +3,7 @@ import collections import logging import gettext -import AppTranslation as fcTranslate +import FlatCAMTranslation as fcTranslate import builtins fcTranslate.apply_language('strings') diff --git a/tclCommands/TclCommandCncjob.py b/tclCommands/TclCommandCncjob.py index a3802bb9..5ea51c65 100644 --- a/tclCommands/TclCommandCncjob.py +++ b/tclCommands/TclCommandCncjob.py @@ -37,10 +37,9 @@ class TclCommandCncjob(TclCommandSignaled): ('extracut_length', float), ('dpp', float), ('toolchangez', float), - ('toolchangexy', str), + ('toolchangexy', tuple), ('startz', float), ('endz', float), - ('endxy', str), ('spindlespeed', int), ('dwelltime', float), ('pp', str), @@ -66,12 +65,9 @@ class TclCommandCncjob(TclCommandSignaled): ('dpp', 'If present then use multidepth cnc cut. Height of one layer for multidepth.'), ('toolchangez', 'Z distance for toolchange (example: 30.0).\n' 'If used in the command then a toolchange event will be included in gcode'), - ('toolchangexy', 'The X,Y coordinates at Toolchange event in format (x, y) (example: (30.0, 15.2) or ' - 'without parenthesis like: 0.3,1.0). WARNING: no spaces allowed in the value.'), + ('toolchangexy', 'X, Y coordonates for toolchange in format (x, y) (example: (2.0, 3.1) ).'), ('startz', 'Height before the first move.'), ('endz', 'Height where the last move will park.'), - ('endxy', 'The X,Y coordinates at job end in format (x, y) (example: (2.0, 1.2) or without parenthesis' - 'like: 0.3,1.0). WARNING: no spaces allowed in the value.'), ('spindlespeed', 'Speed of the spindle in rpm (example: 4000).'), ('dwelltime', 'Time to pause to allow the spindle to reach the full speed.\n' 'If it is not used in command then it will not be included'), @@ -128,18 +124,16 @@ class TclCommandCncjob(TclCommandSignaled): else: return - args["dia"] = args["dia"] if "dia" in args and args["dia"] else self.app.defaults["geometry_cnctooldia"] + args["dia"] = args["dia"] if "dia" in args and args["dia"] else obj.options["cnctooldia"] - args["z_cut"] = args["z_cut"] if "z_cut" in args and args["z_cut"] else self.app.defaults["geometry_cutz"] - args["z_move"] = args["z_move"] if "z_move" in args and args["z_move"] else \ - self.app.defaults["geometry_travelz"] + args["z_cut"] = args["z_cut"] if "z_cut" in args and args["z_cut"] else obj.options["cutz"] + args["z_move"] = args["z_move"] if "z_move" in args and args["z_move"] else obj.options["travelz"] - args["feedrate"] = args["feedrate"] if "feedrate" in args and args["feedrate"] else \ - self.app.defaults["geometry_feedrate"] + args["feedrate"] = args["feedrate"] if "feedrate" in args and args["feedrate"] else obj.options["feedrate"] args["feedrate_z"] = args["feedrate_z"] if "feedrate_z" in args and args["feedrate_z"] else \ - self.app.defaults["geometry_feedrate_z"] + obj.options["feedrate_z"] args["feedrate_rapid"] = args["feedrate_rapid"] if "feedrate_rapid" in args and args["feedrate_rapid"] else \ - self.app.defaults["geometry_feedrate_rapid"] + obj.options["feedrate_rapid"] if "extracut_length" in args: args["extracut"] = True @@ -148,33 +142,20 @@ class TclCommandCncjob(TclCommandSignaled): else: args["extracut_length"] = float(args["extracut_length"]) else: - args["extracut"] = self.app.defaults["geometry_extracut"] - args["extracut_length"] = self.app.defaults["geometry_extracut_length"] + args["extracut"] = False if "dpp" in args: args["multidepth"] = True if args["dpp"] is None: - args["dpp"] =self.app.defaults["geometry_depthperpass"] + args["dpp"] = obj.options["dpp"] else: args["dpp"] = float(args["dpp"]) else: - args["multidepth"] = self.app.defaults["geometry_multidepth"] - args["dpp"] = self.app.defaults["geometry_depthperpass"] + args["multidepth"] = False args["startz"] = args["startz"] if "startz" in args and args["startz"] else \ self.app.defaults["geometry_startz"] - args["endz"] = args["endz"] if "endz" in args and args["endz"] else self.app.defaults["geometry_endz"] - - if "endxy" in args and args["endxy"]: - args["endxy"] = args["endxy"] - else: - if self.app.defaults["geometry_endxy"]: - args["endxy"] = self.app.defaults["geometry_endxy"] - else: - args["endxy"] = '0, 0' - if len(eval(args["endxy"])) != 2: - self.raise_tcl_error("The entered value for 'endxy' needs to have the format x,y or " - "in format (x, y) - no spaces allowed. But always two comma separated values.") + args["endz"] = args["endz"] if "endz" in args and args["endz"] else obj.options["endz"] args["spindlespeed"] = args["spindlespeed"] if "spindlespeed" in args and args["spindlespeed"] != 0 else None @@ -185,31 +166,23 @@ class TclCommandCncjob(TclCommandSignaled): else: args["dwelltime"] = float(args['dwelltime']) else: - args["dwell"] = self.app.defaults["geometry_dwell"] - args["dwelltime"] = self.app.defaults["geometry_dwelltime"] + args["dwell"] = False + args["dwelltime"] = 0.0 - args["pp"] = args["pp"] if "pp" in args and args["pp"] else self.app.defaults["geometry_ppname_g"] + args["pp"] = args["pp"] if "pp" in args and args["pp"] else obj.options["ppname_g"] if "toolchangez" in args: args["toolchange"] = True if args["toolchangez"] is not None: args["toolchangez"] = args["toolchangez"] else: - args["toolchangez"] = self.app.defaults["geometry_toolchangez"] + args["toolchangez"] = obj.options["toolchangez"] else: - args["toolchange"] = self.app.defaults["geometry_toolchange"] - args["toolchangez"] = self.app.defaults["geometry_toolchangez"] + args["toolchange"] = False + args["toolchangez"] = 0.0 - if "toolchangexy" in args and args["toolchangexy"]: - args["toolchangexy"] = args["toolchangexy"] - else: - if self.app.defaults["geometry_toolchangexy"]: - args["toolchangexy"] = self.app.defaults["geometry_toolchangexy"] - else: - args["toolchangexy"] = '0, 0' - if len(eval(args["toolchangexy"])) != 2: - self.raise_tcl_error("The entered value for 'toolchangexy' needs to have the format x,y or " - "in format (x, y) - no spaces allowed. But always two comma separated values.") + args["toolchangexy"] = args["toolchangexy"] if "toolchangexy" in args and args["toolchangexy"] else \ + self.app.defaults["geometry_toolchangexy"] del args['name'] @@ -218,7 +191,7 @@ class TclCommandCncjob(TclCommandSignaled): continue else: if args[arg] is None: - print("None parameters: %s is None" % arg) + print(arg, args[arg]) if muted is False: self.raise_tcl_error('One of the command parameters that have to be not None, is None.\n' 'The parameter that is None is in the default values found in the list \n' @@ -228,7 +201,7 @@ class TclCommandCncjob(TclCommandSignaled): # HACK !!! Should be solved elsewhere!!! # default option for multidepth is False - # obj.options['multidepth'] = False + obj.options['multidepth'] = False if not obj.multigeo: obj.generatecncjob(use_thread=False, plot=False, **args) @@ -257,7 +230,6 @@ class TclCommandCncjob(TclCommandSignaled): local_tools_dict[tool_uid]['data']['toolchangexy'] = args["toolchangexy"] local_tools_dict[tool_uid]['data']['startz'] = args["startz"] local_tools_dict[tool_uid]['data']['endz'] = args["endz"] - local_tools_dict[tool_uid]['data']['endxy'] = args["endxy"] local_tools_dict[tool_uid]['data']['spindlespeed'] = args["spindlespeed"] local_tools_dict[tool_uid]['data']['dwell'] = args["dwell"] local_tools_dict[tool_uid]['data']['dwelltime'] = args["dwelltime"] diff --git a/tclCommands/TclCommandCopperClear.py b/tclCommands/TclCommandCopperClear.py index 0e849ee5..aa8e682b 100644 --- a/tclCommands/TclCommandCopperClear.py +++ b/tclCommands/TclCommandCopperClear.py @@ -4,7 +4,7 @@ import collections import logging import gettext -import AppTranslation as fcTranslate +import FlatCAMTranslation as fcTranslate import builtins fcTranslate.apply_language('strings') @@ -54,8 +54,8 @@ class TclCommandCopperClear(TclCommand): 'main': "Clear excess copper in polygons. Basically it's a negative Paint.", 'args': collections.OrderedDict([ ('name', 'Name of the source Geometry object. String.'), - ('tooldia', 'Diameter of the tool to be used. Can be a comma separated list of diameters.\n' - 'WARNING: No space is allowed between tool diameters. E.g: correct: 0.5,1 / incorrect: 0.5, 1'), + ('tooldia', 'Diameter of the tool to be used. Can be a comma separated list of diameters. No space is ' + 'allowed between tool diameters. E.g: correct: 0.5,1 / incorrect: 0.5, 1'), ('overlap', 'Percentage of tool diameter to overlap current pass over previous pass. Float [0, 99.9999]\n' 'E.g: for a 25% from tool diameter overlap use -overlap 25'), ('margin', 'Bounding box margin. Float number.'), @@ -72,7 +72,7 @@ class TclCommandCopperClear(TclCommand): ('all', 'If used will copper clear the whole object. Either "-all" or "-box " has to be used.'), ('box', 'Name of the object to be used as reference. Either "-all" or "-box " has to be used. ' 'String.'), - ('outname', 'Name of the resulting Geometry object. String. No spaces.'), + ('outname', 'Name of the resulting Geometry object. String.'), ]), 'examples': ["ncc obj_name -tooldia 0.3,1 -overlap 10 -margin 1.0 -method 'lines' -all"] } diff --git a/tclCommands/TclCommandCutout.py b/tclCommands/TclCommandCutout.py index ddfd0614..f780a8cf 100644 --- a/tclCommands/TclCommandCutout.py +++ b/tclCommands/TclCommandCutout.py @@ -137,7 +137,7 @@ class TclCommandCutout(TclCommand): geo_obj.solid_geometry = cascaded_union([LineString(segment) for segment in cuts]) try: - self.app.app_obj.new_object("geometry", outname, geo_init_me, plot=False) + self.app.new_object("geometry", outname, geo_init_me, plot=False) self.app.inform.emit("[success] Rectangular-form Cutout operation finished.") except Exception as e: return "Operation failed: %s" % str(e) diff --git a/tclCommands/TclCommandDrillcncjob.py b/tclCommands/TclCommandDrillcncjob.py index 95b271d8..1c152bcc 100644 --- a/tclCommands/TclCommandDrillcncjob.py +++ b/tclCommands/TclCommandDrillcncjob.py @@ -4,7 +4,7 @@ import collections import math import gettext -import AppTranslation as fcTranslate +import FlatCAMTranslation as fcTranslate import builtins fcTranslate.apply_language('strings') @@ -37,10 +37,10 @@ class TclCommandDrillcncjob(TclCommandSignaled): ('feedrate_rapid', float), ('spindlespeed', int), ('toolchangez', float), - ('toolchangexy', str), + ('toolchangexy', tuple), ('startz', float), ('endz', float), - ('endxy', str), + ('endxy', tuple), ('dwelltime', float), ('pp', str), ('opt_type', str), @@ -59,7 +59,7 @@ class TclCommandDrillcncjob(TclCommandSignaled): ('name', 'Name of the source object.'), ('drilled_dias', 'Comma separated tool diameters of the drills to be drilled (example: 0.6,1.0 or 3.125). ' - 'WARNING: No space allowed'), + 'No space allowed'), ('drillz', 'Drill depth into material (example: -2.0). Negative value.'), ('dpp', 'Progressive drilling into material with a specified step (example: 0.7). Positive value.'), ('travelz', 'Travel distance above material (example: 2.0).'), @@ -68,12 +68,10 @@ class TclCommandDrillcncjob(TclCommandSignaled): ('spindlespeed', 'Speed of the spindle in rpm (example: 4000).'), ('toolchangez', 'Z distance for toolchange (example: 30.0).\n' 'If used in the command then a toolchange event will be included in gcode'), - ('toolchangexy', 'The X,Y coordinates at Toolchange event in format (x, y) (example: (30.0, 15.2) or ' - 'without parenthesis like: 0.3,1.0). WARNING: no spaces allowed in the value.'), + ('toolchangexy', 'X, Y coordonates for toolchange in format (x, y) (example: (2.0, 3.1) ).'), ('startz', 'The Z coordinate at job start (example: 30.0).'), ('endz', 'The Z coordinate at job end (example: 30.0).'), - ('endxy', 'The X,Y coordinates at job end in format (x, y) (example: (2.0, 1.2) or without parenthesis' - 'like: 0.3,1.0). WARNING: no spaces allowed in the value.'), + ('endxy', 'The X,Y coordinates at job end in format (x, y) (example: (30.0, 15.2)).'), ('dwelltime', 'Time to pause to allow the spindle to reach the full speed.\n' 'If it is not used in command then it will not be included'), ('pp', 'This is the Excellon preprocessor name: case_sensitive, no_quotes'), @@ -229,34 +227,17 @@ class TclCommandDrillcncjob(TclCommandSignaled): else: toolchangez = obj.options["toolchangez"] else: - toolchange = self.app.defaults["excellon_toolchange"] - toolchangez = float(self.app.defaults["excellon_toolchangez"]) + toolchange = False + toolchangez = 0.0 - if "toolchangexy" in args and args["toolchangexy"]: - xy_toolchange = args["toolchangexy"] - else: - if self.app.defaults["excellon_toolchangexy"]: - xy_toolchange = self.app.defaults["excellon_toolchangexy"] - else: - xy_toolchange = '0, 0' - if len(eval(xy_toolchange)) != 2: - self.raise_tcl_error("The entered value for 'toolchangexy' needs to have the format x,y or " - "in format (x, y) - no spaces allowed. But always two comma separated values.") - - endz = args["endz"] if "endz" in args and args["endz"] is not None else self.app.defaults["excellon_endz"] - - if "endxy" in args and args["endxy"]: - xy_end = args["endxy"] - else: - if self.app.defaults["excellon_endxy"]: - xy_end = self.app.defaults["excellon_endxy"] - else: - xy_end = '0, 0' - - if len(eval(xy_end)) != 2: - self.raise_tcl_error("The entered value for 'xy_end' needs to have the format x,y or " - "in format (x, y) - no spaces allowed. But always two comma separated values.") + xy_toolchange = args["toolchangexy"] if "toolchangexy" in args and args["toolchangexy"] else \ + obj.options["toolchangexy"] + xy_toolchange = ','.join([xy_toolchange[0], xy_toolchange[2]]) + endz = args["endz"] if "endz" in args and args["endz"] is not None else obj.options["endz"] + xy_end = args["endxy"] if "endxy" in args and args["endxy"] else '0,0' + xy_end = ','.join([xy_end[0], xy_end[2]]) + print(xy_end) opt_type = args["opt_type"] if "opt_type" in args and args["opt_type"] else 'B' # ########################################################################################## @@ -267,7 +248,7 @@ class TclCommandDrillcncjob(TclCommandSignaled): job_obj.options['Tools_in_use'] = used_tools_info job_obj.options['type'] = 'Excellon' - pp_excellon_name = args["pp"] if "pp" in args and args["pp"] else self.app.defaults["excellon_ppname_e"] + pp_excellon_name = args["pp"] if "pp" in args and args["pp"] else obj.options["ppname_e"] job_obj.pp_excellon_name = pp_excellon_name job_obj.options['ppname_e'] = pp_excellon_name @@ -278,19 +259,16 @@ class TclCommandDrillcncjob(TclCommandSignaled): else: job_obj.z_depthpercut = float(obj.options["dpp"]) else: - job_obj.multidepth = self.app.defaults["excellon_multidepth"] - job_obj.z_depthpercut = self.app.defaults["excellon_depthperpass"] - - job_obj.z_move = float(args["travelz"]) if "travelz" in args and args["travelz"] else \ - self.app.defaults["excellon_travelz"] + job_obj.multidepth = False + job_obj.z_depthpercut = 0.0 + job_obj.z_move = float(args["travelz"]) if "travelz" in args and args["travelz"] else obj.options["travelz"] job_obj.feedrate = float(args["feedrate_z"]) if "feedrate_z" in args and args["feedrate_z"] else \ - self.app.defaults["excellon_feedrate_z"] + obj.options["feedrate_z"] job_obj.z_feedrate = float(args["feedrate_z"]) if "feedrate_z" in args and args["feedrate_z"] else \ - self.app.defaults["excellon_feedrate_z"] - + obj.options["feedrate_z"] job_obj.feedrate_rapid = float(args["feedrate_rapid"]) \ - if "feedrate_rapid" in args and args["feedrate_rapid"] else self.app.defaults["excellon_feedrate_rapid"] + if "feedrate_rapid" in args and args["feedrate_rapid"] else obj.options["feedrate_rapid"] job_obj.spindlespeed = float(args["spindlespeed"]) if "spindlespeed" in args else None job_obj.spindledir = self.app.defaults['excellon_spindledir'] @@ -299,10 +277,10 @@ class TclCommandDrillcncjob(TclCommandSignaled): if args['dwelltime'] is not None: job_obj.dwelltime = float(args['dwelltime']) else: - job_obj.dwelltime = float(self.app.defaults["excellon_dwelltime"]) + job_obj.dwelltime = float(obj.options["dwelltime"]) else: - job_obj.dwell = self.app.defaults["excellon_dwell"] - job_obj.dwelltime = self.app.defaults["excellon_dwelltime"] + job_obj.dwell = False + job_obj.dwelltime = 0.0 job_obj.toolchange_xy_type = "excellon" job_obj.coords_decimals = int(self.app.defaults["cncjob_coords_decimals"]) @@ -317,15 +295,7 @@ class TclCommandDrillcncjob(TclCommandSignaled): job_obj.toolchange = toolchange job_obj.xy_toolchange = xy_toolchange job_obj.z_toolchange = float(toolchangez) - - if "startz" in args and args["startz"] is not None: - job_obj.startz = float(args["startz"]) - else: - if self.app.defaults["excellon_startz"]: - job_obj.startz = self.app.defaults["excellon_startz"] - else: - job_obj.startz = (0, 0) - + job_obj.startz = float(args["startz"]) if "endz" in args and args["endz"] is not None else (0, 0) job_obj.endz = float(endz) job_obj.xy_end = xy_end job_obj.excellon_optimization_type = opt_type @@ -343,4 +313,4 @@ class TclCommandDrillcncjob(TclCommandSignaled): job_obj.gcode_parse() job_obj.create_geometry() - self.app.app_obj.new_object("cncjob", args['outname'], job_init, plot=False) + self.app.new_object("cncjob", args['outname'], job_init, plot=False) diff --git a/tclCommands/TclCommandExteriors.py b/tclCommands/TclCommandExteriors.py index 00461aeb..de4e6901 100644 --- a/tclCommands/TclCommandExteriors.py +++ b/tclCommands/TclCommandExteriors.py @@ -66,4 +66,4 @@ class TclCommandExteriors(TclCommandSignaled): geo_obj.solid_geometry = obj_exteriors obj_exteriors = obj.get_exteriors() - self.app.app_obj.new_object('geometry', outname, geo_init, plot=False) + self.app.new_object('geometry', outname, geo_init, plot=False) diff --git a/tclCommands/TclCommandGeoCutout.py b/tclCommands/TclCommandGeoCutout.py index 9a1c29bc..bef600c1 100644 --- a/tclCommands/TclCommandGeoCutout.py +++ b/tclCommands/TclCommandGeoCutout.py @@ -7,7 +7,7 @@ from shapely.ops import cascaded_union from shapely.geometry import Polygon, LineString, LinearRing import gettext -import AppTranslation as fcTranslate +import FlatCAMTranslation as fcTranslate import builtins log = logging.getLogger('base') @@ -300,8 +300,11 @@ class TclCommandGeoCutout(TclCommandSignaled): app_obj.inform.emit("[success] %s" % _("Any-form Cutout operation finished.")) - self.app.app_obj.new_object('geometry', outname, geo_init, plot=False) + self.app.new_object('geometry', outname, geo_init, plot=False) + # cutout_obj.plot() + # self.app.inform.emit("[success] Any-form Cutout operation finished.") + # self.app.plots_updated.emit() elif cutout_obj.kind == 'gerber': def geo_init(geo_obj, app_obj): @@ -355,7 +358,7 @@ class TclCommandGeoCutout(TclCommandSignaled): geo_obj.options['ymax'] = cutout_obj.options['ymax'] app_obj.inform.emit("[success] %s" % _("Any-form Cutout operation finished.")) - self.app.app_obj.new_object('geometry', outname, geo_init, plot=False) + self.app.new_object('geometry', outname, geo_init, plot=False) cutout_obj = self.app.collection.get_by_name(outname) else: diff --git a/tclCommands/TclCommandGetNames.py b/tclCommands/TclCommandGetNames.py index ca6c17b4..6bb45e14 100644 --- a/tclCommands/TclCommandGetNames.py +++ b/tclCommands/TclCommandGetNames.py @@ -5,7 +5,7 @@ import collections class TclCommandGetNames(TclCommand): """ - Tcl shell command to set an object as active in the AppGUI. + Tcl shell command to set an object as active in the GUI. example: diff --git a/tclCommands/TclCommandGetPath.py b/tclCommands/TclCommandGetPath.py index 346a9243..d6d76b35 100644 --- a/tclCommands/TclCommandGetPath.py +++ b/tclCommands/TclCommandGetPath.py @@ -11,7 +11,7 @@ import collections import os import logging import gettext -import AppTranslation as fcTranslate +import FlatCAMTranslation as fcTranslate import builtins fcTranslate.apply_language('strings') diff --git a/tclCommands/TclCommandHelp.py b/tclCommands/TclCommandHelp.py index ff1e9d12..a5688381 100644 --- a/tclCommands/TclCommandHelp.py +++ b/tclCommands/TclCommandHelp.py @@ -11,7 +11,7 @@ from tclCommands.TclCommand import TclCommand import collections import gettext -import AppTranslation as fcTranslate +import FlatCAMTranslation as fcTranslate import builtins fcTranslate.apply_language('strings') diff --git a/tclCommands/TclCommandImportSvg.py b/tclCommands/TclCommandImportSvg.py index c65b46d8..9ef67e27 100644 --- a/tclCommands/TclCommandImportSvg.py +++ b/tclCommands/TclCommandImportSvg.py @@ -76,7 +76,7 @@ class TclCommandImportSvg(TclCommandSignaled): with self.app.proc_container.new("Import SVG"): # Object creation - self.app.app_obj.new_object(obj_type, outname, obj_init, plot=False) + self.app.new_object(obj_type, outname, obj_init, plot=False) # Register recent file self.app.file_opened.emit("svg", filename) diff --git a/tclCommands/TclCommandInteriors.py b/tclCommands/TclCommandInteriors.py index 9cd60367..a7655204 100644 --- a/tclCommands/TclCommandInteriors.py +++ b/tclCommands/TclCommandInteriors.py @@ -67,4 +67,4 @@ class TclCommandInteriors(TclCommandSignaled): geo_obj.solid_geometry = obj_interiors obj_interiors = obj.get_interiors() - self.app.app_obj.new_object('geometry', outname, geo_init) + self.app.new_object('geometry', outname, geo_init) diff --git a/tclCommands/TclCommandIsolate.py b/tclCommands/TclCommandIsolate.py index 248ace37..1385f860 100644 --- a/tclCommands/TclCommandIsolate.py +++ b/tclCommands/TclCommandIsolate.py @@ -89,7 +89,7 @@ class TclCommandIsolate(TclCommandSignaled): par = args['combine'] args['combine'] = bool(eval(par)) else: - args['combine'] = bool(eval(self.app.defaults["tools_iso_combine_passes"])) + args['combine'] = bool(eval(self.app.defaults["gerber_combine_passes"])) obj = self.app.collection.get_by_name(name) if obj is None: diff --git a/tclCommands/TclCommandJoinExcellon.py b/tclCommands/TclCommandJoinExcellon.py index e3c342e8..5c1962ff 100644 --- a/tclCommands/TclCommandJoinExcellon.py +++ b/tclCommands/TclCommandJoinExcellon.py @@ -1,5 +1,5 @@ from tclCommands.TclCommand import TclCommand -from AppObjects.FlatCAMExcellon import ExcellonObject +from flatcamObjects.FlatCAMExcellon import ExcellonObject import collections @@ -65,6 +65,6 @@ class TclCommandJoinExcellon(TclCommand): ExcellonObject.merge(objs, obj_, decimals=self.app.decimals) if objs and len(objs) >= 2: - self.app.app_obj.new_object("excellon", outname, initialize, plot=False) + self.app.new_object("excellon", outname, initialize, plot=False) else: return "No Excellon objects to be joined or less than two Excellon objects specified for merging." diff --git a/tclCommands/TclCommandJoinGeometry.py b/tclCommands/TclCommandJoinGeometry.py index 44cfd9b2..67e3aeb5 100644 --- a/tclCommands/TclCommandJoinGeometry.py +++ b/tclCommands/TclCommandJoinGeometry.py @@ -1,5 +1,5 @@ from tclCommands.TclCommand import TclCommand -from AppObjects.FlatCAMGeometry import GeometryObject +from flatcamObjects.FlatCAMGeometry import GeometryObject import collections @@ -65,6 +65,6 @@ class TclCommandJoinGeometry(TclCommand): GeometryObject.merge(objs, obj_) if objs and len(objs) >= 2: - self.app.app_obj.new_object("geometry", outname, initialize, plot=False) + self.app.new_object("geometry", outname, initialize, plot=False) else: return "No Geometry objects to be joined or less than two Geometry objects specified for merging." diff --git a/tclCommands/TclCommandNewExcellon.py b/tclCommands/TclCommandNewExcellon.py index c5072ffb..61689d6f 100644 --- a/tclCommands/TclCommandNewExcellon.py +++ b/tclCommands/TclCommandNewExcellon.py @@ -58,4 +58,4 @@ class TclCommandNewExcellon(TclCommandSignaled): name = args['name'] else: name = 'new_exc' - self.app.app_obj.new_object('excellon', name, lambda x, y: None, plot=False) + self.app.new_object('excellon', name, lambda x, y: None, plot=False) diff --git a/tclCommands/TclCommandNewGeometry.py b/tclCommands/TclCommandNewGeometry.py index 08c3c7ce..8fee996e 100644 --- a/tclCommands/TclCommandNewGeometry.py +++ b/tclCommands/TclCommandNewGeometry.py @@ -52,4 +52,4 @@ class TclCommandNewGeometry(TclCommandSignaled): else: name = 'new_geo' - self.app.app_obj.new_object('geometry', str(name), lambda x, y: None, plot=False) + self.app.new_object('geometry', str(name), lambda x, y: None, plot=False) diff --git a/tclCommands/TclCommandNewGerber.py b/tclCommands/TclCommandNewGerber.py index 3a63422c..9c162965 100644 --- a/tclCommands/TclCommandNewGerber.py +++ b/tclCommands/TclCommandNewGerber.py @@ -75,4 +75,4 @@ class TclCommandNewGerber(TclCommandSignaled): except KeyError: pass - self.app.app_obj.new_object('gerber', name, initialize, plot=False) + self.app.new_object('gerber', name, initialize, plot=False) diff --git a/tclCommands/TclCommandNregions.py b/tclCommands/TclCommandNregions.py index e4ba7ac5..f7aec69d 100644 --- a/tclCommands/TclCommandNregions.py +++ b/tclCommands/TclCommandNregions.py @@ -5,7 +5,7 @@ from shapely.ops import cascaded_union import collections import gettext -import AppTranslation as fcTranslate +import FlatCAMTranslation as fcTranslate import builtins fcTranslate.apply_language('strings') @@ -100,7 +100,7 @@ class TclCommandNregions(TclCommand): non_copper = bounding_box.difference(geo) geo_obj.solid_geometry = non_copper - self.app.app_obj.new_object("geometry", args['outname'], geo_init, plot=False) + self.app.new_object("geometry", args['outname'], geo_init, plot=False) except Exception as e: return "Operation failed: %s" % str(e) diff --git a/tclCommands/TclCommandOpenDXF.py b/tclCommands/TclCommandOpenDXF.py index 87ab0639..4e46d2a4 100644 --- a/tclCommands/TclCommandOpenDXF.py +++ b/tclCommands/TclCommandOpenDXF.py @@ -77,10 +77,10 @@ class TclCommandOpenDXF(TclCommandSignaled): with self.app.proc_container.new("Open DXF"): # Object creation - ret_val = self.app.app_obj.new_object(obj_type, outname, obj_init, plot=False) + ret_val = self.app.new_object(obj_type, outname, obj_init, plot=False) if ret_val == 'fail': filename = self.app.defaults['global_tcl_path'] + '/' + outname - ret_val = self.app.app_obj.new_object(obj_type, outname, obj_init, plot=False) + ret_val = self.app.new_object(obj_type, outname, obj_init, plot=False) self.app.shell.append_output( "No path provided or path is wrong. Using the default Path... \n") diff --git a/tclCommands/TclCommandOpenSVG.py b/tclCommands/TclCommandOpenSVG.py index bfe2784e..9c2b514e 100644 --- a/tclCommands/TclCommandOpenSVG.py +++ b/tclCommands/TclCommandOpenSVG.py @@ -77,10 +77,10 @@ class TclCommandOpenSVG(TclCommandSignaled): with self.app.proc_container.new("Import SVG"): # Object creation - ret_val = self.app.app_obj.new_object(obj_type, outname, obj_init, plot=False) + ret_val = self.app.new_object(obj_type, outname, obj_init, plot=False) if ret_val == 'fail': filename = self.app.defaults['global_tcl_path'] + '/' + outname - ret_val = self.app.app_obj.new_object(obj_type, outname, obj_init, plot=False) + ret_val = self.app.new_object(obj_type, outname, obj_init, plot=False) self.app.shell.append_output( "No path provided or path is wrong. Using the default Path... \n") if ret_val == 'fail': diff --git a/tclCommands/TclCommandPaint.py b/tclCommands/TclCommandPaint.py index 617057b0..a7db7062 100644 --- a/tclCommands/TclCommandPaint.py +++ b/tclCommands/TclCommandPaint.py @@ -4,7 +4,7 @@ import collections import logging import gettext -import AppTranslation as fcTranslate +import FlatCAMTranslation as fcTranslate import builtins fcTranslate.apply_language('strings') @@ -43,6 +43,8 @@ class TclCommandPaint(TclCommand): ('single', str), ('ref', str), ('box', str), + ('x', float), + ('y', float), ('outname', str), ]) @@ -51,32 +53,30 @@ class TclCommandPaint(TclCommand): # structured help for current command, args needs to be ordered help = { - 'main': "Paint polygons in the specified object by covering them with toolpaths.\n" - "Can use only one of the parameters: 'all', 'box', 'single'.", + 'main': "Paint polygons in the specified object by covering them with toolpaths.", 'args': collections.OrderedDict([ ('name', 'Name of the source Geometry object. String.'), - ('tooldia', 'Diameter of the tools to be used. Can be a comma separated list of diameters.\n' - 'WARNING: No space is allowed between tool diameters. E.g: correct: 0.5,1 / incorrect: 0.5, 1'), + ('tooldia', 'Diameter of the tool to be used. Can be a comma separated list of diameters. No space is ' + 'allowed between tool diameters. E.g: correct: 0.5,1 / incorrect: 0.5, 1'), ('overlap', 'Percentage of tool diameter to overlap current pass over previous pass. Float [0, 99.9999]\n' 'E.g: for a 25% from tool diameter overlap use -overlap 25'), ('margin', 'Bounding box margin. Float number.'), - ('order', 'Can have the values: "no", "fwd" and "rev". String.\n' - 'It is useful when there are multiple tools in tooldia parameter.\n' - '"no" -> the order used is the one provided.\n' - '"fwd" -> tools are ordered from smallest to biggest.\n' + ('order', 'Can have the values: "no", "fwd" and "rev". String.' + 'It is useful when there are multiple tools in tooldia parameter.' + '"no" -> the order used is the one provided.' + '"fwd" -> tools are ordered from smallest to biggest.' '"rev" -> tools are ordered from biggest to smallest.'), ('method', 'Algorithm for painting. Can be: "standard", "seed", "lines", "laser_lines", "combo".'), ('connect', 'Draw lines to minimize tool lifts. True (1) or False (0)'), ('contour', 'Cut around the perimeter of the painting. True (1) or False (0)'), ('all', 'If used, paint all polygons in the object.'), ('box', 'name of the object to be used as paint reference. String.'), - ('single', 'Value is in format x,y or (x,y). Example: 2.0,1.1\n' - 'If used will paint a single polygon specified by "x" and "y" values.\n' - 'WARNING: No spaces allowed in the value. Use dot decimals separator.'), - ('outname', 'Name of the resulting Geometry object. String. No spaces.'), + ('single', 'Paint a single polygon specified by "x" and "y" parameters. True (1) or False (0)'), + ('x', 'X value of coordinate for the selection of a single polygon. Float number.'), + ('y', 'Y value of coordinate for the selection of a single polygon. Float number.'), + ('outname', 'Name of the resulting Geometry object. String.'), ]), - 'examples': ["paint obj_name -tooldia 0.3 -margin 0.1 -method 'seed' -all", - "paint obj_name -tooldia 0.3 -margin 0.1 -method 'seed' -single 3.3,2.0"] + 'examples': ["paint obj_name -tooldia 0.3 -margin 0.1 -method 'seed' -all"] } def execute(self, args, unnamed_args): @@ -159,7 +159,7 @@ class TclCommandPaint(TclCommand): # used only to have correct information's in the obj.tools[tool]['data'] dict if "all" in args: - select = _("All") + select = _("All Polygons") elif "single" in args: select = _("Polygon Selection") else: @@ -245,17 +245,11 @@ class TclCommandPaint(TclCommand): # Paint single polygon in the painted object if 'single' in args: - if not args['single'] or args['single'] == '': - self.raise_tcl_error('%s Got: %s' % - (_("Expected a tuple value like -single 3.2,0.1."), str(args['single']))) + if 'x' not in args and 'y' not in args: + self.raise_tcl_error('%s' % _("Expected -x and -y .")) else: - coords_xy = [float(eval(a)) for a in args['single'].split(",") if a != ''] - - if coords_xy and len(coords_xy) != 2: - self.raise_tcl_error('%s Got: %s' % - (_("Expected a tuple value like -single 3.2,0.1."), str(coords_xy))) - x = coords_xy[0] - y = coords_xy[1] + x = args['x'] + y = args['y'] self.app.paint_tool.paint_poly(obj=obj, inside_pt=[x, y], diff --git a/tclCommands/TclCommandPanelize.py b/tclCommands/TclCommandPanelize.py index af6f1a0f..99fd0bc5 100644 --- a/tclCommands/TclCommandPanelize.py +++ b/tclCommands/TclCommandPanelize.py @@ -167,19 +167,19 @@ class TclCommandPanelize(TclCommand): # for col in range(columns): # local_outname = outname + ".tmp." + str(col) + "." + str(row) # if isinstance(obj, ExcellonObject): - # self.app.app_obj.new_object("excellon", local_outname, initialize_local_excellon, plot=False, + # self.app.new_object("excellon", local_outname, initialize_local_excellon, plot=False, # autoselected=False) # else: - # self.app.app_obj.new_object("geometry", local_outname, initialize_local, plot=False, + # self.app.new_object("geometry", local_outname, initialize_local, plot=False, # autoselected=False) # # currentx += lenghtx # currenty += lenghty # # if isinstance(obj, ExcellonObject): - # self.app.app_obj.new_object("excellon", outname, initialize_excellon) + # self.app.new_object("excellon", outname, initialize_excellon) # else: - # self.app.app_obj.new_object("geometry", outname, initialize_geometry) + # self.app.new_object("geometry", outname, initialize_geometry) # # # deselect all to avoid delete selected object when run delete from shell # self.app.collection.set_all_inactive() @@ -287,9 +287,9 @@ class TclCommandPanelize(TclCommand): currenty += lenghty if obj.kind == 'excellon': - self.app.app_obj.new_object("excellon", outname, job_init_excellon, plot=False, autoselected=True) + self.app.new_object("excellon", outname, job_init_excellon, plot=False, autoselected=True) else: - self.app.app_obj.new_object("geometry", outname, job_init_geometry, plot=False, autoselected=True) + self.app.new_object("geometry", outname, job_init_geometry, plot=False, autoselected=True) if threaded is True: proc = self.app.proc_container.new("Generating panel ... Please wait.") diff --git a/tclCommands/TclCommandPlotAll.py b/tclCommands/TclCommandPlotAll.py index 001afb36..4e9f8277 100644 --- a/tclCommands/TclCommandPlotAll.py +++ b/tclCommands/TclCommandPlotAll.py @@ -14,7 +14,7 @@ class TclCommandPlotAll(TclCommandSignaled): # List of all command aliases, to be able use old names for backward compatibility (add_poly, add_polygon) aliases = ['plot_all'] - description = '%s %s' % ("--", "Plots all objects on AppGUI.") + description = '%s %s' % ("--", "Plots all objects on GUI.") # Dictionary of types from Tcl command, needs to be ordered arg_names = collections.OrderedDict([ @@ -32,7 +32,7 @@ class TclCommandPlotAll(TclCommandSignaled): # structured help for current command, args needs to be ordered help = { - 'main': "Plots all objects on AppGUI.", + 'main': "Plots all objects on GUI.", 'args': collections.OrderedDict([ ('plot_status', 'If to display or not the objects: True (1) or False (0).'), ('use_thread', 'If to use multithreading: True (1) or False (0).') diff --git a/tclCommands/TclCommandPlotObjects.py b/tclCommands/TclCommandPlotObjects.py index 5fce3216..8a26e36c 100644 --- a/tclCommands/TclCommandPlotObjects.py +++ b/tclCommands/TclCommandPlotObjects.py @@ -21,7 +21,7 @@ class TclCommandPlotObjects(TclCommand): # List of all command aliases, to be able use old names for backward compatibility (add_poly, add_polygon) aliases = ['plot_objects'] - description = '%s %s' % ("--", "Plot a specified list of objects in AppGUI.") + description = '%s %s' % ("--", "Plot a specified list of objects in GUI.") # Dictionary of types from Tcl command, needs to be ordered arg_names = collections.OrderedDict([ @@ -38,7 +38,7 @@ class TclCommandPlotObjects(TclCommand): # structured help for current command, args needs to be ordered help = { - 'main': "Plot a specified list of objects in AppGUI.", + 'main': "Plot a specified list of objects in GUI.", 'args': collections.OrderedDict([ ('names', "A list of object names to be plotted separated by comma. Required.\n" "WARNING: no spaces are allowed. If unsure enclose the entire list with quotes."), diff --git a/tclCommands/TclCommandScale.py b/tclCommands/TclCommandScale.py index b447db8c..ac790842 100644 --- a/tclCommands/TclCommandScale.py +++ b/tclCommands/TclCommandScale.py @@ -4,7 +4,7 @@ import collections import logging import gettext -import AppTranslation as fcTranslate +import FlatCAMTranslation as fcTranslate import builtins fcTranslate.apply_language('strings') diff --git a/tclCommands/TclCommandSetActive.py b/tclCommands/TclCommandSetActive.py index febe927b..6dfecd00 100644 --- a/tclCommands/TclCommandSetActive.py +++ b/tclCommands/TclCommandSetActive.py @@ -5,7 +5,7 @@ import collections class TclCommandSetActive(TclCommand): """ - Tcl shell command to set an object as active in the AppGUI. + Tcl shell command to set an object as active in the GUI. example: diff --git a/tclCommands/TclCommandSetOrigin.py b/tclCommands/TclCommandSetOrigin.py index d2c9681c..e801fd13 100644 --- a/tclCommands/TclCommandSetOrigin.py +++ b/tclCommands/TclCommandSetOrigin.py @@ -13,7 +13,7 @@ from camlib import get_bounds import logging import gettext -import AppTranslation as fcTranslate +import FlatCAMTranslation as fcTranslate import builtins fcTranslate.apply_language('strings') @@ -98,6 +98,6 @@ class TclCommandSetOrigin(TclCommand): loc = [0, 0] self.app.on_set_zero_click(event=None, location=loc, noplot=True, use_thread=False) - msg = '[success] Tcl %s: %s' % (_('Origin set by offsetting all loaded objects with '), - '{0:.4f}, {0:.4f}'.format(loc[0], loc[1])) - self.app.shell_message(msg, success=True, show=False) + self.app.inform.emit('[success] Tcl %s: %s' % + (_('Origin set by offsetting all loaded objects with '), + '{0:.4f}, {0:.4f}'.format(loc[0], loc[1]))) diff --git a/tclCommands/TclCommandSetPath.py b/tclCommands/TclCommandSetPath.py index 09b30e43..953fd57d 100644 --- a/tclCommands/TclCommandSetPath.py +++ b/tclCommands/TclCommandSetPath.py @@ -11,7 +11,7 @@ import collections import os import logging import gettext -import AppTranslation as fcTranslate +import FlatCAMTranslation as fcTranslate import builtins fcTranslate.apply_language('strings') @@ -75,22 +75,19 @@ class TclCommandSetPath(TclCommand): if path_isdir is False: path_isfile = os.path.isfile(path) if path_isfile: - msg = '[ERROR] %s: %s, %s' % ( + self.app.inform.emit('[ERROR] %s: %s, %s' % ( "The provided path", str(path), - "is a path to file and not a directory as expected.") - self.app.shell_message(msg, success=True, show=False) + "is a path to file and not a directory as expected.")) return "Failed. The Tcl command set_path was used but it was not a directory." else: - msg = '[ERROR] %s: %s, %s' % ( + self.app.inform.emit('[ERROR] %s: %s, %s' % ( "The provided path", str(path), - "do not exist. Check for typos.") - self.app.shell_message(msg, success=True, show=False) + "do not exist. Check for typos.")) return "Failed. The Tcl command set_path was used but it does not exist." cd_command = 'cd %s' % path self.app.shell.exec_command(cd_command, no_echo=False) self.app.defaults["global_tcl_path"] = str(path) - msg = '[success] %s: %s' % ("Relative path set to", str(path)) - self.app.shell_message(msg, success=True, show=False) + self.app.inform.emit('[success] %s: %s' % ("Relative path set to", str(path))) diff --git a/tclCommands/TclCommandSubtractRectangle.py b/tclCommands/TclCommandSubtractRectangle.py index 95d66bd2..b50a2467 100644 --- a/tclCommands/TclCommandSubtractRectangle.py +++ b/tclCommands/TclCommandSubtractRectangle.py @@ -3,7 +3,7 @@ from tclCommands.TclCommand import TclCommandSignaled import collections import gettext -import AppTranslation as fcTranslate +import FlatCAMTranslation as fcTranslate import builtins fcTranslate.apply_language('strings') diff --git a/tclCommands/TclCommandWriteGCode.py b/tclCommands/TclCommandWriteGCode.py index dae8bdbb..331fa8bc 100644 --- a/tclCommands/TclCommandWriteGCode.py +++ b/tclCommands/TclCommandWriteGCode.py @@ -80,15 +80,15 @@ class TclCommandWriteGCode(TclCommandSignaled): # This is not needed any more? All targets should be present. # If there are promised objects, wait until all promises have been fulfilled. # if self.collection.has_promises(): - # def write_gcode_on_object(app_obj.new_object): + # def write_gcode_on_object(new_object): # self.log.debug("write_gcode_on_object(): Disconnecting %s" % write_gcode_on_object) - # self.app_obj.new_object_available.disconnect(write_gcode_on_object) + # self.new_object_available.disconnect(write_gcode_on_object) # write_gcode(obj_name, filename, preamble, postamble) # # # Try again when a new object becomes available. # self.log.debug("write_gcode(): Collection has promises. Queued for %s." % obj_name) # self.log.debug("write_gcode(): Queued function: %s" % write_gcode_on_object) - # self.app_obj.new_object_available.connect(write_gcode_on_object) + # self.new_object_available.connect(write_gcode_on_object) # # return